0
応用数学解説
文献あり

LLL系の基底簡約についてまとめてみた

98
0
$$$$
  • 本記事は Qiita から移植してきたものになります.
  • 間違えなどにお気づきの方が居ればご指摘ください.
  • 他のアルゴリズムも随時追加していきます.

最初に

みなさん.格子暗号というものをご存じでしょうか.知っている人もいれば知らない人もいるかと思います(当たり前).
この格子暗号というものは,いわゆる耐量子計算機暗号の一つです.簡単に言えば,量子計算機を使っても簡単には解けない暗号の一つで,格子という数学の道具を使っているものです.$\boldsymbol{n}$次元格子とは,一次独立な$n$本のベクトル$\boldsymbol{b}_1, \ldots, \boldsymbol{b}_n$(この$n$本のベクトルの組$\lbrace\boldsymbol{b}_1, \ldots, \boldsymbol{b}_n\rbrace$を格子の基底と呼びます)に対して
$$ L=\mathcal{L}(\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n):=\left\lbrace \left.\sum_{i=1}^na_i\boldsymbol{b}_i~\right|~a_1,\ldots.a_n\in\mathbb{Z}\right\rbrace $$
と定義されます.簡単に言えば,ベクトル$\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\in\mathbb{R}^n$の整数係数の一次結合全体の集合です.
もう少し,数学的に言えば,次の最短ベクトル問題SVP)や最近ベクトル問題CVP)が量子計算機でも求解困難であることによりその安全性が保障される暗号です.

最短ベクトル問題(SVP)

$n$次元格子$L$が与えられたとき,$\lVert\boldsymbol{v}\rVert$が最小となるような非零なベクトル$\boldsymbol{v}\in L\setminus\lbrace \boldsymbol{0}_n\rbrace$を見つけよ.

簡単に言えば,一番短い$L$の元を見つけてね,という問題です.

最近ベクトル問題(CVP)

$n$次元格子$L$$L$の元ではないベクトル$\boldsymbol{t}\in \mathbb{Z}^n\setminus L$目標ベクトルターゲットベクトルと呼ばれる)が与えられたとき,$\lVert\boldsymbol{v}-\boldsymbol{t}\rVert$が最小となるような$L$のベクトル$\boldsymbol{v}\in L$を見つけよ.

簡単に言えば,$\boldsymbol{t}$に一番近い$L$の元を見つけてね,という問題です.
さて,ここで書く格子基底簡約とSVPやらCVPやらに何の関係があるんや,と思った方もいらっしゃるかもしれませんが,実はこれらの格子問題(SVPやCVPなどの総称)を解くに当たって,格子基底簡約は必須の技術です.なんでなのかについては詳しくは述べませんが,非常に簡単に言うと,基底簡約を施すことによって問題を解くのが楽になります.
ここでは,そんな基底簡約の中でもLLL系のアルゴリズムについてまとめていこうと思います.

ちょっとした準備

