यादृच्छिक संख्या पीढ़ी

From alpha
Jump to navigation Jump to search
पासा यांत्रिक हार्डवेयर यादृच्छिक संख्या जनरेटर का एक उदाहरण है। जब एक घनाकार पासा फेंका जाता है, तो 1 से 6 तक की एक यादृच्छिक संख्या प्राप्त होती है।

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

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

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

व्यावहारिक अनुप्रयोग और उपयोग

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

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

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

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

सच बनाम छद्म-यादृच्छिक संख्या

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

जिस गति से एन्ट्रापी को प्राकृतिक स्रोतों से प्राप्त किया जा सकता है वह मापी जा रही अंतर्निहित भौतिक घटनाओं पर निर्भर करता है। इस प्रकार, स्वाभाविक रूप से वास्तविक एन्ट्रापी के स्रोतों को अवरुद्ध (कंप्यूटिंग) कहा जाता है – वे दर-सीमित हैं जब तक कि मांग को पूरा करने के लिए पर्याप्त एन्ट्रापी काटा नहीं जाता। कुछ यूनिक्स जैसी प्रणालियों पर, अधिकांश लिनक्स वितरणों सहित, स्यूडो डिवाइस फ़ाइल /dev/random तब तक ब्लॉक रहेगा जब तक पर्यावरण से पर्याप्त एंट्रोपी प्राप्त नहीं हो जाती।[1] इस अवरोधन व्यवहार के कारण, बड़ी मात्रा में से पढ़ा जाता है /dev/random, जैसे हार्ड डिस्क ड्राइव को रैंडम बिट्स से भरना, अक्सर उन सिस्टम पर धीमा हो सकता है जो इस प्रकार के एन्ट्रापी स्रोत का उपयोग करते हैं।

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

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

जबकि केवल निर्धारक तर्क पर आधारित एक छद्म यादृच्छिक संख्या जनरेटर को कभी भी शब्द के शुद्धतम अर्थ में एक वास्तविक यादृच्छिक संख्या स्रोत के रूप में नहीं माना जा सकता है, व्यवहार में वे आम तौर पर सुरक्षा-महत्वपूर्ण अनुप्रयोगों की मांग के लिए भी पर्याप्त हैं। यारो एल्गोरिथ्म और फोर्टुना (PRNG) के मामले में, सुरक्षा-महत्वपूर्ण क्रिप्टोग्राफ़िक उद्देश्यों के लिए सावधानीपूर्वक डिज़ाइन और कार्यान्वित किए गए छद्म यादृच्छिक संख्या जनरेटर को प्रमाणित किया जा सकता है। पूर्व का आधार है /dev/random FreeBSD, AIX, OS X, NetBSD, और अन्य पर एंट्रॉपी का स्रोत। OpenBSD RC4#RC4-आधारित यादृच्छिक संख्या जनरेटर के रूप में ज्ञात एक छद्म यादृच्छिक संख्या एल्गोरिथ्म का उपयोग करता है।[2]


पीढ़ी के तरीके

भौतिक तरीके

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

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

वाइडबैंड फोटोनिक एन्ट्रॉपी स्रोतों की उपस्थिति, जैसे कि ऑप्टिकल अराजकता और प्रवर्धित सहज उत्सर्जन शोर, भौतिक यादृच्छिक संख्या जनरेटर के विकास में बहुत सहायता करते हैं। उनमें से, ऑप्टिकल कैओस[3][4] इसकी उच्च बैंडविड्थ और बड़े आयाम के कारण शारीरिक रूप से उच्च गति वाली यादृच्छिक संख्या उत्पन्न करने की उच्च क्षमता है। एक अराजक लेजर पर आधारित एक उच्च गति, वास्तविक समय भौतिक यादृच्छिक बिट जनरेटर का एक प्रोटोटाइप 2013 में बनाया गया था।[5] इस एंट्रोपिक जानकारी को एकत्र करने के विभिन्न कल्पनाशील तरीके ईजाद किए गए हैं। एक तकनीक एक अप्रत्याशित स्रोत से वीडियो स्ट्रीम के एक फ्रेम के विरुद्ध हैश फ़ंक्शन चलाने के लिए है। लवरांड ने इस तकनीक का इस्तेमाल कई लावा लैंप की छवियों के साथ किया। HotBits गीजर-मुलर ट्यूब के साथ रेडियोधर्मी क्षय को मापता है,[6] जबकि Random.org सामान्य रेडियो के साथ रिकॉर्ड किए गए वायुमंडलीय शोर के आयाम में बदलाव का उपयोग करता है।

