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

lwe: add ciphertext size and clarify modulus types on new lwe types #1083

Merged
merged 1 commit into from
Nov 19, 2024

Conversation

copybara-service[bot]
Copy link
Contributor

lwe: add ciphertext size and clarify modulus types on new lwe types

This PR:

  • Removes key identifier until we have the need for >1 "keyholder"
  • Adds a ciphertext size descriping the "vectorspace" dimension of the ciphertexts (number of polynomials)
  • Adds a description of how rings with RNS types look

@asraa
Copy link
Collaborator

asraa commented Nov 11, 2024

@ZenithalHourlyRate @j2kun @AlexanderViand-Intel I made this PR to draft out the (1) addition of the size parameter and (2) to draft out our intentions about how RNS types fit into the modulus parameter in the ciphertext ring attribute and (3) the key attribute changes (removal of ID and size and clarification on basis)

Note that the description is hopeful for the polynomial dialect's ring change.

Do any of you have better nomenclature for the rotation basis / power of x basis in the key attribute? I didn't include a powers-of-s since it's not strictly necessary if we always perform rotations on canonical size 2 ciphertexts, but I borrowed the idea from @ZenithalHourlyRate PR #1067

lib/Dialect/LWE/IR/NewLWEAttributes.td Outdated Show resolved Hide resolved
lib/Dialect/LWE/IR/NewLWEAttributes.td Outdated Show resolved Hide resolved
lib/Dialect/LWE/IR/NewLWEAttributes.td Outdated Show resolved Hide resolved
lib/Dialect/LWE/IR/NewLWEAttributes.td Outdated Show resolved Hide resolved
lib/Dialect/LWE/IR/NewLWEAttributes.td Outdated Show resolved Hide resolved
Copy link
Collaborator

@AlexanderViand-Intel AlexanderViand-Intel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for putting this together! I'd still love to have a "packet header breakdown" style diagram for the various attributes & types in the documentation ;) I'm happy to draw one up, though I'm not sure where it should live and if it should be an image (e.g., excalidraw) or ASCII so it can live directly in the tablegen docs?

lib/Dialect/LWE/IR/NewLWEAttributes.td Outdated Show resolved Hide resolved
lib/Dialect/LWE/IR/NewLWEAttributes.td Outdated Show resolved Hide resolved
@copybara-service copybara-service bot force-pushed the test_695422841 branch 3 times, most recently from ed0bc28 to 0ea75b5 Compare November 18, 2024 20:31
@j2kun j2kun added pull_ready Indicates whether a PR is ready to pull. The copybara worker will import for internal testing and removed pull_ready Indicates whether a PR is ready to pull. The copybara worker will import for internal testing labels Nov 19, 2024
This PR:
* Removes key identifier until we have the need for >1 "keyholder"
* Adds a ciphertext size descriping the "vectorspace" dimension of the ciphertexts (number of polynomials)
* Adds a description of how rings with RNS types look

PiperOrigin-RevId: 698106948
@copybara-service copybara-service bot merged commit f24037c into main Nov 19, 2024
@copybara-service copybara-service bot deleted the test_695422841 branch November 19, 2024 20:33
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.

4 participants