Мне нужен настоящий веб-сервис генератора случайных чисел [закрыто]

10

Random.org предоставляет 200 тыс. Свободных случайных битов (всего 6250 32-битных целых!) Из аналогового мира ( ср. ) На IP в день.

Кто-нибудь знает об альтернативном веб-сервисе, который предоставляет больше случайных бит по запросу в день?

(оплата в порядке, если цена «в пределах ожиданий» составляет 1000 × 1024 бит за цент США) (плата за платное обслуживание random.org составляет 100 × эта цена)

Pacerier
источник
9
Большой вопрос: «зачем» вам нужен «действительно» генератор случайных чисел?
Темная ночь
5
Истинного генератора случайных чисел в чистом программном обеспечении не существует. Вы можете приблизиться, в конце дня, это не будет действительно случайно.
Ramhound
10
Для чего тебе это? Если это игра или что-то, то псевдослучайный обычно достаточно хорош. Если это криптография, то вы не должны использовать веб-сервис. Вам нужно объяснить, для чего это нужно, прежде чем мы сможем указать вам жизнеспособные решения.
Майкл Кохне
4
Вот и ты! [webservice] public int GetRandomNumber() { return 4; // rfc 1149.5 }, Предоставлено
Homde
3
Простите, сэр, вы хотите купить целые числа? Мы предлагаем только самые лучшие целые числа в свободном диапазоне.
Рейн Хенрикс

Ответы:

25

Может быть, этот.

http://qrng.physik.hu-berlin.de/

С сайта:

Мы предоставляем новый генератор квантовых случайных чисел (QRNG), основанный на квантовой случайности времени прихода фотона. Это обещает доказуемое и долгосрочное статистическое качество, скорость и доступность. Наш дизайн создает новое качество в том смысле, что он предлагает значительно более высокие скорости передачи данных, чем предыдущие решения, доступные для общественности. Это стало возможным благодаря использованию самых последних приборов для синхронизации фотонов и современной обработки данных в аппаратном обеспечении.

Помимо обеспечения высокой скорости (до 150 Мбит / с по USB), алгоритм постобработки, применяемый к необработанным данным, основан на надежных предсказаниях из теории информации, которые гарантируют сохранение случайности. Это позволяет использовать доставленные случайные числа в безоговорочно безопасных схемах шифрования.
[...]
Политики доступа
Ни одна из обслуживаемых данных не доставляется более одного раза, ни одному пользователю, ни нескольким> независимым пользователям. Использование услуги бесплатное, но требует регистрации.

ba__friend
источник
1
(0.o)?! Egad! Я думал, что это была шутка, но нет, она действительно существует :) (+1) отличная находка
Darknight
4
-1 за некачественный ответ. Это вполне может быть отличным решением, но вы не предоставили подробных сведений о ссылке / услуге, и я не хочу читать всю ссылку для краткого изложения. Если для ответа на P.SE требуется ссылка, предоставьте краткое описание решения, на которое вы ссылаетесь. Я рассмотрю возможность удаления моего отрицательного голоса, если вы пересмотрите свой ответ.
Крейг
4
@NimChimpsky - Почему? Потому что так вы пишете качественный ответ на P.SE. ba__friend должен был опубликовать краткое описание сервиса для тех, кто читает этот вопрос. Возможно быстрое объяснение / цитата относительно того, как сервис генерирует случайные числа.
Крейг,
2
@Craige Я обновил пост с выдержкой из сайта.
Адам Лир
5
@NimChimpsky: Потому что линкрот случается.
Джон Пурди
31

То, что вы просите - это святая вода, и вы отвергаете предположение, что вы используете обычную воду. Единственная причина, по которой Святая вода предпочитается святой, - религиозная. Существуют простые PRNG с произвольно выбранными значениями, которые невозможно отличить от реальной физической случайности с помощью какого-либо известного процесса. И эти системы являются недетерминированы.

