Implementación MD5 para microcontrolador


11

¿Alguien tiene algún ejemplo del algoritmo MD5 para un microcontrolador (preferiblemente uno de 8 bits)? Nuestro proyecto utilizará un dispositivo de la serie Microchip PIC18.

Respuestas:


11

Si está buscando una implementación en C, la pila Microchip TCP / IP tiene una implementación de MD5 en el archivo Hashes.c.


Esto es exactamente lo que necesitaba.
J. Polfer


4

Me quedaría con una conocida implementación de MD5 y me mantendría alejado de las bibliotecas que encuentre de proveedores externos. El RFC 1321 original que describe MD5 tiene una implementación de muestra C.

Recordatorio: las debilidades conocidas de MD5 son los ataques de colisión y no los ataques de preimagen , por lo que es adecuado para algunas aplicaciones criptográficas pero no para otras. Si no conoce la diferencia, no debería usarla, pero no la descarte por completo. Ver http://www.vpnc.org/hash.html .


1
Para la criptografía, me mantendría alejado de MD5 por completo ...
Toby Jaffey

1
@Joby: aprecio el pensamiento, pero MD5 tiene aspectos que están bien para la criptografía. Solo tienes que conocer sus fortalezas y debilidades.
Jason S

+1 para vincular al código fuente C en el RFC original. Aunque probablemente usaría el código fuente de Microchip, las mismas personas que hicieron el chip con el que se ejecutará.
davidcary


3

de la página de wikipedia en MD5 :

... se ha demostrado que MD5 no es resistente a colisiones como tal, MD5 no es adecuado para aplicaciones como certificados SSL o firmas digitales que dependen de esta propiedad.

y de los investigadores de SSL en la misma página:

También esperamos que también se reconsidere el uso de MD5 en otras aplicaciones.

Entiendo que probablemente no quieras escuchar esto, pero ¿realmente necesitas MD5? No debe usarse con fines criptográficos, ya que es demasiado inseguro (y hay muchas cargas de tablas de arco iris disponibles). Si está buscando algo para validar los datos, busque CRC (código aquí ) que es computacionalmente más barato. Sin embargo, si lo está utilizando con fines criptográficos, ¿puedo sugerirle que se mude a SHA ? El único problema es que la mayoría de los algoritmos criptográficamente seguros no funcionan particularmente bien en microcontroladores. Sé que puede parecer que MD5 es "lo suficientemente bueno", pero la forma de ingeniería es errar por precaución.


1
No descarte completamente MD5: su declaración de "No debe usarse con fines criptográficos porque es demasiado insegura" está demasiado generalizada.
Jason S

1
Tampoco use el hecho de que un algoritmo hash tiene o no tiene tablas de arco iris como una consideración para usarlo o no. Si SHA no tiene muchas tablas de arcoíris ahora, las tendrá. Agregue una "sal" secreta a un mensaje para solucionar ese problema.
Jason S
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.