CSPRNG adalah pembangkit deterministik untuk penggunaan kriptografis. Pseudoacak tidak berarti lemah: ketahanan terhadap lawan berdasarkan asumsi yang dinyatakanlah yang penting. Algoritme, sumber entropi dan kode pemakai keluaran harus dinilai terpisah.
RFC 4086 membedakan deret kuat secara kriptografis dari pembangkit simulasi biasa. Mengetahui sebagian keluaran tidak boleh membuat sisanya dapat ditebak. Uji statistik saja tidak membuktikannya; seed yang dapat diprediksi dapat merusak bahkan keluaran yang tampak rumit. [RFC 4086 — Cryptographically strong sequences]
NIST SP 800-90A Rev. 1 menetapkan Hash_DRBG, HMAC_DRBG dan CTR_DRBG. Label CSPRNG tidak menyertifikasi setiap implementasi. Kenali mekanisme, parameter dan cara memperoleh entropi, bukan hanya nama fungsi hash. [NIST SP 800-90A Rev. 1 — DRBG mechanisms and compromise resistance]
Backtracking resistance melindungi keluaran terdahulu setelah keadaan kini terbuka. Prediction resistance menyangkut keluaran mendatang; NIST SP 800-90A menghubungkannya dengan pemasukan entropi segar yang efektif. Satu sifat tidak otomatis menyiratkan sifat lain atau pemulihan melalui satu panggilan berikutnya saja. [NIST SP 800-90A Rev. 1 — DRBG mechanisms and compromise resistance]
OpenSSL 3.5 menjelaskan bahwa RAND_bytes() dan RAND_priv_bytes() mengembalikan 1 saat sukses, 0 pada kegagalan lain, dan -1 untuk metode yang tidak didukung. Pembangkitan bisa ditolak jika sumber entropi gagal. Aplikasi harus memeriksa hasil, bukan memakai buffer yang belum diverifikasi. [OpenSSL 3.5 — RAND_bytes return values and errors]
libsodium randombytes_buf_deterministic() menghasilkan deret yang sama untuk seed yang sama, berguna untuk pengujian. Memulihkan snapshot mesin virtual dapat mengulang keadaan dan keluaran. Pengujian yang dapat direproduksi tidak menjamin rahasia independen antarsalinan. [libsodium — Random data and deterministic testing]
libsodium randombytes_uniform() memilih secara merata di bawah batas atas tanpa bias dari operasi sisa pembagian sederhana. Byte masukan yang baik saja tidak menjamin pemetaan benar ke rentang tujuan. Kunci juga harus mengikuti aturan algoritmenya. [libsodium — Random data and deterministic testing]
RFC 8439 mewajibkan nonce tidak berulang dengan kunci yang sama; tampilan acak saja tidak membuktikan keunikan. Sebaliknya, RFC 6979 menjelaskan pembuatan deterministik nilai tanda tangan k. CSPRNG bukan pengganti universal untuk aturan protokol. [RFC 8439 — Nonce uniqueness] [RFC 6979 — Deterministic signing]
Catat versi pustaka, mekanisme, inisialisasi, galat dan perilaku setelah pemulihan atau kloning keadaan. Dokumentasi OpenSSL dan libsodium menjelaskan fungsi tertentu, bukan keamanan sembarang dompet. Pembangkitan yang baik juga tidak mencegah kebocoran cadangan kemudian hari. [OpenSSL 3.5 — RAND_bytes return values and errors] [libsodium — Random data and deterministic testing]
Untuk gambaran yang lebih utuh, baca entri ini bersama Cryptographic Entropy, Random Number Generator, Deterministic RNG, Seed Generation. Entri ini juga dirujuk dari Dice Roll Entropy, Cryptographic Entropy, Random Number Generator, Deterministic RNG.