এর সত্যের দানা রয়েছে, বাস্তবে পৌরাণিক কাহিনী অপেক্ষা আরও সত্য, তবে তবুও বিবৃতিটি যা চলছে তার একটি মৌলিক ভুল বোঝাবুঝির প্রতিফলন করে। হ্যাঁ, জিপিজি দিয়ে কী তৈরি করার সময় মাউসটি সরিয়ে নেওয়া ভাল ধারণা হতে পারে। হ্যাঁ, মাউসটি সরিয়ে নিয়ে যাওয়া এমন কিছু এনট্রপি অবদান রাখে যা এলোমেলো সংখ্যাগুলিকে এলোমেলো করে তোলে। না, মাউসটি সরানো কীটি আরও সুরক্ষিত করে না।
ক্রিপ্টোগ্রাফির জন্য উপযুক্ত সমস্ত ভাল এলোমেলো জেনারেটর এবং লিনাক্স সেই বিভাগে রয়েছে, দুটি উপাদান রয়েছে:
- একটি এনট্রপি উত্স, যা অ-নিরস্তক। এনট্রপির উদ্দেশ্য হ'ল অপ্রত্যাশিত ডেটা সহ এলোমেলো সংখ্যা জেনারেটর বুটস্ট্র্যাপ করা। এন্ট্রপি উত্সটি অবশ্যই অ-নিরস্ত করা উচিত: অন্যথায়, কোনও বিরোধী একই গণনা পুনরুত্পাদন করতে পারে।
- একটি সিউডোরেন্ডম সংখ্যার জেনারেটর , যা পরিবর্তিত অভ্যন্তরীণ পরিস্থিতি থেকে একটি নির্জনবাদী ফ্যাশনে অনাকাঙ্ক্ষিত এলোমেলো সংখ্যা তৈরি করে।
এন্ট্রপি এমন একটি উত্স থেকে আসতে হবে যা কম্পিউটারের বাহ্যিক। ব্যবহারকারী এন্ট্রপির একটি উত্স। ব্যবহারকারী যা করেন তা বেশিরভাগ এলোমেলো নয়, তবে কীস্ট্রোক এবং মাউস চলাফেরার সূক্ষ্ম সময়টি এতটা অনাকাঙ্ক্ষিত যে সামান্য এলোমেলো - খুব এলোমেলো নয়, তবে অল্প অল্প করেই তা জমে। এনট্রপির অন্যান্য সম্ভাব্য উত্সগুলির মধ্যে রয়েছে নেটওয়ার্ক প্যাকেট এবং ক্যামেরা বা মাইক্রোফোন সাদা গোলমালের সময় অন্তর্ভুক্ত। বিভিন্ন কার্নেল সংস্করণ এবং কনফিগারেশন বিভিন্ন উত্সের সেট ব্যবহার করতে পারে। কিছু কম্পিউটার তেজস্ক্রিয় ক্ষয়ের উপর ভিত্তি করে হার্ডওয়্যার আরএনজি সার্কিটকে নিবেদিত করে বা কম চিত্তাকর্ষকভাবে, অস্থির ইলেকট্রনিক সার্কিট। এই উত্সর্গীকৃত উত্সগুলি এম্বেডড ডিভাইস এবং সার্ভারগুলিতে বিশেষভাবে কার্যকর যা তাদের প্রথম বুটে বেশ অনুমানযোগ্য আচরণ করতে পারে, কোনও ব্যবহারকারীকে অদ্ভুত জিনিস না করেই।
লিনাক্স দুটি ডিভাইসের মাধ্যমে প্রোগ্রামগুলিতে এলোমেলো সংখ্যা সরবরাহ করে: /dev/random
এবং/dev/urandom
। উভয় ডিভাইস থেকে পড়া ক্রিপ্টোগ্রাফিক-গুণমানটি দেয়। উভয় ডিভাইসই রাষ্ট্রটিকে রূপান্তর করতে এবং এলোমেলো বাইট তৈরি করতে একই অভ্যন্তরীণ আরএনজি অবস্থা এবং একই অ্যালগরিদম ব্যবহার করে। তাদের অদ্ভুত সীমাবদ্ধতা রয়েছে যা তাদের উভয়কেই সঠিক জিনিস করে না:
/dev/urandom
যদি সিস্টেমটি এখনও পর্যাপ্ত এনট্রপি জমা না করে থাকে তবে অনুমানযোগ্য ডেটা ফিরতে পারে।
/dev/random
পর্যাপ্ত পরিমাণ না থাকলে উপলভ্য এনট্রপি এবং ব্লকগুলির পরিমাণ গণনা করে। এটি ভাল শোনাচ্ছে, ব্যতীত গণনাটি তাত্ত্বিক বিবেচনার ভিত্তিতে করা হয় যা প্রতিটি আউটপুট বিটের সাথে উপলভ্য এনট্রপির পরিমাণকে রৈখিকভাবে হ্রাস করে। সুতরাং /dev/random
খুব দ্রুত ব্লক ঝোঁক।
লিনাক্স সিস্টেমগুলি অভ্যন্তরীণ আরএনজি অবস্থাটিকে ডিস্কে সংরক্ষণ করে এবং বুট করার সময় পুনরুদ্ধার করে। অতএব এনট্রপি এক বুট থেকে অন্য বুটে চলে। লিনাক্স সিস্টেমে কেবলমাত্র ইন্সট্রপির অভাব থাকতে পারে যখন এটি নতুনভাবে ইনস্টল করা হয়। সিস্টেমে একবার পর্যাপ্ত এনট্রপি পাওয়া গেলে, এনট্রপি কমবে না; কেবল লিনাক্সের ত্রুটিযুক্ত গণনা হ্রাস পায়। এই বিবেচনার আরও ব্যাখ্যার জন্য , কোনও পেশাদার ক্রিপ্টোগ্রাফার দ্বারা /dev/urandom
ক্রিপ্টোগ্রাফিক কী উত্পন্ন করার জন্য পড়া উপযুক্ত । Aso দেখুন আপনি random.c এ ব্যবহৃত এনট্রপি অনুমানটি ব্যাখ্যা করতে পারেন ।
মাউস সরানো সিস্টেমে আরও এনট্রপি যুক্ত করে। তবে জিপিজি কেবল এগুলি থেকে পড়তে পারে /dev/random
, নয়/dev/urandom
(এই সমস্যার সমাধানের উপায়টি /dev/random
একই 1: 9 ডিভাইস হিসাবে তৈরি করা /dev/urandom
), তাই এটি কখনও-এলোমেলো-পর্যাপ্ত র্যান্ডম সংখ্যা পাওয়ার ঝুঁকি থাকে না at আপনি যদি মাউসটি না সরান, কীটি যতটা এলোমেলো হতে পারে; তবে কী ঘটতে পারে তা হ'ল জিপিজি/dev/random
কার্নেলের এনট্রপি কাউন্টারের উত্থানের অপেক্ষায়, একটি পঠন থেকে ব্লক হয়ে যেতে পারে।