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

DES ทำงานอย่างไรในความปลอดภัยของข้อมูล


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