日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

格(Lattice)基础(一)

發(fā)布時(shí)間:2023/12/16 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 格(Lattice)基础(一) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

格(Lattice)

格(lattice)的定義

不是那么標(biāo)準(zhǔn)的定義
有一組線性無關(guān)的空間向量(b1,b2,…,bn)∈Rn(b_1,b_2,\ldots,b_n) \in \mathbb{R^n}(b1?,b2?,,bn?)Rn作為基,該組的每個(gè)向量若乘以某個(gè)整數(shù)系數(shù)(也就是通過線性變換)所產(chǎn)生的離散基向量生成空間向量集合就稱為格。
L(b1,b2,…,bn)={Σxibi∣xi∈Z}\mathcal{L}\left(b_{1}, b_{2}, \ldots, b_{n}\right)=\left\{\Sigma x_{i} b_{i} \mid x_{i} \in \mathbb{Z}\right\} L(b1?,b2?,,bn?)={Σxi?bi?xi?Z}
如果把基向量組合用合成矩陣BBB來表示
L(B)=L(b1,b2,…,bn)=∑i=1nbi?Z={Bx∣x∈Zn}\mathcal{L}(B)=\mathcal{L}\left(b_{1}, b_{2}, \ldots, b_{n}\right)=\sum_{i=1}^{n} \mathbf_{i} \cdot \mathbb{Z}=\left\{B x \mid x \in \mathbb{Z}^{n}\right\} L(B)=L(b1?,b2?,,bn?)=i=1n?bi??Z={BxxZn}
幫助理解: 假如把空間里的向量的末端視為一個(gè)點(diǎn),則格就是某空間里面的具有一些規(guī)律的離散的點(diǎn)集合,也可以說格是某空間中的一個(gè)離散的、具有加法運(yùn)算的子群。類似這樣

值得注意的是

  • 系數(shù)是整數(shù),向量坐標(biāo)是實(shí)數(shù),如果向量坐標(biāo)也是整數(shù),那么生成的格就稱為整數(shù)格,有點(diǎn)類似笛卡爾坐標(biāo)系。
  • 我們可以用線代中學(xué)到的基向量變更給這個(gè)格找到一組新的基CCC,那么可得C=ABC=ABC=AB,這里det(A)=±1det(A)=\pm1det(A)=±1。即格的任意兩個(gè)基可以通過左乘一個(gè)特定的矩陣來相互轉(zhuǎn)化,這矩陣是由整數(shù)構(gòu)成的,且它的行列式為±1\pm1±1
    證明過程如下,

    同時(shí),這種矩陣也稱為幺模矩陣
    (unimodular matrix)
    定義: U∈Zn×nU\in\mathbb{Z}^{n \times n}UZn×n∣U∣=±1|U|=\pm1U=±1UUU稱為幺模矩陣同時(shí)它的逆也是幺模矩陣。
  • 如何判定兩個(gè)格基是否能生成同一個(gè)格呢?
    當(dāng)一個(gè)格基能通過幺模矩陣進(jìn)行變換到另一個(gè)格基的時(shí)候,這兩個(gè)格基就可以生成相同的格。

    基礎(chǔ)區(qū)域(Fundamental Parallelepiped)

    由格基BBB線性組合,系數(shù)在[0,1)[0,1)[0,1)之間組成的一塊區(qū)域。

    P(B)={Bx∣x∈Rn,?i:0?xi<1}\mathcal{P}(B)=\left\{B x \mid x \in \mathbb{R}^{n}, \forall i: 0 \leqslant x_{i}<1\right\} P(B)={BxxRn,?i:0?xi?<1}
    大概像這樣,

    如何判定給定的向量集是否構(gòu)成格的“basis”?
    由向量生成的"basic parallelepiped"不應(yīng)該包含除原點(diǎn)外的任何格點(diǎn),即基礎(chǔ)區(qū)域與格的交集為0。
    如下圖

    圖2(c)中所示的"basic parallelepiped"包含格點(diǎn) (1,0),而圖2(a)和圖2(b)中的基本平行不包含任何非零格點(diǎn)。
    一個(gè)格的任意基礎(chǔ)區(qū)域都擁有相同的體積(體積不是狹義的三維體積,可以擴(kuò)展到n維,如二維是面積,三維是體積)。

    行列式(Determinant)

    類似于線性空間里,一個(gè)格的行列式代表了對(duì)應(yīng)基向量所組成的幾何體體積
    定義格的行列式作為基礎(chǔ)區(qū)域的n維體積
    det(L)=∑ibi?[0,1)=vol(P(B))det(\mathcal{L})=\sum_{i}{\mathbf_{i}}\cdot[0,1)=vol(\mathcal{P(\mathbf{B})}) det(L)=i?bi??[0,1)=vol(P(B))
    注意
    給定任意一組基向量,這個(gè)Determinant大小是不變的,也就是無論怎么變換,都能找到這個(gè)值,即一個(gè)格的任意基礎(chǔ)區(qū)域體積都相同。它不依賴于計(jì)算它的某個(gè)具體基礎(chǔ)區(qū)域,是格的不變量。證明過程如下

    格密度

    格的密度可以理解為,在空間里任意取一個(gè)超球體,然后看這個(gè)球體里面覆蓋了多少格點(diǎn),點(diǎn)的數(shù)量平均于球體體積,這個(gè)就是密度
    格的行列式與其密度成反比
    ForallsufficientlylargeS?Rn:∣S∩L∣≈vol?(S)/det?(L)For\ all\ sufficiently\ large\ S \subseteq \mathbb{R}^{n} :\\ |S \cap \mathcal{L}| \approx \operatorname{vol}(S) / \operatorname{det}(\mathcal{L}) For?all?sufficiently?large?S?Rn:SLvol(S)/det(L)

    最短距離與連續(xù)最小值

    格的一個(gè)基本參數(shù)是格中最短非零向量的長(zhǎng)度,也就是點(diǎn)與點(diǎn)之間的最短距離,為了方便可以把其中一個(gè)點(diǎn)設(shè)置為坐標(biāo)軸的原點(diǎn)。
    λ1=min?x,y∈L,x≠y∥x?y∥=min?x∈L,x≠0∥x∥\begin{aligned} \lambda_{1} &=\min _{x, y \in \mathcal{L}, x \neq y}\|x-y\| \\ &=\min _{x \in \mathcal{L}, x \neq 0}\|x\| \end{aligned} λ1??=x,yL,x=ymin?x?y=xL,x=0min?x?
    記為λ1(L),\lambda_1(\mathcal{L}),λ1?(L)同理可定義第二近到第nnn近的λ2(L),λ3(L),…,λn(L)\lambda_2(\mathcal{L}),\lambda_3(\mathcal{L}),\ldots,\lambda_n(\mathcal{L})λ2?(L),λ3?(L),,λn?(L)。

    距離函數(shù)(Distance Function)與覆蓋半徑(Covering Radius)

    給定一個(gè)任意點(diǎn)t\mathbf{t}t(可以不在格上),定義距離函數(shù)μ(t,L)\mu(\mathbf{t},\mathcal{L})μ(t,L)為這個(gè)點(diǎn)到附近的格點(diǎn)的最短距離。
    μ(t,L)=min?x∈L∥t?x∥\mu(\mathbf{t},\mathcal{L})=\min _{\mathbf{x} \in \mathcal{L}}\|\mathbf{t}-\mathbf{x}\| μ(t,L)=xLmin?t?x
    可以通過移動(dòng)t\mathbf{t}t位置得到這個(gè)格中最大的μ\muμ,這個(gè)就稱為覆蓋半徑(Covering Radius)
    μ(L)=max?t∈span(L)μ(t,L)\mu(\mathcal{L})=\max _{\mathbf{t} \in span(\mathcal{L})} \mu(\mathbf{t}, \mathcal{L}) μ(L)=tspan(L)max?μ(t,L)
    注意μ\muμ是點(diǎn)到格點(diǎn)的最短距離,如果把點(diǎn)換為格點(diǎn),以每個(gè)格點(diǎn)為圓心畫圓并逐步擴(kuò)大,直到這些圓正好完美的覆蓋所有空間的時(shí)候,這個(gè)半徑就是最大的μ\muμ,即覆蓋半徑了。

    格的Smoothing

    假如將上述的圓,改變?yōu)榀B加圓形范圍內(nèi)取值的隨機(jī)噪音,而當(dāng)達(dá)到覆蓋半徑的時(shí)候?qū)?huì)出現(xiàn)取值分布很不平均的問題,那么為了解決此問題就需要smooth一下格。
    理論上當(dāng)半徑到無限大的時(shí)候,得到的分布是很完美的,但是這種構(gòu)造就沒了意義,所以就出現(xiàn)了一個(gè)Smoothing的半徑最大上限,該上限由格中距離最大的最短向量λn\lambda_{n}λn?來決定的,大于這個(gè)距離之后,必然會(huì)覆蓋其他的格點(diǎn)。

    Minkowski定理

    凸集定理(Convex body theorem)
    用于尋找一個(gè)格點(diǎn)周圍最近的其他格點(diǎn)的。
    給出一個(gè)Lattice中最短向量的一個(gè)上限值。
    λ1(L)≤nr=n?det?(L)1/n\lambda_{1}(\mathcal{L}) \leq \sqrt{n} r=\sqrt{n} \cdot \operatorname{det}(\mathcal{L})^{1 / n} λ1?(L)n?r=n??det(L)1/n
    假如把格的Determinant對(duì)應(yīng)空間壓縮為一個(gè)立方體,那么該立方體的對(duì)角線長(zhǎng)度就是nr\sqrt{n}rn?r,對(duì)角線的另一頭必然是下一個(gè)格點(diǎn)(但不一定是最近的格點(diǎn)),所以肯定要小于等于這個(gè)對(duì)角線的長(zhǎng)度
    第二定理
    給出一個(gè)對(duì)于其他最短向量λi\lambda_{i}λi?的一個(gè)取值上限
    λ1(L)≤(∏iλi(L))1/n≤n?det?(L)1/n\lambda_{1}(\mathcal{L}) \leq\left(\prod_{i} \lambda_{i}(\mathcal{L})\right)^{1 / n} \leq \sqrt{n} \cdot \operatorname{det}(\mathcal{L})^{1 / n} λ1?(L)(i?λi?(L))1/nn??det(L)1/n
    第二定理指出全部nnn個(gè)最短向量的幾何平均數(shù),小于之前的對(duì)角線長(zhǎng)度,由于任意一個(gè)格的Determinant對(duì)應(yīng)空間的Parallelepiped是不規(guī)則的,所以用幾何平均數(shù)能很好約束Parallelepiped邊的長(zhǎng)度

    格中難題

    最短向量問題(SVP)

    定義
    在格中需找一個(gè)最短的非零格點(diǎn)

    可以理解為:尋找一組整數(shù)與基向量線性組合使得組合后的向量的長(zhǎng)度最短?;蛘?#xff0c;理解為給定一個(gè)基的格,找到一個(gè)這個(gè)基構(gòu)成的格點(diǎn),使得這個(gè)點(diǎn)距離坐標(biāo)原點(diǎn)距離最近。
    寬松版(SVPγSVP_\gammaSVPγ?):找到γ\gammaγ倍距離就行
    判定版(GapSVP)

    最短獨(dú)立向量問題(SIVP)

    定義
    給定一個(gè)格,找到n個(gè)線性無關(guān)的向量,并且這些向量的長(zhǎng)度都要小于定于最長(zhǎng)的最短向量。
    寬松版(SIVPγSIVP_\gammaSIVPγ?):找到γ\gammaγ倍距離就行
    判定版(GapSIVP)

    最近向量問題(CVP)

    定義
    在離散線性集合中逼近目標(biāo)向量的問題
    給定一個(gè)不在格中的目標(biāo)向量,在各種尋找一個(gè)向量使得該向量與目標(biāo)向量距離最近。

    可以理解為:給定一組格基向量,和一個(gè)目標(biāo)向量,很難找到一組整數(shù)與基向量線性組合使得組合后的向量距離目標(biāo)向量最近?;蛘?#xff0c;理解為給定連續(xù)空間中任意一個(gè)點(diǎn),找到距離這個(gè)點(diǎn)最近的格點(diǎn)。這個(gè)距離一定是小于等于覆蓋半徑的。

    還有一種定義是給定一個(gè)格,一個(gè)隨機(jī)點(diǎn)和搜索距離,并且假設(shè)覆蓋半徑小于等于搜索距離,CVP問題就是找到一個(gè)合理的格點(diǎn)并且這個(gè)點(diǎn)到隨機(jī)點(diǎn)的距離小于等于搜索距離。
    寬松版(CVPγCVP_\gammaCVPγ?):找到γ\gammaγ倍距離就行
    判定版(GapCVP)

    格基約減算法(Lattice Basis Reduction)

    在上述問題中,都需要輸入格的基,來形成一個(gè)格,從而找到相應(yīng)的值。同一個(gè)格有很多基,有些基是短的,盡可能垂直的,稱為“好”的基。而有些基又是長(zhǎng)的,且方向接近于同一方向或相反方向的,稱為“壞”的基。比如整數(shù)格Zn\mathbb{Z}^nZn就是一個(gè)“好”的基,在它上面解決CVP問題,只需要通過上下取整即可。

    所以,需要將“壞”基轉(zhuǎn)變?yōu)椤昂谩被?#xff0c;目標(biāo)是找到一組非常接近垂直基,這個(gè)過程稱之為 格基約減,就是為了發(fā)現(xiàn)一組又短又垂直的基。

    比較常見的算法就是施密特正交化,即輸入一組基,通過反復(fù)迭代最后輸出一組垂直的基,這組基能夠張成與輸入基相同的空間。由于格的系數(shù)都是整數(shù),所以應(yīng)用于格的時(shí)候需要把系數(shù)進(jìn)行四舍五入的取整到最近整數(shù)。

    施密特方法高度依賴向量的順序問題,不同的基向量順序?qū)?dǎo)致不同的結(jié)果,為解決這個(gè)問題,誕生了LLL算法,但LLL算法只是一次考慮兩個(gè)向量,由此又誕生了BKZ算法。

    參考

    • 格密碼理論與應(yīng)用實(shí)踐
    • 【格理論與密碼學(xué)】周福才,徐劍編著
    • yue佬專欄里的格文章

    總結(jié)

    以上是生活随笔為你收集整理的格(Lattice)基础(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。