DOI QR코드

DOI QR Code

블록 암호 ARIA-128에 대한 차분 오류 공격

Differential Fault Analysis on Block Cipher ARIA-128

  • 박세현 (고려대학교 정보보호연구원) ;
  • 정기태 (고려대학교 정보보호연구원) ;
  • 이유섭 (고려대학교 정보보호연구원) ;
  • 성재철 (서울시립대학교 수학과) ;
  • 홍석희 (고려대학교 정보보호연구원)
  • Park, Se-Hyun (Center for Information Security Technologies, Korea University) ;
  • Jeong, Ki-Tae (Center for Information Security Technologies, Korea University) ;
  • Lee, Yu-Seop (Center for Information Security Technologies, Korea University) ;
  • Sung, Jae-Chul (Department of Mathematics, University of Seoul) ;
  • Hong, Seok-Hie (Center for Information Security Technologies, Korea University)
  • 투고 : 2010.12.29
  • 심사 : 2011.05.24
  • 발행 : 2011.10.31

초록

차분 오류 공격(DFA)은 블록 암호의 안전성 분석에 널리 사용되는 부채널 공격 기법으로서, 대표적인 블록 암호인 DES, AES, ARIA, SEED 등에 적용되었다. 2008년 Wei 등은 ARIA-128에 대한 첫번째 DFA를 제안하였다. 이 공격은 평균 45개의 바이트 오류를 이용하여 128-비트 비밀키를 복구하였다. 본 논문에서는 Wei 등의 공격을 개선한 ARIA-128에 대한 DFA를 제안했다. 본 논문에서 제안하는 공격은 4개의 오류만을 이용하여 O($2^{32}$)의 계산 복잡도로 ARIA-128의 비밀키를 복구할 수 있다.

A differential fault analysis(DFA) is one of the most important side channel attacks on block ciphers. Most block ciphers, such as DES, AES, ARIA, SEED and so on., have been analysed by this attack. In 2008, Wei et al. proposed the first DFA on ARIA-128. Their attack can recover the 128-bit secrey key by about 45 faulty ciphertexts. In this paper, we propose an improved DFA on ARIA-128. We can recover the 12S-bit secret key by only 4 faulty ciphertexts with the computational complexity of O($2^{32}$).

키워드

Ⅰ. 서론

차분 오류 공격(DFA)은 기존의 차분 공격〔1〕 과오류 주입 공격이 결합된 부채널 공격 기법 중 하나이다. 1997년 DES에 최초로 적용되었으며, 이후 AES, Triple-DES, ARIA, SEED 등 대부분의 블록 암호에 적용되었다〔2, 3. 4, 5L ARIA는 전자 정부 구현 등으로 다양한 환경에 적합한 암호 알고리즘이 필요함에 따라 ETRI 부설 연구소 주도로 학계 , 국가정보원 등의 암호 기술 전문가들이 공동으로 개발한 128-비트 블록 암호이다〔6〕, 이 알고리즘은 경량 환경 및 하드웨어 구현을 위해 최적화된 involutional SPN 구조를 갖는 범용 블록 암호로서, 민간 암호화 알고리즘 SEED와 함께 전자 정부의 대국민 행정서비스용으로 보급되고 있으며, 스마트 카드 등의 초경량환경 및 고성능 서버 환경 등에서 장점을 가지고 있다. 또한 2004년에는 국가표준기본법에 의거. 지식경제부에 의하여 국가표준(KS)으로 지정되었다.

기제안된 ARIA에 대한 DFA는〔7〕에서 제안된 ARIA-128에 대한 공격 결과가 유일하다. 이 공격은 ARIA-128에 평균 45개의 비이트 오류를 주입하여 ARIA-128의 128-비트 비밀키를 복구한다. 먼저, 라운드 8 ~ 11의 각 라운드에 평균 11 개의 바이트 오류를 주입한 후, 발생하는 차분 특성을 이용하여 마지막 4개 라운드의 라운드 키를 복구한다. 그리고 복구한 라운드 키와 키스케줄 특성을 이용하여 128■비트 비밀키를 복구한다.

한편, Tunstall 등은 AES-128에 대한 DFA를 제안하였다〔8〕. 이 공격은 다음과 같은 세 개의 단계로 구성된다. 먼저, AES-128의 라운드 8에 1개의 랜덤 바이트 오류를 주입한 후 라.운드 9에서 발생하는 차분 특성을 이용하여 12개의 선형식을 구성한다. 그리고, 라운드 10의 라운드 키를 추측한 후 구성된 선형식을 만족하는 후보 라운드 키를 계산한다. 이후 복구된 후보 라운드 키와 키스케줄 특성을 이용하여 128-비트 비밀키를 복구한다.

본 논문에서는 ⑻에서 제안된 공격을 ARIA-128 에 적용한다. 본 논문에서 제안하는 공격은〔7, 8〕에서 제안된 DFA와 달리, 암 . 복호화 과정에 오류를 주입한다는 가정을 이용한다. 즉, 암 . 복호화 과정에서 라운드 10의 입력 레지스터에 2개의 바이트 오류를 각각 주입하여 라운드 12의 라운드 키를 각각 복구한다. 그리고 복구한 암 . 복호화 과정에서의 마지막 라운드 키와 키스케줄 특성을 이용하여 0(232)의 계산 복잡도로 ARIAT28의 128-비트 비밀키를 복구한다.

본 논문은 다음과 같이 구성되어 있다. 먼저, 2장에서는 AR1A228을 간략히 소개한다. 3장에서는 암 . 복호화 과정의 마지막 라운드 키를 얻는 방법을 제안한 후, 4장에서 복구된 마지막 라운드 키로부터 비밀키를 복구하는 방법을 제안한다. 마지막으로 5장에서는 결론을 맺는다.

Ⅱ. ARIA-128

블록 암호 ARIA-128은 128-비트 비밀키를 사용하는 12라운드 SPN구조이며 , 암. 복호화가 동일한 involution 구조를 갖는다. ARIAT28의 라운드함수는 [그림 1〕과 같이 라운드 키 덧셈. 치환 계층, 확산 계층으로 구성된다.

(그림 1) ARIA 암호화 과정

라운드 키 덧셈 과정에서는 128-비트 라운드 키를 128-비트 라운드 입력값과 비트별 XOR한다. 치환계층에서는 두 가지 유형의 8-비트 입, 출력 S-box와 그들의 역변환으로 구성된다.[그림 2〕와[그림 3〕 은각각 홀수 라운드와 짝수 라운드의 치환계층을 나타낸다. 확산 계층은 다음과 같은 16 X 16 involution 이진 행렬을 사용한 바이트 간의 확산 함수로 구성되어있다.

(그림 2) S-box layer type 1 (홀수 라운드 치환계층)

(그림 3) S-box layer type 2 (짝수 라운드 치환계층)

라운드 키 덧셈 과정에서는 128-비트 라운드 키를 128-비트 라운드 입력값과 비트별 XOR한다. 치환계층에서는 두 가지 유형의 8-비트 입 .출력 S-box와 그들의 역변환으로 구성된다.[그림 2〕와[그림 3〕 은각각 흘수 라운드와 짝수 라운드의 치환계층을 나타낸다. 확산 계층은[그림 4)와 같이 16X16 involution 이진 행렬을 사용한 바이트 간의 확산 함수로 구성되어 있다.

(그림 4) 확산계층

ARIA-128의 키 스케줄은 초기화 과정과 라운드키 생성 괴정으로 나뉜다. 초기화 괴정에서는 128-비트 비밀키 를 입력받아 KZ에 저장하고 KRe 0으로 패딩하여 256-비트 값를 구성한다.

KL\\KR = "에 00-- 00.

氏께砍을 이용하여 4개의 128-비트 값 I峪 用, 用, %를 아래와 같이 생성한다. 여기서, F。 와 F노 각각 ARIA-128의 홀수, 짝수 라운드 함수를 의미한다.

#

라운드 키 생성 과정에서는 위에서 생성한 珞, 尾, 吟1%를 조합하여 다음과 같은 과정을 통해 하:i, e施, 航3, …, 하;13을 생성한다.

#

Ⅲ. ARIA-128에 대한 차분 오류 공격

본 절에서는 ARIA-128에 대한 차분 오류 공격을 소개한다. 본 공격은 암 . 복호화 과정에서 爲o(라운드 10의 입력 레지스터, [그림 1〕참조)에 랜덤한 1-바이트 오류를 주입하여 , 암 . 복호화 과정에서 라운드 12의 라운드 키 (响_次如을 각각 복구한다.

3.1 ARIA-128의 차분 특성 구성

ARIA-128은 암호화와 복호화가 동일한 involution 구조로 설계되어 있어 암호화 과정과 복호화 과정의 차분 확산 특성이 동일하다. 그러므로 본 소절에서는 암호화 과정의 에 오류가 발생하였을 때, 발생하는 차분의 특성만 설명한다. 爲°에 랜덤한 1-바이트 오류가 발생한다고 가정한다. 이 때, 공격자는 오류 값과 오류 발생 위치를 알 수 없다. 오류가 발생하는 경우의 수는 16이므로, 오류가 발생하는 바이트 위치를 가정하여 16개의 차분 특성을 각각 구성한디.. 본 소절에서는 也购(라운드 10의 입력 레지스터의 0번째 바이트. Case I)과 瓦』(라운드 10의 입력 레지스터의 1번째 바이트. Case!!)에 오류가 발생하였다고 가정하였을 때, 발생하는 차분 특성을 통해 선형 식을 구성 하는 방법 만을 각각 소개한다. 兀g, 击0, 3, …, 乂“爵에 오류가 발생한 경우도 유사한 방법으로선 형식을 구성할 수 있다.

3.1.1 Case Ⅰ : X10,0에 오류가 발생하였을 때 △Z11의 차분 특성

Xjoe에 오류가 발생하고 X]®)의 차분값을 △馬財이라고 가정하였을 때 차분 확산 경로는[그림 5〕와 같다. △名膈이 nbox layei를 거친 후의 차분은 △珞, 0이 되며, △yw, (은 Diffusion layer를 통해 △瓦, 3, △■俗0, 4, 스%8, △.40, 9, △4), 13, △%), M도 확산된다. 이때 이 차분값들은 △匕。, 。과 동일하다. 이 차분들이 라운드 11의 5-box layer를 거친 후의 차분을 △匕1, 3, △匕 1, 4, △匕L6, △ ^11, 8, △ ^11.9, A ^1, 13, △ ^11, 14 라고 하면, 이 차분들이 Diffusion lay er 를 지나면서 라운드 n의 출력값 차분 △彳]은[그림 5〕와 같다. 여기서, △彳[의 5번째 바이트 △4, 5와 14번째 바이트 丄 m의 차분값은 알 수 없지만, 두 차분은 △Mm田△上, 4$ △匕*⑥로 동일함을 알 수 있다. 즉, 식 (1)-⑨를 구성할 수 있다. 또한. △身箪 과 △2U, 13이 동일하므로 식 (1)-⑥을 구성할 수 있다. 이러한 방법을 통해, 식 (1)과 같이 총 9개의 선형식을 구성할 수 있다. 이때 구성된 9개의 선형식에서는 △各顼을 제외한 15개 바이트의 차분 정보를 얻을 수 있다.

(그림  5) X10,0에 오류 발생 시 확산 경로

#(1)

3.1.2 Case Ⅱ : X10,1에 오류가 발생하였을 때 △Z11의 차분 특성

乂後, 에 오류가 발생하였을 때의 확산 경로는[그림 6〕과 같다. Case II도 Case I 과 우사한 방법으로 식 (2)와 같은 9개의 선형식을 구성할 수 있다. 여기서도 △彳w을 제외한 聽개의 바이트 차분 정보만 얻을 수 있다. 즉, Case I 과 Casell의 결과에서 알 수 있듯이 Xm, (0sK15)에 오류가 발생했다면 顼를 제외한 15개의 바이트 차분 정보를 얻을 수 있다. w%0, 3, ■" : -^10, 15에 오류가 발생할 경우도 유사한 방법으로 각각 9개의 선형식을 구성할 수 있다.

#(2)

[그림 6] X10,1에 오류 발생 시 확산 경로

3.2 암·복호화 라운드 12의 라운드 키(ek13, ek1) 복구

본 소절에서는 두 개의. 랜덤한 1-바이트 오류를 이용하여 (ek既하可)을 복구하는 방법을 소개한다. 공격아이디어는 공격자가 오류가 발생한 차분의 바이트 위치를 추측한 후, 3.1 절에서 구성한 선형식을 이용하여 틀린 후보 라운드 키들을 제거할 수 있다는 것이다. 오류가 발생한 바이트 위치를 틀리게 추측한 경우에는, 18개의 선형식(오류 1개당, 9개의 선형식을 구성)을 통해 높은 확률로 모든 후보 라운드 키가 필터링되며, 오류가 발생한 위치를 정확하게 추측한 경우에만 옳은 라운드 키를 복구할 수 있다.

ARIA는 암 . 복호화 과정 이 동일한 involution 구조로 설계되어 있으며, 단지 복호화 과정에서는 암호화 과정의 라운드 키가 역순으로 사용되기 때문에 e局은 裁I;;과 유사한 방법으로 복구된다. 따라서, 본 소절에서는 복호화 과정의 마지막 라운드 키인 e 幻에 대해서는 세부적인 공격 과정을 생략한다. (하하:J 을 복구하는 과정은 다음과 같다.

(1) 공격자는 임의의 평문 /저] 대해 암호문를 획득한다.

(2) 동일한 평문 户에 대해, 耳。에 1-바이트 오류가 발생한 2개의 암호문 (qq)를 얻는다.

(3) (q, q)의 오류가 발생할 수 있는 256(= 16 . 16) 가지 경우에 대해 각각 18개의 선형식을 구성한다.

(4) (q, q)의 오류 발생 위치를 선택(256가지 중 1가지)한 후. 다음과 같은 과정을 수행하여 후 보 响3을 계산한다.

① 1 ~3개 바이트 단위로 추측할 efc13ji(0<i< 15) 를 선택한다. 여기서 , 추측할 响如의 순서는 사용되는 선형식에 따라 정해진다(〔표 1L〔표 2〕 참조).

(표 1) Case Ⅲ에 대한 공격 과정

(표 2) Case ⅣV에 대한 공격 과정

② 추측한 冰為, 로 c와 (q, q)에서 복구 가능한 바이트를 복호화하여 (aq)과 (CQ)에 대한 △乙侦를 각각 계산한다.

③ 단계 ②에서 얻은 가 (3)에서 구성된 선형식을 만족하면 단계 (4)-①로 간다. 그렇지 않으면 단계(4)로 가서 (q, 弓)의 256가지 중 남은 오류 발생 위치를 선택한다.

(5) 복호화 과정에서 암호문 C에 대해 爲°에 1-바이트 오류가 발생한 2개의 평문 (弓%)를 얻는다.

(6) 단계 (4)와 유사한 방법으로 후보 e幻을 계산한다.

위의 공격은 오류가 발생한 위치에 따라, 동일한 위치에서 오류가 발생한 경우(Case HI)와 서로 다른 위치에서 오류가 발생한 경우(Case IV)로 구분된다. Case ID의 경우. 두 오류가 동일한 바이트(不姦)에 발생되기 때문에 3.1 절에서 언급한 것처럼. △彳顼에  대한 정보를 얻을 수 없다. 따라서 대응하는 响3/를 복구할 수가 없기 때문에 12。=비트 라운드 키만 복구할 수 있다* 하지만, Case IV의 경우는 두 오류가 서로 다른 바이트에서 발생하였기 때문에 128-비트 라운드 키를 모두 복구할 수 있다. 본 소절에서는 与⑭에 오류가 발생한 암호문 q. q를 얻은 경우 (Case DI)와, 也, o에 오류가 발생한 암호문 q과 為m에 오류가 발생한 암호문 q를 얻은 경우(Case IV)에 대해, 响3을 구하는 방법만을 설명한다. 나머지 254가지의 경우도 유사한 방법으로 후보 라운드 키를 계산할 수 있다.

3.2.1 Case Ⅲ에 대한 공격 과정

에 오류가 발생한 암호문 (q, q)를 얻었다고 가정한다. 吼을 추측하여 c와 (q, q)를 각각 복호화한 후, (aq)과 (aq)에 대한 을 계산한다. 그리고 식 (1)과 식 (2)의 선형식을 이용하여 틀린 후보 라운드 키를 필터링한다. 계산 복잡도를 줄이 . 기 위해서〔표 1〕과 같은 순서로 兩技을 나누어서 추측한다. 첫 번째로 (e知5, 响3, 14)를 추측하고. 식 (1)-⑨를 만족하는 (站05, 하:13, 14)만을 저장한다. 여기서, 가능한 (e知, s, *0M)의 수는 2*개이고, 추측된 (ekg* 하:後, 14)가 식 (1)-⑨를 만족할 확률은 2-8 이므로 (cq)과 (cq)에 대해 각각 식 (1)-⑨를적용할 경우 1개(=严.2-8.2-8)의 후보 (e 統5, 하商, 14)가 남을 것으로 기대할 수 있다. 앞 단계를 통과한 후보 (히膈5, 响3")에 대해, 하曲u을 추측하여 식 (1)-⑧을 만족흐는 후보(하膈5, 하 MS")를 저장한다. 이때 가능한 후보(efcj", 하骚如 하:13, M) =의 개수의 기댓값은 써=1 - 2匀이고, 위와 동일하게 두 개의 선형식을 사용하므로 이 과정을 통과하는 후보(响", 하膈1"吼, 3의 수의 기댓값은 2-8개 (=28 qf * 2-勺이다. 모든 과정을 거치면 총 18 개의 선형식이 사용되며 e电割을 제외한 120-비트 라운드 키가 복구된다. 그러나, 가정과 다르게 q과 q가 為倾에 오류가 주입된 암호문이 아니라면 2「的 확률로 모든 후보 响3이 필터링 된다. 실제 오류가 발생한 바이트 위치와 오류가 발생했다고 가정한 바이트 위치가 일치할 경우에만 옳은 키가 남을 것이다. 따라서, 响粕을 추측하여 2®개의 라운드 키 후보가 남는다. 즉, Case HI과 같이 동일한 바이트 i(O < I < 15)i 오류가 발생한 경우에는 响"를 제외한 120-비트 라운드 키를 복구할 수 있으며, 결과적으로 2**개의 라운드 키 후보가 남게 된다.

3.2.2 Case Ⅳ에 대한 공격 과정

Xjoe에 오류가 발생한 암호문 q과 에 오류가 발생한 암호문 G를 얻었다고 가정하면, Case HI과유사한 방법을 통해 响3의 후보키를 구할 수 있다. 가정으로부터, (uq)에 대한 에 대해서는 식(1) 의 선형식을 사용하고, (GG)에 대한 △.不에 대해서는 식 (2)의 선형식을 사용한다. 주측하는 efc13 순서는 〔표 2〕와 같다. Case W에서는 Case HI과 달리 128 -비트 "為을 추측한다. 18개의 선형식을 사용하기 때문에 실제 오류가 발생한 바이트 위치와 오류가 발생했다고 가정한 위치가 일치할 경우에만 옳은 라운드키가 남는다. 즉, Case IV과 같이 서로 다른 바이트에 오류가 발생한 경우에는 128-비트 라운드 키를 유일하게 찾을 수 있다.

나머지 254가지 경우에도 실제 오류가 발생한 위치와 오류가 발생했다고 가정한 위치가 동일한 경우에만, 후보 라운드 키가 남는다. 그러므로 가능한 256가지의 오류 발생 위치를 추측하여 1 ~ 28개의 후보 아13 을 구할 수 있다.

3.3 계산 복잡도 분석

본 공격의 계산 복잡도는 각 선형식을 만족하는 후보 라운드 키의 수와 그 다음 단계에서 추측되는 키 바이트의 수에 의존한다. 즉, 〔표 1〕의 첫 번째 단계에서 2개의 후보 라운드 키 바이트를 추측하므로의 계산 복잡도가 필요하다. 두 번째 단계에서는 첫 번째 단계에서 필터링 후 남은 1개의 후보 라운드 키와 1개의 라운드 키 바이트를 추측해야 하므로 이 단계의 계산 복잡도는 28이 된다.〔표 1〕과〔표 2]에서는 최대 계산 복잡도가 224이지만 256가지의 모든 경우에 대해 최대 계산 복잡도를 계산하면 232이다. 따라서 , 마지막 라운드 키를 복구하는데 필요한 계산 복잡도는。(户)이다. 본 공격에서 동일한 바이트에 동일한 오류가 주입되는 경우에는 1개의 오류 주입 암호문을 얻은 것과 동일하게 되어 라운드 키를 복구할 수 없으므로 본 공격의 실패 확률은 2-十=2-4.2-8) 이다.

3.4 구현결과

본 논문에서 제안하는 공격을 Intel(R) Core (TM)2 CPU 6400 @2.13GHz, RAM 2GB, Visual Studio 2008 환경에서 시뮬레이션 하였다. 구현 결과는〔표 3〕과 같다.

(표 3) 실험 결과

라운드 키 (e셔3, efc0 복구 공격을 각각 100회 실시하였다. Case HI과 같이 암 ..복호화 과정에서 夠。의 동일한 바이트에 오류가 주입된 경우는 德13이 6회, e死이 10회였다. 16회 모두 2®개의 아* 또는 响이복구되었다. Case IV처럼 암 * 복호화 과정에서 而의서로 다른 바이트에 오류가 주입된 경우는 Mu이 94회, e&이 90회였다. 이때 복구된 (响$响)은 4, 8, 16 개였다. 동일한 바이트에 오류가 주입된 경우에는 기대한 것처럼 28개의 후보 라운드 키가 남았지만, 서로 다른 바이트에 오류가 주입된 경우에는 기댓값보다 많은 4, 8 또는 16개의 후보 라운드 키가 남았다. 이는 ARIA 步蜘의 차분 분포 특성으로 인해 발생한다. ARIA $如의 차분 분포표의 값은 0, 2 또는 4이다. 즉, 임의의 출력 차분값에 대해 2 또는 4개의 가능한 입력 차분값이 존재한다. 따라서, 18개의 선형식에서 한 번만 필터링 되는 △耳侦(0MWM15)의 경우 옳은 라운드 키 외에 1개나 3개의 틀린 라운드 키가 함께 필터링 과정을 통과한다. 예를 들어 . Case IV에서 사용된 18개의 선형식에서 △Ww △各*, 1은 한 번만 필터링 된다. 즉, △瓦, 1의 필터링 과정을 통해 얻게 되는 (하:ze’efcg)은 옳은 키 이외에 1개나 3개의 틀린 키가 함께 필터링 과정을 통과하게 된다. 따라서 , 나머지 14개 바이트响3, 2, 하:13, 3, …, 하恥M)가 유일하게 결정되더라도 4, 8 또는 16개의 후보 라운드 키가 남게 된다.

Ⅳ. 라운드 키로부터 비밀키 복구 방법

본 절에서는 3절에서 제안한 방법을 통하여 爾I과 하3을 복구하였을 때, 이를 이용하여 ARIA-128의 128-비트 비밀키를 복구하는 방법을 소개한다. ARIAT28의 키스케줄에서 하;[과 展矗은 다음과 같이 계산된다.

#(3)

#(4)

식 (3)과 식 (4)를 XOR하여 식 (5)를 구할 수

#(5)

먼저 예시를 통해 식 (5)에서 坷을 구하는 방법을 살펴보자.

예시 1. Q를 임의의 4■비트 값, 泌을 4x4 행렬로 정의하였을 때(Q恣1㊉a》2)=Ma)를 만족하는 Q를 구해보자.

a는 4개의 변수 (a.ee(2), 0 < i < 3) 로 표현할 수 있다. 이 때, 藉 , 饥를 4x4 행렬로 정의하면 (a«l) = 的 - (a)와 (a》2)= 丿峨 - S)를 만족하는 虬, 使는 식 ⑹과 같이 구할 수 있다.

#(6)

(Q応 1£q》2)= (』4&鶴)(a) = Ma)이므로 식 (6)

#(7)

(a<l©a»2)=(AZlffi7le)(a)=Ma)7]- 되므로 이식을 만족하는 a값을 구하기 위하여 泌을 가우스 소anoon법으로 변형하면 JJJ} 이 된다. 즉, 奶 Tank는 3이looo(v고 nullitg는 1 이므로 7]능한 a의 개수는 2】 =(2卜3)개가 된다.

예시 1과 같은 방법으로 128-비트 明을 128개의 변수 诚, 讪诚…/妒气诺WGF(2), 0MjM127)로 표현하면, 식 (5)의 우변은 식 (8)과 같다. 여기서 Me 128X128 행렬이다.

