Deterministic RNG एक छद्मयादृच्छिक संख्या जनरेटर है। हर संख्या के लिए कोई नई यादृच्छिक भौतिक घटना मापने के बजाय, वह तय प्रक्रिया से मानों की गणना करता है। इसकी शुरुआत seed नाम के इनपुट से होती है। यह एक आंतरिक अवस्था भी रखता है, यानी अगले हिसाब के लिए जरूरी जानकारी। समान इनपुट के साथ पूरी प्रक्रिया दोहराने पर वही परिणाम मिलते हैं, इसलिए परीक्षण में यह उपयोगी है। सुरक्षित क्रिप्टोग्राफिक जनरेटर को अच्छे डिजाइन और पर्याप्त एंट्रॉपी की भी जरूरत होती है: हमलावर की नजर से इनपुट के बारे में अनिश्चितता।
मान लें कि किसी गणना को रोककर उसकी मेमोरी सहेज ली गई। उसी बिंदु से शुरू करके आगे भी वही इनपुट दिए जाएँ, तो वह पहले की तरह चल सकती है। NIST SP 800-90A ऐसे जनरेटरों को DRBG कहता है। एल्गोरिदम, सेटिंग और अनुरोधों का क्रम मायने रखते हैं। नई एंट्रॉपी जोड़ने, जिसे reseeding कहते हैं, से अवस्था बदलती है। इसलिए अलग-अलग प्रोग्रामों में केवल seed समान होने से आउटपुट समान होना तय नहीं होता। [1]
एक साधारण सिमुलेशन प्रोग्राम भी यादृच्छिक दिखने वाली संख्याएँ बना सकता है। मगर वॉलेट की सुरक्षा के लिए इतना काफी नहीं है। RFC 4086 चेतावनी देता है कि सांख्यिकीय परीक्षण पास करने वाले कुछ क्रम भी हमलावर के लिए अनुमानित हो सकते हैं। क्रिप्टोग्राफिक रूप से मजबूत जनरेटर का कुछ आउटपुट पता चलने पर भी बाकी का अनुमान लगाना व्यावहारिक रूप से कठिन रहना चाहिए। केवल “नियतात्मक” शब्द नहीं, डिजाइन और शुरुआती जानकारी की गुणवत्ता व गोपनीयता महत्वपूर्ण हैं। [2]
गलती खोजते समय ठीक वही स्थिति दोहराना मददगार होता है। इसलिए libsodium का randombytes_buf_deterministic() एक ही seed पर एक ही क्रम देता है। डेवलपर अपेक्षित परिणाम प्रकाशित कर सकते हैं, ताकि दूसरे उसे जाँच सकें। ठीक इसी वजह से सार्वजनिक परीक्षण seed असली वॉलेट में इस्तेमाल नहीं करना चाहिए: कोई भी उससे वही “रहस्य” निकाल सकता है। [3]
BIP32 कुंजियाँ निकालने में ऐसी ही दोहराने की क्षमता इस्तेमाल करता है, लेकिन यह सामान्य यादृच्छिक डेटा बनाने वाली प्रक्रिया नहीं है। वह एक seed से शाखाओं वाला कुंजी-वृक्ष बनाता है। derivation path, यानी कुंजी निकालने का रास्ता, इस्तेमाल होने वाली शाखा चुनता है। उसी seed और रास्ते से वही कुंजियाँ वापस मिल सकती हैं। हालांकि एक और पता निकालने से मूल रहस्य में अपने आप नई, स्वतंत्र एंट्रॉपी नहीं जुड़ती। [4]
BIP39 में बहाली के शब्द, जिन्हें mnemonic कहते हैं, इनपुट का सिर्फ एक हिस्सा हैं। PBKDF2 उन्हें passphrase, यानी वैकल्पिक अतिरिक्त रहस्य, के साथ मिलाकर आगे कुंजियाँ निकालने के लिए seed बनाता है। शब्द समान हों तब भी अलग passphrase से अलग परिणाम मिलता है। वही कुंजियाँ वापस पाने के लिए सभी मूल इनपुट और सही derivation प्रक्रिया चाहिए। केवल शब्दों का मेल पर्याप्त नहीं है। [5]
डिजिटल हस्ताक्षर साबित करता है कि संबंधित गुप्त कुंजी के धारक ने लेनदेन की अनुमति दी। RFC 6979 बताता है कि हस्ताक्षर के लिए सहायक मान k को उस कुंजी और हस्ताक्षर किए जाने वाले संदेश से कैसे निकाला जाए। इस कदम पर हर बार नया यादृच्छिक मान लेना जरूरी नहीं रहता। मगर मूल कुंजी बनाते समय अच्छी यादृच्छिकता की जरूरत बनी रहती है। सही हस्ताक्षर प्रक्रिया उस कुंजी को ठीक नहीं कर सकती जिसका शुरू से अनुमान लगाया जा सकता था। [6]
BIP32 से वही कुंजियाँ वापस पाना वांछित है। लेकिन जिन मानों को नया होना था, उनका अनजाने में दोहर जाना समस्या है। वर्चुअल मशीन का snapshot कंप्यूटर की अवस्था और मेमोरी सहेजता है। libsodium चेतावनी देता है कि उसे बहाल करने पर जनरेटर की अवस्था और आउटपुट भी दोहर सकते हैं। इसलिए किसी वातावरण की प्रतियाँ बनाते समय यह मानना सही नहीं कि हर चलती प्रति अपने आप स्वतंत्र रहस्य बनाएगी। [3] [4]
डेवलपर परिणाम को test vector से मिलाते हैं: एक ज्ञात इनपुट और उसके अपेक्षित आउटपुट की जोड़ी। मेल बताता है कि प्रोग्राम उस उदाहरण की गणना सही करता है। इससे असली उपकरण की एंट्रॉपी की गुणवत्ता साबित नहीं होती। NIST SP 800-90A तंत्र और उसके इनपुट की जरूरतों को अलग-अलग देखता है। प्रोग्राम का संस्करण, सेटिंग और एंट्रॉपी की भरपाई भी महत्वपूर्ण हैं। केवल Deterministic RNG का नाम वॉलेट की सुरक्षा साबित नहीं करता। [1]
पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें CSPRNG, Random Number Generator, HD Wallet, Seed Generation. इस प्रविष्टि का उल्लेख यहाँ भी है CSPRNG, COLDCARD RNG Incident (2026).