我希望能够计算
g^x = g * g * g * ... * g (x times)
其中g在有限域GF(2 ^ m)中。这里m相当大,m = 256,384,512等,所以查找表不是解决方案。我知道有一个类似的想法的快速算法,Z / nZ的modpow(参见HAC的第619-620页)。
备注:这是来自我在math.stackoverflow.com上的post我想这是提出这个问题的最佳社区。 p>
答案 0 :(得分:3)
来自math stackexchange社区,我有两个人建议Binary Exponentiaion。维基百科称其递归为递归算法。它可以更改为迭代算法,如Wiki的伪代码中所示。
我最初对这个想法不屑一顾,但我更多地研究了它,我找到了两篇论文(1,2),它们可以帮助在使用蒙哥马利乘法的Galois Fields中实现二进制求幂。
此外,Jyrki Lahtonen建议使用正常碱基(或当m = / = 256,384,512等最佳正常碱基时)以加速倍增。这种乘法方法的算法可以在paper中找到。
感谢他/她的输入。