การใช้ MD5 สำหรับไมโครคอนโทรลเลอร์


คำตอบ:


11

หากคุณกำลังมองหาการใช้งาน C, Microchip TCP / IP stack มีการใช้งาน MD5 ในไฟล์ Hashes.c


นี่คือสิ่งที่ฉันต้องการ
J. Polfer


4

ฉันจะยึดติดกับการใช้งานที่มีชื่อเสียงของ MD5 และอยู่ห่างจากห้องสมุดที่คุณพบจากผู้ขายบุคคลที่สาม RFC 1321ดั้งเดิมซึ่งอธิบาย MD5 มีตัวอย่างการนำ C มาใช้

คำเตือน: จุดอ่อนที่รู้จักสำหรับ MD5 คือการโจมตีแบบชนกันและไม่ใช่ การโจมตีแบบ preimageดังนั้นจึงเหมาะสำหรับแอปพลิเคชันการเข้ารหัสลับบางรายการ แต่ไม่ใช่แบบอื่น ๆ หากคุณไม่ทราบความแตกต่างที่คุณไม่ควรใช้มัน แต่อย่าทิ้งโดยสิ้นเชิง ดูhttp://www.vpnc.org/hash.html


1
สำหรับการเข้ารหัสฉันจะคัดท้ายชัดเจนของ MD5 altogther ...
Toby Jaffey

1
@Joby: ชื่นชมความคิด แต่ MD5 มีแง่มุมที่ดีสำหรับการเข้ารหัส คุณเพียงแค่ต้องรู้จุดแข็งและจุดอ่อนของมัน
Jason S

+1 สำหรับการลิงก์ไปยังซอร์สโค้ด C ใน RFC ดั้งเดิม แม้ว่าฉันอาจจะไปกับซอร์สโค้ดจาก Microchip คนเดียวกับที่ทำให้ชิปนี้ทำงานต่อไป
davidcary

3

คุณสามารถหาคำอธิบายที่ดีและ pseudocode สำหรับอัลกอริทึม MD5 wikipedia ได้ที่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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.