本發(fā)明屬于網(wǎng)絡(luò)安全領(lǐng)域,尤其涉及一種基于同態(tài)線性子空間簽名的抗萬能攻擊安全網(wǎng)絡(luò)編碼方法。
背景技術(shù):
近年來,網(wǎng)絡(luò)安全編碼的研究受到較多關(guān)注,其目的是設(shè)計(jì)滿足各種安全條件,且能夠進(jìn)行高效的數(shù)據(jù)傳輸?shù)木€性網(wǎng)絡(luò)安全編碼。從網(wǎng)絡(luò)傳輸?shù)慕嵌瓤?,現(xiàn)存的安全網(wǎng)絡(luò)編碼問題主要可以分為兩類:第一類問題是傳輸?shù)男畔⒈粩橙烁`聽(被動攻擊),造成一些重要信息的泄露;第二類問題是網(wǎng)絡(luò)中傳輸?shù)男畔⒈粩橙藧阂庑薷幕蛘邆卧?主動攻擊),導(dǎo)致信息的原定接收者不能接收到原始信息。并且竊聽攻擊與污染攻擊還有可能出現(xiàn)在同一網(wǎng)絡(luò)中,具有此種能力的攻擊者被稱為萬能攻擊者,它對于網(wǎng)絡(luò)系統(tǒng)擁有很強(qiáng)的攻擊和破壞能力。趙慧等人在k.jain研究的基礎(chǔ)上,提出一種安全性定理,并證明了在編碼節(jié)點(diǎn)處使用偽隨機(jī)函數(shù)更能確保信源消息不被惡意攻擊者獲取,然而,該算法不具有抗污染攻擊的能力,并且需要知道整個網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),不適宜用于大規(guī)模網(wǎng)絡(luò)或無線網(wǎng)絡(luò)。jaggi等提出分布式解決方法,該方法可在多項(xiàng)式時(shí)間內(nèi)完成設(shè)計(jì)。然而,該方法不具有抗竊聽能力,并且對于存儲空間的需求較大。周亞軍等基于子空間,給出了一種安全的糾錯網(wǎng)絡(luò)編碼,然而,其在傳輸過程中需要一條秘密信道,針對萬能攻擊者,該算法安全性較差。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種基于同態(tài)線性子空間簽名的抗萬能攻擊安全網(wǎng)絡(luò)編碼方法,其可同時(shí)兼具抗竊聽和污染攻擊的能力,且編碼可在多項(xiàng)式時(shí)間內(nèi)完成。
本發(fā)明的目的通過以下技術(shù)方案實(shí)現(xiàn):
基于同態(tài)線性子空間簽名的抗萬能攻擊安全網(wǎng)絡(luò)編碼方法,具體包含如下步驟;
步驟1,信源節(jié)點(diǎn)對待傳輸?shù)脑枷⑾蛄窟M(jìn)行組合編碼,進(jìn)而得到一個新的待傳輸?shù)南⑾蛄浚?/p>
步驟2,信源節(jié)點(diǎn)對新得到的待傳輸?shù)南⑾蛄窟M(jìn)行加密,將加密后的待傳輸?shù)南⑾蛄窟M(jìn)行網(wǎng)絡(luò)編碼,并將編碼后的消息向量組成數(shù)據(jù)包,進(jìn)而發(fā)送至中繼節(jié)點(diǎn);
步驟3,中繼節(jié)點(diǎn)將收到的同屬一個代的數(shù)據(jù)包進(jìn)行譯碼和驗(yàn)證,若通過驗(yàn)證,則判定該原始消息向量在傳輸過程中既沒有被竊聽也沒有被污染;反之,該數(shù)據(jù)包將會被丟棄,同時(shí)中繼節(jié)點(diǎn)會要求信源節(jié)點(diǎn)重新發(fā)送數(shù)據(jù)包。
作為本發(fā)明基于同態(tài)線性子空間簽名的抗萬能攻擊安全網(wǎng)絡(luò)編碼方法的進(jìn)一步優(yōu)選方案,所述步驟1具體包含如下步驟:
步驟1.1,設(shè)定參數(shù)m,n,r,q,id,在秘鑰分配中心上生成一個(n-r)×n的秘密矩陣s,其中,m,n,r,q分別為素?cái)?shù),且r<n,id為代標(biāo)識符,并在秘鑰分配中心上利用秘鑰分配協(xié)議通過安全信道為每個驗(yàn)證節(jié)點(diǎn)發(fā)送一個秘鑰ks;
步驟1.2,利用步驟1.1中生成的私密矩陣s構(gòu)造出一個私密線性方程組:s(x1,x2,...,xr,xr+1,...,xn)t=0,令x1,x2,...,xr=vi1,vi2,...,vir將其代入該私密線性方程組中,得到(ti,r+1,ti,r+2,...,ti,n)=(xr+1,xr+2,...,xn);其中(ti,r+1,ti,r+2,...,ti,n)表示當(dāng)前代中第i個消息向量vi的n-r個消息認(rèn)證標(biāo)簽;其中,i和γ為正整數(shù);
步驟1.3,根據(jù)步驟1.2依次獲取該代中其余待傳輸?shù)脑枷⑾蛄康南⒄J(rèn)證標(biāo)簽。
作為本發(fā)明基于同態(tài)線性子空間簽名的抗萬能攻擊安全網(wǎng)絡(luò)編碼方法的進(jìn)一步優(yōu)選方案,所述步驟2具體包含如下步驟:
步驟2.1,通過步驟1.2獲取當(dāng)前代第i個待傳輸?shù)南⑾蛄?imgfile="bda0001330454870000021.gif"wi="78"he="62"img-content="drawing"img-format="gif"orientation="portrait"inline="no"/>其中,
步驟2.2,信源節(jié)點(diǎn)在有限域fq上生成一個非零元的且維數(shù)為m×m的可逆矩陣a,進(jìn)而得到加密后的待傳輸消息向量c;其中,c=a·w;
步驟2.3,將步驟2.2中生成的可逆矩陣a利用流密碼加密算法進(jìn)行加密后與已加密后的待傳輸消息向量c一起進(jìn)行打包傳輸,即
當(dāng)i=1,2,...,r時(shí),ci*=(e(id,ai1),e(id,ai2),...,e(id,ai,r+1),ci);
當(dāng)i=r+1,r+2,...,m時(shí),
其中,e(id,ai,r+1)為公共的流密碼加密算法,
信源節(jié)點(diǎn)將每個
作為本發(fā)明基于同態(tài)線性子空間簽名的抗萬能攻擊安全網(wǎng)絡(luò)編碼方法的進(jìn)一步優(yōu)選方案,所述步驟3具體包含如下步驟:
步驟3.1,當(dāng)中繼節(jié)點(diǎn)接收到m個合法的屬于同一個代id線性獨(dú)立的數(shù)據(jù)包wi時(shí),其中,i=1,2,...,m;利用高斯消元法譯出ci*,對
步驟3.2,根據(jù)消息矩陣w解密得到v1*,
作為本發(fā)明基于同態(tài)線性子空間簽名的抗萬能攻擊安全網(wǎng)絡(luò)編碼方法的進(jìn)一步優(yōu)選方案,在步驟2.3中,信源節(jié)點(diǎn)利用標(biāo)準(zhǔn)隨機(jī)網(wǎng)絡(luò)編碼協(xié)議將每個
本發(fā)明采用上述信源編碼方案以及接收節(jié)點(diǎn)能否正確通過安全驗(yàn)證,提出了一種能夠抗萬能攻擊的安全網(wǎng)絡(luò)編碼方案。相比大多數(shù)現(xiàn)有的網(wǎng)絡(luò)編碼防御方案只能夠針對一類惡意攻擊,本發(fā)明能夠同時(shí)防御多類惡意攻擊,并且與已有的同類解決方法相比,該方法的優(yōu)勢是需要很少的源秘鑰,并且一個中間結(jié)點(diǎn)僅需要分配一個秘鑰。
附圖說明
圖1為本發(fā)明方法所適用的網(wǎng)絡(luò)拓?fù)鋱D;
圖2為使用本發(fā)明信源節(jié)點(diǎn)與中繼節(jié)點(diǎn)工作流程圖;
具體實(shí)施方式
為使本發(fā)明的目的,技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對本發(fā)明作進(jìn)一步的詳細(xì)描述。但本發(fā)明的保護(hù)范圍不限于下述的實(shí)例示例。
本發(fā)明所述的基于同態(tài)線性子空間簽名的抗萬能安全網(wǎng)絡(luò)編碼方法關(guān)注的是單源多播無環(huán)網(wǎng)絡(luò),如圖1所示,用有限域fq來表示編碼域,其中q為一個素?cái)?shù)或素?cái)?shù)的冪,表示編碼域的大小。并且本發(fā)明中的原始消息消息將用一個m×n的矩陣
信宿或中繼結(jié)點(diǎn)譯碼為一個階段,信宿或中繼結(jié)點(diǎn)進(jìn)行抗萬能安全網(wǎng)絡(luò)編碼的驗(yàn)證,若通過驗(yàn)證,則代表在傳輸過程中消息向量既沒有被污染也沒有被竊聽。否則,該消息向量將被丟棄,信宿或者中繼節(jié)點(diǎn)會要求信源節(jié)點(diǎn)重新傳輸該消息向量。
其中信源編碼第一階段包括如下步驟:
步驟1.1、給定系統(tǒng)參數(shù)m,n,q,并在系統(tǒng)原先就存在的秘鑰分配中心kdc上生成一個(n-r)×n(r<n)的秘密矩陣s=(s1t,s2t......srt)t=(sij)t其中sij∈fq,這里的si可以通過公共的偽隨機(jī)函數(shù)生成器g:{0,1}*→fq利用一個取自有限域fq的隨機(jī)種子sdi生成。然后kdc將用于生成私密矩陣的r個秘鑰種子sdi通過認(rèn)證過的加密信道發(fā)送給信源。最后kdc通過安全信道為每個非信源驗(yàn)證節(jié)點(diǎn)計(jì)算并發(fā)送一個單獨(dú)的秘鑰
步驟1.2、利用步驟a中生成的私密矩陣s構(gòu)造出一個私密線性方程組:s(x1,x2,...,xr,xr+1,...,xn)t=0,令(x1,x2,...,xr)=(vi1,vi2,...,vir)將其代入該線性方程組中,可以得到(ti,r+1,ti,r+2,...,ti,n)=(xr+1,xr+2,...,xn),其中(ti,r+1,ti,r+2,...,ti,n)表示當(dāng)前代中第i個消息向量的mac認(rèn)證標(biāo)簽。并且按照該步驟,可以求出代中其余消息向量的mac認(rèn)證標(biāo)簽。
步驟1.3,依次按照步驟1.2獲取該代中其余待傳輸?shù)脑枷⑾蛄康南⒄J(rèn)證標(biāo)簽;
其中信源編碼第二階段包括如下步驟:
步驟2.1、經(jīng)過步驟b的簽名算法后,可以編碼組合得到一個新的當(dāng)前代的第i個待傳輸?shù)南⑾蛄?imgfile="bda0001330454870000043.gif"wi="387"he="66"img-content="drawing"img-format="gif"orientation="portrait"inline="no"/>(該消息向量有2n-r個元素),并將該代中前r(r<m)個消息向量利用一種公共的流密碼加密算法e(分組密碼)進(jìn)行隨機(jī)化加密。對于每一個i∈{1,2,...,r},都有
即
其中hij和hi,j都是由流加密算法e生成的在有限域fq內(nèi)隨機(jī)符號。并得到一個新的消息矩陣w,其中w矩陣的前r個向量是根據(jù)流密碼加密后的消息向量。
步驟2.2、信源在有限域fq上生成一個用來作為全局編碼向量的非零元的維數(shù)為m×m的可逆隨機(jī)矩陣a(m,r)=(a1,a2),其中a1=(aij)(i=1,2,...,m,j=1,2,...,r,aij∈fq),a2是一個如下形式的維數(shù)為m×(m-r)的矩陣
其中a2這個矩陣?yán)锩娴娜魏卧豠i,r+1,ajj(i=1,2,...,r,j=r+1,r+2,...,m)均隨機(jī)取自fq,其余元素均為0。信源按照下式進(jìn)行計(jì)算
步驟2.3、為了達(dá)到防竊聽攻擊,則步驟2.2中生成的可逆矩陣a要利用流密碼加密算法進(jìn)行加密后與步驟2.2中生成的已加密編碼后的消息向量c一起進(jìn)行打包傳輸。當(dāng)i=1,2,...,r時(shí),ci*=(e(id,ai1),e(id,ai2),...,e(id,ai,r+1),ci);
當(dāng)i=r+1,r+2,...,m時(shí),
其中信宿或中繼節(jié)點(diǎn)譯碼包括如下步驟:
步驟3.1、當(dāng)信宿節(jié)點(diǎn)或者中繼節(jié)點(diǎn)接收到m個合法的屬于同一個代id線性獨(dú)立的數(shù)據(jù)包wi(i=1,2,...,m)時(shí),可利用高斯消元法譯出ci*(i=1,2,...,m),然后對
步驟3.2最后對