GGH 暗号方式
From Wikipedia, the free encyclopedia
Goldreich–Goldwasser–Halevi (GGH) 格子暗号方式とは、格子に基づく非対称方式のひとつである。GGH 署名方式も存在する。
Goldreich–Goldwasser–Halevi (GGH) 暗号方式では、最近ベクトル問題の困難性を利用している。格子基底縮小の難しさに依存する落とし戸付き一方向関数を用いており、1997年に Oded Goldreich, Shafi Goldwasser, Shai Halevi により発表された。この一方向性関数は、格子の基底が与えられたときに格子点の近くのベクトルを生成するのは簡単だが(例えば格子点を選んで小さな誤差ベクトルを足せばよい)、この誤差を含んだベクトルから元の格子点を得るには特別な基底が必要である、というアイデアに基づいている。
GGH 暗号は Phong Q. Nguyen により1999年に暗号解読された。
鍵生成
GGH 暗号では、次の秘密鍵と公開鍵を用いる。
秘密鍵は,格子 の"良い性質を持つ"基底 と、ユニモジュラ行列 である。"良い性質"とは、基底が短く、ほとんど直交しているなどの性質である。
公開鍵は、格子 L の別の基底 である。
暗号化
平文空間は一定の M に対して −M < λi < M を満たす整数ベクトル (λ1, ..., λn) である。
平文が m = (λ1, ..., λn) 、公開鍵が であるとき、まず次のように計算する。
これは行列記法を使えば以下のように書ける。
が整数値からなり、各 が格子点であるから、 も格子点となる。次に、小さな誤差ベクトル を選び、暗号文は次のように計算される。
復号
暗号文を復号するには、次のように計算する。
が十分に小さいならば、Babai 丸め法を用いることでこの項を除去することができる。最終的に次のように平文を計算できる。