@@ -4,157 +4,164 @@ use polynomial_proving::{run_for_params, MaskCheckMode, RunForParamsConfig};
44use util:: algebra:: field:: { p434, p503, p610, p751, sqisign} ;
55
66fn main ( ) -> Result < ( ) , Box < dyn Error > > {
7- let mode = MaskCheckMode :: Additional ;
8-
9- println ! ( "SQISign I:" ) ;
10- const CFG_SQISIGN_I : RunForParamsConfig = RunForParamsConfig {
11- log_path_length : 8 ,
12- security_bits : 128 ,
13- commitment_size : 96 ,
14- } ;
15- run_for_params :: <
16- { CFG_SQISIGN_I . variable_count ( ) } ,
17- { CFG_SQISIGN_I . path_length ( ) } ,
18- { CFG_SQISIGN_I . path_length_div_64 ( ) } ,
19- { CFG_SQISIGN_I . path_length_times_two ( ) } ,
20- { CFG_SQISIGN_I . path_length_times_four ( ) } ,
21- { CFG_SQISIGN_I . log_path_length ( ) } ,
22- { CFG_SQISIGN_I . log_path_length_plus_one ( ) } ,
23- { CFG_SQISIGN_I . security_bits ( ) } ,
24- { CFG_SQISIGN_I . commitment_size } ,
25- { CFG_SQISIGN_I . q_variable_count ( ) } ,
26- { CFG_SQISIGN_I . final_round_evaluations ( ) } ,
27- sqisign:: level_i:: Fp2251 ,
28- > ( mode) ?;
29-
30- println ! ( "SQISign III:" ) ;
31- const CFG_SQISIGN_III : RunForParamsConfig = RunForParamsConfig {
32- log_path_length : 9 ,
33- security_bits : 192 ,
34- commitment_size : 128 ,
35- } ;
36- run_for_params :: <
37- { CFG_SQISIGN_III . variable_count ( ) } ,
38- { CFG_SQISIGN_III . path_length ( ) } ,
39- { CFG_SQISIGN_III . path_length_div_64 ( ) } ,
40- { CFG_SQISIGN_III . path_length_times_two ( ) } ,
41- { CFG_SQISIGN_III . path_length_times_four ( ) } ,
42- { CFG_SQISIGN_III . log_path_length ( ) } ,
43- { CFG_SQISIGN_III . log_path_length_plus_one ( ) } ,
44- { CFG_SQISIGN_III . security_bits ( ) } ,
45- { CFG_SQISIGN_III . commitment_size } ,
46- { CFG_SQISIGN_III . q_variable_count ( ) } ,
47- { CFG_SQISIGN_III . final_round_evaluations ( ) } ,
48- sqisign:: level_iii:: Fp2383 ,
49- > ( mode) ?;
50-
51- println ! ( "SQISign V:" ) ;
52- const CFG_SQISIGN_V : RunForParamsConfig = RunForParamsConfig {
53- log_path_length : 9 ,
54- security_bits : 256 ,
55- commitment_size : 160 ,
56- } ;
57- run_for_params :: <
58- { CFG_SQISIGN_V . variable_count ( ) } ,
59- { CFG_SQISIGN_V . path_length ( ) } ,
60- { CFG_SQISIGN_V . path_length_div_64 ( ) } ,
61- { CFG_SQISIGN_V . path_length_times_two ( ) } ,
62- { CFG_SQISIGN_V . path_length_times_four ( ) } ,
63- { CFG_SQISIGN_V . log_path_length ( ) } ,
64- { CFG_SQISIGN_V . log_path_length_plus_one ( ) } ,
65- { CFG_SQISIGN_V . security_bits ( ) } ,
66- { CFG_SQISIGN_V . commitment_size } ,
67- { CFG_SQISIGN_V . q_variable_count ( ) } ,
68- { CFG_SQISIGN_V . final_round_evaluations ( ) } ,
69- sqisign:: level_v:: Fp2505 ,
70- > ( mode) ?;
71-
72- println ! ( "p434:" ) ;
73- const CFG_P434 : RunForParamsConfig = RunForParamsConfig {
74- log_path_length : 10 ,
75- security_bits : 128 ,
76- commitment_size : 142 ,
77- } ;
78- run_for_params :: <
79- { CFG_P434 . variable_count ( ) } ,
80- { CFG_P434 . path_length ( ) } ,
81- { CFG_P434 . path_length_div_64 ( ) } ,
82- { CFG_P434 . path_length_times_two ( ) } ,
83- { CFG_P434 . path_length_times_four ( ) } ,
84- { CFG_P434 . log_path_length ( ) } ,
85- { CFG_P434 . log_path_length_plus_one ( ) } ,
86- { CFG_P434 . security_bits ( ) } ,
87- { CFG_P434 . commitment_size } ,
88- { CFG_P434 . q_variable_count ( ) } ,
89- { CFG_P434 . final_round_evaluations ( ) } ,
90- p434:: Fp2434 ,
91- > ( mode) ?;
92-
93- {
94- println ! ( "503:" ) ;
95- const CFG_P503 : RunForParamsConfig = RunForParamsConfig {
96- log_path_length : 10 ,
7+ for mode in [ MaskCheckMode :: Additional , MaskCheckMode :: InsidePCS ] . into_iter ( ) {
8+ println ! (
9+ "Mode: {}" ,
10+ match mode {
11+ MaskCheckMode :: Additional => "Masked mask" ,
12+ MaskCheckMode :: InsidePCS => "Optimized mask opening" ,
13+ }
14+ ) ;
15+ println ! ( "SQISign I:" ) ;
16+ const CFG_SQISIGN_I : RunForParamsConfig = RunForParamsConfig {
17+ log_path_length : 8 ,
9718 security_bits : 128 ,
98- commitment_size : 158 ,
19+ commitment_size : 96 ,
9920 } ;
10021 run_for_params :: <
101- { CFG_P503 . variable_count ( ) } ,
102- { CFG_P503 . path_length ( ) } ,
103- { CFG_P503 . path_length_div_64 ( ) } ,
104- { CFG_P503 . path_length_times_two ( ) } ,
105- { CFG_P503 . path_length_times_four ( ) } ,
106- { CFG_P503 . log_path_length ( ) } ,
107- { CFG_P503 . log_path_length_plus_one ( ) } ,
108- { CFG_P503 . security_bits ( ) } ,
109- { CFG_P503 . commitment_size } ,
110- { CFG_P503 . q_variable_count ( ) } ,
111- { CFG_P503 . final_round_evaluations ( ) } ,
112- p503 :: Fp2503 ,
22+ { CFG_SQISIGN_I . variable_count ( ) } ,
23+ { CFG_SQISIGN_I . path_length ( ) } ,
24+ { CFG_SQISIGN_I . path_length_div_64 ( ) } ,
25+ { CFG_SQISIGN_I . path_length_times_two ( ) } ,
26+ { CFG_SQISIGN_I . path_length_times_four ( ) } ,
27+ { CFG_SQISIGN_I . log_path_length ( ) } ,
28+ { CFG_SQISIGN_I . log_path_length_plus_one ( ) } ,
29+ { CFG_SQISIGN_I . security_bits ( ) } ,
30+ { CFG_SQISIGN_I . commitment_size } ,
31+ { CFG_SQISIGN_I . q_variable_count ( ) } ,
32+ { CFG_SQISIGN_I . final_round_evaluations ( ) } ,
33+ sqisign :: level_i :: Fp2251 ,
11334 > ( mode) ?;
114- }
115- {
116- println ! ( "p610:" ) ;
117- const CFG_P610 : RunForParamsConfig = RunForParamsConfig {
118- log_path_length : 10 ,
35+
36+ println ! ( "SQISign III:" ) ;
37+ const CFG_SQISIGN_III : RunForParamsConfig = RunForParamsConfig {
38+ log_path_length : 9 ,
11939 security_bits : 192 ,
120- commitment_size : 186 ,
40+ commitment_size : 128 ,
12141 } ;
12242 run_for_params :: <
123- { CFG_P610 . variable_count ( ) } ,
124- { CFG_P610 . path_length ( ) } ,
125- { CFG_P610 . path_length_div_64 ( ) } ,
126- { CFG_P610 . path_length_times_two ( ) } ,
127- { CFG_P610 . path_length_times_four ( ) } ,
128- { CFG_P610 . log_path_length ( ) } ,
129- { CFG_P610 . log_path_length_plus_one ( ) } ,
130- { CFG_P610 . security_bits ( ) } ,
131- { CFG_P610 . commitment_size } ,
132- { CFG_P610 . q_variable_count ( ) } ,
133- { CFG_P610 . final_round_evaluations ( ) } ,
134- p610 :: Fp2610 ,
43+ { CFG_SQISIGN_III . variable_count ( ) } ,
44+ { CFG_SQISIGN_III . path_length ( ) } ,
45+ { CFG_SQISIGN_III . path_length_div_64 ( ) } ,
46+ { CFG_SQISIGN_III . path_length_times_two ( ) } ,
47+ { CFG_SQISIGN_III . path_length_times_four ( ) } ,
48+ { CFG_SQISIGN_III . log_path_length ( ) } ,
49+ { CFG_SQISIGN_III . log_path_length_plus_one ( ) } ,
50+ { CFG_SQISIGN_III . security_bits ( ) } ,
51+ { CFG_SQISIGN_III . commitment_size } ,
52+ { CFG_SQISIGN_III . q_variable_count ( ) } ,
53+ { CFG_SQISIGN_III . final_round_evaluations ( ) } ,
54+ sqisign :: level_iii :: Fp2383 ,
13555 > ( mode) ?;
136- }
137- {
138- println ! ( "p751:" ) ;
139- const CFG_P751 : RunForParamsConfig = RunForParamsConfig {
140- log_path_length : 11 ,
56+
57+ println ! ( "SQISign V:" ) ;
58+ const CFG_SQISIGN_V : RunForParamsConfig = RunForParamsConfig {
59+ log_path_length : 9 ,
14160 security_bits : 256 ,
142- commitment_size : 220 ,
61+ commitment_size : 160 ,
14362 } ;
14463 run_for_params :: <
145- { CFG_P751 . variable_count ( ) } ,
146- { CFG_P751 . path_length ( ) } ,
147- { CFG_P751 . path_length_div_64 ( ) } ,
148- { CFG_P751 . path_length_times_two ( ) } ,
149- { CFG_P751 . path_length_times_four ( ) } ,
150- { CFG_P751 . log_path_length ( ) } ,
151- { CFG_P751 . log_path_length_plus_one ( ) } ,
152- { CFG_P751 . security_bits ( ) } ,
153- { CFG_P751 . commitment_size } ,
154- { CFG_P751 . q_variable_count ( ) } ,
155- { CFG_P751 . final_round_evaluations ( ) } ,
156- p751 :: Fp2751 ,
64+ { CFG_SQISIGN_V . variable_count ( ) } ,
65+ { CFG_SQISIGN_V . path_length ( ) } ,
66+ { CFG_SQISIGN_V . path_length_div_64 ( ) } ,
67+ { CFG_SQISIGN_V . path_length_times_two ( ) } ,
68+ { CFG_SQISIGN_V . path_length_times_four ( ) } ,
69+ { CFG_SQISIGN_V . log_path_length ( ) } ,
70+ { CFG_SQISIGN_V . log_path_length_plus_one ( ) } ,
71+ { CFG_SQISIGN_V . security_bits ( ) } ,
72+ { CFG_SQISIGN_V . commitment_size } ,
73+ { CFG_SQISIGN_V . q_variable_count ( ) } ,
74+ { CFG_SQISIGN_V . final_round_evaluations ( ) } ,
75+ sqisign :: level_v :: Fp2505 ,
15776 > ( mode) ?;
77+
78+ println ! ( "p434:" ) ;
79+ const CFG_P434 : RunForParamsConfig = RunForParamsConfig {
80+ log_path_length : 10 ,
81+ security_bits : 128 ,
82+ commitment_size : 142 ,
83+ } ;
84+ run_for_params :: <
85+ { CFG_P434 . variable_count ( ) } ,
86+ { CFG_P434 . path_length ( ) } ,
87+ { CFG_P434 . path_length_div_64 ( ) } ,
88+ { CFG_P434 . path_length_times_two ( ) } ,
89+ { CFG_P434 . path_length_times_four ( ) } ,
90+ { CFG_P434 . log_path_length ( ) } ,
91+ { CFG_P434 . log_path_length_plus_one ( ) } ,
92+ { CFG_P434 . security_bits ( ) } ,
93+ { CFG_P434 . commitment_size } ,
94+ { CFG_P434 . q_variable_count ( ) } ,
95+ { CFG_P434 . final_round_evaluations ( ) } ,
96+ p434:: Fp2434 ,
97+ > ( mode) ?;
98+
99+ {
100+ println ! ( "503:" ) ;
101+ const CFG_P503 : RunForParamsConfig = RunForParamsConfig {
102+ log_path_length : 10 ,
103+ security_bits : 128 ,
104+ commitment_size : 158 ,
105+ } ;
106+ run_for_params :: <
107+ { CFG_P503 . variable_count ( ) } ,
108+ { CFG_P503 . path_length ( ) } ,
109+ { CFG_P503 . path_length_div_64 ( ) } ,
110+ { CFG_P503 . path_length_times_two ( ) } ,
111+ { CFG_P503 . path_length_times_four ( ) } ,
112+ { CFG_P503 . log_path_length ( ) } ,
113+ { CFG_P503 . log_path_length_plus_one ( ) } ,
114+ { CFG_P503 . security_bits ( ) } ,
115+ { CFG_P503 . commitment_size } ,
116+ { CFG_P503 . q_variable_count ( ) } ,
117+ { CFG_P503 . final_round_evaluations ( ) } ,
118+ p503:: Fp2503 ,
119+ > ( mode) ?;
120+ }
121+ {
122+ println ! ( "p610:" ) ;
123+ const CFG_P610 : RunForParamsConfig = RunForParamsConfig {
124+ log_path_length : 10 ,
125+ security_bits : 192 ,
126+ commitment_size : 186 ,
127+ } ;
128+ run_for_params :: <
129+ { CFG_P610 . variable_count ( ) } ,
130+ { CFG_P610 . path_length ( ) } ,
131+ { CFG_P610 . path_length_div_64 ( ) } ,
132+ { CFG_P610 . path_length_times_two ( ) } ,
133+ { CFG_P610 . path_length_times_four ( ) } ,
134+ { CFG_P610 . log_path_length ( ) } ,
135+ { CFG_P610 . log_path_length_plus_one ( ) } ,
136+ { CFG_P610 . security_bits ( ) } ,
137+ { CFG_P610 . commitment_size } ,
138+ { CFG_P610 . q_variable_count ( ) } ,
139+ { CFG_P610 . final_round_evaluations ( ) } ,
140+ p610:: Fp2610 ,
141+ > ( mode) ?;
142+ }
143+ {
144+ println ! ( "p751:" ) ;
145+ const CFG_P751 : RunForParamsConfig = RunForParamsConfig {
146+ log_path_length : 11 ,
147+ security_bits : 256 ,
148+ commitment_size : 220 ,
149+ } ;
150+ run_for_params :: <
151+ { CFG_P751 . variable_count ( ) } ,
152+ { CFG_P751 . path_length ( ) } ,
153+ { CFG_P751 . path_length_div_64 ( ) } ,
154+ { CFG_P751 . path_length_times_two ( ) } ,
155+ { CFG_P751 . path_length_times_four ( ) } ,
156+ { CFG_P751 . log_path_length ( ) } ,
157+ { CFG_P751 . log_path_length_plus_one ( ) } ,
158+ { CFG_P751 . security_bits ( ) } ,
159+ { CFG_P751 . commitment_size } ,
160+ { CFG_P751 . q_variable_count ( ) } ,
161+ { CFG_P751 . final_round_evaluations ( ) } ,
162+ p751:: Fp2751 ,
163+ > ( mode) ?;
164+ }
158165 }
159166 Ok ( ( ) )
160167}
0 commit comments