Таблица Плейфера 4×8 для русского алфавита
Таблица — сердце шифра Плейфера. Если она построена с ошибкой, шифрование внешне сработает, но расшифровать сообщение будет невозможно: получатель соберёт другую сетку и получит бессмыслицу. Разберём процесс по шагам на русском алфавите, где есть своя специфика — лишняя буква, которую некуда деть.
Именно простота этой операции когда-то и стала главным аргументом в пользу шифра. Когда Лайон Плейфер представлял систему британскому Форин-офису, чиновники сочли её слишком сложной для полевых условий. Плейфер ответил, что обучит методу четырёх школьников за пятнадцать минут — и оказался прав: шифр дошёл до Первой мировой войны и использовался береговыми наблюдателями во Второй мировой.
Почему именно 4 × 8
Чарльз Уитстон, предложивший шифр в 1854 году, работал с английским алфавитом: 26 букв укладываются в квадрат 5 × 5, если пожертвовать одной буквой. Традиционно объединяют I и J — в английских текстах это почти не мешает чтению.
С русским алфавитом ситуация другая. Тридцать три буквы не дают ни квадрата, ни удобного прямоугольника: 33 — число нечётное и раскладывается только как 3 × 11. Поэтому поступают так же, как англичане: объединяют одну пару букв и получают 32 = 4 × 8.
Требование заполнить сетку целиком — не формальность. Правила шифра оперируют строками и столбцами, и пустая клетка означала бы, что часть биграмм не поддаётся преобразованию.
Откуда вообще взялась идея таблицы
Табличная организация алфавита появилась задолго до Уитстона. Леон Баттиста Альберти в 1467 году построил шифровальный диск, немецкий аббат Иоганн Тритемий описал tabula recta — квадрат из сдвинутых алфавитов, а итальянец Джованни Баттиста Порта в 1563 году предложил таблицу биграммных замен.
Все они решали одну задачу: сломать частотный анализ. Против шифра Цезаря и шифра Атбаш достаточно посчитать, как часто встречается каждая буква: в русском «О» занимает около 11 % текста, и после любой одноалфавитной замены её подменыш будет встречаться ровно так же часто.
Вклад Уитстона в том, что его таблица шифрует не буквы, а биграммы — пары. Пар в русском алфавите больше тысячи, и распределены они заметно ровнее одиночных букв. Поэтому сетка здесь не просто удобная форма записи, а сама суть метода.
Какую пару букв объединить
Чаще всего сливают Е и Ё. Это наименее болезненный вариант: в повседневном русском письме Ё и без всякой криптографии постоянно заменяется на Е, поэтому потеря информации почти нулевая — читатель восстанавливает слово по смыслу.
Встречаются и другие подходы, но каждый хуже:
- Выбросить Ъ. Кажется безобидным, пока не потребуется зашифровать «объезд» или «съёмка».
- Объединить И и Й. Ломает различие между «мой» и «мои», «строй» и «строи».
- Объединить Ь и Ъ. Работает, но эти знаки часто стоят рядом с одинаковыми буквами, что повышает число вставок-заполнителей.
Наш онлайн-инструмент использует объединение Е и Ё как наиболее распространённый вариант.
Собираем таблицу: пошагово
Возьмём ключевое слово КРИПТОГРАФИЯ — двенадцать букв, из них часть повторяется.
Шаг 1. Выписать уникальные буквы ключа
Идём по слову слева направо и записываем каждую букву, которую ещё не встречали:
К, Р, И, П, Т, О, Г, Р, А, Ф… стоп — Ф ещё не было, записываем. Затем
И уже есть, Я записываем.
Итог: К Р И П Т О Г А Ф Я — десять уникальных букв. Обратите внимание, что вторая Р,
вторая И и вторая А отброшены.
Шаг 2. Дописать оставшийся алфавит
Проходим по алфавиту от А до Я и добавляем всё, чего ещё нет в списке, пропуская Ё: Б, В, Д, Е, Ж, З, Й, Л, М, Н, С, У, Х, Ц, Ч, Ш, Щ, Ъ, Ы, Ь, Э, Ю.
Шаг 3. Разложить по сетке 4 × 8
Записываем получившуюся последовательность построчно, по восемь букв в строке:
Тридцать две клетки, каждая буква ровно один раз. Такую таблицу можно нарисовать на листке за минуту — Лайон Плейфер не преувеличивал, когда обещал научить методу школьников за четверть часа.
Проверяем таблицу в деле
Зашифруем фразу АТАКА НА РАССВЕТЕ. Убираем пробелы, получаем
АТАКАНАРАССВЕТЕ — пятнадцать букв.
Разбиваем на пары. Обратите внимание на пару СС: две одинаковые буквы подряд не допускаются,
поэтому вторая С отходит в следующую пару. Итоговое разбиение, с заполнителем Х в конце, потому что букв нечётное число:
АТ АК АН АР АС СВ ЕТ ЕХ
Применяем три правила замены и получаем:
КОКРПЦКИТЦНДДОЖУ
Расшифровка той же таблицей возвращает АТАКАНАРАССВЕТЕХ. Финальная Х — служебная,
её отбрасываем.
Введите ключ КРИПТОГРАФИЯ и сверьте свою таблицу с нашей:
Построить таблицу онлайнТри ошибки, которые ломают шифр
Забытый повтор в ключе
Самая частая. Если оставить в таблице обе буквы Р из слова КРИПТОГРАФИЯ, сетка сдвинется: одна буква попадёт дважды, а последняя буква алфавита не поместится. Шифрование пройдёт, расшифровка — нет.
Разные соглашения о заполнителе
Отправитель добавил в конец Я, получатель ждал Х. Текст расшифруется, но последняя пара исказится. Договоритесь заранее.
Разное объединение букв
Если один участник слил Е и Ё, а другой — Ь и Ъ, таблицы получатся разными, и сообщение превратится в шум. Это самая коварная ошибка, потому что при коротком тексте она может выглядеть как «просто неудачный ключ».
Для сравнения: английская таблица 5 × 5
Оригинальная схема Чарльза Уитстона рассчитана на латиницу. Двадцать шесть букв не дают квадрата, поэтому I и J делят одну клетку — в английском тексте это почти не мешает чтению, поскольку J встречается редко.
Классический учебный ключ — MONARCHY:
Этот пример стоит запомнить: он служит эталонным тестом для любой реализации. Строка
HIDETHEGOLD с этим ключом должна давать BFCKPDFIMPBZ. Если ваш результат
отличается, ошибка почти наверняка в правиле прямоугольника.
Заполнителем в английской традиции служит X, запасным — Q (на случай, если разделить нужно пару из двух X). Русская схема устроена так же, только с буквами Х и Ъ.
Родственные таблицы: два и четыре квадрата
У классического Плейфера есть структурная слабость: пара АБ и пара БА
всегда шифруются взаимно обратно. Это заметная зацепка для криптоаналитика, и Уитстон предложил
её устранить, увеличив число таблиц.
- Двухквадратный шифр. Две таблицы с разными ключами: первая буква пары ищется в одной, вторая — в другой. Немецкая армия применяла этот вариант во Второй мировой войне под названием Handschlüssel.
- Четырёхквадратный шифр. Четыре таблицы, две из которых служат для открытого текста, а две — для шифрованного. Полностью убирает обратимость пар, но требует больше времени на ручную работу.
Все три системы строятся на одном и том же навыке — умении быстро и без ошибок собрать таблицу из ключевого слова.
Как выбрать хороший ключ
Ключевое слово определяет всю таблицу, поэтому от него зависит стойкость. Несколько практических соображений:
- Длинная фраза лучше короткого слова. Чем больше уникальных букв в начале, тем сильнее перемешан алфавит.
- Избегайте очевидного. Ключи вроде «ПАРОЛЬ» или «СЕКРЕТ» криптоаналитик проверит первыми.
- Не используйте один ключ дважды. Два сообщения на одном ключе резко упрощают вскрытие — этим пользовался ещё Джозеф Моборн в 1914 году.
Если нужен по-настоящему случайный ключ, а не запоминающаяся фраза, возьмите его из генератора паролей — он использует криптографический источник случайности браузера.
Что дальше
Механика таблицы — только половина дела. Полный разбор правил шифрования, историю Уитстона и Плейфера и объяснение того, почему биграммы победили частотный анализ, вы найдёте в основной статье: как работает шифр Плейфера. Тем, кто хочет автоматизировать построение таблицы, пригодится разбор реализации на Python.
Частые вопросы
Почему для русского языка берут таблицу 4 на 8, а не 6 на 6?
Таблица должна заполняться алфавитом без пустых клеток, иначе часть пар букв невозможно зашифровать. 4 × 8 даёт ровно 32 клетки — это 33 буквы русского алфавита минус одна объединённая пара. Сетка 6 × 6 потребовала бы 36 символов, то есть пришлось бы добавлять цифры или служебные знаки, что усложняет ручную работу и не входит в классическое описание шифра.
Какие буквы правильнее объединять: Е с Ё или И с Й?
Общепринятого стандарта нет, но чаще объединяют Е и Ё. Это самая безболезненная пара: на письме Ё в русском языке и так регулярно заменяется на Е, поэтому потеря информации минимальна. Объединение И и Й хуже: эти буквы различают слова вроде «мой» и «мои». Главное правило — отправитель и получатель должны использовать одну и ту же таблицу.
Может ли ключ быть длиннее восьми букв?
Да, длина ключа ничем не ограничена. При построении таблицы повторяющиеся буквы отбрасываются, поэтому ключ «КРИПТОГРАФИЯ» из двенадцати букв даёт всего восемь уникальных: К, Р, И, П, Т, О, Г, А. Длинная ключевая фраза удобна тем, что её легче запомнить, чем случайный набор символов.
Как проверить, что таблица построена без ошибок?
Пересчитайте клетки: их должно быть ровно 32, и каждая буква алфавита должна встречаться один раз. Самая частая ошибка — забыть отбросить повтор в ключевом слове, из-за чего одна буква попадает в таблицу дважды, а другая выпадает совсем. Такая таблица шифрует, но расшифровать сообщение уже не получится.