校验子解码问题(Syndrome Decoding)

参考文献:Overbeck R, Sendrier N. Code-based cryptography[M]//Post-quantum cryptography. Springer, Berlin, Heidelberg, 2009: 95-145.

校验子映射

考虑 [ n , k ] q [n,k]_q [n,k]q线性码 C \mathscr C C,定义余维度(codimension) r = n − k r = n-k r=nk,令 H H H是其校验矩阵。定义校验子映射(syndrome mapping):
S H : G F ( q ) n → G F ( q ) r y ↦ y H T \begin{aligned} S_H: GF(q)^n &\to GF(q)^r\\ y &\mapsto y H^T \end{aligned} SH:GF(q)nyGF(q)ryHT
再定义关于校验子 s ∈ G F ( q ) r s \in GF(q)^r sGF(q)r的字集合:
S H − 1 ( s ) : = { y ∈ G F ( q n ) : y H T = s } S_H^{-1}(s) := \{y \in GF(q^n): yH^T=s\} SH1(s):={yGF(qn):yHT=s}
易知, S H − 1 ( 0 ) = C S_H^{-1}(\pmb 0) = \mathscr C SH1(000)=C,定义码的陪集(coset):
y + C : = { y + x : x ∈ C } = S H − 1 ( s ← y H T ) y+\mathscr C := \{y+x: x\in\mathscr C\} = S_H^{-1}(s \leftarrow yH^T) y+C:={y+x:xC}=SH1(syHT)
一共存在 2 r 2^r 2r个陪集,每个陪集都恰好包含 2 k 2^k 2k个元素。

任给一个校验子,存在有效算法计算对应的陪集,

  1. 将校验矩阵 H H H化为系统型 H 0 = U H = [ I r ∣ X ] ∈ G F ( q ) r × n H_0 = UH = [I_r|X] \in GF(q)^{r \times n} H0=UH=[IrX]GF(q)r×n,这里的 U U U就是 H H H r r r列的逆 U = H { 1 , ⋯   , r } − 1 U=H_{\{1,\cdots,r\}}^{-1} U=H{1,,r}1
  2. 构造 y = [ s U T ∣ 0 ] ∈ G F ( q ) n y = [sU^T|\pmb 0] \in GF(q)^n y=[sUT000]GF(q)n,易知 y H T = y ( U − 1 H 0 ) T = [ s U T ∣ 0 ] [ I r ∣ X ] T U − T = s yH^T = y(U^{-1}H_0)^T = [sU^T|0][I_r|X]^TU^{-T} = s yHT=y(U1H0)T=[sUT0][IrX]TUT=s

上述算法的复杂度是 O ( r 3 ) O(r^3) O(r3),多项式级别。

解码问题

不失一般性的,令 q = 2 q=2 q=2

Decoding problem:令线性码 C \mathscr C C的校验矩阵为 H H H,给定一个字 y ∈ G F ( q ) n y \in GF(q)^n yGF(q)n以及对应的校验子 s ∈ G F ( q ) r s \in GF(q)^r sGF(q)r,下面是三种等价描述,

  • 寻找一个码字 x ∈ C x \in \mathscr C xC使得它拥有与 y y y的最小汉明距离。
  • 寻找一个错误 e ∈ S H − 1 ( s ) e \in S_H^{-1}(s) eSH1(s)使得它拥有最小的汉明重量。
  • 寻找一个错误 e ∈ y + C e \in y+\mathscr C ey+C使得它拥有最小的汉明重量。

然而,我们很难验证一个错误 e e e是否真的是陪集 y + C y+\mathscr C y+C里有最小汉明重量的那个元素。因此上述问题不属于 N P NP NP(如果定义为“多项式时间可验证”——NP定义的歧义性),我们做适当修改。

Computational Syndrome Decoding:令线性码 C \mathscr C C的校验矩阵为 H H H,给定校验子 s ∈ G F ( q ) r s \in GF(q)^r sGF(q)r以及正整数 w > 0 w>0 w>0,寻找一个错误 e ∈ S H − 1 ( s ) e \in S_H^{-1}(s) eSH1(s)使得它的汉明重量小于等于 w w w,记做 C S D ( H , w , s ) CSD(H,w,s) CSD(H,w,s)

仅当 w w w使得上述问题高概率有单个解时,上述问题才有意义。可以选取 w = ⌈ 1.05 ⋅ d G V ( n , r ) ⌉ w = \lceil 1.05 \cdot d_{GV}(n,r)\rceil w=1.05dGV(n,r),这里的 d G V d_{GV} dGVGilbert-Varshamov distance,它被定义为使得下述不等式成立的最大正整数:
∑ i = 0 d 0 − 1 ( n i ) ≤ 2 r \sum_{i=0}^{d_0-1} {n \choose i} \le 2^r i=0d01(in)2r
大多数二元线性码的最小距离 d m i n d_{min} dmin都接近其GV距离 d G V d_{GV} dGV

