I would like to better understand the operation of the LED algorithm, especially the process of substitution and permutation of the blocks and especially the use of the keys in each round.

The keys in each round are expansions of a single key or keys are different?

Already consulted sources:



But could not find if each round are expansions or are different keys.


1 Answer 1


The bottom of page 3 of your second link (the specification for LED) seems pretty clear:

"Note that for a 64-bit key $K$, all subkeys are equal to $K$, while for a 128-bit key $K$, the subkeys are alternatively equal to the left part $K^1$ and to the right part $K^2$ of $K$."

Basically, the input master key is split into a sorted list of nibbles, and whenever the algorithm needs subkey material it just uses nibbles directly from this sorted list -- moving each used nibble to the 'back of the line', so that all nibbles are used in succession. Since the algorithm calls for 64 bits of subkey material at a time (16 nibbles), for a 64-bit master key every subkey will simply be the master key, and for 128-bit keys the algorithm will use the first 16 nibbles of the master key, and then the second 16 nibbles, and then the first 16 again, and so on. The top of page 4 shows a diagram of how this works out for an 80-bit master key.

I would also point out that the subkeys are not used in each 'round' as stated in your question, but rather in between each step, where every step is composed of 4 rounds. Each round consists of four operations, very similar to those used in AES -- first you xor a round constant into the state, then you replace each of the nibbles using a nonlinear substitution operation (the s-box from the cipher PRESENT), you transpose the nibbles, and then you 'mix' the nibbles by passing them through a highly diffusive linear permutation with a high branch factor (similar to MixColumns in AES, except optimized for nibbles).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.