Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЗ4-5 Шифрование и расшифрование данных симметр...doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
523.78 Кб
Скачать

Задание 1. Шифрование и расшифрование одноразовым блокнотом

1. Научитесь шифровать и расшифровывать тексты, используя шифр одноразового блокнота.

Технология работы

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

Таблица 1.

Буква

Код

Буква

Код

Буква

Код

Буква

Код

А

00000

И

01000

Р

10000

Ш

11000

Б

00001

Й

01001

С

10001

Щ

11001

В

00010

К

01010

Т

10010

Ъ

11010

Г

00011

Л

01011

У

10011

Ы

11011

Д

00100

М

01100

Ф

10100

Ь

11100

Е

00101

Н

01101

Х

10101

Э

11101

Ж

00110

О

01110

С

10110

Ю

11110

З

00111

П

01111

Ч

10111

Я

11111

  1. Необходимо зашифровать слово ТАЙНА, используя в качестве ключа слово БАНАН (длина ключа должна соответствовать длине шифруемого текста).

  2. Представим исходное открытое сообщение в двоичном коде:

М = 10010 00000 01001 01101 00000.

  1. Аналогично представим ключ в двоичном коде:

К = 00001 00000 01101 00000 01101.

  1. Суммируем эти две двоичных последовательности по модулю 2 с целью получения шифртекста:

М = 10010 00000 01001 01101 00000 ТАЙНА Открытый текст

 

К = 00001 00000 01101 00000 01101 БАНАН Ключ

---------------------------------

С = 10011 00000 00100 01101 01101 УАДНН Шифртекст

  1. Выполним расшифрование полученного шифртекста С = УАДНН, используя туже самую процедуру суммирования по модулю 2, но при этом суммируются шифртекст и ключ:

С = 10011 00000 00100 01101 01101 УАДНН Шифртекст

 

К = 00001 00000 01101 00000 01101 БАНАН Ключ

---------------------------------

С = 10010 00000 01001 01101 00000 ТАЙНА Открытый текст

  1. Самостоятельно зашифруйте и расшифруйте слово КРИПТОГРАФИЯ, используя ключ ЗАКАЖИТЕМЯСО.

Краткие теоретические сведения

Замена (подстановка) – метод шифрования, при котором каждый знак исходного текста взаимнооднозначно заменяется шифрообозначением – одним, либо несколькими знаками некоторого набора символов (алфавита).

Шифры замены являются простейшими и наиболее популярными шифрами. Типичными примерами являются шифр Цезаря, «цифирная азбука» Петра I и «пляшущие человечки» А.Конан-Дойла.

Шифр замены осуществляет преобразование путем замены букв или других «частей» открытого текста на аналогичные «части» шифрованного текста.

Пусть Х и Y два алфавита (открытого и шифрованного текстов соответственно), состоящие из одинакового числа символов. Пусть также g: Х Y — взаимнооднозначное отображение Х в Y. Тогда шифр замены действует так: открытый текст х1х2хn преобразуется в шифрованный текст g(х1)g(х2)…g(хn).

Если в алфавит входит n символов, то общее количество ключей равно n! Так, при n=26 имеем 26!>1026. Это число очень велико. Достаточно сказать, что возраст нашей планеты 109 лет. Все это указывает на бесперспективность лобовой атаки на шифр замены, но это не значит, что он является надежным. Оказывается, что успешный криптоанализ возможен с помощью частотного метода. Частота символа в тексте равна количеству его вхождений в этот текст, деленная на общее количество символов в тексте. Для каждого языка справедлив следующий эмпирический факт: в достаточно длинных текстах каждая буква встречается приблизительно с одинаковой частотой, зависимой от самой буквы и независимой от конкретного текста.

Шифр сдвига (к которому, в частности относится шифр Цезаря) является частным случаем общего шифра замены на совокупности лишь n ключей, в котором нижний ряд является циклическим сдвигом верхнего ряда. Ключ такого типа полностью определяется длиной сдвига s, 0s<n (s и s+n дают одинаковый результат). Алгоритм шифрования заключается в следующем:

ci mi + s (mod n),

где ci и mi –соответственно буквы открытого текста и кодограммы.

Аналогично осуществляется дешифрирование:

mi ci + s (mod n).

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

Открытый текст и шифртекст записываются в одном и том же алфавите. Для букв х и у в этом алфавите обозначим их сумму х+у как результат циклического сдвига буквы х вправо в алфавите на количество позиций, равное номеру буквы у в алфавите. При этом считаем, что нумерация букв в алфавите начинается с нуля. Например, для русского алфавита имеем: А+А=А, Б+А=Б, В+Б=Г, Я+В=Б. Эта операция естественным образом задается таблицей Вижинера размерами nn (n – количество букв в алфавите), в которой буква х+у находится на пересечении строки, отвечающей букве х, и столбца, соответствующего букве у.

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

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

Общая модель шифрования заменой может быть представлена в виде:

сi = mi + w mod(n–1),

где сi – буква зашифрованного текста; mi – буква открытого текста; w – целое число в диапазоне от 0 до (n–1); n – число букв используемого алфавита.

Если w фиксировано, то формула описывает моноалфавитную замену, если w выбирается из последовательности w1, w2, …, wn, то получится полиалфавитная замена с периодом n. Если в полиалфавитной замене n>m (где m – число букв шифруемого текста) и любая последовательность w1, w2, …, wn используется только один раз, то такой шифр является теоретически нераскрываемым, если, конечно, криптоаналитик противника не имеет доступа к исходному тексту.