ตาม นี้ มีอย่างน้อย 6 "คุณสมบัติ" ฟังก์ชันแฮชที่ปลอดภัยด้วยการเข้ารหัสทั้งหมดมุ่งมั่นที่จะบรรลุ:
- มุ่งมั่น: ข้อความเดียวกันจะส่งผลให้เกิดแฮชเดียวกันเสมอ
- เร็ว: มันรวดเร็วในการคำนวณค่าแฮชสำหรับข้อความที่กำหนด
- ฟังก์ชันทางเดียว: เป็นไปไม่ได้ที่จะสร้างข้อความจากค่าแฮช ยกเว้นโดยการลองข้อความที่เป็นไปได้ทั้งหมด
- เอฟเฟกต์หิมะถล่ม: การเปลี่ยนแปลงเล็กน้อยในข้อความควรเปลี่ยนค่าแฮชอย่างกว้างขวางเพื่อให้ค่าแฮชใหม่ไม่สัมพันธ์กับค่าแฮชเก่า
- ทนต่อการชน: เป็นไปไม่ได้ที่จะค้นหาข้อความสองข้อความที่มีค่าแฮชเดียวกัน
- ทนต่อการโจมตีด้วยภาพล่วงหน้า: การโจมตีด้วยภาพล่วงหน้าในฟังก์ชันแฮชการเข้ารหัสจะพยายามค้นหาข้อความที่มีค่าแฮชเฉพาะ ฟังก์ชันแฮชการเข้ารหัสควรต้านทานการโจมตีพรีอิมเมจของมัน
3 ข้อแรกฉันคิดว่าค่อนข้างง่ายที่จะปฏิบัติตามเท่าที่ฉันสามารถจินตนาการได้ (ยังไม่ได้ใช้ฟังก์ชันการแฮชที่ปลอดภัยด้วยการเข้ารหัส) แต่คุณจะออกแบบสิ่งที่มี 3 ตัวสุดท้ายได้อย่างไร?
- เอฟเฟกต์หิมะถล่ม
- ทนต่อการชน
- ทนต่อการโจมตีด้วยภาพล่วงหน้า
มีสิ่งที่เฉพาะเจาะจงที่คุณสามารถทำได้เมื่อออกแบบฟังก์ชันการแฮชเพื่อให้มีคุณสมบัติ 3 อย่างนี้หรือไม่? ผู้ที่สร้างฟังก์ชันแฮชการเข้ารหัสที่ได้รับรางวัลทำอย่างไร
หากไม่มีหลักการที่จะนำไปใช้ ทางออกที่ดีที่สุดถัดไปคือการรู้ว่าควรศึกษาตัวอย่างใดเพื่อให้ได้รับข้อมูลเชิงลึกเกี่ยวกับวิธีที่พวกเขาสามารถปฏิบัติตามคุณสมบัติเหล่านี้ได้ ในกรณีนั้น กระดาษหรืออัลกอริทึมการแฮชใดที่ดีในการศึกษา และส่วนใดที่ควรเน้นจากกรณีเหล่านั้น