郵件加密之PGP加密技術(shù)

在之前的文章中,我們講了郵件加密協(xié)議S/MIME,今天我們來了解并一個(gè)可以用于郵件加密的技術(shù)——PGP加密。

什么是PGP加密?

PGP全稱為Pretty Good Privacy,中文名叫做優(yōu)良保密協(xié)議。是采用公開密鑰加密與傳統(tǒng)密鑰加密相結(jié)合的一種加密技術(shù),集消息加密、驗(yàn)證于一體。經(jīng)常被用于加密電子郵件,不僅可為郵件加密,還可以對郵件實(shí)施數(shù)字簽名,確保郵件沒有被篡改。

PGP加密

PGP的功能特點(diǎn)

  • 對稱密碼

PGP支持用對稱密碼進(jìn)行加密和解密。對稱密碼可以單獨(dú)使用,也可以和公鑰密碼組合成混合密碼系統(tǒng)使用??梢允褂玫膶ΨQ密碼算法包括AES、IDEA、CAST、三重DES、Blowfish、Twofish、Camellia等。分組密碼模式使用的是CFB模式。

  • 公鑰密碼

PGP支持生成公鑰密碼的密鑰對,以及用公鑰密碼進(jìn)行加密和解密。實(shí)際上并不是使用公鑰密碼直接對明文進(jìn)行加密,而是使用混合密碼系統(tǒng)來進(jìn)行加密操作??梢允褂玫墓€密碼算法包括RSA和ElGamal等。

  • 數(shù)字簽名

PGP支持?jǐn)?shù)字簽名的生成和驗(yàn)證,也可以將數(shù)字簽名附加到文件中,或者從文件中分離出數(shù)字簽名。可以使用的數(shù)字簽名算法包括RSA、DSA、ECDSA(橢圓曲線DSA)、EdDSA(愛德華茲曲線 DSA)等。

數(shù)字簽名

  • 單向散列函數(shù)

PGP可以用單向散列函數(shù)計(jì)算和顯示消息的散列值??梢允褂玫膯蜗蛏⒘泻瘮?shù)算法包括MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512 和RIPEMD-160等。

  • 證書

PGP 可以生成OpenPGP中規(guī)定格式的證書,以及與X.509規(guī)范兼容的證書。此外,還可以頒發(fā)公鑰的作廢證明,并可以使用CRL和OSCP對證書進(jìn)行校驗(yàn)。

PGP加密

  • 鑰匙串管理

PGP可以管理所生成的密鑰對以及從外部獲取的公鑰,用于管理密鑰的文件稱為鑰匙串(key ring)。

PGP加密過程

  1. 用偽隨機(jī)數(shù)生成器生成會(huì)話密鑰。
  2. 用公鑰密碼加密會(huì)話密鑰。
  3. 壓縮消息。
  4. 使用對稱密碼對壓縮的消息進(jìn)行加密,這里使用的密鑰是步驟1中生成的會(huì)話密鑰。
  5. 將加密的會(huì)話密鑰(步驟2)與加密的消息(步驟4)拼合起來。
  6. 將步驟5的結(jié)果轉(zhuǎn)換為文本數(shù)據(jù),轉(zhuǎn)換后的結(jié)果就是報(bào)文數(shù)據(jù)。
  7. 混合密碼系統(tǒng)的特點(diǎn):用公鑰密碼加密會(huì)話密鑰,用對稱密碼加密消息。

PGP加密過程

PGP解密過程

  1. 接收者輸入解密的口令。
  2. 求口令的散列值,生成用于解密私鑰的密鑰。
  3. 將鑰匙串中經(jīng)過加密的私鑰進(jìn)行解密,得到接收者的私鑰。
  4. 將報(bào)文數(shù)據(jù)(文本數(shù)據(jù))轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)。
  5. 將二進(jìn)制數(shù)據(jù)分解成兩部分:加密的會(huì)話密鑰、經(jīng)過壓縮和加密的消息。
  6. 用公鑰密碼解密會(huì)話密鑰,這里使用步驟3中生成的接收者的私鑰。
  7. 對步驟5中得到的經(jīng)過壓縮和加密的消息用對稱密碼進(jìn)行解密,這里使用了步驟6中生成的會(huì)話密鑰。
  8. 對步驟7中得到的經(jīng)過壓縮的消息進(jìn)行解壓縮。
  9. 得到原始消息。

PGP解密過程

值得注意的是,PGP所采用的一種確認(rèn)公鑰合法性的方法——信任網(wǎng)。而信任網(wǎng)的要點(diǎn)是 “不依賴認(rèn)證機(jī)構(gòu),而是建立每個(gè)人之間的信任關(guān)系”。換言之,就是用戶能夠自己決定要信任哪些公鑰。所以在使用PGP時(shí),確認(rèn)自己所得到的公鑰是否真的屬于正確的人(公鑰合法性)是非常重要的。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪稿。