Каталог

ПРОТОКОЛ ОТКРЫТОГО РАСПРЕДЕЛЕНИЯ КЛЮЧЕЙ ДИФФИ-ХЕЛЛМАНА Протокол DHKD
Протокол распределения ключей Протокол открытого распределения ключей

 

Постановка задачи

Пусть A (Alice) и B (Bob) - пользователи открытой сети связи. A и B хотят получить общий секретный ключ, используя открытый канал связи, для шифрования дальнейшего обмена с помощью алгоритмов симметричного шифрования.

Описание протокола

Общий вход: $ q$ - простое число, $ alpha$ - примитивный элемент поля $ GF(q)$.

1) Каждый пользователь $ i$ генерирует независимое случайное число $ X_i$, выбранное равномерно из множества целых чисел $ lbrace 0, 1, ..., q-1 
brace$, и держит его в секрете.

2) Каждый пользователь $ i$ вычисляет значение $ Y_i = alpha^{X_i} pmod q$ и записывает его в общедоступном файле со свом именем и адресом.

3) Пользователь $ A$ получает из общедоступного файла значение $ Y_B$ и вычисляет$ {Y_B}^{X_A} pmod q = ({alpha^{X_B}})^{X_A} pmod q = alpha^{X_{B}X_{A}} pmod q$.

4) Пользователь $ B$ получает из общедоступного файла значение $ Y_A$ и вычисляет$ {Y_A}^{X_B} pmod q = ({alpha^{X_A}})^{X_B} pmod q = alpha^{X_{A}X_{B}} pmod q = alpha^{X_{B}X_{A}} pmod q$.

5) Пользователи $ A$ и $ B$ могут использовать значение$ K = alpha^{X_{A}X_{B}} pmod q = alpha^{X_{B}X_{A}} pmod q$ в качестве секретного ключа для шифрования дальнейшего обмена с помощью алгоритмов симметричного шифрования.

Замечание. Другой пользователь для получения значения $ K$ должен по известным значениям $ Y_A$ и $ Y_B$ вычислить $ {Y_A}^{log_{alpha} {Y_B}} pmod q$ или $ {Y_B}^{log_{alpha} {Y_A}} pmod q$. При достаточно больших $ q$$ X_A$ и $ X_B$ вычисление дискретного логарифма $ log_{alpha} {Y_A} pmod q$или $ log_{alpha} {Y_B} pmod q$ является вычислительно-сложной задачей.

 

Основные сведения

 

Ссылки
  1. W. Diffie and M. E. Hellman, New Directions in Cryptography, IEEE Transactions on Information Theory, vol. IT-22, Nov. 1976, pp: 644–654.