एक बटन को कहाँ और कब क्लिक किया जाता है, इसके आधार पर एक साधारण यादृच्छिक संख्या जनरेटर का प्रदर्शन

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


कम्प्यूटेशनल तरीके

अधिकांश कंप्यूटर जनित रैंडम नंबर PRNG का उपयोग करते हैं जो एल्गोरिदम हैं जो स्वचालित रूप से अच्छे रैंडम गुणों के साथ संख्याओं के लंबे रन बना सकते हैं लेकिन अंततः अनुक्रम दोहराता है (या मेमोरी उपयोग बिना किसी सीमा के बढ़ता है)। ये यादृच्छिक संख्याएँ कई स्थितियों में ठीक हैं लेकिन उतनी यादृच्छिक नहीं हैं जितनी कि एन्ट्रापी के स्रोत के रूप में प्रयुक्त विद्युत चुम्बकीय वायुमंडलीय शोर से उत्पन्न संख्याएँ।[9] ऐसे एल्गोरिदम द्वारा उत्पन्न मूल्यों की श्रृंखला आम तौर पर एक निश्चित संख्या द्वारा निर्धारित की जाती है जिसे यादृच्छिक बीज कहा जाता है। सबसे आम छद्म यादृच्छिक संख्या जनरेटर में से एक रैखिक संगत जनरेटर है, जो पुनरावृत्ति का उपयोग करता है

संख्याएँ उत्पन्न करने के लिए, जहाँ a, b और m बड़े पूर्णांक हैं, और में अगला है X छद्म आयामी संख्याओं की एक श्रृंखला के रूप में। सूत्र द्वारा उत्पन्न की जा सकने वाली संख्याओं की अधिकतम संख्या मापांक (बीजगणितीय संख्या सिद्धांत) है। m. पुनरावर्तन संबंध को अधिक लंबी अवधि और बेहतर सांख्यिकीय गुणों के लिए मेट्रिसेस तक बढ़ाया जा सकता है .[10] एकल रेखीय सर्वांगसम जनरेटर के कुछ गैर-यादृच्छिक गुणों से बचने के लिए, गुणक गुणांक के थोड़े अलग मूल्यों के साथ कई ऐसे यादृच्छिक संख्या जनरेटर, a, समानांतर में उपयोग किया जा सकता है, एक मास्टर यादृच्छिक संख्या जनरेटर के साथ जो कई अलग-अलग जनरेटर में से चयन करता है।[citation needed]

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

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

अधिकांश ऑपरेटिंग सिस्टम पर बहुत अधिक गुणवत्ता वाले यादृच्छिक संख्या स्रोत उपलब्ध हैं; उदाहरण के लिए /dev/random विभिन्न बीएसडी स्वादों पर, लिनक्स, मैक ओएस एक्स, आईआरआईएक्स, और सोलारिस, या माइक्रोसॉफ्ट विंडोज के लिए CryptGenRandom । अधिकांश प्रोग्रामिंग लैंग्वेज, जिनमें ऊपर उल्लेखित हैं, इन उच्च गुणवत्ता वाले स्रोतों तक पहुँचने का एक साधन प्रदान करती हैं।

मनुष्यों द्वारा

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

पोस्ट-प्रोसेसिंग और सांख्यिकीय जांच

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

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

अन्य विचार

वितरण को फिर से आकार देना

समान वितरण

अधिकांश यादृच्छिक संख्या जनरेटर मूल रूप से पूर्णांकों या अलग-अलग बिट्स के साथ काम करते हैं, इसलिए 0 और 1 के बीच विहित समान वितरण पर पहुंचने के लिए एक अतिरिक्त कदम की आवश्यकता होती है। कार्यान्वयन उतना तुच्छ नहीं है जितना कि पूर्णांक को उसके अधिकतम संभव मान से विभाजित करना। विशेष रूप से:[16][17]

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