#(8)

계산 결과, M의 rank는■ ]26, nullitye: 2임을 확인하였다. 즉, 响과 响3이 주어지면 22 (=2128-126) 개의 가능한 屁을 계산할 수 있다. 식 (3)이나 식 (4) 에 庵을 대입하여 쉽게 珥을 구할 수 있으므로 ekx 의 후보키가 /개, 他3의 후보키가 J개가 주어지면 22 齐 ><顶개의 후보(J%, 屁)을 구할 수 있다. 또한, Wo, 四은 ARIA-128의 키스케줄에 따라 식 ⑼를 만족해야 한다.

#(9)

임의의 WQ, 所이 식 (9)를 만족할 확률은 2-128이다. 3.2절에서 언급하였듯이, 하C]와 하¥의 후보 수는 각각 최대 2^개가 남으므로 식 (9)를 통과하는 후보 (庵, 明)의 개수는 22 . 2“ . 2“ . 2-D8 =2-11。이다. 이는 틀린 비밀키가 본 논문에서 제안하는 공격을 통과할 확률이 매우 낮음을 의미한다. 이 과정의 계산복잡도는 3.2절의 라운드 키 복구 계산 복잡도에 비해 미미하므로 전체 계산 복잡도는 0(2%)이다.

Ⅴ. 결론

