**خوارزمية أم دي 5** أو **خوارزمية هضم الرسالة الخامسة** (بالإنجليزية: Message Digest MD5 algorithm)‏ هي دالة الاختزال المسمّاة دالة هاش تشفيرية (Message Digest) والتي تُعتبر من أكثر دوال الاختزال انتشارًا في علم التشفير وأمن المعلومات نظرًا لسهولة تنفيذها وصعوبة اختراقها. يشمل ذلك نظرة سريعة على أهميّتها، طريقة تطويرها من النظريّة التي تتّبعها ومُخرجاتها، والنسخ السابقة لها إم دي2, إم دي4 المطوّرة في مختبرات إم آي تي MIT عن طريق الدكتور رونالد ريفست.
يُفرّق أيضًا بين MD5 وبقيّة دوال الاختزال عن طريق أبرز خصائصها التقنيّة ومميّزاتها، ثُم يوضّح بشيءٍ من التفصيل خطوات تنفيذها بدءًا من طريقة الاختزال، مرورًا بالجولات الأربع انتهاءً باختزال الرسالة الأصليّة إلى شكلها النهائيّ.
وأخيرًا يُلقي هذا المقال نظرة سريعة على عيوب ونقاط ضعف هذه الدالّة نسبةً إلى ثباتها أمام محاولات الاختراق، وسلسلة محاولات الكسر الناجحة التي حصلت عليها مُنذ بداية تطويرها.

MD5 أو خوارزمية خلاصة الرسالة 5 (Message-Digest 5)
--------------------------------------------------

تُعد دالة هاش تشفيرية (Message Digest) من أكثر دوال الاختزال انتشارًا، وقد صُمّمت في نسختها الأوليّة (MD2) عام 1989م عن طريق الدكتور رونالد ريفست أستاذ الحاسب في معهد ماساتشوستس للتقنية (MIT)، وتم تطويرها إلى نسخة (MD5) عن طريق مطوّرها نفسه عام 1991م بعد أن تمّت دراسة خواصّ الأمن فيها وتغطية ثغرات سابقتها لفترة طويلة.
تستخدم MD5 دالّة ميركل ديمقارد (Merkle–Damgård construction)، وتقوم على اختزال رسالة ذات طول متغيّر إلى طول ثابت هو 128 بت بغضّ النظر عن طولها الأصليّ، حيث يتم تحويل الرسالة إلى حزم (blocks) طول كُلّ منها 512 بت بغرضِ اختزالها في خطواتٍ لاحقة. من الجدير بالذكر أنّ أي تغيير مهما كان حجمه في النصّ الأصليّ يُنتج قيمة اختزال مختلفة تمامًا عن القيمة السابقة، أو هو ما تحاول الدالّة تحقيقه خلاص

خواص خوارزميّة التشفير MD5
--------------------------

تتميّز MD5 عن غيرها من دوال الاختزال في عدّة نقاط:

1.سهلة التنفيذ وقليلة التكلفة.

2.تُوفّر مخرجًا مختلفًا لكلّ مدخل مهما صغر الفرق بينهم وهو ما يُسمّى بالبصمة (Fingerprint).
jkjhk
3.استحالة الرّجوع من قيمة الاختزال إلى الرسالة الأصليّة.

خطوات عمل خوارزميّة التشفير MD5
-------------------------------

إحدى خطوات الاختزال في دالة MD5، تتكرر هذه العملية 64 مرة في هذه الدالة مقسة إلى 4 جولات تحتوي كل منها على 16 عملية. F هي عملية غير خطيّة. Mi هي كتلة بحجم 32بت من الرسالة المدخلة Ki هو ثابت بحجم 32 بت يتغير في كل عملية، left shift *s* تشير إلى عملية دوران حول اليسار بمقدار s،الجمع يشير إلى عملية الجمع
الانتقال بين الجولات في دالة إم دي5
خطوات اختزال النصوص عن طريق MD5 هي:

