VITON13School
Бесплатные инструменты школы

Шифр Цезаря: как он устроен, как расшифровать и почему его легко взломать

Шифр Цезаря заменяет каждую букву той, что стоит в алфавите на фиксированное число позиций дальше, а после Z счёт идёт снова с A. При сдвиге на три — его, по словам Светония, использовал Юлий Цезарь — A превращается в D, B в E, а HELLO в KHOOR. Чтобы расшифровать, каждую букву сдвигают на то же число назад.

Автор: , основатель VITON13 SCHOOL
Увеличенная копия шифровального диска Конфедерации на деревянной музейной панели: два чёрных кольца с белыми заглавными буквами, внутренний алфавит повёрнут относительно внешнего, надпись C.S.A., ниже табличка с описанием

Шифр Цезаря — самый простой шифр с ключом, поэтому с него обычно и начинают знакомство с криптографией. Ниже — откуда он взялся, как зашифровать и расшифровать сообщение вручную на примере, что такое ROT13, два способа взломать шифр без ключа, шифр Виженера как следующий шаг и почему сегодня всё это ничего не защищает. В конце — бесплатный инструмент, который шифрует, расшифровывает и взламывает прямо в браузере.

Главные идеи

  • Каждая буква сдвигается по алфавиту на одно и то же число позиций; это число и есть ключ. При сдвиге 3: A→D, B→E, X→A, Y→B, Z→C.
  • По словам Светония, Юлий Цезарь писал секретные письма этим шифром со сдвигом на три; ROT13 — та же идея со сдвигом на 13.
  • Взломать его легко: в латинском алфавите всего 25 сдвигов, а частотный анализ, впервые описанный аль-Кинди в IX веке, находит сдвиг по подсчёту букв.
  • Шифр Виженера даёт каждой букве свой сдвиг по ключевому слову, но и его взломали в XIX веке; ни тот ни другой сегодня не защищает.

Что такое шифр Цезаря

Это шифр простой замены: каждая буква сообщения заменяется буквой, стоящей в алфавите на заданное число позиций дальше. Это число — сдвиг — и служит ключом. Замена одна на всё сообщение, поэтому шифр относят к моноалфавитным. В латинском алфавите 26 букв, значит, осмысленных сдвигов 25: сдвиг на 26 возвращает каждую букву на место. В русском алфавите из 33 букв таких сдвигов было бы 32.

Шифр назван в честь Юлия Цезаря. Римский историк Светоний в «Жизни двенадцати цезарей», в главе о Юлии Цезаре, сообщает: когда Цезарю нужно было написать в письме что-то секретное, он писал тайнописью, и чтобы прочесть такое письмо, вместо A нужно подставлять четвёртую букву алфавита, D, и так далее — то есть сдвиг на три. Там же сказано, что Август пользовался сдвигом на один. Насколько надёжно шифр защищал письма в то время, неизвестно: записей о том, как тогда разгадывали такие шифры, не сохранилось.

На языке арифметики буквы нумеруют: A = 0, B = 1 … Z = 25. Чтобы зашифровать букву x со сдвигом n, берут остаток от деления x + n на 26, а для расшифровки — остаток от деления x − n на 26. Например, X — это 23, а 23 + 3 = 26, остаток от деления на 26 равен 0, значит, X превращается в A. Именно остаток замыкает алфавит в кольцо.

[1]

Как зашифровать и расшифровать шифр Цезаря

Выпишите алфавит, под ним — тот же алфавит со сдвигом на ключ и меняйте каждую букву на ту, что стоит под ней. Для расшифровки читайте таблицу снизу вверх — это то же самое, что сдвиг на ключ назад.

Для сдвига 3 таблица выглядит так: над строкой D E F G H I J K L M N O P Q R S T U V W X Y Z A B C стоит обычный алфавит A B C D E F G H I J K L M N O P Q R S T U V W X Y Z. Зашифруем латинское приветствие AVE CAESAR по буквам: A→D, V→Y, E→H, C→F, A→D, E→H, S→V, A→D, R→U. Получается DYH FDHVDU. Пробелы и знаки препинания обычно оставляют как есть или убирают, чтобы длина слов ничего не подсказывала.

Чтобы расшифровать DYH, сдвигаем каждую букву на три назад: D→A, Y→V, H→E — выходит AVE. Сдвиг на 3 назад равен сдвигу на 23 вперёд. Особый случай — сдвиг на 13, ROT13: 13 — половина от 26, поэтому одно и то же действие и шифрует, и расшифровывает, и HELLO превращается в URYYB и обратно. ROT13 прячет спойлеры и концовки шуток, а не секреты.

Почему шифр Цезаря так легко взломать

