
Классические шифры: Цезарь, ROT13, Атбаш и аффинный шифр
Как работают шифры Цезаря, ROT13, Атбаш, аффинный и с ключевым словом, как взламывать их с помощью подсчёта букв и почему сегодня ни один из них не является безопасным.
Люди прячут сообщения на виду уже более двух тысяч лет. Самые ранние приёмы заменяют каждую букву на другую по фиксированному правилу. Ими интересно пользоваться, и они отлично подходят для первого знакомства с криптографией, но любой из них поддаётся терпеливому взломщику с карандашом. В этом руководстве показано, как работают пять классических шифров и почему сегодня ни один из них не способен вас защитить.
Открытый текст, шифротекст и ключи
Исходное сообщение — это открытый текст. Перемешанная версия — это шифротекст. Шифр — это правило, которое превращает одно в другое, а ключ — секретная деталь, определяющая, какую именно замену использовать.
Полезное правило, появившееся в 1800-х, — считать, что противник знает метод шифра и секретен только ключ. Всё ниже следует оценивать именно так: если кто-то знает, что вы сделали, но не знает ваш ключ, сможет ли он прочитать ваше сообщение?
Шифр Цезаря: сдвигаем алфавит
Шифр Цезаря сдвигает каждую букву вперёд на фиксированное число позиций. При сдвиге на 3 A записывается как D, B — как E, а Z переходит по кругу в C. Римский писатель Светоний сообщает, что Юлий Цезарь использовал этот шифр в военных письмах.
Ключ — это число позиций. Тот, кто его знает, может выполнить обратный сдвиг. Проблема в том, что ключей очень мало: существует всего 25 полезных сдвигов. Взломщик может просто перебрать их все — это переборная атака, которая вручную занимает минуту, а на компьютере — вообще не занимает времени.
ROT13
ROT13 фиксирует сдвиг Цезаря на 13 позиций. Поскольку в алфавите 26 букв, два сдвига по 13 возвращают вас в начало. Шифрование и расшифровка выполняются одной и той же операцией. На форумах его использовали, чтобы прятать спойлеры: он защищает от случайного взгляда, а не от настоящего взлома.
Атбаш: зеркальный алфавит
Атбаш записывает алфавит в обратном порядке под обычным алфавитом: A соответствует Z, B — Y, C — X и так далее. Этот шифр происходит из еврейского алфавита и встречается в некоторых древних текстах.
Как и ROT13, он вообще не использует ключ и сам себя отменяет: отразите отражение — и вернётесь к исходному. Поэтому это головоломка, а не замок. Как только кто-то распознает закономерность, ему становятся доступны все сообщения, когда-либо написанные этим шифром.
Аффинный шифр: сначала умножаем, затем сдвигаем
Назначьте каждой букве число: A = 0, вплоть до Z = 25. Аффинный шифр берёт это число, умножает его на a, прибавляет b и выполняет циклический переход по кругу из 26 чисел:
E(x) = (a·x + b) mod 26
Если установить a = 1, получится обычный сдвиг Цезаря. Умножение сильно раздвигает соседние буквы, поэтому результат выглядит более запутанным.
Но есть одна сложность. Чтобы расшифровка работала, каждой букве шифртекста должна соответствовать ровно одна буква открытого текста. Это возможно только тогда, когда a не имеет общих делителей с 26. Поэтому a = 3 и a = 5 подходят, а a = 2 и a = 13 — нет: в этих случаях две разные буквы попадали бы в одно и то же место. Допустимы только 12 значений a, а вместе с 26 значениями b это даёт 312 ключей. Лучше, чем 25, но для компьютера всё ещё слишком мало.
Подстановка по ключевому слову: любая перестановка
Зачем сдвигать каждую букву по определённому правилу? Шифр подстановки позволяет использовать в качестве ключа любую перестановку алфавита. Чтобы такую перестановку было легко запомнить, сначала запишите ключевое слово, удалите повторяющиеся буквы, а затем добавьте неиспользованные буквы по порядку. Ключевое слово ZEBRAS даёт такой алфавит ключа: ZEBRASCDFGHIJKLMNOPQTUVWXY. Значит, A превращается в Z, B — в E, C — в B и так далее.
Число возможных перестановок равно 26 факториал — примерно 4 × 10²⁶. Перебрать их все невозможно, поэтому на протяжении веков шифр подстановки считался невзламываемым. Но это было не так.
Почему сегодня ни один из них не обеспечивает безопасность
У шифров подстановки есть один роковой недостаток: буква всегда превращается в одну и ту же букву. Поэтому сохраняется характерный облик языка. В английском языке чаще всего встречается E, затем T, A и O, а Q и Z — редко. Учёные исламского мира описали частотный анализ примерно в IX веке: нужно посчитать буквы в шифртексте, сопоставить самую частую с E, а затем использовать закономерности слов (слово из одной буквы, скорее всего, — A или I), чтобы восстановить остальные буквы.
В длинных сообщениях статистика получается точнее, поэтому даже огромное количество ключей не помогает. Современные шифры устроены так, чтобы в шифртексте не сохранялись подобные закономерности, а их безопасность основана на ключах, которые невозможно перебрать. Для реальных задач используйте хорошо проверенные современные инструменты и никогда не придумывайте собственную схему.
Как изучить это в лаборатории
The Codes & Ciphers Lab gives you a cipher wheel you can turn, plus tools to count letters and test guesses. A good order through the free first world:
- Start with The Caesar shift and try breaking one.
- See self-inverse behaviour in ROT13, then Atbash.
- Test which multipliers work in Affine: multiply, then shift.
- Build a shuffled key in Keyword substitution.
This is a simplified teaching model of historical ciphers. It is meant to build intuition about keys and attacks, not to protect real messages.
- Ключ выбирает способ перемешивания; считай, что злоумышленники знают метод.
- У шифра Цезаря всего 25 полезных ключей, а у ROT13 и Атбаша нет секретного ключа.
- Множитель аффинного шифра не должен иметь общих делителей с 26, поэтому подходят 12 значений.
- У подстановки по ключевому слову огромное пространство ключей, но её можно взломать с помощью анализа частоты букв.
Шифр Цезаря
Каждая буква смещается на одинаковое число позиций. Около 6 минут. Бесплатно, без аккаунта, работает в браузере.
Другие бесплатные уроки из этого руководства
- 01ROT13: сдвиг, который отменяет сам себяЛаборатория кодов и шифров · 5 минБЕСПЛАТНО
- 02Атбаш: зеркальный алфавитЛаборатория кодов и шифров · 5 минБЕСПЛАТНО
- 03Аффинный шифр: умножение, затем сдвигЛаборатория кодов и шифров · 7 минБЕСПЛАТНО
- 04Подстановка по ключевому словуЛаборатория кодов и шифров · 7 минБЕСПЛАТНО
Симуляции на Novareka — это учебные модели, намеренно упрощённые. Они показывают, как ведёт себя идея, но не заменяют профессиональные, медицинские или инженерные рекомендации.
Лаборатории в этом материале
Продолжить чтение
Все материалы →
Объяснение
Объяснение
Объяснение
