教育・資格支援

デジタル署名の仕組みとは?暗号化との違いを図解でわかりやすく解説します

結論:デジタル署名は「改ざんされていないこと」と「本人が送ったこと」を証明する仕組み

デジタル署名は、文書が途中で書き換えられていないこと(完全性)と、確かにその人が送ったこと(真正性)を証明する技術です。
ポイントは、暗号化と鍵の使い方がちょうど逆になること。暗号化は受信者の公開鍵で行いますが、署名は送信者の秘密鍵で行います。
「中身を隠したいのか、本人だと証明したいのか」——目的が違うから、使う鍵も逆になります。
本記事では仕組み・図解・練習問題まで3分で押さえられるよう整理しました。

今回は、ITパスポートと基本情報技術者試験のセキュリティ分野でほぼ毎年出題される定番テーマ、「デジタル署名の仕組み」を、鍵の使い方からやさしく解説していきます。

「公開鍵と秘密鍵、どっちを使うのか毎回分からなくなる」「暗号化と署名の区別がつかない」——この2つの相談は本当に多いです。でも、目的から鍵の向きを考えるクセさえ付けば、もう試験で迷うことはありません。3分で完了するので、サクッといきましょう。

この記事でわかること

・デジタル署名が保証するもの(完全性・真正性)と、保証しないもの
・暗号化と署名で鍵の使い方が逆になる理由
・図解で送信側・受信側の処理の流れをひと目で理解
・ハッシュ値を使う理由と、認証局(CA)の役割
・試験で確実に1点取るための練習問題3問


1. デジタル署名とは?何を保証する仕組みか


仕組み|完全性と真正性を同時に証明する

デジタル署名とは、電子文書に対して「作成者が誰か」と「内容が変わっていないか」を証明するために付ける、電子的な署名データです。

デジタル署名が保証するのは、次の2つです。

ポイント

完全性……文書が途中で改ざんされていないこと。1文字でも書き換えられていれば検知できます。
真正性……確かに本人が作成・送信したこと。他人がなりすまして送ることはできません。

ここで注意したいのが、デジタル署名は機密性を保証しないという点です。署名を付けても文書の中身は暗号化されないので、途中で盗み見られれば内容は読めてしまいます。中身も隠したい場合は、暗号化を別途組み合わせます。


具体例|印鑑・手書きサインの電子版

紙の契約書をイメージしてください。契約書に印鑑を押したり、サインをしたりする目的は何でしょうか。

ひとつは「確かに私が同意しました」という本人の証明。もうひとつは「この内容で合意しました」という、後から書き換えさせないための証明です。ただし、印鑑を押したからといって契約書の文面が読めなくなるわけではありませんよね。

デジタル署名も、まったく同じ役割を電子文書の世界で果たします。押印やサインが紙の上でしか機能しないのに対し、デジタル署名は公開鍵暗号とハッシュ関数を使うことで、ネットワーク越しでも同じことを実現しています。


電子署名とデジタル署名の違い

混同されやすいのが「電子署名」と「デジタル署名」です。試験でもたまに区別を問われます。

項目電子署名デジタル署名
位置づけ電子的な署名全般を指す広い概念(法律用語)公開鍵暗号を使った技術方式のひとつ
具体例手書きサインの画像、タブレットへの直接サイン、デジタル署名公開鍵暗号+ハッシュ関数による署名
問われ方電子署名法など制度面と絡めて出題鍵の使い分け・処理の流れが出題

ざっくり言えば、「電子署名という大きな枠の中に、デジタル署名という技術的な実現方法がある」という関係です。この記事で扱うのは後者のデジタル署名になります。

ユウイチ
ユウイチ
電子署名の中にデジタル署名が含まれてるんだよ

講師視点|「署名すると中身も秘密になる」という誤解

僕が初学者に説明する時は以下のような伝え方をしています。

ポイント

・封筒に入れるのが暗号化、書類にハンコを押すのが署名(ハンコを押しても中身は読める)
・レシートの店名印字のイメージ(金額は誰でも読めるが、印字があるから本物だと分かる)

「デジタル署名も暗号技術を使うのだから、中身も秘密になるはず」という誤解をする方が結構多い印象です。

署名で暗号化されるのは文書そのものではなく、文書から作ったハッシュ値だけ。文書は平文のまま送られます。中身も隠したいなら暗号化と署名を併用する、と整理しておきましょう。


2. 【核心】暗号化と署名で鍵の使い方が逆になる

ここがこの記事の最重要パートです。公開鍵暗号では、鍵は必ず「公開鍵と秘密鍵のペア」で存在します。混乱の原因は、そのペアが誰のものなのかを意識していないことにあります。


