I. 서론
부채널 분석은 암호 장비에서 암호 알고리즘이 동작할 때 발생하는 전력, 전자기파 등을 통해 비밀 정보를 획득하는 분석 기법이다 [1]. 부채널 분석 공격은 암호 알고리즘의 안전성을 쉽게 훼손하여 비밀정보를 노출될 수 있으므로 부채널 분석 대응 기법에 관한 연구는 필수적이다.
마스킹 기법은 대표적인 부채널 분석 대응 기법으로, 난수를 사용하여 암호화 연산 과정의 모든 중간값을 여러 개의 랜덤한 공유(shares)로 분리하여 중간값을 보호하는 기법이다. 특히 차분 전력 분석[1], 상관 전력 분석 [2] 등을 사용하여 공격하는 통계적 전력 분석에 대해 효과적이다. 고차 마스킹 기법은 마스킹 기법을 확장한 기법으로 보호하고자 하는 비밀 값 x에 대해 t+1 공유로 분리하여 보호하는 기법으로 다음과 같이 표현된다. 이때 ∗는 마스킹 기법에 따라 달라지며 대표적인 마스킹 기법 연산인 부울린 마스킹 기법은 ∗를 ⊕로 연산한다.
x = x0 * … * xd (1)
고차 마스킹 기법은 고차 차분 전력 분석 [3]에 효과적으로 대응할 수 있어 활발히 연구되고 있다. 그러나 고차 마스킹 기법은 대량의 난수를 사용하고 분리된 모든 공유를 활용하여 연산을 수행하기 때문에 기존 연산에 비해 큰 오버헤드를 갖는다. 따라서 효율적인 고차 마스킹 기법이 필수적이다.
이전 [4] 논문이 제안한 기법은 합성체(composite field)와 룩업 테이블(look-up table)을 활용하여 고차 AES S-Box 마스킹 기법을 제안하였지만 t-프로빙 안전성을 만족하기 위해 최소 t+1 공유로 나누면 부채널 안전성이 보장되지 않아 2t+1 공유로 나누어야 한다 [5]. 본 논문은 [4] 논문이 실제 3 공유일 때 2차 프로빙 모델[6]에서 이론적으로 공격 가능함을 제시하고, 3 공유일 때 파형을 수집 후 2차 상관 전력 분석을 통해 실제 키가 복구됨을 확인한다. 그리고 Test Vector Leakage Assessment(TVLA) [7] 시험 검증에 실패함을 확인한다.
본 논문은 해당 부분을 개선하여 t+1 공유로 나누어도 t-프로빙 안전성을 만족하도록 기법을 변경하고 내부 중요 연산을 수정하였다. 또한 공통 곱셈(common multiplication) 기법[8]을 적용하여 필요한 랜덤 바이트 수와 연산량을 감소시켜 성능을 향상시켰으며, 커플링 현상 중 오버라이팅 효과(overwriting effect) [9]를 제거하여 실제 부채널 분석 환경 상에서 안전하도록 구성하였다.
제안한 고차 AES S-Box 마스킹 기법에 대해 “t+1 공유로 나누었을 때, t-프로빙 안전성을 만족한다“를 이론적으로 증명하여 t차 통계적 전력 분석의 이론적 안전성을 증명했고, 실제 전력 파형을 수집하여 2차 상관전력분석 및 1차 TVLA 시험[7]와 2차 다변수 TVLA 시험[10]를 수행하여 실제 환경상에서 부채널 분석에 대한 안전성을 검증하였다. 본 논문이 제안한 고차 AES S-Box 마스킹과 같은 SNI 안전성을 만족하는 다른 고차 AESS-Box 마스킹과 2차 안전성을 만족할 때 성능 비교 결과, 사용되는 랜덤 바이트 수를 최소 42% 줄이고 클록 사이클 (clock cycle)을 76% 줄여 성능이 향상했음을 보였다. 그리고 취약점을 증명한[4] 논문과 비교했을 때, 약 37% 클록 사이클을 줄였으며, 약 54%의 랜덤 바이트 수를 줄여 효율적임을 보였다. 본 논문의 구성은 다음과 같다.
2장에서 관련 연구에 관해 설명하며, 3장에서 [4]논문이 t+1 공유일 때, t차 프로빙security를 만족하지 않음을 이론적, 실험적으로 증명한다. 그리고 4장에선 본 논문이 제안한 t-SNI 안전성을 가진 효율적인 고차 AES S-Box 마스킹 기법에 관해 설명한다. 5장에서는 다른 고차 AES S-Box 마스킹 기법과 성능 비교한 결과를 제시하고, 마지막 6장에서 결론을 맺는다.
II. 관련 연구
2.1 표기법
본 논문에서 주어진 비밀 변수 x∈𝔽2k와 정수 d에 대하여 만약 d개의 공유를 가지는 x = ⊕di=0xi의 공유 벡터를 xi(0 ≤ i ≤ d-1)∈(F2k)d로 표기한다. 그리고 m개의 입력 변수는 xj(0 ≤ j ≤ m-1)∈(F2K)m로 표기한다.
2.2 프로빙 모델 보안 증명 개념
최근 제안된 마스킹 기법에 관한 연구는 일반적으로 t-프로빙 모델 [6]에 안전하다는 증명과 함께 제시된다. t-프로빙 모델 [6]은 탐지하고자 하는 t개의 중간 연산을 선택할 수 있으며 그에 해당하는 중간 연산 값을 관측할 수 있는 공격자를 가정한다. 가젯이 t-프로빙 모델에 안전하기 위해서 정의 1을 만족해야 한다.
정의 1 (t-프로빙 안전성[6]). 만약 가젯이 실행 중에 공격자가 어떠한 t보다 작거나 같은 개수의 중간 연산을 골랐을 때, 고른 중간 연산의 결합 분포가 비밀 변수와 통계적으로 독립이면 해당 가젯은 t-프로빙 안전성을 만족한다.
가젯이 작을 경우, 프로빙 안전성을 만족함을 증명하는 것은 어렵지 않다. 그러나 AES S-Box 연산과 같이 가젯이 클 경우 프로빙 안전성을 만족함을 입증하는 것은 시간과 자원이 지수함수적으로 많이 필요하다. 또한 프로빙 안전성을 만족하는 가젯끼리 연접하여 결합할지라도 프로빙 안전성을 만족하지 않는 경우도 존재한다 [5]. 2016년, Barthe 등은 각 가젯끼리 결합했을 때, 프로빙 안전성을 만족함을 증명할 수 있게 할 수 있는 프로빙 안전성보다 더 강한 보안 개념인 non-interference(NI), strong non-interference(SNI)를 소개했다 [11]. NI와 SNI는 Belaïd가 제안한 시뮬레이션 (simulation) 기반으로 증명된다. 직관적으로 설명하면, 만약 가젯에서 공격자가 t개의 중간값을 선택하여, 실제 가젯이 동작할 때 t개의 중간값의 통계적 분포를 알아낼 수 있으면 시뮬레이션 가능성 (simulatability)이라고 한다.
정의 2 (시뮬레이션 가능성). 가젯 G의 t개의 프로브 집합 P = {p1, …, pt}라고 하고 실행 중인 G에서 프로브의 값을 포함하는 튜플을 GP라고 하자. 그리고 G의 입력 변수가 m개, 공유 개수가 d개라고 했을 때, G에 대한 입력 공유 집합 I = {(i1, j1), …, (ik, jk)} ⊂ {0, …, d-1} × {0, …, m-1}라고 하자. 여기서 시뮬레이터 S:Fkq→Flq 는 확률론적(randomized) 함수다. 프로브 집합 P가 입력 공유 집합 I로 시뮬레이션 될 수 있다(simulated)는 것은, 모든 입력값 x**에 대해, GP(x**)의 확률 분포를 집합 S(xj1i1, …, xjkik)가 동일함을 의미한다.
Barthe 등이 제안한 t-NI와 t-SNI는 다음과 같다.
정의 3(t-NI[11]). 가젯이 t-NI일 필요충분조건은 t′ ≤ t개를 만족하는 모든 내부 프로브 집합이 각각 입력의 최대 t′개의 공유만으로 시뮬레이션 되어야 한다.
정의 4(t-SNI[11]). 가젯이 t-SNI일 필요충분조건은 모든 내부 프로브 집합 I (t1개의 내부 프로브) 와 모든 출력 프로브 집합 O (t2개의 출력 프로브) 에 대해 만약 t1 + t2 ≤ t를 만족한다면, 프로브 집합 I∪O가 각 입력의 t1개의 공유만으로 시뮬레이션 되어야 한다.
만약 가젯이 t-NI 또는 t-SNI를 만족한다면, 해당 가젯은 프로빙 안전성을 만족한다.
2.3 선형 함수에 대한 고차 마스킹
선형 연산의 additive property로 인해 선형 연산에 불리안 마스킹 기법을 적용할 경우, 다음과 같은 식을 만족한다.
f(x0 ⊕ ... ⊕ xd) = f(x0) ⊕ ... ⊕ f(xd) (2)
따라서 선형 연산에 대해 마스킹 기법을 적용하는건 어렵지 않다. 또한 해당 식의 선형 연산은 t+1의 공유로 나뉘었을 때, t-NI를 만족한다. 보조정리1에서 선형 연산은 t+1의 공유로 나뉘었을때, t-NI를 만족함을 증명한다.
보조정리 1 (t+1개의 공유를 연산하는 선형 마스킹은 t -NI이다. )
증명) 선형 마스킹의 입력을 ai(0 ≤ i ≤ t), bi(0 ≤ i ≤ t)라고 하고 출력을 ci(0 ≤ i ≤ t)라고 하자.
선형 마스킹 연산이 t-NI를 만족하기 위해서 선형 마스킹 연산 중간값인 ai(0 ≤ i ≤ t), bi(0 ≤ i ≤ t), ci(0 ≤ i ≤ t) 중 t′ ≤ t개의 중간값이 각 입력의 최대 t′개 입력 공유로 시뮬레이션되어야 한다.
t1 + t2 = t′을 만족하는 t1개의 중간 프로브와 t2개의 출력 프로브가 있다고 가정하자. ai(0 ≤ i ≤ t), bi(0 ≤ i ≤ t)에서 t1개 프로빙 한 경우 자신을 통해 시뮬레이션 할 수 있기 때문에 최대 t1개의 각 입력 공유가 필요하다. ci(0 ≤ i ≤ t)에서 t2개 프로빙 한 경우 각 (a0, b0), ...(ad, bd) 중 t2개를 시뮬레이션 해야 하고, 이는 t2개의 입력 공유로 충분히 시뮬레이션 된다. 따라서 t′개 이하의 입력 공유로 시뮬레이션 되기 때문에 t-NI를 만족한다.
2.4 비선형 함수에 대한 고차 마스킹
선형 연산과 달리, 비선형 연산은 additive property를 만족하지 않기 때문에 다음과 같은 식을 만족한다.
f(x0 ⊕ ... ⊕ xd) ≠ f(x0) ⊕ ... ⊕ f(xd) (3)
따라서 비선형 연산에 대해 마스킹 기법을 적용하는 것은 어렵다. AND 연산은 AES의 연산 중 유일한 비선형 연산이기 때문에 AND 연산에 대한 마스킹 적용 관련 연구와 refreshmask에 관한 연구가 활발히 진행되고 있다.
2.4.1 고차 곱셈 마스킹
고차 곱셈 마스킹에 관한 연구는 프로빙 모델을 제안한 Ishai 등의 곱셈 기법 [6]을 기반으로 많은 연구가 진행되고 있다. Fig. 1은 ISW 고차 곱셈 마스킹 알고리즘이다.

