【问题标题】:What are typical runtimes for Miller-Rabin primality testing?Miller-Rabin 素性测试的典型运行时间是什么?
【发布时间】:2010-07-26 16:04:41
【问题描述】:

我很清楚单个 Miller-Rabin 测试在立方对数时间内运行。我知道蒙哥马利模幂运算和 GNFS,我并没有询问任何花哨的理论。我想知道的是在特征硬件(例如,2.2 GHz Opteron 或某某显卡或 FPGA)上 MR 的一些代表性运行时(请注意,这与 RSA 操作不同)。

【问题讨论】:

  • 你有合适的MR实现吗?您是否在您的 GHz Opteron 或其他设备上运行它?你看见什么了?你在跑步时对“代表”的定义是什么?
  • 我想要得到的是一个更广泛的意义,而不是我简单地安装 PGP 或类似的东西并敲击键以产生随机性。我不是 C 编码员,所以我不相信我有能力正确地对如此复杂的东西进行基准测试。 2.2 GHz Opteron 作为密码分析的基准非常有用,但不是我可以轻松访问的东西(当然我可以将其重新调整为大多数处理器)。

标签: primes


【解决方案1】:

在 GMP 中实现的一个随机基 Miller-Rabin 测试,多个素数和多次运行的平均值。 i4770K @ 4.3GHz,GMP 6.0.0a。对于 64 位以下的数字,使用非 GMP 实现(使用 x86_64 asm mulmod)可以加快速度。这个实现似乎在性能上非常接近大多数其他 C+GMP 实现(对于相同的数字,mpz_aprcl 的 mpz_sprp 运行在以下几个百分比的时间内)。使用非标准 API 调用来执行蒙哥马利数学可能更快(也可能不会)。

  • 20 位:1.1 uS
  • 40 位:3.4 uS
  • 80 位:14 uS
  • 200位:0.11毫秒
  • 400位:0.65毫秒
  • 800 位:4.7 毫秒
  • 1200 位:15 毫秒
  • 1600 位:31 毫秒
  • 2000 位:53 毫秒
  • 4000 位:310 毫秒

通过良好的实施,BPSW(基础 2 M-R + [额外] 强 Lucas 测试)的成本约为一次 M-R 测试的 3 倍。 Lucas 测试实现的性能差异更大。 Frobenius 测试的成本大约是单个 M-R 测试的 2.5 倍。

【讨论】:

    【解决方案2】:

    一轮米勒-拉宾测试可能需要大约 1 毫秒;这是 JavaScript 中的交互式实现,您可以在浏览器中运行它并自己检查时间: http://www.javascripter.net/math/primes/millerrabinprimalitytest.htm

    【讨论】:

      猜你喜欢
      • 2013-06-09
      • 1970-01-01
      • 2016-02-27
      • 2019-10-04
      • 1970-01-01
      • 2021-07-05
      • 2016-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多