OKlibrary  0.2.1.6
general.hpp File Reference

Investigations into small-scale AES key discovery for AES with a 1x16 plaintext matrix and 4-bit field elements. More...

Go to the source code of this file.


Detailed Description

Investigations into small-scale AES key discovery for AES with a 1x16 plaintext matrix and 4-bit field elements.

Todo:
Problem specification
  • We consider the small-scale AES with 1 row, 16 column, using the 4-bit 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 64-bit plaintext and 64-bit key and outputs a 64-bit ciphertext.
  • aes(r,1,16,4) applies the following operations:
    1. Key schedule which takes the key and generates r+1 64-bit round keys.
    2. Application of the following operation (the "round") r times:
      1. Addition of round key n-1.
      2. Application of Sbox operation to each byte.
    3. Addition of round key r+1.
    4. 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 i-1 by:
    K_(i,1,k) := S-box(K_(i-1,1,16)) + C_i + sum(K_(i-1,j,l),l,1,j)
       
    where
    • C_i is the round constant for round i;
    • K_(i,j,k) is the 4-bit word in the j-th row, k-th column of the i-th round-key considered as a 1x16X matrix.
  • The S-box is a permutation from {0,1}^4 to {0,1}^4 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.