Skip to content

Repository files navigation

Реализовано два частотных анализа текста: по буквам (в папке symbols) и по биграммам (в папке bigrams). Вычисление правдободобия происходит методом наименьших квадратов.
Частотный анализ работает на русском и английском текстах. В качестве образцов частот взяты тексты:
для русского - Война и мир
для английского - Робинзон Крузо

Для того, чтобы работать с нужным языком, нужно прежде установить локаль с помощью скрипта setLocale.py
(EN или RUS)

В качестве текста для шифрования для обоих языков взял рассказ "Муму"

Для шифрования используется скрипт encrypt.py, которому на вход подается файл для шифрования и файл для вывода зашифрованного текста.
Соответствующие зашифрованные тексты "Муму" лежат в encrypted_en.txt и encrypted_rus.txt

Для расшифровки следует запустить в соответствующей директории сначала скрипт count_bigram_frequency.py для подсчета частот,
а после скрипт hacking.py для дешифровки текста.

Соответствующие расшифрованные тексты лежат в файлах hacked_en.txt и hacked_rus.txt в каждой папке.
Как можно видеть, расшифровка по биграммам смогла полностью восстановить текст, в отличии от посимвольного анализа.
Но при этом, расшифровка по биграмам работала примерно в 100 раз дольше, поскольку пересчет идет пар символов, т.е. в квадрат от размера алфавита больше.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages