A basic implementation of the Advanced Encryption Standard (AES) algorithm in TypeScript.
Input Hex: 56E219B244B3DB43811E9D3A9E85F34F
Initial State:
56 44 81 9e
e2 b3 1e 85
19 db 9d f3
b2 43 3a 4f
Key Hex: 3409A6D676932843D504C8CDF1B57272
| Round | Round Key | Substituted | Shifted | Mixed | Key Added |
|---|---|---|---|---|---|
Initial |
34 76 d5 f1 09 93 04 b5 a6 28 c8 72 d6 43 cd 72 |
62 32 54 6f eb 20 1a 30 bf f3 55 81 64 00 f7 3d |
|||
1 |
e0 96 43 b2 49 da de 6b e6 ce 06 74 77 34 f9 8b |
aa 23 20 a8 e9 b7 a2 04 08 0d fc 0c 43 63 68 27 |
aa 23 20 a8 b7 a2 04 e9 fc 0c 08 0d 27 43 63 68 |
56 f4 27 0e e7 2b 53 1e 97 5c 91 e3 e0 4d aa d7 |
b6 62 64 bc ae f1 8d 75 71 92 97 97 97 79 53 5c |
2 |
9d 0b 48 fa db 01 df b4 db 15 13 67 40 74 8d 06 |
4e aa 43 65 e4 a1 5d 9d a3 4f 88 88 88 b6 ed 4a |
4e aa 43 65 a1 5d 9d e4 88 88 a3 4f 4a 88 b6 ed |
a6 a8 2f 5f de 1b 2a 8a 3a 7f 42 33 6f 3b 8c c5 |
3b a3 67 a5 05 1a f5 3e e1 6a 51 54 2f 4f 01 c3 |
3 |
14 1f 57 ad 5e 5f 80 34 b4 a1 b2 d5 6d 19 94 92 |
e2 0a 85 06 6b a2 e6 b2 f8 02 d1 20 15 84 7c 2e |
e2 0a 85 06 a2 e6 b2 6b d1 20 f8 02 2e 15 84 7c |
dd 10 a0 cf fb a8 6d aa 8b 93 4b ed 12 f2 cd 9b |
c9 0f f7 62 a5 f7 ed 9e 3f 32 f9 38 7f eb 59 09 |
4 |
04 1b 4c e1 5d 02 82 b6 fb 5a e8 3d f8 e1 75 e7 |
dd 76 68 aa 06 68 55 0b 75 23 99 07 d2 e9 cb 01 |
dd 76 68 aa 68 55 0b 06 99 07 75 23 01 d2 e9 cb |
81 c6 51 ad bc 07 08 08 9f 40 a9 ac 8f 77 0f 4d |
85 dd 1d 4c e1 05 8a be 64 1a 41 91 77 96 7a aa |
5 |
5a 41 0d ec 7a 78 fa 4c 6f 35 dd e0 00 e1 94 73 |
97 c1 a4 29 f8 6b 7e ae 43 a2 83 81 f5 90 da ac |
97 c1 a4 29 6b 7e ae f8 83 81 43 a2 ac f5 90 da |
a7 6f 69 39 73 50 b6 e5 0e a2 27 fb 09 56 21 8e |
fd 2e 64 d5 09 28 4c a9 61 97 fa 1b 09 b7 b5 fd |
6 |
53 12 1f f3 9b e3 19 55 e0 d5 08 e8 ce 2f bb c8 |
54 31 43 03 01 34 29 d3 ef 88 2d af 01 a9 d5 54 |
54 31 43 03 34 29 d3 01 2d af ef 88 54 01 a9 d5 |
8d b7 ae 58 1f 88 7d 57 c6 5e b5 6d 4d d7 b0 3d |
de a5 b1 ab 84 6b 64 02 26 8b bd 85 83 f8 0b f5 |
7 |
ef fd e2 11 00 e3 fa af 08 dd d5 3d c3 ec 57 9f |
1d 06 c8 62 5f 7f 43 77 f7 3d 7a 97 ec 41 2b e6 |
1d 06 c8 62 7f 43 77 5f 7a 97 f7 3d e6 ec 41 2b |
27 b2 a4 33 8b ce 65 b0 a7 5f 89 3a f5 1d 41 92 |
c8 4f 46 22 8b 2d 9f 1f af 82 5c 07 36 f1 16 0d |
8 |
16 eb 09 18 27 c4 3e 91 d3 0e db e6 41 ad fa 65 |
e8 84 5a 93 3d d8 db c0 79 13 4a c5 05 a1 47 d7 |
e8 84 5a 93 d8 db c0 3d 4a c5 79 13 d7 05 a1 47 |
25 a5 37 2e 4a 78 eb 9b c6 c1 90 41 04 83 0e 0e |
33 4e 3e 36 6d bc d5 0a 15 cf 4b a7 45 2e f4 6b |
9 |
8c 67 6e 76 a9 6d 53 c2 9e 90 4b ad ec 41 bb de |
c3 2f b2 05 3c 65 03 67 59 8a b3 5c 6e 31 bf 7f |
c3 2f b2 05 65 03 67 3c b3 5c 59 8a 7f 6e 31 bf |
fe 69 be 7b b8 a3 a6 47 5a 26 34 ec 76 f2 91 dc |
72 0e d0 0d 11 ce f5 85 c4 b6 7f 41 9a b3 2a 02 |
Final |
9f f8 96 e0 3c 51 02 c0 83 13 58 f5 d4 95 2e f0 |
40 ab 70 d7 82 8b e6 97 1c 4e d2 83 b8 6d e5 77 |
40 ab 70 d7 8b e6 97 82 d2 83 1c 4e 77 b8 6d e5 |
df 53 e6 37 b7 b7 95 42 51 90 44 bb a3 2d 43 15 |
Input Hex: D6E219B244B3DB43811E9D3A9E85F34F
Initial State:
d6 44 81 9e
e2 b3 1e 85
19 db 9d f3
b2 43 3a 4f
Key Hex: 3409A6D676932843D504C8CDF1B57272
| Round | Round Key | Substituted | Shifted | Mixed | Key Added |
|---|---|---|---|---|---|
Initial |
34 76 d5 f1 09 93 04 b5 a6 28 c8 72 d6 43 cd 72 |
e2 32 54 6f eb 20 1a 30 bf f3 55 81 64 00 f7 3d |
|||
1 |
e0 96 43 b2 49 da de 6b e6 ce 06 74 77 34 f9 8b |
98 23 20 a8 e9 b7 a2 04 08 0d fc 0c 43 63 68 27 |
98 23 20 a8 b7 a2 04 e9 fc 0c 08 0d 27 43 63 68 |
32 f4 27 0e d5 2b 53 1e a5 5c 91 e3 b6 4d aa d7 |
d2 62 64 bc 9c f1 8d 75 43 92 97 97 c1 79 53 5c |
2 |
9d 0b 48 fa db 01 df b4 db 15 13 67 40 74 8d 06 |
b5 aa 43 65 de a1 5d 9d 1a 4f 88 88 78 b6 ed 4a |
b5 aa 43 65 a1 5d 9d de 88 88 1a 4f 4a 78 b6 ed |
4b 58 96 11 25 eb fa fe c1 74 2b 09 79 c0 35 ff |
d6 53 de eb fe ea 25 4a 1a 61 38 6e 39 b4 b8 f9 |
3 |
14 1f 57 ad 5e 5f 80 34 b4 a1 b2 d5 6d 19 94 92 |
f6 ed 1d e9 bb 87 3f d6 a2 ef 07 9f 12 8d 6c 99 |
f6 ed 1d e9 87 3f d6 bb 07 9f a2 ef 99 12 8d 6c |
fb 0d 74 9c 73 3b da c2 cf c1 18 23 a8 a8 52 ac |
ef 12 23 31 2d 64 5a f6 7b 60 aa f6 c5 b1 c6 3e |
4 |
04 1b 4c e1 5d 02 82 b6 fb 5a e8 3d f8 e1 75 e7 |
df c9 26 c7 d8 43 be 42 21 d0 ac 42 a6 c8 b4 b2 |
df c9 26 c7 43 be 42 d8 ac 42 21 d0 b2 a6 c8 b4 |
7e b4 63 82 04 ce 09 b3 12 02 65 63 ea eb 82 29 |
7a af 2f 63 59 cc 8b 05 e9 58 8d 5e 12 0a f7 ce |
5 |
5a 41 0d ec 7a 78 fa 4c 6f 35 dd e0 00 e1 94 73 |
da 79 15 fb cb 4b 3d 6b 1e 6a 5d 58 c9 67 68 8b |
da 79 15 fb 4b 3d 6b cb 5d 58 1e 6a 8b c9 67 68 |
a4 24 ee a9 20 22 86 a0 ad b4 eb 5c 6e 67 84 67 |
fe 65 e3 45 5a 5a 7c ec c2 81 36 bc 6e 86 10 14 |
6 |
53 12 1f f3 9b e3 19 55 e0 d5 08 e8 ce 2f bb c8 |
bb 4d 11 6e be be 10 ce 25 0c 05 65 9f 44 ca fa |
bb 4d 11 6e be 10 ce be 05 65 25 0c fa 9f 44 ca |
4b 50 0a c3 29 5d bd d7 1a 2d 59 8d 82 87 50 8f |
18 42 15 30 b2 be a4 82 fa f8 51 65 4c a8 eb 47 |
7 |
ef fd e2 11 00 e3 fa af 08 dd d5 3d c3 ec 57 9f |
ad 2c 59 04 37 ae 49 13 2d 41 d1 4d 29 c2 e9 a0 |
ad 2c 59 04 ae 49 13 37 d1 4d 2d 41 a0 29 c2 e9 |
d9 e7 68 f9 22 40 ca 40 41 84 4d 91 c8 22 4a b3 |
36 1a 8a e8 22 a3 30 ef 49 59 98 ac 0b ce 1d 2c |
8 |
16 eb 09 18 27 c4 3e 91 d3 0e db e6 41 ad fa 65 |
05 a2 7e 9b 93 0a 04 df 3b cb 46 91 2b 8b a4 71 |
05 a2 7e 9b 0a 04 df 93 46 91 3b cb 71 2b 8b a4 |
23 e9 36 ec aa 29 1d 44 10 e2 51 72 a1 3e 6b bd |
35 02 3f f4 8d ed 23 d5 c3 ec 8a 94 e0 93 91 d8 |
9 |
8c 67 6e 76 a9 6d 53 c2 9e 90 4b ad ec 41 bb de |
96 77 75 bf 5d 55 26 03 2e ce 7e 22 e1 dc 81 61 |
96 77 75 bf 55 26 03 5d 7e 22 2e ce 61 e1 dc 81 |
d7 47 1d cd df bc dd cd 9c 2d 55 fd 48 44 11 50 |
5b 20 73 bb 76 d1 8e 0f 02 bd 1e 50 a4 05 aa 8e |
Final |
9f f8 96 e0 3c 51 02 c0 83 13 58 f5 d4 95 2e f0 |
39 b7 8f ea 38 3e 19 76 77 7a 72 53 49 6b ac 19 |
39 b7 8f ea 3e 19 76 38 72 53 77 7a 19 49 6b ac |
a6 4f 19 0a 02 48 74 f8 f1 40 2f 8f cd dc 45 5c |
Comparing plaintext 1 and ciphertext 1
01010110111000100001100110110010010001001011001111011011010000111000000100011110100111010011101010011110100001011111001101001111
11011111101101110101000110100011010100111011011110010000001011011110011010010101010001000100001100110111010000101011101100010101
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^^^ ^ ^ ^ ^^ ^^ ^^^ ^^ ^^^^ ^ ^^^^ ^^ ^ ^^^^ ^^ ^ ^ ^^^ ^^^ ^ ^ ^ ^^ ^
Comparing plaintext 2 and ciphertext 2
11010110111000100001100110110010010001001011001111011011010000111000000100011110100111010011101010011110100001011111001101001111
10100110000000101111000111001101010011110100100001000000110111000001100101110100001011110100010100001010111110001000111101011100
^^^ ^^^ ^^^ ^ ^^^^^^^ ^ ^^^^^^^ ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^ ^ ^ ^^ ^ ^^^^^^^^ ^ ^ ^^^^^ ^ ^^^^^ ^ ^^
Comparing ciphertext 1 and ciphertext 2
11011111101101110101000110100011010100111011011110010000001011011110011010010101010001000100001100110111010000101011101100010101
10100110000000101111000111001101010011110100100001000000110111000001100101110100001011110100010100001010111110001000111101011100
^^^^ ^^ ^^ ^ ^^ ^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^ ^^^^ ^^^^^^^^^^^^ ^ ^^ ^ ^^ ^^ ^^^^ ^^ ^^^ ^ ^^ ^ ^ ^ ^