क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर

क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर (सीएसपीआरएनजी) या क्रिप्टोग्राफ़िक छद्म यादृच्छिक संख्या जनरेटर (सीपीआरएनजी) छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी) है जिसमें ऐसे गुण हैं जो इसे क्रिप्टोग्राफी में उपयोग के लिए उपयुक्त बनाते हैं। इसे क्रिप्टोग्राफ़िक रैंडम नंबर जेनरेटर (सीआरएनजी) के रूप में भी जाना जाता है।

पृष्ठभूमि
अधिकांश क्रिप्टोग्राफी के लिए यादृच्छिक संख्याओं की आवश्यकता होती है, उदाहरण के लिए:
 * प्रमुख पीढ़ी
 * क्रिप्टोग्राफ़िक परिवर्तित कर
 * ईसीडीएसए, आरएसएएसएसए-पीएसएस सहित कुछ हस्ताक्षर योजनाओं में क्रिप्टोग्राफी

इन अनुप्रयोगों के लिए आवश्यक यादृच्छिकता की गुणवत्ता भिन्न-भिन्न होती है। उदाहरण के लिए, कुछ क्रिप्टोग्राफ़िक प्रोटोकॉल में नॉन बनाने के लिए केवल विशिष्टता की आवश्यकता होती है। दूसरी ओर, मास्टर कुंजी के निर्माण के लिए उच्च गुणवत्ता, जैसे अधिक एन्ट्रापी की आवश्यकता होती है। वन-टाइम पैड के विषय में, पूर्ण गोपनीयता की सूचना सैद्धांतिक आश्वाशन केवल तभी मान्य होती है जब मुख्य सामग्री उच्च एन्ट्रापी के साथ सत्य यादृच्छिक स्रोत से आती है, एवं इस प्रकार किसी भी प्रकार का छद्म यादृच्छिक संख्या जनरेटर अपर्याप्त है।

आदर्श रूप से, सीएसपीआरएनजी में यादृच्छिक संख्याओं का निर्माण उच्च गुणवत्ता वाले स्रोत से प्राप्त एन्ट्रापी सामान्यतः ऑपरेटिंग प्रणाली की यादृच्छिकता एपीआईका उपयोग करता है। चूँकि, ऐसी कई प्रकट रूप से स्वतंत्र प्रक्रियाओं में अप्रत्याशित सहसंबंध प्राप्त हुए हैं। सूचना-सैद्धांतिक दृष्टिकोण से, यादृच्छिकता की मात्रा, उत्पन्न की जा सकने वाली एन्ट्रापी, प्रणाली द्वारा प्रदान की गई एन्ट्रापी के समान है। किन्तु कभी-कभी, व्यावहारिक स्थितियों में, उपलब्ध एन्ट्रापी की अपेक्षा में अधिक यादृच्छिक संख्याओं की आवश्यकता होती है। साथ ही, किसी प्रचलित प्रणाली से यादृच्छिकता निकालने की प्रक्रियाएँ वास्तविक व्यवहार में मंद हैं। ऐसे विषयों में, कभी-कभी सीएसपीआरएनजी का उपयोग किया जा सकता है। सीएसपीआरएनजी उपलब्ध एन्ट्रापी को अधिक बिट्स तक विस्तृत कर सकता है।

आवश्यकताएँ
क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर (सीएसपीआरएनजी) या क्रिप्टोग्राफ़िक छद्म यादृच्छिक संख्या जनरेटर (सीपीआरएनजी) छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी) है जिसमें ऐसे गुण हैं जो इसे क्रिप्टोग्राफी में उपयोग के लिए उपयुक्त बनाते हैं। इसे क्रिप्टोग्राफ़िक रैंडम नंबर जेनरेटर (सीआरएनजी) के रूप में भी जाना जाता है।  जिसकी अपेक्षा सत्य विरुद्ध छद्म-यादृच्छिक यादृच्छिक संख्या पीढ़ी से की जा सकती है ।

