Jason A. Donenfeld , der Autor von WireGuard VPN, hat kürzlich eine neue , aktualisierte Implementierung des Zufallszahlengenerators RDRAND angekündigt , der für den Betrieb der Geräte /dev/random und /dev/urandom im Linux-Kernel verantwortlich ist.
Ende November wurde Jason in die Liste der Betreuer des Random Controllers aufgenommen und hat nun erste Ergebnisse seiner Überarbeitungsarbeit veröffentlicht.
In der Ankündigung wird darauf hingewiesen, dass die neue Implementierung sich dadurch auszeichnet, dass sie für Entropiemischungsoperationen auf die BLAKE2s-Hashfunktion anstelle von SHA1 umstellt .
BLAKE2s selbst hat die schöne Eigenschaft, intern auf dem
ChaCha-Permutation, die das RNG bereits zur Erweiterung verwendet, also
Es sollte kein Problem mit Neuheit, Originalität oder erstaunlicher CPU geben
Verhalten, da es auf etwas basiert, das bereits verwendet wird.
Darüber hinaus ist anzumerken, dass die Änderung auch die Sicherheit des Pseudozufallszahlengenerators verbesserte, indem der problematische SHA1-Algorithmus eliminiert und das Überschreiben des Initialisierungsvektors des Zufallszahlengenerators verhindert wurde. Da der BLAKE2s-Algorithmus SHA1 übertrifft, wirkte sich seine Verwendung auch positiv auf die Leistung des Pseudozufallszahlengenerators aus (Tests auf einem System mit einem Intel i7-11850H-Prozessor ergaben eine Geschwindigkeitssteigerung von 131 %).
Ein weiterer hervorgehobener Vorteil ist, dass die Übertragung der Entropiemischung auf BLAKE2 die Vereinheitlichung der verwendeten Algorithmen bedeutet: BLAKE2 wird im ChaCha-Chiffre verwendet, der bereits zur Extraktion von Zufallssequenzen eingesetzt wird.
BLAKE2s ist im Allgemeinen schneller und sicherlich sicherer, wurde aber schwerwiegend kompromittiert. Darüber hinaus nutzt der aktuelle Zufallszahlengenerator nicht die vollständige SHA1-Funktion wie spezifiziert und erlaubt das undokumentierte Überschreiben des Initialisierungsvektors (IV) mit der Ausgabe von RDRAND , selbst wenn RDRAND nicht als „vertrauenswürdig“ konfiguriert ist, was potenziell schädliche IV-Optionen impliziert.
Die geringe Länge der Hash-Funktion bedeutet , dass die Rückführung der Daten an den Mixer, bei der nur die Hälfte geheim gehalten wird , lediglich eine Vorwärtsgeheimhaltung von 2^80 Bit gewährleistet. Anders ausgedrückt: Die Wahl der Hash-Funktion ist nicht nur veraltet, sondern auch ihre Anwendung nicht optimal.
Darüber hinaus wurden Verbesserungen am kryptosicheren CRNG-Pseudozufallszahlengenerator vorgenommen, der im getrandom-Aufruf verwendet wird.
Es wird außerdem erwähnt, dass die Verbesserungen im Wesentlichen darauf beruhen, den Aufruf des langsamen RDRAND-Generators bei der Entropieextraktion zu begrenzen, wodurch die Leistung um den Faktor 3,7 verbessert werden kann. Jason zeigte, dass der RDRAND-Aufruf nur dann sinnvoll ist, wenn der CRNG noch nicht vollständig initialisiert wurde. Ist die CRNG-Initialisierung jedoch abgeschlossen, beeinflusst ihr Wert die Qualität der generierten Sequenz nicht, und in diesem Fall kann auf den Aufruf von RDRAND verzichtet werden.
Dieses Engagement zielt darauf ab, diese beiden Probleme zu lösen und gleichzeitig die allgemeine Struktur und Semantik so nah wie möglich am Original.
Speziell:a) Anstatt den Hash IV mit RDRAND zu überschreiben, wird es Wir haben die von BLAKE2 dokumentierten Felder "Salz" und "Persönlichkeit" eingegeben, die speziell für diese Nutzungsart erstellt.
b) Da diese Funktion das Ergebnis des vollständigen Hashs an die Entropiekollektor, wir geben nur die halbe Länge des zurück hash, so wie es vorher gemacht wurde. Dies erhöht die Bauvorabgeheimnis von 2 ^ 80 a 2 ^ 128 viel bequemer.
c) Anstatt nur die rohe Funktion "sha1_transform" zu verwenden, stattdessen verwenden wir die vollständige und geeignete BLAKE2s-Funktion mit Vervollständigung.
Die Änderungen sollen in Kernel 5.17 aufgenommen werden und wurden bereits von den Entwicklern Ted Ts'o (der zweite Verantwortliche für die Wartung des Zufallszahlengenerators), Greg Kroah-Hartman (verantwortlich für die Stabilität des Linux-Kernels) und Jean-Philippe Aumasson (Autor der BLAKE2/3-Algorithmen) geprüft.
Sollten Sie mehr erfahren wollen, finden Sie die Details unter folgendem Link.