2008년 Wei 등은 평균 45개의 오류를 주입하여 ARIA-128에 대한 DFA를 제안하였다. 하지만, 이 공격은 마지막 4개를 라운드 키를 유일하게 찾을 때까지 오류를 주입하여야 하므로 현실적으로 많은 제약점이 있다. 따라서, 본 논문에서는 오류 주입 수를 줄여 좀 더 현실적인 DFA를 제안했다.〔표 4〕에 제시된 것처럼 본 논문에서는 단지 4개의 오류를 주입하여 128-비트 비밀키를 복구한다.

(표 4) 공격 결과 비교

암 . 복호화 과정의 라운드 10에 각각 2개의 오류를 주입한 후 라운드 11에서 발생하는 차분 특성을 이용하여 선형식을 구성하고, 이 선형식을 이용하여 암 . 복호화 마지막 라운드 키 (하可3, 响)을 복구하였다. 마지막으로 복구된 라운드 키와 키 스케줄의 특성을 이용하여 비밀키를 복원하였다. 즉, 4개의 오류를 주입하여 0(232)의 계산 복잡도로 ARIA-128에 대한 비밀키를 복구하였다. 이 공격은 기제안된 ARIA-128 에 대한 DFA 공격보다 더 적은 오류 주입을 통해 128-비트 비밀키를 복구한다.

* 이 연구에 참여한 연구자(의 일부)는 '2단계bk21사업의 지원비를 받았음

참고문헌

  1. E. Biham and A. Shamir, "Differential Cryptanalysis of DES-like Cryptosystem," Journal of Cryptology, Vol. 4, no. 1, pp. 3-72, Springer-Verlag, Feb. 1991. https://doi.org/10.1007/BF00630563
  2. 정기태, 성재철, 홍석희, "블록 암호 SEED에 대한 차분 오류 공격," 정보보보학회논문지, 20(4), pp. 17-24, 2010년 8월.
  3. E. Biham and A. Shamir, "Differential Faut Analysis of Secret Key Cryptosystems," CRYPTO'97, LNCS 1294, pp. 513-525, 1997.
  4. P. Dusart, G. Letourneux, and O. Vivolo, "Differntial Fault Attack on AES," ACNS'03, LNCS 2846, pp. 293-306, 2003.
  5. L. Hemme, "A Differential Faut Aanalysis against Early Rounds of (Triple)-DES," CHES'04, LNCS 3156, pp. 254-267, 2004.
  6. Daesung Kwon, Jaesung Kim, Sangwoo Park, Soo Hak Sung, Yaekwon Sohn, Jung Hwan Song, Yongjin Yeom, E-Joong Yoon, Sangjin Lee, Jaewon Lee, Seongtaek Chee, Daewan Han, and Jin Hong, "New block cipher ARIA," ICISC '03, LNCS 2971, pp. 432-445, 2003.
  7. W. Li, D. Gu and J. Li, "Differential fault analysis on the ARIA algorithm," Information Sciences, Vol. 178, no. 19, pp. 3727-3737, Oct. 2008. https://doi.org/10.1016/j.ins.2008.05.031
  8. M. Tunstall1 and D. Mukhopadhyay, "Diff erential Fault Analysis of the Advanced Encryption Standard using a Single Fault," IACR ePrint 2009-575, Nov. 2009.