ML-DSA (FIPS 204) وSLH-DSA (FIPS 205)
قارنوا بين توقيعات CRYSTALS-Dilithium القائمة على الشبكات وتوقيعات SPHINCS+ القائمة على التجزئة، ومقايضاتهما.
ML-DSA (FIPS 204) وSLH-DSA (FIPS 205) درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
أصول ML-DSA
إن ML-DSA، أي خوارزمية التوقيع الرقمي القائمة على الشبكات الوحدية (Module-Lattice-based Digital Signature Algorithm)، التي عُيّنت معيارًا باسم FIPS 204، مشتقة من CRYSTALS-Dilithium. صمم Dilithium كل من Ducas وKiltz وLepoint وLyubashevsky وSchwabe وSeiler وStehle، وقدموه إلى NIST في عام 2017. ويستخدم إطار Fiat-Shamir مع الإيقاف المطبق على Module-LWE، منتجًا مخطط توقيع عمليًا ذي براهين أمان قوية.
Fiat-Shamir مع الإيقاف
تحوّل تحويلات Fiat-Shamir الكلاسيكية بروتوكولات التعريف التفاعلية إلى توقيعات. وفي مخططات الشبكات، يؤدي التطبيق المباشر إلى تسريب معلومات عن المفتاح السري من خلال متجه الاستجابة. وتضيف تقنية مع الإيقاف التي طورها Lyubashevsky أخذ عينات بالرفض: إذ يتحقق الموقّع مما إذا كانت الاستجابة ستكشف معلومات، ويتوقف ويعيد المحاولة إذا كان الأمر كذلك. ويضيف هذا تكلفة صغيرة إلى عملية التوقيع، لكنه ضروري لتحقيق الأمان.
عملية التوقيع في ML-DSA
لإنشاء توقيع، يأخذ ML-DSA عينة من متجه تمويه y من توزيع منتظم، ويحسب التزامًا w = Ay، ثم يجزّئ (message, w) للحصول على كثير حدود التحدي c، ويحسب الاستجابة z = y + cs. ويتحقق أخذ العينات بالرفض مما إذا كانت z تكشف معلومات عن s. فإذا نجح التحقق، يكون التوقيع هو (c, z) إلى جانب تلميح للتحقق بكفاءة. وإذا لم ينجح، تتكرر العملية.
مجموعات معلمات ML-DSA
يحدد ML-DSA ثلاث مجموعات من المعلمات: ML-DSA-44 (مستوى أمان NIST 2، نحو 128 بت)، وML-DSA-65 (المستوى 3، نحو 192 بت)، وML-DSA-87 (المستوى 5، نحو 256 بت). وتشير الأرقام إلى رتب الوحدات في المخطط. وتبلغ أحجام المفاتيح العامة 1312 و1952 و2592 بايت على التوالي. ويبلغ حجم توقيع ML-DSA-65 مقدار 3293 بايت، مقارنةً بـ 64 بايت لـ Ed25519 عند مستوى أمان قدره 128 بت.
المفاضلة في حجم توقيع ML-DSA
أهم عيب في ML-DSA مقارنةً بـ ECDSA أو EdDSA هو حجم التوقيع. فتبلغ توقيعات ML-DSA-65 3293 بايت، مقابل 64 بايت لـ Ed25519. وبالنسبة إلى البروتوكولات التي تنقل عددًا كبيرًا من التوقيعات، مثل سلاسل شهادات TLS وتوقيع الشيفرة، يؤدي ذلك إلى زيادة استهلاك عرض النطاق الترددي. ومع ذلك، فإن إنشاء توقيعات ML-DSA والتحقق منها سريع جدًا، وبسرعة مماثلة لـ ECDSA أو أعلى منها، ولذلك تتمثل المفاضلة أساسًا في تكلفة الاتصال.
أصول SLH-DSA وتصميمه
إن SLH-DSA، أي خوارزمية التوقيع الرقمي القائمة على التجزئة عديمة الحالة (Stateless Hash-Based Digital Signature Algorithm)، التي عُيّنت معيارًا باسم FIPS 205، مشتقة من SPHINCS+. وعلى خلاف مخططات الشبكات، يعتمد أمان SLH-DSA فقط على مقاومة التصادم ومقاومة الصورة السابقة الثانية لدالة التجزئة الأساسية، وهي SHA-256 أو SHAKE-256. وهذا يجعل SLH-DSA محافظًا جدًا: إذ يظل آمنًا حتى إذا انهارت افتراضات الشبكات.
توقيعات WOTS+ لمرة واحدة
يعتمد SLH-DSA على WOTS+، أي توقيع Winternitz لمرة واحدة، وهو مخطط قائم على التجزئة يكون فيه المفتاح الخاص مجموعة من السلاسل العشوائية، ويُحصل على المفتاح العام من خلال تجزئة كل سلسلة مرارًا. ويتضمن التوقيع إجراء تجزئة جزئية استنادًا إلى بتات الرسالة. ولا يمكن استخدام WOTS+ بأمان إلا مرة واحدة لكل زوج مفاتيح؛ فاستخدامه مرتين يؤدي إلى تسريب معلومات. ويبني SLH-DSA إمكانية التوقيع مرات عديدة فوق WOTS+ باستخدام الأشجار.
أشجار Merkle للتوقيع مرات عديدة
يستخدم SLH-DSA شجرة فائقة، أي شجرة من أشجار Merkle. وتمثل كل ورقة المفتاح العام لمثيل من WOTS+. أما الجذر فهو المفتاح العام لـ SLH-DSA. ويتكون التوقيع من توقيع WOTS+ للرسالة ومسار المصادقة من الورقة إلى الجذر. وتتيح بنية الشجرة الفائقة إنشاء توقيعات عديدة من زوج مفاتيح واحد باستخدام أوراق WOTS+ مختلفة.
مجموعات معلمات SLH-DSA
يحتوي SLH-DSA على 12 مجموعة من المعلمات تجمع بين دالة التجزئة (SHA-256 أو SHAKE-256)، ومستوى الأمان (128s/128f و192s/192f و256s/256f)، والتحسين (s = توقيعات صغيرة، وf = توقيع سريع). ويحتوي الإصدار 128f على توقيعات حجمها 7856 بايت مع توقيع سريع، بينما يحتوي الإصدار 128s على توقيعات بالحجم نفسه، لكن التوقيع فيه أبطأ. وتكون جميع هذه التوقيعات أكبر بكثير من توقيعات ML-DSA، لكنها تعتمد على أقوى افتراض أمان ممكن.
متى تختار SLH-DSA بدلًا من ML-DSA
يُفضّل ML-DSA عندما يكون الأداء وعرض النطاق الترددي مهمين، وعندما تكون افتراضات أمان الشبكات موثوقة. أما SLH-DSA فيُفضّل في عمليات النشر المحافظة جدًا التي لا يُعتمد فيها إلا على أمان دوال التجزئة، أو بهدف الاستعداد للمستقبل تحسبًا لانهيار محتمل للشبكات. وقد تفضّل هيئات إصدار الشهادات والأنظمة الحكومية التي تنشئ التوقيعات نادرًا، لكنها تحتاج إلى أقصى درجات الضمان، استخدام SLH-DSA، بينما تفضّل خوادم TLS التي تنشئ التوقيعات باستمرار استخدام ML-DSA.
FN-DSA (FALCON): توقيع شبكي آخر
يوفر FN-DSA (FIPS 206، المستند إلى FALCON) توقيعات أصغر من ML-DSA، إذ يبلغ حجم توقيعات FALCON-512 897 بايتًا عند مستوى أمان قدره 128 بت، وذلك باستخدام شبكات NTRU وأخذ العينات الغاوسي. ومع ذلك، يتطلب FALCON تنفيذًا دقيقًا بزمن ثابت لتجنب هجمات القنوات الجانبية الصادرة عن أداة أخذ العينات الغاوسي. ومن المتوقع توحيد FIPS 206 بعد FIPS 203-205، ليقدم خيارًا عالي الأداء للبيئات محدودة الموارد.
اختبار ML-DSA وSLH-DSA
ما الميزة الأمنية الأساسية التي يوفرها SLH-DSA مقارنةً بـ ML-DSA؟
مراجعة ML-DSA وSLH-DSA
يستخدم ML-DSA (FIPS 204) تحويل Fiat-Shamir مع الإيقاف فوق Module-LWE، ويوفر توقيعًا سريعًا مع توقيعات بحجم 3 كيلوبايت عند مستوى أمان قدره 192 بت. أما SLH-DSA (FIPS 205) فيستخدم أشجار Merkle القائمة على التجزئة (WOTS+)، ولا يعتمد إلا على أمان دوال التجزئة، مع توقيعات يتراوح حجمها بين 7 و50 كيلوبايت. ويُفضّل ML-DSA للتطبيقات الحساسة للأداء، بينما يُفضّل SLH-DSA لتحقيق أقصى قدر من التحفظ. وسيضيف FN-DSA (FALCON، FIPS 206) خيارًا شبكيًا بتوقيعات أصغر.
الأسئلة الشائعة
هل درس «ML-DSA (FIPS 204) وSLH-DSA (FIPS 205)» مجاني؟
نعم — نص درس «ML-DSA (FIPS 204) وSLH-DSA (FIPS 205)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ماذا ستتعلم في «ML-DSA (FIPS 204) وSLH-DSA (FIPS 205)»؟
قارنوا بين توقيعات CRYSTALS-Dilithium القائمة على الشبكات وتوقيعات SPHINCS+ القائمة على التجزئة، ومقايضاتهما. تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟
لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «ML-DSA (FIPS 204) وSLH-DSA (FIPS 205)»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟
نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مسابقة NIST للتشفير ما بعد الكمي: العملية والمعايير
- ML-KEM (FIPS 203): توحيد CRYSTALS-Kyber
- ML-DSA (FIPS 204) وSLH-DSA (FIPS 205)
- التخطيط للانتقال إلى معايير ما بعد الكم