株式会社ジオデータ開発 ロゴ
株式会社ジオデータ開発GEO DATA DEVELOPMENT Inc.
CRYPTOGRAPHY & QUANTUM量子暗号QKDBB84ワンタイムパッド

量子暗号・量子鍵配送(QKD)の仕組み光子、盗聴検知、ワンタイムパッドを理解する

HTTPS、マイナンバーカード、PDF電子署名を例に、共通鍵・公開鍵・ハッシュ・PKI・認証局・証明書チェーン・失効確認とQKD・PQCを体系的に解説。BB84とワンタイムパッドの操作ラボ付き。

最初に押さえる結論

量子の力で暗号文を高速計算するのではなく、盗聴を検知しながら「鍵」を共有する。

量子鍵配送(QKD: Quantum Key Distribution)は、光子などの量子状態を使って、送信者と受信者が秘密鍵の材料を安全に共有する技術です。実際のデータの暗号化には、通常の計算機上で動くワンタイムパッドなどの暗号技術を組み合わせます。

QKD

秘密鍵を共有する

盗聴検知

測定の影響を誤り率で推定

OTP

同じ長さの鍵でXOR暗号化

身近なサービスから暗号を整理する:何を守るための技術?

まず、スマートフォンで買い物をするときのHTTPS、マイナンバーカードを使ったe-Tax、取引先から届く電子署名付きPDFを思い浮かべてください。同じ「暗号技術」でも、通信を読めなくする、鍵を共有する、相手や文書を確かめるは別の仕事です。

実際に見かける場面使われる技術守っているもの・役割
ネット通販・銀行のHTTPSTLS:ECDHEなどの鍵合意、証明書による署名検証、AES-GCM等の共通鍵暗号相手のサーバーを確かめ、通信の暗号鍵を作り、送受信データを保護する
スマホやPCの保存データAESなどの共通鍵暗号大量のデータを効率よく読めなくする。実際の方式や鍵管理は製品による
マイナンバーカードでe-Tax申告署名用電子証明書・カード内秘密鍵・電子署名誰が申請したか、申請データが改ざんされていないかを確かめる
マイナポータルへのログイン利用者証明用電子証明書による認証ログインしようとしている人を確認する。申請書への電子署名とは目的が異なる
電子署名付きのPDF契約書ハッシュ関数・公開鍵方式の電子署名・電子証明書署名者と文書の変更有無を検証する。PDF本文を秘密にする暗号化とは別
専用光回線で拠点間の鍵を共有QKD(量子鍵配送)光子などの状態を利用して秘密鍵の材料を共有し、盗聴の影響を評価する
将来の量子計算機に備えるTLSや署名PQC(ML-KEM、ML-DSAなど)専用の量子通信設備を使わず、鍵確立や署名を耐量子方式に移行する

暗号化=内容を読めなくする

通販サイトで住所やカード情報を送るとき、TLSの共通鍵暗号が実データを保護します。公開鍵暗号だけで全通信を暗号化しているわけではありません。

電子署名=作成者・改ざんを検証する

PDFに署名が付いていても、PDFの内容が自動的に非公開になるわけではありません。電子署名とファイル暗号化は役割が違います。

同じ「公開鍵」を使う場面でも、暗号化では受信者の公開鍵で暗号化し秘密鍵で復号するのが基本形、電子署名では署名者の秘密鍵で署名を生成し公開鍵で検証します。現在のTLS 1.3では、通信鍵の確立にECDHE等を使い、証明書と署名でサーバーを認証する、という複数の機能の組み合わせが基本です。

HTTPS:証明書の検証から暗号化通信まで
ブラウザ
認証局(CA)
Webサーバー
  1. ① CAがサーバーの公開鍵とドメイン名を確認し、証明書へ電子署名(発行時)
  2. ② サーバーから証明書と鍵共有情報を受信。ブラウザは証明書の署名・名前・期限などを検証
  3. ③ ブラウザとサーバーがECDHE等から共通の通信鍵を導出
  4. ④ HTTPのリクエスト・レスポンスをAES-GCMなどで暗号化・完全性保護

CAとブラウザが毎回直接通信するわけではありません。TLS 1.3の一般的な流れを簡略化しています。

マイナンバーカード:e-Taxの申告

文書への署名が目的。署名用電子証明書に対応する秘密鍵はカード内で守られ、申請を受ける側は公開鍵・証明書で署名を検証します。暗証番号そのものや秘密鍵を相手に渡すわけではありません。

マイナンバーカード:マイナポータル

