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