1. Одноалфавитный метод с фиксированным смещением. Требуется
![]()
|
1. Одноалфавитный метод с фиксированным смещением. Требуется: определить установленное в программе смещение. Для этого следует сделать следующие действия: Просмотреть предварительно созданный с помощью редактора свой текстовый файл; Выполнить для этого файла шифрование; Просмотреть в редакторе зашифрованный файл; Просмотреть гистограммы исходного и зашифрованного текстов; Описать гистограммы (схожесть\различия) и определить, с каким смещением было выполнено шифрование; Расшифровать зашифрованный текст: - с помощью программы, после чего проверить в редакторе правильность расшифрования, - вручную с помощью гистограмм; описать и объяснить процесс расшифрования. В основе этого метода лежит простой способ шифрования: отправитель и получатель зашифрованного документа заранее договариваются об определенном смещении букв относительно их обычного местоположения в алфавите. Исходный текстовый файл – Текст.txt ![]() Было выполнено шифрование текста одноалфавитным методом (с фиксированным смещением). ![]() Получены следующие результаты: ![]() Верхняя гистограмма состоит из данных об исходном тексте. В ней указаны встречающиеся символы, и частота встречаемости каждого. Аналогичные данные показаны в нижней гистограмме, но для зашифрованного текста. При таком методе шифрования частота встречаемости символа исходного текста и зашифрованного символа будет одинаковая. Зная смещение, можно расшифровать зашифрованный текст. Дешифрование с помощью программы. Данная программа позволяет автоматически и безошибочно расшифровать текст. ![]() Процесс дешифрования вручную. Для определения смещения выделим наиболее часто встречающийся символ шифрованного текста. Найдем символ с той же частотой встречаемости на гистограмме исходного текста. Переведем символы в ASCII-кодировку и определим смещение, посчитав разность между шифрованным символом и исходным. ![]() ![]() Исходные: Зашифрованные: А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я Гистограмма очень упрощает задачу. Мы видим, что шифрованный символ находится прямо под исходным символом, т.е. смещение равняется 3. Это значит, что все остальные символы в шифрованном файле сдвинуты на 3 позиции. 2. Одноалфавитный метод с задаваемым смещением (шифр Цезаря). Требуется выполнить следующие действия: Выполнить шифрование с произвольным смещением для своего исходного текста; Просмотреть т описать гистограммы исходного и зашифрованного текстов, определить смещение для нескольких символов; Расшифровать текст с помощью программы; Дешифровать зашифрованный шифром Цезаря текст с помощью программы методом подбора смещения; указать, скаким смещением был зашифрован файл. Произвольный шифр из класса одноалфавитных методов не является шифром Цезаря (если мощность алфавита текста равна N, то число шифров Цезаря равно N, а число всех одноалфавитных шифров – N!). Но и для таких методов легко предложить способы дешифрования, основанные на статистических свойствах шифрования текстов, т.к. открытый и закрытый тексты имеют одинаковые статистические характеристики. Исходный текстовый файл – Текст.txt ![]() В шифровании использовалось смещение на 13 позиций. ![]() Получены следующие результаты: ![]() Процесс дешифрования вручную. Из гистограммы шифрованного текста возьмем наиболее часто встречающийся символ ‘-’. В гистограмме исходного текста ему соответствует символ ‘ ’ (пробел), т.к. он имеет ту же частоту встречаемости 0,138. Из ASCII таблицы код символа ‘ ’ (пробел) равен 32, а код символа ‘-’ равен 45. Вычислим смещение: 45 – 32 = 13. Зная смещение, можно рассчитать оставшиеся символы по формуле: ASCII-код исход. символа = ASCII-код шифр. символа – смещение; При этом не следует забывать об отсутствии символов под номерами 176 – 223 и 240 – 255 в таблице ASCII-кодов. Дешифрование с помощью программы. ![]() Как мы видим, дешифрование текста выполнено без ошибок. 3. Метод перестановки символов. Требуется: определить закон перестановки символов открытого текста. Для этого необходимо: Создать небольшой файл длинной в несколько слов; Зашифровать его; Просмотреть гистограммы(описать их и определить, несут ли они в себе полезную информацию или нет); Сравнить результаты дешифровки вручную и с помощью программы. Идея метода состоит в том, что символы текста переставляются по определенным правилам, при этом используются только символы исходного текста. Исходный текстовый файл – Барто.txt ![]() После шифрования с ключом 312, получили: ![]() Гистограммы исходного и зашифрованного текстов схожи между собой: ![]() Если количество символов исходного текста кратно длине ключа, то гистограммы совпадут, иначе – не совпадут, т.к. в конце исходного текста добавляются недостающие для кратности ‘ ’ (пробелы). Гистограмма не содержит полезной информации для дешифрования, т.к. данный метод основан на перестановке символов, следовательно, частота появления отдельных символов совпадает. Процесс дешифрования вручную. Длина ключа равна 3, значит берем из шифрованного текста блок размером в 3 символа и выполняем над ним следующие действия: берем символ с номером, соответствующим номеру первой позиции ключа (символ с номером 3) и помещаем его в первую позицию расшифрованного текста. Далее делает то же самое с символом, соответствующим номеру второй позиции, затем – третьей, после чего переходим к дешифрованию следующего блока. Дешифрование с помощью программы. Для расшифровки текста, нужно задать тот же ключ, что и при шифровании, т.е. в нашем случае – 312. ![]() 4. Метод инверсного кодирования (по дополнению до 255). Требуется выполнить след. действия: выполнить шифрование для своего произвольного файла; просмотреть гистограммы исходного и зашифрованного текстов, описать гистограммы и определить смещение для нескольких символов; дешифровать зашифрованный текст, проверить в редакторе правильность дешифрования. Данный метод шифрования является частным случаем одноалфавитной замены в алфавите мощности 256. Суть метода заключается в замене символа ASCII-кодировки с номером i на символ с номером 255 – i. Исходный текст: ![]() После шифрования получим: ![]() Гистограммы исходного и шифрованного текстов: ![]() Расшифруем несколько символом вручную:
5. Метод многоалфавитного шифрования с фиксированным ключом. Необходимо: определить сколько одноалфавитных методов и с каким смещением используется в программе. Для этого нужно создать файл, состоящий из строки одинаковых символов, выполнить для него шифрование и по гистограмме определить способ шифрования и набор смещения. Исходный файл – Строка.txt ![]() После шифрования получили: ![]() Гистограммы исходной и зашифрованной строки: ![]() Для шифрования последовательности из одинаковых символов используется набор из 7-и смещений. Рассмотрим метод шифрования:ъ
После 7-го шага набор смещений повторяется. И в конце мы получили результат шифрования. 6. Метод многоалфавитного шифрования с ключом фиксированной длины. Требуется выполнить след. действия: выполнить шифрование и определить по гистограмме, какое смещение получает каждый символ; выполнить шифрование и расшифрование для файла произвольного текста; просмотреть и описать гистограммы исходного и зашифрованного текстов; ответить, какую информацию можно получить из гистограмм. Исходный текстовый файл – Строка.txt ![]() Вводим ключ шифрования: ![]() Получаем: ![]() Гистограмма исходного и зашифрованного текстов: ![]() По гистограмме можно определить длину ключа, которым зашифровывался исходный текст. Она соответствует кол-ву символов на гистограмме зашифрованного текста. В данном случае использовался ключ длиной в 3 символа. Перевод символов с помощью ASCII таблицы: Исход. символ: р – 240; Ключ: j – 106; u – 117; l – 108; Последовательность из повторяющихся символов «Ze\» (ASCII-коды: Z – 090; \ – 092; e – 101) определим по формуле: ![]() ![]() ![]() ![]() ![]() Итак: ![]() ![]() ![]() Как видим, для шифрования исход. текста используется фор-ла: ![]() Исход. файл: Барто.txt ![]() Зашифруем его: ![]() Гистограммы исход. и зашифрованного текстов: ![]() Никакой закономерности или важной информации гистограммы не несут. 7. Многоалфавитное шифрование с произвольным паролем. Требуется выполнить след. действия: выполнить шифрование и определить по гистограмме, какое смещение получает каждый символ; выполнить шифрование и расшифрование для файла произвольного текста; просмотреть и описать гистограммы исходного и зашифрованного текстов; ответить, какую информацию можно получить из гистограмм. Исходный текстовый файл – Строка.txt ![]() Вводим ключ шифрования: ![]() Получаем: ![]() Гистограмма исходного и зашифрованного текстов: ![]() Перевод символов с помощью ASCII таблицы: Исход. символ: р – 240; Ключ: q – 113; w – 119; e – 099; r – 114; t – 116; y – 121; u – 117; i – 105; o – 111. Получаем посл-ть из повторяющихся символов: «agUbdieY_`» (ASCII-коды: a – 097; g – 103; U – 085; b – 098; d – 100; i – 105; e – 099; Y – 089; _ - 095; ‘ - 096 ). Определим метод шифрования по формуле: ![]() ![]() ![]() ![]() ![]() Итак: ![]() ![]() ![]() и т.д. Можем увидеть, что для шифрования исход. текста использовалась формула: ![]() |