Goppa码

Goppa 码的基本定义

1. 基本元素

  • 有限域:设 \(GF(2^m)\)\(GF(2)\)\(m\) 次扩域
  • Goppa 多项式:设 \(g(x)\)\(GF(2^m)\) 上的一个 \(t\) 次多项式,且 \(g(x)\)\(GF(2^m)\) 上无重根
  • 位置集\(L = \{\alpha_1, \alpha_2, ..., \alpha_n\} \subseteq GF(2^m)\),其中 \(g(\alpha_i) \neq 0\) 对所有 \(i=1,...,n\) 成立

2. Goppa 码定义

对于 \(GF(2)\) 上的任意向量 \(C = (c_1, c_2, ..., c_n)\),定义其伴随多项式为:
\(S_C(x) = \sum_{i=1}^{n} \frac{c_i}{x - \alpha_i} \quad \text{mod } g(x)\)
其中,\(c_i \in \{0,1\}\),除法运算在 \(GF(2^m)\) 的多项式环中进行。

Goppa 码 \(G(L, g)\) 定义为:
\(G(L, g) = \{ C \in \{0,1\}^n \mid S_C(x) \equiv 0 \text{ mod } g(x) \}\)
即,所有伴随多项式被 \(g(x)\) 整除的二进制向量构成的集合。

3. 参数

  • 码长\(n\)(位置集 \(L\) 的大小)
  • 信息位\(k\),满足 \(k \geq n - mt\)
  • 纠错能力\(t\)(与 Goppa 多项式的次数相同)
  • 最小距离\(d_{min} \geq 2t + 1\)(对于不可约 Goppa 码)

Goppa 码的校验矩阵

1. 校验矩阵构造

对于 Goppa 码 \(G(L, g)\),其校验矩阵 \(H\) 可以构造为:

\[H = \begin{pmatrix} \frac{1}{g(\alpha_1)} & \frac{1}{g(\alpha_2)} & \cdots & \frac{1}{g(\alpha_n)} \\ \frac{\alpha_1}{g(\alpha_1)} & \frac{\alpha_2}{g(\alpha_2)} & \cdots & \frac{\alpha_n}{g(\alpha_n)} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\alpha_1^{t-1}}{g(\alpha_1)} & \frac{\alpha_2^{t-1}}{g(\alpha_2)} & \cdots & \frac{\alpha_n^{t-1}}{g(\alpha_n)} \end{pmatrix} \]

其中每个元素都在 \(GF(2^m)\) 中。

2. 二进制表示

由于 \(GF(2^m)\) 可以看作 \(GF(2)\) 上的 \(m\) 维向量空间,将 \(H\) 的每个元素用 \(m\) 位二进制表示,则得到二进制校验矩阵:

\[H_{bin} = \begin{pmatrix} H_1 \\ H_2 \\ \vdots \\ H_t \end{pmatrix} \]

其中 \(H_i\)\(m \times n\) 的二进制矩阵。

最终,\(H_{bin}\)\(mt \times n\) 的二进制矩阵。

Goppa 码的生成矩阵

1. 生成矩阵与校验矩阵的关系

对于线性分组码,生成矩阵 \(G\) 和校验矩阵 \(H\) 满足:

\[G \cdot H^T = 0 \]

因此,可以通过求解齐次线性方程组 \(G \cdot H^T = 0\) 得到生成矩阵 \(G\)

2. Goppa 码的参数关系

  • 矩阵 \(H_{bin}\) 的大小:\(mt \times n\)
  • 矩阵 \(G\) 的大小:\(k \times n\),其中 \(k = n - \text{rank}(H_{bin})\)
  • 对于不可约 Goppa 码:\(k = n - mt\)

Goppa 码的纠错算法

Goppa 码的纠错基于伴随式解码原理。设接收到的向量为 \(r = c + e\),其中 \(c\) 是码字,\(e\) 是错误向量。

1. 伴随式计算

计算伴随多项式:

\[S_r(x) = \sum_{i=1}^{n} \frac{r_i}{x - \alpha_i} \quad \text{mod } g(x) \]

由于 \(S_c(x) \equiv 0\),所以:

\[S_r(x) \equiv \sum_{i=1}^{n} \frac{e_i}{x - \alpha_i} \quad \text{mod } g(x) \]

2. 错误计算

