0Pricing
Cryptology Academy · درس

RSA-PSS للتوقيعات الرقمية

تعلّم ترميز PSS وsalt ولماذا حلّ محل PKCS#1 v1.5 في التوقيع

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

مرحبًا

يُعد RSA-PSS (Probabilistic Signature Scheme) البديل الآمن لتوقيعات PKCS#1 v1.5. ويستخدم ترميزًا عشوائيًا لتوفير توقيعات آمنة قابلة للإثبات.

نقاط ضعف توقيعات PKCS#1 v1.5

تستخدم توقيعات PKCS#1 v1.5 ترميز DigestInfo حتميًا. وتستغل هجمات التزوير المعروفة تطبيقات التحقق المتساهلة. وقد أثبت Bleichenbacher عام 2006 إمكانية تزوير التوقيعات أمام بعض أدوات التحقق.

أهداف تصميم PSS

Bellare-Rogaway‏ 1996: يضيف PSS قيمة salt عشوائية لجعل التوقيعات احتمالية. وينتج كل توقيع توقيعًا مختلفًا. كما أنه آمن قابل للإثبات في نموذج oracle العشوائي، مع اختزال محكم إلى صعوبة RSA.

خطوات ترميز PSS

1. mHash = Hash(M) 2. salt = random(sLen bytes) 3. M' = 0x00×8 || mHash || salt 4. H = Hash(M') 5. DB = PS || 0x01 || salt 6. dbMask = MGF1(H, emLen - hLen - 1) 7. maskedDB = DB XOR dbMask 8. EM = maskedDB || H || 0xbc

خيارات طول salt

خيارات PKCS#1 v2.2: - MAX_LENGTH: يكون salt بطول التجزئة (موصى به، ويوفر أقصى أمان) - DIGEST_LENGTH: يكون salt مساويًا لطول التجزئة (الخيار المعياري) - 0: PSS حتمي (يفقد الخاصية الاحتمالية، ولا يُوصى به) Python: padding.PSS.MAX_LENGTH

التحقق من PSS

استعد EM = sig^e mod n. حلّل maskedDB وH. احسب M' من mHash (المأخوذ من الرسالة) ومن salt المستعاد. تحقق من أن H == Hash(M'). لا يلزم أن يطابق salt القيمة الأصلية — يكفي أن ينجح التحقق من H.

مقارنة أمان PSS وv1.5

PSS: آمن قابل للإثبات، واختزاله محكم، وتوقيعاته احتمالية، لكنه يتطلب حسابات أكبر قليلًا. v1.5: آمن استدلاليًا، وحتمي، وأسرع، لكنه عرضة لهجمات oracle على التنسيق. يجب أن تستخدم كل الشيفرات الجديدة PSS.

PSS في TLS 1.3

يتطلب TLS 1.3 استخدام RSA-PSS لجميع توقيعات RSA. ويُحظر PKCS#1 v1.5 في امتدادات TLS 1.3 الجديدة. خوارزميات التوقيع: rsa_pss_rsae_sha256, rsa_pss_rsae_sha384, rsa_pss_rsae_sha512.

PSS في Python

from cryptography.hazmat.primitives.asymmetric import padding from cryptography.hazmat.primitives import hashes # Sign sig = private_key.sign( message, padding.PSS(mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH), hashes.SHA256() )

معرّف OID لـ RSASSA-PSS

يمتلك RSA-PSS نوع OID خاصًا بالمفتاح: id-RSASSA-PSS (1.2.840.113549.1.1.10). وتستخدم المفاتيح المُنشأة خصيصًا لـ PSS هذا OID، وتتطلب توقيع PSS (ولن تعمل مع v1.5). وهذه أفضل ممارسة للأنظمة الجديدة.

التجزئات المقتطعة وتوصيات salt

أمان PSS = min(|modulus|/2, |hash|) - 1 بت عندما يكون salt_length = hash_length. بالنسبة إلى RSA-2048 مع SHA-256: أمان بمقدار 128 بت. وازن مستوى الأمان: استخدم RSA-3072 + SHA-384 لأمان بمقدار 192 بت.

تحقق سريع

ما الذي يجعل توقيعات RSA-PSS «احتمالية» مقارنةً بتوقيعات PKCS#1 v1.5؟

مراجعة

RSA-PSS هو الأسلوب الآمن للتوقيع باستخدام RSA. بعد ذلك نتقن تشفير المنحنيات الإهليلجية — لفهم هندسة المنحنيات وجبرها.

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

هل درس «RSA-PSS للتوقيعات الرقمية» مجاني؟

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

ماذا ستتعلم في «RSA-PSS للتوقيعات الرقمية»؟

تعلّم ترميز PSS وsalt ولماذا حلّ محل PKCS#1 v1.5 في التوقيع تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

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

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

كم من الوقت يستغرق درس «RSA-PSS للتوقيعات الرقمية»؟

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

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

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

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

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