You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+35-69
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,14 @@
1
1
# Pro7ech's Lattigo: Lattice-Based Multiparty Homomorphic Encryption Library in Go
2
2
3
-
This is a fork of [Tune Insight's Lattigo v5.0.2](https://github.com/tuneinsight/lattigo), that includes a refactored backend, many additional features and new protocols.
4
-
5
-
See [CHANGELOG](https://github.com/Pro7ech/lattigo/blob/main/.github/CHANGELOG.md) for the detailed changes.
3
+
This is a fork of [Tune Insight's Lattigo](https://github.com/tuneinsight/lattigo/tree/v5.0.2), that includes a refactored backend, many additional features and new protocols.
6
4
5
+
See [CHANGELOG](https://github.com/Pro7ech/lattigo/blob/master/.github/CHANGELOG.md) for additional information.
-`ckks`: A Full-RNS Homomorphic Encryption for Arithmetic for Approximate Numbers (HEAAN,
65
-
a.k.a. CKKS) scheme. It provides fixed-point approximate arithmetic over the complex numbers (in its classic
66
-
variant) and over the real numbers (in its conjugate-invariant variant).
67
-
68
-
-`lattigo/core`: A package implementing the core cryptographic functionalities of the library.
69
-
70
-
-`rlwe`: Common base for generic RLWE-based homomorphic encryption.
59
+
-`rlwe`: Common base for generic RLWE-based homomorphic encryption.
71
60
It provides all homomorphic functionalities and defines all structs that are not scheme-specific.
72
61
This includes plaintext, ciphertext, key-generation, encryption, decryption and key-switching, as
73
62
well as other more advanced primitives such as RLWE-repacking.
74
63
75
-
-`rgsw`: A Full-RNS variant of Ring-GSW ciphertexts and the external product.
64
+
-`rgsw`: A Full-RNS variant of Ring-GSW ciphertexts and supporting RLWExRGSW and RGSWxRGSW products.
76
65
77
-
-`lattigo/ring`: Modular arithmetic operations for polynomials in the RNS basis, including: RNS
66
+
-`ring`: Modular arithmetic operations for polynomials in the RNS basis, including: RNS
78
67
basis extension; RNS rescaling; number theoretic transform (NTT); uniform, Gaussian and ternary
79
68
sampling.
80
69
81
-
-`lattigo/examples`: Executable Go programs that demonstrate the use of the Lattigo library. Each
82
-
subpackage includes test files that further demonstrate the use of Lattigo
83
-
primitives.
70
+
-`examples`: Executable Go programs that demonstrate the use of the library.
71
+
Each subpackage includes test files that further demonstrate the use of the implemented primitives.
84
72
85
-
-`lattigo/utils`: Generic utility methods. This package also contains the following sub-pacakges:
73
+
-`utils`: Generic utility methods. This package also contains the following sub-pacakges:
74
+
-`concurrency`: Basic helpers for adding concurrency.
86
75
-`bignum`: Arbitrary precision linear algebra and polynomial approximation.
87
76
-`buffer`: Efficient methods to write/read on `io.Writer` and `io.Reader`.
88
77
-`factorization`: Various factorization algorithms for medium-sized integers.
@@ -115,66 +104,43 @@ MHE --> MHEInt
115
104
116
105
## Versions and Roadmap
117
106
118
-
The Lattigo library was originally exclusively developed by the EPFL Laboratory for Data Security
119
-
until its version 2.4.0.
120
-
121
-
Starting with the release of version 3.0.0, Lattigo is maintained and supported by [Tune Insight
122
-
SA](https://tuneinsight.com).
123
-
124
-
Also starting with from version 3.0.0, the module name has changed to
125
-
`github.com/tuneinsight/lattigo/v[X]`, and the official repository has been moved to
126
-
https://github.com/tuneinsight/lattigo. This has the following implications for modules that depend
127
-
on Lattigo:
128
-
- Modules that require `github.com/ldsec/lattigo/v2` will still build correctly.
129
-
- To upgrade to a version X.y.z >= 3.0.0, depending modules must require `github.com/tuneinsight/lattigo/v[X]/`,
130
-
for example by changing the imports to `github.com/tuneinsight/lattigo/v[X]/[package]` and by
131
-
running `go mod tidy`.
132
-
133
-
The current version of Lattigo, (v5.x.x) is fast-evolving and in constant development. Consequently,
134
-
there will still be backward-incompatible changes within this major version, in addition to many bug
135
-
fixes and new features. Hence, we encourage all Lattigo users to update to the latest Lattigo version.
107
+
The current version of the library is fast-evolving and in constant development.
108
+
Consequently, there will still be backward-incompatible changes within this major version, in addition to many bug fixes and new features.
109
+
Hence, we encourage all users to always update to the latest version.
136
110
137
-
138
-
See CHANGELOG.md for the current and past versions.
111
+
See [CHANGELOG](https://github.com/Pro7ech/lattigo/blob/master/.github/CHANGELOG.md) for the current and past versions.
139
112
140
113
## Stability
141
114
142
-
To keep a comprehensive history, we prioritize rebases over merges for branches other than `main`.
143
115
Branches with the prefix `dev_` are branches in active development and will be frequently rebased.
144
116
Hence, we don't recommend depending on them.
145
117
146
-
## Pull Requests
147
-
148
-
External pull requests should only be used to propose new functionalities that are substantial and would
149
-
require a fair amount of work if done on our side. If you plan to open such a pull request, please contact
150
-
us before doing so to make sure that the proposed changes are aligned with our development roadmap.
118
+
## Contributing to the Library
151
119
152
-
External pull requests only proposing small or trivial changes will be converted to an issue and closed.
120
+
See [CONTRIBUTING](https://github.com/Pro7ech/lattigo/blob/master/.github/CONTRIBUTING.md)
153
121
154
-
External contributions will require the signature of a Contributor License Agreement (CLA).
155
-
You can contact us using the following email to request a copy of the CLA: [lattigo@tuneinsight.com](mailto:lattigo@tuneinsight.com).
122
+
## Security
156
123
124
+
See [SECURITY](https://github.com/Pro7ech/lattigo/blob/main/.github/SECURITY.md)
157
125
158
126
## License
159
127
160
-
Lattigo is licensed under the Apache 2.0 License. See [LICENSE](https://github.com/tuneinsight/lattigo/blob/master/LICENSE).
128
+
Apache 2.0. See [LICENSE](https://github.com/Pro7ech/lattigo/blob/main/LICENSE)
161
129
162
130
## Contact
163
131
164
-
Before contacting us directly, please make sure that your request cannot be handled through an issue.
165
-
166
-
If you want to contribute to Lattigo or report a security issue, you have a feature proposal or request, or you simply want to contact us directly, please do so using the following email: [lattigo@tuneinsight.com](mailto:lattigo@tuneinsight.com).
132
+
You can mail me at [jeanphilippe.bossuat@gmail.com](jeanphilippe.bossuat@gmail.com)
167
133
168
134
## Citing
169
135
170
136
Please use the following BibTex entry for citing Lattigo:
0 commit comments