どのバージョンの PGP を Mutt-i で使うにしても、最初に PGP を適切に設定して、公開鍵ファイル (公開鍵束) と秘密鍵ファイル (秘密鍵束) を存在させておかなくてはなりません。事前にコマンドラインから、 PGP が正確に署名や暗号化を行なうことを確実にしておくのがよいでしょう。
Unix 版で存在する PGP のバージョンには 2.6.3(i)
と
5.0(i)
があり、それぞれ順番に、PGP2 と PGP5 と呼ばれています。
GnuPG は新しい暗号システムです。最近になって開発されてきたものですが、
先進的な開発形態のオープンソースでフリーであり、多くの面において PGP
より優れています (GnuPG mini howto
http://www.dewinter.com/gnupg_howto をご覧ください)。
さらに PGP が、アメリカ合衆国で開発されているプログラムであるため、 暗号関連コードを含むプログラムに関する輸出制限の法律にひっかかるという ことを明らかにしておきましょう ― このために、ほとんどすべてのバイナリ バージョンに国際版が存在しており、それは「i」という文字で区別 されます (pgp - pgpi)。
PGP2 は RSA http://www.rsa.com アルゴリズムで鍵を生成し、IDEA http://www.ascom.ch を暗号化アルゴリズム に使用します。両方とも使用に制約のあるアルゴリズムであり、それぞれの特許に よって使用が制限されています。 (訳注: この記述について、状況が変わっているという指摘もあります)
正しく動作させるためには、それをインストールしておき、~/.pgp
というディレクトリを用意し、その中に設定ファイル pgp-i.conf
と、秘密鍵
および公開鍵の鍵束ファイルである pubring.pgp
および secring.pgp
を入れておく必要があります。
PGP5 によって生成される鍵は DSS/DH (Digital Signature Standard / Diffie-Helman) 方式です。PGP5 は CAST と Triple-DES、 また IDEA を暗号化アルゴリズムに用います。PGP5 は RSA (PGP2) で 署名や暗号化をされたデータも扱うことができますし、その鍵 (つまり PGP2 で 生成された鍵です。PGP5 はその鍵を造ることができませんから) を使って署名や 暗号化を行なうことができます。しかし一方、PGP2 は PGP5 の DSS/DH な鍵を使えません ― このため非互換性の問題が生じています。なぜなら PGP2 を Unix/Linux で使用し続けている人も多いからです。
PGP5 が正しく動作するように、~/.pgp
ディレクトリに
公開鍵と秘密鍵の鍵束 (それぞれ pubring.pkr
また secring.skr
と
なります)、そして設定ファイル pgp.cfg
を置いておきましょう。
両方のバージョンの PGP をインストールしてある (PGP5 の前に PGP2 の
インストールと設定をしていた) 場合には、下記のように PGP5 の設定ファイル
~/.pgp/pgp.cfg
を ~/.pgp/pgp-i.conf
という
設定ファイルのシンボリックリンクとして作成して、
~/.pgp$ ln -s pgp-i.conf pgp.cfg
こういう行を ~/.pgp/pgp-i.conf
というファイルの
末尾に加えましょう:
PubRing = "~/.pgp/pubring.pkr"
SecRing = "~/.pgp/secring.skr"
RandSeed = "~/.pgp/randseed.bin"
異なるバージョンの鍵束のファイルは何の問題もなく同一ディレクトリに 共存することができるのです。
GnuPG は前述のものと同一の機能を持つプログラムです。PGP との 違いは、GnuPG が特許による制限のあるアルゴリズムを使用しない点です。 PGP は個人的な使用は自由ですが、商業的な仕事はその限りではありません。 さらに開発は非公開です。GnuPG はいかなる作業での使用も自由であり、 我々の大好きなオペレーティングシステムがそうであるのと同様、ソースが公開 されています (さらに、この実装および開発は主として Linux において なされています)。
GnuPG によって生成された鍵は DSA/ElGamal (Digital Signature Algorithm すなわち DSS) という種類のものです。これは 制限のある特許アルゴリズムである RSA と IDEA の使用を除けば 完全に PGP と互換しています。とはいえ、PGP2 や PGP5 と相互運用するためのある程度の互換性も実現することができます (GnuPG mini howto http://www.dewinter.com/gnupg_howto を参照)。