Expand description
Fixsliced implementations of AES-128, AES-192 and AES-256 (64-bit) adapted from the C implementation.
All implementations are fully bitsliced and do not rely on any Look-Up Table (LUT).
See the paper at https://eprint.iacr.org/2020/1123.pdf for more details.
§Author (original C code)
Alexandre Adomnicai, Nanyang Technological University, Singapore alexandre.adomnicai@ntu.edu.sg
Originally licensed MIT. Relicensed as Apache 2.0+MIT with permission.
Macros§
- Computation of the MixColumns transformation in the fixsliced representation, with different rotations used according to the round number mod 4.
Functions§
- XOR the round key to the internal state. The round keys are expected to be pre-computed and to be packed in the fixsliced representation.
- Fully-fixsliced AES-128 decryption (the InvShiftRows is completely omitted).
- Fully-fixsliced AES-128 encryption (the ShiftRows is completely omitted).
- Fully bitsliced AES-128 key schedule to match the fully-fixsliced representation.
- Fully-fixsliced AES-192 decryption (the InvShiftRows is completely omitted).
- Fully-fixsliced AES-192 encryption (the ShiftRows is completely omitted).
- Fully bitsliced AES-192 key schedule to match the fully-fixsliced representation.
- Fully-fixsliced AES-256 decryption (the InvShiftRows is completely omitted).
- Fully-fixsliced AES-256 encryption (the ShiftRows is completely omitted).
- Fully bitsliced AES-256 key schedule to match the fully-fixsliced representation.
- bitslice 🔒Bitslice four 128-bit input blocks input0, input1, input2, input3 into a 512-bit internal state.
- Un-bitslice a 512-bit internal state into four 128-bit blocks of output.
- Note that the 4 bitwise NOT (^= 0xffffffffffffffff) are accounted for here so that it is a true inverse of ‘sub_bytes’.
- Copy 32-bytes within the provided slice to an 8-byte offset
- ror 🔒
- Applies ShiftRows once on an AES state (or key).
- Applies ShiftRows twice on an AES state (or key).
- Applies ShiftRows three times on an AES state (or key).
- Bitsliced implementation of the AES Sbox based on Boyar, Peralta and Calik.
- NOT operations that are omitted in S-box
- XOR the columns after the S-box during the key schedule round function.
Type Aliases§
- AES block batch size for this implementation
- AES-128 round keys
- AES-192 round keys
- AES-256 round keys
- State 🔒512-bit internal state