Codeword Finding:令线性码 C \mathscr C C的校验矩阵为 H H H,给定正整数 w > 0 w>0 w>0,寻找一个非零的码字 0 ≠ c ∈ S H − 1 ( 0 ) \pmb 0 \neq c \in S_H^{-1}(\pmb 0) 000=cSH1(000)使得它的汉明重量小于等于 w w w,记做 C F ( H , w ) CF(H,w) CF(H,w)

C ′ = C ∪ ( y + C ) \mathscr C' = \mathscr C \cup (y+\mathscr C) C=C(y+C),其校验矩阵为 H ′ H' H。很明显 C S D ( H , w , y H T ) CSD(H,w,yH^T) CSD(H,w,yHT)的解 e e e就是 C F ( H ′ , w ) CF(H',w) CF(H,w)的解,因为 e ∈ y + C ⊆ C ′ e \in y+\mathscr C \subseteq \mathscr C' ey+CC。反之 C F ( H ′ , w ) CF(H',w) CF(H,w)的解 e e e,当 w t ( e ) < d 0 wt(e)wt(e)<d0时,几乎就是 e < d m i n ( C ) ee<dmin(C),因此很可能 e ∈ y + C e \in y+\mathscr C ey+C,从而它是 C S D ( H , w , y H T ) CSD(H,w,yH^T) CSD(H,w,yHT)的解;而当 w t ( e ) ≥ d 0 wt(e)\ge d_0 wt(e)d0时, C F ( H ′ , w ) CF(H',w) CF(H,w)的一个随机解可能落在 C \mathscr C C里也可能落在 y + C y+\mathscr C y+C里,由于高维度随机码的测度性质与相同基数的随机集合不可区分,于是它有 1 / 2 1/2 1/2的概率是 C S D ( H , w , y H T ) CSD(H,w,yH^T) CSD(H,w,yHT)的解。

Complete Decoding:令线性码 C \mathscr C C的校验矩阵为 H H H,给定校验子 s ∈ G F ( q ) r s \in GF(q)^r sGF(q)r,寻找一个错误 e ∈ S H − 1 ( s ) e \in S_H^{-1}(s) eSH1(s)使得它的汉明重量小于等于 d G V ( n , r ) d_{GV}(n,r) dGV(n,r)

这个问题是最一般、同时也是最困难的计算型解码问题。

另外还有相应的决策版本解码问题(decisional syndrome decoding)。敌手可以通过访问线性次决策版本的预言机,便可以求解任意的 C S D CSD CSD实例,因此计算型和决策型之间没有“gap”。有文章证明,决策型解码问题属于 N P C NPC NPC。于是计算型解码问题在最坏情况下是 N P − h a r d NP-hard NPhard的。

人们不认为存在关于 N P C NPC NPC类问题的量子算法,同时针对 N P NP NP类问题的量子算法也很难构造。

构造密码学部件

令可逆映射 ϕ n , w : G F ( q ) l → G F ( q ) n \phi_{n,w}: GF(q)^l \to GF(q)^n ϕn,w:GF(q)lGF(q)n定义为
ϕ n , w ( x ) = e     s . t .     w t ( e ) = w \phi_{n,w}(\pmb x) = e\,\,\, s.t.\,\,\, wt(e)=w ϕn,w(xxx)=es.t.wt(e)=w

Hash

对于 [ n , k ] [n,k] [n,k]线性码,如果选择合适的 w w w满足如下关系:
( n w ) ( q − 1 ) w − 1 ≥ q n − k {n \choose w}(q-1)^{w-1} \ge q^{n-k} (wn)(q1)w1qnk
那么重量为 w w w的向量个数比线性码的校验子要多。如果针对校验子 s s s难以恢复重量为 w w w的向量(抗第二原像),那么计算校验子的过程可以作为一个压缩函数: x ↦ ϕ n , w ( x ) H T \pmb x \mapsto \phi_{n,w}(\pmb x)H^T xxxϕn,w(xxx)HT
校验子解码问题(Syndrome Decoding)_第1张图片

PRG

对于 [ n , k ] [n,k] [n,k]线性码,如果选择合适的 w w w满足如下关系:
( n w ) ( q − 1 ) w − 1 ≤ q n − k {n \choose w}(q-1)^{w-1} \le q^{n-k} (wn)(q1)w1qnk
那么重量为 w w w的向量个数比线性码的校验子要少。如果针对校验子 s s s依然难以恢复重量为 w w w的向量(OWP),那么计算校验子的过程可以作为一个扩展函数: x ↦ ϕ n , w ( x ) H T \pmb x \mapsto \phi_{n,w}(\pmb x)H^T xxxϕn,w(xxx)HT

校验子解码问题(Syndrome Decoding)_第2张图片

你可能感兴趣的:(编码学,#,后量子密码学,信息安全,线性代数,数学,编码理论,复杂度理论)