收藏 分享(赏)

AES算法原理.ppt

上传人:hwpkd79526 文档编号:7321416 上传时间:2019-05-14 格式:PPT 页数:22 大小:2.40MB
下载 相关 举报
AES算法原理.ppt_第1页
第1页 / 共22页
AES算法原理.ppt_第2页
第2页 / 共22页
AES算法原理.ppt_第3页
第3页 / 共22页
AES算法原理.ppt_第4页
第4页 / 共22页
AES算法原理.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、AES算法原理及实现,2015.4.20,AES算法简介,AES(The Advanced Encryption Standard),又称Rijndael加密法,该演算法为比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijdael命名。是美国联邦政府采用的一种分块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加

2、密中最流行的演算法之一。它被预期能成为人们公认的加密包括金融、电信和政府数字信息的方法。美国国家标准与技术研究所(NIST)在2002年5月26日建立了新的高级数据加密标准(AES)规范。 AES 是一个新的可以用于保护电子数据的加密算法。明确地说,AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据 的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换(permutations )和替换(subs

3、titutions)输入数据。,AES算法描述,AES 算法是基于置换和代替的。置换是数据的重新排列,而代替是用一个单元数据替换另一个。AES 使用了几种不同的技术来实现置换和替换,包括: 字节代换(SubBytes),行循环移位(ShiftRows),列混合(MixColumn)运算,密钥加(AddRoundKey)。,表 1-1 AES的密钥长度和加密轮数列表,图 1-1 AES的加密/解密流程图,密文输出,轮密钥加,明文输入,密钥,扩展密钥,第1轮,第9轮,第10轮,第10轮,第9轮,第1轮,4,7,36,39,40,43,0,3,字节代换,行移位,列混合,列混合,行移位,字节代换,字节

4、代换,轮密钥加,轮密钥加,行移位,轮密钥加,密文输入,明文输出,轮密钥加,逆字节代换,逆列混合,逆行移位,逆字节代换,逆字节代换,逆行移位,轮密钥加,逆行移位,逆列混合,轮密钥加,轮密钥加,1.字节代换(byteSub),字节代换是非线性变换,独立地岁状态的每个字节进行。代换表(即S-盒)是可逆的,由以下两个变换得到: 首先,将字节看作GF(28)上的元素,映射到自己的乘法逆元,00映射到自己。 其次,对字节做如下的(GF(2)上的,可逆的)仿射变换:,y0 y1 y2 y3 y4 y5 y6 y7,1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1

5、 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1,x0 x1 x2 x3 x4 x5 x6 x7,1 1 0 0 0 1 1 0,=,x,字节代换,状态矩阵按照下面的方式映射成为一个新的字节: 把该字节的高4位作为行值,低4位作为列值,得到S盒或逆S盒的对应元素作为输出。 例如输入字节0x12,取S盒的第0x01行盒0x02列,得到0xC9。,字节代换(ByteSub),S盒,aij,bij,2.行移位(ShiftRow),在行循环移位变换中,状态阵列的后3行循环移位不同的偏移量。第

6、0行不移动。第1行循环移位C1字节,第2行循环移位C2字节,第3行循环移位C3字节。 偏移量C1、C2、C3与分组长度Nb有关,如下表所示:,行移位示意图,左移0位,左移1位,左移2位,左移3位,3.列混合(MixColumn),列混合运算将状态(State)的列看作是有限域GF(28)上的多项式a(x),与多项式c(x) = 03 x3 + 01 x2 + 01 x +02相乘(在模(x41)下)。 b(x)=c(x) x a(x)(mod x4 + 1),b0b1b2b3,=,02 03 01 0101 02 03 0101 01 02 0303 01 01 02,a0a1a2a3,图 1

7、-2 列混合运算示意图,a0j,a1j,a3j,a2j,b0j,b1j,b3j,b2j,c(x),4.密钥加,密钥加是将轮密钥简单地与状态进行逐比特异或。轮密钥由种子密钥通过密钥编排算法得到,轮密钥长度等于分组长度Nb。,=,图 1-3 密钥加运算示意图,AES的密钥调度,密钥bit的总数 = 分组长度 x ( 轮数Round + 1 ) 当分组长度为128bit且轮数为10时,轮密钥长度为: 128 x ( 10 + 1 ) = 1408 bit 将初始密钥扩展成扩展密钥 轮密钥从扩展密钥中取,第1轮轮密钥取扩展密钥的前Nb个字,第2轮轮密钥取接下来的Nb个字,以此类推。,密钥扩展,密钥扩展

8、,以128bit为例,对数组扩充40个新列,构成总共44列的扩展密钥数组。新列按照以下的方式递归产生: (1) 如果i不是4的倍数,那么第i列由等式i= i-4 i-1 确定; (2) 如果i是4的倍数,那么第i列由等式i= i-4 T(i-1) 确定;,AES密钥扩展图,T,密钥扩展,函数T由三部分组成:字循环移位、字节代换和轮常量异或。 (1)字循环移位:将1个字中的4个字节循环左移1个字节,即将输入字b0, b1 , b2 , b3变换为b1, b2 , b3 , b0。 (2)字节代换:对字循环的结果使用S盒进行字节代换。 (3)轮常量异或:将前两步的结果同轮常量Rconj进行异或,其中j表示轮数。 轮常量是一个字,使用轮常量是为了防止不同轮中产生的轮密钥的对称性或相似性。,表 1-9 轮常量值表,表 1 3 S盒置换表,表 1 4 逆S盒置换表,谢谢观看!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报