सामान्य पीआरएनजी की आवश्यकताएं क्रिप्टोग्राफ़िक रूप से सुरक्षित पीआरएनजी से भी संतुष्ट होती हैं, किन्तु इसका विपरीत सत्य नहीं है। सीएसपीआरएनजी आवश्यकताएँ दो समूहों में आती हैं: प्रथम, कि वे सांख्यिकीय यादृच्छिकता परीक्षण पास करते हैं; एवं दूसरी बात, कि वे गंभीर हमले के अंतर्गत उचित प्रकार से टिके रहते हैं, तब भी जब उनकी प्रारंभिक या प्रचलित स्थिति का भाग किसी हमलावर के लिए उपलब्ध हो जाता है।
 * प्रत्येक सीएसपीआरएनजी को अग्रिम बिट परीक्षण को पूर्ण करना चाहिए । अर्थात, यादृच्छिक अनुक्रम के पूर्व k बिट्स को देखते हुए, कोई बहुपद-समय एल्गोरिदम नहीं है जो ( k +1) बिट की भविष्यवाणी कर सके जिसमें सफलता की संभावना 50% से नगण्य रूप से उत्तम है। एंड्रयू याओ ने 1982 में प्रमाणित किया कि अग्रिम-बिट परीक्षण पास करने वाला जनरेटर यादृच्छिकता के लिए अन्य सभी बहुपद-समय सांख्यिकीय परीक्षण पास कर लेगा।
 * प्रत्येक सीएसपीआरएनजी को राज्य अनुबंध विस्तार का सामना करना चाहिए। इस घटना में कि इसकी स्थिति का कोई भाग या पूर्ण भाग प्रकट हो गया है (या उचित रूप से अनुमान लगाया गया है), रहस्योद्घाटन से पूर्व यादृच्छिक संख्याओं की धारा का पुनर्निर्माण करना असंभव होना चाहिए। इसके अतिरिक्त, यदि चलते समय कोई एन्ट्रापी इनपुट है, तो सीएसपीआरएनजी स्थिति की भविष्य की स्थितियों की भविष्यवाणी करने के लिए इनपुट की स्थिति के ज्ञान का उपयोग करना संभव नहीं होना चाहिए।


 * उदाहरण: यदि विचाराधीन सीएसपीआरएनजी बाइनरी विस्तार में किसी अज्ञात बिंदु से प्रारम्भ करके क्रम में π के बिट्स की गणना करके आउटपुट उत्पन्न करता है, तो यह अग्रिम-बिट परीक्षण को उचित प्रकार से संतुष्ट कर सकता है एवं इस प्रकार सांख्यिकीय रूप से यादृच्छिक हो सकता है, क्योंकि π यादृच्छिक अनुक्रम प्रतीत होता है। (उदाहरण के लिए, यदि π सामान्य संख्या है तो इसका उत्तरदायित्व होगा।) चूँकि, यह एल्गोरिदम क्रिप्टोग्राफ़िक रूप से सुरक्षित नहीं है; हमलावर जो यह निर्धारित करता है कि π का कौन सा बिट (अर्थात एल्गोरिदम की स्थिति) वर्तमान में उपयोग में है, वह सभी पूर्ववर्ती बिट्स की गणना करने में भी सक्षम होता है।

अधिकांश पीआरएनजी सीएसपीआरएनजी के रूप में उपयोग के लिए उपयुक्त नहीं हैं एवं दोनों ही विषयों में विफल हो जाएंगे। सबसे पूर्व, जबकि अधिकांश पीआरएनजी आउटपुट मिश्रित सांख्यिकीय परीक्षणों के लिए यादृच्छिक दिखाई देते हैं, वे निर्धारित रिवर्स इंजीनियरिंग का विरोध नहीं करते हैं। विशिष्ट सांख्यिकीय परीक्षण विशेष रूप से ऐसे पीआरएनजी से जुड़े हुए प्राप्त हो सकते हैं जो यादृच्छिक संख्याओं को वास्तव में यादृच्छिक नहीं दिखाते हैं। दूसरा, अधिकांश पीआरएनजी के लिए, जब उनकी स्थिति का स्पष्टीकरण हो जाता है, तो सभी पूर्व यादृच्छिक संख्याओं को पूर्वव्यापी किया जा सकता है, जिससे हमलावर को सभी पूर्व संदेशों के साथ-साथ भविष्य के संदेशों को भी पढ़ने की अनुमति मिलती है।

