مفتاح واحد لـ MAC

تُعدّ رموز التحقق من صحة الرسائل ذات المفتاح الواحد ( OMAC ) مجموعة من رموز التحقق من صحة الرسائل ، وهي مبنية على تشفير كتلي يشبه إلى حد كبير خوارزمية CBC-MAC . ويمكن استخدامها لضمان صحة البيانات، وبالتالي سلامتها. يوجد منها إصداران:

برنامج OMAC مجاني لجميع الاستخدامات: فهو غير مشمول بأي براءات اختراع. [ 4 ]

تاريخ

جوهر خوارزمية CMAC هو شكل معدل من خوارزمية CBC-MAC التي اقترحها بلاك وروغواي وحللاها تحت اسم "XCBC" [ 5 ] وقدموها إلى المعهد الوطني للمعايير والتكنولوجيا (NIST) [ 6 ] . تعالج خوارزمية XCBC بكفاءة أوجه القصور الأمنية في خوارزمية CBC-MAC، ولكنها تتطلب ثلاثة مفاتيح.

اقترح إيواتا وكوروساوا تحسينًا لخوارزمية XCBC يتطلب كمية أقل من مواد المفاتيح (مفتاح واحد فقط)، وأطلقوا على الخوارزمية الناتجة اسم One-Key CBC-MAC (OMAC) في أبحاثهم. [ 1 ] ثم قدموا لاحقًا خوارزمية OMAC1 (= CMAC)، [ 2 ] وهي نسخة محسّنة من OMAC، بالإضافة إلى تحليل أمني إضافي. [ 7 ]

الخوارزمية

لإنشاء علامة CMAC ( t ) مكونة من بت لرسالة ( m ) باستخدام تشفير كتلة مكون من b بت ( E ) ومفتاح سري ( k )، يتم أولاً إنشاء مفتاحين فرعيين مكونين من b بت ( k1 و k2 ) باستخدام الخوارزمية التالية (وهذا يكافئ الضرب في x و x2 في حقل منتهٍ GF(2b ) ). لنفترض أن ≪ يرمز إلى عامل الإزاحة إلى اليسار القياسي ، و⊕ يرمز إلى عملية XOR الثنائية .

  1. احسب القيمة المؤقتة k 0 = E k (0).
  2. إذا كانت قيمة msb( k0 ) تساوي صفرًا، فإن k1 = k0 1، وإلا فإن k1 = ( k0 1) ⊕ C ؛ حيث C ثابت معين يعتمد فقط على b . (وتحديدًا، C هي المعاملات غير الرئيسية لكثير الحدود الثنائي غير القابل للاختزال من الدرجة والذي يحتوي على أقل عدد من الآحاد: 0x1B لكتل ​​64 بت، و0x87 لكتل ​​128 بت، و 0x425 لكتل ​​256 بت).
  3. إذا كان msb( k 1 ) = 0 ، فإن k 2 = k 1 ≪ 1 ، وإلا فإن k 2 = ( k 1 ≪ 1) ⊕ C .
  4. إرجاع المفاتيح ( k1 ، k2 ) لعملية إنشاء رمز المصادقة (MAC ) .

كمثال بسيط، لنفترض أن b = 4 ، و C = 0011 2 ، و k 0 = E k (0) = 0101 2. عندئذٍ k 1 = 1010 2 و k 2 = 0100 ⊕ 0011 = 0111 2 .

تتم عملية إنشاء علامات CMAC على النحو التالي:

  1. قسّم الرسالة إلى كتل مكونة من b بت، حيث m = m1 ... mn −1 mn ، و m1 ، ... ، mn −1 هي كتل كاملة. (تُعامل الرسالة الفارغة ككتلة غير كاملة).
  2. إذا كانت m n كتلة كاملة فإن m n ′ = k 1m n وإلا فإن m n ′ = k 2 ⊕ ( m n ∥ 10...0 2 ) .
  3. ليكن c 0 = 00...0 2 .
  4. بالنسبة لـ i = 1، ...، n − 1 ، احسب c i = E k ( c i −1m i ) .
  5. c n = E k ( c n −1m n ′)
  6. الناتج t = msb ( c n ) .

