デジタル署名

luagate/digital-signatureデジタル署名21セキュリティ

上から下へ、全 21 枚そのまま並べています。

発表モードで開く

デジタル署名

デジタル署名

本人確認と改ざん検知のしくみ

1
1

目次

今日の流れ

1. なぜ署名が必要か

2. 公開鍵を逆向きに使う発想

3. 署名と検証のしくみ

4. ハッシュとの組み合わせ・使いどころ

5. まとめと振り返り

2
2
デジタル署名 - イントロ

今日のゴール

この時間で身につけてほしいことです。

  • デジタル署名が「本人確認」と「改ざん検知」のためだと分かる
  • 公開鍵方式を逆向きに使う発想をつかむ
  • 署名と検証の流れを説明できる
  • ハッシュ関数と組み合わせる理由が分かる
  • どこで使われているかイメージできる
10
3
デジタル署名 - なぜ必要か

なぜデジタル署名が必要か

暗号化で中身は隠せても、「誰が送ったか」「途中で書き換えられていないか」は別問題です。

  • 本当にその人が送ったのか分からない(なりすまし)
  • 途中で内容を書き換えられていないか不安(改ざん)
  • あとから「送っていない」と言われたら困る(否認)
  • 暗号化=中身を隠すだけでは、これらは防げない
  • 送り主の証明と改ざん検知が必要になる
11
4
デジタル署名 - なぜ必要か

デジタル署名とは

データに付ける「本人が作った証拠」であり、改ざんも見抜ける仕組みです。

デジタル署名(Digital Signature)

送り主が秘密鍵で作る電子的な署名。受け取った側は公開鍵で検証でき、「本人が送ったこと」と「内容が改ざんされていないこと」を確認できる。

秘密鍵を持つ本人しか作れない

公開鍵を持っていれば誰でも検証できる

内容が1文字でも変わると検証に失敗する

本人確認・改ざん検知・否認防止を実現する

12
5
デジタル署名 - なぜ必要か

デジタル署名 = 封蝋(ふうろう)に似ている

手紙の封に押す蝋印のように、本人性と未開封(未改ざん)を同時に示します。

本人だけが押せる
  • 自分の印章でしか作れない
  • 秘密鍵にあたる
誰でも確認できる
  • 印影を見れば本物か分かる
  • 公開鍵にあたる
壊れたら気づく
  • 封が破れていれば改ざんが分かる
  • 内容変更を検知する
13
6

デジタル署名 - 発想

2

第2部 発想

公開鍵を逆向きに使う

20
7
デジタル署名 - 発想

暗号化 と 署名(鍵の使い方が逆)

公開鍵方式は、鍵の使う向きを逆にすると「署名」になります。ここが今日の核心です。

暗号化(秘密を守る)

  • 相手の公開鍵で施錠する
  • 相手の秘密鍵で解錠する
  • 目的は中身を隠すこと
  • 読めるのは秘密鍵を持つ本人だけ
  • 守るのは機密性

署名(本人を示す)

  • 自分の秘密鍵で署名する
  • 誰でも公開鍵で検証できる
  • 目的は本人と改ざんの確認
  • 作れるのは秘密鍵を持つ本人だけ
  • 守るのは真正性
21
8
デジタル署名 - 発想

なぜ「秘密鍵で署名」なのか

秘密鍵は本人しか持っていないので、それで作れること自体が本人の証拠になります。

秘密鍵で作り、公開鍵で確かめる

署名は秘密鍵でしか作れない。一方その検証は、対になる公開鍵を持っていれば誰でもできる。だから「作れる=本人」「検証できる=みんな」という関係になる。

秘密鍵を持つのは本人だけ → なりすまし防止

公開鍵は配ってよい → 誰でも検証できる

暗号化とちょうど鍵の向きが逆

この非対称性が署名を成立させる

22
9

デジタル署名 - しくみ

3

第3部 しくみ

署名と検証の流れ

30
10
デジタル署名 - しくみ

署名する側の流れ

データそのものではなく、データの要約(ハッシュ)に署名するのがポイントです。

1. 要約を作る

送るデータからハッシュ(短い指紋)を計算する

2. 秘密鍵で署名

