Score:0

การเข้ารหัสหลายรายการโดยใช้โหมดการทำงาน CBC มีความเสี่ยงต่อการโจมตีแบบ Meet-in-the-middle หรือไม่

ธง pf

ฉันอ่านครั้งหนึ่งในหน้าหนึ่ง (ฉันจำลิงก์ไม่ได้และไม่พบลิงก์นั้น) ที่กล่าวถึง AES ที่มีคีย์ 256 บิตสองคีย์และมีการรักษาความปลอดภัย 384 บิต อาจไม่ใช่ความแรง 512 บิตเนื่องจากขนาดบล็อก AES-256 ที่ 128 บิต

สิ่งนี้ทำให้ฉันสงสัย

สมมติว่าฉันเข้ารหัสบางอย่างสองครั้งโดยใช้โหมด CBC และคีย์ที่แตกต่างกันสองคีย์

ฝ่ายตรงข้ามไม่สามารถระบุบล็อกที่เข้ารหัสด้วยการเข้ารหัสชั้นแรกได้เนื่องจาก XORed กับบล็อกก่อนหน้าและบล็อกก่อนหน้าเข้ารหัสด้วยการเข้ารหัสชั้นที่สอง สิ่งนี้อาจทำให้การเข้ารหัสมีภูมิคุ้มกันต่อการโจมตีแบบ Meet-in-the-middle ฉันคิดถูกหรือไม่

