Comments (1)
The protocol for BFV threshold noise flooding is as follows:
Let our current RNS basis for decryption be Q=q_0 * q_1 * ... * q_k. Add two more 60-bit primes p_0 and p_1. The extended basis is QP = q_0 * p_1 * p_2 * ...q_1 * q_k.
As the input, we get c1 mod QP. We first generate a random uniform ring element b w.r.t. to mod Qprime = QP/q_0. Then we do exact RNS basis extension from Qprime to QP.
Then we do flooding c1 * s_i + b mod QP.
Each party sends the results, and the fuser adds them up mod QP. Finally, we do BFV rounding and output the decryption result.
Possible optimizations for future:
- In BFV, right before BFV rounding before decryption, we modswitch from QP to q_0.
- Modswitch to 3 moduli, i.e., QP = q_0 * p_0 * p_1 before generating/adding the random elements.
- Do modswitch by each party from QP to q_0 before sending the partial decryption results to the fuser.
- Change c1 * s_i to COEFFICIENT representation after the product. Do all other operations in COEFFICIENT representation.
For BGV threshold noise flooding, the protocol is exactly the same, except we use b' = tb for flooding instead of b.
from openfhe-development.
Related Issues (20)
- a little problem about the third-party-----cereal
- Add scheme-specific validation of user parameters supplied for crypto context generation
- Two scheme switching examples are not working in scheme_switching.cpp HOT 1
- Check that the parameters input to the cryptocontext are scheme-specific
- Incorrect decryption results in BGV for a specific parameter set HOT 1
- Add BGV-like modulus switching support to BFV HOT 1
- Add serialization to and from JSON strings
- Clean/modify the existing workflows
- Add exception handling for ciphertext/ciphertext and ciphertext/plaintext operations when the number of RNS limbs is mismatched
- [Feature request] Improve interface of the keypair type
- Update OpenFHE CI/CD documentation
- [Feature request] Improve interface of the CryptoContextImpl type
- Exception is not being caught in `MakePackedPlaintext`
- Addition for CKKS FLEXIBLE* modes at multiplicative depth = 0 returns incorrect results for batch size = 1 or 2
- [New feature] Look-up table evaluation over CKKS schemes
- Optimize BFV/BGV operations related to plaintexts
- Packing variants and allowed functions
- Granular access for encoding/decoding
- Remove code from OpenFHEConfig.cmake.in
- Add support for a vector of LWE ciphertexts
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from openfhe-development.