GnuPG
Information on how to protect your privacy and cryptography in Japanese. Dedicated to Bananafish.

Home | Tin-foil hat | Encryption | Cryptography | Miscellaneous | Site Map | Email & PGP Key

free web page counters

GnuPG(インストール) for Windows Users

インストール

ここから最新版をダウンロードする。
インストーラから GnuPG をインストールする。
GnuPG のディレクトリにパスを通しておく。

チェック

DOS コマンドプロンプトから "gpg --version" と入力してリターン。
下のようなメッセージが表示されたらインストール完了。

gpg (GnuPG) 1.4.1
Copyright (C) 2005 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.

Home: C:/Documents and Settings/bporter/Application Data/GnuPG
Supported algorithms:
Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512
Compression: Uncompressed, ZIP, ZLIB, BZIP2

GnuPGのWindows 版GUIフロントエンド

GPGShell
(私はこれを使っています)

WinPT
(使っていないので分かりませんが高機能なようです)

GPGee
(エクスプローラから GnuPG を扱えるようにするようです)

GnuPG(鍵の作成)

鍵の作成

新しい鍵ペアを作る(鍵ペア(key pair): 秘密鍵と公開鍵)
gpg --gen-key

最初の質問はどのアルゴリズムを使うかの選択です。
特に何もなければデフォルトの DSA/ ElGamal をお勧めします。
1 を入力後 Enter
次の質問は鍵の長さです。
鍵が長くなれば解読される可能性は低くなりますが処理時間が長くなります。
2048 を入力後 Enter
次に鍵の有効期限を聞いてきます。
0 を入力後 Enter
確認メッセージが出るので
y を入力後 Enter

名前を聞いてくるので名前を入力して Enter
次にメールアドレスを入力して(入力しなくても構いません) Enter
そしてコメントを入力して(入力しなくても構いません) Enter
すると名前、メールアドレス、コメントに間違いが無いか聞いてくるので、間違いが無ければ o(ok の o)を入力して Enter

最後にパスフレーズを入力します。
パスワードではありませんのでスペースやシフトキーも組み合わせて下さい。
良いパスフレーズは下の要素を持った物です。
 * 十分な長さ
 * アルファベット以外のキャラクタを含んでいる。
 * 名前とかではなく、想像がつきにくい

パスフレーズの入力と再入力が終わると鍵の生成が始まります。

GnuPG(基本的な使い方)

1.公開鍵のエクスポート

gpg --export [UID]

もし UID を省略すると全ての鍵がエクスポートされます。
デフォルトでは出力は stdout でバイナリです。 -o option を付けるとファイルに出力されます。 -a option を付けると ASCII で出力されます。

gpg -o pubkey.asc -a --export [UID]

2.鍵のインポート

gpg --import [Filename]

3.鍵の破棄

gpg --gen-revoke [UID]
これは破棄証明書を作成します。その為には秘密鍵とパスフレーズが必要です。

4.鍵の管理

gpg --list-keys
全ての鍵が表示されます。

gpg --list-sigs
全ての鍵のシグネチャが表示されます。

gpg --fingerprint
全ての鍵のフィンガープリントが表示されます。

gpg --list-secret-keys
秘密鍵が全て表示されます。

gpg --delete-key [UID]
公開鍵の削除。

gpg --delete-secret-key
秘密鍵の削除。

gpg --edit-key [UID]
様々な鍵への操作を行います。

5.鍵への署名

gpg --edit-key [UID] コマンドで署名したい鍵を選択して、 sign コマンドで署名します。

6.暗号化と複合化

6.1.暗号化

gpg -e Recipient [Data] または gpg --encrypt Recipient [Data] です。

gpg -o [Filename] --encrypt -r [Recipient] [Data]
この場合は [Recipient] の公開鍵で [Data] を暗号化して [Filename] というファイルに出力する。

6.2.複合化

gpg -d [Data] または gpg --decrypt [Data] です。

gpg -o [Filename] -d [Data] です。
この場合は [Data] を複合化して [Filename] というファイルに出力する。

7.署名と署名のチェック

データに自分のキーで署名する時は下のコマンド。
gpg -s (or --sign) [Data]
この場合は圧縮されるので読むことが出来ません。
読めるようにしたい場合は下のコマンドでクリアサインを使って下さい。
gpg --clearsign [Data]

