AVR单片机的RC和RC算法比较与改进

上传人:细水****9 文档编号:57447332 上传时间:2022-02-24 格式:DOC 页数:7 大小:144KB
收藏 版权申诉 举报 下载
AVR单片机的RC和RC算法比较与改进_第1页
第1页 / 共7页
AVR单片机的RC和RC算法比较与改进_第2页
第2页 / 共7页
AVR单片机的RC和RC算法比较与改进_第3页
第3页 / 共7页
资源描述:

《AVR单片机的RC和RC算法比较与改进》由会员分享,可在线阅读,更多相关《AVR单片机的RC和RC算法比较与改进(7页珍藏版)》请在装配图网上搜索。

1、AVR单片机的RC5和RC6算法比较与改进摘要:rc5及rc6是两种新型的分组密码。avr高速嵌入式单片机功能强大,在无线数据传输应用方面很有优势。本文基于atmega128高速嵌入式单片机,实现rc5和rc6加密及解密算法,并对算法进行汇编语言的优化及改进。根据实验结果。对两种算法的优热点进行比较和分析。关键词:atmega128 rc5 rc6 分组密码 混合密钥 flash引言在无线局域网中,传输的介质主要是无线电波和红外线,任何具有接收能力的窍听者都有可能拦截无线信道中的数据,掌握传输的内容,造成数据泄密。因此,对于无线局域网来说,数据的加密是关键技术之一。avr高速嵌入式单片机是8位

2、risc mcu,执行大多数指令只需一个时钟周期,速度快(8mhz avr的运行速度约等于200mhz c51的运行速度);32个通用寄存器直接与alu相连,消除和运算瓶颈。内嵌可串行下载或自我编程的flash和epprom,功能繁多,具有多种运行模式。依照ieee1999年发布的802.11无线局域网协议标准,采用atmel公司的atmega128高速嵌入式单片机,开发无线数据传输装置。为了实现无线数据传输时的安全性,同时尽可能节省成本,采用软件进行加密、解密。这就对算法的简法性、高速性及适应性提出了很高的要求。rc5和rc6两种新型的分组加密算法能够比较好地满足上述的要求。1 rc5及rc

3、6算法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加密轮数0255b密钥的字节长度0255 1.2 rc5及rc6字运算部件rc5及rc6均由三部分组成,分别为混合密钥生成过程、加密过程和解密过程。在这两种算法中,共使用了六种基本运算:模2w加法运算,表示为“ ”;模2w减法运算,表示为“-”;逐位异或运算,表示为 ;循环左

4、移,字a循环左移b比特表示为“ab”;模2w乘法,表示为“”。rc5算法运用了上述的运算部分,rc6算法使用了上述所有的运算部件。1.3 rc5算法(1)rc5算法混合密钥生成过程的伪代码表示s0=pwfori=1 to t-1 dosi=si-1 qw输入比特数大小为8,密钥长度为b的用户密钥k0至kb-1转换k0至kb-1为数组长度为c,比特数为w的l数组i=j=0 x=y=0do 3max(t,c)times:si=(si x y)3;x=si;i=(i 1)mod tlj=(lj x y)(x,y);x=lj;j=(j 1)modc其中c=b8/w方括号表示上取整运算,t=2r 2,当

5、w分别为16、32、64时,常数pw、qw分别如表2所列。表2 常数pw、qw取值表w163264pw0xb7e10xb7e151630xb7e151628aed2a6bqw0x9e370x9e3779b90x9e3770b97f4a7c15 (2)rc5加密算法过程的伪代码表示input(a,b)a=a s(0)b=b s1fori=1 to r doa=(a b)b) s2ib=(b a)a) aa=(a-s2i)b) ba=a-s0 b=b-s1output (a,b)其中初始a、b中的数据就是已经加密了的比特数为w的数据,最终的a、b中的数据为解密后的比特数为w的数据。1.4 rc6算

6、法(1)rc6算法混合密钥生成过程伪代码表示rc6混合密钥生成过程与rc5相同,只是t的取值为2r 4。(2)rc6加密算法过程伪代码表示input(a,b,c,d)b=b s0d=d s1fori=1 to r dot=(b(2b 1)log2wu=(d(2d 1)1og2wa=(a t)t) s2ic=(c u)u) s2i 1(a,b,c,d)=(b,c,d,a)a=a s2i 2c=c s2i 3output(a,b,c,d)其中初始的a、b、c、d分别为要加密的四个比特数为w的数据,最终的a、b、c、d分别为加密好的四个比特数为w的数据。(3)rc6解密算法过程的伪代码表示input

7、(a,b,c,d)c=c-s2i 3a=a-s2i 2fori=1 to r do(a,b,c,d)=(d,a,b,c)u=(d(2d 1)log2wt=(b(2b 1)t) ua=(a-s2(r-i) 2)u) td=d-s1 b=b-s0output(a,b,c,d)其中初始的a、b、c、d分别为已经被加密的四个比特数为w的数据,最终的a、b、c、d分别为解密后的四个比特数为w的数据。2 rc5和rc6算法的实现及改进2.1 avr单片机的rc5和rc6算法流程rc5及rc6算法加密过程实现流程图如图1所示,解密过程实现流程图如图2所示,总体过程流程图如图3所示。2.2 avr单片机rc5

