الوحدة السادسة

مبادئ توليد الأرقام العشوائية والـ Stream Ciphers

أساس أمن التشفير الحديث - العشوائية الحقيقية والزائفة

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

5-6 ساعات دراسة 5 أقسام رئيسية 6 أهداف تعليمية
🎲

الأهداف التعليمية للوحدة

فهم دور العشوائية في بناء الأنظمة الأمنية الحديثة
التمييز بين TRNG و PRNG و CSPRNG
تحليل كيفية توليد المفاتيح باستخدام PRNGs و AES-CTR
فهم آلية عمل تشفير الدفق Stream Cipher
تحليل خوارزمية RC4 وأسباب توقف استخدامها
معرفة مصادر العشوائية الفيزيائية في الأجهزة

🎯 مولدات الأرقام العشوائية

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

العشوائية تشكل العمود الفقري لأمن التشفير الحديث. جميع مفاهيم التشفير تعتمد على وجود أرقام عشوائية قوية:

المفاتيح

توليد مفاتيح التشفير

الأعداد الأولية

لخوارزميات RSA وغيرها

المتجهات IV

في أوضاع التشغيل

Salts و Nonces

للتجزئة والبروتوكولات

تحذير أمني

ضعف العشوائية = ضعف التشفير بالكامل. إذا كان مولد الأرقام ينتج أرقامًا يسهل توقعها → يمكن استنتاج المفاتيح بسهولة.

مقياس الإنتروبيا
123456
منخفضة
P@ssw0rd
متوسطة
مفتاح 256-bit
عالية جدًا

TRNG - True Random Number Generator

المبدأ العلمي

يعتمد على ظواهر فيزيائية حقيقية غير قابلة للتوقع مطلقًا.

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

PRNG - Pseudo Random Number Generator

المبدأ العلمي

ينتج أرقامًا "تشبه" العشوائية باستخدام خوارزميات رياضية.

خوارزميات شائعة
  • Linear Congruential Generator
  • Mersenne Twister
  • Xorshift
  • Middle-square method
التقييم
المزايا
  • سريع جدًا في التوليد
  • يمكن إعادة النتائج بنفس البذرة
  • سهل التنفيذ
العيوب
  • قابل للتوقع عند معرفة الحالة
  • غير مناسب للتشفير بمفرده
  • قد يكون له فترات تكرار
تحذير

PRNG العادي غير مناسب للتشفير دون حماية إضافية

CSPRNG - Cryptographically Secure PRNG

المبدأ العلمي

النوع المستخدم فعليًا في التشفير - يجمع بين سرعة PRNG وأمان TRNG.

خوارزميات آمنة
  • AES-CTR
  • SHA-DRBG
  • HMAC-DRBG
  • Fortuna
  • Yarrow
التقييم
المزايا
  • مقاوم للهجمات التنبؤية
  • سريع وكفؤ
  • يمر باختبارات عشوائية صارمة
  • معتمد في المعايير العالمية
العيوب
  • أكثر تعقيدًا في التنفيذ
  • يتطلب بذرة عشوائية قوية
  • أبطأ قليلاً من PRNG العادي

🔐 إنشاء أرقام عشوائية باستخدام تشفير الكتل

فكرة العمل

يمكن استخدام خوارزمية كتل (مثل AES) كمولّد أرقام عشوائية آمن عبر وضع CTR.

عملية توليد الأرقام باستخدام AES-CTR
الخطوة 1: اختيار عداد Counter فريد
الخطوة 2: تشفير العداد باستخدام AES
الخطوة 3: الناتج هو سلسلة شبه عشوائية (Keystream)
الخطوة 4: زيادة العداد وتكرار العملية
المزايا
  • سريع للغاية: يستفيد من معجلات AES في العتاد
  • مقاوم للتنبؤ: يعتمد على قوة AES
  • أساس قوي: لـ CSPRNG الحديثة
  • مناسب للأجهزة: معالجات حديثة وشرائح أمنية
