ckks_engine

Module arithmetic

Source

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.