トップページ >  PGP >  GnuPGのコマンド >  署名の作成
初版2009/09/01: 最終更新日2009/09/01
4-1.  署名の作成
目次
署名とは
--sign
--clearsign
--detach-sign
署名とは
PGPにおける「署名」とは、いわゆる電子署名(デジタル署名)のことです。署名時点からファイルが改変されていないことや、本人確認を保証する目的で使われます。

PGPの基本となる機能の一つなので、もちろんGnuPGでも作成や読み込み(検証)をおこなうことが可能です。

--sign
--signは、一般的に広く使われる形式の電子書名を施します。
電子署名はファイルそのものに埋め込まれ、公開鍵でデータを複合しない限りはデータの中身を見ることができません。その仕様上、--signによる電子署名をストレスなく使うには、前もって相手に公開鍵を渡しておくことが必須です。

コマンドは以下のように入力します。

gpg --sign [ファイル名]
gpg -s [ファイル名]

例:
gpg --sign 2009年度・XX大学バスケ部合宿名簿.xls
gpg -s 高尾山旅行20090814_06.jpg

コマンドの入力後、秘密鍵のパスフレーズを入力すると.gpg拡張子の署名ファイルが作成されます。
利用可能な秘密鍵がない場合は、別コマンド「鍵セットの作成」やチュートリアル「公開鍵と秘密鍵の作成」を参考に作成してください。

--clearsign
--clearsignは、データに暗号化を施さず、署名のみを施すクリア署名をおこないます。
データが暗号化されないため、例えばメッセージを読むだけであれば、前もって相手に公開鍵を渡しておく必要はありません。クリア署名では、改変がおこなわれていないことだけを証明します。

コマンドは以下のように入力します。

gpg --clearsign [ファイル名]

例:
gpg --clearsign ブログデータ2008-2009.txt

コマンドの入力後、秘密鍵のパスフレーズを入力すると.asc拡張子の署名ファイルが作成されます。
利用可能な秘密鍵がない場合は、別コマンド「鍵セットの作成」やチュートリアル「公開鍵と秘密鍵の作成」を参考に作成してください。

クリア署名済みデータの構成は、以下のようになります。

-----BEGIN PGP SIGNED MESSAGE-----
Hash: ハッシュ関数

本文
-----BEGIN PGP SIGNATURE-----
Version: バージョン情報

署名検証用データ
-----END PGP SIGNATURE-----



例:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

2009年8月1日

今日はAさんとBさんと買い物に行きました!
あの場所へ!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)

iEYEARECAAYFAkp3BFYACgkQHLnsWNars4YzxQCgx0rT6+0HNDySVg5R1kTpWupy
vaEAnR/2zhQ5lAVwNuubMnwkidTRZPau
=xV7b
-----END PGP SIGNATURE-----

--detach-sign
--detach-signは、署名をおこなうファイルとは別に、署名データだけ別で作成する分離署名をおこないます。
署名だけが分離しているので、データはまったく書き換えられません。

ウェブサイト上でのデータ公開時に署名ファイルを添えたり、プログラムや画像といった文書データ以外のものに活用するのが一般的です。
例えば、GnuPGのダウンロード・ページに添えられているものが、この分離署名です。

コマンドは以下のように入力します。

gpg --detach-sign [ファイル名]
gpg -b [ファイル名]

例:
gpg --detach-sign データ保護.exe
gpg -b 2006年正月親族戦・棋譜_山川対西田.gib

コマンドの入力後、秘密鍵のパスフレーズを入力すると.sig拡張子の署名ファイルが作成されます。
利用可能な秘密鍵がない場合は、別コマンド「鍵セットの作成」やチュートリアル「公開鍵と秘密鍵の作成」を参考に作成してください。