Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
inf_lectures.docx
Скачиваний:
53
Добавлен:
27.11.2016
Размер:
691.13 Кб
Скачать

2.8.2. Метод Виженера

Разрушить статистические зависимости в закодированных сообщениях и тем самым повысить надежность кодирования можно с помощью метода Виженера.

Первый этап кодирования (построение кодовой таблицы) сводится к тому, что символы исходного алфавита нумеруются, начиная с нуля, например, для кириллицы:

А

Б

В

Г

Д

Е

Ё

Ж

З

И

Й

К

Л

М

Н

О

П

Р

С

Т

У

Ф

Х

Ц

Ч

Ш

Щ

Ь

Ы

Ъ

Э

Ю

Я

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

Задаются ключом кодирования – словом в исходном алфавите, например, АСУ.

Собственно кодирование (второй этап) выполняется следующим образом: выписывают дискретный сигнал, подлежащее кодированию, например, пусть это будет сообщение ИНФОРМАТИКА, и выполняют следующие шаги:

а) под каждым его символом записывают порядковый номер из таблицы соответствия:

И

Н

Ф

О

Р

М

А

Т

И

К

А

9

14

21

15

17

13

0

19

9

11

0

б) под сообщением многократно выписывают ключевое слово:

И

Н

Ф

О

Р

М

А

Т

И

К

А

9

14

21

15

17

13

0

19

9

11

0

А

С

У

А

С

У

А

С

У

А

С

в) под символами ключа выписывают их порядковые номера из таблицы соответствия:

И

Н

Ф

О

Р

М

А

Т

И

К

А

9

14

21

15

17

13

0

19

9

11

0

А

С

У

А

С

У

А

С

У

А

С

0

18

20

0

18

20

0

18

20

0

18

г) порядковые номера символов складываются по модулю, равному числу символов исходного алфавита (в нашем случае – 33):

И

Н

Ф

О

Р

М

А

Т

И

К

А

9

14

21

15

17

13

0

19

9

11

0

А

С

У

А

С

У

А

С

У

А

С

0

18

20

0

18

20

0

18

20

0

18

9

32

8

15

2

0

0

4

29

11

18

Напомним, что сложение по модулю (обозначается ) выполняется без переноса единицы переноса в старший разряд. Так мы получили при сложении по модулю 33, например, чисел 21 и 20 (сумма равна 41, что на 8 превышает модуль 33) значение 8,

д) полученный числовой ряд преобразуется в символы исходного алфавита по таблице соответствия:

И

Н

Ф

О

Р

М

А

Т

И

К

А

9

14

21

15

17

13

0

19

9

11

0

А

С

У

А

С

У

А

С

У

А

С

0

18

20

0

18

20

0

18

20

0

18

9

32

8

15

2

0

0

4

29

11

18

И

Я

З

О

В

А

А

Д

Ъ

К

С

Таким образом, вместо дискретного сигнала ИНФОРМАТИКА имеем сообщение ИЯЗОВААДЪКС.

Очевидно, что статистика не поможет декодировать это сообщение, поскольку повторяются совсем не те символы, что в исходном сообщении.

Для декодирования подобных сообщений требуется таблица соответствия и ключ. Тогда выполняют описанные выше процедуры кодирования в обратном порядке. Сложность может представлять только операция вычитания с учетом модуля. При этом следует помнить, что не должны получаться отрицательные значения. Если такое происходит, нужно занять число, соответствующее модулю.

Пример 2.21. Декодировать сообщение ИЯЗОВААДЪКС, задавшись ключом АСУ и зная таблицу соответствия.

а) выписываем под закодированным сообщением порядковые номера символов из таблицы соответствия:

И

Я

З

О

В

А

А

Д

Ъ

К

С

9

32

8

15

2

0

0

4

29

11

18

б) выписываем под сообщением ключ с порядковыми номерами символов:

И

Я

З

О

В

А

А

Д

Ъ

К

С

9

32

8

15

2

0

0

4

29

11

18

А

С

У

А

С

У

А

С

У

А

С

0

18

20

0

18

20

0

18

20

0

18

в) вычитаем с учетом модуля 33 из чисел в закодированном сообщении числа для ключа:

И

Я

З

О

В

А

А

Д

Ъ

К

С

9

32

8

15

2

0

0

4

29

11

18

А

С

У

А

С

У

А

С

У

А

С

0

18

20

0

18

20

0

18

20

0

18

9

14

21

15

17

13

0

19

9

11

0

г) преобразуем числа в символы по таблице соответствия:

И

Я

З

О

В

А

А

Д

Ъ

К

С

9

32

8

15

2

0

0

4

29

11

18

А

С

У

А

С

У

А

С

У

А

С

0

18

20

0

18

20

0

18

20

0

18

9

14

21

15

17

13

0

19

9

11

0

И

Н

Ф

О

Р

М

А

Т

И

К

А

При декодировании возникла сложность в получении кодов символов Ф, Р, М, Т. В самом деле, при вычитании из 8 числа 20 получалось –12. Тогда к 8 прибавили модуль 33, получили 41 и уже из 41 вычли 20. Получили 21 – порядковый номер символа Ф. Аналогично поступили и с остальными проблемными символами.

Соседние файлы в предмете Информатика