王潮,胡廣躍,張煥國(guó)
(1. 上海大學(xué) 特種光纖與光接入網(wǎng)省部共建重點(diǎn)實(shí)驗(yàn)室, 上海 200072;2. 空天信息安全與可信計(jì)算教育部重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430072;3. 武漢大學(xué) 計(jì)算機(jī)學(xué)院,湖北 武漢 430072)
無(wú)線傳感器網(wǎng)絡(luò)(WSN, wireless sensor network)由大量節(jié)點(diǎn)以自組織的方式組成,網(wǎng)絡(luò)中沒(méi)有中心控制節(jié)點(diǎn),較遠(yuǎn)距離節(jié)點(diǎn)間以多跳的方式進(jìn)行通信。由于無(wú)線傳感器網(wǎng)絡(luò)無(wú)需預(yù)先部署基礎(chǔ)設(shè)施,在戰(zhàn)場(chǎng)環(huán)境、搶險(xiǎn)救災(zāi)、環(huán)境威脅探索等領(lǐng)域具有廣泛的應(yīng)用前景[1]。安全、高效是這些應(yīng)用對(duì)自組織網(wǎng)絡(luò)提出的最基本要求。
無(wú)線傳感器網(wǎng)絡(luò)中的安全威脅主要有以下6個(gè)方面[2]。
1) 多跳共享的無(wú)線信道。無(wú)線傳感器網(wǎng)絡(luò)中,以無(wú)線信號(hào)作為傳輸媒介,信息在無(wú)線信道傳輸,任何具有無(wú)線接收裝置的人都可以竊聽(tīng)。另外,無(wú)線傳感器網(wǎng)絡(luò)采用多跳通信,與傳統(tǒng)移動(dòng)通信的單跳通信相比,節(jié)點(diǎn)的身份不僅僅需要像基站這樣的集中控制設(shè)備進(jìn)行認(rèn)證,而且需要其周?chē)泥従庸?jié)點(diǎn)進(jìn)行認(rèn)證,傳統(tǒng)的安全措施無(wú)法在無(wú)線傳感器網(wǎng)絡(luò)中有效地應(yīng)用。
2) 節(jié)點(diǎn)的移動(dòng)性。無(wú)線傳感器網(wǎng)絡(luò)中,節(jié)點(diǎn)處于不同的區(qū)域(可能是安全區(qū)域,也可能是非安全區(qū)域)自由移動(dòng),無(wú)法保證網(wǎng)絡(luò)的物理安全,尤其在戰(zhàn)場(chǎng)環(huán)境中,節(jié)點(diǎn)在移動(dòng)的過(guò)程中隨時(shí)可能被敵方俘獲,造成節(jié)點(diǎn)內(nèi)的秘密信息可能泄露,造成嚴(yán)重的安全威脅;這些被俘獲的節(jié)點(diǎn)被敵軍利用,可能會(huì)重新加入網(wǎng)絡(luò),用來(lái)獲取更多的秘密信息。因而,在無(wú)線傳感器網(wǎng)絡(luò)中,防范內(nèi)部攻擊和外部入侵同樣重要。
3) 動(dòng)態(tài)的網(wǎng)絡(luò)。節(jié)點(diǎn)的移動(dòng)帶來(lái)網(wǎng)絡(luò)拓?fù)湟步?jīng)常處于變化之中,動(dòng)態(tài)變化的網(wǎng)絡(luò)拓?fù)淙菀自斐陕酚傻牟徽V袛啵瑤?lái)網(wǎng)絡(luò)上節(jié)點(diǎn)的重認(rèn)證請(qǐng)求,因而需要高效的認(rèn)證措施。
4) 無(wú)中心和無(wú)基礎(chǔ)設(shè)施。傳統(tǒng)網(wǎng)絡(luò)中,通過(guò)基礎(chǔ)設(shè)施的支持,采用PKI或CA認(rèn)證等方式,可以有效地運(yùn)行大多數(shù)安全服務(wù),而在無(wú)線傳感器網(wǎng)絡(luò)中,無(wú)法提供一個(gè)全網(wǎng)信任的權(quán)威機(jī)構(gòu)或認(rèn)證中心來(lái)完成安全認(rèn)證、密鑰管理等工作,而且,即使網(wǎng)絡(luò)中存在這樣的中心節(jié)點(diǎn),也無(wú)法保證能提供實(shí)時(shí)在線的服務(wù)。另外,單一的認(rèn)證中心容易成為系統(tǒng)的單一失效點(diǎn),一旦崩潰將導(dǎo)致整個(gè)網(wǎng)絡(luò)無(wú)法工作,并造成密鑰等敏感信息的泄露。
5) 信任機(jī)制。現(xiàn)有無(wú)線傳感器網(wǎng)絡(luò)的大多數(shù)協(xié)議,如路由、鄰居發(fā)現(xiàn)等都假定網(wǎng)絡(luò)中所有的節(jié)點(diǎn)是樂(lè)于提供服務(wù)的,通過(guò)節(jié)點(diǎn)之間的相互合作,從而共同完成信息的傳遞。然而,網(wǎng)絡(luò)中節(jié)點(diǎn)有可能由于諸多的原因而不提供轉(zhuǎn)發(fā)數(shù)據(jù)服務(wù),節(jié)點(diǎn)的自私行為會(huì)導(dǎo)致網(wǎng)絡(luò)性能下降,另外,由于沒(méi)有集中管理機(jī)構(gòu)對(duì)所有節(jié)點(diǎn)進(jìn)行管理,節(jié)點(diǎn)間很難建立一種相互信任的機(jī)制,采用完全信任的方式將導(dǎo)致泛洪攻擊和拒絕服務(wù)等攻擊,使得網(wǎng)絡(luò)性能急劇下降。
6) 多播安全。在無(wú)線傳感器網(wǎng)絡(luò)中,路由信息、簇算法、鄰居發(fā)現(xiàn)、機(jī)密通信等都需要多播通信支持,這些多播的數(shù)據(jù)多是機(jī)密或敏感的信息,如何保證多播數(shù)據(jù)分組的機(jī)密性、完整性和不可抵賴(lài)性,實(shí)現(xiàn)安全多播,是無(wú)線傳感器網(wǎng)絡(luò)多播必須解決的問(wèn)題。
無(wú)線傳感器網(wǎng)絡(luò)的特點(diǎn)決定無(wú)線傳感器網(wǎng)絡(luò)的安全威脅、安全體系和安全算法與傳統(tǒng)網(wǎng)絡(luò)大相徑庭,不能照搬傳統(tǒng)網(wǎng)絡(luò)的安全體系和安全算法。同時(shí),無(wú)線傳感器網(wǎng)絡(luò)有限的存儲(chǔ)空間和計(jì)算能力以及有限的帶寬和通信能量等自身特點(diǎn),也決定了傳統(tǒng)的基于密碼技術(shù)的計(jì)算量較大的數(shù)據(jù)加密及公鑰密碼體制等網(wǎng)絡(luò)安全技術(shù)不太適應(yīng)于無(wú)線傳感器網(wǎng)絡(luò)。本文將主要討論無(wú)線傳感器網(wǎng)絡(luò)相關(guān)的安全體系和安全算法設(shè)計(jì)。
目前,一些無(wú)線傳感器網(wǎng)絡(luò)安全方案存在密鑰管理效率低、缺乏組網(wǎng)安全和對(duì)節(jié)點(diǎn)的認(rèn)證(雙向認(rèn)證)、認(rèn)證效率低、密碼算法復(fù)雜度高未達(dá)到輕量化等問(wèn)題,不適合無(wú)線傳感器網(wǎng)絡(luò)資源有限等特點(diǎn)。
Ibriq和Mahgoub[3]提出了一種高效的層次密鑰模型,在該方案中,一個(gè)sink節(jié)點(diǎn)可以為連接的節(jié)點(diǎn)產(chǎn)生共享密鑰,然而,一些sink節(jié)點(diǎn)必須在表中保留每個(gè)節(jié)點(diǎn)的信息來(lái)支持節(jié)點(diǎn)的移動(dòng)。Fantacci等[4]提出了分布式節(jié)點(diǎn)認(rèn)證模型,該方案不需要基站作為認(rèn)證的中心。該方案中,每個(gè)節(jié)點(diǎn)共享部分認(rèn)證信息。當(dāng)一個(gè)節(jié)點(diǎn)請(qǐng)求被另一個(gè)節(jié)點(diǎn)認(rèn)證時(shí),節(jié)點(diǎn)2作為認(rèn)證器,其他節(jié)點(diǎn)(如節(jié)點(diǎn)5和節(jié)點(diǎn)6)作為分布式認(rèn)證服務(wù)器。該方案需要大量的節(jié)點(diǎn)參與,使得開(kāi)銷(xiāo)分布在每個(gè)節(jié)點(diǎn)上。因?yàn)楣?jié)點(diǎn)必須作為認(rèn)證過(guò)程的參與者或者一個(gè)認(rèn)證服務(wù)器,那么計(jì)算和通信的開(kāi)銷(xiāo)將會(huì)隨著認(rèn)證請(qǐng)求的頻繁而不斷增大。Han等[5,6]提出的方案,能夠提高認(rèn)證的效率,然而針對(duì)節(jié)點(diǎn)的初始化認(rèn)證過(guò)程中卻仍然離不開(kāi)第三方的參與,認(rèn)證效率低,通信開(kāi)銷(xiāo)也較大。
在無(wú)線傳感器網(wǎng)絡(luò)中,由sink節(jié)點(diǎn)組成了無(wú)線傳感器網(wǎng)絡(luò)的骨干網(wǎng)。在無(wú)線傳感器網(wǎng)絡(luò)環(huán)境中,為了防止惡意節(jié)點(diǎn)攻擊,在骨干網(wǎng)中,系統(tǒng)的主密鑰也不能單獨(dú)保存在某個(gè)節(jié)點(diǎn),以防止單點(diǎn)失效以及惡意節(jié)點(diǎn)攻擊問(wèn)題的發(fā)生。本文基于門(mén)限思想進(jìn)行骨干網(wǎng)的組網(wǎng),由多個(gè)簇頭節(jié)點(diǎn)掌握系統(tǒng)的主密鑰s的秘密份額,利用門(mén)限秘密共享機(jī)制建立安全可靠的骨干網(wǎng)絡(luò)。
當(dāng)普通節(jié)點(diǎn)接入骨干網(wǎng)進(jìn)行通信時(shí),本文基于ECC的CPK體制的思想[7],降低密鑰管理的存儲(chǔ)、通信和計(jì)算等開(kāi)銷(xiāo),并進(jìn)行雙向認(rèn)證[8],防止惡意節(jié)點(diǎn)的攻擊。采用輕量化的點(diǎn)乘運(yùn)算減少計(jì)算開(kāi)銷(xiāo)的ECC算法[9],優(yōu)化雙向認(rèn)證過(guò)程進(jìn)一步減少通信和計(jì)算的開(kāi)銷(xiāo)。
基于ECC的組合公鑰(CPK)密碼體制[7]認(rèn)證方式是基于標(biāo)識(shí)的身份認(rèn)證。它依據(jù)橢圓曲線離散對(duì)數(shù)的數(shù)學(xué)原理構(gòu)建公鑰矩陣與私鑰矩陣,采用散列函數(shù)將實(shí)體的標(biāo)識(shí)映射為矩陣的行與列坐標(biāo)序列,用以對(duì)矩陣元素進(jìn)行選取與組合,可以生成數(shù)量龐大的公私鑰對(duì),從而實(shí)現(xiàn)基于標(biāo)識(shí)的大規(guī)模密鑰生產(chǎn)與分發(fā)。實(shí)體節(jié)點(diǎn)只要知道對(duì)方節(jié)點(diǎn)的標(biāo)識(shí),就可以計(jì)算其公鑰,從而可以方便地實(shí)現(xiàn)認(rèn)證和保密功能。其中,標(biāo)識(shí)密鑰(identity key)由實(shí)體的標(biāo)識(shí)通過(guò)組合矩陣生成。采用基于ECC的CPK體制,有以下的優(yōu)勢(shì)。
1) 在無(wú)線傳感器網(wǎng)絡(luò)中,只有合法的節(jié)點(diǎn)具有組合私鑰,而且可以根據(jù)對(duì)方的標(biāo)識(shí) ID以及分割密鑰,計(jì)算出對(duì)方的組合公鑰CPK,所以在無(wú)需第三方的參與下,即可實(shí)現(xiàn)簡(jiǎn)單高效的認(rèn)證過(guò)程。
2) 基于ECC的CPK體制可以通過(guò)少量的公/私鑰矩陣,組合出規(guī)模龐大的公/私鑰對(duì),節(jié)點(diǎn)僅需要存儲(chǔ)很小的矩陣,就可實(shí)現(xiàn)網(wǎng)絡(luò)中大量節(jié)點(diǎn)的安全認(rèn)證。
采用基于ECC的CPK體制,密鑰的安全性依賴(lài)于橢圓曲線離散對(duì)數(shù)求解困難性,是指數(shù)級(jí)破譯難度。攻擊者想通過(guò)公鑰獲得私鑰,基于橢圓曲線離散對(duì)數(shù)問(wèn)題的困難是不可行的。
點(diǎn)乘運(yùn)算是CPK算法的基礎(chǔ)。ECC簽名算法(ECDSA)是數(shù)字簽名算法(DSA)的橢圓曲線版本,同時(shí)也是 CPK數(shù)字簽名算法的基礎(chǔ)。本文采用基于 Montgomery型曲線的橢圓曲線密碼算法[9],為解決 ECC點(diǎn)乘計(jì)算量大等問(wèn)題,采用如下輕量級(jí)的Montgomery型橢圓曲線的點(diǎn)乘運(yùn)算,方案采用二進(jìn)制移位 NAF編碼算法,在射影坐標(biāo)下避免大部分模逆算法,采用未計(jì)算y值的點(diǎn)加和倍點(diǎn)快速運(yùn)算。
點(diǎn)加公式如下:

