nDiki : gnupg-w32

GnuPGWindows

インストール方法 (1.4.0a)

  1. http://www.gnupg.org/ から、gnupg-w32cli-1.4.0a.zip をダウンロードする。
  2. ZIP アーカイブを展開する。
  3. gpg.exe、gpgv.exe、gpgkeys_ldap.exe を PATH の通ったディレクトリにコピーする。
  4. c:\gnupg ディレクトリを作成する。

捕捉

  • c:\gnupg 以外のディレクトリを指定したい場合は、レジストリを書き換える(README.W32参照)。
  • 日本語のメッセージを出るようにするには、moファイルの配置とレジストリの書き換えを行う(README.W32参照)。
  • GUI を使いたいならば、WinPT を。

簡単な使い方

鍵ペアの作成

コマンド プロンプト

 gpg --gen-key

を実行する。

 C:\>gpg --gen-key
 gpg (GnuPG) 1.4.0; Copyright (C) 2004 Free Software Foundation, Inc.
 This program comes with ABSOLUTELY NO WARRANTY.
 This is free software, and you are welcome to redistribute it
 under certain conditions. See the file COPYING for details.

 gpg: keyring `c:/gnupg\secring.gpg' created
 gpg: keyring `c:/gnupg\pubring.gpg' created
 Please select what kind of key you want:
    (1) DSA and Elgamal (default)
    (2) DSA (sign only)
    (5) RSA (sign only)
 Your selection? <-- リターンキー
 DSA keypair will have 1024 bits.
 ELG-E keys may be between 1024 and 4096 bits long.
 What keysize do you want? (2048) <-- リターンキー
 Requested keysize is 2048 bits
 Please specify how long the key should be valid.
          0 = key does not expire
       <n>  = key expires in n days
       <n>w = key expires in n weeks
       <n>m = key expires in n months
       <n>y = key expires in n years
 Key is valid for? (0) <-- リターンキー
 Key does not expire at all
 Is this correct? (y/N) y <-- y を入力してリターンキー

 You need a user ID to identify your key; the software constructs the user ID
 from the Real Name, Comment and Email Address in this form:
     "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

 Real name: GnuPG Taro <-- 名前を入力してリターンキー
 Email address: gnupg.taro@example.example <-- メールアドレスを入力してリターンキー
 Comment: <-- コメントを入力してリターンキー。必要がなければ何も入力しないでリターンキー
 You selected this USER-ID:
     "GnuPG Taro <gnupg.taro@example.example>"

 Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O <-- O を入力してリターンキー
 You need a Passphrase to protect your secret key.

 Enter passphrase: <-- 自分だけの秘密にしておくパスフレーズを入力してリターンキー
 Repeat passphrase: <-- もう一度入力してリターンキー
 We need to generate a lot of random bytes. It is a good idea to perform
 some other action (type on the keyboard, move the mouse, utilize the
 disks) during the prime generation; this gives the random number
 generator a better chance to gain enough entropy.
 +++++.++++++++++.+++++.+++++..++++++++++.+++++.++++++++++++++++++++.++++++++++..
 +++++++++++++++.++++++++++++++++++++...++++++++++++++++++++++++++++++...........
 ..............................................+++++
 We need to generate a lot of random bytes. It is a good idea to perform
 some other action (type on the keyboard, move the mouse, utilize the
 disks) during the prime generation; this gives the random number
 generator a better chance to gain enough entropy.
 ++++++++++..+++++++++++++++...++++++++++++++++++++.+++++++++++++++.+++++++++++++
 ++++++++++++++++++++++.++++++++++++++++++++.++++++++++++++++++++.+++++.+++++>+++
 ++.+++++.>+++++.................................................................
 ................................................................................
 ......................+++++^^^^
 gpg: c:/gnupg\trustdb.gpg: trustdb created
 gpg: key F795F021 marked as ultimately trusted
 public and secret key created and signed.

 gpg: checking the trustdb
 gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
 gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
 pub   1024D/F795F021 2005-02-02
       Key fingerprint = E997 95AA ACEC 518B D4AC  661E 65CD E224 F795 F021
 uid                  GnuPG Taro <gnupg.taro@example.example>
 sub   2048g/CC09A839 2005-02-02

これで鍵ペアが生成された。

自分の公開鍵テキストファイル書き出す

 gpg --export --armor gnupg.taro@example.example > key.asc

gnupg.taro@example.example の部分は自分のメールアドレス。 key.asc に自分の公開鍵が書き出される。

これをGnuPGでやりとりする他の人に送ってキーリングに登録してもらう。

fingerprint を確認する

 C:\>gpg --fingerprint gnupg.taro@example.example
 pub   1024D/F795F021 2005-02-02
       Key fingerprint = E997 95AA ACEC 518B D4AC  661E 65CD E224 F795 F021
 uid                  GnuPG Taro <gnupg.taro@example.example>
 sub   2048g/CC09A839 2005-02-02

gnupg.taro@example.example の部分は自分のメールアドレス。 Key fingerprint = の後の数字とアルファベットの列が fingerprint。

公開鍵を送った方法とは別の方法で、キーリングに登録してもらう人に伝えるのが良い。

ファイルに電子署名する

test.txt に電子署名をする場合は

 gpg --sign --output test.txt.gpg test.txt

とする。実行するとパスフレーズの入力を求められるので、正しく入力する。 成功すると test.txt.gpg というファイルが作成される。

電子署名を検証する

先に自分で作成した test.txt.gpg を検証してみるには、

 C:\tmp>gpg --verify test.txt.gpg
 gpg: Signature made 02/02/05 10:58:45 東京 (標準時) using DSA key ID F795F021
 gpg: Good signature from "GnuPG Taro <gnupg.taro@example.example>"

とする。正しく署名されていれば、Good signature from……と出力される。

自分の公開鍵暗号化されているファイルを復号化する

他の人から送られてきた暗号化されているファイル encrypted.txt.gpg を復号化する場合

 C:\>gpg --decrypt encrypted.txt.gpg
 You need a passphrase to unlock the secret key for
 user: "GnuPG Taro <gnupg.taro@example.example>"
 2048-bit ELG-E key, ID CC09A839, created 2005-02-02 (main key ID F795F021)

 Enter passphrase: <-- ここでパスフレーズを入力する
 gpg: encrypted with 2048-bit ELG-E key, ID CC09A839, created 2005-02-02
      "GnuPG Taro <gnupg.taro@example.example>"
 .... ここに復号化された内容が出力される。

ファイルに保存したい場合は --output オプションを使って

 gpg --output encrypted.txt --decrypt encrypted.txt.gpg

とするかリダイレクトを使って

 gpg --decrypt encrypted.txt.gpg > encrypted.txt

とする。

関連情報

スポンサード リンク

2005年2月2日 (水)

GnuPG の布教失敗

仕事で本社にパスワードを伝えるなければならなくなった。 メールで送るのはもちんまずいので、暗号化(必要ならば電子署名も)しなければ。

ちょうど以前 NaneyOrgWikiGnuPGWindows 版 (gnupg-w32) の簡単な使い方を書いたことがあった。1.2.0 の時に書いたものだったので最新の 1.4.0a で、動作確認・出力等の再ドキュメント化などをする。

で、あとちょっとまとめたらその文書のポインタを本社の担当に送って鍵ペアをまずは作成してもらって……ふとMewメールをチェックすると……別のスタッフがパスワードメーリングリストに流しているんやないけー。

タッチの差で間にあわなかったか。

次回からはメールパスワードをやりとりしないように指導。

スポンサード リンク
[ 2月2日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.050329s / load averages: 0.32, 0.45, 0.48
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker