デジタル署名 でじたるしょめい
電子署名秘密鍵公開鍵否認防止認証改ざん検知
デジタル署名について教えて
簡単に言うとこんな感じ!
秘密鍵を使って「このデータは確かに私が作りました」と証明する電子的な印鑑だよ。受け取った側は公開鍵で検証できるから、「誰が作ったか」「改ざんされていないか」の両方を確認できるんだ!
デジタル署名とは
デジタル署名(Digital Signature) とは、公開鍵暗号を用いて「送信者の本人確認」と「データの完全性確認」を同時に実現する仕組みです。紙の印鑑や手書き署名のデジタル版として機能し、法的な効力も持ちます。
デジタル署名は以下の3つの目的を達成します。
- 認証(Authentication):確かにその人物が署名したという証明
- 完全性(Integrity):署名後にデータが改ざんされていないことの保証
- 否認防止(Non-repudiation):「自分は署名していない」という後からの否定を防止
具体的には「電子契約書への署名」「コードサイニング(ソフトウェア配布時の署名)」「SSL/TLS証明書への認証局の署名」「メール署名(S/MIME)」など、ビジネスの様々な場面で使われています。
デジタル署名の仕組み
署名の生成(送信者側)
| ステップ | 処理 |
|---|---|
| 1 | メッセージ(文書)のハッシュ値を計算する |
| 2 | ハッシュ値を秘密鍵で暗号化する → これが「署名」 |
| 3 | メッセージと署名を一緒に送信する |
署名の検証(受信者側)
| ステップ | 処理 |
|---|---|
| 1 | 受け取ったメッセージのハッシュ値を計算する |
| 2 | 受け取った署名を公開鍵で復号して元のハッシュ値を取り出す |
| 3 | 2つのハッシュ値が一致すれば「正しい署名」と確認できる |
歴史と背景
- 1976年:Diffie-Hellmanが公開鍵暗号の概念とともにデジタル署名の概念を提唱
- 1977年:RSAアルゴリズムが初めての実用的なデジタル署名を可能にする
- 1991年:NISTがDSA(Digital Signature Algorithm)を提案
- 1999年:日本で「電子署名及び認証業務に関する法律」(電子署名法)が制定(2001年施行)
- 2004年頃:SSL証明書のCA署名が標準化され、Webのセキュリティの基盤となる
- 2016年〜:電子契約サービス(DocuSign、CloudSign等)が普及し、ビジネスでの利用が一般化
デジタル署名のフロー図
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| FIPS 186-5 | NISTデジタル署名標準(DSS):RSA/ECDSA/EdDSA |
| RFC 8032 | Edwards-curve Digital Signature Algorithm (EdDSA) |
| 電子署名法(日本) | 電子署名の法的効力を定める国内法 |
| eIDAS規則(EU) | EU圏での電子署名の法的枠組み |
関連用語
- ハッシュ関数 — デジタル署名の中核として使われる一方向関数
- 公開鍵暗号(RSA・ECC) — デジタル署名に使われる非対称暗号
- PKI — デジタル署名に使う鍵ペアを管理するインフラ
- 認証局(CA) — 公開鍵の正当性をデジタル署名で保証する機関