Pretty Good Privacy (PGP) dikembangkan oleh Philip Zimmerman pada akhir tahun 1980. Versi pertama PGP dirilis pada tahun 1991. PGP yang berikutnya yaitu versi 2.6.x dan 5.x (atau 3.0) sudah di implementasikan oleh seluruh sukaralawan yang bekerjasama dibawah bimbingan desain Zimmerman. PGP digunakan untuk melindungi surat elektronik (e-mail) dengan memberi perlindungan kerahasian (enkripsi) dan otentikasi (tanda-tangan digital).
Beberapa istilah yang sering digunakan
·         cryptography/encryption
ilmu pengetahuan yang mempelajari pengacakan text sehingga tidak seorang pun yang dapat mengetahuinya kecuali bila ia tahu kode yang digunakan untuk men-dechipernya.
·         conventional cryptography
suatu metode encryption/enkripsi di mana suatu kunci digunakan untuk melakukan enksripsi dan dekripsi suatu plaintext.
·         encrypt/encipher
pengacakan/scramble dari suatu informasi.
· decrypt/decipher
mengembalikan informasi yang telah diacak menjadi bentuk informasi yang semula.
·         ciphertext/cipher
text setelah dilakukan proses  enkripsi
·         plaintext
text yang akan dienkripsi
· key/kunci
kode yang digunakan untuk melakukan enchiper dan atau dechiper suatu text. Dalam kriptografi konvensional, kunci yang digunakan untuk  enkripsi dan dekripsi adalah sama. Dalam public-key cryptography,kunci untuk enkripsi dan dekripsi berbeda.
·         public-key crypto
suatu sistem yang menggunakan dua kunci; yaitu  public key dan the secret key yang lebih baik dan lebih praktis dibandingkan dengan conventional crypto. Tujuan utamanya adalah kemudahan dalam manajemen kunci.
·         algorithm/algoritma
algorithm adalah program  crypto apa yang digunakan untuk melakukan enkripsi. Ia bukanlah suatu kunci, tetapi menghasilkan kunci. Suatu algoritma yang kuat/bagus akan manghasilkan crypto yang kuat.bagus juga. PGP menggunakan IDEA untuk bagian crypto yang konvensional, dan RSA untuk bagian  public-key . keduanya adalah algoritma yang bagus, namun RSA lebih bagus daripada IDEA.
· passphrase
adalah suatu word  atau phrase, atau bahkan hanya karakter acak,  yang digunakan PGP untuk mengidentifikasi seseorang sebagai person yang diinginkan oleh orang tersebut. Suatu  passphrase sebaiknya lebih dari satu word,  dan jangan pernah membuat yang orang lain dapat menebaknya, seperti nama, nama tengah, binatang kesayangan, nama anak, hari ultah, nama pacar, alamat, band favorit dsb. suatu passphrase yang ideal, adalah setengah dari baris  text.  Sebaiknya lebih dari tiga word dan mengandung hal-hal berikut:  proper name, suatu slang atau vulgar word, dan irregular capitalization, sebagai contoh: tHe, benny, dll. JUGA, Sifat lainnya adalah ia harus mudah diketik secara cepat, tanpa error, dan tanpa perlu melihatnya pada layar.
·         public key
adalah suatu kunci yang memiliki sifat sebagai berikut : mempunyai suatu koneksi, sangat berbeda dari yang lainnya, didistribusikan dalam jumlah yang besar , melaluui banyak channel, secure atau insecure.
·         secret key
adalah suatu kunci yang dimiliki oleh kita dan hanya kita seorang, dan tidak pernah diperlihatkan kepada publik.
·         ASCII armor/radix-64
adalah suatu format yang digunakan PGP  untuk mengkonversi default binary ciphertext, yang tidak dapat ditransfer melalui jaringan, menjadi suatu bentuk  ASCII yang dapat dikirmkan melalui email atau usenet.
Prinsip Kerja PGP
ü PGP, seperti yang telah dijelaskan sebelumnya,  menggunakan  teknik yang disebut public-key encryption  dengan dua kode. Kode-kode ini berhubungan secara intrinsik, namun tidak mungkin untuk memecahkan satu dan yang lainnya.
ü  Bila suatu ketika kita membuat suatu kunci, maka secara otomatis akan dihasilkan sepasang kunci yaitu  public key and secret key. Kita dapat  memberikan  public key ke manapun  tujuan yang kita inginkan, melalui telephone,  internet, keyserver, dsb. Secret key yang disimpan pada mesin kita dan menggunakan messager decipher akan dikirimkan ke kita. Jadi orang  yang akan menggunakan public key kita  (yang  hanya dapat didekripsi oleh oleh secret key kita), mengirimkan messages kepada kita , dan  kita akan menggunakan secret key untuk membacanya.
ü  Kenapa menggunakan dua kunci ?.
Karena dengan  conventional crypto,  di saat  terjadi transfer informasi kunci, suatu secure channel  diperlukan. Dan jika kita memiliki suatu secure channel, mengapa kita menggunakan crypto?  Namun dengan public-key system, tidak akan menjadi masalah siapa yang melihat kunci milik kita, karena kunci yang dilihat orang lain adalah yang digunakan hanya untuk  enkripsi dan hanya kita sebagai pemilik yang mengetahui secret key; yaitu key yang berhubungan secara fisik dengan komputer kita  yang dapat melakukan proses dekripsi dengan public key yang ada dan kemudian kita masukan lagi passphrase.  Jadi seseorang mungkin dapat mencuri passphrase  yang kita ketikkan, namun ia dapat membaca  hanya  jika  ia dapat mengakses komputer kita
Ilustrasi Pemakaian PGP
·         Public-key sangat lambat bila dibandingkan dengan konvensional, jadi PGP akan mengkombinasikan dua algoritma, yaitu RSA and IDEA, untuk melakukan enkripsi plaintext kita.
·         Sebagai contoh, Badrun (pemilik PGP) ingin mengenkripsi  suatu file yang diberi nama plain.txt sedemikian sehingga hanya si Matangin yang dapat mendekripsi-nya.  Maka Badrun mengirimkan  PGP  perintah (command line) untuk melakukan enkripsi  :
pgp -e plain.txt Matangin
Pada command line ini, pgp adalah file executable, -e  berarti  memberitahukan PGP untuk meng-encrypt file, plain.txt adalah nama plaintext, dan dul merepresentasikan public key suatu tujuan (Matangin) yang diinginkan Badrun untuk mengenkripsi message-nya. PGP menggunakan suatu random number generator, dalam file randseed.bin untuk menghasilkan suatu  kunci (session key) temporary IDEA. Session key itu sendiri di-enkripsi dengan kunci RSA public  yang direpresentasikan oleh Matangin  yang disematkan pada plaintext.
·         Kemudian, PGP menggunakan session key  untuk mengenkripsi message, ASCII-armors dan menyimpan seluruhnya sebagai cipher.asc. Bila Matangin ingin membaca pesannya, ia mengetikkan command:
pgp cipher.asc
·         PGP  menggunakan  secret key milik Matangin, yang merupakan kunci RSA,        untuk men-dekripsi sessi kunci yang mana, yang jika dipanggil oleh Badrun akan dienkripsi oleh  public key. kemudian, conventional crypto digunakan dalam bentuk  session key untuk mendekripsi sisa dari message. Alasan prinsip ini adalah sebagai pengganti/kompensasi dari RSA karena “RSA is too slow, it’s not stronger, and it may even be weaker.” (-PGP Documentation, pgpdoc2.txt).