Enterprise エディション安定性: 実験的
ポスト量子署名プレビュー — 詳細リファレンス
このページは、NextPDF Enterprise におけるポスト量子署名(PQS)プレビュー面の契約レベルのリファレンスです。3 つの公開シンボル、すなわち Pkcs11PqsAlgorithm パラメータセット列挙型、PqsPreviewFeature プロセスゲート、PqsCapabilityStatus 記述子を扱います。あわせて NEXTPDF_FEATURE_PREVIEW_PQS_HSM 環境ゲートも記載します。
この面は**実験的(experimental)**であり、既定でオフです。ML-DSA(FIPS 204)と SLH-DSA(FIPS 205)のアルゴリズム識別子、パラメータセット、署名長を認識します。認識は検証の判定ではありません。ポスト量子検証パスは存在しません。AdES、FIPS 検証、適合性のいずれの主張も行わず、プレビューフラグがそれを生み出すこともできません。これを利用する署名エントリポイント Pkcs11Signer::signPqs() は能力ページで説明しています。
提供と使用許諾
「提供と使用許諾」という見出しのセクションこの能力は NextPDF Enterprise(nextpdf/enterprise)に同梱され、Enterprise ティアのライセンスエンベロープで有効化されます。その権利のないデプロイでは、この能力のクラスは読み込まれません。エディションを比較してライセンスを取得する。
ライセンスは Enterprise の PKCS#11 面を全体として有効化します。その内部にあるポスト量子パスは、ライセンスティアにかかわらずプレビューのままです。依然として 2 つの独立したオプトインが必要です。すなわち、ここで記載するプロセスゲートと、Pkcs11Signer の署名者ごとのコンストラクタフラグです。
公開 API 面
「公開 API 面」という見出しのセクション| シンボル | パラメータ | 既定の挙動 | 戻り値 | スローまたは失敗条件 | 備考 |
|---|---|---|---|---|---|
Pkcs11PqsAlgorithm | 文字列バックの列挙型、15 ケース | ケースごとに 1 つの FIPS 204 / FIPS 205 パラメータセットを命名 | 列挙ケース | ケースアクセス時は何もなし | ケース値はパラメータセット名(例:ML-DSA-65)。 |
Pkcs11PqsAlgorithm::isMlDsa() | なし | ファミリ判定 | bool | スローしない | MlDsa44、MlDsa65、MlDsa87 で true。 |
Pkcs11PqsAlgorithm::isSlhDsa() | なし | isMlDsa() の否定 | bool | スローしない | 12 の SLH-DSA ケースで true。 |
Pkcs11PqsAlgorithm::mechanismId() | なし | ファミリを候補となる PKCS#11 v3.1 PQ メカニズム id に対応付け | int | ランタイムに暫定的な Pkcs11 PQ 定数がない場合は PHP Error | CKM_ML_DSA または CKM_SLH_DSA。いずれの id も暫定。 |
Pkcs11PqsAlgorithm::parameterSetId() | なし | ケースを OASIS パラメータセット判別子に対応付け | int | ランタイムに暫定的な Pkcs11 PQ 定数がない場合は PHP Error | CKP_* 値。暫定。 |
Pkcs11PqsAlgorithm::signatureLength() | なし | ケースに対する FIPS 規定の署名バイト長 | int(正) | スローしない | 想定外の長さの署名を拒否するため署名パスが使用。 |
Pkcs11PqsAlgorithm::nistCategory() | なし | 主張される NIST セキュリティ強度カテゴリ | int | スローしない | 1、2、3、または 5 を返す。 |
PqsPreviewFeature | 文字列バックの列挙型、1 ケース | 単一ケース PREVIEW_PQS_HSM、定数 ENV_PREVIEW_PQS_HSM | 列挙ケース | ケースアクセス時は何もなし | プロセスレベルのプレビューゲート。 |
PqsPreviewFeature::isEnabled() | なし | getenv() をライブで読み取り、文字列 1 との厳密比較 | bool | スローしない | 変数が未設定、または 0、true、yes を含むその他の値はオフ。 |
PqsCapabilityStatus::__construct() | 名前付き readonly フィールド 9 個 | 任意の記述子インスタンスを構築 | PqsCapabilityStatus | スローしない | current() が正規のコンストラクタ。 |
PqsCapabilityStatus::current() | なし | 実行中プロセス向けの記述子を構築 | PqsCapabilityStatus | スローしない | すべての主張ブール値は固定。ゲートで変化するのは hsmRoundtripPreviewEnabled のみ。 |
PqsCapabilityStatus::summary() | なし | 1 行のステータステキスト | string | スローしない | 文言に提供・保管・検証のいかなる主張も含まない。 |
enum Pkcs11PqsAlgorithm: string
case MlDsa44 = 'ML-DSA-44';case MlDsa65 = 'ML-DSA-65';case MlDsa87 = 'ML-DSA-87';
case SlhDsaSha2_128s = 'SLH-DSA-SHA2-128s';case SlhDsaShake_128s = 'SLH-DSA-SHAKE-128s';case SlhDsaSha2_128f = 'SLH-DSA-SHA2-128f';case SlhDsaShake_128f = 'SLH-DSA-SHAKE-128f';
case SlhDsaSha2_192s = 'SLH-DSA-SHA2-192s';case SlhDsaShake_192s = 'SLH-DSA-SHAKE-192s';case SlhDsaSha2_192f = 'SLH-DSA-SHA2-192f';case SlhDsaShake_192f = 'SLH-DSA-SHAKE-192f';
case SlhDsaSha2_256s = 'SLH-DSA-SHA2-256s';case SlhDsaShake_256s = 'SLH-DSA-SHAKE-256s';case SlhDsaSha2_256f = 'SLH-DSA-SHA2-256f';case SlhDsaShake_256f = 'SLH-DSA-SHAKE-256f';
public function isMlDsa(): boolpublic function isSlhDsa(): boolpublic function mechanismId(): intpublic function parameterSetId(): intpublic function signatureLength(): intpublic function nistCategory(): intenum PqsPreviewFeature: string
case PREVIEW_PQS_HSM = 'preview_pqs_hsm';
public const string ENV_PREVIEW_PQS_HSM = 'NEXTPDF_FEATURE_PREVIEW_PQS_HSM';
public function isEnabled(): boolfinal readonly class PqsCapabilityStatus
public const string MATURITY_PREVIEW_EXPERIMENTAL = 'preview-experimental';public const string MECHANISM_STATUS_PROVISIONAL = 'provisional';
public function __construct( public bool $hsmRoundtripPreviewEnabled, public bool $generallyAvailable, public bool $adesCompliant, public bool $verificationAvailable, public bool $conformanceClaimed, public bool $recognitionOnly, public string $maturity, public string $mechanismIdStatus, public string $envGate,)
public static function current(): selfpublic function summary(): string- パラメータセットカタログ。
NextPDF\Enterprise\Security\Signature\Hsm\Pkcs11PqsAlgorithmは 3 つの ML-DSA セット(FIPS 204)と 12 の SLH-DSA セット(FIPS 205 §11.p12、Table 2)を列挙します。各ケースは、暫定的なメカニズム id、パラメータセット判別子、FIPS 規定の署名バイト長、および主張される NIST カテゴリに対応付けられます。 - 署名長。
signatureLength()は、FIPS 204 §4.p15(Table 2)に従い、MlDsa44、MlDsa65、MlDsa87に対してそれぞれ 2420、3309、4627 バイトを返します。SLH-DSA ケースは、FIPS 205 §11(Table 2)に従い、レベルとバリアントに応じて 7856、17088、16224、35664、29792、49856 バイトを返します。これを利用する署名者は、返された署名が異なる長さである場合にHsmOperationExceptionをスローし、FIPS 204 §x34 の長さ拒否規律を反映します。 - カテゴリ。
nistCategory()は、FIPS 204 §4.p9 に従い、ML-DSA ケースに対して 2、3、5 を返します。SLH-DSA ケースは、セキュリティパラメータレベルに応じて 1、3、5 を返します。 - プロセスゲート。
PqsPreviewFeature::PREVIEW_PQS_HSMは既定でオフです。isEnabled()は、環境変数NEXTPDF_FEATURE_PREVIEW_PQS_HSMが文字列1に厳密に等しい場合にのみtrueを返します。読み取りは呼び出しごとにライブで行われ、メモ化は一切されません。 - 補完的なゲーティング。 プロセスゲートは、
Pkcs11Signerの署名者ごとの$enablePostQuantumコンストラクタオプトインとは別物です。署名呼び出しは、署名者ごとのオプトインがなければフェイルクローズします。プロセスゲートは、将来のあらゆるラウンドトリップ挙動や保管挙動に対する、単一の監査可能な境界として存在します。 - 誠実性不変条件。
NextPDF\Enterprise\Security\Signature\Hsm\PqsCapabilityStatus::current()は、generallyAvailable、adesCompliant、verificationAvailable、conformanceClaimedをfalseに、recognitionOnlyをtrueにハードコードします。いかなる構成、コンストラクタオプション、環境フラグも主張をオンに切り替えません。ゲートを反映するのはhsmRoundtripPreviewEnabledのみです。 - 検証パスなし。 NextPDF はポスト量子検証パスを持ちません。認識されたアルゴリズム識別子や整形式の署名長が、受理の判定になることは決してありません。
エッジケースと失敗モード
「エッジケースと失敗モード」という見出しのセクション- ゲート変数を
0、true、yes、on、または空文字列に設定しても、ゲートはオフのままです。厳密に文字列1のみが有効化します。 putenv()による変更は、読み取りがライブであるため、次のisEnabled()呼び出しで反映されます。プロセスの途中で切り替えられたゲートは即座に観測されます。mechanismId()とparameterSetId()はPkcs11拡張名前空間から定数を解決します。暫定的なポスト量子拡張定数を持たないランタイムでは、呼び出し時に PHPError(未定義定数)で失敗します。- メカニズム id とパラメータセット id は暫定的です。OASIS は PKCS#11 v3.1 のポスト量子レジストリを確定していません。ファームウェアが異なる id を割り当てるトークンは PKCS#11 層で失敗します。運用者はプレビューを有効化する前にファームウェアの id を確認しなければなりません。
- これを利用する署名者が受け入れる署名コンテキストは 255 バイトに制限され、FIPS 204 の署名入力契約(§x43.p2)に合致します。より長いコンテキストは、いかなるトークン呼び出しよりも前に
InvalidArgumentExceptionをスローします。 PqsCapabilityStatus::__construct()は public であるため、手作業で構築したインスタンスは任意のブール値を保持できます。そのようなインスタンスは単なる値オブジェクトにすぎません。いかなる署名挙動も変更しません。current()が正規のハードコードされたコンストラクタです。- これを利用する署名者におけるランダム化と決定論的の選択は、FIPS 205 §x65.p7 のセマンティクスに従います。ヘッジド署名が既定です。このフラグは、常に自身のノンスによってランダム化する ML-DSA では無視されます。
FIPS モードでの挙動
「FIPS モードでの挙動」という見出しのセクションML-DSA と SLH-DSA は FIPS 204 および FIPS 205 のアルゴリズムですが、このプレビューは FIPS 140-3 検証の主張を一切行いません。このパスに対して FIPS 検証済みのポスト量子 HSM ラウンドトリップは確立されていません。Security ディープリファレンスで記載されている Enterprise の FIPS モード暗号ポリシープロファイルは、古典的な署名アルゴリズムをゲートします。それは PQS 面を検証済みセットに受け入れることはありません。FIPS モードを有効化しても、ポスト量子署名が FIPS 検証済みになるわけではありません。FIPS 検証済みの署名が要求される場所にこのプレビューをデプロイしないでください。
| 主張 | 標準 | 条項 |
|---|---|---|
| ML-DSA-44/65/87 は主張される NIST カテゴリ 2、3、5 を持つ。 | FIPS 204 | §4.p9 |
| ML-DSA 署名サイズは 2420、3309、4627 バイト。 | FIPS 204 | §4.p15 (Table 2) |
| 署名コンテキストのバイト列は 255 バイトに制限。 | FIPS 204 | §x43.p2 |
| 長さの誤った署名または鍵は拒否しなければならない。 | FIPS 204 | §x34 |
| 12 の SLH-DSA パラメータセットが承認されている。 | FIPS 205 | §11.p12 (Table 2) |
| SLH-DSA 署名サイズは Table 2 に従う(128s で 7856 バイト)。 | FIPS 205 | §11.p6 |
| ヘッジド署名が既定であり、決定論的バリアントが存在。 | FIPS 205 | §x65.p7 |
| CAdES/PAdES スイートのカタログは RSA と EC-DSA のみをプロファイル。 | ETSI TS 119 312 V1.5.1 | §7.x7.p10 (Table A.1) |
| PKCS#11 PQ メカニズム id は暫定的。 | OASIS PKCS#11 v3.1 | 製品ソースに基づく |
すべての条項は言い換えたものです。NextPDF は規範的テキストを複製しません。NextPDF はいかなる認証も保有せず、いかなる認証も付与しません。 上記の記述は、識別子、長さ、境界に関する構造的整合の記述です。これらは適合性試験の結果ではなく、第三者による証明でもなく、FIPS、OASIS、ETSI の適合性の主張でもありません。PqsCapabilityStatus はこの姿勢をコードにエンコードしています。すなわち、あらゆる構成において conformanceClaimed は false、adesCompliant は false、verificationAvailable は false です。このプレビューが生成する署名は、長期保管向けの AdES 準拠ではなく、ほとんどの PDF ビューアは検証時にこれを拒否します。
開発ノート
「開発ノート」という見出しのセクション-
OASIS PKCS#11 ポスト量子メカニズムレジストリは確定していません。ここで使用される
CKM_ML_DSA/CKM_SLH_DSAの id とパラメータセット定数は暫定的であり、仕様の引用ではなく製品ソースに基づいています。 -
現在のマイルストーンはモックテスト済みの準備状態です。実際のポスト量子ファームウェア HSM のラウンドトリップはまだ検証されていません。
-
本番環境では両方のゲートをオフに保ってください。このプレビューは、古典的な RSA/ECDSA PKCS#11 パスにない本番能力を何ら追加しません。
-
実ハードウェアでの評価を行う前に、トークンファームウェアのメカニズム id とパラメータセット id を暫定値と照合して確認してください。不一致は NextPDF 内部ではなく PKCS#11 層で失敗します。
-
ツールや UI で PQS ステータスを表示する際は、
PqsCapabilityStatus::current()を唯一の信頼できる情報源として扱ってください。そのブール値を手作業で言い直さないでください。 -
summary()の出力はログやステータスエンドポイントで安全に使用できます。提供や検証のいかなる主張も含まないように表現されています。
- ポスト量子 HSM 署名(PQS)プレビュー — 能力ページ
- Security — ディープリファレンス(HSM、PKCS#11、FIPS モード)
- Signature — ディープリファレンス
- HSM 署名のセットアップ
- Security / Signing(Core)
公開範囲の境界
「公開範囲の境界」という見出しのセクションこのページは、外部から観測可能な挙動とサポート対象の公開 API 面のみを記載します。内部の名前空間パス、ヘルパークラス、メカニズムテーブル、ランブックのファイル名、チケットのプレフィックスは対象外です。