999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于混沌的無線傳感器網絡分組加密算法

2022-10-01 02:41:22葛仕杰汪烈軍李永明
計算機工程與設計 2022年9期

葛仕杰,汪烈軍,李永明

(1.新疆大學 軟件學院,新疆 烏魯木齊 830046;2.新疆大學 信息科學與工程學院,新疆 烏魯木齊 830046)

0 引 言

隨著無線通信技術的發展和國家對萬物互聯的倡導,WSN現已廣泛應用于環境監測、醫療監測、軍事監測、智能電網、智能交通、智能家居等多個領域,保證通信安全[1]顯得尤其重要。根據TinySec(Security for TinyOS)、SPINS等安全協議的推薦,目前WSN中廣泛使用的算法為RC5算法。RC5-w/r/b算法是專利算法,商業推廣成本較高,并且32 bit分組的RC5算法已經被證實存在安全隱患。RC6算法的出現是為了解決RC5算法存在擴散不足的缺陷,但由于算法中模乘運算占用過多的計算空間,導致計算能耗過高而不適用于大多數WSN。近年來,許多學者提出了輕量級分組密碼[2]設計方案來替換RC5算法。田四梅設計了新的混沌S核[3]提升了算法的安全性,但也占用了較多的存儲空間。鄧昀等[4]通過對RC6算法增加對稱層的方式降低了硬件資源消耗,使用雙密鑰機制達到了算法輕量化的目的。L.Yi等設計了基于Feistel網絡結構[5]的混沌S核加密算法和混沌分組加密算法,通過實驗驗證了Feistel結構的加密算法具有更高的執行效率。Yuling Luo等[6]針對許連杰提出的CWSN算法進行改進,在加密函數中使用兩個一維混沌映射參與加解密來提高混淆和擴散特性。王亞華等[7]借助云服務器的強大計算能力,將子密鑰同步轉移到云服務器上,從而設計出了更為安全的一次一密動態子密鑰加密方案,但是節點頻繁的接收密鑰,導致傳輸過程能耗較高,且信道安全性和穩定性難以保證。Masoumeh.Sharafi對BCC算法[8]的改進提升了算法性能,通過減少BCC算法中的置換調用次數,增加算法輪數的方法,提升了算法的內存利用率,大大降低了算法能耗。盧政橋[9]通過logistic混沌隨機序列對WEP通信協議進行改進,得到安全的加密算法,這種加密方式沒有考慮整型后的混沌序列存在短周期的問題。LongTeng Yi等通過正弦混沌映射、baker映射、復合混沌映射[10]、線性同余生成器生成S核來增加擴散,增強加密算法的安全性,過多混沌映射引入使得算法計算能耗增加。結合上述算法的特點,設計出基于RC6算法的輕量級分組加密算法,算法使用RC6的加密框架,用兩個一維混沌映射替代了RC6算法的模乘運算,這樣一來既提升了算法加解密速度,又達到降低計算能耗的目的,本文還對加、解密函數進行了改進,引入兩個一維混沌參與加、解密函數,使得算法更好抵抗明文攻擊,具有更高的安全級別。

1 一種適用于WSN的算法設計方案

RC6算法最小明文分組是128 bit,針對WSN的數據包特征分組較大會引入過多冗余字節,32 bit的明文分組的加密算法被認為最適合用于WSN軟件加密。為使RC6-32/20/16算法更好用于WSN,將RC6中4個32 bit的寄存器改為4個8 bit的寄存器,Feistel網絡結構下的8 bit的數據單元,非常適合WSN中字長為8 bit的節點運算,這樣單次加密的明文分組大小就是32 bit。本文提出的方法使用了CBC(分組連接)模式[11],初始向量也為32 bit。在加解密算法中取消了復雜的模乘運算,代替為Cubic混沌映射參與加解密,使用RC6中的循環位移函數,解決了RC5中循環位移不依賴寄存器中所有位的不足。Feistel網絡結構最大的優勢就是加解密算法可逆,能夠將F函數進行復雜的設計,文獻[2]中詳細對比分析了當前18種輕量級分組加密算法,講述了置換網絡與Feistel網絡的應用特點。本文主要用兩個一維混沌Logistic、Cubic和線性同余生成器生成主函數,整個算法中只涉及模加、模減、循環位移等簡單的運算。

混沌現象在第一次被發現和定義后,人們陸續發現許多混沌現象,在諸多混沌現象中,離散性混沌映射已經被證實在加密中優于較多混沌方程,WSN加密中常用的離散混沌映射有Logistics映射、Cubic映射、Tent映射、Henon映射等。由于高維混沌[12]較為復雜多用于圖像加密[13],并不適用于資源有限、計算能力較弱的WSN中,因此在本文所提算法使用的是兩個一維混沌,兩個一維混沌參與算法的加解密及主密鑰的生成,cubic混沌映射參與子密鑰的生成。

1.1 Logistic混沌方程介紹

一維Logistic映射在WSN中應用最多,如式(1)所示

xn+1=μxn(1-xn) 0≤μ≤4

(1)

式中:μ是參數,當μ∈(3.57,4] 時,Logistic出現混沌現象,由于混沌映射存在浮點運算,而節點不能處理浮點運算,因此需要對Logistic映射進行整型化,整型化過程在文獻[12]中有詳細的推導過程,就不再贅述。整型化后如式(2)所示

(2)

根據封閉式原理,整型后的公式只要初始值不取0,則迭代結果zk∈[1,2a-1],a=2L-1, (L為計算機字長),當取L=32,整型后的最小周期為14 448。式(2)中只涉及簡單的模加、模減和循環位移運算,能夠在節點上完成。

1.2 Cubic混沌方程及其整型化過程

一維Cubic混沌映射如式(3)所示

(3)

a,b是參數,圖1關于a的映射圖像,可以看出隨著參數a的增大,輸出區間越來越小,圖2是關于b的映射圖像,當參數b=2.3時圖像出現混沌狀態。通過圖1可以得到當a=4時,xk∈[-1,1], 為了獲得較好的隨機狀態,取a=4,b=3, 得到公式

(4)

圖1 Cubic混沌映射關于a的圖

圖2 Cubic混沌映射關于b的圖

為了避免節點處理浮點運算,需要將式(4)進行整型化處理,令yk=c(xk+1), 可以得到

(5)

將式(5)帶入式(4),可以得到

(6)

(7)

式(7)中消除了迭代后存在零解的情況,根據封閉式原理,當初始值在區間 [0,2c-1] 上任意取值,都不會在迭代后出現零值,且迭代后的值yk∈[0,2c-1], 經過整型化后Cubic混沌映射可以用于WSN網絡中資源受限的節點處理數據。

2 算法設計

2.1 加密算法

加密算法采用CBC分組模式加密,將輸入的32 bit明文序列先與上一次密文進行異或操作(首次輸入明文序列時,與32 bit的初始向量異或),整個密文序列中每個單獨加密的分組都與前一組的密文有著更強的關聯性,以此消除明文、密文序列間的統計性規律,增強算法的混淆和擴散特性。在每組加密的過程中,將32 bit明文序列從低到高位依次存放在A、B、C、D這4個寄存器中,加密算法都是以8 bit的數據為單位進行處理,整個算法里只涉及加法、移位、異或等簡單的節點CPU運算指令,保證算法在安全性的基礎上,具備加密速度快、能耗低的優勢。

本文所提加密算法采用RC6的加密體系結構,如圖3所示,⊕表示按位異或運算,‘+’代表模2w加運算,a<>b表示a向左或向右移動b位,f密函數,S為子密鑰,每輪加密用到2個子密鑰,加上開頭和結尾用到的4個子密鑰,一共需要用到2r+4個子密鑰(r表示加密輪數),該算法加密輪數定為7輪(第三節會進行詳細說明)。

圖3 算法加密結構

加密過程的描述:

整個加密包含兩個相似的Feistel結構,該結構的最大特點就是每輪只處理一半的數據,在第一輪加密時,輪函數f只作用于B和D,完成對數據A和C的處理,為了更好的掩蓋明文信息,這里對B和D先跟子密鑰完成異或操作,在最后一輪加密時,為了保證產生的密文信息擴散效果相同,添加了兩個子密鑰對A和C進行異或操作。在重復迭代過程中,輪函數f對異或后的數據B、D加密,加密產生的序列循環位移數是3個字節(這里w=8),此時B產生的新序列的ASCII值對8取余作為C的循環位移量,同理D產生的新序列的ASCII值對8取余作為A的循環位移量,這兩個位移量會根據輸入明文信息的改變而不同,因此我們稱為動態位移量,B產生的新序列與A完成異或操作后,再完成動態位移后再與輪密鑰異或完成對A的單輪加密過程,其加密結果需要存放到D中。對C的加密過程與上述相同,完成單輪加密的序列需要存放在B中。B和D在第一輪中沒有變化,只需要將對B異或后的序列存放在A中,將D異或后的序列存放在C中,這樣在每輪加密時就能處理到各個存儲器中的數據。

Feistel是一種對稱的網絡結構,f函數對于算法的加密效果的起到決定性作用,該網絡結構無需要求f函數可逆,因此在設計函數時可以根據算法需求進行調整。圖4是f函數的內部結構,P是16 bit的置換盒。

如圖4所示,我們在設計f函數時,先將輸入的8 bit數據擴展為16 bit的數據,為了使擴展后的數據信息與初始信息差異化更大,引入了一個16 bit的置換盒(P盒),置換是加密中最常用也是最有效的擴散方式。擴展后的序列被分為左右兩個部分,再引入f函數設計中最為關鍵的非線性函數,我們將整型后的兩個混沌映射分別作用于其中的一部分,最后將產生的混沌序列異或,得到的還是8 bit的序列。經實驗結果證明,對原序列擴展后引入混沌映射得結果,在混淆和擴散上遠遠好于混沌映射依次作用于8 bit的初始值。

圖4 f函數內部結構

混沌映射的迭代輪數由輸入的8 bit序列決定,由于在8 bit的處理器上,整型化后的Cubic映射周期最大值僅為26。為避免迭代次數超過Cubic映射最大迭代周期,本文取混沌迭代的最大輪數為13,經過多次實驗證實,迭代13輪不會出現混沌現象衰退的情況,也能很好保證輸入消息經過多次迭代,達到良好的擴散效果。通過輸入序列對13進行取余計算,得到動態的迭代輪數,保證在每輪加密中混沌映射的迭代倫數都不一樣,可以提升算法的安全性。

2.2 密鑰擴展算法

在密鑰擴展算法的設計中,我們先對主密鑰序列的生成過程進行了改進,我們通過線性同余隨機數生成器生成兩個32 bit的初始序列,然后將這兩個序列作為兩個混沌映射的輸入,經過混沌迭代產生兩個隨機的32 bit的序列,之后我們引入混沌級聯的思想,將兩個迭代后的序列異或,產生32 bit的主密鑰序列,重復執行幾次我們就獲得了多個32 bit的序列,隨機選取4個不同的序列組成加密所需的128 bit主密鑰序列。

在8 bit處理器上,整型化后的Cubic映射周期最大值僅為26,文獻[6,7]通過自相關性計算,證明了整型后logistic混沌映射、Cubic混沌映射存在的短周期問題,解決辦法就是將產生的混沌序列進行復合,復合的操作即將兩個混沌映射產生的序列進行異或操作,圖5是復合混沌序列進行量化后的自相關性,可以看出量化后的復合序列具有良好的自相關性,說明混沌序列具有良好的隨機性。

圖5 復合序列的自相關性

為進一步擴大序列的周期,保證序列具有更好的隨機性,在此基礎上引入線性同余隨機數生成器,本文使用參數最常用取值的公式,可以表示為

L(n+1)=(16807×L(n))mod(231-1)

(8)

加入線性隨機數生成器后,根據延長周期復合定理可知,新的復合序列的周期是3個序列周期的最小公倍數,也就是線性同余序列的周期231-1, 新的復合序列的產生過程如圖6所示。

圖6 復合序列的生成過程

從圖6復合序列產生的32 bit的隨機序列中隨機選取4個不同的序列Z1、Z2、Z3、Z4, 按照選取順序從高位到低位組成128 bit的主密鑰K,為方便表述將主密鑰K用16個8 bitki劃分,即K={k0,k1…k15}, 密鑰擴展算法每輪產生兩個子密鑰,因為需要產生2r+4個子密鑰,所以需要執行r+2輪,算法1是一輪子密鑰算法的生成過程,P表示16 bit的置換,其存儲的位置置換信息稱為P盒。

算法1:密鑰擴展算法

輸入:128 bit主密鑰K={k0,k1…k15}

輸出:2個8 bit子密鑰kr1、kr2

(1) for i=0 to 15 do

(2) {

(3) if i%2==0

(4)ki=Cubic(ki);

(5) else

(6)ki=ki⊕ki-1;

(7)ki=Cubic(ki);

(8)ki-1ki=P(ki-1ki);

(9) }

(10)K=K?7;

(11)kr1=k0⊕k8;

(12)kr2=k4⊕k12;

算法1中主密鑰由16個8 bitki組成,當i為偶數時執行混沌映射,當i為奇數時先ki與ki-1進行異或,異或的結果再次經過混沌映射,每兩個ki計算完就用16 bit的P盒進行置換,置換操作執行8次后生成新的128 bit密鑰序列,新的密鑰序列循環位移7位,得到新的主密鑰序列用于下一輪子密鑰生成。循環位移位數遵循log2w規則,其中w表示序列長度,因此w=128 bit,計算結果為7,所以循環位移7位。輪密鑰是選取每個Zi的高8位字節異或而得。

2.3 解密算法

如上所述Feistel結構是對稱,因此解密算法就是加密算法逆過程,唯一的區別就是子密鑰的使用順序與加密相反。例如加密算法密鑰參與順序為Ki1,Ki2,Ki3,Ki4, 那么解密算法的密鑰參與過程為Ki4,Ki3,Ki2,Ki1。 解密過程中的置換盒如下

3 實驗結果

本文所提算法用C語言實現,本節通過詳細對比實驗數據驗證了所提算法的安全性。

3.1 統計性測試

3.1.1 “0-1”平衡性測試

首先將密文轉為二進制表示,如果加密效果良好,那么二進制密文中“0”、“1”應當是均等分布的,理論上各自占據的比例為0.5,為方便說明,n0表示二進制密文中“0”的個數,n1表示二進制密文中“1”的個數,n表示二進制密文中“0”、“1”的總數,那么式(9)中ε的值越趨近零,表示密文的“0-1”平衡性越好。本文對4個不同明文數據長度進行加密,加密后的密文序列進行平衡性分析

(9)

測試結果見表1,當密文數據越多時,ε的值越接近零。4個不同長度密文的“0”、“1”分布都幾乎是均等的,這表明加密后的密文具有很強的“0-1”平衡性,通過概率統計對比明文和密文的“0”、“1”分布,很難獲得有用的信息,因此可以抵抗統計攻擊。

表1 “0-1”平衡性測試結果

3.1.2 字符平衡性測試

