¿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.
¿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:
Aquí está la implementación MD5 de EtherNut (basado en AVR)
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 .
Puede encontrar una buena descripción y algunos pseudocódigos para la wikipedia del algoritmo MD5 en http://en.wikipedia.org/wiki/MD5
También puede considerar publicar esta pregunta en stackoverflow ya que está más orientada a las preguntas de programación.
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.