引言
隨著中國社會經(jīng)濟(jì)的持續(xù)迅猛發(fā)展,,人們的生活水平不斷提高,,人們在住宅方面的觀念也潛移默化,由原來的居住溫飽逐漸地傾向于舒適和方便,。在此背景下,,智能家居產(chǎn)業(yè)如雨后春筍般蓬勃發(fā)展,,蒸蒸日上,從概念到實(shí)際應(yīng)用,,正一步一步地走進(jìn)我們的生活,。智能家居的遠(yuǎn)程控制系統(tǒng),讓我們能夠隨時隨地而輕松快捷地了解家庭狀況,,并且進(jìn)行遠(yuǎn)程遙控,,極大方便了我們的生活,吸弓了大量消費(fèi)者的眼球,。然而,,這種遠(yuǎn)程控制是否可靠,是否會被不法分子非法控制,,這一系列的不安因素讓許多用戶望而止步,。智能家居遠(yuǎn)程控制的安全性,,直接或間接地關(guān)系到我們的生命財(cái)產(chǎn)安全,所以對智能家居的信息安全研究亥壞容緩,。
1密鑰管理技術(shù)發(fā)展
現(xiàn)代信息安全技術(shù)是基于密鑰完成的,,因此密鑰的安全管理和分配是現(xiàn)代信息安全的重要基礎(chǔ)。有效的密鑰管理機(jī)制也是其他安全機(jī)制,,如安全路由,、安全定位、安全數(shù)據(jù)融合及針對特定攻擊的解決方案等的基礎(chǔ),。
密鑰技術(shù)的發(fā)展,,經(jīng)歷了一段曲折漫長的道路。1976年,,Diffie,、Hellman提出了著名的D-H密鑰分發(fā)體制,第一次解決了不依賴秘密信道的密鑰分發(fā)問題,,但這種體制只能用于會話密鑰的交換,,而且不能抵抗中間人攻擊(attackinthemiddle)。1978年,,Kohnfelder提出了CA認(rèn)證機(jī)構(gòu)概念,,采用密鑰動態(tài)分發(fā)的管理體制,,公鑰以CA證書形式公布,,用于解決密鑰的規(guī)模化問題,。1991年,,相繼出現(xiàn)了PGP、PEM,,首次提出密鑰由個人生成的分散式體系,。各依賴方各自建立密鑰環(huán),將常用對方公鑰儲存在自己設(shè)備中,。1996年,,提出了SPKI解決方案叫PKI設(shè)立了證書授權(quán)中心機(jī)構(gòu)(CertificateAuthority,CA),,證明公鑰和標(biāo)識的一體化,,防止他人冒名;創(chuàng)立了多層CA架構(gòu),,以解決密鑰的規(guī)?;瘑栴}。PKI的另一進(jìn)展是利用提供數(shù)字簽名的功能,,構(gòu)建在線認(rèn)證系統(tǒng),,從而大大推動了認(rèn)證理論的發(fā)展,。由于需要數(shù)據(jù)庫的在線支持,應(yīng)用效率不高,,維護(hù)代價過高,。
2001年,Boneh和Franklin利用Weil對理論,,將標(biāo)識作為公鑰,,私鑰由密鑰中心產(chǎn)生配發(fā)的新體制,實(shí)現(xiàn)了Shamir的基于標(biāo)識密碼(IdentityBasedEncryption,IBE)設(shè)想叫此方案將個體的唯一標(biāo)識符或網(wǎng)絡(luò)地址作為它的公鑰,,從而兩通信方不需要交換私鑰或公鑰來解密和驗(yàn)證簽名,,也無需保存密鑰目錄,取消了依靠第三方證明的層次化CA機(jī)構(gòu)鏈,。但是,,該方案仍然需要數(shù)據(jù)庫的在線支持,同樣效率不高,。
2矩陣密鑰管理方案
智能家居的網(wǎng)路大部分都是無線傳感網(wǎng)絡(luò)(WirelessSensorNetworks,,WSN),相對于傳統(tǒng)有線網(wǎng)絡(luò),,WSN的開放性使得網(wǎng)絡(luò)更加地容易受到竊聽,、干擾等各種攻擊。有線網(wǎng)絡(luò)的網(wǎng)絡(luò)連接是相對固定的,,具有確定的邊界,,攻擊者必須物理地接入網(wǎng)絡(luò)或經(jīng)過物理邊界,如防火墻和網(wǎng)關(guān),,才能進(jìn)入到有線網(wǎng)絡(luò),。通過對接入端口的管理可以有效地控制非法用戶的接入。而無線網(wǎng)絡(luò)則沒有一個明確的防御邊界,。首先,,無線網(wǎng)絡(luò)的開放性帶來了信息截取、未授權(quán)使用服務(wù),、惡意注入信息等一系列信息安全問題,。其次,WSN節(jié)點(diǎn)大部分都是低端的處理器,,它們的資源(包括存儲容量,、計(jì)算能力、通信帶寬和距離等)極其有限,。再者,,WSN的網(wǎng)絡(luò)容量非常龐大。鑒于以上特點(diǎn),傳統(tǒng)密鑰管理方案并不適用于WSN,。
本文在南相浩教授的組合公鑰算法的研究基礎(chǔ)上,,對算法進(jìn)行改進(jìn),提出了一種矩陣密鑰的認(rèn)證方案,。跟IBE一樣,,矩陣密鑰算法也是基于身份標(biāo)識的公鑰算法,不需要第三方證明的CA機(jī)構(gòu)鏈,,但是,,它不需要保留與用戶相關(guān)的參數(shù),只要保留少量的公共參數(shù)即可處理大量的公鑰,,無需數(shù)據(jù)庫的支持,。該算法以芯片級的儲存能力處理大規(guī)模(比如1048)的公鑰,非常適合應(yīng)用于智能家居控制網(wǎng)絡(luò),。
矩陣密鑰管理體制的安全基礎(chǔ)是橢圓曲線上的離散對數(shù)難題(EllipticCurveDiscreteLogarithmProblem,ECDLP),,即對橢圓曲線上的點(diǎn)P,求Q=kP很容易,相反已知P和Q求k卻非常的困難,。
矩陣密鑰管理體制在公開參數(shù)基礎(chǔ)上建立公鑰矩陣和私鑰矩陣,,采用散列映射函數(shù)將實(shí)體的標(biāo)識映射為矩陣的行列坐標(biāo),將矩陣元素進(jìn)行組合生成龐大的公鑰與私鑰,。
2.1橢圓曲線及其公開參數(shù)
由于本系統(tǒng)的有限域計(jì)算是在FPGA上實(shí)施的,,考慮二進(jìn)制有限域在硬件上比素?cái)?shù)域?qū)崿F(xiàn)更加地方便,本系統(tǒng)選取了F2m上的Koblitz橢圓曲線y2+xy=x+ax+bmodF,。其中,,F(xiàn)為約減多項(xiàng)式(在南相浩教授的組合公鑰方案里,采用的是素?cái)?shù)域[8])確定橢圓曲線后,,適當(dāng)?shù)剡x取曲線上的點(diǎn)G作為生成元,,成為基點(diǎn)?;c(diǎn)G=(Gx,Gy)的所有倍點(diǎn)構(gòu)成子群S={G,2G,3G,…,(N—1)G,NG},。其中NG即O,稱為子群S的階図,。表明N是個殆素?cái)?shù)(almost-prime),可以表示為N=hXn,其中n是個大素?cái)?shù),,h是個小整數(shù),。橢圓曲線密碼的公開參數(shù)組為T={a,b,,G,,N,m},。
按照NIST推薦,,本系統(tǒng)參數(shù)選取見表1所列,。橢圓曲線的計(jì)算可參見文獻(xiàn)。
2.2私鑰矩陣,、公鑰矩陣的構(gòu)建
公鑰矩陣為16×32的矩陣,。矩陣中的16×32個元素記為Xi,j(0≤i≤15,,0≤j≤31),。它們都是子群S中的元素,即
2.3基于標(biāo)識的密鑰的產(chǎn)生
密鑰是根據(jù)實(shí)體標(biāo)識產(chǎn)生的,。每個實(shí)體都有一個唯一可以區(qū)分其他實(shí)體的標(biāo)識,,比如居民的身份證號。在網(wǎng)絡(luò)中,,每個節(jié)點(diǎn)都有一個網(wǎng)絡(luò)地址,,這地址在整個網(wǎng)絡(luò)中是唯一的。我們首先對這個網(wǎng)絡(luò)地址進(jìn)行散列映射處理,,使得標(biāo)識更具有隨機(jī)性,。運(yùn)算表達(dá)式如下:
identity為實(shí)體的標(biāo)識,ID為標(biāo)識的散列映射值,。本系統(tǒng)中,,HASH為SHA1算法,影射值為160位,。從160位的ID中取出后128位,,分割成32組,每組4位,,每組依次為W0,,W1,…,,W31,。計(jì)算公鑰為:
2.4密鑰管理
本系統(tǒng)中,有一個設(shè)備來負(fù)責(zé)密鑰的產(chǎn)生和發(fā)放,,該設(shè)備叫密鑰管理中心(KeyManageCenter,,KMC)。KMC首先選擇系統(tǒng)的加密曲線參數(shù)以及基點(diǎn),,參數(shù)T={a,,b,G,,N,,m}向網(wǎng)絡(luò)公布。然后隨機(jī)產(chǎn)生16×32的私鑰矩陣。為了使每個不同的標(biāo)識產(chǎn)生不同的私鑰,,文獻(xiàn)給出了優(yōu)化方案,。根據(jù)私鑰矩陣和基點(diǎn),計(jì)算出公鑰矩陣,。私鑰矩陣由KMC秘密保留,,公鑰矩陣則公布。
當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)申請入網(wǎng)時,,KMC根據(jù)節(jié)點(diǎn)的標(biāo)識計(jì)算出節(jié)點(diǎn)的私鑰,,并通過安全信道告知節(jié)點(diǎn)私鑰。公開參數(shù)和公鑰矩陣則在公開信道告知,。圖1所示是其密鑰管理方案示意圖,。
兩節(jié)點(diǎn)之間通信時,發(fā)送方用自己的私鑰對消息進(jìn)行簽名,,將消息和簽名在公開信道上發(fā)送給目標(biāo)節(jié)點(diǎn),。接收方接收到消息和簽名時,先根據(jù)發(fā)送者的標(biāo)識,,從公鑰矩陣中計(jì)算出接收者的公鑰,,從而進(jìn)行消息的驗(yàn)證。此過程無需第三方的參與,,減少了網(wǎng)絡(luò)信息流量,,提高了效率。
本方案支持海量節(jié)點(diǎn)的網(wǎng)絡(luò),,以16X32密鑰矩陣為例,,幾百Kb的容量就能支持1632=2128=1039個節(jié)點(diǎn)。
3數(shù)字簽名協(xié)議
本系統(tǒng)簽名協(xié)議采用橢圓曲線簽名算法(EllipticCurveDigitalSignatureAlgorithm,ECDSA),。簽名算法如算法1,。其中,H為散列映射函數(shù),,m為待簽名的消息,,心為發(fā)送者的私鑰,Qa為發(fā)送者的公鑰,。
算法1ECDSA如下:
簽名過程:
選擇整數(shù)kG(0,n),;
計(jì)算kG=(X1,y1),,并將轉(zhuǎn)換為整數(shù)x:
計(jì)算r=xmodn,如果r=0,則返回步驟1):
計(jì)算e=H(n);
計(jì)算s=k」(e+dAr)modn,。若s=0,則跳至步驟1):
返回(r,s),。
驗(yàn)證過程:
檢查r,s是否是區(qū)間(0,n)內(nèi)的整數(shù),若任一個不成立則否認(rèn)簽名;
計(jì)算e=H(m),;
計(jì)算w=s_1modn,;
計(jì)算u1=ewmodn,u2=rwmodn;
計(jì)算X=uG+u2Qa=(x,。,,y。),;
若X=8,則否認(rèn)簽名,;
將X0轉(zhuǎn)換為整數(shù)x,計(jì)算v=xmodn;
若v=r,則認(rèn)可簽名,,否則否認(rèn)簽名,。
簽名驗(yàn)證的工作證明以及安全性證明詳見文獻(xiàn)。
4系統(tǒng)設(shè)計(jì)
本系統(tǒng)完成對智能家居控制網(wǎng)絡(luò)通信的地址認(rèn)證,。本系統(tǒng)的家居控制網(wǎng)絡(luò)由ZigBee網(wǎng)絡(luò)構(gòu)成,。ZigBee網(wǎng)絡(luò)是一種短距離、低功耗的無線通信技術(shù),,其近距離,、低復(fù)雜度、自組織,、低功耗,、低數(shù)據(jù)速率、低成本等特點(diǎn)非常適合智能家居控制網(wǎng)絡(luò),。ZigBee節(jié)點(diǎn)的通信地址有64位的IEEE地址(也叫擴(kuò)展地址,,由設(shè)備商固化在設(shè)備中)和32位的網(wǎng)絡(luò)地址(也叫短地址,加入網(wǎng)絡(luò)后由協(xié)調(diào)器分配,,每次加入網(wǎng)絡(luò)可能都不同),。在試驗(yàn)中,我們采用擴(kuò)展地址通信方式,。本系統(tǒng)中網(wǎng)絡(luò)通信認(rèn)證主要是對地址真實(shí)性的認(rèn)證,,能夠正確地識別數(shù)據(jù)的來源,避免消息的偽造,。消息的簽名和認(rèn)證算法則由FPGA完成,。ZigBee模塊與FPGA之間通過SPI總線通信。其硬件設(shè)計(jì)框圖見圖2所示,。
圖2 硬件設(shè)計(jì)框圖
ZigBee模塊在發(fā)送消息m前,,將消息發(fā)送給FPGA,FPGA完成對消息的簽名,并將簽名<rs>返回給ZigBee模塊,。之后,,ZigBee模塊在接收到后,,將簽名內(nèi)容附屬在消息后面,形成<m,r,s>,,并將這發(fā)送,。當(dāng)ZigBee模塊接收到附帶簽名的消息<m,r,s>后,將消息發(fā)送給FPGA進(jìn)行處理,。FPGA對消息進(jìn)行驗(yàn)證,,將驗(yàn)證結(jié)果返回給ZigBee模塊。若消息驗(yàn)證成功,,則交給用戶進(jìn)行下一步的處理,,否則認(rèn)為消息來源不可信,拋棄消息不予處理,。
圖3 軟件流程圖
FPGA簽名和認(rèn)證流程圖如圖3所示,。FPGA模塊有簽名和驗(yàn)證兩種模式,由ZigBee模塊通知選擇,。在兩種模式下分別進(jìn)行ECDSA簽名和ECDSA驗(yàn)證處理,,將處理結(jié)果傳送回ZigBee模塊進(jìn)行下一步處理。
5實(shí)驗(yàn)結(jié)果分析
本次試驗(yàn)中,,采用CC2530作為ZigbBee模塊,,簽名認(rèn)證算法由EP2C5T144CB完成,時鐘頻率為40MHz,。
發(fā)送方發(fā)送消息為“Hello,!”,消息HASH值為表2中的HASH(m),。
發(fā)送方用自己的私鑰dA對消息進(jìn)行簽名,,得到消息簽名r和s。
接收方收到帶有簽名的消息后,,根據(jù)發(fā)送方的IEEE地址,,通過公鑰矩陣查詢到發(fā)送方的公鑰為坐標(biāo)(QA_x,QA_y),,經(jīng)過ECDSA認(rèn)證算法后得到v,。
表2記錄了實(shí)驗(yàn)數(shù)據(jù)。
分析實(shí)驗(yàn)數(shù)據(jù)表2可得v=r,,根據(jù)認(rèn)證算法接收該簽名,。本方案實(shí)現(xiàn)了對消息的簽名和認(rèn)證,提高了網(wǎng)絡(luò)通信的可靠安全性,。
6結(jié)語
本系統(tǒng)將基于標(biāo)志認(rèn)證的矩陣密鑰算法應(yīng)用到智能家居遠(yuǎn)程控制網(wǎng)絡(luò)的真實(shí)性認(rèn)證當(dāng)中,,實(shí)現(xiàn)了無需第三方的在線參與的本地認(rèn)證,大大提高了認(rèn)證效率,。網(wǎng)絡(luò)中的KMC只需要在設(shè)備加入網(wǎng)絡(luò)時分配密鑰,,平時并不參與認(rèn)證活動,;網(wǎng)絡(luò)中的各個終端節(jié)點(diǎn),,也只是增加一些算法的實(shí)現(xiàn),,以很小的代價實(shí)現(xiàn)了對家庭網(wǎng)絡(luò)的地址認(rèn)證,為建立安全可信任的網(wǎng)絡(luò)打下了良好的基礎(chǔ),,確保了網(wǎng)絡(luò)通信間的安全可靠,。