当前位置:   article > 正文

AES128算法C语言实现(附每轮执行结果以供调试)_128aes-cmac

128aes-cmac

关于AES128算法的文章网上已经很多了,之所以要写这篇是因为前两天自己在写代码调试的时候遇到一些问题,底层函数单独调试的时候是好的,但是综合在一起执行10轮操作以后总的结果却是不对的,所以一下子很难定位问题出在哪里,为了帮助遇到相同问题的朋友,特此把我每轮执行的结果都贴出来,给大家一个参考。

首先分享一些AES的技术要点,关于数学理论就不多说了,要彻底理解伽罗瓦域在二进制世界里的工作原理相信没点天赋还真的不行,所以这里我只说结论和如何应用这些结论。

关于AES的乘法(在列混合操作中要用到矩阵乘法),AES里乘法逻辑是:

将某个字节所对应的值乘以2,其结果就是将该值的二进制位左移一位,如果原始值的最高位为1,则还需要将移位后的结果异或00011011

注意一下,这里为什么只说乘以2,因为站在二进制的观点去看,所有的乘数其实都可以分解成2的不同倍数的相加,比如0x07=0001b+0010b+0100b,其实就是1+2+4,所以7*Y=(1*Y)+(2*Y)+(4*Y),不难看出每一项都是Y乘以2的不同倍数,,求7*Y只要先求出(1*Y)、(2*Y)、(4*Y)、(8*Y)、(16*Y)、(32*Y)、(64*Y)、(128*Y),这里每一个数又是前一个数乘以2,然后找到7对应的那几个bit把他们再加起来就行了,注意AES的乘以2不是普通的乘以2,而是左移一位且如果原始值最高位为1还要将结果异或00011011。

贴一下我的代码,这是乘以2的函数

  1. unsigned char TwoMult(unsigned char x)
  2. {
  3. unsigned char rslt = 0u;
  4. //伽罗瓦域乘2就是将其左移1位,若原先值的最高位为1则还要异或0x1B
  5. rslt = (x << 1u) ^ ((x & 0x80u) ? 0x1Bu : 0x00u);
  6. return rslt;
  7. }

这是求两个数相乘的函数

  1. unsigned char GaloisMult(unsigned char a, unsigned char b)
  2. {
  3. unsigned char rslt = 0u;
  4. unsigned char temp[8u];
  5. unsigned char i;
  6. temp[0] = a; //当b的第0位为1
  7. temp[1] = TwoMult(a); //当b的第1位为1,其实就是相当于a*0x02
  8. temp[2] = TwoMult(temp[1u]); //当b的第2位为1,其实就是相当于a*0x04=a*0x02*0x02
  9. temp[3] = TwoMult(temp[2u]); //当b的第3位为1,其实就是相当于a*0x08=a*0x02*0x02*0x02
  10. temp[4] = TwoMult(temp[3u]); //当b的第4位为1,其实就是相当于a*0x10=a*0x02*0x02*0x02*0x02
  11. temp[5] = TwoMult(temp[4u]); //当b的第5位为1,其实就是相当于a*0x20=a*0x02*0x02*0x02*0x02*0x02
  12. temp[6] = TwoMult(temp[5u]); //当b的第6位为1,其实就是相当于a*0x40=a*0x02*0x02*0x02*0x02*0x02*0x02
  13. temp[7] = TwoMult(temp[6u]); //当b的第7位为1,其实就是相当于a*0x80=a*0x02*0x02*0x02*0x02*0x02*0x02*0x02
  14. for (i = 0u; i < 8u; i++)
  15. {
  16. unsigned char z;
  17. z = (b & (0x01u << i)) ? temp[i] : 0x00u; //只要b的某一位为1则把对应的temp[i]取出来循环做异或
  18. rslt ^= z;
  19. }
  20. return rslt;
  21. }

说完乘法,接着说一下数据排布规则,AES里对于顺序输入的数据都是按照从上到下,从左到右的顺序排布到一个[4][4]的矩阵中

比如输入P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15

则矩阵应该这样

P0P4P8P12
P1P5P9P13
P2P6P10P14
P3P7P11P15

包括在做秘钥扩展的时候,对于秘钥key一共16字节,也应按照上述规则排布,说道秘钥扩展顺便也说一下我遇到的坑,下图是网上找来的,要注意在g函数里做左移的时候,B0是MSB,举例来说,w3=k12 | k13 | k14 | k15,其中要把k12作为MSB然后执行左移,如果把k15当做MSB左移结果就正好方向反掉了(错:w3=k15 | k14 | k13 | k12) 

 

 

秘钥扩展是一个比较复杂的函数,找了一下网上说的比较清楚的一端描述

密钥扩展过程说明:

    1)  将种子密钥按图(a)的格式排列,其中k0、k1、……、k15依次表示种子密钥的一个字节;排列后用4个32比特的字表示,分别记为w[0]、w[1]、w[2]、w[3];

    2)  按照如下方式,依次求解w[j],其中j是整数并且属于[4,43];

    3)  若j%4=0,则w[j]=w[j-4]⊕g(w[j-1]),否则w[j]=w[j-4]⊕w[j-1];

  函数g的流程说明:

    a)  将w循环左移8比特;

    b)  分别对每个字节做S盒置换;

    c)  与32比特的常量(RC[j/4],0,0,0)进行异或,RC是一个一维数组,其值如下。(RC的值只需要有10个,而此处用了11个,实际上RC[0]在运算中没有用到,增加RC[0]是为了便于程序中用数组表示。由于j的最小取值是4,j/4的最小取值则是1,因此不会产生错误。)

