球碰撞解码算法:更小的解码指数
1. 引言
在解码问题中,攻击者的任务是在给定奇偶校验矩阵 $H$ 和校验子 $s = He$ 的情况下找到错误向量 $e$。球碰撞解码算法在信息集解码的基础上发展而来,旨在更高效地解决这一问题。
2. 球碰撞解码算法
球碰撞解码算法的输入包括奇偶校验矩阵 $H \in F_2^{(n - k) \times n}$、校验子 $s \in F_2^{n - k}$ 和权重 $w \in {0, 1, 2, …}$,目标是找到对应的错误向量 $e \in F_2^n$,使得 $He = s$ 且 $wt(e) = w$。
一次球碰撞解码迭代步骤如下:
1. 选择一个均匀随机的信息集 $Z$。后续步骤用 “$F_Z^2$” 表示 $F_2^n$ 中由 $Z$ 支撑的子空间。
2. 将 $Z$ 均匀随机划分为大小为 $k_1$ 和 $k_2$ 的两部分。后续步骤用 “$F_{k_1}^2$” 和 “$F_{k_2}^2$” 表示 $F_Z^2$ 中对应的子空间。
3. 将 ${1, 2, …, n} \setminus Z$ 均匀随机划分为大小为 $\ell_1$、$\ell_2$ 和 $n - k - \ell_1 - \ell_2$ 的三部分。后续步骤用 “$F_{\ell_1}^2$”、“$F_{\ell_2}^2$” 和 “$F_{n - k - \ell_1 - \ell_2}^2$” 表示 $F_{
{1, 2, …, n} \setminus Z}^2$ 中对应的子空间。
4. 找到一个可逆矩阵 $U \in F_2^{(n - k) \times (n -