期刊鉴别 论文检测 免费论文 特惠期刊 学术答疑 发表流程

基于easyARM615的AES算法实现(2)

时间:2013-12-28 10:14 文章来源:http://www.lunwenbuluo.com 作者:李莉 李秀滢 点击次数:


  列混合是将data.decimal[4][4]与列混合矩阵M(如图3)进行矩阵乘,将矩阵各行看成有限域上的多项式:b7X7+b6X6+b5X5+b4X4+b3X3+b2X2+b1X1+b,结果采用模X8+X4+X3+X+1的模乘同余规则,实际包含了64次"异或",16次"与"操作,使用多个循环嵌套可以完成每对字的异或运算。data.decimal[4][4]与M异或之前,首先暂存到c1[4][4]。由于M的元素只有三种,若用log_01(c1)表示c1^01,则c1=log_01(c1),log_03(c1)=c1^log_02(c1),所以关键要实现的是log_02(c1)运算。在有限域GF(28)上,左移1位表示"^2"运算,所以c2=log_02(c1)用C语言表达如下:if(c1<80)c2=c1<<1;elsec2=c1<<1^11b;下面M矩阵第二列"01020301"乘c1[4][4]矩阵为例:
  for(j=0;j<4;j++)
  {c2[0][j]=c1[0][j];
  c2[1][j]=log_02(c1[1][j]);
  c2[2][j]=log_03(c1[2][j]);
  c2[3][j]=c1[3][j];
  for(i=0;i<4;i++)data.decimal[k][j]=c2[i][j]^data.decimal[k][j];}
  将列混合的结果矩阵data.decimal[4][4]与当前轮子密钥key.now[4][4]按位异或进行密钥加运算,所得结果作为下一重复轮的输入。
  3.3AES加解密对称设计
  如图1所示,AES加解密过程具有对称性。在加密实现中,初始轮(InitialRound)只是密钥加操作,最终轮(FinalRound)不包含列混合。当Nk=4时共需加密10轮,用data.decimal[4][4]表示明文,key.decimal[4][4]表示密钥,L为轮数。调用ExpandedKey(),生成K1~K10轮子密钥,外部密钥即为初始轮密钥K0,然后进入Aes_perEncry(),针对128bit分组的10轮加密过程:
  InitialRound:L=0时,明文与K0进行密钥加操作。
  Rounds:L=1~9时,获得当前子密钥key.now[4][4]=key.decimal[(ll+1)*4][4],并循环以下操作SubBytes()、ShiftRows()、MixColumns()、AddRoundKey()。
  FinalRound:L=10时,在重复轮循环中实现,通过if(L<11)MixColumns(),使得最终轮剔除列混合操作。
  AES解密的实现过程与加密实现过程的不同主要体现在单轮加密中:(1)字节替代使用逆S盒,通过自我替换生成为S盒的逆she.Invray[4][4][2];(2)行移动方向取反,左移改为右移;(3)列混合用于"乘"的矩阵,需在有限域上模逆;(4)密钥扩展获得的子密钥反序成K10、K9、K8…………K0,应用于0~10轮。
  4算法功能测试
  为进行算法功能的测试,按照图5所示数据传输流程搭建测试验证系统,算法数据来自上位机的应用软件,AES算法的加解密功能在easyARM615芯片上实现,ARM615与上位机间通过串口进行通信,数据的打包分组由上位机软件完成,数据包的结构如表3所示。
  表3
  其中最低位D0为加解密模式位,当D0=1时,表示加密,D0=0时,表示解密;数据长度LONG表示要进行加解密运算的数据的长度,单位为字节;密钥固定为128bit,数据最小长度为128比特,不足128比特补0。由此可知,ARM615接收的最小长度为1+16+16=33字节,串口通信采用中断接收、轮询发送的数据传输方式。
  ARM615控制器通过中断方式接收数据,接收数据长度由接收到的第一个字节中的数据长度LONG决定,并将接收数据赋值给临时数组alldata[i],继而将数组alldata[i]拆分获得加/解密模式、密钥、数据三项信息,进行AES加/解密。最后通过RS232回送密/明文给上位机应用程序。easyARM615上的程序流程如图6所示。
  测试结果如表4所示,加解密结果正确,且与PC下的AES算法实现的结果进行了对比,结果一致。
  5结束语
  随着高性能、低功耗的嵌入式系统的广泛应用,带有安全保密功能的嵌入式系统产品将占有较大市场。本设计将AES加密算法和ARM615处理器相结合,充分体现了两者的优越性,在低制作成本条件下,提高了系统的安全性和运算速度,其实现具有一定的应用价值。
  参考文献
  [1]李晖,李丽香,邵帅.对称密码学及其应用.北京邮电大学出版社,2009年04月.
  [2]吴小博.AES加密算法分析与C++编程实现.计算机安全,2007年12月.
  [3]何明星,林昊.AES算法原理及其实现.2002年5月.
  [4]金丽.基于ARM嵌入式系统的AES加密算法实现.科技信息,2010年12期.
  [5]周立功.ARMCortex-M3开发指南.广州致远电子有限公司.2006年.
  作者简介:
  李莉(1974-),女,汉族,山东青岛人,硕士研究生,副教授,主要从事嵌入式系统及信息安全的研究。

  •   论文部落提供核心期刊、国家级期刊、省级期刊、SCI期刊和EI期刊等咨询服务。
  •   论文部落拥有一支经验丰富、高端专业的编辑团队,可帮助您指导各领域学术文章,您只需提出详细的论文写作要求和相关资料。
  •  
  •   论文投稿客服QQ: 论文投稿2863358778 论文投稿2316118108
  •  
  •   论文投稿电话:15380085870
  •  
  •   论文投稿邮箱:lunwenbuluo@126.com

联系方式

  • 论文投稿客服QQ: 论文投稿2863358778
  • 论文投稿客服QQ: 论文投稿2316118108
  • 论文投稿电话:15380085870
  • 论文投稿邮箱:lunwenbuluo@126.com

热门排行

 
QQ在线咨询
咨询热线:
15380085870
微信号咨询:
lunwenbuluoli