暗号化技術
暗号化と復号の基本
Section titled “暗号化と復号の基本”インターネット上でデータをやり取りするとき、通信の途中で第三者にデータを盗み見られるリスクがあります。たとえば、ネットショッピングでクレジットカード番号を送信する場面を想像してみてください。もしそのデータがそのまま読める状態で送られていたら、悪意のある第三者に番号を知られてしまいます。
こうしたリスクを防ぐために使われるのが暗号化です。暗号化とは、もとのデータ(平文(ひらぶん)と呼びます)を、特別なルール(アルゴリズム)と鍵を使って、第三者には意味のわからないデータ(暗号文)に変換することです。
暗号文を受け取った正当な相手は、対応する鍵を使って暗号文をもとの平文に戻します。この操作を復号といいます。暗号化は情報セキュリティの概念で学んだ機密性を確保するための代表的な手段です。
試験で出るポイント
「暗号化=平文を暗号文に変換すること」「復号=暗号文を平文に戻すこと」という基本の定義は正確に押さえておきましょう。「復号化」ではなく「復号」が正式な用語です。
共通鍵暗号方式(秘密鍵暗号方式)
Section titled “共通鍵暗号方式(秘密鍵暗号方式)”暗号化の方式にはいくつかの種類があります。まず最も基本的な方式が共通鍵暗号方式です。秘密鍵暗号方式とも呼ばれます。
共通鍵暗号方式では、暗号化と復号に**同じ鍵(共通鍵)**を使います。送信者と受信者が同じ鍵を持っていて、送信者がその鍵でデータを暗号化し、受信者が同じ鍵で復号するという仕組みです。
身近な例でいえば、同じ鍵で施錠・解錠できる南京錠のようなイメージです。
共通鍵暗号方式の特徴
Section titled “共通鍵暗号方式の特徴”- 処理速度が速い:大量のデータを暗号化するのに向いています
- 鍵の管理が大変:通信する相手ごとに異なる鍵が必要です
- 鍵の受け渡しが課題:安全に相手へ鍵を届ける方法を別途考えなければなりません
必要な鍵の数の計算
Section titled “必要な鍵の数の計算”共通鍵暗号方式では、通信する2人の間に1つの鍵が必要です。したがって、N人が互いに秘密の通信を行う場合、必要な鍵の数は次の式で求められます。
N(N−1) ÷ 2
たとえば、5人で互いに通信する場合は 5×4÷2 = 10個 の鍵が必要です。人数が増えると鍵の数が急激に増え、管理が非常に大変になることがわかります。
公開鍵暗号方式
Section titled “公開鍵暗号方式”共通鍵暗号方式の「鍵の受け渡しが難しい」という課題を解決するために考え出されたのが公開鍵暗号方式です。
公開鍵暗号方式では、公開鍵と秘密鍵という2つの鍵をペアで使います。この2つの鍵には「一方で暗号化したものは、もう一方でしか復号できない」という数学的な関係があります。
仕組みは次のとおりです。
- 受信者が公開鍵と秘密鍵のペアを作成します
- 受信者は公開鍵を公開します(誰でも入手できる状態にする)
- 送信者は受信者の公開鍵で暗号化してデータを送ります
- 受信者は自分だけが持つ秘密鍵で復号します
公開鍵は文字どおり公開されているため、鍵の受け渡しに悩む必要がありません。また、暗号文を復号できるのは秘密鍵を持つ受信者だけなので、安全性が保たれます。
公開鍵暗号方式の特徴
Section titled “公開鍵暗号方式の特徴”- 鍵の受け渡しが安全:公開鍵は誰に知られても問題ありません
- 鍵の管理が容易:各自が公開鍵と秘密鍵の1ペアを持てばよい
- 処理速度が遅い:共通鍵暗号方式に比べて計算量が多い
必要な鍵の数の計算
Section titled “必要な鍵の数の計算”公開鍵暗号方式では、1人あたり公開鍵と秘密鍵の2つが必要です。したがって、N人の場合に必要な鍵の数は次の式で求められます。
2N
たとえば、5人の場合は 2×5 = 10個 の鍵で済みます。100人になっても200個で済むため、共通鍵暗号方式に比べて管理がはるかに楽です。
共通鍵暗号方式と公開鍵暗号方式の比較
Section titled “共通鍵暗号方式と公開鍵暗号方式の比較”2つの方式を対比して整理しておきましょう。
| 比較項目 | 共通鍵暗号方式 | 公開鍵暗号方式 |
|---|---|---|
| 使う鍵 | 暗号化と復号に同じ鍵 | 公開鍵で暗号化、秘密鍵で復号 |
| 鍵の数(N人) | N(N−1) ÷ 2 | 2N |
| 処理速度 | 速い | 遅い |
| 鍵の受け渡し | 安全に届ける手段が必要 | 公開鍵は自由に配布でき安全 |
| 向いている用途 | 大量データの暗号化 | 鍵の交換、少量データの暗号化 |
試験で出るポイント
共通鍵と公開鍵の違いは最頻出テーマです。「共通鍵=速いが鍵の管理が大変」「公開鍵=鍵の管理は楽だが遅い」という特徴を対比で覚えましょう。また、鍵の数の計算問題も出題されます。N人の場合、共通鍵は N(N−1)÷2、公開鍵は 2N です。
ハイブリッド暗号方式
Section titled “ハイブリッド暗号方式”共通鍵暗号方式は速いけれど鍵の受け渡しが課題、公開鍵暗号方式は鍵の受け渡しは安全だけれど遅い――この2つの方式の「いいとこ取り」をしたのがハイブリッド暗号方式です。
ハイブリッド暗号方式の仕組みは次のとおりです。
- 送信者が共通鍵をランダムに生成する
- データ本体は共通鍵で暗号化する(高速に処理できる)
- その共通鍵を受信者の公開鍵で暗号化する(安全に鍵を届けられる)
- 暗号化されたデータと暗号化された共通鍵をセットで送信する
- 受信者は自分の秘密鍵で共通鍵を復号し、その共通鍵でデータ本体を復号する
つまり、「大量のデータは共通鍵で高速に暗号化し、その共通鍵自体は公開鍵で安全に届ける」という組み合わせです。現在のインターネット通信(HTTPS)では、このハイブリッド暗号方式が広く使われています。
試験で出るポイント
ハイブリッド暗号方式では「データは共通鍵で暗号化」「共通鍵は公開鍵で暗号化」という2段階の仕組みを理解しておきましょう。どちらの鍵で何を暗号化するかが問われます。
ハッシュ関数
Section titled “ハッシュ関数”ハッシュ関数は、暗号化とは異なる仕組みですが、セキュリティにおいて非常に重要な技術です。
ハッシュ関数とは、任意の長さのデータを入力すると、**固定長のデータ(ハッシュ値)**を出力する関数のことです。出力されるハッシュ値は「メッセージダイジェスト」とも呼ばれます。
たとえば、「こんにちは」という短いテキストでも、数百ページの文書でも、同じハッシュ関数に通すと同じ長さのハッシュ値が出力されます。
ハッシュ関数の重要な特徴
Section titled “ハッシュ関数の重要な特徴”ハッシュ関数には、次の3つの重要な特徴があります。
- 一方向性:ハッシュ値からもとのデータを逆算することはできません。暗号化と異なり「元に戻す」ことを想定していないのが大きな違いです
- 同じデータなら常に同じハッシュ値:同じ入力からは必ず同じハッシュ値が得られます
- 衝突耐性:異なるデータから同じハッシュ値が生成される可能性は極めて低くなるよう設計されています
ハッシュ関数の用途
Section titled “ハッシュ関数の用途”ハッシュ関数は次のような場面で活用されます。
- データの改ざん検知:送信前と受信後のハッシュ値を比較し、データが途中で変更されていないか確認する(認証技術で解説するデジタル署名でも活用されます)
- パスワードの保管:パスワードをそのまま保存するのではなく、ハッシュ値に変換して保存する。万が一データベースが流出しても、元のパスワードがわからない
試験で出るポイント
ハッシュ関数は「元のデータに戻せない(一方向性)」「同じデータなら常に同じハッシュ値になる」という2つの性質がよく出題されます(2019年 問93)。暗号化は復号できますが、ハッシュ関数は復号できないという違いを押さえましょう。
ディスク暗号化とファイル暗号化
Section titled “ディスク暗号化とファイル暗号化”ここまでは通信中のデータを守る暗号化を見てきましたが、コンピュータに保存されているデータを守る暗号化も重要です。
ディスク暗号化とは、ハードディスクやSSDなどの記憶装置全体を暗号化する技術です。パソコンの盗難や紛失があっても、暗号化されていればディスク内のデータを読み取ることができません。Windowsの「BitLocker」やmacOSの「FileVault」が代表的なディスク暗号化ツールです。
ファイル暗号化とは、特定のファイルやフォルダを個別に暗号化する技術です。ディスク暗号化がストレージ全体を保護するのに対し、ファイル暗号化は必要なファイルだけを選んで暗号化できます。メールの添付ファイルを暗号化して送る場合などに使われます。
| 方式 | 対象 | 特徴 |
|---|---|---|
| ディスク暗号化 | 記憶装置全体 | PC紛失・盗難時にデータ全体を保護 |
| ファイル暗号化 | 個別のファイル | 特定のファイルだけを選んで保護 |
試験で出るポイント
ディスク暗号化とファイル暗号化の違いは、暗号化する「対象の範囲」です。記憶装置全体か、個別のファイルかを区別しておきましょう。
過去問で実力チェック
Section titled “過去問で実力チェック”過去問に挑戦
Q. ディジタル署名やブロックチェーンなどで利用されているハッシュ関数の特徴に関する,次の記述中の a,b に入れる字句の適切な組合せはどれか。
ハッシュ関数によって,同じデータは, [ a ] ハッシュ値に変換され,変換後のハッシュ値から元のデータを復元することが [ b ] 。
| a | b | |
|---|---|---|
| ア | 都度異なる | できない |
| イ | 都度異なる | できる |
| ウ | 常に同じ | できない |
| エ | 常に同じ | できる |
- ア 都度異なる / できない
- イ 都度異なる / できる
- ウ 常に同じ / できない
- エ 常に同じ / できる
解答(令和元年)
正解: ウ
Q. 公開鍵暗号方式では,暗号化のための鍵と復号のための鍵が必要となる。4人が相互に通信内容を暗号化して送りたい場合は,全部で8個の鍵が必要である。このうち,非公開にする鍵は何個か。
- ア 1
- イ 2
- ウ 4
- エ 6
解答(令和2年)
正解: ウ
Q. IoTデバイス群とそれを管理するIoTサーバで構成されるIoTシステムがある。全てのIoTデバイスは同一の鍵を用いて通信の暗号化を行い,IoTサーバではIoTデバイスがもつ鍵とは異なる鍵で通信の復号を行うとき,この暗号技術はどれか。
- ア 共通鍵暗号方式
- イ 公開鍵暗号方式
- ウ ハッシュ関数
- エ ブロックチェーン
解答(令和3年)
正解: イ
Q. 公開鍵暗号方式で使用する鍵に関する次の記述中のa, bに入れる字句の適切な組合せはどれか。
それぞれ公開鍵と秘密鍵をもつA社とB社で情報を送受信するとき,他者に通信を傍受されても内容を知られないように,情報を暗号化して送信することにした。
A社からB社に情報を送信する場合,A社は[ a ]を使って暗号化した情報をB社に送信する。B社はA社から受信した情報を[ b ]で復号して情報を取り出す。
| a | b | |
|---|---|---|
| ア | A社の公開鍵 | A社の公開鍵 |
| イ | A社の公開鍵 | B社の秘密鍵 |
| ウ | B社の公開鍵 | A社の公開鍵 |
| エ | B社の公開鍵 | B社の秘密鍵 |
- ア A社の公開鍵 / A社の公開鍵
- イ A社の公開鍵 / B社の秘密鍵
- ウ B社の公開鍵 / A社の公開鍵
- エ B社の公開鍵 / B社の秘密鍵
解答(令和4年)
正解: エ
Q. 暗号化方式の特徴について記した表において,表中の a〜d に入れる字句の適切な組合せはどれか。
| 暗号方式 | 鍵の特徴 | 鍵の安全な配布 | 暗号化/複合の 相対的な処理速度 |
|---|---|---|---|
| [ a ] | 暗号化鍵と復号鍵が異なる | 容易 | [ c ] |
| [ b ] | 暗号化鍵と復号鍵が同一 | 難しい | [ d ] |
| a | b | c | d | |
|---|---|---|---|---|
| ア | 共通鍵暗号方式 | 公開鍵暗号方式 | 遅い | 速い |
| イ | 共通鍵暗号方式 | 公開鍵暗号方式 | 速い | 遅い |
| ウ | 公開鍵暗号方式 | 共通鍵暗号方式 | 遅い | 速い |
| エ | 公開鍵暗号方式 | 共通鍵暗号方式 | 速い | 遅い |
- ア 共通鍵暗号方式 / 公開鍵暗号方式 / 遅い / 速い
- イ 共通鍵暗号方式 / 公開鍵暗号方式 / 速い / 遅い
- ウ 公開鍵暗号方式 / 共通鍵暗号方式 / 遅い / 速い
- エ 公開鍵暗号方式 / 共通鍵暗号方式 / 速い / 遅い
解答(令和6年)
正解: ウ
Q. Aさんは,Bさんから次の4種類のメッセージを受け取った。Aさんが,受け取ったメッセージを復号して読むことができるものだけを全て挙げたものはどれか。
a AさんとBさんとの共通鍵で暗号化したメッセージ
b Aさんの公開鍵で暗号化したメッセージ
c Bさんの公開鍵で暗号化したメッセージ
d Bさんの秘密鍵で暗号化したメッセージ
- ア a,b,d
- イ a,c,d
- ウ b,d
- エ c,d
解答(令和7年)
正解: ア

