สรุปความแตกต่างสำคัญ
| ลักษณะ | Public Key (คีย์สาธารณะ) | Private Key (คีย์ส่วนตัว) |
|---|---|---|
| การเข้าถึง | เผยแพร่สาธารณะ ได้ทุกคน | เก็บเป็นความลับ เฉพาะเจ้าของ |
| หน้าที่หลัก | เข้ารหัสข้อมูล (Encrypt) | ถอดรหัสข้อมูล (Decrypt) / ลงนามดิจิทัล |
| ความเสี่ยงการสูญหาย | ไม่มี (เป็นสาธารณะ) | สูง หากสูญหายระบบจะใช้งานไม่ได้ |
| ตัวอย่างการใช้งาน | SSL/TLS Certificate, SSH Public Key | SSL Private Key, SSH Private Key, PGP Private Key |
หลักการทำงานของ Asymmetric Cryptography (การเข้ารหัสแบบอสมาตร)
ระบบคีย์คู่ (Key Pair) ทำงานร่วมกัน:
- ผู้สร้างคีย์สร้างคู่คีย์: Public Key และ Private Key ซึ่งเชื่อมโยงกันทางคณิตศาสตร์
- Public Key แจกจ่ายให้ทุกคน (เช่น โพสต์บนเว็บไซต์ ใส่ใน Certificate)
- ฝั่งส่งข้อมูลใช้ Public Key ของผู้รับ เข้ารหัสข้อความ (Plaintext → Ciphertext)
- เฉพาะ Private Key ของผู้รับ เท่านั้นที่ถอดรหัสกลับเป็น Plaintext ได้
- แม้ Public Key จะรู้จักก็จำเป็นต้องมี Private Key คู่กันถึงจะถอดรหัสได้
การประยุกต์ใช้ในเทคโนโลยีจริง
SSL/TLS (HTTPS)
- เว็บเซิร์ฟเวอร์มีคู่คีย์: Public Key อยู่ใน Certificate (ส่งให้ Browser), Private Key เก็บบน Server
- Browser ตรวจสอบ Certificate (ไว้วางใจ CA) → ใช้ Public Key เข้ารหัส Session Key → ส่งให้ Server
- Server ใช้ Private Key ถอดรหัสได้ Session Key → ใช้ Session Key (Symmetric) เข้ารหัสข้อมูลต่อไป
SSH (Secure Shell)
- ผู้ใช้สร้างคู่คีย์:
id_rsa(Private) และid_rsa.pub(Public) - นำ Public Key ไปวางบน Server (
~/.ssh/authorized_keys) - ตอนเชื่อมต่อ Server ส่ง Challenge เข้ารหัสด้วย Public Key → Client ถอดรหัสด้วย Private Key → ส่งคำตอบกลับ → Server ยืนยันตัวตน
- Private Key ต้องเก็บไว้ปลอดภัย ห้ามแชร์ให้ใคร (รวมถึง Admin Server)
Email Encryption (PGP/GPG)
- เข้ารหัสอีเมลด้วย Public Key ของผู้รับ → เฉพาะ Private Key ของผู้รับถอดรหัสได้
- ลงนามดิจิทัลด้วย Private Key ของตัวเอง → ใครก็ตรวจสอบได้ด้วย Public Key
คำถามพบบ่อย (FAQ)
Private Key ใช้ทำอะไรบ้าง?
- ถอดรหัสข้อมูลที่เข้ารหัสมาด้วย Public Key คู่
- สร้าง Digital Signature เพื่อยืนยันความถูกต้องและ عدمการปฏิเสธ (Non-repudiation)
- ใน SSL: ใช้ตั้งค่า Session Key ระหว่าง Client-Server
Public Key มาจากไหน?
สร้างขึ้นโดยอัลกอริทึม (RSA, ECC, Ed25519) พร้อมกับ Private Key มักจัดการโดย CA (Certificate Authority) หรือซอฟต์แวร์สร้างคีย์ (OpenSSL, ssh-keygen)
SSL ใช้ Public Key Encryption จริงหรือไม่?
ใช่ แต่แบบผสม (Hybrid): ใช้ Asymmetric (Public/Private) แลกเปลี่ยน Symmetric Key (Session Key) แล้วค่อยใช้ Symmetric Encryption (AES, ChaCha20) เข้ารหัสข้อมูลจริง เพราะเร็วกว่ามาก
การแชร์ Public SSH Key ปลอดภัยไหม?
ปลอดภัยมาก เพราะ Public Key ออกแบบมาให้แชร์ได้ จะไม่สามารถคำนวณย้อนกลับหา Private Key ได้ (ในทางปฏิบัติ) แต่ควรตรวจสอบ Fingerprint ก่อนนำไปใช้