暗号化・証明書

デジタル署名 でじたるしょめい

電子署名秘密鍵公開鍵否認防止認証改ざん検知
デジタル署名について教えて

簡単に言うとこんな感じ!

秘密鍵を使って「このデータは確かに私が作りました」と証明する電子的な印鑑だよ。受け取った側は公開鍵で検証できるから、「誰が作ったか」「改ざんされていないか」の両方を確認できるんだ!


デジタル署名とは

デジタル署名(Digital Signature) とは、公開鍵暗号を用いて「送信者の本人確認」と「データの完全性確認」を同時に実現する仕組みです。紙の印鑑や手書き署名のデジタル版として機能し、法的な効力も持ちます。

デジタル署名は以下の3つの目的を達成します。

  • 認証(Authentication):確かにその人物が署名したという証明
  • 完全性(Integrity):署名後にデータが改ざんされていないことの保証
  • 否認防止(Non-repudiation):「自分は署名していない」という後からの否定を防止

具体的には「電子契約書への署名」「コードサイニング(ソフトウェア配布時の署名)」「SSL/TLS証明書への認証局の署名」「メール署名(S/MIME)」など、ビジネスの様々な場面で使われています。


デジタル署名の仕組み

署名の生成(送信者側)

ステップ処理
1メッセージ(文書)のハッシュ値を計算する
2ハッシュ値を秘密鍵暗号化する → これが「署名」
3メッセージと署名を一緒に送信する

署名の検証(受信者側)

ステップ処理
1受け取ったメッセージのハッシュ値を計算する
2受け取った署名を公開鍵で復号して元のハッシュ値を取り出す
32つのハッシュ値が一致すれば「正しい署名」と確認できる

歴史と背景

  • 1976年:Diffie-Hellmanが公開鍵暗号の概念とともにデジタル署名の概念を提唱
  • 1977年:RSAアルゴリズムが初めての実用的なデジタル署名を可能にする
  • 1991年:NISTがDSA(Digital Signature Algorithm)を提案
  • 1999年:日本で「電子署名及び認証業務に関する法律」(電子署名法)が制定(2001年施行)
  • 2004年頃:SSL証明書のCA署名が標準化され、Webのセキュリティの基盤となる
  • 2016年〜:電子契約サービス(DocuSign、CloudSign等)が普及し、ビジネスでの利用が一般化

デジタル署名のフロー図

デジタル署名の生成と検証 【送信者:署名生成】 元のメッセージ ハッシュ計算 ハッシュ値 H(m) 秘密鍵で暗号化 → 署名Sig (メッセージ + 署名Sigを送信) 【受信者:署名検証】 受信メッセージ ハッシュ計算 公開鍵で復号 → H(m)を取得 ハッシュ値を比較 一致 → 正しい署名!

関連する規格・RFC

規格・RFC番号内容
FIPS 186-5NISTデジタル署名標準(DSS):RSA/ECDSA/EdDSA
RFC 8032Edwards-curve Digital Signature Algorithm (EdDSA)
電子署名法(日本)電子署名の法的効力を定める国内法
eIDAS規則(EU)EU圏での電子署名の法的枠組み

関連用語