PGP compendium - Encryption and popular PGP tools use guides (2024)
A collection of guides for the popular PGP tools: GPG4USB (Linux & Windows), GPA (Linux), Kleopatra (Linux & Windows), GPGSuite (macOS), OpenKeyChain (Android) and PGPro (iOS).
What is PGP / OpenPGP #
GnuPG (GPG, GNU Privacy Guard) is an open-source encryption software for secure End-to-End communication between two parties. It enables users to communicate securely by providing tools to encrypt and decrypt messages using the OpenPGP (Open Pretty Good Privacy) non-proprietary standard.
OpenPGP uses public key cryptography. To use OpenPGP, you must first generate a pair — public and private keys using GPG software. You can then share your public key with others, keeping your private key secret. Anyone who has the public key can use it to encrypt and verify information that only the holder of the private key can decrypt and sign.
Installation and configuration #
The basic GPG program runs from the command line but there are various front-ends such as GPG4USB, graphical interfaces for different operating systems. The portable GPG4USB program is cross-platform and easy to use but is no longer developed and has an outdated version of GPG. The GNU Privacy Assistant (GPA) tool is available on the Whonix-Workstation system. The Tails system as of version 5.0 has the Kleopatra tool, also known from the Gpg4win package for Windows systems.
- Installation of GPG4USB (Linux & Windows)
- Installation of GNU Privacy Assistant (Linux)
- Installation of Kleopatra (Linux)
- Installation of Kleopatra (Windows)
- Installation of GPG Suite (macOS)
- Installation of OpenKeychain (Android)
- Installation of PGPro (iOS)
Key generation #
The user generates a pair of keys, a public key and a private key. The public key is shared with others, while the private key is kept secret. Private key is stored in GPG program files, so it is recommended to encrypt the operating system.
- Key generation in GPG4USB (Linux & Windows)
- Key generation in GNU Privacy Assistant (Linux)
- Key generation in Kleopatra (Linux)
- Key generation in Kleopatra (Windows)
- Key generation in GPG Suite (macOS)
- Key generation in OpenKeychain (Android)
- Key generation in PGPro (iOS)
Private key backup #
A backup copy of the private key should be encrypted with VeraCrypt or TrueCrypt and placed on external media for protection against data loss.
- Private key backup in GPG4USB (Linux & Windows)
- Private key backup in GNU Privacy Assistant (Linux)
- Private key backup in Kleopatra (Linux)
- Private key backup in Kleopatra (Windows)
- Private key backup in GPG Suite (macOS)
- Private key backup in OpenKeychain (Android)
- Private key backup in PGPro (iOS)
Importing public keys #
Import public keys of other users for encrypting messages and verifying digital signatures.
- Importing public keys in GPG4USB (Linux & Windows)
- Importing public keys in GNU Privacy Assistant (Linux)
- Importing public keys in Kleopatra (Linux)
- Importing public keys in Kleopatra (Windows)
- Importing public keys inGPG Suite (macOS)
- Importing public keys in OpenKeychain (Android)
- Importing public keys in PGPro (iOS)
Message encryption #
The sender uses the recipient’s public key to encrypt the message. This ensures that only the intended recipient can decrypt it.
- Message encryption in GPG4USB (Linux & Windows)
- Message encryption in GNU Privacy Assistant (Linux)
- Message encryption in Kleopatra (Linux)
- Message encryption in Kleopatra (Windows)
- Message encryption in GPG Suite (macOS)
- Message encryption in OpenKeychain (Android)
- Message encryption in PGPro (iOS)
Message decryption #
The recipient uses his private key to decrypt the encrypted message. By quoting a sufficient part of it in the reply, also confirms that has access to the private key.
- Message decryption in GPG4USB (Linux & Windows)
- Message decryption in GNU Privacy Assistant (Linux)
- Message decryption in Kleopatra (Linux)
- Message decryption in Kleopatra (Windows)
- Message decryption in GPG Suite (macOS)
- Message decryption in OpenKeychain (Android)
- Message decryption in PGPro (iOS)
Signing messages #
The sender can use his private key to digitally sign the message. The signature acts as proof that the message was written by the key owner.
- Signing messages in GPG4USB (Linux & Windows)
- Signing messages in GNU Privacy Assistant (Linux)
- Signing messages in Kleopatra (Linux)
- Signing messages in Kleopatra (Windows)
- Signing messages in GPG Suite (macOS)
- Signing messages in OpenKeychain (Android)
- Signing messages in PGPro (iOS)
Verifying messages #
After receiving a signed message, the recipient can use the sender’s public key to verify the digital signature of the message. A valid signature proves that the message was sent by the sender and has not been altered. The slightest change in the original message, even by one character, will cause the verification process to fail.
- Verifying messages in GPG4USB (Linux & Windows)
- Verifying messages in GNU Privacy Assistant (Linux)
- Verifying messages in Kleopatra (Linux)
- Verifying messages in Kleopatra (Windows)
- Verifying messages in GPG Suite (macOS)
- Verifying messages in OpenKeychain (Android)
- Verifying messages in PGPro (iOS)
Troubleshooting