?

NB-IoT智能鎖系統的密鑰管理方案

2020-09-02 01:23王杰昌
計算機應用與軟件 2020年8期
關鍵詞:信息熵密鑰加密

王杰昌 張 平

1(鄭州大學體育學院計算機教研室 河南 鄭州 450044)2(河南科技大學數學與統計學院 河南 洛陽 471023)

0 引 言

NB-IoT是物聯網的重要分支,自從標準建立以來,因其低功耗、廣覆蓋、大連接、低成本等特點而迅速發展[1-3]。在中國市場,因政府的大力支持,NB-IoT前景廣闊,將是物聯網行業的一個新爆點。其應用場景有智能停車、智能抄表、共享單車、智能穿戴[4]、共享汽車、共享空調、大學宿舍智能門禁、公租房智能鎖等,NB-IoT將融入我們生活的方方面面。

隨著NB-IoT技術的大量使用,其安全問題自然是首要考慮的,比如政府公租房NB-IoT智能鎖,一旦開鎖密鑰被竊取,租客財物則面臨丟失的風險,所以如何管理密鑰成為研究重點。文獻[5]為解決NB-IoT應用的數據安全問題,提出一種基于AES[6]與混沌序列的輕量級加密算法以及加密模型,對NB-IoT終端和HCI之間傳輸的數據利用密鑰Key進行加密,然而其未說明如何傳遞密鑰。文獻[7]在NB-IoT不可靠的UDP數據傳輸方式下,精心設計了一個密鑰傳輸交互方案,以盡可能小的計算開銷和通信開銷來完成用戶開鎖密鑰的可靠更新,但其出現開鎖密鑰更新失敗繼續使用舊密鑰的情況。同時,該方案在服務器和智能鎖之間使用舊密鑰或之前協商好的密鑰作為會話密鑰,所以兩者間的會話安全性不高。文獻[8]為防止惡意用戶合謀遠程開鎖以及重放攻擊,設計了基于位置證明的身份驗證機制以及時間戳加密機制,但其沒有具體說明服務器如何向智能鎖下發開鎖密鑰,同時智能鎖未向服務器上傳運行信息,服務器無法掌握智能鎖的運行狀況,其安全性有待提高。

NB-IoT智能鎖所面臨的安全問題:管理服務器如何安全地接收用戶和智能鎖的信息;管理服務器如何安全地向智能鎖和合法用戶下發開鎖密鑰;系統如何防止用戶用過期的密鑰開鎖?,F有研究并未很好地解決這些問題,對此本文將改進文獻[7-8]的方案,設計一種更安全的密鑰管理方案,妥善解決密鑰傳輸以及信息交互問題,并證明其安全性。

1 預備知識

1.1 NB-IoT智能鎖系統模型

NB-IoT智能鎖系統中主要有三方:用戶智能手機SP(Smart Phone)、智能鎖SL(Smart Lock)和管理服務器MS(Management Server),如圖1所示。管理服務器接收用戶智能手機請求、審核用戶資質、接收智能鎖運行信息、管理開鎖密鑰;智能鎖利用NB-IoT和管理服務器進行通信,通過藍牙接收手機的開鎖指令;合法用戶智能機向管理服務器申請開鎖密鑰,通過藍牙向智能鎖發送加密的開鎖指令。該系統的關鍵在于如何管理開鎖密鑰。

圖1 NB-IoT智能鎖系統架構圖

在NB-IoT智能鎖系統中,管理服務器是可信的,它會向智能鎖和合法用戶下發正確的開鎖密鑰,注銷到期用戶的密鑰,且不會向敵手泄露密鑰。鎖是安全可控的,不會泄露密鑰。用戶是半誠信的,他會遵守密鑰管理方案規則,但是他還會盡量利用已獲取的系統信息,在密鑰過期或無密鑰的情況下開鎖。

每個NB-IoT智能鎖都有唯一一個國際移動設備身份標識碼IMEI(international mobile equipment identity),是15位數字組成的“電子串號”,本文將利用IMEI為智能鎖產生會話密鑰。

1.2 ECDH協議

