DOI QR코드

DOI QR Code

Truncated Differential Cryptanalysis on PP-1/64-128

블록 암호 PP-1/64-128에 대한 부정 차분 공격

  • Hong, Yong-Pyo (Center for Information Security Technologies, Korea University) ;
  • Lee, Yus-Sop (Center for Information Security Technologies, Korea University) ;
  • Jeong, Ki-Tae (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)
  • 홍용표 (고려대학교 정보경영공학전문대학원) ;
  • 이유섭 (고려대학교 정보경영공학전문대학원) ;
  • 정기태 (고려대학교 정보경영공학전문대학원) ;
  • 성재철 (서울시립대학교 수학과) ;
  • 홍석희 (고려대학교 정보경영공학전문대학원)
  • Received : 2011.03.15
  • Accepted : 2011.10.31
  • Published : 2011.12.31

Abstract

The PP-1/64-128 block cipher support variety data block and secret key size. Also, it is suitable for hardware implementation and can much easier to apply Concurrent Error Detection(CED) for cryptographic chips compared to other block ciphers, because it has same encryption and decryption process. In this paper, we proposed truncated differential cryptanalysis of PP-1/64-128. the attack on PP-1/64-128 block cipher requires $2^{50.16}$ chosen plaintexts, $2^{46.16}$ bytes memory spaces and $2^{50.45}$ PP-1/64-128 encryption to retrieve secret key. This is the best result of currently known PP-1/64-128 differential cryptanalysis.

블록 암호 PP-1은 다양한 길이의 데이터 블록과 비밀키를 지원하는 SPN구조의 블록 암호이다. 또한, 암호화 과정과 복호화 과정이 동일하도록 설계되어 하드웨어에서 효율적으로 구현 가능하며 오류 탐지 기법을 적용하기에 유리하다. 본 논문에서는 PP-1/64-128에 대한 부정 차분 공격을 소개한다. 본 논문에서 제안하는 공격은 $2^{50.16}$의 선택 평문과 $2^{46.16}$ 바이트 메모리를 이용하여 $2^{50.45}$의 PP-1/64-128의 암호화 연산을 통해 비밀키를 복구한다. 본 논문에서 제안하는 PP-1/64-128에 대한 공격 결과는 현재까지 알려진 공격 결과 중 가장 좋은 결과이다.

Keywords

I. 서론

블록 암호 기술은 1980년대부터 DES에 대한 분석 기술 연구를 통해 급격하게 발전하였다. 이후, 미국 국립 표준원에서 주최한 AES 공모 사업을 통하여 블록 암호 개발에 관한 방법과 안전성 분석 기법이 새롭게 정립되면서, 높은 안전성과 효율성을 가지는 블록 암호에 대한 연구가 활발히 진행되었다. 대표적으로, 미국 표준 블록 암호인 AES[1], 국내 표준인 SEED[2], ARIA[3] 등의 다양한 블록 암호가 개발되었다. 하지만, 이러한 블록 암호들은 RFID나 센서 네트워크, 모바일 환경 등의 제한된 컴퓨팅 환경에 적용하는데 어려움이 발생하였다. 그리하여 2000년대 중반부터 하드웨어의 자원이 제한된 환경에 적합한 경량 블록 암호 개발에 대한 연구가 시작되었다. 이러한 연구 결과 PP-1[4] , PRESENT[5], HIGHT[6], KATAN / KTAN -TAN[7] 등이 제안되었다.

블록 암호 PP-1은 다양한 길이의 데이터 블록과 비밀키를 지원하도록 설계되었다, 그리고 암호화 과정과 복호화 과정이 동일한 알고리즘으로 작동하는 인볼루션 SPN 구조를 이용하였으며, S-박스, 법덧셈, 법뺄셈, XOR의 가벼운 연산과 비트 단위 치환 함수를 사용함으로서 경량으로 하드웨어 구현이 가능하다. 이후, PP-1의 제안자는 인볼루션 구조를 가지는 블록 암호에 대한 오류 탐지 기법을 소개함으로서 다른 블록 암호에 비해 효율적인 오류 탐지가 가능함을 보였다[8].

