Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

ปัญหาการออกแบบของ DES คืออะไร?


Data Encryption Standard (DES) เป็นอัลกอริธึมบล็อกการเข้ารหัสที่ใช้ข้อความธรรมดาในบล็อกขนาด 64 บิต และแปลงเป็นข้อความเข้ารหัสโดยใช้คีย์ขนาด 48 บิต เป็นอัลกอริธึมคีย์สมมาตร โดยสามารถกำหนดได้ว่าสามารถใช้คีย์เดียวกันเพื่อเข้ารหัสและถอดรหัสข้อมูลได้

การออกแบบ DES ถูกคิดค้นโดย IBM ในปี 1994 มีการทดสอบบางอย่างเกี่ยวกับ DES ที่พิสูจน์แล้วว่าตรงตามองค์ประกอบที่จำเป็นบางอย่างตามที่อ้างสิทธิ์ มีการออกแบบบางอย่างที่ออกซึ่งมีดังนี้ -

กล่อง S S-Boxes เป็นขั้นตอนที่ยอมรับอินพุต 48 บิตจากการดำเนินการ XOR ที่มีคีย์บีบอัดและ RPT ที่ขยายออก และสร้างเอาต์พุต 32 บิตโดยใช้เทคนิคการแทนที่ การแทนที่จะดำเนินการโดยกล่องเปลี่ยนตัวแปดกล่อง (หรือที่เรียกว่ากล่อง S)

S-Box มีคุณสมบัติหลายประการดังนี้ −

  • รายการของแต่ละแถวเป็นการเรียงสับเปลี่ยนของค่าระหว่าง 0 ถึง 15

  • S-box ไม่เป็นเชิงเส้น กล่าวอีกนัยหนึ่ง ผลลัพธ์ไม่ใช่การเปลี่ยนแปลงรูปแบบของอินพุต

  • หากสามารถเปลี่ยนแต่ละบิตในอินพุตได้ สองบิตขึ้นไปจะถูกแปลงในเอาต์พุต

  • หากอินพุตสองตัวของ S-box ต่างกันในสองบิตกลางเท่านั้น (บิต 3 และ 4) เอาต์พุตควรต่างกันในบางส่วนสองบิต กล่าวอีกนัยหนึ่ง S(x) และ S(x ⊕ 001100) จะต้องแตกต่างกันในบางส่วนสองบิต โดยที่ x คืออินพุต และ S(x) คือเอาต์พุต

  • หากอินพุตสองตัวของ S-box ต่างกันในสองบิตแรก (บิต 1 และ 2) และเหมือนกันในสองบิตสุดท้าย (5 และ 6) เอาต์พุตทั้งสองควรต่างกัน กล่าวอีกนัยหนึ่ง จำเป็นต้องมีความสัมพันธ์ดังต่อไปนี้ S(x) ≠ S(x ⊕ 11bc00) ซึ่ง b และ c เป็นบิตตามอำเภอใจ

กล่อง D − D-box คือกล่องเรียงสับเปลี่ยนที่มีคุณสมบัติคล้ายกับรหัสการเคลื่อนย้ายแบบดั้งเดิม D-Box มีคุณสมบัติดังต่อไปนี้ −

  • อินพุต S-box แต่ละรายการจะปรากฏขึ้นจากเอาต์พุตของ S-box ที่ต่างกัน (ในรอบก่อนหน้า)

  • ไม่มีอินพุตไปยังกล่อง S ที่กำหนดปรากฏขึ้นจากเอาต์พุตจากกล่องที่คล้ายกัน (ในรอบก่อนหน้า)

  • เอาต์พุตสี่รายการจาก S-box แต่ละรายการจะไปที่ S-box ที่แตกต่างกัน 6 รายการ (ในรอบถัดไป)

  • ไม่มีเอาต์พุตบิตสองบิตจาก S-box ไปที่ S-box เดียวกัน (ในรอบถัดไป)

  • สำหรับแต่ละ S-box บิตเอาต์พุตทั้งสองจะไปที่สองบิตแรกหรือสองบิตสุดท้ายของ S-box ในรอบถัดไป อีกสองบิตเอาท์พุตแสดงบิตตรงกลางของกล่อง S ในรอบต่อมา

จำนวนรอบ − DES ใช้รหัส Feistel สิบหกรอบ มีการพิสูจน์แล้วว่าหลังจากแปดรอบ แต่ละ ciphertext เป็นฟังก์ชันของทุกบิตข้อความธรรมดาและทุกคีย์บิต ไซเฟอร์เท็กซ์เป็นฟังก์ชันสุ่มอย่างเข้มข้นของข้อความธรรมดาและข้อความไซเฟอร์ ดังนั้นดูเหมือนว่าแปดรอบน่าจะเพียงพอ