-
Notifications
You must be signed in to change notification settings - Fork 26
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
Export components used in encryption, prove encryption is valid as ZKP #285
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
rickwebiii
reviewed
Jul 27, 2023
rickwebiii
reviewed
Jul 27, 2023
rickwebiii
reviewed
Jul 27, 2023
rickwebiii
reviewed
Jul 27, 2023
rickwebiii
reviewed
Jul 27, 2023
ryanorendorff
force-pushed
the
special-modulus-removal
branch
from
August 4, 2023 17:40
9a549ba
to
e46e318
Compare
ryanorendorff
commented
Aug 4, 2023
ryanorendorff
commented
Aug 4, 2023
ryanorendorff
commented
Aug 4, 2023
ryanorendorff
force-pushed
the
special-modulus-removal
branch
from
August 4, 2023 20:30
de73279
to
c8c466f
Compare
ryanorendorff
commented
Aug 4, 2023
ryanorendorff
commented
Aug 4, 2023
ryanorendorff
commented
Aug 4, 2023
rickwebiii
reviewed
Aug 4, 2023
rickwebiii
reviewed
Aug 4, 2023
ryanorendorff
force-pushed
the
special-modulus-removal
branch
from
August 5, 2023 01:03
26d071b
to
0962dc4
Compare
ryanorendorff
changed the title
Exported components from encryption
Export components used in encryption, prove encryption is valid as ZKP
Aug 5, 2023
Both of these PRs in the sunscreen SEAL repository will need to be merged first: |
rickwebiii
reviewed
Aug 10, 2023
rickwebiii
reviewed
Aug 10, 2023
rickwebiii
approved these changes
Aug 10, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Exposes the components used in performing the BFV encryption so that the encryption method can be proved in the SDLP.
Microsoft SEAL implements the BFV encryption scheme in a manner slightly different than how it is defined in textbook BFV. One change not mentioned in the SEAL manual is that the encryption equation is different.
For the following:
The textbook BFV equation for a fresh encryption of a message is as follows.
Instead of using$\Delta$ , SEAL performs the following operation for encrypting the first component of the ciphertext.
This is equivalent to the following operation (the operation actually performed by SEAL)
where$\mathrm{frac}$ is the fractional left over from $q/t$ and can be defined as $\mathrm{frac}(y) = y - \mathrm{floor}(y)$ for non-negative $y$ . For convenience we often call this remainder $r = \lfloor \mathrm{frac}(q/t) m \rceil$ . Note that $0 \leq r < t$ .
This PR exposes$u$ , $e$ , and $r$ by using the
encrypt_return_components
function. The special modulus is disabled when exporting the components, otherwise the result does not form linear equations that can be converted into a matrix equality.seal-remainder-pub.pdf