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

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

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

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

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

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

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


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

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

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

परिभाषाएँ
एसिम्प्टोटिक सुरक्षा में, नियतात्मक बहुपद समय गणना योग्य कार्यों का एक परिवार $$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}$$ और छद्म यादृच्छिक आउटपुट ब्लॉक $$y_i$$ अवधि का $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$ एक फॉरवर्ड सुरक्षित पीआरएनजी है $$G_0$$ अगले राज्य के रूप में और $$G_1$$ वर्तमान अवधि के छद्म यादृच्छिक आउटपुट ब्लॉक के रूप में।

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

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

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

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

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

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

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


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

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


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


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


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


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


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

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

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

अभिभावक दी न्यू यौर्क टाइम्स ने 2013 में रिपोर्ट दी थी कि राष्ट्रीय सुरक्षा एजेंसी (एनएसए) ने एनआईएसटी एसपी 800-90ए के छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी) में एक पिछला दरवाजा (कंप्यूटिंग)  डाला था जो एनएसए को एन्क्रिप्टेड सामग्री को आसानी से डिक्रिप्ट करने की अनुमति देता है। दोहरी ईसी डीआरबीजी की सहायता से। दोनों पेपर रिपोर्ट करते हैं जैसा कि स्वतंत्र सुरक्षा विशेषज्ञों को लंबे समय से संदेह था, एनएसए सीएसपीआरएनजी मानक 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 (PRNG).
 * 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.