国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

無雙線性對(duì)的無證書組密鑰協(xié)商協(xié)議的安全性分析及改進(jìn)

2020-07-14 02:50:12張金輝黃加成梁紅梅李慧敏
關(guān)鍵詞:私鑰公鑰群組

張金輝 黃加成 梁紅梅 李慧敏

1(應(yīng)用數(shù)學(xué)福建省高校重點(diǎn)實(shí)驗(yàn)室 福建 莆田 351100)2(莆田學(xué)院數(shù)學(xué)與金融學(xué)院 福建 莆田 351100)3(閩南師范大學(xué)數(shù)學(xué)與統(tǒng)計(jì)學(xué)院 福建 漳州 363000)

0 引 言

在傳統(tǒng)的公鑰密碼系統(tǒng)中,用戶的公鑰是通過公鑰基礎(chǔ)設(shè)施PKI頒發(fā)證書來認(rèn)證的,由此出現(xiàn)了公鑰證書的管理、存儲(chǔ)、發(fā)布、驗(yàn)證等問題[1]。為了簡(jiǎn)化證書的管理等問題,1984年,Shamir[2]首次提出了基于身份的公鑰密碼體制,在該體制中使用能夠唯一識(shí)別該用戶身份的公開信息來作為用戶的公鑰,這樣用戶的公鑰就不再需要PKI頒發(fā)證書認(rèn)證,從而降低了PKI的證書管理等問題的復(fù)雜性。但是,在基于身份的公鑰密碼體制中,用戶的私鑰完全由KGC產(chǎn)生,使得基于身份的公鑰密碼體制存在密鑰托管這一新問題。為了解決該問題,Al-Riyami等[3]在2003年的亞洲密碼學(xué)會(huì)議上首次引入了無證書公鑰密碼學(xué)概念,解決了基于身份公鑰密碼學(xué)中存在的用戶密鑰托管問題,也解決了PKI中存在的證書管理問題。

在無證書認(rèn)證動(dòng)態(tài)群組密鑰協(xié)商協(xié)議中,對(duì)于動(dòng)態(tài)群組中人員的變動(dòng)后組密鑰的更新總是困難的。伍前紅等[4]提出針對(duì)基于ASGKA(Asymmetric Group Key Agreement)協(xié)議,允許成員的離開和加入,且高效地完成了密鑰的及時(shí)更新。但是由于群成員可能來自不同的時(shí)區(qū)、領(lǐng)域、網(wǎng)絡(luò)類型,而ASGKA不能滿足該需求。張啟坤等[5]提出基于身份的可認(rèn)證非對(duì)稱群群組密鑰協(xié)商協(xié)議(Identity-Base authenticated Asymmetric Group Key Agreement,IB-AAGKA)解決了群成員因各種差異不能保持多輪在線密鑰協(xié)商問題和實(shí)現(xiàn)匿名與可認(rèn)證性并且支持節(jié)點(diǎn)的動(dòng)態(tài)群組密鑰更新的問題。由于是基于身份的公鑰密碼體制,存在密鑰的托管問題,陳若昕等[6]提出無證書非對(duì)稱群密鑰協(xié)商協(xié)議,實(shí)現(xiàn)了對(duì)于群成員公開信息認(rèn)證的同時(shí)又認(rèn)證了其身份,保證了成員的安全通信,提高了效率?,F(xiàn)今隨著網(wǎng)絡(luò)計(jì)算、即時(shí)通信、對(duì)等網(wǎng)絡(luò)數(shù)據(jù)共享愈加重要,在這類通信中兩方密鑰協(xié)商協(xié)議顯得非常重要[7-11]。但是,對(duì)于三方以上的秘密通信問題,學(xué)者們提出了組密鑰協(xié)商協(xié)議[12-15]。最近,Kumar A和Tripathi S提出了一個(gè)無雙線性對(duì)的匿名無證書動(dòng)態(tài)群組密鑰協(xié)商協(xié)議[13]。經(jīng)過分析發(fā)現(xiàn),該群組密鑰協(xié)商協(xié)議是不安全的。本文指出了該協(xié)議存在的安全問題,并給出了具體的攻擊方法,最后給出了應(yīng)對(duì)該攻擊的改進(jìn)方法。

1 預(yù)備知識(shí)

1.1 雙線性對(duì)運(yùn)算及其性質(zhì)

設(shè)G1為p階加法循環(huán)群且P是它的一個(gè)生成元,G2為p階乘法循環(huán)群,若映射e:G1×G1→G2滿足下面三條性質(zhì),則稱為雙線性對(duì)運(yùn)算。

(2) 非退化性:存在P∈G1,使得e(P,P)≠1G2,其中1G2表示群G2是單位元。

