> For the complete documentation index, see [llms.txt](https://kmanu225.gitbook.io/cs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kmanu225.gitbook.io/cs/cryptography/aes-rijndael.md).

# AES and Rijndael

The Advanced Encryption Standard (AES) is a symmetric block cipher used to protect data in many modern systems. Understanding AES requires two levels of knowledge:

* how the AES block cipher transforms one 128-bit block;
* how a mode of operation uses AES safely with real messages.

This category separates those ideas into focused articles.

## Learning path

1. [What Are AES and Rijndael?](/cs/cryptography/aes-rijndael/01-what-are-aes-and-rijndael.md)
2. [Blocks, Keys, and Rounds](/cs/cryptography/aes-rijndael/02-blocks-keys-and-rounds.md)
3. [AES Round Transformations](/cs/cryptography/aes-rijndael/03-round-transformations.md)
4. [The AES Key Schedule](/cs/cryptography/aes-rijndael/04-key-schedule.md)
5. [Padding and Modes of Operation](/cs/cryptography/aes-rijndael/05-padding-and-modes.md)
6. [Authenticated Encryption and Nonces](/cs/cryptography/aes-rijndael/06-authenticated-encryption-and-nonces.md)
7. [AES Security and Implementation](/cs/cryptography/aes-rijndael/07-security-and-implementation.md)

At the end of this section, you should be able to explain what AES does, what it does not do by itself, and how to select a safe construction for application data.

{% hint style="warning" %}
Do not implement AES for production use as a learning exercise. Use a maintained cryptographic library with a high-level authenticated-encryption API.
{% endhint %}
