Инструкционно-технологическая карта к практическому занятию на тему "ПРОГРАММНАЯ РЕАЛИЗАЦИЯ КРИПТОГРАФИЧЕСКИХ АЛГОРИТМОВ"
электронный образовательный ресурс по информатике и икт

Дешина Ирина Александровна

Инструкционно-технологическая карта к практическому занятию по МДК 01.01 Эксплуатация информационной системы для специальности 09.02.04 Информационные системы (по отраслям)

Скачать:

ВложениеРазмер
Файл programmnaya_realizatsiya_kriptograficheskih_algoritmov.docx52.55 КБ

Предварительный просмотр:

Инструкционно-технологическая карта

Практическая работа

Тема: «ПРОГРАММНАЯ РЕАЛИЗАЦИЯ КРИПТОГРАФИЧЕСКИХ АЛГОРИТМОВ»

Цель работы:

Знакомство с основными методами криптографической зашиты информации.

Оборудование:

инструкционно-технологическая карта практической работы, ПК, набор необходимого программного обеспечения, предусмотренного программой междисциплинарного курса.

Отводимое время:

2 часа

Ход работы

  1. Прочитать теоретический материал.
  2. Выполнить задание.
  3. Составить отчет по выполненной работе.
  4. Сдать преподавателю и защитить отчет.

ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ

Криптография – обеспечивает сокрытие смысла сообщения с помощью шифрования и открытия его расшифровкой, которые выполняются по специальным алгоритмам с помощью ключей.

Ключ – конкретное секретное состояние некоторых параметров алгоритма криптографического преобразования данных, обеспечивающее выбор только одного варианта из всех возможных для данного алгоритма.

Криптоанализ – занимается вскрытием шифра без знания ключа (проверка устойчивости шифра).

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

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

Большинство средств защиты информации базируется на использовании криптографических шифров и процедур шифрования-расшифровки. В соответствии со стандартом ГОСТ 28147-89 под шифром понимают совокупность обратимых преобразований множества открытых данных на множество зашифрованных данных, задаваемых ключом и алгоритмом преобразования.

В криптографии используются следующие основные алгоритмы шифрования:

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

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

Симметричные криптосистемы

Шифры перестановки(простая перестановка)

В шифрах средних веков часто использовались таблицы, с помощью которых выполнялись простые процедуры шифрования, основанные на перестановке букв в сообщении. Ключом в данном случае является размеры таблицы. Например, сообщение “Неясное становится еще более непонятным” записывается в таблицу из 5 строк и 7 столбцов по столбцам:

Н

О

Н

С

Б

Н

Я

Е

Е

О

Я

О

Е

Т

Я

С

В

Е

Л

П

Н

С

Т

И

Щ

Е

О

Ы

Н

А

Т

Е

Е

Н

М

Для получения шифрованного сообщения текст считывается по строкам и группируется по 5 букв:

НОНСБ НЯЕЕО ЯОЕТЯ СВЕЛП НСТИЩ ЕОЫНА ТЕЕНМ

Несколько большей стойкостью к раскрытию обладает метод одиночной перестановки по ключу. Он отличается от предыдущего тем, что столбцы таблицы переставляются по ключевому слову, фразе или набору чисел длиной в строку таблицы. Используя в качестве ключа слово «ЛУНАТИК», получим следующую таблицу:

Л

У

Н

А

Т

И

К

 

 

А

И

К

Л

Н

Т

У

4

7

5

1

6

2

3

 

 

1

2

3

4

5

6

7

Н

О

Н

С

Б

Н

Я

 

 

С

Н

Я

Н

Н

Б

О

Е

Е

О

Я

О

Е

Т

 

 

Я

Е

Т

Е

О

О

Е

Я

С

В

Е

Л

П

Н

 

 

Е

П

Н

Я

В

Л

С

С

Т

И

Щ

Е

О

Ы

 

 

Щ

О

Ы

С

И

Е

Т

Н

А

Т

Е

Е

Н

М

 

 

Е

Н

М

Н

Т

Е

А

До перестановки                                                После перестановки

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

СНЯНН БОЯЕТ ЕООЕЕ ПНЯВЛ СЩОЫС ИЕТЕН МНТЕА

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

