<p>In cryptoanalysis, factoring a positive integer <i>n</i> into two prime factors <i>p</i> and <i>q</i> plays an important role in breaking the RSA (Rivest, Shamir, Adleman) cryptosystem. Fermat’s method is one of the most efficient techniques for integer factorization, such that the difference between the prime factors is <InlineEquation ID="IEq1"> <EquationSource Format="TEX">\(\delta =\root 4 \of {n}.\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mi>δ</mi> <mo>=</mo> <mroot> <mi>n</mi> <mn>4</mn> </mroot> <mo>.</mo> </mrow> </math></EquationSource> </InlineEquation> The drawback of Fermat’s method is that the time complexity increases with an increasing <InlineEquation ID="IEq2"> <EquationSource Format="TEX">\(\delta\)</EquationSource> <EquationSource Format="MATHML"><math> <mi>δ</mi> </math></EquationSource> </InlineEquation>. In this paper, a new method is designed for a parallel shared model to reduce the execution time of finding prime factors and increase the effectiveness of Fermat’s method when <InlineEquation ID="IEq3"> <EquationSource Format="TEX">\(\delta&gt; \root 4 \of {n}\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mi>δ</mi> <mo>&gt;</mo> <mroot> <mi>n</mi> <mn>4</mn> </mroot> </mrow> </math></EquationSource> </InlineEquation>. The proposed algorithm is based on the removal of a large number of integers from the search space using two modulo operations. Extensive experiments are implemented on three algorithms with different values of (1) <InlineEquation ID="IEq4"> <EquationSource Format="TEX">\(n=2^i, 6\le i\le 11,\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mi>n</mi> <mo>=</mo> <msup> <mn>2</mn> <mi>i</mi> </msup> <mo>,</mo> <mn>6</mn> <mo>≤</mo> <mi>i</mi> <mo>≤</mo> <mn>11</mn> <mo>,</mo> </mrow> </math></EquationSource> </InlineEquation> (2) <InlineEquation ID="IEq5"> <EquationSource Format="TEX">\(\delta =\root 4 \of {n}+k, k=4, 8, 12, 16, 20\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mi>δ</mi> <mo>=</mo> <mroot> <mi>n</mi> <mn>4</mn> </mroot> <mo>+</mo> <mi>k</mi> <mo>,</mo> <mi>k</mi> <mo>=</mo> <mn>4</mn> <mo>,</mo> <mn>8</mn> <mo>,</mo> <mn>12</mn> <mo>,</mo> <mn>16</mn> <mo>,</mo> <mn>20</mn> </mrow> </math></EquationSource> </InlineEquation>, and (3) the number of threads, <InlineEquation ID="IEq6"> <EquationSource Format="TEX">\(t=2^j, 1\le j\le 4\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mi>t</mi> <mo>=</mo> <msup> <mn>2</mn> <mi>j</mi> </msup> <mo>,</mo> <mn>1</mn> <mo>≤</mo> <mi>j</mi> <mo>≤</mo> <mn>4</mn> </mrow> </math></EquationSource> </InlineEquation>. The experiments show that the running time of the proposed algorithm is approximately <i>t-</i>time and 3.9-time faster than those of the previously known sequential and parallel algorithms, respectively. Furthermore, the speedup of the proposed algorithm is linear.</p>

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Performance enhancement of Fermat factorization algorithm on multicore systems

  • Yasser Kotb,
  • Khaled A. Fathy,
  • Ibrahim M. Alseadoon,
  • Mohamed A. G. Hazber,
  • Hazem M. Bahig

摘要

In cryptoanalysis, factoring a positive integer n into two prime factors p and q plays an important role in breaking the RSA (Rivest, Shamir, Adleman) cryptosystem. Fermat’s method is one of the most efficient techniques for integer factorization, such that the difference between the prime factors is \(\delta =\root 4 \of {n}.\) δ = n 4 . The drawback of Fermat’s method is that the time complexity increases with an increasing \(\delta\) δ . In this paper, a new method is designed for a parallel shared model to reduce the execution time of finding prime factors and increase the effectiveness of Fermat’s method when \(\delta> \root 4 \of {n}\) δ > n 4 . The proposed algorithm is based on the removal of a large number of integers from the search space using two modulo operations. Extensive experiments are implemented on three algorithms with different values of (1) \(n=2^i, 6\le i\le 11,\) n = 2 i , 6 i 11 , (2) \(\delta =\root 4 \of {n}+k, k=4, 8, 12, 16, 20\) δ = n 4 + k , k = 4 , 8 , 12 , 16 , 20 , and (3) the number of threads, \(t=2^j, 1\le j\le 4\) t = 2 j , 1 j 4 . The experiments show that the running time of the proposed algorithm is approximately t-time and 3.9-time faster than those of the previously known sequential and parallel algorithms, respectively. Furthermore, the speedup of the proposed algorithm is linear.