Cabinet Noir>Навчання / Шифр Віженера

Не знаєте, який це шифр? Розпізнайте його
Кожну літеру повідомлення зсунуто на відповідну літеру ключа, що повторюється.
Типполіалфавітний шифр підстановки
Зламскладно зламати вручну
ЕпохаXVI століття
НазваОписаний Джовані Баттіста Белласо 1553 року, пізніше помилково приписаний Блезу де Віженеру.
Режимишифрування · розшифрування · криптоаналіз

Навчання

Шифр Віженера

Як працює шифр Віженера

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

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

Рецепт

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

  2. Напишіть ключ під повідомленням, літера за літерою, повторюючи його, доки обидва рядки не матимуть однакову довжину.

  3. Зсуньте кожну літеру повідомлення Алфавіт вперед стількома позиціями, скільки вказує літера ключа: A — це 0, B — 1, … Z — 25. Це число і є Зсув.

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

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

Крок 1 із 12
Літера відкритого тексту
Літера ключа
Зсув
Результат
A
L
11
L

Прочитайте перший рядок: літера відкритого тексту A, зсунута літерою ключа L (позиція 11), дає L. Далі ключ LEMON повторюється: другу літеру зсунуто на E, третю — на M, а після п'ятої літери ключ починається спочатку — саме це повторення є водночас силою й слабкістю шифру.

Формула

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

шифротекст = (відкритий + ключ) mod 26
відкритий  = (шифротекст - ключ + 26) mod 26

Таблиця всіх 26 можливих алфавітів зсуву — це знаменита tabula recta; вся таблиця не потрібна — достатньо однієї колонки на літеру ключа.

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

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

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

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

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

  1. Введіть повідомлення в поле повідомлення.

  2. Виберіть будь-яке слово секретом і введіть його в поле «Ключ» — довший ключ важче зламати.

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

  4. Прочитайте зашифрований результат у поле результату. Шифруються лише літери; пробіли та розділові знаки відкидаються.

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

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

  2. Введіть у поле «Ключ» ключ, яким користувався відправник, — потрібен точно такий самий ключ, яким шифрували.

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

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

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

  1. Увімкніть перемикач перемикач «Невідомий ключ» біля поля ключа. Зломщик відкриється нижче.

  2. Крок 1 — довжина ключа: повторювані послідовності тексту підсвічено; виберіть найвпевненішу картку серед картки довжини ключа. Помилка? Поверніться назад і спробуйте іншу.

  3. Крок 2 — літери ключа: для кожного фрагмента у вкладки фрагментів обертайте графік стрілки графіка, доки оцінка відповідності не стане найвищою. Літери збираються в смугу ключа. Застрягли? Здогад у поле ключового слова може розкрити одразу кілька літер.

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

  5. Інструмент розшифрує повідомлення вашим ключем.

Злам шифру Віженера

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

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

Вразливість: ключ повторюється

Шифрування зсуває літеру i відкритого тексту літерою i ключа — але ключ короткий, тож літеру i+5 (за ключа з 5 літер) зсунуто тією самою літерою ключа. Щоразу, коли відкритий текст містить ту саму літеру в двох позиціях, відстань між якими кратна довжині ключа, у Шифротекст теж з'являється та сама літера. Довгі тексти повторюють часті буквосполучення (the, and, tion…), і ці повтори видають Довжина ключа.

Крок 1 — знайти довжину ключа

Два незалежні сигнали, обидва показані на картках довжини ключа зломщика:

  • Повторювані послідовності — Тест Касіскі: знайдіть групи літер, що трапляються кілька разів, виміряйте відстані між ними та шукайте довжини, на які ділиться багато цих відстаней. Якщо відстані 12 і 18, довжина ключа ділить обидві — 6 краща здогад, ніж 36.

  • Індекс збігу — для кандидата N розбийте текст на N фрагментів (кожна N-та літера) і виміряйте, наскільки кожен фрагмент схожий на англійську. Англійська дає близько 0,067, випадкові літери — близько 0,038. Коли N — справжня довжина ключа, кожен фрагмент зсунуто однією літерою і досі виглядає по-англійськи.

Крок 2 — кожен фрагмент це шифр Цезаря

Знаючи довжину ключа, кожен фрагмент зашифровано однією фіксованою літерою ключа — це вже просто шифр Цезаря, який зламає будь-який школяр. Графік інструменту клацає частоти літер фрагмента поруч з англійською таблицею: обертайте, доки високі стовпчики не сядуть на високі еталонні, і показана літера — це літера ключа цього фрагмента. Одне обертання на фрагмент — і весь ключ готовий; стежте, як живий перегляд перетворюється на читабельний текст.

Шлях коротший — ключові слова

Іноді можна вгадати слово, яке обов'язково є у відкритому тексті (вітання, ім'я, «атака»). Покладіть Ключове слово у позицію й віднімайте: кожна літера шифротексту мінус вгадана літера відкритого тексту — це літера ключа. Правильна здогад одразу розкриває кілька літер ключа; хибна відкидається, бо суперечить сама собі.

Межі

  • Короткі тексти брешуть. З малою кількістю літер на фрагмент частотний аналіз перетворюється на вгадування — тому зломщик попереджає вас і тому допомагає ключове слово.

  • Довгі ключі шкодять. Ключ завдовжки з текст, використаний одноразово, — це ідеал без Підстановка: одноразовий блокнот, єдиний шифр, стійкість якого доведено. Віженер з одноразовим ключом і є одноразовим блокнотом.

  • Решта — бухгалтерія. Щойно довжина ключа відома, далі все механічне — саме для цього зломщик автоматизує обчислення, а рішення приймаєте ви.

Глосарій

Відкритий текст — Початкове читабельне повідомлення до шифрування.
Шифротекст — Перемішане повідомлення, отримане після шифрування.
Ключ — Секрет, що визначає, як саме змішується текст.
Алфавіт — Набір літер, з якими працює шифр.
Довжина ключа — Кількість літер ключа до того, як він почне повторюватися.
Фрагмент — Кожна N-та літера тексту (N = довжина ключа). Усі літери одного фрагмента зсунуті тією самою літерою ключа.
Частотний аналіз — Вивчення частоти літер; порівняння з мовою відкриває відкритий текст.
Індекс збігу — Число (близько 0,067 для англійської), що показує імовірність збігу двох випадкових літер тексту.
Тест Касіскі — Визначення довжини ключа за відстанями між повторюваними послідовностями шифротексту.
Ключове слово — Слово, яке ви припускаєте у відкритому тексті; порівняння з шифротекстом розкриває літери ключа.