Lattice
In a vector spaceis a lattice.
Like a vector space, a single lattice can have various bases. For example,
Then, two bases span the same lattice if and only if
Hard Lattice Problems
Like a prime factorization in RSA, we will need a hard problem for cryptographic applications. For a given latticeA generous version of CVP is the approximate closed vector problem (
If
In RSA, we can solve the hard problem easily with a private key. The same thing happens for lattice problems. A private key will be a "good" basis (I will explain it precisely later). With a good basis, we can solve
In the previous example, let the target point . With basis , , so Babai's rounding-off algorithm outputs , which is a correct answer to CVP. But, with basis , , so the output is . Babai's rounding-off algorithm highly depends on the basis, one can see that the rounding-off algorithm with the first basis solves every CVP because and are orthogonal. So, the desired "good" property is "nearly orthogonal" which can be formalized by LLL-reduced condition. And, with an LLL-reduced basis, we can solve -CVP for some . I will explain this in another post. Let's just note that some efficient algorithm with a "good" basis can solve -CVP.
. We can consider the lattice spanned by With private key, one can make a "bad" basis for some random integer matrix with determinant . Then, is also a basis of , and it is a public key. With the public key and a message , the ciphertext is where is a random small vector. Note that the vector belongs to the lattice . We want is small enough so that the closest lattice point of is . With a knowledge of the good basis , one can decrypt the ciphertext by solving CVP and multiply .
One way to attack the GGH system is to obtain another good basis from public key using LLL reduction. To prevent this, the size of the lattice should be large enough.
Goldreich-Goldwasser-Halevi Cryptosystem
GGH cryptosystem is based on the hardness of CVP. The private key is a "good" basisOne way to attack the GGH system is to obtain another good basis from public key
The problem with GGH is the length of the keys. To prevent known attacks on GGH, we need large
NTRU Cryptosystem
We first define a binary operation convolution onNote that this convolution is the same as the multiplication in
The public/private keys of NTRU are generated like this. First, choose a prime
Here,
where is a small random vector.
To recover the ciphertext , first compute
The equation above is in . But, since are small and ,
Now, multiplying to obtain
We want to interpret this cryptosystem as a lattice problem. We first convert the convolution relation into a lattice membership problem. Let
Let
This implies we have
Then,
In the NTRU cryptosystem, the ciphertext is
This equation is equivalent to
Since
댓글
댓글 쓰기