格子暗号
格子(英語版) L ⊂ R n {\displaystyle L\subset \mathbb {R} ^{n}} とは、基底ベクトル b 1 , ... , b n ∈ R n {\displaystyle \mathbf {b} _{1},\ldots ,\mathbf {b} _{n}\in \mathbb {R} ^{n}} の整数線形結合で表現できる全てのベクトルから成る集合である。つまり、 L = { ∑ a i b i : a i ∈ Z } {\displaystyle L={\Big \{}\sum a_{i}\mathbf {b} _{i}\ :\ a_{i}\in \mathbb {Z} {\Big \}}} である。例えば Z n {\displaystyle \mathbb {Z} ^{n}} は、普通の直交基底 R n {\displaystyle \mathbb {R} ^{n}} から生成される格子である。重要なのは、異なる基底が同一の格子を生成しうるということである。
Gentryが最初に提案した完全準同型暗号方式
BrakerskiとVaikuntanathanによる方式