LED is a 64-bit block cipher that can handle key sizes from 64 bits up to 128 bits. We denote LED-x the LED block cipher version that handles x-bit keys.
The Key Schedule
The key schedule of LED is extremly simple as it is almost inexistant, which gives obvious advantages in hardware. This simplicity is also very welcome for security proofs as we can derive some even for the related-key model. The idea is to simply reuse the original key material as is, but several times during the computation.
For LED-64, the 64-bit key K1 is repeatedly XORed to the internal state, every four rounds of the internal permutation,
For bigger key sizes up to 128 bits, the key material is simply repeated. For example, in the case of a 128-bit key, the secret material is divided into two keys K1 and K2 that are repeatedly and alternatively XORed to the internal state, every four rounds of the internal permutation,
The Internal Permutation
The keyed permutation of LED is largely inspired from the Advanced Encryption Cipher (AES) structure. Namely, the internal state can be viewed as a 4x4 matrix of 4-bit cells. One round applies four functions:
AddConstants: this function applies round-dependant constants to each cell of the two first columns.
SubCells: this function applies a 4-bit Sbox to every cell of the internal state. We chose to use the very small 4-bit Present cipher Sbox.
ShiftRows: this function simply rotates each cell located at row i by i positions to the left.
MixColumnsSerial: this function updates linearly all columns independantly. The matrix underlying the MixColumnsSerial layer is Maximum Distance Separable (MDS) so as to provide maximal diffusion. However, this matrix can be applied on a serial manner, cell by cell, with very efficient coefficients for hardware implementation.
In total, the LED-64 internal permutation contains 32 rounds and the LED-128 internal permutation contains 48 rounds.