About the `arithmetic` Module
The `arithmetic` module in the ckks_engine crate provides a comprehensive suite of homomorphic arithmetic operations for encrypted data. These operations allow for secure computations directly on encrypted ciphertexts, ensuring data privacy throughout the process.
This module implements various arithmetic functions such as addition, subtraction, multiplication, negation, and advanced operations like exponentiation, division, rounding, truncation, floor, and ceil. Each function maintains data confidentiality while enabling mathematical manipulations on encrypted polynomials.
Key Features
- Homomorphic Addition: Securely add two encrypted polynomials without decrypting the underlying data.
- Homomorphic Subtraction: Compute the difference between encrypted polynomials.
- Homomorphic Multiplication: Perform secure polynomial multiplication with modular reduction to maintain encryption constraints.
- Homomorphic Negation: Negate encrypted polynomials securely.
- Advanced Operations: Includes operations like rounding, truncation, floor, ceil, exponentiation, and division for encrypted data.
- Customizable Precision: Operations are performed with customizable scaling factors to ensure precision in computations.
How It Works
The arithmetic
module interacts with encrypted polynomials through the CKKSEncryptor
.
Each function processes ciphertexts by performing arithmetic manipulations on polynomial coefficients. Modular
reduction is applied as needed to maintain the integrity of encrypted data within the defined modulus.
Usage
This module is designed to be used alongside other modules in the ckks_engine
crate, such as
keygen
, ckks
, and polynomial
. Together, these modules form a complete
framework for encrypted computation.