OpenJDK, Rust (प्रोग्रामिंग लैंग्वेज) और NumPy द्वारा उपयोग की जाने वाली मेनस्ट्रीम एल्गोरिद्म C++ के STL के प्रस्ताव में वर्णित है। यह अतिरिक्त सटीकता का उपयोग नहीं करता है और राउंड-टू-ईवन के कारण केवल अंतिम बिट में पूर्वाग्रह से ग्रस्त है।[18] इस विहित वर्दी वितरण को एक अलग श्रेणी में स्थानांतरित करते समय अन्य संख्यात्मक चिंताओं की आवश्यकता होती है।[19] स्विफ्ट प्रोग्रामिंग भाषा के लिए एक प्रस्तावित विधि हर जगह पूर्ण परिशुद्धता का उपयोग करने का दावा करती है।[20] समान रूप से वितरित पूर्णांक आमतौर पर फिशर-येट्स शफल जैसे एल्गोरिदम में उपयोग किए जाते हैं। फिर से, एक सरल कार्यान्वयन परिणाम में मॉड्यूलो पूर्वाग्रह उत्पन्न कर सकता है, इसलिए अधिक शामिल एल्गोरिदम का उपयोग किया जाना चाहिए। एक विधि जो लगभग कभी विभाजन नहीं करती है, 2018 में डैनियल लेमायर द्वारा वर्णित की गई थी,[21] ऐप्पल इंक के स्टीफन कैनन द्वारा वर्तमान अत्याधुनिक अंकगणितीय एन्कोडिंग-प्रेरित 2021 इष्टतम एल्गोरिदम के साथ।[22] अधिकांश 0 से 1 RNG में 0 शामिल होता है लेकिन 1 को बाहर करता है, जबकि अन्य में दोनों शामिल या बाहर होते हैं।

अन्य वितरण

समान यादृच्छिक संख्याओं के स्रोत को देखते हुए, एक नया यादृच्छिक स्रोत बनाने के लिए कुछ तरीके हैं जो प्रायिकता घनत्व फ़ंक्शन से मेल खाते हैं। एक विधि, जिसे व्युत्क्रम रूपांतरण नमूनाकरण कहा जाता है, में यादृच्छिक संख्या से अधिक या उसके बराबर क्षेत्र को एकीकृत करना शामिल है (जो उचित वितरण के लिए 0 और 1 के बीच उत्पन्न होना चाहिए)। एक दूसरी विधि, जिसे अस्वीकृति नमूनाकरण | स्वीकृति-अस्वीकृति विधि कहा जाता है, में x और y मान चुनना और परीक्षण करना शामिल है कि x का कार्य y मान से अधिक है या नहीं। यदि यह है, तो x मान स्वीकार किया जाता है। अन्यथा, x मान अस्वीकार कर दिया जाता है और एल्गोरिथम फिर से कोशिश करता है।[23][24] अस्वीकृति नमूनाकरण के लिए एक उदाहरण के रूप में, सांख्यिकीय स्वतंत्रता की एक जोड़ी उत्पन्न करने के लिए सामान्य वितरण यादृच्छिक संख्या (x, y), कोई पहले ध्रुवीय निर्देशांक (आर, θ) उत्पन्न कर सकता है, जहां आर2~ची-वर्ग बंटन|χ22 और θ~समान वितरण (निरंतर)|UNIFORM(0,2π) (बॉक्स-मुलर रूपांतरण देखें)।

व्हाइटनिंग

कई स्वतंत्र RNG के आउटपुट को जोड़ा जा सकता है (उदाहरण के लिए, बिट-वार XOR ऑपरेशन का उपयोग करके) एक संयुक्त RNG प्रदान करने के लिए कम से कम उतना ही अच्छा RNG जितना अच्छा उपयोग किया जाता है। इसे हार्डवेयर रैंडम नंबर जनरेटर#सॉफ्टवेयर वाइटनिंग कहा जाता है।

कम्प्यूटेशनल और हार्डवेयर यादृच्छिक संख्या जेनरेटर कभी-कभी दोनों प्रकार के लाभों को दर्शाने के लिए संयुक्त होते हैं। कम्प्यूटेशनल यादृच्छिक संख्या जनरेटर आमतौर पर भौतिक जनरेटर की तुलना में छद्म यादृच्छिक संख्या उत्पन्न कर सकते हैं, जबकि भौतिक जनरेटर वास्तविक यादृच्छिकता उत्पन्न कर सकते हैं।

