MAYO

Multivariate ยท Multivariate Quadratic ยท pqmayo.org(opens in a new tab)

Programmes
On-ramp R3
Latest version
Round 3 ยท
Security flags
Broken (1 of 34 sets) ยท Warning (1 of 34 sets)

Parameter sets

Round 3 ยท 31 Aug 2026

Parameter sets of MAYO
Parameter setLevelpk (B)sig (B)pk+sig (B)SignVerify
five Recommended 55,5549646,518216.0 ยตs89.9 ยตs
three Recommended 32,9866813,66798.4 ยตs41.2 ยตs
two Recommended Broken12,9282393,16729.2 ยตs12.2 ยตs
one Recommended Warning11,4564641,92048.3 ยตs20.1 ยตs
alt (85 76 9 9 16) 11,7264072,133no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (80 70 10 7 16) 11,9413042,245no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (77 66 11 6 16) 12,1942552,449no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (98 64 16 4 16) 14,3682204,588no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (102 62 21 3 16) 17,1771777,354no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (110 60 30 2 16) 113,96613414,100no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (146 58 58 1 16) 149,6359749,732no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (123 114 9 13 16) 32,5818323,413no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (115 104 11 10 16) 33,4486074,055no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (114 102 12 9 16) 33,9945454,539no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (113 100 13 8 16) 34,5664845,050no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (112 98 14 7 16) 35,1614245,585no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (118 96 16 6 16) 36,5443866,930no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (137 96 20 5 16) 310,09637510,471no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (155 96 24 4 16) 314,41634214,758no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (161 94 32 3 16) 324,83227425,106no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (174 92 46 2 16) 349,74220649,948no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (227 90 90 1 16) 3184,291146184,437no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (153 142 11 13 16) 54,7021,0355,737no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (153 140 13 11 16) 56,3868827,268no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (152 138 14 10 16) 57,2618008,061no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (152 136 16 9 16) 59,2647249,988no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (151 134 17 8 16) 510,26764410,911no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (152 132 19 7 16) 512,55657213,128no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (168 132 22 6 16) 516,71454417,258no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (192 132 27 5 16) 524,96452025,484no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (212 130 33 4 16) 536,48146436,945no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (222 128 43 3 16) 560,56037360,933no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (241 126 63 2 16) 5127,024281127,305no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))
alt (318 126 126 1 16) 5504,079199504,278no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))no code(No implementation of this alternative parameter set in the official code (MAYO-C implements only MAYO-one, -two, -three and -five))

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 (two): Structural forgery (Ostuzzi, ePrint 2026/2247, Table 6) lowers the estimated forgery cost from 2^144 to 2^140 bit operations, 3 bits below the 2^143 required for NIST Level I. The round-3 linear term blocks the paper's multi-target technique.
  • Warning (one): Structural forgery (Ostuzzi, ePrint 2026/2247, Table 6) lowers the estimated forgery cost from 2^153 to 2^147 bit operations, still above the 2^143 required for NIST Level I.

Compare versions

Parameter sets are matched by name.

Change from Round 2 ยท 26 Mar 2025 to Round 3 ยท 31 Aug 2026
Parameter setLevelPublic key (B) ChangeSignature (B) ChangeSecurity flag (today's assessment)
five 55,554 to 5,554 same964 to 964 sameโ€”
three 32,986 to 2,986 same681 to 681 sameFlag cleared. Was Warning: Structural forgery combined with a multi-target reduction (Ostuzzi, ePrint 2026/2247, Table 5) lowers the estimated forgery cost from 2^223 to 2^207 bit operations, exactly the 2^207 required for NIST Level III.
two 14,912 to 2,928 40%smaller186 to 239 28%largerBroken. Structural forgery (Ostuzzi, ePrint 2026/2247, Table 6) lowers the estimated forgery cost from 2^144 to 2^140 bit operations, 3 bits below the 2^143 required for NIST Level I. The round-3 linear term blocks the paper's multi-target technique.
one 11,420 to 1,456 3%larger454 to 464 2%largerWarning. Structural forgery (Ostuzzi, ePrint 2026/2247, Table 6) lowers the estimated forgery cost from 2^153 to 2^147 bit operations, still above the 2^143 required for NIST Level I.
alt (85 76 9 9 16) new in Round 31โ€” to 1,726 โ€”โ€” to 407 โ€”โ€”
alt (80 70 10 7 16) new in Round 31โ€” to 1,941 โ€”โ€” to 304 โ€”โ€”
alt (77 66 11 6 16) new in Round 31โ€” to 2,194 โ€”โ€” to 255 โ€”โ€”
alt (98 64 16 4 16) new in Round 31โ€” to 4,368 โ€”โ€” to 220 โ€”โ€”
alt (102 62 21 3 16) new in Round 31โ€” to 7,177 โ€”โ€” to 177 โ€”โ€”
alt (110 60 30 2 16) new in Round 31โ€” to 13,966 โ€”โ€” to 134 โ€”โ€”
alt (146 58 58 1 16) new in Round 31โ€” to 49,635 โ€”โ€” to 97 โ€”โ€”
alt (123 114 9 13 16) new in Round 33โ€” to 2,581 โ€”โ€” to 832 โ€”โ€”
alt (115 104 11 10 16) new in Round 33โ€” to 3,448 โ€”โ€” to 607 โ€”โ€”
alt (114 102 12 9 16) new in Round 33โ€” to 3,994 โ€”โ€” to 545 โ€”โ€”
alt (113 100 13 8 16) new in Round 33โ€” to 4,566 โ€”โ€” to 484 โ€”โ€”
alt (112 98 14 7 16) new in Round 33โ€” to 5,161 โ€”โ€” to 424 โ€”โ€”
alt (118 96 16 6 16) new in Round 33โ€” to 6,544 โ€”โ€” to 386 โ€”โ€”
alt (137 96 20 5 16) new in Round 33โ€” to 10,096 โ€”โ€” to 375 โ€”โ€”
alt (155 96 24 4 16) new in Round 33โ€” to 14,416 โ€”โ€” to 342 โ€”โ€”
alt (161 94 32 3 16) new in Round 33โ€” to 24,832 โ€”โ€” to 274 โ€”โ€”
alt (174 92 46 2 16) new in Round 33โ€” to 49,742 โ€”โ€” to 206 โ€”โ€”
alt (227 90 90 1 16) new in Round 33โ€” to 184,291 โ€”โ€” to 146 โ€”โ€”
alt (153 142 11 13 16) new in Round 35โ€” to 4,702 โ€”โ€” to 1,035 โ€”โ€”
alt (153 140 13 11 16) new in Round 35โ€” to 6,386 โ€”โ€” to 882 โ€”โ€”
alt (152 138 14 10 16) new in Round 35โ€” to 7,261 โ€”โ€” to 800 โ€”โ€”
alt (152 136 16 9 16) new in Round 35โ€” to 9,264 โ€”โ€” to 724 โ€”โ€”
alt (151 134 17 8 16) new in Round 35โ€” to 10,267 โ€”โ€” to 644 โ€”โ€”
alt (152 132 19 7 16) new in Round 35โ€” to 12,556 โ€”โ€” to 572 โ€”โ€”
alt (168 132 22 6 16) new in Round 35โ€” to 16,714 โ€”โ€” to 544 โ€”โ€”
alt (192 132 27 5 16) new in Round 35โ€” to 24,964 โ€”โ€” to 520 โ€”โ€”
alt (212 130 33 4 16) new in Round 35โ€” to 36,481 โ€”โ€” to 464 โ€”โ€”
alt (222 128 43 3 16) new in Round 35โ€” to 60,560 โ€”โ€” to 373 โ€”โ€”
alt (241 126 63 2 16) new in Round 35โ€” to 127,024 โ€”โ€” to 281 โ€”โ€”
alt (318 126 126 1 16) new in Round 35โ€” to 504,079 โ€”โ€” to 199 โ€”โ€”

โ–ผ smaller or faster, โ–ฒ larger or slower. Sizes in bytes. Flags are today's assessment of each version's parameter sets; the history below shows when each attack was published.

History

  1. Update

    ML-DSA, MAYO and ML-KEM: we moved our builds to the latest upstream code. ML-DSA uses the pq-crystals reference at d35ba3f, with two AVX2 conformance fixes by Gregor Seiler: the stricter infinity-norm check FIPS 204 requires (issue 113) and the rounding of use_hint when the low part is zero (bba9534, reported by Eric Biggers). MAYO uses MAYO-C at 412cb8a, which makes the generic echelon-form routine constant-time; our GFNI/AVX-512 build uses the AVX2 echelon-form code, which this commit does not change. ML-KEM uses mlkem-native v2.0.0. Sizes are unchanged and upstream's known-answer tests pass for every set. We re-benchmarked all three on AWS c8i.4xlarge; the timings do not change beyond run-to-run variation.

  2. added to site Update

    Where a specification lists alternative or additional parameter sets next to its main ones, the main sets are now marked, so the Recommended filter hides the alternatives: SNOVA, MAYO, QR-UOV, SQIsign and FAEST (FAEST-EM is the specification's alternative variant), and the NGCC KEMs DTRU (DTRU-Light and DTRU-Prime are the alternatives to the primary tricyclotomic sets) and MAMBA-Frost (the compact-ciphertext CC variants are additional to the default sets). The round-3 specifications of SNOVA (Table 6), MAYO (Table 2.2), QR-UOV (Appendix B) and SQIsign (Appendix P) also list alternative or additional parameter sets; these are now shown under All parameter sets, with sizes from the specifications. The six odd-characteristic SNOVA alternatives are marked broken by Beullens & Hess's vinegar-bias attack.

  3. added to site Attack

    Ostuzzi (ePrint 2026/2247) gives the first structural forgery on MAYO: whipping amplifies polar cancellations, which the Pseudo-Oil Attack exploits, and a separate multi-target reduction uses the homogeneity of the round-2 map. For round 2 the combination lowers the estimated forgery cost of MAYO1 from 2^146 to 2^128 bit operations, 15 bits below the 2^143 required for NIST Level I, and of MAYO3 from 2^223 to 2^207, exactly at the Level III requirement (Table 5); MAYO1 is now flagged broken and MAYO3 with a warning. The round-3 linear term blocks the multi-target reduction, and the structural attack alone lowers MAYO1, MAYO2 and MAYO3 from 2^153, 2^144 and 2^223 to 2^147, 2^140 and 2^221 (Table 6). MAYO2 falls 3 bits below Level I and is flagged broken; MAYO1 is flagged with a warning; MAYO3 is not flagged.

  4. added to site Attack

    Merz and Ran (ePrint 2026/2181) extend the wedge attack with divided squares of the polar forms and Schur–Macaulay matrices, removing its parameter threshold and covering odd characteristic. The attack applies to every round-2 parameter set of UOV, MAYO, SNOVA and QR-UOV but one; four alternate round-2 MAYO sets, which the site does not list, fall below their claimed level. After their disclosure the MAYO team dropped a planned round-3 set and raised the parameters of MAYO2 (see the round-3 entry of 2026-08-31). No set shown on the site falls below its level.

  5. added to site New version

    Round 3

    MAYO published its round-3 spec (PDF): MAYO2's parameters change to increase its margin against the Wedge attack (Ran, ePrint 2025/1143), shrinking its public key from 4912B to 2928B while growing its signature from 186B to 239B; MAYO1 grows slightly (pk 1420→1456B, sig 454→464B) to push the improved-MQ attack (Asanuma et al., ePrint 2026/1054) margin back above the NIST Level I threshold — both flags are dropped for the round-3 parameter sets. Also adds an explicit linear term to the verification equation to block a newly disclosed claw-finding forgery attack, and fixes a low-rank weakness in the whipping schedule. MAYO3 and MAYO5 sizes are unchanged. The team also widened MAYO2's margin further in response to a new, not-yet-public UOV-like key-recovery attack privately disclosed by Lars Ran and Simon-Philipp Merz shortly before the deadline.

  6. added to site Attack

    Improved MQ attack (Asanuma, Chen, Furue, Sakata & Takagi, ePrint 2026/1054) reduces MAYO1 classical security estimate from 2^156 to 2^145. Still above NIST Level I threshold (128 bits); flagged as warning.

  7. Milestone

    NIST announced 9 Round 3 candidates for additional post-quantum signature schemes: FAEST, HAWK, MAYO, MQOM, QR-UOV, SDitH, SNOVA, SQIsign, UOV. Rationale in NIST IR 8610. Round 3 candidates.

  8. Attack

    Updated UOV and MAYO security flags based on wedge attack (Ran, ePrint 2025/1143). MAYO-2 ("two") marked broken (~113 bits, below 128-bit threshold). UOV Ip, III, and V parameter sets marked with warning (reduced but still above threshold). UOV Is unaffected.

  9. added to site Update

    Updated 7 schemes to their latest published specifications. PERK redesigned parameter sets (v2.2.0). MQOM adds gf16 variants (v2.1). RYDE and Mirath corrected signature sizes and added faster variants. CROSS, SQIsign, and MAYO updated with revised benchmarks.

  10. New version

    Round 2

  11. New version

    Round 2

  12. New version

    Round 1

Full timeline โ†’