Score:5

การแฮชการเข้ารหัส ECB ด้วยฟังก์ชันแฮชที่แข็งแกร่งจะสร้าง MAC ที่ปลอดภัยหรือไม่

ธง ng

ใช้ก แข็งแกร่ง ฟังก์ชันแฮชเช่น SHA-256 ไปจนถึงการเข้ารหัส ECB ของข้อความ (โดยใช้รหัสลับ $K$) ผลิต Mac ที่ปลอดภัยหรือไม่ เช่น กำหนดให้ข้อความ $m$, จะสร้าง mac อย่างง่าย $H(E_K(ม.))$ ถือว่าเป็น Mac ที่ปลอดภัยหากเราใช้แฮชที่แข็งแกร่ง $H$ เช่น SHA-256?

เมื่อเทียบกับ HMAC มาตรฐาน โครงสร้างนี้ดูเรียบง่ายกว่าและอาจดำเนินการเร็วกว่าเล็กน้อยด้วยซ้ำ นอกจากนี้ ดูเหมือนว่าโครงการ mac นี้จะไม่มีความเสี่ยง การโจมตีแบบขยายความยาว ทั้งเนื่องจากไม่มีความรู้เรื่อง $K$ดูเหมือนว่าผู้โจมตีไม่สามารถ "ขยาย" อินพุตไปยังฟังก์ชันแฮชได้ $H$ ตั้งแต่ผลลัพธ์ของ $E_K(ม)$ ไม่เคยได้รับ "เปิดเผย" ต่อผู้โจมตี แต่จะถูกใช้เป็นเพียงขั้นตอนการคำนวณระดับกลางภายใน $H(E_K(ม.))$.

ได้มาตรฐานแน่นอน $\text{HMAC}(K,m)$ การก่อสร้างน่าจะปลอดภัยกว่าจากการใช้ "ฟังก์ชันแฮชที่อ่อนแอ" ดังนั้นฉันจึงต้องการอย่างจงใจ $H$ ในการก่อสร้างของฉันให้เป็นฟังก์ชันแฮชที่ "แข็งแกร่ง" (เช่น SHA-256) ที่ควรจะทนต่อการชนกันและ (แน่นอน) ทนต่อพรีอิมเมจเช่นกัน

ในทำนองเดียวกันคีย์นี้ $K$ จะ เท่านั้น ใช้สำหรับสร้าง mac เท่านั้นและ ไม่ "แบ่งปัน" เพื่อวัตถุประสงค์ในการเข้ารหัสอื่น ๆ ที่อื่น. เนื่องจากหาก "ส่วนอื่นของแอปพลิเคชัน" บางส่วน ใช้ซ้ำ $K$ สำหรับการเข้ารหัสทั่วไปที่อื่น ผู้โจมตีอาจใช้ประโยชน์จากสิ่งนั้นเพื่อพิจารณา $c=E_K(p)$ สำหรับข้อความธรรมดาที่รู้จักหรือเลือก (หรือแม้แต่ "ที่ได้มา") $p$และทำให้ปลอมแปลงข้อความเล็กน้อย $m = p$ พร้อมกับ mac ที่ถูกต้อง $H(ค)$.

** แก้ไข: นี่คือสิ่งที่ตรงกันข้ามกับ โครงการนี้...

Maarten Bodewes avatar
in flag
โปรดทราบว่า HMAC ยังคงเป็น H พื้นฐานผ่านข้อมูลเพียงชุดเดียว แม้ว่า ECB + hash scheme จะใช้ได้กับข้อมูลจำนวนมาก (และฉันก็ไม่แน่ใจเหมือนกันเพราะมีการใช้คีย์ซ้ำ) มันจะเป็น แบบแผนสองรอบ แทนที่จะเป็นแบบแผนแบบผ่านเดียว
Score:8
ธง ng

ไม่ การก่อสร้างที่เสนอไม่ปลอดภัยยกเว้นขนาดบล็อก $ข$ ของรหัสบล็อกมีขนาดใหญ่ผิดปกติหรือกว้างกว่า MAC มาก ทะลึ่ง $p$ รู้จักคู่ข้อความ/MAC ที่แตกต่างกัน $(m_i,h_i)$ กับ $ข$- ข้อความบิต $m_i$ และ $h_i$ อย่างน้อย $ข$-บิต มีการโจมตีธรรมดาของต้นทุนที่คาดหมายไว้ $2^b/p$ แฮชและการค้นหาระหว่าง $h_i$.

การโจมตีเพียงแค่แฮชความแตกต่างโดยพลการ $ข$- ค่าบิต $ค$ จนกระทั่ง $H(ค)$ คือหนึ่งใน $h_i$. ด้วยความน่าจะเป็นที่ดี การเข้ารหัสที่เกี่ยวข้อง $m_i$ เป็น $ค$. สิ่งนี้ทำให้สามารถคำนวณ MAC ได้เล็กน้อย $m_i\mathbin\|m_i$ เช่น $H(c\mathbin\|c)$ซึ่งถือว่าเป็นการปลอมแปลง

การโจมตีค่อนข้างเป็นไปได้เมื่อมีการเข้ารหัสบล็อก $64$-บิต เช่น 3 ปุ่ม 3DES หรือ IDEA ด้วย AES-256 และ $p=2^{40}$มันมีค่าใช้จ่ายที่สมเหตุสมผล $2^{88}$ แฮชและการค้นหาระหว่าง $p$ ค่า

หมายเหตุ: โครงสร้างตามที่ระบุไว้ในคำถามใช้ได้เฉพาะกับข้อความที่มีขนาดหลายเท่าของ $ข$. ช่องว่างภายในการเข้ารหัสบล็อกทั่วไป (เช่น ต่อท้ายหนึ่งบิตแล้ว $0$ ถึง $b-1$ บิตศูนย์เท่าที่จำเป็นเพื่อไปถึงจุดสิ้นสุดของบล็อก) สามารถแก้ไขได้ แต่การโจมตีสามารถปรับเปลี่ยนได้ง่าย

โพสต์คำตอบ

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