RC = {0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1B, 0x36}

 下面是我的代码

  1. unsigned char RC[11u] = { 0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1B, 0x36, };
  2. unsigned int WGen(unsigned int input, unsigned char round) {
  3. unsigned char in[4u];
  4. unsigned char temp[4u];
  5. unsigned int int_temp;
  6. unsigned char i = 0;
  7. in[0u] = input & 0x000000FF; //B3 LSB
  8. in[1u] = (input & 0x0000FF00)>>8u; //B2
  9. in[2u] = (input & 0x00FF0000)>>16u; //B1
  10. in[3u] = (input & 0xFF000000)>>24u; //B0 MSB
  11. for (i = 0u; i < 4u; i++)
  12. {
  13. temp[i] = in[(i + 3u) % 4u]; //左移是将MSB往左移
  14. }
  15. for (i = 0u; i < 4u; i++)
  16. {
  17. temp[i] = Sout(temp[i]);
  18. }
  19. temp[3] ^= RC[round];
  20. int_temp = temp[0u] | ((unsigned int)temp[1u]) << 8u | ((unsigned int)temp[2u]) << 16u | ((unsigned int)temp[3u]) << 24u;
  21. return int_temp;
  22. };
  23. unsigned int WKey[44u]; //44*4=176字节
  24. void KeyExp(const unsigned char(*key)[16u]){
  25. unsigned char i;
  26. //以B0/B1/B2/B3为例,MSB取B0,LSB取B3,以此类推
  27. WKey[0u] = ((unsigned int)(*key)[0u]) << 24u | ((unsigned int)(*key)[1u]) << 16u | ((unsigned int)(*key)[2u]) << 8u | (*key)[3u];
  28. WKey[1u] = ((unsigned int)(*key)[4u]) << 24u | ((unsigned int)(*key)[5u]) << 16u | ((unsigned int)(*key)[6u]) << 8u | (*key)[7u];
  29. WKey[2u] = ((unsigned int)(*key)[8u]) << 24u | ((unsigned int)(*key)[9u]) << 16u | ((unsigned int)(*key)[10u]) << 8u | (*key)[11u];
  30. WKey[3u] = ((unsigned int)(*key)[12u]) << 24u | ((unsigned int)(*key)[13u]) << 16u | ((unsigned int)(*key)[14u]) << 8u | (*key)[15u];
  31. for (i = 4u; i <= 43u; i++)
  32. {
  33. if ((i % 4u) == 0u)
  34. {
  35. WKey[i] = WKey[i - 4u] ^ WGen(WKey[i - 1u], (i/4u)); //i/4就是round,[1, 10]
  36. }
  37. else
  38. {
  39. WKey[i] = WKey[i - 4u] ^ WKey[i - 1u];
  40. }
  41. }
  42. };
  43. //先运行fpKeyExp,秘钥扩展后存入WKey[44u],然后每次秘钥轮加的时候运行GetRoundKey从WKey[44u]里抽取需要的4个组成一个数组与State进行异或
  44. unsigned int RndKey[4u];
  45. void GetRoundKey(unsigned char rnd_key_idx) {
  46. RndKey[0u] = WKey[rnd_key_idx * 4u];
  47. RndKey[1u] = WKey[rnd_key_idx * 4u +1u];
  48. RndKey[2u] = WKey[rnd_key_idx * 4u +2u];
  49. RndKey[3u] = WKey[rnd_key_idx * 4u +3u];
  50. }
  51. //以RndKey[4u]为基础生成ByteRndKey[4u][4u],和State里的每个字节异或,先调用GetByteRndKey,然后就可以使用ByteRndKey[4u][4u]
  52. unsigned char ByteRndKey[4u][4u];
  53. void GetByteRndKey(unsigned char rnd_key_idx) {
  54. unsigned char i;
  55. GetRoundKey(rnd_key_idx);
  56. //从int[4]转char[4][4]时要注意空间位置
  57. for (i = 0u; i < 4u; i++)
  58. {
  59. ByteRndKey[i][0u] = (RndKey[0u] >> ((3u - i) * 8u)) & (unsigned int)0xFF;
  60. }
  61. for (i = 0u; i < 4u; i++)
  62. {
  63. ByteRndKey[i][1u] = (RndKey[1u] >> ((3u - i) * 8u)) & (unsigned int)0xFF;
  64. }
  65. for (i = 0u; i < 4u; i++)
  66. {
  67. ByteRndKey[i][2u] = (RndKey[2u] >> ((3u - i) * 8u)) & (unsigned int)0xFF;
  68. }
  69. for (i = 0u; i < 4u; i++)
  70. {
  71. ByteRndKey[i][3u] = (RndKey[3u] >> ((3u - i) * 8u)) & (unsigned int)0xFF;
  72. }
  73. }

说明一下,使用的时候先调用KeyExp吧所有的扩展秘钥都求出来,然后调用GetByteRndKey求出一个[4][4]的矩阵与当前state异或,下面是几个key对应的扩展结果,如果你的程序执行结果和这个一样那就对了,如果不一样那说明你的程序哪里还有问题,另外秘钥扩展程序里用到了S和替换,所以如果你的秘钥扩展结果正确那说明你的S盒替换函数也是正确的。

下面贴几个扩展秘钥的执行结果

对于key={ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0xA, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,}

名称

类型

[0x00000000]

0x00010203

unsigned int

[0x00000001]

0x04050607

unsigned int

[0x00000002]

0x08090a0b

unsigned int

[0x00000003]

0x0c0d0e0f

unsigned int

[0x00000004]

0xd6aa74fd

unsigned int

[0x00000005]

0xd2af72fa

unsigned int

[0x00000006]

0xdaa678f1

unsigned int

[0x00000007]

0xd6ab76fe

unsigned int

[0x00000008]

0xb692cf0b

unsigned int

[0x00000009]

0x643dbdf1

unsigned int

[0x0000000a]

0xbe9bc500

unsigned int

[0x0000000b]

0x6830b3fe

unsigned int

[0x0000000c]

0xb6ff744e

unsigned int

[0x0000000d]

0xd2c2c9bf

unsigned int

[0x0000000e]

0x6c590cbf

unsigned int

[0x0000000f]

0x0469bf41

unsigned int

[0x00000010]

0x47f7f7bc

unsigned int

[0x00000011]

0x95353e03

unsigned int

[0x00000012]

0xf96c32bc

unsigned int

[0x00000013]

0xfd058dfd

unsigned int

[0x00000014]

0x3caaa3e8

unsigned int

[0x00000015]

0xa99f9deb

unsigned int

[0x00000016]

0x50f3af57

unsigned int

[0x00000017]

0xadf622aa

unsigned int

[0x00000018]

0x5e390f7d

unsigned int

[0x00000019]

0xf7a69296

unsigned int

[0x0000001a]

0xa7553dc1

unsigned int

[0x0000001b]

0x0aa31f6b

unsigned int

[0x0000001c]

0x14f9701a

unsigned int

[0x0000001d]

0xe35fe28c

unsigned int

[0x0000001e]

0x440adf4d

unsigned int

[0x0000001f]

0x4ea9c026

unsigned int

[0x00000020]

0x47438735

unsigned int

[0x00000021]

0xa41c65b9

unsigned int

[0x00000022]

0xe016baf4

unsigned int

[0x00000023]

0xaebf7ad2

unsigned int

[0x00000024]

0x549932d1

unsigned int

[0x00000025]

0xf0855768

unsigned int

[0x00000026]

0x1093ed9c

unsigned int

[0x00000027]

0xbe2c974e

unsigned int

[0x00000028]

0x13111d7f

unsigned int

[0x00000029]

0xe3944a17

unsigned int

[0x0000002a]

0xf307a78b

unsigned int

[0x0000002b]

0x4d2b30c5

unsigned int

对于key={0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0xA, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,}

名称类型
[0x00000000]0x01020304unsigned int
[0x00000001]0x05060708unsigned int
[0x00000002]0x090a0b0cunsigned int
[0x00000003]0x0d0e0f10unsigned int
[0x00000004]0xab74c9d3unsigned int
[0x00000005]0xae72cedbunsigned int
[0x00000006]0xa778c5d7unsigned int
[0x00000007]0xaa76cac7unsigned int
[0x00000008]0x91000f7funsigned int
[0x00000009]0x3f72c1a4unsigned int
[0x0000000a]0x980a0473unsigned int
[0x0000000b]0x327cceb4unsigned int
[0x0000000c]0x858b825cunsigned int
[0x0000000d]0xbaf943f8unsigned int
[0x0000000e]0x22f3478bunsigned int
[0x0000000f]0x108f893funsigned int
[0x00000010]0xfe2cf796unsigned int
[0x00000011]0x44d5b46eunsigned int
[0x00000012]0x6626f3e5unsigned int
[0x00000013]0x76a97adaunsigned int
[0x00000014]0x3df6a0aeunsigned int
[0x00000015]0x792314c0unsigned int
[0x00000016]0x1f05e725unsigned int
[0x00000017]0x69ac9dffunsigned int
[0x00000018]0x8ca8b657unsigned int
[0x00000019]0xf58ba297unsigned int
[0x0000001a]0xea8e45b2unsigned int
[0x0000001b]0x8322d84dunsigned int
[0x0000001c]0x5fc955bbunsigned int
[0x0000001d]0xaa42f72cunsigned int
[0x0000001e]0x40ccb29eunsigned int
[0x0000001f]0xc3ee6ad3unsigned int
[0x00000020]0xf7cb3395unsigned int
[0x00000021]0x5d89c4b9unsigned int
[0x00000022]0x1d457627unsigned int
[0x00000023]0xdeab1cf4unsigned int
[0x00000024]0x8e578c88unsigned int
[0x00000025]0xd3de4831unsigned int
[0x00000026]0xce9b3e16unsigned int
[0x00000027]0x103022e2unsigned int
[0x00000028]0xbcc41442unsigned int
[0x00000029]0x6f1a5c73unsigned int
[0x0000002a]0xa1816265unsigned int
[0x0000002b]0xb1b14087unsigned int

对于key={ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,}

名称类型
[0x00000000]0xffffffffunsigned int
[0x00000001]0xffffffffunsigned int
[0x00000002]0xffffffffunsigned int
[0x00000003]0xffffffffunsigned int
[0x00000004]0xe8e9e9e9unsigned int
[0x00000005]0x17161616unsigned int
[0x00000006]0xe8e9e9e9unsigned int
[0x00000007]0x17161616unsigned int
[0x00000008]0xadaeae19unsigned int
[0x00000009]0xbab8b80funsigned int
[0x0000000a]0x525151e6unsigned int
[0x0000000b]0x454747f0unsigned int
[0x0000000c]0x090e2277unsigned int
[0x0000000d]0xb3b69a78unsigned int
[0x0000000e]0xe1e7cb9eunsigned int
[0x0000000f]0xa4a08c6eunsigned int
[0x00000010]0xe16abd3eunsigned int
[0x00000011]0x52dc2746unsigned int
[0x00000012]0xb33becd8unsigned int
[0x00000013]0x179b60b6unsigned int
[0x00000014]0xe5baf3ceunsigned int
[0x00000015]0xb766d488unsigned int
[0x00000016]0x045d3850unsigned int
[0x00000017]0x13c658e6unsigned int
[0x00000018]0x71d07db3unsigned int
[0x00000019]0xc6b6a93bunsigned int
[0x0000001a]0xc2eb916bunsigned int
[0x0000001b]0xd12dc98dunsigned int
[0x0000001c]0xe90d208dunsigned int
[0x0000001d]0x2fbb89b6unsigned int
[0x0000001e]0xed5018ddunsigned int
[0x0000001f]0x3c7dd150unsigned int
[0x00000020]0x96337366unsigned int
[0x00000021]0xb988fad0unsigned int
[0x00000022]0x54d8e20dunsigned int
[0x00000023]0x68a5335dunsigned int
[0x00000024]0x8bf03f23unsigned int
[0x00000025]0x3278c5f3unsigned int
[0x00000026]0x66a027feunsigned int
[0x00000027]0x0e0514a3unsigned int
[0x00000028]0xd60a3588unsigned int
[0x00000029]0xe472f07bunsigned int
[0x0000002a]0x82d2d785unsigned int
[0x0000002b]0x8cd7c326unsigned int

说完秘钥扩展,接着先贴一下结论,对于

Key={ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0xA, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,}

明文Plain={ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0xA, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,}

的加密结果为

Cypher=

名称类型
[0x00000000]0x34 '4'unsigned char
[0x00000001]0xc3 '?'unsigned char
[0x00000002]0x3b ';'unsigned char
[0x00000003]0x7f ''unsigned char
[0x00000004]0x14 '\x14'unsigned char
[0x00000005]0xfd '?'unsigned char
[0x00000006]0x53 'S'unsigned char
[0x00000007]0xdc '?'unsigned char
[0x00000008]0xea '?'unsigned char
[0x00000009]0x25 '%'unsigned char
[0x0000000a]0xe0 '?'unsigned char
[0x0000000b]0x1a '\x1a'unsigned char
[0x0000000c]0x02 '\x2'unsigned char
[0x0000000d]0xe1 '?'unsigned char
[0x0000000e]0x67 'g'unsigned char
[0x0000000f]0x27 '''unsigned char

如果你的结果和这个一致那就不用往下看了,如果不对,下面贴出每一轮操作的结果以供对比。

第0轮轮钥密加后state[4][4]结果如下

名称类型
[0x00000000]0x002afa20 ""unsigned char[0x00000004]
        [0x00000000]0x00 '\0'unsigned char
        [0x00000001]0x00 '\0'unsigned char
        [0x00000002]0x00 '\0'unsigned char
        [0x00000003]0x00 '\0'unsigned char
[0x00000001]0x002afa24 ""unsigned char[0x00000004]
        [0x00000000]0x00 '\0'unsigned char
        [0x00000001]0x00 '\0'unsigned char
        [0x00000002]0x00 '\0'unsigned char
        [0x00000003]0x00 '\0'unsigned char
[0x00000002]0x002afa28 ""unsigned char[0x00000004]
        [0x00000000]0x00 '\0'unsigned char
        [0x00000001]0x00 '\0'unsigned char
        [0x00000002]0x00 '\0'unsigned char
        [0x00000003]0x00 '\0'unsigned char
[0x00000003]0x002afa2c ""unsigned char[0x00000004]
        [0x00000000]0x00 '\0'unsigned char
        [0x00000001]0x00 '\0'unsigned char
        [0x00000002]0x00 '\0'unsigned char
        [0x00000003]0x00 '\0'unsigned char

 

第1轮【字节替换】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 "cccc...unsigned char[0x00000004]
        [0x00000000]0x63 'c'unsigned char
        [0x00000001]0x63 'c'unsigned char
        [0x00000002]0x63 'c'unsigned char
        [0x00000003]0x63 'c'unsigned char
[0x00000001]0x002afa24 "cccc...unsigned char[0x00000004]
        [0x00000000]0x63 'c'unsigned char
        [0x00000001]0x63 'c'unsigned char
        [0x00000002]0x63 'c'unsigned char
        [0x00000003]0x63 'c'unsigned char
[0x00000002]0x002afa28 "cccc...unsigned char[0x00000004]
        [0x00000000]0x63 'c'unsigned char
        [0x00000001]0x63 'c'unsigned char
        [0x00000002]0x63 'c'unsigned char
        [0x00000003]0x63 'c'unsigned char
[0x00000003]0x002afa2c "cccc...unsigned char[0x00000004]
        [0x00000000]0x63 'c'unsigned char
        [0x00000001]0x63 'c'unsigned char
        [0x00000002]0x63 'c'unsigned char
        [0x00000003]0x63 'c'unsigned char

第1轮【行位移】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 "cccc...unsigned char[0x00000004]
        [0x00000000]0x63 'c'unsigned char
        [0x00000001]0x63 'c'unsigned char
        [0x00000002]0x63 'c'unsigned char
        [0x00000003]0x63 'c'unsigned char
[0x00000001]0x002afa24 "cccc...unsigned char[0x00000004]
        [0x00000000]0x63 'c'unsigned char
        [0x00000001]0x63 'c'unsigned char
        [0x00000002]0x63 'c'unsigned char
        [0x00000003]0x63 'c'unsigned char
[0x00000002]0x002afa28 "cccc...unsigned char[0x00000004]
        [0x00000000]0x63 'c'unsigned char
        [0x00000001]0x63 'c'unsigned char
        [0x00000002]0x63 'c'unsigned char
        [0x00000003]0x63 'c'unsigned char
[0x00000003]0x002afa2c "cccc...unsigned char[0x00000004]
        [0x00000000]0x63 'c'unsigned char
        [0x00000001]0x63 'c'unsigned char
        [0x00000002]0x63 'c'unsigned char
        [0x00000003]0x63 'c'unsigned char

第1轮【列混合】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 "cccc...unsigned char[0x00000004]
        [0x00000000]0x63 'c'unsigned char
        [0x00000001]0x63 'c'unsigned char
        [0x00000002]0x63 'c'unsigned char
        [0x00000003]0x63 'c'unsigned char
[0x00000001]0x002afa24 "cccc...unsigned char[0x00000004]
        [0x00000000]0x63 'c'unsigned char
        [0x00000001]0x63 'c'unsigned char
        [0x00000002]0x63 'c'unsigned char
        [0x00000003]0x63 'c'unsigned char
[0x00000002]0x002afa28 "cccc...unsigned char[0x00000004]
        [0x00000000]0x63 'c'unsigned char
        [0x00000001]0x63 'c'unsigned char
        [0x00000002]0x63 'c'unsigned char
        [0x00000003]0x63 'c'unsigned char
[0x00000003]0x002afa2c "cccc...unsigned char[0x00000004]
        [0x00000000]0x63 'c'unsigned char
        [0x00000001]0x63 'c'unsigned char
        [0x00000002]0x63 'c'unsigned char
        [0x00000003]0x63 'c'unsigned char

第1轮【轮密钥加】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 "韧纳...unsigned char[0x00000004]
        [0x00000000]0xc8 '?'unsigned char
        [0x00000001]0xcd '?'unsigned char
        [0x00000002]0xc4 '?'unsigned char
        [0x00000003]0xc9 '?'unsigned char
[0x00000001]0x002afa24 "\x17\x11\x1b\x15...unsigned char[0x00000004]
        [0x00000000]0x17 '\x17'unsigned char
        [0x00000001]0x11 '\x11'unsigned char
        [0x00000002]0x1b '\x1b'unsigned char
        [0x00000003]0x15 '\x15'unsigned char
[0x00000002]0x002afa28 "Ι...unsigned char[0x00000004]
        [0x00000000]0xaa '?'unsigned char
        [0x00000001]0xad '?'unsigned char
        [0x00000002]0xa6 '?'unsigned char
        [0x00000003]0xa9 '?'unsigned char
[0x00000003]0x002afa2c "案搐...unsigned char[0x00000004]
        [0x00000000]0xb0 '?'unsigned char
        [0x00000001]0xb8 '?'unsigned char
        [0x00000002]0xb4 '?'unsigned char
        [0x00000003]0xa4 '?'unsigned char

第2轮【字节替换】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xe8 '?'unsigned char
        [0x00000001]0xbd '?'unsigned char
        [0x00000002]0x1c '\x1c'unsigned char
        [0x00000003]0xdd '?'unsigned char
[0x00000001]0x002afa24 "饌痀...unsigned char[0x00000004]
        [0x00000000]0xf0 '?'unsigned char
        [0x00000001]0x82 '?'unsigned char
        [0x00000002]0xaf '?'unsigned char
        [0x00000003]0x59 'Y'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xac '?'unsigned char
        [0x00000001]0x95 '?'unsigned char
        [0x00000002]0x24 '$'unsigned char
        [0x00000003]0xd3 '?'unsigned char
[0x00000003]0x002afa2c "鏻岻...unsigned char[0x00000004]
        [0x00000000]0xe7 '?'unsigned char
        [0x00000001]0x6c 'l'unsigned char
        [0x00000002]0x8d '?'unsigned char
        [0x00000003]0x49 'I'unsigned char

第2轮【行位移】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xe8 '?'unsigned char
        [0x00000001]0xbd '?'unsigned char
        [0x00000002]0x1c '\x1c'unsigned char
        [0x00000003]0xdd '?'unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x82 '?'unsigned char
        [0x00000001]0xaf '?'unsigned char
        [0x00000002]0x59 'Y'unsigned char
        [0x00000003]0xf0 '?'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x24 '$'unsigned char
        [0x00000001]0xd3 '?'unsigned char
        [0x00000002]0xac '?'unsigned char
        [0x00000003]0x95 '?'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x49 'I'unsigned char
        [0x00000001]0xe7 '?'unsigned char
        [0x00000002]0x6c 'l'unsigned char
        [0x00000003]0x8d '?'unsigned char

第2轮【列混合】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x3b ';'unsigned char
        [0x00000001]0xbf '?'unsigned char
        [0x00000002]0x13 '\x13'unsigned char
        [0x00000003]0xb2 '?'unsigned char
[0x00000001]0x002afa24 "襮-\xf...unsigned char[0x00000004]
        [0x00000000]0xd2 '?'unsigned char
        [0x00000001]0x71 'q'unsigned char
        [0x00000002]0x2d '-'unsigned char
        [0x00000003]0x0f '\xf'unsigned char
[0x00000002]0x002afa28 "鶟矏...unsigned char[0x00000004]
        [0x00000000]0xf9 '?'unsigned char
        [0x00000001]0x9d '?'unsigned char
        [0x00000002]0xb2 '?'unsigned char
        [0x00000003]0x90 '?'unsigned char
[0x00000003]0x002afa2c "\x17u\t\x18...unsigned char[0x00000004]
        [0x00000000]0x17 '\x17'unsigned char
        [0x00000001]0x75 'u'unsigned char
        [0x00000002]0x09 '\t'unsigned char
        [0x00000003]0x18 '\x18'unsigned char

第2轮【轮密钥加】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 "獉媭...unsigned char[0x00000004]
        [0x00000000]0xaa '?'unsigned char
        [0x00000001]0x80 '€'unsigned char
        [0x00000002]0x8b '?'unsigned char
        [0x00000003]0x80 '€'unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xd2 '?'unsigned char
        [0x00000001]0x03 '\x3'unsigned char
        [0x00000002]0x27 '''unsigned char
        [0x00000003]0x73 's'unsigned char
[0x00000002]0x002afa28 "鯸禴...unsigned char[0x00000004]
        [0x00000000]0xf6 '?'unsigned char
        [0x00000001]0x5c '\\'unsigned char
        [0x00000002]0xb6 '?'unsigned char
        [0x00000003]0x5e '^'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x68 'h'unsigned char
        [0x00000001]0xd1 '?'unsigned char
        [0x00000002]0x7a 'z'unsigned char
        [0x00000003]0xac '?'unsigned char

第3轮【字节替换】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xac '?'unsigned char
        [0x00000001]0xcd '?'unsigned char
        [0x00000002]0x3d '='unsigned char
        [0x00000003]0xcd '?'unsigned char
[0x00000001]0x002afa24 "祘虖...unsigned char[0x00000004]
        [0x00000000]0xb5 '?'unsigned char
        [0x00000001]0x7b '{'unsigned char
        [0x00000002]0xcc '?'unsigned char
        [0x00000003]0x8f '?'unsigned char
[0x00000002]0x002afa28 "BJNX...unsigned char[0x00000004]
        [0x00000000]0x42 'B'unsigned char
        [0x00000001]0x4a 'J'unsigned char
        [0x00000002]0x4e 'N'unsigned char
        [0x00000003]0x58 'X'unsigned char
