【高校情報】デジタル署名とは何かをわかりやすく解説
デジタル社会では、メール、電子契約書、ソフトウェア、Webサイトの証明書など、いろいろなデータがインターネット上でやり取りされているわ。
でも、ここで不安になるのが、
このデータ、本当に本人が送ったものなの?
途中で誰かに書き換えられていないの?
ということよね。
そこで活躍するのが、
デジタル署名
なの。
デジタル署名とは、簡単にいうと、
このデータは本人が作ったものです
途中で改ざんされていません
ということを確認するための仕組みよ。

紙の世界でいうと、印鑑やサインに近いわね。
ただし、デジタル署名はただ名前を書くわけではないの。暗号技術を使って、本人確認と改ざん検出を行う仕組みなのよ。
デジタル署名で確認できること
デジタル署名で確認できることは、大きく分けて2つあるわ。
| 確認できること | 意味 |
|---|---|
| 本人性 | 本当にその人・組織が作ったデータなのかを確認できる |
| 完全性 | 途中でデータが改ざんされていないかを確認できる |
例えば、Aさんが電子契約書にデジタル署名をしたとするわ。
その場合、受け取った人は、
この契約書は本当にAさんが署名したものか?
署名されたあとに内容が書き換えられていないか?
を確認できるの。

つまりデジタル署名は、デジタル世界の「本人のしるし」と「改ざんチェック」を兼ねた仕組みなのよ。
デジタル署名の基本的な仕組み
デジタル署名の仕組みを理解するためには、まず公開鍵暗号方式を押さえておく必要があるわ。
公開鍵暗号方式では、2つの鍵を使うの。
- 秘密鍵:本人だけが持っている鍵
- 公開鍵:他の人に公開してよい鍵
デジタル署名では、この2つの鍵を次のように使うのよ。
秘密鍵で署名する
公開鍵で検証する
ここがとても大事なところね。
秘密鍵で署名する
まず、送信者は自分の秘密鍵を使ってデータに署名するわ。
秘密鍵は、本人だけが持っている鍵よ。
だから、その秘密鍵で作られた署名は、
これは本人が作った署名だと考えられる
という証拠になるの。
紙の世界でいうと、本人しか持っていない印鑑で押印するようなイメージね。
公開鍵で検証する
受信者は、送信者の公開鍵を使って、その署名が正しいかを確認するわ。
公開鍵は、名前の通り公開してよい鍵よ。
そのため、受信者は公開鍵を使って、
この署名は本当に送信者の秘密鍵で作られたものか?
データは途中で改ざんされていないか?
を確認できるの。
デジタル署名の流れ
では、デジタル署名の流れをもう少し具体的に見ていきましょう。
1. データからハッシュ値を作る
まず、送信者は送りたいデータからハッシュ値を作るわ。
ハッシュ値とは、データを短くまとめた要約データのようなものよ。
例えば、長い文章やファイルをそのまま署名するのではなく、まずそのデータから短い要約を作るの。
この要約がハッシュ値ね。
2. ハッシュ値を秘密鍵で署名する
次に、そのハッシュ値を送信者の秘密鍵で処理するわ。
これによって作られるのが、デジタル署名なの。
つまり、デジタル署名はざっくりいうと、
データのハッシュ値を、送信者の秘密鍵で署名したもの
と考えると分かりやすいわ。
3. データとデジタル署名を送る
送信者は、元のデータとデジタル署名を一緒に送るわ。
受信者はそれを受け取って、署名が正しいか確認するの。
4. 受信者が公開鍵で署名を確認する
受信者は、送信者の公開鍵を使ってデジタル署名を確認するわ。
さらに、受け取ったデータから自分でもハッシュ値を作るの。
そして、
署名から確認したハッシュ値
受け取ったデータから作ったハッシュ値
この2つを比べるのよ。
5. ハッシュ値が一致すればOK
もし2つのハッシュ値が一致すれば、
データは途中で改ざんされていない
署名は送信者の秘密鍵で作られたものだと確認できる
ということになるわ。
逆に、少しでもデータが書き換えられていると、ハッシュ値が変わってしまうの。
だから、署名の確認に失敗するのよ。
ハッシュ値とは?
ここで出てきたハッシュ値について、もう少し説明するわね。
ハッシュ値とは、元のデータから作られる短い文字列のことよ。
データの「指紋」のようなものだと考えると分かりやすいわ。
ハッシュ値には、次のような特徴があるの。
- 同じデータからは、同じハッシュ値が作られる
- 少しでもデータが変わると、違うハッシュ値になる
- ハッシュ値から元のデータに戻すことはできない
例えば、文章の中の1文字だけを変えたとしても、ハッシュ値は別のものになるわ。
だから、受信者はハッシュ値を比べることで、
このデータは途中で変えられていないか?
を確認できるの。
デジタル署名と暗号化の違い
ここで注意したいのが、デジタル署名と暗号化は目的が違うということよ。
どちらも暗号技術を使うけれど、役割は同じではないの。
| 項目 | 目的 | 主に使うもの |
|---|---|---|
| 暗号化 | 内容を読めないようにする | 相手の公開鍵や共通鍵など |
| デジタル署名 | 本人性と改ざんなしを確認する | 送信者の秘密鍵 |
暗号化は、
中身を隠すための仕組み
よ。
一方、デジタル署名は、
誰が作ったのか、途中で変えられていないかを確認する仕組み
なの。
つまり、デジタル署名をしたからといって、必ずしも中身が隠れるわけではないのよ。
ここは間違えやすいところね。
なりすましを防ぐには電子証明書が必要
デジタル署名では、公開鍵を使って署名を確認するわ。
でも、ここで1つ問題があるの。
それは、
その公開鍵は、本当に本人の公開鍵なの?
という問題よ。
もし悪い人が、
これがAさんの公開鍵です
と言って、偽物の公開鍵を配っていたらどうなるかしら?
受信者はその偽物の公開鍵を信じてしまうかもしれないわ。
これでは、なりすましを防げないの。
そこで必要になるのが、電子証明書よ。
電子証明書とは、
この公開鍵は、確かにこの人・この組織のものです
と証明するためのデータなの。
そして、その証明書を発行する信頼された機関を認証局というわ。
電子証明書の役割
電子証明書があることで、受信者は、
この公開鍵は本当に本人のものなのか?
を確認しやすくなるの。
つまり、デジタル署名だけではなく、電子証明書と組み合わせることで、より安全に本人確認ができるのよ。
デジタル署名が使われる場面
デジタル署名は、いろいろな場面で使われているわ。
- 電子契約書
- 電子申請
- ソフトウェアの配布
- メールの送信者確認
- Webサイトの証明書
例えば、ソフトウェアにデジタル署名があると、
このソフトは正規の開発元が作ったものか?
配布後に改ざんされていないか?
を確認しやすくなるわ。
また、電子契約書では、
誰が署名したのか
署名後に内容が変えられていないか
を確認するために使われるのよ。
デジタル署名のまとめ
最後に、デジタル署名についてまとめるわね。
デジタル署名とは、秘密鍵でデータに署名し、公開鍵でその署名を検証することで、本人性と改ざんされていないことを確認する仕組み。
ポイントは、次の3つよ。
- デジタル署名は、本人確認と改ざん検出に使う
- 送信者の秘密鍵で署名し、送信者の公開鍵で検証する
- 公開鍵の持ち主を確認するには、電子証明書が重要になる
試験や記事では、特にこの形で覚えておくといいわ。
デジタル署名は、送信者の秘密鍵で作成し、送信者の公開鍵で検証する。
それじゃあね!
