- 1、本文档共133页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
*/129 (三)AES加密时的轮变换:(由三个部分组成) (1)初始轮密钥加法; (2)中间轮轮变换; (3)最后轮轮变换。其中轮变换由前面四个不同的变换组成。 设输入明文、密文数据块为IB、OB (128bit,16个字节) ,且共有Nr轮变换。Ii为第i轮输入,ERKi为第i轮加密密钥。 1. 初始轮密钥加法: I1= AddRoundKey(IB, ERK0) = IB⊕ ERK0 2. 中间轮变换 ( i =1~Nr-1) 用伪代码描述为: RoundTransformation(Ii, ERKi) ; { Temp1=ByteSub(Ii) ; 对每个字节均作相应替换 Temp2= ShiftRows(Temp1); Temp3= MixColumns(Temp2); Oi= AddRoundKey(Temp3, ERKi); } */129 3. 最后轮(第 Nr轮)变换 用伪代码描述为: FinalTransformation(INr, ERKNr) ; { Temp1=ByteSub(INr); Temp2= ShiftRows(Temp1); OB= AddRoundKey(Temp2, ERKNr); } 第Nr轮输入INr ByteSub ShiftRows AddRoundKey 第Nr轮输出OB 第Nr轮加密密钥ERKNr Temp1 Temp2 ERK0 IB AddRoundKey I1 第i轮输出Oi 第 i 轮输入Ii ByteSub ShiftRows MixColumns AddRoundKey 第i轮加密密钥ERKi Temp1 Temp2 Temp3 中间轮变换 ( i =1~Nr-1) AES加密时的轮变换(续) 加密算法用伪代码描述如右图 四川大学电子信息学院 */129 (四)AES解密时的轮变换 AES的解密过程将使用前面四种交换的逆变换函数,即: InvSubBytes():对应函数SubBytes() InvShifRows():对应函数ShifRows() InvMixColumns():对应函数MixColumns() 固定多项式取为a (x) = {0B}x3 + {0D}x2 + {09}x + {0E} 对应4字节向量为( 0B 0D 09 0E),是MixColumns函数固定多项式 {03} x3+{01} x2+{01}x +{02}的逆多项式,模为(x4 + 1) ; AddRoundKey():与逆变换函数相同。 4种函数以与加密过程相反的顺序对由密文映射得到状态矩阵进行变换,当然解密时每轮变换用的轮密钥和加密时的一样,但顺序相反。加、解密过程应该对应为(下页): 四川大学电子信息学院 */129 第Nr轮输入INr ByteSub ShiftRows AddRoundKey 第Nr轮输出OB 第Nr轮加密密钥ERKNr Temp1 Temp2 ERK0 IB AddRoundKey I1 第i轮输出Oi 第 i 轮输入Ii ByteSub ShiftRows MixColumns AddRoundKey 第i轮加密密钥ERKi Temp1 Temp2 Temp3 中间轮变换 ( i =1~Nr-1) 密文数据块 明文数据块 加密过程 加密第i轮输出Oi InvByteSub InvShiftRows InvMixColumns AddRoundKey 第i轮加密密钥ERKi Temp1 Temp2 Temp3 INr InvByteSub InvShiftRows AddRoundKey 输出OB 第Nr轮加密密钥ERKNr Temp1 Temp2 ERK0 IB AddRoundKey I1 加密第 i 轮输入Ii 中间轮变换 ( i =Nr-1 ~1 ) 解密过程 四川大学电子信息学院 */129 (五)AES解密过程的结构优化 注意AES基本函数的一些特点: 1. ByteSub( )与ShiftRows( )运算次序可交换。 即 ShiftRows(ByteSub(Ii)) = ByteSub(ShiftRows( Ii)) 同样有: InvShiftRows(InvByteSub(Ii)) = InvByteSub(InvShiftRows( Ii)) 有此特点是因为: ShiftRows变换仅对状态矩阵中每行的所有
您可能关注的文档
- 全新威驰店头氛围营造大赛总结—北京华通丰田.PPTX
- 全球前十位癌症发病率变化趋势图_关注防癌险.PPT
- 全神贯注(完整版).PPT
- 全科医学概论3.第三章-全科医学的历史与发展3.PPT
- 全文获取培训.PPT
- 全球治理与中国方案.PPT
- 全科医学的历史与基本概念.ppt
- 全科医学的定义和内容.ppt
- 全科医学的定义与基本概念.PPT
- 全身状态-医学一般检查.ppt
- 全国青少年(毒品预防教育)知识考试题库与答案 .pdf
- 2023年山东胶州市领军计划自主招生历史试题真题(含答案详解) .pdf
- 【人教版八年级生物】第六单元 第二章 认识生物的多样性 .pdf
- 冀人版-第三单元 电(提升卷)-四年级科学上册单元培优进阶练.docx
- 新郑市事业单位统考真题 .pdf
- 冀人版-第三单元动物的生长与繁殖(单元测试)四年级下册科学.docx
- CLCN4基因变异相关癫痫的临床表型及基因变异特点 .pdf
- 【《“双减”背景下小学中年级语文自主阅读策略探究》6500字】 .pdf
- 高一语文开学第一课+课件+2024-2025学年统编版高中语文必修上册 .pdf
- 密山市事业单位统考真题 .pdf
文档评论(0)