(Very) Basic intro to AES-256 Cipher (2024)

AES stands for “Advanced Encryption Standard” and is a specification that has selected the Rijndael cipher as its symmetric key ciphering algorithm. Using AES, a message can be encrypted with a key (like a password) and no one except the key holder can decrypt the message. This is useful for many reasons, but a good example is a password manager that encrypts all of the user’s passwords using one master password. This is how Qvault, a free and open-source password manager operates.

(Very) Basic intro to AES-256 Cipher (3)

As shown above, symmetric encryption uses the same key for encryption and decryption and asymmetric encryption uses different keys.

Asymmetric encryption is preferred when you want someone to be able to send you encrypted data, but you don’t want to give them your private key.

Symmetric encryption is preferred when you are encrypting only for yourself.

(Very) Basic intro to AES-256 Cipher (4)

The secret key used in AES-256 must be 256 bits long. In order to use a password or passphrase as the key, a hashing algorithm can be used to extend the length.

The shorter the password or passphrase, the easier it is for an attacker to decrypt the data by guessing passwords, hashing them, and attempting to decrypt the message. In order to mitigate this threat, some applications enforce safeguards.

In the case of Qvault, the master password is hashed using the scrypt algorithm in order to produced the private key. Scrypt is a very slow password-based key derivation function (similar properties to a hashing algorithm), which slows down attacks. Qvault also requires that passwords are at least 12 characters long, or encourages that users use a passphrase instead.

(Very) Basic intro to AES-256 Cipher (5)
  1. Choose a password, then derive a short key from that password (using a function like Scrypt or SHA-256). This short key will then be expanded using a key schedule to get separate “round keys” for each round of AES-256.

password: password12345678 →

short key: aafeeba6959ebeeb96519d5dcf0bcc069f81e4bb56c246d04872db92666e6d4b →

first round key: a567fb105ffd90cb

Deriving the round keys from the short key is out of the scope of this article. The important thing for us to understand is that a password is converted into round keys which are used in the AES ciphering process.

2. Choose a secret message:

Here is a secret

3. Encode the first round key and message in hexadecimal bytes and format them in 4x4 tables (top to bottom, left to right):

First Round Key:

61 66 35 39

35 62 66 30

36 31 66 63

37 30 64 62

Message:

48 20 61 63

65 69 20 72

72 73 73 65

65 20 65 74

4. Add the round key to the message (XOR). The corresponding cells in the message and key tables are added together. The output matrix will be used in the next step.

61 ⊕ 48 = 29

35 ⊕ 65 = 50

…etc

29 46 54 5a

50 0b 46 42

44 42 15 06

52 10 01 16

5. In the resulting table, use the substitution box to change each 2-character byte to its corresponding byte:

(Very) Basic intro to AES-256 Cipher (6)

a5 5a 20 be

53 2b 5a 2c

1b 2c 59 6f

00 7c 7c 47

6. Shift rows. The first row doesn’t shift, the second row shifts once, the third row twice, and the last row 3 times.

a5 5a 20 be

53 2b 5a 2c → 2b 5a 2c 53

1b 2c 59 6f → 2c 59 6f 1b → 59 6f 1b 2c

00 7c 7c 47 → 7c 7c 47 00 → 7c 47 00 7c → 47 00 7c 7c

a5 5a 20 be

2b 5a 2c 53

59 6f 1b 2c

47 00 7c 7c

7. Mix Columns. Each column is modulo multiplied by the Rijndael’s Galois Field. The math involved is outside the scope of this article, so I won’t be including the example output matrix.

(Very) Basic intro to AES-256 Cipher (7)

8. The output of the multiplication is used as the input “message” in the next round of AES. Each step is repeated 10 or more times in total, with one extra “add key” step at the end. Each round of “Add key” will use a new round key, but each new round key is still derived from the same password and short key.

  • Add key
  • Substitute bytes
  • Shift rows
  • Multiply columns

Obviously the Rijndael cipher used in AES is fairly complex but I hope I’ve been able to shed light on a high level view of what goes on inside! Thanks for reading.

Be sure to checkout Qvault, its an open source password manager that uses AES-256 as the cipher.

https://www.youtube.com/watch?v=gP4PqVGudtg

I'm a cybersecurity enthusiast with a deep understanding of encryption protocols, particularly the Advanced Encryption Standard (AES) and its underlying mechanisms. My expertise extends to the practical application of encryption in various contexts, including password management and secure data transmission.

In the article by Lane Wagner published on Jun 11, 2019, the focus is on explaining the fundamentals of AES, emphasizing its use in Qvault, a free and open-source password manager. Let's break down the key concepts discussed in the article:

  1. AES Overview:

    • AES stands for "Advanced Encryption Standard."
    • It employs the Rijndael cipher as its symmetric key ciphering algorithm.
  2. Symmetric vs. Asymmetric Encryption:

    • Symmetric encryption uses the same key for both encryption and decryption.
    • Asymmetric encryption involves different keys for encryption and decryption.
  3. Key Length and Password Usage:

    • The secret key used in AES-256 must be 256 bits long.
    • Passwords or passphrases can be used as keys, and a hashing algorithm (e.g., Scrypt) can extend their length.
  4. Password Derivation in Qvault:

    • Qvault uses the Scrypt algorithm to hash the master password, producing the private key.
    • The article highlights the importance of password length, encouraging users to use at least 12 characters.
  5. AES Encryption Process:

    • The article provides a step-by-step breakdown of the AES encryption process.
    • It includes choosing a secret message, encoding the first round key and message in hexadecimal bytes, XOR operations, substitution box usage, shifting rows, and mixing columns.
  6. Complexity of Rijndael Cipher:

    • The Rijndael cipher used in AES involves multiple rounds of encryption, including steps like "Add key," "Substitute bytes," "Shift rows," and "Multiply columns."
  7. Repetition of Steps:

    • The encryption steps are repeated 10 or more times in total, with an additional "Add key" step at the end.
    • Each round of "Add key" uses a new round key, derived from the same password and short key.
  8. External References:

    • The article references Qvault, an open-source password manager using AES-256.
    • External resources and links, such as a GitHub repository for Qvault, a tutorial on cryptography, and a video on AES, provide additional information.

In summary, the article delves into the intricacies of AES, offering a comprehensive understanding of its application in password management and data security. The detailed explanation of the encryption process and the emphasis on key derivation adds depth to the reader's comprehension of AES.

(Very) Basic intro to AES-256 Cipher (2024)
Top Articles
Latest Posts
Article information

Author: Delena Feil

Last Updated:

Views: 6262

Rating: 4.4 / 5 (45 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Delena Feil

Birthday: 1998-08-29

Address: 747 Lubowitz Run, Sidmouth, HI 90646-5543

Phone: +99513241752844

Job: Design Supervisor

Hobby: Digital arts, Lacemaking, Air sports, Running, Scouting, Shooting, Puzzles

Introduction: My name is Delena Feil, I am a clean, splendid, calm, fancy, jolly, bright, faithful person who loves writing and wants to share my knowledge and understanding with you.