কম্পিউটার সাধারনত র‍্যান্ডম নাম্বার জেনারেট করে ক্রিপ্টোগ্রাফি থেকে।ক্রিপ্টোগ্রাফি কি সেটা নিয়ে না হয়  পরে আলোচনা চলবে ।র‍্যান্ডম নাম্বার দুই ধরনের হয়ে থাকে।প্রথমত , ‘ট্রু’ (true) র‍্যান্ডম নাম্বার ।দ্বিতীয়ত, ‘পেসুডো’ (pesudo) র‍্যান্ডম নাম্বার।পেসুডো র‍্যান্ডম নাম্বারগুলো সিকুরিটি এনক্রিপশনের জন্য বেশী গুরুত্বপূর্ণ । সত্যিকার অর্থে বেশিরভাগ র‍্যান্ডম নাম্বার যেগুলো কম্পিউটারের প্রোগাম বা সফটওয়্যারগুলোতে ব্যাবহার করা হয় তাকেই পেসুডো র‍্যান্ডমস বলে।যার অর্থ হল সেগুলো কিছু গাণিতিক সূত্র ব্যবহার করে একটি প্রত্যাশিত ফ্যাশনে উৎপন্ন হয় ।

সম্প্রতি একটি প্রশ্ন আরো বিতর্কিত করে তুলেছে এই যে ইন্টেলের অন্তর্নির্মিত হার্ডওয়্যার  র‍্যান্ডম নম্বর জেনারেটর চিপ নির্ভরযোগ্য কিনা ! এটি বিশ্বাসযোগ্য হতে পারে না কেন তা বোঝার জন্য আপনাকে প্রথমে বুঝতে হবে কীভাবে এলোমেলো সংখ্যাগুলি প্রথম স্থানে রুপান্তরিত করা হয় এবং তাদের জন্য কী ব্যবহার করা হয় ।

র‍্যান্ডম নাম্বার কোথায় ব্যাবহার হয় ?

র‍্যান্ডম সংখ্যা হাজার হাজার বছর ধরে ব্যবহার করা হয়েছে এবং এখনো ব্যাবহার করা হচ্ছে । যেমন একটি দুই টাকার কয়েন টস করার সময় কি হতে পারে বা কোনো লাটিম ঘোরার সময় কোথায় গিয়ে থেমে  যাবে সেই পয়েন্ট,লোকেশনটি বের করা । এই সময় কপমিউটারে গানিতিক সূত্রের মাধ্যমে নাম্বার জেনারেট করে সাম্ভব্য রেজাল্ট বের করে ।একটি কম্পিউটারে র‍্যান্ডম সংখ্যা জেনারেটরগুলি একই রকম – তারা একটি অনির্দেশ্য, এলোমেলো ফলাফল অর্জনের একটি প্রচেষ্টা চালিয়ে যায় ।

র‍্যান্ডম সংখ্যা জেনারেটরগুলোকে  বিভিন্ন উদ্দেশ্যে কাজ করানো যেতে পারে ।এগুলো সাধারনত আপনার কম্পিউটারে থেকে দাবা বা লুডু খেলার সময় কম্পিউটার যে চাল চালে সেটা র‍্যান্ডম নাম্বারের মাধ্যমেই হয়ে থাকে । শুধু এই অ্যাপ্লিকেশনগুলোর পাশাপাশি ক্রিপ্টোগ্রাফিতে এর এলোমেলোতা অধিক গুরুত্বপূরণ ।ক্রিপ্টোগ্রাফিতেই এর বেশী ব্যাবহার হয়ে থাকে।

ক্রিপ্টোগ্রাফি তে র‍্যান্ডম নাম্বার এতোটা গুরুত্বপূরণ কারন হ্যাকার বা অন্য কেউ এই ক্রিপ্টোগ্রাফিতে  আক্রমন তো দূরের কথা অনুমান ও যেন না করতে পারে । আমরা একই নাম্বার বার বার ব্যাবহার করতে পারি না । আমরা নাম্বারগুলো খুব ইউনিক ভাবে তৈরি করতে চাই যেন কেউ আমাদের কোনো সাইট ফেসবুক,ইন্সট্রাগ্রাম এর মত প্ল্যাটফর্মে অ্যাক্সেস করতে না পারে । এই র‍্যান্ডম সংখ্যাগুলি নিরাপদ এনক্রিপশনের জন্য অপরিহার্য, আপনি নিজের ফাইলগুলি এনক্রিপ্ট করছেন কিনা বা ইন্টারনেটের HTTPS ( Hypertext Transfer Protocol Secure ) সম্বলিত ওয়েবসাইট ব্যাবহার করেছেন কিনা !

