Symmetric-key algorithm
Symmetric-key algorithms are special ways we use to keep information safe in cryptography. These methods use one secret key to lock up (encrypt) information and to unlock it (decrypt). This key is a shared secret between people who want to talk to each other in private.
One problem with symmetric-key encryption is that everyone who wants to talk must have the same key. If they don’t, they can’t read each other’s messages. This is different from asymmetric-key encryption, where one key is public and the other is private.
Even with this problem, symmetric-key algorithms are very helpful. They work well for protecting big amounts of data fast. Except for the one-time pad, these methods usually need smaller keys. This makes them quicker and simpler to use than asymmetric methods. Often, asymmetric encryption helps share the secret key needed for symmetric-key encryption.
Types
Symmetric-key encryption can use either stream ciphers or block ciphers. Stream ciphers encrypt small parts of a message, like single letters or numbers, one at a time. An example of this is ChaCha20. Block ciphers work with groups of bits together. The Advanced Encryption Standard (AES) uses blocks of 128 bits to keep data safe.
Implementations
Some well-known symmetric-key algorithms are Twofish, Serpent, AES (also called Rijndael), Camellia, Salsa20, ChaCha20, Blowfish, CAST5, Kuznyechik, RC4, DES, 3DES, Skipjack, Safer, and IDEA. These algorithms use one secret key to hide and show information. This helps keep messages private between people who share the key.
Use as a cryptographic primitive
Symmetric ciphers do more than just hide messages. They can also help check that messages stayed the same by using something called a message authentication code. This lets the person who gets the message know if it was changed while it was moving.
Symmetric ciphers can also help make special math tools called hash functions. These are useful for many safety jobs. But they cannot prove by themselves that someone sent a message without help from others. Main article: cryptographic primitives Main articles: AEAD, AES-GCM, non-repudiation, hash functions, one-way compression function
Construction of symmetric ciphers
Main article: Feistel cipher
Many modern ways to protect information in blocks use an idea from a person named Horst Feistel. His method helps create special functions that can be reversed. This makes it easier to build strong tools for keeping messages private.
Security of symmetric ciphers
Symmetric ciphers can sometimes be broken by certain types of attacks. To stay safe, the design of each round of the encryption process is very important. Using more rounds or longer keys can make the cipher harder to break, but it can also make the process slower.
Modern symmetric-key algorithms are generally safe, even if new types of computers called quantum computers are developed. Using longer keys, like in AES-256, helps keep information safe.
Key management
Main article: Key Management Interoperability Protocol
Key management is about looking after the special codes, or keys, used in secure communication. These keys need to be kept safe and only shared with people who need them to keep information private. Good key management makes sure that keys are made, stored, and used the right way so that messages stay secret and safe between the people who share them.
Key establishment
Main article: Key establishment
Symmetric-key algorithms need both the sender and the recipient to share the same secret key. In the past, this meant someone had to give the key in person. Today, most systems still use symmetric-key algorithms to protect messages. They use special methods like the Diffie–Hellman key exchange or other public-key protocol to create a new secret key for each conversation. This helps keep information safe and private.
Key generation
Main article: Key generation
Symmetric-key algorithms need special keys to keep information safe. These keys are like secret codes. We make these keys using tools called pseudorandom key generators. These tools need to be very good at making random numbers. Using a strong source of randomness, called entropy, helps make the keys better and keeps our information safer.
Reciprocal cipher
A reciprocal cipher is a special kind of code where you can use the same tool to both hide a message and show it again. If you type in the hidden message, the tool can show you the original message. This makes it easier because you only need one type of tool for both hiding and revealing secrets.
Many famous secret codes are reciprocal ciphers, like the Atbash, Beaufort cipher, Enigma machine, Purple cipher, RC4, ROT13, XOR cipher, and the Vatsyayana cipher. Most modern secret codes are either stream ciphers or block ciphers, which also use reciprocal methods to keep information safe.
This article is a child-friendly adaptation of the Wikipedia article on Symmetric-key algorithm, available under CC BY-SA 4.0.
Safekipedia