暗号化のとき|受信者の鍵ペアを使う

中身を秘密にしたいときは、受信者の公開鍵で暗号化し、受信者の秘密鍵で復号します。

公開鍵は誰でも入手できるので、送りたい人は誰でも暗号化できます。しかし復号できるのは、対になる秘密鍵を持っている受信者ただ1人。だから中身が守られるわけです。


署名のとき|送信者の鍵ペアを使う

一方、本人だと証明したいときは、送信者の秘密鍵で署名し、送信者の公開鍵で検証します。

秘密鍵を持っているのは送信者本人だけなので、その秘密鍵でしか作れないデータを付けられれば「本人が作った」証拠になります。検証は誰でもできてよいので、公開鍵を使います。


なぜ逆になるのか|目的の違いから考える

2つを並べると、逆転している理由がはっきりします。

表でも整理しておきましょう。

項目暗号化(公開鍵暗号)デジタル署名
目的中身を隠す(機密性)本人証明・改ざん検知(真正性・完全性)
誰の鍵ペアか受信者の鍵ペア送信者の鍵ペア
送信側の操作受信者の公開鍵で暗号化送信者の秘密鍵で署名
受信側の操作受信者の秘密鍵で復号送信者の公開鍵で検証
中身は秘密になるかなるならない(文書は読める)

覚え方はシンプルで、隠したいなら相手の鍵、証明したいなら自分の鍵です。暗号化は「相手のポストに入れる」作業なので相手の鍵、署名は「自分のハンコを押す」作業なので自分の鍵、と考えると迷いません。

公開鍵暗号そのものの仕組みがあいまいな方は、先にこちらで基礎を押さえておくと理解が一気に進みます。

こちらもCHECK

秘密鍵方式と公開鍵方式の違いは「鍵を公開するのは受信者」で解決!

「公開鍵で暗号化して……いや、秘密鍵だったっけ?」 暗号方式の問題を解くたびに、こんなふうに手が止まっていませんか? 秘密鍵方式と公開鍵方式は、ITパスポート・基本情報技術者試験の両方で定番の頻出テー ...

続きを見る


講師視点|「誰の鍵か」を取り違えないための覚え方

僕が初学者に説明する時は以下のような伝え方をしています。

ポイント

・秘密鍵は「本人にしかできない操作」、公開鍵は「誰にでもできる確認作業」
・郵便ポストの投入口は誰でも使える(公開鍵)が、中を開ける鍵は持ち主だけ(秘密鍵)
・暗号化は相手のポストに入れる作業、署名は自分のハンコを押す作業

試験の場では「署名は受信者の公開鍵で作る」と答えてしまう方が結構多い印象です。選択肢を見る前にこれは隠す話か、証明する話か」を先に判断すると、鍵の持ち主を取り違えにくくなります。

問題文の登場人物を「送信者」「受信者」と書き出してから解くクセを付けておきましょう。


3. なぜハッシュ値を使うのか


文書全体を署名すると処理が重い

デジタル署名では、文書そのものではなくハッシュ値に対して署名します。理由のひとつは処理速度です。

公開鍵暗号は計算量が大きく、数MBの文書をまるごと処理させると時間がかかります。一方ハッシュ値は、元の文書が1KBでも1GBでも常に同じ固定長(数十バイト程度)に収まります。署名する対象を小さく固定長にできるので、文書のサイズに関係なく処理が軽く済むわけです。


1文字変わるだけで値が変わる

もうひとつの理由が、改ざん検知との相性です。ハッシュ関数は、入力が1文字でも変われば、まったく異なるハッシュ値になるという性質を持っています。

この性質があるおかげで、受信側は「文書から計算し直したハッシュ値」と「署名から取り出したハッシュ値」を突き合わせるだけで、改ざんの有無を判定できます。文書を1行ずつ比べる必要はありません。

また、署名するのは文書そのものではなくハッシュ値です。ハッシュ関数の仕組みはこちらで詳しく紹介しています。

こちらもCHECK

ハッシュ関数とは?ハッシュ値の仕組みと暗号化との違いを図解で解説

今回は、ITパスポートと基本情報技術者試験のセキュリティ分野でほぼ毎年出題される定番用語、「ハッシュ関数」を、仕組みからやさしく解説していきます。 「暗号化と何が違うのか分からない」「ハッシュ値って結 ...

続きを見る


4. デジタル署名の流れを図解で追う


送信側の3ステップ

送信側がやることは、次の3つです。