Fig. 1. ISW multiplication masking algorithm
Fig.2는 Coron multiplication 알고리즘이다[12]. 해당 알고리즘은 ISW 곱셈 마스킹을 개선하여 t+1 공유로 나누었을 때 t-SNI를 만족하도록 디자인한 고차 곱셈 마스킹 연산 기법이다. 이는[13]과 [8]에서 증명하였다.

Fig. 2. Coron multiplication masking algorithm
2.4.2 Refreshmask
Refreshmask란 부채널 분석을 방지하기 위해 연산 과정상의 공유를 랜덤 바이트를 이용하여 무작위화하는 기법이다. 따라서 refreshmask를 적절히 사용하면 프로빙 안전성을 달성할 수 있다. Fig.3은 [14]의 refreshmask 알고리즘이다. [14]의 refreshmask 알고리즘은 t+1 공유일 때, t-NI를 만족한다. Fig.4는 [11]의 refreshmask 알고리즘이다. Fig.4는 t+1 공유로 나누었을 때 t-SNI를 만족한다. 이는 [13]과 [8]에서 증명하였다.

Fig. 3. [14] refreshmask masking algorithm

Fig. 4. [11] refreshmask masking algorithm
2.5 고차 AES S-Box 마스킹 기법
2.5.1 지수승 기반 AES S-Box 마스킹 기법
2010년 Rivain 등은 AES S-Box 연산 중 역원 연산에서 x-1 = x254를 이용하여 계산하는 고차 AES S-Box 마스킹 기법을 제안했다 [14].
2016년 Coron 등은 공통 곱셈 기법을 적용하여 Rivain-Prouff의 AES S-Box masking 기법의 성능을 향상시켰다 [8]. 공통 곱셈은 공통 공유(common shares)의 공통 인자를 이용하여 기존 곱셈보다 효율적으로 계산하는 곱셈 마스킹 기법[8]이다. 공통 공유란 두 개의 서로 다른 값 a, b가 주어졌을 때, a의 공유와 b의 공유 중 절반 이하가 같은 경우다. 즉 a와 b가 d+1개의 공유를 가진다고 가정할 때 다음과 같은 식을 만족하면 공통 공유를 만족한다.
ai = bi for all 0 ≤ i ≤ (d - 1)/2 (4)
c ∙ a, c ∙ b를 계산하기 위해선 총 2(d+1)2의 연산량이 필요하다. 하지만 만약 a와 b가 공통 공유일 경우 곱셈 연산 결과 중 일부는 다음과 같은 식인 ci ∙ aj = cj ∙ bj (0 ≤ i ≤ d, 0 ≤ j ≤ d/2)를 만족한다. 따라서 ci ∙ aj를 계산하면 ci ∙ bj가 동일한 값이기 때문에 계산을 생략하여 연산량을 줄일 수 있다. 공통 곱셈이란 위와 같이 공통 공유를 이용해서 전체적인 곱셈 연산량을 줄이는 기법이다. Coron 등은 S-Box 역연산 계산 과정에서 지수승 계산하는 방식을 [15] 방법으로 변경했다. 식 (5)는 [15] 계산 방식이다.
\(\begin{align}x \xrightarrow{S} x^{2} \xrightarrow{M} x^{3} \xrightarrow{2 S} x^{12} \xrightarrow{M} x^{14}, x^{15} \xrightarrow{16 S} x^{240} \xrightarrow{M} x^{254}\end{align}\) (5)
이 계산 방식은 연산 과정상에서 x12의 공통인자와 x2, x3을 통해 x14, x15를 연산한다. 따라서 Coron 등은 x2, x3을 공통 공유로 변환한 후 공통 곱셈을 적용하여 오버헤드를 감소하였다.
Coron 등은 기존 곱셈 마스킹 연산이 d 공유일때 t-프로빙 안전성을 만족하면 공통 곱셈 역시 d 공유일 때 t-프로빙 안전성을 만족할 수 있음을 증명하여, 기존 곱셈 연산 대신 공통 곱셈 연산을 사용해도 t-프로빙 안전성이 저하되지 않음을 입증했다.그리고 [8]의 보조 정리 5를 통해 곱셈 마스킹 연산이 t-SNI를 만족한다면 공통 곱셈 또한 t-SNI를 만족함을 증명했다.
Coron 등은 Fig. 2 곱셈 마스킹 알고리즘과 Fig.4 refreshmask 알고리즘과 공통 곱셈 기법을 사용하여, 고차 AES S-Box 마스킹 알고리즘을 설계하고 t+1 공유일 때 t-SNI를 만족함을 증명했다.
2.5.2 합성체와 룩업 테이블 기반 AES S-Box 마스킹 기법
2011년 Kim 등은 AES S-Box를 합성체로 표현한 후 룩업 테이블을 이용한 고차 마스킹 기법을 제안했다 [4]. Fig. 5는 합성체와 룩업 테이블 기반 고차 AES S-Box 마스킹 구조도이다.

