क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर: Difference between revisions
No edit summary |
No edit summary |
||
(14 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Type of functions designed for being unsolvable by root-finding algorithms}} | {{Short description|Type of functions designed for being unsolvable by root-finding algorithms}} | ||
'''क्रिप्टोग्राफ़िक रूप से सुरक्षित [[छद्म यादृच्छिक संख्या जनरेटर]]''' (सीएसपीआरएनजी) या क्रिप्टोग्राफ़िक छद्म यादृच्छिक संख्या जनरेटर ( | '''क्रिप्टोग्राफ़िक रूप से सुरक्षित [[छद्म यादृच्छिक संख्या जनरेटर]]''' (सीएसपीआरएनजी) या क्रिप्टोग्राफ़िक छद्म यादृच्छिक संख्या जनरेटर (सीपीआरएनजी) छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी) है जिसमें ऐसे गुण हैं जो इसे [[क्रिप्टोग्राफी]] में उपयोग के लिए उपयुक्त बनाते हैं। इसे क्रिप्टोग्राफ़िक रैंडम नंबर जेनरेटर (सीआरएनजी) के रूप में भी जाना जाता है। | ||
== पृष्ठभूमि == | == पृष्ठभूमि == | ||
Line 6: | Line 6: | ||
* [[प्रमुख पीढ़ी]] | * [[प्रमुख पीढ़ी]] | ||
* [[क्रिप्टोग्राफ़िक गैर]] | * [[क्रिप्टोग्राफ़िक गैर]] | ||
* [[ECDSA]], [[PKCS 1]] | * [[ECDSA|ईसीडीएसए]], [[PKCS 1|आरएसएएसएसए-पीएसएस]] सहित कुछ हस्ताक्षर योजनाओं में [[नमक (क्रिप्टोग्राफी)|क्रिप्टोग्राफी]] | ||
इन अनुप्रयोगों के लिए आवश्यक यादृच्छिकता की गुणवत्ता भिन्न-भिन्न होती है। उदाहरण के लिए, कुछ [[क्रिप्टोग्राफ़िक प्रोटोकॉल]] में | इन अनुप्रयोगों के लिए आवश्यक यादृच्छिकता की गुणवत्ता भिन्न-भिन्न होती है। उदाहरण के लिए, कुछ [[क्रिप्टोग्राफ़िक प्रोटोकॉल]] में नॉन बनाने के लिए केवल विशिष्टता की आवश्यकता होती है। दूसरी ओर, मास्टर [[कुंजी (क्रिप्टोग्राफी)|कुंजी]] के निर्माण के लिए उच्च गुणवत्ता, जैसे अधिक [[एन्ट्रापी (कंप्यूटिंग)|एन्ट्रापी]] की आवश्यकता होती है। वन-टाइम पैड के विषय में, पूर्ण गोपनीयता की [[सूचना सिद्धांत|सूचना सैद्धांतिक]] आश्वाशन केवल तभी मान्य होती है जब मुख्य सामग्री उच्च एन्ट्रापी के साथ सत्य यादृच्छिक स्रोत से आती है, एवं इस प्रकार किसी भी प्रकार का छद्म यादृच्छिक संख्या जनरेटर अपर्याप्त है। | ||
आदर्श रूप से, सीएसपीआरएनजी में यादृच्छिक संख्याओं का निर्माण उच्च गुणवत्ता वाले स्रोत से प्राप्त एन्ट्रापी | आदर्श रूप से, सीएसपीआरएनजी में यादृच्छिक संख्याओं का निर्माण उच्च गुणवत्ता वाले स्रोत से प्राप्त एन्ट्रापी सामान्यतः ऑपरेटिंग प्रणाली की यादृच्छिकता [[एपीआई]]का उपयोग करता है। चूँकि, ऐसी कई प्रकट रूप से स्वतंत्र प्रक्रियाओं में अप्रत्याशित सहसंबंध प्राप्त हुए हैं। सूचना-सैद्धांतिक दृष्टिकोण से, यादृच्छिकता की मात्रा, उत्पन्न की जा सकने वाली एन्ट्रापी, प्रणाली द्वारा प्रदान की गई एन्ट्रापी के समान है। किन्तु कभी-कभी, व्यावहारिक स्थितियों में, उपलब्ध एन्ट्रापी की अपेक्षा में अधिक यादृच्छिक संख्याओं की आवश्यकता होती है। साथ ही, किसी प्रचलित प्रणाली से यादृच्छिकता निकालने की प्रक्रियाएँ वास्तविक व्यवहार में मंद हैं। ऐसे विषयों में, कभी-कभी सीएसपीआरएनजी का उपयोग किया जा सकता है। सीएसपीआरएनजी उपलब्ध एन्ट्रापी को अधिक बिट्स तक विस्तृत कर सकता है। | ||
==आवश्यकताएँ== | ==आवश्यकताएँ== | ||
क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर (सीएसपीआरएनजी) या क्रिप्टोग्राफ़िक छद्म यादृच्छिक संख्या जनरेटर (सीपीआरएनजी)<ref>{{cite book |last1=Huang |first1=Andrew |url=https://archive.org/details/Hacking_the_Xbox_An_Introduction_to_Reverse_Engineering_2003_No_Starch_Press |title=Hacking the Xbox: An Introduction to Reverse Engineering |publisher=[[No Starch Press]] |year=2003 |isbn=9781593270292 |series=No Starch Press Series |publication-date=2003 |page=[https://archive.org/details/Hacking_the_Xbox_An_Introduction_to_Reverse_Engineering_2003_No_Starch_Press/page/n123 111] |quote=[...] the keystream generator [...] can be thought of as a cryptographic pseudo-random number generator (CPRNG). |author1-link=Andrew Huang (hacker) |access-date=2013-10-24}}</ref> छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी) है जिसमें ऐसे गुण हैं जो इसे क्रिप्टोग्राफी में उपयोग के लिए उपयुक्त बनाते हैं। इसे क्रिप्टोग्राफ़िक रैंडम नंबर जेनरेटर (सीआरएनजी) के रूप में भी जाना जाता है।<ref>{{Cite web |last=Dufour |first=Cédric |title=वर्चुअल मशीनों में एन्ट्रापी और उचित यादृच्छिक संख्या निर्माण कैसे सुनिश्चित करें|url=https://www.exoscale.com/syslog/random-numbers-generation-in-virtual-machines/ |website=Exoscale}}</ref><ref>{{Cite web |title=/dev/random Is More Like /dev/urandom With Linux 5.6 - Phoronix |url=https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.6-Random-Rework |website=www.phoronix.com}}</ref> जिसकी अपेक्षा यादृच्छिक संख्या पीढ़ी से की जा सकती है | क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर (सीएसपीआरएनजी) या क्रिप्टोग्राफ़िक छद्म यादृच्छिक संख्या जनरेटर (सीपीआरएनजी)<ref>{{cite book |last1=Huang |first1=Andrew |url=https://archive.org/details/Hacking_the_Xbox_An_Introduction_to_Reverse_Engineering_2003_No_Starch_Press |title=Hacking the Xbox: An Introduction to Reverse Engineering |publisher=[[No Starch Press]] |year=2003 |isbn=9781593270292 |series=No Starch Press Series |publication-date=2003 |page=[https://archive.org/details/Hacking_the_Xbox_An_Introduction_to_Reverse_Engineering_2003_No_Starch_Press/page/n123 111] |quote=[...] the keystream generator [...] can be thought of as a cryptographic pseudo-random number generator (CPRNG). |author1-link=Andrew Huang (hacker) |access-date=2013-10-24}}</ref> छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी) है जिसमें ऐसे गुण हैं जो इसे क्रिप्टोग्राफी में उपयोग के लिए उपयुक्त बनाते हैं। इसे क्रिप्टोग्राफ़िक रैंडम नंबर जेनरेटर (सीआरएनजी) के रूप में भी जाना जाता है।<ref>{{Cite web |last=Dufour |first=Cédric |title=वर्चुअल मशीनों में एन्ट्रापी और उचित यादृच्छिक संख्या निर्माण कैसे सुनिश्चित करें|url=https://www.exoscale.com/syslog/random-numbers-generation-in-virtual-machines/ |website=Exoscale}}</ref><ref>{{Cite web |title=/dev/random Is More Like /dev/urandom With Linux 5.6 - Phoronix |url=https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.6-Random-Rework |website=www.phoronix.com}}</ref> जिसकी अपेक्षा सत्य विरुद्ध छद्म-यादृच्छिक यादृच्छिक संख्या पीढ़ी से की जा सकती है । | ||
सामान्य पीआरएनजी की आवश्यकताएं क्रिप्टोग्राफ़िक रूप से सुरक्षित पीआरएनजी से भी संतुष्ट होती हैं, किन्तु इसका विपरीत सत्य नहीं है। सीएसपीआरएनजी आवश्यकताएँ दो समूहों में आती हैं: प्रथम, कि वे सांख्यिकीय [[यादृच्छिकता परीक्षण]] पास करते हैं; एवं दूसरी बात, कि वे गंभीर | सामान्य पीआरएनजी की आवश्यकताएं क्रिप्टोग्राफ़िक रूप से सुरक्षित पीआरएनजी से भी संतुष्ट होती हैं, किन्तु इसका विपरीत सत्य नहीं है। सीएसपीआरएनजी आवश्यकताएँ दो समूहों में आती हैं: प्रथम, कि वे सांख्यिकीय [[यादृच्छिकता परीक्षण]] पास करते हैं; एवं दूसरी बात, कि वे गंभीर अटैक के अंतर्गत उचित प्रकार से टिके रहते हैं, तब भी जब उनकी प्रारंभिक या प्रचलित स्थिति का भाग किसी अटैकर के लिए उपलब्ध हो जाता है। | ||
* प्रत्येक सीएसपीआरएनजी को [[अगले बिट परीक्षण|अग्रिम बिट परीक्षण]] को पूर्ण करना चाहिए। अर्थात, यादृच्छिक अनुक्रम के पूर्व <var>k</var> बिट्स को देखते हुए, कोई बहुपद-समय एल्गोरिदम नहीं है जो | * प्रत्येक सीएसपीआरएनजी को [[अगले बिट परीक्षण|अग्रिम बिट परीक्षण]] को पूर्ण करना चाहिए। अर्थात, यादृच्छिक अनुक्रम के पूर्व <var>k</var> बिट्स को देखते हुए, कोई बहुपद-समय एल्गोरिदम नहीं है जो (<var>k</var>+1) बिट की भविष्यवाणी कर सके जिसमें सफलता की संभावना 50% से नगण्य रूप से उत्तम है।<ref name="katz">{{cite book |last1=Katz|first1=Jonathan|last2=Lindell|first2=Yehuda|date=2008|title=आधुनिक क्रिप्टोग्राफी का परिचय|url=https://archive.org/details/Introduction_to_Modern_Cryptography|publisher=CRC press|page=[https://archive.org/details/Introduction_to_Modern_Cryptography/page/n88 70]|isbn= 978-1584885511}}</ref> [[एंड्रयू याओ]] ने 1982 में प्रमाणित किया कि अग्रिम-बिट परीक्षण पास करने वाला जनरेटर यादृच्छिकता के लिए अन्य सभी बहुपद-समय सांख्यिकीय परीक्षण पास कर लेगा।<ref name="yao82">[[Andrew Chi-Chih Yao]]. [https://www.di.ens.fr/users/phan/secuproofs/yao82.pdf Theory and applications of trapdoor functions]. In Proceedings of the 23rd IEEE Symposium on Foundations of Computer Science, 1982.</ref> | ||
* प्रत्येक सीएसपीआरएनजी को राज्य अनुबंध विस्तार का सामना करना चाहिए। इस घटना में कि इसकी स्थिति का भाग या पूर्ण भाग प्रकट हो गया है (या उचित रूप से अनुमान लगाया गया है), रहस्योद्घाटन से पूर्व यादृच्छिक संख्याओं की धारा का पुनर्निर्माण करना असंभव होना चाहिए। इसके अतिरिक्त, यदि चलते समय कोई एन्ट्रापी इनपुट है, तो सीएसपीआरएनजी स्थिति की भविष्य की स्थितियों की भविष्यवाणी करने के लिए इनपुट की स्थिति के ज्ञान का उपयोग करना संभव नहीं होना चाहिए। | * प्रत्येक सीएसपीआरएनजी को राज्य अनुबंध विस्तार का सामना करना चाहिए। इस घटना में कि इसकी स्थिति का कोई भाग या पूर्ण भाग प्रकट हो गया है (या उचित रूप से अनुमान लगाया गया है), रहस्योद्घाटन से पूर्व यादृच्छिक संख्याओं की धारा का पुनर्निर्माण करना असंभव होना चाहिए। इसके अतिरिक्त, यदि चलते समय कोई एन्ट्रापी इनपुट है, तो सीएसपीआरएनजी स्थिति की भविष्य की स्थितियों की भविष्यवाणी करने के लिए इनपुट की स्थिति के ज्ञान का उपयोग करना संभव नहीं होना चाहिए। | ||
:: उदाहरण: यदि विचाराधीन सीएसपीआरएनजी बाइनरी विस्तार में किसी अज्ञात बिंदु से प्रारम्भ करके क्रम में | :: उदाहरण: यदि विचाराधीन सीएसपीआरएनजी बाइनरी विस्तार में किसी अज्ञात बिंदु से प्रारम्भ करके क्रम में π के बिट्स की गणना करके आउटपुट उत्पन्न करता है, तो यह अग्रिम-बिट परीक्षण को उचित प्रकार से संतुष्ट कर सकता है एवं इस प्रकार सांख्यिकीय रूप से यादृच्छिक हो सकता है, क्योंकि π यादृच्छिक अनुक्रम प्रतीत होता है। (उदाहरण के लिए, यदि π [[सामान्य संख्या]] है तो इसका उत्तरदायित्व होगा।) चूँकि, यह एल्गोरिदम क्रिप्टोग्राफ़िक रूप से सुरक्षित नहीं है; अटैकर जो यह निर्धारित करता है कि π का कौन सा बिट (अर्थात एल्गोरिदम की स्थिति) वर्तमान में उपयोग में है, वह सभी पूर्ववर्ती बिट्स की गणना करने में भी सक्षम होता है। | ||
अधिकांश पीआरएनजी सीएसपीआरएनजी के रूप में उपयोग के लिए उपयुक्त नहीं हैं एवं दोनों ही विषयों में विफल हो | अधिकांश पीआरएनजी सीएसपीआरएनजी के रूप में उपयोग के लिए उपयुक्त नहीं हैं एवं दोनों ही विषयों में विफल हो जाते हैं। सबसे पूर्व, जबकि अधिकांश पीआरएनजी आउटपुट मिश्रित सांख्यिकीय परीक्षणों के लिए यादृच्छिक दिखाई देते हैं, वे निर्धारित रिवर्स इंजीनियरिंग का विरोध नहीं करते हैं। विशिष्ट सांख्यिकीय परीक्षण विशेष रूप से ऐसे पीआरएनजी से जुड़े हुए प्राप्त हो सकते हैं जो यादृच्छिक संख्याओं को वास्तव में यादृच्छिक नहीं दिखाते हैं। दूसरा, अधिकांश पीआरएनजी के लिए, जब उनकी स्थिति का स्पष्टीकरण हो जाता है, तो सभी पूर्व यादृच्छिक संख्याओं को पूर्वव्यापी किया जा सकता है, जिससे अटैकर को सभी पूर्व संदेशों के साथ-साथ भविष्य के संदेशों को भी पढ़ने की अनुमति मिलती है। | ||
सीएसपीआरएनजी को इस प्रकार के [[क्रिप्ट विश्लेषण]] का विरोध करने के लिए स्पष्ट रूप से डिज़ाइन किया गया है। | सीएसपीआरएनजी को इस प्रकार के [[क्रिप्ट विश्लेषण]] का विरोध करने के लिए स्पष्ट रूप से डिज़ाइन किया गया है। | ||
==परिभाषाएँ== | ==परिभाषाएँ== | ||
एसिम्प्टोटिक सुरक्षा में, नियतात्मक बहुपद समय गणना योग्य कार्यों | एसिम्प्टोटिक सुरक्षा में, नियतात्मक बहुपद समय गणना योग्य कार्यों <math>G_k\colon\{0,1\}^k\to\{0,1\}^{p(k)}</math>का सदस्य कुछ बहुपद {{mvar|p}} के लिए, छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी, या कुछ संदर्भों में पीआरजी) है, यदि यह अपने इनपुट <math>p(k) > k</math> ( किसी {{mvar|k}} के लिए ) की लंबाई बढ़ाता है, एवं यदि इसका आउटपुट वास्तविक यादृच्छिकता से [[कम्प्यूटेशनल अप्रभेद्यता]] है, अर्थात किसी भी संभाव्य बहुपद समय एल्गोरिदम {{mvar|A}} के लिए, जो विभेदक के रूप में 1 या 0 को आउटपुट करता है, | ||
: <math>\left|\Pr_{x\gets\{0,1\}^k}[A(G(x))=1] - \Pr_{r\gets\{0,1\}^{p(k)}}[A(r)=1]\right| < \mu(k)</math> | : <math>\left|\Pr_{x\gets\{0,1\}^k}[A(G(x))=1] - \Pr_{r\gets\{0,1\}^{p(k)}}[A(r)=1]\right| < \mu(k)</math> | ||
कुछ [[नगण्य कार्य]] | कुछ [[नगण्य कार्य]] <math>\mu</math> के लिए,<ref>{{citation|last1=Goldreich|first1=Oded|title=Foundations of cryptography I: Basic Tools|date=2001|publisher=Cambridge University Press|location=Cambridge|isbn=978-0-511-54689-1}}, def 3.3.1.</ref> (संकेतन <math>x\gets X</math> तात्पर्य है कि {{mvar|x}} का समुच्चय {{mvar|X}} से यादृच्छिक एवं समान रूप से चयन होता है।) | ||
समतुल्य लक्षण वर्णन है: किसी भी फलन सदस्य | समतुल्य लक्षण वर्णन है: किसी भी फलन सदस्य <math>G_k\colon\{0,1\}^k\to\{0,1\}^{p(k)}</math> के लिए, {{mvar|G}} पीआरएनजी है यदि एवं केवल यदि {{mvar|G}} के अग्रिम आउटपुट बिट की भविष्यवाणी बहुपद समय एल्गोरिथ्म द्वारा नहीं की जा सकती है।<ref>{{citation|last1=Goldreich|first1=Oded|title=Foundations of cryptography I: Basic Tools|date=2001|publisher=Cambridge University Press|location=Cambridge|isbn=978-0-511-54689-1}}, Theorem 3.3.7.</ref>ब्लॉक लंबाई <math>t(k)</math> के साथ फॉरवर्ड-सुरक्षित पीआरएनजी <math>G_k\colon\{0,1\}^k\to\{0,1\}^k\times\{0,1\}^{t(k)}</math> पीआरएनजी है, जहां इनपुट स्ट्रिंग <math>s_i</math> है, लंबाई {{mvar|k}} के साथ अवधि {{mvar|i}} पर वर्तमान स्थिति है, एवं आउटपुट (<math>s_{i+1}</math>, <math>y_i</math>) में अग्रिम राज्य सम्मिलित <math>s_{i+1}</math>है एवं अवधि {{mvar|i}} का छद्म यादृच्छिक आउटपुट ब्लॉक <math>y_i</math>, जो निम्नलिखित अर्थों में राज्य अनुबंध विस्तार का सामना करता है। यदि प्रारंभिक अवस्था <math>s_1</math>का <math>\{0,1\}^k</math> से यादृच्छिक एवं समान रूप से चयन होता है , पुनः किसी {{mvar|i}} के लिए, क्रम <math>(y_1,y_2,\dots,y_i,s_{i+1})</math>,<math>(r_1,r_2,\dots,r_i,s_{i+1})</math> से कम्प्यूटेशनल रूप से अप्रभेद्य होना चाहिए, जिसमें <math>r_i</math>, <math>\{0,1\}^{t(k)}</math>से समान एवं यादृच्छिक रूप से चयनित होते हैं।<ref>{{citation|last1=Dodis|first1=Yevgeniy|title=Lecture 5 Notes of Introduction to Cryptography|url=http://cs.nyu.edu/courses/fall08/G22.3210-001/lect/lecture5.pdf|access-date=3 January 2016}}, def 4.</ref>कोई भी पीआरएनजी <math>G\colon\{0,1\}^k\to\{0,1\}^{p(k)}</math> ब्लॉक लंबाई <math>p(k)-k</math> के साथ फॉरवर्ड सुरक्षित पीआरएनजी में इसके आउटपुट को अग्रिम स्थिति एवं वास्तविक आउटपुट में विभाजित करके परिवर्तित किया जा सकता है। यह सेटिंग <math>G(s) = G_0(s)\Vert G_1(s)</math> द्वारा किया जाता है, जिसमें <math>|G_0(s)| = |s| = k</math> एवं <math>|G_1(s)| = p(k)-k</math>; तब अग्रिम राज्य के रूप में <math>G_0</math> के साथ {{mvar|G}} फॉरवर्ड सुरक्षित पीआरएनजी है एवं <math>G_1</math> वर्तमान अवधि के छद्म यादृच्छिक आउटपुट ब्लॉक के रूप में है। | ||
==एंट्रॉपी निष्कर्षण== | ==एंट्रॉपी निष्कर्षण== | ||
{{main| | {{main|यादृच्छिकता निकालने वाला}} | ||
संथा एवं वज़ीरानी ने | संथा एवं वज़ीरानी ने प्रमाणित किया कि शक्तिहीन यादृच्छिकता वाली कई बिट धाराओं को उच्च गुणवत्ता वाली अर्ध-यादृच्छिक बिट स्ट्रीम उत्पन्न करने के लिए जोड़ा जा सकता है।<ref name=santha-vazirani> | ||
{{cite conference | {{cite conference | ||
| author = Miklos Santha, Umesh V. Vazirani | | author = Miklos Santha, Umesh V. Vazirani | ||
Line 47: | Line 47: | ||
| isbn = 0-8186-0591-X | | isbn = 0-8186-0591-X | ||
| access-date = 2006-11-29 | | access-date = 2006-11-29 | ||
}}</ref> | }}</ref>इससे पूर्व भी, [[जॉन वॉन न्यूमैन]] ने प्रमाणित किया था कि सरल एल्गोरिदम किसी भी बिट स्ट्रीम में अधिक मात्रा में पूर्वाग्रह को दूर कर सकता है,<ref name=neumann-random> | ||
इससे पूर्व भी, [[जॉन वॉन न्यूमैन]] ने | |||
{{cite book | {{cite book | ||
| author = John von Neumann | | author = John von Neumann | ||
Line 58: | Line 57: | ||
| chapter = Various techniques for use in connection with random digits | | chapter = Various techniques for use in connection with random digits | ||
| isbn = 0-08-009566-6 | | isbn = 0-08-009566-6 | ||
}}</ref> जिसे संथा-वज़ीरानी डिज़ाइन के किसी भी | }}</ref> जिसे संथा-वज़ीरानी डिज़ाइन के किसी भी परिवर्तन का उपयोग करने से पूर्व प्रत्येक बिट स्ट्रीम पर प्रस्तावित किया जाना चाहिए। | ||
==डिज़ाइन== | ==डिज़ाइन== | ||
नीचे | नीचे दिए गए विचार में, सीएसपीआरएनजी डिज़ाइन को तीन वर्गों में विभाजित किया गया है: | ||
# जो क्रिप्टोग्राफ़िक प्राइमेटिव्स जैसे [[ सिफ़र |सिफ़र]] एवं [[क्रिप्टोग्राफ़िक हैश]] पर आधारित हैं, | # जो क्रिप्टोग्राफ़िक प्राइमेटिव्स जैसे [[ सिफ़र |सिफ़र]] एवं [[क्रिप्टोग्राफ़िक हैश]] पर आधारित हैं, | ||
# जो गणितीय समस्याओं पर आधारित हैं | # जो गणितीय समस्याओं पर आधारित हैं जिन्हें कठिन माना जाता है, एवं | ||
# विशेष प्रयोजन डिजाइन है। | # विशेष प्रयोजन डिजाइन है। | ||
उत्तरार्द्ध प्रायः उपलब्ध होने पर अतिरिक्त एन्ट्रापी का परिचय देता है एवं, | उत्तरार्द्ध प्रायः उपलब्ध होने पर अतिरिक्त एन्ट्रापी का परिचय देता है एवं, कठोरता से बोलते हुए, शुद्ध छद्म यादृच्छिक संख्या जनरेटर नहीं होते हैं, क्योंकि उनका आउटपुट पूर्ण रूप से से उनकी प्रारंभिक स्थिति से निर्धारित नहीं होता है। प्रारंभिक स्थिति से अनुबंध होने पर भी यह जोड़ हमलों को रोक सकता है। | ||
===क्रिप्टोग्राफ़िक आदिमों पर आधारित डिज़ाइन=== | ===क्रिप्टोग्राफ़िक आदिमों पर आधारित डिज़ाइन=== | ||
* सुरक्षित [[ब्लॉक सिफर]] [[ऑपरेशन के सिफर मोड को ब्लॉक करें]] चलाकर सीएसपीआरएनजी में परिवर्तित किया जा सकता है। यह यादृच्छिक कुंजी चुनकर एवं 0 को एन्क्रिप्ट करके, पुनः 1 को एन्क्रिप्ट करके, पुनः 2 को एन्क्रिप्ट करके आदि द्वारा किया जाता है। काउंटर को शून्य के अतिरिक्त किसी अन्य | * सुरक्षित [[ब्लॉक सिफर]] को [[ऑपरेशन के सिफर मोड को ब्लॉक करें|काउंटर मोड में]] चलाकर सीएसपीआरएनजी में परिवर्तित किया जा सकता है। यह यादृच्छिक कुंजी चुनकर एवं 0 को एन्क्रिप्ट करके, पुनः 1 को एन्क्रिप्ट करके, पुनः 2 को एन्क्रिप्ट करके आदि द्वारा किया जाता है। काउंटर को शून्य के अतिरिक्त किसी अन्य नंबर पर भी प्रारम्भ किया जा सकता है। एन-बिट ब्लॉक सिफर मानते हुए आउटपुट को लगभग 2<sup>n/2</sup> के पश्चात यादृच्छिक डेटा से भिन्न किया जा सकता है ब्लॉक करता है, क्योंकि [[जन्मदिन की समस्या]] के पश्चात, उस बिंदु पर टकराने वाले ब्लॉक की संभावना बननी चाहिए, जबकि सीटीआर मोड में ब्लॉक सिफर कभी भी समान ब्लॉक को आउटपुट नहीं करता है। 64-बिट ब्लॉक सिफर के लिए यह सुरक्षित आउटपुट आकार को कुछ गीगाबाइट तक सीमित करता है,128-बिट ब्लॉक के साथ यह सीमा इतनी बड़ी है कि सामान्य अनुप्रयोगों को प्रभावित नहीं करती है। चूँकि, जब अकेले उपयोग किया जाता है तो यह सीएसपीआरएनजी के सभी मानदंडों को पूर्ण नहीं करता है (जैसा कि ऊपर बताया गया है) क्योंकि यह राज्य अनुबंध एक्सटेंशन के विरुद्ध शक्तिशाली नहीं है: राज्य के ज्ञान (इस विषय में काउंटर एवं कुंजी) के साथ आप सभी पूर्व आउटपुट की भविष्यवाणी कर सकते हैं। | ||
* काउंटर का क्रिप्टोग्राफ़िक रूप से सुरक्षित [[क्रिप्टोग्राफ़िक हैश फ़ंक्शन|क्रिप्टोग्राफ़िक हैश फलन]] कुछ विषयों में | * काउंटर का क्रिप्टोग्राफ़िक रूप से सुरक्षित [[क्रिप्टोग्राफ़िक हैश फ़ंक्शन|क्रिप्टोग्राफ़िक हैश फलन]] कुछ विषयों में उत्तम सीएसपीआरएनजी के रूप में भी कार्य कर सकता है। ऐसे में यह भी जरूरी है कि इस काउंटर का प्रारंभिक मूल्य यादृच्छिक एवं अप्रत्यक्ष हो, चूँकि, इस विधि से उपयोग के लिए इन एल्गोरिदम का कम अध्ययन किया गया है, एवं कम से कम कुछ लेखक इस उपयोग के विरुद्ध चेतावनी देते हैं।<ref name=Malicious_Cryptography> | ||
{{cite book | {{cite book | ||
| author = Adam Young, Moti Yung | | author = Adam Young, Moti Yung | ||
Line 80: | Line 79: | ||
| isbn = 978-0-7645-4975-5 | | isbn = 978-0-7645-4975-5 | ||
}}</ref> | }}</ref> | ||
* अधिकांश [[ धारा सिफर ]] बिट्स की | * अधिकांश [[ धारा सिफर |धारा सिफर]] बिट्स की छद्म यादृच्छिक स्ट्रीम उत्पन्न करके कार्य करते हैं जो [[सादे पाठ|प्लेनटेक्स्ट]] के साथ संयुक्त (लगभग हमेशा [[बिटवाइज़ XOR]]ed) होते हैं; काउंटर पर सिफर चलाने से संभवतः लंबी अवधि के साथ नई छद्म यादृच्छिक धारा वापस आ जाएगी। सिफर केवल तभी सुरक्षित हो सकता है यदि मूल स्ट्रीम उचित सीएसपीआरएनजी है, चूँकि यह आवश्यक नहीं है ([[RC4 सिफर]] देखें)। पुनः, प्रारंभिक अवस्था को अप्रत्यक्ष रखा जाना चाहिए। | ||
===संख्या-सैद्धांतिक डिज़ाइन=== | ===संख्या-सैद्धांतिक डिज़ाइन=== | ||
* [[ब्लम ब्लम शब]] एल्गोरिदम में [[द्विघात अवशिष्टता समस्या]] की कठिनाई के आधार पर सुरक्षा प्रमाण है। चूँकि उस समस्या का निवारण करने का | * [[ब्लम ब्लम शब]] एल्गोरिदम में [[द्विघात अवशिष्टता समस्या]] की कठिनाई के आधार पर सुरक्षा प्रमाण है। चूँकि उस समस्या का निवारण करने का ज्ञात उपाय मापांक का गुणनखंड करना है, सामान्यतः यह माना जाता है कि [[पूर्णांक गुणनखंडन]] की कठिनाई ब्लम ब्लम शब एल्गोरिथ्म के लिए सशर्त सुरक्षा प्रमाण प्रदान करती है। चूँकि एल्गोरिथ्म बहुत अक्षम है एवं इसलिए अव्यावहारिक है जब तक कि अत्यधिक सुरक्षा की आवश्यकता न हो। | ||
* ब्लम-मिकाली एल्गोरिथ्म में [[असतत लघुगणक समस्या]] की कठिनाई के आधार पर सुरक्षा प्रमाण है, किन्तु यह बहुत अक्षम भी है। | * ब्लम-मिकाली एल्गोरिथ्म में [[असतत लघुगणक समस्या]] की कठिनाई के आधार पर सुरक्षा प्रमाण है, किन्तु यह बहुत अक्षम भी है। | ||
* [[सर्टिकॉम]] के डेनियल ब्राउन ने [[दोहरी ईसी डीआरबीजी]] के लिए 2006 का सुरक्षा प्रमाण लिखा है, जो डिसीजनल डिफी-हेलमैन धारणा की अनुमानित कठोरता, | * [[सर्टिकॉम]] के डेनियल ब्राउन ने [[दोहरी ईसी डीआरबीजी]] के लिए 2006 का सुरक्षा प्रमाण लिखा है, जो डिसीजनल डिफी-हेलमैन धारणा की अनुमानित कठोरता, एक्स-लघुगणक समस्या एवं ट्रंकेटेड पॉइंट समस्या पर आधारित है। 2006 का प्रमाण Dual_EC_DRBG स्पष्ट रूप से कम आउटलेन मानता है एवं Dual_EC_DRBG मानक में P एवं Q (जो 2013 में एनएसए द्वारा संभवतः बैकडोर किए जाने के रूप में सामने आए थे) को अन्य-बैकडोर मानों से परिवर्तित कर दिया गया है। | ||
===विशेष डिज़ाइन=== | ===विशेष डिज़ाइन=== | ||
ऐसे कई व्यावहारिक पीआरएनजी हैं जिन्हें क्रिप्टोग्राफ़िक रूप से सुरक्षित बनाने के लिए डिज़ाइन किया गया है, जिनमें सम्मिलित हैं | ऐसे कई व्यावहारिक पीआरएनजी हैं जिन्हें क्रिप्टोग्राफ़िक रूप से सुरक्षित बनाने के लिए डिज़ाइन किया गया है, जिनमें सम्मिलित हैं | ||
* [[यारो एल्गोरिथ्म]] जो इसके इनपुट की एन्ट्रोपिक गुणवत्ता का मूल्यांकन करने का प्रयास करता है। दिसंबर 2019 तक यारो का उपयोग [[macOS]] एवं अन्य Apple OS में किया जाता था। तब से Apple ने | * [[यारो एल्गोरिथ्म]] जो इसके इनपुट की एन्ट्रोपिक गुणवत्ता का मूल्यांकन करने का प्रयास करता है। दिसंबर 2019 तक यारो का उपयोग [[macOS]] एवं अन्य Apple OS में किया जाता था। तब से Apple ने फोर्टुना पर स्विच कर लिया है। (देखें/देव/यादृच्छिक)। | ||
*[[ChaCha20]] एल्गोरिथ्म ने [[OpenBSD]] (संस्करण 5.4) | *[[ChaCha20]] एल्गोरिथ्म ने [[OpenBSD|ओपनबीएसडी]] (संस्करण 5.4),<ref>{{cite web |publisher=CVS |url=http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libc/crypt/arc4random.c?rev=1.25&content-type=text/x-cvsweb-markup |title=CVS log of arc4random.c |date=October 1, 2013}}</ref> [[नेटबीएसडी]] (संस्करण 7.0),<ref>{{cite web |publisher=CVS |url=http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/gen/arc4random.c?rev=1.26&content-type=text/x-cvsweb-markup&only_with_tag=MAIN |title=CVS log of arc4random.c |date=November 16, 2014}}</ref> एवं फ्रीबीएसडी (संस्करण 12.0)में [[RC4]] को प्रतिस्थापित कर दिया।<ref>{{cite web |url = https://www.freebsd.org/releases/12.0R/relnotes.html#userland-libraries |title = FreeBSD 12.0-RELEASE Release Notes: Runtime Libraries and API |date = 5 March 2019 |website = FreeBSD.org |access-date = 24 August 2019 }}</ref> | ||
* संस्करण 4.8 में | * संस्करण 4.8 में ChaCha20 ने [[लिनक्स]] में [[SHA-1]] को भी प्रतिस्थापित कर दिया।<ref>{{cite web |publisher=Github |url=https://github.com/torvalds/linux/blob/e192be9d9a30555aae2ca1dc3aad37cba484cd4a/drivers/char/random.c |title=रैंडम.सी की जीथब प्रतिबद्धता|date=July 2, 2016}}</ref> | ||
* फोर्टुना (पीआरएनजी), यारो का उत्तराधिकारी, जो अपने इनपुट की एन्ट्रोपिक गुणवत्ता का मूल्यांकन करने का प्रयास नहीं करता है। फ्रीबीएसडी में फ़ोर्टुना का उपयोग किया जाता है। दिसंबर 2019 | * फोर्टुना (पीआरएनजी), यारो का उत्तराधिकारी, जो अपने इनपुट की एन्ट्रोपिक गुणवत्ता का मूल्यांकन करने का प्रयास नहीं करता है। फ्रीबीएसडी में फ़ोर्टुना का उपयोग किया जाता है। दिसंबर 2019 में अधिकांश या सभी Apple OS के लिए Apple को फोर्टुना में परिवर्तित कर दिया गया है। | ||
* [[माइक्रोसॉफ्ट]] के [[क्रिप्टोग्राफ़िक एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस]] में प्रदान किया गया फलन [[CryptGenRandom]] | * [[माइक्रोसॉफ्ट]] के [[क्रिप्टोग्राफ़िक एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस]] में प्रदान किया गया फलन [[CryptGenRandom|क्रिप्टजेनरैंडम है।]] | ||
* | * इसाक (सिफर) [[RC4]] सिफर के प्रकार पर आधारित है। | ||
* [[मानक और प्रौद्योगिकी का राष्ट्रीय संस्थान|मानक एवं प्रौद्योगिकी का राष्ट्रीय संस्थान]] | * [[मानक और प्रौद्योगिकी का राष्ट्रीय संस्थान|मानक एवं प्रौद्योगिकी का राष्ट्रीय संस्थान]] सांख्यिकीय परीक्षण सूट के आधार पर [[विकासवादी एल्गोरिदम]] के साथ रैखिक-प्रतिक्रिया शिफ्ट रजिस्टर को ट्यून किया गया है।<ref>{{cite web |publisher=NIST |url=http://csrc.nist.gov/publications/nistpubs/800-22-rev1a/SP800-22rev1a.pdf |title=क्रिप्टोग्राफ़िक अनुप्रयोगों के लिए यादृच्छिक और छद्म यादृच्छिक संख्या जेनरेटर के लिए एक सांख्यिकीय परीक्षण सूट|series=Special Publication |date=April 2010}}</ref><ref>{{cite journal |first1=A. |last1=Poorghanad |first2=A. |last2=Sadr |first3=A. |last3=Kashanipour |title=विकासवादी तरीकों का उपयोग करके उच्च गुणवत्ता वाली छद्म यादृच्छिक संख्या उत्पन्न करना|journal=IEEE Congress on Computational Intelligence and Security |volume=9 |pages=331–335 |date=May 2008 |url=http://www.computer.org/csdl/proceedings/cis/2008/3508/01/3508a331.pdf}}</ref> | ||
* | * RC4-आधारित यादृच्छिक संख्या जनरेटर | ||
* | * एईएस-सीटीआर डीआरबीजी का उपयोग प्रायः एईएस एन्क्रिप्शन का उपयोग करने वाले प्रणाली में यादृच्छिक संख्या जनरेटर के रूप में किया जाता है।<ref>{{cite book |first1=David |last1=Kleidermacher |first2=Mike |last2=Kleidermacher |url=https://books.google.com/books?id=E9hBXN-HK1cC |title=Embedded Systems Security: Practical Methods for Safe and Secure Software and Systems Development |publisher=Elsevier |date=2012 |page=256|isbn=9780123868862 }}</ref><ref> | ||
{{cite journal |first1=George |last1=Cox |first2=Charles |last2=Dike |first3=DJ |last3=Johnston |url=http://www.hotchips.org/wp-content/uploads/hc_archives/hc23/HC23.18.2-security/HC23.18.210-Random-Numbers-Cox-Intel-e.pdf |title=Intel's Digital Random Number Generator (DRNG) |date=2011}}</ref> | {{cite journal |first1=George |last1=Cox |first2=Charles |last2=Dike |first3=DJ |last3=Johnston |url=http://www.hotchips.org/wp-content/uploads/hc_archives/hc23/HC23.18.2-security/HC23.18.210-Random-Numbers-Cox-Intel-e.pdf |title=Intel's Digital Random Number Generator (DRNG) |date=2011}}</ref> | ||
* अमेरिकी राष्ट्रीय मानक संस्थान X9.17 मानक (वित्तीय संस्थान कुंजी प्रबंधन | * अमेरिकी राष्ट्रीय मानक संस्थान X9.17 मानक (वित्तीय संस्थान कुंजी प्रबंधन), जिसे [[संघीय सूचना प्रसंस्करण मानक]] मानक के रूप में भी अपनाया गया है। यह इनपुट के रूप में [[ट्रिपल डेस]] (कुंजी विकल्प 2) कुंजी बंडल k एवं (प्रारंभिक मान) 64-बिट [[यादृच्छिक बीज|यादृच्छिक सीड]] s लेता है।<ref>{{cite book |url=http://www.cacr.math.uwaterloo.ca/hac |title=एप्लाइड क्रिप्टोग्राफी की हैंडबुक|first1=Alfred |last1=Menezes |first2=Paul |last2=van Oorschot |first3=Scott |last3=Vanstone |author-link1=Alfred Menezes |author-link2=Paul van Oorschot |author-link3=Scott Vanstone |publisher=CRC Press |year=1996 |chapter=Chapter 5: Pseudorandom Bits and Sequences |chapter-url=http://www.cacr.math.uwaterloo.ca/hac/about/chap5.pdf}}</ref> प्रत्येक समय यादृच्छिक संख्या की आवश्यकता होती है: | ||
** वर्तमान दिनांक/समय D को अधिकतम संभव रिज़ॉल्यूशन तक प्राप्त करता है। | ** वर्तमान दिनांक/समय D को अधिकतम संभव रिज़ॉल्यूशन तक प्राप्त करता है। | ||
** अस्थायी मान | ** अस्थायी मान {{math|''t'' {{=}} TDEA<sub>''k''</sub>(''D'')}} की गणना करता है। | ||
** यादृच्छिक मान | ** यादृच्छिक मान {{math|''x'' {{=}} TDEA<sub>''k''</sub>(''s'' ⊕ ''t'')}} की गणना करता है, जहां ⊕ बिटवाइज़ [[एकमात्र|मात्र]] को प्रदर्शित करता है। | ||
** | ** सीड {{math|''s'' {{=}} TDEA<sub>''k''</sub>(''x'' ⊕ ''t'')}} को अद्यतन करता है। | ||
: | :प्रौद्योगिकी को किसी भी ब्लॉक सिफर के लिए सरलता से सामान्यीकृत किया जा सकता है; उन्नत एन्क्रिप्शन मानक का विचार दिया गया है।<ref name=Malicious_Cryptography2> | ||
{{cite book | {{cite book | ||
| first1=Adam |last1=Young |first2=Moti |last2=Yung | | first1=Adam |last1=Young |first2=Moti |last2=Yung | ||
Line 118: | Line 117: | ||
कई सीएसपीआरएनजी को मानकीकृत किया गया है। उदाहरण के लिए, | कई सीएसपीआरएनजी को मानकीकृत किया गया है। उदाहरण के लिए, | ||
* | * FIPS186-4<ref>{{Cite web|url=http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf|title=FIPS 186-4}}</ref> | ||
* [[एनआईएसटी एसपी 800-90ए]]: | * [[एनआईएसटी एसपी 800-90ए|NIST SP 800-90A]]: | ||
:इस वापस लिए गए मानक में चार पीआरएनजी हैं। उनमें से दो निर्विवाद | :इस वापस लिए गए मानक में चार पीआरएनजी हैं। उनमें से दो निर्विवाद सिद्ध हैं: सीएसपीआरएनजी जिनका नाम हैश_डीआरबीजी<ref>{{Cite web| url=https://eprint.iacr.org/2007/345.pdf | first=Wilson | last=Kan | title=एनआईएसटी डीआरबीजी में अंतर्निहित मान्यताओं का विश्लेषण| date=September 4, 2007 | access-date=November 19, 2016 }}</ref> एवं एचएमएसी_डीआरबीजी है।<ref>{{Cite web | url = https://www.cs.cmu.edu/~kqy/resources/thesis.pdf | title = The Notorious PRG: Formal verification of the HMAC-DRBG pseudorandom number generator | first = Katherine Qinru | last = Ye | date = April 2016 | access-date=November 19, 2016 }}</ref> | ||
:इस मानक में तीसरा पीआरएनजी, [[सीटीआर डीआरबीजी]], [[काउंटर मोड]] में चलने वाले ब्लॉक सिफर पर आधारित है। इसका डिज़ाइन निर्विवाद है, किन्तु अंतर्निहित ब्लॉक सिफर के [[सुरक्षा स्तर]] की अपेक्षा में | :इस मानक में तीसरा पीआरएनजी, [[सीटीआर डीआरबीजी]], [[काउंटर मोड]] में चलने वाले ब्लॉक सिफर पर आधारित है। इसका डिज़ाइन निर्विवाद है, किन्तु अंतर्निहित ब्लॉक सिफर के [[सुरक्षा स्तर]] की अपेक्षा में अटैक को भेदने के विषय में यह शक्तिहीन प्रमाणित हुआ है, जब इस पीआरएनजी से आउटपुट बिट्स की संख्या अंतर्निहित ब्लॉक सिफर के ब्लॉक आकार की शक्ति से दो से अधिक है।<ref name="CTR_DRBG">{{Cite web | url = http://eprint.iacr.org/2006/379.pdf | title = एनआईएसटी कोडबुक-आधारित नियतात्मक रैंडम बिट जेनरेटर के लिए सुरक्षा सीमाएं| first = Matthew J. | last = Campagna | date = November 1, 2006 | access-date = November 19, 2016 }}</ref> | ||
:जब इस पीआरएनजी से आउटपुट बिट्स की अधिकतम संख्या 2 | :जब इस पीआरएनजी से आउटपुट बिट्स की अधिकतम संख्या 2<sup>ब्लॉकसाइज़</sup> के समान होती है, परिणामी आउटपुट गणितीय रूप से अपेक्षित सुरक्षा स्तर प्रदान करता है जिसे कुंजी आकार उत्पन्न करने की उम्मीद की जाएगी, किन्तु आउटपुट को वास्तविक यादृच्छिक संख्या जनरेटर से अप्रभेद्य नहीं प्रदर्शित किया गया है।<ref name="CTR_DRBG"/>जब इस पीआरएनजी से आउटपुट बिट्स की अधिकतम संख्या इससे कम होती है, तो अपेक्षित सुरक्षा स्तर प्रदान किया जाता है एवं आउटपुट वास्तविक यादृच्छिक संख्या जनरेटर से अप्रभेद्य प्रतीत होता है।<ref name="CTR_DRBG"/> | ||
:अग्रिम संशोधन में यह नोट किया गया है कि CTR_DRBG के लिए दावा की गई [[सुरक्षा ताकत]] उत्पन्न अनुरोधों की कुल संख्या एवं प्रति उत्पन्न अनुरोध प्रदान की गई बिट्स को सीमित करने पर निर्भर करती है। | :अग्रिम संशोधन में यह नोट किया गया है कि CTR_DRBG के लिए दावा की गई [[सुरक्षा ताकत]] उत्पन्न अनुरोधों की कुल संख्या एवं प्रति उत्पन्न अनुरोध प्रदान की गई बिट्स को सीमित करने पर निर्भर करती है। | ||
:इस मानक में चौथे एवं अंतिम पीआरएनजी को डुअल ईसी डीआरबीजी नाम दिया गया है। यह | :इस मानक में चौथे एवं अंतिम पीआरएनजी को डुअल ईसी डीआरबीजी नाम दिया गया है। यह प्रदर्शित किया गया है कि यह क्रिप्टोग्राफ़िक रूप से सुरक्षित नहीं है एवं माना जाता है कि इसमें [[ क्लेप्टोग्राफ़ी |क्लेप्टोग्राफ़ी]] एनएसए बैकडोर है।<ref>{{Cite news| url=http://bits.blogs.nytimes.com/2013/09/10/government-announces-steps-to-restore-confidence-on-encryption-standards/| first=Nicole | last=Perlroth | newspaper=The New York Times | title=सरकार ने एन्क्रिप्शन मानकों पर विश्वास बहाल करने के लिए कदमों की घोषणा की| date= September 10, 2013 | access-date = November 19, 2016 | url-access=limited}}</ref> | ||
* NIST SP 800-90A Rev.1: यह मूलतः NIST SP 800-90A है जिसमें Dual_EC_DRBG | * NIST SP 800-90A Rev.1: यह मूलतः NIST SP 800-90A है जिसमें Dual_EC_DRBG निकाल दिया गया है, एवं यह वापस लिए गए मानक का प्रतिस्थापन है। | ||
* | * ANSI X9.17-1985 परिशिष्ट C | ||
* | * ANSI X9.31-1998 परिशिष्ट A.2.4 | ||
* ANSI X9.62-1998 अनुबंध A.4, ANSI X9.62-2005 द्वारा अप्रचलित, अनुबंध D (HMAC_DRBG) | * ANSI X9.62-1998 अनुबंध A.4, ANSI X9.62-2005 द्वारा अप्रचलित, अनुबंध D (HMAC_DRBG) | ||
[[एनआईएसटी]] द्वारा | [[एनआईएसटी]] द्वारा उचित संदर्भ बनाए रखा जाता है।<ref>{{Cite web |last=Computer Security Division |first=Information Technology Laboratory |title=यादृच्छिक संख्या|url=http://csrc.nist.gov/groups/ST/toolkit/random_number.html |website=CSRC {{!}} NIST |date=24 May 2016 |language=EN-US}}</ref>नए सीएसपीआरएनजी डिज़ाइनों के सांख्यिकीय परीक्षण के लिए भी मानक हैं: | ||
नए सीएसपीआरएनजी डिज़ाइनों के सांख्यिकीय परीक्षण के लिए भी मानक हैं: | * रैंडम एवं छद्म यादृच्छिक संख्या जेनरेटर के लिए सांख्यिकीय परीक्षण सूट, एनआईएसटी विशेष प्रकाशन 800-22 है।<ref>{{Cite journal|url=https://csrc.nist.gov/publications/detail/sp/800-22/rev-1a/final|title=क्रिप्टोग्राफ़िक अनुप्रयोगों के लिए यादृच्छिक और छद्म यादृच्छिक संख्या जेनरेटर के लिए एक सांख्यिकीय परीक्षण सूट|first1=Andrew|last1=Rukhin|first2=Juan|last2=Soto|first3=James|last3=Nechvatal|first4=Miles|last4=Smid|first5=Elaine|last5=Barker|first6=Stefan|last6=Leigh|first7=Mark|last7=Levenson|first8=Mark|last8=Vangel|first9=David|last9=Banks|first10=N.|last10=Heckert|first11=James|last11=Dray|first12=San|last12=Vo|first13=Lawrence|last13=Bassham|date=April 30, 2010|doi=10.6028/NIST.SP.800-22r1a |via=csrc.nist.gov}}</ref> | ||
* रैंडम एवं छद्म यादृच्छिक संख्या जेनरेटर के लिए | |||
'''Dual_EC_DRBG | '''Dual_EC_DRBG पीआरएनजी में एनएसए क्लेप्टोग्राफ़िक बैकडोर''' | ||
{{main| | {{main|दोहरी_ईसी_डीआरबीजी}} | ||
[[अभिभावक]] [[दी न्यू यौर्क टाइम्स]] ने 2013 में रिपोर्ट दी थी कि [[राष्ट्रीय सुरक्षा एजेंसी]] (एनएसए) ने एनआईएसटी एसपी 800-90A के छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी) में [[ पिछला दरवाजा (कंप्यूटिंग) | | [[अभिभावक]] [[दी न्यू यौर्क टाइम्स]] ने 2013 में रिपोर्ट दी थी कि [[राष्ट्रीय सुरक्षा एजेंसी]] (एनएसए) ने एनआईएसटी एसपी 800-90A के छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी) में [[ पिछला दरवाजा (कंप्यूटिंग) |बैकडोर]] दिया था जो एनएसए को एन्क्रिप्टेड सामग्री को Dual_EC_DRBG की सहायता से सरलता से डिक्रिप्ट करने की अनुमति देता है। दोनों पेपर रिपोर्ट करते हैं,<ref name=Guardian>{{cite web|title=Revealed: how US and UK spy agencies defeat internet privacy and security|url=https://www.theguardian.com/world/2013/sep/05/nsa-gchq-encryption-codes-security|work=The Guardian|access-date=7 September 2013|author=James Borger|author2=Glenn Greenwald|date=6 September 2013}}</ref><ref>{{cite news|title=एन.एस.ए. वेब पर गोपनीयता के बुनियादी सुरक्षा उपायों को विफल करने में सक्षम|url=https://www.nytimes.com/2013/09/06/us/nsa-foils-much-internet-encryption.html?pagewanted=all&_r=0|newspaper=The New York Times|access-date=7 September 2013|author=Nicole Perlroth|date=5 September 2013}}</ref>जैसा कि स्वतंत्र सुरक्षा विशेषज्ञों को लंबे समय से संदेह था,<ref>{{cite magazine|title=Did NSA Put a Secret Backdoor in New Encryption Standard?|url=https://www.wired.com/politics/security/commentary/securitymatters/2007/11/securitymatters_1115|magazine=Wired|access-date=7 September 2013|author=Bruce Schneier|date=15 November 2007}}</ref> एनएसए सीएसपीआरएनजी मानक 800-90 में शक्तिहीनता प्रस्तुत कर रहा है; [[ एड्वर्ड स्नोडेन |एड्वर्ड स्नोडेन]] द्वारा गार्जियन को प्रकट किए गए शीर्ष अप्रत्यक्ष प्रपत्रों में से प्रथम बार इसकी पुष्टि की गई है। एनएसए ने 2006 में दुनिया में उपयोग के लिए स्वीकृत एनआईएसटी ड्राफ्ट सुरक्षा मानक के अपने संस्करण को प्राप्त करने के लिए अप्रत्यक्ष रूप से कार्य किया था। प्रकट हुए दस्तावेज़ में कहा गया है कि अंततः, एनएसए मात्र संपादक बन गया था। क्लेप्टोग्राफी बैकडोर की ज्ञात क्षमता एवं Dual_EC_DRBG के साथ अन्य ज्ञात महत्वपूर्ण अभावों के अतिरिक्त, आरएसए सिक्योरिटी जैसी कई कंपनियों ने 2013 में बैकडोर की पुष्टि होने तक Dual_EC_DRBG का उपयोग निरंतर रखा था।<ref name="green">{{cite web|url=http://blog.cryptographyengineering.com/2013/09/rsa-warns-developers-against-its-own.html|title=आरएसए डेवलपर्स को आरएसए उत्पादों का उपयोग न करने की चेतावनी देता है|author=Matthew Green|date=20 September 2013 }}</ref> ऐसा करने के लिए आरएसए सिक्योरिटी को एनएसए से $10 मिलियन का भुगतान प्राप्त हुआ था।<ref name="reuters">{{cite news|url=https://www.reuters.com/article/us-usa-security-rsa-idUSBRE9BJ1C220131220|title=Exclusive: Secret contract tied NSA and security industry pioneer|author=Joseph Menn | work=Reuters|date=20 December 2013}}</ref> | ||
== सुरक्षा | == सुरक्षा फ्लॉस == | ||
===DUHK | ===DUHK अटैक=== | ||
23 अक्टूबर, 2017 को, पेंसिल्वेनिया विश्वविद्यालय एवं [[जॉन्स हॉपकिन्स विश्वविद्यालय]] के [[क्रिप्टोग्राफर]] [[शानन कोहनी]], मैथ्यू डी. ग्रीन एवं [[नादिया हेनिंगर]] ने [[WPA2]] पर DUHK (हार्ड-कोडेड कुंजी का उपयोग न करें) | 23 अक्टूबर, 2017 को, पेंसिल्वेनिया विश्वविद्यालय एवं [[जॉन्स हॉपकिन्स विश्वविद्यालय]] के [[क्रिप्टोग्राफर]] [[शानन कोहनी]], मैथ्यू डी. ग्रीन एवं [[नादिया हेनिंगर]] ने [[WPA2]] पर DUHK (हार्ड-कोडेड कुंजी का उपयोग न करें) अटैक का विवरण प्रस्तुत किया, जहां हार्डवेयर विक्रेता हार्डकोड उपयोग करते हैं। ANSI X9.31 आरएनजी एल्गोरिथ्म के लिए हार्डकोडेड कुंजी, जिसमें कहा गया है कि अटैकर अन्य एन्क्रिप्शन मापदंडों की शोध करने एवं वेब सत्र या [[ आभासी निजी संजाल |आभासी निजी संजाल]] (वीपीएन) कनेक्शन को एन्क्रिप्ट करने के लिए उपयोग की जाने वाली मास्टर एन्क्रिप्शन कुंजी को निकालने के लिए एन्क्रिप्टेड डेटा को बलपूर्वक प्रस्तावित कर सकता है।<ref>{{cite web|url=https://duhkattack.com/paper.pdf|title=विरासती आरएनजी कार्यान्वयन के विरुद्ध व्यावहारिक राज्य पुनर्प्राप्ति हमले|website=duhkattack.com|author1=Shaanan Cohney|author-link=Shaanan Cohney|author2=Matthew D. Green|author2-link=Matthew D. Green|author3=Nadia Heninger|author3-link=Nadia Heninger}}</ref><ref>{{cite web|url=https://it.slashdot.org/story/17/10/25/0047224/duhk-crypto-attack-recovers-encryption-keys-exposes-vpn-connections|title=DUHK क्रिप्टो अटैक एन्क्रिप्शन कुंजी पुनर्प्राप्त करता है, वीपीएन कनेक्शन को उजागर करता है|website=slashdot.org|date=25 October 2017 |access-date=25 October 2017}}</ref> | ||
== जापानी बैंगनी सिफर मशीन == | == जापानी बैंगनी सिफर मशीन == | ||
द्वितीय विश्व युद्ध क्रिप्टोग्राफी के समय, जापान ने राजनयिक संचार के लिए | द्वितीय विश्व युद्ध क्रिप्टोग्राफी के समय, जापान ने राजनयिक संचार के लिए सिफर मशीन का उपयोग किया; संयुक्त राज्य अमेरिका इसे क्रैक करने एवं इसके संदेशों को पढ़ने में सक्षम था, क्योंकि उपयोग किए गए प्रमुख मान अपर्याप्त रूप से यादृच्छिक थे। | ||
==संदर्भ== | ==संदर्भ== | ||
Line 170: | Line 168: | ||
{{DEFAULTSORT:Cryptographically Secure Pseudorandom Number Generator}} | {{DEFAULTSORT:Cryptographically Secure Pseudorandom Number Generator}} | ||
<!-- Categories --> | <!-- Categories --> | ||
[[Category: | [[Category:Articles with hatnote templates targeting a nonexistent page|Cryptographically Secure Pseudorandom Number Generator]] | ||
[[Category:Created On 27/07/2023]] | [[Category:CS1 English-language sources (en)]] | ||
[[Category:CS1 errors]] | |||
[[Category:CS1 maint]] | |||
[[Category:Citation Style 1 templates|M]] | |||
[[Category:Collapse templates|Cryptographically Secure Pseudorandom Number Generator]] | |||
[[Category:Created On 27/07/2023|Cryptographically Secure Pseudorandom Number Generator]] | |||
[[Category:Lua-based templates|Cryptographically Secure Pseudorandom Number Generator]] | |||
[[Category:Machine Translated Page|Cryptographically Secure Pseudorandom Number Generator]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists|Cryptographically Secure Pseudorandom Number Generator]] | |||
[[Category:Pages with script errors|Cryptographically Secure Pseudorandom Number Generator]] | |||
[[Category:Short description with empty Wikidata description|Cryptographically Secure Pseudorandom Number Generator]] | |||
[[Category:Sidebars with styles needing conversion|Cryptographically Secure Pseudorandom Number Generator]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready|Cryptographically Secure Pseudorandom Number Generator]] | |||
[[Category:Templates based on the Citation/CS1 Lua module]] | |||
[[Category:Templates generating COinS|Cite magazine]] | |||
[[Category:Templates generating microformats|Cryptographically Secure Pseudorandom Number Generator]] | |||
[[Category:Templates that add a tracking category|Cryptographically Secure Pseudorandom Number Generator]] | |||
[[Category:Templates that are not mobile friendly|Cryptographically Secure Pseudorandom Number Generator]] | |||
[[Category:Templates that generate short descriptions|Cryptographically Secure Pseudorandom Number Generator]] | |||
[[Category:Templates using TemplateData|Cryptographically Secure Pseudorandom Number Generator]] | |||
[[Category:Webarchive template wayback links|Cryptographically Secure Pseudorandom Number Generator]] | |||
[[Category:Wikipedia fully protected templates|Cite magazine]] | |||
[[Category:Wikipedia metatemplates|Cryptographically Secure Pseudorandom Number Generator]] | |||
[[Category:क्रिप्टोग्राफ़िक आदिम|Cryptographically Secure Pseudorandom Number Generator]] | |||
[[Category:क्रिप्टोग्राफ़िक एल्गोरिदम|Cryptographically Secure Pseudorandom Number Generator]] | |||
[[Category:क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर|Cryptographically Secure Pseudorandom Number Generator]] |
Latest revision as of 17:08, 8 August 2023
क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर (सीएसपीआरएनजी) या क्रिप्टोग्राफ़िक छद्म यादृच्छिक संख्या जनरेटर (सीपीआरएनजी) छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी) है जिसमें ऐसे गुण हैं जो इसे क्रिप्टोग्राफी में उपयोग के लिए उपयुक्त बनाते हैं। इसे क्रिप्टोग्राफ़िक रैंडम नंबर जेनरेटर (सीआरएनजी) के रूप में भी जाना जाता है।
पृष्ठभूमि
अधिकांश क्रिप्टोग्राफी के लिए यादृच्छिक संख्याओं की आवश्यकता होती है, उदाहरण के लिए:
- प्रमुख पीढ़ी
- क्रिप्टोग्राफ़िक गैर
- ईसीडीएसए, आरएसएएसएसए-पीएसएस सहित कुछ हस्ताक्षर योजनाओं में क्रिप्टोग्राफी
इन अनुप्रयोगों के लिए आवश्यक यादृच्छिकता की गुणवत्ता भिन्न-भिन्न होती है। उदाहरण के लिए, कुछ क्रिप्टोग्राफ़िक प्रोटोकॉल में नॉन बनाने के लिए केवल विशिष्टता की आवश्यकता होती है। दूसरी ओर, मास्टर कुंजी के निर्माण के लिए उच्च गुणवत्ता, जैसे अधिक एन्ट्रापी की आवश्यकता होती है। वन-टाइम पैड के विषय में, पूर्ण गोपनीयता की सूचना सैद्धांतिक आश्वाशन केवल तभी मान्य होती है जब मुख्य सामग्री उच्च एन्ट्रापी के साथ सत्य यादृच्छिक स्रोत से आती है, एवं इस प्रकार किसी भी प्रकार का छद्म यादृच्छिक संख्या जनरेटर अपर्याप्त है।
आदर्श रूप से, सीएसपीआरएनजी में यादृच्छिक संख्याओं का निर्माण उच्च गुणवत्ता वाले स्रोत से प्राप्त एन्ट्रापी सामान्यतः ऑपरेटिंग प्रणाली की यादृच्छिकता एपीआईका उपयोग करता है। चूँकि, ऐसी कई प्रकट रूप से स्वतंत्र प्रक्रियाओं में अप्रत्याशित सहसंबंध प्राप्त हुए हैं। सूचना-सैद्धांतिक दृष्टिकोण से, यादृच्छिकता की मात्रा, उत्पन्न की जा सकने वाली एन्ट्रापी, प्रणाली द्वारा प्रदान की गई एन्ट्रापी के समान है। किन्तु कभी-कभी, व्यावहारिक स्थितियों में, उपलब्ध एन्ट्रापी की अपेक्षा में अधिक यादृच्छिक संख्याओं की आवश्यकता होती है। साथ ही, किसी प्रचलित प्रणाली से यादृच्छिकता निकालने की प्रक्रियाएँ वास्तविक व्यवहार में मंद हैं। ऐसे विषयों में, कभी-कभी सीएसपीआरएनजी का उपयोग किया जा सकता है। सीएसपीआरएनजी उपलब्ध एन्ट्रापी को अधिक बिट्स तक विस्तृत कर सकता है।
आवश्यकताएँ
क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर (सीएसपीआरएनजी) या क्रिप्टोग्राफ़िक छद्म यादृच्छिक संख्या जनरेटर (सीपीआरएनजी)[1] छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी) है जिसमें ऐसे गुण हैं जो इसे क्रिप्टोग्राफी में उपयोग के लिए उपयुक्त बनाते हैं। इसे क्रिप्टोग्राफ़िक रैंडम नंबर जेनरेटर (सीआरएनजी) के रूप में भी जाना जाता है।[2][3] जिसकी अपेक्षा सत्य विरुद्ध छद्म-यादृच्छिक यादृच्छिक संख्या पीढ़ी से की जा सकती है ।
सामान्य पीआरएनजी की आवश्यकताएं क्रिप्टोग्राफ़िक रूप से सुरक्षित पीआरएनजी से भी संतुष्ट होती हैं, किन्तु इसका विपरीत सत्य नहीं है। सीएसपीआरएनजी आवश्यकताएँ दो समूहों में आती हैं: प्रथम, कि वे सांख्यिकीय यादृच्छिकता परीक्षण पास करते हैं; एवं दूसरी बात, कि वे गंभीर अटैक के अंतर्गत उचित प्रकार से टिके रहते हैं, तब भी जब उनकी प्रारंभिक या प्रचलित स्थिति का भाग किसी अटैकर के लिए उपलब्ध हो जाता है।
- प्रत्येक सीएसपीआरएनजी को अग्रिम बिट परीक्षण को पूर्ण करना चाहिए। अर्थात, यादृच्छिक अनुक्रम के पूर्व k बिट्स को देखते हुए, कोई बहुपद-समय एल्गोरिदम नहीं है जो (k+1) बिट की भविष्यवाणी कर सके जिसमें सफलता की संभावना 50% से नगण्य रूप से उत्तम है।[4] एंड्रयू याओ ने 1982 में प्रमाणित किया कि अग्रिम-बिट परीक्षण पास करने वाला जनरेटर यादृच्छिकता के लिए अन्य सभी बहुपद-समय सांख्यिकीय परीक्षण पास कर लेगा।[5]
- प्रत्येक सीएसपीआरएनजी को राज्य अनुबंध विस्तार का सामना करना चाहिए। इस घटना में कि इसकी स्थिति का कोई भाग या पूर्ण भाग प्रकट हो गया है (या उचित रूप से अनुमान लगाया गया है), रहस्योद्घाटन से पूर्व यादृच्छिक संख्याओं की धारा का पुनर्निर्माण करना असंभव होना चाहिए। इसके अतिरिक्त, यदि चलते समय कोई एन्ट्रापी इनपुट है, तो सीएसपीआरएनजी स्थिति की भविष्य की स्थितियों की भविष्यवाणी करने के लिए इनपुट की स्थिति के ज्ञान का उपयोग करना संभव नहीं होना चाहिए।
- उदाहरण: यदि विचाराधीन सीएसपीआरएनजी बाइनरी विस्तार में किसी अज्ञात बिंदु से प्रारम्भ करके क्रम में π के बिट्स की गणना करके आउटपुट उत्पन्न करता है, तो यह अग्रिम-बिट परीक्षण को उचित प्रकार से संतुष्ट कर सकता है एवं इस प्रकार सांख्यिकीय रूप से यादृच्छिक हो सकता है, क्योंकि π यादृच्छिक अनुक्रम प्रतीत होता है। (उदाहरण के लिए, यदि π सामान्य संख्या है तो इसका उत्तरदायित्व होगा।) चूँकि, यह एल्गोरिदम क्रिप्टोग्राफ़िक रूप से सुरक्षित नहीं है; अटैकर जो यह निर्धारित करता है कि π का कौन सा बिट (अर्थात एल्गोरिदम की स्थिति) वर्तमान में उपयोग में है, वह सभी पूर्ववर्ती बिट्स की गणना करने में भी सक्षम होता है।
अधिकांश पीआरएनजी सीएसपीआरएनजी के रूप में उपयोग के लिए उपयुक्त नहीं हैं एवं दोनों ही विषयों में विफल हो जाते हैं। सबसे पूर्व, जबकि अधिकांश पीआरएनजी आउटपुट मिश्रित सांख्यिकीय परीक्षणों के लिए यादृच्छिक दिखाई देते हैं, वे निर्धारित रिवर्स इंजीनियरिंग का विरोध नहीं करते हैं। विशिष्ट सांख्यिकीय परीक्षण विशेष रूप से ऐसे पीआरएनजी से जुड़े हुए प्राप्त हो सकते हैं जो यादृच्छिक संख्याओं को वास्तव में यादृच्छिक नहीं दिखाते हैं। दूसरा, अधिकांश पीआरएनजी के लिए, जब उनकी स्थिति का स्पष्टीकरण हो जाता है, तो सभी पूर्व यादृच्छिक संख्याओं को पूर्वव्यापी किया जा सकता है, जिससे अटैकर को सभी पूर्व संदेशों के साथ-साथ भविष्य के संदेशों को भी पढ़ने की अनुमति मिलती है।
सीएसपीआरएनजी को इस प्रकार के क्रिप्ट विश्लेषण का विरोध करने के लिए स्पष्ट रूप से डिज़ाइन किया गया है।
परिभाषाएँ
एसिम्प्टोटिक सुरक्षा में, नियतात्मक बहुपद समय गणना योग्य कार्यों का सदस्य कुछ बहुपद p के लिए, छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी, या कुछ संदर्भों में पीआरजी) है, यदि यह अपने इनपुट ( किसी k के लिए ) की लंबाई बढ़ाता है, एवं यदि इसका आउटपुट वास्तविक यादृच्छिकता से कम्प्यूटेशनल अप्रभेद्यता है, अर्थात किसी भी संभाव्य बहुपद समय एल्गोरिदम A के लिए, जो विभेदक के रूप में 1 या 0 को आउटपुट करता है,
कुछ नगण्य कार्य के लिए,[6] (संकेतन तात्पर्य है कि x का समुच्चय X से यादृच्छिक एवं समान रूप से चयन होता है।)
समतुल्य लक्षण वर्णन है: किसी भी फलन सदस्य के लिए, G पीआरएनजी है यदि एवं केवल यदि G के अग्रिम आउटपुट बिट की भविष्यवाणी बहुपद समय एल्गोरिथ्म द्वारा नहीं की जा सकती है।[7]ब्लॉक लंबाई के साथ फॉरवर्ड-सुरक्षित पीआरएनजी पीआरएनजी है, जहां इनपुट स्ट्रिंग है, लंबाई k के साथ अवधि i पर वर्तमान स्थिति है, एवं आउटपुट (, ) में अग्रिम राज्य सम्मिलित है एवं अवधि i का छद्म यादृच्छिक आउटपुट ब्लॉक , जो निम्नलिखित अर्थों में राज्य अनुबंध विस्तार का सामना करता है। यदि प्रारंभिक अवस्था का से यादृच्छिक एवं समान रूप से चयन होता है , पुनः किसी i के लिए, क्रम , से कम्प्यूटेशनल रूप से अप्रभेद्य होना चाहिए, जिसमें , से समान एवं यादृच्छिक रूप से चयनित होते हैं।[8]कोई भी पीआरएनजी ब्लॉक लंबाई के साथ फॉरवर्ड सुरक्षित पीआरएनजी में इसके आउटपुट को अग्रिम स्थिति एवं वास्तविक आउटपुट में विभाजित करके परिवर्तित किया जा सकता है। यह सेटिंग द्वारा किया जाता है, जिसमें एवं ; तब अग्रिम राज्य के रूप में के साथ G फॉरवर्ड सुरक्षित पीआरएनजी है एवं वर्तमान अवधि के छद्म यादृच्छिक आउटपुट ब्लॉक के रूप में है।
एंट्रॉपी निष्कर्षण
संथा एवं वज़ीरानी ने प्रमाणित किया कि शक्तिहीन यादृच्छिकता वाली कई बिट धाराओं को उच्च गुणवत्ता वाली अर्ध-यादृच्छिक बिट स्ट्रीम उत्पन्न करने के लिए जोड़ा जा सकता है।[9]इससे पूर्व भी, जॉन वॉन न्यूमैन ने प्रमाणित किया था कि सरल एल्गोरिदम किसी भी बिट स्ट्रीम में अधिक मात्रा में पूर्वाग्रह को दूर कर सकता है,[10] जिसे संथा-वज़ीरानी डिज़ाइन के किसी भी परिवर्तन का उपयोग करने से पूर्व प्रत्येक बिट स्ट्रीम पर प्रस्तावित किया जाना चाहिए।
डिज़ाइन
नीचे दिए गए विचार में, सीएसपीआरएनजी डिज़ाइन को तीन वर्गों में विभाजित किया गया है:
- जो क्रिप्टोग्राफ़िक प्राइमेटिव्स जैसे सिफ़र एवं क्रिप्टोग्राफ़िक हैश पर आधारित हैं,
- जो गणितीय समस्याओं पर आधारित हैं जिन्हें कठिन माना जाता है, एवं
- विशेष प्रयोजन डिजाइन है।
उत्तरार्द्ध प्रायः उपलब्ध होने पर अतिरिक्त एन्ट्रापी का परिचय देता है एवं, कठोरता से बोलते हुए, शुद्ध छद्म यादृच्छिक संख्या जनरेटर नहीं होते हैं, क्योंकि उनका आउटपुट पूर्ण रूप से से उनकी प्रारंभिक स्थिति से निर्धारित नहीं होता है। प्रारंभिक स्थिति से अनुबंध होने पर भी यह जोड़ हमलों को रोक सकता है।
क्रिप्टोग्राफ़िक आदिमों पर आधारित डिज़ाइन
- सुरक्षित ब्लॉक सिफर को काउंटर मोड में चलाकर सीएसपीआरएनजी में परिवर्तित किया जा सकता है। यह यादृच्छिक कुंजी चुनकर एवं 0 को एन्क्रिप्ट करके, पुनः 1 को एन्क्रिप्ट करके, पुनः 2 को एन्क्रिप्ट करके आदि द्वारा किया जाता है। काउंटर को शून्य के अतिरिक्त किसी अन्य नंबर पर भी प्रारम्भ किया जा सकता है। एन-बिट ब्लॉक सिफर मानते हुए आउटपुट को लगभग 2n/2 के पश्चात यादृच्छिक डेटा से भिन्न किया जा सकता है ब्लॉक करता है, क्योंकि जन्मदिन की समस्या के पश्चात, उस बिंदु पर टकराने वाले ब्लॉक की संभावना बननी चाहिए, जबकि सीटीआर मोड में ब्लॉक सिफर कभी भी समान ब्लॉक को आउटपुट नहीं करता है। 64-बिट ब्लॉक सिफर के लिए यह सुरक्षित आउटपुट आकार को कुछ गीगाबाइट तक सीमित करता है,128-बिट ब्लॉक के साथ यह सीमा इतनी बड़ी है कि सामान्य अनुप्रयोगों को प्रभावित नहीं करती है। चूँकि, जब अकेले उपयोग किया जाता है तो यह सीएसपीआरएनजी के सभी मानदंडों को पूर्ण नहीं करता है (जैसा कि ऊपर बताया गया है) क्योंकि यह राज्य अनुबंध एक्सटेंशन के विरुद्ध शक्तिशाली नहीं है: राज्य के ज्ञान (इस विषय में काउंटर एवं कुंजी) के साथ आप सभी पूर्व आउटपुट की भविष्यवाणी कर सकते हैं।
- काउंटर का क्रिप्टोग्राफ़िक रूप से सुरक्षित क्रिप्टोग्राफ़िक हैश फलन कुछ विषयों में उत्तम सीएसपीआरएनजी के रूप में भी कार्य कर सकता है। ऐसे में यह भी जरूरी है कि इस काउंटर का प्रारंभिक मूल्य यादृच्छिक एवं अप्रत्यक्ष हो, चूँकि, इस विधि से उपयोग के लिए इन एल्गोरिदम का कम अध्ययन किया गया है, एवं कम से कम कुछ लेखक इस उपयोग के विरुद्ध चेतावनी देते हैं।[11]
- अधिकांश धारा सिफर बिट्स की छद्म यादृच्छिक स्ट्रीम उत्पन्न करके कार्य करते हैं जो प्लेनटेक्स्ट के साथ संयुक्त (लगभग हमेशा बिटवाइज़ XORed) होते हैं; काउंटर पर सिफर चलाने से संभवतः लंबी अवधि के साथ नई छद्म यादृच्छिक धारा वापस आ जाएगी। सिफर केवल तभी सुरक्षित हो सकता है यदि मूल स्ट्रीम उचित सीएसपीआरएनजी है, चूँकि यह आवश्यक नहीं है (RC4 सिफर देखें)। पुनः, प्रारंभिक अवस्था को अप्रत्यक्ष रखा जाना चाहिए।
संख्या-सैद्धांतिक डिज़ाइन
- ब्लम ब्लम शब एल्गोरिदम में द्विघात अवशिष्टता समस्या की कठिनाई के आधार पर सुरक्षा प्रमाण है। चूँकि उस समस्या का निवारण करने का ज्ञात उपाय मापांक का गुणनखंड करना है, सामान्यतः यह माना जाता है कि पूर्णांक गुणनखंडन की कठिनाई ब्लम ब्लम शब एल्गोरिथ्म के लिए सशर्त सुरक्षा प्रमाण प्रदान करती है। चूँकि एल्गोरिथ्म बहुत अक्षम है एवं इसलिए अव्यावहारिक है जब तक कि अत्यधिक सुरक्षा की आवश्यकता न हो।
- ब्लम-मिकाली एल्गोरिथ्म में असतत लघुगणक समस्या की कठिनाई के आधार पर सुरक्षा प्रमाण है, किन्तु यह बहुत अक्षम भी है।
- सर्टिकॉम के डेनियल ब्राउन ने दोहरी ईसी डीआरबीजी के लिए 2006 का सुरक्षा प्रमाण लिखा है, जो डिसीजनल डिफी-हेलमैन धारणा की अनुमानित कठोरता, एक्स-लघुगणक समस्या एवं ट्रंकेटेड पॉइंट समस्या पर आधारित है। 2006 का प्रमाण Dual_EC_DRBG स्पष्ट रूप से कम आउटलेन मानता है एवं Dual_EC_DRBG मानक में P एवं Q (जो 2013 में एनएसए द्वारा संभवतः बैकडोर किए जाने के रूप में सामने आए थे) को अन्य-बैकडोर मानों से परिवर्तित कर दिया गया है।
विशेष डिज़ाइन
ऐसे कई व्यावहारिक पीआरएनजी हैं जिन्हें क्रिप्टोग्राफ़िक रूप से सुरक्षित बनाने के लिए डिज़ाइन किया गया है, जिनमें सम्मिलित हैं
- यारो एल्गोरिथ्म जो इसके इनपुट की एन्ट्रोपिक गुणवत्ता का मूल्यांकन करने का प्रयास करता है। दिसंबर 2019 तक यारो का उपयोग macOS एवं अन्य Apple OS में किया जाता था। तब से Apple ने फोर्टुना पर स्विच कर लिया है। (देखें/देव/यादृच्छिक)।
- ChaCha20 एल्गोरिथ्म ने ओपनबीएसडी (संस्करण 5.4),[12] नेटबीएसडी (संस्करण 7.0),[13] एवं फ्रीबीएसडी (संस्करण 12.0)में RC4 को प्रतिस्थापित कर दिया।[14]
- संस्करण 4.8 में ChaCha20 ने लिनक्स में SHA-1 को भी प्रतिस्थापित कर दिया।[15]
- फोर्टुना (पीआरएनजी), यारो का उत्तराधिकारी, जो अपने इनपुट की एन्ट्रोपिक गुणवत्ता का मूल्यांकन करने का प्रयास नहीं करता है। फ्रीबीएसडी में फ़ोर्टुना का उपयोग किया जाता है। दिसंबर 2019 में अधिकांश या सभी Apple OS के लिए Apple को फोर्टुना में परिवर्तित कर दिया गया है।
- माइक्रोसॉफ्ट के क्रिप्टोग्राफ़िक एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस में प्रदान किया गया फलन क्रिप्टजेनरैंडम है।
- इसाक (सिफर) RC4 सिफर के प्रकार पर आधारित है।
- मानक एवं प्रौद्योगिकी का राष्ट्रीय संस्थान सांख्यिकीय परीक्षण सूट के आधार पर विकासवादी एल्गोरिदम के साथ रैखिक-प्रतिक्रिया शिफ्ट रजिस्टर को ट्यून किया गया है।[16][17]
- RC4-आधारित यादृच्छिक संख्या जनरेटर
- एईएस-सीटीआर डीआरबीजी का उपयोग प्रायः एईएस एन्क्रिप्शन का उपयोग करने वाले प्रणाली में यादृच्छिक संख्या जनरेटर के रूप में किया जाता है।[18][19]
- अमेरिकी राष्ट्रीय मानक संस्थान X9.17 मानक (वित्तीय संस्थान कुंजी प्रबंधन), जिसे संघीय सूचना प्रसंस्करण मानक मानक के रूप में भी अपनाया गया है। यह इनपुट के रूप में ट्रिपल डेस (कुंजी विकल्प 2) कुंजी बंडल k एवं (प्रारंभिक मान) 64-बिट यादृच्छिक सीड s लेता है।[20] प्रत्येक समय यादृच्छिक संख्या की आवश्यकता होती है:
- वर्तमान दिनांक/समय D को अधिकतम संभव रिज़ॉल्यूशन तक प्राप्त करता है।
- अस्थायी मान t = TDEAk(D) की गणना करता है।
- यादृच्छिक मान x = TDEAk(s ⊕ t) की गणना करता है, जहां ⊕ बिटवाइज़ मात्र को प्रदर्शित करता है।
- सीड s = TDEAk(x ⊕ t) को अद्यतन करता है।
- प्रौद्योगिकी को किसी भी ब्लॉक सिफर के लिए सरलता से सामान्यीकृत किया जा सकता है; उन्नत एन्क्रिप्शन मानक का विचार दिया गया है।[21]
मानक
कई सीएसपीआरएनजी को मानकीकृत किया गया है। उदाहरण के लिए,
- FIPS186-4[22]
- NIST SP 800-90A:
- इस वापस लिए गए मानक में चार पीआरएनजी हैं। उनमें से दो निर्विवाद सिद्ध हैं: सीएसपीआरएनजी जिनका नाम हैश_डीआरबीजी[23] एवं एचएमएसी_डीआरबीजी है।[24]
- इस मानक में तीसरा पीआरएनजी, सीटीआर डीआरबीजी, काउंटर मोड में चलने वाले ब्लॉक सिफर पर आधारित है। इसका डिज़ाइन निर्विवाद है, किन्तु अंतर्निहित ब्लॉक सिफर के सुरक्षा स्तर की अपेक्षा में अटैक को भेदने के विषय में यह शक्तिहीन प्रमाणित हुआ है, जब इस पीआरएनजी से आउटपुट बिट्स की संख्या अंतर्निहित ब्लॉक सिफर के ब्लॉक आकार की शक्ति से दो से अधिक है।[25]
- जब इस पीआरएनजी से आउटपुट बिट्स की अधिकतम संख्या 2ब्लॉकसाइज़ के समान होती है, परिणामी आउटपुट गणितीय रूप से अपेक्षित सुरक्षा स्तर प्रदान करता है जिसे कुंजी आकार उत्पन्न करने की उम्मीद की जाएगी, किन्तु आउटपुट को वास्तविक यादृच्छिक संख्या जनरेटर से अप्रभेद्य नहीं प्रदर्शित किया गया है।[25]जब इस पीआरएनजी से आउटपुट बिट्स की अधिकतम संख्या इससे कम होती है, तो अपेक्षित सुरक्षा स्तर प्रदान किया जाता है एवं आउटपुट वास्तविक यादृच्छिक संख्या जनरेटर से अप्रभेद्य प्रतीत होता है।[25]
- अग्रिम संशोधन में यह नोट किया गया है कि CTR_DRBG के लिए दावा की गई सुरक्षा ताकत उत्पन्न अनुरोधों की कुल संख्या एवं प्रति उत्पन्न अनुरोध प्रदान की गई बिट्स को सीमित करने पर निर्भर करती है।
- इस मानक में चौथे एवं अंतिम पीआरएनजी को डुअल ईसी डीआरबीजी नाम दिया गया है। यह प्रदर्शित किया गया है कि यह क्रिप्टोग्राफ़िक रूप से सुरक्षित नहीं है एवं माना जाता है कि इसमें क्लेप्टोग्राफ़ी एनएसए बैकडोर है।[26]
- NIST SP 800-90A Rev.1: यह मूलतः NIST SP 800-90A है जिसमें Dual_EC_DRBG निकाल दिया गया है, एवं यह वापस लिए गए मानक का प्रतिस्थापन है।
- ANSI X9.17-1985 परिशिष्ट C
- ANSI X9.31-1998 परिशिष्ट A.2.4
- ANSI X9.62-1998 अनुबंध A.4, ANSI X9.62-2005 द्वारा अप्रचलित, अनुबंध D (HMAC_DRBG)
एनआईएसटी द्वारा उचित संदर्भ बनाए रखा जाता है।[27]नए सीएसपीआरएनजी डिज़ाइनों के सांख्यिकीय परीक्षण के लिए भी मानक हैं:
- रैंडम एवं छद्म यादृच्छिक संख्या जेनरेटर के लिए सांख्यिकीय परीक्षण सूट, एनआईएसटी विशेष प्रकाशन 800-22 है।[28]
Dual_EC_DRBG पीआरएनजी में एनएसए क्लेप्टोग्राफ़िक बैकडोर
अभिभावक दी न्यू यौर्क टाइम्स ने 2013 में रिपोर्ट दी थी कि राष्ट्रीय सुरक्षा एजेंसी (एनएसए) ने एनआईएसटी एसपी 800-90A के छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी) में बैकडोर दिया था जो एनएसए को एन्क्रिप्टेड सामग्री को Dual_EC_DRBG की सहायता से सरलता से डिक्रिप्ट करने की अनुमति देता है। दोनों पेपर रिपोर्ट करते हैं,[29][30]जैसा कि स्वतंत्र सुरक्षा विशेषज्ञों को लंबे समय से संदेह था,[31] एनएसए सीएसपीआरएनजी मानक 800-90 में शक्तिहीनता प्रस्तुत कर रहा है; एड्वर्ड स्नोडेन द्वारा गार्जियन को प्रकट किए गए शीर्ष अप्रत्यक्ष प्रपत्रों में से प्रथम बार इसकी पुष्टि की गई है। एनएसए ने 2006 में दुनिया में उपयोग के लिए स्वीकृत एनआईएसटी ड्राफ्ट सुरक्षा मानक के अपने संस्करण को प्राप्त करने के लिए अप्रत्यक्ष रूप से कार्य किया था। प्रकट हुए दस्तावेज़ में कहा गया है कि अंततः, एनएसए मात्र संपादक बन गया था। क्लेप्टोग्राफी बैकडोर की ज्ञात क्षमता एवं Dual_EC_DRBG के साथ अन्य ज्ञात महत्वपूर्ण अभावों के अतिरिक्त, आरएसए सिक्योरिटी जैसी कई कंपनियों ने 2013 में बैकडोर की पुष्टि होने तक Dual_EC_DRBG का उपयोग निरंतर रखा था।[32] ऐसा करने के लिए आरएसए सिक्योरिटी को एनएसए से $10 मिलियन का भुगतान प्राप्त हुआ था।[33]
सुरक्षा फ्लॉस
DUHK अटैक
23 अक्टूबर, 2017 को, पेंसिल्वेनिया विश्वविद्यालय एवं जॉन्स हॉपकिन्स विश्वविद्यालय के क्रिप्टोग्राफर शानन कोहनी, मैथ्यू डी. ग्रीन एवं नादिया हेनिंगर ने WPA2 पर DUHK (हार्ड-कोडेड कुंजी का उपयोग न करें) अटैक का विवरण प्रस्तुत किया, जहां हार्डवेयर विक्रेता हार्डकोड उपयोग करते हैं। ANSI X9.31 आरएनजी एल्गोरिथ्म के लिए हार्डकोडेड कुंजी, जिसमें कहा गया है कि अटैकर अन्य एन्क्रिप्शन मापदंडों की शोध करने एवं वेब सत्र या आभासी निजी संजाल (वीपीएन) कनेक्शन को एन्क्रिप्ट करने के लिए उपयोग की जाने वाली मास्टर एन्क्रिप्शन कुंजी को निकालने के लिए एन्क्रिप्टेड डेटा को बलपूर्वक प्रस्तावित कर सकता है।[34][35]
जापानी बैंगनी सिफर मशीन
द्वितीय विश्व युद्ध क्रिप्टोग्राफी के समय, जापान ने राजनयिक संचार के लिए सिफर मशीन का उपयोग किया; संयुक्त राज्य अमेरिका इसे क्रैक करने एवं इसके संदेशों को पढ़ने में सक्षम था, क्योंकि उपयोग किए गए प्रमुख मान अपर्याप्त रूप से यादृच्छिक थे।
संदर्भ
- ↑ Huang, Andrew (2003). Hacking the Xbox: An Introduction to Reverse Engineering. No Starch Press Series. No Starch Press. p. 111. ISBN 9781593270292. Retrieved 2013-10-24.
[...] the keystream generator [...] can be thought of as a cryptographic pseudo-random number generator (CPRNG).
- ↑ Dufour, Cédric. "वर्चुअल मशीनों में एन्ट्रापी और उचित यादृच्छिक संख्या निर्माण कैसे सुनिश्चित करें". Exoscale.
- ↑ "/dev/random Is More Like /dev/urandom With Linux 5.6 - Phoronix". www.phoronix.com.
- ↑ Katz, Jonathan; Lindell, Yehuda (2008). आधुनिक क्रिप्टोग्राफी का परिचय. CRC press. p. 70. ISBN 978-1584885511.
- ↑ Andrew Chi-Chih Yao. Theory and applications of trapdoor functions. In Proceedings of the 23rd IEEE Symposium on Foundations of Computer Science, 1982.
- ↑ Goldreich, Oded (2001), Foundations of cryptography I: Basic Tools, Cambridge: Cambridge University Press, ISBN 978-0-511-54689-1, def 3.3.1.
- ↑ Goldreich, Oded (2001), Foundations of cryptography I: Basic Tools, Cambridge: Cambridge University Press, ISBN 978-0-511-54689-1, Theorem 3.3.7.
- ↑ Dodis, Yevgeniy, Lecture 5 Notes of Introduction to Cryptography (PDF), retrieved 3 January 2016, def 4.
- ↑ Miklos Santha, Umesh V. Vazirani (1984-10-24). "Generating quasi-random sequences from slightly-random sources" (PDF). Proceedings of the 25th IEEE Symposium on Foundations of Computer Science. University of California. pp. 434–440. ISBN 0-8186-0591-X. Retrieved 2006-11-29.
- ↑ John von Neumann (1963-03-01). "Various techniques for use in connection with random digits". The Collected Works of John von Neumann. Pergamon Press. pp. 768–770. ISBN 0-08-009566-6.
- ↑
Adam Young, Moti Yung (2004-02-01). दुर्भावनापूर्ण क्रिप्टोग्राफी: क्रिप्टोवायरोलॉजी को उजागर करना. sect 3.2: John Wiley & Sons. p. 416. ISBN 978-0-7645-4975-5.
{{cite book}}
: CS1 maint: location (link) - ↑ "CVS log of arc4random.c". CVS. October 1, 2013.
- ↑ "CVS log of arc4random.c". CVS. November 16, 2014.
- ↑ "FreeBSD 12.0-RELEASE Release Notes: Runtime Libraries and API". FreeBSD.org. 5 March 2019. Retrieved 24 August 2019.
- ↑ "रैंडम.सी की जीथब प्रतिबद्धता". Github. July 2, 2016.
- ↑ "क्रिप्टोग्राफ़िक अनुप्रयोगों के लिए यादृच्छिक और छद्म यादृच्छिक संख्या जेनरेटर के लिए एक सांख्यिकीय परीक्षण सूट" (PDF). Special Publication. NIST. April 2010.
- ↑ Poorghanad, A.; Sadr, A.; Kashanipour, A. (May 2008). "विकासवादी तरीकों का उपयोग करके उच्च गुणवत्ता वाली छद्म यादृच्छिक संख्या उत्पन्न करना" (PDF). IEEE Congress on Computational Intelligence and Security. 9: 331–335.
- ↑ Kleidermacher, David; Kleidermacher, Mike (2012). Embedded Systems Security: Practical Methods for Safe and Secure Software and Systems Development. Elsevier. p. 256. ISBN 9780123868862.
- ↑
Cox, George; Dike, Charles; Johnston, DJ (2011). "Intel's Digital Random Number Generator (DRNG)" (PDF).
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ Menezes, Alfred; van Oorschot, Paul; Vanstone, Scott (1996). "Chapter 5: Pseudorandom Bits and Sequences" (PDF). एप्लाइड क्रिप्टोग्राफी की हैंडबुक. CRC Press.
- ↑
Young, Adam; Yung, Moti (2004-02-01). दुर्भावनापूर्ण क्रिप्टोग्राफी: क्रिप्टोवायरोलॉजी को उजागर करना. sect 3.5.1: John Wiley & Sons. ISBN 978-0-7645-4975-5.
{{cite book}}
: CS1 maint: location (link) - ↑ "FIPS 186-4" (PDF).
- ↑ Kan, Wilson (September 4, 2007). "एनआईएसटी डीआरबीजी में अंतर्निहित मान्यताओं का विश्लेषण" (PDF). Retrieved November 19, 2016.
- ↑ Ye, Katherine Qinru (April 2016). "The Notorious PRG: Formal verification of the HMAC-DRBG pseudorandom number generator" (PDF). Retrieved November 19, 2016.
- ↑ 25.0 25.1 25.2 Campagna, Matthew J. (November 1, 2006). "एनआईएसटी कोडबुक-आधारित नियतात्मक रैंडम बिट जेनरेटर के लिए सुरक्षा सीमाएं" (PDF). Retrieved November 19, 2016.
- ↑ Perlroth, Nicole (September 10, 2013). "सरकार ने एन्क्रिप्शन मानकों पर विश्वास बहाल करने के लिए कदमों की घोषणा की". The New York Times. Retrieved November 19, 2016.
- ↑ Computer Security Division, Information Technology Laboratory (24 May 2016). "यादृच्छिक संख्या". CSRC | NIST (in English).
- ↑ Rukhin, Andrew; Soto, Juan; Nechvatal, James; Smid, Miles; Barker, Elaine; Leigh, Stefan; Levenson, Mark; Vangel, Mark; Banks, David; Heckert, N.; Dray, James; Vo, San; Bassham, Lawrence (April 30, 2010). "क्रिप्टोग्राफ़िक अनुप्रयोगों के लिए यादृच्छिक और छद्म यादृच्छिक संख्या जेनरेटर के लिए एक सांख्यिकीय परीक्षण सूट". doi:10.6028/NIST.SP.800-22r1a – via csrc.nist.gov.
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ James Borger; Glenn Greenwald (6 September 2013). "Revealed: how US and UK spy agencies defeat internet privacy and security". The Guardian. Retrieved 7 September 2013.
- ↑ Nicole Perlroth (5 September 2013). "एन.एस.ए. वेब पर गोपनीयता के बुनियादी सुरक्षा उपायों को विफल करने में सक्षम". The New York Times. Retrieved 7 September 2013.
- ↑ Bruce Schneier (15 November 2007). "Did NSA Put a Secret Backdoor in New Encryption Standard?". Wired. Retrieved 7 September 2013.
- ↑ Matthew Green (20 September 2013). "आरएसए डेवलपर्स को आरएसए उत्पादों का उपयोग न करने की चेतावनी देता है".
- ↑ Joseph Menn (20 December 2013). "Exclusive: Secret contract tied NSA and security industry pioneer". Reuters.
- ↑ Shaanan Cohney; Matthew D. Green; Nadia Heninger. "विरासती आरएनजी कार्यान्वयन के विरुद्ध व्यावहारिक राज्य पुनर्प्राप्ति हमले" (PDF). duhkattack.com.
- ↑ "DUHK क्रिप्टो अटैक एन्क्रिप्शन कुंजी पुनर्प्राप्त करता है, वीपीएन कनेक्शन को उजागर करता है". slashdot.org. 25 October 2017. Retrieved 25 October 2017.
बाहरी संबंध
- RFC 4086, Randomness Requirements for Security
- Java "entropy pool" for cryptographically secure unpredictable random numbers. Archived 2008-12-02 at the Wayback Machine
- 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.