鄭玉麗 劉翠香
洛陽(yáng)理工學(xué)院 河南 471023
隨著計(jì)算機(jī)網(wǎng)絡(luò)的廣泛普及,電子郵件運(yùn)用的日趨頻繁,幾乎所有上網(wǎng)的人每天都要收或發(fā)電子郵件,特別是商業(yè)郵件,對(duì)安全性的要求更高,但是人們對(duì)它的安全性似乎沒(méi)有隨著時(shí)間推移而增強(qiáng)。雖然電子郵件系統(tǒng)提供了極好私密性PGP保障安全,但是隨著黑客技術(shù)的更新,郵件的私密性越來(lái)越顯得不安全。因此,現(xiàn)行使用的基于大整數(shù)分解的RSA公鑰算法,以及DES對(duì)稱加密算法的PGP,已經(jīng)明顯滯后而且在方案設(shè)計(jì)上也亟待改進(jìn)。鑒于此,針對(duì)現(xiàn)行PGP,本文采用能夠快速加解密的橢圓曲線公鑰密碼體制 ECC和高級(jí)對(duì)稱加密算法AES有機(jī)結(jié)合,特別又增加了時(shí)間戳DTS技術(shù),提出了電子郵件安全管理的新方案。本方案進(jìn)一步增強(qiáng)電子郵件的安全性,同時(shí)也解決了目前PGP中速度和安全性不能兼顧的問(wèn)題。
橢圓曲線指的是由韋爾斯特拉斯 Weierstrass方程y2+a1xy+a3y=x3+a2x2+a4x+a6所確定的平面曲線 E,此外再加上一個(gè)叫做無(wú)窮遠(yuǎn)點(diǎn)的特殊點(diǎn)O。
在ECC中,采用了定義在有限域上的橢圓曲線,其方程為y2=x3+ax+b(mod n) ,其中4a3+27b2(mod n)≠0,x、y、a、b ∈Fn,這里n是素?cái)?shù),a和b為兩個(gè)小于n的非負(fù)整數(shù)。由滿足此方程的點(diǎn)(x,y)和一個(gè)無(wú)窮遠(yuǎn)點(diǎn)O就組成了橢圓曲線E。
橢圓曲線離散對(duì)數(shù)問(wèn)題 ECDLP定義如下:給定素?cái)?shù) n和橢圓曲線E,對(duì)Q=kP,在已知P,Q的情況下求出小于n的正整數(shù)k??梢宰C明,已知k和P計(jì)算Q比較容易,而由Q和P計(jì)算k則比較困難,至今沒(méi)有有效的方法來(lái)解決這個(gè)問(wèn)題,這就是橢圓曲線加密算法原理之所在。
數(shù)字簽名算法基本過(guò)程(假如A方簽名,B方驗(yàn)證)如下:
(1)A方先確定合適的橢圓曲線E,確定基點(diǎn)G、大素?cái)?shù)n,選取私鑰d∈[1,n-1],計(jì)算Q=dP,生成公鑰(E,P,n,Q)并公布;并對(duì)消息生成摘要e;
(2)簽名
① 選擇一個(gè)偽隨機(jī)數(shù)k∈(1,n-1],計(jì)算kP=(x1,y1);
② 計(jì)算r= x1mod n,若r=0,回到第①步;
③ 計(jì)算s= k-1(e+dr)mod n,若s=0回到第①步;
④ 生成簽名(r,s),并發(fā)送簽名和消息m;
(3)驗(yàn)證
① B方收到簽名(r,s)和m,對(duì)m生成摘要e;
② 計(jì)算(x1,y1)= s-1eP+ s-1rQ(mod n),如果x1=r,則驗(yàn)證成功。
公鑰加密基本過(guò)程(假如B方給A方發(fā)送信息m)如下:
(1)A方先確定合適的橢圓曲線E,基點(diǎn)G,大素?cái)?shù)n,私鑰k,再生成K=kG,生成公鑰(E,P,n,Q)并公布。
(2)B方把消息m嵌入橢圓曲線上一點(diǎn)M;
(3)用A方公鑰加密:選取一個(gè)偽隨機(jī)數(shù)r∈(1,n-1],計(jì)算C1=M+rK,C2=rG;把C1、C2發(fā)給接收方B;
(4)A收到 C1、C2后,用自己的私鑰進(jìn)行解密M=C1-kC2,恢復(fù)出明文M;
(5)再把明文M解碼恢復(fù)出原有信息m。
本方案對(duì)電子郵件信息產(chǎn)生摘要選用SHA-2(SHA-224、SHA-256、SHA-238、SHA-512)算法。它是比SHA-1更長(zhǎng)更安全的散列算法。它也是目前美國(guó)國(guó)家標(biāo)準(zhǔn)和技術(shù)研究所(NIST)公布的最安全的散列算法。
2000年,NIST經(jīng)過(guò)三輪候選算法篩選,從眾多的分組密碼中選出Rijndael算法作為高級(jí)加密標(biāo)準(zhǔn)(AES)。
Rijndael算法的特點(diǎn)如下:采用SP結(jié)構(gòu)、加密、解密相似但不對(duì)稱、支持128/32數(shù)據(jù)塊大小、支持128/192/256密鑰長(zhǎng)度、有較好的數(shù)學(xué)理論做為基礎(chǔ)、結(jié)構(gòu)簡(jiǎn)單、速度快等。AES的加密算法的數(shù)據(jù)處理單位是字節(jié),128位的比特信息被分為16個(gè)字節(jié),按順序復(fù)制到一個(gè)4×4的矩陣中,稱為狀態(tài)(state),AES的所有變換都是基于狀態(tài)矩陣的變換。在輪函數(shù)的每一輪迭代中,包括四個(gè)變換,分別是字節(jié)代換運(yùn)算(ByteSub())、行變換(ShiftRows())、列混合(MixColunms())以及輪密鑰的添加變換(AddRoundKey()),其作用就是通過(guò)重復(fù)簡(jiǎn)單的非線性變換、混合函數(shù)變換、將字節(jié)代換運(yùn)算產(chǎn)生的非線性擴(kuò)散,達(dá)到充分的混合,在每輪迭代中引入不同的密鑰從而實(shí)現(xiàn)加密的有效性。
日期和時(shí)間是E-mail中的重要內(nèi)容之一,需要加以確認(rèn)與保護(hù)。數(shù)字時(shí)間戳(Digital Time Stamp,DTS)服務(wù)較好地解決了E-mail發(fā)送時(shí)間的安全問(wèn)題。
時(shí)間戳是一個(gè)經(jīng)加密后形成的憑證文檔,它包括三個(gè)部分:需加時(shí)間戳的文件的摘要;DTS收到文件的日期和時(shí)間;DTS 的數(shù)字簽名。時(shí)間戳產(chǎn)生的過(guò)程為:用戶首先將需要加時(shí)間戳的文件用 Hash 編碼加密形成摘要,然后將該摘要發(fā)送到 DTS,DTS 在加入了收到文件摘要的日期和時(shí)間信息后再對(duì)該文件加密,然后送回用戶。
假設(shè)用戶A使用PGP向用戶B發(fā)送電子郵件E-mail,發(fā)送方用戶A向用戶B發(fā)送電子郵件的流程如圖1,步驟如下:
第一步:發(fā)送方A
(1)對(duì)E-mail信息M使用散列函數(shù)SHA-2生成摘要;
(2)把上一步生成的摘要和自己的身份信息發(fā)給數(shù)字時(shí)間戳機(jī)構(gòu)DTS,申請(qǐng)E-mail數(shù)字時(shí)間戳DTS(M),并保存;
(3)生成對(duì)稱密鑰K,對(duì)DTS(M)和e-mail信息M進(jìn)行加密,生成密文EK(M)和EK(DTS(M));
(4)對(duì)EK(DTS(M))使用發(fā)送方A的私鑰進(jìn)行簽名,生成簽名SA(EK(DTS(M)));
(5)對(duì)生成的簽名用接收方B的公鑰再次進(jìn)行加密,生成密文EB(SA(EK(DTS(M))));
(6)把 EK(M)和 EB(SA(EK(DTS(M))))發(fā)給 Internet,通過(guò)Internet傳給接收方B。
圖1 改進(jìn)的PGP方案
第二步:接收方B
(1)從 Internet上接受發(fā)送方 A 發(fā)過(guò)來(lái)的 EK(M)和EB(SA(EK(DTS(M))));
(2)使用B的私鑰解密得SA(EK(DTS(M)));
(3)使用A的公鑰解密得EK(DTS(M));
(4)把EK(DTS(M))發(fā)到Internet上,傳給發(fā)送方A。
第三步:發(fā)送方A
(1)接受到B傳來(lái)的EK(DTS(M));
(2)使用對(duì)稱密鑰 K進(jìn)行解密得 DTS(M),記為 DTS‘(M);
(3)比較解密得來(lái)的DTS‘(M)和A在第一步中自己保存的DTS(M);
(4)如果DTS(M)和DTS‘(M)相同,則對(duì)對(duì)稱密鑰K,使用A的私鑰加密,生成SA(K),再使用接收方B的公鑰加密,生成密文EB(SA(K)),并發(fā)到Internet,通過(guò)Internet傳給接收方B;否則結(jié)束對(duì)稱密鑰K的發(fā)送。
第四步:接收方B
(1)從Internet接收到EB(SA(K)),用自己的私鑰進(jìn)行解密,得SA(K);
(2)使用發(fā)送方的公鑰解密得對(duì)稱密鑰K;
(3)使用對(duì)稱密鑰K對(duì)第二步收到的EK(M)進(jìn)行解密,得到M,即發(fā)送方發(fā)來(lái)的E-mail明文。
本文主要從方案設(shè)計(jì)上分析,新增加了時(shí)間戳技術(shù),對(duì)時(shí)間戳進(jìn)行了3次加密發(fā)給接收方,接收方B收到后進(jìn)行2次解密,把解密后的時(shí)間戳密文回發(fā)給發(fā)送方A,發(fā)送方對(duì)其進(jìn)行比較驗(yàn)證,從而預(yù)防了重放攻擊。
本方案從算法的選擇上分析,非對(duì)稱加密算法選用了ECC,這種算法與現(xiàn)行使用的RSA相比,可以用較少的密鑰長(zhǎng)度獲取更高更大的安全強(qiáng)度;對(duì)稱加密算法選用SHA-2,進(jìn)一步增強(qiáng)了破解難度。
從計(jì)算開(kāi)銷(xiāo)上分析,對(duì) E-mail信息使用對(duì)稱加密,對(duì)E-mail的時(shí)間戳和對(duì)稱密鑰K使用了非對(duì)稱加密算法的混合加密方案,本方案收發(fā)雙方共進(jìn)行了5次加密和6次解密,加密次數(shù)減少一次,并且對(duì)E-mail信息只使用對(duì)稱密鑰加密,沒(méi)有再進(jìn)行非對(duì)稱加密算法加密。這些措施,在安全性增強(qiáng)的同時(shí),很大程度地減少了計(jì)算開(kāi)銷(xiāo),降低了加解密的時(shí)間,提高了加解密的速度。
本文提出的PGP新方案,不僅從算法選擇上增強(qiáng)了傳統(tǒng)的PGP的機(jī)密性,身份認(rèn)證可靠性,數(shù)據(jù)完整性,不可抵賴性,而且加入了時(shí)間戳技術(shù),從而抵御了重放攻擊,另外還降低了計(jì)算開(kāi)銷(xiāo),加快了加解密速度。從而在增強(qiáng)安全的同時(shí)兼顧了加解密速度。
[1]段保護(hù),王建.數(shù)字簽名技術(shù)的新探討[J].計(jì)算機(jī)工程與科學(xué).2009.
[2]Wongoo Lee,Jeakwang,Lee. Design and implementation of secure e-mail system using elliptic curve crptosystem[J]. Future Generation Computer Systems.2004.
[3]Woei-Jiunn Tsaur , Chih-Ho Chou. Efficient algorithms for speeding up the computations of elliptic curve cryptosystems[J].Applied Mathematics and Computation 168.2005.
[4]賴順天.PGP 工作原理及其安全性[J].計(jì)算機(jī)安全.2008.
[5]馮登國(guó).網(wǎng)絡(luò)安全原理與技術(shù)[M].北京:科學(xué)出版社.2003.