सीएसपीआरएनजी को इस प्रकार के क्रिप्ट विश्लेषण का विरोध करने के लिए स्पष्ट रूप से डिज़ाइन किया गया है।

परिभाषाएँ
एसिम्प्टोटिक सुरक्षा में, नियतात्मक बहुपद समय गणना योग्य कार्यों $$G_k\colon\{0,1\}^k\to\{0,1\}^{p(k)}$$का सदस्य कुछ बहुपद $p$ के लिए, छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी, या कुछ संदर्भों में पीआरजी) है, यदि यह अपने इनपुट $$p(k) > k$$ ( किसी $k$ के लिए ) की लंबाई बढ़ाता है, एवं यदि इसका आउटपुट वास्तविक यादृच्छिकता से कम्प्यूटेशनल अप्रभेद्यता है, अर्थात किसी भी संभाव्य बहुपद समय एल्गोरिदम $A$ के लिए, जो विभेदक के रूप में 1 या 0 को आउटपुट करता है,


 * $$\left|\Pr_{x\gets\{0,1\}^k}[A(G(x))=1] - \Pr_{r\gets\{0,1\}^{p(k)}}[A(r)=1]\right| < \mu(k)$$

कुछ नगण्य कार्य $$\mu$$ के लिए, (संकेतन $$x\gets X$$ तात्पर्य है कि $x$ का समुच्चय $X$ से यादृच्छिक एवं समान रूप से  चयन होता है।)

समतुल्य लक्षण वर्णन है: किसी भी फलन सदस्य $$G_k\colon\{0,1\}^k\to\{0,1\}^{p(k)}$$ के लिए, $G$ पीआरएनजी है यदि एवं केवल यदि $G$ के अग्रिम आउटपुट बिट की भविष्यवाणी बहुपद समय एल्गोरिथ्म द्वारा नहीं की जा सकती है। ब्लॉक लंबाई $$t(k)$$ के साथ फॉरवर्ड-सुरक्षित पीआरएनजी $$G_k\colon\{0,1\}^k\to\{0,1\}^k\times\{0,1\}^{t(k)}$$ पीआरएनजी है, जहां इनपुट स्ट्रिंग $$s_i$$ है, लंबाई $k$ के साथ अवधि $i$ पर वर्तमान स्थिति है, एवं आउटपुट ($$s_{i+1}$$, $$y_i$$) में अग्रिम राज्य सम्मिलित $$s_{i+1}$$है एवं अवधि $i$ का छद्म यादृच्छिक आउटपुट ब्लॉक $$y_i$$, जो निम्नलिखित अर्थों में राज्य अनुबंध विस्तार का सामना करता है। यदि प्रारंभिक अवस्था $$s_1$$का $$\{0,1\}^k$$ से यादृच्छिक रूप से समान रूप से चयन होता है, पुनः किसी $i$ के लिए, क्रम $$(y_1,y_2,\dots,y_i,s_{i+1})$$,$$(r_1,r_2,\dots,r_i,s_{i+1})$$ से कम्प्यूटेशनल रूप से अप्रभेद्य होना चाहिए, जिसमें $$r_i$$, $$\{0,1\}^{t(k)}$$से समान रूप से यादृच्छिक रूप से चयनित होते हैं। कोई भी पीआरएनजी $$G\colon\{0,1\}^k\to\{0,1\}^{p(k)}$$ ब्लॉक लंबाई $$p(k)-k$$ के साथ फॉरवर्ड सुरक्षित पीआरएनजी में इसके आउटपुट को अग्रिम स्थिति एवं वास्तविक आउटपुट में विभाजित करके परिवर्तित किया जा सकता है। यह सेटिंग $$G(s) = G_0(s)\Vert G_1(s)$$ द्वारा किया जाता है, जिसमें $$|G_0(s)| = |s| = k$$ एवं $$|G_1(s)| = p(k)-k$$; तब अग्रिम राज्य के रूप में $$G_0$$ के साथ $G$  फॉरवर्ड सुरक्षित पीआरएनजी है एवं $$G_1$$ वर्तमान अवधि के छद्म यादृच्छिक आउटपुट ब्लॉक के रूप में है।

