- Add to_bytes api
- Make MPInt.RandomExactBits() faster
- Add hnp.random api
- The hnp.Shape class supports iteration/pickling/slicing operations now
- [Break change] The encoder was divided into two types: IntegerEncoder and FloatEncoder
- Add two new encoder type: phe.BigintEncoder and phe.BatchEncoder
- Python lib: add numpy-like APIs, most of which have been implemented in a parallelized way
- C++ lib: add support for matrix operations
- Add new api phe.plaintext_bound() and phe.encrypt_with_audit()
- Remove dependency on libstdc++ (use static link instead)
- Add docs
- phe.encryptor.encrypt_raw() and phe.decryptor.decrypt_raw() support high precision integers
- phe.Plaintext supports conversion to and from arbitrary precision python integers
- Improve the security of paillier
- Z-Paillier: Implement CRT & Montgomery & Cache table optimization
- Add benchmark for CRT & cache table
- Translate doc to English
- Implement Paillier03 optimization and encryption is 2x faster than before. Ref https://www.brics.dk/DS/03/9/BRICS-DS-03-9.pdf
- Improve compatibility with macOS
- Implement an efficient PHE library and provide easy-to-use C++, Python interfaces