Score:4

GCM ที่มี AAD ที่มีความยาวเป็นศูนย์มีความปลอดภัยน้อยกว่าหรือไม่

ธง in

ในก่อนหน้านี้ คำถามเป็นที่ชัดเจนว่าในกรณีของ GCM ไม่มีความแตกต่างระหว่าง "ไม่มี AAD" และ "AAD ที่มีความยาวเป็นศูนย์" เนื่องจากฉันสังเกตเห็น "AAD ที่มีความยาวเป็นศูนย์" ในการใช้งานหลายครั้ง คำถามของฉันคือ นั่นทำให้แผน AE ดังกล่าวมีความปลอดภัยน้อยลงหรือไม่

ในเอกสารต่างๆ ที่ปฏิบัติต่อความปลอดภัยของ AE ฉันคิดว่าเอกสารนี้ พิจารณาองค์ประกอบทั่วไปโดย Namprempre, Rogaway และ Shrimpton อาจมีความชัดเจนที่สุดในเรื่องนี้ ตามการแจงนับแบบแผน nAE แบบแผนแรกที่แสดงขอบเขตความปลอดภัยที่อ่อนแอกว่าคือ A9 โดยที่ A (เช่น AAD) หลุดจากการคำนวณแท็ก (ดูรูปที่ 5) แน่นอนว่าตอนนี้พวกเขาพูดถึงว่ามันเป็นกรณีเส้นเขตแดน (เฉพาะกาล) แต่พวกเขาทำให้ชัดเจนว่าการรักษาความปลอดภัยนั้นไม่เข้มงวดเท่ากับโครงร่าง A1-A8 (ซึ่งทั้งหมดรวมถึง A ในการคำนวณแท็ก) ฉันได้พยายามสำรวจเอกสารอื่นๆ ในหัวข้อนี้แล้ว แต่ฉันไม่พบเอกสารที่ให้การรักษาที่คล้ายคลึงกัน

ดังนั้น หาก AAD หายไปจาก GCM (หรือหาก |AAD|=0) ระบบจะลดระดับความปลอดภัยของ GCM ลงหรือไม่ หรือหลักฐานด้านความปลอดภัยของเราอ่อนแอลงเล็กน้อยหรือไม่ หรือนั่นไม่ใช่ข้อสรุปที่เราควรนำมาจากเอกสารของ Namprempre ด้านบน (สมมติว่าชุมชน crypto ยอมรับผลลัพธ์ของพวกเขา)

