簽名加密算法在短信息加密中的應(yīng)用

基于短信息的業(yè)務(wù)從現(xiàn)有的娛樂應(yīng)用已進(jìn)入到商務(wù)應(yīng)用、電子政務(wù)和社會服務(wù)等領(lǐng)域。然而在美好景象的背后,存在著不可小視的安全問題。虛假與不良短信息的傳播;侵犯個人隱私;手機(jī)病毒的傳播以及垃圾短信的泛濫等。這些都涉及到信息的加密與解密,通信雙方身份的相互認(rèn)證,信息的完整性鑒別等安全方面的問題。

數(shù)字簽名是通信雙方進(jìn)行身份認(rèn)證和防止抵賴必不可少的技術(shù),現(xiàn)有的大多數(shù)數(shù)字簽名方案都是基于離散對數(shù)問題,但這類簽名方案中都普遍存在著“生日攻擊”問題。由于短信息通信有著自己獨(dú)特的特點(diǎn),以及Tate配對的計算量要比Weil配對幾乎少一半的性質(zhì),我們選擇了利用橢圓曲線上的Tate配對構(gòu)造了一種新的簽名加密算法,將數(shù)字簽名和加密技術(shù)融為一體,不僅能夠識別發(fā)送信息者的身份和對短信息的保密,還能有效地抵抗“生日攻擊”。在該加密算法中加入了時間標(biāo)志,可以抵抗重發(fā)密文的攻擊。

一、短信息協(xié)議及短信息的發(fā)送方式

手機(jī)所支持的短信息協(xié)議主要有SMS、EMS和MMS三種。

MMS是繼SMS(文本短信服務(wù))、EMS(增強(qiáng)型短信服務(wù))之后的“第三代短信服務(wù)”。MMS大大擴(kuò)展了可收發(fā)短信息的媒介類型,除了文本、簡單圖片和鈴聲均可傳送外,還可以傳送復(fù)雜的圖片如照片、大型的圖表以及音樂、視頻等多媒體格式。

隨著3G網(wǎng)絡(luò)在中國的普及,MMS將是短信技術(shù)發(fā)展的終極,畢竟MMS有聲有色的溝通相對于SMS有聲無色的溝通更加吸引人。目前主要有三種發(fā)送短信息的方式:

1、網(wǎng)關(guān)方式:向當(dāng)?shù)氐碾娦挪块T申請,不需要額外的設(shè)備,適用于大型的通信公司。

2、終端方式:借助像GSMMODEM之類的設(shè)置(支持AT指令的手機(jī)也行),通過數(shù)據(jù)線連接電腦來發(fā)送短信息,這種方法比較適用于小型公司及個人。

3、利用一些網(wǎng)站來實(shí)現(xiàn):方式簡單,但對網(wǎng)站依賴性太高,不適于進(jìn)行項(xiàng)目開發(fā)。而我們今天提出的短信息加密方案可作為應(yīng)用程序固化在手機(jī)的STK卡中來實(shí)現(xiàn)。

二、Tate配對的引入

1、Tate配對的性質(zhì)

設(shè)p是一個大素數(shù),q=pm,m是一個正整數(shù),F(xiàn)q是特征為p的有限域,E(Fq)是定義在有限域Fq上且滿足Weierstrass方程y2=x3+1的一個超奇異橢圓曲線。對任意的正整數(shù)k可定義Fq的擴(kuò)域FqFq上的橢圓曲線E(FqK),記G=E(FqK)。L是與P互素的素數(shù),l1#E(Fq),G[l]是G中l(wèi)階元素生成的子群,g//Lg中的非單位元素的階也是l,G1=G[L],G2=G//lG,G3=F*qK//(F*qK)l,Tate配對定義為映射T:G1×G2→G3,Tate配對T具有以下性質(zhì):

(1)雙線性:若對任意的P∈G1,Q∈G2,R∈G2,有:τ(P,Q+R)=T(P,Q)!(P,R),T(P+Q,R)=T(P,R)T(Q,R)對任意的非負(fù)整數(shù)a,aP表示P自加a次,且T(aP,Q)=T(P,Q)a=T(P,aQ)。

