Compute with encrypted numbers.
Use CKKS for approximate arithmetic on packed vectors, from addition and multiplication to polynomial evaluation and bootstrapping.
For developers starting numerical computation · Source guide · 2394fa5
Run a first calculation
Follow the quickstart to install the toolchain and run an encrypted addition and multiplication. The example uses the portable CPU backend, so it does not require a particular SIMD instruction set.
Evaluate a function
From the Poulpy repository directory, run the maintained polynomial example:
cargo run --locked --release -p poulpy-cpu-ref --features enable-ckks --example ckks_poly2
ckks_poly2.rs approximates sine on encrypted inputs, then decrypts and checks the result. Read Polynomial evaluation for the evaluator and its precision budget.
Explore the operations
- Linear transformations covers matrix-vector products and slot transformations.
- Bootstrapping explains how to refresh a ciphertext’s computation budget.
- PaCo and SHIP describe alternative bootstrapping operations.
- The
poulpy-ckksAPI lists the public types and operations.
Select a backend
Scheme code uses a backend through the hardware abstraction layer. Start with the reference implementation, then consult Backends for acceleration options and Performance for tuning.