暗号技術の基礎

「なりすまし」と「改ざん」を防ぐ!デジタル署名とPKIの基礎知識

2025年12月12日

前回は、データの改ざんとなりすましを防ぐ「ハッシュ関数」と「メッセージ認証コード(MAC)」について学びました。これらを使えば、「データが途中で書き換えられていないか」「知っている相手から送られてきたか」を確認できます。

しかし、MACには決定的な弱点がありました。共通鍵を使っているため、「送信者が『私は送っていない』と言い張った場合に、それを覆せない(否認防止ができない)」という点です。

ビジネスの契約や公的な手続きにおいて、「後でしらばっくれられる」のは致命的です。そこで必要となるのが、デジタルの世界における「実印」と「印鑑証明」の仕組みです。

今回は、セキュリティ技術の核心部分である「デジタル署名」と、それを支える社会的な基盤である「PKI(公開鍵基盤)」について、分かりやすく解説します。これで、インターネット上で「信頼」を確立するための基礎がすべて揃います。

デジタル署名とは?(デジタルの「実印」)

仕組みの核心:公開鍵暗号の「逆利用」

デジタル署名は、紙の書類における「サイン」や「押印」と同じ役割をデジタルデータに対して行う技術です。その仕組みには、以前学んだ「公開鍵暗号方式」が応用されています。

公開鍵暗号の基本は「公開鍵で暗号化し、秘密鍵で復号する」でしたね。デジタル署名では、これをに使います。

  1. 署名(送信者): 自分の「秘密鍵」を使ってデータを暗号化します(これを「署名」と呼びます)
  2. 検証(受信者): 送信者の「公開鍵」を使って、署名を復号できるか試します

「秘密鍵」は世界で送信者本人しか持っていません。もし、送信者の「公開鍵」で正しく復号できたなら、そのデータは「間違いなく秘密鍵を持っている本人(送信者)が作成した」と証明できるのです。

この「本人しか持っていない秘密鍵」という性質が、デジタル署名の信頼性を支えています。現実世界で実印を押すのと同じように、デジタルの世界でも「本人しかできない行為」を実現しているわけです。

実現できる3つのこと(MACとの違い)

デジタル署名を使うと、以下の3つを同時に保証できます。

  1. 完全性(Integrity): データが改ざんされていないこと(内部でハッシュ関数を使います)
  2. 真正性(Authenticity): 間違いなく本人が作成したこと
  3. 否認防止(Non-repudiation): 本人が「やっていない」と否定できないこと

この「3. 否認防止」ができる点が、共通鍵を使うMACとの決定的な違いです。

MACでは、送信者と受信者が同じ鍵を共有しています。そのため、受信者も同じMACを作成できてしまい、「本当に送信者が作ったのか、受信者が偽造したのか」を第三者が判断できません。つまり、送信者が「私は送っていない」と主張すれば、それを覆す手段がないのです。

一方、デジタル署名では秘密鍵は本人しか持っていないため、言い逃れができません。裁判などの法的な場面でも、「この署名は本人が行った」という証拠として使えるのです。

具体的な手順(署名と検証の流れ)

実際には、データ全体を秘密鍵で暗号化すると処理が重くなるため、「ハッシュ関数」を組み合わせて使います。これにより、大きなファイルでも効率的に署名できます。

【送信側(Aさん)の処理:署名作成】

  1. 送りたいメッセージのハッシュ値(要約)を計算します
  2. このハッシュ値を、Aさんの「秘密鍵」で暗号化します。これが「デジタル署名」です
  3. 「元のメッセージ」と「デジタル署名」をセットで相手に送ります

【受信側(Bさん)の処理:署名検証】

  1. 受け取った「デジタル署名」を、Aさんの「公開鍵」で復号します → ハッシュ値(X)が出てきます
  2. 受け取った「元のメッセージ」から、自分でハッシュ値を計算します → ハッシュ値(Y)が出てきます
  3. ハッシュ値XとYを比較します。完全に一致すれば、「改ざんされておらず、Aさん本人が署名した」と証明されます