ECC[9](橢圓曲線密碼體制)是一種強大的公鑰密碼體制,其使用的是變元和系數均為有限域中元素的橢圓曲線,其數學基礎是利用橢圓曲線上的有理點構成的阿貝爾群上橢圓曲線離散對數的計算困難性。對于有限域GF(q)(其中q為一大素數)上的橢圓曲線E,其任意兩點R和G,有R=cG,在已知R和G的前提下求出小于q的正整數c。已知c和G計算R比較容易,但是已知R和G計算c非常困難,ECC的安全性就是建立在這個問題的困難程度之上的,這個問題稱為橢圓曲線對數問題。本文所述的秘密鑰是指對稱加密算法中使用的密鑰,而非公鑰密碼學中使用的公鑰和私鑰。

應用中所使用的兩種橢圓曲線分別是在有限域GF(2m)上構造的二元曲線和定義在有限域Zq上的素曲線,其中:GF(2m)元素個數為2m,m為正整數;Zq是小于q的非負整數集合,稱為模q的同余類集合,同時也是一個有限域。文獻[10]認為,因為可以用很少的門電路來得到快速且強大的密碼體制,對硬件應用最好使用在GF(2m)上構造的二元曲線;而對軟件應用最好使用定義在Zq上的素曲線,因其不需要二元曲線所要求的位混淆運算。本文在硬件上使用ECC,故采用GF(2m)上構造的二元曲線。

1976年Diffie等[12]基于有限域上計算離散對數的困難性,提出了Diffie-Hellman密鑰交換算法,ECDH算法[13]是Diffie-Hellman密鑰交換在橢圓曲線上的實現。對于給定的安全級別,點乘運算比模冪運算快大約10倍左右,因此ECDH算法比Diffie-Hellman密鑰交換算法效率要高[14]。利用ECDH可產生雙方共享的秘密鑰,首先挑選一個大整數2m,以及使有限域GF(2m)上橢圓曲線y2+xy=x3+ax2+b成立的參數a和b,由此可以定義出點的橢圓群E2m(a,b);其次,在E2m(a,b)中挑選基點G=(x0,y0),G的階為一個非常大的數n。橢圓曲線上點G的階n是使得nG=0成立的最小正整數。E2m(a,b)和G是該密碼體制中通信各方均已知的參數。

2 方案設計

2.1 設計思想

本文方案的密鑰管理流程如圖2所示,通過ECDH實現管理服務器和智能鎖間的密鑰交換,生成兩者間共享的會話密鑰(該會話密鑰安全性高于文獻[7-8])。管理服務器生成開鎖密鑰,并利用會話密鑰加密開鎖密鑰將其下發給智能鎖,智能鎖利用會話密鑰將自己的運行信息加密上傳給管理服務器,這兩種通信過程中采用AES對稱加密體制,均在NB-IoT鏈路上進行。用戶通過掃碼向管理服務器申請公租房,則管理服務器審核其資格,若不符合條件,拒絕向其下發密鑰;若符合條件,管理服務器使用用戶的公鑰加密開鎖密鑰將其下發給用戶,用戶用自己的私鑰解密得到開鎖密鑰。之后,用戶可使用開鎖密鑰加密開鎖指令發送給智能鎖,智能鎖利用開鎖密鑰解密消息,得到開鎖指令并開鎖,此過程采用AES對稱加密算法,若雙方的開鎖密鑰不一致,則智能鎖不能解密及開鎖。

圖2 NB-IoT智能鎖系統密鑰管理流程圖

在使用過程中,NB-IoT智能鎖系統可視安全狀況定期更新密鑰。如果用戶已到租期(喪失資格),則管理服務器重新生成開鎖密鑰,并下發給智能鎖,用戶使用舊的開鎖密鑰則無法開鎖。

2.2 方案詳述

本文方案所涉相關符號如表1所示。

表1 本文符號說明

續表1

本文方案的詳述如下:

1) 管理服務器MS與智能鎖SL進行密鑰交換,MS選擇私有的nMS(nMS是保密的,且滿足nMS

2) 智能鎖SL選擇私有的nSL(nSL是保密的,且滿足nSL

3) 管理服務器MS利用私有的nMS和接收到的PSL,通過計算產生密鑰:

