Skip to content
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

Updates for CGGMP'24 #170

Draft
wants to merge 18 commits into
base: master
Choose a base branch
from
Draft

Updates for CGGMP'24 #170

wants to merge 18 commits into from

Conversation

fjarri
Copy link
Member

@fjarri fjarri commented Dec 17, 2024

Fixes #157

  • Updated paper references in PAPER.md, removed obsolete items.
  • Updated to the new range definition (±2^l now means [-2^(l-1)+1, 2^(l-1)] instead of the previous [-2^l, 2^l]). This caused a bit of a chain reaction:
    • SecretSigned::assert_exponent_range() logic changed.
    • SecretSigned::random_in_exp_range*() logic changed, and also exp was changed to exponent to match the assertion name.
    • PublicSigned::from_xof_reader_bounded() changed its behavior to produce the number according to the new range definition, and was renamed to from_xof_reader_in_range().
    • PublicSigned::in_range_bits() changed its behavior according to the new range definition, and was renamed to is_in_exponent_range().
    • Wherever scalars are passed to proofs and Ciphertext constructor they are passed as SecretSigned, to comply with the range requirements in the proofs.
    • conversions::secret_unsigned_from_scalar() removed.
    • Added SecretSigned::new_modulo() constructor to make a signed number in range [-N/2, N/2] from an Uint in range [0, N).
    • Removed Ciphertext::new() and decrypt() (which took unsigned plaintexts), renamed new_signed() and decrypt_signed() to new() and decrypt().
    • Ciphertext::new_with_randomizer() was renamed to new_with_randomizer_unsigned(), since it's now a special one, only used in P_mul. Renamed new_with_randomizer_signed() to new_with_randomizer(), and new_public_with_randomizer_signed() to new_public_with_randomizer().
  • Following that, wherever in the paper e <-- ±q is used, we are sampling the challenge as a Scalar using the new Scalar::from_xof_reader() method (and using that in П^sch as well).
  • Updated paper references and notation in aff-g proof.
  • Updated paper references in prm proof, and started using BitVec for its commitment.
  • Updated dec proof (there were significant changes). Temporarily, it is located in dec_new.rs, will be moved to dec.rs when Presigning is updated.
  • Added elog proof.
  • Added enc-elg proof.
  • Added aff-g* proof.
  • Updated paper references and notation in fac proof, and implemented necessary changes to the algorithm (some variables are calculated differently, and the challenge is now a signed Uint and not a Scalar)
  • Updated paper references and notation in mod proof, and enforced invertibility conditions that were added in '24
  • Updated paper references and notation sch proof
  • Encapsulated the invertibility check in an IsInvertible trait, documenting the choice between GCD and invert()

@fjarri fjarri self-assigned this Dec 17, 2024
Copy link

codecov bot commented Dec 19, 2024

Codecov Report

Attention: Patch coverage is 88.18505% with 166 lines in your changes missing coverage. Please review.

Project coverage is 92.38%. Comparing base (423f1b5) to head (e0565ce).

Files with missing lines Patch % Lines
synedrion/src/cggmp21/key_init.rs 15.17% 95 Missing ⚠️
synedrion/src/cggmp21/interactive_signing.rs 65.51% 10 Missing ⚠️
synedrion/src/cggmp21/aux_gen.rs 0.00% 9 Missing ⚠️
synedrion/src/cggmp21/key_refresh.rs 18.18% 9 Missing ⚠️
synedrion/src/www02/key_resharing.rs 10.00% 9 Missing ⚠️
synedrion/src/cggmp21/sigma/aff_g_star.rs 96.42% 7 Missing ⚠️
synedrion/src/cggmp21/sigma/enc_elg.rs 96.55% 6 Missing ⚠️
synedrion/src/cggmp21/sigma/dec_new.rs 97.26% 5 Missing ⚠️
synedrion/src/cggmp21/sigma/elog.rs 96.58% 4 Missing ⚠️
synedrion/src/cggmp21/sigma/fac.rs 93.47% 3 Missing ⚠️
... and 6 more
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #170      +/-   ##
==========================================
- Coverage   93.06%   92.38%   -0.69%     
==========================================
  Files          36       40       +4     
  Lines        7012     7734     +722     
==========================================
+ Hits         6526     7145     +619     
- Misses        486      589     +103     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@fjarri fjarri force-pushed the new-cggmp branch 8 times, most recently from 996e6ee to 588f3ba Compare December 21, 2024 22:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement the updates in the CGGMP paper
1 participant