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

С Цезарем это не имеет смысла. Перебрать 33 варианта в разы быстрее, чем анализировать частоты букв. К тому же, текст такого размера нереально вскрыть частотным способом, там нужно пробовать хотя бы от 1000 символов, но лучше, конечно, значимо больше.
Вскрывайте Виженера. Сперва индекс соответствия, потом частотный анализ - вот это развлечение уже куда более стоящее.
ой йё .. стиль программинга поправить бы. Пишете как рукожоп!
На самом деле, как мне кажется, следует провести частичную проверку полученных слов на существование (словарь видимо нужен). И , таким образом, при обнаружении ошибки, менять символы местами.
Аллах подарил вам нормальные языки, зачем мистер Андерсон, зачем вы продолжаете писать на паскале?
П.с.: это программирование, а не лингвистика. Шифруйте AES