字符頻率統計為了分析明文和密文中ASCII值 [0,255] 分布情況,根據統計結果分析出明文的關鍵信息,是協助破譯密文有效手段,良好的加密算法,能夠消除密文ASCII分布的波動,與明文ASCII沒有有效的關聯關系,達到難以通過統計的方式獲取有效信息的效果,良好的加密方案產生的密文ASCII值平均比例為1/256,即0.0039。圖7是10 029 327 bit明文各字符ASCII值的統計結果,可以看出明文ASCII取值非常不平均,部分的字符在明文中出現的次數過多,這極有可能分析出有效信息。圖8是密文各字符ASCII值的統計結果,可以看出密文ASCII分布沒有規律性,且各字符ASCII統計比例非常平均,統計概率在0.0039附近波動,具有非常好的字符平衡性,具備良好的抗概率統計攻擊。

圖7 明文字符ASCII值占比統計

圖8 密文字符ASCII值占比統計

3.2 信息熵測試

信息熵用來衡量系統的混亂程度,系統的混亂程度越高熵值越大,這里將密文的序列值劃分為8 bit字節為單位,那么在密文序列足夠混亂的情況下信息熵為8,由于密文序列無法做到均勻分布,因此信息熵值越接近8,則驗證密文混亂性越好,加密的安全性越高。信息熵的計算公式可以表示為式(10),其中P(Si) 表示被測信息S中每個8 bit字符Si出現的頻率,理想情況下字符分布是均等的,那么每個字符出現的概率為1/28,因此理想情況下式(10)的計算結果等于8,意味著計算所得結果越接近8,則加密算法的混亂效果越好

(10)

表2列出了不同密文長度情況下的信息熵,從結果可以得到密文長度越大,信息熵越接近于8,整體信息熵接近于理想值,密文信息復雜度很高,具備抵抗信息熵攻擊的能力。

表2 密文信息熵測試結果

3.3 混淆和擴散測試

混淆指明文和密文的關系盡可能的復雜,擴散指明文序列中的一位盡可能多地影響密文中的位數。混淆和擴散在密碼設計時主要以完全性、雪崩效應、嚴格雪崩效應為主要標準。加密算法的輸入為nbit,輸出為mbit,輸入的樣本空間大小為T,aij表示T中只改變輸入的第ibit位,對應輸出的第jbit位發生改變的個數,bij表示在樣本空間中只改變第ibit位的輸出與原輸出之間的差分漢明重量為j的個數。 #X表示X中元素的個數,那么3個標準可以做以下定義。

完全性指加密算法輸出結果的每一比特位與輸入的所有比特位有關,數學定義為

(11)

雪崩效應指初始輸入的任一比特位的變化應該造成加密輸出平均一半的輸出比特位發生變化,數學定義為

(12)

嚴格雪崩效應指輸入的任一比特位的變化都應導致輸出的每一比特位有一半的概率發生改變,數學定義為

(13)

表3是T=20 000時的測試結果,d1=1,d2=1,d3=1說明算法具有較好的非線性擴散特性,加密輪數越高,混淆和擴散效果越好,考慮到算法的安全性與性能的平衡,本文所提算法的加密輪數取7輪,一方面增強了算法安全性,另一方面兼顧算法的性能。表4是本文算法與其它算法的對比,算法執行7輪與其它算法相比都具備較好的混淆與擴散效果,雪崩效果僅次于MCS算法,嚴格雪崩效果僅次于RC6算法。驗證了本文算法的混淆和擴散效果優于大部分傳統經典算法,也說明本文所提算法有足夠強的抗差分攻擊能力。

表3 算法擴散和混亂性與加密輪數的關系

3.4 算法能耗仿真

本文使用TinyOS2操作系統自帶的TOSSIM仿真工具對傳感器節點進行仿真,實現了對RC5、RC6及本文所提算法節點能耗的數據收集工作。仿真實驗設置的傳感器節點數量為100,為盡可能準確獲取算法的計算能耗,只收集CPU的能量消耗作為參考值,將100個傳感器節點的CPU能耗平均值作為最終單個節點的能耗值。通過表5中節點能耗對比可以看出,RC5算法在計算能耗上有著絕對的優勢,本文改進后的算法相較于RC6算法的計算能耗下降了23.9%。

表4 擴散和混亂性比較

表5 算法計算能耗對比

