حقیقی بے ترتیب نمبرز کیسے بنائے جاتے ہیں: TRNG، PRNG اور CSPRNG کی مکمل وضاحت

A simple 3-step pipeline: Physical Source -> Sensor/Digitizer -> Binary Output.

حقیقی بے ترتیب نمبر جنریشن (True Random Number Generation) طبیعی اینٹروپی کو جمع کرکے کام کرتی ہے — تھرمل نائز، ایٹموسفیرک سٹیٹک، کوانٹم ڈیکے — اور پھر ان غیر متعین analog سگنلز کو ڈیجیٹل بٹس میں تبدیل کرتی ہے۔ الگورتھم پر مبنی جنریٹرز کے برعکس، ہارڈویئر پر مبنی سسٹمز غیر متعین ماحولی متغیرات (environmental variables) کو ناپ کر ایسے تسلسل پیدا کرتے ہیں جو ریاضی کے لحاظ سے غیر قابل پیش گوئی اور پیٹرن سے پاک ہوتے ہیں۔

آئیے دیکھتے ہیں کہ یہ ٹیکنالوجی کیسے کام کرتی ہے، کہاں ناکام ہوتی ہے، اور آپ اپنے استعمال کے لیے صحیح طریقہ کیسے منتخب کریں۔

TRNG کیسے کام کرتا ہے: طبیعی بے ترتیبی سے ڈیجیٹل بٹس تک

ایک ٹرue رینڈم نمبر جنریٹر (TRNG) — جسے ہارڈویئر رینڈم نمبر جنریٹر (HRNG) بھی کہا جاتا ہے — کسی فارمولے پر عمل نہیں کرتا۔ یہ غیر متعین طبیعی دنیا اور ڈیجیٹل سسٹمز کے سخت منطق کے درمیان پل کا کام کرتا ہے، ایک بیرونی اینٹروپی سورس کو کیپچر کرکے اس کے analog سگنل کو بائنری سٹریم میں تبدیل کرتا ہے۔

جیسا John von Neumann نے 1951 میں تنبیہ کی تھی: "جو کوئی بھی بے ترتیب ہندسے پیدا کرنے کے حسابی طریقوں پر غور کرتا ہے، وہ یقیناً گناہ کی حالت میں ہے۔”

تین عام اینٹروپی سورسز

سورس یہ کیا ناپتا ہے ڈیوائس کی مثال
تھرمل نائز سرکٹس میں الیکٹران کی حرکت سے وولٹیج میں اتار چڑھاؤ اسمارٹ فون سیکیور انکلیوز (Apple A-series، Google Tensor)
ایٹموسفیرک نائز بجلی گراننے جیسے قدرتی واقعات سے ریڈیو سٹیٹک مخصوص RNG سرورز
کوانٹم رجحانات ریڈیو ایکٹو ڈیکے، ویکیوم فلوکچویشنز ANU Quantum RNG، انٹرپرائز سرورز

ایک سادہ 3 مرحلے کی پائپ لائن: Physical Source -> Sensor/Digitizer -> Binary Output.

پائپ لائن سادہ ہے: Physical Source → Sensor/Digitizer → Binary Output۔ کچر اینٹروپی ایک سرے سے داخل ہوتی ہے؛ صاف بے ترتیب بٹس دوسرے سرے سے نکلتے ہیں۔

TRNG بمقابلہ PRNG: تعین کی تقسیم

بے ترتیب نمبر جنریشن میں بنیادی تقسیم طبیعی اینٹروپی اور الگورتھمک منطق کے درمیان ہے۔

خصوصیت TRNG (ہارڈویئر) PRNG (الگورتھمک) CSPRNG (ہائبرڈ)
سورس طبیعی اینٹروپی ریاضیاتی فارمولہ ہارڈویئر سیڈ + الگورتھم
قابلِ پیش گوئی؟ نہیں ہاں — اگر سیڈ معلوم ہو بے حد مشکل
رفتار نسبتاً سست (blocking) بہت تیز تیز
دہرا سکتے ہیں؟ نہیں ہاں (ایک سیڈ = ایک آؤٹ پٹ) نہیں
استعمال کیس انکرپشن کلیدز، سیکیورٹی ٹوکنز سمولیشنز، گیمز پروڈکشن سیکیورٹی سسٹمز

جب PRNGs ناکام ہوتے ہیں: Hot Lotto فراڈ

ایک PRNG سیڈ ویلیو کو ریاضیاتی فارمے کے لیے نقطہ آغاز کے طور پر استعمال کرتا ہے۔ آؤٹ پٹ بے ترتیب نظر آتا ہے لیکن مکمل طور پر متعین ہوتا ہے۔ اگر کسی کو سیڈ اور فارمولا معلوم ہو جائے، تو وہ ہر نمبر کی پیش گوئی کر سکتا ہے۔

یہ صرف نظریاتی بات نہیں ہے۔ Hot Lotto فراڈ سکینڈل میں ایک انサイڈر نے ایسا میلویئر انسٹال کیا جس نے دیکھ بھال کے دوران PRNG کو مجبور کیا کہ وہ قابلِ پیش گوئی سیڈ استعمال کرے — اور $16.5 ملین کی جیک پاٹ کو ہیرا پھیری کر کے حاصل کیا۔

PRNG \(Deterministic/Fast\) اور TRNG \(Non-deterministic/Secure\) کے درمیان صاف موازنہ۔

جب PRNGs صحیح انتخاب ہوتے ہیں

PRNGs دراصل ان کاموں کے لیے بہتر ہیں جہاں رفتار اور دہرانے کی صلاحیت اہم ہو۔ Monte Carlo سمولیشنز میں، سائنسدانوں کو نتائج کی تصدیق کے لیے ایک ہی تسلسل کو بار بار چلانا ضروری ہوتا ہے۔ چونکہ آپ ایک ہی سیڈ دوبارہ استعمال کر سکتے ہیں، سمولیشن مستقل رہتی ہے — وہ چیز جو ایک 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() صرف گیمز اور سمولیشنز کے لیے استعمال کریں۔

2026 کے کنزیومر ہارڈویئر میں TRNGs

2026 تک، ہارڈویئر اینٹروپی انٹرپرائز سرورز سے نکل کر روزمرہ کی ڈیوائسز میں آ چکی ہے۔ جدید اسمارٹ فون چپس کے Secure Enclaves کے اندر مخصوص TRNGs شامل ہوتے ہیں، جو پروسیسر سے براہ راست تھرمل نائز اکٹھا کرتے ہیں تاکہ FaceID، ڈیجیٹل والٹس اور محفوظ میسجنگ کے لیے انکرپشن کلیدز پیدا کی جا سکیں۔

انٹرپرائز سیکیورٹی کے لیے، جدید ترین حد Quantum Random Number Generation ہے۔ Australian National University جیسے اداروں کے سسٹمز کوانٹم ویکییم فلوکچویشنز سے نمبرز پیدا کرتے ہیں — ایسی بے ترتیبی کی سطح جسے مستقبل کے کوانٹم کمپیوٹرز بھی ممکنہ طور پر توڑ نہیں سکتے۔

وائٹننگ: کچرے نائز سے صاف ڈیٹا تک

کچرا اینٹروپی شاذ و نادر ہی یکساں ہوتا ہے۔ کسی تھرمل سینسر کے لیے درجہ حرارت کے تغیر کی وجہ سے 0 سے کچھ زیادہ 1 پیدا کرنا معمول کی بات ہے۔ اس تعصب کو دور کرنے کے لیے، ڈیٹا کو whitening سے گزارا جاتا ہے — عموماً ایک XOR آپریشن یا کریپٹوگرافک ہیش — تاکہ پیٹرن ہموار ہو جائیں اور یکساں تقسیم یقینی بنائی جا سکے۔

یہ پوسٹ پروسیسنگ مرحلہ NIST SP 800-90B کے تحت کسی بھی سرٹیفائیڈ سسٹم میں استعمال ہونے والے اینٹروپی سورس کے لیے لازمی ہے۔