サービスへのログインが目的。利用者証明用電子証明書を使うので、e-Taxで申告内容に署名するときの署名用電子証明書とは使い分けます。
PDF電子署名:作成・送信・検証
署名者
電子証明書/CA
受信者
  1. ① 署名者がPDFの対象データをハッシュ化し、秘密鍵で署名値を生成
  2. ② 署名済みPDF・署名値・電子証明書を受信者へ送付
  3. ③ 受信者はCAの信頼、証明書の有効性、署名値、PDFのハッシュを検証
  4. ④ 署名後に変更された箇所の有無を確認。PDF本文が暗号化されるとは限らない

電子署名の検証では証明書チェーン、失効状態、署名時刻なども重要です。

公的な説明は マイナンバーカード総合サイト(2種類の電子証明書)、AdobeのPDFデジタル署名解説、CloudflareのTLSハンドシェイク解説も参考になります。

暗号技術の全体地図:何を保証したいのかから選ぶ

「暗号」はひとつの機能ではありません。機密性・完全性・真正性・否認防止をどの技術が支えるか、最初に整理します。認可や可用性は暗号化だけでは実現できません。

機密性:秘密を読ませない

AES-GCM、ChaCha20-Poly1305、適切な公開鍵暗号の利用。例:HTTPS通信やディスク暗号化。

完全性:改ざんを見つける

SHA-256などのハッシュ、HMAC、AEADの認証タグ、電子署名。ハッシュ値を並べるだけでは送信者の真正性は保証されません。

真正性:誰が送ったか確認する

電子署名と証明書、MAC、Web認証。例:HTTPSのサーバー証明書、マイナンバーカードによる利用者証明。

否認防止:署名を後から否定しにくくする

本人だけが管理する秘密鍵による電子署名と適切な証拠保全。共有鍵のMACだけでは相互に作成可能なため不十分。
技術入力と出力代表的な用途
共通鍵暗号平文+共通鍵 → 暗号文HTTPSのアプリデータ、ストレージ
公開鍵暗号・KEM/鍵合意鍵ペア等から共有秘密を確立TLSの鍵確立、PQCのML-KEM
ハッシュ関数任意長データ → 固定長のダイジェストファイルの照合、署名対象の要約
MAC/HMACメッセージ+共有鍵 → 認証タグ共有秘密を持つ当事者間の改ざん検知
電子署名署名者の秘密鍵で署名/公開鍵で検証電子契約、e-Tax、証明書の署名
電子証明書/PKI公開鍵+主体情報+CAの署名鍵が誰のものかを判断する
QKD量子通信と認証済み古典通信 → 鍵素材拠点間の秘密鍵共有

認証局(CA)とPKI:公開鍵が本物だと分かる理由

公開鍵暗号だけでは「この公開鍵が本当に銀行のWebサイトのものか」を判断できません。攻撃者が偽の公開鍵を渡す中間者攻撃に対抗するため、公開鍵と主体の結び付きを電子証明書で表す仕組みがPKI(Public Key Infrastructure:公開鍵基盤)です。

認証局の役割:Webサーバー証明書を発行・検証
Webサイト運営者
認証局(CA)
利用者ブラウザ
  1. ① 運営者が秘密鍵・公開鍵のペアを用意し、証明書の発行を申請
  2. ② CAがドメイン管理権などを検証し、公開鍵・ドメイン名・期限等を含む証明書に署名
  3. ③ サーバーはTLS通信時に証明書(必要な中間証明書を含む)を提示
  4. ④ ブラウザが信頼するルートCAまで署名の連鎖を検証し、アクセス先ホスト名と期限などを確認

ブラウザがCAへ毎回証明書を問い合わせるという意味ではありません。失効確認はOCSPやCRL等の方式・実装によって異なります。

ルートCA(Root CA)

信頼の起点。ブラウザやOSの信頼ストアにルート証明書が登録されています。最上位の証明書は自己署名が一般的ですが、自己署名だから自動で信用できるわけではありません。

中間CA(Intermediate CA)

ルートCAから認証された発行主体。サーバー証明書を発行し、証明書チェーンを形成します。

RA(登録局)

申請者の身元・ドメイン権限などを確認する役割。証明書への電子署名を行うCAとは区別します。両機能を同じ事業者が担う場合もあります。

CRL/OCSP(失効確認)

期限前でも漏えい・誤発行などによって証明書が失効する場合があります。CRLは失効リスト、OCSPは証明書の状態照会の仕組みです。

証明書チェーンは「サーバー証明書 → 中間CA証明書 → ルートCA証明書」という信頼の連鎖です。署名の検証だけでなく、サーバー名との一致、用途、有効期間、失効状態などを総合して確認します。CAが発行したという事実だけで、接続先企業の事業内容や取引の安全まで保証されるわけではありません。

電子署名・電子証明書・本人認証を横断して理解する

マイナンバーカードを使う二つの用途
利用者とICカード
電子証明書・検証基盤
行政サービス
  1. ① e-Tax等:申請内容のハッシュ等をカード内の署名用秘密鍵で署名
  2. ② 申請先:署名用証明書で公開鍵を確認し、署名と文書の改ざん有無を検証
  3. ③ マイナポータル等:利用者証明用証明書と対応する秘密鍵で本人認証
  4. ④ 両用途で秘密鍵は原則カード内に保持。暗証番号は鍵利用のための確認に使う

制度・アプリにより詳細フローは異なります。署名用と利用者証明用の証明書は目的が違います。

PDFへの電子署名も同じ土台にあります。署名値だけでは「どの公開鍵で検証すればよいか」「その公開鍵が誰のものか」が解決しません。そこで電子証明書とPKIを組み合わせ、署名の検証に加えて証明書チェーン・失効・署名時刻なども評価します。

実務での選択:どの技術をどこに使うか

WebサイトをHTTPSにしたい

TLS証明書と正しいホスト名検証、鍵共有、AEAD暗号を組み合わせる。証明書の自動更新と失効時の手順も設計する。

重要なPDFの署名を検証したい

PDFの署名値、署名対象、証明書チェーン、失効状態、タイムスタンプ等を確認。見た目の印影画像だけでは電子署名を検証できない。

APIリクエストの改ざんを見つけたい

共有秘密でHMACを使う設計なら、対象データの正規化・タイムスタンプ・nonceなど再送対策も必要。

量子計算機に備えたい

PQCの鍵確立・署名の移行を検討。QKDを採用するかは専用回線、距離、設備、運用条件を別途評価する。

1. まず暗号の基本:鍵を隠して共有する難しさ

例えば、病院Aと研究機関Bが機密データを送る状況を考えます。平文は読めるデータ、暗号文は鍵を使って変換されたデータ、共通鍵は暗号化と復号に同じ値を使う鍵です。AESのような共通鍵暗号は高速ですが、その鍵をAとBがどうやって安全に共有するかが重要になります。

共通鍵暗号(AESなど)

同じ秘密鍵で暗号化・復号。大量データの保護に向きます。ただし鍵の事前共有・配送の設計が必要です。

公開鍵暗号(RSA・楕円曲線など)

公開鍵と秘密鍵を使い分けます。鍵の合意や署名などに用いられますが、量子計算機の発展による安全性への懸念があります。

例えば、普段のHTTPSではTLSが鍵合意と共通鍵暗号を組み合わせます。QKDは、そのうち鍵共有に関わる課題に光の量子的性質を利用するアプローチです。対して、量子計算機でも破りにくい数学的問題を使う耐量子計算機暗号(PQC)は別の発想です。

2. 光子・量子状態・基底とは? ゼロから理解する

光子(photon)は光を量子として扱うときの単位です。BB84と呼ばれるQKDの基本方式では、光子の偏光などの状態を利用してビット情報を表します。ここでは「+基底」と「×基底」の2種類を使うモデルで考えます。

+基底(直線基底)

縦・横など、互いに区別できる2状態を0と1に割り当てるイメージ。送信と受信の基底が同じなら、理想的にはビットを一致させられます。

×基底(斜め基底)

斜め方向の2状態を0と1に割り当てるイメージ。+基底で準備された状態を×基底で測ると、結果は確率的になります。

基底の向きを視覚化する模式図

↔

+基底 / 0

↕

+基底 / 1

↗

×基底 / 0

↖

×基底 / 1

光の偏光を説明する概念図です。実装では時間ビン・位相などを使う方式もあります。矢印は厳密な状態ベクトルの記法ではありません。

盗聴者が送信時の基底を知らずに光子を測定すると、正しい基底を偶然選ぶ場合もありますが、間違えた基底なら状態に影響を与えます。未知の量子状態を完璧に複製できない性質(量子複製不可能定理)も、量子鍵配送の安全性を支える背景です。

3. QKDの通信経路:光子を送る経路と公開の経路を分ける

QKDでは、量子通信路だけでなく認証された古典通信路も必要です。ここを省略すると、盗聴検知と送信者の本人確認を混同しやすくなります。

Alice

送信者

光子 →

量子通信路

Bob

受信者

Alice ← 公開の古典通信路 → Bob

測定基底の照合、誤り率の推定、誤り訂正、秘匿性増幅。通信相手の認証は必須。

Eve(盗聴者)が光子を測定すると、誤った基底の測定による不一致が増える可能性

送信者はビットと基底をランダムに選び、対応する量子状態を送ります。受信者も基底をランダムに選んで測定します。その後、基底は公開しても、鍵のビット列をすべて公開するわけではありません。同じ基底で得たビットを候補として残します。

