Implementazione MD5 per microcontrollore


11

Qualcuno ha qualche esempio dell'algoritmo MD5 per un microcontrollore (preferibilmente uno a 8 bit)? Il nostro progetto utilizzerà un dispositivo Microchip serie PIC18.

Risposte:


11

Se stai cercando un'implementazione C, lo stack Microchip TCP / IP ha un'implementazione di MD5 nel file Hashes.c.


Questo è esattamente ciò di cui avevo bisogno.
J. Polfer,


4

Vorrei attenermi a un'implementazione rinomata nota di MD5 e stare lontano dalle librerie che trovi da fornitori di terze parti. L'originale RFC 1321 che descriveva MD5 ha un'implementazione di esempio C.

Promemoria: i punti deboli noti per MD5 sono gli attacchi di collisione e non gli attacchi di pre-immagine , quindi è adatto per alcune applicazioni crittografiche ma non altre. Se non conosci la differenza non dovresti usarla, ma non scartarla del tutto. Vedi http://www.vpnc.org/hash.html .


1
Per la crittografia, starei alla larga da MD5 altro ...
Toby Jaffey,

1
@Joby: apprezzo il pensiero, ma MD5 ha degli aspetti che vanno bene per la crittografia. Devi solo conoscere i suoi punti di forza e di debolezza.
Jason S,

+1 per il collegamento al codice sorgente C nell'RFC originale. Anche se probabilmente avrei scelto il codice sorgente di Microchip, le stesse persone che hanno creato il chip su cui verrà eseguito.
David


3

dalla pagina di Wikipedia su MD5 :

... è stato dimostrato che MD5 non è resistente alle collisioni in quanto tale, MD5 non è adatto per applicazioni come certificati SSL o firme digitali che si basano su questa proprietà.

e dai ricercatori SSL sulla stessa pagina:

Speriamo anche che venga riconsiderato l'uso di MD5 in altre applicazioni.

Capisco che probabilmente non vuoi ascoltarlo, ma hai davvero bisogno di MD5? Non dovrebbe essere usato per scopi crittografici poiché è troppo insicuro (e ci sono carichi di barche di tavoli arcobaleno disponibili). Se stai cercando qualcosa per convalidare i dati, cerca in CRC (codice qui ) che è più economico dal punto di vista computazionale. Se lo stai usando per scopi crittografici, allora posso suggerire di passare a SHA ? L'unico problema è che la maggior parte degli algoritmi crittograficamente sicuri non funziona particolarmente bene con i microcontrollori. So che può sembrare che MD5 sia "abbastanza buono", ma il modo ingegneristico è quello di sbagliare dal lato della cautela.


1
Non escludere completamente MD5: la tua affermazione di "Non dovrebbe essere utilizzata per scopi crittografici in quanto è troppo insicura" è troppo generica.
Jason S,

1
Inoltre, non utilizzare il fatto che un algoritmo hash abbia o meno tabelle arcobaleno come considerazione per usarlo o meno. Se SHA non ha molti tavoli arcobaleno ora, lo farà. Aggiungi un "salt" segreto a un messaggio per aggirare quel problema.
Jason S,
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.