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

feat(core_crypto): add glwe tensor product, relinearization, glwe keyswitch and lwe trace packing keyswitch #1668

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Carl-Zama
Copy link

PR content/description

Adds the following:

  1. Slice decomposers to decompose polynomials.
  2. Glwe Keyswitch Keys and the Glwe Keyswitch operation to go from Glwe Ciphertexts encrypted under one Glwe Secret Key to one encrypted under a second Glwe Secret Key while keeping the same message.
  3. Glwe tensor product operation to multiply two polynomial plaintexts.
  4. Glwe Relinearization Keys and the Glwe Relinearization operation which converts the format of the Glwe tensor product operation output back to be format of the inputs.
  5. Ability to apply an automorphism to a polynomial.
  6. Lwe Trace Packing Keyswitch Keys and the Lwe trace packing keyswitch operation which can pack a list of LWE ciphertexts into a single GLWE ciphertext at specified coefficients.
  7. Operations to perform a dot product between two LWE lists and to perform a number of LWE multiplications in parallel, i.e. a component-wise product of two LWE lists.

Check-list:

  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)
  • Relevant issues are marked as resolved/closed, related issues are linked in the description
  • Check for breaking changes (including serialization changes) and add them to commit message following the conventional commit specification

@cla-bot cla-bot bot added the cla-signed label Oct 11, 2024
@Carl-Zama Carl-Zama force-pushed the cb/feat/add_glwe_tensor_product_and_lwe_trace_packing_keyswitch branch from 87240b0 to 16dd2e8 Compare October 11, 2024 13:24
@IceTDrinker
Copy link
Member

Hey thanks for the PR, I'll try to take some time to read it, but I won't have time before next week, in the mean time if pcc is failing you can fix the errors it sends back :)

@Carl-Zama Carl-Zama force-pushed the cb/feat/add_glwe_tensor_product_and_lwe_trace_packing_keyswitch branch from 16dd2e8 to ae96eec Compare October 11, 2024 16:23
@Carl-Zama
Copy link
Author

Hey thanks for the PR, I'll try to take some time to read it, but I won't have time before next week, in the mean time if pcc is failing you can fix the errors it sends back :)

No problem, I should have hopefully fixed the pcc issues.

@IceTDrinker
Copy link
Member

IceTDrinker commented Oct 24, 2024

I think a potential first step would be to prep the glwe keyswitch stuff, for a first standalone PR

@Carl-Zama
Copy link
Author

I think a potential first step would be to prep the glwe keyswitch stuff, for a first standalone PR

Okay, yes I would agree. Do you want me to do that?

@IceTDrinker
Copy link
Member

I think a potential first step would be to prep the glwe keyswitch stuff, for a first standalone PR

Okay, yes I would agree. Do you want me to do that?

I’ll check with Sam as he knows better what your current tasks are 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants