Score:4

$H(k || m) \oplus k$ ปลอดภัยหรือไม่

ธง fr

เป็นที่รู้จักกันว่า $H(k || ม)$ (เมื่อใช้ SHA1) เป็นฟังก์ชัน MAC ที่ไม่ปลอดภัยเนื่องจากมีความเสี่ยงต่อการขยายความยาวของแฮช

แต่สิ่งที่เกี่ยวกับ $H(k || m) \oบวก k$? การขยายความยาวแฮชแบบปกติดูเหมือนจะเป็นไปไม่ได้แล้วในตอนนี้ แม้ว่าจะใช้คีย์เดียวกันหลายครั้ง ฉันไม่เห็นปัญหาตราบใดที่ผลลัพธ์ของ $H$ สุ่มก็พอ ฉันถูกไหม?

kelalaka avatar
in flag
ยินดีต้อนรับสู่ Cryptography.SE นี่เป็นคำถามการบ้านหรือไม่? ที่มาของคำถามนี้คืออะไร?
Maarten Bodewes avatar
in flag
โปรดทราบว่าสำหรับคุณสมบัติการรักษาความปลอดภัยของ SHA-3 เพียงแค่ $H(k \| m)$ ถือว่าปลอดภัย - KMAC ไม่มีอะไรมากไปกว่านั้น (แต่ใช้ SHAKE ไม่ใช่ SHA)
Johny Dow avatar
fr flag
@kelalaka ฉันกำลังอ่านการเขียน CTF และพบการโจมตีส่วนขยายความยาวแฮช ตอนนี้ฉันแค่สงสัยเกี่ยวกับการก่อสร้างนี้
kelalaka avatar
in flag
มันเกินความจำเป็นสำหรับฟังก์ชันแฮชที่ปลอดภัยเช่น SHA3 และ Blake2
Score:6
ธง ng

พิจารณา $H$ กำหนดเป็น: SHA-512 โดยเป็นเอาต์พุต XORed พร้อม 512 บิตแรกของข้อความอินพุต (เติมด้วยเลขศูนย์สำหรับข้อความสั้น) ด้วยประการฉะนี้ $H$MAC ที่เสนอนั้นไม่ปลอดภัย แต่เท่าที่ทราบมานี้ $H$ ไม่เลวร้ายไปกว่า SHA-512 จากมุมมองมาตรฐาน

อาร์กิวเมนต์: สังเกตว่าถ้า $H(m_1\mathbin\|m_2)=\operatorname{SHA-512}(m_1\mathbin\|m_2)\oplus m_1$ และ $\operatorname{MAC}_k(m)=H(k\mathbin\|m)\oplus k$จากนั้นสำหรับคีย์ 512 บิต¹ $k$ มันถือ $\operatorname{MAC}_k(m)=\operatorname{SHA-512}(k\mathbin\|m)$. ดังนั้นสิ่งนี้ $\operatorname{MAC}$ มีความอ่อนไหวต่อการโจมตีขยายความยาว²

ดังนั้นจึงเป็นไปไม่ได้ที่จะพิสูจน์ว่า $H(k\mathbin\|m)\oplus k$ เป็น MAC ที่ปลอดภัยโดยไม่มีข้อมูลเชิงลึกเกี่ยวกับโครงสร้างภายในของ $H$.

ฉันค่อนข้างมั่นใจว่าโครงสร้าง MAC ที่เสนอนั้นปลอดภัยจริงสำหรับแฮชของตระกูล SHA-2 และแม้แต่ SHA-1 เราอาจต้องการ พิสูจน์ ความปลอดภัยภายใต้สมมติฐานที่แฮชมี Merkle-DamgÃ¥rd โครงสร้าง ฟังก์ชันการบีบอัดที่สร้างขึ้นจากรหัสบล็อก $E$ ต่อ เดวีส์-เมเยอร์ ก่อสร้างโดยมีขนาดบล็อกและแป้นที่เหมาะสมกับ $E$. ฉันคิดว่าสิ่งนี้จะเป็นไปได้ภายใต้โมเดลรหัสในอุดมคติ แต่ไม่ใช่โมเดลมาตรฐานของการรักษาความปลอดภัย $E$. ปัญหาคือการ XORing คีย์ที่มีเอาต์พุตของรหัสบล็อกอาจทำให้คีย์อ่อนลงได้ เป็นกรณีเช่นสำหรับ AES-128 ในโหมดถอดรหัส โดยที่ XOR จะลบความปลอดภัยที่มีมูลค่าหนึ่งรอบออกไป


