Криптография Тема 06 / 07
Блок 01 · Криптография

«Пара против частот»

Биграммные шифры: Плейфер и Уитстон

Шифруется не буква, а пара букв — и частотный анализ перестаёт работать. Прямая дорога к современным блочным шифрам.

Теория

Полиграммные шифры

Плейфер и Уитстон — представители отдельной группы шифров замены: полиграммных. Частный случай — биграммные, когда блок состоит ровно из двух букв. Это третья, завершающая ступень эволюции классических шифров замены.

  1. Моноалфавитная замена (Цезарь, ROT13) — одна буква всегда превращается в одну и ту же букву.
  2. Полиалфавитная замена (Виженер) — одна буква превращается в разные буквы в зависимости от позиции в ключе, но шифруется всё равно по одной букве.
  3. Полиграммная (блочная) замена (Плейфер, Уитстон) — шифруется сразу блок из нескольких букв, и результат зависит от того, что стоит рядом.

Исторически оба шифра связаны: Плейфер придумал Чарльз Уитстон в 1854 году (популяризировал — лорд Плейфер, отсюда название), а шифр с двумя квадратами — прямое развитие той же идеи: что если использовать не одну таблицу, а две?

Главный вывод. Блочность — отдельная линия развития шифров, которая напрямую ведёт к современным блочным шифрам вроде AES и ГОСТ: там тоже шифруется целый блок данных, только не из 2 букв, а из 64–128 бит.

Общие правила подготовки текста

Часть 1. Шифр Плейфера

Шифр применялся британской армией во время англо-бурской и Первой мировой войны. Цезарь и Виженер шифруют каждую букву по отдельности — это удобно ломать частотным анализом. Плейфер устроен иначе: он шифрует сразу пару букв, и результат зависит от того, какая буква стоит рядом. Одна и та же буква в разных парах превратится в разные буквы — частотный анализ отдельных букв перестаёт работать.

Как строится таблица 5×6

Шаг 1. Выписываем буквы ключевого слова по порядку, без повторов.

Шаг 2. Продолжаем выписывать остальные буквы алфавита по порядку (А, Б, В, Г…), пропуская Ё, Й, Ъ, Ь и буквы, уже стоящие в таблице.

Шаг 3. В последнюю свободную ячейку ставим символ пробела «␣».

Шаг 4. Заполняем ячейки построчно, слева направо, сверху вниз — по 6 букв в строке, всего 5 строк.

Правила шифрования пары букв

Правило 1 — буквы в одной строке. Каждая буква заменяется на букву правее неё в этой же строке (с переносом на начало строки).

Правило 2 — буквы в одном столбце. Каждая буква заменяется на букву ниже неё в этом же столбце (с переносом на начало столбца).

Правило 3 — буквы образуют прямоугольник. Если буквы не в одной строке и не в одном столбце, каждая заменяется на букву из своей строки, но столбца второй буквы.

Расшифровка использует те же правила в обратную сторону: для строки — сосед слева, для столбца — сосед сверху. Правило прямоугольника одинаково работает в обе стороны.

Разбор примера: «ВЗЛОМ СЕТИ», ключ ТАЙНА

Буква Й заменяется на И, поэтому ключ фактически «ТАИНА», повтор буквы А не дублируется.

ТАИНБВ ГДЕЖЗК ЛМОПРС УФХЦЧШ ЩЫЭЮЯ␣
Таблица (ключ ТАЙНА)
playfair.trace
текст:  ВЗЛОМ СЕТИ → ВЗЛОМСЕТИ (9 букв, нечётно → +␣) → ВЗЛОМСЕТИ␣
пары:   ВЗ  ЛО  МС  ЕТ  И␣

ВЗ  прямоугольник        В→Б, З→К   → БК
ЛО  одна строка, справа  Л→М, О→П   → МП
МС  одна строка, справа  М→О, С→Л   → ОЛ  (С переносится в начало строки)
ЕТ  прямоугольник        Е→Г, Т→И   → ГИ
И␣  прямоугольник        И→В, ␣→Э   → ВЭ

шифротекст: БК МП ОЛ ГИ ВЭ  (слитно — БКМПОЛГИВЭ)

Часть 2. Шифр Уитстона (двойной квадрат)

