From 9032e93fa1542df4250107fad40329d973ad2782 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20N=C3=BA=C3=B1ez?= Date: Fri, 20 Sep 2024 12:59:14 +0200 Subject: [PATCH] Consider using multipairings See issue #192 --- ferveo-tdec/src/decryption.rs | 2 +- ferveo/src/pvss.rs | 3 ++- ferveo/src/refresh.rs | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ferveo-tdec/src/decryption.rs b/ferveo-tdec/src/decryption.rs index 0a93cb24..dcba8336 100644 --- a/ferveo-tdec/src/decryption.rs +++ b/ferveo-tdec/src/decryption.rs @@ -50,7 +50,7 @@ impl ValidatorShareChecksum { return false; } - // TODO: use multipairing here (h_inv) + // TODO: use multipairing here (h_inv) - Issue #192 // e(C_i, ek_i) == e(U, H) if E::pairing(self.checksum, *validator_public_key) != E::pairing(ciphertext.commitment, *h) diff --git a/ferveo/src/pvss.rs b/ferveo/src/pvss.rs index d8ffb2b9..3118eb6c 100644 --- a/ferveo/src/pvss.rs +++ b/ferveo/src/pvss.rs @@ -208,6 +208,7 @@ impl PubliclyVerifiableSS { pvss_params.g, self.sigma, // h^s ) + // TODO: multipairing? - Issue #192 } /// Part of checking the validity of an aggregated PVSS transcript @@ -260,7 +261,7 @@ pub fn do_verify_full( // We verify that e(G, Y_i) = e(A_i, ek_i) for validator i // See #4 in 4.2.3 section of https://eprint.iacr.org/2022/898.pdf // e(G,Y) = e(A, ek) - // TODO: consider using multipairing + // TODO: consider using multipairing - Issue #192 let is_valid = E::pairing(pvss_params.g, *y_i) == E::pairing(a_i, ek_i); if !is_valid { return Ok(false); diff --git a/ferveo/src/refresh.rs b/ferveo/src/refresh.rs index cfdba44f..17447883 100644 --- a/ferveo/src/refresh.rs +++ b/ferveo/src/refresh.rs @@ -179,6 +179,7 @@ pub struct ShareUpdate { } impl ShareUpdate { + // TODO: Use multipairings? - #192 // TODO: Unit tests pub fn verify( &self,