Wirklich echte Zufallszahlen erzeugbar?
-
Irgenwann in der "elektor" oder im "Funkamateur" bzw. auf deren Home pages ist eine kleine Zusatzhardware an der seriellen Schnittstelle beschrieben worden, die echte Zufallszahlen erzeugt.
Das sollte für die google-Suchwörter reichen, oder?Blackbird
-
hmm, sind ja interessante abschweifungen zum thema *ggg*
-
Es gibt eine leider auf normalen Systemen nicht mögliche Art absolut sichere Zufallszahlen zu erzeugen:
Man lenkt ein einzelnes, polarisiertes Photon durch einen um 45° gedrehten Polarisationsfilter. Die Chance dass es durch kommt beträgt 50%. Leider ist das ohne großen Aufwand nicht möglich, aber gerüchteweise gibt es Geräte zum an den PC anschließen die genau das machen. Zumindest Theoretisch bekommt eine eine entsprechende Aparatur auf winzigsten Raum, leider ist dass als Einzelstück viel zu teuer. Und für Serien besteht (noch) zu wenig bedarf.Nun zu den praktikablen Arten:
*fachliteratur aus dem Regal holen*
1.) Ich lese hier etwas vom verwenden der Systemuhr. Klappt aber nicht unter Windows, da Windows die Zeit nur in hundertstel-Sekunden genau angibt. Auserdem sind mittlerweile die PC's dafür zu schnell.
2.) Eventuell klappt es, wenn man die Zeit zwischen Tastaturanschlägen mißt, und die Niederwertigsten Bits verwendet. Allerdings sollte man das vorher Testen. Eventuell treten da die oben beschriebenen Probleme auf. Außerdem verfallen Menschen nach einigerzeit in einen gewissen Takt.
3.) Hier ist noch eine Methode die angeblich sehr gut ist:
"Unser wirklich zufälliger Zahlengenerator ... zieht einen Alarm auf und erhöht dann so lange einen Zähler in einem CPU-Register, bis ein Interrupt kommt. Der Inhalt des Registers wird dann mit dem Inhalt eines Ausgabepuffers XOR-verknüpft(wodurch der Inhalt des Registers auf 8 Bit abgeschnitten wird). Nachdem jedes Byte des Ausgabepuffers gefüllt ist, wird jedes Zeichen im Puffer ringförmig um 2 Bit nach rechts verschoben. Dadurch verschieben sich die aktivsten(und zufälligen) niederwertigsten Bit in die höchstwertigen Stellen. Der gesammte Vorgang wird drei mal wiederholt. Schließlich wurde jedes Zeichen des Puffers von den beiden zufälligsten Bit des Zählregister nach Interrupts beeinflusst. Es traten also 4n Interrupts auf, wobei n die Anzahl der gewünschten Zufallsbytes ist."
(Ich versteh's nicht ganz, aber ich bin ja auch ein Neuling in der Programmierung.)
4.) Am besten destilliert man Zufall. Dazu wendet man eine Einweg-Hashfunktion auf halbzufällige Ereignisse an:
-Eine Kopie jedes Tastendrucks
-Mausbewegungen
-Sektornummer, Tageszeit(?) und Zugriffszeit jeder Festplattenoperation
-Aktuelle Mausposition
-Nummer der Aktuellen Rasterzeile des Monitors (wohl kaum unter Windows)
-Inhalt des angezeigten Bildes
-Inhalt von Fat, Kernel-Tabellen usw.
-Zugriffs und Modifikationszeiten von /dev/tty (ebenfalls nicht unter Windows)
-CPU-Auslastung
-Ankunftszeit von Netzpaketen
-Eingabe eines Mikrophons(meiner Meinung nach die beste Methode)
-Werte von /dev/audio ohne angeschlossenes Mikrophon (ich sag nix mehr dazu)
ABER: IMMER nur die niederwertigsten Bits, da nur diese wirklich zufällig sind.Am besten ist die Idee eines Mikrophons. Das ist billig, und man kann damit vor allem beliebig viel Zufallszahlen erzeugen. Am besten legst du es vor ein Radio oder ans Fenster, wenn bei euch immer krach ist(Hauptstraße, Baustelle, Kinder usw.) Dass nimmst du UNKOMPRIMIERT auf, und wendest eine Einweg-Hashfunktion auf die niederwertigsten Bit an. Am besten verwirrst du bei 16 Bit Qualität 14 Bit. Und bei der Hashfunktion am besten auf nochmal die hälfte Hashen. Dadurch erhälst du bei 16 Bit, 22050 Hz pro Minute~ 2,5 KB. JEDE MENGE!!! Und absolut sicher.
So, nun muss ich weiter meine Fragen stellen.
-
Zusatz:
Nun hab ich doch voller entsetzen Festgestellt, dass es DREI Setien zu diesem Thema gibt und nicht eine, Oops.
Hier noch eine kleine Definition:
"Nach unseren Maßstäben ist ein Generator pseudozufällig, wenn er folgende Eigenschaften besitzt:
1.) Er scheint zufällig zu sein. Das bedeutet, dass er sämtliche uns zugänglichen statistischen Zufallstests besteht.
[...]Eine kryptographisch sichere Pseudozufallsfolge muss außerdem folgende Eigenschaft besitzen:
2.) Sie ist nicht voraussagbar. Es muss unmöglich sein zu berechnen, welches Zufallsbit als nächstes kommt, selbst wenn der Algorithmus oder die Hardware, die die Folge erzeugen, sowie alle vorangehenden Bits bekannt sind.
[...] Von philosophischen Fragen einmal abgesehen, erzeugt ein Generator aus unserer Sicht echte Zufallszahlen, wenn er über folgende dritte Eigenschaft verfügt:
3.) Er ist nicht zuverlässig reproduzierbar. Wenn man den Generator zweimal mit exakt derselben Eingabe(zumindest soweit die Menschenmöglich ist) laufen lässt, erhält man zwei Zufallsfolgen, die keinerlei Ähnlichkeit aufweisen."Zusatz zu der Idee mit dem Mikrophon:
Man muss natürlich testen, ob die niederwertigsten Bits tatäschlich zufällig sind(vielleicht kappt das Mikro die, oder das Programm). Auserdem darf keinerlei Kompression im Spiel sein. Und wenn jetzt jemand sagt, dass ein Mikrophon kein Algorithmus ist, hat er zwar recht, aber: Man kann mit einem Mikrophon ja überall aufzeichnen, man muss sich nur ein kleines Diktiergerät(analog! da sonst der Speicherplatz zu knapp ist.) in die Tasche stecken, und dann kann man damit überall Zufall "einsammeln" gehen. Und wenn man es auf den PC/Laptop überspielt hat, kann man es auswerten und die Zufallszahlen Speichern.Wenn mir noch etwas einfällt, Post ich einfach nochmal.
-
danke für den interessanten beitrag
-
Nimda12345679 schrieb:
Zusatz zu der Idee mit dem Mikrophon:
Und wenn sich auf einmal die peruanischen Panflötenbläser vor deinem Fenster postieren weißt du, dass ein kryptographischer Angriff bevorsteht
-
Ist die Folge von PI nicht Zufall ?
Oder sind die Ziffern da ungleichmäßig verteilt ?Devil
-
Ist ne nette Idee mit dem Micro aber du weisst ja nicht nach welcher Verteilung das rauscht...
und wenn du was simulieren willst musst du deine Zufallszahlen ja mit einer von dir gewünschten verteilung approximieren. Bei dem Micro kannst du nur hoffen das das halbwegs irgendwie verteilt ist...Ist die Folge von PI nicht Zufall ?
Pi ist eine Konstante. Zufall und Konstante sind zwei Dinge die sich eigentlich ausschliessen... Naja man könnte sagen das eine Konstante eine zufallsvariable mit Varianz null ist.
-
Windalf schrieb:
Ist die Folge von PI nicht Zufall ?
Pi ist eine Konstante. Zufall und Konstante sind zwei Dinge die sich eigentlich ausschliessen... Naja man könnte sagen das eine Konstante eine zufallsvariable mit Varianz null ist.
Ich denke er meinte die einzelnen Stellen von PI.
Also 3,1,4,1,...
und die sind zumindest so zufällig, dass man bisher noch kein Muster erkennen konnte
-
asmodis schrieb:
Windalf schrieb:
Ist die Folge von PI nicht Zufall ?
Pi ist eine Konstante. Zufall und Konstante sind zwei Dinge die sich eigentlich ausschliessen... Naja man könnte sagen das eine Konstante eine zufallsvariable mit Varianz null ist.
Ich denke er meinte die einzelnen Stellen von PI.
Also 3,1,4,1,...
und die sind zumindest so zufällig, dass man bisher noch kein Muster erkennen konnteJa, aber wie kann man sowas ausnutzten, wenn man Zufallszahlen erzeugen will? Wenn man jedesmal die ersten 100 Ziffern aufsagt, dann ist das ja nicht so arg unvorhersehbar.
-
-
TGGC schrieb:
http://home.t-online.de/home/p.westphal/zranusbe.htm
Bye, TGGC \-/
ähmm, das lässt sich glaube ich schlecht in mein Java-Programm intigrieren, das bei jedem User funzen soll *g*
-
im übrigen gibt es ein muster in pistellen. man weis nur noch nicht besonders viel drüber. aber es muss eins geben, weil es einen algorithmus gibt der eine pistelle auspuckt ohne die davor zu kennen (allerdings in hex)
-
muhkuhmasta schrieb:
im übrigen gibt es ein muster in pistellen. man weis nur noch nicht besonders viel drüber. aber es muss eins geben, weil es einen algorithmus gibt der eine pistelle auspuckt ohne die davor zu kennen (allerdings in hex)
aha, danke, dannach werd ich mal suchen
-
http://numbers.computation.free.fr/Constants/Algorithms/nthdigit.html
aber wirkliche zufallszahlen kannste damit auch nicht erzeugen, es sei denn du hast schon welche
-
muhkuhmasta schrieb:
http://numbers.computation.free.fr/Constants/Algorithms/nthdigit.html
aber wirkliche zufallszahlen kannste damit auch nicht erzeugen, es sei denn du hast schon welche
nee, leider noch nich wirklich *ggg*
-
Allerdings, was sehr interessant ist:
Bis jetzt ist es eine offene Frage der Mathematik, ob die Stellen von Pi tatsächlich zufällig verteilt sind. Diese Frage steht in direktem Zusammenhang mit der oben genannten Formel zu Berechnung der n-ten Stelle von Pi. Fragt mich aber BITTE nicht in welchem Zusammenhang. Ich hab das nämlich nicht kappiert!
Viel Spaß noch.
-
mir kommt vor, mal gehört zu haben, dass jemand den nobelpreis für den mathematischen beweis dass es keinen zufall gibt bekommen hat...
kann mich auch irren...
-
selbstverständlich gibt es den zufall. zum beispiel zerfallen die atome eines radioaktiven elements zufällig. du musst dich also irren
-
Meinst du vielleicht in der Physik? In der Mathematik glaub ich das nicht, aber in der Physik ist das soweit ich weiß tatsächlich erwiesen.
edit.: Der Zerfall von Atomen ist ein Chaotischer Prozess, der vom Laplaceschem Dämon theoretisch vorhergesagt werden kann. Allerdings ist es für die Menschheit wohl auf ewig unmöglich. Insofern hast du recht.