Алгоритм Диффи-Хеллмана

Диффи и Хелман предложили для создания криптографических систем с открытым ключом функцию дискретного возведения в степень. Ниже приведено описание этого алгоритма.

1. До начала сеанса связи у обоих пользователей должно быть известно обшее простое число P и общая мантисса D<(P-1)

2. Каждый из пользователей (1-й и 2-й) выбирает по произвольному целому числу 1< X1 <(P -1) и 1< X2 <(P -1)

3. Каждый пользователь на основе своего X вычисляет и

4. Пользователи обмениваются между собой по открытому каналу значениями Y1 и Y2

5. Каждый пользователь вычисляет сеансовый ключ шифрования для симметричного алгоритма так:

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

Если Y =D x ,, 1< x < p -1, где - фиксированный элемент поля GF(p), то X =lo g DY над GF(P). Имея X, легко вычислить Y. Для этого потребуется 2 ln(X + Y) операций умножения.

Обратная задача вычисления X из Y будет достаточно сложной, поскольку выполняется переборным поиском. Если P выбрано достаточно правильно, то извлечение логарифма потребует вычислений, пропорциональных

L(p) = exp { (ln p ln ln p)0.5 }

Не зная X 1 и X 2, злоумышленник может попытаться вычислить K 12, зная только перехваченные Y 1 и Y 2. Эквивалентность этой проблемы проблеме вычисления дискретного логарифма есть главный и открытый вопрос в системах с открытым ключом. Простого решения до настоящего времени не найдено. Так, если для прямого преобразования 1000-битных простых чисел требуется 2000 операций, то для обратного преобразования (вычисления логарифма в поле Галуа) - потребуется около 1030 операций.

Как видно, при всей простоте алгоритма Диффи-Хелмана, вторым его недостатком по сравнению с системой RSA является отсутствие гарантированной нижней оценки трудоемкости раскрытия ключа.

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

В качестве обобщения сказанного о распределении ключей следует сказать следующее. Задача управления ключами сводится к поиску такого протокола распределения ключей, который обеспечивал бы:

* возможность отказа от центра распределения ключей;

* взаимное подтверждение подлинности участников сеанса;

* подтверждение достоверности сеанса механизмом запроса-ответа, использование для этого программных или аппаратных средств;

* использование при обмене ключами минимального числа сообщений.


Приложения


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: