Система шифрования Диффи-Хеллмана

Данный алгоритм[8] также является алгоритмом секретного обмена между абонентами ключом. Он основан на трудности вычисления дискретного логарифма.

Рассмотрим простейшую схему создания общего ключа двумя абонентами.

Абоненты выбирают большое простое число и – первообразный корень по модулю . Получается пара , которая объявляется открытой.

Абонент выбирает случайное большое секретное число и посылает абоненту : .

Абонент выбирает случайное большое секретное число и посылает абоненту : .

Абонент вычисляет ключ: .

Абонент вычисляет ключ: .

Проверим, одинаковый ли у абонентов ключ:

Далее полученным ключом можно работать в симметричной криптосистемой.

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

 

Пример

.

В примере пункта 4.2.3.4 мы выяснили, что первообразные корни по модулю : 3 и 5. Возьмем, например . – открыта.

Абонент сгенерировал случайное число , и вычислив , послал абоненту .

Абонент сгенерировал случайное число , и вычислив , послал абоненту .

Абонент принял и вычислил ключ: .

Абонент принял и вычислил ключ: .●