tor*_*rho 5 multiplication polynomial-math exponentiation galois-field finite-field
我希望能够计算
g^x = g * g * g * ... * g (x times)
Run Code Online (Sandbox Code Playgroud)
其中 g 位于有限域 GF(2^m) 中。这里 m 相当大,m = 256、384、512 等,因此查找表不是解决方案。我知道有类似想法的快速算法,modpow for Z/nZ(参见HAC第 619-620 页)。
备注:这是我在 math.stackoverflow.com 上的帖子,我认为这是提出这个问题的最佳社区。
在math stackexchange社区,我有两个人建议Binary Exponentiaion。维基百科将递归称为递归算法。它可以更改为迭代算法,如 Wiki 的伪代码所示。
一开始我对这个想法感到皱眉,但我进行了更多研究,发现两篇论文(1、2 )可以帮助在使用蒙哥马利乘法的伽罗瓦域中实现二进制求幂。
此外,Jyrki Lahtonen建议使用普通碱基(或当 m =/= 256,384、512 等最佳普通碱基)来加速乘法。这种乘法方法的算法可以在本文中找到。
感谢 sarnold 的意见。