もし途中で誰かがメッセージを書き換えていた場合、受信者が計算したハッシュ値(Y)は、署名から取り出したハッシュ値(X)と一致しません。これにより、改ざんを検出できるわけです。

また、悪意のある第三者が偽の署名を作ろうとしても、Aさんの秘密鍵を持っていないため、公開鍵で正しく復号できる署名を作ることができません。

なぜ「公開鍵」が本物だと信じられるのか?(PKIの役割)

その「公開鍵」、偽物じゃないですか?

デジタル署名の検証には、送信者の「公開鍵」が必要です。しかし、ここで新たな問題が発生します。

もし悪意ある第三者(Cさん)が、「私はAです」と嘘をついて、Cさんの公開鍵をばら撒いていたらどうでしょうか?Bさんは偽の公開鍵で検証してしまい、Cさんが送ってきた偽のデータを「Aさんからの本物だ」と信じ込んでしまうかもしれません。

これは「中間者攻撃(Man-in-the-Middle Attack)」と呼ばれる攻撃手法です。通信の途中に割り込んで、公開鍵をすり替えることで、デジタル署名の仕組み自体を無効化してしまうのです。

つまり、デジタル署名の技術的な仕組みがいくら完璧でも、「この公開鍵は、間違いなくAさんのものです」と証明してくれる第三者がいなければ、安心して使えないのです。

PKI(公開鍵基盤)とは?

この問題を解決する社会的な仕組みが「PKI(Public Key Infrastructure:公開鍵基盤)」です。

PKIは、信頼できる第三者機関が、公開鍵の持ち主を保証する仕組み全体を指します。これは技術だけでなく、法律、組織、運用ルールなどを含む総合的な「基盤(インフラストラクチャ)」です。

現実世界で例えるなら、印鑑登録制度がこれに相当します。実印を使うとき、私たちは役所で印鑑登録を行い、「印鑑証明書」を発行してもらいます。この証明書があることで、「この印影は間違いなく本人のものだ」と第三者に証明できるわけです。

PKIは、この印鑑登録制度をデジタルの世界で実現したものと考えるとイメージしやすいでしょう。

信頼の要「認証局(CA)」と「電子証明書」

PKIの中心となるのが「認証局(CA: Certificate Authority)」です。これはデジタルの世界における「役所」のような存在です。

具体的な流れを見てみましょう。

  1. 申請 : Aさんは、認証局(CA)に自分の「公開鍵」と身分証明書を提出して、「これは私の公開鍵です」と登録申請します
  2. 本人確認 : CAは厳格な審査を行います。企業の場合は登記簿謄本、個人の場合は身分証明書などで本人確認を行います
  3. 証明書発行 : 審査に問題がなければ、CAは「電子証明書(デジタル証明書)」を発行します

この電子証明書には、以下のような情報が含まれています。

  • 証明書の所有者の名前(個人名や組織名)
  • 所有者の公開鍵
  • 証明書の有効期限
  • 発行したCAの情報
  • CAのデジタル署名(これが最も重要)

つまり、電子証明書とは、Aさんの「公開鍵」に、CAが「これは間違いなくAさんの鍵ですよ」というお墨付き(CAのデジタル署名)を付けたデータなのです。現実世界の「印鑑登録証明書」と同じ役割を果たします。

受信者(Bさん)は、Aさんから送られてきた「電子証明書」をCAの公開鍵を使って検証することで、「Aさんの公開鍵は本物だ」と安心して利用できるようになります。

信頼の連鎖:ルート証明書

ここで「じゃあ、CAの公開鍵はどうやって信頼するの?」という疑問が湧くかもしれません。これは重要なポイントです。

実は、PKIでは「信頼の連鎖(Chain of Trust)」という考え方を使っています。

最上位には「ルートCA」と呼ばれる最も信頼できる認証局があり、その証明書(ルート証明書)は、OSやブラウザに最初から組み込まれています。つまり、私たちは「このルートCAは信頼できる」という前提から出発しているのです。

