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

การนำ Triple DES ไปใช้งานมีวิธีการอย่างไร?

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 ในทุกโครงการใหม่