Файл: Методические указания и контрольные задания по дисциплине информационная безопасность для студентов направления 09. 03. 02.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.11.2023

Просмотров: 1101

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Кафедра ИБ

Методические указания и контрольные задания по дисциплине

Методические указания и контрольные задания по дисциплине

1.2.2.Шифрование магическими квадратами

1.3.2.Система шифрования Цезаря

1.3.5. Биграммный шифр Плейфейра Шифр Плейфейра, изобретенный в 1854 г., является наиболее известным биграммным шифром замены. Он применялся Великобританией во время первой мировой войны. Основой шифра Плейфейра является шифрующая таблица со случайно расположенными буквами алфавита исходных сообщений.Для удобства запоминания шифрующей таблицы отправителем и получателем сообщений можно использовать ключевое слово (или фразу) при заполнении начальных строк таблицы. В целом структура шифрующей таблицы системы Плейфейра полностью аналогична структуре шифрующей таблицы Трисемуса. Поэтому для пояснения процедур шифрования и расшифрования в системе Плейфейра воспользуемся шифрующей таблицей Трисемуса из предыдущей задачи ( рис. 1.5).Процедура шифрования включает следующие шаги. Открытый текст исходного сообщения разбивается на пары букв (биграммы). Текст должен иметь четное количество букв и в нем не должно быть биграмм, содержащих две одинаковые буквы. Если эти требования не выполнены, то текст модифицируется даже из-за незначительных орфографических ошибок. Последовательность биграмм открытого текста преобразуется с помощью шифрующей таблицы в последовательность биграмм шифртекста по следующим правилам: 2а.Если обе буквы биграммы открытого текста не попадают на одну строку или столбец (как, например, буквы А и Й в табл. на рис.2.6), тогда находят буквы в углах прямоугольника, определяемого данной парой букв. (В нашем примере это – буквы АЙОВ. Пара букв АЙ отображается в пару ОВ. Последовательность букв в биграмме шифртекста должна быть зеркально расположенной по отношению к последовательности букв в биграмме открытого текста.)2б.Если обе буквы биграммы открытого текста принадлежат одному столбцу таблицы, то буквами шифртекста считаются буквы, которые лежат под ними. (Например, биграмма НС дает биграмму шифртекста ГЩ.) Если при этом буква открытого текста находится в нижней строке, то для шифртекста берется соответствующая буква из верхней строки того же столбца. (Например, биграмма ВШ дает биграмму шифртекста ПА.)2в.Если обе буквы биграммы открытого текста принадлежат одной строке таблицы, то буквами шифртекста считаются буквы, которые лежат справа от них. (Например, биграмма НО дает биграмму шифртекста ДЛ.) Если при этом буква открытого текста находится в крайнем правом столбце, то для шифра берут соответствующую букву из левого столбца в той же строке. (Например, биграмма ФЦ дает биграмму шифртекста ХМ.)Задача 1.10. Зашифровать биграммным шифром Плейфера текстВСЕ ТАЙНОЕ СТАНЕТ ЯВНЫМРешение.Разобьём этот текст на биграммы:ВС ЕТ АЙ НО ЕС ТА НЕ ТЯ ВН ЫМДанная последовательность биграмм открытого текста преобразуется с помощью шифрующей таблицы (рис. 1.5) в следующую последовательность биграмм шифртекстаГП ДУ ОВ ДЛ НУ ПД ДР ЦЫ ГА ЧТПри дешифровании применяется обратный порядок действий.Шифрование биграммами резко повышает стойкость шифров к вскрытию. Хотя книга И.Трисемуса "Полиграфия" была относительно доступной, описанные в ней идеи получили признание лишь спустя три столетия. По всей вероятности, это было обусловлено плохой осведомленностью криптографов о работах богослова и библиофила Трисемуса в области криптографии.Пояснение к заданию 2Методы шифрования2.1. Метод перестановок на основе маршрутовГамильтонаЭтот метод реализуется путем выполнения следующих шагов.Шаг 1. Исходный текст разбивается на блоки. Если длина шифруемого текста не кратна длине блока, то на свободные места последнего блока помещаются служебные символы-заполнители(например,*)Шаг 2. Символами блока заполняется таблица, в которой для каждого порядкового номера символа в блоке отводится вполне определенное место (рис. 2.1). Исходная таблица Маршрут 1 Маршрут 2Рисунок 2.1 - Вариант 8-элементной таблицы и маршрутов Гамильтона.Шаг 3. Считывание символов из таблицы осуществляется по одному из маршрутов. Увеличение числа маршрутов повышает криптостойкость шифра. Маршруты выбирают либо последовательно, либо их очерёдность задаётся ключом К.Шаг 4. Зашифрованная последовательность символов разбивается на блоки фиксированной длины L. Величина L может отличаться от длины блоков, на которые разбивается исходный текст на шаге 1.Расшифрование производится в обратном порядке.Задача 2.1. Требуется зашифровать текст <МЕТОДЫ ПЕРЕСТАНОВКИ>. Ключ и длины зашифрованных блоков равны: К=<2,1,1>, L=4. Для шифрования использовать таблицу и два маршрута, представленные на рис.2.1.Решение. Воспользуемся вышеизложенной методикой построения шифра по шагам.Шаг 1. Исходный текст разбивается на 3 блока:Блок =<МЕТОДЫ П>Блок =<ЕРЕС ТАНО> =<ВКИ*****> Шаг 2. Заполняется 3 матрицы с маршрутами 2,1,1 (рис.2.2.) Маршрут 2 Маршрут 1 Маршрут 1Рисунок 2.2 - Шифрование с помощью маршрутов Гамильтона.Шаг 3. Получение шифртекста путём расстановки символов в соответствии с маршрутами. =<ОП_ТМЕЫДЕСРЕТАОНИ*КВ****>Шаг4. Разбиение на блоки шифртекста =<ОП_Т МЕЫД ЕСРЕ ТАОН И*КВ ****>Возможно применение и других маршрутов.2.2. Аналитические методы шифрованияСреди аналитических методов наибольшее распространение получили методы, основанные на использовании матриц. Зашифрование К-го блока исходной информации, представленного в виде вектора осуществляется путём перемножения матрицы ключа и вектора . В результате перемножения получается блок шифртекста в виде вектора , где элементы вектора определяются по формуле: .Расшифрование информации осуществляется путём последовательного перемножения векторов и обратной матрицы .Задача 2.2. Требуется зашифровать слово =<ЗАБАВА> с помощью матрицы-ключа А.A= Решение.1.Определим числовой эквивалент исходного слова как последовательность соответствующих порядковых номеров букв слова : =<8,1,2,1,3,1>2.Разобьём на два вектора и 3. Умножим матрицу А на векторы и : = = 4. Зашифрованное слово запишем в виде последовательности чисел =<28,35,67,21,26,38>.Задача 2.3. Расшифровать текст, полученный в задаче 2.2. Решение.1.Вычисляется определитель .2.Определяется присоединённая матрица , каждый элемент которой является алгебраическим дополнением элемента матрицы А: 3.Получается транспонированная матрица = 4.Вычисляется обратная матрица по формуле: = ,В результате вычислений обратная матрица имеет вид: 5.Определяются векторы и : ; = = 6.Получаем числовой эквивалент расшифрованного слова: =<8,1,2,1,3,1>, который заменяется символами, в результате получается исходное слово <ЗАБАВА>Пояснение к заданию 3Асимметричная криптосистема RSA.Расширенный алгоритм Евклида Выбирают два больших простых числа pиq. Для большей криптостойкости pиqвыбирают равной длины. Вычисляют произведение: n=pq Вычисляют z=(p-1)(q-1) и выбирают число е взаимно простое с z, т.е. НОД (е,z)=1. Для вычисления закрытого (секретного) ключа d решается сравнение еd 1modz (1)Решение (1) имеет вид Для вычисления ключа dвоспользуемся расширенным алгоритмом Евклида. Для этого число обращается в конечную цепную дробь: Цепная дробь имеет вид: , а последовательности и числителей и знаменателей подходящих дробей к цепной дроби определяются рекуррентно: , . , , Их вычисления удобно оформить в виде таблицы:

