Score:2

ภาพล่วงหน้าโจมตีฟังก์ชันแฮชที่ไม่ใช่การเข้ารหัส

ธง us

ฉันไม่เก่งเรื่องการเข้ารหัสเลย ได้โปรด :)

หลังจากอ่านข้อความนี้ อภิปรายผล ตอนนี้เป็นที่ชัดเจนสำหรับฉันแล้วว่า xxHash ไม่ทนต่อการโจมตีจากการปะทะกันและไม่ปลอดภัยสำหรับ แมค การใช้งาน แต่หลังจากอ่าน ฉันก็ยังไม่เข้าใจว่า XXH3 (หนึ่งในตระกูล xxHash) ทนต่อการโจมตีแบบพรีอิมเมจได้อย่างไร

ใช่ เอาต์พุต XXH3 คือ $64$/$128$ บิต ซึ่งหมายความว่าความน่าจะเป็นในการค้นหารูปภาพคือ $2^{64}$/$2^{128}$ ที่สอดคล้องกัน แต่ฉันยัง อ่าน แฮชที่ไม่ทนทานต่อการโจมตีแบบชนกันจะย้อนกลับได้ง่ายกว่า พิจารณาสิ่งนี้เพื่อย้อนกลับฟังก์ชันแฮชนี้ ($128$ รุ่นบิต) โดยใช้กำลังเดรัจฉานจะอยู่รอบๆ $2^{64}$ มีการคำนวณซึ่งใช้เวลานานมาก ตามนี้ คำถาม แม้ว่า XXH3 จะเร็วกว่า SHA-512/64 ถึง 1,000 เท่าในการย้อนกลับ แต่ก็ต้องใช้เวลาอย่างน้อย $\frac{2^{64}}{1000 * 2^{20}}$ วินาที หรือ 557 ปี

ซึ่งนำฉันไปสู่คำถามแรกของฉัน ข้อสรุปของฉันเป็นจริงหรือไม่ และ XXH3 เกือบจะทนทานต่อการโจมตีด้วยภาพล่วงหน้าได้เท่ากับ SHA-512/64 หรือไม่ ฉันพลาดอะไรไปรึเปล่า? อาจมีการโจมตีแบบไม่ดุร้ายบ้าง?

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

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

Score:3
ธง my

แต่หลังจากอ่าน ฉันก็ยังไม่เข้าใจว่า XXH3 (หนึ่งในตระกูล xxHash) ทนต่อการโจมตีแบบพรีอิมเมจได้อย่างไร

ไม่เลย เป็นเรื่องง่ายที่จะสร้างภาพที่แฮชเป็นค่าตามอำเภอใจ

ใช่ เอาต์พุต XXH3 คือ 64/128 บิต ซึ่งหมายความว่าความน่าจะเป็นในการค้นหาภาพคือ $2^{64}/2^{128}$ ที่สอดคล้องกัน

ความน่าจะเป็นจะเกิดขึ้นหากกลยุทธ์ที่คุณใช้คือ "เลือกภาพ แฮช และดูว่าผลลัพธ์คืออะไร" มีกลยุทธ์ที่มีประสิทธิภาพมากขึ้น

อาจมีการโจมตีแบบไม่ดุร้ายบ้าง?

แน่นอน

xxhash ประกอบด้วยขั้นตอนที่:

  • แปลงสถานะปัจจุบันด้วยวิธีกลับด้าน หรือ

  • เพิ่มคำที่ขึ้นกับคำถัดไปของรูปภาพ (และจะไม่มีการดำเนินการอื่นใดภายใน xxhash ขึ้นอยู่กับคำที่ป้อนนั้น)

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

และเพื่อตอบคำถามสุดท้ายของคุณ:

สำหรับแฮชการเข้ารหัสเป็นการยากที่จะค้นหา แต่มีอยู่จริง เมื่อเราทำการโจมตี preimage สำเร็จแล้ว เราจะแน่ใจได้อย่างไรว่าค่าที่เราพบนั้นเป็นค่าดั้งเดิม

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

Eugene Sirkiza avatar
us flag
ขอบคุณมาก @poncho สำหรับคำตอบของคุณ มีวิธีใดบ้างที่จะประเมินว่าต้องใช้เวลาเท่าใดในการค้นหาแฮชที่ "ถูกต้อง" ฉันหมายความว่า มันเป็นคำถามประเภทอื่นอย่างแน่นอน แต่จากคำตอบของคุณตอนนี้ ฉันสนใจคำถามต่อไปนี้ ความซับซ้อนของการค้นหาภาพที่เป็นไปได้ทั้งหมดที่แฮชเป็นค่าที่ระบุคืออะไร? และเราสามารถประเมินได้ว่าภาพพรีอิมเมจเหล่านี้มีอยู่กี่ภาพ?

โพสต์คำตอบ

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