AES Challenge

Here are some Rijndael 128-bit key 128-bit block AES challenge problems. No prizes will be given for solving them. Part I asks you to find the key (or more correctly, a key, since theoretically there is likely to be more than one correct key for each challenge, although not necessarily with the desired zero-padding) which causes a plaintext zero block (a block of 128 zero bits) to become encrypted to the given ciphertext. Part II asks the opposite--to find a key which causes a ciphertext block of zeros to decrypt to the given plaintext. I generated the keys by reading from /dev/random and did not record the keys except for the joke at the end of Part II, so I don't know the answers myself. Part III asks for plaintext-ciphertext collisions.

For key lengths less than 128, the key is padded on the left with zeros to be 128 bits total. Therefore, the challenges for each part start out trivial (zero key!) and get harder.

I used Brian Gladman's "new" AES implementation.

Send your results to kenta@mit.edu. Include in the subject line the phrase "AES Challenge" so that your message doesn't get lost in all the spam.

Part I: Decrypt these to get zero

Or you can encrypt a plaintext zero block to try to get the ciphertext.

Key LengthCiphertextKeyFound by
0 66e94bd4ef8a2c3b884cfa59ca342b2e00000000000000000000000000000000Trivial
1 0545aad56da2a97c3663d1432a3d1c8400000000000000000000000000000001Google
2 26d50f485a30408d5af47a573629245000000000000000000000000000000002Google
3 84631b4947305000e5637f024f931b9000000000000000000000000000000005me
4 d7f6367f5cd3bb49fb53cc784751ab1f0000000000000000000000000000000ame
5 0d68e0da8ec69a1854cc16be884ade2f0000000000000000000000000000000fregression test(via Brian Yu)
6 3a8a59bb293afc3e41b4576d46e0b843
7 7608995d9e3ddabe4cfb120dcd981de8
8 ef6bf6c85837e542e28474d9a69737ab
9 4d8e0d8250e39dfa88fac464da96619a
10 0f1fe5a776038066e2f6ae82641fa3a5
11 5b01d8d15b5222f0c063f5f4785d399a
12 ed1a8a20288fd44bafb5220ee5ca9246
13 6cc29b8741a5e39126154ec32531fdd9
14 c5c8ad0534c2e68a8a01b08d811a4290
15 d79ea43118703506bebcc65f9271566b
16 7e908dcd2ff8b02eda5483732401cf1d
17 e2117abad7ccc3328955319da54a94a6
18 0b798de1597855bac458139170809194
19 b235342385113e7c5176a221dcd155cc
20 c8b523e75c62692ae686db34ff660e6c
21 52accc5039bf8988a17c18ebc9684ead
22 3ade45f421aed731bbb656e6ec064fa9
23 b8a54823ee22de32dada49b7ffdc94a5
24 7dc10ba140233537f3167e0d1d8644a3
25 e1386b42069285f227945db1600ccedc
26 c2da8e6bda4c313eb47af5c2bff2bc0d
27 9f779f66ddf68450d33ba8334651430a
28 3a42760c265e55e7477e97c421e4af1a
29 eddb9c6973c530e674d069e5748d7821
30 8287d24f3a251593b5b117a9aa617558
31 8d4ebd0b402c23674ec64786cd5f8417
32 7ca604a1c85e7d23d994644289525173
33 9050ab8c7df8c697a6b48f320bb54f77
34 d5929e82516999b4a159b66185be8b23
35 4e64a8fe239409dda083bcfadd715953
36 62fd62fa51f65317fa3256aec71013ca
37 0422b2f70867ff6faea33f21d509c8eb
38 38c9d60aaebb4464f7fbd1604d5d2bc5
39 a9ef75f601de62b61fb558b03c7ade93
40 eb2ad9aa544e067f04dab74102c296de
41 4132770ec30e2db76232286be971f40c
42 59b89789e9009558d36f6f5ff9496689
43 1fffdb1c361d2b9ab558f4554ce7bac0
44 7f7c660704b73a2b72f3222a0139551e
45 ae052bcf52906a685cde3e7564e1a05a
46 e2109510f25155ca7f35d935e51a84a2
47 59d273a4514f892717437dff2f75cbdd
48 94e28ed2bdf63bc9001782fb083f1324
49 f8906b3347698de5d429b84d704770ba
50 1d73f605d9a10d638f80d7c60c6b366d
51 0064a2a8b516b7dbc9c19d647ff69579
52 7c3d736ad850a3c750296e1fcfe8f7fb
53 b052f7d84ce714cdd868a7dea7f860aa
54 434de4fd471a78c7eb0212d30aa1b2d2
55 1280cca4fa3180739fd69dfc0c7b8ac1
56 af017821ee74af8d81632ea3e831a451
57 9a13ddf4d7e6ba8e6f1f9a703f8d5ae2
58 c14ef240cbbbc45ec11927dbcc235aca
59 a950b682723d89628a05a69218550459
60 0c9ce959a5f5ded095f5cbafd16bee4a
61 97652f228e645dd7bff3cb2a18704021
62 c40922e71fa5b1120491c0f1783992b0
63 2c538940c002d8bf76f546e8bd3856f6
64 35ce51500a29442856ddb27e0c22955f
65 bc30d3651cdcb0bd836fec01720e19df
66 5350e23a0f9ae78070d0c3cb88dfbd24
67 eaf01d80f314e7e8702ba7757ba6e741
68 bbf5eaaa47b29b321448970f8fa15dfa
69 54fb52343d9fec3316f259d7ea2745e7
70 c8d3e9590802a67a7660c327e33369ad
71 2f1310d701df07563ac2c397e8aa0758
72 8b33adf404ea05835426f10ca2bc3011
73 e9df143932648efcbb235460db616bfd
74 7f2cac88af7a03d6af4df75691e44c1e
75 a38cc39a648c7164eef770094ac14df8
76 35bf7fc82887e80fe4fb315302d8060a
77 aef81a9e1f713f67bfc5cfa8e13b5f74
78 7ad37fbe37356550c5d2eb5f5df9b7ca
79 bdd5c1ec4be5a046b342e8f7ca2cd97f
80 43e3fb00a04ca28c72d4dae5e96c395e
81 6d88b0d7938042c027e5abb3942e9459
82 be0828eb9f6e0a464531532a8ed546f5
83 ec32fde5d752939feb02cee5fcd3f78d
84 07bf639c0e437265b97619696911ebc1
85 5195a5cd0147352d676a230803466fc3
86 dc801739c559e6792f7cdfaf8659502e
87 954e47e1dc6b684c4028d3d4ea66d14b
88 c3b768cc030f0c14171693a235fb3a8e
89 596036ca0a4b6e294fc32ca4e545c65e
90 6d7ac78918fe16028a4ffc3bb1ff2428
91 15af25b0d6eef628fd583a6272d81325
92 8f7df8cf9fd2c35e4b2cd49fe21966f9
93 6142988272c80c503b8745fc9c66945b
94 9e12bfd25cbd56337e846faeb8372248
95 9f525a42cbf1b2c0f367c419b8960b50
96 3e784301d6927e67b2224b9b69b07812
97 b33bba397552d4857a8c146db86919cc
98 6f2930bdd0884cc5cb0b68b2cfd1d6d1
99 23e5f13089a980bdc8c3c0442ace5b3c
100 a997f4a8425414db6cc781f1d8a925a4
101 41d4d08dc043919fbc1554332c0afb4f
102 c13c7400bc4234812d081c49bdf209cc
103 12df6f87d0873bb549b22020f87c6ae0
104 b12965d8e09e1c23d7a45707af443f66
105 8ec358b472ff898564a8c886f137c7e0
106 7e14ae4b32d7c2bf2726b75cfeb4f169
107 e11ee8e7edf2671e931a31e15f5f3707
108 24e417a65e17656b9baa737d0e1ce4bb
109 49a98567155ce2d78b6a62aad4f9b0ac
110 2ffb3e52c05ce88e6e12b9d4197a4169
111 87ebfce418f5a5a0a718b18f5687d262
112 3d48f8655d144e40fda2ced2ead144ad
113 4ca85ffc462ccc686dd1df4a715a8894
114 8be2064fbfa99e443573ec95a55046e0
115 b040b928b6c330a69bcba6e3eef123c8
116 be046e43edc5ff203562eadac872beda
117 57d28b9f4d2ed9fd50f8a8622e779890
118 94517caca0f6a1bed12830d7dd86c92f
119 e2b51f16f286b4f0b63eedc9c8d3bbfb
120 12dd239abaa312aa5c72f8d50c270416
121 1f4c3d3ecb2c8aefd5846dc3d8e85691
122 9621a002f7e4a26b15e8462e6024a1c3
123 1f3f2b64171e8b036a7fe9ea48050ae5
124 e478da9b6ee4f45407d32bfd367dac3d
125 3fb1e0ca8ff4503b470b194aa5e1f562
126 7c83871abfccca03177fff6e66154bb4
127 30a8bffa10616acbf6fef3d8e549ccab
128 48e2f5e8a5ba6d63b89dbb092c0526dc