एंट्रॉपी निष्कर्षण
संथा एवं वज़ीरानी ने प्रमाणित किया कि शक्तिहीन यादृच्छिकता वाली कई बिट धाराओं को उच्च गुणवत्ता वाली अर्ध-यादृच्छिक बिट स्ट्रीम उत्पन्न करने के लिए जोड़ा जा सकता है। इससे पूर्व भी, जॉन वॉन न्यूमैन ने प्रमाणित किया था कि सरल एल्गोरिदम किसी भी बिट स्ट्रीम में अधिक मात्रा में पूर्वाग्रह को दूर कर सकता है, जिसे संथा-वज़ीरानी डिज़ाइन के किसी भी परिवर्तन का उपयोग करने से पूर्व प्रत्येक बिट स्ट्रीम पर प्रस्तावित किया जाना चाहिए।

डिज़ाइन
नीचे दी गई चर्चा में, सीएसपीआरएनजी डिज़ाइन को तीन वर्गों में विभाजित किया गया है: उत्तरार्द्ध प्रायः उपलब्ध होने पर अतिरिक्त एन्ट्रापी का परिचय देता है एवं, कठोरता से बोलते हुए, शुद्ध छद्म यादृच्छिक संख्या जनरेटर नहीं होते हैं, क्योंकि उनका आउटपुट पूर्ण रूप से से उनकी प्रारंभिक स्थिति से निर्धारित नहीं होता है। प्रारंभिक स्थिति से अनुबंध होने पर भी यह जोड़ हमलों को रोक सकता है।
 * 1) जो क्रिप्टोग्राफ़िक प्राइमेटिव्स जैसे सिफ़र एवं क्रिप्टोग्राफ़िक हैश पर आधारित हैं,
 * 2) जो गणितीय समस्याओं पर आधारित हैं जिन्हें कठिन माना जाता है, एवं
 * 3) विशेष प्रयोजन डिजाइन है।

