Magma implementation of bootstrapping for BGV and BFV.
Any bugs can be reported to robin.geelen@esat.kuleuven.be.
The code is divided over the following folders:
Arithmetic
contains functions to convert between power basis, powerful basis and FFT domain.Crypto
contains the implementation of BGV and BFV, including rotations and Frobenius maps.Linear maps
provides functionality to map plaintext coefficients to slots and vice versa.Digit extraction
is necessary to extract the upper digits of a sparsely packed or "thin" ciphertext.Bootstrapping
contains the actual bootstrapping algorithm for fully packed as well as for "thin" ciphertexts.
- Obtain a Magma license from http://magma.maths.usyd.edu.au/magma.
- Start Magma and change to the root directory of this repository via the “ChangeDirectory” command.
- Load the desired file via the “load” command.