bequemer, vorhersagbarer Entropiegenerator


1

Ich schreibe Testfälle für ein Hochleistungs-Datenkomprimierungssystem. (Nun, nicht genau, aber zu Testzwecken kann es so beschrieben werden)

Für den Test muss ich 500 GB ~ 3 TB zufällige Dateien in einem Verzeichnis generieren.

Im Moment benutze ich /dev/urandom Aber das hat das Problem, zufällig zu sein.

Nichts garantiert, dass ich nicht mehrere Dateien mit Nullen auf einmal bekomme, und eine Änderung des Algorithmus, die sich negativ auf die Effizienz auswirken sollte, wird als hocheffizient angezeigt.

Gibt es eine Möglichkeit, diese Menge zufälliger Daten zu generieren, ohne diese dauerhaft speichern zu müssen und vorhersehbar zu sein?

So etwas wie: Eine Funktion festlegen, Daten generieren, Daten überprüfen, den Startwert festlegen, darauf vertrauen, dass Sie jedes Mal dieselben generierten Daten erhalten.

Ich weiß, kann Urandom säen, aber es funktioniert nicht, jedes Mal die gleichen Daten zu generieren, wie ich es mir erhofft hatte.

Gibt es etwas Ähnliches mit der Bequemlichkeit unter UNIX, die / dev / urandom bietet?


Hier bei RSAC in dieser Woche gibt es einen Anbieter, der eine Platine verkauft, die zufällig quantitativ verifizierte, wirklich zufällige Daten enthält. Ich bin mir nicht sicher, ob Sie danach suchen ...
schroeder

1
Wenn es vorhersehbar ist, wäre es dann nicht wirklich enthropisch?
Journeyman Geek

Antworten:


0

Sie können eine lineare Kongruenz PRNG implementieren ( https://en.wikipedia.org/wiki/Linear_congruential_generator ).

Grundsätzlich handelt es sich um Wiederholungsrelationen, bei denen die Ausgabe bei jedem Schritt als Ausgangswert für den nächsten Schritt dient:

X_ {n + 1} = (a * X_n + c) mod m

Die Zahlen a, X_0, c und m sollten so gewählt werden, dass sie die Länge der Sequenz maximieren, bevor Wiederholungen auftreten. Das Schöne für Sie ist, dass bei gleichem Startwert jedes Mal die gleiche Sequenz erstellt wird.

Sie sind jedoch NICHT für kryptografische Zwecke geeignet, da sie "zufällige" Zahlen mit sehr geringer Entropie erzeugen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.