描述aes算法
AES是分组密钥,算法输入128位数据,密钥长度也是128位。用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表1所列)。每一轮都需要一个与输入分组具有相同长度的扩展密钥Expandedkey(i)的参与。由于外部输入的加密密钥K长度有限,所以在算法中要用一个密钥扩展程序(Keyexpansion)把外部密钥K扩展成更长的比特串,以生成各轮的加密和解密密钥。x0dx0a1.1圈变化x0dx0aAES每一个圈变换由以下三个层组成:x0dx0a非线性层——进行Subbyte变换;x0dx0a线行混合层——进行ShiftRow和MixColumn运算;x0dx0a密钥加层——进行AddRoundKey运算。x0dx0a① Subbyte变换是作用在状态中每个字节上的一种非线性字节转换,可以通过计算出来的S盒进行映射。x0dx0ax0dx0a② ShiftRow是一个字节换位。它将状态中的行按照不同的偏移量进行循环移位,而这个偏移量也是根据Nb的不同而选择的[3]。x0dx0ax0dx0a③ 在MixColumn变换中,把状态中的每一列看作GF(28)上的多项式a(x)与固定多项式c(x)相乘的结果。 b(x)=c(x)*a(x)的系数这样计算:x0dx0a*运算不是普通的乘法运算,而是特殊的运算,即 b(x)=c(x)·a(x)(mod x4+1) 对于这个运算 b0=02。a0+03。a1+a2+a3 令xtime(a0)=02。a0x0dx0a其中,符号“。”表示模一个八次不可约多项式的同余乘法[3]。x0dx0ax0dx0a对于逆变化,其矩阵C要改变成相应的D,即b(x)=d(x)*a(x)。x0dx0a④ 密钥加层运算(addround)是将圈密钥状态中的对应字节按位“异或”。x0dx0ax0dx0a⑤ 根据线性变化的性质[1],解密运算是加密变化的逆变化。
Ⅱ aes算法是什么
AES:Advanced Encryption Standard(高级加密标准),是美国国家标准与技术研究所用于加密电子数据的规范,该算法汇聚了设计简单、密钥安装快、需要的内存空间少、在所有的平台上运行良好、支持并行处理并且可以抵抗所有已知攻击等优点。
AES是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。
AES具有应用范围广
等待时间短、相对容易隐藏、吞吐量高等优点,在性能等各方面都优于WEP算法。利用此算法加密,WLAN的安全性将会获得大幅度提高。AES算法已经在802.11i标准中得到最终确认,成为取代WEP的新一代的加密算法。但是由于AES算法对硬件要求比较高,因此AES无法通过在原有设备上升级固件实现,必须重新设计芯片。
以上内容参考:网络-AES技术
Ⅲ 简述aes算法的加密过程
AES加密过程涉及到 4 种操作,分别是字节替代、行移位、列混淆和轮密钥加。
1.字节替换:字节代替的主要功能是通过S盒完成一个字节到另外一个字节的映射。
2.行移位:行移位的功能是实现一个4x4矩阵内部字节之间的置换。
4.轮密钥加:加密过程中,每轮的输入与轮密钥异或一次(当前分组和扩展密钥的一部分进行按位异或);因为二进制数连续异或一个数结果是不变的,所以在解密时再异或上该轮的密钥即可恢复输入。
5.密钥扩展:其复杂性是确保算法安全性的重要部分。当分组长度和密钥长度都是128位时,AES的加密算法共迭代10轮,需要10个子密钥。AES的密钥扩展的目的是将输入的128位密钥扩展成11个128位的子密钥。AES的密钥扩展算法是以字为一个基本单位(一个字为4个字节),刚好是密钥矩阵的一列。因此4个字(128位)密钥需要扩展成11个子密钥,共44个字。