NTL库中的扩展多项式



有使用NTL库编写的代码:

int main()
{
      ZZ_p::init(ZZ(5)); // define GF(5)
      ZZ_pX P;
      BuildIrred(P, 4); // generate an irreducible polynomial P
                         // of degree 4 over GF(5)
      ZZ_pE::init(P); // define GF(5^4)
      ZZ_pEX f, g, h;  // declare polynomials over GF(5^4)
      random(f, 3);  // f is a random, monic polynomial of degree 3
      SetCoeff(f, 3);
      cout << f << endl<< endl;
}

输出为:

[[3 1 1 4] [2 1 3 2] [1 0 3 1] [1]]

例如,[1 2 3]是平均值3x² + 2x + 1
在这种情况下,GF上的记谱多项式的形式是什么?

您的问题有点难以理解。如果我理解得对的话,问题是如何解释有限域上多项式的NTL表示[[3 1 1 4] [2 1 3 2] [1 0 3 1] [1]]⁴元素。

第一:具有5的有限域中的元素⁴元素(称为GF(5⁴))表示为多项式GF(5)[X] mod f,其中f是4次不可约多项式。

这意味着GF(5⁴)上的多项式是其中系数是GF(5)[X] mod f中的多项式的多项式。

所以[[3 1 1 4] [2 1 3 2] [1 0 3 1] [1]]可以解释为

Y³ + (X³ + 3X² + 1)⋅Y² + (2X³ + 3X² + X + 2)⋅Y + (4X³ + X² + X + 3)

注意:中的评论

random(f, 3);  // f is a random, monic polynomial of degree 3
SetCoeff(f, 3);

有点误导。CCD_ 10将CCD_ 11设置为小于3的次数的随机多项式。CCD_ 12将CCD_ 13的系数设置为CCD_。

相关内容

  • 没有找到相关文章

最新更新