世界を動かす技術を、日本語で。

OpenSSH ポスト量子暗号技術

2025年8月11日原文(openssh.com)

概要

  • OpenSSHは 量子コンピュータ耐性の鍵合意アルゴリズム をサポート
  • OpenSSH 10.0以降 ではmlkem768x25519-sha256がデフォルト
  • 非耐量子アルゴリズム利用時に警告 が表示される(10.1以降)
  • 「store now, decrypt later」攻撃 への対策として推奨
  • 署名アルゴリズムも将来的に対応予定

OpenSSHにおけるポスト量子暗号化の現状

  • OpenSSHは 量子コンピュータによる攻撃に強い鍵合意アルゴリズム を複数サポート
  • OpenSSH 9.0 でsntrup761x25519-sha512を、 9.9 でmlkem768x25519-sha256を導入
  • OpenSSH 10.0 以降はmlkem768x25519-sha256がデフォルトスキーム
  • 10.1 以降、非ポスト量子アルゴリズム選択時に警告表示
  • 警告は WarnWeakCryptoオプション で無効化可能

量子コンピュータの脅威とSSH通信

  • 量子コンピュータは 従来困難だった計算問題を高速に解決 可能
  • 公開鍵暗号・デジタル署名 は量子コンピュータで破られるリスク
  • SSH通信の 秘匿性は鍵合意の安全性に依存
  • 攻撃者は 暗号化通信を蓄積し、将来量子コンピュータで復号 可能(store now, decrypt later攻撃)
  • OpenSSHは ポスト量子暗号化でこのリスクに対抗

警告メッセージへの対処方法

  • OpenSSH 10.1以降、 量子耐性のない鍵合意利用時に警告
  • サーバーが mlkem768x25519-sha256またはsntrup761x25519-sha512 未対応の場合に警告
  • サーバー側で OpenSSH 9.0以上 (sntrup761x25519-sha512)、 9.9以上 (mlkem768x25519-sha256)へのアップデート推奨
  • KexAlgorithms設定 で該当アルゴリズムが無効化されていないか確認
  • サーバー更新不可・リスク容認の場合、ssh_config(5)の WarnWeakCrypto で警告無効化可能
    • 例:Match host unsafe.example.com WarnWeakCrypto no

量子コンピュータが未実用でも対策すべき理由

  • 「store now, decrypt later」攻撃 により、 今の通信も将来解読対象
  • 量子耐性の鍵合意を 今から導入する意義

署名アルゴリズムへの影響

  • 現在主流の RSAやECDSA署名 も量子コンピュータで破られるリスク
  • 署名アルゴリズムの場合、 過去通信の即時解読リスクはない
  • 量子耐性署名アルゴリズム は今後OpenSSHでサポート予定
  • 既存のクラシカル署名鍵の早期廃止 が求められる状況

ポスト量子アルゴリズムの安全性への懸念

  • 新しい暗号アルゴリズム は未知の脆弱性リスクも存在
  • OpenSSHは 安全マージンの大きいアルゴリズム を選定
  • 万一ポスト量子アルゴリズムが破られても、 ハイブリッド方式 で従来の安全性も担保
    • 例:mlkem768x25519-sha256は ML-KEM+ECDH/x25519 のハイブリッド
  • 将来の暗号解析にも備えた設計

まとめ

  • OpenSSH利用者はポスト量子鍵合意アルゴリズムの利用が推奨
  • サーバー・クライアント双方のバージョンと設定確認
  • 警告無効化はリスクを理解した上で限定的に
  • 今後の署名アルゴリズム対応にも注視が必要

Hackerたちの意見

最近の量子暗号の現状についての面白い論文を考えると、ポスト量子暗号の採用ペースってどれくらい必要なんだろうね?私の理解では、ポスト量子アルゴリズムの鍵の素材は、非量子アルゴリズムに比べてかなり大きくなるから、ネットワークトラフィックやCPU時間に大きなオーバーヘッドがかかるんだよね。

暗号エンジニアの多くは、グットマンの論文を真剣に受け止めてないと思うよ。

ページでは、SSH接続の鍵合意のためにPQCを採用することについてしか触れてないから、全体的な暗号化に関してはオーバーヘッドはかなり少ないと思うよ。それにFAQからも「量子コンピュータはまだ存在しないのに、なんでこんな面倒なことを?」って言ってるけど、上で言った「今送信して、後で復号する」攻撃があるからなんだ。今日送ったトラフィックは、ポスト量子鍵合意を使わない限り、復号されるリスクがあるよ。「量子コンピュータなんて絶対にできないと思う。これは時間の無駄だ」って考える人もいるけど、既存の量子コンピュータを暗号問題に取り組めるレベルまでスケールアップするのは、実質的に不可能だと思ってる人もいる。これは可能性があるね。ただ、暗号的に関連する量子コンピュータへの障壁のほとんどは、基礎的な物理学よりも工学的な課題みたいだ。もし量子コンピュータが実用的だとしたら、膨大なユーザーデータを守ることができる。逆に、間違ってたら、数学的に強固な暗号アルゴリズムに移行しただけになるね。引用された論文は(読むのは面白いけど)、量子に安全でない暗号を使うリスクについての意見を形成するためにあまり真剣に受け止めるべきじゃないと思う。むしろ、量子コンピュータ研究の誇大広告や飾り付けについての皮肉な見方として見るべきかな。

... これは単に鍵交換の話だよ。セッション中にトラフィックに使う対称暗号のために鍵を交換してるだけだから、実際にはオーバーヘッドはほとんどないと思うよ。

鍵交換は接続ごとに1回だけだよね?だから、オーバーヘッドはそんなに悪くないと思う。特に、今SSHできるコンピュータやホスト名のかなりの数が、10年から20年後もまだインターネットに接続されていたら、同じルートパスワードを使ってる可能性が高いと思うし。

これはQCに関する過剰な期待を少し和らげるための楽しいジョークペーパーだね。セキュリティやアルゴリズムの採用決定には使わない方がいいよ。

私の理解では、ポスト量子アルゴリズムの重要な材料は、非量子アルゴリズムに比べてずっと大きくなるから、ネットワークトラフィックやCPU時間に大きなオーバーヘッドが生じるんだ。え?公開鍵(非対称)暗号は、古典的なものでも対称暗号に比べてすでにかなり高価だし、それは普通だよ。使われるのは、AESやその後の高速対称アルゴリズムのための重要だけど限られたキー交換の操作だと思う。私の理解(もし間違ってたら、専門家の方々、教えてください!)では、量子コンピュータの脅威はほぼ100%キー交換に関するもので、対称暗号化には関係ないんだ。対称暗号に対する理論上の最良の探索アルゴリズムはグローバーのアルゴリズムで、平方根の速度向上を提供するから、必要ならキーサイズを倍にすることで簡単に対策できる(つまり、256ビット対グローバーは128ビットの古典的な同等、512ビットは256ビットを提供するから、もう十分すぎるくらいなんだ)。SSHセッションのトラフィックの大半は、何か特別なことがない限り、通常はハンドシェイクじゃないし、その場合はどのみちひどい体験になるだろうからね。だから、初期のハンドシェイクがかなり高価になっても、ネットワークのオーバーヘッドにはあまり関係ないはずだよ。結局、それは特定のセッションの開始時にしか起こらないんだから。

何人かが指摘しているように、今起こっていることは主にキーの確立に関するもので、これは比較的頻繁には起こらないから、オーバーヘッドは大きくないんだ。もう少し詳しく言うと: - 現在のPQアルゴリズムは、署名とキー確立の両方で、従来のアルゴリズムよりもずっと大きなキーサイズを持っているよ。計算速度は、同じかそれ以上に速いんだ。 - ほとんどのプロトコル(例えば、TLSやSSHなど)は、キー確立を比較的頻繁には行わない(例えば、接続の開始時)から、キー確立のサイズは大きな問題じゃない。ただし、キーが大きすぎてTCP MTUを超えると、キーが2つのパケットにまたがることがあるから、いくつかの相互運用性の問題があるんだ。ここでの重要な例外は、SignalやMLSのようなダブルラチェットプロトコルで、これは非常に頻繁にキー変更を行うんだ。たまにPQで再キーを行うことがあるよ(https://security.apple.com/blog/imessage-pq3/)。 - 特にTLSの場合、署名のメッセージサイズはかなり大きな問題で、これは典型的なTLSハンドシェイクが証明書チェーン内で多くの署名を含むからなんだ。このため、TLSにおけるPQ署名の実現可能性については、かなりの懸念があるよ(https://dadrian.io/blog/posts/pqc-signatures-2024/)。他のプロトコルでも同様のことがあるかもしれないけど、私はあまり詳しくないんだ。

私の理解では、ポスト量子アルゴリズムのキー素材は、非量子アルゴリズムと比べてかなり大きいです。これはある程度正しいけど、もう少しニュアンスが必要ですね。まず、署名に関しては問題が大きくて、だからこそ現行のポスト量子署名方式に満足している人はいないし、みんな未来のためにより良いポスト量子署名方式を模索しているんです。でも、署名は緊急の問題ではなくて、署名には「後で復号する」シナリオがないからです。暗号化についてはオーバーヘッドはありますが、そんなに悪くはないです。もうすでにpqcryptoを導入していて、誰もそれに問題を感じていないみたいです。今のOpenSSHを使えばmlkemを使っているし、現代のライブラリを使っているサーバーのあるブラウザを使えば、やっぱりmlkemを使っています。最近のpqcryptoの鍵交換でインターネットがすごく遅くなったって文句を言ってる人は聞いたことがないです。今の一般的なトラフィックに比べれば、ハンドシェイク中の数キロバイトの追加(他の部分には影響なし)はあまり気にならないですね。

あの論文は面白いし、馬鹿にする材料がたくさんあるのは正しいけど…進展もありますよ。PQCrypto 2025でのサム・ジャックの講演を見ることをお勧めします[0]。無関係な悪い論文にこだわってPQの採用を遅らせるのはバカらしいです。この10年間で、理論面では、暗号的に関連する量子因数分解の期待コストが1000倍下がりました[1][2]。ハードウェア面では、フォールトトレランスのデモが、1ラウンドあたりのエラー率が1%から[3]、0.00000001%に[fig3a of 4]まで改善され、完全な量子コードが0.2%のエラー率でデモされている[fig1d of 4]ことが示されています。量子コンピューティングの進展を追いたいなら、フォールトトレランスの徐々に進む様子を見てください。ノイズが大きな数の因数分解を妨げる主な要因です。品質の問題が量の問題に変われば、そのベンチマークは動き始めるでしょう。[0]: https://www.youtube.com/watch?v=nJxENYdsB6c [1]: https://arxiv.org/abs/1208.0928 [2]: https://arxiv.org/abs/2505.15917 [3]: https://arxiv.org/abs/1411.7403 [4]: https://arxiv.org/abs/2408.13687

公に知られていることを除けば、20年以上機密を保つ必要があるシステムに対してPQの導入を求める我々の情報機関の言葉には、ちょっと信じるところがあるかな。編集:いくつかの情報源を追加するね。2014年:「2030年から2040年の間」とのこと https://www.aivd.nl/publicaties/publicaties/2014/11/20/infor... (404) から https://tweakers.net/reviews/5885/de-dreiging-van-quantumcom... (オランダ語) 2021年:「2030年までに到達する可能性は小さい」 https://www.aivd.nl/documenten/publicaties/2021/09/23/bereid... (オランダ語) 2025年:「2030年までに‘今保存して後で復号’攻撃から守る」と、18カ国の共同論文 https://www.aivd.nl/binaries/aivd_nl/documenten/brochures/20... (英語)

これに先手を打つのは理にかなってるね。特に、結構簡単な鍵の交換だから。与えられた2つのオプションのうち、どっちが強いの?たぶん512の方かな?

Hacker Newsで議論の続きを見る