Jason A. Donenfeld, autor VPN WireGuard, predstavil aktualizovanú implementáciu generátora pseudonáhodných čísel RDRAND, ktorý zodpovedá za fungovanie zariadení /dev/random a /dev/urandom v jadre Linux. Na konci novembra bol Jason zaradený medzi správcov ovládača random a teraz zverejnil prvé výsledky svojej práce na jeho prepracovaní.
Nová implementácia sa vyznačuje prechodom na používanie hash-funkcie BLAKE2s namiesto SHA1 na operácie zmiešavania entropie. Zmena umožnila zvýšiť bezpečnosť generátora pseudonáhodných čísel, vďaka zbaveniu sa problematického algoritmu SHA1 a vylúčeniu prepísania vektora inicializácie RNG. Keďže algoritmus BLAKE2s predčí SHA1 z pohľadu výkonu, jeho použitie pozitívne ovplyvnilo aj výkon generátora pseudonáhodných čísel (testovanie na systéme s procesorom Intel i7-11850H ukázalo zvýšenie rýchlosti o 131%). Ďalším plusom prechodu zmiešavania entropie na BLAKE2 bola unifikácia používaných algoritmov — BLAKE2 sa už používa v šifrovaní ChaCha, ktoré sa už používajú na extrakciu náhodných sekvencií.
Okrem toho boli zavedené vylepšenia do kryptograficky bezpečného generátora pseudonáhodných čísel CRNG, ktorý sa používa vo výzve getrandom. Vylepšenia spočívajú v obmedzení volania pomalého generátora RDRAND pri extrakcii entropie, čo umožňuje zvýšiť výkon až 3,7-krát. Jason ukázal, že volanie RDRAND dáva zmysel iba v situácii, keď CRNG ešte nie je úplne inicializovaný, ale ak je inicializácia CRNG dokončená, jeho hodnota nemá vplyv na kvalitu generovanej sekvencie a bez použitia RDRAND sa v tomto prípade dá obísť.
Zmeny sú naplánované na zahrnutie do jadra 5.17 a už boli recenzované vývojármi Ted Ts’o (druhý správca ovládača random), Greg Kroah-Hartman (zodpovedný za podporu stabilnej vetvy jadra Linux) a Jean-Philippe Aumasson (autor algoritmov BLAKE2/3).
Zdroj: opennet.ru
