Although the internet is a beautifull thing, it has its problems. The most of the roots of internet technology are developed in times when people on public networks were trusted. Open relays for example were a normal thing in these times. Nobody took advantage of them for sending spam.
So a major problem on the internet nowadays is trust. I can send you a mail that appears to come from a good friend of yours. So how do you verify that this mail is really from your friend? Well you can call him and ask if he send you that mail. But if your friend lives in another part of the world, you probarly dont want to call him every time he sends you a mail.
A solution to this problem is PGP, which stands for Pretty Good Privacy. Your friend generates a private and public key. The public key he can distribute around the world too everybody who likes to have it, including you. The private key he has to keep secret.
Now when your friend sends you a mail, he signs it with his private key. With the public key you can verify this signature he has made to check this signature.
When you have also a private and a public key, your friend can also encrypt this mail with your public key. This mail can only decrypted with the matching private key which is in your possesion.
All this stuff is not only applicable on e-mails but on all sorts of binary data.
People interested in my public key can fetch it here
For more information about PGP please visit following links: