Алгоритм открытого распределения ключей Диффи-Хеллмана

 

Алгоритм Диффи-Хеллмана был первым алгоритмом с открытыми ключами (предложен в 1976 г). Его безопасность обу­словлена трудностью вычисления дискретных логарифмов в ко­нечном поле, в отличие от легкости дискретного возведения в сте­пень в том же конечном поле.

Предположим, что два пользователя А и В хотят организо­вать защищенный коммуникационный канал.

1. Обе стороны заранее уславливаются о модуле ( должно быть простым числом, также должно быть простым) и элементе , . Эти числа могут не храниться в секрете. Как правило, эти значения являются общими для всех пользователей системы.

2. Затем пользователи А и В независимо друг от друга выбирают собственные секретные ключи и ( , - слу­чайные большие целые числа, которые хранятся пользователями А и В в секрете).

3. Далее пользователь А вычисляет открытый ключ , а пользователь В - открытый ключ .

4. Затем стороны А и В обмениваются вычисленными значениями открытых ключей и по незащищенному каналу. (Мы считаем, что все данные, передаваемые по незащищенному каналу связи, могут быть перехвачены злоумышленником.)

5. Далее пользователи А и В вычисляют общий секрет­ный ключ:

пользователь А: , пользователь В: . При этом , так как .

Ключ К может использоваться в качестве общего секрет­ного ключа (ключа шифрования ключей) в симметричной крипто­системе.

Алгоритм открытого распределения ключей Диффи-Хеллмана позволяет обойтись без защищенного канала для пере­дачи ключей. Однако, работая с этим алгоритмом, необходимо иметь гарантию того, что пользователь А получил открытый ключ именно от пользователя В, и наоборот. Эта проблема решается с помощью электронной подписи, которой подписываются сообще­ния об открытом ключе.

Метод Диффи-Хеллмана - дает возможность шифровать данные при каждом сеансе связи на новых ключах. Это позволяет не хранить секреты на дискетах или других носителях. Не следует забывать, что любое хранение секретов повышает вероятность попадания их в руки конкурентов или противника.


ЛИТЕРАТУРА