Все о геологии :: на главную страницу! Геовикипедия 
wiki.web.ru 
Поиск  
  Rambler's Top100 Service
 Главная страница  Конференции: Календарь / Материалы  Каталог ссылок    Словарь       Форумы        В помощь студенту     Последние поступления
   Геология | Курсы лекций
 Обсудить в форуме  Добавить новое сообщение
Вперед Вверх Назад Содержание Предметный указатель
Вперед: 6.2.1.2 Протоколы выработки сеансовых ключей Вверх: 6.2.1 Протоколы типа Диффи - Хеллмана Назад: 6.2.1 Протоколы типа Диффи - Хеллмана   Содержание   Предметный указатель


6.2.1.1 Оригинальный протокол Диффи -- Хеллмана

Исторически первый и наиболее известный протокол распределения ключей был предложен Диффи и Хеллманом в 1976 г. [DH]. Пусть обоим участникам A и B известны некоторое большое простое число $ p$ и некоторый порождающий $ g$ группы $ \mathbb{Z}_p*$ (хорошо известно, что мультипликативная группа произвольного конечного поля циклическая). Параметры $ p$ и $ g$ могут быть выбраны, например, центром доверия. В роли параметра безопасности здесь выступает длина $ p$, а в роли пространства ключей -- группа $ \mathbb{Z}_p*$. Протокол заключается в следующем:     1. A выбирает $ x_{\mathchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}\in_{\mbox{\tiny\rm R}}\{0,1,\ldots,p-2\}$, вычисляет $ y_{\mathchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}=g...
...athchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}}\bmod p$ и посылает его B, сохраняя $ x_{\mathchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}$ в секрете.

    2. B выбирает $ x_{\mathchoice{\mbox{\rm B}}{\mbox{\rm B}}{\mbox{\tiny B}}{\mbox{\SMALL B}}}\in_{\mbox{\tiny\rm R}}\{0,1,\ldots,p-2\}$, вычисляет $ y_{\mathchoice{\mbox{\rm B}}{\mbox{\rm B}}{\mbox{\tiny B}}{\mbox{\SMALL B}}}=g...
...athchoice{\mbox{\rm B}}{\mbox{\rm B}}{\mbox{\tiny B}}{\mbox{\SMALL B}}}}\bmod p$ и посылает его A, сохраняя $ x_{\mathchoice{\mbox{\rm B}}{\mbox{\rm B}}{\mbox{\tiny B}}{\mbox{\SMALL B}}}$ в секрете.

    3. A вычисляет $ k_{\mathchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}=y...
...athchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}}\bmod p$.

    4. B вычисляет $ k_{\mathchoice{\mbox{\rm B}}{\mbox{\rm B}}{\mbox{\tiny B}}{\mbox{\SMALL B}}}=y...
...athchoice{\mbox{\rm B}}{\mbox{\rm B}}{\mbox{\tiny B}}{\mbox{\SMALL B}}}}\bmod p$. Ясно, что $ k_{\mathchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}=k_{\mathchoice{\mbox{\rm B}}{\mbox{\rm B}}{\mbox{\tiny B}}{\mbox{\SMALL B}}}$, так как $ k_{\mathchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}=g...
...athchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}}\bmod p$ и $ k_{\mathchoice{\mbox{\rm B}}{\mbox{\rm B}}{\mbox{\tiny B}}{\mbox{\SMALL B}}}=g...
...athchoice{\mbox{\rm B}}{\mbox{\rm B}}{\mbox{\tiny B}}{\mbox{\SMALL B}}}}\bmod p$. Поэтому $ k=k_{\mathchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}=k_{\mathchoice{\mbox{\rm B}}{\mbox{\rm B}}{\mbox{\tiny B}}{\mbox{\SMALL B}}}$ является искомым общим секретным ключом.

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