送信側の流れ

  • 送りたい文書をハッシュ関数にかけ、ハッシュ値を求める
  • そのハッシュ値を送信者の秘密鍵で暗号化する。これがデジタル署名
  • 文書とデジタル署名をセットにして送信する

署名は文書の「添え物」であって、文書を置き換えるものではありません。文書はそのまま一緒に送られます。


受信側の3ステップ

受信側は、送られてきた2つのデータをそれぞれ処理して突き合わせます。

受信側の流れ

  • 受け取ったデジタル署名を送信者の公開鍵で復号し、ハッシュ値を取り出す
  • 受け取った文書を、送信側と同じハッシュ関数にかけてハッシュ値を計算する
  • 2つのハッシュ値を比較する


一致・不一致で何が分かるか

比較の結果、2つのハッシュ値が一致すれば「改ざんされていない」かつ「送信者本人が作った」ことが同時に分かります。

本人であることまで分かるのは、その署名が送信者の公開鍵で正しく復号できたからです。対になる秘密鍵を持っているのは本人だけなので、他人には同じ署名を作れません。逆に一致しなかった場合は、途中で文書が書き換えられたか、送信者本人ではない誰かが署名した、ということになります。

段階送信側受信側
ハッシュ文書からハッシュ値を計算受け取った文書から同じ手順でハッシュ値を計算
鍵の操作ハッシュ値を暗号化して署名を作る署名を復号してハッシュ値を取り出す
使う鍵送信者の秘密鍵送信者の公開鍵
ゴール文書+署名を送信する2つのハッシュ値を比較して一致を確認する

ポイント

・署名を作るのは送信者の秘密鍵、検証するのは送信者の公開鍵
・受信側は「復号したハッシュ値」と「自分で計算したハッシュ値」を比べる
・一致すれば、改ざんなし+本人確認OKが同時に成立する


5. 認証局(CA)とデジタル証明書

ここまでの説明には、実はひとつ前提があります。「検証に使った公開鍵が、本当に送信者のものなのか」という問題です。

もし攻撃者が自分の公開鍵を「送信者の公開鍵です」と偽って配ってしまえば、攻撃者の署名が正しく検証できてしまいます。この穴をふさぐのが認証局(CA:Certification Authority)です。

認証局は、公開鍵の持ち主を審査したうえで、その公開鍵が確かに本人のものだと保証する「デジタル証明書」を発行します。証明書には持ち主の情報と公開鍵が入っていて、認証局自身のデジタル署名が付いています。この仕組み全体をPKI(公開鍵基盤)と呼びます。

試験では「公開鍵の正当性を保証するのは誰か」という形でよく問われます。「公開鍵の持ち主を保証するのは認証局」と押さえておけば十分です。

デジタル署名が実際に使われている代表例がSSL/TLSのサーバ証明書です。こちらで詳しく紹介しています。

こちらもCHECK

【図解】ハイブリッド暗号とは?SSL/TLSの正体を3分で解説

今回は、ITパスポートと基本情報技術者試験のセキュリティ分野でほぼ毎年出題される「ハイブリッド暗号方式」と「SSL/TLS」の仕組みを、図解でやさしく解説していきます。 「共通鍵と公開鍵、どっちの鍵で ...

続きを見る


6. 試験対策|練習問題で確認しよう

以下は、IPA試験の出題傾向を踏まえて作成したオリジナルの練習問題です(IPA公式の問題そのものではありません)。本番形式に慣れるための練習として活用してください。実際の試験問題はIPA公式サイトで公開されています。


練習問題①(ITパスポートレベル)

(問題) 送信者がデジタル署名を作成するときに使用する鍵はどれか。

ア.受信者の公開鍵 イ.受信者の秘密鍵 ウ.送信者の公開鍵 エ.送信者の秘密鍵

👉 正解を見る

正解:エ(送信者の秘密鍵)

解説:デジタル署名は「本人にしか作れないデータ」であることが証明の根拠になります。本人だけが持っているのは秘密鍵なので、署名の作成には送信者の秘密鍵を使います。ウの送信者の公開鍵は、受信側が署名を検証するときに使う鍵です。ア・イの受信者の鍵ペアは、中身を秘密にする暗号化のときに使うもので、署名とは目的が違います。「隠したいなら相手の鍵、証明したいなら自分の鍵」で切り分けましょう。


練習問題②(基本情報レベル)

(問題) デジタル署名によって実現できることとして、最も適切なものはどれか。

ア.通信経路を流れる文書の内容を第三者に読まれないようにする
イ.文書が改ざんされていないことと、作成者が本人であることを確認する
ウ.文書の圧縮率を高めて通信量を削減する
エ.紛失したパスワードを元の文字列に復元する

👉 正解を見る