[0x00000003]0x002afa2c "E>趹...unsigned char[0x00000004]
        [0x00000000]0x45 'E'unsigned char
        [0x00000001]0x3e '>'unsigned char
        [0x00000002]0xda '?'unsigned char
        [0x00000003]0x91 '?'unsigned char

第3轮【行位移】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xac '?'unsigned char
        [0x00000001]0xcd '?'unsigned char
        [0x00000002]0x3d '='unsigned char
        [0x00000003]0xcd '?'unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x7b '{'unsigned char
        [0x00000001]0xcc '?'unsigned char
        [0x00000002]0x8f '?'unsigned char
        [0x00000003]0xb5 '?'unsigned char
[0x00000002]0x002afa28 "NXBJ...unsigned char[0x00000004]
        [0x00000000]0x4e 'N'unsigned char
        [0x00000001]0x58 'X'unsigned char
        [0x00000002]0x42 'B'unsigned char
        [0x00000003]0x4a 'J'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x91 '?'unsigned char
        [0x00000001]0x45 'E'unsigned char
        [0x00000002]0x3e '>'unsigned char
        [0x00000003]0xda '?'unsigned char

第3轮【列混合】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x11 '\x11'unsigned char
        [0x00000001]0xd3 '?'unsigned char
        [0x00000002]0x8c '?'unsigned char
        [0x00000003]0xd5 '?'unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x19 '\x19'unsigned char
        [0x00000001]0xe3 '?'unsigned char
        [0x00000002]0xc0 '?'unsigned char
        [0x00000003]0xb8 '?'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xe3 '?'unsigned char
        [0x00000001]0x7e '~'unsigned char
        [0x00000002]0x74 't'unsigned char
        [0x00000003]0x99 '?'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xe3 '?'unsigned char
        [0x00000001]0x52 'R'unsigned char
        [0x00000002]0xf6 '?'unsigned char
        [0x00000003]0x1c '\x1c'unsigned char

第3轮【轮密钥加】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 "攊...unsigned char[0x00000004]
        [0x00000000]0x94 '?'unsigned char
        [0x00000001]0x69 'i'unsigned char
        [0x00000002]0xae '?'unsigned char
        [0x00000003]0xc5 '?'unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x92 '?'unsigned char
        [0x00000001]0x1a '\x1a'unsigned char
        [0x00000002]0x33 '3'unsigned char
        [0x00000003]0x37 '7'unsigned char
[0x00000002]0x002afa28 "a=3\x10...unsigned char[0x00000004]
        [0x00000000]0x61 'a'unsigned char
        [0x00000001]0x3d '='unsigned char
        [0x00000002]0x33 '3'unsigned char
        [0x00000003]0x10 '\x10'unsigned char
[0x00000003]0x002afa2c "开}#...unsigned char[0x00000004]
        [0x00000000]0xbf '?'unsigned char
        [0x00000001]0xaa '?'unsigned char
        [0x00000002]0x7d '}'unsigned char
        [0x00000003]0x23 '#'unsigned char

第4轮【字节替换】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x22 '\"'unsigned char
        [0x00000001]0xf9 '?'unsigned char
        [0x00000002]0xe4 '?'unsigned char
        [0x00000003]0xa6 '?'unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x4f 'O'unsigned char
        [0x00000001]0xa2 '?'unsigned char
        [0x00000002]0xc3 '?'unsigned char
        [0x00000003]0x9a '?'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xef '?'unsigned char
        [0x00000001]0x27 '''unsigned char
        [0x00000002]0xc3 '?'unsigned char
        [0x00000003]0xca '?'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x08 '\b'unsigned char
        [0x00000001]0xac '?'unsigned char
        [0x00000002]0xff ''unsigned char
        [0x00000003]0x26 '&'unsigned char

第4轮【行位移】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x22 '\"'unsigned char
        [0x00000001]0xf9 '?'unsigned char
        [0x00000002]0xe4 '?'unsigned char
        [0x00000003]0xa6 '?'unsigned char
[0x00000001]0x002afa24 "⒚歄...unsigned char[0x00000004]
        [0x00000000]0xa2 '?'unsigned char
        [0x00000001]0xc3 '?'unsigned char
        [0x00000002]0x9a '?'unsigned char
        [0x00000003]0x4f 'O'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xc3 '?'unsigned char
        [0x00000001]0xca '?'unsigned char
        [0x00000002]0xef '?'unsigned char
        [0x00000003]0x27 '''unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x26 '&'unsigned char
        [0x00000001]0x08 '\b'unsigned char
        [0x00000002]0xac '?'unsigned char
        [0x00000003]0xff ''unsigned char

第4轮【列混合】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 "\\u%^...unsigned char[0x00000004]
        [0x00000000]0x5c '\\'unsigned char
        [0x00000001]0x75 'u'unsigned char
        [0x00000002]0x25 '%'unsigned char
        [0x00000003]0x5e '^'unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x05 '\x5'unsigned char
        [0x00000001]0x29 ')'unsigned char
        [0x00000002]0x4d 'M'unsigned char
        [0x00000003]0xae '?'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x77 'w'unsigned char
        [0x00000001]0xad '?'unsigned char
        [0x00000002]0x54 'T'unsigned char
        [0x00000003]0xbd '?'unsigned char
[0x00000003]0x002afa2c "K\t\x1|...unsigned char[0x00000004]
        [0x00000000]0x4b 'K'unsigned char
        [0x00000001]0x09 '\t'unsigned char
        [0x00000002]0x01 '\x1'unsigned char
        [0x00000003]0x7c '|'unsigned char

第4轮【轮密钥加】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xa2 '?'unsigned char
        [0x00000001]0x31 '1'unsigned char
        [0x00000002]0x43 'C'unsigned char
        [0x00000003]0x28 '('unsigned char
[0x00000001]0x002afa24 ")黭\a...unsigned char[0x00000004]
        [0x00000000]0x29 ')'unsigned char
        [0x00000001]0xfc '?'unsigned char
        [0x00000002]0x6b 'k'unsigned char
        [0x00000003]0x07 '\a'unsigned char
[0x00000002]0x002afa28 "€\x19...unsigned char[0x00000004]
        [0x00000000]0x80 '€'unsigned char
        [0x00000001]0x19 '\x19'unsigned char
        [0x00000002]0xa7 '?'unsigned char
        [0x00000003]0xc7 '?'unsigned char
[0x00000003]0x002afa2c "輌洇...unsigned char[0x00000004]
        [0x00000000]0xdd '?'unsigned char
        [0x00000001]0x67 'g'unsigned char
        [0x00000002]0xe4 '?'unsigned char
        [0x00000003]0xa6 '?'unsigned char

第5轮【字节替换】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x3a ':'unsigned char
        [0x00000001]0xc7 '?'unsigned char
        [0x00000002]0x1a '\x1a'unsigned char
        [0x00000003]0x34 '4'unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xa5 '?'unsigned char
        [0x00000001]0xb0 '?'unsigned char
        [0x00000002]0x7f ''unsigned char
        [0x00000003]0xc5 '?'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xcd '?'unsigned char
        [0x00000001]0xd4 '?'unsigned char
        [0x00000002]0x5c '\\'unsigned char
        [0x00000003]0xc6 '?'unsigned char
[0x00000003]0x002afa2c "羺i$...unsigned char[0x00000004]
        [0x00000000]0xc1 '?'unsigned char
        [0x00000001]0x85 '?'unsigned char
        [0x00000002]0x69 'i'unsigned char
        [0x00000003]0x24 '$'unsigned char

