曹 陽
(陜西理工大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,陜西 漢中 723000)
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,網(wǎng)絡(luò)已經(jīng)融入到人們生活的各方面,安全問題日益凸顯,密鑰協(xié)商協(xié)議的提出就是為用戶在公開信道上交換信息提供數(shù)據(jù)傳輸?shù)陌踩约氨C苄?。Diffie-Hellman[1]于1976年首次提出了密鑰協(xié)商的概念。由于混沌映射的半群性質(zhì)及其良好的密碼特性與計(jì)算性能,基于切比雪夫多項(xiàng)式的混沌映射廣泛應(yīng)用于密鑰協(xié)商[2-4]中。近年來,研究者針對密鑰協(xié)商的安全性,基于切比雪夫多項(xiàng)式的混沌映射提出了大量的三方認(rèn)證密鑰協(xié)商協(xié)議[5-13]:Wang Xing-yuan等[5]提出了一種協(xié)商協(xié)議,但該協(xié)議被E.Yoon等[6]指出是不安全的,存在時(shí)間戳、攻擊者篡改傳輸消息不被發(fā)現(xiàn)等缺陷;Lai Hong等[7]提出了一個(gè)協(xié)商協(xié)議,但該協(xié)議被Zhao Feng-jun等[8]所提出的新的三方密鑰協(xié)商協(xié)議指出存在重放攻擊、密鑰猜測攻擊和不能抵抗內(nèi)部攻擊等缺陷;李雄等[9]提出的三方認(rèn)證密鑰協(xié)商協(xié)議指出Zhao Feng-jun等[8]的協(xié)議不能真正實(shí)現(xiàn)用戶與服務(wù)器之間的相互認(rèn)證及存在時(shí)間戳等缺陷;M.Farash等[10]提出了一個(gè)高效安全的三方認(rèn)證協(xié)議,該協(xié)議雖然沒有使用對稱、非對稱加密,但計(jì)算量大,不能抵抗重放攻擊和假冒攻擊;Q.Xie等[11]提出了三方口令認(rèn)證密鑰協(xié)商協(xié)議,但該協(xié)議用戶不能變更自己的密鑰,用戶必須與服務(wù)器共享密鑰才能完成認(rèn)證與密鑰協(xié)商;T.F.Lee[12]提出的口令認(rèn)證密鑰協(xié)商協(xié)議被王彩芬等[13]指出存在內(nèi)部攻擊、不能進(jìn)行口令更新,且該協(xié)議只適用于用戶和服務(wù)器之間的通信。受上述文獻(xiàn)的啟發(fā),加之混沌密碼學(xué)具有較高的安全性和較低的計(jì)算復(fù)雜度,本文基于混沌映射,針對身份認(rèn)證密鑰協(xié)商中的安全性問題,提出了一種基于擴(kuò)展混沌映射動(dòng)態(tài)身份三方認(rèn)證密鑰協(xié)商協(xié)議。
定義1切比雪夫多項(xiàng)式[14]
設(shè)n為整數(shù),x為區(qū)間[-1,1]上的變量,即x∈[-1,1],n維切比雪夫多項(xiàng)式Tn(x)[14]定義為
Tn(x)=cos(n×arccos(x))
(1)
由定義1知,切比雪夫多項(xiàng)式等價(jià)遞歸定義[14]為
Tn(x)=2xTn-1(x)-Tn-2(x)
(2)
其中n≥2,T0(x)=1,T1(x)=x。
性質(zhì)1半群性質(zhì)[15]
Tr(Ts(x))=Trs(s)=Tsr(x)=Ts(Tr(x)),r,s∈N;x∈[-1,1]
(3)
Zhang[16]2008年證明了在區(qū)間[-∞,+∞]上,切比雪夫多項(xiàng)式仍然具有半群性質(zhì)。
定義2擴(kuò)展切比雪夫多項(xiàng)式
設(shè)n為整數(shù),x為區(qū)間[-∞,+∞]上的變量,即x∈[-∞,+∞],n維擴(kuò)展切比雪夫多項(xiàng)式Tn(x)定義[16]為
Tn(x)=cos(n×arccos(x))modp
(4)
由定義2知,擴(kuò)展切比雪夫多項(xiàng)式等價(jià)遞歸定義[16]為
Tn(x)=(2xTn-1(x)-Tn-2(x))modp
(5)
其中n≥2,T0(x)=1,T1(x)=x,p為大素?cái)?shù)。
顯然,
Tr(Ts(x))=Trs(x)=Tsr(x)=Ts(Tr(x))modp
(6)
設(shè)多項(xiàng)式時(shí)間內(nèi)求解以下問題是困難的[16]:
定義3離散對數(shù)問題[16]
給定參數(shù)x,p,及y=Tr(x)modp,找到一個(gè)正整數(shù)r,使Tr(x)modp≡y幾乎是不可能的。
定義4Diffie-Hellman問題[16]
給定Tr(x)modp,Ts(x)modp及參數(shù)p和x,找到一個(gè)正整數(shù)y,使Trs(x)modp≡y幾乎是不可能的。
協(xié)議中包含一個(gè)可信服務(wù)器S,密鑰協(xié)商用戶Ui、Uj。Ui、Uj需在服務(wù)器S的協(xié)助下才能協(xié)商出一個(gè)安全的會(huì)話密鑰。隨機(jī)數(shù)由隨機(jī)數(shù)發(fā)生器生成,用戶每次利用隨機(jī)數(shù)發(fā)生器生成的隨機(jī)數(shù)都比前一次生成的隨機(jī)數(shù)值大,目的是抵抗重放攻擊。協(xié)議主要包括注冊、密鑰協(xié)商、密鑰更新3個(gè)階段。協(xié)議運(yùn)行前,服務(wù)器生成基本參數(shù):大素?cái)?shù)p,哈希函數(shù)h(),服務(wù)器主密鑰s,實(shí)數(shù)z∈[-∞,+∞]。協(xié)議中的主要符號(hào)如表1所示。
表1 協(xié)議中的主要符號(hào)說明Table 1 Main symbol description of protocol
a.用戶Ui利用隨機(jī)數(shù)發(fā)生器生成一個(gè)高熵隨機(jī)數(shù)Ri,輸入自己的身份IDi、密鑰PWi,計(jì)算gi=h(PWi||Ri),并通過安全信道將(IDi,gi)發(fā)送給服務(wù)器S。
b.服務(wù)器S收到 (IDi,gi)后,計(jì)算UIDi=h(IDi),并在用戶列表中查找UIDi。若找到則說明該IDi已經(jīng)被注冊,拒絕用戶的注冊請求,并提示用戶選取新的身份重新注冊;否則,利用隨機(jī)數(shù)生成器生成隨機(jī)數(shù)ki,計(jì)算Vi=h(UIDi||s),ei=Vi⊕h(gi||IDi),CIDi0=h(UIDi||ki),SV=Ts(z)modp,將(UIDi,CIDi0)添加到用戶列表,并將(CIDi0,h(),ei,SV,p,z)存入智能卡SC,最后將SC通過安全信道發(fā)送給用戶Ui。
c.用戶Ui收到智能卡SC后,輸入IDi,PWi,計(jì)算Ei=h(IDi||PWi||gi)(ei⊕h(gi||IDi),Ki=h(IDi||PWi||Ei),用Ei替換SC中的ei,并將Ki和Ri存入SC中。注冊過程如圖1所示。
圖1 用戶注冊過程Fig.1 User registration process
設(shè)用戶Ui和Uj進(jìn)行通信,密鑰協(xié)商執(zhí)行如下操作
c.S收到消息{CIDi0,CIDj0,C1,d1,R1,C3,d2,R2}后,首先在用戶數(shù)據(jù)庫中查找CIDi0和CIDj0,若找不到則拒絕用戶登錄請求,否則取出CIDi0對應(yīng)的UIDi′,CIDj0對應(yīng)的UIDj′,計(jì)算Vi′=h(UIDi′||s),Vj′=h(UIDj′||s),
C2′=Ts(C1)modp=Ts(Tx(z))modp
=Tx(Ts(z))modp=Tx(SV)modp,
C4′=Ts(C3)modp=Ts(Ty(z))modp
e.S收到消息d5、d6后,計(jì)算d5′=h(CIDi0||CIDi1||Vi′||R1),d6′=h(CIDj0||CIDj1||Vj′||R2),若等式d5′=d5和d6′=d6成立,則將用戶數(shù)據(jù)庫中的CIDi0更新為CIDi1,CIDj0更新為CIDj1。密鑰協(xié)商過程如圖2所示。
圖2 密鑰協(xié)商過程Fig.2 Key agreement process
假設(shè)1協(xié)議中使用的哈希函數(shù)h()、服務(wù)器的主密鑰s是安全的。也就是說攻擊者在多項(xiàng)式時(shí)間內(nèi)解決這些問題是不可能的。
假設(shè)2攻擊者已鎖定目標(biāo)用戶,并能在安全信道上截取目標(biāo)用戶與服務(wù)器之間、目標(biāo)用戶之間的通信信息,否則由于用戶每次登錄的身份不同,使得攻擊者即使得到了相關(guān)信息,攻擊都是無效的。
a.用戶匿名性
b.提供相互認(rèn)證
c.抗密鑰猜測攻擊
協(xié)議中,如果攻擊者截獲了服務(wù)器S與用戶Ui之間傳遞的信息,則他可以發(fā)起密鑰猜測攻擊。根據(jù)SK=Tx(C3)modp=Tx(Ty(z))modp=Txy(z)modp、{UIDj,C3,d3,CIDi1}知,x是用戶選取的隨機(jī)數(shù),y并沒有包含在傳遞信息{UIDj,C3,d3,CIDi1}中,而是隱藏在C3中;即使攻擊者獲得了用戶Ui與服務(wù)器S之間傳遞的信息,由擴(kuò)展切比雪夫多項(xiàng)式的離散對數(shù)問題及Diffie-Hellman問題知,攻擊者無法獲得x、y,也就無法計(jì)算出會(huì)話密鑰。
d.抗冒充攻擊
協(xié)議中,用戶登錄、密鑰協(xié)商的身份是動(dòng)態(tài)身份,且每次認(rèn)證成功后都會(huì)修改下次登錄的身份。如果攻擊者重放以前或本次經(jīng)過雙方認(rèn)證后的消息,則很容易被服務(wù)器S識(shí)破。
1)假設(shè)攻擊者冒充用戶Uj,嘗試構(gòu)造消息{CIDi0,CIDj0,C1,d1,R1,C3,d2,R2},由于上次用戶密鑰協(xié)商后,服務(wù)器S已經(jīng)更新了用戶下次登錄的動(dòng)態(tài)身份CIDi0為CIDi1、CIDj0為CIDj1,服務(wù)器S在用戶數(shù)據(jù)庫中查找,找不到CIDi0、CIDj0而拒絕登錄請求,攻擊者冒充用戶失敗。
2)假設(shè)攻擊者冒充服務(wù)器嘗試構(gòu)造消息{UIDj,C3,d3,CIDi1}、{UIDi,C1,d4,CIDj1}發(fā)送給用戶。當(dāng)用戶收到消息后,將計(jì)算d3′、d4′來實(shí)現(xiàn)對服務(wù)器的認(rèn)證。由d3=h(UIDj||C2||C3||R1||CIDi1)、d4=h(UIDi||C1||C4||R2||CIDj1)知,d3、d4中含有隨機(jī)數(shù),而用戶每次登錄時(shí)選擇的隨機(jī)數(shù)不同,攻擊者無法通過用戶的認(rèn)證。
e.抗重放攻擊
1)假設(shè)攻擊者冒充用戶Uj成功重放消息{CIDi0,CIDj0,C1,d1,R1,C3,d2,R2},即攻擊者通過了服務(wù)器S的認(rèn)證,并將消息{UIDj,C3,d3,CIDi1}發(fā)送給Ui、{UIDi,C1,d4,CIDj1}發(fā)送給攻擊者。由C1=Tx(z)modp、C3=Ty(z)modp、SK=Tx(Ty(z))modp=Txy(z)modp知,攻擊者要想計(jì)算出正確的會(huì)話密鑰,他必須知道Tx、Ty,而x和y都是用戶選取的隨機(jī)數(shù),在不知道隨機(jī)數(shù)x和y的情況下,攻擊者計(jì)算必須面臨擴(kuò)展切比雪夫多項(xiàng)式離散對數(shù)問題和Diffie-Hellman問題,所以攻擊無法成功。
3)假設(shè)攻擊者截取了服務(wù)器S發(fā)送給用戶Ui的消息{UIDj,C3,d3,CIDi1},然后重放消息{UIDj,C3,d3,CIDi1}。由C3=Ty(z)modp、d3=h(UIDj||C2||C3||R1||CIDi1)、SK=Tx(C3)modp=Tx(Ty(z))modp=Txy(z)modp知,攻擊者必須知道用戶Ui已有的C2、R1才能確認(rèn)用戶Uj的身份,同時(shí)他還必須知道隨機(jī)數(shù)x和y,才能計(jì)算出會(huì)話密鑰SK,所以攻擊不會(huì)成功。
f.抗竊取智能卡攻擊
假設(shè)攻擊者竊取到合法用戶智能卡中存儲(chǔ)的信息(CIDi0,h(),Ei,SV,p,z,Ki,Ri},但當(dāng)他想冒充合法用戶與其他用戶進(jìn)行密鑰協(xié)商時(shí),他必須輸入正確的身份和密鑰,由智能卡計(jì)算Ki′,并與智能卡中Ki相比較,只有比較相等,智能卡才會(huì)繼續(xù)計(jì)算相關(guān)信息,執(zhí)行密鑰協(xié)商協(xié)議。由于攻擊者無法輸入正確的用戶身份和密鑰,所以即使竊取了智能卡的信息,也無法冒充合法用戶。
g.抗已知會(huì)話密鑰攻擊
由2.2節(jié)密鑰協(xié)商知,會(huì)話密鑰SK=Tx(Ty(z))modp=Txy(z)modp,其中x、y是每次密鑰協(xié)商時(shí)用戶選取的隨機(jī)數(shù),攻擊者即使知道了上次會(huì)話密鑰,也無法推斷出本次會(huì)話密鑰,即已知會(huì)話密鑰攻擊失敗。
h.完美前向安全性
協(xié)議中,雙方協(xié)商會(huì)話密鑰為SK=Tx(C3)modp=Ty(C1)modp=Txy(z)modp。設(shè)攻擊者通過公開信道獲取了C1、C3,且知道Tx、Ty。若攻擊者想從Tx、Ty計(jì)算出x、y,則面臨擴(kuò)展切比雪夫多項(xiàng)式離散對數(shù)問題;若攻擊者直接由Tx、Ty計(jì)算出Txy,則面臨擴(kuò)展切比雪夫多項(xiàng)式Diffie-Hellman問題。所以本協(xié)議的會(huì)話密鑰具有完美前向安全性。
i.抗內(nèi)部攻擊
實(shí)際應(yīng)用中,用戶可能會(huì)使用同一個(gè)身份及密鑰與不同的服務(wù)器間進(jìn)行交互,那么用戶的身份及密鑰存在可能被內(nèi)部人員利用的風(fēng)險(xiǎn)。本協(xié)議中,用戶注冊時(shí)傳遞的信息不是直接發(fā)送的,而發(fā)送的是(IDi,gi),gi=h(PWi||Ri),即通過哈希函數(shù)和隨機(jī)數(shù)將用戶的密鑰進(jìn)行隱藏,對任何內(nèi)部人員,gi只是一個(gè)哈希函數(shù)值,所以本協(xié)議可以抵抗內(nèi)部攻擊。
根據(jù)以上的安全性分析結(jié)果,下面從用戶匿名性、抗冒充攻擊、抗重放攻擊、相互認(rèn)證、抗內(nèi)部攻擊、抗已知會(huì)話密鑰攻擊、抗密鑰猜測攻擊、抗竊取智能卡攻擊、完美前向安全性、系統(tǒng)主密鑰更新等方面與文獻(xiàn)[5,7-8,10-11]進(jìn)行安全性比較。安全性比較結(jié)果如表2所示,其中“Y”表示具備該安全性,“N”表示不具備該安全性。
表2 安全性比較Table 2 Security comparison
表3列舉了本協(xié)議與文獻(xiàn)[5,7-8,10-11]計(jì)算效率的比較結(jié)果,其中tC表示執(zhí)行一次切比雪夫多項(xiàng)式所需的時(shí)間,tH表示執(zhí)行一次哈希函數(shù)所需的時(shí)間,tS表示執(zhí)行加/解密所需的時(shí)間。協(xié)議中由于異或運(yùn)算的計(jì)算量較少,在進(jìn)行計(jì)算量比較時(shí)忽略不計(jì)。
表3 計(jì)算效率比較Table 3 Comparison of computational efficiency
由于協(xié)議中主要運(yùn)算在密鑰協(xié)商階段,所以表中對密鑰協(xié)商階段計(jì)算效率進(jìn)行比較。由文獻(xiàn)[17-18]知,tC≈2.5tH,tC≈70tS≈175tH。在3.2 GHz處理器3.0 G RAM環(huán)境下,tH的執(zhí)行時(shí)間為0.2 ms。從表3比較結(jié)果可以看出,本協(xié)議計(jì)算執(zhí)行時(shí)間需要283.6 ms,計(jì)算效率明顯優(yōu)于文獻(xiàn)[5,8,11],與文獻(xiàn)[7,10]相當(dāng)。但本協(xié)議不存在加密/解密算法,不存在時(shí)間戳,且只有服務(wù)器和用戶之間相互認(rèn)證后,才更新用戶的身份,所以安全性更高。
本文基于混沌映射的半群性質(zhì)及其良好的密碼特性,提出了基于動(dòng)態(tài)身份可認(rèn)證的密鑰協(xié)商協(xié)議。密鑰協(xié)商用戶每次登錄認(rèn)證的身份都不同,并在可信的第三方服務(wù)器的幫助下實(shí)現(xiàn)了用戶間的雙向認(rèn)證和密鑰共享功能。通過用戶密鑰和系統(tǒng)主密鑰便捷的更新方法增強(qiáng)了協(xié)議的安全性。從安全性和性能分析,及其與相關(guān)文獻(xiàn)的比較結(jié)果可以看出,本文的協(xié)議具有較高的計(jì)算性能,能抵抗常見攻擊,具有完美的前向安全性。因此,該協(xié)議更適用于網(wǎng)絡(luò)受限的實(shí)際應(yīng)用環(huán)境。