AVR單片機的RC5和RC6算法比較與改進(jìn)
摘要:RC5及RC6是兩種新型的分組密碼。AVR高速嵌入式單片機功能強大,在無(wú)線(xiàn)數據傳輸應用方面很有優(yōu)勢。本文基于Atmega128高速嵌入式單片機,實(shí)現RC5和RC6加密及解密算法,并對算法進(jìn)行匯編語(yǔ)言的優(yōu)化及改進(jìn)。根據實(shí)驗結果。對兩種算法的優(yōu)熱點(diǎn)進(jìn)行比較和分析。
關(guān)鍵詞:Atmega128 RC5 RC6 分組密碼 混合密鑰 Flash
引言
在無(wú)線(xiàn)局域網(wǎng)中,傳輸的介質(zhì)主要是無(wú)線(xiàn)電波和紅外線(xiàn),任何具有接收能力的竅聽(tīng)者都有可能攔截無(wú)線(xiàn)信道中的數據,掌握傳輸的內容,造成數據泄密。因此,對于無(wú)線(xiàn)局域網(wǎng)來(lái)說(shuō),數據的加密是關(guān)鍵技術(shù)之一。
AVR高速嵌入式單片機是8位RISC MCU,執行大多數指令只需一個(gè)時(shí)鐘周期,速度快(8MHz AVR的運行速度約等于200MHz C51的運行速度);32個(gè)通用寄存器直接與ALU相連,消除和運算瓶頸。內嵌可串行下載或自我編程的Flash和EPPROM,功能繁多,具有多種運行模式。
依照IEEE1999年發(fā)布的802.11無(wú)線(xiàn)局域網(wǎng)協(xié)議標準,采用Atmel公司的Atmega128高速嵌入式單片機,開(kāi)發(fā)無(wú)線(xiàn)數據傳輸裝置。為了實(shí)現無(wú)線(xiàn)數據傳輸時(shí)的安全性,同時(shí)盡可能節省成本,采用軟件進(jìn)行加密、解密。這就對算法的簡(jiǎn)法性、高速性及適應性提出了很高的要求。RC5和RC6兩種新型的分組加密算法能夠比較好地滿(mǎn)足上述的要求。
1 RC5及RC6算法
1.1 RC5及RC6的參數
RC5及RC6是參數變量的分組算法,實(shí)際上是由三個(gè)參數確定的一個(gè)加密算法族。一個(gè)特定的RC5或者RC6可以表示為RC5-w/r/b或者RC6-w/r/b。其中這三個(gè)參數w、f和b分別按照表1所列定義。
表1 RC5及RC6算法參數定義
參 數 | 定 義 | 常 用 |
w | 以比特表示的字的尺寸 | 16,32,64 |
r | 加密輪數 | 0~255 |
b | 密鑰的字節長(cháng)度 | 0~255 |
1.2 RC5及RC6字運算部件
RC5及RC6均由三部分組成,分別為混合密鑰生成過(guò)程、加密過(guò)程和解密過(guò)程。在這兩種算法中,共使用了六種基本運算:
?、倌?w加法運算,表示為“+”;
?、谀?w減法運算,表示為“-”;
?、壑鹞划惢蜻\算,表示為+;
?、苎h(huán)左移,字a循環(huán)左移b比特表示為“a<<<b”;
?、菅h(huán)右移,字a循環(huán)右移b比特表示為“a>>>b”;
?、弈?w乘法,表示為“
評論