ใช้ก แข็งแกร่ง ฟังก์ชันแฮชเช่น 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(ค)$.
** แก้ไข: นี่คือสิ่งที่ตรงกันข้ามกับ โครงการนี้...