概要

ディジタル署名(電子署名)とは、公開鍵暗号の仕組みを応用し、電子データが「本人が作成したもので、改ざんされていない」ことを証明する技術です。紙の「署名・押印」に相当する役割を電子データで果たします。

送信者が自分の秘密鍵で署名し、受信者が送信者の公開鍵で検証します。本人しか持たない秘密鍵で作られるため、なりすまし防止・改ざん検知・否認防止を実現します。

詳細(仕組み)

署名する側

  1. 送信する文書をハッシュ関数で要約し、ハッシュ値を求める。
  2. そのハッシュ値を送信者の秘密鍵で暗号化する(これが署名)。
  3. 文書と署名を一緒に送る。

検証する側

  1. 受け取った署名を送信者の公開鍵で復号し、ハッシュ値を取り出す。
  2. 受け取った文書から自分でハッシュ値を計算する。
  3. 両者が一致すれば、本人作成かつ改ざんなしと確認できる。
ディジタル署名のキーワードは「送信者の秘密鍵で署名、公開鍵で検証」。暗号化(受信者の公開鍵で暗号化)と使う鍵が逆なので混同注意。内部でハッシュ関数を使う点も頻出です。

役割(守れること・守れないこと)

守れること内容
完全性(改ざん検知)文書が改ざんされていないことを確認できる。
真正性(なりすまし防止)確かに本人が作成したと確認できる。
否認防止「私は送っていない」という後からの否認を防ぐ。
注意点として、ディジタル署名は文書の内容を秘密にする(機密性を守る)ものではありません。秘密にしたい場合は暗号化を併用します。また、公開鍵が本物である保証にはPKI(認証局の証明書)が必要です。

活用・関連例

ディジタル署名は、電子契約・電子申請、ソフトウェアの配布元証明(コード署名)、電子メールの真正性保証など、幅広く使われています。日本では電子署名法により、一定の電子署名に手書き署名・押印と同等の法的効力が認められています。

試験での問われ方