एक विकल्प के रूप में कम-विसंगति अनुक्रम

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

गतिविधियाँ और प्रदर्शन

निम्नलिखित साइटें यादृच्छिक संख्या के नमूने उपलब्ध कराती हैं:

  • एसओसीआर संसाधन पृष्ठों में जावा एप्लेट्स का उपयोग करके कई हाथों की इंटरैक्टिव गतिविधियां और यादृच्छिक संख्या पीढ़ी के प्रदर्शन शामिल हैं।
  • एएनयू में क्वांटम ऑप्टिक्स समूह क्वांटम वैक्यूम से यादृच्छिक संख्या उत्पन्न करता है। यादृच्छिक संख्याओं का नमूना उनके क्वांटम यादृच्छिक संख्या जनरेटर शोध पृष्ठ पर उपलब्ध है।
  • Random.org यादृच्छिक संख्याएँ उपलब्ध कराता है जो वायुमंडलीय शोर की यादृच्छिकता से प्राप्त होती हैं।
  • Ruđer Bošković Institute में क्वांटम रैंडम बिट जेनरेटर सेवा सेमीकंडक्टर्स में फोटोनिक उत्सर्जन की क्वांटम प्रक्रिया से यादृच्छिकता का दोहन करती है। वे कई प्रोग्रामिंग भाषाओं के लिए पुस्तकालयों सहित डेटा लाने के विभिन्न तरीकों की आपूर्ति करते हैं।
  • ताइयुआन प्रौद्योगिकी विश्वविद्यालय का समूह एक अराजक लेजर से प्राप्त यादृच्छिक संख्या उत्पन्न करता है। यादृच्छिक संख्या के नमूने उनकी भौतिक यादृच्छिक संख्या जेनरेटर सेवा पर उपलब्ध हैं।

बैकडोर

चूँकि बहुत सी क्रिप्टोग्राफी कुंजी और क्रिप्टोग्राफ़िक अस्थायी जनरेशन के लिए क्रिप्टोग्राफ़िक रूप से सुरक्षित रैंडम नंबर जनरेटर पर निर्भर करती है, अगर एक रैंडम नंबर जनरेटर को प्रेडिक्टेबल बनाया जा सकता है, तो इसे एन्क्रिप्शन को तोड़ने के लिए एक हमलावर द्वारा पिछले दरवाजे (कंप्यूटिंग) के रूप में इस्तेमाल किया जा सकता है।