क्रिप्टोग्राफ़िक आदिमों पर आधारित डिज़ाइन

 * सुरक्षित ब्लॉक सिफर को काउंटर मोड में चलाकर सीएसपीआरएनजी में परिवर्तित किया जा सकता है। यह यादृच्छिक कुंजी चुनकर एवं 0 को एन्क्रिप्ट करके, पुनः 1 को एन्क्रिप्ट करके, पुनः 2 को एन्क्रिप्ट करके आदि द्वारा किया जाता है। काउंटर को शून्य के अतिरिक्त किसी अन्य नंबर पर भी प्रारम्भ किया जा सकता है। एन-बिट ब्लॉक सिफर मानते हुए आउटपुट को लगभग 2n/2 के पश्चात यादृच्छिक डेटा से भिन्न किया जा सकता है ब्लॉक करता है, क्योंकि जन्मदिन की समस्या के पश्चात, उस बिंदु पर टकराने वाले ब्लॉक की संभावना बननी चाहिए, जबकि सीटीआर मोड में ब्लॉक सिफर कभी भी समान ब्लॉक को आउटपुट नहीं करता है। 64-बिट ब्लॉक सिफर के लिए यह सुरक्षित आउटपुट आकार को कुछ गीगाबाइट तक सीमित करता है,128-बिट ब्लॉक के साथ यह सीमा इतनी बड़ी है कि सामान्य अनुप्रयोगों को प्रभावित नहीं करती है। चूँकि, जब अकेले उपयोग किया जाता है तो यह सीएसपीआरएनजी के सभी मानदंडों को पूर्ण नहीं करता है (जैसा कि ऊपर बताया गया है) क्योंकि यह राज्य अनुबंध एक्सटेंशन के विरुद्ध शक्तिशाली नहीं है: राज्य के ज्ञान (इस विषय में काउंटर एवं कुंजी) के साथ आप सभी पूर्व आउटपुट की भविष्यवाणी कर सकते हैं।
 * काउंटर का क्रिप्टोग्राफ़िक रूप से सुरक्षित क्रिप्टोग्राफ़िक हैश फलन कुछ विषयों में उत्तम सीएसपीआरएनजी के रूप में भी कार्य कर सकता है। ऐसे में यह भी जरूरी है कि इस काउंटर का प्रारंभिक मूल्य यादृच्छिक एवं अप्रत्यक्ष हो, चूँकि, इस विधि से उपयोग के लिए इन एल्गोरिदम का कम अध्ययन किया गया है, एवं कम से कम कुछ लेखक इस उपयोग के विरुद्ध चेतावनी देते हैं।
 * अधिकांश धारा सिफर बिट्स की छद्म यादृच्छिक स्ट्रीम उत्पन्न करके कार्य करते हैं जो प्लेनटेक्स्ट के साथ संयुक्त (लगभग हमेशा बिटवाइज़ XORed) होते हैं; काउंटर पर सिफर चलाने से संभवतः लंबी अवधि के साथ नई छद्म यादृच्छिक धारा वापस आ जाएगी। सिफर केवल तभी सुरक्षित हो सकता है यदि मूल स्ट्रीम उचित सीएसपीआरएनजी है, चूँकि यह आवश्यक नहीं है (RC4 सिफर देखें)। पुनः, प्रारंभिक अवस्था को अप्रत्यक्ष रखा जाना चाहिए।

संख्या-सैद्धांतिक डिज़ाइन

 * ब्लम ब्लम शब एल्गोरिदम में द्विघात अवशिष्टता समस्या की कठिनाई के आधार पर सुरक्षा प्रमाण है। चूँकि उस समस्या का निवारण करने का ज्ञात उपाय मापांक का गुणनखंड करना है, सामान्यतः यह माना जाता है कि पूर्णांक गुणनखंडन की कठिनाई ब्लम ब्लम शब एल्गोरिथ्म के लिए सशर्त सुरक्षा प्रमाण प्रदान करती है। चूँकि एल्गोरिथ्म बहुत अक्षम है एवं इसलिए अव्यावहारिक है जब तक कि अत्यधिक सुरक्षा की आवश्यकता न हो।
 * ब्लम-मिकाली एल्गोरिथ्म में असतत लघुगणक समस्या की कठिनाई के आधार पर सुरक्षा प्रमाण है, किन्तु यह बहुत अक्षम भी है।
 * सर्टिकॉम के डेनियल ब्राउन ने दोहरी ईसी डीआरबीजी के लिए 2006 का सुरक्षा प्रमाण लिखा है, जो डिसीजनल डिफी-हेलमैन धारणा की अनुमानित कठोरता, एक्स-लघुगणक समस्या एवं ट्रंकेटेड पॉइंट समस्या पर आधारित है। 2006 का प्रमाण Dual_EC_DRBG स्पष्ट रूप से कम आउटलेन मानता है एवं Dual_EC_DRBG मानक में P एवं Q (जो 2013 में एनएसए द्वारा संभवतः बैकडोर किए जाने के रूप में सामने आए थे) को अन्य-बैकडोर मानों से परिवर्तित कर दिया गया है।

