/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) ...
। এটি কি করে? এই ব-দ্বীপটির সর্বনিম্ন এবং সর্বশেষটি কেন নেবে? আমি জানি না এটি কী অর্জন করার কথা - সম্ভবত এটি অনুমানকে আরও ভাল করে তোলে, সম্ভবত আরও রক্ষণশীল serv
সম্পাদনা: আমি একটি কাগজ পেয়েছি যা অনুমানটি নির্দিষ্ট করে , তবে এটি সত্যিকার অর্থে এটির পক্ষে যুক্তিযুক্ত যুক্তি দেয় না (যদিও এটি কিছু অনানুষ্ঠানিক অবস্থার রূপরেখা দেয় যা অনুমানকারীর পূরণ করা উচিত)।
অন্যান্য সংস্থান যা মন্তব্যগুলিতে এসেছে:
- উইকিপিডিয়া
/dev/random
এবং/dev/urandom
- একটি কাগজ যা এটি ব্যাখ্যা করার চেষ্টা করে (আমি এটি সম্পর্কে সংশয়ী, মন্তব্যগুলি দেখুন)
/dev/random
উপরের কোডটি লিখেছেন এমন লোকটির মন্তব্য সহ একটি ব্লগ পোস্ট ।/dev/random
এন্ট্রপি পুল সম্পর্কে একটি সিকিউরিটি.এসই উত্তর ।
/dev/random
একটি নড়বড়ে ভিত্তিতে রয়েছে - খাওয়ানো / দেব / এলোমেলো এন্ট্রপি পুল দেখুন? । আমি থমাসকে এই প্রত্যাশা দিয়েছিলাম যে তিনি আপনার প্রশ্নের উত্তর দেবেন।