バイナリファイルのように署名ファイルを別のファイルに分けたい時は下のコマンドを使う。
gpg -b (or --detach-sign) [Data]
また --armor option を付ける事もできます。

また暗号化して署名する場合は下のようになります。
gpg [-u Sender] [-r Recipient] [--armor] --sign --encrypt [Data]

署名されたデータをチェックする時はしたのコマンドを使う。
gpg [--verify] [Data]
これは署名した人の公開鍵を持っている時にだけ使えます。

GnuPG (Key Type)

Key Type の見方

gpg --edit-key [ユーザーID] で鍵を選択する。

pub 1024D/xxxxxxx created: expires: usage: CS
sub 2048g/xxxxxxx created: expires: usage: E

上のような表示がされます。

1024D, 2048g の記号の意味は

D == DSA
g == ElGamal
R == RSA

usage: の意味は

C == certify (他の鍵に署名)
S == sign (データに署名)
A == authenticate (e.g. ssh)
E == encryption (暗号化)

GnuPG(ユーザ ID の追加と削除)

ユーザ ID の追加

gpg --edit-key [ユーザーID] で鍵を選択する。
adduid と入力して Enter
名前、メールアドレス、コメントを入力して OK なら O を入力して Enter。
パスフレーズを入力する。
quit で処理を終了させる。
変更を保存しますか? (y/N) と聞かれたら、y で保存して終了。

ユーザ ID の削除

gpg --edit-key [ユーザーID] で鍵を選択する。
uid を入力して Enter で1番目のユーザ ID が選択される。
(選択された ユーザ ID に * が付く)
もう一度、選択されたユーザ ID を選ぶと選択解除。
uid または uid 0 で全てのユーザ ID の選択を解除。
deluid と入力して Enter
このユーザーIDを本当に削除しますか? (y/N) に y を入力して Enter で選択されたユーザ ID が削除される。
quit で処理を終了させる。
変更を保存しますか? (y/N) と聞かれたら、y で保存して終了。

GnuPG(副鍵の追加と削除)

副鍵の追加

gpg --edit-key [ユーザーID] で鍵を選択する。
addkey と入力して Enter
パスフレーズを入力する。
鍵の種類を選択する。
ここでは (4) Elgamal (暗号化のみ) を選択するので 4 を入力して Enter
鍵の長さを入力します。
鍵の有効期限を指定する。
これで正しいですか? (y/N) の確認に y を入力する。
本当に作成しますか? (y/N) ともう一度聞いてくるので y を入力すると鍵の生成が始まる。
quit で処理を終了させる。
変更を保存しますか? (y/N) と聞かれたら、y で保存して終了。

副鍵の削除

gpg --edit-key [ユーザーID] で鍵を選択する。
key 1 を入力して Enter で1番目の副鍵が選択される。
(選択された Key に * が付く)
もう一度、選択された副鍵を選ぶと選択解除。
Key または Key 0 で全ての副鍵の選択を解除。
delkey と入力して Enter
この鍵を本当に削除しますか? (y/N) に y を入力して Enter で選択された副鍵が削除される。
quit で処理を終了させる。
変更を保存しますか? (y/N) と聞かれたら、y で保存して終了。

GnuPG(対称鍵暗号で暗号化)

対称鍵暗号で暗号化する

gpg -c test.txt
パスワードの入力と再入力を終えると
test.txt.gpg が出来る。

複合化は

gpg test.txt.gpg
パスワードを入力すると
test.txt が出来る。

GnuPG(gpg --edit-key)

quit


quit this menu
このメニューを終了

save


save and quit
保存して終了

help


show this help
このヘルプを表示

fpr


show fingerprint
指紋を表示

list


list key and user IDs
鍵とユーザーIDの一覧

uid


select user ID N
ユーザーID Nの選択

key


select secondary key N
副鍵Nの選択

check


list signatures
署名の一覧

sign


sign the key
鍵へ署名

lsign


sign the key locally
鍵へ内部的に署名

nrsign


sign the key non-revocably
失効できないよう鍵へ署名

nrlsign


sign the key locally and non-revocably
失効できないよう鍵へ内部的に署名

adduid


add a user ID
ユーザーIDの追加

