Cabinet Noir>Навчання / Шифр цезаря

Не знаєте, який це шифр? Розпізнайте його
Кожну літеру повідомлення зсунуто на однакову фіксовану кількість позицій в алфавіті.
Типшифр підстановки
Зламзлам тривіальний
ЕпохаI століття до н. е.
НазваНазваний на честь Юлія Цезаря, який, за переказами, використовував зсув 3 у приватному листуванні.
Режимишифрування · розшифрування

Навчання

Шифр цезаря

Як працює шифр Цезаря

Ідея одним реченням

Шифр Цезаря зміщує кожну літеру Відкритий текст на одну й ту саму фіксовану величину — Зсув, тож уесь Алфавіт зсувається вбік одразу. Це Підстановка з одним алфавітом: кожна А стає, скажімо, D, кожна B — E, і так для всього повідомлення.

Рецепт

  1. Напишіть повідомлення і залиште лише літери (інструмент відкидає пробіли та розділовість, якщо ви не попросите іншого).

  2. Оберіть зсув: число від 1 до 25. Юлій Цезар використовував 3.

  3. Пересуньте кожну літеру Алфавіт на стільки позицій уперед, замикуючи коло в кінці: після Z іде A.

  4. Прочитайте літери, на які ви потрапили, — це шифртекст.

Розібраний приклад

Крок 1 із 10
Літера відкритого тексту
Зсув
Результат
M
3
P

Із зсувом 3 літера A відкритого тексту потрапляє на D, B — на E, а кінець алфавіту замикає коло: X, Y і Z виходять як A, B і C. Один зсув на все повідомлення — саме це робить шифр Цезаря простим у користуванні і простим для зламу.

Формула

Нумеруючи A=0 … Z=25, шифрування додає зсув і замикає коло алфавіту:

шифр   = (відкритий + зсув) mod 26
відкритий = (шифр - зсув + 26) mod 26

Розшифрування — той самий рух назад: замість додавання відніміть зсув. Кнопка обміну в інструменті робить саме це — вона пропускає шифртекст крізь другу формулу замість першої.

Один алфавіт чи інший

Інструмент за замовчуванням працює з англійським алфавітом, але шифр працює з будь-яким упорядкованим набором літер: оберіть готовий або вставте власний у поле Alphabet. Математика не змінюється; змінюється лише довжина алфавіту (формула тоді замикає коло на цій довжині, а не на 26).

Спробувати в інструменті

Покрокові інструкції

Зашифруйте перше повідомлення

  1. Наберіть повідомлення у поле повідомлення.

  2. Потягніть повзунок обертання поле «Ключ», щоб обрати зсув — класика це 3.

  3. Вирішіть, що робити з двома перемикачами: перемикач «Зберігати пробіли» зберігає розташування слів, а перемикач «Зберігати регістр» — великі літери. Решту інструмент відкидає.

  4. Прочитайте результат у поле результату.

Розшифруйте отримане повідомлення

  1. Вставте криптограму у поле повідомлення.

  2. Натисніть кнопку обміну кнопку обміну, щоб перейти в режим розшифрування.

  3. Виставте повзунок обертання поле «Ключ» на зсув відправника — потрібне точно те саме число.

  4. Прочитайте початкове повідомлення у поле результату.

Зламайте повідомлення без ключа

Зсув — це число від 1 до 25, тож атака Повний перебір потребує щонайбільше 25 спроб — а зазвичай значно менше:

  1. Вставте криптограму у поле повідомлення і перейдіть у режим розшифрування кнопкою кнопку обміну.

  2. Проведіть обертанням поле «Ключ» по значеннях і стежте за поле результату: нісенітниця, знову нісенітниця… аж раптом з'являється читабельне слово.

  3. Якщо перебирати всі зсуви здається шахрайством, зробіть розумніше: Частотний аналіз. Знайдіть найчастішу літеру шифртексту (часто це зашифрована E), виміряйте її відстань від E, виставте цей зсув і прочитайте одне речення для перевірки.

Злам шифру Цезаря

Шифр Цезаря ламається тривіально, і варто зрозуміти чому: він падає не через погану арифметику, а тому, що зберігає забагато структури. Обидві класичні атаки нижче не потребують нічого, крім інструмента.

Спробувати в інструменті

Вада: один зсув для всього

Кожна літера ховається за одним і тим самим Зсув. Якою б не була статистика відкритого тексту, Шифротекст її зберігає — просто в інших літерах. Найчастіша літера повідомлення залишається найчастішою, лише зміщеною; ритм повторюваних слів нікуди не зникає. Одна заміна зберігає про текст усе, крім того, якими літерами він написаний.

Атака 1 — повний перебір

Можливих зсувів лише 25 (26, якщо враховувати «без шифрування»). Переберіть їх:

  1. Перемкніть інструмент у режим розшифрування кнопкою кнопку обміну і вставте криптограму у поле повідомлення.

  2. Проведіть обертанням поле «Ключ» від 1 до 25 і щоразу читайте поле результату.

  3. Читабельний уламок з'являється рівно один раз — коли обертання збігається зі зсувом відправника. Далі людське око доглядає саме.

Атаці Повний перебір не потрібна жодна статистика — саме тому будь-який сучасний шифр мусить мати простір ключів, завеликий для ручного перебору.

Атака 2 — частотний аналіз

Частотний аналіз оминає гадання: порахуйте літери шифртексту і порівняйте лічбу з відомим профілем мови.

  • В англійській найчастіша літера — E, близько 12% довгого тексту, за нею йдуть T, A, O, I та N.

  • Знайдіть найчастішу літеру шифртексту; її відстань від E — найімовірніший зсув.

  • Розшифруйте з цим зсувом і прочитайте. Якщо текст короткий і впертий, спробуйте відстань до T.

Частотний аналіз описав багатознавець Аль-Кінді у IX столітті, і він ламає будь-який шифр одноалфавітної заміни — Цезар лише найпростіший з них.

Де ідея вижила

Провал Цезаря навчив криптографів першого великого уроку: ключ мусить змінювати текст нерівномірно. Пізніші шифри зберегли ідею зсуву, але зробили зсув різним для кожної літери — шифр Віженера це буквально «багато Цезарів», по одному на літеру ключа, і атака Частотний аналіз вище перестає працювати на ньому, поки ви спочатку не відновите довжину ключа.

Глосарій

Відкритий текст — Початкове читабельне повідомлення до шифрування.
Шифротекст — Перемішане повідомлення, отримане після шифрування.
Ключ — Секрет, що визначає, як саме змішується текст.
Зсув — Наскільки позицій літера зміщується алфавітом.
Алфавіт — Набір літер, з якими працює шифр.
Підстановка — Заміна кожної літери іншою.
Частотний аналіз — Вивчення частоти літер; порівняння з мовою відкриває відкритий текст.
Повний перебір — Спробувати всі можливі ключі, поки повідомлення не набуде сенсу; можливо лише коли простір ключів малий.