I'm implementing IDEA algorithm in java and I need test vectors for the algorithm that include plaintext,ciphertext and keys in each step to verify my code.
2 Answers
There is one set of test vectors at the end of the paper describing the standard; it includes round keys and the transformation of the plaintext to ciphertext for each round, but it doesn't zoom in on the values within the rounds.
-
$\begingroup$ NB: Bouncy Castle (Java crypto library) is pretty easy to understand / compile so you can use that or another library to print intermediate values yourself, using the test vectors in the paper as starting point. That would be implemented in
IDEAEngine.java
of course. Their test uses another test vector, without any comments or whatnot, so I don't know where they got that; I presume another library such as a PGP library (as that was where it was used the most). $\endgroup$– Maarten Bodewes ♦Jul 10, 2021 at 20:32
The values given in the IDEA paper (mentioned above) are kinda useless, they're decimal numbers representing internal states rather than { key, plaintext, ciphertext } triplets. Here are some triplets from the original ETH reference implementation of IDEA:
K: 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08
P: 00 00 00 01 00 02 00 03
C: 11 FB ED 2B 01 98 6D E5
K: 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08
P: 01 02 03 04 05 06 07 08
C: 54 0E 5F EA 18 C2 F8 B1
K: 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08
P: 00 19 32 4B 64 7D 96 AF
C: 9F 0A 0A B6 E1 0C ED 78
K: 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08
P: F5 20 2D 5B 9C 67 1B 08
C: CF 18 FD 73 55 E2 C5 C5
K: 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08
P: FA E6 D2 BE AA 96 82 6E
C: 85 DF 52 00 56 08 19 3D
K: 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08
P: 0A 14 1E 28 32 3C 46 50
C: 2F 7D E7 50 21 2F B7 34
K: 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08
P: 05 0A 0F 14 19 1E 23 28
C: 7B 73 14 92 5D E5 9C 09
K: 00 05 00 0A 00 0F 00 14 00 19 00 1E 00 23 00 28
P: 01 02 03 04 05 06 07 08
C: 3E C0 47 80 BE FF 6E 20
K: 3A 98 4E 20 00 19 5D B3 2E E5 01 C8 C4 7C EA 60
P: 01 02 03 04 05 06 07 08
C: 97 BC D8 20 07 80 DA 86
K: 00 64 00 C8 01 2C 01 90 01 F4 02 58 02 BC 03 20
P: 05 32 0A 64 14 C8 19 FA
C: 65 BE 87 E7 A2 53 8A ED
K: 9D 40 75 C1 03 BC 32 2A FB 03 E7 BE 6A B3 00 06
P: 08 08 08 08 08 08 08 08
C: F5 DB 1A C4 5E 5E F9 F9