Американская криптология | страница 24



Ещё летом, через несколько месяцев после того, как Соединенные Штаты объявили войну Германии, в компании началась работа над секретным проектом по сохранению секретности сообщений, переданных телетайпом. Во время исследований оказалось, что колебания тока в линии связи могли быть записаны с помощью осциллографа и потом легко преобразованы в буквы переданного сообщения. Поэтому было решено внести изменения в соединение проводов печатающего механизма телетайпа. В результате текст сообщения шифровался методом одноалфавитной замены. В телеграфном отделении понимали, что такая защита была слишком слабой, однако ничего другого придумать не смогли и прекратили заниматься этой проблемой до тех пор, пока Вернам не рассказал им о своей идее.

Он предложил использовать особенности телетайпного кода Бодо, в котором каждый знак состоял из пяти элементов. Каждый из этих элементов символизировал наличие («+») или отсутствие («—») электрического тока в линии связи. Таким образом, были 32 разных комбинации «+» и «—». 26 из них должно было соответствовать буквам, а оставшиеся соответствовали «служебным комбинациям» (пробел между словами, переход с букв на цифры и знаки препинаний, обратный переход с цифр и знаков препинаний на буквы, возвращения каретки печатающего устройства, переход на новую строку и холостой ход).

Например, буква «А» отражалась комбинацией «++—», а переход на цифры и знаки препинаний отражался комбинацией «++—++». Закодированное сообщение набивалось на перфоленте: «+» были дырками, а «—» — их отсутствием. При считывании перфоленты металлические щупы проходили через дырки, замыкали электрическую цепь и посылали импульсы тока по проводам. А там, где на перфоленте находился «—», бумага не позволяла этим щупам замкнуть цепь, и в результате токовый импульс не передавался.

Вернам предложил готовить перфоленту со случайными знаками (так называемую «гамму») предварительно и потом электромеханически соединять её импульсы с импульсами знаков открытого текста. «Гамма» — это секретный ключ, созданный из хаотического набора букв того же алфавита. Полученная сумма представляла собой шифротекст, предназначенный для передачи по линии связи. Вернам установил такое правило сложения: если одновременно оба импульса были «+» или «—», то итоговый импульс будет «—», а если эти импульсы разные, то в результате выйдет «+».

Сложение, по современной терминологии, осуществляется «по модулю 2» («О» означает знак «—», а 1 — «+»): 0+0=0; 0+1=1; 1+0=1; 1+1=0. Пусть, например, знак «гаммы» имеет вид: «+—+—» (10100). Тогда буква «А» — «++—» (11000) при шифровании переходит в двоичную комбинацию «—++—»: (01100) = (11000)х(10100). При дешифровке ту же операцию необходимо повторить в обратном порядке: (01100)х(10100)=(11000) — «++—» — буква «А».