Skip to content
Putting It All Together
step 1/5

Reading — step 1 of 5

Read

~1 min readModes of Operation

Putting It All Together

You've built every piece of AES:

LayerLesson
State matrix1
GF(2^8) math2
SubBytes / S-box3
ShiftRows4
MixColumns5
Key schedule6
Full encrypt/decrypt7
ECB/CBC modes8
CTR/GCM modes9

Where AES is used:

  • TLS (AES-GCM cipher suites)
  • WPA2/WPA3 Wi-Fi (AES-CCMP)
  • Linux dm-crypt / BitLocker / FileVault (disk encryption with XTS mode)
  • iMessage, Signal, WhatsApp (AES-256-CBC for content)
  • AWS KMS, Azure Key Vault (envelope encryption)

Hardware acceleration:

  • AES-NI (Intel, since 2010): instructions like aesenc, aesdec, aeskeygenassist. ~10x faster than software.
  • ARMv8 Cryptographic Extensions: same idea on ARM (Apple Silicon, modern Android).

Don't roll your own crypto in production. Use:

  • libsodium (curated, simple API)
  • BoringSSL / OpenSSL (battle-tested)
  • WebCrypto / Node crypto (built-in)
  • Rust: ring, aes-gcm crates
  • Java: javax.crypto

Your implementation here is for LEARNING. Production code must consider timing attacks, key handling, secure RNG for nonces, etc.

Discussion

Ask a question, share an insight, or help someone who’s stuck.

Sign in to post a comment or reply.

Loading…