1. إضافة الحشو (Padding): في هذه الخُطوة نقوم بإسناد أجزاء (bits) إضافيّة للنّص الأصليّ، ويتم ذلك في مرحلتين:
أ. نبدأ بإضافة 1 ثُم نملأ البقيّة بالأصفار حتّى يصبح طول الرسالة منسجمًا مع 448 % 512 (أي أننا نُضيف حتّى يُصبح الطّول أقل ب 64 بت من أن يقبل القسمة على 512).

ب. إضافة طول الرسالة: 64 بت تُضاف لنهاية الرسالة تُحدّد طولها الأصليّ بالبايات (Bytes) بعد تحويل الرقم إلى صيغته الثنائيّة (Binary).
في حال كانت الرسالة طويلة جدًا وكان التمثيل الثنائي لعددها أكثر من 64 بت، فإنّ الأجزاء ذات الترتيب المنخفض (low-order bits) هي التي تُستخدم فقط.
بعد هذه الخطوة يُصبح طول الرسال 512 س، حيث س هو أي عدد موجب.

2. التقسيم (Partition): يتم في هذه الخطوة تقسيم الرسالة إلى حزم طول كل حزمة منها 512 بت.

3. تعريف المساحة التخزينيّة (Initialize MD Buffer): يتم فيها تعريف مساحة بطول 4 كلمات (four-word buffer) طول كل واحدة منها 32 بت، تُعرّف مسبقًا بالقيم التالية:

A: 01 23 45 67

B: 89 ab cd ef

C: fe dc ba 98

D: 76 54 32 10

4. التنفيذ (Processing): ابتداءً نُعرّف 4 دوال مساعدة تأخذ كل منها مدخلاً مكوّنًا من 3 كلمات، كل كلمة عبارة عن 32 بت، وتُخرج كلمة واحدة مكوّنة من 32 بت أيضًا.

F(X,Y,Z) = XY v not(X) Z

G(X,Y,Z) = XZ v Y not(Z)

H(X,Y,Z) = X xor Y xor Z

I(X,Y,Z) = Y xor (X v not(Z))

تمرّ كل حزمة من البيانات بِأربع جولات (4 rounds) متتالية، تتكوّن كل جولة منها من 16 خطوة. نستخدم في كل خطوة جدولاً مُكوّنًا من 64 خانة T[1 ... 64] يتم حسابها عن طريق دالّة sine وتساوي T[i]= 4294967296 times aps(Sin(i)) حيث تحسب i بالراديان.

نقوم بتطبيق المعادلة التالية في كل خطوة:

a = b + ((a + g(b,c,d) + X[k] + T[i]) <<<s)

حيث أنّ:

g هي إحدى الدّوال المساعدة سابقة الذكر.

العمليّة + هي عمليّة الجمع % 2^32 (=% 4294967296)

a,b,c,d هي المساحات التخزينيّة المعرفة، وتُستخدم بترتيب محدّد في كل خطوة.

<<<s هي مقدار واتجاه الإزاحة (shifting)؛ إزاحة إلى اليسار بمقدار s.

X[k] = M[i\*16+k] حيث k تتغيّر من 0 .. 15 في كل خطوة.

تُطبّق هذه المعادلة 16 مرّة في كل جولة، ثُم تكون مُدخلاً للجولة القادمة وهكذا.

5. المُخرجات (Output):

تُخرج هذه الدالّة المخرجات في A,B,C,D بالترتيب ابتداءً بالبت الأقل رتبة في A إلى الأعلى رتبة في D.

تطبيقات خوارزمية التشفير MD5
----------------------------

1. التأكيد على صحّة الملفّات (Data Integrity):

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

2. علم التوقيع الرقمي (Digital Signature):

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

تضمن MD5 تفرّد قيمة الاختزال في مجال قدره 2^64 والذي عُدّ رقمًا مناسبًا لاستخدام التواقيع الرقمية حتّى تم اختراقها.

3. كلمة المرور (استيقان) (Password): (Authentication)

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

كسر خوارزمية التشفير MD5
------------------------

جرت الكثير من المحاولات لكسر هذه الخوارزمية عن طريق brute force attack على سبيل المثال، ولكن باء أكثرُها بالفشل بينما نجح البعض منها نجاحًا جُزئيًا حتى تم اختراقها وأُعلن أنّه يجب إيقاف استخدامها للملفّات المهمة والتواقيع الرقميّة في السنوات القريبة الماضية:

