「デジタル署名は、結局どの鍵で作って、どの鍵で確かめるのか」。情報セキュリティマネジメント試験の勉強で、暗号化の鍵の使い方とごちゃ混ぜになりやすい論点です。
この記事では、デジタル署名の仕組みを「ハッシュ値を作る」「秘密鍵で署名する」「公開鍵で検証する」という順番で整理します。暗号化との違い、似た仕組みであるMACとの違い、法律上の「電子署名」の定義もあわせて確認します。
覚える一文は、**「署名は送る人の秘密鍵で作り、受け取る人が送る人の公開鍵で確かめる」**です。暗号化とは鍵の使い方が逆になります。
結論:デジタル署名は「ハッシュ値を秘密鍵で暗号化したもの」
デジタル署名とは、文書が本物であることを示すために付ける、電子的な「サイン」のようなものです。紙の書類の署名や押印に近い役割を、電子データの上で果たします。
しくみの正体は、次の一文にまとまります。
- 署名 = 文書のハッシュ値を、送り手の秘密鍵で暗号化した値
ここに出てくる2つの部品を、先に確認しておきます。
| 部品 | 役割 | ひとことで |
|---|---|---|
| ハッシュ関数 | データから決まった長さの値(ハッシュ値)を作る | データの「指紋」を取る |
| 公開鍵暗号の鍵ペア | 秘密鍵で署名を作り、公開鍵で署名を確かめる | 本人だけが作れる「印鑑」を使う |
ハッシュ関数とハッシュ値
ハッシュ関数は、どれだけ長いデータでも、決まった長さの値に変える計算方法です。出てきた値がハッシュ値(試験では「メッセージダイジェスト」とも呼ばれます)です。
ハッシュ関数には、署名に欠かせない性質が3つあります。
- 一方向性:ハッシュ値から元のデータを計算で戻すことはできない
- 同じ入力なら同じ値:同じデータからは、いつ計算しても同じ値が出る。1文字でも違えば別の値になる
- 衝突しにくい:違うデータから同じ値が出ることは、現実にはまず起きない
つまり、ハッシュ値が同じなら、元のデータも同じと考えてよい、ということです。
鍵ペア(秘密鍵と公開鍵)
公開鍵暗号では、2つの鍵が1組(鍵ペア)になっています。
| 鍵 | 持つ人 | 署名での役割 |
|---|---|---|
| 秘密鍵 | 本人だけ | 署名を作る(署名鍵とも呼ぶ) |
| 公開鍵 | 誰でも入手できる | 署名を確かめる(検証鍵とも呼ぶ) |
秘密鍵は本人だけが持つので、その鍵で作った署名は「本人にしか作れないもの」として扱えます。
署名の作成と検証:Aさん→Bさんの手順
ここでは、取引先のAさんが、Bさんに注文書を送る場面で考えます。
署名を作る(Aさん)
- 注文書のファイルから、ハッシュ値を計算する
- そのハッシュ値を、Aさんの秘密鍵で暗号化する。これがデジタル署名
- 注文書とデジタル署名をセットにして、Bさんに送る
注文書そのものを暗号化しているわけではない点に注意してください。暗号化するのは、短いハッシュ値だけです。長い文書を丸ごと公開鍵暗号で処理すると時間がかかるので、まずハッシュ値に縮めてから署名する、という流れです。
署名を検証する(Bさん)
届いたのは、注文書とデジタル署名の2つです。Bさんは、ハッシュ値を2通りの方法で用意します。
| 方法 | やること | 手に入る値 |
|---|---|---|
| ① 自分で計算する | 届いた注文書にハッシュ関数をかける | Bさんが自分で出したハッシュ値 |
| ② 署名を戻す | 届いた署名をAさんの公開鍵で元に戻す | Aさんが署名したときのハッシュ値 |
①と②が一致すれば、検証は成功です。一致しなければ、注文書が途中で書き換えられたか、Aさん以外の人が作った署名だということになります。
なぜ、これで安心できるのでしょうか。
- 注文書が1文字でも書き換わると、①の値が変わり、②と合わなくなる(改ざんの検知)
- ②を正しく戻せるのは、Aさんの秘密鍵で作った署名だけ。他人が作った署名は、Aさんの公開鍵では正しく戻らない(本人の確認)
検証に成功すると分かること
検証に成功したとき、確かめられることは次の3つです。
| 分かること | 情報セキュリティの用語 | 内容 |
|---|---|---|
| 改ざんされていない | 完全性 | 署名したときの文書と、今の文書が同じ |
| 本人が作った | 真正性 | 秘密鍵の持ち主(Aさん)が署名した |
| 後から否認できない | 否認防止 | 「そんな注文は送っていない」と言えなくなる |
デジタル署名を付けても、文書の中身は隠れません。注文書は誰でも読める状態のままです。中身を秘密にしたいときは、暗号化も合わせて使います。署名の役目は「本物であることの証明」、暗号化の役目は「中身を隠すこと」です。
完全性や、機密性・可用性との関係は、機密性・完全性・可用性の違いの記事で整理しています。
暗号化と署名では、鍵の使い方が逆になる
同じ鍵ペアを使っても、目的によって「どちらの鍵を、誰のものから使うか」が変わります。試験でいちばん狙われやすい部分です。
| 目的 | 処理する人 | 使う鍵 | 戻す人 | 使う鍵 |
|---|---|---|---|---|
| 暗号化(中身を隠す) | 送る人 | 受け取る人の公開鍵 | 受け取る人 | 自分の秘密鍵 |
| デジタル署名(本人の証明) | 送る人 | 自分の秘密鍵 | 受け取る人 | 送る人の公開鍵 |
整理のコツは、鍵ペアが「誰のものか」を見ることです。
- 暗号化:受け取る人の鍵ペアを使う
- 署名:送る人の鍵ペアを使う
暗号化は「相手の鍵」から始まり、署名は「自分の鍵」から始まる、と覚えると間違えにくくなります。暗号化の方式の違いは共通鍵暗号と公開鍵暗号の違いの記事も参考にしてください。
MACとの違い:本人の証明までできるか
データの改ざんを見つける方法には、もう1つ**メッセージ認証符号(MAC)**があります。デジタル署名とよく並べて出題されます。
| 項目 | デジタル署名 | MAC(メッセージ認証符号) |
|---|---|---|
| 使う鍵 | 公開鍵暗号の鍵ペア | 送り手と受け手が共有する共通鍵 |
| 作る人 | 送り手(秘密鍵) | 共通鍵を持つ人なら誰でも |
| 確かめる人 | 公開鍵を入手した誰でも | 共通鍵を持つ人だけ |
| 改ざんの検知 | できる | できる |
| 第三者への証明・否認防止 | できる | できない |
MACは、共通鍵を持つ2人のどちらでも同じ値を作れます。そのため、「Aさんが作った」と第三者に証明することはできません。デジタル署名はAさんの秘密鍵でしか作れないので、本人の証明と否認防止までできます。
法律でいう「電子署名」との関係
デジタル署名の技術は、法律にも関わっています。電子署名及び認証業務に関する法律(電子署名法)の第2条第1項は、「電子署名」を、電磁的記録に記録できる情報について行われる措置で、次の2つの要件をどちらも満たすものと定めています(e-Gov法令検索で2026年10月14日に確認)。
| 要件 | 内容 |
|---|---|
| 1号 | その情報が、措置を行った者の作成に係るものであることを示すためのものであること |
| 2号 | その情報について改変が行われていないかどうかを確認できるものであること |
つまり、「誰が作ったか」と「改ざんされていないか」を確かめられることが、法律上の電子署名の条件です。デジタル署名の「本人の確認」と「改ざんの検知」は、この2つの要件に対応しています。
また、第3条は、電磁的記録について、本人による電子署名(本人だけが行えるよう必要な符号や物件を適正に管理しているものに限る)が行われているときは、真正に成立したものと推定する、と定めています。法律名や条文は、試験対策では細かく暗記するより、「電子署名には法的な裏付けがある」という位置づけを押さえておくと十分です。
署名に使うハッシュ関数は新しいものを選ぶ
デジタル署名の安全性は、ハッシュ関数の安全性にも左右されます。
CRYPTRECの暗号リスト(最終更新:令和8年3月30日)では、ハッシュ関数のうち SHA-256、SHA-384、SHA-512 などが電子政府推奨暗号リストに載っています。一方、SHA-1 は「運用監視暗号リスト」に載っており、互換性を保つ目的に限って使い続けることを認めるものとされ、それ以外の目的での利用は推奨されていません。
試験で細かい方式名まで問われることは多くありませんが、「古いハッシュ関数をそのまま使い続けるのは避け、新しいものを選ぶ」という考え方は押さえておきましょう。リストの内容は更新されるため、最新はCRYPTRECの公式サイトで確認してください。
試験での問われ方と覚え方
IPAの公式ページでは、この試験の科目Aの重点分野に「情報セキュリティ対策」が挙げられています(2026年10月14日に確認)。デジタル署名は、その中の暗号・認証の技術として扱われます。
よくある出題の型と、考え方をまとめます。
| 問われ方 | 考え方 |
|---|---|
| 署名の検証に使う鍵はどれか | 送り手の公開鍵。署名は送り手の秘密鍵で作られているため |
| 署名の作成に使う鍵はどれか | 送り手の秘密鍵 |
| 署名で確認できることは何か | 改ざんの有無(完全性)、送り手本人か(真正性)、否認防止 |
| 署名で防げないことは何か | 文書の内容を他人が読むこと(機密性は守れない) |
| MACとの違いは何か | MACは共通鍵なので、第三者への証明・否認防止ができない |
科目Bのようなケース問題では、「取引先から届いた注文書にデジタル署名が付いている」という場面が考えられます。取るべき行動は決まっています。
- 付いている署名を、送り手の公開鍵で検証する
- 検証に成功したら、改ざんされておらず、本人から届いたものとして扱える
- 検証に失敗したら、正式な文書として扱わず、電話など別の連絡手段で送り手に確認する
迷ったときは、「検証に使うのは送り手の公開鍵」という1点に戻ってください。
講座でどう学べるか
情報セキュリティマネジメント講座では、ハッシュ関数とデジタル署名を1つのテーマとして扱い、「署名を作る手順」と「検証する手順」を順番に学べるようにしています。授業ごとの確認問題で、鍵の使い分けを自分で言えるか確かめられます。わからない点は、AI講師のトーレスに質問できます。
まとめ
- デジタル署名は、文書のハッシュ値を送り手の秘密鍵で暗号化した値。検証は送り手の公開鍵で行う
- 検証に成功すると、完全性(改ざんなし)・真正性(本人が作成)・否認防止が確かめられる
- 暗号化は受け取る人の鍵ペア、署名は送る人の鍵ペア。鍵の使い方が逆になる
- 署名では中身は隠れない。MACと違い、第三者への証明と否認防止ができる
- 電子署名法でも、「誰が作ったか」と「改変されていないか」を確認できることが電子署名の要件になっている
手順を声に出して言えるようになれば、鍵の取り違えはほぼなくなります。「ハッシュ値を作る → 秘密鍵で署名 → 公開鍵で検証」の順番を、まず覚えてください。

