top of page

Криптография
Цифровые данные можно сделать некопируемыми настолько, насколько воду можно сделать сухой.
Брюс Шнайер
ЭДГАР ПО
"ЗОЛОТОЙ ЖУК"
Найден пергамент с текстом криптограммы. Для удобства пронумеруем по порядку все символы этого текста:


Кроме того, на пергаменте изображены череп и козленок. Главный герой рассказа рассуждал следующим образом. По-английски козленок — kid; череп связан с капитаном Киддом, по-английски — kidd. Козленок был нарисован на пергаменте в том месте, где ставится подпись. Изображение черепа в противоположном по диагонали углу наводило на мысль о печати или гербе. Капитан Кидд владел несметным богатством. Кидд, насколько мы можем судить о нем, не сумел бы составить истинно сложную криптограмму. По-видимому, это была простая замена. Возникает только вопрос о языке, на котором был написан текст. В данном случае трудностей с определением языка не было: подпись давала разгадку. Игра слов kid и kidd возможна лишь в английском языке.
Текст криптограммы идет в сплошную строку. Задача была бы намного проще, если бы отдельные слова были отделены пробелами. Тогда можно было начать с анализа и сличения более коротких слов, и как только нашлось бы слово из одной буквы (например, местоимение "я" или союз "и" — для русского языка), начало было бы положено. Но просветов в строке не было.
Приходится подсчитывать частоты одинаковых знаков, чтобы узнать, какие из них чаще, какие реже встречаются в криптограмме. В результате получилась таблица частот всех знаков:
В английской письменной речи самая частая буква — е. Далее идут в нисходящем порядке: а, о, i, d, h, п, r, s, t, и, у, с, f, g, l, т, w, b, k, р, q, х, z. Буква e, однако, настолько часто встречается, что трудно построить фразу, в которой она не занимала бы господствующего положения. Итак, уже сразу у нас в руках путеводная нить. Составленная таблица, вообще говоря, может быть очень полезна, но в данном случае она понадобилась лишь в начале работы.
Поскольку знак 8 встречается чаще других, примем его за букву е английского алфавита. Для проверки этой гипотезы взглянем, встречается ли этот знак дважды подряд, так как в английском языке буква е часто удваивается, например, в словах meet, fleet, speed, seen, seed, been, agree и т.д. Хотя криптограмма невелика, пара 88 стоит в ней пять раз.
Самое частое слово в английском языке — определенный артикль the. Посмотрим, не повторяется ли у нас сочетание из трех знаков, расположенных в одинаковой последовательности и оканчивающихся знаком 8. Если такое найдется, то это будет, по всей вероятности, the. Приглядевшись, находим семь раз сочетание из трех знаков: ; 4 8. Итак, мы имеем право предположить, что знак ; — это буква t, а 4 — h вместе с тем подтверждается, что 8 — это действительно е. Мы сделали важный шаг вперед.
То, что мы расшифровали целое слово, потому так существенно, что позволяет найти границы некоторых других слов. Для примера возьмем предпоследнее из сочетаний этого рода: ; 4 8 (в приведенном тексте оно под номерами 172—174). Идущий сразу за 8 знак ; будет, как видно, начальной буквой нового слова. Выпишем начиная с него 6 знаков подряд. Только один из них нам незнаком. Обозначим теперь знаки буквами и оставим свободное место для неизвестного знака: (t.eeth). Ни одно слово, начинающееся с t и состоящее из 6 букв, не имеет в английском языке окончания th. В этом легко убедиться, подставляя на свободное место все буквы по очереди. Попробуем отбросить две последние буквы и получим: (t.ee). Для заполнения свободного места можно снова взяться за алфавит. Единственно верным прочтением этого слова будет: (tree) — дерево. В таком случае мы узнаем еще одну букву - r, она обозначена знаком (, и мы можем прочитать два слова подряд: the tree. (В дальнейшем эта гипотеза может либо подтвердиться, либо привести к некоторому "нечитаемому" сочетанию. В последнем случае следует попытаться восстановить либо слово t.e, либо t.eet, либо слово, целиком включающее в себя t.eeth.)
Развиваем успех. Немного далее (186—188) находим уже знакомое нам сочетание ; 4 8. Примем его опять за границу нового слова и выпишем целый отрывок начиная с двух расшифрованных нами слов.
Получаем такую запись:
the tree ;4(#?34 the
Заменим уже известные знаки буквами:
the tree thr#?3h the ,
а неизвестные точками:
the tree thr...h the
Нет никакого сомнения, что неясное слово – through (через). Это открытие дает нам еще три буквы – o, u, g, обозначенные в криптограмме знаками # ? и 3.
Надписывая над уже определенными символами криптограммы их значения, находим вблизи от ее начала (позиции 54—58) группу знаков 83(88, которая читается так: egree. Это, конечно, слово degree (градус) без первой буквы. Теперь мы знаем, что буква d обозначена знаком +. Вслед за словом degree, через 4 знака, встречаем такую группу: ;46(;88*. Заменим известные знаки буквами, а неизвестные — точками: tb.rtee. По-видимому, перед нами слово thirteen (тринадцать). К известным нам буквам прибавились i и n, обозначенные в криптограмме знаками 6 и *.
Криптограмма начинается так: 53##+. Подставляя буквы и точки, получаем: .good. Недостающая буква, конечно, а, и, значит, два первых слова будут читаться так : a good (хороший). Определены следующие 11 знаков:
5 + 8 3 4 6 * # ( ; ?
a d e g h i n o r t u
На этом анализ Э. По кончается. Дальнейшую работу проделаем самостоятельно.
Четвертый по частоте символ ) (16 вхождений) еще не определен. Возвратимся к диаграмме встречаемости букв английского языка. Среди первого десятка букв этой диаграммы у нас не встретилась лишь буква s. Она — первый претендент на значение символа ). Эта гипотеза подтверждается тем, что вряд ли ) обозначает гласную букву, так как в таком случае мы получили бы нечитаемые фрагменты
6 7 8 9 10 11 12
g . a ) ) i n
или
37 38 39 40 41 42
i . ) ) e a
Кроме того, то, что ) скрывает букву s, легко проверяется на участке криптограммы с 60-го по 89-й знак:
.and thirteen .inutes north east and.
Поэтому полагаем, что ) — это s. Попутно определилось значение символа 9 — это m.
Перебирая возможные значения символа 0, стоящего на местах 7 и 28 криптограммы, убеждаемся в том, что единственно возможным его значением может быть лишь буква l (glass — стекло, hostel — общежитие, гостиница или трактир).
Определяем далее значение символа □ как v по фрагменту текста в позициях 107—113.
Теперь на участке текста с 22-го по 70-й знак остались не определенными лишь значения символов ] и : , встретившихся по одному разу. Очевидно, что ] — это w, а : — это у. Теперь на участке текста со 172-го по 204-й знак не выявлено лишь значение символа 1, которое, как нетрудно заметить, может быть лишь буквой f.
Символ 2, стоящий на местах 117 и 90, очевидно, определяет букву b.
Осталось определить лишь значения символов . и =. Небольшой перебор еще не установленных букв показывает, что = - это с, а . может обозначать одну из букв k, р, q, х или z. Обратившись к словарю, находим единственное подходящее окончание р слова bishop (епископ, шахматный слон).
Таким образом, однозначно определились значения всех символов (21), встречающихся в криптограмме. Получился следующий открытый текст:
A good glass in the bishop's hostel in the devil's seat twenty one degrees and thirteen minutes northeast and by north main branch seventh limb east side shoot from the left eye of the death's head a bee line from the tree through the shot fifty feet out.
По-русски это выглядит следующим образом:
Хорошее стекло в трактире епископа на чертовом стуле двадцать один градус и тринадцать минут северо-северо-восток главный сук седьмая ветвь восточная сторона стреляй из левого глаза мертвой головы прямая от дерева через выстрел на пятьдесят футов.
Восстановленная простая замена:
A B C D E F G H I L M N O P R S T U V W Y
5 2 = + 8 1 3 4 6 0 9 * # . ( ) ; ? □ ] :

bottom of page