एन्ट्रॉपी (कंप्यूटिंग)

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

लिनक्स कर्नेल
लिनक्स कर्नेल कीबोर्ड (कंप्यूटिंग) टाइमिंग, माउस (कंप्यूटिंग) मूवमेंट और इंटीग्रेटेड ड्राइव इलेक्ट्रॉनिक्स (आईडीई) टाइमिंग से एन्ट्रापी उत्पन्न करता है और विशेष फ़ाइलों /dev/random और /dev/ के माध्यम से अन्य ऑपरेटिंग सिस्टम प्रक्रियाओं के लिए यादृच्छिक वर्ण डेटा उपलब्ध कराता है। urandom. यह क्षमता लिनक्स संस्करण 1.3.30 में पेश की गई थी। कुछ लिनक्स कर्नेल पैच हैं जो किसी को अधिक एन्ट्रापी स्रोतों का उपयोग करने की अनुमति देते हैं। Audio_entropyd परियोजना, जो कुछ ऑपरेटिंग सिस्टम जैसे कि फेडोरा (ऑपरेटिंग सिस्टम) में शामिल है, ऑडियो डेटा को एन्ट्रापी स्रोत के रूप में उपयोग करने की अनुमति देता है। video_entropyd भी उपलब्ध हैं, जो एक वीडियो-स्रोत और एन्ट्रॉपीब्रोकर से यादृच्छिक डेटा की गणना करता है, जिसमें ये तीनों शामिल हैं और इनका उपयोग एन्ट्रापी डेटा को उन प्रणालियों में वितरित करने के लिए किया जा सकता है जो इनमें से किसी को भी चलाने में सक्षम नहीं हैं (जैसे आभाषी दुनिया)। इसके अलावा, कोई हेज्ड टू पूल एन्ट्रॉपी के माध्यम से HAVEGE एल्गोरिदम का उपयोग कर सकता है। कुछ प्रणालियों में, नेटवर्क इंटरप्ट का उपयोग एन्ट्रापी स्रोत के रूप में भी किया जा सकता है।

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

हर्ड कर्नेल
हर्ड कर्नेल के लिए लिनक्स कर्नेल से पोर्ट किया गया ड्राइवर उपलब्ध कराया गया है।

सोलारिस
/dev/random और /dev/urandom सोलारिस 2.6 के बाद से सोलारिस (ऑपरेटिंग सिस्टम) के लिए सन पैकेज या पैच के रूप में उपलब्ध हैं। और सोलारिस 9 के बाद से यह एक मानक सुविधा रही है। रेफरी> सोलारिस 10 के अनुसार, प्रशासक मौजूदा एन्ट्रापी स्रोतों को हटा सकते हैं या कर्नेल-स्तरीय क्रिप्टोग्राफ़िक ढांचे के माध्यम से नए स्रोतों को परिभाषित कर सकते हैं।

सोलारिस 2.4 से पहले के रिलीज के लिए /dev/random को लागू करने वाला एक तृतीय-पक्ष कर्नेल मॉड्यूल भी उपलब्ध है।

ओएस/2
OS/2 के लिए एक सॉफ़्टवेयर पैकेज है जो सॉफ़्टवेयर प्रक्रियाओं को यादृच्छिक डेटा पुनर्प्राप्त करने की अनुमति देता है।

खिड़कियाँ
माइक्रोसॉफ़्ट विंडोज़ ़ विंडोज़ 95 की तुलना में नई रिलीज़ करता है जो लिनक्स कर्नेल के /dev/random के समान एन्ट्रापी इकट्ठा करने के लिए माइक्रोसॉफ्ट क्रिप्टोएपीआई का उपयोग करता है। विंडोज़ का क्रिप्टोएपीआई अपने सभी एन्ट्रापी स्रोतों से एक बीजित मूल्य को संग्रहीत करने के लिए बाइनरी विंडोज़ रजिस्ट्री कुंजी HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\RNG\Seed का उपयोग करता है। क्योंकि क्रिप्टोएपीआई बंद-स्रोत है, विंडोज़ प्लेटफ़ॉर्म पर चलने वाले कुछ मुफ़्त और खुले स्रोत सॉफ़्टवेयर एप्लिकेशन यादृच्छिकता प्राप्त करने के लिए अन्य उपायों का उपयोग करते हैं। उदाहरण के लिए, जीएनयूपीजी, संस्करण 1.06 के अनुसार, विभिन्न स्रोतों का उपयोग करता है जैसे कि मेमोरी में मुफ्त बाइट्स की संख्या जो एक यादृच्छिक बीज के साथ मिलकर वांछित यादृच्छिकता उत्पन्न करती है जिसकी उसे आवश्यकता होती है। CAPI का उपयोग करने वाले प्रोग्रामर इसे ठीक से आरंभ करने के बाद CAPI के CryptGenRandom को कॉल करके एन्ट्रापी प्राप्त कर सकते हैं। क्रिप्टोएपीआई को विंडोज विस्टा और उच्चतर से हटा दिया गया था। नई एपीआई को क्रिप्टोग्राफी एपीआई: नेक्स्ट जेनरेशन (सीएनजी) कहा जाता है। विंडोज़ का सीएनजी बीजित मूल्य को संग्रहीत करने के लिए बाइनरी विंडोज़ रजिस्ट्री कुंजी HKEY_LOCAL_MACHINE\SYSTEM\RNG\Seed का उपयोग करता है।

