• なんとなく使っているけど、よくわかっていない公開鍵暗号方式

基本

  • 秘密鍵と公開鍵がある。この2つは対になっている。
  • 秘密鍵で変換したデータは公開鍵で元に戻すことができる。
  • 公開鍵で変換したデータは秘密鍵で元に戻すことができる。

特定の人だけが見てもよいデータ

  • 相手(=特定の人)は秘密鍵を持っている。
  • 相手から公開鍵を受け取る。
  • 公開鍵でデータを変換、相手へ渡す。
  • 相手は秘密鍵でデータを変換すると元の情報を入手できる。
  • 秘密鍵を持つ人だけが元に戻せるので、通信経路は暗号化されている必要は無い。
  • これがデータを暗号化、復号する流れ。

自分が作成したことを証明する

  • 自分は秘密鍵を持っている。
  • データのハッシュ値を求め、秘密鍵でデータを変換する。つまり、ハッシュ値を暗号化する。これが電子署名。
  • データと電子署名と公開鍵を相手へ渡す。
  • 相手はデータのハッシュ値を求める。
  • 相手は電子署名を公開鍵で変換(復号)
  • データのハッシュ値と電子署名を公開鍵で変換(復号)したものが同一であれば、電子署名したファイルから変更されていないことが確認できる。
  • これが署名、検証する流れ。

facebook slideshare rubygems github qiita