Протоколы распределения ключей в криптографических системах реферат

Обновлено: 02.07.2024

1.2. Протоколы электронной цифровой подписи (ЭЦП).

1.3. Протоколы идентификации / аутентификации.

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

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

Если в протоколе идентификации используется ЭЦП, то роль секретной информации играет секретный ключ ЭЦП, а проверка ЭЦП осуществляется с помощью открытого ключа ЭЦП, знание которого не позволяет определить соответствующий секретный ключ, но позволяет убедиться в том, что он известен автору ЭЦП.

1.4. Протоколы аутентифицированного распределения ключей.

Протоколы этого класса совмещают аутентификацию пользователей с протоколом генерации и распределения ключей по каналу связи. Протокол имеет двух или трех участников; третьим участником является центр генерации и распределения ключей (ЦГРК), называемый для краткости сервером S.

Протокол состоит из трех этапов, имеющих названия: генерация, регистрация и коммуникация.

На этапе генерации сервер S генерирует числовые значения параметров системы, в том числе, свой секретный и открытый ключ.

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

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

Введение 3
1. Понятие криптографического протокола, функции и задачи 4
2. Классификация криптографических протоколов 6
3. Разновидности атак на протоколы и требования, предъявляемые к безопасности протокола 11
Библиографический список 14

Содержимое работы - 1 файл

криптографич_протоколы1.doc

Введение

Математическая криптография возникла как наука о шифровании информации, т.е. как наука о криптосистемах. Математическая теория криптографических протоколов развивается совместными усилиями ученых различных стран. Среди авторов работ, посвященных протоколам, встречаются имена математиков США и Израиля, Канады и Голландии, Италии и Японии, Франции и Германии, Дании и Венгрии.

За последнее десятилетие криптографические протоколы превратились в основной объект исследований в теоретической криптографии. Например, на крупнейших ежегодных международных криптографических конференциях Crypto и EUROCRYPT большая часть докладов посвящена именно протоколам.

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

Таким образом, цель данной работы – изучить некоторые типами криптографических протоколов и обрисовать круг математических задач, возникающих при исследовании их стойкости.

  1. Понятие криптографического протокола, функции и задачи

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

Протоколы имеют и другие отличительные черты:

  • каждый участник протокола должен быть заранее оповещен о шагах, которые ему предстоит предпринять;
  • все участники протокола должны следовать его правилам добровольно. без принуждения;
  • необходимо, чтобы протокол допускал только однозначное толкование, а его шаги были совершенно четко определены и не допускали возможности их неправильного понимания;
  • протокол должен содержать описание реакции его участников на любые ситуации, возникающие в ходе реализации этого протокола — иными словами, недопустимым является положение, когда для возникшей ситуации протоколом не определено соответствующее действие.

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

Также в криптографии присутствует понятие неотслеживаемости, которое является ее третьей задачей.

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

Криптографические протоколы – сравнительно молодая отрасль математической криптографии. Первые протоколы появились около 20 лет назад. С тех пор эта отрасль бурно развивалась, и на настоящий момент имеется уже не менее двух десятков различных типов криптографических протоколов. Все эти типы можно условно разделить на две группы:

Функции криптографических протоколов:

    1. Аутентификация источника данных;
    2. Аутентификация сторон;
    3. Конфиденциальность данных;
    4. Невозможность отказа;
    5. Невозможность отказа с доказательством получения;
    6. Невозможность отказа с доказательством источника;
    7. Целостность данных;
    8. Обеспечение целостности соединения без восстановления;
    9. Обеспечение целостности соединения с восстановлением;
    10. Разграничение доступа.

Задачи, выполняемые при использовании криптографических протоколов:

  • Обеспечение различных режимов аутентификации;
  • Генерация, распределение и согласование криптографических ключей;
  • Защита взаимодействий участников;
  • Разделение ответственности между участниками.
  1. Классификация криптографических протоколов

Существующие криптографические протоколы можно классифицировать следующим образом:

  1. Протоколы электронной цифровой подписи (ЭЦП)

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

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

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

Если в протоколе идентификации используется ЭЦП, то роль секретной информации играет секретный ключ ЭЦП, а проверка ЭЦП осуществляется с помощью открытого ключа ЭЦП, знание которого не позволяет определить соответствующий секретный ключ, но позволяет убедиться в том, что он известен автору ЭЦП.

  1. Протоколы аутентифицированного распределения ключей

