Abstract
Fast scalar multiplication of points on elliptic curve is important for elliptic curve cryptography applications. In order to vary field sizes depending on security situations, the cryptography coprocessors should support variable length finite field arithmetic units. To determine the effective variable length finite field arithmetic architecture, two well-known curve scalar multiplication algorithms were implemented on FPGA. The affine coordinates algorithm must use a hardware division unit, but the projective coordinates algorithm only uses a fast multiplication unit. The former algorithm needs the division hardware. The latter only requires a multiplication hardware, but it need more space to store intermediate results. To make the division unit versatile, we need to add a feedback signal line at every bit position. We proposed a method to mitigate this problem. For multiplication in projective coordinates implementation, we use a widely used digit serial multiplication hardware, which is simpler to be made versatile. We experimented with our implemented ECC coprocessors using variable length finite field arithmetic unit which has the maximum field size 256. On the clock speed 40 MHz, the scalar multiplication time is 6.0 msec for affine implementation while it is 1.15 msec for projective implementation. As a result of the study, we found that the projective coordinates algorithm which does not use the division hardware was faster than the affine coordinate algorithm. In addition, the memory implementation effectiveness relative to logic implementation will have a large influence on the implementation space requirements of the two algorithms.
고속 스칼라곱 연산은 타원곡선 암호 응용을 위해서 매우 중요하다. 보안 상황에 따라 유한체의 크기를 변경하려면 타원곡선 암호 보조프로세서가 크기 가변 유한체 연산 장치를 제공하여야 한다. 크기 가변 유한체 연산기의 효율적인 연산 구조를 연구하기 위하여 전형적인 두 종류의 스칼라곱 연산 알고리즘을 FPGA로 구현하였다. Affine 좌표계 알고리즘은 나눗셈 연산기를 필요로 하며, projective 좌표계 알고리즘은 곱셈 연산기만 사용하나 중간 결과 저장을 위한 메모리가 더 많이 소요된다. 크기 가변 나눗셈 연산기는 각 비트마다 궤환 신호선을 추가하여야 하는 문제점이 있다. 본 논문에서는 이로 인한 클록 속도저하를 방지하는 간단한 방법을 제안하였다. Projective 좌표계 구현에서는 곱셈 연산으로 널리 사용되는 디지트 serial 곱셈구조를 사용하였다. 디지트 serial 곱셈기의 크기 가변 구현은 나눗셈의 경우보다 간단하다. 최대 256 비트 크기의 연산이 가능한 크기 가변 유한체 연산기를 이용한 암호 프로세서로 실험한 결과, affine 좌표계 알고리즘으로 스칼라곱 연산을 수행한 시간이 6.0 msec, projective 좌표계 알고리즘의 경우는 1.15 msec로 나타났다. 제안한 타원곡선 암호 프로세서를 구현함으로써, 하드웨어 구현의 경우에도 나눗셈 연산을 사용하지 않는 projective 좌표계 알고리즘이 속도 면에서 우수함을 보였다. 또한, 메모리의 논리회로에 대한 상대적인 면적 효율성이 두 알고리즘의 하드웨어 구현 면적 요구에 큰 영향을 미친다.