Кроме алгоритмов одиночных перестановок применяются алгоритмы двойных перестановок. Сначала в таблицу записывается текст сообщения, а потом поочередно переставляются столбцы, а затем строки. При расшифровке перестановки проводятся в обратном порядке. Например, сообщение “Приезжаю_шестого” можно зашифровать следующим образом:

2

4

1

3

 

 

1

2

3

4

 

 

1

2

3

4

4

П

Р

И

Е

 

4

И

П

Е

Р

 

1

А

З

Ю

Ж

1

З

Ж

А

Ю

 

1

А

3

Ю

Ж

 

2

Е

_

С

Ш

2

_

Ш

Е

С

 

2

Е.

_

С

Ш

 

3

Г

Т

О

О

3

Т

О

Г

О

 

3

Г

Т

О

О

 

4

И

П

Е

Р

Двойная перестановка столбцов и строк

В результате перестановки получена шифровка АЗЮЖЕ_СШГТООИПЕР. Ключом к шифру служат номера столбцов 2413 и номера строк 4123 исходной таблицы.

Число вариантов двойной перестановки достаточно быстро возрастает с увеличением размера таблицы: для таблицы 3 х 3 их 36, для 4 х 4 их 576, а для 5*5 их 14400.

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

Пример

пусть у нас есть квадрат:

1

2

3

4

16  3   2   13

5   10  11  8

9   6   7   12

4   15  14  1

и есть фраза которую надо зашифровать(записываем без пробелов):

ПриезжаюCегодня.

Итак. всё просто - ставим первую букву в ту клетку магического квадрата, где написано самое маленькое , число - а остальные же буквы(вторую и далее) - на позиции с соответствующими числами (по возрастанию)
То есть так:
?

1

2

3

4

16.     3 и     2 р     13 д

5 з     10 е    11 г    8 ю

9 С     6 ж     7 а     12 о

4 е     15 я    14 н    1 П

теперь считываем этот квадрат по строкам (аналогично способу простой перестановки) и получаем шифровку:?

1

.ирдзегюСжаоеянП

Шифры простой замены

Система шифрования Цезаря - частный случай шифра простой замены. Метод основан на замене каждой буквы сообщения на другую букву того же алфавита, путем смещения от исходной буквы на K букв.

Известная фраза Юлия Цезаря VENI VINI VICI – пришел, увидел, победил, зашифрованная с помощью данного метода, преобразуется в SBKF SFAF SFZF (при смещении на 4 символа).

Греческим писателем Полибием за 100 лет до н.э. был изобретен так называемый полибианский квадрат размером 5*5, заполненный алфавитом в случайном порядке. Греческий алфавит имеет 24 буквы, а 25-м символом является пробел. Для шифрования на квадрате находили букву текста и записывали в шифротекст букву, расположенную ниже ее в том же столбце. Если буква оказывалась в нижней строке таблицы, то брали верхнюю букву из того же столбца.

Шифры сложной замены

Шифр Гронсфельда представляет собой модификацию шифра Цезаря числовым ключом. Для этого под буквами исходного сообщения записывают цифры числового ключа. Если ключ короче сообщения, то его запись циклически повторяют. Шифртекст получают примерно, как в шифре Цезаря, но отсчитывают по алфавиту не третью букву (как это делается в шифре Цезаря), а выбирают ту букву, которая смещена по алфавиту на соответствующую цифру ключа. Например, применяя в качестве ключа группу из четырех начальных цифр числа e (основания натуральных логарифмов), а именно 2718, получаем для исходного сообщения ВОСТОЧНЫЙ ЭКСПРЕСС следующий шифртекст:

Сообщение

В

О

С

Т

О

Ч

Н

Ы

Й

Э

К

С

П

Р

Е

С

С

Ключ

2

7

1

8

2

7

1

8

2

7

1

8

2

7

1

8

2

Шифртекст

Д

Х

Т

Ь

Р

Ю

О

Г

Л

Д

Л

Щ

С

Ч

Ж

Щ

У

Чтобы зашифровать первую букву сообщения В, используя первую цифру ключа 2, нужно отсчитать вторую по порядку букву от В в алфавите

В

Г

Д

1

2