부정 차분 공격은 1994년 Lars R. Knudsen이제안한 공격방법으로 차분 특성을 구성할 때, 차분 특성의 출력차분을 모두 예측하지 않고 공격에 필요한 비트 정보만을 이용하여 공격하는 방법이다[9]. 기존의 차분 공격은 차분 특성을 구성할 때, 하나의 입력차분과 하나의 출력차분만 고려하지만, 부정 차분 공격에서는 하나의 입력차분에 대해, 여러 개의 출력차분을 동시에 고려함으로서 보다 높은 확률을 가지는 차분 특성을 구성한다.

블록 암호 PP-1에 대한 안전성 분석 결과로는 64-비트 데이터 블록과 128-비트 비밀키를 사용하는 PP-1/64-128에 대한 차분 공격이 유일하다[10]. 이 공격 방법에서는 251.00의 데이터 복잡도와 2112.54의 계산 복잡도로 1 라운드 키의 8 비트와 11 라운드 키의 72 비트를 복구한다.

본 논문에서는 PP-1/64-128에 대한 부정 차분 공격을 제안한다. 이를 위해 2-44.91의 확률을 가지는 9개의 8-라운드 차분 특성을 구성하였다. 그리고 이 차분 특성에 6개의 1-라운드 부정 차분 특성을 연결하여 18개의 부정 차분 특성을 구성하였다. 제안하는 공격은 구성한 18개의 부정 차분 특성을 이용하여 1 라운드 키 8 비트와 11 라운드 키 72 비트를 복구한 후, 복구한 비밀키의 정보를 통해 가능한 비밀키를 전수 조사한다. 본 공격은 250.16개 선택 평문, 245.16바이트 메모리를 이용하여 250.45번 PP-1/64-128 암호화 연산을 통하여 비밀키를 복구한다. 본 논문의 분석 결과는 현재까지 알려진 PP-1/64-128에 대한 분석 결과 중 가장 좋은 분석 결과이다. [표 1]은 PP-1/64-128에 대한 분석 결과를 비교한 결과이다.

[표 1] PP-164/128에 대한 공격 결과 비교

본 논문은 다음과 같이 구성된다. 2장에서는 논문에서 사용하는 표기법과 블록 암호 PP-1/64-128, 부정 차분 분석 기법을 설명한다. 그리고 공격에 사용하는 부정 차분 특성과 이를 이용한 블록 암호 PP-1/64-128에 대한 부정 차분 공격을 3장과 4장에서 소개한 후, 5장에서 결론을 맺는다.

II. 표기법 및 관련 연구

본 장에서는 논문에서 사용하는 전반적인 표기법을 정의 하고, 블록 암호 PP-1/64-128와 부정 차분 분석 기법에 대하여 소개한다.

2.1 표기법

본 논문에서는 다음과 같은 표기법을 사용한다.

# 번째 128-비트 라운드 키 중 첫 번째 64-비트 라운드 키, #

#번째 128-비트 라운드 키 중의 두 번째 64-비트 라운드 키, #

∙ ??x : 임의의 8-비트 정수의 16진수 표현.

∙ (a,??x) : a 번째 바이트의 값이 ??x이고, 나머지 바이트는 0인 64-비트 값, a= 1,2,⋯,8.

∙ P((a,??x)) : P 함수에 (a,??x)가 입력되었을 때 출력값.

∙ (α→β)t : 입력차분이 α이고 출력차분이 β인 t-라운드 차분 특성.

∙ [α→Δβ]t : 입력차분이 α이고 출력차분의 집합이 Δβ인 t-라운드 부정 차분 특성.

2.2 블록 암호 PP-1/64-128

블록 암호 PP-1은 Buholc 등이 제안한 블록 암호로서 다양한 길이의 데이터 블록과 비밀 키를 사용한다. 여기서, 64-비트 데이터 블록과 128-비트 비밀 키를 사용하는 PP-1을 PP-1/64-128로 표기한다. PP-1/64-128은 암호화 과정과 복호화 과정이 동일한 11-라운드 인볼루션 SPN 구조로 구성된다. 각 라운드 함수는 비선형 함수 NL(Nonlinear function)과 비트 기반 치환 함수 P로 구성된다. 비선형 함수 NL은 8×8 S-박스와 XOR, 법 28에서의 덧셈과 뺄셈 연산으로 구성되고, 두 개의 64-비트 라운드 키가 사용 된다 ([그림 1] 참조).

