11.8.3 暗号化・復号化・電子署名の方法

Apple Mail を用いてメッセージを暗号化・復号化したり,メッセージに電子署名を加えるには,externalGPGMail と呼ばれるソフトウェアを使うと便利です.

しかし,2012年4月1日現在,教育用計算機システムの端末には GPGMail はインストールされていません.
ここでは,コマンドラインでの暗号化・復号化・電子署名の操作を紹介します.

暗号化と復号化

たとえば,東大花子さん (0987654321@mail.ecc.u-tokyo.ac.jp) の公開鍵を持っているユーザが,花子さんに secret_text.txt というファイルの内容を暗号化して送りたいとします.
ターミナルを開いて,

gpg -r 0987654321@mail.ecc.u-tokyo.ac.jp -ea secret_text.txtreturn2

と打つと,secret_text.txt が暗号化され,secret_text.txt.asc というファイルが生成されます.secret_text.txt.asc の内容は,
-----BEGIN PGP MESSAGE----- Version: GnuPG v1.4.11 (Darwin) hQEMAxeiRd2VRjwUAQf+OgHtYK3ugYESsqAz+CFOHXlTkLVRHFYb5IrQk7mSikwU vwiioTB0QP8FPYJ+IBPObcsDJKEBRzcDy2DyJvoptY6M1DpfYbSmHLWV+Uf50Ujc (中略) OkQbIFTDp9FooRpilwztjTzvXlezz2M7AXRf33qD5Dup4vwN29OZA0gv81Dw2yh1 =buFn -----END PGP MESSAGE-----

のようになっています.
この暗号化された文字列を受け取った花子さんは,この文字列を recieved_text.txt.asc というファイルに書き出します.そして,ターミナルを開いて
gpg -o recieved_text.txt -d recieved_text.txt.ascreturn2

と打つと,秘密鍵のパスフレーズを要求されます.正しくパスフレーズが入力されると,recieved_text.txt.asc が復号化され,recieved_text.txt に書き出されます.

電子署名の方法

電子署名を用いて,文章を作成したのが本人かどうか,また,文章が第三者によって改竄されていないかを確認してみましょう.
東大太郎さんが important_text.txt に電子署名を加える状況を考えます.ターミナルを開いて

gpg --clearsign important_text.txtreturn2

と打つと,秘密鍵のパスフレーズを要求されます.正しくパスフレーズが入力されると,important_text.txt の内容に電子署名が加えられた important_text.txt.asc というファイルが生成されます.important_text.txt.asc の内容は,
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 ここに本文が入ります. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (Darwin) iQEcBAEBAgAGBQJPeY+/AAoJEBeiRd2VRjwUDPAH/3pmp5ILFlwubshrssXQQLJA (中略) t4yhcH38NFL58wDCZk5rAYvWja+9XeN1T1ORSzfgXCiYI+CuNvAqMep/NtTOzpk= =adHk -----END PGP SIGNATURE-----

のようになっています.
この内容を受け取ったとき,電子署名の正当性は次のように確認できます.
gpg --verify important_text.txt.ascreturn2
gpg: 月 4/ 2 20:38:39 2012 JSTにRSA鍵ID 95463C14で施された署名 gpg: “Taro TODAI <0123456789@mail.ecc.u-tokyo.ac.jp>”からの正しい署名