公開鍵暗号 — 2つの鍵で、鍵配送問題を解く

概要 — まず全体をつかむ

初級では「2つの鍵・南京錠」で捉えました。中級では、なぜ安全か・3つの使い道を正確に見ます。

詳細 — 1段階ずつ追う

何が「難しい」ので安全か

公開鍵暗号は、「片方向は簡単だが逆は極めて難しい」数学に依ります。

  • RSA — 大きな数の素因数分解の困難さ
  • 楕円曲線(ECC) — 楕円曲線上の離散対数の困難さ。同じ強度を短い鍵で(省電力・高速)
  • 鍵長の対応 — RSA-2048 ≒ ECC-224 程度、のように対応づく

「公開鍵から秘密鍵を計算できない」のは、この問題が現実的な時間で解けないからです。

この部分をもっと深く(上級

公開鍵暗号は、「片方向は簡単だが、逆は極めて難しい」数学に依ります。

  • RSA — 大きな数の素因数分解の困難さ
  • 楕円曲線(ECC) — 楕円曲線上の離散対数の困難さ。同じ強度を短い鍵で(省電力・高速)
  • 鍵長と強度 — RSA-2048 ≒ ECC-224 程度、のように対応づく

「公開鍵から秘密鍵を計算できない」のは、この問題が現実的な時間で解けないから、が根拠です。

やさしく言うと(初級

鍵がペアになっています。

  • 公開鍵 — みんなに配ってよい鍵。施錠(暗号化)専用
  • 秘密鍵 — 本人だけが持つ鍵。開錠(復号)専用

南京錠にたとえると分かりやすい。開いた南京錠(公開鍵)をばらまいておき、誰でも施錠できる。でも開ける鍵(秘密鍵)は本人だけが持つ——だから誰でも「その人宛」に安全に送れます。

アニメーション『公開鍵暗号(南京錠)』を開く
公開鍵暗号 — 南京錠にたとえると受け手(本人)南京錠と秘密鍵の持ち主秘密鍵本人だけが持つ・開錠専用①「開いた南京錠(公開鍵)」を、みんなに配る公開鍵は誰でも受け取ってよい送り手(誰でもよい)事前に鍵を共有していない相手でも② 配られた南京錠で施錠(暗号化)平文こんにちは施錠暗号文X9#a?+…③ 秘密鍵を持つ本人だけが開錠暗号文X9#a?+…秘密鍵で開錠平文こんにちは事前に鍵を共有しなくても安全 = 鍵配送問題を解く公開鍵で施錠、秘密鍵で開錠。公開鍵は配ってよい

3つの使い道

同じ鍵ペアを、用途を変えて使います。

  • 暗号化 — 相手の公開鍵で施錠、相手の秘密鍵だけが開ける
  • 鍵交換(DH/ECDHE) — 互いの公開値から同じ共通鍵を作る。使い捨てにすれば前方秘匿性を持つ
  • 電子署名 — 秘密鍵で署名、公開鍵で検証(別ユニット)
  • ハイブリッド — 遅いので、鍵交換で共通鍵を確立し、本体は速い共通鍵で(HTTPSの基本)
この部分をもっと深く(上級

公開鍵は「暗号化」以外に、鍵交換署名にも使います。

  • 鍵交換(DH/ECDHE) — 互いの公開値から、同じ共通鍵を安全に作る
  • ハイブリッドの必然 — 公開鍵は遅いので、共通鍵(セッション鍵)を渡す用途に限り、本体は共通鍵で
  • 前方秘匿性 — 使い捨ての鍵交換(ECDHE)で、後に長期鍵が漏れても過去を守る
  • 署名にも同じ鍵ペア — 秘密鍵で署名、公開鍵で検証(別記事)
アニメーション『ディフィー・ヘルマン鍵交換』を開く
A盗聴者(公開路)B
  • A秘密の数 a を持つ。公開値だけを送る
  • 盗聴者(公開路)公開路を流れる値は全部見えるが、秘密 a・b は見えない
  • B秘密の数 b を持つ。公開値だけを送る
AとBが公開値だけを交換し、各自の秘密と混ぜて『同じ共有秘密』に到達します。「▶ 再生」または「次へ」で進めてください。
0 / 7
やさしく言うと(初級

共通鍵は「同じ鍵をどう渡すか」で悩みました。公開鍵は、公開鍵を堂々と配ってよいので、事前に秘密の経路で鍵を共有しなくて済みます。

代表は RSA楕円曲線暗号(ECC)。ただし処理は遅いので、実際は「公開鍵で共通鍵を渡し、以降は速い共通鍵で通信」と組み合わせます(HTTPSの仕組み)。

⚠️ 気をつける

  • 遅い — 大量データには不向き(だから共通鍵と併用)
  • 公開鍵が本物か — 偽物をつかまされたら台無し。証明書で保証する
  • 秘密鍵の保護 — 漏れたら全て破られる。乱数の質も安全の土台
  • 将来の量子脅威 — 十分な量子計算はRSA/ECCを破りうる。耐量子暗号(PQC)への移行が始まっている
この部分をもっと深く(上級
  • 量子計算(Shor) — RSA/ECCを効率的に破りうる → 耐量子暗号(PQC) への移行が進む
  • 弱い乱数/パラメータ — 素数生成や曲線選定の不備で破られる
  • サイドチャネル — 計算時間・消費電力から秘密鍵が漏れる
  • 「今盗んで後で解読」(harvest-now, decrypt-later) — 暗号化通信を保存し、将来の量子で解く懸念。対抗の本命はPQC(耐量子鍵交換)(前方秘匿性は長期鍵の漏洩には有効だが、記録済みのECDHE自体を量子で解かれるのは防げないため、この脅威にはPQCが要る)
やさしく言うと(初級
  • 遅い — 大量データには不向き(だから共通鍵と併用)
  • 公開鍵が本物か? — 偽物の公開鍵をつかまされたら台無し。証明書で本物だと保証する
  • 秘密鍵の保護 — 秘密鍵が漏れたら全て破られる

関連する知識

理解度チェック

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

1. 秘密鍵で処理し公開鍵で検証する、公開鍵暗号のもう一つの主な用途は?

2. 公開鍵暗号が「安全」といえる根拠に最も近いのは?

3. 楕円曲線暗号(ECC)がRSAと比べて実務的に有利とされる点はどれ?

4. 鍵交換(DH/ECDHE)で毎回使い捨ての鍵を使うと得られる、過去の通信が後から秘密鍵漏洩しても守られる性質はどれ?

5. HTTPSが、公開鍵暗号で共通鍵を確立し、本体データは共通鍵暗号で送る理由はどれ?

6. 十分に強力な量子計算がRSAやECCを破りうるという脅威に備え、移行が始まっている暗号の総称はどれ?

7. RSAの安全性が根拠にしている「大きな数を素数の積に分解するのは難しい」という数学問題を、漢字5文字で何という?

8. 楕円曲線を使い、RSAより短い鍵で同等の強度を得られる公開鍵暗号の略称を英字3文字で答えてください。