How to use PGP Return to Parent Menu 
Last Updated by 04/14/98(Tue)  

 
− Contents −
 


 
− 入手法 −
 

 現在、 PGP(tm) のバージョンは、PGP 5.5.3 が最新版です。

 現在でも、 M.I.T. (Massachusetts Institute of Technology) で開発が続けられています。
 しかし、 PGP 2.6 には RSAREF(tm) という暗号化のプログラム・ルーチンが使われているため、特許や武器取引法、輸出規制法等の問題で USA 国内でしか使えません。使えないことになっています。

  USA では暗号も武器だとみなされるのです。そのため USA 国外では、このルーチンをインプリメントしていない PGP 2.6.3i, PGP 5.0i という国際版の使用が基本となっています。

 この PGPi は Ståle Schumacher 氏らの開発チームにより作成されています。日本人でこの開発チームに参加している方にはPGP 国際版 (日本語版) のページ管理者である杉山 直樹氏がおられます。


 この PGP 日本語版内のページに登録されているファイルは zip 圧縮書庫形式ですので、 zip 解凍できるソフト ( Pkunzip or Unzip or etc... ) がお手元になければ、まずそのソフトを別途入手する必要があります。
▲ TOP 


 
− 鍵 −
 

 ※以下の説明はすべて、 PGP のファイル群を Pkunzip や Unzip を用いて C ドライブの \PGP というディレクトリに展開したものと仮定して行います。

 以下の説明は便宜的に、 MS-DOS のプロンプトを想定しています。
 ディレクトリ(フォルダ)のセパレータは '\' を使用します。

 その他の環境を構築した場合は、読み換えに注意してください。

  '↓' は Enter 及び Return を表すものとします。


  PGP を使うためには、まず自分の「公開鍵」と「秘密鍵」を作らなければなりません。

 以下にその方法を示します。鍵は、「公開鍵」と「秘密鍵」が同時に作成されます。

C:\PGP>pgp -kg↓

 次に鍵の長さを聞いてくるので、適当に選択します。
長い方がもちろん安全ですが、作成に時間がかかります。
鍵長は、512 bits, 768 bits, 1024 bits の 3 種があります。
どうやら、処理に時間はかかってもたいていの人が 1024 bits の鍵に落ちつくようです。

 次に、User ID を聞いてくるので、入力します。普通は本名とメールアドレスを使います。

本名 < メールアドレス >

  User ID は後から変えることができますが、「公開鍵」を多くの人に配った後だと更新するのが大変になります。

例) Philip R. Zimmermann <prz@acm.org>

これは PGP の産みの親、 Philip R. Zimmermann の User ID です。


  User ID は、鍵を実際に使うときに必要になるものです。

 何人もの「公開鍵」を格納しておく「公開鍵ホルダ」というものがあるのですが、その中から使う鍵を指定するときの鍵の名前として User ID を使います。

 要するに大切なのは、 User ID によってその「公開鍵」が誰のものであるか分かるようにしなければならないということなのです。


 次に、パスフレーズを聞いてきます。これが一番大事なところです。ファイルの復号化や電子署名など、自分の「秘密鍵」を使うときに入力する合い言葉です。

 長くて、誰にも想像できない、それでいて自分は絶対忘れない言葉を選びましょう。何か小説の文章の一節を使ったりしてもいいでしょう。
