Skip to content

Instantly share code, notes, and snippets.

@kamakuni
Last active September 21, 2021 13:24
Show Gist options
  • Select an option

  • Save kamakuni/5cdb7530940db69fe1affe60c85fa215 to your computer and use it in GitHub Desktop.

Select an option

Save kamakuni/5cdb7530940db69fe1affe60c85fa215 to your computer and use it in GitHub Desktop.
電子署名に関してまとめた

公開鍵暗号方式を利用した認証

  1. 送信者はキーペアを生成して、あらかじめ送信者に公開鍵と署名内容を伝える
  2. 送信者がデータを送信する際には、自分の秘密鍵で署名内容を暗号化し送信データに付与する
  3. 受信者は暗号化した署名内容を公開鍵で復号化し事前に知らされた署名内容と同じであれば本人であると確認できる

ダイジェスト

署名内容がいつも同じであると、暗号化された署名内容が漏洩した際、その内容を利用して そのため、送信するたびに署名内容を変更することが望ましい。 この署名内容として、電子署名を付加するデータから生成したダイジェストを利用するのが良い。

ダイジェストは署名対象データを元にハッシュ関数を用いて生成する。 署名内容にダイジェストを用いた場合の送信フローは以下である。

送信者

  1. 送信データからダイジェストを生成する
  2. ダイジェストを秘密鍵で暗号化し送信データに付与する
  3. データを送信する

受信者

  1. 受信データからダイジェストを生成
  2. 署名を公開鍵で復号化
  3. 1と2が同様であるか比較する
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment