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