Triển khai MD5 cho vi điều khiển


11

Có ai có bất kỳ ví dụ nào về thuật toán MD5 cho vi điều khiển (tốt nhất là 8 bit) không? Dự án của chúng tôi sẽ sử dụng một thiết bị dòng Micro18 PICch.

Câu trả lời:


11

Nếu bạn đang tìm kiếm một triển khai C, ngăn xếp Microchip TCP / IP có triển khai MD5 trong tệp Hashes.c.


Đây chính xác là những gì tôi cần.
J. Polfer


4

Tôi sẽ gắn bó với việc triển khai MD5 có uy tín và tránh xa các thư viện bạn tìm thấy từ các nhà cung cấp bên thứ 3. RFC 1321 ban đầu được mô tả MD5 có triển khai mẫu C.

Nhắc nhở: các điểm yếu đã biết đối với MD5 là các cuộc tấn công va chạm và không phải là các cuộc tấn công tiền định , vì vậy nó phù hợp với một số ứng dụng mã hóa nhưng không phải là các ứng dụng khác. Nếu bạn không biết sự khác biệt bạn không nên sử dụng, nhưng đừng loại bỏ nó hoàn toàn. Xem http://www.vpnc.org/hash.html .


1
Đối với mật mã học, tôi sẽ tránh xa MD5 altogther ...
Toby Jaffey

1
@Joby: đánh giá cao suy nghĩ, nhưng MD5 có các khía cạnh của nó chỉ tốt cho mật mã. Bạn chỉ cần biết điểm mạnh và điểm yếu của nó.
Jason S

+1 để liên kết với mã nguồn C trong RFC gốc. Mặc dù tôi có thể sẽ đi với mã nguồn từ Microchip, cũng chính những người đã tạo ra con chip này sẽ chạy.
davidcary

3

Bạn có thể tìm thấy một mô tả hay và một số mã giả cho thuật toán MD5 wikipedia tại http://en.wikipedia.org/wiki/MD5

Bạn cũng có thể xem xét đăng câu hỏi này lên stackoverflow vì nó hướng nhiều hơn đến câu hỏi lập trình.


3

từ trang wikipedia trên MD5 :

... Người ta đã chứng minh rằng MD5 không có khả năng chống va chạm như vậy, MD5 không phù hợp với các ứng dụng như chứng chỉ SSL hoặc chữ ký số dựa trên đặc tính này.

và từ các nhà nghiên cứu SSL trên cùng một trang:

Chúng tôi cũng hy vọng rằng việc sử dụng MD5 trong các ứng dụng khác cũng sẽ được xem xét lại.

Tôi hiểu rằng có lẽ bạn không muốn nghe điều này, nhưng bạn có thực sự cần MD5 không? Nó không nên được sử dụng cho mục đích mật mã vì nó quá không an toàn (và có sẵn thuyền tải các bảng cầu vồng). Nếu bạn đang tìm kiếm thứ gì đó để xác nhận dữ liệu, hãy xem CRC (mã ở đây ) có giá rẻ hơn về mặt tính toán. Nếu bạn đang sử dụng nó cho mục đích mật mã, thì tôi có thể đề nghị chuyển sang SHA không? Vấn đề duy nhất là hầu hết các thuật toán bảo mật bằng mật mã không chạy đặc biệt tốt trên các vi điều khiển. Tôi biết có vẻ như MD5 là "đủ tốt", nhưng cách kỹ thuật là lỗi ở khía cạnh thận trọng.


1
Đừng loại trừ hoàn toàn MD5: tuyên bố của bạn về "Nó không nên được sử dụng cho mục đích mã hóa vì nó quá không an toàn" là quá lớn.
Jason S

1
Cũng không sử dụng thực tế là thuật toán băm có hoặc không có bảng cầu vồng để xem xét sử dụng hay không. Nếu SHA không có nhiều bảng cầu vồng bây giờ, nó sẽ. Nối một "muối" bí mật vào một tin nhắn để giải quyết vấn đề đó.
Jason S
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.