PGP加密技術(shù)
我們知道PGP(Pretty Good Privacy)是目前最流行的一種加密軟件,它是一個(gè)基于RSA公鑰加密體系的郵件加密軟件。我們可以用它對(duì)郵件保密以防止非授權(quán)者閱讀,它還能對(duì)用戶(hù)的郵件加上數(shù)字簽名,從而使收信人可以確信發(fā)信人的身份。它讓用戶(hù)可以安全地和從未見(jiàn)過(guò)的人們通信,事先并不需要任何保密措施的來(lái)傳遞密鑰,因?yàn)樗捎昧朔菍?duì)稱(chēng)的“公鑰”和“私鑰”加密體系。
我們知道采用“公鑰”和“私鑰”加密體系最大的安全性問(wèn)題就是公開(kāi)的“公鑰”可能被人篡改,影響文件的解密,雖然PGP也采用這一加密體系,并且所有“公鑰”和“私鑰”都可以由用戶(hù)自己產(chǎn)生,不需要專(zhuān)門(mén)的認(rèn)證機(jī)構(gòu),但它卻有一個(gè)比較完善的密鑰管理體制,所以它的另一半優(yōu)點(diǎn)就體現(xiàn)在PGP獨(dú)特的密鑰管理體制上。
下面我們就從PGP加密機(jī)制和密鑰管理的角度來(lái)分析PGP加密的優(yōu)越性。
1.PGP的加密機(jī)制。
在現(xiàn)代社會(huì)里,電子郵件和網(wǎng)絡(luò)上的文件傳輸已經(jīng)成為生活的一部分。郵件的安全問(wèn)題也就突出了,大家都知道在互聯(lián)網(wǎng)上傳輸?shù)臄?shù)據(jù)是不加密的。如果用戶(hù)不保護(hù)自己的信息,第三者就會(huì)輕易獲得用戶(hù)的隱私。還有一個(gè)問(wèn)題就是信息認(rèn)證,如何讓收信人確信郵件沒(méi)有被第三者篡改,就需要使用數(shù)字簽名技術(shù)。
RSA公鑰體系的特點(diǎn)使它非常適合用來(lái)滿(mǎn)足上述兩個(gè)要求:保密性(privacy)和公證性(authentication)。RSA(Rivest-Shamir-Adleman)算法是基于大數(shù)不可能被質(zhì)因數(shù)分解假設(shè)的公鑰體系。簡(jiǎn)單地說(shuō)就是找兩個(gè)很大的質(zhì)數(shù)。一個(gè)對(duì)外公開(kāi),一個(gè)不告訴任何人。公開(kāi)的一個(gè)稱(chēng)為“公鑰”,另一個(gè)叫“私鑰”(Public key & Secret key or Private key)。這兩個(gè)密鑰是互補(bǔ)的,也就是說(shuō)用公鑰加密的密文只可以用私鑰解密,反過(guò)來(lái)也一樣。
RSA算法簡(jiǎn)介:
(1)隨機(jī)取兩個(gè)獨(dú)立大素?cái)?shù)p與q(保密);
(2)計(jì)算:n = p * q (公開(kāi)n)
Φ(n) = ( p - 1 ) *( q – 1) (保密);
(3)隨機(jī)選取一整數(shù)e,1≤e≤Ф(n),滿(mǎn)足gcd(e,Ф(n))=1(公開(kāi)e);
(4)計(jì)算d,滿(mǎn)足d * e ≡ 1(mod Ф(n)) (保密d)
利用RSA加密第一步需要將明文數(shù)字化,并對(duì)長(zhǎng)度小于㏒2 n的數(shù)字作為明文塊M;
加密算法C ≡ E(M)≡ M 的e次冪(mod n)
解冪算法M ≡ D(C)≡ C 的d次冪(mod n)
以上RSA系統(tǒng)記為RSA(n,e),其中P為加密公鑰;S為解密公鑰。假設(shè)甲要寄信給乙,他們互相知道對(duì)方的公鑰。甲就用乙的公鑰加密郵件寄出,乙收到后就可以用自己的私鑰解密出甲的原文。由于別人不知道乙的私鑰,所以即使是甲本人也無(wú)法解密那封信,這就解決了信件保密的問(wèn)題。另一方面,由于每個(gè)人都知道乙的公鑰,他們都可以給乙發(fā)信,那么乙怎么確信來(lái)信是不是甲的,這就是數(shù)字簽名的必要性,用數(shù)字簽名來(lái)確認(rèn)發(fā)信的身份。
PGP給郵件加密和簽名的過(guò)程是這樣的:首先甲用自己的私鑰將上述的128位值加密,附加在郵件后,再用乙的公鑰將整個(gè)郵件加密(要注意這里的次序,如果先加密再簽名的話(huà),別人可以將簽名去掉后簽上自己的簽名,從而篡改了簽名)。這樣這份密文被乙收到以后,乙用自己的私鑰將郵件解密,得到甲的原文和簽名,乙的PGP也從原文計(jì)算出一個(gè)128位的特征值來(lái)和用甲的公鑰解密簽名所得到的數(shù)進(jìn)行比較,如果符合就說(shuō)明這份郵件確實(shí)是甲寄來(lái)的。這樣兩個(gè)安全性要求都得到了滿(mǎn)足。
2.PGP的密鑰管理。
一個(gè)成熟的加密體系必然要有一個(gè)成熟的密鑰管理機(jī)制配套。公鑰體制的提出就是為了解決傳統(tǒng)加密體系的密鑰分配過(guò)程保密的缺點(diǎn)。比如網(wǎng)絡(luò)黑客們常用的手段之一就是"監(jiān)聽(tīng)",如果密鑰是通過(guò)網(wǎng)絡(luò)傳送就太危險(xiǎn)了。對(duì)PGP來(lái)說(shuō)公鑰本來(lái)就要公開(kāi),就沒(méi)有防監(jiān)聽(tīng)的問(wèn)題。但公鑰的發(fā)布中仍然存在安全性問(wèn)題,例如公鑰被篡改(public key tampering),這可能是公鑰密碼體系中最大漏洞。用戶(hù)必須確信用戶(hù)的公鑰屬于需要收信的那個(gè)人。
PGP發(fā)展了一種公鑰介紹機(jī)制來(lái)解決這個(gè)問(wèn)題,其思路是這樣的:如果用戶(hù)A和用戶(hù)B有一個(gè)共同的朋友D,而D知道他手中的B的公鑰是正確的。這樣D就成為用戶(hù)A和B之間的公證人,用戶(hù)B為了防止別人篡改自己的公鑰,就把經(jīng)過(guò)D簽名的自己的公鑰上載到BBS上讓用戶(hù)去拿,用戶(hù)A想要取得用戶(hù)B的公鑰就必需先獲取D的公鑰來(lái)解密BBS或網(wǎng)上經(jīng)過(guò)D簽名的B的公鑰,這樣就等于加了雙重保險(xiǎn),一般沒(méi)有可能去篡改它而不被用戶(hù)發(fā)現(xiàn),即使是BBS的管理員。這就是從公共渠道傳遞公鑰的安全手段。
也許還有人會(huì)問(wèn):如何安全地得到D或其他簽名朋友的公鑰呢。確實(shí)有可能用戶(hù)A拿到的D或其他簽名的朋友的公鑰也是假的,但這就求這個(gè)用戶(hù)C必須對(duì)你們?nèi)松踔梁芏嗳硕己苁煜?,這樣的可能性不大,而且必需經(jīng)過(guò)長(zhǎng)時(shí)間的策劃。當(dāng)然,PGP對(duì)這種可能也提出了預(yù)防的建議,那就是由一個(gè)大家普遍信任的機(jī)構(gòu)擔(dān)當(dāng)這個(gè)角色,他被稱(chēng)為認(rèn)證權(quán)威機(jī)構(gòu),每個(gè)由他簽過(guò)字的公鑰都被認(rèn)為真的,這樣大家只要有他的公鑰就行了,認(rèn)證這個(gè)人的公鑰是方便的,因他廣泛提供這個(gè)服務(wù),假冒他的公鑰是極困難的,因?yàn)樗墓€流傳廣泛。這樣的"權(quán)威機(jī)構(gòu)"適合由非個(gè)人控制組織或政府機(jī)構(gòu)充當(dāng),現(xiàn)在已經(jīng)有等級(jí)認(rèn)證制度的機(jī)構(gòu)存在,如廣東省電子商務(wù)電子認(rèn)證中心(www.cnca.net)就是一個(gè)權(quán)威的認(rèn)證機(jī)構(gòu)。
本文介紹了電子商務(wù)中的信息加密技術(shù)和認(rèn)證技術(shù),具體分析了PGP加密技術(shù)。它將多種加密算法結(jié)合在一起,構(gòu)成一個(gè)混合加密算法。通過(guò)對(duì)GnuPG的實(shí)踐使用,使人們了解并解決如何建立密鑰、發(fā)布密鑰以及選擇密鑰信任度等問(wèn)題。
隨著Internet技術(shù)的成熟發(fā)展, 將會(huì)有更先進(jìn)的安全保密協(xié)議和技術(shù)被采用, 從而保證網(wǎng)上交易能安全高效的進(jìn)行, 電子商務(wù)也將以其特有的魅力為日益增多的網(wǎng)民服務(wù)。
知識(shí)點(diǎn):
PGP加密系統(tǒng)是采用公開(kāi)密鑰加密與傳統(tǒng)密鑰加密相結(jié)合的一種加密技術(shù)。它使用一對(duì)數(shù)學(xué)上相關(guān)的鑰匙,其中一個(gè)(公鑰)用來(lái)加密信息,另一個(gè)(私鑰)用來(lái)解密信息。PGP采用的傳統(tǒng)加密技術(shù)部分所使用的密鑰稱(chēng)為“會(huì)話(huà)密鑰”(sek)。每次使用時(shí),PGP都隨機(jī)產(chǎn)生一個(gè)128位的IDEA會(huì)話(huà)密鑰,用來(lái)加密報(bào)文。公開(kāi)密鑰加密技術(shù)中的公鑰和私鑰則用來(lái)加密會(huì)話(huà)密鑰,并通過(guò)它間接地保護(hù)報(bào)文內(nèi)容。









