(1) create plain.txt (2) Create a public/private keypair if you don't already have one. I use gpg, the Gnu Privacy Guard, successor to pgp (Pretty Good Privacy) See http://www.gnupg.org/(en)/documentation/howtos.html and http://www.gnupg.org/gph/en/manual.html Here's how to do a few things from the command line. * generating a key : gpg --gen-key and then answer all the questions. Sample: in "milo" account passphrase = "silk, velvet" * listing keys gpg --list-keys * edit your key (needs passphrase) gpg --edit-key UID * fetching keys from remote server gpg --search mahoney@marlboro.edu (default server on cs is subkeys.pgp.net) see for example www.keyserver.net/en/ * uploading to a server gpg --send-keys * exporting public keys gpg --export UID > public.txt * encrypting and signing a file you need the public key of the recipient My email client (Mozilla Thunderbird) uses gpg to do things, so much of this can happen through a GUI. (3) Use your PGP/MIME or S/MIME or otherwise crypto enabled email client to sign or encrypt and sign a message...