PALISADE (software)

PALISADE is an open-source cross platform software library that provides implementations of lattice cryptography building blocks and homomorphic encryption schemes.

History
PALISADE adopted the open modular design principles of the predecessor SIPHER software library from the DARPA PROCEED program. SIPHER development began in 2010, with a focus on modular open design principles to support rapid application deployment over multiple FHE schemes and hardware accelerator back-ends, including on mobile, FPGA and CPU-based computing systems. PALISADE began building from earlier SIPHER designs in 2014, with an open-source release in 2017 and substantial improvements every subsequent 6 months.

PALISADE development was funded originally by the DARPA PROCEED and SafeWare programs, with subsequent improvements funded by additional DARPA programs, IARPA, the NSA, NIH, ONR, the United States Navy, the Sloan Foundation and commercial entities such as Duality Technologies. PALISADE has subsequently been used in commercial offerings, such as by Duality Technologies who raised funding in a Seed round and a later Series A round led by Intel Capital.

In 2022 OpenFHE was released as a fork that also implements CKKS bootstrapping.

Features
PALISADE includes the following features:


 * Post-quantum public-key encryption
 * Fully homomorphic encryption (FHE)
 * Brakerski/Fan-Vercauteren (BFV) scheme for integer arithmetic with RNS optimizations
 * Brakerski-Gentry-Vaikuntanathan (BGV) scheme for integer arithmetic with RNS optimizations
 * Cheon-Kim-Kim-Song (CKKS) scheme for real-number arithmetic with RNS optimizations
 * Ducas-Micciancio (FHEW) scheme for Boolean circuit evaluation with optimizations
 * Chillotti-Gama-Georgieva-Izabachene (TFHE) scheme for Boolean circuit evaluation with extensions
 * Multiparty extensions of FHE
 * Threshold FHE for BGV, BFV, and CKKS schemes
 * Proxy re-encryption for BGV, BFV, and CKKS schemes
 * Digital signature
 * Identity-based encryption
 * Ciphertext-policy attribute-based encryption

Availability
There are several known git repositories/ports for PALISADE:

C++

 * PALISADE Stable Release (official stable release repository)
 * PALISADE Preview Release (official development/preview release repository)
 * PALISADE Digital Signature Extensions
 * PALISADE Attribute-Based Encryption Extensions (includes identity-based encryption and ciphertext-policy attribute-based encryption)

JavaScript / WebAssembly

 * PALISADE WebAssembly (official WebAssembly port)

Python

 * Python Demos (official Python demos)

FreeBSD

 * PALISADE (FreeBSD port)