(Subhan, 2005)PGP bekerja dengan menggabungkan beberapa bagian yang terbaik dari key konvensional (simetrik) dan public key cryptography, sehingga sering disebut hybrid cryptosystem. Ketika seorang pengguna mengenkrip sebuah plaintext dengan menggunakan PGP, maka awal PGP akan mengkompress plaintet ini. Data yang dikompress menghemat waktu, media transmisi dan yang lebih penting adalah keamanan kriptografi yang kuat. Kebanyakan teknik analisis sandi mengeksplotasi pola yang ditemukan dalam plaintext untuk men-crack chiper. Kompressi mengurangi pola-pola ini dalam plaintext, dengan cara demikian perbaikan yang lebih baik untuk menghambat analisa kode-kode.
PGP membuat sebuah session key, yaitu sebuah kunci rahasia berupa bilangan acak pada saat itu. Session Key ini berkerja dengan sangat aman, algoritma enkripsi konvesional yang cepat untuk meng-enkrip plaintext. Hasilnya adalah berupah chiper text. Sekali data dienkripsi, lalu session key ini dienkripsi lagi menggunakan kunci publik penerima. Session key yang terenkripsi kunci publik penerima dikirim dengan chipertext ke penerima.

Gambar Cara Kerja Enkripsi PGP
Proses deskripsi bekerja sebaliknya, penerima menerima pesan lalu membuka pesan tersebut dengan kunci pribadinya, namun pesan tersebut masih terenkripsi dengan session key. Dengan menggunakan PGP, penerima mendekrip chipertext yang terenkripsi secara konvensional.
Sebuah kunci (key) adalah sebuah nilai yang bekerja dengan sebuah algoritma kriptografi untuk menghasilkan sebuah ciphertext yang sepesifik. Kunci pada dasarnya adalah bilangan yang besar.
Ukuran kunci publik dan ukuran kunci rahasia kriptograpi tidak saling barhubungan. Sebuah kunci 80-bit konvensional memiliki kekuatan setara dengan kunci publik 1024-bit. Sebuah kunci 128-bit konvensional setara dengan kunci publik 3000-bit. Jadi semakin besar kunci semakin aman, tetapi algoritma yang digunakan tiap tipe kriptograpi sangat berbeda dan perbendaan ini seperti orang membandingkan antara apel dengan jeruk.
Sementara secara matematis kunci publik dan pribadi berhubungan. Sangat sulit mendapatkan kunci pribadi hanya dengan memberikan kunci publiknya, tetapi mendapatkan kunci pribadi selalu memungkinkan jika diberikan waktu yang cukup dan kekuatan komputasi cukup.
Kunci disimpan dalam bentuk terinkripsi. PGP menyimpan kunci dalam 2 file pada dihardisk, satu untuk kunci publik dan satunya lagi untuk kunci pribadi. File-file ini disebut dengan keyrings. Dalam menggunakan PGP, secara khusus akan ditambahkan kunci publik penerima ke keyring publik. Kunci pribadi disimpan pada keyring pribadi. Jika kehilangan keyring pribadi, maka tidak akan dapat melakukan dekripsi terhadap informasi yang telah terenkripsi pada ring tersebut.
GNU Privacy Guard (GnuPG, atau GPG)
(Sapty, F. R., 2005) GNU Privacy Guard (GnuPG, atau GPG) merupakan software enkripsi email pengganti PGP yang lengkap dan bebas. Pada dasarnya PGP dan GPG adalah sama, hanya pada model pengembangannya saja yang berbeda. GnuPG adalah suatu program yang digunakan untuk mengamankan komunikasi dan penyimpanan data. Program ini dapat menyandikan data serta membuat tanda tangan digital. Karena tidak menggunakan algoritma yang dipatenkan, GnuPG dapat digunakan secara bebas. GnuPG menggunakan kriptografi Public key (public key cryptography) sehingga para penggunanya dapat saling berkomunikasi secara aman. Dalam sistem Public key, setiap pengguna mempunyai sepasang kunci yang terdiri dari Private key dan Public key. Private key dirahasiakan (hanya diketahui oleh pemiliknya), sementara Public key dapat diberikan pada siapa saja yang dikehendaki pemilik, sehingga pemilik dapat berkomunikasi dengan pengguna lain yang diberi Public key tersebut.
GPG bebas karena tidak menggunakan algoritma enkripsi yang telah dipatenkan sehingga bisa dipakai oleh siapa saja tanpa batasan. Beberapa fitur yang ditawarkan GnuPG adalah:
- Penggantian penuh terhadap pemakaian PGP.
- Dapat digunakan sebagai pengganti PGP (yang dipatenkan algoritmanya).
- Tidak menggunakan algoritma yang dipatenkan.
- Berlisensi GPL.
- Ditulis dari nol, sehingga tidak menggunakan kode sumber atau algoritma dari program lainnya.
- Implementasi penuh OpenPGP (RFC 2440).
- Kemampuan yang lebih baik dibandingkan PGP.
- Mampu menerjemahkan / memverifikasi pesan tersandi dari PGP 5.x
- Mendukung algoritma ElGamal (tanda tangan dan penyandian), DSA, 3DES, BlowFish, TwoFish, CAST5, MD5, SHA-1, RIPE-MD-160 dan TIGER
- Kemudahan implementasi algoritma penyandian baru dengan menggunakan modul ekstensi (extension module).
- Identitas pengguna (UserID) diseragamkan dalam suatu bentuk standar.
- Mendukung kunci dan tanda tangan yang dapat kadaluwarsa (hanya dapat digunakan dalam jangka waktu tertentu)
- Mendukung bahasa Inggris, Denmark, Spanyol, Belanda, Perancis, Jerman, Jepang, Italia, Portugis (brasil dan portugal), Polandia, Rusia, dan swedia
- Online Help system.
- Dapat mengirimkan Pesan kepada penerima anonim (optional).
- Dukungan integral untuk HKP Keyserver (wwwkeys.pgp.net).
- Mempunyai banyak program antarmuka grafis.
GnuPG bekerja sempurna di atas sistem operasi Linux dengan platform x86, mips, alpha, sparc64 ataupun powerpc. Sistem operasi lain dengan platform x86 yang juga bekerja adalah FreeBSD, OpenBSD, NetBSD dan bahkan Windows.
Pembuatan kunci dapat menggunakan algoritma DSA maupun ElGamal. Kemudian ditentukan panjang kunci yang akan dibuat. Yang harus dipertimbangkan dalam menentukan panjang kunci, seseorang harus memilih antar aspek kerahasiaan dan waktu yang diperhitungkan. Jika kunci semakin panjang resiko untuk meng-crack pesan akan menurun. Tetapi dengan kunci yang lebih besar waktu kalkulasinya juga bertambah. Panjang kunci minimal pada GnuPG adalah 768 bit. Untuk DSA 1024 bit adalah ukuran yang standar. Password digunakan agar dapat menggunakan fungsionalitas yang dimiliki kunci rahasia. Setelah semua data dimasukkan sistem mulai menggenerate kunci. Proses ini membutuhkan waktu beberapa lama.
Orang lain dapat menghubungi seseorang secara aman dengan kunci publik yang telah dibuat. Mempublish kunci dapat dilakukan dengan mempublishnya pada homepage sendiri (dengan finger) melalui server kunci .Saat menerima kunci publik dari orang lain harus dilakukan penambahan data ke basisdata kunci.
Sekali sebuah kunci diimpor harus dilakukan validasi. GnuPG menggunakan model kepercayaan yang handal dan fleksibel yang tidak membutuhkan seseorang untuk secara personal memvalidasi setiap kunci yang diimpor. Tetapi beberapa kunci mungkin harus divalidasi secara personal. Sebuah kunci divalidasi dengan memverifikasi fingerprint kunci dan kemudian menandatangani kunci untuk mensertifikasinya sebagai kunci yang valid.
User dapat menarik/mencabut kembali kuncinya untuk beberapa alasan. Misalnya kunci rahasia telah dicuri atau menjadi tersedia untuk orang yang salah. Jika user melupakan passphrasenya atau jika kunci pribadi telah diketahui orang lain atau hilang, sertifikat ini dapat dipublikasikan untuk memberitahukan orang lain bahwa kunci publik tidak dapat digunakan kembali. Kunci publik yang ditarik kembali tetap dapat digunakan untuk memverifikasi tanda tangan yang dibuat di masa lalu, tetapi tidak dapat digunakan lagi untuk mengenkripsi pesan. Juga berdampak pada kemampuan untuk mendekrip pesan yang dikirimkan kepadanya di masa lalu jika user tetap memiliki akses ke kunci privat.





