সত্যিকারের র্যান্ডম সংখ্যা তৈরির (True Random Number Generation) প্রযুক্তি কাজ করে শারীরিক এন্ট্রপি — তাপীয় নয়েজ, বায়ুমণ্ডলীয় স্ট্যাটিক, কোয়ান্টাম ক্ষয় — সংগ্রহ করে এবং সেই বিশৃঙ্খল অ্যানালগ সংকেতগুলিকে ডিজিটাল বিটে রূপান্তর করে। অ্যালগরিদম-ভিত্তিক জেনারেটরগুলির থেকে ভিন্ন, হার্ডওয়্যার-চালিত সিস্টেমগুলি অ-নির্ধারণমূলক পরিবেশগত ভেরিয়েবল পরিমাপ করে এমন ক্রম তৈরি করে যা গাণিতিকভাবে অনুমানযোগ্য নয় এবং যাতে কোনও প্যাটার্ন নেই।
নিচে ব্যাখ্যা করা হলো এই প্রযুক্তি কীভাবে কাজ করে, কোথায় ব্যর্থ হয়, এবং আপনার প্রয়োজন অনুযায়ী সঠিক পদ্ধতি কীভাবে বেছে নেবেন।
TRNG কীভাবে কাজ করে: শারীরিক বিশৃঙ্খলা থেকে ডিজিটাল বিটে
একটি True Random Number Generator (TRNG) — যাকে Hardware Random Number Generator (HRNG) ও বলা হয় — কোনও সূত্র অনুসরণ করে না। এটি অনুমানযোগ্য ভৌত জগৎ এবং ডিজিটাল সিস্টেমের কঠোর লজিকের মধ্যে সেতু তৈরি করে — একটি বাহ্যিক এন্ট্রপি উৎস ধরে তার অ্যানালগ সংকেতকে বাইনারি স্ট্রিমে রূপান্তর করে।
John von Neumann ১৯৫১ সালে সতর্ক করেছিলেন: “Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin.”
তিনটি সাধারণ এন্ট্রপি উৎস
| উৎস | যা পরিমাপ করে | ডিভাইসের উদাহরণ |
|---|---|---|
| Thermal noise | সার্কিটে ইলেকট্রন চলাচল থেকে ভোল্টেজের ওঠানামা | স্মার্টফোন Secure Enclave (Apple A-series, Google Tensor) |
| Atmospheric noise | বজ্রপাতের মতো প্রাকৃতিক ঘটনা থেকে রেডিও স্ট্যাটিক | বিশেষায়িত RNG সার্ভার |
| Quantum phenomena | তেজস্ক্রিয় ক্ষয়, ভ্যাকুয়াম ফ্লাকচুয়েশন | ANU Quantum RNG, এন্টারপ্রাইজ সার্ভার |

পাইপলাইনটি সহজ: Physical Source → Sensor/Digitizer → Binary Output। একপ্রান্তে কাঁচা এন্ট্রপি ঢোকে; অন্য প্রান্তে পরিষ্কার র্যান্ডম বিট বেরিয়ে আসে।
TRNG বনাম PRNG: নির্ধারণমূলকতার বিভাজন
র্যান্ডম সংখ্যা তৈরিতে মূল পার্থক্য হলো শারীরিক এন্ট্রপি এবং অ্যালগরিদমিক লজিকের মধ্যে।
| বৈশিষ্ট্য | TRNG (হার্ডওয়্যার) | PRNG (অ্যালগরিদমিক) | CSPRNG (হাইব্রিড) |
|---|---|---|---|
| উৎস | শারীরিক এন্ট্রপি | গাণিতিক সূত্র | হার্ডওয়্যার সীড + অ্যালগরিদম |
| অনুমানযোগ্য? | না | হ্যাঁ — সীড জানা থাকলে | অত্যন্ত কঠিন |
| গতি | ধীর (blocking) | খুব দ্রুত | দ্রুত |
| পুনরুৎপাদনযোগ্য? | না | হ্যাঁ (একই সীড = একই আউটপুট) | না |
| ব্যবহার | এনক্রিপশন কী, সিকিউরিটি টোকেন | সিমুলেশন, গেম | প্রোডাকশন সিকিউরিটি সিস্টেম |
যখন PRNG ব্যর্থ হয়: Hot Lotto কেলেঙ্কারি
একটি PRNG একটি সীড ভ্যালুকে গাণিতিক সূত্রের শুরুর পয়েন্ট হিসেবে ব্যবহার করে। আউটপুট র্যান্ডম দেখায় কিন্তু সম্পূর্ণভাবে নির্ধারণমূলক। কেউ সীড ও সূত্র জানলে প্রতিটি সংখ্যা অনুমান করতে পারবে।
এটি কেবল তত্ত্ব নয়। Hot Lotto Fraud Scandal-এ একজন ইনসাইডার ম্যালওয়্যার ইনস্টল করেছিল যা রক্ষণাবেক্ষণের সময় PRNG-কে একটি অনুমানযোগ্য সীড ব্যবহারে বাধ্য করে — $16.5 মিলিয়ন জ্যাকপট নির্ধারিত করে দেয়।

যখন PRNG সঠিক পছন্দ
যেসব কাজে গতি ও পুনরুৎপাদনযোগ্যতা গুরুত্বপূর্ণ, সেখানে PRNG আসলে আরও ভালো। Monte Carlo simulations-এ বিজ্ঞানীদের ফলাফল যাচাই করতে একই ক্রম বারবার চালানো দরকার। যেহেতু একই সীড পুনরায় ব্যবহার করা যায়, সিমুলেশনটি সাঙ্গত থাকে — যা একটি blocking TRNG পারে না।
হাইব্রিড সমাধান: CSPRNG
বেশিরভাগ আধুনিক সিস্টেম একটি Cryptographically Secure Pseudorandom Number Generator (CSPRNG) ব্যবহার করে — একটি হাইব্রিড যা সামান্য পরিমাণ সত্যিকারের হার্ডওয়্যার এন্ট্রপি টেনে নিয়ে একটি দ্রুত অ্যালগরিদমকে সীড দেয়। এতে TRNG-এর অনুমানযোগ্যতা এবং PRNG-এর গতি — দুটোই মিলে যায়।
ইন্ডাস্ট্রি স্ট্যান্ডার্ড হলো NIST SP 800-90A, যা সরকারি ও শিল্প ব্যবহারের জন্য এই জেনারেটরগুলি কীভাবে তৈরি করতে হবে তা নির্ধারণ করে।
ডেভেলপার গাইড: কোন লাইব্রেরি ব্যবহার করবেন
| ভাষা | অনিরাপদ (PRNG) | নিরাপদ (CSPRNG) |
|---|---|---|
| Python | random (Mersenne Twister) |
secrets (/dev/urandom থেকে পড়ে) |
| JavaScript | Math.random() |
crypto.getRandomValues() |
| Go | math/rand |
crypto/rand |
| Java | java.util.Random |
java.security.SecureRandom |
নিয়মটি হলো: সিকিউরিটি-সম্পর্কিত যেকোনও কিছুর জন্য secrets / crypto / SecureRandom ব্যবহার করুন। শুধুমাত্র গেম ও সিমুলেশনের জন্য random / Math.random() ব্যবহার করুন।
২০২৬ সালের কনজ্যুমার হার্ডওয়্যারে TRNG
২০২৬ সালের মধ্যে হার্ডওয়্যার এন্ট্রপি এন্টারপ্রাইজ সার্ভার থেকে প্রতিদিনের ডিভাইসে চলে এসেছে। আধুনিক স্মার্টফোন চিপগুলি তাদের Secure Enclave-এর ভেতরে ডেডিকেটেড TRNG রাখে, ফেসআইডি (FaceID), ডিজিটাল ওয়ালেট এবং সুরক্ষিত মেসেজিংয়ের জন্য এনক্রিপশন কী তৈরি করতে সরাসরি প্রসেসর থেকে তাপীয় নয়েজ সংগ্রহ করে।
এন্টারপ্রাইজ সিকিউরিটির ক্ষেত্রে সীমানা হলো Quantum Random Number Generation। Australian National University-এর মতো সিস্টেমগুলি কোয়ান্টাম ভ্যাকুয়াম ফ্লাকচুয়েশন থেকে সংখ্যা তৈরি করে — এমন এক স্তরের র্যান্ডমনেস যা ভবিষ্যতের কোয়ান্টাম কম্পিউটারের পক্ষেও সম্ভবত ভাঙা যাবে না।
Whitening: কাঁচা নয়েজ থেকে পরিষ্কার ডেটা
কাঁচা এন্ট্রপি খুব কমই অভিন্ন হয়। তাপমাত্রার পার্থক্যের কারণে একটি তাপীয় সেন্সর হয়তো 0-এর চেয়ে সামান্য বেশি 1 তৈরি করবে। এই বায়াস ঠিক করতে ডেটা whitening প্রক্রিয়ার মধ্য দিয়ে যায় — সাধারণত একটি XOR অপারেশন বা ক্রিপ্টোগ্রাফিক হ্যাশ — যা প্যাটার্ন মসৃণ করে সমান বণ্টন নিশ্চিত করে।
এই পোস্ট-প্রসেসিং ধাপটি যেকোনও সার্টিফাইড সিস্টেমে ব্যবহৃত এন্ট্রপি উৎসের জন্য NIST SP 800-90B দ্বারা বাধ্যতামূলক।
বিশৃঙ্খলা সংগ্রহের সংক্ষিপ্ত ইতিহাস
- ১৯২৭: L.H.C. Tippett সেনসাস রেকর্ড থেকে ম্যানুয়ালি নেওয়া 41,600 অঙ্কের একটি টেবিল প্রকাশ করেছিলেন।
- ১৯৫৫: RAND Corporation একটি ইলেকট্রনিক পালস মেশিন ব্যবহার করে A Million Random Digits প্রকাশ করেছিল।
- ২০১৩: Dual_EC_DRBG কেলেঙ্কারিতে প্রকাশ পায় যে NSA একটি NIST-সার্টিফাইড জেনারেটরে ব্যাকডোর রেখেছিল, যার মাধ্যমে তারা SSL সংযোগ ভাঙতে পারত। এই ঘটনা ইন্ডাস্ট্রিকে মাল্টি-সোর্স এন্ট্রপি মিক্সিংয়ের দিকে ঠেলে দেয় — কোনও একক ব্যর্থতার পয়েন্ট নয়।
উপসংহার
সত্যিকারের র্যান্ডম সংখ্যা হলো ডিজিটাল আস্থার ভিত্তি। অনুমানযোগ্য কোড ও বিশৃঙ্খল বাস্তবতার মধ্যে সেতু তৈরি করতে এদের শারীরিক হার্ডওয়্যার প্রয়োজন। সেটা আপনার ফোনের তাপীয় নয়েজ হোক বা সার্ভার রুমের কোয়ান্টাম ফ্লাকচুয়েশন — সিউডো-র্যান্ডমনেস থেকে হার্ডওয়্যার-ভেরিফায়েড এন্ট্রপিতে এই পরিবর্তন ২০২৬ সালে নিরাপত্তার জন্য অপরিহার্য।
ডেভেলপারদের জন্য: সিকিউরিটির ক্ষেত্রে কখনও random বা Math.random() নয়, secrets (Python) বা crypto.getRandomValues() (JavaScript) ব্যবহার করুন। প্রতিষ্ঠানের জন্য: হার্ডওয়্যার TRNG এখন আর ঐচ্ছিক নয় — এনক্রিপশনের জন্য এগুলি একটি বেসলাইন প্রয়োজনীয়তা।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
আমার কম্পিউটারের অভ্যন্তরীণ ঘড়ি কি সত্যিকারের র্যান্ডমনেসের উৎস?
না। ঘড়ি অনুমানযোগ্য এবং প্রায়ই PRNG সীড হিসেবে ব্যবহৃত হয় ঠিক কারণ এটি পরিবর্তিত হয়। কিন্তু আক্রমণকারী যদি আনুমানিকভাবে জেনে যায় একটি সংখ্যা কখন তৈরি হয়েছিল, তবে সে সম্ভাবনা সরু করতে পারে। সত্যিকারের র্যান্ডমনেসের জন্য দরকার অ-নির্ধারণমূলক ঘটনার সময় মাপা — কীস্ট্রোক ব্যবধান, তাপীয় নয়েজ — এরপর পরিসংখ্যানগত whitening।
মানুষ কি সত্যিকারের র্যান্ডম ক্রম তৈরি করতে পারে?
র্যান্ডমনেসে মানুষ দুর্বল। আমরা গুচ্ছ (যেমন “1, 1, 1”) এড়িয়ে চলি, যদিও র্যান্ডম সেটে সেগুলি স্বাভাবিকভাবেই ঘটে, এবং আমরা অপশনগুলির মধ্যে অতিরিক্ত বারবার বদলাই। পরিসংখ্যানগত টেস্টগুলি এই প্যাটার্ন সহজেই ধরে ফেলে, তাই মানুষের ইনপুট সীডিংয়ের জন্য গ্রহণযোগ্য কিন্তু সিকিউরিটি-সংক্রান্ত কাজের জন্য অপর্যাপ্ত।
কোন পরিসংখ্যানগত টেস্টগুলি সত্যিকারের র্যান্ডমনেস যাচাই করে?
NIST Statistical Test Suite (STS) হলো স্বর্ণমান। অন্যান্য ফ্রেমওয়ার্কের মধ্যে Dieharder টেস্ট এবং AIS 31 স্ট্যান্ডার্ড অন্তর্ভুক্ত। এই টেস্টগুলি পুনরাবৃত্তিমূলক প্যাটার্ন, অভিন্ন বিটের দীর্ঘ রান এবং অন্যান্য অস্বাভাবিকতা খুঁজে বের করে যা বায়াস বা অনুমানযোগ্যতা নির্দেশ করে।
মন্তব্য করুন