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

การเรียงสับเปลี่ยนเริ่มต้นใน DES คืออะไร?


จำเป็นต้องมีการเปลี่ยนลำดับเริ่มต้นเพียงครั้งเดียวเมื่อเริ่มต้นกระบวนการเข้ารหัส ใน DES หลังจากที่ข้อความธรรมดาทั้งหมดถูกแบ่งออกเป็นบล็อกละ 64 บิต IP เป็นสิ่งจำเป็นสำหรับแต่ละรายการ การเรียงสับเปลี่ยนเริ่มต้นนี้เป็นเฟสในขั้นตอนการขนย้าย

การเรียงสับเปลี่ยนเริ่มต้นปรากฏเพียงครั้งเดียว และปรากฏก่อนรอบแรก แนะนำว่าการย้ายใน IP ควรดำเนินการอย่างไร ตามที่แสดงในตาราง

ตัวอย่างเช่น อาจกล่าวได้ว่า IP คืนค่าบิตแรกของบล็อกข้อความธรรมดาดั้งเดิมด้วยค่า 58 th บิตของบล็อกข้อความธรรมดาดั้งเดิม และบิตที่สองที่มี 50 th บิตของบล็อกข้อความธรรมดาดั้งเดิม ฯลฯ นี่เป็นเพียงการเล่นกลตำแหน่งบิตของบล็อกข้อความธรรมดาดั้งเดิม

แนวคิดเกี่ยวกับ IP

ตำแหน่งบิตในบล็อกข้อความธรรมดา จะถูกเขียนทับด้วยเนื้อหาของตำแหน่งบิต
1 58
2 50
3 42
.... ....
64 7

การเรียงสับเปลี่ยนแต่ละครั้งจะสร้างอินพุต 64 บิตและเปลี่ยนลำดับตามกฎเกณฑ์ที่กำหนด สามารถแสดงให้เห็นว่ามีพอร์ตอินพุตเพียงไม่กี่พอร์ตและพอร์ตเอาต์พุตที่สอดคล้องกัน การเรียงสับเปลี่ยนเหล่านี้เป็นการเรียงสับเปลี่ยนแบบไม่มีคีย์ซึ่งอยู่ตรงข้ามกัน

ตัวอย่างเช่น ในการเรียงสับเปลี่ยนเริ่มต้น บิตที่ 58 ในอินพุตพัฒนาเป็นบิตแรกในเอาต์พุต ในทำนองเดียวกัน ในการเปลี่ยนลำดับขั้นสุดท้าย บิตแรกในอินพุตจะพัฒนาเป็นบิตที่ 58 ในเอาต์พุต

ในอีกแง่หนึ่ง หากการเรียงสับเปลี่ยนระหว่างสองรอบนี้ไม่ดำเนินต่อไป บิตที่ 58 ที่เข้าสู่การเปลี่ยนลำดับเริ่มต้นจะเหมือนกับบิตที่ 58 ที่ออกจากการเปลี่ยนแปลงขั้นสุดท้าย

ตารางการย้ายตำแหน่งที่สมบูรณ์ที่ใช้โดย IP จะแสดงอยู่ในตาราง ตารางนี้ต้องอ่านจากซ้ายไปขวาและบนลงล่าง เช่น มีชื่อเสียงว่า 58 ตำแหน่งแรก แสดงว่าเนื้อหาใน 58 th bit ในบล็อกข้อความธรรมดาดั้งเดิมจะเขียนทับเนื้อหาของ 1 st ตำแหน่งบิตระหว่าง IP

ในทำนองเดียวกัน 1 จะแสดงที่ 40 th ตำแหน่งในตารางซึ่งกำหนดว่าบิตแรกจะเขียนทับ 40 th บิตในบล็อกข้อความธรรมดาดั้งเดิม ใช้กฎเดียวกันกับตำแหน่งบิตอื่นๆ ทั้งหมด

58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7

หลังจาก IP เสร็จสิ้น บล็อกข้อความแบบเรียงสับเปลี่ยนแบบ 64 บิตที่เป็นผลลัพธ์จะถูกแบ่งออกเป็นสองช่วงครึ่งบล็อค แต่ละครึ่งบล็อกมี 32 บิต เรียกว่าบล็อกด้านซ้ายเป็น LPT และบล็อกด้านขวาเป็น RPT ตอนนี้ มีการใช้งาน 16 รอบในสองช่วงตึกนี้