Проводятся ли в настоящее время исследования по внедрению экстракторов случайности?

20

Проводились ли исследования по внедрению конструкций экстракторов случайности?

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

Некоторый контекст: я заинтересован в использовании экстракторов случайности в качестве быстрого источника (доказуемо?) Случайных чисел для использования в симуляциях Монте-Карло. Мы (группа вычислительной физики ETHZ) смещаем источники с высокой энтропией от квантовых генераторов случайных чисел, из которых мы хотели бы извлечь случайность. Предыдущий студент попытался реализовать конструкцию Тревизана и столкнулся с пространственными проблемами сложности. Помимо этого студента, я не нашел никаких ссылок на людей, пытающихся внедрить экстракторы.

Примечание: я студент CS, который очень плохо знаком с теоретическими CS и экстракторами случайности.

Филип Мэйтс
источник
Вы также можете найти интересный ответ Арнаба на мой вопрос: cstheory.stackexchange.com/questions/36/…
Суреш Венкат
Вот рабочая реализация: wisdom.weizmann.ac.il/~neko/MAE-offline.html
Диего де Эстрада,

Ответы:

19

Большая часть литературы по экстракторам посвящена минимизации длины семян, что важно для применения дерандомизации. Тем не менее, это не может быть решающим для вас. Кроме того, часто литература фокусируется на относительно большой ошибке (например, 1/100), которая хороша для дерандомизации, но может быть проблематичной в других настройках, которые требуют экспоненциально малой ошибки.

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

Если у вас есть несколько независимых источников , вы можете делать что-то лучше. Классический экстрактор Адамара работает, если уровень энтропии превышает 50% (это должно быть упомянуто в обзорах выше). Если энтропия меньше 50%, у нас была одна простая конструкция с Impagliazzo и Wigderson . Зависимость между количеством источников и достигнутой погрешностью от скорости энтропии не идеальна, хотя, чтобы действительно понять ее, вам нужно взглянуть на точные границы, данные современными теоремами о сумме произведений. (И если вы готовы принять определенные теоретические гипотезы о числе, вы можете получить еще более эффективные экстракторы.) Эта конструкция была значительно улучшена различными способами, некоторые из которых могут иметь отношение к вашему приложению.Диссертация Ануп Рао .

Боаз Барак
источник
Спасибо за хорошо написанный ответ / обзор. Я просмотрел статью ТРНГ, которую вы написали с Шалтиэлем и Тромером. Это выглядит довольно многообещающе. Мне было интересно, доступна ли где-либо веб-страница статьи (и код реализации), поскольку цитируемая ссылка ( people.csail.mit.edu/tromer/trng ) в статье не содержит никакой информации о ней.
Филипп Матес
6

Прежде всего, посмотрите соответствующую тему в Википедии. Во-вторых, вы можете взглянуть на следующую статью:

Последние разработки в явных конструкциях экстракторов Ронена Шалтиэля.

Документ написан в форме опроса и может помочь вам найти «последние события».

Наконец, если вам нужна только последовательность битов, которая «выглядит» случайной (но не обязательно криптографически безопасной), вы можете применить хеш-функцию (например, MD5 или SHA-1) к источнику с высокой энтропией и получить Отличный результат (для физических экспериментов) практически без времени.

М.С. Дусти
источник
1
Спасибо за предложение хеширования и ссылки. В ссылках я не увидел упоминаний о людях, пытающихся внедрить экстракторы. Мне очень любопытно, пытались ли это сделать. В большинстве статей о экстракторах, которые я читал, упоминается о практическом применении экстракторов, но не упоминаются какие-либо попытки реализации. Мне сказали, что причина, по которой мы избегали хеширования, состоит в том, что они не являются доказуемо случайными, что очень полезно в области симуляции MC, поскольку псевдо-ГСЧ иногда показывали неточные результаты [ref: prl. aps.org/abstract/PRL/v69/i23/p3382_1 ]
Филипп Матес
4

Есть также хорошая статья Dodis, Gennaro, et al. это рассматривает практические криптографические примитивы, которые могут быть использованы для извлечения. Они показывают, что хеш-функции, как известно, не являются хорошими экстракторами, однако блочный шифр в режиме CBC-MAC может быть (с некоторым мелким шрифтом). Они также рассматривают конструкции HMAC. Этот подход привлекателен для реализации, поскольку вы можете использовать стандартные библиотеки криптографии.

Для CBC-MAC «мелкий шрифт» примерно такой:

  • Предполагается, что блочный шифр является псевдослучайной перестановкой
  • Должен иметь действительно случайный (но не обязательно секретный) ключ, который можно использовать повторно
  • Если выходное значение равно m битам, то на входе должно быть не менее 2 миллионов бит с минимальной энтропией
  • Длина блока и длина ключа должны быть одинаковыми (поэтому, если вы используете AES, это означает, что работает только AES-128)
  • Длина ввода ограничена, но граница высока
PulpSpy
источник
3

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

В качестве дополнительного примечания для генерации случайности для Монте-Карло есть, конечно, HAVEGE . Если его скорость передачи в битах и ​​«доказуемость» достаточны, вы можете избежать манипулирования квантовыми генераторами.

Nakedible
источник