SNOVA is a digital signature algorithm that was selected for Round 3 of the NIST Post-Quantum Cryptography Project. The current version is dated August 2026.
SNOVA is a variant of the Unbalanced Oil and Vinegar (UOV) signature scheme designed to operate over noncommutative rings for enhanced efficiency and reduced public key size. While traditional UOV schemes suffer from excessively large public keys, SNOVA addresses this by utilizing a key-randomness alignment technique that successfully adapts to noncommutative rings without being negatively affected by their noncommutativity.
In response to cryptanalysis during the Round 1 and Round 2 evaluations, the SNOVA scheme has been reformulated for the Round 3 submission to provide a more flexible framework. Recent research shows that SNOVA can be characterized as applying a whipping transformation, similar to that of MAYO, to a structured UOV public key utilizing the F_q[S] structure. Because the ring F_q[S] is isomorphic to the extension field F_(q^l), this design is comparable to the polynomial matrix technique utilized in QR-UOV.
The Round 3 reformulation extends the signature to accommodate rectangular matrices, yielding a scheme defined by seven parameters: (v, o, q, l, r, m_1, m_2). This allows the whipping dimension r to be an independent parameter distinct from l, and the number of equations m_2 to be chosen independently from the number of public key matrices m_1. This reformulation offers advantages in security and much greater flexibility in parameter selection, while remaining fully backward compatible with the Round 2 version.
The following table presents the performance of the proposed SNOVA instances. Sizes are in bytes and performance is in cycles, measured on a modern desktop system supporting AVX2 and GFNI (Intel Core Ultra 7 265K).
| Variant | pk | sk | sig | KeyGen | Sign | Verify |
|---|---|---|---|---|---|---|
| SNOVA_I_K | 376 | 96 | 528 | 159,618 | 584,188 | 166,666 |
| SNOVA_I_K_AES | 376 | 96 | 528 | 87,169 | 512,004 | 94,164 |
| SNOVA_I_B | 656 | 96 | 388 | 170,468 | 557,746 | 141,919 |
| SNOVA_I_B_AES | 656 | 96 | 388 | 102,661 | 489,983 | 74,376 |
| SNOVA_I_S | 1016 | 96 | 272 | 204,195 | 397,921 | 149,024 |
| SNOVA_I_S_AES | 1016 | 96 | 272 | 132,758 | 325,418 | 78,305 |
| Variant | pk | sk | sig | KeyGen | Sign | Verify |
|---|---|---|---|---|---|---|
| SNOVA_III_K | 912 | 96 | 688 | 416,490 | 1,240,034 | 349,462 |
| SNOVA_III_K_AES | 912 | 96 | 688 | 243,311 | 1,061,262 | 175,688 |
| SNOVA_III_B | 1416 | 96 | 532 | 484,626 | 1,226,638 | 335,912 |
| SNOVA_III_B_AES | 1416 | 96 | 532 | 303,622 | 1,045,116 | 156,118 |
| SNOVA_III_S | 2032 | 96 | 456 | 562,069 | 1,333,170 | 356,953 |
| SNOVA_III_S_AES | 2032 | 96 | 456 | 372,165 | 1,141,612 | 167,684 |
| Variant | pk | sk | sig | KeyGen | Sign | Verify |
|---|---|---|---|---|---|---|
| SNOVA_V_K | 1216 | 96 | 896 | 811,680 | 2,573,021 | 684,735 |
| SNOVA_V_K_AES | 1216 | 96 | 896 | 548,998 | 2,301,728 | 424,527 |
| SNOVA_V_B | 1891 | 96 | 691 | 955,444 | 2,470,611 | 679,221 |
| SNOVA_V_B_AES | 1891 | 96 | 691 | 682,823 | 2,192,284 | 409,444 |
| SNOVA_V_S | 2716 | 96 | 591 | 1,101,953 | 2,619,986 | 749,582 |
| SNOVA_V_S_AES | 2716 | 96 | 591 | 823,154 | 2,341,503 | 465,939 |