張 軍,嚴(yán)麗娜,蘭宇浩
(1.陜西慧緣網(wǎng)絡(luò)科技有限公司,陜西 西安 710070;2.國(guó)防科技大學(xué) 信息通信學(xué)院,陜西 西安 710106;3.陜西慧緣網(wǎng)絡(luò)科技有限公司,陜西 西安 710070)
當(dāng)今世界,隨著物聯(lián)網(wǎng)、移動(dòng)互聯(lián)等新技術(shù)在智能家居、智能交通、城市管理以及工業(yè)監(jiān)控等領(lǐng)域的發(fā)展,ZigBee 技術(shù)的應(yīng)用越來(lái)越廣泛,相關(guān)規(guī)范也不斷在完善[1-2]。但是,由于無(wú)線(xiàn)信道的開(kāi)放性,作為物聯(lián)網(wǎng)感知層ZigBee 網(wǎng)絡(luò)很容易遭受外來(lái)攻擊。盡管(ZigBee 2007/PRO)新規(guī)范中采取了隨機(jī)尋址等安全措施,但這些安全措施要滿(mǎn)足用戶(hù)對(duì)敏感領(lǐng)域的要求,特別是對(duì)ZigBee 網(wǎng)絡(luò)在保密傳輸節(jié)點(diǎn)、身份認(rèn)證等方面還不能讓用戶(hù)滿(mǎn)意。因此,如何保證其安全性已成為亟待解決的問(wèn)題[3-4]。
為了實(shí)現(xiàn)ZigBee 網(wǎng)絡(luò)既保密又認(rèn)證的安全通信,通常采取傳統(tǒng)的先簽名后加密方式??紤]計(jì)算時(shí)間和消息擴(kuò)展率兩方面因素,其花費(fèi)代價(jià)是簽名與加密所需代價(jià)之和。在傳統(tǒng)公鑰密碼體制中,用戶(hù)公鑰是通過(guò)可信認(rèn)證中心(Certificate Authority,CA)頒發(fā)證書(shū)并和用戶(hù)身份進(jìn)行綁定,會(huì)使大量存儲(chǔ)空間和計(jì)算時(shí)間浪費(fèi)在證書(shū)管理上。為了簡(jiǎn)化證書(shū)管理,經(jīng)常采用基于身份的公鑰密碼體制,用戶(hù)的身份(如身份證號(hào)、學(xué)號(hào)、郵箱)就是用戶(hù)的公鑰,同時(shí)由可信密鑰生成中心(Key Generation Center,KGC)產(chǎn)生用戶(hù)的私鑰。因此,基于身份的密碼體制又帶來(lái)了密鑰托管安全的新問(wèn)題[5]。因此,本文探究提出了結(jié)合簽名和加密兩種密碼技術(shù)的簽密技術(shù)。簽密技術(shù)可以用比傳統(tǒng)先簽名后加密的方式更低的計(jì)算代價(jià)和通信開(kāi)銷(xiāo)完成簽名和加密,具有較小的計(jì)算復(fù)雜度、較小的消息擴(kuò)展率以及實(shí)現(xiàn)方便簡(jiǎn)單等優(yōu)勢(shì),更適合于ZigBee 受限的環(huán)境。
1.1.1 系統(tǒng)參數(shù)建立算法(setup)
輸入安全參數(shù)k,產(chǎn)生2 個(gè)大素?cái)?shù)p、q,且q|p-1。g為循環(huán)群中一個(gè)階為q的生成元。若n{0,1}為明文消息比特長(zhǎng)度,選擇安全散列函數(shù)H1∶n{0,1}*×,PKi=(wi,ui),H2∶n{0,1}→H3∶→n。此時(shí),密鑰生成中心(Key Generation Center,KGC)可隨機(jī)選擇主密鑰x∈,y∈gx對(duì)主密鑰x保密,而對(duì)系統(tǒng)參數(shù)(p,q,g,y,H1,H2,H3)進(jìn)行公開(kāi)。
1.1.2 部分密鑰生成算法
給定用戶(hù)身份IDi,KGC 隨機(jī)選擇Si∈,計(jì)算,ti=Si+xH1(IDi,Wi),其中ti作為用戶(hù)的部分私鑰PSi,Wi作為用戶(hù)的部分公鑰IDi。
1.1.3 私鑰生成算法
給定用戶(hù)身份IDi和部分私鑰PSi,用戶(hù)隨機(jī)選取zi∈作為秘密值,生成用戶(hù)私鑰SKi=(ti,zi)。
1.1.4 公鑰生成
給定用戶(hù)的身份IDi和部分公鑰PPi、zi,用戶(hù)計(jì)算,生成用戶(hù)公鑰PKi=(wi,ui)。
1.1.5 簽密算法
當(dāng)用戶(hù)A 要發(fā)送消息給用戶(hù)B 時(shí),A 進(jìn)行以下操作:
(1)A 隨機(jī)選取r∈并計(jì)算R=gr;
(2)A 計(jì) 算hB=H1(IDB,wB),h=H2(m,R,IDA),
(3)A 發(fā)送消息σ={h,s,c}給B。
1.1.6 解簽密驗(yàn)證算法
ZHU 等在隨機(jī)預(yù)言機(jī)模型下是安全的,但通過(guò)具體攻擊可證明ZHU 等無(wú)證書(shū)方案不能滿(mǎn)足類(lèi)型I(即替換用戶(hù)公鑰)敵人攻擊下的保密性和不可偽造性。設(shè)用戶(hù)A 和用戶(hù)B 分別為發(fā)送者和接收者。A 的私鑰SKA={tA,zA},公鑰PKA={wA,uA}。B 的私鑰SKB={tB,zB},公鑰PKB={wB,uB}。設(shè)Q 是類(lèi)型I 的攻擊者,能隨時(shí)查詢(xún)用戶(hù)公鑰甚至替換合法用戶(hù)的公鑰。
該方案在面對(duì)類(lèi)型I、敵人Q 的攻擊時(shí),Q 可以偽造合法的密文。
具體過(guò)程如下:
(1)Q 生成隨機(jī)數(shù)a∈計(jì)算HA=H1(IDA,wA),,并且利用替換PKA={uA,wA}中的uA。
(2)Q 隨機(jī)選取r∈并計(jì)算R=gr,計(jì)算hB=H1(IDB,wB),h=H2(m,R,IDA),⊕m,最后Q 發(fā)送消息σ={h,s,c}給B。
證明:如果攻擊者Q 產(chǎn)生的簽密文能夠通過(guò)B的解簽密驗(yàn)證,那么說(shuō)明Q 成功偽造了A 的簽密文。由于Q 進(jìn)行了公鑰替換,因此A 的公鑰為其中
B 按照解簽密算法步驟采用A 被替換后的公鑰進(jìn)行解簽密操作。
當(dāng)收到消息σ后,B 計(jì)算hB=H1(IDB,wB),恢復(fù)明文⊕c,且IDA]顯然成立。因此B 接受消息m。至此,Q 成功偽造了一組合法的簽密文。
綜上所述,ZHU 等方案不能滿(mǎn)足類(lèi)型I 敵人攻擊下的不可偽造性,同理也可以證明ZHU 等的方案是不滿(mǎn)足機(jī)密性的。
對(duì)于ZHU 等方案,攻擊者Q 可以利用簡(jiǎn)單線(xiàn)性關(guān)系,通過(guò)控制來(lái)消除對(duì)密文的影響,從而達(dá)到偽造目的。因此,提出了一種改進(jìn)無(wú)證書(shū)簽密方案。本方案無(wú)論是在簽密階段還是驗(yàn)證階段,都沒(méi)有用到雙線(xiàn)性對(duì)運(yùn)算,具有較低的計(jì)算復(fù)雜度,保證了方案在無(wú)線(xiàn)傳感網(wǎng)絡(luò)等領(lǐng)域的應(yīng)用。
2.1.1 系統(tǒng)參數(shù)建立算法
輸入安全參數(shù)k,產(chǎn)生兩個(gè)生成元p、q,且q||p-1。p為橢圓曲線(xiàn)上循環(huán)群G1中任意一個(gè)階為q的生成元,選擇安全Hash 函數(shù):H1∶{0,1}*×G1→,H2∶{0,1}n→H3∶→{0,1}n,H4∶→{0,1}n。其 中,n為明文消息比特長(zhǎng)度。KGC 隨機(jī)選擇主密鑰z∈計(jì)算y=zp,保密主密鑰z,同時(shí)公開(kāi)系統(tǒng)參數(shù)(p,q,g,y,H1,H2,H3)。
2.1.2 部分密鑰生成算法
給定用戶(hù)身份IDi,KGC 隨機(jī)選擇ri∈,計(jì)算Ri=ri p,Ei=ri+zH1(IDi,Ri)。其中,Ei為用戶(hù)的部分私鑰,Ri為用戶(hù)的部分公鑰。KGC 通過(guò)安全信道將部分私鑰發(fā)送給用戶(hù)。
用戶(hù)在收到KGC 的部分私鑰時(shí),需驗(yàn)證Ei p=Ri+yhi是否成立。若成立,才接受KGC 生成的部分密鑰,同時(shí)保存y。
2.1.3 私鑰生成算法
給定用戶(hù)身份IDi和部分私鑰Ei,用戶(hù)隨機(jī)選取fi∈作為秘密值,生成用戶(hù)私鑰SKi=(Ei,fi)。
2.1.4 公鑰生成
給定用戶(hù)的身份IDi和部分公鑰Ri,用戶(hù)計(jì)算Fi=fi p,生成用戶(hù)公鑰PKi=(Ri,Fi)。
2.1.5 簽密算法
當(dāng)用戶(hù)A 要發(fā)送消息m給用戶(hù)B 時(shí),A 進(jìn)行以下操作:
(1)A 隨機(jī)選取a∈,并計(jì)算TA=ap;
(2)A 計(jì)算kA=H4(IDA,RA,FA,y),hB=H1(IDB,RB),VA=a(RB+FB+hBy),c=H3(VA)⊕m,h=H2(TA||IDA||c)和
(3)A 發(fā)送消息σ={h,s,c}給B。
2.1.6 解簽密算法
B 收到密文后,進(jìn)行以下操作:
(2)B 計(jì)算h'=H2[s(kAFA+RA+yhA+hp)||IDA||c]=h是否成立,成立則B 接受消息m。
改進(jìn)無(wú)證書(shū)簽密機(jī)制可以實(shí)現(xiàn)保密性和不可偽造性,從而抵抗替換多個(gè)公鑰的攻擊。
當(dāng)用戶(hù)收到KGC 的部分私鑰時(shí),需驗(yàn)證Ei p=Ri+yhi是否成立。若成立,才能采用生成的部分私鑰,同時(shí)保存y。攻擊者對(duì)y進(jìn)行替換,必須要在用戶(hù)得到部分私鑰前,因?yàn)橛脩?hù)在得到正確部分私鑰后會(huì)保存y。由于攻擊者不知道部分私鑰,因此若攻擊者想對(duì)y和Ri進(jìn)行替換,那么必須保證在替換前后Ri+yhi的和是相等的。
令Ri+yhi的和為Q,即Ri+yhi=Q,且Q是一個(gè)固定的值。
假設(shè)攻擊者隨機(jī)選擇一個(gè)數(shù)a,用=aP來(lái)替換Ri。攻擊者想用cP替換y,那么y′hi=cPhi=Q-此時(shí)攻擊者要從等式cPhi=Q-ap中(Q、a、hi和p已知)求解出c是非常困難的,因?yàn)檫@是一個(gè)橢圓曲線(xiàn)上的離散對(duì)數(shù)問(wèn)題。因此,攻擊者想同時(shí)替換Ri、Fi及y為不相干的數(shù)是不可能的,說(shuō)明本文提出的方案可以抵抗同時(shí)替換多個(gè)公鑰的攻擊,即改進(jìn)的簽密機(jī)制是可以提供不可偽造性和機(jī)密性的。
綜上所述,改進(jìn)方案可以抵抗替換多個(gè)公鑰的攻擊,具有安全性。
本文針對(duì)ZigBee 網(wǎng)絡(luò)中傳統(tǒng)“先簽名后加密”的安全接入認(rèn)證方法存在計(jì)算復(fù)雜、數(shù)據(jù)擴(kuò)展率高等問(wèn)題,開(kāi)展面向ZigBee 資源受限環(huán)境下的安全接入認(rèn)證方法研究,在對(duì)比分析傳統(tǒng)、基于身份的簽密以及無(wú)證書(shū)簽密等方案的安全性基礎(chǔ)上,開(kāi)展無(wú)雙線(xiàn)性對(duì)無(wú)證書(shū)簽密方案的系統(tǒng)參數(shù)建立、密鑰生成、簽密和解簽密等關(guān)鍵算法研究、安全性證明和方案驗(yàn)證,形成基于無(wú)雙線(xiàn)性對(duì)無(wú)證書(shū)簽密的ZigBee 安全接入認(rèn)證方案,并對(duì)方案的安全性和性能進(jìn)行分析,可以實(shí)現(xiàn)抵抗替換單個(gè)公鑰攻擊和替換多個(gè)公鑰攻擊的無(wú)雙線(xiàn)性無(wú)證書(shū)的簽密算法,能夠解決ZigBee 網(wǎng)絡(luò)中的安全接入問(wèn)題。