一種基于安全威脅等級的自適應(yīng)遺傳算法
引 言
加密和認證是無線傳感器網(wǎng)絡(luò)安全中常用的防范手段, 但由于電池容量和計算開銷等方面存在局限,僅通過對節(jié)點進行加密和認證,雖然可以應(yīng)對安全威脅等級保持不變的情形,但是當威脅等級不斷變化時,如果加密和認證功能太弱, 則可能威脅到通信安全,如果太強則增加能耗。因此需要根據(jù)威脅等級對安全屬性(即加密和認證)進行動態(tài)調(diào)整,使二者相互匹配,既保證通信安全,又不額外增加能量消耗。
本文提出了一種基于威脅等級來調(diào)整安全屬性的遺傳算法,它根據(jù)匯聚節(jié)點感知到的威脅等級,通過認證和加密的動態(tài)轉(zhuǎn)換,實現(xiàn)安全屬性的自適應(yīng)調(diào)整,改善了現(xiàn)有的安全防范方式。
1 遺傳算法中安全節(jié)點適應(yīng)度函數(shù) SNF的構(gòu)建
在遺傳算法的應(yīng)用中,需要對適應(yīng)度函數(shù)進行評估,從而決定啟用傳感器節(jié)點安全要素的最佳時機。當通信數(shù)據(jù)的完整性受到威脅時,安全節(jié)點適應(yīng)度(Secure Node Fitness, SNF)支持啟用節(jié)點的安全元素。匯聚節(jié)點會持續(xù)跟蹤特定路徑上的所有不規(guī)范數(shù)據(jù)包。如果路徑(簇頭節(jié)點→匯聚節(jié)點) 傳輸“錯誤的數(shù)據(jù)包”或“重發(fā)的數(shù)據(jù)包”,將會受到懲罰。 SNF 表示為:
其中,λ1+λ2=1,λ2 是加密的“貢獻獎勵”,R 表示路由總數(shù)量,θi 表示路由 i 受到的威脅等級(由匯聚節(jié)點計算),Ki 表示路由 i 上開啟認證和加密的節(jié)點數(shù)量,N 表示路由 i上節(jié)點的總數(shù)量。 如果路由 i上節(jié)點 n 開啟認證,那么 Iin=1,否則 Iin=0。Fin( ·) 表示在路由 j 上的節(jié)點 i 開啟接入控制而產(chǎn)生的懲罰函數(shù),函 數(shù)中的 Q 和 ψ 分別表示電池的量化等級和使用率。
2 啟用安全屬性的遺傳算法
主密鑰 MK 可導(dǎo)出對稱加密密鑰 Kencr、消息認證密鑰 Kauth,并生成偽隨機數(shù)密鑰 Krand。這些導(dǎo)出的密鑰可以根據(jù) 匯聚節(jié)點的需求任意改變。主密鑰由節(jié)點和匯聚節(jié)點共享,是 節(jié)點 - 匯聚節(jié)點之間信息傳遞的唯一密鑰。偽隨機數(shù)由導(dǎo)出密 鑰 Krand 和計數(shù)器 C 共同產(chǎn)生,為避免受到“明文”攻擊,在 信息被加密之前插入此偽隨機數(shù)。

