Disqus Shortname

الثلاثاء، 12 سبتمبر 2017

ما هو md5 ؟ < مقالة >



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

على سبيل المثال :


الكلمة الأصلية : ContexDev -- كود الـ md5 المشفر : cd1853fbb11519a76aad7d043f1dbeb7
الكلمة الأصلية : contexdev -- كود الـ md5 المشفر : 5d7967e80071b14cf54bec5d4454fb5c

نلاحظ هنا أن ما تم تغيير فقط هو حالة الاحرف C و D من حروف كبيرة إلى صغيرة ، هذا التغيير البسيط نتج عنه كود MD5 مختلف تماماً ، هذا التغيير هو احد نقاط القوة في هذا التشفير و الذي يجعله صعب جدا جدا جدا كسر تشفيرة .

تتميز دوال الـ MD5 بالتالي :


1. سهله التنفيذ و سريعة ، حيث يمكنك توليد شفرات الـ MD5 خلال ثوانٍ من عدة مواقع على الانترنت .
2. توفير مخرج مختلف لكل مدخل مهما كان الاختلاف بسيط و هذا ما يسمى بالبصمة
Fingerprint ( انظر المثال السابق بالأحمر ) ، هذا يعزز من استحالة كسرها ( استحالة الرجوع للقيمة الاصلية ) .

كيف يتم عمل كود الـ MD5 ؟

يتم توليد الشفرة في 5 مراحل :

1. الإضافة Padding : في هذة الخطوة يتم اضافة اجزاء اضافية للنص الاصلي حتى يصبح الطول النهائي للرسالة 512x حيث x هو أي عدد زوجي .
2. التقسيم Partition : في هذة الخطوة يتم تقسيم الرسالة إلى حزم طول كل منها 512 bit .
3. تعريف المساحة التخزينية initialize MD buffer : يتم في هذة الخطوة تعريف مساحة بطول 4 كلمات ، طول كل منها 32 بت .
4. التنفيذ Processing : نعرف 4 دوال مساعدة تأخذ كل منها 3 كلمات ، كل كلمة عبارة عن 32 بت و تخرج كلمة واحدة مكونه من 32 بت أيضاً .
5. المخرجات Output : تُخرج هذه الدالّة المخرجات في A,B,C,D بالترتيب ابتداءً بالبت الأقل رتبة في A إلى الأعلى رتبة في D.



هل يمكن فك تشفير MD5 ؟

جرت الكثير من المحاولات لكسر هذه الخوارزمية عن طريق brute force attack ( الهجوم الأعمى ) على سبيل المثال، ولكن باء أكثرُها بالفشل بينما نجح البعض منها نجاحًا جُزئيًا حتى تم اختراقها وأُعلن أنّه يجب إيقاف استخدامها للملفّات المهمة والتواقيع الرقميّة في السنوات القريبة الماضية:
1. في عام 2004 استطاع العالمان Xiaoyun Wang و Hongbo Yu إيجاد تصادم في هذه الخوارزميّة، عن طريق إيجاد حزمتين مختلفتين تصلان لنفس قيمة الاختزال، وقد تم نشرها في ورقة بحث بعنوان: كيفيّة خرق MD5 ودوال الاختزال الأخرى.
2. في عام 2007 طوّر مارك ستيفنز في رسالته الماجستير طريقة لاختراق MD5 عُرفت باسم: اصطدام البادئة المُختارة (chosen-prefix collisions)، تستغرق ما بين ساعة الى 15 ساعة لتصنيع الاصطدام في أجهزة الكمبيوتر العاديّة.


لكن بشكل عام ، يكاد يستحيل اختراق هذا التشفير و لهذا السبب تستخدمة معظم المواقع في تشفير البيانات المهمة كـ كلمات المرور للأعضاء .


إذا كان يستحيل فك التشفير بـ MD5 ، فـ كيف يمكن للمواقع التي تستخدمة فك التشفير في كل مرة يسجل العضو دخوله فيها لتتأكد من صحة البيانات قبل تسجيل الدخول ؟



في الواقع لا تقوم المواقع بفك التشفير في كل مرة للتأكد من صحة البيانات ، لكن عوضاً عن ذلك تستخدم القواميس لتسجيل البيانات و ما يقابلها بالـ MD5 ، مثال لتوضيح آليه العمل :


المصدر : ما هو الـ md5 ؟ و كيف يمكن التشفير به ؟ و هل يمكن فك التشفير ؟ - كونتكس ديف ContexDev


from :: TRAIDNT FORUM :: - ركن لغات البرمجه http://ift.tt/2eRuNNw
via IFTTT

ليست هناك تعليقات:

إرسال تعليق

شبكة تريدنت ويب © 2014. All Rights Reserved | Powered By Blogger | Blogger Templates

Designed by- Dapinder