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

Implement Lattice-Based Cryptography: from LWE to FHE #66

Open
aidevnn opened this issue Dec 23, 2024 · 6 comments
Open

Implement Lattice-Based Cryptography: from LWE to FHE #66

aidevnn opened this issue Dec 23, 2024 · 6 comments
Assignees
Labels
enhancement New feature or request

Comments

@aidevnn
Copy link
Owner

aidevnn commented Dec 23, 2024

In this project, we have successfully experimented with leveled homomorphic encryption using the BGV scheme. To further enhance the project, implementing a minimalist version of a Full Homomorphic Encryption with examples will be a useful improvement. This addition will provide valuable insights and broaden the scope of the project in the domain of lattice-based cryptography.

@aidevnn aidevnn added the enhancement New feature or request label Dec 23, 2024
@aidevnn aidevnn self-assigned this Dec 23, 2024
@aidevnn aidevnn moved this to In Progress in Group Theory for Undergraduate Dec 23, 2024
@aidevnn aidevnn changed the title Implement Lattice-Based Cryptography: from LWE to TFHE Implement Lattice-Based Cryptography: from LWE to FHE Dec 30, 2024
@aidevnn
Copy link
Owner Author

aidevnn commented Jan 3, 2025

// 1) m = (1+ε)*n*log2(n) ε=1
var m = (int)(2 * n * double.Log2(n));
// 2) lim a(n)*log2(n)*√n = lim 1 / (4*log10(n)) = 0
var a = 1.0 / (4 * double.Log10(n) * double.Log2(n) * double.Sqrt(n));

The parameters m and q do not match those in Reg24 and can be adjusted. This is also an excellent opportunity to delve deeper into system security.

@aidevnn aidevnn mentioned this issue Jan 3, 2025
@aidevnn
Copy link
Owner Author

aidevnn commented Jan 4, 2025

The toy implementation of the Regev LWE scheme has been completed according to the testing parameters outlined in the original paper. This implementation can be used to gain a better understanding of system security.

Additionally, homomorphic logic gates have been implemented based on Shai Halevi's paper. Moving forward, studying the growth of errors would be a valuable next step.

@aidevnn
Copy link
Owner Author

aidevnn commented Jan 20, 2025

Taking modulus ciphertext multiple of modulus plaintext is invalid because public key can be factorized.

@aidevnn
Copy link
Owner Author

aidevnn commented Feb 11, 2025

The main concepts of the BGV scheme were thoroughly explored, including relinearization, moduli switching, and key switching, as well as the progression from somewhat to leveled and bootstrapping. These explorations were conducted using weak parameters without a focus on computational efficiency, resulting in an insecure setting.

This topic is hot.

@aidevnn
Copy link
Owner Author

aidevnn commented Feb 16, 2025

Bootstrapping methods have been successfully added to scale the modulus from level 0 to level L-1, allowing for homomorphic addition with carry on 32-bits. However, these operations currently use insecure parameters because the implementation of Blind Rotate remains highly inefficient.

The exploration of Homomorphic Encryption is largely complete. The next significant challenge will be to achieve post-quantum level security with recommended parameters.

@aidevnn
Copy link
Owner Author

aidevnn commented Feb 19, 2025

The parameters of the [Reg24] examples work well with the RLWE implementation and scale effectively with Leveled BGV and Bootstrapping. We have successfully achieved an educational example of LWE to FHE. Our next step for the FastGoat project will be to delve deeper into lattice-based cryptography.

@aidevnn aidevnn moved this from In Progress to Done in Group Theory for Undergraduate Feb 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Development

No branches or pull requests

1 participant