แบบฝึกหัด 3.6 จากการเข้ารหัสและวิศวกรรม พิจารณารหัสบล็อกใหม่ DES2 ที่ประกอบด้วย
สองรอบของรหัสบล็อก DES DES2 มีบล็อกและคีย์เดียวกัน
ขนาดเป็น DES สำหรับคำถามนี้ คุณควรพิจารณาฟังก์ชัน DES F
เป็นกล่องดำที่รับสองอินพุต กลุ่มข้อมูล 32 บิต และ
คีย์กลม 48 บิต และสร้างเอาต์พุต 32 บิต สมมติว่าคุณมี
ข้อความธรรมดา-ciphertext คู่จำนวนมากสำหรับ DES2 ภายใต้รายการเดียว
คีย์ที่ไม่รู้จัก ให้อัลกอริทึมสำหรับการกู้คืนคีย์กลม 48 บิตสำหรับ
รอบที่ 1 และคีย์รอบ 48 บิตสำหรับรอบที่ 2 อัลกอริทึมของคุณควร
ต้องการการดำเนินการน้อยกว่าการค้นหาอย่างละเอียดถี่ถ้วนสำหรับทั้งหมด
คีย์ DES 56 บิต อัลกอริทึมของคุณสามารถแปลงเป็นความแตกต่างได้หรือไม่
โจมตี DES2?
ความคิดของฉันคือถ้าเรามีคู่ข้อความธรรมดา-ciphertext เราจะทำสิ่งต่อไปนี้
เราแบ่งไซเฟอร์เท็กซ์ C ออกเป็น 32 บิตสองบิต เราต้องเดา K2 ด้วยการดำเนินการ 2^48 จากนั้น XOR L ด้วยเอาต์พุต F(K2,C) และเปรียบเทียบกับ R ของข้อความธรรมดา ถ้ามันเท่ากัน เรารู้ว่า K2 ถูกต้อง เพื่อให้แน่ใจว่า K2 ถูกต้องจริงๆ เราสามารถใช้คู่อื่นเพื่อยืนยันได้ ตอนนี้เราต้องค้นหา K1 อีกครั้งด้วยการดำเนินการ 2^48 โดยรวมแล้วเราต้องการการดำเนินการ 2*2^48 มากกว่า 2^48 * 2^48 หรือดีกว่า 2^56 การดำเนินการ และเราสามารถใช้การโจมตีที่แตกต่างได้อย่างง่ายดายโดยใช้คีย์ที่อ่อนแอของ DES? และพยายามหาความเท่าเทียมกันของ L และ R ด้วยการดำเนินการ 2^48 เท่านั้น ฉันอาจจะผิดไปจากพื้นดินโดยสิ้นเชิง ฉันวาดรหัส "2DES" ถูกต้องหรือเปล่า