基本情報技術者試験で暗号化が出ると、共通鍵、公開鍵、秘密鍵、ハッシュ、電子署名、TLSが一気に並びます。用語だけを見ると似ていますが、試験では「何を守るための技術か」「どの鍵を使うか」「元に戻せるか」を整理できればかなり解きやすくなります。
この記事では、基本情報の暗号化で問われやすい暗号方式の違いを、科目Aの知識問題にも科目Bの読解問題にも使える形でまとめます。難しい数学の証明ではなく、選択肢を切るための実戦的な見分け方を中心に見ていきましょう。
- 共通鍵暗号方式と公開鍵暗号方式の違いがわかる
- 公開鍵と秘密鍵の使い分けを問題文から判断できる
- ハッシュ関数と暗号化の違いを説明できる
- TLSや電子署名の選択肢で迷いにくくなる
基本情報の暗号化の基本

暗号化で守るもの
暗号化は、読まれたくないデータを第三者には意味が分からない形に変換する技術です。基本情報では、暗号化そのものを細かい数式で問うよりも、通信内容を隠す、相手を確認する、改ざんに気付く、なりすましを防ぐといった目的の違いを問う形が多いです。まずは「暗号化=全部をまとめて守る魔法」と考えず、守りたいものを分けて見るのが大切です。
例えば、通信内容を盗み見されないようにするなら機密性が目的です。送られてきたデータが途中で変えられていないかを見るなら完全性が目的です。相手が本当に本人かを確かめるなら認証が目的です。電子署名のように「あとから送っていないと言わせない」性質は否認防止に関係します。この4つを先に押さえると、共通鍵、公開鍵、ハッシュ、電子証明書がばらばらの暗記事項ではなくなります。
| 目的 | 試験で見る表現 | 関係しやすい技術 |
|---|---|---|
| 機密性 | 盗聴されても内容を読めない | 共通鍵暗号方式、公開鍵暗号方式 |
| 完全性 | 改ざんを検出する | ハッシュ関数、メッセージ認証 |
| 認証 | 相手が本人か確認する | 電子証明書、電子署名 |
| 否認防止 | 送信した事実を否定しにくい | 電子署名、公開鍵基盤 |
IPAの試験要綱・シラバスでも、基本情報技術者試験の情報セキュリティ分野には暗号、認証、公開鍵基盤などが含まれます。ただし、学習の入口では公式用語をそのまま丸暗記するより、問題文の「何をしたいのか」を先に読む方が正答に近づきます。詳しいセキュリティ全体の勉強順は、基本情報技術者試験の情報セキュリティ対策ガイドも合わせて確認すると整理しやすいです。
共通鍵暗号方式の特徴
共通鍵暗号方式は、暗号化と復号に同じ鍵を使う方式です。送る側も受け取る側も同じ鍵を持っていて、その鍵でデータを閉じたり開いたりします。イメージとしては、同じ合鍵を持つ二人だけが箱を開けられる状態です。基本情報では、共通鍵暗号方式の代表的な特徴として「処理が速い」「大量データの暗号化に向く」「鍵を安全に渡す必要がある」という3点を押さえると十分です。
試験で迷いやすいのは、共通鍵が「簡単で速いから常に優秀」と見えてしまう点です。たしかにデータ本体を暗号化する速度は公開鍵暗号方式より有利ですが、事前に相手へ同じ鍵を渡す必要があります。この鍵を盗聴されると、以後の通信内容も読まれてしまう可能性があります。つまり、共通鍵暗号方式の弱点は暗号化そのものより、鍵配送にあります。
- 暗号化と復号に同じ鍵を使う
- データ本体の暗号化は高速
- 利用者が増えると鍵管理が複雑になる
- 鍵を安全に共有する方法が課題になる
例えば、AさんとBさんだけが通信するなら共通鍵は1つで済みます。しかし、Aさん、Bさん、Cさん、Dさんが互いに秘密の通信をしたい場合、組み合わせごとに別の鍵が必要になります。人数が増えるほど鍵の数が増え、誰にどの鍵を渡したのかも管理しにくくなります。基本情報の選択肢では、この「多数の相手との鍵管理が大変」という観点が、公開鍵暗号方式との比較として出やすいですね。
もう一つの見方として、共通鍵暗号方式は「同じ秘密を共有している相手同士」では強い方式です。閉じた社内システムや、すでに安全な経路で鍵を共有できている環境なら扱いやすいです。一方、初めて通信する相手や不特定多数の利用者と毎回安全に鍵を渡す場面では、公開鍵暗号方式との組み合わせが必要になります。
公開鍵暗号方式の特徴
公開鍵暗号方式は、公開鍵と秘密鍵という2つの鍵を使う方式です。公開鍵は名前の通り他人に見せてもよい鍵で、秘密鍵は本人だけが持ちます。基本情報で特に大切なのは、「受信者の公開鍵で暗号化したデータは、受信者の秘密鍵でしか復号できない」という流れです。誰の公開鍵を使うのかを間違えると、問題の意味が大きく変わります。
公開鍵暗号方式の強みは、共通鍵のように事前に秘密の鍵をこっそり渡さなくてもよいことです。送信者は、受信者が公開している公開鍵を使ってデータを暗号化できます。復号できるのは、対応する秘密鍵を持つ受信者だけです。このため、盗聴される可能性がある通信路でも鍵配送の問題を避けやすくなります。ただし、処理速度は共通鍵暗号方式より遅く、大量データをそのまま暗号化する用途には向きにくいです。
| 項目 | 共通鍵暗号方式 | 公開鍵暗号方式 |
|---|---|---|
| 鍵の数 | 同じ鍵を共有 | 公開鍵と秘密鍵のペア |
| 速度 | 速い | 比較的遅い |
| 鍵配送 | 安全な共有が課題 | 公開鍵を配布できる |
| 主な使い方 | データ本体の暗号化 | 鍵交換、署名、認証 |
「公開鍵で暗号化する」と聞くと、公開されている鍵で暗号化して本当に安全なのか不安になるかもしれません。しかし、公開鍵で閉じたものは対応する秘密鍵でしか開けられない、というペアの関係がポイントです。試験ではこの仕組みを利用して、通信相手だけが読めるようにしたり、電子署名の検証に使ったりします。公開鍵暗号方式は、暗号化だけでなく本人確認の土台にもなると考えてください。
鍵の向きで見分ける
基本情報の暗号化で一番ひっかかりやすいのは、公開鍵と秘密鍵の「向き」です。機密性を守る暗号化では、送信者が受信者の公開鍵を使って暗号化し、受信者が自分の秘密鍵で復号します。ここで送信者の公開鍵を使うわけではありません。目的は、受信者だけが読めるようにすることだからです。問題文に「Bだけが読めるようにしたい」とあれば、Bの公開鍵で暗号化する、と考えます。
一方で、電子署名では向きが逆に見えます。送信者が自分の秘密鍵で署名を作り、受信者が送信者の公開鍵で検証します。これは、受信者だけが読むためではなく、「本当にその送信者が作ったものか」「途中で改ざんされていないか」を確認するためです。秘密鍵を持っているのは送信者本人だけなので、その秘密鍵で作られた署名を公開鍵で検証できれば、本人性や改ざん検知につながります。
読ませたい相手だけに届けるなら「受信者の公開鍵で暗号化、受信者の秘密鍵で復号」。送信者本人であることを示すなら「送信者の秘密鍵で署名、送信者の公開鍵で検証」です。
選択肢で「公開鍵で復号する」と出たときは、すぐに誤りと決めつけないでください。通常の機密性を目的にした暗号化なら、公開鍵で暗号化して秘密鍵で復号します。しかし、電子署名の検証では公開鍵を使います。つまり、鍵の名前だけではなく、問題文が「秘密にしたい」のか「本人確認したい」のかを読まないといけません。ここを区別できると、基本情報の暗号化問題はかなり安定します。
ハイブリッド暗号を押さえる
実際の通信では、共通鍵暗号方式と公開鍵暗号方式を組み合わせることがよくあります。これをハイブリッド暗号方式として押さえておくと、HTTPSやTLSの理解がかなり楽になります。考え方はシンプルです。データ本体は速い共通鍵暗号方式で暗号化し、その共通鍵を安全に共有するために公開鍵暗号方式を使います。両方の長所を使うイメージですね。
例えば、ブラウザとWebサーバが安全に通信したい場合、最初から大量のページ内容や入力データを公開鍵暗号方式だけで暗号化すると効率が悪くなります。そこで、まず安全な方法で共通鍵を共有し、その後の通信は共通鍵で高速に暗号化します。基本情報の選択肢では「公開鍵暗号方式は遅いから大量データには不向き」「共通鍵暗号方式は高速だが鍵配送が課題」という2つの知識が、セットで問われやすいです。
- 公開鍵暗号方式で共通鍵を安全に渡す
- 共通鍵暗号方式で通信データを高速に暗号化する
- 速度と鍵配送の弱点を補い合う
- TLSやHTTPSの理解につながる
この組み合わせを理解しておくと、「なぜ公開鍵暗号方式だけで通信しないのか」という疑問にも答えられます。公開鍵暗号方式は便利ですが、万能ではありません。共通鍵暗号方式は速いですが、鍵を安全に渡すところが弱点です。だから、鍵交換には公開鍵暗号方式、データ本体には共通鍵暗号方式という分担が自然になります。ネットワーク分野と一緒に復習したい場合は、基本情報技術者試験のネットワーク分野攻略もつなげて読むと理解しやすいです。
基本情報の暗号化の解き方

ハッシュ関数の役割
ハッシュ関数は、入力データから固定長のハッシュ値を作る関数です。暗号化と混同されやすいですが、基本情報では「ハッシュは元に戻すためのものではない」と押さえるのが重要です。暗号化は復号によって元の平文に戻せますが、ハッシュ値から元データを復元することは基本的に想定されていません。つまり、ハッシュ関数は機密性よりも、改ざん検知や一致確認に使うものです。
例えば、ファイルをダウンロードした後、そのファイルのハッシュ値を計算し、公式が示すハッシュ値と一致するかを確認します。一致すれば、少なくともダウンロード中に内容が変わっていない可能性が高いと判断できます。パスワード保存でも、元のパスワードそのものではなくハッシュ値を保存する考え方があります。ただし、試験対策では実装上のソルトやストレッチングの深掘りより、まず「復号できない」「同じ入力なら同じ値」「少し変わると値が大きく変わる」という性質を優先してください。
| 項目 | 暗号化 | ハッシュ |
|---|---|---|
| 元に戻す | 復号できる | 復号しない |
| 主な目的 | 内容を隠す | 改ざんや一致を確認する |
| 出力 | 暗号文 | 固定長のハッシュ値 |
| 試験の見方 | 機密性 | 完全性 |
「ハッシュ化された値を復号する」という表現が出たら、かなり注意が必要です。日常会話ではハッシュを暗号化の一種のように言うこともありますが、試験では区別します。ハッシュは一方向性を利用して、元データそのものを隠すというより、同じかどうかを照合するために使われます。基本情報の暗号化で得点を安定させるには、暗号化、復号、ハッシュ化を同じ棚に入れず、それぞれの目的で整理しましょう。
電子署名と認証の違い
電子署名は、送信者本人が作成したことと、内容が途中で改ざんされていないことを確認するための仕組みです。基本情報では、電子署名を「秘密鍵で暗号化するもの」と単純に覚えるより、ハッシュ関数と公開鍵暗号方式を組み合わせていると理解すると強いです。一般的な説明では、文書からハッシュ値を作り、そのハッシュ値に送信者の秘密鍵で署名を付け、受信者が送信者の公開鍵で検証します。
ここで大事なのは、電子署名の目的が「本文を読めないようにすること」ではない点です。署名された文書そのものは、別途暗号化しなければ読める場合があります。電子署名が確認したいのは、送信者が本当にその人か、そして文書が途中で変わっていないかです。機密性を守る暗号化と、完全性・認証・否認防止に関わる電子署名を分けて考えると、選択肢のひっかけに強くなります。
- 送信者の秘密鍵で署名を作る
- 送信者の公開鍵で署名を検証する
- 文書の改ざん検知にハッシュ値を使う
- 本文を隠す機能とは目的が違う
認証という言葉も広いので注意しましょう。利用者IDとパスワードで本人確認することも認証ですし、電子証明書でサーバが本物か確認することも認証です。電子署名はその中でも、公開鍵と秘密鍵を使って作成者や改ざんの有無を確認する仕組みとして出題されます。問題文に「本人であることを確認」「改ざんされていないことを確認」「否認を防止」とあれば、電子署名や公開鍵基盤に寄せて読むとよいですね。
また、電子署名で使う公開鍵が本当に送信者のものかを確認するには、電子証明書や認証局の考え方も関係します。公開鍵を誰でも名乗れるだけでは、なりすましを防げません。だから、公開鍵と本人を結び付ける仕組みが必要になります。ここまで押さえると、署名、証明書、認証局が同じ話の流れに見えてきます。
TLSとHTTPSの流れ
TLSは、WebブラウザとWebサーバなどの通信を安全にするためのプロトコルです。HTTPSは、HTTPの通信をTLSで保護している状態と考えると理解しやすいです。基本情報では、TLSの詳細な手順を全部暗記するより、電子証明書でサーバの正当性を確認し、安全に共通鍵を共有し、その後の通信を共通鍵で暗号化する、という大枠を押さえることが重要です。
ブラウザがHTTPSサイトへ接続するとき、サーバは電子証明書を提示します。ブラウザは証明書の発行元や有効性を確認し、接続先が正しい相手かを判断します。その後、通信で使う共通鍵を安全に決めます。以降のデータのやり取りは、速度の速い共通鍵暗号方式で暗号化されます。ここでも、公開鍵暗号方式だけで全部を暗号化するのではなく、公開鍵系の仕組みと共通鍵暗号方式が役割分担しています。
ブラウザがサーバ証明書を確認し、接続先の正当性を判断します。
安全な手順で通信に使う共通鍵を決めます。
以降の通信内容を共通鍵暗号方式で保護します。
試験では、HTTPSを見たときに「暗号化されているから絶対安全」と広く考えすぎないことも大切です。TLSは通信路を保護しますが、接続した先のサイト自体が悪意あるサイトなら別問題です。また、証明書の確認を無視したり、古い方式を使ったりすればリスクは残ります。基本情報の範囲では、TLSが通信の盗聴や改ざんを防ぎやすくする仕組みであり、電子証明書、公開鍵暗号方式、共通鍵暗号方式が関係すると押さえましょう。
選択肢で迷わない軸
基本情報の暗号化問題を解くときは、用語を見た瞬間に飛びつかず、まず目的を読みます。問題文が「盗聴されても内容が分からないようにする」と言っているなら機密性です。「内容が変更されていないことを確認する」なら完全性です。「本人であることを確認する」なら認証です。「送信した事実を否定できないようにする」なら否認防止です。この目的の読み分けができると、共通鍵、公開鍵、ハッシュ、電子署名を選ぶ順番が自然になります。

次に、元に戻せるかを確認します。暗号化されたデータは、正しい鍵があれば復号して元に戻せます。ハッシュ値は、元データを復元するためのものではありません。この違いだけでも、かなりの選択肢を消せます。さらに、鍵の向きを見ます。受信者だけが読めるようにするなら受信者の公開鍵で暗号化します。送信者本人であることを示すなら送信者の秘密鍵で署名を作ります。ここまで読めば、暗記量を増やさなくても判断できます。
| 問題文の表現 | 見るべき軸 | 候補 |
|---|---|---|
| 読めないようにする | 機密性 | 暗号化、共通鍵、公開鍵 |
| 元に戻す | 復号 | 鍵を使った暗号方式 |
| 改ざんを検出する | 完全性 | ハッシュ、電子署名 |
| 本人性を確認する | 認証 | 電子署名、電子証明書 |
科目Bでセキュリティの長い文章が出た場合も、基本は同じです。文章量が多いほど、問題文の中に目的を示す言葉が隠れています。「通信相手を確認」「ファイルが変更されていないことを確認」「第三者には内容を知られないように」などの表現に線を引くつもりで読みましょう。科目Bの読解全体が不安な方は、基本情報の科目B対策で勉強順も確認しておくと、暗号化以外の文章問題にも対応しやすくなります。
まとめ
基本情報の暗号化は、共通鍵暗号方式、公開鍵暗号方式、ハッシュ関数、電子署名、TLSを別々に暗記しようとすると混乱しやすい分野です。まず、共通鍵暗号方式は速いが鍵配送が課題、公開鍵暗号方式は公開鍵と秘密鍵を使い鍵配送や署名に強い、と整理しましょう。そのうえで、ハッシュ関数は復号するものではなく、改ざん検知や一致確認に使うものだと分けて考えます。
試験で問われるポイントは、最新技術の細かい実装よりも、基本的な役割の違いです。データを隠したいなら暗号化、元に戻すなら復号、改ざんを見たいならハッシュ、本人性を示したいなら電子署名、通信全体を守る流れならTLSやHTTPSです。言葉の定義を丸暗記するだけでなく、目的と使いどころをセットで覚えると、科目Aの単発問題でも科目Bの文章問題でも安定します。
- 共通鍵は高速だが鍵共有が課題
- 公開鍵は公開鍵と秘密鍵の向きが重要
- ハッシュは復号ではなく改ざん検知に使う
- TLSは証明書、鍵共有、共通鍵通信をまとめて理解する
復習するときは、表を眺めるだけでなく、自分の言葉で説明してみるのがおすすめです。「共通鍵は同じ鍵」「公開鍵は鍵のペア」「ハッシュは元に戻さない」「署名は本人性と改ざん確認」と声に出すだけでも、試験中の判断が速くなります。あとは過去問で、問題文の目的を拾う練習を重ねれば十分です。
最後に、選択肢で迷ったら「この技術は何を保証したいのか」と自分に聞いてください。機密性、完全性、認証、否認防止のどれかに当てはめるだけで、関係ない選択肢をかなり落とせます。基本情報の暗号化は一度整理できれば得点源にしやすいので、共通鍵・公開鍵・ハッシュの3点を軸に、過去問演習で同じ判断を繰り返していきましょう。


コメント