K=nMS×PSL=nMS×nSL×G=(xK,yK)

(1)

同樣的智能鎖SL利用私有的nSL和接收到的PMS,通過計算產生密鑰:

K=nSL×PMS=nSL×nMS×G=(xK,yK)

(2)

兩個密鑰K相等,且只有MS和SL知道。因為密鑰K是一對數字(xK,yK),故雙方可按出廠協定取會話密鑰kML=xK+last(IMEI),其中函數取了智能鎖SL的電子串號IMEI的最后一位數字。因xK只有MS和SL知道,所以會話密鑰kML也只有雙方知道。

4) MS生成隨機的128 bit開鎖密鑰kSL=random(),并將加密消息EkML(kSL)發送給SL;同時SL將加密消息EkML(Info)發送給MS,上報SL的運行信息Info;SL利用會話密鑰kML解密消息EkML(kSL)得到開鎖密鑰kSL。其中:E為AES對稱加密算法;random()為隨機生成函數。

5) 用戶通過其智能手機SP掃碼,下載App,并向管理服務器MS發出開鎖密鑰申請,同時SP產生一對密鑰:私鑰KRSP和公鑰KUSP(比如其手機號或身份證號的函數生成值),并將其公鑰KUSP發送給MS。

6) 管理服務器MS收到申請后,審核該用戶資格。如果該用戶無租房資格,則拒絕申請。

7) 如果該用戶有租房資格,則MS利用其接收到的合法用戶公鑰KUSP將開鎖密鑰kSL加密,得到密文:

C=EKUSP(kSL)

(3)

并將其發送給合法用戶SP。傳輸過程中即使被第三方竊聽到C,但因第三方不知道私鑰KRSP,所以無法解密C得到kSL。

8) 合法用戶SP接收到密文C,利用其私鑰KRSP計算:

DKRSP(C)=DKRSP[EKUSP(kSL)]=kSL

(4)

得到智能鎖SL的開鎖密鑰kSL。

9) SP使用對稱密碼算法AES加密開鎖指令open和時間戳t,并將EkSL(open,t)通過藍牙發送給SL,SL利用kSL計算:

DkSL[EkSL(open,t)]=(open,t)

(5)

得到開鎖指令和時間戳,即執行開鎖指令。若SP開鎖密鑰錯誤,則SL無法計算出開鎖指令,就不開鎖。使用藍牙通信可防止用戶轉租房屋,加入時間戳還可防范重放攻擊。

10) 若SP租期已到,則MS生成新的開鎖密鑰kSL,并將其下發給SL。SP則無法利用舊的kSL開鎖。

2.3 密鑰管理方案算法

本文密鑰管理方案算法如下:

1. MS→SL:PMS,SL→MS:PSL

2.K=nSL×PMS=nMS×PSL=(xK,yK),

kML=xK+last(IMEI)

3.kSL=random(),MS→SL:EkML(kSL),

SL→MS:EkML(Info)

4. SL:kSL=DKML[EKML(kSL)]

5. SP→MS:request(KUSP)

6. if SP==false end

7. else

8. MS→SP:EKUSP(kSL),

SP:kSL=DKRSP[EKUSP(kSL)]

9. SP→SL:EkSL(open,t),

SL:DkSL[EkSL(open,t)]=(open,t)

10. if SP become due

11. run step 3

12. end

3 性能評估

一個密鑰管理方案的性能指標主要包括安全性和運行效率。本文用信息熵來衡量安全性,香農用信息熵的概念來描述信源的不確定度[15],明文信息經過加密算法加密后產生的密文信息熵越大,其不確定性越大,安全性也越高[16]。運行效率本文用運行時間來衡量,時間越短,效率越高。

3.1 信息熵

信息熵在事件發生之前,它是結果不確定性的量度,在事件發生之后,它是從該事件中所得到的信息量度[17]。

在管理服務器MS和用戶智能手機SP的信息交互過程中,以及智能手機SP和智能鎖SL的信息交互中,因本方案與文獻[7-8]采取同樣的加密算法和相同長度的密鑰,故信息熵一樣。因此,只比較服務器MS與智能鎖SL信息交互過程中本方案與文獻[7-8]的信息熵,MS與SL的信息交互如圖3所示。因本方案和文獻[7-8]均使用128 bit的開鎖密鑰kSL,所以隨機變量kSL的信息熵一樣,記為H(kSL)。

