Score:3

โหมด CBC พร้อม IV ที่คาดเดาได้ ตกลงหรือไม่ หากใช้คีย์เพียงครั้งเดียว

ธง mc

มีคนบอกฉันเมื่อเร็วๆ นี้ว่าการใช้โหมด CBC กับ IV ที่คาดเดาได้ (เช่น 0 ทั้งหมด) นั้นปลอดภัยพอสมควรหากใช้คีย์สำหรับการเข้ารหัสเพียงครั้งเดียว ฉันได้ดูตัวอย่างของการโจมตีข้อความธรรมดาที่เลือกกับโหมด CBC ด้วย IV ที่คาดเดาได้ และดูเหมือนว่าพวกเขาคิดว่าคีย์ที่ใช้สำหรับข้อความที่เข้ารหัสของผู้โจมตีนั้นเหมือนกับคีย์ที่ใช้สำหรับข้อความที่เข้ารหัสของผู้โจมตี . นอกจากนี้ ในกรณีนี้ ผู้โจมตีไม่สามารถควบคุมข้อความล้วนที่เข้ารหัสได้ทั้งหมด เป็นเพียงส่วนเล็กๆ ของข้อความเท่านั้น

บุคคลนี้ถูกต้องหรือไม่ การใช้คีย์สำหรับการเข้ารหัสเพียงครั้งเดียวทำให้การใช้ IV ปลอดภัยแบบคาดเดาได้ หรือมีปัญหาที่ฉันไม่เห็น

