Skip to content

Commit ad1346e

Browse files
committed
Run both mask modes
1 parent 4cc1de0 commit ad1346e

2 files changed

Lines changed: 148 additions & 140 deletions

File tree

src/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,7 @@ pub fn do_sumcheck_pok<
469469
*evaluation_point = merlin.challenge_scalars::<1>()?[0];
470470
p.fix_variable(*evaluation_point);
471471
}
472+
// All variables should now be exhausted.
472473
debug_assert_eq!(p.variable_count(), 0);
473474

474475
// The final proof evaluations. We only send 3 in the optimized case.
@@ -686,7 +687,7 @@ pub fn verify_pok<
686687
// We arrive at our final claim. At the point `evaluation_point`,
687688
// polynomial `P` must equal `sum`. Now we need to verify this.
688689

689-
// Obtain the polynomial openingsFINAL_ROUND_EVALUATIONS
690+
// Obtain the polynomial openings
690691
let [b_0_i, b_0_j, b_1_i, b_1_j, mask]: [F; 5] = match mask_check_mode {
691692
MaskCheckMode::InsidePCS => arthur.next_scalars(),
692693
MaskCheckMode::Additional => {

src/src.rs

Lines changed: 146 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -4,157 +4,164 @@ use polynomial_proving::{run_for_params, MaskCheckMode, RunForParamsConfig};
44
use util::algebra::field::{p434, p503, p610, p751, sqisign};
55

66
fn 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

Comments
 (0)