
32のキーワードで学ぶはじめての耐量子暗号(PQC) #cm_fukuoka_study
はじめに
最近は量子コンピュータについての話題をよく耳にするようになりました。
量子コンピュータの実用化は少し先の話ですが、この量子コンピュータの実用化を見据えた 「Harvest Now, Decrypt Later(HNDL)」 という攻撃手法が注目されています。この攻撃手法の恐ろしい点は、量子コンピュータが実用化される前からすでに攻撃が始まっていることです。
同時に、このHNDL攻撃に対応する手段として、量子コンピュータに耐性を持つ暗号方式である「耐量子暗号(Post-Quantum Cryptography;PQC)」というものが存在し、NISTによる標準化も完了しています。さらには、主要なOSやブラウザ、クラウドサービスも急速にPQCに対応し始めています。
この耐量子暗号について、 クラメソふくおかIT勉強会#2〜今年の冬休み、何触る?LT会〜で、発表した内容を共有します。
スライド
5行でわかる耐量子暗号
まず、なぜいま耐量子暗号への移行が必要なのか5行でまとめます。
- 量子コンピュータは未来の技術
- 実用化(CRQC)は未来だが攻撃はすでに起きている(HNDL)
- この攻撃を防ぐのが耐量子暗号(PQC)
- PQCのエコシステムはすでに整っているし動いている
- 残るは移行のみ
20分でわかる、今なぜ耐量子暗号の対応が必要なのか?
ビジネス観点から耐量子暗号対応の動機づけは次の「金融高度化センター設立20周年記念ワークショップ」でのみずほフィナンシャルグループ グループの寺井 理 様の発表が参考になります。
耐量子暗号とは?
1: 量子コンピュータ(Quantum Computer)とは?
量子コンピュータは、量子力学の原理を応用したコンピュータです。
ニュースなどで、金ピカの大きな装置とともに紹介されることが多いです。
2: 古典 vs 量子
量子力学が登場する以前の物理学を「古典力学」と呼ぶことがあります。
同様に、量子コンピュータ以前のビット方式のコンピュータを「古典」コンピュータ、RSAや楕円曲線などの暗号方式も「古典」暗号というように量子以前を「古典」と呼ぶことがあります。
| 古典(classical) | 量子(quantum) |
|---|---|
| 古典力学 | 量子力学 |
| 古典コンピュータ | 量子コンピュータ |
| 古典暗号 | 耐量子暗号 |
| 古典アルゴリズム | 量子アルゴリズム |
解説を読んでいて「古典」という言葉が出てきたら、量子以前の技術を指していると理解してください。
3: Shorのアルゴリズム
Shorのアルゴリズムは、1994年にPeter Shorが発表した量子アルゴリズムです。量子コンピュータの特性を活かし、RSA暗号の土台である素因数分解問題や、楕円曲線暗号の土台である離散対数問題を多項式時間で解くことができます。
量子コンピュータの理解しやすい応用例として量子コンピュータの黎明期から注目されてきました。2001年には、IBMの量子コンピュータで15=3×5の素因数分解に成功しています。
4: Groverのアルゴリズム
Groverのアルゴリズムは、1996年にLov Groverが発表した量子アルゴリズムです。総当り探索(ブルートフォース攻撃)の計算量を、古典的なO(N)からO(√N)に削減できます。これはAESのような共通鍵暗号に対して、鍵長の半分に相当するセキュリティ低下をもたらします。
5: CRQC / Q-Day
CRQCは「Cryptographically Relevant Quantum Computer」の略で、RSA-2048のような古典暗号を多項式時間で解読できる能力を持った量子コンピュータを指します。
Q-Dayとは、CRQCの登場により楕円曲線暗号のような古典暗号が危殆化する日のことです。
量子コンピュータは「IF」の技術ではなく、「WHEN」の技術です。
The GLobal Risk Instituteの2024年のレポート "Quantum Threat Timeline Report 2024" によると、約半数の専門家が15年後(つまり2040年頃)にはCRQCが登場すると予測しています。

6: Harvest Now, Decrypt Later(HNDL)攻撃
HNDL攻撃は、PQCのワードとともに登場する機会の多い最も重要なキーワードの1つです。「今(Now)」古典暗号で暗号化されているデータを収集(harvest=収穫)しておき、「未来(Later)」Q-Day到来後に量子コンピュータ(CRQC)で解読するという攻撃手法です。