设错误位置集合为 \(J = \{j \mid e_j = 1\}\),定义:

  • 错误位置多项式

    \[\sigma(x) = \prod_{j \in J} (x - \alpha_j) \]

  • 错误值多项式:对于二进制码,错误值均为 1

关键方程为:

\[\sigma(x) \cdot S_r(x) \equiv \omega(x) \quad \text{mod } g(x) \]

其中 \(\deg(\omega(x)) < \deg(\sigma(x))\)

3. 求解步骤

  1. 计算 \(S_r(x)\)
  2. 扩展欧几里得算法求解关键方程,得到 \(\sigma(x)\)
  3. \(\sigma(x)\) 的根,确定错误位置
  4. 纠正错误

不可约 Goppa 码的特殊性质

1. 定义

如果 Goppa 多项式 \(g(x)\)\(GF(2^m)\) 上不可约,则称为不可约 Goppa 码

2. 优势

  • 最小距离\(d_{min} \geq 2t + 1\)
  • 码率\(k/n = 1 - mt/n\)
  • 结构清晰,便于分析

Goppa 码例题

问题

考虑以下参数的小型Goppa码:

  • 有限域:GF(2³),使用本原多项式 \(p(x) = x^3 + x + 1\)
  • Goppa多项式\(g(x) = x^2 + x + 1\)(在GF(2³)上不可约)
  • 位置集\(L = \{\alpha^0, \alpha^1, \alpha^2, \alpha^3, \alpha^4, \alpha^5, \alpha^6\}\)
    其中α是GF(2³)的本原元,满足 \(α^3 = α + 1\)

GF(2³)的元素表

使用本原多项式 \(x^3 + x + 1\)

幂表示 多项式表示 二进制 十进制
0 0 000 0
α⁰ 1 001 1
α¹ α 010 2
α² α² 100 4
α³ α+1 011 3
α⁴ α²+α 110 6
α⁵ α²+α+1 111 7
α⁶ α²+1 101 5

二进制表示是按照\((c_0, c_1, c_2)\)对应\(c_0 + c_1α + c_2α²\)

验证Goppa多项式条件

验证 \(g(\alpha^i) ≠ 0\) 对所有 \(i = 0,...,6\)

计算 \(g(x) = x^2 + x + 1\) 在GF(2³)上的值:

  1. \(g(α⁰) = g(1) = 1² + 1 + 1 = 1 + 1 + 1 = 1\)

  2. \(g(α¹) = g(α) = α² + α + 1\)
    由表知:α² + α + 1 = α⁵ ≠ 0

  3. \(g(α²) = g(α²) = (α²)² + α² + 1 = α⁴ + α² + 1\)
    \(α⁴ = α²+α\),所以 \(α⁴ + α² + 1 = (α²+α) + α² + 1 = α + 1 = α³ ≠ 0\)

  4. \(g(α³) = g(α+1) = (α+1)² + (α+1) + 1\)
    \((α+1)² = α² + 1\)(因为2α=0),所以:
    \(α² + 1 + α + 1 + 1 = α² + α + 1 = α⁵ ≠ 0\)

  5. \(g(α⁴) = g(α²+α) = (α²+α)² + (α²+α) + 1\)
    \((α²+α)² = α⁴ + α² = (α²+α) + α² = α ≠ 0\)
    所以:\(α + (α²+α) + 1 = α² + 1 = α⁶ ≠ 0\)

  6. \(g(α⁵) = g(α²+α+1) = (α²+α+1)² + (α²+α+1) + 1\)
    \((α²+α+1)² = α⁴ + α² + 1 = (α²+α) + α² + 1 = α+1 = α³ ≠ 0\)
    所以:\(α³ + α⁵ + 1 = (α+1) + (α²+α+1) + 1 = α² + 1 = α⁶ ≠ 0\)

  7. \(g(α⁶) = g(α²+1) = (α²+1)² + (α²+1) + 1\)
    \((α²+1)² = α⁴ + 1 = (α²+α) + 1 = α²+α+1 = α⁵ ≠ 0\)
    所以:\(α⁵ + (α²+1) + 1 = α⁵ + α² = (α²+α+1) + α² = α+1 = α³ ≠ 0\)

所有值都不为零,满足条件。

计算校验矩阵H

1. 先计算 \(1/g(α^i)\)

由于在GF(2³)中,非零元素的逆元可查表计算:

