Взломщики кодов - Дэвид Кан
Шрифт:
Интервал:
Закладка:
Секретность на продажу
Ранним декабрьским утром 1917 г. симпатичный молодой человек стремительно промчался между массивными колоннами вестибюля здания компании «Америкэн телефон энд телеграф» («AT&T»), расположенного в деловой части Нью-Йорка. Он вбежал в лифт и поднялся на нем на 17-й этаж, где находилось телеграфное отделение компании, входившее в состав ее научно-исследовательского отдела. Это отделение, в котором работали несколько самых талантливых инженеров, уже год занималось доведением до ума новейшего достижения в области телеграфии – буквопечатающего телеграфного аппарата, который в отделении нарекли телетайпом.
Молодого человека звали Гильберт Вернам, и он всегда немного опаздывал. Коллеги считали Вернама весьма толковым инженером и способным изобретателем. Среди них ходили слухи о том, что каждый вечер, растягиваясь на диване, он спрашивал сам себя вслух: «Что бы такое еще изобрести?» У Вернама был редкий склад ума, который позволял ему придумывать оригинальную электрическую цепь и затем переносить ее на чертежный холст, не воспроизводя все требуемые соединения с помощью проводов. Вернам очень хорошо зарекомендовал себя на работе, поэтому начальник телеграфного отделения компании «AT&T» Паркер без колебаний пригласил его принять участие в разработке особо секретного проекта. И хотя в это декабрьское утро Вернам опять опоздал, в его голове уже успела созреть прекрасная идея. Тихий и скромный по натуре, Вернам довольно несмело изложил свою идею коллегам, которые сразу же сочли ее заслуживающей особого внимания.
Работа над секретным проектом началась еще летом, несколько месяцев спустя после того, как Соединенные Штаты объявили войну Германии. Паркер поручил нескольким своим подчиненным исследовать вопрос о возможности сохранять в тайне сообщения, передаваемые по телетайпу. Оказалось, что колебания тока в линии связи могли быть записаны с помощью осциллографа и затем легко преобразованы в буквы передаваемого сообщения. Поэтому было решено внести изменения в соединения проводов печатающего механизма телетайпа. В результате текст сообщения шифровался методом одноалфавитной замены. В телеграфном отделении понимали, что такая защита являлась слишком слабой, однако ничего другого придумать не смогли и перестали заниматься этой проблемой до тех самых пор, пока Вернам не поведал им о своей идее.
Вернам предложил использовать особенности телетайпного кода, в котором кодируемый знак выражается в виде пяти элементов. Каждый из этих элементов символизирует наличие («плюс») или отсутствие («минус») электрического тока в линии связи. Таким образом, имеются 32 различных комбинации «плюсов» и «минусов». 26 из них ставятся в соответствие буквам, а оставшиеся 6 обозначают «служебные комбинации» (пробел между словами, переход с букв на цифры и знаки препинания, обратный переход с цифр и знаков препинания на буквы, возврат каретки печатающего устройства, переход на новую строку и холостой ход). Например, буква «А» выражается комбинацией «+ + – – -», букве «N» соответствует «– – + + -», а переход на цифры и знаки препинания задается через «+ + – + +». Закодированное сообщение набивается на перфоленте: «плюсы» представляются отверстиями, а «минусы» – их отсутствием. При считывании перфоленты металлические щупы проходят через отверстия, замыкают электрическую цепь и посылают импульсы тока по проводам. А там, где на перфоленте находится «минус», бумага не позволяет этим щупам замкнуть цепь, и в результате токовый импульс не передается.
Вернам предложил готовить перфоленту со случайными знаками (так называемую «гамму») заранее и затем электромеханически складывать ее импульсы с импульсами знаков открытого текста. Полученная сумма представляла собой шифртекст, предназначенный для передачи по линии связи. Вернам установил следующее правило суммирования: если сразу оба импульса являются «плюсами» или «минусами», то итоговый импульс будет «минусом», а если эти импульсы различны, то в результате получится «плюс».
Чтобы при шифровании суммировать импульсы электрически, Вернам сконструировал специальное устройство, состоящее из магнитов, реле и токосъемных пластин. А поскольку процедура расшифрования была совершенно аналогична процедуре зашифрования, это же самое устройство могло быть использовано и при расшифровании. Импульсы поступали в устройство суммирования с двух считывателей: один считывал «гамму», а другой – открытый текст. Получающиеся на выходе «плюсы» и «минусы» можно было передавать подобно обычному телетайпному сообщению. На приемном конце устройство, изобретенное Вернамом, прибавляло импульсы, которые считывались с идентичной ленты с «гаммой», и восстанавливало исходные импульсы открытого текста.
Вся прелесть изобретения Вернама заключалась в том, что больше не требовалось осуществлять зашифрование и расшифрование секретных сообщений в виде отдельных операций. Открытый текст входил в аппарат, находившийся у отправителя сообщения, и точно такой же открытый текст выходил из аппарата, принадлежавшего получателю этого сообщения. А если кто-либо перехватывал это сообщение по пути следования от отправителя к получателю, то в его распоряжении оказывалась ничего не значащая последовательность «плюсов» и «минусов». Теперь, чтобы зашифровать, передать, принять и расшифровать сообщение, требовалось приложить не намного больше усилий, чем при отправке сообщения открытым текстом. Основное преимущество изобретенного Вернамом метода засекречивания сообщений заключалось не в механическом шифровании открытого текста с последующей печатью результата на бумаге, что было осуществлено еще в начале 70-х годов XIX века французами Эмилем Винеем и Жозефом Госсеном. Вернам сумел слить воедино два процесса – шифрование и передачу сообщения. Он создал то, что впоследствии назвали линейным шифрованием, чтобы отличать его от ставшего традиционным предварительного шифрования. Вернам освободил процесс шифрования от оков времени и ошибок, исключив из этого процесса человека. Выдающийся вклад, внесенный Вернамом в практику шифрования, заключается именно в том, что он привнес в шифровальное дело автоматизацию, уже успевшую к тому времени сослужить людям огромную службу во многих областях их деятельности.
Вокруг идеи, высказанной Вернамом в кругу коллег, моментально развернулась кипучая деятельность. Сначала Вернама заставили изложить эту идею в краткой записке, датированной 17 декабря. Компания «AT&T» уведомила об изобретении Вернама американское военно-морское ведомство, с которым она поддерживала тесное сотрудничество. 18 февраля 1918 г. состоялось совещание, в котором приняли участие Паркер, Вернам и другие инженеры из телеграфного отделения компании «AT&T», с одной стороны, и военные моряки, с другой.
27 марта эти же инженеры встретились со своими коллегами из американской компании «Вестерн электрик», производственного филиала «AT&T», и договорились с ними об изготовлении первых двух линейных шифраторов с использованием как можно большего количества стандартных деталей. В лаборатории «Вестерн электрик» они подсоединили изготовленные шифраторы к телетайпам и осуществили первые испытания процесса, который назвали «автоматическим шифрованием». Все устройства, вовлеченные в него, работали превосходно. Компания «AT&T» проинформировала об этом факте майора Джозефа Моборна, который занимал тогда пост начальника отдела научно-исследовательских и конструкторских разработок войск связи США.
Нерешенным оставался всего один вопрос – откуда брать «гамму». В первые дни «гамма» для устройства Вернама представляла собой склеенные петлей короткие перфоленты, на которые были набиты знаки, извлеченные наугад из различных открытых текстов. Инженеры компании «AT&T» почти сразу обратили внимание на существенные изъяны такого процесса «автоматического шифрования», связанные с недостаточной длиной «гаммы». Поэтому, чтобы затруднить криптоанализ, они сделали перфоленты с «гаммой» более длинными. Но тогда с этими перфолентами стало слишком трудно обращаться.
Вернам предложил суммировать две короткие, имеющие различную длину «гаммы» таким образом, как будто бы одна «гамма» шифровала другую. Получающаяся в результате так называемая вторичная «гамма», имевшая значительно большую длину, чем две исходные, первичные «гаммы», которые были использованы для ее генерации, применялась для зашифрования открытого текста. Например, если одна закольцованная лента имела 1000 знаков, а другая 999, то данное различие в длинах всего в один знак давало 999000 комбинаций, прежде чем результирующая последовательность повторялась.
Однако Моборн понимал, что даже усовершенствованная система Вернама весьма уязвима для криптоанализа. В свои 36 лет будущий начальник войск связи США Моборн был незаурядным криптоаналитиком. Он основательно изучил криптоанализ в армейской школе связи и был хорошо знаком с последними достижениями в этой области. Более того, за несколько лет до описываемых событий Моборн сам принимал участие в одной научно-исследовательской работе, в ходе которой специалисты из армейской школы связи сделали вывод о том, что единственной стойкой «гаммой» является такая, которая сравнима по длине с самим шифруемым сообщением. Любое повторение в «гамме» подвергает огромному риску полученные с ее помощью криптограммы и, скорее всего, приведет к их вскрытию. Проведенный Моборном анализ системы «автоматического шифрования» еще более убедил его в этом. Он понял, что не имеет никакого значения, находятся ли повторения в пределах одной криптограммы или они распределены по нескольким, получаются ли они путем комбинирования двух первичных «гамм» или в результате простого повторения в единой длинной «гамме». Важно то, что в «гамме» повторений не должно быть ни при каких условиях. Необходимо, чтобы она была совершенно уникальна и предельно хаотична.