トップページ >  PGP >  GnuPGのチュートリアル >  公開鍵と秘密鍵の作成
初版2009/09/01: 最終更新日2009/09/01
公開鍵と秘密鍵の作成
目次
はじめに
二つの鍵を作成するための流れ
作成した鍵の確認
はじめに
公開鍵と秘密鍵は、PGPソフトウェアにおける基本の機能であり、軸です。ファイルやメッセージの秘匿性を高めることはもちろん、セキュリティにおけるさまざまな効果を発揮します。

今回は、その二つの自分用の鍵を作成します。

二つの鍵のそれぞれの説明は別ページ「公開鍵と秘密鍵」をご確認ください。

二つの鍵を作成するための流れ

それでは早速、鍵の作成に入りましょう。
解説が縦に長くなっていますが、実際にユーザーがおこなう工程の数は10もありません。気楽に読んでください。

まず、以下のコマンドを入力します。

gpg --gen-key

--gen-keyとは、鍵を作るためのコマンドです。公開鍵と秘密鍵はセットなので、個別に作られることはありません。

入力後、以下のメッセージが現れます。

gpg (GnuPG) 1.4.9; Copyright (C) 2008 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

ご希望の鍵の種類を選択してください:
   (1) DSAとElgamal (既定)
   (2) DSA (署名のみ)
   (5) RSA (署名のみ)

あっさり説明するなら、ここでは鍵が扱うアルゴリズムの種類を選択します。現行のGnuPGで暗号化の機能を備えているのは一番上のみで、ほかは署名に用いられます。
以降のチュートリアルで暗号化を扱うため、ここでは1を選択します。

入力後、以下のメッセージが現れます。

DSA keypair will have 1024 bits.
ELG-E keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)

鍵のデータサイズを尋ねてきています。データサイズが大きくなるほど処理は遅くなりますが、セキュリティ性能は向上します。
今回は、最大の4096と入力します。

入力後、以下のメッセージが現れます。

要求された鍵長は4096ビット
鍵の有効期限を指定してください。
        0 = 鍵は無期限
     <n>  = 鍵は n 日間で満了
     <n>w = 鍵は n 週間で満了
     <n>m = 鍵は n か月間で満了
     <n>y = 鍵は n 年間で満了
鍵の有効期間は? (0)

鍵には、使用の有効期限を設定することが可能です。
末永く円滑なやり取りをおこなうには無期限が好ましいですが、定期的に鍵を変えないと不安な方や、限定期間のみ鍵を取り扱いたい方は有効期限を設定するといいでしょう。 今回は、無制限に設定します。

入力後、以下のようなメッセージが現れます。

Key does not expire at all
これで正しいですか? (y/N)

ここまでに入力したデータに間違いはないかという意味です。
問題がなければ、yを入力します。

あなたの鍵を同定するためにユーザーIDが必要です。
このソフトは本名、コメント、電子メール・アドレスから
次の書式でユーザーIDを構成します:
    "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

本名:

自分用のユーザーIDを作るため、各個人情報を入力します。
それぞれの情報は、自分用の物として管理できれば何だろうと構いません。ただし、電子メールアドレスだけは緊急時用にきちんと使えるものを当てておくことをお勧めします。

今回は、以下のように入力します。

本名: Example Taro
電子メール・アドレス: example_taro@example.com
コメント: I'm very Taro

入力を終えると、以下のメッセージが現れます。

次のユーザーIDを選択しました:
    “Example Taro (I'm very Taro) <example_taro@example.com>”

名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)?

入力に間違いがあればカッコ内の文字を選択し、内容を修正してください。Qを選択すると、今までに入力した情報が全て破棄されます。
作成を続けるにはO(オー)を選択します。

秘密鍵を保護するためにパスフレーズがいります。

パスフレーズを入力:

秘密鍵を使用するためのパスフレーズを入力します。パスフレーズは秘密鍵同様、厳重に保管してください。ここでの入力内容はまったく画面に表示されませんので、注意してください。

二回同じものを入力すると、次に進みます。

今から長い乱数を生成します。キーボードを打つとか、マウスを動かす
とか、ディスクにアクセスするとかの他のことをすると、乱数生成子で
乱雑さの大きないい乱数を生成しやすくなるので、お勧めいたします。
.++++++++++.+++++++++++++++++++++++++++

鍵の作成が開始されました。
数秒から、環境によっては数分程度の時間がかかりますので、そのあいだはパソコンでほかの作業をするなり、ぼけっとするなりしておくといいでしょう。(説明にある通り、パソコンをいじっておいた方が乱数の質が良くなる可能性があります)

しばらく待つと、以下のメッセージが表示されます。

gpg: 鍵D6ABB386を絶対的に信用するよう記録しました
公開鍵と秘密鍵を作成し、署名しました。

gpg: 信用データベースの検査
gpg: 最小の「ある程度の信用」3、最小の「全面的信用」1、PGP信用モデル
gpg: 深さ: 0  有効性:   1  署名:   0  信用: 0-, 0q, 0n, 0m, 0f, 1u
pub   1024D/D6ABB386 2009-08-01
               指紋 = A3FA 090A 4EEA 0F08 99AE 8CF6 1CB9 EC58 D6AB B386
uid                Example Taro (I'm very Taro)
sub   4096g/60815513 2009-08-01

完成しました。 次以降のチュートリアルでは、この鍵を使って暗号化や複合化をします。

なお、より詳しい情報は別ページ「鍵セットの作成」を参照。

作成した鍵の確認
実際に鍵は作成されているのでしょうか。確認のために以下のコマンドを入力します。

gpg --list-keys

入力すると、以下のように情報が現れます。

C:/Documents and Settings/user/Application Data/gnupg\pubring.gpg
---------------------------------------------------------------
pub   1024D/D6ABB386 2009-08-01
uid                  Example Taro (I'm very Taro)
sub   4096g/60815513 2009-08-01

作成日と名前、コメントが入力したものと合っていますね。鍵IDの並びも、先ほど出力されたものと見比べると合っています。
成功です。

なお、より詳しい情報はコマンド「一覧表示」を参照。