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

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

लिनक्स कर्नेल
लिनक्स कर्नेल कीबोर्ड (कंप्यूटिंग) टाइमिंग, माउस (कंप्यूटिंग) और इंटीग्रेटेड ड्राइव इलेक्ट्रॉनिक्स (आईडीई) टाइमिंग से एन्ट्रापी उत्पन्न करता है और स्पेशल फाइल्स /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