Лекции по Теоретическим основам цифровой связи   

14. Шифрование и дешифрование

14.6.3. Шифрование сообщения в системе PGP

Алгоритмы с частным ключом, применяемые PGP для шифрования сообщения, были представлены в разделе 14.6.1. Алгоритмы с открытым ключом, используемые PGP для шифрования ключа частного сеанса, были представлены в разделе 14.6.2. Чтобы проиллюстрировать технологию шифрования PGP, изображенную на рис. 14.20, рассмотрим следующий пример, объединяющий алгоритмы двух типов.

Пример 14.10. Использование алгоритмов RSA и IDEA для шифрования в PGP

Для шифрования ключа сеанса используем алгоритм RSA с открытым ключом с параметрами из раздела 14.5.3.1: п= pq = 2773, ключ шифрования      е = 17, а ключ дешифрования d= 157. Ключом шифрования является открытый ключ получателя, а ключом дешифрования — частный ключ получателя. Используем ключ сеанса К0 = 0008 0007 0006 0005 0004 0003 0002 0001 и шифрованный текст 30F9 78ВЗ Е223 Е2216, представляющий сообщение "HI", из примера 14.8 (все величины представлены в шестнадцатеричной записи). (Отметим, что шифрованный текст был создан с использованием только одного цикла алгоритма IDEA. В реальной системе производится 8 циклов плюс выходное преобразование.) Зашифруйте ключ сеанса и покажите, какое сообщение должно передаваться.

Решение

Следуя описанию, приведенному в разделе 14.5.3.1, ключ сеанса будет шифроваться с помощью алгоритма RSA с открытым ключом получателя 17. Для удобства вычисления при помощи простого калькулятора преобразуем сначала ключ сеанса в группы, составленные из величин в десятичной записи. Согласно требованиям алгоритма RSA, значения, приписанные каждой группе, не должны превышать п-1 = 2772. Следовательно, выразим 128-битовый ключ в терминах 4-разрядных групп, где самая старшая (самая левая) группа будет представлять 7 бит и 11 групп будут представлять 11 бит каждая. Преобразование чисел из шестнадцатеричных в десятеричные можно рассматривать как двухэтапный процесс: (1) преобразование в двоичную систему и (2) переход к основанию 10. В результате получаем К0 = 0000 0032 0000 1792 0048 0001 0512 0064 0001 1024 0064 0001. Напомним, из уравнения (14.32) следует, что С = (М)' по модулю п, где М — одна из 4-разрядных групп К0. Левые крайние четыре группы шифруются следующим образом.

                                     С12 = (0000)17mod 2773 = 0.

С11 = (0032)17mod 2773 = 2227.

                                      С10 = (0000)17mod 2773 = 0.

С9 = (1792)17mod 2773 = 2704.

Эффективным способом модульного возведения в степень является использование алгоритма "Возведение в квадрат и умножение" (Square-and-Multiply — SM). Этот алгоритм [21] сводит число необходимых модульных умножений с е-1 почти до 2l, где l - число бит в двоичном представлении. Покажем использование алгоритма SM, шифруя одну из десятичных групп ключа сеанса (одиннадцатую группу справа М11 = 0032), где п = 2773 и е = 17. Для применения этого алгоритма сначала запишем число е в его двоичном представлении (1710 = 100012).                   

Вычисления даны в табл. 14.13. Используется математика по модулю n, в этом примере п = 2773. Второй столбец содержит двоичный код, где старший бит находится в строке 1. Каждая двоичная величина в этом столбце используется для контроля результата в столбце 3. Начальное значение, расположенное в столбце 3, строка 0, всегда равно 1. Далее результат в каждой строке столбца 3 зависит от бита в соответствующей строке столбца 2. Если этот бит равен "1", то результат предыдущей строки возводится в квадрат и умножается на открытый текст (для этого примера — 32). Если строка во втором столбце содержит "0", то значение соответствующей строки в столбце 3 равно квадрату значения в предыдущей строке. Окончательным значением является зашифрованный текст = 2227). Повторение этого метода для каждой из двенадцати десятичных групп, составляющих К0, дает шифрованный текст ключа сеанса: С = 0000 2227 0000 2704 0753 0001 1278 0272 0001 1405 0272 0001. Этот ключ сеанса (здесь он представлен в десятичной форме), зашифрованный с помощью алгоритма RSA, вместе с зашифрованным с помощью IDEA сообщением вида 30F9 78ВЗ Е223 Е221 (здесь оно представлено в шестнадцатеричной форме) может теперь передаваться через незащищенный канал.

Таблица 14.13. Алгоритм SM с открытым текстом = 32

Номер строки

Двоичное представление е (первым идет старший разряд)

Модульное умножение (модуль 2773)

0

1

2

3

4

5

1

0

0

0

1

1

1232= 32

322 = 1024

10242 = 328

3282 = 1728

1728232 = 2227



*****
© Банк лекций Siblec.ru
Формальные, технические, естественные, общественные, гуманитарные, и другие науки.