Научная статья на тему 'О БЕЗОПАСНОСТИ ПРОТОКОЛА SESPAKE'

О БЕЗОПАСНОСТИ ПРОТОКОЛА SESPAKE Текст научной статьи по специальности «Математика»

CC BY
484
105
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
МОДЕЛИ И МЕТОДЫ ЗАЩИТЫ ИНФОРМАЦИИ / КРИПТОГРАФИЧЕСКИЕ ПРОТОКОЛЫ / MODELS AND METHODS IN INFORMATION SECURITY / CRYPTOGRAPHIC PROTOCOLS

Аннотация научной статьи по математике, автор научной работы — Алексеев Евгений Константинович, Смышляев Станислав Витальевич

Протокол SESPAKE описан в Рекомендациях по стандартизации Р 50.1.115-2016 «Информационная технология. Криптографическая защита информации. Протокол выработки общего ключа с аутентификацией на основе пароля». В настоящей работе приводятся результаты криптографического анализа данного протокола в релевантных моделях противника. Вводится новая модель противника с угрозой ложной аутентификации, являющаяся расширением базовой модели, применяемой для протоколов с внутренней диверсификацией ключей. Стойкость протокола оценивается в двух моделях: в модели на основе задачи отличения и в расширенной.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ON SECURITY OF THE SESPAKE PROTOCOL

The Security Evaluated Standardized Password Authenticated Key Exchange (SESPAKE) protocol is standardized in Russia as R 50.1.115-2016. The current paper provides analysis of the protocol in relevant adversary models. We define new indistinguishability-based adversary model with a threat of false authentication that is an extension of the original indistinguishability-based model up to the case of protocols with authentication step without key diversification. We prove the protocol security in two adversary models with a classic threat of distinguishing a generated session key from a random string and with a threat of false authentication.

Текст научной работы на тему «О БЕЗОПАСНОСТИ ПРОТОКОЛА SESPAKE»

ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА 2020 Математические методы криптографии №50

МАТЕМАТИЧЕСКИЕ МЕТОДЫ КРИПТОГРАФИИ

УДК 519.7

О БЕЗОПАСНОСТИ ПРОТОКОЛА SESPAKE

Е. К. Алексеев, С. В. Смышляев ООО «КРИПТО-ПРО», г. Москва, Россия

Протокол SESPAKE описан в Рекомендациях по стандартизации Р 50.1.115-2016 «Информационная технология. Криптографическая защита информации. Протокол выработки общего ключа с аутентификацией на основе пароля». В настоящей работе приводятся результаты криптографического анализа данного протокола в релевантных моделях противника. Вводится новая модель противника с угрозой ложной аутентификации, являющаяся расширением базовой модели, применяемой для протоколов с внутренней диверсификацией ключей. Стойкость протокола оценивается в двух моделях: в модели на основе задачи отличения и в расширенной.

Ключевые слова: модели и методы защиты информации, криптографические протоколы.

DOI 10.17223/20710410/50/1

ON SECURITY OF THE SESPAKE PROTOCOL

E. K. Alekseev, S. V. Smyshlyaev CryptoPro, Moscow, Russia E-mail: alekseev@cryptopro.ru, svs@cryptopro.ru

The Security Evaluated Standardized Password Authenticated Key Exchange (SESPAKE) protocol is standardized in Russia as R 50.1.115-2016. The current paper provides analysis of the protocol in relevant adversary models. We define new indistinguishability-based adversary model with a threat of false authentication that is an extension of the original indistinguishability-based model up to the case of protocols with authentication step without key diversification. We prove the protocol security in two adversary models with a classic threat of distinguishing a generated session key from a random string and with a threat of false authentication.

Keywords: models and methods in information security, cryptographic protocols.

Введение

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

достаточную для подбора пароля «off-line», то есть без взаимодействия с легитимными участниками. Являясь по сути протоколами выработки общего ключа с аутентификацией на основе пароля, протоколы такого типа часто объединяют под общим названием «PAKE» — «Password Authenticated Key Exchange».

Первый протокол, получивший название EKE, предложен S. Bellovin и M. Merritt в 1992 г. [1]. На сегодняшний день существует множество протоколов данного типа (см., например, [2-6]). В 1993г. M. Bellare и P. Rogaway в работе [7] предложили модель на основе неотличимости для оценки стойкости протоколов аутентифицированной выработки общего ключа. Эта модель была расширена в [8] для анализа PAKE-протоколов (обычно её называют BPR-моделью). Она позволила получить оценки стойкости для некоторых протоколов данного типа [9].

Структурно протоколы типа AKE (и PAKE в частности) обязательно содержат этап выработки ключа и опционально — этап его подтверждения. Нижние оценки стойкости получены как для протоколов без этапа подтверждения [9], так и для ряда протоколов, содержащих этот этап [4]. В обоих случаях доказывается стойкость относительно угрозы отличения выработанного общего ключа от случайной строки. Однако не для всех протоколов, содержащих этап подтверждения ключа, удаётся корректно определить такую угрозу. В случаях, когда на этапе подтверждения доказывается владение непосредственно выработанным ключом, у противника естественным образом появляется критерий, позволяющий проверить, является ли целевая строка случайной. На это явно указывают J. Bender, M. Fischlin и D. Kugler в [10] (п. «The final authentication step» в разделе с описанием протокола PACE), такая же проблема возникает при оценке стойкости протокола TLS 1.2 (см. аннотацию работы [11]). В работах, в которых получены оценки стойкости для протоколов с подтверждением ключа, проблема корректного определения угрозы отличения решается на уровне строения протокола путём введения дополнительного «ветвления» полученных ключей. Это означает, что ключ для этапа подтверждения производится из общего секрета одним необратимым образом, а основной ключ производится из этого же секрета другим необратимым образом.

В настоящей работе исследуется протокол SESPAKE аутентифицированной выработки общего ключа на основе пароля, содержащий этап подтверждения ключа. При этом на этапе подтверждения используется непосредственно сам выработанный в процессе взаимодействия сторон секрет (то есть отсутствует упомянутое ранее «ветвление»). Этап выработки ключа является модификацией протокола, предложенного в [9], этап подтверждения ключа является оригинальным. Для данного протокола предложена модель на основе неотличимости с угрозой ложной аутентификации, которая формализуется с помощью задачи отличения настоящей аутентификационной информации от случайной. Доказательство оценки стойкости протокола SESPAKE в этой модели делится на три этапа, первый из которых существенно основывается на идеях, представленных в работе [9]. Второй и третий этапы являются оригинальными. На втором и третьем этапах доказательства использованы приёмы, которые могут помочь при анализе и обосновании стойкости других протоколов типа PAKE. Насколько известно авторам, представленный протокол является первым протоколом без ветвления ключей на этапе подтверждения, для которого предложена модель и в этой модели получена оценка стойкости.

Обзор уязвимостей протоколов данного семейства, а также принципы построения протокола SESPAKE, стандартизированного в России [12], представлены в работе [13].

1. Модель противника и оценки стойкости известных протоколов

Опишем модель BPR, которая используется в настоящей работе для оценки стойкости этапа выработки ключа протокола SESPAKE, и сделаем краткий обзор известных результатов, касающихся оценок стойкости PAKE-протоколов. Рассмотрим также общие принципы моделирования противника, применяемые в области практически ориентированной доказуемой стойкости.

В [14] выделены следующие типы моделей противника: на основе неотличимости, на основе универсальной композиции и на основе симулирования. В настоящей работе стойкость протокола исследована в модели на основе неотличимости; рассмотрим эту модель противника подробнее.

Все результаты относительно стойкости протоколов типа PAKE, известные авторам, относятся к области так называемой практически ориентированной доказуемой стойкости, принципы которой описаны в [15]. Особенность этого подхода состоит в том, что он позволяет анализировать стойкость конкретных схем, не обладающих бесконечно возрастающим параметром безопасности. Данный подход использует классическую для теории сложности технику сведения одной задачи к другой, а результатом проведённого анализа является верхняя оценка возможностей (например, вероятности успешного осуществления угрозы) противника, зависящая от доступных ему вычислительных и информационных ресурсов (подробнее процесс получения оценок описан, например, в [16, разд. 8.3.1]). Ограничения этих ресурсов, продиктованные конкретными условиями эксплуатации оцениваемой криптосистемы, позволяют получить численные оценки её стойкости. Таким образом, вопросы выбора целевого порогового значения стойкости и, как следствие, допустимости использования криптосистемы могут быть решены исключительно на этапе её встраивания в более высокоуровневую систему. Вне такого контекста получаемые оценки можно прокомментировать с точки зрения предполагаемых границ применения протокола.

1.1. Общие принципы формализации противника

Под противником будем понимать вероятностную интерактивную машину Тьюринга. Неформально это программа, которая может делать запросы к другим программам и отвечать на запросы, сделанные к ней самой. Формальное определение с подробными пояснениями можно найти в [17, Definitions 4.2.1, 4.2.2].

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

Задачи противника, которые подразумевают бинарный ответ, будем называть задачами распознавания. В таких задачах SUCC — это событие, состоящее в том, что результат работы противника совпал со значением неизвестного ему бита b, выбранного случайно в процессе его модельного взаимодействия с анализируемой криптосистемой. Для противника A, решающего задачу распознавания Task, принято оценивать не вероятность успеха, а величину Adv as (A), которая определяется следующим образом:

AdvTask(A) = 2Pr[SUCC] - 1.

Отсутствие в данном определении модуля объясняется тем, что для любого противника с отрицательным значением Adv as (A) существует противник A', который работает точно так же, как A, но возвращает противоположные ему значения.

Если задача Task вычислительная (результатом работы является значение из достаточно большого множества), то через Adv as (A) обозначается вероятность вычисления противником искомого значения (например, ключа криптосистемы).

Вычислительными ресурсами противника называют сумму максимального времени его работы и размера записи кода его программы. В зависимости от решаемой задачи противник может иметь возможность осуществлять обращения к одному или нескольким оракулам. Через A(t, q1,q2,... , qk) будем обозначать множество противников, которые обладают вычислительными ресурсами, не превышающими t, и делают не более qi,q2,... ,qk запросов к оракулам, доступным им в рамках используемой модели. Через InsecTask(t,q1,q2,... ,qk) будем обозначать следующую величину, называемую для краткости нестойкостью задачи Task:

InsecTask (t,qi,q2,...,qk )= max AdvTask (A).

AeA(t,qi,q2 ,...,qk)

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

Подробнее этот подход к формализации задачи оценки стойкости криптосистем обсуждается в работе [18].

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

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

— Оракулы, моделирующие участников сети (далее — оракулы-участники): они носят технический характер и выделяются больше для ясности изложения и прозрачности проецирования модели на практику. Противник напрямую не может делать запросы к этим оракулам.

— Оракулы, моделирующие различные возможности противника: к этим оракулам у противника есть непосредственный доступ. При этом они задействуют оракулов из предыдущего пункта.

Если O — некоторый оракул, принимающий на вход запросы из множества R, то через O(r), r Е R, будем обозначать значение, возвращаемое оракулом O в качестве ответа на запрос r.

Заметим, что использование понятия «оракул» для моделирования в математической криптографии является стандартным приёмом, позволяет не вводить лишних конструкций и не приводит к внутренним противоречиям.

Оракулы-участники. Прежде чем переходить к описанию оракулов первого типа, введём некоторые сопутствующие понятия.

Множество участников сети является объединением непустых и непересекающихся множеств Client и Server, состоящих из строк-идентификаторов клиентов и серверов соответственно. Клиент может взаимодействовать с одним сервером, для этого используется секретный параметр, порождённый независимо от секретных параметров

других участников сети. Сервер может взаимодействовать с несколькими клиентами и хранит список своих секретных параметров, необходимых для такого взаимодействия в соответствии с протоколом. Заметим, что секретные параметры клиента и сервера не обязательно равны друг другу. Если они связаны таким образом, что могут быть эффективно получены друг из друга, то говорят, что протокол является протоколом симметричного типа, иначе — протоколом асимметричного типа.

Оракулы первого типа моделируют работу участников сети. Потенциально количество таких оракулов в модели не ограничено. Причина этого в том, что каждый из участников может осуществлять взаимодействие в рамках многих сессий, поэтому каждому оракулу соответствует пара (U,i), где U — идентификатор участника сети; i — номер сессии участника U, взаимодействие в которой моделируется этим оракулом. Часто можно встретить аналогию, что каждый такой оракул соответствует процессу операционной системы, реализующему протокольное взаимодействие некоторого пользователя. Оракулы, к которым не было запросов, находятся в одинаковом состоянии ожидания начала взаимодействия. Запросом к оракулу является строка, которую он интерпретирует как сообщение, пришедшее к нему из канала связи. Ответом оракула является строка, сформированная им в соответствии с протоколом и его текущим внутренним состоянием. Особым образом определяется первый запрос к оракулам, соответствующим клиентам сети, так как по протоколу клиент отправляет первое сообщение сам. В модели BPR первым запросом к клиенту должна быть строка-идентификатор того сервера, с которым этому клиенту следует начать взаимодействие. После последнего по протоколу запроса оракул переходит в состояние, в котором на любой запрос он возвращает один и тот же специальный символ (например, i), свидетельствующий о том, что сессия для него завершена.

Оракулы-участники имеют следующие специальные внутренние параметры, которые крайне важны для модели в целом:

— sid: идентификатор сессии. Перед началом взаимодействия этот параметр имеет специальное значение UNDEF, а после того, как оракул-участник успешно завершил взаимодействие по протоколу, становится равным конкатенации всех сообщений, переданных по каналу связи в рамках сессии;

— pid: идентификатор партнера. Перед началом взаимодействия этот параметр равен UNDEF. Он устанавливается равным строке-идентификатору того участника, с которым данный оракул-участник, по его мнению, осуществил успешное взаимодействие по протоколу и выработал общий ключ;