Прямое развитие идеи Плейфера. Первая буква пары ищется в левой таблице, вторая — в правой, а на пересечении их строк и столбцов строится тот же прямоугольник — только теперь он «перекидывается» между двумя разными таблицами. Обе таблицы строятся независимо, по тому же алгоритму, но каждая — по своему ключевому слову.

Правила шифрования пары букв

Особый случай — одна и та же строка. Если первая буква пары (в левой таблице) и вторая буква пары (в правой таблице) стоят в одной и той же строке — обе буквы остаются без изменений.

Общий случай — прямоугольник. Если строки разные, первая зашифрованная буква берётся из левой таблицы — в строке первой буквы, но в столбце второй; вторая — из правой таблицы — в строке второй буквы, но в столбце первой.

Если совпадают только столбцы — прямоугольник всё равно строится обычным образом, потому что таблицы разные.

Разбор примера: «УРОК НАЧАЛСЯ», ключи ШКОЛА и УЧЕНИК

ШКОЛАБ ВГДЕЖЗ ИМНПРС ТУФХЦЧ ЩЫЭЮЯ␣
Левая таблица (ключ ШКОЛА)
УЧЕНИК АБВГДЖ ЗЛМОПР СТФХЦШ ЩЫЭЮЯ␣
Правая таблица (ключ УЧЕНИК)
wheatstone.trace
текст:  УРОК НАЧАЛСЯ → УРОКНАЧАЛСЯ (11 букв, нечётно → +␣) → УРОКНАЧАЛСЯ␣
пары:   УР  ОК  НА  ЧА  ЛС  Я␣   (1-я буква — слева, 2-я — справа)

УР  строки 4 и 3 → прямоугольник   → ЧЛ
ОК  строка 1 и 1 → без изменений   → ОК
НА  строки 3 и 2 → прямоугольник   → ИВ
ЧА  строки 4 и 2 → прямоугольник   → ТЖ
ЛС  строки 1 и 4 → прямоугольник   → ШХ
Я␣  строка 5 и 5 → без изменений   → Я␣

шифротекст: ЧЛ ОК ИВ ТЖ ШХ Я␣  (слитно — ЧЛОКИВТЖШХЯ␣)
Символ «␣» может оказаться и в самом шифротексте — это нормально, ведь он занимает свою ячейку в таблице, как обычная буква.
Практикум
Практика

Практическое задание

Всё выполняется вручную, в тетради: сначала строим таблицу по ключу, потом работаем по парам.

Задание 1–2 · Плейфер
Задание 1 — шифрование
  1. Ключевое слово: ШИФР.
  2. Постройте таблицу и зашифруйте фразу: НАЙДИ ФЛАГ
Задание 2 — расшифрование
  1. Ключевое слово: ЗАМОК.
  2. Постройте таблицу и расшифруйте текст: НМЦЕУЛРЦФАТБ
Задание 3–4 · Плейфер
Задание 3 — шифрование
  1. Ключевое слово: ПАРОЛЬ (Ь в таблицу не идёт).
  2. Постройте таблицу и зашифруйте фразу: ЗАПИСЬ УДАЛЕНА
Задание 4 — расшифрование
  1. Ключевое слово: ВЗЛОМ.
  2. Постройте таблицу и расшифруйте текст: РЖКОРЦЗЛОМАВТЫ
Задание 5–6 · Уитстон

Левая таблица — ключ КЛЮЧ, правая — ключ ФЛАГ.

Задание 5 — шифрование
  1. Постройте обе таблицы.
  2. Зашифруйте фразу: СЕТЬ ВЗЛОМАНА
Задание 6 — расшифрование
  1. Таблицы те же.
  2. Расшифруйте текст: ЖМВПЯИСТЕКЮН
Задание 7–8 · Уитстон

Левая таблица — ключ ТЕТРАДЬ, правая — ключ ОСИНТ.

Задание 7 — шифрование
  1. Постройте обе таблицы.
  2. Зашифруйте фразу: ЦЕЛЬ НАЙДЕНА
Задание 8 — расшифрование
  1. Таблицы те же.
  2. Расшифруйте текст: КНДАШТДГЧЖСИ
Подсказка. Подписывай номер строки над каждой буквой в обеих таблицах — сразу видно, нужен особый случай или прямоугольник. В Уитстоне буква иногда расшифровывается сама в себя: это не ошибка, а особенность конкретных ключей.
← Тема 05«Буква-предатель» Тема 07 →«Криптолаборатория»