7: 耐量子暗号(PQC; Post-Quantum Cryptography)
HNDLを防ぐのが、耐量子暗号(PQC)であり、量子コンピュータでも解読困難な、古典コンピュータで動く暗号方式の総称です。
PQCには複数の数学的アプローチがあり、主なものとして格子暗号、符号暗号、ハッシュベース暗号などがあります。NISTが標準化したアルゴリズムの多くは格子暗号に基づいています。
8: モスカの定理(Mosca's Theorem)
モスカの定理 は、HNDL攻撃のリスクを定量的に評価するためのフレームワークです。Michele Moscaが2015年に提唱しました。
「賞味期限(security shelf-life) + 移行期間(migration time) > Q-Day到来時期」という不等式が成り立つとき、HNDL攻撃が成立します。
この賞味期限や移行期間は情報やシステムごとに異なります。
例えば、賞味期限が10年の情報を、移行に5年かかるシステムで守っているとします。
移行が完了する直前の5年後に取得した古典暗号データの賞味期限は、その時点から10年後、現在からだと15年後です。
Q-Dayが20年後の場合、解読できても情報の賞味期限は切れています。
しかし、Q-Dayが10年後の場合、賞味期限が切れる15年後までまだ5年もあります。
AESのような共通鍵暗号はGroverのアルゴリズムによりQ-Dayのリスクがあるものの、対応は従来の延長上で鍵長を倍にするだけで完結します。そのため、移行期間は0年とも言えます。一方で、非対称暗号の場合、新しい暗号方式の採用したり、プロトコルの変更、システム全体の改修などが必要になるため、移行期間が長くなることが予想されます。
国家機密やヘルスケアのように長期間価値を持つ情報は、早めのPQC移行計画が求められることが、モスカの定理から導けます。
9: 量子暗号 ≠ 耐量子暗号
量子暗号と耐量子暗号は、文字は似ていますが全く別物です。
量子暗号は一般に量子鍵配送(Quantum Key Distribution; QKD)を指し、量子力学の原理を直接利用した専用ハードウェアによる鍵交換方式です。
一方、耐量子暗号(PQC)は既存のコンピュータとネットワークインフラで動作する暗号アルゴリズムであり、ソフトウェア的なアプローチです。
例えば、次の記事の場合、ハードウェア(量子暗号)ではなく、ソフトウェア(耐量子暗号)をすすめています。
このような混同を減らすために、「耐量子暗号」に「計算機」を含めて「耐量子 計算機 暗号」と表現することもあります。
10: 2035年問題
米国国立標準技術研究所(NIST)が米国連邦政府システムは2035年までにPQCへ移行しなさいと要請しています(2024年11月公開のNIST IR 8547から)。
アメリカ国家安全保障局(NSA)が取りまとめる暗号アルゴリズムスイートでも、米国国家安全保障システム(NSS)の対応を求めており(2022年9月公開のCNSA 2.0から)、2035年問題と呼ばれることがあります。
11: NIST PQC標準アルゴリズム群
米国国立標準技術研究所(NIST)は2016年からPQCの公募を開始し、2024年に標準アルゴリズムを決定しました。ML(モジュール格子)系がメインで、残りはMLに脆弱性等が発見された場合のバックアップとして位置づけられています。
| 用途 | 規格 | 名称 | 旧称 | 数学的基盤 |
|---|---|---|---|---|
| 鍵交換 | FIPS 203 | ML-KEM | CRYSTALS-Kyber | モジュール格子 |
| 署名 | FIPS 204 | ML-DSA | CRYSTALS-Dilithium | モジュール格子 |
| 署名 | FIPS 205 | SLH-DSA | SPHINCS+ | ハッシュ関数 |
| 署名 | FIPS 206(ドラフト) | FN-DSA | Falcon | NTRU格子 |
| 鍵交換 | FIPS化予定 | HQC | HQC | 符号理論 |
12: NIST PQC安全性レベル
NISTは安全性をレベル1から5まで設定しています。レベルの基準は、同等の計算量を持つAESの鍵長で定義されています。
NISTはML-KEM-768をデフォルトのパラメータセットとして推奨しています。

後述のハイブリッド鍵交換のように、現在は、楕円曲線暗号系のX25519(Level 1相当)から格子暗号系のML-KEM-768(Level 3)への移行が進行中です。
普及が進む耐量子暗号
13: 50%以上のブラウザリクエストがPQC鍵交換
Cloudflareの調査によると、PQC鍵交換(ハイブリッド)の普及は急速に進んでいます。2024年3月時点では全TLS 1.3通信の2%でしたが、2025年10月には人間のリクエストの50%以上がPQC対応となりました。
一方、署名についてはまだPQC対応が確認できていない状況です。鍵交換の移行が先行し、署名の移行は今後の課題となっています。
参考
14: ハイブリッド鍵交換(X25519MLKEM768)
ハイブリッド鍵交換は、PQC鍵交換を導入しつつ、脆弱性のリスクを軽減するためのアプローチです。古典暗号(X25519)とPQC(ML-KEM-768)の両方を使用し、それぞれの秘密鍵から最終的な秘密鍵を導出します。
このアプローチにより、万が一PQCアルゴリズムに脆弱性が見つかった場合でも、古典暗号によるセキュリティが維持されます。また、量子コンピュータが実用化された場合でも、PQCによるセキュリティが維持されます。
IETF Post-quantum hybrid ECDHE-MLKEM Key Agreement for TLSv1.3
15: HTTPS通信時のPQC対応前後の違い
HTTPS通信に発生する、PQC系の大きな3つの処理を比較します。

現在は鍵交換のハイブリッド化が進行中で、サーバー証明書の署名はまだECDSAのままです。最終的にはすべてのコンポーネントがPQCに移行します。
16: PQCは鍵サイズが大きい
PQCの課題の1つは、古典暗号と比較して鍵サイズが大きいことです。
| アルゴリズム | 公開鍵(バイト) |
|---|---|
| X25519 | 32 |
| ML-KEM-768(L3) | 1184 |
| X25519MLKEM768 | 1216(=32+1184) |
| ML-KEM-1024(L5) | 1568 |
ハイブリッド鍵交換のX25519MLKEM768では公開鍵が1216バイトとなり、MTU(1500バイト)の閾値に近づきます。
実際、WiresharkでTLS通信を観察すると、Client HelloでTCPセグメンテーションが発生することが確認できます。

17: 鍵交換フローはRSAとML-KEMが線対称
ML-KEMのKEMは「鍵カプセル化メカニズム(Key Encapsulation Mechanism)」の略です。
TLSハンドシェイク時の鍵のやり取りを説明のために少し簡略化して整理します。

楕円曲線暗号時代は公開鍵を交換し合って共通鍵を取得していました(ディフィー・ヘルマン鍵共有)。
KEM方式では、サーバーが共通鍵を生成し、クライアントの公開鍵で暗号して(カプセル化)、クライアントに渡します。
RSA方式では、KEMと逆転し、クライアントが共通鍵を生成し、サーバーの公開鍵で暗号して、サーバーに渡します。
RSAとML-KEMの鍵交換フローを比較すると、両者のフローは線対称の関係にあります。
NotebookLMが絶妙な図をかいてくれたので、共有します。NotebookLMは手放せないツールです。
18: ML-KEMは復号できない暗号文を生成することがある
ML-KEMには、理論上極めて小さな確率で「復号失敗」が発生する可能性があります。つまり、AliceとBobが正しく通信しても、同じ共通鍵を導出できない場合があり得ます。
しかし、IETFのドラフトML-KEM Security Considerations によれば、この確率は極めて低く、実際に復号失敗が発生することは事実上ありません。結論として「気にすんな(ignore the possibility)」と言い切られています。
19: クリプト・インベントリ
PQC移行計画の第一歩は、暗号方式の利用状況を把握することです。どのシステムで、どの暗号アルゴリズムを、どのパラメータで使っているかを棚卸しする必要があります。
この目的のために、 CBOM(Cryptography Bill of Materials) という概念があります。これはSBOM(Software Bill of Materials)の暗号資産版で、CycloneDXなどのフォーマットが対応しています。クリプト・インベントリを作成することで、移行優先度の決定や影響範囲の把握が可能になります。
耐量子暗号の対応状況
20: OSのPQC対応状況
主要OSはすでにPQCに対応済みです。
- 2025/05: RHEL 10
- 2025/09: iOS / iPadOS / macOS 26(Safariも対応)
- 2025/11: Windows Server 2025 / Windows 11
OSレベルでPQCがサポートされることで、アプリケーション開発者は特別な対応なしにPQC通信を利用できるようになります。
21: ソフトウェアのPQC対応状況
主要ブラウザおよびソフトウェアも対応が進んでいます。
- 2022/04: OpenSSH 9.0(NTRU(sntrup)対応)
- 2023/09: Signal
- 2024/03: Apple iMessage @ iOS 17.4(PQ3プロトコル)
- 2024/03: Desktop Chrome
- 2024/09: OpenSSH 9.9
- 2024/11: Android Chrome
- 2025/04: OpenSSL 3.5
- 2025/09: Safari @ macOS 26
特にSignalやiMessageといったメッセージングアプリが早期にPQC対応したことは注目に値します。これらのアプリはエンドツーエンド暗号化を採用しており、暗号の機密性に対するHNDL攻撃の対象になりやすいためです。
22: AWSのPQC対応状況(抜粋)
AWSもPQC対応を積極的に進めています。
- 2022/03: AWS KMS/ACM(CRYSTALS-Kyber)
- 2025/04: AWS KMS/ACM/Secrets Manager
- 2025/06: AWS KMS(ML-DSA)
- 2025/09: CloudFront
- 2025/11: AWS Private CA(ML-DSA)
- 2025/11: AWS ALB/NLB
- 2025/11: AWS S3エンドポイント
- 2025/11: AWS Payments Cryptography
AWSを利用している場合、これらのサービスを活用することでPQC移行を少ない運用負荷で進めることができます。
23: PQC通信を確認(ブラウザ)
自分のブラウザがPQC通信を行っているか確認する方法があります。
https://pq.cloudflareresearch.com/ にアクセスすると、対応状況を確認できます。
緑色で「post-quantum secure」と表示されたでしょうか?

Chrome の場合は Developer Tools → Privacy and security → Connection で確認できます。「X25519MLKEM768」のような表示があれば、PQCハイブリッド鍵交換が使用されています。

24: PQC通信を確認(パケット)
パケットレベルでPQC通信を確認することもできます。
$ sudo tcpdump -w pqc.pcap host example.com >/dev/null 2>&1
キャプチャしたパケットをWiresharkで開き、TLS 1.3ハンドシェイクを確認します。Client HelloメッセージのSupported Groupsや、Server HelloのKey Shareを見ることで、使用されている鍵交換アルゴリズムを確認できます。

25: PQC通信を確認(SSH)
GitHub.comは2025年9月からPQC対応しています。SSH接続時の鍵交換アルゴリズムを確認できます。
$ ssh -v git@github.com exit 2>&1 | grep 'kex: algo'
debug1: kex: algorithm: sntrup761x25519-sha512
サーバーとクライアントの対応プロトコルは以下で確認できます。
# サーバー側
$ nmap --script ssh2-enum-algos -p 22 example.com
# クライアント側
$ ssh -Q kex
diffie-hellman-group1-sha1
...
curve25519-sha256
curve25519-sha256@libssh.org
sntrup761x25519-sha512
sntrup761x25519-sha512@openssh.com
mlkem768x25519-sha256
後ろ3つの以下がPQC系です
- sntrup761x25519-sha512
- sntrup761x25519-sha512@openssh.com
- mlkem768x25519-sha256
OpenSSH 10.1(2025年10月リリース)からは、サーバーがPQCに対応しておらず、 非PQC通信時に警告が表示されるようになりました。
** WARNING: connection is not using a post-quantum key exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html
格子暗号の理論付け
26: 3世代の鍵交換の定式化

暗号方式が数式で荒らされることがあります。
格子時代になると、連立一次方程式を見る機会が増えると思われます。
27: 格子暗号
格子暗号は、数学的な「格子」構造を利用した暗号方式です。2次元だと平行四辺形の格子点のような構造をイメージできます。高次元の格子構造における最適化問題が計算困難であることを安全性の根拠としています。
格子暗号にはModule Lattice(モジュール格子)やNTRUなど複数のアプローチがあります。NISTが標準化したML-KEM/ML-DSAはモジュール格子に基づいており、FN-DSA(旧Falcon)はNTRU格子に基づいています。
モジュールはModule(加群)であってModulo(合同)ではないことに注意してください。
28: SVP/CVP問題
格子暗号の安全性は、SVP/CVP問題の計算困難性に依存しています。
※ 引用 https://en.wikipedia.org/wiki/Lattice_problem
SVP(Shortest Vector Problem): 格子の基点から最も近い別の格子点を探す問題

CVP(Closest Vector Problem): 任意の点から最も近い格子点を探す問題

29: LWE(Learning With Errors)問題
LWE問題は、ML-KEM/ML-DSAの安全性の直接的な根拠となっている問題です。
「ノイズを含んだ連立一次方程式を解く」問題として定式化されます。

このノイズがShorのアルゴリズムが依存する周期性を破壊するため、量子コンピュータによる攻撃に対しても計算量的な困難性が保たれます。
SVP/CVPがMLWE(モジュール版LWE)の安全性を保証しています。
30: 格子暗号を利用する準同型暗号
格子暗号は、耐量子暗号だけでなく、準同型暗号にも利用されています。準同型暗号とは、データを暗号化したまま演算処理を行える暗号方式です。
「秘密計算」とは、データを秘匿化したまま処理する技術の総称で、準同型暗号はその実現方法の1つです。
機密データを暗号化したまま処理できるため、プライバシー保護の観点から注目されています。
詳細は光成滋生著『図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書』のChapter 9「高機能な暗号技術」を参照してください。

31: 初めての格子暗号は3名の数学者が考案
初期の格子暗号であるNTRU暗号は、1996年に3名の数学者(Jeffrey Hoffstein, Jill Pipher & Joseph H. Silverman)によって考案されました。
その中の1人、Joseph H. Silvermanは、数論や楕円曲線の教科書で有名なあの「シルバーマン」です。
考案者の一人の Jill Pipher がこのNTRU暗号の概要や歴史について解説している動画があります。一流数学者らによる論文が、発表当時は暗号コミュニティでうまく受け入れられなかったエピソードなども紹介されています。
32: 現在の量子コンピュータは21を素因数分解できない
PQC対応の原因とも言える量子コンピュータは現時点でどの程度の能力を持っているのでしょうか?
2025年8月の次のブログでは、現在の量子コンピュータは、21=3×7という小さな数の素因数分解すら困難ということが紹介されてます。
Why haven't quantum computers factored 21 yet?
日本語の解説動画もおすすめです
繰り返しとなりますが、現在の量子コンピュータの能力の低さによらず、HNDL攻撃に備えたPQC対応を検討しましょう。
まとめ
32のキーワードを通じて、耐量子暗号(PQC)の全体像を解説しました。
- 量子コンピュータは未来の技術
- 実用化(CRQC)は未来だが攻撃はすでに起きている(HNDL)
- この攻撃を防ぐのが耐量子暗号(PQC)
- PQCのエコシステムはすでに整っているし動いている
- 残るは移行のみ
量子コンピュータの実用化がまだ先の話であっても、HNDL攻撃を考慮すると、今から耐量子暗号への移行を検討する必要があります。
NISTによる標準化が完了し、主要なOS・ブラウザ・クラウドサービスはすでにPQCに対応しています。
残るは、移行することだけです。
最後に
耐量子暗号を意識したのは、今年7月に松江で開催されたJANOG でのブース訪問がきっかけでした。
その約1ヶ月後、9月上旬に佐賀で開催された 「ようこそ!クラウド地銀パーク〜 JAWS-UGと語る地方銀行のミライ〜」 のセッションでも、PQCが話題に上がり、私の中で関心が高まっていきました。そして決定的だったのが、9月中旬のGitHubによるPQC対応です。
PQC対応のアナウンス通りにSSHコマンドを実行すると、 sntrup761x25519-sha512 という見慣れないアルゴリズムがかえってきました。
$ ssh -v git@github.com exit 2>&1 | grep 'kex: algo'
debug1: kex: algorithm: sntrup761x25519-sha512
sntrup を調べたら、格子暗号というものを使っており、Joseph Silverman というどこかで聞いたことがあるような名前の人が考案者として名前を連ねていました。このSilverman は楕円曲線論の書籍をたくさん執筆している あの Silvermanと同一人物であると認識し、時間をかけながら少しずつ調査してみました。
Silverman が暗号の本("An Introduction to Mathematical Cryptography") も 執筆していることは認識してはいたものの、目次や中身を確認せずに、どうせ楕円曲線暗号を解説したいのだろうと勝手に思い込んでいたのですが、本当に伝えたかったのは、自身が創出したその次の章の「格子暗号」だったのでした。
さらには、数年前に私がレビュアーとして参加させていただいた(数学に強い)光成 滋生さんの『図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書』を読み返していると、数年前の一般向け書籍なのに、耐量子暗号、格子暗号、格子暗号を活用した準同型暗号などが解説されていたのです。
過去のいろいろな伏線が回収され、準備はいろいろ大変ではあったものの、とても楽しい体験となりました。
話したいことはたくさんあったのですが、余白(5分LT)が狭すぎました。
参考
- NIST FIPS 203: ML-KEM
- NIST FIPS 204: ML-DSA
- NIST FIPS 205: SLH-DSA
- NIST IR 8547: Transition to Post-Quantum Cryptography Standards
- media.defense.gov/2025/May/30/2003728741/-1/-1/0/CSA_CNSA_2.0_ALGORITHMS.PDF
- Cloudflare: State of the post-quantum Internet
- CRYPTREC 暗号技術ガイドライン(耐量子計算機暗号)2024年度版
- Post-quantum hybrid ECDHE-MLKEM Key Agreement for TLSv1.3
- ML-KEM Security Considerations
- GitHub: Post-quantum security for SSH access
- OpenSSH: Post-quantum cryptography
- 光成滋生著『図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書』






