Это не официальный сайт wikipedia.org 01.01.2023

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

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

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

ПостановкаПравить

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

f a ( x ) = g a 0 a 1 x 1 a 2 x 2 . . . a n x n F p  

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

ПримерПравить

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

f a ( x ) = g a 0 a 1 x 1 a 2 x 2 . . . a n x n = 4 1 1 1 3 0 1 1 = 4 1 = 4 F 7  

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

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

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

Для схемной сложности[en] данной функции было показано, что существует такой полином p ( x )  , что для любого a = ( a 0 , a 1 , . . . , a n ) ( F l ) n + 1  , f a ( x )   может быть реализована схемой из пороговых элементов глубины d   и размера, не превышающего p ( n )  . Это означает, что функции Наора — Рейнгольда принадлежит классу TC0[en] в терминах булевых схем[en][1].

ПрименениеПравить

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

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

БезопасностьПравить

Псевдослучайная функция Наора — Рейнгольда имеет высокую криптографичекую стойкость. Пусть злоумышленнику известны значения функции в нескольких точках: f a ( 1 ) = g a 0 a 1 , f a ( 2 ) = g a 0 a 2 , , f a ( k ) = g a 0 a 1 x 1 a 2 x 2 . . . a n x n  и ему необходимо вычислить f a ( k + 1 )  . Если x 1 = 0  , то чтобы получить f a ( k + 1 ) = g a 0 a 1 a 2 x 2 a n x n  , злоумышленнику необходимо решить задачу Диффи — Хеллмана[en] для f a ( 1 ) = g a 0 a 1   и f a ( k ) = g a 0 a 2 x 2 . . . a n x n  . Но по предположению о сложности Диффи — Хеллмана[en] не существует эффективного алгоритма, способного решить данную задачу[1].

Поток чисел, генерируемый псевдослучайной функцией, также должен быть непредсказуемым, то есть, он должен быть неотличим от совершенно случайного набора чисел. Пусть A f   обозначает алгоритм, имеющий доступ к оракулу, который вычисляет f a ( x )  . Предположим, что предположение Диффи — Хеллмана[en] выполняется для F p  . Тогда для любого вероятностного полиномиального алгоритма A   и достаточно большого n   выполнено[7]:

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

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

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

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

L a { l 1   δ , если  γ 2 l (   γ 2   δ ) , если  γ < 2  

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

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

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

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

Δ ( l , p ) = { p ( 1   γ 2 ) l ( 1 2 ) log 2 p  если  l p γ p ( 1 2 ) l 1 log 2 p  если  p γ > l p ( 2 3 ) p ( 1 4 ) l ( 5 8 ) log 2 p  если  p ( 2 3 ) > l p ( 1 2 ) p ( 1 8 ) l ( 3 8 ) log 2 p  если  p ( 1 2 ) > l p ( 1 3 )  
и γ = 2 , 5 log 3 0 , 9150  .

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

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

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

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

L a min ( l 1 3 δ , l ( γ 3 δ ) log 2 l )  

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

См. такжеПравить

ПримечанияПравить

  1. 1 2 3 4 Moni Naor, Omer Reingold. Number-theoretic constructions of efficient pseudo-random functions // Journal of the ACM. — 2004-03-01. — Т. 51, вып. 2. — С. 231–262. — ISSN 0004-5411. — doi:10.1145/972639.972643.
  2. 1 2 Thierry Mefenza Nountu. Pseudo-random generators and pseudo-random functions : cryptanalysis and complexity measures (англ.). — 2017-11-28. Архивировано 28 ноября 2019 года.
  3. 1 2 3 Igor E. Shparlinski. Linear complexity of the Naor–Reingold pseudo-random function // Information Processing Letters. — 2000-12. — Т. 76, вып. 3. — С. 95–99. — ISSN 0020-0190. — doi:10.1016/s0020-0190(00)00133-2.
  4. Ernest F. Brickell, Daniel M. Gordon, Kevin S. McCurley, David B. Wilson. Fast Exponentiation with Precomputation (англ.) // Advances in Cryptology — EUROCRYPT’ 92 / Rainer A. Rueppel. — Berlin, Heidelberg: Springer Berlin Heidelberg, 1993. — Vol. 658. — P. 200–207. — ISBN 978-3-540-56413-3. — doi:10.1007/3-540-47555-9_18.
  5. Aggelos Kiayias, Stavros Papadopoulos, Nikos Triandopoulos, Thomas Zacharias. Delegatable pseudorandom functions and applications // Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security - CCS '13. — New York, New York, USA: ACM Press, 2013. — ISBN 978-1-4503-2477-9. — doi:10.1145/2508859.2516668.
  6. Oded Goldreich, Shafi Goldwasser, Silvio Micali. On the Cryptographic Applications of Random Functions (Extended Abstract) (англ.) // Advances in Cryptology / George Robert Blakley, David Chaum. — Berlin, Heidelberg: Springer Berlin Heidelberg, 1985. — Vol. 196. — P. 276–288. — ISBN 978-3-540-15658-1. — doi:10.1007/3-540-39568-7_22.
  7. Algorithmic number theory : third international symposium, ANTS-III, Portland, Oregon, USA, June 21-25, 1998 : proceedings. — Berlin: Springer, 1998. — x, 640 pages с. — ISBN 3-540-64657-4, 978-3-540-64657-0.
  8. 1 2 3 Marcos Cruz, Domingo Gómez, Daniel Sadornil. On the linear complexity of the Naor–Reingold sequence with elliptic curves // Finite Fields and Their Applications. — 2010-09. — Т. 16, вып. 5. — С. 329–333. — ISSN 1071-5797. — doi:10.1016/j.ffa.2010.05.005.
  9. 1 2 Igor E. Shparlinski. On the Uniformity of Distribution of the Naor–Reingold Pseudo-Random Function // Finite Fields and Their Applications. — 2001-04. — Т. 7, вып. 2. — С. 318–326. — ISSN 1071-5797. — doi:10.1006/ffta.2000.0291.
  10. Igor E. Shparlinski, Joseph H. Silverman. On the Linear Complexity of the Naor–Reingold Pseudo-random Function from Elliptic Curves (англ.) // Designs, Codes and Cryptography. — 2001-12-01. — Vol. 24, iss. 3. — P. 279–289. — ISSN 1573-7586. — doi:10.1023/A:1011223204345.