GNU Privacy Guard(簡(jiǎn)稱GnuPG或GPG)是由Werner Koch于1997年啟動(dòng)開發(fā)的加密軟件,遵循GPL協(xié)議和OpenPGP技術(shù)標(biāo)準(zhǔn)。1999年9月發(fā)布1.0.0版本,德國(guó)聯(lián)邦經(jīng)濟(jì)及科技部曾資助其移植至Windows系統(tǒng),2006年發(fā)布的2.0版本新增S/MIME協(xié)議支持并形成雙分支架構(gòu)。該軟件由自由軟件基金會(huì)維護(hù),提供數(shù)據(jù)加密、數(shù)字簽名及非對(duì)稱密鑰生成功能,支持RSA、DSA、Elgamal等多種加密算法。
GnuPG采用命令行界面,支持KDE、GNOME等圖形前端集成,Windows環(huán)境下通過Gpg4win套件實(shí)現(xiàn)系統(tǒng)集成和郵件加密。密鑰生成支持自定義有效期(默認(rèn)永久)和RSA密鑰長(zhǎng)度(默認(rèn)2048位),使用AES256作為默認(rèn)對(duì)稱加密算法。該軟件存在高危漏洞影響舊版本,廠商已發(fā)布修復(fù)程序。其加密過程采用用戶生成的密鑰對(duì),通過公鑰交換和數(shù)字簽名驗(yàn)證機(jī)制保障數(shù)據(jù)安全,支持生成吊銷證書聲明公鑰失效。
GNU Privacy Guard(GnuPG或GPG)是一種加密軟件,它是PGP加密軟件的滿足GPL的替代物。GnuPG依照由IETF訂定的OpenPGP技術(shù)標(biāo)準(zhǔn)設(shè)計(jì)。GnuPG用于加密、數(shù)字簽名及產(chǎn)生非對(duì)稱鑰匙對(duì)的軟件。
IETF正在為PGP協(xié)議進(jìn)行標(biāo)準(zhǔn)化,標(biāo)準(zhǔn)化的PGP稱為OpenPGP。當(dāng)前版本的PGP及Veridis' Filecrypt與GnuPG或其他OpenPGP系統(tǒng)兼容。
GnuPG是自由軟件基金會(huì)的GNU計(jì)劃的一部分,目前受德國(guó)政府資助。以GNU通用公共許可證第三版許可。
德國(guó)人Werner Koch于1997年9月,在一個(gè)興趣組(BoF session)上聽了理查德·斯托曼的請(qǐng)求歐洲自由軟件編寫者實(shí)現(xiàn)公開密鑰軟件的演講。美國(guó)密碼技術(shù)出口限制禁止在美國(guó)境內(nèi)編寫這樣的軟件,甚至在境外的美國(guó)公民也不行。Koch用Blowfish算法代替IDEA算法,用Elgamal算法代替RSA算法,實(shí)現(xiàn)了流加密,增加了一些密鑰管理,獲得Peter Gutmann的授權(quán)使用隨機(jī)數(shù)代碼(適用于沒有/dev/random的系統(tǒng))。于1998年2月24日發(fā)布了第一個(gè)版本(gnupg-0.2.8)。1998年7月,第一個(gè)幾乎與OpenPGP兼容的版本。1998年底,Matthew Skala貢獻(xiàn)了Twofish代碼,Michael Roth貢獻(xiàn)了Triple-DES實(shí)現(xiàn)。這樣,OpenPGP所需的一套算法就完成了。
1.0.0版于1999年9月7日發(fā)布。2010年9月18日發(fā)布了專利剛剛失效的RSA的1.0.3版。德國(guó)聯(lián)邦經(jīng)濟(jì)及科技部于2000年資助31.8萬馬克推動(dòng)把它移植至Microsoft Windows。GnuPG是按照OpenPGP標(biāo)準(zhǔn)的軟件,因此OpenPGP的歷史與GnuPG的關(guān)系密切。電子郵件加密協(xié)議則由Phil Zimmermann開發(fā)。2000年修改的美國(guó)出口控制條款最終允許美國(guó)公民可以參與GnuPG的開發(fā)。
德國(guó)政府于2005年資助開發(fā)S/MIME。GnuPG 2.0于2006年11月13日發(fā)布,加入了S/MIME-多用途網(wǎng)際郵件擴(kuò)充協(xié)議(Secure Multipurpose Internet Mail Extensions.RFC 2311)。因?yàn)镚nuPG 2.0的新的軟件架構(gòu)不支持某些用途,所以1.x與2.0是兩個(gè)分支版本。
雖然基本的GnuPG程序有一個(gè)命令行界面,仍然存在許多提供圖形用戶界面的前端。例如GnuPG加密被集成進(jìn)了Linux里流行的桌面環(huán)境KDE和GNOME里的圖形化電子郵件客戶端:KMail和Novell Evolution。也有GnuPG的圖形化前端(GNOME里的Seahorse,KDE里的KGpg)。在Mac OS X上,Mac GPG項(xiàng)目提供Aqua作為操作系統(tǒng)集成的加密前端和密鑰管理器和GnuPG安裝一樣通過Installerpackages進(jìn)行安裝。此外,GPGMail項(xiàng)目可以使Apple Mail使用GnuPG加密。Instant messaging程序,例如,當(dāng)GnuPG已經(jīng)安裝并配置好了時(shí),Psi和Fire可以自動(dòng)安全的傳遞消息。像Horde這類的基于互聯(lián)網(wǎng)的軟件也可以使用GnuPG??缙脚_(tái)插件Enigmail為Mozilla Thunderbird和SeaMonkey提供了GnuPG支持。類似的,Enigform和FireGPG為Mozilla Firefox提供了GnuPG支持。
在2005年,G10 Code和Intevation發(fā)行了Gpg4win,一個(gè)包含GnuPG for Windows,WinPT、Gnu Privacy Assistant,和為Windows Explorer和Outlook提供的GnuPG插件的mail軟件套裝。這些工具被包裝進(jìn)了一個(gè)標(biāo)準(zhǔn)的微軟安裝包里,使得它可以很容易的使GnuPG在Windows系統(tǒng)上安裝和使用。
GnuPG使用用戶自行生成的非對(duì)稱密鑰對(duì)來加密信息,由此產(chǎn)生的公鑰可以同其他用戶以各種方式交換,如密鑰服務(wù)器。他們必須小心交換密鑰,以防止得到偽造的密鑰。GnuPG還可以向信息添加一個(gè)加密的數(shù)字簽名,這樣,收件人可以驗(yàn)證信息完整性和發(fā)件人。GnuPG不利用專利或其他方式限制軟件或算法,就像IDEA算法一開始出現(xiàn)在PGP中一樣。(可以通過下載相關(guān)插件在GnuPG中使用IDEA算法,不過如果在一些IDEA算法為專利的國(guó)家中使用,可能需要一份許可)。GnuPG同樣也使用各種其他非專利的算法:
分組密碼:CAST5、Camellia、Triple DES、AES、Blowfish、Twofish
非對(duì)稱加密密碼:ElGamal、RSA
加密哈希:RIPEMD-160、MD5、SHA-1、SHA-2、Tiger
數(shù)字簽名:DSA、RSA
GnuPG是一個(gè)混合加密軟件程序,它使用常規(guī)對(duì)稱密鑰提高加密速度,使用公鑰便于交換。通常使用一次性的收件人公鑰用以加密會(huì)話。
支持GPG的應(yīng)用程序、前端及瀏覽器擴(kuò)展:
Claws Mail
Enigform
Enigmail
FireGPG
Gpg4win
Gpg4usb
GPGMail
GPGServices
GPGshell
GPGTools
KGPG
MCabber
Mutt
Psi(軟件)
WinPT
PGP
加密技術(shù)
密碼學(xué)