DOI QR코드

DOI QR Code

Key Recovery Side-Channel Analysis on NCC/MQ-Sign

NCC/MQ-Sign에 대한 비밀키 복구 부채널 분석

  • Received : 2024.10.24
  • Accepted : 2024.12.02
  • Published : 2024.12.31

Abstract

As the era of quantum computers approaches, the U.S. NIST has been conducting a Post-Quantum Cryptography (PQC) standardization project since 2016, and in Korea, the KpqC competition began in 2022. The KpqC competition currently has four digital signature algorithms and four PKE/KEM algorithms selected as candidates, and the Round 2 is in progress. PQC algorithms are designed to be secure against quantum computing attacks by using hard mathematical problems that remain safe even in the quantum era. However, they are still vulnerable to side-channel analysis (SCA), which exploit physical information leaked during the operation of cryptographic algorithms on devices. Therefore research on the evaluation of vulnerabilities to SCA and countermeasures is essential for a secure transition to PQC. Many SCA and countermeasures have been studied for NIST PQC candidate and selected algorithms. In contrast, research on SCA against KpqC candidates is still in its early stages, and studies on countermeasures are also lacking. This paper proposes secret key recovery SCA against two KpqC Round 2 digital signature algorithms, NCC-Sign and MQ-Sign. We performed experimental verification of the proposed attack by successfully recovering a part of secret keys using 5,000 power traces collected by working each digital signature algorithm in an ARM-Cortex M4-based STM32F3 MCU environment.

양자 컴퓨터 시대가 다가옴에 따라 미국 NIST에서는 2016년도부터 양자 내성 암호 공모전을 시작했고, 국내에서도 2022년도부터 KpqC 공모전을 시작했다. KpqC 공모전은 현재 4종의 전자서명과 4종의 PKE/KEM이 후보로 선택되어 2라운드가 진행되고 있다. 양자 내성 암호는 양자 컴퓨터를 이용한 암호학적 공격을 대비하여 양자 알고리즘에도 안전한 기반 문제를 이용한 암호 알고리즘이지만 장치에서 암호 알고리즘이 동작하는 동안의 부채널 정보를 활용한 부채널 공격에는 여전히 노출될 수 있다. 따라서 안전한 양자 내성 암호 전환을 위해서 부채널 공격에 대한 취약성 검증과 대응기술 연구가 필요하다. 이런 이유로 NIST 양자 내성 암호 공모전의 후보 및 선정 알고리즘들은 많은 부채널 공격 및 대응기법 연구가 이뤄져 오고 있다. 이에 비해 KpqC 후보 알고리즘들에 대한 부채널 공격 연구는 아직 초기 상태이며 대응기법에 대한 연구 역시 미비하다. 본 논문은 KpqC 2라운드 전자서명 NCC-Sign과 MQ-Sign에 대한 비밀키 복구 부채널 공격을 제안한다. ARM-Cortex M4 기반 STM32F3 MCU 환경에서 각 전자서명 알고리즘을 동작시켜 수집된 5,000개의 전력 파형으로 비밀키 일부에 대한 복구에 성공해 제안한 공격을 실험적으로 검증했다.

Keywords

I. 서론

양자 컴퓨터 시대가 도래하면 RSA, ECC 등의 공개키 암호 시스템은 기존에 제공하던 안전성을 만족하지 못하게 된다. 이에 양자 알고리즘에 내성을 지닌 PQC(Post-Quantum Cryptography)에 대한 중요성이 커지기 시작했다. 미국 NIST는 2016년부터 PQC 표준화 사업을 시작했고 다양한 난제를 기반으로 설계된 암호 알고리즘이 제출됐다. 공모전 동안 제출된 암호들에 대해 속도, 키 사이즈, 안전성 등 다양한 관점의 연구가 진행되고 있다. 국내에서도 2022년부터 양자내성암호연구단 주관하에 PQC 국가 공모전 KpqC가 시작됐다. 2023년 12월, 4종의 전자서명과 4종의 PKE(Public Key Encryption)/KEM(Key Encapsulation Mechanism)이 2라운드 알고리즘으로 선정됐다. Table 1은 KpqC 2라운드 후보를 요약한 것이다. 이러한 PQC는 양자 컴퓨터를 이용한 공격에 대비하여 양자 알고리즘에도 안전한 기반 문제를 이용한 암호 알고리즘이지만 기존 암호와 같이 고전적인 전자 장치에서 동작한다. 따라서 암호 알고리즘이 동작하는 동안의 전력, 전자파 등의 부채널 정보가 누출되고 이는 기존 암호와 같은 부채널 취약점으로 이어진다.

Table 1. Summary of KpqC Round 2 Candidate

JBBHCB_2024_v34n6_1545_2_t0001.png 이미지

부채널 정보는 장치가 동작하는 동안 발생하는 의도치 않은 전력, 전자파, 시간 등의 정보를 의미하고, 부채널 분석이란 이러한 부채널 정보를 이용해 장치와 알고리즘 내의 비밀 정보를 분석하는 기법이다. 1996년, Kocher는 최초로 시간 정보를 이용해 RSA 등의 공개키 암호를 공격하는 방법을 제시했다[1]. 이후 차분 전력 분석 (Differential Power Analysis, DPA)[2], 상관 전력 분석(Correlation Power Analysis, CPA)[3] 등이 제시되며, 공개키 암호, 대칭키 암호 모두 부채널 공격의 대상이 됐다. 이외에도 템플릿 공격[4], 기계학습을 이용한 부채널 공격[5]이 제시되며 현재까지도 다양한 분석 방법이 연구되고 있다.

