(a) one ciphertext, under the hoodPick m and press encrypt: a fresh uniform a and a small error e are drawn, and the ciphertext is (a, a⊤s + e + Δm) mod q. The dial shows b − a⊤s on the ring ℤq: it lands in slot m, pushed off center by e, and rounding recovers m exactly while |e| stays inside the shaded ±Δ/2 window. Encryption is randomized, as it must be: encrypt the same m twice and the ciphertexts share nothing visible. Under LWE, (a, b) is indistinguishable from uniform — which is the whole security proof in one sentence.
m
–
(b) computing on ciphertexts: the noise budgetTwo encrypted registers; every operation is performed on the actual ciphertexts of the toy scheme. Addition adds errors — cheap. Multiplication replaces them by m₁e₂ + m₂e₁ + e₁e₂/Δ + erelin, so the bar climbs the log scale with every level of depth. The moment |e| crosses Δ/2, rounding snaps to the wrong slot and decryption really does return the wrong value — watch the register go carmine. Bootstrapping homomorphically refreshes the ciphertext back to a fresh error, at a heavy cost per refresh; that is what buys unbounded depth.
m₁
m₂
–