格子$L$の基底ベクトル$\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n$に対して,
$$ \left\{ \begin{aligned} \boldsymbol{b}_1^\star &:= \boldsymbol{b}_1, \\ \boldsymbol{b}_i^\star &:= \boldsymbol{b}_i - \sum_{j=1}^{i-1} \mu_{i, j} \boldsymbol{b}_j^\star,~ \mu_{i, j}:=\frac{\langle \boldsymbol{b}_i, \boldsymbol{b}_j^\star\rangle}{\| \boldsymbol{b}_j^\star \|^2}~(1 \!\leq\! j \!<\! i \!\leq\! n). \end{aligned} \right. $$
で定まる$\boldsymbol{b}_i^\star$Gram-Schmditの直交化ベクトル$\boldsymbol{U}:=(\mu_{i, j})_{1\le j< i\le n}$Gram-Schmditの直交化係数行列と呼びます.まぁ,B1やB2で習うようなGram-Schmditの直交化法そのものです.
また,
$$ \mathrm{vol}(L)=\prod_{i=1}^n \lVert \boldsymbol{b}_i^\star\rVert $$
$L$体積もしくは行列式と呼び,
$$ \lambda_i(L):=\min_{\begin{matrix}\boldsymbol{v}_1,\ldots,\boldsymbol{v}_i\in L\\ \boldsymbol{v}_1\ldots, \boldsymbol{v}_i:\text{一次独立}\end{matrix}} \max\lbrace \lVert \boldsymbol{v}_1\rVert, \ldots, \lVert \boldsymbol{v}_i\rVert\rbrace $$
$\boldsymbol{i}$逐次最小と呼びます.特に,$\lambda_1(L)$$L$の非零な最短ベクトルです.
更に,写像
$$ \pi_\ell : \mathbb{R}^n \longrightarrow \langle \boldsymbol{b}_1, \dots, \boldsymbol{b}_{\ell-1} \rangle_\mathbb{R}^\perp=\langle \boldsymbol{b}_\ell^\star, \dots, \boldsymbol{b}_n^\star \rangle_\mathbb{R},~ \boldsymbol{x} \longmapsto \sum_{i = \ell}^n \frac{\langle \boldsymbol{x}, \boldsymbol{b}_i^\star \rangle}{ \| \boldsymbol{b}_i^\star \|^2 } \boldsymbol{b}_i^\star $$
$\langle \boldsymbol{b}_1, \dots, \boldsymbol{b}_{\ell-1} \rangle_\mathbb{R}$の直交補空間$\langle \boldsymbol{b}_1, \dots, \boldsymbol{b}_{\ell-1} \rangle_\mathbb{R}^\perp=\langle \boldsymbol{b}_\ell^\star, \dots, \boldsymbol{b}_n^\star \rangle_\mathbb{R}$への直交射影とします.

LLLアルゴリズム

恐らく基底簡約アルゴリズムの中では最も有名なんじゃないかなと思っています.LLLアルゴリズムはLLL簡約基底を求めるアルゴリズムで,LLL簡約基底とは次のようなものです.

LLL簡約基底(Lenstra, Lenstra and Lovász, 1982)

$\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace$$n$次元格子$L$の基底とします.このとき,$\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace$が簡約パラメタ$\frac{1}{4}<\delta<1$に対してLLL簡約されているとは
$$ \begin{array}{ll} &(\textbf{サイズ簡約条件})&1\le{}^\forall j<{}^\forall i\le n,&\lvert\mu_{i, j}\rvert\le \frac{1}{2}\\ &(\textbf{Lovász条件})&2\le{}^\forall k< n,&\delta\lVert \boldsymbol{b}_{k-1}^\star\rVert\le \lVert \pi_{k-1}(\boldsymbol{b}_k)\rVert^2 \end{array} $$
を満たすときを言います.

Lovász条件の不等式は
$$ \lVert\boldsymbol{b}_k^\star\rVert\ge (\delta-\mu_{k, k-1}^2)\lVert \boldsymbol{b}_{k-1}^\star\rVert^2 $$
と同値であるので,この不等式の方をLovász条件と呼ぶこともあります.

LLLアルゴリズムでは,サイズ簡約条件を満たさない基底ベクトル$\boldsymbol{b}_k$があったら,$\boldsymbol{b}_k\gets \boldsymbol{b}_k-\lfloor\mu_{k, j}\rceil\boldsymbol{b}_j$をしてサイズ簡約条件を満たすようにして,Lovász条件を満たさない基底ベクトルの組$(\boldsymbol{b}_{k-1}, \boldsymbol{b}_k)$があったら$\boldsymbol{b}_{k-1}$$\boldsymbol{b}_{k}$を入れ替えるということを繰り返します.
具体的には,以下の流れ図のような形です.
LLLの流れ図 LLLの流れ図
格子基底をLLL簡約することで何が良いのかと思われる方もいらっしゃるかもわかりませんが,LLL簡約基底では各基底ベクトル$\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n$のノルムが比較的短くなります(しかもLLLアルゴリズムは多項式回の反復で停止します).具体的には以下の不等式を満たします.

$$ \begin{array}{ll} &&\lVert \boldsymbol{b}_1\rVert\le \left(\frac{4}{4\delta-1}\right)^\frac{n-1}{4}\mathrm{vol}(L)^\frac{1}{n}\\ &1\le {}^\forall i\le n, &\lVert \boldsymbol{b}_i\rVert\le\left(\frac{4}{4\delta-1}\right)^\frac{n-1}{2}\lambda_i(L) \end{array} $$

しかし,実際にはこの上からの評価よりも短い基底ベクトルになることが多いです.

DeepLLLアルゴリズム

DeepLLLはLLLの自然な一般化でDeepLLL簡約基底とは次のような基底のことです.

DeepLLL簡約基底(Schnorr and Euchner, 1994)

$\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace$$n$次元格子$L$の基底とします.このとき,$\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace$が簡約パラメタ$\frac{1}{4}<\delta<1$に対してDeepLLL簡約されているとは
$$ \begin{array}{ll} &(\textbf{サイズ簡約条件})&1\le{}^\forall j<{}^\forall i\le n,&\lvert\mu_{i, j}\rvert\le \frac{1}{2}\\ &(\textbf{deep-exchange条件})&1\le{}^\forall i<{}^\forall k\le n,&\delta\lVert \boldsymbol{b}_{i}^\star\rVert\le \lVert \pi_{i}(\boldsymbol{b}_k)\rVert^2 \end{array} $$
を満たすときを言います.

deep-exchange条件とLovász条件とを見比べればすぐに分かりますが,LLLでは隣り合う基底ベクトルのみを比較していますが,DeepLLLは必ずしも隣り合わない基底ベクトルについても比較しています.
DeepLLLもLLL同様に,サイズ簡約条件を満たさない基底ベクトル$\boldsymbol{b}_k$があったら,$\boldsymbol{b}_k\gets \boldsymbol{b}_k-\lfloor\mu_{k, j}\rceil\boldsymbol{b}_j$をしてサイズ簡約条件を満たすようにして,deep-exchange条件を満たさないベクトルの組$(\boldsymbol{b}_i, \boldsymbol{b}_k)$については,単に入れ替えるのみではなく,deep-insertionと呼ばれる入れ替えによって基底を更新します.deep-insertionとは
$$ \sigma_{i, k}(\lbrace \boldsymbol{b}_i,\ldots,\boldsymbol{b}_n\rbrace):=\lbrace\ldots,\boldsymbol{b}_{i-1},\boldsymbol{b}_k,\boldsymbol{b}_i,\ldots,\boldsymbol{b}_{k-1},\boldsymbol{b}_{k+1},\ldots\rbrace $$
という操作です.これも,隣り合うベクトルのswapの自然な一般化になっていることがわかるかと思います.
DeepLLLについても,流れ図でアルゴリズムの概要を示すと以下の様になります.
DeepLLLの流れ図 DeepLLLの流れ図
DeepLLLの場合は,基底ベクトルは以下の不等式を満たします.

(Yasuda and Yamaguchi, 2019)

$$ \begin{array}{ll} &&\lVert\boldsymbol{b}_1\rVert\le \left(\frac{4}{4\delta-1}\right)^\frac{n-1}{2n}\left(\frac{4\delta}{4\delta-1}\right)^\frac{(n-1)(n-2)}{4n} \mathrm{vol}(L)^\frac{1}{n}\\ &1\le {}^\forall i\le n,&\lVert\boldsymbol{b}_i\rVert\le \sqrt{\left(\frac{4}{4\delta-1}\right)\left(\frac{4\delta}{4\delta-1}\right)^{(n-2)}}\lambda_i(L) \end{array} $$

これにより,大きな次元の場合,DeepLLLはLLLよりも小さい上界を与えることがわかります.
しかし,DeepLLLは停止性は証明されておらず,計算量についてはLLLとは対照的にsuper-exponentialな計算量を持つことが実験的に知られています.

PotLLLアルゴリズム

PotLLLはDeepLLLを改良し,多項式回の反復で停止するようにしたものです.

potential

$\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace$$n$次元格子$L$の基底とします.このとき,格子基底$\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace$potentialとは
$$ \mathrm{Pot}(\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace):=\prod_{i=1}^n \lVert\boldsymbol{b}_i^\star\rVert^{2(n-i+1)} $$
と定義される量である.

PotLLL簡約基底(Fontein, Schneider and Wagner, 2014)

$\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace$$n$次元格子$L$の基底とします.このとき,$\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace$が簡約パラメタ$\frac{1}{4}<\delta<1$に対してPotLLL簡約されているとは

$$ \begin{array}{ll} &(\textbf{サイズ簡約条件})&1\le{}^\forall j<{}^\forall i\le n,&\lvert\mu_{i, j}\rvert\le \frac{1}{2}\\ & &1\le{}^\forall i<{}^\forall k\le n,&\delta\cdot \mathrm{Pot}(\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace)\le\mathrm{Pot}(\sigma_{i, k}(\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace)) \end{array} $$
を満たすときを言う.

PotLLLは,定義を見ればわかるように,格子基底のpotentialが単調に減少するdeep-insertionのみを実行することにより,多項式回の反復で停止させるアルゴリズムです.純粋なDeepLLLよりは品質が落ちるかもしれませんが,deep-insertionを行う"DeepLLL型"の簡約アルゴリズムです.
流れ図は以下の様になります.
PotLLLの流れ図 PotLLLの流れ図

また,PotLLL簡約基底については,基底ベクトルのノルムについての上界は知られていませんが,次のことがわかっています.

(Fontein, Schneider and Wagner, 2014)

$n$次元格子の基底$\{\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\}$は簡約パラメタ$\delta$に関してPotLLL簡約されているとする.このとき,$\{\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\}$$\delta$に関してLLL簡約もされている.

(Fontein, Schneider and Wagner, 2014)

任意の$4^{-\frac{1}{n-1}}\le \delta < 1$に対して,$n$次元格子の基底$\{\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\}$が簡約パラメタ$\delta$に関してDeepLLL簡約されているとすると,$\{\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\}$$\delta^{n-1}$に関してPotLLL簡約もされている.

S²LLLアルゴリズム

S²LLLもPotLLL同様,DeepLLLを多項式回の反復で停止させるように改良したアルゴリズムです.

Gram-Schmditの直交化ベクトルの二乗和

$\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace$$n$次元格子$L$の基底とします.このとき,格子基底$\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace$Gram-Schmditの直交化ベクトルの二乗和squared-sum of Gram-Schmdit lengths)とは
$$ \mathrm{SS}(\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace):=\sum_{i=1}^n\lVert \boldsymbol{b}_i^\star\rVert^2 $$
で定義される量です.

