CMAC وPoly1305: رموز MAC المعتمدة على تشفير الكتل
قارن CMAC وPoly1305 كبديلين لرموز MAC المعتمدة على دوال التجزئة
CMAC وPoly1305: رموز MAC المعتمدة على تشفير الكتل درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ما هو MAC؟
رمز مصادقة الرسالة (MAC) يأخذ مفتاحًا ورسالة وينتج وسمًا. ويثبت هذا الوسم أن الرسالة لم تُعبث بها وأنها أُنشئت بواسطة جهة تملك المفتاح.
HMAC في مقابل MAC المعتمد على الشفرات الكتلية
يستخدم HMAC دالة تجزئة بوصفها البدائية التشفيرية. أما CMAC وPoly1305 فيستخدمان الشفرات الكتلية أو الحسابات متعددة الحدود بدلًا من ذلك. وتتجنب MACs المعتمدة على الشفرات الكتلية الاعتماد على دوال التجزئة، كما تتكامل طبيعيًا مع عتاد AES.
بناء CMAC
يُعرَّف CMAC (MAC المعتمد على الشفرة) في المعيار NIST SP 800-38B. إذ يحشو الرسالة حتى حدود الكتلة، ويشتق مفتاحين فرعيين K1/K2 من الشفرة، ثم يجري XOR لهما مع الكتلة النهائية، وبعد ذلك يشغّل نمط CBC من دون تخزين النص المشفّر الوسيط.
اشتقاق المفاتيح الفرعية لـ CMAC
K1 = AES_K(0^128) بعد إزاحته إلى اليسار بمقدار 1 بت، مع إجراء XOR مع ثابت إذا كانت MSB تساوي 1. أما K2 = K1 بعد إزاحته بالطريقة نفسها. وتربط هذه المفاتيح الفرعية الكتلة الجزئية النهائية بأمان لمنع تمديد الطول.
نظرة عامة على Poly1305
Poly1305 هو موثّق يُستخدم مرة واحدة، صممه Daniel Bernstein. ويقيّم متعدد حدود على العدد الأولي 2^130-5، معاملةً الرسالة كمعاملات لمتعدد الحدود، واستخدام زوج مفاتيح يُستعمل مرة واحدة (r, s).
رياضيات Poly1305
Tag = (sum of (m_i * r^i) mod 2^130-5) + s mod 2^128. ويُقيَّد المفتاح r على 22 بتًا محددًا لمنع هجمات التوقيت. أما s فهو قناع إضافة بطول 16 بايتًا يُستخدم مرة واحدة.
ChaCha20-Poly1305
يقترن Poly1305 دائمًا تقريبًا بـ ChaCha20. إذ يولّد ChaCha20 الزوج (r, s) المستخدم مرة واحدة من مجرى مفاتيح الشفرة الانسيابية، ما يجعل مخطط AEAD المدمج آمنًا وفق البرهان وسريعًا للغاية على معالجات ARM/الأجهزة المحمولة.
AES-GCM في مقابل AES-CMAC
يجري AES-GCM المصادقة باستخدام GHASH، وهو MAC متعدد الحدود على GF(2^128). أما AES-CMAC فهو أبسط، ويُستخدم في IEEE 802.11i (WPA2) ومجموعات الشفرات في TLS 1.2. ويوفّر GCM التشفير والمصادقة معًا في مرور واحد.
مقارنة الأداء
يحقق Poly1305 على ARM Cortex-A نحو دورة واحدة لكل بايت باستخدام تعليمات NEON الجوهرية. ويتطلب AES-CMAC عملية واحدة على كتلة AES لكل كتلة بحجم 16 بايتًا. وبالنسبة إلى البيانات الكبيرة، يتفوق Poly1305 على CMAC في العتاد الذي لا يدعم AES-NI.
خصائص الأمان
يتمتع CMAC بعدم قابلية التزوير الوجودي في ظل هجوم بالرسائل المختارة، بافتراض أن AES تبديل شبه عشوائي. أما Poly1305 فهو آمن أمنيًا من منظور نظرية المعلومات عند استخدام مفتاح عشوائي حقيقي يُستعمل مرة واحدة؛ ويكون احتمال التزوير على الأكثر 8*ceil(L/16)/2^106.
حالات الاستخدام
CMAC: WPA2 وS/MIME وسلامة أنظمة الملفات. Poly1305: TLS 1.3 عبر ChaCha20-Poly1305، وشبكة WireGuard الافتراضية الخاصة، وبروتوكول Signal، وإطار عمل Noise Protocol. ويُستخدم كلاهما على نطاق واسع في الأنظمة الحديثة عالية الأمان.
تحقق سريع
أي MAC يُستخدم في AEAD ChaCha20-Poly1305؟
مراجعة
لقد تعلّمتم بناء CMAC المعتمد على CBC والحسابات متعددة الحدود في Poly1305. وكلاهما MAC آمن ثابت الزمن، ويُستخدم في بروتوكولات حقيقية. التالي: TLS/HTTPS وكيفية تركيب جميع هذه البدائيات معًا.
الأسئلة الشائعة
هل درس «CMAC وPoly1305: رموز MAC المعتمدة على تشفير الكتل» مجاني؟
نعم — نص درس «CMAC وPoly1305: رموز MAC المعتمدة على تشفير الكتل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ماذا ستتعلم في «CMAC وPoly1305: رموز MAC المعتمدة على تشفير الكتل»؟
قارن CMAC وPoly1305 كبديلين لرموز MAC المعتمدة على دوال التجزئة تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟
لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «CMAC وPoly1305: رموز MAC المعتمدة على تشفير الكتل»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟
نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مفاهيم MAC وهجمات تمديد الطول
- بنية HMAC وبرهان الأمان
- HMAC في واجهات API: توقيع الطلبات
- CMAC وPoly1305: رموز MAC المعتمدة على تشفير الكتل