そして、ルートCAが中間CAを認証し、中間CAが個々のWebサイトや個人を認証するという階層構造になっています。この連鎖により、最終的なエンドユーザーの証明書まで信頼性が伝わっていくわけです。

身近な利用例とSC試験のポイント

身近な利用例(メール、電子契約、e-Tax)

デジタル署名とPKIは、私たちの日常生活の中で既に広く使われています。

電子メール(S/MIME)

ビジネスメールで重要な契約書や機密情報を送る際、S/MIME(Secure/Multipurpose Internet Mail Extensions)という技術を使うことで、メールにデジタル署名を付けられます。これにより、送信者の証明と改ざん防止が実現できます。

受信者は、署名を検証することで「このメールは間違いなく取引先の担当者から送られてきた」「内容が途中で書き換えられていない」と確信できるのです。

クラウド電子契約サービス

紙の契約書の代わりに、PDFファイルなどにデジタル署名を行うことで法的効力を持たせる電子契約が普及しています。DocuSignやクラウドサインといったサービスが代表例です。

従来は紙に印鑑を押して郵送していた契約書が、デジタル署名を使うことでオンラインで完結できるようになりました。これにより、契約締結のスピードが劇的に向上し、コストも大幅に削減できます。

オンライン行政手続き(e-Tax、マイナンバーカード)

確定申告をオンラインで行うe-Taxでは、マイナンバーカードを使った本人認証が行われます。マイナンバーカードの中には、実は秘密鍵と電子証明書が格納されているのです。

カードリーダーにマイナンバーカードを挿入してPINコードを入力すると、カード内の秘密鍵を使ってデジタル署名が行われます。これにより、「間違いなく本人が申告した」という証明ができ、税務署はその申告を受理できるわけです。

試験で問われるポイント

情報処理安全確保支援士試験では、デジタル署名とPKIに関する問題が頻出します。特に以下のポイントを押さえておきましょう。

鍵の使い分け(超重要)

これは試験で最も狙われやすいポイントです。暗号化通信とデジタル署名では、鍵の使い方が真逆になります。

  • 暗号化通信(SSL/TLSのハンドシェイクなど):受信者の公開鍵で暗号化 → 受信者の秘密鍵で復号
  • デジタル署名:送信者の秘密鍵で暗号化(署名) → 送信者の公開鍵で復号(検証)

混同しやすいので、「誰の鍵を使うか」を意識して覚えましょう。暗号化は「相手に読ませたい」ので相手の公開鍵を使い、署名は「自分が書いた証明」なので自分の秘密鍵を使う、と理解すると覚えやすいです。

MACとデジタル署名の違い

両者とも「完全性」と「真正性」を保証しますが、決定的な違いは「否認防止」の有無です。

  • MAC:共通鍵を使うため、否認防止ができない
  • デジタル署名:秘密鍵(本人しか持っていない)を使うため、否認防止ができる

PKIの構成要素

試験では、PKIを構成する各要素の役割も問われます。

  • CA(認証局): 電子証明書を発行する信頼できる第三者機関
  • RA(登録局): 証明書発行の申請受付や本人確認を行う(CAの業務を補助)
  • CRL(証明書失効リスト): 有効期限前に無効化された証明書のリスト
  • OCSP(オンライン証明書状態プロトコル): 証明書の有効性をリアルタイムで確認するプロトコル

特にCRLとOCSPは、「秘密鍵が漏洩した」などの理由で証明書を緊急停止する仕組みとして重要です。

学んだ知識を定着させよう

ここまでの内容が理解できたか、簡単なクイズで確認してみましょう。 「どの鍵を何に使うか」は、試験で最も狙われやすいポイントです!

【演習】デジタル署名とPKI 理解度チェック(全10問)

Q1. デジタル署名を用いることで、メッセージ認証コード(MAC)では実現できないセキュリティ機能はどれか。

正解:ウ

解説:
デジタル署名は、送信者本人しか持っていない「秘密鍵」で署名を行うため、送信者は後になって「自分は送っていない」と否定(否認)することができなくなります。これがMAC(共通鍵を使用)との最大の違いです。

