Modern Block Cipher
เข้ารหัส Plaintext บล็อก m-bit ถอดรหัส Ciphertext บล็อก m-bit ใช้ K-bit Key อัลกอริทึมถอดรหัสต้องเป็น Inverse ของเข้ารหัส ใช้คีย์เดียวกัน
โหมดการทำงาน (Modes of Operation)
ป้องกันการเข้ารหัสบล็อกเหมือนกันด้วยวิธีเดียวกัน ใช้ Ciphertext บล็อกก่อนหน้ามาป้อนบล็อกถัดไป ใช้ Initialization Vector (IV) ให้ Ciphertext ต่างกันแม้ Plaintext และ Key เหมือนกัน
ส่วนประกอบหลัก
1. D-boxes (Permutation Boxes)
คล้าย Transposition Ciphers แบบดั้งเดิม สลับตำแหน่งบิต 3 ประเภท:
- Straight D-box: n Input → n Output สลับตามลำดับ (เช่น Input ตัวที่ 2 → Output ตัวแรก) มี n! วิธี Mapping
- Compression D-box: n Input → m Output (m < n) บล็อกบาง Input ไม่ไปถึง Output ใช้เมื่อต้องการสลับบิตและลดจำนวนบิต
- Expansion D-box: n Input → m Output (m > n) Input บางตัวเชื่อมหลาย Output ใช้เมื่อต้องการสลับบิตและเพิ่มจำนวนบิต
2. S-boxes (Substitution Boxes)
คล้าย Substitution Cipher Input n-bit → Output m-bit (m, n ไม่จำเป็นต้องเท่ากัน)
3. Circular Shift
Left-shift หรือ Right-shift ใน Circular Left Shift: เลื่อนบิต m ตำแหน่งซ้าย บิตซ้ายสุด m ตัวกลายเป็นบิตขวาสุด