Şifrelemeler için klasik yöntem tek bir anahtar kullanarak şifrelemedir. Gönderici iletiyi bir anahtar ile şifreler. Alıcının iletinin şifresini çözmesi için aynı anahtarı bilmesi gerekir. Göndericinin, anahtarı başkalarının ele geçiremeyecekleri bir yöntemle alıcıya iletmesi gerekir. Eğer başka birisi aynı anahtara sahip ise bu sistem kullanışsızdır.
Genel Anahtarlar denilen şey bu sorunu çözebilmek içindir. Genel Anahtarlı Şifrelemeler iki anahtarın kullanıldığı bir şifrelemelerdir. Birinci anahtar Genel Anahtardır ve tüm ortamlarda herkes tarafından ulaşılabilecek şekilde yayılabilir. Diğer anahtar Gizli Anahtardır ve yayılmamalıdır. Bu anahtara sadece sahibi erişebilmelidir. Sistem çok iyi uygulandığında gizli anahtarlar genel anahtar kullanılarak elde edilemez. Bu sayede gönderici iletisini alıcıya ait olan genel anahtar ile gizler ve bu şekilde yollar. Şifrenin çözülmesi alıcıdaki gizli anahtar ile sağlanır.
Bu olguda önemli olan şey gizli anahtarın gizli olarak kalması ve anahtarın
sahibinden başka kimse tarafından bilinmemesi gereğidir. BU ANAHTARI
İNTERNET ÜZERİNDEN GÖNDERMEMELİSİNİZ. Ayrıca GnuPG'yi telnet
üzerinden
kullanmakta çok iyi olmaz (yüksek güvenlik riskleri olduğunda telnet'i
kullanmamalısınız).
İletinin gerçekten şüphelenilen gönderici tarafından gönderildiğini ispatlamak için sayısal imzalar ortaya çıkmıştır. İsminden de anlaşılacağı gibi gönderici iletiyi sayısal olarak imzalar. Bunu kullanmak Truva atları (bir soruna yama olduğunu iddia eden ancak aslında virüs veya bilgisayarınızdaki verilere zarar veren şeyler, trojan) riskini azaltır. Ayrıca gelen bilginin doğru kaynaktan geldiğini ve gerçek olarak kabul edilebilmesini sağlar.
Sayısal imza gizli anahtar ve metin karışımından oluşur. Göndericinin genel anahtarı kullanılarak iletinin doğruluğu denetlenebilir. Sadece gönderenin doğruluğu değil ayrıca iletinin içeriği de denetlenebilir. Bu sayede iletinin sadece doğru göndericiden geldiğini değil ayrıca içeriğinin de iletim sırasında değişmediğini anlayabilirsiniz.
Genel anahtar algoritmasindaki zayıf nokta genel anahtarın dağıtılmasıdır. Kullanıcı değişim esnasında yanlış kullanıcı kimliği içeren genel anahtar alabilir. Eğer bu sahte anahtar ile ileti oluşturulursa, saldıran iletinin kodunu çözüp iletiyi okuyabilir. Eğer saldırgan iletiyi gerçek anahtar ile kodlayıp alıcıya iletirse bu saldırı anlaşılamaz.
PGP çözümü (ve dolayısıyla GnuPG çözümü) kodları imzalamakla mümkündür. Genel anahtar başka birisi tarafından imzalanabilir. Bu imza anahtarın öne sürülen UID'e (Kullanıcı Kimliği) sahip olan kişi tarafından kullanıldığını belirtir. Bu imzanin güvenilirliği tamamen GnuPG kullanıcısına kalmıştır. Anahtarı gönderen kişiye güvendiğinizde ya da o kişiye ait olduğuna emin olduğunuzda anahtarı güvenilir sayabilirsiniz. Sadece imzalayan kişinin anahtarına gerçekten güvendiğiniz zaman imzaya güvenebilirsiniz. Kesin bir güven vermeden önce anahtarın parmak izini güvenilir kaynaklar aracılığıyla (telefonda sorarak ya da yüz yüze görüşmelerde) karşılaştırmanız anahtarın kesin olarak doğru olduğuna inanmanız için yapılabilir.
Eğer gizli kalması gereken bir veriniz var ise, hangi şifreleme algoritmasını kullanacağınızdan daha başka konular da vardır. Sistem güvenliğinizi genel olarak göze almanız gerekmektedir. Temel olarak biz PGP'yi güvenli olarak kabul ediyoruz. Fakat PGP 'kırılamaz' olsa bile baska güvenlik saldırıları denenebilir. Mesela 1999 Şubat başlarında bir truva atının (trojan) sabit disklerde gizli PGP anahtarlarını aradığı ve bunları başka bir FTP'ye yolladığı tespit edildi. Eğer gizli anahtarlar için parolalar yanlış seçilmiş ise bu gizli anahtarlar kolayca kırılabilir.
Başka bir teknik olasılıkta (daha zor olsa bile) klavye girişlerini yayınlayan Truva Atlarıdır. Gene mümkün olan (fakat daha zor) başka bir şey ise ekran görüntüsünün alınmasıdır. Bu şekilde karmaşıklaştırılmış iletilerin kırılmasına gerek kalmaz. Bu riskleri düşünerek her zaman sağlam ve kapsamlı bir güvenlik planını uygulamanız gerekir.
İnsanlar arasında paranoya yaratmak için değil ama daha güvenli olabilmek için daha çok şeylerin yapılması gerekir. Unutulmamalıdır ki şifreleme güvenlik için sadece bir adımdır ve tam bir çözüm değildir. Çoğu şirket 1999 Mart ayındaki Mellissa virüsündeki trojan atı örneğinde görüldüğü gibi bu saldırılara hazırlıklı olmadıklarını gösterdiler.