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

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

लिनक्स कर्नेल
लिनक्स कर्नेल कीबोर्ड (कंप्यूटिंग) टाइमिंग, माउस (कंप्यूटिंग) और इंटीग्रेटेड ड्राइव इलेक्ट्रॉनिक्स (आईडीई) टाइमिंग से एन्ट्रापी उत्पन्न करता है और स्प्रस्तुतल फाइल्स /dev/random और /dev/urandom के माध्यम से अन्य ऑपरेटिंग सिस्टम प्रक्रियाओं के लिए रैंडम कैरेक्टर डेटा उपलब्ध कराता है। यह कैपबिलिटी लिनक्स संस्करण 1.3.30 में प्रस्तुत की गई थी।

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

ओपनबीएसडी कर्नेल
ओपनबीएसडी ने क्रिप्टोग्राफी को अपने मेन गोल्स में से एक के रूप में एकीकृत किया है और निरंतर एन्क्रिप्शन के लिए अपनी एन्ट्रापी को बढ़ाने पर काम किया है, लेकिन इसके कर्नेल के विभिन्न आंतरिक संचालन सहित ओएस के कई भागो को रैंडम बनाने के लिए भी काम किया है। 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 के अनुसार, विभिन्न सोर्सों का उपयोग करता है जैसे कि मेमोरी में फ्री बाइट्स की संख्या जो एक रैंडम बीज के साथ मिलकर वांछित रैंडमनैस उत्पन्न करती है जिसकी उसे आवश्यकता होती है।

सीएपीआई का उपयोग करने वाले प्रोग्रामर इसे ठीक से आरंभ करने के पश्चात सीएपीआई के क्रिप्टजेनरैंडम को कॉल करके एन्ट्रापी प्राप्त कर सकते हैं।

क्रिप्टोएपीआई को विंडोज विस्टा और उच्चतर से हटा दिया गया था। नई एपीआई को क्रिप्टोग्राफी एपीआई: नेक्स्ट जेनरेशन (सीएनजी) कहा जाता है। विंडोज़ का सीएनजी बीजित मूल्य को संग्रहीत करने के लिए बाइनरी विंडोज़ रजिस्ट्री की HKEY_LOCAL_MACHINE\SYSTEM\RNG\Seed का उपयोग करता है।

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

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

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

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

हार्डवेयर-उत्पन्न एन्ट्रापी
आधुनिक सीपीयू और हार्डवेयर में अक्सर एकीकृत जनरेटर की सुविधा होती है जो ऑपरेटिंग सिस्टम को उच्च गुणवत्ता और उच्च गति एन्ट्रॉपी प्रदान कर सकते हैं। लिनक्स कर्नेल पर आधारित सिस्टम पर, कोई ऐसे डिवाइस से उत्पन्न एन्ट्रॉपी को /dev/hw_random के माध्यम से पढ़ सकता है। चूँकि, कभी-कभी /dev/hw_random धीमा हो सकता है;

कुछ कंपनियां एन्ट्रॉपी जेनरेशन डिवाइस बनाती हैं, और उनमें से कुछ को लिनक्स के लिए ड्राइवरों के साथ भेजा जाता है।

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

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

लिनक्स में एन्ट्रॉपी पूल का आकार फ़ाइल /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