徐光憲,崔俊杰
(遼寧工程技術(shù)大學(xué) 電子與信息工程學(xué)院,遼寧 葫蘆島 125105)
2000年,文獻(xiàn)[1]發(fā)表的開(kāi)創(chuàng)性論文標(biāo)志著網(wǎng)絡(luò)編碼的誕生,他將網(wǎng)絡(luò)中節(jié)點(diǎn)進(jìn)行的編碼稱為網(wǎng)絡(luò)編碼,是指由輸入到輸出的任意因果映射,這是網(wǎng)絡(luò)編碼最廣義的定義。網(wǎng)絡(luò)編碼的提出使得傳統(tǒng)網(wǎng)絡(luò)通信有了階段性的突破。
關(guān)于網(wǎng)絡(luò)編碼的分類可分為隨機(jī)線性網(wǎng)絡(luò)[2]和確定性網(wǎng)絡(luò)。網(wǎng)絡(luò)編碼的大量研究工作集中在隨機(jī)線性網(wǎng)絡(luò)編碼,它為每一個(gè)信源過(guò)程維持一個(gè)系數(shù)向量,該系數(shù)向量是由每個(gè)編碼節(jié)點(diǎn)進(jìn)行更新。與其相反,在確定性網(wǎng)絡(luò)中,每個(gè)編碼節(jié)點(diǎn)之間是由固定鏈路組成的[3],更適合用于穩(wěn)定的組播通信網(wǎng)絡(luò)中,其運(yùn)算所需空間小、計(jì)算量小的優(yōu)點(diǎn)使得組播通信效率得到提高[4]。文獻(xiàn)[5]在2005年提出基于確定線性網(wǎng)絡(luò)的數(shù)學(xué)編碼,隨著研究的深入,學(xué)者們更加注重于多源組播通信的研究[6]。為了降低多源組播問(wèn)題的復(fù)雜度、使系統(tǒng)更穩(wěn)定,文獻(xiàn)[7]提出了虛擬信源的概念,該方案的計(jì)算過(guò)程十分繁瑣,對(duì)網(wǎng)絡(luò)系統(tǒng)的整體性要求較高。文獻(xiàn)[8]在多媒體中應(yīng)用了網(wǎng)絡(luò)編碼思想,利用分層組播的原理進(jìn)行多媒體發(fā)送端與接收端的數(shù)據(jù)信息資源分配。本文也是針對(duì)多源組播通信網(wǎng)絡(luò)來(lái)研究的,在已經(jīng)運(yùn)用組播路由算法確定好的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的系統(tǒng)中,通過(guò)構(gòu)造合適的網(wǎng)絡(luò)編碼算法來(lái)對(duì)網(wǎng)絡(luò)編碼方案進(jìn)行構(gòu)造。
在信息傳輸?shù)倪^(guò)程中,攻擊者對(duì)通信系統(tǒng)進(jìn)行的攻擊主要可以分為2種方式:即污染攻擊和竊聽(tīng)攻擊。傳統(tǒng)網(wǎng)絡(luò)編碼的安全性可以基于信息論和密碼學(xué)的2個(gè)層面來(lái)研究,香農(nóng)[9]在信息論中指出:信息均可以二元數(shù)字化表示,即可以使用0,1比特作為經(jīng)典信息的基本單元,提出了安全網(wǎng)絡(luò)的完全保密定理,在該定理中為了防止竊聽(tīng),發(fā)送端隨機(jī)生成獨(dú)立于信源的密鑰,然后將密鑰通過(guò)安全信道傳輸至信宿,確保信宿可以成功解碼。
一般預(yù)防竊聽(tīng)的安全網(wǎng)絡(luò)編碼方案,竊聽(tīng)者旨在可以截取有限的數(shù)據(jù)包,所以在面對(duì)全局竊聽(tīng)攻擊時(shí),研究者最初提出在原始信源的地方加密整個(gè)消息傳輸?shù)姆椒?但該方法給整個(gè)系統(tǒng)帶來(lái)了很大的計(jì)算負(fù)擔(dān),編碼效率不高。后來(lái),有人提出對(duì)較短的編碼向量在信源處進(jìn)行加密,避免對(duì)較長(zhǎng)的信息內(nèi)容進(jìn)行加密,將未加密的編碼向量信息一起傳輸,輔助信宿節(jié)點(diǎn)進(jìn)行解碼,該方法雖然加密量小,但需要2輪解碼操作,因此可能達(dá)不到預(yù)期的效率。文獻(xiàn)[10]提出了一種典型的防竊聽(tīng)的安全加密方案,整個(gè)過(guò)程是對(duì)全局編碼向量進(jìn)行加密。徐光憲等[11]利用混沌序列來(lái)提高網(wǎng)絡(luò)編碼安全。然而,這些從信息論角度出發(fā)的安全算法,對(duì)全局竊聽(tīng)的攻擊依然存在不足。文獻(xiàn)[12]在已有的弱安全網(wǎng)絡(luò)編碼方案的基礎(chǔ)上進(jìn)行了一定的優(yōu)化,該方案采用了密碼學(xué)中序列密碼的相關(guān)知識(shí)來(lái)防御攻擊者的竊聽(tīng),同時(shí)為信宿節(jié)點(diǎn)設(shè)置檢錯(cuò)機(jī)制,在一定程度上抵抗了污染攻擊的發(fā)生,但是并不能解決污染攻擊帶來(lái)的危害。本文對(duì)確定性網(wǎng)絡(luò)中多源組播通信的傳輸效率和網(wǎng)絡(luò)安全問(wèn)題展開(kāi)研究,利用逐層構(gòu)造的方法構(gòu)造編碼節(jié)點(diǎn)的編碼系數(shù),從而使組播網(wǎng)絡(luò)的帶寬利用率得到提升,并使構(gòu)造算法的收斂時(shí)間有所減少。此外,在編碼構(gòu)造方案的基礎(chǔ)上提出了基于改進(jìn)混沌序列的抗全局竊聽(tīng)和污染攻擊的安全網(wǎng)絡(luò)編碼方案,增強(qiáng)了網(wǎng)絡(luò)的安全性能。
作為網(wǎng)絡(luò)編碼的2種主要構(gòu)造算法,隨機(jī)性編碼更適合頻繁發(fā)生動(dòng)態(tài)變化的網(wǎng)絡(luò),而確定性編碼則相反,在狀態(tài)相對(duì)穩(wěn)定的組播通信中更能體現(xiàn)優(yōu)勢(shì)。由于確定性網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)在周期內(nèi)不會(huì)發(fā)生變化,所以在多源組播通信中需要做的就是在已經(jīng)利用路由方案確定好拓?fù)浣Y(jié)構(gòu)的確定性網(wǎng)絡(luò)中構(gòu)造編碼節(jié)點(diǎn)系數(shù)。
在確定線性網(wǎng)絡(luò)中首先要構(gòu)造編碼節(jié)點(diǎn)的編碼向量,然后再進(jìn)行數(shù)據(jù)消息的傳輸。在通過(guò)相應(yīng)路由算法得到網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的多源組播網(wǎng)絡(luò)中,信源節(jié)點(diǎn)集合表示為S={S1,S2,…,Sn},且信源處各個(gè)節(jié)點(diǎn)相互獨(dú)立,信宿節(jié)點(diǎn)集合表示為T={T1,T2,…,Td},因?yàn)榇颂幱懻摰氖嵌嘣唇M播網(wǎng)絡(luò),所以集合中元素個(gè)數(shù)都大于1。利用最大流最小割定理就可以將minC(S,T)表示為信源端與信宿端的最小割值,那么,最小割值就等于信源端到信宿端的最大流maxflow(S,T)。當(dāng)引入虛擬信源后,多源組播網(wǎng)絡(luò)可以將多個(gè)信源端節(jié)點(diǎn)匯總成為一個(gè)信源節(jié)點(diǎn),用S′表示,那么最小割最大流可以表示為
minC(S′,T)=maxflow(S′,T)
(1)
一個(gè)網(wǎng)絡(luò)要進(jìn)行數(shù)據(jù)信息的傳遞,首先要先確定這個(gè)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),具體實(shí)現(xiàn)方法是通過(guò)現(xiàn)有的組播路由方案來(lái)確定。在實(shí)際的信息傳遞過(guò)程中,網(wǎng)絡(luò)拓?fù)浒l(fā)生動(dòng)態(tài)變化后,會(huì)使路由方案也出現(xiàn)變動(dòng),變動(dòng)后形成的網(wǎng)絡(luò)拓?fù)渲芯幋a節(jié)點(diǎn)的編碼系數(shù)可能不再適用于新的路由方案,這時(shí)就需要利用合適的辦法來(lái)重新構(gòu)造編碼節(jié)點(diǎn)的編碼系數(shù),從而產(chǎn)生一個(gè)可行的編碼構(gòu)造方案。確定性編碼可以通過(guò)調(diào)整部分編碼節(jié)點(diǎn)的局部編碼系數(shù)使網(wǎng)絡(luò)節(jié)點(diǎn)接收到的全局編碼矩陣滿秩,從而保證信宿能順利譯碼[13]。關(guān)于虛擬信源與實(shí)際信源的關(guān)系如圖1。
圖1 虛擬信源示意圖Fig.1 Schematic diagram of virtual source
方案使用虛擬試播的方法來(lái)構(gòu)造網(wǎng)絡(luò)節(jié)點(diǎn)的編碼系數(shù),因?yàn)榫W(wǎng)絡(luò)編碼對(duì)網(wǎng)絡(luò)節(jié)點(diǎn)的計(jì)算能力和儲(chǔ)存空間有著比較高的要求[13],所以本文采用了h階的單位矩陣E作為試播矩陣。這樣計(jì)算更便捷。那么,編碼節(jié)點(diǎn)vij接收到的消息矩陣A就等于其所有輸入鏈路全局編碼向量構(gòu)成的h×|ΓI(vij|階矩陣為
A=E×[h×|ΓI(vij)|]
(2)
那么輸出鏈路e上的信息向量y(e)等于其輸入信息向量與編碼節(jié)點(diǎn)vij新生成的全局編碼矩陣之積為
y(e)=A×[h×|ΓI(vi)|]×(c1,c2,…,c|ΓI(vi)|)T
(3)
那么信宿端收到的編碼信息矩陣就是其全局編碼矩陣B。
設(shè)確定性多源組播網(wǎng)絡(luò)拓?fù)渲泄灿衒層網(wǎng)絡(luò)節(jié)點(diǎn),不參與編碼的源點(diǎn)集用f=1表示,即源點(diǎn)集是網(wǎng)絡(luò)拓?fù)渲械牡?層節(jié)點(diǎn),信宿節(jié)點(diǎn)是第f層節(jié)點(diǎn)。k代表某層編碼節(jié)點(diǎn)的個(gè)數(shù),vij表示第i層的第j個(gè)編碼節(jié)點(diǎn)。其中,2≤i≤f,0≤j≤k。|ΓI(vij)|和|ΓO(vij)|分別表示編碼節(jié)點(diǎn)vij的入度和出度。當(dāng)p>0時(shí)就需要使用編碼方案來(lái)構(gòu)造節(jié)點(diǎn)vij的編碼系數(shù)來(lái)得到可行的編碼策略。
本方案以一個(gè)4層網(wǎng)絡(luò)拓?fù)淠P蛠?lái)描述確定性逐層構(gòu)造算法構(gòu)造編碼節(jié)點(diǎn)編碼系數(shù)的過(guò)程,方案最終使信宿端的全局編碼矩陣滿秩,實(shí)現(xiàn)成功譯碼。在描述過(guò)程中,為了簡(jiǎn)明扼要地說(shuō)明逐層構(gòu)造算法的原理,令入度大于1的中間網(wǎng)絡(luò)節(jié)點(diǎn)為編碼節(jié)點(diǎn),將其表示為vij;令虛擬試播矩陣為h×h階的單位矩陣,用E來(lái)表示。圖2是通過(guò)組播路由方案確定的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),各個(gè)編碼節(jié)點(diǎn)的初始局部編碼系數(shù)為1,共4層網(wǎng)絡(luò)節(jié)點(diǎn),信源節(jié)點(diǎn)是3個(gè),信宿節(jié)點(diǎn)是3個(gè)。由圖2可知,當(dāng)路由方案確定后,拓?fù)渲锌赡軙?huì)出現(xiàn)自然滿足編碼要求的編碼方案。
圖2 自然滿足編碼要求的路由方案Fig.2 Natural routing scheme
從圖2中可以看到,信源節(jié)點(diǎn)發(fā)送的試播矩陣是單位矩陣,各個(gè)編碼節(jié)點(diǎn)的編碼系數(shù)均默認(rèn)為1,且3個(gè)信源的試播向量所構(gòu)成的試播矩陣是滿秩的,也就是說(shuō),信源節(jié)點(diǎn)處的全局編碼矩陣是滿秩的。然后,各個(gè)全局編碼向量經(jīng)過(guò)網(wǎng)絡(luò)中間節(jié)點(diǎn)編碼后傳達(dá)至信宿,這時(shí)信宿節(jié)點(diǎn)接收到的各個(gè)輸入鏈路的信息就是信源處全局編碼向量經(jīng)過(guò)編碼后產(chǎn)生的新的全局編碼向量。最后,每個(gè)信宿接收到的全部輸入鏈路上的編碼向量就構(gòu)成了新的全局編碼矩陣,這時(shí)需要判斷的就是新的全局編碼矩陣是否滿秩,若滿秩,就能保證信宿節(jié)點(diǎn)可以譯碼成功,否則,需要構(gòu)造各個(gè)編碼節(jié)點(diǎn)的編碼系數(shù)。下面選擇一個(gè)節(jié)點(diǎn)進(jìn)行具體分析,以圖2中最左邊信宿節(jié)點(diǎn)T1為例,其對(duì)應(yīng)的輸入鏈路是編碼節(jié)點(diǎn)v22,v23,v24的輸出鏈路,3條鏈路的全局編碼向量就構(gòu)成了信宿節(jié)點(diǎn)T1的全局編碼矩陣,通過(guò)初等行變換可得T1的全局編碼矩陣的秩為3,即T1接收到的全局編碼矩陣經(jīng)過(guò)初等行變換后,顯示的是滿秩。同理,圖2最右邊網(wǎng)絡(luò)拓?fù)涞腡3節(jié)點(diǎn)的全局編碼矩陣也是滿秩的。
在數(shù)據(jù)信息傳輸過(guò)程中還會(huì)出現(xiàn)一種數(shù)據(jù)冗余情況,本文算法對(duì)數(shù)據(jù)冗余鏈路進(jìn)行修剪,從而提高帶寬利用率,如圖3。
圖3 剪枝處理示意圖Fig.3 Schematic diagram of pruning branches
本方案以一個(gè)4層網(wǎng)絡(luò)拓?fù)淠P蛠?lái)描述確定性逐層構(gòu)造算法構(gòu)造編碼節(jié)點(diǎn)編碼系數(shù)的過(guò)程,方案最終使信宿端的全局編碼矩陣滿秩,實(shí)現(xiàn)成功譯碼。圖4中共有4個(gè)信源節(jié)點(diǎn),4個(gè)信宿節(jié)點(diǎn),虛擬信源S′不計(jì)入網(wǎng)絡(luò)拓?fù)鋵訑?shù),所以一共有4層網(wǎng)絡(luò)節(jié)點(diǎn),即f=4。虛擬信源處的試播矩陣為4階單位矩陣,即代表信源節(jié)點(diǎn)處的最初全局編碼矩陣是滿秩的。
圖4 算法原理示意圖Fig.4 Schematic diagram of the algorithm
圖中編碼節(jié)點(diǎn)的全局編碼矩陣是非滿秩的,所以要對(duì)其進(jìn)行修剪枝操作。修剪后,發(fā)現(xiàn)信宿節(jié)點(diǎn)T2的全局編碼矩陣也是滿秩的。
算法對(duì)整層p個(gè)編碼節(jié)點(diǎn)執(zhí)行上面的操作流程,直到該層節(jié)點(diǎn)全部獲得滿秩的編碼矩陣,然后再進(jìn)入下一層節(jié)點(diǎn)構(gòu)造編碼向量。整個(gè)算法的描述如下。
第1步初始設(shè)置;
第2步進(jìn)行虛擬試播,中間網(wǎng)絡(luò)節(jié)點(diǎn)執(zhí)行編碼操作,并產(chǎn)生全局編碼向量,逐層轉(zhuǎn)發(fā)逐層編碼;
第3步統(tǒng)計(jì)第i層獲得非滿秩全局編碼矩陣的編碼節(jié)點(diǎn)vij的數(shù)目,記為p。若p=0,自動(dòng)轉(zhuǎn)跳下一層節(jié)點(diǎn);若p>0,執(zhí)行i-1層變換節(jié)點(diǎn)編碼系數(shù)構(gòu)造操作;
第4步ifp>0,標(biāo)記與編碼節(jié)點(diǎn)vij對(duì)應(yīng)的第i-1層可變換節(jié)點(diǎn)位置,t=q;
ifq=|ΓI(vij)|-RMij,可變換節(jié)點(diǎn)全部作為變換節(jié)點(diǎn);
eles ifq>|ΓI(vij)|-RMij,先進(jìn)性優(yōu)先級(jí)判斷,再確定變換節(jié)點(diǎn);
elseq<|ΓI(vij)|-RMij,執(zhí)行修剪枝操作;
第5步構(gòu)造變換節(jié)點(diǎn)局部編碼系數(shù),使編碼節(jié)點(diǎn)vij的全局編碼矩陣滿秩;
第6步直到第i層的第p個(gè)編碼節(jié)點(diǎn)完成構(gòu)造編碼系數(shù)的操作;Untilp=0;
第7步從上到下,逐層構(gòu)造i+1→i;
第8步直到i=f;
第9步最終得到局部編碼向量構(gòu)造方案,算法結(jié)束。
算法原理流程示意圖如圖5。起初需要引入虛擬信源進(jìn)行虛擬試播操作,將單位矩陣發(fā)送到各個(gè)信源節(jié)點(diǎn),然后信源節(jié)點(diǎn)將消息逐層下發(fā),這時(shí)每層節(jié)點(diǎn)就會(huì)展開(kāi)數(shù)據(jù)處理工作。對(duì)編碼節(jié)點(diǎn)中未獲得滿秩全局編碼矩陣的節(jié)點(diǎn)進(jìn)行統(tǒng)計(jì)計(jì)數(shù),如果該層節(jié)點(diǎn)的矩陣都是滿秩的,就證明無(wú)需構(gòu)造編碼系數(shù),那么直接進(jìn)入下一層網(wǎng)絡(luò)節(jié)點(diǎn)即可;如果有矩陣未滿秩的編碼節(jié)點(diǎn),就要展開(kāi)構(gòu)造編碼系數(shù)的工作。首先找到收到未滿秩矩陣的編碼節(jié)點(diǎn),然后統(tǒng)計(jì)該節(jié)點(diǎn)的可變換節(jié)點(diǎn)的數(shù)目和位置,接下來(lái)在可變換節(jié)點(diǎn)中選取變換節(jié)點(diǎn)。在選取變換節(jié)點(diǎn)時(shí),根據(jù)q=|ΓI(vij)|-RMij,q>|ΓI(vij)|-RMijq<|ΓI(vij)|-RMij這3種情況進(jìn)行判定,q=|ΓI(vij)|-RMij,那么可變換節(jié)點(diǎn)全部作為變化節(jié)點(diǎn);q>|ΓI(vij)|-RMij時(shí),進(jìn)行優(yōu)先級(jí)判定后再?zèng)Q定變換節(jié)點(diǎn)位置;q<|ΓI(vij)|-RMij時(shí),說(shuō)明鏈路出現(xiàn)了數(shù)據(jù)冗余的情況,需要修剪枝操作,需要修剪的鏈路數(shù)目為|ΓI(vij)|-RMij-q。變換節(jié)點(diǎn)確定之后需要構(gòu)造變換節(jié)點(diǎn)的編碼系數(shù)。執(zhí)行以上操作,逐層構(gòu)造編碼系數(shù),直至信宿節(jié)點(diǎn),最終使整個(gè)網(wǎng)絡(luò)拓?fù)洚a(chǎn)生可行的編碼方案。
圖5 算法示意圖Fig.5 Schematic flow chart of algorithm
為了驗(yàn)證提出的確定性逐層構(gòu)造算法的有效性和可行性,對(duì)算法進(jìn)行了仿真,仿真實(shí)驗(yàn)的環(huán)境是Lenovo pc端,操作系統(tǒng)為Win8,使用了Matlab R2018、NS2-allinone2.26軟件仿真結(jié)果如圖6。
從圖6可以看出,g不變時(shí),當(dāng)有限域達(dá)到一定大小后,構(gòu)造方案的成功概率幾乎為1,且保持不變。當(dāng)g逐漸增大時(shí),編碼方案對(duì)有限域的需求范圍也逐漸變大,但是不論g如何增大,只要有限域的范圍大于一定取值,編碼構(gòu)造方案的成功率都近似為1。這是因?yàn)間增加表示編碼節(jié)點(diǎn)增加,而編碼節(jié)點(diǎn)選取編碼系數(shù)后要保證信宿節(jié)點(diǎn)收到的全局編碼矩陣滿秩,構(gòu)造方案才算成功,所以,需要選取的編碼系數(shù)增加,所需的有限域也要變大。而當(dāng)有限域范圍滿足編碼系數(shù)選擇的需求時(shí),本確定性編碼構(gòu)造方案的成功率將保持在1附近。
圖6 g變化時(shí)方案成功的概率Fig.6 Success probability of the scheme with g change
Logistic映射是用來(lái)計(jì)算某類昆蟲(chóng)群體數(shù)量的一個(gè)模型,又叫作蟲(chóng)口模型[14]。眾所周知,一類昆蟲(chóng)在繁衍時(shí),其子代數(shù)量在不受其他惡劣因素影響的情況下是十分巨大的,昆蟲(chóng)子代的數(shù)量要遠(yuǎn)大于其親代的數(shù)量,所以親代數(shù)目在與子代數(shù)目相比時(shí)微乎其微,進(jìn)而在統(tǒng)計(jì)群體總數(shù)時(shí)就可以將親代數(shù)目忽略掉,那么該類昆蟲(chóng)群體數(shù)目就可以理解成是由單一世代的數(shù)目構(gòu)成的。因此,有很多種類的昆蟲(chóng)其蟲(chóng)口數(shù)的增長(zhǎng)是分步進(jìn)行的,代與代之間沒(méi)有累積計(jì)數(shù)。
令某類昆蟲(chóng)第n年內(nèi)的群體總數(shù)為xn,第n+1年的群體數(shù)目為xn+1,因?yàn)閚是非負(fù)整數(shù),所以二者的函數(shù)關(guān)系可以用一個(gè)差分方程來(lái)描述為
xn+1=f(xn)
(4)
蟲(chóng)口模型初期最簡(jiǎn)單的表示方式為
xn+1=xn(a-bxn)
(5)
(5)式中:a表示昆蟲(chóng)種群的增長(zhǎng)率;-bxn表示由于一些不可控因素造成的昆蟲(chóng)種群數(shù)目的飽和度。在某種特定情況下(可能是惡劣的環(huán)境抑或食物資源的短缺)某類昆蟲(chóng)群體密度較高,xn的數(shù)值極大時(shí),必然會(huì)造成群體間的競(jìng)爭(zhēng)。所以,為了在理論上更易于理解,便令a=b=μ來(lái)表示Logistic方程為
xn+1=μxn(1-xn)
(6)
xn之前表示的是某類昆蟲(chóng)第n年內(nèi)的群體總數(shù),但是在(6)式中,xn表示的是昆蟲(chóng)群體總數(shù)與特定環(huán)境下可以供養(yǎng)該類昆蟲(chóng)最大數(shù)目的比值。
通過(guò)分析,μ的取值不同會(huì)引起(6)式的取值有不同程度的變化,當(dāng)x0=(μ-1)/μ時(shí)會(huì)使xn+1=xn,稱此時(shí)x0的取值為不動(dòng)點(diǎn)。但實(shí)際中xn的取值是有一定波動(dòng)范圍的,所以xn的取值應(yīng)該隨著μ的取值變化而變化。那么,當(dāng)參數(shù)取值發(fā)生變化使得xn的取值由周期逐次加倍進(jìn)入混沌狀態(tài)的過(guò)程稱為倍周期分岔通向混沌[15]。表1是μ取不同數(shù)值時(shí),對(duì)函數(shù)關(guān)系式狀態(tài)影響的分析。在動(dòng)力學(xué)系統(tǒng)中,當(dāng)0≤μ<3時(shí),f(x)=μxn(1-xn)所決定的離散動(dòng)力學(xué)系統(tǒng)形成的時(shí)間序列形態(tài)比較簡(jiǎn)單,產(chǎn)生的結(jié)果為不動(dòng)點(diǎn);當(dāng)μ>3時(shí),動(dòng)力學(xué)系統(tǒng)就出現(xiàn)了分岔現(xiàn)象,在3≤μ≤4時(shí),動(dòng)力學(xué)系統(tǒng)先是表現(xiàn)出周期狀態(tài),隨后產(chǎn)生的時(shí)間序列就通向了混沌狀態(tài),即由倍周期通向混沌狀態(tài);當(dāng)μ>4時(shí),整個(gè)動(dòng)力學(xué)系統(tǒng)產(chǎn)生的時(shí)間序列的軌跡將更加復(fù)雜。
表1 Logistic混沌序列狀態(tài)
通過(guò)前面的分析,只有在μ=4時(shí),所生成的Logistic混沌序列才在整個(gè)[0,1]上具有遍歷性分布;而對(duì)于μ<4時(shí),其所對(duì)應(yīng)的分布區(qū)間均小于[0,1]。顯然,這在實(shí)際的數(shù)字處理過(guò)程中,由于計(jì)算機(jī)本身的精度限制,會(huì)使得某些序列值之間容易產(chǎn)生聚集、重疊或交錯(cuò)的錯(cuò)誤,不能達(dá)到期望的動(dòng)力學(xué)特性,削弱了Logistic映射的系統(tǒng)性能,不利于實(shí)際的應(yīng)用。
本方案采用了新的改進(jìn)Logistic混沌序列,其在擴(kuò)展系統(tǒng)參數(shù)μ的范圍下所產(chǎn)生的混沌序列皆能一致地滿足[0,1]的遍歷性,并達(dá)到改善Logistic映射的系統(tǒng)性能的目的。改進(jìn)后的Logistic混沌映射的數(shù)學(xué)表達(dá)式為
(7)
(7)式中:μ∈ ( 0,4];n為迭代次數(shù),n=0,1,2,… ;X0∈(0,1)。改進(jìn)的Logistic混沌映射能一致地滿足[0,1]的遍歷性所對(duì)應(yīng)的參數(shù)μ的取值范圍,比傳統(tǒng)的Logistic混沌映射的μ=4來(lái)說(shuō)大了很多。測(cè)算結(jié)果表明,在μ∈(2.01,2.98)∪(3.11,4]時(shí),改進(jìn)的Logistic混沌映射所產(chǎn)生的混沌序列皆能一致地滿足[0,1]的遍歷性。
2.3.1 編碼方案整體流程
為提高網(wǎng)絡(luò)安全性,本文將混沌序列應(yīng)用于網(wǎng)絡(luò)編碼加密,在信源處加密最后一維數(shù)據(jù),同時(shí)利用m序列擾動(dòng)由另一密鑰生成logistic混沌序列,在加密最后一維數(shù)據(jù)時(shí)將信源本身數(shù)據(jù)與混沌序列結(jié)合,提供序列反饋機(jī)制,將信源消息作為混沌序列擾動(dòng)信號(hào)進(jìn)行迭代,從而生成新的混沌數(shù)據(jù),加密下一個(gè)信號(hào),構(gòu)造出一次一密的加密機(jī)制,增大了竊聽(tīng)者的破解難度。加密后的數(shù)據(jù)經(jīng)過(guò)標(biāo)準(zhǔn)隨機(jī)線性網(wǎng)絡(luò)編碼傳遞到信宿,完成解密過(guò)程,方案整體流程圖如圖7。
2.3.2 信源消息加密
在信源端加密的是原始數(shù)據(jù)信息,加密方式是當(dāng)信源產(chǎn)生原始消息X=(x1,x2,…,xn)T之后,選取每個(gè)原始數(shù)據(jù)消息矩陣的最后一行元素進(jìn)行加密,加密時(shí)采取的方法是引入改進(jìn)Logistic混沌時(shí)間序列,網(wǎng)絡(luò)中信源節(jié)點(diǎn)所要傳輸?shù)南⒂洖閄,X用矩陣表示是一個(gè)n×m階的矩陣,代表一共包含n個(gè)長(zhǎng)度為m的數(shù)據(jù)消息向量,即對(duì)(8)式中矩陣X中的xn實(shí)施加密處理,經(jīng)過(guò)加密的xn表示為cn。
(8)
原始消息矩陣的最后一維數(shù)據(jù)加密的具體操作為:首先需要利用α作為初值生成Logistic混沌序列Y(α),然后用混沌序列Y(α)對(duì)最后一維數(shù)據(jù)xn加密,加密過(guò)程為
cn=(xn1+Y(α),xn2+Y(xn1,α),…,
xnm+Y(xn1,xn2,…,xnm-1,α))
(9)
圖7 編碼方案整體流程圖Fig.7 Overall flow chart of the coding scheme
那么加密后的原始消息就可以表示為X″=(x1,x2,…,xn-1,cn)T。
第1步加密后,接下來(lái)要進(jìn)行的是構(gòu)造信源節(jié)點(diǎn)處的全局編碼矩陣。令全局編碼矩陣為TX,安全方案的思路是從生成矩陣TX中對(duì)角線上的元素入手,通過(guò)m序列擾動(dòng)Logistic混沌序列,將生成的序列執(zhí)行取整操作來(lái)構(gòu)造矩陣TX中對(duì)角線上的元素[16]。
(10)
當(dāng)構(gòu)造了全局編碼矩陣TX之后,要進(jìn)行的就是在信源節(jié)點(diǎn)處利用矩陣TX與已經(jīng)加密了的信源消息X″進(jìn)行線性構(gòu)造,這樣加密消息X′就誕生了
(11)
信宿端執(zhí)行譯碼操作時(shí)需要知道全局編碼向量,原始消息在信源處進(jìn)行加密后,不會(huì)對(duì)中間的傳輸過(guò)程再進(jìn)行任何多余的操作,也就是說(shuō)信息在中間節(jié)點(diǎn)的傳輸是遵照其事先已經(jīng)確定好的編碼方式進(jìn)行,本文是在確定線性構(gòu)造方案的基礎(chǔ)上進(jìn)行信息傳輸?shù)摹T诩用苄畔′中加入單位矩陣,來(lái)標(biāo)記中間節(jié)點(diǎn)進(jìn)行編碼操作時(shí)的全局編碼矩陣。這樣最終構(gòu)成了信源節(jié)點(diǎn)需要發(fā)送的信息M′為
(12)
2.3.3 中間信道編碼
中間節(jié)點(diǎn)編碼過(guò)程實(shí)現(xiàn)的具體環(huán)境是在確定線性網(wǎng)絡(luò)中,當(dāng)網(wǎng)絡(luò)拓?fù)浒l(fā)生變化后已經(jīng)運(yùn)用了確定性逐層構(gòu)造方法重新構(gòu)造了各個(gè)編碼節(jié)點(diǎn)的編碼向量。與此同時(shí),整個(gè)中間編碼過(guò)程所需的全局編碼矩陣也是確定了的。因此,在確定線性網(wǎng)絡(luò)中執(zhí)行安全網(wǎng)絡(luò)編碼方案時(shí),中間節(jié)點(diǎn)編碼的編碼系數(shù)矩陣是固定的,將會(huì)被矩陣M′里的單位矩陣進(jìn)行記錄,這里令利用逐層構(gòu)造方案確定的全局編碼矩陣為T2,M表示M′中除去前n列向量后信宿節(jié)點(diǎn)收到的編碼信息矩陣,信宿節(jié)點(diǎn)接收的信息M可以表示為
M=T2X′
(13)
2.3.4 信宿端譯碼
在信源端加密時(shí),已知信源信宿共享密鑰。信宿節(jié)點(diǎn)首先通過(guò)接收到的消息恢復(fù)出X″,已知信源端的全局編碼矩陣是通過(guò)密鑰β、k和m序列初值m0構(gòu)造出來(lái)的,所以當(dāng)信宿端接收到n個(gè)線性無(wú)關(guān)的消息向量時(shí),就可以利用高斯消去法恢復(fù)出X″,表示為
(14)
當(dāng)恢復(fù)出X″后,對(duì)X″的最后一維消息cn進(jìn)行解密,這樣就得到了原始信源消息X,解碼成功。
網(wǎng)絡(luò)中一旦出現(xiàn)攻擊者,問(wèn)題就會(huì)變得非常復(fù)雜。攻擊者能夠潛藏在網(wǎng)絡(luò)拓?fù)渲械娜魏喂?jié)點(diǎn)和鏈路處,攻擊者除了采取搭線竊聽(tīng)的攻擊方式來(lái)獲取原始消息外,其目的還可以是阻止信源節(jié)點(diǎn)向信宿節(jié)點(diǎn)傳遞消息,擾亂正常消息的發(fā)送,或者至少通過(guò)一些攻擊方式使信源節(jié)點(diǎn)傳遞到信宿節(jié)點(diǎn)的有用數(shù)據(jù)信息越來(lái)越少。那么以污染攻擊為例,攻擊者是具有十分強(qiáng)大的攻擊能力的,而且攻擊者對(duì)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、網(wǎng)絡(luò)編碼方案都十分清晰,所以攻擊者可以非法向網(wǎng)絡(luò)中注入自己的信息,混淆到正確編碼信息中,從而污染鏈路,實(shí)現(xiàn)污染攻擊的目的。
在沒(méi)有污染攻擊出現(xiàn)時(shí),信源端傳送至信宿端的編碼數(shù)據(jù)信息可以表示為M′。當(dāng)污染攻擊出現(xiàn)時(shí)攻擊者會(huì)將污染信息注入到網(wǎng)絡(luò)中,令污染信息矩陣為Z,Z是一個(gè)p0×m的矩陣,即矩陣Z代表p0個(gè)污染信息。這樣一來(lái),污染信息會(huì)與信源處發(fā)送的正確編碼信息共同抵達(dá)信宿節(jié)點(diǎn),這時(shí)接收端收到的最終信息矩陣用Y來(lái)表示,那么信宿節(jié)點(diǎn)就要通過(guò)接收到的矩陣Y來(lái)試圖恢復(fù)出信源節(jié)點(diǎn)發(fā)送的原始數(shù)據(jù)信息。
首先需要明確的是矩陣Y是由編碼信息M′和污染信息Z組成,可以表示為
Y=TXM′+T′Z
(15)
(16)
(15)—(16)式中:T表示的是信源消息傳送至信宿節(jié)點(diǎn)經(jīng)中間節(jié)點(diǎn)進(jìn)行線性變換時(shí)的全局編碼矩陣;T′表示的是對(duì)污染信息P執(zhí)行線性運(yùn)算操作時(shí)全局編碼矩陣的信息。
由于正確的數(shù)據(jù)消息被污染,所以信宿節(jié)點(diǎn)是無(wú)法得到TX和T′的具體信息的,在這里信宿節(jié)點(diǎn)接收到的整個(gè)網(wǎng)絡(luò)拓?fù)涞娜志幋a矩陣用T″表示,信宿節(jié)點(diǎn)無(wú)法利用T″來(lái)直接恢復(fù)信源的原始數(shù)據(jù)消息。
提出一種構(gòu)造線性列表的方法來(lái)幫助信宿節(jié)點(diǎn)區(qū)分污染信息和原始信息,最終使信宿能夠剔除污染消息,正確進(jìn)行譯碼。方案的核心思想是:信宿節(jié)點(diǎn)構(gòu)造一個(gè)具有線性約束的關(guān)系式,而這個(gè)關(guān)系式只有信源處已經(jīng)加密了的原始信息矩陣X′中的元素才能滿足,即信宿端構(gòu)造的線性列表的唯一解碼必須是X′的相關(guān)信息才可以,因?yàn)楣粽咴谧⑷胛廴拘畔r(shí),選擇的都是隨機(jī)數(shù)列,所以信宿端將收到的消息與列表進(jìn)行比較,如果是污染信息就沒(méi)辦法滿足列表的條件,這樣污染信息就會(huì)被過(guò)濾掉,進(jìn)而保證了信宿節(jié)點(diǎn)接收到的都是正確的編碼信息。信宿節(jié)點(diǎn)接收到的矩陣Y是由污染消息和加密編碼消息組成的,從Y中選取n+p0列線性無(wú)關(guān)的消息向量組成矩陣YS,由(16)式知道YS的秩不能大于n+p0,本文要求矩陣YS的秩為n+p0,矩陣YS是由Y的列向量張成的線性空間,YS一定要包含Y的前n列數(shù)據(jù)信息,Y的前n列對(duì)應(yīng)于原始加密信息M′里的單位矩陣,而且YS的其余p0列是任意選取的,用M′S和ZS分別代表M′和Z對(duì)應(yīng)于YS中的列,通過(guò)(16)式得
(17)
由于YS里任何一個(gè)向量都是線性無(wú)關(guān)的,而且是矩陣Y的最基礎(chǔ)組成,可以利用一個(gè)矩陣F使得Y=YSF,這里的F可以由系數(shù)矩陣方程組求得。由于編碼系數(shù)矩陣都是在伽羅華域上隨機(jī)選取的,所以有很大的概率是可逆矩陣[17],可得
M′=M′SF
(18)
Z=ZSF
(19)
(20)
在進(jìn)行鑒別之前還需要做一件事情,就是在信源處將原始信息X′寫(xiě)入列向量MX′,再構(gòu)造一個(gè)矩陣D(矩陣D中元素選自于伽羅華域),使得X′與D滿足
DMX′=E
(21)
(21)式中,矩陣D是公開(kāi)的,且D唯一。當(dāng)信宿節(jié)點(diǎn)接收到最終消息Y時(shí),就能夠計(jì)算出矩陣F,并且信宿端知道矩陣D的信息,這樣利用(20)式即可得到一個(gè)消息M′,至于該消息是否真的屬于原始信息,通過(guò)(21)式即可鑒別,這樣信宿端就可以對(duì)污染的信息進(jìn)行篩選,保留下來(lái)的都是經(jīng)過(guò)編碼后的正確信息,從而該安全方案在一定程度上抵制了污染攻擊的發(fā)生,最終信源端節(jié)點(diǎn)再利用沒(méi)有污染攻擊時(shí)的解碼方案進(jìn)行解碼[18]。
為了驗(yàn)證安全網(wǎng)絡(luò)編碼[19]方案的有效性,本文分別對(duì)文本和圖片進(jìn)行了加密解密仿真操作,利用Matlab對(duì)本文的加密方案進(jìn)行實(shí)現(xiàn)。仿真時(shí),首先利用本文安全網(wǎng)絡(luò)編碼方案對(duì)文件進(jìn)行加密處理,然后再對(duì)加密后的文件進(jìn)行解密操作,正確的加密操作是利用密鑰進(jìn)行解密,最后模仿竊聽(tīng)者,在不知道全部密鑰的情況下試圖對(duì)文件進(jìn)行解密操作。這些操作的結(jié)果經(jīng)過(guò)仿真都會(huì)逐一呈現(xiàn)出來(lái)仿真結(jié)果如圖8、圖9。
圖8 加密解密仿真結(jié)果1Fig.8 Simulation results 1 of enciyption and decryption
圖9 加密解密仿真結(jié)果2Fig.9 Simulation results 2 of enciyption and decryption
文獻(xiàn)[10]提出的算法是最典型的初級(jí)抗全能竊聽(tīng)安全網(wǎng)絡(luò)編碼方案,只能抵御初級(jí)全能竊聽(tīng);文獻(xiàn)[11]中的方案在實(shí)現(xiàn)抵抗全能竊聽(tīng)的同時(shí)還能實(shí)現(xiàn)防污染攻擊,在抵抗污染攻擊時(shí)采用了檢錯(cuò)碼,為信宿節(jié)點(diǎn)設(shè)置檢錯(cuò)機(jī)制,對(duì)接收到的編碼信息進(jìn)行檢錯(cuò),但是無(wú)法進(jìn)行改錯(cuò),也就是說(shuō)只能發(fā)現(xiàn)污染攻擊,但是無(wú)法追溯到污染源來(lái)改正錯(cuò)誤,所以只是在一定程度上抵抗了污染攻擊的發(fā)生。文獻(xiàn)[12]的算法也只是達(dá)到了防全能竊聽(tīng)的效果。方案對(duì)比如表2。
表2 各方案性能對(duì)比
表2中的加密工作量為加密信息的數(shù)量,其中文獻(xiàn)[10]提出的算法是對(duì)信源處的全部編碼系數(shù)進(jìn)行加密,所以加密工作量為m2;文獻(xiàn)[11]中的算法是利用密碼序列對(duì)信源處的原始消息進(jìn)行加密,所以加密工作量為mn;文獻(xiàn)[12]中的算法既對(duì)原始信源消息進(jìn)行了加密,又對(duì)全局編碼矩陣進(jìn)行了加密,所以加密工作量為mn+m2;本文提出的算法需要對(duì)信源處的編碼系數(shù)矩陣的對(duì)角線元素和原始信息最后一維數(shù)據(jù)進(jìn)行加密,所以加密量為m+n。相比之下,本文的加密量更少一些,有助于提高編碼效率。
在比較時(shí)各個(gè)方案對(duì)等長(zhǎng)數(shù)據(jù)進(jìn)行編碼,然后觀察各個(gè)方案所需加密編碼的時(shí)間。用Matlab進(jìn)行仿真時(shí),令編碼長(zhǎng)度為n=1 500,網(wǎng)絡(luò)組播容量為8,伽羅華域的大小設(shè)為GF(q)=256,信息包數(shù)小于5 000個(gè),仿真結(jié)果如圖10。
圖10 各方案編碼時(shí)間比較Fig.10 Comparison of coding time of each scheme
從圖10中可以看出,文獻(xiàn)[10]提出的算法采用的是高級(jí)加密標(biāo)準(zhǔn),所以即便該方案與本文方案一樣是加密消息矩陣的后一維數(shù)據(jù),但是相比至下,本文的編碼效率更勝一籌;文獻(xiàn)[11]是典型的采用置換方式加密的方案,其加密的方法非常典型,但是由于置換時(shí),會(huì)耗費(fèi)一部分時(shí)間,同時(shí)該方案既對(duì)原始信息進(jìn)行了加密處理,又對(duì)全局編碼矩陣進(jìn)行了加密處理,龐大的加密量使算法的加密時(shí)間過(guò)于冗長(zhǎng)。同時(shí)該方案只能防止竊聽(tīng)攻擊的發(fā)生,無(wú)法抵抗污染攻擊的威脅;文獻(xiàn)[12]中的算法運(yùn)用密碼流的方式來(lái)加密信息,其加密時(shí)所用的編碼時(shí)間相對(duì)來(lái)說(shuō)是適中的,而之所以會(huì)比本文算法時(shí)間略多一些,是因?yàn)樵摲桨傅膸捓眯实土艘恍?,同時(shí)與本文相比算法復(fù)雜度略高。與本文方案一樣,該方案既能防止全局竊聽(tīng),還能在一定程度上抵御污染攻擊的發(fā)生。
隨著網(wǎng)絡(luò)規(guī)模的增大,各算法的開(kāi)銷也迅速增加,從帶寬開(kāi)銷和算法復(fù)雜度進(jìn)行對(duì)比,如表3。
表3 各方案參數(shù)對(duì)比
文獻(xiàn)[10]編碼方案中,由于網(wǎng)絡(luò)中需要將加密的編碼系數(shù)放到數(shù)據(jù)包中進(jìn)行傳輸,因此發(fā)送的數(shù)據(jù)中每一行都增加m個(gè)符號(hào);類似地,文獻(xiàn)[11]需要將預(yù)編碼矩陣中的非零元素作為數(shù)據(jù)發(fā)送至信道中,帶寬開(kāi)銷為r+1;文獻(xiàn)[12]中的方案發(fā)送的數(shù)據(jù)中每一行都增加n個(gè)符號(hào);本文算法也沒(méi)有在數(shù)據(jù)中加入額外編碼向量,沒(méi)有額外占用帶寬。
文獻(xiàn)[10]編碼方案的計(jì)算復(fù)雜度為O(m2n);文獻(xiàn)[12]采用的是稀疏的編碼矩陣組合信源消息,相對(duì)而言降低了編碼的復(fù)雜度,復(fù)雜度為O(mn);文獻(xiàn)[11]中采用矩陣的加密復(fù)雜度和編碼參數(shù)r有關(guān),編碼復(fù)雜度為O(rmn);本文采用的加密方式也是稀疏矩陣,加密復(fù)雜度為O(mn)。
在確定性逐層構(gòu)造算法上,從密碼學(xué)的角度出發(fā),提出了一種安全編碼方案,方案利用改進(jìn)混沌序列只對(duì)原始數(shù)據(jù)消息的最后一維數(shù)據(jù)進(jìn)行加密,同時(shí)利用m序列擾動(dòng)混沌序列生成的全局編碼矩陣,并將編碼矩陣與加密消息線性組合后進(jìn)行傳輸,最后信宿端節(jié)點(diǎn)構(gòu)造線性列表對(duì)污染信息進(jìn)行過(guò)濾。實(shí)驗(yàn)表明,網(wǎng)絡(luò)經(jīng)加密后安全性能得到提升,在抵抗全局竊聽(tīng)的同時(shí)還可以濾除污染信息,提高了網(wǎng)絡(luò)傳輸效率。