• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2020-07-14 02:50:12張金輝黃加成梁紅梅李慧敏
      計算機(jī)應(yīng)用與軟件 2020年7期
      關(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)計學(xué)院 福建 漳州 363000)

      0 引 言

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

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

      1 預(yù)備知識

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

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

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

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

      1.2 困難性假設(shè)

      1.3 符號說明

      表1為本文用到的一些符號。

      表1 符號說明表

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

      2.1 生成公鑰與私鑰

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

      ① 選擇一個k位素數(shù)p,并確定出{Fp,G,P}。

      ③ 對于安全參數(shù)k,KGC會選擇兩個安全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è)置公鑰,計算Pi=(xi+Si)P,Qi=xiP,用戶IDi的公鑰為PKi=。

      2.2 成員匿名身份的注冊

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

      ① 用戶選擇一個臨時身份TIDi。

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

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

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

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

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

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

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

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

      2.3 密鑰的協(xié)商

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

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

      ①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);

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

      最后每個用戶的組會話密鑰計算為:

      2.4 成員的加入

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

      (1) 從{U1,U2,…,Un}選擇出兩個用戶U1和Un,重新選擇秘密值x1和xn,更新它們的公私鑰。此時的分組情況為{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},此時新的組密鑰為SKnew=H1(SK1‖SK2)。

      2.5 群成員的離開

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

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

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

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

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

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

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

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

      3.1 偽裝用戶

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

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

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

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

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

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

      hti=H1(TIDi)

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

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

      3.3 盜取密鑰

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

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

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

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

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

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

      4.1 改進(jìn)方法一

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

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

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

      }_Kix>

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

      5 結(jié) 語

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

      猜你喜歡
      私鑰公鑰群組
      比特幣的安全性到底有多高
      基于改進(jìn)ECC 算法的網(wǎng)絡(luò)信息私鑰變換優(yōu)化方法
      一種基于混沌的公鑰加密方案
      關(guān)系圖特征在敏感群組挖掘中的應(yīng)用研究
      電子測試(2018年14期)2018-09-26 06:04:10
      一種基于虛擬私鑰的OpenSSL與CSP交互方案
      HES:一種更小公鑰的同態(tài)加密算法
      SM2橢圓曲線公鑰密碼算法綜述
      基于統(tǒng)計模型的空間群組目標(biāo)空間位置計算研究
      基于格的公鑰加密與證書基加密
      群組聊天業(yè)務(wù)在IMS客戶端的設(shè)計與實(shí)現(xiàn)
      南京市| 宁武县| 新乐市| 许昌市| 樟树市| 赣榆县| 慈利县| 内乡县| 甘谷县| 广西| 连江县| 昭平县| 安图县| 上蔡县| 绿春县| 遂宁市| 五指山市| 临湘市| 屯昌县| 衡东县| 延寿县| 泸州市| 高陵县| 葵青区| 宁阳县| 抚松县| 南投市| 永福县| 乐山市| 安丘市| 富锦市| 永丰县| 红河县| 喀喇沁旗| 岗巴县| 大名县| 安图县| 玉环县| 湖南省| 岳池县| 张家港市|