GGH encryption scheme

From The Right Wiki
Jump to navigationJump to search

The Goldreich–Goldwasser–Halevi (GGH) lattice-based cryptosystem is a broken asymmetric cryptosystem based on lattices. There is also a GGH signature scheme which hasn't been broken as of 2024. The Goldreich–Goldwasser–Halevi (GGH) cryptosystem makes use of the fact that the closest vector problem can be a hard problem. This system was published in 1997 by Oded Goldreich, Shafi Goldwasser, and Shai Halevi, and uses a trapdoor one-way function which relies on the difficulty of lattice reduction. The idea included in this trapdoor function is that, given any basis for a lattice, it is easy to generate a vector which is close to a lattice point, for example taking a lattice point and adding a small error vector. But to return from this erroneous vector to the original lattice point a special basis is needed. The GGH encryption scheme was cryptanalyzed (broken) in 1999 by Phong Q. Nguyen [fr]. Nguyen and Oded Regev had cryptanalyzed the related GGH signature scheme in 2006.

Operation

GGH involves a private key and a public key. The private key is a basis B of a lattice L with good properties (such as short nearly orthogonal vectors) and a unimodular matrix U. The public key is another basis of the lattice L of the form B=UB. For some chosen M, the message space consists of the vector (m1,...,mn) in the range M<mi<M.

Encryption

Given a message m=(m1,...,mn), error e, and a public key B compute

v=mibi

In matrix notation this is

v=mB.

Remember m consists of integer values, and b is a lattice point, so v is also a lattice point. The ciphertext is then

c=v+e=mB+e

Decryption

To decrypt the ciphertext one computes

cB1=(mB+e)B1=mUBB1+eB1=mU+eB1

The Babai rounding technique will be used to remove the term eB1 as long as it is small enough. Finally compute

m=mUU1

to get the message.

Example

Let L2 be a lattice with the basis B and its inverse B1

B=(7003) and B1=(170013)

With

U=(2335) and
U1=(5332)

this gives

B=UB=(1492115)

Let the message be m=(3,7) and the error vector e=(1,1). Then the ciphertext is

c=mB+e=(104,79).

To decrypt one must compute

cB1=(1047,793).

This is rounded to (15,26) and the message is recovered with

m=(15,26)U1=(3,7).

Security of the scheme

In 1999, Nguyen [1] showed that the GGH encryption scheme has a flaw in the design. He showed that every ciphertext reveals information about the plaintext and that the problem of decryption could be turned into a special closest vector problem much easier to solve than the general CVP.

References

  1. Phong Nguyen. Cryptanalysis of the Goldreich-Goldwasser-Halevi Cryptosystem from Crypto '97. CRYPTO, 1999

Bibliography

  • Goldreich, Oded; Goldwasser, Shafi; Halevi, Shai (1997). "Public-key cryptosystems from lattice reduction problems". CRYPTO '97: Proceedings of the 17th Annual International Cryptology Conference on Advances in Cryptology. London: Springer-Verlag. pp. 112–131.
  • Nguyen, Phong Q. (1999). "Cryptanalysis of the Goldreich–Goldwasser–Halevi Cryptosystem from Crypto '97". CRYPTO '99: Proceedings of the 19th Annual International Cryptology Conference on Advances in Cryptology. London: Springer-Verlag. pp. 288–304.
  • Nguyen, Phong Q.; Regev, Oded (11 November 2008). "Learning a Parallelepiped: Cryptanalysis of GGH and NTRU Signatures" (PDF). Journal of Cryptology. 22 (2): 139–160. doi:10.1007/s00145-008-9031-0. eISSN 1432-1378. ISSN 0933-2790. S2CID 2164840.Preliminary version in EUROCRYPT 2006.