EXAMPLE
KEY:
(0) 1100 0011 1111 0000
(1) 0011 0000 1111 1111
(2) 0110 0110 1001 0110
ENCRYPTING:
0110 0001 0000 1010
KEY ADDITION:
0110 0001 0000 1010
-xor-
1100 0011 1111 0000
+++++++++++++++++++
1010 0010 1111 1010
NIBBLE SUBSTITUTION
0110 1101 0111 0110
+++++++++++++++++++
1010 0010 1111 1010
SHIFT ROW
1010 0010 1111 1010
+++++++++++++++++++
0110 0110 0111 1101
MIX COLUMN
0110 0110 0111 1101
+++++++++++++++++++
0110 0110 0011 1001
KEY ADDITION
0110 0110 0011 1001
-xor-
0011 0000 1111 1111
+++++++++++++++++++
0101 0110 1100 0110
NIBBLE SUBSTITUTION
0101 0110 1100 0110
+++++++++++++++++++
1111 1011 0101 1011
SHIFT ROW
1111 1011 0101 1011
+++++++++++++++++++
1111 1011 0101 1011
KEY ADDITION:
1111 1011 0101 1011
-xor-
0110 0110 1001 0110
+++++++++++++++++++
1001 1101 1100 1101
RESULT
1001 1101 1100 1101
DECRYPTING:
1001 1101 1100 1101
KEY ADDITION:
1001 1101 1100 1101
-xor-
0110 0110 1001 0110
+++++++++++++++++++
1111 1011 0101 1011
NIBBLE SUBSTITUTION
1111 1011 0101 1011
+++++++++++++++++++
0101 0110 1100 0110
SHIFT ROW
0101 0110 1100 0110
+++++++++++++++++++
0101 0110 1100 0110
KEY ADDITION
0101 0110 1100 0110
-xor-
0011 0000 1111 1111
+++++++++++++++++++
0110 0110 0011 1001
MIX COLUMN
0110 0110 0011 1001
+++++++++++++++++++
0110 0110 0111 1101
NIBBLE SUBSTITUTION
0110 0110 0111 1101
+++++++++++++++++++
1010 1010 1111 0010
SHIFT ROW
1010 1010 1111 0010
+++++++++++++++++++
1010 0010 1111 1010
KEY ADDITION
1010 0010 1111 1010
-xor-
1100 0011 1111 0000
+++++++++++++++++++
0110 0001 0000 1010
RESULT
0110 0001 0000 1010