Members
number
# readonly chainIndex
Returns the index of the parameter set in a chain. The initial parameters
have index 0 and the index increases sequentially in the parameter chain.
SecurityLevel.none
|
SecurityLevel.tc128
|
SecurityLevel.tc192
|
SecurityLevel.tc256
# readonly securityLevel
Tells whether the encryption parameters are secure based on the standard
parameters from HomomorphicEncryption.org security standard.
boolean
# readonly usingBatching
Tells whether batching is supported by the encryption parameters. If the
plaintext modulus is congruent to 1 modulo 2N, where X^N+1 is the polynomial
modulus and N is a power of two, then it is possible to use the BatchEncoder
class to view plaintext elements as 2-by-(N/2) matrices of integers modulo
the plaintext modulus. This is called batching, and allows the user to
operate on the matrix elements (slots) in a SIMD fashion, and rotate the
matrix rows and columns. When the computation is easily vectorizable, using
batching can yield a huge performance boost. If the encryption parameters
support batching, the variable using_batching is set to true.
boolean
# readonly usingDescendingModulusChain
Tells whether the coefficient modulus consists of a set of primes that
are in decreasing order. If this is true, certain modular reductions in
base conversion can be omitted, improving performance.
boolean
# readonly usingFFT
Tells whether FFT can be used for polynomial multiplication. If the
polynomial modulus is of the form X^N+1, where N is a power of two, then
FFT can be used for fast multiplication of polynomials modulo the polynomial
modulus. In this case the variable using_fft will be set to true. However,
currently Microsoft SEAL requires this to be the case for the parameters
to be valid. Therefore, parameters_set can only be true if using_fft is
true.
boolean
# readonly usingFastPlainLift
Tells whether fast plain lift is supported by the encryption parameters.
A certain performance optimization in multiplication of a ciphertext by
a plaintext (Evaluator::multiply_plain) and in transforming a plaintext
element to NTT domain (Evaluator::transform_to_ntt) can be used when the
plaintext modulus is smaller than each prime in the coefficient modulus.
In this case the variable using_fast_plain_lift is set to true.
boolean
# readonly usingNTT
Tells whether NTT can be used for polynomial multiplication. If the primes
in the coefficient modulus are congruent to 1 modulo 2N, where X^N+1 is the
polynomial modulus and N is a power of two, then the number-theoretic
transform (NTT) can be used for fast multiplications of polynomials modulo
the polynomial modulus and coefficient modulus. In this case the variable
using_ntt will be set to true. However, currently Microsoft SEAL requires
this to be the case for the parameters to be valid. Therefore, parameters_set
can only be true if using_ntt is true.
Methods
# delete()
Delete the underlying WASM instance.
Should be called before dereferencing this object to prevent the
WASM heap from growing indefinitely.
# parametersSet() → {boolean}
If the encryption parameters are set in a way that is considered valid by
Microsoft SEAL, the variable parameters_set is set to true.
boolean