Потому что ключей слишком мало. Сдвигов всего 25, и любой может перебрать их все — это атака полным перебором — и оставить ту строку, что читается как нормальный текст. Вручную на это уйдут минуты, компьютер справится мгновенно. Двойное шифрование тоже не помогает: сдвиг на A, а потом на B — это всего лишь один сдвиг на A + B.

Второй способ — частотный анализ. В английских текстах чаще всего встречаются буквы E и T, реже всего — Q и Z, а сдвиг Цезаря переносит всю эту картину по алфавиту, не меняя её формы. Посчитайте буквы шифровки: если чаще всего встречается H, скорее всего, это E, и сдвиг равен 3. Самые ранние сохранившиеся описания частотного анализа — в трудах аль-Кинди, учёного IX века из арабского мира. Очень короткий текст может обмануть: RIVER со сдвигом 9 превращается в ARENA, — но одной-двух фраз обычно хватает.

Следующим шагом стал шифр Виженера: он применяет к каждой букве свой сдвиг Цезаря, заданный повторяющимся ключевым словом, где A означает сдвиг 0, а Z — сдвиг 25. С ключом LEMON английское слово ATTACK («атака») превращается в LXFOPV: A + L = L, T + E = X, T + M = F и так далее. Первым его описал Джован Баттиста Беллазо в 1553 году; позже шифр ошибочно приписали Блезу де Виженеру, и за ним закрепилось прозвище «неразгадываемый шифр». Чарльз Бэббидж взломал один из вариантов ещё в 1854 году, но не опубликовал метод, а Фридрих Казиски опубликовал общий способ взлома в 1863 году. Ключ из одной буквы снова превращает его в обычный шифр Цезаря.

Надёжен ли шифр Цезаря сегодня и как его попробовать

Нет. Как и любой шифр с одним алфавитом замены, он почти ничего не защищает, а шифр Виженера поддаётся взлому уже больше 150 лет. Сегодня шифр Цезаря живёт в головоломках, детских шифровальных кольцах и ROT13, а настоящие сообщения и сайты защищает современная криптография, бесконечно далёкая от сдвига букв. Его ценность — учебная: на нём видно, что такое ключ, шифрование и расшифровка и почему малое число ключей губит шифр.

Чтобы попробовать, откройте бесплатный инструмент «Шифр Цезаря» в VITON13 SCHOOL. Введите сообщение, выберите сдвиг — инструмент его зашифрует; введите шифровку с тем же сдвигом — расшифрует. Сдвиг 13 даёт ROT13. Тот же инструмент работает и с шифром Виженера: вместо сдвига вводится ключевое слово, и каждая буква сдвигается по-своему.

Чтобы взломать сообщение без ключа, откройте режим взлома: он показывает сразу все 25 сдвигов текста латинского алфавита, так что читаемая строка бросается в глаза, и частоты букв в тексте — их можно сравнить с привычной для английского картиной, где наверху E и T. Проверьте на нём своё решение задания ниже.

[2][3]

Простыми словами

Шифр Цезаря — это кольцо с буквами, повёрнутое на несколько щелчков. Кто знает число щелчков, повернёт обратно; кто не знает, может просто перепробовать все 25 положений.

Попробуйте сами

Запишите своё имя латиницей, зашифруйте его вручную со сдвигом 3, затем введите результат в инструмент «Шифр Цезаря», расшифруйте и посмотрите список всех 25 сдвигов.

Ожидаемый результат

Имя, сдвинутое на три буквы вперёд (ANNA превращается в DQQD), и в списке из 25 сдвигов ровно одна строка, где читается ваше имя.

Проверьте себя: Расшифруйте YHQL YLGL YLFL — это знаменитая латинская фраза, зашифрованная со сдвигом 3.

VENI VIDI VICI («Пришёл, увидел, победил»). Каждую букву сдвигаем на три назад: Y→V, H→E, Q→N, L→I, затем G→D и F→C.

Вопросы и ответы

Что является ключом шифра Цезаря?

Ключ — это сдвиг, то есть число позиций, на которое смещается каждая буква. В латинском алфавите он может быть от 1 до 25; сам Цезарь, по словам Светония, сдвигал на 3.

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

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

Чтобы зашифровать, сдвигайте каждую букву на ключ, чтобы расшифровать — на ключ назад; при 25 ключах шифр Цезаря взламывается перебором или подсчётом букв. Попробуйте зашифровать, а потом взломать сообщение в бесплатном инструменте VITON13 SCHOOL для шифров Цезаря и Виженера.

Источники и дальнейшее чтение

  1. Wikipedia: Caesar cipher ↗Источники проверены:
  2. Suetonius, The Life of Julius Caesar, 56 (Loeb Classical Library, 1913), on LacusCurtius ↗Источники проверены:
  3. Wikipedia: Vigenère cipher ↗Источники проверены: