Pretty Good Privacy (letterlijk: behoorlijk goede privacy) wordt meestal afgekort tot PGP en is een softwareprogramma of een manier van versleutelen van digitale berichten. Deze standaard () wordt OpenPGP genoemd. PGP wordt gebruikt voor encryptie, digitaal ondertekenen of beide. Er zijn tegenwoordig veel programma's, zowel commercieel als open source, die deze standaard implementeren en ook grotendeels onderling compatibel zijn.

OpenPGP-cryptografie is gebaseerd op een schema van asymmetrische cryptografie, oorspronkelijk op het RSA-algoritme. Dit houdt in dat er twee verschillende sleutels zijn, een publieke en een private sleutel. De publieke sleutel wordt gedeeld met anderen en wordt gebruikt om data mee te versleutelen. De private sleutel wordt geheim gehouden en nooit gedeeld, deze sleutel wordt gebruikt voor decryptie en het digitaal ondertekenen.

Er zijn veel OpenPGP-servers die van duizenden mensen de publieke sleutel opgeslagen hebben. Met die sleutel en een OpenPGP-programma kan men een vertrouwelijk bericht sturen naar een van die personen. Daarnaast is het mogelijk om een sleutel als tekst te exporteren en te importeren zodat ze bijvoorbeeld op de website van de eigenaar geplaatst kan worden.

Hoewel dit principe erg veilig is, is het wel zaak te bedenken welke garantie er geboden wordt: iemand heeft een sleutel gemaakt en tekent daar berichten mee of laat mensen daar berichten mee versleutelen. Dit betekent dus niet automatisch dat deze sleutel toebehoort aan de persoon aan wie wij denken dat hij behoort. Om deze reden kennen veel OpenPGP-implementaties publieke sleutels een vertrouwenswaarde toe, die door de gebruiker gewijzigd kan worden nadat deze via een betrouwbaar kanaal (telefoon, ontmoeting) geverifieerd heeft dat de sleutel inderdaad van de vermoede persoon afkomstig is.

Implementaties 
GPG, ook wel GnuPG, is een gratis en open-source-implementatie die werkt met OpenPGP-specificatie. GPG is beschikbaar voor verschillende besturingssystemen zoals Linux, Windows, MacOS en Android. Tevens zijn er plugins beschikbaar voor Microsoft Outlook, Mozilla Thunderbird, Apple Mail, Eudora en veel andere mailprogramma's zoals Gpg4win en GPG Suite.

Voor Linux-desktopomgevingen is een GPG-client beschikbaar genaamd Seahorse voor het beheer van de sleutels.

Mailvelope is een gratis open-source OpenPGP-oplossing die bekend staat om het gebruiksgemak. Mailvelope integreert met browsers als Chrome en Firefox en werkt met bekende webmaildiensten zoals Google Gmail, Yahoo mail, outlook.com en GMX.

Werking van PGP 

Als een gebruiker een stuk tekst wil versleutelen met PGP, dan comprimeert PGP de tekst meestal eerst. Hierdoor wordt zowel de plaats die het bestand inneemt op de harde schijf verminderd als de tijd die nodig is om het te versturen.

Dan maakt PGP een IDEA-sessiesleutel aan, een sleutel die gegenereerd wordt door de willekeurige bewegingen van je muis en de toetsen die je aanslaat. Met deze sessiesleutel wordt de tekst vercijferd. De sessiesleutel zelf wordt met de publieke sleutel van de beoogde ontvanger versleuteld, waarna beide delen verstuurd worden.

Decryptie werkt precies andersom. De ontvanger gebruikt zijn  geheime sleutel om de versleutelde sessiesleutel te ontcijferen. Daarna ontcijfert PGP met behulp van de sessiesleutel de ontvangen tekst.

Sleutels 
Een sleutel is een waarde waarmee een cryptografisch algoritme een tekst versleutelt. Het is in principe een groot getal, waarvan de lengte gemeten wordt in bits. Uitgaande van een goed cryptografisch algoritme geldt: hoe langer de sleutel, hoe veiliger de versleuteling.

Hoewel de publieke en de geheime sleutel wiskundig aan elkaar gerelateerd zijn, is het zeer lastig om de geheime sleutel af te leiden wanneer men alleen de publieke sleutel weet. Het is in theorie voor iemand die genoeg tijd en rekenkracht tot zijn beschikking heeft mogelijk om deze afleiding te maken. In de praktijk kan dit echter alleen bij (erg) kleine sleutels. Bij grotere sleutels is de rekenkracht van de huidige computers niet voldoende om de afleiding binnen een bruikbare tijd te maken. De keuze van de lengte van de sleutel is dus een afweging tussen veiligheid enerzijds en gebruikssnelheid anderzijds, waarbij het optimum afhangt van de waarschijnlijkheid dat iemand de betreffende boodschap zou willen kraken.

Sleutels worden versleuteld opgeslagen. PGP slaat de sleutels in twee bestanden op; een voor de publieke sleutels en een voor de geheime sleutels. Deze bestanden worden sleutelringen genoemd. Wanneer je PGP gebruikt, zul je in het algemeen de publieke sleutels van de geadresseerde toevoegen aan je publieke sleutelring. Jouw geheime sleutels worden opgeslagen in je geheime sleutelring. Wanneer je deze ring kwijtraakt, kun je geen data meer ontcijferen waarvoor je deze sleutels nodig hebt.

Digitale handtekeningen 
Cryptografie zorgt er niet alleen voor dat een bericht alleen door de bedoelde ontvanger kan worden gelezen, maar kan ook worden gebruikt om een bericht te ondertekenen, zodat een ontvanger kan verifiëren of het bericht echt van de verwachte verzender afkomt (authenticiteit) en controleren of het bericht nog intact is (data-integriteit). Daarnaast zorgt het er ook voor dat een verzender niet kan ontkennen dat hij een bericht gestuurd heeft (non-repudiation).

Wanneer een gebruiker een bericht wil voorzien van een digitale handtekening, dan versleutelt hij het met zijn geheime sleutel. De ontvanger controleert het bericht door het te ontcijferen met de publieke sleutel van de verzender.

Forensisch onderzoek 
In 2016 bleek de Nederlandse recherche in staat de beveiliging van PGP-berichten te omzeilen van criminelen die zogenoemde PGP-telefoons gebruikten. Dit betrof Blackberry-telefoons, die communiceren met een centrale Blackberry-server in Canada. Rechercheurs wisten de hand te leggen op de server van het Nederlandse bedrijf Ennetcom, verkoper van PGP-telefoons. Deze doorbraak werd bekendgemaakt door de landelijk officier van justitie cybercrime. PGP-encryptie zou bij diverse strafbare feiten een rol hebben gespeeld, onder meer zelfs bij het beramen van (huur-)moorden.

Zie ook 
 GPG (Alternatieve opensource versie die niet gepatenteerd is)
 RSA
 Enigmail (OpenPGP in Mozilla Thunderbird)

Externe links 
 GnuPG: een open source-implementatie van OpenPGP
 WinPT: een windowsprogramma om GnuPG makkelijker te gebruiken
 Een aantal redenen waarom Phil Zimmermann PGP schreef

Referenties 

Internet
Cryptografie
Cross-platform-software