HE allows arbitrary computations to occur on encrypted data (ciphertexts) without decryption. Given a public key \(pk\) , a secret key \(sk\) , an encryption function \(\epsilon ()\) , and a decryption function \(\sigma ()\) , a HE operation \(\otimes \)  can be defined if there is another operation \(\times \)  such that \(\sigma (\epsilon (x_1, pk)\otimes \epsilon (x_2, pk), sk) = \sigma (\epsilon (x_1\times x_2, pk), sk)\) , where \(x_1\)  and \(x_2\)  are plaintexts, each of which encodes a vector consisting of multiple integer or fixed-point numbers [1]}, [2]}. Each HE operation introduces a certain amount of noise into the ciphertext. When the accumulated noise grows beyond a noise budget, a HE decryption failure happens. Though a bootstrapping operation [3]} reduces the accumulated noise in a ciphertext, it is computationally-expensive. Prior PPNNs use leveled HE having a fixed noise budget to compute only a limited number of HE operations without bootstrapping.
