Izvedba /dev/random je bila predlagana za jedro Linuxa, brez vezave na SHA-1

Jason A. Donenfeld, avtor VPN WireGuard, je predlagal posodobljeno izvedbo generatorja psevdonaključnih števil RDRAND, ki je odgovoren za delovanje naprav /dev/random in /dev/urandom v jedru Linuxa. Konec novembra je bil Jason vključen v število vzdrževalcev naključnega gonilnika in je zdaj objavil prve rezultate svojega dela na njegovi obdelavi.

Nova izvedba je znana po prehodu na uporabo zgoščevalne funkcije BLAKE2s namesto SHA1 za operacije mešanja entropije. Sprememba je izboljšala varnost generatorja psevdonaključnih števil z odpravo problematičnega algoritma SHA1 in odpravo prepisovanja inicializacijskega vektorja RNG. Ker je algoritem BLAKE2s po zmogljivosti boljši od SHA1, je njegova uporaba pozitivno vplivala tudi na delovanje generatorja psevdonaključnih števil (testiranje na sistemu s procesorjem Intel i7-11850H je pokazalo 131-odstotno povečanje hitrosti). Druga prednost prenosa mešanja entropije v BLAKE2 je bila poenotenje uporabljenih algoritmov - BLAKE2 se uporablja v šifri ChaCha, ki se že uporablja za ekstrahiranje naključnih zaporedij.

Poleg tega so bile narejene izboljšave kripto varnega generatorja psevdonaključnih števil CRNG, ki se uporablja v klicu getrandom. Izboljšave se zmanjšajo na omejitev klica počasnemu generatorju RDRAND pri pridobivanju entropije, kar izboljša zmogljivost za 3.7-krat. Jason je pokazal, da je klicanje RDRAND smiselno samo v situaciji, ko CRNG še ni bil popolnoma inicializiran, če pa je inicializacija CRNG končana, njegova vrednost ne vpliva na kakovost ustvarjenega zaporedja in v tem primeru klic RDRAND je mogoče opustiti.

Spremembe so predvidene za vključitev v jedro 5.17 in so jih že pregledali razvijalci Ted Ts'o (drugi vzdrževalec naključnega gonilnika), Greg Kroah-Hartman (odgovoren za vzdrževanje stabilne veje jedra Linux) in Jean-Philippe Aumasson (avtor algoritmov BLAKE2/3).

Vir: opennet.ru

Dodaj komentar