الاستخدامات العملية
  • بروتوكولات VPN و TLS
  • توليد المفاتيح التشفيرية
  • خوارزميات توليد Nonces
  • أنظمة التشغيل الآمنة
  • المعالجات الحديثة
مثال عملي
العداد: 00 00 00 00 00 00 00 01
بعد AES: 6B C1 BE E2 2E 40 9F 96
ناتج عشوائي آمن للاستخدام في التشفير
مخطط عمل CSPRNG الحديث
المرحلة 1: جمع الإنتروبيا من الجهاز
(حركة ماوس، ضوضاء، توقيتات...)
المرحلة 2: معالجة الإنتروبيا (Hash)
(SHA-256, SHA-512)
المرحلة 3: تغذية خوارزمية DRBG
(AES-CTR, HMAC-DRBG)
المرحلة 4: توليد أرقام عشوائية عند الطلب
(مفاتيح، IVs، Nonces...)

🌊 تيار الأصفار (Stream Ciphers)

المفهوم الأساسي

نوع من التشفير يقوم بتوليد تيار مفاتيح Key Stream، ثم دمجه مع النص الأصلي بعملية XOR.

آلية العمل
المفتاح → CSPRNG → Key Stream
Key Stream ⊕ النص الأصلي = النص المشفر
نفس Key Stream ⊕ النص المشفر = النص الأصلي
الخصائص
  • سريع جدًا في التنفيذ
  • مناسب للاتصال المباشر والبث
  • يعمل بايتًا بايتًا أو بتًا بتًا
  • لا يحتاج تقسيم البيانات إلى كتل
  • خفيف على الموارد
الاستخدامات العملية
الشبكات اللاسلكية

WEP (قديم)، أنظمة لاسلكية متخصصة

البث الصوتي والمرئي

بث مباشر، اتصالات وسائط متعددة

أنظمة مدمجة

أجهزة ذات موارد محدودة

تطبيقات الأداء العالي

حيث السرعة عامل حاسم

مقارنة: Stream Ciphers vs Block Ciphers
المعيار Stream Ciphers Block Ciphers
طريقة العمل بايتًا بايتًا كتل ثابتة
السرعة أسرع في الاتصالات أقوى في التخزين
حساسية الخطأ عالية منخفضة
المتطلبات CSPRNG قوي وضع تشغيل
سيناريوهات استخدام Stream Ciphers
بث الصوت والفيديو

السبب: يحتاج معالجة سريعة بدون تقسيم كتل

أجهزة منخفضة القدرة

السبب: خفيفة وسريعة على الموارد

بروتوكولات شبكية

السبب: لا تحتاج تقسيم البيانات إلى كتل

اتصالات حساسة للوقت

السبب: لا توجد معالجة إضافية للكتل

تحذير أمني مهم

عدم إعادة استخدام نفس المفتاح Key أو المتجه الابتدائي IV في Stream Ciphers يؤدي إلى اختراق فوري. هذا هو السبب الرئيسي في اختراق WEP بسهولة!

📜 خوارزمية RC4

نبذة تاريخية

طُورت RC4 في 1987 بواسطة Ron Rivest وأصبحت أحد أشهر Stream Ciphers في التاريخ.

شهرة RC4
  • اشتهرت كأسرع Stream Cipher في زمانها
  • استخدمت على نطاق واسع لمدة 20+ سنة
  • نفذت في البرامج والأجهزة
  • كانت الخيار الأول للعديد من التطبيقات
التطبيقات السابقة
  • WEP - Wireless Encryption Protocol
  • WPA القديم (TKIP)
  • TLS 1.0 و SSL
  • بروتوكولات Microsoft القديمة
  • تطبيقات VPN مبكرة
بنية RC4
الجزء 1: KSA
Key Scheduling Algorithm
← توليد حالة أولية من المفتاح
الجزء 2: PRGA
Pseudo Random Generation Algorithm
← توليد التيار العشوائي
لماذا ما زلنا ندرس RC4؟

