基于easyARM615的AES算法实现(论文资料).docVIP

基于easyARM615的AES算法实现(论文资料).doc

  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文档。上传文档
查看更多
基于easyARM615的AES算法实现(论文资料) 文档信息 : 文档作为关于“IT计算机”中“数据结构与算法”的参考范文,为解决如何写好实用应用文、正确编写文案格式、内容素材摘取等相关工作提供支持。正文4817字,doc格式,可编辑。质优实惠,欢迎下载! 目录 TOC \o 1-9 \h \z \u 目录 1 正文 1 文1:基于easyARM615的AES算法实现 1 2AES算法原理 2 3AES算法实现 2 4算法功能测试 6 5结束语 6 文2:基于AES的软件加密解密的设计与实现 7 1 AES算法基本原理 7 2 实现过程 8 4 结束语 8 参考文摘引言: 9 原创性声明(模板) 9 文章致谢(模板) 10 正文 基于easyARM615的AES算法实现(论文资料) 文1:基于easyARM615的AES算法实现 1引言 随着计算机通信技术的飞速发展以及互联网的应用,人们对信息安全的要求也越来越高,信息安全已成了当今尤为重要且需迫切解决的问题。经过几十年的发展,目前保障信息安全的手段日趋多样化,包括信息加密、数字签名、用户最小化权限、入侵检测、防火墙等,其中比较常用的还是信息加密。 2AES算法原理 AES算法作为美国国家标准与技术研究院(NIST)甄选发布取代DES的新一代加密标准。它采用对称分组密码体制,数据块长度和密钥长度都可变,与DES的Feistel结构不同,其轮函数采用替代/置换(SP)网络的迭代结构,由非线性层(字节替代),线性混合层(行移动、列混合),密钥加层(密钥加)组成,加解密结构呈对称性。其128比特密钥的加密安全性,比DES的56比特密钥强10倍。 通常取明密文的分组长度为128比特,密钥的长度可为128、192或256比特,一般用Nk=4、6、8代表密钥的字数(1字=32比特),在本设计中选用Nk=4,即密钥长度为128比特。为保证算法的安全,加密轮数Nr与密钥长度Nk关系密切,其间关系如表1所示,由此可知Nk=4时,Nr为10。 AES加/解密包括密钥扩展(KeyExpaion)、初始轮(InitialRound)、重复轮(Rounds)、最终轮(FinalRound)。重复轮分别包括字节替代(SubBytes)、行移动(ShiftRows)、列混合(MixColum)、密钥加(AddRoundKey),最终轮没有列混合。其流程如图1所示。 3AES算法实现 事实证明,目前只存在攻击7轮的AES-128和AES-192算法,这里对Nk=4、Nr=10的AES-128算法进行实现。 密钥扩展 密钥扩展将128bit的外部密钥(又称初始密钥)扩展成更长的比特串,再划成多个128比特的分组作为子密钥,即K0、K1、K2、K3、K4、K5、K6、K7、K8、K9、K10,以完成各轮的密钥加,其中K0是外部密钥本身。密钥扩展有同步和异步两种方式,这里采用异步方式,即在加密前进行密钥扩展准备好10轮子密钥。下面以子密钥K0生成子密钥K1为例,介绍密钥扩展过程。 将K0的后4个字节A30~A33取出,暂存到[4]中。调用子函数Twfour(),将[4]循环左移1字节,然后通过S盒替代,运算结果的首字节[0]与当前轮常数RC异或,再将此4字节与A00~A03按位异或,即得到K1的首4字节B00~B03。而B10~B13=B00~B03A10~A13,B20~B23=B10~B13A20~A23,B30~B33=B20~B23A30~A33。 轮常数RC值与加密轮数Nr间的关系如表2所示。 重复轮加密 重复轮加密即为9次迭代的一个单轮运算,完整的重复轮包括字节替代(SubBytes)、行移动(ShiftRows)、列混合(MixColum)、密钥加(AddRoundKey)四步操作。 字节替代是关于字节的非线性可逆变换。将有限域GF(28)=X8+X4+X3+X+1上仿射变换所有的可能结果排成一个S盒(S盒的具体内容参见文献4),该替代规模为16×16=256个字节。在分组密码算法,S盒的密码强度直接决定了密码算法的好坏。代码实现中,可将状态矩阵[4][4][2]各个字节转换为0~15十进制,作为S盒索引[4][4][2]的行列值,进行二元域上的映射,结果重组即得[4][4][2]矩阵。下面是替代过程: for(i=0;i4;i++) {for(j=0;j4;j++) {m=int([i][j][0] n=int([i][j][1] if(m=9)m-=48;elsem-=87; if(n=9)n-=48;elsen-=87; [i][j][0]=[m][n][0] [i][j][1]=[m][n][1] 行移动是指4

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档