Perché l'MD5 è ancora ampiamente utilizzato?


Risposte:


16

È veloce da generare e spesso il fatto che le collisioni siano teoricamente possibili non è un grosso problema. vale a dire verificare se un file memorizzato nella cache è cambiato per evitare il download di una nuova copia.

Un rapido benchmark fatto nel 1996 mostra quanto segue:

            Digest Performance in MegaBytes per Second

      Pentium P5     Power Mac    SPARC 4     DEC Alpha
          90 MHz        80 MHz      110 MHz      200 MHz

MD5         13.1          3.1         5.1          8.5
SHA1         2.5          1.2         2.0          3.3

Per un uso moderno - sui chip integrati, MD5 può essere 2-3 volte più veloce da produrre rispetto allo SHA1 per le stesse informazioni.


10

Un hash MD5 è "abbastanza buono" per la maggior parte delle attività umili. Ricordiamo che è ancora incredibilmente difficile produrre collisioni significative nello stesso numero di byte.

Ad esempio, supponiamo di scaricare la nuova Ubuntu 9.10 la prossima settimana da un mirror attendibile. Vuoi verificare che il file sia stato scaricato correttamente e completamente. Basta avviare MD5 e eseguire l'hashing dell'ISO. Confronta l'hash con l'hash pubblicato. Se gli hash corrispondono, puoi essere sicuro che l'ISO è stato copiato correttamente e completamente.


Non è più difficile. E come è più difficile correre sha256sum filename.isoinvece di md5sum filename.iso?
Lumaca meccanica

Inoltre, se il tuo ISP è malvagio, MD5 non garantisce che l'ISO sia stato scaricato correttamente. L'ISP potrebbe manomettere l'immagine ISO per fare qualcosa di malvagio.
Lumaca meccanica

4
  1. È breve - più facile da leggere.
  2. È molto diffuso: ottima interoperabilità con altri sistemi
  3. È normale - tutti sono abituati.

e la sicurezza può essere migliorata salandola.


3

MD5 è ampiamente usato come funzione di hash di checksum perché è veloce e presenta un rapporto di collisione estremamente basso. Un checksum MD5 è composto da 32 cifre esadecimali che insieme forniscono un 1 in probabilità ~ 3,42e34 di una collisione. In teoria, è possibile eseguire l'hashing di tutti i file di tutti i computer in un Paese delle dimensioni degli Stati Uniti e non generare una collisione (*).

Per la crittografia, MD5 è una valida alternativa se la sicurezza è solo una preoccupazione moderata. È un'opzione molto praticabile per eseguire l'hashing delle password del database o altri campi che richiedono principalmente sicurezza interna per la sua velocità, ma anche perché MD5 offre un livello ragionevole di sicurezza in cui la crittografia avanzata non è un problema.


(*) per la maggior parte degli scopi di checksum, una collisione è significativa solo se si verifica tra due oggetti di origini simili e con le stesse dimensioni. Nonostante un'alta probabilità di unicità MD5, alla fine potrebbero verificarsi collisioni tra due file molto distinti. Ad esempio, un file di database da 1,5 Mb e un file GIF da 35k. Per la maggior parte degli scopi, questa è una collisione insignificante. Ancora di più perché MD5 è solo un elemento dell'indicizzazione dei file. La dimensione del file è un'altra importante.


2

L'MD5 è ampiamente utilizzato perché è stato ampiamente utilizzato e le interruzioni non sono ancora abbastanza significative per essere un problema evidente nei sistemi esistenti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.