blog.monophile.net

コンピュータに関するメモ。

著者

山本一彰(Takaaki Yamamoto)

東京工業大学において計算機科学と応用数学を学び、 情報科学芸術大学院大学[IAMAS]においてメディア表現を専攻し修了。 2015年にコンビネータ論理を基に計算完備な計算手法 "論理珠算"を開発し、 それを含む体系である"算道"を構成した。 その成果により、2016年に 第19回 文化庁メディア芸術祭 アート部門 新人賞 (文部科学大臣賞) を受賞。 現在はSRE(サイト信頼性エンジニア)として生計をたててている。

投稿

GnuPG を使って電子署名をする

概要

電子署名を GnuPG https://gnupg.org/ によって施します。

準備

install

ubuntuでGnuPGを使うためには以下のコマンドを打つ。

公開鍵暗号の生成

使う前に自分の公開鍵暗号を作る必要がある。 以下のコマンドを打つと$HOME/.gnupg/に公開鍵pubring.gpgと秘密鍵secring.gpgとかその他諸々できる。 ちょっと時間かかります。1分くらい?

自分の公開鍵暗号のasciiファイルの出力の仕方は以下のコマンドで。

鍵のインポート

自分が他人が署名したファイルの妥当性を確認するためにその人の公開鍵を使用するので .gnupg/trustdbに登録する必要がある。

show fingerprint

署名

sample.txtに署名するならば、以下のコマンドを打つ。

この場合は出力ファイルがsample.txt.gpgというバイナリになるのだが、 以下のコマンドでは平文とhashがテキストsample.txt.ascで保存される。

妥当性の確認

上記で署名したファイルの妥当性の確認は以下のコマンドで行う。

暗号化/復号化

暗号化を公開鍵、復号化を秘密鍵で行うことによって、秘匿な通信を行うことができます。

暗号化

登録されているmail@someone.netの公開鍵を用いてsample.txtを暗号化します。

ちなみにgpgはここで圧縮も行うらしいです。以下のようにして圧縮を無効にできるそうです。

これで暗号化されたsample.txt.gpgが作成されます。

復号化

someoneは上記で作成されたsample.txt.gpgを秘密鍵で復号化します。

参考URL