Ich brauche einen echten Zufallszahlengenerator-Webdienst [geschlossen]

10

Random.org bietet 200.000 freie Zufallsbits (nur 6250 32-Bit-Ganzzahlen!) Aus der analogen Welt ( vgl. ) Pro IP pro Tag.

Kennt jemand einen alternativen Webdienst, der mehr zufällige On-Demand-Bits pro Tag bereitstellt?

(Die Zahlung ist in Ordnung, solange der Preis "innerhalb der Erwartungen" von 1000 × 1024 Bit pro US-Cent liegt.) (Die bezahlten Servicegebühren von random.org betragen 100 × diesen Preis.)

Pacerier
quelle
9
Die größere Frage ist "warum" brauchen Sie einen "wirklich" Zufallszahlengenerator?
Darknight
5
Ein echter Zufallsgenerator in reiner Software existiert nicht. Sie können nah dran sein, am Ende des Tages wird es nicht wirklich zufällig sein.
Ramhound
10
Wofür brauchst du es? Wenn es ein Spiel oder etwas ist, dann ist Pseudozufall normalerweise gut genug. Wenn es sich um Kryptografie handelt, sollten Sie keinen Webdienst verwenden. Sie müssen erklären, wofür es ist, bevor wir Sie auf tragfähige Lösungen hinweisen können.
Michael Kohne
4
Hier gehts! [webservice] public int GetRandomNumber() { return 4; // rfc 1149.5 }. Bildnachweis
Homde
3
Entschuldigen Sie, Sir, möchten Sie einige Ganzzahlen kaufen? Wir führen nur die besten Freiland-Ganzzahlen.
Rein Henrichs

Antworten:

25

Vielleicht dieser.

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

Von der Website:

Wir bieten einen neuen Quantenzufallszahlengenerator (QRNG) an, der auf der Quantenzufälligkeit der Photonenankunftszeiten basiert. Es verspricht nachweisbare und langfristige statistische Qualität, Geschwindigkeit sowie Erschwinglichkeit. Unser Design schafft eine neue Qualität in dem Sinne, dass es wesentlich höhere Bitraten bietet als frühere Lösungen, die der Öffentlichkeit zur Verfügung stehen. Dies ist möglich geworden, indem die neuesten Photonen-Timing-Instrumente und die Datenverarbeitung auf dem neuesten Stand der Technik in Hardware genutzt wurden.

Der auf die Rohdaten angewendete Nachbearbeitungsalgorithmus bietet nicht nur eine hohe Geschwindigkeit (bis zu 150 Mbit / s über USB), sondern basiert auch auf soliden Vorhersagen aus der Informationstheorie, die die Wahrung der Zufälligkeit gewährleisten. Dies ermöglicht die Verwendung der gelieferten Zufallszahlen in bedingungslos sicheren Verschlüsselungsschemata.
[...]
Zugriffsrichtlinien
Keine der bereitgestellten Daten wird mehr als einmal übermittelt, weder an einen einzelnen Benutzer noch an unabhängige Benutzer. Die Nutzung des Dienstes ist kostenlos, erfordert jedoch eine Registrierung.

Freund
quelle
1
(0.o) ?! egad! Ich dachte, es wäre ein Witz, aber nein, es existiert wirklich :) (+1) toller Fund
Darknight
4
-1 für schlechte Antwortqualität. Dies könnte sehr gut eine großartige Lösung sein, aber Sie haben keine Details zu dem Link / Service angegeben, und es ist mir egal, den gesamten Link für eine Zusammenfassung zu lesen. Wenn für eine Antwort auf P.SE ein Link erforderlich ist, geben Sie bitte eine Zusammenfassung der Lösung an, zu der Sie einen Link erstellen. Ich werde in Betracht ziehen, meine Ablehnung zu entfernen, wenn Sie Ihre Antwort überarbeiten.
Craige
4
@NimChimpsky - Warum? Denn so schreiben Sie eine Qualitätsantwort auf P.SE. ba__friend sollte eine kurze Beschreibung des Dienstes für diejenigen veröffentlicht haben, die diese Frage lesen. Vielleicht eine kurze Erklärung / ein Zitat darüber, wie der Dienst seine Zufallszahlen generiert.
Craige
2
@Craige Ich habe den Beitrag mit einem Auszug aus der Seite aktualisiert.
Adam Lear
5
@NimChimpsky: Weil Linkrot passiert.
Jon Purdy
31

Was Sie verlangen, ist Weihwasser, und Sie lehnen den Vorschlag ab, normales Wasser zu verwenden. Der einzige Grund, Weihwasser dem Wasser vorzuziehen, ist religiös. Es gibt einfache, zufällig gesetzte PRNGs, die durch keinen bekannten Prozess von der tatsächlichen physischen Zufälligkeit unterschieden werden können. Und diese Systeme sind nicht deterministisch.

Ein realer Computer hat mehrere Quellen für echte physische Zufälligkeit. Beispielsweise verfügt eine moderne x86-CPU über eine 'TSC', die die Anzahl der Befehlszyklen (und damit indirekt die Zeit bis zu einer Auflösung von etwa einer Milliardstel Sekunde) misst.

Sie können die TSC erfassen, wenn ein Netzwerkpaket eintrifft. Die niedrigen Bits der TSC hängen vom genauen Versatz zwischen dem Quarzoszillator, der die Netzwerkschnittstelle mal misst, und dem Quarzoszillator ab, der die CPU ausführt. Dies hängt von mikroskopischen Zonentemperaturschwankungen in den beiden Quarzkristallen ab, von denen angenommen wird, dass sie wirklich zufällig sind.

Ebenso können Sie die TSC erfassen, wenn Daten von der Festplatte eingehen. Die niedrigen Bits hängen von der turbulenten Luftstromscherung zwischen der Festplattenoberfläche und dem Gehäuse ab. Es wird auch angenommen, dass dies wirklich zufällig ist.

