MD5 הוא אלגוריתם hash של 128 סיביות שנוצר על ידי המדען Ronald L. Rivest בתחילת שנות ה-90. הקיצור MD5 מייצג Message Digest Version 5.
הצפנת MD5 מבוססת על hashing, הכוללת יצירת "טביעות אצבע" או "סכומים" על מנת לאמת עוד יותר את האותנטיות שלהן. באמצעות שיטה זו, אתה יכול לאמת את שלמות המידע, כמו גם את האחסון של גיבוב סיסמה.
היסטוריה MD5
ההיסטוריה של אלגוריתם ה-Message Digest (MD5) מתחילה בשנת 1991, כאשר פרופסור MIT רונלד ל. ריבסט דיווח על יצירת אלגוריתם חדש שהחליף את ה-MD4 המיושן. באשר ל-MD4, אכן נמצאו בו מספר ליקויים, כפי שכתב מאוחר יותר הקריפטולוג הגרמני הנס דוברטין.
Rivest תיאר את האלגוריתם החדש של MD5 ב-RFC 1321.
העבודה על האלגוריתם נמשכה על ידי החוקרים Bert den Boer ו-Anton Bosselars, אשר בשנת 1993 הוכיחו את האפשרות של התנגשויות פסאודו ב-MD5, כאשר וקטורים אתחול שונים יכולים להתאים לאותם תקצירי הודעות.
יתר על כן, בשנת 1996, הנס דוברטין טען שמצא התנגשות ב-MD5. באותה תקופה, נודעו אלגוריתמי גיבוב מועדפים יותר, כמו פונקציות הגיבוב ההצפנה RIPEMD-160 - שפותחו על ידי הנס דוברטין, אנטון בוסלרס ובארט פרנל, Whirlpool - שפותחו על ידי וינסנט ריימן ופאולו בארטו ואלגוריתם הגיבוב ההצפנה SHA-1.
בשל גודל ה-hash הקטן יחסית (128 סיביות) ב-MD5, דובר על אפשרות של התקפות יום הולדת. פרויקט MD5CRK, שהושק על ידי ז'אן-לוק קוק ב-2004, נועד לחקור את הפגיעות של האלגוריתם באמצעות התקפות יום הולדת. אבל, לאחר חמישה חודשים, ב-17 באוגוסט 2004, הפרויקט צומצם עקב גילוי של פגיעות באלגוריתם על ידי קבוצת קריפטוגרפים סיניים בראשות Lai Xuejia.
במארס 2005, המתמטיקאים והקריפטוגרפים Benne de Weger, Arjen Lenstra ו-Wang Xiaoyun יצרו שני מסמכי X.509 עם אותו hash ומפתחות ציבוריים שונים.
שנה לאחר מכן, במרץ 2006, פורסם אלגוריתם על ידי הצפנה הצ'כי Vlastimil Klima, המאפשר לקבוע התנגשויות במחשב פשוט בדקה אחת בלבד. אלגוריתם זה נודע כשיטת "מנהור".
כתוצאה מניתוח תוצאות העבודה, בשנת 2008, המליצה החטיבה של מינהל אבטחת הסייבר הלאומי של המשרד לביטחון המולדת האמריקאי (US-CERT) לכל מי שהיה מעורב בפיתוח של תוכנות, אתרי אינטרנט, כמו גם משתמשי רשת, מפסיקים להשתמש באלגוריתם MD5, ללא קשר למטרת היישום שלו. הסיבה להמלצה כזו הייתה חוסר האמינות שהפגין בתהליך לימודה.
בדצמבר 2010, הקריפטולוגים הסיניים טאו שי ופנג דנגו גילו התנגשות הודעות של 512 סיביות (גוש אחד). בעבר, התנגשויות נמצאו רק בהודעות באורך שני בלוקים או יותר. מאוחר יותר, מארק סטיבנס השיג תוצאות דומות על ידי פרסום בלוקים עם אותו hash MD5. הוא גם פיתח אלגוריתם להשגת התנגשויות מסוג זה.
המסמך הסופי ששם קץ להיסטוריית הפיתוח של אלגוריתם MD5 היה בקשה להערות - RFC 6151 (RFC הוא מסמך רשמי שפותח על ידי המועצה להנדסת אינטרנט (IETF), המתאר מפרטים עבור ספציפי טכנולוגיה), שזיהתה למעשה את MD5 כאלגוריתם גיבוב לא מאובטח. המסמך ממליץ לנטוש אותו, לבחור במשפחת אלגוריתמי ההצפנה SHA-2 כחלופה.
אלגוריתם ה-MD5 הנדון נחשב לאחד מתקני האלגוריתם הראשונים המשמשים לבדיקת תקינות הקבצים ואחסון סיסמאות במסדי נתונים של יישומי אינטרנט.
אבל למעשה, הפונקציונליות הפשוטה יחסית, אורך הפלט הקצר והפשטות של הפעולות המבוצעות, בהיותם יתרונות האלגוריתם, קובעים גם את החסרונות שלו - MD5 מתייחס לאלגוריתםים המועדים לפריצה ובעלי רמה נמוכה של הגנה מפני התקפות יום הולדת.