Jason A. Donenfeld, der Autor von VPN WireGuard, hat eine aktualisierte Implementierung des Pseudo-Zufallszahlengenerators RDRAND vorgeschlagen, der für die Funktion von /dev/random und /dev/urandom im Linux-Kernel zuständig ist. Ende November wurde Jason in die Gruppe der Maintainer des Random-Treibers aufgenommen und hat nun die ersten Ergebnisse seiner Arbeiten zur Überarbeitung veröffentlicht.
Die neue Implementierung zeichnet sich durch den Wechsel von der Verwendung der Hash-Funktion BLAKE2s anstelle von SHA1 für die Entropiemischoperationen aus. Diese Änderung hat die Sicherheit des Pseudozufallszahlengenerators erhöht, indem das problematische SHA1-Algorithmus entfernt und die Neuordnung des RNG-Initialisierungsvektors ausgeschlossen wurde. Da der BLAKE2s-Algorithmus bei der Leistung SHA1 übertrifft, hat seine Anwendung auch die Leistung des Pseudozufallszahlengenerators positiv beeinflusst (Tests auf einem System mit einem Intel i7-11850H Prozessor zeigten eine Geschwindigkeitssteigerung von 131%). Ein weiterer Vorteil des Wechsels zur Entropiemischung auf BLAKE2 war die Vereinheitlichung der verwendeten Algorithmen — BLAKE2 wird bereits im ChaCha-Verschlüsselungsalgorithmus verwendet, der für die Generierung von Zufallssequenzen eingesetzt wird.
Darüber hinaus wurden Verbesserungen am kryptologischen Zufallszahlengenerator CRNG vorgenommen, der im Aufruf von getrandom verwendet wird. Diese Verbesserungen bestehen darin, den langsamen RDRAND-Generator beim Entziehen von Entropie zu begrenzen, was die Leistung um das 3,7-Fache steigert. Jason hat gezeigt, dass der Aufruf von RDRAND nur in Situationen sinnvoll ist, in denen CRNG noch nicht vollständig initiiert ist. Wenn die Initialisierung von CRNG jedoch abgeschlossen ist, hat sein Wert keinen Einfluss auf die Qualität der generierten Sequenz, und in diesem Fall kann auf RDRAND verzichtet werden.
Die Änderungen sind für die Aufnahme in den Kernel 5.17 geplant und wurden bereits von den Entwicklern Ted Ts’o (zweiter Hauptbetreuer des Random-Treibers), Greg Kroah-Hartman (verantwortlich für die Unterstützung des stabilen Linux-Kernel-Zweigs) und Jean-Philippe Aumasson (Autor der BLAKE2/3-Algorithmen) überprüft.
Quelle: opennet.ru
