Проводились ли исследования по внедрению конструкций экстракторов случайности?
Кажется, что доказательства экстрактора используют Big-Oh, оставляя возможность для больших скрытых констант, делая программные реализации потенциально нереальными.
Некоторый контекст: я заинтересован в использовании экстракторов случайности в качестве быстрого источника (доказуемо?) Случайных чисел для использования в симуляциях Монте-Карло. Мы (группа вычислительной физики ETHZ) смещаем источники с высокой энтропией от квантовых генераторов случайных чисел, из которых мы хотели бы извлечь случайность. Предыдущий студент попытался реализовать конструкцию Тревизана и столкнулся с пространственными проблемами сложности. Помимо этого студента, я не нашел никаких ссылок на людей, пытающихся внедрить экстракторы.
Примечание: я студент CS, который очень плохо знаком с теоретическими CS и экстракторами случайности.
Ответы:
Большая часть литературы по экстракторам посвящена минимизации длины семян, что важно для применения дерандомизации. Тем не менее, это не может быть решающим для вас. Кроме того, часто литература фокусируется на относительно большой ошибке (например, 1/100), которая хороша для дерандомизации, но может быть проблематичной в других настройках, которые требуют экспоненциально малой ошибки.
В ваших настройках может быть достаточно сгенерировать раз и навсегда длинное случайное начальное число (скажем, подбрасывая монеты), а затем использовать его для извлечения. В этом случае вы можете использовать попарно независимые хеш-функции, которые имеют довольно эффективную реализацию. Я написал статью с Шалтиелем и Тромером по этому вопросу. Вы также можете использовать почти независимые хеш-функции, которые могут быть более эффективными и с меньшим начальным числом. (Не знаю, насколько это полезно для их эффективной реализации, хотя было несколько работ по этому вопросу.)
Если у вас есть несколько независимых источников , вы можете делать что-то лучше. Классический экстрактор Адамара работает, если уровень энтропии превышает 50% (это должно быть упомянуто в обзорах выше). Если энтропия меньше 50%, у нас была одна простая конструкция с Impagliazzo и Wigderson . Зависимость между количеством источников и достигнутой погрешностью от скорости энтропии не идеальна, хотя, чтобы действительно понять ее, вам нужно взглянуть на точные границы, данные современными теоремами о сумме произведений. (И если вы готовы принять определенные теоретические гипотезы о числе, вы можете получить еще более эффективные экстракторы.) Эта конструкция была значительно улучшена различными способами, некоторые из которых могут иметь отношение к вашему приложению.Диссертация Ануп Рао .
источник
Прежде всего, посмотрите соответствующую тему в Википедии. Во-вторых, вы можете взглянуть на следующую статью:
Последние разработки в явных конструкциях экстракторов Ронена Шалтиэля.
Документ написан в форме опроса и может помочь вам найти «последние события».
Наконец, если вам нужна только последовательность битов, которая «выглядит» случайной (но не обязательно криптографически безопасной), вы можете применить хеш-функцию (например, MD5 или SHA-1) к источнику с высокой энтропией и получить Отличный результат (для физических экспериментов) практически без времени.
источник
Есть также хорошая статья Dodis, Gennaro, et al. это рассматривает практические криптографические примитивы, которые могут быть использованы для извлечения. Они показывают, что хеш-функции, как известно, не являются хорошими экстракторами, однако блочный шифр в режиме CBC-MAC может быть (с некоторым мелким шрифтом). Они также рассматривают конструкции HMAC. Этот подход привлекателен для реализации, поскольку вы можете использовать стандартные библиотеки криптографии.
Для CBC-MAC «мелкий шрифт» примерно такой:
источник
В случае криптографического псевдослучайного генератора вы также можете обратиться к HKDF . В статье они обсуждают экстракторы случайности концептуально и практически, и дают хорошие ссылки.
В качестве дополнительного примечания для генерации случайности для Монте-Карло есть, конечно, HAVEGE . Если его скорость передачи в битах и «доказуемость» достаточны, вы можете избежать манипулирования квантовыми генераторами.
источник