Frage

Ich brauche einen Einmal-Pad erstellen einige Daten (ein paar KB in der Größe) zu verschlüsseln. Wie soll ich mich über diesen One-Time-Pad zu erzeugen alle der pseudo-zufällige Probleme bei der grundlegenden Erzeugung von Zufallszahlen wie rand() assoziiert zu vermeiden?

Gibt es ein bestehendes, vertrauenswürdiges Werkzeug oder Bibliothek, die ich für diesen verwenden kann?

War es hilfreich?

Lösung

Versuchen Sie Random.ORG . Sie haben verschiedene freie (und bezahlt) Dienstleistungen, die basierend auf atmosphärischen Rauschen echte Zufallszahlen erzeugen (oder zumindest das ist, was sie vorgeben zu tun).

Andere Tipps

Die meisten modernen Betriebssysteme haben einen kryptographisch sicheren Pseudozufallszahlengenerator .

Zum Beispiel hat Windows- CryptGenRandom . Sie können den gleichen Strom von .NET zugreifen, die unter Verwendung RNGCryptoServiceProvider Klasse. Von C ++, können Sie den gleichen Strom zugreifen, indem Sie den Microsoft C ++ Library-Funktion mit rand_s . Von Python, ist es zugänglich die Funktion urandom (siehe unten verlinkten Seite) im o mit Modul.

Im Gegensatz zu normalen PRNGs, CSPRNGs sollen Tests strenge statistische Zufälligkeit zu übergeben. Sie sind auch gut unter schweren Angriff entworfen zu halten, auch wenn ihr Anfangs- oder Fahrzustand zu einem Angreifer verfügbar wird.

Der Begriff „pseudo-zufällig“, wie von Kryptologen verwendet wird, kann auf einen nicht-technischen Leser irreführend sein. A CSPRNG erweitert eine Sammlung von Zufallswerten, als Keim bekannt, in eine längere Ziffernfolge. Diese Sequenz ist reproduzierbar die Samen gegeben, aber für jeden guten CSPRNG, eine geringfügige Änderung im Samen ergibt sich eine ganz andere Reihenfolge. Daher, solange zumindest ein Teil des Samens über einen ausreichenden Zufallsprozess gewählt wird, ist ein Angreifer nicht in der Lage die resultierende Sequenz vorherzuzusagen - auch dann, wenn der Angreifer den Rest des Saatgutes beeinflussen kann.

Zahlreiche wichtige Systeme, die von der militärischen Kommunikation an die Verschlüsselung, die praktisch alle Online-Transaktionen schützt, sich auf die funktionell gleichwertige Sicherheit zwischen „Kryptografischen Sicherheits-pseudo-random“ und „random“.

Bearbeiten : Wenn Sie Glück genug, um mit Intels Ivy-Bridge-Prozessor Bereich arbeiten zu können, müssen Sie jetzt ein weiterer sehr interessante Alternative .

Sie können keine echte Zufallszahlen erzeugen algorithmisch - Sie Hardware-Unterstützung benötigen. Wenn Sie einen Algorithmus verwenden, sichern jedoch (wie ein kryptografisch sicheren PRNG), sind Sie einfach ein Stromchiffre auf diesem PRNG Basis zu schaffen; es ist nicht mehr ein One-Time-Pad.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top