Browse Source

working with precomputed basis!

Michele Orrù 7 years ago
parent
commit
058627111e
1 changed files with 18 additions and 16 deletions
  1. 18 16
      src/rms.c

+ 18 - 16
src/rms.c

@@ -26,14 +26,15 @@ uint32_t mul_single(const elgamal_cipher_t c,
   mpz_inits(op1, op2, NULL);
   //mpz_powm(op1, c1, cx, p);
   /* first block */
-  powmp_ui(op1, c->c1, cx->_mp_d[0]);
+
+  fb_powmp_ui(op1, c->fb_c1, cx->_mp_d[0]);
 
   /* second block */
-  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);
 
   /* third block */
-  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);
-  /* mpz_set_ui(x, 1); */
-  /* mpz_set_ui(y, 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);
+    /* mpz_set_ui(x, 1); */
+    /* mpz_set_ui(y, 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);