2009-08-20 9 views
3

Ich beschäftige mich momentan mit einigen Problemen der Computersicherheit an der Schule und interessiere mich für die allgemeine Programmierung von öffentlichen Präferenzen, Gewohnheiten, Ideen usw. Wenn Sie einen Zufallszahlengenerator oder Extraktor verwenden müssen, welchen wählen Sie? Warum wählst du es? Die mathematischen Eigenschaften, bereits als Paket implementiert oder aus welchem ​​Grund? Schreibst du dein eigenes oder verwendest ein Paket?Warum verwenden Sie einen Zufallsgenerator/-extraktor?

+0

Es gibt * Stapel * von PRNG Fragen bereits. Was macht diesen Unterschied? – dmckee

+0

http://stackoverflow.com/questions/1266261/what-is-a-good-fast-prng-non-cryptographics-secure http://StackOverflow.com/Questions/167735/Fast-Pseudo-Random-Number- generator-for-procedural-content http://stackoverflow.com/questions/1247129/fast-generation-of-random-set-monte-carlo-simulation und so weiter. Versuchen Sie diese Suche: http://stackoverflow.com/questions/tagged/random-number-generator – dmckee

+1

Keiner dieser drei so genannten Duplikate fordert eine sichere PRNG. Das erste sagt explizit Nicht-Krypto, das dritte ist für Monte-Carlo-Simulation und das mittlere ist für die Erzeugung von Landschaften. Die Sorgen sind völlig anders. –

Antwort

0
+0

Sie wissen, dass wenn dieser Link stirbt, diese Antwort völlig nutzlos ist. – tvanfosson

+0

Es ist ein Server, der Ihnen Bits gibt. Wenn die Verbindung abbricht, ist der Server weg, also wäre die Antwort natürlich nutzlos. –

4

Wenn Rechenzeit kein Objekt ist, dann können Sie mit Blum Blum Shub (http://en.wikipedia.org/wiki/Blum_blum_shub) nichts falsch machen. Informell gesprochen ist es mindestens so sicher (schwer vorhersehbar) wie eine ganzzahlige Faktorisierung.

2

dev/random, oder gleichwertig auf Ihrer Plattform.

Es gibt Bits aus einem Entropie-Pool zurück, die von Gerätetreibern gespeist werden. Sie müssen sich keine Gedanken über mathematische Eigenschaften machen.

Wenn Sie nach einem kryptografisch sicheren PRNG suchen, ist die wiederholte Anwendung eines sicheren Hash auf ein großes Seed-Array in der Regel der richtige Weg. Erfinden Sie nicht Ihren eigenen Algorithmus, obwohl, gehen Sie für eine Version von Fortuna oder etwas anderes einigermaßen gut überprüft.

2

Die Schlüssel für die Verschlüsselung von Telefongesprächen zwischen Präsidenten der USA und der UdSSR wurden angeblich aus kosmischen Strahlen erzeugt. Wir haben es im Physiklabor in der Universität überprüft - ihre Energien ergeben eine echte Gauß-Verteilung. ;-) Also für die beste Verschlüsselung sollten Sie diese verwenden, da solche Zufallsfolgen nicht wiedergegeben werden können. Es sei denn natürlich, dein Gegner baut einen Teilchenbeschleuniger in der Nähe deines Zufallszahlengenerators.

Ah ... über Computer ... Nun, erwerben Sie einen Stream, der von etwas Physischem kommt, nicht berechnet./dev/random ist eine einfache Lösung, aber Ihr handgemachter Geigerzähler, der an USB angeschlossen ist, würde die beste Zufälligkeit aller Zeiten bieten.

1

Für ein kleines Schulprojekt würde ich verwenden, was auch immer das OS für die Generierung von Zufallszahlen bietet.

Für eine ernsthafte Sicherheitsanwendung (zB: COMSEC -level Verschlüsselung), verwende ich einen Hardware-Zufallszahlengenerator. Reine Algorithmen ohne Hardwarezugriff per Definition produzieren keine Zufallszahlen.

Verwandte Themen