Abstract
This paper proposes a discrete logarithm algorithm that largely reduces execution times of Pollard's Rho and Brent's algorithm in obtaining ${\gamma}$ from ${\alpha}^{\gamma}{\equiv}{\beta}$(mod p). The proposed algorithm can be distinguished from the conventional Brent's algorithm by three major features: it sets an initial value as $x_0={\alpha}{\beta}$ in lieu of $x_0=1$; replaces $y=x_i$, ($i=2^k$) pointer with $y_j{\leftarrow}x_i$, ($i=2^k$, $1{\leq}j{\leq}10$) for a Queue the size 10; and detects collision of ${\beta}_{\gamma}$, ${\beta}_{{\gamma}^{\prime}}$, ${\beta}_{{\gamma}^{-1}}$ instead of ${\beta}_{\gamma}$. This Queue method has reduced the execution time of Pollard's Rho algorithm with $x_0=y_0=1$ by 65.02%, and that of Brent's algorithm with $x_0=1$ by 47.80%.
본 논문은 ${\alpha}^{\gamma}{\equiv}{\beta}$(mod p)에서 ${\gamma}$를 구하는 Pollard의 Rho와 Brent의 이산대수 알고리즘의 수행횟수를 크게 감소시키는 알고리즘을 제안하였다. 제안된 방법은 Brent 방법으로 충돌을 검출하였다. 차이점은 $x_0=1$ 대신 $x_0={\alpha}{\beta}$을, $y=x_i$, ($i=2^k$) 대신 크기가 10인 Queue에 $y_j{\leftarrow}x_i$, ($i=2^k$, $1{\leq}j{\leq}10$)를 저장하는 방법을, ${\beta}_{\gamma}$ 대신 ${\beta}={\beta}_{\gamma}$, ${\beta}_{{\gamma}^{\prime}}$, ${\beta}_{{\gamma}^{-1}}$의 충돌을 찾는 방법을 적용하였다. 제안된 Queue 적용법은 $x_0=y_0=1$로 ${\beta}_{\gamma}$의 충돌을 검출하는 Pollard의 Rho 알고리즘의 수행횟수를 65.02%, $x_0=1$으로 ${\beta}_{\gamma}$의 충돌을 검출하는 Brent 알고리즘의 수행횟수를 47.80% 감소시켰다.