У реального компьютера есть несколько источников истинной физической случайности. Например, современный процессор x86 имеет «TSC», который измеряет количество циклов команд (и, следовательно, косвенно, время с точностью до миллиардной доли секунды или около того).

Вы можете захватить TSC при поступлении сетевого пакета. Младшие биты TSC будут зависеть от точного смещения между кварцевым генератором, который умножает сетевой интерфейс, и кварцевым генератором, который запускает ЦП. Это зависит от изменений температуры микроскопических зон в двух кристаллах кварца, которые считаются действительно случайными.

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

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

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

Дэвид Шварц
источник
6
+1 за здравый смысл, интересные примеры и прекрасную метафору святой воды!
Микера
@ Давид, Привет, подумайте над темой "Я разработал генераторы случайных чисел для использования в онлайн-казино" ..?
Pacerier
Это не так интересно. Я сделал онлайн-казино, чтобы я разработал для них ГСЧ, и он был сертифицирован австралийской сертификационной фирмой TST.
Дэвид Шварц
13

Я до сих пор не понимаю, почему криптографический PRNG недостаточно хорош для вашей проблемы. Определяющим свойством крипто-PRNG является то, что невозможно (с разумным количеством аппаратного обеспечения) отличить его вывод от истинного RNG.

Это означает, что он достаточно хорош для любого вида моделирования или приложения, о котором я только могу подумать, кроме генерации криптографических ключей или инициализации самого криптографического PRNG (очевидно, для его запуска требуется несколько сотен бит истинной энтропии).

С другой стороны, веб-службы RNG также не могут быть использованы для шифрования, так как

  1. Вы не можете доказать, что они на самом деле являются истинным PRNG, поскольку вы не можете отличить их результаты от PRNG
  2. Вам нужно доверять оператору сервиса
  3. Случайные данные передаются вам по более низкому каналу безопасности. Злоумышленник, который может сломать PRNG, может также сломать SSL.

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

CodesInChaos
источник
Да, я не могу доказать, что результат был действительно случайным. но не так сложно доверять этому random.org/statistics . Вы, кажется, предполагаете, что безопасность - это одно из моих требований, но это не так. Мне нужно случайное число fullstop. Не случайный и безопасный номер. (Если злоумышленник хочет подслушать, не стесняйтесь, это не повредит)
Pacerier
1
Нетрудно доверять PRNG, для которого математически доказано, что для его отличия от настоящего RNG требуется решение очень сложных математических задач.
CodesInChaos
@CodeInChaos является ли онлайн-казино очень сложной математической проблемой? Это не так, но это требует такой случайности, не правда ли?
Pacerier
2
Я не вижу технических причин, по которым хороший PRNG, время от времени получавший сто бит истинной энтропии, не может быть достаточным даже для онлайн-казино. Могут быть юридические причины, но я предполагаю, что в этом случае вам нужно генерировать свою истинную случайность локально, поскольку это дает вам больше шансов доказать, что вы используете истинные случайные числа.
CodesInChaos
8
+1 Я с тобой полностью согласен. Если вы создаете игру, которая должна генерировать реалистичные случайные данные, то вам лучше использовать PRNG, чем действительно генератор случайных чисел. Во-первых, существует математическое доказательство того, что он дает статистически случайные данные, соответствующие распределению вероятностей. Во-вторых, вы можете выбрать это распределение вероятностей. В-третьих, вы можете детально протестировать ваше приложение. В-четвертых, вы можете выбрать семена при запуске, чтобы они никогда не вели себя одинаково дважды. Лично я думаю, что ОП на самом деле не понимает, что означает случайность или зачем он ей нужен.
5

Несколько лет назад вы могли назвать lavarand SGI, который генерировал случайные числа, используя текущую форму капли и положение лампы лавы, наблюдаемой веб-камерой.

