DOI QR코드

DOI QR Code

The κ-Fermat's Integer Factorization Algorithm

κ-페르마 소인수분해 알고리즘

  • 최명복 (강릉원주대학교 멀티미디어공학과) ;
  • 이상운 (강릉원주대학교 멀티미디어공학과)
  • Received : 2011.05.19
  • Accepted : 2011.08.12
  • Published : 2011.08.31

Abstract

It is very difficult problem to factorize composite number. Integer factorization algorithms, for the most part, find ($a,b$) that is congruence of squares ($a^2{\equiv}b^2$(mode $n$)) with using factoring(factor base, B) and get the result, $p=GCD(a-b,n)$, $q=GCD(a+b,n)$ with taking the greatest common divisor of Euclid based on the formula $a^2-b^2=(a-b)(a+b)$. The efficiency of these algorithms hangs on finding ($a,b$). Fermat's algorithm that is base of congruence of squares finds $a^2-b^2=n$. This paper proposes the method to find $a^2-b^2=kn$, ($k=1,2,{\cdots}$). It is supposed $b_1$=0 or 5 to be surely, and b is a double number. First, the proposed method decides $k$ by getting kn that satisfies $b_1=0$ and $b_1=5$ about $n_2n_1$. Second, it decides $a_2a_1$ that satisfies $a^2-b^2=kn$. Third, it figures out ($a,b$) from $a^2-b^2=kn$ about $a_2a_1$ as deciding $\sqrt{kn}$ < $a$ < $\sqrt{(k+1)n}$ that is in $kn$ < $a^2$ < $(k+1)n$. The proposed algorithm is much more effective in comparison with the conventional Fermat algorithm.

$n=pq$인 합성수 $n$$p$$q$로 소인수분해하는 것은 매우 어려운 문제이다. 대부분의 소인수분해 알고리즘은 $a^2{\equiv}b^2$ (mode $n$)인 제곱 합동이 되는 ($a,b$)를 찾아 $a^2-b^2=(a-b)(a+b)$ 공식에 의거 유클리드의 최대공약수 공식을 적용하여 $p=GCD(a-b,n)$, $q=GCD(a+b,n)$으로 구한다. 여기서 ($a,b$)를 얼마나 빨리 찾는가에 알고리즘들의 차이가 있다. 제곱합동의 기초가 되는 페르마 알고리즘은 $a^2-b^2=n$을 찾는다. 본 논문은 $a^2-b^2=kn$, ($k=1,2,{\cdots}$)를 찾는 방법을 제안하였다. 제안된 방법에서 $b$는 5의 배수로 $b_1=0$ 또는 5가 반드시 한 개는 존재한다고 가정한다. 첫 번째로, $n_2n_1$에 대해 $b_1=0$$b_1=5$을 만족하는 $kn$을 구하여 $k$를 결정한다. 두 번째로, $a^2-b^2=kn$이 되는 $a_2a_1$을 결정한다. 세 번째로, $kn$ < $a^2$ < $(k+1)n$ 범위에 속하는 $\sqrt{kn}$ < $a$ < $\sqrt{(k+1)n}$의 범위를 결정하여 $a_2a_1$ 값들에 대해 $a^2-b^2=kn$으로 ($a,b$)를 구한다. 제안된 알고리즘을 몇 가지 사례에 적용한 결과 페르마 알고리즘에 비해 수행 속도를 현격히 단축시키는 효과를 얻었다.

Keywords

References

  1. Wikipedia, "Prime Number," http://en.wikipedia.org/wiki/ Prime_number, 2010.
  2. Wikipedia, "RSA," http://en.wikipedia.org/wiki/ Rsa, 2010.
  3. Wikipedia, "Primality Test," http://en.wikipedia.org/wiki/Primality_test, 2010.
  4. Wikipedia, "Integer Factorization," http://en.wikipedia.org/wiki/Integer_factorization, 2010.
  5. Wikipedia, "RSA Factoring Challenge," http://en.wikipedia.org/wiki/RSA_Factoring_Challenge, 2010.
  6. 최명복, 이상운, "n+1 소인수분해 알고리즘," 한국인터넷방송통신학회, 제11권, 제2호, 2011년 4월 30일.
  7. Wikipedia, "Fermat's Factorization Method," http://en.wikipedia.org/wiki/Fermat's_factorization _method, 2010.
  8. 김승주, "공개키 암호 방식," School of Information and Communication Engineering, Sungkyunkwan University, http://dosan.skku.or.kr/-sjkim/LectureNotes/SKKU/2006/ECE3063/Lec05(crypto).pdf, 2007.
  9. 진 훈, "Code and RSA," 전자계산학과 대학원, 그룹웨어 연구실, 경기대학교, 2010.
  10. Wikipedia, "Dixon's Factorization Method," http://en.wikipedia.org/wiki/Dixon%27s_factorization_method, 2010.
  11. Wikipedia, "Quadratic Sieve," http://en.wikipedia.org/wiki/ Quadratic_sieve, 2010.
  12. P. L. Jensen, "pGNFS," http://pgnfs.org/index.php?page= Results, 2009.