最近,我一直在尝试了解二进制扩展欧几里得算法在处理器级别的工作原理。这个问题是关于在具有多项式基础的 GF(2^m) 中找到一个逆元素。
一般来说,我遇到了用于评估逆元素的扩展欧几里得算法,但事实是它涉及太多的加法和乘法运算。二进制 EEA 算法只需要位移操作(相当于除以 2——逻辑右移)。该算法在此链接中,第 8 页。
在该算法的第 3 步和第 5 步中,每次迭代都会将参数向右移动 1 位,同时将 MSB 加零u
。b
循环结束时u == 1
并返回b
。我的问题是处理器(例如 32 位处理器)在每次迭代的第 3 步或第 5 步中执行多少原始操作?
我遇到了桶式移位器,我对移位发生的速度感到非常困惑。我真的应该考虑这些原始操作,还是因为转移可能更快而忽略它们?
如果有人能展示大小u
为 194 位的情况的原始操作,那真的会对我有很大帮助。
如果您可能想知道x
算法第 3 步和第 5 步中的分母,它是多项式表示,x
仅表示10
二进制,参数u
是 N 位二进制数。