Skip to content

Instantly share code, notes, and snippets.

@caseykulm
Created October 30, 2013 13:24
Show Gist options
  • Save caseykulm/7232622 to your computer and use it in GitHub Desktop.
Save caseykulm/7232622 to your computer and use it in GitHub Desktop.
AES Decryption order of steps
Encrypting plaintext with key in 128-bit mode.
The Expanded Key:
00000000 62626262 9BF99BF9 9069F20B EE87757E 7FF88DF3 EC14996A 2135ACC6 0E3B9751 B18A1D4C B43E236F
00000000 63636363 98FB98FB 976CF40F 066A9E91 2E44DA4B 6125FFB4 7550AF1B F9A9061D D47D7B66 EF92E98F
00000000 63636363 98FB98FB 34CF57AC DA1542EE 2B3E7C92 4B75099B 17626BF0 03610AFA D8B9B349 5BE25118
00000000 63636363 C9AAC9AA 50FA3399 7B81B22B 8809BB90 858C37A7 870B3C9B 3338049F E2DADE41 CB11CF8E
After addRoundKey(0):
00000000000000000000000000000000
After subBytes:
63636363636363636363636363636363
After shiftRows:
63636363636363636363636363636363
After mixColumns:
63636363636363636363636363636363
After addRoundKey(1):
01000000010000000100000001000000
After subBytes:
7C6363637C6363637C6363637C636363
After shiftRows:
7C6363637C6363637C6363637C636363
After mixColumns:
5D7C7C425D7C7C425D7C7C425D7C7C42
After addRoundKey(2):
C6E4E48BA48787E8C6E4E48BA48787E8
After subBytes:
B469693D4917179BB469693D4917179B
After shiftRows:
B417699B4969173DB417699B4969173D
After mixColumns:
B8BAC794039F49DFB8BAC794039F49DF
After addRoundKey(3):
282DF3C46AF386254A4E90A70890E546
After subBytes:
34D80D1C020D443FD62F605C3060D95A
After shiftRows:
340D605A022FD91CD6600D3F30D8445C
After mixColumns:
45D41785B030A0C8253EED720B0B8474
After addRoundKey(4):
ABD2CDFE375AB54950A0AFC0759A6A5F
After subBytes:
62B5BDBB9ABED53B53E079BA9DB802CF
After shiftRows:
62BE79CF9AE002BB53B8BD3B9DB5D5BA
After mixColumns:
AB4164E4ADFCA83AF3DFC7868A324CB3
After addRoundKey(5):
D46F4F6C55B896337E05BB3D7979DE23
After subBytes:
48A88450FC6C90C3F36BEA27B6B61D26
After shiftRows:
486CEA26FC6B1D50F3B684C3B6A89027
After mixColumns:
E8938112135D5DC97BD008A123714CB7
After addRoundKey(6):
04F2CA9707782845E22F019649C5D710
After subBytes:
F2897488C5BC346E98157C903BA60ECA
After shiftRows:
F2BC7CCAC5150E8898A6746E3B893490
After mixColumns:
96DFF34228754F44C03D64BD52FE71CB
After addRoundKey(7):
B7AAE4C51D252D4F6C920F8194E58150
After subBytes:
A9AC69A6A43FD884504F760C22D90C53
After shiftRows:
A93F7653A44F0CA650D9698422ACD80C
After mixColumns:
2D1E8F0F288802E33DC6CC537F1E310A
After addRoundKey(8):
23E78C3C132163DBAAC0C6572E03CB95
After subBytes:
269464EB7DFDFBB9ACBAB45B317B1F2A
After shiftRows:
26FDB42A7DBA1FEBAC7B64B93194FB5B
After mixColumns:
CE2AD677DBD8DFEF134FCF99654FA58A
After addRoundKey(9):
7FFE0E9551A566350E347C472929ECCB
After subBytes:
D2BBAB2AD1063396AB1810A0A5A5CE1F
After shiftRows:
D206101FD118CE2AABA5AB96A5BB33A0
After addRoundKey(10):
66E94BD4EF8A2C3B884CFA59CA342B2E
The ciphertext:
66 EF 88 CA
E9 8A 4C 34
4B 2C FA 2B
D4 3B 59 2E
=================================================================
Decrypting plaintext.enc with key in 128-bit mode.
The Expanded Key:
00000000 62626262 9BF99BF9 9069F20B EE87757E 7FF88DF3 EC14996A 2135ACC6 0E3B9751 B18A1D4C B43E236F
00000000 63636363 98FB98FB 976CF40F 066A9E91 2E44DA4B 6125FFB4 7550AF1B F9A9061D D47D7B66 EF92E98F
00000000 63636363 98FB98FB 34CF57AC DA1542EE 2B3E7C92 4B75099B 17626BF0 03610AFA D8B9B349 5BE25118
00000000 63636363 C9AAC9AA 50FA3399 7B81B22B 8809BB90 858C37A7 870B3C9B 3338049F E2DADE41 CB11CF8E
After addRoundKey(10):
D206101FD118CE2AABA5AB96A5BB33A0
After inverseSubBytes:
7FA57CCB5134EC950E290E3529FE6647
After inverseShiftRows:
7FFE0E9551A566350E347C472929ECCB
After addRoundKey(9):
CE2AD677DBD8DFEF134FCF99654FA58A
After inverseMixColumns:
26FDB42A7DBA1FEBAC7B64B93194FB5B
After inverseSubBytes:
2321C69513C0CB3CAA038CDB2EE76357
After inverseShiftRows:
23E78C3C132163DBAAC0C6572E03CB95
After addRoundKey(8):
2D1E8F0F288802E33DC6CC537F1E310A
After inverseMixColumns:
A93F7653A44F0CA650D9698422ACD80C
After inverseSubBytes:
B7250F501D9281C56CE5E44F94AA2D81
After inverseShiftRows:
B7AAE4C51D252D4F6C920F8194E58150
After addRoundKey(7):
96DFF34228754F44C03D64BD52FE71CB
After inverseMixColumns:
F2BC7CCAC5150E8898A6746E3B893490
After inverseSubBytes:
04780110072FD797E2C5CA4549F22896
After inverseShiftRows:
04F2CA9707782845E22F019649C5D710
After addRoundKey(6):
E8938112135D5DC97BD008A123714CB7
After inverseMixColumns:
486CEA26FC6B1D50F3B684C3B6A89027
After inverseSubBytes:
D4B8BB235505DE6C7E794F33796F963D
After inverseShiftRows:
D46F4F6C55B896337E05BB3D7979DE23
After addRoundKey(5):
AB4164E4ADFCA83AF3DFC7868A324CB3
After inverseMixColumns:
62BE79CF9AE002BB53B8BD3B9DB5D5BA
After inverseSubBytes:
AB5AAF5F37A06AFE509ACD4975D2B5C0
After inverseShiftRows:
ABD2CDFE375AB54950A0AFC0759A6A5F
After addRoundKey(4):
45D41785B030A0C8253EED720B0B8474
After inverseMixColumns:
340D605A022FD91CD6600D3F30D8445C
After inverseSubBytes:
28F390466A4EE5C44A90F325082D86A7
After inverseShiftRows:
282DF3C46AF386254A4E90A70890E546
After addRoundKey(3):
B8BAC794039F49DFB8BAC794039F49DF
After inverseMixColumns:
B417699B4969173DB417699B4969173D
After inverseSubBytes:
C687E4E8A4E4878BC687E4E8A4E4878B
After inverseShiftRows:
C6E4E48BA48787E8C6E4E48BA48787E8
After addRoundKey(2):
5D7C7C425D7C7C425D7C7C425D7C7C42
After inverseMixColumns:
7C6363637C6363637C6363637C636363
After inverseSubBytes:
01000000010000000100000001000000
After inverseShiftRows:
01000000010000000100000001000000
After addRoundKey(1):
63636363636363636363636363636363
After inverseMixColumns:
63636363636363636363636363636363
After inverseSubBytes:
00000000000000000000000000000000
After inverseShiftRows:
00000000000000000000000000000000
After addRoundKey(0):
00000000000000000000000000000000
The decryption of the ciphertext:
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
=================================================================
Decrypting plaintext.enc with key in 128-bit mode.
The Expanded Key:
00000000 62626262 9BF99BF9 9069F20B EE87757E 7FF88DF3 EC14996A 2135ACC6 0E3B9751 B18A1D4C B43E236F
00000000 63636363 98FB98FB 976CF40F 066A9E91 2E44DA4B 6125FFB4 7550AF1B F9A9061D D47D7B66 EF92E98F
00000000 63636363 98FB98FB 34CF57AC DA1542EE 2B3E7C92 4B75099B 17626BF0 03610AFA D8B9B349 5BE25118
00000000 63636363 C9AAC9AA 50FA3399 7B81B22B 8809BB90 858C37A7 870B3C9B 3338049F E2DADE41 CB11CF8E
After addRoundKey(10):
D206101FD118CE2AABA5AB96A5BB33A0
After inverseShiftRows:
D2BBAB2AD1063396AB1810A0A5A5CE1F
After inverseSubBytes:
7FFE0E9551A566350E347C472929ECCB
After addRoundKey(9):
CE2AD677DBD8DFEF134FCF99654FA58A
After inverseMixColumns:
26FDB42A7DBA1FEBAC7B64B93194FB5B
After inverseShiftRows:
269464EB7DFDFBB9ACBAB45B317B1F2A
After inverseSubBytes:
23E78C3C132163DBAAC0C6572E03CB95
After addRoundKey(8):
2D1E8F0F288802E33DC6CC537F1E310A
After inverseMixColumns:
A93F7653A44F0CA650D9698422ACD80C
After inverseShiftRows:
A9AC69A6A43FD884504F760C22D90C53
After inverseSubBytes:
B7AAE4C51D252D4F6C920F8194E58150
After addRoundKey(7):
96DFF34228754F44C03D64BD52FE71CB
After inverseMixColumns:
F2BC7CCAC5150E8898A6746E3B893490
After inverseShiftRows:
F2897488C5BC346E98157C903BA60ECA
After inverseSubBytes:
04F2CA9707782845E22F019649C5D710
After addRoundKey(6):
E8938112135D5DC97BD008A123714CB7
After inverseMixColumns:
486CEA26FC6B1D50F3B684C3B6A89027
After inverseShiftRows:
48A88450FC6C90C3F36BEA27B6B61D26
After inverseSubBytes:
D46F4F6C55B896337E05BB3D7979DE23
After addRoundKey(5):
AB4164E4ADFCA83AF3DFC7868A324CB3
After inverseMixColumns:
62BE79CF9AE002BB53B8BD3B9DB5D5BA
After inverseShiftRows:
62B5BDBB9ABED53B53E079BA9DB802CF
After inverseSubBytes:
ABD2CDFE375AB54950A0AFC0759A6A5F
After addRoundKey(4):
45D41785B030A0C8253EED720B0B8474
After inverseMixColumns:
340D605A022FD91CD6600D3F30D8445C
After inverseShiftRows:
34D80D1C020D443FD62F605C3060D95A
After inverseSubBytes:
282DF3C46AF386254A4E90A70890E546
After addRoundKey(3):
B8BAC794039F49DFB8BAC794039F49DF
After inverseMixColumns:
B417699B4969173DB417699B4969173D
After inverseShiftRows:
B469693D4917179BB469693D4917179B
After inverseSubBytes:
C6E4E48BA48787E8C6E4E48BA48787E8
After addRoundKey(2):
5D7C7C425D7C7C425D7C7C425D7C7C42
After inverseMixColumns:
7C6363637C6363637C6363637C636363
After inverseShiftRows:
7C6363637C6363637C6363637C636363
After inverseSubBytes:
01000000010000000100000001000000
After addRoundKey(1):
63636363636363636363636363636363
After inverseMixColumns:
63636363636363636363636363636363
After inverseShiftRows:
63636363636363636363636363636363
After inverseSubBytes:
00000000000000000000000000000000
After addRoundKey(0):
00000000000000000000000000000000
The decryption of the ciphertext:
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment