Язык реализации: Python (Python 3.x).
-
Реализовать подсчёт статистик встречаемости букв. Составить шаблоны для художественной и технической литературы, молитв.
source:
- Slide1/Task1.py
input:
- text1.txt (художественная литература)
- text2.txt (техническая литература)
- text3.txt (молитва)
output:
- st_text1.txt (количество)
- freq_text1.txt (десятичная дробь)
- st_text2.txt
- freq_text2.txt
- st_text3.txt
- freq_text3.txt
-
Реализовать шифр Цезаря.
source:
- Slide1/Task2.py
input:
- text1.txt
- text2.txt
- text3.txt
output:
- enc_text1.txt
- enc_text2.txt
- enc_text3.txt
-
Реализовать подсчёт статистик криптограмм, полученных методом Цезаря. Автоматизировать криптоанализ таких шифрограмм.
source:
- Slide1/Task3.py
input:
- enc_text1.txt
- enc_text2.txt
- enc_text3.txt
- freq.txt (файл частот)
output:
- dec_enc_text1.txt
- dec_enc_text2.txt
- dec_enc_text3.txt
-
Реализовать шифрование методом одноразовый блокнот.
source:
- Slide2.py
input: сообщение и ключ
Для абсолютной криптографической стойкости ключ должен обладать тремя критически важными свойствами:
- иметь случайное равномерное распределение;
- совпадать по размеру с заданным открытым текстом;
- применяться только один раз.
-
Реализовать XOR при помощи and, or, not
source:
- Slide2.py
def xor(a, b): return (a & ~b) | (~a & b)
-
Для анализа взять тексты (2000-3000 знаков) на русском, украинском и английском языках. Оценить вероятность появления битов 0 или 1 в каждой позиции символа.
source:
- Task1.py
input:
- text1.txt
- text2.txt
- text3.txt
output:
- ent_text1.txt
- ent_text2.txt
- ent_text3.txt