I. 서론
스마트카드 등과 같은 모바일 기기는 금융 정보 등과 같은 개인 비밀 정보를 저장하고 있기 때문에 불법적인 정보 유출과 비인가된 접근과 같은 보안 위험성이 상존하며 이를 방어하기 위하여 다양한 암호 알고리즘이 사용되고 있다. 따라서 효율적이고 안전한 암호 알고리즘의 구현에 대한 관심 및 중요성은 점점 더 증가하고 있다. 이러한 암호 알고리즘은 수학적 안전성뿐만 아니라 해당 알고리즘 구현시 부채널 공격(side-channel attack)에 대한 안전성도 함께 고려되어야 한다.
부채널 공격이란 암호 알고리즘 구현시 연산 과정 중에 발생하는 부채널 정보를 이용해서 비밀 정보를 알아내는 공격 방법을 의미한다[1]. 특히 전력분석 공격은 암호 연산 수행시 발생하는 전력 소비량의 변화를 측정함으로써 암호 기기 내부의 비밀 정보를 알아내는 공격법으로 이에 대한 여러 가지 대응 방법이 제안되었다.
본 논문에서는 전력분석 공격 및 전력분석 공격의 일종인 글리치 공격에 대한 게이트 레벨에서의 새로운 방어 기법을 제시한다. 또한 제안된 방법을 응용하여 AES(Advanced Encryption Standard)를 전력분석 공격 및 글리치 공격에 안전하게 구현할 수 있는 방법을 제시한다.
II. 사전 지식
2.1 부채널 공격
일반적으로 암호 공격법은 크게 수학적인 공격과 부채널 공격의 두 가지 범주로 분류가 된다. 먼저 수학적인 공격법은 암호 알고리즘을 비밀키를 인자로 가지는 수학적인 변환 또는 함수로 간주하며 수학적인 관점에서 그 안전성을 평가한다. 이러한 공격법의 대표적인 예로는 차분 공격법, 선형 공격법 그리고 대수적인 공격법 등이 있다. 반면에 부채널 공격법은 암호 알고리즘을 물리적인 기기에서 동작하는 실제 프로그램으로 간주하며 해당 기기의 암호 연산 과정 중에 발생하는 부채널 정보를 이용하여 기기 내부에 저장된 비밀 정보를 알아내는 공격방법이다. 이러한 부채널 정보의 예로는 연산 시간, 전력 소비 패턴, 전자기장 패턴 및 의도된 혹은 의도되지 않은 오류 주입으로부터 생성된 잘못된 암호 연산값 등이 있다. 부채널 공격법은 Kocher 등에 의해 스마트카드에 대한 시간 분석 공격법이 제안된 이후로 현재까지 여러 가지 다양한 공격법과 그에 대한 대응 기법이 제시되었다[1].
부채널 공격법 중에서 전력 분석 공격법은 암호 기기의 전력 소비 패턴으로부터 기기 내에 저장된 비밀 정보를 추출해 내는 공격법으로 대표적으로 단순 전력분석 공격과 차분 전력분석 공격이 있다[2]. 먼저 단순 전력분석 공격은 암호 연산 자체의 전력 소비 패턴을 이용하여 다양한 원시 암호 연산을 구별해 내는 공격법으로 더미 연산을 삽입하는 것과 같은 다양한 방어기법이 제안되었다. 차분 전력분석 공격은 암호기기의 전력소비 패턴을 다양한 신호처리 기법을 이용하여 분석한 후 기기 내에 저장된 비밀 정보를 알아내는 공격법으로 이에 대한 대응 방법으로는 마스킹 기법(masking method)을 포함한 다양한 랜덤화 기법이 있다[3].
2.2 마스킹 기법과 글리치 공격
블록 암호 알고리즘을 차분 전력분석 공격에 안전하게 구현하기 위해서 제안된 대표적인 방법으로는 마스킹 기법이 있다. 마스킹 기법은 평문에 대한 암호화 연산을 수행하기 전에 난수를 이용하여 평문을 마스킹하고 마스킹된 데이터와 사용된 난수를 이용하여 암호 연산을 수행함으로써 외부에 노출된 전력소비 패턴과 내부 데이터와의 상관관계를 축소 또는 제거한다. 이러한 마스킹 기법은 임의의 함수에 적용 가능하지만 일반적으로 해당 함수가 블록 암호 알고리즘의 S-box와 같은 비선형 함수인 경우 그 적용이 쉽지 않다는 난점이 있으며 이를 해결하기 위하여 게이트 레벨 마스킹 기법(gate-level masking method)이 연구되었다.
게이트 레벨 마스킹 기법에서는 먼저 임의의 함수를 기본 게이트로 분해한 후 기본 게이트에 대하여 마스킹 방법을 적용한다. 특히 기본 게이트 중에서AND 및 OR 게이트가 비선형 함수의 역할을 하기 때문에 이러한 게이트에 대하여 마스킹 기법을 효율적으로 적용하는 방식에 대한 연구가 많이 진행되었다. 예를 들어 E. Trichina[4]는 여분의 랜덤 신호를 이용하여 AND 게이트에 대한 게이트 레벨 마스킹 기법을 제안하였으며 J. Golić 등[5]은 MUX 게이트에 먼저 마스킹 기법을 적용한 후 이를 이용하여 AND 게이트 및 OR 게이트에 적용 가능한 새로운 마스킹 기법을 제안하였다.
그러나 이러한 게이트 레벨 마스킹 기법 대부분은 해당 게이트의 모든 입력 신호가 동일하게 도착한다는 가정에 기반하였으며 이러한 가정에 기반한 마스킹 기법은 글리치 공격(glitch attack)에 취약함이 알려져 있다[6]. 즉, 게이트의 입력 신호는 동일한 시간에 도착하지 않고 따라서 그 출력값은 한 클록 싸이클 내에서 안정화되기 전까지 여러 번 전이하게 되는 글리치 특성을 보여주게 되는데 이러한 글리치 특성은 실제로 회로의 전력 소모에 많은 영향을 미치게 된다. 이러한 글리치 특성을 이용한 공격을 글리치 공격이라고 하며 이전에 제안된 대부분의 게이트 레벨 마스킹 기법은 글리치 공격에 취약하다고 알려져 있다. 본 논문에서는 이러한 글리치 특성을 고려한 게이트 레벨 마스킹 방법을 제안하며 제안된 방법은 1차 전력 분석 공격 및 글리치 공격에 안전함을 보인다.
III. G-equivariant 로직 게이트
이번 장에서는 입력 신호가 n개이고 출력 신호가 1개인 게이트 g를 다음과 같은 불리안(Boolean) 함수로 간주한다:
#
여기서 F2는 0과 1로 구성된 이진 필드(binary field)를 의미하며 F2상에서의 덧셈 연산은 ⊕로 표기된다.
정의 1 ([7]). 게이트 # 및 i = 1, ..., n에 대하여 g의 (부분) 에너지 함수 Eg,i는 다음과 같이 정의된다:
#
여기서 Map{1, ..., n}은 집합 {1, ..., n}에서 자기 자신으로 가는 모든 함수로 구성된 집합을 나타내고, V는 선형 독립인 벡터 e0,0, e0,1, e1,0, e1,1를 기저로 가지는 4차원 실벡터 공간을 의미하는데 여기서 ei,j는 게이트의 신호가 i에서 j로 변화하는 경우 전력 소비량을 나타내는 심볼이다. 또한 #은 다음과 같이 주어진 벡터를 의미한다: #이고
#
정의 1에서 Φ∈Map{1, ..., n}는 실제 게이트의 입력 신호의 도착 순서를 나타내게 되는데 가령 i, j= 1, ..., n에 대하여 Φ(i) = j는 입력 신호의 i번째 벡터 원소가 j번째에 도착했음을 의미한다. 따라서 (부분) 에너지 함수는, 가령 g의 입력 신호가 #에서 #로 변화하고 신호의 도착 순서가 Φ에 의해서 정해지는 경우에 g가 소비하는 전력 소비량을 표시하게 된다.
정의 2. 게이트 #의 임의의 입력값 #에 대하여 다음을 만족시키는 #를 (a, b)의 (일차) 마스킹된 신호쌍이라고 한다:
1) a = a1⊕a2, b = b1⊕b2
2) a1, a2, b1, b2는 등분포(uniformly distributed) 되어 있다.
3) i, j= 1, 2에 대하여 랜덤 변수 ai와 bj는 서로 독립이다.
정의 3. 게이트 #에 대하여 g의 (일차) 마스킹된 게이트는 다음을 만족시키는 게이트 쌍 (g1, g2)를 의미한다:
1) #
2) g의 임의의 입력값 # 및 (a, b)의 임의의 (일차) 마스킹된 신호쌍 #에 대하여 g1(a1, a2, b1, b2)⊕g2(a1, a2, b1, b2) = g(a,b)이다.
정의 4 ([7]). 만약 임의의 Φ∈Map{1,2,3,4}와 i = 1, 2, 3, 4에 대하여 다음과 같이 주어진 16개의 값이 동일하면 게이트 #를 G-equivariant 게이트라고 한다: a, b, x, y∈F2 에 대하여
#
참고. 상기 정의 4는 논문 [7]의 Definition 5와 Lemma 1의 2)번 항을 결합한 정의이다.
G-equivariant 게이트는 게이트의 입력 신호가 동일하게 도착하지 않더라도 해당 게이트의 전력소비 패턴은 변하지 않으며 따라서 글리치 공격에 강인한 특성을 가진다. 그러나 하기 정리 1이 보여주듯이 AES 등과 같은 블록 암호 알고리즘의 구현을 위한 AND 게이트 및 OR 게이트의 마스킹에 사용될 수 있는 G-equivariant 게이트는 존재하지 않는다.
정리 1 ([7]). AND 및 OR 게이트의 마스킹에 사용될 수 있는 G-equivariant 게이트는 존재하지 않는다.
정리 1의 G-equivariant 게이트의 부존재성 때문에 논문 [7]에서는 G-equivariant 게이트보다 조건을 완화한 semi-G-quivariant 게이트를 정의하고 그 존재성을 증명한다. 그러나 semi-G-quivariant 게이트는 각 입력 신호의 (일차) 마스킹된 신호 쌍들이 동시에 게이트에 도착한다는 가정을 하고 있는데 이러한 가정을 실제 구현하기는 용이하지 않다. 따라서 본 논문에서는 이러한 가정을 대신하여 각 입력 신호가 이차 마스킹이 되었다고 가정을 하고 이러한 가정 하에서 정의 4의 G-equivariant 게이트가 존재한다는 것을 증명할 것이다. 이를 위해서 본 논문은 정의 2, 3, 4를 다음과 같이 이차 마스킹으로 확장한다.
정의 2-1. 게이트 #의 임의의 입력값 #에 대하여 다음을 만족시키는 #를 (a, b)의 이차 랜덤화된 신호쌍이라고 한다:
1) a = a1⊕a2⊕a3, b = b1⊕b2⊕b3
2) a1, a2, a3, b1, b2, b3는 등분포(uniformly distributed) 되어 있다.
3) i, j = 1, 2, 3에 대하여 랜덤 변수 ai 와 bj는 서로 독립이다.
정의 3-1. 게이트 #에 대하여 g의 이차 마스킹된 게이트는 다음을 만족시키는 게이트 쌍(g1, g2, g3)를 의미한다:
1) #
2) g의 임의의 입력값 및 (a, b)의 임의의 이차 마스킹된 신호쌍 #에 대하여 g1(a1, a2, a3, b1, b2, b3)⊕g2(a1, a2, a3, b1, b2, b3) = g(a,b)이다.
정의 4-1. 만약 임의의 Φ∈Map{1, 2, 3, 4, 5, 6}와 i = 1, ..., 6에 대하여 다음과 같은 16개의 값이 동일하면 게이트 #를 이차 G-equivariant 게이트라고 한다: a, b, x, y∈F2 에 대하여
#(1)
여기서 #는 다음과 같이 주어진 벡터이다:
#
이차 G-equivariant 게이트 역시 G-equivariant 게이트와 동일하게 게이트의 입력 신호가 동일하게 도착하지 않더라도 해당 게이트의 전력소비 패턴은 변하지 않으며 따라서 글리치 공격에 강인하다. 그러나 G-equvariant 게이트와는 다르게 AND 게이트의 마스킹에 사용될 수 있는 이차 G-equivariant 게이트가 존재함을 다음과 같이 보여줄 수 있다.
정리 2. 다음과 같이 정의된 게이트 #는 이차 G-equivariant 게이트이며 AND 게이트의 이차 마스킹된 게이트이다:
g1(a1, a2, a3, b1, b2, b3) = a1b1⊕a3b3⊕a3b1
g2(a1, a2, a3, b1, b2, b3) = a1b2⊕a2b3⊕a1b3
g3(a1, a2, a3, b1, b2, b3) = a2b2⊕a2b1⊕a3b2
또한 #를 계산하기 위하여 (a, b)의 이차 마스킹된 신호쌍을 이용하여 g1, g2, g3를 계산하는 경우 그 중간 계산값의 확률 분포는 (a, b)에 독립이며 따라서 g1, g2, g3로 마스킹한 AND 게이트는 일차 전력분석 공격에 안전하다.
증명. 먼저 #를 계산하기 위하여 (a, b)의 이차 마스킹된 신호쌍 a1, a2, a3, b1, b2, b3을 이용하여 g1, g2, g3를 계산하는 경우 그 중간 계산값은 하기 Fig. 1.이 보여주듯이 다음과 같다: a1b1, a3b3, a3b1, a1b2, a2b3, a1b3, a2b2, a2b1, a3b2, a1b2⊕a2b3⊕a1b3, a2b2⊕a2b1⊕a3b2, a1b1⊕a3b3⊕a3b1. 이 중에서 a1b1, a3b3, a3b1, a1b2, a2b3, a1b3, a2b2, a2b1, a3b2의 확률 분포가 a = a1⊕a2⊕a3, b = b1⊕b2⊕b3와 독립이라는 것은 정의 2-1의 조건 2)번과 3)번에 의해서 자명하다. 또한 임의의 α, β∈{0, 1}에 대하여
#
이기 때문에 a1b2⊕a2b3⊕a1b3 , a2b2⊕a2b1⊕a3b2 , a1b1⊕a3b3⊕a3b1 의 확률 분포 역시 a, b와 독립이다.
Fig.1. Pictorial Illustration of g1, g2, g3
다음으로
#
이기 때문에 g1, g2, g3 는 AND 게이트에 대한 이차 마스킹된 게이트가 된다.
마지막으로 g1, g2, g3가 이차 G-equivariant라는 증명을 위해서는 다음과 같은 표기법이 필요하다. 먼저 주어진 a, b , x, y ∈{0, 1}에 대하여 정의 4-1의 식 (1)에 해당하는 에너지 함수를 Eg,i (a, b, x, y, Φ) 로 표기하면
Eg,i(a,b,x,y,Φ)∈Ze00+Ze20+Ze11
가 되며 (여기서 Z는 정수의 집합을 의미한다.) 다음 코드는 실제로 Eg,i(a, b, x, y, Φ)를 계산하는 프로그램이 된다:
입력: #
Φ∈Map{1, 2, 3, 4, 5, 6}
a, b, x, y∈{0, 1}
i = 1,...,6
출력: Eg,i(a, b, x, y, Φ)
1. Eg,i(a, b, x, y, Φ) = 0;
2. For a1, a2 = 0 to 1 do
For b1, b2 = 0 to 1 do
For x1, x2 = 0 to 1 do
For y1, y2 = 0 to 1 do
a3 = a⊕a1⊕a2;
b3 = b⊕b1⊕b2;
x3 = x⊕x1⊕x2;
y3 = y⊕y1⊕y2;
#
#, where # and #.
end loop
end loop
end loop
end loop
3. Return Eg,i (a, b, x, y, Φ).
g1, g2, g3에 대하여 상기 프로그램을 적용하면 임의의 Φ 및 i에 대하여 Eg,i(a, b, x, y, Φ)가 동일함을 알 수 있으며 따라서 g1, g2, g3가 이차 G-equivariant함을 증명할 수 있다.
IV. AES S-Box 구현에의 응용
AES 알고리즘이 사용하는 함수는 AddRound- Key, MixColumns, ShiftRows, SubBytes가 있다[8]. 이 중에서 SubBytes를 제외하고는 모두 선형 또는 아핀(affine) 함수이기 때문에 마스킹 기법을 적용하는 것은 어렵지 않다. 따라서 이번 장에서는 3장에서 제안한 방법을 이용하여 AES SubBytes 함수를 전력분석 공격에 안전하게 구현하는 방법을 설명한다. 특히 AES SubBytes 함수는 유한체 GF(28) 상에서의 역원 연산 및 아핀 함수의 합성 함수로 구성 되어 있기 때문에 이번 장에서는 GF(28)상에서의 역원 연산을 주로 다룬다.
먼저 GF(28)의 각 원소는 다음과 같은 표기법 및 동형 사상 σ에 의해서 GF(((22)2)2)의 원소로 간주될 수 있다[9, 10]:
#
#
따라서 h∈GF(28)가 주어지면 어떤 a, b∈GF((22)2)에 대하여 σ(h) = ax + b와 같이 표기 가능하고 따라서 σ(h)-1 는 다음과 같이 계산 가능하다[10]:
#
즉 GF(28) 상의 역원 계산은 GF((22)2)상의 연산을 사용하여 구현 가능하며 이때 GF ((22)2)상의 비선형 연산은 #와 같은 역원 연산과 a2λ 와 같은 곱셈 연산이 된다. 비슷하게 a = a1x + a2, b = b1x + b2 ∈GF((22)2)에 대하여 a의 역원 및 a, b의 곱 ab는 다음과 같이 계산 가능하다[10]:
결국 a-1, ab계산은 GF(22)상의 연산을 사용하여 구현 가능하며 이때의 유일한 비선형 연산은 a1b1와 같은 곱셈 연산이 된다. 마지막으로 GF(22 )상의 곱셈 연산은 다음과 같이 구현 가능하며 이때의 유일한 비선형 연산은 GF(2)상의 곱셈, 즉 AND 게이트가 된다[10]: a= a1x+ a2, b=b1x+ b2∈GF (22 )에 대하여
ab= (a1b1⊕a1b2⊕a2b1)x⊕(a1b1⊕a2b2).
따라서 본 논문에서 제안한 AND 게이트에 대한 이차 마스킹된 G-equivariant 게이트를 이용하면 GF(2)상의 곱셈 연산인 AND 게이트를 (일차) 전력 분석 공격 및 글리치 공격에 안전하게 구현할 수 있으며 이는 다시 AES SubBytes 함수 및 AES 전체 알고리즘을 안전하게 구현할 수 있는 방법을 제공하게 된다.
V. 결론
본 논문에서는 전력분석 공격에 안전하게 블록 암호 알고리즘을 구현하는 방법에 관한 새로운 게이트 레벨 마스킹 기법을 제안하였으며 제안한 방법이 이차 G-equivariant함을 보임으로써 글리치 공격에 강인함을 보일 수 있었다. 또한 본 논문에서 제안한 방법을 이용하여 AES 알고리즘을 전력분석 공격 및 글리치 공격에 안전하게 구현할 수 있는 방법을 제시하였다.
* 본 연구는 ETRI의 연구개발과제인 K-SCARF 프로젝트로 수행하였음 (암호키 누출 검증 및 방지 원천 기술 연구)
References
- 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.
- P. Kocher, J. Jaffe, and B. Jun, "Differential power analysis," Advances in Cryptology, Crypto '99, LNCS 1666, pp. 388-397, 1999.
- T. Messerges, "Securing the AES finalists against power analysis attacks," Fast Software Encryption, FSE 2000, LNCS 1978, pp. 150-165, 2000.
- E. Trichina, "Combinational Logic Design for AES Subbyte Transformation on Masked Data," IACR ePrint 2003-236, 2003.
- J. Golic and R. Menicocci, "Universal Masking on Logic Gate Level," Electronics Letters, vol. 40, no. 9, pp. 526-527, Apr. 2004. https://doi.org/10.1049/el:20040385
- S. Mangard, T. Popp, and B.M. Gammel, "Side-Channel Leakage of Masked CMOS Gates," RSA Conference 2005, Cryptographer's Track, CR-RSA 2005, LNCS 3376, pp. 351-365, 2005.
- W. Fischer and B.M. Gammel, "Masking at Gate Level in the Presence of Glitches," 7th Workshop on Cryptographic Hardware and Embedded Systems, CHES 2005, LNCS 3659, pp. 187-200, 2005.
- National Institute of Standards and Technology, "Anouncing the Advanced Encryption Standard(AES)," FIPS 197, 2001.
- A. Satoh, S. Morioka, K. Takano, and S. Munetoh, "A Compact Rijndael Hardware Architecture with S-Box Optimization," Asiacrypt 2001, LNCS 2248, pp. 239-254, 2001.
- Yoo-Jin Baek and Mi-Jung Noh, "DPA-Resistant Finite Field Multipliers and Secure AES Design," 2nd Information Security Practice and Experience, ISPEC 2006, LNCS 3903, pp. 1-12, 2006.