CSPRNG क्रिप्टोग्राफिक उपयोग के लिए नियतात्मक जनित्र है। छद्मयादृच्छिक का अर्थ कमजोर नहीं है: बताई गई धारणाओं के तहत विरोधी का प्रतिरोध महत्त्वपूर्ण है। एल्गोरिदम, एंट्रॉपी स्रोत और आउटपुट इस्तेमाल करने वाले कोड को अलग जाँचना चाहिए।
RFC 4086 क्रिप्टोग्राफिक रूप से मजबूत क्रमों को सामान्य सिमुलेशन जनित्रों से अलग करता है। आउटपुट का एक भाग जानने से शेष का अनुमान नहीं लगना चाहिए। केवल सांख्यिकीय परीक्षण यह साबित नहीं करते; अनुमानित seed जटिल दिखने वाले आउटपुट को भी कमजोर कर सकता है। [RFC 4086 — Cryptographically strong sequences]
NIST SP 800-90A Rev. 1 में Hash_DRBG, HMAC_DRBG और CTR_DRBG निर्दिष्ट हैं। CSPRNG नाम हर कार्यान्वयन को प्रमाणित नहीं करता। केवल हैश फ़ंक्शन का नाम नहीं, तंत्र, उसके पैरामीटर और एंट्रॉपी प्राप्त करने का तरीका पहचानना आवश्यक है। [NIST SP 800-90A Rev. 1 — DRBG mechanisms and compromise resistance]
Backtracking resistance वर्तमान अवस्था खुलने के बाद पुराने आउटपुट बचाता है। Prediction resistance भविष्य के आउटपुट से संबंधित है; NIST SP 800-90A इसे नई एंट्रॉपी के प्रभावी समावेश से जोड़ता है। एक गुण अपने आप दूसरे या अगले कॉल मात्र से सुरक्षा लौटने का अर्थ नहीं देता। [NIST SP 800-90A Rev. 1 — DRBG mechanisms and compromise resistance]
OpenSSL 3.5 में RAND_bytes() और RAND_priv_bytes() सफलता पर 1, अन्य विफलता पर 0 और असमर्थित विधि पर -1 लौटाते हैं। एंट्रॉपी स्रोत विफल होने पर निर्माण रोका जा सकता है। ऐप को अप्रमाणित बफ़र इस्तेमाल करने के बजाय परिणाम जाँचना चाहिए। [OpenSSL 3.5 — RAND_bytes return values and errors]
libsodium randombytes_buf_deterministic() एक ही seed से एक ही क्रम बनाता है, जो परीक्षणों में उपयोगी है। वर्चुअल मशीन का स्नैपशॉट बहाल करने पर अवस्था और आउटपुट दोहर सकते हैं। परीक्षणों की पुनरुत्पादकता प्रतियों में स्वतंत्र रहस्यों की गारंटी नहीं है। [libsodium — Random data and deterministic testing]
libsodium randombytes_uniform() सरल भाग-शेष के पक्षपात के बिना ऊपरी सीमा से नीचे समान वितरण से चयन करता है। अच्छे इनपुट बाइट अकेले लक्ष्य सीमा में सही रूपांतरण सुनिश्चित नहीं करते। कुंजियों को संबंधित एल्गोरिदम के नियम भी मानने चाहिए। [libsodium — Random data and deterministic testing]
RFC 8439 एक ही कुंजी के साथ nonce न दोहराने की माँग करता है; यादृच्छिक रूप अकेले अद्वितीयता साबित नहीं करता। RFC 6979 इसके विपरीत हस्ताक्षर मान k को नियतात्मक रूप से बनाने का वर्णन करता है। इसलिए CSPRNG प्रोटोकॉल नियमों का सार्वभौमिक विकल्प नहीं है। [RFC 8439 — Nonce uniqueness] [RFC 6979 — Deterministic signing]
लाइब्रेरी संस्करण, तंत्र, आरंभीकरण, त्रुटियाँ और अवस्था बहाल या क्लोन होने के बाद का व्यवहार दर्ज करें। OpenSSL और libsodium दस्तावेज़ अपने विशेष फ़ंक्शन बताते हैं, किसी भी वॉलेट की सुरक्षा नहीं। अच्छा निर्माण बाद में बैकअप के रिसाव को भी नहीं रोकता। [OpenSSL 3.5 — RAND_bytes return values and errors] [libsodium — Random data and deterministic testing]
पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें Cryptographic Entropy, Random Number Generator, Deterministic RNG, Seed Generation. इस प्रविष्टि का उल्लेख यहाँ भी है Dice Roll Entropy, Cryptographic Entropy, Random Number Generator, Deterministic RNG.