Triple DES (3DES / TDEA) คืออะไร?
Triple DES ใช้อัลกอริทึม DES ทำซ้ำ 3 ครั้ง เพื่อเพิ่มความยาวกุญแจที่มีผลเป็น 112 หรือ 168 บิต แก้ปัญหากุญแจ 56 บิตของ DES สั้นเกินไป
โหมดการทำงาน
1. 3-Key 3DES (Keying Option 1) - แนะนำ
C = E_{K3}(D_{K2}(E_{K1}(P)))
P = D_{K1}(E_{K2}(D_{K3}(C)))- ใช้กุญแจ 3 ตัวต่างกัน: K1, K2, K3 (แต่ละตัว 56 บิต = รวม 168 บิต)
- เข้ารหัส → ถอดรหัส → เข้ารหัส (E-D-E) เพื่อเข้ากันได้กับ DES เดิม (ถ้า K1=K2=K3 กลายเป็น DES)
2. 2-Key 3DES (Keying Option 2) - ล้าสมัย
C = E_{K1}(D_{K2}(E_{K1}(P)))- ใช้กุญแจ 2 ตัว: K1, K2 (รวม 112 บิต)
- K3 = K1
- มีช่องโหว่ Meet-in-the-Middle ลดความแข็งแกร่งเหลือ ~80 บิต NIST ห้ามใช้ใหม่หลัง 2023
3. 1-Key 3DES (Keying Option 3) - ไม่ปลอดภัย
- K1 = K2 = K3 = กลายเป็น DES ธรรมดา
รายละเอียดการทำงาน
- บล็อก 64 บิต เหมือน DES
- กุญแจนำเข้า 64 บิต ตัดพาริตี้ 8 บิต → 56 บิตที่ใช้จริง
- 3DES 3-key: ความแข็งแกร่งที่แท้จริง 168 บิต (แต่ Meet-in-the-Middle ลดเหลือ ~112 บิต)
- ช้ากว่า DES ประมาณ 3 เท่า
ตัวอย่างโครงสร้างระบบ (จากเอกสารต้นฉบับ)
ระบบตัวอย่างมี 2 ส่วนประกอบ:
Employee Component
- พนักงานล็อกอินด้วย Employee ID
- รหัสผ่านส่งทางอีเมลส่วนตัว (OTP แบบง่าย)
- ส่งข้อความ → ระบบตรวจคำสงสัย → ถ้าพบ ส่งต่อแอดมินตรวจสอบ
Administrator Component
- แอดมินดูข้อความสงสัยทั้งหมด
- จัดการ Data Dictionary (คำสงสัย)
- ส่งข้อความเข้ารหัสให้พนักงาน (ใช้กุญแจร่วม)
- ดูรายชื่อผู้ใช้ทั้งหมด ลบผู้ใช้ที่ผิดปกติได้
สถานะปัจจุบัน
- NIST SP 800-131A Rev. 2: 3DES ถูกปิดใช้งานสำหรับการเข้ารหัสใหม่หลัง 2023
- ยังอนุญาตให้ถอดรหัสข้อมูลเก่า (Legacy Decryption) เพื่อย้ายไป AES
- TLS 1.2/1.3, SSH, IPsec, PCI-DSS ล้งเลิก 3DES แล้ว
ข้อแนะนำ
ใช้ AES-256-GCM หรือ ChaCha20-Poly1305 แทน 3DES ในทุกโครงการใหม่