Лемма разветвления

Материал из testwiki
Перейти к навигации Перейти к поиску

Лемма разветвления (Шаблон:Lang-en) — лемма в области криптографических исследований.

На практике, лемма разветвления широко используется для доказательства безопасности различных схем цифровой подписи и других криптографических конструкций на основе случайного оракулаШаблон:Sfn.

История

Доказана и впервые использована Дэвидом Поинтчевалом и Шаблон:Iw в «Доказательствах безопасности схем подписи», опубликованных в материалах Шаблон:Iw в 1996 годуШаблон:SfnШаблон:Sfn. В их статье лемма о разветвлении определена в терминах противника, который атакует схему цифровой подписи, созданную в модели случайного оракулаШаблон:Sfn (идеализированная хеш-функция, которая на каждый новый запрос выдаёт случайный ответ, равномерно распределённый по области значений, с условием, что если один и тот же запрос поступит дважды, то ответ должен быть одинаковым). Они показывают, что если злоумышленник может подделать подпись с пренебрежимо малой вероятностью, то есть существует некоторая вероятность того, что тот же противник с той же случайной лентой может создать вторую подделку в атаке с другим случайным оракулом.

Лемма была позже обобщена Шаблон:Iw и Грегори Невеном.Шаблон:Sfn

Формулировка

Лемма разветвления (оригинальная)

Первоначальный вариант леммы Шаблон:Sfn, сформулированный и доказанный Поинтчевалом и Стерном, выглядит следующим образом:

Пусть (G,Σ,V) — общая схема цифровой подписи с секретным параметром k. Пусть A — вероятностная машина Тьюринга с некоторым полиномиальным временем работы, вход которой состоит только из открытых данных. Обозначим через Q количество запросов, которые A может задать случайному оракулу. Предположим, что в течение времени T, A дает с вероятностью ε7Q2k, валидную подпись (m,σ1,h,σ2). Тогда есть другая машина, которая имеет контроль над А и производит две валидные подписи (m,σ1,h,σ2) и (m,σ1,h,σ2) такие, что hh за ожидаемое время T084480TQε.

Обобщенная лемма разветвления

Также существует обобщенный вариант этой леммыШаблон:Sfn , сформулированный и доказанный Белларом и Невеном. В отличие от классического варианта леммы Поинтчевала и Стерна, обобщенная лемма оперирует не со схемами подписей и случайными оракулами, а скорее концентрируется на выходном поведении алгоритма, когда он запускается дважды на связанных входах. Это делает её легко применимой в контекстах, отличных от стандартных схем подписи, и отделяет вероятностный анализ от фактического моделирования в доказательстве безопасности, что позволяет использовать более легкие для проверки доказательства. Для понимания связи между леммами следует воспринимать x как открытый ключ и набор чисел (h1,...,hq) как ответы на запросы случайного оракула.
Формулировка обобщенной леммы разветвления:

Зафиксируем целое число q1 и набор H размером h2. Пусть A — вероятностная машина Тьюринга, которая на вход получает набор (x,h1,...,hq;r), где r — случайная лента для A. Пусть A возвращает пару (J,y), где J является целым числом в диапазоне (0,...,q), а второй элемент называется побочным выводом. Предположим далее, что IG — это распределение вероятностей, из которого берется x. Вероятность принятия A обозначаемая acc, определяется как вероятность того, что J1 в эксперименте
x ← IG; h1,...,hq ← H; (J,σ) ←A(x,h1,...,hq)
Определим «алгоритм разветвления» FA для заданной машины Тьюринга A, который принимает входные данные x, следующим образомШаблон:Sfn:
  1. Выберем случайную ленту r для A.
  2. Выберем h1,...,hq равномерно из H.
  3. Запустим A c набором (h1,...,hq;r) на входе, чтобы получить набор (J,y).
  4. Если J=0, то вернуть (0,0,0).
  5. Выберем h1,...,hq равномерно из H.
  6. Запустим A с набором (x,h1,...,hJ1,hJ,...,hq;r) на входе, чтобы получить набор (J,y).
  7. Если J=J и hJhJ, вернуть (1,y,y), в противном случае вернуть (0,0,0).
Пусть frk будет вероятностью того, что FA выдает тройной результат, начиная с 1, при условии, что вход x выбран произвольно из IG:
frk=Pr[b=1: x ← IG; (b, σ, σ′) ← FA(x)].
Тогда:
frkacc(accq1h)(1)
Что равносильно
acc(qh+qfrk)(2)

