คำถามที่ 1: เหตุใดความลับของข้อความจึงหายไปเมื่อใช้ IV เดิมสองครั้ง จากหลักการ ฉันเห็นเพียงว่าสามารถอนุมานผลลัพธ์ XOR(p1, p2) ได้เนื่องจากบรรทัดบนของข้อมูลเหมือนกัน - แต่ไม่ใช่ p1, p2 เอง
จริงๆ แล้ว ในหลายกรณี ความรู้เรื่อง $p_1 \oบวก p_2$ สามารถใช้เพื่อกู้คืนการคาดเดาที่ดีของ $p_1, p_2$. ที่ขึ้นอยู่กับการกระจาย $p_1, p_2$ ถูกดึงมาจาก - หากมีบิตสตริงแบบสุ่มซึ่งเห็นได้ชัดว่าไม่สามารถใช้ประโยชน์ในการกู้คืนได้ $p_1, p_2$ - ในทางกลับกัน หากเป็นสตริง ASCII ภาษาอังกฤษ มันก็ง่ายอย่างน่าประหลาดใจจริงๆ (ยกเว้นคุณจะไม่รู้ว่าอะไรคือ $p_1$ และนั่นคือ $p_2$)
คำถามที่ 2: เหตุใด AES-Key จึงถูกเปิดเผยโดยใช้ IV เดียวกันสองสามครั้งได้อย่างไร
ที่จริงแล้ว คุณจะไม่กู้คืนคีย์ AES เอง คุณสามารถกู้คืนค่าภายใน $H$.
การรับรองความถูกต้อง GCM ทำงานเช่นนี้ แท็กคำนวณโดยการขยาย AAD และ ciphertext เป็นชุดค่า 128 บิต $x_n, x_{n-1}, ..., x_1$ และการคำนวณ:
$$tag = x_n H^n + x_{n-1}H^{n-1} + ... + x_1H^1 + E_k(ไม่มี)$$
หากเราได้รับข้อความที่แตกต่างกัน 2 ข้อความซึ่งเข้ารหัสด้วย nonce เดียวกัน เราสามารถลบสมการทั้งสองได้ ซึ่งส่งผลให้ [1]:
$$tag - tag' = (x_n - x'_n) H^n + (x_{n-1} - x'_{n-1} ) H^{n-1} + ... + (x_1 - x'_1)H^1$$
เนื่องจากข้อความไซเฟอร์ (หรือ AAD) แตกต่างกัน จึงมีค่าสัมประสิทธิ์ที่ไม่เป็นศูนย์ในสมการนี้
และเรารู้ค่าสัมประสิทธิ์ทั้งหมด (ไม่เหมือนกับกรณี GCM เดียว ที่เราไม่ทราบค่า $E_k(ไม่มี)$); นี่คือพหุนามที่รู้จักของสิ่งที่ไม่รู้จัก $H$ ของปริญญา $n$; ปรากฎว่าในขอบเขตที่ จำกัด สิ่งนี้สามารถแก้ปัญหาได้จริง
ตอนนี้ความรู้เรื่อง $H$ ไม่อนุญาตให้เราอ่านไซเฟอร์เท็กซ์ใดๆ สิ่งที่จะทำให้เราทำได้คือแก้ไขข้อความเข้ารหัสในลักษณะที่ทำให้แท็กถูกต้อง ซึ่งจะทำให้การรับประกันความสมบูรณ์ของ GCM เป็นโมฆะ
[1]: หมายเหตุเล็กน้อย: เนื่องจากเรากำลังทำงานในพื้นที่จำกัดของลักษณะเฉพาะสอง การดำเนินการ $+$ และ $-$ เหมือนกันจริง ๆ และเป็นแบบดั้งเดิมที่จะเขียนเป็นเสมอ $+$. ฉันเขียนมันเป็น $-$ เพื่อให้ชัดเจนยิ่งขึ้นว่าเรากำลังทำอะไรอยู่