郭軍



【摘 ?要】
針對(duì)物聯(lián)網(wǎng)系統(tǒng)的數(shù)據(jù)傳輸開放性、加密及認(rèn)證開銷成本高的問題,提出一種基于橢圓曲線加密算法與SHA-3算法結(jié)合的認(rèn)證方案,并運(yùn)用BAN邏輯的形式化分析方法,對(duì)該方案的安全性進(jìn)行分析驗(yàn)證。結(jié)果顯示,該方案能夠?qū)崿F(xiàn)服務(wù)器與設(shè)備之間,以及各設(shè)備之間的雙向身份認(rèn)證,能夠提供通信雙方的會(huì)話密鑰協(xié)商,并能保持會(huì)話密鑰的新鮮性。
【關(guān)鍵詞】橢圓曲線加密算法;SHA-3算法;密鑰協(xié)商;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 ? 引言
信息化技術(shù)的快速發(fā)展,帶動(dòng)了物聯(lián)網(wǎng)技術(shù)的智能化飛躍,物聯(lián)網(wǎng)信息安全的重要性越來越得到重視[1]。目前物聯(lián)網(wǎng)產(chǎn)業(yè)仍處在發(fā)展階段,物聯(lián)網(wǎng)信息安全防護(hù)還存在許多問題,物聯(lián)網(wǎng)內(nèi)部通信的身份認(rèn)證鑒別及通信信道加密技術(shù)仍不完善。因此,基于當(dāng)前的物聯(lián)網(wǎng)環(huán)境,提出了一種基于橢圓曲線加密算法與SHA-3算法結(jié)合的新型認(rèn)證方案,該方案能夠?qū)崿F(xiàn)通信雙方身份認(rèn)證、共享會(huì)話密鑰協(xié)商及通信數(shù)據(jù)來源不可否認(rèn),并能保證通信會(huì)話密鑰的新鮮性。
1 ? 橢圓曲線加密算法
橢圓曲線加密算法(Elliptic Curve Cryptography, ECC)[2]是一種公鑰加密算法,最初是由Miller和Koblitz兩位學(xué)者提出的,橢圓曲線密碼體制的安全性建立在橢圓曲線離散對(duì)數(shù)問題(ECDLP)求解難度上,在素?cái)?shù)域F(p)中或者二進(jìn)制域中對(duì)數(shù)據(jù)進(jìn)行加密運(yùn)算[3]。
橢圓加密算法的最主要優(yōu)勢(shì)在于比其他RSA加密算法、DSA加密算法計(jì)算速度更快,對(duì)資源要求更少,橢圓加密算法能夠用更小的密鑰長(zhǎng)度提供同等或更高的安全性能,在減少運(yùn)算復(fù)雜度的情況下能夠提供更高級(jí)別的安全等級(jí)。
橢圓加密算法是公認(rèn)的在指定密鑰長(zhǎng)度條件下,最強(qiáng)大的非對(duì)稱加密算法[4],更適合在帶寬資源緊張的應(yīng)用場(chǎng)景中使用。目前,橢圓加密算法在比特幣、區(qū)塊鏈及身份證等領(lǐng)域有著廣泛的應(yīng)用。
2 ? SHA-3加密算法
SHA-3(Keccak)是美國標(biāo)準(zhǔn)技術(shù)研究院確認(rèn)的第三代哈希函數(shù)標(biāo)準(zhǔn)[5],是將來若干年內(nèi)最重要的哈希函數(shù),是SHA-0及SHA-1密碼散列函數(shù)的替代品,具有更高的安全性,執(zhí)行速度更高。
SHA-3是密碼散列函數(shù)的一種,其本質(zhì)是一種數(shù)據(jù)壓縮映射。對(duì)于相同的函數(shù)輸入值,通過散列函數(shù)計(jì)算后得到的輸出結(jié)果,即消息摘要值是完全相同的,對(duì)于不同的函數(shù)輸入值,通過散列函數(shù)計(jì)算后得到的消息摘要是完全不同的,即便不同輸入值只有微小差異,例如只是改變了輸入值其中的一位,那么散列運(yùn)算后的輸出消息摘要也會(huì)發(fā)生雪崩效應(yīng),產(chǎn)生極大差別。密碼散列函數(shù)在數(shù)字簽名、文件完整性校驗(yàn)以及口令加密等信息安全領(lǐng)域發(fā)揮著極其重要的作用。
3 ? 新型認(rèn)證方案設(shè)計(jì)
3.1 ?符號(hào)及含義
S:服務(wù)器;DN:N號(hào)設(shè)備;SN:設(shè)備編號(hào);PW:設(shè)備認(rèn)證密碼;KSD:服務(wù)器與受控設(shè)備之間的共享會(huì)話密鑰;KS:橢圓加密算法生成的服務(wù)器公鑰;KS-1:橢圓加密算法生成的服務(wù)器私鑰;KD:橢圓加密算法生成的設(shè)備公鑰;KD-1:橢圓加密算法生成的設(shè)備私鑰;KDD:設(shè)備之間的共享會(huì)話密鑰;H(x):SHA-3加密運(yùn)算;Hi(x):進(jìn)行i次SHA-3加密運(yùn)算;i:小于50的隨機(jī)整數(shù)。
3.2 ?認(rèn)證流程
(1)注冊(cè)過程
注冊(cè)過程由服務(wù)器S與設(shè)備DN共同參與完成,協(xié)商并保存在通信過程中使用到的認(rèn)證數(shù)據(jù),注冊(cè)工作必須在安全可靠的環(huán)境下進(jìn)行,步驟如下:
◆DN提交設(shè)備編號(hào)SN、IP地址、認(rèn)證密碼PW;
◆S為DN分配指定的共享密鑰KSD:
KSD=H(SN⊕PW)
共享密鑰KSD是由編號(hào)和認(rèn)證密碼經(jīng)過異或運(yùn)算后,再通過SHA-3算法加密后計(jì)算生成;
◆S將會(huì)話密鑰KSD下發(fā)給DN;
◆DN通過橢圓加密算法計(jì)算自己的公鑰KD、私鑰KD-1;
◆DN將自己的私鑰KD-1提交給S;
◆S建立記錄,存儲(chǔ)DN的私鑰KD-1以及S與DN的會(huì)話密鑰KSD;
◆S將自己的公鑰KS下發(fā)給DN;
◆DN保存與S的會(huì)話密鑰KSD以及S的公鑰KS。
注冊(cè)過程如圖1所示:
(2)服務(wù)器對(duì)設(shè)備的認(rèn)證過程
第i輪通信認(rèn)證過程如下:
◆設(shè)備DN請(qǐng)求與服務(wù)器S通信,發(fā)送數(shù)據(jù)i,i是一個(gè)小于50的隨機(jī)整數(shù),與設(shè)備編號(hào)SN、設(shè)備密碼PW級(jí)聯(lián),通過DN的公鑰KD加密后,得到KD(SN,PW,i),并將加密后數(shù)據(jù)發(fā)送至S。
◆DN通過設(shè)備編號(hào)SN、設(shè)備認(rèn)證密碼PW及隨機(jī)數(shù)i生成本輪通信的會(huì)話密鑰KiSD= Hi(SN⊕PW);
◆S收到DN通信請(qǐng)求后,通過IP地址比對(duì)獲取設(shè)備編號(hào)SN、IP地址、認(rèn)證密碼PW及設(shè)備私鑰KD-1,并通過設(shè)備私鑰KD-1解密KD(SN,PW,i),獲取SN、PW和隨機(jī)數(shù)i,核對(duì)SN、PW完成對(duì)DN身份認(rèn)證。
◆S計(jì)算生成本輪與DN通信的會(huì)話密鑰KiSD= Hi (SN⊕PW)。
對(duì)設(shè)備之間認(rèn)證過程如圖2所示:
(3)設(shè)備對(duì)服務(wù)器的認(rèn)證過程
◆S通過私鑰KS-1加密KiSD并下發(fā)至DN,即下發(fā)給DN信息為KS-1(KiSD);
◆DN收到KS-1(KiSD)后,通過保存的S公鑰KS解密KS(KS-1(KiSD))=KiSD,獲取到KiSD;
◆DN計(jì)算Hi(SN⊕PW),判斷結(jié)果是否與KiSD相對(duì),若相等,則完成對(duì)S身份認(rèn)證,不相等則中斷通信;
◆S與DN通過新協(xié)商的會(huì)話密鑰KiSD進(jìn)行通信信道加密。
設(shè)備對(duì)服務(wù)器的認(rèn)證過如圖3所示:
(4)設(shè)備之間的會(huì)話密鑰協(xié)商過程(如圖4)
◆D1完成與S的雙向認(rèn)證;
◆D2完成與S的雙向認(rèn)證;
◆D1通過S請(qǐng)求與D2通信;
◆S使用D1的設(shè)備編號(hào)SN1、設(shè)備認(rèn)證密碼PW1,D2的設(shè)備編號(hào)SN2、設(shè)備認(rèn)證密碼PW2以及隨機(jī)數(shù)i,計(jì)算D1與D2的共享會(huì)話密鑰: ? KDD=Hi(SN1⊕PW1⊕SN2⊕PW2);
◆通過與D1、D2各自協(xié)商的會(huì)話密鑰加密KDD,并分發(fā)給D1、D2;
◆D1、D2分別通過各自會(huì)話密鑰解密獲取KDD。
◆D1、D2通過會(huì)話密鑰KDD進(jìn)行通信信道加密。
4 ? 安全性驗(yàn)證
本文使用BAN邏輯[6]對(duì)所提方案進(jìn)行形式化分析驗(yàn)證,BAN邏輯是最為廣泛使用的安全協(xié)議形式化分析驗(yàn)證方法。這種分析方法在對(duì)安全協(xié)議,尤其是認(rèn)證方案的分析中起著重要的作用[7]。
4.1 ?BAN邏輯語法
P,Q:通信主體;X:通信數(shù)據(jù);K:密鑰;P|≡X:P相信X的內(nèi)容是真實(shí)有效的;P 4.2 ?BAN邏輯驗(yàn)證 方案初始化假設(shè): ◆,即S相信KSD是S與D之間的共享密鑰; ◆,即D相信KSD是S與D之間的共享密鑰; ◆,即KD是D的公鑰; ◆,即KS是S的公鑰; ◆,即S相信KD是D的真實(shí)有效公鑰; ◆,即D相信KS是S的真實(shí)有效公鑰; ◆,即D相信i是新鮮的; ◆,即D對(duì)i的新鮮性有控制權(quán); ◆,即S對(duì)S與D之間的第i輪通信共享密鑰KiSD有控制權(quán)。 (1)對(duì)客戶端的認(rèn)證 根據(jù)BAN邏輯的消息含義規(guī)則中關(guān)于公開密鑰的推斷,即: S相信KD是D的公鑰,KD-1是D的私鑰,那么當(dāng)S收到D公鑰加密的消息,則能夠判定消息是D發(fā)送的,實(shí)現(xiàn)S對(duì)D的身份認(rèn)證。 (2)對(duì)服務(wù)器的認(rèn)證 根據(jù)BAN邏輯的消息含義規(guī)則中關(guān)于公開密鑰的推斷,即: D相信KS是S的公鑰,那么當(dāng)D收到S公鑰加密的消息,則能夠判定消息是S發(fā)送的,實(shí)現(xiàn)D對(duì)S的身份認(rèn)證。 (3)服務(wù)器與設(shè)備會(huì)話密鑰新鮮性 根據(jù)BAN邏輯的管轄權(quán)規(guī)則,即: S相信D對(duì)i的新鮮性有控制權(quán),且S相信D也相信i是新的,則S相信i是新的。 根據(jù)BAN邏輯的新鮮性規(guī)則,即: 由于KiSD=Hi(SN⊕PW),所以: S相信i是新的,則S相信和i級(jí)聯(lián)的整體信息也是新的,即S相信KiSD的新鮮性。同理,D相信KiSD的新鮮性。 (4)服務(wù)器與設(shè)備會(huì)話密鑰協(xié)商 根據(jù)BAN邏輯的管轄權(quán)規(guī)則的推斷,即: D相信S對(duì)S與D之間的共享密鑰KiSD有控制權(quán),且D相信S相信KiSD是S與D之間的共享密鑰,那么當(dāng)D相信KiSD是S與D之間的共享密鑰。此過程完成服務(wù)器與設(shè)備的共享會(huì)話密鑰協(xié)商。 (5)設(shè)備之間會(huì)話密鑰協(xié)商 根據(jù)BAN邏輯的管轄權(quán)規(guī)則的推斷,即: D1相信S對(duì)D1與D2的共享密鑰KDD有控制權(quán),且D1相信S也相信KDD是D1與D2的共享密鑰,則D1相信KDD是D1與D2的共享密鑰。同理,則D2相信KDD是D1與D2的共享密鑰。 (6)設(shè)備之間會(huì)話密鑰新鮮性 根據(jù)BAN邏輯的管轄權(quán)規(guī)則的推斷,即: D1相信S對(duì)D1與D2的會(huì)話密鑰KDD的新鮮性有控制權(quán),且D1相信S也相信D1與D2的會(huì)話密鑰KDD是新的,則D1相信KDD是新的。同理,D2相信KDD是新的。 通過BAN邏輯形式化分析,結(jié)果顯示,新方案可實(shí)現(xiàn)到以下目標(biāo): ◆實(shí)現(xiàn)服務(wù)器與設(shè)備之間的雙向認(rèn)證; ◆實(shí)現(xiàn)設(shè)備與設(shè)備之間的雙向認(rèn)證; ◆實(shí)現(xiàn)服務(wù)器與設(shè)備之間的會(huì)話密鑰協(xié)商; ◆實(shí)現(xiàn)服務(wù)器與設(shè)備之間的會(huì)話密鑰可變性及新鮮性; ◆實(shí)現(xiàn)設(shè)備之間會(huì)話密鑰可變性及新鮮性;