क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर: Difference between revisions
No edit summary |
No edit summary |
||
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}} | ||
क्रिप्टोग्राफ़िक रूप से सुरक्षित [[छद्म यादृच्छिक संख्या जनरेटर]] ( | '''क्रिप्टोग्राफ़िक रूप से सुरक्षित [[छद्म यादृच्छिक संख्या जनरेटर]]''' (सीएसपीआरएनजी) या क्रिप्टोग्राफ़िक छद्म यादृच्छिक संख्या जनरेटर (CPRNG) छद्म यादृच्छिक संख्या जनरेटर (PRNG) है जिसमें ऐसे गुण हैं जो इसे [[क्रिप्टोग्राफी]] में उपयोग के लिए उपयुक्त बनाते हैं। इसे क्रिप्टोग्राफ़िक रैंडम नंबर जेनरेटर (सीआरएनजी) के रूप में भी जाना जाता है। | ||
== पृष्ठभूमि == | == पृष्ठभूमि == | ||
Line 8: | Line 8: | ||
* [[ECDSA]], [[PKCS 1]]|RSASSA-PSS सहित कुछ हस्ताक्षर योजनाओं में [[नमक (क्रिप्टोग्राफी)]]। | * [[ECDSA]], [[PKCS 1]]|RSASSA-PSS सहित कुछ हस्ताक्षर योजनाओं में [[नमक (क्रिप्टोग्राफी)]]। | ||
इन अनुप्रयोगों के लिए आवश्यक यादृच्छिकता की गुणवत्ता भिन्न-भिन्न होती है। | इन अनुप्रयोगों के लिए आवश्यक यादृच्छिकता की गुणवत्ता भिन्न-भिन्न होती है। उदाहरण के लिए, कुछ [[क्रिप्टोग्राफ़िक प्रोटोकॉल]] में क्रिप्टोग्राफ़िक नॉन बनाने के लिए केवल विशिष्टता की आवश्यकता होती है। दूसरी ओर, मास्टर [[कुंजी (क्रिप्टोग्राफी)]] के निर्माण के लिए उच्च गुणवत्ता, जैसे अधिक [[एन्ट्रापी (कंप्यूटिंग)|एन्ट्रापी]] की आवश्यकता होती है। एवं वन-टाइम पैड के विषय में, [[सूचना सिद्धांत]] | सही गोपनीयता की सूचना-सैद्धांतिक गारंटी केवल तभी मान्य होती है जब मुख्य सामग्री उच्च एन्ट्रापी के साथ सत्य यादृच्छिक स्रोत से आती है, एवं इस प्रकार किसी भी प्रकार का छद्म यादृच्छिक संख्या जनरेटर अपर्याप्त है। | ||
उदाहरण के लिए, कुछ [[क्रिप्टोग्राफ़िक प्रोटोकॉल]] में क्रिप्टोग्राफ़िक नॉन बनाने के लिए केवल विशिष्टता की आवश्यकता होती है। | |||
दूसरी ओर, मास्टर [[कुंजी (क्रिप्टोग्राफी)]] के निर्माण के लिए उच्च गुणवत्ता, जैसे अधिक [[एन्ट्रापी (कंप्यूटिंग)]] की आवश्यकता होती है। | |||
आदर्श रूप से, सीएसपीआरएनजी में यादृच्छिक संख्याओं का निर्माण उच्च गुणवत्ता वाले स्रोत से प्राप्त एन्ट्रापी का उपयोग करता है, | आदर्श रूप से, सीएसपीआरएनजी में यादृच्छिक संख्याओं का निर्माण उच्च गुणवत्ता वाले स्रोत से प्राप्त एन्ट्रापी का उपयोग करता है, सामान्यतः ऑपरेटिंग प्रणाली की यादृच्छिकता [[एपीआई]]। चूँकि, ऐसी कई प्रकट रूप से स्वतंत्र प्रक्रियाओं में अप्रत्याशित सहसंबंध प्राप्त हुए हैं। सूचना-सैद्धांतिक दृष्टिकोण से, यादृच्छिकता की मात्रा, उत्पन्न की जा सकने वाली एन्ट्रापी, प्रणाली द्वारा प्रदान की गई एन्ट्रापी के समान है। किन्तु कभी-कभी, व्यावहारिक स्थितियों में, उपलब्ध एन्ट्रापी की तुलना में अधिक यादृच्छिक संख्याओं की आवश्यकता होती है। साथ ही, किसी चालू प्रणाली से यादृच्छिकता निकालने की प्रक्रियाएँ वास्तविक व्यवहार में धीमी हैं। ऐसे मामलों में, कभी-कभी सीएसपीआरएनजी का उपयोग किया जा सकता है। सीएसपीआरएनजी उपलब्ध एन्ट्रापी को अधिक बिट्स तक फैला सकता है। | ||
==आवश्यकताएँ== | ==आवश्यकताएँ== | ||
क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर ( | क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर (सीएसपीआरएनजी) या क्रिप्टोग्राफ़िक छद्म यादृच्छिक संख्या जनरेटर (CPRNG)<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> जिसकी तुलना यादृच्छिक संख्या पीढ़ी से की जा सकती है # सही बनाम छद्म-यादृच्छिक संख्याएँ| सत्य बनाम छद्म-यादृच्छिक संख्याएँ। | ||
सामान्य पीआरएनजी की आवश्यकताएं क्रिप्टोग्राफ़िक रूप से सुरक्षित पीआरएनजी से भी संतुष्ट होती हैं, | सामान्य पीआरएनजी की आवश्यकताएं क्रिप्टोग्राफ़िक रूप से सुरक्षित पीआरएनजी से भी संतुष्ट होती हैं, किन्तु इसका विपरीत सच नहीं है। सीएसपीआरएनजी आवश्यकताएँ दो समूहों में आती हैं: पहला, कि वे सांख्यिकीय [[यादृच्छिकता परीक्षण]] पास करते हैं; एवं दूसरी बात, कि वे गंभीर हमले के तहत अच्छी तरह से टिके रहते हैं, तब भी जब उनकी प्रारंभिक या चालू स्थिति का हिस्सा किसी हमलावर के लिए उपलब्ध हो जाता है।{{Citation needed|date=January 2012}} | ||
* प्रत्येक सीएसपीआरएनजी को [[अगले बिट परीक्षण]] को पूरा करना चाहिए। यानी, यादृच्छिक अनुक्रम के पहले <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> | * प्रत्येक सीएसपीआरएनजी को [[अगले बिट परीक्षण]] को पूरा करना चाहिए। यानी, यादृच्छिक अनुक्रम के पहले <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> | ||
* प्रत्येक सीएसपीआरएनजी को राज्य समझौता विस्तार का सामना करना चाहिए। इस घटना में कि इसकी स्थिति का भाग या पूरा भाग प्रकट हो गया है (या सही ढंग से अनुमान लगाया गया है), रहस्योद्घाटन से पहले यादृच्छिक संख्याओं की धारा का पुनर्निर्माण करना असंभव होना चाहिए। इसके अतिरिक्त, यदि चलते समय कोई एन्ट्रापी इनपुट है, तो सीएसपीआरएनजी स्थिति की भविष्य की स्थितियों की भविष्यवाणी करने के लिए इनपुट की स्थिति के ज्ञान का उपयोग करना संभव नहीं होना चाहिए। | * प्रत्येक सीएसपीआरएनजी को राज्य समझौता विस्तार का सामना करना चाहिए। इस घटना में कि इसकी स्थिति का भाग या पूरा भाग प्रकट हो गया है (या सही ढंग से अनुमान लगाया गया है), रहस्योद्घाटन से पहले यादृच्छिक संख्याओं की धारा का पुनर्निर्माण करना असंभव होना चाहिए। इसके अतिरिक्त, यदि चलते समय कोई एन्ट्रापी इनपुट है, तो सीएसपीआरएनजी स्थिति की भविष्य की स्थितियों की भविष्यवाणी करने के लिए इनपुट की स्थिति के ज्ञान का उपयोग करना संभव नहीं होना चाहिए। | ||
:: उदाहरण: यदि विचाराधीन सीएसपीआरएनजी बाइनरी विस्तार में किसी अज्ञात बिंदु से शुरू करके क्रम में pi|π के बिट्स की गणना करके आउटपुट उत्पन्न करता है, तो यह अगले-बिट परीक्षण को अच्छी तरह से संतुष्ट कर सकता है | :: उदाहरण: यदि विचाराधीन सीएसपीआरएनजी बाइनरी विस्तार में किसी अज्ञात बिंदु से शुरू करके क्रम में pi|π के बिट्स की गणना करके आउटपुट उत्पन्न करता है, तो यह अगले-बिट परीक्षण को अच्छी तरह से संतुष्ट कर सकता है एवं इस प्रकार सांख्यिकीय रूप से यादृच्छिक हो सकता है, क्योंकि π यादृच्छिक अनुक्रम प्रतीत होता है। (उदाहरण के लिए, यदि π [[सामान्य संख्या]] है तो इसकी गारंटी होगी।) चूँकि, यह एल्गोरिदम क्रिप्टोग्राफ़िक रूप से सुरक्षित नहीं है; हमलावर जो यह निर्धारित करता है कि पाई का कौन सा बिट (यानी एल्गोरिदम की स्थिति) वर्तमान में उपयोग में है, वह सभी पूर्ववर्ती बिट्स की गणना करने में भी सक्षम होगा। | ||
अधिकांश पीआरएनजी सीएसपीआरएनजी के रूप में उपयोग के लिए उपयुक्त नहीं हैं | अधिकांश पीआरएनजी सीएसपीआरएनजी के रूप में उपयोग के लिए उपयुक्त नहीं हैं एवं दोनों ही मामलों में विफल हो जाएंगे। सबसे पहले, जबकि अधिकांश पीआरएनजी आउटपुट मिश्रित सांख्यिकीय परीक्षणों के लिए यादृच्छिक दिखाई देते हैं, वे निर्धारित रिवर्स इंजीनियरिंग का विरोध नहीं करते हैं। विशिष्ट सांख्यिकीय परीक्षण विशेष रूप से ऐसे पीआरएनजी से जुड़े हुए पाए जा सकते हैं जो यादृच्छिक संख्याओं को वास्तव में यादृच्छिक नहीं दिखाते हैं। दूसरा, अधिकांश पीआरएनजी के लिए, जब उनकी स्थिति का खुलासा हो जाता है, तो सभी पिछले यादृच्छिक संख्याओं को पूर्वव्यापी किया जा सकता है, जिससे हमलावर को सभी पिछले संदेशों के साथ-साथ भविष्य के संदेशों को भी पढ़ने की अनुमति मिलती है। | ||
सीएसपीआरएनजी को इस प्रकार के [[क्रिप्ट विश्लेषण]] का विरोध करने के लिए स्पष्ट रूप से डिज़ाइन किया गया है। | सीएसपीआरएनजी को इस प्रकार के [[क्रिप्ट विश्लेषण]] का विरोध करने के लिए स्पष्ट रूप से डिज़ाइन किया गया है। | ||
==परिभाषाएँ== | ==परिभाषाएँ== | ||
एसिम्प्टोटिक सुरक्षा में, नियतात्मक बहुपद समय गणना योग्य कार्यों का परिवार <math>G_k\colon\{0,1\}^k\to\{0,1\}^{p(k)}</math> कुछ बहुपद के लिए {{mvar|p}}, छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी, या कुछ संदर्भों में पीआरजी) है, यदि यह अपने इनपुट की लंबाई बढ़ाता है (<math>p(k) > k</math> किसी के लिए {{mvar|k}}), | एसिम्प्टोटिक सुरक्षा में, नियतात्मक बहुपद समय गणना योग्य कार्यों का परिवार <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>\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}} पीआरएनजी है यदि | समतुल्य लक्षण वर्णन है: किसी भी फ़ंक्शन परिवार के लिए <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>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> एवं छद्म यादृच्छिक आउटपुट ब्लॉक <math>y_i</math> अवधि का {{mvar|i}}, जो निम्नलिखित अर्थों में राज्य समझौता विस्तार का सामना करता है। यदि प्रारंभिक अवस्था <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\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>; तब {{mvar|G}} फॉरवर्ड सुरक्षित पीआरएनजी है <math>G_0</math> अगले राज्य के रूप में एवं <math>G_1</math> वर्तमान अवधि के छद्म यादृच्छिक आउटपुट ब्लॉक के रूप में। | ||
==एंट्रॉपी निष्कर्षण== | ==एंट्रॉपी निष्कर्षण== | ||
{{main|Randomness extractor}} | {{main|Randomness extractor}} | ||
संथा | संथा एवं वज़ीरानी ने साबित किया कि कमजोर यादृच्छिकता वाली कई बिट धाराओं को उच्च गुणवत्ता वाली अर्ध-यादृच्छिक बिट स्ट्रीम उत्पन्न करने के लिए जोड़ा जा सकता है।<ref name=santha-vazirani> | ||
{{cite conference | {{cite conference | ||
| author = Miklos Santha, Umesh V. Vazirani | | author = Miklos Santha, Umesh V. Vazirani | ||
Line 67: | Line 65: | ||
नीचे दी गई चर्चा में, सीएसपीआरएनजी डिज़ाइन को तीन वर्गों में विभाजित किया गया है: | नीचे दी गई चर्चा में, सीएसपीआरएनजी डिज़ाइन को तीन वर्गों में विभाजित किया गया है: | ||
# जो क्रिप्टोग्राफ़िक प्राइमेटिव्स जैसे [[ सिफ़र ]] | # जो क्रिप्टोग्राफ़िक प्राइमेटिव्स जैसे [[ सिफ़र ]] एवं [[क्रिप्टोग्राफ़िक हैश]] पर आधारित हैं, | ||
# जो गणितीय समस्याओं पर आधारित हैं उन्हें कठिन माना जाता है, | # जो गणितीय समस्याओं पर आधारित हैं उन्हें कठिन माना जाता है, एवं | ||
# विशेष प्रयोजन डिजाइन. | # विशेष प्रयोजन डिजाइन. | ||
उत्तरार्द्ध अक्सर उपलब्ध होने पर अतिरिक्त एन्ट्रापी का परिचय देता है | उत्तरार्द्ध अक्सर उपलब्ध होने पर अतिरिक्त एन्ट्रापी का परिचय देता है एवं, सख्ती से बोलते हुए, शुद्ध छद्म यादृच्छिक संख्या जनरेटर नहीं होते हैं, क्योंकि उनका आउटपुट पूरी तरह से उनकी प्रारंभिक स्थिति से निर्धारित नहीं होता है। प्रारंभिक स्थिति से समझौता होने पर भी यह जोड़ हमलों को रोक सकता है। | ||
===क्रिप्टोग्राफ़िक आदिमों पर आधारित डिज़ाइन=== | ===क्रिप्टोग्राफ़िक आदिमों पर आधारित डिज़ाइन=== | ||
* सुरक्षित [[ब्लॉक सिफर]] [[ऑपरेशन के सिफर मोड को ब्लॉक करें]] चलाकर सीएसपीआरएनजी में परिवर्तित किया जा सकता है{{Dubious |Does_counter_+_block_cipher_satisfy_the_requirements_given_in_the_article?|reason=does not meet all of the criteria of a CSPRNG as stated above|date=April 2020}}. यह यादृच्छिक कुंजी चुनकर | * सुरक्षित [[ब्लॉक सिफर]] [[ऑपरेशन के सिफर मोड को ब्लॉक करें]] चलाकर सीएसपीआरएनजी में परिवर्तित किया जा सकता है{{Dubious |Does_counter_+_block_cipher_satisfy_the_requirements_given_in_the_article?|reason=does not meet all of the criteria of a CSPRNG as stated above|date=April 2020}}. यह यादृच्छिक कुंजी चुनकर एवं 0 को एन्क्रिप्ट करके, फिर 1 को एन्क्रिप्ट करके, फिर 2 को एन्क्रिप्ट करके आदि द्वारा किया जाता है। काउंटर को शून्य के अलावा किसी अन्य मनमाने नंबर पर भी शुरू किया जा सकता है। एन-बिट ब्लॉक सिफर मानते हुए आउटपुट को लगभग 2 के बाद यादृच्छिक डेटा से अलग किया जा सकता है<sup>n/2</sup> ब्लॉक करता है, क्योंकि [[जन्मदिन की समस्या]] के बाद, उस बिंदु पर टकराने वाले ब्लॉक की संभावना बननी चाहिए, जबकि सीटीआर मोड में ब्लॉक सिफर कभी भी समान ब्लॉक को आउटपुट नहीं करेगा। 64-बिट ब्लॉक सिफर के लिए यह सुरक्षित आउटपुट आकार को कुछ गीगाबाइट तक सीमित करता है, 128-बिट ब्लॉक के साथ यह सीमा इतनी बड़ी है कि सामान्य अनुप्रयोगों को प्रभावित नहीं करती है। चूँकि, जब अकेले उपयोग किया जाता है तो यह सीएसपीआरएनजी के सभी मानदंडों को पूरा नहीं करता है (जैसा कि ऊपर बताया गया है) क्योंकि यह राज्य समझौता ्सटेंशन के खिलाफ मजबूत नहीं है: राज्य के ज्ञान (इस विषय में काउंटर एवं कुंजी) के साथ आप सभी पिछले आउटपुट की भविष्यवाणी कर सकते हैं। | ||
* काउंटर का क्रिप्टोग्राफ़िक रूप से सुरक्षित [[क्रिप्टोग्राफ़िक हैश फ़ंक्शन]] कुछ मामलों में अच्छे | * काउंटर का क्रिप्टोग्राफ़िक रूप से सुरक्षित [[क्रिप्टोग्राफ़िक हैश फ़ंक्शन]] कुछ मामलों में अच्छे सीएसपीआरएनजी के रूप में भी कार्य कर सकता है। ऐसे में यह भी जरूरी है कि इस काउंटर का शुरुआती मूल्य यादृच्छिक एवं गुप्त हो. चूँकि, इस तरीके से उपयोग के लिए इन एल्गोरिदम का बहुत कम अध्ययन किया गया है, एवं कम से कम कुछ लेखक इस उपयोग के खिलाफ चेतावनी देते हैं।{{vague|date=January 2015}}<ref name=Malicious_Cryptography> | ||
{{cite book | {{cite book | ||
| author = Adam Young, Moti Yung | | author = Adam Young, Moti Yung | ||
Line 84: | Line 82: | ||
| isbn = 978-0-7645-4975-5 | | isbn = 978-0-7645-4975-5 | ||
}}</ref> | }}</ref> | ||
* अधिकांश [[ धारा सिफर ]] बिट्स की छद्म यादृच्छिक स्ट्रीम उत्पन्न करके काम करते हैं जो [[सादे पाठ]] के साथ संयुक्त (लगभग हमेशा [[बिटवाइज़ XOR]]ed) होते हैं; काउंटर पर सिफर चलाने से संभवतः लंबी अवधि के साथ नई छद्म यादृच्छिक धारा वापस आ जाएगी। सिफर केवल तभी सुरक्षित हो सकता है यदि मूल स्ट्रीम अच्छा | * अधिकांश [[ धारा सिफर ]] बिट्स की छद्म यादृच्छिक स्ट्रीम उत्पन्न करके काम करते हैं जो [[सादे पाठ]] के साथ संयुक्त (लगभग हमेशा [[बिटवाइज़ XOR]]ed) होते हैं; काउंटर पर सिफर चलाने से संभवतः लंबी अवधि के साथ नई छद्म यादृच्छिक धारा वापस आ जाएगी। सिफर केवल तभी सुरक्षित हो सकता है यदि मूल स्ट्रीम अच्छा सीएसपीआरएनजी है, चूँकि यह आवश्यक नहीं है ([[RC4 सिफर]] देखें)। पुनः, प्रारंभिक अवस्था को गुप्त रखा जाना चाहिए। | ||
===संख्या-सैद्धांतिक डिज़ाइन=== | ===संख्या-सैद्धांतिक डिज़ाइन=== | ||
* [[ब्लम ब्लम शब]] एल्गोरिदम में [[द्विघात अवशिष्टता समस्या]] की कठिनाई के आधार पर सुरक्षा प्रमाण है। चूँकि उस समस्या को हल करने का मात्र ज्ञात तरीका मापांक का गुणनखंड करना है, | * [[ब्लम ब्लम शब]] एल्गोरिदम में [[द्विघात अवशिष्टता समस्या]] की कठिनाई के आधार पर सुरक्षा प्रमाण है। चूँकि उस समस्या को हल करने का मात्र ज्ञात तरीका मापांक का गुणनखंड करना है, सामान्यतः यह माना जाता है कि [[पूर्णांक गुणनखंडन]] की कठिनाई ब्लम ब्लम शब एल्गोरिथ्म के लिए सशर्त सुरक्षा प्रमाण प्रदान करती है। चूँकि एल्गोरिथ्म बहुत अक्षम है एवं इसलिए अव्यावहारिक है जब तक कि अत्यधिक सुरक्षा की आवश्यकता न हो। | ||
* ब्लम-मिकाली एल्गोरिथ्म में [[असतत लघुगणक समस्या]] की कठिनाई के आधार पर सुरक्षा प्रमाण है, | * ब्लम-मिकाली एल्गोरिथ्म में [[असतत लघुगणक समस्या]] की कठिनाई के आधार पर सुरक्षा प्रमाण है, किन्तु यह बहुत अक्षम भी है। | ||
* [[सर्टिकॉम]] के डेनियल ब्राउन ने [[दोहरी ईसी डीआरबीजी]] के लिए 2006 का सुरक्षा प्रमाण लिखा है, जो डिसीजनल डिफी-हेलमैन धारणा की अनुमानित कठोरता, ्स-लघुगणक समस्या | * [[सर्टिकॉम]] के डेनियल ब्राउन ने [[दोहरी ईसी डीआरबीजी]] के लिए 2006 का सुरक्षा प्रमाण लिखा है, जो डिसीजनल डिफी-हेलमैन धारणा की अनुमानित कठोरता, ्स-लघुगणक समस्या एवं ट्रंकेटेड पॉइंट समस्या पर आधारित है। 2006 का प्रमाण स्पष्ट रूप से कम आउटलेन मानता है{{clarify|This needs to be defined|date=August 2020}} Dual_EC_DRBG मानक की तुलना में, एवं यह कि Dual_EC_DRBG मानक में P एवं Q (जो 2013 में NSA द्वारा संभवतः बैकडोर किए जाने के रूप में सामने आए थे) को गैर-बैकडोर मानों से बदल दिया गया है। | ||
===विशेष डिज़ाइन=== | ===विशेष डिज़ाइन=== | ||
ऐसे कई व्यावहारिक पीआरएनजी हैं जिन्हें क्रिप्टोग्राफ़िक रूप से सुरक्षित बनाने के लिए डिज़ाइन किया गया है, जिनमें शामिल हैं | ऐसे कई व्यावहारिक पीआरएनजी हैं जिन्हें क्रिप्टोग्राफ़िक रूप से सुरक्षित बनाने के लिए डिज़ाइन किया गया है, जिनमें शामिल हैं | ||
* [[यारो एल्गोरिथ्म]] जो इसके इनपुट की एन्ट्रोपिक गुणवत्ता का मूल्यांकन करने का प्रयास करता है। दिसंबर 2019 तक यारो का उपयोग [[macOS]] | * [[यारो एल्गोरिथ्म]] जो इसके इनपुट की एन्ट्रोपिक गुणवत्ता का मूल्यांकन करने का प्रयास करता है। दिसंबर 2019 तक यारो का उपयोग [[macOS]] एवं अन्य Apple OS में किया जाता था। तब से Apple ने Fortona पर स्विच कर लिया है। (देखें/देव/यादृच्छिक)। | ||
*[[ChaCha20]] एल्गोरिथ्म ने [[OpenBSD]] (संस्करण 5.4) में [[RC4]] को प्रतिस्थापित कर दिया,<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> [[नेटबीएसडी]] (संस्करण sh.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> | *[[ChaCha20]] एल्गोरिथ्म ने [[OpenBSD]] (संस्करण 5.4) में [[RC4]] को प्रतिस्थापित कर दिया,<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> [[नेटबीएसडी]] (संस्करण sh.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)।<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 में चाचा20 ने [[लिनक्स]] में [[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> | * संस्करण 4.8 में चाचा20 ने [[लिनक्स]] में [[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 के आसपास अधिकांश या सभी Apple OS के लिए Apple को Fortona में बदल दिया गया। | * फोर्टुना (पीआरएनजी), यारो का उत्तराधिकारी, जो अपने इनपुट की एन्ट्रोपिक गुणवत्ता का मूल्यांकन करने का प्रयास नहीं करता है। फ्रीबीएसडी में फ़ोर्टुना का उपयोग किया जाता है। दिसंबर 2019 के आसपास अधिकांश या सभी Apple OS के लिए Apple को Fortona में बदल दिया गया। | ||
* [[माइक्रोसॉफ्ट]] के [[क्रिप्टोग्राफ़िक एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस]] में प्रदान किया गया फ़ंक्शन [[CryptGenRandom]] | * [[माइक्रोसॉफ्ट]] के [[क्रिप्टोग्राफ़िक एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस]] में प्रदान किया गया फ़ंक्शन [[CryptGenRandom]] | ||
* ISAAC (सिफर) [[RC4]] सिफर के प्रकार पर आधारित है | * ISAAC (सिफर) [[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> | * [[मानक और प्रौद्योगिकी का राष्ट्रीय संस्थान|मानक एवं प्रौद्योगिकी का राष्ट्रीय संस्थान]] स्टैटिस्टिकल टेस्ट सूट के आधार पर [[विकासवादी एल्गोरिदम]] के साथ रैखिक-प्रतिक्रिया शिफ्ट रजिस्टर को ट्यून किया गया।<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#RC4-आधारित यादृच्छिक संख्या जनरेटर | * Rc4#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 मानक (वित्तीय संस्थान कुंजी प्रबंधन (थोक)), जिसे [[संघीय सूचना प्रसंस्करण मानक]] मानक के रूप में भी अपनाया गया है। यह इनपुट के रूप में [[ट्रिपल डेस]] (ट्रिपल डेस#कुंजी विकल्प) कुंजी बंडल k | * अमेरिकी राष्ट्रीय मानक संस्थान X9.17 मानक (वित्तीय संस्थान कुंजी प्रबंधन (थोक)), जिसे [[संघीय सूचना प्रसंस्करण मानक]] मानक के रूप में भी अपनाया गया है। यह इनपुट के रूप में [[ट्रिपल डेस]] (ट्रिपल डेस#कुंजी विकल्प) कुंजी बंडल k एवं (प्रारंभिक मान) 64-बिट [[यादृच्छिक बीज]] लेता है।<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|''t'' {{=}} TDEA<sub>''k''</sub>(''D'')}} | ||
Line 125: | Line 123: | ||
* [[एनआईएसटी एसपी 800-90ए]]: | * [[एनआईएसटी एसपी 800-90ए]]: | ||
:इस वापस लिए गए मानक में चार पीआरएनजी हैं। उनमें से दो निर्विवाद | :इस वापस लिए गए मानक में चार पीआरएनजी हैं। उनमें से दो निर्विवाद एवं सिद्ध हैं: सीएसपीआरएनजीs जिनका नाम Hash_DRBG है<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> एवं HMAC_DRBG.<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 हटा दिया गया है, एवं यह वापस लिए गए मानक का प्रतिस्थापन है। | ||
* एएनएसआई X9.17-1985 परिशिष्ट सी | * एएनएसआई X9.17-1985 परिशिष्ट सी | ||
* एएनएसआई X9.31-1998 परिशिष्ट A.2.4 | * एएनएसआई X9.31-1998 परिशिष्ट A.2.4 | ||
Line 139: | Line 137: | ||
[[एनआईएसटी]] द्वारा अच्छा संदर्भ बनाए रखा जाता है।<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> | [[एनआईएसटी]] द्वारा अच्छा संदर्भ बनाए रखा जाता है।<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 PRNG== में NSA क्लेप्टोग्राफ़िक बैकडोर | ==Dual_EC_DRBG PRNG== में NSA क्लेप्टोग्राफ़िक बैकडोर | ||
{{main|Dual_EC_DRBG}} | {{main|Dual_EC_DRBG}} | ||
[[अभिभावक]] [[दी न्यू यौर्क टाइम्स]] ने 2013 में रिपोर्ट दी थी कि [[राष्ट्रीय सुरक्षा एजेंसी]] (एनएसए) ने एनआईएसटी एसपी 800-90ए के छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी) में [[ पिछला दरवाजा (कंप्यूटिंग) ]] डाला था जो एनएसए को एन्क्रिप्टेड सामग्री को आसानी से डिक्रिप्ट करने की अनुमति देता है। दोहरी ईसी डीआरबीजी की सहायता से। दोनों पेपर रिपोर्ट करते हैं<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 में दुनिया भर में उपयोग के लिए स्वीकृत एनआईएसटी ड्राफ्ट सुरक्षा मानक के अपने संस्करण को प्राप्त करने के लिए गुप्त रूप से काम किया। लीक हुए दस्तावेज़ में कहा गया है कि अंततः, एनएसए मात्र संपादक बन गया। क्लेप्टोग्राफी बैकडोर की ज्ञात क्षमता | [[अभिभावक]] [[दी न्यू यौर्क टाइम्स]] ने 2013 में रिपोर्ट दी थी कि [[राष्ट्रीय सुरक्षा एजेंसी]] (एनएसए) ने एनआईएसटी एसपी 800-90ए के छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी) में [[ पिछला दरवाजा (कंप्यूटिंग) ]] डाला था जो एनएसए को एन्क्रिप्टेड सामग्री को आसानी से डिक्रिप्ट करने की अनुमति देता है। दोहरी ईसी डीआरबीजी की सहायता से। दोनों पेपर रिपोर्ट करते हैं<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 के साथ अन्य ज्ञात महत्वपूर्ण कमियों के बावजूद, RSA सिक्योरिटी जैसी कई कंपनियों ने 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 को, पेंसिल्वेनिया विश्वविद्यालय | 23 अक्टूबर, 2017 को, पेंसिल्वेनिया विश्वविद्यालय एवं [[जॉन्स हॉपकिन्स विश्वविद्यालय]] के [[क्रिप्टोग्राफर]]्स [[शानन कोहनी]], मैथ्यू डी. ग्रीन एवं [[नादिया हेनिंगर]] ने [[WPA2]] पर DUHK (हार्ड-कोडेड कुंजी का उपयोग न करें) हमले का विवरण जारी किया, जहां हार्डवेयर विक्रेता उपयोग करते हैं। एएनएसआई 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> | ||
== जापानी बैंगनी सिफर मशीन == | == जापानी बैंगनी सिफर मशीन == |
Revision as of 19:29, 2 August 2023
क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर (सीएसपीआरएनजी) या क्रिप्टोग्राफ़िक छद्म यादृच्छिक संख्या जनरेटर (CPRNG) छद्म यादृच्छिक संख्या जनरेटर (PRNG) है जिसमें ऐसे गुण हैं जो इसे क्रिप्टोग्राफी में उपयोग के लिए उपयुक्त बनाते हैं। इसे क्रिप्टोग्राफ़िक रैंडम नंबर जेनरेटर (सीआरएनजी) के रूप में भी जाना जाता है।
पृष्ठभूमि
अधिकांश क्रिप्टोग्राफी के लिए यादृच्छिक संख्याओं की आवश्यकता होती है, उदाहरण के लिए:
- प्रमुख पीढ़ी
- क्रिप्टोग्राफ़िक गैर
- ECDSA, PKCS 1|RSASSA-PSS सहित कुछ हस्ताक्षर योजनाओं में नमक (क्रिप्टोग्राफी)।
इन अनुप्रयोगों के लिए आवश्यक यादृच्छिकता की गुणवत्ता भिन्न-भिन्न होती है। उदाहरण के लिए, कुछ क्रिप्टोग्राफ़िक प्रोटोकॉल में क्रिप्टोग्राफ़िक नॉन बनाने के लिए केवल विशिष्टता की आवश्यकता होती है। दूसरी ओर, मास्टर कुंजी (क्रिप्टोग्राफी) के निर्माण के लिए उच्च गुणवत्ता, जैसे अधिक एन्ट्रापी की आवश्यकता होती है। एवं वन-टाइम पैड के विषय में, सूचना सिद्धांत | सही गोपनीयता की सूचना-सैद्धांतिक गारंटी केवल तभी मान्य होती है जब मुख्य सामग्री उच्च एन्ट्रापी के साथ सत्य यादृच्छिक स्रोत से आती है, एवं इस प्रकार किसी भी प्रकार का छद्म यादृच्छिक संख्या जनरेटर अपर्याप्त है।
आदर्श रूप से, सीएसपीआरएनजी में यादृच्छिक संख्याओं का निर्माण उच्च गुणवत्ता वाले स्रोत से प्राप्त एन्ट्रापी का उपयोग करता है, सामान्यतः ऑपरेटिंग प्रणाली की यादृच्छिकता एपीआई। चूँकि, ऐसी कई प्रकट रूप से स्वतंत्र प्रक्रियाओं में अप्रत्याशित सहसंबंध प्राप्त हुए हैं। सूचना-सैद्धांतिक दृष्टिकोण से, यादृच्छिकता की मात्रा, उत्पन्न की जा सकने वाली एन्ट्रापी, प्रणाली द्वारा प्रदान की गई एन्ट्रापी के समान है। किन्तु कभी-कभी, व्यावहारिक स्थितियों में, उपलब्ध एन्ट्रापी की तुलना में अधिक यादृच्छिक संख्याओं की आवश्यकता होती है। साथ ही, किसी चालू प्रणाली से यादृच्छिकता निकालने की प्रक्रियाएँ वास्तविक व्यवहार में धीमी हैं। ऐसे मामलों में, कभी-कभी सीएसपीआरएनजी का उपयोग किया जा सकता है। सीएसपीआरएनजी उपलब्ध एन्ट्रापी को अधिक बिट्स तक फैला सकता है।
आवश्यकताएँ
क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर (सीएसपीआरएनजी) या क्रिप्टोग्राफ़िक छद्म यादृच्छिक संख्या जनरेटर (CPRNG)[1] छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी) है जिसमें ऐसे गुण हैं जो इसे क्रिप्टोग्राफी में उपयोग के लिए उपयुक्त बनाते हैं। इसे क्रिप्टोग्राफ़िक रैंडम नंबर जेनरेटर (सीआरएनजी) के रूप में भी जाना जाता है।[2][3] जिसकी तुलना यादृच्छिक संख्या पीढ़ी से की जा सकती है # सही बनाम छद्म-यादृच्छिक संख्याएँ| सत्य बनाम छद्म-यादृच्छिक संख्याएँ।
सामान्य पीआरएनजी की आवश्यकताएं क्रिप्टोग्राफ़िक रूप से सुरक्षित पीआरएनजी से भी संतुष्ट होती हैं, किन्तु इसका विपरीत सच नहीं है। सीएसपीआरएनजी आवश्यकताएँ दो समूहों में आती हैं: पहला, कि वे सांख्यिकीय यादृच्छिकता परीक्षण पास करते हैं; एवं दूसरी बात, कि वे गंभीर हमले के तहत अच्छी तरह से टिके रहते हैं, तब भी जब उनकी प्रारंभिक या चालू स्थिति का हिस्सा किसी हमलावर के लिए उपलब्ध हो जाता है।[citation needed]
- प्रत्येक सीएसपीआरएनजी को अगले बिट परीक्षण को पूरा करना चाहिए। यानी, यादृच्छिक अनुक्रम के पहले k बिट्स को देखते हुए, कोई बहुपद-समय एल्गोरिदम नहीं है जो सफलता की संभावना के साथ (k+1)वें बिट की भविष्यवाणी कर सके। -50% से नगण्य रूप से बेहतर।[4] एंड्रयू याओ ने 1982 में साबित किया कि अगला-बिट परीक्षण पास करने वाला जनरेटर यादृच्छिकता के लिए अन्य सभी बहुपद-समय सांख्यिकीय परीक्षण पास कर लेगा।[5]
- प्रत्येक सीएसपीआरएनजी को राज्य समझौता विस्तार का सामना करना चाहिए। इस घटना में कि इसकी स्थिति का भाग या पूरा भाग प्रकट हो गया है (या सही ढंग से अनुमान लगाया गया है), रहस्योद्घाटन से पहले यादृच्छिक संख्याओं की धारा का पुनर्निर्माण करना असंभव होना चाहिए। इसके अतिरिक्त, यदि चलते समय कोई एन्ट्रापी इनपुट है, तो सीएसपीआरएनजी स्थिति की भविष्य की स्थितियों की भविष्यवाणी करने के लिए इनपुट की स्थिति के ज्ञान का उपयोग करना संभव नहीं होना चाहिए।
- उदाहरण: यदि विचाराधीन सीएसपीआरएनजी बाइनरी विस्तार में किसी अज्ञात बिंदु से शुरू करके क्रम में pi|π के बिट्स की गणना करके आउटपुट उत्पन्न करता है, तो यह अगले-बिट परीक्षण को अच्छी तरह से संतुष्ट कर सकता है एवं इस प्रकार सांख्यिकीय रूप से यादृच्छिक हो सकता है, क्योंकि π यादृच्छिक अनुक्रम प्रतीत होता है। (उदाहरण के लिए, यदि π सामान्य संख्या है तो इसकी गारंटी होगी।) चूँकि, यह एल्गोरिदम क्रिप्टोग्राफ़िक रूप से सुरक्षित नहीं है; हमलावर जो यह निर्धारित करता है कि पाई का कौन सा बिट (यानी एल्गोरिदम की स्थिति) वर्तमान में उपयोग में है, वह सभी पूर्ववर्ती बिट्स की गणना करने में भी सक्षम होगा।
अधिकांश पीआरएनजी सीएसपीआरएनजी के रूप में उपयोग के लिए उपयुक्त नहीं हैं एवं दोनों ही मामलों में विफल हो जाएंगे। सबसे पहले, जबकि अधिकांश पीआरएनजी आउटपुट मिश्रित सांख्यिकीय परीक्षणों के लिए यादृच्छिक दिखाई देते हैं, वे निर्धारित रिवर्स इंजीनियरिंग का विरोध नहीं करते हैं। विशिष्ट सांख्यिकीय परीक्षण विशेष रूप से ऐसे पीआरएनजी से जुड़े हुए पाए जा सकते हैं जो यादृच्छिक संख्याओं को वास्तव में यादृच्छिक नहीं दिखाते हैं। दूसरा, अधिकांश पीआरएनजी के लिए, जब उनकी स्थिति का खुलासा हो जाता है, तो सभी पिछले यादृच्छिक संख्याओं को पूर्वव्यापी किया जा सकता है, जिससे हमलावर को सभी पिछले संदेशों के साथ-साथ भविष्य के संदेशों को भी पढ़ने की अनुमति मिलती है।
सीएसपीआरएनजी को इस प्रकार के क्रिप्ट विश्लेषण का विरोध करने के लिए स्पष्ट रूप से डिज़ाइन किया गया है।
परिभाषाएँ
एसिम्प्टोटिक सुरक्षा में, नियतात्मक बहुपद समय गणना योग्य कार्यों का परिवार कुछ बहुपद के लिए p, छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी, या कुछ संदर्भों में पीआरजी) है, यदि यह अपने इनपुट की लंबाई बढ़ाता है ( किसी के लिए k), एवं यदि इसका आउटपुट वास्तविक यादृच्छिकता से कम्प्यूटेशनल अप्रभेद्यता है, यानी किसी भी संभाव्य बहुपद समय एल्गोरिदम के लिए A, जो विभेदक के रूप में 1 या 0 आउटपुट करता है,
कुछ नगण्य कार्य के लिए .[6] (संकेतन मतलब कि x को सेट से यादृच्छिक रूप से समान वितरण (असतत) चुना जाता है X.)
समतुल्य लक्षण वर्णन है: किसी भी फ़ंक्शन परिवार के लिए , G पीआरएनजी है यदि एवं केवल यदि अगला आउटपुट बिट हो G बहुपद समय एल्गोरिथ्म द्वारा भविष्यवाणी नहीं की जा सकती।[7] ब्लॉक लंबाई के साथ फॉरवर्ड-सुरक्षित पीआरएनजी पीआरएनजी है , जहां इनपुट स्ट्रिंग है लंबाई के साथ k अवधि की वर्तमान स्थिति है i, एवं आउटपुट (, ) में अगला राज्य शामिल है एवं छद्म यादृच्छिक आउटपुट ब्लॉक अवधि का i, जो निम्नलिखित अर्थों में राज्य समझौता विस्तार का सामना करता है। यदि प्रारंभिक अवस्था से यादृच्छिक रूप से समान रूप से चुना जाता है , फिर किसी के लिए i, क्रम कम्प्यूटेशनल रूप से अप्रभेद्य होना चाहिए , जिसमें से समान रूप से यादृच्छिक रूप से चुने जाते हैं .[8] कोई भी पीआरएनजी ब्लॉक लंबाई के साथ फॉरवर्ड सुरक्षित पीआरएनजी में बदला जा सकता है इसके आउटपुट को अगली स्थिति एवं वास्तविक आउटपुट में विभाजित करके। यह सेटिंग द्वारा किया जाता है , जिसमें एवं ; तब G फॉरवर्ड सुरक्षित पीआरएनजी है अगले राज्य के रूप में एवं वर्तमान अवधि के छद्म यादृच्छिक आउटपुट ब्लॉक के रूप में।
एंट्रॉपी निष्कर्षण
संथा एवं वज़ीरानी ने साबित किया कि कमजोर यादृच्छिकता वाली कई बिट धाराओं को उच्च गुणवत्ता वाली अर्ध-यादृच्छिक बिट स्ट्रीम उत्पन्न करने के लिए जोड़ा जा सकता है।[9] इससे पहले भी, जॉन वॉन न्यूमैन ने साबित किया था कि रैंडमनेस ्सट्रैक्टर#वॉन न्यूमैन ्सट्रैक्टर किसी भी बिट स्ट्रीम में काफी मात्रा में पूर्वाग्रह को हटा सकता है,[10] जिसे संथा-वज़ीरानी डिज़ाइन के किसी भी बदलाव का उपयोग करने से पहले प्रत्येक बिट स्ट्रीम पर लागू किया जाना चाहिए।
डिज़ाइन
नीचे दी गई चर्चा में, सीएसपीआरएनजी डिज़ाइन को तीन वर्गों में विभाजित किया गया है:
- जो क्रिप्टोग्राफ़िक प्राइमेटिव्स जैसे सिफ़र एवं क्रिप्टोग्राफ़िक हैश पर आधारित हैं,
- जो गणितीय समस्याओं पर आधारित हैं उन्हें कठिन माना जाता है, एवं
- विशेष प्रयोजन डिजाइन.
उत्तरार्द्ध अक्सर उपलब्ध होने पर अतिरिक्त एन्ट्रापी का परिचय देता है एवं, सख्ती से बोलते हुए, शुद्ध छद्म यादृच्छिक संख्या जनरेटर नहीं होते हैं, क्योंकि उनका आउटपुट पूरी तरह से उनकी प्रारंभिक स्थिति से निर्धारित नहीं होता है। प्रारंभिक स्थिति से समझौता होने पर भी यह जोड़ हमलों को रोक सकता है।
क्रिप्टोग्राफ़िक आदिमों पर आधारित डिज़ाइन
- सुरक्षित ब्लॉक सिफर ऑपरेशन के सिफर मोड को ब्लॉक करें चलाकर सीएसपीआरएनजी में परिवर्तित किया जा सकता है[dubious ]. यह यादृच्छिक कुंजी चुनकर एवं 0 को एन्क्रिप्ट करके, फिर 1 को एन्क्रिप्ट करके, फिर 2 को एन्क्रिप्ट करके आदि द्वारा किया जाता है। काउंटर को शून्य के अलावा किसी अन्य मनमाने नंबर पर भी शुरू किया जा सकता है। एन-बिट ब्लॉक सिफर मानते हुए आउटपुट को लगभग 2 के बाद यादृच्छिक डेटा से अलग किया जा सकता हैn/2 ब्लॉक करता है, क्योंकि जन्मदिन की समस्या के बाद, उस बिंदु पर टकराने वाले ब्लॉक की संभावना बननी चाहिए, जबकि सीटीआर मोड में ब्लॉक सिफर कभी भी समान ब्लॉक को आउटपुट नहीं करेगा। 64-बिट ब्लॉक सिफर के लिए यह सुरक्षित आउटपुट आकार को कुछ गीगाबाइट तक सीमित करता है, 128-बिट ब्लॉक के साथ यह सीमा इतनी बड़ी है कि सामान्य अनुप्रयोगों को प्रभावित नहीं करती है। चूँकि, जब अकेले उपयोग किया जाता है तो यह सीएसपीआरएनजी के सभी मानदंडों को पूरा नहीं करता है (जैसा कि ऊपर बताया गया है) क्योंकि यह राज्य समझौता ्सटेंशन के खिलाफ मजबूत नहीं है: राज्य के ज्ञान (इस विषय में काउंटर एवं कुंजी) के साथ आप सभी पिछले आउटपुट की भविष्यवाणी कर सकते हैं।
- काउंटर का क्रिप्टोग्राफ़िक रूप से सुरक्षित क्रिप्टोग्राफ़िक हैश फ़ंक्शन कुछ मामलों में अच्छे सीएसपीआरएनजी के रूप में भी कार्य कर सकता है। ऐसे में यह भी जरूरी है कि इस काउंटर का शुरुआती मूल्य यादृच्छिक एवं गुप्त हो. चूँकि, इस तरीके से उपयोग के लिए इन एल्गोरिदम का बहुत कम अध्ययन किया गया है, एवं कम से कम कुछ लेखक इस उपयोग के खिलाफ चेतावनी देते हैं।[vague][11]
- अधिकांश धारा सिफर बिट्स की छद्म यादृच्छिक स्ट्रीम उत्पन्न करके काम करते हैं जो सादे पाठ के साथ संयुक्त (लगभग हमेशा बिटवाइज़ XORed) होते हैं; काउंटर पर सिफर चलाने से संभवतः लंबी अवधि के साथ नई छद्म यादृच्छिक धारा वापस आ जाएगी। सिफर केवल तभी सुरक्षित हो सकता है यदि मूल स्ट्रीम अच्छा सीएसपीआरएनजी है, चूँकि यह आवश्यक नहीं है (RC4 सिफर देखें)। पुनः, प्रारंभिक अवस्था को गुप्त रखा जाना चाहिए।
संख्या-सैद्धांतिक डिज़ाइन
- ब्लम ब्लम शब एल्गोरिदम में द्विघात अवशिष्टता समस्या की कठिनाई के आधार पर सुरक्षा प्रमाण है। चूँकि उस समस्या को हल करने का मात्र ज्ञात तरीका मापांक का गुणनखंड करना है, सामान्यतः यह माना जाता है कि पूर्णांक गुणनखंडन की कठिनाई ब्लम ब्लम शब एल्गोरिथ्म के लिए सशर्त सुरक्षा प्रमाण प्रदान करती है। चूँकि एल्गोरिथ्म बहुत अक्षम है एवं इसलिए अव्यावहारिक है जब तक कि अत्यधिक सुरक्षा की आवश्यकता न हो।
- ब्लम-मिकाली एल्गोरिथ्म में असतत लघुगणक समस्या की कठिनाई के आधार पर सुरक्षा प्रमाण है, किन्तु यह बहुत अक्षम भी है।
- सर्टिकॉम के डेनियल ब्राउन ने दोहरी ईसी डीआरबीजी के लिए 2006 का सुरक्षा प्रमाण लिखा है, जो डिसीजनल डिफी-हेलमैन धारणा की अनुमानित कठोरता, ्स-लघुगणक समस्या एवं ट्रंकेटेड पॉइंट समस्या पर आधारित है। 2006 का प्रमाण स्पष्ट रूप से कम आउटलेन मानता है[clarification needed] Dual_EC_DRBG मानक की तुलना में, एवं यह कि Dual_EC_DRBG मानक में P एवं Q (जो 2013 में NSA द्वारा संभवतः बैकडोर किए जाने के रूप में सामने आए थे) को गैर-बैकडोर मानों से बदल दिया गया है।
विशेष डिज़ाइन
ऐसे कई व्यावहारिक पीआरएनजी हैं जिन्हें क्रिप्टोग्राफ़िक रूप से सुरक्षित बनाने के लिए डिज़ाइन किया गया है, जिनमें शामिल हैं
- यारो एल्गोरिथ्म जो इसके इनपुट की एन्ट्रोपिक गुणवत्ता का मूल्यांकन करने का प्रयास करता है। दिसंबर 2019 तक यारो का उपयोग macOS एवं अन्य Apple OS में किया जाता था। तब से Apple ने Fortona पर स्विच कर लिया है। (देखें/देव/यादृच्छिक)।
- ChaCha20 एल्गोरिथ्म ने OpenBSD (संस्करण 5.4) में RC4 को प्रतिस्थापित कर दिया,[12] नेटबीएसडी (संस्करण sh.0),[13] एवं फ्रीबीएसडी (संस्करण 12.0)।[14]
- संस्करण 4.8 में चाचा20 ने लिनक्स में SHA-1 को भी प्रतिस्थापित कर दिया।[15]
- फोर्टुना (पीआरएनजी), यारो का उत्तराधिकारी, जो अपने इनपुट की एन्ट्रोपिक गुणवत्ता का मूल्यांकन करने का प्रयास नहीं करता है। फ्रीबीएसडी में फ़ोर्टुना का उपयोग किया जाता है। दिसंबर 2019 के आसपास अधिकांश या सभी Apple OS के लिए Apple को Fortona में बदल दिया गया।
- माइक्रोसॉफ्ट के क्रिप्टोग्राफ़िक एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस में प्रदान किया गया फ़ंक्शन CryptGenRandom
- ISAAC (सिफर) RC4 सिफर के प्रकार पर आधारित है
- मानक एवं प्रौद्योगिकी का राष्ट्रीय संस्थान स्टैटिस्टिकल टेस्ट सूट के आधार पर विकासवादी एल्गोरिदम के साथ रैखिक-प्रतिक्रिया शिफ्ट रजिस्टर को ट्यून किया गया।[16][17]
- Rc4#RC4-आधारित यादृच्छिक संख्या जनरेटर
- उन्नत एन्क्रिप्शन स्टैंडर्ड-ब्लॉक सिफर मोड ऑफ़ ऑपरेशन#सीटीआर डीआरबीजी का उपयोग अक्सर एईएस एन्क्रिप्शन का उपयोग करने वाले प्रणाली में यादृच्छिक संख्या जनरेटर के रूप में किया जाता है।[18][19]
- अमेरिकी राष्ट्रीय मानक संस्थान X9.17 मानक (वित्तीय संस्थान कुंजी प्रबंधन (थोक)), जिसे संघीय सूचना प्रसंस्करण मानक मानक के रूप में भी अपनाया गया है। यह इनपुट के रूप में ट्रिपल डेस (ट्रिपल डेस#कुंजी विकल्प) कुंजी बंडल k एवं (प्रारंभिक मान) 64-बिट यादृच्छिक बीज लेता है।[20] हर बार यादृच्छिक संख्या की आवश्यकता होती है:
- वर्तमान दिनांक/समय D को अधिकतम संभव रिज़ॉल्यूशन तक प्राप्त करता है।
- अस्थायी मान की गणना करता है t = TDEAk(D)
- यादृच्छिक मान की गणना करता है x = TDEAk(s ⊕ t), जहां ⊕ बिटवाइज़ मात्र को दर्शाता है।
- बीज को अद्यतन करता है s = TDEAk(x ⊕ t)
- जाहिर है, तकनीक को किसी भी ब्लॉक सिफर के लिए आसानी से सामान्यीकृत किया जा सकता है; उन्नत एन्क्रिप्शन मानक का सुझाव दिया गया है।[21]
मानक
कई सीएसपीआरएनजी को मानकीकृत किया गया है। उदाहरण के लिए,
- FIPS 186-4[22]
- एनआईएसटी एसपी 800-90ए:
- इस वापस लिए गए मानक में चार पीआरएनजी हैं। उनमें से दो निर्विवाद एवं सिद्ध हैं: सीएसपीआरएनजीs जिनका नाम Hash_DRBG है[23] एवं HMAC_DRBG.[24]
- इस मानक में तीसरा पीआरएनजी, सीटीआर डीआरबीजी, काउंटर मोड में चलने वाले ब्लॉक सिफर पर आधारित है। इसका डिज़ाइन निर्विवाद है, किन्तु अंतर्निहित ब्लॉक सिफर के सुरक्षा स्तर की तुलना में हमले को भेदने के विषय में यह कमजोर साबित हुआ है, जब इस पीआरएनजी से आउटपुट बिट्स की संख्या अंतर्निहित ब्लॉक सिफर के ब्लॉक आकार की शक्ति से दो से अधिक है। टुकड़ों में.[25]
- जब इस पीआरएनजी से आउटपुट बिट्स की अधिकतम संख्या 2 के समान होब्लॉकसाइज़, परिणामी आउटपुट गणितीय रूप से अपेक्षित सुरक्षा स्तर प्रदान करता है जिसे कुंजी आकार उत्पन्न करने की उम्मीद की जाएगी, किन्तु आउटपुट को वास्तविक यादृच्छिक संख्या जनरेटर से अप्रभेद्य नहीं दिखाया गया है।[25]जब इस पीआरएनजी से आउटपुट बिट्स की अधिकतम संख्या इससे कम होती है, तो अपेक्षित सुरक्षा स्तर प्रदान किया जाता है एवं आउटपुट वास्तविक यादृच्छिक संख्या जनरेटर से अप्रभेद्य प्रतीत होता है।[25]
- अगले संशोधन में यह नोट किया गया है कि CTR_DRBG के लिए दावा की गई सुरक्षा ताकत उत्पन्न अनुरोधों की कुल संख्या एवं प्रति उत्पन्न अनुरोध प्रदान की गई बिट्स को सीमित करने पर निर्भर करती है।
- इस मानक में चौथे एवं अंतिम पीआरएनजी को डुअल ईसी डीआरबीजी नाम दिया गया है। यह दिखाया गया है कि यह क्रिप्टोग्राफ़िक रूप से सुरक्षित नहीं है एवं माना जाता है कि इसमें क्लेप्टोग्राफ़ी एनएसए बैकडोर है।[26]
- 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)
एनआईएसटी द्वारा अच्छा संदर्भ बनाए रखा जाता है।[27] नए सीएसपीआरएनजी डिज़ाइनों के सांख्यिकीय परीक्षण के लिए भी मानक हैं:
- रैंडम एवं छद्म यादृच्छिक संख्या जेनरेटर के लिए सांख्यिकीय परीक्षण सूट, एनआईएसटी विशेष प्रकाशन 800-22।[28]
==Dual_EC_DRBG PRNG== में NSA क्लेप्टोग्राफ़िक बैकडोर
अभिभावक दी न्यू यौर्क टाइम्स ने 2013 में रिपोर्ट दी थी कि राष्ट्रीय सुरक्षा एजेंसी (एनएसए) ने एनआईएसटी एसपी 800-90ए के छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी) में पिछला दरवाजा (कंप्यूटिंग) डाला था जो एनएसए को एन्क्रिप्टेड सामग्री को आसानी से डिक्रिप्ट करने की अनुमति देता है। दोहरी ईसी डीआरबीजी की सहायता से। दोनों पेपर रिपोर्ट करते हैं[29][30] जैसा कि स्वतंत्र सुरक्षा विशेषज्ञों को लंबे समय से संदेह था,[31] एनएसए सीएसपीआरएनजी मानक 800-90 में कमज़ोरियाँ पेश कर रहा है; एड्वर्ड स्नोडेन द्वारा गार्जियन को लीक किए गए शीर्ष गुप्त दस्तावेजों में से द्वारा पहली बार इसकी पुष्टि की गई। एनएसए ने 2006 में दुनिया भर में उपयोग के लिए स्वीकृत एनआईएसटी ड्राफ्ट सुरक्षा मानक के अपने संस्करण को प्राप्त करने के लिए गुप्त रूप से काम किया। लीक हुए दस्तावेज़ में कहा गया है कि अंततः, एनएसए मात्र संपादक बन गया। क्लेप्टोग्राफी बैकडोर की ज्ञात क्षमता एवं Dual_EC_DRBG के साथ अन्य ज्ञात महत्वपूर्ण कमियों के बावजूद, RSA सिक्योरिटी जैसी कई कंपनियों ने 2013 में बैकडोर की पुष्टि होने तक Dual_EC_DRBG का उपयोग जारी रखा।[32] ऐसा करने के लिए आरएसए सिक्योरिटी को एनएसए से $10 मिलियन का भुगतान प्राप्त हुआ।[33]
सुरक्षा खामियाँ
DUHK आक्रमण
23 अक्टूबर, 2017 को, पेंसिल्वेनिया विश्वविद्यालय एवं जॉन्स हॉपकिन्स विश्वविद्यालय के क्रिप्टोग्राफर्स शानन कोहनी, मैथ्यू डी. ग्रीन एवं नादिया हेनिंगर ने WPA2 पर DUHK (हार्ड-कोडेड कुंजी का उपयोग न करें) हमले का विवरण जारी किया, जहां हार्डवेयर विक्रेता उपयोग करते हैं। एएनएसआई 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 (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.