暗号化技術
暗号化と復号の基本
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 |
| 処理速度 | 速い | 遅い |
| 鍵の受け渡し | 安全に届ける手段が必要 | 公開鍵は自由に配布でき安全 |
| 向いている用途 | 大量データの暗号化 | 鍵の交換、少量データの暗号化 |
試験で出るポイント
ハイブリッド暗号方式
Section titled “ハイブリッド暗号方式”共通鍵暗号方式は速いけれど鍵の受け渡しが課題、公開鍵暗号方式は鍵の受け渡しは安全だけれど遅い――この2つの方式の「いいとこ取り」をしたのがハイブリッド暗号方式です。
ハイブリッド暗号方式の仕組みは次のとおりです。
- 送信者が共通鍵をランダムに生成する
- データ本体は共通鍵で暗号化する(高速に処理できる)
- その共通鍵を受信者の公開鍵で暗号化する(安全に鍵を届けられる)
- 暗号化されたデータと暗号化された共通鍵をセットで送信する
- 受信者は自分の秘密鍵で共通鍵を復号し、その共通鍵でデータ本体を復号する
つまり、「大量のデータは共通鍵で高速に暗号化し、その共通鍵自体は公開鍵で安全に届ける」という組み合わせです。現在のインターネット通信(HTTPS)では、このハイブリッド暗号方式が広く使われています。
試験で出るポイント
ハッシュ関数
Section titled “ハッシュ関数”ハッシュ関数は、暗号化とは異なる仕組みですが、セキュリティにおいて非常に重要な技術です。
ハッシュ関数とは、任意の長さのデータを入力すると、**固定長のデータ(ハッシュ値)**を出力する関数のことです。出力されるハッシュ値は「メッセージダイジェスト」とも呼ばれます。
たとえば、「こんにちは」という短いテキストでも、数百ページの文書でも、同じハッシュ関数に通すと同じ長さのハッシュ値が出力されます。
ハッシュ関数の重要な特徴
Section titled “ハッシュ関数の重要な特徴”ハッシュ関数には、次の3つの重要な特徴があります。
- 一方向性:ハッシュ値からもとのデータを逆算することはできません。暗号化と異なり「元に戻す」ことを想定していないのが大きな違いです
- 同じデータなら常に同じハッシュ値:同じ入力からは必ず同じハッシュ値が得られます
- 衝突耐性:異なるデータから同じハッシュ値が生成される可能性は極めて低くなるよう設計されています
ハッシュ関数の用途
Section titled “ハッシュ関数の用途”ハッシュ関数は次のような場面で活用されます。
- データの改ざん検知:送信前と受信後のハッシュ値を比較し、データが途中で変更されていないか確認する
- パスワードの保管:パスワードをそのまま保存するのではなく、ハッシュ値に変換して保存する。万が一データベースが流出しても、元のパスワードがわからない
試験で出るポイント
ディスク暗号化とファイル暗号化
Section titled “ディスク暗号化とファイル暗号化”ここまでは通信中のデータを守る暗号化を見てきましたが、コンピュータに保存されているデータを守る暗号化も重要です。
ディスク暗号化とは、ハードディスクやSSDなどの記憶装置全体を暗号化する技術です。パソコンの盗難や紛失があっても、暗号化されていればディスク内のデータを読み取ることができません。Windowsの「BitLocker」やmacOSの「FileVault」が代表的なディスク暗号化ツールです。
ファイル暗号化とは、特定のファイルやフォルダを個別に暗号化する技術です。ディスク暗号化がストレージ全体を保護するのに対し、ファイル暗号化は必要なファイルだけを選んで暗号化できます。メールの添付ファイルを暗号化して送る場合などに使われます。
| 方式 | 対象 | 特徴 |
|---|---|---|
| ディスク暗号化 | 記憶装置全体 | PC紛失・盗難時にデータ全体を保護 |
| ファイル暗号化 | 個別のファイル | 特定のファイルだけを選んで保護 |
試験で出るポイント