Псевдослучайная функция Наора — Рейнгольда

Материал из testwiki
Версия от 18:27, 18 апреля 2023; 185.117.149.22 (обсуждение) (Безопасность: опечатка)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Псевдослучайная функция Наора — Рейнгольда — Шаблон:Iw, введённая в 1997 году Шаблон:Iw и Шаблон:Iw для построения различных криптографических примитивов в симметричном шифровании и криптографии с открытым ключом[1]. Отличительными особенностями данной псевдослучайной функции являются низкая вычислительная сложностьШаблон:Переход и высокая криптографическая стойкостьШаблон:Переход. Данные свойства вместе с тем фактом, что распределение значений данной функции близко к равномерномуШаблон:Переход, позволяют использовать ее в качестве основы для многих криптографических схемШаблон:Переход.

Постановка

В криптографии под семейством псевдослучайных функций понимают набор функций (которые могут быть эффективно вычислены за полиномиальное время), обладающих следующим свойством: злоумышленник не может эффективно найти какое-либо существенное различие между поведением функции из данного семейства и истинной случайной функции[2]. Пусть p — это n-битное простое число, l — простое число, являющееся делителем p1, а g𝔽p*, — некоторый элемент с мультипликативным порядком l по модулю p. Тогда функция Наора — Рейнгольда fa(x) определяется некоторым (n+1)-мерным вектором a=(a0,a1,...,an)(𝔽l)n+1 над полем 𝔽l и равна:

fa(x)=ga0a1x1a2x2...anxn𝔽p

где x=x1,...,xn — это двоичное представление целого числа x, 0x<2n, с добавлением ведущих нулей, если это необходимо[3].

Пример

Пусть p=7 и l=3. В качестве g𝔽7* с мультипликативным порядком 3 можно выбрать g=4. Тогда при n=3, a=(1,1,3,1) и x=5 функция fa(5) вычисляется как

fa(x)=ga0a1x1a2x2...anxn=41113011=41=4𝔽7

Так как двоичное представление числа 5 — это (1,0,1).

Вычислительная сложность

Построение псевдослучайной функции Наора — Рейнгольда требует n умножений по модулю l и одно возведение в степень по модулю p, которое может быть сделано за O(nlogn) умножений по этому модулю[1][4].

Для Шаблон:Iw данной функции было показано, что существует такой полином p(x), что для любого a=(a0,a1,...,an)(𝔽l)n+1, fa(x) может быть реализована схемой из пороговых элементов глубины d и размера, не превышающего p(n). Это означает, что функции Наора — Рейнгольда принадлежит Шаблон:Iw в терминах Шаблон:Iw[1].

Применение

Псевдослучайная функция Наора — Рейнгольда может быть использована в качестве основы многих криптографических схем, включая симметричное шифрование, аутентификацию и электронные подписи[5][2].

Также было показано, что данная функция может быть использована в[6]:

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

Безопасность

Псевдослучайная функция Наора — Рейнгольда имеет высокую криптографическую стойкость. Пусть злоумышленнику известны значения функции в нескольких точках: fa(1)=ga0a1,fa(2)=ga0a2,,fa(k)=ga0a1x1a2x2...anxnи ему необходимо вычислить fa(k+1). Если x1=0, то чтобы получить fa(k+1)=ga0a1a2x2anxn, злоумышленнику необходимо решить Шаблон:Iw для fa(1)=ga0a1 и fa(k)=ga0a2x2...anxn. Но по Шаблон:Iw не существует эффективного алгоритма, способного решить данную задачу[1].

Поток чисел, генерируемый псевдослучайной функцией, также должен быть непредсказуемым, то есть, он должен быть неотличим от совершенно случайного набора чисел. Пусть 𝒜f обозначает алгоритм, имеющий доступ к оракулу, который вычисляет fa(x). Предположим, что Шаблон:Iw выполняется для 𝔽p. Тогда для любого вероятностного полиномиального алгоритма 𝒜 и достаточно большого n выполнено[7]:

|Pr [𝒜fa(x)(p,g)=1]Pr [𝒜R(p,g)=1]|<ϵ, где ϵ(n) — пренебрежимо мало.

Первая вероятность равна доле наборов s=(p,g,a), на которых алгоритм выдаёт единицу, а вторая получается из случайного выбора пары (p,g) и функции Ra(x) среди множества всех функций {0,1}n𝔽p.

Линейная сложность

Одним из естественных показателей того, насколько последовательность может быть полезной для криптографических целей, является её линейная сложность. Линейная сложность n-элементной последовательности W(x),x=0,,n1, над кольцом  — это длина l кратчайшего линейного рекуррентного соотношения W(x+l)=Al1W(x+l1)++A0W(x),x=0,,n(l1), где A0,,Al1[3][8]. Для функции Наора — Рейнгольда было показано, что существуют такие γ>0 и n(1+γ)logl, что для любого δ>0 и достаточно большого l линейная сложность La последовательности fa(x), 0x<2n, удовлетворяет следующему неравенству[3]:

La{l1 δ, если γ2l( γ2 δ), если γ<2

для всех, кроме не более чем 3(l1)nδ векторов a(𝔽l)n+1.

Равномерность распределения

Статистическое распределение fa(x) экспоненциально близко к равномерному распределению почти для всех векторов a(𝔽l)n+1:

пусть 𝐃a — Шаблон:Iw множества {fa(x)|0x<2n} или, другими словами, отклонение распределения значений псевдослучайной функции от равномерного распределения. Было показано, что если n=logp — это битовая длина p, тогда для всех векторов a(𝔽l)n+1 справедливо неравенство 𝐃aΔ(l,p), где[9]:

Δ(l,p)={p(1 γ2)l(12)log2p если lpγp(12)l1log2p если pγ>lp(23)p(14)l(58)log2p если p(23)>lp(12)p(18)l(38)log2p если p(12)>lp(13)
и γ=2,5log30,9150.

Это свойство не имеет непосредственного криптографического значения, но если бы оно не было выполнено, это могло бы повлечь катастрофические последствия для применения функции[9].

Последовательности на эллиптической кривой

Анализ этой функции на эллиптической кривой позволяет улучшить криптографическую стойкость соответствующей системы. Пусть p>3 — простое число и E — эллиптическая кривая над 𝔽p. Тогда любой вектор a=(a0,a1,,an)(𝔽l*)n+1 определяет конечную последовательность fa(x)=(a0a1x1a2x2anxn)G𝔽p2 в циклической группе G, где x=x1xn — битовое представление x,0x<2n, G𝔽p2, — некоторый элемент на E с мультипликативным порядком l, а (a0a1x1a2x2anxn)G — это операция возведения элемента G в степень a0a1x1a2x2anxn относительно групповой операции в абелевой группе 𝔽p-рациональных точек эллиптической кривой[10]. В таких обозначениях последовательность Наора — Рейнгольда на эллиптической кривой определяется как uk=X(fa(k)), где X(P) обозначает абсциссу точки PE[8].

Если предположение Диффи — Хеллмана выполнено, то индекса k не достаточно для вычисления uk за полиномиальное время. Для эллиптической кривой Наора — Рейнгольда было показано, что существуют такие γ>0 и n(1+γ)logl, что для любого δ>0 и достаточно большого l линейная сложность La последовательности (uk)k=02n1 удовлетворяет следующему неравенству[8]:

Lamin(l13δ,l(γ3δ)log2l)

для всех, кроме не более чем O((l1)nδ) векторов a(𝔽l*)n+1.

См. также

Примечания

Шаблон:Примечания Шаблон:Добротная статья