Криптографическая защита в телекоммуникациях

Тип работы:
Контрольная
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Белорусский государственный университет

информатики и радиоэлектроники

Факультет Заочного вечернего и дистанционного обучения

Кафедра сетей и устройств телекоммуникаций

Контрольная работа

По дисциплине

«Криптографическая защита в ТК»

Минск 2010

Содержание

1. Симметричная криптосистема ГОСТ 28 147–89

2. Симметричная криптосистема DES

3. Асимметричая криптосистема RSA

4. Поточная система шифрования

Список литературы

1. Симметричная криптосистема ГОСТ 28 147–89

Описать работу алгоритма шифрования ГОСТ 28 147–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 разрядов.

Уравнение расшифрования имеет вид:

i=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

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

Таблица 2 разделена на две части. Результат преобразова-ния разбивается на две половины и, по 28 бит каждая. Первые четыре строки матрицы определяют, как выбираются биты последовательности (первым битом будет бит 57 ключа шифра, затем бит 49 и т. д., а последними битами _ биты 44 и 36 ключа). Следующие четыре строки матрицы определяют, как выбираются биты последовательности (т.е. последователь-ность будет состоять из бит 63, 55, 47,…, 12, 4 ключа шифра). Функция G для нашего варианта представлена в таблице 3

Таблица 3

Функция G

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, для генерации последовательностей и не используются биты 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

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

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.

На каждом шаге при расчетах используются результаты предыдущего:

,, .

При вычисления заканчиваются, где значение, полученное на последнем шаге.

Результат вычислений

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

Значение секретного ключа:

;

Шифрование числа M=3:

Расшифровка числа M:

4. Поточная система шифрования

Сгенерировать псевдослучайную последовательность чисел с помощью линейного конгруэнтного генератора, если его параметры равны:

Х0=5, а=2, с=9, N=72 (18 вариант);

Сгенерировать 8 десятичных чисел, перевести их в двоичный вид*, зашифровать поточным способом сообщение М=(33, 8, 29, 17, 19, 105, 9, 36)*. Ответ представить в виде последовательности десятичных чисел*.

*При переводе последовательности десятичных чисел в двоичный код использовать восьмибитовое представление десятичного числа, считать, что правое десятичное число соответствует младшим разрядам двоичного числа.

Например, (2,…, 7) 10… 111.

Линейный конгруэнтный метод -- один из алгоритмов генерации псевдослучайных чисел. Применяется в простых случаях и не обладает криптографической стойкостью. Входит в стандартные библиотеки различных компиляторов.

Этот алгоритм заключается в итеративном применении следующей формулы:

где a > 0, c > 0, N > 0 -- некоторые целочисленные константы. Получаемая последовательность зависит от выбора стартового числа X0 и при разных его значениях получаются различные последовательности случайных чисел. В то же время, многие свойства последовательности Xj определяются выбором коэффициентов в формуле и не зависят от выбора стартового числа. Ясно, что последовательность чисел, генерируемая таким алгоритмом, периодична с периодом, не превышающим N. При этом длина периода равна N тогда и только тогда, когда:

1. НОД (c, m) = 1 (то есть c и m взаимно просты);

2. a — 1 кратно p для всех простых p -- делителей N;

3. a — 1 кратно 4, если N кратно 4.

Статистические свойства получаемой последовательности случайных чисел полностью определяются выбором констант a и c при заданной разрядности e. Для этих констант выписаны условия, гарантирующие удовлетворительное качество получаемых случайных чисел.

Простейшая реализация поточного шифра изображена на рисунке.

/

/

Рис 4.1 Режим гаммирования для поточных шифров

Генератор гаммы выдаёт ключевой поток (гамму):.

Поток битов открытого текста:.

Гамма шифра и поток битов открытого текста подвергаются операции XOR. Так получается поток битов шифротекста:, где

.

Расшифрование производится операцией XOR между той же самой гаммой и зашифрованным текстом:.

Очевидно, что если последовательность битов гаммы не имеет периода и выбирается случайно, то взломать шифр невозможно. Но у данного режима шифрования есть и отрицательные особенности. Так ключи, сравнимые по длине с передаваемыми сообщениями, трудно использовать на практике. Поэтому обычно применяют ключ меньшей длины (например, 128 бит). С помощью него генерируется псевдослучайная гаммирующая последовательность (она должна удовлетворять постулатам Голомба). Естественно, псевдослучайность гаммы может быть использована при атаке на поточный шифр.

Xt=(19,47,31,71,7,23,55,47).

переводим полученную последовательность в двоичный вид и получим K

10 011. 101 111. 11 111. 1 000 111. 111. 10 111. 110 111. 101 111

переводим сообщение М в двоичный вид

100 001. 1 000. 11 101. 10 001. 10 011. 1 101 001. 1 001. 100 100

Шифруем, выполняя действие побитово: C = KM

С:

110 010. 100 111. 10. 1 010 110. 10 100. 1 111 110. 111 110. 1 011

переводим шифротекст в десятичный вид

С (50, 39, 2, 86, 20, 126, 62, 11)

Список литературы

1. ГОСТ 28 147–89.

2. Харин Ю. С., Берник В. И., Матвеев Г. В., Агиевич С. В. Основы криптологии. Мн. Новое знание, 2003 г.

3. Криптогафическая защита информации в телекоммуникационных системах: Учебно-методическое пособие для студ. спец. «Сети телекоммуникаций» и «Защита информации в телекоммуникациях» всех форм обуч.: В 2 ч. Ч. 1/ В. Ф. Голиков, А. В. Курилович. — Мн.: БГУИР, 2006. — 55 с.: ил.

4. Романец Ю. В. Тимофеев П.А., Шаньгин В. Ф. Защита информации в компьютерных системах и сетях. М. Радио и связь, 1999 г.

ПоказатьСвернуть
Заполнить форму текущей работой