Việc triển khai /dev/random đã được đề xuất cho nhân Linux, không bị ràng buộc với SHA-1

Jason A. Donenfeld, tác giả của VPN WireGuard, đã đề xuất triển khai cập nhật trình tạo số giả ngẫu nhiên RDRAND chịu trách nhiệm vận hành các thiết bị /dev/random và /dev/urandom trong nhân Linux. Vào cuối tháng XNUMX, Jason đã được đưa vào danh sách những người duy trì trình điều khiển ngẫu nhiên và hiện đã công bố kết quả đầu tiên trong công việc xử lý nó.

Việc triển khai mới đáng chú ý vì nó chuyển sang sử dụng hàm băm BLAKE2s thay vì SHA1 cho các hoạt động trộn entropy. Thay đổi này đã cải thiện tính bảo mật của trình tạo số giả ngẫu nhiên bằng cách loại bỏ thuật toán SHA1 có vấn đề và loại bỏ việc ghi đè vectơ khởi tạo RNG. Do thuật toán BLAKE2 có hiệu suất vượt trội hơn SHA1 nên việc sử dụng nó cũng có tác động tích cực đến hiệu suất của trình tạo số giả ngẫu nhiên (thử nghiệm trên hệ thống có bộ xử lý Intel i7-11850H cho thấy tốc độ tăng 131%). Một ưu điểm khác của việc chuyển trộn entropy sang BLAKE2 là sự thống nhất của các thuật toán được sử dụng - BLAKE2 được sử dụng trong mật mã ChaCha, vốn đã được sử dụng để trích xuất các chuỗi ngẫu nhiên.

Ngoài ra, các cải tiến đã được thực hiện đối với trình tạo số giả ngẫu nhiên bảo mật bằng mật mã CRNG được sử dụng trong lệnh gọi getrandom. Các cải tiến tập trung vào việc hạn chế lệnh gọi đến trình tạo RDRAND chậm khi trích xuất entropy, giúp cải thiện hiệu suất lên 3.7 lần. Jason đã chỉ ra rằng việc gọi RDRAND chỉ có ý nghĩa trong trường hợp CRNG chưa được khởi tạo hoàn toàn, nhưng nếu quá trình khởi tạo CRNG hoàn tất, giá trị của nó không ảnh hưởng đến chất lượng của chuỗi được tạo và trong trường hợp này là lệnh gọi RDRAND có thể được bỏ đi.

Những thay đổi này đã được lên kế hoạch đưa vào nhân 5.17 và đã được các nhà phát triển Ted Ts'o (người duy trì trình điều khiển ngẫu nhiên thứ hai), Greg Kroah-Hartman (chịu trách nhiệm duy trì nhánh ổn định của nhân Linux) và Jean-Philippe xem xét. Aumasson (tác giả của thuật toán BLAKE2/3).

Nguồn: opennet.ru

Thêm một lời nhận xét