デジタル署名とは
デジタル
署名とは、紙の文書における手書きの
署名のように、電子データに対して真正性を保証するための技術です。
公開鍵[[暗号]]技術を基盤とし、データの改ざんを検出し、送信者の身元を証明するために用いられます。
概要
デジタル
署名は、一般的に以下の3つの
アルゴリズムで構成されます。
1.
鍵生成アルゴリズム: 公開鍵と秘密鍵のペアを生成します。
2.
署名生成アルゴリズム: 秘密鍵を使用してメッセージの
署名を生成します。
3.
署名検証アルゴリズム: 公開鍵を使用して
署名が正しいか検証します。
デジタル
署名は、
電子メールや
契約書、
暗号プロトコルで送受信されるデータなど、さまざまなメッセージの
認証に利用できます。また、
認証局が発行する公開鍵証明書においては、証明書が信頼できる機関によって発行されたことを保証する役割も担います。デジタル
署名は電子
署名を実装する上で重要な役割を果たしますが、すべての電子
署名がデジタル
署名を用いるわけではありません。
定義
デジタル
署名の基本的な
アルゴリズムを以下に示します。
鍵生成アルゴリズム (G): 署名者の鍵ペア (PK, SK) を生成します。PKは公開鍵、SKは秘密鍵です。
署名生成アルゴリズム (S): メッセージmと秘密鍵SKを入力とし、
署名σを生成します。
署名検証アルゴリズム (V): メッセージm、公開鍵PK、署名σを入力とし、承認または拒否を出力します。
重要な要件として、正しい鍵ペアで生成された署名は、対応する公開鍵によって必ず承認される必要があります。また、攻撃者が公開鍵を知っていても、有効な署名を生成することは困難でなければなりません。
歴史
デジタル署名の概念は、1976年にDiffieとHellmanによって提唱されました。その後、RSAアルゴリズムが開発され、デジタル署名の実装に利用されるようになりました。1989年には、RSAアルゴリズムを用いた最初のソフトウェアパッケージであるLotus Notes 1.0が発売されました。
基本的なRSA署名は、大きな素数の積である係数Nと、e d = 1 mod φ(N)を満たす整数eとdを含むRSA鍵ペアを生成することで算出されます。公開鍵はNとe、秘密鍵はdを含みます。メッセージmに
署名する場合、
署名者はσ = m^d mod Nを計算します。検証する際は、σ^e = m mod Nを照合します。しかし、この基本的な仕組みは安全ではないため、メッセージに
ハッシュ関数を適用してからRSA
アルゴリズムを適用する方法が用いられます。
その後、ランポート
署名、マークル
署名、ラビン
署名などの
署名方式が開発されました。1984年には、Goldwasser、Micali、Rivestがデジタル
署名方式のセキュリティ要件を厳格に定義し、攻撃モデルと攻撃結果の段階を示しました。
デジタル署名の利点
デジタル
署名には、主に以下の3つの利点があります。
認証: メッセージの送信元を認証できます。秘密鍵の所有者が特定できれば、署名されたメッセージがその送信者からのものであることを証明できます。
完全性: メッセージが改ざんされていないことを保証できます。
署名されたメッセージは、改変されると
署名が無効になるため、途中で改ざんされたかどうかを検出できます。
否認防止: メッセージの送信者が後で送信を否認することを防ぐことができます。署名されたメッセージは、送信者が確かに送信したことを示す証拠になります。
デジタル署名の欠点
デジタル署名にもいくつかの欠点があります。
タイムスタンプの問題: デジタル
署名だけでは、
署名された日付と時刻の確実性を提供できません。信頼できるタイムスタンプを使用することでこの問題を解決できます。
秘密鍵の管理: 秘密鍵の管理が重要です。秘密鍵が漏洩すると、なりすましによる署名が可能になってしまいます。ICカードや専用の読取装置を使用することで、セキュリティを向上させることができます。
アプリケーションの信頼性:
署名に使用するアプリケーションの信頼性が重要です。悪意のあるアプリケーションは、利用者を騙して任意の文書に
署名させることができます。利用者アプリケーションと
署名アプリケーション間の
認証システムを構築することで、この問題を軽減できます。
デジタル
署名にはさまざまな
アルゴリズムがあります。以下にいくつかの例を挙げます。
RSA
DSA
ECDSA
ElGamal
署名
否認不可署名
SHA
EdDSA
Rabin
署名アルゴリズム
Pointcheval-Stern署名アルゴリズム
Schnorr
署名
集約署名
利用の現状と法律
デジタル署名の信頼性を確保するためには、以下の要素が重要です。
質の高い
アルゴリズム
正確な実装
秘密鍵の厳重な管理
公開鍵の配布
署名プロトコルの適切な実行
デジタル
署名は、多くの国や自治体で法的効力を持つと認められています。しかし、法律は技術の進歩に追いついていない部分もあり、混乱を招く可能性があります。
その他の重要な点
署名と暗号化に別々の鍵ペアを使用する:署名と暗号化で異なる鍵ペアを使うことで、法的な責任とプライバシーを両立できます。
電子署名に関する書籍: 電子
署名に関する洋書は、以下の文献を参照してください。
Stephen Mason, Electronic Signatures in Law (Tottel, second edition, 2007)
Dennis Campbell, editor, E-Commerce and the Law of Digital Signatures (Oceana Publications, 2005)
Lorna Brazell, Electronic Signatures Law and Regulation, (Sweet & Maxwell, 2004)
M. H. M Schellenkens, Electronic Signatures Authentication Technology from a Legal Perspective, (TMC Asser Press, 2004).
電子署名に関する事例: ヨーロッパ、ブラジル、中国、コロンビアの電子署名に関する事例の翻訳は、「Digital Evidence and Electronic Signature Law Review」を参照してください。
関連情報
ブラインド
署名
電子署名法
電子
署名
暗号学
Deniable authentication
外部リンク
An introduction to Digital Signatures
Introduction to cryptography from the PGP international website
Yozons digital signature reference
Trusting PDF Signatures in Adobe Reader
証明可能安全性理論に向けて
ECDSA評価報告書
* PKCS #1 v2.1 解説 RSA-PSS について