Part II: Encrypt these to get zero

Key LengthPlaintextKeyFound by
0 140f0f1011b5223d79587717ffd9ec3a00000000000000000000000000000000Trivial
1 f034c659871a7442b0a03236ef17e8ec00000000000000000000000000000001me
2 75002a9d2721363df6ae6877af4e08d500000000000000000000000000000002me
3 028ee5b3188096a37b2b1af07f4a9fad00000000000000000000000000000003me
4 fff67195a6374c55fdcf3c1a880385110000000000000000000000000000000fme
5 e6a9d05dbb128b3d47a9ec54d768d820
6 0ecb54dbaf886dde291e9c7353143064
7 c17243192633ce2f3716efca2e999af6
8 a50ca690be298dd94b4d818211992ebb
9 f883c87d397a4092f7c85027aea8b9c0
10 91c0f4b041315218cc97dbca429e5b25
11 25a3d02369f7e6da089918fa5f546d85
12 5448fe3af7bc50632753c1d5df33a6f9
13 46b64d5111b6f2f8eded35f0d1ace983
14 7e72f4fbca2c57d02bb89835bbde58fa
15 f55660df7458c45374ffe825a72f7a00
16 576dd1990837f67c72497e4c523c1d0d
17 a5a0ed2e3a4c83c49012a173847f4496
18 977828bd51308b65567951279acaf943
19 0efef5e8151977253b3574a710ba1559
20 5421d80db40d14be8df2c4fc1ddb706c
21 b8880dfe57e3791da3ad064a208e05e3
22 2a0cdfaf7d79335c05be201a44360fe9
23 29b4c0ccd012ee2a21124b932d14bd24
24 40a3a6e377ee080bc010f9d34359d6fd
25 5b5474f2be6531f756d486aaaf6e2314
26 4d4071584942beaee2fca618cff20d6a
27 cb0c46068ca19527bb9b82b8b278bffd
28 779c64735a1bcf5dda6a7c2b811a4546
29 4d7e942673af759345fdbfac7e222cec
30 566564ba34ed70dd8ae4071f0f07ba9d
31 a50c1a7fc5540f2780c0f10cd72e5ddd
32 14afa5963b407d8eb3ec75faa8436ea7
33 9a63f9e3b73be4fe3443b55eb1db8d6e
34 0721deb0aa68c624b0ad35f468d0576d
35 cfa2a1031aa422e98fa961b51890330e
36 99aa47f3aef018aa98dcaac7c30db8a3
37 87fe137b805c6bb1b45ccd38678ad1ab
38 d9842139aa55bf620ad78c5be3cbd73d
39 94f039dfe533a28b7ffa5969bd71cf22
40 830d88e7e8d62c80bfb7169496afdda1
41 e5d61f9f295024f196d845128bec2a3c
42 bad1d5ca513fae5e279751db7e448a4a
43 aecfe59ff12131e58c7d8e965d85cfb1
44 9408cdbfd9e278b1a70e0d9c4c51863c
45 12da4d96d6fac29ca45cd587ec771fb5
46 1bcba218f5a6f73e3049cd72199bd40a
47 9abb7646827ffe4589b2044f5f882294
48 5b164dc72b3bcbccc4178adff32652c6
49 15c5b579de0d6c2f7c1727072245bf0f
50 3d2b4c38184566914cfc9db671663fe9
51 6e4905b41dd6aa85f12e3feeed8b4632
52 c8c02633df090c9ef34a678bf3f6627a
53 5510588b472be9606b66d433dfc14234
54 556f3a03698965b3c52f8220c0e31bdf
55 cc4cc33ad428e78d803f05d3a7f8faab
56 b0c855462a04ea4a0f7ab95a067affc9
57 28edfdbd37dee486d99386cad18eb52e
58 38a99b9f0f10adfd46c1328c243abbf4
59 f1db72ecf503c013324821b1b7ea9e78
60 0ef2810e4f9ba93b211f789e877ae92c
61 2dab6e8a7a7fdcd8ff2cfed9fa392751
62 21ec3fc18fcd2bc36e88602679680349
63 e9729173580b93870ec17b15d4a094dd
64 26f35ae2cb36aa5d0de042159325d94e
65 8ca7ad6376873a470db977454edf33f2
66 009127167c2cc2cac23ef3c074c50924
67 b901561214131dab60280d93310e2bc3
68 3b875b6a34d161e70a9ad3e86da0e6d2
69 053215ab2f6ccab93e0543724e0520ab
70 5f768426b04dec354b4e30cc8f36aca5
71 0f278d34da8acab52a745791fcb9859f
72 ffd6d017b30be00e53245f10f995e312
73 d86a6fb692c6adfaa2e41d3722030f32
74 c6a3a468b12978e3ad08f66f5ab9a84b
75 2536a7424553f04eece095b55e27df61
76 ca93c41c6fe7bd027a49489a6c2d6479
77 e4537c0c3358f8449d358a5b8a9386fd
78 14951a0a0e01904228d8bf08b5de5831
79 ce062078ab52b455e0c0dbaffbc2c8f7
80 ab9a5787f185118675934839b796e137
81 648d0f03d84bfe95386be8408b4b213a
82 4983954a661f07ad71460c7745fbc8c4
83 9567c3d76728d219577be7a51b4d1a01
84 252aa4fb24615863b565d60ac3b47412
85 208f732ed7a7de989c14e19f5f5bcfe7
86 590ee1552e40055e9c843a210a3bd49a
87 686e946037e572f9e260b89e2e8dd50b
88 c8864247d22d23ba148215cf2903e2bf
89 fba9f7c63e348c69b13c05c0e504a329
90 eb1925d9e80f512392c1a15539ba5d27
91 30b877dcc44e0f2a122fd98f237a853c
92 26f63df7a5e46c9be9cf3a11d1185f6e
93 3585b743d00a1b09946f4f91b26bc7bb
94 06b1adb235a51104d05e157c12d8217c
95 0efbcc30b9718fae19c4dc6749ac906b
96 538fcbac36da9bbba35af74577bd0a68
97 9014284b80cbfc6a8a1810f9101d75df
98 004dd87eee984509d81f3a074f8158c5
99 5f077d1c4ec731c1d5048c8d58351ece
100 0dbfa6cf6acab12ed005732a8c6c76d7
101 cb9fb5d66ac675bbfbe349ec0216cf78
102 92a335d323d1cd8a80a52360a0adad2f
103 855843bb7705d1a98d0e163e6d4c1763
104 2007c5f1b94a1fdaa6be6b7482259bc7
105 7995b1daa355afb864e713e54fdd22de
106 66cba94ae7a5adddff9fb71c0e72c35f
107 8750caf0a29a3ff3abdba6414787aa0d
108 35618b04c5be83e949edcb5f366ec263
109 bebe8c7d4c90555fdb87f68e9d8e49f1
110 ffec7dad696e8b4ce1f5b8445d3f9af7
111 d44dc1b24d0094169c6f624398b6e191
112 f5b580a4bf8e079b9b9aac001f3d6b38
113 ec06f6bb1f1a84607ffda0ad82d304d2
114 d6ac888d1b2ea4743882e5fa0ceb0afd
115 3a4031e23e085aa407d96c949edfcc28
116 cec30a8a9c456f84ca8c7a3460cb9c31
117 63c41e4e4d5a994a015625f404d4ce64
118 1be77534c3e8e549c25761ce5bd1aa45
119 bd5d7f14083f4ff0aed9d90cf84ff6d3
120 c53c0f2f93d198cba338e8143765d8cf
121 6a1e613bef01f97e845dbe3b1b612cb1
122 bc5ea21ac9c156a64d20a0c77299f2f9
123 346177c3eede7f2ddaa25b3ff4d8c306
124 132af4eb8b3ff4d55f060ec617b85176
125 6d1117f3685dffc213d66af0ac7ff253
126 4fd79eef00bf30949619d2d43ffce01b
127 be8043fe9134bd232865549362a04cf7
128 908ba90b61e6a73e855ff59f4fc397cf
128 fbe478feed2d8a36659a1172f0f137d234c3a636ea2b3186a4e8278b83e44f76NSA using double sooper S3KR1T Rijndael backdoor
(just kidding :-)

Part III: Plaintext-Ciphertext Partial Collisions

The challenge here is to find a plaintext-ciphertext block pair which agree on a large number of leading bits. Specifically, we want to minimize the binary value of PLAINTEXT xor CIPHERTEXT. There are two divisions: the first requires the use of the zero key, the second allows any non-zero key of your choice.

Zero key division: Current Record

Using the key consisting of 128 zero bits.

Arbitrary non-zero key division: Current Record

Here is a webpage that implements AES in Javascript to verify the collisions above.


Ken Takusagawa (kenta@mit.edu)