Протоколы с криптосистемой DH

Исторически криптосистема DH является первой криптосистемой с открытыми ключами (КСОК), основанной на экспоненциальной однонаправленной функции. Сначала эта криптосистема использовалась как схема распределения ключей для классической симметричной криптосистемы с секретными общими ключами [ 2 ]. Предварительно все пользователи сети связи получают от сервера S по достоверному каналу системные константы (Р, clip_image002), где простое число Р и основание степени clip_image002[1] выбираются надлежащим образом.

3.1. Протокол ключевого обмена DH

Пользователи А и В формируют секретный ключ парной связи Kab с помощью следующего протокола (Рис.1)

– Пользователь А от датчика случайных чисел (ДСЧ) генерирует случайное число Xa, вычисляет clip_image005и посылает его В.

– Пользователь В от своего датчика генерирует случайное число Xb, вычисляетclip_image007 и посылает его А.

– Пользователь А, получив число Yb от В, вычисляетclip_image009.

– Пользователь В, получив число Ya от А, вычисляетclip_image011.

clip_image013

Рис.1

Числа Xa, Xb стираются. Поскольку clip_image015 , то Kab = Kba .

Для краткости вместо словесного описания обычно применяется формальная запись, в которой двоеточие означает перечисление совершаемых пользователем действий, стрелка означает генерацию, извлечение или запись информации по внутренним цепям (каналам) пользователя, двойная стрелка означает передачу по внешнему открытому каналу, тройная стрелка – передачу по внешнему защищенному каналу связи, например, передачу по шифрованному каналу секретных данных для пользователя от сервера S. В данном случае формальная запись протокола выглядит следующим образом:

А : ДСЧ (А) clip_image017 Xa; clip_image019; [A ║ B ║ Ya] clip_image021 B

В : ДСЧ (В) clip_image017[1] Xb; clip_image023clip_image017[2]КЗУ(В); clip_image025;

[B║A║Yb] clip_image021[1] A,

А : clip_image027

Здесь: ║ – знак присоединения, [ … ] – сформированное сообщение, КЗУ – ключевое запоминающее устройство.

Предполагается, что канал без ошибок и без воздействий противника (Е).

Атака 1. Еb – противник Е, играющий роль пользователя В, перехватывает сообщение от А к В и формирует ключ парной связи Kea=Kae, причем А считает, что это ключ связи с В (Рис.2):

clip_image028А : ДСЧ (А) clip_image017[3] Xa; clip_image030; [A ║ B ║ Ya] clip_image032Ebclip_image034B

Eb : ДСЧ (E) clip_image017[4] Xе; clip_image036clip_image017[5]КЗУ(E); clip_image038;

[B║A║Ye] clip_image021[2] A

А : clip_image040

clip_image042

Рис.2

Атака 2. Еа, Еb – противник Е, играющий роли пользователей А и В, перехватывает сообщения от А и В, формирует ключи Kae и Keb парной связи с А и В путем ведения двух параллельных протоколов. В результате пользователи А и В считают, что они имеют конфиденциальную связь на ключе Kab; в действительности они установили шифрованную связь с перешифрованием у противника Е. (Рис.3).

clip_image044

Рис.3

А : ДСЧ (А) clip_image017[6] Xa; clip_image030[1]; [A ║ B ║ Ya] clip_image021[3]Eb

Eb : ДСЧ (E) clip_image017[7] Xе; clip_image047clip_image017[8]КЗУ(E); clip_image038[1];

[BAYe] clip_image021[4] A

Ea : [ABYe] clip_image021[5] B ,

А : clip_image050

В : ДСЧ (В) clip_image017[9] Xbclip_image052clip_image017[10]КЗУ(В); clip_image054; [B║A║Yb] clip_image021[6] Ea,

Ea : clip_image056

3.2. Протокол аутентифицированного ключевого обмена DH [ 3 ]

После получения системных констант clip_image058 от сервера S пользователи А,В,С, … генерируют от ДСЧ секретные ключи Ха, Хb, Xc, … , вычисляют открытые ключи clip_image060; clip_image062; clip_image064; … и помещают их в защищенный от модификаций общедоступный справочник {Ya, Yb, Yc, …}. (Рис.4).

clip_image066

Рис.4

Формальная запись протокола:

В : ДСЧ (В) clip_image017[11] tb ; clip_image068; [BAZ] clip_image021[7] A

A : ДСЧ (A) clip_image017[12] ta ; clip_image070;

clip_image072; clip_image074;

clip_image076[ABUV] clip_image021[8]канал [clip_image078clip_image080clip_image082clip_image084] clip_image021[9]B

В: clip_image078[1]=A(?); clip_image080[1]=B(?);clip_image087; clip_image089

Здесь знак “~” означает возможность искажения каналом или модификации противником, знак “ ­ ” означает возведение в степень , clip_image091 – обратный к tb по mod (p-1), знак (?) после равенства означает, что проверяется выполнение равенства: при невыполнении протокол разрывается, при выполнении осуществляется переход к следующей операции.

В результате ключ clip_image093 при clip_image095clip_image097 U отличается от Kab , если выполняется проверка аутентичности clip_image076[1]clip_image099. Отсюда следует

Атака 1. Противник Еа, играющий роль пользователя А, подменяет в канале сообщение [ABUV]  на [ABclip_image082[1]clip_image084[1]] с условием clip_image101. В результате пользователь В формирует ложный ключ clip_image093[1]clip_image097[1]Kab .

Атака 2. Противник Еb, играющий роль В, посылает А число clip_image104, на что тот по протоколу отвечает числами (U, V), где clip_image106 В результате противник Е устанавливает с А ключ парной связи Kae, переданный по открытому каналу связи, причем А считает, что это ключ для связи с В.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100