Score:1

ความเป็นไปได้สูงแค่ไหนที่แฮชจะชนกันในไฟล์ข้อความ?

ธง in

ตัวอย่างเช่น สมมติว่าฉันดาวน์โหลด "the adventures of tom sawyer" จาก gutenberg ในรูปแบบไฟล์ .txt และบันทึกลงในธัมบ์ไดรฟ์ usb ของฉัน

และอย่างที่คุณเห็น ไดรฟ์ usb ไม่ใช่อุปกรณ์ที่เหมาะสำหรับการเก็บรักษาข้อมูลในระยะยาว แต่ถ้าฉันยืนยันที่จะใช้มัน มีความเป็นไปได้ที่ไฟล์ใด ๆ ในที่เก็บข้อมูลของฉันจะเสียหายในที่สุดหลังจากไม่ได้เปิดเครื่องเป็นเวลานาน

ดังนั้นสิ่งที่ฉันจะทำตอนนี้คือบันทึกแฮชของไฟล์เมื่อทำการบันทึกครั้งแรก และหลังจากนั้นฉันสามารถเปรียบเทียบค่าแฮชปัจจุบันกับค่าที่ฉันบันทึกในตอนแรกได้อย่างง่ายดาย หากทั้งสองแตกต่างกัน ก็มีความเป็นไปได้สูงที่จะเสียหาย (เช่น เพิ่มคำไร้สาระ หรือบางส่วนของเอกสารหายไป) ฉันวางแผนที่จะทำเช่นนี้กับไฟล์สำคัญทั้งหมดที่ฉันบันทึกไว้ในที่เก็บข้อมูล

แต่ปัญหาคือ บางครั้งแฮชจะเหมือนกันแม้ว่าจะมีการเปลี่ยนแปลงเล็กน้อย เนื่องจากจำนวนเอาต์พุตแฮชจะน้อยกว่าอินพุตข้อมูลเสมอ ฉันควรกังวลเกี่ยวกับการชนกันสำหรับกรณีการใช้งานของฉันหรือไม่? แล้วไฟล์ประเภทอื่นๆ เช่น pdf, jpg, exe, zip เป็นต้นล่ะ? สิ่งเหล่านี้เสี่ยงต่อการชนกันของแฮชหรือไม่

และสุดท้าย ฉันรู้ว่ามีอัลกอริทึมแฮชมากมายสำหรับไฟล์เดียวตั้งแต่ crc32 ถึง md5 ถึง sha1 ฯลฯ และเพื่อจุดประสงค์ของฉัน (เพียงแค่ตรวจสอบความถูกต้องของข้อมูล) คุณจะแนะนำอะไร และเพราะเหตุใด

ขอบคุณล่วงหน้า!

Score:2
ธง ng

เมื่อใช้ก $n$-บิตแฮช ความน่าจะเป็นที่ บังเอิญ การเปลี่ยนแปลงไปตรวจไม่พบเป็นเรื่องเกี่ยวกับ $2^{-n}$ (สำหรับแฮชที่บรรลุเป้าหมายการออกแบบเพียงเล็กน้อย)

หากมีใครใช้เทคนิคนี้หนึ่งครั้งต่อวินาทีเป็นเวลา 100 ปี ด้วยแฮช 128 บิตเช่น MD5 ความน่าจะเป็นนั้นก็คือ $36524\times86400\times2^{-128}\ประมาณ2^{31.6-128}=2^{-96.4}$.

เรารู้จัก 44 หลุมอุกกาบาต บนโลกที่เกิดจากการชนกับเทห์ฟากฟ้าที่มีขนาดใหญ่พอที่จะเป็นผลกระทบครั้งใหญ่ต่ออารยธรรมปัจจุบันของเรา ซึ่งเกิดขึ้นในช่วง 2.3G ปีที่ผ่านมา ดังนั้นความน่าจะเป็นของเหตุการณ์ที่ก่อกวนอารยธรรมภายในกรอบเวลา 100 ปีนี้ อย่างน้อยที่สุด $44\times100/(2.3\times10^9)\ประมาณ2^{-19}$ (และฉันมองโลกในแง่ดีที่นี่: การลบล้างนิวเคลียร์ที่มนุษย์สร้างขึ้นมีความเป็นไปได้มากกว่า) ดังนั้นจึงไม่มีประเด็นใดที่จะต้องกังวลเกี่ยวกับความน่าจะเป็นเท่านั้น $2^{-96.4}$.


แต่ในการเข้ารหัส เราพิจารณา ฝ่ายตรงข้าม ที่พยายามเอาชนะเราอย่างแข็งขัน ถ้าเราใช้แฮช 128 บิต (เช่น MD5) และสร้างไฟล์จำนวนมาก (เช่น $2^{31.6}$ ดังข้างต้นซึ่งแฮชพอดีกับแท่ง USB ขนาด 64GB) และมีศัตรูที่ทรงพลังด้วยประเภทของทรัพยากรที่เสียไปในการขุด bitcoin จากนั้นความเป็นไปได้ที่พวกเขาจะพบไฟล์ที่มีแฮชเดียวกันกับไฟล์ของเรานั้นมีขนาดใหญ่มาก (แม้ว่าจะไม่ใช่ประเด็น คงจะรำคาญ)

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


เพื่อจุดประสงค์ของฉัน (แค่ตรวจสอบความถูกต้องของข้อมูล) คุณจะแนะนำอะไร

การเพิกเฉยต่อความเป็นไปได้ของการปรับเปลี่ยนของฝ่ายตรงข้ามนั้นอยู่นอกหัวข้อในกลุ่มคริปโต ถ้าเราทำเช่นนี้ CRC ก็เพียงพอแล้ว 64 บิตก็ใช้ได้ สิ่งเดียวที่ต้องกลัวคือสื่ออาจใช้ CRC เป็นการภายในและแทรกแซงได้ เนื่องจากขาดข้อมูล การเลือก CRC ดั้งเดิม 64 บิตแบบสุ่มจึงสมเหตุสมผล

กลับไปที่การเข้ารหัสและเป็นแบบจำลองที่เป็นปฏิปักษ์: ควรใช้แฮชที่ไม่เสียหายเช่นเดียวกับตระกูล SHA-2 หรือ SHA-3 SHA-256 มีความปลอดภัยเพียงพอสำหรับอย่างน้อยหนึ่งทศวรรษ แต่ SHA-512 จะคงอยู่ตลอดไป (ในระดับมนุษย์) แม้ว่าเราจะคิดว่าเราเคยได้รับ SHA-512 ก็ตาม คอมพิวเตอร์ควอนตัมที่เกี่ยวข้องกับการเข้ารหัสลับ.


¹ ฉันกำลังพูดถึงพลังงานไฟฟ้าโดยรวมและวงจรรวมที่สูญเสียไป อย่างไรก็ตาม ส่วนใหญ่จะไม่มีไว้สำหรับการแฮชแบบขนานขนาดใหญ่กับ ASIC เช่นเดียวกับการขุด bitcoin มันจะเป็นหน่วยความจำที่รวดเร็วที่จัดระเบียบสำหรับการค้นหา เนื่องจากการประมวลผลแฮช MD5 มีค่าใช้จ่ายต่ำเมื่อเทียบกับการจับคู่กับแฮช $2^{\ประมาณ31.6}$ แฮชเป้าหมาย

in flag
ขอบคุณมากสำหรับคำตอบโดยละเอียดของคุณ! Btw ฉันจะไม่คิดมากเรื่องความปลอดภัยเพราะไฟล์ส่วนใหญ่ของฉันเป็นเนื้อหาสำหรับการอ้างอิงหรือเพื่อความบันเทิง ดังนั้นสำหรับตัวอย่างข้างต้น หากมีการเพิ่ม ลบ หรือแทนที่ด้วยคำอื่นในนวนิยายปกอ่อน 300 หน้า เนื่องจากไฟล์เสียหาย โอกาสที่คำนั้นจะมีค่าแฮชเหมือนกับต้นฉบับนั้นน้อยมากเมื่อเทียบกับการชนะลอตเตอรี่ 3 ครั้งติดต่อกันหรือต่ำกว่านั้น จริงไหม? ขอบคุณอีกครั้งเพื่อความสบายใจ :) ตอบรับแล้ว
fgrieu avatar
ng flag
@tadkov: ใช่ ด้วยแฮช 128 บิต อัตราต่อรองที่ไฟล์ใดๆ ที่แฮชที่ 1 ต่อวินาทีเป็นเวลา 100 ปี _accidentally_ จะเสียหายโดยปราศจากการตรวจจับนั้นต่ำกว่า (โดยปัจจัย 4000) มากกว่าการชนะ Powerball สามครั้งในการเดิมพันสามครั้ง

โพสต์คำตอบ

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