(3) 高效性:對(duì)于任意P,Q∈G,都存在有效的算法計(jì)算e(P,Q)。

1.2 困難性假設(shè)

1.3 符號(hào)說明

表1為本文用到的一些符號(hào)。

表1 符號(hào)說明表

2 組密鑰協(xié)商協(xié)議

2.1 生成公鑰與私鑰

(1) KGC選擇安全參數(shù)k∈Z+并執(zhí)行以下操作:

① 選擇一個(gè)k位素?cái)?shù)p,并確定出{Fp,G,P}。

③ 對(duì)于安全參數(shù)k,KGC會(huì)選擇兩個(gè)安全Hash函數(shù)作為秘密值:

H2:G×G→{0,1}k

④ KGC發(fā)布{Fp,G,P,Ppub,H1,H2}作為系統(tǒng)參數(shù),然后秘密保存主私鑰s。

(2) KGC為用戶頒布部分私鑰Di,具體算法如下:

Ri=riP,hi=H1(IDi‖Ri‖Qi)

Si=(ri+shi)modp

KGC通過安全的信道向用戶Ui頒發(fā)用戶的部分私鑰Di=。

在收到KGC的部分私鑰Di后,用戶Ui可以通過下列的等式來驗(yàn)證:

Ri+Hi(IDi‖Ri‖Qi)Ppub=SiP

如果等式成立則部分私鑰有效,反之無效。

(4) 用戶IDi將SKi=作為其完整私鑰。

(5) 設(shè)置公鑰,計(jì)算Pi=(xi+Si)P,Qi=xiP,用戶IDi的公鑰為PKi=。

2.2 成員匿名身份的注冊(cè)

(1) 每個(gè)用戶按照下列步驟執(zhí)行:

① 用戶選擇一個(gè)臨時(shí)身份TIDi。

③ 用戶Ui向KGC發(fā)送以下信息:;其中{Ti,TIDi,Qi}_Kix表示通過密鑰Kix并使用對(duì)稱密鑰算法對(duì)數(shù)據(jù){Ti,TIDi,Qi}進(jìn)行加密。

(2) 在接收到來自每個(gè)用戶Ui的上述消息時(shí),KGC執(zhí)行以下操作:

① 計(jì)算Ki=sTi=(Kix,Kiy),1≤i≤n。

② 使用Kix對(duì)來自Ui的消息進(jìn)行解密得到Ti的值。

③ KGC驗(yàn)證解密的Ti是否與從Ui接收到的Ti相同;如果驗(yàn)證成功,則執(zhí)行后面的操作,否則拒絕。

④ KGC計(jì)算hti=H1(TIDi),Sti=(ri+shti)modp,1≤i≤n。

⑤ KGC向每個(gè)使用Kix加密的用戶發(fā)送以下內(nèi)容:

{Sti‖ht1‖Q1‖ht2‖Q2‖…‖htn‖Qn}_kix

2.3 密鑰的協(xié)商

(1)Ui首先解密從KGC收到的消息并獲得它們的臨時(shí)部分密鑰Sti,TIDj的哈希值和其他成員的公開密鑰Qj(1≤j≤n),Ui也可以在列表中找到自己的位置,并根據(jù)列表中的位置設(shè)置下標(biāo)。

(3)Ui將發(fā)送給它的兩個(gè)相鄰的Ui-1和Ui+1,Ui也從Ui-1和Ui+1接收相似的數(shù)據(jù)。在接收到數(shù)據(jù)之后,Ui首先匹配hti的值驗(yàn)證它們的下標(biāo)是否與自己相鄰,驗(yàn)證成功之后,Ui計(jì)算如下:

①Ki,i+1=(xi+Sti)Wi+1+wi(Qi+1+Ri+1+ht(i+1)Ppub);

④Ki,i-1=(xi+Sti)Wi-1+wi(Qi-1+Ri-1+ht(i-1)Ppub);

接著每個(gè)用戶都將它們的Xi傳播給群組中的其他用戶,在得到所有Xj(j≠i)之后,Ui首先驗(yàn)證收到的消息如下:X1⊕X2⊕…⊕Xn=0。

最后每個(gè)用戶的組會(huì)話密鑰計(jì)算為:

2.4 成員的加入

假設(shè)新用戶{Un+1,Un+2,…,Um}想要加入現(xiàn)有的組{U1,U2,…,Un},則步驟如下:

(1) 從{U1,U2,…,Un}選擇出兩個(gè)用戶U1和Un,重新選擇秘密值x1和xn,更新它們的公私鑰。此時(shí)的分組情況為{U1,U2,…,Un}與{U1,Un+1,Un+2,…,Um,Un}。

