デジタル署名とは(全体像)
デジタル署名は、データに付ける「本人だけが押せるハンコ」のようなもの。受け取った側は、それを見て「確かにこの人が作った/途中で書き換えられていない」と確かめられる。
仕組みは公開鍵暗号の応用だが、鍵の使い方が暗号化とは逆になる。暗号化は「相手の公開鍵でかけ、相手の秘密鍵で開ける」。一方、署名は「自分の秘密鍵で署名し、みんなの公開鍵で検証する」。ここが最大のポイントだ。
押さえるのは、鍵の向き、署名の手順、そして3つの効果だ。
詳しく:手順と効果を押さえる
ここが心臓部。デジタル署名は、ハッシュ(指紋)と組み合わせて、次の流れで動く。
デジタル署名の手順
| 手順 | 中身 |
|---|---|
| ① ハッシュ計算 | 送信者がデータの指紋(ハッシュ値)を計算する |
| ② 署名の作成 | その指紋を自分の秘密鍵で署名する(=署名) |
| ③ 送信 | データと署名をいっしょに送る |
| ④ 検証 | 受信者が送信者の公開鍵で署名を確かめる |
| ⑤ 照合 | 受信者も自分でハッシュを計算し、一致すれば本物 |
この流れで得られる効果は3つ。
デジタル署名の3つの効果
| 効果 | 意味 |
|---|---|
| 本人性 | 確かにその人が署名したと分かる |
| 非改ざん | 中身が書き換えられていないと分かる |
| 否認防止 | あとから「自分はやっていない」と言い逃れできない |
言葉を噛み砕いておく。
- なぜ秘密鍵で署名するのか … 秘密鍵は本人しか持っていないから、それで作った署名は「本人の証」になる。検証はみんなが持てる公開鍵でできる。
- 暗号化との向きの違い … 暗号化は相手の公開鍵でかけて相手の秘密鍵で開ける。署名は自分の秘密鍵で作って公開鍵で確かめる。鍵の向きが逆と覚える。
- 代表アルゴリズムと法律 … RSA-PSSやECDSA、そして現代推奨のEd25519がある。日本では電子署名法(2001年)により、一定の条件で手書き署名と同等の法的効力を持つ。
わかりやすく言い換えると
つまり、デジタル署名は本人だけが押せるハンコ+封印にたとえるとスッと入る。
自分は、自分だけが持つハンコ(秘密鍵)で書類に押す。受け取った人は、誰でも見られる照合表(公開鍵)で「確かに本人のハンコだ」と確かめられる。さらに指紋(ハッシュ)を使うので、1文字でも書き換えると照合が合わなくなり、改ざんがすぐ分かる。
暗号化のときは逆で、相手の鍵でかけて相手が開ける。署名は自分の鍵で押してみんなが確かめる——この向きの違いが、いちばんよく問われる。
試験のツボ
🔴 一番出る:鍵の向き
①署名=自分の秘密鍵で作る
②検証=送信者の公開鍵で確かめる(暗号化とは逆)
🔴 次に出る:3つの効果と手順
①本人性・非改ざん・否認防止
②ハッシュ計算→秘密鍵で署名→公開鍵で検証・照合
🟡 押さえると安定:現代推奨はEd25519/電子署名法(2001)で手書き署名と同等の効力
よくある間違い
①「署名は公開鍵で作る」→ ✗ 署名は秘密鍵で作り、検証を公開鍵で行う。鍵の向きを逆にしない。
②「RSA署名とRSA暗号化はまったく同じ操作」→ ✗ 暗号化は公開鍵でかける、署名は秘密鍵で作る。鍵の向きが逆。
③「デジタル署名は中身を秘密にするための暗号化だ」→ ✗ 署名の目的は本人性や改ざん検知。中身を隠すのは暗号化の役目で別。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(鍵の向き)
デジタル署名に関する次の記述のうち、正しいものはどれか。
- 署名は受信者の秘密鍵で作り、検証は送信者の秘密鍵で行うため、鍵をいっさい共有せずにすむとされている
- 署名も検証も同じ1つの共通鍵で行う方式で、公開鍵や秘密鍵といった区別はまったく使わないとされている
- 署名は送信者が自分の秘密鍵で作り、受信者は送信者の公開鍵で検証する(暗号化とは鍵の向きが逆)方式だ
- 署名は鍵をまったく使わずにデータを並べ替えるだけの操作で、本人の確認とは無関係なしくみとされている
解答は 3 である。
署名は送信者が自分の秘密鍵で作り、受信者は送信者の公開鍵で検証する。暗号化(相手の公開鍵でかけ、相手の秘密鍵で開ける)とは鍵の向きが逆だ。
選択肢1は鍵の持ち主を取り違えている。選択肢2は「共通鍵だけ」が誤り。選択肢4の「鍵を使わない」も誤りだ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 署名は送信者の秘密鍵で作る |
| 2 | ✗ | 公開鍵と秘密鍵の区別を使う |
| 3 | ✓ | 秘密鍵で署名・公開鍵で検証で正しい |
| 4 | ✗ | 鍵を使い、本人確認が目的 |
オリジナル問題2(3つの効果)
デジタル署名で得られる効果として、正しいものはどれか。
- 本人性・非改ざん・否認防止が得られ、誰が作り中身が変わっていないかをあとから確かめられるようになる
- 通信の速度が必ず二倍になり、データの量も自動で半分に圧縮されるという効果が得られるものとされている
- データの中身を第三者から完全に隠す秘匿だけが目的で、本人性や改ざんの検知には関係しないとされている
- 署名を付けるとデータが自動でバックアップされ、機器が壊れても必ず復元できるようになるとされている
解答は 1 だ。
デジタル署名で得られるのは、本人性(誰が作ったか)・非改ざん(中身が変わっていないか)・否認防止(やっていないと言い逃れできない)の3つ。
選択肢2の速度や圧縮、選択肢4のバックアップは署名の効果ではない。選択肢3の「秘匿だけ」は暗号化の目的で、署名とは別だ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✓ | 本人性・非改ざん・否認防止で正しい |
| 2 | ✗ | 速度や圧縮は署名の効果ではない |
| 3 | ✗ | 秘匿は暗号化の目的で別 |
| 4 | ✗ | バックアップとは無関係 |
オリジナル問題3(手順とアルゴリズム)
デジタル署名の手順やアルゴリズムに関する次の記述のうち、正しいものはどれか。
- 署名は元データをそのまま秘密鍵で処理するだけで、ハッシュ(指紋)の計算はいっさい使わないとされている
- 署名ではまずハッシュを計算し、それを秘密鍵で署名して送り、受信者は公開鍵で検証する。現代推奨はEd25519だ
- デジタル署名には法的な効力はいっさいなく、電子署名法でも手書き署名とは別物として扱われるとされている
- 署名の現代標準はMD5で、Ed25519やECDSAといった方式は署名にはまったく使われないとされているのが実情だ
解答は 2 だ。
署名は、まずハッシュ(指紋)を計算し、それを秘密鍵で署名して送り、受信者が公開鍵で検証する。現代の推奨アルゴリズムはEd25519だ。
選択肢1は「ハッシュを使わない」が誤り。選択肢3は電子署名法(2001年)で手書きと同等の効力を持つので誤り。選択肢4のMD5は廃止されたハッシュで、署名の現代標準ではない。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | ハッシュ計算を使う |
| 2 | ✓ | ハッシュ→秘密鍵署名→公開鍵検証・Ed25519推奨で正しい |
| 3 | ✗ | 電子署名法で手書きと同等の効力を持つ |
| 4 | ✗ | MD5は廃止で署名の標準ではない |
まとめ
押さえどころ
- 🔴 デジタル署名 = 本人が作り改ざんされていないことを証明。署名は秘密鍵・検証は公開鍵(暗号化とは逆)。
- 🔴 効果は3つ:本人性・非改ざん・否認防止。手順はハッシュ計算→秘密鍵で署名→公開鍵で検証・照合。
- 🟡 現代推奨はEd25519。日本では電子署名法(2001)で手書き署名と同等の効力を持つ。
次に学ぶ
- ハッシュ関数(SHA-2・SHA-3) ── 署名の最初の手順で使う「指紋」を作るしくみ。
- RSA・ECC(公開鍵暗号) ── 署名の土台になる、鍵が2つの暗号。
- TLS 1.3(HTTPS) ── 証明書の署名検証で使われる、ウェブ通信のしくみ。
執筆: SikakuQuest編集部