3.5 加密性能測試

受限于WSN節點的資源,算法執行速度與變量所占空間是衡量加密算法可行性的重要標準,表6表明本文所提算法的執行速度優于其它幾種算法,所占空間僅高于單一混沌算法MCS和文獻[6]所提算法,低于傳統經典算法,提升執行速度可以大大降低傳感器能耗,對于資源有限的WSN來說,犧牲一小部分空間換取更高的執行速度是值得的。因此,本文所提算法適用于WSN。

表6 執行速度與存儲空間比較

4 結束語

本文對RC6算法進行改進,復合兩個一維混沌映射的迭代序列,增強了序列的隨機性,引入線性同余隨機數生成器延長了序列的周期,隨機選取4個復合序列組成128 bit主密鑰,保證了算法的密鑰空間足夠大,可以抵抗窮舉攻擊。整型后的混沌映射參與加解密,替代了RC6算法的模乘運算,大大節省了計算能耗,也達到擴散和混淆效果。改進后的RC6算法可以處理32 bit的明文分組,由于繼承了RC6算法的優勢,加解密速度遠高于RC5算法。經實驗證實,該算法具備輕量級特點,安全性較高,性能優于多數傳統算法,可以用于中小型WSN進行安全的數據傳輸。

主站蜘蛛池模板: 青青青草国产| 四虎国产精品永久一区| 午夜高清国产拍精品| 看看一级毛片| 国产亚洲精品97在线观看| 又粗又大又爽又紧免费视频| 特级精品毛片免费观看| 日韩欧美中文字幕在线精品| 日韩毛片免费视频| 呦系列视频一区二区三区| 2019年国产精品自拍不卡| 国内精自视频品线一二区| 国产精品毛片一区| 性欧美在线| 四虎成人在线视频| 永久免费AⅤ无码网站在线观看| 青青久视频| 欧美日本在线观看| 香蕉国产精品视频| 91在线一9|永久视频在线| 国模粉嫩小泬视频在线观看| 亚洲一区二区成人| 国产性爱网站| 国产91特黄特色A级毛片| 欧美成人亚洲综合精品欧美激情| 国内精品自在自线视频香蕉 | 奇米精品一区二区三区在线观看| 热思思久久免费视频| 在线观看亚洲天堂| 亚洲国产天堂在线观看| 超碰精品无码一区二区| 亚洲三级影院| Aⅴ无码专区在线观看| 日韩在线成年视频人网站观看| 婷婷五月在线| 天堂久久久久久中文字幕| 国产人成在线视频| 欧美专区在线观看| 欧美亚洲国产视频| 亚洲天堂自拍| 99视频精品全国免费品| 国产天天射| 最新精品久久精品| 欧美影院久久| 国产迷奸在线看| 中文字幕在线看视频一区二区三区| 国产一级毛片在线| 国产亚洲精品自在久久不卡| 亚洲精品卡2卡3卡4卡5卡区| 真人高潮娇喘嗯啊在线观看 | a在线观看免费| 免费一级毛片完整版在线看| 99一级毛片| 国产福利免费在线观看| 亚洲乱强伦| 伊人精品成人久久综合| 女高中生自慰污污网站| 欧美亚洲中文精品三区| 亚洲成网站| 久久成人国产精品免费软件 | 国产真实乱子伦视频播放| 免费可以看的无遮挡av无码| 99热这里都是国产精品| 亚洲综合久久成人AV| 国产免费怡红院视频| 欧美中日韩在线| 亚洲免费福利视频| 五月天天天色| 国产成人福利在线视老湿机| 色综合五月婷婷| 亚洲综合色婷婷| 久久久受www免费人成| 精品91视频| 亚洲成人播放| 免费毛片全部不收费的| 四虎成人精品| 手机在线免费不卡一区二| 欧美啪啪精品| 亚洲精品另类| 亚洲色图综合在线| 亚洲欧美日韩另类在线一| 在线看免费无码av天堂的|