Το MD5 είναι ένας αλγόριθμος κατακερματισμού 128-bit που δημιουργήθηκε από τον επιστήμονα Ronald L. Rivest στις αρχές της δεκαετίας του 1990. Η συντομογραφία MD5 σημαίνει Message Digest Version 5.
Η κρυπτογράφηση MD5 βασίζεται στον κατακερματισμό, ο οποίος περιλαμβάνει τον σχηματισμό "δακτυλικών αποτυπωμάτων" ή "αθροισμάτων" προκειμένου να επαληθευτεί περαιτέρω η αυθεντικότητά τους. Χρησιμοποιώντας αυτήν τη μέθοδο, μπορείτε να επαληθεύσετε την ακεραιότητα των πληροφοριών, καθώς και την αποθήκευση των κατακερματισμών κωδικών πρόσβασης.
ιστορικό MD5
Η ιστορία του Message Digest Algorithm (MD5) ξεκινά το 1991, όταν ο καθηγητής του MIT Ronald L. Rivest ανέφερε τη δημιουργία ενός νέου αλγορίθμου που αντικατέστησε τον απαρχαιωμένο MD4. Όσον αφορά το MD4, εντοπίστηκαν πράγματι μια σειρά από ελλείψεις σε αυτό, όπως έγραψε αργότερα ο Γερμανός κρυπτολόγος Hans Dobbertin.
Ο Rivest περιέγραψε τον νέο αλγόριθμο MD5 στο RFC 1321.
Η εργασία στον αλγόριθμο συνεχίστηκε από τους ερευνητές Bert den Boer και Anton Bosselars, οι οποίοι το 1993 απέδειξαν την πιθανότητα ψευδο-συγκρούσεων στο MD5, όταν διαφορετικά διανύσματα αρχικοποίησης μπορούν να ταιριάζουν με τις ίδιες συλλογές μηνυμάτων.
Επιπλέον, το 1996 ο Hans Dobbertin ισχυρίστηκε ότι βρήκε μια σύγκρουση στο MD5. Εκείνη την εποχή, έγιναν γνωστοί πιο προτιμώμενοι αλγόριθμοι κατακερματισμού, όπως οι συναρτήσεις κατακερματισμού κρυπτογράφησης RIPEMD-160 - που αναπτύχθηκαν από τους Hans Dobbertin, Anton Bosselars και Bart Prenel, Whirlpool - που αναπτύχθηκε από τους Vincent Raymen και Paulo Barreto και ο αλγόριθμος κρυπτογράφησης κατακερματισμού SHA-1.
Λόγω του σχετικά μικρού μεγέθους κατακερματισμού (128 bit) στο MD5, έχει γίνει λόγος για την πιθανότητα επιθέσεων γενεθλίων. Το έργο MD5CRK, που ξεκίνησε από τον Jean-Luc Cook το 2004, είχε στόχο να μελετήσει την ευπάθεια του αλγορίθμου χρησιμοποιώντας επιθέσεις γενεθλίων. Όμως, μετά από πέντε μήνες, στις 17 Αυγούστου 2004, το έργο περιορίστηκε λόγω της ανακάλυψης μιας ευπάθειας στον αλγόριθμο από μια ομάδα Κινέζων κρυπτογράφων με επικεφαλής τον Lai Xuejia.
Τον Μάρτιο του 2005, οι μαθηματικοί και κρυπτογράφοι Benne de Weger, Arjen Lenstra και Wang Xiaoyun δημιούργησαν δύο έγγραφα X.509 με τον ίδιο κατακερματισμό και διαφορετικά δημόσια κλειδιά.
Ένα χρόνο αργότερα, τον Μάρτιο του 2006, δημοσιεύτηκε ένας αλγόριθμος από τον Τσέχο κρυπτογράφο Vlastimil Klima, ο οποίος σας επιτρέπει να προσδιορίζετε συγκρούσεις σε έναν απλό υπολογιστή σε μόλις ένα λεπτό. Αυτός ο αλγόριθμος έγινε γνωστός ως μέθοδος "tunneling".
Ως αποτέλεσμα της ανάλυσης των αποτελεσμάτων της εργασίας, το 2008, το τμήμα της Εθνικής Διοίκησης Κυβερνοασφάλειας του Υπουργείου Εσωτερικής Ασφάλειας των ΗΠΑ (US-CERT) συνέστησε σε όλους όσους συμμετείχαν στην ανάπτυξη λογισμικού, ιστοτόπων, καθώς και χρηστών δικτύου, σταματούν να χρησιμοποιούν τον αλγόριθμο MD5 , ανεξάρτητα από τον σκοπό της εφαρμογής του. Ο λόγος για μια τέτοια σύσταση ήταν η αναξιοπιστία που επέδειξε κατά τη διαδικασία μελέτης της.
Τον Δεκέμβριο του 2010, οι Κινέζοι κρυπτολόγοι Tao Xie και Feng Denguo ανακάλυψαν μια σύγκρουση μηνυμάτων 512 bit (ένα μπλοκ). Προηγουμένως, οι συγκρούσεις βρίσκονταν μόνο σε μηνύματα μήκους δύο τμημάτων ή περισσότερο. Αργότερα, ο Mark Stevens πέτυχε παρόμοια αποτελέσματα δημοσιεύοντας μπλοκ με τον ίδιο κατακερματισμό MD5. Ανέπτυξε επίσης έναν αλγόριθμο για τη λήψη συγκρούσεων αυτού του τύπου.
Το τελικό έγγραφο που έβαλε τέλος στην ιστορία της ανάπτυξης του αλγόριθμου MD5 ήταν ένα αίτημα για σχόλια - RFC 6151 (το RFC είναι ένα επίσημο έγγραφο που αναπτύχθηκε από το Συμβούλιο Μηχανικών Διαδικτύου (IETF), το οποίο περιγράφει προδιαγραφές για ένα συγκεκριμένο τεχνολογία), η οποία στην πραγματικότητα αναγνώρισε το MD5 ως έναν μη ασφαλή αλγόριθμο κατακερματισμού . Το έγγραφο συνιστά την εγκατάλειψή του, επιλέγοντας εναλλακτικά την οικογένεια κρυπτογραφικών αλγορίθμων SHA-2.
Ο αλγόριθμος MD5 που συζητήθηκε θεωρείται ότι είναι ένα από τα πρώτα πρότυπα αλγορίθμων που χρησιμοποιήθηκαν για τον έλεγχο της ακεραιότητας των αρχείων και την αποθήκευση κωδικών πρόσβασης σε βάσεις δεδομένων εφαρμογών Ιστού.
Αλλά, στην πραγματικότητα, η σχετικά απλή λειτουργικότητα, το μικρό μήκος εξόδου και η απλότητα των λειτουργιών που εκτελούνται, καθώς είναι τα πλεονεκτήματα του αλγορίθμου, καθορίζουν και τα μειονεκτήματά του - το MD5 αναφέρεται σε αλγόριθμους που είναι επιρρεπείς σε hacking και έχουν χαμηλό βαθμό προστασία από επιθέσεις γενεθλίων.