Протоколы этого класса совмещают аутентификацию пользователей с протоколом генерации и распределения ключей по каналу связи. Протокол имеет двух или трех участников; третьим участником является центр генерации и распределения ключей (ЦГРК), называемый для краткости сервером S. Протокол состоит из трех этапов, имеющих названия: генерация, регистрация и коммуникация. На этапе генерации сервер S генерирует числовые значения параметров системы, в том числе, свой секретный и открытый ключ. На этапе регистрации сервер S идентифицирует пользователей по документам (при личной явке или через уполномоченных лиц), для каждого объекта генерирует ключевую и/или идентификационную информацию и формирует маркер безопасности, содержащий необходимые системные константы и открытый ключ сервера S (при необходимости). На этапе коммуникации реализуется собственно протокол аутентифицированного ключевого обмена, который завершается формированием общего сеансового ключа.

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


Варианты сетей без выделенного доверенного центра и с выделенным доверенным центром T

Симметричные протоколы

К симметричным будем относить протоколы, которые используют примитивы только классической криптографии на секретных ключах. К таким относятся уже известные блочные шифры, криптографически стойкие генераторы псевдослучайных чисел (КСГПСЧ) и хэш-функции.

При рассмотрении протоколов будем использовать следующие обозначения.

  • Alice, Bob — легальные абоненты сети, для которых формируется общий сеансовый ключ. Алиса является инициатором.
  • Trent — доверенный центр сети.
  • , — некоторые идентификаторы легальных абонентов Алисы и Боба соответственно.
  • , — результат шифрования некоторого блока данных с использованием секретных ключей легальных абонентов сети Алисы и Боба соответственно. Такое шифрование могу осуществить либо сами легальные абоненты, либо доверенный центр, которому известны все секретные ключи.
  • , , — случайные числа, генерируемые Алисой, Бобом и Трентом соответственно.
  • , , — метки времени, генерируемые Алисой, Бобом и Трентом соответственно.
  • — секретный сеансовый ключ, получение которого и является одной из целью протоколов.

Протокол Wide-Mouth Frog

Протокол Wide-Mouth Frog является, возможно, самым простым протоколом с доверенным центром. Его автором считается Майкл Бэрроуз (1989 год, англ. Michael Burrows). Протокол состоит из следующих шагов.

    Алиса генерирует новый сеансовый ключ и отправляет его вместе с меткой времени, идентификатором Боба и своим незашифрованным идентификатором доверенному центру:


Схема взаимодействия абонентов и довереного центра в протоколе Wide-Mouth Frog

По окончании протокола у Алисы и Боба есть общий сеансовый ключ .

У данного протокола множество недостатков.

  • Генератором ключа является инициирующий абонент. Если предположить, что Боб — это сервер, предоставляющий некоторый сервис, а Алиса — это тонкий клиент, запрашивающий данный сервис, получается, что задача генерации надёжного сессионного ключа взваливается на плечи абонента с наименьшими мощностями.
  • В протоколе общение с вызываемым абонентом происходит через доверенный центр. Как следствие, второй абонент может стать мишенью для DDOS-атаки с отражением (англ. distributed denial-of-service attack), когда злоумышленник будет посылать пакеты на доверенный центр, а тот формировать новые пакеты и посылать их абоненту. Если абонент подключён к нескольким сетям (с несколькими доверенными центрами), это позволит злоумышленнику вывести абонента из строя. Хотя защититься от подобной атаки достаточно просто, настроив соответствующим образом доверенный центр.

В 1995 году Рос Андерсон и Роджер Нидхем (англ. Ross Anderson, Roger Needham) предложили вариант атаки на протокол, при котором злоумышленник (Ева) может бесконечно продлевать срок действия конкретного сеансового ключа. Идея атаки в том, что после окончания протокола злоумышленник будет посылать доверенному центру назад его же пакеты, дополняя их идентификаторами якобы инициирующего абонента.

  1. Повторять шаги 3 и 5, пока не пройдёт время, нужное для расшифровки .

С точки зрения доверенного центра шаги 1, 3 и 5 являются корректными пакетами, инициирующие общение абонентов между собой. Метки времени в них корректны (если Ева будет успевать вовремя эти пакеты посылать). С точки зрения легальных абонентов каждый из пакетов является приглашением другого абонента начать общение. В результате произойдёт две вещи:

  • Каждый из абонентов будет уверен, что закончился протокол создания нового сеансового ключа, что второй абонент успешно аутентифицировал себя перед доверенным центром. И что для установления следующего сеанса связи будет использоваться новый (на самом деле — старый) ключ .
  • После того, как пройдёт время, нужное злоумышленнику Еве для взлома сеансового ключа , Ева сможет и читать всю переписку, проходящую между абонентами, и успешно выдавать себя за обоих из абонентов.


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

Протокол Нидхема—Шрёдера

Протокол Нидхема—Шрёдера (англ. Roger Needham, Michael Shroeder, 1979 год) похож на модифицированный протокол Wide-Mouth Frog, но отличается тем, что доверенный центр (Трент) во время работы основной части протокола не общается со вторым абонентом. Первый абонент получает от доверенного центра специальный пакет, который он без всякой модификации отправляет второму абоненту.


Схема взаимодействия абонентов и довереного центра в протоколе Нидхема—Шрёдера


Протокол обеспечивает и двустороннюю аутентификацию сторон, и, казалось бы, защиту от атак с повторной передачей (англ. replay attack). Последнее делается с помощью введения уже известных по модифицированному протоколу Wide-Mouth From случайных меток и . Действительно, без знания ключа злоумышленник не сможет выдать себя за Алису перед Бобом (так как не сможет расшифровать пакет с зашифрованной меткой ). Однако, как мы договорились ранее во введении к этой главе, сам сессионный ключ не может считаться надёжным длительное время. Если злоумышленник сумеет в какой-то момент времени получить ранее использованный сессионный ключ , он сможет убедить Боба, что он является Алисой, и что это новый сессионный ключ. Для этого ему понадобится переданный ранее по открытому каналу пакет из пункта 3 протокола.

Как и в протоколе Нидхема—Шрёдера, инициирующий абонент (Алиса) общается только с выделенным доверенным центром, получая от него два пакета с зашифрованным сессионным ключом — один для себя, а второй — для вызываемого абонента (Боба). Однако в отличие от Нидхема—Шрёдера в рассматриваемом протоколе зашифрованные пакеты содержат также метку времени и срок действия сессионного ключа (от англ. lifetime — срок жизни). Что позволяет, во-первых, защититься от рассмотренной в предыдущем разделе атаки повтором. А, во-вторых, позволяет доверенному центру в некотором смысле управлять абонентами, заставляя их получать новые сессионные ключи по истечению заранее заданного времени .



Обратите внимание, что третий шаг, за счёт использования метки времени от доверенного центра вместо случайной метки от Боба позволяет сократить протокол на один шаг по сравнению с протоколом Нидхема—Шрёдера. Также наличие метки времени делает ненужным и предварительную генерацию случайной метки Алисой и её передачу на первом шаге.

(далее идёт рассмотрение протоколов с использованием асимметричного шифрования)

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.



Мовсковский Институт Радиотехники, Электроники и АвтоМатики

(технический университет).

Курсовая работа

На тему:
“ТИПИЧНЫЕ ДЕФЕКТЫ В КРИПТОГРАФИЧЕСКИХ ПРОТОКОЛАХ”.
Группа: ВИ-1-96

Студент: Матюшенков А.В.

Руководитель: Зязин В. П.
Москва 200 0 год.

Введение.

В настоящий момент известно более тридцати криптографических протоколов, которые предположительно считались безопасными. Часть из них носит имена своих авторов, другая часть рекомендована международными стандартами МККТТ и ISO, третья - входит в национальные стандарты различных стран. Однако стандарты быстро устаревают, а в протоколах обнаруживаются дефекты разной степени тяжести, начиная от недостатков типа необоснованной сложности протокола и до катастрофических недостатков, делающих протокол крайне опасным. Здесь рассматриваются лишь несколько наиболее ярких примеров криптографических протоколов с дефектами и атаками, использующими эти дефекты.

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

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

Классификация криптографических протоколов

Протоколы идентификации / аутентификации: в основе протокола идентификации содержится некоторый алгоритм проверки того факта, что идентифицируемый объект (пользователь, устройство, процесс, . ), предъявивший некоторое имя (идентификатор), знает секретную информацию, известную только заявленному объекту, причем метод проверки является, конечно, косвенным, т.е. без предъявления этой секретной информации.

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

Если в протоколе идентификации используется ЭЦП, то роль секретной информации играет секретный ключ ЭЦП, а проверка ЭЦП осуществляется с помощью открытого ключа ЭЦП, знание которого не позволяет определить соответствующий секретный ключ, но позволяет убедиться в том, что он известен автору ЭЦП.

Протоколы аутентифицированного распределения ключей: протоколы этого класса совмещают аутентификацию пользователей с протоколом генерации и распределения ключей по каналу связи. Протокол имеет двух или трех участников; третьим участником является центр генерации и распределения ключей (ЦГРК), называемый для краткости сервером S.

