一種基于數(shù)字水印的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)安全保護(hù)方法
【專利摘要】本發(fā)明公開了一種基于數(shù)字水印的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)安全保護(hù)方法,通過源節(jié)點(diǎn)處感知數(shù)據(jù)并轉(zhuǎn)為二進(jìn)制數(shù),再劃分處理塊;利用哈希函數(shù)得水印基數(shù),計(jì)算水印信息;利用哈希函數(shù)生成水印嵌入位置基數(shù),計(jì)算水印存儲位置;根據(jù)二進(jìn)制數(shù)、水印信息和水印存儲位置,利用水印嵌入算法得到嵌入水印二進(jìn)制數(shù);利用安全字符變換算法將嵌入水印二進(jìn)制數(shù)生成字符串并發(fā)送?;竟?jié)點(diǎn)收到數(shù)據(jù)后,通過逆向過程獲得原始二進(jìn)制數(shù)和嵌入的水印信息,再計(jì)算水印信息,若能與嵌入的水印依次等同,則可知原數(shù)據(jù)正確完整,否則將丟棄該包。本發(fā)明能根據(jù)原數(shù)據(jù)的長度嵌入適長的水印信息,可減少不必要的通信量,通過安全字符變換,提高了網(wǎng)絡(luò)的安全性。
【專利說明】-種基于數(shù)字水印的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)安全保護(hù)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及無線傳感器網(wǎng)絡(luò)數(shù)據(jù)安全領(lǐng)域,具體是一種基于數(shù)字水印的無線傳感 器網(wǎng)絡(luò)數(shù)據(jù)安全保護(hù)方法。
【背景技術(shù)】
[000引無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network, WSN)是由部署在監(jiān)測區(qū)域內(nèi)大量的 廉價(jià)微型傳感器節(jié)點(diǎn)組成,其目的是協(xié)作地感知、采集、處理和傳輸,網(wǎng)絡(luò)覆蓋區(qū)域內(nèi)采集 對象的監(jiān)測信息,并報(bào)告給控制中屯、。無線傳感器網(wǎng)絡(luò)主要W數(shù)據(jù)為中屯、,實(shí)時(shí)采集監(jiān)控?cái)?shù) 據(jù),用于對監(jiān)控區(qū)域的分析判斷。數(shù)據(jù)的準(zhǔn)確和安全與否將直接影響是否做出正確決策。如 何保證任務(wù)執(zhí)行的機(jī)密性、數(shù)據(jù)產(chǎn)生的可靠性、數(shù)據(jù)融合的高效性W及數(shù)據(jù)傳輸?shù)陌踩裕?是無線傳感器網(wǎng)絡(luò)安全問題需要全面考慮的內(nèi)容。
[0003] 針對無線傳感器網(wǎng)絡(luò)所具有的安全問題,現(xiàn)有的技術(shù)主要有W下幾種方案:
[0004] Hu L, Evans D. Secure aggregation for wireless networks [C] // Applications and the Internet Workshops, 2003. Proceedings. 2003Symposium on. IE邸,2003:384-391.提出有匯聚節(jié)點(diǎn)通過加密其子節(jié)點(diǎn)的匯聚數(shù)據(jù)產(chǎn)生消息驗(yàn)證碼的 方法,并且在數(shù)據(jù)包中還攜帶子節(jié)點(diǎn)生成的消息驗(yàn)證碼,能在一定程度上解決數(shù)據(jù)偽造和 數(shù)據(jù)完整性問題,但由于產(chǎn)生的MC數(shù)據(jù)量較大,增加了額外通信開銷。
[0005] Chan H, Perrig A, Song D. Random key predistribution schemes for sensor networks[C]//Security and Privacy, 2003. Proceedings. 2003Symposium on. IE邸,2003:197-213.針對大型的分布式傳感網(wǎng)絡(luò),提出了一種靈活的分組隨機(jī)密鑰分 布方案。該方案把所有的節(jié)點(diǎn)劃分為組單位,并使用單向哈希函數(shù)來產(chǎn)生組到組的成對密 鑰來增加密鑰的連通性。
[0006] Zhu S,Setia S,Jajodia S.LEAP+:Efficient security mechanisms for large-scale distributed sensor networks[J]. ACM Transactions on Sensor Networks (TOSN),2006, 2 (4) : 500-528.提出了能量有效的基于模式碼的安全數(shù)據(jù)匯聚協(xié)議。具有相 同模式碼的不同傳感器節(jié)點(diǎn)集合只需傳送其中之一的原始數(shù)據(jù)到簇頭。簇頭根據(jù)模式碼選 擇數(shù)據(jù),然后采用加密形式傳送到基站,在傳輸過程中任何中間節(jié)點(diǎn)均不需要解密。
[0007] Boyle P, Newe T. A Survey of Authentication Mechanisms:Authentication for Ad-Hoc Wireless Sensor Networks[C]//Sensors Applications Symposium, 2007. SAS'07. I邸E. IE邸,2007:1-6.等提出了在無線傳感器網(wǎng)絡(luò)中基于身份的多用戶廣播認(rèn)證 協(xié)議。他們認(rèn)為所有的基于公鑰算法都不能同時(shí)解決安全性、可測量性和穩(wěn)定性,但他們提 出的IMBAS算法可W實(shí)現(xiàn)該些性能。
[000引 Sun X,如 J, Wang B, et al. Digital Watermarking Method for Data Integrity Protection in Wireless Sensor Networks[J]. International Journal of Security &Its Applications, 2013, 7(4).提出了一種新的數(shù)據(jù)完整性保護(hù)戰(zhàn)略基于數(shù)字水印的技 術(shù)。源節(jié)點(diǎn)使用單向哈希函數(shù)收集到的數(shù)據(jù)來創(chuàng)建水印信息,然后與嵌入的目標(biāo)字節(jié)冗余 空間中的數(shù)據(jù)進(jìn)行關(guān)聯(lián),在基站提取印算法的目的是提取水印信息,相較于其他的數(shù)字水 印方法,該算法不增加額外的數(shù)據(jù)存儲空間,并保持?jǐn)?shù)據(jù)的準(zhǔn)確性,具有更多的應(yīng)用價(jià)值。
[0009] 上述方法可W有效地保證數(shù)據(jù)的安全,提高網(wǎng)絡(luò)的安全性,但在實(shí)際運(yùn)用中很難 做到低消耗和數(shù)字水印的靈活性。
【發(fā)明內(nèi)容】
[0010] 本發(fā)明的目的在于提供一種基于數(shù)字水印的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)安全保護(hù)方法, 能判斷出在任何情況下的數(shù)據(jù)是否丟失或竄改,從而保證完整數(shù)據(jù)的安全性;水印信息根 據(jù)數(shù)據(jù)包的長度進(jìn)行適長嵌入,能起到節(jié)約耗能的作用;水印嵌入位置由哈希函數(shù)產(chǎn)生,散 列性強(qiáng),提高了水印的安全。
[0011] 為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
[0012] 一種基于數(shù)字水印的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)安全保護(hù)方法,包括前提、定義和步 驟;
[001引所述前提如下:
[0014] 1)基站節(jié)點(diǎn)是安全的;
[001引。在未知區(qū)域有N個(gè)源節(jié)點(diǎn)怯。S2,...,SJ,每個(gè)源節(jié)點(diǎn)有唯一 ID號,節(jié)點(diǎn)間互 不相關(guān),節(jié)點(diǎn)能獨(dú)立確定感知數(shù)據(jù);
[0016] 如源節(jié)點(diǎn)怯1,S2, . . .,SJ都預(yù)存一個(gè)密鑰,分別為啦,馬,...,咕};
[0017] 4)基站節(jié)點(diǎn)預(yù)存所有節(jié)點(diǎn)密鑰,即化1,馬,...,咕};
[001引所述定義如下:
[0019] 1)采集的數(shù)據(jù)發(fā)送消息的格式:
[0020]
【權(quán)利要求】
1. 一種基于數(shù)字水印的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)安全保護(hù)方法,其特征在于,包括前提、定 義和步驟; 所述前提如下: 1) 基站節(jié)點(diǎn)是安全的; 2) 在未知區(qū)域有N個(gè)源節(jié)點(diǎn){Sui...,SN},每個(gè)源節(jié)點(diǎn)有唯一ID號,節(jié)點(diǎn)間互不相 關(guān),節(jié)點(diǎn)能獨(dú)立確定感知數(shù)據(jù); 3) 源節(jié)點(diǎn)以,S2,. . .,SJ都預(yù)存一個(gè)密鑰,分別為{&,K2,. ..,KJ; 4) 基站節(jié)點(diǎn)預(yù)存所有節(jié)點(diǎn)密鑰,即{I,K2,. . .,KN}; 所述定義如下: 1) 采集的數(shù)據(jù)發(fā)送消息的格式:
其中源地址用10位存儲;采集時(shí)間格式為月日時(shí)分秒,用26位存儲;采集數(shù)據(jù)根據(jù)實(shí) 際數(shù)據(jù)長度存儲; 2) 設(shè)定水印嵌入位置基數(shù)為
所述步驟如下: 一、 采集數(shù)據(jù)轉(zhuǎn)換步驟: 1) 每個(gè)節(jié)點(diǎn)向其周圍進(jìn)行數(shù)據(jù)采集,獲取采集時(shí)間和采集數(shù)據(jù); 2) 根據(jù)定義1)中消息格式將采集數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制數(shù)binary_Str,其中源地址占10 位,采集時(shí)間占26位,其中月占4位、日占5位、時(shí)占5位、分占6位及秒占6位,采集數(shù)據(jù) 占其字節(jié)長度*8位; 二、 水印嵌入步驟: 1) 根據(jù)步驟一中轉(zhuǎn)換成的二進(jìn)制數(shù)binary_str,利用哈希函數(shù)F(binary_str)可得32 字節(jié)的水印基數(shù)wm_base,由水印生成公式計(jì)算出32字節(jié)的水印信息wm_info,所述水印生 成公式如下:對于V/efl,32j,有wm^bimod2+, 0' 其中水印基數(shù)wm_base= (b!,b2, ? ? ? ,b32);水印信息wm_info= (wm!,wm2, ? ? ? ,wm32); 2) 根據(jù)步驟一中轉(zhuǎn)換成的二進(jìn)制數(shù)binary_str,不考慮其前10字節(jié),再對其每256字 節(jié)分塊,不滿256字節(jié)也算一個(gè)處理塊,最后得出處理塊數(shù)blocks; 3) 根據(jù)節(jié)點(diǎn)編號X獲取預(yù)存的密鑰Kx,對于處理塊號blocknum,有 e[0,/)/〇(士),滿足blocknum,利用哈希函數(shù)F(Kx+blocknum),可依次生成相應(yīng) blocknum塊的32字節(jié)水印嵌入位置基數(shù)wm_position_basebl(X;knum,進(jìn)而得到水印嵌入位置 基數(shù)wm_position_base; 4) 根據(jù)水印嵌入位置基數(shù)wm_p〇siti〇n_baSe,利用水印位置生成公式計(jì)算出水印存
三、字符安全變換步驟: 1) 根據(jù)步驟二中獲取嵌入水印的二進(jìn)制數(shù)wm_binary_str,對其每6個(gè)字符分割成塊, 若分割塊不足6字符,將對其補(bǔ)充字符0 ; 2) 獲得分割塊后,在每塊前面添加字符0,在每塊后面添加字符1 ; 3) 合并所有分割塊轉(zhuǎn)換為安全二進(jìn)制數(shù)safe_binary_str; 4) 先將安全二進(jìn)制數(shù)safe_binary_str每8個(gè)字符分割成塊,計(jì)算出分割塊數(shù) segment,然后依次以分割塊為單位進(jìn)行字符轉(zhuǎn)換,S卩每個(gè)分割塊轉(zhuǎn)換為一個(gè)字符,即對
四、水印及數(shù)據(jù)提取步驟: 1) 基站節(jié)點(diǎn)獲取每個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)的安全字符串Char_Str,將其轉(zhuǎn)換為接收二進(jìn)制數(shù) receive-binary_str; 2)對接收二進(jìn)制數(shù)receive_binary_str每8個(gè)字符分割成塊,并去處每塊首位和末位 字符; 3)合并所有分割塊轉(zhuǎn)換為嵌入水印接收二進(jìn)制數(shù)reveive_wm_binary_str; 4) 根據(jù)嵌入水印接收二進(jìn)制數(shù)reveive_wm_binary_str,解析前10位字符為無符號長 整型數(shù),即為源節(jié)點(diǎn)ID號reveive_node; 5) 根據(jù)嵌入水印接收二進(jìn)制數(shù)reveive_wm_binary_str,不考慮其前10字節(jié),再對其 每256字節(jié)分塊,不滿256字節(jié)也算一個(gè)處理塊,最后得出處理塊數(shù)reveive_blocks; 6)根據(jù)源節(jié)點(diǎn)ID號reveive_node獲取預(yù)存的密鑰KMveiTC_Mde;,對于 e[0,_/)/仇7f.〇 Mde;+reveive_blocknum),可依次生成相應(yīng)reveive_blocknum塊的32字節(jié)水印嵌入位置 基數(shù)reveive_wm_position_baseraveive_bl(X;kmm,進(jìn)而得到水印嵌入位置基數(shù)reveive_wm_ position_base; 7) 根據(jù)水印嵌入位置基數(shù)reveive_wm_position_base,同步驟二中第4)步,解析出水 存儲位置reveive_wm_position; 8) 根據(jù)接收二進(jìn)制數(shù)串receive_binary_str、水印存儲位置reveive_wm_position, 利用水印提取算法,可得去除水印的二進(jìn)制數(shù)remove_wm_binary_str和嵌入水印信息 extract_wm_info,其中水印嵌入算法如下: 輸入:接收二進(jìn)制數(shù)串receive_binary_str及水印存儲位置receive_wm_position
10)根據(jù)接收水印基數(shù)reveive_wm_base,同步驟二中第1)步,計(jì)算出接收水印信息 reveive_wm_info; 11)根據(jù)提取的水印信息extract_wm_info,對于 reveive_wm_info,若extract_wm_inforeveive_bl(K;kmm中的每位數(shù)據(jù)都能依次等同于reveive_wm_info的數(shù)據(jù),則接收數(shù)據(jù)是正確可靠的,否則將不可信; 12)若接收數(shù)據(jù)是正確可靠的,則對去除水印二進(jìn)制數(shù)remove_wm_binary_str依次每 八位進(jìn)行提取,并轉(zhuǎn)換成字符,即為原始數(shù)據(jù);否則丟棄此接收數(shù)據(jù)。
【文檔編號】H04L29/06GK104486304SQ201410727938
【公開日】2015年4月1日 申請日期:2014年12月4日 優(yōu)先權(quán)日:2014年12月4日
【發(fā)明者】易昌, 朱更明, 張丹丹, 王志強(qiáng) 申請人:湖南科技大學(xué)