成都四川大學(xué)信息安全研究所(610064) 宋成勇 胡 勇 陳淑敏 李均銳
摘 要:介紹了PGP的工作原理和流程,同時(shí)對(duì)PGP獨(dú)特的密鑰管理體制的安全應(yīng)用進(jìn)行了詳細(xì)分析。
關(guān)鍵詞:PGP(Pretty Good Privacy) ** 密鑰環(huán)
現(xiàn)代信息社會(huì)里,當(dāng)電子郵件廣受歡迎的同時(shí),其安全性問題也很突出。實(shí)際上,電子郵件的傳送過程是郵件在網(wǎng)絡(luò)上反復(fù)復(fù)制的過程,其網(wǎng)絡(luò)傳輸路徑不確定,很容易遭到不明身份者的竊取、篡改、冒用甚至惡意破壞,給收發(fā)雙方帶來麻煩。進(jìn)行信息加密,保障電子郵件的傳輸安全已經(jīng)成為廣大E-mail用戶的迫切要求。PGP的出現(xiàn)與應(yīng)用很好地解決了電子郵件的安全傳輸問題。將傳統(tǒng)的對(duì)稱性加密與公開密鑰加密方法結(jié)合起來,兼?zhèn)淞藘烧叩膬?yōu)點(diǎn)。PGP提供了一種機(jī)密性和鑒別的服務(wù),支持1024位的公開密鑰與128位的傳統(tǒng)加密算法,可以用于軍事目的,完全能夠滿足電子郵件對(duì)于安全性能的要求。
1 操作描述
PGP的實(shí)際操作由五種服務(wù)組成:鑒別、機(jī)密性、電子郵件的兼容性、壓縮、分段和重裝。
1.1鑒別
如圖1。步驟如下:
(1)發(fā)送者創(chuàng)建報(bào)文;
(2)發(fā)送者使用SHA-1生成報(bào)文的160bit散列代碼(郵件文摘);
(3)發(fā)送者使用自己的私有密鑰,采用RSA算法對(duì)散列代碼進(jìn)行加密,串接在報(bào)文的前面;
(4)接收者使用發(fā)送者的公開密鑰,采用RSA解密和恢復(fù)散列代碼;
(5)接收者為報(bào)文生成新的散列代碼,并與被解密的散列代碼相比較。如果兩者匹配,則報(bào)文作為已鑒別的報(bào)文而接收。
圖1 軟交換的體系結(jié)構(gòu)
另外,簽名是可以分離的。例如法律合同,需要多方簽名,每個(gè)人的簽名是獨(dú)立的,因而可以僅應(yīng)用到文檔上。否則,簽名將只能遞歸使用,第二個(gè)簽名對(duì)文檔的第一個(gè)簽名進(jìn)行簽名,依此類推。
1.2 機(jī)密性
在PGP中,每個(gè)常規(guī)密鑰只使用一次,即對(duì)每個(gè)報(bào)文生成新的128bit的隨機(jī)數(shù)。為了保護(hù)密鑰,使用接收者的公開密鑰對(duì)它進(jìn)行加密。圖2顯示了這一步驟,描述如下:
(1)發(fā)送者生成報(bào)文和用作該報(bào)文會(huì)話密鑰的128bit隨機(jī)數(shù);
(2)發(fā)送者采用CAST-128加密算法,使用會(huì)話密鑰對(duì)報(bào)文進(jìn)行加密。也可使用IDEA或3DES;
(3)發(fā)送者采用RSA算法,使用接收者的公開密鑰對(duì)會(huì)話密鑰進(jìn)行加密,并附加到報(bào)文前面;
(4)接收者采用RSA算法,使用自己的私有密鑰解密和恢復(fù)會(huì)話密鑰;
(5)接收者使用會(huì)話密鑰解密報(bào)文。
圖2 只保證機(jī)密性
除了使用RSA算法加密外,PGP還提供了Diffie-Hellman的變體ElGamal算法。
1.3 常規(guī)加密和公開密鑰結(jié)合的好處
(1)常規(guī)加密和公開密鑰加密相結(jié)合使用比直接使用RSA或ElGamal要快得多。
(2)使用公開密鑰算法解決了會(huì)話密鑰分配問題。
(3)由于電子郵件的存儲(chǔ)轉(zhuǎn)發(fā)特性,使用握手協(xié)議來保證雙方具有相同會(huì)話密鑰的方法是不現(xiàn)實(shí)的,而使用一次性的常規(guī)密鑰加強(qiáng)了已經(jīng)是很強(qiáng)的常規(guī)加密方法。
1.4 機(jī)密性與鑒別
如圖3所示,對(duì)報(bào)文可以同時(shí)使用兩個(gè)服務(wù)。首先為明文生成簽名并附加到報(bào)文首部;然后使用CAST-128(或IDEA、3DES)對(duì)明文報(bào)文和簽名進(jìn)行加密,再使用RSA(或ElGamal)對(duì)會(huì)話密鑰進(jìn)行加密。在這里要注意次序,如果先加密再簽名的話,別人可以將簽名去掉后簽上自己的簽名,從而篡改簽名。
圖3 鑒別與機(jī)密性