Идея состоит в том, что A запускается два раза в связанных исполнениях, где процесс «разветвляется» в определённый момент, когда некоторые, но не все входные данные были исследованы. Точка, в которой процесс разветвляется, может быть тем, что мы хотим определить позже, возможно, основываясь на поведении A в первый раз: вот почему утверждение леммы выбирает точку ветвления J на основании выходных данных A. Требование о том, что hJhJ является техническим требованием, используемым многими леммами. (Обратите внимание, что поскольку hJ и hJ выбираются случайным образом из H, то, если h большое, что нормально, вероятность того, что два этих значения не будут различаться, чрезвычайно мала.)

Пример

Например, пусть A будет алгоритмом взлома схемы цифровой подписи в модели случайного оракула. Тогда x будет открытым параметром (включая открытый ключ), который атакует A, а hi будет выводом случайного оракула на его i-й отдельный вход. Лемма разветвления полезна, когда было бы возможно, учитывая две разные случайные подписи одного и того же сообщения, решить некоторую сложную проблему. Однако противник, который подделывает один раз, порождает того, кто подделывает дважды одно и то же сообщение с немалой вероятностью благодаря лемме о разветвлении. Когда A пытается подделать сообщение m, мы считаем вывод A следующим образом (J,y), где y — подделка, а J таков, что m был J-м уникальным запросом к случайному оракулу (можно предположить, что A запросит m в некоторый момент, если A должен быть успешным с незначительной вероятностью). (Если A выдает неправильную подделку, мы считаем, что выходные данные (0,y).)

По лемме разветвления вероятность frk получения двух хороших подделок y и y для одного и того же сообщения, но с разными случайными выходами оракула (то есть hJhJ) не пренебрежимо мала, когда параметр acc также не незначителен. Это позволяет нам доказать, что если основная сложная проблема действительно сложна, то никакой злоумышленник не может подделать подписи. В этом суть доказательства, данного Пойнтхевалом и Стерном для модифицированной схемы подписи Эль-ГамаляШаблон:Sfn.

Доказательство обобщенной леммы

ДокажемШаблон:Sfn сначала (1), потом докажем что из (1) следует (2). Пусть для каждого x величина acc(x) будет обозначает вероятность того, что J1 в эксперименте

h1,...,hq ← H; (J,σ) ←A(x,h1,...,hq).

Также пусть frk(x)=Pr[b=1: (b, σ, σ′) ← FA(x)].
Мы утверждаем, что для любого x,

frk(x)acc(x)(acc(x)q1h)(3).

Затем, зная x ← IG и с учетом что E[acc(x)]=acc, получаем

frk=E[frk(x)]E[acc(x)(acc(x)q1h)]=
=E[acc(x)2]qE[acc(x)]hE[acc(x)]2qE[acc(x)]h=acc(accq1h).

Что доказывает (1). Перейдем к доказательству утверждения (3).
Для любого входа x с вероятностями, взятыми из FA, мы имеем

frk(x)=Pr[I=II1hIhI]Pr[I=II1]Pr[I1hIhI]=
=Pr[I=II1]Pr[I1]h=Pr[I=II1]acc(x)h

Осталось показать что Pr[I=II1]acc(x)2q.
Обозначим через 𝐑 множество, в котором работает данная машина Тьюринга A.
Пусть для каждого i{1,...,q} соответствующий Xi:𝐑×Hi1→ [0,1] определяется значением Xi(ρ,h1,...,hi1) в

Pr[J=i:h1,...,hq ← H; (J,σ) ←A(x,h1,...,hq;ρ)] для всех ρ𝐑 и h1,...,hqH.

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

Pr[I=II1]=i=1qPr[I=iI=i]=i=1qPr[I=i]Pr[I=i|I=i]=

=i=1qρ,h1,...,hi1Xi(ρ,h1,...,hi1)21|𝐑||H|i1=i1qE[Xi2]i1qE[Xi]2. Пусть xi=E[Xi] для x1,...,q. Тогда
i=1qE[Xi]21q(i=1qE[Xi])2=1qacc(x)2. Это доказывает (3), и, следовательно, (1). Докажем теперь (2). С учетом (1) получим, что
(accq2h)2=acc2accqh+q24h2qfrk+q24h2.
Взяв с обеих сторон квадратный корень, и учтя, что

a+ba+b для любых вещественных a,b0,

получим:

accq2hqfrk+q24h2=qfrk+q2h, откуда следует (2).


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

Известные проблемы с использованием леммы

Ограничение, создаваемое леммой о разветвлении, не является жестким. Авторы Поинтчевал и Стерн предложили несколько способов для повышения уровня безопасности цифровых подписей и слепой подписи, основываясь на лемме разветвления.Шаблон:Sfn Однако Шаблон:Iw осуществил атаку на слепые схемы подписей ШнорраШаблон:Sfn, которые, как утверждалось, были надежно защищены Поинтчевалом и Стерном. Шнорр также предложил усовершенствования для защиты схем слепых подписей, основанных на проблеме дискретного логарифмирования.Шаблон:Sfn

Примечания

Шаблон:Примечания

Литература