Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
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 раз дольше, поскольку пересчет идет пар символов, т.е. в квадрат от размера алфавита больше.