Pro linuxové jádro byla navržena implementace /dev/random, zbavená vazby na SHA-1

Jason A. Donenfeld, autor VPN WireGuard, navrhl aktualizovanou implementaci generátoru pseudonáhodných čísel RDRAND odpovědného za provoz zařízení /dev/random a /dev/urandom v linuxovém jádře. Na konci listopadu byl Jason zařazen do počtu správců náhodného ovladače a nyní zveřejnil první výsledky své práce na jeho zpracování.

Nová implementace je pozoruhodná svým přechodem na použití hašovací funkce BLAKE2s namísto SHA1 pro operace míchání entropie. Tato změna zlepšila zabezpečení generátoru pseudonáhodných čísel odstraněním problematického algoritmu SHA1 a odstraněním přepisování inicializačního vektoru RNG. Vzhledem k tomu, že algoritmus BLAKE2s je výkonově lepší než SHA1, mělo jeho použití pozitivní vliv i na výkon generátoru pseudonáhodných čísel (testování na systému s procesorem Intel i7-11850H ukázalo 131% nárůst rychlosti). Další výhodou přenesení míchání entropií do BLAKE2 bylo sjednocení použitých algoritmů - BLAKE2 je použit v šifře ChaCha, která se již používá k extrakci náhodných sekvencí.

Kromě toho byla provedena vylepšení kryptozabezpečeného generátoru pseudonáhodných čísel CRNG používaného v getrandom volání. Vylepšení se scvrkají na omezení volání pomalého generátoru RDRAND při extrahování entropie, což zvyšuje výkon 3.7krát. Jason ukázal, že volání RDRAND má smysl pouze v situaci, kdy CRNG ještě není plně inicializováno, ale pokud je inicializace CRNG dokončena, nemá jeho hodnota vliv na kvalitu vygenerované sekvence a v tomto případě na volání RDRAND lze se obejít bez.

Změny jsou naplánovány k zahrnutí do jádra 5.17 a již je zkontrolovali vývojáři Ted Ts'o (druhý správce náhodného ovladače), Greg Kroah-Hartman (odpovědný za udržování stabilní větve linuxového jádra) a Jean-Philippe Aumasson (autor algoritmů BLAKE2/3).

Zdroj: opennet.ru

Přidat komentář