Fig. 5. [4] Higher order AES S-Box masking
합성체란 유한체를 작은 차수의 체를 기반으로, 단계적으로 확장하여 표현하는 방법으로 이를 통해 큰 유한체 상에서 연산을 더 작은 체 상에서 연산으로 변환하여 계산을 효율적으로 수행할 수 있다. 합성체를 이용하여 AES S-Box를 계산하는 방법은 다음과 같다.
1. 동형 함수(isomorphism) δ를 이용하여 GF(28) → GF(((22)2)2)로 필드를 변환한다.
2. 필드 변환된 변수를 A∈GF(((22)2)2)라고 할 때, A-1 = C-1(A16) ∈ GF(((22)2)2)를 계산한다. 이때 C = A17 ∈ GF(22)2)이다.
3. 역 동형 함수(inverse isomorphism) δ-1를 사용하여 GF(((22)2)2) → GF(28)로 필드를 변환하고 아핀 변환(affine transformation)을 계산한다.
A16, A17은 용이하게 계산할 수 있으며, C-1은 C14이기 때문에, 다음과 같은 식으로 계산할 수 있다.
\(\begin{align}x \xrightarrow{S} x^{2} \xrightarrow{M} x^{3} \xrightarrow{2 S} x^{12} \xrightarrow{M} x^{14}\end{align}\) (6)
[4]는 합성 체 연산 상의 클록 사이클을 줄이기 위해 제곱, 거듭제곱, 스칼라 곱셈 제곱, GF(24)상의 곱셈 연산, 동형 함수, 역 동형 아핀 변환 함수를 각각 T1, T2, T3, T4, T5, T6의 룩업 테이블로 만들어 S-Box 연산에 필요한 연산량을 감소시켰다. [4]는 Fig. 1의 일반 곱셈 연산 부분을 GF(24) 상의 곱셈 연산 룩업 테이블 참조로 변경하고, Fig. 3의 refreshmask 알고리즘을 적용했다. 그러나 Fig. 3의 refreshmask 연산은 t-NI를 만족하기 때문에 [4]는 t+1 공유로 나누었을 때 t-프로빙 안전성을 만족하지 않는다 [5].
III. [4]가 t+1 공유일 때, t-프로빙 security를 만족하지 않는 원인
본 장에서 [4]의 마스킹 구조에서 3 공유일 때 2-프로빙 안전성을 만족하지 않는 이론적인 이유를 제시하고 실제로 3 공유일 때 파형을 수집하고 2차 상관 전력 분석 공격을 수행하여 키 복구가 가능함을 확인하여 t+1 공유로 나누었을때 t-프로빙 안전성을 증명하지 않음을 검증한다.
3.1 이론적인 부채널 공격
Fig. 6은 [4]에서 사용한 고차 역연산 마스킹 알고리즘이다. Fig. 7의 (a)는 Fig.6의 도식도이며 Fig. 7의 (b)는 [4]의 SecInv 연산이 프로빙 안전성을 만족하지 않는 이유를 설명한 그림이다. 공격자는 2-프로빙 모델을 따른다고 가정한다. 그리고 [4]에서 사용하는 고차 곱셈 마스킹 알고리즘인 Fig. 1과 refreshmask인 Fig. 3이 3개의 공유를 가진 연산이라고 가정한다. 만약 공격자가 Fig.6의 5번째 줄에서 실행되는, SecMult 연산에서 i = 0, j = 2일때 T4[y0][a2]을 프로빙하고 Fig. 6의 4번째 줄에서 실행되는 refreshmask 연산에서 i = 0일 때, y0를 프로빙 한다고 하자.

