暗号の仕組み — 盗み見られても大丈夫にする

中級の解説は準備中のため、中級の内容を表示しています。

概要 — まず全体をつかむ

初級では「鍵で施錠、2種類」と捉えました。中級では、組み合わせ方と、周辺の道具を見ます。

詳細 — 1段階ずつ追う

鍵配送問題とハイブリッド

  • 共通鍵の弱点 — 速いが、鍵をどう安全に相手へ渡すか(鍵配送問題)
  • 公開鍵の弱点 — 鍵配送を解くが、計算が遅い
  • ハイブリッド — 最初だけ公開鍵の仕組みで共通鍵(セッション鍵)を確立し、以降は速い共通鍵で。HTTPS(TLS)の基本
アニメーション『ハイブリッド暗号(鍵の受け渡し)』を開く
あなたサーバ
  • あなた通信を始める側。まず共通鍵(セッション鍵)を用意する
  • サーバ公開鍵と秘密鍵を持つ側。届いた包みを秘密鍵で開ける
「▶ 再生」で通しで見るか、「次へ」で1手ずつ進めてください。
0 / 6

共通鍵の確立には2通りあります(この違いが前方秘匿性に効く)。

  • 鍵交換(DH/ECDHE) — 双方が公開値を交換して、同じ共通鍵をその場で作り出す。使い捨てにでき前方秘匿性を持つ(現代TLSの主流)
  • 鍵転送(RSA) — 送る側が共通鍵を公開鍵で暗号化して渡す。前方秘匿性が無く、TLS1.3で廃止された旧方式

TLSの流れは「①鍵交換で共通鍵を確立 → ②以降はAES-GCMなどの共通鍵で高速通信」の順です。

暗号を支える道具

  • 共通鍵暗号 — AES-128/256など。ブロック暗号+利用モード(GCM等で認証も)
  • 公開鍵暗号 — RSA-2048/楕円曲線(ECC)。鍵交換はDH/ECDHE
  • ハッシュ — 改ざん検知・指紋(SHA-2など)
  • 電子署名 — 本物・改ざんなしの証明(秘密鍵で署名、公開鍵で検証)

実装の勘所

  • 前方秘匿性 — 使い捨て鍵で、後の鍵漏洩から過去を守る
  • 認証付き暗号(AEAD) — 暗号化と改ざん検知を一体で
  • 乱数の質 — 弱い乱数は鍵を予測可能にする(暗号の土台)
  • 鍵管理 — 生成・保管・ローテーション・失効。ここが最重要

⚠️ 危殆化と運用

  • アルゴリズムの陳腐化 — MD5・SHA-1・短い鍵は非推奨へ。更新が前提
  • 実装の穴 — 方式が正しくても、実装バグやサイドチャネルで漏れる
  • 鍵の使い回し/固定 — 使い捨てにできず前方秘匿性を失う
  • 量子計算の脅威 — 耐量子暗号(PQC)の標準化が進み、移行が始まっている

関連する知識

理解度チェック

そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。

1. HTTPSが「速い共通鍵」と「鍵を安全に渡せる公開鍵」を両取りする方法は?

2. 過去の通信を、将来鍵が漏れても解読されにくくする性質は?

3. 現代TLSで主流の、使い捨て鍵で前方秘匿性を持つ鍵交換方式を英字5文字で答えてください。

4. 暗号化と改ざん検知を一体で行う「認証付き暗号」を、英字4文字の略語で答えてください。

5. 共通鍵暗号の主な弱点として本文が挙げるのはどれ?

6. 公開鍵暗号の弱点として本文が挙げるのは?

7. TLS1.3で廃止された、前方秘匿性を持たない共通鍵確立の方式は?

8. TLSの基本的な流れとして正しいのは?