[그림 1] 블록 암호 PP-1/64-128 라운드 함수 및 NL 함수

비트 기반 치환 함수 P는 64-비트 입력값을 64-비트 출력값으로 치환한다. 가장 왼쪽에 있는 비트의 인덱스를 ‘1’, 가장 오른쪽에 있는 비트의 인덱스를 ‘64’라고 하면, 각 비트가 치환되는 규칙은 [표 2]와 같다. 예를 들어, ‘1’ 번째 비트는 ‘10’ 번째 비트로 치환되고, 비트 ‘64’ 번째 비트는 비트 ‘61’ 번째 비트로 치환 된다.

[표 2] P 함수

키 스케쥴은 공격 과정에 영향을 주지 않기 때문에 생략한다. PP-1/64-128에 대한 보다 자세한 사항은 [4]을 참고하기 바란다.

2.3 부정 차분 공격(Truncated Differential Cryptanalysis)

부정 차분 공격은 1994년 Lars R. Knudsen이 제안한 공격방법으로 차분 특성을 구성할 때, 차분 특성의 출력차분을 모두 예측하지 않고 공격에 필요한 비트 정보만을 이용하여 차분 공격하는 방법이다. 다시 말해서, 기존의 차분 공격은 하나의 입력차분과 하나의 출력차분을 고려하지만, 부정 차분 공격에서는 여러 개의 출력차분을 동시에 고려하여 높은 확률을 가지는 차분 특성을 구성한다. 이를 통해 공격에 필요한 선택 평문쌍의 수를 감소시킬 수 있지만, 공격 과정에서 여러 개의 출력차분을 고려하여야 하기 때문에 옳은 암호문쌍을 걸러내기 위한 필터링 과정에서의 효율성이 감소하는 단점이 존재한다. 예를 들어, 3개의 t-라운드 차분 특성 (α→β1)t, (α→β2)t, (α→β3)t의 확률이 각각 p1 , p2 , p3이면, t-라운드 부정 차분 특성[α→{β123}]t의 확률은 p1+p2+p3로 계산된다. 하지만, 필터링 단계에서는 β123이 확산되는 것을 모두 고려한다.

III. PP-1/64-128에 대한 부정 차분 특성

본 장에서는 PP-1/64-128에 대한 9-라운드 부정 차분 특성을 소개한다. 이를 위해, 9개의 8-라운드 차분 특성을 구성하고, 6개의 1-라운드 부정 차분 특성을 연결하여 18개의 9-라운드 부정 차분 특성을 구성한다.

3.1 PP-1/64-128에 대한 8-라운드 차분 특성

PP-1/64-128은 S-박스, 법덧셈, 법뺄셈, XOR만을 사용한다. 그러므로 높은 확률을 갖는 차분 특성을 구성하기 위해서 비선형 연산인 법덧셈, 법뺄셈, S-박스를 최소한으로 포함하는 차분 특성을 구성하여야한다. 이를 위해 한 라운드에 하나의 S-박스를 지나고, XOR만을 포함하는 차분 특성만을 고려한다. 이러한 기준에 따라, 다음과 같은 9개의 1-라운드 차분 특성 (α→β)1을 구성하였다 ((α,β)∈{(8,01x), (8,08x),(8,09x)}). 이 차분 특성은 8 번째 S-박스에만 차분이 입력되고 법덧셈과 법뺄셈을 통과하지 않는다. 그러므로 S-박스에 대한 차분 확률만으로 차분 특성의 확률을 계산한다. 또한, 치환 함수 P는 P((8,01x)) = (8,08x), P((8,08x)) = (8,01x),P((8,09x)) = (8,09x)을 만족하므로, ((8,01x) →(8,08x))의 확률은 S-박스에서 입력차분이 01x일 때 출력차분이 01x일 확률과 같다. S-박스의 차분 분포표를 이용하여 9개의 1-라운드 차분 특성의 확률이 모두 2-7임을 쉽게 확인할 수 있다.