計(jì)算點(diǎn)P=(x,y)的倍點(diǎn)dP在射影坐標(biāo)下的坐標(biāo)(X,Z),具體的算法如下:
2) 計(jì)算整數(shù):

3) 如果 0=i ,則跳到12),否則執(zhí)行4);
4) 1-←ii;
5) 如果 di=0,則執(zhí)行6),否則跳到9);
6) 計(jì)算整數(shù):

7) 計(jì)算整數(shù):

8) 跳到 3);
9) 計(jì)算整數(shù):


10) 計(jì)算整數(shù):

11) 跳到3);
12) 輸出整數(shù)X1,Z1,作為dP相應(yīng)的X,Z。
計(jì)算出上面算法的復(fù)雜度為(6|d|-3)M+(4|d|-2)S,這里的表示轉(zhuǎn)化成二進(jìn)制時(shí)的長(zhǎng)度lbd。
在網(wǎng)絡(luò)部署前,密碼管理中心(KMC)選定散列函數(shù)、橢圓曲線參數(shù)信息、公/私鑰矩陣等信息,由密碼管理中心進(jìn)行節(jié)點(diǎn)的標(biāo)識(shí)、密鑰參數(shù)和各個(gè)節(jié)點(diǎn)證書(shū)的產(chǎn)生和分發(fā),這樣每個(gè)節(jié)點(diǎn)都擁有了自己的標(biāo)識(shí)(ID)、分割密鑰(SPK)、組合私鑰(CSK)、組合公鑰矩陣PSK、證書(shū)以及橢圓曲線參數(shù)等信息。下面介紹本文具體方案的實(shí)現(xiàn)。
3.2.1 簇頭節(jié)點(diǎn)組網(wǎng)及其密鑰的建立
第1步 系統(tǒng)密鑰對(duì)的生成
為了防止單個(gè)簇頭節(jié)點(diǎn)失效和惡意簇頭節(jié)點(diǎn)攻擊等問(wèn)題,由該網(wǎng)絡(luò)中的簇頭節(jié)點(diǎn)共舉產(chǎn)生主密鑰。下面描述其實(shí)現(xiàn)過(guò)程:
對(duì)于身份標(biāo)識(shí)為IDi的節(jié)點(diǎn)i,隨機(jī)選擇si作為主密鑰s的秘密份額和系數(shù)ai,j(j∈1,2,…,k -1)以建立(n,k)門(mén)限多項(xiàng)式fi(x):

