Score:1

เหตุใดการใช้ nonce (IV) เดียวกันสองครั้งจึงทำให้การรักษาความลับของข้อความธรรมดาหรือแม้แต่คีย์เป็นโมฆะ

ธง in

ฉันเข้าใจคร่าวๆ (โดยไม่มีรายละเอียดของพีชคณิต GF) โครงร่างของ GCS/GMAC:

ป้อนคำอธิบายรูปภาพที่นี่

IV จะต้องใส่ลงใน Counter-0 ดังนั้นการเริ่มต้นเคาน์เตอร์

เป็นที่ทราบกันดีว่าการใช้ IV สองครั้งไม่เพียงแต่สามารถเปิดเผยข้อความธรรมดา แต่ยังรวมถึง AES-Key ด้วย

ฉันไม่เข้าใจทั้งครั้งแรกและครั้งที่สอง:

คำถามที่ 1: เหตุใดความลับของข้อความจึงหายไปเมื่อใช้ IV เดิมสองครั้ง หมายความว่าสามารถอนุมานข้อความธรรมดาได้หรือไม่? หรือแค่บางส่วน? ฉันไม่สามารถจินตนาการได้ว่าสิ่งนี้จะเป็นอย่างไร...ส่วนใดของข้อมูลที่สามารถอนุมานได้จากข้อความธรรมดา และมันทำงานอย่างไร/ทำไม จากหลักการ ฉันเห็นเพียงว่าสามารถอนุมานผลลัพธ์ XOR(p1, p2) ได้เนื่องจากบรรทัดบนของข้อมูลเหมือนกัน - แต่ไม่ใช่ p1, p2 เอง

คำถามที่ 2: เหตุใด AES-Key จึงถูกเปิดเผยโดยใช้ IV เดียวกันสองสามครั้งได้อย่างไร

โปรดทราบว่าฉันต้องการที่จะเข้าใจว่าทำไมและการโจมตีดังกล่าวสามารถทำได้อย่างไร ผมเชื่อว่าเป็นไปได้

et flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [การใช้ IV เดิมสองครั้งกับ AES/GCM นั้นแย่แค่ไหน](https://crypto.stackexchange.com/questions/26790/how-bad-it-is-using-the-same-iv-twice-with -aes-gcm)
Score:3
ธง my

คำถามที่ 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]: หมายเหตุเล็กน้อย: เนื่องจากเรากำลังทำงานในพื้นที่จำกัดของลักษณะเฉพาะสอง การดำเนินการ $+$ และ $-$ เหมือนกันจริง ๆ และเป็นแบบดั้งเดิมที่จะเขียนเป็นเสมอ $+$. ฉันเขียนมันเป็น $-$ เพื่อให้ชัดเจนยิ่งขึ้นว่าเรากำลังทำอะไรอยู่

MichaelW avatar
in flag
สิ่งนี้อธิบายได้มาก! ความเข้าใจของฉันตอนนี้คือ: ผู้โจมตีสามารถค้นหารายละเอียดบางอย่างของข้อความธรรมดาโดย XOR ยิ่งไปกว่านั้น บางทีน่าสนใจกว่านั้น เขาสามารถค้นหา H ได้อย่างง่ายดาย ดังนั้นเขาจึงสามารถเปลี่ยนส่วนต่างๆ ของรหัสเพื่อให้ T ยังคงใช้งานได้ นี้ได้อย่างมีประสิทธิภาพ อย่างไรก็ตาม คุณช่วยยืนยันว่าผู้โจมตีไม่สามารถหา AES-Key เองได้ใช่หรือไม่? ดังนั้นผู้โจมตีที่อยู่ตรงกลางจึงสามารถสร้างบล็อกรหัสขยะที่มีลายเซ็นที่ถูกต้องได้ สิ่งนี้ไม่ดีพอ แต่หากไม่มีคีย์จึงไม่สามารถสร้างรหัสที่มีเนื้อหาข้อความธรรมดาที่กำหนดได้ใช่ไหม
poncho avatar
my flag
@MichaelW: ไม่ เขาไม่สามารถเรียนรู้คีย์ AES ได้ (เว้นแต่เขาจะทำลาย AES ได้เอง); อย่างไรก็ตาม หากเขาเดาเนื้อหาของข้อความธรรมดาเฉพาะ (เช่น โดยใช้ XOR ของข้อความเข้ารหัสทั้งสอง) เขาก็สามารถพลิกบิตในข้อความธรรมดานั้นได้ตามอำเภอใจ (และคำนวณค่าแท็กที่แก้ไขแล้วโดยใช้ค่า H ที่เขาเรียนรู้) นั่นหมายความว่าเขาสามารถสร้างไซเฟอร์เท็กซ์สำหรับข้อความธรรมดาใดๆ ที่ไม่ยาวกว่าต้นฉบับ
MichaelW avatar
in flag
อืม. ฉันต้อง 'แยกย่อย' นี้ก่อน ... อาจมีคำถามอื่นในไม่ช้า แต่ตอนนี้งานล้นมือ ;-)
MichaelW avatar
in flag
ความเข้าใจของฉันถูกต้องหรือไม่: เพื่อความเรียบง่าย ฉันอ้างถึงรูปภาพของอัลกอริทึม GCM ของฉัน: สมมติว่าผู้โจมตีจัดการด้วยวิธีใดวิธีหนึ่งเพื่อค้นหาข้อความธรรมดา-1 และข้อความธรรมดา-2 เนื่องจากเขารู้จัก Ciphertext-1 และ Ciphertext-2 ด้วย เขาจึงสามารถคำนวณกลับค่า E_K(counter-1) และ E_K(counter-2) ได้อย่างง่ายดาย เมื่อทราบสิ่งนี้ เขาสามารถใส่ค่าใหม่สำหรับ Plaintext-1 และ Plaintext-2 และคำนวณค่าใหม่สำหรับ Ciphertext-1 และ Ciphertext-2 บวกกับแท็กที่ถูกต้อง ฉันเข้าใจถูกต้องหรือไม่? มันดูสมเหตุสมผลสำหรับฉัน แต่ฉันไม่แน่ใจ... อย่างไรก็ตาม สำหรับฉันแล้ว GCM/GMAC นั้นค่อนข้างอันตรายเล็กน้อย...
poncho avatar
my flag
@MichaelW: ใช่ นั่นเป็นวิธีหนึ่งที่จะพูดได้ อันที่จริง ฉันจะแสดงมันในแง่ของการพลิกบิต (ในการพลิกบิตนี้ในข้อความธรรมดา เราจะพลิกบิตของข้อความไซเฟอร์ และดังนั้น xor ในรูปแบบนี้ในแท็กเพื่อให้ยังคงตรวจสอบได้) อย่างไรก็ตามสิ่งที่คุณดูเหมือนจะเป็นแนวทางที่ถูกต้อง

โพสต์คำตอบ

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