sg cryptography hash_function authentication security_measures
まず結論
メッセージダイジェストとは、ハッシュ関数によって作られる固定長の要約値です。
SG試験では、暗号化ではなく、改ざん検知や電子署名で使われるハッシュ値として押さえるのがポイントです。
たとえば、SHA-1では入力データから160ビットのメッセージダイジェストを作ります。
SHA-256では256ビットのメッセージダイジェストを作ります。
つまり、メッセージダイジェストは特別な別技術というより、ハッシュ関数の出力結果と考えると分かりやすいです。
直感的な説明
メッセージダイジェストは、データの「要約メモ」や「指紋」のようなものです。
元の文章やファイル全体を毎回比べるのは大変です。
そこで、データから短い要約値を作っておきます。
同じデータからは、同じメッセージダイジェストが作られます。
少しでもデータが変わると、メッセージダイジェストも変わります。
そのため、次のように確認できます。
- 送信前のメッセージダイジェスト
- 受信後に計算したメッセージダイジェスト
この2つが一致すれば、データが変わっていない可能性が高いと判断できます。
ここで大事なのは、メッセージダイジェストから元データを復元するわけではないことです。
定義・仕組み
メッセージダイジェストは、ハッシュ関数に入力データを与えたときに得られる固定長の値です。
| 観点 | 内容 |
|---|---|
| 入力 | メッセージ、ファイル、文字列など |
| 処理 | ハッシュ関数にかける |
| 出力 | メッセージダイジェスト、ハッシュ値、要約値 |
| 主な目的 | 改ざん検知、電子署名、データ確認 |
| 元に戻せるか | 原則として戻せない |
用語としては、次の言葉がかなり近い意味で使われます。
| 用語 | 意味 |
|---|---|
| ハッシュ値 | ハッシュ関数の出力値 |
| メッセージダイジェスト | メッセージを要約した値 |
| 要約値 | データを短く表した値 |
| フィンガープリント | データの指紋のように識別に使う値 |
SG試験では、これらを完全に別物として覚えるより、ハッシュ関数の出力を表す言葉としてまとめて理解すると楽です。
どんな場面で使う?
メッセージダイジェストは、主に「データが変わっていないか」を確認したい場面で使われます。
| 場面 | 使い方 |
|---|---|
| ファイル確認 | 公開された値と計算した値を比較する |
| 改ざん検知 | データ変更の有無を確認する |
| 電子署名 | 署名対象データの要約値を作る |
| パスワード保存 | パスワードそのものを保存しない工夫に使う |
たとえば、電子署名では、文書全体に直接署名するのではなく、文書から作ったメッセージダイジェストに対して署名する形で使われます。
これにより、文書が少しでも変更されるとメッセージダイジェストが変わるため、改ざんを検知しやすくなります。
ただし、パスワード保存では単純なハッシュだけでは不十分な場合があります。
実務では、ソルトやストレッチングなどを組み合わせて安全性を高めます。
よくある誤解・混同
誤解1:メッセージダイジェストは暗号文である
メッセージダイジェストは暗号文ではありません。
暗号文は、復号によって元の平文に戻すことを前提にしています。
一方、メッセージダイジェストはハッシュ関数の出力であり、原則として元データには戻せません。
| 用語 | 目的 | 元に戻せるか |
|---|---|---|
| 暗号文 | 内容を隠す | 復号できる |
| メッセージダイジェスト | 内容の一致を確認する | 原則戻せない |
「復号する」という表現が出てきたら、メッセージダイジェストの説明としては不自然です。
誤解2:メッセージダイジェストだけで本人確認ができる
メッセージダイジェストだけでは、誰が作ったデータかまでは確認できません。
メッセージダイジェストで分かるのは、主に「データが変わっていないか」です。
本人性を確認するには、電子署名や認証の仕組みと組み合わせる必要があります。
誤解3:SHA-1とメッセージダイジェストは同じ意味である
SHA-1はハッシュ関数の名前です。
メッセージダイジェストは、そのハッシュ関数から出力される値です。
| 用語 | 位置づけ |
|---|---|
| SHA-1 | ハッシュ関数 |
| SHA-256 | ハッシュ関数 |
| メッセージダイジェスト | ハッシュ関数の出力 |
| ハッシュ値 | ハッシュ関数の出力 |
試験では、SHA-1を「メッセージダイジェストを作るハッシュ関数」と整理すると分かりやすいです。
試験での切り分けポイント
メッセージダイジェストで迷ったら、次の順に確認します。
1. 固定長の要約値か
「固定長」「要約値」「ハッシュ値」という言葉が出たら、メッセージダイジェストの可能性が高いです。
2. 元に戻す説明になっていないか
メッセージダイジェストは、元データに戻すためのものではありません。
「復号」「平文に戻す」「鍵で戻す」という説明なら、暗号化の話です。
3. 目的が改ざん検知か
「改ざんを検知する」「内容が同じか確認する」という目的なら、ハッシュやメッセージダイジェストの話です。
一方、「盗聴されても読めないようにする」という目的なら、暗号化の話です。
確認問題
メッセージダイジェストの説明として、最も適切なものはどれか。
ア. ハッシュ関数によって入力データから作られる固定長の要約値である。
イ. 共通鍵を使って暗号文を平文に戻すための鍵である。
ウ. 通信経路上のデータを暗号化するプロトコルである。
エ. 利用者を識別するために発行されるアカウント名である。
回答と解説
正解は、**ア**です。 メッセージダイジェストは、ハッシュ関数によって作られる固定長の要約値です。 改ざん検知や電子署名などで使われます。 イは復号や鍵の説明です。 ウはTLSやIPsecなどの通信保護の説明に近いです。 エは利用者IDの説明です。まとめ(試験直前用)
メッセージダイジェストは、ハッシュ関数の出力として得られる固定長の要約値です。
試験直前は、次の3点だけ押さえましょう。
- メッセージダイジェスト=ハッシュ値・要約値
- 目的は改ざん検知や電子署名での確認
- 暗号文ではないので、復号して元に戻すものではない
SHA-1やSHA-256は、メッセージダイジェストを作るハッシュ関数です。
「固定長の要約値」「改ざん検知」「元に戻せない」という言葉で判断すると、選択肢を切りやすくなります。