-Chris uses a one-way hash function (such as MD5) to create a hash for the message.
-Chris, via RSA or some other digital signature algorithm, signs the hash with his private key.
-Chris merges the message and the signature, resulting in a new signed message.
-A random encryption key is generated, the session key.
-Chris uses the session key to encrypt the message, using DES or some other private key method.
-Chris gets Brian's public key.
-Chris then encrypts the key with Brian's public key, via RSA or some other public key method.
-Chris merges the encrypted message and the encrypted key and mails it to Brian.
-Brian seperates the encrypted message and the encrypted session key.
-Using RSA, Brian decrypts the session key.
-Using DES, Brian decrypts the message with the decrypted session key.
-Brian then seperates the message and the signature.
-Using MD5, Brian calculates the hash value of the message.
-Brian gets Chris' public key.
-Via RSA, and Chris' public key, Brian decrypts the signature.
-Brian then compares the hash value and the decrypted signature. If they are the same, Brian knows that the message is authentic and has not been altered since Chris signed it.
For more information on PGP and instructions for downloading a program for PGP encryption and decryption see the PGP Web Site at MIT.