例:光子を8回送った場合
送信基底    +  ×  +  +  ×  ×  +  ×
受信基底    +  +  +  ×  ×  +  +  ×
一致?       ○  ×  ○  ×  ○  ×  ○  ○

→ 同じ基底の位置だけ残す(基底照合・sifting)
→ 誤り検査、誤り訂正、秘匿性増幅
→ 安全性を評価した後の最終鍵を暗号化に利用

4. BB84で盗聴を見つける理由:測定は状態に影響する

Aliceが「+」基底の状態を送ったのに、Eveが「×」基底で測ってしまったとします。Eveは送信時の基底を知らないため、その測定結果を使って新しい光子を送り直しても、Bobの結果に誤りが混入する場合があります。

盗聴なし

送受信基底が一致すれば、理想的な通信路で同じビットが得られる。

途中で測定

Eveは基底を推測する。間違った基底で測定すると、状態に影響する。

誤り率を検査

一部のビットを比較してQBER(Quantum Bit Error Rate)を推定し、安全な最終鍵を得られるか評価する。

単純なBB84の切り取り・測定・再送攻撃モデルでは、送受信基底が一致しているビットに平均約25%の誤りが生じます。ただし実機では通信路の雑音や機器の不完全性があり、少数のビットから即座に盗聴の有無を断定することはできません。

測定結果に誤りがあれば必ず攻撃だとも、誤りが見えなければ必ず安全だとも言えません。実際には統計的な誤り評価、誤り訂正、秘匿性増幅(privacy amplification)によって盗聴者が持ち得る情報量を十分小さくします。

INTERACTIVE LAB

BB84の基底照合とワンタイムパッド

模式的な8パルスで、量子通信と通常のビット演算を切り分けて確かめます。

① 盗聴の有無を切り替える

Alice

光子の状態を準備

Eve

盗聴時だけ測定

Bob

基底を選んで測定

量子通信路:光子を送る。公開の古典通信路:後から使った基底などを照合する(ただし認証が必要)。

② 各工程を開く

光子を送信。Aliceのビットと基底を確認

#Alice bit送信基底Bob基底Bob測定判定
11+??—
20×??—
31×??—
40+??—
51+??—
60×??—
71+??—
81×??—

「+」「×」は測定基底の種類を表す記号。数字は説明用に固定した例で、実機の確率的挙動をそのまま再現するものではありません。

③ 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:量子コンピュータで暗号化するから超高速

QKDは量子計算機で大量の平文を高速暗号化する技術ではありません。光子などを利用するのは主に鍵の共有です。

誤解2:データ自体を量子ビットで送る

BB84では量子状態を鍵配送に利用しますが、一般の業務データの暗号化や通信は通常のビット列で扱えます。量子ビットに置き換えれば自動的に高速化するわけではありません。

誤解3:公開鍵暗号で鍵を送るのがQKD

QKDの鍵素材の共有は量子通信と古典通信を組み合わせて行います。古典通信路の認証にデジタル署名等を使う構成はありますが、QKD自体を公開鍵暗号による鍵配送と同一視しません。

整理:共有した乱数列を使い捨て鍵として利用

盗聴を評価しながら共有した十分に安全な秘密鍵を、OTPなどで一度限りの鍵として使うことで、高い秘匿性を目指します。ただし運用や実装条件を満たすことが前提です。

8. 実際の運用では「盗聴したら100%検知」ではない

原理上の安全性と、現実の装置・ネットワークの安全性は分けて扱います。光源が意図せず複数の光子を出す、検出器が不完全、機器から情報が漏れる、認証済みの古典通信路が成立していない、といった条件では、想定外の攻撃余地が生まれます。

また、光の損失、伝送距離、鍵生成速度、導入コストなどの制約があります。鍵を受け取れたとしても、保存した鍵の管理、装置の物理防護、利用者の認証、送信データの改ざん対策は別に設計しなければなりません。

まとめ:3つの技術を1本の流れで説明できるようにする

量子鍵配送

光子などの量子状態を使い、送受信者が鍵素材を共有する。

盗聴評価

基底照合と誤り率推定、誤り訂正・秘匿性増幅で安全な鍵を得る。

データの暗号化

得られた鍵をOTPなどで使用する。OTPでは同じ長さ・真の乱数・使い捨てが重要。

HTTPSの通信暗号化、e-TaxやPDFの電子署名、QKDによる鍵共有を並べると、同じ「暗号」でも役割が違うと分かります。量子暗号を理解するうえで最も大事なのは、「鍵をどう共有するか」と「データをどう暗号化するか」を分けることです。QKD、PQC、量子コンピュータの3つを混同しなければ、次に新しい量子技術の話題を聞いたときにも整理して理解できます。