CIOS 몽고메리 모듈러 곱셈 알고리즘 기반 Scalable RSA 공개키 암호 프로세서 Scalable RSA public-key cryptography processor based on CIOS Montgomery modular multiplication Algorithm원문보기
512/1,024/2,048/3,072 비트의 4가지 키 길이를 지원하는 scalable RSA 공개키 암호 프로세서를 설계하였다. RSA 암호의 핵심 연산블록인 모듈러곱셈기를 CIOS (Coarsely IntegratedOperandScanning) 몽고메리 모듈러 곱셈 알고리듬을 이용하여 32 비트 데이터 패스로 설계하였으며, 모듈러 지수승 연산은 Left-to-Right (L-R) 이진 멱승 알고리듬을 적용하여 구현하였다. 설계된 RSA 암호 프로세서를 Virtex-5 FPGA로 구현하여 하드웨어 동작을 검증하였으며, 512/1,024/2,048/3,072 비트의 키 길이에 대해 각각 456,051/3,496,347/26,011,947/88,112,770 클록 사이클이 소요된다. $0.18{\mu}m$CMOS 표준셀 라이브러리를 사용하여 100 MHz 동작 주파수로 합성한 결과, 10,672 GE와 $6{\times}3,072$ 비트의 메모리로 구현되었다. 설계된 RSA 공개키 암호 프로세서는 최대 동작 주파수는 147 MHz로 예측되었으며, 키 길이에 따라 RSA 복호 연산에 3.1/23.8/177/599.4 ms 가 소요되는 것으로 평가되었다.
512/1,024/2,048/3,072 비트의 4가지 키 길이를 지원하는 scalable RSA 공개키 암호 프로세서를 설계하였다. RSA 암호의 핵심 연산블록인 모듈러 곱셈기를 CIOS (Coarsely Integrated Operand Scanning) 몽고메리 모듈러 곱셈 알고리듬을 이용하여 32 비트 데이터 패스로 설계하였으며, 모듈러 지수승 연산은 Left-to-Right (L-R) 이진 멱승 알고리듬을 적용하여 구현하였다. 설계된 RSA 암호 프로세서를 Virtex-5 FPGA로 구현하여 하드웨어 동작을 검증하였으며, 512/1,024/2,048/3,072 비트의 키 길이에 대해 각각 456,051/3,496,347/26,011,947/88,112,770 클록 사이클이 소요된다. $0.18{\mu}m$ CMOS 표준셀 라이브러리를 사용하여 100 MHz 동작 주파수로 합성한 결과, 10,672 GE와 $6{\times}3,072$ 비트의 메모리로 구현되었다. 설계된 RSA 공개키 암호 프로세서는 최대 동작 주파수는 147 MHz로 예측되었으며, 키 길이에 따라 RSA 복호 연산에 3.1/23.8/177/599.4 ms 가 소요되는 것으로 평가되었다.
This paper describes a design of scalable RSA public-key cryptography processor supporting four key lengths of 512/1,024/2,048/3,072 bits. The modular multiplier that is a core arithmetic block for RSA crypto-system was designed with 32-bit datapath, which is based on the CIOS (Coarsely Integrated O...
This paper describes a design of scalable RSA public-key cryptography processor supporting four key lengths of 512/1,024/2,048/3,072 bits. The modular multiplier that is a core arithmetic block for RSA crypto-system was designed with 32-bit datapath, which is based on the CIOS (Coarsely Integrated Operand Scanning) Montgomery modular multiplication algorithm. The modular exponentiation was implemented by using L-R binary exponentiation algorithm. The scalable RSA crypto-processor was verified by FPGA implementation using Virtex-5 device, and it takes 456,051/3,496347/26,011,947/88,112,770 clock cycles for RSA computation for the key lengths of 512/1,024/2,048/3,072 bits. The RSA crypto-processor synthesized with a $0.18{\mu}m$ CMOS cell library occupies 10,672 gate equivalent (GE) and a memory bank of $6{\times}3,072$ bits. The estimated maximum clock frequency is 147 MHz, and the RSA decryption takes 3.1/23.8/177/599.4 msec for key lengths of 512/1,024/2,048/3,072 bits.
This paper describes a design of scalable RSA public-key cryptography processor supporting four key lengths of 512/1,024/2,048/3,072 bits. The modular multiplier that is a core arithmetic block for RSA crypto-system was designed with 32-bit datapath, which is based on the CIOS (Coarsely Integrated Operand Scanning) Montgomery modular multiplication algorithm. The modular exponentiation was implemented by using L-R binary exponentiation algorithm. The scalable RSA crypto-processor was verified by FPGA implementation using Virtex-5 device, and it takes 456,051/3,496347/26,011,947/88,112,770 clock cycles for RSA computation for the key lengths of 512/1,024/2,048/3,072 bits. The RSA crypto-processor synthesized with a $0.18{\mu}m$ CMOS cell library occupies 10,672 gate equivalent (GE) and a memory bank of $6{\times}3,072$ bits. The estimated maximum clock frequency is 147 MHz, and the RSA decryption takes 3.1/23.8/177/599.4 msec for key lengths of 512/1,024/2,048/3,072 bits.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 512/1,024/ 2,048/3,072의 4가지 키 길이를 지원하는 scalable RSA 프로세서의 저면적 설계에 관해 기술한다. Ⅱ장에서는 RSA 공개키 암호 알고리듬과 RSA의 핵심 연산 블록인 몽고메리 모듈러 곱셈 알고리듬에 대해 설명한다.
제안 방법
RTL 시뮬레이션을 통해 검증된 scalable RSA 프로세서를 Virtex5 XC5VSX50T FPGA 디바이스에 구현하여 하드웨어 동작을 검증하였다. FPGA 디바이스, UART 인터페이스, C# 기반 구동 소프트웨어로 구성된 FPGA 검증 시스템은 그림 7과 같다.
Verilog HDL로 설계된 scalable RSA 프로세서를 RTL 시뮬레이션을 통한 기능 검증과 FPGA 구현으로 하드웨어 동작을 검증하였다. 그림 6은 scalable RSA 프로세서의 키 길이 3,072 비트에 대한 암호화․복호화동작의 기능 검증 결과 중 일부를 보인 것이다.
매핑된 두 수에 몽고메리 곱셈을 반복 적용해도 곱셈 결과에 R만 남는 특징이 있다. 모듈러 곱셈과 모듈러 멱승 연산을 모두 수행한 후, 최종적으로 곱셈 결과에 포함된 R을 제거하기 위해 역매핑을 한다. ABR mod N을 역매핑하면 모듈러 곱셈 결과 AB mod N이 얻어진다.
이진 방법은 최상위 비트(MSB)부터 지수를 스캔하는 L-R (left-to-right) 방식과 최하위 비트 (LSB)부터 스캔하는 R-L (right-to-left) 방식으로 구분되며, R-L 방식은 L-R 방식에 비해 연산량이 절반인 장점이 있지만, 하드웨어 자원이 두 배로 사용되는 단점이 있다[7]. 본 논문에서는 하드웨어 자원의 최소화를 위해 L-R 방식을 적용하여 모듈러 멱승 연산을 구현하였다.
인증, 키교환 등의 정보보안을 위해 폭넓게 사용되고 있는 RSA 공개키 암호 알고리듬을 저면적 하드웨어로 구현하고, FPGA 구현을 통해 하드웨어 동작을 검증했다. 설계된 scalable RSA 공개키 암호 프로세서는 512/ 1,024/2,048/3,072 비트의 4가지 키 길이를 지원하며, RSA 암호의 핵심 연산인 모듈러 곱셈기를 32비트 워드 기반의 CIOS 몽고메리 모듈러 곱셈 알고리듬을 적용하여 저면적으로 설계하였다. 설계된 scalable RSA 프로세서를 100 MHz의 동작 주파수로 합성한 결과, 10,672 GE와 18 kbits의 메모리가 사용되었으며, 최대 동작 주파수는 147 MHz로 예측되었다.
인증, 키교환 등의 정보보안을 위해 폭넓게 사용되고 있는 RSA 공개키 암호 알고리듬을 저면적 하드웨어로 구현하고, FPGA 구현을 통해 하드웨어 동작을 검증했다. 설계된 scalable RSA 공개키 암호 프로세서는 512/ 1,024/2,048/3,072 비트의 4가지 키 길이를 지원하며, RSA 암호의 핵심 연산인 모듈러 곱셈기를 32비트 워드 기반의 CIOS 몽고메리 모듈러 곱셈 알고리듬을 적용하여 저면적으로 설계하였다.
성능/효과
3,072 비트 평문 “3072‘h12345678···62eb02c8”이 암호화된 결과로 암호문 “3072’h4507ae24···ccf00a12” 가 출력되었다.
3,072 비트의 암호문 “3072‘h4507ae24···ccf00a12”를 복호한 결과로 원래의 평문 “3072’h12345678 ··· 62eb02c8”이 출력되었으며, 따라서 설계된 RSA 프로세서의 기능이 올바로 동작함을 확인하였다.
88로 우수하지만, 본 논문의 설계에 비해 약 10배의 게이트를 사용하므로, 경량화 구현이 필요한 분야에는 적합하지 않다. 본 논문의 scalable RSA 프로세서는 4가지 키 길이를 지원하면서도 APT가 0.92로 작아 저면적 구현이 필요한 응용분야에 적합하다.
만약 Z=N이면, Comp 상태를 유지하고 그 다음 32 비트를 비교한다. 비교 또는 뺄셈 연산을 마치고 Idle 상태로 천이될 때, mm_end 신호가 생성되어 곱셈 연산이 종료됨을 알리며, 다음 mm_start 신호가 입력 될 때 까지 Idle 상태를 유지한다.
설계된 scalable RSA 프로세서를 0.18 ㎛ CMOS 표준 셀로 합성한 결과, 100 MHz 의 동작 주파수에서 10,672 GE와 6×3,072-b (총 18 kbits)의 메모리로 구현되었다.
설계된 scalable RSA 공개키 암호 프로세서는 512/ 1,024/2,048/3,072 비트의 4가지 키 길이를 지원하며, RSA 암호의 핵심 연산인 모듈러 곱셈기를 32비트 워드 기반의 CIOS 몽고메리 모듈러 곱셈 알고리듬을 적용하여 저면적으로 설계하였다. 설계된 scalable RSA 프로세서를 100 MHz의 동작 주파수로 합성한 결과, 10,672 GE와 18 kbits의 메모리가 사용되었으며, 최대 동작 주파수는 147 MHz로 예측되었다. 본 논문에서 설계된 scalable RSA 암호 프로세서는 4가지 키 길이 지원과 우수한 APT 성능을 가지므로, 하드웨어 자원이 제한된 모바일 및 IoT 디바이스의 공개키 기반 보안 하드웨어 구현에 활용이 가능하다.
18 ㎛ CMOS 표준 셀로 합성한 결과, 100 MHz 의 동작 주파수에서 10,672 GE와 6×3,072-b (총 18 kbits)의 메모리로 구현되었다. 최대 동작 주파수 147 MHz에서 키 길이에 대한 복호화 연산에 3.1/23.8/177 /599.4 ms가 소요되는 것으로 평가되었다.
후속연구
설계된 scalable RSA 프로세서를 100 MHz의 동작 주파수로 합성한 결과, 10,672 GE와 18 kbits의 메모리가 사용되었으며, 최대 동작 주파수는 147 MHz로 예측되었다. 본 논문에서 설계된 scalable RSA 암호 프로세서는 4가지 키 길이 지원과 우수한 APT 성능을 가지므로, 하드웨어 자원이 제한된 모바일 및 IoT 디바이스의 공개키 기반 보안 하드웨어 구현에 활용이 가능하다. 향후, 전력 모니터링 분석, 소 요시간 분석 등의 부채널 공격에 강인한 RSA 하드웨어 설계에 관한 추가적인 연구가 필요하다.
본 논문에서 설계된 scalable RSA 암호 프로세서는 4가지 키 길이 지원과 우수한 APT 성능을 가지므로, 하드웨어 자원이 제한된 모바일 및 IoT 디바이스의 공개키 기반 보안 하드웨어 구현에 활용이 가능하다. 향후, 전력 모니터링 분석, 소 요시간 분석 등의 부채널 공격에 강인한 RSA 하드웨어 설계에 관한 추가적인 연구가 필요하다.
질의응답
핵심어
질문
논문에서 추출한 답변
IoT 정보보안는 무엇으로 구성되는가?
IoT는 다양한 센서와 장치들이 연결되는 이종 복합 시스템 형태를 가지므로, IoT 장치와 서비스의 설계, 개발단계에서부터 정보보안 체계를 고려해야 한다. IoT 정보보안은 기존의 인터넷 보안 시스템과 유사하게 대칭키 암호, 공개키 암호, 해시 암호 등으로 구성되며, 정보의 무결성 (integrity) 및 기밀성 (confidentiality), 기기 간 인증 (authentication), 키 분배 (key distribution) 기술 등이 핵심 요소이다. 공개키 암호는 암호화 키와 복호화 키가 서로 다른 비대칭키 암호이며, 기기 간의 인증 및 키 분배를 목적으로 사용되어 IoT 정보보안 시스템에서 핵심 요소로 사용된다.
공개키 암호 시스템는 무엇이 있는가?
대표적인 공개키 암호 시스템으로는 RSA (Rivest, Shamir, Adleman)[2]와 타원곡선 암호 (Elliptic Curve Cryptography: ECC)[3] 등이 있다. RSA는 큰 정수의 인수분해가 어렵다는 점에 안정성을 두며, ECC는 타원 곡선 군의 이산대수 문제에 안정성을 둔다.
모듈러 곱셈과 모듈러 멱승 알고리듬을 워드 기반 하드웨어로 구현하는 방법을 고려해야 하는 이유는 무엇인가?
RSA의 암호화와 복호화는 모듈러 멱승 (modular exponentiation) 연산으로 구성되며, 모듈러 멱승 연산은 반복적인 모듈러 곱셈에 의해 계산된다. 1,024 비트 이상의 큰 키 길이에 대한 반복적인 모듈러 곱셈을 직접 하드웨어로 구현하면 회로 복잡도가 매우 커지게 된다. 따라서 모바일 및 IoT 보안을 위한 경량화된 RSA 프로세서를 위해서는 모듈러 곱셈과 모듈러 멱승 알고리듬을 워드 기반 하드웨어로 구현하는 방법을 고려해야 한다.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.