छद्म यादृच्छिक संख्या जनरेटर
छद्म यादृच्छिक संख्या जनरेटर (पीआरएनजी), जिसे नियतात्मक यादृच्छिक बिट जनरेटर (डीआरसीडी) के रूप में भी जाना जाता है,[1] संख्याओं का अनुक्रम उत्पन्न करने के लिए कलन विधि है जिसका गुण यादृच्छिक संख्या पीढ़ी के अनुक्रमों के गुणों का अनुमान लगाता है। पीआरएनजी-जनित अनुक्रम वास्तव में यादृच्छिक नहीं है, क्योंकि यह पूरी तरह से प्रारंभिक मान द्वारा निर्धारित होता है, जिसे पीआरएनजी के यादृच्छिक सीड (जिसमें वास्तव में यादृच्छिक मान सम्मिलित हो सकते हैं) कहा जाता है। यद्यपि अनुक्रम जो वास्तव में यादृच्छिक के निकट हैं, उसमें हार्डवेयर यादृच्छिक संख्या जनरेटर का उपयोग करके उत्पन्न किए जा सकते हैं, 'छद्म यादृच्छिक संख्या जनरेटर' संख्या पीढ़ी में उनकी गति और उनकी पुनरुत्पादन के अभ्यास में महत्वपूर्ण हैं।[2]
पीआरएनजी सिमुलेशन (उदाहरण के लिए मोंटे कार्लो विधि के लिए), इलेक्ट्रॉनिक खेल (उदाहरण के लिए प्रक्रियात्मक पीढ़ी के लिए), और क्रिप्टोग्राफी जैसे अनुप्रयोगों में केंद्रीय हैं। क्रिप्टोग्राफ़िक अनुप्रयोगों के लिए आउटपुट की आवश्यकता होती है जो पहले के आउटपुट से अनुमानित न हो और अधिक विस्तृत एल्गोरिदम जो सरल PRNGs की रैखिकता को प्राप्त नहीं करते हैं, उनकी आवश्यकता होती है।
पीआरएनजी के आउटपुट के लिए अच्छी सांख्यिकीय गुण केंद्रीय आवश्यकता है। सामान्यतः, सावधान गणितीय विश्लेषण के लिए किसी भी विश्वास की आवश्यकता होती है कि पीआरएनजी ऐसी संख्याएँ उत्पन्न करता है जो इच्छित उपयोग के अनुरूप यादृच्छिक रूप से पर्याप्त रूप से निकट हैं। जॉन वॉन न्यूमैन ने वास्तव में यादृच्छिक जनरेटर के रूप में पीआरएनजी की गलत व्याख्या के बारे में चेतावनी दी, और मजाक में कहा कि जो कोई भी यादृच्छिक अंकों के उत्पादन के अंकगणितीय विधियों पर विचार करता है, निश्चित रूप से वह पाप की स्थिति में है।[3]
संभावित समस्याएँ
व्यवहार में, कई सामान्य पीआरएनजी से आउटपुट विरूपण साक्ष्य (त्रुटि)त्रुटि) प्रदर्शित करता है जो उन्हें सांख्यिकीय पैटर्न-डिटेक्शन परीक्षणों में असफल होने का कारण बनता है। इसमे सम्मिलित है:
- कुछ सीड अवस्थाओं के लिए अपेक्षा से कम अवधि (ऐसे सीड राज्यों को इस संदर्भ में कमजोर कहा जा सकता है) होती है;
- उत्पन्न संख्या की बड़ी मात्रा के लिए वितरण की एकरूपता का अभाव होता है;
- क्रमिक मानों का सहसंबंध;
- आउटपुट अनुक्रम का दोषपूर्ण आयामी वितरण;
- जहाँ कुछ मान होते हैं, उनके बीच की दूरियाँ यादृच्छिक अनुक्रम वितरण से भिन्न रूप से वितरित की जाती हैं।
त्रुटिपूर्ण पीआरएनजीएस द्वारा प्रदर्शित दोष अगोचर (और अज्ञात) से लेकर बहुत स्पष्ट तक होते हैं। उदाहरण आरएएनडीयू यादृच्छिक संख्या एल्गोरिथम था जिसका उपयोग दशकों से मेनफ़्रेम कंप्यूटरों पर किया जाता था। यह गंभीर रूप से त्रुटिपूर्ण था, किन्तु इसकी अपर्याप्तता बहुत लंबे समय तक नहीं चल पाई।
कई क्षेत्रों में, 21वीं सदी से पहले के अनुसंधान कार्य जो यादृच्छिक चयन या मोंटे कार्लो विधि सिमुलेशन पर निर्भर थे, या अन्य विधियों से पीआरएनजी पर निर्भर थे, दोषपूर्ण गुणवत्ता वाले पीआरएनजी का उपयोग करने के परिणामस्वरूप आदर्श से बहुत कम विश्वसनीय थे।[4] आज भी, कभी-कभी सावधानी प्रबंध की आवश्यकता होती है, जैसा कि सांख्यिकीय विज्ञान के अंतर्राष्ट्रीय विश्वकोश (2010) में निम्नलिखित चेतावनी द्वारा स्पष्ट किया गया है।[5]
व्यापक रूप से उपयोग किए जाने वाले जनरेटर की सूची जिसे त्याग दिया जाना चाहिए [अच्छे जनरेटर की सूची की तुलना में] बहुत लंबा है। सॉफ्टवेयर विक्रेताओं पर आंख बंद करके विश्वाश न करें। अपने पसंदीदा सॉफ़्टवेयर के डिफ़ॉल्ट आरएनजी की जाँच करें और यदि आवश्यक हो तो इसे बदलने के लिए तैयार रहें। यह आखिरी अनुरोध पिछले 40 वर्षों में बार-बार की गई है। शायद आश्चर्यजनक रूप से, यह आज भी उतना ही प्रासंगिक है जितना 40 साल पहले था।
एक उदाहरण के रूप में, व्यापक रूप से उपयोग की जाने वाली प्रोग्रामिंग भाषा जावा (प्रोग्रामिंग भाषा) पर विचार करें। 2020 तक, जावा अभी भी अपने पीआरएनजी के लिए एक रेखीय सर्वांगसम जनरेटर (एलसीजी) पर निर्भर था,[6][7] जो निम्न गुणवत्ता (आगे देखें) का है। जावा सपोर्ट को जावा 17 के साथ अपग्रेड किया गया था।
बड़ी समस्याओं से बचने और अभी भी काफी तेजी से चलने वाला प्रसिद्ध पीआरएनजी मेर्सन ट्विस्टर (नीचे चर्चा की गई) है, जिसे 1998 में प्रकाशित किया गया था। अन्य उच्च-गुणवत्ता वाले पीआरएनजी, कम्प्यूटेशनल और सांख्यिकीय प्रदर्शन के संदर्भ में, इसके पहले और बाद में विकसित किए गए थे। तिथि; इन्हें छद्म यादृच्छिक संख्या जेनरेटर की सूची में पहचाना जा सकता है।
रैखिक पुनरावृत्तियों पर आधारित जेनरेटर
20वीं शताब्दी के उत्तरार्ध में, पीआरएनजीएस के लिए उपयोग किए जाने वाले एल्गोरिदम के मानक वर्ग में रैखिक सर्वांगसम जनरेटर सम्मिलित थे। एलसीजी की गुणवत्ता अपर्याप्त होने के लिए जानी जाती थी, किन्तु उत्तम विधि उपलब्ध नहीं थे। प्रेस एट अल. (2007) ने परिणाम का वर्णन इस प्रकार किया: यदि [एलसीजीएस और संबंधित] के कारण संदेह में आने वाले सभी वैज्ञानिक कागजात पुस्तकालय की अलमारियों से लुप्त हो जाते हैं, तो प्रत्येक शेल्फ पर आपकी मुट्ठी जितनी बड़ी जगह होगी।[8]
छद्म आयामी जनरेटर के निर्माण में प्रमुख प्रगति दो-तत्व क्षेत्र पर रैखिक पुनरावृत्ति के आधार पर विधियों का परिचय था; ऐसे जनरेटर लीनियर-फीडबैक शिफ्ट रजिस्टर से संबंधित हैं।
1997 में मेर्सन ट्विस्टर का आविष्कार,[9] विशेष रूप से, पहले के जनरेटर के साथ कई समस्याओं से बचा गया था। मेर्सन ट्विस्टर की अवधि 219 937 − 1 पुनरावृत्तियां (≈ 4.3×106001) की है, यह 623 आयामों (32-बिट मानों के लिए) में (अधिकतम) समान रूप से वितरित होना सिद्ध हुआ है, और इसके प्रारंभ के समय अन्य सांख्यिकीय रूप से उचित जनरेटर की तुलना में तेजी से चल रहा था।
2003 में, जॉर्ज मार्सग्लिया ने एक रेखीय पुनरावृत्ति के आधार पर फिर से एक्सॉरशिफ्ट जेनरेटर के परिवार का प्रारंभ किया था,[10] इस प्रकार के जनरेटर बहुत तेज होते हैं और गैर-रैखिक ऑपरेशन के साथ संयुक्त होते हैं, वे शक्तिशाली सांख्यिकीय परीक्षण पास करते हैं।[11][12][13]
2006 में, जनरेटर के अच्छी तरह से वितरित लंबी अवधि के रैखिक परिवार को विकसित किया गया था।[14] डब्लूईएलएल जनरेटर कुछ अर्थों में मेर्सेन ट्विस्टर की गुणवत्ता में सुधार करता है, जिसमें बहुत बड़ा राज्य स्थान होता है और बड़ी संख्या में शून्य के साथ राज्य के स्थानों से बहुत धीमी गति से रिकवरी होती है।
क्रिप्टोग्राफ़िक पीआरएनजीएस
क्रिप्टोग्राफी अनुप्रयोगों के लिए उपयुक्त पीआरएनजी को क्रिप्टोग्राफिक रूप से सुरक्षित पीआरएनजी (सीएसपीआरएनजी) कहा जाता है। सीएसपीआरएनजी के लिए आवश्यकता यह है कि सीड को न जानने वाले विरोधी को यादृच्छिक अनुक्रम से जनरेटर के आउटपुट अनुक्रम को अलग करने में केवल नगण्य कार्य लाभ (क्रिप्टोग्राफी) होता है। दूसरे शब्दों में, जबकि पीआरएनजी को केवल कुछ सांख्यिकीय परीक्षणों को पास करने की आवश्यकता होती है, सीएसपीआरएनजी को सभी सांख्यिकीय परीक्षणों को पास करना होता है जो कि सीड के आकार में बहुपद समय तक सीमित हैं। चूंकि इस गुण का प्रमाण कम्प्यूटेशनल जटिलता सिद्धांत की कला की वर्तमान स्थिति से अधिक है, गणितीय समस्या से सीएसपीआरएनजी में कमी (जटिलता) द्वारा शक्तिशाली प्रमाण प्रदान किया जा सकता है जिसे कम्प्यूटेशनल कठोरता धारणा माना जाता है, जैसे कि पूर्णांक गुणनखंडन।[15] सामान्यतः, एल्गोरिथ्म को सीएसपीआरएनजी के रूप में प्रमाणित करने से पहले समीक्षा के वर्षों की आवश्यकता हो सकती है।
सीएसपीआरएनजी के कुछ वर्गों में निम्नलिखित सम्मिलित हैं:
- स्ट्रीम सिफर
- ब्लॉक सिफर काउंटर मोड[16] या आउटपुट प्रतिक्रिया मोड में चल रहा है
- पीआरएनजी जिन्हें विशेष रूप से क्रिप्टोग्राफ़िक रूप से सुरक्षित होने के लिए डिज़ाइन किया गया है, जैसे कि माइक्रोसॉफ्ट का क्रिप्टोग्राफिक एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस फ़ंक्शन क्रिप्टजेनरैंडम, यारो एल्गोरिदम (मैक ओएस एक्स और फ्रीबीएसडी में सम्मिलित), और फोर्टुना (पीआरएनजी) है।
- संयोजन पीआरएनजी जो किसी भी पता लगाने योग्य गैर-यादृच्छिकता को दूर करने के लक्ष्य के साथ कई पीआरएनजी आदिम एल्गोरिदम को संयोजित करने का प्रयास करता है
- गणितीय कठोरता मान्यताओं के आधार पर विशेष डिजाइन: उदाहरणों में मिकाली-श्नोर जनरेटर सम्मिलित हैं,[17] नोर-रीनॉल्ड स्यूडोरैंडम फंक्शन और ब्लम ब्लम शुब एल्गोरिदम, जो शक्तिशाली सुरक्षा प्रमाण (ऐसे एल्गोरिदम पारंपरिक निर्माणों की तुलना में धीमे हैं, और कई अनुप्रयोगों के लिए अव्यावहारिक हैं) प्रदान करते हैं
- सामान्य पीआरएनजी: जबकि यह दिखाया गया है कि (क्रिप्टोग्राफिक रूप से) सुरक्षित पीआरएनजी किसी भी तरफा कार्य से सामान्य रूप से बनाया जा सकता है,[18] यह सामान्य निर्माण व्यवहार में अधिक धीमा है, इसलिए मुख्य रूप से सैद्धांतिक रुचि है।
यह संभावना दिखाई गई है कि राष्ट्रीय सुरक्षा एजेंसी ने एनआईएसटी-प्रमाणित कूट-यादृच्छिक संख्या जनरेटर डुअल_ईसी_डीआरसीडी में एक असममित बैकडोर (कंप्यूटिंग) डाला है।[19]
अधिकांश पीआरएनजी एल्गोरिदम अनुक्रम उत्पन्न करते हैं जो कई परीक्षणों में से किसी द्वारा समान वितरण (असतत) होते हैं। यह खुला प्रश्न है, और क्रिप्टोग्राफी के सिद्धांत और अभ्यास के लिए केंद्रीय है, क्या उच्च गुणवत्ता वाले पीआरएनजी के आउटपुट को वास्तव में यादृच्छिक अनुक्रम से अलग करने का कोई विधि है। इस सेटिंग में, विभेदक जानता है कि या तो ज्ञात पीआरएनजी एल्गोरिदम का उपयोग (किन्तु वह अवस्था नहीं जिसके साथ इसे प्रारंभ किया गया था) किया गया था या वास्तव में यादृच्छिक एल्गोरिदम का उपयोग किया गया था, और दोनों के बीच अंतर करना है।[20] पीआरएनजी का उपयोग करने वाले अधिकांश क्रिप्टोग्राफ़िक एल्गोरिदम और प्रोटोकॉल की सुरक्षा इस धारणा पर आधारित है कि वास्तव में यादृच्छिक अनुक्रम के उपयोग से उपयुक्त पीआरएनजी के उपयोग को अलग करना संभव नहीं है। इस निर्भरता के सबसे सरल उदाहरण स्ट्रीम सिफर हैं, जो (अधिकांश) पीआरएनजी के आउटपुट के साथ संदेश के प्लेनटेक्स्ट को एकमात्र आईएनजी द्वारा काम करते हैं, सिफरटेक्स्ट का उत्पादन करते हैं। क्रिप्टोग्राफ़िक रूप से पर्याप्त पीआरएनजीएस का डिज़ाइन अत्यंत कठिन है क्योंकि उन्हें अतिरिक्त मानदंडों को पूरा करना होता है। पीआरएनजी की क्रिप्टोग्राफ़िक उपयुक्तता में इसकी अवधि का आकार महत्वपूर्ण कारक है, किन्तु केवल ही नहीं है।
बीएसआई मानांकन मानदंड
सूचना सुरक्षा के लिए जर्मन संघीय कार्यालय (German: बुंडेसम्ट फर सिचेरहाइट इन डेर इंफॉर्मेशनटेक्निक, बीएसआई) ने नियतात्मक यादृच्छिक संख्या जनरेटर की गुणवत्ता के लिए चार मापदंड स्थापित किए हैं।[21] उनका सारांश यहां दिया गया है:
- K1 - उच्च संभावना होनी चाहिए कि यादृच्छिक संख्याओं के उत्पन्न क्रम दूसरे से भिन्न हों।
- K2 -निर्दिष्ट सांख्यिकीय परीक्षणों के अनुसार संख्याओं का क्रम वास्तव में यादृच्छिक संख्याओं से अप्रभेद्य है। परीक्षण हैं मोनोबिट परीक्षण (अनुक्रम में और शून्य की समान संख्या), पोकर परीक्षण (ची-स्क्वेर्ड परीक्षण का विशेष उदाहरण), रन परीक्षण (विभिन्न लंबाई के रनों की आवृत्ति की गणना करता है), लॉन्ग्रन्स परीक्षण (जाँच करता है कि क्या बीएसआई[21] और एनआईएसटी,[22] और स्वतःसंबंध परीक्षण दोनों से लंबाई 34 या उससे अधिक 20 000 बिट्स अनुक्रम में उपस्थित है। संक्षेप में, ये आवश्यकताएं इस बात का परीक्षण हैं कि कितना अच्छा अनुक्रम है: शून्य और समान रूप से अधिकांश; एन शून्य (या एक) के अनुक्रम के बाद, अगला बिट (या शून्य) प्रायिकता के साथ एक-आधा; और किसी भी चयनित अनुक्रम में अनुक्रम में अगले तत्व(ओं) के बारे में कोई जानकारी नहीं है।
- K3 - किसी हमलावर के लिए (सभी व्यावहारिक उद्देश्यों के लिए) गणना करना, या अन्यथा अनुमान लगाना, किसी दिए गए क्रम से, अनुक्रम में किसी भी पिछले या भविष्य के मानों, और न ही जनरेटर की किसी भी आंतरिक स्थिति के लिए असंभव होना चाहिए।
- K4 - सभी व्यावहारिक उद्देश्यों के लिए, किसी हमलावर के लिए जनरेटर की आंतरिक स्थिति से अनुक्रम या किसी भी पिछले आंतरिक जनरेटर राज्यों में किसी भी पिछली संख्या की गणना करना या अनुमान लगाना असंभव होना चाहिए।
क्रिप्टोग्राफ़िक अनुप्रयोगों के लिए, केवल K3 या K4 मानकों को पूरा करने वाले जनरेटर ही स्वीकार्य हैं।
गणितीय परिभाषा
दिया गया:
- - संभाव्यता वितरण पर (जहाँ वास्तविक लाइन पर मानक बोरेल सेट है)
- - बोरेल सेट का गैर-खाली संग्रह , उदा. हैं। यदि निर्दिष्ट नहीं है, तो यह संदर्भ के आधार पर या , हो सकते हैं।
- – गैर-खाली सेट (जरूरी नहीं कि बोरेल सेट)। अधिकांश के बीच सेट है का समर्थन (गणित) और इसकी आंतरिक (टोपोलॉजी); उदाहरण के लिए, यदि अंतराल पर समान वितरण है , हो सकता है . यदि निर्दिष्ट नहीं है, इसे समर्थन में निहित कुछ सेट माना जाता है और संदर्भ के आधार पर इसके आंतरिक भाग को समाहित करता है।
हम समारोह कहते हैं (जहाँ धनात्मक पूर्णांकों का समूह है) के लिए छद्म-यादृच्छिक संख्या जनरेटर दिया गया मान लेना यदि और केवल यदि:
( परिमित सेट में तत्वों की संख्या को दर्शाता है।)
यह दिखाया जा सकता है कि यदि पर समान वितरण के लिए छद्म यादृच्छिक संख्या जनरेटर है और यदि कुछ दिए गए प्रायिकता बंटन का संचयी बंटन फलन है, तब के लिए छद्म-यादृच्छिक संख्या जनरेटर है, जहाँ का प्रतिशतक है, अर्थात । सहजता से, मनमाना वितरण मानक वर्दी वितरण के अनुकरण से अनुकरण किया जा सकता है।
प्रारंभिक दृष्टिकोण
1946 में जॉन वॉन न्यूमैन द्वारा सुझाए गए प्रारंभिक कंप्यूटर-आधारित पीआरएनजी को मध्य-वर्ग विधि के रूप में जाना जाता है। एल्गोरिथ्म इस प्रकार है: किसी भी संख्या को लें, इसे स्क्वायर करें, परिणामी संख्या के मध्य अंकों को यादृच्छिक संख्या के रूप में हटा दें, फिर उस संख्या को अगले पुनरावृत्ति के लिए सीड के रूप में उपयोग करें। उदाहरण के लिए, संख्या 1111 का वर्ग करने पर 1234321 प्राप्त होता है, जिसे 01234321 के रूप में लिखा जा सकता है, 8-अंकीय संख्या 4-अंकीय संख्या का वर्ग है। यह यादृच्छिक संख्या के रूप में 2343 देता है। इस प्रक्रिया को दोहराने से अगला परिणाम 4896 मिलता है, और इसी तरह आगे भी होता है। वॉन न्यूमैन ने 10 अंकों की संख्या का उपयोग किया, किन्तु प्रक्रिया वही थी।
मध्य वर्ग पद्धति के साथ समस्या यह है कि सभी क्रम अंततः स्वयं को दोहराते हैं, कुछ बहुत जल्दी, जैसे कि 0000। वॉन न्यूमैन इसके बारे में जानते थे, किन्तु उन्होंने अपने उद्देश्यों के लिए दृष्टिकोण को पर्याप्त पाया और चिंतित थे कि गणितीय सुधार त्रुटियों को दूर करने के अतिरिक्त उन्हें छिपा देंगे।
वॉन न्यूमैन ने हार्डवेयर यादृच्छिक संख्या जनरेटर को अनुपयुक्त माना, क्योंकि यदि वे उत्पन्न आउटपुट को रिकॉर्ड नहीं करते थे, तो उन्हें बाद में त्रुटियों के लिए परीक्षण नहीं किया जा सकता था। यदि वे अपना आउटपुट रिकॉर्ड करते हैं, तो वे उस समय उपलब्ध सीमित कंप्यूटर मेमोरी को समाप्त कर देंगे, और इसलिए कंप्यूटर की संख्याओं को पढ़ने और लिखने की क्षमता समाप्त हो जाती है। यदि संख्याएँ कार्डों पर लिखी जातीं, तो उन्हें लिखने और पढ़ने में बहुत अधिक समय लगता। वह जिस एनियाक कंप्यूटर का उपयोग कर रहा था, उस पर मध्य वर्ग विधि ने पंच कार्डों से संख्याओं को पढ़ने की तुलना में कुछ सौ गुना तेजी से संख्याएँ उत्पन्न किया था।
तब से मध्य-स्क्वायर विधि को अधिक विस्तृत जनरेटर द्वारा प्रतिस्थापित कर दिया गया है।
हालिया नवाचार मध्य वर्ग को वेइल अनुक्रम के साथ जोड़ना है। यह विधि लंबी अवधि (मध्य-वर्ग विधि देखें) के माध्यम से उच्च गुणवत्ता वाले उत्पादन का उत्पादन करती है।
गैर-समान जनरेटर
समान वितरण (निरंतर) पीआरएनजी और दो वितरणों से संबंधित फ़ंक्शन का उपयोग करके गैर-समान संभाव्यता वितरण से चुनी गई संख्याएँ उत्पन्न की जा सकती हैं।
सबसे पहले, किसी को लक्ष्य वितरण के संचयी वितरण फ़ंक्शन की आवश्यकता होती है:
ध्यान दें कि . संभाव्यता घनत्व के रूप में समान वितरण से यादृच्छिक संख्या c का उपयोग करके पारित करने के लिए, हम प्राप्त करते हैं
जिससे
वितरण से यादृच्छिक रूप से चुनी गई संख्या है। यह प्रतिलोम रूपांतरण प्रतिचयन पर आधारित है।
उदाहरण के लिए, संचयी गॉसियन बंटन का व्युत्क्रम इनपुट के रूप में सीमा (0, 1) के साथ आदर्श समान पीआरएनजी के साथ गॉसियन वितरण के साथ (केवल धनात्मक) मानों का अनुक्रम उत्पन्न करेगा; चूँकि
- व्यावहारिक संख्या निरूपण का उपयोग करते समय, वितरण की अनंत पूंछों को परिमित मानों तक छोटा करना पड़ता है।
- की दोहरावदार पुनर्गणना तेजी से पीढ़ी के लिए ज़िगगुरैट एल्गोरिथम जैसे माध्यमों से कम किया जाना चाहिए।
रेले वितरण और पॉसों वितरण जैसे अन्य गैर-समान वितरण उत्पन्न करने के लिए इसी प्रकार के विचार प्रायुक्त होते हैं।
यह भी देखें
- छद्म यादृच्छिक संख्या जनरेटर की सूची
- यादृच्छिकता के अनुप्रयोग
- कम विसंगति अनुक्रम
- छद्म आयामी द्विआधारी अनुक्रम
- छद्म यादृच्छिक शोर
- छद्म यादृच्छिक संख्या
- यादृच्छिक संख्या पीढ़ी
- यादृच्छिक संख्या जनरेटर हमला
- यादृच्छिकता
- सांख्यिकीय यादृच्छिकता
संदर्भ
- ↑ Barker, Elaine; Barker, William; Burr, William; Polk, William; Smid, Miles (July 2012). "कुंजी प्रबंधन के लिए सिफारिश" (PDF). NIST Special Publication 800-57. NIST. doi:10.6028/NIST.SP.800-57p1r3. Retrieved 19 August 2013.
- ↑ "छद्म यादृच्छिक संख्या जनरेटर". Khan Academy. Retrieved 2016-01-11.
- ↑ Von Neumann, John (1951). "यादृच्छिक अंकों के संबंध में उपयोग की जाने वाली विभिन्न तकनीकें" (PDF). National Bureau of Standards Applied Mathematics Series. 12: 36–38.
- ↑ Press et al. (2007), chap.7
- ↑ L'Ecuyer, Pierre (2010). "Uniform random number generators". In Lovric, Miodrag (ed.). International Encyclopedia of Statistical Science. Springer. p. 1629. ISBN 978-3-642-04897-5.
- ↑ Random (Java Platform SE 8), Java Platform Standard Edition 8 Documentation.
- ↑ Random.java at OpenJDK.
- ↑ Press et al. (2007) §7.1
- ↑ Matsumoto, Makoto; Nishimura, Takuji (1998). "Mersenne twister: a 623-dimensionally equi-distributed uniform pseudo-random number generator" (PDF). ACM Transactions on Modeling and Computer Simulation. ACM. 8 (1): 3–30. doi:10.1145/272991.272995. S2CID 3332028.
- ↑ Marsaglia, George (July 2003). "Xorshift RNGs". Journal of Statistical Software. 8 (14). doi:10.18637/jss.v008.i14. S2CID 250501391.
- ↑ S.Vigna. "xorshift*/xorshift+ generators and the PRNG shootout".
- ↑ Vigna S. (2016), "An experimental exploration of Marsaglia’s xorshift generators", ACM Transactions on Mathematical Software, 42; doi:10.1145/2845077.
- ↑ Vigna S. (2017), "Further scramblings of Marsaglia’s xorshift generators", Journal of Computational and Applied Mathematics, 315; doi:10.1016/j.cam.2016.11.006.
- ↑ Panneton, François; L'Ecuyer, Pierre; Matsumoto, Makoto (2006). "Improved long-period generators based on linear recurrences modulo 2" (PDF). ACM Transactions on Mathematical Software. 32 (1): 1–16. doi:10.1145/1132973.1132974. S2CID 7368302.
- ↑ Song Y. Yan (7 December 2007). आरएसए पर क्रिप्ट एनालिटिक अटैक. Springer, 2007. p. 73. ISBN 978-0-387-48741-0.
- ↑ Niels Ferguson, Bruce Schneier, Tadayoshi Kohno (2010). "Cryptography Engineering: Design Principles and Practical Applications, Chapter 9.4: The Generator" (PDF).
{{cite web}}
: CS1 maint: multiple names: authors list (link) - ↑ Klaus Pommerening (2016). "IV.4 Perfect Random Generators". Cryptology. uni-mainz.de. Retrieved 2017-11-12.
- ↑ Pass, Rafael. "Lecture 11: The Goldreich-Levin Theorem" (PDF). COM S 687 Introduction to Cryptography. Retrieved 20 July 2016.
- ↑ Matthew Green (18 September 2013). "The Many Flaws of Dual_EC_DRBG".
- ↑ Katz, Jonathan; Yehuda, Lindell (2014). आधुनिक क्रिप्टोग्राफी का परिचय. CRC press. p. 70.
- ↑ 21.0 21.1 Schindler, Werner (2 December 1999). "निर्धारक यादृच्छिक संख्या जेनरेटर के लिए कार्यात्मकता वर्ग और मूल्यांकन पद्धति" (PDF). Anwendungshinweise und Interpretationen (AIS). Bundesamt für Sicherheit in der Informationstechnik. pp. 5–11. Retrieved 19 August 2013.
- ↑ "क्रिप्टोग्राफ़िक मॉड्यूल के लिए सुरक्षा आवश्यकताएँ". FIPS. NIST. 1994-01-11. p. 4.11.1 Power-Up Tests. Archived from the original on May 27, 2013. Retrieved 19 August 2013.
ग्रन्थसूची
- Barker E., Kelsey J., Recommendation for Random Number Generation Using Deterministic Random Bit Generators, NIST SP800-90A, January 2012
- Brent R.P., "Some long-period random number generators using shifts and xors", ANZIAM Journal, 2007; 48:C188–C202
- Gentle J.E. (2003), Random Number Generation and Monte Carlo Methods, Springer.
- Hörmann W., Leydold J., Derflinger G. (2004, 2011), Automatic Nonuniform Random Variate Generation, Springer-Verlag.
- Knuth D.E. The Art of Computer Programming, Volume 2: Seminumerical Algorithms, Third Edition. Addison-Wesley, 1997. ISBN 0-201-89684-2. Chapter 3. [Extensive coverage of statistical tests for non-randomness.]
- Luby M., Pseudorandomness and Cryptographic Applications, Princeton Univ Press, 1996. ISBN 9780691025469
- von Neumann J., "Various techniques used in connection with random digits," in A.S. Householder, G.E. Forsythe, and H.H. Germond, eds., Monte Carlo Method, National Bureau of Standards Applied Mathematics Series, 12 (Washington, D.C.: U.S. Government Printing Office, 1951): 36–38.
- Peterson, Ivars (1997). The Jungles of Randomness : a mathematical safari. New York: John Wiley & Sons. ISBN 0-471-16449-6.
- Press W.H., Teukolsky S.A., Vetterling W.T., Flannery B.P. (2007), Numerical Recipes (Cambridge University Press).
- Viega J., "Practical Random Number Generation in Software", in Proc. 19th Annual Computer Security Applications Conference, Dec. 2003.
बाहरी संबंध
- TestU01: A free, state-of-the-art (GPL) C++ Random Number Test Suite.
- DieHarder: A free (GPL) C Random Number Test Suite.
- "Generating random numbers" (in embedded systems) by Eric Uner (2004)
- "Analysis of the Linux Random Number Generator" by Zvi Gutterman, Benny Pinkas, and Tzachy Reinman (2006)
- "Better pseudorandom generators" by Parikshit Gopalan, Raghu Meka, Omer Reingold, Luca Trevisan, and Salil Vadhan (माइक्रोसॉफ्ट Research, 2012)
- rand() Considered Harmful on YouTube by Stephan Lavavej (माइक्रोसॉफ्ट, 2013)
- Wsphynx a simple online random number generator.Random number are generated by Javascript pseudorandom number generators (पीआरएनजीएस) algorithms