Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум_ЗИ.doc
Скачиваний:
49
Добавлен:
29.03.2015
Размер:
524.29 Кб
Скачать

Порядок выполнения самостоятельной работы

  1. Выберете текст для шифрования длиной не более 8 символов.

  2. Используйте заданный алфавит для шифровки для первых 4-х

алгоритмов

Таблица 5.3.

А

Б

В

Г

Д

Е

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

У

Ф

Х

Ц

Ч

Ш

Щ

Ъ

Ы

Ь

Э

Ю

Я

,

.

!

?

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

  1. Зашифруйте текст четырьмя алгоритмами:

- алгоритмом Цезаря, К=4;

- алгоритмом простой перестановки, К=3142;

- алгоритмом простой моноалфавитной замены, а=2, К=4;

- алгоритмом Гамильтона, К1= 40231576; К2= 46201573.

- алгоритмом гаммирования.

  1. Зашифруйте осмысленное слово длиной не более 8 символов любым

методом из пяти заданных, отдайте на расшифровку

вместе с ключом (ключами).

  1. Возьмите зашифрованный текст, ключ шифрования.

  2. Дешифруйте переданный текст, подобрав алгоритм.

Решение.

Алгоритм Цезаря

Л

Ю

Б

Л

Ю

О

Т

Ч

И

З

Н

У

Я

П

.

Е

П

.

?

Т

Ц

Ы

М

Л

С

Ч

?

!

Алгоритм простой перестановки

1

2

3

4

1

2

3

4

1

2

3

4

1

2

3

4

Л

Ю

Б

Л

Ю

О

Т

Ч

И

З

Н

У

Я

3

1

4

2

3

1

4

2

3

1

4

2

3

1

4

2

Б

Л

Л

Ю

О

Ю

Т

З

Ч

Н

И

Я

У

Алгоритм моноалфавитной замены

Л

Ю

Б

Л

Ю

О

Т

Ч

И

З

Н

У

Я

Р

11

30

1

11

30

32

14

18

23

8

7

13

19

32

31

С

26

28

6

26

28

32

32

4

14

20

21

30

6

32

30

Ъ

Ь

Ж

Ъ

Ь

Д

О

Ф

Х

Ю

Ж

Ю

Алгоритм Гамильтона

0

1

2

3

4

5

6

7

0

1

2

3

4

5

6

7

Л

Ю

Б

Л

Ю

О

Т

Ч

И

З

Н

У

Я

4

0

2

3

1

5

7

6

4

6

2

0

1

5

7

3

Ю

Л

Л

Ю

Т

О

У

Я

З

Ч

И

Н

Пусть для расшифровки передан текст ЛБАСРЕНТ с ключом К=40231576, наличие восьмизначного ключа может говорить об алгоритме шифрования Гамильтона или алгоритме простой перестановки, применяем последний алгоритм, получаем осмысленное слово БРАСЛЕТЫ.

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

Пример 5.5. Пусть задан текст « ядома» закодировать его и перслать зашифрованным по каналу связи на основе алгоритма гаммирования.

Решение. Сначала построим таблицу, в которой представим буквы числами по системе кодировки ASCII (см. табл. 4.1.) и числа представим затем в двоичной системе счисления, получим:

Таблица 5.4.

27

26

25

24

23

22

21

20

128

64

32

16

8

4

2

1

я

239

1

1

1

0

1

1

1

1

д

164

1

0

1

0

0

1

0

0

о

174

1

0

1

0

1

1

1

0

м

172

1

0

1

0

1

1

0

0

а

160

1

0

1

0

0

0

0

0

Теперь обратимся к генератору случайных чисел с алгоритмом:

Линейный конгруэнтный метод

Выберем четыре числа [5]:

m — модуль, m > 0;

a — множитель, 0 a < m;

c — приращение, 0 с < m;

Х0 — начальное значение, 0 Х0 < m.

Последовательность случайных чисел n} можно получить, полагая

Хn+1 = (a Хn + c) mod m, n 0

(5.6)

Эта последовательность называется линейной конгруэнтной последовательностью. Например, для m = 10 и Х0 = a = c = 7 получим последовательность

7, 6, 9, 0, 7, 6, 9, 0, …

Здесь отражен факт, что конгруэнтная последовательность всегда образует петли, т.е. обязательно существует цикл, повторяющийся бесконечное число раз. Это свойство является общим для всех последовательностей вида Xn+1 = f(Xn), где f — функция, преобразующая конечное множество само в себя. Повторяющиеся циклы называют периодами. Задача генерации случайных последовательностей состоит в использовании относительно длинного периода, что связано с выбором довольно большого m, так как период не может иметь больше m элементов.

Воспользуемся формулой (5.6) и создадим гамму шифра:

x0=7 ; а =3 ; с =11 ; m = 33, получим ряд чисел:

{7,32, 8, 2, 17, …} оставим из них только 5 и переведем их в двоичную систему счисления, получим:

Таблица 5.5.

27

26

25

24

23

22

21

20

128

64

32

16

8

4

2

1

7

0

0

0

0

0

1

1

1

32

0

0

1

0

0

0

0

0

8

0

0

0

0

1

0

0

0

2

0

0

0

0

0

0

0

1

17

0

0

0

1

0

0

0

1

Сложим исходный текст, представленный в двоичном виде с гаммой шифра по модулю 2:

Таблица 5.6.

1

1

1

0

1

1

1

1

1

0

1

0

0

1

0

0

1

0

1

0

1

1

1

0

1

0

1

0

1

1

0

0

1

0

1

0

0

0

0

0

0

0

0

0

0

1

1

1

0

0

1

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

1

0

0

0

1

0

0

0

1

1

1

1

0

1

0

0

0

1

0

0

0

0

1

0

0

1

0

1

0

0

1

1

0

1

0

1

0

1

1

0

1

1

0

1

1

0

0

0

1

1

1

1

0

1

1

1

1

1

0

1

0

0

1

0

0

1

0

1

0

1

1

1

0

1

0

1

0

1

1

0

0

1

0

1

0

0

0

0

0

Пояснения к таблице 5.6. Первая строка это код входного текста в двоичной системе счисления, вторая строка это гамма шифра в двоичной системе счисления, третья строка это сложение по модулю 2 этих строк, результат зашифрованный текст, который идет по открытому каналу связи, четвертая строка это дешифрованный текст на гамме шифра с известным алгоритмом генерирования случайных чисел ( линейным конгруэнтным методом) с известными х0, a, с, m.