#1 Get the pieces

Most GNU/Linux operating systems come with GnuPG installed on them, so you don't have to get it. Before starting though, you'll need any one of these desktop email programs installed on your computer: Icedove (for Debian GNU/Linux) or Thunderbird (for other GNU/Linux flavors). Email programs are another way to access the same email accounts you can access in a browser (like GMail), but provide extra features.

If you are already have one of these, you can skip to Step 1.b.

Step 1.a Set your email program up with your email account (if it isn't already)

Open your email program and follow the wizard that sets it up with your email account.

Troubleshooting

What's a wizard?
A wizard is a series of windows that pop up to make it easy to get something done on a computer, like installing a program. You click through it, selecting options as you go.
My email program can't find my account or isn't downloading my mail?
Before Googling, we recommend you start by asking other people who use your email system, to figure out the correct settings.

Step 1.b Install the Enigmail plugin for your email program

In your email program's menu, select Add-ons (it may be in the Tools section). Make sure Extensions is selected on the left. Do you see Enigmail? if so, skip this step.

  • Step 1.B: Search Add-ons
  • Step 1.B: Install Add-ons

If not, search "Enigmail" with the search bar in the upper right. You can take it from here. Restart your email program when you're done.

Troubleshooting

I can't find the menu.
In many new email programs, the main menu is represented by an image of three stacked horizontal bars.

#2 Make your keys

To use the GnuPG system, you'll need a public key and a private key (known together as a keypair). Each is a long string of randomly generated numbers that are unique to you. Your public and private keys are linked together by a special mathematical function.

Step 2.a Make a keypair

In your email program's menu, select OpenPGP -> Setup Wizard. You don't need to read the text in the window that pops up unless you'd like to, but it's good to read the text on the later screens of the wizard.

On the second screen, titled "Signing," select "No, I want to create per-recipient rules for emails that need to be signed."

Use the default options until you reach the screen titled "Create Key".

On the screen titled "Create Key," pick a strong password! Your password should be at least 8 characters and include at least one lower case and upper case letter and at least one punctuation mark. Don't forget it, or all this work will be wasted!

The program will take a little while to finish the next step, the "Key Creation" screen. While you wait, do something else with your computer, like watching a movie or browsing the Web. The more you use the computer at this point, the faster the key creation will go.

When the OpenPGP Confirm screen pops up, select Generate Certificate and choose to save it in a safe place on your computer (we recommend making a folder called "Revocation Certificate" in your home folder and keeping it there. You'll learn more about the revocation certificate in Section 5. The setup wizard will ask you to move it onto an external device, but that isn't necessary at this moment.

After creating your key, the Enigmail set-up wizard automatically uploaded it to a keyserver, an online computer that makes everyone's keys available through the Internet.

Troubleshooting

I can't find the OpenPGP menu.
In many new email programs, the main menu is represented by an image of three stacked horizontal bars. OpenPGP may be inside a section called Tools.
The wizard says that it cannot find GnuPG.
Open whatever program you usually use for installing software, and search for GnuPG, then install it. Then restart the Engimail setup wizard by going to OpenPGP -> Setup Wizard.

#3 Try it out!

Now you'll try a test correspondence with a computer program named Adele, which knows how to use encryption. You'd follow the same steps if communicating with a real person. Then you'll send your first signed email to a real person!

Step 3.a Send Adele your public key

This is a special step that you won't have to do when corresponding with real people. In your email program's menu, go to OpenPGP -> Key Management. You should see your key in the list that pops up. Right click on your key and select Send Public Keys by Email. This will create a new draft message, as if you had just hit the Write button.

Put at least one word (whatever you want) in the subject and body of the email, then hit send.

It may take two or three minutes for Adele to respond. In the meantime, you might want to skip ahead and check out the Use it well section of this guide. Once she's responded, head to the next step. From here one, you'll be doing just the same thing as when corresponding with a real person.

Troubleshooting

PLACEHOLDER
PLACEHOLDER

Step 3.b Send a test encrypted email

Write a new email in your email program, addressed to adele-en@gnupp.de. Make the subject "Encryption test" or something similar and write something in the body. Don't send it yet.

Click the icon of the key in the bottom right of the composition window (it should turn yellow). This tells Enigmail to encrypt the email with the key you downloaded in the last step.

Click Send. Enigmail will pop up a window that says "Recipients not valid, not trusted or not found."

To encrypt and email to Adele, you need her public key, and so now you'll have Enigmail download it from a keyserver. Click Download Missing Keys and use the default in the pop-up that asks you to choose a keyserver. Once it finds keys, check the first one (Key ID starting with 9), then select ok. Select ok in the next pop-up.

Now you are back at the "Recipients not valid, not trusted or not found" screen. Select Adele's key from the list and click Ok. If the message doesn't send automatically, you can hit send now.

Troubleshooting

Enigmail can't find Adele's key
Close the pop-ups that have appeared since you clicked. Make sure you are connected to the Internet and try again. If that doesn't work, repeat the process, choosing a different keyserver when it asks you to pick one.

Step 3.c Receive a response

When Adele receives your email, she will use her private key to decrypt it, then fetch your public key from a keyserver and use it to encrypt a response to you.

Since you encrypted this email with Adele's public key, Adele's private key is required to decrypt it. Adele is the only one with her private key, so no one except her — not even you — can decrypt it.

It may take two or three minutes for Adele to respond. In the meantime, you might want to skip ahead and check out the Use it well section of this guide.

When you receive Adele's email and open it, Enigmail will automatically detect that it is encrypted with your public key, and then it will use your private key to decrypt it.

Notice the bar that Enigmail shows you with information about the status of Adele's key.

#4 Learn the Web of Trust

Email encryption is a powerful technology, but it has a weakness; it requires a way to verify that a person's keypair is actually theirs. Otherwise, there would be no way to stop an attacker from making an email address with your friends name, creating a keypair to go with it and impersonating your friend. They would then be able to impersonate your friend by signing messages with the private key they'd created, and decrypt messages intended for your friend with the public key.

That's why the programmers that developed email encryption created keysigning and the Web of Trust. Keysigning allows a person to publicly state that they trust that a public key belongs to a specific person. To sign someone's public key, you need to use your private key, so the world will know that it was you.

Step 4.a Sign a key

In your email program's menu, go to OpenPGP -> Key Management.

Right click on Adele's public key and select Sign Key from the context menu.

In the window that pops up, select "I will not answer" and click OK.

In your email program's menu, go to OpenPGP -> Key Management -> Keyserver -> Upload Public Keys and hit OK.

You've just effectively said "I trust that Adele's public key actually belongs to Adele." This doesn't mean much because Adele isn't a real person. Before signing a real person's key, always make sure it actually belongs to them, and answer honestly in the window that pops up and asks "How carefully have you verified that the key you are about to sign actually belongs to the person(s) named above?".

It's important to take keysigning seriously because it will affect people beyond just you and the person who's key you are signing. If someone doubts that a key actually belongs to the person that is says it does, they can go on a keyserver and see the number of signatures that it has. The more it has, the more they are likely to trust it.

The Web of Trust takes this concept to the next level. It is a network of key signatures that is saved in keyservers on the Internet. It builds chains of trust between individuals that do not know each other by passing through others, a bit like the famous "six degrees of separation" game. You don't need to understand it in detail to use email encryption, but it will become a powerful tool if you become an advanced user.

#5 Use it well

Step 5a When should I encrypt? When should I sign?

Everyone uses GnuPG a little differently. Encryption is most important for messages involving finances, personal information, politically sensitive conversations and anything else that you wouldn't want to fall into the wrong hands. Signing is best for when you think there might be concern about your identity, or as a way of demonstrating that you know how to use GnuPG and will be able to decrypt emails. If you're already encrypting, there's no reason not to sign as well, to give the recipient added assurance that the message is from you.

If you're using your email program (or wherever you have GnuPG set up) often, we recommend that you sign all outgoing messages because it turns you into an ambassador for GnuPG. Anyone can read a signed email, so it doesn't matter if the recipient doesn't yet know how to use email encryption. The more you encrypt the better, but you won't be able to do so unless the recipient has a public key. However, if you've set it up for an email program on your computer, but you primarily use email through your phone, then you'll only want to fire up the email program and use GnuPG for special occasions. If this describes you, we recommend you use

Step 5b Be wary of invalid keys

Coming soon

Step 5c Make it part of your online identity

Start writing your key ID anywhere someone would see your email address. Add it to your email signature, social media profile, blog, Website, or business card.

Important: act swiftly if you lose your key

If you lose your private key or someone else gets ahold of it (say, by stealing your computer), it's important to revoke it immediately before someone else uses it to steal your identity. This guide doesn't cover how to revoke a key, but it only takes a minute. We recommend you Google it or seek help from a skilled friend. After you're done revoking, send an email to everyone with whom you usually use your key to make sure they know.

#6 Next steps

Go to a keysigning party

Keysigning parties are social events designed to build the Web of Trust. Participants match each others' photo IDs and Key IDs, and then get out their laptops and sign each other's public keys. They're a great way to meet likeminded people and learn about new privacy tools, as well as build up people's trust in your key. Look for keysigning at tech events, hackerspaces and nerdy parties.

Make these tools even better

Like programming? Contribute code to GnuPG or Enigmail. Have an idea for improving this guide? Leave us feedback.

Protect more of your digital life

Learn surveillance-resistant technologies for instant messages, hard drive storage, online sharing and more at the Free Software Directory's PRISM Collection and prism-break.org.

Learn more about GnuPG

There are a lot more features of GnuPG to discover, including encrypting files on your computer. There are a variety of resources accessible via Google, but we recommend starting with the links on the GnuPG Web site.

Contribute to this guide