## Definition Edit

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.^{[1]}
| ” |

## Overview Edit

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.

This does not provide non-repudiation, though. The sender can still deny sending the message, since the recipient could have generated it himself.

## References Edit

- ↑ U.S. Export Administration Regulations, Part 772 (15 C.F.R. §772.1).

## Source Edit

- NIST Special Publication 800-32, Introduction to Public Key Technology and the Federal PKI Infrastructure 9-10 (Feb. 26, 2001) (full-text).