Se ha propuesto una implementación de /dev/random para el kernel de Linux, libre de vinculación a SHA-1

Jason A. Donenfeld, autor de VPN WireGuard, ha propuesto una implementación actualizada del generador de números pseudoaleatorios RDRAND responsable del funcionamiento de los dispositivos /dev/random y /dev/urandom en el kernel de Linux. A finales de noviembre, Jason fue incluido entre los mantenedores del controlador aleatorio y ahora ha publicado los primeros resultados de su trabajo en su procesamiento.

La nueva implementación se destaca por su cambio al uso de la función hash BLAKE2s en lugar de SHA1 para operaciones de mezcla de entropía. El cambio mejoró la seguridad del generador de números pseudoaleatorios al eliminar el problemático algoritmo SHA1 y eliminar la sobrescritura del vector de inicialización RNG. Dado que el algoritmo BLAKE2s supera al SHA1 en rendimiento, su uso también tuvo un efecto positivo en el rendimiento del generador de números pseudoaleatorios (las pruebas en un sistema con un procesador Intel i7-11850H mostraron un aumento de velocidad del 131%). Otra ventaja de transferir la mezcla de entropía a BLAKE2 fue la unificación de los algoritmos utilizados: BLAKE2 se utiliza en el cifrado ChaCha, que ya se utiliza para extraer secuencias aleatorias.

Además, se han realizado mejoras en el generador de números pseudoaleatorios criptoseguro CRNG utilizado en la llamada getrandom. Las mejoras se reducen a limitar la llamada al lento generador RDRAND al extraer entropía, lo que mejora el rendimiento 3.7 veces. Jason demostró que llamar a RDRAND solo tiene sentido en una situación en la que el CRNG aún no se ha inicializado por completo, pero si la inicialización del CRNG está completa, su valor no afecta la calidad de la secuencia generada y, en este caso, la llamada a RDRAND. se puede prescindir.

Los cambios están programados para su inclusión en el kernel 5.17 y ya han sido revisados ​​por los desarrolladores Ted Ts'o (segundo mantenedor del controlador aleatorio), Greg Kroah-Hartman (responsable de mantener la rama estable del kernel de Linux) y Jean-Philippe. Aumasson (autor de los algoritmos BLAKE2/3).

Fuente: opennet.ru

Añadir un comentario