GnuPG について (1)
前置き
JanusDG の次期バージョンの作成にあたり、もう一度、その暗号化エンジンである GnuPG について資料をまとめておこうと思う。
GnuPG は、*NIX ではデファクトスタンダードの暗号ソフトであり、日本語による解説ページもネット上で見つかりはするが、「なぜ、そのような仕組みになっているのか」まで解説されていることは少ない。
もちろん、私にとっても謎な仕様が GnuPG にはたくさんある。
私が、何を理解して、何を理解していないのかを明確にするためにも、数日をかけて、GnuPG に関する記事を連載していこうと思う。
GnuPG とは
本家、 http://www.gnupg.org/ によると、GnuPG とは
RFC4880 で規定された OpenPGP の仕様を完璧に実装しており、なおかつフリーソフトウェアとしての要件を満たした、データ暗号化および電子署名用ソフトウェアである。他のアプリケーションに暗号化エンジンとして組み込んで利用されることを想定しており、コマンドラインツールとして提供される。
実際に、GnuPG と組み合わせるための、さまざまな GUI フロントエンドや、ライブラリが公開されている。
フロントエンドについては、http://www.gnupg.org/related_software/frontends.html このへんが参考になるし、ライブラリについては、http://www.gnupg.org/related_software/libraries.html このへんが参考になる。
こういった既存 GUI フロントエンドに納得のいかない部分があったので、私は JanusDG や KageHinata といったアプリケーションを作ることになったのだが、それについてはまた追い追い語ることにする。
GnuPG の特徴 (1)
本家ホームページによると、GnuPG の特徴は
- PGP に取って代わる存在である(PGP についはまたの機会に)
- 特許の絡んだアルゴリズムは一切使用していない
- 一から書き起こされたソフトウェアであり、ライセンスは GPL となっている
- *NIX ではおなじみの「フィルタ処理」が可能となっている
- OpenPGP を完璧に実装している(RFC4880 参照)
- 暗号化アルゴリズムとして ElGamal, DSA, RSA, AES, 3DES, Blowfish, Twofish, CAST5, MD5, SHA-1, RIPE-MD-160 and TIGER をサポートしている
- これら以外の新しいアルゴリズムも拡張モジュールとして簡単に取り込めるように設計されている
- ユーザー ID は標準的な "First Last
" 形式を採用 - 鍵や電子署名には有効期限の設定が可能
- 多言語対応
などであると、記載されている。
JanusDG との関わり
GnuPG について、JanusDG 他を活用するにあたってユーザーさんに知っておいてもらいたいことはとりあえず
- PGP 抜きには語れないということ
- フリーソフトウェアであるということ
- OpenPGP というオープンな規格に沿ったソフトウェアであるということ
- さまざまな暗号化アルゴリズムが利用可能であること
- そのアルゴリズムには「公開鍵暗号」も含まれていること
- 他のアプリケーションに組み込まれる前提で設計されているということ
といったあたりである。
この記事へのコメント