Score:3

การแฮชไฟล์ปลอมด้วยสามฟังก์ชัน CRC32, MD5 และ SHA-1 นั้นง่ายเพียงใด

ธง pk

ไฟล์-A ถูกแฮชด้วย CRC32, MD5 และ SHA-1

การสร้าง file-B ปลอมที่มีแฮชเหมือนกันกับ file-A นั้นง่ายเพียงใด CRC32, MD5 และ SHA-1?

พีซีทั่วไปที่มี GPU สามารถคำนวณการชนกันของแฮชสามเท่าของไฟล์ A ได้หรือไม่ และจะใช้เวลานานแค่ไหน?

Score:10
ธง my

การสร้าง file-b ปลอมที่มีแฮชของ file-a เหมือนกันนั้นง่ายเพียงใด crc32, md5 และ sha1?

สิ่งนี้เป็นที่รู้จักกันในแวดวงการเข้ารหัสว่าเป็นปัญหา 'ภาพก่อนหน้าที่สอง'

ด้วย CRC32 เป็นเรื่องง่าย เพียงใช้ข้อความต้นฉบับและเพิ่ม (นั่นคือ xor) สำเนาพหุนาม CRC ที่เลื่อนบางส่วนและนั่นจะไม่เปลี่ยนแฮช หากคุณไม่มี file-a ดั้งเดิม (คุณมีเฉพาะแฮช) การสร้าง file-b จะเกี่ยวข้องกับการแก้สมการบูลีนพร้อมกัน 32 สมการ ซึ่งยากกว่าเล็กน้อย

ด้วย MD5 และ SHA-1 ไม่มีวิธีปฏิบัติที่เป็นที่รู้จัก ในทั้งสองกรณี วิธีที่ดีที่สุดที่เรามีคือลองใช้ file-b จำนวนมหาศาลโดยพลการ จนกว่าเราจะพบไฟล์ที่มีแฮชตามที่คาดไว้ ซึ่งเป็นงานที่เป็นไปไม่ได้ในทั้งสองกรณี

ตอนนี้ สิ่งที่เป็นที่รู้จักใน MD5 และ SHA-1 คือวิธีสร้างไฟล์สองไฟล์ที่แตกต่างกันด้วยแฮชเดียวกัน อย่างไรก็ตาม เมธอดเหล่านี้จำเป็นต้องสามารถระบุไฟล์ทั้งสองได้ และไม่สามารถใช้ได้หากไฟล์ใดไฟล์หนึ่งถูกกำหนดไว้แล้ว

พีซีเฉลี่ยที่มี GPU สามารถคำนวณการชนกันของแฮชสามเท่าของไฟล์ -a ได้หรือไม่

ไม่มีทางทราบได้ (ในทางปฏิบัติ เช่น ก่อนที่ดวงอาทิตย์จะกลายเป็นดาวยักษ์แดง...)

ma flag
ด้วย CRC-32 มันง่ายมาก: https://www.nayuki.io/page/forcing-a-files-crc-to-any-value
nisc avatar
it flag
@Nayuki นั่นคือสิ่งที่ปอนโชพูด
Score:4
ธง in

ดังที่เสื้อปอนโชเขียนไว้ เราไม่รู้ว่าจะหาพรีอิมเมจที่สองสำหรับ SHA1 หรือ MD5 ได้อย่างไร นับประสาอะไรกับทั้งสองอย่าง

อย่างไรก็ตาม เรารู้วิธีค้นหาการชนกัน ด้วยธรรมชาติของโครงสร้าง MD เราสามารถแปลงการชนเป็นการชนหลายครั้งได้อย่างง่ายดาย ซึ่งหมายความว่าเราสามารถสร้างข้อความจำนวนมากที่จะชนกัน ดังนั้นเราสามารถสร้างการชนกันของ SHA-1 (แฮชที่กว้างกว่า) จำนวนมาก และรับส่วนที่เหลือผ่านการโจมตีวันเกิด ตามที่อธิบายไว้ที่นี่: การสร้างการชนกันของ MD5 และ SHA1 พร้อมกันนั้นยากเพียงใด

ภาพตัวอย่างที่ 2 ของทั้ง 3 ตัวนี้ดูเหมือนจะเหนือกว่าเรา แต่การชนกันของ SHA-1 และ MD5 จะมีค่าใช้จ่าย $2^{67}$ การดำเนินงาน เราสามารถทำได้อีก 16 ครั้งเพื่อสร้างการชนกันหลายครั้งบนทั้งสอง และค้นหาการชนกันสำหรับ CRC32 (หรือแฮช 32 บิตใด ๆ แม้แต่อันที่แข็งแกร่ง) ซึ่งจะทำให้ต้นทุนรวม $2^{71}$ เพื่อสร้างข้อความ 2 ข้อความที่ชนกันในทั้ง 3 แฮช แต่สิ่งนี้จะเกิดขึ้นเมื่อผู้โจมตีเลือกทั้งสองข้อความ ไม่ใช่เมื่อมีข้อความหนึ่งให้ สิ่งนี้เกินกว่าที่พีซีทรงพลังเครื่องเดียวจะทำได้ แต่ไม่เกินความหมายของรัฐชาติและบริษัทขนาดใหญ่

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา