오늘날 공개키 암호 알고리즘 중에서 많이 사용되고 있는 알고리즘으로는 RSA, 타원곡선암호(ECC) 등이 있다. 해당 알고리즘들은 소인수분해 문제, 타원곡선상의 이산대수 문제 등을 기반으로 하고 있는데 이러한 문제들은 양자컴퓨터의 개발 이후 Shor의 알고리즘과 같은 양자 알고리즘을 활용하면 쉽게 답이 구해질 것으로 예상되기 때문에 이러한 문제를 기반으로 하는 RSA, ECC 등의 암호 알고리즘도 취약해질 것으로 예상되고 있다. 따라서 NIST에서 양자컴퓨터의 개발 이후로도 안전성을 유지할 수 있는 포스트 퀀텀 암호를 공모하였으며 NTRU, McEliece, UOV, Rainbow 등이 후보로 제출되었다. 그중 NTRU의 암호화 버전인 NTRUEncrypt는 이미 2008년 IEEE P1363.1에 표준으로 채택된 바 있다. 본 논문에서는 NTRUEncrypt의 성능향상을 위한 방법을 제안한다. NTRUEncrypt는 다항식 환에서 정의되며 암호화 및 복호화 과정에서의 곱셈 연산 성능이 전체 성능을 좌우한다. NTRUEncrypt에서는 계수가 {0, 1, -1}만을 가진 다항식을 뽑아 암호화 및 복호화 과정에서 곱셈 연산을 하는데 기존의 NTRUEncrypt에서는 이 점을 이용해 인덱스 기반의 다항식 곱셈연산을 하였다. 2017년에 Pyo 등은 인덱스 기반의 다항식 곱셈연산 대신 슬라이딩 윈도우 방법을 적용하여 곱셈연산의 속도를 더 빠르게 하는 방법을 제안한 바 있다. 본 논문에서는 Pyo 등의 방법을 더 효율적으로 만들기 위해 계수 1과 ?1을 함께 고려함으로써 새로운 윈도우 패턴들을 정의하고, 이들을 이용하여 연산속도를 개선하고 시간 분석과 전력 분석에 대한 부채널 공격 대응 방법을 추가한 개선된 슬라이딩 윈도우 방법을 제안한다. 시간 분석 공격에 대해서는 슬라이딩 윈도우가 적용되더라도 곱셈 연산의 수행시간이 일정하게 유지되도록 대응하였고, 전력 분석 공격에 대해서는 데이터 값을 무작위로 초기화시키고 연산순서가 무작위로 이루어지도록 대응하였다. 마르코프 체인 분석 방법을 이용해서 최적의 윈도우 크기를 구하고 이를 실험을 통해 구한 최적의 윈도우 크기와 큰 차이가 없음을 확인하였다. 기존의 슬라이딩 윈도우를 이용한 다항식 곱셈 대비 제안 방법은 최대 5.4% 향상되었고, NTRUEncrypt에 적용했을 경우 암호화 및 복호화의 경우 각각 최대 4.2%와 4.6% 향상되었다.
Public key cryptographic algorithms that are widely used today include RSA and Elliptic Curve Cryptography (ECC). These algorithms are based on prime factorization problems and discrete logarithmic problems on elliptic curves, respectively. However, these problems are expected to be easily solved by using quantum algorithms such as Shor''s algorithm after the development of quantum computers. In such cases, cryptographic algorithms such as RSA and ECC, which are based on these problems, are also expected to be vulnerable. So NIST held a competition to post-quantum cryptography to maintain safety even after the development of quantum computers, and NTRU, McEliece, UOV, and Rainbow were submitted as candidates. NTRUEncrypt, an encrypted version of NTRU, was already adopted as a standard in IEEE P1363.1 in 2008. In this paper, we propose a method for improving the performance of NTRUEncrypt. NTRUEncrypt is defined over a polynomial ring, and the performance of multiplication operations during encryption and decryption dominates the overall performance. NTRUEncrypt generates polynomials with only coefficients {0, 1, -1} and multiplies them during encryption and decryption. This polynomial was used to perform index-based polynomial multiplication. In 2017, Pyo et al. proposed a method to speed up multiplication by applying a sliding window method instead of the index-based polynomial multiplication. In this paper, we define new window patterns that cover coefficients 1 and -1 together to make Pyo''s method more efficient. Using them, we propose an improved sliding window method that improves the computational speed and adds side channel attack countermeasures against timing analysis and power analysis. For the timing analysis attack countermeasure, the execution time of the multiplication operation was kept constant even if the sliding window was applied. For the power analysis attack countermeasure, the values are initialized to a random number and the operation order was randomly permuted. Using a Markov chain analysis method, the optimal window size was estimated and it was confirmed that there is no significant difference from the optimal window size obtained through experiments. The proposed method improves by up to 5.4% compared to the polynomial multiplication using the previous sliding window method, and when applied to NTRUEncrypt, it improves the encryption and decryption speeds by up to 4.2% and 4.6%, respectively.
목 차 i표 목차 ⅲ알고리즘 목차 ⅳ그림 목차 ⅳ국문 요약 1영문 요약 21. 서론 42. 사전지식 62.1. NTRUEncrypt 62.1.1. 기본 다항식 연산 62.1.2. 개인키 및 공개키 생성 72.1.3. 암호화 82.1.4. 복호화 82.2. 인덱스 곱셈 방법 82.3. 슬라이딩 윈도우 곱셈 방법 102.4. 부채널 공격 143. 제안 방법 153.1. 새로운 패턴을 고려한 삼진 다항식 곱셈 방법 153.2. 부채널 공격에 대한 대응 213.2.1. 전력 분석 공격 대응 213.2.2. 시간 분석 공격 대응 224. 성능 분석 334.1. 최적 윈도우 크기 결정 334.2. 성능 비교 375. 결론 46참고 문헌 47