العشوائية الحقيقية مقابل شبه العشوائية
ميّز بين مصادر إنتروبيا العتاد وPRNG البرمجية
العشوائية الحقيقية مقابل شبه العشوائية درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
أهمية العشوائية
يعتمد الأمان التشفيري بصورة أساسية على عدم إمكانية التنبؤ. فإذا تمكن مهاجم من التنبؤ بمفتاحك أو IV أو nonce، ولو جزئياً، فقد ينهار نظام التشفير بأكمله. وقد تسببت العشوائية الضعيفة في اختراقات كارثية واقعية.
مولدات الأعداد العشوائية الحقيقية (TRNGs)
تستخلص TRNGs الإنتروبيا الفيزيائية من مصادر مثل الضوضاء الحرارية في المقاومات، وضوضاء الطلقات في الثنائيات ذات الانحياز العكسي، والتحلل الإشعاعي، وحركات الفأرة، وتوقيتات ضغطات المفاتيح، وزمن تأخر تحريك رؤوس الأقراص. وهذه ظواهر فيزيائية لا يمكن التنبؤ بها حقاً.
بركة الإنتروبيا
يحافظ نظام التشغيل على بركة للإنتروبيا، وهي مجموعة من عينات الضوضاء الفيزيائية التي تُطبَّق عليها XOR ثم تُجزَّأ معاً. في Linux، يستمد كل من /dev/random و/dev/urandom البيانات من هذه البركة. وتتجدد البركة باستمرار أثناء تشغيل النظام.
مولدات الأعداد شبه العشوائية (PRNGs)
يوسّع PRNG، الذي يسمى أيضاً مولد الأعداد العشوائية الحتمي (DRNG)، بذرة قصيرة إلى تدفق طويل من البايتات شبه العشوائية باستخدام خوارزمية حتمية. وعند إعطائه البذرة نفسها، ينتج المخرجات نفسها. ولا يكون مناسباً للتشفير إلا إذا زُوّد بإنتروبيا حقيقية.
PRNG مقابل CSPRNG
قد يحتوي PRNG على انحياز إحصائي يمكن اكتشافه، أو قد يكون من الممكن التنبؤ به من المخرجات المرصودة. أما مولد الأعداد شبه العشوائية الآمن تشفيرياً (CSPRNG) فيضيف: (1) الأمان الأمامي، بحيث لا يمكن التنبؤ بالمخرجات السابقة من الحالة الحالية، و(2) مقاومة التتبع العكسي، بحيث لا يمكن التنبؤ بالمخرجات المستقبلية من المخرجات السابقة.
اختبار التمييز
يكون PRNG آمناً تشفيرياً إذا لم يتمكن أي خوارزمية ذات زمن متعدد الحدود من تمييز مخرجاته عن تسلسل عشوائي حقيقي باحتمال يتجاوز 1/2 بفارق ذي دلالة. ويُعرف ذلك بمعيار عدم إمكانية التنبؤ بالبت التالي.
مصادر الإنتروبيا على المنصات المختلفة
Linux: /dev/urandom (غير حاجب بعد التهيئة الأولية)، واستدعاء النظام getrandom(). Windows: CryptGenRandom() وBCryptGenRandom(). macOS/iOS: SecRandomCopyBytes(). المتصفح: window.crypto.getRandomValues(). وتغذي جميعها بركة إنتروبيا نظام التشغيل.
الاختبارات الإحصائية
يوفر NIST SP 800-22 خمسة عشر اختباراً إحصائياً للعشوائية، منها: اختبار التكرار، وتكرار الكتل، والتتابعات، واختبار Maurer العام، والتعقيد الخطي، وغيرها. ولا يثبت اجتياز الاختبارات الإحصائية الأمان التشفيري، بل يثبت فقط غياب الانحياز الواضح.
جودة البذرة
يكون CSPRNG الذي زُرع بإنتروبيا ضعيفة، مثل الوقت الحالي بالثواني، قابلاً للتنبؤ. فإذا عرف المهاجم البذرة، أمكنه إعادة بناء المخرجات كاملة. احرص دائماً على التهيئة من إنتروبيا نظام التشغيل: os.urandom(32) في Python، وليس time.time() أو random.random().
مولدات الأرقام العشوائية في الأجهزة
يعيد Intel RDRAND، وهو تعليمة x86، بايتات عشوائية مولّدة من العتاد بواسطة TRNG مدمج في الشريحة. وتوجد عتادات مكافئة لدى AMD وARM. يخلط Linux مخرجات RDRAND في /dev/urandom. وتُستخدم هذه المخرجات كإنتروبيا إضافية لا كمصدر وحيد، بسبب مخاوف الثقة.
مولدات الأرقام العشوائية الكمومية
تستخدم QRNGs ظواهر ميكانيكا الكم، مثل أوقات وصول الفوتونات وتقلبات الفراغ، لإنتاج مخرجات عشوائية يمكن إثبات عشوائيتها. وتُستخدم QRNGs التجارية، مثل ID Quantique وQuantis، في التطبيقات عالية الأمان. لكن تكلفتها مرتفعة جداً للاستخدام العام.
اختبار سريع
ما الخاصية التي تميز CSPRNG عن PRNG العادي؟
مراجعة
تستخلص TRNGs الإنتروبيا الفيزيائية، بينما توسّع PRNGs البذرة بطريقة حتمية، وتكون CSPRNGs غير قابلة للتمييز عن العشوائية الحقيقية. وتجمع برك إنتروبيا نظام التشغيل بين المصدرين. التالي: تصاميم CSPRNG المحددة المستخدمة عملياً.
الأسئلة الشائعة
هل درس «العشوائية الحقيقية مقابل شبه العشوائية» مجاني؟
نعم — نص درس «العشوائية الحقيقية مقابل شبه العشوائية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ماذا ستتعلم في «العشوائية الحقيقية مقابل شبه العشوائية»؟
ميّز بين مصادر إنتروبيا العتاد وPRNG البرمجية تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟
لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «العشوائية الحقيقية مقابل شبه العشوائية»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟
نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- العشوائية الحقيقية مقابل شبه العشوائية
- مولّدات PRNG الآمنة تشفيريًا
- استنزاف الإنتروبيا وأخطاء المفاتيح الضعيفة
- إنشاء المفاتيح وNonces وIVs بأمان