Шифр Цезаря, иначе - шифр Сдвига, один из самых простых методов шифрования.
Каждая буква текста, заменяется на другую букву, которая находится в алфавите на определенном расстоянии от исходной влево или вправо.
Данное расстояние и направление влево или вправо, является ключом Шифра
Простым языком: если ключ равен "3 вправо", каждая буква "а" текста будет заменена на букву "г", буква "б", соответственно, на букву "д".
Данный шифр очень легко взломать, и он почти не используется на практике.
Достаточно попросить программу вывести все варианты сдвига, для всех ключей, коих довольно малое количество (с учетом их пересечений), а затем самому найти вариант непохожий на белиберду.
Но, согласитесь, это для слабаков :)
Давайте поступим хитрее и применим частотный анализ.
Частотный анализ - один из методов дешифровки, он заключается в том, что для каждой буквы алфавита, есть усредненная частота появления в тексте.
Простым языком: если вы возьмете томик "Война и Мир", а затем посчитаете количество всех букв "ж" в книге, потом отнормируете значение на 100 относительно числа всех букв книги, вы получите число, приблизительно равное ~0,94. Подобные значения рассчитаны для каждой буквы многих алфавитов.
В русском языке наиболее часто встречающейся буквой, с точки зрения статистики, является буква "о", с частотой 10,983.
В чем заключается суть работы нижеприведенной программы:
1) Запрашиваем исходный текст
2) Находим средние частоты появления каждой буквы
3) Находим букву с наибольшей частотой (например "г")
4) Априорно считаем эту букву буквой "о"
5) Зная местоположения в алфавите букв "о" и "г" определить величину и направление сдвига не составит труда
6) Расшифровываем текст, используя полученный ключ
Пример:
Исходный текст: дрьчъц бъчшэ - чфюрьлюяьщжх ырьэъщлт, эъуплщщжх льюяьъш цъщлщ пъхчъш. роъ ыьъфунрпрщфк, ыъэнкесщщжр ыьфцчйгрщфкш дрьчъцл бъчшэл, ущлшрщфюъоъ чъщпъщэцъоъ глэющъоъ прюрцюфнл, эгфюлйюэк цчлээфцъх прюрцюфнщъоъ тлщьл.
Дешифрованный текст: шерлок холмс - литературный персонаж, созданный артуром конан дойлом. его произведения, посвящённые приключениям шерлока холмса, знаменитого лондонского частного детектива, считаются классикой детективного жанра.
А теперь вопрос к знатокам:
Что если каждой букве соответствует свой уникальный ключ (полученные буквы после шифрования не могут совпасть).
Применение частотного анализа будет затруднено в связи с близкими частотами многих букв.
Прикрутить морфемный анализ?