كيف تنشئ أجهزة الكمبيوتر أرقامًا عشوائية

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

كيف تنشئ أجهزة الكمبيوتر أرقامًا عشوائية
كيف تنشئ أجهزة الكمبيوتر أرقامًا عشوائية
Anonim

أرقام عشوائية حقيقية

قد تتساءل كيف يمكن للكمبيوتر في الواقع إنشاء رقم عشوائي. من أين تأتي هذه "العشوائية". إذا كان مجرد جزء من رمز الكمبيوتر ، أليس من الممكن توقع الأرقام التي يولدها الكمبيوتر؟

نقوم عمومًا بتجميع الأرقام العشوائية التي تنشئها أجهزة الكمبيوتر في نوعين ، اعتمادًا على كيفية إنشائها: الأرقام العشوائية "الحقيقية" والأرقام العشوائية الزائفة.

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

للحصول على مثال أكثر يومًا بعد يوم ، يمكن للكمبيوتر الاعتماد على الضوضاء الجوية أو ببساطة استخدام الوقت المحدد الذي تضغط فيه على المفاتيح على لوحة المفاتيح كمصدر لبيانات غير متوقعة ، أو إنتروبيا. على سبيل المثال ، قد يلاحظ جهاز الكمبيوتر الخاص بك أنك ضغطت على مفتاح في 0.23423523 ثانية بالضبط بعد الساعة 2 مساءً. احصل على عدد كافٍ من الأوقات المحددة المرتبطة بضغوط المفاتيح هذه وسيكون لديك مصدر إنتروبيا يمكنك استخدامه لإنشاء رقم عشوائي "حقيقي". أنت لست آلة يمكن التنبؤ بها ، لذلك لا يمكن للمهاجم تخمين اللحظة الدقيقة التي تضغط فيها على هذه المفاتيح. جهاز / dev / random على نظام Linux ، الذي يولد أرقامًا عشوائية ، "يحجب" ولا يعرض نتيجة حتى يجمع ما يكفي من الانتروبيا لإرجاع رقم عشوائي حقيقي.

صورة
صورة

أرقام عشوائية وهمية

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

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

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

صورة
صورة

مولد الأرقام العشوائي للأجهزة التابع لوكالة الأمن القومي وإنتل

لتسهيل الأمور على المطورين والمساعدة في إنشاء أرقام عشوائية آمنة ، تشتمل رقائق Intel على مولد أرقام عشوائي قائم على الأجهزة يُعرف باسم RdRand. تستخدم هذه الشريحة مصدر إنتروبيا على المعالج وتوفر أرقامًا عشوائية للبرنامج عندما يطلبها البرنامج.

المشكلة هنا هي أن مولد الأرقام العشوائية هو في الأساس صندوق أسود ولا نعرف ما الذي يجري بداخله. إذا احتوت RdRand على باب خلفي لـ NSA ، فستكون الحكومة قادرة على كسر مفاتيح التشفير التي تم إنشاؤها باستخدام البيانات المقدمة فقط من مولد الأرقام العشوائية.

هذا مصدر قلق خطير. في ديسمبر 2013 ، أزال مطورو FreeBSD الدعم لاستخدام RdRand مباشرة كمصدر للعشوائية ، قائلين إنهم لا يستطيعون الوثوق به.[المصدر] سيتم إدخال إخراج جهاز RdRand في خوارزمية أخرى تضيف إنتروبيا إضافية ، مما يضمن عدم أهمية أي أبواب خلفية في مولد الأرقام العشوائية. لقد عمل Linux بالفعل بهذه الطريقة ، مما أدى إلى زيادة عشوائية البيانات العشوائية القادمة من RdRand بحيث لا يمكن التنبؤ بها حتى لو كان هناك باب خلفي. [المصدر] في AMA مؤخرًا ("اسألني أي شيء") على Reddit ، لم يُجب بريان كرزانيتش الرئيس التنفيذي لشركة Intel على أسئلة حول هذه المخاوف. [المصدر]

بالطبع ، من المحتمل ألا تكون هذه مشكلة مع رقائق Intel فقط. دعا مطورو FreeBSD رقائق Via بالاسم أيضًا. يوضح هذا الجدل سبب أهمية إنشاء أرقام عشوائية عشوائية حقًا ولا يمكن التنبؤ بها.

صورة
صورة

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

موضوع شعبي