2016년 이후 PQC에 대한 관심도가 높아지면서 PQC에 대한 부채널 분석 연구도 지속되고 있다. 기존 공개키 암호와 다른 연산 구조로 인해 다양한 신규 취약점과 그에 대한 부채널 분석 대응기법이 연구됐다[6]. 하지만 NIST PQC에 비해 KpqC 후보 알고리즘에 관한 부채널 분석 연구는 현저히 부족하며 향후 선정된 KpqC 알고리즘의 실사용을 위해 관련한 부채널 분석 연구가 필요하다.

[Contribution]

본 논문은 KpqC 2라운드 전자서명 4종 중 NCC-Sign과 MQ-Sign에 대한 전체 비밀키 복구 부채널 공격 방법을 제안한다. 그리고 ARM Cortex-M4 기반 MCU 환경에서 비밀키 일부에 대한 공격을 수행해 제안한 공격을 실험적으로 검증한다.

NCC-Sign에 대한 비밀키 복구 부채널 공격을 제안했다. NCC-Sign의 비밀 계수와 공개 값의 계수별 곱셈 후 몽고메리 리덕션 연산 부분의 전력 파형에 CPA를 적용하는 방법을 최초로 제시하고 ARM Cortex-M4 기반 MCU 환경에서 수집한 5,000개의 전력 파형을 사용해 비밀키 계수를 복구했다.

MQ-Sign에 대한 신규 비밀키 복구 부채널 공격을 제안했다. MQ-Sign의 비밀키 행렬과 공개 값 벡터의 행렬 벡터 곱셈 연산 부분의 전력 파형에 CPA를 적용하는 방법을 최초로 제시하고 ARM Cortex-M4 기반 MCU 환경에서 수집한 5,000개의 전력 파형을 사용해 비밀키 행렬 일부를 복구했다.

[Organization]

본 논문의 구성은 다음과 같다. 2장에서 상관 전력 분석과 각 Lattice, Multivariate Quadratic, 기반 전자서명과 부채널 분석 동향을 설명한다. 3장과 4장은 각각 NCC-Sign과 MQ-Sign의 알고리즘 구조 및 CPA 방법을 설명한 후 검증 실험 결과를 설명한다. 이후 5장에서 결론을 맺으면서 마무리한다.

II. 배경지식 및 관련 연구

2.1 상관 전력 분석

CPA는 가설 소비전력 Hk와 실제 소비전력 A와의 피어슨 상관계수 rA,Hk를 이용해 비밀키를 복구하는 부채널 분석 기법이다[3]. X, Y가 확률변수라고 할 때, Cov(X, Y)는 X, Y의 공분산, σX가 X의 표준편차라고 하면, 피어슨 상관계수 rA,Hk의 수식은 다음과 같이 표현된다.

\(\begin{align}r_{A, H_{k}}=\frac{\operatorname{Cov}\left(A, H_{k}\right)}{\sigma_{A} \cdot \sigma_{H_{k}}},\left(-1 \leq r_{A, H_{k}} \leq 1\right)\end{align}\)       (1)

먼저 CPA 대상 중간값을 설정하고 대상 중간값에 대한 소비전력 A를 수집한다. 그리고 비밀키 k를 추정함으로써 대상 중간값의 가설 소비전력 Hk를 계산한다. 가설 소비전력이 타당하게 계산됐을 때, 즉 비밀키 k가 올바르게 추정됐을 때 rA,Hk 값은 1에 가까울 것이고 그렇지 않다면 상대적으로 낮은 값일 것임을 추정할 수 있다. 따라서, 가능한 모든 k에 대해 rA,Hk를 계산하고 가장 높은 상관계수를 가진 k를 비밀키로 판단한다.

CPA를 수행하기 위해서는 소비전력 모델, 소비 전력 수집, 대상 중간값 설정이 필요하다. 소비전력 모델은 가설 소비전력 Hk를 수식적으로 표현하는 모델을 의미하며, 실제 소비전력 A에 얼마나 근사하는가를 결정하는 요인으로서 CPA 성능에 관여한다. 소비전력 수집은 어떤 중간값을 대상으로 했을 때 전력을 수집하는 장비, 방식, 수집 시점, 신호 처리 기술 적용 여부 등을 의미한다. 이는 수식적으로 표현되는 가설 소비전력인 Hk가 수집된 실제 소비전력 A와 얼마나 근사하는가를 결정하는 요인으로서 CPA 성능에 관여한다. 대상 중간값 설정은 CPA에서 A, Hk의 대상이 되는 암호 알고리즘의 중간값에 대한 설정을 의미한다. 이는 비밀키 k의 추정 단위를 결정하여 CPA의 계산 복잡도를 결정하고 올바른 추정키 rk의 상관계수 rA,Hk와 틀린 추정키 k′의 상관계수 rA,Hk′의 차이를 결정하여 CPA의 성능에 관여한다.

먼저 소비전력 모델은 대표적으로 해밍 웨이트(hamming weight), 해밍 디스턴스(hamming distance) 모델이 있다. 일반적으로 해밍 웨이트 모델은 대상 기기의 레지스터에 저장되는 데이터의 해밍 웨이트를 사용하며, 해밍 디스턴스 모델은 같은 레지스터에 저장되는 연속된 데이터의 해밍 디스턴스를 사용한다. 일반적으로 소프트웨어 구현된 MCU에서의 소비전력 모델로 해밍 웨이트 모델을 사용한다. 본 논문에서는 소비전력 모델로 해밍 웨이트 모델을 채택했다.

소비전력 수집의 수집 시점은 대상 중간값에 대한 연산이 수행되는 시점으로 설정해야 하므로 대상 중간값 설정에 종속된다. 대상 중간값은 비밀키 k의 추정 단위, 채택한 소비전력 모델과의 적합성, 키 추정에 따른 상관계수 rA,Hk의 이론적인 차이를 복합적으로 고려하여 결정해야 한다. 이는 대상 알고리즘 연산 및 구현 특성에 종속되므로 암호 알고리즘별로 적절한 중간값을 선택하여 CPA 공격 논리를 구성해야 한다.

2.2 Lattice 기반 암호