“ট্রু” র‍্যান্ডম নাম্বার

আপনি হয়তো ভাবতে পারেন যে কোন কম্পিউটার আসলে কোনও র‍্যান্ডম  নাম্বর তৈরি করতে পারে না ।তবে এই “এলোমেলোতা” কোথা থেকে আসে।যদি এটি কম্পিউটার কোডের এক অংশ হয় , তবে কম্পিউটারের সংখ্যাগুলি কি  আন্দাজের ওপর সম্ভব হয় ?

আমরা সাধারনত দুই ভাবে র‍্যান্ডম নাম্বার জেনারেট করতে পারি – “ট্রু” র‍্যান্ডম নাম্বার ও “পেসুডো” র‍্যান্ডম নাম্বার । একটি “ট্রু”  র‍্যান্ডম নাম্বার জেনারেট করতে গেলে একটি কম্পিউটারের শুধু সফটওয়্যার এর দিক দিয়ে না হার্ডওয়্যার এর দিক টিও খেয়াল রাখতে হয়।কারন হার্ডওয়্যার ও মাঝে মাঝে অনেক ভূমিকা রাখে।একটি র‍্যান্ডম নাম্বার পারমাণবিক বোমার যে তেজস্ক্রিয়তা সেটা উপলব্ধি করতে পারে ।কিন্তু কোয়ান্টাম থিওরির মতে, এই তেজক্রিয় ক্ষয় ঘটবে কি ঘটবে কি ঘটবে না তা পরিমাপ করা সম্ভব না।কারন এই পারমানবিক বোমার আঘতে কতটুকু ক্ষয়-ক্ষতি হবে তা বলা যাবে কিন্ত কখন হবে বা আদো হবে কি না তা বলা মুশকিল।তাই এই কম্পিউটার মুলত র‍্যান্ডমতার সঠিক মান জানেনা।

আরো প্রতিদিনের কাজের উদাহরণের জন্য, কম্পিউটারটি বায়ুমণ্ডলীয় শব্দটির উপর নির্ভর করতে পারে অথবা আপনার কীবোর্ডে সঠিক কোন কোন  সময়গুলিতে কোন কোন কী চাপবেন তা্র অনির্দেশ্য ডেটা, বা এনট্রোপির উৎস হিসাবে ব্যবহার করতে পারে।উদাহরণস্বরূপ, আপনার কম্পিউটারে লক্ষ্য করা যেতে পারে যে আপনি দীর্ঘ ১৪-১৫ ঘন্টা পরে ০.২৩৬৯৫৪৮ সেকেন্ডে একটি কী চাপেন। এই কী প্রেসগুলির সাথে যুক্ত নির্দিষ্ট নির্দিষ্ট সময়গুলি ধরুন এবং আপনার কাছে একটি এনট্রপি উৎস থাকবে যা থেকে আপনি “ট্রু” র‍্যান্ডম নাম্বার তৈরি করে ব্যবহার করতে পারেন।আপনি কোনো পূর্বাভাসযোগ্য মেশিন নন, সুতরাং আপনি যখন এই কী গুলি চাপবেন তখন আক্রমণকারীটি সঠিক মুহুর্তটি অনুমান করতে পারে না।ফলে সে তার আক্রমনটি আর চালাতে পারবে না।

সাধারনত লিনাক্সে র‍্যান্ডম নাম্বার জেনারেট করা হয়।লিনাক্সে কিছু ব্লক থাকে যা এই নাম্বারগুলি জেনারেট করে ।আর এই জেনারেটর ততক্ষন পর্যন্ত র‍্যান্ডম নাম্বার দিবে না যতক্ষন পর্যন্ত যথেষ্ট এন্ট্রপি জেনারেট হচ্ছে।

“পেসুডো” র‍্যান্ডম নাম্বার