正解:イ(改ざん検知と本人確認)

解説:デジタル署名が保証するのは完全性(改ざんされていないこと)と真正性(本人であること)の2つです。アは機密性の説明で、これはデジタル署名では実現できません。署名を付けても文書は平文のまま送られるため、中身を隠したい場合は暗号化を併用します。「暗号技術を使うのだから中身も秘密になるはず」と考えさせる典型的なひっかけです。ウの圧縮、エのパスワード復元はいずれも署名とは無関係の処理です。


練習問題③(混同しやすいポイント)

(問題) 受信側がデジタル署名を検証する手順として、最も適切なものはどれか。

ア.受け取った文書を送信者の公開鍵で復号し、その結果を署名と比較する
イ.署名を送信者の公開鍵で復号して得たハッシュ値と、受け取った文書から計算したハッシュ値を比較する
ウ.署名を受信者の秘密鍵で復号して得たハッシュ値と、受け取った文書から計算したハッシュ値を比較する
エ.受け取った文書を受信者の秘密鍵でハッシュ化し、送られてきた署名と比較する

👉 正解を見る

正解:イ

解説:受信側は「署名を復号して取り出したハッシュ値」と「文書から自分で計算したハッシュ値」という2つのハッシュ値を突き合わせます。復号に使うのは送信者の公開鍵です。アは復号の対象を取り違えており、署名を付けても文書自体は暗号化されていないので復号する対象がありません。ウは鍵の持ち主が誤りで、受信者の秘密鍵では送信者が作った署名を復号できません。エはハッシュ化に鍵を使っている点が誤りで、ハッシュ関数の計算に鍵は不要です。


7. 実務ではどう使われている?

デジタル署名は試験専用の概念ではなく、日常的に触れている技術です。たとえばWindowsやmacOSでアプリをインストールするとき、開発元が確認できるのはコード署名が付いているからです。署名がないアプリで警告が出るのは、配布元と内容の保証がないためですね。

Webサイトの鍵マークも同じ仕組みの上に成り立っています。SSL/TLSのサーバ証明書は認証局が署名した証明書で、ブラウザはその署名を検証することで「このサイトは本物か」を判定しています。クラウド利用が当たり前になった今も、電子契約サービスやソフトウェア配布の信頼はこの仕組みが支えています。

なお、本記事では試験での出題に合わせて署名の生成を「秘密鍵で暗号化する」と表現しました。実際のアルゴリズムのうちRSA以外の方式(DSAやECDSAなど)は暗号化とは異なる計算で署名を作りますが、試験対策としては上記の理解で問題ありません。


8. まとめ|一言で覚えるポイント

ポイント

・デジタル署名が保証するのは完全性と真正性(機密性は保証しない)
・署名は送信者の秘密鍵で作り、送信者の公開鍵で検証する(暗号化とは逆)
・受信側は「復号したハッシュ値」と「自分で計算したハッシュ値」を比較する

ITパスポートや基本情報の試験では、「誰の、どちらの鍵を使うか」さえ押さえておけば確実に1点取れるテーマです。応用情報以上を目指すなら、認証局の階層構造や証明書失効リスト(CRL)、タイムスタンプによる存在証明まで広げておくと、実務でも通用する理解になります。

それではまた!

一人で悩まず、相談しながら合格を目指したい方へ

「公開鍵と秘密鍵で毎回つまずく…」「参考書の説明を読んでも腑に落ちない…」
セキュリティ分野は、一度誰かに整理してもらうと一気に見通しが良くなる領域です。エンジニア歴20年・現役講師の僕が運営する無料LINEコミュニティでは、こうした用語のつまずきを気軽に質問できます。勉強法やキャリア相談もどうぞ。

▶ ITキャリアラボに参加する(無料)

ITキャリアラボ

【無料】ITの悩みを気軽に相談できるコミュニティ・ITキャリアラボ

IT業界を目指すあなたへ|「ITキャリアラボ」無料コミュニティのご案内 「IT業界に転職したいけど、何から始めればいいかわからない…」「資格の勉強が続かない…」「相談できる人がいない…」 そんな不安、 ...

続きを見る

  • この記事を書いた人
  • 最新記事

ユウイチ

20年間ソフトウェアエンジニアとして働いた後、フリーランスを経て現在は1人社長として活動。 プログラミング講師やIT教育を中心に活動しながら、趣味でゲーム開発やシナリオ作成にも挑戦中。どちらも「創ることを通じて人を笑顔にしたい」という想いから始めた、大切なライフワーク。 「創造と教育で、人生に迷う人の“自由な一歩”を支援」を理念に発信中。

-教育・資格支援