Простой протокол экспоненциального распределения ключей

From CryptoWiki
Jump to: navigation, search

Простой протокол экспоненциального распределения ключей также известный под аббревиатурой SPEKE (Simple Password Exponential Key Exchange) это криптографический протокол распределения ключей, основанный на паролях. Это семейство протоколов было впервые описано D. Jablon в 1997 году. С тех пор в 2001 появились B-SPEKE и его модификация, обладающая большим быстродействием [1] W-SPEKE.

Contents

Постановка задачи защиты передаваемой информации

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

Описание протокола обобщенного протокола SPEKE

Протокол представляет из себя улучшенный протокол Диффи-Хеллмана, в котором генератор g создается из хэша пароля.

Здесь приведена обобщенная форма протокола семейства SPEKE:

  1. Алиса и Боб договариваются о достаточно большом и случайно выбраном простом числе p и хэш-функции H;
  2. Алиса и Боб договариваются об общем пароле π;
  3. Алиса и Боб вычисляют g = H(π)2 mod p. (Возведение в квадрат преобразует генератор g по простому модулю полугруппы к мультипликативной группе целых

чисел по модулю p);

  1. Алиса выбирает секретное случайное число a, и отправляет Бобу ga mod p;
  2. Боб выбирает секретное случайное число b, и отправляет Алисе gb mod p;
  3. И Алиса и Боб прерывают выполнение протокола, если полученные значения не принадлежат отрезку [2,p-2] для предотвращения атаки на ограниченную малость полулугруппы.
  4. Алиса вычисляет K = (gb mod p)a mod p.
  5. Боб вычисляет K = (ga mod p)b mod p.

Основные решаемые задачи защиты информации

Как видно из приведенного протокола, и Алиса и Боб приходят к одинаковому значению K только в том случае, если они использованли одинаковое значение π. Как только Алиса и Боб вычисляют разделяемый секрет K они могут использовать протокол подтверждения владения ключом для того, чтобы доказать друг другу, что они использовали для формирования ключа одинаковый пароль π они вычисляют разделяемый ключ шифрования для безопасного обмена аутентичными сообщениями между собой. Использование протокола подтверждения владения ключом является опциональным, так как при его наличии протокол распределения ключей, основанный на паролях трансформируется в более безопасную версию протокола установления сеанса связи, основанного на паролях, широко известного под аббревиатурой PACE(Password Authenticated Connection Estblishment) в англоязычной литературе.

В отличие от неаутентифицирующего стороны протокла Диффи-Хеллмана, SPEKE предотвращает атаку типа "человек посередине" путем введения пароля. Атакующий, способный читать и модифицировать все сообщения, передаваемые в обе стороны между Алисой и Бобом не может узнать распределенный ключ K и не может производить более одного угадывания пароля в каждую итерацию протокола со стороной, которая знает пароль.

В общем случае SPEKE может использопать порядок группы простых чисел, который подходит для криптографии с открытым ключом, включая эллиптическую криптографию. Однако, когда SPEKE был реализован на примитивах эллиптической криптографии, потребовалось отдельное добавление протокола Map2Point, котороый может отличаться от протокола к протоколу. Map2Point позволяет безопасно отобразить пароль π в случайную точку на используемой эллиптической кривой. Существует стандартизированный вид Map2Point под названием IOP(Integer-to-Point), который описан в IEEE P1363.2 и ISO/IEC 11770-4.

Основные криптографические протоколы

Как упоминалось выше, существуют 3 основных протокола экспоненциального распределения ключей: SPEKE, обобщенная форма которого уже была разобрана, B-SPEKE и W-SPEKE. Криптографическая стойкость протоколов основана на проблеме дискретного логарифмирования. Предлполагается, что равно W-SPEKE и B-SPEKE работают поверх клиент-сервеной модели взаимодействия - только в этом случае достигается преимущество перед другими протоколами(SRP, EKE)

B-SPEKE

По сравнению с представленным ниже W-SPEKE имееет меньшую производительность, однако, может быть выбран для применения по причине наличия совместимости со стандартами IEEE 1363[2] и ANSI DH. Также отличием протокола B-SPEKE от протокола W-SPEKE является отсутствие переменной u в организации протокола(можно видеть разницу на шаге 6). Не введенные обозначения предполагаются к самостоятельному нахождению в стандарте ГОСТ 34.10-2012 [3] B-SPEKE.png

W-SPEKE

Как уже упоминалось в предыдущих частях статьи, протокол W-SPEKE является более производительной модификацией протокола B-SPEKE. Отличие заключается в использовании оптимизированного преобразования, заимствованного из протокола протокола безопасного распределения ключей SRP(Secure Remote Password). Далее представлена пошаговая иллюстрация работы протокола W-SPEKE и введены необходимые обозначения. Не введенные обозначения предполагаются к самостоятельному нахождению в стандарте ГОСТ 34.10-2012 [4] W-SPEKE.png

Смотрите также

Внешние ссылки

Гoлoвчeнko А., 2015