เครื่องมือสร้าง MD5 hash
MD5 เป็นอัลกอริธึมแฮช 128 บิตที่สร้างขึ้นโดยนักวิทยาศาสตร์ Ronald L. Rivest ในช่วงต้นทศวรรษ 1990 ตัวย่อ MD5 ย่อมาจาก Message Digest เวอร์ชัน 5
การเข้ารหัส MD5 ใช้การแฮช ซึ่งเกี่ยวข้องกับการสร้าง "ลายนิ้วมือ" หรือ "ผลรวม" เพื่อตรวจสอบความถูกต้องเพิ่มเติม เมื่อใช้วิธีนี้ คุณสามารถตรวจสอบความถูกต้องของข้อมูล ตลอดจนการจัดเก็บแฮชรหัสผ่าน
ประวัติ MD5
ประวัติของ Message Digest Algorithm (MD5) เริ่มต้นขึ้นในปี 1991 เมื่อศาสตราจารย์ Ronald L. Rivest แห่ง MIT รายงานเกี่ยวกับการสร้างอัลกอริทึมใหม่ที่แทนที่ MD4 ที่ล้าสมัย สำหรับ MD4 พบว่ามีข้อบกพร่องหลายประการตามที่ Hans Dobbertin นักวิทยาการเข้ารหัสลับชาวเยอรมันเขียนในภายหลัง
Rivest อธิบายอัลกอริทึม MD5 ใหม่ใน RFC 1321
งานเกี่ยวกับอัลกอริทึมยังคงดำเนินต่อไปโดยนักวิจัย Bert den Boer และ Anton Bosselas ซึ่งในปี 1993 ได้พิสูจน์ความเป็นไปได้ของการชนกันของหลอกใน MD5 เมื่อเวกเตอร์การเริ่มต้นที่แตกต่างกันสามารถจับคู่กับข้อความย่อยเดียวกันได้
นอกจากนี้ ในปี 1996 Hans Dobbertin อ้างว่าพบการชนกันใน MD5 ในเวลานั้น อัลกอริธึมการแฮชที่เป็นที่นิยมมากขึ้นก็เป็นที่รู้จักมากขึ้น เช่น ฟังก์ชันแฮชการเข้ารหัส RIPEMD-160 ซึ่งพัฒนาโดย Hans Dobbertin, Anton Bosselars และ Bart Prenel, Whirlpool ซึ่งพัฒนาโดย Vincent Raymen และ Paulo Barreto และอัลกอริธึมการแฮชการเข้ารหัส SHA-1
เนื่องจากขนาดแฮชที่ค่อนข้างเล็ก (128 บิต) ใน MD5 จึงมีการพูดถึงความเป็นไปได้ของการโจมตีในวันเกิด โครงการ MD5CRK ซึ่งเปิดตัวโดย Jean-Luc Cook ในปี 2547 มีวัตถุประสงค์เพื่อศึกษาช่องโหว่ของอัลกอริทึมที่ใช้การโจมตีในวันเกิด แต่หลังจากนั้นห้าเดือน ในวันที่ 17 สิงหาคม พ.ศ. 2547 โครงการนี้ก็ถูกระงับเนื่องจากการค้นพบช่องโหว่ในอัลกอริทึมโดยกลุ่มนักเข้ารหัสชาวจีนที่นำโดย Lai Xuejia
ในเดือนมีนาคม 2548 นักคณิตศาสตร์และนักเข้ารหัส Benne de Weger, Arjen Lenstra และ Wang Xiaoyun ได้สร้างเอกสาร X.509 สองชุดที่มีแฮชเดียวกันและคีย์สาธารณะต่างกัน
หนึ่งปีต่อมา ในเดือนมีนาคม 2549 อัลกอริทึมได้รับการเผยแพร่โดย Vlastimil Klima นักเข้ารหัสชาวเช็ก ซึ่งช่วยให้คุณระบุการชนกันบนคอมพิวเตอร์ทั่วไปได้ในเวลาเพียงหนึ่งนาที อัลกอริทึมนี้กลายเป็นที่รู้จักในชื่อเมธอด "tunneling"
จากการวิเคราะห์ผลงานในปี 2551 แผนกของ National Cyber Security Administration ของ US Department of Homeland Security (US-CERT) แนะนำให้ทุกคนที่มีส่วนร่วมในการพัฒนา ของซอฟต์แวร์ เว็บไซต์ ตลอดจนผู้ใช้เครือข่าย หยุดใช้อัลกอริทึม MD5 โดยไม่คำนึงถึงวัตถุประสงค์ของแอปพลิเคชัน เหตุผลสำหรับคำแนะนำดังกล่าวคือความไม่น่าเชื่อถือที่เขาแสดงให้เห็นในขั้นตอนการศึกษา
ในเดือนธันวาคม 2010 นักวิทยาการเข้ารหัสลับชาวจีน Tao Xie และ Feng Denguo ค้นพบการชนกันของข้อความขนาด 512 บิต (หนึ่งบล็อก) ก่อนหน้านี้ การชนกันจะพบได้เฉพาะในข้อความที่มีความยาวสองช่วงตึกขึ้นไปเท่านั้น ต่อมา Mark Stevens ได้รับผลลัพธ์ที่คล้ายคลึงกันโดยการเผยแพร่บล็อกที่มีแฮช MD5 เดียวกัน เขายังพัฒนาอัลกอริทึมเพื่อรับการชนประเภทนี้
เอกสารขั้นสุดท้ายที่ยุติประวัติศาสตร์ของการพัฒนาอัลกอริทึม MD5 คือคำขอความคิดเห็น - RFC 6151 (RFC เป็นเอกสารอย่างเป็นทางการที่พัฒนาโดย Internet Engineering Council (IETF) ซึ่งอธิบายข้อกำหนดเฉพาะสำหรับ เทคโนโลยี) ซึ่งจริง ๆ แล้ว MD5 รู้จักว่าเป็นอัลกอริทึมการแฮชที่ไม่ปลอดภัย เอกสารแนะนำให้เลิกใช้อัลกอริทึมการเข้ารหัสตระกูล SHA-2 แทน
อัลกอริทึม MD5 ที่กล่าวถึงนี้ถือเป็นหนึ่งในมาตรฐานอัลกอริทึมแรกที่ใช้ในการตรวจสอบความสมบูรณ์ของไฟล์และจัดเก็บรหัสผ่านในฐานข้อมูลเว็บแอปพลิเคชัน
แต่ในความเป็นจริง การทำงานที่ค่อนข้างเรียบง่าย ความยาวเอาต์พุตสั้น และความเรียบง่ายของการดำเนินการที่ดำเนินการ ซึ่งเป็นข้อดีของอัลกอริทึม ยังกำหนดข้อเสียของมันด้วย - MD5 หมายถึงอัลกอริทึมที่มีแนวโน้มที่จะถูกแฮ็กและมีระดับต่ำ ป้องกันการโจมตีวันเกิด