एन्ट्रॉपी "रैंडमनेस" के लिए एक तकनीकी शब्द है। कंप्यूटर वास्तव में एन्ट्रापी उत्पन्न नहीं करते हैं, लेकिन हार्ड ड्राइव रोटेशन स्पीड की विविधताओं जैसे सामान को देखकर इसे इकट्ठा करते हैं (एक भौतिक घटना जो घर्षण आदि के कारण भविष्यवाणी करना बहुत कठिन है) जब कोई कंप्यूटर एक छद्म यादृच्छिक डेटा उत्पन्न करना चाहता है तो यह होगा बीज एक गणितीय सूत्र है जिसमें सही एंट्रॉपी होती है जो इसे मूसलीक, हार्ड ड्राइव स्पिन विविधताओं आदि को मापकर पाया जाता है entropy_avail
।/dev/random
कंप्यूटर को अपने वातावरण से एन्ट्रॉपी पढ़ने में समय लगता है जब तक कि इसमें शोर डायोड या कुछ और जैसे शांत हार्डवेयर न हों।
यदि आपके पास 4096 बिट्स की एन्ट्रॉपी उपलब्ध है और आप कैट /dev/random
करते हैं, तो आप फाइल ब्लॉक से पहले एनट्रॉपी के 512 बाइट्स (4096 बिट्स) को पढ़ने में सक्षम होने की उम्मीद कर सकते हैं, जबकि यह अधिक एन्ट्रापी का इंतजार करता है।
उदाहरण के लिए यदि आप " cat /dev/random
" अपनी एन्ट्रापी को शून्य में सिकोड़ेंगे। सबसे पहले आपको यादृच्छिक कचरे के 512 बाइट मिलेंगे, लेकिन यह कम हो जाएगा और बहुत कम आपको अधिक यादृच्छिक डेटा ट्रिकल गर्त दिखाई देगा।
हालांकि यह नहीं है कि लोगों को कैसे काम करना चाहिए /dev/random
। आम तौर पर डेवलपर्स 128 बिट की तरह डेटा की एक छोटी राशि पढ़ेंगे, और इसका उपयोग किसी प्रकार के PRNG एल्गोरिथ्म को बीज बनाने के लिए करेंगे। यह विनम्र है कि /dev/random
जब तक आपको निर्माण करने के लिए इतना समय लगता है और मूल्यवान माना जाता है, तब तक किसी भी अधिक एन्ट्रापी को नहीं पढ़ना चाहिए। इस प्रकार यदि आप इसे लापरवाही से cat
हटाते हैं तो ऊपर की तरह फाइल /dev/random
को ब्लॉक करने से आपको अन्य अनुप्रयोगों को ब्लॉक करने के लिए पढ़ने की आवश्यकता होगी । काम पर एक प्रणाली पर हमने देखा कि बहुत सारे क्रिप्टोकरंसी के काम बंद हो रहे थे। हमें पता चला कि एक क्रॉन जॉब एक पायथन लिपि कह रहा था, जो इनिशियलाइज़ करता रहाramdom.random()
प्रत्येक रन पर जो हर कुछ सेकंड में चलता था। इसे ठीक करने के लिए हमने पायथन लिपि को फिर से लिखा, ताकि यह एक ऐसे डेमन के रूप में चले जो कि केवल एक बार आरम्भ हुआ और क्रोन जॉब XMLRPC के माध्यम से डेटा को पढ़े ताकि यह /dev/random
स्टार्टअप पर पढ़ना जारी न रखे ।