Fig. 6. [4] Secure inverse masking algorithm

Fig. 7. (a) Fig.6 diagram (b) The result explaining why [4] SecInv doesn’t satisfy probing security
y0 = T1[a0] ⊕ r1이고 T4[a1][y2] = a2 ⋅ y1 = a2 ⋅ (T1[a1]⊕r1)이 된다. a2 ⋅ (T1[a1] ⊕ r1)와 a2⊕T1[a1]⊕r1가 될 수 있는 모든 경우의 수에 관하여 상관계수를 계산한 결과 –0.57735가 나타나므로 종속적인 관계가 확인된다. 그래서 프로빙 한 값들을 연접하여 계산하면 y0⊕y1 = T1[a0]⊕r1⊕a2⊕T1[a1]⊕r1 = T1[a0]⊕T1[a1]⊕a2가 된다. T1[a0]⊕T1[a1]⊕a2와 a의 상관계수를 구해본 결과, 0.752941이란 높은 수치를 나타내기 때문에 입력 a의 정보를 포함하는 것으로 해석된다. 따라서 입력 정보를 가지지 않아야 만족하는 프로빙 안전성에 위배되기 때문에 2-프로빙 안전성을 만족하지 않는다.
3.2 실험적인 부채널 공격 및 TVLA 결과
본 장에서 실제 동작 환경에서 3 공유일 때 2-프로빙 안전성을 만족하지 않음을 실험적으로 확인한다. 즉 실제 8비트 보드에서 파형을 수집하여 2차 상관 전력 분석을 수행하여 비밀값인 비밀 키가 복구됨을 확인하고 다변수 TVLA 시험에 실패함을 보인다.
본 논문은 3.1 장 이론적으로 부채널 분석이 가능한 이유를 기반으로 3 공유일 때 2차 상관 전력 분석을 수행하였다. 즉 AES 1라운드 1byte S-Box 연산 과정 중 Fig. 6의 입력 값인 a를 중간값으로 선택했다.
Fig. 8은 파형을 수집한 실험 환경이다. 본 논문이 제안한 마스킹 구현은 8비트 보드 AVR기반 XMEGA128 target board와 chipwhisperer lite capture board를 이용해서 Fig. 6인 고차 역원 계산 마스킹 부분의 전력 파형을 수집했다.

Fig. 8. Experiment environment
전력 소비 모델은 소프트웨어 연산에서 상관 전력 분석할 때 주로 사용하는 헤밍 무게(hamming weight)로 설정했고 곱결합(product combining) 전처리 기법을 이용하여 두 전력 시점을 전처리했다. Fig. 9는 [4]에 대한 2차 상관 전력 분석 추측 엔트로피(guessing entropy) 결과다. 추측 엔트로피는 공격자가 추정한 키 후보들 중 실제 키의 순위를 나타내는 지표로, 값이 0에 가까울수록 실제 키가 높은 순위로 복구되었음을 의미한다. 5,000개의 파형을 10번 수집하여 추측 엔트로피 수행 결과, 파형이 1,000개 이상일 때부터 0으로 수렴하여 비밀 키 복구가 가능함을 확인하였다.

Fig. 9. Guessing entropy result of [4]
본 논문은 [4] 논문에 대해 3 공유일 때, 다변수 TVLA [10] 시험 검증을 시행하여 취약함을 또한 증명했다.
TVLA란 DPA/CPA 분석에 내성을 갖는지 검증하는 대표적인 방법 [7]으로 고정 평문을 입력으로 한 전력 집합과 랜덤 평문을 입력으로 한 전력 집합에 대해 Welch’s t-test를 계산하여 검증한다. 다변수 TVLA [10]란 2차 DPA/CPA 분석에 내성을 갖는지 검증하는 시험이다. 2차 DPA/CPA의 경우 파형의 두 시점을 선택해서 적절하게 결합하여 두 시점이 결합한 파형으로 전처리한다. 그리고 비밀 값의 전력 모델과 전처리한 파형이 통계적으로 연관성이 있는지를 이용하여 공격을 수행한다. 따라서 다변수 TVLA 같은 경우 두 시점을 선택해서 공분산 형태로 결합한 전력 집합으로 전처리를 수행한 후 진행된다.
Fig.10은 [4] 논문이 제안한 2차 프로빙 안전성 만족하는 1라운드 1byte AES S-Box 마스킹 연산에 대해 TVLA 시험 검증한 결과다. 이때, 전체 유의수준은 0.01로 설정하였고 파형 길이가 1028×1028/2일 때, ISO/IEC 17825 기준에 의해서 임곗값은 5.6214, 파형 수는 132,001개 이상 수집해야 한다. 따라서 132,002개를 수집하여 TVLA 시험 검증을 시행하였다. TVLA 결과, t-test의 최댓값은 74.885로 5.6214보다 높은 수치를 나타내어 정보가 누출되는 모습을 볼 수 있어 TVLA 검증에 실패하였으며, 안전하지 않음이 확인되었다.

Fig. 10. Multivariate TVLA result of [4]
IV. t-SNI 안전성을 가진 효율적인 고차 AES S-Box 마스킹 설계
기존 x-1 = x254 을 사용하는 다른 연구들과 달리, [4]는 합성체와 LUT를 이용하여 연산량을 줄이고 필요한 랜덤 바이트를 줄여 성능을 개선하였다. 그러나 t-프로빙 안전성을 만족시키기 위해서 2t+1의 공유로 나누어야 한다. 따라서 본 논문은 [4]의 기법을 개선하여 t+1 공유로도 충분히 t-프로빙 안전성을 만족하도록 설계하였다.
본 논문은 공통 곱셈 기법을 활용하여 고차 AES S-Box 마스킹 연산에 필요한 랜덤 바이트와 연산량을 줄이고, 커플링 현상을 제거하여 효율적이고 안전한 고차 AES S-Box 마스킹을 설계했다.
Fig.11은 본 논문의 곱셈 마스킹 연산이다.