बताया जाता है कि NSA ने राष्ट्रीय मानक और प्रौद्योगिकी संस्थान में क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या जेनरेटर दोहरे EC DRBG में पिछले दरवाजे से प्रवेश किया है। यदि उदाहरण के लिए इस यादृच्छिक संख्या जनरेटर का उपयोग करके एक एसएसएल कनेक्शन बनाया गया है, तो मैथ्यू ग्रीन (क्रिप्टोग्राफर) के अनुसार यह एनएसए को यादृच्छिक संख्या जनरेटर की स्थिति निर्धारित करने की अनुमति देगा, और अंततः एसएसएल कनेक्शन पर भेजे गए सभी डेटा को पढ़ने में सक्षम होगा। .[25] भले ही यह स्पष्ट था कि Dual_EC_DRBG 2013 में NSA के पिछले दरवाजे की पुष्टि होने से बहुत पहले एक बहुत ही खराब और संभवतः पिछले दरवाजे वाला छद्म यादृच्छिक संख्या जनरेटर था, इसने 2013 तक व्यवहार में महत्वपूर्ण उपयोग देखा था, उदाहरण के लिए प्रमुख सुरक्षा कंपनी RSA सुरक्षा द्वारा।[26] बाद में ऐसे आरोप लगाए गए कि आरएसए सुरक्षा ने जानबूझकर अपने उत्पादों में एनएसए पिछले दरवाजे से डाला, संभवतः बुलरुन (डिक्रिप्शन प्रोग्राम) के हिस्से के रूप में। आरएसए ने जानबूझकर अपने उत्पादों में पिछले दरवाजे को शामिल करने से इंकार कर दिया है।[27] यह भी सिद्धांत दिया गया है कि हार्डवेयर आरएनजी को गुप्त रूप से संशोधित किया जा सकता है ताकि बताए गए एन्ट्रॉपी से कम हो, जो हार्डवेयर आरएनजी का उपयोग करके एन्क्रिप्शन को हमला करने के लिए अतिसंवेदनशील बना देगा। एक ऐसा तरीका जो प्रकाशित किया गया है, चिप के डोपेंट मास्क को संशोधित करके काम करता है, जो ऑप्टिकल रिवर्स-इंजीनियरिंग के लिए ज्ञानी नहीं होगा।[28] उदाहरण के लिए, लिनक्स में यादृच्छिक संख्या पीढ़ी के लिए, विशेष रूप से NSA बुलरुन प्रोग्राम के प्रकटीकरण के बाद, हार्डवेयर RNG में किसी भी बैकडोर का प्रतिकार करने के लिए एन्ट्रापी के अन्य स्रोतों के साथ RDRAND आउटपुट में मिश्रण किए बिना Intel के RDRAND हार्डवेयर RNG का उपयोग करने के लिए अस्वीकार्य के रूप में देखा जाता है। .[29][30] 2010 में, हॉट लोटो फ्रॉड स्कैंडल | एक अमेरिकी लॉटरी ड्रा में मल्टी-स्टेट लॉटरी एसोसिएशन (एमयूएसएल) के सूचना सुरक्षा निदेशक द्वारा धांधली की गई थी, जिन्होंने नियमित रखरखाव के दौरान एमयूएसएल के सुरक्षित आरएनजी कंप्यूटर पर गुप्त रूप से पिछले दरवाजे से मैलवेयर स्थापित किया था।[31] हैक के दौरान आदमी ने साल में कुछ बार सही ढंग से संख्याओं की भविष्यवाणी करके कुल $16,500,000 की राशि जीती।

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


यह भी देखें

