Echte Zufallszahlen

7H3 N4C3R

Lt. Commander
Registriert
Feb. 2002
Beiträge
1.816
Hi,


weiß jemand, woher ich echte Zufallszahlen bekommen kann? Also keine Pseudo-Zufallszahlen aus irgendeiner Random-Funktion. Wenn man ein wenig googelt, findet man ein paar Generatoren im Internet, aber das ist mir zu unsicher. Ich habe auch schon einen Generator für USB gefunden, allerdings viel zu teuer. ~200 Euro.

Kennt jemand Alternativen?

Gruß
 
warum müssen diese absolut zufall sein? :D

würfel doch einfach ^^
 
Hallo,
soweit mir bekannt ist kann man mit Computer oder computerbasierten systemen keine echten Zufallszahlen erzeugen. Ist ja auch klar, da Computer immer nach einem Rechenschema vorgehen.
Echte Zufallszahlen kannst du durch statistische Prozesse in der Physik erzeugen, wenn man z.B. die spontane Emission von Licht benutzt. Eine schwach leuchtende Glühbirne sendet Licht zufällig in unterschiedliche Richtung mit unterschiedlicher Polarisation aus. Wenn man nun aus einer Richtung die Polarisation mit einem Filter+Photodetektor misst und als Bitmuster benutzt, kann man echte Zufallszahlen erzeugen.
Such doch mal im Internet nach Quantenkryptographie, dort muss man ja auch echte Zufallszahlen für einen sicheren Schlüssel erzeugen.

und tschüß
rincewind
 
Ja oder schreib dir ein Programm in C++ nimm als seed time(), aber das ist auch nur Pseudozufall.
Denn wir bereits gesagt wurde mir Rechnersystemen kann man keine richtigen zufallszahlen bekommen. Am besten und billigsten ist da dann doch würfeln :D
 
Hi...

hmm..also ich hab mal irgendwo gelesen, dass man halbwegs echte Zufallszahlen mittels Einbezug der Zeit zustande bekommt. Das heisst Du nimmst Dir diese wüsten Formeln mit denen man Zufallszahlen (aber nicht die echten) bekommt und multiplizierst das ganze mit der aktuellen tausendstel Sekunde der Zeit oder so ähnlich.

Glaube so ist das gewesen :rolleyes:

Gruss
Manuel
 
Sind aber auch keine Zufallszahlen, da man dann immer noch zurückrechnen könnte, wenn man sich die Mühe macht, sie sind nur sehr viel "zufälliger".
 
jo das entspricht ja dem was ich geschrieben habe, aber es ist trotzdem kein wirklicher zufall, leider.
 
Falls möglich, schreib dir doch ein Prog, was ein Zahlenstring aus den Mausparametern erzeugt. Dann drehst du halt mal eine Runde mit deiner Maus und hast 'ne Zufallszahl. Falls du eine ganze Menge an Zahlen brauchst, kannst du ja nebenbei 'ne Runde zocken :D.
 
Auch das ist kein echter Zufall, weil du es ja beeinflussen kannst ;)
echte Zufallszahlen bekommt man nur, wenn man auf wirklich zufällige Ereignisse (z.B. Kernzerfall) achtet und daraus Zahlen generiert...
 
Naja, die Wissenschaft, auch die Religionswissenschaften sind sich immernoch nicht im klaren ob es überhaupt Zufällt gibt.
Die einen sagen alles was passiert ist zu einem Anteil zufällig, andere behaupten dass all das als Zufall bezeichnet wird, wo wir die Regeln nicht für kennen. Herausfinden werden wir es wohl niemals. :rolleyes:
Das bedeutet dann den absoluten und allgegenwärtigen Determinismus, und hat zur Folge dass es keinen freien Willen gibt, noch dass wir irgendetwas selbst entscheiden können in unserer Welt. Alles ist vorherbestimmt, und ergibt sich aus dem vorherigen Zustand.

Die wichtige Frage ist hier wohl vielmehr die nach dem Einsatz-Zweck! Wie zufällig müssen die Nummern sein, und wofür werden sie gebraucht?
 
