
- •Лабораторная работа № 1 криптоанализ простых криптографических систем.
- •1. Раскрытие шифра простой (моноалфавитной) подстановки.
- •Частоты букв русского алфавита
- •Частоты букв английского алфавита
- •Ъпъыпуогюяъыпткюзюхлыкъюпвызммоюптлз
- •2. Раскрытие шифра Виженера
- •Расшифровку следует начинать с нахождения длины ключевого слова (ключа).
- •1. Написать вспомогательную программу определения статистики алфавита русского/английского языка (подсчета вероятностей букв в осмысленных текстах).
- •4. Написать программу для определения длины ключа криптограммы.
1. Написать вспомогательную программу определения статистики алфавита русского/английского языка (подсчета вероятностей букв в осмысленных текстах).
Примечание: Выбор языка шифрованных текстов и, соответственно, криптограмм - по усмотрению исполнителя.
Вход.
Текстовый файл. Размер файла - чем больше, тем лучше. Ограничение на длину - только лишь разумное время обработки.
Выход.
Таблица статистики (вывести на экран и в файл), аналогичная любой из табл. 1-4.
Примечание. Пробелы и пунктуация должны убираться из текста автоматически, поскольку и при шифровании текста они не должны учитываться (только в учебных целях, разумеется).
Задание. С помощью программы определения статистики исследовать зависимость статистики от размера выборки (файла).
Результат исследования в отчете представить в виде таблиц (или одной сводной таблицы)и диаграммы для 5-6 возрастающих по размеру файлов (или связных фрагментов одного файла). По оси "Y" - вероятности букв; по оси "Х" - последовательность букв от первой до последней в алфавите.
Сравнить результаты с данными табл. 1-4. Сделать выводы. Создать рабочий файл статистики для использования в дальнейшем.
2. Написать программу расшифровки криптограмм, созданных методом простой подстановки.
Вход.
2.1. Выходной текстовый файл программы шифровки методом простой подстановки или текстовый файл, представляющий собой криптограмму и созданный "вручную" с помощью какого-либо текстового редактора. В первом (предпочтительном!) случае целесообразно использовать программы, разработанные в Лаб. работе № 2.
2.2. Таблица статистики, полученная с помощью программы определения статистики алфавита (п. 1. ПРАКТИЧЕСКОЙ ЧАСТИ) и одна из таблиц 1 - 4.
Длина криптограммы - не менее 30-40 букв.
Выход. расшифрованный текст (вывести на экран).
ПРИМЕЧАНИЕ. Криптограмму получить по произвольно выбранному фрагменту того же файла, который использовался как входной для программы п. 1. ПРАКТИЧЕСКОЙ ЧАСТИ.
Задание. С помощью данной программы попробовать "расшифровать" несколько криптограмм. Сравнить результаты расшифровки с помощью самостоятельно созданной таблицы статистики и с помощью выбранной таблицы из приведенных в тексте теоретической части. Какая из таблиц "лучше"?
3. Написать программу шифровки текста с использованием квадрата Виженера.
Вход.
3.1. Текстовый файл.
3.2. Начальный перемешанный алфавит.
3.3. Ключ (длина порядка 10 букв).
Выход.
Криптограмма (вывести в файл и на экран).
Примечания.
Программа должна автоматически формировать квадрат Виженера по введенному любым способом начальному перемешанному алфавиту. Иными словами, и начальный перемешанный алфавит, и ключ являются параметрами, позволяющими варьировать условия шифровки/расшифровки, исследовать и повторно проверять отдельные особенности программы расшифровки.
Криптограмму на экран желательно выводить группами букв для удобства визуального исследования (см. криптограмму, используемую в качестве примера в теоретической части).
Пробелы и знаки пунктуации игнорировать.
Задание. Зашифровать фрагмент того же файла, по которому определялась статистика. Размер шифруемого текста и соответственно, криптограммы, должен быть порядка 800-1000 букв.