Lattice 기반 전자서명은 LWE(Learning With Errors), SIS(Shortest Integer Solution), NTRU와 같은 lattice에서의 수학적 난제를 이용하여 설계된 전자서명을 말한다. 다른 기반 문제 암호에 비해 빠르다는 장점이 있으며, 대표적인 lattice 기반 전자서명으로 NIST PQC 표준 전자서명 Dilithium[7], FALCON[8]과 KpqC 2라운드 전자서명으로 제출된 HAETAE[9], NCC-Sign[10]이 있다.

LWE를 기반으로 설계된 암호에서는 행렬 A∈Rk × lq와 비밀키 벡터 s∈Slη, 노이즈 벡터 e∈Skη를 생성하여 b = A ∙ s + e∈Rkq를 계산한다. 이때 s와 e의 각각의 계수는 [-η, η]의 값을 가진다. A와 b를 알고있어도 s를 복구하기 어려우므로 A, b를 공개키, s를 비밀키로 이용한다. Dilithium처럼 Fiat-Shamir Aborts 구조를 가진 경우 비밀 값과 메시지를 이용하여 챌린지 다항식을 생성 후 z = y + cs를 계산한다. 이때 Dilithium을 비롯한 많은 lattice 기반 전자서명들은 다항식 곱셈의 고속화를 위해 NTT(Number Thoeoretic Transform)를 이용한다.

하지만 NTT 곱셈은 부채널 분석 관점에서 취약점이 될 수 있다. 2021년 Chen 등[11]은 챌린지 다항식과 비밀키 다항식 간의 NTT 곱셈에 대해 비밀키 다항식의 계수를 추측하는 CPA를 통해 비밀키를 복구하는 방법을 제안했다. 동일한 연산 위치에 프로파일링 공격을 적용하여 비밀키를 복구하는 방법도 제안됐다[12]. NTT 곱셈뿐만 아니라 NTT 변환 과정을 머신 러닝으로 학습시켜 단일 파형으로 비밀키를 복구하는 연구도 제시됐다[13, 14]. 2022년에는 비밀키에 대한 정보를 노출시킬 수 있는 y를 샘플링하는 과정을 프로파일링하여 공격하는 방법[15, 16]도 제안되는 등 lattice 기반 암호에 대한 다양한 관점의 부채널 취약점에 관한 연구가 진행되고 있다.

2.3 Multivariate Quadratic 기반 암호

MQ 기반 전자서명은 큰 다변수 이차 방정식 시스템의 해를 구하는 MQ 문제의 어려움을 기반으로 설계된 전자서명 방법이다. UOV(Unbalanced Oil and Vinegar)[17] 방식의 MQ 기반 전자서명이 일반적이며 대표적으로 NIST 3라운드 제출된 Rainbow[18]가 있고 KpqC 2라운드 전자서명 후 보인 MQ-Sign[19]이 있다.

UOV 기반 전자서명은 가역이 쉬운 central map F와 가역 affine map Y를 생성해 비밀키로 사용하고 다변수 이차 다항식 P = F ∘ T가 공개키가 된다. 서명자는 메시지 m에 대한 해시값 w = H(m)을 계산하고, F와 T를 통해 z = T-1(F-1(w))를 계산한다. T는 가역이며, F는 가역이 쉬운 구조로 채택했으므로 랜덤한 vinegar 변수를 지정하면 쉽게 해를 구할 수 있다. 서명자는 서명 값으로 계산된 z를 검증자에게 보낸다. 검증자는 받은 z와 메시지 m으로 P(z) = H(m)인지 확인하여 서명을 검증한다. MQ 기반 전자서명에서 비밀키가 사용되는 주요 연산은 T 행렬 곱셈과 central map F에 대한 해를 찾는 연산이다.

Park 등은 UOV, Rainbow 전자서명 알고리즘에 대한 CPA를 제시했다[20]. 최적화를 위해 equivalent key를 이용하는 Rainbow 구현에서의 비밀 affine map S를 CPA로 복구하고, 대수적 키 공격을 통해 비밀 affime map T를 복구하여 전체 비밀키를 복구했다. 또한, 단일 계층 구조의 UOV에도 적용할 수 있음을 보였다. 한편, Aulbach 등은 UOV 서명 생성 과정의 단일 파형 공격을 통해 모든 vinegar 변수를 복구하고 Kipnis-Shamir 공격과 조합하여 모든 비밀키를 복구하는 방법을 제시했다[21].

III. NCC-Sign에 대한 부채널 공격

본 장에서는 lattice 기반 전자서명 NCC-Sign의 비밀키 복구 부채널 분석을 제시한다. 먼저 NCC-Sign의 서명 생성 알고리즘과 공격 대상 연산인 NTT 곱셈에 대해 설명하고, 구체적인 CPA 공격 논리를 제안한다. 또한 ARM Cortex-M4 기반 MCU STM32F303 환경에서 제안한 공격 논리에 대한 검증 실험 수행 결과를 소개한다.

3.1 공격 대상 연산

Fig. 1.은 NCC-Sign의 결정론적 서명 생성 알고리즘이다. 비밀키 다항식 s1,s2,t0는 각 9번, 15번 줄에서 챌린지 다항식 c와 곱해진다. 여기서 c는 서명 값으로 공개되는 정보인 \(\begin{align}\tilde{c}\end{align}\)를 통해 계산할 수 있는 값이며 서명 생성 시 매번 달라지는 값이고 s1,s2,t0은 키 생성 이후 장기적으로 사용하는 비밀정보다. 이때 t0를 유도하는 t 값은 s1,s2 값과 관계식 t = As1 + s2를 가진다. A와 t의 일부인 t1이 공개값이므로 t0을 복구하면 t를 계산할 수 있고, 결과적으로 s1,s2,t0 중 두 개의 값을 복구하면 나머지 하나는 단순 계산을 통해 복구할 수 있다.

