DES เป็นรหัสบล็อก ขั้นตอนการเข้ารหัสสร้างการเรียงสับเปลี่ยนสองแบบ (Pboxes) ที่สามารถกำหนดการเปลี่ยนลำดับเริ่มต้นและขั้นสุดท้ายได้ และรอบ Feistel 16 รอบ แต่ละรอบต้องใช้คีย์กลม 48 บิตที่แตกต่างกันซึ่งสร้างจากคีย์การเข้ารหัสตามอัลกอริธึมที่กำหนดไว้ล่วงหน้า
DES ขึ้นอยู่กับคุณลักษณะที่สำคัญสองประการของการเข้ารหัสรวมถึงการแทนที่ (หรือที่เรียกว่าความสับสน) และการเคลื่อนย้าย (หรือที่เรียกว่าการแพร่กระจาย) DES มี 16 ขั้น แต่ละขั้นเรียกว่ากลม
แต่ละรอบจะใช้ขั้นตอนของการทดแทนและการขนย้าย DES เป็นระบบการเข้ารหัสแบบไม่สมมาตร บล็อกถูกเข้ารหัสโดยสร้างความเสียหายให้กับ IP การเปลี่ยนแปลงเริ่มต้นและทำให้เกิดการคำนวณที่ซับซ้อนซึ่งขึ้นกับคีย์ และสุดท้ายคือการเปลี่ยนลำดับซึ่งตรงกันข้ามกับ IP การเปลี่ยนแปลงเริ่มต้น -1 .
ให้เราพูดถึงขั้นตอนต่อไปนี้ใน DES
-
การเรียงสับเปลี่ยนเริ่มต้น (IP) − จำเป็นต้องมีการเรียงสับเปลี่ยนเริ่มต้นเพียงครั้งเดียวเมื่อเริ่มต้นกระบวนการเข้ารหัส ใน DES หลังจากที่ข้อความธรรมดาทั้งหมดถูกแบ่งออกเป็นบล็อกละ 64 บิต IP เป็นสิ่งจำเป็นสำหรับแต่ละรายการ การเรียงสับเปลี่ยนเริ่มต้นนี้เป็นขั้นตอนในขั้นตอนการขนย้าย
-
รอบ − DES ใช้ 16 รอบ DES แต่ละรอบเป็นรหัส Feistel รอบใช้เวลา LI-1 และ RI-1 จากรอบที่แล้วและโปรดิวซ์ LI และ Rฉัน ซึ่งไปต่อรอบต่อไป สามารถพิจารณาได้ว่าแต่ละรอบมีส่วนประกอบที่เป็นตัวเลขสองตัว (mixer andswapper)
แต่ละองค์ประกอบเหล่านี้สามารถกลับด้านได้ Swapper นั้นกลับด้านได้อย่างแน่นอน สามารถสลับครึ่งซ้ายของข้อความกับครึ่งขวา มิกเซอร์สามารถพลิกกลับได้ผ่านการทำงานของ XOR ส่วนประกอบที่ไม่สามารถย้อนกลับได้ทั้งหมดจะถูกรวบรวมภายใน functionf(RI-1 , Kฉัน )
-
การเรียงสับเปลี่ยนขั้นสุดท้าย (FP) − เมื่อสิ้นสุดวันที่ 16 th รอบการเปลี่ยนแปลงขั้นสุดท้ายจะดำเนินการ นี่คือการขนย้ายอย่างง่ายขึ้นอยู่กับตาราง ตัวอย่างเช่น 40 th อินพุตรับตำแหน่ง 1 st บิตเอาท์พุต ฯลฯ ผลลัพธ์ของการเรียงสับเปลี่ยนขั้นสุดท้ายคือบล็อกที่เข้ารหัสแบบ 64 บิต
40 | 8 | 48 | 16 | 56 | 24 | 64 | 32 | 39 | 7 | 47 | 15 | 55 | 23 | 63 | 31 |
38 | 6 | 46 | 14 | 54 | 22 | 62 | 30 | 37 | 5 | 45 | 13 | 53 | 21 | 61 | 29 |
36 | 4 | 44 | 12 | 52 | 20 | 60 | 28 | 35 | 3 | 43 | 11 | 51 | 19 | 59 | 27 |
34 | 2 | 42 | 10 | 50 | 18 | 58 | 26 | 33 | 1 | 41 | 9 | 49 | 17 | 57 | 25 |
-
การถอดรหัส DES − เป็นรูปแบบการเข้ารหัสที่ซับซ้อนอย่างยิ่ง ดังนั้นการถอดรหัสโดยใช้ DES จึงสามารถใช้แนวทางที่แตกต่างออกไปในท้ายที่สุด อัลกอริธึมที่คล้ายกันนี้ใช้สำหรับการเข้ารหัสใน DES และใช้สำหรับถอดรหัสด้วย
ค่าของตารางหลายตารางและการดำเนินการตลอดจนลำดับของตารางจะถูกเลือกอย่างระมัดระวังเพื่อให้อัลกอริทึมสามารถย้อนกลับได้ ความแตกต่างเพียงอย่างเดียวระหว่างการเข้ารหัสและขั้นตอนการถอดรหัสคือการกลับรายการของส่วนสำคัญ
หากคีย์ K ดั้งเดิมถูกแบ่งออกเป็น K1, K2, K3….K16 สำหรับการเข้ารหัส 16 รอบ ดังนั้นสำหรับการถอดรหัส คีย์จะต้องใช้เป็น K16, K15 และ K14…k1