SNOVA 是一套數位簽章演算法,已入選 NIST 後量子密碼(Post-Quantum Cryptography, PQC)計畫的 Round 3。目前版本的日期為 2026 年 8 月。
SNOVA 是 Unbalanced Oil and Vinegar(UOV)簽章方案的變體,設計上在非交換環上運作,以提升效率並縮小公鑰大小。傳統的 UOV 方案有公鑰過大的問題,SNOVA 則以金鑰—隨機性對齊技術(key-randomness alignment)來處理此問題;該技術能成功適應非交換環,且不受其非交換性的負面影響。
因應 Round 1 與 Round 2 評估期間所出現的密碼分析結果,SNOVA 方案已針對 Round 3 提交版本重新表述,以提供更具彈性的框架。近期研究顯示,SNOVA 可描述為:對採用 F_q[S] 結構的結構化 UOV 公鑰,施加與 MAYO 類似的 whipping 變換。由於環 F_q[S] 與擴張體 F_(q^l) 同構,此設計可與 QR-UOV 所採用的多項式矩陣技術相類比。
Round 3 的重新表述將簽章推廣至矩形矩陣的情形,從而得到由七個參數定義的方案:(v, o, q, l, r, m_1, m_2)。如此一來,whipping 維度 r 可成為獨立於 l 的參數,方程式個數 m_2 也可以獨立於公鑰矩陣個數 m_1 來選取。此一重新表述在安全性上帶來優勢,並在參數選擇上提供大得多的彈性,同時完全向後相容於 Round 2 版本。
下表列出所提出之各 SNOVA 實例的效能。大小的單位為位元組(byte),效能的單位為時脈週期數(cycles),於支援 AVX2 與 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 |