संदर्भ

  1. random(4) – Linux Programmer's Manual – Special Files
  2. arc4random(3) – OpenBSD Library Functions Manual
  3. Li, Pu; Wang, Yun-Cai; Zhang, Jian-Zhong (2010-09-13). "ऑल-ऑप्टिकल फास्ट रैंडम नंबर जनरेटर". Optics Express. 18 (19): 20360–20369. Bibcode:2010OExpr..1820360L. doi:10.1364/OE.18.020360. ISSN 1094-4087. PMID 20940928.
  4. Li, Pu; Sun, Yuanyuan; Liu, Xianglian; Yi, Xiaogang; Zhang, Jianguo; Guo, Xiaomin; Guo, Yanqiang; Wang, Yuncai (2016-07-15). "पूरी तरह से फोटोनिक्स-आधारित भौतिक यादृच्छिक बिट जनरेटर". Optics Letters. 41 (14): 3347–3350. Bibcode:2016OptL...41.3347L. doi:10.1364/OL.41.003347. ISSN 1539-4794. PMID 27420532. S2CID 2909061.
  5. Wang, Anbang; Li, Pu; Zhang, Jianguo; Zhang, Jianzhong; Li, Lei; Wang, Yuncai (2013-08-26). "4.5 Gbps high-speed real-time physical random bit generator". Optics Express. 21 (17): 20452–20462. Bibcode:2013OExpr..2120452W. doi:10.1364/OE.21.020452. ISSN 1094-4087. PMID 24105589. S2CID 10397141.
  6. Walker, John. "HotBits: Genuine Random Numbers". Retrieved 2009-06-27.
  7. Halprin, Ran; Naor, Moni. "Games for Extracting Randomness" (PDF). Department of Computer Science and Applied Mathematics, Weizmann Institute of Science. Retrieved 2009-06-27. {{cite journal}}: Cite journal requires |journal= (help)[permanent dead link]
  8. TrueCrypt Foundation. "TrueCrypt Beginner's Tutorial, Part 3". Retrieved 2009-06-27.
  9. "RANDOM.ORG - ट्रू रैंडम नंबर सर्विस". www.random.org. Retrieved 2016-01-14.
  10. "High Dimensionality Pseudo Random Number Generators". Retrieved 2018-11-21.
  11. Widynski, Bernard (19 May 2020). "मध्य-स्क्वायर वेइल अनुक्रम आरएनजी". arXiv:1704.00358 [cs.CR].
  12. W. A. Wagenaar (1972). "Generation of random sequences by human subjects: a critical survey of the literature". Psychological Bulletin. 77 (1): 65–72. CiteSeerX 10.1.1.211.9085. doi:10.1037/h0032060.
  13. Dömstedt, B. (2009). "TRNG9803 True Random Number Generator". Manufacturer: www.TRNG98.se.
  14. Wang, Yongge (2014). "Statistical Properties of Pseudo Random Sequences and Experiments with PHP and Debian OpenSSL". Computer Security - ESORICS 2014. Lecture Notes in Computer Science. Vol. 8712. Heidelberg: Springer LNCS. pp. 454–471. doi:10.1007/978-3-319-11203-9_26. ISBN 978-3-319-11202-2.
  15. Li, Pu; Yi, Xiaogang; Liu, Xianglian; Wang, Yuncai; Wang, Yongge (2016-07-11). "लेजर कैओस पर आधारित ऑप्टोइलेक्ट्रॉनिक रैंडम बिट जेनरेटर के ब्राउनियन गति गुण". Optics Express. 24 (14): 15822–15833. Bibcode:2016OExpr..2415822L. doi:10.1364/OE.24.015822. ISSN 1094-4087. PMID 27410852.
  16. Goualard, F. (2020). "Generating Random Floating-Point Numbers by Dividing Integers: A Case Study". Computational Science – ICCS 2020. ICCS. Lecture Notes in Computer Science. Vol. 12138. pp. 15–28. doi:10.1007/978-3-030-50417-5_2. ISBN 978-3-030-50416-8. S2CID 219889587.
  17. Campbell, Taylor R. (2014). "Uniform random floats: How to generate a double-precision floating-point number in [0, 1] uniformly at random given a uniform random source of bits". Retrieved 4 September 2021.
  18. "A new specification for std::generate_canonical". www.open-std.org.
  19. Goualard, Frédéric (July 2021). "एक अंतराल से यादृच्छिक फ़्लोटिंग-पॉइंट संख्याएँ खींचना". HAL. Retrieved 4 September 2021.
  20. NevinBR. "[stdlib] Floating-point random-number improvements by NevinBR · Pull Request #33560 · apple/swift". GitHub.
  21. Lemire, Daniel (23 February 2019). "एक अंतराल में फास्ट रैंडम इंटीजर जनरेशन". ACM Transactions on Modeling and Computer Simulation. 29 (1): 1–12. arXiv:1805.10941. doi:10.1145/3230636. S2CID 44061046.
  22. "An optimal algorithm for bounded random integers by stephentyrone · Pull Request #39143 · apple/swift". GitHub.
  23. The MathWorks. "सामान्य पीढ़ी के तरीके". Retrieved 2011-10-13.
  24. The Numerical Algorithms Group. "G05 – Random Number Generators" (PDF). NAG Library Manual, Mark 23. Retrieved 2012-02-09.
  25. matthew Green (2013-09-18). "The Many Flaws of Dual_EC_DRBG".
  26. Matthew Green (2013-09-20). "आरएसए डेवलपर्स को आरएसए उत्पादों का उपयोग न करने की चेतावनी देता है".
  27. "आरएसए ग्राहकों को बताता है कि हम अपने क्रिप्टो उत्पादों में बैकडोर को सक्षम नहीं करते हैं". Ars Technica. 2013-09-20.
  28. "शोधकर्ता इंटेल के आइवी ब्रिज सीपीयू में एक ज्ञानी ट्रोजन को खिसका सकते हैं". Ars Technica. 2013-09-18.
  29. Theodore Ts'o. "I am so glad I resisted pressure from Intel engineers to let /dev/random rely only on the RDRAND instruction". Google Plus.
  30. Theodore Ts'o. "Re: [PATCH] /dev/random: Insufficient of entropy on many architectures". LWN.
  31. Nestel, M.L. (July 7, 2015). "अब तक के सबसे बड़े लॉटरी घोटाले के अंदर". The Daily Beast. Retrieved July 10, 2015.
  32. "एएनसी - VUSec". Retrieved 13 July 2018.


अग्रिम पठन


बाहरी संबंध