SQIsign2D2

Isogenies · niccs.org.cn(opens in a new tab)

Programmes
NGCC R1
Latest version
Round 1 ·
Security flags
Broken (all sets) · Implementation findings (1 of 6 sets)

Third-party findings: full report on ngcc.dev(opens in a new tab).

Parameter sets

Round 1 · 20 Sep 2026

Parameter sets of SQIsign2D2
Parameter setLevelpk (B)sig (B)pk+sig (B)SignVerify
SQISign2Dsquare-Level2-eff BrokenImplementation findings128-bit8024832831.24 ms6.30 ms
SQISign2Dsquare-Level2-sec Broken128-bit8426034437.50 ms7.24 ms
SQISign2Dsquare-Level3-eff Broken256-bit12839252099.89 ms20.58 ms
SQISign2Dsquare-Level3-sec Broken256-bit132404536119.66 ms22.99 ms
SQISign2Dsquare-Level5-eff Broken512-bit2567761,032715.75 ms124.86 ms
SQISign2Dsquare-Level5-sec Broken512-bit2688121,080782.47 ms145.90 ms

Wall-clock times vary between runs and machines (CPU frequency scaling, other tenants on cloud VMs); cycle counts are the steadier basis for comparison.

Security flags

  • Broken (all parameter sets): The compact verifier never checks the transmitted challenge against the commitment, so one signature yields forgeries on fresh messages at every parameter set (Feussner).
  • Implementation findings (SQISign2Dsquare-Level2-eff): The submitted reference verifier for this set can take its verdict from stale stack memory, accepting forged or all-zero signatures (Saarinen). Full findings report(opens in a new tab)

Only one version of SQIsign2D2 is recorded, so there is nothing to compare yet.

History

  1. Update

    NGCC round 1: we checked every confirmed critical and high-severity finding on ngcc.dev against our data, and the PKC Forum, the ngcc-harness issues, the public analysis repositories and ePrint for findings ngcc.dev does not list. New broken flags: OPS-DSA, whose specified challenge sampler allows forgery from the public key in 2^39 to 2^90 trials (Xiong and Wang); the compact SQIsign2D2 sets, where one signature yields forgeries on fresh messages (Feussner); BAG-Piglet, whose specified rejection key gives key recovery from decapsulation queries (Saarinen); MAMBA-Viper-384 and -512, whose specification derives every session secret from a 256-bit seed (Saarinen); FlexTree-160, where verifiers that follow the specification accept forgeries after about 2^40 work (Kudinov); TRINE-128, whose specified unsalted round seeds allow forgery in about 2^95 work (Feussner); and UVW-256 signatures, which leak an equivalent signing key as at UVW-128 (Feussner, extended by Saarinen). New warnings: HEP-QC, whose public key is distinguishable from random (Xie), and Rhyme-SHAKE-128, where a signer that follows the specified rejection bound leaks its secret (Feussner). New implementation notes cover rejection keys over the re-encryption (CheetahKEM, LoongKEM), partial FO checks (QUBE), buffer overflows (Amoeba, MORNING-ATLAS), 32-bit message lengths (Aigis-Sig+, CS), message compression and short prehashes (COMPASS-SIG, VDOO, Amoeba), wrapper boundaries and signed-message opening (VDOO, MORNING-ATLAS), malleable encodings (SQIsignTriangle) and fail-open key generation (ZEN). Each flag credits and links its finding.

  2. added to site Update

    SQIsign2D-push1/2 and SQIsign2D2 (SQISign2Dsquare): our build now patches the submitted verifiers so that they reject a signature whose final isogeny splitting step fails. The submitted code does not check that step and can then accept an altered signature (reported on ngcc.dev by LK-PQC-Hunter and Saarinen). Valid signatures are not affected.

  3. New version

    Round 1

Full timeline →