विशेष डिज़ाइन
ऐसे कई व्यावहारिक पीआरएनजी हैं जिन्हें क्रिप्टोग्राफ़िक रूप से सुरक्षित बनाने के लिए डिज़ाइन किया गया है, जिनमें सम्मिलित हैं
 * यारो एल्गोरिथ्म जो इसके इनपुट की एन्ट्रोपिक गुणवत्ता का मूल्यांकन करने का प्रयास करता है। दिसंबर 2019 तक यारो का उपयोग macOS एवं अन्य Apple OS में किया जाता था। तब से Apple ने फोर्टुना पर स्विच कर लिया है। (देखें/देव/यादृच्छिक)।
 * ChaCha20 एल्गोरिथ्म ने ओपनबीएसडी (संस्करण 5.4), नेटबीएसडी (संस्करण 7.0), एवं फ्रीबीएसडी (संस्करण 12.0)में RC4 को प्रतिस्थापित कर दिया।
 * संस्करण 4.8 में ChaCha20 ने लिनक्स में SHA-1 को भी प्रतिस्थापित कर दिया।
 * फोर्टुना (पीआरएनजी), यारो का उत्तराधिकारी, जो अपने इनपुट की एन्ट्रोपिक गुणवत्ता का मूल्यांकन करने का प्रयास नहीं करता है। फ्रीबीएसडी में फ़ोर्टुना का उपयोग किया जाता है। दिसंबर 2019 में अधिकांश या सभी Apple OS के लिए Apple को फोर्टुना में परिवर्तित कर दिया गया है।
 * माइक्रोसॉफ्ट के क्रिप्टोग्राफ़िक एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस में प्रदान किया गया फलन CryptGenRandom है।
 * ISAAC (सिफर) RC4 सिफर के प्रकार पर आधारित है।
 * मानक एवं प्रौद्योगिकी का राष्ट्रीय संस्थान सांख्यिकीय परीक्षण सूट के आधार पर विकासवादी एल्गोरिदम के साथ रैखिक-प्रतिक्रिया शिफ्ट रजिस्टर को ट्यून किया गया है।
 * RC4-आधारित यादृच्छिक संख्या जनरेटर
 * एईएस-सीटीआर डीआरबीजी का उपयोग प्रायः एईएस एन्क्रिप्शन का उपयोग करने वाले प्रणाली में यादृच्छिक संख्या जनरेटर के रूप में किया जाता है।
 * अमेरिकी राष्ट्रीय मानक संस्थान X9.17 मानक (वित्तीय संस्थान कुंजी प्रबंधन), जिसे संघीय सूचना प्रसंस्करण मानक मानक के रूप में भी अपनाया गया है। यह इनपुट के रूप में ट्रिपल डेस (कुंजी विकल्प 2) कुंजी बंडल k एवं (प्रारंभिक मान)  64-बिट यादृच्छिक बीज s लेता है। हर बार  यादृच्छिक संख्या की आवश्यकता होती है:
 * वर्तमान दिनांक/समय D को अधिकतम संभव रिज़ॉल्यूशन तक प्राप्त करता है।
 * अस्थायी मान $t = TDEA_{k}(D)$ की गणना करता है।
 * यादृच्छिक मान $x = TDEA_{k}(s ⊕ t)$ की गणना करता है, जहां ⊕ बिटवाइज़ मात्र को दर्शाता है।
 * बीज $s = TDEA_{k}(x ⊕ t)$ को अद्यतन करता है।


 * प्रौद्योगिकी को किसी भी ब्लॉक सिफर के लिए सरलता से सामान्यीकृत किया जा सकता है; उन्नत एन्क्रिप्शन मानक का विचार दिया गया है।

