Основные современные криптографические методы защиты электронной документации. Методы кодирования и шифрования в криптографии, страница 20

                                                                                                                        (1-7-5-8-2-4-3-6)

 


                                                                                                           Запись открытого текста

(1-2-3-4-5-6-7-8) 

Рис. 13

Гамильтонов путь на графе

Открытый текст: «ШИФРОВАНИЕ ПЕРЕСТАНОВКОЙ».

Ключ – гамильтонов путь на графе.

Шифртекст: «ШАОНИРФВИЕЕСЕП_РТОВЙАОНК».

(Маршрутов может быть много.)   

8.2. АЛГОРИТМЫ ВИЖИНЕРА И БОФОРА

Наибольшее распространение при таком шифровании получили алгоритмы Вижинера и Бофора. Математическую основу этих алгоритмов составляют операции сложения и вычитания по модулю.

Суммой двух чисел a и b по модулю n называется число, равное:

если

Разностью двух чисел a и b по модулю n называется число, равное:

если

Формула алгоритма Вижинера следующая:

, где  - код i-й буквы открытого текста,  - код i-й буквы зашифрованного текста,  - код i-й буквы ключа, в качестве которого используется некоторое слово или фраза,      n – число символов алфавита.

Расшифрование по методу Вижинера осуществляется с помощью выражения: 

.

Для шифрования по методу Вижинера необходимо выписать исходное сообщение,  под ним записать буквы ключа  (если ключ короче  сообщения,  то он повторяется столько раз, сколько нужно) и   выполнить операции.

Пример 1. Зашифровать слово ПРОГРАММА кодом Вижинера.

Ключевое слово – МЕТОД.

Выпишем исходное сообщение и ключ:

П  Р  О  Г  Р  А  М  М  А

М  Е  Т  О  Д  М  Е  Т  О

Составим ту же таблицу в кодах букв алфавита:

16  17  15   4   17   1  13  13   1

13   6   19  15    5  13   6  19  15

Выполним необходимые математические операции:

y= (16+13) mod33 = 16 + 13 = 29 Ь

y= (17+6) mod33 = 17 + 6 = 23 Ц

y= (15+19) mod33 = 15 + 19 - 33 = 1 А

y= (4+15) mod33 = 4 + 15 = 19 Т

y= (17+5) mod33 = 17 + 5 = 22 Х

y= (1+13) mod33 = 1 + 13 = 14 Н

y= (13+6) mod33 = 13 + 6 = 19 Т

y= (13+19) mod33 = 13 + 19 = 32 Я

y= (1+15) mod33 = 1 + 15 = 16 П

Составим таблицу:

П

Р

О

Г

Р

А

М

М

А

М

Е

Т

О

Д

М

Е

Т

О

29

23

34

19

22

14

19

32

19

Ь

Ц

А

Т

Х

Н

Т

Я

П

Таким образом, зашифрованный текст:  ЬЦАТХНТЯП.

Пример 2. В результате шифрования кодом Вижинера по ключевому слову КНИГА получился текст ПЦЪОПНЬН. Расшифровать этот текст.

Выпишем зашифрованное сообщение и ключ:

П  Ц  Ъ  О  П  Н  Ь  Н

К  Н   И  Г  А  К  Н  И

Составим ту же таблицу в кодах букв алфавита:

16  23  27  15  16  14  29  14 

11  14    9    4    1  11  14    9    

Выполним необходимые математические операции:

x= (16-11) mod33 = 16 - 11 = 5  Д

x= (23 - 14) mod33 = 23 – 14 = 9  И

x= (29 - 9) mod33 = 27 – 9 = 18  С

x= (15 - 4) mod33 = 15 – 4 = 11  К

x= (16 - 1) mod33 = 16 – 1 = 15  О

x6  = (14 - 11) mod33 = 1 4 – 11 = 3  В

x= (29 - 14) mod33 = 29 – 14 = 15  О

x= (14 - 9) mod33 = 14 – 9  = 5  Д

Составим таблицу:

П

Ц

Ъ

О

П

Н

Ь

Н

К

Н

И

Г

А

К

Н

И

5

9

18

11

15

3

15

5

Д

И

С

К

О

В

О

Д

Исходное слово - ДИСКОВОД.

Алгоритм Бофора использует для шифрования следующую формулу:

, где ,  и  имеют тот же смысл что и в алгоритме Вижинера.

Расшифровка по алгоритму Бофора осуществляется по формуле: