メッセージに対するダイジェストを秘密鍵で暗号化することで、メッセージの改ざんを検出することができます。これをデジタル署名 (Digital Signature) と呼びます。デジタル署名を用いると、メッセージの完全性 [20] と作成者の認証 [21] が可能になります。デジタル署名を生成することを署名 (Sign) と呼び、デジタル署名が有効であること [22] を確認することを署名の検証(Validate) といいます。
以下に、デジタル署名の生成と検証のフローを示します(図 2-9)。

図 2-9 デジタル署名の生成と検証
デジタル署名の生成(A さん)
(1) 署名したいメッセージから、ハッシュ関数を使ってダイジェストを生成します。
(2) 生成したダイジェストを自分の秘密鍵で暗号化します。
(3) メッセージと生成した署名を B さんに送信します。
デジタル署名の検証(B さん)
(4) 受信したメッセージから、ハッシュ関数を使ってダイジェストを生成します。
(5) 受信したデジタル署名を、A さんの公開鍵を使って復号します。
(6) (4) において生成したダイジェストと (5) で復号したダイジェストを比較し、完全に一致することを確認します。
デジタル署名は、メッセージのダイジェストを署名者の秘密鍵で暗号化したものです。検証者はまず、署名者の公開鍵を使ってデジタル署名をダイジェストに復号します。これで、ダイジェストを生成した人が確かに署名者であることを確認できます [23]。次に、送られてきたメッセージのダイジェストを生成し、デジタル署名から 復号したダイジェストと比較することによって、メッセージが改ざんされていないことを確認できます。
デジタル署名の検証が成功すると、以下のことが確認できます。
(1) メッセージが改ざんされていないこと
(2) メッセージは、検証に使用した公開鍵と対になる秘密鍵によって署名されたこと
ダイジェストが一致せずに検証が失敗すると、以下のいずれかの事象が発生したことが確認できます。
(1) メッセージが改ざんされたこと
(2) デジタル署名が改ざんされたこと
なお、メッセージとデジタル署名のどちらが改ざんされたかまでは分かりません。
デジタル署名に用いるアルゴリズムは、公開鍵暗号方式とハッシュ関数を組み合わせたものとなります(表 2-6)。
表 2-6 代表的なデジタル署名アルゴリズム
|
|
|
Sha-1WithRSAEncryption |
公開鍵暗号方式に RSA、ハッシュ関数に SHA-1 を使用します。 |
|
Md5WithRSAEncryption |
公開鍵暗号方式に RSA、ハッシュ関数に MD5 を使用します。 |
|
id-dsa-with-sha1 |
公開鍵暗号方式に DSA、ハッシュ関数に SHA-1 を使用します。 |
|
ecdsa-with-SHA1 |
公開鍵暗号方式に ECDSA、ハッシュ関数に SHA-1 を使用します。 |
電子文書に対する署名には、デジタル署名 (Digital Signature) と電子署名 (Electronic Signature) の 2つの用語があります。これら 2つの用語は、異なる意味合いで用いられます。
デジタル署名は、公開鍵暗号方式を利用したもので、メッセージの発信者の認証と改ざんの検知が可能なものを指します。
一方、電子署名は各国によって様々な定義がされており、デジタル署名を含む広義の署名として用いられています。以下に各国における電子署名の定義を示します(表 2-7)。正確な定義は、各国の法律及び指令を参照してください。
表 2-7 電子署名の定義
|
国 |
法律及び指令 |
説明 |
|
日本 |
電子署名法 [24] |
電子データの作成者を特定でき、電子データが改変されていないことが確認できるものを指します。 |
|
米国 |
連邦電子署名法 [25] |
電子データに関連付けられて、その人が電子データに署名する意図で作成した電子データを指します。 |
|
EU
|
EU電子署名指令 [26] |
「電子署名」と「高度な電子署名」に分けて定義しています。 前者は、電子的データに関連付けられて認証手段の役割を果たすもの、後者は署名者の特定が可能なものを指します。 |
日本での「電子署名」と EU における「高度な電子署名」が、電子データの完全性と作成者の認証の機能を要求していると考えられます。具体的にはデジタル署名を指しています [27]。
前のページ 目次 次のページ Copyright © 2002 Information-technology Promotion Agency, Japan. All rights reserved.