История криптографии связана с большим количеством дипломатических и военных тайн и поэтому окутана туманом легенд. Наиболее полная книга по истории криптографии содержит более тысячи страниц. Она опубликована в 1967 году в Нью-Йорке и на русский язык еще не переведена1. На русском языке недавно вышел в свет фундаментальный труд по истории криптографии в России2.
Свой след в истории криптографии оставили многие хорошо известные исторические личности. Приведем несколько наиболее ярких примеров.
Первые сведения об использовании шифров в военном деле связаны с именем спартанского полководца Лисандра (шифр «Сциталь», V век до нашей эры). Цезарь использовал в переписке шифр, который вошел в историю как «шифр Цезаря». В древней Греции был изобретен вид шифра, который в дальнейшем стал называться «квадрат Полибия». Братство франкмасонов с момента своего возникновения (VIII век) разработало и использовало целую систему особых шифров. Одну из первых книг по криптографии написал аббат И. Трителий (1462–1516), живший в Германии. В 1566 году известный механик и математик Д. Кардано опубликовал работу с описанием изобретенной им системы шифрования («решетка Кардано»). Франция XVI века оставила в истории криптографии шифры короля Генриха IV и Ришелье. В упомянутой книге Т.А. Соболевой подробно описано много российских шифров, в том числе и «цифирная азбука» 1700 года, автором которой был Петр Великий.
Некоторые сведения о свойствах шифров и их применениях можно найти и в художественной литературе, особенно в приключенческой, детективной и военной. Хорошее подробное объяснение особенностей одного из простейших шифров - шифра замены и методов его вскрытия содержится в двух известных рассказах: «Золотой жук» Э. По и «Пляшущие человечки» А. Конан-Дойля.
Много занимательной информации по криптографии публикуется в издаваемом в США научно-популярном журнале «Cryptology». Обширный библиографический список (111 названий) зарубежной литературы по криптографии содержится в очень полезной и важной статье Диффи и Хеллмэна3, которая переведена на русский язык и общедоступна (о революционном вкладе авторов этой статьи в криптографию будет рассказано в главе 3).
Рассмотрим более подробно три примера.
Шифр «Сциталь». Этот шифр известен со времен войны Спарты и Персии против Афин. Спартанский полководец Лисандр подозревал персов в возможной измене, но не знал их тайных планов. Его агент в стане персов прислал шифрованное сообщение, которое позволило Лисандру опередить персов и разгромить их. Шифрованное сообщение было написано на поясе официального гонца от персов следующим образом: агент намотал пояс на сциталь (деревянный цилиндр определенного диаметра) и написал на поясе сообщение вдоль сциталя; потом он размотал пояс, и получилось, что поперек пояса в беспорядке написаны буквы. Гонец не догадывался, что узор на его красивом поясе на самом деле содержит зашифрованную информацию. Лисандр взял сциталь такого же диаметра, аккуратно намотал на него пояс и вдоль сциталя прочитал сообщение от своего агента.
Например, если роль сциталя выполняет карандаш с шестью гранями, то открытый текст КРИПТОГРАФИЯ может быть преобразован в шифртекст РПОРФЯКИТГАИ. Шифртекст может быть и другим, так как он зависит не только от диаметра карандаша. Поэкспериментируйте!
Отметим, что в этом шифре преобразование открытого текста в шифрованный заключается в определенной перестановке букв открытого текста. Поэтому класс шифров, к которым относится и шифр «Сциталь», называется шифрами перестановки. Математическому описанию таких шифров посвящен этюд 2.4.
Шифр Цезаря. Этот шифр реализует следующее преобразование открытого текста: каждая буква открытого текста заменяется третьей после нее буквой в алфавите, который считается написанным по кругу, т.е. после буквы «я» следует буква «а». Поэтому класс шифров, к которым относится и шифр Цезаря, называется шифрами замены. Математическому описанию таких шифров посвящен этюд 2.4.
Например, открытый текст КРИПТОГРАФИЯ при таком способе шифрования преобразуется в шифртекст НУЛТХСЁУГЧЛВ. Отметим, что Цезарь заменял букву третьей после нее буквой, но можно заменять и пятой, и какой-нибудь другой. Главное, чтобы тот, кому посылается шифрованное сообщение, знал эту величину сдвига.