FIPS 186-2에 정의된 224-비트 소수체 타원곡선 암호와 2048-비트 키길이의 RSA 암호를 단일 하드웨어로 통합 구현한 공개키 암호 프로세서 EC-RSA를 설계하였다. ECC의 스칼라 곱셈과 RSA의 멱승 연산에 공통으로 사용되는 유한체 연산장치를 32 비트 데이터 패스로 구현하였으며, 이들 연산장치와 내부 메모리를 ECC와 RSA 연산에서 효율적으로 공유함으로써 경량화된 하드웨어로 구현하였다. EC-RSA 프로세서를 FPGA에 구현하여 하드웨어 동작을 검증하였으며, 180-nm CMOS 셀 라이브러리로 합성한 결과 11,779 GEs와 14 kbit의 RAM으로 구현되었고, 최대 동작 주파수는 133 MHz로 평가되었다. ECC의 스칼라 곱셈 연산에 867,746 클록 사이클을 소요되어 34.3 kbps의 처리율을 가지며, RSA의 복호화 연산에 26,149,013 클록 사이클이 소요되어 10.4 kbps의 처리율을 갖는 것으로 평가되었다.
FIPS 186-2에 정의된 224-비트 소수체 타원곡선 암호와 2048-비트 키길이의 RSA 암호를 단일 하드웨어로 통합 구현한 공개키 암호 프로세서 EC-RSA를 설계하였다. ECC의 스칼라 곱셈과 RSA의 멱승 연산에 공통으로 사용되는 유한체 연산장치를 32 비트 데이터 패스로 구현하였으며, 이들 연산장치와 내부 메모리를 ECC와 RSA 연산에서 효율적으로 공유함으로써 경량화된 하드웨어로 구현하였다. EC-RSA 프로세서를 FPGA에 구현하여 하드웨어 동작을 검증하였으며, 180-nm CMOS 셀 라이브러리로 합성한 결과 11,779 GEs와 14 kbit의 RAM으로 구현되었고, 최대 동작 주파수는 133 MHz로 평가되었다. ECC의 스칼라 곱셈 연산에 867,746 클록 사이클을 소요되어 34.3 kbps의 처리율을 가지며, RSA의 복호화 연산에 26,149,013 클록 사이클이 소요되어 10.4 kbps의 처리율을 갖는 것으로 평가되었다.
A public-key cryptography processor EC-RSA was designed, which integrates a 224-bit prime field elliptic curve cryptography (ECC) defined in the FIPS 186-2 as well as RSA with 2048-bit key length into a single hardware structure. A finite field arithmetic core used in both scalar multiplication for ...
A public-key cryptography processor EC-RSA was designed, which integrates a 224-bit prime field elliptic curve cryptography (ECC) defined in the FIPS 186-2 as well as RSA with 2048-bit key length into a single hardware structure. A finite field arithmetic core used in both scalar multiplication for ECC and exponentiation for RSA was designed with 32-bit data-path. A lightweight implementation was achieved by an efficient hardware sharing of the finite field arithmetic core and internal memory for ECC and RSA operations. The EC-RSA processor was verified by FPGA implementation. It occupied 11,779 gate equivalents (GEs) and 14 kbit RAM synthesized with a 180-nm CMOS cell library and the estimated maximum clock frequency was 133 MHz. It takes 867,746 clock cycles for ECC scalar multiplication resulting in the estimated throughput of 34.3 kbps, and takes 26,149,013 clock cycles for RSA decryption resulting in the estimated throughput of 10.4 kbps.
A public-key cryptography processor EC-RSA was designed, which integrates a 224-bit prime field elliptic curve cryptography (ECC) defined in the FIPS 186-2 as well as RSA with 2048-bit key length into a single hardware structure. A finite field arithmetic core used in both scalar multiplication for ECC and exponentiation for RSA was designed with 32-bit data-path. A lightweight implementation was achieved by an efficient hardware sharing of the finite field arithmetic core and internal memory for ECC and RSA operations. The EC-RSA processor was verified by FPGA implementation. It occupied 11,779 gate equivalents (GEs) and 14 kbit RAM synthesized with a 180-nm CMOS cell library and the estimated maximum clock frequency was 133 MHz. It takes 867,746 clock cycles for ECC scalar multiplication resulting in the estimated throughput of 34.3 kbps, and takes 26,149,013 clock cycles for RSA decryption resulting in the estimated throughput of 10.4 kbps.
정보보안 시스템에 널리 사용되고 있는 대표적인 공개키 암호 알고리듬인 ECC와 RSA를 단일 하드웨어 구조로 통합하여 구현한 EC-RSA 프로세서를 설계하였다. ECC 모드에서 소수체 상의 224-비트 타원곡선 P-224와 RSA 모드에서 키길이 2048-비트를 지원한다.
제안 방법
본 논문에서는 대표적인 공개키 암호 방식인 ECC 와 RSA를 동시에 지원하도록 단일 하드웨어 구조에 통합한 EC-RSA 프로세서를 설계하였다. ECC와 RSA에 공통으로 사용되는 핵심 연산장치를 32 비트 데이터 패스로 구현하였으며, 이들 연산장치와 내부 메모리를 ECC와 RSA 연산에서 효율적으로 공유함으로써 경량화된 공개키 암호 프로세서를 구현하였다.
대상 데이터
Verilog HDL로 설계된 EC-RSA 프로세서는 FPGA 구현을 통해 하드웨어 동작을 검증하였다. FPGA 검증 시스템은 그림 7과 같으며, FPGA 보드, UART 인터페이스, Python 기반 구동 및 GUI 소프트웨어로 구성되며, FPGA 소자는 Xilinx Virtex5 XC5VSX-95T 디바이스가 사용되었다. FPGA에 구현된 EC-RSA 프로세서로 테스트 벡터를 로딩한 후, RSA 또는 ECC 연산을 수행한 결과가 PC 로 전송되어 GUI 화면에 표시된다.
데이터처리
Verilog HDL로 설계된 EC-RSA 프로세서는 FPGA 구현을 통해 하드웨어 동작을 검증하였다. FPGA 검증 시스템은 그림 7과 같으며, FPGA 보드, UART 인터페이스, Python 기반 구동 및 GUI 소프트웨어로 구성되며, FPGA 소자는 Xilinx Virtex5 XC5VSX-95T 디바이스가 사용되었다.
이론/모형
스칼라 곱셈의 연산량을 줄이기 위한 다양한 방법들이 제안되고 있으나 [7-8], 비밀키 k의 해밍 무게(Hamming weight)와 연산량이 상관관계를 가져 단순 전력분석과 같은 부채널 공격(side channel attack)에 취약하다는 단점이 있다. 본 논문에서는 스칼라 곱셈을 위해 몽고메리 래더(Montgomery ladder) 알고리듬 [9]을 사용하였다. 몽고메리 래더 알고리듬은 비밀키 k의 해밍 무게와 무관하게 동일한 횟수의점 덧셈과 점 두배 연산을 반복하며, 연산량은 증가하지만 부채널 공격에 대한 내성을 갖는다.
그림 6-(b)는 RSA_MODE의 동작을 제어하는 FSM이며, 입력된 메시지에 대해 식 (1), (2)의 멱승을 연산한다. 키 값의 최상위 비트부터 스캔하여 연산이 진행되는 left-to-right 이진 알고리듬을 적용하였다. 매 비트마다 제곱연산이 수행되고, 스캔된 키 값이 1이면 곱셈 연산이 추가적으로 수행된다.
성능/효과
ECC 모드에서 소수체 상의 224-비트 타원곡선 P-224와 RSA 모드에서 키길이 2048-비트를 지원한다. EC-RSA 프로세서를 180-nm CMOS 셀 라이브러리로 합성한 결과 11,779 GEs 와 14 kbit의 RAM로 구현되었으며, ECC 모드에서 34.3 kbps, RSA 모드에서 10.4 kbps의 처리율을 갖는 것으로 평가되었다. ECC 또는 RSA 프로세서와 유사한 성능을 가지면서 두 가지 공개키 암호를 동시에 지원하므로, 유용성 측면에서 우수하다.
설계된 EC-RSA 프로세서는 제어회로의 FSM과 메모 리를 추가하면 P-192, P-256, P-384 등 FIPS 186-2 표준에 정의된 타원곡선과 512/1024/3072-비트의 RSA를 구현하도록 확장될 수 있다. 핵심 연산장치와 메모리 공유를 통해 경량 하드웨어로 구현되어 제한된 자원을 갖는 IoT, 무선센서 네트워크(WSN) 등의 공개키암호 시스템 구현에 적합한 것으로 평가된다.
질의응답
핵심어
질문
논문에서 추출한 답변
공개키 암호(public-key cryptography)란 무엇인가?
공개키 암호(public-key cryptography) 방식은 대칭키(symmetric-key) 암호, 해시(hash) 함수와 더불어 오늘날 유무선 통신 시스템의 보안 체계를 구성하는 핵심 요소이다. 공개키 암호는 정보 송신자와 수신자가 서로 다른 키(공개키와 비밀키)를 사용하므로 비대칭키(asymmetric-key) 암호 방식이라고도 하며, 사전에 비밀 키를 나눠 갖지 않아도 안전한 정보 송수신이 가능하다는 장점이 있다.
RSA는 어떤 특징을 가진 공개키 암호방식인가?
RSA는 Ron Rivest, Adi Shamir, Leonard Adleman 에 의해 개발된 공개키 암호 방식이며, 개발자 이름의 첫 글자를 따서 RSA로 명명되었다[4]. RSA 는 큰 소수(prime number)의 곱으로 이루어진 정수의 소인수 분해가 어렵다는 사실에 보안성의 기반을 가지고 있으며, 정보의 암호ㆍ복호화뿐만 아니라 전자서명이 가능한 공개키 암호방식이다. 공개 키(e, N )를 이용한 평문 M 의 RSA 암호화는 식 (1)과 같이 모듈러(modular) 멱승으로 표현되며, 암호문 C가 얻어진다.
타원곡선 상의 ECC가 가지는 단점은 무엇인가?
식 (3)의 스칼라 곱셈을 계산하는 가장 기본적인 방법은 타원곡선 상의 점 P를 k번 더하는 것이다. 스칼라 곱셈의 연산량을 줄이기 위한 다양한 방법들이 제안되고 있으나 [7-8], 비밀키 k의 해밍 무게(Hamming weight)와 연산량이 상관관계를 가져 단순 전력분석과 같은 부채널 공격(side channel attack)에 취약하다는 단점이 있다. 본 논문에서는 스칼라 곱셈을 위해 몽고메리 래더(Montgomery ladder) 알고 리듬 [9]을 사용하였다.
참고문헌 (20)
H. Lin, and N. Bergmann, "IoT Privacy and Security Challenges for Smart Home Environments," information, pp. 1-15, 2016. DOI:10.3390/info7030044
O. Toshihiko, "Lightweight Cryptography Applicable to various IoT Devices," NEC Technical Journal, vol.12, no.1, pp. 67-71, 2017.
T. Eisenbarth and S. Kumar, "A Survey of Lightweight Cryptography Implementations," IEEE Design & Test of Computers, vol.24, pp. 522-533, 2007. DOI:10.1109/MDT.2007.178
R. Rivest, A. Shamir, and L. Adleman, "A method for obtaining Digital Signatures and Public-Key Crypto-systems," Communications of the ACM, vol. 21, no. 2, pp. 120-126, 1978. DOI:10.1145/359340.359342
V. S. Miller, "Use of elliptic curve in cryptography," in CRYPTO85: Proceedings of the Advances in Cryptology, Springer-Verlag, pp. 417-426, 1986.
M. Amara and A. Siad, "Hardware implementation of Elliptic Curve Point Multiplication over GF(2^m) for ECC protocols," International Journal for Information Security Research (IJISR), vol.2, no.1, pp. 106-112, March. 2012.
F. Morain and J. Olivos, "Speeding up the computations on an elliptic curve using additionsubtraction chains," RAIRO Theoretical Informatics and Applications, vol.24, no.6, pp. 531-543, 1990.
P. L. Montgomery, "Speeding the Pollard and elliptic curve methods of factorization," Mathematics of Computation, vol.48, no.177, pp. 243-264, 1987. DOI:10.1090/S0025-5718-1987-0866113-7
J. H. Silverman, The Arithmetic of Elliptic Curves, Graduate Texts in Mathematics (GTM) 106, Springer-Verlag, 1986.
J. Lopez and R. Dahab, "Improved Algorithms for Elliptic Curve Arithmetic in GF(2^n)," International Workshop on Selected Areas in Cryptography (SAC), pp. 201-212, 1998. Also in Lecture Notes in Computer Science, vol.1556, Springer.
NIST Std. FIPS PUB 186-2, Digital Signature Standard (DSS), National Institute of Standard and Technology (NIST), Jan. 2000.
J. Guajardo et al, "Efficient hardware implementation of finite fields with applications to cryptography," in Acta Applicandae Mathematicae, vol.93, pp. 75-118, 2006. DOI:10.1007/s10440-006-9072-z
Miyamoto et al, "Systematic design of highradix Montgomery multipliers for RSA processors," IEEE International Conference on Computer Design (ICCD), pp. 416-421, 2008. DOI:10.1109/ICCD.2008.4751894
M. D. Shieh and W. C. Lin, "Word-Based Montgomery Modular Multiplication Algorithm for Low-Latency Scalable Architectures," IEEE Transactions on Computers, vol.59, no.8, pp. 1145-1151, 2010. DOI:10.1109/TC.2010.72
A. Bellemou, M. Anane, N. Benblidia, and M. Issad, "FPGA Implementation of Scalar Multiplication over F_p for Elliptic Curve Cryptosystem," 2015 10th International Design & Test Symposium (IDT), pp. 135-140, 2015. DOI:10.1109/IDT.2015.7396750
K. Javeed, X. Wang, and M. Scott, "High performance hardware support for elliptic curve cryptography over general prime field," Microprocessors and Microsystems, pp. 331-342, 2017. DOI:10.1016/j.micpro.2016.12.005
K. Javeed, and X. Wang "FPGA Based High Speed SPA Resistant Elliptic Curve Scalar-Multiplier Architecture," International Journal of Reconfigurable Computing, pp. 1-10, 2016. DOI:10.1155/2016/6371403
B. Song, K. Kawakami, K. Nakano, and Y. Ito, "An RSA Encryption Hardware Algorithm using a Single DSP Block and a Single Block RAM on the FPGA," First International Conference on Networking and Computing, pp. 140-147, 2010. DOI:10.15803/ijnc.1.2_277
W. L. Cho, and K. W. Shin, “2,048 bits RSA public-key cryptography processor based on 32-bit Montgomery modular multiplier,” Journal of the Korea Institute of Information and Communication Engineering, Vol. 21, No. 8, pp. 1471-1479, Aug. 2017.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.