【问题标题】:Get int representation NTL GF2E获取 int 表示 NTL GF2E
【发布时间】:2014-06-20 16:49:55
【问题描述】:

如何使用 NTL 库在 Galois 域中获取 int 表示。例如元素

GF2E xx=random_GF2E();

我正在尝试使用

printf("%d",xx._GF2E__rep.HexOutput);

但我得到 0

【问题讨论】:

    标签: ntl


    【解决方案1】:

    GF2E 是一个扩展域,即 GF2E 中的元素存在于GF(2)[X]/(P) 中,其中P 是一个不可约多项式。所以你不能得到一个整数表示。但是你可以得到一个向量的表示。

    GF2X P;
    SetCoeff(P, 0, 1);
    SetCoeff(P, 1, 1);
    SetCoeff(P, 2, 1);
    // P is now x^2+x+1, this is irreducable since P(1)=1 and P(0)=1
    
    GF2E::init(P);
    GF2E xx = random_GF2E();
    
    cout << xx << endl;     // Prints something like "[0 1]"
    

    注意:要使用此代码 sn-p,您必须在包含后使用 using namespace NTL;using namespace std; 将命名空间 NTLstd 导入您的程序。 另一种方法是将NTL:: 添加到所有NTL 函数,将std:: 添加到coutendl
    有关命名空间的更多信息,请参阅this tutorial

    【讨论】:

    • 有没有办法获得该向量的整数表示?即以某种方式,最高度系数是该整数的 MSB,而 x^0 的系数是 LSB?当使用方法 BytesFromGF2X 时,它会导致一个奇怪的表示,既不是大端也不是小端
    • @Bush GF2E 中的元素不是数字,而是多项式。所以向量代表指数。我认为没有将这个多项式表示为整数的规范方法。
    猜你喜欢
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 2020-05-11
    • 1970-01-01
    相关资源
    最近更新 更多