Pretty Good Privacy

The purpose of this document is to provide a basic understanding Pretty Good Privacy (PGP) and how it applies to message security. Also included within this document is an explanation to provide a basic understanding of what functions PGP performs to ensure a message is secured. Finally this paper explains why the first two octets (16 bits) of the message digest are translated in the clear and how the writer views this as an issue to respect of security compromise of the hash algorithm.

With more and more governments, businesses, and people using the Internet more and more of our information is becoming digital and thus creating an increased demand for the security of personal or private information. One method for ensuring information is being protected is to encrypt e-mail or message traffic. There are different means of encrypting messages, however one method called Pretty Good Privacy, or PGP for short, was created by Phil Zimmerman to “create an awareness of the privacy issue in the digital age (Poole, Caftori, Lal, Rosenburg, 2005).”

Pretty Good Privacy (PGP) is a computer program that provides encryption and authentication to increase the security of e-mail communications. PGP binds a message to an e-mail address or a username with the use of the public-key cryptography. Because PGP uses the public-key cryptography it uses a public and private key. PGP can be used with a “Web of Trust” or through an automated key management server architecture for public key distribution, however the private key kept secure by the user. When a message is encrypted the private key is used to encrypt the message, which can be a key based off the RSA, DSS, or Diffie-Hellman encryption algorithms. The combination of the digital signature, which uses a SHA-1 for hash coding, in conjunction with the RSA provides an effective digital signature scheme. After a user generates a message they wish to encrypt the SHA-1 generates a 160-bit hash code of the message (Stallings, 2007, p.439). The hash coded is then encrypted with the user’s private key and the result is placed at the beginning of the message. Once the recipient of the message receives the message, the sender’s public key is used to decrypt the message and obtain the hash code. The receiver of the message then generates a new hash code of the message and then the two hash codes are compared. If the hash code obtained from the sender’s message and the generated hash code from the receiver match, then the message is considered authentic.

The message digest is the 160-bit SHA-1 hashed code that is encrypted using the message sender’s private key. Using the signature timestamp and combining this with the message calculate the message digest. Because the digest uses the signature timestamp, this helps to protect against replay attacks. The first 16 bits of the message digest are not encrypted, but are actually used by the receiver of the message to identify if the correct public key was used. Although this may seem like a security vulnerability because the first 16 bits are not encrypted, it actually is not because these first 16 bits are used as a frame check for the message. The frame check is able to take place by the message recipient by using these first unencrypted 16 bits and comparing them to the first 16 bits of the decrypted digest and thus performing authentication of the message (Stallings, 2007, p.448). When the process is broken down, it is apparent that the first 16 bits that are in plaintext are not a security vulnerability, but rather used to compare the decrypted digest with these plaintext bits for a message frame check and authentication purposes.

In conclusion, Pretty Good Privacy was first developed by Phil Zimmerman to produce awareness of ensuring private data is secure. Pretty Good Privacy is widely used today and works by using public-key cryptography and methods of a web of trust or automated key management servers to distribute public keys. The process PGP uses to encrypt and decrypt messages is an elaborate process, which includes using 16 bits of plaintext in conjunction with a decrypted message digest to authenticate the message sender’s public key. When asked if these unencrypted first 16 bits of the message digest pose a security concern the answer can clearly be stated, “The plaintext 16 bits of the message digest pose no security threat to the hash algorithm.”

1. Poole, Caftori, Lal, Rosenburg, Bernie, Netiva, Pranav, Bob (2005, November 7th). A Tutorial for Beginners to PGP. Retrieved March 14, 2009, from A Tutorial for Beginners to PGP Web site:
2. Stallings, W. (2006). Confidentiality using symmetric encryption. In
Cryptography and network security (4th ed., pp. 439-448). Upper Saddle
River, NJ: Pearson Prentice Hall.

Sharing is caring