مرجع
آخر الزيارات

إم دي5

1٬024 كلمة•0 مشاهدة•🗒️ منذ يوم
باختصار: خوارزمية أم دي 5 أو خوارزمية هضم الرسالة الخامسة هي دالة الاختزال المسمّاة دالة تلبيد معمى (Message Digest) والتي تُعتبر من أكثر دوال الاختزال انتشارًا في علم التعمية وأمن المعلومات نظرًا لسهولة تنفيذها وصعوبة اختراقها. في هذه المقالة 8 أقسام: «D: 76 54 32 10»، «خواص خوارزميّة التشفير MD5» و«خطوات عمل خوارزميّة التشفير MD5» وغيرها.
المحتويات
  1. D: 76 54 32 10
  2. خواص خوارزميّة التشفير MD5
  3. خطوات عمل خوارزميّة التشفير MD5
  4. تطبيقات خوارزمية التشفير MD5
  5. F(X,Y,Z) = XY v not(X) Z
  6. jkjhk
  7. كسر خوارزمية التشفير MD5
  8. H(X,Y,Z) = X xor Y xor Z

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

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

من جانب آخر، تُعد دالة هاش تشفيرية (Message Digest) من أكثر دوال الاختزال انتشارًا، وقد صُمّمت في نسختها الأوليّة (MD2) عام 1989م عن طريق الدكتور رونالد ريفست أستاذ الحاسب في معهد ماساتشوستس للتقنية (MIT)، وتم تطويرها إلى نسخة (MD5) عن طريق مطوّرها نفسه عام 1991م بعد أن تمّت دراسة خواصّ الأمن فيها وتغطية ثغرات سابقتها لفترة طويلة.

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

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

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

D: 76 54 32 10

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

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

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

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

من جهة ثانية، 2.تُوفّر مخرجًا مختلفًا لكلّ مدخل مهما صغر الفرق بينهم وهو ما يُسمّى بالبصمة (Fingerprint).

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

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

وفي هذا الصدد، بعد هذه الخطوة يُصبح طول الرسال 512 س، حيث س هو أي عدد موجب.

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

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

ومن ناحية أخرى، ب. إضافة طول الرسالة: 64 بت تُضاف لنهاية الرسالة تُحدّد طولها الأصليّ بالبايات (Bytes) بعد تحويل الرقم إلى صيغته الثنائيّة (Binary).

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

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

  • A: 01 23 45 67
  • B: 89 ab cd ef
  • C: fe dc ba 98

خطوات اختزال النصوص عن طريق MD5 هي:

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

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

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

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

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

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

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

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

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

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

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

jkjhk

3.استحالة الرّجوع من قيمة الاختزال إلى الرسالة الأصليّة.

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

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

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

  • مراجع
  • وصلات خارجية
  • توصيات W3C على MD5
  • مولد MD5 على الإنترنت

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

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

  • نقوم بتطبيق المعادلة التالية في كل خطوة:
  • 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):

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,C,D بالترتيب ابتداءً بالبت الأقل رتبة في A إلى الأعلى رتبة في D.

ما رأيك في هذه المقالة؟

📝 هل في هذه المقالة خطأ؟

إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.