I. 서론
타원곡선 이론을 이용한 공개키 암호시스템 (ECC) 은 Koblitz 와 Miller 에 의해 처음으로 제안되었다18.⑵ 타원곡선 암호시스템은 이산대수문제를 기반으로 하는 공개키 암호시스템이며 다른 암호 시스템과 비교하여 동일한 안전성에서 상대적으로 작은 키 사이즈를 제공한다. 타원곡선 암호시스템은 메모리와 계산능력이 제한된 스마트카드와 같은 장비에 구현이 적합하다. 또한 최근에 Kocher[10] 등은 암호 시스템이 구현 된 스마트카드의 부채널 공격 방법을 소개하였다. 암호시스템의 부채널 공격은 크게 시차 공격, 전력분석 공격, 오류주입 공격이 있으며 이 중에서 현재 전력분석 공격은 가장 활발하게 연구되고 있으며 스마트 카드 산업계에서도 공격에 대한 대응 방법을 적용하여 제품을 제작하고 있다. 전력분석 공격은 다시 SPA(Simple Power Analysis, 단순전력분석) 와 DPA(Differential Power Analysis, 차분 전력분석)으로 구분되며, 두 가지 공격은 타원 곡선 암호 시스템의 실제 구현에 많은 고려사항이 되고 있다. 타원곡선 암호시스템에 대한 전력분석 공격은 Coron이 처음으로〔4〕에서 소개하였다. 〔4〕에서 Coron은 SPA에 대한 대응방법으로 double-and- add-always 방법을, 그리고 DPA에 대한 대응 방법으로 비밀키의 랜덤화, 기저점의 은닉(Blinding), 二리고 사영좌표계(Projective coordinates) 방법을 소개하였다.
Oswald-Aigner는 SPA와 DPA에 대응하는 두 가지 랜덤한 덧셈-뺄셈 체인〔18, Randomized Automaton 1, 2〕을 제안하였다. 즉, 알고리즘 실행 중 랜덤비트.가 생성되어 타원곡선 스칼라 곱셈의 연산 절차가 랜덤하게 연산되도록 알고리즘을 고안하였다. Okeya-Sakurai는 랜덤한 덧셈-뺄셈 체인이 SPA에 취약함을 보였다[15,16]. 또한 Walter는 마코프 연쇄 모델(Markov chains model)을 이용하여 Oswald 와 Aigner의 랜덤한 덧셈-뺄셈 체인의 분석방법을 소개하였다'⑼. 그러나 Walter의 방법은 비밀키의 일부를 결정하지 못하는 단점이 있다. 즉, 단지 키의 엔트로피를 감소시킬 뿐 비밀키 전체를 탐색할 수 있는 명시적인 공격 알고리즘을 제시하지 못했다. 또한 구현 측면에서 Okeya-Sakurai의 방법보다 복잡하다.
본 논문에서는 Okeya-Sakurai의 공격 알고리즘의 잠재된 두 가지 문제점을 제시한다. 첫 번째는 공격자가 비밀키 d를 알아내기 위해서는 d의 길이를 알아야 한다. 공개키 파라메타로 그룹의 위수가 공개되지만. 비밀키는 그룹의 위수보다 작은 값들 중에서 랜덤하게 선택되어지기 때문에 실제로 정확하게 비밀키의 길이를 안다는 가정은 무리이다. 두 번째 문제점으로 Okeya-Sakurai는 무한원점 (point at in- flnity)의 덧셈연산을 간과했다. 일반적으로 이 경우에는 실제 산술 연산이 일어나지 않는다. 따라서 Okeya-Sakurai의 분석방법을 이용하여 비밀키를 정확히 얻기 위해서는 위의 두 가지 문제점이 해결되도록 공격 알고리즘이 수정되어야 한다. 이에 대한 자세한 사항은 m절에서 기술하도록 한다.
본 논문에서는 Okeya-Sakurai의 방법과 Wai ter의 방법과는 다른 새로운 강력한 공격 알고리즘을 제안하며 이때 공격자는 비밀키의 길이에 대한 정보를 필요로 하지 않는다. 본 논문의 공격 알고리즘은 Oswald-Aigner이 제안한 두 개의 랜덤한 덧셈 -뺄셈 체인 모두에 적용된다. 제안하는 알고리즘을 사용하면 기개의 AD 수열을 사용하여 비밀키을 완벽하게 복원할 수 있다. 비밀키 길이 Id에 대하여, 에러 확률은 최악의 경우
#
이다. 또한, 본 논문에서 제안하는 분석방법의 특징은 단순한 버전에 대한 분석 방법이 복잡한 버전에 대한 분석방법으로부터 쉽게 전환 가능하다. 즉, 하나의 공격 알고리즘으로 두 개의 랜덤한 덧셈-뺄셈 체인 연산 방식을 분석할 수 있다. 163비트 비밀키에 공격 알고리즘을 적용하여 구현한 결과, 단순한 형태의 알고리즘에 대해서는 20개의 AD수열로 대략 94%의 확률로 공격이 성공하며 30개의 AD수 열로는 대략 99%의 확률로 공격이 성공한다. 또한, 복잡한 형태에 대해서는 40개의 AD수열로 94%의 확률로 70개의 AD수열로는 99%로의 확률로 공격이 성공한다. 30개의 AD 수열을 이용했을 때 99%의 성공확률이 의미하는 바는, 만약 공격자가 30개의 AD 수열로 100번의 공격 시도를 한다면 99번은 정확한 비밀키를 획득할 수 있다는 것이다.
그러므로 본 논문에서는 Oswald-Aigner가 제안한 단순 혹은 복잡한 버전의 랜덤한 덧셈-뺄셈 체인을 이용한 대응 방법은 모두 SPA에 취약함을 제시한다. IV절에서〔18〕의 알고리즘 성질과 본 논문에서 제안하는 강력한 공격 알고리즘에 대해서 언급하며, V절에서 구현 결과를 제시한다.
II. 랜덤한 덧셈-뺄셈 체인 대응방법
Oswald-Aigner는 SPA와 DPA에 대응하는 두 가지 랜덤한 덧셈-뺄셈 체인 방법을〔18〕에서 제안하였다. 본 절에서는 Randomized Automaton 1 의 복잡한 형태인 Randomized Automaton 2에 대해서만 언급하기로 하며 두 가지 Randomized Automaton에 대한 자세한 설명은〔18〕에 기술되어 있다. 주어진 타원곡선의 기저점을 P라 하고 비밀키로 쓰이는 스칼라를 衫라 할 때, 衫P 계산하는 랜덤한 덧셈-뺄셈 체인의 연산은 다음과 같다.
Randomized Automaton 2 (복잡한 형태)
(초기값) P。0, Q <— P , J顶。<—, 그리고 State = 0. 여기서 0는 무한원점이다.
. State = 0인 경우,
一 di = 1인 경우; P<—P + Q. Q<—2Q, j>—j+1; State=1 으로 이동,
- di =0인 경우; Q<—2Q, j>j+1; State = 0 으로 이동,
. State = 1인 경우,
一j = \(\begin{equation} |d| \end{equation}\)인 경우; dP의 결과로 P를 반환,
一 di=1이고 난수 e = 1 인 경우; P<—P + Q, Q
<—2Q, j<—j+1 ; State = 1 으로 이동,
— di=1 이고 난수 e = 0인 경우; P<—P-Q, Q
<—2Q, j<—j +1: State = 11 으로 이동,
— di=0인 경우; Q<—2Q, j<—j+1; State=0 으로 이동.
. State = 11인 경우,
-j= \(\begin{equation} |d| \end{equation}\) 인 경우; dP의 결과로 P + Q를 반환,
-di= 1이고 난수 e = l인 경우: Q<—2Q, j<—j+1State = 11 으로 이동,
一 di = 1이고 난수 e = 0인 경우: Q—2Q, P
<— P + Q. j<—j+1; State = 1 으로 이동,
一必=0인 경우; P-P + Q, Q*-2Q. >T+1; State = 110 으로 이동.
. State = 110인 경우,
一 必 =1 이고 난수 e = l인 경우; P-P + Q, Q
—2Q, >T+1; State = 1 으로 이동,
一 必 =1이고 난수 e = 0인 경우; PsP-Q, Q
—2Q , M+1-. State=ll 으로 이동,
一必 =0인 경우; Q—2Q, r-;+l: State =0 으로 이동.
(\(\begin{equation} |d| \end{equation}\): d의 길이. d = (<九|_1, …, 由0))2)
III.[15, 16]에서 Okeya-Sakurai에 의해 제안된 공격방법에 대한 고려
Okeya-Sakurai의 공격 알고리즘은 세 가지 변수를 갱신하면서 실행된다. 즉, 비밀키 스칼라의 비트값 山의 결정, AD 수열 3들의 pivot 시점 加의 결정, 알고리즘 state의 결정이다. 그러나 그들의 분석 방법은 다음과 같은 두 가지 잠재된 문제가 있다.
- 공격자는 비밀키 d의 비트 길이 d를 알아야 한다 :
공격 알고리즘에서 0|의 비트 길이가 (a) 단계를제외하고 항상 사용되었다. 따라서 정확한 I이의 값을 알아야 알고리즘으로부터 키의 값을 찾을 수 있다는 의미이다. 하지만, 공격자가 2배 연산과 덧셈 연산을 구별할 수 있는 능력을 가지고 있다면 \d\ 값은 쉽게 얻을 수 있다. 왜냐하면 전체 스칼라 곱셈 과정에서 2배 연산은 모든 비트에서 항상 사용되어진다. 따라서 공격자가 자신이 얻은 AD수열에서 2배 연산의 횟수를 센다면 총 횟수가 바로 衫의 비트 길가 된다.
- 무한원점의 덧셈 연산을 간과했다 :
스칼라 곱셈 dP 과정에서 Q = 2O, Q = P + O와 같은 연산은 실제 산술 연산이 일어나지 않고 이 경우 점의 값을 레지스터에 할당하는 동작만을 하게 된다. 예를 들어〔15, 16〕의 분석방법의 문제를 살펴보자. d=(1001)2라 하고 2절의 알고리즘을 수행하면 다음과 같다.
i . 偽 = 1일 때는, P—O+P, Q-2P, 7T+1; state = 1 으로 이동.(2배 연산만 실행)
ii. (爲 =0일 때는, Q<—2Q, 尸顶+1; state = 0 으로 이동.(2배 연산만 실행)
iii. = 0일 때는, Q—2Q, I+ ] ; state = 0 으로 이동.(2배 연산만 실행)
iv. 处 = 1일 때는, P-P + Q, Q-2Q, 顶一顶+1; state =1 으로 이동.(덧셈과 2배 연산이 모두 실행
이 경우 공격자는 S = DDDADD같은 AD 수열을 얻게 된다. 따라서 공격자는 주어진 AD수열로부터 Okeya-Sakurai의 공격 알고리즘을 이용하여 비밀키를 衫=(1000)2으로 결정할 것이다. 따라서 무한원점의 덧셈 연산을 고려하지 않는다면 잘못된 비밀키 #를 유주하게 된다.
IV. 랜덤한 덧셈-뺄셈 체인에 대한 새로운 분석 방법
SPA 공격에서 공격자는 하나의 스칼라 곱셈의 전력 소비량을 관찰할 수 있음을 가정한다. 공격자의 목표는 스칼라 곱셈의 전력 소모량 파형을 관찰하여 얻은 정보를 이용하여 키를 찾는 것이다. 스칼라 곱셈은 점의 덧셈, 뺄셈 그리고 2배 연산의 수열로 간주된다. 점의 덧셈 연산은 2배 연산과는 다른 전력 소비 패턴을 가진다. 점의 덧셈과 뺄셈은 거의 같은 연산이므로 공격자가 구별하는 것이 불가능하도록 구성될 수 있다. 본 논문에서는 점의 덧셈과 2배 연산은 구별 가능하고, 점의 덧셈과 뺄셈은 구별 불가능하다고 가정한다. 앞으로는 덧셈과 뺄셈 연산 모두를 덧셈(A)이라 간단히 명한다. Oswald-Aigner의 랜덤한 덧셈-뺄셈 체인에서 스칼라 涉의 각 비트값 0과 1에 대응하는 덧셈과 2배 연산 패턴이 고정되지 않아서 SPA 공격으로 비밀키를 유도하는 것이 어려워 보였다.
본 논문에서는 전력 소비량 측정에 의한 비트와 연산의 새로운 필요충분조건 관계를 제안한다. 이 관계에 의하여 본 논문은 어떻게 공격자가 전력 소모량측정을 통하여 비밀키 d를 결정할 수 있는지 보인다. 제안하는 공격 알고리즘은 앞에서 언급한 문제점을 해결하였으며 Oswald-Aigner에 의하여 제안된 두개의 알고리즘에 모두 적용이 가능하다는 장점이 있다.
►■ 표기 : S는 AD수열이며 S는 덧셈 (A)과 2배 (D) 연산으로 구성된다. & [씨는 ⑷번째 수열의 A:번째 연산(A 또는 D)을 뜻하며 § 眞, "]은 i 번째 수열의 4번째부터 연속된 “개의 값들을 말한다. 旧는 A, D 문자의 수이며 비어있는 § [씨는 & [A:}=NULL이라 한다.
► 공격자의 목적 : 공격자는 타원 곡선 연산을 관찰할 수 있는 능력이 있으며 주어진 AD 수열을 이용하여 AD 수열과 키와의 관계를 유도하는 것이 그의 목적이다. 이러한 관계에서 생성된 정보를 이용하여 공격자는 비밀키 口를 알아내기 위하여 공격 알고리즘을 적용할 수 있다.
1. 랜덤한 덧셈-뺄셈 체인 대응방법이 가지고 있는 특성들
본 소절에서는 Oswald-Aigner가 제안한 랜덤한 덧셈-뺄셈 체인의 특성을 살펴본다. 또한 표 1, 2, 3으로부터 키의 비트와 AD수열 값의 관계를 유도한다.
표 1. 연속된 비트가 11 또는 01일 때의 AD수열(j-1 번째 state는 전부 10| 아니다.)
► 가정 : 공격자는 랜덤한 덧셈-뺄셈 체인 대응 방법이 적용된 암호장비에 주어진 타원 곡선 의기 저점 P를 입력하고 AD수열을 얻는다. 공격자는 n번의 반복 수행에서 “개의 AD 수열을 얻는다. §를 n개의 AD 수열 중에서 /번째 AD 수열이라 가정하자. 본 논문에서는 Okeya-Sakurai의 〔15, 16〕에서의 표기법을 따른다.
» 성질 L 만약 모든 标에 대해 [fcil]=A, S、[Z] =D (0 W Z M kit — 1) 이고 어떤 材為 에 대하여 &屁+ 2]=A, S』:* + 2[=D 이면 =<弓 =1 이며, 顶> 1인 경우 dQ=-- = 山_2 = 0이다.
►. 성질 2. 만약 모든 机에 대해 岛%J=A, 岛们 =D (0 W Z W 所, 一 1)이고 모든 如毎 대하여 & [ki2 + 이 = A 또는 %[ki3 + 끼 =D 이면 d"_i=0, 勿 = 1이다. 顶 = 2인 경우 偽 = 1이며, 그렇지 않은 경우 단 하나의 <力 = 1 (0 M Z 冬 顶 一 2)이고 나머지비트는 모두 0이다.
이 두 가지 성질은 점의 덧셈에서 하나의 점이 무한원점인 경우에서 발생한다. P에 무한원점이 저장되어 있는 경우 다음 비트가 1인 경우 덧셈 연산은 수행되지 않고 단지 2배 연산만 수행된다. 만약 AD 수열에서 A가 처음으로 나타난다면 현재 비트는 由 = 1 이며, 정확하게 하나만 4= l(o m z M 顶-1) 이고 나머지는 모두 0이다. 이전에 기술된 내용과 성질 3을 이용하면 성질 1과 2는 쉽게 검증된다. 성질 3은 1.1 절에 언급되어 있다.
» 정리 1. 만약 현재 상태가 state = 0 또는 state = 110일 때 (Randomized Automa ton 2의 경우), 키 비트 必 =0일 필요충분조건은 모든 机에 대해 岛 屁] =D이다.
, 정리 2. 만약 현재 상태가 state=0 또는 state = 1*^ 10 ^(Randomized Automaton 2의 경우) 키의 비트 必 =1일 필요충분조건은
정리 1과 2는 Randomized Automaton 1과 2 에 의하여 자명하다. 성질 1, 2와 정리 1, 2는 Ran domized Automaton 1과 2에 동시에 적용된다.
표 1은 이전의 연속된 비트가 11 또는 01이며 무한원점 이 아닐 때 %, 0+1의 계산 후의 AD수열과 AD 수열이 나타날 확률을 나타낸 것이다. 예를 들어 2행 4열의 1/4는 다음을 의미한다.
#
표 2에서는 PwO이고 연속된 비트가 11 또는 01이며 由 = 1일 때 AD수열 및 AD 수열이 나타날 확률을 나타낸다. 표 1과 2의 결과는 Randomized Automaton 1과 2에 적용된다.
표 2. 연속된 비트가 11 또는 01 이며 j = 1일 때 AD수열
1.1. Randomized Automaton 2 알고리즘의 성질
► 성질 3. 만약 어떤 机打2에 대해 岛屁] =D와 &[組] = A이면 이전의 두 비트는 <%q = d.j_A = 1 이거나 또는 顶— 2번째 상태가 state = 110일 때 dj_2 = 0 ¥, q_] = l이다.
성질 3은 4 = 1일 때 이전에 연속된 두 비트가 1이거나 이전의 연속된 세 비트가 110일 때 공격자가 AD수열에서 다음 비트를 결정할 수 없음을 함축한다. 첫 번째 경우는 다음과 같다.
#
이때 AD 수열의 원소 Dj(또는 A»는 %의 项번째비트에 대응한다.
두 번째 경우는 다음과 같다.
#
그러나 만약 이전의 두 비트가 모두 1이 아니거나이전의 두 비트가 dj-2 = 0, 由_1 = 1 이며 顶一2번째 상태가 state = 110이 아닐 때 다음 비트는 정리 1과 2에 의하여 결정된다. 표 3과 정리 1, 2에 의하여 성질 3은 항상 만족한다. 이 경우의 확률은 (2/3)"보다 작다.
표 3. 연속된 비트가 110일때 AD수열
► 정리 3. 만약 어떤 布為에 대해 § 低J=D와 &展J=A이기 위한 필요충분조건은 이전의 두 비트는 = =1이거나 또는 j-2 번째 상태가 state = 110일 때 이전의 두 비트는 %_2 = 0 = 1일 때이다. 필요조건에 대한 오류 확률은 (2/3)”보다 작다.
표 3의 결과는 P老。이고 이전의 연속된 비트가 110일 때 <以4+1의 계산 후 AD 수열과 AD 수열이 나타날 확률을 나타낸다.
1.2. 제안하는 공격 알고리즘
공격자는 랜덤한 덧셈-뺄셈 체인 대응방법이 적용된 암호화 장비에 타원곡선의 점을 입력하고 AD수 열을 얻는다. 공격자는 n번의 반복 수행에서 n개의 AD수열을 얻고, 아래와 같이 비밀키 d를 획득한다. 본 논문에서 제안하는 알고리즘은 두 개의 변수를 갱신하면서 실행된다. 하나는 비밀키 d의 비트값을 결정하는 것이고, 또 다른 하나는 S값의 위치 셔를 결정하는 것이다. 제안하는 공격 알고리즘은 Okeya -Sakurai의 것과 달리 state의 변수가 필요하지 않다.
1.2.1. Randomized Automaton 2의 공격 알고리즘
Randomized Automaton 2의 공격 알고리즘은 다음 4가지 알고리즘으로 구성된다.
(초기화): 底 = 0, 顶 = 0 ; Key Finding Algo- rithm을 실행한다. 您는 AD수열의 위치변수이고 j 는 비밀키의 비트와 관련이 있다.
[Key Finding Algorithm I ]
. 만약 어떤 机에 대하여 §J/%]=NULL인 경우 ; dj=l, 나머지 비트는 0으로 설정되며 알고리즘을 종료한다.
. 만약 모든 标에 대하여 岛 [屁J=A이고 어떤 «2 에 대하여 &"& + 2]=NULL인 경우;%=1 이고 단 하나만 % = 1(0 W Z W 顶 一1) 이며나머지는 모두 0이다. 顶번의 조사를 통해 dq을결정하고 알고리즘을 종료한다.
. 만약 모든 幻에 대하여 岛 KJ=D인 경우; 片, +1, 모든 /에 대해 庇—庇+L Key Finding Algorithm I 수행한다.
. 만약 모든 机에 대하여 岛低J =A이고
- 만약 어떤《2와 毎에 대하여 席[紐+ 2]=A이고 &』: * + 2]=D인 경우 ; dj_i=dj = l, 顶>1인 경우 d0 =... =
- 그렇지 않은 경우 : =o, q = i. 만약 顶 = 2이면 d0 = l, 그렇지 않으면 단 하나만 d; = 1 (0 W Z 冬 j — 2)이며 나머지는 모두 0이다. 顶一 1 번의 전수 검사를 통해 山을 결정, 顶―顶+1, 모든 2에 대해 k>—ki + 2, Key Finding Algorithm U 수행한다.
[Key Finding Algorithm II ]
. 만약 어떤 祈에 대하여 &J%]=NULL인 경우; d= 切;d" 이며 알고리즘을 종료한다.
. 만약 모든 祈에 대하여 竄底] =D인 경우; dj=O. 1+1: 모든 /에 대해 k^k.+ l. Key Finding Algorithm U 수행한다.
. 그렇지 않은 경우;
— 만약 모든 祝에 대하여 岛氐J=A인 경우 : 4 = 1, , 一, +1, 모든 网 대해 电 —庇 +2, Key Finding Algorithm U 수행한다.
一 그렇지 않은 경우 ; Key Finding Algo rithm in 수행한다.
[Key Finding Algorithm III]
. 만약 어떤 标에 대하여 岛庇] =NULL인 경우 ; d= »:# * 이며 알고리즘을 종료한다.
. 만약 어떤 粉에 대하여 鼠[处 +외 =NULL인 경우 : dj = l이고 d= 島* " 이며 알고리즘을 종료한다.
. 만약 모든 机에 대해 3」%, 3]=DAA이고 §』% + 5]=NULL인 경우 ; 0=4 + 1 = 1 이고 d= 이며 알고리즘을 종료한다. . 만약 어떤 宥에 대해 岛 K”이 =DAA인 경우; 一 만약 어떤 杨에 대해 蜘, 4]=DDAD 또는 易」庇“5]=ADDAD인 경우 dj = dj + i = L dj + 2 = 0. 1+3, 모든 /에 대해 &底, 4] = DDAD 이면 k^-ki + 4, 모든 2에 대해 明 [fci, 5]=DAADD. ADD AD. 또는 AD AD D이면 庇+ 5, 다른 경우이면 为广庇+ 6, Key Finding Algorithm IV 수행한다.
— 그렇지 않은 경우 ; dj = dj+i = l(dj + 2 = 1), 1+% ; 만약 모든 祈에 대해 岛低., 3] = DDD이면 庇—如+ 2, 만약 모든 /에 대해 Sit [fc;1, 3]=DDA 또는 &[%, 4]=ADDD이면 九一庇+3 다른 경우이면 为厂如+4 Key Finding Algorithm HI 수행한다.
. 그렇지 않은 경우 ;
— 만약 어떤 粉에 대해 岛[%, 이 =DAD인 경우; 。만약 어떤 材에 대해 岛队, 이 =ADD인 경우; dj = l, dj + 1 = 0, 7+2: 모든 洲 대해
& 底, 4]=ADAD이면 庵。庇+4, 그렇지 않으면 庇*一庇 + 3, 부분 Key Finding Algo rithm IV 수행한다.
。그렇지 않은 경우;山 = 0, dj+1 = l, /T+2; 모든 抑] 대해 鼠底, 3]=DAD이면 k^k, + 3, 그렇지 않으면 kf-kj+4 ; Key Finding Algorithm ID 수행한다.
一 아닌 경우 dj = Q, % + i=0 尸, +2; 모든 i 에 대해 §低, 2]=DD이면 庇+ 2, 그렇지않으면 kf-kj + 3'. Key Finding Algo rithm n 수행한다.
[Key Finding Algorithm IV ]
. 만약 어떤 "에 대하여 인 경우 ; dj = 1. >—顶+1 ; 모든 河 대해 庇-庇+2, Key Finding Algorithm ID 수행한다.
. 그렇지 않은 경우 ; dj = 0, j* —j+1 . 모든 i 에 대해 為厂庇+1, Key Finding Algo rithm n 수행한다.
1.2.2. Randomized Automaton 2의 공격 알고리즘의 증명
[Validity of the Key Finding Algorithm I ]
, Key Finding Algorithm에서 공격 알고리즘이 종료되는 경우는 두 가지 경우가 있다. 첫 번째 경우는 如|-1 = 1 이고 衫0 =・“=出 —2 = 0 인 경우이며 이 확률은 (1/2)너이다. 두 번째 경우는 c, d| — 1 = 1 이고, c?( = 1 ( OMMld — 2) 이고 나머지 비트가 모두 0인 경우이며 이 확률은 (IdT) . (专严t이다. 전자의 경우 d 는 오류 없이 결정되지만 후자의 경우 网一1번의 전수조사를 통해 %을 찾아야 한다.
- 만약 모든 机 에 대하여 昂 KJ=A이고, 어떤 板 毎에 대하여 &庇+ 2]=D이고, 亳屁 + 이 =D이면; dj_i=dj=l이며, 또한 项>1 이면 0 M / 冬 % —1 인 모든 Z에 대해 [I] = D인 사실과 성질 1에 의해 do=・“=dj_2=O 이다. 顶十1번째 단계에서 AD 수열 &의 위치는 |AI이 =2이므로 庇+ 2이 된다. 이 경우 오류확률은 정리 3에 의해 (2/3)”이다.
° 모든 2】盘2打3에 대하여 幻*J=A, 菟底+2] = D, , 队 +이 =D이면 dj-1 = 0, = 1 이다. 만약 顶 = 2이면 d0 = 1 이다. j > 2인 경우에는 応/弘「1인 모든 Z에 대해 岛们 =D인 사실과 성질 2에 의해서 必 = 1(0 三/<回一2)이고 나머지 비트는 모두 0 이다.
[Validity of the Key Finding Algorithm II ]
. 이전 두 비트가 dj_2 = 勺_1 = 0 또는 dy_2 = 0. %_|=1일 때(모든 AD 수열에 대하여, 顶一1번째 상태가 1인 경우), Key Finding Algorithm 口이 호출된다.
. 만약 모든 机에 대하여 §J&]=D 인 경우 ; 정리 1에 의하여 % = 0이다. |1기=1이므로 顶+ 1번째 단계에서 AD 수열 S, 의 위치는 伝 + 1이다.
. 그렇지 않은 경우 ;
- 모든 布에 대하여 岛] * =D 인 경우 ; 정리 2 로부터 % = 1이다. |AD|=2이므로顶+1번째 단계에서 AD 수열 S, 의 위치는 底+2이다.
- 그렇지 않은 경우 ; 이전 두 비트는 모두 1 이다.
[Validity of the Key Finding Algorithm III ]
. 이전 두 비트가 dj_2 = dj_x = 1 또는 df = 0, = l일 때 (모든 AD 수열에 대하여, 顶一 1 번째 상태가 1 이 아닌 경우), Key Fin ding Algorithm ID이 호출된다.
, Key Finding Algorithm HI이 종료되는 경우는 세 가지가 있다. 첫 번째 경우는 자명하며, 두 번째는 顶 = I이 一 1 일 때이며, 세 번째는 顶 = 01 — 2, % = 1 인 경우이다.
. 만약 项 = |d| —1 인 경우 ; 어떤 爲에 대하여 (1 W 祈 冬 n) 菟底+ 2]=NULL이다. 따라서 최상위 비트 dj = 1 이며 알고리즘은 종료된다. . 만약 顶 = 1에一 2, 如|_2 = 1인 경우 ; 최상위비트는 禹 = dj+ ] = 1 이다. 따라서 岛 [fc;, , 3] = DAA인 纺이 존재하고, 모든 衫에 대하여 虽屁+ 5}=NULL이다. 이 경우 오류확률은 표 1에 의하여 (3/4)"이다.
. 이전의 연속된 두 비트가 11 또는 01。一 1번째 상태가 모두가 1이 아닌 경우) 이고 4=1 인 경우 ;
— £, [%, 3]=DAA인 机과 &底, 4]=DDAD 또는 SM, , 5]=ADDAD 인 唄가 존재하는 경우 ; 표 2로부터 dj = d * = l, % + 2 = 0 이다. 이 경우 오류확률은 주어진 n개의 AD 수열에 대하여 (3/林)" + (1/2)”一(1/4)” 이 된다.
— 岛鹿, 3]=DAA 인 爲이 존재하고 모든 i2, i3 에 대하여 &此, 4/dDAD, 岛底, 5] 老 ADDAD 인 경우 ; 표 2로부터 <* = <"+[ = 1, (%+2 = 1)이며 底값 또한 결정된다. 이 경우 오류확률은 주어진 "개의 AD 수열에 대하여 (3/4)” 이 된다.
— 모든 机 에 대하여 岛 代«, 3] * DAA 이고 岛底, 3]=DAD 과 &底, 3] = ADD 을 만족하는 标와 毎가 존재하는 경우 ; 표 1로부터 dj = l. %+i=0 이며 4 값 또한 결정된다. 이 경우 오류확률은 n 개의 AD 수열에 대하여 (3/4)" + (1/2)”一(1/4)"이 된다.
— 모든 臨에 대하여 & 底, 3] X DAA 이고 岛庇, 3]=DAD 인 标가 존재하며 모든 & 에대하여 £, 底, 3] 老 ADD 인 경우; 표 1로부터 dj = 0, dj + A=l 이며 h 값 또한 결정된다. 이 경우 오류확률은 71개의 AD 수열에 대하여 (1/2尸이 된다.
-모든 机打2에 대하여 [郊3]kDAA이고 S& K, 3]xDAD 인 경우 ; 표 1로부터 d.j = % + i = 0이며 셔 값 또한 결정된다. 이 경우 오류확률 없이 키 비트가 결정된다.
[Validity of the Key Finding Algorithm IV ]
. 이전 세 비트가 dj_3 = dj_2 = 1, %-i = 0일 때, Key Finding Algorithm IV이 호출된다. . 을 만족하는 标이 존재하는 경우 ; 표 3으로부터 % = 1이며 kt 값 또한 결정된다. 이 경우 오류확률 없이 키 비트가 결정된다.
, 岛”j=d 을 만족하는 机이 존재하는 경우 ; 표 3 으로부터 % = 0이며 佑 값 또한 결정된다. 이 경우 오류확률 없이 키 비트가 결정된다.
1.2.3. 공격 알고리즘의 오류확률
공격 알고리즘이 종료될 경우를 제외하고 Key Finding Algorithm ID만이 키 비트 결정시 오류가 발생한다. Key Finding Algorithm HI에서 각 경우에 대한 오류확률은 다음과 같이 계산된다.
#
예를 들어 (dj, dj+i, q+2)= (1, 1, 0)인 경우 오류확률은 다음과 같이 계산된다.
#
따라서 Key Finding Algorithm m에서 총 오류확률 P 는 다음과 같다.
#(1)
여기서 Pi (1 苴 / M 5) 들은 Key Finding Algorithm 山이 각 상황에 경유할 확률을 말한다. L 을 공격 알고리즘 실행 중 Key Finding Algorithm m 이 경유되는 평균횟수라고 할 때, 제안하는 공격 알고리즘의 성공확률은 (1一尸产이 된다. n 이 커짐에 따라 (1 一户)£—1 임에 주목하자. Remark 1. Randomized Automaton 2에 대한 제안하는 공격 알고리즘은 Randomized Auto maton 1에도 쉽게 적용 가능하다. 즉, Key Find ing Algorithm IV와 Key Finding Algo rithm IV으로 진입하는 path를 제거하고 Key Finding Algorithm HI에서 생성되는 몇몇 path 를 변경하면 Randomized Automaton 2에 대한 공격 알고리즘은 Randomized Automaton 1에 대한 공격으로 변환된다.(그림 1 참조) 따라서 제안하는 분석방식은 하나의 공격 알고리즘을 이용하여 Random ized Automaton 1, 2를 동시에 분석할 수 있는 장점이 있다.
1.2.4. 공격 알고리즘 예제
본 소절에서는 Randomized Automaton 2에 대한 공격 알고리즘을 적용한 예를 들어 본다. 공격자가 다음 5개의 AD 수열을 획득하였다고 가정중!■자.
#
공격자는 다음의 단계를 거쳐 비밀키 w을 찾게 된다. STEP 1. (초기화) 庇 = 0, 丿=0으로 설정 ; Key Finding Algorithm I 으로 간다.
STEP 2 모든 1M/M5에 대하여 S, [0]=D이기 때문에, 7=1, k=\ (1MW5)으로
설정 ; Key Finding Algorithm I 으로 간다.
STEP 3. 모든 1M左5에 대하여 S, [1]=D이기 때문에, j=2, 庇 = 2(MzM5)으로설
정 ; Key Finding Algorithm I 으로 간다.
STEP 4. 모든 1MzM5에 대하여 S‘[2]=A, S, [4] =A이기 때문에, % = 1, % = 0, % = L
, =3, 庇 = 4 (1M/M5)으로설정 ; Key Find ing Algorithm HE로 간다.
STEP 5. 모든 에 대하여 S・[4]=A이기 때문에, 必 = 1, 7=4, 如 = 6 (1MW5)
으로 설정 ; Key Finding Algori thm II으로 간다.
STEP 6. S[6]=D, S4〔6]=A이기 때문에, Key Finding Algorithm HI으로 간다.
STEP 7. 모든 1MW5에 대하여 S, .[6, 3]=^DA A, 丰ADD이고, SJ6, 3]=DAD이기
때문에, 必=0, % = 1, 顶=6, (如, 为2, 炳丄4, 屁) = (9, 9, 9, 10, 10)으로 설정 ; Key Finding Algorithm 田으로 간다.
STEP 8. 모든 에 대하여 S丄如, 4] 女DD- AD, S5【10, 3]=DAA이기 때문에, d6
= d1= 1 (
STEP 9. S1[13, 3]=DAA. S2[12, 4] =DDAD 이기 때문에, d&=ds = l, 如)= 0, j=
11, (fcl, fc2, fc3, fc4;fc5) = (19, 16.17, 20, 19)으로 설정 ; Key Finding Algo rithm IV으로 간다.
STEP JQ SJ19]=D이기 때문에, ^1=0, 7 = 12, (如, 庇思, 屁, 屁)=(20, 17, 18, 21,
20)으로 설정 ; Key Finding Algori thm 口으로 간다.
STEP 11. 모든 1MM5에 대하여 &[妇 =A이기 때문에, dl2 = l, ;=13, (如, 伍,
姻, 知, , 缶)=(22, 19, 20, 23, 22)으로설정 ; Key Finding Algorithm U 으로 간다.
STEP 12.모든 1M 左5에 대하여 S“J=D。] 기 때문에, ^13 = 0, 顶=14, (庵思,
灼, 届, 展) = (23, 20.21, 24, 23)으로설정 ; Key Finding Algorithm II으로 간다.
STEP 13.모든 1M左5에 대하여 SJ思] =A이기 때문에, %4 = 1, 顶=16, (kx, k2,
炳, 知, 庵)=(25, 22, 23, 26, 25)으로설정 ; Key Finding Algorithm U 으로 간다.
STEP 14. SJ25]=NULL이기 때문에, d=(10 1001111101101)2으로 설정한다.
V . 구현결과와 대응방법
1. 구현결과
본 논문의 공격 알고리즘을 Randomized Au tomaton 1과 2에 적용하였다. 표준에서 제안된 163 비트에 적용한 구현 결과는 그림 1과 같다. 그림 1로부터 Automaton 1은 AD수열 20개와 30개로 각각 대략 94%와 99%의 확률로 공격이 성공한다. 그리고 복잡한 오토마타 2는 AD수열 40개와 70개로 각각은 대략 94%와 99%의 확률로 공격이 성공한다. 예를 들어 AD수열 30개로의 99%의 성공 확률은 공격자가 같은 비밀키에 대하여 AD수열 30개로 100번을 반복하였을 때 대략 99번 비밀키를 검출할 수 있음을 뜻한다. 식 (1)에서 확률 Pt 값은 시뮬레이션 결과 /h = 0.02, />2 = 0.04, 勿 = 0.01. 4 = 0.38, />5 = 0・53으로 나타났으며, 163 비트 비밀키에 대하여 L=50 이라는 결과를 얻었다. 시뮬레이션에 의해 얻은 값들로부터 20개의 AD 수열에 대하여 공격 알고리즘 성공 확률은 0.98이 된다.
그림 1. 공격 Automaton
2. 대응 방법
SPA를 방어하는 방법은 크게 double-and- add-always 방법콰 덧셈과 두 배 연산의 통합된 공식을 사용하는 방법 두 가지가 있다. 예를 들어 Hesse 또는 Jacobi 형태의 타원곡선에서 덧셈과 2 배 연산을 같은 공식으로 구성이 가능하다们卩 double-and-add-always 방법의 예는 Cotod의방법⑷, Montgomery 형태 타원곡선에서의 덧셈 체인 방법〔⑵, 임의의 타원곡선에서의 Montgomery 방식 덧셈 체인 방법이 있다.
그림 2. Randomized Automaton 1 과 2에 대한 공격 알고리즘의 성공 확률 비교
DPA 공격을 방어하기 위해서, Coron은 비밀키 마스킹, 기저점 블라인딩 방식, 사영좌표를 이용한 기저 점의 랜덤한 표현 방식과 같이 타원곡선 파라미터가 랜덤화 시켰다⑷. 또한 JoyvTymeri의 랜덤한 타원곡선 동형사상이나 랜덤한 유한체 동형사상을 이용하면, 스칼라 곱셈의 연산을 랜덤한 대상에서 계산되어 DPA 공격을 방어할 수 있게 된다⑺.
* 본 연구는 정보통신부 대학 IT연구센터 육성. 지원사업의연구결과로 수행 되었습니다.
References
- 안만기, 하재철, 이훈재, 문상재, '타원곡선 암호시스템에서 랜덤 m-ary 방법을 사용한 전력분석 공격의 대응방법, ' 정보보호학회논문지, 13권 3호, 35-43, 2003
- 임채훈, '부가채널 공격에 안전한 효율적인 타원곡선 상수배 알고리즘, ' 정보보호학회논문지, 12권 4호 pp. 99-83, 2002
- 하재철, 곽동진, 문상재, 'Folding 기법을 이용한 전력분석 공격에 대응하는 고속 스칼라곱셈, '정보보호학회논문지, 13권 3호. pp. 57-64, 2003
- J. S. Coron. 'Resistance against Differential Power Analysis for Elliptic Curve Crytosystems.' In Workshop on Cryptograp-hic Hardare and Embedded Systems (CHES 1999), LNCS 1717. pp. 292-302. 1999
- L. Goubin. 'A Refined Power-Analysis Attack on Elliptic Curve Cryptosysterns.' Public Key Cryptography (PKC 2003). LNCS 2567, pp. 199-211. 2003
- M. Joye and J. Quisquater. 'Hessian elliptic curves and side-channel attacks.' In Workshop on Cryptographic Hardware and Embedded Systems (CHES 2001). LNCS 2162. pp. 402- 410. 2001
- M. Joye and C. Tymen. "Protections against differential analysis for elliptic curve cryptography," In Workshop on Cryptographic Hardware and Embedded Systems (CHES 2001). LNCS 2162. 377-390. 2001
- N. Koblitz. 'Elliptic curve cryptosysterns,' In Mathematics of Computation. volume 48. pp. 203-209. 1987 https://doi.org/10.2307/2007884
- P. Kocher, 'Timing attacks on implementations of Diffie-Hellman. RSA, DSS, and other systems.' In Advances in Cryptology-CRYPTO 1996. LNCS 1109. pp. 104-113. 1996
- P. Kocher. J. Jaffe. and B. Jun. 'Differential power analysis.' In Advances in Cryptology-CRYFTO 1999. LNCS 1666. pp. 388-397. 1999
- P. Liardet and N. Smart. 'Preventing SPA/DPA in ECC systems using the Jacobi form,' In Workshop on Cryptographic Hardware and Embedded SyStems (CHES 2001). LNCS 2162, pp. 391-401, 2001
- V.S. Miller. 'Use of elliptic curves in cryptography,' In Advances in Cryptology- CRYPTO 1985. LNCS 218. pp.417-426, 1986
- F. Morain and J. Olivos, 'Speeding up the computation on an elliptic curve using addition-subtraction chains,' Inform Theory Appl., vol 24, pp. 531-543, 1990 https://doi.org/10.1051/ita/1990240605311
- K Okeya, K.Sakurai. 'Power analysis breaks elliptic curve cryptosystems even secure against the timing attack,' Indocrypt 2000, LNCS 1977, pp. 178- 190, 2000
- K Okeya, K. Sakurai, 'On Insecurity of the Side Channel Attack Countermeasure Using Addition-Subtraction Chains under Distinguishability between Addition and Doubling,' Information Security and Privacy (ACISP 2002), LNCS 2384, pp. 420-435, 2002
- K. Okeya, K. Sakurai. 'A Multiple Power Analysis Breaks the Advanced Version of the Randomized Addition-Subtraction Chains Countermeasure against Side Channel Attacks,' to appear in the proceedings of 2003 IEEE Information Theory Workshop
- K. Okeya, H. Kurumatani and K Sakurai, 'Elliptic curves with the Montgomery form and their cryptographic applications,' Public Key Cryptography (PKC 2000), LNCS 1751, pp. 446-465, 2000
- E. Oswald, M. Aigner, 'Randomized Addition-Subtraction Chains as a Countermeasure against Power Attacks,' In Workshop on Crypto graphic Hardware and Embedded Systems (CHES 2001), LNCS 2162, pp. 39-50, 2001
- C.D. Walter, 'Security Constraints on the Oswald-Aigner Exponentiation Algorithm,' Cryptology ePrint Archive, Report 2003/013, 2003. http://eprint. iacr.org/