ITパスポート

デジタル署名

公開鍵暗号とハッシュで改ざん検知と署名者確認を行う技術です。

用語解説

デジタル署名とは

デジタル署名は、電子データについて次の3点を確認できるようにする技術です。

  • 送信者が本人であること(なりすまし防止)

  • データが改ざんされていないこと(完全性)

  • 送信者が後で送信を否定しにくいこと(否認防止)

デジタル署名は、公開鍵暗号方式とハッシュ関数を組み合わせて実現します。

何を保証するか

性質 保証されるもの
完全性(Integrity) データが途中で書き換えられていないことを検知できます。
署名者の本人性(Authentication) 署名に使った秘密鍵の持ち主が署名したと確認できます。
否認防止(Non-repudiation) 原則として、署名者が後で「自分は署名していない」と主張しにくくなります。

機密性(内容を第三者に読めないようにすること)は、デジタル署名だけでは保証しません。機密性は暗号化で実現します。

仕組み(署名と検証の流れ)

送信者側(署名を作成する側)

  1. 送信データからハッシュ値を作ります

  2. ハッシュ値を送信者の秘密鍵で暗号化して、署名を作ります

  3. 送信データと署名を一緒に送ります

受信者側(署名を検証する側)

  1. 受け取った署名を送信者の公開鍵で復号して、ハッシュ値Aを取り出します

  2. 受け取った送信データから、同じハッシュ関数でハッシュ値Bを作ります

  3. ハッシュ値Aとハッシュ値Bを比較します

一致した場合は、本人性と改ざんされていないことを確認できます。

一致しない場合は、改ざんやなりすましの可能性があります

署名と検証で使う鍵

目的 使う鍵 実施する側
署名を作る 秘密鍵 署名者(送信者)
署名を検証する 公開鍵 受信者(検証者)

公開鍵が本人のものだと確認するには、認証局(CA)が発行するデジタル証明書(公開鍵証明書)を使うのが一般的です。

理解のポイント

  • デジタル署名の目的は改ざん検知(完全性)と署名者確認(本人性)、否認防止です。

  • デジタル署名は、送信者の秘密鍵で署名を作り、送信者の公開鍵で検証します。
  • 機密性は提供しないため、内容を隠したい場合は暗号化も併用します。

  • 公開鍵が本当に本人のものか確認するには、電子証明書と認証局(CA)が重要です。

発展知識

関連用語

用語 概要
公開鍵暗号方式 公開鍵と秘密鍵で暗号化や署名に使う方式です。
秘密鍵 署名を作る側だけが保持する鍵です。漏えい厳禁です。
公開鍵 署名を検証するために公開して使う鍵です。
ハッシュ関数 データから固定長の要約値を作る一方向関数です。
電子証明書 公開鍵が本人のものだと示す証明書です。
認証局(CA) 電子証明書を発行し本人性を保証する機関です。
SSL/TLS 通信を暗号化し証明書で相手確認も行う仕組みです。