โครงสร้าง 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 รอบเหมือนกันทุกรอบ