
量子コンピューターが実用の段階に入ると、いま使われている暗号は解かれてしまう。そこまで到達するのは10年から15年以上先だと専門家は見積もる。それでも準備が急がれるのは、破られるのが将来でも狙われるのは今のデータだからだ。通信を丸ごと記録して保存しておき、解ける機械が手に入った時点でまとめて読む手口がある。工場や設備に据え付ける機器はちょうど10年から15年動き続け、そこを流れるデータもその間ずっと価値を持つ。
移行の期限も決まっている。米国立標準技術研究所(NIST)は2024年、量子コンピューターでも解けないように設計した暗号(後量子暗号)の標準を確定し、いま広く使われている方式を2030年以降は非推奨、2035年以降は使用禁止とする日程を示した。ただし、電池と小さなマイコンで動く機器にとってどれだけ重い処理になるのかは、はっきりした数字が出回っていない。
NIkir0LL氏は修士論文の一環として、その値をESP32で測った。使ったのはXIAO ESP32-C6とXIAO ESP32-S3の2機種で、新しい標準のうち鍵の受け渡しを担うML-KEM-1024を組み込んでいる。性能試験用の空回しではなく、Wi-Fi経由でサーバーとやり取りする仕組みを実際に作って計った値だ。
結果は拍子抜けするほど軽かった。通信を始める前に双方が共通の鍵を作る手続きは、ESP32-C6で33.8ミリ秒、ESP32-S3で39.6ミリ秒で終わる。人が待たされたと感じる長さではない。処理を終えた後も、自由に使えるメモリーは250KB以上残っていた。
足りなくなったのは別の場所だった。プログラムが計算の途中経過を置く一時的な領域は、既定のままでは容量が足りず、ファームウェアがそもそも動かない。ML-KEM-1024が使う秘密の鍵は、それ自体が3168バイトある。同氏はこの領域を24KBまで広げて解決した。開発環境の初期設定が速度より不具合の追いやすさを優先している点にも注意を促す。
最も意外だったのは、ESP32-C6が積む専用回路の守備範囲だったという。専用回路は暗号の一部の計算だけを肩代わりする仕組みで、電子署名を作る処理ではESP32-S3の170.2ミリ秒に対しC6が22.2ミリ秒と、7.7倍の差が付いた。C6は動作周波数も低く、コアの数も少ない非力な側である。ところが共通の鍵を作り出す計算に移ると、S3の530.8ミリ秒に対しC6は505.9ミリ秒で、ほとんど変わらない。同じ種類の数学を同じチップで扱っているのに、結果が正反対になる。同氏は、専用回路の有無ではなくどの計算を覆っているかを確かめる必要があると書いている。
限界も自分で並べている。共通鍵側の値は別の通信方式の所要時間からの推定で、測定のなかで最も根拠が弱い部分だと断る。消費電力も測っていない。新しい方式は通信の準備で1800バイトを送り、従来の方式は538バイトで済むため、電池で動かす機器では通信量のほうが効くはずだとする。
同氏はコードのおよそ6割をAIの助けを借りて書いたことも先に明かしたうえで、問題の立て方と方式の選定、試験環境の構築、実機での測定は自分の仕事だとする。ファームウェアと測定の手順はGitHubで公開しており、数値の検証を歓迎するとしている。

