Протокол Жиро

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Протокол Жиро (фр. Marc Girault) — криптографический протокол, позволяющий двум сторонам получить общий секретный ключ, не используя явную сертификацию (схема распределения ключей с доверенным центром). Полученный ключ используется для шифрования дальнейшей обмениваемой информации с помощью симметричного шифрования.

Схема распределения ключей, предложенная Жиро в 1991[1], решает проблему ранних протоколов, основанных на удостоверении личности, в которых стороны выбирают свои секретные ключи заключалась в том, что пользователи используют свои личные данные для формирования новых скрытых сертификатов. Так как верификатор и пользователь могут образовывать противоречивые свидетельства, то не возможно определить, кто из них может быть злоумышленником, когда появляются два сертификата.

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

В схеме Жиро пользователь может сам выбрать свой закрытый ключ. Надёжность схемы Жиро строится на стойкости криптосистемы RSA (сложности факторизации больших чисел и вычисления дискретного корня).

Описание алгоритма[2][править | править код]

Схемы распределения ключей Жиро с доверенным центром состоят из трёх этапов[3]:

1) На первом этапе доверенный центр создаёт некоторый секрет, известный только ему: пара из закрытого и открытого ключей.

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

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

Алгоритм[править | править код]

Пусть два абонента Алиса и Боб обмениваются сообщениями с целью неявно удостоверенного соглашения на публичный ключ. Пусть Трент — доверенный центр.

Подготовительный этап[3][править | править код]

В результате для каждого участника, например, Алисы, которая владеет , , будет выполняться утверждение:

.

Схема Жиро[править | править код]

Протокол генерации сессионного ключа, называемый схемой Жиро, как и другие схемы, состоит из проходов обмена открытой информацией и вычисления ключа[3].

  1. Боб вычисляет
  2. Алиса вычисляет

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

Схема обеспечивает аутентификацию ключа, так как только легальные пользователи смогут вычислить корректное значение общего сессионного ключа[3].

Пример[править | править код]

Предположим , соответственно является модулем RSA для протокола Жиро.

Трент в свою очередь выбирает как пару ключей RSA, и как элемент максимально допустимого порядка мультипликативной группы .

и идентификаторы.

Алиса выбирает и вычисляет .

Боб выбирает и вычисляет .

Потом и высылаются Тренту.

Трент вычисляет:

и высылаются Алисе и Бобу соответственно.

Алиса выбирает , вычисляет и высылает Бобу.

Боб выбирает , вычисляет и высылает Алисе.

Алиса вычисляет

Боб вычисляет

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

Криптографическая стойкость[править | править код]

Защита от атаки подменой[править | править код]

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

Мэллори возьмет и поддельный ключ . Она может легко вычислить .

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

Следовательно, без , формирования ключа не может быть реализовано Мэллори, которая выдаёт себя за Алису. Поэтому, Мэллори не может обмануть Трента, который должен быть уверен, что Алиса знает . Такова причина, почему Алиса должна посылать Тренту. Он может легко высчитать из без знания , но Алиса должна убедить его, что она знает .

Проиллюстрируем ситуацию атаки на схему[4], если бы Трент без разбора выдавал публичный ключ людям, без проверки знают ли они значение , соответствующее их . Предположим Мэллори выбирает поддельное значение и вычисляет соответствующее значение

Здесь она вычисляет соответствующий открытый ключ

Мэллори вычисляет и дает и Тренту.

Трент выдает открытый ключ Мэллори.

Используя факт о том, что , получаем

Через некоторое время, предположим, что Алиса и Боб захотят использовать схему, и Мэллори заменит информацию, пересылаемую от Алисы к Бобу, как показано на рисунке.

Замена

Тогда Боб будет вычислять ключ как

Алиса как

Мэллори может вычислить

Так Мэллори и Боб обменялись ключами, хотя Боб думает, что он обменялся ключами с Алисой. Таким образом Мэллори сможет расшифровать сообщения, пересылаемое Бобом Алисе.

Защита от атаки повтором[4][править | править код]

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

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

Протокол Аунтентификации Жиро[5][3][править | править код]

В протоколе Жиро, есть необходимость в доказательстве того, что участник знает закрытый ключ, при этом не раскрывая его значение. Для этого используется протокол с нулевым разглашением, который связан с протоколом Окамото и Охта.

Протокол аутентификации сторон в общем случае выглядит следующим образом:[3]

  1. Алиса Выбирает случайное и
  2. Боб Выбирает случайное и
  3. Боб вычисляет
  4. Боб проверяет, что

Может быть доказано, что:

  • Алиса будет принята Бобом, с вероятностью почти 100 %
  • Самозванец, который не знает закрытый ключ, будет определён с вероятностью
  • Протокол с трудом раскрывает что-либо о закрытом ключе, что подтверждает нулевое разглашение

Конечно, Боб все ещё может вычислять «ложные» ключи, связанные с Алисой, но существование двух или более действительных открытых ключей само по себе является доказательством нарушения.

Особенности схемы Жиро[6][править | править код]

Самостоятельно удостоверяющиеся открытые ключи в схеме Жиро обладают преимуществом личностной схемы Шамира: они не нуждаются в проверке дополнительного сертификата ключа, выданного его владельцу доверенным посредником. Она выполняется неявно с проверкой криптографических способностей владельца ключа. Однако проверяющая сторона должна знать, кроме идентификатора пользователя, его открытый ключ. При этом возможность определить этот ключ по идентификатору исключена. Таким образом, верификатор должен знать открытый ключ владельца до его использования. В итоге, в протоколе возникает дополнительный этап, который нагружает канал связи.

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

Литература[править | править код]

  • Richard A. Mollin. RSA and Public-Key Cryptography
  • Colin Boyd,Anish Mathuria. Protocols for Authentication and Key Establishment
  • Douglas R. Stinson. Cryptography: Theory and Practice, Third Edition
  • M. Girault. Self-certified public keys
  • Мао В. Современная криптография: Теория и практика / пер. Д. А. КлюшинаМ.: Вильямс, 2005. — 768 с. — ISBN 978-5-8459-0847-6
  • Владимиров С. М. и др. Учебное пособие по защите информации кафедры радиотехники и систем управления МФТИ. — 6 ноября 2021г

Примечания[править | править код]

  1. Colin Boyd,Anish Mathuria. Protocols for Authentication and Key Establishment p. 183
  2. Richard A. Mollin. RSA and Public-Key Cryptography p. 162—163
  3. 1 2 3 4 5 6 Владимиров С.М. и др. Учебное пособие по защите информации кафедры радиотехники и систем управления МФТИ. — 6 ноября 2021 г. — С. 237—240.
  4. 1 2 Douglas R. Stinson. Cryptography: Theory and Practice, Third Edition p. 447—448
  5. M. Girault. Self-certified public keys p. 493—494
  6. Мао, 2005, с. 491—493.