您当前的位置:五五电子网电子知识单片机-工控设备AVR单片机AVR单片机的RC5和RC6算法比较与改进 正文
AVR单片机的RC5和RC6算法比较与改进

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

点击数:7337 次   录入时间:03-04 11:50:11   整理:http://www.55dianzi.com   AVR单片机

⑤为了提高数据加密及解密的速率,可以把混合密钥生成过程提前执行,以使之生成一张混合密钥表。把这个表装入发送数据端atmega128高速嵌入式 单片机 和接收数据端atmega128高速嵌入式单片机的flash中,从而在以后的加密与解密过程中直接使用混合密钥。值得注意的是,每当用户输入的用户密钥发生改变时,必须重新执行混合密钥生成过程,并且重新给flash装载重新生成后的混合密钥表。在本程序中,rc5混合密钥表共占据52个8位寄存单元,rc6混合密钥表共占据56个8位存储单元。

⑥在本程序中运用加法运算以及移位运算实现了16位二进制数乘以16位二进制数的无符号运算。该运算的子程序如下:

chengfa:AVR单片机的RC5和RC6算法比较与改进clr result2

clr result3

ldi count1,16

lsr chengshu1

ror chengshu0

chengfa0:

brCC chengfa1

add result2,beIChengshu0

adc result3,beichengshu1

chengfa1:

ror result3

ror result2

ror result1

ror result0

dec count1

brne chengfa0

ret

3 rc5及rc6算法实验结果及其比较与分析

rc5及rc6算法实验的混合密钥过程、加密过程、解密过程和总体过程的效果比较如表3、4、5、6所列。

表3 rc5及rc6算法混合密钥过程效果比较

混合密钥生成过程周期计数停止观察/μs程序大小/字CTRc5算法15 2481270.67141826rc6算法15 2461270.50141828

表4 rc5及rc6算法加密过程效果比较

加密过程(不考虑生成混合密钥的时间)周期计数停止观察/μs程序大小/字共处理数据的位数效率/(位/s)rc5算法2511209.256632约为152 927rc6算法625295210.7517064约为12 282

表5 rc5及rc6算法解密过程效果比较

解密过程(不考虑生成混合密钥的时间)周期计数停止观察/μs程序大小/字共处理数据的位数效率/(位/s)rc5 算法2509209.086832约为153 051rc6 算法625275210.5817664约为12 283

表6 rc5及rc6算法总体过程效果比较

总体算法过程(考虑生成混合密钥的时间,不考虑数据传输所用的)周期计数停止观察/μs程序大小/字共处理数据的位数效率/(位/s)rc5算法20 2601688.3326732约为18 594rc6算法140 27411 689.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=26(rc5算法)或者t=28(rc6算法)在12mhz运行速度下模拟所得。

从实验结果所得的表3、表4、表5、表6可以明确得出以下结论。

①从程序的执行效率来看,无论在加密还是在解密过程中,rc5算法都要比rc6算法执行效率高。

因此,在一些非常注重程序执行效率,而对数据安全性要求不是非常高的情况下,应该采用rc5算法。

②从程序的执行时间来看,无论在加密过程不是在解密过程中,rc5算法都要比rc6算法省时。因此,在一些对程序执行时间长短要求很高,对数据安全性要求不是非常高的情况下,可以采用rc5算法。

③从程序的大小来看,无论在加密过程中还是在解密过程中,rc5算法都要比rc6算法更简洁。因此,在一些对程序所用空间大小要求很高,对数据安全性要求不是非常高的情况下,可以采用rc5算法。

④从安全性角度考虑,rc6算法是在rc5算法基础之上针对rc5算法中的漏洞,主要是循环移位的位移量并不取决于要移动次数的所有比特,通过采用引入乘法运算来决定循环移位次数的方法,对rc5算法进行了改进,从而大大提高了rc6算法的安全性。因此,在一些对数据安全性要求很高的情况下,应该采用rc6算法。

结语

rc5及rc6算法是两种新型的分组密码,它们都具有可变的字长,可变的加密轮数,可变的密钥长度;同时,它们又只使用了常见的初等运算操作,这使它们有很好的适应性,很高的运算速度,并且非常适合于硬件和软件实现。两种算法各有其优缺点,在工程应用中应该根据实际需要选择最适合的方法,以得到最优的效果。



上一页  [1] [2] 


本文关键字:单片机  AVR单片机单片机-工控设备 - AVR单片机