Незважаючи на те що шифр багато разів перероблявся, вперше його описав Джован Баттіста Беллазо в 1553 році. Згодом він отримав ім’я французького дипломата Блеза Віженер. Цей варіант досить простий для реалізації і розуміння, оскільки він є найбільш доступним методом криптоаналізу.
Опис методу
Шифр Вижнера включає послідовність декількох шифр Цезаря. Для останнього характерний зсув на кілька рядків. В цілях шифрування можна використовувати таблицю алфавітів, яка називається квадрат Віженер. У професійних колах його іменують як tabula recta. Таблиця Віженер складається з декількох рядків по 26 символів. Кожна нова рядок пересувається на певну кількість позицій. В результаті таблиця містить 26 різних шрифтів Цезаря. Кожен етап шифрування передбачає використання різного алфавіту, який вибирається в залежності від символу ключового слова.
Для того щоб краще зрозуміти суть цього методу, розглянемо шифрування тексту на прикладі слова ATTACKATDAWN. Особа, яка надсилає текст, записує ключове слово «LEMON» до того моменту, поки воно не буде відповідати довжині переданого тексту. Ключове слово буде мати вигляд LEMONLEMONLE. Перший символ заданого тексту – А – зашифрований послідовністю L, що є першим символом ключа. Даний символ розташовується на перетині рядка L стовпця A. Для наступного символу заданого тексту застосовується другий символ ключа. Тому другий символ закодованого тексту буде мати вигляд X. Він вийшов в результаті перетину рядка E і стовпця T. Інші частини заданого тексту шифруються аналогічним способом. У результаті виходить слово LXFOPVEFRNHR.
Процес розшифрування
Розшифрування слова здійснюється за допомогою таблиці Віженер. Необхідно знайти рядок, що відповідає першому символу ключового слова. Рядок буде містити перший символ зашифрованого тексту.
Стовпець, який містить цей символ, буде відповідати першого символу вихідного тексту. Наступні значення будуть розшифровуватися аналогічним чином.
Важливі поради
Надаючи зашифрований текст, необхідно задати ключове слово. Воно знадобиться для того, щоб розшифрувати код з допомогою російської шифру Віженер в тому числі. Для того щоб переконатися в правильності кодування, краще двічі перевірити текст. Якщо текст буде неправильно закодовано, його неможливо правильно розшифрувати.
При використанні квадрата Віженер з пробілами та розділовими знаками процес розшифровки значно ускладниться. Важливо знати про те, що часте повторення кодового слова дозволить легко розшифрувати текст. Тому кодова інформація повинна бути довгою.
Попередження до методу
Шифр Віженер, як і багато інших, не є надійним, оскільки його легко зламати. Якщо є необхідність передати секретну інформацію, не потрібно вдаватися до використання даного методу. Для таких цілей розроблені інші методи. Шифр Віженер є одним з самих старих і популярних методів шифрування.
В якості ключа виступає спеціальна фраза. Вона кілька разів повторюється і пишеться над шифруемым текстом. В результаті кожна буква посилається повідомлення зсувається відносно заданого тексту на певне число, яке задається буквою ключової фрази. Протягом декількох століть даний метод стійко займав позицію самого надійного методу шифрування. У 19 столітті відзначені перші спроби злому шифру Віженер, які ґрунтувалися на визначенні довжини ключової фрази. Якщо відома її довжина, то текст можна розбити на певні фрагменти, які кодуються одним і тим же зрушенням.
Додаткові методи розшифровки
Розкрити вихідне повідомлення можна за допомогою методу частотного аналізу, якщо заданий текст досить довгий. Розгадка шифру багато в чому зводиться до пошуку довжини ключової фрази. Існують два основних методи, які дозволяють визначити довжину ключової фрази. Перший метод розкодування шифру Віженер розробив Фрідріх Касицкий. В основі даного методу лежить пошук биграмм. Його суть полягає в тому, що якщо в закодованому повідомленні повторюється одна і та ж біграм на відстані, яка кратна довжині ключової фрази, то існує велика частка ймовірності, що вона зустрінеться на тих же позиціях в зашифрованому тексті. Якщо знайти цю відстань, отримати його подільники, можна отримати набір певних чисел. Саме вони і будуть становити довжину ключової фрази. Однак даний метод вимагає деякої частки везіння. У великому закодованому тексті можна знайти випадкові биграммы, що значно ускладнить процес розшифровки.
Другий метод розшифрування тексту запропонував Фрідман. Його суть полягає в циклічному зсуві закодованого повідомлення. Отриманий текст записується під оригінальним зашифрованим текстом і підраховується кількість збіглися букв в нижній і верхній рядку. Отримані числа дозволяють обчислити так званий індекс збігів. Він визначається співвідношенням збігів до загальної довжини повідомлення. Індекс збігу для російських текстів становить приблизно 6%. Однак для випадкових текстів даний індекс становить приблизно 3 чи 1/32. Метод Фрідмана ґрунтується на даному факті. Закодований текст записується зі зрушенням в 1,2,3 і т. д. позицій. Потім для кожного зсуву необхідно обчислити індекс збігів. Таким чином, необхідно виконати циклічний зсув всього повідомлення. При зрушуванні індексу на певну кількість символів його довжина може різко збільшитися. Це говорить про те, що довжина ключового слова може прирівнюватися до певного числа. Якщо відбувається ситуація, при якій всі символи зсуваються на одну і ту ж позицію, індекс збігу буде мати таке ж значення, як і вихідний текст. Якщо обчислюється індекс для шифру Віженер, в будь-якому випадку відбувається порівняння фактично випадкового тексту.
Проведення аналізу частоти
Якщо результат процесу дешифрування виявився позитивним, можна вписувати текст на стовпці. Стовпці формуються на базі вихідного тексту. Касицкий винайшов найбільш досконалу форму тексту. Однак кошти даного методу неможливо застосовувати в тому випадку, якщо решітка йде від стандартної послідовності букв в алфавіті. Тому даний метод дозволяє дізнатися довжину ключів лише в окремих випадках.