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

องค์ประกอบที่มีความสำคัญต่อความปลอดภัยมากที่สุดของฟังก์ชัน DES round คืออะไร?


มีองค์ประกอบต่างๆ ของ DES ซึ่งมีดังนี้ -

การเปลี่ยนแปลงที่สำคัญ − คีย์ 64 บิตเริ่มต้นเปลี่ยนเป็นคีย์ 56 บิตโดยละทิ้ง 8 th บิตของคีย์เริ่มต้น ดังนั้นในแต่ละรอบจึงใช้คีย์ 56 บิต จากคีย์ 56 บิตนี้ มีการสร้างคีย์ย่อย 48 บิตหลายคีย์ในทุกๆ รอบโดยใช้ขั้นตอนที่เรียกว่าการแปลงคีย์ คีย์ 56 บิตแบ่งออกเป็นสองส่วน แต่ละส่วนมี 28 บิต

รอบ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
เปลี่ยนจำนวนบิตคีย์ 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

จำนวนบิตคีย์ที่เลื่อนในแต่ละรอบ

ในขั้นตอนการแปลงคีย์ จะรวมถึงการเรียงสับเปลี่ยนและการเลือกคีย์ 48 บิตจากคีย์ 56 บิตดั้งเดิมซึ่งเรียกว่าการเรียงสับเปลี่ยนการบีบอัด ในเทคนิคการเรียงสับเปลี่ยนการบีบอัด มีชุดย่อยของบิตคีย์หลายชุดที่ใช้ในแต่ละรอบ สิ่งนี้สร้าง DES ที่ไม่ใช่แค่การถอดรหัส

การขยายการเปลี่ยนแปลง − หลังจากการเรียงสับเปลี่ยนเริ่มต้น จะมีพื้นที่ข้อความธรรมดาแบบ 32 บิตสองพื้นที่ เรียกว่าข้อความธรรมดาด้านซ้ายและข้อความธรรมดาด้านขวา ในระหว่างการเรียงสับเปลี่ยนการขยาย RPT จะกระจายจาก 32 บิตเป็น 48 บิต สามารถเพิ่มขนาดบิตได้จาก 32 เป็น 48 บิตจะถูกเรียงสับเปลี่ยนเป็นที่รู้จักกันดีในชื่อการเปลี่ยนลำดับการขยาย

ดังที่จะเห็นได้ในขั้นแรก กระบวนการแปลงคีย์จะบีบอัดคีย์แบบ 56 บิตเป็น 48 บิต ดังนั้น กระบวนการเปลี่ยนลำดับการขยายจึงพัฒนา RPT แบบ 32 บิตเป็น 48 บิต

การทดแทน S-box − การแทนที่ S-box เป็นขั้นตอนที่ยอมรับอินพุต 48 บิตจากการดำเนินการ XOR ที่มีคีย์บีบอัดและ RPT ที่ขยายออก และพัฒนาเอาต์พุต 32 บิตโดยใช้เทคนิคการแทนที่

การเปลี่ยนตัวดำเนินการโดยกล่องเปลี่ยนตัวแปดกล่อง (หรือที่เรียกว่ากล่อง S) S-box แปดกล่องแต่ละกล่องมีอินพุต 6 บิตและเอาต์พุต 4 บิต บล็อกอินพุต 48 บิตแบ่งออกเป็น 8 บล็อกย่อย (แต่ละบล็อกมี 6 บิต) และแต่ละบล็อกย่อยมีให้กับ S-box

การเรียงสับเปลี่ยน P-box − เอาต์พุตของ S-box มี 32 บิต 32 บิตเหล่านี้ถูกเรียงสับเปลี่ยนโดยใช้ P-box โครงสร้างการเรียงสับเปลี่ยนที่ตรงไปตรงมานี้ประกอบด้วยการเรียงสับเปลี่ยนอย่างง่าย รวมถึงการแทนที่แต่ละบิตด้วยบิตอื่นตามที่กำหนดไว้ในตาราง Pbox โดยไม่มีการขยายหรือบีบอัดใดๆ สิ่งนี้เรียกว่าการเรียงสับเปลี่ยน P-box

XOR และ SWAP − สามารถใช้การดำเนินการทั้งหมดเหล่านี้ได้เฉพาะในส่วนครึ่งขวา 32 บิตของข้อความธรรมดาดั้งเดิม 64 บิต (เช่น บน RPT) ส่วนครึ่งทางซ้าย (เช่น LPT) ยังไม่ได้รับผลกระทบ

ในช่วงหัวเลี้ยวหัวต่อนี้ ส่วนครึ่งซ้ายของบล็อกข้อความธรรมดา 64 บิตเริ่มต้น (เช่น LPT) จะเป็น XOR โดยเอาต์พุตที่สร้างโดยการเปลี่ยน P-box ผลลัพธ์ของการดำเนินการ XOR นี้พัฒนาเป็นครึ่งใหม่ขวา (เช่น RPT) ครึ่งขวาเก่า (เช่น RPT) พัฒนาเป็นครึ่งซ้ายใหม่ในขั้นตอนการแลกเปลี่ยน