Шифр Цезаря

Шифрование и расшифровка текста сдвигом по алфавиту: наглядный шифровальный диск и перебор ключей

Шифротекст появится здесь

АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯсдвиг3А → Г

Крутите внутреннее кольцо мышью или тяните ползунок — ключей всего 32

символов 0

Как считается сдвиг

Буквы алфавита нумеруются с нуля, а шифрование складывает номер буквы с ключом по кругу. «По кругу» здесь не метафора: после последней буквы счёт начинается заново с первой, поэтому в инструменте нарисован именно диск, а не линейка.

Ek(x)=(x+k) mod nDk(x)=(x−k+n) mod nE_k(x) = (x + k) \bmod n \qquad D_k(x) = (x - k + n) \bmod n

x (номер буквы в алфавите), k (сдвиг, ключ), n (длина алфавита: 26 для латиницы, 33 для русского алфавита с Ё)

Схема сдвига шифра Цезаря на 3 позиции: буквы верхнего ряда стрелками указывают на буквы нижнего ряда через три позиции по алфавиту

Сдвиг 3: каждая буква переходит в ту, что стоит на три позиции дальше, а последние три буквы заворачивают в начало алфавита

Отсюда два следствия, которые видно на диске. Первое: сдвиг всегда можно привести к диапазону от 0 до n−1: сдвиг 30 по латинице это то же самое, что сдвиг 4, диск просто провернулся на лишний оборот. Второе: нулевой сдвиг оставляет текст как есть, поэтому осмысленных ключей на один меньше, чем букв.

Как расшифровать текст без ключа

Самый прямой способ: перебор. Включите «перебор ключей», и все 25 (латиница) или 32 (кириллица) варианта появятся списком под инструментом. Осмысленная строка находится глазами за несколько секунд, никакой математики не нужно.

Длинный текст вскрывается ещё быстрее, частотным анализом, вообще без перебора. Буквы встречаются в языке с устойчивой частотой, а сдвиг её не меняет: он только переставляет буквы по кругу. Найдите самую частую букву шифротекста и вычтите из её номера номер самой частой буквы языка, так вы получите ключ.

МестоРусскийАнглийский
1О: 11,0%E: 12,7%
2Е: 8,5%T: 9,1%
3А: 8,0%A: 8,2%
4И: 7,4%O: 7,5%
5Н: 6,7%I: 7,0%
6Т: 6,3%N: 6,7%

Русские частоты взяты по Национальному корпусу русского языка, английские по таблице из «Cryptological Mathematics» Роберта Лиуанда. Цифры округлены и заметно плывут на коротких текстах: на одной фразе частотный анализ не работает, там надёжнее перебор.

ROT13 и другие родственники

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

НазваниеЧто сдвигаетПример
ROT1326 латинских букв на 13Hello → Uryyb
ROT510 цифр на 52026 → 7571
ROT18буквы и цифры разом (ROT13 + ROT5)A1 → N6
ROT4794 печатных символа ASCII на 47Hello → w6==@

Для русского алфавита такого самообратного ключа нет: 33 буквы на два нацело не делятся. Ни один из этих вариантов не защищает данные: это способ спрятать спойлер от случайного взгляда, а не от того, кто захочет прочитать. Если нужно не скрыть текст, а безопасно передать его по текстовому каналу, для этого есть другой инструмент, кодировщик Base64. А если нужен по-настоящему стойкий секрет, пригодится генератор паролей.

Откуда взялся шифровальный диск

Два кольца букв в инструменте не украшение, а копия настоящего устройства. Первым его описал Леон Баттиста Альберти в 1467 году: два соосных медных круга с алфавитами, которые проворачиваются относительно друг друга. Идея оказалась живучей: в 1922 году армия США приняла на вооружение шифратор M-94 из 25 алюминиевых дисков на общей оси, и служил он до Второй мировой.

Сам Цезарь, по «Жизни двенадцати цезарей» Светония, сдвигал буквы на три позиции: вместо A писал D. А его преемник Август пользовался сдвигом на единицу и, дойдя до конца алфавита, писал вместо X две буквы AA: правило «завернуть в начало» тогда ещё не придумали, и диск такой шифр нарисовать бы не смог.

Шифр Цезаря давно стал обычной остановкой в школьной программе и в квестах. Рядом с ним чаще всего оказывается азбука Морзе: она тоже заменяет буквы, но решает ровно обратную задачу, не спрятать сообщение, а передать его как можно надёжнее.

Похожие инструменты

Другие полезные инструменты из той же категории

Часто задаваемые вопросы

Это шифр простой замены: каждая буква текста заменяется на букву, стоящую в алфавите на фиксированное число позиций дальше. Сдвиг и есть ключ. При сдвиге 3 «А» превращается в «Г», «Б» в «Д», а конец алфавита заворачивается в начало: «Я» становится «В». Светоний пишет, что именно сдвигом на три позиции Гай Юлий Цезарь шифровал переписку.

Перебрать все ключи. У шифра Цезаря их ровно на один меньше, чем букв в алфавите: 25 для латиницы и 32 для кириллицы. Включите «перебор ключей», и инструмент покажет все варианты сразу, осмысленный находится глазами за несколько секунд. Это и есть главная слабость шифра: ключей слишком мало, чтобы перебор был проблемой.

Да, это его частный случай: сдвиг ровно на 13 позиций, половину латинского алфавита. Из-за этого ROT13 обратен самому себе: повторное применение возвращает исходный текст, шифрование и расшифровка делаются одной кнопкой. В Usenet им скрывали спойлеры и концовки, а не секреты.

Инструмент работает с полным русским алфавитом из 33 букв, включая Ё: так текст после шифрования и расшифровки возвращается ровно таким, каким был. Цифры, пробелы, знаки препинания и буквы другого алфавита проходят насквозь без изменений, регистр сохраняется.

Нет. Шифр Цезаря вскрывается перебором за секунды, а на тексте длиннее пары фраз: частотным анализом даже без перебора. В русском тексте чаще всего встречается «О», в английском «E», и по самой частой букве шифротекста сдвиг вычисляется сразу. Это учебный и игровой шифр; для реальной защиты нужны современные алгоритмы.