Протокол состоит из трех этапов, имеющих названия: генерация, регистрация и коммуникация.

На этапе генерации сервер S генерирует числовые значения параметров системы, в том числе, свой секретный и открытый ключ.

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

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

Дефекты в криптографических протоколах

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

- протоколы с криптосистемой DH (Диффи, Хэллман);

- протоколы с криптосистемой RSA (Райвест, Шамир, Адлеман);

- протоколы с коммутативным шифрованием (Шамир);

- протоколы аутентифицированного распределения ключей;

- протоколы, основанные на тождествах.

Протоколы с криптосистемой DH (Диффи, Хэллман)


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

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

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

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

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

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

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

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

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

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

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

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

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

В : ДСЧ (В) tb ; ; [B
║ A
║ Z] A

[A
║ B
║ U
║ V] канал [
║ ║ ║ ] B

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

В результате ключ при U отличается от Kab , если выполняется проверка аутентичности . Отсюда следует :

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

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


Предварительно все пользователи А, В, С, . сети связи генерируют личные модули na, nb, nc, . каждый из которых имеет структуру: n=pq произведения двух простых чисел p и q (na=paqa; nb=pbqb; nc=pcqc; . ), выбранных надлежащим образом [ 2 ]. Затем каждый пользователь соответствующим образом выбирает пару чисел (e, d), удовлетворяющих условию , где Далее числа (n, e) в качестве открытого ключа отправляются по достоверному каналу в общедоступный справочник. Числа (p, q, , d) пользователи сохраняют в секрете.

Протокол шифрования и цифровой подписи по RSA

Данный протокол рекомендован МККТТ, рекомендация Х.509. Дефект протокола состоит в неправильном порядке операции шифрования и подписывания: правильно сначала подписать, затем шифровать. В формальной записи протокола применяются следующие обозначения:

Предполагается, что nb

Замечание: если na=nb, то операции шифрования и подписывания становятся перестановочными, так что снятие ЭЦП становится возможным при любом порядке этих операций.

Протокол шифрования по RSA на общем модуле

Протоколы с коммутативным алгоритмом шифрования

Коммутативный алгоритм шифрования привлекателен тем, что пользователям не нужно устанавливать общий ключ парной связи, а достаточно генерировать личные секретные ключи. Идея конфиденциальной связи без предварительной договоренности о ключе шифрования наиболее ярко демонстрируется примером Шамира (Рис.6).

Трехшаговый протокол шифрования Шамира

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

A: ДСЧ (А) х; М х В

В: ДСЧ (В) y; (М х) y A

A: (М х y) x = M y B

Трехшаговый протокол с коммутативным шифрованием

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

Ведущий А протокола применяет сначала операцию шифрования на ключе Ка, затем операцию расшифрования с ключом ;

Ведомый B применяет сначала операцию расшифрования с ключом К , затем операцию шифрования с ключом Кb. Предполагается, что для всякого М и К имеет место: К -1 >=K>.

Атака 1. Рефлексия

Атака 2. (Параллельный протокол)

Атака рефлексии и с параллельным протоколом являются сильным оружием противника, против которого трудно предложить простую защиту. Возможны также атаки с несколькими параллельными протоколами, в которых противник Е может играть одновременно несколько ролей: например, Ea, Eb и Es - роль сервера S.

Протоколы аутентифицированного распределения ключей

Протокол передачи ключа с квитированием

В данном протоколе используется криптосистема RSA (типа RSA) для передачи по каналу ключей парной связи с ЭЦП, шифрованием и квитированием. Алгоритмы шифрования / расшифрования пользователей А, В, С обозначаются через (Еа, Da), (Eb, Db), (Ec, Dc), причем все алгоритмы шифрования считаются открытыми, а каждый алгоритм расшифрования является секретом пользователя. Подписывание осуществляется применением алгоритма D, а проверка подписи - применением алгоритма Е. Авторизованный пользователь С играет роль противника. Для упрощения обозначений будем писать EDK вместо E(D(K)).

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

С: [С ║ A ║ Y] A

[A ║ C ║ Z] C

В результате С узнает ключ Kab и формирует с А ключ с отклонением от протокола, чего пользователь А не замечает.

Протокол Нейман - Стаблбайн

Словесное описание протокола:

- Пользователь А передает В свой нонс Na в открытом виде.

- Пользователь В шифрует на ключе Kbs нонс Na, свою отметку времени Тb и посылает серверу S вместе со своим нонсом Nb, который вернется к В от А в шифрованном виде на ключе Kab и будет проверен.

