( Март 2005, kiwi byrd )
С подачи одной из статей в Википедии (Шифр Вернама) обнаружена давняя публикация Киви Бёрда, которой по неясным причинам нет на складе kiwi arXiv. Точнее, раньше не было. Теперь есть.
Криптографическая защита информации (или, попросту говоря, шифрование) — наука весьма тонкая, очень чувствительная к нюансам и во многих отношениях близкая к искусству. Более того, в искусстве составления и вскрытия шифров долгое время усматривали связи со сверхъестественными потусторонними силами, и по этой причине в старину относили тайнопись к оккультным наукам.
В нынешние прагматичные времена ничего мистического в криптографии уже давно не осталось. Во всяком случае, так принято считать…
Но если взглянуть на предмет несколько внимательнее, да еще под определенным углом, то нечто загадочное, прямо-таки мистическое углядеть все же можно. Потому что всегда остается поразительная, быть может, даже главная загадка криптографии — это то, насколько регулярно здесь совершается одна и та же элементарная и одновременно грубейшая ошибка, способная приводить к воистину фатальным, безо всякого преувеличения, последствиям.
Однако прежде, чем вспоминать яркие тому примеры из истории, обратимся для начала в день сегодняшний.
MS Office как зеркало экспортной революции
Так уж сложилось, что сверхпопулярный во всем мире пакет приложений Microsoft Office привлекает своих пользователей чем угодно, но только не надежностью защиты документов, подготовленных программами Word или Excel. Когда-то, на ранних этапах эволюции MS Office, для этого имелись вполне объяснимые причины.
Продукт этот, как известно, американский, а вплоть до конца 1990-х годов в США действовали очень строгие ограничения на экспорт криптографии, поскольку средства стойкого шифрования считаются разновидностью оружия и подпадают под такие же суровые процедуры контроля продаж, как ракеты или пулеметы. Поэтому, дабы свободно продавать свои программы по всему миру, Microsoft поневоле приходилось многие годы искусственно ослаблять встроенную криптографию.
Но время шло, власти США постепенно смирились с тем, что Интернет и компьютеры сделали воистину общедоступными как информацию о стойких криптоалгоритмах, так и множество программ шифрования, зачастую бесплатных, эти алгоритмы реализующих. Поэтому ограничения на экспорт американского ПО с криптографией понемногу ослабли, ярким отражением чего стали и соответствующие перемены в криптографической начинке MS Office.
В самом первом, к примеру, релизе (Office 95) все шифрование файлов сводилось к процедуре циклического прибавления пароля к тексту документа. Иначе говоря, никакой реальной защиты в действительности не обеспечивалось, а создавалась лишь ее видимость, поскольку для вскрытия такого «шифра» вручную достаточно элементарных аналитических навыков. А специальные программы находят и снимают тут пароль, что называется, влет.
Информация об этой псевдозащите, естественно, стала общеизвестна, и в последующих версиях Office уже стали применять куда более серьезный криптоалгоритм — поточный шифр RC4 фирмы RSA Security. Но при этом в ранних экспортных версиях программы длина ключа ограничивалась всего лишь 40 битами, что без проблем позволяло вскрывать такие ключи на ПК простым перебором возможных вариантов. Иначе говоря, защита документов опять же была обозначена, но всерьез не реализована.
И лишь в последних версиях Microsoft Office всем пользователям пакета — и американским, и зарубежным — стала доступна теоретически стойкая криптография, в частности, RC4 с большой длиной ключа. Но, подчеркнем, стойкость и здесь лишь «теоретическая», а на практике все выглядит существенно иначе.
В начале 2005 года в Интернете появилась статья сингапурского криптографа Хонг-юн Ву, который первым, похоже, исследовал конкретную реализацию алгоритма шифрования документов Word и Excel в нынешних версиях Microsoft Office. В своей работе Ву показал, что и здесь имеется весьма серьезная слабость, позволяющая без особых проблем вскрывать и читать файлы, защищенные предположительно сильным шифрованием с «невскрываемой» длиной ключа до 128 битов. И причина тому — извечная проблема неправильного применения поточного шифра, а именно, неоднократное использование одной и той же шифрующей последовательности.
[Под поточным шифром понимают прибавление постоянно изменяющейся шифрующей последовательности к отдельным знакам текста документа. Другая популярная конструкция, именуемая «блочным шифром», одно и то же постоянное криптопреобразование применяет к небольшим группам (блокам) текста.]
Среди фундаментальных основ криптографии имеется очень важное правило: если для засекречивания используется поточный шифр, то никогда одну и ту же шифрпоследовательность не накладывают на два разных документа. В данном контексте под «одинаковыми» документами понимаются файлы, совпадающие байт в байт, то есть полные копии.
Любая вставка или удаление знака приводят к сдвигам остальных байтов на другие места, то есть в итоге — к «различным» документам. И если у взломщика имеются хотя бы два разных документа, зашифрованных одним ключом, то все шифрование — хоть самое стойкое — в принципе можно развалить, даже не зная криптоалгоритма, простым побитовым сложением двух шифртекстов вместе.
При таком сложении биты шифрующей последовательности «выпадают» (взаимно уничтожаются), а остается сумма двух открытых текстов. Имея базовые криптоаналитические навыки, а еще лучше специальные программы, взломщик может оба эти документа восстановить с помощью протяжки по тексту вероятных слов и ряда других хорошо известных в криптографии методов.
Как установил Хонг-юн Ву, при реализации шифрования в MS Office допущена именно эта грубейшая криптографическая ошибка. Когда документ Word или Excel защищают паролем, то сколько бы впоследствии текст файла ни модифицировался, RC4 все время генерирует одну и ту же шифрпоследовательность. Иными словами, если злоумышленнику удастся раздобыть больше одной, хотя бы две, версии зашифрованного документа, то вскрытие комплекта — уже дело техники.
В реальной жизни, заметим, появление комплектов не редкость, поскольку при архивном копировании обычно сохраняется один из промежуточных вариантов находящегося в работе файла, а в организациях и офисах многие документы ныне готовят-редактируют несколько человек, перенося варианты с одного компьютера на другой.
Имеется масса причин, из-за которых чрезвычайно сложно предположить, что столь элементарный прокол допущен корпорацией Microsoft случайно. Но причины эти лучше изложить в самом конце статьи, поскольку сейчас самое время проиллюстрировать цену данной ошибки, приведя несколько подобающих драматичных примеров из сравнительно недавней истории человечества.
Всего одна небрежность
В начале 1940 года спецгруппа английской полиции, занимавшаяся прослушиванием радиоэфира для выявления возможных нацистских шпионов на территории острова, случайно отловила шифрованную немецкую радиопередачу необычного вида.
Новый материал радиоперехвата был передан аналитикам английской криптослужбы, которые в ту пору уже вовсю занимались — в условиях строжайшей секретности — вскрытием и чтением германской переписки по шифратору Enigma. Неизвестный шифр совсем не походил на «Энигму», но чрезвычайно заинтересовал британских криптографов, поскольку нес в себе признаки поточного шифрования (хотя в ту пору это называлось иначе), а значит можно было поискать в эфире одноключевые комплекты и попытаться их прочесть.
Целенаправленные поиски вскоре привели к успеху, комплекты действительно удавалось изредка находить и обрывочно вскрывать, однако и этого хватило, чтобы понять — шифрпереписка относится к высокому уровню военного командования Вермахта. Но, увы, не зная конкретного устройства криптосистемы, дальше английским криптоаналитикам продвинуться никак не удавалось.
И тут пришел подарок фортуны. 30 августа 1941 года один из германских шифровальщиков совершил чудовищную ошибку — дважды на одном ключе передал длинную (около 4 тысяч 5-битовых знаков кода Бодо) телеграмму, причем во второй раз слегка сокращая по лени текст, поскольку при запросах приемной стороны на повторную передачу послания приходилось опять набивать вручную.
Делать подобные вещи — применять один и тот же ключ к неидентичным текстам — инструкции категорически запрещают шифровальщикам всех стран. Однако несовершенен человек — а противник всегда начеку. Служба английского радиоперехвата зафиксировала обе передачи, а аналитики, поняв, сколь ценный улов попался на этот раз, с предельной тщательностью вскрыли комплект.
В результате была не только полностью прочитана телеграмма, но и — что самое главное — с высокой точностью восстановлена большущая, длиной почти в 20 тысяч битов, шифрующая последовательность. Английские аналитики не имели ни малейшего понятия, что это за шифратор, но они уже точно знали, какой шифрующий поток он вырабатывает.
То, что произошло дальше, — это пример редкостного сочетания небывалой удачи, гениальных прозрений математиков и мастерства конструкторов-инженеров. На основе вскрытой последовательности математикам удалось полностью восстановить весьма нетривиальную схему неизвестного шифратора (12 шифрующих колес с разной длиной периода и сложным законом движения), получившего условное наименование «Рыба» (Fish, истинное же название шифратора Lorenz Schlüsselzusatz и его внешний вид станут известны много позже, в самом конце войны).
Когда было показано, что в принципе есть возможность находить ключ и читать шифртелеграммы аналитически, путем перебора огромного количества вариантов ключа, родилась идея создать электронную вычислительную машину на лампах-тиратронах. Ничего подобного в ту пору еще не делали, поскольку для машины такой требовалось порядка 1200 электронных ламп, и мало кто верил, что этот монстр вообще будет работать. Но машину-вычислитель к концу 1943 года построили, она получила подобающее имя Colossus и действительно стала оперативно вскрывать шифрпереписку высшего германского руководства, связывавшую командующих армий с генштабом и лично Гитлером.
В последний год войны у англичан уже было 10 огромных машин Colossus II, ежемесячно обеспечивавших дешифрование порядка 300 шифртелеграмм командования Вермахта. Охранялась же эта тайна столь строго, что официальная информация о вскрытии Fish и о суперкомпьютере Colossus была раскрыта британскими властями лишь более полувека спустя, в октябре 2000 года.
Проект «Венона»
Под этим неприметным названием — «The VENONA project» — скрывалась чрезвычайно секретная, длившаяся несколько десятилетий совместная операция спецслужб США и Великобритании, в основе которой лежало вскрытие шифрованной переписки советской разведки периода 1940-х годов. Сейчас, когда о «Веноне» стало известно, у историков появилось немало материалов для нового взгляда на послевоенную историю и ключевые события начального периода Холодной войны.
В то время как англичане, по прямому указанию Уинстона Черчилля, вскоре после вторжения Германии в СССР прекратили в 1941 г. перехват советских коммуникаций, менее обремененные военными тяготами американцы действовали существенно иначе. Дешифровальная служба армии США (предшественница нынешнего АНБ) никогда — ни в годы второй мировой войны, ни сразу после нее — не прекращала перехват и криптоанализ больших массивов шифрованной переписки, связывавшей советское руководство со своими дипломатическими миссиями и разведывательными резидентурами за рубежом.
Президент Рузвельт, как известно, примерно с одинаковой антипатией относился что к нацистам, что к коммунистам. И хотя истории было угодно сделать США и СССР союзниками, для американцев это вовсе не значило, что за весьма агрессивными действиями Сталина за рубежом следует перестать пристально следить. Того же мнения был, естественно, и Черчилль, вот только сил и средств у Британии было куда меньше. Поэтому английские криптоаналитики помогали знанием и опытом.
В итоге же, как это стало известно лишь в 1995 году, повышенный интерес англо-американских союзников к советской шифрпереписке принес чрезвычайно богатые плоды. Хотя в криптографической спецслужбе СССР и в ту пору работали весьма грамотные профессионалы, обеспечивавшие посольства и резидентуры чрезвычайно стойкими, в теории принципиально невскрываемыми ручными шифрами, так называемыми «одноразовыми гаммблокнотами», в реальных условиях тяжелейшей войны здесь была допущена все та же роковая ошибка — повторное использование гаммы (в отечественной криптографии шифрующую последовательность, накладываемую на открытый текст сообщения, традиционно принято именовать «гаммой»).
Когда американские криптоаналитики накопили достаточно большое количество перехвата советских шифртелеграмм, то им удалось обнаружить — пусть и чрезвычайно редкие — случаи повторного использования гаммы. Одинаковые шифрпоследовательности эпизодически выявлялись на совершенно разных линиях связи и даже у совершенно разных советских ведомств. Но тут уже был важен сам факт — один и тот же ключ используется неоднократно, а значит переписку в принципе можно вскрывать.
А потому был затеян чрезвычайно трудоемкий процесс поиска, анализа и вскрытия всех потенциальных «перекрытий гаммы», приводивший иногда к частичному, а иногда и к полному дешифрованию совершенно секретных посланий советской разведки и МИДа. Для увеличения объемов столь ценной информации применялись любые доступные методы — не только математический анализ, но и похищение шифрблокнотов в советских торгпредствах, и добыча полуобгорелых кодовых книг в Финляндии, и установка подслушивающих «жучков» в посольствах (для более осмысленных гипотез об открытом тексте).
В итоге среди нескольких сотен тысяч советских шифртелеграмм, отправленных в период неоднократного использования гаммблокнотов, американцам удалось частично или полностью дешифровать порядка 3000 сообщений. Период этот длился не очень долго, потому что уже после первых успехов американских криптоаналитиков в конце 1940-х годов в спецслужбах СССР узнали о серьезных проблемах с надежностью своей шифрпереписки.
Наиболее вероятно, что информация поступила от знаменитого советского агента Кима Филби, который примерно в то время был офицером по связям между разведками Британии и США. Как бы там ни было, появление в перехвате одноключевых комплектов вскоре прекратилось, а вот кропотливая работа над анализом и дешифрованием накопленных материалов продолжалась (с разной, конечно, степенью интенсивности) более 40 лет, до середины 1980-х.
Дешифрованные в ходе «проекта Венона» телеграммы быстро открыли американцам глаза на существование и активную деятельность чрезвычайно разветвленной разведывательной сети советской агентуры, глубоко проникшей в правительственные и научно-исследовательские структуры США, Великобритании, Канады и Австралии. Более всего, конечно, их обеспокоила деятельность агентов в недрах «проекта Манхэттен» (создание ядерного оружия), в руководстве Госдепартамента и вооруженных сил.
Хотя абсолютно все информаторы и сотрудники разведки в переписке именовались исключительно по агентурным кличкам, сопутствовавшие жизненно-бытовые обстоятельства и личные характеристики позволили идентифицировать и арестовать нескольких советских агентов, таких как Клаус Фукс и супруги Юлиус и Этель Розенберги.
С уверенностью, однако, идентифицированы были не более 10 человек из примерно 350, упомянутых в дешифрованной переписке. Да и из выявленных к суду удалось привлечь далеко не всех, поскольку в материалы следствия ни в коем случае нельзя было приобщать информацию о вскрытой советской переписке, поскольку это была строжайшая, не подлежащая разглашению тайна.
Но в нынешние времена, уже располагая рассекреченными материалами «Веноны», историки могут несколько иначе взглянуть на оголтелую антикоммунистическую истерию и «охоту на ведьм», развернутую в начале 1950-х годов по инициативе шефа ФБР Эдгара Гувера и его приятеля, сенатора Джозефа Маккарти. Эти люди наверняка знали больше, чем могли публично произнести.
Слабость ради слабости
Приведенные здесь примеры, естественно, никак не объясняют причин, по которым корпорация Microsoft продолжает допускать очевидные слабости в применении криптографии.
Но примеры эти предоставляют, так сказать, исторический контекст, учитывая который, вполне можно понять, почему в MS Office использован именно поточный шифр, а не, скажем, блочный — то есть не приводящий к вскрытию одноключевых комплектов.
Или почему в криптоалгоритме RC4, применяемом в MS Office, не задействован предусмотренный там «вектор инициализации» — специальное ухищрение, подмешивающее в один и тот же ключ всякий раз новые биты, чтобы избежать одноключевых комплектов.
Просто невозможно не констатировать, что все эти слабости умышленно внесены в программы Microsoft с одной в общем-то целью — чтобы понизить уровень защиты файлов. В чьих интересах это сделано, объяснять, наверное, не требуется.
# # #
Дополнительное чтение:
Хитрости крипторемесла
Шизо-криптография
Большая ЖрАТВА
Самая точная из оккультных наук