رمز مصادقة الرسالة القائم على التلبيد

في علم التشفير، HMAC (وهي اختصار لـ رمز مصادقة الرسالة استناداً على التجزئة ذات المفتاح أو رمز مصادقة الرسالة استناداً على التجزئة هاش) هي نوع معين من رمز مصادقة الرسائلة (MAC) متضمنةً لدالة التجزئة التشفيرية ولمفتاح تشفيري سري.

 الاستخدامات 
يمكن استخدام رمز مصادقة الرسالة القائم على التلبيد( HMAC) للتحقق من سلامة البيانات  وصحة الرسالة في الوقت ذاته، تمامًا كما هو الحال مع أي رمز مصادقة رسالة آخر. يمكن استخدام أي دالة تلبيد تعموية مثل SHA-256 أو SHA-3 في حساب HMAC (رمز مصادقة الرسالة استنادًا على التجزئة).

 الخوارزمية 
يُرمز لخوارزمية رمز مصادقة الرسالة بالشكل HMAC-X، وفيه تُمثِّل X عن دالة التلبيد المستخدمة (مثلاً: HMAC-SHA256 أو HMAC-SHA3). تعتمد قوة التعمية على قوة دالة التلبيد التعموية المستخدمة، وعلى مقاس الخرج المُلبَّد وعلى مقاس المفتاح ونوعه.

يعتمد رمز المصادقة دورتين لحساب التلبيد: يستخدم المفتاح السري ليشتق منه مفتاحين – واحد داخلي والآخر خارجي. ينتج عن الدورة الأولى قيمة مُلبَّدة مشتقة من الرسالة ومن المفتاح الداخلي. وينتج من المرور الثاني رمز مصادقة الرسالة النهائي وهو مشتق من التلبيد الداخلي الناتج عن الدورة الأولى ومن المفتاح الخارجي. وهكذا توفر الخوارزمية حصانة أفضل ضد هجمات تمديد الطول.

 دالة التلبيد 
تُجزِّء دالة التلبيد التكرارية الرسالة إلى عدة وحدات مُجمَّعة ذات حجم ثابت، وتتكرر عليها باستخدام دالة ضغط. على سبيل المثال: تعالج الدالة SHA-256 وحدات مُجمَّعة طولها 512 بتاً. حجم خرج رمز المصادقة يساوي حجم دالة التلبيد المستخدمة (مثل: 256 و1600 بتاً في حالة استخدام الدوال SHA-256 وSHA-3 على التوالي)، مع أن إمكانية اقتطاعه عند الحاجة.

 عدم التشفير 
لا يُعمِّي رمز المصادقة الرسالة. بدلًا من ذلك، يجب إرسال الرسالة، سواء كانت معماة أم لا، إلى دالة تجزئة تعموية. يقوم الأطراف الذين يمتلكون المفتاح السري بتجزئة الرسالة مرة أخرى بأنفسهم، وإذا كانت الرسالة أصلية، فستتطابق التجزئتان المستلمة والمحسوبة.

 التاريخ 
نُشر تعريف وتحليل بناء HMAC لأول مرة في عام 1996 في ورقة كتبها Mihir Bellare و Ran Canetti و Hugo Krawczyk ،  وكتبوا أيضًا RFC 2104 في عام 1997. حددت ورقة عام 1996 أيضًا متغيرًا متداخلًا يُسمى NMAC. يقوم FIPS PUB 198 بتعميم وتوحيد استخدام HMACs.

 الاستخدامات في البروتوكولات 
يستخدم رمز مصادقة الرسالة القائم على التلبيد في حزمة أمن بروتوكول الإنترنت وبروتوكول طبقة المقابس الآمنة.

 تعريف HMAS وصيغته 
HMAC  هو رمز مصادقة الرسالة القائم على التلبيد، وهذا التعريف مأخوذ من RFC 2104:

ويمكن تعريفه بالصورة التالية:


حيث:

 -H هي دالة تلبيد تعموية
 -M هي الرسالة المراد المصادقة عليها
 -K هو المفتاح السري
 -K ''' هو مفتاح بحجم الوحدة المُجمَّعة مشتق من المفتاح السري K ؛ إما عن طريق الحشو إلى اليمين بصفر يصل إلى حجم الوحدة المُجمَّعة، أو بالتخفيض إلى أقل من حجم الوحدة المُجمَّعة أولًا ثم الحشو إلى اليمين باستخدام الأصفار
 || يدل على الضم
 ⊕ يدل على عملية  (XOR).
 opad'' عبارة عن حشوة خارجية بحجم الوحدة المُجمَّعة، تتكون من وحدات بايت متكررة بقيمة 0x5c
  هو حشوة داخلية بحجم الوحدة المُجمَّعة، تتكون من وحدات بايت متكررة بقيمة 0x36

 هوامش 

 المراجع 

 وصلات خارجية 

 RFC2104
 أداة إنشاء / اختبار HMAC عبر الإنترنت
 FIPS PUB 198-1 ، رمز مصادقة رسالة التلبيد- HMAC
 تنفيذ HMAC
 تنفيذ Python HMAC
 تنفيذ جافا
 أداة اختبار HMAC-SHA-256 عبر الإنترنت

تصنيف:تلبيد (حوسبة)