Fig. 11. Proposed Multiplication masking algorithm
Fig.2에서 F2k상의 곱셈 연산을 GF((22)2)에서의 곱셈 연산 테이블인 T4 LUT로 변경했다. 해당 알고리즘은 [8]에 의해 t+1 공유로 나누었을 때 t-SNI를 만족함을 알 수 있다. refreshmask 연산 또한 t+1 공유로 나누었을 때 t-SNI를 만족하는 Fig. 4를 사용했다.
Fig.12는 본 논문이 제안한 GF((22)2) 상의 역연산 알고리즘이며, Fig.13는 본 논문이 제안한 고차 AES S-Box 마스킹 알고리즘이다.

Fig. 12. Proposed Secure inverse masking algorithm

Fig. 13. Proposed AES S-Box masking algorithm
4.1 제안한 AES S-Box 마스킹의 프로빙 안전성
4.1.1 고차 역원 마스킹의 프로빙 안전성 증명
Fig.14는 본 논문이 제안한 고차 역원 마스킹 기법인 알고리즘의 구조를 간략히 나타낸 그림이다. 기존 고차 역원 마스킹 연산인 Fig.6의 refreshmask 연산인 Fig.3 [14] refreshmask 알고리즘에서 Fig.4 [11] refreshmask 알고리즘으로 변경하였다. 해당 부분을 변경하면 t+1 공유로 연산할 때, Fig.12는 t-SNI를 만족한다. 정리 1은 Fig.12가 t+1 공유로 연산할 때 t-SNI를 만족함을 증명한다.

Fig. 14. Secure inverse masking diagram
정리 1. (t+1개의 공유를 연산하는 Fig.12는 t-SNI이다. )
증명. I를 |I| ≤ t1 을 만족하는 중간 프로브 집합이라 하고 O를 |O| ≤ t2를 만족하는 출력 프로브 집합이라 하자. 그리고 Si는 Ii를 시뮬레이션할 수 있는 Gi의 입력 공유 부분집합이라고 하자. 이때 I = ∪5i=1Ii이며, t1 + t2 ≤ t이다.
Step 1. 가정에 의해서 |I1∪O| ≤ |I1| + |O| ≤ t1 + t2 ≤ t임을 알 수 있다. [8]의 보조 정리 1을 통해, 곱셈 ⊗은 t-SNI를 만족한다. 따라서 |S11| ≤ |I1|, |S21| ≤ |I1|을 만족하는두집합 S11, S21이 존재하여 I1∪O은 S11, S21에 해당하는 입력 공유로 완벽하게 시뮬레이션 된다.
Step 2. step 1에 의해 |I2∪S11| ≤ |I2| + |I1| ≤ t1 를 만족한다. 보조 정리 1을 통해, T2는 t-NI를 만족한다. 따라서 |S2| ≤ |I2| + |S11|를 만족하는 집합 S2가 존재하여 I2∪I1∪O는 S2와 S21에 해당하는 입력 공유로 완벽하게 시뮬레이션 된다.
Step 3. step 2에 의해서 |I3∪S2| ≤ |I3| + |I2| + |I1| ≤ t1를 만족한다. ⊗은 t-SNI를 만족한다. 따라서 |S13| ≤ |I3|, |S23| ≤ |I3|를 만족하는 두 집합 S13, S23가 존재하여 (∪3i=1Ii)∪O는 S13, S23, S21에 해당하는 입력 공유로 완벽하게 시뮬레이션 된다.
Step 4. step 1과 step 3에 의해 |I4∪S23∪S21| ≤ |I4| + |I3| + |I1| ≤ t1를 만족한다. [8]의 보조 정리 2를 통해 R은 t-SNI를 만족한다. 따라서 |S4| ≤ |I4|를 만족하는 집합 S4가 존재하여 (∪4i=1Ii)∪O는 S4, S13에 해당하는 입력 공유로 완벽하게 시뮬레이션 된다.
Step 5. step 4에 의해 |I5∪S4| ≤ |I5| + |I4| ≤ t1를 만족한다. 보조 정리 1을 통해, T1는 t-NI를 만족한다. 따라서 |S5| ≤ |I5| + |S4|를 만족하는 집합 S5가 존재하여 (∪5i=1Ii)∪O는 S5, S13에 해당하는 입력 공유로 완벽하게 시뮬레이션 된다.
따라서 |I∪O| = |S5∪S13| ≤ |I5| + |I4| + |I3| ≤ t1이 되기 때문에 t–SNI를 만족한다. t–SNI를 만족하면 t–프로빙 안전성을 만족하기 때문에 Fig.12는 t-프로빙 안전성을 만족한다.
4.1.2 고차 AES S-Box 마스킹의 프로빙 안전성 증명
Fig.15는 본 논문이 제안한 고차 AES S-Box 마스킹 기법을 간략히 그린 그림이다. 기존 구조는 refreshmask를 사용하지 않아 안전성이 저하될 위험이 있으므로, [4]의 마스킹 구조에서 refreshmask를 적절히 추가하고 구조를 개선하여 Fig.13이 t+1 공유로 연산할 때 t-SNI를 만족하도록 설계하였다. 정리 2는 ‘Fig.13이 t+1 공유로 연산할 때 t-SNI를 만족한다’의 증명이다.