Zuletzt bearbeitet:
Das USB Gerät ermittelt die Zahlen aus Transistorrauschen meine ich - auch völlig zufällig.
Zahlen aus dem Internet will ich nicht, sondern nur selbst generierte.

Ich brauche die für Onetime-Pad Verschlüsselung. Deshalb ist es in dem Rahmen auch nicht akzeptabel, dass die Zahlen aus dem Internet gekommen sind.

Pseudo-Zufallsgeneratoren sind auf Grund des Onetime-Pads völlig unbrauchbar.

Achso, wenn dann will ich die Zahlen in rauhen Mengen generieren - am besten Gigabyte-Weise.
 
Zuletzt bearbeitet:
Was mir grad so einfällt...
Nimm doch einen Mersenne Twister und erzeug damit deine Zahlen.
Das ist auch nur (wenn auch guter) Pseudo-Zufall, deswegen erzeugst du keine Zahlen von 0...dein_max_wert sondern von 0...ram_installiert.
Diese Zahl nimmst du dann als Pointer und liest dann das Byte an der entsprechenden Speicheradresse aus.
 
Immernoch deterministisch. :) Und der Speicherinhalt hat eine recht gleichförmige Verteilung, wenn man die statistische Häufigkeit von bestimmten Bytes betrachtet. Außerdem darf man nicht einfach wo man lustig ist im Speicher rumlesen. Das gibt böse Page Faults ;)


Aber trotzdem, grundlegende Idee ist nicht schlecht ;)
 
Du nimmst die Temperatur eines Laufwerks, als seed für den Pseudo-Zufalls-Generator nimmst du die Uhrzeit mal die Temperatur des Prozessors, und berechnest dann nach einem Funktionswert der Temperatur (z.B. Temperatur des Prozessors * Uhrzeit) eine bestimmte Anzahl an Zufallszahlen. Die letzte nimmst du dann wiederum als Seed.
Ist das Zufällig genug? ;)
Die Pseudozufallszahlen sind schon ziemlich zufällig verteilt, aber wenn ein Angreifer den Seed herausfindet, kann er alle anderen nachvollziehen die dann kommen.
 
-grübel- Aber Debugger können das doch auch?! O_o
Und wenns dir nicht passt dann nimmst du halt
addr = 0 .. ram_size/2
randbyte = *((char*)(addr<<1)) ^ *((char*)((addr<<1)|1))
Damit ists wieder zufälliger :)

Oder minetwegen irgendeinen anderen Hash :)

Ansonsten hast du ohne Hardware keine Chance, da an irgendwas ranzukommen...

Wenn du die Hardware verwendest: Das Rauschen aus dem Line-In nehmen und die untersten Bits kombinieren... (eine Soundkarte hat mittlerweile ja wohl jeder...)

/edit: untersten = LSB
 
Erm... also in dem Bereich den du brauchst reicht die implementierte Random allemal!
Das einzige ist, daß man nur maximal 2^32 Zahlen generieren kann, dann wiederholen sich die zahlen (also die 2^32+1 Zahl ist gleich der 1. usw...).

Alles andere geht NUR über Quanten Zufallsgeneratoren.
Allerdings wirst du das nicht brauchen...
 
BOZ_er schrieb:
Das einzige ist, daß man nur maximal 2^32 Zahlen generieren kann, dann wiederholen sich die zahlen (also die 2^32+1 Zahl ist gleich der 1. usw...).
Öhm... wieso das denn? O_o
Der Mersenne Twister z.B. arbeitet afaik mit mehreren Variablen...
 
Ach ja, was ist eigentlich ein Onetime-Pad?

//Edit
Ach, hab schon was dazu gefunden:
http://www.schiller-gymnasium-berlin.de/official/prj/os/krypt/alex/onetimepad.html
Dafür reichen normale Pseudo-Zufallszahlen, wenn du den Generator mit der Zeit initialisierst. Dachte das wäre was wie eine Echtzeit-Netzwerk-Verschlüsselung, da sollte man die Zeitvariable außen vor lassen, da diese nachvollzogen werden kann.

Übrigens gibts wesentlich effizientere Verschlüsselungs-Methoden. ;)
 
Zuletzt bearbeitet:
Zurück
Oben