In the paper Fully Homomorphic Encryption over the Integers, it mentions a symmetric key scheme on page 1 and 2.
Key Generation: Pick a random odd number $p \epsilon [2^{N-1},2^N)$
Encrypt A Bit m: $c = pq + 2r + m$
Decrypt A Bit c: $m = (c \% p) \% 2$
Homomorphic XOR: $result = c + c'$
Homomorphic AND: $result = c * c'$
Note that when encrypting a bit, $q$ is a random number to help hide the key, and $r$ is a small noise value to turn breaking the encryption into a "learning with error" problem. $N$ is effectively the number of bits in the key.
In the second to last paragraph on page 1, the paper suggests these values to make the above secure:
$r ≈ 2√N$
$q ≈ 2N^3$
However, the font used is rather unfortunate and I can't tell if the paper means the way i wrote it above, or the way I wrote it below:
$r ≈ 2^{√N}$
$q ≈ 2^{N^3}$
Is anyone able to understand which way it should be? Also, I'm kind of curious where these specific values for security came from, if anyone is able to shed light on that.
Edit:
Later in the paper, on page 5, it talks about how to calculate some parameters for the public key implementation:
γ is the bit-length of the integers in the public key
η is the bit-length of the secret key (which is the hidden approximate-gcd of all the public-key integers),
ρ is the bit-length of the noise (i.e., the distance between the public key elements and the nearest multiples of the secret key), and
τ is the number of integers in the public key
These parameters must be set under the following constraints:
• ρ = ω(log λ), to protect against brute-force attacks on the noise;
• η ≥ ρ · Θ(λ log^2 λ), in order to support homomorphism for deep enough circuits to evaluate the “squashed decryption circuit” (cf. Sections 3.2 and 6.2);
• γ = ω(η^2 log λ), to thwart various lattice-based attacks on the underlying approximate-gcd problem (cf. Section 5);
• τ ≥ γ + ω(log λ), in order to use the leftover hash lemma in the reduction to approximate gcd (cf. Lemma 4.3).
We also use a secondary noise parameter ρ′ = ρ + ω(log λ). A convenient parameter set to keep in mind is ρ = λ, ρ′ = 2λ, η = O˜(λ^2), γ = O˜(λ^5) and τ = γ + λ. (This setting results in a scheme with complexity O˜(λ^10).)
It never explains what ω is. Is that some commonly known notation? How did the "convenient parameter set" come from those formulas?
Also, what exactly does it mean when they say that using that parameter set results in a scheme with complexity O˜(λ^10)? Does that mean that the attack against the encryption has that for complexity? I'm wondering about the case where maybe increased speed is desired, even at the cost of decreased security, to understand what to change to get those results.