Псевдослучайная функция Наора — Рейнгольда
Псевдослучайная функция Наора — Рейнгольда — Шаблон:Iw, введённая в 1997 году Шаблон:Iw и Шаблон:Iw для построения различных криптографических примитивов в симметричном шифровании и криптографии с открытым ключом[1]. Отличительными особенностями данной псевдослучайной функции являются низкая вычислительная сложностьШаблон:Переход и высокая криптографическая стойкостьШаблон:Переход. Данные свойства вместе с тем фактом, что распределение значений данной функции близко к равномерномуШаблон:Переход, позволяют использовать ее в качестве основы для многих криптографических схемШаблон:Переход.
Постановка
В криптографии под семейством псевдослучайных функций понимают набор функций (которые могут быть эффективно вычислены за полиномиальное время), обладающих следующим свойством: злоумышленник не может эффективно найти какое-либо существенное различие между поведением функции из данного семейства и истинной случайной функции[2]. Пусть — это -битное простое число, — простое число, являющееся делителем , а , — некоторый элемент с мультипликативным порядком по модулю . Тогда функция Наора — Рейнгольда определяется некоторым -мерным вектором над полем и равна:
где — это двоичное представление целого числа , с добавлением ведущих нулей, если это необходимо[3].
Пример
Пусть и . В качестве с мультипликативным порядком можно выбрать . Тогда при , и функция вычисляется как
Так как двоичное представление числа — это .
Вычислительная сложность
Построение псевдослучайной функции Наора — Рейнгольда требует умножений по модулю и одно возведение в степень по модулю , которое может быть сделано за умножений по этому модулю[1][4].
Для Шаблон:Iw данной функции было показано, что существует такой полином , что для любого , может быть реализована схемой из пороговых элементов глубины и размера, не превышающего . Это означает, что функции Наора — Рейнгольда принадлежит Шаблон:Iw в терминах Шаблон:Iw[1].
Применение
Псевдослучайная функция Наора — Рейнгольда может быть использована в качестве основы многих криптографических схем, включая симметричное шифрование, аутентификацию и электронные подписи[5][2].
Также было показано, что данная функция может быть использована в[6]:
- Шаблон:Iw: даже если злоумышленник может изменить распределение ключей в зависимости от значений, которые функция хеширования присвоила предыдущим ключам, он не сможет умышленно вызвать коллизии.
- построении схем аутентификации на основе имитовставки, которые надёжно защищены от атак.
- выдаче статичных идентификационных номеров, которые могут быть проверены устройствами, располагающими лишь небольшим объёмом памяти.
- построении систем радиолокационного опознавания.
Безопасность
Псевдослучайная функция Наора — Рейнгольда имеет высокую криптографическую стойкость. Пусть злоумышленнику известны значения функции в нескольких точках: и ему необходимо вычислить . Если , то чтобы получить , злоумышленнику необходимо решить Шаблон:Iw для и . Но по Шаблон:Iw не существует эффективного алгоритма, способного решить данную задачу[1].
Поток чисел, генерируемый псевдослучайной функцией, также должен быть непредсказуемым, то есть, он должен быть неотличим от совершенно случайного набора чисел. Пусть обозначает алгоритм, имеющий доступ к оракулу, который вычисляет . Предположим, что Шаблон:Iw выполняется для . Тогда для любого вероятностного полиномиального алгоритма и достаточно большого выполнено[7]:
, где — пренебрежимо мало.
Первая вероятность равна доле наборов , на которых алгоритм выдаёт единицу, а вторая получается из случайного выбора пары и функции среди множества всех функций .
Линейная сложность
Одним из естественных показателей того, насколько последовательность может быть полезной для криптографических целей, является её линейная сложность. Линейная сложность -элементной последовательности , над кольцом — это длина кратчайшего линейного рекуррентного соотношения , где [3][8]. Для функции Наора — Рейнгольда было показано, что существуют такие и , что для любого и достаточно большого линейная сложность последовательности , , удовлетворяет следующему неравенству[3]:
для всех, кроме не более чем векторов .
Равномерность распределения
Статистическое распределение экспоненциально близко к равномерному распределению почти для всех векторов :
пусть — Шаблон:Iw множества или, другими словами, отклонение распределения значений псевдослучайной функции от равномерного распределения. Было показано, что если — это битовая длина , тогда для всех векторов ∈ справедливо неравенство , где[9]:
- и .
Это свойство не имеет непосредственного криптографического значения, но если бы оно не было выполнено, это могло бы повлечь катастрофические последствия для применения функции[9].
Последовательности на эллиптической кривой
Анализ этой функции на эллиптической кривой позволяет улучшить криптографическую стойкость соответствующей системы. Пусть — простое число и — эллиптическая кривая над . Тогда любой вектор определяет конечную последовательность в циклической группе , где — битовое представление , , — некоторый элемент на с мультипликативным порядком , а — это операция возведения элемента в степень относительно групповой операции в абелевой группе -рациональных точек эллиптической кривой[10]. В таких обозначениях последовательность Наора — Рейнгольда на эллиптической кривой определяется как , где обозначает абсциссу точки [8].
Если предположение Диффи — Хеллмана выполнено, то индекса не достаточно для вычисления за полиномиальное время. Для эллиптической кривой Наора — Рейнгольда было показано, что существуют такие и , что для любого и достаточно большого линейная сложность последовательности удовлетворяет следующему неравенству[8]:
для всех, кроме не более чем векторов .
См. также
- Симметричные криптосистемы
- Конечное поле
- Инверсный конгруэнтный метод
- Криптосистема с открытым ключом
Примечания
Шаблон:Примечания Шаблон:Добротная статья
- ↑ 1,0 1,1 1,2 1,3 Ошибка цитирования Неверный тег
<ref>; для сносокNaorReingoldне указан текст - ↑ 2,0 2,1 Шаблон:Статья
- ↑ 3,0 3,1 3,2 Шаблон:Статья
- ↑ Шаблон:Статья
- ↑ Шаблон:Статья
- ↑ Шаблон:Статья
- ↑ Шаблон:Книга
- ↑ 8,0 8,1 8,2 Шаблон:Статья
- ↑ 9,0 9,1 Шаблон:Статья
- ↑ Шаблон:Статья