Public Key Cryptography คืออะไร?
**Public Key Cryptography (PKC)** หรือ **Asymmetric Encryption** ใช้ **คู่กุญแจ 2 ตัว** ที่เกี่ยวข้องทางคณิตศาสตร์:
- Public Key (กุญแจสาธารณะ): แจกจ่ายได้อย่างอิสระ ใช้สำหรับ **เข้ารหัส (Encrypt)** หรือ **ตรวจสอบลายเซ็น (Verify Signature)**
- Private Key (กุญแจส่วนตัว): เก็บไว้ลับ เฉพาะเจ้าของ ใช้สำหรับ **ถอดรหัส (Decrypt)** หรือ **ลงนาม (Sign)**
หลักการทำงาน
- ผู้ส่งขอ **Public Key** ของผู้รับ
- นำ Public Key ไป **เข้ารหัสข้อความ** → ได้ Ciphertext
- ส่ง Ciphertext ไปหาผู้รับ
- ผู้รับใช้ **Private Key** ของตน **ถอดรหัส** → ได้ Plaintext
คุณสมบัติสำคัญ: ไม่สามารถคำนวณ Private Key จาก Public Key ได้ (Computationally Infeasible)
อัลกอริทึมยอดนิยม
- RSA (Rivest-Shamir-Adleman): มาตรฐานเก่าแก่ ใช้งานแพร่หลาย
- ECC (Elliptic Curve Cryptography): ขนาดกุญแจเล็กกว่า ความปลอดภัยเท่าเดิม ประหยัดทรัพยากร
- Diffie-Hellman: ใช้สำหรับ Key Exchange
- DSA/ECDSA: ใช้สำหรับ Digital Signature
การใช้งานในเครือข่ายจริง
- TLS/SSL (HTTPS): Handshake ใช้ Asymmetric เพื่อแลกเปลี่ยน Symmetric Key
- SSH: การยืนยันตัวตนและเข้ารหัสการเชื่อมต่อ
- PGP/GPG: เข้ารหัสอีเมลและไฟล์
- Digital Signature: ยืนยันความถูกต้องและ Non-repudiation
- Cryptocurrency: Bitcoin, Ethereum ใช้ ECC
ความปลอดภัยและการโจมตี
- ปลอดภัยต่อ Passive Attack: เฉพาะดู Public Key ไม่สามารถถอดรหัสได้
- Chosen-Ciphertext Attack (CCA): โจมตีขั้นสูง ต้องมีตัวอย่างการถอดรหัส
- Quantum Threat: คอมพิวเตอร์ควอนตัมอาจแยก RSA/ECC ได้ในอนาคต → Post-Quantum Cryptography
ตัวอย่างการใช้งาน (RSA)
Key Generation: - เลือกเฉพาะ p, q → n = p×q, φ(n) = (p-1)(q-1) - เลือก e (Public Exponent) เช่น 65537 - คำนวณ d (Private Exponent) = e⁻¹ mod φ(n) Encryption: c = mᵉ mod n Decryption: m = cᵈ mod n
ข้อดีและข้อจำกัด
| ข้อดี | ข้อจำกัด |
|---|---|
| ไม่ต้องแลกเปลี่ยน Secret Key ล่วงหน้า | ช้ากว่า Symmetric Encryption มาก (1000x+) |
| รองรับ Digital Signature & Non-repudiation | ขนาดกุญแจใหญ่ (RSA 2048-4096 bits) |
| Scalable สำหรับผู้ใช้จำนวนมาก | ต้องมี PKI (Public Key Infrastructure) จัดการ Certificate |
สรุป
Public Key Encryption เป็น **รากฐานของความปลอดภัยอินเทอร์เน็ตสมัยใหม่** ใช้ร่วมกับ Symmetric Encryption (Hybrid Cryptosystem) เพื่อให้ได้ทั้งความปลอดภัยและประสิทธิภาพ