How to perform the key scheduling in International Data Encryption Algorithm (IDEA), I took a research but I can't understand how to perform it,

"further groups of eight keys are created by rotating the main key left 25 bits between each group of eight.", this is the part where I cannot understand the key scheduling of IDEA


Have a look at the corresponding paper.

The key is a 128-bit string $K$. The round keys for round $r=1,...,8$ are derived as follows:

  • take the version of $K$ cyclically rotated to the left $25\cdot r$ times;
  • split the string obtained into eight substrings and call them $Z_1^{(r)}$, ..., $Z_8^{(r)}$.

The keys $Z_7^{(r)}$ and $Z_8^{(r)}$ are never used. The subkeys $Z_1^{(9)}$, ..., $Z_4^{(9)}$ are used to mask the output.


To generate a key we 128 bit master key:0110101010101 up to 128. 1 key= 16 bit chunks so in this case we generate 8 keys of 16 bits. but one thing the most important while generating keys when we reach to 25th bit means from start to 25 bit then we do LS-25.

1101 Ls-1= 1011 only one left bit is shift to right. 1101 ls-2= 0111 two bits are shift to right. So in case of ls-25 ...25 bits are shift to right.

At last we to complete 7 rounds to finish the process.

  • $\begingroup$ "To generate a key we 128 bit master key" --> we what? $\endgroup$ – Hilder Vítor Lima Pereira Apr 28 '17 at 9:05
  • $\begingroup$ "At last we to complete" --> what does "we to" mean? $\endgroup$ – Hilder Vítor Lima Pereira Apr 28 '17 at 9:07

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.