新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)的RC5和RC6算法區(qū)別、實(shí)現(xiàn)與優(yōu)化

        AVR單片機(jī)的RC5和RC6算法區(qū)別、實(shí)現(xiàn)與優(yōu)化

        作者: 時(shí)間:2013-12-06 來(lái)源:網(wǎng)絡(luò) 收藏

          表2 常數(shù)Pw、Qw取值表

        W163264
        Pw0xB7E10xB7E151630xB7E151628AED2A6B
        Qw0x9E370x9E3779B90x9E3770B97F4A7C15

        (2)加密算法過(guò)程的偽代碼表示

          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分別為要加密的兩個(gè)比特?cái)?shù)為w的數(shù)據(jù),最終的A、B分別為加密好的兩個(gè)比特?cái)?shù)為w的數(shù)據(jù)。

        (3)解密算法過(guò)程的偽代碼表示

          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中的數(shù)據(jù)就是已經(jīng)加密了的比特?cái)?shù)為w的數(shù)據(jù),最終的A、B中的數(shù)據(jù)為解密后的比特?cái)?shù)為w的數(shù)據(jù)。

        1.4

        (1)混合密鑰生成過(guò)程偽代碼表示

          RC6混合密鑰生成過(guò)程與相同,只是t的取值為2r+4。

        (2)RC6加密算法過(guò)程偽代碼表示

          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,D)

          其中初始的A、B、C、D分別為要加密的四個(gè)比特?cái)?shù)為w的數(shù)據(jù),最終的A、B、C、D分別為加密好的四個(gè)比特?cái)?shù)為w的數(shù)據(jù)。

        (3)RC6解密算法過(guò)程的偽代碼表示

          Input(A,B,C,D)

          C=C-S[2i+3]A=A-S[2i+2]

          for i=1 to r do

          (A,B,C,D)=(D,A,B,C)

          u=(D×(2D+1))log2w

          t=(B×(2B+1))log2w

          C=((C-S[2(r-i)+3])>>>t)+u

          A=((A-S[2(r-i)+2])>>>u)+t

          D=D-S[1] B=B-S[0]

          Output(A,B,C,D)

          其中初始的A、B、C、D分別為已經(jīng)被加密的四個(gè)比特?cái)?shù)為w的數(shù)據(jù),最終的A、B、C、D分別為解密后的四個(gè)比特?cái)?shù)為w的數(shù)據(jù)。

        2 RC5和的實(shí)現(xiàn)及改進(jìn)

        2.1 的RC5和RC6算法流程

          RC5及RC6算法加密過(guò)程實(shí)現(xiàn)流程圖如圖1所示,解密過(guò)程實(shí)現(xiàn)流程圖如圖2所示,總體過(guò)程流程圖如圖3所示。

        AVR單片機(jī)的RC5和RC6算法區(qū)別、實(shí)現(xiàn)與優(yōu)化

        AVR單片機(jī)的RC5和RC6算法區(qū)別、實(shí)現(xiàn)與優(yōu)化

        AVR單片機(jī)的RC5和RC6算法區(qū)別、實(shí)現(xiàn)與優(yōu)化

        2.2 RC5和RC6算法的改進(jìn)

          ①在進(jìn)行算法流程的安排時(shí),考慮到AVR高速嵌入式單片機(jī)只有32個(gè)8位寄存器,為了節(jié)省寄存器的使用,應(yīng)該在混合密鑰生成過(guò)程執(zhí)行后,再把待加密的數(shù)據(jù)賦予寄存器。這樣在混合密鑰生成過(guò)程以前的寄存器都可以被使用,而不會(huì)對(duì)整個(gè)算法的執(zhí)行結(jié)果造成影響。

          ②在進(jìn)行RC5及RC6算法參數(shù)的選擇時(shí),考慮到AVR高速嵌入式單片機(jī)指令最多只支持16位數(shù)據(jù)相加以及程序的簡(jiǎn)潔化,所以在本程序中選擇w為16而沒(méi)有選擇w為32,r和b的值依據(jù)Rivest的建議分別取為12和16。

          ③在執(zhí)行算法中的左循環(huán)或者右循環(huán)運(yùn)算時(shí),考慮到循環(huán)移位的效果,實(shí)際循環(huán)移位的位數(shù)應(yīng)該為要執(zhí)行移位次數(shù)的低1log2w位。在本程序中為要執(zhí)行移位次數(shù)的后四位。

          ④在執(zhí)行算法中的模2w加法運(yùn)算、模2w減法運(yùn)算、模2w乘法運(yùn)算時(shí),由于2w的取值為65536,而2個(gè)8位寄存器(0~15位)最高可以表 示數(shù)據(jù)的值為65535,數(shù)據(jù)再大就要向高位進(jìn)位,所以在本程序執(zhí)行上述的算法只需要考慮到2個(gè)8位寄存器所表達(dá)的值就得到了上述運(yùn)算的最終結(jié)果,而不用 再進(jìn)行模2w運(yùn)算。



        關(guān)鍵詞: AVR單片機(jī) RC5 RC6算法

        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 甘南县| 方城县| 乃东县| 平阴县| 饶河县| 甘谷县| 砀山县| 青神县| 桓仁| 康定县| 普陀区| 会理县| 镇康县| 延安市| 旅游| 尼玛县| 故城县| 玉屏| 蓬安县| 漳平市| 邯郸市| 元朗区| 松潘县| 北宁市| 梓潼县| 永州市| 和平区| 石棉县| 台安县| 青川县| 长海县| 东兴市| 平山县| 海阳市| 乡城县| 彩票| 平谷区| 盘山县| 胶州市| 彭泽县| 广安市|