Investigations into smallscale AES key discovery for AES with a 1x16 plaintext matrix and 8bit field elements.
More...
Go to the source code of this file.
Detailed Description
Investigations into smallscale AES key discovery for AES with a 1x16 plaintext matrix and 8bit field elements.
 Todo:
 Problem specification

We consider the smallscale AES with 1 row, 16 column, using the 4bit field size for rounds 1 to 20.

We denote this AES instance by aes(r,1,16,4) for r in 1,...,20.

We investigate translations of the key discovery problem for aes(r,1,16,4) into SAT.

aes(r,1,16,4) takes a 64bit plaintext and 64bit key and outputs a 64bit ciphertext.

aes(r,1,16,4) applies the following operations:

Key schedule which takes the key and generates r+1 64bit round keys.

Application of the following operation (the "round") r times:

Addition of round key n1.

Application of Sbox operation to each byte.

Addition of round key r+1.

The result of the last round key addition is the ciphertext.

Round key 0 is the input key.

The key schedule computes the round key i from round key i1 by:
K_(i,1,k) := Sbox(K_(i1,1,16)) + C_i + sum(K_(i1,j,l),l,1,j)
where

C_i is the round constant for round i;

K_(i,j,k) is the 4bit word in the jth row, kth column of the ith roundkey considered as a 1x16 matrix.

The Sbox is a permutation from {0,1}^8 to {0,1}^8 which we consider as either:

The decompositions and translations are listed in "Investigating
dimensions" in Cryptography/AdvancedEncryptionStandard/plans/Experimentation.hpp.

The plaintext and ciphertext variables are then set, and the SAT SAT solver is run on this instance to deduce the key variables.
Definition in file general.hpp.