8、和rc6算法的改进在进行算法流程的安排时,考虑到avr高速嵌入式单片机只有32个8位寄存器,为了节省寄存器的使用,应该在混合密钥生成过程执行后,再把待加密的数据赋予寄存器。这样在混合密钥生成过程以前的寄存器都可以被使用,而不会对整个算法的执行结果造成影响。在进行rc5及rc6算法参数的选择时,考虑到avr高速嵌入式单片机指令最多只支持16位数据相加以及程序的简洁化,所以在本程序中选择w为16而没有选择w为32,r和b的值依据rivest的建议分别取为12和16。在执行算法中的左循环或者右循环运算时,考虑到循环移位的效果,实际循环移位的位数应该为要执行移位次数的低1log2w位。在本程序中为要执

9、行移位次数的后四位。在执行算法中的模2w加法运算、模2w减法运算、模2w乘法运算时,由于2w的取值为65536,而2个8位寄存器(015位)最高可以表示数据的值为65535,数据再大就要向高位进位,所以在本程序执行上述的算法只需要考虑到2个8位寄存器所表达的值就得到了上述运算的最终结果,而不用再进行模2w运算。为了提高数据加密及解密的速率,可以把混合密钥生成过程提前执行,以使之生成一张混合密钥表。把这个表装入发送数据端atmega128高速嵌入式单片机和接收数据端atmega128高速嵌入式单片机的flash中,从而在以后的加密与解密过程中直接使用混合密钥。值得注意的是,每当用户输入的用户密钥

10、发生改变时,必须重新执行混合密钥生成过程,并且重新给flash装载重新生成后的混合密钥表。在本程序中,rc5混合密钥表共占据52个8位寄存单元,rc6混合密钥表共占据56个8位存储单元。在本程序中运用加法运算以及移位运算实现了16位二进制数乘以16位二进制数的无符号运算。该运算的子程序如下:chengfa:clr result2clr result3ldi count1,16lsr chengshu1rorchengshu0chengfa0:brcc chengfa1add result2,beichengshu0adc result3,beichengshu1chengfa1:rorresu

11、lt3rorresult2rorresult1rorresult0dec count1brne chengfa0ret3 rc5及rc6算法实验结果及其比较与分析rc5及rc6算法实验的混合密钥过程、加密过程、解密过程和总体过程的效果比较如表3、4、5、6所列。表3 rc5及rc6算法混合密钥过程效果比较混合密钥生成过程周期计数停止观察/s程序大小/字ctrc5算法15 2481270.67141826rc6算法15 2461270.50141828 表4 rc5及rc6算法加密过程效果比较加密过程(不考虑生成混合密钥的时间)周期计数停止观察/s程序大小/字共处理数据的位数效率/(位/s)rc

12、5算法2511209.256632约为152 927rc6算法.7517064约为12 282 表5 rc5及rc6算法解密过程效果比较解密过程(不考虑生成混合密钥的时间)周期计数停止观察/s程序大小/字共处理数据的位数效率/(位/s)rc5 算法2509209.086832约为153 051rc6 算法.5817664约为12 283 表6 rc5及rc6算法总体过程效果比较总体算法过程(考虑生成混合密钥的时间,不考虑数据传输所用的)周期计数停止观察/s程序大小/字共处理数据的位数效率/(位/s)rc5算法20 2601688.3326732约为18 594rc6算法140 27411 68

13、9.5045564约为5475 由表3可以发现,rc6算法和rc5算法在混合密钥生成时程序的大小相同,但量rc6算法却比rc5算法省时。这是因为根据混合密钥生在方法在执行循环,最终生成混合密钥时要执行比较操作。当超出了比较范围t时,要对指针地址重新复位。rc6算法t的取值大于rc5算法中t的取值,因此rc6算法执行了较少的复位操作。从而节省了运行周期,故rc6算法比rc5算法在生成混合密钥时省时。以上所有实验结果均是在avr studio4.07仿真软件上选用atmel公司的atmega128高速嵌入式单片机为实验设备平台。选取参数w=16、r=12、b=16,并根据计算公式求得c=8,t=2

14、6(rc5算法)或者t=28(rc6算法)在12mhz运行速度下模拟所得。从实验结果所得的表3、表4、表5、表6可以明确得出以下结论。从程序的执行效率来看,无论在加密还是在解密过程中,rc5算法都要比rc6算法执行效率高。因此,在一些非常注重程序执行效率,而对数据安全性要求不是非常高的情况下,应该采用rc5算法。从程序的执行时间来看,无论在加密过程不是在解密过程中,rc5算法都要比rc6算法省时。因此,在一些对程序执行时间长短要求很高,对数据安全性要求不是非常高的情况下,可以采用rc5算法。从程序的大小来看,无论在加密过程中还是在解密过程中,rc5算法都要比rc6算法更简洁。因此,在一些对程序

15、所用空间大小要求很高,对数据安全性要求不是非常高的情况下,可以采用rc5算法。从安全性角度考虑,rc6算法是在rc5算法基础之上针对rc5算法中的漏洞,主要是循环移位的位移量并不取决于要移动次数的所有比特,通过采用引入乘法运算来决定循环移位次数的方法,对rc5算法进行了改进,从而大大提高了rc6算法的安全性。因此,在一些对数据安全性要求很高的情况下,应该采用rc6算法。结语rc5及rc6算法是两种新型的分组密码,它们都具有可变的字长,可变的加密轮数,可变的密钥长度;同时,它们又只使用了常见的初等运算操作,这使它们有很好的适应性,很高的运算速度,并且非常适合于硬件和软件实现。两种算法各有其优缺点,在工程应用中应该根据实际需要选择最适合的方法,以得到最优的效果。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!