В
криптографии
под семейством псевдослучайных функций понимают набор функций (которые могут быть эффективно вычислены за полиномиальное время), обладающих следующим свойством: злоумышленник не может эффективно найти какое-либо существенное различие между поведением функции из данного семейства и истинной случайной функции
. Пусть
— это
-
битное
простое число
,
—
простое число
, являющееся
делителем
, а
, — некоторый элемент с
мультипликативным порядком
по модулю
. Тогда функция Наора — Рейнгольда
определяется некоторым
-мерным
вектором
над полем
и равна:
где
— это
двоичное
представление целого числа
, с добавлением ведущих нулей, если это необходимо
.
Пример
Пусть
и
. В качестве
с мультипликативным порядком
можно выбрать
. Тогда при
,
и
функция
вычисляется как
Так как двоичное представление числа
— это
.
Вычислительная сложность
Построение псевдослучайной функции Наора — Рейнгольда требует
умножений по модулю
и одно
возведение в степень
по модулю
, которое может быть сделано за
умножений по этому модулю
.
Для
данной функции было показано, что существует такой
полином
, что для любого
,
может быть реализована схемой из пороговых элементов глубины
и размера, не превышающего
. Это означает, что функции Наора — Рейнгольда принадлежит
в терминах
.
Также было показано, что данная функция может быть использована в
:
: даже если злоумышленник может изменить распределение ключей в зависимости от значений, которые функция хеширования присвоила предыдущим ключам, он не сможет умышленно вызвать коллизии.
Псевдослучайная функция Наора — Рейнгольда имеет высокую
криптографическую стойкость
. Пусть злоумышленнику известны значения функции в нескольких точках:
и ему необходимо вычислить
. Если
, то чтобы получить
, злоумышленнику необходимо решить
для
и
. Но по
не существует эффективного алгоритма, способного решить данную задачу
.
Поток чисел, генерируемый
псевдослучайной функцией
, также должен быть непредсказуемым, то есть, он должен быть неотличим от совершенно случайного набора чисел. Пусть
обозначает алгоритм, имеющий доступ к
оракулу
, который вычисляет
. Предположим, что
выполняется для
. Тогда для любого
вероятностного полиномиального алгоритма
и достаточно большого
выполнено
:
, где
— пренебрежимо мало.
Первая вероятность равна доле наборов
, на которых алгоритм выдаёт единицу, а вторая получается из случайного выбора пары
и функции
среди множества всех функций
.
Линейная сложность
Одним из естественных показателей того, насколько последовательность может быть полезной для
криптографических
целей, является её линейная сложность. Линейная сложность
-элементной последовательности
, над кольцом
— это длина
кратчайшего линейного
рекуррентного соотношения
, где
. Для функции Наора — Рейнгольда было показано, что существуют такие
и
, что для любого
и достаточно большого
линейная сложность
последовательности
,
, удовлетворяет следующему неравенству
:
пусть
—
множества
или, другими словами, отклонение распределения значений псевдослучайной функции от
равномерного распределения
. Было показано, что если
— это
битовая
длина
, тогда для всех векторов
∈
справедливо неравенство
, где
:
и
.
Это свойство не имеет непосредственного криптографического значения, но если бы оно не было выполнено, это могло бы повлечь катастрофические последствия для применения функции
.
Если предположение Диффи — Хеллмана выполнено, то индекса
не достаточно для вычисления
за полиномиальное время. Для
эллиптической кривой
Наора — Рейнгольда было показано, что существуют такие
и
, что для любого
и достаточно большого
линейная сложность
последовательности
удовлетворяет следующему неравенству
:
↑
Moni Naor, Omer Reingold.
// Journal of the ACM. — 2004-03-01. —
Т. 51
,
вып. 2
. —
С. 231–262
. —
ISSN
. —
doi
:
.
↑
Thierry Mefenza Nountu.
(англ.)
. — 2017-11-28.
28 ноября 2019 года.
↑
Igor E. Shparlinski.
// Information Processing Letters. — 2000-12. —
Т. 76
,
вып. 3
. —
С. 95–99
. —
ISSN
. —
doi
:
.
Ernest F. Brickell, Daniel M. Gordon, Kevin S. McCurley, David B. Wilson.
(англ.)
// 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
:
.
Aggelos Kiayias, Stavros Papadopoulos, Nikos Triandopoulos, Thomas Zacharias.
// 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
:
.
Oded Goldreich, Shafi Goldwasser, Silvio Micali.
(англ.)
// 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
:
.
. — Berlin: Springer, 1998. — x, 640 pages с. —
ISBN 3-540-64657-4
, 978-3-540-64657-0.
↑
Marcos Cruz, Domingo Gómez, Daniel Sadornil.
// Finite Fields and Their Applications. — 2010-09. —
Т. 16
,
вып. 5
. —
С. 329–333
. —
ISSN
. —
doi
:
.
↑
Igor E. Shparlinski.
// Finite Fields and Their Applications. — 2001-04. —
Т. 7
,
вып. 2
. —
С. 318–326
. —
ISSN
. —
doi
:
.
Igor E. Shparlinski, Joseph H. Silverman.
(англ.)
// Designs, Codes and Cryptography. — 2001-12-01. —
Vol. 24
,
iss. 3
. —
P. 279–289
. —
ISSN
. —
doi
:
.