デジタル署名(またはデジタル署名方式)は、非対称暗号の一種で、送信側の秘密鍵でメッセージに署名し、受信側が対応する公開鍵でその署名を検証する仕組みです。良い実装のデジタル署名は、受信者に対して「そのメッセージは主張された送信者によって作成された」「送信後にメッセージが改ざんされていない」と信じさせることができます(関連するアルゴリズムについてはアルゴリズムの項を参照してください)。
仕組み(基本の流れ)
- 送信者はまずメッセージのハッシュ値を計算します(例:SHA-256)。
- そのハッシュ値を送信者の秘密鍵で暗号処理して「署名」を生成します。
- メッセージと署名を受信者に送ります。
- 受信者は送られてきたメッセージのハッシュを同じハッシュ関数で再計算し、送信者の公開鍵で署名を復号して得られるハッシュと照合します。
- 一致すれば、メッセージは送信者によるもので改ざんされていないと判断できます。
主な性質(利点)
- 真正性(Authenticity):署名が特定の秘密鍵の所有者によることを示す。
- 完全性(Integrity):署名検証が成功することでメッセージが改ざんされていないことが確かめられる。
- 否認防止(Non-repudiation):正しく管理された秘密鍵が漏れていなければ、署名者は「署名していない」と後で否定しにくい。
- 手書き署名と比べて複製や改ざんが困難であり、監査や自動検証に適しています(参考:従来の手書き署名との比較)。
主なアルゴリズム(代表例)
- RSA署名(RSA)
- DSA(Digital Signature Algorithm)
- 楕円曲線署名(ECDSA)およびEdDSA(Ed25519 など) — 鍵長が短く効率が良い
- これらは通常、ハッシュ関数(SHA-2, SHA-3 など)と組み合わせて使われます。
電子署名との違い
電子署名は、署名の意味(署名済みであることや合意の意思など)を広く含む用語です。すべての電子署名が暗号的なデジタル署名を使っているわけではありませんが、多くの場面でデジタル署名は電子署名の実装手段として用いられます。つまり、「電子署名」=法的・概念上の広い概念、「デジタル署名」=暗号技術を用いた具体的手段と考えるとわかりやすいです(実装は暗号技術を用いて行われます)。
法的効力と利用例
国や地域によって電子署名・デジタル署名の法的位置づけは異なります。米国や欧州連合などでは、一定の条件を満たす電子署名に法的効力が認められることが多く、契約や申請手続きで広く使われています。デジタル署名は行政手続きや企業間取引、電子申告、ソフトウェア配布の署名、TLS証明書による通信の証明など、さまざまな場面で利用されています。
インドでは、デジタル署名証明書(DSC: Digital Signature Certificate)が普及しており、企業登記や確定申告、政府の電子申請で頻繁に用いられます。2000年の情報技術法(IT Act)で一定の電子署名やデジタル署名に法的効力が認められています。
運用上の注意点
- 秘密鍵の管理が最も重要です。秘密鍵が漏れると署名の信頼性が失われます。
- 公開鍵の正当性を保証するために、証明書やPKI(公開鍵基盤)、認証局(CA)が使われます。証明書失効リスト(CRL)やOCSPによる失効チェックも必要です。
- 署名のタイムスタンプ(署名が行われた日時の証明)を付けることで、後日の否認や鍵の失効との関係を明確にできます。
- アルゴリズムやハッシュ関数にも脆弱性が出ることがあるため、推奨される方式や鍵長を最新の標準に合わせて更新する必要があります。
まとめると、デジタル署名は暗号技術に基づく強力な手段であり、正しく運用すれば電子取引や文書の信頼性を高める重要な技術です。利用時は鍵管理・証明書管理・法的要件を十分に確認してください。