なぜPQC対応は「義務化を待って」はいけないのか

2026.07.07 20:31:26

最近pqc_railsのドキュメントを整理していて、ハーベスト攻撃について改めて考え直す機会があった。考えれば考えるほど、これは技術者だけが知っていればいい話じゃないなと思うようになったので、一度整理して書いておく。

ハーベスト攻撃、というのは簡単に言うと「今この瞬間の暗号化通信を盗んで保存しておき、将来量子コンピュータが実用化されたら解読する」という攻撃だ。Harvest Now, Decrypt Laterとも呼ばれるけど、ぼくはハーベスト攻撃の方が自分にとってしっくりくるので、こう呼ぶことにしている。

最初にこれを知ったとき、正直「まあ量子コンピュータなんてまだ先の話だろう」くらいに思っていた。でも考えているうちに、これは時間軸のトリックにやられていたんだなと気づいた。
ヤバいのは「未来に量子コンピュータができること」じゃない。ヤバいのは「今日この瞬間に、誰かがすでにデータを盗んで保存している可能性がある」ということなのだった。量子コンピュータの実用化がいつになろうと関係ない。攻撃者からすれば、暗号文を保存しておくコストはそう高くないし、何年後に解読できるかは向こうの都合でいい。こっちが「まだ大丈夫」と思っている間に、盗む側の時間は着々と進んでいるというわけだ。

そう考えると、「PQC対応の義務化はまだ先だから」という理由で対応を後回しにするのは、実はかなり危うい判断なんじゃないかと思うようになった。

義務化を待つという発想は、「規制が来たら対応すればいい」というコンプライアンス的な思考だ。でもハーベスト攻撃の文脈では、対応が遅れた分だけ「将来解読される可能性のあるデータ」が静かに積み上がっていく。義務化の期限は自分たちの被害の大きさとは関係なく決まる話で、その期限まで待つ理由はどこにもないのだった。

特に厄介なのは、保存期間の長いデータを扱っている場合だ。医療記録、法務文書、知的財産に関する通信、こういうものは「10年後、20年後にも価値を持つ」データだ。今日暗号化して安全なつもりでいても、その暗号がRSAやECCベースなら、将来解読される可能性を抱えたまま何十年も存在し続けることになる。

一方で、数年で価値がなくなるようなデータであれば、多少対応が遅れても実害は小さい。だから本当は「どのデータが危険か」を見極めることが先で、闇雲に全部を今すぐPQC化するという話でもない。ただ、見極めた上で「これは危ない」と判断したデータについては、義務化を待つ理由はどこにもないというのが今のぼくの結論だ。

pqc_railsを作っている理由の一つもここにある。RailsアプリケーションでActiveRecord::Encryptionを使っている場合、そこにPQCを組み込むハードルをできるだけ下げたいと思っている。義務化されてから慌てて対応するのではなく、「今のうちにやれることをやっておく」を選択肢として用意しておきたいというわけだ。

国防や国家機密レベルのデータについては、実はすでにNSAのCNSA 2.0のような形で段階的な移行が進んでいる。でも民間の、普通のWebサービスやRailsアプリケーションが扱っているデータについては、まだこれからという段階だ。そしてそここそが、一番見過ごされやすい場所なんじゃないかと思っている。