(2)非退化性:存在P∈G1,Q∈G2,使得T(P,Q)不等于G3的單位元。

(3)可計算性:存在一個高效的算法計算T(P,Q),其中P∈G1,Q∈G2。

如何選取交換群和Tate配對及其它參數(shù)使得系統(tǒng)更加安全和高效。

2、雙線性Diffie-Hellman問題(BDH)和橢圓曲線離散對數(shù)問題(ECDLP)

已知Q∈G1,R∈G2,求點(diǎn)S∈G1,使得等式!(S,P)=T(Q,R)成立。

點(diǎn)P∈E(Fq),G是E(Fq)上的一個基點(diǎn),求整數(shù)x,使得P=xG。

三、短信息加密方案

1、系統(tǒng)參數(shù)的建立(由一個可信中心執(zhí)行)

(1)選擇p、q、k、m、l、G1、G2和G3,G2的一個生成元P以及Tate配對T。

(2)在E(Fq)上選擇基點(diǎn)G=(xG,yG),點(diǎn)G的階ord(G)=n,n是一個大素數(shù),Zn*是一個是特征為n的有限域。隨機(jī)選取s∈Zn*,Ppub=sP,s作為主密鑰。

(3)選擇H:{0,1}*×G2→F*qK為公開的哈希函數(shù);L:{0,1}*→{0,1}160是一種安全Hash算法;強(qiáng)密碼雜湊函數(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、用戶密鑰的生成

假設(shè)ID表示用戶Alice的身份,可信中心對Alice進(jìn)行物理鑒定以確信ID具有唯一性后,計算QID=F(ID),dID=sQID,通過安全信道將密鑰dID發(fā)送給Alice,QID為公鑰。

3、短信息加密

手機(jī)用戶之間的短信息通信,通常以短信息業(yè)務(wù)服務(wù)商作為媒介。設(shè)手機(jī)用戶A和短信息業(yè)務(wù)服務(wù)商B的密鑰對是(dA,QA)和(dB,QB),A將短信息m發(fā)送給B,則手機(jī)用戶A依次執(zhí)行如下的加密算法:

(1)隨機(jī)會話密鑰K的生成:

①隨機(jī)選取一個整數(shù)k1∈Zn*,計算y1=k1G;

②計算k1QB=(c1,c2),K=L(c1modn)。

(2)簽名的生成:

①選取兩個點(diǎn)P1,P2∈G1;

②計算r1=!(P1,P),r2=!(P2,P),v1=H(m,r1),v2=H(m,r2);

③計算S=(v1+v2)dA+v2P1+v1P2,則(r1,r2,S)是A對消息m的簽名。

(3)加入時間標(biāo)志:

設(shè)t為當(dāng)前時間,計算T=H(m,S,t)。

(4)用CFB模式的AES和密鑰K對明文m和(r1,r2,S,T)進(jìn)行加密:

得到密文c=EK(m,r1,r2,S,T),發(fā)送(c,y1,t)給短信息業(yè)務(wù)服務(wù)商B。

4、短信息解密

短信業(yè)務(wù)服務(wù)商B收到(c,y1,t)后,執(zhí)行如下的解密算法:計算△t=tb-t,tb是短信業(yè)務(wù)服務(wù)商B收到短信息的時間,如果△t大于規(guī)定的時間,則拒絕解密,否則進(jìn)行如下處理:

(1)生成隨機(jī)會話密鑰K:

計算dBy1=(c1,c2),K=L(c1modn)。

(2)用CFB模式的AES和密鑰K對密文進(jìn)行解密:

DK(EK(m,r1,r2,S,T))。

(3)驗(yàn)證簽名:

計算等式T(S,P)=T(QA,Ppub)(v1+v2)(r1)v2(r2)v1是否成立。

(4)檢驗(yàn)時間標(biāo)志:

計算等式T=H(m,S,t)是否成立。當(dāng)且僅當(dāng)(3)和(4)兩個等式同時成立時,接受m為手機(jī)用戶A發(fā)送的有效短信息。

四、簽名加密算法的安全性分析

1、雙層加密

該方案采用雙層加密模型,其安全性主要基于橢圓曲線加法群的離散對數(shù)問題。用橢圓曲線加密體制ECC生成對稱密碼體制AES的隨機(jī)會話密鑰K,再用AES加密明文m和(r1,r2,S,T)。選擇128比特以上的AES和256比特的ECC;為了更好的掩蓋明文m,使用AES的CFB模式來加密信息。如果攻擊者選擇攻擊密文c,則在現(xiàn)有的技術(shù)條件下直接攻擊128比特的AES是極其困難的;若選擇攻擊密鑰K,則面臨棘手的ECDLP數(shù)學(xué)難題;且密鑰K是一次性的密鑰,只使用一次此后不再有效,即使得到密鑰K也沒有多大的實(shí)用價值。Hash函數(shù)的多次使用,增強(qiáng)了加密解密的單向性,進(jìn)一步提高了算法的安全性。

2、密鑰交換

在該方案中,AES的隨機(jī)會話密鑰K只使用一次,以后不再使用。通信雙方可以動態(tài)的交換密鑰K,只有接收方B收到發(fā)送方A的y1后才能恢復(fù)出密鑰K。

由于dBy1=dB(k1G)=k1(dBG)=k1QB=(c1,c2),所以K=L(c1modn)。

3、簽名驗(yàn)證

該方案中數(shù)字簽名算法的安全性主要基于有限域上橢圓曲線加法群的ECDLP問題和Tate配對的BDH問題。整個簽名過程是不可偽造的,因?yàn)楦鶕?jù)公鑰Q求私鑰d是非常困難的ECDLP問題;根據(jù)ri求隨機(jī)數(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重復(fù)出現(xiàn)的概率是p=[1-(Pqm//qm)]2,只有m大約等于q時,概率p才會大于0.5[1],而q是一個很大的素數(shù),所以這種情況不可能能存在。兩個隨機(jī)數(shù)P1和P2的引入,減少了兩次簽名選用相同隨機(jī)數(shù)的概率,增加了生日攻擊的難度,所以本方案可以有效的抵抗生日攻擊。

5、重發(fā)密文攻擊

如果攻擊者獲得一份以前的密文(c,y1,t0),攻擊者可以將t0變成當(dāng)前時間t1,但無法改掉密文c中的H(m,S,t0),因而可以有效的抵抗重發(fā)密文的攻擊。

6、有效性分析

手機(jī)本身體積小、運(yùn)算能力低、存儲空間有限,因此本文選擇ECC和AES加密算法。ECC在安全性保障和發(fā)展前景上比其他公鑰系統(tǒng)更有優(yōu)勢,160位ECC與1024位RSA有相同的安全強(qiáng)度,被認(rèn)為是經(jīng)典RSA系統(tǒng)的最合適代替者。AES是新一代美國數(shù)據(jù)加密標(biāo)準(zhǔn),在空間有限的環(huán)境(如手機(jī))中使用時具有良好的性能。ECC主要用于AES算法的密鑰生成和分發(fā),AES算法加密系統(tǒng)的大部分?jǐn)?shù)據(jù)。為了使明文有更好的嵌入,選擇橢圓曲線:y2=x3-px,p≡3(mod4)。調(diào)用大數(shù)運(yùn)算函數(shù)庫MIRACLversion4.43進(jìn)行編程,作一次256比特的ECC驗(yàn)證只需十幾毫秒。文獻(xiàn)[4]已給出了一個計算Tate配對的有效算法,對于k=6的橢圓曲線,若采用改進(jìn)的Miller算法計算Tate配對時效率又能提高20%。

所以本文的手機(jī)短信息文件加密方案具有計算量較小,運(yùn)算速度快的特點(diǎn),易于在計算機(jī)的硬件和軟件上實(shí)現(xiàn)。

小知識之信息加密

信息加密技術(shù)是利用數(shù)學(xué)或物理手段,對電子信息在傳輸過程中和存儲體內(nèi)進(jìn)行保護(hù),以防止泄漏的技術(shù)。