Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Laby_MiSZI / Лабораторная работа 1

.doc
Скачиваний:
55
Добавлен:
20.03.2015
Размер:
73.22 Кб
Скачать

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

Цель работы: освоить метод шифрования перестановочным шифром

Структура алгоритмов шифрования

Алгоритмы шифрования можно разделить на две категории:

  1. Алгоритмы симметричного шифрования;

  2. Алгоритмы асимметричного шифрования.

В алгоритмах симметричного шифрования для расшифрования обычно используется тот же самый ключ, что и для зашифрования, или ключ, связанный с ним каким-либо простым соотношением. Последнее встречается существенно реже, особенно в современных алгоритмах шифрования. Такой ключ (общий для зашифрования и расшифрования) обычно называется просто ключом шифрования.

В асимметричном шифровании ключ зашифрования легко вычисляется из ключа таким образом, что обратное вычисление невозможно. Например, соотношение ключей может быть таким:

,

где и - параметры алгоритма шифрования, имеющие достаточно большую размерность.

Такое соотношение ключей используется и в алгоритмах электронной подписи.

Основной характеристикой алгоритма шифрования является криптостойкость, которая определяет его стойкость к раскрытию методами криптоанализа. Обычно эта характеристика определяется интервалом времени, необходимым для раскрытия шифра.

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

Симметричное шифрование бывает двух видов:

  • Блочное шифрование - информация разбивается на блоки фиксированной длины (например, 64 или 128 бит), после чего эти блоки поочередно шифруются. Причем, в различных алгоритмах шифрования или даже в разных режимах работы одного и того же алгоритма блоки могут шифроваться независимо друг от друга или "со сцеплением" - когда результат зашифрования текущего блока данных зависит от значения предыдущего блока или от результата зашифрования предыдущего блока.

  • Поточное шифрование - необходимо, прежде всего, в тех случаях, когда информацию невозможно разбить на блоки - скажем, некий поток данных, каждый символ которых должен быть зашифрован и отправлен куда-либо, не дожидаясь остальных данных, достаточных для формирования блока. Поэтому алгоритмы поточного шифрования шифруют данные побитно или посимвольно. Хотя стоит сказать, что некоторые классификации не разделяют блочное и поточное шифрование, считая, что поточное шифрование - это шифрование блоков единичной длины.

Блочные шифры бывают двух основных видов:

  1. шифры перестановки;

  2. шифры замены.

Шифры перестановок переставляют элементы открытых данных (биты, буквы, символы) в некотором новом порядке. Шифры замены заменяют элементы открытых данных на другие элементы по определенному правилу.

Шифры замены делятся на две группы:

  1. моноалфавитные (код Цезаря);

  2. полиалфавитные (шифр Видженера)

В моноалфавитных шифрах замены буква исходного текста заменяется на другую, заранее определенную букву. Например в коде Цезаря буква заменяется на букву, отстоящую от нее в латинском алфавите на некоторое число позиций. Очевидно, что такой шифр взламывается совсем просто. Нужно подсчитать, как часто встречаются буквы в зашифрованном тексте, и сопоставить результат с известной для каждого языка частотой встречаемости букв.

В полиалфавитных подстановках для замены некоторого символа исходного сообщения в каждом случае его появления последовательно используются различные символы из некоторого набора. Этот набор не бесконечен, через какое-то количество символов его нужно использовать снова. В этом слабость чисто полиалфавитных шифров.

Описание метода шифрования перестановочным шифром

В перестановочных шифрах позиции символов сообщения изменяются, но значение сообщения остается неизменным. Простой шифр — это специальная таблица (сетка), куда сообщение вписывается одним способом, а затем считывается — другим. Эта операция показана на рис.6. Сообщение вписыва­ется в строки сетки, а считывается по столбцам. Древний вариант этого спо­соба состоял в записи сообщения на полосу, обернутую вокруг цилиндра, которая затем раскручивалась и отправлялась с посыльным. Обе эти формы являются простым чередованием (расслоением), только используемым для различных целей. Все, что подслушиваю­щему нужно сделать, — это определить глубину сетки (или диаметр цилинд­ра). Увеличение глубины сетки приводит к тем же проблемам с задержкой, что и при чередовании с контролем ошибок.

Например, сообщение

«ЭТО СООБЩЕНИЕ ДЛЯ ОТПРАВКИ»

записывается в таблицу поочередно по строкам. Результат за­полнения таблицы из 3 строк и 8 столбцов показан на рис. 1.

Рис. 1. Простой перестановочный шифр

После заполнения таблицы текстом сообщения по строкам для формирования шифртекста считывают содержимое таблицы по столбцам. Если шифртекст записывать группами по три буквы, получается такое шифрованное сообщение:

ЭЕТ ТНП ОИР СЕА ОДВ ОЛК БЯИ ЩО.

Усовершенствование этой методики состоит в том, чтобы читать столбцы сетки в более сложном порядке, чем просто слева направо. Для указания по­рядка считывания столбцов можно использовать ключевое слово, алфавитное упорядочивание букв которого и определяет порядок чтения столбцов.

Применим в качестве ключа, например, слово КОМБАЙН, в качестве текста сообщения возьмем предложение «ЭТО СООБЩЕНИЕ СЛЕДУЕТ ОТПРАВИТЬ». На рис. 2 показаны две таблицы, заполненные текстом сообщения и ключе­вым словом, при этом левая таблица соотв етствует заполнению до перестановки, а правая таблица - заполнению после пере­становки.

Рис. 2. Горизонтальный перестановочный шифр

В верхней строке левой таблицы записан ключ, а номера под буквами ключа определены в соответствии с естественным порядком соответствующих букв ключа в алфавите. Если бы в ключе встретились одинаковые буквы, они бы были пронумерованы слева направо. В правой таблице столбцы переставлены в соот­ветствии с упорядоченными номерами букв ключа.

При считывании содержимого правой таблицы по столбцам и записи шифртекста группами по четыре буквы получим шифрован­ное сообщение:

ОЕТИ СИЕВ ОСОТ ЭЩЕП ОНУА БЛТЬ ТЕДР .

Однако такая система остается все еще очень восприимчивой к нападениям по методу проб и ошибок.

Задания к лабораторной работе

  1. Разработать алгоритм для шифрования сообщений горизонтальным перестановочным шифром;

  2. Разработать алгоритм для дешифрования сообщений зашифрованных горизонтальным перестановочным шифром;

  3. Составить приложение для шифрования/дешифрования с использованием горизонтальным перестановочного шифра;

5