Implementacija /dev/random je predložena za jezgro Linuxa, oslobođeno vezivanja za SHA-1

Jason A. Donenfeld, autor VPN WireGuard, predložio je ažuriranu implementaciju RDRAND generatora pseudo-slučajnih brojeva odgovornog za rad /dev/random i /dev/urandom uređaja u Linux kernelu. Krajem novembra Jason je uvršten u broj održavatelja slučajnog drajvera i sada je objavio prve rezultate svog rada na njegovoj obradi.

Nova implementacija je značajna po prelasku na korištenje BLAKE2s hash funkcije umjesto SHA1 za operacije miješanja entropije. Promjena je poboljšala sigurnost generatora pseudo-slučajnih brojeva eliminacijom problematičnog SHA1 algoritma i eliminacijom prepisivanja RNG vektora inicijalizacije. Budući da je BLAKE2s algoritam superiorniji od SHA1 u performansama, njegova upotreba je takođe imala pozitivan efekat na performanse generatora pseudo-slučajnih brojeva (testiranje na sistemu sa Intel i7-11850H procesorom pokazalo je povećanje brzine od 131%). Još jedna prednost prijenosa entropijskog miješanja na BLAKE2 bila je objedinjavanje korištenih algoritama - BLAKE2 se koristi u ChaCha šifri, koja se već koristi za izdvajanje slučajnih sekvenci.

Pored toga, napravljena su poboljšanja u kripto-bezbednom generatoru pseudo-slučajnih brojeva CRNG koji se koristi u getrandom pozivu. Poboljšanja se svode na ograničavanje poziva na spori RDRAND generator prilikom izdvajanja entropije, što poboljšava performanse za 3.7 puta. Jason je pokazao da pozivanje RDRAND-a ima smisla samo u situaciji kada CRNG još nije u potpunosti inicijaliziran, ali ako je inicijalizacija CRNG-a završena, njegova vrijednost ne utječe na kvalitetu generiranog niza iu ovom slučaju poziv na RDRAND može se odbaciti.

Promjene su predviđene za uključivanje u kernel 5.17 i već su ih pregledali programeri Ted Ts'o (drugi nasumični održavatelj drajvera), Greg Kroah-Hartman (odgovoran za održavanje stabilne grane Linux kernela) i Jean-Philippe Aumasson ( autor BLAKE2/3 algoritama).

izvor: opennet.ru

Dodajte komentar