***** Google.Поиск по сайту:


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

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

14.6.2. Алгоритмы Диффи-Хэллмана (вариант Элгемала) и RSA

Для шифрования ключа сеанса PGP предлагает на выбор два алгоритма ключа шифрования общего доступа, RSA и протокол Диффи-Хэллмана (Diffie-Hellman) (вариант Элгемала (Elgamal)). Для алгоритмов RSA и Диффи-Хэллмана допустимый размер ключа составляет от 1024 до 4096 бит. Ключ размером 1024 бит считается безопасным для большинства сеансов обмена информацией. Защищенность алгоритма RSA (см. раздел 14.5.3) основана на сложности разложения на множители больших чисел.

Протокол Диффи-Хэллмана был разработан Вайтфилдом Диффи (Whitefield Diffe), Мартином Е. Хэллманом (Martin E. Hellman) и Ральфом С. Мерклем (Raph С Merkle) в 1976 году [19, 20] для обмена информацией по незащищенному каналу с помощью открытого ключа. Данный протокол основан на сложности задачи нахождения дискретного логарифма для конечных полей [21]. Он предполагает, что вычислить gab, зная только ga и gb, практически невозможно. Патент №4 200 770 (США), срок которого истек в 1997 году, содержит протокол Диффи-Хэллмана и его разновидности, такие как вариант Элгемала. Данный вариант, разработанный Тахером Элгемалом (Taher Elgamal), расширяет протокол Диффи-Хэллмана на шифрование сообщений. В PGP вариант Элгемала алгоритма Диффи-Хэллмана применяется для шифрования ключа сеанса.

14.6.2.1. Описание алгоритма Диффи-Хэллмана, вариант Элгемала

Протокол имеет два системных параметра п и g, которые являются общедоступными. Параметр n — это большое простое число, а параметр g — целое число, меньшее n, которое обладает следующим свойством: для любого числа р, лежащего между 1 и  n -1 включительно, существует степень k числа g, при которой gk = р mod п. Ниже описывается схема шифрования Элгемала     [19, 21], позволяющая пользователю В посылать сообщение пользователю А.

•    Пользователь А случайным образом выбирает большое целое число а (это частный ключ пользователя А).

•    Открытый ключ пользователя А вычисляется следующим образом:      у = ga mod n.

•    Пользователь В желает послать пользователю А сообщение M. Сначала пользователь В генерирует случайное число k, меньшее и.

•    Пользователь В вычисляет следующие величины:

у1 = gk mod n

у2= М (уk mod n) (напомним, что у — это открытый ключ      пользователя А).

•    Пользователь В посылает пользователю А шифрованный текст '(уг, у2).

•  После получения шифрованного текста (у1, у2) пользователь А вычисляет открытое сообщение M.

Пример 14.9. Применение алгоритма Диффи-Хэллмана (вариант Элгемала) для шифрования сообщения

Пусть общедоступными системными параметрами являются n=11 и g = 7. Предположим, что пользователь А в качестве частного ключа выбрал а = 2. Покажите, как вычисляется открытый ключ пользователя А. Покажите также, как пользователь В будет шифровать сообщение M = 13, которое должно быть отправлено пользователю А, и как пользователь А последовательно дешифрует полученный шифрованный текст.

Решение

Открытый ключ пользователя А (у = ga mod n) вычисляется следующим образом: у = 72mod 11 =5. Пользователь 5 желает послать пользователю А сообщение М= 13. В данном примере пусть пользователь В в качестве случайного значения k (меньшего п = 11) выбирает k = 1. Далее пользователь В вычисляет шифрованную пару.

y1= gkmod n = 71 mod 11 = 7

y2 = M(y k mod n) = 13(51mod 11) = 135 = 65

 Пользователь А получает шифрованный текст (7, 65) и вычисляет сообщение М.




***** Яндекс.Поиск по сайту:



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