Криптографическая защита в телекоммуникациях
Белорусский государственный университет
информатики и радиоэлектроники
Факультет Заочного вечернего и дистанционного обучения
Кафедра сетей и устройств телекоммуникаций
Контрольная работа
По дисциплине
“Криптографическая защита в ТК”
Минск 2010
Содержание
1. Симметричная криптосистема ГОСТ 28147-89
. Симметричная криптосистема DES
. Асимметричая криптосистема RSA
. Поточная система шифрования
Список литературы
1. Симметричная криптосистема ГОСТ
28147-89
Описать работу алгоритма шифрования
ГОСТ 28147-89: режим гаммирования
Зашифрование открытых данных в
режиме гаммирования
Криптосхема, реализующая алгоритм
зашифрования в режиме гаммирования, имеет вид, указанный на рис.1.1.
Открытые данные,
разбитые на 64-разрядные блоки зашифровываются в
режиме гаммирования путем поразрядного суммирования по модулю 2 в сумматоре СМ5
с гаммой шифра Гш, которая вырабатывается блоками по 64
бита, т.е.
где М - определяется
объемом шифруемых данных.
- i-й 64-разрядный блок, i=1÷M, число двоичных разрядов в блоке может быть меньше 64,
при этом неиспользованная для зашифрования часть гаммы шифра из блока отбрасывается.
В КЗУ вводятся 256
бит ключа. В накопители N1, N2 вводится 64-разрядная
двоичная последовательность (синхропосылка) S = (S1, S2,...,S64), являющаяся исходным заполнением этих накопителей для последующей
выработки M блоков гаммы шифра. Синхропосылка вводится в N1
и N2 так,
что значение S1 вводится в 1 -й разряд N1, значение S2 вводится во 2-й разряд N2 и т.д., значение S32 вводится в 32-й разряд N1
; значение S33 вводится в 1-й разряд N2, значение S34 вводится во 2-й разряд N2 и т.д., значение S64 вводится в 32-й разряд N2.
Исходное заполнение
накопителей N1 и N2 (синхропосылка S) зашифровывается в режиме простой замены. Результат зашифрования A(S) = (Y0, Z0) переписывается
в 32-разрядные накопители N3 и N4, так,
что заполнение N1 переписывается в N3, а заполнение N2 переписывается в N4.
Заполнение
накопителя N4 суммируется по модулю (232- 1) в сумматоре СM4 с 32-разрядной константой С1 из накопителя N6, результат записывается в N4.
Заполнение накопителя N3 суммируется по модулю 232
в сумматоре СМ3 в 32-разрядной константой С2 из
накопителя N5 результат записывается
в N3.
Рис.1.1
Заполнение Т3
переписывается в N1, а заполнение Т4 переписывается
в N2, при этом заполнение Т3, Т4
сохраняется.
Заполнение N1
и N2
зашифровывается в режиме простой. Полученное в результате
зашифрования заполнение N1,
N2
образует первый 64-разрядный блок гаммы шифра ,
который суммируется поразрядно по модулю 2 в сумматоре СМ5 с
первым 64-разрядным блоком открытых данных
В результате
суммирования получается 64-разрядный блок зашифрованных данных
Значение блока
является
результатом суммирования по модулю 2 в СМ5 значения из
блока со
значением 1-го разряда N1,
значение блока
является
результатом суммирования по модулю 2 в СM5
значения из
блока со
значением 2-го разряда N1
и т.д.. значение блока
является
результатом суммирования по модулю 2 в СM5
значения из
блока со
значением 32-го разряда N2.
Для получения следующего
64-разрядного блока гаммы шифра заполнение N4 суммируется по модулю (232-1) в сумматоре СМ4
с константой С1 из N6,
заполнение N3 суммируется по модулю 232 в сумматоре СM3 с константой С2 из N5.
Новое заполнение N3 переписывается
N1, а новое заполнение N4
переписывается в N2,
при этом заполнение N3 и
N4
сохраняется.
Заполнение N1
и N2
зашифровывается в режиме простой. Полученное в результате зашифрования
заполнение N1,
N2
образует второй 64-разрядный блок гаммы шифра ,
который суммируется поразрядно по модулю 2 в
сумматоре СM5 со вторым блоком открытых данных . Аналогично вырабатываются
блоки гаммы шифра ,
,
... , и
зашифровываются блоки открытых данных , ,
... , .
Если длина последнего М-го блока открытых данных меньше
64 бит, то из последнего М-го блока гаммы шифра для
зашифрования используется только соответствующее число разрядов гаммы шифра,
остальные разряды отбрасываются.
В канал связи или память
ЭВМ передаются синхропосылка S и блоки зашифрованных данных , ,...
, .
Уравнение зашифрования
имеет вид:
i=1…M
где ' - означает
суммирование 32-разрядных заполнений по модулю (232 -1);
- поразрядное
суммирование по модулю 2 двух заполнений;
Yi
- содержимое накопителя N3
после зашифрования i-го
блока открытых данных ;
Zi
- cодержимое накопителя N4
после зашифрования i-го
блока открытых данных ;
(Y0,Z0)
= A(S).
Расшифрование
зашифрованных данных в режиме гаммирования
При расшифровании
криптосхема имеет тот же вид, что и при зашифровании (рис.З). В КЗУ вводятся
256 бит ключа, с помощью которого осуществлялось зашифрование данных ,,…,.
Синхропосылка S
вводится в накопители N1
и N2 и аналогично осуществляется процесс выработки М блоков
гаммы шифра ,
,
... ,.
Блоки зашифрованных данных , ,
... , суммируются
поразрядно по модулю 2 в сумматоре СМ5 с блоками гаммы шифра, в результате получаются блоки открытых
данных ,,...,,
при этом может
содержать меньше 64 разрядов.
Уравнение расшифрования
имеет вид:
=1…M
криптосистема
гаммирование матрица шифрование
2. Симметричная криптосистема DES
Задание: Сформировать ключ Кi для
заданного цикла шифрования i в режиме электронная кодовая книга, если:
для варианта 18 начальный ключ К
равен (33, 8, 29, 17, 19, 105, 9, 36)
Номер варианта
|
Номер цикла шифрования (
i )
|
18
|
2
|
Ответ представить в виде
последовательности десятичных чисел.
Решение:
На каждой итерации используется
новое значение ключа (длиной
48 бит). Новое значение ключа вычисляется
из начального ключа (рис.
2.1).
Рис. 2.1. Схема алгоритма вычисления
ключей
Ключ представляет собой 64-битовый блок с 8 битами контроля по
четности, расположенными в позициях 8, 16, 24, 32, 40, 48, 56, 64.
Начальный ключ К равен (33, 8, 29,
17, 19, 105, 9, 36). Переводим его в двоичный вид и представляем в виде таблицы
1.
Таблица 1
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
1(33)
|
0
|
0
|
1
|
0
|
0
|
0
|
0
|
1
|
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
2(8)
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
3(29)
|
0
|
0
|
0
|
1
|
1
|
1
|
0
|
1
|
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
32
|
4(17)
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
1
|
|
33
|
34
|
35
|
36
|
37
|
38
|
39
|
40
|
5(19)
|
0
|
0
|
0
|
1
|
0
|
0
|
1
|
1
|
|
41
|
42
|
43
|
44
|
45
|
46
|
47
|
48
|
6(105)
|
0
|
1
|
1
|
0
|
1
|
0
|
0
|
1
|
|
49
|
50
|
51
|
52
|
53
|
54
|
55
|
56
|
7(9)
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
1
|
|
57
|
58
|
59
|
60
|
61
|
62
|
63
|
64
|
8(36)
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
Для удаления контрольных бит и
подготовки ключа к работе используется функция первоначальной подготовки ключа (табл. 2). Делим 56-битовый ключ
на две 28-битовые половинки. Перестановка ключа.
|
Таблица 2
|
|
Функция G
|
5749413325179
|
|
|
|
|
|
|
|
|
1
|
58
|
50
|
42
|
34
|
26
|
18
|
|
10
|
2
|
59
|
51
|
43
|
35
|
27
|
|
19
|
11
|
3
|
60
|
52
|
44
|
36
|
63554739312315
|
|
|
|
|
|
|
|
|
7
|
62
|
54
|
46
|
38
|
30
|
22
|
|
14
|
6
|
61
|
53
|
45
|
37
|
29
|
|
21
|
13
|
5
|
28
|
20
|
12
|
4
|
Таблица 2 разделена на две части.
Результат преобразования разбивается
на две половины и , по 28 бит каждая. Первые четыре строки матрицы определяют, как выбираются биты последовательности (первым битом будет
бит 57 ключа шифра, затем бит 49 и т.д., а последними битами - биты 44 и 36
ключа). Следующие четыре строки матрицы определяют, как выбираются биты последовательности (т.е. последовательность будет состоять из бит 63, 55, 47,...,12, 4 ключа шифра). Функция
G для нашего варианта представлена в таблице 3
|
Таблица 3
|
|
Функция G
|
0000000
|
|
|
|
|
|
|
|
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
|
0
|
0
|
1
|
0
|
1
|
0
|
0
|
|
0
|
0
|
1
|
0
|
0
|
0
|
1
|
0001000
|
|
|
|
|
|
|
|
|
0
|
1
|
0
|
0
|
0
|
0
|
1
|
|
0
|
0
|
0
|
1
|
1
|
0
|
0
|
|
1
|
1
|
0
|
1
|
1
|
0
|
0
|
Как видно из табл. 2, для генерации
последовательностей и не используются биты 8, 16, 24, 32, 40, 48, 56 и 64 ключа шифра.
Эти биты не влияют на шифрование и могут служить для других целей (например,
для контроля по четности). Таким образом, в действительности ключ шифра
является 56-битовым. После определения и определяются
и , . Для этого применяются операции циклического сдвига влево на один
или два бита в зависимости от номера шага итерации, как показано в табл. 4.
Таблица 4
Таблица сдвигов для вычисления ключа
|
Итерация
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
Сдвиг влево
|
1
|
1
|
2
|
2
|
2
|
2
|
2
|
2
|
1
|
2
|
2
|
2
|
2
|
2
|
2
|
1
|
Операции сдвига выполняются для
последовательностей и независимо.
Сдвигаем при 2-ом цикле:
Таблица 5(со сдвигом)
|
Функция G
|
0000000
|
|
|
|
|
|
|
|
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
|
1
|
0
|
1
|
0
|
0
|
0
|
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
0100001
|
|
|
|
|
|
|
|
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
|
0
|
1
|
1
|
0
|
0
|
1
|
1
|
|
0
|
1
|
1
|
0
|
0
|
0
|
0
|
Ключ , определяемый на каждом шаге итерации, есть результат выбора
конкретных бит из 56-битовой последовательности и их перестановки. Другими словами, ключ
где функция определяется матрицей, завершающей обработку ключа (табл. 6).
После сдвига выбираются 48 из 56 битов. Поскольку при этом не только выбирается
подмножество битов, но и изменяется их порядок. Данная операция называется
сжимающей перестановкой. В её результате появляется набор из 48 битов. Сжимающая перестановка.
Таблица 6
Функция H
|
14
|
17
|
11
|
24
|
1
|
5
|
3
|
28
|
15
|
6
|
21
|
10
|
23
|
19
|
22
|
4
|
26
|
8
|
16
|
7
|
27
|
20
|
13
|
2
|
41
|
52
|
31
|
37
|
47
|
55
|
30
|
40
|
51
|
45
|
33
|
48
|
44
|
49
|
39
|
56
|
34
|
53
|
46
|
42
|
50
|
36
|
29
|
32
|
Как следует из табл. 6, первым битом
ключа будет 14-й бит последовательности , вторым - 17-й бит, 47-м битом ключа будет 29-й бит , а
48-м битом - 32-й бит .
Результат заносим в табл. 7
Таблица 7
Ключ К1
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
1
|
1
|
0
|
1
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
1
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
Таблица 8
0
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
1
|
1
|
0
|
1
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
1
|
0
|
1
|
0
|
1
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
К2(4, 212, 3, 84, 0, 2)
3.Асимметричая криптосистема RSA
Сгенерировать ключи, открытый К0
и секретный Кс, ключи, для шифрования и расшифрования,
зашифровать сообщение М и расшифровать его. Убедиться , что ключи сгенерированы
правильно.
Исходные данные: простые числа Р и Q, сообщение М.
Вариант 18:
P=13;
Q=29;
M=3.
Значение модуля:
Функция Эйлера:;
;
Если выбрать и
-
взаимно простые числа, т.е. , тогда
,
,
.
То есть для нахождения
обратной величины необходимо вычислить . Эта задача решается в
ходе вычисления в
соответствии с алгоритмом Евклида. Дополнительно на каждом шаге вычисляются
координаты двух векторов:
, .
Алгоритм вычисления имеет
следующий вид
1. Начальные установки:
, т.е. , , . При этом , т.е. ,
, т.е. , , . При этом .
2. Проверяем, выполняется ли , если да, то алгоритм заканчивается.
3. Делим на ( на ) и
определяем:
и
значения векторов: ; .
4. Вернуться к шагу 2.
На каждом шаге при расчетах
используются