Bekannte Algorithmen wie der vom Linux-Kernel verwendete (von Theodore Ts'o basierend auf der Arbeit von M. Matsumoto und Y. Kurita entwickelte) verwenden den Lawineneffekt, um einige unvorhersehbare Bits in eine viel größere Anzahl umzuwandeln. Die einzigen Unterschiede zwischen den Ausgaben dieser Algorithmen (vorausgesetzt, sie werden ordnungsgemäß durch TSC-Daten ausgesät) und der Ausgabe der tatsächlichen physischen Zufälligkeit sind religiös - keine bekannte Methode kann diese Ausgaben unterscheiden. Es gibt keinen Test, den einer bestehen und der andere nicht bestehen wird.

Ich habe Zufallszahlengeneratoren für die Verwendung im Online-Casino entwickelt, die eine unabhängige Zertifizierung erhalten haben. Diese Methoden werden in der realen Welt verwendet.

David Schwartz
quelle
6
+1 für den gesunden Menschenverstand, die interessanten Beispiele und die schöne Weihwassermetapher!
Mikera
Super +1. Erinnert mich daran, wie wir beim Online-Poker das
Doval
@ David, Hallo, es macht mir etwas aus, auf die Geschichte "Ich habe Zufallszahlengeneratoren für die Verwendung im Online-Casino entwickelt" einzugehen.
Pacerier
Es ist nicht so interessant. Ein Online-Casino hat mich beauftragt, ein RNG für sie zu entwickeln, und es wurde von TST, einer australischen Zertifizierungsfirma, zertifiziert.
David Schwartz
13

Ich verstehe immer noch nicht, warum ein kryptografisches PRNG für Ihr Problem nicht gut genug ist. Eine definierende Eigenschaft eines Krypto-PRNG ist, dass es (mit angemessenen Mengen an Hardware) nicht möglich ist, seine Ausgabe von einem echten RNG zu unterscheiden.

Dies bedeutet, dass es für jede Art von Simulation oder Anwendung geeignet ist, die mir in den Sinn kommt, abgesehen von der Generierung kryptografischer Schlüssel oder der Initialisierung des Krypto-PRNG selbst (es werden offensichtlich einige hundert Bit echte Entropie benötigt, um loszulegen).

Andererseits können Webservice-RNGs seitdem auch nicht mehr für Krypto verwendet werden

  1. Sie können nicht beweisen, dass sie tatsächlich ein echtes PRNG sind, da Sie ihre Ausgabe nicht von einem PRNG unterscheiden können
  2. Sie müssen dem Betreiber des Dienstes vertrauen
  3. Die zufälligen Daten werden über einen niedrigeren Sicherheitskanal an Sie übertragen. Ein Angreifer, der ein PRNG brechen kann, kann auch SSL brechen.

Ich kann mir also keine einzige Verwendung vorstellen, bei der man ein Webservice-RNG einem guten PRNG vorziehen würde. Wenn Sie wirklich echte und sichere Zufallszahlen benötigen, sehe ich keine Alternative zum Erstellen von Hardware.

CodesInChaos
quelle
Ja, ich kann nicht beweisen, dass die Ausgabe wirklich zufällig ist. aber es ist nicht so schwer, ihm zu vertrauen random.org/statistics . Sie scheinen anzunehmen, dass Sicherheit eine meiner Anforderungen ist, aber nicht. Ich brauche eine Zufallszahl. Keine zufällige und sichere Zahl. (Wenn ein Angreifer lauschen möchte, fühlt es sich nicht weh)
Pacerier
1
Es ist nicht schwer, einem PRNG zu vertrauen, für das mathematisch nachgewiesen wurde, dass zur Unterscheidung von einem echten RNG sehr schwierige mathematische Probleme gelöst werden müssen.
CodesInChaos
@CodeInChaos ist ein Online Casino ein sehr schwieriges mathematisches Problem? Es ist nicht so, aber es erfordert diese Art von wahrer Zufälligkeit, meinst du nicht auch?
Pacerier
2
Ich sehe keine technischen Gründe, warum ein guter PRNG gelegentlich hundert Bits echte Entropie erhalten sollte, sollte nicht einmal für ein Online-Casino ausreichen. Es mag rechtliche Gründe geben, aber ich gehe davon aus, dass Sie in diesem Fall Ihre wahre Zufälligkeit lokal generieren müssen, da dies Ihnen bessere Chancen bietet, zu beweisen, dass Sie echte Zufallszahlen verwenden.
CodesInChaos
8
+1 Ich stimme dir vollkommen zu. Wenn Sie ein Spiel erstellen, das realistische Zufallsdaten generieren muss, sind Sie mit einem PRNG besser dran als mit einem echten Zufallszahlengenerator. Erstens gibt es einen mathematischen Beweis dafür, dass statistisch zufällige Daten erzeugt werden, die an eine Wahrscheinlichkeitsverteilung angepasst sind. Zweitens können Sie diese Wahrscheinlichkeitsverteilung wählen. Drittens können Sie Ihre Anwendung deterministisch testen. Viertens können Sie den Samen beim Start so auswählen, dass er sich nie zweimal gleich verhält. Persönlich denke ich, dass das OP nicht wirklich versteht, was Zufälligkeit bedeutet oder warum er sie braucht.
5

Vor einigen Jahren konnte man SGIs Lavarand aufrufen, das Zufallszahlen generierte, indem man die aktuelle Blob-Form und -Position einer Lavalampe verwendete, die von einer Webcam beobachtet wurde.

Obwohl es jetzt weg ist, können Sie ganz einfach Ihren eigenen Generator mit einer Webcam und dem Open-Source-Code von den feinen Leuten bei LavaRnd erstellen ( BEARBEITEN : seit einiger Zeit nicht mehr verfügbar . Wayback Machine Sourceforge Project ). Es stellt sich heraus, dass Sie die Lavalampe überhaupt nicht benötigen: Das vom CCD aufgenommene Rauschen, während die Webcam in einem lichtdichten Behälter versiegelt ist, ist eine hervorragende Quelle für die Erzeugung kryptografisch einwandfreier Zufallszahlen.

(Ich weiß, dass dies kein Dienst ist, den Sie jetzt nutzen können, aber weil es früher so war, weil es so cool war und weil Sie sehr einfach einen fast kostenlosen erstellen können, dachte ich, dass es sich lohnt, eine Antwort zu sein.)

Matthew Frederick
quelle
aber sicherlich würde das von der Webcam erzeugte "zufällige" Rauschen im Laufe der Zeit zu einer Normalverteilung passen? Ich weiß nicht, ob es geklärt werden soll?
Darknight
4
@ Darknight: Was hat die Distribution mit Zufälligkeit zu tun? Es ist möglich, deterministische Sequenzen zu generieren, die mit jeder Verteilung übereinstimmen, und es ist möglich, dass Zufallszahlen zu jeder Verteilung passen.
David Thornley
2
@Darknight Wie David bemerkt, hat es keinen Einfluss auf die Zufälligkeit, ob die Zahlen irgendwann zu einer Normalverteilung passen oder nicht. Wenn Sie daran interessiert sind, was erforderlich ist, um einen Zufallszahlengenerator kryptografisch (oder kryptostark) zu machen, haben die LavaRnd-Leute eine Menge "stat nerd" -Informationen und Links auf ihrer Website, zusammen mit ihrer Beziehung zu LavaRnd.
Matthew Frederick
Im Ernst, es gibt keine Möglichkeit, einen einfachen Matthew zu erschaffen. Wie genau definieren Sie einfach?
Pacerier
2
@ Pacerier Du hast Recht, dass "einfach" eine Frage der Perspektive ist. Diese Methode ist einfach, wenn Sie Zugriff auf Ihren Server haben und die Suche nach einer geeigneten Webcam nicht lange dauert - beispielsweise 10 US-Dollar "Jetzt kaufen" bei ebay. Damit bleibt die Kamera angebracht; Herunterladen, Kompilieren und Ausführen der kostenlosen Software; und Hinzufügen eines Anrufs zum Dienst in Ihrem Code. Nicht trivial, aber ziemlich einfach, extrem kostengünstig und bietet eine unbegrenzte Anzahl von Anfragen.
Matthew Frederick
1

Öffnen Sie eine TCP-Verbindung zu einem beliebigen Host / Port und zählen Sie die Anzahl der benötigten Nanosekunden. Da ist deine Zufallszahl.

R .. GitHub HÖREN SIE AUF, EIS ZU HELFEN
quelle
Ich hoffe, dass Sie auf diese Weise keine Zufallszahlen generieren.
Craige
9
Der Punkt meiner (leicht sarkastischen) Antwort ist, dass die Entropie in der Zeit, die Pakete für die Reise benötigen, viel mehr wert ist als eine "Zufallszahl", deren Entropie Sie einem Server eines Drittanbieters anvertrauen.
R .. GitHub STOP HELPING ICE
5
@ Pacerier: Niemand, der intelligent ist, schreibt seine eigene Krypto, es sei denn, er ist ein Experte. Dies unterscheidet sich vom Senden Ihres Klartextes an einen Webdienst und vom Zurückerhalten von Chiffretext. Ebenso möchten Sie wahrscheinlich nicht versuchen, Ihr eigenes Quantenzufälligkeitssystem zu entwerfen, aber es ist nicht zuverlässig, Zufallszahlen über HTTP an Sie zu senden.
David Thornley
1
@Pacerier Sie haben jedoch noch nicht gezeigt, warum die Alternative der Verwendung eines lokalen PRNG mit gelegentlicher Entropieinjektion (aus lokalen Entropiequellen) nicht möglich ist.
CodesInChaos
1
@Pacerier: Vertrau mir: Du brauchst keine echten Zufallszahlen für Wirtschaftssimulationen. Ein guter Pseudo- (oder Quasi-, wenn Sie sich für die gleichmäßige Verteilung interessieren) Zufallsgenerator wird ausreichen. Die Probleme liegen an anderer Stelle (zum Beispiel: Sie möchten, dass die Zahlen in vielen Dimensionen unkorreliert sind - woher wissen Sie, dass der von Ihnen verwendete Webservice sogar stört, um zu überprüfen, wie ihre Zahlen einen 20-dimensionalen Raum ausfüllen?).
quant_dev
1

Hier ist ein weiterer quantenbasierter Generator mit einer Ruhe-API:

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

Forscher an der ANU generieren echte Zufallszahlen aus einer physikalischen Quantenquelle. Dazu teilen wir einen Lichtstrahl in zwei Strahlen auf und messen dann die Leistung in jedem Strahl. Da Licht quantisiert wird, schwankt die Lichtintensität in jedem Strahl um den Mittelwert. Diese Schwankungen, die letztendlich auf das Quantenvakuum zurückzuführen sind, können in eine Quelle von Zufallszahlen umgewandelt werden.

NimChimpsky
quelle