본 논문에서는 NTT(Number Theoretic Transform) 기반 다항식 곱셈기를 이용한 고성능Ring-LWE(Learning With Errors) 암호시스템 구조를 제안한다. 제안하는 Ring-LWE 암호시스템 구조는 암호화(Encryption) 및 복호화(Decryption) 모듈로 구성되어 있으며, 중요한 핵심 블록으로서 NTT 기반 다항식 곱셈기가 이용된다. 따라서, 고성능 Ring-LWE 암호시스템의 성능을 향상시킬 수 있는 NTT기반 다항식 곱셈기를 제안한다. NTT를 사용한 다항식 곱셈기는 기본적으로 Ring안에서 동작하며 Convolution Theory와 FFT(Fast Fourier Transform)를 이용하는 곱셈기이다. 일반적인 NTT을 이용한 다항식 곱셈기의 구조는 크게 메모리-기반(Memory-based)구조와 파이프라인(Pipeline-based) 구조로 나눌 수 있다. 이 중 메모리-기반 구조는 데이터 처리율(data throughput rate) 과 클럭 속도 (clock speed) 보다 저 면적 및 저 전력에 적합한 구조이다. 암호화 및 복호화는 높은 클럭 속도를 바탕으로 빠른 동작이 가능해야 한다. 제안된 NTT 기반의 다항식 곱셈기는 높은 클럭 속도와 데이터 처리율을 목적으로 파이프라인 기반의 구조로 설계되었으며, 다양한 병렬 구조로서 2^0-병렬, 2^1-병렬, 2^2-병렬 구조들을 제안하고 성능을 비교 분석하였다. Ring-LWE 암호시스템은 NTT기반의 다항식 곱셈기를 사용하여 설계되었으며 TSMC 사의 CMOS 공정 40-nm 라이브러리와 Synopsys 사의 Design compiler, FPGA Virtex-7을 사용하여 구현하였으며 성능 비교를 하였다. C언어 시뮬레이션을 통한 결과 측정에서 제안된 NTT기반 다항식 곱셈기를 사용한 Ring-LWE암호시스템은 일반 다항식 곱셈기를 사용한 Ring-LWE암호시스템과 비교하여 60%의 성능 향상 효율을 보인다. 또한 본 논문에서는 다양한 병렬 구조의 NTT기반 다항식 곱셈기를 제안하며 그에 따른 성능 비교를 나타낸다. 그 결과 NAND 게이트 수로 계산한 하드웨어 복잡도는 2^0-병렬 구조 기준 174,937, 2^1-병렬 구조 기준 229,848, 2^2-병렬 구조 기준 287,448개 이며, 클럭 속도는 2^0-병렬인 경우 625 MHz, 2^1-병렬인 경우 555 MHz, 2^2-병렬인 경우 500 MHz이다. Latency는 20-병렬인 경우 836 클럭, 22-병렬인 경우 451 클럭, 22-병렬인 경우 260 클럭이다. 따라서 병렬 수를 늘릴수록 하드웨어 복잡도는 증가하며, 클럭 속도는 감소한다. Latency는 병렬 수를 늘릴수록 클럭 수가 감소한다. 본 논문에서 제안한 고성능 Ring-LWE 암호시스템 구조는 양자 컴퓨터 시대에 대비한 차세대 암호 알고리즘으로 현재 사용되는 암호알고리즘을 대체할 수 있는 다양한 응용 분야에 적용하여 사용할 수 있을 것으로 기대된다.
In this paper, we propose a high-performance Ring-LWE (Learning With Errors) cryptosystem using NTT-based polynomial multiplier. The proposed Ring-LWE architecture consists of an encryption and a decryption module, which use NTT-based polynomial multiplier for core structure. Thus, we proposed Number Theoretic Transform (NTT) based polynomial multiplier module. The polynomial multiplier using NTT is basically calculation in Ring and used Convolution Theory and Fast Fourier Transform (FFT). The architecture of a NTT-based polynomial multiplier can be divided into a memory-based architecture and a pipeline-based architecture. Among these, the memory-based architecture is suitable for lower area and lower power than data throughput rate and clock speed. Encryption and decryption should be able to operate fast with high clock speed. Therefore, this paper proposes a pipeline structure. The proposed NTT-based polynomial multiplier is designed with pipeline based structure for high clock speed and data throughput, and it proposes various parallel structures 2^0-parallel, 2^1-parallel, 2^2-parallel. Ring-LWE cryptosystem is designed using NTT-based polynomial multiplier and implemented and compared using TSMC CMOS process 40-nm library, and FPGA Virtex-7. The Ring-LWE cryptosystem using the proposed NTT-based polynomial multiplier in C-language simulation shows a 60% improvement in performance compared with Ring-LWE cryptosystem using normal polynomial multiplier. In this paper, we propose NTT-based polynomial multipliers with various parallel structures and show performance comparison. As a result, hardware complexity in 2^0-parallel, 2^1-parallel, 2^2-parallel calculated by the number of NAND gates is 174,937, 229,848, and 287,448. The clock speed shows 625 MHz, 555 MHz, 500 MHz, and latency is 836 clocks, 451 clocks, 260 clocks, respectively. Therefore, as the number of parallel is increased, the hardware complexity is increased and clock speed is reduced. The latency is reduced as the number of parallel is increased. The high-performance Ring-LWE cryptosystem architecture proposed in this paper is expected to replace currently used cryptographic algorithms as a next-generation cryptographic algorithm in various applications for the quantum computer age.
목차
국문요약 iAbstract iii목 차 ? v그림목차 viii표 목 차 ⅹ1 장 서 론 12 장 본 론 41 절 차세대 암호 알고리즘 41.1 NP(Non-deterministic Polynomial time) 41.2. 공개키 암호 (비대칭 암호) 51.3. 완전동형암호 62 절 Ring-LWE 암호시스템 82.1. Ring-LWE 암호시스템 과정 82.2. 암호화 (Encryption) 91) 다항식 덧셈기 (Polynomial Adder) 112) 다항식 곱셈기 (Polynomial Multiplication) 113) 인코더 (Encoder) 124) 가우시안 샘플러 122.3. 복호화 (Decryption) 141) 디코더(Decoder) 152.4. 키생성기 (Key generation) 163 절 Ring-LWE 암호시스템의 하드웨어 구조 173.1 암호화(Encryption) 모듈의 하드웨어 구조 183.2 복호화(Decryption) 모듈의 하드웨어 구조 193.3 NTT을 사용한 다항식 곱셈기 구조 201) Modular Reduction 212) Number Theory Transform 233) NTT 기반 다항식 곱셈기 244 절 다항식 곱셈기에 사용된 NTT/INTT 프로세서 구조 304.1 파이프라인 NTT 프로세서 구조 301) MDC (Multi-path delay commutator) 구조 302) SDF(Single-path delay feedback) 구조 313) MDF(Multi-path delay feedback) 구조 324.2 메모리 기반 NTT 프로세서 구조 334.3 제안된 NTT/INTT프로세서 구조 331) 2^2-병렬 NTT 프로세서 구조 332) 2^1-병렬 NTT 프로세서 구조 373) 2^0-병렬 NTT 프로세서 구조 384.4 2^n-병렬 NTT 프로세서 구조 395 절 구현 및 성능 비교 435.1 Ring-LWE 암호시스템의 상위-레벨 시뮬레이터 435.2 하드웨어 기능 검증 465.3 제안된 Ring-LWE 및 NTT기반 다항식 곱셈기의 구현 결과 분석 503 장 결 론 53참 고 문 헌 55