विंडोज़ का नया संस्करण विभिन्न प्रकार के एन्ट्रापी स्रोतों का उपयोग करने में सक्षम है:
 * विश्वसनीय प्लेटफ़ॉर्म मॉड्यूल यदि उपलब्ध हो और मदरबोर्ड पर सक्षम हो
 * यूईएफआई इंटरफ़ेस से एन्ट्रॉपी (यदि यूईएफआई से बूट किया गया है)
 * RDRAND सीपीयू अनुदेश यदि उपलब्ध हो
 * हार्डवेयर सिस्टम घड़ी (वास्तविक समय घड़ी)
 * OEM0 ACPI तालिका सामग्री
 * व्यवधान का समय
 * कीबोर्ड टाइमिंग और माउस मूवमेंट

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

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

अन्य प्रणालियाँ
ऐसे कुछ सॉफ्टवेयर पैकेज हैं जो किसी को यादृच्छिक वर्णों को इकट्ठा करने के लिए यूजरस्पेस प्रक्रिया का उपयोग करने की अनुमति देते हैं, बिल्कुल वही जो /dev/random करता है, जैसे कि ईजीडी, एन्ट्रॉपी गैदरिंग डेमॉन।

हार्डवेयर-उत्पन्न एन्ट्रापी
आधुनिक CPU  और हार्डवेयर में अक्सर एकीकृत जनरेटर की सुविधा होती है जो ऑपरेटिंग सिस्टम को उच्च गुणवत्ता और उच्च गति एन्ट्रॉपी प्रदान कर सकते हैं। लिनक्स कर्नेल पर आधारित सिस्टम पर, कोई ऐसे डिवाइस से उत्पन्न एन्ट्रॉपी को /dev/hw_random के माध्यम से पढ़ सकता है। हालाँकि, कभी-कभी /dev/hw_random धीमा हो सकता है; कुछ कंपनियां एन्ट्रॉपी जेनरेशन डिवाइस बनाती हैं, और उनमें से कुछ को लिनक्स के लिए ड्राइवरों के साथ भेजा जाता है। लिनक्स सिस्टम पर, कोई आरएनजी-टूल्स पैकेज इंस्टॉल कर सकता है जो RDRAND निर्देश, विश्वसनीय प्लेटफ़ॉर्म मॉड्यूल और कुछ Intel, AMD, या VIA Technologies चिपसेट का समर्थन करने वाले CPU में पाए जाने वाले वास्तविक यादृच्छिक संख्या जनरेटर (TRNG) का समर्थन करता है, /dev/random में एकत्रित एन्ट्रॉपी को प्रभावी ढंग से बढ़ाना और संभावित रूप से क्रिप्टोग्राफ़िक क्षमता में सुधार करना। यह विशेष रूप से नेतृत्वहीन व्यवस्था  पर उपयोगी है जिसमें एन्ट्रापी का कोई अन्य स्रोत नहीं है।

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

लिनक्स में एन्ट्रॉपी पूल का आकार फ़ाइल /proc/sys/kernel/random/entropy_avail के माध्यम से देखा जा सकता है और आम तौर पर कम से कम 2000 बिट्स (अधिकतम 4096 में से) होना चाहिए। एन्ट्रापी बार-बार बदलती रहती है।

कम या शून्य एन्ट्रापी वाले सिस्टम के लिए जिम्मेदार प्रशासकों को /dev/random के विकल्प के रूप में /dev/urandom का उपयोग करने का प्रयास नहीं करना चाहिए क्योंकि इससे SSL/TLS कनेक्शन में निम्न-श्रेणी का एन्क्रिप्शन हो सकता है। कुछ सॉफ़्टवेयर सिस्टम अक्सर अपनी Diffie-Hellman  कुंजियाँ बदलते हैं, और यह कुछ मामलों में सर्वर को एन्ट्रापी बाधा के साथ भी सामान्य रूप से कार्य करना जारी रखने में मदद कर सकता है। कम एन्ट्रापी वाले सर्वर पर, एक प्रक्रिया रुकी हुई दिखाई दे सकती है जब वह /dev/random (लिनक्स-आधारित सिस्टम पर) में यादृच्छिक वर्णों के प्रकट होने की प्रतीक्षा कर रही हो। उदाहरण के लिए, डेबियन में एक ज्ञात समस्या थी जिसके कारण कुछ मामलों में exim4 लटक गया था।

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

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

यह भी देखें

 * एन्ट्रॉपी (सूचना सिद्धांत)
 * एन्ट्रापी
 * यादृच्छिकता

बाहरी संबंध

 * Overview of entropy and of entropy generators in Linux