kelalaka avatar
in flag
หากคุณไม่พบว่าคำตอบก่อนหน้านี้มีประโยชน์ เหตุใดจึงควรเขียนอีกคำตอบหนึ่ง คุณควรระบุสิ่งที่ไม่ชัดเจนหรือเหตุใดคำตอบจึงไม่เป็นประโยชน์ คำตอบคือใช่ [คล้ายกับก่อนหน้านี้](https://crypto.stackexchange.com/a/98436/18298) บล็อกก่อนหน้าคือ IV ดังนั้นการโจมตี MiTM จึงเป็นไปได้ด้วยการโจมตีข้อความธรรมดาที่รู้จัก นอกจากนี้ คุณควรสนับสนุนการอ้างสิทธิ์ของคุณด้วยการระบุหน้านี้
phantomcraft avatar
pf flag
@kelalaka ขออภัย ฉันจำลิงก์ของเพจไม่ได้และค้นหาแล้ว แต่ไม่พบ ฉันจะทำเครื่องหมายคำตอบว่ามีประโยชน์ได้อย่างไร ขออภัย ฉันไม่พบแหล่งข้อมูลนี้ที่นี่ในหน้าคำถาม
kelalaka avatar
in flag
ใคร ๆ ก็สามารถโหวตคำตอบได้หากมีประโยชน์ / ถูกต้อง / ฯลฯ ผู้ถามสามารถยอมรับคำตอบได้หากคำตอบนั้นตรงใจ (กาเครื่องหมายใต้คะแนนโหวตขึ้น/ลง) เพื่อให้คนอื่นเห็นว่าคำถามมีความพึงพอใจ ลงคะแนนหากผิดและระบุด้วยความคิดเห็น
Score:2
ธง ar

หาก IVs สำหรับเลเยอร์ที่เข้ารหัสทั้งสองถูกส่งไปในที่โล่ง แสดงว่ามีการโจมตีการกู้คืนคีย์ข้อความธรรมดาที่รู้จักทั่วไปซึ่งทำงานบน (เป็นหลัก) โหมดการเข้ารหัสใดๆ และอนุญาตให้กู้คืนคีย์ทั้งสองโดยใช้ประมาณ $3 \lceil k \mathbin/ b \rceil \cdot 2^k$ บล็อกเข้ารหัส / ถอดรหัส $2k \cdot 2^k$ บิตของหน่วยความจำและ $O(k \cdot 2^k)$ เวลาเฉลี่ยในการคำนวณที่ไม่ใช่การเข้ารหัส โดยที่ $k$ และ $ข$ คือขนาดคีย์และบล็อกของรหัสเป็นบิต (เช่น $k = b = 128$ สำหรับ AES-128 หรือ $k = 256$, $b = 128$ สำหรับ AES-256) มันเป็นไปในลักษณะนี้:

  1. ถอดรหัสแรก $\lceil k \mathbin/ b \rceil$ บล็อกของข้อความไซเฟอร์เท็กซ์แต่ละอัน $2^k$ คีย์ภายนอกที่เป็นไปได้และ IV ภายนอกที่รู้จัก สำหรับแต่ละคีย์ ให้เลือกอันแรก $k$ บิตของข้อความธรรมดาที่เป็นผลลัพธ์ (ถ้า $k$ ไม่ได้เป็นทวีคูณของ $ข$ซึ่งเป็นสำหรับ AES เสมอ) ต่อท้ายคีย์ และจัดเก็บที่รวมกัน $2k$สตริงบิตในรายการ

  2. เรียงลำดับรายการ (สิ่งนี้ต้องใช้เวลา $O(n \log n)$ เวลาสำหรับ $n$- รายการองค์ประกอบที่ $n = 2^k$ ในกรณีนี้.)

  3. พยายามเข้ารหัสครั้งแรก $\lceil k \mathbin/ b \rceil$ บล็อกของข้อความธรรมดาที่รู้จักโดยใช้แต่ละรายการ $2^k$ คีย์ภายในที่เป็นไปได้และ IV ภายในที่รู้จัก สำหรับแต่ละคีย์ ให้ค้นหาคีย์แรก $k$ บิตของข้อความธรรมดาที่เป็นผลลัพธ์ในรายการ (โดยใช้การค้นหาแบบไบนารีซึ่งใช้เวลา $O(\logn)$ เวลา) เพื่อดูรายการของคีย์ภายนอกที่เป็นไปได้ ซึ่งคีย์ภายในนี้อาจจับคู่ได้ (จำนวนผู้สมัครที่ตรงกันโดยเฉลี่ยที่คุณจะพบต่อคีย์ภายในคือหนึ่งคีย์ แม้ว่าบางคีย์จะไม่ตรงกันและบางคีย์จะมีหลายคีย์) หากมีการจับคู่ใด ๆ ให้เข้ารหัสอีกหนึ่งบล็อคของข้อความธรรมดาที่รู้จักด้วยอินเนอร์ คีย์และถอดรหัสอีกหนึ่งบล็อคของไซเฟอร์เท็กซ์ด้วยคีย์ภายนอกที่ตรงกันเพื่อดูว่ายังตรงกันอยู่หรือไม่ หากเป็นเช่นนั้น (ซึ่งคุณคาดว่าจะเกิดขึ้นหลังจากทดสอบครึ่งหนึ่งของคีย์ด้านในโดยเฉลี่ย) คุณเกือบจะได้คู่คีย์ที่ถูกต้องแล้ว

การโจมตีเพื่อกู้คืนคีย์กำลังเดรัจฉานทั่วไปใน เดี่ยว แน่นอนว่าการเข้ารหัสเลเยอร์ใช้เวลาประมาณ $\frac12 \lceil k \mathbin/ b \rceil \cdot 2^k$ บล็อก en/decryptions โดยเฉลี่ย ดังนั้น (อย่างน้อยถ้าเราเพิกเฉยต่อค่าใช้จ่ายของหน่วยความจำและนับเฉพาะการดำเนินการเข้ารหัสบล็อก) การเข้ารหัสสองครั้งด้วย IV ที่รู้จักเป็นเพียง (อย่างมากที่สุด) $6$ ยากต่อการทำลายโดยเฉลี่ยมากกว่าการเข้ารหัสเดี่ยวสำหรับ (เท่านั้น!) ประมาณ $\log_2 6 â 2.6$ เพิ่มความปลอดภัย ซึ่งเพื่อให้ชัดเจนนั้นไม่มีนัยสำคัญอย่างยิ่ง

(เป็นที่ยอมรับว่าต้นทุนหน่วยความจำของการโจมตีนี้คือ ไม่ จำเป็นต้องเล็กน้อย แต่ก็ยังมีการแลกเปลี่ยนหน่วยความจำเวลาต่างๆ ที่สามารถดำเนินการเพื่อลดได้)


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

แน่นอนว่าวิธีแก้ปัญหาเล็กน้อยก็คือการบังคับให้ค่าที่เป็นไปได้ทั้งหมดของ IV ภายใน 128 บิตในขั้นตอนที่ 2 สำหรับ AES-256 สองเท่า สิ่งนี้จะทำให้การเข้ารหัสสองครั้งถูกทำลายใน $2^{128} \คูณ 2^{256} = 2^{384}$ การเข้ารหัสแบบ AES ซึ่งยังน้อยกว่าแบบ $2^{512}$ การเข้ารหัสที่เราคาดหวังจากความยาวของคีย์

kelalaka avatar
in flag
คุณเข้าสู่โหมดเต็มแล้ว ซึ่งฉันต้องอัปเดตด้วยเช่นกัน :)

โพสต์คำตอบ

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