(3) 重復(fù)密鑰協(xié)商階段后與第一組{U1,U2,…,Un}得出密鑰SK1與第二組{U1,Un+1,Un+2,…,Um,Un}得出密鑰SK2。

(4)U1和Un把密鑰SK1發(fā)送給第二組的其余成員{Un+1,Un+2,…,Um},把SK2發(fā)送給第一組的其他成員{U2,…,Un-1}。

(5) 把兩組合并為{U1,U2,…,Un,Un+1,Un+2,…,Um},此時(shí)新的組密鑰為SKnew=H1(SK1‖SK2)。

2.5 群成員的離開

假設(shè)U={U1,U2,…,Un}是當(dāng)前組,并且L={Ul1,Ul2,…,Uln}是離開成員的集合,其中{l1,l2,…,ln}∈{1,2,…,n},此時(shí)我們將剩下的成員集合表示為:

A={Ua1,Ua2,…,Ua(n-n′)}=U-Ln>n′

令Ua1∈A作為離開管理員,用Ua1的臨時(shí)身份將所有離開成員L的hti傳播給A。該操作步驟如下:

(2) 若成員Uk∈A,且其相鄰的成員沒有改變,就什么都不做,只是簡(jiǎn)單地傳播它們之前已計(jì)算好的Xk作為新的Xnewk即(Xnewk=Xk),然后再傳播給A。

(3) 每個(gè)成員Ui∈A在接收到所有的Xnewj(j≠i)后驗(yàn)證:

Xnewa1⊕Xnewa2⊕…⊕Xnewa(n-n′)=0

3 組密鑰協(xié)商協(xié)議的安全性分析

本節(jié)對(duì)文獻(xiàn)[13]中的密鑰協(xié)商協(xié)議進(jìn)行分析,指出攻擊者無須知道用戶的私鑰即可以繞過KGC的身份驗(yàn)證,從而假冒用戶參與組密鑰的協(xié)商,盜取組密鑰。

3.1 偽裝用戶

式中:Ppub為群成員Ui的公鑰。

(3) 攻擊者向KGC發(fā)送以下信息:

3.2 進(jìn)行驗(yàn)證

在接收到來自攻擊者的上述消息時(shí),KGC會(huì)執(zhí)行以下操作:

(2) 使用Kix對(duì)來自Ui的消息進(jìn)行解密得到Ti的值,所以得到的Kix可以成功地解密得到{Ti,TIDi,Qi}。

(4) 現(xiàn)在KGC計(jì)算如下:

hti=H1(TIDi)

Sti=(ri+s.hti)modp1≤i≤n

(5) KGC向每個(gè)使用Kix加密的用戶發(fā)送以下內(nèi)容:{Sti‖ht1‖Q1‖ht2‖Q2‖…‖htn‖Qn}_kix。

3.3 盜取密鑰

(1) 在驗(yàn)證成功之后攻擊者計(jì)算如下:

①Ki,i+1=(xi+Sti)Wi+1+wi(Qi+1+Ri+1+ht(i+1)Ppub);

④Ki,i-1=(xi+Sti)Wi-1+wi(Qi-1+Ri-1+ht(i-1)Ppub);

(2) 由于每個(gè)用戶也會(huì)把它們的Xi傳播給群組中的其他用戶,則攻擊者可以得到所有Xi,接收到消息之后,驗(yàn)證等式是否成立:X1⊕X2⊕…⊕Xn=0。

在成功驗(yàn)證后,攻擊者就可以通過上述數(shù)據(jù)計(jì)算:

通過上述分析可知,攻擊者可以成功繞過KGC的驗(yàn)證,從而偽裝某個(gè)用戶潛入進(jìn)行組密鑰的協(xié)商。因此,文獻(xiàn)[13]中的組密鑰協(xié)商協(xié)議是不安全的。

4 組密鑰協(xié)商協(xié)議的改進(jìn)

上述攻擊成功的原因是KGC在用戶匿名身份的注冊(cè)中無法證實(shí)用戶的真實(shí)身份。針對(duì)這個(gè)問題,下面給出兩種改進(jìn)方法,使得KGC可以確信用戶的真實(shí)身份。這里采用和文獻(xiàn)[13]一樣的系統(tǒng)參數(shù)。

4.1 改進(jìn)方法一

(1) 讓用戶選擇一個(gè)臨時(shí)身份TIDi并且隨機(jī)選擇ti∈RZp*,計(jì)算如下:

Ti=tiP,Ki=tiPpub=(Kix,Kiy)

(2) 計(jì)算完成之后Ui向KGC發(fā)送以下信息:

}_Kix>

(3) KGC接收到Ui信息后可計(jì)算Ki=sTi=(Kix,Kiy)得到Kix(因?yàn)閠iPpub=tisP=sTi)。