用節(jié)點(diǎn)i計(jì)算式(7),通過(guò)安全信道發(fā)送給相應(yīng)的節(jié)點(diǎn)j。此外為了使節(jié)點(diǎn)j驗(yàn)證si的有效性,節(jié)點(diǎn)i計(jì)算V0=siP及Vi=ai,jP( j∈1,2,…,k -1)傳送給節(jié)點(diǎn)j。
節(jié)點(diǎn)j收到fi(j)、V0和Vi后,驗(yàn)證fi(j)≡V0+,如果成立則驗(yàn)證通過(guò),消息為節(jié)點(diǎn)i所發(fā),否則斷定消息并非節(jié)點(diǎn)i發(fā)送。
節(jié)點(diǎn)j收到來(lái)自網(wǎng)絡(luò)中的n個(gè)節(jié)點(diǎn)所發(fā)送的門(mén)限多項(xiàng)式,計(jì)算fj(j),共舉可以得出網(wǎng)絡(luò)的主密鑰s:

計(jì)算Ppub=sP,由此得出系統(tǒng)的密鑰對(duì)(s, Ppub)。
第2步 通信組密鑰的建立
當(dāng)簇頭節(jié)點(diǎn)i進(jìn)行通信前,需要用通信的加密信息對(duì)保障信息傳輸?shù)陌踩浴T诖仡^節(jié)點(diǎn)共舉出主密鑰后,某個(gè)節(jié)點(diǎn)i需要申請(qǐng)會(huì)話密鑰的時(shí)候,可以通過(guò)向掌握系統(tǒng)秘密份額的簇頭節(jié)點(diǎn)查詢來(lái)獲取。
要實(shí)現(xiàn)這一過(guò)程,首先需要驗(yàn)證節(jié)點(diǎn)i的有效性,即它是否為網(wǎng)絡(luò)的合法節(jié)點(diǎn),以防止惡意節(jié)點(diǎn)的加入。具體的驗(yàn)證過(guò)程如下。
1) 申請(qǐng)會(huì)話密鑰的節(jié)點(diǎn)i與掌握秘密份額的節(jié)點(diǎn)j進(jìn)行通信,隨機(jī)選擇ri∈作為私鑰,并計(jì)算Qi=riP作為相應(yīng)的公鑰發(fā)送給節(jié)點(diǎn)j。
2) 節(jié)點(diǎn)j接收到節(jié)點(diǎn)i的請(qǐng)求后,需要驗(yàn)證節(jié)點(diǎn)i的身份。節(jié)點(diǎn)j是合法的節(jié)點(diǎn),它擁有加密密鑰對(duì)(SKj,PKj),它隨機(jī)選擇信息m,發(fā)送r=(m,PKj)給節(jié)點(diǎn)i,等待后者的簽名。
3) 節(jié)點(diǎn)i收到簽名要求后,隨機(jī)選擇ti∈,其對(duì)應(yīng)公鑰為ui=tiH2(IDi)。計(jì)算身份簽名,把(ui,σ)傳送給節(jié)點(diǎn)j。
4) 節(jié)點(diǎn)j收到節(jié)點(diǎn)i的簽名后,進(jìn)行簽名認(rèn)證。如果e(P,P)=e(H2(IDi)P +tiP,σ),則節(jié)點(diǎn)j接受節(jié)點(diǎn)i的簽名,把它認(rèn)為是合法節(jié)點(diǎn),不然則拒絕其簽名。
為了提高系統(tǒng)的安全性和健壯性,對(duì)于應(yīng)答節(jié)點(diǎn)j發(fā)送的秘密份額,請(qǐng)求節(jié)點(diǎn)i同樣驗(yàn)證其簽名,檢查其合法性,實(shí)現(xiàn)雙向認(rèn)證,其具體過(guò)程如下。
1) 節(jié)點(diǎn)j計(jì)算發(fā)送的密鑰份額:sjH2(seed),同時(shí)隨機(jī)選擇tj∈,其對(duì)應(yīng)公鑰為uj=tjH2(IDj)。計(jì)算身份簽名σ=[H2(IDj)+tj]-1P,把(uj,σ,sjH(seed))傳送給節(jié)點(diǎn)i。
2) 節(jié)點(diǎn)i收到簽名后進(jìn)行簽名認(rèn)證。如果e(P, P)=e(H2(IDj) P+tjP,σ),則節(jié)點(diǎn)i接受節(jié)點(diǎn)j的簽名,不然則拒絕其簽名。驗(yàn)證身份后,節(jié)點(diǎn)i即可得到加密密鑰的份額sjH2(seed)。
3) 同理,節(jié)點(diǎn)i與其他掌握秘密份額的節(jié)點(diǎn)通信,當(dāng)節(jié)點(diǎn)i獲得k個(gè)密鑰份額后,依據(jù)Lagrange插值原理獲得完整的通信組密鑰:

