Jason A. Donenfeld, forfatter til VPN WireGuard, har foreslået en opdateret implementering af RDRAND pseudo-tilfældige tal-generatoren, der er ansvarlig for driften af /dev/random og /dev/urandom-enhederne i Linux-kernen. I slutningen af november blev Jason inkluderet i antallet af vedligeholdere af den tilfældige driver og har nu offentliggjort de første resultater af sit arbejde med behandlingen af den.
Den nye implementering er bemærkelsesværdig for sin overgang til at bruge BLAKE2s hash-funktion i stedet for SHA1 til entropiblandingsoperationer. Ændringen forbedrede sikkerheden for pseudo-tilfældige talgeneratoren ved at eliminere den problematiske SHA1-algoritme og eliminere overskrivningen af RNG-initialiseringsvektoren. Da BLAKE2s-algoritmen er overlegen i forhold til SHA1 med hensyn til ydeevne, havde dens brug også en positiv effekt på ydeevnen af pseudo-tilfældige tal-generatoren (test på et system med en Intel i7-11850H-processor viste en stigning på 131 % i hastigheden). En anden fordel ved at overføre entropiblanding til BLAKE2 var foreningen af de anvendte algoritmer - BLAKE2 bruges i ChaCha-chifferet, der allerede bruges til at udtrække tilfældige sekvenser.
Derudover er der foretaget forbedringer af den krypto-sikre pseudo-tilfældige tal-generator CRNG, der bruges i det tilfældige opkald. Forbedringerne bunder i at begrænse opkaldet til den langsomme RDRAND-generator, når der udvindes entropi, hvilket forbedrer ydeevnen med 3.7 gange. Jason viste, at det kun giver mening at kalde RDRAND i en situation, hvor CRNG'en endnu ikke er fuldt initialiseret, men hvis initialiseringen af CRNG'en er fuldført, påvirker dens værdi ikke kvaliteten af den genererede sekvens og i dette tilfælde kaldet til RDRAND kan undværes.
Ændringerne er planlagt til at blive inkluderet i 5.17-kernen og er allerede blevet gennemgået af udviklerne Ted Ts'o (anden vedligeholder af den tilfældige driver), Greg Kroah-Hartman (ansvarlig for at vedligeholde den stabile gren af Linux-kernen) og Jean-Philippe Aumasson (forfatter af BLAKE2/3-algoritmerne).
Kilde: opennet.ru