Adakah yang punya contoh algoritma MD5 untuk mikrokontroler (lebih disukai yang 8-bit)? Proyek kami akan menggunakan perangkat seri Microchip PIC18.
Adakah yang punya contoh algoritma MD5 untuk mikrokontroler (lebih disukai yang 8-bit)? Proyek kami akan menggunakan perangkat seri Microchip PIC18.
Jawaban:
Inilah implementasi MD5 dari EtherNut (berbasis AVR)
Saya akan tetap menggunakan implementasi MD5 yang memiliki reputasi baik, dan menjauh dari perpustakaan yang Anda temukan dari vendor pihak ke-3. Asli RFC 1321 yang menggambarkan MD5 memiliki implementasi C sampel.
Pengingat: kelemahan yang diketahui untuk MD5 adalah serangan tabrakan, dan bukan serangan preimage , sehingga cocok untuk beberapa aplikasi kriptografi tetapi tidak untuk yang lain. Jika Anda tidak tahu bedanya, Anda seharusnya tidak menggunakannya, tetapi jangan membuangnya sama sekali. Lihat http://www.vpnc.org/hash.html .
Anda dapat menemukan deskripsi yang baik dan beberapa pseudocode untuk wikipedia algoritma MD5 di http://en.wikipedia.org/wiki/MD5
Anda mungkin juga mempertimbangkan memposting pertanyaan ini pada stackoverflow karena lebih diarahkan pada pertanyaan pemrograman.
dari halaman wikipedia di MD5 :
... telah terbukti bahwa MD5 tidak tahan terhadap benturan, MD5 tidak cocok untuk aplikasi seperti sertifikat SSL atau tanda tangan digital yang bergantung pada properti ini.
dan dari para peneliti SSL di halaman yang sama:
Kami juga berharap bahwa penggunaan MD5 dalam aplikasi lain akan dipertimbangkan kembali juga.
Saya mengerti bahwa Anda mungkin tidak ingin mendengar ini, tetapi apakah Anda benar-benar membutuhkan MD5? Seharusnya tidak digunakan untuk keperluan kriptografi karena terlalu tidak aman (dan ada banyak tabel pelangi yang tersedia). Jika Anda mencari sesuatu untuk hanya memvalidasi data, lihat CRC (kode di sini ) yang secara komputasi lebih murah. Jika Anda sedang menggunakannya untuk tujuan kriptografi meskipun, maka mungkin saya sarankan pindah ke SHA ? Satu-satunya masalah adalah sebagian besar algoritma yang aman secara kriptografis tidak berjalan dengan baik pada mikrokontroler. Saya tahu ini mungkin tampak seperti MD5 "cukup baik", tetapi cara rekayasa adalah dengan berbuat salah di sisi hati-hati.