Fig. 15. Proposed AES S-Box masking diagram
정리 2. (t+1개의 공유를 연산하는 Fig.13은 t-SNI이다. )
I를 |I| ≤ t1을 만족하는 중간 프로브 집합이라 하고 O를 |O| ≤ t2를 만족하는 출력 프로브 집합이라 하자. 그리고 Si는 Ii를 시뮬레이션 할 수 있는 Gi의 입력 공유 부분집합이라고 하자. 이때 I=∪12i=1Ii이며, t1 + t2 ≤ t이다.
Step 1. 가정에 의해서 |I1∪O| ≤ |I1| + |O| ≤ t1 + t2 ≤ t임을 알 수 있다. 보조 정리 1을 통해, T6은 t-NI를 만족한다. 따라서 |S11| ≤ |I1| + |O|, |S21| ≤ |Ii| + |O|을 만족하는 두 집합 S11, S12이 존재하여 I1∪O은 S11, S21에 해당하는 입력 공유로 완벽하게 시뮬레이션 된다.
Step 2. step 1에 의해 |I2∪S21| ≤ |I2| + |I1| + |O| ≤ t를 만족한다. [8]의 보조 정리 1을 통해, 곱셈 ⊗연산은 t-SNI를 만족한다. 따라서 |S12| ≤ |I2|, |S22| ≤ |I2|를 만족하는 두 집합 S12, S22이 존재하여 I2∪I1∪O는 S11, S12, S22에 해당하는 입력 공유로 완벽하게 시뮬레이션 된다.
Step 3. step 1에 의해 |I3∪S21| ≤ |I3| + |I1| + |O| ≤ d를 만족한다. [8]의 보조 정리 1을 통해, 곱셈 연산 ⊗은 t-SNI를 만족한다. 따라서 |S13| ≤ |I3|, |S23| ≤ |I3|를 만족하는두집합 S13, S23이 존재하여 (∪3i=1Ii)∪O는 S12, S22, S13, S23 에 해당하는 입력 공유로 완벽하게 시뮬레이션 된다.
Step 4. Step 2, step 3에 의해 |I4∪S12∪S13| ≤ |I4| + |I2| + |I3| ≤ t1을 만족한다. 정리1을 통해, sec inv는 t-SNI를 만족한다. 따라서 |S4| ≤ |I4|를 만족하는 입력 공유 집합 S4가 존재하여 (∪4i=1Ii)∪O는 S22, S23, S4에 해당하는 입력 공유로 완벽하게 시뮬레이션 된다.
Step 5. Step 2, step 3에 의해 |I5∪S22∪S23| ≤ |I5| + |I3| + |I2| ≤ t1을 만족한다. [8]의 보조 정리 4를 통해, cs 연산은 t-NI를 만족한다. 따라서 |S15| ≤ |I5| + |I3| + |I2| ≤ t1, |S25| ≤ |I5| + |I3| + |I2| ≤ t1를 만족하는 입력 공유 집합 S15, S25가 존재하여 (∪5i=1Ii)∪O는 S4, S15, S25에 해당하는 입력 공유로 완벽하게 시뮬레이션 된다.
Step 6. Step 4에 의해 |I6∪S4| ≤ |I6| + |I4|를 만족한다. 보조 정리 1을 통해, ⊕연산은 t-NI를 만족한다. 따라서 |S16| ≤ |I4| + |I6| ≤ t1, |S26| ≤ |I4| + |I6| ≤ t1를 만족하는 입력 공유 집합 S6이 존재하여 (∪6i=1Ii)∪O는 S15, S25, S16, S26에 해당하는 입력 공유로 완벽하게 시뮬레이션 된다.
Step 7. Step 6에 의해 |I7∪S16| ≤ |I7| + |I6|을 만족한다. 보조 정리 1을 통해, T3는 t-NI를 만족한다. 따라서 |S7| ≤ |I4| + |I6| + |I7|을 만족하는 입력 공유 집합 S7이 존재하여(∪7i=1Ii)∪O는 S15, S25, S7, S26에 해당하는 입력 공유로 완벽하게 시뮬레이션 된다.
Step 8. Step 6에 의해 |I8∪S26| ≤ |I8| + |I4| + |I6|을 만족한다. [8]의 보조 정리 1을 통해, 곱셈 연산 ⊗은 t-SNI를 만족한다. 따라서 |S18| ≤ |I8| ≤ t1, |S28| ≤ |I8| ≤ t1를 만족하는 입력 공유 집합 S18, S28가 존재하여 (∪8i=1Ii)∪O는 S15, S25, S7, S18, S28에 해당하는 입력 공유로 완벽하게 시뮬레이션 된다.
Step 9. Step 8과 step 5에 의해 |I9∪S18∪S25| ≤ |I9| + |I8| + |I5| + |I3| + |I2|를 만족한다. 보조 정리 1을 통해, ⊕연산은 t-NI를 만족한다. 따라서 |S19| ≤ |I9| + |I8| + |I5| + |I3| + |I2|, |S29| ≤ |I9| + |I8| + |I5| + |I3| + |I2|를 만족하는 입력 공유 집합 S19, S29이 존재하여 (∪9i=1Ii)∪O는 S15, S7, S28, S19, S29에 해당하는 입력 공유로 완벽하게 시뮬레이션 된다.
Step 10. Step 9에 의해 |I10∪S19| ≤ |I10| + |I9| + |I8| + |I5| + |I3| + |I2| ≤ t1을 만족한다. [8]의 보조 정리 2를 통해 R은 t-SNI를 만족한다. 따라서 |S10| ≤ |I10|을 만족하는 입력 공유집합 S10이 존재하여 (∪10i=1Ii)∪O는 S25, S7, S28, S29, S10에 해당하는 입력 공유로 완벽하게 시뮬레이션 된다.
Step 11. Step 8에 의해 |I11∪S29| ≤ |I11| + |I9| + |I8| + |I5| + |I3| + |I2| ≤ t1를 만족한다. [8]의 보조 정리 2를 통해 R은 t-SNI를 만족한다. 따라서 |S11| ≤ |I11|을 만족하는 입력 공유집합 S11이 존재하여 (∪11i=1Ii)∪O는 S15, S7, S28, S10, S11에 해당하는 입력 공유로 완벽하게 시뮬레이션 된다.
Step 12. Step 5, step 7, step 9, step 10, step 11에 의해 |I12∪S15∪S7∪S28∪S10∪S11| ≤ |I2| + |I3| + |I4| + |I5| + |I6| + |I7| + |I8| + |I10| + |I11| + |I12| ≤ t1를 만족한다. 보조 정리 1을 통해, T5는 t-NI를 만족한다. 따라서 |S12| ≤ |I2| + |I3| + |I4| + |I5| + |I6| + |I7| + |I8| + |I10| + |I11| + |I12| ≤ t1를 만족하는 입력 공유 집합 S12이 존재하여 (∪12i=1Ii)∪O는 S12에 해당하는 입력 공유로 완벽하게 시뮬레이션 된다.
따라서 |I∪O| = |S12| ≤ t1이 되기 때문에 t-SNI를 만족한다. t–SNI를 만족하면 t–프로빙 안전성을 만족하기 때문에 Fig.13은 t-프로빙 안전성을 만족한다.
4.2 실제 부채널 누설 평가
4.2.1 커플링 현상 제거
커플링이란 실제 소프트웨어 환경상에서 이론적으로 안전한 마스킹 구현물일지라도, 실제 근처 레지스터들의 전력끼리 결합하여 안전성이 저하되고, 이전 전력이 잔류하고 있는 레지스터에 대해 새로운 전력이 들어오면서 이전값과 새로운 값과 결합하여 보안성이 떨어지는 등 예상치 못한 실제 장비 동작 환경에 의해 부채널 안전성이 저하되는 상황을 의미한다[9]. 본 논문은 커플링 현상 중, 레지스터 혹은 메모리에 저장된 값과 새로 쓰이는 값 사이에 나타나는 커플링 현상인 오버라이팅 효과를 제거하여 실제 환경에서 부채널 분석 안전성을 증가시켰다.
Table 1은 커플링 현상을 제거하기 전 본 논문이 제안한 2차 AES S-Box 마스킹에서 사용하는 2차 곱셈 마스킹 연산의 어셈블리어 중 일부분이다.
Table 1. Second order multiplication masking assembly language

