Quelqu'un at-il des exemples de l' algorithme MD5 pour un microcontrôleur (de préférence un 8 bits)? Notre projet va utiliser un appareil Microchip série PIC18.
Quelqu'un at-il des exemples de l' algorithme MD5 pour un microcontrôleur (de préférence un 8 bits)? Notre projet va utiliser un appareil Microchip série PIC18.
Réponses:
Voici l'implémentation MD5 de l'EtherNut (basé sur AVR)
Je m'en tiendrai à une implémentation réputée et connue de MD5, et je resterais à l'écart des bibliothèques que vous trouverez auprès de fournisseurs tiers. Le RFC 1321 original qui décrivait MD5 a un exemple d'implémentation C.
Rappel: les faiblesses connues de MD5 sont les attaques par collision et non les attaques de préimage , il convient donc à certaines applications cryptographiques mais pas à d'autres. Si vous ne connaissez pas la différence, vous ne devriez pas l'utiliser, mais ne la jetez pas complètement. Voir http://www.vpnc.org/hash.html .
Vous pouvez trouver une bonne description et un pseudocode pour l'algorithme MD5 wikipedia à http://en.wikipedia.org/wiki/MD5
Vous pouvez également envisager de publier cette question sur stackoverflow car elle est davantage orientée vers les questions de programmation.
à partir de la page wikipedia sur MD5 :
... il a été démontré que MD5 n'est pas résistant aux collisions en tant que tel, MD5 ne convient pas aux applications telles que les certificats SSL ou les signatures numériques qui s'appuient sur cette propriété.
et des chercheurs SSL sur la même page:
Nous espérons également que l'utilisation de MD5 dans d'autres applications sera également reconsidérée.
Je comprends que vous ne voulez probablement pas entendre cela, mais avez-vous vraiment besoin de MD5? Il ne devrait pas être utilisé à des fins cryptographiques car il est trop peu sûr (et il y a des cargaisons de tables arc-en-ciel disponibles). Si vous cherchez quelque chose pour simplement valider les données, regardez dans CRC (code ici ) qui est moins cher en termes de calcul. Si vous êtes l' utilisez à des fins cryptographiques bien, alors je suggère de passer à SHA ? Le seul problème est que la plupart des algorithmes sécurisés cryptographiquement ne fonctionnent pas particulièrement bien sur les microcontrôleurs. Je sais qu'il peut sembler que le MD5 est "assez bon", mais la manière d'ingénierie est de faire preuve de prudence.