kelalaka avatar
in flag
ดังที่ [หมายเหตุ](https://chat.stackexchange.com/transcript/message/59377989#59377989): GCM คือ A5 บนกระดาษ
kelalaka avatar
in flag
GCM ไม่รองรับ noAADใน GCM AAD ที่มีความยาวเป็นศูนย์จะถูกแปลงเป็น 128 ศูนย์ สิ่งนี้ชัดเจนจากคำตอบก่อนหน้าและเอกสารของ NIST ** มี AAD เสมอ! ใน GCM** ดังนั้น ผู้รับจึงสามารถปฏิเสธ AAD ที่ว่างเปล่าใดๆ ได้ว่าเป็นของปลอม นี่เป็นการตรวจสอบเพิ่มเติมเนื่องจาก AAD ได้รับการตรวจสอบสิทธิ์แต่ไม่ได้เข้ารหัส หากคุณขอให้แก้ไข CGM เพื่อลบ AAD แสดงว่าเป็นรูปแบบอื่น
hlayhel avatar
in flag
ฉันกำลังอ่านคำตอบก่อนหน้านี้แตกต่างกัน ตัวอย่างเช่น เขากล่าวว่า "หาก AAD มีความยาวเป็นศูนย์ ช่องว่างภายในจะถูกเพิ่มเป็นศูนย์และจะไม่มีการใช้เวลาแฮช AAD หรือการเติม AAD ใดๆ" จากที่สรุปได้ว่า AAD ที่มีความยาวเป็นศูนย์จะถูกแปลงเป็นศูนย์บิตของศูนย์ ไม่ใช่ 128 บิตของศูนย์ ฉันคิดว่าคำตอบที่เหลือของเขาทำให้ชัดเจนขึ้น ถ้า |AAD|=0 ดังนั้น len(A)=0, v=0 และ 0^v=0, "** ดังนั้น จำนวน â0â บิตต่อท้ายคือ 0**" จากนั้นเขาก็สรุปได้ว่า "ถ้า A ว่าง คำนำหน้า Aâ¥0^v ก็จะว่างด้วย" ซึ่งหมายความว่าองค์ประกอบ A ทั้งหมดในการสร้าง GHASH นั้นว่างเปล่า (A, 0^v, len(A))
kelalaka avatar
in flag
ใช่ ถูกต้อง $A || 0^v$ ว่างเปล่า อย่างไรก็ตาม ความยาวถูกเข้ารหัสเป็น 64 บิต เพื่อให้สามารถถอดรหัสเป็น AAD เปล่าได้ ดังนั้น ยังคงมี AAD ใน GCM อยู่เสมอ
kelalaka avatar
in flag
แม้แต่ AAD ที่ว่างเปล่าก็ยังให้ทางเลือกในการหยุดการลบ AAD ออกจากฝ่ายตรงข้ามได้เล็กน้อย อย่างมีประสิทธิภาพพวกเขาไม่ได้
hlayhel avatar
in flag
เข้าใจแล้ว. ดังนั้นมันจึงเหลือส่วนประกอบ [len(A)]64 ฉันตรวจสอบเอกสาร NIST แล้ว พวกเขากำหนด [x]64 เป็นตัวแทนไบนารีของจำนวนเต็ม x (ในกรณีนี้ x=0) เป็นสตริง 64 บิต ดังนั้นฉันเดาว่าฉันต้องตกลง หากคุณสามารถชี้แจงเพิ่มเติมอีกครั้งจากผู้เขียนคำตอบก่อนหน้านี้ ฉันสับสนเล็กน้อยเกี่ยวกับข้อความแรกของเขา "AES-GCM ไม่รองรับ âno AADâ ซึ่งแตกต่างจาก âAADâ ความยาวเป็นศูนย์" . ฉันอ่านได้ว่า ในกรณีของ GCM เราไม่ได้แยกความแตกต่างระหว่าง 'ไม่มี AAD' และ 'AAD ที่มีความยาวเป็นศูนย์' ฉันอ่านผิดหรือเปล่า?
kelalaka avatar
in flag
ไม่ควรเพิ่มอะไรแบบนั้น ไม่มีข้อมูลเกี่ยวกับ AAD แม้แต่ความยาวหรือบิตเดียว อย่างไรก็ตาม ในกรณีนี้ การไม่มี AAD อาจแสดงว่าถูกลบหรือไม่มี AAD แล้ว โครงการควรแยกแยะสิ่งนี้ GCM เพียงแค่เข้ารหัสความยาวและไม่อนุญาตให้ใช้ noAAD (หรือเราสามารถพูดได้ว่าแปลง noADD เป็น AAD ที่มีความยาวเป็นศูนย์)
hlayhel avatar
in flag
เข้าใจแล้ว. ดังนั้นการไม่มี AAD ในที่นี้หมายถึงไม่มีข้อมูลเกี่ยวกับ AAD ไม่ใช่ว่าตรรกะของ AAD ตกหล่น ฉันคิดว่าตอนนี้เราตกลงกันได้แล้ว ขอบคุณที่สละเวลา!
Score:1
ธง in

AES-GCM อยู่ในหมวดหมู่ A5 ในกระดาษ ใน AES-GCM ไม่รองรับ $\texttt{no-AAD}$แม้ว่าคุณจะไม่ได้ใช้ AAD ระหว่างการเข้ารหัส แต่ AES-GCM ก็แปลงเป็นไฟล์ a $\texttt{zero-length-AAD}$.

ดูใน NIST สิ่งพิมพ์พิเศษ 800-38d, หน้า 15;

อัลกอริทึม 4: $GCM-AE_K (IV, P, A)$
¦
4. ปล่อยให้ $u = 128\cdot\lceil\operatorname{len}(C)/128\rceil - \operatorname{len}(C)$ และปล่อยให้ $v = 128\cdot\lceil\operatorname{len}(A)/128\rceil - \operatorname{len}(A)$.
5. กำหนดบล็อก $S$ดังต่อไปนี้: $$S = \operatorname{GHASH}_H(\mathbf{A \mathbin\| \mathtt 0^v} \mathbin\| C \mathbin\| \mathtt 0^u \mathbin\| \mathbf{[\operatorname{ len}(A)]_{64}} \mathbin\| [\operatorname{len}(C)]_{64}).$$ ¦
ในขั้นตอนที่ 4 และ 5 แต่ละ AAD และข้อความเข้ารหัสจะถูกต่อท้ายด้วยจำนวนขั้นต่ำ â$\mathtt 0$บิต อาจไม่มีเพื่อให้ความยาวบิตของสตริงผลลัพธ์เป็นทวีคูณของขนาดบล็อก (ตัวหนาเป็นของฉัน)

$A$ เป็นข้อมูลที่เกี่ยวข้อง $len(A) = 0$ ดังนั้น, $\mathtt{v} = 0$. แม้ในกรณีนี้ เราก็มี $[\operatorname{len}(A)]_{64}$การเข้ารหัส 64 บิตของความยาวของข้อมูลที่เกี่ยวข้องและสิ่งนี้จะระบุการมีอยู่ของ AAD อยู่เสมอ ความยาวเป็นศูนย์หรือไม่!

หากผู้โจมตีลบข้อมูลที่เกี่ยวข้องออก เพื่อให้ดูเหมือนว่ามีความยาวเป็นศูนย์ ระหว่างการถอดรหัส จะต้องหยุดโดยแท็กไม่ตรงกัน ( หยุดและหยุดการถอดรหัสทันทีทุกครั้ง)

รูปแบบที่สนับสนุนแบบไม่มี AAD จะต้องไม่มีข้อมูลเกี่ยวกับ AAD ที่ขาดหายไป มิฉะนั้นจะจัดอยู่ใน AAD ที่มีความยาวเป็นศูนย์

ในท้ายที่สุด เรามีการป้องกันเพิ่มเติมจากการปลอมแปลงด้วย AAD ที่มีความยาวเป็นศูนย์

โพสต์คำตอบ

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