第5轮【行位移】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x3a ':'unsigned char
        [0x00000001]0xc7 '?'unsigned char
        [0x00000002]0x1a '\x1a'unsigned char
        [0x00000003]0x34 '4'unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xb0 '?'unsigned char
        [0x00000001]0x7f ''unsigned char
        [0x00000002]0xc5 '?'unsigned char
        [0x00000003]0xa5 '?'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x5c '\\'unsigned char
        [0x00000001]0xc6 '?'unsigned char
        [0x00000002]0xcd '?'unsigned char
        [0x00000003]0xd4 '?'unsigned char
[0x00000003]0x002afa2c "$羺i...unsigned char[0x00000004]
        [0x00000000]0x24 '$'unsigned char
        [0x00000001]0xc1 '?'unsigned char
        [0x00000002]0x85 '?'unsigned char
        [0x00000003]0x69 'i'unsigned char

第5轮【列混合】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xc7 '?'unsigned char
        [0x00000001]0x13 '\x13'unsigned char
        [0x00000002]0x28 '('unsigned char
        [0x00000003]0x21 '!'unsigned char
[0x00000001]0x002afa24 "仼Bk...unsigned char[0x00000004]
        [0x00000000]0x81 '?'unsigned char
        [0x00000001]0xa9 '?'unsigned char
        [0x00000002]0x42 'B'unsigned char
        [0x00000003]0x6b 'k'unsigned char
[0x00000002]0x002afa28 "^w蕶...unsigned char[0x00000004]
        [0x00000000]0x5e '^'unsigned char
        [0x00000001]0x77 'w'unsigned char
        [0x00000002]0xca '?'unsigned char
        [0x00000003]0x99 '?'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xea '?'unsigned char
        [0x00000001]0x72 'r'unsigned char
        [0x00000002]0x37 '7'unsigned char
        [0x00000003]0xff ''unsigned char

第5轮【轮密钥加】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 "鷍7H...unsigned char[0x00000004]
        [0x00000000]0xfa '?'unsigned char
        [0x00000001]0x6a 'j'unsigned char
        [0x00000002]0x37 '7'unsigned char
        [0x00000003]0x48 'H'unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x77 'w'unsigned char
        [0x00000001]0x8a '?'unsigned char
        [0x00000002]0x47 'G'unsigned char
        [0x00000003]0xc7 '?'unsigned char
[0x00000002]0x002afa28 "-\x4...unsigned char[0x00000004]
        [0x00000000]0xfe '?'unsigned char
        [0x00000001]0x63 'c'unsigned char
        [0x00000002]0x2d '-'unsigned char
        [0x00000003]0x04 '\x4'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x44 'D'unsigned char
        [0x00000001]0xb2 '?'unsigned char
        [0x00000002]0x12 '\x12'unsigned char
        [0x00000003]0x00 '\0'unsigned char

第6轮【字节替换】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 "-\x2歊...unsigned char[0x00000004]
        [0x00000000]0x2d '-'unsigned char
        [0x00000001]0x02 '\x2'unsigned char
        [0x00000002]0x9a '?'unsigned char
        [0x00000003]0x52 'R'unsigned char
[0x00000001]0x002afa24 "鮺犉...unsigned char[0x00000004]
        [0x00000000]0xf5 '?'unsigned char
        [0x00000001]0x7e '~'unsigned char
        [0x00000002]0xa0 '?'unsigned char
        [0x00000003]0xc6 '?'unsigned char
[0x00000002]0x002afa28 "畸仳...unsigned char[0x00000004]
        [0x00000000]0xbb '?'unsigned char
        [0x00000001]0xfb '?'unsigned char
        [0x00000002]0xd8 '?'unsigned char
        [0x00000003]0xf2 '?'unsigned char
[0x00000003]0x002afa2c "\x1b7蒫...unsigned char[0x00000004]
        [0x00000000]0x1b '\x1b'unsigned char
        [0x00000001]0x37 '7'unsigned char
        [0x00000002]0xc9 '?'unsigned char
        [0x00000003]0x63 'c'unsigned char

第6轮【行位移】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 "-\x2歊...unsigned char[0x00000004]
        [0x00000000]0x2d '-'unsigned char
        [0x00000001]0x02 '\x2'unsigned char
        [0x00000002]0x9a '?'unsigned char
        [0x00000003]0x52 'R'unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x7e '~'unsigned char
        [0x00000001]0xa0 '?'unsigned char
        [0x00000002]0xc6 '?'unsigned char
        [0x00000003]0xf5 '?'unsigned char
[0x00000002]0x002afa28 "仳畸...unsigned char[0x00000004]
        [0x00000000]0xd8 '?'unsigned char
        [0x00000001]0xf2 '?'unsigned char
        [0x00000002]0xbb '?'unsigned char
        [0x00000003]0xfb '?'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x63 'c'unsigned char
        [0x00000001]0x1b '\x1b'unsigned char
        [0x00000002]0x37 '7'unsigned char
        [0x00000003]0xc9 '?'unsigned char

第6轮【列混合】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 "c\x16驋...unsigned char[0x00000004]
        [0x00000000]0x63 'c'unsigned char
        [0x00000001]0x16 '\x16'unsigned char
        [0x00000002]0xf2 '?'unsigned char
        [0x00000003]0x92 '?'unsigned char
[0x00000001]0x002afa24 "罯靯...unsigned char[0x00000004]
        [0x00000000]0xc1 '?'unsigned char
        [0x00000001]0x4f 'O'unsigned char
        [0x00000002]0xec '?'unsigned char
        [0x00000003]0x7c '|'unsigned char
[0x00000002]0x002afa28 "]ph\n...unsigned char[0x00000004]
        [0x00000000]0x5d ']'unsigned char
        [0x00000001]0x70 'p'unsigned char
        [0x00000002]0x68 'h'unsigned char
        [0x00000003]0x0a '\n'unsigned char
[0x00000003]0x002afa2c "\x17b...unsigned char[0x00000004]
        [0x00000000]0x17 '\x17'unsigned char
        [0x00000001]0x62 'b'unsigned char
        [0x00000002]0xa6 '?'unsigned char
        [0x00000003]0x71 'q'unsigned char

第6轮【轮密钥加】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 "镢\x18\x11...unsigned char[0x00000004]
        [0x00000000]0xef '?'unsigned char
        [0x00000001]0xe3 '?'unsigned char
        [0x00000002]0x18 '\x18'unsigned char
        [0x00000003]0x11 '\x11'unsigned char
[0x00000001]0x002afa24 "i腷^...unsigned char[0x00000004]
        [0x00000000]0x69 'i'unsigned char
        [0x00000001]0xc4 '?'unsigned char
        [0x00000002]0x62 'b'unsigned char
        [0x00000003]0x5e '^'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xeb '?'unsigned char
        [0x00000001]0xd2 '?'unsigned char
        [0x00000002]0x2d '-'unsigned char
        [0x00000003]0xd2 '?'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x40 '@'unsigned char
        [0x00000001]0xf5 '?'unsigned char
        [0x00000002]0x14 '\x14'unsigned char
        [0x00000003]0x3c '<'unsigned char

第7轮【字节替换】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xdf '?'unsigned char
        [0x00000001]0x11 '\x11'unsigned char
        [0x00000002]0xad '?'unsigned char
        [0x00000003]0x82 '?'unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xf9 '?'unsigned char
        [0x00000001]0x1c '\x1c'unsigned char
        [0x00000002]0xaa '?'unsigned char
        [0x00000003]0x58 'X'unsigned char
[0x00000002]0x002afa28 "榈氐...unsigned char[0x00000004]
        [0x00000000]0xe9 '?'unsigned char
        [0x00000001]0xb5 '?'unsigned char
        [0x00000002]0xd8 '?'unsigned char
        [0x00000003]0xb5 '?'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x09 '\t'unsigned char
        [0x00000001]0xe6 '?'unsigned char
        [0x00000002]0xfa '?'unsigned char
        [0x00000003]0xeb '?'unsigned char

第7轮【行位移】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xdf '?'unsigned char
        [0x00000001]0x11 '\x11'unsigned char
        [0x00000002]0xad '?'unsigned char
        [0x00000003]0x82 '?'unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x1c '\x1c'unsigned char
        [0x00000001]0xaa '?'unsigned char
        [0x00000002]0x58 'X'unsigned char
        [0x00000003]0xf9 '?'unsigned char
[0x00000002]0x002afa28 "氐榈...unsigned char[0x00000004]
        [0x00000000]0xd8 '?'unsigned char
        [0x00000001]0xb5 '?'unsigned char
        [0x00000002]0xe9 '?'unsigned char
        [0x00000003]0xb5 '?'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xeb '?'unsigned char
        [0x00000001]0x09 '\t'unsigned char
        [0x00000002]0xe6 '?'unsigned char
        [0x00000003]0xfa '?'unsigned char

第7轮【列混合】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 "瞷...unsigned char[0x00000004]
        [0x00000000]0xb2 '?'unsigned char
        [0x00000001]0x7b '{'unsigned char
        [0x00000002]0xa6 '?'unsigned char
        [0x00000003]0x40 '@'unsigned char
[0x00000001]0x002afa24 "撣U...unsigned char[0x00000004]
        [0x00000000]0x7f ''unsigned char
        [0x00000001]0x93 '?'unsigned char
        [0x00000002]0xdb '?'unsigned char
        [0x00000003]0x55 'U'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x4e 'N'unsigned char
        [0x00000001]0xd1 '?'unsigned char
        [0x00000002]0x0d '\r'unsigned char
        [0x00000003]0x1f '\x1f'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x73 's'unsigned char
        [0x00000001]0x3e '>'unsigned char
        [0x00000002]0x8a '?'unsigned char
        [0x00000003]0x3e '>'unsigned char

第7轮【轮密钥加】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 "硌鎯...unsigned char[0x00000004]
        [0x00000000]0xed '?'unsigned char
        [0x00000001]0xd1 '?'unsigned char
        [0x00000002]0xe6 '?'unsigned char
        [0x00000003]0x83 '?'unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xb6 '?'unsigned char
        [0x00000001]0xd1 '?'unsigned char
        [0x00000002]0x17 '\x17'unsigned char
        [0x00000003]0xbb '?'unsigned char
[0x00000002]0x002afa28 "\x1b&縰...unsigned char[0x00000004]
        [0x00000000]0x1b '\x1b'unsigned char
        [0x00000001]0x26 '&'unsigned char
        [0x00000002]0xbf '?'unsigned char
        [0x00000003]0x75 'u'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xc8 '?'unsigned char
        [0x00000001]0x12 '\x12'unsigned char
        [0x00000002]0x14 '\x14'unsigned char
        [0x00000003]0xed '?'unsigned char

第8轮【字节替换】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 "U>庫...unsigned char[0x00000004]
        [0x00000000]0x55 'U'unsigned char
        [0x00000001]0x3e '>'unsigned char
        [0x00000002]0x8e '?'unsigned char
        [0x00000003]0xec '?'unsigned char
[0x00000001]0x002afa24 "N>痍...unsigned char[0x00000004]
        [0x00000000]0x4e 'N'unsigned char
        [0x00000001]0x3e '>'unsigned char
        [0x00000002]0xf0 '?'unsigned char
        [0x00000003]0xea '?'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xaf '?'unsigned char
        [0x00000001]0xf7 '?'unsigned char
        [0x00000002]0x08 '\b'unsigned char
        [0x00000003]0x9d '?'unsigned char
[0x00000003]0x002afa2c "枭鶸...unsigned char[0x00000004]
        [0x00000000]0xe8 '?'unsigned char
        [0x00000001]0xc9 '?'unsigned char
        [0x00000002]0xfa '?'unsigned char
        [0x00000003]0x55 'U'unsigned char

第8轮【行位移】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 "U>庫...unsigned char[0x00000004]
        [0x00000000]0x55 'U'unsigned char
        [0x00000001]0x3e '>'unsigned char
        [0x00000002]0x8e '?'unsigned char
        [0x00000003]0xec '?'unsigned char
[0x00000001]0x002afa24 ">痍N...unsigned char[0x00000004]
        [0x00000000]0x3e '>'unsigned char
        [0x00000001]0xf0 '?'unsigned char
        [0x00000002]0xea '?'unsigned char
        [0x00000003]0x4e 'N'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x08 '\b'unsigned char
        [0x00000001]0x9d '?'unsigned char
        [0x00000002]0xaf '?'unsigned char
        [0x00000003]0xf7 '?'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x55 'U'unsigned char
        [0x00000001]0xe8 '?'unsigned char
        [0x00000002]0xc9 '?'unsigned char
        [0x00000003]0xfa '?'unsigned char

第8轮【列混合】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xb5 '?'unsigned char
        [0x00000001]0x02 '\x2'unsigned char
        [0x00000002]0x44 'D'unsigned char
        [0x00000003]0x1c '\x1c'unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x64 'd'unsigned char
        [0x00000001]0x91 '?'unsigned char
        [0x00000002]0x62 'b'unsigned char
        [0x00000003]0x88 '?'unsigned char
[0x00000002]0x002afa28 "勌aB...unsigned char[0x00000004]
        [0x00000000]0x84 '?'unsigned char
        [0x00000001]0xcc '?'unsigned char
        [0x00000002]0x61 'a'unsigned char
        [0x00000003]0x42 'B'unsigned char
[0x00000003]0x002afa2c "c銭y...unsigned char[0x00000004]
        [0x00000000]0x63 'c'unsigned char
        [0x00000001]0xe4 '?'unsigned char
        [0x00000002]0x45 'E'unsigned char
        [0x00000003]0x79 'y'unsigned char

第8轮【轮密钥加】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x42 'B'unsigned char
        [0x00000001]0x5f '_'unsigned char
        [0x00000002]0x59 'Y'unsigned char
        [0x00000003]0xc2 '?'unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xaf '?'unsigned char
        [0x00000001]0x18 '\x18'unsigned char
        [0x00000002]0x27 '''unsigned char
        [0x00000003]0x23 '#'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xb7 '?'unsigned char
        [0x00000001]0x08 '\b'unsigned char
        [0x00000002]0x17 '\x17'unsigned char
        [0x00000003]0x5e '^'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xf6 '?'unsigned char
        [0x00000001]0x5d ']'unsigned char
        [0x00000002]0x62 'b'unsigned char
        [0x00000003]0x8d '?'unsigned char

 

第9轮【字节替换】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 ",纤%...unsigned char[0x00000004]
        [0x00000000]0x2c ','unsigned char
        [0x00000001]0xcf '?'unsigned char
        [0x00000002]0xcb '?'unsigned char
        [0x00000003]0x25 '%'unsigned char
[0x00000001]0x002afa24 "y&...unsigned char[0x00000004]
        [0x00000000]0x79 'y'unsigned char
        [0x00000001]0xad '?'unsigned char
        [0x00000002]0xcc '?'unsigned char
        [0x00000003]0x26 '&'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xa9 '?'unsigned char
        [0x00000001]0x30 '0'unsigned char
        [0x00000002]0xf0 '?'unsigned char
        [0x00000003]0x58 'X'unsigned char
[0x00000003]0x002afa2c "BL猐...unsigned char[0x00000004]
        [0x00000000]0x42 'B'unsigned char
        [0x00000001]0x4c 'L'unsigned char
        [0x00000002]0xaa '?'unsigned char
        [0x00000003]0x5d ']'unsigned char

第9轮【行位移】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 ",纤%...unsigned char[0x00000004]
        [0x00000000]0x2c ','unsigned char
        [0x00000001]0xcf '?'unsigned char
        [0x00000002]0xcb '?'unsigned char
        [0x00000003]0x25 '%'unsigned char
[0x00000001]0x002afa24 "&y...unsigned char[0x00000004]
        [0x00000000]0xad '?'unsigned char
        [0x00000001]0xcc '?'unsigned char
        [0x00000002]0x26 '&'unsigned char
        [0x00000003]0x79 'y'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xf0 '?'unsigned char
        [0x00000001]0x58 'X'unsigned char
        [0x00000002]0xa9 '?'unsigned char
        [0x00000003]0x30 '0'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x5d ']'unsigned char
        [0x00000001]0x42 'B'unsigned char
        [0x00000002]0x4c 'L'unsigned char
        [0x00000003]0xaa '?'unsigned char

第9轮【列混合】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x19 '\x19'unsigned char
        [0x00000001]0xd0 '?'unsigned char
        [0x00000002]0x02 '\x2'unsigned char
        [0x00000003]0x5b '['unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x3b ';'unsigned char
        [0x00000001]0xe6 '?'unsigned char
        [0x00000002]0x2b '+'unsigned char
        [0x00000003]0x2d '-'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x9d '?'unsigned char
        [0x00000001]0x75 'u'unsigned char
        [0x00000002]0x70 'p'unsigned char
        [0x00000003]0xd9 '?'unsigned char
[0x00000003]0x002afa2c "揨Qi...unsigned char[0x00000004]
        [0x00000000]0x93 '?'unsigned char
        [0x00000001]0x5a 'Z'unsigned char
        [0x00000002]0x51 'Q'unsigned char
        [0x00000003]0x69 'i'unsigned char

第9轮【轮密钥加】执行完state[4][4]结果为 

 

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x97 '?'unsigned char
        [0x00000001]0x03 '\x3'unsigned char
        [0x00000002]0xcc '?'unsigned char
        [0x00000003]0x4b 'K'unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x6c 'l'unsigned char
        [0x00000001]0x38 '8'unsigned char
        [0x00000002]0xb0 '?'unsigned char
        [0x00000003]0x1d '\x1d'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x11 '\x11'unsigned char
        [0x00000001]0x3d '='unsigned char
        [0x00000002]0x4e 'N'unsigned char
        [0x00000003]0xfb '?'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x1b '\x1b'unsigned char
        [0x00000001]0x6b 'k'unsigned char
        [0x00000002]0x47 'G'unsigned char
        [0x00000003]0x8b '?'unsigned char

 

第10轮【字节替换】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x88 '?'unsigned char
        [0x00000001]0x7b '{'unsigned char
        [0x00000002]0x4b 'K'unsigned char
        [0x00000003]0xb3 '?'unsigned char
[0x00000001]0x002afa24 "P\a绀...unsigned char[0x00000004]
        [0x00000000]0x50 'P'unsigned char
        [0x00000001]0x07 '\a'unsigned char
        [0x00000002]0xe7 '?'unsigned char
        [0x00000003]0xa4 '?'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x82 '?'unsigned char
        [0x00000001]0x27 '''unsigned char
        [0x00000002]0x2f '/'unsigned char
        [0x00000003]0x0f '\xf'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xaf '?'unsigned char
        [0x00000001]0x7f ''unsigned char
        [0x00000002]0xa0 '?'unsigned char
        [0x00000003]0x3d '='unsigned char

第10轮【行位移】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x88 '?'unsigned char
        [0x00000001]0x7b '{'unsigned char
        [0x00000002]0x4b 'K'unsigned char
        [0x00000003]0xb3 '?'unsigned char
[0x00000001]0x002afa24 "\a绀P...unsigned char[0x00000004]
        [0x00000000]0x07 '\a'unsigned char
        [0x00000001]0xe7 '?'unsigned char
        [0x00000002]0xa4 '?'unsigned char
        [0x00000003]0x50 'P'unsigned char
[0x00000002]0x002afa28 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x2f '/'unsigned char
        [0x00000001]0x0f '\xf'unsigned char
        [0x00000002]0x82 '?'unsigned char
        [0x00000003]0x27 '''unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x3d '='unsigned char
        [0x00000001]0xaf '?'unsigned char
        [0x00000002]0x7f ''unsigned char
        [0x00000003]0xa0 '?'unsigned char

第10轮【轮密钥加】执行完state[4][4]结果为

名称类型
[0x00000000]0x002afa20 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x34 '4'unsigned char
        [0x00000001]0x14 '\x14'unsigned char
        [0x00000002]0xea '?'unsigned char
        [0x00000003]0x02 '\x2'unsigned char
[0x00000001]0x002afa24 <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0xc3 '?'unsigned char
        [0x00000001]0xfd '?'unsigned char
        [0x00000002]0x25 '%'unsigned char
        [0x00000003]0xe1 '?'unsigned char
[0x00000002]0x002afa28 ";S鄃...unsigned char[0x00000004]
        [0x00000000]0x3b ';'unsigned char
        [0x00000001]0x53 'S'unsigned char
        [0x00000002]0xe0 '?'unsigned char
        [0x00000003]0x67 'g'unsigned char
[0x00000003]0x002afa2c <字符串中的字符无效。>unsigned char[0x00000004]
        [0x00000000]0x7f ''unsigned char
        [0x00000001]0xdc '?'unsigned char
        [0x00000002]0x1a '\x1a'unsigned char
        [0x00000003]0x27 '''unsigned char

 最后排布到一个数组中就是密文Cypher[16]

名称类型
Cypher0x00f0c288 <字符串中的字符无效。>unsigned char[0x00000010]
[0x00000000]0x34 '4'unsigned char
[0x00000001]0xc3 '?'unsigned char
[0x00000002]0x3b ';'unsigned char
[0x00000003]0x7f ''unsigned char
[0x00000004]0x14 '\x14'unsigned char
[0x00000005]0xfd '?'unsigned char
[0x00000006]0x53 'S'unsigned char
[0x00000007]0xdc '?'unsigned char
[0x00000008]0xea '?'unsigned char
[0x00000009]0x25 '%'unsigned char
[0x0000000a]0xe0 '?'unsigned char
[0x0000000b]0x1a '\x1a'unsigned char
[0x0000000c]0x02 '\x2'unsigned char
[0x0000000d]0xe1 '?'unsigned char
[0x0000000e]0x67 'g'unsigned char
[0x0000000f]0x27 '''unsigned char

其实不用10轮全看,基本上前4轮结论都对那基本就没问题了,最后贴一张全流程图以供参考

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/51936
推荐阅读
相关标签
  

闽ICP备14008679号