他の選択肢はなぜ不正解?
  • ア・イ(完全性・真正性):これらはMACでもデジタル署名でも実現できる機能です。
  • エ(機密性):デジタル署名自体はデータを暗号化して隠すわけではないため、機密性は保証しません。(機密性が必要な場合は、別途暗号化を行います)

Q2. 送信者がデジタル署名を作成(署名)する際に使用する鍵はどれか。

正解:イ

解説:
「署名」は「本人しかできない」行為でなければなりません。そのため、世界で送信者本人しか持っていない「送信者の秘密鍵」を使って作成します。

他の選択肢はなぜ不正解?
  • ア(送信者の公開鍵):これは受信者が署名を「検証」する際に使います。誰でも入手できるため、署名作成には使えません。
  • ウ・エ(受信者の鍵):署名は送信者が行う行為なので、受信者の鍵は使いません。(受信者の公開鍵は、受信者への「暗号化通信」に使います)

Q3. 受信者が、送られてきたデジタル署名を検証する際に使用する鍵はどれか。

正解:ア

解説:
デジタル署名は「送信者の秘密鍵」で暗号化されています。これを復号して検証できるのは、対となる「送信者の公開鍵」だけです。

他の選択肢はなぜ不正解?
  • イ(送信者の秘密鍵):これは送信者が持っているもので、受信者は持っていません。
  • ウ・エ(受信者の鍵):送信者が作成した署名の検証には、送信者の鍵のペアが必要です。

Q4. 実際のデジタル署名プロセスにおいて、データ全体ではなく、データのハッシュ値に対して署名(暗号化)を行う主な理由は何か。

正解:イ

解説:
公開鍵暗号方式(RSAなど)は、共通鍵暗号に比べて計算処理が非常に低速です。大きなデータ全体を暗号化すると時間がかかるため、データを短い固定長の「ハッシュ値」に変換し、そのハッシュ値に対してのみ署名を行うことで、効率的に処理します。

他の選択肢はなぜ不正解?
  • ア(機密性):ハッシュ化は暗号化(秘匿)ではありません。元のデータはそのまま送られます。
  • ウ(否認防止):否認防止は「秘密鍵で署名する」ことによって実現されます。
  • エ(公開鍵の隠蔽):公開鍵は隠す必要がありません(公開するものです)。

Q5. PKI(公開鍵基盤)が解決する主なセキュリティ上の課題は何か。

正解:ウ

解説:
デジタル署名や暗号化通信では「相手の正しい公開鍵」が必要です。しかし、悪意のある第三者が偽の公開鍵をばら撒く可能性があります。PKIは、信頼できる第三者機関(認証局)が「この公開鍵は間違いなくこの人のものです」と保証することで、この問題を解決します。

他の選択肢はなぜ不正解?
  • ア(鍵配送問題):これは「公開鍵暗号方式」そのものによって解決されます。
  • イ(計算速度):PKIは速度を改善する仕組みではありません。
  • エ(秘密鍵の盗難検知):PKI自体に盗難を検知する機能はありませんが、盗難後に証明書を無効化する仕組み(CRLなど)は提供します。

Q6. PKIにおいて、電子証明書(デジタル証明書)を発行する信頼できる第三者機関を何と呼ぶか。

正解:イ

解説:
CA(認証局)は、申請者の本人確認を行い、その人の公開鍵に対してCA自身のデジタル署名を付与した「電子証明書」を発行する、PKIの中心的な機関です。

他の選択肢はなぜ不正解?
  • ア(RA):CAの代わりに本人確認などの登録業務を行う機関ですが、証明書の発行主体はCAです。
  • ウ(VA):証明書の有効性をリアルタイムで確認するための機関(OCSPレスポンダなど)です。
  • エ(KDC):主に共通鍵暗号方式(Kerberos認証など)で鍵を配布するサーバーのことです。

Q7. CA(認証局)が発行する「電子証明書」に含まれている情報の組み合わせとして、適切なものはどれか。

