吳 佳 劉 敏 嚴(yán)雋薇(同濟(jì)大學(xué),中國(guó) 上海201804)
通常物聯(lián)網(wǎng)的架構(gòu)分為感知層、網(wǎng)絡(luò)層與應(yīng)用層。其中,網(wǎng)絡(luò)層與應(yīng)用層的安全問(wèn)題可以參照普通以太網(wǎng),相關(guān)的研究也取得了很大的成果。感知層的通常采用無(wú)線傳輸,電池供電;具有計(jì)算能力弱,存儲(chǔ)空間小,電量有限,部署環(huán)境惡劣等特點(diǎn)。所以研究感知層安全問(wèn)題的是解決工業(yè)物聯(lián)網(wǎng)安全問(wèn)題的難點(diǎn)與重點(diǎn)。WSN與RFID技術(shù)作為感知層技術(shù)的核心,其安全問(wèn)題就是感知層的安全問(wèn)題,本文主要研究WSN的安全問(wèn)題。
無(wú)線傳感網(wǎng)的安全可以歸結(jié)到數(shù)據(jù)及其傳輸過(guò)程的安全,數(shù)據(jù)加密技術(shù)是保證數(shù)據(jù)安全最主要的手段,為了保證數(shù)據(jù)的秘密性、完整性和確定性,目前可以把加密算法分成兩類:對(duì)稱加密技術(shù)和非對(duì)稱加密技術(shù)。常見(jiàn)的對(duì)稱加密技術(shù)有DES,AES等;非對(duì)稱加密技術(shù)有RSA,ECC等。非對(duì)稱加密保密性較好,不需要保護(hù)密鑰,但算法復(fù)雜,加密時(shí)間長(zhǎng),速度慢,不適合用于資源有限的無(wú)線傳感網(wǎng)。
RC4是一種對(duì)稱加密算法,由Rivest在1987提出,是目前最流行的流密碼之一。由于它極其簡(jiǎn)單的結(jié)構(gòu)和良好的安全強(qiáng)度受到了廣泛的歡迎。RC4加密算法是一種流加密算法,算法簡(jiǎn)單,加密速度快,適合用于資源有限的無(wú)線傳感網(wǎng),但是,RC4存在弱密鑰的缺陷,相關(guān)密鑰容易產(chǎn)生相似輸出,難以抵御選擇明文攻擊。
Andrew Roos在[1]中最早找出了一類在輸出序列中可以引起某種偏差的弱密鑰。Grosul和Wallach發(fā)現(xiàn),如果密鑰長(zhǎng)度接近2n字節(jié),RC4算法對(duì)于相關(guān)密鑰攻擊是脆弱的另外,Mantin和Mironov都分析了KSA的輸出值的分布情況[2]。
針對(duì)以上缺點(diǎn),改進(jìn)RC4算法的研究也有很多。史文俊等人提出一種在RC4加密算法PGRA階段引入混沌映射的方案,改變了弱密鑰缺點(diǎn),擴(kuò)大了原算法的密鑰空間,增加了算法的安全性;楊吉云深入分析的混沌密碼在WSN中的應(yīng)用,提出了一種基于Feistel結(jié)構(gòu)的混沌分組加密算法,在加密的同時(shí)利用混沌Hash函數(shù)產(chǎn)生消息認(rèn)證碼[3]。劉宴兵等在WEP協(xié)議中引入混沌系統(tǒng),將經(jīng)過(guò)Logistic映射得到的混沌序列作為RC4算法的種子密鑰,提高密鑰的隨機(jī)性,增加破譯難度[4]。
本文提出一種在KSA階段引入混沌信號(hào)的方法來(lái)解決RC4弱密鑰、相關(guān)密鑰的問(wèn)題。
混沌系統(tǒng)是指一種看似隨機(jī)的確定性系統(tǒng),類似于隨機(jī)現(xiàn)象。由于混沌系統(tǒng)對(duì)初值敏感,能產(chǎn)生擴(kuò)散和混亂效果的特性,所以非常適合用于密碼算法[5]。
Logistic映射是一種常用的簡(jiǎn)單的混沌映射,一維Logistic映射表示為:
其中,0≤μ≤4,Xn是第n次迭代的值,Xn+1是第(n+1)次迭代的值,μ為參數(shù),當(dāng)μ=4時(shí),稱為滿映射。
RC4算法是一個(gè)以分組長(zhǎng)度n為參數(shù)的二元加法流密碼體制,該算法非常簡(jiǎn)單,包括兩個(gè)部分[6]:
(1)KSA(Key Scheduling Algorithm密鑰調(diào)度算法),由輸入的隨機(jī)密鑰K(典型長(zhǎng)度為64或128比特)生成一個(gè)元素0,1,…,N-1組成的初始排列S{0,1,…,N-l},一般為256;
(2)PRGA(Pseudo Random Generation Algorithm偽隨機(jī)密鑰序列生成算法),PRGA借由KSA產(chǎn)生的S生成偽隨機(jī)密鑰序列,最終與明文相異或產(chǎn)生密文。
偽代碼表示為[6]:
本文提出,在RC4算法的KSA部分,添加混沌信號(hào)來(lái)增加流密碼的隨機(jī)性和遍歷性等性質(zhì)。
算法依然分為密鑰調(diào)度算法(KSA)和PRGA兩部分;PRGA部分步驟不變,KSA分為以下幾步:
(1)種子密鑰K通過(guò)以下方法初始化為X0,作為混沌映射的輸入;
外部密鑰K包含128位(16個(gè)字節(jié)),用位流表示為:
我們將K分為兩部分K1,K2;每一部分包含64位(8個(gè)字節(jié)),用位流表示為:
然后計(jì)算兩個(gè)位流
然后用實(shí)數(shù)值X01和X02計(jì)算出初始值X0
(2)X0作為L(zhǎng)ogistic映射的初值
本文中取μ=4,在經(jīng)過(guò)一定迭代次數(shù)后,得到的Xn。
(3)因?yàn)長(zhǎng)ogistic映射的到的Xn∈0,[]1 ,需要將其轉(zhuǎn)換到[0,256]區(qū)間中:
(4)將轉(zhuǎn)換的temp存儲(chǔ)到U[i](i=0,1,…255),多次執(zhí)行混沌映射,知道U填滿。
(5)構(gòu)造初始S[i](i=0,1,…255),其中元素從0開(kāi)始依次遞增:
(6)將S盒與U及種子密鑰K進(jìn)行混合置換操作:
S先與混沌得到的U進(jìn)行混合置換操作,然后與種子密鑰進(jìn)行混合置換,保證了S中每一個(gè)元素都得到了執(zhí)行,起到了很好的混亂與擴(kuò)散的效果。
以上步驟得到加入了混沌的S盒,然后就用偽隨機(jī)數(shù)生成算法PRGA得到密鑰流,與明文異或得到密文。
圖1 加密算法結(jié)構(gòu)
混沌RC4的解密算法與加密算法過(guò)程一樣,只是最后用生成的偽隨機(jī)序列與密文進(jìn)行異或。
參照[7-8]的分析方法,本文從密鑰敏感性、平衡性、字符頻率以及性能四個(gè)方面對(duì)混沌加密算法進(jìn)行分析。
RC4算法具有線性相關(guān)、弱密鑰、相關(guān)密鑰等缺陷,具體表現(xiàn)在密文序列對(duì)密鑰敏感度低,相關(guān)密鑰容易產(chǎn)生相似輸出。本文通過(guò)采用相似的密鑰(ahsnglid7395909與ahsnglid7395908)對(duì)同一明文進(jìn)行加密,分析密文序列的相似性,實(shí)驗(yàn)結(jié)果如下:
圖2 用ahsnglid7395909加密后密文
圖3 用ahsnglid7395908加密后密文
從結(jié)果分析來(lái)看,密文完全不同,由此可以看出,混沌RC4算法對(duì)密鑰的敏感性很高,該算法很好的克服了RC4弱密鑰,相關(guān)密鑰的缺陷。
若產(chǎn)生的密文是隨機(jī)的,將具有較好的‘0’、‘1’平衡,即得到的密文中‘0’、‘1’的個(gè)數(shù)應(yīng)該差不多,本文對(duì)生成的序列進(jìn)行統(tǒng)計(jì)分析,結(jié)果如下:
表1
從上表可以看出,‘0’、‘1’個(gè)數(shù)相差不多,并且隨著明文長(zhǎng)度的增加,兩者之間的數(shù)量也在接近,說(shuō)明了密文具有良好的‘0’、‘1’平衡性。
字符頻率也能反映密文的隨機(jī)性,是分析破譯密碼的有效信息,若密文是隨機(jī)的,則密文序列每個(gè)字符的ASCII碼在[0,256]區(qū)間中應(yīng)該是均與分布的。
下面對(duì)分別用RC4算法和混沌RC4算法統(tǒng)計(jì)加密后序列的ASCII碼值的頻率,實(shí)驗(yàn)結(jié)果如下:
圖4 明文ASCII碼頻率統(tǒng)計(jì)
圖5 混沌RC4與RC4密文ASCII碼頻率統(tǒng)計(jì)
從圖中可以看出,混沌RC4密文序列相較與RC4算法更加平均,說(shuō)明混沌RC4算法具有更好的擴(kuò)散效果。
無(wú)線傳感器的資源有限,算法執(zhí)行速度,所需存儲(chǔ)空間是衡量算法效果的重要指標(biāo),本文將主要從加密時(shí)間、內(nèi)存空間兩方面對(duì)其進(jìn)行性能分析。對(duì)以下算法本文均采用128位密鑰,RC5進(jìn)行典型的12迭代,輸入字長(zhǎng)為32位。
表2
結(jié)果如表所示,RC4算法執(zhí)行速度最快,混沌RC4算法雖然變量空間最大,但執(zhí)行速度比RC5算法快。
本文提出了一個(gè)基于RC4流加密和混沌Logistic映射的WSN加密算法,實(shí)驗(yàn)結(jié)果表明,該算法,該算法可以作為一個(gè)用于資源有限的WSN數(shù)據(jù)加密的替代算法,因?yàn)樵撍惴ǎ海?)具有較快的加密速度,降低電量消耗;(2)有很好的安全性,解決了RC4算法弱密鑰、相關(guān)密鑰等缺陷。
[1]Andrew Roos.A class of weak keys in the RC4 stream cipher[OL].http://marcel.Wanda.ch/Archive/WeakKeys,Post in sci.encrypt,September 2004.
[2]Grosul and D·Wallach.A related key cryptanalysis of RC4,TechReport[R].TR-00-358,Department of Computer Science,Rice University,June 2000.
[3]楊吉云.混沌密碼在無(wú)線傳感網(wǎng)絡(luò)安全中的應(yīng)用研究[D].重慶大學(xué),2007.
[4]劉宴兵.基于混沌的RC4流加密算法[J].計(jì)算機(jī)工程,2011,37(2).
[5]陳帥.無(wú)線微傳感器網(wǎng)絡(luò)混沌加密理論及其關(guān)鍵技術(shù)研究[D].重慶:重慶大學(xué),2006.
[6]耿嘉,曹秀英.一種攻擊RC4-WEP類密碼的改進(jìn)方法[J].通信學(xué)報(bào),2004,25(1):ll-21.
[7]許連杰.基于混沌加密無(wú)線傳感器網(wǎng)絡(luò)安全技術(shù)研究[D].哈爾濱工業(yè)大學(xué),2013.
[8]Ginting,R.U,Dillak,R.Y.Digital color image encryption using RC4 stream cipher and chaotic logistic map [C]//.International Conference Information Technology and Electrical Engineering(ICITEE).2013:101-5.