対象試験と出題頻度

デジタル署名(電子署名)は、ITパスポート試験、情報セキュリティマネジメント試験、基本情報技術者試験、応用情報技術者試験のすべてで出題される最重要テーマです。

頻出度は「S(超重要)」で、「どの鍵で署名し、どの鍵で検証するか」を問う問題が毎回のように登場します。暗号化通信との鍵の使い方の違いを確実に押さえておきましょう。

詳細をクリックして確認
対象試験:
ITパスポート
情報セキュリティマネジメント
基本情報技術者
応用情報技術者
出題頻度:
★★★★★
ランクS(超重要)

用語の定義

デジタル署名(Digital Signature)とは、一言で言うと「公開鍵暗号とハッシュ関数を組み合わせて、送信者の本人確認(認証)とデータの改ざん検知を実現する技術」のことです。「電子署名」とも呼ばれます。

イメージとしては、「印鑑と封筒の封印を電子的に実現したもの」です。

紙の契約書に押す印鑑が「この書類は確かに本人が作成した」ことを証明するように、デジタル署名は「このデータは確かに送信者が作成し、途中で改ざんされていない」ことを証明します。

📊 デジタル署名で実現できること

機能 説明
本人確認(認証) 署名者が本人であることを証明できる
改ざん検知 データが途中で変更されていないことを確認できる
否認防止 署名者が「自分は署名していない」と否定できなくなる

解説

情報処理試験を勉強していると、「デジタル署名って、暗号化通信と何が違うの?鍵の使い方がよくわからない…」と混乱しがちです。結論から言うと、暗号化通信とデジタル署名では、鍵の使い方が逆になります

ここは試験で最も出題されるポイントなので、確実に理解しておきましょう。

暗号化通信とデジタル署名の鍵の使い方

公開鍵暗号方式では、公開鍵と秘密鍵のペアを使いますが、用途によって使い方が異なります。

暗号化通信の目的は「機密性の確保」(第三者に内容を見られないようにする)です。受信者の公開鍵で暗号化し、受信者の秘密鍵で復号します。「受け取る人の公開鍵で暗号化」と覚えましょう。

デジタル署名の目的は「認証と改ざん検知」(送信者の証明と内容の確認)です。送信者の秘密鍵で署名し、送信者の公開鍵で検証します。「送る人の秘密鍵で署名」と覚えましょう。

📊 暗号化通信とデジタル署名の比較(試験最頻出)

項目 暗号化通信 デジタル署名
目的 機密性の確保 認証・改ざん検知・否認防止
鍵ペアの作成者 受信者 送信者(署名者)
処理1で使う鍵 受信者の公開鍵で暗号化 送信者の秘密鍵で署名
処理2で使う鍵 受信者の秘密鍵で復号 送信者の公開鍵で検証

💡 なぜ秘密鍵で署名するのか?

秘密鍵は「本人だけが持っている」ものです。だから、秘密鍵で作られた署名は「本人が作成した証拠」になります。もし公開鍵で署名したら、誰でも署名できてしまうので本人確認になりません。

「秘密鍵=印鑑」と考えると理解しやすいでしょう。印鑑を持っているのは本人だけなので、印鑑が押された書類は本人が作成したと判断できます。

デジタル署名の仕組み(手順)

デジタル署名は、公開鍵暗号とハッシュ関数を組み合わせて実現されます。具体的な手順を見てみましょう。

署名の作成(送信者側)では、まず元のメッセージのハッシュ値(メッセージダイジェスト)を計算します。次に、そのハッシュ値を送信者の秘密鍵で暗号化します。この暗号化されたハッシュ値が「デジタル署名」です。送信者は、元のメッセージとデジタル署名を一緒に送信します。

署名の検証(受信者側)では、受け取った署名を送信者の公開鍵で復号し、ハッシュ値を取り出します。また、受け取ったメッセージから同じハッシュ関数でハッシュ値を計算します。この2つのハッシュ値が一致すれば、「送信者本人が署名した」「メッセージは改ざんされていない」ことが確認できます。

📊 デジタル署名の流れ

手順 送信者(署名) 受信者(検証)
メッセージのハッシュ値を計算
秘密鍵でハッシュ値を暗号化(署名)
メッセージ+署名を送信 メッセージ+署名を受信
公開鍵で署名を復号→ハッシュ値A
メッセージのハッシュ値を計算→ハッシュ値B
AとBが一致すれば検証成功

なぜメッセージ全体ではなくハッシュ値に署名するのか

「なぜメッセージ全体を秘密鍵で暗号化しないの?」と疑問に思うかもしれません。理由は2つあります。

1つ目は処理速度です。公開鍵暗号方式は処理が遅いため、大きなメッセージを直接暗号化すると時間がかかります。ハッシュ値は固定長(SHA-256なら256ビット)なので、署名処理が高速になります。

2つ目は署名データのサイズです。メッセージ全体を暗号化すると、署名データが巨大になります。ハッシュ値に対して署名すれば、署名データは常に一定サイズに収まります。

⚠️ 試験での注意点

デジタル署名で最も出題されるのは「どの鍵で署名し、どの鍵で検証するか」です。「送信者の秘密鍵で署名」「送信者の公開鍵で検証」と覚えてください。

暗号化通信の「受信者の公開鍵で暗号化」と混同しないよう注意しましょう。また、デジタル署名は「機密性」を提供しません。メッセージ自体は暗号化されないので、内容を秘密にしたい場合は別途暗号化が必要です。


試験ではこう出る!

デジタル署名は全試験区分で超頻出です。「鍵の使い方」「実現できる機能(認証・改ざん検知・否認防止)」を押さえておけば、ほとんどの問題に対応できます。

ハッシュ関数の具体的な計算方法までは問われません。試験ではここまででOKです。

【重要キーワード】

  • デジタル署名(電子署名)
  • 送信者の秘密鍵で署名、送信者の公開鍵で検証
  • ハッシュ関数との組み合わせ
  • 本人確認(認証)、改ざん検知、否認防止
  • 機密性は提供しない

試験問題で「送信者の秘密鍵で署名する」「本人確認と改ざん検知を実現」「否認防止」という記述があれば、それは「デジタル署名」に関する説明です。

📝 IPA試験での出題ポイント

デジタル署名の問題は、「XさんがYさんにデジタル署名付きメッセージを送る場合、署名に使う鍵は?」という形式が定番です。答えは「Xさん(送信者)の秘密鍵」です。

また、「デジタル署名で実現できること」を問われたら、「認証」「改ざん検知」「否認防止」が正解で、「機密性の確保」は誤りです。


【確認テスト】理解度チェック

ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。

Q. デジタル署名に関する説明として、最も適切なものはどれでしょうか?

  • A. 受信者の公開鍵でメッセージを暗号化し、受信者の秘密鍵で復号することで機密性を確保する
  • B. 送信者の秘密鍵でメッセージのハッシュ値に署名し、送信者の公開鍵で検証することで、本人確認と改ざん検知を実現する
  • C. 共通鍵でメッセージを暗号化し、同じ共通鍵で復号することで、高速に機密性を確保する

正解と解説を見る

正解:B

解説:
デジタル署名は、送信者の秘密鍵でメッセージのハッシュ値を暗号化(署名)し、送信者の公開鍵で復号(検証)する技術です。これにより、「送信者本人が署名した」(認証)、「メッセージが改ざんされていない」(改ざん検知)、「送信者が後から否定できない」(否認防止)ことを実現できます。暗号化通信とは鍵の使い方が逆になる点に注意してください。
選択肢Aは「暗号化通信」の説明です。選択肢Cは「共通鍵暗号方式」の説明であり、いずれもデジタル署名とは異なる概念です。