- Пользователь А выделяет соответствующую часть для В и посылает В вместе с Kabb>, для проверки “свежести” полученного ключа Kab (Рис.9).

Протоколы, основанные на тождествах

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

Для примера рассмотрим две модификации протокола односторонней идентификации. Предварительно сервер S выбирает надлежащим образом значения системных параметров (Р, ), генерирует от ДСЧ свой секретный ключ х, вычисляет соответствующий открытый ключ и рассылает всем пользователям постоянные (Р, , y) по достоверному каналу. Далее, для каждого пользователя, например, для А сервер генерирует от ДСЧ случайное секретное число “К”, вычисляет открытый идентификатор r=
a k (mod p), находит секретный идентификатор S=K -1 (A+xr)mod(p-1) и по безопасному каналу передает А его идентификационные данные (A, r, S), например, А получает их в ЦГРК при регистрации вместе с системными константами Р, , y. Заметим, что секретный идентификатор S является функцией неизвестного числа “К”, которое стирается, и секретного ключа х сервера S, а также функцией адреса А и открытого идентификатора “r”.

Двухшаговый протокол односторонней идентификации

В этом протоколе пользователь В, желая идентифицировать А, посылает “вопрос” (случайное число Z) и проверяет правильность “ответа” А (Рис.10).

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

А: ДСЧ(А) t; r t (modp)=u; (S+tz) mod (p-1) = V; [A ║ r ║ u ║ v] B

B: ; A - аутентифицирован.

Рис.10

Заметим, что если какие-то числа А, r, u, v при заданных , y, z удовлетворяют уравнению (*) в обычной арифметике (без mod p), то они удовлетворяют такому же уравнению по любому модулю.

Положим rij= , где i, j, l, m - целые. Тогда уравнение (*) удовлетворяется, если iv= A+lz; jv = rij + mz. Оба уравнения для всякого z дают одинаковые значения v, если пропорциональны их коэффициенты

Отсюда следует, что А должно равняться ; (числа i, j удобно выбрать так, чтобы v было целым). Заметим, что поскольку равенство (*) будет проверяться по mod p, то систему уравнений относительно показателей (v, z) можно решать по mod(p-1), согласно теореме Эйлера. Числа Aij, rij, ulm, в общем случае, имеют разрядность значительно больше, чем разрядность модуля p. Поскольку число Aij участвует в уравнении (*) только в показателе, то вместо него можно использовать (числа v, z уже имеют разрядность ). Число ulm участвует в уравнении (*) только в основании степени, поэтому его можно заменить на . Наконец, число rij участвует в уравнении (*) как в показателе, так и в основании степени, а потому его можно заменить только на т.е. число разрядности 2 .

Атака. Противник Е, играющий роль , перехватывает в канале связи “вопрос” Z и дает “ответ”: ║ ║ ║ B, где число v находит из системы уравнений по mod (p-1). Если В не проверяет разрядность чисел в “ответе”, то у него уравнение (*) удовлетворяется. Если В проверяет наличие значения rij в справочнике открытых идентификаторов, то противник может заранее подобрать целые i, j так, чтобы значение rij в справочнике было.

Трехшаговый протокол односторонней идентификации

В данном протоколе пользователь А, желая идентифицировать себя В, посылает ему свои идентификационные данные А, r и синхроданные сеанса связи “u”. На “вопрос” Z от В он должен дать правильный “ответ” v такой, чтобы удовлетворилось проверочное равенство (*) (Рис.11).

Рис.11

Для авторизованного пользователя это сделать легко, поскольку он знает свой секретный идентификатор (S) и сам генерирует синхроданные (u) специальным образом. Для противника Е, не знающего ни одного секретного идентификатора, это также удалось сделать в протоколе 7.1. , но там “вопрос” Z был известен заранее. В протоколе 7.2. противник должен сначала предъявить какие-то идентификационные данные и только затем получает “вопрос” Z от В, на который он должен дать “правильный ответ”. Формальная запись протокола между А и В:

А: ДСЧ (А) t; r t (mod p) = u; [A
║ r
║ u] B

B: ДСЧ (В) Z; [B
║ Z] A;

A: ; v = (S+tz) mod (p-1); [A
║ v] B

B: ; A идентифицировался у В.

Заключение


Знание отрицательных прецедентов может помочь разработчикам криптографических (и не только криптографических) протоколов избегать типичных ошибок как при анализе, так и при построении криптографических протоколов.

Литература


1. Диффи, Хэллман. ”Новые направления в криптографии”. ТИИЭР, т.67, №3, 1979

Читайте также: