#1 Get the pieces

All you need to start is a computer with an Internet connection, an email account and about half an hour. You can use your existing email account for this without affecting it.

Most GNU/Linux operating systems come with GnuPG installed on them, so you don't have to donwload it. Before configuring GnuPG 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.bInstall GnuPG

Download GPG Suite, a software package that includes GnuPG. Install it, clicking through the installation wizard with all the default settings. If it opens any windows after installation, you can close them.

Step 1.c 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.

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.

Your public key isn't like a physical key, because it's stored in the open in an online directory called a keyserver. People download it and use it, along with GnuPG, to encrypt emails they send to you. You can think of the keyserver as phonebook, where people who want to send you an encrypted email look up your public key.

Your private key is more like a physical key, because you keep it to yourself (on your computer). You use GnuPG and your private key to decode encrypted emails other people send to you.

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 12 characters and include at least one lower case and upper case letter and at least one number or punctuation symbol. Don't forget the password, 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.
What does OpenPGP mean?
OpenPGP is a protocol that GnuPG uses, just like HTTP is a protocol for the Web. It's a slightly confusing name that Enigmail uses for its menus.

Step 2.b Upload your public key to a keyserver

In your email program's menu, select OpenPGP → Key Management.

Right click on your key and select Upload Public Keys to Keyserver. Use the default keyserver in the popup.

Now anyone who wants to send you an encrypted message can download your public key from the Internet.

Troubleshooting

The progress bar never finishes
Close the upload popup, make sure you are on the Internet and try again. If that doesn't work, try again, selecting a different keyserver.
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.

#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.

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.

Important: Subject lines are not encrypted

Even if you encrypted your email, the subject line is not encrypted, so don't put private information there. The sending and receiving addresses aren't encrypted either, so they could be read by a surveillance system.

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 public key is actually theirs. Otherwise, there would be no way to stop an attacker from making an email address with your friends name, creating keys to go with it and impersonating your friend.

That's why the programmers that developed email encryption created keysigning and the Web of Trust. When you sign someone's key, you are publicly saying that you trust that it does belong to them and not an impostor.

People who use your public key can see the number of signatures it has. Once you've used GnuPG for a long time, you may have hundreds of signatures. The Web of Trust is the constellation of GnuPG users, connected to each other by chains of trust expressed through signatures, into a giant Web. The more signatures a key has, and the more signatures it's signers' keys have, the more trustworthy that key is.

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, but it's good practice.

From:

To:

Important: check people's identification before signing their keys

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?". The only way to truly make sure it belongs to them is to talk to them in person or on the phone, and have them give you identifying information (like a government ID), along with their key ID.

#5 Use it well

Everyone uses GnuPG a little differently, but it's important to follow some basic practices to keep your email secure. Not following them, you risk the privacy of the people you communicate with, as well as your own, and damage the Web of Trust.

When should I encrypt?

The more you can encrypt your messages, the better. This is because, if you only encrypt emails occasionally, each encrypted message could raise a red flag for surveillance systems. If all or most of your email is encrypted, people doing surveillance won't know where to start.

That's not to say that only encrypting some of your email isn't helpful -- it's a great start and it makes bulk surveillance more difficult. And even people that encrypt as much as they can are still limited to those of their contacts that have public keys.

Be wary of invalid keys

GnuPG makes email safer, but it's still important to watch out for invalid keys, which which might have fallen into the wrong hands. Email encrypted with invalid keys might be readable by surveillance programs.

In your email program, go back to the second email that Adele sent you. Because it was encrypted with her key, it will have a message from OpenPGP at the top, which most likely says "OpenPGP: Part of this message encrypted."

When using GnuPG, make a habit of glancing at that bar. The program will warn you there if you get an email encrypted with a key that can't be trusted.

Copy your revocation certificate to somewhere safe

Remember when you created your keys and saved the revocation cerfiticate that GnuPG made? It's time to copy that cerfiticate onto the safest digital storage that you have -- the ideal thing is a flash drive, disk or hard drive stored in a safe place in your home.

If your private key ever gets lost or stolen, you'll need this certificate file.

Important: act swiftly if someone gets your private key

If you lose your private key or someone else gets ahold of it (say, by stealing or cracking 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.

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, so that anyone corresponding with you knows that they can donwload your public key and verify that it's the correct one. It's also good to post it on your media profile, blog, Website, or business card.

We need to get our culture to the point that we feel like something is missing when we see an email address without a public key ID.

Switch to GNU/Linux

Coming soon

#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.

Switch to GNU/Linux for maximum safety

Mac OS is a nonfree operating system, which means that no one but Apple gets to see the code it runs on. This makes running Mac OS risky for your privacy -- there's no way to know if it's spying on you.

To push back hard against surveillance, we recommend you switch to a free software operating system like GNU/Linux. Free operating systems are completely transparent, so anyone can find and remove dangerous code. Learn more about free software at fsf.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