DOI QR코드

DOI QR Code

CLEFIA와 ARIA 블록 암호에 대한 다중불능차분공격

Multiple Impossible Differential Cryptanalysis of Block Cipher CLEFIA and ARIA

  • 최준근 (고려대학교 정보경영공학전문대학원) ;
  • 김종성 (고려대학교 정보경영공학전문대학원) ;
  • 성재철 (서울시립대학교 수학과) ;
  • 홍석희 (고려대학교 정보경영공학전문대학원)
  • Choi, Joon-Geun (Center for Information Security Technologies(CIST), Korea University) ;
  • Kim, Jong-Sung (Center for Information Security Technologies(CIST), Korea University) ;
  • Sung, Jae-Chul (Department of Mathematics, University of Seoul) ;
  • Hong, Seok-Hie (Center for Information Security Technologies(CIST), Korea University)
  • 발행 : 2009.02.28

초록

CLEFIA는 SONY사에서 제안한 128-비트 블록 암호이다. 그리고 ARIA는 국내 표준으로 선정된 128-비트 블록 암호이다. 본 논문에서는 다중 불능 차분 공격을 소개하고, [7]에서 제시한 9-라운드 불능 차분을 이용하여 다중 불능 차분 공격을 CLEFIA에 적용한다. 또한 [11]에서 제시한 4-라운드 불능 차분을 이용하여 다중 불능 차분 공격을 ARIA에 적용한다. 본 논문의 CLEFIA 및 ARIA에 대한 다중 불능 차분 공격은 지금까지 제안된 불능 차분 공격보다 더 좋은 결과를 보여준다.

CLEFIA is a 128-bit block cipher which is proposed by SONY corporation and ARIA is a 128-bit block cipher which is selected as a standard cryptographic primitive. In this paper, we introduce new multiple impossible differential cryptanalysis and apply it to CLEFIA using 9-round impossible differentials proposed in [7], and apply it to ARIA using 4-round impossible differentials proposed in [11]. Our cryptanalytic results on CLEFIA and ARIA are better than previous impossible differential attacks.

키워드

Ⅰ. 서론

CLEFIA[1,2]는 음악이나 영상 등의 데이터 유통이 가속하는 환경하에서, 저작권 보호 및 사용자 인증을 위해 SONY사에서 개발한 128-비트 블록 암호이다. 최근 CLEFIA 블록 암호에 대한 연구가 진행되면서 여러 가지 분석 결과가 제시되고 있다. SONY사의 자체 평가에서는 선형 공격, 차분 공격, 불능 차분 공격, 연관키 공격 등에 의한 안전성 분석 결과를 제시하였으며[1,3], [4]에서는 차분 오류 공격을 이용하여 18개의 오류 암호문으로 128-비트의 비밀키를 복구할 수 있고, 54개의 오류 암호문으로 192-비트 및 256-비트의 비밀키를 복구할 수 있음을 보였다. [5]에서는 새로운 접근으로 [3]에서 제시한 불능 차분 공격의 결과보다 더 효율적인 결과를 제시하였다. 그리고 [6]에서는 9-라운드 불능 차분을 제시하고, 이를 이용하여 불능 차분 공격을 12-라운드 CLEFIA-128과 14-라운드 CLEFIA-192, CLEFIA-256에 적용하였다.

현재까지 CLEFIA 블록 암호에 대한 가장 효과적인 분석 결과는 9-라운드 불능 차분을 이용한 12-라운드 CLEFIA-128, 13-라운드 CLEFIA-192, 그리고 15-라운드 CLEFIA-256에 대한 불능 차분 공격이다[7]. CLEFIA의 구조와 관련된 9-라운드 불능 차분[3], 행렬의 branch number와 관련된 다른 9-라운드 불능 차분[6]과 다르게 [7]에서는 CLEFIA의 선형 행렬 M0, M1의 특징을 분석하여 향상된 9-라운드 불능 차분을 제시하였다. 본 논문에서는 새로운 다중 불능 차분 공격을 소개하고, [7]에서 제시한 9-라운드 불능 차분을 다중 불능 차분 공격에 적용하여 CLEFIA를 분석한다.

한편, 국내 표준으로 선정된 ARIA[8]블록 암호에 대한 연구도 최근 활발하게 진행되고 있다. 자체 평가에서는 차분 공격, 선형 공격, 부정 차분 공격, 고계 차분 공격 등에 의한 안전성 분석 결과를 제시하였으며[8], [9]에서는 부정차분공격 및 선형 공격에 대한 분석 결과를 제시하였다. 이후 Wu 등에 의해서 처음으로 4-라운드 불능 차분이 제시되었고[10], 이를 이용하여 6-라운드 불능 차분 공격법을 적용하였다. 그리고 [11]에서는 [10]에서 제안된 4-라운드 불능 차분을 일반화시킨 후, 2113의 선택 평문과 2121.5의 시간 복잡도로 6-라운드 ARIA의 비밀키를 복구하였다. 또한 서정갑 등이 ARIA에 대한 차분전력분석공격[12]을 소개하였다. 본 논문에서는 [11]에서 제시한 4-라운드 불능 차분을 다중 불능 차분 공격에 적용하여 ARIA를 분석한다.

본 공격은 동일한 입력 불능 차분에 대한 여러 개의 출력 불능 차분을 순차적으로 고려하여 올바르지 않은 키를 다중으로 걸러내기 때문에 필요한 평문 쌍과 시간 복잡도를 줄일 수 있다. 본 논문의 분석 결과와 이전의 불능 차분 공격 분석 결과에 대한 비교는 [표 1]과 같다.

[표 1] 분석 결과 비교

본 논문의 구성은 다음과 같다. 2장에서는 CLEFIA와 ARIA 블록 암호 알고리즘을 묘사하고, 3장에서 다중 불능 차분 공격 방법을 소개한다. 4장에서는 다중 불능 차분 공격법을 CLEFIA에 적용하고, 5장에서 다중 불능 차분 공격법을 ARIA에 적용한다. 마지막으로 6장은 본 논문의 결론이다.

Ⅱ. CLEFIA 블록 암호

본 장에서는 본 논문에 사용되는 표기법을 정리하고, CLEFIA와 ARIA 블록 암호를 소개한다.

2.1 표기법

· a⊕b : a와 b의 비트별 배타적 논리합

· a|b : a와 b의 연접

· aT : 벡터 a의 전치 벡터

· P (C) : 128-비트 평문 (암호문)

· Δa : 차분

· a(n) : n-비트 데이터 a

· [#] : i번째 라운드의 출력값 (#)

· # (#) : i번째 라운드의 입력값 (출력값)

· # (#) : i번째 라운드의 S-box Layer 이후의 값 (Diffusion Layer 이후의 값)

· # : #의 j번째 바이트 (*∈{I,O,S,D})

· RK(WK) : 라운드 키(화이트닝 키)

2.2 CLEFIA 블록 암호 소개

CLEFIA는 128-비트 블록 크기를 가지며, 128-비트, 192-비트, 그리고 256-비트의 비밀키 크기를 가진다. 그리고 키 길이에 따라 각각 18-라운드, 22-라운드, 26-라운드를 적용한다. CLEFIA는 128-비트의 평문 P = (P0, P1, P2, P3)과 n-비트 키(n = 128, 192, 256)를 입력받아 128-비트의 암호문을 출력한다. CLEFIA의 암호화 과정은 다음과 같다 ([그림 1] 참조).

[그림 1] r-라운드 CLEFIA 전체 구조

단계 1. #

단계 2. #

단계 3. # 

F0 함수와 F1 함수는 32-비트 데이터 값과 키를 입력 받아 32-비트 값을 출력한다 ([그림 2] 참조). F0 함수의 데이터 처리 과정은 다음과 같다.

단계 1. x = x0(8)|x1(8)|x2(8)|x3(8)

단계 2. S(x) = S0(x0(8)⊕RK0(8))| 

S1(x1(8)⊕RK1(8))|S0(x2(8)⊕RK2(8))|

S1(x3(8)⊕RK3(8)) = z0(8)|z1(8)|z2(8)|z3(8)

단계 3. y = M0(z0(8) ,z1(8) ,z2(8) ,z3(8))T

F1 함수의 데이터 처리 과정은 다음과 같다.

단계 1. x = x0(8)|x1(8)|x2(8)|x3(8)

단계 2. S(x) = S1 (x0(8)⊕RK0(8))| 

S0(x1(8)⊕RK1(8))|S0 (x2(8)⊕RK2(8))|

S0(x3(8)⊕RK3(8)) = z0(8) |z1(8)|z2(8)|z3(8)

단계 3. y = M1(z0(8), z1(8), z2(8), z3(8))T

S0, S1은 비선형 8-비트 S-Box이고, 두 행렬 M0과 M1은 다음과 같이 정의한다.

 #,

#.

행렬과 벡터 연산은 GF(28)에서 수행되며, 기약다항식은 x8+x4+x3+x2+1이다.

2.3 ARIA 블록 암호 소개

ARIA는 128-비트 블록 크기를 가지며, 128-비트, 192-비트, 그리고 256-비트의 비밀키 크기를 가진다. 그리고 키 길이에 따라 각각 12-라운드, 14-라운드, 16-라운드를 적용한다. ARIA는 SPN 구조를 설계 논리로 적용하였으며, 128-비트의 평문 P = (p0,...,p15)과 n-비트 키(n = 128, 192, 256)를 입력받아 128-비트의 암호문을 출력한다. ARIA의 라운드 함수는 Round Key Addition(RKA), Substitution Layer (SL), Diffusion Layer(DL) 의 3가지 기본 연산을 차례로 수행한다. 첫 라운드 전에 초기 RKA 연산이 먼저 수행되며, 마지막 라운드에는 DL 연산을 제외한다 ([그림 3] 참조).

[그림 3] ARIA 전체 구조

1. RKA : 128-비트 라운드 키를 XOR 연산한다.

2. SL : 두 개의 8×8 S-box를 이용하여 연산한다. 홀수 라운드에서는 첫 번째 타입을 적용하고, 짝수 라운드에서는 두 번째 타입을 적용한다.

SL 타입 1

SL 타입 2

3. DL : A2= I 가 되는 16×16 행렬 A를 이용하여 연산한다. 행렬A는

A : ({0,1}8)16→({0,1}8)16로 정의하며, 다음과 같다.

# 

(x0,x1,...,x15 ) ↦ (y0,y1 ,...,y15 )일 때, 각 8-비트 출력 값은 다음과 같다.

y0 = x3⊕x4⊕x6⊕x8⊕x9⊕x13⊕x14,

y1 = x2⊕x5⊕x7⊕x8⊕x9⊕x12⊕x15,

y2 = x1⊕x4⊕x6⊕x10⊕x11⊕x12⊕x15,

y3 = x0⊕x5⊕x7⊕x10⊕x11⊕x13⊕x14,

y4 = x0⊕x2⊕x5⊕x8⊕x11⊕x14⊕x15,

y5 = x1⊕x3⊕x4⊕x9⊕x10⊕x14⊕x15,

y6 = x0⊕x2⊕x7⊕x9⊕x10⊕x12⊕x13,

y7 = x1⊕x3⊕x6⊕x8⊕x11⊕x12⊕x13,

y8 = x0⊕x1⊕x4⊕x7⊕x10⊕x13⊕x15,

y9 = x0⊕x1⊕x5⊕x6⊕x11⊕x12⊕x14,

y10 = x2⊕x3⊕x5⊕x6⊕x8⊕x13⊕x15,

y11 = x2⊕x3⊕x4⊕x7⊕x9⊕x12⊕x14,

y12 = x1⊕x2⊕x6⊕x7⊕x9⊕x11⊕x12,

y13 = x0⊕x3⊕x6⊕x7⊕x8⊕x10⊕x13,

y14 = x0⊕x3⊕x4⊕x5⊕x9⊕x11⊕x14,

y15 = x1⊕x2⊕x4⊕x5⊕x8⊕x10⊕x15

Ⅲ. 다중 불능 차분 공격

불능 차분 공격은 E. Biham, A. Biryukov, A. Shamir 등에 의해 1999년 처음 소개되었다[13]. 이후 XTEA와 TEA의 축소된 라운드[14], 일반적인 블록 암호 구조[15], 30-라운드 SHACAL-2[16], 6-라운드 AES[17] 등에 불능차분공격이 적용되었다. 이 공격법은 선택 평문 공격으로 31-라운드 SKIPJACK을 분석하는데 사용되었다. 불능 차분 공격은 전혀 일어날 수 없는 차분 특성을 이용하여 올바르지 않은 키 후보들을 걸러낸 후 올바른 키를 찾아낸다.

일반적인 r-라운드 불능 차분 공격은 다음과 같다. 

1. 처음 r′-라운드에 대한 불능 차분 특성을 찾는다(r′<r).

2. 찾아낸 불능 차분 특성의 입력 차분을 만족하는 선택 평문 쌍에 대한 암호문 쌍을 얻는다. 이 때, 불능 차분 특성의 출력 차분으로부터 마지막 k-라운드 후에 나올 수 있는 출력 차분 성질을 만족하는 암호문 쌍만 남긴다 (k = r-r′): 암호문 쌍 필터링 과정.

3. 마지막 k-라운드의 키를 추측하여 남은 암호문 쌍을 복호화한 후 불능 차분 특성의 출력 차분을 만족하는지 검사한다.

4. 출력 차분을 만족하는 라운드 키는 버리고, 이 과정을 반복하여 최종적으로 남은 키를 올바른 키로 택한다.

본 논문에서 제안하는 다중 불능 차분 공격은 동일한 입력 불능 차분에 대한 여러 종류의 출력 불능 차분을 찾고, 이를 순차적으로 고려하여 올바르지 않은 키를 다중으로 걸러낸다.

r-라운드 다중 불능 차분 공격은 다음과 같다.

1. 동일한 입력 불능 차분에 대한 여러 종류의 출력 불능 차분을 갖는 처음 r′-라운드 다중 불능 차분 특성을 찾는다 (r′-라운드 다중 불능 차분특성을 찾는다 (r′ 차분 형태는 암호문 복호화시 관여하는 키 비트가 겹치는 부분과 그렇지 않은 부분이 있다고 가정한다. 출력 불능 차분의 형태를 A1,A2,...,As라 하자.

2. 찾아낸 다중 불능 차분 특성의 입력 차분을 만족 하는 선택 평문 쌍에 대한 암호문 쌍을 얻는다. 이때, 다중 불능 차분 특성의 출력 차분 A1,A2,...,As 각각에 대하여 마지막 k-라운드 후에 나올 수 있는 출력 차분 성질을 만족하는 암호문 쌍을 남긴다

(k = r-r′) : 암호문 쌍 필터링 과정.

3. i= 1부터 i= s까지 다음을 시행한다. Ai에 관여하는 키를 추측한 후 남아 있는 관계된 암호문 쌍을 복구하여 Ai 형태가 나오면 추측한 키를 버린다. 이 과정을 수행할 때, Aj의 관여된 키는 전 단계 Aj-1의 관여된 키 비트와 겹치는 부분은 제외하고 추측한다 (2≤j≤s). 겹치는 키 비트는 Aj-1에서 남은 키에 대해서만 검사한다. As에 관여한 키가한 개가 남을 때까지 이 과정을 수행한다.

4. 최종적으로 남은 키를 옳은 키로 택한다.

위 공격을 이용하면 불능 차분 공격보다 필요한 평문 쌍과 시간 복잡도를 줄일 수 있다.

Ⅳ. CLEFIA에 대한 다중 불능 차분 공격

[7]에서 사용한 불능 차분은 [표 3]의 [0,00γβ,0,0]→9R[0,00α0,0,0]이다. 본 논문에서는 다중 불능 차분 공격을 적용하기 위해 [표 2]의 불능 차분 [0,000α,0,0]→9R[(0,00βγ,0,0),(0,0β0γ,0,0),(0,β00γ,0,0)]을 사용한다. 다른 형태의 불능차분은 표 2의 불능 차분이 갖는 특성보다 그 확률이 같거나 좋지 않으므로 고려하지 않는다.

[표 2] 9-라운드 불능 차분 (1) [7]

(α, β, γ : 0이 아닌 임의의 8-비트 차분)

[표 3] 9-라운드 불능 차분 (2) [7]

(α, β, γ : 0이 아닌 임의의 8-비트 차분)

4.1 다중 불능 차분 공격 적용 방법

식 (1)는 [7]에서의 키 복구 계산 과정이다.

2L (1-p)N <1.       (1)

L은 추측하는 키와 계산하는 키의 총 비트 수이고, p 는 입력 차분에 대한 F 함수의 총 확률이다. N은 필터링을 거친 후 남아있는 암호문 쌍이다. 식 (1)은 N개의 암호문 쌍을 불능 차분 특성에 적용하여 2L -1개의 틀린 키를 걸러내고, 올바른 키만 남아있음을 의미한다. 표 2의 9-라운드 다중 불능 차분 특성을 보면 동일한 입력 차분에 대해 3가지 종류의 출력 불능 차분이 나타남을 알 수 있다. 그리고 출력 차분이 한 워드(32-비트)에서만 바이트의 자리가 다르며, 각 출력 차분에 대해 관여하는 키 부분은 8-비트를 제외하고 모두 동일하다. 따라서 식 (1)을 다음의 세 단계로 바꿀 수 있다. pi와 Ni는 i번째 출력 불능 차분 형태에 대한 F 함수의 총 확률및 필터링 후 남아 있는 암호문 쌍을 의미한다.

2L (1-p1)N1≈2x1

28 + x1(1-p2)N2≈2x2       (2)

28 + x2(1-p3)N3 <1

x1은 첫 번째 출력 불능 차분에 대해 남은 키의 비트 수이고, x2는 두 번째 출력 불능 차분에 대해 남은 키의 비트 수이다. 마지막으로 세 번째 출력 불능 차분에 대해 하나의 옳은 키가 남도록 필요한 평문 쌍의 개수를 계산한다 (기존의 단일 불능 차분 특성을 이용하는 것보다 적은 데이터량 요구).

4.2 12-라운드 CLEFIA에 대한 다중 불능 차분 공격

CLEFIA 및 ARIA에 대한 다중 불능 차분 공격에 다음의 정리를 사용한다.

[정리 1] F 함수 (F0, F1)에 대해, 두 입력값 (In, In′) 과 그에 대한 출력 차분 Δout을 알면, F 함수의 라운드 키를 계산할 수 있다[5].

12-라운드 공격은 [그림 4]와 같이 9-라운드 다중 불능 차분 특성 위에 한 라운드를 추가하고, 아래에 두 라운드를 추가하여, 추가된 라운드의 관여된 키 비트를 축출한다. 공격 방법은 다음과 같다.

[그림 4] 12-라운드 CLEFIA 다중 불능 차분 공격

1. 차분이 ⴷ= (0,0,000α,M1(000*))꼴이 되는 128-비트 평문을 원소로 갖는 structure를 구성한다.(α, * : 0이 아닌 임의의 8-비트 차분, structure={C⊕λ | C: 상수, λ∈ⴷ})

하나의 structure에서 원소의 개수는 (28-1)2≈216개이고, 만들 수 있는 쌍은 #개다.

2. 293.6개의 structure를 선택한다. 입력 차분 (0,000α,0,0)에 대한 9-라운드 불능 차분의 첫 번째 출력 차분 (0,00βγ,0,0)에 대해 (M0(0*0*),****, 0,0*0*)의 차분 형태가 되는 암호문 쌍만 남긴다 ([그림 4] 참조). 따라서 필터링 후 남는 암호문 쌍의 개수는 N1 = 2124.6×2-64 = 260.6개가 된다. 두번째 출력 차분 (0,0β0γ,0,0)과 세 번째 출력 차분 (0,β00γ,0,0)을 살펴보면, 첫 번째 출력 차분과 같은 워드에서만 차분의 바이트 자리가 다르다. 그러므로 두 번째 출력 차분 (0,0β0γ,0,0)에 대해 (M0 (0*0*),****,0,0*0*)의 차분 형태가 되는 암호문 쌍만 남기면 N2 = N1 = 260.6개의 암호문 쌍이 남으며, 세 번째 출력 차분에 대해서도 N3 = N2 = N1 = 260.6으로 동일하다.

3. 남아 있는 N1개의 암호문 쌍에 대해 라운드 키 RK23 (32-비트)를 추측하면 정리 1에 의해 RK22, (WK3⊕RK20)2,3, (RK1)3 (56-비트)의 키를 계산할 수 있다. 마찬가지로 N2 및 N3에 대해 라운드 키 RK23 (32-비트)를 추측하면 정리 1에 의해 각각 RK22, (WK3⊕RK20)1,3, (RK1)3 (56-비트) 및 RK22, (WK3⊕RK20)0,3, (RK1 )3(56-비트)를 계산할 수 있다. 각각의 출력 차분에 대해 계산하는 키가 8-비트씩만 다름을 알 수 있다 ((WK3⊕RK20)2,3, (WK3⊕RK20)1,3, (WK3⊕RK20)0,3). 식 (2)를 적용 하면

288(1-2-56)N1≈253.1

28 + 53.1(1-2-56)N2≈226.2

28 + 26.2(1-2-56)N3 <1

이 된다 (확률 2-56 = P∙Q : [그림 4] 참조). 따라서 위 계산에 의해 남은 키가 옳은 키가 된다.

첫 번째 불능 차분 (0,00βγ,0,0)에 대한 F 함수의 총 확률은 다음과 같이 계산한다. 평문의 차분 (0,0,000α,M1 (000*))에 대해 1-라운드의 F1 함수의 입력 차분 000α에 대한 확률 q는 2-8이 되고, 11-라운드의 F0함수의 입력 차분 00βγ에 대한 확률 p1는 2-16이 된다. 그리고, 12-라운드의 F0 함수의 입력 차분 M0 (00**)에 대한 확률 p2는 2-32이 되므로, 첫 번째 불능 차분에 대한 F 함수의 총 확률은 p1∙p2∙q = 2-48∙2-8 = 2-56이 된다 (P = p1p2, Q = q). 1-라운드의 F0 함수의 확률, 11-라운드 및 12-라운드의 F1 함수의 확률은 입력 차분이 0이므로 모두 1이 된다. 두 번째와 세 번째의 불능 차분 형태에 대한 F 함수의 총 확률 P∙Q도 2-56으로 모두 동일하게 계산된다.

시간 복잡도는 평문 2109.6개의 암호화 과정과, 32-비트의 키를 추측하고 필터링 후 남은 암호문 쌍 N1, N2, N3에 대한 F 함수 계산 과정 ≤ 232 ∙260.6 ∙3 = 293.9을 더하여 2109.6이 된다.

4.3 13-라운드 CLEFIA에 대한 다중 불능 차분 공격

13-라운드 공격은 9-라운드 다중 불능 차분 특성 위에 두 라운드를 추가하고, 아래에 두 라운드를 추가하여, 추가된 라운드의 관여된 키 비트를 축출한다. 공격 방법은 다음과 같다.

1. 차분이 ᐱ = (M1(000*),****,0,000α)꼴이 되는 128-비트 평문을 원소로 갖는 structure를 구성한다. (하나의 structure에서 원소의 개수는 (28 -1)6 ≈248개이고, 만들 수 있는 쌍은 #개다)

2. 262.3개의 structure를 선택한다. 입력 차분 (0,000α,0,0)에 대한 9-라운드 후 첫 번째 출력 차분 (0,00βγ,0,0)에 대해 (M0 (00**),****,0,00**)의 차분 형태가 되는 암호문 쌍만 남긴다. 따라서 남아 있는 암호문 쌍의 개수는 N1 = 2157.3 ×2-64 = 293.3개가 된다. N1과 N2도 293.3이 된다.

3. 첫 번째 출력 불능 차분에 대해 남아 있는 N1개의 암호문 쌍에 대해 라운드 키 RK25, RK1 (64-비트)를 추측하면 정리 1에 의해 RK0, (WK1⊕RK3)3, RK24, (WK3⊕RK22)2,3 (88-비트)의 키를 계산할 수 있다. 마찬가지로 N2 및 N3에 대해 라운드 키 RK25, RK1 (64-비트)를 추측하면 정리 1에 의해 각각 RK0, (WK1⊕RK3)3, RK24, (WK3⊕RK22)1,3 (88-비트) 및 RK0, (WK1⊕RK3)3, RK24, (WK3⊕RK22)0,3 (88-비트)를 계산할 수 있다. 축출하는 키가 각각 8-비트씩 다르므로, 식 (2)를 적용하여

2152(1-2-88)N1≈295.2

28 + 95.2(1-2-88)N2≈246.4

28 + 46.4(1-2-88)N3 <1

을 얻는다 (앞 공격과 같이 확률 2-88은 계산하는키 비트에 관계된 확률의 합을 나타낸다). 따라서위 계산에 의해 남은 키가 옳은 키가 된다.

시간 복잡도는 평문 2110.3개의 암호화 과정과, 9-라운드 불능 차분 특성의 위 두 라운드에서 추측하는 키 32-비트와 9-라운드 불능 차분 특성의 아래 두 라운드에서 추측하는 키 32-비트에 대해 각 232개의 키를 키 테이블에 저장한 후 선택 평문 쌍 N1, N2, N3으로 키를 계산하여 불능 차분이 나오는 키를 조합하여 버린다. 따라서 이 검사 과정은 ≤{(232N1 +232N1)+(232N2 +232N2)+ (232N3 +232N3)}= 2127.9의 암호화 과정을 요구하므로, 전체 시간 복잡도는 2127.9이다.

4.4 14-라운드 CLEFIA에 대한 다중 불능 차분 공격

14-라운드 공격은 9-라운드 다중 불능 차분 특성 위에두 라운드를 추가하고, 아래에 세 라운드를 추가하여, 추가된 라운드의 관여된 키 비트를 축출한다. 공격 방법은 다음과 같다.

1. 4.3절의 13-라운드 공격의 단계 1과 동일하게 수행한다.

2. 262.8개의 structure를 선택한다. 입력 차분 (0,000α,0,0)에 대한 9-라운드 후 첫 번째 출력 차분 (0,00βγ,0,0)에 대해 (****,****,00**,M0(00**) ⊕M1(00**))의 차분 형태가 되는 암호문 쌍만 남긴다. 따라서 필요한 선택 평문 쌍의 개수는 N1= 2157.8×2-16= 2141.8개가 된다. (N1= N2= N3= 2141.8)

3. 남아 있는 N1개의 암호문 쌍에 대해 라운드 키 RK1, (RK24⊕WK3) (64-비트)를 추측하면 정리 1에 의해 RK26, RK27, (RK25⊕WK2), (RK22)2,3, RK0, (RK3⊕WK1)3 (152-비트)의 키를 계산할 수 있다. 마찬가지로 N2 및 N3에 대해 라운드 키 RK1, (RK24⊕WK3) (64-비트)를 추측하면 정리 1에 의해 각각 RK26, RK27, (RK25⊕WK2), (RK22)1,3, RK0, (RK3⊕WK1)3 (152-비트)및 RK26, RK27, (RK25⊕WK2), (RK22 )0,3, RK0, (RK3⊕WK1)3 (152-비트)를 계산할 수 있다. 각각의 출력 차분에 대해 계산하는 키가 8-비트씩만 다르다. 식 (2)를 적용하면

2216(1-2-136)N1≈2135.7

28+135.7(1-2-136)N2≈263.4

28+63.4(1-2-136)N3 <1

이 된다 (앞 공격과 마찬가지로 확률 2-136은 계산하는 키와 관여된 라운드의 확률의 총합을 나타낸다). 따라서 위 계산에 의해 남은 키가 옳은 키가 된다.

시간 복잡도는 평문 2110.8개의 암호화 과정과, 9-라운드 불능 차분 특성의 위 두 라운드에서 추측하는 키 32-비트와 9-라운드 불능 차분 특성의 아래 세 라운드에서 추측하는 키 32-비트에 대한 선택 평문 쌍 N1, N2, N3의 검사 과정 ≤{(232N1+232N1)+(232N2 +232N2)+(232N3 +232N3)}= 2176.4(키 테이블 이용)을 더하여 2176.4이 된다.

4.5 15-라운드 CLEFIA에 대한 다중 불능 차분 공격

15-라운드 공격은 9-라운드 다중 불능 차분 특성 위에세 라운드를 추가하고, 아래에 세 라운드를 추가하여, 추가된 라운드의 관여된 키 비트를 축출한다. 공격 방법은 다음과 같다.

1. 차분이 (000α,M0 (000*)⊕M1 (000*),****,****)꼴이 되는 128-비트 평문을 원소로 갖는 structure를 구성한다. (하나의 structure에서 원소의 개수는 (28-1)11≈288개이고, 만들 수 있는 쌍은 #개다)

2. 223.1개의 structure를 선택한다. 입력 차분 (0,000α,0,0)에 대한 9-라운드 후 첫 번째 출력 차분 (0,00βγ,0,0)에 대해 (****,****,00**,M0(00**) ⊕M1(00**))의 차분 형태가 되는 암호문 쌍만 남긴다. 따라서 필터링 후 남는 암호문 쌍의 개수는 N1 =2198.1 ×2-16 = 2182.1개가 된다. N2와 N3도 N1과 동일하다 (N1= N2= N3= 2182.1).

3. 남아 있는 N1개의 암호문 쌍에 대해 라운드 키 (RK3⊕WK1), (RK27⊕WK2) (64-비트)를 추측하면 정리 1에 의해 RK28, RK29, (RK26⊕WK3), (RK24 )2,3, RK0, RK1, (RK2⊕WK0), (RK5)3 (216-비트)의 키를 계산할 수 있다. 마찬가지로 N2 및 N3에 대해 라운드 키 (RK3⊕WK1), (RK27⊕WK2) (64-비트)를 추측하면 정리 1에 의해 각각 RK28, RK29, (RK26⊕WK3), (RK24)1,3, RK0, RK1, (RK2⊕WK0), (RK5)3 (216-비트) 및 RK28, RK29, (RK26⊕WK3), (RK24)0,3, RK0, RK1, (RK2⊕WK0), (RK5)3 (216-비트)를 계산할 수 있다. 각각의 출력 차분에 대해 계산하는 키가 8-비트씩만 다르므로 식 (2)를 적용하여

2280(1-2-176)N1≈2181.1

28 + 181.1(1-2-176)N2≈290.2

28 + 90.2(1-2-176)N3 <1

을 얻는다 (확률 2-176은 라운드별 확률의 총합이다). 따라서 위 계산에 의해 남은 키가 옳은 키가 된다.

시간 복잡도는 평문 2111.1개의 암호화 과정과, 9-라운드 불능 차분 특성의 위 세 라운드에서 추측하는 키 32-비트와 9-라운드 불능 차분 특성의 아래 세 라운드에서 추측하는 키 32-비트에 대한 선택 평문 쌍 N1, N2, N3의 검사 과정 ≤{(232N1+232N1)+(232N2 +232N2)+(232N3+232N1)+(232N2+232N2)+(232N3+232N3)}= 2216.7(키테이블 이용)을 더하여 2216.7이 된다.

Ⅴ. ARIA에 대한 다중 불능 차분 공격

[11]에서 사용한 불능 차분은 [표 4]의 [α,0,0,0,0, β,0,0,0,0,0,0,0,0,0,0]→4R[0,γ,0,0,0,γ,0,0,0,0,0,0,γ,0,γ,0]이다. 본 논문에서는 다중 불능 차분 공격을 적용하기 위해 다른 형태의 불능 차분 특성과 비교하여 가장 좋은 표 4의 불능 차분[α,0,0,0,0,β,0,0,0,0,0,0,0,0,0,0]→4R[(0,γ,0,0,0,γ,0,0,0,0,0,0,γ,0,γ,0),(γ,γ,0,0,0,0,0,0,0,0,0,0,γ,0,γ,0)]을 사용한다(본 기호의 처음 4-바이트는 첫 번째 열을 나타낸다).

[표 4] 4-라운드 불능 차분 (1) [11] (α, β, γ : 0이 아닌 임의의 8-비트 차분)

5.1 다중 불능 차분 공격 적용 방법

ARIA에 대한 불능 차분 공격은 위의 CLEFIA에 대한 공격과 같은 방법으로 적용한다.

2L(1-p1)N1≈2x1

28 + x1(1-p2)N2 <1         (3)

L은 추측하는 키와 계산하는 키의 총 비트 수이다. ARIA에 대한 위 두 개의 출력 불능 차분을 비교해 보면 관여하는 키 부분은 8-비트를 제외한 나머지가 모두 동일함을 알 수 있다. pi는 i번째 불능 차분 형태에 대한 총 확률이고 Ni는 필터링 후 남아 있는 암호문을 의미하며, 따라서 키 복구 계산 과정을 식 (3)과 같이 두 단계로 계산할 수 있다. 여기서 x1은 첫 번째 출력 불능차분 검증 이후에 남은 키의 비트 수이다.

6-라운드 공격은 그림 5와 같이 4-라운드 다중 불능 차분 특성 위에 한 라운드를 추가하고, 아래에 한 라운드를 추가하여, 추가된 라운드의 관여된 키 비트를 축출한다. 공격 방법은 다음과 같다.

1. 차분이 (0,*,0,*,*,0,*,0,*,*,*,0,0,*,*,*)꼴이 되는 128-비트 평문을 원소로 갖는 structure를 구성한다.

(하나의 structure에서 원소의 개수는 (28 -1)10≈280개이고, 만들 수 있는 쌍은 # 개이다)

2. 230.4개의 structure를 선택한다. 4-라운드 입력 차분 (α,0,0,0,0,β,0,0,0,0,0,0,0,0,0,0)에 대한 불능 차분의 첫 번째 출력 차분 (0,γ,0,0,0,γ,0,0,0,0,0,0,γ,0, γ,0)에 대해 (0,*,0,0,0,*,0,0,0,0,0,0,*,0,*0)의 차분 형태가 되는 암호문 쌍만 남긴다. 따라서 필터링 후 남는 암호문 쌍의 개수는 N1 =2189.4 ×2-96 = 293.4개가 된다. 두 번째 출력 차분 (γ,γ,0,0,0,0,0,0,0,0,0,0,γ,0,γ,0)에 대해 (*,*,0,0,0,0, 0,0,0,0,0,0,*,0,*0)의 차분 형태가 되는 암호문 쌍만 남기면 필터링 후 남는 암호문 쌍의 개수도 N1과 마찬가지로 293.4이 된다.

3. 남아 있는 N1개의 암호문 쌍에 대해 라운드 키 k0,1, k0,6, k6,1 (24-비트)를 추측하면 정리 1에 의해 k0,3, k0,4, k0,8, k0,9, k0,10, k0,13, k0,14, k0,15, k6,5, k6,12, k6,14 (88-비트)의 키를 계산할 수 있다. 마찬가지로 N2에 대해 라운드 키 k0,1, k0,6, k6,1 (24-비트)를 추측하면 정리 1에 의해 k0,3, k0,4, k0,8, k0,9, k0,10, k0,13, k0,14, k0,15, k6,0, k6,12, k6,14 (88-비트)의 키를 계산할 수 있다. 각각의 출력 차분에 대해 계산하는 키가 8-비트씩만 다르다(k6,5와 k6,0). 식 (3)을 적용하면

2112(1-2-88)N1≈251.1

28 + 51.1(1-2-88)N2 <1

이 된다. 따라서 위 계산에 의해 남은 키가 옳은 키가 된다.

첫 번째 불능 차분 (0,γ,0,0,0,γ,0,0,0,0,0,0,γ,0,γ,0)에 대한 총 확률 2-88은 다음과 같이 계산한다. (0,*,0,*,*, 0,*,0,*,*,*,0,0,*,*,*)차분 형태가 되는 평문 쌍 (P,P*)에 대해 (1, 3, 4, 6, 8, 9, 10, 13, 14, 15)번째 바이트의 초기 키 k0 연산 후 SL 연산을 거쳤을 때, 각각 (1, 10, 15), (6, 8, 13), (3, 4, 9, 14)번째 바이트의 차분이 같아야 한다. 확률은 (2-8)2×(2-8)2×(2-8)4 = 2-64이 된다. 그리고 (0,*,0,0,0,*,0,0,0,0,0,0,*,0,*0) 차분 형태가 되는 암호문 쌍 (C,C*)에 대해 (1, 5, 12, 14)번째 바이트의 키 k6 연산과 SL-1 연산을 거쳤을 때, (1, 5, 12, 14)번째 바이트의 차분이 같아야 한다. 확률은 (2-8)3 = 2-24이다. 그러므로 총 확률은 2-88이 되고, 이는 두 번째 불능 차분 (γ,γ,0,0,0,0,0,0,0,0,0,0,γ,0,γ,0)에 대해서도 동일하다.

시간 복잡도는 평문 2110.4개의 암호화 과정과, 4-라운드 불능 차분 특성의 위 한 라운드에서 추측하는 키 8-비트와 4-라운드 불능 차분 특성의 아래 한 라운드에서 추측하는 키 8-비트에 대한 선택 평문 쌍 N1, N2의 검사 과정 ≤{(216N1 +28N1)+(216N2 +28N2)}= 2110.5(키 테이블 이용)을 더하여 2111.5이 된다.

Ⅵ. 결론

본 논문에서는 입력 불능 차분에 대한 여러 개의 출력 불능 차분을 한 번에 고려하여, 불능 차분 공격에서 필요한 평문 쌍과 시간 복잡도를 줄일 수 있는 다중 불능 차분 공격을 제안하였다. 그리고 CLEFIA와 ARIA 에 다중 불능 차분 공격을 적용함으로써 본 공격이 기존의 불능 차분 공격보다 더 좋은 효율성을 가짐을 보였다. 본 논문의 공격 결과는 다음과 같다. 본 논문에서 제안한 공격 방법을 CLEFIA에 적용하여 2109.6개의 선택 평문과 2109.6의 시간 복잡도로 12-라운드 CLEFIA-128의 비밀키를 복구하였으며, 2110.3개의 선택 평문과 2127.9이하의 시간 복잡도로 13-라운드의 CLEFIA-192및 CLEFIA-256의 비밀키를 복구하였다. 14-라운드와 15-라운드의 CLEFIA-256에 대한 공격은 각각 2110.8의 선택 평문과 2176.4이하의 시간 복잡도, 2111.1의 선택 평문과 2216.7이하의 시간 복잡도로 비밀키를 복구하였다. 그리고 ARIA에 대한 공격은 2110.4의 선택 평문과 2111.5이하의 시간 복잡도로 6-라운드 ARIA의 비밀키를 복구할 수 있었다. 본 논문에서 제시한 다중 불능 차분 공격이 다른 블록 암호의 분석에 유용한 도구로 사용되기를 기대한다.

참고문헌

  1. T. Shirai, K. Shibutani, T. Akishita, S. Moriai, and T. Iwata, "The 128-bit Blockcipher CLEFIA," Fast Software Encryption, LNCS 4593, pp. 181-195, 2007
  2. Sony Corporation, "The 128-bit Blockcipher CLEFIA: Algorithm Specification," Revision 1.0, June 2007
  3. Sony Corporation, "The 128-bit Blockcipher CLEFIA: Security and Performance Evaluation," Revision 1.0, June 2007
  4. H. Chen, W. Wu, and D. Feng, "Differential Fault Analysis on CLEFIA," International Conference on Information and Communications Security, LNCS 4861, pp. 284-295, 2007
  5. W. Wang and X.Y. Wang, "Improved Impossible Differential Cryptanalysis of CLEFIA," IACR ePrint 2007-466, Dec. 2007
  6. Y. Tsunoo, E. Tsujihara, M. Shigeri, T. Saito, T. Suzaki, and H. Kubo, "Impossible Differential Cryptanalysis of CLEFIA," Fast Software Encryption, LNCS 5086, pp. 398-411, 2008 https://doi.org/10.1007/978-3-540-71039-4
  7. B. Sun, R. Li, M. Wang, P. Li, and C. Li, "Impossible Differential Cryptanalysis of CLEFIA," IACR ePrint 2008-151, Apr. 2008
  8. D. Kwon, J. Kim, S. Park, S. Sung, Y. Shon, J. Song, Y. Yeom, E. Yoon, S. Lee, J. Lee, S. Chee, D. Han, and J. Hong, "New Block Cipher: ARIA," International Conference on Information and Communications Security, LNCS 2971, pp. 432-445, 2004
  9. A. Biryukov, C. Canniere, J. Lano, S. Ors, and B. Preneel, "Security and Performance Analysis of Aria," Version 1.2, Jan. 2004
  10. W. Wu, W. Zhang, and D. Feng, "Impossible differential cryptanalysis of ARIA and Camellia," IACR ePrint 2006-350, Oct. 2006
  11. R. Li, B. Sun, P. Zhang, and C. Li, "New Impossible Differential Cryptanalysis of ARIA," IACR ePrint 2008-227, May 2008
  12. 서정갑, 김창균, 하재철, 문상재, 박일환, "블럭암호 ARIA에 대한 차분전력분석공격," 정보보호학회논문지, 15(1), pp. 99-107, 2005년 2월
  13. E. Biham, A. Biryukob, and A. Shamir, "Cryptanalysis of Skipjack Reduced to 31 round using impossible differential," Advances in Cryptology, EUROCRYPT'99, LNCS 1592, pp. 12-23, 1999
  14. 문덕재, 황경덕, 이원일, 이상진, 홍석희, "XTEA와 TEA의 축소된 라운드에 대한 불능 차분 공격," 정보보호학회논문지, 12(4), pp. 77-85, 2002년 8월
  15. 김종성, 홍석희, 이상진, 임종인, 은희천, "블록 암호 구조에 대한 불능 차분 공격," 정보보호학회논문지, 13(3), pp. 119-127, 2003년 6월
  16. 홍석희, 김종성, 김구일, 이창훈, 성재철, 이상진, "30 라운드 SHACAL-2의 불능 차분 공격," 정보보호학회논문지, 14(3), pp. 1079-115, 2004년 6월
  17. 김종성, 홍석희, 이상진, 은희천, "6 라운드 AES에 대한 향상된 불능 차분 공격," 정보보호학회논문지, 15(3), pp. 103-107, 2005년 6월