416

Исследование частотных свойств шифра простой замены

Лабораторная работа

Информатика, кибернетика и программирование

Набрать текст (или ввести в ALFAVIT из файла) в Блокноте (порядка 100 букв), исключить пробелы, знаки препинания и заменить заглавные буквы на строчные. Построить вариационный ряд (упорядочить буквы по убыванию вероятности).

Русский

2013-01-06

718.5 KB

49 чел.

Московский Энергетический Институт

(Технический Университет)

Отчет: Лабораторная работа №5

«Исследование частотных свойств шифра простой замены»

Выполнил: Васильев Василий

Проверил: Рытов А.А.

Москва

2011

  1.  Набрать текст (или ввести в“ALFAVIT” из файла)  в “ Блокноте” (порядка 100 букв), исключить пробелы, знаки препинания и заменить заглавные буквы на строчные.

Создал

  1.  Провести анализ текста (опции  «Посчитать» и «H»), выделить и зафиксировать наиболее информативные признаки (3-4 наибольших значения и их положение относительно друг друга) полученного распределения.

  1.  Для  значения КЕ = (N+3)mod11+2, где N – номер по списку в группе, зашифровать текст и вновь провести анализ. Сравнить полученные результаты.

Сдвигаем на 8 и зашифровываем

Количество букв осталось такое, только сдвинулось на 8 знаков

  1.  Построить вариационный ряд (упорядочить буквы по убыванию вероятности), сравнить с распределением частот русского языка из лабораторной работы №1.

Загрузил свою вероятность появления букв.

Загрузил вероятность появления букв в русском языке (из 1й лабораторной)

Сравниваем.

  1.  Расшифровать предлагаемый текст СN (N- номер по списку группы), используя наиболее вероятное распределение частот появления букв в тексте на русском языке (пробел в программе ALFAVIT исключен из анализа).

  1.  Используя результаты п.5, определить ключ расшифрования KD.

ключ расшифрования 19

  1.  Открыть пакет "Математика" и прочитать (ReadList)  первые 10 букв из файла п.1.

Прочитал

  1.   С помощью функции FromCharacterCode перевести коды ASCII в символы.

Перевел

  1.   Создать строку, содержащую первые пять символов русского алфавита и с помощью функции ToCharacterCode определить коды представления русского алфавита.

Ок!

  1.  Перевести символы вектора п.7 из кодов ASCII в UNICOD и вновь вывести с помощью FromCharacterCode ( числовые диапазоны для кодировок можно найти в The Mathematica Book : CharacterCodes).

  1.  Используя пример (шаблон) для латинского алфавита сформировать программу, реализующую шифр Цезаря для русского алфавита с вводом данных из файла. С помощью функции ToCharacterCode и FromCharacterCode пакета "Математика", преобразующих символы в  ASCII коды и обратно ( код буквы a-97, код буквы b-98 и т.д.), можно задать шифр Цезаря с помощью следующей функции:                                         CaesarCipher[plaintext_, key_]:= FromCharacterCode[ Mod[ ToCharacterCode[plaintext] - 97 +key, 26] + 97]

Пример использования: CaesarCipher[plaintext_, key_]:= FromCharacterCode[ Mod[ ToCharacterCode[plaintext] - 97 +key, 26] + 97]

plaintext="typehereyourplaintextinsmallletters";

key=24;

CaesarCipher[plaintext,key]

Rwncfcpcwmspnjyglrcvrglqkyjjjcrrcpq

  1.   Реализовать расшифровку заданного в п.5 файла CN методом силовой   атаки (использовать первые 40 символов текста). 

Пример     для латинского алфавита : ciphertext="yhaklwpnw";

