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$)를 구한다. 제안된 알고리즘을 몇 가지 사례에 적용한 결과 페르마 알고리즘에 비해 수행 속도를 현격히 단축시키는 효과를 얻었다.