PGP
PGP (Pretty Good Privacy)
ระบบเข้ารหัสที่ใช้การผสมผสานระหว่างการเข้ารหัสแบบสมมาตรและอสมมาตรเพื่อให้ความลับ การยืนยันตัวตน และความสมบูรณ์สำหรับอีเมล ไฟล์ และข้อมูล โดยอิงจากโมเดล web of trust แบบกระจายศูนย์
รายละเอียดทางเทคนิค
PGP ทำงานในโหมดเข้ารหัสแบบไฮบริด: คีย์เซสชันแบบสมมาตรแบบสุ่ม (AES-256) เข้ารหัสข้อมูล จากนั้นกุญแจสาธารณะ RSA/ECDH ของผู้รับจะเข้ารหัสคีย์เซสชัน ลายเซ็นดิจิทัลใช้กุญแจส่วนตัวของผู้ส่งเพื่อลงนามแฮชของข้อความ มาตรฐาน OpenPGP (RFC 4880 อัปเดตโดย RFC 9580) ถูกนำไปใช้โดย GnuPG (GPG) ซึ่งเป็นทางเลือกแบบโอเพนซอร์ส การจัดการคีย์ใช้โมเดล Web of Trust (ผู้ใช้รับรองคีย์ของกันและกัน) แทน Certificate Authority แบบรวมศูนย์ Keyserver เช่น keys.openpgp.org แจกจ่ายกุญแจสาธารณะ PGP ใช้กันทั่วไปสำหรับการเข้ารหัสอีเมล การเข้ารหัสไฟล์ การลงนามแพ็คเกจซอฟต์แวร์ และการลงนาม Git commit
ตัวอย่าง
```javascript
// AES-256-GCM encryption (Web Crypto API)
const key = await crypto.subtle.generateKey(
{ name: 'AES-GCM', length: 256 }, true, ['encrypt', 'decrypt']
);
const iv = crypto.getRandomValues(new Uint8Array(12));
const ciphertext = await crypto.subtle.encrypt(
{ name: 'AES-GCM', iv },
key,
new TextEncoder().encode('secret message')
);
```