क्या आप रैंडम.c में प्रयुक्त एंट्रॉपी अनुमान की व्याख्या कर सकते हैं


12

/dev/randomएन्ट्रापी पूल में जोड़ने के लिए कर्नेल इंटरुप के समय का उपयोग करता है। पूल में एन्ट्रापी की मात्रा को नामांकित चर में ट्रैक किया जाता है entropy_count

यहाँ से कोड का प्रासंगिक स्निपेट दिया गया है random.c। यह चर में पिछले दो अंतरालों और डेल्टास में अंतर के रूप में (मुझे लगता है कि समय में) का प्रतिनिधित्व deltaकरता है delta2

delta = time - state->last_time;
state->last_time = time;

delta2 = delta - state->last_delta;
state->last_delta = delta;

if (delta < 0) delta = -delta;
if (delta2 < 0) delta2 = -delta2;
delta = MIN(delta, delta2) >> 1;
for (nbits = 0; delta; nbits++)
  delta >>= 1;

r->entropy_count += nbits;

/* Prevent overflow */
if (r->entropy_count > POOLBITS)
  r->entropy_count = POOLBITS;

ऐसा लगता है कि जोड़ा गया एंट्रोपी का अनुमान अनिवार्य रूप से डेल्टा (बेस के प्रारंभिक बिटशिफ्ट के कारण लूप से पहले नहीं) है, जो डेल्टा के आधार 2 लघुगणक का है। यह कुछ सहज ज्ञान युक्त समझ में आता है, हालांकि मुझे यकीन नहीं है कि औपचारिक रूप से इसे सही बनाने के लिए किन धारणाओं की आवश्यकता होगी।

तो, मेरा पहला सवाल है "इस अनुमान के पीछे तर्क क्या है?"

मेरा दूसरा सवाल है delta = MIN(delta, delta2) ...। यह क्या करता है? इस डेल्टा का न्यूनतम और अंतिम एक क्यों लें? मुझे नहीं पता कि यह क्या हासिल करना है - शायद यह अनुमान को बेहतर बनाता है, शायद अधिक रूढ़िवादी।

संपादित करें: मैंने एक पेपर पाया है जो अनुमान को निर्दिष्ट करता है , लेकिन यह वास्तव में इसके लिए एक तर्कपूर्ण तर्क नहीं देता है (हालांकि यह कुछ अनौपचारिक स्थितियों को रेखांकित करता है जो अनुमानक को मिलना चाहिए)।

अन्य संसाधन जो टिप्पणियों में आए हैं:


1
ध्यान दें कि लिनक्स में एंट्रॉपी अनुमान का मूल्य /dev/randomएक अस्थिर नींव पर है - फीडिंग / देव / यादृच्छिक एंट्रॉपी पूल देखें? । मैंने थॉमस को इस उम्मीद में पिंग किया है कि वह आपके सवाल का जवाब देंगे।
गिल्स एसओ- बुराई पर रोक

: विकिपीडिया में इसके बारे में किसी को भी इस उपचार विषय में रुचि है, तो एक बहुत अच्छा प्रारंभिक बिंदु है en.wikipedia.org/wiki//dev/random
SLM

1
([लिनक्स एन्ट्रापी आकलनकर्ता की एक व्याख्या]: - @Lucas इस पत्र पर एक नज़र लेने के रूप में अच्छी तरह eprint.iacr.org/2012/487.pdf )
SLM

@ एसएलएम दिलचस्प, हालांकि मुझे यकीन नहीं है कि यह सही है - कोलमोगोरोव जटिलता का उपयोग करके न्यूनतम फ़ंक्शन को सही ठहराने का कदम तर्क में एक बड़ी छलांग है और यह मेरे लिए स्पष्ट नहीं है कि यह वैचारिक रूप से ध्वनि है।
लुकास

@Lucas - सोचा मैं इसे साथ दे देते हैं, मैं अपने लीग w / इस क्यू 8-) से बाहर कर रहा हूँ
SLM

