デジタル署名とは
公開鍵暗号やハッシュ関数*1を使用してメッセージやデジタル文書に電子的に署名することをデジタル署名 (Digital Signature) といいます。電子文書に対し暗号を用いた特殊な電子データを付与(電子的に署名)することで、その電子文書が作成名義の本人によって作成されたこと、電子文書が作成されて以降、電子経路上などで改ざんされていないことを証明します。
(*1 ハッシュ関数とは、任意長のビット列から規則性のない固定長のビット列を生成する関数、手順のことをいいます。一般に、ハッシュ関数への入力データは「メッセージ」、ハッシュ関数からの出力データは「ハッシュ値」、「メッセージダイジェスト」、「フィンガープリント」などと呼ばれます。ハッシュ関数は一方向の関数のため、出力データから入力データを推定することは極めて難しいという特徴があります。)
デジタル署名の仕組み
デジタル文書の送信元を確認する方法(本人確認)
デジタル文書の送信元の確認(本人確認)は、公開鍵暗号方式(秘密鍵・公開鍵)を用いて行います。公開鍵暗号方式が持つ「秘密鍵と公開鍵はペアである」、「公開鍵で暗号化したデータは秘密鍵を知る本人だけが暗号を復号できる」という特性を逆手にとって利用しています。
つまり、送信者が持つ秘密鍵で暗号化されたデータを復号できるのは、送信者から事前に受け取った公開鍵だけであり、公開鍵を使って暗号文がただしく復号できたのであれば、秘密鍵を持つ本人から送られたデータであることがわかります。
この特徴を利用して、電子文書の本人性と非改ざん性の立証を実現するのが、デジタル署名です。
デジタル文書の改ざんを確認する方法
デジタル文書の改ざんの確認には、デジタル文書を元にハッシュ関数でハッシュ値を算出して行います。デジタル文書の内容が変更されるとハッシュ値も変化する為、改ざんの有無を確認できます。
デジタル署名の生成と検証の流れ
通常、デジタル署名は、署名を行う送信者側と署名の検証を行う受信者側との間で、次のような流れでデータの本人性と非改ざん性の証明を行っています。
デジタル署名の生成と検証の流れを確認
1. 秘密鍵・公開鍵を生成
秘密鍵(署名鍵)と公開鍵(検証鍵)を作成します。
2. 公開鍵を送付
デジタル文書の送信先へ、事前に検証用の公開鍵を送付しておきます。
3. 文書のハッシュ値算出
ハッシュ関数を使い、送付する文書データのハッシュ値を算出します。
ハッシュ値は文書データの改ざんチェックに使用されます。
4. ハッシュ値を秘密鍵で暗号化
ハッシュ値そのものが悪意のある第三者に改ざんされないよう、デジタル文書の送信者はハッシュ値を秘密鍵で暗号化します。この暗号化したハッシュ値を「デジタル署名」と呼び、デジタル文書受信側で送信元の確認に使用します。
5. 文書と署名を送付
デジタル文書、および4で暗号化したハッシュ値を相手方に送信します。
6. ハッシュ値を公開鍵で復号
署名(暗号化されているハッシュ値)を、公開鍵で復号します。
公開鍵はデジタル文書の送信者より、事前に受け取った鍵であるため「復号に成功=デジタル文書送信者本人から送付された署名」であることが保証されます。
7. 文書のハッシュ値を算出
ハッシュ関数を使い、受信した文書のハッシュ値を算出します。
8. ハッシュ値を比較
デジタル文書のハッシュ値と、暗号化されて送られたハッシュ値を比較します。
ハッシュ値の一致を確認できれば、受信したデジタル文書が改ざんされていないことが保証されます。
デジタル署名の生成と検証の流れ
本人が作成したことの証明(認証)
デジタル署名を電子文書に付与することにより、その電子文書は秘密鍵を知る本人が作成したものであるということを、公開鍵を用いた検証によって技術的に証明することが可能になります。
さらに、秘密鍵と公開鍵の鍵ペア発行手続きに第三者(認証局)を関与させ、その本人の身元確認情報を公開鍵と紐付けた電子証明書を発行させることで、本人認証も可能となります。
完全性の担保
秘密鍵を用いてデジタル署名した電子文書が署名後に改ざんされると、デジタル署名を公開鍵を用いて検証(ハッシュ値を比較)する際に結果が一致しなくなり、検証に失敗することとなります。
これにより、対象となる電子文書の改ざん有無を確認できるようになり、完全性(データが正確な状態で維持されていること)を証明することできます。
強固なセキュリティ対策にはデジタル署名がおすすめ
デジタル署名は、公開鍵暗号方式を用いて電子署名の本人性と非改ざん性を強化した技術であり、機密性の高い文書に付与されて用いられます。一方、機密性の高くない文書であれば、デジタル署名以外の方法で本人証明を行ってもよさそうです。強固なセキュリティ対策を行うのであれば、データの改ざん防止が可能なデジタル署名を積極的に活用することをおすすめします。
なお、デジタル署名を利用する際には、鍵の生成や管理はもちろん、デジタル証明書の定期的な更新が必要であるというデメリットもあるということも念頭に置いておきましょう。
まとめ
デジタル署名は、機密性の高い書類を使用する際に最適な電子署名技術です。文書の電子化が進むなか電子署名の本人性と非改ざん性を証明するデジタル署名は重要性を増し、適用範囲も広がると思われます。このコラムがデジタル署名の仕組み理解の補助になると幸いです。