Решение обозначенной проблемы заключается в том, что протокол распределения ключей рассматривается как составная часть более общего протокола, обеспечивающего в том или ином виде аутентификацию участников. Известны два метода; оба основаны на наличии в сети связи центра доверия. Первый из них для протокола Диффи -- Хеллмана заключается в том, что шаги 1 и 2 не выполняются при каждом сеансе выполнения протокола, а заменяются следующей процедурой. При регистрации в центре доверия каждый абонент (скажем, A) выбирает $ x_{\mathchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}\in_{\mbox{\tiny\rm R}}\{0,1,\ldots,p-2\}$ (называемый секретным ключом A), вычисляет $ y_{\mathchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}=g...
...athchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}}\bmod p$ (открытый ключ A) и сообщает его центру доверия, сохраняя $ x_{\mathchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}$ в секрете. После этого центр доверия помещает $ y_{\mathchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}$ вместе с идентификатором A в некоторый сертифицированный справочник, доступный всем абонентам сети для чтения, но недоступный для записи. Теперь, если абоненты A и B желают выработать общий секретный ключ, они берут из этого справочника соответственно $ y_{\mathchoice{\mbox{\rm B}}{\mbox{\rm B}}{\mbox{\tiny B}}{\mbox{\SMALL B}}}$ и $ y_{\mathchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}$ и выполняют соответственно шаги 3 и 4 вышеуказанного протокола. Этот метод не позволяет противнику активно вмешиваться в выполнение протокола, но затрудняет обновление секретных ключей в случае их компрометации или разглашения общих секретных ключей, выработанных на прошлых сеансах выполнения протокола. Эта проблема может быть решена с помощью протоколов выработки сеансовых ключей, которые рассматриваются в следующем пункте. Второй метод аутентификации абонентов (основанный на идентификационной информации) будет рассмотрен ниже в п. 6.2.1.3.

Существует предположение, что для противника, знающего $ p$, $ g$, $ y_{\mathchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}$ и $ y_{\mathchoice{\mbox{\rm B}}{\mbox{\rm B}}{\mbox{\tiny B}}{\mbox{\SMALL B}}}$, единственная возможность вычислить $ k$ заключается в вычислении некоторого $ z$ такого, что $ g^z\equiv y_{\mathchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}\mkern5mu({\rm mod}\,\,p)$ или $ g^z\equiv y_{\mathchoice{\mbox{\rm B}}{\mbox{\rm B}}{\mbox{\tiny B}}{\mbox{\SMALL B}}}\mkern5mu({\rm mod}\,\,p)$ (т. е. дискретном логарифмировании $ y_{\mathchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}$ или $ y_{\mathchoice{\mbox{\rm B}}{\mbox{\rm B}}{\mbox{\tiny B}}{\mbox{\SMALL B}}}$ по основанию $ g$) и последующем возведении соответственно $ y_{\mathchoice{\mbox{\rm B}}{\mbox{\rm B}}{\mbox{\tiny B}}{\mbox{\SMALL B}}}$ или $ y_{\mathchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}$ в степень $ z$ по модулю $ p$. Однако стойкость вышеуказанного протокола в предположении сложности дискретного логарифмирования доказана лишь при некоторых дополнительных условиях (см. [Boer], [Mau]). Очевидно, что это предположение необходимо для стойкости данного протокола, так как если противник умеет вычислять дискретные логарифмы, то он сможет найти $ k$ по $ p$, $ g$, $ y_{\mathchoice{\mbox{\rm A}}{\mbox{\rm A}}{\mbox{\tiny A}}{\mbox{\SMALL A}}}$ и $ y_{\mathchoice{\mbox{\rm B}}{\mbox{\rm B}}{\mbox{\tiny B}}{\mbox{\SMALL B}}}$.


Вперед Вверх Назад Содержание Предметный указатель
Вперед: 6.2.1.2 Протоколы выработки сеансовых ключей Вверх: 6.2.1 Протоколы типа Диффи - Хеллмана Назад: 6.2.1 Протоколы типа Диффи - Хеллмана   Содержание   Предметный указатель


Проект осуществляется при поддержке:
Геологического факультета МГУ,
РФФИ
   

TopList Rambler's Top100