Хтось має приклади алгоритму MD5 для мікроконтролера (бажано 8-бітного)? Наш проект буде використовувати пристрій серії Microchip PIC18.
Хтось має приклади алгоритму MD5 для мікроконтролера (бажано 8-бітного)? Наш проект буде використовувати пристрій серії Microchip PIC18.
Відповіді:
Ось реалізація MD5 від EtherNut (на основі AVR)
Я б дотримувався відомої репутації MD5 і тримався подалі від бібліотек, які ви знайдете від сторонніх постачальників. Оригінальний RFC 1321, в якому описано MD5, має зразок C реалізації.
Нагадування: відомі недоліки MD5 - це атаки зіткнення, а не попередні атаки , тому він підходить для деяких криптографічних програм, але не для інших. Якщо ви не знаєте різниці, вам не слід її використовувати, але не відкидайте її взагалі. Див. Http://www.vpnc.org/hash.html .
Ви можете знайти хороший опис та деякий псевдокод для вікіпедії алгоритму MD5 за адресою http://en.wikipedia.org/wiki/MD5
Ви також можете розглянути питання про розміщення цього питання в stackoverflow, оскільки воно більше орієнтоване на питання програмування.
зі сторінки Вікіпедії на MD5 :
... було показано, що MD5 не є стійким до зіткнень, MD5 не підходить для таких програм, як сертифікати SSL або цифрові підписи, які покладаються на цю властивість.
і від дослідників SSL на цій же сторінці:
Ми також сподіваємось, що використання MD5 в інших додатках також буде переглянуте.
Я розумію, що ви, мабуть, не хочете цього чути, але вам дійсно потрібен MD5? Він не повинен використовуватися в криптографічних цілях, оскільки він занадто небезпечний (а також наявні навантажувальні човни з веселкових столів). Якщо ви шукаєте щось для перевірки даних, загляньте в CRC (код тут ), який обчислюється дешевше. Якщо будете використовувати його для криптографічних цілей , хоча, то , можливо , я пропоную рухатися до SHA ? Єдина проблема полягає в тому, що більшість криптографічно захищених алгоритмів не працюють особливо добре на мікроконтролерах. Я знаю, що може здатися, що MD5 "досить хороший", але інженерний спосіб полягає в помилці на стороні обережності.