위에서 소개한 1-라운드 차분 특성을 확장하여 다음과 같은 2-라운드 차분 특성 (α→β)2을 고려하면 이 차분 특성의 확률은 다음과 같이 계산된다.

#

1-라운드 차분 특성의 확률이 2-7이므로, 2-라운드 차분 특성의 확률은 3⋅2-7⋅2이다. 이를 확장하여 t-라운드 차분특성 (α→β)t의 확률을 다음과 같은 재귀 식을 이용하여 계산 할 수 있다.

#(1)

식 (1)에 의해, t-라운드 차분 특성 (α→β)t의 차분 특성의 확률은 각각 3t-1⋅2-7⋅t이다. 따라서 Pr[(α→β)8]≈244.91이다.

3.2 9-라운드 부정 차분 특성

본 절에서는 18개의 1-라운드 부정 차분 특성을 구성하고, 3.1절에서 구성한 8-라운드 차분 특성과 연결하여 18개의 9-라운드 부정 차분 특성을 구성한다. 여기서, 고려하는 1-라운드 부정 차분 특성은 입력차분이 각각 (8,01x),(8,08x),(8,09x)이고, 출력차분은 특정한 성질을 만족하는 6개의 차분 집합으로 구성된다. 첫 번째 출력차분 집합은 {(8,01x), (8,08x), (8,09x)}로 8 번째 바이트에만 차분이 존재하고, 두 번째 출력 차분 집합은 2번째와 8 번째 바이트에만 차분이 존재하거나 2 번째 바이트에만 차분이 존재한다. 이러한 출력차분 집합을 정의하기 위해 [표 3]과 같은 차분 집합 Xi를 고려한다. P((8,x1,j))(x1,j∈X1)는 (8,01x),(8,08x),(8,09x)로 8 번째 바이트에만 출력차분이 존재하고, P((8,x2,j))(x2,j∈X2)는 2 번째와 8번째 바이트에만 출력차분이 존재하거나 2 번째 바이트에만 차분이 존재한다.

[표 3] 8번째 S-박스에서의 출력차분 집합 (X0 = {00000000})

이렇게 구성한 1라운드 부정 차분 특성의 확률은 S-박스의 차분 분포표를 이용하여 계산할 수 있다. 예를 들면, [01x→ {(8,01x),(8,08x),(8,09x)}]인 1라운드 차분 특성의 확률은 3⋅2-7 (≈ Pr[(8,01x)→(8,01x)]+Pr[(8,01x)→(8,08x)]+Pr[(8,01x)→(8,09x)]) 이다. 이를 통해 1절에서 소개한 8-라운드 차분 특성 (α→β)8과 1라운드 부정 차분 특성 [β→Xi]1을 연결하여 18개의 9라운드 부정 차분 특성 [α→Xi]9을구성한다. 각각의 부정 차분 특성의 확률은 다음과 같이 계산된다. [표 4]는 이 결과를 나타낸다.

[표 4] 9-라운드 부정차분 특성 [α→Xi]9의 확률

#

IV. PP-1/64-128에 대한 부정 차분 공격

본 장에서는 블록 암호 PP-1/64-128에 대한 부정 차분 공격을 소개한다. 제안하는 공격은 3장에서 소개한 9-라운드 부정 차분 특성을 2~10 라운드에 적용하고, 2 라운드 입력차분이 (8,01x), (8,08x), (8,09x)이 되는 평문쌍이 존재하도록 평문 스트럭쳐를 구성한다. 그리고 18개의 부정 차분 특성을 이용하여, 11 라운드 키의 72 비트와 1 라운드 키의 8 비트를 복구한다. 그리고 복구된 정보를 이용하여 가능한 비밀 키에 대해 전수 조사한다.

4.1 스트럭쳐 구성

데이터 복잡도를 낮추기 위해서 입력차분이 다른 부정 차분 특성을 동시에 고려한다. 이를 위해 2 라운드 입력차분이 (8,01x), (8,08x), (8,09x)이 되는 평문쌍이 존재하도록 다음과 같은 평문 스트럭쳐를 구성한다.

