NFS算法的计算时间

时间:2017-05-18 10:21:38

标签: algorithm

通常阅读:

&#34;通过NFS算法计算 n 所需的时间是 exp(... 公式与ln(n) ...)< /强>&#34;

但我无法找到这个公式所指的时间单位? 真的是时间吗?还是运营数量?

由于

2 个答案:

答案 0 :(得分:0)

通常,算法的运行时间以运算量给出。

但是大多数时候,如果理论家谈论算法的复杂性,他们会谈论O - 符号(见https://en.wikipedia.org/wiki/Big_O_notation)。 在O中 - 符号常量被忽略,因此O(1000n)的运行时间与O(n)相同,如果输入大小为n,则仅涉及算法的运行时间变得越来越大了。

有关操作复杂性的更详细定义,理论家使用图灵模型(https://en.wikipedia.org/wiki/Turing_machine)。

答案 1 :(得分:0)

在NFS为“数字字段筛”的情况下(将一些大整数分解为素数因子的方法)n通常是要考虑的数字。例如:

  

启发式地,它将整数n(由⌊log2n⌋+ 1位组成)的复杂性形式为

     
      
  • exp((sqrt3(64/9)+ o(1))*(ln(n))^(1/3)*(ln(ln(n)))^(2/3)
  •   
     

...注意log_2(n)是n的二进制表示中的位数,即算法输入的大小

  

启发式地,它为整数n分解的复杂性具有以下形式:

     
      
  • exp((1 + o(1))*(32/9 * ln(n))^(1/3)*(ln(ln(n)))^(2/3)
  •   

使用这种复杂性的用户可能会尝试使用GNFS / SNFS来计算一些巨大的N的时间,以估计使用比N大2倍的因子来计算更大的M需要多长时间,或者甚至更大的L是4倍的位数。

例如,有RSA Factoring Challenge能够考虑RSA-768 - 数字如此之大以至于需要使用768位(二进制数字)来编写它(232位十进制数字)。许多计算机在2年内It was factored,计算的总时间是单个2.2GHz“Vendor 2”PC的2000年工作。现在使用的是1024位(也是2048位)的RSA编号,您可以在公式中使用768和1024作为ln(n)的值(二进制对数是写入数字加o所需的数字或二进制数字( 1) - 1)的小事。没有计算,但是做因子768的人说1024位更安全:

https://eprint.iacr.org/2010/006.pdf 768位RSA模数的因式分解。版本1。4,2010年2月18日

  

2009年12月12日,我们通过数字现场筛分(NFS,[20])计算了768位,232位数字RSA-768 ...因此,1024位RSA模数的因数约为一千时间更难,768位RSA模数比512位模数难以计算数千倍。