(もちろん、あんまり有名な小説はやめた方がよいでしょう。)


 生年月日や、英単語一つなどはパスフレーズにしないように。ちょっとこの分野の知識に詳しい人ならすぐにパスフレーズを破ることができてしまいます。
 今では、各種パスワードを破るために作られたキーワード辞典なるものがあって、よっぽど変わったパスワードでないと一瞬にして破られてしまうそうです。

 何万語ものパスワード候補を一瞬にして試すことなど、コンピュータの最も得意とするところですから。

 入力は半角英数字( 1 Bytes character ) にしてください。つまり、日本語のパスフレーズはローマ字表記で入力すればよいわけです。大文字小文字も区別されます。

 後から変えられますが、よく考えて決めましょう。そして、パスフレーズは基本的にどこかにメモしたりしないようにしてください。
 画面にはキーを叩いても何も表示されませんが、それは入力時に他人にパスフレーズを見られないようにするためであり、ちゃんと入力はされています。

  2 回入力して決定します。

 ※パスフレーズを忘れてしまったら、自分に届いたメールも読めないし、署名もできないし、悲惨なことになります。気をつけましょう。


 次に乱数を発生させて鍵の本体を作ります。画面左下に表示される数字が 0 になり、ビープ音が鳴るまで、適当にデタラメでいいのでキーをたたいてください。

 キー入力と次のキー入力の間の時間を計測して、その時間を乱数発生時の「種子」として使うのです。そうすることで、乱数表を更新してデタラメ度を高めるのです。

 そして完成するまで待ちます。
 作成状況は、点とアスタリスクが表示されることで表されます。じっと待ちましょう。

Key generation completed.

の表示で鍵作成完了です。

 「秘密鍵」は 'secring.pgp' に格納され、「公開鍵」は 'pubring.pgp' に格納されます。しかしこのままではバイナリィなので、中身は読めません。

 そこで、公開鍵をみんなに配るために次の操作で公開鍵を ASCII ファイル化します。
▲ TOP 


 
− アスキーファイル化 −
 

C:\PGP>pgp -kxa Philip Philip_Z↓
         (1)   (2)

(1) User ID の一部
(2) 作成ファイル名

上の例で行くと、'Philip_Z.asc' というファイルの中に、エディタで読める公開鍵ができます。
このファイルをできるだけ多くの人に、もしくは電子メールのやりとりをしたい人に配るのです。
▲ TOP 


 
− 暗号化と復号化 −
 

[ 暗号化 ]

C:\PGP>pgp -eat mail.txt Philip↓
            (1)   (2)

(1) 暗号化したいファイル
(2)メールを送りたい相手の User ID の一部
(使いたい公開鍵を指定するため)

※オプション解説( e:暗号化 a:アスキー化 t:テキスト)

-eat:暗号化してアスキー化

 上の場合は、 'mail.asc' という名前の暗号化されたファイルができます。これをこのまま、送信すればいいわけです。


 ここで、暗号化するファイルは別にテキストファイルでなくてもかまいません。バイナリーファイルであろうが、何でも良いのです。
C:\PGP>pgp -ea pgp.exe Philip

とすれば、 'pgp.asc' というファイルが作成されます。これを普通のメールとして送れば良いのです。
しかも、サイズが極めて小さくなるため、送信時間が短縮されるというメリットが生まれます。(圧縮がかかる)

 ※圧縮機能は ZIP 形式です。よって LHa 等のアーカイバで一次圧縮されているファイルはかえってサイズが大きくなります。
 他の圧縮形式のファイルについては未確認です。


[ 復号化 ]

 暗号化されたファイルの復号化は、あなたの秘密鍵を使って行います。
よって、あなたが復号化できるファイルはあなたの公開鍵で暗号化されたファイルのみです。

他人の秘密鍵と、それを使うためのパスフレーズを知った時はその限りではありませんが・・・。

C:\PGP>pgp mail.asc↓

 とすると、'mail' という復号化された元のファイルができあがります。 もちろん、パスフレーズを聞いてくるので、正確に入力しないと復号化してくれません。
▲ TOP 


 
− 公開鍵ホルダ −
 

 あなたが他人に暗号化したファイルを送るためには、送りたい相手の「公開鍵」を自分の「公開鍵ホルダ」に追加する必要があります。

C:\PGP>pgp -ka Philip_Z.asc↓

これであなたの「公開鍵ホルダ」である、 'pubring.pgp' へ、 Philip R. Zimmermann の「公開鍵」が追加されます。
▲ TOP 


 
− 電子署名 −
 