تتم عملية التحقق على النحو التالي:

  1. استخدم الخوارزمية المذكورة أعلاه لإنشاء الوسم.
  2. تأكد من أن الوسم المُنشأ يساوي الوسم المُستلم.

المتغيرات

CMAC-C1 [ 8 ] هو نوع مختلف من CMAC يوفر ضمانات أمان إضافية للالتزام واكتشاف السياق .

التطبيقات

مراجع

  1. 1 2 إيواتا، تيتسو؛ كوروساوا، كاورو (24-02-2003). "OMAC: خوارزمية مصادقة الرسائل CBC بمفتاح واحد". التشفير البرمجي السريع . سلسلة محاضرات في علوم الحاسوب. المجلد  2887. سبرينغر، برلين، هايدلبرغ. الصفحات 129-153 . doi : 10.1007/978-3-540-39887-5_11 . ISBN  978-3-540-20449-7.
  2. 1 2 3 إيواتا، تيتسو؛ كوروساوا، كاورو (2003). "OMAC: خوارزمية مصادقة الوسائط CBC ذات المفتاح الواحد - ملحق" (ملف PDF) . في هذه المذكرة، نقترح OMAC1، وهو خيار جديد لمعاملات عائلة OMAC (انظر [4] للتفاصيل). كما نعرض متجهات الاختبار. وبناءً على ذلك، نعيد تسمية OMAC السابق إلى OMAC2. (أي أن متجهات اختبار OMAC2 قد عُرضت بالفعل في [3]). نستخدم OMAC كاسم عام لكل من OMAC1 وOMAC2.{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal=
  3. دوركين، موريس (2016). "توصية بشأن أوضاع تشغيل تشفير الكتلة: وضع CMAC للمصادقة" (ملف PDF) . doi : 10.6028/nist.sp.800-38b .{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal=
  4. روغاواي، فيليب. " CMAC: غير مرخص" . تم الاطلاع عليه بتاريخ 27 مايو 2020. بيان فيليب روغاواي بشأن وضع الملكية الفكرية لشركة CMAC
  5. بلاك، جون؛ روجاواي، فيليب (20 أغسطس 2000). التطورات في علم التشفير - CRYPTO 2000. سبرينغر، برلين، هايدلبرغ. الصفحات 197-215 . doi : 10.1007/3-540-44598-6_12 . ISBN  978-3540445982.
  6. بلاك، ج؛ روجاواي، ب. "اقتراح للتعامل مع الرسائل ذات الطول العشوائي باستخدام CBC MAC" (PDF) .{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal=
  7. ^ إيواتا، تيتسو؛ كوروساوا ، كاورو (2003/12/08). “حدود أمنية أقوى لـ OMAC وTMAC وXCBC”. في يوهانسون، توماس؛ ميترا، سوبهاموي (محرران). التقدم في علم التشفير – INDOCRYPT 2003 . ملاحظات محاضرة في علوم الكمبيوتر. المجلد. 2904. سبرينغر برلين هايدلبرغ. ص 402 – 415. سيتيسيركس 10.1.1.13.8229 . دوى : 10.1007/978-3-540-24582-7_30 . رقم ISBN    9783540206095.
  8. ^ بوميك، ريتام. تشاكرابورتي، بيشواجيت؛ تشوي، وونسوك؛ دوتا، أفيجيت؛ جوفيندين، جيروم. شين ياوبين (2024). "الالتزام بأمان أجهزة MAC مع تطبيقات التركيب العام" . في ريزين ليونيد. ستيبيلا، دوغلاس (محرران). التقدم في علم التشفير – التشفير 2024 . ملاحظات محاضرة في علوم الكمبيوتر. المجلد. 14923. شام: سبرينغر نيتشر سويسرا. ص 425 – 462. دوى : 10.1007 / 978-3-031-68385-5_14 . رقم ISBN   978-3-031-68385-5.
  9. "Impacket عبارة عن مجموعة من فئات بايثون للعمل مع بروتوكولات الشبكة: SecureAuthCorp/impacket" . 15 ديسمبر 2018 - عبر GitHub.
  10. "امتداد Ruby C لدالة التجزئة المفتاحية AES-CMAC (RFC 4493): louismullie/cmac-rb" . 4 مايو 2016 - عبر GitHub.