Implementacja MD5 dla mikrokontrolera


Odpowiedzi:


11

Jeśli szukasz implementacji C, stos Microchip TCP / IP ma implementację MD5 w pliku Hashes.c.


Właśnie tego potrzebowałem.
J. Polfer,


4

Trzymałbym się znanej, renomowanej implementacji MD5 i trzymałam się z dala od bibliotek, które można znaleźć u dostawców zewnętrznych. Oryginalny RFC 1321, który opisywał MD5, ma przykładową implementację C.

Przypomnienie: znanymi słabościami MD5 są ataki kolizyjne, a nie ataki preimage , więc jest odpowiedni dla niektórych aplikacji kryptograficznych, ale nie dla innych. Jeśli nie znasz różnicy, nie powinieneś jej używać, ale nie odrzucaj jej całkowicie. Zobacz http://www.vpnc.org/hash.html .


1
W przypadku kryptografii omijałbym całkowicie MD5 ...
Toby Jaffey

1
@Joby: doceń tę myśl, ale MD5 ma pewne aspekty, które są odpowiednie dla kryptografii. Musisz tylko poznać jego mocne i słabe strony.
Jason S

+1 za linkowanie do kodu źródłowego C w oryginalnym RFC. Chociaż prawdopodobnie wybrałbym kod źródłowy z Microchip, ci sami ludzie, którzy stworzyli układ, na którym będzie działał.
davidcary


3

ze strony wikipedii na MD5 :

... wykazano, że MD5 nie jest odporny na kolizję jako taki, MD5 nie nadaje się do aplikacji takich jak certyfikaty SSL lub podpisy cyfrowe oparte na tej właściwości.

i od badaczy SSL na tej samej stronie:

Mamy również nadzieję, że użycie MD5 w innych aplikacjach również zostanie ponownie rozważone.

Rozumiem, że prawdopodobnie nie chcesz tego słyszeć, ale czy naprawdę potrzebujesz MD5? Nie należy go używać do celów kryptograficznych, ponieważ jest zbyt niepewny (a dostępnych jest mnóstwo tęczowych tabel). Jeśli szukasz czegoś, co tylko zweryfikuje dane, spójrz na CRC (kod tutaj ), który jest tańszy obliczeniowo. Jeśli z wykorzystaniem go do celów kryptograficznych choć wtedy mogę zasugerować przeniesienie do SHA ? Jedynym problemem jest to, że większość bezpiecznych algorytmów kryptograficznych nie działa szczególnie dobrze na mikrokontrolerach. Wiem, że może się wydawać, że MD5 jest „wystarczająco dobry”, ale inżynieryjnym sposobem jest błądzenie po stronie ostrożności.


1
Nie wykluczaj całkowicie MD5: stwierdzenie „Nie należy go używać do celów kryptograficznych, ponieważ jest zbyt niepewne” jest zbyt ogólne.
Jason S

1
Nie używaj też faktu, że algorytm skrótu ma lub nie ma tablic tęczy, aby rozważyć jego użycie lub nie. Jeśli SHA nie ma teraz wielu tęczowych stołów, zrobi to. Dodaj tajną „sól” do wiadomości, aby obejść ten problem.
Jason S
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.