Методы криптографического преобразования данных

  • doc
  • 26.04.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 0158. Методы криптографического преобразования данных.doc

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №14

Тема:          Методы криптографического преобразования данных

Цель:           изучить основные методы криптографического преобразования данных.

Оборудование: персональный компьютер, ОС Windows XP.

Вид работы: групповой

Время выполнения: 2 часа

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

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

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

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

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

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

Большинство средств защиты информации базируется на использовании криптографических шифров и процедур шифрования-расшифровки. В соответствии со стандартом ГОСТ 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.

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

16

3

2

13

 

 

О

И

Р

Т

5

10

11

8

 

 

З

Ш

Е

Ю

9

6

7

12

 

 

_

Ж

А

С

4

15

14

1

 

 

Е

Г

О

П

 

П

Р

И

Е

З

Ж

А

Ю

_

Ш

Е

С

Т

О

Г

О

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

 

Число магических квадратов очень резко возрастает с увеличением размера его сторон: для таблицы 3*3 таких квадратов -1; для таблицы 4*4 - 880; а для таблицы 5*5-250000.

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

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

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

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

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

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

Пусть в качестве ключа используется группа из трех цифр – 314, тогда

Сообщение: СОВЕРШЕННО СЕКРЕТНО

Ключ: 3143143143143143143

Шифровка: ФПИСЬИОССАХИЛФИУСС

В шифрах многоалфавитной замены для шифрования каждого символа исходного сообщения применяется свой шифр простой замены (свой алфавит):

 

АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_

 

АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_

 

_АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ

 

Я_АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮ

 

ЮЯ_АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭ

 

…………

 

ВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_АБ

 

БВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_А

 

Каждая строка в этой таблице соответствует одному шифру замены аналогично шифру Цезаря для алфавита, дополненного пробелом. При шифровании сообщения его выписывают в строку, а под ним ключ. Если ключ оказался короче сообщения, то его циклически повторяют. Шифротекст получают, находя символ в колонке таблицы по букве текста и строке, соответствующей букве ключа. Например, используя ключ АГАВА, из сообщения ПРИЕЗЖАЮ ШЕСТОГО получаем следующую шифровку:

Сообщение

ПРИЕЗЖАЮ_ШЕСТОГО

Ключ

АГАВААГАВААГАВАА

Шифровка

ПНИГЗЖЮЮЮАЕОТМГО

Гаммирование

Процесс шифрования заключается в генерации гаммы шифра и наложении этой гаммы на исходный открытый текст. Перед шифрованием открытые данные разбиваются на блоки Т(0)i одинаковой длины (по 64 бита). Гамма шифра вырабатывается в виде последовательности блоков Г(ш)i аналогичной длины (Т(ш)i=Г(ш)i+Т(0)i, где + - побитовое сложение, i =1-m).

Процесс расшифровки сводится к повторной генерации шифра текста и наложение этой гаммы на зашифрованные данные T(0)i=Г(ш)i+Т(ш)i.

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

Схема шифрования Эль Гамаля

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

Последовательность действий пользователя:

1.     Получатель сообщения выбирает два больших числа P и G, причем P > G.

2.     Получатель выбирает секретный ключ - случайное целое число X < P.

3.     Вычисляется открытый ключ Y= G x mod P.

4.     Получатель выбирает целое число K, 1< K< P-1.

5.     Шифрование сообщения (M): a= GK mod P, b=Y K M mod P, где пара чисел (a,b) является шифротекстом.

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

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

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

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

2.     Получатель выбирает целое число е (1<e< φ(n)), взаимно простое со значением функции φ(n).

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

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

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

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

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

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

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

Задания к практической работе

Задание состоит из двух частей:

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

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

Ход работы

Часть 1:

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

2.     Выполнить проверку, расшифровав полученное сообщение.

Часть 2:

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

2.     Используя заданные значения p, q, e, d (см. вариант) зашифровать и дешифровать сообщения m1, m2, m3 (см. вариант).

Варианты

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

Номер варианта

 

Часть 1

Часть 2

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

p

q

е

d

m1

m2

m3

1.               

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

3

11

7

3

9

12

91

2.               

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

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

95

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

96

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

83

19.            

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

7

17

5

77

7

17

73

20.            

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

3

11

7

3

5

20

94

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

86

25.            

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

101

113

3533

6597

6

20

92

26.            

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

7

11

37

13

5

14

76

27.            

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

7

17

5

77

4

17

64

28.            

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

3

11

7

3

8

20

52

29.            

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

7

17

5

77

4

13

91

30.            

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

13

7

5

29

9

11

86

Контрольные вопросы

3.     Какой шифр называется шифром подстановки?

4.     Какой шифр называется шифром перестановки?

5.     Какой шифр называется поворотной решеткой?

6.     Какой шифр называется шифром вертикальной перестановки?

7.     К какому классу шифров относится шифр Цезаря?


Скачано с www.znanio.ru

Посмотрите также