AVR单片机的RC5和RC6算法比较与改进.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AVR单片机的RC5和RC6算法比较与改进rc5及rc6是两种新型的分组密码。avr高速嵌入式单片机功能强大,在无线数据传输应用方面很有优势。本文基于atmega128高速嵌入式单片机,实现rc5和rc6加密及解密算法,并对算法进行汇编语言的优化及改进。根据实验结果。对两种算法的优热点进行比较和分析。 atmega128 rc5 rc6 分组密码 混合密钥 flash 引言 在无线局域网中,传输的介质主要是无线电波和红外线,任何具有接收能力的窍听者都有可能拦截无线信道中的数据,掌握传输的内容,造成数据泄密。因此,对于无线局域网来说,数据的加密是关键技术之一。 avr高速嵌入式单片机是8位risc mcu,执行大多数指令只需一个时钟周期,速度快(8mhz avr的运行速度约等于200mhz c51的运行速度);32个通用寄存器直接与alu相连,消除和运算瓶颈。内嵌可串行下载或自我编程的flash和epprom,功能繁多,具有多种运行模式。 依照ieee1999年发布的802.11无线局域网协议标准,采用atmel公司的atmega128高速嵌入式单片机,开发无线数据传输装置。为了实现无线数据传输时的安全性,同时尽可能节省成本,采用软件进行加密、解密。这就对算法的简法性、高速性及适应性提出了很高的要求。rc5和rc6两种新型的分组加密算法能够比较好地满足上述的要求。 1 rc5及rc6算法 1.1 rc5及rc6的参数 rc5及rc6是参数变量的分组算法,实际上是由三个参数确定的一个加密算法族。一个特定的rc5或者rc6可以表示为rc5-w/r/b或者rc6-w/r/b。其中这三个参数w、f和b分别按照表1所列定义。 表1 rc5及rc6算法参数定义 参 数定 义常 用w以比特表示的字的尺寸16,32,64r加密轮数0~255b密钥的字节长度0~255 1.2 rc5及rc6字运算部件 rc5及rc6均由三部分组成,分别为混合密钥生成过程、加密过程和解密过程。在这两种算法中,共使用了六种基本运算: 模2w加法运算,表示为“ ”; 模2w减法运算,表示为“-”; 逐位异或运算,表示为 ; 循环左移,字a循环左移b比特表示为“ab”; 循环右移,字a循环右移b比特表示为“ab”; 模2w乘法,表示为“×”。 rc5算法运用了上述的~运算部分,rc6算法使用了上述所有的运算部件。 1.3 rc5算法 (1)rc5算法混合密钥生成过程的伪代码表示 s[0]=pw for?i=1 to t-1 do s[i]=s[i-1] qw 输入比特数大小为8,密钥长度为b的用户密钥k[0]至k[b-1] 转换k[0]至k[b-1]为数组长度为c,比特数为w的l[]数组 i=j=0 x=y=0 do 3×max(t,c)times: s[i]=(s[i] x y)3;x=s[i];i=(i 1)mod t l[j]=(l[j] x y)(x,y);x=l[j];j=(j 1)modc 其中c=[b×8/w]方括号表示上取整运算,t=2r 2,当w分别为16、32、64时,常数pw、qw分别如表2所列。 表2 常数pw、qw取值表 w163264pw0xb7e10xb7e151630xb7e151628aed2a6bqw0x9e370x9e3779b90x9e3770b97f4a7c15 (2)rc5加密算法过程的伪代码表示 input(a,b) a=a s(0)b=b s[1] for?i=1 to r do a=((a b)b) s[2i] b=((b a)a) s[2i 1] output(a,b) 其中初始的a、b分别为要加密的两个比特数为w的数据,最终的a、b分别为加密好的两个比特数为w的数据。 (3)rc5解密算法过程的伪代码表示 input(a,b) for?i=r down to 1 do b=((b-s[2i 1])a) a a=((a-s[2i])b) b a=a-s[0] b=b-s[1] output (a,b) 其中初始a、b中的数据就是已经加密了的比特数为w的数据,最终的a、b中的数据为解密后的比特数为w的数据。 1.4 rc6算法 (1)rc6算法混合密钥生成过程伪代码表示 rc6混合密钥生成过程与rc5相同,只是t的取值为2r 4。 (2)rc6加密算法过程伪代码表示 input(a,b,c,d) b=b s[0]d=d s[1] for?i=1 to r do t=(b×(2b 1))log2w u=(d×(2d 1))1og2w a=((a t)t) s[2i] c=((c u)u) s[2i 1] (a,b,c,d)=(b,c,d,a) a=a s[2i 2]c=c s[2i 3] output(a,b,c,

您可能关注的文档

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档