Public key encryption systems (of which PGP ala http://www.pgp.com is a very popular example) are communications systems wherein the problem of key transmission is circumvented by having two keys, one public and private. A public key is circulated, posted to a public keyserver, or appended to a .signature file, etc, and may encrypt messages(or whatever), but not decrypt them. A private key is used to decrypt (render readable) the message, but only the user whose public key was used can do this. Email is a popular way in which this is used. I can type in a message, use PGP 5/Win32 to encrypt it to a contact's public key, and on her end, she can decrypt it in a similar fashion. See also: DigitalSignatures
Has anyone heard from PGP.com about a java implementation of PGP? I once contemplated such a project, but that was on v2.6.x and they are on 5.x now?