Implementasi /dev/random telah diusulkan untuk kernel Linux, bebas dari pengikatan ke SHA-1

Jason A. Donenfeld, penulis VPN WireGuard, telah mengusulkan implementasi terbaru dari generator nomor pseudo-acak RDRAND yang bertanggung jawab atas pengoperasian perangkat /dev/random dan /dev/urandom di kernel Linux. Pada akhir November, Jason termasuk dalam jumlah pengelola driver acak dan kini telah mempublikasikan hasil pertama karyanya dalam pemrosesannya.

Implementasi baru ini terkenal karena peralihannya menggunakan fungsi hash BLAKE2 alih-alih SHA1 untuk operasi pencampuran entropi. Perubahan tersebut meningkatkan keamanan generator bilangan pseudo-acak dengan menghilangkan algoritma SHA1 yang bermasalah dan menghilangkan penimpaan vektor inisialisasi RNG. Karena algoritma BLAKE2s lebih unggul dari SHA1 dalam hal kinerja, penggunaannya juga memiliki efek positif pada kinerja generator bilangan pseudo-acak (pengujian pada sistem dengan prosesor Intel i7-11850H menunjukkan peningkatan kecepatan sebesar 131%). Keuntungan lain dari mentransfer pencampuran entropi ke BLAKE2 adalah penyatuan algoritma yang digunakan - BLAKE2 digunakan dalam cipher ChaCha, sudah digunakan untuk mengekstraksi urutan acak.

Selain itu, perbaikan telah dilakukan pada generator nomor acak semu CRNG yang aman dengan kripto yang digunakan dalam panggilan getrandom. Peningkatan tersebut bermuara pada membatasi panggilan ke generator RDRAND yang lambat saat mengekstraksi entropi, yang meningkatkan kinerja sebesar 3.7 kali lipat. Jason menunjukkan bahwa panggilan RDRAND hanya masuk akal dalam situasi di mana CRNG belum sepenuhnya diinisialisasi, namun jika inisialisasi CRNG selesai, nilainya tidak mempengaruhi kualitas urutan yang dihasilkan dan dalam hal ini panggilan ke RDRAND dapat ditiadakan.

Perubahan dijadwalkan untuk dimasukkan dalam kernel 5.17 dan telah ditinjau oleh pengembang Ted Ts'o (pengelola kedua dari driver acak), Greg Kroah-Hartman (bertanggung jawab untuk menjaga cabang stabil kernel Linux) dan Jean-Philippe Aumasson (penulis algoritma BLAKE2/3).

Sumber: opennet.ru

Tambah komentar