ディジタル署名はデータの改ざん検出や、本人が作成したデータなのかを確認することができます。
本書はディジタル署名について、本人確認や改ざん防止といったできることを整理し、次にその仕組みを説明します。
前提として、本書はハッシュ関数の知識を持っている人向けとなっています。
ディジタル署名とは
ディジタル署名(デジタル署名)は、電子データに対して「そのデータが本物であること」と「改ざんされていないこと」を証明する仕組みです。
ディジタル署名でできること
ディジタル署名によって実現できることや解決できることをまとめました。
セキュリティ面では次の表のとおりです。
| 項目名 | 説明 |
|---|---|
| 真正性(本人性の保証) | 署名した人が本当にその人物(送信者)であることを証明します。(なりすまし(偽装)を防止) |
| 改ざんの検出(完全性の保証) | 署名されたデータが途中で改ざんされていないかを検証できます。 |
| 否認防止 | 署名者が「自分は署名していない」と後から否定することを防止します。 |

それ以外に電子取引における法的効力、長期保存、監査、トレーサビリティの確保が可能です。
電子署名との違い
「電子署名」と「ディジタル署名」は似ている言葉ですが、意味と技術レベルが少し違います。
| 電子署名 | ディジタル署名 |
|---|---|
| 広い意味での「電子的なサイン全般」を意味します。 紙の署名や押印の代わりに、電子的に行う同意・承認のことです。 | 電子署名を実現するための技術(方式)そのものです。 |
ディジタル署名の仕組み
- 文書にハッシュ関数を使ってハッシュ値を求めます。
- 送信者の秘密鍵でハッシュ値を暗号化します。(これがディジタル署名です。)
- 送信者が文書とディジタル署名を送信します。
- 受信者が送信者の公開鍵を使ってディジタル署名を復号します。(文書のハッシュ値になります。)
- 文書にハッシュ関数を使ってハッシュ値を求めます。
- 復号したハッシュ値と、ハッシュ関数で計算したハッシュ値を比較します。
一致すれば文書が改ざんされていないことと、送信者が署名したことが確認できる。

■文書をハッシュ値にする理由
ハッシュ関数は、元の文書が1文字でも変われば、ハッシュ値がまったく別物になるので、文書が改ざんされていないかを正確にチェック可能です。
また、ハッシュ関数を使えば文書を固定長の短いデータに変換できるので、暗号化(署名)処理にかかる時間が節約できます。
まとめ
- ディジタル署名は、本人確認・改ざん防止・否認防止を実現する
- 文書のハッシュ値を秘密鍵で暗号化して署名を作成
- 受信者は公開鍵で署名を復号し、文書の整合性と署名者を検証
腕試し(理解テスト)
腕試し(理解テスト)に挑戦する場合はこちらをクリック。


コメント