Skip to content

Releases: microsoft/SEAL

Release 4.3.0

25 Apr 08:06

Choose a tag to compare

Version 4.3.0

  • Merged (PR #734): Fixed IterTuple constructors that returned references to local temporaries.
  • Merged (PR #738): Fixed out-of-bounds read in Serialization_IsCompatibleVersion and Serialization_IsValidHeader (C API).
  • Fixed undefined behavior in CKKS encoding reported in (issue #732) by Wowblk, and other instances of a similar broken pattern.
  • Bumped .NET target framework from net8.0 to net10.0.
  • Updated dependency versions: Google Benchmark to 1.9.5, GoogleTest to 1.17.0, MSGSL to 4.2.1, zlib to 1.3.2.
  • Added cmake/ios_xcframework.cmake and a CI artifact that produces libseal-<ver>.xcframework and libsealc-<ver>.xcframework in one command.
  • Added CMakePresets.json for Windows, Linux, and macOS development.
  • No further releases will be published to NuGet.org. Users who want newer versions in .NET projects should build their own NuGet package from source.

Version 4.2.0

  • Merged (PR #729): Updated zlib and zstd versions.
  • Updated Intel HEXL, Google Benchmark, GTest, MSGSL dependency versions.
  • Updated Blake2xb and Shake256 implementations (courtesy of https://github.com/BLAKE2/BLAKE2 and https://github.com/pq-crystals/kyber, respectively).
  • Significant improvements to the build system, including numerous bug fixes and better support for multi-configuration generators.

Release 4.1.2

11 Jul 02:15

Choose a tag to compare

Hotfix - 6/13/2024

Hotfix - 7/10/2024

Release 4.1.1

11 Jan 04:54

Choose a tag to compare

Bug Fixes

Release 4.1.0

04 Jan 06:11

Choose a tag to compare

Features

  • The BGV scheme now keeps ciphertexts in NTT form. BGV ciphertext multiplication is much faster than version 4.0.0.
  • When a BGV ciphertext saved by previous versions is loaded in the current version, it is automatically converted to NTT form.
  • Increased SEAL_COEFF_MOD_COUNT_MAX, the maximum number of primes that define the coefficient modulus, from 64 to 256.

Other Fixes

  • Fixed typos (PR #590).
  • Added $schema to cgmanifest.json (PR #558).
  • Fixed typos (PR #512).
  • Fixed typos (PR #530).
  • Fixed typos (PR #509).
  • Added missing const qualifiers (PR #556).
  • Added vcpkg installation instructions (PR #562).
  • Fixed an issue in specific environments where allocation fails without throwing std::bad_alloc.
  • Fixed comments (C++) and C/.NET wrapper implementation of an exception thrown by invariant_noise_budget.

Major API Changes

  • Added new public methods mod_reduce_xxx(...) (native) and ModReduceXxx(...) (dotnet) to the class Evaluator.

Release 4.0.0

17 Mar 19:31

Choose a tag to compare

Features

  • Added BGV scheme (PR 283). Thanks, Alibaba Gemini Lab!
  • Added a new example "BGV basics" to native and dotnet.
  • Loading objects serialized by Microsoft SEAL v3.4+ are supported.
  • Updated versions of dependencies: GoogleTest from 1.10.0 to 1.11.0 and GoogleBenchmark from 1.5.2 to 1.6.0.

Other Fixes

Major API Changes

  • Added seal::scheme_type::bgv.
  • Added a new public method parms_id() (native) to the class EncryptionParameters.
  • Added a new public method Create(...) (native and dotnet) with three inputs in the class CoeffModulus.
  • Added a new public method correction_factor() (native) or CorrectionFactor() (dotnet) to the class Ciphertext.
  • Removed the friendship of the class EncryptionParameters to the class SEALContext.

File Changes

  • native/bench/bgv.cpp is added.
  • Examples are renamed and extended.

Release 3.7.3

17 Mar 04:15

Choose a tag to compare

Features

  • All output files including downloaded thirdparty dependencies and Visual Studio project and solution files will be created in the build directory (PR 427).
  • Reduced util::try_minimal_primitive_root search iterations by half (PR 430). Thanks, zirconium-n!
  • Updated .Net SDK version to 6.0.x and supported Visual Studio version to 17 2022.
  • Added SEAL_AVOID_BRANCHING option to eleminate branching in critical functions when Microsoft SEAL is built with maliciously inserted compiler flags.

Bug Fixes

  • Removed exceptions in KeyGenerator::CreateGaloisKeys when inputs do not include steps so that even when EncryptionParameterQualifiers::using_batching is false Galois automorphisms are still available.

File Changes

  • dotnet/SEALNet.sln is removed.
  • dotnet/SEALNet.sln.in is added.

Release 3.7.2

12 Nov 21:46

Choose a tag to compare

Bug Fixes

  • Fixed a bug when Intel HEXL is used (Issue 411) (PR414).
  • Fixed an abnormal benchmark case due to AVX512 transitions when Intel HEXL is used (PR 416).

Release 3.7.1

25 Oct 22:23

Choose a tag to compare

Bug Fixes

  • Fixed compiler and linker errors in downstream projects when Microsoft SEAL is built with SEAL_BUILD_DEPS=ON and SEAL_USE_INTEL_HEXL=ON.
  • Updated CMake minimum requirement to 3.13.

File Changes

  • native/src/seal/util/intel_seal_ext.h is removed.
  • native/src/seal/util/intel_seal_ext.cpp is removed.

Release 3.7.0

17 Sep 07:40

Choose a tag to compare

Features

  • Improved the performance of Evaluator::multiply, Evaluator::multiply_inplace, and Evaluator::square in the BFV scheme for default parameters with degree 4096 or higher.
  • Improved the performance of decryption (PR 363).
  • Updated to HEXL version 1.2.1 (PR 375).
  • Added more benchmark cases (PR 379).

Minor API Changes

  • const methods in SEALContext and SEALContext::ContextData classes that used to return a pointer or reference now have a preceeding const qualifier.

Bug Fixes

  • Fixed failed tests on PowerPC architecture (Issue 360).

Release 3.6.6

15 Jun 06:06

Choose a tag to compare

Bug Fixes

  • Fixed an error when loading seeded ciphertexts serialized by v3.4.x from v3.5.0+.
  • Fixed failed tests on ARM64 architecture (Issue 347).

Other

  • Improved HEXL NTT integration (PR 349).
  • Improved CKKS ciphertext multiplication (PR 346).
  • Improved CKKS ciphertext square (PR 353), except that with GNU G++ compiler and 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.