# CKKS scheme (index)
CKKS[^1] is an FHE scheme that enable complex number arithmetics. This is in contrast to BGV/BFV that enables modular arithmetics and TFHE that enables binary arithmetics.
It's security is based on R-LWE hardness i.e., it is a lattice based scheme. It has a know [[Known CKKS security vulnerability|vulnerability]] for an attacker that has pairs of ciphertext and their decryption.
CKKS is useful for implementing ML models as they usually require real numbers arithmetics. It is also fast as it support SIMD operations, has simpler decrypt algorithm which makes it's bootstrapping algorithm faster compared to other schemes.
## General
- [[CKKS plaintext message]]
- [[Convert CKKS ciphertext to new CKKS scheme with the same ring dimension (scheme switch)]]
- [[Prime modulus in CKKS]]
- [[CKKS Security Parameters]]
- [[Known CKKS security vulnerability]]
## Basic algorithms
- [[Pollard's Rho factoring]]
- [[Miller-Rabin primality test]]
- [[Fast Base Conversion - (Mod-up, BConv, FBC)]]
- [[CKKS Rescale - mod_down]]
- [[CKKS drop_level]]
- [[CKKS multiplication]]
- [[CKKS Rotations]]
- [[CKKS Conjugation]]
- [[CKKS Key switching]]
- [[HE scalar multiplication]]
- [[ciphertext & plaintext multiplication]]
- [[Canonical mapping (CKKS encoding)]]
- [[CKKS bootstrapping]]
- [[CKKS add scalar]]
## Optimizations
- [[Sparse secret encapsulation]]
- [[Gadget decomposition for key switch]]
- [[CKKS bits Bootstrapping (BinBoot)]]
- [[Chen-Chillotti-Song - Chebyshev approximation of sin function]]
- [[DFT decomposition]]
- [[Automorphism in NTT representation]]
- [[CKKS slim bootstrapping -- s2c -modup -c2s-mod (reorder)]]
- [[conjugate-invariant ring for 2x slots of real numbers]]
## Created 2023-01-04 17:45
[^1]: [[@original ckks paper - Homomorphic Encryption for Arithmetic of Approximate Numbers]]