量子暗号・量子鍵配送(QKD)の仕組み光子、盗聴検知、ワンタイムパッドを理解する
HTTPS、マイナンバーカード、PDF電子署名を例に、共通鍵・公開鍵・ハッシュ・PKI・認証局・証明書チェーン・失効確認とQKD・PQCを体系的に解説。BB84とワンタイムパッドの操作ラボ付き。
最初に押さえる結論
量子の力で暗号文を高速計算するのではなく、盗聴を検知しながら「鍵」を共有する。
量子鍵配送(QKD: Quantum Key Distribution)は、光子などの量子状態を使って、送信者と受信者が秘密鍵の材料を安全に共有する技術です。実際のデータの暗号化には、通常の計算機上で動くワンタイムパッドなどの暗号技術を組み合わせます。
QKD
秘密鍵を共有する
盗聴検知
測定の影響を誤り率で推定
OTP
同じ長さの鍵でXOR暗号化
身近なサービスから暗号を整理する:何を守るための技術?
まず、スマートフォンで買い物をするときのHTTPS、マイナンバーカードを使ったe-Tax、取引先から届く電子署名付きPDFを思い浮かべてください。同じ「暗号技術」でも、通信を読めなくする、鍵を共有する、相手や文書を確かめるは別の仕事です。
| 実際に見かける場面 | 使われる技術 | 守っているもの・役割 |
|---|---|---|
| ネット通販・銀行のHTTPS | TLS:ECDHEなどの鍵合意、証明書による署名検証、AES-GCM等の共通鍵暗号 | 相手のサーバーを確かめ、通信の暗号鍵を作り、送受信データを保護する |
| スマホやPCの保存データ | AESなどの共通鍵暗号 | 大量のデータを効率よく読めなくする。実際の方式や鍵管理は製品による |
| マイナンバーカードでe-Tax申告 | 署名用電子証明書・カード内秘密鍵・電子署名 | 誰が申請したか、申請データが改ざんされていないかを確かめる |
| マイナポータルへのログイン | 利用者証明用電子証明書による認証 | ログインしようとしている人を確認する。申請書への電子署名とは目的が異なる |
| 電子署名付きのPDF契約書 | ハッシュ関数・公開鍵方式の電子署名・電子証明書 | 署名者と文書の変更有無を検証する。PDF本文を秘密にする暗号化とは別 |
| 専用光回線で拠点間の鍵を共有 | QKD(量子鍵配送) | 光子などの状態を利用して秘密鍵の材料を共有し、盗聴の影響を評価する |
| 将来の量子計算機に備えるTLSや署名 | PQC(ML-KEM、ML-DSAなど) | 専用の量子通信設備を使わず、鍵確立や署名を耐量子方式に移行する |
暗号化=内容を読めなくする
電子署名=作成者・改ざんを検証する
同じ「公開鍵」を使う場面でも、暗号化では受信者の公開鍵で暗号化し秘密鍵で復号するのが基本形、電子署名では署名者の秘密鍵で署名を生成し公開鍵で検証します。現在のTLS 1.3では、通信鍵の確立にECDHE等を使い、証明書と署名でサーバーを認証する、という複数の機能の組み合わせが基本です。
- ① CAがサーバーの公開鍵とドメイン名を確認し、証明書へ電子署名(発行時)
- ② サーバーから証明書と鍵共有情報を受信。ブラウザは証明書の署名・名前・期限などを検証
- ③ ブラウザとサーバーがECDHE等から共通の通信鍵を導出
- ④ HTTPのリクエスト・レスポンスをAES-GCMなどで暗号化・完全性保護
CAとブラウザが毎回直接通信するわけではありません。TLS 1.3の一般的な流れを簡略化しています。
マイナンバーカード:e-Taxの申告
マイナンバーカード:マイナポータル
- ① 署名者がPDFの対象データをハッシュ化し、秘密鍵で署名値を生成
- ② 署名済みPDF・署名値・電子証明書を受信者へ送付
- ③ 受信者はCAの信頼、証明書の有効性、署名値、PDFのハッシュを検証
- ④ 署名後に変更された箇所の有無を確認。PDF本文が暗号化されるとは限らない
電子署名の検証では証明書チェーン、失効状態、署名時刻なども重要です。
公的な説明は マイナンバーカード総合サイト(2種類の電子証明書)、AdobeのPDFデジタル署名解説、CloudflareのTLSハンドシェイク解説も参考になります。
暗号技術の全体地図:何を保証したいのかから選ぶ
「暗号」はひとつの機能ではありません。機密性・完全性・真正性・否認防止をどの技術が支えるか、最初に整理します。認可や可用性は暗号化だけでは実現できません。
機密性:秘密を読ませない
完全性:改ざんを見つける
真正性:誰が送ったか確認する
否認防止:署名を後から否定しにくくする
| 技術 | 入力と出力 | 代表的な用途 |
|---|---|---|
| 共通鍵暗号 | 平文+共通鍵 → 暗号文 | HTTPSのアプリデータ、ストレージ |
| 公開鍵暗号・KEM/鍵合意 | 鍵ペア等から共有秘密を確立 | TLSの鍵確立、PQCのML-KEM |
| ハッシュ関数 | 任意長データ → 固定長のダイジェスト | ファイルの照合、署名対象の要約 |
| MAC/HMAC | メッセージ+共有鍵 → 認証タグ | 共有秘密を持つ当事者間の改ざん検知 |
| 電子署名 | 署名者の秘密鍵で署名/公開鍵で検証 | 電子契約、e-Tax、証明書の署名 |
| 電子証明書/PKI | 公開鍵+主体情報+CAの署名 | 鍵が誰のものかを判断する |
| QKD | 量子通信と認証済み古典通信 → 鍵素材 | 拠点間の秘密鍵共有 |
認証局(CA)とPKI:公開鍵が本物だと分かる理由
公開鍵暗号だけでは「この公開鍵が本当に銀行のWebサイトのものか」を判断できません。攻撃者が偽の公開鍵を渡す中間者攻撃に対抗するため、公開鍵と主体の結び付きを電子証明書で表す仕組みがPKI(Public Key Infrastructure:公開鍵基盤)です。
- ① 運営者が秘密鍵・公開鍵のペアを用意し、証明書の発行を申請
- ② CAがドメイン管理権などを検証し、公開鍵・ドメイン名・期限等を含む証明書に署名
- ③ サーバーはTLS通信時に証明書(必要な中間証明書を含む)を提示
- ④ ブラウザが信頼するルートCAまで署名の連鎖を検証し、アクセス先ホスト名と期限などを確認
ブラウザがCAへ毎回証明書を問い合わせるという意味ではありません。失効確認はOCSPやCRL等の方式・実装によって異なります。
ルートCA(Root CA)
中間CA(Intermediate CA)
RA(登録局)
CRL/OCSP(失効確認)
証明書チェーンは「サーバー証明書 → 中間CA証明書 → ルートCA証明書」という信頼の連鎖です。署名の検証だけでなく、サーバー名との一致、用途、有効期間、失効状態などを総合して確認します。CAが発行したという事実だけで、接続先企業の事業内容や取引の安全まで保証されるわけではありません。
電子署名・電子証明書・本人認証を横断して理解する
- ① e-Tax等:申請内容のハッシュ等をカード内の署名用秘密鍵で署名
- ② 申請先:署名用証明書で公開鍵を確認し、署名と文書の改ざん有無を検証
- ③ マイナポータル等:利用者証明用証明書と対応する秘密鍵で本人認証
- ④ 両用途で秘密鍵は原則カード内に保持。暗証番号は鍵利用のための確認に使う
制度・アプリにより詳細フローは異なります。署名用と利用者証明用の証明書は目的が違います。
PDFへの電子署名も同じ土台にあります。署名値だけでは「どの公開鍵で検証すればよいか」「その公開鍵が誰のものか」が解決しません。そこで電子証明書とPKIを組み合わせ、署名の検証に加えて証明書チェーン・失効・署名時刻なども評価します。
実務での選択:どの技術をどこに使うか
WebサイトをHTTPSにしたい
重要なPDFの署名を検証したい
APIリクエストの改ざんを見つけたい
量子計算機に備えたい
1. まず暗号の基本:鍵を隠して共有する難しさ
例えば、病院Aと研究機関Bが機密データを送る状況を考えます。平文は読めるデータ、暗号文は鍵を使って変換されたデータ、共通鍵は暗号化と復号に同じ値を使う鍵です。AESのような共通鍵暗号は高速ですが、その鍵をAとBがどうやって安全に共有するかが重要になります。
共通鍵暗号(AESなど)
公開鍵暗号(RSA・楕円曲線など)
例えば、普段のHTTPSではTLSが鍵合意と共通鍵暗号を組み合わせます。QKDは、そのうち鍵共有に関わる課題に光の量子的性質を利用するアプローチです。対して、量子計算機でも破りにくい数学的問題を使う耐量子計算機暗号(PQC)は別の発想です。
2. 光子・量子状態・基底とは? ゼロから理解する
光子(photon)は光を量子として扱うときの単位です。BB84と呼ばれるQKDの基本方式では、光子の偏光などの状態を利用してビット情報を表します。ここでは「+基底」と「×基底」の2種類を使うモデルで考えます。
+基底(直線基底)
×基底(斜め基底)
基底の向きを視覚化する模式図
↔
+基底 / 0
↕
+基底 / 1
↗
×基底 / 0
↖
×基底 / 1
光の偏光を説明する概念図です。実装では時間ビン・位相などを使う方式もあります。矢印は厳密な状態ベクトルの記法ではありません。
盗聴者が送信時の基底を知らずに光子を測定すると、正しい基底を偶然選ぶ場合もありますが、間違えた基底なら状態に影響を与えます。未知の量子状態を完璧に複製できない性質(量子複製不可能定理)も、量子鍵配送の安全性を支える背景です。
3. QKDの通信経路:光子を送る経路と公開の経路を分ける
QKDでは、量子通信路だけでなく認証された古典通信路も必要です。ここを省略すると、盗聴検知と送信者の本人確認を混同しやすくなります。
Alice
送信者
量子通信路
Bob
受信者
Alice ← 公開の古典通信路 → Bob
測定基底の照合、誤り率の推定、誤り訂正、秘匿性増幅。通信相手の認証は必須。
送信者はビットと基底をランダムに選び、対応する量子状態を送ります。受信者も基底をランダムに選んで測定します。その後、基底は公開しても、鍵のビット列をすべて公開するわけではありません。同じ基底で得たビットを候補として残します。
例:光子を8回送った場合 送信基底 + × + + × × + × 受信基底 + + + × × + + × 一致? ○ × ○ × ○ × ○ ○ → 同じ基底の位置だけ残す(基底照合・sifting) → 誤り検査、誤り訂正、秘匿性増幅 → 安全性を評価した後の最終鍵を暗号化に利用
4. BB84で盗聴を見つける理由:測定は状態に影響する
Aliceが「+」基底の状態を送ったのに、Eveが「×」基底で測ってしまったとします。Eveは送信時の基底を知らないため、その測定結果を使って新しい光子を送り直しても、Bobの結果に誤りが混入する場合があります。
盗聴なし
途中で測定
誤り率を検査
単純なBB84の切り取り・測定・再送攻撃モデルでは、送受信基底が一致しているビットに平均約25%の誤りが生じます。ただし実機では通信路の雑音や機器の不完全性があり、少数のビットから即座に盗聴の有無を断定することはできません。
測定結果に誤りがあれば必ず攻撃だとも、誤りが見えなければ必ず安全だとも言えません。実際には統計的な誤り評価、誤り訂正、秘匿性増幅(privacy amplification)によって盗聴者が持ち得る情報量を十分小さくします。
INTERACTIVE LAB
BB84の基底照合とワンタイムパッド
模式的な8パルスで、量子通信と通常のビット演算を切り分けて確かめます。
① 盗聴の有無を切り替える
光子の状態を準備
盗聴時だけ測定
基底を選んで測定
量子通信路:光子を送る。公開の古典通信路:後から使った基底などを照合する(ただし認証が必要)。
② 各工程を開く
光子を送信。Aliceのビットと基底を確認
| # | Alice bit | 送信基底 | Bob基底 | Bob測定 | 判定 |
|---|---|---|---|---|---|
| 1 | 1 | + | ? | ? | — |
| 2 | 0 | × | ? | ? | — |
| 3 | 1 | × | ? | ? | — |
| 4 | 0 | + | ? | ? | — |
| 5 | 1 | + | ? | ? | — |
| 6 | 0 | × | ? | ? | — |
| 7 | 1 | + | ? | ? | — |
| 8 | 1 | × | ? | ? | — |
「+」「×」は測定基底の種類を表す記号。数字は説明用に固定した例で、実機の確率的挙動をそのまま再現するものではありません。
③ XORで暗号化・復号を体験
量子の操作は鍵配送の部分。ここからは通常のビット演算です。メッセージと同じ長さの秘密鍵を使い、一度使った鍵は再利用しません。
平文 10110010
鍵 01101101
暗号文 11011111 (平文 XOR 鍵)
復号 10110010 (暗号文 XOR 鍵)
5. ワンタイムパッド(OTP):鍵を一度しか使わない
OTP(One-Time Pad)は、平文と同じ長さの真にランダムな秘密鍵を使い、その鍵を絶対に再利用しない暗号方式です。ビット列なら排他的論理和(XOR)で暗号化・復号できます。量子計算機は必要ありません。
平文 P 10110010
秘密鍵 K 01101101
-------- XOR
暗号文 C 11011111
復号:C XOR K = P
11011111 XOR 01101101 = 10110010鍵が予測不能で平文と同じ長さであり、完全に秘密に保たれ、一度しか使われないなどの条件を満たすと、暗号文だけから平文を特定する情報が得られない情報理論的安全性(完全秘匿性)が成立します。
しかし同じ鍵を二度使うと、暗号文同士をXORしたとき秘密鍵が相殺されます。C₁ XOR C₂ = P₁ XOR P₂ となり、平文に関する情報が漏れます。また、大量データと同じ量の鍵を継続して供給する必要があり、運用上の負担が大きくなります。
6. PQCとQKDの違い:どちらも量子に関係するが仕組みは別
| 観点 | QKD(量子鍵配送) | PQC(耐量子計算機暗号) |
|---|---|---|
| 技術の土台 | 量子状態の測定など物理的性質 | 量子計算機でも解きにくいと考えられる数学的問題 |
| 中心的な用途 | 鍵素材の共有と盗聴評価 | 鍵カプセル化、電子署名など |
| 必要な設備 | 専用の光学機器・量子通信路等 | 既存ネットワークと通常の計算機で実装可能 |
| 具体例 | 拠点間の専用光ファイバーで鍵を共有 | ML-KEMでセッション鍵を確立 |
| 実装上の注意 | 通信路認証、機器不備、距離・鍵生成速度 | 安全なパラメータ・実装、アルゴリズム更新 |
例えば、金融機関のデータセンター間や研究機関の拠点間を専用の光ファイバーでつなぐ設計ならQKDの検討対象になります(導入例を示す架空の場面であり、特定企業が使用しているという意味ではありません)。一方、一般のWebサービスでTLSや署名などを量子計算機時代へ対応させるなら、PQCの標準化と移行が直接関係します。両者は対立するものではなく、用途や脅威モデルが異なります。
7. 紛らわしい説明を見分ける:4つのチェック
誤解1:量子コンピュータで暗号化するから超高速
誤解2:データ自体を量子ビットで送る
誤解3:公開鍵暗号で鍵を送るのがQKD
整理:共有した乱数列を使い捨て鍵として利用
8. 実際の運用では「盗聴したら100%検知」ではない
原理上の安全性と、現実の装置・ネットワークの安全性は分けて扱います。光源が意図せず複数の光子を出す、検出器が不完全、機器から情報が漏れる、認証済みの古典通信路が成立していない、といった条件では、想定外の攻撃余地が生まれます。
また、光の損失、伝送距離、鍵生成速度、導入コストなどの制約があります。鍵を受け取れたとしても、保存した鍵の管理、装置の物理防護、利用者の認証、送信データの改ざん対策は別に設計しなければなりません。
まとめ:3つの技術を1本の流れで説明できるようにする
量子鍵配送
盗聴評価
データの暗号化
HTTPSの通信暗号化、e-TaxやPDFの電子署名、QKDによる鍵共有を並べると、同じ「暗号」でも役割が違うと分かります。量子暗号を理解するうえで最も大事なのは、「鍵をどう共有するか」と「データをどう暗号化するか」を分けることです。QKD、PQC、量子コンピュータの3つを混同しなければ、次に新しい量子技術の話題を聞いたときにも整理して理解できます。