การถอดรหัส (Decryption)
กระบวนการย้อนกลับของการเข้ารหัส: แปลง ซิเฟอร์เท็กซ์ (Ciphertext) กลายเป็น เพลนเท็กซ์ (Plaintext) โดยใช้กุญแจเดียวกับการเข้ารหัส (แบบสมมาตร) หรือกุญแจคู่ (แบบอสมมาตร)
ประเภทหลักของการถอดรหัส
1. การถอดรหัสแบบสมมาตร (Symmetric Decryption)
- ใช้ กุญแจเดียวกัน สำหรับเข้ารหัสและถอดรหัส
- ตัวอย่าง: การแทนที่ตัวอักษรง่ายๆ (Caesar Cipher: A→B, B→C...)
- อัลกอริทึม: DES, 3DES, AES, Blowfish, IDEA
- ข้อดี: เร็ว เหมาะกับข้อมูลปริมาณมาก
- ข้อเสีย: จัดการกระจายกุญแจยาก (Key Distribution Problem)
2. การถอดรหัสแบบอสมมาตร (Asymmetric Decryption / Public-Key Decryption)
- ใช้ คู่กุญแจ: Public Key (เข้ารหัส) และ Private Key (ถอดรหัส)
- ข้อความที่เข้ารหัสด้วย Public Key → ถอดรหัสได้เฉพาะ Private Key ที่คู่กัน
- อัลกอริทึม: RSA, ECC, ElGamal
- ข้อดี: แก้ปัญหาการแลกเปลี่ยนกุญแจได้
- ข้อเสีย: ช้ากว่าแบบสมมาตรมาก ใช้กับข้อมูลเล็กหรือแลกกุญแจเซสชัน
3. แฮชชิง (Hashing) - ไม่ใช่การเข้ารหัสจริง แต่เกี่ยวข้อง
- ฟังก์ชัน ทางเดียว (One-way): ข้อมูล → แฮช (คงที่) ไม่สามารถย้อนกลับได้
- ใช้สำหรับ: ตรวจสอบความสมบูรณ์ (Integrity), เก็บรหัสผ่าน, ลายเซ็นดิจิทัล
- ไม่สามารถ "ถอดรหัส" ได้ แต่สามารถตรวจสอบได้โดยคำนวณแฮชใหม่เปรียบเทียบ
- อัลกอริทึม: SHA-256, SHA-3, MD5 (ล้าสมัย), BLAKE2
สรุปการเลือกใช้
| ประเภท | กุญแจ | ความเร็ว | ใช้สำหรับ |
|---|---|---|---|
| สมมาตร | กุญแจเดียว | เร็วมาก | เข้ารหัสข้อมูลจริง (ไฟล์, ดิสก์, TLS record) |
| อสมมาตร | คู่กุญแจ Public/Private | ช้า | แลกกุญแจ, ลายเซ็น, เข้ารหัสข้อมูลเล็ก |
| แฮช | ไม่มีกุญแจ (หรือ HMAC มีกุญแจ) | เร็วมาก | ตรวจสอบความสมบูรณ์, รหัสผ่าน, ลายเซ็น |