朱志強 孫紅巖 武傳勝 周寅興 楊草旺 趙健
【中圖分類號】 F626.5 【文獻標識碼】A 【文章編號】2236-1879(2017)05-0296-02
基于微企信息息的業(yè)務從現(xiàn)有的娛樂應用已進入到商務應用、電子政務和社會服務等領域。然而在美好景象的背后,存在著不可小視的安全問題。虛假與不良微企信息息的傳播;侵犯個人隱私;手機病毒的傳播以及垃圾微企信息的泛濫等。這些都涉及到信息的加密與解密,通信雙方身份的相互認證,信息的完整性鑒別等安全方面的問題。
數(shù)字簽名是通信雙方進行身份認證和防止抵賴必不可少的技術,現(xiàn)有的大多數(shù)數(shù)字簽名方案都是基于離散對數(shù)問題,但這類簽名方案中都普遍存在著“生日攻擊”問題。由于微企信息息通信有著自己獨特的特點,以及Tate配對的計算量要比Weil配對幾乎少一半的性質(zhì),我們選擇了利用橢圓曲線上的Tate配對構造了一種新的簽名加密算法,將數(shù)字簽名和加密技術融為一體,不僅能夠識別發(fā)送信息者的身份和對微企信息息的保密,還能有效地抵抗“生日攻擊”。在該加密算法中加入了時間標志,可以抵抗重發(fā)密文的攻擊。
、微企信息息加密方案
1、系統(tǒng)參數(shù)的建立(由一個可信中心執(zhí)行)
(1)選擇p、q、k、m、l、G1、G2和G3,G2的一個生成元P以及Tate配對T。
(2)在E(Fq)上選擇基點G=(xG,yG),點G的階ord(G)=n,n是一個大素數(shù),Zn*是一個是特征為n的有限域。隨機選取s∈Zn*,Ppub=sP,s作為主密鑰。
(3)選擇H:{0,1}*×G2→F*qK為公開的哈希函數(shù);L:{0,1}*→{0,1}160是一種安全Hash算法;強密碼雜湊函數(shù)F:{0,1}*→G1將用戶的身份映射到G1中的一個元素。
(4)選擇對稱加密算法AES和橢圓曲線加密體制ECC。可信中心把s作為系統(tǒng)的私鑰保存,公開參數(shù)(G1,G2,G3,T,n,P,Ppub,H,L,F(xiàn))。
2、用戶密鑰的生成
假設ID表示用戶Alice的身份,可信中心對Alice進行物理鑒定以確信ID具有唯一性后,計算QID=F(ID),dID=sQID,通過安全信道將密鑰dID發(fā)送給Alice,QID為公鑰。
3、微企信息息加密
手機用戶之間的微企信息息通信,通常以微企信息息業(yè)務服務商作為媒介。設手機用戶A和微企信息息業(yè)務服務商B的密鑰對是(dA,QA)和(dB,QB),A將微企信息息m發(fā)送給B,則手機用戶A依次執(zhí)行如下的加密算法:
4、微企信息息解密
微企信息業(yè)務服務商B收到(c,y1,t)后,執(zhí)行如下的解密算法:計算△t=tb-t,tb是微企信息業(yè)務服務商B收到微企信息息的時間,如果△t大于規(guī)定的時間,則拒絕解密,否則進行如下處理:
(1)生成隨機會話密鑰K:
計算dBy1=(c1,c2),K=L(c1modn)。
(2)用CFB模式的AES和密鑰K對密文進行解密:
DK(EK(m,r1,r2,S,T))。
(3)驗證簽名:
計算等式T(S,P)=T(QA,Ppub)(v1+v2)(r1)v2(r2)v1是否成立。
(4)檢驗時間標志:
計算等式T=H(m,S,t)是否成立。當且僅當(3)和(4)兩個等式同時成立時,接受m為手機用戶A發(fā)送的有效微企信息息。
四、簽名加密算法的安全性分析
1、雙層加密
該方案采用雙層加密模型,其安全性主要基于橢圓曲線加法群的離散對數(shù)問題。用橢圓曲線加密體制ECC生成對稱密碼體制AES的隨機會話密鑰K,再用AES加密明文m和(r1,r2,S,T)。選擇128比特以上的AES和256比特的ECC;為了更好的掩蓋明文m,使用AES的CFB模式來加密信息。如果攻擊者選擇攻擊密文c,則在現(xiàn)有的技術條件下直接攻擊128比特的AES是極其困難的;若選擇攻擊密鑰K,則面臨棘手的ECDLP數(shù)學難題;且密鑰K是一次性的密鑰,只使用一次此后不再有效,即使得到密鑰K也沒有多大的實用價值。Hash函數(shù)的多次使用,增強了加密解密的單向性,進一步提高了算法的安全性。
2、密鑰交換
在該方案中,AES的隨機會話密鑰K只使用一次,以后不再使用。通信雙方可以動態(tài)的交換密鑰K,只有接收方B收到發(fā)送方A的y1后才能恢復出密鑰K。
由于dBy1=dB(k1G)=k1(dBG)=k1QB=(c1,c2),所以K=L(c1modn)。
3、簽名驗證
該方案中數(shù)字簽名算法的安全性主要基于有限域上橢圓曲線加法群的ECDLP問題和Tate配對的BDH問題。整個簽名過程是不可偽造的,因為根據(jù)公鑰Q求私鑰d是非常困難的ECDLP問題;根據(jù)ri求隨機數(shù)Pi(i=1,2)是難度很大的BDH問題。
定理1接收方B收到發(fā)送方A遞交的(c,y1,t)后,若T(S,P)=T(QA,Ppub)(v1+v2)(r1)v2(r2)v1,則(r1,r2,S)是A對消息m的簽名。
證明:B對(c,y1,t)解密處理后得到(r1,r2,S),則v1=H(m,r1),v2=H(m,r2),T(S,P)=T((v1+v2)dA+v2P1+v1P2,P)=T((v1+v2)dA,P)T(v2P1,P)T(v1P2,P)=T(dA,P)(v1+v2)T(P1,P)v2T(P2,P)v1=T(sQA,P)(v1+v2)(r1)v2(r2)v1=T(QA,P)s(v1+v2)(r1)v2(r2)v1=T(QA,sP)(v1+v2)(r1)v2(r2)v1=T(QA,Ppub)(v1+v2)(r1)v2(r2)v1
即(r1,r2,S)是A對消息m的簽名。
4、生日攻擊
所謂“生日攻擊”問題就是指,在23個人中出現(xiàn)兩個人生日相同的概率會大于0.5[1]。若使用該方案的簽名算法對消息m1,m2簽名時,選取了相同的P1,P2∈G1,則:
r1=T(P1,P),r2=T(P2,P),v11=H(m1,r1),v12=H(m1,r2),v21=H(m2,r1),v22=H(m2,r2),S1=(v11+v12)dA+v12P1+v11P2,S2=(v21+v22)dA+v22P1+v21P
通過最后兩個等式能解出dA+P1和dA+P2,兩個式子中有三個變量dA,P1和P2,所以無法確定dA,P1和P2中的任何一個。如果使用該方案中的簽名算法簽名m次,則P1,P2重復出現(xiàn)的概率是p=\[1-(Pqm//qm)\]2,只有m大約等于q時,概率p才會大于0.5[1],而q是一個很大的素數(shù),所以這種情況不可能能存在。兩個隨機數(shù)P1和P2的引入,減少了兩次簽名選用相同隨機數(shù)的概率,增加了生日攻擊的難度,所以本方案可以有效的抵抗生日攻擊。
遼寧科技大學大學生創(chuàng)新創(chuàng)業(yè)訓練計劃項目