Triple DES (3DES / TDEA)
บล็อกไซเฟอร์แบบสมมาตร ใช้ DES ทำซ้ำ 3 รอบ เพื่อเพิ่มความยาวกุญแจที่มีผล
โครงสร้าง
3-Key 3DES (Keying Option 1) - มาตรฐาน
Encryption: C = E_{K3}(D_{K2}(E_{K1}(P)))
Decryption: P = D_{K1}(E_{K2}(D_{K3}(C)))- K1, K2, K3 = กุญแจ 56 บิต ตัวละ (รวม 168 บิต)
- ลำดับ: เข้ารหัส (K1) → ถอดรหัส (K2) → เข้ารหัส (K3)
- ทำแบบ E-D-E เพื่อ Backward Compatibility: ถ้า K1=K2=K3 จะกลายเป็น DES ธรรมดา
2-Key 3DES (Keying Option 2) - ล้าสมัย
C = E_{K1}(D_{K2}(E_{K1}(P)))- K1, K2 = กุญแจ 56 บิต (รวม 112 บิต), K3 = K1
- มีช่องโหว่ Meet-in-the-Middle → ความแข็งแกร่งจริง ~80 บิต NIST ห้ามใช้ใหม่
คุณสมบัติหลัก
| คุณสมบัติ | ค่า |
|---|---|
| ขนาดบล็อก | 64 บิต |
| ขนาดกุญแจนำเข้า | 64 บิต × 3 = 192 บิต (มีพาริตี้ 8 บิต/กุญแจ) |
| ขนาดกุญแจที่มีผล | 56 บิต × 3 = 168 บิต (3-key), 112 บิต (2-key) |
| จำนวนรอบ DES | 48 รอบ (3 × 16) |
| ความเร็ว | ~1/3 ของ DES |
| โหมดทำงาน | ECB, CBC, CFB, OFB, CTR (แนะนำ CBC/CTR) |
จุดแข็ง / จุดอ่อน
- ✅ แก้ปัญหา Brute-force ของ DES (56 บิต → 112/168 บิต)
- ✅ เข้ากันได้กับระบบเก่า (Legacy Systems)
- ✅ มาตรฐาน ANSI X9.52, ISO/IEC 18033-3
- ❌ ช้า (Software: ไม่มี AES-NI, Hardware: 48 รอบ)
- ❌ บล็อก 64 บิต → เปิดโอกาส Sweet32 Attack (Birthday Bound)
- ❌ 2-key 3DES แตกได้ด้วย Meet-in-the-Middle
- ❌ NIST Deprecated 2023 ห้ามใช้เข้ารหัสใหม่
สถานะปัจจุบันและข้อแนะนำ
- ยังพบใน: TLS 1.2 (Cipher Suite ล้าสมัย), SSH, IPsec, Java Legacy, โปรโตคอลการเงินเก่า
- ต้องย้ายไป AES-256-GCM หรือ ChaCha20-Poly1305 ทันที
- อนุญาตให้ใช้ถอดรหัสข้อมูลเก่า (Legacy Decryption) เพื่อ Migrate เท่านั้น
การจัดการกุญแจ
- กุญแจ 3DES ควรสร้างด้วย CSPRNG (Cryptographically Secure PRNG)
- เก็บใน HSM (Hardware Security Module) หรือ KMS
- หมุนเวียนกุญแจ (Key Rotation) ตามนโยบายองค์กร