movw 연산은 AVR에서 워드 레지스터 쌍을 한꺼번에 복사하는 명령어다. 5번째 라인에서 movwr24, r28은 r29, r28의 레지스터 값이 r25, r24로 복사됨을 의미한다. 이후 13번째 라인에서 movwr24, r26은 r27, r26의 레지스터 값이 r25, r24로 복사됨을 의미한다. 따라서 기존 r29, r28의 저장된 레지스터 값에서 r27, r26의 값이 덮어 씌워지며, 해밍 거리(hamming distance)가 발생하여 예상치 못한 전력 결합이 발생하게 된다. 해당 문제점은 중간에 “ldi r24, 0x00”, “ldi r25, 0x00”을 추가하여 해밍 거리가 발생하지 않도록 보완할 수 있다. 따라서 본 논문은 제안한 고차 AES S-Box 마스킹 구현물에 대해 전반적으로 해당 조치를 수행하여 오버라이팅 효과를 제거하였다.
4.2.2 2차 상관 전력 분석 결과
Fig.16는 본 논문이 오버라이팅 효과를 제거한 후 3 공유에 대한 2차 상관 전력 분석 추측 엔트로피 (guessing entropy) 결과다. 50,000개의 파형을 10번 수집하여 추측 엔트로피 수행한 결과, 약 128에 수렴하여 기존 1,000개의 파형으로 2차 상관전력 분석 공격이 가능했던 [4] 논문에 비해 2차 상관 전력 분석에 대해 강인함을 확인하였다.

Fig. 16. Guessing entropy result of this paper
4.2.3 TVLA 검증 결과
앞서 본 연구의 실험 환경으로 실용적인 누출 평가를 할 수 있는지 확인하기 위해서 랜덤 바이트가 0일 때 파형을 수집하여 TVLA 시험에 실패하는지 확인했다. Fig.17은 본 논문이 제안한 2차 프로빙 안전성을 만족하는 1라운드 1byte AES S-Box 마스킹 연산에 대해 랜덤 바이트의 값을 모두 0으로 설정하였을 때 TVLA 시험 검증한 결과다. 이때 전체 유의 수준은 0.01이며 파형 길이가 3527일 때 ISO/IEC 17825 (2022)에 의해서 임곗값은 4.6824이 되며, 100,085개 이상의 파형을 수집해야 한다. 100,086개의 파형을 수집하여 TVLA 검증 수행 결과, t-test의 최댓값은 40.0087로 4.6824보다 매우 높은 수치를 나타내어 정보가 누출되는 모습을 볼 수 있어 TVLA 실패함을 알 수 있고 안전하지 않음을 알 수 있다.

Fig. 17. TVLA result that Randombytes are 0
Fig.18은 본 논문이 제안한 2차 프로빙 안전성을 만족하는 1라운드 1byte AES S-Box 마스킹 연산에 대해 랜덤 바이트의 값이 균등 분포 샘플링을 만족할 때, TVLA 시험 검증 결과다. 이때 전체 유의 수준은 0.01이며 파형 길이가 3,521일 때 ISO/IEC 17825 (2022)에 의해서 임곗값은 4.5379이 되며, 95,567개의 파형을 수집해야 한다. 95,568개의 파형을 수집하여 TVLA 시험 검증 수행 결과, t-test의 최댓값은 1.6921로 4.5379보다 낮은 수치를 나타내어 TVLA 검증에 성공하였으며, 안전성이 확인되었다.

Fig. 18. TVLA result that Randombytes are uniform distribution
Fig.19는 본 논문이 제안한 2차 프로빙 안전성을 만족하는 1라운드 1byte AES S-Box 마스킹 연산에 대해 랜덤 바이트의 값을 uniform distribution일 때, 다변수 TVLA 시험 검증 결과다. 이때 전체 유의 수준은 0.01이며 파형 길이가 3,521×3,521/2일 때 ISO/IEC 17825 (2022)에 의해서 임곗값은 6.0526가 되며, 147,358개의 파형을 수집해야 한다. 147,358개의 파형을 수집하여 TVLA 시험 검증 수행 결과, t-test의 최댓값은 5.4902로 6.0526보다 낮은 수치를 보여 TVLA 검증에 성공하였음을 확인할 수 있다. 따라서 본 논문이 제안한 고차 마스킹 구조가 실제 부채널 누설 평가에 안전한 모습을 알 수 있다.

Fig. 19. Multivariate TVLA result
V. 성능 평가
Table 2는 본 논문이 제시한 마스킹 기법을 AES S-Box를 대상으로 [4], [8], [14]와 [16]의 구현 성능을 비교한 표다. [4]와 [14] 논문 경우 t차 안전성을 만족하기 위해서 2t+1 공유가 필요하다. [8]의 경우, 본 논문의 고차 AES S-Box 마스킹 기법과 동일한 안전성인 t+1 공유일 때, t-SNI를 만족한다. [16]의 경우, AES S-Box 전체 를 룩업 테이블을 이용하여 계산한 고차 AES S-Box 마스킹 기법이다. [16] 또한 t+1 공유일 때, t-SNI를 만족하고, 공통 곱셈 기법을 사용하였다. 클록 사이클은 AVR XMEG128에서 Subbytes를 계산할 때 클록 사이클이다. LUT는 AES 연산에서 사용하는 룩업 테이블의 크기이고, Random bytes는 1라운드 Subbytes masking 연산에서 필요한 8비트 랜덤 바이트 개수이다.
Table 2. Performance

