ディジタル署名はデータの改ざん検出や、本人が作成したデータなのかを確認することができます。
前提として、本書はハッシュ関数の知識を持っている人向けとなっています。
ディジタル署名でできること
ディジタル署名によって実現できることや解決できることをまとめました。
セキュリティ面では次の表のとおりです。
項目名 | 説明 |
---|---|
真正性(本人性の保証) | 署名した人が本当にその人物(送信者)であることを証明します。(なりすまし(偽装)を防止) |
改ざんの検出(完全性の保証) | 署名されたデータが途中で改ざんされていないかを検証できます。 |
否認防止 | 署名者が「自分は署名していない」と後から否定することを防止します。 |
それ以外に電子取引における法的効力、長期保存、監査、トレーサビリティの確保が可能です。
ディジタル署名の仕組み
- 文書にハッシュ関数を使ってハッシュ値を求めます。
- 送信者の秘密鍵でハッシュ値を暗号化します。
- 送信者が文書とディジタル署名を送信します。
- 受信者が送信者の公開鍵を使ってディジタル署名を復号します。(文書のハッシュ値になります。)
- 文書にハッシュ関数を使ってハッシュ値を求めます。
- 復号したハッシュ値と、ハッシュ関数で計算したハッシュ値を比較します。
一致すれば文書が改ざんされていないことと、送信者が署名したことが確認できる。

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