초록
RSA 암호법의 안전성은, 덫 문으로 사용되는 큰 정수 N을 소인수분해하는 일이 매우 어렵다는 사실에 기반을 두고 있기 때문에, RSA 암호법을 이용하여 암호문을 전달할 때와 그 암호문을 공격할 때에는 합성수를 소인수분해하는 방법이 매우 중요한 문제이다. 100자리 이상의 큰 정수 N을 소인수분해하는 지금까지 알려진 가장 빠른 알고리즘은 일반 수체 체(General Number Field Sieve, GNFS) 알고리즘이지만, 현대의 공개키 암호법에서 자주 사용되는 20~25 자리의 수(64.~83 비트)정도의 소인수를 찾아내는 가장 빠른 알고리즘은 Lenstra의 타원곡선법이다. 그러나 Lenstra의 방법은 실행시간의 대부분을 $M{\cdot}P$ mod N을 계산하는 과정에서 소비하게 되었기 때문에, Montgomery와 Koyama는 $M{\cdot}P$ mod N을 고속으로 계산하는 방법을 제안하였다. 본 논문에서는 Montgomery와 Koyama의 방법을 분하여, 최적의 매개변수를 선택하고 곱셈횟수를 줄여서 구축한 효율적인 $M{\cdot}P$ mod N 계산 알고리즘을 제안한다. 분석결과, Montgomery와 Koyama의 알고리즘보다 제안한 알고리즘이 H/W에서의 구현시간을 약 20% 단축하였다.
Since the security of RSA cryptosystem depends on the difficulty of factoring integers, it is the most important problem to factor large integers in RSA cryptosystem. The Lenstra elliptic curve factorization method(ECM) is considered a special purpose factoring algorithm as it is still the best algorithm for divisors not greatly exceeding 20 to 25 digits(64 to 83 bits or so). ECM, however, wastes most time to calculate $M{\cdot}P$ mod N and so Montgomery and Koyama both give fast methods for implementing $M{\cdot}P$ mod N. We, in this paper, further analyze Montgomery and Koyama's methods and propose an efficient algorithm which choose the optimal parameters and reduces the number of multiplications of Montgomery and Koyama's methods. Consequently, the run time of our algorithm is reduced by 20% or so than that of Montgomery and Koyama's methods.