ITパスポート 令和5年 問84
「デジタル署名」と聞くと、なんだか難しそうですが、実は私たちは日常的にその恩恵を受けています。
アプリのインストール、🔒マークのついたウェブサイト、電子契約など……裏側では必ずハッシュ化やデジタル署名が働いているのです。
メッセージダイジェスト(ハッシュ化)とは
ハッシュ関数とは、文章やデータを一定の長さの短い値(ハッシュ値)に変換する仕組みです。
- 同じ入力 → 同じ出力になる
- 入力が少しでも違うと、全く異なる出力になる
- 出力は一方向で、元の文章に戻すことはできない
このハッシュ値を「メッセージダイジェスト」と呼びます。つまり、文書の「指紋」のようなものです。
デジタル署名の仕組み
メールを送るとき、ただ本文を送るだけでは「誰が送ったのか」「途中で改ざんされていないか」が分かりません。
そこでデジタル署名が使われます。
- 本文をハッシュ化してメッセージダイジェストを作成
- そのダイジェストを秘密鍵で暗号化 → 署名
- 本文+署名を送信
- 受信者は本文を自分でハッシュ化し、公開鍵で署名を復号して照合
👉 一致すれば「改ざんされていない」「送信者本人」ということが確認できます。
身近な利用例
- ソフトのインストール:「発行元が確認されています」と出るのは署名のおかげ
- ウェブの🔒マーク(SSL/TLS証明書):認証局の署名が使われている
- 電子契約サービス:印鑑の代わりにデジタル署名
- アプリストア:すべてのアプリに署名が必要
私たちは気づかないうちに、毎日デジタル署名を使っています。
SHA-256と固定長の性質
特によく使われるのが SHA-256 というハッシュ関数です。
- 入力がどんなに長くても、出力は必ず 256ビット(64桁の16進数)
- 1文字でも、本1冊分のテキストでも、結果の長さは同じ
この「固定長」こそが、改ざん検知やデジタル署名にとても便利な理由です。
まとめ
- ハッシュ化 = データの「指紋」を作る
- デジタル署名 = その指紋を秘密鍵で暗号化して本人性と改ざん防止を保証する仕組み
- SHA-256 = 出力が固定長なので扱いやすい、実用的なハッシュ関数
- 身近なアプリやWebでも、実は毎日使われている
「難しそう」と思われがちなデジタル署名ですが、実は私たちの生活を支える当たり前の技術です。