تأمّل رمي قطعة نقدية، لا يهم أي الوجهين للأعلى، المهم أنه لا يمكن التنبؤ بالنتيجة. أقصى ما يمكن فعله تخمينها، سيكون تخمينًا سهلًا جدًا لوجود خيارين فقط. لكن ماذا لو كان يجب تخمين سلسلة طويلة من الأرقام أو الرموز؟ سيكون أقرب للمستحيل تخمين النتيجة الصحيحة، أليس كذلك؟ ومن هنا تأتي أهمية توليد الأرقام العشوائية.
مولدات الأرقام العشوائية (RNG) هي أجهزة أو خوارزميات برمجية تنتج تسلسلًا مختلفًا من الأرقام أو الرموز في كل مرة من تفعيلها، وتشبه إلى حد كبير رمي عملة معدنية لكن في العالم الرقمي، بفرض إمكانية امتلاك هذه العملة الرقمية التخيلية عدة وجوه بهدف الوصول إلى مستوى عالٍ من العشوائية.
تُستخدم مولدات الأرقام العشوائية الحديثة عمومًا في التشفير وعمليات المحاكاة الحاسوبية والمقامرة عبر الإنترنت وألعاب الفيديو والكثير من التطبيقات الأخرى.
تاريخ توليد الأرقام العشوائية
استخدم البشر العشوائية منذ العصور القديمة، إذ يعود تاريخ النرد إلى 2400 عام قبل الميلاد تقريبًا في المواقع الأثرية في مصر، بينما يعود تاريخ النرد ذو الشكل الهرمي (أربعة جوانب) إلى فترة حكم السومريين في الألفية الثالثة. وقد مرّ الكثير من الوقت منذها، وفي العالم الحديث، أصبح تدوير النرد وتقليب العملات غير كافيين للتطبيقات الحديثة.
في عام 1947، صممت مؤسسة RAND جهازًا إلكترونيًا يُولّد أرقامًا باستخدام مولّد نبضات عشوائي، ونشروا النتائج في كتاب من المفترض أن يكون مفيدًا للعلماء والباحثين في موضوع العينات العشوائية.
أضافت شركة الهندسة الكهربائية البريطانية فيرانتي مولّد أرقام عشوائية إلى منتجها (فيرانتي مارك 1)، وهو أول حاسوب رقمي متعدد الأغراض متوفر تجاريًا في العالم، وأصبح متاحًا في فبراير 1951 (قبل شهر واحد من إطلاق الحاسب UNIVAC I). واستخدم مولد الأرقام العشوائية المدمج ضوضاء كهربائية لإنتاج ما يصل إلى 20 رقم عشوائي في المرة الواحدة.
في بحث نُشر عام 1946، كشف عالم الرياضيات والحاسوب المجري الأمريكي جون فون نيومان عن طريقة المربع المتوسط للحصول على أرقام عشوائية بناءً على قيمة أولية عشوائية. بتربيع القيمة الأولية وتقسيم أرقامها الوسطى عدة مرات، وصل العلماء إلى تسلسل شبه عشوائي من الأرقام، ويُعدّ هذا أول خوارزمية للأرقام العشوائية. لكن مع ذلك لا تُعد طريقة فون نيومان مولدًا حقيقيًا للأرقام العشوائية لأن التسلسل لا بد أن ينتهي بدورة متكررة قصيرة من الأرقام، بغض النظر عن القيمة الأولية.
عام 1957، اخترع تومي فلاورز وهاري فينسوم، العاملان سابقًا في شركة بلتشلي بارك لفك الشيفرات، مؤشر الأرقام العشوائية الإلكتروني (ERNIE) بهدف استخدامه في يانصيب سندات الإدخار الممتازة في المملكة المتحدة. ينتج هذا الجهاز 50 رقمًا عشوائيًا في الثانية، تُستخدم لتحديد الأرقام الفائزة في هذا اليانصيب، وما زال هذا النظام مستخدمًا حتى يومنا هذا للغرض ذاته، لكن أُدخلت عليه تحديثات عديدة.
لتجنب الدورات الموجودة في نظام فون نيومان، طوّر عالم الرياضيات D.H. عام 1949 مولدًا متطابقًا خطيًا (LCG)، استُخدم كقيمة أولية لفترة طويلة جدًا للدورة والوقت، وسُمي هذا النظام المولّد العشوائي المركزي واستُخدم في لغة البرمجة جافا سكريبت 1.0.
بعدها، طُوّرت مجموعة كبيرة ومتنوعة من مولدات الأرقام العشوائية الحقيقية، حتى أن أحدها اعتمد على حركات مصابيح لافا.
كيفية توليد الأرقام العشوائية
بالوسع حاليًا استخدام كل من الأجهزة الفيزيائية والخوارزميات البرمجية من أجل توليد الأرقام عشوائية. ولفهم كيفية عمل مولدات الأرقام العشوائية سنشرح طريقتين مختلفتين لتوليدها.
يُطلق مصطلح مولدات الأرقام العشوائية الحقيقية على المولدات الفيزيائية للأرقام العشوائية أيضًا، إذ تعتمد على التغيرات الفيزيائية ذات الخصائص العشوائية لتوليد عدد معين من البتات العشوائية في الثانية.
مثلًا، قد تقيس مولدات الأرقام العشوائية الفيزيائية ضجيج الغلاف الجوي من خلال جهاز استقبال لاسلكي، أو تقيس الضوضاء الحرارية الناتجة من المقاومات، أو ضوضاء الانهيار الجليدي أو ضوضاء انهيار زينر الناتج عن الثنائيات وما شابهها، أو حتى باكتشاف العشوائية الفيزيائية الميكانيكية الكمية في عملية التحلل الإشعاعي باستخدام عداد غيغر، وكذلك الاختلافات في طاقة الفراغ من خلال التحقق من التجانس، وضوضاء بواسون في الدوائر الإلكترونية، والفوتونات في المرايا شبه الشفافة، والإشارات المُضخمة من الترانزستورات المنحازة عكسيًا (عبر نفق الكم من خلال فجوات الطاقة) والكثير من المصادر الأخرى.
تعد كل هذه الأحداث الطبيعية فوضوية، وصُممت مولدات الأرقام العشوائية الفيزيائية للقياس والاستفادة من هذه الأحداث الفوضوية لتوليد الأرقام العشوائية.
في المقابل، تعتمد مولدات الأرقام العشوائية البرمجية على الخوارزميات لتنفيذ عملية التوليد العشوائي. والخوارزمية مجموعة محددة من التعليمات، وتتضمن خوارزمية توليد الأرقام العشوائية سلسلة من العمليات الرياضية التي يجب تطبيقها على قيمة أولية، ما يحدد تسلسل البتات العشوائية النهائية، كما هو الحال مع خوارزمية فون نيومان. لهذا يُعتقد أن مولدات الأرقام العشوائية البرمجية ليست عشوائية فعلًا، بل تحاكي العشوائية فقط، فيطلق عليها مولدات الأرقام شبه العشوائية أو الزائفة (PRNG).
في الواقع، كتب جون فون نيومان: «أي شخص يفكر في الأساليب الحسابية لإنتاج أرقام عشوائية هو بالطبع، ليس على صواب». مولدات الأرقام شبه العشوائية تكون محددة، لأن لديها عددًا محدودًا من الحالات (المحددة بواسطة الخوارزمية والقيمة البدائية)، فقد ينتهي الأمر بتكرار سلسلة من البتات، أو قد تصبح النتيجة المحتملة لعملية التوزيع العشوائي قابلة للتنبؤ مع الوقت. لكن مولدات الأرقام العشوائية البرمجية أسرع بكثير من المولدات الفيزيائية، ومستوى العشوائية التي قد توفرها لا يزال مفيدًا في تطبيقات معينة.
توليد الأرقام العشوائية الزائفة الآمنة للتشفير
يدرس علم التشفير ممارسة تقنيات تشفير البيانات والاتصالات وترميزها للحفاظ على خصوصيتها. ويهدف هذا العلم إلى تمكين وصول المعلومات فقط للأشخاص المصرح لهم بها، لذا يعتمد التشفير غالبًا على توليد الأرقام العشوائية. وذلك مثلًا بإنتاج المفاتيح المستخدمة لتشفير البيانات، أو توليد أرقام عشوائية لا يمكن إعادة استخدامها (nonces) التي قد تفيد في القيم الأولية أو بروتوكولات المصادقة للاتصالات المحمية بالتشفير، إضافةً إلى استخدامات التشفير في الوسائط ذات الاستخدام الواحد، وما إلى ذلك.
يمكن التخمين أن بعض التطبيقات تتطلب توليد أرقام عشوائية آمنة لدرجة لا يمكن التنبؤ بها. ومولدات الأرقام شبه العشوائية ليست آمنة بما فيه الكفاية، ومولدات الأرقام العشوائية الفيزيائية ليست سريعة بما فيه الكفاية، إضافةً إلى أنها مقيدة بكمية الأنتروبيا المتاحة للاستخدام، فهي ليست مناسبة للتشفير عمومًا.
يستخدم المشفرون بسبب هذه العيوب، نهجًا هجينًا يستخدم كلًا من الأنتروبيا الطبيعية والخوارزميات البرمجية، يُسمى هذا النوع توليد الأرقام العشوائية الزائفة الآمنة للتشفير (CSPRNG).
تستخرج CSPRNGs بتّات عشوائية من الأحداث الفيزيائية التي تحدث في الجهاز (مثلًا مولّد الضوضاء الحراري على الرقاقة) وترمّزها باستخدام خوارزمية ترميز (hash function) تتلائم مع التشفير المستخدم. ثم تعمل هذه المولدات مثل مولدات الأرقام العشوائية البرمجية المعروفة وتطبق خوارزمية على تلك البتات الأولية الفوضوية لإنشاء أرقام عشوائية إضافية (لا يمكن التنبؤ بها). مثلًا، تُستخدم مولدات الأرقام شبه العشوائية الآمنة للتشفير المعتمدة على نظام التشغيل لينوكس في بروتوكولات الاتصال الآمن ومخدمات الويب ومخدمات الشبكات الافتراضية الخاصة VPN.
توليد الأرقام العشوائية في الألعاب
العشوائية هي الأساس في الكثير من الألعاب. فألعاب الطاولة أو ألعاب الكازينو مثلًا تستخدم النرد أو البطاقات، والنسخة الرقمية من هذه الألعاب تحاكي رمي النرد أو خلط البطاقات عبر مولدات أرقام عشوائية برمجية.
في ألعاب الفيديو، تُستخدم مولدات الأرقام العشوائية البرمجية للحفاظ على مستوى عالٍ من عدم القدرة على التنبؤ وإضافة عنصر المتعة لإعادة لعب للعبة، ومن الأسهل على المطورين توفير الوقت والجهد باختيار الأحداث العشوائية بدلًا من برمجة موت كل عدو في اللعبة عند قتله على حدة، هكذا سيموت كل عدو بشكل مختلف.
ومن الممكن أيضًا استخدام توليد الأرقام العشوائية في ألعاب الفيديو لتحديد العنصر الذي سيحصل عليه اللاعب من الصندوق، والأحداث العشوائية التي سيواجهها في ألعاب الطبيعة المفتوحة (كتغيرات الطقس)، وزمانها وفيما إذا كان اللاعب سيحقق ضربة حاسمة أثناء المعركة، وغيرها من الاستخدامات.
اقرأ أيضًا:
تمكن رياضيون من إيجاد حل مستقر لمسألة مجموع 42 باستخدام حاسوب فائق
لقد طور علماء الرياضيات مشكلة حسابية لن يتمكن الذكاء الصناعي من حلها
ترجمة: أحمد عضيم
تدقيق: سماح عبد اللطيف
مراجعة: محمد حسان عجك