¹ สำหรับคีย์ที่มีขนาดตามอำเภอใจ $\operatorname{MAC}_k(m)=\operatorname{SHA-512}(k\mathbin\|m)\oplus F_{|k|}(m)$ ที่ไหน $F_{|k|}(ม)$ เป็น $0^{\min(|k|,512)}$ตามด้วยอันแรก $\min(\max(512-|k|,0),|m|)$ บิตของ $m$, ติดตามโดย $0^{\max(512-|k|-|m|,0)}$. สิ่งนี้ยังคงอนุญาตให้โจมตีได้

² ตรงกันข้ามกับสิ่งที่ฉันเขียนในตอนเริ่มต้น เราไม่สามารถกู้คืนได้ $k$ จากการสอบถาม.

cisnjxqu avatar
us flag
ฉันมีช่วงเวลาที่ยากลำบากในการพิสูจน์ว่า $H$ เป็นฟังก์ชันแฮชที่ป้องกันการชนกัน ให้ $H(m_1\|m_2) = \mathrm{SHA}(m_1\|m_2)\oplus m_1$กำหนดให้เกิดการชนกันของ $H(m_1\|m_2)$ เราต้องให้เกิดการชนกันของ $\mathrm{SHA}$ ให้ $m_a, m_b$ เป็นสองอินพุตที่ชนกันของ $H$ กับ $m_a \neq m_b$ และ $H(m_a) = H(m_b)\iff\mathrm{SHA}(m_{a_1}\|m_{a_2} )\oplus m_{a_1} = \mathrm{SHA}(m_{b_1}\|m_{b_2})\oplus m_{b_1}$ เป็นเรื่องง่ายที่จะหาค่าการชนกันหาก $m_{a_1} = m_{b_1}$ แต่ถ้าพวกมันต่างกันล่ะ เราสามารถจำกัดความน่าจะเป็นที่พวกมันต่างกันได้หรือไม่?
fgrieu avatar
ng flag
@cisnjxqu: ฉันคิดว่าเราสามารถพิสูจน์ได้ว่า $H$ กำหนดไว้เช่นนั้น $H(m_1\mathbin\|m_2)=\mathrm{SHA}(m_1\mathbin\|m_2)\oplus m_1$ ทนต่อการชนกันภายใต้แบบจำลองของ $\mathrm{SHA}$ เป็นออราเคิลแบบสุ่ม อย่างไรก็ตาม นั่นเป็นแบบจำลองที่ไม่ดี เนื่องจากไม่ได้คำนึงถึงคุณสมบัติการขยายความยาว ฉันคิดว่าเราสามารถพิสูจน์ให้ละเอียดยิ่งขึ้นด้วยแบบจำลอง $\mathrm{SHA}$ ที่ละเอียดกว่า ซึ่งเราใช้โครงสร้าง Merkle-DamgÃ¥rd จริง และฟังก์ชันแบบวงกลมที่จำลองโดย oracle แบบสุ่ม
cisnjxqu avatar
us flag
นั่นอาจเป็นไปได้ ใช่ ฉันคิดว่าคำถามของฉันคือมีฟังก์ชันแฮชที่ป้องกันการชนกันหรือไม่ (ที่นี่ $\mathrm{SHA}$) ซึ่ง $H$ นั้น _not_ ต้านทานการชนกัน
fgrieu avatar
ng flag
@cisnjxqu : ใช่ ตัวอย่าง: กำหนดให้ $S(m)$ เป็นบิตแรกของ $m$ ต่อด้วยแฮชในอุดมคติของส่วนที่เหลือของ $m$ $S$ กันการชนกัน แต่ $H$ ถูกกำหนดโดย $H(m_1\mathbin\|m_2)=S(m_1\mathbin\|m_2)\oplus m_1$ ไม่ใช่ เนื่องจากบิตแรกของอินพุตของ $ H$ ไม่มีผลต่อผลลัพธ์
Johny Dow avatar
fr flag
@fgrieu ขอบคุณมาก! คุณช่วยบอกเคล็ดลับเพิ่มเติมเกี่ยวกับวิธีกู้คืนคีย์โดยใช้ส่วนขยายความยาวแฮชได้ไหม ฉันคิดไม่ออก..
fgrieu avatar
ng flag
@Johny Dow: ฉันคิดผิด เรากู้คืนคีย์ไม่ได้ ดูคำตอบสองย่อหน้าแรกที่แก้ไขแล้ว

โพสต์คำตอบ

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