Symmetric Cryptography

Symmetric cryptography uses a single private key to both encrypt and decrypt data. Any party that has the key can use it to encrypt and decrypt data. They are also referred to as block ciphers. Symmetric cryptography algorithms are typically fast and are suitable for processing large streams of data. The disadvantage of symmetric cryptography is that it presumes two parties have agreed on a key and been able to exchange that key in a secure manner prior to communication. This is a significant challenge. Symmetric algorithms are usually mixed with public key algorithms to obtain a blend of security and speed.

With symmetric cryptography (or symmetric-key encryption), the encryption key can be calculated from the decryption key and vice versa. With symmetric algorithms, the same key is used for both encryption and decryption as shown in Figure 1.
Figure 1. Symmetric key encryption

Symmetric key ciphers use the same key to both encrypt and decrypt data. This type of cipher is valuable because:
  • It is relatively inexpensive to produce a strong key for these ciphers.
  • The keys tend to be much smaller for the level of protection they afford.
  • The algorithms are relatively inexpensive to process.

Therefore, implementing symmetric cryptography can be highly effective because you do not experience any significant time delay as a result of the encryption and decryption. Symmetric cryptography also provides a degree of authentication because data encrypted with one symmetric key cipher cannot be decrypted with any other symmetric key cipher. Therefore, as long as the symmetric key cipher is kept secret by the two parties using it to encrypt communications, each party can be sure that is communicating with the other as long as the decrypted messages continue to make sense.

Typically, with a symmetric key cipher, you can exchange the key with another trusted participant; usually you produce a unique key for each pair of participants. You can be assured that any messages that you exchange, which are encrypted in a specific key, between the participants can only be deciphered by the other participant that has that key. In this way, the key must be kept secret to each participant. Consequently, these keys are also referred to as secret-key ciphers.

Therefore, symmetric cryptography is effective only if the symmetric key cipher is kept secret by the two parties involved. If anyone else finds the key, it affects both confidentiality and authentication. A person with an unauthorized symmetric key cipher not only can decrypt messages sent with that key, but can encrypt new messages and send them as if they came from one of the two parties who were originally using the key.

The major drawback to secret-key ciphers is in exchanging the secret key because any exchange must retain the privacy of the key. This usually implies that any key is also encrypted, but in a different key, because the recipient must already have the key that will be needed to decrypt the key-exchange message. This can lead to a never-ending dependency on another key.

Symmetric cryptography plays an important role in the SSL protocol and encryption over TCP/IP networks. SSL also uses