一種無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法
【專利摘要】本發(fā)明公開了一種無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法,包括:基站依據(jù)節(jié)點(diǎn)到基站的跳數(shù)對(duì)節(jié)點(diǎn)進(jìn)行分組;基站隨機(jī)選擇數(shù)量相同的隨機(jī)數(shù),為每個(gè)分組生成一條單向哈希鏈,并將每條哈希鏈的定向哈希值存儲(chǔ)在相應(yīng)分組節(jié)點(diǎn)上;基站將待發(fā)送的數(shù)據(jù)包進(jìn)行預(yù)處理,使用哈希鏈上的定向哈希值對(duì)該條鏈上其前驅(qū)值進(jìn)行加密處理;對(duì)數(shù)據(jù)包和前驅(qū)值進(jìn)行組合獲得其組合后的哈希值,并加入用于表示數(shù)據(jù)包生命周期的參數(shù),構(gòu)造待傳輸?shù)臄?shù)據(jù)包;傳感器節(jié)點(diǎn)對(duì)數(shù)據(jù)包進(jìn)行驗(yàn)證,根據(jù)節(jié)點(diǎn)的組別對(duì)數(shù)據(jù)包進(jìn)行解析后驗(yàn)證其合法性,若數(shù)據(jù)包為其它組的數(shù)據(jù),則直接轉(zhuǎn)發(fā)該數(shù)據(jù)包;若數(shù)據(jù)包為合法數(shù)據(jù)包則接受該數(shù)據(jù)包并更新該節(jié)點(diǎn)相應(yīng)的數(shù)據(jù)項(xiàng);否則直接刪除該數(shù)據(jù)包。
【專利說明】
一種無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法
技術(shù)領(lǐng)域
[0001]本發(fā)明屬于無線通信技術(shù)領(lǐng)域,尤其涉及一種無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法。
【背景技術(shù)】
[0002]無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSN)是由一批資源受限的傳感器節(jié)點(diǎn)組成的多跳的自組織網(wǎng)絡(luò),其廣泛應(yīng)用于醫(yī)療健康領(lǐng)域、棲息地環(huán)境、溫室以及軍事等關(guān)鍵領(lǐng)域。傳感器節(jié)點(diǎn)一旦部署在相應(yīng)的環(huán)境中,就很難再將這些節(jié)點(diǎn)收集起來。然而,在實(shí)際的應(yīng)用中,經(jīng)常需要對(duì)某些重要的參數(shù)進(jìn)行調(diào)整,手動(dòng)地對(duì)這些傳感器節(jié)點(diǎn)進(jìn)行相關(guān)參數(shù)的修改以及代碼的更新代價(jià)都是巨大的。因而,在WSN中,小數(shù)據(jù)分發(fā)協(xié)議的設(shè)計(jì)非常關(guān)鍵。
[0003]在WSN中已經(jīng)有不少設(shè)計(jì)優(yōu)良的小數(shù)據(jù)分發(fā)協(xié)議如DRIP、DHV、DIP等,WSN中的小數(shù)據(jù)分發(fā)協(xié)議主要分為三個(gè)部分:第一個(gè)部分是基站向網(wǎng)絡(luò)中發(fā)送所要傳輸?shù)臄?shù)據(jù)項(xiàng)的摘要信息,當(dāng)節(jié)點(diǎn)收到相關(guān)的摘要信息后將會(huì)與自身的摘要信息比較,確定是否需要更新數(shù)據(jù)項(xiàng)。當(dāng)節(jié)點(diǎn)收到的摘要信息和所存儲(chǔ)的摘要信息不同時(shí),比較其版本號(hào)的新舊,如果版本號(hào)比現(xiàn)有的新,則發(fā)送更新的請(qǐng)求,如果版本號(hào)比現(xiàn)有的舊,則廣播其自身所存儲(chǔ)的摘要信息,如果相同則延長其自身廣播的時(shí)間間隔來延長節(jié)點(diǎn)的使用壽命。小數(shù)據(jù)分發(fā)的第二個(gè)階段,傳感器節(jié)點(diǎn)接收到相關(guān)的數(shù)據(jù)項(xiàng),檢查相關(guān)的循環(huán)冗余校驗(yàn)碼保證數(shù)據(jù)的正確接收。在小數(shù)據(jù)分發(fā)的第三個(gè)階段,如果正確接收到相關(guān)的數(shù)據(jù)項(xiàng)后,查詢其關(guān)鍵字,然后對(duì)其進(jìn)行更新,直到整個(gè)網(wǎng)絡(luò)中所有的傳感器節(jié)點(diǎn)都保持相同的版本號(hào)。然而這些協(xié)議所關(guān)注的重點(diǎn)在于如何保證數(shù)據(jù)分發(fā)的正確性以及數(shù)據(jù)分發(fā)過程中的效率,未能考慮到數(shù)據(jù)在發(fā)送的過程中可能面臨的安全威脅。由于節(jié)點(diǎn)接收數(shù)據(jù)都是根據(jù)數(shù)據(jù)的版本號(hào)和其關(guān)鍵字來確定的,因而攻擊者很容易通過修改部分?jǐn)?shù)據(jù)對(duì)網(wǎng)絡(luò)發(fā)起攻擊。如通過修改數(shù)據(jù)項(xiàng)的版本號(hào),節(jié)點(diǎn)收到相關(guān)的數(shù)據(jù)就誤以為版本號(hào)發(fā)生了變化而更新數(shù)據(jù)項(xiàng)。因而,在節(jié)點(diǎn)接收數(shù)據(jù)時(shí)必須驗(yàn)證數(shù)據(jù)的完整性,確保數(shù)據(jù)在接收的過程中沒有被篡改。因而,加強(qiáng)對(duì)小數(shù)據(jù)分發(fā)過程中的安全保護(hù)非常關(guān)鍵。
[0004]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法,本發(fā)明確保了在網(wǎng)絡(luò)中出現(xiàn)部分節(jié)點(diǎn)妥協(xié)的情況下能夠降低對(duì)整個(gè)網(wǎng)絡(luò)中的影響,使得在網(wǎng)絡(luò)中部分節(jié)點(diǎn)妥協(xié)時(shí)不會(huì)造成整個(gè)網(wǎng)絡(luò)的癱瘓。其次,所提出的小數(shù)據(jù)分發(fā)安全方法采用三重認(rèn)證機(jī)制,不僅能夠有效抵抗攻擊者偽造數(shù)據(jù)包,而且能夠?qū)?shù)據(jù)包進(jìn)行快速有效的認(rèn)證。最后,對(duì)傳感網(wǎng)進(jìn)行分組,可以有效地管理節(jié)點(diǎn),降低網(wǎng)絡(luò)中節(jié)點(diǎn)能量的損耗,延長網(wǎng)絡(luò)的使用壽命。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提出了一種無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法,包括如下階段:
[0006]系統(tǒng)初始化階段:基站依據(jù)節(jié)點(diǎn)到基站的跳數(shù)對(duì)節(jié)點(diǎn)進(jìn)行分組;根據(jù)組別的數(shù)量,基站隨機(jī)選擇數(shù)量相同的隨機(jī)數(shù),為每個(gè)分組生成一條單向哈希鏈,并將每條哈希鏈的定向哈希值存儲(chǔ)在相應(yīng)的分組節(jié)點(diǎn)上;
[0007]數(shù)據(jù)包預(yù)處理階段:所述基站對(duì)待發(fā)送的數(shù)據(jù)包進(jìn)行預(yù)處理,使用哈希鏈上的定向哈希值對(duì)該條鏈上其前驅(qū)值進(jìn)行加密處理;將所述數(shù)據(jù)包和所述前驅(qū)值進(jìn)行組合獲得其組合后的哈希值,并加入用于表示數(shù)據(jù)包生命周期的參數(shù),構(gòu)造一個(gè)待傳輸?shù)臄?shù)據(jù)包;
[0008]數(shù)據(jù)包驗(yàn)證階段:傳感器節(jié)點(diǎn)對(duì)所述數(shù)據(jù)包進(jìn)行驗(yàn)證,根據(jù)節(jié)點(diǎn)的組別對(duì)所述數(shù)據(jù)包進(jìn)行解析后驗(yàn)證其合法性,若所述數(shù)據(jù)包為其它組的數(shù)據(jù),則直接轉(zhuǎn)發(fā)所述數(shù)據(jù)包;若所述數(shù)據(jù)包為合法數(shù)據(jù)包則接受該數(shù)據(jù)包并更新該節(jié)點(diǎn)相應(yīng)的數(shù)據(jù)項(xiàng);若所述數(shù)據(jù)包不具合法性,則直接刪除該數(shù)據(jù)包。
[0009]本發(fā)明所述的無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法中,所述初始化階段包括以下步驟:
[0010]步驟Al:所述基站根據(jù)節(jié)點(diǎn)到基站的跳數(shù)將節(jié)點(diǎn)進(jìn)行分組,將同一跳數(shù)范圍內(nèi)的節(jié)點(diǎn)組成一個(gè)組別,并為每組節(jié)點(diǎn)選取一個(gè)隨機(jī)數(shù)作為單向哈希鏈的種子數(shù)字;
[0011 ]步驟A2:所述基站利用所述種子數(shù)字為相應(yīng)的分組創(chuàng)建一條單向哈希鏈,所述種子數(shù)字作為哈希鏈的初始值,其它鏈上的值由其前一個(gè)哈希鏈上的值作為輸入運(yùn)用哈希函數(shù)運(yùn)算產(chǎn)生,在滿足所發(fā)送的數(shù)據(jù)項(xiàng)個(gè)數(shù)的情況下,獲得最后一個(gè)哈希值為定向哈希值,所述定向哈希值用來驗(yàn)證數(shù)據(jù)項(xiàng)的完整性;
[0012]步驟A3:依據(jù)節(jié)點(diǎn)的不同分組,將所述定向哈希值分配到相應(yīng)組別的傳感器節(jié)點(diǎn)上;
[0013]步驟A4:使用四元組表示每一個(gè)所需要發(fā)送的數(shù)據(jù)包。
[0014]本發(fā)明所述的無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法中,步驟A4中所述四元組分別為:原始數(shù)據(jù)包、加密區(qū)數(shù)據(jù)、哈希區(qū)數(shù)據(jù)和生命周期標(biāo)識(shí);其中,所述原始數(shù)據(jù)包表示所發(fā)送需要更新的數(shù)據(jù)包,該數(shù)據(jù)包包括數(shù)據(jù)項(xiàng)的關(guān)鍵字、版本號(hào)和數(shù)據(jù)三個(gè)部分;所述加密區(qū)數(shù)據(jù)表示使用哈希鏈上的值進(jìn)行加密后的數(shù)據(jù),所述哈希區(qū)數(shù)據(jù)表示原始數(shù)據(jù)和哈希鏈連接后的哈希值,所述生命周期標(biāo)識(shí)表示數(shù)據(jù)包在發(fā)送過程中所能傳遞的跳數(shù)。
[0015]本發(fā)明所述的無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法中,所述數(shù)據(jù)包預(yù)處理階段包括以下步驟:
[0016]步驟B1:所述基站根據(jù)網(wǎng)絡(luò)中的分組構(gòu)建出數(shù)據(jù)包生命周期數(shù)組,依據(jù)各個(gè)不同的數(shù)據(jù)包生命周期來構(gòu)建待傳輸?shù)臄?shù)據(jù)包。
[0017]步驟B2:所述基站采用廣播模式將構(gòu)建后的數(shù)據(jù)包發(fā)送到每一個(gè)傳感器節(jié)點(diǎn),所述傳感器節(jié)點(diǎn)首先依據(jù)數(shù)據(jù)包的生命周期來確定是否是其所屬組別的數(shù)據(jù)包,然后對(duì)其所收到的數(shù)據(jù)包進(jìn)行相關(guān)的驗(yàn)證。
[0018]本發(fā)明所述的無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法中,步驟BI中所述基站依據(jù)不同的數(shù)據(jù)包生命周期來構(gòu)建所要發(fā)送的數(shù)據(jù)包的步驟為:利用基站所產(chǎn)生的哈希鏈加密相應(yīng)的哈希鏈上的值,將數(shù)據(jù)包和哈希鏈上的值連接并獲得其哈希值,將所生成的各部分的值與數(shù)據(jù)包的生命周期連接,構(gòu)建出所述待傳輸?shù)臄?shù)據(jù)包。
[0019]本發(fā)明所述的無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法中,所述數(shù)據(jù)包驗(yàn)證階段包括以下步驟:
[0020]步驟Cl:當(dāng)數(shù)據(jù)包到達(dá)傳感器節(jié)點(diǎn)端后,首先驗(yàn)證其數(shù)據(jù)包的生命周期;
[0021]步驟C2:驗(yàn)證成功之后,用節(jié)點(diǎn)所存儲(chǔ)的確認(rèn)值解密數(shù)據(jù)包相關(guān)部分,然后驗(yàn)證其完整性;
[0022]步驟C3:傳感器節(jié)點(diǎn)對(duì)原始數(shù)據(jù)包進(jìn)行驗(yàn)證然后更新數(shù)據(jù)項(xiàng)。
[0023]本發(fā)明所述的無線傳感器網(wǎng)絡(luò)分組數(shù)據(jù)安全分發(fā)方法中,步驟Cl對(duì)所述數(shù)據(jù)包生命周期進(jìn)行驗(yàn)證包括如下步驟:
[0024]步驟ClI:當(dāng)節(jié)點(diǎn)收到數(shù)據(jù)包時(shí),其數(shù)據(jù)包的生命周期自動(dòng)減I,如果生命周期為O,則執(zhí)行步驟C12,否則執(zhí)行步驟C13;
[0025]步驟C12:對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的解析,進(jìn)行步驟C2的驗(yàn)證;
[0026]步驟C13:否則該數(shù)據(jù)包的生命周期自動(dòng)減I然后轉(zhuǎn)發(fā)。
[0027]本發(fā)明所述的無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法中,步驟C2對(duì)所述數(shù)據(jù)包進(jìn)行解密過程包括如下步驟:
[0028]步驟C21:當(dāng)所述傳感器節(jié)點(diǎn)收到數(shù)據(jù)包時(shí)對(duì)其進(jìn)行解密,使用節(jié)點(diǎn)端存儲(chǔ)的確認(rèn)值進(jìn)行解密;
[0029]步驟C22:驗(yàn)證解密出來的確認(rèn)值的哈希值是否和所存儲(chǔ)的確認(rèn)值相等,如果相等則進(jìn)行步驟C3的驗(yàn)證,否則轉(zhuǎn)向步驟C23;
[0030]步驟C23:直接將所收到的數(shù)據(jù)包丟棄。
[0031]本發(fā)明所述的無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法中,步驟C3對(duì)所述數(shù)據(jù)包進(jìn)行驗(yàn)證包括如下步驟:
[0032]步驟C31:當(dāng)?shù)玫秸_哈希鏈上的確認(rèn)值時(shí),利用其驗(yàn)證原始數(shù)據(jù)包是否正確,如果原始數(shù)據(jù)包和確認(rèn)值的連接的哈希值與解析的數(shù)據(jù)相等,則接收該數(shù)據(jù),并更新相應(yīng)的確認(rèn)值和數(shù)據(jù)項(xiàng),否則執(zhí)行步驟C32;
[0033]步驟C32:直接將該數(shù)據(jù)包丟棄。
[0034]在所述數(shù)據(jù)包驗(yàn)證階段中,根據(jù)所設(shè)定的三重驗(yàn)證機(jī)制不僅能夠確保節(jié)點(diǎn)妥協(xié)情況下降低對(duì)網(wǎng)絡(luò)的威脅,同時(shí)三重驗(yàn)證機(jī)制可以最大限度防止攻擊者偽造數(shù)據(jù)包對(duì)節(jié)點(diǎn)能量的消耗。
[0035]本發(fā)明的有益效果在于:
[0036]抵抗傳感器節(jié)點(diǎn)的妥協(xié):在WSN中只有部分節(jié)點(diǎn)妥協(xié)的情況下,仍然能夠保證網(wǎng)絡(luò)中大多數(shù)的節(jié)點(diǎn)不會(huì)受到影響。
[0037]數(shù)據(jù)完整性:通過對(duì)數(shù)據(jù)項(xiàng)進(jìn)行三層認(rèn)證,不僅能保證節(jié)點(diǎn)接收正確的數(shù)據(jù)包,而且可以高效地丟棄偽造的數(shù)據(jù)包。
[0038]高效管理網(wǎng)絡(luò)中的節(jié)點(diǎn):對(duì)WSN進(jìn)行分組管理,可以高效地管理網(wǎng)絡(luò)中的節(jié)點(diǎn),且能夠保證網(wǎng)絡(luò)中節(jié)點(diǎn)的能量均衡。
[0039]基站與傳感器節(jié)點(diǎn)間無時(shí)間同步:基站與傳感器節(jié)點(diǎn)間不要求時(shí)間同步。因此,無需對(duì)數(shù)據(jù)包到達(dá)間隔時(shí)間做任何假設(shè),當(dāng)傳感器節(jié)點(diǎn)接收到數(shù)據(jù)包時(shí)便可即刻對(duì)所述接收到的數(shù)據(jù)包進(jìn)行認(rèn)證。
【附圖說明】
[0040]圖1是本發(fā)明傳感器節(jié)點(diǎn)的分組圖。
[0041 ]圖2是本發(fā)明的一般流程圖。
【具體實(shí)施方式】
[0042]結(jié)合以下具體實(shí)施例和附圖,對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明。實(shí)施本發(fā)明的過程、條件、實(shí)驗(yàn)方法等,除以下專門提及的內(nèi)容之外,均為本領(lǐng)域的普遍知識(shí)和公知常識(shí),本發(fā)明沒有特別限制內(nèi)容。
[0043]本發(fā)明中有關(guān)的技術(shù)術(shù)語代表的含義如下:
[0044]Ki,j表示第i條哈希密鑰鏈的第j個(gè)數(shù)據(jù)項(xiàng),其中j >0;
[0045]P1表示第i個(gè)數(shù)據(jù)項(xiàng)的原始數(shù)據(jù);
[0046]Ek(X)表示用對(duì)稱密鑰K給數(shù)據(jù)項(xiàng)X進(jìn)行對(duì)稱加密;
[0047]Dk(X)表示用對(duì)稱密鑰K給數(shù)據(jù)項(xiàng)X進(jìn)行解密;
[0048]H(.)表示單向密鑰哈希函數(shù);
[0049]H(M)表示數(shù)據(jù)項(xiàng)M的哈希值;
[0050]Ki, j表示第i組哈希鏈上的第j個(gè)值;
[0051]TTL表示數(shù)據(jù)包的生命周期,即數(shù)據(jù)包能夠在網(wǎng)絡(luò)中傳遞的最大跳數(shù);
[0052]I I表示連接運(yùn)算。
[0053]本發(fā)明基于采用分組的策略和三重安全驗(yàn)證的基礎(chǔ)上的輕量級(jí)的安全防護(hù)方案,對(duì)無線傳感器網(wǎng)絡(luò)中小數(shù)據(jù)分發(fā)協(xié)議(DRIP)進(jìn)行安全擴(kuò)充,實(shí)現(xiàn)對(duì)傳感器網(wǎng)絡(luò)中節(jié)點(diǎn)高效管理的同時(shí)抗節(jié)點(diǎn)妥協(xié)情況下攻擊者對(duì)網(wǎng)絡(luò)的危害的安全小數(shù)據(jù)分發(fā)方法。
[0054]本發(fā)明無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法(GrDrip)分為系統(tǒng)初始化,數(shù)據(jù)包預(yù)處理和數(shù)據(jù)包驗(yàn)證三個(gè)階段,具體為:
[0055]系統(tǒng)初始化階段:基站依據(jù)節(jié)點(diǎn)到基站的跳數(shù)對(duì)節(jié)點(diǎn)進(jìn)行分組,即同一跳數(shù)范圍內(nèi)的節(jié)點(diǎn)分為一個(gè)組別;根據(jù)組別的個(gè)數(shù),基站為其生成相同數(shù)量的哈希鏈,并將每條哈希鏈的定向哈希值存儲(chǔ)在相應(yīng)的分組節(jié)點(diǎn)上;
[0056]數(shù)據(jù)包預(yù)處理階段:基站將待發(fā)送的數(shù)據(jù)包進(jìn)行預(yù)處理,使用哈希鏈上的定向哈希值對(duì)該條鏈上其前驅(qū)的值進(jìn)行加密處理;將要發(fā)送的數(shù)據(jù)包和哈希鏈的值進(jìn)行組合獲得其組合后的哈希值;將所生成的數(shù)據(jù)進(jìn)行組合并加入用于表示數(shù)據(jù)包生命周期的參數(shù),最后構(gòu)造出一個(gè)合法的數(shù)據(jù)包;
[0057]數(shù)據(jù)包驗(yàn)證階段:傳感器節(jié)點(diǎn)對(duì)所接收到的數(shù)據(jù)包進(jìn)行驗(yàn)證,根據(jù)節(jié)點(diǎn)的組別對(duì)數(shù)據(jù)包進(jìn)行解析后驗(yàn)證其合法性,如果數(shù)據(jù)包為其它組的數(shù)據(jù),則直接轉(zhuǎn)發(fā);如果為合法數(shù)據(jù)包則接受該數(shù)據(jù)包并更新該節(jié)點(diǎn)相應(yīng)的數(shù)據(jù)項(xiàng),否則直接刪除該數(shù)據(jù)包。
[0058]在系統(tǒng)初始化階段,需要生成后續(xù)數(shù)據(jù)分發(fā)過程中所需要的公共參數(shù)和變量等。首先,選擇恰當(dāng)?shù)墓:瘮?shù),在本發(fā)明中選擇SHA-1(可根據(jù)實(shí)際的安全需求進(jìn)行調(diào)整)。使用哈希函數(shù)對(duì)數(shù)據(jù)進(jìn)行處理,可以使得本發(fā)明的驗(yàn)證更加高效。在基站端選擇一組隨機(jī)數(shù),該隨機(jī)數(shù)的數(shù)目根據(jù)網(wǎng)絡(luò)中分組的數(shù)目來確定,即至少為每一組的數(shù)據(jù)分發(fā)選擇一個(gè)隨機(jī)數(shù)。然后根據(jù)哈希函數(shù)和組數(shù)生成哈希鏈。假設(shè)網(wǎng)絡(luò)中共有η組,則生成η條哈希鏈。這η條哈希鏈?zhǔn)抢秒S機(jī)數(shù)在哈希函數(shù)作用L次生成的。即Ku = H(K1+1,丄其中0<i<L,所產(chǎn)生的最后一個(gè)值作為確認(rèn)值(Commited Value)。注意在本發(fā)明中,將所生成的鏈會(huì)用于后續(xù)的加密操作,因而稱為秘鑰鏈。所生成的一組確認(rèn)值對(duì)應(yīng)相應(yīng)的不同組的節(jié)點(diǎn),將這些確認(rèn)值事先分別安裝在節(jié)點(diǎn)端。即第i個(gè)確認(rèn)值安裝在第i個(gè)組的節(jié)點(diǎn)中。
[0059]在完成了系統(tǒng)初始化階段后,進(jìn)入數(shù)據(jù)包預(yù)處理階段。當(dāng)節(jié)點(diǎn)部署完畢之后,如果基站有相關(guān)的參數(shù)需要進(jìn)行更新,則首先對(duì)該數(shù)據(jù)項(xiàng)進(jìn)行處理。在小數(shù)據(jù)分發(fā)過程中,所有需要更新的數(shù)據(jù)項(xiàng),可以根據(jù)其不同的key來進(jìn)行區(qū)分,因而可以將數(shù)據(jù)和key映射到一個(gè)數(shù)據(jù)項(xiàng)中。然后將這些數(shù)據(jù)項(xiàng)組合起來,成為一個(gè)消息數(shù)組。因而,在此本發(fā)明利用Ρο,Ρ:,P2,...,Ρη來表示需要發(fā)送的數(shù)據(jù)項(xiàng)。用第一條秘鑰鏈的確認(rèn)值加密(采用對(duì)稱加密方案AES)該確認(rèn)值的下一個(gè)值,得到的結(jié)果可用于更新加密秘鑰,即得到加密結(jié)果Εκο,KK1,O。然后將需要發(fā)送的數(shù)據(jù)PO與K1,i進(jìn)行組合,對(duì)其連接后獲得其哈希值H(Po| IK1,為了能夠加強(qiáng)數(shù)據(jù)發(fā)送過程的安全性,本發(fā)明中加入一個(gè)參數(shù)TTL用以保證數(shù)據(jù)在發(fā)送的過程中只針對(duì)具體跳數(shù)的節(jié)點(diǎn)。
[0060]所要發(fā)送的數(shù)據(jù)項(xiàng)的構(gòu)建如下:
[0061]Pi = PiI IQijI I SiJ I ITTLi
[0062]其中Qi,j = EKi,j(Ki,j+1)
[0063]Sij = H(Pi| |Ki;j+i)
[0064]根據(jù)以上方式構(gòu)建好了需要發(fā)送的數(shù)據(jù)包,節(jié)點(diǎn)從收到第一個(gè)數(shù)據(jù)包開始進(jìn)行驗(yàn)證。由于本發(fā)明采用是順序驗(yàn)證的方式,所基于的假設(shè)是數(shù)據(jù)包的按順抵達(dá),因而不考慮包的非序抵達(dá)的問題。
[0065]在數(shù)據(jù)包驗(yàn)證階段,節(jié)點(diǎn)對(duì)所接收到的數(shù)據(jù)包進(jìn)行驗(yàn)證。數(shù)據(jù)在到達(dá)節(jié)點(diǎn)端時(shí),可以進(jìn)行三個(gè)驗(yàn)證,一個(gè)是秘鑰端的驗(yàn)證,另一個(gè)是數(shù)據(jù)包的驗(yàn)證,還有一個(gè)是數(shù)據(jù)包的生命周期驗(yàn)證。在此本發(fā)明僅對(duì)第一組的節(jié)點(diǎn)進(jìn)行說明,其他的可以按類似的方案進(jìn)行。當(dāng)接收到數(shù)據(jù)包Po = PoI Qo1I SojI I TTLo時(shí),節(jié)點(diǎn)對(duì)其進(jìn)行相應(yīng)的解析,驗(yàn)證數(shù)據(jù)的可靠性。
[0066]第一步驗(yàn)證TTL: TTL對(duì)應(yīng)相關(guān)的跳數(shù),即節(jié)點(diǎn)的組號(hào)。而且,在TTL的值為O時(shí),表明該數(shù)據(jù)包的生命周期結(jié)束。因而在解析出TTL后,檢查其值看是否為O,如果不為O,則直接轉(zhuǎn)發(fā)。否則,進(jìn)行下一步。
[0067]第二步驗(yàn)證并更新秘鑰:用節(jié)點(diǎn)端存儲(chǔ)的確認(rèn)值Ko,i解密Qo,η并且驗(yàn)證H(D(Qo,O)是否和Ko,i相等。如果兩者相等,則將K1,i替換Ko,i并進(jìn)行第三步。否則,直接刪除該數(shù)據(jù)。
[0068]第三步驗(yàn)證并更新數(shù)據(jù)項(xiàng):當(dāng)?shù)玫搅薑1,i的值之后,利用So,i和K14的值來驗(yàn)證所得到的數(shù)據(jù)項(xiàng)Po的值。具體的實(shí)現(xiàn)算法描述如下。第i個(gè)數(shù)據(jù)項(xiàng)到達(dá)節(jié)點(diǎn)端時(shí),第j組的第k個(gè)節(jié)點(diǎn)SNj, k的驗(yàn)證。基站BS端數(shù)據(jù)包生成,節(jié)點(diǎn)端進(jìn)行驗(yàn)證。
[0069]在數(shù)據(jù)包驗(yàn)證階段中,根據(jù)所設(shè)定的三重驗(yàn)證機(jī)制不僅能夠確保節(jié)點(diǎn)妥協(xié)情況下降低對(duì)網(wǎng)絡(luò)的威脅,同時(shí)三重驗(yàn)證機(jī)制可以最大限度防止攻擊者偽造數(shù)據(jù)包對(duì)節(jié)點(diǎn)能量的消耗。
[0070]本發(fā)明的保護(hù)內(nèi)容不局限于以上實(shí)施例。在不背離發(fā)明構(gòu)思的精神和范圍下,本領(lǐng)域技術(shù)人員能夠想到的變化和優(yōu)點(diǎn)都被包括在本發(fā)明中,并且以所附的權(quán)利要求書為保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法,其特征在于,包括如下階段: 系統(tǒng)初始化階段:基站依據(jù)節(jié)點(diǎn)到基站的跳數(shù)對(duì)節(jié)點(diǎn)進(jìn)行分組;根據(jù)組別的數(shù)量,基站隨機(jī)選擇數(shù)量相同的隨機(jī)數(shù),為每個(gè)分組生成一條單向哈希鏈,并將每條哈希鏈的定向哈希值存儲(chǔ)在相應(yīng)的分組節(jié)點(diǎn)上; 數(shù)據(jù)包預(yù)處理階段:所述基站對(duì)待發(fā)送的數(shù)據(jù)包進(jìn)行預(yù)處理,使用哈希鏈上的定向哈希值對(duì)該條鏈上其前驅(qū)值進(jìn)行加密處理;將所述數(shù)據(jù)包和所述前驅(qū)值進(jìn)行組合獲得其組合后的哈希值,并加入用于表示數(shù)據(jù)包生命周期的參數(shù),構(gòu)造一個(gè)待傳輸?shù)臄?shù)據(jù)包; 數(shù)據(jù)包驗(yàn)證階段:傳感器節(jié)點(diǎn)對(duì)所述數(shù)據(jù)包進(jìn)行驗(yàn)證,根據(jù)節(jié)點(diǎn)的組別對(duì)所述數(shù)據(jù)包進(jìn)行解析后驗(yàn)證其合法性,若所述數(shù)據(jù)包為其它組的數(shù)據(jù),則直接轉(zhuǎn)發(fā)所述數(shù)據(jù)包;若所述數(shù)據(jù)包為合法數(shù)據(jù)包則接受該數(shù)據(jù)包并更新該節(jié)點(diǎn)相應(yīng)的數(shù)據(jù)項(xiàng);若所述數(shù)據(jù)包不具合法性,則直接刪除該數(shù)據(jù)包。2.根據(jù)權(quán)利要求1所述的無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法,其特征在于,所述初始化階段包括以下步驟: 步驟Al:所述基站根據(jù)節(jié)點(diǎn)到基站的跳數(shù)將節(jié)點(diǎn)進(jìn)行分組,將同一跳數(shù)范圍內(nèi)的節(jié)點(diǎn)組成一個(gè)組別,并為每組節(jié)點(diǎn)選取一個(gè)隨機(jī)數(shù)作為單向哈希鏈的種子數(shù)字; 步驟A2:所述基站利用所述種子數(shù)字為相應(yīng)的分組創(chuàng)建一條單向哈希鏈,所述種子數(shù)字作為哈希鏈的初始值,其它鏈上的值由其前一個(gè)哈希鏈上的值作為輸入運(yùn)用哈希函數(shù)運(yùn)算產(chǎn)生,在滿足所發(fā)送的數(shù)據(jù)項(xiàng)個(gè)數(shù)的情況下,獲得最后一個(gè)哈希值為定向哈希值,所述定向哈希值用來驗(yàn)證數(shù)據(jù)項(xiàng)的完整性; 步驟A3:依據(jù)節(jié)點(diǎn)的不同分組,將所述定向哈希值分配到相應(yīng)組別的傳感器節(jié)點(diǎn)上; 步驟A4:使用四元組表示每一個(gè)所需要發(fā)送的數(shù)據(jù)包。3.根據(jù)權(quán)利要求2所述的無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法,其特征在于,步驟A4中所述四元組分別為:原始數(shù)據(jù)包、加密區(qū)數(shù)據(jù)、哈希區(qū)數(shù)據(jù)和生命周期標(biāo)識(shí);其中,所述原始數(shù)據(jù)包表示所發(fā)送需要更新的數(shù)據(jù)包,該數(shù)據(jù)包包括數(shù)據(jù)項(xiàng)的關(guān)鍵字、版本號(hào)和數(shù)據(jù)三個(gè)部分;所述加密區(qū)數(shù)據(jù)表示使用哈希鏈上的值進(jìn)行加密后的數(shù)據(jù),所述哈希區(qū)數(shù)據(jù)表示原始數(shù)據(jù)和哈希鏈連接后的哈希值,所述生命周期標(biāo)識(shí)表示數(shù)據(jù)包在發(fā)送過程中所能傳遞的跳數(shù)。4.根據(jù)權(quán)利要求1所述的無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法,其特征在于,所述數(shù)據(jù)包預(yù)處理階段包括以下步驟: 步驟B1:所述基站根據(jù)網(wǎng)絡(luò)中的分組構(gòu)建出數(shù)據(jù)包生命周期數(shù)組,依據(jù)各個(gè)不同的數(shù)據(jù)包生命周期來構(gòu)建待傳輸?shù)臄?shù)據(jù)包。 步驟B2:所述基站采用廣播模式將構(gòu)建后的數(shù)據(jù)包發(fā)送到每一個(gè)傳感器節(jié)點(diǎn),所述傳感器節(jié)點(diǎn)首先依據(jù)數(shù)據(jù)包的生命周期來確定是否是其所屬組別的數(shù)據(jù)包,然后對(duì)其所收到的數(shù)據(jù)包進(jìn)行相關(guān)的驗(yàn)證。5.根據(jù)權(quán)利要求4所述的無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法,其特征在于,步驟BI中所述基站依據(jù)不同的數(shù)據(jù)包生命周期來構(gòu)建所要發(fā)送的數(shù)據(jù)包的步驟為:利用基站所產(chǎn)生的哈希鏈加密相應(yīng)的哈希鏈上的值,將數(shù)據(jù)包和哈希鏈上的值連接并獲得其哈希值,將所生成的各部分的值與數(shù)據(jù)包的生命周期連接,構(gòu)建出所述待傳輸?shù)臄?shù)據(jù)包。6.根據(jù)權(quán)利要求1所述的無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法,其特征在于,所述數(shù)據(jù)包驗(yàn)證階段包括以下步驟: 步驟Cl:當(dāng)數(shù)據(jù)包到達(dá)傳感器節(jié)點(diǎn)端后,首先驗(yàn)證其數(shù)據(jù)包的生命周期; 步驟C2:驗(yàn)證成功之后,用節(jié)點(diǎn)所存儲(chǔ)的確認(rèn)值解密數(shù)據(jù)包相關(guān)部分,然后驗(yàn)證其完整性; 步驟C3:傳感器節(jié)點(diǎn)對(duì)原始數(shù)據(jù)包進(jìn)行驗(yàn)證然后更新數(shù)據(jù)項(xiàng)。7.根據(jù)權(quán)利要求6所述的無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法,其特征在于,步驟Cl對(duì)所述數(shù)據(jù)包生命周期進(jìn)行驗(yàn)證包括如下步驟: 步驟Cl I:當(dāng)節(jié)點(diǎn)收到數(shù)據(jù)包時(shí),其數(shù)據(jù)包的生命周期自動(dòng)減I,如果生命周期為O,則執(zhí)行步驟Cl 2,否則執(zhí)行步驟Cl 3; 步驟C12:對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的解析,進(jìn)行步驟C2的驗(yàn)證; 步驟C13:否則該數(shù)據(jù)包的生命周期自動(dòng)減I然后轉(zhuǎn)發(fā)。8.根據(jù)權(quán)利要求6所述的無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法,其特征在于,步驟C2對(duì)所述數(shù)據(jù)包進(jìn)行解密過程包括如下步驟: 步驟C21:當(dāng)所述傳感器節(jié)點(diǎn)收到數(shù)據(jù)包時(shí)對(duì)其進(jìn)行解密,使用節(jié)點(diǎn)端存儲(chǔ)的確認(rèn)值進(jìn)行解密; 步驟C22:驗(yàn)證解密出來的確認(rèn)值的哈希值是否和所存儲(chǔ)的確認(rèn)值相等,如果相等則進(jìn)行步驟C3的驗(yàn)證,否則轉(zhuǎn)向步驟C23 ; 步驟C23:直接將所收到的數(shù)據(jù)包丟棄。9.根據(jù)權(quán)利要求6所述的無線傳感器網(wǎng)絡(luò)分組小數(shù)據(jù)安全分發(fā)方法,其特征在于,步驟C3對(duì)所述數(shù)據(jù)包進(jìn)行驗(yàn)證包括如下步驟: 步驟C31:當(dāng)?shù)玫秸_哈希鏈上的確認(rèn)值時(shí),利用其驗(yàn)證原始數(shù)據(jù)包是否正確,如果原始數(shù)據(jù)包和確認(rèn)值的連接的哈希值與解析的數(shù)據(jù)相等,則接收該數(shù)據(jù),并更新相應(yīng)的確認(rèn)值和數(shù)據(jù)項(xiàng),否則執(zhí)行步驟C32; 步驟C32:直接將該數(shù)據(jù)包丟棄。
【文檔編號(hào)】H04W84/18GK105848150SQ201610334582
【公開日】2016年8月10日
【申請(qǐng)日】2016年5月19日
【發(fā)明人】何道敬, 陳得鵬
【申請(qǐng)人】華東師范大學(xué)