要約

  • draft-ietf-openpgp-nist-bp-comp-05は、実験用100–107を割り当て済みの37–44へ置き換えたと記す。だが2026年10月1日に取得したIANAレジストリでは37–99が未割り当てだった。確認できるのはその時点の不一致だけで、手続きの原因や結末ではない。
  • 八方式はすべて任意実装であり、v6以降の鍵・証明書・署名に限定される。番号の認識は、実装、設定、完全な実行を意味しない。
  • 複合署名はECDSAとML-DSAの両方が成功して初めて成功する。複合KEMもECDHとML-KEM、曲線点の完全検証、結合コンテキスト、鍵ラップ整合性の全てを必要とする。

「41を知っている」と「41を実行した」の間

草案第05版の変更履歴は、100–107を37–44へ変更し、指紋、KEM中間値、テストベクトルを作り直したと説明する。四つの署名方式には分離署名ベクトルも追加された。HTML版とXML版でも同じ定義を確認できる。

しかし、同日に凍結したIANA OpenPGPレジストリは36までを掲載し、37–99をUnassignedとしていた。後日更新される可能性はある。公開資料だけから、割り当てが拒否された、更新が遅れた、あるいは草案が誤っているとは言えない。運用証跡にはURLと取得時刻、草案版、対象番号、解釈した実装版を一緒に残す必要がある。

Datatrackerの文書ページでは、これは2026年9月24日付、2027年3月28日失効予定のOpenPGP作業部会Internet-Draftだった。APIのintended statusは空で、草案ヘッダーはInformationalとする。履歴には、議長の承認待ちで改訂版が必要という状態が記録されていた。RFCでも承認済み標準でもない。

八方式は同じ緑色にまとめられない

37と38はML-KEM-768/1024をNIST P-384/P-521のECDHと組み合わせる。39と40はBrainpool P-384/P-512との組み合わせである。41–44は対応するML-DSA-65/87とECDSAを組み合わせた署名方式だ。

すべてMAYである。ある実装が37に対応しても44に対応するとは限らない。暗号プロバイダにML-DSAがあってもOpenPGPの複合形式が有効とは限らない。番号は構成と長さを固定するが、配備状態やポリシーを宣言しない。

RFC 9580がOpenPGPの鍵・パケット・署名構造を与え、RFC 9980がML-KEM、ML-DSAとmultiKeyCombineを定める。今回の方式はv6以降の鍵と証明書のみを対象とし、署名もv6以降、ダイジェストは256ビット以上でなければならない。監査ログにはこの条件を省略できない。

KEMの最終成功は途中の証人になれない

送信側はECDHとML-KEMの両方を実行する。二つの共有値に、ECDH暗号文点、ECDH公開鍵、アルゴリズムIDを加えてmultiKeyCombineへ渡し、得られたKEKでセッション鍵をAES-256 key wrapする。

受信側はPKESKのIDと秘密鍵のIDを照合し、方式ごとの固定長で成分を分解し、両方をデカプセル化し、同じ結合入力を再現して64ビット整合性検査を通す。v3 PKESKでは対称方式IDがラップ外にあるため、復元した鍵長との一致も検査する。

FIPS 203はML-KEMを、SP 800-56A Rev.3は従来型曲線鍵確立の文脈を与える。最後に鍵が解けたという事実だけでは、途中の解析や検査を証明できない。各段階の受領証が必要である。

秘密スカラーの前に点を止める

第04版は、外部から受け取るNIST・Brainpoolの短Weierstrass曲線点を完全検証する要求を追加した。点が無限遠点でないこと、座標が体内にあること、曲線方程式を満たすことを、秘密スカラー乗算より前に確認する。

カプセル化では受信者ECDH公開鍵、デカプセル化では一時ECDH暗号文点が対象になる。失敗時は中止する。オフカーブ点で秘密乗算を行えば、invalid-curve攻撃からECDH秘密値を回収され得ると草案は警告する。

背景はFIPS 186-5、推奨曲線のSP 800-186、Brainpoolを定めるRFC 5639、公開鍵検証を扱うSEC 1 v2にまたがる。長さが正しいだけでは点の所属を証明しない。

署名の判定は必ずANDになる

複合署名はOpenPGPデータのダイジェストに対するECDSAとML-DSAを含む。片方が未対応、異常、失敗なら全体は失敗である。慣れた側だけを見て成功にしてはならない。

ECDSAのRとSの長さは曲線で異なり、ML-DSA-65署名は3,309オクテット、ML-DSA-87は4,627オクテットである。FIPS 204がML-DSAを定義し、RFC 9794が従来型・耐量子ハイブリッドの用語を整理する。どちらも片方の成功を複合成功へ昇格させない。

分離署名ベクトルの再現は、仕様例の符号化と演算を検査する。実際の署名者、権限、鍵の由来、アプリケーション判断は別である。ダイジェスト、二つの判定、AND結果、鍵信頼、業務結果を別フィールドにするべきだ。

証明していないことを残す

本調査は特定製品、配備、相互接続、パケット、攻撃、事故、性能、採用数を確認していない。また、RFC 9980における複数受信者全体の耐量子機密性という別論点を扱わない。一つのNIST/Brainpool複合方式の内部で、何を実行したと証明できるかだけを扱う。

番号の受領証、解析の受領証、二成分の受領証、ポリシーの受領証を分ければ、将来レジストリや草案が変わっても過去の判断を再構成できる。