ขอบคุณ ซามูเอล เนเวส ที่ชี้ทางที่ถูกต้องให้ฉัน. ฉันดูที่ การอ้างอิงที่กล่าวถึงและสัมผัสกับวิธีที่ทฤษฎีบท 6.1 ล้มเหลวเนื่องจากการรักษาความปลอดภัยที่อ่อนแอ นอกจากนี้ยังครอบคลุมถึง MAC ที่มีความปลอดภัยต่ำโดยไม่มีการสืบค้นเพื่อยืนยัน แต่สูญเสียการรักษาความปลอดภัยเมื่อมีการค้นหาการยืนยัน
ทำไมทฤษฎีบท 6.1 ถึงพัง
ฉันพบว่าความละเอียดอ่อนเกิดขึ้นในการกำหนดเกมรุก ฝ่ายตรงข้ามสามารถส่งแท็กข้อความคู่ใดก็ได้ $(ม., เสื้อ)$ สำหรับการตรวจสอบตราบเท่าที่ไม่ได้อยู่ในคู่ที่ลงนามก่อนหน้านี้ สิ่งที่สำคัญคือในนิยามเดิมของการรักษาความปลอดภัย ฝ่ายตรงข้ามจะชนะเกมการโจมตี ถ้าและถ้า ฝ่ายตรงข้ามส่งคู่แท็กข้อความที่ถูกต้องและไม่เคยเห็นมาก่อนเพื่อตรวจสอบ ความเท่าเทียมกันตามมาจากคำจำกัดความของเงื่อนไขการชนะ
อย่างไรก็ตามภายใต้การรักษาความปลอดภัยที่อ่อนแอ ทิศทางไปข้างหน้ายังคงมีอยู่ (การส่งที่ถูกต้อง $(ม., เสื้อ)$ คู่ไหน $m$ ไม่เคยเห็นมาก่อนอย่างชัดเจนในรูปแบบคู่ที่ถูกต้องไม่เคยเห็นมาก่อน) แต่ทิศทางย้อนกลับล้มเหลว ทิศทางที่ถอยหลังอาจล้มเหลวได้เนื่องจากฝ่ายตรงข้ามสามารถได้รับ $(ม, ต)$ จับคู่จากแบบสอบถามการลงนามแล้วส่งที่ถูกต้อง $(M, \bar{T})$ จับคู่โดยแก้ไขแท็ก $T$. $(M, \bar{T})$ เป็นคู่ที่ถูกต้องและไม่เคยเห็นมาก่อน แต่ฝ่ายตรงข้ามไม่สามารถชนะได้เนื่องจากทั้งคู่เกี่ยวข้องกับข้อความที่เซ็นชื่อไว้ก่อนหน้านี้
โดยที่ทฤษฎีบท 6.1 ล้มเหลวเนื่องจากการรักษาความปลอดภัยที่อ่อนแอคือเมื่อผู้เขียนยืนยัน $\text{Pr}[W_0] = \text{MAC}^\text{vq}\text{adv}[\mathcal{A, I}]$ ซึ่งถือว่าการชนะเกมโจมตีนั้นเทียบเท่ากับการนำเสนอคู่แท็กข้อความที่ถูกต้องและไม่เคยเห็นมาก่อน ในตัวอย่างสุดโต่งข้างต้น นี่ไม่ใช่กรณีที่เป็นไปได้ $W_0$ ที่จะเกิดขึ้น แต่ไม่ชนะเกมโจมตีความปลอดภัยที่อ่อนแอ
วิธีแก้แบบฝึกหัด
สำหรับวิธีสร้างระบบ MAC ที่มีการรักษาความปลอดภัยอย่างอ่อนโดยไม่มีการสอบถามเพื่อยืนยัน แต่ไม่ปลอดภัยอย่างอ่อนแอด้วยการสอบถามการยืนยัน โดยพื้นฐานแล้วคุณสร้างระบบที่หลังจากได้รับ $(ม, ต)$ จากแบบสอบถามการลงนาม ฝ่ายตรงข้ามสามารถสร้างความถูกต้องได้อย่างง่ายดาย $(M, \bar{T})$ คู่ โดยการนำเสนอคู่ที่ถูกต้องแต่ไม่ชนะ ฝ่ายตรงข้ามจะเรียนรู้ข้อมูลเพียงพอที่จะทำลายระบบ MAC
อนุญาต $\mathcal{K} = \{0,1\}^\ell$ และ $|\mathcal{T}|$ เป็นซุปเปอร์โพลี อนุญาต $F$ เป็น PRF ที่กำหนดไว้ $(\mathcal{K, M, T})$, $k \stackrel{R}{\gets} \mathcal{K}$ และ $\mathcal{I} = (S, V)$ เป็น MAC ที่กำหนดมากกว่า $(\mathcal{K, M, T} \times \{\perp, 0,\ldots,\ell-1\})$. อัลกอริทึมการลงนามถูกกำหนดให้เป็น $S(m) = (F(k, m), \perp)$ และอัลกอริทึมการตรวจสอบคือ
V(ม., (เสื้อ, ผม))
// ตรวจสอบแท็กกับ PRF
d = F(k, m) == เสื้อ
ถ้า !d หรือ i == â
กลับ d ? ยอมรับ : ปฏิเสธ
// ส่งคืนบิตของคีย์
กลับ k[i] == 1 ? ยอมรับ : ปฏิเสธ
คุณสมบัติความถูกต้องถือเพราะองค์ประกอบที่สองของ $S(ม.)$ เป็น $\perp$ ซึ่งเข้าสู่คำสั่ง if โดยพื้นฐานแล้วระบบ MAC นี้เป็นระบบ MAC เชิงกำหนดที่ได้มาจาก $F$ แต่มีช่องดัชนีพิเศษ
ก่อนอื่นเราสังเกตเห็นว่า $\คณิตศาสตร์แคล{I}$ มีความปลอดภัยต่ำโดยไม่ต้องสอบถามการตรวจสอบความถูกต้อง หากฝ่ายตรงข้ามชนะ ฝ่ายตรงข้ามจะส่งคู่ที่ถูกต้อง $(m, (t, i))$ ที่ไหน $m$ ไม่เคยเห็นมาก่อน นี่หมายความว่า $\textsf{ยอมรับ}$ ถูกส่งกลับซึ่งมีความหมายว่า $d$ เป็นจริงใน $V(m, (t, i)))$ (ไม่ว่าจะป้อนคำสั่ง if ที่ใด $\textsf{ยอมรับ}$ ถูกส่งคืนหรือคำสั่ง if ไม่ดำเนินการซึ่งหมายถึง $d$ ไม่เป็นเท็จ) สิ่งนี้เกิดขึ้นด้วยความน่าจะเป็นเล็กน้อยโดยทฤษฎีบท 6.2 เป็น $d$ การเป็นจริงหมายถึงการปลอมแปลงขึ้นกับ MAC เชิงกำหนดที่ได้มาจาก $F$ (MAC นี้มีความปลอดภัยภายใต้คำจำกัดความของการรักษาความปลอดภัยที่เข้มงวดกว่า)
อย่างไรก็ตาม, $\คณิตศาสตร์แคล{I}$ ไม่ปลอดภัยอย่างอ่อนแอด้วยข้อความค้นหาการยืนยัน ศัตรูที่ทำลายความมั่นคงคือ
ให้ m เป็นข้อความโดยพลการ
ได้รับ (m, (t, â)) จากผู้ท้าชิง
กิโล[0..l-1] = 0
สำหรับ i = 0 .. l-1
ให้ r เป็นคำตอบของผู้ท้าชิงต่อแบบสอบถามการตรวจสอบ (m, (t, i))
ถ้า r == ยอมรับ
กิโล[i] = 1
อื่น
กิโล[i] = 0
// คีย์ถูกสร้างขึ้นใหม่
ให้ m' เป็นข้อความตามอำเภอใจที่ไม่เท่ากับ m
// คำนวณแท็กของ m' ด้วยคีย์ที่สร้างขึ้นใหม่
ให้ t' = S(m')
ส่งคำถามตรวจสอบความถูกต้อง (m', (t', â)) ไปยังผู้ท้าชิง