ML-KEM (FIPS 203): توحيد CRYSTALS-Kyber
تعمّقوا في آلية تغليف مفاتيح ML-KEM، ومجموعات المعلمات، واعتبارات التنفيذ.
ML-KEM (FIPS 203): توحيد CRYSTALS-Kyber درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ما الذي يحدده معيار ML-KEM
إن ML-KEM، أي آلية تغليف المفاتيح القائمة على الشبكات الوحدية (Module-Lattice-based Key Encapsulation Mechanism)، الذي عُيّن معيارًا باسم FIPS 203 في أغسطس 2024، هو البديل ما بعد الكمّي لتبادل المفاتيح باستخدام Diffie-Hellman وRSA. ويغلّف مفتاحًا متماثلًا باستخدام مفتاح عام، منتجًا سرًا مشتركًا يمكن للطرفين استخدامه في التشفير المتماثل. وقد اشتُق ML-KEM من CRYSTALS-Kyber مع تعديلات طفيفة لجعل المواصفة أكثر وضوحًا.
مجموعات معلمات ML-KEM
يحدد ML-KEM ثلاث مجموعات من المعلمات. تستهدف ML-KEM-512 مستوى أمان يقارب 128 بت في الحالة الكلاسيكية و100 بت في الحالة ما بعد الكمّية، مع مفتاح عام حجمه 800 بايت ونص مشفّر حجمه 768 بايت. وتستهدف ML-KEM-768 مستوى أمان كلاسيكيًا قدره 192 بت، بمفتاح عام حجمه 1184 بايت ونص مشفّر حجمه 1088 بايت. أما ML-KEM-1024 فتستهدف مستوى أمان كلاسيكيًا قدره 256 بت، بمفتاح عام ونص مشفّر حجمهما 1568 بايت. يوصي NIST باستخدام ML-KEM-768 في معظم التطبيقات.
توليد المفاتيح في ML-KEM
يعمل توليد المفاتيح في ML-KEM كما يلي: تُؤخذ عينة من المصفوفة العشوائية A انطلاقًا من بذرة باستخدام SHAKE-128، ثم تُؤخذ عينة من المتجه السري الصغير s ومتجه الخطأ e، ويُحسب t = As + e mod q. يتكون المفتاح العام من (seed, t)، بينما يتكون المفتاح الخاص من s إلى جانب تجزئة المفتاح العام. ويسهم استخدام بذرة بدلًا من تخزين A في توفير قدر كبير من الذاكرة وعرض النطاق الترددي.
عملية التغليف
لإجراء التغليف، ينشئ المرسل رسالة عشوائية m، ويشتق منها مفتاحًا متماثلًا K وعشوائيةً r باستخدام SHA-3. ويتكون النص المشفّر من جزأين: u = Ar + e1 mod q وv = t^T r + e2 + encode(m) mod q. ويُشتق السر المشترك K من تجزئة m. وتُشتق العشوائية حتميًا من m، مما يربط النص المشفّر بالمفتاح.
فك التغليف وتحويل FO
يستعيد فك التغليف m بحساب v - s^T u وفك ترميزه، ثم يعيد اشتقاق K من m. ويضيف تحويل Fujisaki-Okamoto خطوة مهمة: إعادة التشفير باستخدام m المستعاد والتحقق من تطابق النص المشفّر. وإذا لم يتطابقا، تُعاد قيمة شبه عشوائية مشتقة من تجزئة المفتاح الخاص والنص المشفّر. ويمنع ذلك هجمات النص المشفّر المختار، إذ يجعل فك التغليف حتميًا وقابلًا للتحقق.
إثبات أمان CCA2
يحقق ML-KEM أمان IND-CCA2 في نموذج العرّاف العشوائي الكمّي (QROM)، وقد أُثبت ذلك بالاعتماد على افتراض Module-LWE. وتكمن أهمية QROM في أن المهاجمين ما بعد الكمّيين يستطيعون الاستعلام عن دوال التجزئة في حالة تراكب. ويوفر إثبات الأمان الذي قدمه Hofheinz وHovelmanns وKiltz، المعروف بإطار HHK، اختزالات محكمة من أمان Module-LWE إلى أمان ML-KEM في QROM.
الأداء مقارنةً بـ RSA وECDH
يتفوق ML-KEM على RSA بفارق كبير في تبادل المفاتيح عند مستويات الأمان المتكافئة. يستغرق توليد مفاتيح ML-KEM-768 نحو 16 ميكروثانية على وحدة معالجة مركزية حديثة، بينما يستغرق التغليف 20 ميكروثانية وفك التغليف 18 ميكروثانية. أما توليد مفاتيح RSA-2048 فيستغرق ثواني. وتكون مفاتيح ML-KEM العامة، التي يبلغ حجمها 1184 بايت، أكبر من مفاتيح ECDH التي يتراوح حجمها بين 32 و64 بايت، لكنها أصغر بكثير من مفاتيح RSA-2048 التي يبلغ حجمها 256 بايت للمفتاح وحده، وتكون أطول عمليًا.
عمليات النشر الهجينة
خلال الفترة الانتقالية، يجمع تبادل المفاتيح الهجين بين ML-KEM وخوارزمية كلاسيكية، عادةً X25519 أو P-256 ECDH. ويكون السر المشترك هو تجزئة مخرجي KEM معًا: K = Hash(K_classical || K_pqc). ويضمن ذلك ألا يكون الأمان أضعف من أمان أي من المكوّنين. وقد حُددت مواصفات TLS الهجين في IETF draft-ietf-tls-hybrid-design، كما تدعمه BoringSSL وOpenSSL 3.x وRustls.
ML-KEM في TLS 1.3
حدد IETF X25519ML-KEM-768 كحصة المفاتيح الهجينة لبروتوكول TLS 1.3، وذلك في draft-ietf-tls-hybrid-design. وأضاف Chrome الدعم في الإصدار 124 (أبريل 2024)، وأضافه Firefox في الإصدار 132 (عام 2024). ونشرت Cloudflare تقنية ML-KEM في بنيتها التحتية لإنهاء اتصالات TLS. ويعني هذا الاعتماد السريع أن مئات الملايين من اتصالات TLS يوميًا تتضمن الآن تبادل مفاتيح ما بعد كمّي.
معدل فشل فك التشفير
بسبب حدود الخطأ في LWE، توجد احتمالية ضئيلة جدًا لفشل فك التغليف حتى في غياب أي مهاجم. تبلغ احتمالية الفشل في ML-KEM-512 نحو 2^{-139}، بينما تبلغ في ML-KEM-768 نحو 2^{-164}. وهذه المعدلات أقل بكثير من أن تمثل مصدر قلق عملي، فالأخطاء العتادية مثلًا أكثر تواترًا بكثير، ولا تؤثر في الأمان، لكن يجب أخذها في الاعتبار عند وضع المواصفة.
التنفيذات مفتوحة المصدر
طُبّق ML-KEM في العديد من المكتبات مفتوحة المصدر. ويقع التنفيذ المرجعي من فريق Kyber ضمن الملكية العامة. ويوفر PQClean تنفيذًا منقحًا وقابلًا للنقل بلغة C. ويدمج liboqs، وهو مشروع Open Quantum Safe، ML-KEM في غلاف مكتبي. وتتضمن AWS-LC، وهي نسخة Amazon المتفرعة من BoringSSL، دعم ML-KEM لنقاط نهاية TLS في AWS. كما تتضمن مواصفة NIST FIPS 203 شيفرة كاذبة مفصلة لجميع العمليات.
اختبار معلمات ML-KEM
ما مجموعة معلمات ML-KEM التي يوصي NIST باستخدامها في معظم التطبيقات؟
مراجعة ML-KEM
ML-KEM (FIPS 203) هو KEM ما بعد كمّي عيّنه NIST معيارًا، ويعتمد على Module-LWE. توفر مجموعات المعلمات الثلاث (512/768/1024) مستويات أمان كلاسيكية قدرها 128/192/256 بت. وينتج توليد المفاتيح مفتاحًا عامًا صغير الحجم انطلاقًا من بذرة عشوائية، بينما يشتق التغليف سرًا مشتركًا، ويستخدم فك التغليف تحويل FO لتحقيق أمان CCA2. ويتسم ML-KEM بسرعة أعلى بكثير من RSA، وقد نُشر بالفعل في TLS لدى Chrome وFirefox وCloudflare.
الأسئلة الشائعة
هل درس «ML-KEM (FIPS 203): توحيد CRYSTALS-Kyber» مجاني؟
نعم — نص درس «ML-KEM (FIPS 203): توحيد CRYSTALS-Kyber» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ماذا ستتعلم في «ML-KEM (FIPS 203): توحيد CRYSTALS-Kyber»؟
تعمّقوا في آلية تغليف مفاتيح ML-KEM، ومجموعات المعلمات، واعتبارات التنفيذ. تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟
لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «ML-KEM (FIPS 203): توحيد CRYSTALS-Kyber»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟
نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مسابقة NIST للتشفير ما بعد الكمي: العملية والمعايير
- ML-KEM (FIPS 203): توحيد CRYSTALS-Kyber
- ML-DSA (FIPS 204) وSLH-DSA (FIPS 205)
- التخطيط للانتقال إلى معايير ما بعد الكم