0Pricing
Cryptology Academy · درس

OAEP: حشو التشفير غير المتماثل الأمثل

تتبّع ترميز OAEP وكيف يحقق أمان IND-CCA2

OAEP: حشو التشفير غير المتماثل الأمثل درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

مرحبًا

يوفر OAEP (Optimal Asymmetric Encryption Padding) تشفير RSA آمنًا وفق IND-CCA2 وقابلًا للإثبات. ويستخدم ترميزًا عشوائيًا يجعل استعلامات oracle عديمة القيمة تشفيريًا.

أهداف OAEP

صمم Bellare وRogaway‏ OAEP عام 1994 بهدفين: (1) منع جميع هجمات RSA النظري باستخدام العشوائية، (2) تحقيق أمان IND-CCA2 مع برهان أمان رسمي في نموذج oracle العشوائي.

مدخلات OAEP

M: الرسالة المراد تشفيرها (|M| ≤ |n| - 2*hLen - 2 بايت) L: وسم اختياري (يكون فارغًا عادةً) MGF: دالة توليد القناع (مبنية على SHA-256) r: بذرة عشوائية (بطول hLen بايت)

خطوة ترميز OAEP‏ 1: كتلة البيانات

DB = lHash || PS || 0x01 || M حيث: - lHash = Hash(L) (تجزئة الوسم) - PS = بايتات صفرية تملأ حتى الوصول إلى طول ثابت - 0x01 يحدد بداية الرسالة

خطوة ترميز OAEP‏ 2: وضع القناع

maskedDB = DB XOR MGF(r, len(DB)) maskedSeed = r XOR MGF(maskedDB, hLen) EM = 0x00 || maskedSeed || maskedDB هذه هي الرسالة المحشوة التي تُمرر إلى تشفير RSA.

MGF1: دالة توليد القناع

MGF1(Z, L) = Hash(Z || 0x00000000) || Hash(Z || 0x00000001) || ... تولد MGF1 باستخدام SHA-256 مخرجات شبه عشوائية بأي طول انطلاقًا من بذرة. وتُستخدم في OAEP وRSA-PSS.

فك ترميز OAEP

بالنظر إلى EM: 1. قسّمها إلى maskedSeed وmaskedDB 2. r = maskedSeed XOR MGF(maskedDB, hLen) 3. DB = maskedDB XOR MGF(r, len(DB)) 4. تحقق من تطابق lHash؛ وابحث عن الفاصل 0x01؛ واستخرج M 5. أي خطأ → فشل فك التشفير (تكون رسالة الخطأ نفسها دائمًا)

سبب إفشال OAEP لهجمات oracle

تتغير البذرة العشوائية r في كل عملية تشفير. ومن المرجح بدرجة ساحقة أن يفك النص المشفر المعدّل إلى رسالة محشوة عشوائية تمامًا. لذلك يرى oracle القيمة «غير صالح» لجميع التعديلات.

أمان IND-CCA2

IND-CCA2 (عدم القابلية للتمييز في ظل هجوم النص المشفر المختار 2): لا يستطيع المهاجم التمييز بين Enc(M0) وEnc(M1)، حتى مع إمكانية الوصول إلى oracle لفك التشفير لجميع النصوص المشفرة باستثناء نص التحدي. ويحقق OAEP ذلك.

مقارنة OAEP وv1.5 عمليًا

مكتبة Python cryptography: استخدم padding.OAEP()، وليس padding.PKCS1v15(). في Java: استخدم cipher‏ 'RSA/ECB/OAEPWithSHA-256AndMGF1Padding'. لا تستخدم 'RSA/ECB/PKCS1Padding' في الشيفرة الجديدة مطلقًا.

الحد الأقصى لحجم الرسالة في OAEP

بالنسبة إلى RSA-2048 مع SHA-256: الرسالة القصوى = 256 - 2×32 - 2 = 190 بايتًا يبلغ الحمل الإضافي لـ OAEP مقدار 2×hLen + 2 بايت. وبالنسبة إلى الرسائل الأطول، استخدم تشفيرًا هجينًا باستخدام AES: شفّر مفتاح AES باستخدام OAEP، والبيانات باستخدام AES-GCM.

تحقق سريع

ما الخاصية التي تجعل OAEP مقاومًا لهجمات مست oracle الحشو؟

مراجعة

يوفر OAEP أمانًا قابلًا للإثبات لتشفير RSA. بعد ذلك ندرس RSA-PSS — التحسين المناظر لتوقيعات RSA.

الأسئلة الشائعة

هل درس «OAEP: حشو التشفير غير المتماثل الأمثل» مجاني؟

نعم — نص درس «OAEP: حشو التشفير غير المتماثل الأمثل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

ماذا ستتعلم في «OAEP: حشو التشفير غير المتماثل الأمثل»؟

تتبّع ترميز OAEP وكيف يحقق أمان IND-CCA2 تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟

لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «OAEP: حشو التشفير غير المتماثل الأمثل»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟

نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. RSA النظري ولماذا هو غير آمن
  2. حشو PKCS#1 v1.5 وBleichenbacher
  3. OAEP: حشو التشفير غير المتماثل الأمثل
  4. RSA-PSS للتوقيعات الرقمية
← العودة إلى Cryptology Academy