GGH 暗号方式

Goldreich–Goldwasser–Halevi (GGH) 格子暗号方式とは、格子に基づく非対称方式のひとつである。も存在する。
Goldreich–Goldwasser–Halevi (GGH) 暗号方式では、の困難性を利用している。格子基底縮小の難しさに依存する落とし戸付き一方向関数を用いており、1997年に , Shafi Goldwasser, により発表された。この一方向性関数は、格子の基底が与えられたときに格子点の近くのベクトルを生成するのは簡単だが（例えば格子点を選んで小さな誤差ベクトルを足せばよい）、この誤差を含んだベクトルから元の格子点を得るには特別な基底が必要である、というアイデアに基づいている。
GGH 暗号は Phong Q. Nguyen により1999年に暗号解読された。
暗号方式.
鍵生成.
GGH 暗号では、次の秘密鍵と公開鍵を用いる。
秘密鍵は，格子 formula_1 の"良い性質を持つ"基底 formula_2 と、ユニモジュラ行列 formula_3 である。"良い性質"とは、基底が短く、しているなどの性質である。
公開鍵は、格子 の別の基底 formula_4 である。
暗号化.
平文空間は一定の に対して を満たす整数ベクトル である。
平文が 、公開鍵が formula_5 であるとき、まず次のように計算する。
これは行列記法を使えば以下のように書ける。
formula_8 が整数値からなり、各 formula_9 が格子点であるから、 formula_10 も格子点となる。次に、小さな誤差ベクトル formula_11 を選び、暗号文は次のように計算される。
復号.
暗号文を復号するには、次のように計算する。
formula_14 が十分に小さいならば、Babai 丸め法を用いることでこの項を除去することができる。最終的に次のように平文を計算できる。
例.
 を、以下のような基底 とその逆 をもつ格子とする。
くわえて、
とすると、以下を得る。
平文を とし、誤差を とすると、以下のように暗号文を得る。
これを復号するには、次の計算を行う。
これを丸めると が得られ、次のように平文を得ることができる。
方式の安全性.
1999年、Nguyen は国際会議 Crypto にて GGH 暗号方式には方式設計上の欠陥があることを示した。暗号文から平文の一部が漏れること、および、GGH暗号の復号問題が、一般の最近ベクトル問題よりも格段に容易な特別の最近ベクトル問題に帰着できることが示された。