JBBHCB_2024_v34n6_1545_4_f0001.png 이미지

Fig. 1. Algorithm of Signature generation of NCC-Sign

Fig. 2.는 NCC-Sign 1 trinomial version에서 사용되는 다항식 곱셉의 pseudo code를 나타낸 것이다. x[i]는 다항식 x의 i차 항의 계수를 의미하며 reduce는 몽고메리 리덕션 함수다. 2번 줄에서 입력으로 사용된 두 다항식 x, y의 i차 항의 계수를 곱한 후 3번 줄에서 해당 값에 몽고메리 리덕션을 수행한다. 이 과정을 전체 차수에 반복 수행한다.

JBBHCB_2024_v34n6_1545_5_f0001.png 이미지

Fig. 2. Algorithm of NCC-Sign Trinomial 1 poly_base_mul

Fig. 3.은 NCC-Sign Reference C code에서 사용하는 몽고메리 리덕션 함수의 코드다. 입력 a는 다항식의 계수의 곱을 int64_t로 자료형 변환을 적용한 것이며, QINV는 q×q-1 = 1 mod232를 만족하는 q-1다. 몽고메리 리덕션 결과인 t는 [-q + 1, q - 1]의 범위의 값을 만족한다. Fig. 3.의 알고리즘을 통해 cs1을 계산하는 것을 예로 들면, 다항식 x는 챌린지 다항식 c, 다항식 y는 s1이 된다.

JBBHCB_2024_v34n6_1545_5_f0002.png 이미지

Fig. 3. Montgomery Reduce in NCC-Sign Reference C code

3.2 공격 방법

본 절에서는 앞서 설명한 NCC-Sign의 곱셈 부분에 대한 구체적인 CPA 방법에 대해 설명한다.

3.1절에서 언급한 것과 같이 전체 비밀키 s1,s2,t0 중 두 개의 값을 복구하면 나머지 값을 계산할 수 있다. 따라서 Fig. 2.의 9번, 15번 줄에서 연산되는 cs1,cs2,ct0 값을 대상으로 각 비밀 정보 s1,s2,t0를 추측하는 CPA를 수행한다. 챌린지 다항식 c가 공개값이며, 다항식 곱셈이 Fig. 2.와 같이 NTT 기반 계수별 곱셈이므로 비밀키 계수별 CPA 수행이 가능하다. 예시로 다항식 곱셈 cs1을 수행할 때의 전력 소비를 측정한 후 각 i별로 s1[i]의 값을 추측하여 c[i] × s1[i] 값을 중간값으로 CPA를 수행할 수 있다. 그리고 reduce(c[i] × s1[i]) 출력과 내부 연산값들도 CPA 대상 중간값으로 사용할 수 있으며 대상 중간값에 따라 다른 연산 성질을 가지므로 CPA 결과 역시 달라질 수 있다. 이후 s1,s2,t0 중 하나의 값을 s로 표현하여 각 중간값의 특징에 대해 설명한다.

먼저 c[i] × s[i]를 중간값으로 사용할 때, s[i]의 추측 범위는 0부터 q - 1까지다. 하지만 이 경우 c[i] × s[i]와 c[i] × (s[i] ≪ n)의 해밍 웨이트가 같으므로 해밍 웨이트 모델에서 구분하기 어렵다. 따라서 유사한 상관계수를 가지는 s[i]가 다수 존재하게 된다.

두 번째로 reduce(c[i]×s[i])가 중간값으로 고려될 수 있다. 마찬가지로 이때의 s[i]의 범위도 0부터 q - 1까지다. 하지만 이 경우 s[i]의 올바른 추측 값을 rk라고 했을 때 -rk도 유사한 상관계수를 가진다. reduce(c[i] × rk ) = ⍺(⍺ ∈ [-q + 1, q - 1])라 했을 때 reduce(c[i] x (-rk)) = -⍺를 만족하게 된다. 따라서 reduce(c[i]×s[i])를 중간값으로 CPA 수행시 rk와 -rk는 서로 음의 상관관계를 가지므로 유사한 상관계수를 가진다.

본 논문에서 제안하는 CPA 방법은 reduce(c[i] x s[i])를 중간값으로 CPA를 수행하여(rk, -rk)의 쌍을 얻은 후 추가적인 CPA를 수행하는 것이다. 추가적인 CPA의 중간값은 Fig. 3.의 5번째 줄인 c[i] × s[i] × q-1로 설정하였다. -rk는 q-rk와 같으므로 후보 쌍의 합은 q가 된다. 이는 앞서 설명한 유사한 상관계수를 나오게 하는 경우에 해당하지 않으므로, CPA를 통해 두 후보 계수 중 올바른 계수를 추측할 수 있다. 각 비밀키 다항식 s1,s2,t0 중 두 가지를 위 방법으로 복구하면 나머지 하나의 비밀키 다항식을 계산하여 전체 비밀키를 복구할 수 있다.

3.3 실험 결과

본 절에서는 NCC-Sign 1 Reference C code를 대상으로 3.2절에서 제안한 reduce(c[i] x s[i]), c[i] × s[i] × q-1 중간값에 대한 CPA 공격에 대한 검증 실험을 수행했다. 실험 환경은 Fig. 4.와 같이 CW308UFO STM32F3 MCU와 CW-Lite 보드를 이용하였고 총 5000개의 파형을 수집했다.

JBBHCB_2024_v34n6_1545_6_f0001.png 이미지

Fig. 4. Experimental Setup

Fig. 5.는 NCC-Sign 1 Reference C code 서명 생성 중 챌린지 다항식 c와 비밀 다항식 간의 NTT 곱셈을 수행할 때의 소비되는 전력을 수집하여 나타낸 그래프다. Fig. 2.의 알고리즘에서 하나의 계수에 대한 계수 곱셈과 몽고메리 리덕션을 수행할 때의 전력 소비 구간을 나타냈다.

