本發(fā)明涉及一種適用于多應(yīng)用場景的安全數(shù)據(jù)融合方法,屬于數(shù)據(jù)融合技術(shù)領(lǐng)域。
背景技術(shù):
近年來,低功耗集成電路和無線通信技術(shù)的發(fā)展,使得傳感器節(jié)點以更低成本和功耗應(yīng)用在實際生活中,提高了利用大規(guī)模傳感器網(wǎng)絡(luò)收集、處理、分析和傳播信息的可行性。由于無線傳感器網(wǎng)絡(luò)的特殊性,如能量、計算和存儲資源有限等,為減少數(shù)據(jù)冗余,提高網(wǎng)絡(luò)資源的利用率,通常對數(shù)據(jù)在傳輸過程中進行融合操作。當wsn應(yīng)用于敏感數(shù)據(jù)監(jiān)測時,如何保障數(shù)據(jù)的安全性成為數(shù)據(jù)融合的主要問題。相對的,在保障數(shù)據(jù)安全性的同時,一般會給網(wǎng)絡(luò)帶來額外的開銷,這與數(shù)據(jù)融合的目的背道而馳。諸多基于傳統(tǒng)公鑰加密的融合機制會給網(wǎng)絡(luò)帶來較大計算和通信開銷,并且不支持多種應(yīng)用數(shù)據(jù)的融合,即當網(wǎng)絡(luò)中存在多種類型的傳感數(shù)據(jù)時(如溫度、濕度、壓力等),中間融合節(jié)點無法對多種數(shù)據(jù)進行有效的融合,從而無法滿足實際應(yīng)用中需求。經(jīng)對現(xiàn)有文獻的檢索發(fā)現(xiàn),lin等人基于iphcda(integrityprotectinghierarchicalconcealeddataaggregation)協(xié)議中的分區(qū)域?qū)哟厥饺诤纤枷耄岢隽艘环N適用于多應(yīng)用場景的數(shù)據(jù)融合算法cdama(concealeddataaggregationschemeformultipleapplications),該方案使用基于橢圓曲線的公鑰bgn公鑰加密方案并對其進行擴展,使其能夠?qū)Χ喾N類型傳感數(shù)據(jù)進行融合。由于該方案產(chǎn)生的密文擴張較大,密文數(shù)據(jù)須分成多個數(shù)據(jù)包發(fā)送,很大程度的增加了網(wǎng)絡(luò)中通信量并且降低了融合的精確度。
因此,針對上述問題,本發(fā)明引入了一種輕量級對稱同態(tài)加密算法和同態(tài)消息認證碼,使得融合節(jié)點能夠?qū)邮盏矫芪募捌湎⒄J證碼執(zhí)行加性融合。同時,引入融合輪數(shù)t,使每個節(jié)點能夠動態(tài)的更新密鑰,可有效的抵御重放攻擊。進一步,在明文被加密前對其進行編碼,滿足了多應(yīng)用場景下的使用需求。
技術(shù)實現(xiàn)要素:
本發(fā)明目的在于提出了一種適用于多應(yīng)用場景的安全數(shù)據(jù)融合方法,該方法為數(shù)據(jù)提供機密性和完整性保護的同時,解決了傳統(tǒng)公鑰加密方案計算和通信開銷過大以及不支持多源異構(gòu)數(shù)據(jù)融合的問題。
一種適用于多應(yīng)用場景的安全數(shù)據(jù)融合方法,該方法以簇為數(shù)據(jù)融合的基本單位,分為初始化階段、數(shù)據(jù)加密與標簽生成階段、數(shù)據(jù)融合階段和完整性驗證階段。
附圖說明
圖1網(wǎng)絡(luò)拓撲結(jié)構(gòu);
圖2適用于多應(yīng)用場景的安全數(shù)據(jù)融合方案示例圖;
圖3適用于多應(yīng)用場景的安全數(shù)據(jù)融合方案的流程圖;
具體實施方式
本方法設(shè)定為周期性融合,節(jié)點周期性地采集并上傳收集到數(shù)據(jù)。
一種適用于多應(yīng)用場景的安全數(shù)據(jù)融合方法,其特征在于,以當前融合輪數(shù)和節(jié)點預(yù)置密鑰作為哈希函數(shù)的輸入,為節(jié)點更新每個融合周期的密鑰。采用同態(tài)加密技術(shù),使中間節(jié)點能夠?qū)γ芪闹苯訄?zhí)行融合操作。采用同態(tài)消息認證碼,使基站能夠驗證融合數(shù)據(jù)在傳輸過程中是否被篡改。對明文信息采用編碼機制,以滿足多應(yīng)用場景下的使用需求。
本方法采用的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。網(wǎng)絡(luò)由3種節(jié)點組成bs(基站)、融合節(jié)點(簇頭節(jié)點)、簇內(nèi)成員節(jié)點。并且,本文設(shè)定網(wǎng)絡(luò)中每個節(jié)點集成多種類型傳感器,負責采集不同種類型的數(shù)據(jù)(如濕度、溫度、壓力等)。簇內(nèi)成員節(jié)點負責采集數(shù)據(jù)并將感知的數(shù)據(jù)上傳給融合節(jié)點;融合節(jié)點將簇內(nèi)所有成員節(jié)點發(fā)送的數(shù)據(jù)進行融合后上傳給基站節(jié)點;bs在網(wǎng)絡(luò)中負責接收簇頭節(jié)點的融合結(jié)果。具體步驟包括:
(1)初始化階段:
在網(wǎng)絡(luò)被部署之前,為每個節(jié)點snij(記snij為第j個簇的第i個成員)預(yù)置加載密鑰ki=(k,kij,1,kij,2),其中k為整個網(wǎng)絡(luò)中所有節(jié)點共享密鑰,為與基站的共享密鑰。同時,每個節(jié)點需加載一個大數(shù)m,一個大素數(shù)p,一個基于hmac-sha1的偽隨機函數(shù)prf(·)。
(2)數(shù)據(jù)加密與標簽生成階段:
(2-1)每個簇內(nèi)成員節(jié)點snij根據(jù)當前融合周期輪數(shù)t以及節(jié)點預(yù)置密鑰ki=(k,kij,1,kij,2),計算前周期數(shù)據(jù)加密密鑰kij1,t和消息認證標簽生成所需密鑰kij2,t:
kij1,t=prf(kij1,t),kij2,t=prf(kij2,t)。
(1)
(2-2)snij對α種類別的感知數(shù)據(jù)進行編碼:
dij,t=mij,1,t||mij,2t||......||mij,α,t
(2)
其中||表示連接操作,mij,α,t表示snij在第t輪周期內(nèi)采集的數(shù)據(jù),數(shù)據(jù)類型為α。其中每種數(shù)據(jù)類型所需占用的二進制位數(shù)|mij,α,t|需滿足|mij,α,t|=λ·(α-1),λ為能足夠表示每一種類型的數(shù)據(jù)所需的比特數(shù)λ=log(nα·p),nα為網(wǎng)絡(luò)中第α-1種傳感器數(shù)量,p為第α-1種傳感器感知數(shù)據(jù)的最大長度。
(2-3)snij對步驟2中dij,t執(zhí)行加法同態(tài)加密,可得dij,t的密文:
cij,t=dij,t+kij1,t(modm)
(3)
(2-4)snij根據(jù)3中的密文cij,t,計算消息認證標簽:
tagij,t=(cij,t·k)+kij2,t(modp)
(4)
其中,p為大素數(shù),cij,t為節(jié)點感知數(shù)據(jù)加密后的密文,kij,t為全局密鑰,kij2,t為節(jié)點與基站共享的密鑰。由公式4為每個密文生成一個認證標簽tagij,t,并且該公式滿足加法同態(tài):
tag1+tag2
=f(c1,k,k1,p)+f(c2,k,k2,p)
=k·c1+k1+k·c2+k2modp
=k·(c1+c2)+(k1+k2)modp
=f(c1+c2,k,k1+k2,p)
所以,該消息認證碼具有加法同態(tài)性。融合節(jié)點收到每個成員節(jié)點的認證標簽tagi,可以對多個認證標簽進行融合后上傳給基站用于驗證融合數(shù)據(jù)的完整性。全局秘鑰k可有效的防止攻擊者在密文信息上實施鍛造攻擊。
(2-5)所有簇內(nèi)成員節(jié)點snij將密文cij,t和相應(yīng)的消息認證標簽tagij,t上傳至簇頭節(jié)點。
(3)在數(shù)據(jù)融合階段:
(3-1)簇頭節(jié)點收集到的n個密文數(shù)據(jù)(c1j,t…cnj,t),執(zhí)行加性融合,可得融合密文:
cagg,j=∑cij,tmodm
(5)
(3-2)簇頭節(jié)點收集到的n個消息認證標簽(tag1j,t…tagnj,t),執(zhí)行加性融合,可得融合標簽:
tagagg,j=∑tagij,tmodp
(6)
(4)完整性驗證階段:
(4-1)基站在接收到各簇頭節(jié)點發(fā)送的數(shù)據(jù)包后,首先使用與節(jié)點共享的密鑰kij1,kij2,根據(jù)當前融合輪數(shù)t計算本周期內(nèi)網(wǎng)絡(luò)中各節(jié)點使用的密鑰:
kij1,t=prf(kij1,t),kij2,t=prf(kij2,t)
(7)
(4-2)基站計算每個簇內(nèi)響應(yīng)節(jié)點密鑰之和:
(4-3)基站根據(jù)步驟2中k2,t,全局密鑰k以及接收到的融合數(shù)據(jù)的密文cagg,j,重新計算融合標簽值:
tagagg,j'=(cagg,j·k)+k2,t(modp)
(9)
(4-4)基站將步驟4-3中得到的tagagg,j'與接收到的標簽tagagg,j進行比對。如果tagagg,j'=tagagg,j,基站接收融合密文數(shù)據(jù)cagg,j并對cagg,j進行解密和解碼操作:
magg,α,j=d[(α-1)·λ,α·λ-1]
(11)
反之,若tagagg,j'≠tagagg,j,基站將丟棄融合密文數(shù)據(jù)cagg,j。
(4-5)基站與各節(jié)點更新融合周期計數(shù)值t=t+1,并進入下一個融合周期。
方案示例
下面通過簡單舉例來說明本方案的工作流程。假設(shè)網(wǎng)絡(luò)中有3個節(jié)點{sn11,sn21,sn1},sn1為簇頭節(jié)點,sn11,sn21為sn1的成員節(jié)點。假設(shè)每個節(jié)點集成3種類型傳感器,sn11的密鑰k11=3000,sn21的密鑰k21=1500,m=5000采集到的數(shù)據(jù)分別為:
首先,節(jié)點對明文編碼,此時λ=4,編碼后的結(jié)果為:
接著,對編碼結(jié)果進行加密得到密文c11,c21,并使用密文生成認證標簽tag11,tag21。
然后,sn11,sn21將(c11,tag11),(c21,tag21)發(fā)送給sn1。sn1收到密文和標簽后,分別對其執(zhí)行加法融合操作,可得:
隨后sn1將融合結(jié)果(cagg,1,tagagg,1)發(fā)送給基站。最后,基站在收到(cagg,1,tagagg,1)后,首先驗證數(shù)據(jù)的完整性。如果驗證通過,基站對融合密文解密得到dagg,1=(111110110111)2,再根據(jù)譯碼規(guī)則計算:
dagg,1=cagg,1-k11-k21modm=4023=(111110110111)2
magg,1,1=d[(1-1)·4,1·4-1]=d[0,3]=(0111)2=7
magg,2,1=d[(2-1)·4,2·4-1]=d[4,7]=(1011)2=11
magg,3,1=d[(3-1)·4,3·4-1]=d[8,11]=(1111)2=15
magg,1,1,magg,2,1,magg,3,1即為三種不同類型數(shù)據(jù)的最終融合結(jié)果。