임의의 56-비트값 Pi를 선택하고, 여기에 가능한 모든 8 비트 값을 하위 비트에 연접하여 28개의 64-비트 Pi,j를 하나의 스트럭쳐로 정의한다. 즉, Si = {(Pi,j = Pi||j)| 0 ≦ j ≦ 255}. 하나의 스트럭쳐에서 2개의 평문을 선택하면 차분의 형태가 (8,??x)인 215개의 평문쌍을 구성할 수 있으며, 이 중, 라운드 2의 입력차분이 (8,01x),(8,08x),(8,09x)인 평문쌍이 각각 27개 존재한다. 그러므로 하나의 스트럭쳐에서 라운드 10의 출력차분이 P((8,Xi))에 포함되는 평문쌍의 기댓값은 다음과 같이 계산된다 (P((8,Xi)) = {P((8,xi,j))|xi,j∈Xi}).

#

즉, 하나의 스트럭쳐에 대해 라운드 10x의 출력차분이 P((8,X1))에 포함되는 평문쌍의 기댓값은 2-40.14(≃3⋅27⋅2-48.74)이다. [표 5]는 하나의 스트럭쳐에서 각각의 Xi에 대한 라운드 10의 입력차분이 P((8,Xi))에 포함되는 평문쌍의 기댓값을 의미한다.

[표 5] 하나의 스트럭쳐에서 라운드 11의 입력차분이 P((8,Xi))인 평문쌍의 기댓값

4.2 PP-1/64-128에 대한 부정 차분 공격

본 논문에서 제안하는 공격은 3장에서 소개한 18개의 부정 차분 특성을 이용한다. 2 라운드의 입력차분이 부정 차분 특성의 입력차분이 되도록 스트럭쳐를 이용하여 평문쌍을 구성한다. 그리고 이를 이용하여 11 라운드 키를 바이트별로 나누어 복구한다. 첫 번째로, 출력차분 집합이 P((8,X1))인 3개의 부정 차분 특성을 따르는 평문쌍을 이용하여 8-비트 k''11,8을 복구한다. 다음으로 출력차분 집합이 P((8,X2))인 3개의 부정 차분 특성을 따르는 평문쌍을 이용하여 16-비트 (k'11,2′,k''11,2)를 복구한다. 이 때 이전 단계에서 복구한 k''11,8을 이용하여 부정 차분 특성을 따르지 않는 평문쌍은 1 라운드 키 k'1,8를 복구하는데 사용 하므로 ‘테이블 2’에 저장한다. 이러한 과정을 반복하여 11 라운드 키의 72 비트를 복구하고, 공격 단계에서 각각의 부정 차분 특성을 따르는 암호문쌍에 대응하는 평문쌍을 이용하여 8-비트 k'1,8을 복구한다. 마지막으로 복구한 라운드 키 정보를 이용하여 가능한 비밀키에 대한 전수조사를 수행한다. 제안하는 부정 차분 공격의 공격 과정은 다음과 같다.

1. 242.16개의 스트럭쳐를 Si(1≤i≤242.16) 구성하고, 이에 대응되는 암호문을 얻는다. 각각의 스트럭쳐에서 215개의 암호문쌍을 구성할 수 있으므로, 257.16개의 암호문쌍을 구성한다.

2. 단계 1에서 구성한 암호문쌍에 대해, 3 번째 바이트와 5 번째 바이트의 차분이 00x인 암호문쌍과 이에 대응되는 평문쌍을 ‘테이블 1’에 저장한다.

3. 단계 2에서 저장한 ‘테이블 1’의 암호문쌍에서 차분의 형태가 (00 0000 0000 00 00 ??x)인 암호문쌍을 선택하여 다음을 수행한다.

3.1. k''11,8을 추측하여 라운드 10의 출력값의 차분이 P((8,X1))에 포함되면 이에 대응되는 키의 카운트 값을 1씩 증가시킨다.

3.2. 카운트가 ‘3’이상 추측된 키를 옳은 k11,8′′ 로 결정한다.

3.3. 단계 3에서 사용한 암호문쌍을 ‘테이블 1’에서 제거하고, ‘테이블 2’에 저장한다.

3.4. ‘테이블 1’의 암호문쌍에 대해 복구한 k''11,8을 이용하여 부정 차분 특성을 만족하지 않는 암호문쌍을 ‘테이블 1’에서 제거한다.

4. ‘테이블 1’의 암호문쌍에 대해 차분의 형태가(00 ??00 0000 00 00 ??x)인 암호문쌍을 선택하여 다음을 수행한다.

4.1. 단계 4를 통과한 암호문쌍에 대해, k''11,2, k'11,2를 추측하여 라운드 10의 출력값의 차분이 P((8,X2))에 포함되면 이에 대응되는 키의 카운트 값을 ‘1’씩 증가시킨다.

4.2 카운트가 ‘3’이상 추측된 키를 옳은 k''11,2, k'11,2로 결정한다.

4.3. 단계 4에서 사용한 암호문쌍을 ‘테이블 1’에서 제거하고, ‘테이블 2’에 저장한다.

4.4. ‘테이블 1’의 암호문쌍에 대해 복구한 k''11,2, k'11,2을 이용하여 부정 차분 특성을 만족하지 않는 암호문쌍을 ‘테이블 1’에서 제거한다.

5. ‘테이블 1’의 암호문쌍에 대해, 차분의 형태가(00 ??00 0000 ?? 00 ??x)인 암호문쌍을 선택하여 다음을 수행한다.

5.1. 단계 5를 통과한 암호문쌍에 대해, k''11,6를 추측하여 라운드 10의 출력값의 차분이 P((8,X3))에 포함되면 이에 대응되는 키의 카운트 값을 ‘1’씩 증가시킨다.

5.2 카운트가 ‘7’이상 추측된 키를 옳은 k''11,6로 결정한다.

5.3. 단계 5에서 저장한 암호문쌍을 ‘테이블 1’에서 제거하고, ‘테이블 2’에 저장한다.

5.4. ‘테이블 1’의 암호문쌍에 대해 복구한 k''11,6을 추측하여 부정 차분 특성을 만족하지 않는 암호문쌍을 ‘테이블 1’에서 제거한다.

6. ‘테이블 1’의 암호문쌍에 대해, 차분의 형태가(?? ??00 0000 ?? 00 ??x)인 암호문쌍을 선택하여 다음을 수행한다.

6.1. 단계 6을 통과한 암호문쌍에 대해 k''11,1을 추측하여 라운드 10의 출력값의 차분이 P((8,X4))에 포함되면 이에 대응되는 키의 카운트 값을 ‘1’씩 증가시킨다.

6.2 카운트가 ‘7’이상 추측된 키를 옳은 k''11,1로 결정한다.

6.3. 단계 6에서 저장한 암호문쌍을 ‘테이블 1’에서 제거하고, ‘테이블 2’에 저장한다.

6.4. ‘테이블 1’의 암호문ㅆᆞᆼ에 대해 복구한 k''11,1을 추측하여 부정 차분 특성을 만족하지 않는 암호문쌍을 ‘테이블 1’에서 제거한다.

7. ‘테이블 1’의 암호문쌍에 대해, 차분의 형태가(?? ??00 0000 ?? ?? ??x)인 암호문쌍을 선택하여 다음을 수행한다.

7.1. 단계 7을 통과한 암호문쌍에 대해, k''11,7, k'11,7를 추측하여 라운드 10의 출력값의 차분이 P((8,X5))에 포함되면 이에 대응되는 키의 카운트 값을 ‘1’씩 증가시킨다.

7.2 카운트가 ‘7’이상 추측된 키를 옳은 k''11,7, k'11,7로 결정한다.

7.3. 단계 7에서 저장한 암호문쌍을 ‘테이블 1’에서 제거하고, ‘테이블 2’에 저장한다.

7.4. ‘테이블 1’의 암호문쌍에 대해 복구한 k''11,7, k'11,7를 이용하여 부정 차분 특성을 만족하지 않는 암호문쌍을 ‘테이블 1’에서 제거한다.

7.5. 단계 7.4에서 저장한 ‘테이블 1’에 대해, k''11,4, k'11,4를 추측하여 라운드 10의 출력값의 차분이 P((8,X6))에 포함되면 이에 대응되는 키의 카운트 값을 ‘1’씩 증가시킨다.

7.5 카운트가 ‘12’이상 추측된 키를 옳은 k''11,4, k'11,4로 결정한다.

8. ‘테이블 2’에 저장된 암호문쌍에 대한 평문쌍에 대해 다음을 수행한다.

8.1. k'1,8을 추측하여 라운드 1의 S-박스의 출력 차분이 {01x,08x09x}에 포함되면 대응하는 키의 카운트 값을 ‘1’씩 증가시킨다.

8.2 카운트가 ‘13’이상 추측된 키를 옳은 k'1,8로 결정한다.

9. 복구한 80 비트 정보를 이용하여, 가능한 비밀 키를 전수조사 하여 비밀키를 복구한다.

4.3 공격 복잡도 및 성공확률

4.3.1 데이터 복잡도 및 메모리 복잡도

제안하는 공격 알고리즘의 데이터 복잡도는 28개의평문으로 구성된 242.16개의 스트럭쳐를 사용하므로 250.16(≈ 242.16⋅28)개의 선택 평문이다.

공격자는 하나의 스트럭쳐에 있는 28개의 평문에 대하여 215(≈ 28 C2)개의 암호문쌍을 생성할 수 있으므로 242.16개 스트럭쳐에서는 257.16(≈ 242.16⋅215)개의 암호문쌍을 구성 할 수 있다. 구성한 암호문쌍에 대하여 단계 2의 ‘16-비트 필터링 과정’을 통과하는 평문 쌍⋅암호문쌍만 저장하므로 241.16(≈ 257.16 ⋅2-16)개의 평문쌍⋅암호문쌍을 ‘테이블 1’에 저장한다. 따라서, 메모리 복잡도는 246.16(= 241.16⋅23⋅2⋅2) 바이트가 된다.

‘테이블 2’에는 ‘테이블 1’에서 사용한 암호문쌍을 옮겨 저장하므로 233.17(≈ 21.16+29.16+217.16+225.16+233.16)개의 평문쌍⋅암호문쌍을 저장할 공간이 필요하다. 따라서 ‘테이블 2’의 메모리 복잡도는 238.17(≈ 233.17⋅23⋅2⋅2)바이트가 된다. 따라서 메모리 복잡도는 ‘테이블 1’과 ‘테이블 2’의 저장공간을 합한 246.16(≈ 246.16 +238.17)이 된다.

4.3.2 시간 복잡도

단계 1에서 250.16(≈ 242.16⋅28)개의 평문을 암호화하는 과정이 필요하고, 단계 3에서 필터링 과정을 통과한 암호문쌍의 개수가 약 7(≈ 4+21.16)개 이므로, 이 암호문쌍에 대하여 k''11,8을 추측하면 #의 PP-1/64-128의 복호화 연산이 된다. 단계 3.4에서는 241.16개의 암호문쌍을 복호화 하여 ‘테이블 1’을 갱신하는 과정이 필요하므로 #의 PP-1/64- 128의 복호화 연산이 필요하다. 이 과정을 통과하는 암호문쌍의 수는 #개가 된다. 유사한 방법으로 각 단계의 복잡도를 계산하면 [표 6]과 같다.

[표 6] 각 단계별 공격 복잡도 및 성공확률

그러므로 단계 2~8 계산 복잡도는 키 추측 계산 복잡도와 테이블 계산 복잡도를 합한 235.69번 PP-1/64-128 복호화 연산이 필요하다. 단계 9에서 8-비트 k'1,8와 72-비트 라운드 키 복구 이후, 비밀 키 복구를 위하여 248번의 키 스케쥴 연산이 필요하므로 비밀 키 복구에 필요한 전체 계산 복잡도는 248의 암호화 연산이 필요하다. 따라서 비밀 키 복구에 필요한 전체 계산 복잡도는 250.45 (≈250.16+248.00+235.69)가 된다.

[그림 2] PP-1/64-128에 대한 부정 차분 공격 모델

4.3.3 성공확률

본 논문에서 제안하는 공격의 성공확률을 각 단계별로 계산하면 [표 6]과 같다. 예를 들어, 단계 3.2의 경우 틀린 키가 통과할 확률은 다음과 같이 이항 분포로 계산할 수 있다.

#(2)

식 (2)는 ‘테이블 1’에 저장될 평문⋅암호문쌍의 기댓값이 ‘7’ 이하이고, 차분 값 X1을 만족할 확률이 3⋅2-8이므로 이항분포를 이용하여 틀린 키 하나가 통과할 확률을 계산한 것이다. 그러므로 255개의 틀린 키가 통과하지 못할 확률은 다음과 같다.

#

위와 동일한 방법으로 각 단계별 성공 확률을 정리하면 [표 6]과 같고, 단계 3을 통과 하면 이후 단계의 성공확률은 99.99%에 근사 하므로 전체 공격의 성공확률은 단계 3을 통과하는 성공확률인 98.62% 가 된다.

V. 결론

블록 암호 PP-1은 다양한 길의 데이터 블록과 비밀키 길이를 지원하는 블록 암호이다. 본 논문에서는 PP-1/64-128에 대한 부정 차분 공격을 제안했다. 본 논문에서 제안하는 공격은 250.16의 선택 평문과 246.16바이트 메모리를 이용하여, 250.45의 PP-1/64 -128의 암호화 연산을 통해 비밀키를 복구한다. 본 논문에서 제안 하는 PP-1/64-128에 대한 공격 결과는 현재까지 알려진 공격 결과 중 가장 좋은 결과이다.

다른 길이의 데이터 블록과 비밀키 길이를 사용하는 블록 암호 PP-1에 대한 연구는 향후 과제로 남긴다.

References

  1. J. Daemen and V. Rijmen, The design of Rijndael: AES - the advanced encryption standard, Springer, Mar. 2002.
  2. H. J. Lee, S. J. Lee, J. H. Yoon, D. H. Cheon, J. I. Lee, "The SEED Encryption Algorithm," RFC 4269, Dec 2005.
  3. D. Kwon, J. Kim, S. Park, S. H. Sung, Y. Sohn, J. H. Song, Y. Yeom, E-J. Yoon, S. Lee and J. Lee,, "New Block Cipher: ARIA," ICISC 2003, LNCS 2971, pp. 432-445, 2004.
  4. K. Buholc, K. Chmiel, A. Grocholewska- Czurlo, E. Idzikowska, I. Janickalipska, J. Stoklosa, "Scalable PP-1 block cipher," Mathematics Computer Science 2010, Vol 20, No.2, pp. 401-411, 월 2010.
  5. A. Bogdanov, L. R. Knudsen, G. Leander, C. Paar, A. Poschmann, M. J. B. Robshaw, Y. Seurin and C. Vikkelsoe, "PRESENT: An Ultra-Lightweight Block Cipher," CHES 2007, LNCS 4727, pp. 450-466, 2007.
  6. D. Hong, J. Sung, S. Hong, J. Lim, S. Lee, B-S. Koo, C. Lee, D. Chang, J. Lee and K. Jeong, "HIGHT : A New Block Cipher Suitable for Low-Resource Device ," CHES 2006, LNCS 4249, pp. 46-59, 2006.
  7. C.D. Canniere, O. Dunkelman and M. Knezevic, "KATAN and KTANTAN : A Family of Small and Efficient Hardware- Oriented Block Ciphers" CHESS '09, LNCS 5747, pp. 272-288, 2009.
  8. E. Idzikowska, "CED for Involutional Functions of PP-1 Cipher," Future Information Technology (FutureTech) 2010, pp. 1-5, May. 2010.
  9. L. R. Knudsen, "Truncated and High Order Differentials", FSE'06, LNCS 1039, pp. 99-211, 1996.
  10. 홍용표, 이유섭, 정기태, 홍석희, "블록 암호PP-1/64-128에 대한 차분 공격", Korea Crypt '11, 10(1), pp. 1-7, 2011년 1월.