পেসুডো বা ছদ্মবেশী সংখ্যাগুলি “ট্রু” র‍্যান্ডম সংখ্যার বিকল্প। একটি কম্পিউটার একটি বীজ মান এবং একটি অ্যালগরিদম ব্যবহার করতে পারে যা সংখ্যাগুলিকে র‍্যান্ডম বলে মনে করে, তবে এটি আসলে প্রত্যাশিত মান মাত্র । কম্পিউটার পরিবেশ থেকে কোনো র‍্যান্ডম তথ্য জড়ো করতে পারে না ।আপনি যেমন কোনো গেম খেলতে গেলে কখনো মনে করেন না যে এই গেমে র‍্যান্ডম সংখ্যাগুলো সত্য নাকি ছদ্মবেশী।কিন্ত অন্যদিকে আপনি যদি কোনো ইনফরমেশন এনক্রিপ্ট করতে চান তখন কিন্ত আপনি ছদ্মবেশী র‍্যান্ডম নাম্বার ব্যাবহার করতে চাইবেন না ।কারন এতে আপনার এনক্রিপশন হ্যাক হয়ে  যেতে পারে ।

উদাহরণস্বরূপ, একটি আক্রমণকারী অ্যালগরিদম এবং বীজ মান একটি ছদ্মবেশী সংখ্যা জেনারেটর ব্যবহার করে  এবং একটি এনক্রিপশন অ্যালগরিদম এই অ্যালগরিদম থেকে একটি ছদ্মবেশী সংখ্যা পায় এবং কোনও অতিরিক্ত র‍্যান্ডমনেস যোগ ছাড়াই একটি এনক্রিপশন কী উৎপন্ন করার জন্য এটি ব্যবহার করে । এখানে যদি কোন আক্রমণকারী যথেষ্ট জ্ঞান না থাকে তবে সে তার  পিছনে কাজ করতে পারে এবং এনক্রিপশন অ্যালগরিদমটি সিঙ্ক র‍্যান্ডম সংখ্যা নির্ধারণ করতে পারে , তবে এ ক্ষেত্রে এনক্রিপশনটি ভেঙ্গে যাব ।

এনএসএ এবং ইন্টেলের হার্ডওয়্যার র্যান্ডম সংখ্যা জেনারেটর

ডেভেলপারদের জন্য জিনিসগুলি সহজতর করতে এবং নিরাপদ র‍্যান্ডম সংখ্যাগুলি তৈরি করতে সহায়তা করার জন্য, ইন্টেল চিপগুলিতে হার্ডওয়্যার ভিত্তিক র‍্যান্ডম সংখ্যা জেনারেটর RdRand নামে পরিচিত। এই চিপটি প্রসেসরের একটি এনট্রপি উৎস  ব্যবহার করে এবং সফটওয়্যারগুলো আক্সেস পাওয়ার সময় সফ্টওয়্যারগুলোতে র‍্যান্ডম সংখ্যা সরবরাহ করেএখানে সমস্যা হল র‍্যান্ডম সংখ্যা জেনারেটরটি মূলত একটি ব্ল্যাক বক্স এবং এটির ভিতরে কী চলছে তা আমরা জানি না। RdRand এর একটি  NSA ব্যাকডোর থাকলে, সরকার সকল এনক্রিপশন কীগুলি ভঙ্গ করতে সক্ষম হবে যা কেবলমাত্র র‍্যান্ডম সংখ্যা জেনারেটরের সরবরাহকৃত তথ্য দিয়ে তৈরি হয়েছিল।

“ট্রু” র‍্যান্ডম সংখ্যাগুলি উৎপন্ন করতে, র‍্যান্ডম সংখ্যা জেনারেটরগুলি তাদের চারপাশের ভৌত বিশ্বের থেকে “এনট্রপি” বা আপাতদৃষ্টিতে র‍্যান্ডম ডেটা সংগ্রহ করে। র‍্যান্ডম নম্বরগুলির জন্য যে সবকিছু  র‍্যান্ডম হতে হবে তা কিন্ত না, তারা কেবল একটি অ্যালগরিদম এবং বীজ মান ব্যবহার করতে পারে।

এভাবেই কম্পিউটার র‍্যান্ডম নাম্বার জেনারট করে ।আরো বেশী জানতে আমাদের সাথে থাকুন।
আশ্চর্য ডট কম ।

Source: Google