Changelog#
[1.5.4.0] - 2024-07-24#
Add support for hierarchical rotation key generation. This allows the user to generate a base set of rotation keys that contains two subsets: the level-0 (a.k.a. “small” or regular) rotation keys, and the level-1 (a.k.a. “large”) rotation keys. The server, who doesn’t have the secret key, can later use these sets to generate new rotation keys.
Add anti money laundering AI model.
CircLayer supports running on GPU.
Add more stable and quicker polynomial evaluation method using the polynomial’s roots.
Add support for multiparty FHE using OpenFHE.
Add support for CKKS bootstrapping with OpenFHE.
Add circuit optimizations: merge duplicate nodes, optimize rotations, chain indices, and replace multiplications with squares where possible.
Upgraded to HEaaN 0.3.0.
Add an optimized ReLU activation
Upgraded to OpenFHE 1.2.0.
[1.5.3.1] - 2023-11-16#
MlToolBox improvements.
s390x related fixes.
[1.5.3.0] - 2023-06-27#
HEbase: Add Multi-Party FHE support for Palisade.
HEbase: Support for decreasing the rotation keys size while using HeaanContext, by setting the gadget rank and the size of the temporary primes when possible from a security standpoint (see HEaaN documentation for further details about gadget rank and temporary primes).
Math: Support for linear regression estimation. It is available through the LogisticRegression class by setting the activation type to none (LR_ACTIVATION_NONE).
Math: Tile tensor supports diagonalization techniques in matrix multiplication. See CTileTensor::getMatrixMultiplication().
Math: Convolution operator supports any arrangement of image, channels, filter, and batch dimensions.
AI: Extended functionality for neural networks: support new operators (MatMul, Mul and Add over N-dimensional tensors with broadcasting, Transpose, Squeeze, Unsqueeze, ReduceSum, ReduceMean), removal of restrictions (structure of CNNs, in which the location of fully-connected and flatten layers is flexible).
AI: Support generic packing of inputs for AI models. Some details on generic packing can be found at the methods HeContext::initForGenericPacking(), TTEncoder::encodeEncryptGenericPacking() and HeRunRequirements::setSimpleGenericPacking().
Examples: Added demo of linear regression estimation with Multi-Party FHE (C++ and Python).
Examples: Added range query example (C++).
Upgraded HEaaN backend to 0.2.0.
New HElayers website and API documentation.
[1.5.2.0] - 2023-02-28#
CircLayer: Improved API, support bootstrapping operators, new C++ tutorials in helayers-lab.
AES decryption under FHE; AI supports AES-encrypted inputs.
Extended CTile API: Added polymorphic binary operations that accept a Tile as second argument.
New TTFunctionEvaluator::compare() for comparing tile tensors.
New CTileTensor::shiftAlongDim() for shifting a tile tensor.
HeContext: Create context from a prioritized list of context names.
Performance: Improve simulations of deep computations; enable unlimited depth in simulations.
Performance: Replace integer multiply with additions in SealCkksCiphertext (when it’s empirically faster).
Upgraded HEaaN backend to 0.1.0, and added HEaaN to the pyhelayers wheels.
Added Lattigo backend.
Added macOS Intel 64-bit build for pyhelayerslite wheel.
[1.5.1.0] - 2022-11-30#
New notebooks with thorough explanations of Tile Tensors.
ARIMA: Add support for parameter d=1 in training and prediction. Now supporting all models of type ARIMA(p=*,d=0/1,q=1).
Python: CTile now supports multiply_scalar with integer, multiply_imaginary_unit, and nullify_imaginary_part.
[1.5.0.3] - 2022-11-02#
A new API for HeModel and PlainModel: Includes support for training, multiple inputs/outputs.
pyhelayers: Added some missing HeConfigRequirement methods.
MockupContext includes operation counts tracking.
Tile tensors: Rotate method now supports interleaved dimensions.
Tile tensors: A new printing mode for tile tensor that prints tiles.
[1.4.0.5] - 2022-07-19#
Fix a bug in which encode() and encode_encrypt() encoded Python lists of doubles as lists of integers.
Allow XGBoost inference using HeModel interface.
XGBoost demo notebook: Use HeProfileOptimizer to find optimal packing configuration and context parameters; encrypt and decrypt using IoProcessor.
[1.4.0.4] - 2022-06-27#
Fix bug in XGBoost inference when a tree has a single leaf node.
[1.4.0.3] - 2022-06-21#
mltoolbox: Improve trainer API; add starting_point() helper
[1.4.0.2] - 2022-06-13#
Add support for HEaaN on IBM Z (s390x)
Bug fixes
[1.4.0.1] - 2022-06-06#
‘accord’ submodule in pyhelayers: MPC and ZK, including demo notebooks.
‘mltoolbox’ submodule in pyhelayers: Convert a network to be HE friendly. Including a new demo notebook.
ARIMA model training and prediction, including a new demo notebook.
Added automatic bootstrapping to logistic regression training.
Upgraded to HEaaN 3.5.0.
Added support for Batch Normalization layer in NN.
Added optimization of rotation keys in HE models: Optimizer to detect and include only the necessary rotation keys in the HE context.
New demo notebook for deep neural networks: AlexNet, SqueezeNet and ResNet-18.
New demo notebook for FHE XGBoost inference over the iris dataset.
[1.3.0] - 2022-04-03#
Support for HEaaN as backend
Added helayerslite - a basic version of the library.
helayerslite compiled for WASM (Web assembly)
Faster logistic regression training
Support for convolution with custom padding