(4) KGC根據(jù)Kix解密得到{Ti,TIDi,Qi,}。

(6) KGC根據(jù)Kix解密得到的驗(yàn)證是否與之前KGC發(fā)送給用戶的一致,驗(yàn)證等式是否成立:SiP=Ri+hiPpub,其中hi=H1(IDi‖Ri‖Qi)。

顯然,由于用戶的部分私鑰是KGC為其生成并且通過安全信道發(fā)送給用戶的,即用戶的部分私鑰只有用戶和KGC擁有。攻擊者若想要替換用戶的公鑰,還需要生成和用戶身份及新公鑰一致的部分私鑰,就必須從Ri=riP,hi=H1(IDi‖Ri‖Qi),Si=(ri+shi)modp中獲得主私鑰s才可以做到,這是求離散對(duì)數(shù)困難問題,所以該改進(jìn)方法是可行的。

4.2 改進(jìn)方法二

改進(jìn)方法一是把用于用戶的部分私鑰直接作為被加密的內(nèi)容進(jìn)行傳送,雖然是用加密的方式傳輸,但若在數(shù)據(jù)的解密過程中使用不當(dāng),容易導(dǎo)致用戶私鑰的泄露。所以這里采用數(shù)字簽名的方法加以改進(jìn),具體如下:

(1)Ti=tiP;

(2)Ki=tiPpub=(Kix,Kiy);

(3) 令v=H1(IDi‖Ri‖Qi‖Ti),計(jì)算u=ti+Siv;

(4) 發(fā)送給KGC;

(5) KGC驗(yàn)證uP=Ti+vRi+vhiPpub,式中hi=H1(IDi‖Ri‖Qi)。

驗(yàn)證正確性:

uP=(ti+Siv)P=tiP+SivP=Ti+(ri+shi)vP=

Ti+rivP+shivP=Ti+vRi+vhiPpub

由此可知,(u,Ti)事實(shí)上為用戶使用部分私鑰Si對(duì)身份和公鑰消息IDi、Ri、Qi做的數(shù)字簽名。如果攻擊者想要冒充群組里的成員,就必須得到用戶的部分私鑰Si,而用戶的部分私鑰只有用戶和KGC擁有?;蛘吖粽叩脧腞i=riP、Ppub=sP中去計(jì)算得到ri和s,這顯然也是離散對(duì)數(shù)問題,所以該改進(jìn)方法是可行的。因此,通過這個(gè)方式KGC可以確信用戶的真實(shí)身份。

5 結(jié) 語

本文對(duì)文獻(xiàn)[13]中的組密鑰的協(xié)商進(jìn)行了分析,指出該協(xié)議是不安全的,給出具體的攻擊方法,并在此基礎(chǔ)上提出了應(yīng)對(duì)該攻擊的兩種改進(jìn)方法。第一種是在發(fā)送給KGC的內(nèi)容中直接添加用戶的部分私鑰去讓KGC驗(yàn)證;第二種是使用用戶的部分私鑰進(jìn)行簽名后再發(fā)送。本文給出的分析方法對(duì)于同類協(xié)議,特別是基于無證書公鑰系統(tǒng)的協(xié)議的設(shè)計(jì)具有借鑒意義。

猜你喜歡
私鑰公鑰群組
比特幣的安全性到底有多高
基于改進(jìn)ECC 算法的網(wǎng)絡(luò)信息私鑰變換優(yōu)化方法
一種基于混沌的公鑰加密方案
關(guān)系圖特征在敏感群組挖掘中的應(yīng)用研究
一種基于虛擬私鑰的OpenSSL與CSP交互方案
HES:一種更小公鑰的同態(tài)加密算法
SM2橢圓曲線公鑰密碼算法綜述
基于統(tǒng)計(jì)模型的空間群組目標(biāo)空間位置計(jì)算研究
基于格的公鑰加密與證書基加密
群組聊天業(yè)務(wù)在IMS客戶端的設(shè)計(jì)與實(shí)現(xiàn)
博客| 丽江市| 辛集市| 竹北市| 精河县| 望谟县| 本溪市| 息烽县| 汤原县| 五河县| 若尔盖县| 乳源| 丰原市| 抚顺市| 宜州市| 蒲城县| 思南县| 高州市| 定安县| 广州市| 汝阳县| 扎兰屯市| 漳州市| 顺义区| 江油市| 齐齐哈尔市| 闸北区| 中宁县| 宁远县| 襄汾县| 梁平县| 天津市| 临朐县| 宁强县| 页游| 乌拉特中旗| 板桥市| 中西区| 抚顺县| 巴林右旗| 唐海县|