周 影,褚麗莉,陳 佳
(遼寧工業(yè)大學,遼寧 錦州 121000)
網(wǎng)絡編碼理論[1]的提出,為數(shù)據(jù)傳輸帶來了深刻的影響,相比路由單一的存儲轉(zhuǎn)發(fā)功能,網(wǎng)絡編碼通過節(jié)點對上游數(shù)據(jù)進行存儲—編碼—轉(zhuǎn)發(fā),從而提高網(wǎng)絡吞吐量、魯棒性[2]和安全性。
網(wǎng)絡編碼在提升數(shù)據(jù)傳輸能力的同時,網(wǎng)絡仍具有被監(jiān)聽的風險。針對抗竊聽安全網(wǎng)絡編碼,對抗竊聽攻擊的方法主要有兩種:信息論方法和密碼學方法。Cai 等人利用傳統(tǒng)信息論方法對抗網(wǎng)絡編碼中的竊聽攻擊[3],從而使竊聽攻擊者竊聽到網(wǎng)絡中的任意一個竊聽子集均無法通過其譯碼恢復出原始消息向量。在此基礎上,文獻[4]中進一步提出了r-安全網(wǎng)絡編碼方案,但該方案提出的前提是竊聽鏈路數(shù)少于竊聽網(wǎng)絡鏈路的最大值,且不適用于多源網(wǎng)絡。因此利用信息論實現(xiàn)對抗竊聽的編碼方案必須具備限制條件,即限定竊聽者的竊聽能力。
相比信息論對抗竊聽攻擊的局限性,基于密碼學抗竊聽方案更具優(yōu)勢。Zhang 等人[5]提出了一種P-Coding 抗竊聽安全網(wǎng)絡編碼方案,該方案利用一個置換函數(shù)將全局編碼系數(shù)和編碼后的消息向量進行混合和重新排列,從而無法正確譯碼出原始數(shù)據(jù),達到抗竊聽的目的。但是需要對整個信源消息加密,并且該方案無法抵抗已知明文攻擊。Fan 等人[6]利用同態(tài)加密的方法隱藏全局編碼系數(shù),從而使竊聽者無法竊聽信源消息,但是此方案要求在較大的有限域內(nèi)進行編解碼,導致計算復雜度偏高。
綜上所述,本文提出一種新的抗全局竊聽的安全網(wǎng)絡編碼方案,該方案不會增加寬帶消耗,并且不改變中間節(jié)點的編碼方式,對信源組播率沒有要求。分析表明該方案可以達到安全網(wǎng)絡編碼的要求。
表1 各節(jié)點端口號以及對應端口接收的消息
對于一個多元多宿網(wǎng)絡結(jié)構G=(V,E),其中V代表網(wǎng)絡中的節(jié)點集,E代表有向邊集,節(jié)點集合包含三部分,分N={N1,N2,…,Nm}別為信源節(jié)點集合S={S1,S2,…,Sn},中間節(jié)點集合,
信宿節(jié)點集合R={R1,R2,…,Rk},根據(jù)網(wǎng)絡結(jié)構,確定信源節(jié)點Si的傳輸速率mi,每個信源節(jié)點的傳輸速率決定了多播容量。信源節(jié)點Si發(fā)送m條消息至信宿節(jié)點,消息長度為n,信源消息為xi。
多源隨機網(wǎng)絡編碼是不同于單源網(wǎng)絡編碼的含有多源多宿的網(wǎng)絡結(jié)構,對于一個多源多宿網(wǎng)絡[7],源節(jié)點間的組播率相互約束,利用枚舉法求得網(wǎng)絡模型的可達信息率域邊界C={(1,4),(2,3),(3,2),(4,1)},為了不重復贅述兩個信源的構造方法,選取區(qū)域內(nèi)的的組播率都為2[8]。
(1)考慮多信源多信宿。
(2)竊聽者可以對網(wǎng)絡中的所有信道進行竊聽,即竊聽者為全局竊聽者。
(3)竊聽者知道網(wǎng)絡中的整個編解碼方案和消息傳輸方案,但無法獲得加密密鑰。
(4)本通信模型只考慮竊聽攻擊。
(5)密鑰分配中心(KDC)為源節(jié)點和信宿節(jié)點分配密鑰。
混沌系統(tǒng)是指存在于一個確定性系統(tǒng)中看似隨機的不規(guī)則運動,其行為具有不確定性、不可重復性、不可預測性?;煦缦到y(tǒng)對初始狀態(tài)和控制參數(shù)極其敏感[9]。其中,Logistic 映射屬于一維混沌系統(tǒng)[10],又稱為蟲口映射。由May 在1976 年提出,用來統(tǒng)計昆蟲或者人口數(shù)量變化的一個簡單的數(shù)學模型[11],其表達式如(1)所示:
其中,n=1,2,3,…,參數(shù)μ表示控制參量μ∈(0,4],變量xn∈[0,1]。
研究發(fā)現(xiàn),當xn∈[0,1],μ∈(3.569,4]時,系統(tǒng)處于非收斂狀態(tài),圖2 為Logistic 分叉圖。
圖2 Logistic 分叉圖
首先利用Logistic 混沌系統(tǒng)生成預編碼系數(shù)矩陣,通過除法運算G生成所要傳輸?shù)南?;將消息以隨機網(wǎng)絡編碼的方式發(fā)送到下游節(jié)點;最終在信宿節(jié)點進行譯碼操作。編碼方案流程圖如圖3 所示。
混沌系統(tǒng)具有不可預測性,相差微小的兩個初值,經(jīng)過迭代后產(chǎn)生的數(shù)組相差甚遠,且得到的結(jié)果不能計算出原始數(shù)據(jù),根據(jù)該特性,初始值以及參數(shù)作為logistic 加密的密鑰。
首先,利用logistic 系統(tǒng)產(chǎn)生小數(shù)向量Y={y1,…,ym},選取yi中的第2.4.6.8.10 位構成一個整數(shù)ti,此時ti的位范圍為0 到99999,m個ti組成一個整數(shù)矩陣,形式如下:
圖3 編碼方案流程圖
通過公式(3)計算得出帶有信源消息的大數(shù)非整數(shù)矩陣Z:
利用Z對信源消息進行隱藏,得到的結(jié)果矩陣為A:
為了使消息在有限域中F28進行運算,將A變成整數(shù),通過256 進行除法操作,得到商矩陣Qu和余數(shù)矩陣Re。通過AES 加密算法對Qu行加密成為E(Qu),Re 序列作為被編碼消息進行網(wǎng)絡編碼,最后以Data=[α|C|E(Qu)]形式傳遞給中間節(jié)點,其中α為系數(shù)矩陣,C為編碼結(jié)果矩陣。
(1)信宿節(jié)點收到數(shù)據(jù)后,對m個非線性系數(shù)向量和結(jié)果向量進行組合,通過有限域高斯消元方法求解出余數(shù)矩陣。
(2)密鑰分配中心將AES 密鑰分發(fā)給各節(jié)點,解出商矩陣。
(3)通過除法逆運算求解以及l(fā)ogistic 解密運算解出原始數(shù)據(jù)。
結(jié)論1 攻擊者在竊聽全部密文的情況下,竊聽者只能通過窮舉法來獲取信源消息。
證明:竊聽者了解整個網(wǎng)絡的編碼方案,通過竊聽信道獲得所傳輸?shù)臄?shù)據(jù)Data,通過解碼能得到余數(shù)矩陣Re,而商矩陣通過AES 加密進而不能夠獲取Z矩陣,所以只能通過窮舉的方法猜測矩陣Z的數(shù)值。
結(jié)論2 竊聽者通過窮舉法無法獲得序列Z,所以無法獲得信源消息X。
證明:已知ti是由yi的2,4,6,8,10 位組成的整數(shù),tm 屬于[0,100000],而ym 截取小數(shù)點后的12 位,范圍為[10^-12,0],z的范圍在[0,10^17]。
通過計算得出t>1,而進行網(wǎng)絡編碼信源節(jié)點的組播率m應大于1,且m,n均為整數(shù),所以t一定大于1,能夠抵抗全局竊聽攻擊。
下面以圖1 為網(wǎng)絡模型,給出一個在有限域F28的安全網(wǎng)絡編碼(數(shù)據(jù)用十進制表示)。選取兩信源節(jié)點組播率均為2,數(shù)據(jù)長度n均為1。以信源節(jié)點1 為例,x1={38,121}T。設定logistic 混沌系統(tǒng)初始值向量為:
經(jīng)過公式(1)500 次迭代得到y(tǒng)={0.8634074378729123 0.6322734168356746},利用y向量,提取T矩陣,通過公式(3)計算得到Z:
利用公式(4)計算攜帶信源節(jié)點1 原始消息的矩陣A:
對矩陣A進行整數(shù)運算,并對256 進行除法運算得到余數(shù)矩陣和商矩陣:
利用AES 加密算法對商矩陣進行加密,得到一維字節(jié)數(shù)組:
最后對余數(shù)矩陣進行網(wǎng)絡編碼,將系數(shù)矩陣、商矩陣加密后的字節(jié)數(shù)組以及網(wǎng)絡編碼的結(jié)果矩陣進行打包,向下傳輸。
本文通過加密商矩陣部分防止竊聽者獲取明文信息,商矩陣大小為m*n,所以加密量為m*n。
本文的編碼方案不需要傳輸預編碼矩陣,傳輸過程除系數(shù)矩陣和編碼結(jié)果外需要添加編碼冗余為m。
在信源編碼過程中,需要進行除法操作,也需要對信源消息進行網(wǎng)絡編碼,所以編碼復雜度為O(m2n)。
在結(jié)論二中可知,該方案對組播率沒有限制,所以信源組播率最小值為1。
經(jīng)過理論驗證,該方案對信源組播率沒有要求,各個信源編碼方案互不干涉,所以既適用于單源網(wǎng)絡編碼,也適用于多源網(wǎng)絡編碼。
本文結(jié)合 Logistic 混沌序列提出一種抗全局竊聽的編碼方案,該編碼方案只需在信源節(jié)點處利用混沌序列產(chǎn)生大數(shù)隱藏信源消息,并通過AES 加密商矩陣便可有效對抗網(wǎng)絡竊聽。相比傳統(tǒng)方案,該方案沒有增加寬帶開銷。本文方案只考慮竊聽攻擊不能抵抗拜占庭攻擊,因此本文下一步研究方向為利用混沌加密對抗污染攻擊。