2009-03-18 10 views
9

मैं सस्ती समाधान की तलाश कर रहा हूं जो सच्चे यादृच्छिक संख्या उत्पन्न करता है।सही (छद्म नहीं) यादृच्छिक संख्या जेनरेटर। वहां क्या है

मुझे LavaRnd मिला है, जो एक क्रिप्टोग्राफिक ध्वनि यादृच्छिक संख्या जनरेटर है। क्या किसी के पास इस क्षेत्र में अनुभव है और/या अन्य समाधानों के बारे में पता है?

पुनश्च:

मेरे जिज्ञासा शैक्षणिक प्रकृति के अधिक है: IMHO अतः True random number generator सवाल वास्तव में इस


संपादित को कवर नहीं किया। मैं PRNGs के बारे में जानना नहीं चाहता जो व्यावहारिक अनुप्रयोगों के लिए पर्याप्त हैं। मुझे पता है कि वे मौजूद हैं और वे करेंगे।

बेशक, वास्तविक यादृच्छिक संख्याओं को उत्पन्न करने के लिए हार्डवेयर उपकरणों की आवश्यकता होगी। यही कारण है कि मैंने इसे हार्डवेयर के साथ टैग किया।

+0

क्या आप केवल इन नंबरों को अपने कंप्यूटर पर उत्पन्न करने में रुचि रखते हैं या क्या आपको क्लाइंट कंप्यूटर की तरह कहीं और उत्पन्न होने की आवश्यकता है? मुझे लगता है कि मुझे बिटमैप में पिक्सल के आधार पर यादृच्छिक संख्याएं उत्पन्न करने के बारे में कुछ याद है। – WakeUpScreaming

+0