— sk: выработанный общий сеансовый ключ. Изначально также равен UNDEF и устанавливается равным ключу, выработанному в результате взаимодействия;

— acc: параметр, говорящий об успешности осуществленного оракулом взаимодействия. Изначально равен FALSE; устанавливается равным TRUE в тот момент, когда у оракула-участника становятся определены параметры sid, pid и sk;

— term: параметр, указывающий на то, что оракул завершил взаимодействие. Изначально равен FALSE.

Пример 1. Для иллюстрации рассмотрим в качестве AKE-протокола классический протокол Диффи — Хеллмана, в котором каждая из сторон снабжает посылаемое ей сообщение своим идентификатором. Рассмотрим последовательность запросов к оракулам-участникам и то, как меняются их внутренние состояния.

1) Запрос (B) к оракулу O\. Оракул выберет число x, вычислит X = gx и вернёт в качестве ответа на запрос пару (A,X). После этого он перейдёт в состояние ожидания ответа от сервера.

2) Запрос (A,X) к оракулу OlB. Оракул OlB выберет y, вычислит Y = gy и общий ключ sk = Xy. Также он определит остальные внутренние параметры: sid = = (A,X)||(B, Y), pid = A, acc = TRUE и term = TRUE. В качестве ответа на запрос оракул вернёт (B,Y).

3) Запрос (B,Y) к оракулу O\. Оракул вычислит общий ключ sk = Yx, а также другие параметры: sid = (A,X)||(B, Y), pid = B, acc = TRUE и term = TRUE. В качестве ответа оракул вернёт пустую строку, свидетельствующую об успешном завершении взаимодействия.

Если запросом к оракулу OB была бы не строка (A, X), а только идентификатор A, то оракул счёл бы это сообщение не соответствующим протоколу, вернул символ i, свидетельствующий об ошибке, и перешел в состояние завершённого взаимодействия. О том, что взаимодействие не завершилось успешно, свидетельствовали бы неустановленные (UNDEF) значения sid,pid, sk и то, что acc = FALSE.

Нестойкость этого протокола в модели BPR показана ниже в примере 2.

Оракулы, моделирующие возможности противника. Неформально, модель BPR предполагает, что противник полностью контролирует каналы связи между участниками сети, т. е. читает все передаваемые по ним сообщения, может изменять их, отправлять по каналам сообщения, сформированные им самостоятельно, и т. п. Он может также навязывать любому участнику сети выполнение протокола с любым другим участником сети. Помимо этого, он может получать сеансовые ключи некоторых выбранных им сессий (причины наличия такой возможности обсуждаются при описании соответствующего оракула). Цель противника — получить какую-либо информацию о сеансовом ключе выбранной им, но не вскрытой ранее с помощью упоминавшегося специального запроса сессии.

В модели BPR противник не может осуществлять запросы непосредственно к оракулам-участникам. Вместо этого ему предоставляется доступ к четырём специальным оракулам Osend, Oexec, Orev и Otest. Первые два моделируют возможности противника по влиянию на каналы связи. Третий оракул даёт возможность противнику получать выработанные участниками сеансовые ключи. Эта возможность не является естественной с точки зрения практики, поэтому мы подробно рассмотрим её далее. Четвёртый оракул Otest формализует угрозу в модели BPR, т. е. цель действий противника. В данной работе не анализируются криптографические свойства протокола при вскрытии противником долговременного ключа, поэтому мы не включаем в описание оракул Ocor.

Прежде чем переходить к подробному описанию каждого из перечисленных оракулов, необходимо отметить, что модель BPR может быть параллельной (concurrent) и непараллельной (non-concurrent). В первом случае для одного участника допускается существование двух и более параллельных сессий, во втором — нет.

Четыре оракула, к которым может обращаться противник, имеют возможность получать значения любых внутренних параметров acc, sid, pid, sk и term оракулов-участников:

1) Osend: этот оракул моделирует возможность противника активно вмешиваться в обмен сообщениями в канале связи. Запросом к нему является тройка (U, i, M). В ответ на запрос оракул вернёт противнику пятёрку (resp, sid,pid, acc, term),

где тввр — ответ оракула-участника ОЦ на запрос М; 8%д,ргд, асс,1втт — значения параметров оракула ОЦ после ответа на запрос М.

Оехес• этот оракул моделирует возможность противника прочитать сообщения, пересланные участниками друг другу в ходе сессии. Запросом к нему является четвёрка (А, г, Б,]). Оракул формирует ответ на запрос, используя оракул О8епа для реализации штатного протокольного взаимодействия участников А и Б. Ответом на запрос будет последовательность ответов оракула О8епа на запросы, сделанные к нему оракулом Оехес.

Для этого оракула есть некоторые исключительные ситуации. Во-первых, если хотя бы один из оракулов-участников (ОгА или О3В) не находится в исходном состоянии (т. е. к нему уже был осуществлён хотя бы один запрос), то оракул Оехес вернёт специальное значение, сигнализирующее о невозможности выполнить запрос. Во-вторых, такое значение может быть возвращено ещё и в случае, если используется БРИ-модель непараллельного типа, а для А или Б есть оракул-участник с начатой, но не завершённой сессией.

Легко видеть, что работу оракула Оехес противник может реализовать и самостоятельно, ведь для этого нужен только оракул О8епа. Выделение отдельного оракула для пассивного прослушивания противником канала связи является основной особенностью модели БРИ, по сравнению с общей моделью для оценки стойкости АКЕ-протоколов. За счёт этого удаётся отделить действия противника, связанные с изменением передаваемых сообщений, от пассивного прослушивания. Это особенно важно для РАКЕ-протоколов, так как их основная задача в том, чтобы самой эффективной атакой был опНпе-перебор, который реализуется именно активным вмешательством в канал связи.

Огеу: этот оракул позволяет противнику получить сессионный ключ участника сети в выбранной сессии. Запросом к оракулу является пара (и, г), где и — идентификатор участника; г — номер сессии. Ответом на запрос будет параметр эк оракула ОЦ (даже если он равен иКБЕЕ).

Наличие у противника доступа к этому оракулу выглядит менее естественно, чем возможность делать запросы к О8епа и Оехес. Следуя мотивации из оригинальной работы [8], отметим, что этот оракул призван отразить одно из свойств безопасности АКЕ-протоколов, а именно: потеря сеансовых ключей, полученных в результате выполнения АКЕ-протокола, не должна привести к возможности вскрытия остальных (ещё не потерянных) сеансовых ключей. Потеря сеансовых ключей участников сети возможна по целому ряду причин: использование нестойких криптографических механизмов в последующих протоколах (которые работают уже на основе выработанного сеансового ключа) или утечка ключа по причине ослабления защиты после завершения сессии (например, ключ может быть извлечён с помощью атаки, описанной в [19]). Дополнительно отметим, что наделение противника возможностью узнавать сеансовые ключи позволяет в определённой мере достичь модульности анализа, т. е. изолировать анализ АКЕ-протокола от условий его использования: даже при неаккуратном дальнейшем использовании результатов его работы протокол сам по себе должен быть стойким.

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

вен FALSE, то оракул Otest вернёт символ ошибки Если acc = TRUE, то для формирования ответа оракул сначала выбирает бит b в соответствии с равномерным распределением на множестве {0,1}. Если b = 1, то оракул возвращает ключ sk оракула-участника OU; если b = 0, то — ключ, выбранный в соответствии с равномерным распределением на множестве всех сеансовых ключей. Формулировка угрозы в виде задачи отличения некоторого параметра от случайной строки является очень распространённой в математической криптографии [20] и отражает идею о том, что противник не должен получить об этом параметре никакой информации.

Особо отметим, что в BPR-модели противник может делать к оракулу Otest лишь один запрос, поэтому эту модель в литературе обычно называют моделью с угрозой FtG-типа («Find-then-Guess»). Развитие этой модели с расширением угрозы до так называемого RoR-типа («Real-or-Random») описано в работе [21]. Основное отличие моделей в том, что RoR-тип допускает больше одного запроса к оракулу Otest и не содержит оракула Orev.

Модель BPR формализует задачу оценки стойкости для PAKE-протоколов в общем. Для конкретных протоколов модель может быть уточнена путём добавления оракулов, необходимых для анализа конкретного протокола. Например, это может быть случайный оракул, которым заменяется используемая в протоколе хэш-функция, т. е. оракулы-участники тоже обращаются к этому оракулу вместо вычисления хэш-функции. Особенности использования модели со случайным оракулом («random-oracle model» —ROM) подробно рассматриваются в [22].

Преимущество противника. Прежде чем определить преимущество противника в модели BPR, необходимо ввести понятия партнёрства (Partnering) и доступности (Freshness) для оракулов-участников. Комментарии по поводу смысла этих понятий даны после определения преимущества противника.

Оракулы-участники OA и OB называются партнёрами, если выполнены следующие условия:

1) accA = accB = TRUE;

2) sidA = sid3B;

3) pidA = B, pid3B = A;

4) skA = skB;

5) не существует другой пары оракулов-участников с таким же значением sid, как у OA и OB, для каждого из которых выполнено равенство acc = TRUE.

Оракул-участник OA называется доступным, если выполнены следующие условия:

1) противник не делал запрос (A,i) к оракулу Orev;

2) противник не делал запрос (B,j) к оракулу Orev, где OB — партнёр оракула OA.

Определим преимущество противника в BPR-модели для некоторого протокола P.

Противник в этой модели имеет доступ к оракулам Osend, Oexec, Orev, Otest и, возможно, дополнительным оракулам, необходимым для анализа конкретного протокола. Задача противника состоит в распознавании бита b, выбираемого оракулом Otest, поэтому в результате работы противник возвращает свою «догадку» о нём — бит b'. Событие SUCC состоит в том, что b' = b и запрос к оракулу Otest был сделан для доступного оракула-участника (причём доступность должна сохраняться на протяжении всей работы противника, а не только до запроса к Otest). Преимущество противника A по отношению к протоколу P в BPR-модели (определяемое стандартно в соответствии с п. 1.1), следуя оригинальной работе, будем обозначать через Adv^®(A).

Неформально, модель противника можно сравнить с правилами игры между противником и криптосистемой. Хорошая игра не должна допускать выигрышную для одной из сторон стратегию, согласно которой другая сторона вообще не принимает участие в игре. В данном случае понятие доступного оракула необходимо, чтобы исключить следующий сценарий действий противника, который позволяет ему выигрывать, не зная ничего о строении анализируемого протокола. В нём противник делает запрос к оракулу Oexec, после которого два оракула-участника становятся партнёрами, разделяя общий сеансовый ключ. После этого противник делает запросы к оракулам Otest и Orev: первый запрос — для одного из этих оракулов-участников, а второй — для другого. Чтобы угадать бит b оракула Otest, противнику достаточно просто сравнить полученные ключи.

Пример 2. Опишем противника A, осуществляющего угрозу в модели BPR для протокола, описанного в примере 1. Он выполняет следующую последовательность действий:

1) случайно выбирает z и вычисляет Z = gz;

2) делает запрос (B, 1, (A, Z)) к оракулу Osend. В качестве ответа A получает сообщение (B,Y) и значения внутренних переменных sid = (A, Z)||(B, Y), pid = A, acc = term = TRUE;

3) вычисляет K = Yz;

4) делает запрос (B, 1) к оракулу Otest. Оракул возвращает ключ K';

5) если K = K', то A возвращает в качестве результата 1, иначе 0.

Заметим, что AdvAKE (A) для данного протокола отличается от 1 на величину вероятности случайно выбрать ключ K' равным gzy. Также стоит отметить, что оракул OlB является доступным, так как запросов к оракулу Orev противник не делал.

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

1.3. Стойкость P A K E - п р о т о к о л о в

Рассмотрим пример того, как в BPR-модели реализуется онлайн-перебор паролей на примере упрощённого PAKE-протокола P без подтверждения ключа.

Пример 3. Протокол P устроен следующим образом: клиент и сервер хранят в секрете общий пароль pw, который является элементом несекретного подмножества PW мощности N группы G = (g) простого порядка. Клиент C направляет серверу сообщение (C,X = pw ■ gx), а сервер S отвечает сообщением (S,Y = pw ■ gy) (x,y выбираются из множества {1,... ,q — 1} случайно и равновероятно). Далее стороны вычисляют общий ключ K = (X/pw)y = (Y/pw)x.

Опишем противника A, осуществляющего угрозу в модели BPR для описанного протокола. Противник выполняет следующие действия:

1) полагает T = PW, i = 0;

2) выбирает pw1 из T и полагает T = T \ {pw'};

3) делает запрос (S, i, (C,pw' ■ g)) к оракулу Osend, извлекая из его ответа параметр resp, который является элементом группы G;

4) делает запрос (S, i) к оракулу Orev, получая в ответ ключ K G G;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

5) если K = resp/pw', то полагает i = i + 1 и возвращается на шаг 2;

6) делает запрос (S,i + 1, (C,pw' ■ g)) к оракулу Osend, извлекая из его ответа resp G G;

7) делает запрос (S,i + 1) к оракулу Otest, получая в ответ ключ K ;

8) заканчивает работу с результатом 1, если K = resp/pw', и 0 в противном случае.

Переход противника A на шаг 6 происходит в том случае, если pw' = pw, где pw — пароль, разделяемый C и S. Таким образом, противник просто осуществляет полный перебор паролей. Такой перебор называется онлайн-перебором, так как он предполагает активное взаимодействие противника с участниками сети.

Если противник может делать N +1 запрос к Osend, то AdvAKE(A) = 2(1 — 1/|G|) — 1 = = 1 — 2/|G|. Отсюда следует, что

InsecAKE(t, qsend = N + 1, qrev = N, feec = 0) ^ 1 — 2/|G|,

где вычислительные ресурсы t равны c • N ; c — некоторая небольшая константа. Здесь через qsend,qrev,qexec обозначено количество запросов к соответствующим оракулам.