圖3 管理服務器與智能鎖信息交互圖

3.1.1 本方案信息熵

1) 信源MS向SL傳遞消息,其信息熵表示為H(S1);MS→SL:EkML(kSL),消息EkML(kSL)的信息熵又為離散隨機變量KML和kSL的聯合熵H(kSL,KML)。隨機變量KML和kSL相互獨立,所以兩者的互信息I(KML;kSL)=0;前文中MS和SL通過密鑰交換產生的共享秘密鑰為K=nSL×nMS×G=(xK,yK),而開鎖密鑰kML=xK+last(IMEI),所以:

(6)

因此,可得到:

H(S1)=H(kSL,KML)=H(kSL)+H(KML)-I(KML;kSL)=

H(kSL)+H(KML)=H(kSL)+

(7)

2) 信源SL向MS上傳加密消息,其信息熵表示為H(S2);SL→MS:EkML(Info),消息EkML(Info)的信息熵又為離散隨機變量KML和Info的聯合熵H(KML,Info)。隨機變量KML和Info相互獨立,所以兩者的互信息I(KML;Info)=0,所以有:

H(S2)=H(KML,Info)=H(KML)+H(Info)-

I(KML;Info)=H(Info)+H(KML)=

(8)

綜合1)和2)可知,在MS和SL的一輪信息交互中,總體信息熵為:

H(S)=H(S1)+H(S2)=H(kSL)+H(Info)+

(9)

3.1.2 文獻[7]方案信息熵

文獻[7]中,開鎖密鑰有更新成功和更新失敗兩種情況,這兩種情況下的信息熵不同,下面分別討論:

(10)

(11)

(12)

綜合(1)和(2)可知,在MS和SL的一輪信息交互中,總體信息熵為:

(13)

所以H(SL)≤H(S),文獻[7]的總體信息熵不超過本方案的總體信息熵。

(14)

(1) MS→/SL,管理服務器MS無信息成功發送至智能鎖SL,所以:

(15)

(16)

綜合(1)和(2)可知,在MS和SL的一輪信息交互中,總體信息熵為:

(17)

所以H(SL)

經以上證明可知,文獻[7]中在兩種不同情況下的總體信息熵基本低于本文方案的總體信息熵。

3.1.3 文獻[8]方案信息熵

(18)

因此有:

(19)

(20)

綜合1)和2)可知,在MS和SL的一輪信息交互中,總體信息熵為:

(21)

所以H(SS)

由本節分析可知,本方案的信息熵高于文獻[7-8]的信息熵,安全性也就高于文獻[7-8]方案。

3.2 運行時間

將本文方案應用于公租房,租期一般3至5年,用戶對方案系統的體驗主要是租期內開鎖算法的運行時間。本文方案在開鎖階段與文獻[7-8]一樣都采用AES算法,且都使用128 bit的開鎖密鑰,故在大多數情況下,本文方案的運行時間、文獻[7-8]運行效率以及用戶的開鎖體驗相同。

通過對信息熵和運行時間的分析可知,本文方案的安全性高于文獻[7-8],運行效率與文獻[7-8]相同。

4 結 語

本文妥善地解決了NB-IoT智能鎖系統中的密鑰管理問題,實現了安全有效的密鑰下發、密鑰更新、信息交互等過程,又引入信息熵作為評價安全性的指標,并通過數學證明了文中方案具有較高的安全性。另外,本文也通過理論分析證明方案的運行效率并不低。面對日益蓬勃發展的NB-IoT應用,本文方案具有較高的實用性。

猜你喜歡
信息熵密鑰加密
基于信息熵可信度的測試點選擇方法研究
幻中邂逅之金色密鑰
幻中邂逅之金色密鑰
密碼系統中密鑰的狀態與保護*
保護數據按需創建多種加密磁盤
電力安全防護加密裝置
Android密鑰庫簡析
近似邊界精度信息熵的屬性約簡
加密與解密
基于信息熵的承運船舶短重風險度量與檢驗監管策略研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合