Мені потрібна справжня веб-служба генератора випадкових чисел [закрита]


10

Random.org надає 200 000 безкоштовних випадкових біт (всього 6250 32-бітових цілих чисел!) З аналогового світу ( пор. ) На IP в день.

Хтось знає про альтернативну веб-службу, яка надає більше випадкових біт на вимогу на день?

(оплата в порядку, поки ціна "в очікуванні" 1000 × 1024 біт за сто відсотків) (платний сервіс random.org стягує 100 × ця ціна)


9
Питання більш важливе - "навіщо" вам потрібен "справді" генератор випадкових чисел?
Темна ніч

5
Справжнього випадкового генератора в чистому програмному забезпеченні не існує. Ви можете наблизитись, наприкінці дня це не буде справді випадково.
Рамхаунд

10
Для чого це потрібно? Якщо це гра чи щось таке, то псевдовипадкова нормально є досить хорошою. Якщо це криптографія, вони не повинні використовувати веб-сервіс. Вам потрібно пояснити, для чого це потрібно, перш ніж ми можемо вказати на життєздатні рішення.
Майкл Коне

4
Ось ви йдете! [webservice] public int GetRandomNumber() { return 4; // rfc 1149.5 }. Кредит: xkcd.com/221
Хомда

3
Вибачте, пане, чи хотіли б ви придбати кілька цілих чисел? Ми зберігаємо лише найкращі цілі числа, що знаходяться у вільному діапазоні.
Рейн Генріхс

Відповіді:


25

Можливо, цей.

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

З сайту:

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

Крім забезпечення високої швидкості (до 150 Мбіт / с через USB), алгоритм після обробки, застосований до необроблених даних, заснований на ґрунтовних прогнозах інформаційної теорії, які гарантують збереження випадковості. Це дозволяє використовувати доставлені випадкові числа в безумовно захищених схемах шифрування.
[...]
Політика доступу
Жодна із поданих даних не надходить більше одного разу, ні одному користувачеві, ні іншим> незалежним користувачам. Користуватися послугою безкоштовно, але вимагає реєстрації.


1
(0.о) ?! егад! Я подумав, що це жарт, але ні, це насправді не існує :) (+1) чудова знахідка
Darknight

4
-1 за неякісну відповідь. Це цілком може бути чудовим рішенням, але ви не вказали деталей посилання / послуги, і мені все одно, щоб прочитати повне посилання для резюме. Коли відповідь на P.SE вимагає посилання, будь ласка, надайте короткий виклад рішення, на яке ви посилаєтесь. Я розглядаю питання про вилучення свого голосного протоколу, якщо ви переглянете свою відповідь.
Крейдж

4
@NimChimpsky - чому? Бо саме так ви пишете якісну відповідь на P.SE. ba__friend повинен був опублікувати короткий опис послуги для тих, хто читає це питання. Можливо, швидке пояснення / цитата щодо того, як сервіс генерує випадкові числа.
Крейдж

2
@Craige Я оновив публікацію з уривком із сайту.
Адам Лір

5
@NimChimpsky: Тому що linkrot трапляється.
Джон Перді

31

Те, що ви просите, - це свята вода, і ви відкидаєте пропозицію, що ви використовуєте звичайну воду. Єдина причина віддати перевагу Святій воді над водою - це релігійна. Існують прості PRNG, що містяться випадковим чином, які не можна відрізнити від справжньої фізичної випадковості жодним відомим процесом. І ці системи є недетермінірованного.

Комп'ютер у реальному світі має кілька джерел справжньої фізичної випадковості. Наприклад, сучасний процесор x86 має "TSC", який вимірює кількість циклів інструкцій (і, таким чином, опосередковано час на дозвіл мільярдної секунди або близько того).

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

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

Відомі алгоритми, такі як той, який використовує ядро ​​Linux (розроблений Теодором Цьо на основі роботи М. Мацумото та Ю. Куріти), використовують ефект лавини для перетворення декількох непередбачуваних бітів у значно більшу кількість. Єдина відмінність між результатами цих алгоритмів (якщо припустити, що вони належним чином посіяні даними ТСК) та результатами справжньої фізичної випадковості є релігійною - жоден відомий метод не може розрізнити ці результати. Немає тесту на те, що один пройде, а другий провалиться.

Я створив генератори випадкових чисел для використання в Інтернет-казино, які досягли незалежної сертифікації. Ці методи використовуються в реальному світі.


6
+1 за здоровий глузд, цікаві приклади та приємну метафору святої води!
mikera


@David, Привіт, я маю на увазі детальну інформацію про історію "Я створив генератори випадкових чисел для використання в онлайн-казино" ..?
Pacerier

Це не так цікаво. Інтернет-казино найняло мене розробити для них RNG, і це було сертифіковано австралійською сертифікаційною фірмою TST.
Девід Шварц

13

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

Це означає, що це досить добре для будь-якого моделювання чи застосування, про яке я можу придумати, окрім генерації криптографічних ключів або ініціалізації самого криптовалюти PRNG (для початку роботи, очевидно, потрібно кілька сотень біт справжньої ентропії).

З іншого боку, RNG з веб-сервісу також не можна використовувати для криптовалюти

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

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


