Score:0

ความหมายของคำว่า "ย้อนกลับไม่ได้" สำหรับการแฮช

ธง in

ฉันอยู่ในการสนทนาที่น่าสนใจกับ Jon Skeet ใน StackOverflow เขาระบุว่าแฮชไม่สามารถย้อนกลับได้ แต่เขาขยายขอบเขตนี้ไปยังแฮชที่ไม่ใช่การเข้ารหัส ฟังก์ชันแฮชมีขนาดเอาต์พุตเฉพาะในขณะที่ฟังก์ชันสามารถจัดการข้อความขนาดใดก็ได้ ดังนั้น หากคุณโต้แย้งจากมุมมองนั้น แฮชจะย้อนกลับไม่ได้เสมอ เนื่องจากมีหลายข้อความที่มีแฮชเดียวกัน

อย่างไรก็ตาม ฉันสงสัยว่านี่เป็นคำจำกัดความที่ถูกต้องของคำว่า "ย้อนกลับไม่ได้" หรือไม่ ในการเข้ารหัส จะย้อนกลับไม่ได้หมายความว่าเราไม่สามารถสร้างข้อความที่ถูกต้องด้วยความแน่นอนจำนวนมาก หรือหมายความว่าเราไม่สามารถหา ใดๆ ข้อมูลเกี่ยวกับข้อความนอกเหนือจากเมื่อเปรียบเทียบกับคู่ข้อความ / แฮชที่รู้จัก?

Score:1
ธง my

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

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

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

[1]: ใช่ ฉันรู้ว่าการโจมตีแบบขยายความยาวแสดงว่า SHA-2 ไม่ได้ทำหน้าที่เหมือนคำพยากรณ์แบบสุ่ม ซึ่งเป็นที่เข้าใจกันดี และเราแค่หลีกเลี่ยงการใช้ SHA-2 ในลักษณะที่ใช้ได้กับการโจมตีเฉพาะนั้น

Maarten Bodewes avatar
in flag
ฉันเห็นเหตุผลของคุณที่นี่และฉันเห็นด้วยกับมันถึงกระนั้น หากเราจะใช้แฮชการเข้ารหัสเป็นแบบพื้นฐานสำหรับแฮชรหัสผ่านหรือ KDF และถ้าแฮชรั่วไหลในบางส่วนของข้อความ นั่นจะไม่เป็นปัญหาใช่ไหม เราสันนิษฐานหรือไม่ว่า *ควร* ทำหน้าที่เป็น oracle แบบสุ่ม และทำให้ข้อมูลเกี่ยวกับข้อความไม่รั่วไหล?
poncho avatar
my flag
@MaartenBodewes: ถ้าเราคิดว่าการเรียงสับเปลี่ยนของ Keccak เป็น 'การเรียงสับเปลี่ยนแบบสุ่ม' ฉันเชื่อว่าเป็นการตรงไปตรงมาที่จะแสดง SHA-3 ไม่มีการรั่วไหลของข้อมูลใด ๆ เกี่ยวกับภาพ (และในทำนองเดียวกันกับ SHA-2 และการดำเนินการบีบอัดแฮช) ที่ดีเพียงพอหรือไม่?
Maarten Bodewes avatar
in flag
แน่นอนว่าดีพอสำหรับวัตถุประสงค์ คำถามของฉันคือ: "*ถ้า* พวกเขาจะรั่วไหลของข้อมูล บอกว่าบิตสุดท้ายถูกตั้งค่าหรือไม่ เราจะยังถือว่าพวกเขา "ย้อนกลับไม่ได้หรือไม่" ไม่แน่ใจว่าเราจะตอบได้จริงหรือไม่ เนื่องจาก "ไม่สามารถย้อนกลับได้" ไม่ใช่ความปลอดภัยจริงๆ ข้อกำหนดสำหรับฟังก์ชันแฮช ดังนั้นบางทีเราอาจจะอยู่นอกเหนือคำศัพท์ทางวิทยาศาสตร์ - แค่นั้น
poncho avatar
my flag
@MaartenBodewes: อืมมม ปัญหาคือ 'ไม่สามารถย้อนกลับได้' ไม่มีมาตรฐานที่ตกลงกันตามคำจำกัดความในชุมชนคริปโต ดังนั้นจึงเป็นการยากที่จะบอกว่าฟังก์ชันแฮชดังกล่าวจะตรงตามคำจำกัดความนั้นหรือไม่ ในทางกลับกัน สำหรับ SHA-2/3 มันจะระบุว่าการดำเนินการบีบอัดแฮช/การเรียงสับเปลี่ยนไม่เป็นไปตามสมมติฐานด้านความปลอดภัย และด้วยเหตุนี้ เราไม่ควรเชื่อถือฟังก์ชันแฮชโดยทั่วไป...

โพสต์คำตอบ

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