1. Схема Диффи – Хеллмана

We use cookies. Read the Privacy and Cookie Policy

Для начала введем обозначения. Пусть р – заданное простое число, g – заданное натуральное число, g < p. На самом деле g это так называемый первообразный корень числа р. Об этом мы расскажем ниже, в приложении 2 и приложении 3 к главе 6. Цель данного раздела – доказать, что в схеме Диффи – Хеллмана Алиса и Боб действительно получают один и тот же ключ.

Для любых натуральных чисел n и р мы воспользуемся стандартным обозначением для остатка от деления n на р:

n(mod p) = [остаток от деления n на p].

(Читается «n по модулю p».)

Итак, Алиса задумала число х, а Боб число у. Схема Диффи – Хеллмана состоит из двух шагов.

Шаг 1. Алиса передает Бобу

a = (gx) (mod p).

Боб передает Алисе

b = (gy) (mod p).

Шаг 2. Алиса вычисляет ключ

KA = (bx) (mod p).

Боб вычисляет ключ

KB = (ay) (mod p).

Утверждение. Боб и Алиса получили один и тот же ключ K = KA = KB.

Доказательство. Нам нужно доказать, что KA = KB. Поскольку а и b – это остатки от деления на р, то существуют такие целые числа k и l, при которых

a = gx ? kp, b = gy ? lp.

Подставив эти выражения в формулы для ключей, получаем:

KA = (gy ? lp)x (mod p),

KB = (gx ? kp)y (mod p).

Заметим, что в выражении для KA можно расписать (gy ? lp)x следующим образом:

где А – это целое число, то есть рА делится на р. Таким образом получаем

KA = ((gy ? lp)x) (mod p) = ((gy)x + pA) (mod p) = (gy)x (mod p).

Совершенно аналогично для какого-то целого числа B получаем

KB = ((gx ? kp)y) (mod p) = ((gx)y + pB) (mod p) = (gx)y (mod p).

Результат теперь очевиден, поскольку

(gy)x = gyx = gxy = (gx)y.

Больше книг — больше знаний!

Заберите 30% скидку новым пользователям на все книги Литрес с нашим промокодом

ПОЛУЧИТЬ СКИДКУ