Телеграф и радио начали постепенно вытеснять кодирование с целью защиты информации в интересах применения шифров. Громоздкие и малоудобные при использовании секретные кодовые книги могли стать и становились добычей противника, а их изменение порождало серьёзные проблемы. Шифры оказались намного более мобильными и более дешёвыми. Секретное кодирование начало уменьшаться, но не исчезло совсем. Коды стали применяться вместе с шифрами. Такое соединение оказалось достаточно эффективным и дошло до наших дней. Подчеркнем, что при компрометации шифра достаточно лишь изменить его ключи, а не все кодовые книги. Отметим также, что коды очень чувствительны к лексике и словарному запасу языка общения. Появление новых терминов и понятий приводило к необходимости восстановления кодовых книг. Шифры в этом плане намного более важны, потому что их применение не связано с содержанием открытого текста.
Кстати, в 1881 году была запатентована первая идея телефонного шифратора Д.Х. Роджерсом (D.H. Rogers). Идея состояла в передаче телефонного сообщения несколькими (в самом простом случае — двумя) линиями с помощью поочередных импульсов в некоторой последовательности, которая быстро изменялась и напоминала телеграфное сообщение. Предлагалось разнести такие линии на значительное расстояние друг от друга для того, чтобы устранить возможность подключения сразу ко всем одновременно. Подключение же к одной из них позволяло бы слышать только отдельные неразборчивые сигналы.
В XIX веке применялось, в основном, так называемое предварительное шифрование сообщений. В этом случае отправитель зашифровывал передаваемое сообщение (в котором шифротекст удовлетворял требованиям телеграфной передачи), после чего относил шифрованное сообщение на телеграф. В XX веке такое замедление в передаче сообщений часто оказывалось неприемлемым. Нужно было разработать методы так называемой линейной передачи шифрованных сообщений, при которой аппарат шифрования (шифратор) находился бы непосредственно в аппаратуре передачи сообщений. Таким образом, передача шифрованного сообщения в принципе не отличалась бы от передачи несекретного сообщения.
Такую идею автоматического шифрования телеграфных сообщений в декабре 1917 года предложил американец Жильбер Вернам (Gilbert Vernam) (1890–1960), молодой инженер компании «АТ&Т» (англ. American Telephone and Telegraph) и талантливый изобретатель. Он работал в телеграфном отделении научно-исследовательского отдела компании, где занимались разработкой «телетайпа» — буквопечатающего телеграфного аппарата.
Ещё летом, через несколько месяцев после того, как Соединенные Штаты объявили войну Германии, в компании началась работа над секретным проектом по сохранению секретности сообщений, переданных телетайпом. Во время исследований оказалось, что колебания тока в линии связи могли быть записаны с помощью осциллографа и потом легко преобразованы в буквы переданного сообщения. Поэтому было решено внести изменения в соединение проводов печатающего механизма телетайпа. В результате текст сообщения шифровался методом одноалфавитной замены. В телеграфном отделении понимали, что такая защита была слишком слабой, однако ничего другого придумать не смогли и прекратили заниматься этой проблемой до тех пор, пока Вернам не рассказал им о своей идее.
Он предложил использовать особенности телетайпного кода Бодо, в котором каждый знак состоял из пяти элементов. Каждый из этих элементов символизировал наличие («+») или отсутствие («—») электрического тока в линии связи. Таким образом, были 32 разных комбинации «+» и «—». 26 из них должно было соответствовать буквам, а оставшиеся соответствовали «служебным комбинациям» (пробел между словами, переход с букв на цифры и знаки препинаний, обратный переход с цифр и знаков препинаний на буквы, возвращения каретки печатающего устройства, переход на новую строку и холостой ход).
Например, буква «А» отражалась комбинацией «++—», а переход на цифры и знаки препинаний отражался комбинацией «++—++». Закодированное сообщение набивалось на перфоленте: «+» были дырками, а «—» — их отсутствием. При считывании перфоленты металлические щупы проходили через дырки, замыкали электрическую цепь и посылали импульсы тока по проводам. А там, где на перфоленте находился «—», бумага не позволяла этим щупам замкнуть цепь, и в результате токовый импульс не передавался.
Вернам предложил готовить перфоленту со случайными знаками (так называемую «гамму») предварительно и потом электромеханически соединять её импульсы с импульсами знаков открытого текста. «Гамма» — это секретный ключ, созданный из хаотического набора букв того же алфавита. Полученная сумма представляла собой шифротекст, предназначенный для передачи по линии связи. Вернам установил такое правило сложения: если одновременно оба импульса были «+» или «—», то итоговый импульс будет «—», а если эти импульсы разные, то в результате выйдет «+».
Сложение, по современной терминологии, осуществляется «по модулю 2» («О» означает знак «—», а 1 — «+»): 0+0=0; 0+1=1; 1+0=1; 1+1=0. Пусть, например, знак «гаммы» имеет вид: «+—+—» (10100). Тогда буква «А» — «++—» (11000) при шифровании переходит в двоичную комбинацию «—++—»: (01100) = (11000)х(10100). При дешифровке ту же операцию необходимо повторить в обратном порядке: (01100)х(10100)=(11000) — «++—» — буква «А».
Чтобы складывать электроимпульсы при шифровании, Вернам сконструировал специальное устройство, которое состояло из магнитов, реле и токосъёмных пластин. А поскольку процедура дешифровки была аналогична процедуре шифрования, этот же прибор мог быть использован и при дешифровке. Импульсы поступали в устройство сложения из двух счётчиков: один считывал «гамму», а другой — открытый текст. «Плюсы» и «минусы», которые получали на выходе, можно было передавать как обычное телетайпное сообщение. На приёмном конце устройство, изобретённое Вернамом, добавляло импульсы, считываемые с идентичной ленты с «гаммой», и восстанавливало исходные импульсы открытого текста.
Важность изобретения Вернама заключалась в том, что больше не нужно было осуществлять шифрование и дешифровку секретных сообщений в виде отдельных операций. Открытый текст поступал в аппарат, находившийся у отправителя сообщения, и такой же открытый текст выходил из аппарата, который находился у получателя этого сообщения. А если кто-нибудь перехватывал это сообщение по пути прохождения от отправителя к получателю, то в его распоряжении оказывалась ничего не значащая последовательность «плюсов» и «минусов». Теперь, чтобы зашифровать, передать, принять и расшифровать сообщение, было нужно приложить не намного больше усилий, чем при отправлении сообщения открытым текстом.
Основное преимущество изобретённого Вернамом метода засекречивания сообщений заключалось в отсутствии механического шифровании открытого текста со следующей печатью результата на бумаге, осуществлённое ещё в начале 1870-х годов французами Эмилем Винеем (Emil Viney) и Жозефом Госсеном (Josef Gossen). Вернам впервые сумел совместить два процесса — шифрование и передачу сообщения. Он создал то, что впоследствии назвали линейным шифрованием, чтобы отличать его от традиционного предварительного шифрования. Вернам освободил процесс шифрования от уз времени и ошибок, исключив из этого процесса человека. Выдающийся вклад, сделанный Вернамом в практику шифрования, заключается именно в том, что он привнёс в шифровальное дело автоматизацию, которая уже успела к началу XX века послужить людям во многих сферах их деятельности.
Вокруг идеи, изложенной Вернамом в кругу коллег, моментально развернулась активная деятельность. Сначала Вернама заставили изложить эту идею в короткой записке, которая была датирована 17 декабря 1917 года. Компания «АТ&Т» сообщила об изобретении Вернама американскому военно-морскому ведомству, с которым она поддерживала тесное сотрудничество. 18 февраля 1918 года состоялось совещание, в котором приняли участие Вернам и другие инженеры телеграфного отделения компании «АТ&Т», с одной стороны, и военные моряки, с другой.
27 марта эти же инженеры встретились со своими коллегами из американской компании «Вестерн Электрик», производственного филиала «АТ&Т», и договорились с ними об изготовлении первых двух линейных шифраторов с использованием как можно большего количества стандартных деталей. В лаборатории «Вестерн Электрик» изготовленные шифраторы были присоединены к телетайпам и осуществлены первые испытания процесса, которые назвали «автоматическим шифрованием». Все устройства, входившие в его состав, работали без сбоев. Компания «АТ&Т» проинформировала об этом факте майора Джозефа Моборна (Joseph Mauborgne) (1881–1971), занимавшего тогда должность начальника отдела научно-исследовательских и конструкторских разработок войск связи Армии США.
Нерешённым оставался только один вопрос — откуда брать «гамму». Сначала «гамма» для устройства Вернама представляла собой склеенные петлёй короткие перфоленты, на которых были набиты знаки, взятые наугад из разных открытых текстов. Инженеры компании «АТ&Т» почти сразу обратили внимание на существенные изъяны такого процесса «автоматического шифрования», связанные с недостаточной длиной «гаммы». Поэтому, чтобы усложнить криптоанализ, они сделали перфоленты с «гаммой» более длинными. Но тогда эти перфоленты стало слишком трудно использовать.
Вернам предложил суммировать две короткие, имеющие разную длину «гаммы» так, чтобы одна «гамма» шифровала другую. Полученная в результате так называемая «вторичная гамма», более длинная, чем две исходные «первичные гаммы», использованные для её генерации, была применена для зашифрования открытого текста. Например, если одна закольцованная лента имела 1000 знаков, а другая — 999, то данное расхождение в длинах всего в один знак давало 999 тысяч комбинаций, прежде чем результирующая последовательность повторялась.
Однако Моборн понимал, что даже усовершенствованная система Вернама очень уязвима для криптоанализа. В свои 36 лет будущий начальник войск связи Армии США Моборн был незаурядным криптоаналитиком. Он обстоятельно изучил криптоанализ в армейской школе связи и был хорошо знаком с последними достижениями в этой сфере. Более того, за несколько лет до описываемых событий Моборн сам принимал участие в одной научно-исследовательской работе, в ходе которой специалисты армейской школы связи сделали вывод о том, что единственной стойкой «гаммой» была та, которая сравнима по длине с самим сообщением. Любое повторение в «гамме» подвергало огромному риску полученные с её помощью криптограммы и, скорее всего, привели бы к их раскрытию.