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

โครงสร้างของ DES ในความปลอดภัยข้อมูล

โครงสร้าง DES (Data Encryption Standard)

DES เป็น Block Cipher Algorithm เข้ารหัส Plaintext บล็อก 64 บิต ให้ Ciphertext ด้วย Key 48 บิต เป็น Symmetric Key Algorithm (คีย์เดียวกันเข้ารหัส/ถอดรหัส)

กระบวนการเข้ารหัส

ประกอบด้วย 2 Permutations (P-boxes): Initial และ Final Permutations และ 16 Feistel Rounds แต่ละรอบใช้ Round Key 48 บิต ที่สร้างจาก Cipher Key ตามอัลกอริทึมที่กำหนด

องค์ประกอบที่จุดเข้ารหัส

1. Initial และ Final Permutations

  • แต่ละ Permutation: 64-bit Input → Permute ตามกฎที่กำหนด
  • Keyless Straight Permutations ที่เป็น Inverse ของกัน: Initial Permutation บิตที่ 58 → Output บิตแรก Final Permutation บิตแรก → Output บิตที่ 58
  • หากไม่มี Rounds ระหว่างสอง Permutations บิตที่ 58 เข้า Initial = บิตที่ 58 ออก Final

2. Rounds (16 รอบ)

  • แต่ละรอบเป็น Feistel Cipher รับ Lᵢ₋₁, Rᵢ₋₁ สร้าง Lᵢ, Rᵢ ส่งรอบถัดไป
  • แต่ละรอบมี 2 องค์ประกอบ: Mixer และ Swapper (ทั้งคู่ Invertible)
  • Swapper: สลับครึ่งซ้าย-ขวา Mixer: Invertible ผ่าน XOR Operation
  • Non-invertible Elements รวมอยู่ใน Function f(Rᵢ₋₁, Kᵢ)

3. Cipher และ Reverse Cipher

  • ใช้ Mixers และ Swappers สร้าง Cipher (Encryption) และ Reverse Cipher (Decryption) แต่ละตัว 16 รอบ
  • เป้าหมาย: ทำให้ Cipher และ Reverse Cipher Algorithms เหมือนกัน
  • วิธีที่ 1: รอบที่ 16 แตกต่าง (มี Mixer เท่านั้น ไม่มี Swapper) แม้รอบไม่ Horizontal แต่องค์ประกอบ Horizontal
  • วิธีที่ 2: เพิ่ม Swapper เข้าไปในรอบที่ 16 และเพิ่มอีก 1 Swapper (2 Swapper ตัดกันออก) ทำให้ 16 รอบเหมือนกันทุกรอบ