GeMSS: A Great Multivariate Short Signature
Principal submitters
- A. Casanova, CS
- J.-C. Faugère, INRIA, Sorbonne Université, CNRS
- G. Macario-Rat, Orange
- J. Patarin, University of Versailles
- L. Perret, Sorbonne Université, CNRS, INRIA
- J. Ryckeghem, Sorbonne Université, CNRS, INRIA
Summary
This web page is dedicated to GeMSS: a Great Multivariate Short Signature. GeMSS is a multivariate
based signature scheme producing small signatures. It has a fast verification process, and a medium/large public-key.
GeMSS is in direct lineage from the multivariate signature scheme QUARTZ. Thus, GeMSS is built from the Hidden
Field Equations cryptosystem (HFE) by using the so-called minus and vinegar modifiers, i.e. HFEv-.
GeMSS is a faster variant of QUARTZ that incorporates the latest results in multivariate cryptography to reach higher security levels than QUARTZ whilst improving efficiency.
We have also submitted a variant, DualModeMS, which uses a generic technique permitting to transform any MI-based
multivariate signature scheme into a new scheme with much shorter public-key but larger signatures.
Since the submission, we have improved the additional implementation of GeMSS,
which is become MQsoft.
MQsoft is an efficient library flexible on the choice of the security parameters.
Specification
The specification's document submitted to the first round of the NIST PQC Standardization Process is available here.
This submitted to the second round is available here, and the changes are here.
Package of submission
The full submission package (with the implementations) of the first round is available here.
The KAT files are here.
This of the second round is available here.
Last version of GeMSS (second round, 04/15/2020)
We propose an updated implementation of GeMSS, available here. We have decreased the size of the keys. For the secret-key, it is now generated from a small secret seed. For the public-key, we have improved the implementation to reach the theoretical size. Thus, these changes modify the KAT files. The new KATs are here.
We have specified the major changes here (in Section II), and updated the specification accordingly.
Updated implementation and KAT for D=513 (first round)
The parameter D is incorrect in the submitted implementation of the first round. The value should be 513 and not 512. Here is explained how to modify D. The updated implementation is here and the KAT files for D=513 are here.
News
The 01/30/2019, GeMSS is moving on to the second round of the NIST PQC Standardization Process!
Improved implementation
- 08/20/2019. The measurements of an improved version of MQsoft-2.1 (august 2019) have been added for Haswell and Skylake.
- 10/10/2019. An exhaustive table of security parameters has been added for Skylake, based on an improved version of MQsoft-2.1(july 2019).
Old news (first round)
Improved implementation
- 09/20/2018. The measurements of MQsoft, an improved additional implementation, have been added. This implementation is not yet available. For Skylake processors, we obtain a factor between 2 and 2.6 for the keypair generation, a factor between 1.3 and 1.6 for the signing process, and a factor between 1.8 and 2 for the verifying process.
- 09/27/2018. The measurements of MQsoft are available for Skylake and Haswell processors.
Specification
- 01/11/2018. The size of the secret-key is slightly incorrect, the values given are for D=512 instead of 513. Look the tables to have the corrected values.
- 01/11/2018. For the experimental measurements, turbo boost was enabled.
Correction of mistakes in the original implementation
- 01/11/2018. The parameter D is incorrect in the implementation. The value should be 513 and not 512. The update is done here.
Performance of the fastest implementations (second round)
Here are new measurements of performance of GeMSS with the latest version of MQsoft.
Performance of MQsoft. We use a Haswell processor Intel(R) Xeon(R) CPU E3-1275 v3 @ 3.50GHz. MC (resp. KC) stands for Mega (resp. Kilo) Cycles. The results have three significant digits. PCLMULQDQ and AVX2 are used. Turbo Boost is not used.
cryptosystem |
(λ,D,n,Δ,v,nb_ite,s) |
keypair generation |
signing process |
verifying process |
GeMSS128 |
(128,513,174,12,12,4,0) |
38.3 MC |
736 MC |
80.8 KC |
BlueGeMSS128 |
(128,129,175,13,14,4,0) |
38.5 MC |
110 MC |
106 KC |
RedGeMSS128 |
(128,17,177,15,15,4,0) |
41 MC |
2.76 MC |
104 KC |
GeMSS192 |
(192,513,265,22,20,4,0) |
176 MC |
2520 MC |
237 KC |
BlueGeMSS192 |
(192,129,265,22,23,4,0) |
175 MC |
316 MC |
250 KC |
RedGeMSS192 |
(192,17,266,23,25,4,0) |
170 MC |
8.36 MC |
256 KC |
GeMSS256 |
(256,513,354,30,33,4,0) |
485 MC |
3600 MC |
568 KC |
BlueGeMSS256 |
(256,129,358,34,32,4,0) |
475 MC |
531 MC |
582 KC |
RedGeMSS256 |
(256,17,358,34,35,4,0) |
470 MC |
12.9 MC |
592 KC |
Performance of MQsoft. We use a Skylake processor Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz. MC (resp. KC) stands for Mega (resp. Kilo) Cycles. The results have three significant digits. PCLMULQDQ and AVX2 are used. Turbo Boost is not used.
cryptosystem |
(λ,D,n,Δ,v,nb_ite,s) |
keypair generation |
signing process |
verifying process |
GeMSS128 |
(128,513,174,12,12,4,0) |
36.8 MC |
529 MC |
84.6 KC |
BlueGeMSS128 |
(128,129,175,13,14,4,0) |
37.4 MC |
78.3 MC |
111 KC |
RedGeMSS128 |
(128,17,177,15,15,4,0) |
38.2 MC |
2.08 MC |
107 KC |
GeMSS192 |
(192,513,265,22,20,4,0) |
167 MC |
1720 MC |
233 KC |
BlueGeMSS192 |
(192,129,265,22,23,4,0) |
166 MC |
232 MC |
249 KC |
RedGeMSS192 |
(192,17,266,23,25,4,0) |
162 MC |
6.34 MC |
254 KC |
GeMSS256 |
(256,513,354,30,33,4,0) |
508 MC |
2830 MC |
550 KC |
BlueGeMSS256 |
(256,129,358,34,32,4,0) |
510 MC |
411 MC |
560 KC |
RedGeMSS256 |
(256,17,358,34,35,4,0) |
505 MC |
10.2 MC |
563 KC |
Here are the theoretical sizes for keys and signatures.
Theoretical sizes of keys and signatures.
cryptosystem |
public-key |
secret-key |
signature |
GeMSS128 |
352.188 KB |
13.438 KB |
258 bits |
BlueGeMSS128 |
363.609 KB |
13.697 KB |
270 bits |
RedGeMSS128 |
375.213 KB |
13.104 KB |
282 bits |
GeMSS192 |
1237.964 KB |
34.070 KB |
411 bits |
BlueGeMSS192 |
1264.117 KB |
35.378 KB |
423 bits |
RedGeMSS192 |
1290.543 KB |
34.792 KB |
435 bits |
GeMSS256 |
3040.700 KB |
75.893 KB |
576 bits |
BlueGeMSS256 |
3087.963 KB |
71.460 KB |
588 bits |
RedGeMSS256 |
3135.591 KB |
71.888 KB |
600 bits |
An exhaustive table of security parameters (second round)
Similarly to Section 9.6 of the GeMSS specification, we propose performance measurements for a large number of security parameters. The main difference with the specification is the use of an improved version of MQsoft.
Performance of GeMSS in function of the parameters
Performance of GeMSS on a Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz (Skylake).
Turbo Boost is not used.
Caption:
GeMSS
BlueGeMSS
RedGeMSS
FGeMSS
Inner.DualModeMS
(λ,D,n,Δ,v,nb_ite,s) |
keygen (MC) |
sign (MC) |
verify (Kc) |
|pk| (KB) |
|sk| (KB) |
|sign| (bits) |
(128,17,268,12,12,1,0) |
154 |
1.65 |
37.1 |
1260 |
23.8 |
280 |
(128,17,204,12,15,2,0) |
58 |
2.52 |
50.9 |
578 |
16.5 |
246 |
(128,17,186,15,15,3,0) |
45.2 |
1.84 |
67.4 |
434 |
14.2 |
261 |
(128,17,177,15,15,4,0) |
38.9 |
2.23 |
109 |
375 |
13.1 |
282 |
(128,33,268,12,12,1,0) |
159 |
5.42 |
36.5 |
1260 |
24.4 |
280 |
(128,33,204,12,15,2,0) |
58.9 |
8.05 |
49.8 |
578 |
17 |
246 |
(128,33,186,15,15,3,0) |
46.3 |
5.45 |
63.2 |
434 |
14.7 |
261 |
(128,33,177,15,15,4,0) |
39.9 |
6.55 |
110 |
375 |
13.5 |
282 |
(128,129,266,10,11,1,0) |
155 |
56.4 |
35.7 |
1230 |
24.6 |
277 |
(128,130,266,10,11,1,3) |
155 |
34.6 |
35.6 |
1230 |
24.5 |
277 |
(128,129,204,12,12,2,0) |
59.1 |
94.4 |
48.6 |
562 |
16.2 |
240 |
(128,130,204,12,12,2,3) |
60.3 |
58.5 |
48.4 |
562 |
16.2 |
240 |
(128,129,185,14,13,3,0) |
44.9 |
62.6 |
71 |
421 |
14.4 |
252 |
(128,130,185,14,13,3,3) |
45 |
36 |
69.5 |
421 |
14.3 |
252 |
(128,129,175,13,14,4,0) |
39 |
80.9 |
108 |
364 |
13.7 |
270 |
(128,130,175,13,14,4,3) |
39.4 |
47.8 |
106 |
364 |
13.7 |
270 |
(128,513,265,9,9,1,0) |
158 |
410 |
34.8 |
1210 |
24.2 |
274 |
(128,514,265,9,9,1,3) |
158 |
245 |
35 |
1210 |
24.1 |
274 |
(128,513,202,10,11,2,0) |
60.2 |
618 |
46.6 |
547 |
16.4 |
234 |
(128,514,202,10,11,2,3) |
59.8 |
376 |
47.3 |
547 |
16.4 |
234 |
(128,513,183,12,12,3,0) |
45.5 |
417 |
67.8 |
408 |
14.5 |
243 |
(128,514,183,12,12,3,3) |
45 |
251 |
68.5 |
408 |
14.5 |
243 |
(128,513,174,12,12,4,0) |
39 |
547 |
80 |
352 |
13.4 |
258 |
(128,514,174,12,12,4,3) |
38.8 |
313 |
78.9 |
352 |
13.4 |
258 |
(192,17,404,20,19,1,0) |
802 |
3.69 |
125 |
4300 |
57.8 |
423 |
(192,17,310,22,23,2,0) |
277 |
3.89 |
157 |
2000 |
41.5 |
378 |
(192,17,279,23,25,3,0) |
196 |
4.75 |
189 |
1480 |
37.4 |
400 |
(192,17,266,23,25,4,0) |
169 |
6.4 |
258 |
1290 |
34.8 |
435 |
(192,33,404,20,19,1,0) |
823 |
12 |
127 |
4300 |
59 |
423 |
(192,33,310,22,23,2,0) |
280 |
11.8 |
158 |
2000 |
42.6 |
378 |
(192,33,279,23,25,3,0) |
203 |
15.4 |
192 |
1480 |
38.4 |
400 |
(192,33,266,23,25,4,0) |
176 |
19.5 |
254 |
1290 |
35.8 |
435 |
(192,129,402,18,18,1,0) |
829 |
135 |
120 |
4240 |
59.6 |
420 |
(192,130,402,18,18,1,3) |
841 |
94.9 |
123 |
4240 |
59.5 |
420 |
(192,640,402,18,18,1,0) |
839 |
1310 |
121 |
4240 |
62.6 |
420 |
(192,640,402,18,18,1,3) |
837 |
909 |
120 |
4240 |
62.5 |
420 |
(192,129,308,20,22,2,0) |
274 |
124 |
152 |
1970 |
43.1 |
372 |
(192,130,308,20,22,2,3) |
275 |
86.8 |
152 |
1970 |
43.1 |
372 |
(192,129,278,22,23,3,0) |
199 |
181 |
180 |
1450 |
38 |
391 |
(192,130,278,22,23,3,3) |
200 |
122 |
186 |
1450 |
37.9 |
391 |
(192,129,265,22,23,4,0) |
176 |
232 |
253 |
1260 |
35.4 |
423 |
(192,130,265,22,23,4,3) |
177 |
148 |
251 |
1260 |
35.3 |
423 |
(192,513,399,15,18,1,0) |
820 |
1030 |
118 |
4180 |
61.5 |
417 |
(192,514,399,15,18,1,3) |
829 |
631 |
117 |
4180 |
61.4 |
417 |
(192,513,308,20,19,2,0) |
278 |
980 |
147 |
1930 |
41.7 |
366 |
(192,514,308,20,19,2,3) |
273 |
539 |
146 |
1930 |
41.6 |
366 |
(192,513,276,20,22,3,0) |
204 |
1290 |
180 |
1430 |
38.6 |
382 |
(192,514,276,20,22,3,3) |
202 |
779 |
181 |
1430 |
38.5 |
382 |
(192,513,265,22,20,4,0) |
178 |
1670 |
237 |
1240 |
34.1 |
411 |
(192,514,265,22,20,4,3) |
176 |
946 |
237 |
1240 |
34 |
411 |
(256,17,540,28,29,1,0) |
2800 |
7.43 |
403 |
10400 |
117 |
569 |
(256,17,415,31,32,2,0) |
985 |
7.85 |
372 |
4810 |
82.8 |
510 |
(256,17,375,33,33,3,0) |
609 |
8.05 |
495 |
3570 |
73 |
540 |
(256,17,358,34,35,4,0) |
526 |
10.5 |
596 |
3140 |
71.9 |
600 |
(256,33,540,28,29,1,0) |
2800 |
22.9 |
390 |
10400 |
119 |
569 |
(256,33,415,31,32,2,0) |
990 |
23.7 |
370 |
4810 |
84.7 |
510 |
(256,33,375,33,33,3,0) |
611 |
25.1 |
520 |
3570 |
74.8 |
540 |
(256,33,358,34,35,4,0) |
545 |
34 |
606 |
3140 |
73.7 |
600 |
(256,129,540,28,26,1,0) |
2820 |
267 |
387 |
10300 |
116 |
566 |
(256,130,540,28,26,1,3) |
2860 |
203 |
388 |
10300 |
116 |
566 |
(256,129,414,30,30,2,0) |
987 |
290 |
354 |
4740 |
84.1 |
504 |
(256,130,414,30,30,2,3) |
995 |
203 |
369 |
4740 |
84 |
504 |
(256,129,372,30,33,3,0) |
614 |
323 |
487 |
3510 |
77.6 |
531 |
(256,130,372,30,33,3,3) |
634 |
205 |
475 |
3510 |
77.5 |
531 |
(256,129,358,34,32,4,0) |
556 |
429 |
591 |
3090 |
71.5 |
588 |
(256,130,358,34,32,4,3) |
535 |
272 |
574 |
3090 |
71.4 |
588 |
(256,513,537,25,26,1,0) |
2880 |
2390 |
379 |
10200 |
120 |
563 |
(256,514,537,25,26,1,3) |
2830 |
1300 |
379 |
10200 |
120 |
563 |
(256,1152,537,25,26,1,0) |
2860 |
6470 |
381 |
10200 |
123 |
563 |
(256,1152,537,25,26,1,3) |
2870 |
3780 |
379 |
10200 |
123 |
563 |
(256,513,414,30,27,2,0) |
1020 |
2280 |
357 |
4680 |
81.7 |
498 |
(256,514,414,30,27,2,3) |
1010 |
1300 |
360 |
4680 |
81.6 |
498 |
(256,513,372,30,30,3,0) |
614 |
2480 |
460 |
3460 |
75.3 |
522 |
(256,514,372,30,30,3,3) |
608 |
1320 |
466 |
3460 |
75.2 |
522 |
(256,513,354,30,33,4,0) |
532 |
2970 |
578 |
3040 |
75.9 |
576 |
(256,514,354,30,33,4,3) |
545 |
1680 |
572 |
3040 |
75.8 |
576 |
|