A symmetric algorithm is
|“||[a] cryptographic algorithm using an identical key for both encryption and decryption. A common use of symmetric algorithms is confidentiality of data.||”|
Symmetric algorithms are ideally suited for confidentiality. Modern symmetric algorithms, such as AES, are very fast and very strong. To use a symmetric algorithm for confidentiality, the sender transforms a plaintext message to ciphertext using a symmetric algorithm and a key. The sender transmits the ciphertext to the recipient. The recipient uses the same key to transform the ciphertext back into the plaintext.
Symmetric algorithms can also be used to authenticate the integrity and origin of data. A sender uses her key to generate ciphertext for the entire plaintext, as above. She sends the plaintext and a portion of the ciphertext to the recipient. This portion of the ciphertext is known as a message authentication code (MAC). The recipient uses his copy of the key to generate the ciphertext, selects the same portion of the ciphertext and compares it to the MAC he received. If they match, the recipient knows that the sender sent him the message.
- NIST Special Publication 800-32, Introduction to Public Key Technology and the Federal PKI Infrastructure 9-10 (Feb. 26, 2001) (full-text).