Я написал (напишу) программу для анализа зашифрованного текста и попытаюсь проанализировать и разбить его с помощью частотного анализа.
Зашифрованный текст принимает форму каждой буквы, заменяемой какой-либо другой буквой, т.е. a- > m, b- > z, c- > t и т.д. и т.д. все пробелы и не альфа-символы удаляются, а буквы верхнего регистра - в нижнем регистре.
Пример:
Обычный вход - thisisasamplemessagetoncontainlowlowercasesletters
Зашифрованный вывод - ziololqlqdhstdtllqutozgfsnegfzqlvgvtkeqltstzztkl
Попытка растрескивания - omieieaeananhtnteeawtiorshylrsoaisehrctdlaethtootde
Здесь он имеет только правильные значения I, A и Y.
В настоящее время моя программа трещит его, анализируя частоту каждого отдельного символа и сопоставляя его с символом, который появляется в том же частотном ранге в незашифрованном тексте.
Я ищу методы и способы повышения точности моей программы, так как на данный момент я не получаю слишком много символов. Например, при попытке взломать X количество символов из Pride and Prejudice, я получаю:
1600 - 10 правильных букв
800 - 7 правильных букв
400 - 2 буквы правильно
200 - 3 буквы правильно
100 - 3 буквы правильные.
Я использую Ромео и Джульетту в качестве базы для получения частотных данных.
Мне было предложено посмотреть и использовать частоту пар символов, но я не уверен, как использовать это, потому что, если я не использую очень большие зашифрованные тексты, я могу представить себе похожий подход к тому, как я делаю одиночные символы будет еще более неточным и вызовет больше ошибок, чем успехов. Я также надеюсь, что мой шифр-шифр станет более точным для более коротких "входов".
Любые предложения были бы очень полезными.
Спасибо.