Рейтинг:2

Можем ли мы объединить два настоящих генератора случайных чисел, чтобы получить новый?

флаг co

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

Мой вопрос заключается в том, что если у нас есть два настоящих генератора случайных битов, выходные данные которых не проходят набор тестов NIST, можем ли мы объединить эти выходные данные, чтобы получить генератор случайных битов, который проходит наборы тестов статистической случайности?

Maarten Bodewes avatar
флаг in
Простое объединение или даже XOR битов из PRNG, скорее всего, покажет предвзятость, поэтому я думаю, что ответ будет простым * нет *. Или, может быть, как "комбинировать" не описано. Я предполагаю, что он должен содержать методы устранения перекоса, аналогичные работе с одним TRNG. На самом деле, я думаю, вы можете доказать, что это так, просто разделив один поток TRNG на два, взяв каждый второй бит.
Paul Uszak avatar
флаг cn
Подробнее об этом [здесь] (https://cs.stackexchange.com/q/57648/31167)...
Рейтинг:3
флаг cn

Это на самом деле делается довольно часто в схемах. Рассмотрим общий полностью цифровой TRNG на основе кольцевых генераторов:

рос

Приведенный выше пример является еще более экстремальным, чем ваш, где используется много (возможно, 32) отдельных кольцевых генераторов. Все они идентичны, все эффектно проваливают любой тест на случайность, но сами по себе производят энтропию. Если для производства 1 бита энтропии на такт требуется 32 кольцевых генератора, вы можете себе представить, что каждый из них должен производить намного меньше. Их смещения также должны быть очень высокими (что характерно для таких осцилляторов). Их объединение значительно улучшает скорость энтропии и, следовательно, уменьшает смещение вывода.

Другим примером является генерация $м \раз п$ матрицы извлечения случайности, используемые в TRNG. Из ID Quantique, Технический документ по экстрактору случайности, версия 1.0, сентябрь 2012 г.:-

В идеале r отдельных источников, используемых в описанной процедуре для генерации матрицы m, должны быть получены из разных источников.

Это анекдотично иллюстрирует концепцию.Математически подходящей парадигмой является лемма о накоплении (Мицуру Мацуи, Метод линейного криптоанализа для шифрования DES) :-

За $n$ независимые случайные бинарные переменные, $X_1, X_2, \ldots X_n$,

$$ Pr(X_1 \oplus \ldots \oplus X_n = 0) = \frac{1}{2} + 2^{n-1} \prod_{i=1}^n \epsilon_i $$

Перестановка, так что если $ \epsilon_{1,2, \ldots, n} $ представляет предвзятость $ X_1 \oplus \ldots \oplus X_n = 0 $, получаем окончательное смещение $n$ объединенные независимые источники как: -

$$ \epsilon_{1,2, \ldots, n} = 2^{n-1} \prod_{i=1}^n \epsilon_i $$

Короче говоря, по мере того, как вы комбинируете все больше и больше независимых ГСЧ, общее смещение вывода асимптотически стремится к нулю. Поэтому создайте новый, лучший.

kodlu avatar
флаг sa
Лемма 4 также известна как лемма о нагромождении Мацуи.
Рейтинг:2
флаг in

Да. Мы можем объединить два генератора случайных чисел и сделать лучший. Простейшей формой было бы XOR двух значений. Если хотя бы одно из них случайное, то таким же будет и выход. Это не исправляет все, но имеет хорошие доказуемые свойства. По сути, это, по крайней мере, так же хорошо, как и то и другое (при условии, что они не коррелировали с самого начала).

Однако, если у нас есть очень предвзятые источники с некоторой реальной энтропией, мы, вероятно, захотим применить криптографический хеш. Это хорошо даже с одним источником ГСЧ.

Безопасные генераторы случайных чисел обычно собирают энтропию из нескольких слабых источников и криптографически смешивают их (по сути, хэш). Затем этот энтропийный пул является семенем для криптографически безопасного ГПСЧ. Предположим, нас беспокоят противники с неограниченными вычислениями. В этом случае мы пытаемся оценить, сколько фактической энтропии мы собрали, и выводим только меньшее количество случайных битов, пока не соберем больше энтропии.

Рейтинг:1
флаг cn
Leo

Если некоторые условия верны, можно объединить два TRNG в один и получить от них лучший результат.

Я назову два оригинальных генератора TRNG-1 и TRNG-2, а их комбинацию TRNG-3.

  1. Если TRNG-1 генерирует $к$ битов вывода в секунду, а TRNG-2 генерирует $л$ бит вывода в секунду, их комбинация (TRNG-3) должна производить менее $k+l$ бит вывода в секунду. Фактическую производительность необходимо тщательно определить, учитывая расчетную энтропию обоих генераторов и степень корреляции между ними.
  2. TRNG-1 и TRNG-2 не должны быть полностью коррелированы. Пока между ними существует небольшая независимая разница, лучший результат можно получить, комбинируя их, чем используя каждый из них по отдельности.

Есть несколько способов объединить TRNG-1 и TRNG-2. Ниже приведены некоторые примеры.

  1. Криптографические хэш-функции
  2. Функции губки, такие как губка Кекчака или губка Гимли
  3. Умножение на случайно заполненную матрицу
  4. Даже простые методы, такие как хеширование Пирсона.

Если TRNG хороши сами по себе и не имеют значимой корреляции, вы можете обойтись простым XOR. Но описанные выше методы не слишком сложны или дороги, поэтому я бы рекомендовал перестраховаться и реализовать один из них.

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

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