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