電子署名
メッセージが本人によって作られたことを検証できる仕組み
その署名を作れるのは本人だけ
署名はデータごとに異なり、別のメッセージに対してその署名は作れない
署名だけコピーして別のメッセージに勝手に使われてしまっては困る
改竄されていないことも確認できる
現実の署名や印鑑のように以下を実現
本人による承認の意思表示
後からの否認防止
署名と検証という非対称性のある処理が求められる
署名(Sign)
対象のデータ(メッセージ)に署名データを作成すること
本人にしかできない
署名鍵(秘密鍵)を使って署名
検証(Verify)
データと署名の整合性を確認すること
誰にでもできる
検証鍵(公開鍵)を使って検証
暗号化ではない
暗号における完全性だったり、否認防止の部分を利用している
暗号を使っているが、暗号化している訳ではない
例えばDSA(SSHで使われるデジタル署名の方式)は暗号化には使えない
署名と暗号化、検証と復号は別物
署名の検証において、平文に戻せる必要はない
デジタル署名と公開鍵暗号の関係
ref. https://qiita.com/angel_p_57/items/437ca6235defc938b97d
署名の検証をする話
https://qiita.com/bobunderson/items/d48f89e2b3e6ad9f9c4c