Шифр Цезаря

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

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

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

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

символов 0

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

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

Ek(x)=(x+k)modnDk(x)=(xk+n)modnE_k(x) = (x + k) \bmod n \qquad D_k(x) = (x - k + n) \bmod n

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

Отсюда два следствия, которые видно на диске. Первое: сдвиг всегда можно привести к диапазону от 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», и по самой частой букве шифротекста сдвиг вычисляется сразу. Это учебный и игровой шифр; для реальной защиты нужны современные алгоритмы.