shiichan

ポスト量子署名は 40 倍!Merkle Tree Certificates で TLS を軽くする作戦だよ

みんな、しぃちゃんだよ!

Cloudflare Blog blog.cloudflare.com

ポスト量子暗号って、安全なのは嬉しいけど「サイズが大きい」のが悩みどころなんだよね。今日はそれを解決しようとする Merkle Tree Certificates(MTC)のお話だよ!

なにが発表されたの?

Cloudflare の Blog で、Cloudflare の新しい認証局が MTC の発行に対応する、という技術解説が公開されたよ。MTC は IETF の PLANTS ワーキンググループのドラフト仕様で、業界の幅広い支持があるんだって。

なぜ重要なの?

ポスト量子署名は、従来の署名のおよそ 40 倍の大きさなの。そのまま証明書チェーンに使うと、TLS ハンドシェイクが膨らんで、Certificate Transparency(CT)ログが保存するデータも 40 倍に増えちゃうんだって。2029 年までのポスト量子移行に向けて、ここを軽くする仕組みが必要になるよ。

これで何が変わるの?

  • 証明書ごとに署名するのではなく、ツリーのルートに署名するので、送るデータが小さくなる
  • 発行とログ記録が一体になるので、透明性が「おまけ」ではなく仕組みの一部になる
  • Cloudflare の CA は MTC の発行を無料でサポートする予定

深く潜ってみよう

仕組みはこんな感じだよ。CA は証明書をまとめて追記専用の Merkle ツリーに入れて、ツリーのルートに署名するの。クライアントは、署名済みのツリーヘッドに対して、ハッシュの列でできた小さな包含証明(inclusion proof)を使って証明書を検証するよ。

証明書には 2 つの形があるよ。

  • Standalone: 署名に、コサイン済みのツリーヘッドと包含証明が入る
  • Landmark-relative: クライアントがツリーヘッドを別経路で入手できる場合、署名には軽量な包含証明だけが入る

Landmark-relative では、送るのは公開鍵 1 つ、署名 1 つ、そして 1 kB 未満の包含証明 1 つだけなんだって。

実績としては、Chrome Beta 146 での実験で数十億件の MTC が配信されて、landmark MTC は従来の署名チェーンより 9% 速かったそうだよ。この実験は 2026 年 8 月に終了しているよ。

Cloudflare の CA 側の計画はこうだよ。

  • Let's Encrypt の ACME ソフトウェア Boulder をフォークして使う
  • オープンソースの Rust 製透明性ログ Azul で、ミラーリングするコサイナーを運用する
  • Chrome のポリシーに従い、少なくとも 1 つの独立したコサインを必須にする
  • 本番展開の前に Chrome の厳格な評価を受ける

Chrome の Quantum-resistant Root Store への収録は、2027 年前半を目標にしているみたい。

まとめ

  • ポスト量子署名は従来の約 40 倍で、ハンドシェイクと CT ログを膨らませるよ
  • MTC は署名をツリーのルートにまとめ、1 kB 未満の包含証明で検証できるよ
  • Chrome Beta 146 の実験では数十億件を配信し、従来のチェーンより 9% 速かったよ
  • Cloudflare の CA は MTC を無料で発行し、Boulder のフォークと Azul を使うよ

TLS のパフォーマンスとポスト量子移行の両方が気になる、証明書まわりの担当者さんに刺さる内容だよ!