コンテンツにスキップ
getnextpdf.com

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 Enterprisenextpdf/enterprise)に同梱され、Enterprise ティアのライセンスエンベロープで有効化されます。その権利のないデプロイでは、この能力のクラスは読み込まれません。エディションを比較してライセンスを取得する

ライセンスは Enterprise の PKCS#11 面を全体として有効化します。その内部にあるポスト量子パスは、ライセンスティアにかかわらずプレビューのままです。依然として 2 つの独立したオプトインが必要です。すなわち、ここで記載するプロセスゲートと、Pkcs11Signer の署名者ごとのコンストラクタフラグです。

シンボルパラメータ既定の挙動戻り値スローまたは失敗条件備考
Pkcs11PqsAlgorithm文字列バックの列挙型、15 ケースケースごとに 1 つの FIPS 204 / FIPS 205 パラメータセットを命名列挙ケースケースアクセス時は何もなしケース値はパラメータセット名(例:ML-DSA-65)。
Pkcs11PqsAlgorithm::isMlDsa()なしファミリ判定boolスローしないMlDsa44MlDsa65MlDsa87true
Pkcs11PqsAlgorithm::isSlhDsa()なしisMlDsa() の否定boolスローしない12 の SLH-DSA ケースで true
Pkcs11PqsAlgorithm::mechanismId()なしファミリを候補となる PKCS#11 v3.1 PQ メカニズム id に対応付けintランタイムに暫定的な Pkcs11 PQ 定数がない場合は PHP ErrorCKM_ML_DSA または CKM_SLH_DSA。いずれの id も暫定。
Pkcs11PqsAlgorithm::parameterSetId()なしケースを OASIS パラメータセット判別子に対応付けintランタイムに暫定的な Pkcs11 PQ 定数がない場合は PHP ErrorCKP_* 値。暫定。
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スローしない変数が未設定、または 0trueyes を含むその他の値はオフ。
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(): bool
public function isSlhDsa(): bool
public function mechanismId(): int
public function parameterSetId(): int
public function signatureLength(): int
public function nistCategory(): int
enum PqsPreviewFeature: string
case PREVIEW_PQS_HSM = 'preview_pqs_hsm';
public const string ENV_PREVIEW_PQS_HSM = 'NEXTPDF_FEATURE_PREVIEW_PQS_HSM';
public function isEnabled(): bool
final 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(): self
public 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)に従い、MlDsa44MlDsa65MlDsa87 に対してそれぞれ 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() は、generallyAvailableadesCompliantverificationAvailableconformanceClaimedfalse に、recognitionOnlytrue にハードコードします。いかなる構成、コンストラクタオプション、環境フラグも主張をオンに切り替えません。ゲートを反映するのは hsmRoundtripPreviewEnabled のみです。
  • 検証パスなし。 NextPDF はポスト量子検証パスを持ちません。認識されたアルゴリズム識別子や整形式の署名長が、受理の判定になることは決してありません。
  • ゲート変数を 0trueyeson、または空文字列に設定しても、ゲートはオフのままです。厳密に文字列 1 のみが有効化します。
  • putenv() による変更は、読み取りがライブであるため、次の isEnabled() 呼び出しで反映されます。プロセスの途中で切り替えられたゲートは即座に観測されます。
  • mechanismId()parameterSetId()Pkcs11 拡張名前空間から定数を解決します。暫定的なポスト量子拡張定数を持たないランタイムでは、呼び出し時に PHP Error(未定義定数)で失敗します。
  • メカニズム 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 では無視されます。

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 はこの姿勢をコードにエンコードしています。すなわち、あらゆる構成において conformanceClaimedfalseadesCompliantfalseverificationAvailablefalse です。このプレビューが生成する署名は、長期保管向けの 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() の出力はログやステータスエンドポイントで安全に使用できます。提供や検証のいかなる主張も含まないように表現されています。

このページは、外部から観測可能な挙動とサポート対象の公開 API 面のみを記載します。内部の名前空間パス、ヘルパークラス、メカニズムテーブル、ランブックのファイル名、チケットのプレフィックスは対象外です。