密码学:格

以方阵B为基底,格 L ( B ) L(B) L(B)

B ∈ R n × n ,    L ( B ) = { B x ∣ x ∈ Z n } B \in R^{n \times n},\,\,L(B) = \{Bx|x \in Z^{n}\} BRn×n,L(B)={BxxZn}

  • L L L是线性空间 R n R^{n} Rn的加法子群 (并非子空间)。

  • L L L是离散的,即 ∀ x ∈ L \forall x \in L xL x x x的邻域上只有 x x x本身。

对偶格

L L L的对偶格:

L ∗ = { w ∣ < w , L > ⊆ Z } L^{*} = \{w|<w,L> \subseteq Z\} L={w<w,L>Z}

L L L的基底为满秩方阵B,那么 L ∗ L^* L的基底为 ( B T ) − 1 (B^{T})^{-1} (BT)1

对于 x , y ∈ Z n x,y \in Z^{n} x,yZn容易验证:

< ( B T ) − 1 x , B y > = ( ( B T ) − 1 x ) T B y = x T B − 1 B y = x T y ∈ Z n <(B^T)^{-1}x,By> = ((B^T)^{-1}x)^T By = x^T B^{-1} B y = x^T y \in Z^n <(BT)1x,By>=((BT)1x)TBy=xTB1By=xTyZn

q阶随机格

A ∈ Z q n × m A \in Z^{n \times m}_q AZqn×m为校验矩阵的格:

L ⊥ ( A ) = { z ∣ A z = 0 ∈ Z q n , z ∈ Z m } ⊇ q Z m L^{\perp}(A) = \{z|Az=0 \in Z^n_q, z \in Z^{m}\} \supseteq qZ^m L(A)={zAz=0Zqn,zZm}qZm

容易验证,它是加法子群,并且离散。怎么计算它的基底?随机产生 { b 1 , . . . , b m − 1 } ∈ b m − 1 \{b_1,...,b_{m-1}\}\in b^{m-1} {b1,...,bm1}bm1,计算 b m b_m bm使得 A ⋅ [ 0 , . . . , 0 , b m ] = − A ⋅ [ b 1 , . . . , b m − 1 , 0 ] ( m o d   q ) A \cdot [0,...,0,b_m] = -A \cdot [b_1,...,b_{m-1},0] (mod\,q) A[0,...,0,bm]=A[b1,...,bm1,0](modq),得到 b = { b 1 , . . . , b m } b=\{b_1,...,b_m\} b={b1,...,bm};反复m次有极大概率得到满秩方阵 B B B,但这组基是"坏的"。

假设短格基为S,那么: A ⋅ S = 0 ( m o d   q ) A·S=0(mod\,q) AS=0(modq),这是SIS问题。

补空间

考虑三维空间,x-y平面过原点的不属于x-y平面的任意一条直线可以张成整个空间,这种直线无穷多,但z轴只有一个。

对于线性空间U的子空间V,有无穷多的直和补空间V’,满足 U = V ⊕ V ′ U = V \oplus V' U=VV

但V的正交补空间存在且唯一,记做 V ⊥ V^{\perp} V

B ∈ R n × n ,    V = B × R n B \in R^{n \times n},\,\,V = B \times R^n BRn×n,V=B×Rn

那么, V ⊥ = { z ∣ z T B = 0 , z ∈ R n } V^{\perp} = \{z|z^T B=0, z \in R^{n}\} V={zzTB=0,zRn}

B B B做初等列变换,变成秩为m的长矩阵:

B    ⟺    ( I m A ( n − m ) × m ) B \iff \begin{pmatrix} I_m \\ A_{(n-m) \times m} \\ \end{pmatrix} B(ImA(nm)×m)

容易知道:

( ( − A ) ( n − m ) × m ∣ I n − m ) × ( I m A ( n − m ) × m ) = 0 ( n − m ) × m \begin{pmatrix} (-A)_{(n-m) \times m} &|& I_{n-m} \\ \end{pmatrix} \times \begin{pmatrix} I_m \\ A_{(n-m) \times m} \\ \end{pmatrix} =0_{(n-m) \times m} ((A)(nm)×mInm)×(ImA(nm)×m)=0(nm)×m

于是 V ⊥ V^{\perp} V的基底B‘为:

B ′    ⟺    ( ( − A ) ( n − m ) × m ∣ I n − m ) T B' \iff \begin{pmatrix} (-A)_{(n-m) \times m} &|& I_{n-m} \\ \end{pmatrix}^{T} B((A)(nm)×mInm)T

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值