هجمات أعياد الميلاد والتصادم
طبّق مفارقة عيد الميلاد على تصادمات التجزئة وتمديد طول التجزئة
هجمات أعياد الميلاد والتصادم درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
مفارقة عيد الميلاد
في مجموعة تضم 23 شخصًا، يتجاوز احتمال أن يتشارك شخصان عيد الميلاد نفسه 50%. ومع 70 شخصًا، يتجاوز الاحتمال 99.9%. رياضيًا، في مجموعة حجمها N، يتجاوز احتمال التصادم 50% بعد نحو √N من العينات. ويُعرف ذلك بحد عيد الميلاد.
حد عيد الميلاد لدوال التجزئة
بالنسبة إلى دالة تجزئة من n بت، يمكن العثور على تصادم (H(m1) = H(m2)، m1 ≠ m2) باستخدام نحو 2^{n/2} من المحاولات العشوائية. وبالنسبة إلى SHA-256 (بطول 256 بت)، يتطلب التصادم نحو 2^{128} من العمل، وهو غير قابل للتنفيذ حسابيًا. أما MD5 (بطول 128 بت)، فيتطلب نحو 2^{64}، وهو قريب من أن يصبح قابلًا للتنفيذ.
خوارزمية هجوم التصادم
العثور العام على التصادمات: أنشئ 2^{n/2} من الرسائل العشوائية، واحسب التجزئات، ورتّبها حسب قيمة التجزئة، ثم اعثر على القيم المكررة. يتطلب ذلك ذاكرة O(2^{n/2}). وتقلل خوارزمية Rho (العثور على الدورات باستخدام Floyd) الذاكرة إلى O(1) مع الحفاظ على تكلفة الوقت نفسها. ويقلل البحث المتوازي عن التصادمات وفق van Oorschot-Wiener الوقت باستخدام العتاد.
تصادمات MD5
عثر Wang وزملاؤه (2004) على تصادمات عملية في MD5 باستخدام تحليل التشفير التفاضلي، وليس هجوم عيد الميلاد. ويمكن إنشاء رسالتين مختلفتين بطول 1024 بت لهما تجزئة MD5 متطابقة خلال ثوانٍ. وتتيح تصادمات Hertzbleed وتصادمات البادئة المختارة إنشاء تصادمات للشهادات. وقد أصبح MD5 مكسورًا تمامًا من ناحية مقاومة التصادم.
تصادمات البادئة المختارة
الأمر أكثر قوة: عند إعطاء بادئتين عشوائيتين P1 وP2، اعثر على لاحقتين S1 وS2 بحيث H(P1||S1) = H(P2||S2). عثر Stevens وزملاؤه (2017) على تصادمات MD5 ذات بادئات مختارة. واستُخدمت لإنشاء شهادة CA ضارة تحمل توقيع MD5 صالحًا. وأدى ذلك إلى إيقاف استخدام MD5 في الشهادات.
تصادمات SHA-1
كان SHAttered من Google (2017) أول تصادم عملي لـ SHA-1. فقد أُنشئ ملفا PDF مختلفان لهما تجزئة SHA-1 نفسها. وتطلب ذلك 2^{63.1} من عمليات ضغط SHA-1، أي ما يعادل 6,500 سنة من وقت CPU و110 سنوات من وقت GPU. وبلغت التكلفة نحو 110,000 دولار. وقد أوقفت المتصفحات اعتماد شهادات SHA-1 في عام 2017.
هجمات تمديد الطول
بالنسبة إلى دوال التجزئة من نوع Merkle-Damgard (MD5 وSHA-1 وSHA-2): إذا كنت تعرف H(m)، فيمكنك حساب H(m||padding||m') من دون معرفة m. وهذا يكسر بنيات MAC مثل H(secret||message). الحل هو استخدام HMAC (الذي يستخدم حشوًا داخليًا وخارجيًا) أو SHA-3 (بنية الإسفنجة، وهي محصّنة ضد تمديد الطول).
مقاومة التصادم مقابل مقاومة الصورة السابقة
مقاومة التصادم: العثور على رسالتين مختلفتين كيفما كانتا ولهما قيمة التجزئة نفسها (يتطلب جهدًا قدره 2^{n/2}). مقاومة الصورة السابقة الثانية: عند إعطائك m، العثور على m' ≠ m ولهما قيمة التجزئة نفسها (يتطلب جهدًا قدره 2^n). مقاومة الصورة السابقة: العثور على أي رسالة لقيمة تجزئة معطاة (يتطلب جهدًا قدره 2^n). ويظل التصادم دائمًا أضعف هذه الخصائص.
هجمات التصادم على MAC
إذا استخدم MAC دالة تجزئة معرّضة للتصادمات، فقد يتمكن مهاجم يستطيع العثور على تصادمات في H من تزوير قيم MAC. ويُعد HMAC-MD5 آمنًا رغم تصادمات MD5، لأن بنية HMAC تتطلب هجمات على الصورة السابقة، وليس مجرد تصادمات. ومع ذلك، ينبغي الانتقال من HMAC-MD5 في الأنظمة الجديدة.
التصادمات المتعددة
أوضح Joux (عام 2004) أنه بالنسبة إلى تجزئات Merkle-Damgard، فإن العثور على تصادم متعدد الطرق من 2^k (أي 2^k رسالة لها قيمة التجزئة نفسها) يتطلب جهدًا يساوي k مرة جهد العثور على تصادم واحد فقط، وليس k مرات هذا الجهد. ويؤدي ذلك إلى تراكم الثغرات في دوال التجزئة المتسلسلة (فإن H1(m)||H2(m) ليست قوية بالقدر الذي قد تتوقعه).
تجنب التصادمات
استخدم SHA-256 أو SHA-3 للتجزئة المقاومة للتصادمات. وتجنب MD5 وSHA-1 لأي غرض أمني. بالنسبة إلى MAC، استخدم HMAC-SHA-256 أو HMAC-SHA-3. وبالنسبة إلى تجزئة كلمات المرور، استخدم Argon2 (وليس SHA-2 مباشرةً). استخدم SHA-3 دائمًا عند الحاجة إلى مقاومة تمديد الطول.
تحقق سريع
تقريبًا، كم عدد عمليات حساب التجزئة اللازمة للعثور على تصادم في دالة تجزئة n-bit؟
مراجعة
يعثر هجوم أعياد الميلاد على تصادمات التجزئة بجهد قدره 2^{n/2}. لدى MD5 تصادمات عملية ذات بادئة مختارة، وقد كُسر SHA-1 في عام 2017. تكسر هجمات تمديد الطول قيم MAC الساذجة من الشكل H(key||msg). استخدم SHA-256 أو SHA-3، واستخدم HMAC لمصادقة الرسائل. التالي: هجمات الالتقاء في المنتصف.
الأسئلة الشائعة
هل درس «هجمات أعياد الميلاد والتصادم» مجاني؟
نعم — نص درس «هجمات أعياد الميلاد والتصادم» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ماذا ستتعلم في «هجمات أعياد الميلاد والتصادم»؟
طبّق مفارقة عيد الميلاد على تصادمات التجزئة وتمديد طول التجزئة تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟
لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «هجمات أعياد الميلاد والتصادم»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟
نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أساسيات التحليل التشفيري التفاضلي
- التحليل التشفيري الخطي وجداول التقريب
- هجمات أعياد الميلاد والتصادم
- اللقاء في المنتصف ومفاضلات الزمن والذاكرة