JBBHCB_2024_v34n6_1545_6_f0002.png 이미지

Fig. 5. Power Consumption trace of NTT Multiplication in NCC-Sign 1 (part of the operation on line 2-3 of Algorithm 2)

Fig. 6.은 reduce(c[i] x s[i])에서 s[i]를 올바르게 추측한 0x47447A로 known key CPA를 수행한 결과다. 상단의 그래프는 Fig. 5.와 같으며 하단의 그래프는 동일한 시점에서 옳은 키의 상관계수를 나타냈다. 몽고메리 리덕션이 시작되는 40포인트 부근부터 최대 0.91의 높은 상관계수를 가진다.

JBBHCB_2024_v34n6_1545_6_f0003.png 이미지

Fig. 6. Result of known key CPA(IV: reduce(c[i] x s[i])

Fig. 7.은 reduce(c[i] x s[i])를 중간값으로 CPA를 수행하였을 때의 가능한 s[i]별 상관계수를 나타낸 그래프다. 앞에서 설명한 것과 마찬가지로 두 개의 높은 상관계수를 가지는 후보 계수가 존재한다. 높은 상관계수를 가지는 0x38EE07과 0x47447A의 합은 NCC-Sign 1의 q와 같으므로 rk와 -rk의 관계를 만족한다.

JBBHCB_2024_v34n6_1545_6_f0004.png 이미지

Fig. 7. Result of reduce(c[i] x s[i]) CPA

Fig. 8.은 몽고메리 리덕션 내부 연산의 c[i] × s[i] × q-1를 중간값으로 CPA를 수행하여, 앞에서 얻은 0x38EE07과 0x47447A의 상관 계수를 비교한 그래프다. 마찬가지로 상단의 그래프는 Fig. 5.와 같으며, 동일한 시점의 상관계수를 나타낸 것이다. 빨간색 그래프는 0x47447A, 파란색 그래프는 0x38EE07의 상관계수를 의미한다. 올바른 계수인 0x47447A가 높은 상관계수를 가지므로 3.2절에서 제안한 방법을 통해 올바른 계수를 예측할 수 있음을 알 수 있다.

JBBHCB_2024_v34n6_1545_7_f0001.png 이미지

Fig. 8. Result of c[i] × s[i] × q-1 CPA

결과적으로 두 번의 CPA를 통해 비밀키 다항식의 계수 하나를 복구했으며, 나머지 계수 또한 동일한 연산이 수행되므로 이 과정을 반복하여 각 비밀키 다항식 s1,s2,t0를 복구할 수 있다.

IV. MQ-Sign에 대한 부채널 공격

본 장에서는 MQ 기반 전자서명 MQ-Sign의 비밀키 복구 부채널 공격을 제시한다. 먼저 서명 생성 알고리즘, 공격 대상 연산인 비밀키인 가역 행렬 곱셈 연산을 설명하고, 행렬 곱셈에서의 누적 합 출력을 이용한 비밀키 복구 CPA 공격 논리를 제안한다. 또한, 3장과 같은 환경에서 제안한 공격 방법으로 비밀키 계수를 복구한 실험 결과를 소개한다.

4.1 공격 대상 연산

Fig. 11.는 MQ-Sign-LR의 서명 생성을 간단히 나타낸 알고리즘이다. 1~6번 줄에서는 임의의 vinegar 값 sV를 선택하고 central map F가 선택된 vinegar 값에 대해 조건을 만족하는지 확인한다. 조건을 만족하면 메시지 m과 랜덤 salt 값 r의 해시 값인 h와 선택된 vinegar 값 sV에 대한 oil 변수 해 sO를 BMI(block matrix inversion) 기법으로 계산한다. 그리고 계산된 해 sO와 sV + T · SO를 계산해 서명으로 출력한다. T는 v×o 행렬로 행렬의 각 원소는 GF(28)에서 무작위로 결정된다. Fig. 9.의 12번 줄에서 T · SO는 v×o행렬과 열벡터의 곱셈이다. 각 행렬과 벡터의 각 원소는 GF(28)에서의 곱셈 및 덧셈을 통해 연산된다. Ti,j가 비밀키 T 행렬의 i번째 행(i∈{1, ..., v}), j번째 열(j∈{1, ..., o})의 원소라고 하면, T · SO는 v×1 열벡터가 되며 첫 번째 원소는 다음과 같이 표현될 수 있다.

JBBHCB_2024_v34n6_1545_7_f0002.png 이미지

Fig. 9. Algorithm of MQ-Sign-LR Signature generation

( T · SO)1,1 = Σ0j=1T1,j · sv+j       (3)

위 식에서 sO는 서명에 포함되어 출력되고 곱셈과 덧셈은 모두 GF(28)에서의 연산으로 수행된다.

Fig. 10.은 Fig. 9.의 12번 줄 행렬 벡터 곱셈 T · SO에 대한 KpqC 2라운드 MQ-Sign의 reference C 코드이다. matA는 T 행렬을 나타내고, b는 SO 벡터를 나타낸다. n_A_vec_byte는 o이고 n_A_width는 v이다. 먼저 gf256v_set_zero 함수로 c 배열을 0으로 초기화하고, gf256v_madd 함수를 통해 T 행렬의 열벡터와 sO 벡터의 원소 하나와 곱한 뒤 c에 누적하여 더한다. 이때, gf256v_madd 함수는 T 행렬의 열벡터를 4개의 GF(28) 원소로 분할하고 열벡터 4바이트를 sj와 한번에 곱한다. 예를 들어 열벡터 4바이트 (T1,1, T1,2,T1,3,T1,4)는 32비트 레지스터에 저장되며 32비트 단위의 비트별 AND, XOR 연산을 통해 병렬적으로 sv+1과의 곱셈이 수행된다.

JBBHCB_2024_v34n6_1545_7_f0003.png 이미지

Fig. 10. Matrix-vector multiplication in MQ-Sign Reference C code

4.2 공격 방법

본 절에서는 MQ-Sign의 행렬 벡터 곱셈 부분에 대한 CPA를 통해 비밀키를 복구하는 공격을 제안한다. 제안하는 공격은 Fig. 9.의 12번 줄의 행렬 곱셈 T · sO에 대한 CPA를 수행하여 비밀키 행렬 T를 복구한다. 최종적으로 복구된 T와 공개키 P를 통해 남은 비밀키 F까지 복구할 수 있다.

sO 값은 서명을 통해 공개되는 값이며 서명마다 가변적인 값이고 T는 고정된 비밀키이므로 T · sO 값은 CPA 대상 중간값으로 사용할 수 있다. 즉, 행렬 벡터 곱셈에서 각 Ti,j가 sv+j와 곱해진 Ti,j · sv+j 값이 CPA 공격 대상 중간값이 된다. 이 경우에 비밀키 Ti,j가 0인 경우, 공개값 sv+j와 관계 없이 모든 Ti,j · sv+j 가 0이므로 통계 분석이 어렵다는 문제점이 있다. 이는 다른 모든 Ti,j 추측값에 대해 낮은 상관계수를 가지면 Ti,j를 0으로 추정하여 해결할 수 있지만, Ti,j가 0일 때의 직접적인 상관계수 분석 결과를 포함하지 못하므로 분석의 신뢰성이 낮아질 수 있다. 또한, sv+j 값을 호출하는 동안의 전력 소모가 비밀키 Ti,j를 1로 추측했을 때의 Ti,j · sv+j 값의 전력 소모와 같아 CPA 결과에 영향을 줄 것이라는 문제점이 있다. 이는 두 연산의 시점 차이를 통해 Ti,j 값이 1인지 추정 가능하나 sv+j 값의 호출과 Ti,j · sv+j 연산은 연산 시간상 인접하기 때문에 CPA 대상 파형의 범위를 세밀하게 조정해야 한다.

두 문제를 해결하기 위해 단일 곱셈 결과 값인 Ti,j · sv+j 이 아닌 Σ0j=1 Ti,j · sv+j 값을 계산하는 동안의 누적값을 중간값으로 한다. 예를 들어 Σ0j=1 Ti,j · sv+j 값이 j 값에 따라 순서대로 연산된다고 가정하면 Ti,j · sv+1가 연산된 후, Ti,1 · sv+1 + Ti,2 · sv+2가 연산된다. 여기서 0이 아닌 Ti,1를 이미 복구했다고 가정하면 Ti,1 · sv+1 + Ti,2 · sv+2 값은 Ti,2를 추측함으로써 계산할 수 있는 중간값이지만 Ti,2가 0일 때도 전체값이 0이 아니며 서명마다 변하는 값이므로 CPA가 가능하여 첫 번째 문제가 해결된다. 또한, Ti,1 · sv+1 + Ti,2 · sv+2 값은 추측된 Ti,2에 따라 sv+2 값과 유사하지 않으므로 두 번째 문제가 해결된다.

CPA 공격과정은 다음과 같다. Ti,1 · sv+1을 중간값으로 8비트 추측 CPA를 수행한다. 이때 모든 추측키 Ti,1에 대해 낮은 상관계수를 가진다면 Ti,1이 0이라고 판단할 수 있다. 이 경우 다음 Ti,2 · sv+2를 중간값으로 8비트 추측 CPA를 다시 수행한다. Ti,1, Ti,2, ..., Ti,k-1을 CPA로 복구했다면 Σkj=1 (Ti,j · sv+j)를 중간값으로 Ti,k에 대한 8비트 추측 CPA를 수행한다. Ti,k(K > 1) 추측 CPA를 수행할 때 이전 추측키 Ti, k-1를 이전 CPA의 1위 후보키로 고정하지 않고 상위 후보 내에서 추측하도록 하면 분석의 계산 복잡도는 증가하지만 전체 CPA 결과의 신뢰성을 향상시킬 수 있다.

총 v×o번의 CPA를 통해 전체 T값을 복구할 수 있다. 이후 공개키 P와 T를 이용해 F를 계산하여 전체 비밀키를 복구할 수 있다.

4.3 실험 결과

본 절에서는 MQ-Sign-LR 보안 강도 128비트 Reference C code를 대상으로 4.2절에서 제안한 Σ0j=1 Ti,j · sv+j 중간값에 대한 CPA 공격에 대한 검증 실험을 수행했다. MQ-Sign-LR 보안 강도 128 비트 알고리즘으로 3.3절과 동일한 실험 환경에서 전력 파형을 수집했다. 공격 대상 코드는 KpqC 2라운드에 제출된 참조구현 C 코드를 사용했다.

Fig. 11.은 MQ-Sign-LR 서명 생성 중 T1,1 · sv+1 + T1,2 · sv+2에서부터 Tv,1 · sv+1 + Tv,2 · sv+2가 연산되는 동안의 전력 파형의 일부이다. 4바이트 T1,1, T2,1, T3,1, T4,1가 병렬적으로 처리되어 같은 시간 위치에 부채널 정보가 존재한다. 이 계산 과정에서 T1,2 · sv+2를 계산한 뒤, 이전에 계산한 T1,1 · sv+1 를 불러와서 덧셈을 수행하므로 T1,1 · sv+1에 대한 CPA를 수행할 수 있다. 해당 부분의 파형 5,000개를 수집하여 T1,1 · sv+1 를 대상 중간값으로 선택하여 8 비트 추측 CPA를 수행했다.

JBBHCB_2024_v34n6_1545_9_f0001.png 이미지

Fig. 11. Power consumption trace of MQ-Sign-LR(part of the operation on line 12 of Algorithm 3)

Fig. 12.는 Fig. 11.의 전력 파형의 1000~1800 포인트를 대상으로 T1,1 · sv+1 값을 올바르게 추측한 T1,1로 계산한 CPA 결과이다. Fig. 12.의 위 그래프는 Fig. 11.의 전력 파형의 1000~1800 포인트이며, 아래 그래프는 위 그래프에 대한 시점별 옳은 키의 상관계수이다. T1,1 · sv+1 값을 불러오는 부분에서 0.31의 상관계수를 가졌다.

JBBHCB_2024_v34n6_1545_9_f0002.png 이미지

Fig. 12. Result of known key CPA(IV: T1,1 · sv+1)

Fig. 13.은 T1,1 · sv+1 값에 대한 CPA 결과로 각 추측된 T1,1에 대한 최대 상관계수 절댓값을 나타낸다. 4.1절에서 언급한 것과 같이, T1,1, T2,1, T3,1, T4,1 4바이트가 병렬로 sv+1과 곱셈 연산되므로 4바이트 각각의 키가 높은 상관계수를 가졌다. 각 4바이트의 키인 T1,1=0xB4, T2,1=0xEC, T3,1=0x25, T4,1=0x48이 1~4등 상관계수를 가지는 것을 볼 수 있다.

JBBHCB_2024_v34n6_1545_9_f0003.png 이미지

Fig. 13. Result of 8-bit guess CPA(IV: T1,1 · sv+1)

복구한 T1,1, T2,1, T3,1, T4,1를 이용해 다음 T1,2, T2,2, T3,2, T4,2에 대한 CPA를 수행할 수 있다. 먼저 T1,2를 복구하기 위해 T1,1 · sv+1 + T1,2 · sv+2 + T1,3 · sv+3가 연산되는 동안의 전력 파형 5,000개를 수집하여 T1,1 · sv+1 + + T1,2 · sv+2를 대상 중간값으로 선택하여 8 비트 추측 CPA를 수행했다. 이때, T1,1은 이전 CPA 결과로 복구한 0xB4로 가정하고 T1,2만 추측했다. Fig. 14.는 T1,1 · sv+1 + T1,2 · sv+2 값에 대한 CPA 결과로 각 추측된 T1,2에 대한 최대 상관계수 절댓값을 나타낸다. T1,2, T2,2, T3,2, T4,2 4바이트가 병렬로 sv+2와 곱셈 연산되지만 T1,1, T2,1, T3,1, T4,1가 모두 다르고 대상 중간값이 T1,1 · sv+1를 포함하므로 T1,2=0x59에 대한 상관계수만이 유의미한 값을 가졌다. 같은 방법으로 Σ2j=1(T2,j · sv+j), Σ2j=1(T3,j · sv+j), Σ2j=1(T4,j · sv+j)에 대한 CPA로 T2,2, T3,2, T4,2를 복구할 수 있다.

JBBHCB_2024_v34n6_1545_9_f0004.png 이미지

Fig. 14. Result of 8-bit guess CPA(IV: T1,1 · sv+1 + T1,2 · sv+2)

이를 Tv,0까지 반복하여 비밀키 행렬 T 전체를 복구할 수 있다. 이때, 각각의 CPA가 모두 성공해야 Tv,0 전체의 값을 옳게 복구할 수 있으므로, 4.2절에서 언급한 대로 이전 첨자에 대한 CPA의 상위 후보를 같이 추정해 CPA의 신뢰도를 높이는 등의 방법을 적용할 수 있다.

V. 결론

본 논문은 KpqC 2라운드 전자서명 NCC-Sign과 MQ-Sign에 대한 비밀키 복구 부채널 공격을 제안했다. 각각의 전자서명 알고리즘의 구조와 구현 특성에 따라 CPA 공격 지점을 탐색하고 실제 분석 예시를 통해 제안된 공격의 실효성을 입증했다. ARM Cortex M4 기반 STM32F3 MCU 환경에서 각 전자서명 알고리즘을 동작시키고 소비전력을 수집하여 제안한 공격 방법으로 비밀키 일부를 예시로 복구했다.

NCC-Sign의 경우, 챌린지 다항식과 비밀키 다항식의 NTT 곱셈 과정의 전력 파형을 수집하여 CPA를 수행했다. 먼저 계수별 곱셈 후 몽고메리 리덕션의 출력값을 중간값으로 CPA를 수행하여 비밀계수 후보쌍을 복구했다. 이후, 몽고메리 리덕션의 내부 연산인 q-1과의 곱셈 부분을 중간값으로 CPA를 수행하여 올바른 계수를 복구하는 방법을 통해 비밀키 계수를 복구했다. MQ-Sign의 경우 행렬 곱셈 T · sO의 전력 파형을 수집하여 CPA를 수행했다. Ti,j가 0인 경우와 sv+j를 호출할 때의 전력과 같은 높은 상관계수를 가지는 경우를 방지하기 위해 Σ0j=1Ti,j · sv+j를 계산할 때의 누적값을 중간값으로 설정하여 비밀키 행렬 일부를 복구했다. 제안한 공격은 NCC/MQ-Sign의 다른 비밀키 계수에도 적용될 수 있으며 이를 통해 전체 비밀키를 복구할 수 있다.

본 논문은 각 KpqC 전자서명 후보 2종에 대한 부채널 취약점의 예시를 보여주며 부채널 대응기법 연구의 필요성을 제기한다. NIST PQC 알고리즘의 경우 이러한 부채널 공격 대응기법인 마스킹, 하이딩의 적용에 대한 연구가 수행되고 있다. 향후 KpqC 알고리즘에 대한 다른 부채널 취약점에 대한 분석과 부채널 대응기법인 마스킹, 하이딩 적용 및 안전성 검증 연구가 필요하다.

References

  1. P. Kocher, ''Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems,'' Advances in Cryptology, CRYPTO'96, LNCS 1109, pp. 104–113, 1996.
  2. P. Kocher, J. Jaffe, and B. Jun, "Differential power analysis," Advances in Cryptology, CRYPTO'99, LNCS 1666, pp. 388-397, 1999.
  3. E. Brier, C. Clavier, and F. Olivier, "Correlation power analysis with a leakage model," Cryptographic Hardware and Embedded Systems, CHES 2004, LNCS 3156, pp. 16-29, 2004.
  4. S. Chari, J.R. Rao, and P. Rohatgi, ''Template attacks,'' Cryptographic Hardware and Embedded Systems, CHES 2002, LNCS 2523, pp. 13–28, 2003.
  5. G. Hospodar, B. Gierlichs, E. De Mulder, I. Verbauwhede, and J. Vandewalle, ''Machine learning in side-channel analysis: A first study,'' Journal of Cryptographic Engineering, vol. 1, no. 4, pp. 293–302, Dec. 2011. https://doi.org/10.1007/s13389-011-0023-x
  6. P. Ravi, A. Chattopadhyay, J.P. D'Anvers, and A. Baksi, "Side-channel and fault-injection attacks over lattice-based post-quantum schemes (Kyber, Dilithium): Survey and new results," ACM Transactions on Embedded Computing Systems, vol 23, pp. 1-54, Mar. 2024. https://doi.org/10.1145/3603170
  7. L. Ducas, E. Kiltz, T. Lepoint, V. Lyubashevsky, P. Schwabe, G. Seiler,and D. Stehlé, 'Crystals-dilithium: A lattice-based digital signature scheme,' IACR Transactions on Cryptographic Hardware and Embedded Systems, vol. 2018, no. 1, pp. 238-268, Feb. 2018.
  8. P.A. Fouque, J. Hoffstein, P. Kirchner, V. Lyubashevsky, T. Pornin, T. Prest, T. Ricosset, G. Seiler, W. Whyte, and Z. Zhang, 'Falcon: Fast-Fourier lattice-based compact signatures over NTRU,' Submission to the NIST's post-quantum cryptography standardization process 36.5, pp. 1-75, 2018.
  9. J.H. Cheon, H. Choe, J. Devevey, T. Güneysu, D. Hong, M. Krausz, G. Land, M. Möller, D. Stehlé, and M. Yi, 'Haetae: Shorter lattice-based fiat-shamir signatures,' IACR Transactions on Cryptographic Hardware and Embedded Systems, vol. 2024, no. 3, pp. 25-75, Jul. 2024.
  10. K.A. Shim, J. Kim, and H. Kwon, 'NCC-Sign: A New Lattice-based Signature Scheme using Non-Cyclotomic Polynomials and Trinomials,' KpqC Competition Round 2, 2024.
  11. Z. Chen, E. Karabulut, A. Aysu, Y. Ma, and J. Jing, "An efficient non-profiled side-channel attack on the CRYSTALS-Dilithium post-quantum signature," 2021 IEEE 39th International Conference on Computer Design (ICCD). pp. 583-590, Dec. 2021.
  12. A.P. Fournaris, C. Dimopoulos, and O. Koufopavlou, "Profiling dilithium digital signature traces for correlation differential side channel attacks." International Conference on Embedded Computer Systems, LNCS 12471, pp. 281-294, Oct. 2020.
  13. l.J. Kim, T.H. Lee, J. Han, B.Y. Sim, and D.G. Han, 'Novel single-trace ML profiling attacks on NIST 3 round candidate Dilithium,' Cryptology ePrint Archive, 2020.
  14. J. Han, T. Lee, J. Kwon, J. Lee, I.J. Kim, J. Cho, D.G. Han, and B.Y. Sim, 'Single-trace attack on NIST round 3 candidate Dilithium using machine learning-based profiling,' IEEE Access, vol. 9, pp. 166283-166292, Dec. 2021. https://doi.org/10.1109/ACCESS.2021.3135600
  15. S. Marzougui, V. Ulitzsch, M. Tibouchi, and J.P. Seifert, "Profiling side-channel attacks on Dilithium: A small bit-fiddling leak breaks it all," Selected Areas in Cryptography: 29th International Conference, SAC 2022, LNCS 13742, pp. 3-32, May. 2024.
  16. Z. Qiao, Y. Liu, Y. Zhou, J. Ming, C. Jin, and H. Li, 'Practical public template attacks on CRYSTALS-dilithium with randomness leakages,' IEEE Transactions on Information Forensics and Security, vol. 18, pp. 1-14, Oct. 2022. https://doi.org/10.1109/TIFS.2022.3215913
  17. A. Kipnis, J. Patarin, and L. Goubin, "Unbalanced oil and vinegar signature schemes," Advances in Cryptology, EUROCRYPT'99, LNCS 1592, pp. 206-222, Jan. 1999.
  18. J. Ding and D. Schmidt, "Rainbow, a new multivariable polynomial signature scheme," International conference on applied cryptography and network security, LNCS 3531, pp. 164-175, 2005.
  19. K.A. Shim, J. Kim, and Y. An, 'Mq-sign: A new post-quantum signature scheme based on multivariate quadratic equations: Shorter and faster,' KpqCCompetition Round 2, 2024.
  20. Aesun Park, K.A. Shim, N. Koo, and D.G. Han, Side-channel attacks on post-quantum signature schemes based on multivariate quadratic equations:-rainbow and uov.'IACR Transactions on Cryptographic Hardware and Embedded Systems, vol. 2018, no. 3. pp. 500-523, Aug. 2018.
  21. T. Aulbach, F. Campos, J. Kramer, S. Samardjiska, and M. Stottinger, Separating Oil and Vinegar with a Single Trace: Side-Channel Assisted Kipnis-Shamir Attack on UOV.' IACR Transactions on Cryptographic Hardware and Embedded Systems, vol. 2023. no.3. pp. 221-245, Jun. 2023. https://doi.org/10.46586/tches.v2023.i3.221-245