3.2.2 普通節(jié)點(diǎn)與其他節(jié)點(diǎn)的雙向認(rèn)證和密鑰協(xié)商
密鑰協(xié)商方案就是一種能夠讓通信的雙方或者多個(gè)參與方在一個(gè)公開(kāi)的、不安全的信道上通過(guò)密鑰協(xié)商聯(lián)合建立一次會(huì)話所用的臨時(shí)密鑰的密碼協(xié)議。
為了有效地抵御中間人攻擊及彌補(bǔ)這個(gè)顯著的缺陷,本文采用一種利用可信第三方頒發(fā)的證書(shū)以及產(chǎn)生隨機(jī)數(shù)增加臨時(shí)密鑰的算法來(lái)完成雙向認(rèn)證和密鑰協(xié)商[8]。
以A和B之間的認(rèn)證為例,假設(shè)在算法執(zhí)行前,已經(jīng)完成了合法節(jié)點(diǎn)證書(shū)的發(fā)放,具體參數(shù)設(shè)定為:Ad為A的私鑰,AQ為A的公鑰,Bd為B的私鑰,BQ為B的公鑰,Acert為A的證書(shū),Bcert為B的證書(shū)。步驟如下:
1) A隨機(jī)產(chǎn)生一個(gè)數(shù)r1,計(jì)算TEP1=(dA-r1)·G,發(fā)送給B:TEP1,QA;
2) B隨機(jī)產(chǎn)生一個(gè)數(shù)r2,計(jì)算TEP2=dB·TEP1,TEP3=r2·G,發(fā)送給A:TEP2,QB,TEP3;
3) A收到相應(yīng)的信息,A計(jì)算TEP4=dA·TEP3,TEP5=dB·TEP1+r1· QB,h1=h( TEP4, TEP5, cert A),發(fā)送給B:certA,h1;
4) B收到相應(yīng)的信息,首先驗(yàn)證certA,若不成功,返回錯(cuò)誤信息,要求重發(fā),否則計(jì)算TEP6=r2·QA,TEP7=dB·QA,TEP8=(dB-r2)·G ,比較h2=h( TEP6, TEP7, certA)和h1是否相等,若驗(yàn)證成功,繼續(xù)執(zhí)行。發(fā)送給A參數(shù)為:E(certB,TEP8),這里已經(jīng)產(chǎn)生會(huì)話密鑰dBdA·G,E表示用會(huì)話密鑰進(jìn)行的加密;
5) A收到相應(yīng)的信息,首先解密E(certB,TEP8),驗(yàn)證certB,同時(shí)計(jì)算TEP9=dA·TEP8+dA·TEP3是否與TEP10=dA·QB相等,若成功,則認(rèn)證成功,同時(shí)完成密鑰協(xié)商,會(huì)話密鑰為:dBdA·G。
本文采用基于ECC的CPK體制,其安全性是基于橢圓曲線離散對(duì)數(shù)問(wèn)題,是國(guó)際上公認(rèn)的安全實(shí)用的密碼體制。橢圓曲線的離散對(duì)數(shù)問(wèn)題(ECDLP)的計(jì)算困難性在計(jì)算復(fù)雜度上目前是完全指數(shù)級(jí),攻擊者想通過(guò)公鑰破譯私鑰是不可行的,可以滿足無(wú)線傳感器網(wǎng)絡(luò)的安全要求。本文提出的雙向認(rèn)證的方法還可以抵御中間人攻擊。
文中在節(jié)點(diǎn)的認(rèn)證以及重認(rèn)證過(guò)程中,反復(fù)用到了加解密運(yùn)算以及數(shù)字簽名算法,其中標(biāo)量乘運(yùn)算是主要的計(jì)算開(kāi)銷(xiāo),本文采用了基于Montgomery型輕量級(jí)的快速點(diǎn)乘運(yùn)算,計(jì)算復(fù)雜度為,與目前其他典型方案的計(jì)算量的對(duì)比如表1所示,相對(duì)于其他的算法具有更少的計(jì)算復(fù)雜度(表1中M表示乘法,S表示平方,I表示求逆,n表示dP點(diǎn)乘運(yùn)算中d的二進(jìn)制位數(shù))。