節(jié)點間的通信密鑰 INCK 由兩個節(jié)點共享,并對兩個節(jié) 點之間傳輸?shù)男畔⑦M行認證,認證密鑰為 INCKmac。匯聚節(jié) 點根據(jù)路由的層次結(jié)構(gòu),以及應(yīng)用于端口 0 和 1 的 MAC 密 鑰 INCK0mac 和 INCK1mac 為參與信息認證的每個簇間路由器 ICR(或簇頭節(jié)點 CH)提供一種封裝的通信密鑰 INCK,即 INCK={(INCK0mac),(INCK1mac)}。每個節(jié)點根據(jù)自身的 Kencr (由主密鑰導(dǎo)出)對封裝的數(shù)據(jù)包進行解密,并提取出 INCK。 與 SPIN 協(xié)議相似的是,算法采用“計數(shù)器模式分組密碼”進 行加密 / 解密,并采用“CBC-MAC”模式認證。
每個傳感器節(jié)點的安全策略用兩位二進制數(shù)表示,這些 安全策略形成染色體串,即節(jié)點。定義為:(e1a1a2…aN)1(e1a1a2… aN)2…(e1a1a2…aN)R。其中,(e1a1a2…aN)i 表示路由 i上節(jié)點 n 的安全屬性(en&an),en 和 ai 分別表示加密位和認證位。通 過設(shè)置 en=1,就可以對 CH 的數(shù)據(jù)進行加密。根據(jù)以上原理, 圖 1中安全屬性染色體 =11011,節(jié)點 2 在端口 0 處不需要信息 認證,但是在端口 1 處需要,因此 INCK1mac2=INCK0mac3。匯聚節(jié)點在 ICR 和 CH 端口處生成 INCK 密鑰,啟動基于安全 屬性染色體(遺傳算法產(chǎn)生)的認證過程如圖 1 所示。

算法流程如圖 2所示。產(chǎn)生初始種群的染色體串一部分由隨機數(shù)發(fā)生器(RNG)產(chǎn)生,另一部分則由以前的種群樣本產(chǎn)生。算法采用 標準加權(quán)輪盤 方式,選擇 n個染色體串投入到 配對庫 中,以 交叉概率 產(chǎn)生 N個染色體。染色體繁殖期間,多個交叉點的位置由隨機數(shù)發(fā)生器(RNG)計算產(chǎn)生。變異時將生成的 N個染色體放入突變庫,突變算子根據(jù)自適應(yīng)突變概率(與平均適應(yīng)度成反比)使其發(fā)生突變,采用類似拋硬幣的方式來決定是否要將比特位進行逆變處理(即0 → 1,1→ 0)。在選擇階段,根據(jù)適應(yīng)度值,從 N+n個(n個雙親,N 個孩子)染色體中選取 n個染色體延續(xù)到下一代。比較每一次迭代得到的最優(yōu)適應(yīng)度,如果最大適應(yīng)度值和平均適應(yīng)度值變化不大、趨于穩(wěn)定,那么此適應(yīng)度值即為近似全局最優(yōu)解。
3 仿真與分析
仿真的實驗場景由100個節(jié)點組成,這些節(jié)點隨機分布在 3030的區(qū)間內(nèi),每個節(jié)點具有唯一的UUID,隨機分配量化值為 0 ~15 之間的電池容量,坐標介于(0,0)~(30, 30)之間,覆蓋范圍為 3 3。GA 運行時的交叉率為 60%,初始變異率為 6%。實驗?zāi)M匯聚節(jié)點的運行,NS-2 軟件模擬網(wǎng)絡(luò)流量。
根據(jù)匯聚節(jié)點感知到的威脅等級,通過認證和加密的動態(tài)轉(zhuǎn)換,改善已有的安全防范方式,如圖 3 所示。在基于威 脅等級調(diào)整安全屬性的過程中,由于計算開銷和處理數(shù)據(jù)包 頭部的開銷均有所降低,安全節(jié)點的能耗也降低,這在一定 程度上有效促進了電池的使用,最大限度地減少了異常節(jié)點帶 來的不利影響。
4 結(jié) 語
本文提出了一種基于威脅等級來調(diào)整安全屬性的遺傳算 法,它根據(jù)匯聚節(jié)點感知到的威脅等級,通過認證和加密的 動態(tài)轉(zhuǎn)換實現(xiàn)安全屬性的自適應(yīng)調(diào)整,使威脅等級和安全屬 性相互匹配,此舉既提高了通信的安全性,也有利于改善傳 感器節(jié)點的能效。