高级数据加密标准.pptVIP

  • 42
  • 0
  • 约1.23万字
  • 约 60页
  • 2021-03-30 发布于广东
  • 举报
2021/3/26 * 复习题 1、对比AES和DES有什么不同? 2、AES的解密算法与加密算法有什么不同? 3、在GF(28)中,01的逆元素是什么? 4、对于字节“ 00”和“ 01”计算S盒的输出。 5、证明c(x)与d(x)互逆,模x4+1。 6、证明:xi mod (x4+1)=xi mod 4 * * * * * * * * * * * * * * * * * * * * * * * * * * * 2021/3/26 * 6、列混合变换 MixColumn(State) b(x)=a(x)c(x) mod x4+1 写成矩阵形式 b0 = 02 03 01 01 a0 b1 = 01 02 03 01 a1 b2 = 01 01 02 03 a2 b3 = 03 01 01 02 a3 四、AES的基本变换 2021/3/26 * 7、轮密钥加变换 AddRoundKey() ① 把轮密钥与状态进行模2相加。 ② 轮密钥根据密钥产生算法产生。 ③ 轮密钥长度等于数据块长度。 四、AES的基本变换 2021/3/26 * ①轮密钥根据密钥产生算法通过用户密 钥得到。 ②密钥产生分两步进行:密钥扩展和轮 密钥选择 ③密钥扩展将用户密钥扩展为一个扩展 密钥。 ④密钥选择从扩展密钥中选出轮密钥。 五、轮密钥生成 2021/3/26 * 1、密钥扩展 ①密钥扩展产生扩展密钥。 ②用一个字元素的一维数组W[Nb*(Nr+1)]表示扩展密钥。 ③用户密钥放在数组最开始的Nk个字中。 ④其它的字由它前面的字经过处理后得到。 ⑤有 Nk≤6 和 Nk6 两种密钥扩展算法。 五、轮密钥生成 2021/3/26 * 1、密钥扩展 ⑴ Nk≤6 的密钥扩展 ①最前面的Nk个字是由用户密钥填充的。 ②之后的每一个字W[j]等于前面的字W[j-1]与Nk 个位置之前的字W[j-Nk]的异或。 ③而且对于Nk的整数倍的位置处的字,在异或之前,对W[j-1]进行Rotl变换和ByteSub变换,再异或一个轮常数Rcon 。 五、轮密钥生成 2021/3/26 * 五、轮密钥生成 W0 W1 W2 … WNk-1 WNk WNk+1 … 用户密钥 当 j 不是Nk的整数倍时: Wj=Wj-Nk ⊕ Wj-1 当 j 是Nk的整数倍时: Wj=Wj-Nk ⊕ByteSub (Rotl ( Wj-1) )⊕ Rcon[j/Nk]; 2021/3/26 * 说明: Rotl是一个字里的字节以字节为单位循环左移位函数,设W=(A,B,C,D),则Rotl(W)=(B,C,D,A)。 轮常数Rcon与Nk无关,且定义为: Rcon[i] = (RC[i],‘ 00’,‘ 00’,‘ 00’) RC[0] = ‘ 01’ RC[i] = xtime(RC[i-1]) 五、轮密钥生成 2021/3/26 * 1、密钥扩展 ⑵ Nk6 的密钥扩展 说明: 与Nk≤6 的密钥扩展相比, Nk6 的密钥扩展的不同之处在于:如果j被Nk除的余数=4,则在异或之前,对W[j-1]进行ByteSub变换。 增加了ByteSub变换 。因为当Nk6时密钥很长,仅仅对Nk的整数倍的位置处的字进行ByteSub变换,就显得ByteSub变换的密度较稀,安全程度不够强。 五、轮密钥生成 2021/3

文档评论(0)

1亿VIP精品文档

相关文档