addphoto


add a photo ID
フォトIDの追加

deluid


delete user ID
ユーザーIDの削除

addkey


add a secondary key
副鍵の追加

delkey


delete a secondary key
副鍵の削除

addrevoker


add a revocation key
失効鍵の追加

delsig


delete signatures
署名の削除

expire


change the expire date
有効期限の変更

primary


flag user ID as primary
ユーザーIDを主にする

toggle


toggle between secret and public key listing
秘密鍵と公開鍵の一覧の切替え

pref


list preferences (expert)
選好の一覧 (エキスパート)

showpref


list preferences (verbose)
選好の一覧 (冗長)

setpref


set preference list
選好の一覧を設定

updpref


updated preferences
選好の一覧を更新

passwd


change the passphrase
パスフレーズの変更

trust


change the ownertrust
所有者信用の変更

revsig


revoke signatures
署名の失効

revuid


revoke a user ID
ユーザーIDの失効

revkey


revoke a secondary key
副鍵の失効

disable


disable a key
鍵の使用を禁止する

enable


enable a key
鍵の使用を許可する

showphoto


show photo ID
フォトIDを表示

clean


clean unusable parts from key

GnuPG(Key Servers)

公開鍵の検索

gpg --keyserver 鍵サーバ名 --search-keys メールアドレス or 名前

表示された公開鍵の先頭番号を入力すると,その人の公開鍵がインポートされる。
"N"を入力すると最大表示件数(10件)以降の一覧が表示される。
"Q"を入力で終了。

公開鍵を鍵サーバへ登録

gpg --keyserber 鍵サーバ名 --send-keys メールアドレス or 名前 or 鍵ID

公開鍵の取り込み

gpg --keyserber 鍵サーバ名 --recv-keys 鍵ID

インポートした公開鍵の更新

gpg --keyserber 鍵サーバ名 --refresh-keys

鍵サーバ名はサーバの URL を指定する。
前半部分には ldap:, hkp:, finger:, http: が来る。

Key Servers

http://pgpkeys.pca.dfn.de:11371
hkp://blackhole.pca.dfn.de
http://pgp.dtype.org:11371
pgp.dtype.org:11371
subkeys.pgp.net
keyserver.kjsl.com
ldap://certserver.pgp.com
hkp://sks.keyserver.penguin.de
random.sks.keyserver.penguin.de
hkp://the.earth.li
ldap://horowitz.surfnet.nl:11370

GnuPG(その他のコマンド)

ハッシュ・アルゴリズムの設定

digest-algo RIPEMD160
cert-digest-algo RIPEMD160

破棄された又は有効期限の切れた署名の削除

gpg --edit-key (your key)
clean sigs
Use just "clean" to remove revoked/expired uids as well.

インポート・エクスポート時に自動でクリーンにするセッティング

--import-options import-clean-sigs import-clean-uids
--export-options export-clean-sigs export-clean-uids
破棄証明書自身は削除されない。

GnuPG(アルゴリズム)

Version 1.4.1 でサポートしているアルゴリズム

Cipher-Algos

S1: IDEA, S2: 3DES, S3: CAST5, S4: BLOWFISH, S7: AES, S8: AES192, S9: AES256, S10: TWOFISH

Digest-Algos

H : MD5, H2: SHA1, H3: RIPEMD160, H6: TIGER192, H8: SHA256, H9: SHA384, H10: SHA512

Compress-Algos

Z0: Uncompressed, Z1: ZIP, Z2: ZLIB, Z3: BZIP2

GnuPG (Tips)

keyserver への http アクセスを Tor 経由にする

gpg.conf の keyserver-options に http-proxy=http://127.0.0.1:8118 を追加する。
GPGShell からは Preferences | GnuPG で keyserver-options をクリックして http-proxy に http://127.0.0.1:8118 を追加する。

Enigmail でメールを受信した時に自動でパブリック・キーをインポートする

gpg.conf に keyserver-options aut-kye-retrieve を追加する。

Links

List of public key servers

http://www.cryptnet.net/fdp/crypto/gpg-party.html#ss5.1

Keyserver Web Interfaces

keyserver.noreply.org
telering

PGPdump Web Interface

PGPdump Interface


PGP の互換性

PGP compatibility tables