получается первая буква шифртекста Д.

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

Асимметричные криптосистемы

Криптосистема шифрования данных RSA

Предложена в 1978 году авторами Rivest, Shamir и Aldeman и основана на трудности разложения больших целых чисел на простые сомножители.

Алгоритм создания открытого и секретного ключей:

  1. Получатель выбирает 2 больших простых целых числа p и q, на основе которых вычисляет n=p*q и функцию Эйлера φ(n)=(p-1)(q-1).
  2. Получатель выбирает целое число е (1 φ(n)), взаимно простое со значением функции φ(n)

Пара чисел (e,n)  публикуется в качестве открытого ключа.

  1. Получатель вычисляет целое число d, которое отвечает условию: e*d=1(mod φ(n) ).

Пара чисел (d,n) является секретным ключом.

Шифрование сообщения с использованием открытого ключа:

Если m – сообщение (сообщениями являются целые числа в интервале от 0 до n-1), то зашифровать это сообщение можно как c=mе mod(n).

Дешифрование сообщения с использованием секретного ключа:

Получатель расшифровывает, полученное сообщение с: m=cd mod (n).

Пример

Шаг первый. Подготовка ключей

Я должен проделать предварительные действия: сгенерировать публичный и приватный ключ.

  • Выбираю два простых числа. Пусть это будет p=3 и q=7.
  • Вычисляем модуль — произведение наших p и q: n=p×q=3×7=21.
  • Вычисляем функцию Эйлера: φ=(p-1)×(q-1)=2×6=12.
  • Выбираем число e, отвечающее следующим критериям: (i) оно должно быть простое, (ii) оно должно быть меньше φ — остаются варианты: 3, 5, 7, 11, (iii) оно должно быть взаимно простое с φ; остаются варианты 5, 7, 11. Выберем e=5. Это, так называемая, открытая экспонента.

Теперь пара чисел {e, n} — это мой открытый ключ. Я отправляю его вам, чтобы вы зашифровали своё сообщение. Но для меня это ещё не всё. Я должен получить закрытый ключ.

Мне нужно вычислить число d, обратное е по модулю φ. То есть остаток от деления по модулю φ произведения d×e должен быть равен 1. Запишем это в обозначениях, принятых во многих языках программирования: (d×е)%φ=1. Или (d×5)%12=1. d может быть равно 5 ((5×5)%12=25%12=1), но чтобы оно не путалось с e в дальнейшем повествовании, давайте возьмём его равным 17. Можете проверить сами, что (17×5)%12 действительно равно 1 (17×5-12×7=1). Итак d=17. Пара {d, n} — это секретный ключ, его я оставляю у себя. Его нельзя сообщать никому. Только обладатель секретного ключа может расшифровать то, что было зашифровано открытым ключом.

Шаг второй. Шифрование

Теперь пришла ваша очередь шифровать ваше сообщение. Допустим, ваше сообщение это число 19. Обозначим его P=19. Кроме него у вас уже есть мой открытый ключ: {e, n} = {5, 21}. Шифрование выполняется по следующему алгоритму:

  • Возводите ваше сообщение в степень e по модулю n. То есть, вычисляете 19 в степени 5 (2476099) и берёте остаток от деления на 21. Получается 10 — это ваши закодированные данные.

Строго говоря, вам вовсе незачем вычислять огромное число «19 в степени 5». При каждом умножении достаточно вычислять не полное произведение, а только остаток от деления на 21.

Полученные данные E=10, вы отправляете мне.

Здесь надо заметить, что сообщение P=19 не должно быть больше n=21. иначе ничего не получится.

Шаг третий. Расшифровка

Я получил ваши данные (E=10), и у меня имеется закрытый ключ {d, n} = {17, 21}.

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

Начинаем раскодировать:

  • Я делаю операцию, очень похожую на вашу, но вместо e использую d. Возвожу E в степень d: получаю 10 в степень 17 (не  пишу единичку с семнадцатью нулями). Вычисляю остаток от деления на 21 и получаю 19 — ваше сообщение.

Заметьте, никто, кроме меня (даже вы!) не может расшифровать ваше сообщение (E=10), так как ни у кого нет закрытого ключа.

ПРАКТИЧЕСКАЯ ЧАСТЬ

Вариант – номер по списку в журнале.

Номер

варианта

Исходные данные

Часть 1

Часть 2

Алгоритм шифрования

p

q

е

d

m1

m2

m3

1

Простая перестановка

3

11

7

3

9

12

23

3

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

17

11

7

23

8

15

45

3

Двойная перестановка

13

7

5

29

3

16

55

4

Магический квадрат

101

113

3533

6597

6

19

23

5

Шифр Цезаря

7

11

37

13

8

18

51

6

Полибианский квадрат

7

17

5

77

9

11

86

7

Шифр  Гронсфельда

3

11

7

3

8

13

25

8

Простая перестановка

17

11

7

23

7

14

47

9

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

13

7

5

29

2

17

55

10

Двойная перестановка

17

11

7

23

3

20

51

11

Магический квадрат

13

7

5

29

2

12

15

12

Шифр Цезаря

101

113

3533

6597

3

15

86

13

Полибианский квадрат

7

11

37

13

3

16

54

14

Шифр  Гронсфельда

7

17

5

77

3

19

36

15

Простая перестановка

3

11

7

3

4

18

25

16

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

17

11

7

23

5

11

64

17

Двойная перестановка

101

113

3533

6597

4

13

91

18

Магический квадрат

7

11

37

13

7

14

34

19

Шифр Цезаря

7

17

5

77

7

17

73

20

Полибианский квадрат

3

11

7

3

5

20

23

21

Шифр  Гронсфельда

17

11

7

23

2

11

85

22

Простая перестановка

13

7

5

29

3

13

57

23

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

17

11

7

23

2

14

59

24

Двойная перестановка

13

7

5

29

5

17

56

25

Магический квадрат

101

113

3533

6597

6

20

92

                Практическая работа состоит из двух частей:

Часть 1 – применение одного из алгоритмов симметричного шифрования;

Часть 2 – шифрование с использованием алгоритма RSA.

Порядок выполнения работы:

Часть 1:

  1. Используя один из алгоритмов симметричного шифрования (см. вариант), зашифровать свои данные: фамилию, имя, отчество.
  2. Выполнить проверку, расшифровав полученное сообщение.

Часть 2:

  1. Написать программу, реализующую алгоритм  шифрования и дешифрования сообщения RSA. Входные данные: открытый и секретный ключи (значения n, e, d) и сообщение (m).
  2. Используя заданные значения p, q, e, d (см. вариант) зашифровать и дешифровать сообщения m1, m2, m3 (см. вариант).

КОНТРОЛЬНЫЕ ВОПРОСЫ

  1. В чем заключается принципиальное различие между симметричной криптографией и криптографией с открытым ключом?
  2. Что является открытым и личным ключами криптосистемы RSA?
  3. Как формируется шифротскст в системе RSA?
  4. Как происходит расшифрование в системе RSA?
  5. Каковы требования к параметрам криптосистемы RSA?

По теме: методические разработки, презентации и конспекты

Технологические карты для практических занятий.

Технологическая карта для практических занятий....

Инструкционно-технологическая карта к практическому занятию на тему "Создание модели процесса с помощью Visio"

Инструкционно-технологическая карта к практическому занятию по МДК 1.2. Методы и средства проектирования инормационных систем для специальности 09.02.04 Информационные системы (по отраслям)...

Инструкционно-технологическая карта к практическому занятию на тему "Архитектурная схема организации"

Инструкционно-технологическая карта к практическому занятию по УП по ПМ 01 Эксплуатация и модификация информационных систем для специальности 09.02.04 Информационные системы (по отраслям)...

Инструкционно-технологическая карта к практическому занятию на тему "Разработка ИС для создания и редактирования БД. Создание интерфейса программы"

Инструкционно-технологическая карта к практическому занятию по УП по ПМ 01 Эксплуатация и модификация информационных систем для специальности 09.02.04 Информационные системы (по отраслям)...

Инструкционно-технологическая карта к практическому занятию на тему "Алгоритмы исследования элементарных функций"

Инструкционно-технологическая карта к практическому занятию по ОУД.11 Информатика для специальности 09.02.07 Информационные системы и программирование....