Хотя сейчас его уже нет, вы можете легко создать свой собственный генератор с веб-камерой и открытым исходным кодом от замечательных людей из LavaRnd (EDIT: уже давно не работает. Wayback Machine Sourceforge Project ). Оказывается, что вам вообще не нужна лавовая лампа: шум, улавливаемый ПЗС, когда веб-камера запечатана в светонепроницаемом контейнере, является отличным источником для генерации криптографически случайных случайных чисел.

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

Мэтью Фредерик
источник
но наверняка со временем «случайный» шум, генерируемый веб-камерой, будет соответствовать нормальному распределению? Я не знаю, хотел бы это уточнить?
Темная ночь
4
@Darknight: Какое отношение имеет распределение к случайности? Можно генерировать детерминированные последовательности для соответствия любому распределению, а для случайных чисел - любое распределение.
Дэвид Торнли
2
@Darknight Как отмечает Дэвид, соответствие числа в конечном итоге нормальному распределению не влияет на случайность. Если вы заинтересованы в том, что требуется для криптографически обоснованного (или криптостойкого) генератора случайных чисел, у ребят из LavaRnd есть масса информации и ссылок на их сайт, а также их отношение к LavaRnd.
Мэтью Фредерик
Серьезно, нет способа легко создать его, Мэтью. Как именно вы определяете легко?
Pacerier
2
@Pacerier Вы правы, что «легкий» - это вопрос перспективы. Этот метод прост, если у вас есть доступ к вашему серверу, и поиск подходящей веб-камеры не займет много времени - скажем, 10 долларов «купи сейчас» на ebay. Это оставляет прикрепление камеры; загрузка, компиляция и запуск бесплатного программного обеспечения; и добавив вызов к услуге в вашем коде. Не тривиально, но довольно просто, чрезвычайно недорого и предоставляет неограниченное количество запросов.
Мэтью Фредерик
1

Откройте TCP-соединение с любым хостом / портом и посчитайте количество наносекунд, которое требуется. Там твой случайный номер.

R .. GitHub ОСТАНОВИТЬ, ПОМОГАЯ ЛЕД
источник
Я надеюсь, что это не то, как вы генерируете случайные числа.
Крейг,
9
Суть моего (слегка саркастического) ответа заключается в том, что энтропия во время, которое требуется пакетам для перемещения, стоит намного больше, чем «случайное» число, энтропии которого вы доверяете стороннему серверу.
R .. GitHub ОСТАНОВИТЬ ЛЬДА
5
@Pacerier: Никто из умных не пишет свой собственный крипто, если только он не эксперт. Это отличается от отправки вашего открытого текста в веб-службу и получения зашифрованного текста обратно. Точно так же вы, вероятно, не хотите пытаться спроектировать свою собственную систему квантовой случайности, но получение случайных чисел, отправляемых вам через HTTP, ненадежно.
Дэвид Торнли
1
@Pacerier Но вы все еще не показали, почему альтернатива использования локального PRNG с периодическим введением энтропии (из местных источников энтропии) невозможна.
CodesInChaos
1
@Pacerier: поверьте мне: вам не нужны подлинные случайные числа для экономического моделирования. Хорошего псевдо- (или квази-, если вам небезразлично равномерное распределение) генератора случайных чисел будет достаточно. Проблемы кроются в другом месте (например: вы хотите, чтобы числа были некоррелированными во многих измерениях - откуда вы знаете, что веб-сервис, который вы используете, даже мешает проверить, как их числа заполняют 20-мерное пространство?).
quant_dev
1

Вот еще один квантовый генератор, с остальными api не меньше:

http://photonics.anu.edu.au/qoptics/Research/qrng.php

Исследователи из АНУ генерируют истинные случайные числа из физического квантового источника. Мы делаем это, разбивая луч света на два луча, а затем измеряя мощность в каждом луче. Поскольку свет квантуется, интенсивность света в каждом луче колеблется около среднего значения. Эти колебания, в конечном счете, из-за квантового вакуума, могут быть преобразованы в источник случайных чисел.

ним чимпский
источник