Понятно, что описанный противник может быть изменён так, чтобы работать в условиях, когда ему доступно лишь n ^ N +1 запросов к оракулу Osend, и иметь вероятность успеха порядка n/N.

Для любого PAKE-протокола противник может осуществить угрозу отличения ключа так, как показано в примере 3. Стойкий PAKE-протокол — это такой протокол, для которого сценарий с онлайн-перебором является наиболее эффективной атакой, причём ни относительно существенное увеличение вычислительных ресурсов, ни количества запросов к любым оракулам, кроме Osend, не приводят к появлению более эффективных методов реализации угрозы.

Рассмотрим некоторые существующие PAKE-протоколы с точки зрения особенностей их строения, применимости модели BPR для их анализа и оценок их стойкости.

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

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

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

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

Для протоколов второго типа определённая выше угроза корректна.

Рассмотрим оценки стойкости, полученные для двух связанных друг с другом протоколов второго типа: One-Encryption Key-Exchange (OEKE) и AuthA. Протокол AuthA предложен M. Bellare и P. Rogaway в 2000 г. в [2] и стандартизирован IEEE (P1363.2: Standard Specifications for Password-Based Public-Key Cryptographic Techniques). В 2003г. в работе [3] E. Bresson, O. Chevassut и D. Pointcheval привели оценку стойкости упрощённой версии этого протокола, которую назвали OEKE, в BPR-модели параллельного типа (concurrent) со случайным оракулом и оракулом

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

В терминологии настоящей работы оценка стойкости протокола ОЕКЕ в модели БРИ, полученная в [3], выглядит следующим образом:

1п8ес£Це(г, д„ ь, дн, де) ^ 3 % + 8дн • 1п8ес*™(г') + (2(е + + Цр)2 + (1 +

N G к ' q — 1 2li '

где qs, qp, qh, qe — максимально допустимые количества запросов к оракулам Osend, Oexec, случайному оракулу и оракулу идеального шифра соответственно; q — мощность используемой для вычислений группы G; t' ^ t + (qs + qp + qe + 1)tg; tg — трудоёмкость возведения в степень в группе G; 1\ — размер выхода хэш-функции, используемой для вычисления аутентификационной информации; InsecG (t') — вероятность успеха наиболее эффективного алгоритма решения задачи CDH (её определение приведено в п. 4) в группе G.

Рассмотрим оценку подробнее. Величины 221 и q на практике обычно достаточно большие (не меньше 2256). Величину числителей двух правых слагаемых определяют значения qh и qe. Действительно, на практике для вычисления хэш-функции и зашифрования противник просто вычисляет эти функции и не обращается ни к каким оракулам, т. е. эти параметры ограничены исключительно его вычислительными ресурсами. Поэтому количество qp пассивно прослушанных сеансов взаимодействия участников протокола существенно меньше qh и qe. Тем более меньше этих параметров оказывается величина qs, которая на практике ограничивается организационными мерами (например, использованием счётчиков неуспешных сессий). Таким образом, если вычислительные ресурсы противника существенно меньше Jq (для q ^ 2256 это предположение на сегодняшний день представляется вполне правдоподобным), то два правых слагаемых пренебрежимо малы.

Величина Insec^DH(t') для хорошо подобранных групп (например, групп точек эллиптических кривых, выбранных с учётом критериев из работы [23]) оценивается с учётом общих методов дискретного логарифмирования, т.е. Insec^DH(t') ~ (t')2/q. Мощность q используемой подгруппы точек эллиптической кривой должна быть выбрана таким образом, чтобы слагаемое 8qh ■ InsecG (t') было пренебрежимо малым с учётом предполагаемых вычислительных ресурсов противника. Здесь важно то, что это слагаемое можно сделать пренебрежимо малым с помощью изменения численного параметра протокола, а не принципа его работы.

Таким образом, величину InsecOexe(t,qs,qp,qe,qh) определяет первое слагаемое, которое соответствует атаке онлайн-перебора из примера 3. Оценка показывает, что эта атака является единственно эффективной для данного протокола в указанных предположениях о вычислительных возможностях и параметрах протокола. Именно о PAKE-протоколах с оценками стойкости такого типа говорят, что они являются стойкими в BPR-модели.

В работе [3] в условиях BPR-модели определяется также угроза ложной аутентификации нераспознавательного типа. Через AdvO-kU (A) обозначена вероятность того, что противнику удалось выдать себя за клиента, которым он не является, т. е. оракул-сервер пришёл в состояние ace = TRUE, но не существует оракула-клиента, для которого этот оракул-сервер является партнёром. Недостатком данной модели является то, что в ней оценивается возможность противника выдавать себя лишь за клиента, но не за сервер.

2. Описание протокола SESPAKE

Через Vn будем обозначать множество наборов длины n с элементами из поля GF(2). Далее все операции с точками эллиптической кривой проводятся в подгруппе E = (P) простого порядка q группы точек некоторой эллиптической кривой порядка т. Через 0e обозначим нейтральный элемент группы E; для конечного множества A через a — A будем обозначать операцию выбора элемента a из A в соответствии с равномерным распределением.

Для конкретной реализации протокола необходимо зафиксировать следующие параметры:

— l — произвольное натуральное число;

— доказуемо псевдослучайные точки P,Qi,...,Qi Е E. Доказуемая псевдослучайность гарантирует, что кратность любой точки относительно любой другой неизвестна (подробнее об этом см. в [13]);

— строковые константы Ta и Tb , которые используются клиентами и серверами соответственно.

Через F далее будем обозначать функцию PBKDF2, определённую в [24], а через H256 —хэш-функцию ГОСТ Р 34.11-2012 [25] с длиной выхода равной 256 битам. Через HMAC обозначим алгоритм [26] с длиной выхода 256 бит.

Протокол предполагает взаимодействие двух участников: клиента и сервера. Участники сети обладают фиксированными идентификаторами, которые являются байтовыми строками некоторой фиксированной длины N (длина одна для всех участников протокола), множество всех идентификаторов обозначим ID (ID = VN). Если A — участник протокола, то его идентификатор из ID будем обозначать так же A. Клиент в схеме работы протокола обозначается через A и хранит пароль PW Е V8. Сервер в схеме работы протокола обозначается через B и хранит следующие параметры для каждого клиента, с которым может взаимодействовать:

— число ind Е {1,... , l};

— строку salt Е V64;

— точку Qpw = F(PW, salt, 2000)Qmd.

В секрете должны храниться только параметры PW и Qpw .

Схема работы протокола приведена в таблице. Для удобства дальнейших рассуждений будем обозначать SESPAKEka и называть протоколом выработки общего ключа ту часть протокола, которая предшествует первому вычислению участником A значения функции HMAC. Оставшуюся часть протокола будем называть протоколом подтверждения ключа с аутентификацией и обозначать SESPAKEKC. Это деление наглядно продемонстрировано в таблице. Под протоколом SESPAKE будем понимать аутентифицированную выработку общего ключа по протоколу SESPAKEka с последующим его подтверждением в соответствии с протоколом SESPAKEkc

Описание протокола 8Е8РЛКЕ

