-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ensure presence and correctness of validity checks #31
Comments
pub fn check_ciphertext_validity<E: PairingEngine>(
c: &Ciphertext<E>,
aad: &[u8],
) -> bool {
let g_inv = E::G1Prepared::from(-E::G1Affine::prime_subgroup_generator());
let hash_g2 = E::G2Prepared::from(construct_tag_hash::<E>(
c.commitment,
&c.ciphertext[..],
aad,
));
E::product_of_pairings(&[
(E::G1Prepared::from(c.commitment), hash_g2),
(g_inv, E::G2Prepared::from(c.auth_tag)),
]) == E::Fqk::one()
} which is used by Also, in file pub fn to_decryption_share(&self) -> DecryptionShare {
// TODO: Add verification steps Verification is missing from this function. |
yeah, i couldn't think of any scenario where it would make sense for our use case |
I found some other checks that I would like to document and verify. Moved to issue description |
oh nice, these are from the code and we need to verify the maths? |
Yes, these are from the original Ferveo source code, and I'd like to figure out what they do, how to use them, whether we need them etc. |
Marking as complete since
Marking as solved. I've aggregated the remaining checks into the issue description. |
Not sure how to compute 4.4.4 for a simple tDec variant. In this variant, |
@cygnusv, is this something we would like to explore further, or should we drop |
If
If |
The naive rewrite doesn't make sense here anyway, since in simple tDec decryption share is defined as Marking this as a candidate for a research item in #42 |
Found this earlier rewrite of |
Closing this as the work will be continued in separate issues mentioned in OP. |
Revise Ferveo's whitepaper and docs. List all validity checks for the protocol. Revise the source code and make sure that those checks are present, correct, and tested. Devise green- and red path scenarios.
List of checks:
batch_verify_decryption_shares
tpke
benchmark-
blinding_key_prepared
ferveo
:verify_optimistic
The text was updated successfully, but these errors were encountered: