gpg-GnuPG,Gnu Privacy Guard-とは、公開鍵暗号と呼ばれる暗号、電子署名システムです。Phillip Zimmermann氏が開発したPGP(R)-Pretty Good Privacy-から、特許に抵触する部分を排除し、スクラッチから書き下ろされたOpenPGPに準拠するGPLライセンスのフリーな実装です。
当初は電子メールの暗号化と正当性、改竄されていない事を証明するための署名利用が主でしたが、今日ではファイルの暗号化、ネットワークを通じて配布されるプログラムの正当性(改竄されていない事など)を示すための署名として、旧来からのmd5ハッシュに変わって利用されるケースも増えてきています。GnuPGでは特許やライセンスに抵触する部分を除去しているため、一部、PGP(R)の実装とはバージョンなどにより非互換となるケースがあります。
GPG,OpenPGPの仕組み
GPG、PGP(R) 、OpenPGPでは実際に面識のある場合やキーサインパーティーなどで身分証明書と鍵のフィンガープリント(指紋)などを確認した上で、お互いの鍵に署名し、信頼度を高めるという仕組み(紹介制のSNSのような感じ)があり、信頼の輪、鍵の輪(keyring)という考え方を持ちます。また、公開鍵サーバー(デフォルトではhkp://subkeys.pgp.net(httpでのアクセスはhttp://wwwkeys.pgp.net/ですが、Webアクセスは出来ないケースがあるようですので、Webアクセスにはhttp://keyserver.veridis.com:11371/を使うとようでしょう。wwwkeys.pgp.net、及びsubkeys.pgp.netはDNSラウンドロビンされており、いくつかのサーバーが分担して答えます。)が設定されています。)も用意されており、自身の鍵を登録しておいたり他人の鍵を探してインポートすることなどができます。また、OpenPKSD.orgやPGP Corporationによる鍵サーバーも提供されています。
GPG、OpenPGPではSSLやTLSなどとは異なり、正当性を証明する認証局(CA, Certificate Authority)があるわけではなく、SSHと同様、デフォルトで自分自身が公開鍵と秘密鍵を生成し使用する所が特徴的です。今後のPKI(Public Key Infrastructure, 公開鍵基盤)整備の動向などは注目に値するところです。