لأنه نموذج واضح لفهم طريقة عمل Stream Ciphers، ولوجودها في الأنظمة القديمة التي قد نواجهها في العمل الميداني.

مشاكل RC4 الأمنية
انحرافات إحصائية
  • توزيع غير متجانس للبايتات
  • انحياز في البايتات الأولى من التيار
  • ضعف في الإنتروبيا الإحصائية
هجمات عملية
  • هجمات تمييزية فعالة
  • إمكانية استعادة المفتاح
  • هجمات إعادة الاستخدام
الحظر الرسمي
  • Microsoft: حظرت في جميع المنتجات
  • Mozilla: إزالة من Firefox
  • IETF: منع في RFC 7465
  • Google: إزالة من Chrome
  • Apple: منع في iOS و macOS
نهاية العمر
  • غير آمن في TLS و SSL
  • ممنوع في المعايير الحديثة
  • لا يوصى به لأي استخدام
  • استبدال بـ AES-GCM و ChaCha20
مثال توضيحي لبنية RC4
KSA - Key Scheduling
for i from 0 to 255
    S[i] = i
j = 0
for i from 0 to 255
    j = (j + S[i] + key[i mod keylength]) mod 256
    swap S[i] and S[j]
                                    
PRGA - Stream Generation
i = 0, j = 0
while GeneratingOutput:
    i = (i + 1) mod 256
    j = (j + S[i]) mod 256
    swap S[i] and S[j]
    K = S[(S[i] + S[j]) mod 256]
    output K
                                    

⚛️ الإنتروبيا والعشوائية الحقيقية

مفهوم الإنتروبيا

الإنتروبيا هي مقياس مقدار "المجهولية" أو "عدم القابلية للتنبؤ" في البيانات.

مقاييس الإنتروبيا
  • إنتروبيا شانون: قياس عدم اليقين
  • إنتروبيا min-entropy: أسوأ حالة تنبؤ
  • إنتروبيا التجميع: للأنظمة المعقدة
مصادر الإنتروبيا في الأجهزة
  • الضوضاء الحرارية في الترانزستورات
  • تذبذب توقيت الساعة clock jitter
  • الضوضاء الكهربائية في الدوائر
  • حركة الهواء والاهتزازات الميكانيكية
  • التحلل الإشعاعي (في أنظمة عالية الأمان)
تطبيقات عملية
/dev/random

في أنظمة Unix - ينتظر إنتروبيا كافية

/dev/urandom

لا ينتظر - يستخدم CSPRNG

RDRAND

تعليمة معالج Intel للعشوائية

TRNG شرائح

شرائح مخصصة للعشوائية الحقيقية

مصادر الإنتروبيا في الحاسوب
مصادر برمجية
  • حركة الماوس وضغطات لوحة المفاتيح
  • توقيتات المدخلات والمخرجات
  • حركة الشبكة وحزم البيانات
  • أوقات الوصول للقرص الصلب
مصادر عتادية
  • الضوضاء الحرارية في المعالج
  • تذبذب توقيت الساعة
  • الضوضاء في كاميرا الويب
  • ميكروفون (في أنظمة متقدمة)
أفضل الممارسات
ما يجب فعله
  • استخدم CSPRNG معتمدة (AES-CTR, HMAC-DRBG)
  • تأكد من وجود إنتروبيا كافية عند التهيئة
  • استخدم مصادر متعددة للإنتروبيا
  • اختر مولدات معتمدة من NIST
  • استخدم /dev/urandom للتطبيقات العامة
ما يجب تجنبه
  • لا تستخدم PRNG عادية للتشفير
  • لا تعيد استخدام المفاتيح أو IVs
  • لا تعتمد على وقت النظام فقط
  • لا تستخدم RC4 في التطبيقات الجديدة
  • لا تهمل تجميع الإنتروبيا
مستقبل توليد الأرقام العشوائية

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