版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第5章章 高级加密标准高级加密标准AES主要内容主要内容nAES的起源的起源nAES的评估的评估nAES密码密码AES的起源的起源nNIST在在1999年发布了一个新版本的年发布了一个新版本的DES(FIPS PUB 46-3)指出指出DES仅能用于遗留的系统,同时仅能用于遗留的系统,同时3DES将取代将取代DES成为新成为新 标准;标准;n3DES优点优点n密钥长度是密钥长度是128位,克服位,克服DES面临的穷举攻击问题;面临的穷举攻击问题;n底层加密算法和底层加密算法和DES相同,对密码分析攻击具有很强的免疫力。相同,对密码分析攻击具有很强的免疫力。n3DES缺点缺点n硬件硬件实现设计
2、,实现设计,软件实现算法速度慢软件实现算法速度慢;n分组长度依然是分组长度依然是64位,就效率和安全性而言,分组长度应该更长位,就效率和安全性而言,分组长度应该更长一些。一些。nNIST在在1997年公开征集新的高级加密标准(年公开征集新的高级加密标准(AES),要求安全性能),要求安全性能不低于不低于3DES同时具有更好的执行性能。同时具有更好的执行性能。nNIST在在2001年年11月完成了评估并发布了最终标准(月完成了评估并发布了最终标准(FIPS PUB 197),),选择选择Rijndael作为作为AES算法算法,其作者是比利时密码学家,其作者是比利时密码学家Joan Daemen博
3、士和博士和Vincent Rijmen博士。博士。AES的评估的评估n算法征集时准则中的三个类别:算法征集时准则中的三个类别:安全性、成本、算法和执行安全性、成本、算法和执行特征特征。n安全性安全性n指用密码分析方法分析一个算法所需的代价;指用密码分析方法分析一个算法所需的代价;n成本成本nNIST期望期望AES能够广泛应用于能够广泛应用于各种实际应用各种实际应用,因此,因此AES必须具有必须具有很很高的计算效能高的计算效能;n算法和执行特征算法和执行特征n算法灵活性,适用于多种硬件和软件方式实现以及使算法的简洁性,算法灵活性,适用于多种硬件和软件方式实现以及使算法的简洁性,即更便于分析算法的
4、安全性;即更便于分析算法的安全性;n具体参考(具体参考(p97-99)AES密码密码nRijndael是一种带有是一种带有可变块长和可变密钥可变块长和可变密钥长度的长度的迭代分组加密方法,其分组长度和密钥长度都是可迭代分组加密方法,其分组长度和密钥长度都是可变的。变的。n分组长度为分组长度为128位位n密钥长度为密钥长度为128位、位、192位或位或256位位n相应迭代轮数为相应迭代轮数为10、12和和14nRijndael具有如下特性:具有如下特性:n所有已知的攻击具有免疫性所有已知的攻击具有免疫性n在各种平台上,其执行速度快而且代码紧凑在各种平台上,其执行速度快而且代码紧凑n设计简单设计简
5、单分组长度分组长度(bit)128192256密钥长度密钥长度(bit)128192256表 1. 分组长度和密钥长度的不同取值表 2. 轮数(Round)的不同取值轮数轮数(Round)Block Length=128Block Length=192Block Length=256Key Length=128101214Key Length=192121214Key Length=256141414AES密码总体架构密码总体架构9n明文明文16字节字节(128位位) 密钥密钥M字节字节初始变换第一轮(4种变换)密钥扩展输入state(16字节)初始变换后的state(16字节)第一轮的输出(
6、16字节)第0轮的密钥 (16字节)第1轮的密钥 (16字节)10第N-1轮(4种变换)第N轮(3种变换)密钥扩展第N-1轮输出的state(16字节)最后的state(16字节)密文16字节(128位)第N-1轮输出的state(16字节)第N-1轮的密钥 (16字节)第N轮的密钥 (16字节)轮数密钥长度 (字节)101612241432输入、输入、State数据组和输出数据组和输出n输入的明文(输入的明文(128)位)位被分成被分成16个字节,按列个字节,按列(4个字个字节节)依次存放在输入矩阵中(依次存放在输入矩阵中(input bytes););n输入字节和状态矩阵的转换规则输入字节
7、和状态矩阵的转换规则为:为:n状态矩阵和输出字节的转换规则状态矩阵和输出字节的转换规则为:为:Nbcrcrincrs0,404,4crscrout状态数组状态数组n状态数组中每一列的状态数组中每一列的四四个字节个字节形成了一个形成了一个32位位的字的字;n状态数组就是状态数组就是32位字的位字的一维数组一维数组w0 w1 w2 w3 ;n其中行号其中行号r为字中四个字为字中四个字节的索引,列号节的索引,列号c为数组为数组的索引;的索引;3,33,23, 13,032,32,22, 12,021 ,31 ,21 , 11 ,010,30,20, 10,00sssswsssswsssswssssw
8、AES密钥长度和执行轮数密钥长度和执行轮数n密钥长度为密钥长度为128、192和和256,对应的,对应的Nk=4、6和和8n轮数取决于密钥的长度,分别为:轮数取决于密钥的长度,分别为:Nr=10、12和和14每一轮每一轮n每一轮由每一轮由4个不同的阶段构成:个不同的阶段构成:n字节代换(字节代换(byte substitution):用一个):用一个S-盒完成分组盒完成分组中的按字节代换;中的按字节代换;n行移位(行移位(shifting rows of the State arrary):一个简):一个简单的置换;单的置换;n列混淆(列混淆(mixing the data within ea
9、ch Column of the State arrary):一个利用在域():一个利用在域(GF(28))上的算)上的算术特性的代换;术特性的代换;n轮密钥加(轮密钥加(adding a Round Key to the State):利用):利用当前分组和扩展密钥的一部分进行按位异或(当前分组和扩展密钥的一部分进行按位异或(XOR)。)。AES加密(伪代码)加密(伪代码)字节代换(字节代换(SubBytes())n字节代换字节代换是是非线性字节代换非线性字节代换,使用一个,使用一个S-盒盒独立地操作在独立地操作在状态数组的每个字节上状态数组的每个字节上。nS-盒,可逆的,主要由两个转换构成
10、:盒,可逆的,主要由两个转换构成:n根据有限域(根据有限域(GF(28))上的乘法逆,元素)上的乘法逆,元素00影射到起自身;影射到起自身;n在有限域(在有限域(GF(28))上应用如下:其中)上应用如下:其中bi是字是字节的第节的第i位,位,ci是字节值为是字节值为63或或01100011的字节的第的字节的第i位。位。字节代换(字节代换(SubBytes())n以矩阵的形式,以矩阵的形式,S-盒的字节转换表示为:盒的字节转换表示为:字节代换(字节代换(SubBytes())n例,例,s1,1=53,字节的高,字节的高4位为行值,低位为行值,低4位为列值。代位为列值。代换的值在换的值在S-盒的
11、盒的5行行3列列,也就是,也就是s1,1=ed行移位行移位(ShiftRows()n在行移位转换中,状态数组中的在行移位转换中,状态数组中的最后三行字最后三行字节循环移位不同数目的字节节循环移位不同数目的字节,第一行,第一行r=0;n其中其中shift(r,Nb)取决于行号取决于行号r,如果,如果Nb=4那么那么行移位行移位(ShiftRows()列混淆(列混淆(MixColumns())n列混淆以列列的方式操作状态数组列混淆以列列的方式操作状态数组,将每列看作是一个,将每列看作是一个4项项目的多项式,列看作是(目的多项式,列看作是(GF(28))上的多项式和模()上的多项式和模(x4+1)的
12、多项式的多项式a(x)相乘。相乘。列混淆(列混淆(MixColumns())n这个乘法的结果,就是一列中的四个字节被如下替换:这个乘法的结果,就是一列中的四个字节被如下替换:列混淆(列混淆(MixColumns())轮密钥加(轮密钥加(AddRoundKey())n每轮密钥包括密钥表中的每轮密钥包括密钥表中的Nb个字,并且将它个字,并且将它们依次和到状态数组中的列相加。们依次和到状态数组中的列相加。轮密钥加(轮密钥加(AddRoundKey())密钥扩展(密钥扩展(Key Expansion)n密钥密钥K经过扩展后,产生经过扩展后,产生Nb(Nr+1)个字,个字,结果的密钥表包括结果的密钥表包
13、括4字节字的线性数组,表字节字的线性数组,表示为示为wi,n输入密钥直接被复制到输入密钥直接被复制到扩展密钥数组扩展密钥数组的的前四个字前四个字,然后每次用四个字填充扩展密钥数组余下的部分。然后每次用四个字填充扩展密钥数组余下的部分。ntemp中涉及功能:中涉及功能:n字循环的功能是使一个字循环的功能是使一个字中的四个字节循环左移一个字字中的四个字节循环左移一个字节节,即输入,即输入b0, b1, b2, b3变换成变换成b1, b2, b3 , b0;n字节代换利用字节代换利用S盒盒对输入字中的每个字节进行字节代换;对输入字中的每个字节进行字节代换;n1,2的结果再与轮常量的结果再与轮常量R
14、conj相异或。相异或。n轮常量是一个字,这个字最后边三个字节总是轮常量是一个字,这个字最后边三个字节总是0,每轮的轮常量均不相同每轮的轮常量均不相同,其中,其中Rconj=(RCj,0,0,0),), RC1=1, RCj=2 RCj-1密钥扩展(密钥扩展(Key Expansion)AES 的密钥扩展的密钥扩展 密钥调度包括两个部分:密钥扩展和轮密钥选密钥调度包括两个部分:密钥扩展和轮密钥选取。取。n密钥密钥bit的总数分组长度的总数分组长度(轮数(轮数Round1)例如当分组长度为例如当分组长度为128bits和轮数和轮数Round为为10时时,轮密钥长度为,轮密钥长度为128(101)
15、1408bits。n将密码密钥扩展成一个扩展密钥。将密码密钥扩展成一个扩展密钥。n从扩展密钥中取出轮密钥:第一个轮密钥由扩展从扩展密钥中取出轮密钥:第一个轮密钥由扩展密钥的第一个密钥的第一个Nb个个4字节字,第二个圈密钥由接字节字,第二个圈密钥由接下来的下来的Nb个个4字节字组成,以此类推。字节字组成,以此类推。密钥扩展密钥扩展K0,0K0,1K0,2K0,3K1,0K1,1K1,2K1,3K2,0K2,1K2,2K2,3K3,0K3,1K3,2K3,3K0K1K2K3K0K1K2K3K4K5K6K7+K0K1K2K3K4K5K6K7ByteSubstitutionByteRotate+Rco
16、nWi-4Wi-3Wi-2Wi-1WiByteSubstituionByteRotate+Rcons+Key expansion4 = i 4 ( Rnd + 1 )i mod 4 = 0i mod 4 != 0 轮密钥选取轮密钥选取K0K1K2K3K4K5K6K7K8K9K10K11K12轮密钥0轮密钥1轮密钥2nNk=4逆加密逆加密逆行移位逆行移位(invShiftRows()逆字节代换逆字节代换(InvSubBytes()中中的逆的逆S-盒盒逆逆S-盒字节中字节(盒字节中字节(P105页页证明)证明)iiiiidbbbb8mod)7(8mod)5(8mod)2(0000010105或d输
17、入位和输出位之间不相关输入位和输出位之间不相关输出值不能利用一个简单的数学函数变换输入值得到输出值不能利用一个简单的数学函数变换输入值得到逆列混淆逆列混淆加密举例加密举例(Nb=4, nk=4)555、密钥扩展、密钥扩展n输入密钥直接被复制到扩展密输入密钥直接被复制到扩展密钥数组的前四个字。然后每次钥数组的前四个字。然后每次用四个字填充扩展密钥数组余用四个字填充扩展密钥数组余下的部分。在扩展密钥数组中下的部分。在扩展密钥数组中,每个新增的字,每个新增的字wi依赖于依赖于wi-1和和wi-4。在四种情。在四种情形下,三个使用了异或。对形下,三个使用了异或。对w数组中下标为数组中下标为4的倍数的元
18、素的倍数的元素采用了更复杂的函数来计算。采用了更复杂的函数来计算。K0k4K8K12K1K5K9Kl3K2K6K10K14K3K7K11k15W0 W1 W2 W3W5 W6 W7 W8 g56g函数:函数:n1、字循环的功能是使一、字循环的功能是使一个字中的个字中的4个字节循环左个字节循环左移一个字节,即将输入字移一个字节,即将输入字B0,B1,B2,B3变换成变换成B1,B2,B3,B0。n2、字代替利用、字代替利用S盒对输盒对输入字中的每个字节进行字入字中的每个字节进行字节代替。节代替。n3、将结果与轮常量、将结果与轮常量Rconj相异或。相异或。wSSSSB0 B1 B2 B3wg B1 B2 B3 B0 B1 B2 B3 B0 RCj 0 0 0 字节轮常量字循环字代替57轮常量:轮常量:n轮常量是一个字,这个字的最右边三个字节总轮常量是一个字,这个字的最右边三个字节总为为0。因此字与。因此字与Rcon相异或,其结果只是与相异或,其结果只是与该字最
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年唐山市马家沟耐火材料有限责任公司医院医护人员招聘笔试备考题库及答案解析
- 跨越文化鸿沟:中国企业跨国并购中的文化整合之道
- 2026年贵州省劳动卫生职业病防治所医护人员招聘考试模拟试题及答案详解
- 2026年湛江市霞山区骨伤科医院医护人员招聘笔试备考题库及答案解析
- 2025年上海市杨浦区平凉路街道医院医护人员招聘笔试试题及答案详解
- 2026年陆家嘴社区卫生服务中心医护人员招聘笔试备考题库及答案解析
- 2026年北京市怀柔区中医医院医护人员招聘笔试备考题库及答案解析
- 2026年大同煤矿集团公司二医院医护人员招聘笔试备考题库及答案解析
- 2026年边缘计算销售合同书
- 2026年度一站式宴会服务合同
- 关于共建高校大思政体系推动高校共青团工作高质量发展的实施意见课件
- JGJT46-2024《施工现场临时用电安全技术标准》条文解读
- 废品回收站(点)安全管理制度
- 2024年四川省凉山州五年级数学第二学期期末统考试题含解析
- 物联网技术及其在智能建造中的应用张蕾习题答案
- 树立正确就业观课件
- MOS晶体管基础课件
- 2024年昆明市初中学业质量诊断性检测 地理试卷及答案
- 城管协管员笔试考题试题(含答案)大全五篇
- 国企集团员工调整和不胜任退出暂行管理办法
- 课程思政教学比赛教学设计-食品微生物学
评论
0/150
提交评论