2009-08-05 12 views
4

Ich arbeite an einer Desktop-Anwendung und würde gerne alle Hardware-Zufallszahlengeneratoren verwenden, die zufällig zur Verfügung stehen, obwohl ich nicht möchte, dass der Benutzer irgendwelche verwirrenden Setup verwenden muss. Seine Java/Clojure-basierte so etwas in der Java-Welt wäre nett, obwohl ich bereit bin, mit so ziemlich allem zu arbeiten. Kennen Sie irgendwelche Programme, die das gut machen? sind sie plattformübergreifend?programmatisch mit Hardware Zufallszahlengenerator

+1

Welches Betriebssystem? GNU/Linux hat ein '/ dev/random' Gerät eingebaut. –

+0

'/ dev/random' ist ein Software-Generator; es verwendet lediglich hardwarebezogenes Rauschen als Quelle. Diese Frage betrifft tatsächliche Hardwaregeräte, die Zufallsdaten ausgeben, die aus einem physikalisch zufälligen Prozess erzeugt werden. – Cascabel

+0

@Jefromi: Woher weißt du das? –

Antwort

6

Sie sollten die Klasse Java SecureRandom verwenden. Der Benutzer kann die Standardalgorithmusauswahl mit einem Hardware-RNG überschreiben, indem er preference order setzt. Dies gilt dann für alle Java-Anwendungen, einschließlich Ihrer.

+0

Die Folge ist, dass die App eine SecureRandom-Engine-Klasse für jedes Gerät benötigen würde, das "zufällig verfügbar sein könnte". Wenn nicht schon jemand da draußen eine Bibliothek solcher Klassen für gängige Geräte unterhält, ist das eine große Aufgabe! –

+0

Oder es kann eine SecureRandom-Engine geben, die die Betriebssystemfunktionen für die Interaktion mit Hardware-RNGs verwendet. – bdonlan

+0

@bdolan: Ich glaube nicht, dass das funktioniert. AFAIK gibt es keine spezifischen Standards für die Anbindung von RNG-Hardware und keine standardmäßigen OS-Level-Services. –

2

Es hängt von der Qualität der Zufallszahlen ab, die Sie generieren müssen. Insbesondere, wie viel entropy benötigen Sie?

Wenn Sie wirklich einige Hardcore-Zufallszahlen benötigen, die nicht von einer vorhersehbaren Uhr abhängig sind, sollten Sie sich die verfügbaren Generatoren von Drittanbietern ansehen.

http://en.wikipedia.org/wiki/Hardware_random_number_generator

Einige diese Heizwärme nutzen, etc ... die Entropie jedes Bits zu erhöhen.

+0

Die OP fragt sich, wie man mit dem, was verfügbar ist, in Verbindung bringt? Wie wichtig ist hier die Menge an Entropie? – bdonlan

+1

Es gibt nur so viele Optionen in einer Vanilla-Maschine. Ich ließ ihn nur wissen, dass alle Zufallszahlen nicht gleich sind und versuchte ihn über Alternativen zu informieren. Meine Antwort ist vielleicht nicht genau das, wonach er sucht, aber ich denke, dass es für sein Problem relevant ist. –

+0

die kurze Antwort ist "genug, um meine Benutzer Daten vor allen Angriffen bis zu, aber nicht einschließlich Folter zu schützen" –