Так, я не можу довести результат справді випадковим. але це не так важко повірити цьому random.org/statistics . Ви, здається, вважаєте, що безпека є однією з моїх вимог, але її немає. Мені потрібна випадкова кількість повної зупинки. Не випадкове і безпечне число. (Якщо зловмисник хоче підслухати себе вільно, це не зашкодить)
Pacerier

1
Не важко довіритися PRNG, для якого математично було доведено, що відмежування його від справжнього RNG вимагає вирішення дуже важких математичних задач.
CodesInChaos

@CodeInChaos - це онлайн-казино - дуже складна математична проблема? Це не так, але це вимагає такої справжньої випадковості?
Pacerier

2
Я не бачу технічних причин, чому хороший PRNG час від часу отримував сто біт справжньої ентропії, не повинно бути достатньо навіть для онлайн-казино. Можуть бути юридичні причини, але я припускаю, що в цьому випадку вам потрібно створити справжню випадковість на місцевому рівні, оскільки це дає кращі шанси довести, що ви використовуєте справжні випадкові числа.
CodesInChaos

8
+1 Я повністю з вами згоден. Якщо ви створюєте гру, якій потрібно генерувати реалістичні випадкові дані, то вам краще використовувати PRNG, ніж справді генератор випадкових чисел. По-перше, існує математичний доказ того, що він виробляє статистично випадкові дані, пристосовані до розподілу ймовірностей. По-друге, ви можете вибрати такий розподіл ймовірностей. По-третє, ви можете перевірити свою програму детерміновано. По-четверте, ви можете вибрати насіння при запуску, щоб воно ніколи не поводилося так само двічі. Особисто я думаю, що ОП насправді не розуміє, що означає випадковість, або для чого він потрібен.

5

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

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

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


але напевно з часом «випадковий» шум, що генерується веб-камерою, підходить до нормального розповсюдження? Я не знаю, хотілося б, щоб це з’ясувалося?
Темна ніч

4
@Darknight: Яке відношення має до випадкових випадків? Можна згенерувати детерміновані послідовності, щоб відповідати будь-якому розподілу, і можливо випадкові числа підходити до будь-якого розподілу.
Девід Торнлі

2
@Darknight Як зазначає Девід, незалежність того, чи зрештою числа відповідають нормальному розподілу, не впливає на випадковість. Якщо вас цікавить, що потрібно, щоб зробити генератор випадкових чисел криптографічно звуковим (або криптосильним), хлопці LavaRnd мають на своєму веб-сайті безліч інформації про "стат-нерд", а також те, як вони відносяться до LavaRnd.
Меттью Фредерік

Серйозно, немає ніякого способу легко створити Метью. Як саме ви визначаєте легко?
Pacerier

2
@Pacerier Ви праві, що "легко" - це питання перспективи. Цей спосіб простий, якщо у вас є доступ до вашого сервера, а пошук підходящої веб-камери не займе багато часу - скажімо, на ebay $ 10 "купіть зараз". Це залишає кріплення камери; завантаження, компілювання та запуск безкоштовного програмного забезпечення; і додавання дзвінка до служби у вашому коді. Не банально, але досить легко, надзвичайно недорого і забезпечує необмежену кількість запитів.
Меттью Фредерік

1

Відкрийте TCP-з'єднання до будь-якого хоста / порту та підрахуйте кількість наносекунд, що потрібно. Там є ваше випадкове число.


Я сподіваюся, що це не так, як ви насправді генеруєте випадкові числа.
Крейдж

9
Суть моєї (м'яко саркастичної) відповіді полягає в тому, що ентропія за час, який потрібен пакетам для подорожі, коштує набагато більше, ніж "випадкове" число, ентропія якого ви довіряєте сторонній серверу.
R .. GitHub СТОП ДОПОМОГАТИ ЛІС

5
@Pacerier: Ніхто з розумних не пише власну криптовалюту, якщо вони не є експертом. Це відрізняється від того, щоб надіслати свій звичайний текст до веб-сервісу і отримати шифротекст назад. Так само, напевно, ви не хочете намагатися створити власну систему квантової випадковості, але отримання випадкових чисел, що надсилаються вам через HTTP, не є надійним.
Девід Торнлі

1
@Pacerier Але ви все ще не показали, чому альтернатива застосуванню локального PRNG з епізодичною інтропією (з місцевих джерел ентропії) неможлива.
CodesInChaos

1
@Pacerier: мені повірте: вам не потрібні справжні випадкові числа для економічного моделювання. Хорошого псевдо- (або квазі-, якщо ви дбаєте про рівномірний розподіл) випадкового генератора буде достатньо. Проблеми полягають в іншому місці (наприклад: ви хочете, щоб цифри були незв’язаними у багатьох вимірах - як ви знаєте, що веб-сервіс, який ви використовуєте, навіть турбує, щоб перевірити, як їхні числа заповнюють 20-мірний простір?).
Quant_dev

1

ось ще один квантовий генератор, що має спокій не менше:

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

Дослідники АНУ генерують справжні випадкові числа з фізичного квантового джерела. Ми робимо це, розділяючи промінь світла на два пучки, а потім вимірюючи потужність у кожному промені. Оскільки світло визначається квантово, інтенсивність світла в кожному промені коливається в середньому. Ці коливання, зрештою, завдяки квантовому вакууму, можуть бути перетворені на джерело випадкових чисел.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.