Метод распределения ключей Диффи-Хеллмана
Метод открытого распределения ключей позволяет пользователям обмениваться ключами по незащищенным каналам связи. Его безопасность обусловлена трудностью вычисления дискретных логарифмов в конечном поле, в отличие от легкости решения прямой задачи дискретного возведения в степень в том же конечном поле. Суть метода Диффи-Хеллмана заключается в следующем (рис. 4.26).
Пользователи А и В, участвующие в обмене информацией, генерируют независимо друг от друга свои случайные секретные ключи kA и kB (ключи kA и kB – случайные большие целые числа, которые хранятся пользователями А и В в секрете).
Затем пользователь А вычисляет на основании своего секретного ключа kA открытый ключ
(4.39)
Рис. 4.26. Схема распределения ключей Диффи-Хеллмана
Одновременно пользователь В вычисляет на основании своего секретного ключа kB открытый ключ
(4.40)
где N и g – большие целые простые числа. Арифметические действия выполняются с приведением по модулю N. Числа N и g могут не храниться в секрете. Как правило, эти значения являются общими для всех пользователей сети или системы.
Затем пользователи А и В обмениваются своими открытыми ключами КА и КB по незащищенному каналу и используют их для вычисления общего сессионного ключа К (разделяемого секрета):
·пользователь А: ;
· пользователь B: ;
· при этом , так как .
Таким образом, результатом этих действий оказывается общий сессионный ключ, который является функцией обоих секретных ключей – kA и kB.
Злоумышленник, перехвативший значения открытых ключей КА и КB, не может вычислить сессионный ключ К, потому что он не имеет соответствующих значений секретных ключей kA и kB. Благодаря использованию однонаправленной функции операция вычисления открытого ключа необратима, то есть невозможно по значению открытого ключа абонента вычислить его секретный ключ.
Уникальность метода Диффи-Хеллмана заключается в том, что пара абонентов имеет возможность получить известное только им секретное число, передавая по открытой сети открытые ключи. После этого абоненты могут приступить к защите передаваемой информации уже известным проверенным способом – применяя симметричное шифрование с использованием полученного разделяемого секрета.
Схема Диффи-Хеллмана дает возможность шифровать данные при каждом сеансе связи на новых ключах. Это позволяет не хранить секреты на дискетах или других носителях.
Схема Диффи-Хеллмана позволяет реализовать метод комплексной защиты конфиденциальности и аутентичности передаваемых данных. Эта схема предоставляет пользователям возможность сформировать и использовать одни и те же ключи для выполнения цифровой подписи и симметричного шифрования передаваемых данных.
Метод комплексной защиты конфиденциальности и аутентичности передаваемых данных
Для одновременной защиты целостности и конфиденциальности данных целесообразно применять шифрование и электронную цифровую подпись в комплексе. Промежуточные результаты работы схемы Диффи-Хеллмана могут быть использованы в качестве исходных данных для реализации метода комплексной защиты целостности и конфиденциальности передаваемых данных.
Согласно данному алгоритму пользователи А и В сначала генерируют свои секретные ключи kA и kB и вычисляют свои открытые ключи КА и КB. Затем абоненты А и В используют эти промежуточные результаты для одновременного вычисления общего разделяемого секретного ключа К, который может использоваться для симметричного шифрования данных.
Метод комплексной защиты конфиденциальности и аутентичности передаваемых данных работает по следующей схеме:
· абонент А подписывает сообщение М с помощью своего секретного ключа kA, используя стандартный алгоритм цифровой подписи;
· абонент А вычисляет совместно разделяемый секретный ключ К по алгоритму Диффи-Хеллмана из своего секретного ключа kA и открытого ключа КB абонента В;
· абонент А зашифровывает сообщение М на полученном совместно разделяемом секретном ключе К, используя согласованный с партнером по обмену алгоритм симметричного шифрования;
· абонент В при получении зашифрованного сообщения М вычисляет по алгоритму Диффи-Хеллмана совместно разделяемый секретный ключ К из своего секретного ключа kB и открытого ключа КА абонента А;
· абонент В расшифровывает полученное сообщение М на ключе К;
· абонент В проверяет подпись расшифрованного сообщения М с помощью открытого ключа абонента КА.
На основе схемы Диффи-Хеллмана функционируют протоколы управления криптоключами SKIP (Simple Key management for Internet Protocols) и IKE (Internet Key Exchange), применяемые при построении защищенных виртуальных сетей VPN на сетевом уровне.