Act 1 Two bases, one lattice
The private basis R is k·I plus small noise, so it is
almost square. The public basis B = U·R for a random unimodular
U. Same lattice, and the proof is exact integer arithmetic — no
determinant is ever formed, because det B reaches 1089 here.
Same lattice, proved
Shape of each basis
The public basis, two ways
B = U·R is one of infinitely many bases of this lattice, and it
carries traces of how it was built. Micciancio's fix is to publish the
canonical one instead: every lattice has exactly one basis in Hermite
normal form, so it cannot leak anything about the private basis it came from.
Both bases, projected to two dimensions
Real points of the lattice, with both bases drawn over them at one shared scale. Warm is the private basis, neutral the public one; each arrow is one basis vector.
Act 2 Encrypt, then decrypt twice
c = m·B + e. Decryption is Babai round-off:
round(c·R−1)·R. The same three lines run
with either basis. One number decides whether they work.
This is the toggle that decides whether Break 1 works at all. Changing it re-runs Acts 2 and 3; it does not touch Act 4.
Ciphertext
The decryption bound
Result: the same algorithm, twice
Encrypt a message, then decrypt it with each basis.
Baseline What ordinary reduction already does
Before either historical attack, the honest baseline: hand LLL nothing but the public basis and see what it gives back. At these dimensions the answer is uncomfortable, and the lab would be overclaiming if it did not show you.
Act 3 Break 1 — Nguyen 1999
Every entry of e is +3 or −3, and both are
congruent to 3 modulo 6. So e + s ≡ 0 (mod 6) for
s = (3,…,3), which means c + s ≡ m·B (mod 6)
and the message’s residue falls out by linear algebra. The attack never touches
the private basis.
Result
Step through the attack. It uses only the public basis and the ciphertext.
Act 4 Break 2 — Nguyen–Regev 2006
A different scheme: GGH signatures. Signing is round-off with R,
so every signature leaks a point drawn uniformly from the parallelepiped spanned by the
secret basis. Collect enough of them and the shape of that box gives up its edges.
The signature cloud
Each dot is one signature’s offset s − h, projected to two
dimensions. Round-off signing fills the actual parallelepiped, corners and all.