Maarten Bodewes avatar
in flag
น่าสนใจ - ฉันไม่พบคนหลอกลวงในเว็บไซต์นี้ แต่ฉันแน่ใจว่านี่เป็นส่วนหนึ่งของคำตอบอื่นเป็นอย่างน้อย สิ่งที่ฉันหาได้ใกล้เคียงที่สุดคือ[คำตอบนี้](https://crypto.stackexchange.com/a/5099/1172) เห็นได้ชัดว่า ข้อมูลที่เหมือนกันเมื่อเริ่มต้นข้อความหลายข้อความและอย่างน้อยหนึ่งบล็อกจะนำไปสู่การบล็อกข้อความเข้ารหัสที่เหมือนกัน ดังนั้นการใช้ชุดค่าผสมของคีย์ / IV ซ้ำจะไม่ปลอดภัย IND-CPA โดยไม่ทำการอ้างสิทธิ์เฉพาะเจาะจงในข้อความที่ป้อนเข้า *โดยไม่คำนึงว่า* หาก ผู้โจมตีควบคุมข้อความ - ไม่จำเป็นต้องใช้การโจมตี / Oracle
Maarten Bodewes avatar
in flag
หลอกเต็ม [ที่นี่](https://security.stackexchange.com/q/10081/2651) แต่โพสต์บน [security.se] ก่อนมีไซต์นี้
automatictester avatar
ht flag
คุณอาจสนใจ[สิ่งนี้](https://security.stackexchange.com/questions/17044/when-using-aes-and-cbc-is-it-necessary-to-keep-the-iv-secret)
Meir Maor avatar
in flag
เราควรมีคำตอบที่นี่ใน crypto คำถามที่ถูกต้อง คำตอบที่เชื่อมโยงด้านบนดูเหมือนเป็นคำตอบที่สมบูรณ์ เราจะคัดลอกแบบคำต่อคำและเชื่อมโยงไปยังต้นฉบับหรือไม่ (อาจเป็นคำตอบของชุมชน) เขียนต้นฉบับที่พูดเหมือนเดิม อาจจะเพิ่มอะไรที่ไม่สำคัญมากเพื่อให้รู้สึกว่าเราทำสิ่งใหม่?
Maarten Bodewes avatar
in flag
อืม บางทีฉันน่าจะโพสต์คำตอบลงในลิงก์ที่ autotester รวมไว้ที่นี่ แล้วลิงก์จากไซต์ความปลอดภัย ฉันไม่แน่ใจเกี่ยวกับมัน อาจจะเป็นบางอย่างสำหรับ [meta]
Score:3
ธง my

บุคคลนี้ถูกต้องหรือไม่ การใช้คีย์สำหรับการเข้ารหัสเพียงครั้งเดียวทำให้การใช้ IV ปลอดภัยที่คาดการณ์ได้

ใช่ เขาพูดถูก

การโจมตีนี้ทำงานโดยผู้โจมตีที่ได้รับไซเฟอร์เท็กซ์โหมด CBC และต้องการตรวจสอบเนื้อหาข้อความธรรมดาของบล็อคข้อความธรรมดาเฉพาะ ในการทำเช่นนั้น เขาคำนวณว่าการป้อนข้อมูลไปยังรหัสลับของบล็อกจะเป็นอย่างไรหากการคาดเดานั้นถูกต้อง (และผลลัพธ์ที่สอดคล้องกัน) และจากข้อมูลนั้น สร้างข้อความธรรมดาซึ่งด้วย IV ที่คาดเดาได้ จะส่งอินพุตนั้นไปยังรหัสลับของบล็อก . จากนั้นเขาขอให้เข้ารหัสข้อความธรรมดาด้วยคีย์เดียวกัน หากข้อความไซเฟอร์เท็กซ์ที่เกี่ยวข้องมีบล็อกเอาต์พุตที่คาดไว้ เขาก็รู้ว่าการคาดเดาของเขาถูกต้อง

หากเราเข้ารหัสเพียงข้อความเดียว เขาจะไม่สามารถทำการโจมตีนี้ได้ - เขาสามารถเรียนรู้ข้อความไซเฟอร์ดั้งเดิมได้ แต่เขาไม่สามารถขอให้เข้ารหัสข้อความที่สองด้วยคีย์เดียวกันได้

ตอนนี้ สิ่งนี้ถือได้ว่าตัวเข้ารหัสใช้ข้อความธรรมดาทั้งหมดและเข้ารหัสทั้งหมด และข้อความเข้ารหัสแบบเต็มจะถูกส่งไปยังผู้รับ (และฝ่ายตรงข้าม) หากคุณเรียกใช้โหมด CBC ทีละส่วน ตัวอย่างเช่น คุณใช้ส่วนแรกของข้อความธรรมดา เข้ารหัส ส่งออก จากนั้นใช้ข้อความธรรมดาส่วนที่สอง จากนั้นเข้ารหัส นั่นจะไม่ปลอดภัย - หากผู้โจมตีสามารถฟัง ส่วนแรกของไซเฟอร์เท็กซ์ จากนั้น (ตามนั้น) แก้ไขส่วนที่สองของข้อความธรรมดา เขาสามารถใช้การโจมตีแบบ 'คาดเดา IV' ได้ แม้ว่ามันจะดูไม่เหมือนว่าคุณกำลังส่ง IV ครั้งที่สอง เนื่องจาก วิธีการทำงานของโหมด CBC ได้อย่างมีประสิทธิภาพ

นอกจากนี้ ในกรณีนี้ ผู้โจมตีไม่สามารถควบคุมข้อความล้วนที่เข้ารหัสได้ทั้งหมด เป็นเพียงส่วนเล็กๆ ของข้อความเท่านั้น

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

fgrieu avatar
ng flag
ฉันไม่เห็นสิ่งใดในคำถามที่ทำให้การโจมตีหลายเป้าหมายเป็นไปไม่ได้ ก็เลยยอมไม่ได้ ดู[คำตอบของฉัน](https://crypto.stackexchange.com/a/93801/555)
Score:1
ธง ng

บุคคลนี้ถูกต้องหรือไม่ การใช้คีย์สำหรับการเข้ารหัสเพียงครั้งเดียวทำให้การใช้ IV ปลอดภัยที่คาดการณ์ได้

ไม่เขาไม่ถูกต้องอย่างน้อยในเชิงวิชาการ และในบางกรณีในทางปฏิบัติ

นั่นเป็นเพราะสิ่งที่เรียกว่าการโจมตีหลายเป้าหมาย ทะลึ่ง $ข$คีย์ -bit และ $k$ ใช้ปุ่มสุ่ม (และด้วยเหตุนี้ $k$ ciphertexts) สำหรับบล็อกแรกที่รู้จักทั่วไป (หรือเลือก) $P_0$ ของข้อความธรรมดา (เช่น เริ่มต้น payload เดียวกัน) มีสิ่งที่เรียกว่าการโจมตีหลายเป้าหมายโดยมีค่าใช้จ่ายที่คาดหวัง $2^{b-1}/k$ การเข้ารหัสที่กู้คืนข้อความธรรมดาแบบเต็มนั่นคือ $k$ เร็วกว่า IV แบบสุ่ม การโจมตีนั้นเพียงแค่ระบุคีย์ เข้ารหัสค่าคงที่ที่รู้จัก $\text{IV}\oplus P_0$และค้นหาผลลัพธ์ในตารางของบล็อกข้อความไซเฟอร์แรกทั้งหมด (ซึ่งสามารถปรับแต่งให้คุ้มกับการเข้าถึงหน่วยความจำเพียงครั้งเดียว)

แม้ว่าเมื่อ "รู้จักทั่วไป (หรือเลือก) บล็อกแรกของข้อความธรรมดา" เป็นไปตามเงื่อนไข ในทางปฏิบัติ การโจมตีนี้แทบจะไม่สร้างความเสียหายให้กับคีย์แบบสุ่ม 128 บิตหรือใหญ่กว่า แม้ว่าจะมีขนาดใหญ่มากก็ตาม $k$ (ซึ่งอาจเป็นหลายล้านในสถานการณ์จริงบางอย่าง เช่น คีย์เซสชัน) นั่นเป็นเพราะการจัดเก็บและการเข้าถึงตารางที่จำเป็นมีค่าใช้จ่ายที่ไม่สำคัญ (การลงทุนและพลังงาน) เป็นการยากที่จะจินตนาการว่าเราสูญเสียการรักษาความปลอดภัยมากกว่า 20 บิตให้กับผู้โจมตีโดยใช้ ASIC ซึ่งเป็นวิธีที่เหมาะสมที่สุดในการโจมตีคีย์ 128 บิตดังกล่าวด้วยกำลังดุร้าย แต่ปัญหาอาจร้ายแรงได้หากคีย์นั้นได้มาจากรหัสผ่านที่กำหนดขึ้นเอง และมีการใช้รหัสผ่านเป็นพันครั้งด้วยซ้ำ

poncho avatar
my flag
หากมีกุญแจที่เป็นไปได้เพียงล้านปุ่ม คุณก็พังไปแล้ว...
fgrieu avatar
ng flag
@poncho: ฉันชี้แจงสิ่งที่ฉันหมายถึง ล้านของฉัน (ตอนนี้เป็นพัน) ไม่ใช่จำนวนของคีย์ _possible_ สำหรับรหัสบล็อก แต่เป็นจำนวนของรหัสผ่านที่ใช้จริง ดังนั้น _จริงใช้คีย์ target_ สำหรับรหัสบล็อก ซึ่งได้มาจากฟังก์ชันการสืบทอดคีย์ที่ใช้รหัสผ่าน เช่น Argon2 Scrypt หรือ PBKDF2 ถือว่าไม่มีเกลือแบบสุ่ม
Meir Maor avatar
in flag
ฉันคิดว่ามันน่ารักที่ฉันโหวตคำตอบที่ดีสองข้อ คำตอบหนึ่งตอบว่าใช่และอีกคำตอบหนึ่งไม่ใช่

โพสต์คำตอบ

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