正解:イ

解説:
電子証明書は、「この公開鍵は、この人のものです」とCAが保証する書類です。したがって、中身は「所有者の情報」「所有者の公開鍵」、そしてそれを保証するための「CAによるデジタル署名」などが含まれます。

他の選択肢はなぜ不正解?
  • ア・エ(秘密鍵):秘密鍵は絶対に他人に渡してはいけないため、証明書には含まれません。
  • ウ(所有者の署名):証明書はCAが発行するものなので、付与されるのはCAの署名です。

Q8. 受信者が、送られてきた電子証明書が信頼できるCAによって発行された正当なものであるかを検証するために使用する鍵はどれか。

正解:ウ

解説:
電子証明書には「CAの秘密鍵」で作成されたデジタル署名が付いています。この署名を検証して証明書の正当性を確認するには、対となる「CAの公開鍵」が必要です。CAの公開鍵は、ブラウザなどにあらかじめ組み込まれている「ルート証明書」などから入手します。

他の選択肢はなぜ不正解?
  • ア(送信者の公開鍵):これは、証明書が正しいと確認できた「後」に、送信者の署名を検証するために使います。
  • イ(受信者の秘密鍵):関係ありません。
  • エ(CAの秘密鍵):これはCAが厳重に管理しており、受信者は持っていません。

Q9. 公開鍵暗号方式における鍵の使い分けに関する記述として、適切なものはどれか。

正解:イ

解説:
これが公開鍵暗号の基本であり、最も重要な使い分けです。
・**暗号化通信(秘匿)**: 「受信者しか開けられない」ようにするため、**「受信者の公開鍵」**でかける。
・**デジタル署名(証明)**: 「自分しか作れない」ことを示すため、**「送信者の秘密鍵」**でかける。

他の選択肢はなぜ不正解?
  • ア・ウ・エ:鍵の役割が逆、あるいは間違っています。混乱しやすいポイントなので、目的(隠したいのか、証明したいのか)と、誰が復号できるべきかを考えると整理できます。

Q10. 次のうち、PKI(公開鍵基盤)の技術が利用されているものの例として、適切でないものはどれか。

正解:エ

解説:
パスワード付きZIPファイルは、設定したパスワードを鍵として使う「共通鍵暗号方式」の一種であり、公開鍵やPKIの仕組みは使いません。

他の選択肢はなぜ不正解?
  • ア(SSL/TLS):「サーバー証明書」を使って、接続先のWebサイトが本物であることを確認します。PKIの代表例です。
  • イ(マイナンバーカード):カード内に組み込まれた「電子証明書」を使って、本人確認(公的個人認証)を行います。
  • ウ(S/MIME):メール送信者の「電子証明書」を使って、なりすまし防止や暗号化を行います。

まとめ

今回は、デジタルの世界で「信頼」を確立するための核心技術について解説しました。

デジタル署名は、送信者の「秘密鍵」で署名し、「公開鍵」で検証する技術です。完全性、真正性に加え、MACではできなかった「否認防止」を実現します。これにより、デジタルデータに対して「実印」と同等の法的効力を持たせることができます。

PKI(公開鍵基盤)は、信頼できる第三者機関である「認証局(CA)」が、「公開鍵が本物であること」を保証する社会的な仕組みです。電子証明書は、デジタルの世界における「印鑑証明書」として機能します。

この2つの技術により、インターネット上でも現実世界と同様の「信頼」を構築できるようになりました。電子契約、オンライン申請、セキュアな通信など、私たちが日々利用している多くのサービスが、この技術の上に成り立っています。

これで、暗号技術の基礎(共通鍵、公開鍵、ハッシュ、MAC、デジタル署名、PKI)は一通り網羅しました。これらは全てのセキュリティ技術の土台となります。

次回は、「鍵管理の重要性と危殆化への対応」について解説します。暗号技術がいくら強固でも、鍵の管理が杜撰では意味がありません。実務で最も重要となる鍵のライフサイクル管理について学んでいきましょう。

-暗号技術の基礎