AES Encryption 4: Matrix Multiplication @WhatsACreel
AES Encryption 4: Matrix Multiplication  @WhatsACreel
Uploaded June 2016 | Updated September 2026, 2 weeks ago
This is a short vid which shows the code for the matrix multiplication for the MixColumns step. I initially intended to make this vid and the previous AES one around the same length, but we actually covered almost everything in the previous vid!

Mix Columns Wikipedia Page:
en.wikipedia.org/wiki/Rijndael_mix_columns

Code for dot products:
tmp[0] = (unsigned char)(mul2[state[0]] ^ mul3[state[1]] ^ state[2] ^ state[3]);
tmp[1] = (unsigned char)(state[0] ^ mul2[state[1]] ^ mul3[state[2]] ^ state[3]);
tmp[2] = (unsigned char)(state[0] ^ state[1] ^ mul2[state[2]] ^ mul3[state[3]]);
tmp[3] = (unsigned char)(mul3[state[0]] ^ state[1] ^ state[2] ^ mul2[state[3]]);

tmp[4] = (unsigned char)(mul2[state[4]] ^ mul3[state[5]] ^ state[6] ^ state[7]);
tmp[5] = (unsigned char)(state[4] ^ mul2[state[5]] ^ mul3[state[6]] ^ state[7]);
tmp[6] = (unsigned char)(state[4] ^ state[5] ^ mul2[state[6]] ^ mul3[state[7]]);
tmp[7] = (unsigned char)(mul3[state[4]] ^ state[5] ^ state[6] ^ mul2[state[7]]);

tmp[8] = (unsigned char)(mul2[state[8]] ^ mul3[state[9]] ^ state[10] ^ state[11]);
tmp[9] = (unsigned char)(state[8] ^ mul2[state[9]] ^ mul3[state[10]] ^ state[11]);
tmp[10] = (unsigned char)(state[8] ^ state[9] ^ mul2[state[10]] ^ mul3[state[11]]);
tmp[11] = (unsigned char)(mul3[state[8]] ^ state[9] ^ state[10] ^ mul2[state[11]]);

tmp[12] = (unsigned char)(mul2[state[12]] ^ mul3[state[13]] ^ state[14] ^ state[15]);
tmp[13] = (unsigned char)(state[12] ^ mul2[state[13]] ^ mul3[state[14]] ^ state[15]);
tmp[14] = (unsigned char)(state[12] ^ state[13] ^ mul2[state[14]] ^ mul3[state[15]]);
tmp[15] = (unsigned char)(mul3[state[12]] ^ state[13] ^ state[14] ^ mul2[state[15]]);


Music Channel:
Sober:
youtu.be/Y2LCg3cGu7U

Gold Digger:
youtu.be/wAoXB8tg0co


Become a patron and support What's a Creel programming vids on Patreon:
patreon.com/whatsacreel

FaceBook:
facebook.com/pages/WhatsaCreel/167732956665435
AES Encryption 4: Matrix MultiplicationPerformance x64: Caches 1Branchless Programming: Why If is Sloowww... and what we can do about it!PIC Microcontroller Programming - PIC AS Assembler using MPLAB X IDE, Blinking LEDNeural Nets 5: Forward Propagation (Feed Forward)Whats a Creel? Mathematics and Programming ChallengeAES Encryption 3: MixColumns 1 Dot ProductsFor Loop Puzzles 2Direct2D Tutorial 2: Showing a WindowIs this New Quadratic Formula Actually Faster than the OG Quadratic Formula? (For a Computer)Studying Agner Fog: Intro and Static Local ArraysModern x64 Assembly 6: ADD, SUB INC and DEC
Creel |

AES Encryption 4: Matrix Multiplication

SHARE TO X SHARE TO REDDIT SHARE TO FACEBOOK WALLPAPER