有关AES高级加密标准的总结

背景

DES(Data Encryption Standard)

1977年被美国国家标准局提出(NIST)。它是密码学历史上第一个广泛应用于商用数据保密的密码算法,并开创了公开密码算法的先例,极大地促进了密码学的发展。是一种分组密码,属于对称密码。

输入

  • 64位明文分组长度及56位的有效密钥长度,密钥长度为64位,有8位奇偶校验位。

过程

三个阶段:

  1. 64位明文经过初始置换,将其分为左右两组。
  2. 在密钥的参与下对左右两侧进行16轮相同轮函数的迭代,每轮都有置换和迭代,轮函数的具体过程和Feistel密码一样。
  3. 最后再经逆置换得到64位密文。

有关具体细节现在先不说了,当然其中还使用了S盒。

  • 初始置换表就是指定了一个排列顺序,然后最后一步的逆置换表是初始置换表的逆。
  • 对64位密钥的处理,首先是取出8位奇偶校验位,然后经过循环左移和置换操作进行处理
  • S盒的目的其实就是一个置换表

AES(Advance Encryption Standard)

整体结构是首先对明文进行轮密钥相加,然后进行9轮处理,每轮包含四个步骤:字节代换、行移位、列混合、轮密钥加。再加最后一轮只有三个步骤:字节代换、行移位、轮密钥加,得到最终密文。解密过程就是加密过程的逆向进行,不同之处在于其中的字节代换是取的逆S盒,行移位方向相反,列混合是与逆变换矩阵相乘。下面具体说一下这四个步骤。

加密分为四个步骤:

  • 字节代换: 主要是根据每个字节的前四位为行,后四位为列在S中找对应的元素进行代替
  • 行移位: 简单的循环左移操作,以字节为单位,第0行不动,第1行循环左移1字节,依次左移。。。
  • 列混合 :是通过矩阵相乘实现的,解密是乘逆变换矩阵。
  • 轮密钥加: 将明文与轮密钥进行逐位的异或运算。

猜你喜欢

转载自blog.csdn.net/qq_35324057/article/details/107348147