इसके पीछे गणित संख्या सिद्धांत और छद्म यादृच्छिक संख्या जेनरेटर की गणितीय परिभाषा से आता है। यह निश्चित रूप से एक "यादृच्छिक" (मनमाना के रूप में व्याख्या) पसंद नहीं है।
कंप्यूटर पर एक यादृच्छिक संख्या जनरेटर वास्तव में एक सच्चे छद्म यादृच्छिक संख्या जनरेटर होने का प्रयास कर रहा है।
आप एक छद्म यादृच्छिक संख्या जेनरेटर के बारे में एक विस्तार समारोह के रूप में सोच सकते हैं जो seed
इनपुट लेता है और उसके बाद एक संख्या G(seed)
आउटपुट करता है।
आदर्श रूप से आप अपने छद्म यादृच्छिक संख्या जेनरेटर को एक वास्तविक यादृच्छिक संख्या जनरेटर से अलग करने के लिए चाहते हैं, लेकिन आपको यह भी पता होना चाहिए कि आपका छद्म यादृच्छिक संख्या जनरेटर कुशलता से नमूना (बहुपद समय) और निर्धारक होना चाहिए (जिसका अर्थ है कि यह बिल्कुल वही है धारा एक ही इनपुट बीज दिया)।
तो केवल 32 बिट बीज स्पेस होने का मतलब है कि एक विरोधी यह निर्धारित करने की इच्छा रखता है कि आपकी स्ट्रीम वास्तव में यादृच्छिक है (या यादृच्छिक संख्या जनरेटर के आधार पर आपके एन्क्रिप्शन एल्गोरिदम को तोड़ें) केवल 32 बिट कीस्पेस (बीज स्पेस)) और आपके प्रदत्त "यादृच्छिक" स्ट्रीम के मुकाबले जेनरेटर के आउटपुट का नमूना लें और देखें कि यह मेल खाता है या नहीं। 16 और बिट्स जोड़ना कुंजी (बीज) अंतरिक्ष में महत्वपूर्ण अधिक सीमा जोड़ता है, जिससे सभी संभावित कुंजी (बीजों) को गिनना बहुत मुश्किल हो जाता है।
क्यों पूर्ण 64 बिट्स के लिए नहीं जाना है ... शायद जब एल्गोरिदम लागू किया जा रहा था तो हार्डवेयर प्रोसेसिंग क्षमताओं ने 64 बिट ऑपरेशंस को कुशलतापूर्वक समर्थन नहीं दिया क्योंकि वे आज आधुनिक x64 आधारित प्रोसेसर पर किए जा सकते हैं ताकि वे रुक जाए 48.
स्रोत
2010-02-06 17:55:08
यह लिंक http://www.javamex.com/tutorials/random_numbers/java_util_random_algorithm.shtml का कहना है कि उपयोग किए गए पैरामीटर यूनिक्स रैंड 48 जनरेटर से लिया जाता है जो 48 बिट्स का भी उपयोग करता है। यह जानना दिलचस्प होगा क्यों 48? – sateesh