新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AVR單片機的RC5和RC6算法區別、實現與優化

        AVR單片機的RC5和RC6算法區別、實現與優化

        作者: 時間:2013-12-06 來源:網絡 收藏

          ⑤為了提高數據加密及解密的速率,可以把混合密鑰生成過程提前執行,以使之生成一張混合密鑰表。把這個表裝入發送數據端Atmega128高速 嵌入式單片機和接收數據端Atmega128高速嵌入式單片機的Flash 中,從而在以后的加密與解密過程中直接使用混合密鑰。值得注意的是,每當用戶輸入的用戶密鑰發生改變時,必須重新執行混合密鑰生成過程,并且重新給 Flash裝載重新生成后的混合密鑰表。在本程序中,混合密鑰表共占據52個8位寄存單元,RC6混合密鑰表共占據56個8位存儲單元。  ⑥在本程序中運用加法運算以及移位運算實現了16位二進制數乘以16位二進制數的無符號運算。該運算的子程序如下:

          chengfa: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 實驗結果及其比較與分析

          實驗的混合密鑰過程、加密過程、解密過程和總體過程的效果比較如表3、4、5、6所列。

          表3 RC5及混合密鑰過程效果比較

        混合密鑰生成過程周期計數停止觀察/μs程序大小/字ct
        RC5算法15 2481270.67141826
        RC6算法15 2461270.50141828


        表4 RC5及RC6算法加密過程效果比較

        加密過程(不考慮生成混合密鑰的時間)周期計數停止觀察/μs程序大小/字共處理數據的位數效率/(位/s)
        RC5算法2511209.256632約為152 927
        RC6算法625295210.7517064約為12 282

          表5 RC5及RC6算法解密過程效果比較

        解密過程(不考慮生成混合密鑰的時間)周期計數停止觀察/μs程序大小/字共處理數據的位數效率/(位/s)
        RC5 算法2509209.086832約為153 051
        RC6 算法625275210.5817664約為12 283

          表6 RC5及RC6算法總體過程效果比較

        總體算法過程(考慮生成混合密鑰的時間,不考慮數據傳輸所用的)周期計數停止觀察/μs程序大小/字共處理數據的位數效率/(位/s)
        RC5算法20 2601688.3326732約為18 594
        RC6算法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 3 下一頁

        關鍵詞: AVR單片機 RC5 RC6算法

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 岳阳县| 吴桥县| 博白县| 蛟河市| 普兰店市| 大竹县| 花莲县| 高阳县| 葫芦岛市| 逊克县| 五寨县| 乐亭县| 贵州省| 松滋市| 永春县| 甘德县| 视频| 荣成市| 三江| 舞钢市| 邢台市| 虎林市| 甘洛县| 财经| 太仓市| 博白县| 靖远县| 虎林市| 门头沟区| 嵊州市| 邵武市| 锡林郭勒盟| 通城县| 濉溪县| 睢宁县| 桃园县| 凌云县| 河曲县| 丘北县| 武穴市| 通化市|