Рейтинг:2

Криптографически безопасный генератор псевдослучайных чисел на основе хэш-функции

флаг cr

Однажды я читал/слышал, что можно сгенерировать криптографически безопасный генератор псевдослучайных чисел на основе двух криптографически безопасных хеш-функций.

Алгоритм идет таким образом:

  • Позволять $f$ и $г$ быть двумя независимыми криптографически безопасными хэш-функциями размера блока $s$.
  • Этот алгоритм выводит блоки $s$, блок $n$ определяется как: $output[n \times s; (n+1) \times s] = f(g_{n}(seed))$
  • Функция $g_{n}(начальное число)$ определяется как $g_{n} = g_{n-1}(начальное число)$ куда $g_{0}(начальное число) = g(начальное число)$.

Конкретно, первый блок генерируется с помощью $f(г(начальное число))$, второй блок с $f(g(g(seed)))$, тогда $f(g(g(g(seed))))$, и так далее...

Я искал любую статью или кого-нибудь, упоминающего этот алгоритм и/или пытающегося провести криптоанализ этого алгоритма, но я ничего не нашел.

Криптографически стойкий генератор псевдослучайных чисел предлагает тот же алгоритм, но использует только одну хэш-функцию, в отличие от того, что я предлагаю. В выбранном ответе говорится об использовании двух хеш-функций, но я не смог найти более подробной информации в литературе.

Этот алгоритм реален? Как это называется?

kelalaka avatar
флаг in
Пара примеров [Можно ли использовать криптографический хэш в качестве криптографического ГСЧ?](https://crypto.stackexchange.com/q/25226/18298). [Использование хеш-функции в качестве генератора случайных чисел](https://crypto.stackexchange.com/q/66932/18298), [Было бы безопасно генерировать случайное число с использованием AES?](https://security.stackexchange .com/q/62877/86735) Где см. NIST SP 800-90 для ГСЧ на основе хэша (и HMAC).
флаг cn
Вопрос в том, каковы условия для $f$ и $g$.В общем случае явно неверно, просто выберите $f=g$.
Antoine Catton avatar
флаг cr
@Maeher, я отредактировал вопрос. Условие для $f$ и $g$ состоит в том, что они не связаны/независимы друг от друга.
SEJPM avatar
флаг us
Если f и f — независимые случайные функции, доказать это не составит труда. Я не уверен, есть ли более слабое условие, которое позволяет доказать.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.