Jason A. Donenfeld, skaberen af VPN WireGuard, har foreslået en opdateret implementering af den pseudo-tilfældige talgenerator RDRAND, som håndterer enhederne /dev/random og /dev/urandom i Linux-kernen. I slutningen af november blev Jason inkluderet blandt vedligeholderne af random-driveren, og han har nu offentliggjort de første resultater af sit arbejde med omarbejdningen.
Den nye implementering er bemærkelsesværdig ved at skifte til brugen af hash-funktionen BLAKE2s i stedet for SHA1 til blandingsoperationer af entropi. Denne ændring har øget sikkerheden for den pseudo-tilfældige talgenerator ved at eliminere det problematiske SHA1-algoritme og udelade omskrivningen af initialiseringsvektoren for RNG. Da BLAKE2s-algoritmen overgår SHA1 i ydeevne, har det også haft en positiv effekt på ydeevnen for den pseudo-tilfældige talgenerator (test på et system med Intel i7-11850H processor viste en hastighedsforøgelse på 131%). En anden fordel ved overgangen til BLAKE2 til blanding af entropi er ensartetheden i de anvendte algoritmer — BLAKE2 anvendes også i ChaCha-krypteringen, der allerede bruges til at generere tilfældige sekvenser.
Derudover er der blevet foretaget forbedringer af den kryptosikre pseudo-tilfældige talgenerator CRNG, som anvendes ved kaldet getrandom. Forbedringerne går ud på at begrænse kaldet til den langsomme generator RDRAND ved indhentning af entropi, hvilket øger ydeevnen med 3,7 gange. Jason viste, at kaldet til RDRAND kun giver mening i situationer, hvor CRNG endnu ikke er helt initialiseret, men hvis CRNG-initiativet er afsluttet, har det ingen indflydelse på kvaliteten af den genererede sekvens, og i dette tilfælde kan man undgå at kalde RDRAND.
Ændringerne er planlagt til at blive inkluderet i Linux-kernen 5.17 og er allerede blevet gennemgået af udviklerne Ted Ts’o (den anden vedligeholder af random-driveren), Greg Kroah-Hartman (ansvarlig for understøttelse af den stabile kernegren) og Jean-Philippe Aumasson (skaberen af BLAKE2/3-algoritmerne).
Kilde: opennet.ru
