郭軍



【摘 ?要】
針對物聯網系統的數據傳輸開放性、加密及認證開銷成本高的問題,提出一種基于橢圓曲線加密算法與SHA-3算法結合的認證方案,并運用BAN邏輯的形式化分析方法,對該方案的安全性進行分析驗證。結果顯示,該方案能夠實現服務器與設備之間,以及各設備之間的雙向身份認證,能夠提供通信雙方的會話密鑰協商,并能保持會話密鑰的新鮮性。
【關鍵詞】橢圓曲線加密算法;SHA-3算法;密鑰協商;BAN邏輯
[Abstract]
Aiming at the problems of openness of data transmission, high cost of encryption and authentication in the Internet of things system, this paper proposes an authentication scheme based on elliptic curve cryptography and SHA-3 algorithm, and uses the formal analysis method of BAN logic to analyze and verify the security of the scheme. The results show that the scheme can achieve two-way identity authentication between servers and devices, and between devices. It can provide session key agreement between the two communication entities, and can maintain the freshness of the session key.
[Key words]elliptic curve cryptography; SHA-3 algorithm; key agreement; BAN logic
0 ? 引言
信息化技術的快速發展,帶動了物聯網技術的智能化飛躍,物聯網信息安全的重要性越來越得到重視[1]。目前物聯網產業仍處在發展階段,物聯網信息安全防護還存在許多問題,物聯網內部通信的身份認證鑒別及通信信道加密技術仍不完善。因此,基于當前的物聯網環境,提出了一種基于橢圓曲線加密算法與SHA-3算法結合的新型認證方案,該方案能夠實現通信雙方身份認證、共享會話密鑰協商及通信數據來源不可否認,并能保證通信會話密鑰的新鮮性。
1 ? 橢圓曲線加密算法
橢圓曲線加密算法(Elliptic Curve Cryptography, ECC)[2]是一種公鑰加密算法,最初是由Miller和Koblitz兩位學者提出的,橢圓曲線密碼體制的安全性建立在橢圓曲線離散對數問題(ECDLP)求解難度上,在素數域F(p)中或者二進制域中對數據進行加密運算[3]。
橢圓加密算法的最主要優勢在于比其他RSA加密算法、DSA加密算法計算速度更快,對資源要求更少,橢圓加密算法能夠用更小的密鑰長度提供同等或更高的安全性能,在減少運算復雜度的情況下能夠提供更高級別的安全等級。
橢圓加密算法是公認的在指定密鑰長度條件下,最強大的非對稱加密算法[4],更適合在帶寬資源緊張的應用場景中使用。目前,橢圓加密算法在比特幣、區塊鏈及身份證等領域有著廣泛的應用。
2 ? SHA-3加密算法
SHA-3(Keccak)是美國標準技術研究院確認的第三代哈希函數標準[5],是將來若干年內最重要的哈希函數,是SHA-0及SHA-1密碼散列函數的替代品,具有更高的安全性,執行速度更高。
SHA-3是密碼散列函數的一種,其本質是一種數據壓縮映射。對于相同的函數輸入值,通過散列函數計算后得到的輸出結果,即消息摘要值是完全相同的,對于不同的函數輸入值,通過散列函數計算后得到的消息摘要是完全不同的,即便不同輸入值只有微小差異,例如只是改變了輸入值其中的一位,那么散列運算后的輸出消息摘要也會發生雪崩效應,產生極大差別。密碼散列函數在數字簽名、文件完整性校驗以及口令加密等信息安全領域發揮著極其重要的作用。
3 ? 新型認證方案設計
3.1 ?符號及含義
S:服務器;DN:N號設備;SN:設備編號;PW:設備認證密碼;KSD:服務器與受控設備之間的共享會話密鑰;KS:橢圓加密算法生成的服務器公鑰;KS-1:橢圓加密算法生成的服務器私鑰;KD:橢圓加密算法生成的設備公鑰;KD-1:橢圓加密算法生成的設備私鑰;KDD:設備之間的共享會話密鑰;H(x):SHA-3加密運算;Hi(x):進行i次SHA-3加密運算;i:小于50的隨機整數。
3.2 ?認證流程
(1)注冊過程
注冊過程由服務器S與設備DN共同參與完成,協商并保存在通信過程中使用到的認證數據,注冊工作必須在安全可靠的環境下進行,步驟如下:
◆DN提交設備編號SN、IP地址、認證密碼PW;
◆S為DN分配指定的共享密鑰KSD:
KSD=H(SN⊕PW)
共享密鑰KSD是由編號和認證密碼經過異或運算后,再通過SHA-3算法加密后計算生成;
◆S將會話密鑰KSD下發給DN;
◆DN通過橢圓加密算法計算自己的公鑰KD、私鑰KD-1;
◆DN將自己的私鑰KD-1提交給S;
◆S建立記錄,存儲DN的私鑰KD-1以及S與DN的會話密鑰KSD;
◆S將自己的公鑰KS下發給DN;
◆DN保存與S的會話密鑰KSD以及S的公鑰KS。
注冊過程如圖1所示:
(2)服務器對設備的認證過程
第i輪通信認證過程如下:
◆設備DN請求與服務器S通信,發送數據i,i是一個小于50的隨機整數,與設備編號SN、設備密碼PW級聯,通過DN的公鑰KD加密后,得到KD(SN,PW,i),并將加密后數據發送至S。
◆DN通過設備編號SN、設備認證密碼PW及隨機數i生成本輪通信的會話密鑰KiSD= Hi(SN⊕PW);
◆S收到DN通信請求后,通過IP地址比對獲取設備編號SN、IP地址、認證密碼PW及設備私鑰KD-1,并通過設備私鑰KD-1解密KD(SN,PW,i),獲取SN、PW和隨機數i,核對SN、PW完成對DN身份認證。
◆S計算生成本輪與DN通信的會話密鑰KiSD= Hi (SN⊕PW)。
對設備之間認證過程如圖2所示:
(3)設備對服務器的認證過程
◆S通過私鑰KS-1加密KiSD并下發至DN,即下發給DN信息為KS-1(KiSD);
◆DN收到KS-1(KiSD)后,通過保存的S公鑰KS解密KS(KS-1(KiSD))=KiSD,獲取到KiSD;
◆DN計算Hi(SN⊕PW),判斷結果是否與KiSD相對,若相等,則完成對S身份認證,不相等則中斷通信;
◆S與DN通過新協商的會話密鑰KiSD進行通信信道加密。
設備對服務器的認證過如圖3所示:
(4)設備之間的會話密鑰協商過程(如圖4)
◆D1完成與S的雙向認證;
◆D2完成與S的雙向認證;
◆D1通過S請求與D2通信;
◆S使用D1的設備編號SN1、設備認證密碼PW1,D2的設備編號SN2、設備認證密碼PW2以及隨機數i,計算D1與D2的共享會話密鑰: ? KDD=Hi(SN1⊕PW1⊕SN2⊕PW2);
◆通過與D1、D2各自協商的會話密鑰加密KDD,并分發給D1、D2;
◆D1、D2分別通過各自會話密鑰解密獲取KDD。
◆D1、D2通過會話密鑰KDD進行通信信道加密。
4 ? 安全性驗證
本文使用BAN邏輯[6]對所提方案進行形式化分析驗證,BAN邏輯是最為廣泛使用的安全協議形式化分析驗證方法。這種分析方法在對安全協議,尤其是認證方案的分析中起著重要的作用[7]。
4.1 ?BAN邏輯語法
P,Q:通信主體;X:通信數據;K:密鑰;P|≡X:P相信X的內容是真實有效的;P 4.2 ?BAN邏輯驗證 方案初始化假設: ◆,即S相信KSD是S與D之間的共享密鑰; ◆,即D相信KSD是S與D之間的共享密鑰; ◆,即KD是D的公鑰; ◆,即KS是S的公鑰; ◆,即S相信KD是D的真實有效公鑰; ◆,即D相信KS是S的真實有效公鑰; ◆,即D相信i是新鮮的; ◆,即D對i的新鮮性有控制權; ◆,即S對S與D之間的第i輪通信共享密鑰KiSD有控制權。 (1)對客戶端的認證 根據BAN邏輯的消息含義規則中關于公開密鑰的推斷,即: S相信KD是D的公鑰,KD-1是D的私鑰,那么當S收到D公鑰加密的消息,則能夠判定消息是D發送的,實現S對D的身份認證。 (2)對服務器的認證 根據BAN邏輯的消息含義規則中關于公開密鑰的推斷,即: D相信KS是S的公鑰,那么當D收到S公鑰加密的消息,則能夠判定消息是S發送的,實現D對S的身份認證。 (3)服務器與設備會話密鑰新鮮性 根據BAN邏輯的管轄權規則,即: S相信D對i的新鮮性有控制權,且S相信D也相信i是新的,則S相信i是新的。 根據BAN邏輯的新鮮性規則,即: 由于KiSD=Hi(SN⊕PW),所以: S相信i是新的,則S相信和i級聯的整體信息也是新的,即S相信KiSD的新鮮性。同理,D相信KiSD的新鮮性。 (4)服務器與設備會話密鑰協商 根據BAN邏輯的管轄權規則的推斷,即: D相信S對S與D之間的共享密鑰KiSD有控制權,且D相信S相信KiSD是S與D之間的共享密鑰,那么當D相信KiSD是S與D之間的共享密鑰。此過程完成服務器與設備的共享會話密鑰協商。 (5)設備之間會話密鑰協商 根據BAN邏輯的管轄權規則的推斷,即: D1相信S對D1與D2的共享密鑰KDD有控制權,且D1相信S也相信KDD是D1與D2的共享密鑰,則D1相信KDD是D1與D2的共享密鑰。同理,則D2相信KDD是D1與D2的共享密鑰。 (6)設備之間會話密鑰新鮮性 根據BAN邏輯的管轄權規則的推斷,即: D1相信S對D1與D2的會話密鑰KDD的新鮮性有控制權,且D1相信S也相信D1與D2的會話密鑰KDD是新的,則D1相信KDD是新的。同理,D2相信KDD是新的。 通過BAN邏輯形式化分析,結果顯示,新方案可實現到以下目標: ◆實現服務器與設備之間的雙向認證; ◆實現設備與設備之間的雙向認證; ◆實現服務器與設備之間的會話密鑰協商; ◆實現服務器與設備之間的會話密鑰可變性及新鮮性; ◆實現設備之間會話密鑰可變性及新鮮性;