जवाबों:


5

delta2पिछले नहीं है delta, लेकिन दो क्रमिक मूल्यों के बीच का अंतर है delta। यह एक प्रकार का व्युत्पन्न है: यदि deltaगति को मापता है, delta2तो त्वरण है।

उस अनुमान के पीछे सहज विचार यह है कि भौतिक दुनिया से अप्रत्याशित घटनाओं (जैसे कि कुंजी स्ट्रोक या नेटवर्क पैकेट के आगमन) द्वारा निर्देशित अधिक या कम यादृच्छिक अंतराल पर व्यवधान उत्पन्न होता है। जितनी देर होगी, उतनी ही अप्रत्याशित घटनाएं शामिल होंगी। हालांकि, ऐसी भौतिक प्रणालियां हैं जो एक निश्चित दर पर आग रोकती हैं; delta2उपाय (, इसलिए निश्चित उम्मीद के मुताबिक, सभी करता है, तो बीच में आता है तय अंतराल पर घटित एक सुरक्षा तंत्र है जिसके इस तरह की घटनाओं का पता लगाता है deltaएक ही मूल्य है करेगा, इसलिए delta2शून्य हो जाएगा)।

मैंने कहा "सहज" और कहने के लिए बहुत कुछ नहीं है। वास्तव में, "यादृच्छिक भौतिक घटनाओं" मॉडल में, बिट्स की गिनती करना गलत है; यदि प्रत्येक समय इकाई के लिए एक हार्डवेयर घटना प्रायिकता p के साथ होती है , और आपको n बिट्स पर व्यक्त विलंब मिलता है , तो एन्ट्रापी योगदान को n / 2 बिट्स के रूप में होना चाहिए , n बिट्स के रूप में। लेकिन हम जानते हैं कि वास्तव में शारीरिक घटनाएं बिल्कुल यादृच्छिक क्षणों में नहीं होती हैं; delta2तंत्र जितना मानते हैं।

तो व्यवहार में, "एंट्रोपी अनुमान" बिल्कुल वही है: एक अनुमान । इसका सुरक्षा मूल्य एक सुविचारित, गणितीय रूप से सटीक औचित्य से नहीं आता है, लेकिन सुरक्षा के सामान्य स्रोत से: किसी को भी इसे (अभी तक) दुरुपयोग करने का कोई तरीका नहीं मिला है।


यह पृष्ठ किसी ऐसे व्यक्ति द्वारा लिखा गया था, जो मिथकों के बारे में /dev/randomऔर इसके एंट्रॉपी अनुमानक से तंग आ गया था , और मुझे लगता है कि यह पर्याप्त विवरण के साथ चीजों को अच्छी तरह से समझाता है। आरजीजी के साथ काम करते समय कुछ बुनियादी विचारों को प्राप्त करना महत्वपूर्ण है।


ऊओप्स, आई मिसपोक, मुझे कहना चाहिए कि डेल्टास में बदलाव। मेरा कहना है कि अधिकांश अनुमानों में एक "अच्छी तरह से तर्कपूर्ण, गणितीय रूप से सटीक औचित्य है", यही उन्हें अनुमानों से अलग करता है - और अगर यह बिल्कुल काम करता है तो इसका कुछ औपचारिक औचित्य होना चाहिए । यह पूरी तरह से ठीक है कि इन चीजों की परवाह न करें और केवल सुरक्षा की व्यावहारिकता की परवाह करें, लेकिन यह सभी के लिए सही नहीं है। जो दिलचस्प है उस पर सहमत नहीं होना "मूल विचारों को सही" प्राप्त करने का मामला नहीं है।
लुकास

मैं यह नहीं कह रहा हूं कि इसमें जो गलत तरीके से डिजाइन किया गया था, उसके लिए यह एक व्यावहारिक अनुमान है।
लुकास
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.