S²LLL簡約基底(Yasuda and Yamaguchi, 2019)

$\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace$$n$次元格子$L$の基底とします.このとき,$\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace$が簡約パラメタ$0<\eta\le 1$に対してS²LLL簡約されているとは
$$ \begin{array}{ll} &(\textbf{サイズ簡約条件})&1\le{}^\forall j<{}^\forall i\le n,&\lvert\mu_{i, j}\rvert\le \frac{1}{2}\\ & &1\le{}^\forall i<{}^\forall k\le n,&\eta\cdot \mathrm{SS}(\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace)\le\mathrm{SS}(\sigma_{i, k}(\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace)) \end{array} $$
を満たすときを言う.

S²LLLは,格子基底のGram-Schmditの直交化ベクトルの二乗和を単調に減少するdeep-insertionのみを行うことで多項式回の反復で停止させています.S²LLLの流れ図は以下の様になります.但し,簡単のために
$$ S_{i, k}:=\mathrm{SS}(\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace)-\sigma_{i, k}(\lbrace\boldsymbol{b}_1,\ldots,\boldsymbol{b}_n\rbrace) $$
とします.
S²LLLの流れ図 S²LLLの流れ図

参考文献

[1]
Arjen Klaas Lenstra, Hendrik Willem Lenstra, and László Lovász, Factoring polynomials with rational coefficients, Mathematische Annalen, 1982, 515--534
[2]
Claus-Peter Schnorr and Martin Euchner., Lattice basis reduction: Improved practical algorithms and solving subset sum problems, Mathematical programming, 1994, 181--199
[3]
Felix Fontein, Michael Schneider, and Urs Wagner, PotLLL: A polynomial time version of LLL with deep insertions, Designs, Codes and Cryptography, 2014, 355--368
[4]
Masaya Yasuda and Junpei Yamaguchi, A new polynomial-time variant of LLL with deep insertions for decreasing the squared-sum of Gram-Schmidt lengths, Designs, Codes and Cryptography, 2019, 2489--2505
[5]
青野良範,安田雅哉, 格子暗号解読のための数学的基礎, IMIシリーズ, 近代科学社, 2019
投稿日:86
更新日:89
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。

投稿者

立教大院のD1 大学院で格子基底簡約について研究しています.

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中