Реалізація MD5 для мікроконтролера


Відповіді:


11

Якщо ви шукаєте реалізацію C, стек Microchip TCP / IP має реалізацію MD5 у файлі Hashes.c.


Це саме те, що мені було потрібно.
Дж. Полфер


4

Я б дотримувався відомої репутації MD5 і тримався подалі від бібліотек, які ви знайдете від сторонніх постачальників. Оригінальний RFC 1321, в якому описано MD5, має зразок C реалізації.

Нагадування: відомі недоліки MD5 - це атаки зіткнення, а не попередні атаки , тому він підходить для деяких криптографічних програм, але не для інших. Якщо ви не знаєте різниці, вам не слід її використовувати, але не відкидайте її взагалі. Див. Http://www.vpnc.org/hash.html .


1
Щодо криптографії, я б ухилився від іншої MD5 ...
Toby Jaffey

1
@Joby: цінуй думку, але у MD5 є її аспекти, які чудово підходять для криптографії. Ви просто повинні знати її сильні та слабкі сторони.
Jason S

+1 для посилання на вихідний код C в оригінальному RFC. Незважаючи на те, що я, мабуть, пішов би з вихідним кодом від Microchip, ті ж люди, які зробили чіп, на якому він буде працювати.
davidcary

3

Ви можете знайти хороший опис та деякий псевдокод для вікіпедії алгоритму MD5 за адресою http://en.wikipedia.org/wiki/MD5

Ви також можете розглянути питання про розміщення цього питання в stackoverflow, оскільки воно більше орієнтоване на питання програмування.


3

зі сторінки Вікіпедії на MD5 :

... було показано, що MD5 не є стійким до зіткнень, MD5 не підходить для таких програм, як сертифікати SSL або цифрові підписи, які покладаються на цю властивість.

і від дослідників SSL на цій же сторінці:

Ми також сподіваємось, що використання MD5 в інших додатках також буде переглянуте.

Я розумію, що ви, мабуть, не хочете цього чути, але вам дійсно потрібен MD5? Він не повинен використовуватися в криптографічних цілях, оскільки він занадто небезпечний (а також наявні навантажувальні човни з веселкових столів). Якщо ви шукаєте щось для перевірки даних, загляньте в CRC (код тут ), який обчислюється дешевше. Якщо будете використовувати його для криптографічних цілей , хоча, то , можливо , я пропоную рухатися до SHA ? Єдина проблема полягає в тому, що більшість криптографічно захищених алгоритмів не працюють особливо добре на мікроконтролерах. Я знаю, що може здатися, що MD5 "досить хороший", але інженерний спосіб полягає в помилці на стороні обережності.


1
Не виключайте повністю MD5: ваше твердження про те, що "Це не повинно використовуватися для криптографічних цілей, оскільки воно є занадто небезпечним", занадто небезпечне.
Jason S

1
Також не використовуйте той факт, що алгоритм хешу містить або не має райдужних таблиць, як використовувати його чи ні. Якщо у SHA зараз не так багато веселкових столів, це станеться. Додайте до повідомлення таємну "сіль", щоб подолати цю проблему.
Jason S
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.