Initial checkin
authorHideki Saito <hideki@hidekisaito.com>
Tue, 25 Jun 2013 08:22:14 +0000 (01:22 -0700)
committerHideki Saito <hideki@hidekisaito.com>
Tue, 25 Jun 2013 08:22:14 +0000 (01:22 -0700)
12 files changed:
pub/.gitignore [new file with mode: 0644]
src/company.org [new file with mode: 0644]
src/editkey.org [new file with mode: 0644]
src/gpg2compile.org [new file with mode: 0644]
src/howto.org [new file with mode: 0644]
src/index.org [new file with mode: 0644]
src/paperkey.org [new file with mode: 0644]
src/pgpzip.org [new file with mode: 0644]
src/problem.org [new file with mode: 0644]
src/shorthist.org [new file with mode: 0644]
src/style.css [new file with mode: 0644]
src/tips.org [new file with mode: 0644]

diff --git a/pub/.gitignore b/pub/.gitignore
new file mode 100644 (file)
index 0000000..3f5e177
--- /dev/null
@@ -0,0 +1,4 @@
+*.html
+*.png
+*.org
+*.css
diff --git a/src/company.org b/src/company.org
new file mode 100644 (file)
index 0000000..df7e3c7
--- /dev/null
@@ -0,0 +1,86 @@
+# -*- coding: utf-8-unix -*-
+#+TITLE:     会社環境での暗号運用の問題点
+#+AUTHOR:    斉藤英樹
+#+EMAIL:     hideki@hidekisaito.com
+#+DESCRIPTION: Emacs Builds prepared by Hideki Saito
+#+KEYWORDS: Emacs, software, OSS, compile, build, binaries
+
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style.css" />
+#+HTML_HEAD: <script type="text/javascript">
+#+HTML_HEAD:
+#+HTML_HEAD:  var _gaq = _gaq || [];
+#+HTML_HEAD:  _gaq.push(['_setAccount', 'UA-114515-7']);
+#+HTML_HEAD:  _gaq.push(['_trackPageview']);
+#+HTML_HEAD:
+#+HTML_HEAD:  (function() {
+#+HTML_HEAD:    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+#+HTML_HEAD:    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+#+HTML_HEAD:    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+#+HTML_HEAD:  })();
+#+HTML_HEAD: </script>
+
+#+LANGUAGE:  ja
+#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
+#+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
+#+OPTIONS: ^:{}
+#+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:h
+#+EXPORT_SELECT_TAGS: export
+#+EXPORT_EXCLUDE_TAGS: noexport
+#+LINK_UP: index.html
+#+LINK_HOME: index.html
+#+XSLT:
+
+#+BEGIN_HTML
+<script type="text/javascript"><!--
+google_ad_client = "ca-pub-6327257212970697";
+/* GNU Privacy Guard講座Banner */
+google_ad_slot = "2155169100";
+google_ad_width = 970;
+google_ad_height = 90;
+//-->
+</script>
+<script type="text/javascript"
+src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+#+END_HTML
+
+*【本項は情報が古くなってきています。近日中に更新される予定です。】*
+
+個人レベルで使用する場合とは違い会社環境で暗号を使用するのにいくつかの障害が見られる。本書ではそれらを簡潔にまとめてみるものとする。
+
+* 暗号普及を妨げる要因
+
+- 保守の労力とコスト
+- 一般的な問題
+- 背任行為の懸念
+- 引継問題
+- 保守の労力とコスト
+
+暗号を社内で利用する場合暗号そのものを購入する必要がある。これはフリーウェアバージョンには商用利用のライセンスが含まれない為である。そのためPGPを使用する場合は商用利用が可能なバージョン又はGnuPGを使用するということとなる。
+
+PGPを購入する場合の価格だが2000年12月28日現在の試算によると次のような経費が発生することとなる。
+
+- 10クライアントライセンス=約$2,200
+- 10クライアントライセンス、電話サポートパッケージ=約$2,500
+- 100クライアントライセンス=約$10,800
+- 100クライアントライセンス、電話サポートパッケージ=約$12,100
+- 1000クライアントライセンス=約$69,000
+- 1000クライアントライセンス、電話サポートパッケージ=約$77,300
+
+尚、上記は米国NAIによる価格であり日本語版の場合は上記より異なる場合がある。尚、上記の各パッケージは2年間のサブスクリプションである。(価格の変動などによる誤差が考えられる為、あくまでも参考として使用のこと)
+
+規模にもよるが社内において上記意外にインストールするための人員やサポートする為の人員が必要になるため更なる出費が懸念されることになる。
+
+尚、GnuPGを使用する場合、上記のライセンス料は発生しない。
+
+* 背任行為の懸念
+
+従業員が暗合を使用することによって発生する懸念は背任行為である。指定した人物にしか読めない文書を作成できる利点はそのまま諸刃の剣となりえ、背任行為を助長する可能性もある。
+
+会社環境ではインターネットが普及し始めた頃からその使用の監視などに努めており、このような問題を軽減しようとしている。暗号を使用する場合それらが無効化される可能性がある。
+
+この点については使用規則の徹底などや、従業員と雇用主の信頼関係を充実させる必要がある。たびたび議論されている話題ではあるがキーエスクロー(鍵委託)などの使用も一つの方法だと言える。
+
+* 引継問題
+個人で使用する場合とは違い、会社環境では人員の入れ替えが常に行われている。特に外部との取り引きなどで使用する場合(社内利用でも連絡がうまく伝達していない場合)など、人員異動や退職などが発生した場合にメッセージが復号化できなくなってしまう可能性が発生する。
+これを防止するためには賛否両論ではあるがADKの使用、または「会社鍵」に対しても暗号化するように徹底する必要がある。
diff --git a/src/editkey.org b/src/editkey.org
new file mode 100644 (file)
index 0000000..c741750
--- /dev/null
@@ -0,0 +1,330 @@
+# -*- coding: utf-8-unix -*-
+#+TITLE:     edit-keyオプションの使い方
+#+AUTHOR:    斉藤英樹
+#+EMAIL:     hideki@hidekisaito.com
+#+DESCRIPTION: Emacs Builds prepared by Hideki Saito
+#+KEYWORDS: Emacs, software, OSS, compile, build, binaries
+
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style.css" />
+#+HTML_HEAD: <script type="text/javascript">
+#+HTML_HEAD:
+#+HTML_HEAD:  var _gaq = _gaq || [];
+#+HTML_HEAD:  _gaq.push(['_setAccount', 'UA-114515-7']);
+#+HTML_HEAD:  _gaq.push(['_trackPageview']);
+#+HTML_HEAD:
+#+HTML_HEAD:  (function() {
+#+HTML_HEAD:    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+#+HTML_HEAD:    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+#+HTML_HEAD:    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+#+HTML_HEAD:  })();
+#+HTML_HEAD: </script>
+
+#+LANGUAGE:  ja
+#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
+#+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
+#+OPTIONS: ^:{}
+#+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:h
+#+EXPORT_SELECT_TAGS: export
+#+EXPORT_EXCLUDE_TAGS: noexport
+#+LINK_UP: index.html
+#+LINK_HOME: index.html
+#+XSLT:
+
+#+BEGIN_HTML
+<script type="text/javascript"><!--
+google_ad_client = "ca-pub-6327257212970697";
+/* GNU Privacy Guard講座Banner */
+google_ad_slot = "2155169100";
+google_ad_width = 970;
+google_ad_height = 90;
+//-->
+</script>
+<script type="text/javascript"
+src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+#+END_HTML
+
+GnuPGでは–edit-keyのオプションを使用して鍵(秘密鍵、または公開鍵)に対して変更を行ったり、情報を参照したりすることができます。 今回の特集ではそのオプション、特に鍵に変更を加えるものを見ていく事にします。 尚、このモードではコマンドラインから行う事ができる鍵への署名、破棄などをインタラクティブに行う事もできます。 (尚、これらは高度なオプションが含まれますので慎重に行う事をお勧めします。)
+
+** edit-keyモードへの入り方
+
+利用するのには以下のようにコマンドラインに入力します。
+
+#+BEGIN_SRC sh
+gpg --edit-key 0x565A5E2A
+#+END_SRC
+
+この時、秘密鍵を使用できる場合は「Secret key is available.」と表示されます。(日本語化がなされている場合は「秘密鍵が使用できます。」となりますが今回の説明では英語で表示された場合のものを表示します。
+
+
+#+BEGIN_SRC sh
+gpg --edit-key 0x565A5E2A
+#+END_SRC
+
+#+BEGIN_EXAMPLE
+gpg (GnuPG) 1.2.3; Copyright (C) 2003 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.
+Secret key is available.
+
+pub  1024D/565A5E2A  created: 2003-12-07 expires: never      trust: u/u
+sub  2048g/E8D70F9E  created: 2003-12-07 expires: never
+
+(1). FooBar (Not a production key) [email protected]> 
+
+Command>
+#+END_EXAMPLE
+ここでhelpと入力すると以下のような表示が行われます。
+
+#+BEGIN_EXAMPLE
+Command> help
+quit       quit this menu
+save       save and quit
+help       show this help
+fpr        show fingerprint
+list       list key and user IDs
+uid        select user ID N
+key        select secondary key 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
+addphoto   add a photo ID
+deluid     delete user 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
+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
+revkey     revoke a secondary key
+disable    disable a key
+enable     enable a key
+showphoto  show photo ID
+#+END_EXAMPLE
+
+いろいろとオプションがありますが、これは日本語では以下のようになります。
+
+#+BEGIN_EXAMPLE
+コマンド> help
+quit       このメニューを終了
+save       保存して終了
+help       このヘルプを表示
+fpr        指紋を表示
+list       鍵とユーザーIDの一覧
+uid        ユーザーID Nの選択
+key        副鍵Nの選択
+check      署名の一覧
+sign       鍵へ署名
+lsign      鍵へ内部的に署名
+nrsign     失効できないよう鍵へ署名
+nrlsign    失効できないよう鍵へ内部的に署名
+adduid     ユーザーIDの追加
+addphoto   フォトIDの追加
+deluid     ユーザーIDの削除
+addkey     副鍵の追加
+delkey     副鍵の削除
+addrevoker 失効鍵の追加
+delsig     署名の削除
+expire     有効期限の変更
+primary    ユーザーIDを主にする
+toggle     秘密鍵と公開鍵の一覧の切替え
+pref       選好の一覧 (エキスパート)
+showpref   選好の一覧 (冗長)
+setpref    選好の一覧を設定
+updpref    選好の一覧を更新
+passwd     パスフレーズの変更
+trust      所有者信用の変更
+revsig     署名の失効
+revuid     ユーザーIDの失効
+revkey     副鍵の失効
+disable    鍵の使用を禁止する
+enable     鍵の使用を許可する
+showphoto  フォトIDを表示
+#+END_EXAMPLE
+
+* showprefコマンド
+showprefコマンドを使用する事により鍵の特性が表示されます。
+
+#+BEGIN_EXAMPLE
+Command> showpref
+
+pub  1024D/565A5E2A  created: 2003-12-07 expires: never      trust: u/u
+(1). FooBar (Not a production key) [email protected]>
+     Cipher: AES256, AES192, AES, CAST5, 3DES
+     Digest: SHA1, RIPEMD160
+     Compression: ZLIB, ZIP, Uncompressed
+     Features: MDC
+#+END_EXAMPLE
+
+上から暗号、署名、圧縮、機能に使用するアルゴリズムを表示します。 これは最初に表示されているものから優先して使用する事ができます。 尚、この順番を入れ替えたり、特定のアルゴリズムを使用しないようにすることもできます。 これをするのにはsetprefオプションを使用します。
+setprefコマンド
+
+
+prefコマンドを使用すると以下のような表示を得る事ができます。
+
+#+BEGIN_EXAMPLE
+Command> pref
+
+pub  1024D/565A5E2A  created: 2003-12-07 expires: never      trust: u/u
+(1). FooBar (Not a production key) [email protected]>
+     S9 S8 S7 S3 S2 H2 H3 Z2 Z1 [mdc]
+#+END_EXAMPLE
+
+setprefコマンドと表示されているスタイルの指定をすることによりそれを指定する事ができます。 つまり、例えば3DESを使用したくない場合は、以下のように指定します。(厳密には3DESを無効にしても他に使用できるものが見つからない場合はこの設定を無視して3DESによる暗号化が行われます。これは3DESがOpenPGPで必須のアルゴリズムとされているためです。)
+
+#+BEGIN_EXAMPLE
+setpref S9 S8 S7 S3 H2 H3 Z2 Z1
+#+END_EXAMPLE
+
+この時点ではこの変更は行われていません。 次に以下のコマンドを入力します。
+
+#+BEGIN_EXAMPLE
+updpref
+#+END_EXAMPLE
+
+すると以下のように表示されます。
+
+#+BEGIN_EXAMPLE
+Command> updpref
+
+Current preference list: S9 S8 S7 S3 H2 H3 Z2 Z1 [mdc]
+Really update the preferences?
+#+END_EXAMPLE
+
+ここでyを入力するとsetprefで行った変更を行うためにパスフレーズの入力を要求します。 そして、saveと入力してedit-keyモードから抜けると変更が有効になります。
+
+* expireコマンド
+expireコマンドではその有効期限を変更する事ができます。 expireコマンドの実行で以下のような設定をすることができます。
+
+#+BEGIN_EXAMPLE
+Command> expire
+
+Changing expiration time for the primary key.
+Please specify how long the key should be valid.
+         0 = key does not expire
+        = key expires in n days
+      w = key expires in n weeks
+      m = key expires in n months
+      y = key expires in n years
+
+Key is valid for? (0)
+
+#+END_EXAMPLE
+
+指定は0で無期限もしくは数字で日数、またはその後に、w、m、yの単位を入力することにより週、月、年の単位で指定する事ができます。 例えば1yと入力する事により一年間有効にする事ができます。
+
+* 複数の鍵を使用する
+
+指定した鍵に複数の副鍵がある場合は少し特殊な操作が必要にある必要があります。 副鍵がある場合、鍵を表示すると以下のような表示になります。
+
+#+BEGIN_EXAMPLE
+Command> key
+pub  1024D/514D0EF4  created: 2003-12-08 expires: never      trust: u/u
+sub  1024g/88480126  created: 2003-12-08 expires: never
+sub  1024R/E5FFF9CD  created: 2003-12-08 expires: never
+(1). FooBar (Not for a production use)
+#+END_EXAMPLE
+
+普通に鍵の変更をしようとすると主鍵の変更となります。 どの鍵に対して変更をしようとしているかはコマンドを使用する時の表示で判別することができます。
+
+** 通常の場合
+
+#+BEGIN_EXAMPLE
+Command> expire
+
+Changing expiration time for the primary key.
+Please specify how long the key should be valid.
+
+         0 = key does not expire
+        = key expires in n days
+      w = key expires in n weeks
+      m = key expires in n months
+      y = key expires in n years
+
+Key is valid for? (0)
+#+END_EXAMPLE
+
+上記の表示のように、”~ for the primary key.”という表示で主鍵に変更を加えようとしていることがわかります。
+副鍵に変更を加えるにはkeyコマンドを使用します。
+
+#+BEGIN_SRC sh
+gpg --edit-key foobar
+#+END_SRC
+
+#+BEGIN_EXAMPLE
+gpg (GnuPG) 1.2.3; Copyright (C) 2003 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.
+Secret key is available.
+
+pub  1024D/514D0EF4  created: 2003-12-08 expires: never      trust: u/u
+sub  1024g/88480126  created: 2003-12-08 expires: never
+sub  1024R/E5FFF9CD  created: 2003-12-08 expires: 2003-12-09
+
+(1). FooBar (Not for a production use)
+
+Command> key 2
+
+pub  1024D/514D0EF4  created: 2003-12-08 expires: never      trust: u/u
+sub  1024g/88480126  created: 2003-12-08 expires: never
+sub* 1024R/E5FFF9CD  created: 2003-12-08 expires: 2003-12-09
+
+(1). FooBar (Not for a production use)
+#+END_EXAMPLE
+
+ここで打ち込んだkey 2のコマンドによってE5FFF9CDの鍵に*マークがついたのがわかると思います。 これにより今行う変更はこの副鍵に対して行われます。これは複数の鍵を選択する事も可能でこの場合は以下のようになります。
+
+#+BEGIN_SRC sh
+gpg –edit-key foobar
+#+END_SRC
+
+#+BEGIN_EXAMPLE
+gpg (GnuPG) 1.2.3; Copyright (C) 2003 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.
+Secret key is available.
+
+pub  1024D/514D0EF4  created: 2003-12-08 expires: never      trust: u/u
+sub  1024g/88480126  created: 2003-12-08 expires: never
+sub  1024R/E5FFF9CD  created: 2003-12-08 expires: 2003-12-09
+sub  1024R/9A8AA276  created: 2003-12-10 expires: never
+
+(1). FooBar (Not for a production use)
+
+Command> key 2
+
+pub  1024D/514D0EF4  created: 2003-12-08 expires: never      trust: u/u
+sub  1024g/88480126  created: 2003-12-08 expires: never
+sub* 1024R/E5FFF9CD  created: 2003-12-08 expires: 2003-12-09
+sub  1024R/9A8AA276  created: 2003-12-10 expires: never
+
+(1). FooBar (Not for a production use)
+
+Command> key 3
+
+pub  1024D/514D0EF4  created: 2003-12-08 expires: never      trust: u/u
+sub  1024g/88480126  created: 2003-12-08 expires: never
+sub* 1024R/E5FFF9CD  created: 2003-12-08 expires: 2003-12-09
+sub* 1024R/9A8AA276  created: 2003-12-10 expires: never
+
+(1). FooBar (Not for a production use)
+#+END_EXAMPLE
+
+expireなどの一定のコマンドは一つの鍵のみが選択されている必要があります。
diff --git a/src/gpg2compile.org b/src/gpg2compile.org
new file mode 100644 (file)
index 0000000..5944e29
--- /dev/null
@@ -0,0 +1,80 @@
+# -*- coding: utf-8-unix -*-
+#+TITLE:     GnuPG 2のコンパイル手順
+#+AUTHOR:    斉藤英樹
+#+EMAIL:     hideki@hidekisaito.com
+#+DESCRIPTION: Emacs Builds prepared by Hideki Saito
+#+KEYWORDS: Emacs, software, OSS, compile, build, binaries
+
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style.css" />
+#+HTML_HEAD: <script type="text/javascript">
+#+HTML_HEAD:
+#+HTML_HEAD:  var _gaq = _gaq || [];
+#+HTML_HEAD:  _gaq.push(['_setAccount', 'UA-114515-7']);
+#+HTML_HEAD:  _gaq.push(['_trackPageview']);
+#+HTML_HEAD:
+#+HTML_HEAD:  (function() {
+#+HTML_HEAD:    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+#+HTML_HEAD:    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+#+HTML_HEAD:    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+#+HTML_HEAD:  })();
+#+HTML_HEAD: </script>
+
+#+LANGUAGE:  ja
+#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
+#+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
+#+OPTIONS: ^:{}
+#+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:h
+#+EXPORT_SELECT_TAGS: export
+#+EXPORT_EXCLUDE_TAGS: noexport
+#+LINK_UP: index.html
+#+LINK_HOME: index.html
+#+XSLT:
+
+#+BEGIN_HTML
+<script type="text/javascript"><!--
+google_ad_client = "ca-pub-6327257212970697";
+/* GNU Privacy Guard講座Banner */
+google_ad_slot = "2155169100";
+google_ad_width = 970;
+google_ad_height = 90;
+//-->
+</script>
+<script type="text/javascript"
+src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+#+END_HTML
+
+GnuPG 2のコンパイルはGnuPG 1.x系列に比べると依存が多く、より複雑なプロセスを要します。
+ここではコンパイル方法をまとめました。
+
+特にLinuxのリモート環境(ホスティングサーバ)などにインストールする際に役に立つと思います。Windowsでのコンパイルについては本項では言及しません。
+尚、ホスティングサーバに置かれている秘密鍵など、ローカル管理に比べて比較的安全性が劣りますので留意しておいてください。
+
+* 必要なソースコード
+- GnuPG 2
+- libgcrypt
+- libksba
+- DirMngr
+- libgpg-error
+- libassuan
+- pinentry
+
+このうち、pinentry以外はGnuPGの[[http://gnupg.org/download/index.en.html][ダウンロードページ]]からダウンロードできます。また、環境によってはBzip2ライブラリが必要です。(プレフィックスが特殊な場合はwith-bzip2オプションでincludeを指定のこと。)
+PinentryもGnuPGのFTPサーバにあるのですが、上記のダウンロードページからリンクされていません。当該ディレクトリから最新版をダウンロードしてください。
+GPGME、Entropy Gathering Daemonは通常は必要ありませんが環境、使用法によっては導入する必要があるかもしれません。(Entropy Gathering Daemonは/dev/randomが存在しない環境で必要です。)
+
+* コンパイルの順番
+
+コンパイルは依存の関係上、次の順番で行う必要があります。
+
+- libgpg-error
+- libksba
+- libgcrypt
+- libassuan
+- DirMngr
+- GnuPG 2
+- pinentry
+
+厳密にはいくつかのものは順番が入れ替わっても問題ありませんが、大方、上記のような順番で行う必要があります。
+コンパイル自体は一般的なconfigure ; make ; make installとなりますが、特に依存関係のエラーを見落とさないようにしてください。
+尚、特にホスティングサイトなどで特別なプレフィックスを使用している場合はbinディレクトリにパスが通っており、LD_LIBRARY_PATHがlibディレクトリに通っていることを確認してください。configureにprefixが通っていてもgnupg2のコンパイル時に失敗します。
diff --git a/src/howto.org b/src/howto.org
new file mode 100644 (file)
index 0000000..e047467
--- /dev/null
@@ -0,0 +1,217 @@
+# -*- coding: utf-8-unix -*-
+#+TITLE:     GnuPGの使い方
+#+AUTHOR:    斉藤英樹
+#+EMAIL:     hideki@hidekisaito.com
+#+DESCRIPTION: Emacs Builds prepared by Hideki Saito
+#+KEYWORDS: Emacs, software, OSS, compile, build, binaries
+
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style.css" />
+#+HTML_HEAD: <script type="text/javascript">
+#+HTML_HEAD:
+#+HTML_HEAD:  var _gaq = _gaq || [];
+#+HTML_HEAD:  _gaq.push(['_setAccount', 'UA-114515-7']);
+#+HTML_HEAD:  _gaq.push(['_trackPageview']);
+#+HTML_HEAD:
+#+HTML_HEAD:  (function() {
+#+HTML_HEAD:    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+#+HTML_HEAD:    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+#+HTML_HEAD:    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+#+HTML_HEAD:  })();
+#+HTML_HEAD: </script>
+
+#+LANGUAGE:  ja
+#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
+#+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
+#+OPTIONS: ^:{}
+#+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:h
+#+EXPORT_SELECT_TAGS: export
+#+EXPORT_EXCLUDE_TAGS: noexport
+#+LINK_UP: index.html
+#+LINK_HOME: index.html
+#+XSLT:
+
+#+BEGIN_HTML
+<script type="text/javascript"><!--
+google_ad_client = "ca-pub-6327257212970697";
+/* GNU Privacy Guard講座Banner */
+google_ad_slot = "2155169100";
+google_ad_width = 970;
+google_ad_height = 90;
+//-->
+</script>
+<script type="text/javascript"
+src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+#+END_HTML
+
+* GNU Privacy Guardのダウンロード
+  :PROPERTIES:
+  :ID:       d5b364da-88f5-4908-afd1-0fcb929c4a64
+  :END:
+
+まずGNU Privacy Guardをダウンロードする必要があります。ダウンロードはGNU Privacy Guard
+Homepageよりダウンロードしてください。コンパイルする必要があるものとバイナリでダウンロードできるものもあります。これはプラットフォームによって違ってくるのでご使用のオペレーティングシステムにあったものをダウンロードしてください。
+
+* キーの生成
+  :PROPERTIES:
+  :ID:       9fe261c8-6a71-44be-84e7-df0670a23903
+  :END:
+
+ダウンロードの終了後、まずは自分の秘密鍵と公開鍵を生成する必要があります。コマンドラインでgpgと入力してみて何か反応があればパスが通っている証拠ですのでプログラムが実行されている場合はCtrl-Cを押して終了して下さい。この時に反応がないようであればインストールしたフォルダにパスが通るようにしてください。次にgpg–gen-keyと入力します。
+
+* 鍵のタイプの指定
+  :PROPERTIES:
+  :ID:       9f2ab36a-6ff2-4f2f-9e76-638c54b37eaf
+  :END:
+
+鍵の生成を開始して、まず入力を求められるのが鍵の種類です。この画面では1を選択します。2は署名のみのキーで、3はElGamal方式のみを使用するものですが基本的には1を選択してください。
+
+* 鍵長の設定
+  :PROPERTIES:
+  :ID:       f10be8f0-14e5-4d97-a10e-1145d5dcc562
+  :END:
+
+次に鍵の長さを設定します。鍵は長い物ほど強固なセキュリティを実現します。しかしあまりにも長すぎると計算に時間がかかりすぎるものとなります。1024が標準となっていますが将来性などを考えると2048程度が適当です。
+
+* 有効期限の設定
+  :PROPERTIES:
+  :ID:       d73deef8-0297-4b3b-96c5-dcfbe082b614
+  :END:
+
+鍵の有効期限はいつまでその鍵が有効かを指定します。通常の場合は永久的に有効な0を指定すると問題ないでしょう。特に期限が必要であればここで指定してください。
+個人情報の設定 ここでは名前、電子メール、名前に付随するメモを入力します。これにより鍵に名前のついたヘッダを追加することができます。
+
+* パスフレーズ
+  :PROPERTIES:
+  :ID:       c4244d8b-134b-452e-89a8-1cde2df71270
+  :END:
+
+次にパスフレーズを設定します。パスフレーズはパスワードと違いスペースなどを含むものも可能で長さも事実上無制限です。これは大事なパスワードですので覚えやすく紙に書かなくてもよく、かつ分かりにくいものにするようにしてください。
+
+* 乱数の生成(自動)
+  :PROPERTIES:
+  :ID:       f7d4655e-74a4-4182-baa8-bc1f0794e3c9
+  :END:
+
+ここで乱数の生成が開始されます。乱数生成中はしばらくかかります。この時に他の作業をしていても問題ありません(作業をすることによりキーボードの入力やマウスの動きなども乱数発生に使用されます)
+
+* 終了
+  :PROPERTIES:
+  :ID:       9369e781-01d8-4a1b-a1d0-d8bfae60517d
+  :END:
+
+お疲れさまでした、これで鍵の生成は終了です。
+
+* 破棄証明書の生成
+  :PROPERTIES:
+  :ID:       8abed0fd-ae64-4c18-bb33-70fd3edf83a6
+  :END:
+
+鍵を生成した後、破棄証明書を作っておきます。これは鍵を無効化する時に使用します。これは次のように入力することで行えます。
+
+#+BEGIN_SRC sh
+gpg -o revcert.asc –gen-revoke userid
+#+END_SRC
+
+太字のところに適当なものを入れてください。revcert.ascのところには任意のファイル名、useridのところには名前かその一部に変えてください。これにより指定したファイル名のファイルに破棄証明書が作成されるのでこれはなくさないようにどこかにしまって置いてください。この時、HDには保存せず、フロッピーなどに保存して安全な場所にしまっておくといいです。この破棄証明書は不正に使用されると誰でも鍵を無効化してしまうことができるので取り扱いには注意してください。
+鍵を破棄する場合は 万が一、パスワードの漏洩などで鍵を破棄する必要がある場合は次のように鍵を破棄します。 
+#+BEGIN_SRC sh
+gpg --import revcert.asc 
+#+END_SRC
+
+これは重要ですので覚えておいてください。この後、この破棄した公開鍵を公開鍵サーバに送るとその鍵は破棄されます。
+
+* 鍵の登録
+  :PROPERTIES:
+  :ID:       aec94a61-d924-4164-9b55-ac1d14daf32d
+  :END:
+
+鍵を生成したらこれを公開鍵サーバに登録しておくことにより他の人が公開鍵を入手することが可能です。これによりあなた宛のメールなどに暗号化したメッセージを送信したりすることができるようになります。ここではKeyserver.netを使用して説明していきます。まず次のように入力します。
+
+#+BEGIN_SRC sh
+gpg -o pubkey.asc -a –export userid
+#+END_SRC
+
+コンソールよりコピー・ペーストが可能な場合次のようにすることで公開鍵をコンソールに出力することができます。 
+#+BEGIN_SRC sh
+gpg -a --export userid
+#+END_SRC 
+上記のコマンドラインを使用した場合はテキストエディタなどで指定したファイルを開き、内容をコピーしてください。
+次に「Keyserver.net」のリンクを辿ってください。次に「ADD A KEY」をクリックし、表示された「Paste your key
+here:」のボックスに上記の公開鍵を貼り付けてください。「Submit this key to the
+keyserver」を押すと登録が完了します。
+
+* 他の人の公開鍵を入手する
+  :PROPERTIES:
+  :ID:       4d5762e3-6041-4ad9-82ee-8b424a559150
+  :END:
+
+他の人に暗号化したメッセージを送るのには相手の公開鍵を入手する必要があります。これも公開鍵サーバですることができます。登録するときに使用したページの「公開鍵の検索」で名前を入力することにより検索できます。次にコマンドラインに次のように入力してください。
+gpg –import pubkey.asc コンソールに貼り付けることができる場合は gpg –import
+とすることによりコンソールに貼り付けることができます。この時エンターキーを押した後に貼り付けてください。この鍵を入手後、鍵の指紋をチェックする必要があります。これが異なる場合、鍵が改変されたか鍵を正しく入手できていません。大抵のホームページなどでは下図のような表示があります。
+入手した鍵の指紋を表示するのには次のように入力します。 
+#+BEGIN_SRC sh
+gpg --fingerprint
+#+END_SRC
+すると次のように表示されますのでこの指紋が一致することを確認します。このキーを使う前に鍵署名をする必要があります。鍵署名にはExportableなものとLocalなものがあります。Exportableはその鍵を他の人に渡すとその署名も同時に渡すことになります。Localなものは他の人に渡してもその署名は渡されません。普通はLocalな署名を使うとよいでしょう。これをするには次のようにします。
+
+#+BEGIN_SRC sh
+gpg --lsign-key userid(Local署名)
+#+END_SRC sh
+
+#+BEGIN_SRC sh
+gpg --sign-key userid(Exportable署名)
+#+END_SRC
+
+次に信用データーベースを更新する必要があります。信用データーベースというのはそのその鍵に対する信用性を示すものです。まず次のように入力します。
+
+#+BEGIN_SRC sh
+gpg --edit-key userid
+#+END_SRC sh
+
+次にコマンドの入力を求められますのでそこでtrustと入力します。そうすると次のようなリストが表示されます。
+
+#+BEGIN_EXAMPLE
+1 = Don’t know 2 = I do NOT trust 3 = I trust
+marginally 4 = I trust fully s = please show me more information m =
+back to the main menu
+#+END_EXAMPLE
+
+この鍵を完全に信用しない場合は2、ある程度信用する場合は3、完全に信用(例えば実際に本人に会ったことがありその本人に確認がとれている場合など)する場合は4を選択します。
+
+* 暗号化&署名
+  :PROPERTIES:
+  :ID:       c63bf3e7-93f6-474c-a60b-cc099de39943
+  :END:
+
+次に暗号化をしてみます。ファイルを暗号化する方法とインタラクティブにコンソールから入力する方法がありますがどちらも基本的には同じようにします。ファイルを暗号化する場合は次のようにします。
+
+#+BEGIN_SRC sh
+gpg -ea filename (暗号化したファイルを画面に出力する場合)
+#+END_SRC
+
+#+BEGIN_SRC sh
+gpg -o filename.asc -ea filename(暗号化したファイルをファイルに出力する場合)
+#+END_SRC
+
+どちらの場合も受取人を指定するように表示されるのでその時に名前、またはその一部を入力します。これをコマンドラインに含めることもできます。
+
+#+BEGIN_SRC sh
+gpg -r receipient -ea filename(暗号化したファイルを画面に出力する場合)
+#+END_SRC
+#+BEGIN_SRC sh
+gpg -o filename.asc -r receipient -ea filename(暗号化したファイルをファイルに出力する場合)
+#+END_SRC
+
+コンソールから入力する場合は次のようにします。 
+#+BEGIN_SRC sh
+gpg -ea
+#+END_SRC
+
+次にメッセージを入力しCtrl-DもしくはCtrl-Z(プラットフォームによって違います)そしてファイルの場合と同じように受取人の名前を入力します。この場合も上記のケースと同じように-oや-rオプションを使用できます。
+暗号化をする時に同時に署名もする場合は上記のそれぞれのオプションの-eaを-seaに変えることにより可能です。署名のみすることも可能です。その場合は-seaを-saとします。署名する時に–clearsignとすることによりGnuPGが無くても読める署名をすることができます。
+復号化は次のようにします。
+
+#+BEGIN_SRC sh
+gpg -d filename.asc
+#+END_SRC
diff --git a/src/index.org b/src/index.org
new file mode 100644 (file)
index 0000000..87924a3
--- /dev/null
@@ -0,0 +1,69 @@
+# -*- coding: utf-8-unix -*-
+#+TITLE:     GNU Privacy Guard講座
+#+AUTHOR:    斉藤英樹
+#+EMAIL:     hideki@hidekisaito.com
+#+DESCRIPTION: Emacs Builds prepared by Hideki Saito
+#+KEYWORDS: Emacs, software, OSS, compile, build, binaries
+
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style.css" />
+#+HTML_HEAD: <script type="text/javascript">
+#+HTML_HEAD:
+#+HTML_HEAD:  var _gaq = _gaq || [];
+#+HTML_HEAD:  _gaq.push(['_setAccount', 'UA-114515-7']);
+#+HTML_HEAD:  _gaq.push(['_trackPageview']);
+#+HTML_HEAD:
+#+HTML_HEAD:  (function() {
+#+HTML_HEAD:    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+#+HTML_HEAD:    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+#+HTML_HEAD:    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+#+HTML_HEAD:  })();
+#+HTML_HEAD: </script>
+
+#+LANGUAGE:  ja
+#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
+#+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
+#+OPTIONS: ^:{}
+#+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:h
+#+EXPORT_SELECT_TAGS: export
+#+EXPORT_EXCLUDE_TAGS: noexport
+#+LINK_UP: index.html
+#+LINK_HOME: index.html
+#+XSLT:
+
+#+BEGIN_HTML
+<script type="text/javascript"><!--
+google_ad_client = "ca-pub-6327257212970697";
+/* GNU Privacy Guard講座Banner */
+google_ad_slot = "2155169100";
+google_ad_width = 970;
+google_ad_height = 90;
+//-->
+</script>
+<script type="text/javascript"
+src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+#+END_HTML
+
+* GNU Privacy Guardとは?
+GnuPGはGNUプロジェクトのRFC4880で定義されるOpenPGP標準の完全でフリーな実装です。GnuPGを使用することによりデータや通信 を暗号化したり署名したりすることができ、多機能の鍵管理システムや、多くの種類の公開鍵ディレクトリへのアクセスを可能にするモジュールが用意されています。
+
+GnuPGはGPGとも呼ばれ、他のアプリケーションとの統合を容易に可能にするコマンドラインツールです。多くのフロントエンドアプリケーション やライブラリが存在します。バージョン2ではS/MIMEの機能も採り入れています。 
+
+GnuPGはフリーソフトウェア(自由の意味でのフリー)です。GNU General Public Licenseに基づき、これはフリーに使用、変更、配布することができます。 
+
+GnuPGは二種類用意されており、ポータブルなスタンドアロンバージョンである1.4.x、そして、コンパイルの難易度が高いですが、より多くの機能を提供する2.0.xです。GnuPGはGNUプロジェクトのRFC4880で定義されるOpenPGP標準の完全でフリーな実装です。
+
+* 情報ぺーじ
+- [[file:howto.org][GnuPGの使い方]]
+- [[file:tips.org][GnuPG Tips]]
+
+* 特集
+** GnuPG関連
+- [[file:editkey.org][edit-keyオプションの使い方]]
+- [[file:shorthist.org][A Short History of the GNU Privacy Guard(日本語版)]]
+- [[file:gpg2compile.org][GnuPG 2のコンパイル手順]]
+- [[file:paperkey.org][Paperkeyを使った秘密鍵のバックアップ]]
+- [[file:pgpzip.org][PGP Zipの取り扱い方法]]
+** 暗号技術
+- [[file:company.org][会社環境での暗号運用の問題点]]
+- [[file:problem.org][暗号運用の問題点]]
diff --git a/src/paperkey.org b/src/paperkey.org
new file mode 100644 (file)
index 0000000..f8242b0
--- /dev/null
@@ -0,0 +1,64 @@
+# -*- coding: utf-8-unix -*-
+#+TITLE:     Paperkeyを使った秘密鍵のバックアップ
+#+AUTHOR:    斉藤英樹
+#+EMAIL:     hideki@hidekisaito.com
+#+DESCRIPTION: Emacs Builds prepared by Hideki Saito
+#+KEYWORDS: Emacs, software, OSS, compile, build, binaries
+
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style.css" />
+#+HTML_HEAD: <script type="text/javascript">
+#+HTML_HEAD:
+#+HTML_HEAD:  var _gaq = _gaq || [];
+#+HTML_HEAD:  _gaq.push(['_setAccount', 'UA-114515-7']);
+#+HTML_HEAD:  _gaq.push(['_trackPageview']);
+#+HTML_HEAD:
+#+HTML_HEAD:  (function() {
+#+HTML_HEAD:    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+#+HTML_HEAD:    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+#+HTML_HEAD:    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+#+HTML_HEAD:  })();
+#+HTML_HEAD: </script>
+
+#+LANGUAGE:  ja
+#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
+#+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
+#+OPTIONS: ^:{}
+#+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:h
+#+EXPORT_SELECT_TAGS: export
+#+EXPORT_EXCLUDE_TAGS: noexport
+#+LINK_UP: index.html
+#+LINK_HOME: index.html
+#+XSLT:
+
+#+BEGIN_HTML
+<script type="text/javascript"><!--
+google_ad_client = "ca-pub-6327257212970697";
+/* GNU Privacy Guard講座Banner */
+google_ad_slot = "2155169100";
+google_ad_width = 970;
+google_ad_height = 90;
+//-->
+</script>
+<script type="text/javascript"
+src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+#+END_HTML
+
+* Paperkeyとは
+
+PaperkeyはGnuPGの開発者の一人であるDavid Shaw氏により作成されたOpenPGP秘密鍵バックアップのツールです。これを使うことにより秘密鍵を印刷も可能な比較的短いコードに変換することが可能です。
+
+* 使い方
+
+PGPがお使いのシステムに含まれていない場合はPaperkeyのサイトよりダウンロード可能です。(Gpg4winには含まれています。c:\program files\gnu\gpg4win\を確認してください。)
+
+次のようにGnuPGからの秘密鍵出力をpaperkeyにパイプすることで使用できます。
+
+#+BEGIN_SRC sh
+gpg –export-secret-key | paperkey
+#+END_SRC
+
+出力されるコードは11行など非常に短いため、これを紙に印刷することにより長期保存も可能になります。
+入力の際は、paperkeyにそのコードを渡してやることによりもとの秘密鍵に変換されます。
+
+尚、このツールによって出力される秘密鍵のバックアップは依然として秘密鍵のセキュリティ(パスフレーズなど)で保護されているため、この方法によりバックアップより秘密鍵へのアクセスがパスフレーズなしに行えるようになるといったことはありません。しかし、万が一バックアップが漏洩した場合には念のため、鍵を作りなおすことは要検討であるといえます。
diff --git a/src/pgpzip.org b/src/pgpzip.org
new file mode 100644 (file)
index 0000000..93c1543
--- /dev/null
@@ -0,0 +1,131 @@
+# -*- coding: utf-8-unix -*-
+#+TITLE:     PGP Zipの取り扱い方法
+#+AUTHOR:    斉藤英樹
+#+EMAIL:     hideki@hidekisaito.com
+#+DESCRIPTION: Emacs Builds prepared by Hideki Saito
+#+KEYWORDS: Emacs, software, OSS, compile, build, binaries
+
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style.css" />
+#+HTML_HEAD: <script type="text/javascript">
+#+HTML_HEAD:
+#+HTML_HEAD:  var _gaq = _gaq || [];
+#+HTML_HEAD:  _gaq.push(['_setAccount', 'UA-114515-7']);
+#+HTML_HEAD:  _gaq.push(['_trackPageview']);
+#+HTML_HEAD:
+#+HTML_HEAD:  (function() {
+#+HTML_HEAD:    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+#+HTML_HEAD:    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+#+HTML_HEAD:    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+#+HTML_HEAD:  })();
+#+HTML_HEAD: </script>
+
+#+LANGUAGE:  ja
+#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
+#+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
+#+OPTIONS: ^:{}
+#+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:h
+#+EXPORT_SELECT_TAGS: export
+#+EXPORT_EXCLUDE_TAGS: noexport
+#+LINK_UP: index.html
+#+LINK_HOME: index.html
+#+XSLT:
+
+#+BEGIN_HTML
+<script type="text/javascript"><!--
+google_ad_client = "ca-pub-6327257212970697";
+/* GNU Privacy Guard講座Banner */
+google_ad_slot = "2155169100";
+google_ad_width = 970;
+google_ad_height = 90;
+//-->
+</script>
+<script type="text/javascript"
+src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+#+END_HTML
+
+PGPにはPGP Zipと呼ばれるアーカイブの作成をすることができるようになっています。
+
+* ファイル構造
+
+PGP Zipはファイル構成的には複数のファイルをtarにより単一化したものを暗号化するという構成をとっています。PGP Zipそのものがサポートされていない環境においてもこの処理を手動で行うことにより、PGP Zipとして扱えるファイルを作成することができます。
+
+** コマンドラインの例
+
+*** gpg-zipスクリプトがGnuPGに同梱されている環境の場合
+
+gpg-zipスクリプトがGnuPGとともに配布されている環境(シェルスクリプトが使用できる環境)である場合はgpg-zipスクリプトを使用することにより互換性のあるファイルが作成できます。
+
+#+BEGIN_SRC sh
+gpg-zip -e [ファイル名1] [ファイル名2] …
+#+END_SRC
+
+*** gpg-zipスクリプトが使用できない場合
+
+gpg-zipが使用できない場合はtarコマンド(もしくは7-zipなど、tarファイルが作成できるソフト)を使用することにより可能です。(尚、基本的にはtar環境が標準で使用できる環境にいる場合は恐らくgpg-zipコマンドも使用できる可能性が高いです。)尚、Windows環境で動作するtarコマンドはGNU utilities for Win32で入手できます。
+
+** tarファイルの作成
+
+tarコマンドを使用してファイルを作成する場合は以下のようにします。
+
+#+BEGIN_SRC sh
+tar -c ファイル名 > file.tar
+#+END_SRC
+
+** 暗号化・署名
+
+作成したtarファイルを暗号化する際に、–set-filenameオプションを使用します。
+
+#+BEGIN_SRC sh
+gpg -o file.pgp -e file.tar –set-filename “foo.tar”
+#+END_SRC
+
+fooのところは任意の名称で構いません。この–set-filenameで.tarの名前がついたファイル名が指定されていない場合は正常動作しません。(後述)
+この方法で作成したファイルはPGPでもPGP Zipとして取り扱えるようになります。
+
+** 上記を組み合わせた方法
+
+パイプを使うことにより上記を組み合わせることもできます。
+
+#+BEGIN_SRC sh
+tar -c [ファイル名] | gpg -o file.pgp -e –set-filename “foo.tar”
+#+END_SRC
+
+** 復号化
+
+PGPや上記の方法で作成したPGP Zipファイルを復号化する際は反対に暗号化されているものをtarファイルに復号化した後、tarファイルを解凍する方法になります。
+
+#+BEGIN_SRC sh
+gpg -o file.tar -d file.pgp tar xvf file.tar
+#+END_SRC
+
+パイプを使用した場合は次のとおりです。
+
+#+BEGIN_SRC sh
+gpg -d file.pgp | tar xv
+#+END_SRC
+
+尚、処理系が異なると日本語のファイル名は文字化けします。(特にWindowsとMac/Linuxの間)ただし、検証自体は処理間の形式に対して行われますので署名の判定に関しては正しいものとなります。
+
+** Macの場合の注意
+
+Macの場合はtarコマンドではなくgnutarコマンドを使用してください。尚、環境変数としてCOPYFILE_DISABLE=trueが指定されていないとAppleDouble(file.txtに対応する._file.txtのようなファイルとして)として拡張属性が含まれてしまいますのでご注意ください。
+
+* Kleopatraのオプションは使用できるか(Gpg4Win Windows、KDE環境)
+
+Kleopatraを使用しファイルをKleopatraウインドウにドラッグ・ドロップした上で、Encrypt/Signを選択、Archive files with:のチェックボックスを有効にしTAR (PGP®-compatible)を選択することができるようになっています。バージョン2.1.0で検証してみると、これを使用した場合、ファイル名が正常に埋めこまれないため、PGP(10.2で検証)ではtarファイルをファイルとして扱う挙動を見せてしまいます。そのため、現状は受け取ったPGP Zipファイルを復号することは可能ですが、暗号化には使用しない方がいいでしょう。
+
+** 埋めこまれたファイル名の違い
+
+*** Kleopatraで作成した場合
+#+BEGIN_EXAMPLE
+:literal data packet:
+mode b (62), created 1315533132, name=”",
+raw data: unknown length
+#+END_EXAMPLE
+*** PGPで作成した場合
+#+BEGIN_EXAMPLE
+:literal data packet:
+mode b (62), created 0, name=”pgpTmpArchive2020.tar”,
+raw data: unknown length
+#+END_EXAMPLE
diff --git a/src/problem.org b/src/problem.org
new file mode 100644 (file)
index 0000000..463a537
--- /dev/null
@@ -0,0 +1,74 @@
+# -*- coding: utf-8-unix -*-
+#+TITLE:     暗号運用の問題点
+#+AUTHOR:    斉藤英樹
+#+EMAIL:     hideki@hidekisaito.com
+#+DESCRIPTION: Emacs Builds prepared by Hideki Saito
+#+KEYWORDS: Emacs, software, OSS, compile, build, binaries
+
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style.css" />
+#+HTML_HEAD: <script type="text/javascript">
+#+HTML_HEAD:
+#+HTML_HEAD:  var _gaq = _gaq || [];
+#+HTML_HEAD:  _gaq.push(['_setAccount', 'UA-114515-7']);
+#+HTML_HEAD:  _gaq.push(['_trackPageview']);
+#+HTML_HEAD:
+#+HTML_HEAD:  (function() {
+#+HTML_HEAD:    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+#+HTML_HEAD:    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+#+HTML_HEAD:    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+#+HTML_HEAD:  })();
+#+HTML_HEAD: </script>
+
+#+LANGUAGE:  ja
+#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
+#+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
+#+OPTIONS: ^:{}
+#+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:h
+#+EXPORT_SELECT_TAGS: export
+#+EXPORT_EXCLUDE_TAGS: noexport
+#+LINK_UP: index.html
+#+LINK_HOME: index.html
+#+XSLT:
+
+#+BEGIN_HTML
+<script type="text/javascript"><!--
+google_ad_client = "ca-pub-6327257212970697";
+/* GNU Privacy Guard講座Banner */
+google_ad_slot = "2155169100";
+google_ad_width = 970;
+google_ad_height = 90;
+//-->
+</script>
+<script type="text/javascript"
+src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+#+END_HTML
+
+暗号運用の問題点は主にその普及率の悪さであると言える。暗号化技術の運用は双方向性が非常に強いものであり通信する相手同士が暗号の運用をしている必要がある。暗号普及のネックになっているものが次のような問題である。
+
+- 「自分には関係ない」などの意識
+- 政府等による規制
+- 暗号ソフトの運用性、容易性の問題
+- サポートされていないプラットフォーム
+
+まず最初の「自分には関係ない」との認識は世界的に一般的に見られる傾向ではあるが最近では政府への不信感などで変化してきている傾向も見られる。ところが次のような認識によって暗号の使用が行われない場合も多い:
+
+自分は犯罪者ではない→何もやましいことはしていない→隠すべきことはない→暗号を使用する必要がない
+
+このような発想を持つ「ごく一般的な」人々は暗号を使用することを犯罪者が犯罪を隠蔽するためにする行為との誤解があると言える。
+
+次に地域によっては政府による規制がある場合がある。この場合は暗号を使用することで罰せられる場合があるため当然暗号は普及しないということになる。これ以外にもイギリスで見られるようなRIP法の施行など暗号の運用を難しくする法的な制約が大きくなる場合も見られる。
+
+暗号ソフトの運用性、または容易性は暗合使用を妨げている大きな原因とも言える。現在公開されている数々の暗号パッケージは決して容易に学習できるものではなく、運用に大きな負担がかかる場合が多い。
+
+最後の暗号ソフトがサポートしないケースはだんだんと問題にはならなくなってきている。PGPはUNIXやMacを含む多数のプラットフォームのサポートを含み、PGPの別実装であるGNU Privacy Guardも多数のUNIXプラットフォームをサポートしている。尚、PGPの場合ソースコードも公開されているのでポーティングも可能である。
+
+次にそれぞれの対処法を見ていく。まず最初の「自分には関係ない」との意識はこれは意識を変えていく他ないといえよう。これを解決するにはいくつかの方法があるが主に次のようなものが考えられる。
+
+- 個人的なPGPの使用の推奨、使い方の説明など
+- 安価に受講できるPGPの講習の運営
+- マスコミによる暗号の普及活動
+
+二番目の法的な問題はこれは政府により禁止されているような問題が多いため政府に訴えかけて規制をなくす方向に交渉するしかないと言える。
+
+暗号の運用性に関する問題はソフト自体を容易にするのに加えメーラーなどから容易に使用できるような工夫などが必要であるといえる。基本的にユーザーは複雑な操作を嫌う傾向がある。
diff --git a/src/shorthist.org b/src/shorthist.org
new file mode 100644 (file)
index 0000000..f769c9c
--- /dev/null
@@ -0,0 +1,104 @@
+# -*- coding: utf-8-unix -*-
+#+TITLE:     A Short History of the GNU Privacy Guard(日本語版)
+#+AUTHOR:    斉藤英樹
+#+EMAIL:     hideki@hidekisaito.com
+#+DESCRIPTION: Emacs Builds prepared by Hideki Saito
+#+KEYWORDS: Emacs, software, OSS, compile, build, binaries
+
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style.css" />
+#+HTML_HEAD: <script type="text/javascript">
+#+HTML_HEAD:
+#+HTML_HEAD:  var _gaq = _gaq || [];
+#+HTML_HEAD:  _gaq.push(['_setAccount', 'UA-114515-7']);
+#+HTML_HEAD:  _gaq.push(['_trackPageview']);
+#+HTML_HEAD:
+#+HTML_HEAD:  (function() {
+#+HTML_HEAD:    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+#+HTML_HEAD:    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+#+HTML_HEAD:    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+#+HTML_HEAD:  })();
+#+HTML_HEAD: </script>
+
+#+LANGUAGE:  ja
+#+OPTIONS:   H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
+#+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
+#+OPTIONS: ^:{}
+#+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:h
+#+EXPORT_SELECT_TAGS: export
+#+EXPORT_EXCLUDE_TAGS: noexport
+#+LINK_UP: index.html
+#+LINK_HOME: index.html
+#+XSLT:
+
+#+BEGIN_HTML
+<script type="text/javascript"><!--
+google_ad_client = "ca-pub-6327257212970697";
+/* GNU Privacy Guard講座Banner */
+google_ad_slot = "2155169100";
+google_ad_width = 970;
+google_ad_height = 90;
+//-->
+</script>
+<script type="text/javascript"
+src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+#+END_HTML
+
+最初のバージョンのGNU Privacy Guard [0]がリリースされてから10年たちました。この最初のバージョンはGnuPGとは呼ばれず、g10と呼ばれ、これはドイツの憲法の通信の自由を定義する第十項(Grundgesetz Artikel 10)及び、シークレットサービスがこの憲法をすり抜けることができる、G-10法に対する語呂合わせとして命名しました。
+
+最初のバージョン0.0.0は1997年12月20日 [1]に公開され、これはぎりぎりRSAやIDEAの特許で保護されたアルゴリズムを使用せず、Elgamal及びBlowfishを使用したPGPとの互換性を持ったぎりぎり動作するものでした。これはテスト版としてマークされており、現在GnuPGで見られるほとんどの機能を含んでいませんでした。データのフォーマットはOpenPGPと互換性を持っておらず、よりPGP 2のフォーマットに近く、いくつかの拡張(データのストリームを可能にするなど)を含んでいました。OpenPGP作業会は1997年の秋に設立されており、その存在を知ったのは私がg10を作成するにあたり、当時すでに存在していたドラフトを参考にするには遅すぎました。著作権の問題から、PGP-5が使用するフォーマットをリバースエンジニアすることができなかったので、OpenPGP作業会は必要とされていたものが必要なタイミングに設立されたものでした。
+
+GnuPGについて語る前に数年、時間を遡ってみましょう。1991年に政治活動家であったPhil ZimmermannがPretty Good Privacy (PGP)と呼ばれるソフトウェアを公開しました。PGPは簡単に使え、さらにバックドアが存在せず、ソースコード公開された暗号化ツールでした。PGPは暗号手法的に強力であり、pretty good(訳注:「けっこう優れた」)以上のものでしたが、初期的にはいくつかのバグがあり、自家製の暗号化アルゴリズムでした。ソースコードが公開されていたことで、コミュニティーのハッカー(Branko Lankester、Colin Plumb、Derek Atkins、Hal Finney、Peter Gutmann、他)などがこれらを修正し、信頼できるバージョン2をリリースしました。
+
+この直後に問題が発生しました。ほとんどの国で暗号化のデバイスやソフトウェアの使用や輸出が強力に制限されていたように、米国においても例外ではありませんでした。一般的には弱い暗号しか認められていませんでした。PGPは非常に強力であり、またUsenetやFTP、BBSなどで公開されたために、他国でも事故的に漏れることとなり、Philはライセンスなしの軍需品輸出のため、起訴されました。これらの輸出管理はソフトウェアの時代に追随したものではなく、印刷したソフトウェア形態は規制がないという滑稽な効果を生み出しました。MIT PressはPGPのソースコードを本で出版し、米国外でこれをスキャンし、PGP-2i(iはinternationalの意)のベースとなりました。これは広く使われることになりました。
+
+1996年にPhilに対する犯罪捜査は終了し、彼はPGP-5を書くため、PGP Incを設立しました。最初の公開版は1997年の春にリリースされました。同年の8月に、Munichで開かれた第39回IETF会議においてPhil ZimmermannとJon CallasがIETFに対してPGP-5で使用されているプロトコルを標準として発行する作業会の設立を要請しました。この大きな目的は、強力な暗号を広めるとともに、新しい会社がPGPの販売、サポートを停止した場合においてもそれを保てるように、ということでした。現にその数ヶ月後に、PGP IncはNetwork Associateにより買収され、2002年にPGPのサポートと開発が停止されました。(ただし、その後、PGPの製品はPGP Corporationにより継続されることになります。)
+
+PGPはフリーソフトウェアとは言われていましたが、それはそのために要求される項目を満たしたものではありませんでした。PGP-5はれっきとした私有のソフトウェアでした。ソースコードが公開されていることだけではフリーとは呼べません。PGP-2は商用利用に一定の制限があり[2]、これによってもフリーではありませんでした。他の問題として、PGP-2は特許が存在するRSAとIDEAアルゴリズムの使用を強制するものでした。RSAの特許は米国内でのみ有効でしたが、IDEAは多くの国でまだ有効[3]なものとなっています。
+
+GNUプロジェクトではPGPの互換実装の必要性が数年に渡ってリストされていましたが、全ての公開鍵暗号のアルゴリズムが有効である限り、それを実装開始することは不可能でした。これは、基本的な公開鍵暗号の特許(Diffie-Hellman米国特許4200770)が1997年4月に、そしてさらに広義なHellman-Merkle特許(4218582)が期限切れになった時に変わりました。
+
+その次の月にAachenで開催されたIndividual-Network Betriebstagung(訳注:独立ネットワーク年次会)[4]においてBoFセッションにおいて、Richard Stallmanがヨーロッパのハッカーに公開鍵ソフトウェアを実装して欲しいと要請しました。米国の武器売買法においてGNUプロジェクトがそのようなソフトウェアを米国民が他国でそれを行ったとしても実装することができませんでした。そのため、ユニークな立場にいる、ヨーロッパのハッカーに対しGNUが暗号ソフトウェアを取りそろえるのを手伝って欲しいと頼んだわけです。
+
+SMGLの変換ソフトウェアを書くのにつかれ、おもしろいプロジェクトがなかった私は、PGP-2のパーシングコードをRFC-1991とpgformat.txtファイルを参考にしてハックしていました。これは簡単なものでしたので、私はさらに続け、PGP-2のデータを復号し、作成するコードを仕上げることに成功しました。GNUにPGPの互換実装を行うことを伝えた後、私はその年の残りをIDEAをBlowfish、RSAをElgamalに変更した上、ストリーム暗号やその他の鍵管理を加え、コードを整理するのに費やしました。
+
+当時、PSSTと呼ばれる、Secure Shellのフリーなバージョン(その後LSHとして知られる)の計画があり、それなりの人数がいるメーリングリストがあり、これはMartin Hamiltonにより管理されていました。Martinは寛大にg10のためのメーリングリストを設置してくれ、その旨をその(PSSTの)リストでアナウンスしてくれました。これにより最初のメンバーが加入しました。その後、私は最初のtarballを作成し、ドイツのUNIXユーザーグループのFTPサーバであるftp.guug.deにいれ、その旨をアナウンスしました。[5]
+
+その次の日にPeter Gutmannは/dev/randomが存在しないシステム向けに、乱数コードを提供することを申し入れてきました。これによりGnuPGを多数のプラットフォームに提供することを可能とすることになりました。その後、二ヶ月間はコードの更新及び、名称をどうするべきかということについて長い議論が交わされ、最終的にはAnand Kumriaの提案によるGnuPGに決定し、2月24日[6]にその名称(gnupg-0.2.8)が使用されることになりました。その数日後に、Windowsにおける試験的なバージョンが公開されました。(このリリースは、Alphaシステムにおけるアライメントの問題によりログが蓄積大量に蓄積し、管理者に本当にこれをバックアップする必要があるのか、と聞かれる問題もまた解消しました。;-)
+
+1998年7月にある程度のOpenPGPの準拠した草案がリリースされました。Matthew Skalaは新規にクリーンに仕上げたTwofishコードを提供しました。(当時、TwofishはAESの有力な候補であり、SchneierによりBlowfishの代わりとしての実装を推奨されましたが、リフェレンスコードに関して著作権の懸念がありました。)Michael RothはTriple-DES実装を提供し、その年の後半に、OpenPGPアルゴリズムの要件を満たしたものになりました。その次の年には一般的な問題が解消され、機能について議論され、それぞれの作者により他のソフトウェアよりのgpgのサポートや互換性が発表されました。
+
+最終的に、1999年の9月7日、1.0.0が公開され、これにはMike AshleyによるGNU Privacy Handbook [7]が含まれていました。その一年後の9月20日にRSA特許が切れる予定でしたが、その3週間前に特許保持者はそれをパブリックドメインとしたため、9月18日にはRSAサポートを含んだ1.0.3を公開することができました。暗号使用の大きな障害がまた一つ解消されたのです。(それは、かなり遅すぎました、もちろん)
+
+また、同1999年にドイツの政府は強力な暗号は規制されず、誰でも使うことを推奨する判断を下します。これを公的にサポートするために、財務省はGnuPGをMicrosoft Windowsに移植するための資金提供[8]を行いました。米国はそれに対して良く思わなく、規制なしに暗号のソフトウェアが配布されることに関してドイツ政府に考え直す働きかけ[9]を試行しました。これはうまくいかず、やがて米国もその輸出ルールを緩和するしかありませんでした。
+
+GnuPGは現在もヨーロッパにあるサーバ上で開発されていますが、この新しい米国の輸出規制により、米国内のハッカーがGnuPGの開発に寄与することができるようになりました。2001年にDavid Shawがプロジェクトに参加し、それから現在に至るまでもっともアクティブなGnuPGハッカー及び共同管理者となっています。
+
+GnuPGが楽しいプロジェクトとして管理できる時は遠い過去のこととなり、私は現在、ほとんどのプロフェッショナルとして、GnuPGの管理や拡張を生業としています。2001年に私はGnuPGやその関連ソフトウェアの開発やサポート業務を行うフリーソフトウェア会社、g10 Codeを設立しました。そのもっともよく知られたプロジェクトは恐らく、GnuPG-2で、NewPGとしてAegyptenプロジェクトの広義としてスタートしました。Aegyptenのメインの目標として、よく知られた中ではKMailなどの他のメールクライアントにクリーンに統合できる、S/MIMEのGNU/Linux上での実装でした。2004年よりアクティブに使用されていましたが、2.0.0のリリースはわずか一年前でした。
+
+X.509/CMS(一般的にはS/MIMEとして知られる)ソフトウェアを書くのはエレガントで相互互換性のあるOpenPGPを書くのに比べてあまりおもしろいものではありませんでした。これをマスターした後に、他のS/MIME実装とうまく機能するソフトウェアを書くのに成功しました。また私は、最近のPOSIXプラットフォームが必要であるとの意見とは違い、GnuPG-2をWindowsに移植することも可能であることがわかりました。この開発によりフリーソフトウェアをビジネスとして開発するのは実行可能であるとを見せるものとなりました。
+
+新しいツールにより、またユーザの目から見るとS/MIMEとOpenPGPはそんなに差がないように見えるようになります。ただ、今日RSAのヨーロッパカンファレンスにおいての簡単な人気投票により、OpenPGPは世界でもっとも広く使われている暗号プロトコルということが公表された時にはスマイルせずにはいられませんでした。
+
+GnuPGは一つのツールにしか過ぎないということを思い出してください。他にもプライバシーの問題を解決するためのツールが多数公開されています。長年プライバシーツールを書き、公開している皆さんに賛辞を述べたいと思います。
+
+ハッピーハッキング!
+
+
+[0] http://www/gnupg.org
+[1] ftp://ftp.gnupg.org/gcrypt/historic/g10-0.0.0.tar.gz
+[2] pgpdoc2.txtより: 「PGPを商業製品に変え、お金を儲けたい場合、私も儲ける方法に合意しないといけません。[...]PGPはこのPGPユーザーガイドを含む、PGPのドキュメンテーションなしに配布することができません。
+[3] 「有効」は特許保持者がそれを行使することであり、私はソフトウェア特許が有効なコンセプトであるとは考えていません。詳しくは
+http://www.fsfeurope.org/projects/swpat/background.en.html .
+[4] http://www.dascon.de/IN-BT97/programm.html
+[5] http://lists.gnupg.org/pipermail/gnupg-devel/1997-December/014131.html
+12月に特許に関するいくつかのメールがあります。
+[6] http://lists.gnupg.org/pipermail/gnupg-devel/1998-February/014208.html
+[7] http://lists.gnupg.org/pipermail/gnupg-announce/1999q3/000037.html
+[8] http://partners.nytimes.com/library/tech/99/11/cyber/articles/19encrypt.html
+[9] http://www.heise.de/tp/r4/artikel/5/5124/1.html
+
+
+文中敬称略、和訳:斉藤英樹
+
+[[http://lists.gnupg.org/pipermail/gnupg-users/2007-December/032250.html][原文]]
diff --git a/src/style.css b/src/style.css
new file mode 100644 (file)
index 0000000..e7a6fe9
--- /dev/null
@@ -0,0 +1,88 @@
+html { sans-serif; font-size: 12pt; }
+
+body {
+  background-color: #008000;
+}
+
+#content {
+  background-color: #FFFFFF;
+  padding: 15px;
+  margin: auto;
+  margin-bottom: 30px;
+  text-align: left; 
+  width: 1000px; 
+  min-width: 1000px; 
+  -moz-box-shadow: 0 0 5px 5px #006000;
+  -webkit-box-shadow: 0 0 5px 5px #006000;
+  box-shadow: 0 0 5px 5px #006000;
+}
+
+#emacs_screenshot {
+  width: 696px;
+  height: 650px;
+}
+
+.screenshot {
+  -moz-border-radius: 5px;
+  border-radius: 5px;
+  -moz-box-shadow: 5px 5px 5px black;
+  -webkit-box-shadow: 5px 5px 5px black;
+  box-shadow: 5px 5px 5px black;
+}
+
+p {
+  font-family: sans-serif;
+}
+
+li {
+  font-family: sans-serif;
+}
+
+.title {
+  font-family: sans-serif;
+}
+
+.outline-2 {
+  font-family: sans-serif;
+}
+
+.outline-3 {
+  font-family: sans-serif;
+}
+
+a:link {
+  color: #0000ee;
+  text-decoration: none;
+}
+
+a:hover {
+  color: #0000ee;
+  text-decoration: underline;
+}
+
+a:visited {
+  color: #800000;
+}
+
+a:active{
+  color: #008000;
+}
+
+#postamble {
+  text-align: center;
+  color: #000000;
+  background-color: #aaffaa;
+  -moz-box-shadow: 0 0 5px 5px #006000;
+  -webkit-box-shadow: 0 0 5px 5px #006000;
+  box-shadow: 0 0 5px 5px #006000;
+}
+
+code {
+  font-family: sans-serif;
+}
+
+#postamble {
+  padding-top: 20px;
+  padding-bottom: 20px;
+  font-size: small;
+}
diff --git a/src/tips.org b/src/tips.org
new file mode 100644 (file)
index 0000000..32573cf
--- /dev/null
@@ -0,0 +1,520 @@
+# -*- coding: utf-8-unix -*-
+#+TITLE:     GnuPG Tips
+#+AUTHOR:    斉藤英樹
+#+EMAIL:     hideki@hidekisaito.com
+#+DESCRIPTION: Emacs Builds prepared by Hideki Saito
+#+KEYWORDS: Emacs, software, OSS, compile, build, binaries
+
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style.css" />
+#+HTML_HEAD: <script type="text/javascript">
+#+HTML_HEAD:
+#+HTML_HEAD:  var _gaq = _gaq || [];
+#+HTML_HEAD:  _gaq.push(['_setAccount', 'UA-114515-7']);
+#+HTML_HEAD:  _gaq.push(['_trackPageview']);
+#+HTML_HEAD:
+#+HTML_HEAD:  (function() {
+#+HTML_HEAD:    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+#+HTML_HEAD:    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+#+HTML_HEAD:    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+#+HTML_HEAD:  })();
+#+HTML_HEAD: </script>
+
+#+LANGUAGE:  ja
+#+OPTIONS:   H:3 num:nil toc:1 \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
+#+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
+#+OPTIONS: ^:{}
+#+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:h
+#+EXPORT_SELECT_TAGS: export
+#+EXPORT_EXCLUDE_TAGS: noexport
+#+LINK_UP: index.html
+#+LINK_HOME: index.html
+#+XSLT:
+
+#+BEGIN_HTML
+<script type="text/javascript"><!--
+google_ad_client = "ca-pub-6327257212970697";
+/* GNU Privacy Guard講座Banner */
+google_ad_slot = "2155169100";
+google_ad_width = 970;
+google_ad_height = 90;
+//-->
+</script>
+<script type="text/javascript"
+src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+#+END_HTML
+
+* PGPで復号化しようとすると失敗する
+  :PROPERTIES:
+  :ID:       563af89b-d78d-4fea-bd4c-6b7a23492fef
+  :END:
+*【本項目は最近のバージョンでは当てはまらない可能性があります。参考としてご参照ください。】*
+
+Windows版ではGnuPGの場所を指定するレジストりキー(¥¥HKEY_CURRENT_USER¥Software¥GNU¥GnuPG¥HomeDir)に指定されているディレクトリ(指定が無い場合はc:¥gnupgになります)にoptionsというファイル(拡張子無し)を作成しforce-v3-sigsと表記します。UNIX版ではホームディレクトリ内に.gnupgというフォルダが作成されているので同様にその中のoptionsを変更します。こうするとPGP5,PGP6系に対応するようになります。(PGP2系はRSA/IDEAを使用しているため非対応)。注意しなければならないのが最初に鍵を生成する際にこれをしておく必要があることです。尚、相手がGnuPGを使用しているのが分かっている場合は–openpgpオプションを実行時に追加することで対応できます。(GnuPGはどちらの場合も正常に復号化できます。)
+
+* 受信者秘匿メッセージとは?
+  :PROPERTIES:
+  :ID:       bc46304a-6f02-4401-84a5-c6250b26ecd0
+  :END:
+GnuPG同士の場合は受信者を秘匿することができます。(Anonymous Receipient機能)通常暗号化をすると相手の鍵IDが鍵に含まれます。これにより復号化の際にどの鍵に向けて発信されているかを判断します。受信者を秘匿することにより、この情報を外してしまいます。これにより誰に向けて発信されているかという情報をメッセージが持たなくなります。これをするのには次のようにします。
+
+#+BEGIN_SRC sh
+gpg -ea --throw-keyid filename.asc
+#+END_SRC
+
+このオプションを使うと復号化の際に全ての鍵に対して復号化を試みる為、処理が多少遅くなります。(複数の秘密鍵がある場合、全ての鍵に対して復号化できるまでパスワードを入力する必要があります。複数の受信者にお互いの情報を明かすことなく暗号化するなどの使い方がありますがPGP5,6との互換性がなくなるので注意してください。
+
+** 1.4.x以上
+   :PROPERTIES:
+   :ID:       901bb297-157a-4258-a441-724d18414e29
+   :END:
+
+-rの代わりに-Rを指定することにより-Rを指定したユーザーを選択的に設定することが可能になりました。
+
+#+BEGIN_SRC sh
+gpg -ea -r 0xffffff -R 0xeeeeee
+#+END_SRC
+
+この場合、0xffffffに対しては普通に暗号化されますが、0xeeeeeeへの暗号化は秘匿されます。
+throw-idを使用した場合は受信者全員が秘匿化されます。
+
+*【本項目は最近のバージョンでは当てはまらない可能性があります。参考としてご参照ください。】*
+
+** 注意
+   :PROPERTIES:
+   :ID:       efb6f326-e631-4a16-8db5-2c033addc918
+   :END:
+これを使用することにより、宛先のKey IDは秘匿されますが誰かにメッセージが宛てられているという事実を隠すことはできません。そのため、トラフィック分析などで宛先が判明してしまう場合はありますのであくまでも予備的な方法であることに注意してください。
+
+* Windows版で復号化したファイルが読めない
+  :PROPERTIES:
+  :ID:       3e4846e1-bf11-4d46-8f2f-c5c353e0e43b
+  :END:
+UNIX版では問題ないものでWindows版では問題があるものとしてリダイレクタの使用があります。次のように復号していないでしょうか?
+
+#+BEGIN_SRC sh
+gpg -d filename.asc > file
+#+END_SRC 
+
+ファイルがバイナリファイルの場合はこれを使うと問題が起きます。次のように復号化するようにしてください。
+
+#+BEGIN_SRC sh
+gpg -o file -d filename.asc
+#+END_SRC
+
+これで問題ないはずです。
+
+* GnuPGの商業利用は問題なく可能か?
+  :PROPERTIES:
+  :ID:       7f92484e-c988-43bb-821a-46a51a098e35
+  :END:
+*【本項は参考情報として提供されています。法的な疑問等が有る場合は弁護士等に相談してください。】*
+
+GnuPGは特許でカバーされているアルゴリズムを使用していないため商業利用は問題なく可能です。ちなみにGnuPGのライセンスであるGNU Public Licenseではソフトウェアの利用に関する項目はありませんので明示的に表明していないGnuPGの場合は自由に使用できます。
+
+** 〜1.4.8 参考:GNU General Public License Section 0より抜粋
+   :PROPERTIES:
+   :ID:       4b9a6ad1-2a94-4e0f-bed9-f172bba9a6e7
+   :END: 
+#+BEGIN_SRC
+Activities other than copying, distribution and modification are
+not covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the Program
+(independent of having been made by running the Program). Whether that
+is true depends on what the Program
+does.
+#+END_SRC
+
+複製、頒布、変更以外の行為は本使用許諾の対象としません。それらは本使用許諾の範囲外です。「プログラム」を実行させる行為に関して制約はありません。「プログラム」の出力は、(「プログラム」を実行させて作成させたかどうかとは無関係に)
+その内容が「プログラム生成物」である場合に限り本使用許諾の対象となります。これが当てはまるかどうかは、「プログラム」が何をするものかに依ります。
+1.4.8〜 1.4.8からはGPLv3が適応されるため、以下の部分が適応されます。
+
+** GNU General Public License v3, 2. Basic Permissionsより抜粋
+   :PROPERTIES:
+   :ID:       2ca0c7e4-aac2-4ad2-b054-458881761d57
+   :END: 
+#+BEGIN_SRC
+All rights granted under this License are granted for the term of copyright on
+the Program, and are irrevocable provided the stated conditions are
+met. This License explicitly affirms your unlimited permission to run
+the unmodified Program. The output from running a covered work is
+covered by this License only if the output, given its content,
+constitutes a covered work. This License acknowledges your rights of
+fair use or other equivalent, as provided by copyright
+law.
+#+END_SRC
+本許諾書の下で認められるすべての権利は、『プログラム』に主張される『コピーライト』の条項に基づき授与されるものであり、ここで述べられた条件が満たされている限り覆すことはできない。本許諾書は、改変されていない『プログラム』をあなたが無制限に実行することを許可し、明示的に確約する。『保護された作品』を実行することから得られた出力結果は、その出力内容が『保護された作品』を構成する場合のみ本許諾書で保護される。本許諾書は、あなたが有するフェアユースまたはその同等物の権利を、『コピーライト』法規によって提供される通りに承認する。
+
+* 対称暗号化したファイルがPGPで復号化できない(またはその逆)
+  :PROPERTIES:
+  :ID:       821000df-f44f-449e-9e5b-c6a86110f032
+  :END:
+*【本項目は最近のバージョンでは当てはまらない可能性があります。参考としてご参照ください。】*
+
+PGPで複合化できるように対称暗号化(つまり-cオプションの暗号化)するのには–cipher-algo
+CAST5の指定が必要です。つまり次のようにします。
+
+#+BEGIN_SRC sh
+gpg --cipher-algo CAST5 -c filename.asc
+#+END_SRC sh
+
+PGPで対称暗号化したもので復号化できないものは次のようにすると問題ないはずです。
+
+#+BEGIN_SRC sh
+gpg --cipher-algo CAST5 -d filename.asc
+#+END_SRC
+
+上記の方法でもうまくいかない場合があるようです。現在検証中です。しばらくお待ち下さい。
+
+PGPとGPGが生成するパケットの違いを検証してみたところ、圧縮方式が違うことで起こる問題のようです。→技術情報
+
+上の暗号化時のコマンドラインの代わりに次のように入力してください。
+
+#+BEGIN_SRC sh
+gpg --cipher-algo CAST5 --compress-algo 1 -c filename.asc
+#+END_SRC
+
+これでも問題があるようでしたらご一報下さい。9月20日にリリースされた1.0.3ではこれがデフォルトのオプションになっているようです。
+
+* PGPで復号化したときにSecure Viewerで表示されるようにしたい
+  :PROPERTIES:
+  :ID:       0e39693d-3e89-4526-8ad4-a22a8632d1f0
+  :END:
+PGPには電磁波により文字を読み取るTEMPEST攻撃を避けるためのビュワーが入っていますが、GnuPGにはこの機能は入っていないため、一見、不可能なようですが実はこれをする方法があります。暗号化をするときに次のようにするとできます。
+
+#+BEGIN_SRC sh
+gpg --cipher-algo CAST5 --compress-algo 1 --set-filename _CONSOLE -c filename.asc
+#+END_SRC
+
+実はSecure Viewerはファイル名が_CONSOLEという名前で設定されているだけなのでこれをset-filenameオプションで設定するとこれが簡単に実現できてしまいます。Secure Viewerでは日本語は化けてしまうので注意してください。
+
+** 1.4.x以上
+   :PROPERTIES:
+   :ID:       6faadf85-771b-4499-a2a2-8e4ffe395d69
+   :END:
+
+for-your-eyesオプションを使用してください。
+
+#+BEGIN_SRC sh
+gpg --for-your-eyes-only -c filename.asc
+#+END_SRC
+
+* PGPから乗り換えたい
+  :PROPERTIES:
+  :ID:       213eefe8-cd75-41f4-868b-1a24b283118a
+  :END:
+PGPから乗り換える場合は次のようにします。まず、PGPで秘密鍵と公開鍵をファイルに保存します。仮にkeys.ascという名前で保存したと仮定します。次にそのファイルをGnuPGで次のようにします。
+
+#+BEGIN_SRC sh
+gpg --import keys.asc
+#+END_SRC
+
+これでGnuPGに秘密鍵と公開鍵が取り込まれます。これで乗り換えは完了です。尚、通常のバージョンのGnuPGではこの方法が使えるのはPGPがバージョン5以降の場合のみです。(IDEA/RSA形式のものは使用できません)
+
+* Windows版でタイムゾーンがかみ合わない
+  :PROPERTIES:
+  :ID:       240301c7-f7f3-485b-a5e5-a1d7e5310e8b
+  :END:
+*【本項目は最近のバージョンでは当てはまらない可能性があります。参考としてご参照ください。】*
+
+現在のWindowsバージョンではローカル時間がGMTとして認識されてしまう問題が存在します。開発者によるとこの問題をWindows版では専用のコードを使用して回避する方向のようですのでしばらくお待ち下さい。
+
+この問題はPGP側の「問題」のようです。PGP側でタイムゾーンの補正を二重にかけているようです。この問題はPGP同士では露見しないため今まで判明しなかったおそれがあります。現段階ではGnuPG開発メーリングリストとPGPメーリングリストにこの情報を投稿しました。(尚、この問題は「仕様バグ」に近く、「バグ」と呼称するのには語弊があるためここでは「問題」と呼称しました。OpenPGPを定義するRFC2440では二重に補正をかける定義はありません。)
+尚、この問題はGnuPG News Japanにて作田氏の検証により判明しました。 この問題はPGP7.0より修正されているようです。
+
+* openpgpオプションとは?
+  :PROPERTIES:
+  :ID:       1330a1d0-11fb-4bfb-bb45-6ea51fe83c45
+  :END:
+GnuPGはOpenPGPに記述されている仕様に則り実装されているわけですがオプションの中にはこれに従わないようにするものがあります。この一般的な例がforce-v3-sigsなどのPGP対応を考慮しているものです。このオプションはそれを全て無視し、OpenPGPに従うように設定するものです。これは特にoptionsファイルなどにそれを指定している場合にそれを変更せずにOpenPGPモード(つまり相手が対応する暗号ソフトを持っていることが判明している場合)などに使います。
+
+** 1.4.x以前
+   :PROPERTIES:
+   :ID:       ced56e31-f7d1-4121-a7a5-2875842797aa
+   :END:
+RFC2440の内容に準じます。
+** 1.4.x以降
+   :PROPERTIES:
+   :ID:       3faf7271-fb71-4ab3-99c5-745734ca54df
+   :END:
+RFC4880の内容に準じます。
+
+新たにrfc2440及びrfc4880オプションが追加されています。従来の意味でのopenpgpを使用したい場合においてはrfc2440を使用します。rfc4880とopenpgpは同じ挙動となります。
+
+* show-session-keyとoverride-session-keyとは?
+  :PROPERTIES:
+  :ID:       139becd3-2e24-43d9-97a4-0e58e5c1b11a
+  :END:
+1.0.3より新たにサポートされた機能が上記の二つのオプションです。この二つは英国のRIP法対策に付加されているものです。どういう場合に使うかというと警察機関などが復号鍵の提出を求める場合、秘密鍵を渡してしまうとなりすましなどのリスクがあります。そこでこれはSession keyと呼ばれる暗号化時にそのメッセージのみで使われるキーを表示し、またそれで復号化するオプションです。次のようにするとSession keyが表示されます。
+
+#+BEGIN_SRC sh
+gpg –show-session-key file.gpg
+#+END_SRC
+
+上記のコマンドラインを入力するとパスフレーズを訊かれるのでパスフレーズを入力するとSession keyが表示されます。尚、これを用いて復号化するには gpg –override-session-key [先に抽出したSession key] file.gpg とします。尚、このSession keyが知られてしまうとそのメッセージは誰でも復号化できてしまいます。このオプションは特に必要とされる以外は使用しない方がいいでしょう。(公開鍵暗号の意味がなくなってしまいます。)
+
+* Windows用のフロントエンド
+  :PROPERTIES:
+  :ID:       3fb446c5-fdf8-4c03-bc6f-3fe427a7539b
+  :END:
+[[http://www.gpg4win.org][GPG4WIN]] ではWindows用のツールがセットになって配布されています。
+
+* PGPとGnuPG破棄証明書の作成の違いは?
+  :PROPERTIES:
+  :ID:       61ab2ba5-efe4-4a23-90d3-879653f71eff
+  :END:
+PGPとGnuPGの破棄証明書の作成方法は大きく異なります。PGPでは破棄証明書を作成した時点で対象の鍵に自動的にマージされます。つまりPGPで鍵の破棄をする場合、「破棄証明書」の発行はされずそのまま鍵を破棄ということになります。GnuPGでは破棄証明書を発行すると破棄証明書ファイルが作成されます。この時点で鍵の破棄は行われず、これをインポートするまで破棄したことにはなりません。ちなみにGnuPGの破棄証明書の発行は次のように行います。
+
+#+BEGIN_EXAMPLE
+gpg --gen-revoke [keyid]sec 1024D/82957B66
+
+
+2000-07-08 Hideki Saito Create a revocation certificate for
+this key? y
+
+Please select the reason for the revocation: 1 = Key has been
+compromised 2 = Key is superseded 3 = Key is no longer used 0 =
+Cancel (Probably you want to select 1 here) Your decision? 1
+
+Enter an optional description; end it with an empty line:
+
+>【任意のコメント(入力しないで改行すると終了)】
+
+Reason for revocation: Key has been compromised (No description
+given) ←上でコメントを入力した場合はそれがここに表示されます。
+
+Is this okay? y
+
+You need a passphrase to unlock the secret key for user:
+“Hideki Saito ” 1024-bit DSA key, ID 82957B66, created 2000-07-08
+Enter passphrase: 【パスフレーズを入力】
+
+ASCII armored output forced. Revocation certificate created.
+Please move it to a medium which you can hide away; if Mallory gets
+access to this certificate he can use it to make your key unusable.
+It is smart to print this certificate and store it away, just in case
+your media become unreadable. But have some caution: The print system
+of your machine might store the data and make it available to others!
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.0.4-1
+(MingW32)
+Comment: A revocation certificate should follow
+
+【省略】
+
+-----END PGP PUBLIC KEY BLOCK-----
+#+END_EXAMPLE
+
+破棄証明書を作成するGnuPGのアプローチは面倒なように思えますが実はこれは理にかなっているといえます。破棄証明書は一般的に短く、紙に印刷しても打ち込める程度のものです。(3行程度)使用しているPCのクラッシュなどで秘密鍵を紛失してしまうことなども決して珍しくありません。破棄証明書を印刷して保存しておくと後に何らかの原因で鍵を破棄する必要が出てきた場合に置いても秘密鍵を持っている必要はないわけです。
+
+* PGP、GnuPG各バージョンの標準アルゴリズムは?
+  :PROPERTIES:
+  :ID:       4cb0f341-208c-406e-af51-df8f5afe401b
+  :END:
+*【本項目の情報は古くなっています。近く更新される予定です。】*
+
+PGPとGnuPGの各バージョンの標準暗号アルゴリズムは次のようになっています。
+
+| PGP 2.x             | IDEA                                   |
+| PGP 5.x, 6.x        | (DH) CAST, (RSA) IDEA                  |
+| PGP 7               | (DH) CAST (RSA) CAST (RSA-Legacy) IDEA |
+| GnuPG 1.0.1 - 1.0.3 | Twofish                                |
+| GnuPG 1.0.4         | AES (Rijndael)                         |
+
+これらの標準設定に基づき鍵に「好まれる」標準が書き込まれます。そのため、例えばGnuPG 1.0.3で作った鍵ペアを1.0.4にインポートしてもそれが引き継がれます。これを変更するためにはそのバージョンで–editオプションを用い、期限切れ(expire)を再度設定することによりその変更が鍵に書き込まれます。
+
+尚、GnuPGの鍵の場合、PGPがアルゴリズムを理解しないためIDEAと表示されますがCASTを使用しますので特に問題はありません。
+
+* GnuPGとPGP 7.0の相性について
+  :PROPERTIES:
+  :ID:       cd91e88b-8eaa-4c87-8eca-b14e3da6d420
+  :END:
+*【本項目は最近のバージョンでは当てはまらない可能性があります。参考としてご参照ください。】*
+
+PGP 7.0の場合は次の設定においてGnuPGとの互換性が保たれます。 Diffie-Hellman/DSS鍵で任意の鍵長
+RSA鍵で任意の鍵長 鍵がRSA Legacyの場合はIDEAを使用するため、通常GnuPGでは互換性がありません。GnuPGでCAST,
+Rijndael, 3DES, Twofishを明示的に指定した場合PGP 7.0との互換性が保たれますが通常は明示的な指定は必要ありません。(公開鍵に設定されているアルゴリズムを使用するため)
+
+GnuPGはforce-v3-sigsを指定しない場合version 4署名を生成しますがこれはPGP
+7.0.xにおいても検証することが可能です。尚、以前のバージョンではこれは検証できないためご使用にはご注意下さい。(GnuPGNewsJapanにて作田さんより情報を戴きました、ありがとうございました。)
+
+* GnuPGでIDEAを使うには
+  :PROPERTIES:
+  :ID:       fafb5e8e-34fe-4657-8922-a49a789ab6e3
+  :END:
+バージョン1.4.13よりIDEAアルゴリズムは正式にサポートされました。
+
+** Windowsバージョンの場合
+   :PROPERTIES:
+   :ID:       e851358b-7ddb-4e0c-9d3b-68860b37b843
+   :END:
+
+1. バージョンが1.0.5以降なのを確認の上、このページからidea.dllをダウンロードします。
+2. このファイルを任意の場所(c:¥lib¥gnupg¥が望ましいです)にコピーします。
+3. GnuPGをインストールしている場所に存在するoptionsをテキストエディタなどで開きます。
+4. c:¥lib¥gnupgにコピーした場合 load-extension idea.dll と追記します。
+その他の場所にコピーした場合
+
+#+BEGIN_EXAMPLE
+load-extension c:/gnupg/idea.dll
+#+END_EXAMPLE
+
+というような書式で追記します。ディレクトリのセパレーターが¥ではなく/であることに注意してください。
+
+** UNIXバージョンの場合
+   :PROPERTIES:
+   :ID:       3360c351-9704-4eee-a974-1d12a6538220
+   :END:
+
+1. idea.cをダウンロードします。
+2. 以下のようにコンパイルします。
+#+BEGIN_SRC sh
+gcc -Wall -O2 -shared -fPIC -o idea idea.c
+#+END_SRC
+でこのidea.cをコンパイルします。
+
+任意の場所にコピーして.gnupg/optionsに次のように追記します。
+#+BEGIN_EXAMPLE
+load-extension /home/user/.gnupg/options
+#+END_EXAMPLE
+これが成功した場合、
+次のような表示があるはずです。
+
+#+BEGIN_EXAMPLE
+gpg --version
+
+gpg (GnuPG) 1.0.5
+Copyright (C) 2001 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:/gnupg
+Supported algorithms:
+Cipher: IDEA, 3DES, CAST5, BLOWFISH, RIJNDAEL, RIJNDAEL192, RIJNDAEL256, TWOFISH
+Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA, ELG
+Hash: MD5, SHA1, RIPEMD160
+#+END_EXAMPLE
+万が一IDEAが表示されない場合はideaモジュールの場所やoptionsの設定を確認してください。
+
+
+* GnuPGの安全性について
+  :PROPERTIES:
+  :ID:       ee9154af-3596-4fd2-a678-e2378467033c
+  :END:
+GnuPGの安全性について説明する前に理解しておく必要があるのがどんな暗号も解けない暗号はないということです。
+つまり時間はかかるにしろいつかは暗号を解くことが可能なわけです。暗号の安全性を高めているのはその時間が非常に長く
+現在の技術水準で数百年から数千年という時間となります。 また、未発見の解読方法が発見されると暗号の強度はかなり下がります。
+例えばRSAでは大きな数の素因数分解が非常に困難であるという前提のもとにその暗号の強度が保たれています。
+将来、素因数分解が容易に行える方法が見つかることがあればRSAの信頼性が損なわれるわけです。
+また、コンピューターのスピードの向上による暗号解読の短縮なども懸念されますがこれは鍵長をある程度に保っていくと
+それなりに安全に保てます。この計算はO(X^2)の性質を持ちます。つまり鍵長が一ビット増えるとその計算時間はそのべき乗した長さとなります。
+RSAの詳しい説明ははやわかりRSAをご覧下さい。
+
+GnuPGで使われる暗号は現段階でその信頼性が検証されているものです。暗号の強度の点で言えば問題はありません。ただし上記したように鍵長がある程度長いものを使用してください。
+
+なお、ソフトウェア自体の安全性ですがこれもソースコードが公開されているということでバックドアなどを仕掛けることは事実上困難です(バイナリで公開されているものは配布者によってそのようなことがなされている可能性は否めません。その場合、ソースをコンパイルするか信頼できるサイト、つまり公式のサイトなどからダウンロードすることをお勧めします。どちらにせよ配布物とその署名を確認するなどの確認をするといいでしょう。)
+
+* GnuPGでの日本語使用について
+  :PROPERTIES:
+  :ID:       e9dc1797-ae9b-466c-aac3-8b3a7c8b4ae8
+  :END:
+ターミナル、またはコマンドプロンプトなどでサポートされる場合、GnuPGで日本語を使用することは可能です。
+しかしいくつかの点で気を付ける必要があります。
+
+** OSが使用する文字コードの違い
+   :PROPERTIES:
+   :ID:       44908848-7986-461f-ae49-8e88ac95900c
+   :END:
+
+Windows上では日本語はShift-JISを標準にしています。しかしほとんどのUNIXはEUC-JPという文字コードを使用しています。最近ではこれらを変換できるエディタも多く、一見問題が無いように思えるのですが署名などを使用する場合これが大きな問題となります。そのままで署名検証すると問題は起こらないのですが変換ツールなどを使用して他の文字コードに変換した場合に署名が検証できないという問題が発生します。この問題は特に相手が違うOSを使用しているのが既知な場合などコメント欄に使用している文字コードを表記するなどの工夫が必要です。
+
+** メールでの文字コード扱いの問題
+   :PROPERTIES:
+   :ID:       a2bbed9e-9c28-4786-aea2-bd50e91488c3
+   :END:
+
+インターネットでメールを送信するとメールはISO-2022-JP(JIS)に変換されて送信されます。この場合前述の文字コードの違いに加え、JISから環境のネイティブなフォーマット(例えばWindows上ではShift-JISへの変換)が自動的に行われることを認識している必要があります。インターネットでのメールはJISを使うという前提が成り立っているため、通常、この場合は送信する際、JISに変換したものを署名・暗号化するべきであると言えます。これはメーラーなどのプラグインを使用する方法が一番簡単です。トップにいくつか関連サイトへのリンクがありますのでぜひご覧下さい。
+
+* MacOS XでのGnuPG使用について
+  :PROPERTIES:
+  :ID:       afe95ca2-145a-427d-a4a2-b8b06df70453
+  :END:
+【本項は更新中です。】
+
+* GnuPGにおける指定失効者
+  :PROPERTIES:
+  :ID:       af29192b-0675-4adf-8142-e66e5e24ee3b
+  :END:
+GnuPGで指定失効者(Designated Revoker)を指定、または鍵の失効を行う方法です。指定失効者とは秘密鍵を持っていなくとも鍵を失効できるユーザーのことを指します。
+
+** 指定失効者の設定
+   :PROPERTIES:
+   :ID:       6a32e3e2-1f0b-4459-83d8-f1c5a9b6d57a
+   :END:
+
+注意:指定失効者は設定すると解除(破棄)することができません。 edit-keyオプションを使用して鍵編集モードに入ります。
+
+#+BEGIN_SRC sh
+gpg --edit-key 公開鍵ID
+#+END_SRC
+
+addrevokerコマンドを入力し、指定失効者のIDを入力します。
+
+#+BEGIN_EXAMPLE
+pub 1024D/xxxxxxxx 2006-06-26 xxxxxxxx
+Primary key
+fingerprint: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx<
+WARNING:
+appointing a key as a designated revoker cannot be undone! Are you
+sure you want to appoint this key as a designated revoker? (y/N)
+#+END_EXAMPLE
+ここでyとすることにより指定失効者が追加されます。 鍵をsaveコマンドで保存し、もう一度鍵編集モードに入ると以下のような表示がされます。
+
+#+BEGIN_EXAMPLE
+This key may be revoked by DSA key xxxxxxxx
+xxxxxx xxxxxx <xxxxxxx @xxxx.xxx>
+#+END_EXAMPLE
+これにより、指定失効者の設定がされました。
+
+** 指定失効者による鍵の破棄
+   :PROPERTIES:
+   :ID:       34df19f9-39be-48f2-99f2-c85db3c5f845
+   :END:
+
+指定失効者による鍵の破棄は本人による破棄にとほぼ同様です。
+異なる点は、破棄証明書の生成をgen-revokeの代わりにdesig-revokeで行う点です。
+
+#+BEGIN_SRC sh
+gpg --desig-revoke xxxxxxxx
+#+END_SRC
+
+ここで、指定失効者のパスフレーズを入力すると破棄証明書が生成されます。これを–importで取り込むことにより鍵の破棄が行われます。
+
+** 制限事項
+   :PROPERTIES:
+   :ID:       2f58d2ea-dc2b-43db-8fcf-57a334e281cb
+   :END:
+
+公開鍵サーバによっては指定失効者により破棄された鍵を認識しない場合があります。
+
+* 有効期限(Expire)の設定の方法いろいろ
+  :PROPERTIES:
+  :ID:       056f23a9-103e-4b4a-9dc6-beb2ee772cb7
+  :END:
+edit-keyの鍵インターフェースなどでの設定で使用できる有効期限の設定にはいくつかの方法があります。 無期限0を指定します。
+
+** 残りの期限で指定する
+   :PROPERTIES:
+   :ID:       4c2140a5-5d90-41f2-a77c-5b6879dc11bb
+   :END:
+
+数字のみの指定で残り期限は日の単位になります。つまり10の入力で10日の有効期限となります。同様にwを追加すると週単位の指定、mを指定すると月単位の指定、yを使用すると年単位の指定となります。尚、この場合、有効期限の時間は現在時間と同様になります。
+
+** 有効期限の日付を指定する
+   :PROPERTIES:
+   :ID:       2b1b9b44-5df2-4551-bf5c-4dedad5e7455
+   :END:
+
+YYYY-MM-DDのフォーマットで入力することにより、有効期限を日付で指定できます。例えば2015-03-19と入力すると2015年3月19日0時0分に失効するものとなります。