성능 비교 결과, 본 논문이 제안한 마스킹 기법의 랜덤 바이트가 [4] 논문과 비교했을때, 약 37% 클록 사이클을 감소시켰으며, 약 54%의 랜덤 바이트수를 줄여 효율성을 확인하였다. 그리고 같은 SNI 안전성을 만족하는 [8]과 비교했을때, 사용되는 랜덤 바이트 수를 최소 42% 줄이고 클록 사이클을 76% 줄여 성능이 향상했음을 보였다.
VI. 결론
본 논문은 [4]의 논문을 개선하여 효율적인 AESS-Box의 고차 마스킹 기법을 제안하였다. 기존 결합 프로빙 안전성이 등장하기 이전 Kim 등이 제안한 합성체와 룩업 테이블을 이용한 고차 AESS-Box 마스킹 [4] 이 3 공유일때 2-프로빙 안전성을 만족하지 않음을 이론적으로 제시하고 실제 파형을 수집하여, TVLA 검증에 실패하며 2차 상관 전력 분석으로도 공격 가능함을 실험적으로 입증하였다. 본 논문은 해당 취약점을 개선하여 제안한 기법을 t+1 공유로 나누었을 때, t-SNI를 만족함을 증명하여 t-프로빙 안전성을 만족함을 증명하였고 공통 곱셈 [8]을 적용하여 성능을 향상시켰다. 그리고 구현 상에서 오버라이팅 효과를 제거하여 커플링 현상[9]도 제거하였다. 검증 결과, TVLA를 통해 실제 환경에서도 매우 안전함을 보였고 기존에 공격했던 2차 CPA에서도 안전함을 보였다. 성능 비교 결과, [4], [8], [14], [16]에 비해 마스킹 S-Box구현에 필요한 랜덤 바이트가 적음을 확인했다.
향후 비트슬라이스 AES 마스킹 연산에 대해 해당 기법을 적용할 수 있는지를 연구할 예정이다. 다른 부채널 안전성인 PINI를 만족하는 비트슬라이스 AES S-Box 마스킹 연산과 비교했을 때 [17], 본 논문이 더 적은 랜덤 바이트 수를 사용하지만, 클록 사이클 측면에서 낮은 성능을 가진다. 만약 본 논문이 제안한 고차 마스킹 기법을 비트슬라이스 연산을 적용한다면 클록 사이클이 현저히 줄어들 수 있을 것으로 기대되므로, 향후 제안 기법의 비트슬라이스 적용을 후속 연구 과제로 삼고자 한다.
References
- P. Kocher, J. Jaffe, and B. Jun, "Differential power analysis," Advances in Cryptology, CRYPTO'99, LNCS 1666, pp. 388-397, Aug. 1999.
- 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, Aug. 2004.
- T. Messerges, "Using Second-Order Power Analysis to Attack DPA Resistant Software," Cryptographic Hardware and Embedded Systems, CHES 2000, LNCS 1965, pp. 238-251, Aug. 2000.
- H. Kim, S. Hong, and J. Lim, "A fast and provably secure higher-order masking of AES S-Box," Cryptographic Hardware and Embedded Systems, CHES 2011, LNCS 6917, pp. 95-107, Sep. 2011.
- J. S. Coron, E. Prouff, M. Rivain, and T. Roche, "Higher-order side channel security and mask refreshing," In International Workshop on Fast Software Encryption, LNCS 8424, pp. 410-424, Mar. 2014.
- Y. Ishai, A. Sahai, and D. Wagner, "Private circuits: Securing hardware against probing attacks," In Annual International Cryptology Conference, LNCS 2729, pp.463-481, Aug. 2003.
- B. J. Gilbert Goodwill, J. Jaffe, and P. Rohatgi, "A testing methodology for side-channel resistance validation," In NIST non-invasive attack testing workshop, Vol. 7, pp. 115-136, Sep. 2011.
- J.S. Coron, A. Greuet, E. Prouff, and R. Zeitoun, "Faster evaluation of sboxes via common shares," Cryptographic Hardware and Embedded Systems, LNCS 9813, pp. 498-514, Aug. 2016.
- K. Papagiannopoulos, and N. Veshchikov, "Mind the gap: Towards secure 1st-order masking in software," In International Workshop on Constructive Side-Channel Analysis and Secure Design, LNCS 10348, pp. 282-297, Apr. 2017.
- T. Schneider, and A. Moradi, "Leakage assessment methodology: A clear roadmap for side-channel evaluations," Cryptographic Hardware and Embedded Systems, LNCS 9293, pp. 495-513, Sep. 2015.
- G. Barthe, S. Belaïd, F. Dupressoir, P. A. Fouque, B. Grégoire, P. Y. Strub, and R. Zucchini, "Strong non-interference and type-directed higher-order masking," ACM SIGSAC Conference on Computer and Communications Security, pp. 116-129, Oct. 2016.
- J.S. Coron, "Higher order masking of look-up tables," Cryptographic Hardware and Embedded Systems, LNCS 8441, pp. 441-458, May 2014.
- G. Barthe, S. Belaïd, F. Dupressoir, P.A. Fouque, B. Grégoire, and P.Y. Strub, "Verified proofs of higher-order masking," In Annual International Conference on the Theory and Applications of Cryptographic Techniques, LNCS 9056, pp. 457-485, Apr. 2015.
- M. Rivain, and E. Prouff, "Provably secure higher-order masking of AES," Cryptographic Hardware and Embedded Systems, LNCS 6225, pp. 413-427, Aug. 2010.
- C. Gentry, S. Halevi, and N.P. Smart, "Homomorphic evaluation of the AES circuit," In Annual Cryptology Conference, LNCS 7417, pp. 850-867, Aug. 2012.
- J.S. Coron, F. Rondepierre and R. Zeitoun, "High order masking of look-up tables with common shares." IACR Transactions on Cryptographic Hardware and Embedded Systems, vol. 2018, no. 1, pp. 40-72, Feb. 2018.
- W. Wang, F. Ji, J. Zhang, and Y. Yu, "Efficient private circuits with precomputation," IACR Transactions on Cryptographic Hardware and Embedded Systems, vol. 2023, no. 2, pp. 286-309, Mar. 2023. https://doi.org/10.46586/tches.v2023.i2.286-309