SNOVA は、NIST 耐量子計算機暗号(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 における再定式化では、長方行列に対応するよう署名を拡張し、7 つのパラメータ (v, o, q, l, r, m_1, m_2) によって定義される方式が得られる。これにより、whipping 次元 r を l とは異なる独立したパラメータとすることができ、また方程式の個数 m_2 を公開鍵行列の個数 m_1 とは独立に選択することができる。この再定式化は、安全性の面での利点と、パラメータ選択におけるはるかに高い柔軟性をもたらす一方で、Round 2 版との完全な後方互換性を保っている。
以下の表は、提案されている SNOVA の各インスタンスの性能を示す。サイズの単位はバイト、性能の単位はサイクルであり、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 |