aes解密小脚本
计算逆s盒
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| #include <stdio.h> #include <stdint.h>
const uint8_t S_BOX[16][16] = {};
int main(){ uint8_t InvS[16][16] = {{0}};
for (uint8_t i = 0; i < 16; i++) { for (uint8_t j = 0; j < 16; j++) { uint8_t value = S_BOX[i][j]; uint8_t row = value >> 4; uint8_t col = value & 0x0F; InvS[row][col] = (i << 4) | j; } }
printf("AES Inverse S-Box:\n"); for (int i = 0; i < 16; i++) { for (int j = 0; j < 16; j++) { printf("0x%02X, ", InvS[i][j]); } printf("\n"); } return 0; }
|
注意列混合(MixColumns),这里多数会多加一次异或进行魔改