表1 計(jì)算復(fù)雜度對(duì)比
方案中雙向認(rèn)證(3.2.2節(jié))的計(jì)算復(fù)雜度分析如下:
第1步的計(jì)算復(fù)雜度為T(mén)M+;
第2步的計(jì)算復(fù)雜度為2TM;
第3步的計(jì)算復(fù)雜度為3TM+TA+Th;
第5步的計(jì)算復(fù)雜度為3TM+TA+。
所以,總的計(jì)算復(fù)雜度為11TM++2TA+。其中,TM表示計(jì)算ECC曲線點(diǎn)積所使用的時(shí)間,TA表示計(jì)算ECC曲線點(diǎn)加所使用的時(shí)間,表示計(jì)算模減所使用的時(shí)間,Th表示散列函數(shù)所使用的時(shí)間,表示證書(shū)驗(yàn)證所使用的時(shí)間。
通過(guò)算法計(jì)算復(fù)雜度的分析,計(jì)算耗時(shí)最多的點(diǎn)積運(yùn)算顯著減少,即在密鑰協(xié)商算法過(guò)程中,其點(diǎn)積運(yùn)算僅為11次運(yùn)算,而另一耗時(shí)比較多的證書(shū)認(rèn)證計(jì)算僅為2次。同時(shí)在此算法中,使用了散列函數(shù),大大減少了交換的信息量,進(jìn)一步提高了算法速度。
本文采用基于ECC的CPK體制思想:可以由規(guī)模很小的矩陣組合出很大數(shù)量的公/私鑰對(duì),以達(dá)到規(guī)模化的密鑰管理。簇頭節(jié)點(diǎn)需要預(yù)存橢圓曲線公鑰矩陣信息,無(wú)需預(yù)存大量密鑰信息,節(jié)約存儲(chǔ)空間。對(duì)于普通節(jié)點(diǎn)僅需要保存自己的公/私鑰對(duì),其他節(jié)點(diǎn)的公鑰可通過(guò)查詢公鑰矩陣,再對(duì)公鑰因子進(jìn)行點(diǎn)加運(yùn)算就可得到該用戶的公鑰。
無(wú)線傳感器網(wǎng)絡(luò)的特點(diǎn)決定了其安全威脅、安全體系和算法等與傳統(tǒng)電信網(wǎng)絡(luò)截然不同。
本文結(jié)合無(wú)線傳感器網(wǎng)絡(luò)的特點(diǎn),提出了無(wú)線傳感器網(wǎng)絡(luò)的輕量級(jí)安全體系,基于門(mén)限秘密共享機(jī)制的思想解決了無(wú)線傳感器網(wǎng)絡(luò)組網(wǎng)中遭遇惡意節(jié)點(diǎn)的問(wèn)題;采用雙向認(rèn)證的方式保證普通節(jié)點(diǎn)與簇頭節(jié)點(diǎn)間的通信安全,認(rèn)證過(guò)程簡(jiǎn)單高效,使用輕量化 ECC算法設(shè)計(jì),減少認(rèn)證過(guò)程中的計(jì)算開(kāi)銷(xiāo)和通信開(kāi)銷(xiāo);優(yōu)化基于ECC的CPK體制的思想,可實(shí)現(xiàn)高效的認(rèn)證過(guò)程,安全性依賴(lài)于橢圓離散對(duì)數(shù)分解的指數(shù)級(jí)破譯計(jì)算復(fù)雜度;使得密鑰管理適應(yīng)無(wú)線傳感器網(wǎng)絡(luò)的資源受限等要求。
[1] GERLA M. Ad Hoc Networks: Technologies and Protocols[M].Springer Science Press,2004.
[2] 王潮, 張振華, 應(yīng)仲平. WSN中基于身份的分散密鑰管理研究[A].第六屆中國(guó)測(cè)試學(xué)術(shù)會(huì)議論文集[C]. 2010.WANG C, ZHANG Z H, YING Z P. Research on distributed key management based on identity in wireless sensor networks[A].CTC2010[C]. 2010.
[3] IBRIQ J, MAHGOUB I. A hierarchical key establishment scheme for wireless sensor networks[C]. AINA’07[C]. Niagara Falls, Canada,2007. 210-219.
[4] FANTACCI R, CHITI F, MACCARI L. Fast distributed bi-directional authentication for wireless sensor networks [J]. Security and Communication Networks, 2008, 1(1): 17-24.
[5] HAN K, SHON T, KIM K. Efficient mobile sensor authentication in smart home and WPAN [J]. IEEE Transactions on Consumer Electronics, 2010, 56(2): 591-596.
[6] HAN K, KIM K, SHON T. Untraceable mobile node authentication in WSN[J]. Sensors, 2010, 10(5): 4410-4429.
[7] 南湘浩. 組合公鑰(CPK)體制標(biāo)準(zhǔn)(v5.0)[J]. 計(jì)算機(jī)安全,2010,(10):1-2.NAN X H. CPK-cryptosystem standard (v5.0)[J]. Computer security,2010,(10):1-2.
[8] 王潮, 朱美麗, 時(shí)向勇. 基于ECC的CBTC無(wú)線接入安全認(rèn)證架構(gòu)研究[J]. 哈爾濱工業(yè)大學(xué)學(xué)報(bào)(增刊), 2009, 41(1):193-197 WANG C, ZHU M L, SHI X Y. Research of structure of secure authentication based on ECC for wireless CBTC[J]. Harbin Journal of Harbin Institute of Technology, 2009, 41(1): 193-197.
[9] 王潮, 時(shí)向勇, 牛志華. 基于 Montgomery 曲線改進(jìn) ECDSA算法的研究[J]. 通信學(xué)報(bào), 2010,31(1):9-13.WANG C, SHI X Y, NIV Z H. The research of the promotion for ECDSA algorithm based on Montgomery-form ECC[J]. Journal on Communications, 2010, 31(1):9-13.
[10] OKEYA K, SAKURAI K. A scalar multiplication algorithm with recovery of y-coordinate on the Montgomery form and analysis of efficiency for elliptic curve cryptosystem[J]. IEICE Trans Fundamental,2002, 85(1): 84-93.
[11] FUTA Y, OHMORI M. Efficient scalar multiplication on Montgomery-form elliptic curves[J]. IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, 2004,87(8):2126- 2136.
[12] LIU D, DAI Y Q. The algorithm of computing kP+mQ+lR on a Montgomery-form elliptic curve[A]. Chinese National Conference of Computer 2003[C]. Beijing: Tsinghua University Press,2003.198-203.