П Р И Л О Ж Е Н И Е

ЭЛЕМЕНТЫ ТЕОРИИ ЧИСЕЛ

Модулярная арифметика

Основные способы нахождения обратных величин

a–1 º 1 (mod n).

.


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

и т.д.
Задача 3.2.

Зашифровать и расшифровать сообщение САВ. Для простоты вычислений использовать небольшие числа: р =3 , q=11, открытый ключ е=7. Для вычисления секретного ключа d воспользоваться расширенным алгоритмом Евклида.
Решение.

Действия пользователя В- получателя сообщения.

1. Выбирает р =3 и q=11.

2. Вычисляет модуль n=p*q=3*11=33.

3. Вычисляет значение функции Эйлера для n = 33:

z(33) = (p –1)(q –1) = 210 = 20.

Выбирает в качестве открытого ключа е произвольное число с учетом выполнения условий:

1<  20, НОД (e, 20) = 1.

Пусть e= 7.

4. Вычисляет значение секретного ключа d, используя расширенный алгоритм Евклида при решении сравнения

d 7–1 (mod 20).

Решение дает d= 3.

5. Пересылает пользователю А (отправителю) пару чисел (n = 33, e= 7).

Действия пользователя A-отправителя сообщения.

6. Представляет шифруемое сообщение как последовательность целых чисел в диапазоне 0 ... 32. Пусть буква А представляется как число 1, буква В – как число 2, буква С – как число 3. Тогда сообщение САВ можно представить как последовательность чисел 312, т.е. = 3, = 1, = 2.

