Microsoft SEAL is an easy-to-use and powerful homomorphic encryption library.
MIT License
Bot releases are hidden (Show)
Published by kimlaine almost 2 years ago
Published by kimlaine almost 2 years ago
SEAL_COEFF_MOD_COUNT_MAX
, the maximum number of primes that define the coefficient modulus, from 64 to 256.const
qualifiers (PR #556).std::bad_alloc
.invariant_noise_budget
.mod_reduce_xxx(...)
(native) and ModReduceXxx(...)
(dotnet) to the class Evaluator
.Published by WeiDaiWD over 2 years ago
seal::scheme_type::bgv
.parms_id()
(native) to the class EncryptionParameters
.Create(...)
(native and dotnet) with three inputs in the class CoeffModulus
.correction_factor()
(native) or CorrectionFactor()
(dotnet) to the class Ciphertext
.EncryptionParameters
to the class SEALContext
.native/bench/bgv.cpp
is added.Published by WeiDaiWD over 2 years ago
util::try_minimal_primitive_root
search iterations by half (PR 430). Thanks, zirconium-n!SEAL_AVOID_BRANCHING
option to eleminate branching in critical functions when Microsoft SEAL is built with maliciously inserted compiler flags.KeyGenerator::CreateGaloisKeys
when inputs do not include steps so that even when EncryptionParameterQualifiers::using_batching
is false Galois automorphisms are still available.dotnet/SEALNet.sln
is removed.dotnet/SEALNet.sln.in
is added.Published by WeiDaiWD almost 3 years ago
Published by WeiDaiWD almost 3 years ago
SEAL_BUILD_DEPS=ON
and SEAL_USE_INTEL_HEXL=ON
.native/src/seal/util/intel_seal_ext.h
is removed.native/src/seal/util/intel_seal_ext.cpp
is removed.Published by WeiDaiWD about 3 years ago
Evaluator::multiply
, Evaluator::multiply_inplace
, and Evaluator::square
in the BFV scheme for default parameters with degree 4096
or higher.const
methods in SEALContext
and SEALContext::ContextData
classes that used to return a pointer or reference now have a preceeding const
qualifier.Published by WeiDaiWD over 3 years ago
1024
degree there is a huge penalty in execution time. Users should switch from GNU G++ in this specific parameter setting if CKKS square is used.Published by WeiDaiWD over 3 years ago
DWTHandler
(Issue 330).SEAL_USE_ZLIB=OFF
and SEAL_USE_ZTD=OFF
(PR 332).SEAL_USE_HEXL=ON
(PR 332).const
qualifiers to several members of BatchEncoder
and Evaluator
(PR 334).Published by kimlaine over 3 years ago
alloc-dealloc-mismatch
issues resolved by (PR 318).Published by kimlaine over 3 years ago
BUILD_SHARED_LIBS=ON
and SEAL_BUILD_SEAL_C=ON
(Issue 284).seal::random_bytes
function in randomgen.h.is_metadata_valid_for
invocations reported in (Issue 313).Published by kimlaine over 3 years ago
BUILD_SHARED_LIBS=ON
.Published by kimlaine almost 4 years ago
Published by kimlaine almost 4 years ago
BUILD_SHARED_LIBS=ON
and SEAL_BUILD_DEPS=ON
resulted in Zstandard header files not being visible to the build (Issue 242).FETCHCONTENT_BASE_DIR
(Issue 242).seal.sln
) for Windows.enum
labels are consistently in lowercase. Most importantly, scheme_type::BFV
and scheme_type::CKKS
are changed to scheme_type::bfv
and scheme_type::ckks
.seal::SEAL_BYTE
to seal::seal_byte
; all uppercase names are used only for preprocessor macros.BatchEncoder
API for encoding and decoding Plaintext
objects inplace.Plaintext
object with slot-data written into the coefficients is (confusingly) not valid to be used for encryption.IntegerEncoder
and BigUInt
classes.IntegerEncoder
results in inefficient homomorphic evaluation and lacks sane correctness properties, so it was basically impossible to use in real applications.BigUInt
class was only used by the IntegerEncoder
.Encryptor::encrypt
variants have now two overloads: one that takes a Ciphertext
out-parameter, and one that returns a Serializable<Ciphertext>
.KeyGenerator::create_public_key
.KeyGenerator::relin_keys_local
and KeyGenerator::galois_keys_local
functions.KeyGenerator::create_relin_keys
and KeyGenerator::create_galois_keys
that take an out-parameter of type RelinKeys
or GaloisKeys
.IntArray
to DynArray
(dynamic array) and removed unnecessary limitations on the object type template parameter.Modulus
class.DynArray
and Plaintext
objects from a gsl::span<std::uint64_t>
(C++) or IEnumerable<ulong>
(C#).std::hash
implementation for EncryptionParameters
(in addition to parms_id_type
) so it is possible to create e.g. std::unordered_map
of EncryptionParameters
.UniformRandomGeneratorFactory
to find whether the factory uses a default seed and to retrieve that seed.DynArray::begin
and DynArray::end
.Shake256PRNG
and Shake256PRNGFactory
classes.BlakePRNG
class to Blake2xbPRNG
, and BlakePRNGFactory
class to Blake2xbPRNGFactory
.UniformRandomGeneratorInfo
class that represents the type of an extendable output function and a seed value.SEALVersion
.SEALHeader
version.SEAL_BUILD_DEPS
controls whether dependencies are downloaded and built into Microsoft SEAL or searched from the system.BUILD_SHARED_LIBS
is set to ON
. Previously a static library was always built.SEAL_USE_GAUSSIAN_NOISE
is set to ON
.SEAL_DEFAULT_PRNG
controls which XOF is used for pseudo-random number generation.Blake2xb
(default) and Shake256
.seal_shared.pc
for compiling against a shared Microsoft SEAL if BUILD_SHARED_LIBS
is set to ON
..pre-commit-config.yaml
(check out pre-commit if you are not familiar with this tool).seal::util::DWTHandler
and seal::util::Arithmetic
class templates that unify the implementation of FFT (used by CKKSEncoder
) and NTT (used by polynomial arithmetic).native/src/seal/intarray.h
to native/src/seal/dynarray.h
dotnet/src/SEALNet.csproj
to dotnet/src/SEALNet.csproj.in
dotnet/tests/SEALNetTest.csproj
to dotnet/tests/SEALNetTest.csproj.in
dotnet/examples/SEALNetExamples.csproj
to dotnet/examples/SEALNetExamples.csproj.in
dotnet/src/BigUInt.cs
dotnet/src/IntegerEncoder.cs
dotnet/tests/BigUIntTests.cs
dotnet/tests/IntegerEncoderTests.cs
native/examples/SEALExamples.vcxproj
native/examples/SEALExamples.vcxproj.filters
native/src/CMakeConfig.cmd
native/src/SEAL_C.vcxproj
native/src/SEAL_C.vcxproj.filters
native/src/SEAL.vcxproj
native/src/SEAL.vcxproj.filters
native/src/seal/biguint.h
native/src/seal/biguint.cpp
native/src/seal/intencoder.h
native/src/seal/intencoder.cpp
native/tests/packages.config
native/tests/SEALTest.vcxproj
native/tests/SEALTest.vcxproj.filters
native/tests/seal/biguint.cpp
native/tests/seal/intencoder.cpp
thirdparty/
SEAL.sln
Published by kimlaine about 4 years ago
Published by kimlaine about 4 years ago
Published by kimlaine about 4 years ago
RtlGenRandom
if the BCrypt API fails.Published by kimlaine over 4 years ago
parms_id
of a Plaintext
was not cleared correctly before resizing in Decryptor::bfv_decrypt
.Published by kimlaine over 4 years ago
seal::util::MultiplyUIntModOperand
in native/src/seal/util/uintarithsmallmod.h.MultiplyUIntModOperand
instance for improved performance when the same operand is used repeatedly.seal::util::barrett_reduce_63
to seal::util::barrett_reduce_64
; the name was misleading and only referred to the size of the modulus.seal::util::StrideIter
in native/src/seal/util/iterator.h.SEAL_ALLOCATE_GET_PTR_ITER
and SEAL_ALLOCATE_GET_STRIDE_ITER
in native/src/seal/util/defines.h.