Abstract
The performance and practicality of cryptosystem for encryption, decryption, and primality test are primarily determined by the implementation efficiency of the modular exponentiation of $a^b$ (mod m). To compute $a^b$ (mod m), the standard binary squaring (square-and-multiply) still seems to be the best choice. However, in large b bits, the preprocessed n-ary, ($n{\geq}2$ method could be more efficient than binary squaring method. This paper proposes a square-and-divide and unpreprocessed n-ary square-and-divide modular exponentiation method. Results confirmed that the square-and-divide method is the most efficient of trial number in a case where the value of b is adjacent to $2^k+2^{k-1}$ or to. $2^{k+1}$. It was also proved that for b out of the beforementioned range, the unpreprocessed n-ary square-and-divide method yields higher efficiency of trial number than the general preprocessed n-ary method.
암호학의 암호 생성과 해독, 소수판별법의 성능은 대부분 $a^b$ (mod m)의 모듈러 지수연산의 효율적 구현여부로 결정된다. 모듈러 지수연산법에는 제곱-곱셈 방식의 표준 이진법이 최선의 선택으로 알려져 있다. 그러나 큰 자리수의 b에 대해서는 사전처리를 하는 n-ary, ($n{\geq}2$)이 보다 효율적으로 적용된다. 본 논문에서는 모듈러 지수 나눗셈 방법을 적용한 제곱-나눗셈법과 사전처리 없는 n-ary 제곱-나눗셈법을 제안하였다. 제곱-나눗셈법은 b가 $2^k+2^{k-1}$에 근접한 값 또는 $2^{k+1}$에 근접한 경우 수행횟수 측면에서 가장 효율적임을 알 수 있었다. 나머지 값들에 대해서는 사전처리 없는 n-ary 제곱-나눗셈법을 적용하는 것이 사전처리를 하는 일반적인 n-ary법에 비해 수행횟수 측면에서 효율적임을 보였다.