True Random Number Generator, atau TRNG, memperoleh masukan baru yang tidak dapat diprediksi dengan mengukur proses fisik. Ini berbeda dari generator yang hanya menghitung nilai berikutnya dari keadaan tersimpan. Dalam praktiknya, keduanya dapat bekerja sama. Namun, kata “true” bukan jaminan mutu: sumber fisik pun dapat dirancang dengan buruk atau rusak.
Rangkaian dapat mengukur fluktuasi listrik kecil dan mengubahnya menjadi angka. Yang penting adalah seberapa banyak hasil pengukuran tidak dapat diprediksi penyerang. Menghasilkan banyak data dengan cepat saja tidak cukup. Karena itu, NIST SP 800-90B menilai sumber derau tertentu, pengambilan sampel, pengolahan bila ada, dan pemeriksaan fungsi. Menyebut nama fenomena fisiknya tidak menggantikan penilaian tersebut. [1]
Suatu sumber mungkin menghasilkan nol lebih sering daripada satu. Pengolahan yang disebut conditioning membantu mengurangi ketimpangan itu dan memusatkan entropi yang tersedia, yaitu ketidakpastian dari sudut pandang penyerang, ke dalam keluaran yang lebih pendek. Namun, proses ini tidak menciptakan ketidakpastian yang sebelumnya tidak ada. Karena itu, NIST SP 800-90B mengaitkan entropi keluaran yang dapat diakui dengan masukan dan metode pengolahannya. Bahkan hash, sidik jari data yang dihitung, tidak membuktikan bahwa nilai aslinya tak bisa diprediksi: masukan yang diketahui memungkinkan sidik jari yang sama dihitung kembali. [1]
Jika sumber terus mengembalikan nilai yang sama, perangkat tidak boleh mengabaikannya. NIST SP 800-90B menggunakan Repetition Count Test untuk memantau pengulangan dan Adaptive Proportion Test untuk frekuensi tidak biasa. Pemeriksaan ini mencari gangguan tertentu; tidak otomatis mendeteksi setiap serangan atau cacat. Saat kegagalan menetap terdeteksi, sumber tidak boleh terus memberikan keluaran seolah beroperasi normal. [1]
Keberadaan TRNG saja tidak membuktikan dompet aman. Cara versi tertentu memakai data dan menangani kesalahan juga penting. Karena itu, NIST SP 800-90C mempertimbangkan sumber bersama generator berikutnya. Menilai satu komponen tidak sama dengan menilai seluruh dompet. Sumber keacakan yang sangat baik pun tidak melindungi cadangan yang kemudian Anda ungkapkan. [4]
Rekaman panjang dari perangkat yang terus menyala menunjukkan sisi perilaku yang berbeda dari mematikan dan menyalakannya berulang kali. Karena itu, NIST SP 800-90B juga mencakup pengujian saat mulai ulang. Penilaian harus sesuai dengan sumber tertentu dan kondisi kerjanya. Hasil satu sampel tidak otomatis berlaku untuk semua perangkat atau lingkungan. Perubahan firmware, yaitu program di dalam perangkat, juga dapat memerlukan penilaian ulang. [1]
Dalam dokumentasi teknis, Anda akan menemukan instruksi RDRAND dan RDSEED. Intel menjelaskannya dalam panduan DRNG, generator angka acak berbasis perangkat keras. RDRAND memberikan hasil generator deterministik yang menghitung nilai berikutnya dari keadaan internalnya. RDSEED menyediakan entropi yang sudah diolah untuk inisialisasi, yaitu membentuk keadaan awal generator. Kedua jalur dapat bermula dari sumber fisik, tetapi itu bukan janji akses langsung ke derau yang belum diolah. [2]
Prosesor belum tentu memiliki hasil siap pakai untuk setiap permintaan. Karena itu, Intel mewajibkan pemeriksaan penanda status CF pada RDRAND maupun RDSEED: 1 berarti hasil tersedia, 0 berarti tidak tersedia. Hanya memeriksa angka nol dalam register tujuan, tempat penyimpanan kecil di dalam prosesor, tidaklah cukup. Program harus membaca penanda keberhasilan. Dukungan prosesor terhadap instruksi tidak berarti bahwa permintaan tertentu berhasil. [2]
Di Linux, antarmuka hw_random memungkinkan data sumber perangkat keras dibaca melalui /dev/hwrng seperti membaca berkas. Namun, dokumentasinya secara tegas memperingatkan bahwa antarmuka ini sendiri tidak menjalankan pengujian mutu data. Perangkat keras yang rusak atau diubah dapat menghasilkan data buruk yang tetap berhasil dibaca aplikasi. Keberhasilan membaca tidak membuktikan kecukupan entropi. Sumber dan cara program menggunakan keluarannya sama-sama perlu dinilai. [3]
Untuk gambaran yang lebih utuh, baca entri ini bersama Cryptographic Entropy, Random Number Generator, CSPRNG, Entropy Mixing. Entri ini juga dirujuk dari Entropy Mixing.