ลองพิจารณาว่าคำว่า "birthday paradox" หมายถึงอะไร:
เดฟ: สมมติว่าความยาวของไดเจสต์คือ N จำนวนข้อความและไดเร็กทอรีที่เกี่ยวข้องควรสร้างในฝั่งผู้โจมตี เพื่อที่จะค้นหา 2 ข้อความที่มีไดเจสต์เท่ากัน (เกิดการชนกัน) โดยความน่าจะเป็นที่จะพบทั้งสองข้อความสูงกว่า 50% ?
คำตอบคือ $c*\sqrt{N} $. ซึ่งหมายความว่าผู้โจมตีควรรวบรวมอย่างน้อย $c*\sqrt{N} $ จำนวนข้อความระหว่าง N ข้อความเพื่อค้นหาการสรุปที่เหมือนกันสองรายการและค้นหาการชนกัน ชัดเจนยิ่งขึ้นใน $c*\sqrt{N} $ จำนวนข้อความ ควรมีสองข้อความ m และ $ \เฉียบพลัน{m} $ ว่า H(m) = H($ \เฉียบพลัน{m}$) โดยที่โอกาสที่จะพบข้อความทั้งสองนี้อยู่ที่ประมาณ 50% (ซึ่งเป็นความน่าจะเป็นที่ยอมรับได้) ในสูตรนี้ $ค$ เป็นค่าคงที่และมีค่าประมาณเท่ากับ 1.2 และไม่สนใจในเอกสารและการคำนวณส่วนใหญ่ นอกจากนี้ สถิตินี้ถูกต้องสำหรับฟังก์ชันแฮชตามทฤษฎีเท่านั้น ซึ่งได้รับการออกแบบมาอย่างถูกต้องและไร้ที่ติ ในกรณีนี้ เราเพิ่งพบข้อความทั้งสองนี้โดยใช้กำลังดุร้ายและไม่ใช่การโจมตีอื่นใด เนื่องจากฟังก์ชันแฮชนั้นไร้ที่ติและออกแบบโดยใช้คณิตศาสตร์เชิงทฤษฎีล้วนๆ
หากเราต้องการยกตัวอย่างง่ายๆ เพื่อให้ชัดเจน สมมติว่า U = {0,1} 128 คือความยาวของไดเจสต์ จากนั้นจำนวนข้อความที่ผู้โจมตีควรเลือกจาก U เพื่อค้นหาไดเจสต์ที่เหมือนกัน 2 รายการและพบการชนกัน (เหตุการณ์นี้มีความเป็นไปได้เกือบ 50%) ควรเป็น :
$$ 1.2 * \sqrt{2^{128}} \cong 1.2 * (2^{64} ) \cong 2^{64} $$
นี่เป็นขอบเขตบนของการต้านทานการชนกันโดยอิงจากความขัดแย้งทางความน่าจะเป็นทางคณิตศาสตร์ที่ได้รับการพิสูจน์แล้ว และจะถูกต้องก็ต่อเมื่อฟังก์ชันแฮชที่ออกแบบไว้นั้นถูกต้องตามหลักทฤษฎีและทางคณิตศาสตร์ ถ้าเราต้องการหาการชนกันของจำนวนที่ต่ำกว่า $2^{64}$ ข้อความ ตามทฤษฎีนี้ ความน่าจะเป็นลดลงเหลือน้อยกว่า 50% หรืออีกนัยหนึ่งคือ มีโอกาสน้อยที่จะพบข้อความสองข้อความที่มีรายละเอียดย่อยเหมือนกัน
ตอนนี้ ถ้าฉันต้องการตอบคำถามเกี่ยวกับ "วิธีที่ง่ายกว่าการโจมตีด้วยกำลังเดรัจฉาน" สิ่งนี้จะเกิดขึ้นหากเราพบข้อบกพร่องในการออกแบบฟังก์ชันแฮชที่ผู้โจมตีใช้เพื่อหาสองข้อความที่มีการแยกย่อยเหมือนกัน ในจำนวนที่ต่ำกว่าของ $c*\sqrt{N} $ ข้อความ ดังที่ฉันได้กล่าวไว้ข้างต้น จากความขัดแย้งในวันเกิด อย่างน้อยเราควรทดสอบ $c*\sqrt{N} $ จำนวนข้อความที่จะพบการชนกัน ( ในการทดสอบจำนวนนี้ ความน่าจะเป็นที่จะพบการชนกันคือประมาณ 50%) อย่างไรก็ตาม หากมีข้อบกพร่องในการออกแบบฟังก์ชันแฮช ผู้โจมตีจะใช้ประโยชน์จากข้อบกพร่องนั้นและไม่ใช้กำลังดุร้ายเพื่อค้นหาการชนกัน นอกจากนี้ "วิธีการที่ง่ายกว่า" ในที่นี้คือประเภทของการโจมตีที่สามารถใช้กับฟังก์ชันแฮชมากกว่าการโจมตีด้วยกำลังเดรัจฉาน
นักเข้ารหัสออกแบบโครงร่างโดยยึดตามความปลอดภัยทางคอมพิวเตอร์มากกว่าความปลอดภัยที่สมบูรณ์แบบ นั่นคือพวกเขาพิสูจน์ความปลอดภัยของโครงร่างตามพลังการคำนวณ ในทางกลับกัน โครงร่างที่ออกแบบโดยไม่มีพื้นฐานทางคณิตศาสตร์ที่แข็งแกร่งซึ่งไม่สามารถต้านทานการโจมตีทางทฤษฎีทั่วไปนั้นไม่เป็นที่ยอมรับเลย ในปัจจุบัน ฟังก์ชันแฮชที่มีความปลอดภัย สามารถป้องกันการโจมตีทางคอมพิวเตอร์ทั่วไป และได้รับการพิสูจน์ทางคณิตศาสตร์ว่ามีประสิทธิภาพ ในทางทฤษฎี เป็นไปได้ที่จะออกแบบฟังก์ชันแฮชที่ปลอดภัย แต่ในทางปฏิบัติ มีหลายปัจจัย เช่น การนำไปใช้ที่ส่งผลต่อโครงร่างที่ออกแบบไว้