Uploaded by klklkl

КР Защита сетей

advertisement
Размещено на http://www.allbest.ru/
Белорусский государственный университет
информатики и радиоэлектроники
Факультет Заочного вечернего и дистанционного обучения
Кафедра сетей и устройств телекоммуникаций
Контрольная работа
По дисциплине
“Криптографическая защита в ТК”
Минск 2010
Размещено на http://www.allbest.ru/
Содержание
1. Симметричная криптосистема ГОСТ 28147-89
2. Симметричная криптосистема DES
3. Асимметричая криптосистема RSA
4. Поточная система шифрования
Список литературы
Размещено на http://www.allbest.ru/
1. Симметричная криптосистема ГОСТ 28147-89
Описать работу алгоритма шифрования ГОСТ 28147-89: режим
гаммирования
Зашифрование открытых данных в режиме гаммирования
Криптосхема,
реализующая
алгоритм
зашифрования
в
режиме
64-разрядные
блоки
гаммирования, имеет вид, указанный на рис.1.1.
Открытые
TO(1) , TO( 2) ,..., TO( M 1) , TO( M )
данные,
разбитые
на
зашифровываются в режиме гаммирования путем пораз-
рядного суммирования по модулю 2 в сумматоре СМ5 с гаммой шифра Гш,
которая вырабатывается блоками по 64 бита, т.е.
(1)
( 2)
( М 1)
(М )
Г Ш  (Г Ш
, ГШ
,..., Г Ш
, ГШ
)
где М — определяется объемом шифруемых данных.
(i )
ГШ
- i-й 64-разрядный блок, i=1÷M, число двоичных разрядов в блоке
T0( M )
может быть меньше 64, при этом неиспользованная для зашифрования
(M )
часть гаммы шифра из блока Г Ш отбрасывается.
В КЗУ вводятся 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) =
Размещено на http://www.allbest.ru/
(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
Размещено на http://www.allbest.ru/
Заполнение Т3 переписывается в N1, а заполнение Т4 переписывается в
N2, при этом заполнение Т3, Т4 сохраняется.
Заполнение N1 и N2 зашифровывается в режиме простой. Полученное в
результате зашифрования заполнение N1, N2 образует первый 64-разрядный
(1)
блок гаммы шифра Г Ш , который суммируется поразрядно по модулю 2 в
сумматоре СМ5 с первым 64-разрядным блоком открытых данных
(1) (1)
T0(1)  (t1(1) , t 2(1) ,..., t63
, t64 )
В результате суммирования получается 64-разрядный блок зашифрованных данных
(1)
(1)
TШ(1)  ( 1(1) , 2(1) ,..., 63
, 64
)
(1)
(1)
Значение  1 блока TШ является результатом суммирования по модулю
(1)
(1)
(1)
2 в СМ5 значения t1 из блока T0 со значением 1-го разряда N1, значение  2
(1)
блока TШ является результатом суммирования по модулю 2 в СM5 значения
(1)
(1)
t 2(1) из блока T0 со значением 2-го разряда N и т.д.. значение  64 блока TШ(1)
1
(1)
является результатом суммирования по модулю 2 в СM5 значения t 64 из
(1)
блока T0 со значением 32-го разряда N2.
( 2)
Для получения следующего 64-разрядного блока гаммы шифра Г Ш
заполнение N4 суммируется по модулю (232—1) в сумматоре СМ4 с
константой С1 из N6, заполнение N3 суммируется по модулю 232 в сумматоре
СM3 с константой С2 из N5. Новое заполнение N3 переписывается N1, а новое
заполнение N4 переписывается в N2, при этом заполнение N3 и N4
сохраняется.
Размещено на http://www.allbest.ru/
Заполнение N1 и N2 зашифровывается в режиме простой. Полученное в
результате зашифрования заполнение N1, N2 образует второй 64-разрядный
( 2)
блок гаммы шифра Г Ш , который суммируется поразрядно по модулю 2 в
( 2)
сумматоре СM5 со вторым блоком открытых данных T0 . Аналогично
( 3)
( 4)
(M )
вырабатываются блоки гаммы шифра Г Ш , Г Ш , ... , Г Ш и зашифровываются
( 3)
( 4)
(M )
блоки открытых данных T0 , T0 , ... , T0 . Если длина последнего М-го
(M )
блока открытых данных T0 меньше 64 бит, то из последнего М-го блока
(M )
гаммы шифра Г Ш для зашифрования используется только соответствующее
число разрядов гаммы шифра, остальные разряды отбрасываются.
В канал связи или память ЭВМ передаются синхропосылка S и блоки
(1)
( 2)
(M )
зашифрованных данных T Ш , TШ ,... , TШ .
Уравнение зашифрования имеет вид:
i
T Ш(i )  A(Yi 1  C 2 , Z i 1  ' C1 )  T0i  Г Ш
 T0i
i=1…M
где
' - означает суммирование 32-разрядных заполнений по модулю
(232 -1);
— поразрядное суммирование по модулю 2 двух заполнений;
Yi — содержимое накопителя N3 после зашифрования i-го блока
(i )
открытых данных T0 ;
Zi - cодержимое накопителя N4 после зашифрования i-го блока
(i )
открытых данных T0 ;
(Y0,Z0) = A(S).
Расшифрование зашифрованных данных в режиме гаммирования
Размещено на http://www.allbest.ru/
При расшифровании криптосхема имеет тот же вид, что и при
зашифровании (рис.З). В КЗУ вводятся 256 бит ключа, с помощью которого
(1)
( 2)
(M )
осуществлялось зашифрование данных T0 , T0 ,…, T0 . Синхропосылка S
вводится в накопители N1 и N2 и аналогично осуществляется процесс
(1)
( 2)
(M )
выработки М блоков гаммы шифра Г Ш , Г Ш , ... , Г Ш . Блоки зашифрованных
(1)
( 2)
(М )
данных T Ш , TШ , ... , TШ суммируются поразрядно по модулю 2 в сумматоре
СМ5 с блоками гаммы шифра, в результате получаются блоки открытых
(1)
( 2)
(М )
(М )
данных T0 , T0 ,..., T0 , при этом T0 может содержать меньше 64 разрядов.
Уравнение расшифрования имеет вид:
i
T0(i )  A(Yi 1  C 2 , Z i 1  ' C1 )  TШi  Г Ш
 TШi
i=1…M
криптосистема гаммирование матрица шифрование
Размещено на http://www.allbest.ru/
2. Симметричная криптосистема DES
Задание: Сформировать ключ Кi для заданного цикла шифрования i в
режиме электронная кодовая книга, если:
для варианта 18 начальный ключ К равен (33, 8, 29, 17, 19, 105, 9, 36)
Номер
Номер
варианта
шифрования ( i )
18
2
цикла
Ответ представить в виде последовательности десятичных чисел.
Решение:
На каждой итерации используется новое значение ключа K i (длиной 48
бит). Новое значение ключа K i вычисляется из начального ключа K (рис.
2.1).
Рис. 2.1. Схема алгоритма вычисления ключей K i
Ключ K представляет собой 64-битовый блок с 8 битами контроля по
четности, расположенными в позициях 8, 16, 24, 32, 40, 48, 56, 64.
Размещено на http://www.allbest.ru/
Начальный ключ К равен (33, 8, 29, 17, 19, 105, 9, 36). Переводим его в
двоичный вид и представляем в виде таблицы 1.
Таблица 1
1(33)
2(8)
3(29)
4(17)
5(19)
6(105)
7(9)
8(36)
1
2
3
4
5
6
7
8
0
0
1
0
0
0
0
1
9
10
11
12
13
14
15
16
0
0
0
0
1
0
0
0
17
18
19
20
21
22
23
24
0
0
0
1
1
1
0
1
25
26
27
28
29
30
31
32
0
0
0
1
0
0
0
1
33
34
35
36
37
38
39
40
0
0
0
1
0
0
1
1
41
42
43
44
45
46
47
48
0
1
1
0
1
0
0
1
49
50
51
52
53
54
55
56
0
0
0
0
1
0
0
1
57
58
59
60
61
62
63
64
0
0
1
0
0
1
0
0
Для удаления контрольных бит и подготовки ключа к работе
используется функция G первоначальной подготовки ключа (табл. 2). Делим
56-битовый ключ на две 28-битовые половинки. Перестановка ключа.
Таблица 2
Функция G
С0
D0
57
49
41
33
25
17
9
1
58
50
42
34
26
18
10
2
59
51
43
35
27
19
11
3
60
52
44
36
63
55
47
39
31
23
15
7
62
54
46
38
30
22
14
6
61
53
45
37
29
21
13
5
28
20
12
4
Размещено на http://www.allbest.ru/
Таблица 2 разделена на две части. Результат преобразования G  K 
разбивается на две половины C 0 и D 0 , по 28 бит каждая. Первые четыре
строки матрицы G определяют, как выбираются биты последовательности C
(первым битом C 0 будет бит 57 ключа шифра, затем бит 49 и т.д., а
последними битами - биты 44 и 36 ключа). Следующие четыре строки
матрицы G определяют, как выбираются биты последовательности D 0 (т.е.
последовательность D 0 будет состоять из бит 63, 55, 47,...,12, 4 ключа
шифра). Функция G для нашего варианта представлена в таблице 3
Таблица 3
Функция G
С0
D0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
Как видно из табл. 2, для генерации последовательностей C 0 и D 0 не
используются биты 8, 16, 24, 32, 40, 48, 56 и 64 ключа шифра. Эти биты не
влияют на шифрование и могут служить для других целей (например, для
контроля по четности). Таким образом, в действительности ключ шифра
является 56-битовым. После определения C 0 и D 0 определяются Ci и D i ,
i  1,2, ,16 . Для этого применяются операции циклического сдвига влево на
один или два бита в зависимости от номера шага итерации, как показано в
табл. 4.
Размещено на http://www.allbest.ru/
Таблица 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
Операции сдвига выполняются для последовательностей Ci и D i
независимо.
Сдвигаем при 2-ом цикле:
Таблица 5(со сдвигом)
Функция G
0
0
0
0
0
0
0
С1 0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
D1 0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
Ключ K i , определяемый на каждом шаге итерации, есть результат
выбора конкретных бит из 56-битовой последовательности Ci D i и их
перестановки. Другими словами, ключ
K i  H  Ci Di 
где функция H определяется матрицей, завершающей обработку ключа
(табл. 6). После сдвига выбираются 48 из 56 битов. Поскольку при этом не
только выбирается подмножество битов, но и изменяется их порядок. Данная
операция называется сжимающей перестановкой. В её результате появляется
набор из 48 битов. Сжимающая перестановка.
Размещено на http://www.allbest.ru/
Таблица 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, первым битом ключа K i будет 14-й бит
последовательности Ci D i , вторым - 17-й бит, 47-м битом ключа K i будет
29-й бит Ci D i , а 48-м битом - 32-й бит Ci D i . Результат заносим в табл. 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
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
Таблица 8
К2(4, 212, 3, 84, 0, 2)
Размещено на http://www.allbest.ru/
3.Асимметричая криптосистема RSA
Сгенерировать ключи, открытый К0 и секретный Кс, ключи, для
шифрования и расшифрования, зашифровать сообщение М и расшифровать
его. Убедиться , что ключи сгенерированы правильно.
Исходные данные: простые числа Р и Q, сообщение М.
Вариант 18:
P=13;
Q=29;
M=3.
Значение модуля: n  P  Q  13  29  377;
Функция Эйлера:  (n)  ( P  1)  (Q  1)  12  28  336 ;
ÍÎÄ ( K 0 , (n))  1;
1  K 0   (n);
K 0  7;
K C  K 01 mod  (n)  7 1 mod 336
;
Если выбрать b  n и a, n - взаимно простые числа, т.е.  a, n   1, тогда
a  u1  n  u 2  1 ,
 a  u1  n  u 2  mod n   a  u1  mod n  1 ,
 a  mod n  u
1
1
mod n
.
Размещено на http://www.allbest.ru/
То есть для нахождения обратной величины необходимо вычислить
u1 mod n . Эта задача решается в ходе вычисления Í Î Ä  a, n  в соответствии
с алгоритмом Евклида. Дополнительно на каждом шаге вычисляются
координаты двух векторов:
u=(u1 , u 2 , u 3 ) , v (v1 , v2 , v3 ) .
Алгоритм вычисления u 1 имеет следующий вид
1. Начальные установки:
u 0 =(0,1, n) , т.е. u1  0 , u 2  1 , u 3  n . При этом a  0  b  1  n , т.е. b  n ,
v0  (1,0, a) , т.е. v1  1, v2  0 , v3  a . При этом a  1  n  0  a .
2. Проверяем,
выполняется
ли
u 3  1,
если
да,
то
алгоритм
заканчивается.
3. Делим n на a ( u 3 на v3 ) и определяем:
u 
q1   3 
 v3  и значения векторов: u1  v0 ; v1  u 0  q1  v0 .
4. Вернуться к шагу 2.
На каждом шаге при расчетах используютсяРазмещено на Allbest.ru
результаты предыдущего:
u 
qi   3 
 v3  i 1 , u i  vi-1 , vi  u i -1  qi  vi -1 .
Размещено на http://www.allbest.ru/
При u 3  1 вычисления заканчиваются
 a  mod n  u
1
значение u 1 , полученное на последнем шаге.
Результат вычислений
q
u1
u2
u3
v1
v2
v3
0
1
377
1
0
7
53
1
0
7
-53
1
6
1
-53
1
6
54
-1
1
54
-1
1
Значение секретного ключа:
K C  K 01 mod  (n)  7 1 mod( 336)  48
;
Шифрование числа M=3:
C  (M K0 ) mod( n)  37 mod 377  2187 mod 377  302
Расшифровка числа M:
M  (C KC ) mod( n)  302 48 mod 377  3
1
mod n
, где u 1
Размещено на http://www.allbest.ru/
4. Поточная система шифрования
Сгенерировать псевдослучайную последовательность чисел с помощью
линейного конгруэнтного генератора, если его параметры равны:
Х0=5, а=2, с=9, N=72 (18 вариант);
Сгенерировать 8 десятичных чисел, перевести их в двоичный вид*,
зашифровать поточным способом сообщение М=(33, 8, 29, 17, 19, 105, 9,
36)*. Ответ представить в виде последовательности десятичных чисел*.
*При переводе последовательности десятичных чисел в двоичный код
использовать восьмибитовое представление десятичного числа, считать, что
правое десятичное число соответствует младшим разрядам двоичного числа.
Например, (2,….., 7)
00000010…….. 00000111.
Линейный конгруэнтный метод — один из алгоритмов генерации
псевдослучайных чисел. Применяется в простых случаях и не обладает
криптографической
стойкостью.
Входит
в
стандартные
библиотеки
различных компиляторов.
Этот алгоритм заключается в итеративном применении следующей
формулы:
X K 1  (a  X K 1  C) mod N ;
где a > 0, c > 0, N > 0 — некоторые целочисленные константы.
Получаемая последовательность зависит от выбора стартового числа X0 и при
разных его значениях получаются различные последовательности случайных
чисел. В то же время, многие свойства последовательности Xj определяются
выбором коэффициентов в формуле и не зависят от выбора стартового числа.
Ясно, что последовательность чисел, генерируемая таким алгоритмом,
периодична с периодом, не превышающим N. При этом длина периода равна
N тогда и только тогда, когда:
1.
НОД (c, m) = 1 (то есть c и m взаимно просты);
Размещено на http://www.allbest.ru/
2.
a - 1 кратно p для всех простых p — делителей N;
3.
a - 1 кратно 4, если N кратно 4.
Статистические свойства получаемой последовательности случайных
чисел полностью определяются выбором констант a и c при заданной
разрядности e. Для этих констант выписаны условия, гарантирующие
удовлетворительное качество получаемых случайных чисел.
X 1  (a  X 0  C ) mod N  (2  5  9) mod 72  19;
X 2  (a  X1  C) mod N  (2 19  9) mod 72  47;
X 3  (a  X 2  C ) mod N  (2  47  9) mod 72  31;
X 4  (a  X 3  C ) mod N  (2  31  9) mod 72  71;
X 5  (a  X 4  C ) mod N  (2  71  9) mod 72  7;
X 6  (a  X 5  C ) mod N  (2  7  9) mod 72  23;
X 7  (a  X 6  C ) mod N  (2  23  9) mod 72  55;
X 8  (a  X 7  C ) mod N  (2  55  9) mod 72  47;
Простейшая реализация поточного шифра изображена на рисунке.
Размещено на http://www.allbest.ru/
Генератор
гаммы
Открытый
текст
Генератор
гаммы
Открытый
текст
Шифротекст
Зашифрование
Расшифрование
Рис 4.1 Режим гаммирования для поточных шифров
Генератор гаммы выдаёт ключевой поток (гамму):
Поток битов открытого текста:
.
.
Гамма шифра и поток битов открытого текста подвергаются операции
XOR. Так получается поток битов шифротекста:
, где
.
Расшифрование производится операцией XOR между той же самой
гаммой и зашифрованным текстом:
.
Очевидно, что если последовательность битов гаммы не имеет периода
и выбирается случайно, то взломать шифр невозможно. Но у данного режима
шифрования есть и отрицательные особенности. Так ключи, сравнимые по
длине с передаваемыми сообщениями, трудно использовать на практике.
Поэтому обычно применяют ключ меньшей длины (например, 128 бит). С
помощью
него
генерируется
псевдослучайная
гаммирующая
последовательность ( она должна удовлетворять постулатам Голомба).
Размещено на http://www.allbest.ru/
Естественно, псевдослучайность гаммы может быть использована при атаке
на поточный шифр.
Xt=(19,47,31,71,7,23,55,47).
переводим полученную последовательность в двоичный вид и получим
K
00010011.00101111.00011111.01000111.00000111.00010111.00110111.00
101111
переводим сообщение М в двоичный вид
00100001.00001000.00011101.00010001.00010011.01101001.00001001.00
100100
Шифруем, выполняя действие побитово: C = K  M
С:
00110010.00100111.00000010.01010110.00010100.01111110.00111110.00
001011
переводим шифротекст в десятичный вид
С(50, 39, 2, 86, 20, 126, 62, 11)
Размещено на http://www.allbest.ru/
Список литературы
1.
ГОСТ 28147-89.
2.
Харин Ю.С., Берник В.И., Матвеев Г.В., Агиевич С.В. Основы
криптологии. Мн. Новое знание, 2003г.
3.
Криптогафическая защита информации в телекоммуникационных
системах:
Учебно-методическое
пособие
для
студ.
спец.
«Сети
телекоммуникаций» и «Защита информации в телекоммуникациях» всех
форм обуч.: В 2 ч. Ч.1/ В.Ф. Голиков, А.В. Курилович. – Мн.: БГУИР, 2006. –
55 с.: ил.
4.
Романец Ю.В. Тимофеев П.А., Шаньгин В.Ф. Защита информации в
компьютерных системах и сетях. М. Радио и связь, 1999 г.
Размещено на Allbest.ru
Download