その要約を自分の秘密鍵で署名する

3. 添えて送る

データ本体と署名をセットで相手に送る

4. 公開鍵を共有

検証用の公開鍵は相手が持っている

31
11
デジタル署名 - しくみ

検証する側の流れ

自分で計算した要約と、署名から取り出した要約が一致するかを照合します。

1. 要約を計算

受け取ったデータから同じ方法でハッシュを計算する

2. 署名を確認

送り主の公開鍵で署名から要約を取り出す

3. 照合する

2つの要約が一致するか比べる

4. 判定

一致なら本人かつ未改ざん、不一致なら異常

32
12
デジタル署名 - しくみ

なぜハッシュに署名するのか

大きなデータにそのまま署名せず、短い要約(ハッシュ)に署名します。

ハッシュへの署名

データ全体に署名すると重いため、まずハッシュ関数で短い要約を作り、その要約に署名する。データが少しでも変わると要約も変わるので、改ざんが検知できる。

大きなデータでも署名が軽くなる

内容が1文字変われば要約が変わる

だから改ざんを確実に検知できる

ハッシュ関数は次回じっくり学ぶ

33
13
デジタル署名 - しくみ

署名が守る3つのこと(重要度のイメージ)

デジタル署名は1つの仕組みで複数の安心を同時に実現します。あくまでイメージの比較です。

100 重要度(イメージ)806040200
100重要度(イメージ)
100重要度(イメージ)
90重要度(イメージ)
本人確認
改ざん検知
否認防止

出典: デジタル署名が満たす性質を示す概念図

34
14

デジタル署名 - 使いどころ

4

第4部 使いどころ

身の回りで働く署名

40
15
デジタル署名 - 使いどころ

どこで使われている?

デジタル署名は、信頼が必要なあらゆる場面の土台になっています。

HTTPSの証明書
  • サイトが本物だと示す
  • 認証局が署名している
  • 鍵マークの信頼の根拠
ソフトウェア配布
  • 配布元が本物か確認
  • 改ざんされていないか検証
  • 安全に更新を受け取る
電子契約・取引
  • 本人が同意した証拠
  • あとで否認できない
  • 契約の信頼を支える
41
16
デジタル署名 - 使いどころ

暗号化と署名は何を守るか

目的が違うので、実際は両方を組み合わせて使います。

暗号化が守るもの

  • 機密性(中身を見せない)
  • 盗聴から守る
  • 相手の公開鍵で施錠
  • 読めるのは本人だけ

署名が守るもの

  • 真正性(本人であること)
  • 改ざんを検知する
  • 否認を防ぐ
  • 自分の秘密鍵で署名
42
17
デジタル署名 - まとめ
クイズ

振り返りクイズ

今日の内容を確認しましょう。

デジタル署名を作るとき、署名者はどの鍵を使う?

A
受け取る人の公開鍵
B
署名者自身の秘密鍵
C
受け取る人の秘密鍵
D
共通鍵を1本
50
18
デジタル署名 - まとめ
答え

振り返りクイズ 解答

デジタル署名を作るとき、署名者はどの鍵を使う?

A
受け取る人の公開鍵
B
署名者自身の秘密鍵
C
受け取る人の秘密鍵
D
共通鍵を1本

署名は「本人しか持っていない秘密鍵」で作ります。だから署名が作れること自体が本人の証拠になります。検証する側は、対になる公開鍵を使って確かめます。暗号化とちょうど鍵の使う向きが逆になっています。

51
19
デジタル署名 - まとめ

質疑・次回予告

今日のまとめと、次に学ぶテーマです。質問があればここで受け付けます。

今日のおさらい
  • 署名は本人確認と改ざん検知のため
  • 秘密鍵で署名し公開鍵で検証する
  • データの要約(ハッシュ)に署名する
次回予告
  • ハッシュ関数 〜変換して指紋を作る〜
  • 署名の裏で働く要約のしくみ
52
20
"

デジタル署名は「秘密鍵で作り、公開鍵で確かめる」。本人であることと、内容が変わっていないことを同時に示す。暗号化が中身を隠す一方で、署名は信頼そのものを守ります。

デジタル署名

53
21