HEP-QC

Hybrid Equivalent Punctured and Quasi-Cyclic

Code-based · QCSD · niccs.org.cn(opens in a new tab)

Programmes
NGCC R1
Status
NGCC round 1
Security flags
Broken (1 of 3 sets) · Implementation findings (all sets) · Warning (all sets)

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

Parameter sets

Parameter sets of HEP-QC
Parameter setLevelpk (B)ct (B)pk+ct (B)KeygenEncapsDecaps
HEP-QC-1 Implementation findingsWarning128-bit285,8894,433290,32263.06 ms3.55 ms61.33 ms
HEP-QC-5 Implementation findingsWarning256-bit1,852,48514,4211,866,906235.79 ms23.07 ms214.49 ms
HEP-QC-7 BrokenImplementation findingsWarning512-bit12,644,44949,29712,693,7461.26 s155.20 ms831.15 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

  • Implementation findings (all parameter sets): The submitted code produces reproducible secret keys and a reproducible first encapsulation in each process (Saarinen). Full findings report(opens in a new tab)
  • Warning (all parameter sets): Repeated public columns distinguish the public key from random in linear time, refuting the EPC-P assumption. Structure recovery in minutes is reported but not confirmed (Xie).
  • Broken (HEP-QC-7): Key generation has at most 2^256 possible seeds, below the 512-bit target (Saarinen).

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.

Full timeline →