Развитие тайнописи
Некоторые из наиболее ранних упоминаний о тайнописи восходят еще к Геродоту, «отцу истории», как называл его римский философ и политический деятель Цицерон.
В своей «Истории» Геродот повествовал о вооруженных столкновениях между Грецией и Персией в пятом веке до н. э., которые он рассматривал как противоборство между свободой и рабством, между независимыми греческими государствами и тиранической Персией. Согласно Геродоту, именно искусство тайнописи спасло Грецию от порабощения Ксерксом, царем царей, деспотичным правителем Персии.
Отношения между Грецией и Персией значительно обострились вскоре после того, как Ксеркс начал строительство города Персеполь, новой столицы своего царства. Дань и дары поступали со всех концов империи и из соседних государств, за исключением Афин и Спарты. Решив отомстить за такую дерзость, Ксеркс приступил к мобилизации войска, заявив: «Мы так расширим персидскую империю, чтобы ее границами служило небо, чтобы солнце не смогло бы увидеть ни клочка земли вне наших границ». Следующие пять лет он потратил на то, чтобы тайно собрать самую крупную в истории армию, и в 480 году до н. э. он был готов нанести внезапный удар.
Однако наращивание военной мощи Персии видел Демарат, грек, изгнанный с родины и живший в персидском городе Сузы. Несмотря на изгнание, он все же оставался лоялен к Греции и поэтому решил предупредить спартанцев о плане вторжения Ксеркса. Проблема заключалась в том, как передать сообщение, чтобы его не могли перехватить персидские солдаты. Геродот писал:
Поскольку опасность обнаружения послания была очень велика, то оставался только единственно возможный способ, которым Демарат мог успешно передать свое послание. Он соскоблил воск с двух сложенных дощечек для письма, написал прямо на дереве, что собирается делать Ксеркс, а затем снова покрыл воском дощечки с сообщением. По внешнему виду дощечки казались чистыми, без каких-либо записей, поэтому они не вызывали подозрения у персидских солдат. Когда гонец с посланием добрался до места назначения, никто не мог и предположить о наличии послания, пока, как я полагаю, дочь Клеомена[2], Горго, которая была женой Леонида I[3], не догадалась и не сказала другим, что если они счистят воск, то найдут записанное под воском на дощечках послание. Так и сделали; после того как был счищен воск, под ним обнаружилось послание, которое прочли, а затем передали в другие греческие города.
Благодаря этому предупреждению беззащитные на тот момент греки стали сами вооружаться.
Доходы от принадлежащих государству серебряных рудников, которые до этого распределялись среди граждан, были направлены на строительство двухсот военных кораблей.
Ксеркс утерял элемент внезапности, и 23 сентября 480 года до н. э., когда персидский флот достиг Саламинского пролива неподалеку от Афин, греки уже были готовы. Хотя Ксеркс полагал, что он поймал греческий флот в ловушку, но на самом деле греки сознательно заманивали персидские корабли в пролив. Греки знали, что их небольшие суда, которых к тому же было в несколько раз меньше, чем у персов, в открытом море будут уничтожены, но внутри пролива, благодаря маневренности, они смогут превзойти персов. Так как ветер изменил направление, то персидский флот оказался внутри пролива и вынужден был принять бой на греческих условиях. Корабль персидской царицы Артемисии[4] был окружен с трех сторон, так что она смогла вырваться обратно в море, только протаранив один из своих кораблей. Возникла паника, большое число персидских судов сталкивалось друг с другом, и греки начали стремительную атаку. В течение одного дня огромные силы персов были уничтожены.
Стратегия Демарата для обеспечения секретности переписки заключалась в том, что он просто прятал сообщение. Геродот также упомянул еще об одном случае, когда сокрытия послания оказалось достаточным, чтобы беспрепятственно его передать. Он поведал историю Гистия, который хотел подтолкнуть Аристагора из Милета к восстанию против персидского царя (Дария). Чтобы послание не обнаружили враги, Гистий обрил голову своего вестника, написал на коже текст послания, а затем подождал, пока волосы не отрастут вновь. Что ж, неспешный в то время ход истории позволял пользоваться такими способами. Вестник, у которого не было ничего явно его компрометирующего, мог путешествовать не беспокоясь. По прибытии на место вестник обрил голову и «вручил» адресату послание.
Секретная переписка, осуществляемая путем сокрытия имеющегося сообщения, носит название стеганография, которое происходит из греческих слов steganos — «покрытый» и graphein — «писать». В течение двух тысячелений после Геродота во всем мире применялись различные виды стеганографии. Например, древние китайцы писали сообщения на тонкой шелковой ткани, которая затем сворачивалась в крохотный шарик и покрывалась воском, после чего посланец проглатывал этот восковой шарик. В шестнадцатом веке итальянский ученый Джованни Порта показал, как скрыть послание внутри сваренного вкрутую яйца, вначале изготовив чернила из одной унции (28 г) квасцов и пинты (0,5 л) уксуса, а затем записав послание этими чернилами на скорлупе.
Раствор проникнет сквозь поры скорлупы и оставит сообщение на поверхности плотного яичного белка, которое можно будет прочитать, только разбив яйцо и очистив скорлупу. Стеганография также включает в себя применение невидимых чернил. Еще в первом веке н. э. Плиний-старший показал, как млечный сок некоторых растений может использоваться в качестве таких чернил. После высыхания надпись, сделанная этими чернилами, не видна, но при несильном нагреве она приобретает коричневый цвет. Многие органические жидкости ведут себя похожим образом: при нагреве, из-за того, что в них содержится большое количество углерода, они темнеют. И это не составляет секрета для нынешних шпионов, которые, в случае если у них исчерпались симпатические чернила, используют для этой цели собственную мочу.
То, что стеганография смогла просуществовать столь длительное время, показывает, что она, несомненно, обеспечивает определенную секретность, но ей присущ один принципиальный недостаток. Если курьер будет обыскан и у него обнаружат сообщение, то сразу же станет известно и его содержание. Перехват сообщения мгновенно ставит под угрозу всю безопасность. Бдительная стража может тщательно обыскивать всех, кто пересекает границу, счищая с дощечек весь воск, нагревая чистые листы бумаги, очищая сваренные яйца от скорлупы, брея людям головы и т. п., так что случаи обнаружения сообщения будут неизбежны.
Поэтому, наряду с усовершенствованием стеганографии, происходило развитие криптографии, которая берет начало от греческого слова kryptos, означающего «тайный». Цель криптографии состоит не в том, чтобы скрыть наличие сообщения, а в том, чтобы скрыть его смысл, — процесс, известный как шифрование. Чтобы сделать сообщение непонятным, оно зашифровывается по определенному правилу, которое заранее оговаривается между отправителем сообщения и его получателем. Так что адресат, получив сообщение, может применить к нему правило шифрования в обратном порядке, после чего его смысл станет понятным. Преимущество криптографии состоит в том, что если противник перехватит зашифрованное сообщение, то прочитать его ему не удастся. Восстановить исходное сообщение из зашифрованного текста, не зная правила шифрования, может оказаться для противника сложной, а то и вообще невыполнимой задачей.
Хотя криптография и стеганография являются независимыми, но для обеспечения максимальной секретности, чтобы и зашифровать, и скрыть сообщение, можно пользоваться обеими. К примеру, во время Второй мировой войны стала популярной микроточка, которая является одним из видов стеганографии. Германские агенты в Латинской Америке фотографическим способом сжимали страницу текста в точку диаметром менее 1 миллиметра, а затем прикрепляли эту микроточку поверх обычной точки в конце предложения в на первый взгляд совершенно безобидном письме.
ФБР обнаружило первую микроточку в 1941 г., получив предупреждение о том, что американцам следует искать крошечный блик на поверхности письма, указывающий, что в этом месте прикреплен кусочек глянцевой фотопленки. Впоследствии американцы смогли прочитать содержимое большинства перехваченных микроточек, за исключением тех случаев, когда германские агенты предпринимали дополнительные меры предосторожности, шифруя свое сообщение перед сжатием. Когда же вместе со стеганографией применялась и криптография, американцам иногда удавалось перехватывать сообщения и пресекать передачу информации, но это не давало им никаких новых сведений о немецкой шпионской деятельности. Из этих двух направлений обеспечения секретности связи криптография более эффективна благодаря тому, что дает возможность предотвратить попадание информации в руки врага.
В свою очередь криптография сама может быть разделена на два направления, известные как перестановка и замена. При перестановке буквы сообщения просто переставляются, образуя анаграмму. Для очень короткого сообщения, состоящего, например, из одного слова, такой способ весьма ненадежен, поскольку существует крайне ограниченное число возможных способов перестановки горстки букв. Так, три буквы с, о и w могут быть расставлены всего лишь шестью различными способами: cow, cwo, ocw, owc, wco, woc. Однако по мере увеличения количества букв число возможных перестановок стремительно растет, и восстановить исходное сообщение становится невозможным, если не известен точный способ шифрования. For example, consider this short sentence (рассмотрим, например, это короткое предложение). В нем содержится всего 35 букв, но число их различных перестановок составляет более 50 000 000 000 000 000 000 000 000 000 000.
Если бы один человек смог проверять одну перестановку в секунду, и если бы все люди на Земле работали день и ночь, то, чтобы проверить все возможные перестановки, потребовалось бы времени в тысячи раз больше, чем срок существования Вселенной.
Создается впечатление, что случайная перестановка букв гарантирует очень высокую степень безопасности, поскольку для противника дешифровать даже короткое предложение окажется неосуществимым. Но здесь есть отрицательный момент. При перестановке образуется невероятно сложная анаграмма, и если буквы случайно, ни с того ни с сего, перепутаются, то ни получатель, ни перехвативший ее противник не смогут ее расшифровать. Для обеспечения эффективности способ перестановки букв должен быть заранее оговорен отправителем сообщения и его получателем, но он должен храниться в секрете от противника.
Например, школьники часто посылают друг другу сообщения, зашифрованные с помощью перестановки (данный шифр называется «штакетник»), буквы которого поочередно пишутся на верхней и нижней строчках. Далее последовательность букв с нижней строчки присоединяется к концу последовательности букв на верхней строчке, благодаря чему и образуется зашифрованное сообщение. Например:
Теперь адресат может восстановить исходное сообщение просто выполняя эти же действия в обратном порядке. Существует множество различных способов последовательных перестановок, в том числе трехстрочный шифр «штакетник», когда сообщение вначале записывается в три строчки, а не в две. Или же можно производить перестановку для каждой пары букв так, чтобы поменялись местами первая и вторая буквы, третья и четвертая буквы и так далее.
Один из способов перестановки был реализован в самом первом из известных шифровальных устройств, предназначенных для военных целей, — спартанской скитале, — упоминание о которой восходит к пятому веку до н. э. Скитала представляла собой деревянный цилиндр, вокруг которого наматывалась полоска кожи или пергамента, как показано на рисунке 2. Отправитель писал сообщение по всей длине скиталы, а затем разматывал полоску, на которой после этого оставался бессмысленный набор букв. Сообщение оказывалось зашифрованным. Вестник брал кожаную полоску и обычно прятал сообщение, используя полоску как пояс, буквами внутрь, то есть кроме зашифровывания применял также и стеганографию. Чтобы получить исходное сообщение, адресат просто наматывал полоску кожи вокруг скиталы того же диаметра, что и скитала, которой пользовался отправитель. В 404 году до н. э. к спартанскому полководцу Лисандру привели вестника, окровавленного и еле держащегося на ногах, одного из пяти оставшихся в живых после крайне опасного путешествия из Персии. Вестник передал свой пояс Лисандру, который намотал его вокруг своей скиталы и прочитал, что Фарнабаз[5] собирается напасть на него. Благодаря скитале Лисандр успел подготовиться к нападению и отбил его.
Рис. 2 На полоске кожи, снятой со скиталы отправителя (деревянный цилиндр), остается набор случайных букв: S, T, S, P… Сообщение можно будет прочесть, только если намотать эту полоску вокруг другой скиталы такого же диаметра.
Альтернативой перестановке является замена. Одно из первых описаний зашифровывания с помощью замены дается в «Кама-сутре», тексте, написанном в четвертом веке н. э. священником-брамином Ватсьяяной, но основанном на манускриптах, относящихся к четвертому веку до н. э. Согласно «Кама-сутре» женщины должны овладеть 64 искусствами, такими как приготовление пищи и напитков, искусство одевания, массаж, приготовление ароматов. В этот список также входят менее очевидные искусства: колдовство, игра в шахматы, переплетное дело и плотничанье. Под номером 45 в списке стоит mlecchita-vikalpa, искусство тайнописи, предназначенное для того, чтобы помочь женщинам скрыть подробности своих любовных связей. Один из рекомендуемых способов заключается в том, чтобы расположить попарно буквы алфавита случайным образом, а затем заменять каждую букву в исходном сообщении ее парной. Если мы применим этот принцип к латинскому алфавиту, то мы можем расположить буквы попарно следующим образом:
Тогда вместо meet at midnight (встретимся в полночь) отправитель напишет CUUZ VZ CGXSGIBZ. Такой вид тайнописи называется шифром замены, поскольку каждая буква в исходном тексте заменяется другой буквой, так что этот шифр диаметрально противоположен шифру перестановки. При перестановке каждая буква остается сама собой, но меняет свое местоположение, в то время как при замене каждая буква меняется на другую, но остается на своем месте.
Первое документально подтвержденное использование шифра замены в военных целях появилось в «Галльских войнах» Юлия Цезаря. Цезарь описывает, как он послал сообщение Цицерону, находившемуся в осаде и бывшему на грани капитуляции.
В этом письме латинские буквы были заменены греческими, поэтому враг его не смог бы понять. Цезарь описал драматичность доставки письма:
Гонцу дали наставление, что если он не сможет приблизиться, то должен метнуть дротик с прикрепленным к ремешку письмом так, чтобы оно упало в лагере. Убоявшись излишнего риска, галльский всадник метнул дротик, как ему и приказали. По случайности дротик попал в башню, и в течение двух дней наши отряды его не замечали; только на третий день его увидел солдат, вытащил и доставил Цицерону. Цицерон просмотрел письмо, а затем прочитал его на собрании солдат, что вызвало у всех огромную радость.
Цезарь так часто пользовался тайнописью, что Марк Валерий Проб написал целый трактат о применяемых им шифрах, который, к сожалению, не дошел до наших дней. Однако благодаря сочинению Гая Транквилла Светония «Жизнь 12 Цезарей», написанному во втором веке н. э., у нас имеется подробное описание одного из видов шифра замены, применявшегося Юлием Цезарем. Он просто заменял каждую букву в послании буквой, стоящей в алфавите на три позиции дальше. Криптографы часто пользуются терминами алфавит открытого текста, то есть алфавит, используемый для создания исходного, незашифрованного сообщения, и шифралфавит, буквы которого подставляются вместо букв алфавита открытого текста. Если алфавит открытого текста расположить над шифралфавитом, как показано на рисунке 3, то станет ясно, что шифралфавит сдвинут на три позиции, и поэтому такой вид замены часто называется шифром сдвига Цезаря или просто шифром Цезаря.
Рис. 3 Шифр Цезаря, примененный к короткому сообщению. Шифр Цезаря основан на шифралфавите, который сдвинут на определенное число позиций (в данном случае — на три) относительно алфавита открытого текста. В криптографии принято записывать алфавит открытого текста строчными буквами, а шифралфавит — заглавными. Точно так же, исходное сообщение, то есть незашифрованный текст, записывается строчными буквами, а зашифрованное сообщение, то есть шифртекст, — заглавными.
Шифр — это обобщенное название, даваемое любой криптографической замене, при которой каждая буква заменяется другой буквой или символом.
Хотя Светоний упоминает только о шифре Цезаря со сдвигом на три позиции, ясно, что осуществляя сдвиг на 1…25 позиций[6], можно создать 25 различных шифров. Если же мы не будем ограничиваться сдвигом алфавита, а будем рассматривать шифралфавит как любую возможную перестановку букв алфавита открытого текста, то мы сможем создать гораздо большее количество различных шифров. Существует свыше 400 000 000 000 000 000 000 000 000 таких перестановок и, соответственно, такое же количество отличающихся шифров.
К каждому отдельному шифру применимы понятия общего метода шифрования, известные как алгоритм и ключ, которые определяют детали конкретного способа шифрования. В этом случае алгоритм заключается в замене каждой буквы в алфавите открытого текста буквой из шифралфавита, причем шифралфавит может представлять собой любую возможную перестановку алфавита открытого текста. Ключ же определяет, какой именно шифралфавит используется для конкретного способа шифрования. Связь между алгоритмом и ключом показана на рисунке 4.
У противника, анализирующего перехваченное зашифрованное сообщение, могут иметься предположения об алгоритме, но точного ключа он знать не будет.
Рис. 4 Чтобы зашифровать исходный текст сообщения, отправитель применяет к нему алгоритм шифрования. Алгоритм является общей системой для шифрования и должен быть точно определен путем выбора ключа. При совместном применении ключа и алгоритма к открытому тексту получается зашифрованное сообщение, или шифртекст. Разумеется, зашифрованный текст во время передачи адресату может быть перехвачен противником, но противник не сможет дешифровать это сообщение. В то же время получатель, который знает и ключ, и алгоритм, использованные отправителем, сможет преобразовать зашифрованный текст сообщения обратно в исходный вид.
К примеру, он вполне может подозревать, что каждая буква в открытом тексте была заменена другой буквой в соответствии с шифралфавитом, но он не в состоянии узнать, какой именно шифралфавит был использован. Если шифралфавит — ключ — хранится отправителем и получателем в секрете, тогда противник не сможет дешифровать перехваченное сообщение. В отличие от алгоритма, важность ключа является основополагающим принципом криптографии. Он был сформулирован в 1883 году голландским лингвистом Огюстом Керкхоффом в книге «Военная криптография» («La Cryptographie militaire»); правило Керкхоффа гласит: «Стойкость криптосистемы не должна зависеть от стойкости криптоалгоритма. Она зависит только от стойкости ключа».
Помимо того, что ключ должен храниться в секрете, стойкая система шифрования должна также обладать широким набором возможных ключей. Например, если для зашифровывания сообщения отправитель применяет шифр сдвига Цезаря, то такое шифрование является сравнительно слабым, так как существует всего 25 возможных ключей. С точки зрения противника, если он перехватит сообщение и подозревает, что применялся алгоритм сдвига Цезаря, то ему следует просто проверить 25 возможных вариантов. Однако если отправитель использует более общий алгоритм замены, благодаря которому шифралфавит будет представлять собой любую возможную перестановку букв алфавита открытого текста, тогда ключ может выбираться из 400 000 000 000 000 000 000 000 000 возможных. Один из таких ключей показан на рисунке 5. Даже допуская, что противник перехватил сообщение и ему известен алгоритм, то все равно остается задача проверки всех возможных ключей. Если бы вражеский агент смог проверять ежесекундно один из 400 000 000 000 000 000 000 000 000 возможных ключей, то, чтобы проверить все ключи и дешифровать сообщение, ему понадобилось бы времени в миллионы раз больше возраста Вселенной.
Рис. 5 Пример общего алгоритма замены, при котором каждая буква в исходном тексте заменяется в соответствии с ключом другой буквой. Ключ задается шифралфавитом, который может представлять собой любую перестановку букв алфавита открытого текста.
Прелесть этого вида шифра состоит в том, что он прост в применении, но обеспечивает высокую степень защиты. Отправитель без труда может задать ключ, который просто определяет порядок следования 26 букв в шифралфавите, однако для противника по-прежнему практически невыполнимо проверить все возможные ключи с помощью так называемого метода прямого перебора всех возможных вариантов. Простота ключа важна еще и потому, что и отправитель, и получатель должны передавать друг другу информацию о ключе, а чем проще ключ, тем меньше вероятность возникновения недоразумений.
Более того, если отправитель готов согласиться с незначительным уменьшением количества возможных ключей, то ключ может быть еще проще. Для создания шифралфавита, вместо того чтобы случайным образом переставлять буквы алфавита открытого текста, отправитель выбирает ключевое слово или ключевую фразу. К примеру, в качестве ключевой можно взять фразу JULIUS CAESAR, убрать все пробелы и повторяющиеся буквы (JULISCAER), а затем подставить получившееся слово в начало шифралфавита. Часть шифралфавита, которая начинается с того места, где заканчивается ключевое слово или фраза, представляет собой просто обычную последовательность оставшихся букв алфавита. Поэтому шифралфавит будет выглядеть следующим образом:
Достоинство такого способа создания шифралфавита заключается в том, что ключевое слово или ключевую фразу, а следовательно и сам шифралфавит, легко запомнить. Это важно, так как если отправитель будет хранить шифралфавит записанным на листке бумаги, противник может завладеть этим листком, раскрыть ключ и прочесть любое сообщение, которое было зашифровано с его помощью. Но если держать ключ в памяти, то вероятность того, что он попадет в руки противника, гораздо меньшая. Разумеется, количество шифралфавитов, образованных ключевыми фразами, меньше количества шифралфавитов, образуемых без каких-либо ограничений, но все равно число их огромно, и для противника по-прежнему невозможно дешифровать захваченное сообщение путем проверки всех возможных ключевых фраз.
Такая простота и одновременно стойкость означали, что на протяжении первого тысячелетия н. э. в искусстве тайнописи преобладал шифр замены. Шифровальщики разработали надежную систему обеспечения связи, поэтому никакой необходимости в дальнейшем развитии и не возникало.
Бремя легло только на тех дешифровальщиков, кто старался раскрыть шифр замены. Существовал ли какой-нибудь способ разгадать зашифрованное сообщение? Многие ученые того времени полагали, что из-за гигантского количества возможных ключей шифр замены раскрыть невозможно, и в течение столетий казалось, что они были правы. Однако дешифровальщики в конце концов отыскали короткий путь взамен перебора всех возможных ключей. Вместо того чтобы тратить миллионы лет на взлом шифра, с помощью этого упрощенного метода сообщение можно было прочесть за нескольких минут. Прорыв произошел на Востоке, но для этого потребовался союз лингвистики, статистики и религиозного рвения.