# PQC & ZK Signature Verifier Auditor

Audit ML-DSA / SLH-DSA / FN-DSA / BBS+ / PLONK / Halo2 parameter compatibility, proof sizes and trusted-setup requirements, with a live pure-TS ML-DSA (FIPS 204) demo

> Canonical page: https://elysiatools.com/en/tools/ml-dsa-slh-dsa-fn-dsa-pqc-bbs-plus-plonk-halo2-zk-verifier

- **Category:** Cryptography

- **Keywords:** ml-dsa, slh-dsa, fn-dsa falcon, fips 204, post quantum cryptography, bbs signatures, plonk, halo2, zk verifier, cnsa 2.0, pqc signature sizes, powers of tau

## Overview

Audit the post-quantum signature and zero-knowledge verifier landscape — and run a **real ML-DSA keygen/sign/verify in your browser-side pipeline**, in pure TypeScript.

**What it checks:**
- **Standards matrix**: ML-DSA (FIPS 204 final — note: *not* 203, which is ML-KEM), SLH-DSA (FIPS 205, 12 parameter sets), FN-DSA (FIPS 206 draft, Falcon), BBS signatures (CFRG draft, BLS12-381), and the ZK verifier families Groth16 / PLONK / Halo2 — with exact public-key, secret-key and signature sizes, NIST security categories, and COSE/JOSE algorithm IDs from **RFC 9964** (-48/-49/-50).
- **Trusted-setup audit**: which systems need a per-circuit ceremony (Groth16), a universal updatable Powers-of-Tau SRS (PLONK/KZG), or nothing at all (Halo2's transparent IPA over Pasta curves; every lattice/hash PQC scheme).
- **CNSA 2.0 timeline**: 2027 new-acquisition gate, 2030 software/firmware-signing deadline (LMS/XMSS encouraged now), 2033 browsers/servers/OS, 2035 NSM-10 endpoint.
- **Live ML-DSA demo**: generates a deterministic keypair, signs your message and verifies it — plus a tamper-detection check — using the repository's pure-TS FIPS-204-final port, which was verified **byte-exact against locally compiled PQClean reference binaries** (pk/sk/sig identical for ML-DSA-44/65/87, rejection-loop trace matched iteration-for-iteration).
- **Blob identifier**: paste a hex or base64 public key / signature and the auditor matches its byte length against every parameter set (e.g. 1312 → ML-DSA-44 public key; 3309 → ML-DSA-65 signature; 49856 → SLH-DSA-256f signature).

**Good to know:** the FIPS numbering in older blog posts is frequently shifted by one — this tool pins the verified mapping (ML-DSA = 204, SLH-DSA = 205, FN-DSA = 206 draft; ML-KEM = 203). BBS proofs are not fixed-size: per draft-12 the deserialization floor is 3 G1 points + 4 scalars = 272 bytes, growing 32 bytes per additional scalar.

## Inputs

- **Mode** (select)
- **Scope** (select)
- **ML-DSA Parameter Set** (select)
- **Message to Sign** (text): e.g. release-manifest-2026-10-04
- **Key or Signature Blob (hex or base64)** (textarea): Paste a hex or base64 ML-DSA public key / SLH-DSA signature…

## When to use

- Evaluating key sizes, signature overhead, and trusted-setup trade-offs across NIST PQC standards (ML-DSA, SLH-DSA, FN-DSA) and ZK verifiers (Groth16, PLONK, Halo2).
- Testing client-side ML-DSA-44, ML-DSA-65, or ML-DSA-87 signing, verification, and tamper detection with deterministic keypairs.
- Identifying unknown post-quantum cryptographic public keys or signature blobs from raw hex or base64 strings by exact byte length matching.

## How it works

- Select your operational mode: matrix audit, live ML-DSA sign and verify demo, or raw blob identification.
- Filter your scope across all cryptographic schemes, NIST PQC digital signatures, or zero-knowledge verifier families.
- Configure parameter sets such as ML-DSA-65, enter custom payload messages to sign, or paste encoded key and signature blobs for length parsing.
- Generate audit matrices, run deterministic FIPS 204 signature cycles with tamper verification, or review matched algorithm parameters alongside RFC 9964 IDs and CNSA 2.0 timelines.

## Use cases

- Security engineers planning CNSA 2.0 compliance timelines for firmware signing, protocol upgrades, and post-quantum certificate deployment.
- Protocol designers benchmarking payload overhead and proof size footprints between BBS signatures, lattice signatures, and zero-knowledge verification schemes.
- Developers debugging raw cryptographic blobs during protocol migrations by parsing unknown public keys or signatures against standardized byte sizes.

## Frequently asked questions

### What is the difference between FIPS 203, FIPS 204, and FIPS 205?

FIPS 203 standardizes ML-KEM for key encapsulation, FIPS 204 standardizes ML-DSA for lattice-based digital signatures, and FIPS 205 standardizes SLH-DSA for stateless hash-based digital signatures.

### Which zero-knowledge proof systems require a trusted setup?

Groth16 requires a circuit-specific ceremony, PLONK requires a universal updatable Powers-of-Tau structured reference string, and Halo2 requires no trusted setup by using inner product arguments.

### What algorithm identifiers does RFC 9964 define for ML-DSA in COSE?

RFC 9964 assigns COSE algorithm identifiers -48 for ML-DSA-44, -49 for ML-DSA-65, and -50 for ML-DSA-87.

### How does the blob identification mode identify keys and signatures?

It decodes hex or base64 inputs, calculates total byte length, and maps that length to exact parameter specifications across ML-DSA, SLH-DSA, FN-DSA, and BBS signatures.

### Are ML-DSA signatures and keys run completely client-side in the live demo?

Yes, key generation, message signing, and signature verification execute entirely client-side using a pure TypeScript implementation matching FIPS 204.

## Related tools

- [Hash Algorithm Comparator](https://elysiatools.com/en/tools/hash-algorithm-comparator): Hash the same input with MD5, SHA-1, SHA-256, SHA-512, BLAKE2b, and BLAKE3 at the same time and compare them side by side: output length, hex/Base64 digest, security status (broken / modern), and a relative speed benchmark. Great for teaching, choosing a hashing algorithm, or sanity-checking checksums.
- [Digital Signature Generator](https://elysiatools.com/en/tools/digital-signature-generator): Sign a message with a private key or verify a signature with a public key — supports RSA-PSS (SHA-256), ECDSA (P-256), and Ed25519. Pure client-side crypto (Node crypto.createSign/createVerify), no network. Paste a PEM key to sign or to verify a base64 signature. This tool signs/verifies; it does not generate key pairs.
- [PKCE Code Verifier & Challenge Generator](https://elysiatools.com/en/tools/pkce-code-verifier-generator): Generate, validate and verify OAuth2 / OIDC PKCE (RFC 7636) code_verifier and S256 code_challenge pairs. Three modes: (1) generate a fresh verifier + challenge from cryptographically secure random bytes at 256/384/512/768-bit entropy, (2) audit a verifier you already have against the RFC — length (43–128), charset \[A-Za-z0-9-._~\] and ≥256-bit entropy, and (3) verify a verifier/challenge pair by recomputing BASE64URL(SHA256(verifier)). Optionally build the full authorization-request URL and token-exchange body. Complements the generic nonce-generator (which only emits a verifier+challenge pair) with RFC-compliance auditing and pair verification.
- [Web Push RFC 8030 Request + VAPID + RFC 8291 Payload Encryption Encoder](https://elysiatools.com/en/tools/web-push-rfc8030-vapid-rfc8291-payload-encrypted-content-encoder): Encode a complete Web Push send: RFC 8291 aes128gcm payload encryption, RFC 8292 VAPID ES256 JWT, RFC 8030 headers, APNs/FCM cross-walk and decrypt round-trip verification.
- [WebAuthn Passkey Assertion Decoder & Challenge Debugger](https://elysiatools.com/en/tools/webauthn-passkey-assertion-decoder-challenge-debugger): Decode WebAuthn/FIDO2 assertion fields, inspect authenticatorData flags and signCount, check challenge/origin/rpIdHash binding, and optionally verify ES256, RS256, or Ed25519 signatures with a supplied COSE public key.
- [Font Pairing Preview Card](https://elysiatools.com/en/tools/font-pairing-preview-card): Preview a heading and body font pairing with real copy, sizes, weights, line heights, character samples, and CSS stacks.
- [Manuscript Style Consistency Auditor](https://elysiatools.com/en/tools/manuscript-style-consistency-auditor): Audit manuscript for number/date/unit/quote/dash/heading/noun consistency and emit a style sheet; optional AI drift detection
- [Periodic Table Studio](https://elysiatools.com/en/tools/periodic-table-studio): Explore a clickable periodic table with live element details, color modes, and linked electron configuration data

## Samples

- [Android Image Processing Java Samples](https://elysiatools.com/en/samples/android-image-processing-java): Android Java image processing examples including reading/saving images, scaling, and format conversion
- [Android Image Processing Kotlin Samples](https://elysiatools.com/en/samples/android-image-processing-kotlin): Android Kotlin image processing examples including reading/saving images, scaling, and format conversion
- [Web Image Processing Python Samples](https://elysiatools.com/en/samples/web-image-processing-python): Web Python image processing examples using PIL/Pillow including reading, saving, resizing, and format conversion
- [Web Image Processing Rust Samples](https://elysiatools.com/en/samples/web-image-processing-rust): Web Rust image processing examples including image read/save, scaling, and format conversion
