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

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

ภาพรวม DES (Data Encryption Standard)

DES เป็นบล็อกไซเฟอร์แบบสมมาตร (Symmetric Block Cipher) ใช้บล็อกขนาด 64 บิต กุญแจ 56 บิต (จาก 64 บิตตัดพาริตี้ 8 บิต) โครงสร้างแบบไฟสเทล (Feistel) 16 รอบ

ขั้นตอนการเข้ารหัส

  1. Initial Permutation (IP): สลับบิต 64 บิตตามตารางคงที่ → แบ่งเป็น L₀, R₀ (ครึ่งละ 32 บิต)
  2. 16 รอบ Feistel (Rounds): แต่ละรอบ i (1-16) รับ Lᵢ₋₁, Rᵢ₋₁ ให้ Lᵢ, Rᵢ
    • Lᵢ = Rᵢ₋₁
    • Rᵢ = Lᵢ₋₁ ⊕ f(Rᵢ₋₁, Kᵢ)
    • f = ฟังก์ชันรอบ: ขยาย R 32→48 บิต, XOR กับกุญแจย่อย Kᵢ 48 บิต, S-box แทนที่ 48→32 บิต, P-box เรียงลำดับ 32 บิต
  3. Final Permutation (FP = IP⁻¹): สลับบิตกลับตามตาราง FP → ได้ซิเฟอร์เท็กซ์ 64 บิต

การถอดรหัส (Decryption)

ใช้ อัลกอริทึมเดียวกัน แต่เรียงกุญแจย่อยย้อนกลับ: K₁₆, K₁₅, ..., K₁ โครงสร้างไฟสเทลทำให้การเข้ารหัส-ถอดรหัสเหมือนกันได้ เพราะการสลับ (Swap) และ XOR เป็นกลับตัวเอง

ตาราง Final Permutation (FP)

408481656246432397471555236331
386461454226230375451353216129
364441252206028353431151195927
34242105018582633141949175725

จุดสำคัญ

  • DES ใช้การแทนที่ (Substitution/Confusion) และการเรียงลำดับ (Permutation/Diffusion)
  • กุญแจ 56 บิต ปัจจุบันถูกโจมตีแบบ Brute-force ได้แล้ว → ใช้ 3DES หรือ AES แทน
  • IP และ FP เป็นกันเอง ไม่มีกุญแจ ให้ diffusion เล็กน้อย