PQC-XXJTLU · cryptanalysis

HomePublic-key schemes › VDOO

Signature · multivariate

VDOO

A stronger public report is awaiting reproduction.

PQC-X lists a third party's break once it has reproduced it; until then this page shows PQC-X's own results only.

Design

vdoo-1

Whether VDOO-512 meets its level depends on the linear-algebra constant

Holds · Argued · Cause: parameter size

Property: existential unforgeability

Cost against claim: direct forgery 2508.4 at ω = 2, 2524.4 at ω = 2.81, against 2512

The best direct forgery on VDOO-512 costs 2508.4 if linear algebra costs n2 and 2524.4 with ω = 2.81: the verdict rests on the constant alone. VDOO-256 meets its level with no redundancy (2257.6 at ω = 2), where the call asks for some.

Parameter setClaimAttack costVerdict
VDOO-512512 classical2508.4 (ω = 2) to 2524.4 (ω = 2.81)Holds
VDOO-256256 classical2257.6 (ω = 2)Holds

Evidence

Cause in the specification, traced to the specification text.

Credit

Found by PQC-X.

Implementation

Bugs in the submitted code; the specification is sound on these points.

vdoo-i1

Key generation's random generator is never seeded: every deployment gets the same key pair

Minor break · Demonstrated · Cause: code

Property: secret key, for the submitted code

Cost against claim: the secret key is public: anyone regenerates it

On the NGCC interface path, in both the reference and the optimised code, the generator that feeds key generation is never seeded, so key generation returns the same key pair whatever seed the caller supplies; the official test vectors do not depend on their own seeds. The standalone key-generation tool does seed it, which may be why the defect went unnoticed.

Parameter setClaimAttack costVerdict
all VDOO sets, NGCC interface128 to 512 classicalnone: the key is reproducibleMinor break

Evidence

Cause in the submitted code; the specification is not affected.

Limits

Signing draws from the same unseeded generator; the resulting reuse of vinegar values is a key-recovery route that PQC-X has argued but not run.

Credit

First public report: M.-J. Saarinen (ngcc.dev sign-33-1, 2026-09-21). Found independently by PQC-X.

Related public reports: