Взломщики кодов
Шрифт:
Вернам предложил суммировать две короткие, имеющие различную длину «гаммы» таким образом, как будто бы одна «гамма» шифровала другую. Получающаяся в результате так называемая вторичная «гамма», имевшая значительно большую длину, чем две исходные, первичные «гаммы», которые были использованы для ее генерации, применялась для зашифрования открытого текста. Например, если одна закольцованная лента имела 1000 знаков, а другая 999, то данное различие в длинах всего в один знак давало 999000 комбинаций, прежде чем результирующая последовательность повторялась.
Однако Моборн понимал, что даже усовершенствованная система Вернама весьма уязвима для криптоанализа. В свои 36 лет будущий начальник войск связи США Моборн был незаурядным криптоаналитиком. Он основательно изучил криптоанализ в армейской школе связи и был хорошо знаком с последними достижениями в этой области. Более того, за несколько
Осознав это, Моборн объединил свойство хаотичности «гаммы», на которое опирался Вернам в своей системе «автоматического шифрования», со свойством уникальности «гаммы», выработанным криптографами армейской школы связи, в системе шифрования, которую ныне принято называть «одноразовым шифрблокнотом». Одноразовый шифрблокнот содержит случайную «гамму», которая используется один, и только один раз. При этом для каждого знака открытого текста, принадлежащего всей совокупности сообщений, которые уже были посланы данной группой шифркорреспондентов или еще только будут посланы ею в обозримом будущем, предусматривается использование абсолютно нового и не поддающегося предсказанию знака «гаммы».
Это абсолютно стойкая шифрсистема. Подавляющее большинство систем шифрования являются абсолютно стойкими лишь на практике, поскольку криптоаналитик может найти пути их вскрытия при наличии у него определенного количества шифртекста и достаточного времени для его исследования. Одноразовый же шифрблокнот является абсолютно стойким как в теории, так и на практике. Каким бы длинным ни был перехваченный шифртекст, сколько бы много времени ни отводилось на его исследование, криптоаналитик никогда не сможет вскрыть одноразовый шифрблокнот, использованный для получения этого шифртекста. И вот почему.
Вскрытие многоалфавитного шифра означает объединение всех букв, зашифрованных при помощи одного шифралфавита, в единую группу, которую можно изучать на предмет выявления ее лингвистических особенностей. Методы такого объединения могут быть различны в зависимости от вида «гаммы». Так, метод Казиского заключается в выделении идентично гаммированных букв открытого текста при повторяющейся «гамме». Связная «гамма» может быть вскрыта путем взаимного восстановления открытого текста и «гаммы». А «гамма», использованная для зашифрования двух или более сообщений, поддается вскрытию путем одновременного восстановления открытых текстов этих сообщений, причем правильность прочтения одного текста контролируется читаемостью другого. Почти для всех разновидностей многоалфавитиых шифров разработан свой метод вскрытия, который основан на их отличительных особенностях.
Совершенно иначе обстоит дело с одноразовым шифрблокногом. В этом случае криптоаналитик не имеет отправной точки для своих исследований, так как в одноразовой шифрсистеме «гамма» не содержит повторений, не используется более одного раза, не является связным текстом и не имеет внутренних структурных закономерностей. Поэтому все методы дешифрования, в той или иной мере основанные на этих характеристиках, не дают никаких результатов. Криптоаналитик заходит в тупик.
А как обстоит дело с методом тотального опробования? Ведь прямой перебор всех возможных ключей в конечном счете обязательно приведет криптоаналитика к открытому тексту. Однако успех, приобретенный этим путем, иллюзорен. Тотальное опробование действительно позволяет получить исходный открытый текст. Но оно также даст и каждый другой возможный текст той же длины, и сказать, какой из них является истинным, будет невозможно.
Предположим, что криптоаналитик пытается дешифровать четырехбуквенное военное сообщение, применяя все «гаммы», начиная с «АААА». Используя «AABI» в качестве «гаммы», он получает открытый текст «kiss» 56 . Неподходящий вариант для данного контекста. Криптоаналитик не останавливается на достигнутом. С помощью «AAEL» получается открытый текст «kill» 57 . Уже лучше, но хочется удостовериться, нет ли чего более подходящего. Исследование продолжается, и при «гамме» «ААЕМ» выходит слово «kilt» 58 . «AAER» дает «kiln» 59 , «GZBM» – «fast» 60 , «KHIA» – «slow» 61 , «HRIW» – «stop» 62 , «PZVQ» – «hard» 63 и «RZBU» – «easy» 64 . Когда криптоаналитик доберется, наконец, до «гаммы» «ZZZZ», он обнаружит, что просто составил перечень всевозможных английских слов из четырех букв.
56
«Поцелуй».
57
«Убей»
58
«Килт».
59
«Обжигать».
60
«Быстро»
61
«Медленно»
62
«Остановиться».
63
«Трудно»
64
«Легко».
У криптоаналитика остается последняя надежда. Предположим, что он получил н свое распоряжение открытый текст какой-то отдельной криптограммы (например, в результате ошибки связиста). В состоянии ли криптоаналитик использовать «гамму», которую он сможет теперь вычислить, имея на руках открытый и соответствующий ему шифрованный тексты, для определения алгоритма, с помощью которого была выработана эта «гамма», чтобы потом предугадать все будущие «гаммы»? Нет, не в состоянии. Ведь если «гамма» действительно случайна, это значит, что она не подчиняемся никаким видимым закономерностям.
Правильный ответ опять ускользает от криптоаналитика. Одноразовая случайная «гамма» полностью подавляет его, растворяя все усилия криптоаналитика в хаосе, с одной стороны, и в бесконечности, с другой. Здесь он сталкивается с пропастью, непреодолимой для человека.
Почему же горда этот самый совершенный шифр не нашел всеобщего применения? Ответ прост, из-за огромного количества «гаммы», которая требуется при его использовании. Проблемы, возникающие при изготовлении, рассылке и уничтожении «гаммы», человеку непосвященному во все тонкости организации шифрсвязи могут показаться пустячными, однако в военное время объемы переписки зачастую удивляют даже самых бывалых связистов. В течение суток может понадобиться зашифровать сотни тысяч слов, а для этого требуется изготовить миллионы знаков «гаммы». И поскольку «гамма» для каждого сообщения должна быть единственной и неповторимой, то ее общий объем будет эквивалентен объему всей переписки за время воины.
В общем, практические проблемы не позволяют применять одноразовые шифрблокноты в быстро меняющихся ситуациях, например в ходе проведения военных операций. Этих проблем не существует в более стабильных условиях: в высших военных штабах, дипломатических представительствах или в агентурной переписке одноразовые шифрблокноты достаточно практичны и находят повсеместное применение. Однако и здесь возникают непреодолимые трудности, если объем переписки слишком велик.
Это как раз и произошло, когда Моборн, устроив первое крупное испытание шифрсистемы Вернама, установил его машины сразу в трех городах. Даже при сравнительно небольшом объеме переписки (до 135 коротких сообщений в день) оказалось невозможным изготовить достаточное количество качественной «гаммы». Поэтому, не найдя другого выхода из затруднительного положения, Моборн стал комбинировать две относительно короткие «гаммы», чтобы получать из них более длинную «гамму», как это первоначально предлагал делать сам Вернам.