¿Alguien tiene algún ejemplo de algoritmo MD5 para un microcontrolador (preferiblemente de 8-bits)? Nuestro proyecto se va a utilizar un Microchip PIC18 dispositivo de la serie.
Respuestas
¿Demasiados anuncios?Yo me quedaría con el de una conocida reputación de la implementación de MD5, y mantenerse alejado de las bibliotecas que encontrar a partir de la 3ra parte de los vendedores. El original RFC 1321 que describe MD5 tiene un ejemplo de C aplicación.
Recordatorio: las debilidades conocidas de MD5 son los choques de los ataques, y no preimagen de los ataques, por lo que es adecuado para algunas aplicaciones criptográficas, pero otros no. Si usted no sabe la diferencia no debería ser uso de ella, pero no descarto por completo. Ver http://www.vpnc.org/hash.html.
desde la página de la wikipedia en MD5:
... se ha demostrado que el MD5 no es resistencia a la colisión como tal, MD5 no es adecuado para aplicaciones tales como certificados SSL o firmas digitales que se basan en esta propiedad.
y desde el SSL investigadores en la misma página:
También esperamos que el uso de MD5 en otras aplicaciones serán reconsideradas así.
Entiendo que probablemente no quieres oír esto, pero lo que realmente necesita MD5? No debe ser utilizado para propósitos criptográficos ya que es muy inseguro, y hay barcos cargados de tablas de arco iris está disponible). Si usted está buscando algo que acaba de validar los datos, buscar en la CRC (código de aquí), que es computacionalmente más barato. Si usted está usando para propósitos criptográficos, aunque, a continuación, sugiero mover a SHA? El único problema es que la mayoría de criptográficamente segura algoritmos no correr especialmente bien en los microcontroladores. Sé que puede parecer MD5 es "suficientemente buena", pero la ingeniería manera es errar en el lado de la precaución.
Usted puede encontrar una buena descripción y algunos pseudocódigo de un algoritmo MD5 en wikipedia http://en.wikipedia.org/wiki/MD5
Usted también podría considerar la publicación de esta pregunta en stackoverflow , ya que está más orientado a la programación de las preguntas.