ユーザ用ツール

サイト用ツール


encryption:gpg

文書の過去の版を表示しています。


GnuPG

GnuPG(GPG)は、OpenPGP 規格 (RFC2440) に準拠した暗号化ソフトウェア。公開鍵暗号を使用する。

公開鍵暗号は、暗号化する鍵と復号する鍵が異なっており、暗号化する鍵を公開鍵とし、復号する鍵を秘密鍵とする。公開鍵で暗号化すると、そのデータを読めるのは秘密鍵の持ち主だけになる。よって、誰かに秘密のメッセージを送りたい場合は、送信相手の公開鍵を入手して暗号化して送れば良い。公開鍵はネットで公開するなり、鍵サーバに置くなり誰でも利用可能にする。メールで送っても良い。秘密鍵は他者に漏れないようにする

鍵生成

$ gpg --gen-key

設定

  • 鍵タイプ:通常は署名用と暗号用の2つのキーペアを作るので以下を選ぶと良い。
    • RSA and RSA - 署名用・暗号用ともにRSA鍵を生成する
    • DSA and Elgamal - 署名用にDSA鍵1)、暗号用にElgamal鍵を生成する
  • 鍵長:とりあえず2048bitあれば今のところは安心
  • 有効期限:0にすると無期限となる。5yとすると5年後に無効になる。
  • 個人情報:お好きなように
    • 名前
    • メールアドレス
    • メモ
  • パスフレーズ:自分の好きな一文などを入れると良い

署名用が主鍵(公開鍵pub/秘密鍵sec)、暗号用が副鍵(公開鍵sub/秘密鍵ssb)、ただし、RSAの場合は復号鍵で暗号化し、それを暗号化鍵で復号することができるので、副鍵なしで暗号化もできてしまうので注意。

公開鍵をインポート

鍵サーバから

$ gpg --keyserver 鍵サーバーアドレス --recv-key 鍵ID

ファイルから

$ gpg --import ファイル名

公開鍵に署名がないと使えません。(自分が信頼している人の署名があれば、自分で署名しなくてもいいのかも?よくわからんので調べる)

$ gpg --sign-key
$ gpg --lsign-key

暗号化・復号

暗号化

$ gpg -e -r nullpon@paulownia.jp hoge.txt 

rオプションで受け手を指定。受け手が未指定の場合は聞かれるので入力する。hoge.txt.gpg が作成される。

復号

$ gpg -d hoge.txt.gpg 

自分の公開鍵で暗号化されていれば復号できる。復号の結果は標準出力に書き出される。保存する場合はリダイレクトする。

$ gpg -d hoge.txt.gpg > hoge.txt
1)
DSAはElgamal署名を改良した署名専用のアルゴリズム
encryption/gpg.1338642756.txt.gz · 最終更新: by nullpon