7. Шифрует текст, представленный в виде последовательности чисел , и
, используя ключ e= 7 и n = 33, по формуле



Получает криптограмму:

С1 = 37 (mod 33) = 2187 (mod 33) = 9,

С2 =1 7 (mod 33) =1 (mod 33) =1,

С3 = 27 (mod 33) =128 (mod 33) = 29.

Отправляет пользователю В криптограмму

С1, С2, С3 = 9, 1, 29.

Действия пользователя В.

8. Расшифровывает принятую криптограмму С1, С2, С3, используя секретный ключ d=3, по формуле



Получает:

= 93 (mod 33) = 729 (mod 33) = 3,

=13 (mod 33) =1 (mod 33) =1,

= 293 (mod 33) = 24389 (mod 33) = 2.

Таким образом, восстановлено исходное сообщение: С А В

3 1 2

Пояснение к заданию 4

Алгоритмы электронной цифровой подписи

4. Алгоритм цифровой подписи Эль Гамаля (EGSA)
Название EGSA происходит от слов El Gamal Signature Algorithm (алгоритм цифровой подписи Эль Гамаля). Идея EGSA основана на том, что для обоснования практической невозможности фальсификации цифровой подписи может быть использована более сложная вычислительная задача, чем разложение на множители большого целого числа,– задача дискретного логарифмирования. Кроме того, Эль Гамалю удалось избежать явной слабости алгоритма цифровой подписи RSA, связанной с возможностью подделки цифровой подписи под некоторыми сообщениями без определения секретного ключа.

Для того чтобы сгенерировать пару ключей (открытый ключ – секретный ключ), сначала выбирают некоторое большое простое целое число P и большое целое число G, причем G < P. Отправитель и получатель подписанного документа используют при вычислениях одинаковые большие целые числа P (10308 или 21024) и G (10154 или 2512), которые не являются секретными.

Отправитель выбирает случайное целое число X, 1< X  (P –1), и вычисляет

Y = GX mod P.

Число Y является открытым ключом, используемым для проверки подписи отправителя. Число Y открыто передается всем потенциальным получателям документов.



Число X является секретным ключом отправителя для подписывания документов и должно храниться в секрете.

Для того чтобы подписать сообщение M, сначала отправитель хэширует его с помощью хэш-функции h(·) в целое число m:

m = h(M), 1< m < (P –1),

и генерирует случайное целое число K, 1< K< (P –1), такое, что K и (P –1) являются взаимно простыми. Затем отправитель вычисляет целое число a:

a = GK mod P

и, применяя расширенный алгоритм Евклида, вычисляет с помощью секретного ключа X целое число b из уравнения

m =( X a + K  b) (mod (P –1)).

Пара чисел (a,b) образует цифровую подпись S:

S = (a,b),

проставляемую под документом M.

Тройка чисел (M,a,b) передается получателю, в то время как пара чисел (X,K) держится в секрете.

После приема подписанного сообщения (M,a,b) получатель должен проверить, соответствует ли подпись S = (a,b) сообщению M. Для этого получатель сначала вычисляет по принятому сообщению M число

m = h(M),

т.е. хэширует принятое сообщение M.

Затем получатель вычисляет значение

A = Ya ab (mod P)

и признает сообщение M подлинным, если, и только если

A = Gm (mod P).

Иначе говоря, получатель проверяет справедливость соотношения

Ya ab (mod P) = Gm (mod P).

Можно строго математически доказать, что последнее равенство будет выполняться тогда, и только тогда, когда подпись S=(a,b) под документом M получена с помощью именно того секретного ключа X, из которого был получен открытый ключ Y. Таким образом, можно надежно удостовериться, что отправителем сообщения M был обладатель именно данного секретного ключа X, не раскрывая при этом сам ключ, и что отправитель подписал именно этот конкретный документ M.

Выполнение каждой подписи по методу Эль Гамаля требует нового значения K, причем это значение должно выбираться случайным образом. Если нарушитель раскроет значение K, повторно используемое отправителем, то он сможет раскрыть секретный ключ X отправителя.
Задача 4.1

Сформировать и проверить ЭЦП Эль Гамаля при следующих начальных условиях: Р=11, G=2, секретный ключ Х=8.
Решение. Вычисляем значение открытого ключа:

Y = GX mod P = Y = 28 mod 11 = 3.

Предположим, что исходному сообщению M соответствует хэш-значение m = 5.

Для того,чтобы вычислить цифровую подпись под сообщением M, имеющем хэш-значение m = 5, сначала выберем случайное целое число K = 9. Убедимся, что числа K и (P – 1) являются взаимно простыми. Действительно,

НОД (9, 10) = 1.


Далее вычисляем элементы a и b подписи:

a = GK mod P = 29 mod 11 = 6,

элемент b определяем, используя расширенный алгоритм Евклида:

m = (X  a + K  b) (mod (P – 1)).

При m = 5, a = 6, X = 8, K = 9, P = 11 получаем

5 = (6  8 + 9  b)(mod 10)

или

9  b  – 43 (mod 10).

Решая сравнение, получаем b = 3. Цифровая подпись представляет собой пару: а = 6, b = 3.

Далее отправитель передает подписанное сообщение. Приняв подписанное сообщение и открытый ключ Y = 3, получатель вычисляет хэш-значение для сообщения M : m = 5, а затем вычисляет два числа:

1) Yaab (mod P) = 36  63 (mod 11) =10 ;

2) Gm (mod P) = 25 (mod 11) =10.

Так как эти два целых числа равны, принятое получателем сообщение признается подлинным.

Следует отметить, что схема Эль Гамаля является характерным примером подхода, который допускает пересылку сообщения M в открытой форме вместе с присоединенным аутентификатором (a,b). В таких случаях процедура установления подлинности принятого сообщения состоит в проверке соответствия аутентификатора сообщению.

Схема цифровой подписи Эль Гамаля имеет ряд преимуществ по сравнению со схемой цифровой подписи RSA.

1. При заданном уровне стойкости алгоритма цифровой подписи целые числа, участвующие в вычислениях, имеют запись на 25% короче, что уменьшает сложность вычислений почти в два раза и позволяет заметно сократить объем используемой памяти.

2. При выборе модуля P достаточно проверить, что это число является простым и что у числа (P –1) имеется большой простой множитель (т.е. всего два достаточно просто проверяемых условия).

3. Процедура формирования подписи по схеме Эль Гамаля не позволяет вычислять цифровые подписи под новыми сообщениями без знания секретного ключа (как в RSA).

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

Пояснение к заданию 5

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

Для решения этой проблем можно применить два способа:


1) использование криптосистемы с открытым ключом для шифрования и передачи секретного ключа симметричной криптосистемы;

2) использование системы открытого распределения ключей Диффи–Хеллмана.
5.1. Алгоритм открытого распределения ключей Диффи–

Хеллмана
Алгоритм Диффи–Хеллмана был первым алгоритмом с открытыми ключами (предложен в 1976 г.). Его безопасность обусловлена трудностью вычисления дискретных логарифмов в конечном поле, в отличие от легкости дискретного возведения в степень в том же конечном поле.

Предположим, что два пользователя А и В хотят организовать защищенный коммуникационный канал.

1. Обе стороны заранее уславливаются о модуле N (N должен быть простым числом) и примитивном элементе g, (1  g  N –1).

Эти два целых числа N и g могут не храниться в секрете. Как правило, эти значения являются общими для всех пользователей системы.

2. Затем пользователи А и В независимо друг от друга выбирают собственные секретные ключи kА и kВ (kА и kВ – случайные большие целые числа, которые хранятся пользователями А и В в секрете).

3. Далее пользователь А вычисляет открытый ключ

yA = (mod N),

а пользователь В – открытый ключ

yВ = (mod N).

4. Затем стороны А и В обмениваются вычисленными значениями открытых ключей yA и yВ по незащищенному каналу.

5. Далее пользователи А и В вычисляют общий секретный ключ, используя следующие выражения:

пользователь А: К = = (mod N);

пользователь В: К´ = = (mod N).

При этом К = К´, так как = (mod N).

Схема реализации алгоритма Диффи–Хеллмана показана на рис. 5.1.