米勒 - 拉宾在C中的大整数

时间:2016-05-15 23:08:58

标签: c

Miller-Rabin测试可以用伪代码描述如下:

Let int n be a possible prime . Let int t be a security parameter .   
Write n-1 = 2^{s} * r for odd r .
    For i = 1 to t do
       Generate a random a in [2; n-2]. Let b=a^{r} mod n .
       If b!=1 and b!=-1 do
          j=1
          While j<=s-1 and b!=-1 do
             Let b=b^{2} mod n
             If b=1 return "composite"
             j=j+1
          If b!=-1 return "composite"
    Return "prime"

问题是线路让b = a ^ {r} mod n。如果我们为n取一个512位整数,那么r几乎可以很快。执行如此大量的取幂需要很长时间,即使我只使用基数2中的大整数并通过平方采用模幂运算(如果指数位为1,则将结果平方并将结果与​​基数相乘,同时迭代所有指数位。)

有没有办法加速大指数的模幂运算?

0 个答案:

没有答案