Фиксированные открытые параметры: 1,Р,((х, ... ,((1 ,—, я

А [РШ] В [( рш, гпй, salt]

А

= ^(РШ, sa.lt, 2000) (¿„й гпё,, sa.lt

хА =0, а {1,..., я - 1}

их = а ■ Р - их их / Е ^ ИШБИ

Я в = их + ((рш

хв =0, в <-{1,...,д - 1} Н

—((в = 0е ^ Яв = Р, хв = 1 я Я

— sгc = ( — ■ в) (в сп Н СП

Кв = #256^гс)

И и2 /Е ^ ИШБИ и2 и2 = в ■ Р + (РШ

(А = и2 -

— ((А = 0Е ^ Я А = Р, Хр = 1 я

,?гс = ( — ■ а] (р

к А = #256 ^гс)

tagA = ТрНАН^^^^Ни^и МА = ПМЛОКд ^адА) tag = ТрНАН^^^^Ни^и М = ПМЛОКв ^д) О ^ Н

К М = Ма аг хв =0 ^ ИОТВИ СП Н СП

tag = Тв ||_В||гп^|^аЙ||и1||и2 М = ПМЛОКа ^д) Мв tagв = Тв ^Нт^^^Ни^и Мв = ПМЛОкв (tagв)

И М = Мв аг хА = 0 ^ ИОТВИ

3. Модели противника для оценки стойкости 8Е8РЛКЕ

В данной работе оценка стойкости протокола БЕБРАКЕ проводится в два этапа. Сначала оценивается стойкость протокола БЕБРАКЕкА в непараллельной модели БРИ,. Далее оценивается стойкость протокола БЕБРАКЕ в модели с угрозой ложной аутентификации распознавательного типа, описываемой ниже. Обоснование стойкости протокола БЕБРАКЕ существенно основывается на стойкости протокола БЕБРАКЕкл.

Уточним, что стойкость протокола БЕБРАКЕкл оценивается в БРИ-модели непараллельного типа с дополнительным случайным оракулом Он, которым заменяется хэш-функция Я256, используемая для вычисления ключей К а и К в.

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

Опишем возможности противника А для протокола БЕБРАКЕ. Помимо возможностей, которые есть у противника, рассматривавшегося для протокола БЕБРАКЕкл, противник А может делать запросы к оракулам Онмлс, Осьеск и Оаи^. Через ЮБа^ обозначим конкатенацию тех данных, которые были пересланы по каналу связи с точки зрения оракула ОА до этапа подтверждения ключа. Эти оракулы работают по следующим правилам:

— ОнМлС: реализует семейство случайных отображений {Ск : У* ^ У25б}КеУ2бб, которые выбираются случайно, независимо и равновероятно перед началом работы; на запрос (К,Т) оракул ОнМлС возвращает значение Ск (Т);

— Осьеск• в качестве ответа на запрос (А, г) этот оракул возвращает значение СКа1 (ТаЦЮБа,')), где Ка,1 — сессионный ключ, выработанный оракулом ОА;

— Оаи^: с помощью этого оракула определяется угроза. Оракул Оаи^ принимает на вход пару (А, г), случайно и равновероятно выбирает бит Ь Е {0,1} ив зависимости от Ь возвращает либо пару (МА, М') (если Ь = 0), либо пару (МА, М) (если Ь = 1). При этом М' = Ск(ТвЦШБа^, где К' £ У256; Ма = СкА г(ТаЦШБа^; М = = Ска ,г (Тв 111ПБА,г).

Как и в модели для протокола БЕБРАКЕка, противник может делать запрос к оракулу Оаи^ только для тех оракулов, которые допускают тестирование. Оракулом, допускающим тестирование, называется такой оракул ОА, по отношению к которому не было запросов к О^еск и для которого противник не получил значение М тривиальным образом, то есть не сделал запрос к Осьеск для оракула, разделяющего с ОА общий ключ. Говоря неформально, в такой модели противник перед тем, как попытаться осуществить угрозу, предупреждает, что он будет осуществлять угрозу по отношению именно к этому участнику и сеансу. Подчеркнем, что противник выбирает «цель» не в начале, а в процессе работы.

В качестве результата противник возвращает значение а Е {0,1}. Через БиССа^ь обозначим событие, состоящее в том, что а = Ь, где Ь — значение, которое выбрал оракул Оаи1Л.

4. Сопутствующие задачи и соотношения между ними

Рассмотрим задачи, которые используются при обосновании стойкости протокола БЕБРАКЕ. Все задачи формулируются для подгруппы Е простого порядка д группы точек эллиптической кривой порядка т с образующим элементом Р. Через т будем обозначать трудоёмкость вычисления кратной точки в этой подгруппе.

Преимущества противников во всех задачах определяются как вероятность того, что результат соответствующего задаче эксперимента будет равен 1 (обозначается Ехр(А) = 1). Трудоёмкость решения задач определяется величиной 1п8ве, задаваемой так, как описано в п. 1.1.

4.1. Определения

Задача СЮЫ (вычислительная задача Диффи — Хеллмана) определяется для противника А экспериментом Ехр :

— противнику А передаются точки X = хР, У = уР, где х,у £ Zq;

— противник А возвращает точку Z;

— если Z = хуР, то в качестве результата Ехр (А) данного эксперимента выдаётся 1, иначе 0.

Для данных X = хР и У = уР через СБИР (X, У) будем обозначать точку хуР. Там, где из контекста ясно, о каком Р идёт речь, будем писать просто СБИ(Х, У). Заметим, что справедливы следующие соотношения:

— СБИр (Р,У ) = У;

— СБИ(аХ, У) = а • СБИ(Х, У);

— СБИ(Х + У^) = СБИ(Х, Z) + СБИ(У, Z).

Задача 8СЮЫ [27] отличается от СБИ тем, что противнику передаётся только точка Х, а его задача состоит в том, чтобы вычислить СБИ(Х,Х). Через БСБИ(Х), где Х = хР, будем обозначать точку х2Р.

Задача QCCDH определяется для противника А экспериментом Ехр^сссн:

— противнику передаются точки Х,О £ Е;

— противник возвращает точки У, и и У;

— если и = СБИ(Х,У) и У = СБИ(Х — Q,У — О), то в качестве результата возвращается 1, иначе 0.

Задача QPCCDHD.

Пусть V С — множество паролей. Эксперимент Ехр^рсссн(А), определяющий задачу QPCCD^r), состоит из двух этапов, а противник А, участвующий в нём, использует при работе на разных этапах две вероятностные ленты, заполнение первой из которых возвращается вместе со значением У. Заполнение случайной ленты для первого этапа может быть задано перед началом эксперимента произвольным образом. Если оно не задано, то выбирается случайно и равновероятно. Эксперимент Ехрдрсссн(А):

— противнику А передаются точки О,Х £ Е;

— противник возвращает У Е Е и и — заполнение своей случайной ленты, которая использовалась при вычислениях на первом этапе;

И т>

— противнику передаётся пароль г £ V;

— противник возвращает К Е Е;

— если К = СБИ(Х — гО, У — гО), то в качестве результата возвращается 1, иначе 0. Замечание 1. Противник, угадавший перед возвращением У пароль г, гарантированно решает задачу, возвращая У = Р + гО и К = Х — гО.

Замечание 2. Возврат заполнения случайной ленты обеспечивает возможность «запускать» противника А так, чтобы результат его работы на первом этапе (точка У) для одних и тех же входных данных не менялся. Фактически это означает, что, получив от А точку У, можно многократно «запускать» А для работы только на втором этапе.

Задача S-QPCCDHI)s отличается от задачи QPCCDИI) тем, что вместо одного ключа К противник А может выдать в качестве ответа множество ключей К мощности ^ Е N. В эксперименте Ехр8"^рсссн(А) в качестве результата возвращается 1, если точка СБИР (Х — гО,У — г О) есть в множестве К.

Везде далее, если из контекста ясно, для каких параметров в и V рассматриваются описанные задачи, их названия приводятся без индексов.

4.2. Соотношения между задачами Докажем утверждения, итоговая цель которых — оценить сверху нестойкость задачи Б^РССБИ через нестойкость задачи БСБИ. Согласно [27], наиболее эффективным методом её решения является дискретное логарифмирование. Теорема 1. Справедливо неравенство

1п8ве^сссн(^) ^ 1п8везссн(^ + 4т).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Доказательство. Пусть А Е А(£) —противник, решающий задачу QCCDH с вероятностью успеха е. Построим противника А', решающего задачу БСБИ с помощью А.

Точку, полученную противником A' в рамках эксперимента ExpSCDH, обозначим через Q. Противник A' осуществляет следующие действия: b f- Zq; подаёт A на вход пару (X = 2Q + bP,Q), получая в ответ тройку Y,U,V. Заметим, что пара (X,Q), сформированная таким образом, принимает каждое значение из E х E с одинаковой вероятностью.

Если A успешно решил задачу QCCDH, то

U = CDH(2Q + bP, Y) = 2 • CDH(Q, Y) + bY, V = CDH(Q + bP, Y - Q) = CDH(Q, Y) - SCDH(Q) + bY - bQ.

Таким образом, точка

R =1/2 • U - V + b/2 • Y - bQ

является решением задачи SCDH для точки Q с вероятностью е. Поэтому в силу произвольности A получаем следующую цепочку неравенств:

InsecQCCDH(t) = AdvQCCDH(A) = AdvSCDH(A') ^ InsecSCDH(t + 4т).

Теорема 1 доказана. ■

Заметим, что в работе [9] доказательство аналогичного утверждения требует корректировки. Неточность заключается в том, что итоговая оценка не учитывает, что построенный в [9] противник не может решить задачу CDH при b = 0 или b = 1, а также то, что входные аргументы для A выбираются не в соответствии с равномерным распределением.

Приведём формулировку леммы из работы [9], которая понадобится для доказательства теоремы 2.

Лемма 1 [9]. Для конечных множеств X и Y пусть A С X х Y таково, что Pi[(x,y) £ A] ^ е. Пусть также для произвольного а < е

B = {x £ X : Piy<eY[(x, y') £ A] ^ е - а} .

Тогда Pi[B] ^ а и Pi[BlA] ^ а/е.

Теорема 2. Пусть |D| = n. Для t, такого, что

2 ^ InsecQPCCDHD (t) > - + е nn

для некоторого е ^ 1/n, справедливо неравенство

з

InsecQCCDH(2t + 2т) ^ Пе-.

64

Доказательство. Пусть A £ A(t) —противник, решающий задачу QPCCDHp

2 1 с вероятностью успеха — ^ AdvQPCCDHD (A) ^ —+ е.

nn Пусть Q, X £ E — случайно и независимо выбранные точки, для которых требуется

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

эту задачу.

Выберем случайно и равновероятно заполнение u случайной ленты для первого шага работы противника A (заметим, что достаточно рассматривать ленту конечной длины t). Выберем случайно r = r' £ D и вычислим y = r' - r.

Вычислим Ц' = — Ц и X' = X + тЦ'. Далее дважды используем А, чтобы ре-

1

шить задачу QPCCDH для одинаковых входных параметров первого этапа и разных параметров второго этапа.

Подадим на вход противнику А пару Ц',Х', записав на его вероятностную ленту первого этапа значение и. Пусть У' — то, что противник выдал в качестве результата первого этапа (заполнение случайной ленты первого этапа, которое возвратит А, очевидно, равно и). В качестве входного параметра второго этапа передадим А число т'. Пусть К' — значение, которое А возвратит в качестве результата.

Снова используем А, подав на вход первого этапа ту же пару Ц',Х' и записав на ленту первого этапа и. Противник А возвратит то же самое значение У'. В качестве входного параметра второго этапа теперь передадим число т. Пусть К — то, что выдал А в качестве результата вычислений на втором этапе.

Если противник А правильно решил обе задачи, то К' = CDH(X' — т'Ц',У' — т'Ц'), а К = CDH(X' — тЦ',У' — тЦ'). Пусть У = У' — тЦ', тогда тройка У, К, К' будет решением задачи QCCDH для входных параметров X, Ц. Это объясняется тем, что

К = CDH( X, —тЦ', У' — тЦ') = CDH(X, У),

Х+^' 4 у '

К' = CDH(X' — т'Ц', У' — т'Ц') = CDH(X + тЦ' — т'Ц', У + тЦ' — т'Ц) = = CDH(X — (т' — т)Ц', У — (т' — т)Ц') = CDH(X — Ц,У — Ц),

так как Ц' = —-Ц.

Вероятность решить задачу QCCDH для случайной пары X,Q у противника, действующего описанным образом, не меньше, чем вероятность того, что противник А решит одновременно задачи для входов X' ,Ц',т и X',т', где X' , т, т' случайны и независимы, при условии, что заполнение случайной ленты и первого этапа для обеих задач одинаково. Обозначим это событие через SUCC.

Множество = {(X',Ц',и,у,т) : X'€ Е, и,у € {0, — У, т является про-

странством элементарных событий случайной величины, которой является результат

эксперимента Ехрдрсссн. По условию теоремы РгПо{Ехрдрсссн® (А) = —} ^ — + е.

п

Представим П0 в виде декартова произведения П; х П;:

П'; = {и : и е {0, — }}, П; = {(X', Ц', V, т) : X', Ц' е Е, V € {0, — }*, т € V}.

Пусть Б; = \ и € П; : РгП1 [Ехрдрсссн® (А) = —] ^ — + - 1. Тогда из леммы 1 следует,

п 2

что

РгПо [и € Б; : Ехр

дрссБНр (А) =—] ^ е/2 пе

—/п + е 2 + 2пе' Теперь представим П; в виде декартова произведения П'2 х П2:

П'2 = {(X', Ц') : X', Ц' € Е}, П2 = {(V, т) : V € {0, — У, т € V}.

Для любого и € Б; пусть

ЗД ^(Г^') € Е х Е : РгПз[Ехр^рсссн®(А) = —] ^ — + -

п 4

тогда по лемме 1 справедливо неравенство

РгП1 [(Х>^>) е £2(и) : Ехр^рсссн®(А) = 1] ^

пе

1/п + е/2 4 + 2не'

Вероятность успеха противника А при решении задачи для случайного входа X' , г 1

не меньше чем — + е, причем вероятность того, что выполнены условия и е ¿1, п

(Х',0') е ¿2(и), не меньше чем

1 / \2

пе пе 1 пе > -

2 + 2пе 4 + 2пе 8 \ 1 + не

Противник А решает задачу для входа X', 0', т' при фиксированных и е ¿1, (X', 0') е

1 ее

е Б2(и) с вероятностью не меньше чем —+ — ^ —. Следовательно, выполняется следующее неравенство: п

Рг [БИСС] £ (± + е) 1 ) е.

1 уп ) 8 \1 + не) 4

21

Из условия — ^ —+ е получаем требуемое неравенство: пп

з

1п8ве^ссн(2£ + 2т) ^ Рг [БИСС] ^

64

Теорема 2 доказана. ■

Теорема 3. Справедливо неравенство

1п8ее^рсс^(1) < ± + »/ ^ее^и + в + 0(эт)) + 2^

8 ® < |Х>| + У |Р|2 + ^

где в — трудоемкость поиска пары одинаковых элементов в двух множествах размера в2.

Доказательство. Пусть А е А(Ь) — противник, решающий задачу Б^РССБН^

с вероятностью успеха —+е, где п = К е Е — точка, для которой требуется решить

п

задачу БСВН. Будем использовать для решения противника А.

Выберем случайно и независимо друг от друга числа х1,х2,д1,д2 е Вычислим точки Хг = 2К+хгР и = К + дгР. Выберем случайно и независимо друг от друга два заполнения и1 и и2 случайной ленты первого этапа противника А. Далее используем противника А в качестве черного ящика таким же образом, как описано в доказательстве теоремы 2, сначала для пары X1, 01 и заполнения и1, а потом для пары Х2, 02 и заполнения и2. С учетом порядка построения противника в теореме 2, в последующих

выкладках используем следующие дополнительные обозначения: тг,т[, О = —-0г,

т' - тг

X' = XI + тг0г и Уг. Два этих эксперимента независимы в силу независимости выбора параметров хг, и иг .В результате такой процедуры получим четыре множества по в точек в каждом.

Вероятность того, что в обоих множествах, полученных в результате проведения одной процедуры, найдутся решения поставленной перед противником А задачи S-QPCCDHsI,, оценивается снизу величиной пе3/64 (рассуждения совпадают с теми, что приведены в доказательстве теоремы 2). Поскольку при проведении процедур параметры выбираются независимо, вероятность того, что в каждом из четырёх полученных множеств найдётся правильное решение, не меньше (пе3/64)2. Полученные множества обозначим через Б;, Б[, Б2 и Б'2.

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

Кг = CDH(Xг' — тгЦ'г, У - = CDH(Xг, У!) = 2CDH(Я, У/) + хгУ!,

У'

К[ = CDH(X — т[У — т[Цг) = CDH(X — (т' — т-гШ, У! — (т' — тг)Ц,1) =

= CDH(Xг — Цг, У — Цг) = CDH(Я + ХгР — дгР, У — Я — дгР) =

= CDH(Я, У') — SCDH(Я) — дгЯ + хгУ^ — хгЯ — хгдР — дУ' + дЯ + д2Р. Отсюда заключаем, что

SCDH(Я) = —/2 ■ Кг — К' + дгЯ — х/2 ■ У' + хгЯ + хгдгР + дУ' — дЯ — д2Р. (1)

4-V-'

с

Точка С вычисляется один раз для каждой из процедур. Для каждого из четырёх множеств вычисляется в точек —/2 ■ К г или К' (в зависимости от рассматриваемого множества). После этого с использованием соотношения 1 формируются два множества по в2 элементов в каждом. Первый элемент из первого такого множества, для которого нашёлся совпадающий с ним элемент во втором множестве, выдаётся в качестве предполагаемого значения SCDH(Q). Вероятность случайного совпадения оценим сверху величиной 2в4/д.

Таким образом, алгоритм решает задачу SCDH с вероятностью успеха не меньше п2е6 2в4 "212 д

чем ——---. Поэтому

1п8везссн(4^ + 0 + 0(вт)) ^ п2-6 — —.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

2;2 д

Отсюда получаем

,*^ < 1 «/ 1п8ве8срн(4^ + 0 + 0(вт)) + 2^

1П8бе < IV! + V 12 + ^|2д.

Теорема 3 доказана. ■

Отметим, что в оригинальной работе [9] доказательство схожей теоремы также требует корректировки.

5. Оценка стойкости 8Е8РЛКЕКА

Докажем нижнюю оценку преобладания в задаче отличения ключа от случайной строки для протокола SESPAKEKA.

Теорема 4. При qsend * 2 и некотором t, достаточном для осуществления одним клиентом одного взаимодействия в соответствии c протоколом, справедливо неравенство

InSeCSESPAKEKA (t,qsend) * — q

Доказательство. Приведём пример противника, решающего задачу отличения ключа от случайной строки для протокола SESPAKEka- Противник с помощью Osend посылает некоторый Aid участнику B, получая в ответ (ind, salt). Противник выбирает пароль PW' из словаря D в соответствии с равномерным распределением и вычисляет Qpw', а также элемент а из множества {1,... ,q — 1} в соответствии с равномерным распределением- После этого он вычисляет щ в соответствии со спецификацией протокола (как если бы он был пользователем A) и с помощью запроса к Osend посылает щ участнику B. Получив его ответ, противник вычисляет ключ сеанса k' в соответствии со спецификацией протокола, используя PW' в качестве пароля.

После этого противник делает запрос к оракулу Otest на отличение того ключа, который был только что установлен участником B. Получая некоторую строку k, противник сравнивает её с k', полагает b' = 1, если они равны, и b' = 0 в противном случае и возвращает bb в качестве результата.

Если k является ключом, установленным участником B в ходе описанного взаимодействия с противником, то Рг [k' = k] * (не учитываем вероятность коллизии

хэш-функции при выработке ключа и функции F при выработке Qpw')- Пусть b — случайный бит, который выбрал оракул Otest- Справедливо соотношение

Рг [b' = b] = Pr [b' = 0|b = 0] Рг [b = 0] + Рг [b' = 1|b =1]Pr[b = 1] =

= >— 1/q)+pr[b =1|b' = 1]) *1 ((l — + м) =1 + 2jDj— 1-

Таким образом, Insec^pAKE™ (t,qsend) * — 1 - ■

|D| q

Учитывая, что |D| ^ q, преобладание описанного противника по порядку соответ-1

ствует

Доказательство стойкости (с некоторыми параметрами) протокола SESPAKEka проводится в модели со случайным оракулом Oh (используемую в протоколе хэш-функцию H считаем случайной функцией). Стойкость в конечном итоге базируется на сложности вычислительной задачи Диффи — Хеллмана (CDH) в соответствующей группе.

Замечание 3. Приведём комментарии по поводу случайного оракула, которые призваны облегчить понимание некоторых шагов доказательств последующих утверждений. Термин «случайный оракул» широко используется в работах по математической криптографии- В нашем случае моделирование некоторой функции H : A ^ B с помощью случайного оракула означает, что в рассуждениях функцию H реализует некоторый вычислитель Oh , который принимает на вход элементы множества A, возвращая значения из множества B (этот вычислитель принято называть оракулом). «Случайность» оракула Oh заключается в том, каким образом он выбирает значение из B, которое возвратит в ответ на значение-запрос из A. При первом запросе оракул Oh случайно и равновероятно выбирает функцию из множества всех функций,

определённых на A и принимающих значения из B, после чего возвращает значение выбранной функции, вычисленное для поданного ему на вход аргумента. Для всех последующих запросов оракул Он просто возвращает соответствующие значения выбранной функции.

Приведённое определение поведения оракула Oh удобнее интерпретировать следующим эквивалентным образом. Оракул хранит таблицу T размера |A|, индексируемую элементами множества A, все значения в которой перед первым запросом не определены. При поступлении на вход значения a Е A оракул Oh либо возвращает значение T(а), если оно определено, либо выбирает случайно и равновероятно значение b Е B, устанавливает T(a) = b и возвращает b в качестве ответа. Таким образом, оракул фактически определяет реализуемую им функцию не единовременно, а в процессе ответов на запросы.

Рассмотрим задачу распознавания двух сценариев в следующем эксперименте. Пусть Oi и 02 — случайные оракулы, реализующие отображения A ^ B. Противник может делать запросы вида (i, a), i Е {1, 2}, а Е A, к оракулу О, который возвращает элемент множества B, используя при этом оракулов 01 и 02. Перед началом работы оракул О случайно и равновероятно выбирает значение в Е {1, 2}. Оракул О хранит таблицу T, которая изначально пуста. При поступлении на вход запроса (i, a) он действует следующим образом:

— если в = 1, то 0(i,a) = 01(a);

— если в = 2, то если T(a) не определено, то 0(i,a) = О^(a) и T(a) = О^(a), иначе

0(i, a) = T(a).

Перед противником стоит задача различения двух сценариев: в = 1 или в = 2.

Такое подробное описание приведено ради строгости. Неформально, противник должен определить, получает ли он ответы от двух случайных оракулов или от одного, причём он не имеет возможности делать запросы с одинаковым вторым аргументом a к двум разным оракулам (чтобы сравнить реализуемые оракулами функции покоординатно).

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

Далее qexec, qsend, qH — количество запросов к оракулам 0exec, 0send, Oh соответственно, которые совершает противник Asespakeka . В теореме 5 значения этих параметров могут быть произвольными. На практике ограничение их значений является важнейшим условием для обеспечения стойкости протокола. Подробные комментарии даны в п. 7.1.

Теорема 5. Справедливо неравенство

InSeCgEspAKEKA qH, qsend, qexec, qrev) ^

^ (2qexec + qsend)2 + 2qHAdvCDH(t + 2тqexec) + 2qsendAdvS-QPCCDHD ,2qH (t + qSir + C), q

где C — некоторая константа; r — трудоёмкость вычисления кратной точки в группе E; qS1 — количество запросов к оракулу 0send вида (ind, salt).

Структура доказательства. Пусть ASESPAKEKA — противник, для которого Pr [SUCC] —вероятность успеха в процедуре, описанной в конце п. 3. Будем исполь-

зовать противника AsESPAKEKA в качестве чёрного ящика, перехватывая его запросы к оракулам Оехес, 08епа, 0Геу и О^, моделируя работу участников в соответствии с протоколом SESPAKEкA. Далее постепенно будем «лишать» этого противника возможности получать истинные ответы оракулов. При этом будем показывать, насколько изменяются от шага к шагу вероятности успеха противника AsESPAKEKA в модифицированных экспериментах. После некоторого количества модификаций получим эксперимент, вероятность успеха в котором равна —/2. Таким образом, отклонение вероятности успеха в «чистом» эксперименте от —/2 можно будет оценить сверху суммой оценок, полученных при каждой модификации эксперимента.

Опишем качественную структуру получаемой оценки. Модифицируя условия эксперимента, мы фактически лишаем противников определённых возможностей и тем самым исключаем из рассмотрения некоторый класс противников, которые не могут быть успешны в новых условиях (т. е. тех, которые существенно используют заблокированные возможности). Так, класс, который выводится из рассмотрения при рандомизации ответов оракула Оехес, состоит из противников, пассивно прослушивающих канал связи. Основные рассуждения при этом направлены на оценку преобладания «исключаемых» противников. Далее полученная оценка включается в итоговую в качестве одного из слагаемых. Итого, если всё множество А противников подходящим образом разбито, например, на классы Б1, В2 и В3, то оценка имеет следующий вид:

Лау(А) = шах(Лау(Б1), Лау(В2), Лау(Б3)} < С + С2 + С3,

где Сг — верхняя оценка для Л^(Бг).

Доказательство. Пусть вероятность успеха противника AsESPAKEкA равна Pr[SUCCo]. Будем использовать противника Аж^а^^а в качестве чёрного ящика, перехватывая его запросы к оракулам, при этом нас интересует вероятность успеха противника Аж^а^ха в модифицированном эксперименте. Для обработки его запросов к оракулам будем моделировать подразумеваемое поведение всех возможных участников протокола: случайным образом выбирать для каждого пароль, генерировать случайные точки на этапе выработки ключа и т. п. В этом случае смоделированное множество участников с точки зрения противника не отличается от того, которое используется в «чистом» эксперименте. Поэтому вероятность Рг [SUCC1] равна вероятности Рг [SUCC0].

Далее используем противника AsESPAKEKA в качестве чёрного ящика в эксперименте, отличающемся от предыдущего эксперимента с полноценно смоделированной сетью абонентов. Отличие заключается в том, что будем заканчивать всякую работу и выдавать на выход случайный бит в том случае, если среди точек {и1} и {и2}, полученных в результате выполнения противником Аж^а^^а запросов к оракулам О8епа и Оехес (смоделированных нами), появились две одинаковые точки. Вероятность такого события не превышает (2дехес + д8епа)2/(2д). Поэтому вероятность успеха Рг [SUCC2] в этом эксперименте отличается от Рг [SUCC1] не более чем на (2дехес + д8епа)2/(2д). Данный эксперимент призван освободить дальнейшие рассуждения от противников, которые, например, посылают запросы с одинаковым и1 участнику Б, восстанавливая потом (с помощью Огеу) установленный им ключ Кв, до тех пор, пока не появится ранее передававшийся и2. Если такое событие случается, то ключ для К а следует установить равным тому К в, который соответствует ранее встреченному и2.

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

Азе8РЛКека случайной функции И' (и1,и2). Пусть вероятность успеха в этом эксперименте отличается от вероятности успеха в предыдущем эксперименте на АР, то есть АР = |Рг [БИСС2] — Рг [БИСС^. Поскольку мы считаем, что функция И, с помощью которой формируется реальный ключ, является случайной, то различия в поведении

противника АяеярлкЕха в этом и предыдущем экспериментах могут наблюдаться лишь

т,

в том случае, если он осуществил запрос — СБИ (и1 + QPW, и2 — QPW) к оракулу Он.

Я

То есть с вероятностью АР среди Ян запросов к оракулу Он фактически присутствует решение задачи СБИ для пары (и1 + Qpw,и2 — QPW). Этим можно воспользоваться, чтобы решить задачу СБИ для произвольных точек Q1 и Q2. Для этого в ответ на запрос к оракулу ОеХес будем в качестве и1 и и2 использовать точки + аР) — Qpw и (Q2 + вР) + QPW. Если в запросах к оракулу Он (их всего ян), которые осуществлял противник, есть значение СБИ(и1 + Qpw,и2 — Qpw), то

CDИ(Ql, Q2) = СБИ(и1 + Qpw, и — Qpw) — вQl — аQ2 — а[ЗР.

Из этого можно сделать вывод, что АР не превосходит значения Ян ■ 1п8еессн (Ь + + 2тдехес + 3т). Это означает, что для пассивно прослушивающего канал связи противника задача отличения сессионных ключей от случайных данных не легче задачи СБИ.

На следующем шаге эксперимент Ехр3 модифицируется путём рандомизации ответов оракула Озепа: на запросы, подразумевающие содержательные с точки зрения криптографии ответы, будем возвращать случайные точки и формировать сессионный ключ с помощью функции И' (новый эксперимент назовём Ехр4). Таким образом, в новом эксперименте противник не получает никакой информации от запросов к оракулам. Поэтому вероятность успеха Рг [БИСС4] в таком эксперименте равна 1/2. Лемма 2. Справедливо неравенство

|Рг [БИССз] — Рг [БИОД] | ^ Язепа ■ 1п8ес3"дрсссн1^2ад (Ь + ^т + С). = 1/2

Доказательство. Чтобы оценить разницу между вероятностями успехов в Ехр3 и Ехр4, построим специальную цепочку из яи = ди1 + яи2 + 1 (ди1, яи2 —количества запросов к Озепа, аргументами которых являются точки и1 и и2 соответственно) экспериментов НуЬ0,... , НуЬ , каждый из которых будет чуть больше отличаться от Ехр3 и будет чуть больше похож на Ехр4:

ЕХРз = НУЬ0 ^ НУЬ1 -----> НУЬЯп1 +Яп2 = Ехр4. (2)

Далее в экспериментах НуЬ3 будем через г обозначать номер того запроса к оракулу Озепа, параметром которого является либо и1, либо и2 (то есть этот номер учитывает только такие запросы).

Описание эксперимента НуЬ3-: запросы ко всем оракулам, кроме Озепа, обрабатываются так же, как в Ехр3. Запросы к оракулу Озепа обрабатываются следующим образом:

— запрос с номером 1 ^ г ^ ] к оракулу Озепа обрабатываем, как в Ехр4;

— запрос с номером г > ] к оракулу Озепа обрабатываем, как в Ехр3.

Если Р^ — вероятность успеха противника Азе8ракека в эксперименте НуЬ3, то

Яп

|Рг [БИСС3] — Рг [БИСС4] | ^ Е Р — Р]-А .

3 = 1

Опишем набор противников Dj и D', j = 1,...,qu, с помощью которых оценим разность |Pj — Pj-1|. Будем использовать этих противников для решения задачи S-QPCCDH с некоторыми модификациями, а именно: при описании Dj будем считать, что для полученных на вход точек W и Qs известны их кратности относительно P: W = wP и Qs = zP. Для Dj такая модификация не рассматривается (в описании этого алгоритма w и z не участвуют). П р о т и в н и к Dj

Через i будем обозначать номер следующего запроса к оракулу 0send с параметром u1 (пересылка от A к B, в ответ на которую при правильном состоянии выдаётся точка u2) или с параметром u2 (пересылка от B к A, после которой при правильном состоянии A формирует ключ Ka). Эти запросы будем обозначать S2 и S3. Кроме того, Dj особым образом обрабатывает запросы с параметрами (ind, salt), которые будем обозначать S1 .

Противник Dj обрабатывает запросы ко всем оракулам, кроме 0send, так же, как в Exp3. Запросы к оракулам 0send обрабатываются следующим образом:

— Запрос S1:

1) Если i ^ j, то Dj выбирает случайный x*, в качестве ответа возвращает W+x*P.

2) Если i > j, то Dj обрабатывает запрос так же, как в Exp3.

— Запрос S2 (параметр u1):

1) Если i < j, то запрос обрабатывается так же, как в Exp4.

2) Если i = j, то в ответ на запрос возвращается (B,u2 = W). В качестве ответа на первом шаге задачи S-QPCCDH возвращает (st,Y = u1), получая в ответ пароль (st, PW'). Устанавливает пароль, разделяемый участниками A и B, равным PW', и устанавливает ключ

Kb = H256((m/q(w — zr') mod q)(u — r'Qs)),

где r' = F(PW', salt, 2000).

3) Если i > j, то запрос обрабатывается так же, как в Exp3.

— Запрос S3 (параметр u2):

1) Если i < j, то запрос обрабатывается так же, как в Exp4.

2) Если i = j, то возвращает (st, Y = u2) в качестве ответа на первом шаге задачи S-QPCCDH. Получает в ответ (st, PW'). Устанавливает PW' в качестве пароля, разделяемого между A и B. Устанавливает ключ

Ka = H256((m/q(w + x* — zr') mod q)(u — r'Qs)),

где r' = F(PW', salt, 2000).

3) Если i > j, то запрос обрабатывается так же, как в Exp3.

Из запросов к оракулу Он противник Dj извлекает ключи K (то есть точки, которые умножаются на m/q). Для каждой точки K он формирует две точки K' = K и K'' = K — x*(Y — rQs). В качестве ответа Dj выдаёт список из 2qH точек

{K1 ,K1',K2 ,K»,...,K> н ,K';H}.

П р о т и в н и к Dj'

Этот противник отличается от Dj тем, что при обработке запросов S2 и S3 для установки ключа он использует функцию H', к которой у AsespakEka нет доступа.

Отметим два важных обстоятельства, которые позволяют с помощью описанных противников оценить разность |Pj — Pj-1|.

С точки зрения Азе8РЛКека поведение противника ^, то есть то, как он обрабатывает запросы к оракулам 08епа, Оехес и т.д., полностью совпадает с экспериментом НуЪ^, поскольку «честная» обработка запросов к 08епа начинается лишь с ] + 1-го запроса. Для противника ^ «честная обработка» запросов к С8епа начинается уже с ]-го запроса. Например, чему бы ни был равен параметр и1 в запросе Б2, множитель, на который умножается точка и1 — г'(3, равен кратности точки, которая была возвращена в качестве ответа, то есть Ш, после снятия «маски» г'(3. Таким образом, А, получив данный ответ, получит тот же ключ, что и В, если А изначально (то есть на запрос Б1) моделировался в соответствии с протоколом.

Поведение противника в экспериментах ^ и ^ будет отличаться лишь в том случае, если он сделает запрос к оракулу Он с параметрами, среди которых будет точка СБН(щ — г'(3, и2 — г'(3), где и1 или и2 присутствовали в ]-м запросе Б2 или Б3. Если такой параметр в запросах к Он был, то найти СБИ(Ш — г'(3,У — г'(3) можно, так как

К а = СБН(щ — г'(з, Ш + х*Р — г^3) = СБИ(Ш — г'(з, У — г^3) + х*(У — г'(з), Кв = СБН(щ — Ш — г^3) = СБН(Ш — У — г^3).

Учитывая способ формирования выходного списка из 2qн точек противника Е1-, можно заключить, что искомое решение в нём найдётся. Таким образом, вероятность того, что среди параметров запросов к Он найдётся СБН(щ — г'(3,и2 — г'(3) с и1,и2, фигурировавшими в ]-м запросе Б2 или Б3, можно оценить сверху наибольшей вероятностью успеха при решения задачи Б^РССВН противником, работающим за время г + qslт + С, где qs1 —количество запросов Б1 к участнику А; С — некоторая фиксированная константа. Таким образом, выполнено следующее неравенство:

Чи

|Рг [БИССз] — Рг [ЯиСС4] | ^ Е 1Р — Р-1| ^ qsend ■ 1п8ес8_^РСССН|р|'2ад (г + qs.iT + С).

= 1/2 3~

Лемма 2 доказана. ■

Учитывая все полученные оценки, можно заключить, что выполнено неравенство

Рг [БИССе] — 2

^ (20ехес + qsend)2 т СБН/, , о N I

^ --- + qн 1п8еС (г + 2тqexec) +

+qsend ■ 1п8ес8_^РСССН|р|>2ад(г + qSlT + С).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Из этого соотношения непосредственно следует доказываемое неравенство для 1п8есАЕ||лкЕКА(г^н,qsend,qexec,qrev). Теорема 5 доказана. ■

6. Оценка стойкости 8Е8РЛКЕ 6.1. Используемые подзадачи Для обоснования стойкости протокола БЕБРАКЕ помимо модели, описанной в п. 3, введём несколько дополнительных задач, которые выступят в роли промежуточных. Отличия между всеми используемыми моделями заключаются в том, как работает оракул Оаи^.

Отметим особенность промежуточных задач. Оракулы, с помощью которых формулируется угроза для БЕБРАКЕкА и БЕБРАКЕ, возвращают «честные» данные при Ь = 1 и случайные при Ь = 0. В задачах 1НМАС и 2НМАС мы поменяли смысловую

нагрузку значений, возвращаемых оракулом Оаи^: в этих задачах «более честные» данные возвращаются при Ь = 0, а не при Ь = 1. Это сделано для удобства оценки основных параметров.

6.2. Задача 1НМАС

В этой задаче противник имеет доступ ко всем оракулам, к которым имеет доступ противник в модели для протокола БЕБРАКЕ. Отличие состоит в том, что оракул Оаи^ возвращает не пару строк, а либо М'А (при Ь =1), либо МА (при Ь = 0).

6.3. Задача 2НМАС

В задаче 2НМАС оракул Оаи^ в ответ на запрос возвращает противнику либо строки (МА, М') (при Ь =1), либо строки (Ма, М") (при Ь = 0). Строки определяются следующим образом:

1) Ма = НМАСкЛ,(ТАЦШБА,);

2) МА = НМАСк(ТаЦЮБа,) и М' = НМАСк(Тв ЦШБ^), где К' £ ^е;

3) М'' = НМАСк»(Тв 11ЮБА,г), где К'' £ ^

6.4. Модель противника «с предупреждением»

Заметим, что преобладание А^(А) некоторого противника, решающего задачу распознавания для бита Ь, можно преобразовать следующим образом:

2рг [A = 1|b = 1] + 1 (1 — Pr [A = 1|b = 0])

1

Adv(A) = 2Pr [SUCC] — 1 = 2

= Pr[A = 1|b = 1] — Pr [A = 1|b = 0]. Далее в основном будем оценивать именно таким образом преобразованную величину.

Теорема 6. Справедливо соотношение

1п8еС1НМАС(^ qexec, qsend, qH, qHMAC , qcheck) ^

1

2"

^ InSeCAESPAKEKA (t + qHMAC + qcheck, qexec, qsend, qH) + o —

Доказательство. Пусть А — противник, решающий задачу 1НМАС. Опишем противника А', реализующего угрозу отличения ключа для протокола БЕБРАКЕкА и использующего А в качестве чёрного ящика. А' транслирует все запросы к имеющимся в его распоряжении оракулам (Оехес, О8епа, Огеу и Он) и их ответы без изменений. При запросе к оракулу О^еск противник А' делает запрос к Огеу, получая ключ того оракула, для которого А хочет получить значение аутентификационных данных. После этого А' возвращает А «честное» значение запрашиваемых им данных, используя полученный ключ и оракул Оимлс. Если А делает запрос к оракулу Оаи^, то А' делает запрос к О^^ получая либо случайный ключ К', либо истинный ключ К, который хранит тестируемый оракул. После этого А' передает А значение НМАС, вычисленное на полученном ключе. В качестве ответа А' возвращает значение, противоположное тому, которое вернул А.

Из описания видно, что А' полностью моделирует эксперимент, в условиях которого работает противник А. Преобладание А^аЕ|РакЕкл (А') отличается от преобладания А^ с (А) не более чем на величину порядка 2 п, что объясняется тем, что значение НМАС на случайно выбранном ключе может совпасть со значением НМАС на сессионном ключе атакуемого оракула. Поэтому

' 1

2п

AdvAKPAKEKA (A') ^ Adv1HMAC (A) — o 1

Поскольку InSeC^lfAKE^ (t + QHMAC + Qcheck, Qexec, Qsend, QH) ^ AdvAESfAKEKA (A'), то AdViHMAc(A) = InSeC1HMAC(t, Qexec, Qsend, QH, QHMAC , Qcheck) ^ ^ InSeCSESf AKEka (t + QHMAC + Qcheck, Qexec, Qsend, Qh ) + 0 — .

Теорема 6 доказана. ■

Теорема 7. Справедливо соотношение

Insec2HMAC(t , Qexec, Qsend, QH, QHMAC , Qcheck) ^ ^ InSeC1HMAC(t + 1, Qexec, Qsend, QH, QHMAC, Qcheck + 1) +

2n-1

Доказательство. Пусть A G A(t, Qexec, Qsend, Qh, Qhmac, Qcheck) —противник, решающий задачу 2HMAC с преобладанием Insec2HMAC(t, Qexec, Qsend,qh, QHMAC, Qcheck). Построим противника A', использующего A в качестве чёрного ящика и решающего задачу 1HMAC.

A' ничего не меняет во взаимодействии A со всеми доступными ему оракулами, кроме Oauth. Если A делает запрос к оракулу Oauth, то A' делает запрос к своему оракулу Oauth и пересылает противнику A его ответ и значение M'' функции HMAC, вычисленное на случайно выбранном ключе K''. В итоге противник A фактически отличает следующие ситуации: он получил либо пару (Ma, M''), либо пару (M'A,M''). Отличие от «честного» с точки зрения A эксперимента состоит в том, что пара (MA, M'') порождена с помощью двух независимо выбранных случайных ключей.

Справедливо соотношение

Adv1HMAC(A') = Pr [A = 1|A ^ (MA, M'')] - Pr [A = 1|A ^ (MA, M'')] = = Pr [A = 1|A ^ (MA, M'')] - Pr [A = 1|A ^ (MA, M')] +

+ Pr [A = 1|A^ (MA,M')] - Pr [A = 1|A^ (Ma, M'')] ^ -2<QHMAC + Adv2HMAC(A).

4-v-' 2n

=Adv2HMAC(A)

Действительно, первая из двух оцениваемых разностей не превосходит преобладания наилучшего противника, работающего с параметрами противника A и решающего задачу отличения пары выходов случайной функции, полученных на одном случайном ключе, от пары выходов случайной функции, полученных на двух независимых случайных ключах. Противник A сможет это сделать лишь в том случае, если среди его запросов к Ohmac присутствовал либо ключ K', либо ключ K'', один из которых öauth использовал в процессе работы. Поскольку оба ключа выбираются случайно, то вероятность такого события не превосходит 2qHMAC/2n.

Отметим также, что противник A' в процессе работы дополнительно порождает случайный ключ K'' и делает дополнительный запрос к оракулу Ohmac. В итоге получаем

Adv2HMAC(A') ^ Adv1HMAC(A') + QH-C =

1HMAC QHMAC = Insec (t + ^ Qexec, Qsend, QH, QHMAC, Qcheck + 1) +--rn_ 1 .

Теорема 7 доказана. ■

Теорема 8. Справедливо соотношение

InSeCsESPAKE (t , qexec, qsend, qcheck, qH, qHMAC) ^

^ 2 ■ InSeCSESPAKEKA (t + qHMAC + qcheck + 2, qexec, qsend, qH) + =r- + o{ ^

Доказательство. Пусть A G A(t, qexec, qsend, qcheck, qH, qHMAC) произвольный противник, реализующий угрозу для протокола SESPAKE с преобладанием AdvsESPAKE(A). Опишем противника A', который использует A для реализации угрозы для протокола SESPAKEka. A' использует A так же, как это описано в теореме 6. Таким образом, если оракул 0test вернул случайный ключ К', то противник A в ответ на запрос к 0auth получит пару (M'A, M') = (HMACk(TaIIIDSai), HMACk(TbHlDSa,i)), иначе —пару (Ma, M) = (HMACk^(TaIIIDS^), HMACk^(TbIIIDSA,i)). Поскольку в качестве ответа A' возвращает то, что вернул A, то для преобладания Adv(A') выполнено соотношение

Adv(A') = Pr [A = 1|(Ma,M)] — Pr [A = 1|(MA,M')] =

= Pr [A = 1|(Ma,M)] — Pr [A = 1|(Ma,M'')] + 4-v-'

S

+ Pr [A = 1|(Ma,M'')] — Pr [A = 1|(MA,M')],

4-V-'

T

где M'' = HMACK»(TBIIIDSAi) и К'' V256. Заметим, что S равно AdvSESPAKE(A).

Оценим величину T, то есть преобладание противника A в задаче отличения следующих ответов (Ma, M'') и (MA, M') оракула 0auth. Оценим сверху величину — T, получив тем самым нижнюю оценку для T. Для — T справедливо соотношение — T = = Pr [A = 1I(M'A,M')]—Pr [A = 1|(Ma,M'')] ^ Insec2HMAC(t,qexec,qsend,qcheck,qH, qHMAC), так как A — конкретный противник из множества A(t, qexec, qsend,qcheck,qH, qHMAC), а стоящее справа в неравенстве преобладание характеризует наиболее успешного при решении задачи 2HMAC противника из этого множества. Используя теоремы 6 и 7, получаем неравенство

T ^ —InSeCsESPAKEKA (t + qHMAC + qcheck + 2 , qexec, qsend, qH) —hma— o [ —

В итоге имеем

(t + qHMAC + qcheck, qexec, qsend, qH) ^ SESPAKE KA (A') ^

^ AdvsESPAKE(A) —InSeCAES)pPAKEKA (t+qHMAC+qcheck+2, qexec, qsend, qH)— — О ( —

Следовательно,

AdvsESPAKE (A) = InSeCsESPAKE (t , qexec, qsend, qcheck, qH, qHMAC) ^

^ 2 ^se«-SESPAKEka (t + qHMAC + qcheck + 2, qexec, qsend, qH) + ^гг" + О — .

Теорема 8 доказана.

Суть оценки, доказанной в теореме 8, состоит в том, что добавление к протоколу SESPAKEka этапа подтверждения ключа даёт противнику лишь критерий для проверки сеансового ключа, но не даёт никаких существенно новых возможностей для атаки на пароль. Это объясняется тем, что слагаемые дымлс/2га-1 и O(1/2n) пренебрежимо малы по сравнению с первым слагаемым. Таким образом, наилучшим способом для атаки на пароль является его угадывание с активным вмешательством во взаимодействие по каналу, о чём говорит то, что первое слагаемое по порядку совпадает с fend/|D|.

6.5. Модель противника «без предупреждения»

Ранее рассмотрено преобладание AdvSESPAKE противника Asespake, который с помощью запросов к оракулу Ocheck предупреждает, по отношению к каким сессиям он не будет пытаться осуществить угрозу. Теорема 8 относится именно к этой модели противника. Переобозначим его преобладание через AdvSESPAKE,w.

Теперь рассмотрим преобладание AdvSESPAKE противника Asespake, который может делать запросы к оракулу Oauth для любого участника протокола, независимо от того, сделан ли по отношению к нему запрос к оракулу Ocheck или нет. Условия, в которых работает противник, ничем не отличаются, кроме формата ответа на запрос к оракулу Oauth:

— оракул Oauth принимает на вход пару (A,i), случайно и равновероятно выбирает значение b € {0,1} и в зависимости от b возвращает либо M' (если b = 0), либо MB (если b = 1). При этом M' = HMACK(TBHlDSAi), где K V256, MB = HMACka, (Tb UIDSaJ.

Противник может делать запрос к оракулу Oauth только для тех оракулов, которые допускают тестирование. Оракулом, допускающим тестирование, называется такой оракул OA, для которого противник не получил значение Mb тривиальным образом, то есть не сделал запрос к Ocheck для оракула, разделяющего с OA общий ключ. Оценим преобладание InsecSESPAKE.

Теорема 9. Справедливо соотношение

InSeCsESPAKE (t , Qexec, Qsend, qH, qHMAc) ^ ^ Qsend

■ InsecsESPAKE ,w (ti Qexec, Qsend, qH, qHMAC) +

+2qH ■ InsecCDH(t + т(2feec + Qsend)) + O +2fMAC) .

Доказательство. Пусть Asespake — противник, действующий в описанной модели, с параметрами t, Qexec, Qsend, Qh , Qhmac и преобладанием InsecsESPAKE (t, Qexec, Qsend, QH, Qhmac). Введём на его основе двух вспомогательных противников ASESPAKEsend и ASESPAKEexec.

Будем называть сессию Send-сессией, если она инициирована посредством запроса к оракулу Osend, и Ехес-сессией — к оракулу Oexec. Через sauth будем обозначать ту сессию, по отношению к участнику которой противник осуществил запрос к оракулу Oauth. Тот факт, что сессия sauth является Send-сессией (Ехес-сессией), будем обозначать через sauth € Send (sauth € Ехес).

Противник ASESPAKEsend использует противника ASESPAKE в качестве чёрного ящика и работает как транслятор между ним и оракулами, вплоть до обращения к оракулу Oauth. Если зафиксировано обращение противника Asespake к оракулу Oauth для

Send-сессии (sauth G Send), то AsESPAKEsend выдаёт тот же бит, что и Asespake; если сделано обращение к Exec-сессии (sauth G Exec), то ASESPAKEsend независимо от выхода оракула Oauth выдаёт случайный бит. Через SUCCsespake, SUCCsESPAKEsend и SUCCSESPAKEexec будем обозначать событие, заключающееся в успешности решения задачи ложной аутентификации противником Asespake, AsESPAKEsend и AsESPAKEexec соответственно.

Верно следующее равенство:

Pr [ SUCCSESPAKEsend ] =

1 (3)

= Pr [ SUCCsespake I Sauth G Send ] ■ Pr [ Sauth G Send ] + ^ ■ Pr [ Sauth G Exec ] ,

где Pr [ sauth G Send ] (Pr [ sauth G Exec ])—вероятность того, что противник сделал запрос к оракулу 0auth по отношению к Send-сессии (Exec-сессии). Имеем в виду, что Pr [ Sauth G Send ] + Pr [ Sauth G Exec ] = 1.

Противник ASESPAKEexec работает аналогичным образом, только при запросе Asespake для Exec-сессии он выдаёт тот же бит, что и Asespake, а при запросе к Send-сессии — случайный бит:

Pr [ SUCCSESPAKEexec ] =

1 (4)

= Pr [ SUCCsespake I Sauth G Exec ] ■ Pr [ Sauth G Exec ] + ^ ■ Pr [ Sauth G Send ].

Оценим преобладание противника ASESPAKEexec.

Лемма 3. Справедливо неравенство

Adv (ASESPAKEexec) ^ 2qH ■ InSeCCDH(t + т(2qexec + qsend) + 3Т) + О +2qraHMA^ .

Доказательство. Пусть ASESPAKEexec —противник с параметрами t, qexec, qsend, qH, qHMAC, решающий задачу ложной аутентификации с преобладанием Adv (ASESPAKEexec). Построим на его основе противника ACDH, решающего вычислительную задачу CDH, и оценим снизу его вероятность успеха Adv (Acdh).

Пусть противнику Acdh необходимо решить задачу CDH для произвольных точек Qi и Q2. Будем использовать противника ASESPAKEexec в качестве чёрного ящика.

Противник ACDH запускает противника AsESPAKEexec и симулирует выполнение протокола, где в ответ на запрос к оракулу 0exec в качестве ui и u2 использует точки (Qi + аР) — Qpw и (Q2 + (3P) + Qpw, а и в — случайно выбранные значения. При этом в качестве сессионного ключа при запросах противника AsESPAKEexec к оракулам 0check и 0auth противник Acdh использует значение произвольной неизвестной и недоступной для вычисления противнику ASESPAKEexec случайной функции H'(ui,u2). Затем он случайно выбирает один из qH запросов к оракулу Oh (обозначим этот запрос через R), которые осуществлял противник AsESPAKEexec, и вычисляет значение T следующим образом:

T = R — eQi — aQ2 — авР,

где соответствующие а и в выбираются по значениям точек ui и u2, исходя из запросов к оракулу Ohmac и ответов на запросы к оракулу Oh. Вероятность того, что для разных а и в мы получим одинаковые ключи, равна О (2-n).

Если противник А.8Е8РАКЕехес правильно вычислил значение Я = СВИ(м1 + Qpw, и2 — QPW), то Т равно искомому значению CDH(Q1, Q2). Тогда для построенного противника преобладание А^ (Асбн) равно Рг [Т = CDH(Q1,Q2)].

Обозначим через А событие, при котором среди запросов к оракулу Он есть значение, из которого можно получить искомое CDH(Q1,Q2) по указанной формуле. Тогда верно следующее соотношение:

1п8вОССН(£ + Т(2^хес + Явепа) + 3т) ^ Аау (Лсвн) = — ■ Рг [ А ].

Я.н

Рассмотрим преобладание Adv (А8Е8РАКЕехес) = 2Рг [ ВиСС8Е8РАКЕехес ] — 1 противника

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

А8Е8РАКЕехес :

Рг [ 8иССяЕ8РАКЕехес ] = Рг [ ВиССяЕ8РАКЕехес | А ] -Рг [ А ] +

4-^-'

+Рг [ ВиСС8Е8РАКЕехес | А ] (1 — Рг [ А ]) < Рг [ А ] + Рг [ 8иССвЕ8РАКЕехес | А ] . (5)

<1

Рассмотрим случай, когда противнику необходимо угадать значение бита Ь при условии, что среди запросов к оракулу Он нет значения CDH(u1 + QPW,и2 — Qpw), и оценим вероятность его успеха Рг [ ВиСС8Е8РАКЕехес | А ].

В силу случайности функции Н, данные, полученные в ответ на запрос к оракулу О. со значениями, не равными CDH(ul + Qpw, и2 — Qpw), случайны и поэтому не несут никакой информации о настоящих сессионных ключах. Следовательно, в этом случае перед противником встает следующая задача: исходя только из ответов на запросы к оракулам О^еск и Оаи^, определить, на каком ключе вычислено значение НМАС. Так как в такой ситуации для противника и при Ь = 0, и при Ь =1 ключи выглядят одинаково случайными, то угадать значение бита с вероятностью, равной единице с точностью до О (2-п), он может только с помощью следующей тактики: случайно выбрать ключ, вычислить на нём значения НМАС и сравнить полученные значения с ответами на запросы к оракулам О^еск и Оаи^. Если вычисленные на выбранном ключе значения НМАС совпали с ответом на запрос и к оракулу Осьеск, и к оракулу Оаи^, то противник выдаёт ЬЬ = 1, и наоборот, если вычисленные на выбранном ключе значения НМАС совпали с ответом на запрос либо к оракулу Осьеск, либо к оракулу Оаи^, то выдаёт Ь' = 0.

Приближённое равенство вероятности успеха единице (с точностью до О (2-п)) объясняется вероятностью ошибиться за счёт случайности функции Н, либо когда значения НМАС, вычисленные на случайно выбранном ключе, совпали и с ответом на запрос к оракулу Осьеск (Ма), и с ответом на запрос к оракулу Оаи^ при Ь = 0 (М') (противник ошибочно выдаст Ь' = 1), либо когда при Ь =1 значения НМАС, вычисленные на случайно выбранном ключе, совпали только с одним из значений Ма или Мв (противник ошибочно выдаст Ь' = 0). Тогда

Рг [8иСС8Е8РЛКЕ„ | А] = 2 + о(Ян +2ПНМАС).

Отсюда с учётом (5) следует, что

2Рг[А] > Adv(ЛЕ8РАКЕ„) — о(Ян ).

Следовательно,

InSeCCDH(t + т(2qexec + qsend) + 3т) ^ ^Adv (AsESPAKEexec) — o(qH +2qnHMACУ)

Лемма 3 доказана. ■

По формуле полной вероятности верно следующее равенство:

Pr [ SUCCseSPAKE ] = Pr [ SUCCseSPAKE | Sauth G Send ] ■ Pr [ Sauth G Send ] + ^ +Pr [ SUCCsespake | Sauth G Exec ] ■ Pr [ Sauth G Exec ].

Преобразуем выражения (3) и (4):

Pr [ SUCCsespake I Sauth G Send ] ■ Pr [ Sauth G Send ] =

1

= Pr [ SUCCsESPAKEsend ] — 2 Pr [ Sauth G Exec ] ;

Pr [ SUCCsespake I Sauth G Exec ] ■ Pr [ Sauth G Exec ] =

1

= Pr [ SUCCsESPAKEexec ] — 2 Pr [ Sauth G Send ]. Подставив (7) и (8) в правую часть равенства (6), окончательно получим

Pr [ SUCCSESPAKEsend ] = Pr [ SUCCSESPAKE ] — Pr [ SUCCSESPAKEexec ] + Ц",

или

InSeCsESPAKE send (t, qexec, qsend, qH, qHMAC) = = InSeCsESPAKE (t , qexec, qsend, qH, qHMAC ) — InSeCSESPAKEexec (t, qexec, qsend, qH, qHMAC ).

Воспользовавшись леммой 3, приходим к следующей оценке:

InSeCsESPAKE send (t, qexec, qsend, qH, qHMAC) ^ InSeCsESPAKE(t, qexec, qsend, qH, qHMAC)— —2qH ■ InSeCCDH(t + т(2qexec + qsend)) — o(qH + qHMAC^

2п )

Построим противника «с предупреждением» Аяеяраке,™ на основе противника «без предупреждения» Аяеярлке, используя его в качестве чёрного ящика. Для осмысленного противника «с предупреждением» логичнее делать запрос к оракулу 0аи^ для участника Бепё-сессии, так как преобладание противника АяЕЯРЛКЕехес сравнимо с вероятностью успеха решения задачи СОН. Поэтому вместо противника Аяеярлке можно рассматривать противника Авеяраке^^ . В процессе атаки на протокол противник «с предупреждением», работая как транслятор между оракулами и противником ЛзЕ8РАКЕзеЫ, случайно и равновероятно выбирает одну из Бепё-сессий, инициированных противником Аяеярлке^, и делает запрос к оракулу 0аи^ для участника выбранной сессии.

Если противник Авеяраке^ сделал запрос к оракулу С^еск для участника выбранной противником Аяеярлке,™ сессии, Аяеярлке,™ возвращает противнику Аяеярлке^ первую часть ответа на сделанный им запрос к оракулу 0аи^. Если противник Аяеярлке^ сделал запрос к оракулу СсЬеск для участника другой сессии, Аяеярлке,™ просто транслирует этот запрос.

Если противник AsESPAKEsend сделал запрос к оракулу Oauth для участника выбранной противником AsESPAKE,w сессии, AsESPAKE,w возвращает противнику AsESPAKEsend вторую часть ответа на сделанный запрос к оракулу Oauth, а в качестве результата выдаёт тот же бит, что и противник AsESPAKEsend • Если AsESPAKEsend сделал запрос к оракулу Oauth для участника другой сессии, ASESPAKE,w случайно выбирает ключ, вычисляет на нём значение M' и передаёт его противнику AsESPAKEsend, а в качестве результата выдаёт случайное значение бита.

Для противника Asespake,w вероятность того, что выбранная им сессия совпадёт с сессией, для участника которой ASESPAKEsend сделает запрос к оракулу Oauth, равна 1/qsend. Следовательно, преобладание ASESPAKE,w меньше преобладания ASESPAKEsend не более чем в qsend раз:

InSeCsESPAKE ,w (ti qexec? qsend, qH, qHMAC) ^ -InSeCsESPAKE send ( , qexec, qsend, qH, OHmac).

qsend

Отсюда получаем искомую оценку. Теорема 9 доказана. ■

7. Комментарии и пояснения

Обсудим некоторые конструктивные особенности протокола SESPAKE и их влияние на его свойства.

7.1. Ограничения количества сеансов для одного пароля

Говоря неформально, протокол SESPAKE считается стойким, если лучшим способом определения сессионного ключа (или какой-либо информации о нём) является опробование пароля путём взаимодействия с участником сети (будем называть такой способ online-угадыванием пароля). Недопустимой для стойкого протокола альтернативой online-угадыванию является практически осуществимый перебор, который не требует такого взаимодействия (offline-перебор).

При online-угадывании пароля противником каждая неудачная попытка приводит к разрыву соединения, вызванному тем, что проверки, предусмотренные протоколом SESPAKEkc, не проходят. Отсутствие ограничений на количество возможных неудачных попыток соединения приводит к существенному увеличению вероятности online-угадывания. В связи с этим в протоколе SESPAKE должно быть предусмотрено ограничение как количества неудачных попыток соединения подряд, так и количества неудачных соединений для данного установленного пароля. Необходимо также вводить ограничение на общее количество соединений — как удачных, так и неудачных. Эти ограничения являются важной частью протокола.

Отметим влияние указанных ограничений на оценку теоремы 4. Так, например, в слагаемом (2qexec + qsend)2/q величина qexec органичена количеством допустимых сеансов работы протокола, а qsend — ещё и количеством допустимых неудачных соединений для данного пароля. Обычно допустимое количество неудачных соединений полагается равным нескольким десяткам, а допустимое количество сеансов ограничивается величиной порядка 107-109. В таком случае, если q « 2256, то

(2qexec + qsend) ^ (д _ Ю9)2/2256 < 264 / 2256 _ 2~192

q ^ ^ .

7.2. Обработка случая точки малого порядка

Рассмотрим причины, по которым при выработке общего ключа случай, когда m, / m, \

— Qb _ 0e (или — Qa _ 0e ), обрабатывается специальным образом. Под «специ-qq

альной обработкой» понимается использование флага Zb и точки P в качестве Qb , m

если — QB = 0E.

q

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

Пусть счётчик неудачных попыток аутентификации уменьшается в начале про-

m

токола SESPAKEkc, а случай — Qb = 0e не обрабатывается специальным образом.

q

Тогда противник, имитируя сторону A, посылает стороне B точки щ = X — Qpw' , где m

— X = 0E, для разных PW' и измеряет время, через которое B отвечает на запрос; q

после ответа стороны B противник разрывает соединение. Таким образом, сторона B не уменьшает счетчик неудачных попыток соединения, а измеренное время даёт противнику критерий для определения правильного пароля — для него время будет существенно меньше, так как операция вычисления кратной точки (для получения src) окажется вырожденной.

m

Разница во времени проверки условия — QB = 0E для случаев QB = 0E и QB = 0E

q

несущественна, так как кофактор на практике достаточно мал. Это объясняется тем, что характеристика p базового поля в целях оптимизации выбирается минимально возможной, чтобы достичь установленных в [28] значений параметра q (2254 < q < 2256 или 2508 < q < 2512). Поэтому значения q и p оказываются близкими, а значит, малым оказывается и значение кофактора m/q.

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

Заключение

Протоколы типа PAKE являются одним из наиболее мощных механизмов для достижения стойкости аутентификации с использованием параметров, которые пользователь способен запомнить. Разработанный и стандартизированный в России протокол SESPAKE является самодостаточным протоколом такого типа, который может применяться в системах, в которых после аутентификации и выработки сеансовых ключей работает протокол защиты данных наподобие подпротокола Record протокола TLS. В настоящей работе приведены оценки стойкости данного протокола, которые позволяют выбирать значения его параметров для достижения требуемых порогов безопасности конечными реализациями.

ЛИТЕРАТУРА

1. Bellovin S. and Merritt M. Encrypted key exchange: password-based protocols secure against dictionary attacks // Proc. IEEE Symp. Research in Security and Privacy, Oakland, CA, USA, May 1992. P. 72-84.

2. Bellare M. and Rogaway P. The AuthA protocol for password-based authenticated key exchange // Contributions to IEEE P1363. March 2000. https://web.cs.ucdavis.edu/ ~rogaway/papers/autha.pdf

3. Bresson E., Chevassut O., and Pointcheval D. Security proofs for an efficient password-based key exchange // Proc. 10th ACM Conf. CCS'03. 2003. P. 241-250.

4. Boyko V., MacKenzie P., and Patel S. Provably secure password authenticated and key exchange using Diffie - Hellman // LNCS. 2000. V. 1807. P. 156-171.

5. Canetti R., Halevi S., Katz J., et al. Universally composable password-based key exchange // LNCS. 2005. V. 3494. P. 404-421.

6. Bellare M., Canetti R., and Krawczyk H. A modular approach to the design and analysis of authentication and key exchange protocols (extended abstract) // Proc. 30th Ann. ACM Symp. Theory Comput. ACM Press, 1998. P. 419-428.

7. Bellare M. and Rogaway P. Entity authentication and key distribution // LNCS. 1994. V. 773. P. 232-249.

8. Bellare M., Pointcheval D., and Rogaway P. Authenticated key exchange secure against dictionary attacks // LNCS. 2000. V. 1807. P. 139-155.

9. Abdalla M. and Pointcheval D. Simple password-based encrypted key exchange protocols // LNCS. 2005. V. 3376. P. 191-208.

10. Bender J., FischlinM., and Kugler D. Security analysis of the PACE key-agreement protocol // LNCS. 2009. V. 5735. P. 33-48.

11. Jager T., Kohlar F., Schage S., and Schwenk J. On the Security of TLS-DHE in the Standard Model. Cryptology ePrint Archive: Report 2011/219.

12. Рекомендации по стандартизации Р 50.1.115-2016 «Информационная технология. Криптографическая защита информации. Протокол выработки общего ключа с аутентификацией на основе пароля». М.: Стандартинформ, 2016.

13. Алексеев Е. К., Ахметзянова Л. Р., Ошкин И. Б., Смышляев С. В. Обзор уязвимостей некоторых протоколов выработки общего ключа с аутентификацией на основе пароля и принципы построения протокола SESPAKE // Математические вопросы криптографии. 2016. Т. 7. №4. С. 7-28.

14. Abdalla M. Reducing The Need For Trusted Parties In Cryptography. https://tel. archives-ouvertes.fr/tel-00917187. 2011.

15. Bellare M. Practice-oriented provable-security // LNCS. 1998. V. 1396. P. 221-231.

16. Ahmetzyanova L. R., Alekseev E. K., Karpunin G. A, and Smyshlyaev S. V. On cryptographic properties of the CVV and PVV parameters generation procedures in payment systems // Математические вопросы криптографии. 2018. Т. 9. №2. С. 23-46.

17. Goldreich O. Foundations of Cryptography. V. 1. N.Y.: Cambridge University Press, 2006.

18. Алексеев Е. К., Ахметзянова Л. Р., Зубков А. М. и др. Об одном подходе к формализации задач криптографического анализа // Математические вопросы криптографии. 2020 (в печати).

19. Halderman J. A., SchoenS.D., HeningerN., et al. Lest we remember: Cold-boot attacks on encryption keys // Commun. ACM. 2009. V. 52. No. 5. http://www.cs.umd.edu/class/ spring2016/cmsc414/papers/coldboot.pdf

20. Bellare M., Desai A., Jokipii E., and Rogaway P. A concrete security treatment of symmetric encryption // Proc. 38th Symp. Foundations Comput. Sci. IEEE, 2000. P. 394-403.

21. Abdalla M., Fouque P.A., and Pointcheval D. Password-based authenticated key exchange in the three-party setting // LNCS. 2005. V. 3386. P. 65-84.

22. Bellare M. and Rogaway P. Random oracles are practical: a paradigm for designing efficient protocols // Proc. 1st ACM Conf. CCS'93. 1993. P. 62-73. https://doi.org/10.1145/ 168588.168596

23. Alekseev E., Nikolaev V., and Smyshlyaev S. On the security properties of Russian standardized elliptic curves // Математические вопросы криптографии. 2018. Т. 9. №3. С. 5-32.

24. Рекомендации по стандартизации Р 50.1.111-2016 «Информационная технология. Криптографическая защита информации. Парольная защита ключевой информации». М.: Стандартинформ, 2016.

25. ГОСТ Р 34.11-2012 «Информационная технология. Криптографическая защита информации. Функция хэширования». М.: Стандартинформ, 2012.

26. Рекомендации по стандартизации Р 50.1.113-2016 «Информационная технология. Криптографическая защита информации. Криптографические алгоритмы, сопутствующие применению алгоритмов электронной цифровой подписи и функции хэширования». М.: Стандартинформ, 2016.

27. Vercauteren F. Final Report on Main Computational Assumptions in Cryptography. ICT-2007-216676. ECRYPT II, European Network of Excellence in Cryptology II. D.MAYA.6. 2013.

28. ГОСТ Р 34.10-2012 «Информационная технология. Процессы формирования и проверки электронной цифровой подписи». М.: Стандартинформ, 2012.

REFERENCES

1. Bellovin S. and Merritt M. Encrypted key exchange: password-based protocols secure against dictionary attacks. Proc. IEEE Symp. Research in Security and Privacy, Oakland, CA, USA, May 1992, pp. 72-84.

2. Bellare M. and Rogaway P. The AuthA protocol for password-based authenticated key exchange. Contributions to IEEE P1363, March 2000. https://web.cs.ucdavis.edu/ ~rogaway/papers/autha.pdf

3. Bresson E., Chevassut O., and Pointcheval D. Security proofs for an efficient password-based key exchange. Proc. 10th ACM Conf. CCS'03, 2003, pp. 241-250.

4. Boyko V., MacKenzie P., and Patel S. Provably secure password authenticated and key exchange using Diffie - Hellman. LNCS, 2000, vol. 1807, pp. 156-171.

5. Canetti R., Halevi S., Katz J., et al. Universally composable password-based key exchange. LNCS, 2005, vol.3494, pp. 404-421.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

6. Bellare M., Canetti R., and Krawczyk H. A modular approach to the design and analysis of authentication and key exchange protocols (extended abstract). Proc. 30th Ann. ACM Symp. Theory Comput., ACM Press, 1998, pp. 419-428.

7. Bellare M. and Rogaway P. Entity authentication and key distribution. LNCS, 1994, vol. 773, pp. 232-249.

8. Bellare M., Pointcheval D., and Rogaway P. Authenticated key exchange secure against dictionary attacks. LNCS, 2000, vol. 1807, pp. 139-155.

9. Abdalla M. and Pointcheval D. Simple password-based encrypted key exchange protocols. LNCS, 2005, vol.3376, pp. 191-208.

10. Bender J., Fischlin M., and Kugler D. Security analysis of the PACE key-agreement protocol. LNCS, 2009, vol. 5735, pp. 33-48.

11. Jager T., Kohlar F., Schage S., and Schwenk J. On the Security of TLS-DHE in the Standard Model. Cryptology ePrint Archive: Report 2011/219.

12. Rekomendatsii po standartizatsii R 50.1.115-2016 «Informatsionnaya tekhnologiya. Kriptograficheskaya zashchita informatsii. Protokol vyrabotki obshchego klyucha s autentifikatsiey na osnove parolya» ["Information Technology. Cryptographic Data Security. Password Authenticated Key Establishment Protocol". Recommendations for Standardization R 50.1.115-2016]. Moscow, Standartinform Publ., 2016. (in Russian)

13. Alekseev E. K., Akhmetzyanova L. R., Oshkin I. B., and Smyshlyaev S. V. Obzor uyazvimostey nekotorykh protokolov vyrabotki obshchego klyucha s autentifikatsiey na osnove parolya i printsipy postroeniya protokola SESPAKE [A review of the password authenticated key exchange protocols vulnerabilities and principles of the SESPAKE protocol construction]. Matem. Vopr. Kriptogr., 2016, vol.7, no. 4, pp. 7-28. (in Russian)

14. Abdalla M. Reducing The Need For Trusted Parties In Cryptography. https://tel. archives-ouvertes.fr/tel-00917187. 2011.

15. Bellare M. Practice-oriented provable-security. LNCS, 1998, vol.1396, pp. 221-231.

16. Ahmetzyanova L. R., Alekseev E. K, Karpunin G. A, and Smyshlyaev S. V. On cryptographic properties of the CVV and PVV parameters generation procedures in payment systems. Matem. Vopr. Kriptogr., 2018, vol.9, no. 2, pp. 23-46.

17. Goldreich O. Foundations of Cryptography. Vol. 1. New York, Cambridge University Press, 2006.

18. Alekseev E. K., Axmetzyanova L. R., Zubkov A. M., et al. Ob odnom podkhode k formalizatsii zadach kriptograficheskogo analiza [On one approach to formalization of cryptographic analysis tasks]. Matem. Vopr. Kriptogr., 2020, to be published. (in Russian)

19. Halderman J. A., SchoenS.D., Heninger N., et al. Lest we remember: Cold-boot attacks on encryption keys. Commun. ACM, 2009, vol.52, no. 5. http://www.cs.umd.edu/class/ spring2016/cmsc414/papers/coldboot.pdf

20. Bellare M., Desai A., Jokipii E., and Rogaway P. A concrete security treatment of symmetric encryption. Proc. 38th Symp. Foundations Comput. Sci., IEEE, 2000, pp. 394-403.

21. Abdalla M., Fouque P.A., and Pointcheval D. Password-based authenticated key exchange in the three-party setting. LNCS, 2005, vol.3386, pp.65-84.

22. Bellare M. and Rogaway P. Random oracles are practical: a paradigm for designing efficient protocols. Proc. 1st ACM Conf. CCS'93, 1993, pp. 62-73. https://doi.org/10.1145/ 168588.168596

23. Alekseev E., Nikolaev V., and Smyshlyaev S. On the security properties of Russian standardized elliptic curves. Matem. Vopr. Kriptogr., 2018, vol.9, no.3, pp. 5-32.

24. Rekomendatsii po standartizatsii R 50.1.111-2016 «Informatsionnaya tekhnologiya. Kriptograficheskaya zashchita informatsii. Parol'naya zashchita klyuchevoy informatsii» ["Information Technology. Cryptographic Data Security. Password-Based Key Protection". Recommendations for Standardization R 50.1.111-2016]. Moscow, Standartinform Publ., 2016. (in Russian)

25. GOST R 34.11-2012 «Informatsionnaya tekhnologiya. Kriptograficheskaya zashchita informatsii. Funktsiya kheshirovaniya» [GOST R 34.11-2012 "Information Technology. Cryptographic Data Security. Hash Function"]. Moscow, Standartinform Publ., 2012. (in Russian)

26. Rekomendatsii po standartizatsii R 50.1.113-2016 «Informatsionnaya tekhnologiya. Kriptograficheskaya zashchita informatsii. Kriptograficheskie algoritmy, soputstvuyushchie primeneniyu algoritmov elektronnoy tsifrovoy podpisi i funktsii kheshirovaniya» ["Information Technology. Cryptographic Data Security. Additional Cryptographic Algorithms for Digital Signature Algorithms and Hash Function". Recommendations for Standardization R 50.1.1132016]. Moscow, Standartinform Publ., 2016. (in Russian)

27. Vercauteren F. Final Report on Main Computational Assumptions in Cryptography. ICT-2007-216676, ECRYPT II, European Network of Excellence in Cryptology II. D.MAYA.6. 2013.

28. GOST R 34.10-2012 «Informatsionnaya tekhnologiya. Protsessy formirovaniya i proverki elektronnoy tsifrovoy podpisi» [GOST R 34.10-2012 "Information Technology. Cryptographic Data Security. Processes of Digital Signature Creation and Verification"]. Moscow, Standartinform Publ., 2012. (in Russian)

i Надоели баннеры? Вы всегда можете отключить рекламу.