พิจารณาตัวแปรของอัลกอริทึม DES ที่เรียกว่า DES-WEAK ใน DES-อ่อนแอ
ไม่มีการเรียงสับเปลี่ยน P ในรอบและ S-boxes ทั้งหมดจะถูกแทนที่ S-box ใหม่ทั้งหมด
เหมือนกันและกำหนดไว้ดังนี้ ให้ b0, . . ., b5 แทนหกอินพุตบิตของ S-box และ a0
a1, a2 และ a3 สี่เอาต์พุตบิต จากนั้น a0 = b3 â b0b1b5, a1 = b0 â b1b3b5, a2 = b1 â b2b3b5,
และ a3 = b2 â b4 â b1b3b5
⢠ออกแบบอัลกอริทึมเพื่อทำลาย DES-WEAK 16 รอบอย่างมีประสิทธิภาพที่สุด
เราก็ได้แนวทางการออกแบบตามที่ผมได้กล่าวมานี้..
เราใช้การเข้ารหัสที่แตกต่างกันเพื่อกู้คืนคีย์ พิจารณา
ส่วนต่าง 000100 เข้าไปใน S-box S2 ให้หนึ่งในสอง
อินพุตด้วยดิฟเฟอเรนเชียลที่กำหนด
เป็น b0b1b2b3b4b5 และเอาต์พุตที่เกี่ยวข้องเป็น a0a1a2a3 ปล่อยให้
เอาต์พุตสำหรับอินพุตที่สอง (= b0b1b2b2(b3 â 1)b4b5) เป็น a 0 0 a 0 1 a 0 2
เอ 0 3 . จากนั้น a0 â a 0 0 = 1, a1 â a 0 1 = b1b5, a2 â a 0 2 = b2b5
และ a3 â a 0 3 = b1b5 ดังนั้นส่วนต่างเอาต์พุตคือ 1,000 บน
กำหนดส่วนต่างอินพุตด้วย
ความน่าจะเป็น 1 2 + 1 2 · 1 4 = 5 8 (b5 เป็นศูนย์หรือ b5 เป็นหนึ่ง และ
ทั้ง b1, b2 เป็นศูนย์)
ปัญหาของเอาต์พุตส่วนต่างนี้คือในรอบถัดไป
หลังจากการขยาย S-box สองตัวจะได้รับส่วนต่างที่ไม่เป็นศูนย์ สมมติ
ในรอบแรก ส่วนต่างของ S1 คือ 000000 และ
ส่วนต่างครึ่งซ้ายยังเป็นศูนย์ทั้งหมด จากนั้นในรอบต่อไป
ส่วนต่างใน S1 จะเป็น 000001 และใน S2 จะเป็น 010000 ให้
เราวิเคราะห์ทั้งสองอย่าง พิจารณา S1 ก่อน ด้วยสัญกรณ์เดียวกันสำหรับครั้งแรก
อินพุตและเอาต์พุตสองตัว (ตอนนี้อินพุตที่สองคือ b0b1b2b3b4(b5 â
1)) เราจะได้ a0 â a 0 0 = b0b1, a1 â a 0 1 = b1b3, a2 â a 0 2 = b2b3
และ a3 â a 0 3 = b1b3 ดังนั้นผลลัพธ์
ผลต่างคือ 0000 ด้วยความน่าจะเป็น 1 2 · 3 4 + 1 2 · 1 4 = 1 2
(b3 เป็นศูนย์และหนึ่งใน b0, b1 เป็นศูนย์หรือ
b3 เป็นหนึ่งและทั้ง b1, b2 เป็นศูนย์) พิจารณา S2 ตอนนี้อินพุตที่สอง
คือ b0(b1 â 1)b2b3b4b5 เราจึงได้ a0 â a 0 0 = b0b5
a1 â a 0 1 = b3b5, a2 â a 0 2 = 1 และ a3 â a 0 3 = b3b5 ด้วยเหตุนี้
ส่วนต่างของเอาต์พุตคือ 0010 ด้วย
ความน่าจะเป็น 1 2 + 1 2 · 1 4 = 5 8 (b5 เป็นศูนย์หรือ b5 เป็นหนึ่ง และ
ทั้ง b0, b3 เป็นศูนย์) ในรอบถัดไป หลังจากใช้การขยายตัว
ส่วนต่างของ S-box ทั้งสองนี้กลายเป็น 000000 000100 ซึ่งก็คือ
ส่วนต่างเดียวกันกับที่เข้าสู่รอบแรกทุกประการ
สองคนนี้! เมื่อใช้การวิเคราะห์นี้ เราสามารถหาลักษณะเฉพาะได้แล้ว
โดยมีความเป็นไปได้สูงดังนี้ ให้ Z ย่อมาจากค่าส่วนต่างเป็นศูนย์บน
32 บิต P ย่อมาจากดิฟเฟอเรนเชียล 0000 0010 0000 0000 0000 0000 0000
0000
, และ PË ย่อมาจากดิฟเฟอเรนเชียล
0000 1000 0000 0000 0000 0000 0000 0000
. การวิเคราะห์ข้างต้นแสดงลำดับการเปลี่ยนแปลงต่อไปนี้ของ
ดิฟเฟอเรนเชียล: [P, Z] p=1 âââ [Z, P] p= 5 8 ââââ [P, PË] p= 5 16 ââââ
[P , Z Ë ] p=1 âââ [Z, PË] p= 5 16 ââââ [P , P Ë ] p= 5 8 ââââ [P, Z].
ความน่าจะเป็นโดยรวมของลักษณะข้างต้นคือ 5 4 2 14
วนซ้ำอีกครั้งแล้วถ่ายแค่สองรอบแรก
ของสิ่งนี้ เราได้ลักษณะเฉพาะรอบสิบสี่รอบที่มีความน่าจะเป็น 5 9 2
31 â 9 Ã 10â4
. ดังนั้นการใช้คู่ข้อความธรรมดาสองสามพันคู่ DES-WEAK จึงสามารถใช้งานไม่ได้
ตอนนี้เรามีความท้าทายใหม่และติดอยู่ในนั้น การออกแบบที่กล่าวถึงด้านล่างนี้เป็นการดัดแปลงเล็กน้อยจากคำถามที่กล่าวถึงข้างต้นซึ่งเราได้ดำเนินการไปแล้ว โดยมีการออกแบบดังนี้..
พิจารณาตัวแปรของอัลกอริทึม DES ซึ่งมี S-boxes ทั้งหมด
แทนที่ S-box ใหม่นั้นเหมือนกันทั้งหมดและกำหนดดังนี้
ให้ b1, b2, · · · , b6 แทนอินพุตหกบิตใน S-box มันคือ
เอาต์พุตคือ b1 â(b2 · b3 · b4), (b3 · b4 · b5) â b6, b1 â (b4 · b5 ·
b2), (b5 · b2 · b3) â b6. ที่นี่ âââ คือการดำเนินการ XOR ระดับบิต และ â·â
เป็นการคูณบิต ออกแบบอัลกอริทึมเพื่อทำลาย DES 16 รอบ
ด้วย S-box ใหม่อย่างมีประสิทธิภาพที่สุด
ในการออกแบบนี้ การดำเนินการเปลี่ยนรูปยังคงอยู่และเอาต์พุต S-box นั้นแตกต่างออกไป แล้วเราจะเข้าใกล้สิ่งนี้ได้อย่างไรเหมือนกับที่เราได้ทำไปแล้วข้างต้น เนื่องจากกล่องเรียงสับเปลี่ยนยังคงอยู่ที่นั่น