![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Система Диффи и Хеллмана реализует протокол открытого распределения ключей [2]. Для вычисления ключа системы Диффи и Хеллмана противнику надо уметь решать задачу логарифмирования в конечных полях, а она сложная.
Атака на протокол Диффи-Хеллмана методом «человек в середине». Алиса и Боб хотят договориться об общем секретном ключе, обмениваясь несекретной информацией. Они выбирают конечное поле и примитивный элемент
. Алиса и Боб договариваются о способе представления элементов поля
. Проще всего это делается в случае поля вычетов по простому модулю.
Следует отметить, что при этом информация, передаваемая по открытому каналу связи, должна быть подписана участниками протокола. Исходные данные для реализации протокола, то есть поле и образующий элемент g, могут предоставляться каким – либо центром сертификации ключей (ЦСК). Эта информация также должна быть подписана с помощью секретного ключа ЦСК. То есть в любом случае предполагается, что Алиса и Боб абоненты сети связи, в которой реализована какая – либо система электронной цифровой подписи. Пусть это будет протокол Диффи – Хеллмана.
1) Алиса выбирает случайное число s, , вычисляет
и передает S Бобу.
2) Боб выбирает случайное число t, , вычисляет
и передает T Алисе.
3) Получив T, Алиса вычисляет .
4) Получив S, Боб вычисляет .
Нетрудно видеть, что . Значит, описанный протокол действительно решает задачу выработки общего ключа посредством обмена несекретной информацией.
Задача противника заключается в эффективном вычислении по известным значениям
и
. Это составляет проблему Диффи – Хеллмана. Для решения проблемы достаточно уметь эффективно вычислять дискретные логарифмы в мультипликативной группе поля
. Вопрос о верности обратного утверждения является в настоящее время открытым. Однако, в некоторых частных случаях он сравнительно легко решается.
Предположим теперь, что Алиса и Боб не подписывают сообщения, которыми они обмениваются по протоколу Диффи – Хеллмана. Рассмотрим вскрытие протокола методом «человек в середине». Условно метод можно изобразить на рисунке
Алиса Противник Боб
![]() | ![]() |
После реализации протокола есть общий секретный ключ Алисы и Противника, а
есть общий секретный ключ Противника и Боба. Пусть Алиса передает Бобу шифртекст, полученный на ключе К1. Противник перехватывает шифртекст, расшифровывает его с помощью ключа К1, зашифровывает полученный открытый текст на ключе К2 и передает Бобу. Таким образом, Противник читает секретную переписку Алисы и Боба. Этот метод несложно реализовать там, где в канале связи происходят задержки с передачей сообщений от одного абонента к другому.
Возможности противника в протоколе связи абонентов с использованием RSA. Рассмотрим протокол связи абонентов сети А , А
, …, А
с использованием RSA. Пусть у каждого абонента есть справочник, в котором находятся все открытые ключи всех абонентов е
, е
, …, е
. Соответственно, d
, d
, …, d
-секретные ключи абонентов.. Абонент А
хочет послать зашифрованное сообщение абоненту А
. Пусть х – это открытый текст. Тогда А
вычисляет c = x
(modn).
Затем
c
А
А
,
что означает, что абонент Аi посылает сообщение с абоненту Аj.
Получив сообщение с абонент А вычисляет х = с
(modn).
То, что описано выше – это протокол секретной связи в сети. Данный протокол определяется следующими элементами.
1. Участники протокола – абоненты А и А
;
2. Язык протокола – (множество понимаемых участниками слов) – блок длины £ log n или последовательность блоков (сообщение = слова);
3. Порядок обмена сообщениями. Любой обмен это трехэтапная процедура:
· формирование сообщения у абонента А (в нашем случае – это формирование сообщения с);
· передача сообщения абоненту А ;
· формирование исходных данных для следующего шага протокола или завершения протокола (в нашем случае – это формирование х).
Криптопротокол в отличие от обычного протокола характеризуется наличием у некоторых участников секретов, то есть информации, которая известна одному или группе участников и не должна попасть к не участникам группы (информация может быть измерена информационным потоком или возможностью за приемлемое время вычислить секрет или часть его).
В протоколе связи два секрета: d – секрет А
и х – секрет для А
и А
.
Протокол может быть частью другого протокола. Например, рассмотренный ранее протокол секретной связи:
c = x (modn).
c
А
А
,
х = с (modn) является частью следующего протокола.
Предполагаем расширение числа участников протокола («пассивный» перехват) за счет добавления участника Е, который из канала связи получает сообщение c = x (modn), переданное А
.
c
А
А
с
Е
х = с (modn).
Так как мы не знаем действий Е, то с получением с его участие в протоколе завершено.
Возможно активное изменение протокола, то есть имеется еще один (активный) участник М:
c с’
А
М А
Если М играет роль транслятора или Е, то функция протокола выполняется, иначе выполняется другой протокол вместо исходного.
В нашем случае цель модификации протокола – компрометация секрета, то есть получение хотя бы частичной информации о секрете не членами группы.
Пример. Пусть протокол связи включает множество протоколов связи абонентов. Пусть в сети имеется один модуль n. Тогда возможен случай, когда
c = x
(modn)
А
А
c = x
(modn)
А А
Пусть Е перехватывает все сообщения, и предположим, что x для c и c
одно и то же. Поскольку Е знает e
и e
, он может вычислить НОД(e
, e
). Если НОД(e
, e
)= 1, то в указанных предположениях он может провести компрометацию протокола секретной связи. Так по обобщенному алгоритму Евклида существуют r и s, что re
+se
=1. Если r <0, то Е считает (c
)
, тогда (c
)
c
= m
(modn) = x.
Каким образом Е находит одинаковые x по c и c
это другая проблема.
Протокол атаки «человек по середине». Существуют универсальные атаки. Пусть справочника открытых ключей RSA в сети нет. Протокол связи выглядит следующим образом:
e
А
А
c
А А
Модифицированный протокол, компрометирующий исходный протокол, носит название «человек по середине».
e e
’
А
М А
c’ c
А
М А
Здесь М передает А свой открытый ключ e
’ вместо полученного от А
ключа e
. Тогда
c’ = x (modn),
c = x (modn).
Защита от атаки «человек по середине». А и А
обмениваются ключами и договариваются о передачи части сообщения. При этом оставшуюся часть посылают только после получения подтверждения о получении первой части сообщения. Такой способ защиты не всегда защищает секрет, но иногда позволяет выявить наличие «человека по середине». А именно, А
вычисляет c
=x
(modn)
А
А
А вычисляет c
= у
(modn).
А
А
Получив сообщения, каждая сторона посылает второй стороне вторые половины сообщений. Если все верно, то сообщения читаются. Если М по середине перехватил ,
, то не может их расшифровать, а для передачи других половинок надо послать что-то абонентам. М вынужден выдумывать, что заведомо создает новый разговор, чем прежде.
Иногда указанный метод не защищает. Пусть А и А
создают ключ k для сеанса по правилу k = k
+ k
. Тогда послав друг другу
/2
А
А
/2
А
А
по половинке ключа, они попадут к противнику и М, сочинив свои половинки, создает свои ключи k’ и k».
Атака на протокол Фиата-Шамира. Напомним сначала этот протокол.Пусть , где
- простые числа. Пара
, где s принадлежит мультипликативной группе
кольца вычетов
есть секретный ключ А, а пара
, где
и
, есть открытый ключ для А. Открытый ключ А хранится в памяти компьютера. А является законным пользователем компьютера и хочет получить к нему доступ. Следующие шаги повторяются
раз.
1) А генерирует случайный секретный вычет , вычисляет
и передает
на компьютер,
2) компьютер генерирует случайный бит и передает
объекту А,
3) А вычисляет и передает
компьютеру,
4) компьютер проверяет сравнение
Если все сравнений из п.4) выполнены, то А получает доступ.
Заметим, что если противнику известен вычет , то он легко выдает себя за А. Однако для того, чтобы найти
, требуется извлечь квадратный корень из
по составному модулю
. Эта задача, как известно, эквивалентна по сложности факторизации числа
.
Кроме того, если вычет становится известным противнику, то с вероятностью
, т.е. при
, из сравнения
он может вычислить секретный ключ
.
Противник может попытаться выдать себя за А, не зная . Он может действовать так:
1) выбирает случайный бит , случайный вычет
, вычисляет
и передает
на компьютер,
2) после того, как получает случайный бит от компьютера, противник сравнивает
. Если имеет место равенство, то передает ранее вычисленное значение
на компьютер. Если
, то прекращает попытку выдать себя за А.
Очевидно, вероятность успеха таких попыток за итераций равна
, т.к. в силу того, что
,
тогда и только тогда, когда
.
Протокол Фиата-Шамира есть пример протокола с нулевым раскрытием. Смысл этого понятия заключается в следующем. Рассмотрим запись протокола Фиата-Шамира. Это тройки чисел такие, что
, а
и
выбираются случайно и независимо. Противник может получить сколько угодно таких троек самостоятельно без участия А, исходя лишь из знания открытого ключа
объекта А. Действительно, противник может выбрать случайно и независимо
,
и вычислить тройку
. Таким образом, запись этого протокола не предоставляет противнику никакой новой информации о секретном ключе
.
Атака на протокол распределения ключей TMN. Рассмотрим менее примитивный пример атаки на протокол распределения ключей TMN (Tatebayashi-Matsuzakai-Newman) [1]. Пусть имеется мобильная сеть. Любая мобильная информация ограничена по вычислительным возможностям и по криптографии. Есть сервер с хорошими вычислительными возможностями и криптографией. Предположим, что сервер безопасен при хранении и использовании своего ключа (а не всех в сети). Любой терминал имеет алгоритм шифрования (DES) и систему с открытым ключом типа RSA: n=pq, c= x (modn). Сервер знает p и q и, следовательно, быстро вычисляет
(modn). Пусть абоненты А и В хотят обменяться ключом k для DES, используя сервер S, которому доверяют. Протокол выглядит следующим образом.
Протокол 1.
1. А вычисляет случайное число r длиной 64 бит и вычисляет
c = (r
)
(modn).
c
А S
2. S вычисляет r зная p и q и S генерирует g
g
S B
3. В вычисляет сеансовый ключ для DES r . В вычисляет c
= (r
)
(modn).
c
B S
4. S вычисляет r . S вычисляет E(r
, r
) = r
Å r
.
E(r , r
)
S А
5. А вычисляет E(r , r
) Å r
= r
- ключ сеанса.
Компрометация протокола. Е подслушивает все, что ему надо. Д – сообщник Е, Д и Е легальные пользователи сети. Цель Е – узнать секрет r (а затем открытый текст). Опираясь на свои возможности, Д и Е дополняют протокол 1.
1. Е подслушивает c = (r
)
(modn), когда
c
B S
2. Е выбирает случайное число r (64 бит). Вычисляет r (modn). Вычисляет
c = (r
)
r
(modn) =(r
r)
(modn)
c
E S
с просьбой организовать связь с Д.
3. S вычисляет (modn) = r
r(modn) и
вызов
S D
4.Д вычисляет c = (r
)
(modn).
c
D S
5. S вычисляет r . S вычисляет (r
+ r
r)(modn)= c
c
S E
6. Так как Е и Д в сговоре, то Е знает r . Тогда Е вычисляет r
из уравнения
(r + r
r)(modn)= c
.
Именно r = (c
-r
)r
(modn).
Дата публикования: 2015-02-22; Прочитано: 380 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!