古典密码教学资料-AES加密.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高级加密标准AES AES算法的整体结构 Rijndael 由比利时的Joan Daemen和Vincent Rijmen设计,算法的原型是Square算法,经过修改后确定为高级数据加密标准AES. 典型的SPN结构 有较好的数学理论作为基础;结构简单、速度快 Key Length (Nk words) Block Size (Nb words) Number of Rounds (Nr) AES-128 4 4 10 AES-192 6 4 12 AES-256 8 4 14 AES算法的整体结构 轮密钥加 字节替代 行移位 列混合 初始状态矩阵(state) AES算法的分组长度固定为128比特,以字节为基本单位转换为状态字节,依顺序 a00, a10, a20, a30, a01, … a23, a33,前4个字节组成第1列,后四个字节组成第2列,依次类推,AES算法明文分组可以构成一个4×4的字节矩阵,如图所示3-23,加密结束时,输出也是从状态字节中按相同的顺序提取。 AES算法举例学习 下面我们以一个128位块为例,开始分别介绍AES加密算法基本变换的具体过程。 为了表达简洁,下面的中间结果都用16进制来表示。则128比特二进制示例块用16进制表示则对应为0x 80 5E 6A 36 53 25 3A 66 63 35 69 03 20 6C 28 06 课堂思考题 例如“good good study !day day up !”采用AES算法,明文输入初始状态矩阵? 初始密钥 实例:设初始密钥(初始子密钥矩阵与明文类似 0x 75 35 6B 99 05 61 39 56 73 62 05 31 00 55 09 32 轮密钥加 ⊕ = 此处轮密钥是初始密钥,轮密钥长度等于分组长度。 字节代替(SubBytes) 字节变换(SubBytes)使用一个S盒,S盒是一个16×16的矩阵,如表所示。其非线性置换为:输入的列的每个元素用来指定S盒的地址:前4位指定S盒的行,后4位指定S盒的列。行和列所确定S盒位置的元素取代输入矩阵中相应位置的元素,例如“03” ,行0,列3,因此输入“03” ,输出“7B”。 字节替代所用S盒 字节替代举例 在上面的示例中,第1个基本元素为”F5”,它将被S盒行为第”F行”、列为第”5”列的元素“E6“代替,其余的输出也用相同的方法确定。 行移位(ShiftRows) 状态阵列的4个行循环以字节为基本单位进行左移,而每行循环做移的偏移量是由明文分组的大小和所在行数共同确定,即列数Nb和行号确定。 AES的Nb固定为4,下面两行针对Rijndael算法 行移位举例 3)列混合(MixColumn) 列混合变换中,将状态阵列的每列视为GF((28)4)上的多项式,再与一个固定的多项式c(x)进行模x4+1乘法. Rijndael的设计者给出的c(x)为(系数用十六进制数表示): c(x)=‘03’x3+‘01’x2+‘01’x+‘02’ 列混合 列混合(MixColumns) 列混合是可以表示为矩阵相乘来实现 列混合举例 列混合举例 列混合举例 GF(28)的多项式乘法,约化多项式为 m(x)=x8+x4+x3+x+1 例:57x乘以83x (x6+x4+x2+x+1) × (x7+x+1) = (x13+x11+x9+x8+x7)^ (x7+x5+x3+x2+x)^ (x6+x4+x2+x+1) = x13+x11+x9+x8+x6+x5+x4+x3+1 =x7+x6+1 mod m(x) 列混合举例课堂练习 课堂练习:列混合运算(128比特分组) 轮密钥加(AddRoundKey) 将列混合的状态矩阵与子密钥进行XOR逻辑运算(子密钥是从初始密钥派生而来的),即将轮密钥与状态按比特异或。轮密钥是通过密钥调度过程从密码密钥中得到的,轮密钥长度等于分组长度。 轮密钥加 举例 密钥排列 AES算法加密和解密过程中密码密钥(Cipher Key)同样以字节为基本单位转换,因而依顺序 k00, k 10, k20, k30, k01,…k23, k33,为类似地用一个4行的矩阵阵列来表示,前4个字节组成第1列,后四个字节组成第2列,依次类推,列数记为Nk 。 AES算法的密码密钥的列数Nk可以取的值为4,6,8,对应的密钥长度为128,192,256bits,因而密码密钥构成一个4×4、4×6、4×8的密钥字节矩阵。 密钥阵列状态 如图所示,192比特密钥的密码密钥矩阵,Nk为6。 密钥扩展 (NK=4) 初始密钥 实例:设初始密钥 75 35 6B 99 05 61 39 56 73 62 05 31 00 55 09 32 求K4 (1) 循环将

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档