• 제목/요약/키워드: Congruence of squares

검색결과 5건 처리시간 0.016초

제곱합동 기반 소인수분해법 (The Integer Factorization Method Based on Congruence of Squares)

  • 이상운;최명복
    • 한국인터넷방송통신학회논문지
    • /
    • 제12권5호
    • /
    • pp.185-189
    • /
    • 2012
  • 큰 반소수 n=pq의 소인수 p,q를 직접 찾는 것은 현실적으로 거의 불가능하여 대부분의 소인수분해 알고리즘은 $a^2{\equiv}b^2$(mod n)의 제곱합동을 찾아 p=GCD(a-b,n),q=GCD(a+b,n)의 소인수를 찾는 간접 방법을 적용하고 있다. 제곱합동 a,b을 찾는 다양한 방법이 제안되었지만 100자리 이상인 RSA 수에 대해서는 적용이 쉽지 않다. 본 논문에서는 $xa={\lceil}\sqrt{zn}{\rceil}\;or\;{\lceil}\sqrt{zn}{\rceil}+z+z=1,2,{\cdots}$로 설정하고 $(xa)^2{\equiv}(yb)^2$(mod n)을 찾는 간단한 방법을 제안한다. 제안된 알고리즘은 19 자리 수 까지는 제곱합동을 빠르게 찾는데 성공하였으나 39 자리 수에 대해서는 실패하였다.

암호해독을 위한 소인수분해 (Integer Factorization for Decryption)

  • 이상운;최명복
    • 한국인터넷방송통신학회논문지
    • /
    • 제13권6호
    • /
    • pp.221-228
    • /
    • 2013
  • 큰 반소수 n=pq의 소인수 p,q를 나눗셈 시행법으로 직접 찾는 것은 현실적으로 거의 불가능하다. 따라서 대부분의 소인수분해 알고리즘은$a^2{\equiv}b^2$ (mod n)의 제곱합동을 찾아 p=GCD(a-b, n), q=GCD(a+b, n)의 소인수를 찾는 간접 방법을 적용하고 있다. n = pq에 대해 p와 q를 선택한 영역은 $l(p)=l(q)=l(\sqrt{n})=0.5l(n)$의 [$10{\cdots}01$, $99{\cdots}9$] 범위에서 $\sqrt{n}$을 기준으로 $10{\cdots}00$ < p < $\sqrt{n}$$\sqrt{n}$ < q < $99{\cdots}9$에 존재한다는 사실만이 밝혀졌다. 본 논문은 n으로 부터 획득한 정보를 이용하여 p의 범위를 보다 축소시키는 방법을 제안한다. 제안 방법은 $n=n_{LR}+n_{RL}$, $l(n_{LR})=l(n_{RL})=l(\sqrt{n})$으로 분할하여 $p_{min}=n_{LR}$, $q_{min}=n_{RL}$로 설정하는 방법을 적용하였다. 본 논문에서 제안한 n의 정보로 p의 범위를 축소하는 방법은 $\sqrt{n}$의 정보로 p의 범위 축소 방법에 비해 최소 17.79%에서 최대 90.17%의 범위 축소 효과를 얻었다.

n+1 소인수분해 알고리즘 (The n+1 Integer Factorization Algorithm)

  • 최명복;이상운
    • 한국인터넷방송통신학회논문지
    • /
    • 제11권2호
    • /
    • pp.107-112
    • /
    • 2011
  • $n=pq$인 합성수 을 크기가 비슷한 p와 q로 소인수분해하는 것은 매우 어려운 문제이다. 대부분의 소인수분해 알고리즘은 $a^2{\equiv}b^2$ (mod $n$)인 제곱 합동이 되는 ($a,b$)를 소수의 곱 (인자 기준, factor base, B)으로 찾아 $a^2-b^2=(a-b)(a+b)$ 공식에 의거 유클리드의 최대공약수 공식을 적용하여 $p=GCD(a-b,n)$, $q=GCD(a+b,n)$으로 구한다. 여기서 ($a,b$)를 얼마나 빨리 찾는가에 알고리즘들의 차이가 있으며, B를 결정하는 어려움이 있다. 본 논문은 좀 더 효율적인 알고리즘을 제안한다. 제안된 알고리즘에서는 $n+1$을 3자리 소수까지 소인수분해하여 B를 추출하고 B의 조합 $f$를 결정한다. 다음으로, $a=fxy$가 되는 값을 $\sqrt{n}$ < $a$ < $\sqrt{2n}$ 범위에서 구하여 $n-2$의 소인수분해로 $x$를 얻고, $y=\frac{a}{fx}$, $y_1$={1,3,7,9}을 구한다. 제안된 알고리즘을 몇 가지 사례에 적용한 결과 $\sqrt{n}$ < $a$를 순차적으로 찾는 기존의 페르마 알고리즘에 비해 수행 속도를 현격히 단축시키는 효과를 얻었다.

κ-페르마 소인수분해 알고리즘 (The κ-Fermat's Integer Factorization Algorithm)

  • 최명복;이상운
    • 한국인터넷방송통신학회논문지
    • /
    • 제11권4호
    • /
    • pp.157-164
    • /
    • 2011
  • $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$)를 구한다. 제안된 알고리즘을 몇 가지 사례에 적용한 결과 페르마 알고리즘에 비해 수행 속도를 현격히 단축시키는 효과를 얻었다.

RSA의 오일러 함수 𝜙(n) 해독 2kβ 알고리즘 (A 2kβ Algorithm for Euler function 𝜙(n) Decryption of RSA)

  • 이상운
    • 한국컴퓨터정보학회논문지
    • /
    • 제19권7호
    • /
    • pp.71-76
    • /
    • 2014
  • 대표적인 공개키 암호방식인 RSA에 사용되는 합성수 n=pq의 큰자리 소수 p,q를 소인수분해하여 구하는 것은 사실상 불가능하다. 공개키 e와 합성수 n은 알고 개인키 d를 모를 때, ${\phi}(n)=(p-1)(q-1)=n+1-(p+q)$을 구하여 $d=e^{-1}(mod{\phi}(n))$의 역함수로 개인키 d를 해독할수 있다. 따라서 ${\phi}(n)$을 알기위해 n으로부터 p,q를 구하는 수학적 난제인 소인수분해법을 적용하고 있다. 소인수분해법에는 n/p=q의 나눗셈 시행법보다는 $a^2{\equiv}b^2(mod\;n)$, a=(p+q)/2,b=(q-p)/2의 제곱합동법이 일반적으로 적용되고 있다. 그러나 다양한 제곱합동법이 존재함에도 불구하고 아직까지도 많은 RSA 수들이 해독되지 않고 있다. 본 논문은 ${\phi}(n)$을 직접 구하는 알고리즘을 제안하였다. 제안된 알고리즘은 $2^j{\equiv}{\beta}_j(mod\;n)$, $2^{{\gamma}-1}$ < n < $2^{\gamma}$, $j={\gamma}-1,{\gamma},{\gamma}+1$에 대해 $2^k{\beta}_j{\equiv}2^i(mod\;n)$, $0{\leq}i{\leq}{\gamma}-1$, $k=1,2,{\ldots}$ 또는 $2^k{\beta}_j=2{\beta}_j$${\phi}(n)$을 구하였다. 제안된 알고리즘은 $n-10{\lfloor}{\sqrt{n}}{\rfloor}$ < ${\phi}(n){\leq}n-2{\lfloor}{\sqrt{n}}{\rfloor}$의 임의의 위치에 존재하는 ${\phi}(n)$도 약 2배 차이의 수행횟수로 찾을 수 있었다.