Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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

share|improve this question
here's a java applet that shows actual calculations. Hopefully its helpful. The site is in German, but it shouldnt matter: – calccrypto Oct 16 '12 at 13:39
up vote 5 down vote accepted

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.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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