초록 열기/닫기 버튼

타원곡선 암호에 필수적으로 사용되는 모듈러 곱셈의 고성능 하드웨어 설계에 대해 기술한다. 본 논문의 모듈러 곱셈기는NIST FIPS 186-2에 정의된 소수체 상의 5가지 체 크기(192, 224, 256, 384, 521 비트)의 모듈러 곱셈을 지원하며, 정수 곱셈과 축약의 두 단계 과정으로 모듈러 곱셈을 연산한다. 고속 정수 곱셈을 위해 카라추바-오프만 곱셈 알고리듬이 사용되었고,축약 연산을 위해 Lazy 축약 알고리듬이 사용되었다. 또한, Lazy 축약에 포함된 나눗셈 연산을 위해 Nikhilam 나눗셈 알고리듬이 사용되었으며, 나눗셈 연산은 주어진 모듈러 값에 대해 처음 한 번만 연산되고, 모듈로 값이 고정된 상태로 연속적인모듈러 곱셈이 수행되는 경우에는 나눗셈을 거치지 않도록 하였다. 설계된 모듈러 곱셈기는 32 MHz의 클록 주파수로 동작하는 경우에 초당 640만번의 모듈러 곱셈을 연산할 수 있는 것으로 평가되었으며, 180-nm CMOS 셀 라이브러리로 합성한결과, 67 MHz의 클록 주파수로 동작이 가능하며, 456,400 등가 게이트로 구현되었다.


This paper describes a design of high performance modular multiplier that is essentially used for elliptic curve cryptography. Our modular multiplier supports modular multiplications for five field sizes over GF(p), including 192, 224, 256, 384 and 521 bitsas defined in NIST FIPS 186-2, and it calculates modular multiplication in two steps with integer multiplication and reduction. The Karatsuba-Ofman multiplication algorithm was used for fast integer multiplication, and the Lazy reduction algorithm wasadopted for reduction operation. In addition, the Nikhilam division algorithm was used for the division operation included in theLazy reduction. The division operation is performed only once for a given modulo value, and it was designed to skip divisionoperation when continuous modular multiplications with the same modulo value are calculated. It was estimated that ourmodular multiplier can perform 6.4 million modular multiplications per second when operating at a clock frequency of 32 MHz. It occupied 456,400 gate equivalents (GEs), and the estimated clock frequency was 67 MHz when synthesized with a 180-nmCMOS cell library.