[ テキストへの電子署名 ]


 電子署名は、普通の「署名」とほぼ同じものです。
 その文書がその人によって作成されたということを証明するものです。

 ただし、普通の署名は偽造できますが、電子署名を偽造することは極めて難しいことです。

 気をつければほとんど不可能ではないかと思われます。
 そして電子署名はその文書が改竄されているかどうかまで知る手がかりとなります。

C:\PGP>pgp -sta mail.txt↓

 上の場合は、 'mail.asc' という署名済みファイルが作成されます。

 電子署名は、秘密鍵とメッセージダイジェスト関数によってなされます。
 当然、秘密鍵を使うのでパスフレーズの入力が必要です。

 メッセージダイジェスト関数については、 PGP を使うユーザー本人は考える必要がありません。 PGP 内部の処理で完結しているものです。

 署名して暗号化するときは、以下のように書きます。
C:\PGP>pgp -seat mail.txt Philip↓

 署名することで、メールを受け取った人間はそのメールが第三者によって書き換えられているかどうかを知り、本当に正しい差出人から送られたものかを知ることができます。

 上で述べた方法で復号化することができれば、そのメールが書き換えられておらず、正しい差出人から出されたものであるということです。

 もちろん、署名を確認するためには署名した人の公開鍵を持っている必要があります。
 ただし、公開鍵を指定する必要はありません。そのあたりは自動的に PGP が処理してくれます。


[ 公開鍵への電子署名 ]


 「公開鍵」だって改竄される可能性があります。それどころか、完全に偽物である可能性もあります。

 また、会ったことがない人の「公開鍵」を使う場合には、その人が通信の秘密を守るということ(つまりその人が復号化したあなたが作成した文書を、あなたの敵に流すことはないかということ)を信じられるか、もしくは自分に不利益をもたらす人間でないかということを知りたいものです。

 そこで、その公開鍵にあなたが信頼している人間の署名がされていれば、「あの人が信頼している人だから、少しは信頼に足る人物だ。」ということがわかります。

 このように鍵に署名をすることは、その人の「公開鍵」が本物で有効なものであることを証明するということなのです。

 あまりよく知らない人の「公開鍵」に署名するようなことは絶対してはいけません。
C:\PGP>pgp -kc↓

と入力すると、「公開鍵ホルダ」の中にある公開鍵が、誰に署名されているかを見ることができます。

 公開鍵への電子署名はあなたの「秘密鍵」で行います。
 以下のように入力します。
C:\PGP>pgp -ks Philip↓

とすれば、 Philip R. Zimmermann の「公開鍵」に署名できます。
▲ TOP 


 
− 鍵の指紋 −
 

 鍵を見分けるための User ID は、誰にでも偽造できます。
つまり Bill Gates の鍵をあなたが作ることだってできるのです。

 これでは、世の中にたくさん公開されている公開鍵が本当にその人の鍵なのか分かりません。

 そこで、「鍵の指紋」というものが用意されているのです。
C:\PGP>pgp -kvc pubring.pgp↓

この処理で、「公開鍵ホルダ」の中にある全ての公開鍵の鍵の指紋 ( Key fingerprint ) がわかります。

公開鍵の持ち主に電話などで問い合わせて、鍵の指紋を照合すればその公開鍵が偽物かどうかわかるのです。

 この鍵の指紋は、MD5 と呼ばれるメッセージダイジェスト関数を公開鍵に作用させてできる 128 bits の数字です。

 もしも公開鍵が偽物であれば、その鍵で暗号化したファイルは、あなたがファイルを送った相手に読んでもらうことができないばかりか、その偽物の公開鍵に対応する秘密鍵を持った何者か(盗聴者)にそのファイルの内容を永遠に読まれ続けることになります。
▲ TOP 


e-mail: mist@e-net.or.jp
Structured Anchor Tree Return to Menu Return to Parent Menu 
Powered by Unit Missing Link.