Шифр Полибия
Этот шифр, один из древнейших, о котором у нас имеется подробная информация, основан на выборе пяти букв алфавита, служащих заголовками строк и столбцов таблицы размером 5 x 5, которая затем заполняется буквами алфавита. Шифр заменяет каждую букву алфавита парой букв, являющихся заголовками соответствующих столбца и строки. Первоначально использовался греческий алфавит из 24 букв, поэтому английские буквы I и J, как правило, комбинируются (см. таблицу, приведенную ниже, где для простоты в качестве заголовков используются буквы А — Е).
Таблица заполняется по правилу, о котором договорились отправитель и получатель.
Рассмотрим, например, следующую таблицу:
Заметим, что шифроалфавит состоит из 25 букв (5 х 5). В качестве заголовков можно использовать и цифры (например, 1, 2, 3, 4 и 5). В этом случае таблица имеет вид:
Рассмотрим шифр Полибия на примере этих двух таблиц. Мы будем шифровать сообщение BLANKS («пробелы»). По первой таблице мы получим:
В заменяется парой АВ.
L заменяется парой СА.
А заменяется парой АА.
N заменяется парой СС.
К заменяется парой BE.
S заменяется парой DC.
Зашифрованное сообщение имеет вид ABCAAACCBEDC. Если мы используем таблицу с цифрами, то получим: «123111332543».
Шифр Гронсфельда
Этот шифр, изобретенный голландцем Мостом Максимилианом Бронкхорстом, графом Гронсфельд, использовался в Европе в XVII в. Это полиалфавитный шифр, аналогичный квадрату Виженера, но менее сложный (и менее надежный). Чтобы зашифровать сообщение, рассмотрим следующую таблицу.
Далее, для каждой буквы в нашем сообщении мы выбираем случайным образом число от 0 до 9. Для сообщения MATHEMATICAL («математический») мы выбираем случайным образом 12 чисел, например: 1, 2, 3, 4, 3, 6, 7, 8, 9, 0, 1, 2. Этот набор чисел и будет ключом шифра. Теперь вместо каждой буквы сообщения мы поставим букву из строки с соответствующим номером (см. таблицу на предыдущей странице).
Буква М будет заменена буквой Р (взятой из строки номер 1 в столбце М), и так далее. Мы получим сообщение PFASRDTQKEDQ. Буква А исходного сообщения будет зашифрована как F, Т, и D. Как и для всех полиалфавитных шифров, эта система шифрования устойчива к методу перебора всех возможных вариантов и к частотному анализу. Количество ключей в шифре Гронсфельда для алфавита из 26 букв составляет 26! х 10 = 4,03 х 10 26.
Шифр Плейфера
Создатели этого шифра лорд Лайон Плейфер и сэр Чарльз Уитстон (также изобретатель электромагнитного телеграфа) были друзьями и соседями и разделяли любовь к криптографии. Их метод напоминает знаменитый шифр Полибия и тоже использует таблицу из пяти строк и пяти столбцов. В качестве первого шага каждая буква сообщения заменяется на пару букв в соответствии с ключом из пяти различных букв. В нашем примере эти пять букв будут JAMES. В случае алфавита с 26 символами мы получаем следующую таблицу:
Далее текст сообщения разбивается на пары букв или биграммы. Две буквы каждой биграммы должны быть разными. Чтобы избежать возможных совпадений, мы используем букву X. Мы также используем эту букву, чтобы завершить биграмму в случае, если последняя буква не имеет пары.
Например, сообщение TRILL будет разбито на биграммы следующим образом:
TR IL LX.
А слово TOY — так:
ТО YX.
Разбив текст на биграммы, мы можем начать шифрование, обращая внимание на следующие условия:
а) две буквы биграммы расположены в одной и той же строке;
б) две буквы биграммы расположены в одном и том же столбце;
в) ни одно из вышеперечисленных.
В случае (а) буквы биграммы заменяются буквами, расположенными справа от каждой из них («следующими» в таблице в естественном порядке). Таким образом, пара JE будет зашифрована как AS:
В случае (б) буквы биграммы заменяются буквами, которые находятся следом ниже по таблице. Например, биграмма ЕТ будет зашифрована, как FY, a TY — как YE:
В случае (с), чтобы зашифровать первую букву биграммы, мы смотрим на ее строку, пока не дойдем до столбца, содержащего вторую букву. Результат расположен на пересечении этой строки и этого столбца. Чтобы зашифровать вторую букву, мы смотрим на ее строку, пока не дойдем до столбца, содержащего первую букву.
Результат опять расположен на пересечении этой строки и этого столбца.
Например, в биграмме СО буква С будет заменена буквой G, а буква О — буквой I или К.
Чтобы зашифровать сообщение TEA («чай») с помощью ключевого слова JAMES, мы сделаем следующее.
• Разобьем слово на биграммы: ТЕ АХ.
• Букву Т заменим буквой Y.
• Букву Е — F.
• Букву А — М.
• Букву X — W.
Мы получим зашифрованное сообщение YFMW.
Криптограмма «Золотого жука»
Уильям Легран, главный герой рассказа Эдгара Аллана По «Золотой жук» (1843), определяет, где зарыт клад с сокровищами, расшифровав криптограмму, написанную на куске пергамента. Легран использовал статистический метод, основанный на частоте, с которой буквы алфавита встречаются в английских текстах. Зашифрованное послание выглядело следующим образом:
Легран начал с предположения, что оригинальный текст был написан на английском языке. В английских текстах наиболее часто встречается буква «е». Далее, в порядке уменьшения частоты, идут остальные буквы: а, о, i, d, h, n, r, s, t, u, y, c, f, g, 1, m, w, b, k, p, q, x, z.
Герой рассказа строит по криптограмме таблицу, в первой строке которой расположены символы зашифрованного сообщения, а во второй — частота их появления.
Таким образом, символ «8» скорее всего соответствует букве «е». Затем он ищет повторяющиеся тройки символов, заменившие также довольно распространенное слово «the», что позволяет ему расшифровать символы «;», «,», «4» и «8».
Группа символов «; (88», теперь, когда он знает, что она соответствует «t (ее», позволяет ему определить отсутствующую букву. Это может быть только «r», учитывая, что tree — «дерево» — наиболее вероятное слово в словаре. Наконец, благодаря подобным хитроумным криптографическим допущениям и большому терпению, он получает следующую таблицу с частично расшифрованным алфавитом:
Этого достаточно, чтобы расшифровать сообщение: