|
@@ -26,14 +26,15 @@ uint32_t mul_single(const elgamal_cipher_t c,
|
|
|
mpz_inits(op1, op2, NULL);
|
|
|
|
|
|
|
|
|
- powmp_ui(op1, c->c1, cx->_mp_d[0]);
|
|
|
+
|
|
|
+ fb_powmp_ui(op1, c->fb_c1, cx->_mp_d[0]);
|
|
|
|
|
|
|
|
|
- powmp_ui(op2, c->c1e64, cx->_mp_d[1]);
|
|
|
+ fb_powmp_ui(op2, c->fb_c1e64, cx->_mp_d[1]);
|
|
|
mpz_mul_modp(op1, op2, op1);
|
|
|
|
|
|
|
|
|
- powmp_ui(op2, c->c1e128, cx->_mp_d[2]);
|
|
|
+ fb_powmp_ui(op2, c->fb_c1e128, cx->_mp_d[2]);
|
|
|
mpz_mul_modp(op1, op2, op1);
|
|
|
|
|
|
fb_powmp_ui(op2, c->fb_c2, x);
|
|
@@ -96,24 +97,25 @@ int main()
|
|
|
ssl2_init(t1);
|
|
|
ssl2_init(t2);
|
|
|
|
|
|
- mpz_urandomb(y, _rstate, 1);
|
|
|
- mpz_urandomb(x, _rstate, 1);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- ssl2_share(s1, s2, x, key->sk);
|
|
|
- ssl2_open(test, s1, s2);
|
|
|
- assert(!mpz_cmp(test, x));
|
|
|
+ for (int i = 0; i < (int) 1e2; i++) {
|
|
|
+ mpz_urandomb(y, _rstate, 1);
|
|
|
+ mpz_urandomb(x, _rstate, 1);
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- ssl1_share(r1, r2, y, key);
|
|
|
- ssl1_open(test, r1, r2, key);
|
|
|
- assert(!mpz_cmp_ui(test, mpz_cmp_ui(y, 0) ? 2 : 1));
|
|
|
+ ssl2_share(s1, s2, x, key->sk);
|
|
|
+ ssl2_open(test, s1, s2);
|
|
|
+ assert(!mpz_cmp(test, x));
|
|
|
|
|
|
- for (int i = 0; i < (int) 1e2; i++) {
|
|
|
START_TIMEIT();
|
|
|
- hss_mul(t1, r1, s1);
|
|
|
+ ssl1_share(r1, r2, y, key);
|
|
|
END_TIMEIT();
|
|
|
|
|
|
+ ssl1_open(test, r1, r2, key);
|
|
|
+ assert(!mpz_cmp_ui(test, mpz_cmp_ui(y, 0) ? 2 : 1));
|
|
|
+
|
|
|
+
|
|
|
+ hss_mul(t1, r1, s1);
|
|
|
hss_mul(t2, r2, s2);
|
|
|
#ifndef NDEBUG
|
|
|
gmp_printf("%Zx %Zx\n", x, y);
|