Skip to main content

Encryption Explained - Symmetric, Asymmetric, and More

About 2 min read

Encryption is a technique that transforms data into a format unreadable by third parties using a specific algorithm and key. Encrypted data can be decrypted back to its original form only by those who hold the correct key. It is a foundational technology supporting modern digital security, including internet communication, file storage, and password management.

Historical Background

The history of cryptography dates back to the Caesar cipher in the BCE era, but the turning point for modern cryptography came in the 1970s. In 1976, Diffie and Hellman introduced the concept of public-key cryptography, and in 1977 the RSA cipher was devised. In 2001, the U.S. National Institute of Standards and Technology (NIST) adopted AES as a standard cipher, and it has served as a backbone of internet communication ever since. Standardization of quantum-resistant cryptography (post-quantum cryptography) also progressed in preparation for advances in quantum computing, and in 2024 NIST formally standardized three post-quantum cryptographic algorithms: ML-KEM, ML-DSA, and SLH-DSA.

Types of Encryption

Symmetric-key encryption (symmetric cryptography) uses the same key for both encryption and decryption. AES (Advanced Encryption Standard) is representative, characterized by fast processing. Public-key encryption (asymmetric cryptography) uses a pair consisting of a public key for encryption and a private key for decryption. RSA and elliptic-curve cryptography are representative, offering the advantage of not requiring secure key distribution. In actual communication, hybrid encryption that combines both is widely used.

The Difference Between Encryption and Hashing

Encryption and hashing are concepts that are easily confused, but they are fundamentally different. Encryption is a reversible, two-way transformation: with the correct key, the original data can be recovered. Hashing, on the other hand, is a one-way transformation that cannot be reversed to the original data. Hashing is used for storing passwords. The service stores only the hash value of the password and compares it with the hash of the password entered at login. This way, even if the database is breached, the original passwords are not directly exposed. Password-specific hash functions such as bcrypt and Argon2 are recommended.

Real-World Use Cases

For example, when designing a cloud migration, a common policy is to standardize the encryption of stored data on an authenticated cipher such as AES-256-GCM. Centralizing key management in a cloud key management service (such as AWS KMS) makes it possible to control key generation, storage, and access permissions in one place, and to automate key rotation on a fixed cycle. Keeping the keys themselves out of the application is an effective way to prevent them from leaking.

The Encryption Process

Plaintext data
Encryption key + algorithm
Ciphertext (unreadable)
Decrypt with the correct key
Original plaintext

Practical Considerations

A common pitfall when implementing encryption is trying to design your own cryptographic algorithm. In the world of cryptography, "don't roll your own crypto" is an ironclad rule; you should use proven algorithms such as AES or ChaCha20. Key management is also an important challenge. Storing the key in the same place as the encrypted data is like leaving the key next to the safe. Encryption is used in every aspect of daily life, including HTTPS communication, Wi-Fi WPA3, and smartphone storage encryption. Note that when password generation is completed entirely within the browser, the generated string itself does not travel over the network.

Related Terms

Was this article helpful?