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