\[\frac{1}{g(\alpha^i)} = [1, α², α⁴, α², α¹, α¹, α⁴] \]

2. 构造校验矩阵H(GF(2³)形式):

\[H = \begin{pmatrix} \frac{1}{g(α⁰)} & \frac{1}{g(α¹)} & \frac{1}{g(α²)} & \frac{1}{g(α³)} & \frac{1}{g(α⁴)} & \frac{1}{g(α⁵)} & \frac{1}{g(α⁶)} \\ \frac{α⁰}{g(α⁰)} & \frac{α¹}{g(α¹)} & \frac{α²}{g(α²)} & \frac{α³}{g(α³)} & \frac{α⁴}{g(α⁴)} & \frac{α⁵}{g(α⁵)} & \frac{α⁶}{g(α⁶)} \end{pmatrix} \]

代入计算:

\[H = \begin{pmatrix} 1 & α² & α⁴ & α² & α¹ & α¹ & α⁴ \\ 1 & α³ & α⁶ & α⁵ & α⁵ & α⁶ & α³ \end{pmatrix}_{2×7} \]

3. 转换为二进制校验矩阵 \(H_{bin}\)

将每个GF(2³)元素表示为3位二进制(按多项式系数):
展开为二进制矩阵:

\[H_{bin} = \begin{pmatrix} 0 & 1 & 1 & 1 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 & 1 & 1 & 1 \\ 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ \hline 0 & 1 & 1 & 1 & 1 & 1 & 1 \\ 0 & 1 & 0 & 1 & 1 & 0 & 1 \\ 1 & 1 & 1 & 1 & 1 & 1 & 0 \end{pmatrix}_{6×7} \]

(注:前三行是第一行的三个比特,后三行是第二行的三个比特)

求生成矩阵G

1. 解方程 \(G \cdot H_{bin}^T = 0\)

先计算 \(H_{bin}\) 的秩:
经过行简化,可以验证 \(\text{rank}(H_{bin}) = 6\)

因此,\(k = n - \text{rank}(H_{bin}) = 7 - 6 = 1\)

这是一个(7,1)码,只有一个信息位。

2. 求解生成矩阵G

\(G = [g_1, g_2, g_3, g_4, g_5, g_6, g_7]\),满足 \(G \cdot H_{bin}^T = 0\)

这等价于解方程组:

\[\sum_{i=1}^7 g_i \cdot h_{j,i} = 0 \quad \text{对于 } j=1,...,6 \]

通过求解(或观察对称性),可以得到:

\[G = [1, 1, 1, 1, 1, 1, 1] \]

即全1向量。验证:
所有位置都相同,所以与任何行的点积都是该行元素和:

  • 第一行和:0+1+1+1+0+0+1=4 mod 2=0
  • 第二行和:0+0+1+0+1+1+1=4 mod 2=0
  • ... 所有行和均为偶数

因此,这个Goppa码只有一个码字:全0向量和全1向量。

编码

由于k=1,只有两个可能的信息:

  • 信息m=0 → 码字c=0000000
  • 信息m=1 → 码字c=1111111

编码过程:\(c = m \cdot G\)

纠错

设发送码字 \(c = 1111111\),假设传输中发生1位错误:

情况1:接收向量 \(r = 1111101\)(第6位出错)

  1. 计算伴随多项式

    \[S_r(x) = \sum_{i=1}^7 \frac{r_i}{x - \alpha^{i-1}} \mod g(x) \]

    由于只有第6位不同(α⁵位置):

    \[S_r(x) = \frac{1}{x-α⁵} \quad \text{(因为其他项抵消)} \]

  2. 求解关键方程
    设错误位置多项式 \(\sigma(x) = x - \alpha^j\),关键方程为:

    \[(x - \alpha^j) \cdot \frac{1}{x-α⁵} \equiv \omega(x) \mod (x^2+x+1) \]

    \(j=5\)(α⁵)时:

    \[(x-α⁵) \cdot \frac{1}{x-α⁵} = 1 \]

    满足条件。

  3. 确定错误位置
    \(\sigma(x) = x - α⁵\) 的根是 \(α⁵\),对应第6位。

  4. 纠错
    翻转第6位:1111101 → 1111111

posted @ 2026-01-05 09:46  lumiere_cloud  阅读(8)  评论(0)    收藏  举报