1. في عام 2004 استطاع العالمان Xiaoyun Wang و Hongbo Yu إيجاد تصادم في هذه الخوارزميّة، عن طريق إيجاد حزمتين مختلفتين تصلان لنفس قيمة الاختزال، وقد تم نشرها في ورقة بحث بعنوان: كيفيّة خرق MD5 ودوال الاختزال الأخرى 

2. في عام 2007 طوّر مارك ستيفنز في رسالته الماجستير طريقة لاختراق MD5 عُرفت باسم: اصطدام البادئة المُختارة (chosen-prefix collisions)، تستغرق ما بين 15 إلى ساعة لتصنيع الاصطدام في أجهزة الكمبيوتر العاديّة.

مراجع
-----

1. ↑  Xiaoyun Wang and Hongbo Yu. "How to Break MD5 and Other Hash Functions" (PDF). مؤرشف من الأصل (PDF) في 2018-03-29. اطلع عليه بتاريخ 2009-12-21.

وصلات خارجية
------------

* توصيات W3C على MD5
* مولد MD5 على الإنترنت
* أداة MD5 مرتكزة على نظام التشغيل

* أيقونة بوابةبوابة أمن المعلومات
* أيقونة بوابةبوابة إنترنت
* أيقونة بوابةبوابة تعمية
* أيقونة بوابةبوابة علم الحاسوب

| * ع
* ن
* ت
مواضيع علم التعمية |
| --- |
| مصطلحات رئيسة | تعمية كتل • تعمية تيار بيانات متدفقة • سرية كاملة • تعمية بالمفتاح المتناظر • تعمية باستخدام المفتاح العام • توقيع رقمي |
| تعمية تقليدية | آلة تعمية • تعمية استبدال • شفرة قيصر • شفرة فيجينير • شفرة فيرنام • شفرة بلايفير • ألترا (تعمية) • مقالة مختارة آلة إنجما • عداد الدورات • حاسوب كلوسوس • آلة التعمية من النوع ب • جيد (محرك لعبة) • سحر |
| تعمية بالمفتاح المتناظر | لوحة المرة الواحدة • معيار التعمية المتقدم • 3DES • معيار تعمية البيانات • RC4 |
| تعمية باستخدام المفتاح العام | خوارزمية آر إس إيه • شفرة رابين • توقيع رابين الرقمي • شفرة الجمل • توقيع الجمل الرقمي • DSA • شفرة بلوم وغولدفاسر • تعمية بالمنحنيات الإهليلجية |
| بروتوكول تعمية | تبادل مفتاح ديفي-هيلمان • برتوكول تحدي-جواب • برتوكول كيرباروس • برهان معرفة صفرية • برتوكول فييجة-فيات-شمير • نقل نَسَّاء • تشارك سر • بروتوكول طبقة المنافذ الآمنة • بروتوكول النقل الآمن |
| الاساسات النظرية | مولد الاعداد شبه العشوائية • دالة وحيدة الاتجاه • تبادلية وحيدة الاتجاه • بت صعب • عائلة دوال شبه عشوائية • دالة هاش تعميةية |
| مسائل رياضية:فك التعمية وخوارزميات | بحث شامل • تحليل ترددات • مسألة اللوغاريثم المتقطع • حساب المؤشرات • تحليل عدد صحيح إلى عوامل • الغربال التربيعي • خوارزمية rho لبوراد • غربال حقل الاعداد • خوارزمية ميلر رابين • تحليل شفرات تفاضلي • تحليل الشفرات الخطي |
| المصادقة والتحقق من الهوية | كلمة المرور • شفرة تصديق الرسالة • SHA • إم دي5 • MD4 |
| مواضيع مصاحبة | عدد عشوائي • عدد أولي • زيادة (نظرية المعلومات) • مفتاح المكالمة • تعمية بإخفاء • تعمية كمومي • مبادئ كيرشوف • أمن المعلومات • تعمية مرئي • أليس وبوب (تعمية) • الطرف الموقع باستخدام المفتاح |