本發(fā)明屬于空間信息網(wǎng)的安全通信
技術(shù)領(lǐng)域:
,具體涉及一種空間信息網(wǎng)中隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼篡改數(shù)據(jù)的檢測(cè)方法。
背景技術(shù):
:空間信息網(wǎng)具有網(wǎng)絡(luò)組成復(fù)雜、鏈路干擾嚴(yán)重、帶寬受限、鏈路時(shí)延長(zhǎng)、時(shí)延抖動(dòng)大、節(jié)點(diǎn)功能受限、網(wǎng)絡(luò)動(dòng)態(tài)性強(qiáng)等特點(diǎn),并且空間信息網(wǎng)的拓?fù)浣Y(jié)構(gòu)具有動(dòng)態(tài)性、不可預(yù)知性等特點(diǎn),傳統(tǒng)的存儲(chǔ)-轉(zhuǎn)發(fā)的信息傳輸方式已不再適用于空間信息網(wǎng)。而將隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼應(yīng)用于空間信息網(wǎng)能夠提高網(wǎng)絡(luò)的吞吐量、減少網(wǎng)絡(luò)傳輸?shù)拇螖?shù)、延長(zhǎng)無(wú)線(xiàn)網(wǎng)絡(luò)中節(jié)點(diǎn)的電池使用時(shí)間、增強(qiáng)網(wǎng)絡(luò)的健壯性和穩(wěn)定性、并且由于隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼對(duì)傳輸消息編碼組合,隱藏了信息的內(nèi)容,能夠防止網(wǎng)絡(luò)中惡意節(jié)點(diǎn)的竊聽(tīng)行為。雖然隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼與傳統(tǒng)網(wǎng)絡(luò)路由方式相比具有很多優(yōu)點(diǎn),但是它要求中間節(jié)點(diǎn)具有編碼能力而消耗額外的計(jì)算資源。并且,隨著這種新技術(shù)的產(chǎn)生與應(yīng)用,許多新的問(wèn)題也逐漸暴露出來(lái),其中之一就是篡改攻擊。篡改攻擊是一種主動(dòng)攻擊,由于網(wǎng)絡(luò)中中間節(jié)點(diǎn)要對(duì)數(shù)據(jù)進(jìn)行編碼,而一旦網(wǎng)絡(luò)中的某個(gè)信息被惡意節(jié)點(diǎn)蓄意篡改,或者攻擊者向網(wǎng)絡(luò)中投入偽造的數(shù)據(jù),這些非法的數(shù)據(jù)會(huì)被中間節(jié)點(diǎn)混合處理生成非法的編碼向量,并且這些編碼向量在后來(lái)被更多的節(jié)點(diǎn)接收,并進(jìn)一步與其他接收的編碼向量組合,加之多播網(wǎng)絡(luò)對(duì)發(fā)送的數(shù)據(jù)具有很強(qiáng)的擴(kuò)散性,因而更多的非法編碼向量將在整個(gè)空間信息網(wǎng)絡(luò)中迅速蔓延,使得目的節(jié)點(diǎn)無(wú)法恢復(fù)原始信息,導(dǎo)致空間信息網(wǎng)傳輸?shù)氖。蚁牧藗魉驼叩挠邢弈芰?,?duì)資源受限的空間信息網(wǎng)特別有害,所以對(duì)已經(jīng)被篡改的數(shù)據(jù)包應(yīng)該盡早發(fā)現(xiàn)盡早丟棄。目前,過(guò)濾被篡改數(shù)據(jù)包對(duì)隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼應(yīng)用于空間信息網(wǎng)是個(gè)挑戰(zhàn),因?yàn)閭鹘y(tǒng)的哈希函數(shù)和簽名機(jī)制應(yīng)用到空間信息網(wǎng)中不再起作用。在傳統(tǒng)機(jī)制下,源節(jié)點(diǎn)對(duì)所有消息生成哈希和簽名,它們可被其他節(jié)點(diǎn)用來(lái)確認(rèn)消息的完整性與真實(shí)性。然而,在隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼系統(tǒng)中,中間節(jié)點(diǎn)自身產(chǎn)生編碼信息,源節(jié)點(diǎn)不知道如何對(duì)這些編碼信息產(chǎn)生哈希和簽名。當(dāng)前,一般的隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼篡改數(shù)據(jù)檢測(cè)方法需要網(wǎng)絡(luò)中的中間節(jié)點(diǎn)頻繁地驗(yàn)證其所收到的數(shù)據(jù)包是否被篡改,這樣會(huì)增大節(jié)點(diǎn)的計(jì)算開(kāi)銷(xiāo),同時(shí)降低網(wǎng)絡(luò)性能。技術(shù)實(shí)現(xiàn)要素:針對(duì)現(xiàn)有技術(shù)存在的不足,本發(fā)明提供一種空間信息網(wǎng)中隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼篡改數(shù)據(jù)的檢測(cè)方法。本發(fā)明的技術(shù)方案:一種空間信息網(wǎng)中隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼篡改數(shù)據(jù)的檢測(cè)方法,包括如下步驟:步驟1:在空間信息網(wǎng)中,源航天器節(jié)點(diǎn)計(jì)算源消息的同態(tài)哈希函數(shù)值,并采用隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼的方式將源消息及其同態(tài)哈希函數(shù)值一同轉(zhuǎn)發(fā);步驟2:自適應(yīng)地確定空間信息網(wǎng)中需要進(jìn)行篡改檢測(cè)的數(shù)據(jù)包;航天器節(jié)點(diǎn)b監(jiān)聽(tīng)到其鄰節(jié)點(diǎn)發(fā)送的消息后,自適應(yīng)地確定是否需要在節(jié)點(diǎn)b處對(duì)來(lái)自于其k個(gè)鄰節(jié)點(diǎn)的k個(gè)數(shù)據(jù)包進(jìn)行篡改檢測(cè),k≥1;步驟2.1:節(jié)點(diǎn)b從其自身緩存的鄰節(jié)點(diǎn)安全級(jí)別表中查找向其發(fā)送消息的k個(gè)鄰節(jié)點(diǎn),且對(duì)于k個(gè)鄰節(jié)點(diǎn)中的節(jié)點(diǎn)Ni,i=1,2,…,k,若節(jié)點(diǎn)Ni在節(jié)點(diǎn)b的鄰節(jié)點(diǎn)安全級(jí)別表中,則節(jié)點(diǎn)b從其鄰節(jié)點(diǎn)安全級(jí)別表中查找到節(jié)點(diǎn)Ni的安全級(jí)別,并執(zhí)行步驟2.2;若節(jié)點(diǎn)Ni不在節(jié)點(diǎn)b的鄰節(jié)點(diǎn)安全級(jí)別表中,則執(zhí)行步驟2.3;步驟2.2:節(jié)點(diǎn)Ni的安全級(jí)別是否為不安全,是,則確定需要在節(jié)點(diǎn)b處對(duì)自于節(jié)點(diǎn)Ni的數(shù)據(jù)包進(jìn)行篡改檢測(cè),否,則執(zhí)行步驟2.3;步驟2.3:由節(jié)點(diǎn)b生成一個(gè)隨機(jī)數(shù)Random(0,1);步驟2.4:判斷是否Random(0,1)≤Max(Pd,i,Ps),是,則確定需要在節(jié)點(diǎn)b處對(duì)來(lái)自于節(jié)點(diǎn)Ni的數(shù)據(jù)包進(jìn)行篡改檢測(cè),否,則確定不需要在節(jié)點(diǎn)b處對(duì)來(lái)自于節(jié)點(diǎn)Ni的數(shù)據(jù)包進(jìn)行篡改檢測(cè),且節(jié)點(diǎn)b將來(lái)自于節(jié)點(diǎn)Ni的數(shù)據(jù)包的篡改檢測(cè)概率由Pd,i提高至P'd,i;所述Pd,i為節(jié)點(diǎn)Ni向節(jié)點(diǎn)b發(fā)送的數(shù)據(jù)包的篡改檢測(cè)概率,且Pd,i≤1,保存于該數(shù)據(jù)包中;所述Ps為節(jié)點(diǎn)b的篡改檢測(cè)概率,且Ps≤1,保存于節(jié)點(diǎn)b中;所述P'd,i=Min(ε×Pd,i,1),其中ε>1,ε是根據(jù)網(wǎng)絡(luò)環(huán)境預(yù)先設(shè)置的數(shù)據(jù)包篡改檢測(cè)概率調(diào)節(jié)因子;步驟3:對(duì)步驟2中確定的需要進(jìn)行篡改檢測(cè)的數(shù)據(jù)包進(jìn)行篡改檢測(cè)找出被篡改的數(shù)據(jù)包,并將被篡改的數(shù)據(jù)包丟棄;步驟3.1:判斷在節(jié)點(diǎn)b處需要進(jìn)行篡改檢測(cè)的數(shù)據(jù)包個(gè)數(shù)是否大于等于2,否,則執(zhí)行步驟3.2,是,則執(zhí)行步驟3.3;步驟3.2:判斷在節(jié)點(diǎn)b處需要進(jìn)行篡改檢測(cè)的數(shù)據(jù)包個(gè)數(shù)是否為零,是,則節(jié)點(diǎn)b對(duì)其收到的所有數(shù)據(jù)包進(jìn)行隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼,并執(zhí)行步驟3.8;否,即節(jié)點(diǎn)b處需要進(jìn)行篡改檢測(cè)的數(shù)據(jù)包個(gè)數(shù)為1,則檢測(cè)該一個(gè)數(shù)據(jù)包是否被篡改,是,則節(jié)點(diǎn)b將檢測(cè)出的被篡改的數(shù)據(jù)包丟棄,并將剩余的數(shù)據(jù)包進(jìn)行隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼,再執(zhí)行步驟3.7;否,則節(jié)點(diǎn)b對(duì)其收到的所有數(shù)據(jù)包進(jìn)行隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼,并執(zhí)行步驟3.8;所述檢測(cè)一個(gè)數(shù)據(jù)包是否被篡改的方法為:節(jié)點(diǎn)b對(duì)其接收的這一個(gè)數(shù)據(jù)包重新計(jì)算同態(tài)哈希函數(shù)值,并將新計(jì)算的同態(tài)哈希函數(shù)值與步驟1中源航天器節(jié)點(diǎn)為此數(shù)據(jù)包計(jì)算的同態(tài)哈希函數(shù)值進(jìn)行比較,若二者相等,則認(rèn)為該數(shù)據(jù)包沒(méi)有被篡改,若二者不相等,則認(rèn)為該數(shù)據(jù)包已被篡改;步驟3.3:節(jié)點(diǎn)b對(duì)其接收到的k個(gè)原始數(shù)據(jù)包進(jìn)行隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼,得到編碼數(shù)據(jù)包;步驟3.4:在節(jié)點(diǎn)b處檢測(cè)編碼數(shù)據(jù)包中是否含有被篡改的原始數(shù)據(jù)包,否,則執(zhí)行步驟3.8;是,則執(zhí)行步驟3.5;所述檢測(cè)編碼數(shù)據(jù)包中是否含有被篡改的原始數(shù)據(jù)包的方法為:首先節(jié)點(diǎn)b計(jì)算編碼數(shù)據(jù)包的同態(tài)哈希函數(shù)值;然后根據(jù)節(jié)點(diǎn)b對(duì)其接收到的k個(gè)原始數(shù)據(jù)包進(jìn)行隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼時(shí),所選用的與k個(gè)原始數(shù)據(jù)包一一對(duì)應(yīng)的編碼系數(shù)向量C1,C2,…Ck,計(jì)算步驟1中源航天器節(jié)點(diǎn)為每個(gè)原始數(shù)據(jù)包計(jì)算的同態(tài)哈希函數(shù)值與每個(gè)原始數(shù)據(jù)包所對(duì)應(yīng)的編碼系數(shù)向量的模指數(shù)運(yùn)算的乘積值;再然后將此編碼數(shù)據(jù)包的同態(tài)哈希函數(shù)值與前述乘積值進(jìn)行比較,若二者相等,則認(rèn)為此編碼數(shù)據(jù)包中沒(méi)有被篡改的原始數(shù)據(jù)包,若二者不相等,則認(rèn)為此編碼數(shù)據(jù)包中含有被篡改的原始數(shù)據(jù)包;步驟3.5:采用二分法找出含有被篡改的原始數(shù)據(jù)包的編碼數(shù)據(jù)包中被篡改的原始數(shù)據(jù)包;步驟3.5.1:節(jié)點(diǎn)b將其收到的k個(gè)原始數(shù)據(jù)包平均分成兩組;步驟3.5.2:節(jié)點(diǎn)b分別對(duì)兩組原始數(shù)據(jù)包重新進(jìn)行隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼,對(duì)應(yīng)得到兩個(gè)新的編碼數(shù)據(jù)包;步驟3.5.3:按照步驟3.4中所述的檢測(cè)編碼數(shù)據(jù)包中是否含有被篡改的原始數(shù)據(jù)包的方法分別對(duì)兩個(gè)新的編碼數(shù)據(jù)包進(jìn)行檢測(cè),找出其中含有篡改原始數(shù)據(jù)包的新編碼數(shù)據(jù)包;步驟3.5.4:判斷含有被篡改原始數(shù)據(jù)包的新編碼數(shù)據(jù)包所對(duì)應(yīng)的原始數(shù)據(jù)包的個(gè)數(shù)是否大于等于2,否,即該新編碼數(shù)據(jù)包所對(duì)應(yīng)的原始數(shù)據(jù)包個(gè)數(shù)為1,且確定該原始數(shù)據(jù)包已被篡改;是,則轉(zhuǎn)至步驟3.5.1,繼續(xù)將該新編碼數(shù)據(jù)包所對(duì)應(yīng)的全部原始數(shù)據(jù)包平均分成兩組,按照步驟3.5.1至3.5.4的方法,直到找到所有被篡改的數(shù)據(jù)包為止;步驟3.6:當(dāng)前節(jié)點(diǎn)b將檢測(cè)出的被篡改的數(shù)據(jù)包丟棄;步驟3.7:將當(dāng)前節(jié)點(diǎn)b的篡改檢測(cè)概率Ps重置為1,且將向其發(fā)送篡改數(shù)據(jù)包的鄰居節(jié)點(diǎn)Ni在節(jié)點(diǎn)b的鄰節(jié)點(diǎn)安全級(jí)別表中的安全級(jí)別降級(jí),并轉(zhuǎn)至步驟3.9;步驟3.8:節(jié)點(diǎn)b將其篡改檢測(cè)概率由Ps降低為Ps'=θ×Ps,其中0<θ<1,θ是根據(jù)網(wǎng)絡(luò)環(huán)境預(yù)先設(shè)置的節(jié)點(diǎn)篡改檢測(cè)概率調(diào)節(jié)因子;步驟3.9:節(jié)點(diǎn)b將已丟棄了篡改數(shù)據(jù)包的編碼數(shù)據(jù)包發(fā)送至下游節(jié)點(diǎn),轉(zhuǎn)至步驟4;步驟4:結(jié)束。本發(fā)明的有益效果:本發(fā)明根據(jù)不同的網(wǎng)絡(luò)環(huán)境配置數(shù)據(jù)包和節(jié)點(diǎn)的篡改檢測(cè)概率,通過(guò)節(jié)點(diǎn)間的合作,自動(dòng)調(diào)節(jié)這兩個(gè)篡改檢測(cè)概率并根據(jù)這兩個(gè)篡改檢測(cè)概率自適應(yīng)地確定需要進(jìn)行篡改檢測(cè)的節(jié)點(diǎn)和數(shù)據(jù)包,可以降低數(shù)據(jù)包篡改檢測(cè)次數(shù),縮短污染消息的傳輸距離。與此同時(shí),對(duì)數(shù)據(jù)包中已被篡改信息的定位往往比數(shù)據(jù)包篡改檢測(cè)需要更多的時(shí)間,本發(fā)明采用二分法查找數(shù)據(jù)包中具體被篡改的信息可以明顯的減小查找的時(shí)間。附圖說(shuō)明圖1為本發(fā)明一種實(shí)施方式的空間信息網(wǎng)中隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼篡改數(shù)據(jù)的檢測(cè)方法流程圖;圖2為本發(fā)明一種實(shí)施方式的數(shù)據(jù)包格式示意圖;圖3為本發(fā)明一種實(shí)施方式利用二分法查找編碼數(shù)據(jù)包中被篡改原始數(shù)據(jù)包的流程圖。具體實(shí)施方式下面結(jié)合附圖對(duì)本發(fā)明的一種實(shí)施方式作詳細(xì)說(shuō)明。本實(shí)施方式的空間信息網(wǎng)中隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼篡改數(shù)據(jù)的檢測(cè)方法,如圖1所示,包括如下步驟:步驟1:在空間信息網(wǎng)中,源節(jié)點(diǎn)即源航天器節(jié)點(diǎn)計(jì)算源消息的同態(tài)哈希函數(shù)值,并采用隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼的方式將源消息及其同態(tài)哈希函數(shù)值一同轉(zhuǎn)發(fā);在本實(shí)施方式中,采用隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼的方式對(duì)空間信息網(wǎng)傳輸?shù)臄?shù)據(jù)進(jìn)行編碼,使網(wǎng)絡(luò)達(dá)到最大傳輸流限。本實(shí)施方式中用一個(gè)有向圖G=(V,E)表示空間信息網(wǎng),其中V是空間信息網(wǎng)中所有航天器節(jié)點(diǎn)的集合,E是空間信息網(wǎng)中所有通信鏈路的集合。源節(jié)點(diǎn)發(fā)送數(shù)據(jù)前,首先將待發(fā)送的消息劃分為等長(zhǎng)的m個(gè)消息向量,記為X1,X2,…,Xm,即Xi,i=1,2,…m,另外,Xi=(xi1,xi2,…,xin),其中xi1,xi2,…,xin為消息向量Xi中的n個(gè)元素。為了便于目的節(jié)點(diǎn)解碼,需要在每個(gè)消息向量中添加全局編碼系數(shù),擴(kuò)展得到的消息向量Xi′形式如式(1)所示:其中,消息向量Xi′的后m位用來(lái)存放Xi的全局編碼系數(shù)。從式(1)可以看出原始消息的全局編碼系數(shù)向量為一組相互正交的單位向量。在任意中間節(jié)點(diǎn)處進(jìn)行編碼操作,中間節(jié)點(diǎn)經(jīng)過(guò)編碼后輸出的消息向量為其輸入的消息向量的線(xiàn)性組合,如式(2)所示:W=Σi=1kCiVi---(2)]]>其中,Vi,i=1,2,…,k,即V1,V2,…,Vk,為中間節(jié)點(diǎn)收到的k個(gè)消息向量;Ci,i=1,2,…,k,即C1,C2,…,Ck為中間節(jié)點(diǎn)從有限域Fq中隨機(jī)選取的局部編碼向量,另外Ci=(ci1,ci2,…cim),其中ci1,ci2,…cim為局部編碼向量Ci中的m個(gè)元素。當(dāng)目的節(jié)點(diǎn)收到m個(gè)線(xiàn)性無(wú)關(guān)的消息向量,記為式(3):其中,(pi1,pi2,…,pin),i=1,2,…,m,為編碼向量;(gi1,gi2,…,gim),i=1,2,…,m,為對(duì)應(yīng)的全局編碼系數(shù)向量。目的節(jié)點(diǎn)進(jìn)行解碼操作,如式(4)所示。其中Z為目的節(jié)點(diǎn)收到的m個(gè)經(jīng)過(guò)編碼的消息向量的矩陣表示形式,G-1為全局編碼系數(shù)矩陣的逆矩陣。通過(guò)高斯消元法,目的節(jié)點(diǎn)利用足夠多線(xiàn)性無(wú)關(guān)的消息向量便可成功恢復(fù)源消息。為了保證信息傳輸過(guò)程與空間信息網(wǎng)的兼容性,需要重新修改數(shù)據(jù)包頭部,在網(wǎng)絡(luò)編碼數(shù)據(jù)包包頭中的可擴(kuò)展字段加入特定的字段,表示此數(shù)據(jù)包經(jīng)過(guò)了怎樣的編碼。如圖2所示,新增的字段包括:編碼標(biāo)志位字段:表明此數(shù)據(jù)包是否為編碼數(shù)據(jù)包。編碼長(zhǎng)度字段:表示參與編碼的數(shù)據(jù)包個(gè)數(shù)。編碼系數(shù)字段:存放編碼消息向量對(duì)應(yīng)的局部編碼系數(shù)。篡改檢測(cè)字段:存放數(shù)據(jù)部分對(duì)應(yīng)的同態(tài)哈希函數(shù)值。各字段在數(shù)據(jù)包中所占字節(jié)數(shù)可以靈活配置,例如編碼標(biāo)志位字段占1比特,編碼長(zhǎng)度字段占2字節(jié),編碼系數(shù)字段占8字節(jié),篡改檢測(cè)字段占2字節(jié),以上所述各字段均可以按照具體要求進(jìn)行修改。另外,為了給空間信息網(wǎng)中各具有空間通信能力的航天器提供驗(yàn)證數(shù)據(jù)完整性的依據(jù),源節(jié)點(diǎn)(源航天器節(jié)點(diǎn))對(duì)將要發(fā)送的源消息向量計(jì)算同態(tài)哈希函數(shù)值,并將計(jì)算得到的同態(tài)哈希函數(shù)值添加到數(shù)據(jù)包頭部的篡改檢測(cè)字段,如圖2所示,一同發(fā)送至下游航天器節(jié)點(diǎn)。消息向量的同態(tài)哈希函數(shù)值可以按照式(5)進(jìn)行計(jì)算。H(Xi)=Πj=1m+ngjxijmodq,i=1,...,m---(5)]]>其中消息向量Xi的同態(tài)哈希值用H(Xi)表示,g1,g2,...,gm+n∈Fq,xij表示第i個(gè)消息向量中第j個(gè)元素。式(5)中的隨機(jī)參數(shù)q和g1,g2,...,gm+n均由參數(shù)生成算法得到:(1)源節(jié)點(diǎn)選取大素?cái)?shù)q并公開(kāi)給其他的通信節(jié)點(diǎn);(2)源節(jié)點(diǎn)隨機(jī)選取g1,g2,...,gm+n∈Fq并公開(kāi),其中m是數(shù)據(jù)包個(gè)數(shù),n是消息向量的長(zhǎng)度。步驟2:自適應(yīng)地確定空間信息網(wǎng)中需要進(jìn)行篡改檢測(cè)的數(shù)據(jù)包;當(dāng)前航天器節(jié)點(diǎn)b監(jiān)聽(tīng)到其鄰節(jié)點(diǎn)發(fā)送的消息后,自適應(yīng)地確定是否需要在節(jié)點(diǎn)b處對(duì)來(lái)自于其k個(gè)鄰節(jié)點(diǎn)的k個(gè)數(shù)據(jù)包進(jìn)行篡改檢測(cè),k≥1;步驟2.1:節(jié)點(diǎn)b從其自身緩存的鄰節(jié)點(diǎn)安全級(jí)別表中查找向其發(fā)送消息的k個(gè)鄰節(jié)點(diǎn),且對(duì)于k個(gè)鄰節(jié)點(diǎn)中的節(jié)點(diǎn)Ni,i=1,2,…,k,若節(jié)點(diǎn)Ni在節(jié)點(diǎn)b的鄰節(jié)點(diǎn)安全級(jí)別表中,則節(jié)點(diǎn)b從其鄰節(jié)點(diǎn)安全級(jí)別表中查找節(jié)點(diǎn)Ni的安全級(jí)別,并執(zhí)行步驟2.2;若節(jié)點(diǎn)Ni不在節(jié)點(diǎn)b的鄰節(jié)點(diǎn)安全級(jí)別表中,則執(zhí)行步驟2.3;所述鄰節(jié)點(diǎn)安全級(jí)別表為用于記錄某節(jié)點(diǎn)的鄰節(jié)點(diǎn)的安全級(jí)別的存儲(chǔ)表,且在每代消息傳送完畢后,其自動(dòng)清空。在本實(shí)施方式中在節(jié)點(diǎn)b的鄰節(jié)點(diǎn)安全級(jí)別表中是以數(shù)字3代表安全級(jí)別為不安全,以數(shù)字1代表安全級(jí)別為安全,以數(shù)字2代表安全級(jí)別為不確定。步驟2.2:節(jié)點(diǎn)Ni的安全級(jí)別是否為3即不安全,是,則確定需要在節(jié)點(diǎn)b處對(duì)自于節(jié)點(diǎn)Ni的數(shù)據(jù)包進(jìn)行篡改檢測(cè),否,即節(jié)點(diǎn)Ni的安全級(jí)別為1即安全或2即不確定,則執(zhí)行步驟2.3;步驟2.3:由節(jié)點(diǎn)b生成一個(gè)隨機(jī)數(shù)Random(0,1);步驟2.4:判斷是否Random(0,1)≤Max(Pd,i,Ps),是,則確定需要在節(jié)點(diǎn)b處對(duì)來(lái)自于節(jié)點(diǎn)Ni的數(shù)據(jù)包進(jìn)行篡改檢測(cè),否,則確定不需要在節(jié)點(diǎn)b處對(duì)來(lái)自于節(jié)點(diǎn)Ni的數(shù)據(jù)包進(jìn)行篡改檢測(cè),且節(jié)點(diǎn)b將來(lái)自于節(jié)點(diǎn)Ni的數(shù)據(jù)包的篡改檢測(cè)概率由Pd,i提高至P'd,i;所述Pd,i為節(jié)點(diǎn)Ni向節(jié)點(diǎn)b發(fā)送的數(shù)據(jù)包的篡改檢測(cè)概率,且Pd,i≤1,保存于該數(shù)據(jù)包中;所述Ps為節(jié)點(diǎn)b的篡改檢測(cè)概率,且Ps≤1,保存于節(jié)點(diǎn)b中;所述P'd,i=Min(ε×Pd,i,1),其中ε>1,ε是根據(jù)網(wǎng)絡(luò)環(huán)境預(yù)先設(shè)置的數(shù)據(jù)包篡改檢測(cè)概率調(diào)節(jié)因子;步驟3.1:判斷在節(jié)點(diǎn)b處需要進(jìn)行篡改檢測(cè)的數(shù)據(jù)包個(gè)數(shù)是否大于等于2,否,則執(zhí)行步驟3.2,是,則執(zhí)行步驟3.3;步驟3.2:判斷在節(jié)點(diǎn)b處需要進(jìn)行篡改檢測(cè)的數(shù)據(jù)包個(gè)數(shù)是否為零,是,則節(jié)點(diǎn)b對(duì)其收到的所有數(shù)據(jù)包進(jìn)行隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼,并執(zhí)行步驟3.8;否,即節(jié)點(diǎn)b處需要進(jìn)行篡改檢測(cè)的數(shù)據(jù)包個(gè)數(shù)為1,則檢測(cè)該一個(gè)數(shù)據(jù)包是否被篡改,是,則節(jié)點(diǎn)b將檢測(cè)出的被篡改的數(shù)據(jù)包丟棄,并將丟棄掉被篡改的數(shù)據(jù)包之后剩余的數(shù)據(jù)包進(jìn)行隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼,再執(zhí)行步驟3.7;否,則節(jié)點(diǎn)b對(duì)其收到的所有數(shù)據(jù)包進(jìn)行隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼,并執(zhí)行步驟3.8;所述檢測(cè)一個(gè)數(shù)據(jù)包是否被篡改的方法為:節(jié)點(diǎn)b利用公式(5)對(duì)其接收的這一個(gè)數(shù)據(jù)包重新計(jì)算同態(tài)哈希函數(shù)值,并將新計(jì)算的同態(tài)哈希函數(shù)值與步驟1中源航天器節(jié)點(diǎn)為此數(shù)據(jù)包計(jì)算的同態(tài)哈希函數(shù)值進(jìn)行比較,若二者相等,則認(rèn)為該數(shù)據(jù)包沒(méi)有被篡改,若二者不相等,則認(rèn)為該數(shù)據(jù)包已被篡改;步驟3.3:節(jié)點(diǎn)b對(duì)其接收到的k個(gè)原始數(shù)據(jù)包進(jìn)行隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼,得到編碼數(shù)據(jù)包;為了減少篡改檢測(cè)的次數(shù),節(jié)省開(kāi)銷(xiāo),本實(shí)施方式中采用先編碼后檢測(cè)的批量篡改檢測(cè)策略。中間節(jié)點(diǎn)收到k條消息Y1,Y2,…,Yk后,隨機(jī)選取編碼系數(shù)向量將k條消息線(xiàn)性組合為編碼向量V,如式(6)所示:V=C1Y1+C2Y2+…CkYk(6)步驟3.4:在節(jié)點(diǎn)b處檢測(cè)編碼數(shù)據(jù)包中是否含有被篡改的原始數(shù)據(jù)包,否,則執(zhí)行步驟3.8;是,則執(zhí)行步驟3.5;所述檢測(cè)編碼數(shù)據(jù)包中是否含有被篡改的原始數(shù)據(jù)包的方法為:1)首先節(jié)點(diǎn)b計(jì)算編碼數(shù)據(jù)包的同態(tài)哈希函數(shù)值;節(jié)點(diǎn)b按照式(7)計(jì)算新編碼向量V的同態(tài)哈希函數(shù)值。H(V)=Πj=1m+ngjvjmodq---(7)]]>其中,V的同態(tài)哈希函數(shù)值用H(V)表示,vj表示編碼向量V的第j個(gè)元素。2)然后根據(jù)節(jié)點(diǎn)b對(duì)其接收到的k個(gè)原始數(shù)據(jù)包進(jìn)行隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼時(shí),所選用的與k個(gè)原始數(shù)據(jù)包一一對(duì)應(yīng)的編碼系數(shù)向量C1,C2,…Ck,利用式(8)計(jì)算步驟1中源航天器節(jié)點(diǎn)為每個(gè)原始數(shù)據(jù)包計(jì)算的同態(tài)哈希函數(shù)值與每個(gè)原始數(shù)據(jù)包所對(duì)應(yīng)的編碼系數(shù)向量的模指數(shù)運(yùn)算的乘積值;即根據(jù)式(7)所示的同態(tài)哈希函數(shù)定義計(jì)算公式及數(shù)學(xué)變換,得到式(8)所示的同態(tài)哈希函數(shù)性質(zhì)計(jì)算公式。H(V)=H(C1Y1+C2Y2+...CkYk)=Πj=1m+ngj(c1y1+c2y2+...+ckyk)modq=Πr=1k(Πj=1m+ngjyrj)Crmodq=Πr=1k(H(Yr))Crmodq---(8)]]>其中,yrj表示消息向量Yr的第j個(gè)元素,c1y1+c2y2+…+ckyk為消息Y1,Y2,…,Yk中各元素進(jìn)行編碼組合。由式(8)可以看出,編碼后數(shù)據(jù)向量的同態(tài)哈希值不僅可以由同態(tài)哈希函數(shù)的定義公式得到,而且還可以由編碼前每個(gè)數(shù)據(jù)向量的同態(tài)哈希值與其編碼系數(shù)的模指數(shù)運(yùn)算關(guān)系得到。3)再然后將此編碼數(shù)據(jù)包的同態(tài)哈希函數(shù)值與前述乘積值進(jìn)行比較,若二者相等,則認(rèn)為此編碼數(shù)據(jù)包中沒(méi)有被篡改的原始數(shù)據(jù)包,若二者不相等,則認(rèn)為此編碼數(shù)據(jù)包中含有被篡改的原始數(shù)據(jù)包。節(jié)點(diǎn)b通過(guò)計(jì)算比較(7)、(8)兩式的值,若相等,則說(shuō)明其所收到的k個(gè)數(shù)據(jù)包均未被篡改,節(jié)點(diǎn)b接著向下游轉(zhuǎn)發(fā)該編碼分組及其同態(tài)哈希函數(shù)值。若不相等,說(shuō)明至少有一個(gè)數(shù)據(jù)包被篡改,節(jié)點(diǎn)b繼續(xù)采用二分法查找具體被篡改的數(shù)據(jù)包,即將k個(gè)數(shù)據(jù)包分為兩組分別再次進(jìn)行上述篡改檢測(cè)過(guò)程。步驟3.5:如圖3所示,采用二分法找出含有被篡改的原始數(shù)據(jù)包的編碼數(shù)據(jù)包中被篡改的原始數(shù)據(jù)包;步驟3.5.1:節(jié)點(diǎn)b將其收到的k個(gè)原始數(shù)據(jù)包平均分成兩組,分別為和表示向下取整。步驟3.5.2:節(jié)點(diǎn)b分別對(duì)兩組原始數(shù)據(jù)包重新進(jìn)行隨機(jī)線(xiàn)性網(wǎng)絡(luò)編碼,對(duì)應(yīng)得到兩個(gè)新的編碼數(shù)據(jù)包;將第一組數(shù)據(jù)包重新編碼組合記為V1,如式(9)所示:其中是在有限域Fq中隨機(jī)選取的編碼向量。將第二組數(shù)據(jù)包重新編碼組合記為V2,如式(10)所示:其中是在有限域Fq中隨機(jī)選取的編碼向量。步驟3.5.3:按照步驟3.4中所述的檢測(cè)編碼數(shù)據(jù)包中是否含有被篡改的原始數(shù)據(jù)包的方法分別對(duì)兩個(gè)新的編碼數(shù)據(jù)包進(jìn)行檢測(cè),找出其中含有篡改原始數(shù)據(jù)包的新編碼數(shù)據(jù)包;本實(shí)施方式中首先利用式(7)所示的同態(tài)哈希函數(shù)定義計(jì)算公式計(jì)算V1和V2的同態(tài)哈希函數(shù)值得到H1(V1)和H1(V2),再利用式(8)所示的同態(tài)哈希函數(shù)性質(zhì)計(jì)算公式計(jì)算V1和V2的同態(tài)哈希值得到H2(V1)和H2(V2),然后比較H1(V1)和H2(V1)是否相等,若相等,說(shuō)明該第一組數(shù)據(jù)包中不存在被篡改的數(shù)據(jù)包,若不相等,說(shuō)明該第一組數(shù)據(jù)包中存在被篡改的數(shù)據(jù)包。同樣地,若H1(V2)和H2(V2)相等,則認(rèn)為第二組數(shù)據(jù)包中不存在被篡改的數(shù)據(jù)包,若H1(V2)和H2(V2)不相等,則認(rèn)為第二組數(shù)據(jù)包中不存在被篡改的數(shù)據(jù)包。步驟3.5.4:判斷含有被篡改原始數(shù)據(jù)包的新編碼數(shù)據(jù)包所對(duì)應(yīng)的原始數(shù)據(jù)包的個(gè)數(shù)是否大于等于2,否,即該新編碼數(shù)據(jù)包所對(duì)應(yīng)的原始數(shù)據(jù)包個(gè)數(shù)為1,且確定該原始數(shù)據(jù)包已被篡改;是,則轉(zhuǎn)至步驟3.5.1,繼續(xù)將該新編碼數(shù)據(jù)包所對(duì)應(yīng)的全部原始數(shù)據(jù)包平均分成兩組,按照步驟3.5.1至3.5.4的方法,直到找到所有被篡改的數(shù)據(jù)包為止;步驟3.6:當(dāng)前節(jié)點(diǎn)b將檢測(cè)出的被篡改的數(shù)據(jù)包丟棄;步驟3.7:將當(dāng)前節(jié)點(diǎn)b的篡改檢測(cè)概率Ps重置為1,且將向其發(fā)送篡改數(shù)據(jù)包的鄰居節(jié)點(diǎn)Ni在節(jié)點(diǎn)b的鄰節(jié)點(diǎn)安全級(jí)別表中的安全級(jí)別降級(jí),并轉(zhuǎn)至步驟3.9。例如,若鄰居節(jié)點(diǎn)Ni在節(jié)點(diǎn)b的鄰節(jié)點(diǎn)安全級(jí)別表中的值為1(安全),則加1,變?yōu)?(不確定),且節(jié)點(diǎn)b向節(jié)點(diǎn)Ni發(fā)送預(yù)警消息,設(shè)置節(jié)點(diǎn)Ni的篡改檢測(cè)概率為1;若鄰居節(jié)點(diǎn)Ni在節(jié)點(diǎn)b的鄰節(jié)點(diǎn)安全級(jí)別表中的值為2(不確定),則加1,變?yōu)?(不安全),以后所有從節(jié)點(diǎn)Ni發(fā)送來(lái)的數(shù)據(jù)包都將進(jìn)行篡改檢測(cè)。步驟3.8:節(jié)點(diǎn)b將其篡改檢測(cè)概率由Ps降低為Ps'=θ×Ps,其中0<θ<1,θ是根據(jù)網(wǎng)絡(luò)環(huán)境預(yù)先設(shè)置的節(jié)點(diǎn)篡改檢測(cè)概率調(diào)節(jié)因子;步驟3.9:節(jié)點(diǎn)b將已丟棄了篡改數(shù)據(jù)包的編碼數(shù)據(jù)包發(fā)送至下游節(jié)點(diǎn),轉(zhuǎn)至步驟4;步驟4:結(jié)束;雖然以上描述了本發(fā)明的具體實(shí)施方式,但是本領(lǐng)域內(nèi)的熟練的技術(shù)人員應(yīng)當(dāng)理解,這些僅是舉例說(shuō)明,可以對(duì)這些實(shí)施方式做出多種變更或修改,而不背離本發(fā)明的原理和實(shí)質(zhì)。本發(fā)明的保護(hù)范圍僅由所附權(quán)利要求書(shū)限定。當(dāng)前第1頁(yè)1 2 3