張皓 李楊波 馬飛
摘 要: 針對(duì)無(wú)線軀體傳感器網(wǎng)絡(luò)(WBSN)數(shù)據(jù)傳輸?shù)陌踩?,提出一種融合Merkle哈希樹(shù)和網(wǎng)絡(luò)編碼的輕量級(jí)認(rèn)證方案。首先,將傳感器網(wǎng)絡(luò)構(gòu)建成Merkle哈希樹(shù)結(jié)構(gòu),只對(duì)根節(jié)點(diǎn)進(jìn)行數(shù)字簽名;然后,在哈希樹(shù)中選擇一個(gè)最優(yōu)層進(jìn)行網(wǎng)絡(luò)編碼,形成恢復(fù)數(shù)據(jù)包,并將數(shù)據(jù)包、簽名和恢復(fù)包發(fā)送給接收器;最后,接收器通過(guò)密鑰對(duì)根節(jié)點(diǎn)簽名進(jìn)行驗(yàn)證,若存在節(jié)點(diǎn)丟失,則根據(jù)恢復(fù)數(shù)據(jù)包重建哈希樹(shù),從而對(duì)數(shù)據(jù)進(jìn)行認(rèn)證。實(shí)驗(yàn)結(jié)果表明,該方案能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)的安全認(rèn)證,且需要較少的網(wǎng)絡(luò)開(kāi)銷(xiāo),滿足WBSN的性能需求。
關(guān)鍵詞: 無(wú)線軀體傳感器網(wǎng)絡(luò); 安全認(rèn)證; Merkle哈希樹(shù); 網(wǎng)絡(luò)編碼
中圖分類(lèi)號(hào): TN915.08?34; TP393 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2017)03?0065?06
Merkle Hash tree based security authentication scheme for WBSN
ZHANG Hao1, LI Yangbo1, MA Fei2
(1. Department of Computer Science and Technology, Henan Institute of Technology, Xinxiang 453000, China;
2. School of Computer Science, Wuhan University, Wuhan 430072, China)
Abstract: Aiming at the data transmission security of the wireless body sensor network (WBSN), a lightweight authentication scheme based on Merkle Hash tree and network coding is proposed. The sensor network was constructed as the Merkle Hash tree structure for digital signature only for the root node. An optimal layer in the Hash tree is chosen to conduct the network coding, form the recover data packet, and send the data packet, signature and recovery packet to the receiver. The root node signature was verified by the receiver via the key. If the node is missing, the Hash tree will be reconstructed according to the recover data packet to authenticate the data. The experimental results show that the scheme can realize the data security authentication, needs less network overhead, and meets the performance requirement of WBSN.
Keywords: wireless body sensor network; security authentication; Merkle Hash tree; network coding
0 引 言
移動(dòng)醫(yī)療是由可穿戴無(wú)線感應(yīng)節(jié)點(diǎn)組成,與手持設(shè)備配合使用,使病人在家就能夠?qū)崿F(xiàn)健康監(jiān)測(cè)和治療,能夠大幅削減醫(yī)療保健開(kāi)銷(xiāo)。其中,無(wú)線軀體傳感器網(wǎng)絡(luò)(Wireless Body Sensor Network,WBSN)起著關(guān)鍵作用,WBSN是基于無(wú)線傳感器網(wǎng)絡(luò)(WSN),由采集人體生理參數(shù)的穿戴式傳感器組成[1]。然而,可穿戴醫(yī)療監(jiān)測(cè)設(shè)備要融入到醫(yī)療保健系統(tǒng)的前提是這些設(shè)備產(chǎn)生的數(shù)據(jù)具有可信性[2]。
文獻(xiàn)[3]提出基于公鑰算法的實(shí)體認(rèn)證協(xié)議,由傳感器節(jié)點(diǎn)執(zhí)行RSA或ECC公鑰算法的加密和驗(yàn)證簽名,由能源充足的基站執(zhí)行解密和簽名完成認(rèn)證過(guò)程。然而應(yīng)用公鑰算法使得協(xié)議本身就讓節(jié)點(diǎn)能量消耗較大。文獻(xiàn)[4]通過(guò)哈希(Hash)函數(shù)運(yùn)算,并對(duì)數(shù)據(jù)內(nèi)容進(jìn)行數(shù)字簽名。然而,數(shù)字簽名計(jì)算量較大,通常要比對(duì)稱(chēng)密鑰操作高出兩到三個(gè)數(shù)量級(jí)。文獻(xiàn)[5]提出一種適用于無(wú)線傳感器網(wǎng)絡(luò)基于分簇的Merkle哈希樹(shù)實(shí)體認(rèn)證協(xié)議(CMAS),利用Merkle哈希樹(shù)的思想,結(jié)合網(wǎng)絡(luò)分簇技術(shù),避免采用公開(kāi)密鑰算法實(shí)施數(shù)字簽名計(jì)算量大的問(wèn)題。
本文提出一種用于無(wú)線軀體傳感器網(wǎng)絡(luò)的新型認(rèn)證方案,結(jié)合Merkle哈希樹(shù)和網(wǎng)絡(luò)編碼技術(shù),發(fā)送器根據(jù)數(shù)據(jù)項(xiàng)的哈希表生成哈希樹(shù),并只對(duì)根節(jié)點(diǎn)進(jìn)行數(shù)字簽名。接收器沿著認(rèn)證路徑通過(guò)反復(fù)Hash運(yùn)算認(rèn)證數(shù)據(jù),直到根節(jié)點(diǎn)抵達(dá)為止。由于數(shù)據(jù)包丟失,沿著認(rèn)證路徑的節(jié)點(diǎn)可能無(wú)法抵達(dá)接收器。為此,發(fā)送器應(yīng)用網(wǎng)絡(luò)編碼插入恢復(fù)數(shù)據(jù)包幫助接收器重建認(rèn)證路徑。穿戴式設(shè)備僅需要進(jìn)行不頻繁的數(shù)據(jù)簽名(一小時(shí)一次),減少了能量消耗,在丟包情況下仍可以認(rèn)證大部分?jǐn)?shù)據(jù)。該方案的主要目標(biāo)是認(rèn)證接收到的數(shù)據(jù)包,即使在數(shù)據(jù)集發(fā)送丟失較多數(shù)據(jù)包的情況下。
1 系統(tǒng)模型
為了使無(wú)線軀體傳感器網(wǎng)絡(luò)應(yīng)用到人體健康領(lǐng)域,考慮如圖1所示的遠(yuǎn)程健康服務(wù)系統(tǒng)基本架構(gòu),由不同的設(shè)備和多個(gè)接入點(diǎn)組成。在家的病人可以通過(guò)穿戴無(wú)線傳感器裝置來(lái)讀他的血壓、心電圖等。這些數(shù)據(jù)將周期性地傳送到基站(智能手機(jī)或PDA),并可以上傳到互聯(lián)網(wǎng)上的衛(wèi)生服務(wù)云端[6]。授權(quán)的醫(yī)生和護(hù)士可以直接訪問(wèn)數(shù)據(jù)庫(kù),對(duì)病人進(jìn)行診斷和監(jiān)測(cè)。
在這個(gè)過(guò)程中,數(shù)據(jù)的安全性尤為重要,其主要存在兩種威脅[7]:
(1) 外部攻擊,攻擊者可以通過(guò)竊聽(tīng)消息,然后偽裝成另一個(gè)實(shí)體,向網(wǎng)絡(luò)中注入虛假數(shù)據(jù);
(2) 內(nèi)部攻擊,合法的用戶試圖通過(guò)他們的手機(jī)終端篡改生理數(shù)據(jù),或者憑借他們的身份信息登錄到云端刪除或修改數(shù)據(jù)文檔。為此,本文提出一種基于Merkle哈希樹(shù)和網(wǎng)絡(luò)編碼的數(shù)據(jù)認(rèn)證方案,確保人體醫(yī)療數(shù)據(jù)的安全性。
1.1 哈希樹(shù)
哈希樹(shù)可以用來(lái)驗(yàn)證數(shù)據(jù)集,利用Hash計(jì)算數(shù)據(jù)項(xiàng)集上的消息摘要,通過(guò)連接操作構(gòu)建一個(gè)樹(shù)結(jié)構(gòu)來(lái)包含整個(gè)數(shù)據(jù)集[8]。一個(gè)高度為[h]的哈希樹(shù)如圖2所示,其中[H(i,j)]表示第[i]層第[j]個(gè)樹(shù)節(jié)點(diǎn),最底層為相應(yīng)數(shù)據(jù)項(xiàng)的Hash運(yùn)算,例如,Hash([Dj])中,[Dj]是第[j]個(gè)數(shù)據(jù)項(xiàng),Hash()為一個(gè)彈性沖突Hash函數(shù)。每個(gè)樹(shù)內(nèi)部節(jié)點(diǎn)通過(guò)Hash運(yùn)算連接它的子節(jié)點(diǎn),由于Hash函數(shù)的單向性,每個(gè)節(jié)點(diǎn)可以驗(yàn)證它的子節(jié)點(diǎn),包括所包含的數(shù)據(jù)項(xiàng)。
如果在樹(shù)的根節(jié)點(diǎn)設(shè)置一個(gè)數(shù)字簽名,則可以驗(yàn)證所有的數(shù)據(jù)項(xiàng)。假設(shè)數(shù)據(jù)項(xiàng)和簽名的根節(jié)點(diǎn)被可靠傳輸,接收者可以根據(jù)這些數(shù)據(jù)重建樹(shù),利用發(fā)送方的公鑰來(lái)驗(yàn)證簽名,同時(shí)驗(yàn)證所有數(shù)據(jù)項(xiàng)[9]。
1.2 網(wǎng)絡(luò)編碼
網(wǎng)絡(luò)編碼可以將節(jié)點(diǎn)發(fā)送數(shù)據(jù)包進(jìn)行線性組合來(lái)提高網(wǎng)絡(luò)吞吐量,使接收者可以快速分離信息和重建。
本文在數(shù)據(jù)包層應(yīng)用網(wǎng)絡(luò)編碼,每個(gè)編碼數(shù)據(jù)包(恢復(fù)包)[X]和一組[n]個(gè)系數(shù)[g1,g2,…,gn]相關(guān):[X=][i=1ngiMi,]其中[M1,M2,…,Mn]為原始數(shù)據(jù)包。為了成功恢復(fù)所有數(shù)據(jù),接收者需要所有原始數(shù)據(jù)包和恢復(fù)數(shù)據(jù)包。
2 提出的安全認(rèn)證方案
本文方案按照樹(shù)高度和恢復(fù)開(kāi)銷(xiāo)來(lái)配置傳感器裝置,隨著感應(yīng)數(shù)據(jù)項(xiàng)的增加,在數(shù)據(jù)項(xiàng)上構(gòu)建一個(gè)哈希樹(shù),并且使用傳感器的私鑰對(duì)根節(jié)點(diǎn)進(jìn)行數(shù)字簽名。同時(shí),發(fā)送器設(shè)備構(gòu)建恢復(fù)數(shù)據(jù)包,與恢復(fù)開(kāi)銷(xiāo)數(shù)目相同。然后,將這些數(shù)據(jù)項(xiàng)、恢復(fù)數(shù)據(jù)包、簽名根作為可用數(shù)據(jù)進(jìn)行傳輸,而樹(shù)的內(nèi)部哈希節(jié)點(diǎn)是從不傳輸?shù)摹?/p>
既然在樹(shù)中所有數(shù)據(jù)認(rèn)證都是基于接收到的簽名進(jìn)行,故假定接收器(基站或者存檔式數(shù)據(jù)庫(kù))能可靠地接收簽名根節(jié)點(diǎn),也就是使用了可靠的傳輸協(xié)議。然而,數(shù)據(jù)項(xiàng)與恢復(fù)數(shù)據(jù)包一樣,都是非可靠地傳輸,這就可能會(huì)導(dǎo)致丟包。由于數(shù)據(jù)項(xiàng)被接收,則樹(shù)可以通過(guò)接收器進(jìn)行重建。在高度[h]的樹(shù)上(層次由底部向頂部計(jì)數(shù)),[i]層有[N(i)=2h-i+1]個(gè)節(jié)點(diǎn),其中有[l]個(gè)被接收到。在此層上有[R(i)]個(gè)數(shù)據(jù)恢復(fù)包,其中[k]個(gè)被接收到。如果[l+k≥N(i)],則接收器能夠完全重建樹(shù)[i]層,并最終把在樹(shù)中[i]以上的所有層次(通過(guò)連續(xù)的拼接和哈希)都恢復(fù)[10]。因此,一個(gè)數(shù)據(jù)項(xiàng)的可認(rèn)證性不再需要接收全部的數(shù)據(jù)項(xiàng),而只需要在[i]層具備重建認(rèn)證路徑的能力。
本文方案中,穿戴式傳感設(shè)備的操作過(guò)程如圖3所示。
發(fā)送器設(shè)備操作的詳細(xì)流程如下:
(1) 引導(dǎo)程序:假定接收器能夠訪問(wèn)傳感器的公鑰。用于編碼的線性相關(guān)系數(shù)采用確定性算法[11]預(yù)先計(jì)算,兩個(gè)通信部分在引導(dǎo)階段進(jìn)行通信,其中允許的恢復(fù)成本為[R(i),]并在樹(shù)[i]層應(yīng)用網(wǎng)絡(luò)編碼。
(2) 數(shù)據(jù)取樣、樹(shù)的構(gòu)建和數(shù)字簽名:傳感器按照采樣頻率對(duì)數(shù)據(jù)取樣,每一個(gè)數(shù)據(jù)項(xiàng)可能包含若干拼接的樣本。哈希樹(shù)都是并行構(gòu)建的,數(shù)據(jù)項(xiàng)一次哈希產(chǎn)生相應(yīng)樹(shù)的葉子;然后進(jìn)行傳遞和刪除,以此節(jié)約內(nèi)存。隨著胞葉子成為可用葉子,則它們通過(guò)哈希產(chǎn)生父級(jí),之后被丟棄。任何時(shí)刻,緩存在傳感器設(shè)備內(nèi)存中的內(nèi)部樹(shù)節(jié)點(diǎn)都不會(huì)超過(guò)[h]個(gè),同時(shí),樹(shù)總會(huì)保持進(jìn)行部分構(gòu)建來(lái)降低內(nèi)存的消耗。對(duì)于具有4 096個(gè)數(shù)據(jù)葉子和8 191個(gè)內(nèi)部哈希節(jié)點(diǎn)高度為[h=12]的樹(shù),發(fā)送器根本不必要進(jìn)行緩沖,但是任何時(shí)候都要存儲(chǔ)1個(gè)數(shù)據(jù)葉子和12個(gè)哈希節(jié)點(diǎn)[12]。當(dāng)計(jì)算根節(jié)點(diǎn)時(shí),它就會(huì)利用可靠的協(xié)議進(jìn)行簽字并傳輸,其中,內(nèi)部哈希節(jié)點(diǎn)不會(huì)被傳輸。
(3) 網(wǎng)絡(luò)編碼:編碼是作為累積操作來(lái)執(zhí)行,傳感設(shè)備為允許恢復(fù)數(shù)據(jù)包[R(i)]維持一個(gè)運(yùn)行的緩沖器。當(dāng)樹(shù)節(jié)點(diǎn)被累積到恢復(fù)數(shù)據(jù)包中的一部分時(shí),它才能被舍棄掉。當(dāng)準(zhǔn)備好恢復(fù)的數(shù)據(jù)包后,將會(huì)被傳輸。需要注意的是,恢復(fù)數(shù)據(jù)包會(huì)在發(fā)送器的內(nèi)存中存儲(chǔ),所以數(shù)量不能太多。
接收器設(shè)備操作的詳細(xì)流程如下:
(1) 數(shù)據(jù)包接收、簽名認(rèn)證和樹(shù)的重構(gòu):接收的數(shù)據(jù)包會(huì)在數(shù)據(jù)集中進(jìn)行映射,發(fā)送器的公鑰用于認(rèn)證根節(jié)點(diǎn)上的簽名。從底部往上進(jìn)行樹(shù)的重建,樹(shù)中一些節(jié)點(diǎn)將會(huì)由于丟失的數(shù)據(jù)項(xiàng)而缺失。
(2) 網(wǎng)絡(luò)編碼:在[i]層,接收的恢復(fù)數(shù)據(jù)包用于嘗試恢復(fù)丟失節(jié)點(diǎn)。如果在這個(gè)層次上所有節(jié)點(diǎn)都是可用的,則可以重建更高層次的樹(shù)。否則,更高層次樹(shù)中也將會(huì)有丟失的節(jié)點(diǎn)。
(3) 數(shù)據(jù)認(rèn)證:具備到根節(jié)點(diǎn)都有完整認(rèn)證路徑的數(shù)據(jù)項(xiàng)可以通過(guò)認(rèn)證;否則,認(rèn)證失敗。
3 網(wǎng)絡(luò)編碼的最優(yōu)配置
當(dāng)恢復(fù)數(shù)據(jù)包[R(i)]在層[i]上發(fā)送,同時(shí)[R(j)]在樹(shù)的更高層次[j]([j>i])上發(fā)送時(shí),在接收器部分,如果在層[i]上丟失節(jié)點(diǎn)的數(shù)量比[R(i)]少,所有丟失節(jié)點(diǎn)都能夠恢復(fù)。這樣,更高層次就能夠完全重建,那么層[j]的恢復(fù)數(shù)據(jù)包就會(huì)無(wú)用浪費(fèi)。另外一方面,如果層[i]的丟失節(jié)點(diǎn)數(shù)目超過(guò)了[R(i),]則層次[i]的網(wǎng)絡(luò)編碼就不能恢復(fù)任何節(jié)點(diǎn),也將被丟棄。所以,不管哪種情況,其中的一個(gè)數(shù)據(jù)包總會(huì)被廢棄掉。為了節(jié)約資源,本文只考慮對(duì)樹(shù)的一個(gè)層次進(jìn)行網(wǎng)絡(luò)編碼,并提出一種框架來(lái)確定所要編碼的最優(yōu)層次[i],達(dá)到最大的認(rèn)證概率。
3.1 認(rèn)證概率
首先計(jì)算接收器能夠認(rèn)證接收數(shù)據(jù)項(xiàng)[D]的認(rèn)證概率[Pver。]本文中,設(shè)定數(shù)據(jù)包接收概率為[p](相反地,數(shù)據(jù)丟失的概率為[1-p]),網(wǎng)絡(luò)編碼成本(恢復(fù)數(shù)據(jù)包數(shù)目)為[R],編碼的樹(shù)層為[i]。設(shè)定的目標(biāo)是為了找到具有最大[Pver]的層[i]。模型做了如下簡(jiǎn)化假設(shè):
(1) 每個(gè)數(shù)據(jù)項(xiàng)和恢復(fù)信息都是作為單獨(dú)的包進(jìn)行傳遞的。
(2) 每個(gè)包都具有獨(dú)立同分布(IID)的成功接收概率[p]。
(3) 樹(shù)的根節(jié)點(diǎn)傳輸是可信賴(lài)的,不受制于丟包情況。
(4) 用于恢復(fù)的網(wǎng)絡(luò)編碼僅用在樹(shù)的單個(gè)層次上。
認(rèn)證概率[Pver]對(duì)任意的數(shù)據(jù)包[D]進(jìn)行計(jì)算,過(guò)程如圖4所示。
定義1:一個(gè)樹(shù)的節(jié)點(diǎn)[H(i,j)]當(dāng)且僅當(dāng)滿足下列條件之一,才可用作為接收器:
(1) 重建成功:對(duì)層次[i=1](一個(gè)葉子節(jié)點(diǎn)),子級(jí)數(shù)據(jù)項(xiàng)[Di]被成功接收,或?qū)i=2,3,…,h](一個(gè)內(nèi)部樹(shù)節(jié)點(diǎn),除了根節(jié)點(diǎn)之外),子樹(shù)中的數(shù)據(jù)項(xiàng)位于[H(i,j),]即從[D(2i,j)]到[D(2i,j-2i+1)]的數(shù)據(jù)項(xiàng)都被成功接收。
(2) 恢復(fù)成功:如果在層次[i]應(yīng)用了編碼,那么層次[i]節(jié)點(diǎn)重建的總數(shù)(從子級(jí)開(kāi)始)和接收到的恢復(fù)數(shù)據(jù)包數(shù)目之和至少等于層次[i]上的節(jié)點(diǎn)總數(shù)[N(i)=2h-i+1](確保層次[i]所有節(jié)點(diǎn)和其上層的節(jié)點(diǎn)都能成為接收器)。
定義2:高度為[h]的樹(shù)在指定層次[i]上具有數(shù)據(jù)恢復(fù)包[R(i)],則接收數(shù)據(jù)項(xiàng)[D]能被接收器認(rèn)證的概率是下列兩個(gè)事件交集的概率:
(1) 子樹(shù)層次[i]上所有其他數(shù)據(jù)項(xiàng)([D]是其中一部分)被接收。
(2) 所有在層次[i]的其他節(jié)點(diǎn)都可以成為接收器,通過(guò)在對(duì)應(yīng)子樹(shù)中接收的所有數(shù)據(jù)項(xiàng),或通過(guò)使用接收到的恢復(fù)包來(lái)恢復(fù)層次[i]上任意丟失的節(jié)點(diǎn)。
上面定義的兩個(gè)事件都是獨(dú)立的,使用這種方法,能夠計(jì)算出在樹(shù)中一個(gè)接收數(shù)據(jù)項(xiàng)[D]能得到認(rèn)證的概率[Pver]:
[Pver=P{D所在的子樹(shù)接收到的所有其他數(shù)據(jù)項(xiàng)}×P{層次i上所有其他節(jié)點(diǎn)都可用}]
其中[P{ }]表示括號(hào)內(nèi)事件發(fā)生的概率。由于[p]表示某個(gè)數(shù)據(jù)包成功接收的概率,而且在層次[i]上任何節(jié)點(diǎn)的子樹(shù)都有[2i-1]個(gè)葉子,因此可得:
[P{D所在的子樹(shù)接收到的所有其他數(shù)據(jù)項(xiàng)}=p2i-1≡ξ]
在樹(shù)的層次[i]上有[N(i)=2h-i+1]個(gè)節(jié)點(diǎn)。為了恢復(fù)[D],無(wú)論是從接收數(shù)據(jù)包直接重建還是通過(guò)恢復(fù),在這個(gè)層次上余下的[N(i)-1]個(gè)節(jié)點(diǎn)是否能成為接收器是至關(guān)重要的。根據(jù)接收數(shù)據(jù)包,層次[i]上任意單一節(jié)點(diǎn)的重建概率為[ξ]。然后,從[N(i)-1]子樹(shù)中準(zhǔn)確獲取層次[i]的[l]個(gè)節(jié)點(diǎn)概率為:
[PN(i)-1l=N(i)-1lξl(1-ξ)N(i)-l-1]
從總共傳輸[R(i)]中正確接收[k]個(gè)恢復(fù)數(shù)據(jù)包的概率為:
[PR(i)k=R(i)kpk(1-p)R(i)-k]
因此,重建節(jié)點(diǎn)數(shù)目[l]和接收到的恢復(fù)數(shù)據(jù)包[k]需滿足[l+k≥N(i)-1]。最終,成功接收數(shù)據(jù)包[D]并被認(rèn)證的概率為:
[Pver=ξk=0R(i)PR(i)kl=N(i)-1-kN(i)-1PN(i)-1lp]
3.2 確定編碼層次[i]
在不同層次[i]中,認(rèn)證概率[Pver]隨編碼數(shù)據(jù)包數(shù)量的變化曲線如圖5所示。對(duì)于[i]=1層,僅僅需要6個(gè)恢復(fù)數(shù)據(jù)包(開(kāi)銷(xiāo)少于10%),就能使認(rèn)證概率從無(wú)編碼使用時(shí)的30%提升到100%。
本文中,系統(tǒng)主要應(yīng)用于人體生理信息的傳輸(血壓、心電圖監(jiān)測(cè)),所以每秒傳輸一次數(shù)據(jù)包較為合理。若每小時(shí)計(jì)算一次簽名,則高度為[h=12]的樹(shù)就可以滿足應(yīng)用,共生成4 096個(gè)葉子。此時(shí),恢復(fù)數(shù)據(jù)包從0~128時(shí),相應(yīng)的認(rèn)證概率如圖6所示。初始階段為網(wǎng)絡(luò)編碼未使用時(shí),認(rèn)證概率接近于零,因?yàn)槿魏螖?shù)據(jù)項(xiàng)的認(rèn)證都依賴(lài)于樹(shù)中所有4 096個(gè)數(shù)據(jù)項(xiàng)的接收。隨著恢復(fù)數(shù)據(jù)包的增加,認(rèn)證率也急劇增加。在大約110個(gè)恢復(fù)數(shù)據(jù)包時(shí)(對(duì)應(yīng)大概3%的成本),認(rèn)證概率可達(dá)到將近100%。
另外,圖6中標(biāo)注的適合編碼的最優(yōu)配置層次曲線由不同的分段曲線構(gòu)成,因?yàn)樵诓煌幕謴?fù)數(shù)據(jù)包下,最大認(rèn)證概率對(duì)應(yīng)的層次[i]不同,所以當(dāng)需要確定具體編碼層次時(shí),需要根據(jù)系統(tǒng)允許的最大恢復(fù)數(shù)據(jù)包開(kāi)銷(xiāo)來(lái)確定[i]。
4 實(shí)驗(yàn)結(jié)果及分析
上述認(rèn)證框架中,對(duì)丟失數(shù)據(jù)點(diǎn)操作進(jìn)行了簡(jiǎn)化,假設(shè)每一個(gè)數(shù)據(jù)包都與概率[p]獨(dú)立同分布。然而,在實(shí)際中,無(wú)線傳感器網(wǎng)絡(luò)數(shù)據(jù)丟包具有突發(fā)性,所以本文使用Markov模型模擬突發(fā)丟包情況[13]。實(shí)驗(yàn)中,比較了基于Merkle哈希樹(shù)和本文融合Merkle哈希樹(shù)和網(wǎng)絡(luò)編碼的兩種認(rèn)證方案。
4.1 丟包模型
本文利用Markov模型模擬丟包情況,其中有兩種狀態(tài),接收到的數(shù)據(jù)包(0)和丟失的數(shù)據(jù)包(1),[pg]和[qg]分別表示從接收到丟失和丟失到接收兩種狀態(tài)下的傳遞概率[14],如圖7所示。根據(jù)穿戴式設(shè)備收集到的實(shí)驗(yàn)數(shù)據(jù)推導(dǎo)出這些傳遞概率值。
4.2 實(shí)驗(yàn)結(jié)果
進(jìn)行真實(shí)的穿戴式網(wǎng)絡(luò)實(shí)驗(yàn):一個(gè)男性實(shí)驗(yàn)對(duì)象穿戴兩個(gè)無(wú)線通信設(shè)備,一個(gè)安放在右手臂,另外一個(gè)安放在左邊腰部,在室內(nèi)辦公環(huán)境下工作[15]。以每秒一個(gè)數(shù)據(jù)包的速度對(duì)無(wú)線信道取樣。設(shè)置三種場(chǎng)景:
(1) 低活躍度,實(shí)驗(yàn)對(duì)象被安排在小隔間里。
(2) 中活躍度,實(shí)驗(yàn)對(duì)象偶爾會(huì)從椅子上起來(lái),在房間周?chē)邉?dòng)。
(3) 高活躍度,實(shí)驗(yàn)對(duì)象會(huì)參與到周期性的短期戶外活動(dòng)。表1給出了每種場(chǎng)景下的丟包率([1-p])、平均脈沖長(zhǎng)度、實(shí)驗(yàn)持續(xù)時(shí)間和對(duì)應(yīng)的狀態(tài)轉(zhuǎn)換概率,其中[pg]為從接收狀態(tài)到丟失狀態(tài)的信道轉(zhuǎn)換概率,[qg]為從丟失狀態(tài)向接收狀態(tài)轉(zhuǎn)變的信道轉(zhuǎn)換概率。
從表1可以看出,丟包率隨著活躍度的增加而增加,這是由于室外活動(dòng)導(dǎo)致的,戶外環(huán)境會(huì)降低多重路徑。
把實(shí)驗(yàn)衍生出來(lái)的參量[pg]和[qg]輸入到Markov模型中模擬在三種活躍度下且高度[h=12]的樹(shù)中的丟包情況,并測(cè)量了每個(gè)樹(shù)層[i]的認(rèn)證概率[Pver。]不同活躍度下基本Merkle哈希樹(shù)認(rèn)證方案和本文認(rèn)證方案的接收數(shù)據(jù)認(rèn)證概率曲線,如圖8所示。
圖8 基于Markov哈希樹(shù)和本文認(rèn)證方案的性能比較
可以看出,本文方案比Markov哈希樹(shù)方案有更好的性能。對(duì)于高活躍度情景更為明顯,例如,當(dāng)恢復(fù)數(shù)據(jù)包開(kāi)銷(xiāo)為128個(gè)時(shí),本文方案對(duì)接收數(shù)據(jù)項(xiàng)的認(rèn)證概率能超過(guò)95%,表明本文方案需要較少的恢復(fù)數(shù)據(jù)包就能夠重建數(shù)據(jù)。例如,對(duì)于圖2中的哈希樹(shù),考慮數(shù)據(jù)集中丟失兩個(gè)數(shù)據(jù)項(xiàng)的情形。如果丟包近似平均分布,此時(shí)[D1]和[D4]丟失(丟包都是最開(kāi)始的半個(gè)數(shù)據(jù)集),則在層次1([H(1,1)]和[H(1,4)])和層次2([H(2,1)]和[H(2,2)])以及更高層次的樹(shù)將會(huì)有丟失的節(jié)點(diǎn),在此情形下層次3只有[H(3,1)]丟失。此時(shí)如果一個(gè)編碼數(shù)據(jù)包在層次3被接收,則第二個(gè)一半數(shù)據(jù)集可以被認(rèn)證,例如[D5~D8。]然而,如果兩個(gè)丟包是在一次脈沖中發(fā)生的,如[D1]和[D2,]對(duì)于樹(shù)的完整性影響將更小,且只需要更少的恢復(fù)開(kāi)銷(xiāo)來(lái)彌補(bǔ)數(shù)據(jù)。因?yàn)椋藭r(shí)在層次1有兩個(gè)節(jié)點(diǎn)丟失([H(1,1)]和[H(1,2)]),層次2([H(2,1)])和層次3([H(3,1)])有一個(gè)節(jié)點(diǎn)丟失。在這種情形下,如果接收到一個(gè)層次2的單一恢復(fù)包編碼,則[D3~D8]的6個(gè)數(shù)據(jù)項(xiàng)就能得到認(rèn)證。
5 結(jié) 語(yǔ)
本文提出一種應(yīng)用于人體傳感器網(wǎng)絡(luò)數(shù)據(jù)通信的安全認(rèn)證方案,采用Merkle哈希樹(shù)來(lái)分?jǐn)倲?shù)字簽名的成本,利用網(wǎng)絡(luò)編碼使認(rèn)證方案對(duì)丟包具有魯棒性。同時(shí)選擇最優(yōu)層進(jìn)行單層網(wǎng)絡(luò)編碼來(lái)降低丟包恢復(fù)開(kāi)銷(xiāo),并最大化數(shù)據(jù)認(rèn)證的概率。將基本Merkle哈希樹(shù)方案和本文方案進(jìn)行比較,結(jié)果表明,本文方案在典型的室內(nèi)環(huán)境下99%的數(shù)據(jù)都能被認(rèn)證,且只需要較少的恢復(fù)開(kāi)銷(xiāo),能夠確保醫(yī)療數(shù)據(jù)的安全性。在未來(lái)的工作中將進(jìn)一步改進(jìn)方案,提升安全性能,使其能夠抵御網(wǎng)絡(luò)攻擊行為。
參考文獻(xiàn)
[1] 肖玲,李仁發(fā),羅娟.體域網(wǎng)中一種基于壓縮感知的人體動(dòng)作識(shí)別方法[J].電子與信息學(xué)報(bào),2013(1):119?125.
[2] 楊穎,劉軍.無(wú)線軀體傳感器網(wǎng)絡(luò)中低能耗的時(shí)間同步算法[J].電子技術(shù),2011,38(6):23?24.
[3] 楊麗娜,李士寧,張羽,等.傳感器網(wǎng)絡(luò)中一種輕量級(jí)的安全重編程方法[J].華中科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,42(10):74?78.
[4] NOROOZI E, DAUD B M D, SABOUHI A. Secure digital signature schemes based on Hash functions [J]. International journal of innovative technology & exploring engineering, 2013, 2(4): 543?549.
[5] 王麗娜,施德軍,覃伯平,等.基于Merkle散列樹(shù)的無(wú)線傳感器網(wǎng)絡(luò)實(shí)體認(rèn)證協(xié)議[J].傳感技術(shù)學(xué)報(bào),2007,20(6):1338?1343.
[6] ULLAH M G, CHOWDHARY B S, RAJPUT A Q, et al. Wireless body area sensor network authentication using vo?ronoi diagram of retinal vascular pattern [J]. International journal of wireless personal communications, 2014, 76(3): 579?589.
[7] GIL Y, WU W, LEE J. A synchronous multi?body sensor platform in a wireless body sensor network: design and implementation [J]. Sensors, 2012, 12(8): 10381?10394.
[8] 劉通,王鳳英.基于Merkle樹(shù)的起源完整性解決方案[J].山東理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,26(3):68?71.
[9] LI C L, CHEN Y. Merkle Hash tree based deduplication in cloud storage [J]. Applied mechanics & materials, 2014, 556: 6223?6227.
[10] ZHU Yi, LI Qingbao, ZHONG Chunli, et al. Non?balanced binary Hash?tree model for fine?grained integrity measurement [J]. Journal of Chinese Computer Systems, 2014, 35: 1604?1609.
[11] SANDERS P, EGNER S, TOLHUIZEN L. Polynomial time algorithms for network information flow [C]// Proceedings of 2003 the 15th Annual ACM Symposium on Parallel Algorithms and Architectures. San Diego: ACM, 2003: 286?294.
[12] 黃錦旺,胡志輝,馮久超.一種無(wú)線傳感器網(wǎng)絡(luò)的混沌Hash算法[J].計(jì)算機(jī)科學(xué),2013,40(6):49?51.
[13] 肖喜,田新廣,翟起濱,等.基于shell命令和Markov鏈模型的用戶偽裝攻擊檢測(cè)[J].通信學(xué)報(bào),2011,32(3):98?105.
[14] LIN W, BO L I, HAN L H. State determination algorithm of WSN based on twice grey Markov forecasting [J]. Compu?ter engineering & science, 2013, 35(8): 41?45.
[15] 郭海鵬,文大化.基于WBSW技術(shù)的人體生命體征監(jiān)控應(yīng)用研究[J].長(zhǎng)春理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2013,36(1):50?53.