संबंधित: ["एक बार पैड उपयोग के लिए हिमस्खलन शोर आरएनजी"] (http://crypto.stackexchange.com/questions/4005/avalanche-noise-rng-for-one-time-pad-use) क्रिप्टोग्राफी में स्टैक एक्सचेंज –

+0

आप [चाय का एक अच्छा गर्म कप] (http://www.bbc.co.uk/cult/hitchhikers/guide/tea.shtml) आज़मा सकते हैं। –

उत्तर

0

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

आप कंप्यूटर के साथ क्या मिलता छद्म यादृच्छिक नंबर दिए गए हैं, ज्यादातर वर्तमान परिस्थितियों के आधार पर: दिनांक, समय, स्मृति जैसे अन्य चर इस्तेमाल किया जा रहा, इस समय नेटवर्क यातायात, आदि

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

तो, छद्म यादृच्छिक संख्याएं हैं जो वास्तविक यादृच्छिकता के अनुमानित हैं, आपको बाहरी कारकों को ध्यान में रखना होगा।

+1

आपका पहला कथन क्वांटम यांत्रिकी में भारी बहस के तहत है। –

+1

यादृच्छिकता कुछ ऐसा है जो आप मानते हैं क्योंकि आप नहीं जानते कि यह कैसा होता है। जैसे ही आप दृश्यों के पीछे यांत्रिकी को खोजते हैं, यह यादृच्छिक होने से रोकता है। उदाहरण के लिए बरसात के दिनों की भविष्यवाणी करने के बारे में बात करें। यह 1000 साल पहले नहीं किया जा सका और एक यादृच्छिक घटना लग रहा था; अब और नहीं। – Seb

+0

@ सेब: सौभाग्य से, कंप्यूटर I/O कर सकते हैं, जिसका अर्थ है कि उनके पास बाहरी दुनिया में यादृच्छिकता तक पहुंच है - स्लिम का जवाब देखें। –

6

आपने पर्यावरण निर्दिष्ट नहीं किया है।

लिनक्स का/dev के लिए दस्तावेज़ से/यादृच्छिक

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

तो यह आदि ईथरनेट पैकेट, कीबोर्ड और माउस इनपुट के मनमाने ढंग से समय,

वहाँ भी ब्रूस Schneier के Yarrow PRNG सर्वर के रूप में ऐसी बातों से अप्रत्याशित इनपुट के आधार पर एक क्रिप्टोग्राफी द्वारा सुरक्षित यादृच्छिक स्रोत है,। वास्तव में यादृच्छिक नहीं है, लेकिन क्रिप्टोग्राफ़िक रूप से सुरक्षित माना जाता है।

... और EGD, एंट्रॉपी गदरिंग डेमन। पर्ल में लिखा गया है और इसलिए कई प्लेटफार्मों में पोर्टेबल है।

+0

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

+1

लावाआरड में लावा एक वास्तविक लावा दीपक है, यादृच्छिक संख्याओं को वेबकैम से ली गई छवियों से गणना की जाती है। आखिरकार मैंने सुना कि यह ज्यादातर ओएस में एक विशेषता नहीं थी। – starblue

+2

मुझे LavaRnd वेबसाइट पर लावा लैंप का कोई संदर्भ नहीं दिखता है। यह कहता है कि उनके अराजक स्रोत एक अंधेरे बॉक्स में एक सीसीडी है। – slim

1

सत्य और छद्म यादृच्छिक संख्याओं पर c't 2/2009 में एक लेख है।लावाआरड के अलावा रैंडकैम और वीआईए के पैडलॉक पर चर्चा की गई है।

5

मैं हमेशा PCI or USB Quantum Random Number Generator खरीदना चाहता था, लेकिन मुझे नहीं पता कि वे क्या खर्च करते हैं, और स्पष्ट रूप से यह बहुत कुछ हो सकता है! वे यादृच्छिक संख्याओं के क्रमशः 16 एमबीआईटी/एस और 4 मिबिट/एस को वितरित करते हैं, हालांकि, * NIX बक्से और विंडोज दोनों पर प्रयोग योग्य। मुझे कभी भी इसकी आवश्यकता होगी!

इसके अलावा, कैसे 'पुस्तक से भरा हुआ' है? A Million Random Digits with 100,000 Normal Deviates शायद अमेज़ॅन पर बिकने वाली सबसे अच्छी किताब है! मैंने अभी तक इसे खरीदना नहीं है, लेकिन यह केवल समय की बात है। अपनी पुस्तक अलमारियों पर वास्तविक यादृच्छिक संख्याओं का ऐसा स्टॉक रखने के लिए बहुत आसान होना चाहिए!

+0

यदि आपको निश्चित, अविश्वसनीय यादृच्छिक संख्या की आवश्यकता है, तो आप केवल random.org का उपयोग कर सकते हैं। वे यादृच्छिक भौतिक घटनाओं से उत्पन्न होते हैं, लेकिन वे सुरक्षा उद्देश्यों के लिए उपयोग नहीं किए जाने चाहिए। मोंटे कार्लो के लिए बिल्कुल सही, लेकिन सुरक्षा के लिए अनुपयुक्त। – nomen

+0

ऐसा लगता है कि कीमतें काफी अधिक हैं, यूएसबी के लिए लगभग £ 1,000 और धीमी पीसीआई के लिए £ 1,600। यद्यपि इस 'बिल्ली/देव/यादृच्छिक>/dev/hdb1' जैसी कुछ चीज़ों के साथ हार्ड ड्राइव को साफ़ करना एक अच्छा उपयोग है। (मानते हैं कि उनका चालक डिफ़ॉल्ट '/ dev/random' को प्रतिस्थापित करता है और इसके यादृच्छिक डेटा को जोड़ता है।) –

2

पूरी तरह से इस मुद्दे को संबोधित करना एक व्यापक विषय है।

हार्डवेयर यादृच्छिक संख्या जेनरेटर मौजूद हैं। ये उच्च गुणवत्ता वाले यादृच्छिक संख्या उत्पन्न करने के लिए थर्मल शोर या यहां तक ​​कि क्वांटम प्रभाव (सबसे तेज़ मॉडल में) का उपयोग करते हैं।

कुछ संदेह हैं कि थर्मल शोर यादृच्छिक संख्या पीढ़ी में "पूर्वाग्रह" हो सकता है। यही कहना है कि चरम लंबी अवधि में, कुछ संख्या दूसरों की तुलना में अधिक बार उत्पन्न होती है। उत्पन्न संख्या अभी भी वास्तव में यादृच्छिक हैं।

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

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

वास्तव में, अधिकांश हार्डवेयर यादृच्छिक संख्या जेनरेटर को इस पूर्वाग्रह/एंट्रॉपी मुद्दे से निपटने के लिए कर्नेल (या विंडोज समतुल्य) के माध्यम से फ़ीड/dev/random के लिए डिज़ाइन किया गया है।

दूसरी ओर, मोंटे कार्लो सिमुलेशन करने के लिए, किसी भी सभ्य यादृच्छिक संख्या जनरेटर के लिए पर्याप्त वर्दी होगी।

संबंधित मुद्दे