我很清楚单个Miller-Rabin测试是在立方对数时间内运行的。我知道Montgomery模幂运算和GNFS,我不是在问任何花哨的理论。我想知道的是,在特征硬件(例如,2.2 GHz Opteron或某某图形卡或FPGA)上,MR的一些代表性运行时间(请注意,这与RSA操作不同)。
发布于 2014-04-23 12:30:52
在GMP中实现的一个随机基米勒-拉宾测试,多个素数和多次运行的平均值。i4770K @4.3 GMP,GMP6.0.0a。对于64位以下的数字,使用非GMP实现(使用x86_64 asm mulmod)可以更快。这个实现似乎在性能上与大多数其他C+GMP实现非常接近(对于相同的数字,mpz_aprcl的mpz_sprp运行时间是下面的几个百分点)。
有了很好的实现,BPSW (base 2 M-R + extra strong Lucas test)的成本大约是一次M-R测试的3倍。Lucas测试实现在性能上有很大的不同。Frobenius测试的成本大约是单个M-R测试的2.5倍。
发布于 2011-06-13 14:00:07
米勒-拉宾测试的一轮可能需要大约1毫秒;这里有一个JavaScript的交互式实现,您可以在浏览器中运行它并自己检查计时:http://www.javascripter.net/math/primes/millerrabinprimalitytest.htm
https://stackoverflow.com/questions/3336642
复制相似问题