MD5 یک الگوریتم هش 128 بیتی است که توسط دانشمند رونالد ال. ریوست در اوایل دهه 1990 ایجاد شد. مخفف MD5 مخفف Message Digest نسخه 5 است.
رمزگذاری MD5 بر اساس هش است، که شامل تشکیل "اثر انگشت" یا "مجموع" به منظور تأیید بیشتر صحت آنها است. با استفاده از این روش، می توانید یکپارچگی اطلاعات و همچنین ذخیره سازی هش رمز عبور را تأیید کنید.
سابقه MD5
تاریخچه الگوریتم خلاصه پیام (MD5) در سال 1991 آغاز می شود، زمانی که استاد MIT رونالد ال. ریوست در مورد ایجاد الگوریتم جدیدی که جایگزین MD4 منسوخ شده بود گزارش داد. همانطور که بعدها هانس دوبرتین رمزنگار آلمانی نوشت، در مورد MD4، در واقع تعدادی کاستی در آن یافت شد.
Rivest الگوریتم جدید MD5 را در RFC 1321 توصیف کرد.
کار بر روی الگوریتم توسط محققان برت دن بوئر و آنتون بوسلرز ادامه یافت، که در سال 1993 امکان شبه برخورد در MD5 را ثابت کردند، زمانی که بردارهای اولیه متفاوت می توانند با هضم های پیام مشابه مطابقت داشته باشند.
بعلاوه، در سال 1996 هانس دابرتین ادعا کرد که یک برخورد در MD5 پیدا کرده است. در آن زمان، الگوریتمهای هشسازی ترجیحیتر مانند توابع هش رمزنگاری RIPEMD-160 - که توسط Hans Dobbertin، Anton Bosselars و Bart Prenel، Whirlpool توسعهیافتهاند - توسط Vincent Raymen و Paulo Barreto و الگوریتم هش رمزنگاری SHA-1 ایجاد شدهاند، شناخته شدند.
با توجه به اندازه هش نسبتاً کوچک (128 بیت) در MD5، در مورد احتمال حملات تولد صحبت شده است. پروژه MD5CRK که توسط ژان لوک کوک در سال 2004 راه اندازی شد، هدف آن بررسی آسیب پذیری الگوریتم با استفاده از حملات تولد بود. اما، پس از پنج ماه، در 17 آگوست 2004، این پروژه به دلیل کشف یک آسیبپذیری در الگوریتم توسط گروهی از رمزنگاران چینی به رهبری لای زوجیا محدود شد.
در مارس 2005، ریاضیدانان و رمزنگاران Benne de Weger، Arjen Lenstra و Wang Xiaoyun دو سند X.509 با هش یکسان و کلیدهای عمومی متفاوت ایجاد کردند.
یک سال بعد، در مارس 2006، الگوریتمی توسط رمزنگار چک Vlastimil Klima منتشر شد که به شما امکان می دهد برخوردها را در یک کامپیوتر ساده فقط در یک دقیقه تعیین کنید. این الگوریتم به روش "تونل زنی" معروف شد.
در نتیجه تجزیه و تحلیل نتایج کار، در سال 2008، بخش اداره امنیت سایبری ملی وزارت امنیت داخلی ایالات متحده (US-CERT) توصیه کرد که همه کسانی که در توسعه شرکت داشتند، نرم افزارها، وب سایت ها و همچنین کاربران شبکه، استفاده از الگوریتم MD5 را صرف نظر از هدف استفاده از آن متوقف می کنند. دلیل چنین توصیه ای غیرقابل اعتماد بودن بود که او در روند مطالعه آن نشان داد.
در دسامبر 2010، Tao Xie و Feng Denguo، رمزشناسان چینی، برخورد پیام 512 بیتی (یک بلوک) را کشف کردند. پیش از این، برخوردها فقط در پیام هایی با طول دو بلوک یا بیشتر مشاهده می شد. بعداً مارک استیونز با انتشار بلوک هایی با همان هش MD5 به نتایج مشابهی دست یافت. او همچنین الگوریتمی برای به دست آوردن برخوردهایی از این نوع توسعه داد.
سند نهایی که به تاریخچه توسعه الگوریتم MD5 پایان داد، درخواست نظرات بود - RFC 6151 (RFC یک سند رسمی است که توسط شورای مهندسی اینترنت (IETF) ایجاد شده است، که مشخصات یک مورد خاص را توضیح می دهد. تکنولوژی)، که در واقع MD5 را به عنوان یک الگوریتم هش ناامن شناسایی کرد. این سند توصیه میکند آن را کنار بگذارید و الگوریتمهای رمزنگاری خانواده SHA-2 را به عنوان جایگزین انتخاب کنید.
الگوریتم MD5 مورد بحث به عنوان یکی از اولین استانداردهای الگوریتم مورد استفاده برای بررسی یکپارچگی فایل ها و ذخیره گذرواژه ها در پایگاه های داده برنامه های وب در نظر گرفته می شود.
اما، در واقع، عملکرد نسبتاً ساده، طول خروجی کوتاه و سادگی عملیات انجام شده، که از مزایای الگوریتم است، معایب آن را نیز مشخص می کند - MD5 به الگوریتم هایی اطلاق می شود که مستعد هک هستند و دارای درجه پایینی از هک هستند. محافظت در برابر حملات تولد