بے ترتیبی کی کٹائی کی مختصر تاریخ

  • 1927: L.H.C. Tippett نے مردم شماری کے ریکارڈز سے manually نکالے گئے 41,600 ہندسوں کی ایک جدول شائع کی۔
  • 1955: RAND Corporation نے ایک الیکٹرانک پلس مشین کے ذریعے A Million Random Digits شائع کیں۔
  • 2013: Dual_EC_DRBG سکینڈل میں انکشاف ہوا کہ NSA نے ایک NIST سرٹیفائیڈ جنریٹر میں بیک ڈور رکھا تھا، جس کے ذریعے وہ SSL کنکشنز توڑ سکتے تھے۔ اس واقعے نے انڈسٹری کو ملٹی سورس اینٹروپی مکسنگ کی طرف دھکیل دیا — کوئی واحد نقطہ فیل نہ ہو۔

نتیجہ

حقیقی بے ترتیب نمبرز ڈیجیٹل اعتماد کی بنیاد ہیں۔ انہیں متعین کوڈ اور بے ترتیب حقیقت کے درمیان پل بنانے کے لیے طبیعی ہارڈویئر کی ضرورت ہوتی ہے۔ خواہ یہ آپ کے فون میں تھرمل نائز ہو یا کسی سرور روم میں کوانٹم فلوکچویشنز، سیوڈو رینڈمنس سے ہارڈویئر کی تصدیق شدہ اینٹروپی کی طرف منتقلی 2026 میں سیکیورٹی کے لیے ناگزیر ہے۔

ڈویلپرز کے لیے: سیکیورٹی کے لیے کبھی random یا Math.random() نہ استعمال کریں، بلکہ secrets (Python) یا crypto.getRandomValues() (JavaScript) استعمال کریں۔ تنظیموں کے لیے: ہارڈویئر TRNGs اب اختیاری نہیں رہے — یہ انکرپشن کے لیے ایک بنیادی ضرورت ہیں۔

اکثر پوچھے جانے والے سوالات

کیا میرے کمپیوٹر کی اندرونی گھڑی حقیقی بے ترتیبی کا سورس ہے؟

نہیں۔ گھڑی متعین ہوتی ہے اور اسی وجہ سے اکثر PRNG سیڈ کے طور پر استعمال ہوتی ہے کیونکہ یہ بدلتی رہتی ہے۔ لیکن اگر کسی حملہ آور کو تاڑ جائے کہ نمبر کب پیدا کیا گیا، تو وہ امکانات کو محدود کر سکتا ہے۔ حقیقی بے ترتیبی کے لیے غیر متعین واقعات — کی اسٹروک کے وقفے، تھرمل نائز — کو ٹائیم کرنا ضروری ہے، اس کے بعد شماریاتی وائٹننگ۔

کیا کوئی انسان واقعی بے ترتیب تسلسل پیدا کر سکتا ہے؟

انسان بے ترتیبی میں ناقص ہیں۔ ہم خوشوں (جیسے "1, 1, 1”) سے گریز کرتے ہیں حالانکہ وہ بے ترتیب سیٹوں میں قدرتی طور پر رونما ہوتے ہیں، اور ہم آپشنز کے درمیان بہت زیادہ بار بدلتے ہیں۔ شماریاتی ٹیسٹس ان پیٹرنز کو آسانی سے پکڑ لیتے ہیں، اسی لیے انسانی ان پٹ سیڈنگ کے لیے قابل قبول ہے لیکن سیکیورٹی کے لحاظ سے اہم کاموں کے لیے ناکافی ہے۔

کون سے شماریاتی ٹیسٹ حقیقی بے ترتیبی کی تصدیق کرتے ہیں؟

NIST Statistical Test Suite (STS) معیاری حیثیت رکھتا ہے۔ دیگر فریم ورکس میں Dieharder ٹیسٹس اور AIS 31 معیار شامل ہیں۔ یہ ٹیسٹس دہرائے جانے والے پیٹرنز، ایک جیسے بٹس کے لمبے سلسلے، اور دیگر اسامانیتاؤں کی تلاش کرتے ہیں جو تعصب یا قابلِ پیش گوئی ہونے کی نشاندہی کرتے ہیں۔

Comments

جواب دیں

آپ کا ای میل ایڈریس شائع نہیں کیا جائے گا۔ ضروری خانوں کو * سے نشان زد کیا گیا ہے