В криптографии семейство псевдослучайных функций , сокращенно PRF , представляет собой набор эффективно вычисляемых функций , которые эмулируют случайный оракул следующим образом: ни один эффективный алгоритм не может отличить (со значительным преимуществом ) функцию, выбранную случайным образом из семейства PRF, от случайного оракула (функции, выходы которой фиксируются полностью случайным образом). Псевдослучайные функции являются жизненно важными инструментами в построении криптографических примитивов , особенно безопасных схем шифрования .
Псевдослучайные функции не следует путать с псевдослучайными генераторами (ППГ). Гарантия ППГ заключается в том, что один выход выглядит случайным, если вход был выбран случайным образом. С другой стороны, гарантия ПРП заключается в том, что все ее выходы выглядят случайными, независимо от того, как были выбраны соответствующие входы, при условии, что функция была выбрана случайным образом из семейства ПРП.
Семейство псевдослучайных функций может быть построено из любого псевдослучайного генератора, используя, например, конструкцию «GGM», предложенную Голдрайхом , Голдвассером и Микали . [1] Хотя на практике блочные шифры используются в большинстве случаев, когда требуется псевдослучайная функция, они, как правило, не составляют семейство псевдослучайных функций, поскольку блочные шифры, такие как AES, определены только для ограниченного числа входных данных и размеров ключей. [2]
PRF — это эффективная (т.е. вычислимая за полиномиальное время) детерминированная функция, которая отображает два различных множества (область определения и диапазон) и выглядит как действительно случайная функция.
По сути, действительно случайная функция будет просто состоять из таблицы поиска, заполненной равномерно распределенными случайными записями. Однако на практике PRF получает входную строку в домене и скрытое случайное начальное число и запускается несколько раз с той же входной строкой и начальным числом, всегда возвращая одно и то же значение. Тем не менее, если задана произвольная входная строка, выход выглядит случайным, если начальное число взято из равномерного распределения.
PRF считается хорошей, если ее поведение неотличимо от истинно случайной функции. Поэтому, если получен выход либо истинно случайной функции, либо PRF, не должно быть эффективного метода для правильного определения того, был ли получен выход истинно случайной функцией или PRF.
Псевдослучайные функции принимают входные данные . Размер входных данных и размер выходных данных зависят только от размера индекса .
Семейство функций,
является псевдослучайным, если выполняются следующие условия:
В забывающей псевдослучайной функции, сокращенно OPRF, информация скрыта от двух сторон, которые участвуют в PRF. [4] То есть, если Алиса криптографически хэширует свое секретное значение, криптографически скрывает хэш, чтобы создать сообщение, которое она отправляет Бобу, а Боб смешивает свое секретное значение и возвращает результат Алисе, которая снимает с него маскировку, чтобы получить окончательный вывод, Боб не может увидеть ни секретное значение Алисы, ни окончательный вывод, а Алиса не может увидеть секретный ввод Боба, но Алиса видит окончательный вывод, который является PRF двух вводов — PRF секрета Алисы и секрета Боба. [5] Это позволяет транзакциям конфиденциальной криптографической информации быть безопасными даже между недоверенными сторонами.
OPRF используется в некоторых реализациях соглашения о ключах с аутентификацией по паролю . [5]
OPRF используется в функции Password Monitor в Microsoft Edge . [6]
См. основную статью « Забывчивые псевдослучайные функции» .
PRF могут быть использованы для: [7]