Предложена е реализация на /dev/random за ядрото на Linux, освободено от обвързване към SHA-1

Джейсън А. Доненфелд, автор на VPN WireGuard, предложи актуализирана реализация на генератора на псевдо-случайни числа RDRAND, отговорен за работата на устройствата /dev/random и /dev/urandom в ядрото на Linux. В края на ноември Джейсън беше включен в броя на поддържащите произволния драйвер и вече публикува първите резултати от работата си по неговата обработка.

Новата реализация е забележителна с преминаването си към използване на хеш функцията BLAKE2s вместо SHA1 за операции за смесване на ентропия. Промяната подобри сигурността на генератора на псевдослучайни числа чрез елиминиране на проблемния алгоритъм SHA1 и елиминиране на презаписването на вектора за инициализация на RNG. Тъй като алгоритъмът BLAKE2s превъзхожда SHA1 по производителност, използването му също има положителен ефект върху производителността на генератора на псевдослучайни числа (тестването на система с процесор Intel i7-11850H показа 131% увеличение на скоростта). Друго предимство на прехвърлянето на ентропийното смесване към BLAKE2 беше обединяването на използваните алгоритми - BLAKE2 се използва в шифъра ChaCha, който вече се използва за извличане на произволни последователности.

Освен това са направени подобрения в крипто-сигурния генератор на псевдо-случайни числа CRNG, използван в getrandom повикването. Подобренията се свеждат до ограничаване на извикването на бавния RDRAND генератор при извличане на ентропия, което подобрява производителността с 3.7 пъти. Джейсън показа, че извикването на RDRAND има смисъл само в ситуация, в която CRNG все още не е напълно инициализиран, но ако инициализирането на CRNG е завършено, неговата стойност не влияе върху качеството на генерираната последователност и в този случай извикването на RDRAND може да се откаже.

Промените са предвидени за включване в ядрото 5.17 и вече са прегледани от разработчиците Ted Ts'o (втори поддържащ случаен драйвер), Greg Kroah-Hartman (отговорен за поддържането на стабилния клон на Linux ядрото) и Jean-Philippe Aumasson ( автор на алгоритмите BLAKE2/3).

Източник: opennet.ru

Добавяне на нов коментар