Implementing Babystep-Giantstep Matrix-Vector Multiplication with BFV scheme #360
-
Hi, I'm trying to transcipher from PASTA to BFV, and one of the key elements to achieve this is to evaluate a product between a plain matrix and an encrypted packed vector. The original PASTA paper suggests using the Babystep-Gigantstep algorithm and provides a reference implementation. I'm trying to reproduce it in Go, using
|
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 2 replies
-
Hi @fedejinich, The algorithm is implemented for the BGV scheme: Another option is the experimental branch |
Beta Was this translation helpful? Give feedback.
-
Hi @Pro7ech thanks for the quick (and nice) response, It really helps me. Again, thank you :) |
Beta Was this translation helpful? Give feedback.
-
@Pro7ech Do you think the experimental branch will be included in a new version? If not, I can try to collaborate with another experimental branch with the BFV implementation |
Beta Was this translation helpful? Give feedback.
Hi @fedejinich,
The algorithm is implemented for the BGV scheme:
linear_transforms.go
. Reimplementing it for BFV should be straightforward.Another option is the experimental branch
https://github.com/tuneinsight/lattigo/tree/dev_bgvfv
which implements a unification of the BFV and BGV scheme. In this branch the BFV sheme is instantiated as a wrapper of a generalization of BGV, thus it has the API for the linear transform (seebfv.go
and this line for an example of how to use it).