Как взломать шифр Плейфера
Шифр Плейфера был серьёзным противником полтора столетия назад. Сегодня его вскрывают за секунды — и понимание того, как именно, полезнее, чем сам шифр. На его примере видно, как работает криптоанализ вообще: не через перебор всех ключей, а через статистику языка.
Если механика шифрования пока не ясна, начните с разбора правил: как работает шифр Плейфера.
Почему обычный частотный анализ не работает
Классический приём против шифров замены — подсчёт частот букв. В русском языке «О» занимает около 11 % текста, «Е» — около 8 %, «Ф» — меньше 0,2 %. Против шифра Цезаря или шифра Атбаш этого достаточно: построил столбик частот, сопоставил с эталоном, прочитал текст.
Плейфер этот приём обесценивает. Шифруются пары букв, поэтому одна и та же буква «О» в парах
ОР, ОС и ОТ превращается в три разных символа. Распределение
отдельных букв в шифротексте становится заметно ровнее, чем в открытом тексте, и прямое сопоставление
ничего не даёт.
Именно поэтому шифр и продержался так долго. Он не сделал частотный анализ невозможным — он перенёс его на уровень выше, где считать сложнее.
Слабости, которые остаются
Уитстон и Плейфер закрыли самую очевидную дыру, но оставили несколько зацепок, которыми криптоаналитики пользуются до сих пор.
Частоты биграмм никуда не делись
В русском языке пары букв распределены далеко не равномерно. Сочетания СТ, НО,
ТО, ЕН и ПР встречаются постоянно, а ЪЩ или
ЫЪ не встречаются практически никогда. Шифр перемешивает пары, но не выравнивает их частоты:
самая частая биграмма шифротекста с высокой вероятностью соответствует одной из нескольких самых частых
биграмм языка.
Взаимная обратимость пар
Ключевое структурное свойство: если пара АБ шифруется в ВГ, то пара
БА обязательно зашифруется в ГВ. Это следует прямо из правил замены и
сокращает пространство поиска вдвое.
Буква не шифрует сама себя — но пара может
В отличие от «Энигмы», где буква никогда не переходила сама в себя, у Плейфера возможны частичные совпадения открытого и шифрованного текста. Для аналитика это дополнительная информация о структуре таблицы.
Служебные заполнители выдают себя
Вставки между одинаковыми буквами и добивка в конце создают в шифротексте характерные регулярности. Аномально частая буква на нечётных позициях — сильный намёк на заполнитель.
Сколько текста нужно: расстояние единственности
Есть строгий теоретический предел, ниже которого взлом невозможен в принципе — не из-за слабости алгоритмов, а потому что данных физически не хватает. Он называется расстоянием единственности и для шифра Плейфера составляет примерно 22,7 символа.
Смысл в том, что для более коротких сообщений существует несколько разных ключей, дающих осмысленный результат, и выбрать среди них правильный нельзя. На практике порог выше: автоматическим методам комфортно от 100–200 букв, ручным — от нескольких сотен.
Как ломали шифр исторически
Первое опубликованное описание вскрытия принадлежит американскому офицеру Джозефу Моборну — брошюра вышла в 1914 году, всего на девятнадцати страницах. Тот же Моборн позже стал одним из авторов идеи одноразового блокнота, единственного абсолютно стойкого шифра.
К 1915 году немецкая разведка уверенно читала британские сообщения, зашифрованные Плейфером. Британцы это понимали и продолжали им пользоваться сознательно: расчёт был на то, что к моменту расшифровки тактическая информация устареет.
Уильям Фридман, будущий глава американской Signal Intelligence Service, включил методы вскрытия Плейфера в учебные материалы армии США. В 1939 году вышла книга Хелен Фуше Гейнс «Elementary Cryptanalysis», где ручная методика разобрана подробно и доступно; в 1936 году норвежский криптограф Альф Монж демонстрировал вскрытие вручную.
В Блетчли-Парке, британском центре дешифровки времён Второй мировой, полковник Джон Тилтман и его коллеги ломали немецкий двухквадратный вариант Handschlüssel, родственный Плейферу. К 1944 году это было поставлено на поток.
Современный метод: восхождение на гору
Сегодня шифр вскрывают алгоритмом hill climbing — «восхождением на гору». Идея проста и работает поразительно эффективно.
- Берём случайную таблицу. Любую расстановку 32 букв.
- Расшифровываем ею текст. Результат будет бессмыслицей — пока.
- Оцениваем результат. Считаем, насколько он похож на естественный язык, по статистике четырёхбуквенных сочетаний — квадграмм. Таблицы частот квадграмм строятся заранее по большому корпусу текстов.
- Вносим малое изменение. Меняем местами две буквы, две строки или два столбца.
- Сравниваем. Стало похоже на язык больше — оставляем изменение. Хуже — откатываем.
- Повторяем десятки тысяч раз.
Ключевой момент — оценочная функция. Она не требует знать открытый текст: достаточно уметь отличать «похоже на русский» от «не похоже». Алгоритм постепенно сползает к правильной таблице, потому что даже частично верная расстановка даёт чуть более осмысленный результат.
Чтобы не застрять в локальном максимуме — таблице, которая лучше соседних, но всё же неверна, — поиск перезапускают из разных случайных стартов или добавляют элемент случайного отжига.
Атака при известном открытом тексте
Отдельный и куда более быстрый сценарий — когда аналитик знает или уверенно угадывает часть исходного сообщения. В военной переписке это происходит постоянно: депеши начинаются со званий, заканчиваются подписями, содержат названия частей и даты.
Каждая угаданная пара букв даёт жёсткое ограничение на взаимное расположение четырёх клеток в таблице. Десятка таких ограничений обычно достаточно, чтобы восстановить сетку почти целиком, а остаток дописывается по алфавитному порядку — ведь буквы после ключевого слова идут подряд.
Именно на этой предсказуемости строилась работа Блетчли-Парка против немецких полевых шифров. Аналитики называли такие угаданные фрагменты cribs — «подсказками».
Двухквадратные варианты держались дольше
Уитстон понимал слабость обратимых пар и предложил усиленные схемы — двухквадратный и четырёхквадратный шифры, где вместо одной таблицы используются две или четыре. Обратимость пар при этом исчезает, и статистическая атака заметно усложняется.
Немецкая армия применяла двухквадратный вариант Handschlüssel — в частности, в Африканском корпусе. Британцы вскрыли его к 1944 году, но на это ушли годы, а не часы. Разница показательна: одно структурное улучшение подняло стоимость атаки на порядок, хотя базовая идея осталась прежней.
Как выглядит статистика на практике
Чтобы понять, за что цепляется алгоритм, достаточно взглянуть на распределение пар букв.
В русских текстах самые частые биграммы — СТ, НО, ТО,
НА, ЕН, ПР, РА, КО. На них
приходится заметная доля всех пар.
В шифротексте эти частоты перемешаны, но не уничтожены: самая частая пара шифротекста почти наверняка соответствует одной из десятка самых частых пар языка. Алгоритм не угадывает соответствие напрямую — он просто получает более высокую оценку каждый раз, когда случайная перестановка приближает распределение к эталонному.
Практический вывод
Шифр Плейфера — прекрасный учебный материал и никуда не годная защита. Разница между ним и современной криптографией не в длине ключа, а в самой природе стойкости: у Плейфера она опиралась на трудоёмкость ручного анализа, а у AES или SHA-256 — на математические свойства, не зависящие от вычислительной мощности противника.
Если нужно защитить реальные данные, используйте современные алгоритмы, а для паролей — генератор случайных паролей и менеджер паролей. А для квестов, головоломок и знакомства с криптоанализом Плейфер по-прежнему хорош: попробовать его онлайн можно прямо сейчас.
Зашифруйте текст и попробуйте вскрыть его сами:
Шифр Плейфера онлайнЧто из этого стоит запомнить
Главный урок Плейфера не в самом шифре, а в том, как он пал. Его не перебрали и не подобрали ключ грубой силой — против него применили знание о том, как устроен человеческий язык. Криптоанализ почти всегда работает так: ищет закономерность, которая просачивается из открытого текста в шифрованный.
Отсюда и требование к современным алгоритмам: шифротекст должен быть статистически неотличим от случайного шума. Ни частоты букв, ни частоты пар, ни длина слов не должны давать аналитику ни малейшей зацепки. Всё, что остаётся секретом, — ключ, и в этом состоит принцип Керкгоффса, сформулированный ещё в 1883 году.
Схожие истории
Шифр Плейфера не единственный, кто держался на репутации дольше, чем на математике. Шифр Виженера три столетия носил титул «неразгадываемого», пока Фридрих Казиски не нашёл элегантный способ определить длину ключа. Эта история разобрана отдельно: метод Казиски.
Частые вопросы
Сколько текста нужно, чтобы взломать шифр Плейфера?
Теоретический минимум описывается расстоянием единственности и составляет около 22–23 символов: короче этого длины у шифротекста может существовать несколько осмысленных расшифровок. На практике для уверенного автоматического вскрытия требуется от 100 до 200 букв, а опытному аналитику с ручными методами обычно нужно несколько сотен.
Помогает ли длинный ключ защитить шифр Плейфера?
Почти нет. Ключ определяет только порядок букв в таблице, а атака идёт не по ключу, а по самой таблице: алгоритм подбирает расстановку букв, при которой расшифрованный текст статистически похож на естественный язык. Число возможных таблиц огромно, но перебирается оно не полностью, а направленным поиском, которому длина исходного ключевого слова безразлична.
Что такое метод восхождения на гору?
Это алгоритм направленного поиска. Он начинает со случайной таблицы, расшифровывает ею текст, оценивает результат по статистике четырёхбуквенных сочетаний, затем вносит небольшое изменение — меняет местами две буквы или две строки. Если оценка выросла, изменение сохраняется, если нет — откатывается. Повторяя это десятки тысяч раз, алгоритм сходится к правильной таблице за секунды.
Можно ли считать шифр Плейфера безопасным хотя бы для личной переписки?
Нет. Любой человек с ноутбуком и общедоступным кодом вскроет сообщение в несколько сотен букв за считанные секунды. Шифр Плейфера имеет историческую и учебную ценность, но для защиты реальных данных нужно использовать современные алгоритмы вроде AES, а для хранения паролей — хеширование с помощью bcrypt или Argon2.