Pre jadro Linuxu bola navrhnutá implementácia /dev/random, oslobodená od väzby na SHA-1

Jason A. Donenfeld, autor VPN WireGuard, navrhol aktualizovanú implementáciu generátora pseudonáhodných čísel RDRAND zodpovedného za prevádzku zariadení /dev/random a /dev/urandom v jadre Linuxu. Koncom novembra bol Jason zaradený do počtu správcov náhodného ovládača a teraz zverejnil prvé výsledky svojej práce na jeho spracovaní.

Nová implementácia je pozoruhodná pre jej prechod na používanie hašovacej funkcie BLAKE2s namiesto SHA1 pre operácie miešania entropie. Táto zmena zlepšila bezpečnosť generátora pseudonáhodných čísel odstránením problematického algoritmu SHA1 a odstránením prepisovania inicializačného vektora RNG. Keďže algoritmus BLAKE2s je výkonovo lepší ako SHA1, jeho použitie malo pozitívny vplyv aj na výkon generátora pseudonáhodných čísel (testovanie na systéme s procesorom Intel i7-11850H ukázalo 131% nárast rýchlosti). Ďalšou výhodou prenosu miešania entropie do BLAKE2 bolo zjednotenie použitých algoritmov - BLAKE2 je použitý v ChaCha šifre, ktorá sa už používa na extrahovanie náhodných sekvencií.

Okrem toho boli vykonané vylepšenia kryptozabezpečeného generátora pseudonáhodných čísel CRNG používaného v getrandom hovore. Vylepšenia sa obmedzujú na obmedzenie volania na pomalý generátor RDRAND pri extrakcii entropie, čo zvyšuje výkon 3.7-krát. Jason ukázal, že volanie RDRAND má zmysel len v situácii, keď CRNG ešte nie je úplne inicializované, no ak je inicializácia CRNG dokončená, jeho hodnota nemá vplyv na kvalitu vygenerovanej sekvencie a v tomto prípade na volanie RDRAND možno sa obísť.

Zmeny sú naplánované na zahrnutie do jadra 5.17 a už ich skontrolovali vývojári Ted Ts'o (druhý správca náhodného ovládača), Greg Kroah-Hartman (zodpovedný za udržiavanie stabilnej vetvy linuxového jadra) a Jean-Philippe Aumasson (autor algoritmov BLAKE2/3).

Zdroj: opennet.ru

Pridať komentár