Table[CaesarCipher[ciphertext,-key],{key,1,26}].

  1.   Разработать модификацию шифра Цезаря: для четных номеров по списку группы  – "Аффинная система подстановок ", для нечетных - "Система Цезаря с ключевым словом".
  2.   Построить три совмещенные по вертикали диаграммы распределения  символов текста из п1.:
    •  исходный открытый текст;
    •  текст, зашифрованный с помощью основного алгоритма Цезаря на ключе  КЕ = (N+3)mod11+2
    •  текст, зашифрованный на произвольном ключе с помощью модифицированного алгоритма.


 

А также другие работы, которые могут Вас заинтересовать

29361. Генерация объектного кода для тетрадной формы представления программ 99.5 KB
  последовательность команд загруженных в фиксированные ячейки памяти2. последовательность перемещенных машинных команд3. Предположим что сумматор может выполнять 4 арифметические операции а в целом система команд также включает еще 2 команды: загрузки сумматора из памяти и сохранение результатов в память.Систему команд такой машины можно представить следующим образом:При выполнении любой из первых двух команд содержимое источника копируется в приемник а при выполнении оставшихся 4 команд содержимое ячейки памяти не изменяется.
29362. Генерация объектного кода по семантическому дереву 52.5 KB
  Существует 3 формы объектного кода1. Чтобы показать процесс генерации кода можно рассмотреть теоретическую вычислительную машину с одним сумматором и неограниченной памятью.Генерация кода осуществляется для программы представленной в некоторой внутренней форме наиболее удобной из которых для генерации кода является список тетрад.
29363. Машинно – зависимая оптимизация объектного кода в языковых процессорах САПР 25 KB
  В самом простом случае машиннозависимая оптимизация заключается в удалении из сформированной последовательности команд избыточных команд загрузки и чтения. Если сложение является коммутативной операцией то последовательность команд LOAD OP1 можно заменить LOAD OP2 ADD OP2 = ADD OP1 2. Если умножение является коммутативной операцией то последовательность команд LOAD OP1 можно заменить LOAD OP2 MULT OP2 = MULT OP1 Эти 2 правила основаны на свойстве коммутативности операций и обеспечивают перестановку местами операндов в соответствующих...
29364. Хеш – адресация в информационных таблицах 51.5 KB
  В основе организации таблиц с хешадресацией лежит процедура хеширования. Хеширование преобразование символьного имени идентификатора в числовой индекс элемента таблицы с помощью простых арифметических и логических операций.Конкретный способ хеширования задает хешфункция.
29365. Методы вычисления хеш-функции 24 KB
  Хорошая хешфункция распределяет вычисляемые индексы элементов в таблице равномерно по всей таблице чтобы уменьшить количество возникающих коллизий. Лучший результат дает использование в качестве хешфункции кода последнего символа имени.В трансляторах хешфункция является более сложной и зависит как от кодов внутреннего представления символов имени так и от его длины.
29366. Разрешения коллизий в хеш-таблицах методом рехеширования 31.5 KB
  Является не пустым возникает коллизия которую надо устранить путём выбора другой ячейки таблицы для имени S. Выбор такой ячейки производится:h1 = h p1mod N p1 некоторое приращение. Если элемент таблицы h1 тоже не пустой то рассматривается новый элемент:h2 = h p2mod N hi = h pimod N до тех пор пока не будет найден элемент таблицы что1 элемент пустой тогда имя S в таблице отсутствует и записывается в таблице под инд. элементами таблицы должно быть минимальным. p1 = 1 p2 = 2 pi =...
29367. Реализация операций поиска и записи в хеш-таблицах по методу цепочек 27 KB
  на размер таблицы т. ситуация переполнения таблицы отсутствует.Для реализации метода цепочек необходимо следующее: таблица имён с дополнительным полем связи которое может содержать либо 0 либо адреса других элементов этой же таблицы. последнего записанного элемента таблицы.
29369. зыки проектирования как составная часть лингвистического обеспечения САПР 29.5 KB
  Языки проектирования языки предназначенные для описания информации об объекте и процессе проектирования. а Входные языки предназначены для задания исходной информации об объектах и целях проектирования. Эти языки представляют собой совокупность языков описания объектов описания заданий и описания процессов.