मानक
कई सीएसपीआरएनजी को मानकीकृत किया गया है। उदाहरण के लिए,
 * FIPS 186-4
 * एनआईएसटी एसपी 800-90A:


 * इस वापस लिए गए मानक में चार पीआरएनजी हैं। उनमें से दो निर्विवाद सिद्ध हैं: सीएसपीआरएनजी जिनका नाम हैश_डीआरबीजी एवं एचएमएसी_डीआरबीजी है।
 * इस मानक में तीसरा पीआरएनजी, सीटीआर डीआरबीजी, काउंटर मोड में चलने वाले ब्लॉक सिफर पर आधारित है। इसका डिज़ाइन निर्विवाद है, किन्तु अंतर्निहित ब्लॉक सिफर के सुरक्षा स्तर की अपेक्षा में हमले को भेदने के विषय में यह शक्तिहीन प्रमाणित हुआ है, जब इस पीआरएनजी से आउटपुट बिट्स की संख्या अंतर्निहित ब्लॉक सिफर के ब्लॉक आकार की शक्ति से दो से अधिक है।


 * जब इस पीआरएनजी से आउटपुट बिट्स की अधिकतम संख्या 2ब्लॉकसाइज़ के समान होती है, परिणामी आउटपुट गणितीय रूप से अपेक्षित सुरक्षा स्तर प्रदान करता है जिसे कुंजी आकार उत्पन्न करने की उम्मीद की जाएगी, किन्तु आउटपुट को वास्तविक यादृच्छिक संख्या जनरेटर से अप्रभेद्य नहीं प्रदर्शित किया गया है। जब इस पीआरएनजी से आउटपुट बिट्स की अधिकतम संख्या इससे कम होती है, तो अपेक्षित सुरक्षा स्तर प्रदान किया जाता है एवं आउटपुट वास्तविक यादृच्छिक संख्या जनरेटर से अप्रभेद्य प्रतीत होता है।


 * अग्रिम संशोधन में यह नोट किया गया है कि CTR_DRBG के लिए दावा की गई सुरक्षा ताकत उत्पन्न अनुरोधों की कुल संख्या एवं प्रति उत्पन्न अनुरोध प्रदान की गई बिट्स को सीमित करने पर निर्भर करती है।


 * इस मानक में चौथे एवं अंतिम पीआरएनजी को डुअल ईसी डीआरबीजी नाम दिया गया है। यह प्रदर्शित किया गया है कि यह क्रिप्टोग्राफ़िक रूप से सुरक्षित नहीं है एवं माना जाता है कि इसमें क्लेप्टोग्राफ़ी एनएसए बैकडोर है।


 * NIST SP 800-90A Rev.1: यह मूलतः NIST SP 800-90A है जिसमें Dual_EC_DRBG निकाल दिया गया है, एवं यह वापस लिए गए मानक का प्रतिस्थापन है।
 * एएनएसआई X9.17-1985 परिशिष्ट C
 * एएनएसआई X9.31-1998 परिशिष्ट A.2.4
 * ANSI X9.62-1998 अनुबंध A.4, ANSI X9.62-2005 द्वारा अप्रचलित, अनुबंध D (HMAC_DRBG)

एनआईएसटी द्वारा उचित संदर्भ बनाए रखा जाता है। नए सीएसपीआरएनजी डिज़ाइनों के सांख्यिकीय परीक्षण के लिए भी मानक हैं:
 * रैंडम एवं छद्म यादृच्छिक संख्या जेनरेटर के लिए सांख्यिकीय परीक्षण सूट, एनआईएसटी विशेष प्रकाशन 800-22 है।

Dual_EC_DRBG PRNG में एनएसए क्लेप्टोग्राफ़िक बैकडोर

