Интернет магазин китайских планшетных компьютеров



Компьютеры - Алгоритм Диффи Хеллмана - Описание алгоритма

23 января 2011


Оглавление:
1. Алгоритм Диффи Хеллмана
2. Описание алгоритма
3. Пример
4. Шифрование с открытым ключом



Предположим, что обоим абонентам известны некоторые два числа g и p, которые не являются секретными и могут быть известны также другим заинтересованным лицам. Для того, чтобы создать неизвестный более никому секретный ключ, оба абонента генерируют большие случайные числа: первый абонент — число a, второй абонент — число b. Затем первый абонент вычисляет значение A = gmod p и пересылает его второму, а второй вычисляет B = gmod p и передаёт первому. Предполагается, что злоумышленник может получить оба этих значения, но не модифицировать их. На втором этапе, первый абонент на основе имеющегося у него a и полученного по сети B вычисляет значение Bmod p = gmod p, а второй абонент на основе имеющегося у него b и полученного по сети A вычисляет значение Amod p = gmod p. Как нетрудно видеть, у обоих абонентов получилось одно и то же число: K = gmod p. Его они и могут использовать в качестве секретного ключа, поскольку здесь злоумышленник встретится с практически неразрешимой проблемой вычисления gmod p по перехваченным gmod p и gmod p, если числа p,a,b выбраны достаточно большими.

Алгоритм Диффи — Хеллмана, где K — итоговый общий секретный ключ

При работе алгоритма, каждая сторона:

  1. генерирует случайное натуральное число a — закрытый ключ
  2. совместно с удалённой стороной устанавливает открытые параметры p и g, где
    p является случайным простым числом
    g является первообразным корнем по модулю p
  3. вычисляет открытый ключ A, используя преобразование над закрытым ключом
    A = g mod p
  4. обменивается открытыми ключами с удалённой стороной
  5. вычисляет общий секретный ключ K, используя открытый ключ удаленной стороны B и свой закрытый ключ a
    K = B mod p
    К получается равным с обеих сторон, потому что:
    B mod p = mod p = g mod p = mod p = A mod p

В практических реализациях, для a и b используются числа порядка 10 и p порядка 10. Число g не обязано быть большим и обычно имеет значение в пределах первого десятка.



Просмотров: 7161


<<< Алгоритм COS
Алгоритм Полига Хеллмана >>>