العشوائي الحقيقي مقابل شبه العشوائي: كيف تعمل مولدات الأرقام

عند النقر على زر "توليد" في موقع ويب، تتوقع أن تكون النتيجة عشوائية تمامًا. لكن في عالم علوم الحاسوب، العشوائية الحقيقية صعبة التحقيق بشكل مدهش. معظم العشوائية الرقمية هي في الواقع "شبه عشوائية". في هذا الدليل، سنشرح الفرق بين مولدات الأرقام العشوائية الحقيقية (TRNGs) ومولدات الأرقام شبه العشوائية (PRNGs)، ولماذا هذا التمييز بالغ الأهمية للأمن السيبراني.

جرّب بنفسك

هل تريد رؤية خوارزمية شبه عشوائية في العمل؟ استخدم مولد الأرقام العشوائية المجاني لدينا لتوليد تسلسلات مخصصة فورًا.

جدول المحتويات

ما هي العشوائية؟

في الرياضيات، يُعتبر تسلسل الأرقام عشوائيًا إذا كان لا يحتوي على أنماط أو ترتيب يمكن التعرف عليه. وتعني العشوائية الحقيقية أن معرفة الأرقام السابقة في التسلسل لا تمنحك أي ميزة على الإطلاق في التنبؤ بالرقم التالي.

بينما البشر سيئون بشكل معروف في توليد أرقام عشوائية (نتجنب تكرار الأرقام ونفضل أنماطًا معينة)، فإن الحواسيب آلات حتمية بطبيعتها. تنفذ التعليمات تمامًا كما برمجت. فكيف تولّد آلة لا تفهم سوى "1" و"0" العشوائية؟

مولدات الأرقام شبه العشوائية (PRNGs)

تستخدم الغالبية العظمى من أدوات الويب وألعاب الفيديو وتطبيقات البرمجيات مولدات PRNG. مولد PRNG هو خوارزمية رياضية تأخذ قيمة أولية (تسمى "البذرة") وتمررها عبر معادلات معقدة لإنتاج تسلسل أرقام يبدو عشوائيًا.

الرقم التالي = الخوارزمية(الرقم السابق، البذرة)

لأن مولدات PRNG تعتمد على الرياضيات، فهي حتمية. إذا أعطيت مولد PRNG نفس البذرة تمامًا اليوم وغدًا وبعد عشر سنوات، سينتج نفس تسلسل الأرقام تمامًا في كل مرة.

هذا فعال للغاية. مولدات PRNG سريعة بشكل لا يصدق ويمكنها توليد ملايين الأرقام في الثانية. لأمور مثل خلط قائمة تشغيل Spotify أو رمي نرد رقمي في لعبة أو تشغيل محاكاة إحصائية، مولد PRNG مناسب تمامًا. الدالة القياسية Math.random() في JavaScript هي مولد PRNG. يمكنك اختبار ذلك باستخدام مولد الأرقام العشوائية من 1 إلى 10 لدينا.

تولّد كلمات مرور؟

الأمان يتطلب عدم توقع حقيقي. لا تستخدم مطلقًا مولد PRNG قياسيًا لكلمات المرور. استخدم مولد كلمات المرور العشوائية الآمن لدينا بدلًا من ذلك.

مولدات الأرقام العشوائية الحقيقية (TRNGs)

لا تعتمد مولدات الأرقام العشوائية الحقيقية على الرياضيات. بدلًا من ذلك، تستخرج العشوائية من ظواهر فيزيائية غير قابلة للتنبؤ في العالم الحقيقي.

تقيس مولدات TRNG الحديثة أشياء مثل الضوضاء الحرارية في الدوائر الإلكترونية، أو التأثير الكهروضوئي، أو حتى توقيت نقرات المستخدم. أشهر خدمة TRNG، وهي Random.org، تستخدم الضوضاء الجوية (التشويش الراديوي) لتوليد أرقامها.

لأن هذه الأحداث الفيزيائية تحكمها ميكانيكا الكم، فهي غير قابلة للتنبؤ بشكل أساسي. لا يستخدم TRNG بذرة، ولا يمكن إعادة إنتاج تسلسل الأرقام مهما كان الأمر.

لماذا يهم الفرق للأمان

إذا كنت تختار فائز سحبة فقط أو تقسم اللاعبين إلى فرق باستخدام مولد الفرق العشوائي لدينا، فمولد PRNG آمن تمامًا. فالعشوائية "شبه العشوائية" لا تهم.

ومع ذلك، في التشفير، قابلية التنبؤ تعني القابلية للاختراق. فإذا استطاع مخترق معرفة البذرة الرياضية التي يستخدمها مولد PRNG لديك، يمكنه إعادة إنتاج كل رقم "عشوائي" يولده حاسوبك — بما في ذلك مفاتيح التشفير الخاصة بكلمات المرور.

لهذا السبب طورت المتصفحات مولدات أرقام شبه عشوائية آمنة تشفيريًا (CSPRNGs)، مثل window.crypto.getRandomValues(). لا تزال هذه الخوارزميات تستخدم الرياضيات، لكنها تجمع "بذارتها" من متغيرات نظام شديدة عدم التوقع (مثل حركات الماوس أو حرارة المعالج)، وهي مضمونة رياضيًا لاجتياز اختبارات العشوائية الإحصائية الصارمة. هذه هي التقنية الخلفية التي تشغل الأدوات الآمنة مثل مولد كلمات المرور العشوائية لدينا.

إذا احتجت إلى توليد أرقام فريدة مضمونة بدون أي تكرارات لفعالية، فمولدات PRNG مثالية. يمكنك تجربة ذلك مع أداة مولد الأرقام العشوائية بدون تكرار لدينا.

الأسئلة الشائعة (FAQ)

هل دالة Math.random() في JavaScript عشوائية حقًا؟

لا، Math.random() هي مولد أرقام شبه عشوائية (PRNG). تستخدم خوارزمية رياضية وقيمة بذرة أولية لإنتاج تسلسل أرقام يبدو عشوائيًا، لكنه في الواقع حتمي وقابل للتنبؤ تمامًا.

ما الفرق بين PRNG و TRNG؟

تستخدم مولدات PRNG (شبه العشوائية) الرياضيات لإنشاء أرقام تبدو عشوائية لكنها حتمية. أما مولدات TRNG (الحقيقية) فتستخرج العشوائية من ظواهر فيزيائية غير قابلة للتنبؤ، مثل الضوضاء الجوية أو الاضمحلال الإشعاعي، مما يجعلها غير قابلة للتنبؤ حقًا.

هل يمكنني استخدام مولد أرقام شبه عشوائي لكلمات المرور؟

لا، لا يجب أبدًا استخدام مولد PRNG قياسي لكلمات المرور أو المفاتيح التشفيرية. لأن مولدات PRNG حتمية، يمكن لمخترق يخمن البذرة أن يعيد إنتاج كلمة مرورك بالضبط. استخدم دائمًا مولد أرقام شبه عشوائية آمن تشفيريًا (CSPRNG) أو مولد TRNG.