अभिभावक दी न्यू यौर्क टाइम्स ने 2013 में रिपोर्ट दी थी कि राष्ट्रीय सुरक्षा एजेंसी (एनएसए) ने एनआईएसटी एसपी 800-90A के छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी) में पिछला दरवाजा (कंप्यूटिंग) दिया था जो एनएसए को एन्क्रिप्टेड सामग्री को दोहरी ईसी डीआरबीजी की सहायता से सरलता से डिक्रिप्ट करने की अनुमति देता है। दोनों पेपर रिपोर्ट करते हैं, जैसा कि स्वतंत्र सुरक्षा विशेषज्ञों को लंबे समय से संदेह था, एनएसए सीएसपीआरएनजी मानक 800-90 में शक्तिहीनता प्रस्तुत कर रहा है; एड्वर्ड स्नोडेन द्वारा गार्जियन को प्रकट किए गए शीर्ष अप्रत्यक्ष प्रपत्रों में से प्रथम बार इसकी पुष्टि की गई है। एनएसए ने 2006 में दुनिया में उपयोग के लिए स्वीकृत एनआईएसटी ड्राफ्ट सुरक्षा मानक के अपने संस्करण को प्राप्त करने के लिए अप्रत्यक्ष रूप से कार्य किया था। प्रकट हुए दस्तावेज़ में कहा गया है कि अंततः, एनएसए मात्र संपादक बन गया था। क्लेप्टोग्राफी बैकडोर की ज्ञात क्षमता एवं Dual_EC_DRBG के साथ अन्य ज्ञात महत्वपूर्ण कमियों के अतिरिक्त, RSA सिक्योरिटी जैसी कई कंपनियों ने 2013 में बैकडोर की पुष्टि होने तक Dual_EC_DRBG का उपयोग प्रस्तुत रखा। ऐसा करने के लिए आरएसए सिक्योरिटी को एनएसए से $10 मिलियन का भुगतान प्राप्त हुआ था।

DUHK आक्रमण
23 अक्टूबर, 2017 को, पेंसिल्वेनिया विश्वविद्यालय एवं जॉन्स हॉपकिन्स विश्वविद्यालय के क्रिप्टोग्राफर शानन कोहनी, मैथ्यू डी. ग्रीन एवं नादिया हेनिंगर ने WPA2 पर DUHK (हार्ड-कोडेड कुंजी का उपयोग न करें) हमले का विवरण प्रस्तुत किया, जहां हार्डवेयर विक्रेता हार्डकोड उपयोग करते हैं। एएनएसआई X9.31 आरएनजी एल्गोरिथ्म के लिए हार्डकोडेड कुंजी, जिसमें कहा गया है कि हमलावर अन्य एन्क्रिप्शन मापदंडों की शोध करने एवं वेब सत्र या आभासी निजी संजाल (वीपीएन) कनेक्शन को एन्क्रिप्ट करने के लिए उपयोग की जाने वाली मास्टर एन्क्रिप्शन कुंजी को निकालने के लिए एन्क्रिप्टेड डेटा को बलपूर्वक प्रस्तावित कर सकता है।

जापानी बैंगनी सिफर मशीन
द्वितीय विश्व युद्ध क्रिप्टोग्राफी के समय, जापान ने राजनयिक संचार के लिए सिफर मशीन का उपयोग किया; संयुक्त राज्य अमेरिका इसे क्रैक करने एवं इसके संदेशों को पढ़ने में सक्षम था, क्योंकि उपयोग किए गए प्रमुख मान अपर्याप्त रूप से यादृच्छिक थे।

बाहरी संबंध

 * , Randomness Requirements for Security
 * Java "entropy pool" for cryptographically secure unpredictable random numbers.
 * Java standard class providing a cryptographically strong pseudo-random number generator (पीआरएनजी).
 * Cryptographically Secure Random number on Windows without using CryptoAPI
 * Conjectured Security of the ANSI-NIST Elliptic Curve RNG, Daniel R. L. Brown, IACR ePrint 2006/117.
 * A Security Analysis of the NIST SP 800-90 Elliptic Curve Random Number Generator, Daniel R. L. Brown and Kristian Gjosteen, IACR ePrint 2007/048. To appear in CRYPTO 2007.
 * Cryptanalysis of the Dual Elliptic Curve Pseudorandom Generator, Berry Schoenmakers and Andrey Sidorenko, IACR ePrint 2006/190.
 * Efficient Pseudorandom Generators Based on the DDH Assumption, Reza Rezaeian Farashahi and Berry Schoenmakers and Andrey Sidorenko, IACR ePrint 2006/321.
 * Analysis of the Linux Random Number Generator, Zvi Gutterman and Benny Pinkas and Tzachy Reinman.
 * NIST Statistical Test Suite documentation and software download.