デジタル署名
公開鍵暗号とハッシュで改ざん検知と署名者確認を行う技術です。
用語解説
デジタル署名とは
デジタル署名は、電子データについて次の3点を確認できるようにする技術です。
-
送信者が本人であること(なりすまし防止)
-
データが改ざんされていないこと(完全性)
-
送信者が後で送信を否定しにくいこと(否認防止)
デジタル署名は、公開鍵暗号方式とハッシュ関数を組み合わせて実現します。
何を保証するか
| 性質 | 保証されるもの |
|---|---|
| 完全性(Integrity) | データが途中で書き換えられていないことを検知できます。 |
| 署名者の本人性(Authentication) | 署名に使った秘密鍵の持ち主が署名したと確認できます。 |
| 否認防止(Non-repudiation) | 原則として、署名者が後で「自分は署名していない」と主張しにくくなります。 |
機密性(内容を第三者に読めないようにすること)は、デジタル署名だけでは保証しません。機密性は暗号化で実現します。
仕組み(署名と検証の流れ)
送信者側(署名を作成する側)
-
送信データからハッシュ値を作ります
-
ハッシュ値を送信者の秘密鍵で暗号化して、署名を作ります
-
送信データと署名を一緒に送ります
受信者側(署名を検証する側)
-
受け取った署名を送信者の公開鍵で復号して、ハッシュ値Aを取り出します
-
受け取った送信データから、同じハッシュ関数でハッシュ値Bを作ります
-
ハッシュ値Aとハッシュ値Bを比較します
一致した場合は、本人性と改ざんされていないことを確認できます。
一致しない場合は、改ざんやなりすましの可能性があります
署名と検証で使う鍵
| 目的 | 使う鍵 | 実施する側 |
|---|---|---|
| 署名を作る | 秘密鍵 | 署名者(送信者) |
| 署名を検証する | 公開鍵 | 受信者(検証者) |
公開鍵が本人のものだと確認するには、認証局(CA)が発行するデジタル証明書(公開鍵証明書)を使うのが一般的です。
理解のポイント
-
デジタル署名の目的は改ざん検知(完全性)と署名者確認(本人性)、否認防止です。
- デジタル署名は、送信者の秘密鍵で署名を作り、送信者の公開鍵で検証します。
-
機密性は提供しないため、内容を隠したい場合は暗号化も併用します。
-
公開鍵が本当に本人のものか確認するには、電子証明書と認証局(CA)が重要です。
発展知識
関連用語
| 用語 | 概要 |
|---|---|
| 公開鍵暗号方式 | 公開鍵と秘密鍵で暗号化や署名に使う方式です。 |
| 秘密鍵 | 署名を作る側だけが保持する鍵です。漏えい厳禁です。 |
| 公開鍵 | 署名を検証するために公開して使う鍵です。 |
| ハッシュ関数 | データから固定長の要約値を作る一方向関数です。 |
| 電子証明書 | 公開鍵が本人のものだと示す証明書です。 |
| 認証局(CA) | 電子証明書を発行し本人性を保証する機関です。 |
| SSL/TLS | 通信を暗号化し証明書で相手確認も行う仕組みです。 |
※本解説は生成AIによる学習支援用の参考情報です。内容の正確性や最新性は保証されません。生成された回答を再確認するようにしてください。