ทำไม SHA-224 และ SHA-256 จึงใช้ค่าเริ่มต้นที่ต่างกัน?


9

Wikipedia - SHA-2กล่าว

SHA-224 นั้นเหมือนกับ SHA-256 ยกเว้นว่า:

  • ค่าตัวแปรเริ่มต้น h0 ถึง h7 นั้นแตกต่างกันและ
  • เอาต์พุตถูกสร้างโดยการละเว้น h7

RFC3874 - ฟังก์ชันแฮชทางเดียว 224 บิต: SHA-224กล่าว

การใช้ค่าเริ่มต้นที่แตกต่างกันทำให้มั่นใจได้ว่าค่าการแยกย่อยข้อความ SHA-256 ที่ถูกตัดทอนไม่สามารถถูกเข้าใจผิดว่าเป็นค่าการแยกย่อยข้อความ SHA-224 ที่คำนวณจากข้อมูลเดียวกัน

คำถามของฉัน:

  1. เหตุผลที่ยกมาข้างต้นเป็นเหตุผลเดียวว่าทำไม SHA-224 และ SHA-256 ใช้ค่าเริ่มต้นที่แตกต่างกันหรือไม่

  2. เหตุใดจึงสำคัญที่ต้องตรวจสอบให้แน่ใจว่าค่าการแยกย่อยข้อความ SHA-256 ไม่สามารถเข้าใจผิดว่าเป็นค่าสรุปข้อความ SHA-224 หรือไม่

  3. หากเราใช้ค่าเริ่มต้นเดียวกันสำหรับฟังก์ชันแฮชทั้งสองความปลอดภัยของฟังก์ชันแฮชจะแย่ลงหรือไม่ ถ้าใช่เป็นอย่างไร


7
นี้เป็นเกือบแน่นอนแบบที่ดีขึ้นในcrypto.SE
Peter Taylor

1
อย่างน้อยคำถามที่ 2 ดูเหมือนจะไม่ได้อยู่ที่นี่ ท้ายที่สุดมันเกี่ยวข้องกับวิธีการที่คนใช้คอมพิวเตอร์และสิ่งที่สะดวกสำหรับพวกเขา ไม่ใช่คำถาม TCS จริงๆ
Jukka Suomela

คำถามที่เกี่ยวข้องกับ Crypto.SE: crypto.stackexchange.com/questions/3946/…
mikeazo

คำตอบ:


4
  1. สิ่งนี้เราเรียกว่า Domain Separation เมื่อเราใช้อัลกอริทึมเดียวกันสำหรับขนาดเอาต์พุตที่ต่างกัน
  2. จำเป็นต้องมีการแยกเนื่องจากถ้าฉันพบข้อความสองข้อความที่มีค่าแฮช (SH256) จะแตกต่างกันใน octet ล่าสุดเท่านั้นและจากนั้นฉันสามารถเผยแพร่ค่าแฮชเป็น 7 octet แรกที่แสดงว่าฉันใช้ SHA224 เนื่องจากฉันมีสองข้อความที่ขัดแย้งกันใน SHA224 ซึ่งฉันสามารถใช้ในภายหลังเพื่อการโจมตีที่เป็นการปลอมแปลง การใช้การแยกโดเมนเราสามารถหลีกเลี่ยงสถานการณ์ดังกล่าวได้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.