如何找到任意给定次数的不可约多项式来将两个多项式相乘?

问题描述 投票:0回答:1

我正在致力于在 FPGA 上实现 Galios Field Multiplier。我想实现可以乘以 163、253、288、409 和 571 次的乘数。我找到了一个实现乘数的算法,但为了测试,我需要给定次数的不可约多项式。

问题是如何找到给定次数的不可约多项式。还有什么方法可以生成预期结果来检查实现的逻辑是否正确。就像任何可用的在线加利奥斯场计算器一样。

我尝试在互联网上搜索计算器,但它们基于预定义的不可约多项式。

cryptography verilog curve
1个回答
1
投票

HP 有一份技术报告 低重量二进制表 不可约多项式。通常,在密码学中,低权重是更好的选择。

此外,您还可以查看 math.SE 中的 Finding irreducible polynomials over GF(2) with the lessest terms 来自行实现。

您可以使用 Maple、Mathematica 和 sageMath 检查结果。

下面的 SageMath 代码提供了给定次数的所有二进制不可约多项式。

degree=4
R = GF(2)['x']
for p in R.polynomials(degree):
     if p.is_irreducible():
         print(p)
© www.soinside.com 2019 - 2024. All rights reserved.