DOI QR코드

DOI QR Code

Related-Key Attacks on Reduced Rounds of SHACAL-2

축소 라운드 SHACAL-2의 연관키 공격

  • Kim Jongsung (Center for Information of Security Technologies, Korea University) ;
  • Kim Guil (Center for Information of Security Technologies, Korea University) ;
  • Lee Sangjin (Center for Information of Security Technologies, Korea University) ;
  • Lim Jongin (Center for Information of Security Technologies, Korea University)
  • 김종성 (고려대학교 정보보호기술연구센터) ;
  • 김구일 (고려대학교 정보보호기술연구센터) ;
  • 이상진 (고려대학교 정보보호기술연구센터) ;
  • 임종인 (고려대학교 정보보호기술연구센터)
  • Published : 2005.06.01

Abstract

SHACAL-2 is a 256-bit block cipher with up to 512 bits of key length based on the hash function SHA-2. It was submitted to the the NESSIE project and was recommended as one of the NESSIE selections. In this paper, we present two types of related-key attacks called the related-key differential-(non)linear and the related-key rectangle attacks, and we discuss the security of SHACAL-2 against these two types of attacks. Using the related-key differential-nonlinear attack, we can break SHACAL-2 with 512-bit keys up to 35 out of its 64 rounds, and using the related-key rectangle attack, we can break SHACAL-2 with 512-bit keys up to 37 rounds.

SHACAL-2는 해쉬 알고리즘 SHA-2의 압축 함수에 기반을 둔 최대 512 비트 키 크기를 가지는 256 비트 블록 암호이다. 최근에 SHACAL-2는 NESSIE 프로젝트의 256 비트 블록 암호에 선정되었다. 본 논문에서는 연관키를 이용한 두 가지 형태의 연관키 차분-비선형 공격과 연관키 Rectangle 공격에 대한 SHACAL-2의 안전성을 논의한다. 연관키 차분-비선형 공격 기법을 통하여 512 비트 키를 사용하는 35-라운드 SHACAL-2를 분석하고, 연관키 렉탱글 공격 기법을 통하여 512 비트 키를 사용하는 37-라운드 SHACAL-2를 분석한다. 본 논문에서 소개하는 512 비트 키를 가지는 37-라운드 SHACAL-2 연관키 렉탱글 공격은 SHACAL-2 블록 암호에 알려진 분석 결과 중 가장 효과적이다.

Keywords

Ⅰ.서론

SHACAL-2⑸는 해쉬 알고리즘 SHA-2의 압축함수에 기반한 256 비트 블록 암호이다. 64 라운드로 구성된 SHACAL-2는 최대 512 비트 키 크기를 가지며, 최근 NESSIE(New European Schemes for Signatures, Integrity, and Encryption)프로젝트에 256 비트 블록 암호로 선정되었다.

현재까지 SHACAL-2 블록 암호에 대한 가장 효과적인 암호 분석 결과는 차분-비선형 특성을 이용한 32-라운드 SHACAL-2 공격이다⑻.〔8〕에 의해 .소개된 공격은 14-라운드 부정 차분 특성과 마지막 3 라운드의 비선형 관계식을 이용한 17-라운드 차분-비선형 특성을 기반으로 하고 있다. 본 논문에서 소개하는 공격 또한〔8〕의 마지막 3 라운드의 비선형 관계식을 이용한다.

본 논문에서는 연관키 공격의 두 가지 형태를 소개한다. 하나는 연관키 차분-비선형 특성을 이용한 공격이며, 다른 하나는 연관키 렉탱글 특성을 이용한 공격이다. 두 가지 공격에 대한 일반적인 형태를 살펴본 후 SHACAL-2의 분석 결과를 소개한다.

연관키 차분-선형 공격⑹은 확률 1을 가지는 연관키 차분-선형 특성을 이용한다. 하지만 본 논문에서는 특성 확률이 1보다 작은 경우로 일반화하여 공격 적용 가능성을 향상시킨다. 또한 선형 특성 부분을 비선형 특성으로 일반화한 연관키 차. 분-비선형특성을 이용한 연관키 차분-비선형 공격 가능성을 소개하며, 공격 적용 가능성을 더욱 향상시킨다. 본 공격을 SHACAL-2에 적용 결과 연관키 차분-비선형 특성을 사용하여 a’"? 연관키 선택 평문과 2451 1시간 복잡도를 가지고 전수조사 보다 빠르게 35-라운드 SHACAL-2를 공격할 수 있다.

연관키 렉탱글 공격⑼은 두 가지 형태의 연관키렉탱글 특성을 이용할 수 있다. 본 논문에서는 두 가지 형태의 연관키 렉탱글 특성 중 SHACAL-2에더욱 쉽게 적용할 수 있는 한 가지 특성을 적용한다. 본 공격을 SHACAL-2에 적용 결과 연관키 렉탱글 특성을 사용하여 2233 16 연관키 선택 평문과 2484.95 시간 복잡도를 가지고 전수조사 보다 빠르게 37-라운드 SHACAL-2를 공격할 수 있다. 본 논문의 분석과 기존 SHACAL-2 분석 결과의 비교는 표 1과 같다.

표 1. SHACAL-2의 분석 결과 비교

Ⅱ. 표기법 및 SHACAL-2

본 절에서는 본 논문에 전반적으로 사용하는 표기법을 정리하고, SHACAL-2 블록 암호를 간략하게소개한다. 또한 본 논문의 연관키 차분-비선형 공격에 사용하는 SHACAL-2의 3-라운드 비선형 관계식(7.8)을 요약한다

2.1. 표기법

본 소절에서는 표기법을 정의한다. 단, 워드의 비트 위치는 가장 오른쪽 최하위 비트부터 0으로 시작하며, 왼쪽으로 갈수록 커진다.

.P : 256 비트 평문, P= (40…, H) 또는 P=

'P' : r번째 라운드의 256 비트 입력 값, = ..., *).

. 矽 : 32 비트 워드 X"■의 / 번째 비트,

. ? : 알 수 없는 값

.e, 3 번째 비트를 제외한 모든 비트가 0인 32 비트 워드.

•e,: 妃 ...3번째 자리의 값은 1,(4+1)-31 번째 자리의 값은 0, 1, 또는 알 수 없는 값이고, I] <■•-< ike\ ",...為 를 제외한 자리의 값은 0인 32 비트 워드

2.2. SHACAL-2 블록 암호 소개

H. Handschuch와 D. Naccache에 의해 제안된 SHACAL-2⑸는 해쉬 함수 알고리즘 SHA-2“3) 의압축 함수에 기반을 두었으며, 다양한 키 길이(최대 512 비트)를 가지는 256 비트 블록 암호이다. SHACAL-2 암호화 과정은 다음과 같다.

256 비트 평문은 여덟 개의 32 비트 워드 A, B, C, D、E, F, G, H로 분할된다. 32 비트 워드 足를 /번째라운드 입력 값이라 하면, 평문 戸는 A°, B 也°, 戶 으로 표현되며, 64 라운드 과정을거친 후 암호문은 4%364, (沪仏齊, 研, 由, 宜, 丑6」 이다. 认= 0, ..., 63)번째 라운드 암호화 과정은 다음과 같다(그림 1 참조).

그림 1 SHACAL-2의 i번째 라운드 암호화 과정

#

+는 법 232 덧셈을 의미하며, 矿는 32 비트 라운드 키, K*는 32 비트 라운드 상수 값이다. 위에 정의된 / 번째 라운드 암호화 과정에 사용하는 함수는 다음과 같다.

#

rX는 32 비트 워드 X의 보수를 의미하며, §(X)는 32 비트 워드 X의 邛]트 오른쪽 순환을 의미한다(즉. #).

SHACAL-2의 키는 최대 512 비트까지 허용되며 512 비트 보다 작은 키에 대해서는 0 스트링을 패딩하여 총 512 비트를 생성한 후 사용한다. 하지만 SHACAL-2는 128 비트 보다 작은 키의 사용은 지양한다. 512 비트 키 스트링을 W=[Wa\\W1\\--II戸5] 와 같이 표시하면, 2048 비트 키 확장 과정은 다음과 같다(그림 2 참조).

그림 2. SHACAL-2의 라운드 키 생성 과정

#

瓦 S)는 32 비트 워드 穿의 z.비트 오른쪽 쉬프트를 의미한다(즉, #).

2.3. SHACAL-2의 3-라운드 비선형 관계식

본 소절에서는 SHACAL-2의 3-라운드 비선형관계식〔7, 8)을 요약한다

脇는 비선형 함수 NFeAr+3, Br+3, --, Hr+3, Kr,K"i, K''+2, 砂, 时) 의 출력 값으로 표현할 수 있다. 이 함수를 간단하게 A成'十3로 표시한다. 단 #.

#

위 비선형 방정식의 #은 다음과 같이 표현할 수 있다.

#

본 논문에서 소개하는 SHACAL-2의 연관키 차분-비선형 공격을 효과적으로 표현하기 위해서 MNF"f 함수를 사용한다. 단, #

Ⅲ. 연관키 공격

본 절에서는 블록 암호를 분석하는데 유용한 도구 중 하나인 연관키 공격(2)의 두 가지 형태를 소개한다. 먼저, 연관키 차분-선형 공격을 소개하고, 본 논문에서 이용하는 연관키 차분-비선형 공격으로의 확장 과정을 설명한다. 다음은 연관키 렉탱글 공격 방법의 일반적인 형태를 소개한다.

3.1. 연관키 차분-(비)선형 공격

1994년 Langford와 Hellmannse 차분 공격 (1)과 선형 공격((1)을 결합하는 차분-선형 공격 방법을 소개하였다. 이 공격은 확률 1의 차분 특성과 바이어스 q를 갖는 선형 근사식을 이용한다. Biham, Dunkleman, Keller(3)는 차분 특성 확률이 1보다작은 경우에도 차분-선형 공격을 가능하도록 일반화한 향상된 차분-선형 공격을 소개하였다.〔8〕에서 선형 근사식 바이어스 g가 1/々이거나" 1/에 매우근접할 때. 차분 특성 대신 포화 특성을 이용할 수있는 포화-선형 공격을 소개하였다. 또한〔8〕에서는 위의 모든 공격은 선형 특성의 이용 대신 비선형 특성을 이용할 수 있음을 보였다. 즉, 1994년에 소개된 차분-선형 공격은 현재까지 다양한 일반화된 형태로 발전되고 있다.

1998년 Hawkes⑹는 연관키와 차분-선형 공격을 결합한 연관키 차분-선형 공격을 소개하였다. 여기서 사용된 공격은 확률 1의 연관키 차분 특성과 바이어스 1/々의 선형 근사식을 이용한다. 하지만 연관키 차분-선형 공격은 차분-선형 공격의 발전과 유사하게 확률 1보다 작은 차분 특성과 바이어스가 1/보다 작은 선형 근사식을 이용할 수 있도록 일반화가 가능하다. 더구나 연관키 차분-선형 공격은 비선형 관계식을 이용할 수 있는 경우로 확장할 수 있으며, 이를 연관키 차분-비선형 공격이라 부른다.

연관키 차분-선형 공격은 키 为에 대한 평문 a와 키 妒에 대한 평문 尸*의 암호문 쌍을 요구한다. 단, &와 妒는 서로 다르지만, 연관된 키이다. 차분 특성을 표현하기 위하여 본 논문에서는 입력 차분을 nP 으로, 출력 차분을 %, 으로 표기한다. 또한 선형 근사식을 표현하기 위하여 입력 비트 마스크, 출력 비트 마스크, 부분 키 비트 마스크를 각각 xP, xT, 入大으로 표기한다.

블록 암호 #가 두 개의 부분 암호 理.屋의 합성 형태 #로 표현된다고 가정하자. E를 함수#로 나타낸다면, 위의 가정 하에 E는 £°, 屮의 합성 형태#으로 표현할 수 있다. 에 확률#의 연관키 차분 특성 #(즉, #)이 존재한다고 가정한다. 그리고 E' 에 확률#또는 바이어스 q 의 선형 특성 #(즉, #. 단, K는 부분 키)이 존재한다고 가정한다. 尸와 户*를 차분 조건 #을 만족하는평문 쌍이라 가정할 때, 평문쌍 .。와 戶*가 확률 P* 의 차분 특성을 만족하는 경우에 확률 1의한 비트 방정식 #을 얻을수 있다. 단, a의 값은 0 또는 1이며, #이다.

만약 평문쌍 尸와 P*A 확률 1—P*의 차분 특성 0—>0을 만족하지 않는 경우에 한 비 트 식#은 랜덤한 값을 갖는다. 위의 두 경우를 고려하여 다음과 같은 확률 #의한 비트 방정식을 얻을 수 있다.

#(1)

위의 ^의 선형 근사식의 존재 가정에 따라 다음과 같은 확률 #또는 바이어스 q의 갖는 선형 근사식 두 개를 얻을 수 있다.

#(2)

#(3)

따라서, 〔11〕에 소개된 piling up lemma를 사용하여 확률 #을갖는 선형 근사식을 다음과 같이 얻을 수 있다.

#(4)

즉, 바이어스 22>*寸의 다음 선형 근사식을 얻을 수 있다

#(5)

따라서 (5)을 이용한 선형 공격을 수행하기 위해서# 개의 연관키 선택 평문쌍을 요구한다.

위에서 언급하였다시피 연관키 차분-선형 공격은 선형 근사식 대신에 비선형 관계식을 이용할 수 있다. 본 논문에서는 이를 연관키 차분-비선형 특성이라 명한다.

3.2. 연관키 렉탱글 공격

2004년 연관키(2)와 렉탱글(4) 공격을 결합한 연관키 렉탱글 공격이 소개되었다⑼. 연관키 렉탱글공격의 주는 연속된 두 개의 차분 특성을 사용하는 것이다. 단, 하나는 연관키 차분 특성이고. 다른 하나는 차분 특성을 이용한다. 따라서 본 공격은 확률이 높은 연관키 차분 특성에 높은 확률을 갖는 차분 특성을 연결하여 구성할 수 있을 때 매우 유용하다.

위와 같이 블록 암호」#가 두 개의 부분 암호 咪及의 합성 형태 #로 표현된라고 가정하자. .砂에 확률 商의 연관키 차분 특성 c-0이 존재한다고 가정하자. 즉, # 이 며 , 는 서로 다르지만, 연관된 키이다. 그리고 E4에 확률 缶의 차분 특성 이 존재한다고 가정하자. 즉. #.

연관키 렉탱글 특성은 몇 가지의 차분 조건을 만족하는 4개의 평문 쌍 (耳-*, 乌£*)에 의해 생성된다. 4, 鸟는 坦에 의해, F:, P;는 电, 에 의해 암호화 될 때. 차분 조건 # 성립한다고 가정하자. 평문 4, 4*, , 弓.乌*에 대한 의 암호문을 각각 라 하고, 尤, 不*, 不, %*에 대한 宏 의 암호문을 각각 g, q*, q, q*라 하자. 위의 가정 하에 차분 조건 #와, #을 만족한다면, #이 성립한다. 만약 위의 차분 조건 하에 암호문 쌍 와 G*, q*이 차분 d를 만족한다면(즉, cecec*® c*=s), 위의 4개의 평문 쌍 (耳4*, 乌.乌*)을 올바른 quartet이라 부른다. 또한. 차분 조건 ##을 만족한다면, #이 성립한다. 만약 암호문쌍 q, q*와 q*, q이 차분 #를 만족한다면(즉, # 이러한 모든 차분 조건을 만족하는 4개의 평문 쌍(4, 区, 与£*)또한 올바른 quartet이라 부른다. 올바른 quartete 그림 3에 나타나 있다. 더욱 일반적으로 올바른 quartete 주어진 차분 값 a와 d에 대해 임의의 0와 7 차분 값에 따라 만족한다.

그림 3. 연관키 Rectangle Distinguisher-1

차분 a를 만족하는 m개의 평문 쌍(키 k를 사용하는 한 평문과 키 厅를 사용하는 다른 한 평문)이 있다. 고가 정호].자. 부분 암호 E°을 통해 연관키 차분 특성를 만족하는 쌍은 약 mpj;개 이며, m■对i개의 평문 쌍은 약 #개의 quartet을 생성한다. 블록 암호의 암호화 과정에서 중간 과정의 값이 랜덤하게 분포한다고 가정하면, 확률 2-"으로 차분 #를 얻는다. 이 경우에 올바른 quartet이 되기 위해와 XQq 는 확률 如를 갖는 차분 특성 7~遂을만족해야 한다. 따라서 차분 a를 만족하는 以 개의 평문 쌍에 대한 올바른 quartet의 평균 기대 값은 다음과 같다, 단, #.

#

랜덤 치환 함수인 경우에 올바른 quartet의 평균 기대값은 약 #이므로, 만약 #을 만족하고, m이 충분히 크다면, 연관키 렉탱글 특성을 갖는 E와 랜덤 치환 함수는 구별 가능하다.

N. 35-라운드 SHACAL-2에 대한 연관키 차분-비선형 공격

본 절에서는 SHACAL-2의 28-라운드 연관키 차분-비선형 특성을 구성하는 방법을 소개한 후, 이 특성을 이용한 35-라운드 SHACAL-2의 연관키 차분-비선형 공격을 설명한다.

2.2절에서 설명하였다시피 SHACAL-2의 키 스케쥴 알고리즘은 선형 귀환 쉬프트 레지스터를 기반으로 수행한다. 하지만, 키 스케쥴 알고리즘은 처음 몇 라운드에 대해 차분 확산 효과가 작다. 즉, 6 라운드 키 砂를 제외하고 모두 같은 연관키를 고려할 때, 확장 키 0加, ”7, ..., 形20은 모두 같으며 , 0끼은 勺3, ~ 차분 값을 가지며. 俨2는 e3i 차분 값을 갖는다. 이러한 연관키 차분 특성은 높은 확률로 성립하는 25-라운드 연관키 부정 차분 특성을 구성할 수 있게 해준다. 다시 말해서, 확률 2-16으로 만족하는 라운드 0~24(E°)에 대한 25-라운드 부정 차분 특성을 구성할 수 있다. 단,

#

이며, 평문 쌍 RP*은 표 2과 같이 고정된 비트 값을 갖는다. 연관키 부정 차분 특성 경로에 대한 자세한 내용은 표 3를 참고하라.

표 2. 평문 쌍 P,P* 의 고정 비트

표 3. SHACAL-2의 25-라운드(#) 연관키 부정 차분 특성

위에 소개한 25-라운드 연관키 부정 차분 특성은 확률 #을 만족하는 선형 특성으로 바꾸어 적용할 수 있다. 즉, 만약 평문쌍 RP 가 차분 #을 만족하고, 〔표 2〕와 같은 고정 값을 갖는다면, 확률# 으로 # 을 만족한다. 확률  #을 확인하기 위하여 234 평문 쌍을 이용하여 다섯 번의 시뮬레이션을 수행하였다.

각 시뮬레이션은 무작위 연관키 쌍과 평문 쌍을 가지고 수행하였다. 25-라운드 특성은 확률 #을 만족하기 때문에, 234 평문 쌍 중 #을 만족하는 평문 쌍의 개수의 기댓값은 약 2"+131072 (=2財 . 偿+2~*))이다. 다섯 번의 시뮬레이션 결과는 2器+128629 , 2*'+130921, 213 +1138897, 2編+143916,

위의 25-라운드 특성 식에 앞서 설명한 3 라운드 비선형 관계식을 연결함으로써 더욱 강력한 특성 식을 얻을 수 있다. 주어진 평문 쌍 RP*는 #의 근사 확률을 가지고 #을 만족한다. 이에 3 라운드 비선형 관계식을 이용하여 확률#으로 # 을 만족하는 28-라운드 특성 식을 구성할 수 있다. 같은 의미로 선형 근사 바이어스 2-17을 만족하는 다음 식으로 나타낼 수 있다

#(6)

따라서 확률 #을 만족하는 28-라운드 연관키 차분-비선형 특성을 구성할 수 있다.

다음 과정은 28-라운드 연관키 차분-비선형 특성을 이용하여 35-라운드 SHACAL-2의 연관키를 찾는 방법을 소개한다.

알고리즘 1

1) 차분 珏을 만족하고 8비트 고정 값을 갖는 ?!9 개의 평문쌍 (/爲, /%)3 = 0, 1, ..., 4, 顶 = 0, 1, ..., 239 — 1 으로 이루어진 5개의 집합을 선택한다. 단, 임의의 두 집합 /에 대해서 평문 쌍은 모두 다르게 선택한다. 여기서 7爲는 키 »를사용하여 암호화 하며, 弓는 키 A와 차분(0, 0, 0, 0, 0, 0, eg, 0, 0, 0, 0, 0, 0, 0, 0, 0)을 갖는 키 妒를 사용하여 암호화 한다. 평문 쌍의 선택 후 239개의 평문 쌍으로 이루어진 5개의 집합을 키 k, 妒를 사용하여 암호문 쌍 (<4*有)3 = 0丄..., 4, 顶 = 0, 1, ..., 239 — 1을 요구한다.

2) 207 비트 부분 키 쌍 (殊 s妒) 를 추측한다. 부분 키 sk는 MK34, W33, W32, jy31, we, w?° , …, 诚握皆, s껴, ..., 诚?, 浦%耕8, ..., 诚気博, 谚6 을 다른 부분 키 sk*는 ”34, 07*33, w*32, "31 商3。, 遍3。, .., 商若商29, 商29, ..., 踞渦荷28, 商28, ..., W248, W027, Wo26 을 표현한다. 주어진 35-라운드 SHACAL-2의 연관키 암호문 쌍으로부터△肱 V, 28 을 계산하기 위해서 207비트키의 추측만으로 충분하다.

3) 兀=0, 1, ..., 4에 대해서 다음을 수행한다. 추측한 부분 키 sk를 사용하여 모든 239개의 암호문 C"를 부분적으로 복호화 하고 추측한 부분 키 s妒를 사용하여 모든 239개의 암호문 或를부분적으로 복호화 하여 식 (6)의 성립여부를 판단한다. 만약 식 (6)을 만족하는 암호문 쌍의 개수가 238—22L6 보다 크고 238 + 2孔6보다 작다면 단계 2로 돌아간다.

단계 3까지 통과한 부분 키 S&에 대해 나머지 305 비트 키에 대한 전수조사를 수행한다. 이 과정을 통과한다면, 512 비트 키 "를 35-라운드 SHACAL-2 의 마스터 키로 ^©(0, 0, 0, 0, 0, 0 &沙0, 0, 0, 0, 0, 0, 0, 0, 0)를 연관된 512 비트 마스터 키로 출력한다. 그렇지 않다면, 단계 2로 돌아간다. 207 비트 부분키 쌍 (sk, sk*) 을 모두 테스트 했음에도 불구하고 "가 출력 되지 않는다면, 알고리즘 1은 출력 값 없이 종료한다.

알고리즘 1의 데이터 복잡도는 24232(=5 . 2 . 239) 연관키 선택 평문을 요구하며, 공격에 사용되는 메모리는 암호문 쌍 (q, ), q:j)의 저장 공간에 의존하므로 약 247'32(=5 . 2 . 239 - 聲) 바이트를O 요구한다.

또한 알고리즘 1의 계산 복잡도는 다음과 같이 평가할 수 있다. 단계 1의 계산 복잡도는 24232번의 35-라운드 SHACAL-2 암호화 연산이다(데이터 수집 단계). 단계 3의 계산 복잡도를 평가하기 위해서 각각의 *에 대해서 생존하는 부분 키 쌍 (s/s妒)의 비율을 계산하여야 한다. 랜덤 치환 함수인 경우 각 쌍은 랜덤하게 보이기 때문에, 올바르지 않게 추측한 부분 키 쌍에 대해서는 전체 암호문 쌍 중 평균 절반이 식 (6)을 만족한다. 그러므로 식 (6)을 만족하는 평문 쌍의 개수는 이항 분포 X~Bin(239, j) 를 따른다. 이항분포는 쉽게 정규 분포로 근사할 수 있다. 즉, X~ N"). 단, 〃 = 238, ^ = 237 따라서 #이고,

#

을 확인할 수 있다. 각각의 (4)에 대해 생존하는 부분 키 쌍의 비율은 약 2-取27이며, 단계 3의 번째에 대해 생존하는 부분 키 쌍의 개수는 약(2207 ) 2 . 2-53'27*(i+1) 이다. 그러므로 단계 3의 계산 복잡도는

#

번의 35-라운드 SHACAL-2 암호화 연산이다. 단계 3을 통과하는 부분 키 쌍의 개수는 약 214765(~ (2207)2 ・ 2-林*5)이기 때문에, 단계 4의 계산 복잡도는 약 2倣65(= 아47.65 ・ 2305 - 丄) 35-라운드SHACAL-2 암호화 연산이다. 따라서 .알고리즘 1 의 전체 계산 복잡도는 약 24521( ~ 242 32 +2451 64 + 2450.21)번의 35-라운드 SHACAL-2 암호화 연산이다.

알고리즘 1의 성공확률을 계산하기 위해 올바른 부분 키 쌍이 단계 3을 통과하는 확률을 계산한다. 올바른 부분 키 쌍에 대해 선형 근사식 확률 #또는 #으로 식 (6)을 만족한다. 인 경우에 이항 분포 #을 따른다 즉,#)이며 , 단, /#, #)이다 X는 올바른 부분 키 쌍에 대해 식 (6)을 만족하는 평문 쌍의 개수이다. 위의 공격 과정을 사용하여 단계 3의 각 S 에 대해 올바른 부분 키 쌍이 통과할 확률은 약 #이다. 따라서 단계 3에서 올바른 부분 키 쌍이 통과할 확률은 약 #이다. #인 경우에도 같은 결과를 얻을 수 있다. 그러므로 알고리즘 1의 성공 확률은 98%이다. 또한 알고리즘 1은 같은 복잡도와 성공 확률로〔12〕에 소개된 키 랭킹 알고리즘으로 바꾸어 생각할 수 있다. 하지만 키 랭킹 '알고리즘은 모든 가능한 2414 부분 키 쌍 (狄浦妒)에 대한 더 많은 메모리를 요구한다.

Ⅴ. 37-라운드 SHACAL-22I 연관키 렉탱글 공격

본 절에서는 SHACAL-2의 33-라운드 연관키 렉탱글 특성을 구성하는 방법을 소개한 후, 이 특성을 이용한 37-라운드 SHACAL-2의 연관키 렉탱글공격을 설명한다.

앞서 설명하였다시피 SHACAL-2의 키 스케쥴알고리즘은 처음 몇 라운드에 대해 차분 확산 효과가 작다. 8 라운드 키 砂를 제외하고 모두 같은 연관키를 고려할 때, 확장 키 俨%形七 *2은모두 같다. 이러한 연관키 차분 특성은 높은 확률로 성립하는 23-라운드 연관키 차분 특성을 구성할 수 있게 해준다. 다시 말해서, 확률 2-用으로 만족하는 라운드 0~22(8°) 에 대한 23-라운드 연관키 차분 특성 Z을 구성할 수 있다. 단,

#

이며, 평문 쌍 P, P*은 표 4과 같이 고정된 비트값을 갖는다. 연관키 차분 특성 경로에 대한 자세한 내용은 표 5를 참고하라.

표 4. 평문 쌍 의 고정 비트

표 5. SHACAL-2의 23-라운드(#) 연관키 차분 특성 (M= {6, 9, 18, 20, 25, 29})

앞에 설명하였다시피 연관키 Rectangle 특성은에 대해 연관키 차분 특성이 아닌 차분 특성을 이용한다. 즉, 에 대해서는 라운드 키의 차분 확산 효과를 고려할 필요가 없다. 따라서 에 대한확률 2-口로 10-라운드(23 ~32) 차분 특성 TfJ 를 구성할 수 있다. 단,

#

이다. 차분 특성 경로에 대한 자세한 내용은 표 6을 참고하라.

표 6. SHACAL-2의 10-라운드(#) 차분 특성 (71/= {3, 14, 15, 24, 25})

新를 계산하기 위해 의 입력 차분 a를 갖는 모든 연관키 차분 특성 확률을 계산하여야 한다. 또한 S 를 계산하기 위해 加의 출력 차분 d를 갖는 모든 차분 특성 확률을 계산하여야 한다. 하지만 모든 특성 경로를 고려하는 것은 계산적으로 불가능하기 때문에 ^(步)에 대한 折(&)의 하한 값을 계산하기 위해 가능한 많은 연관키 차분 특성 (차분 특성)을 고려하여야 한다. 하지만 분석 결과 의 입력 차분 a를 갖는 임의의 23-라운드 연관키 차분 특성 확률은 2기보다 너무 작다. 따라서 夢의 연관키 차분 특성 확률의 하한 값을 2-31으로 결정할 것이다. 日의 하한 값을 계산하기 위해 의 10-라운드 차분 특성 확률에서 마지막 9-라운드 특성이 같은 다양한 입력 차분 값을 고려하였다. 표 7은 확률에 따른 존재하는 차분 특성의 개수를 나타낸다. 결과적으로 铲의 하한 값은 厂”이며, 0의 하한 값은 厂71.16으로 증가시킬 수 있다. 연관키 Rectangle 특성 확률 新 . &2-皿16)은 2-您 보다 크기 때문에, 구성한 33-라운드 연관키 Rectangle 특성은 33-라운드 SHACAL-2와 랜덤 치환 함수를 구별할 수 있는 특성이 될 수 있다. 다음 과정은 33■■라운드 연관키 Rectangle 특성을 이용하여 37-라운드 SHACAL-2의 연관키를 찾는 방법을 소개한다.

표 7. SHAHCAL-2의 10-라운드(#) 차분 특성에 사용한 확률에 따른 차분 특성 개수

알고리즘 2

1) 차분 a을 만족하고 22비트 고정 값을 갖는 2232.16 개의 평문 쌍。R, g*)3 = 0, 1, ..., 2232.16 -1을 선택한다. 여기서 理는 키 A:를 사용하여 암호화 하며, F:는 키 /C와 차분(0, 0, 0, 0 0, 0, 0, 0, e31, 0, 0, 0, 0, 0, 0, 0)-§- 갖는 키 论를사용하여 암호화 한다. 평문 쌍의 선택 후키 k, 妒를 사용하여 암호문 쌍(q, q*)을요구한다.

2) 128 비트 부분 키 쌍 sk(= 甲33, 砂5, 甲36) , 成*(= 甲*33, J〃*34, 君35, 0/*36) 를 추측한다.

3) 추측한 부분 키 M를 사용하여 36-33 라운드에 대한 모든 q 를 부분 복호화를 수행한다. 또한 추측한 부분 키 酬*를 사용하여 36 ~ 33 라운드에 대한 모든 Q*를 부분 복호화를 수행한다. 부분 복호화를 수행하여 얻은 복호문 LT:를 해쉬 테이블에 저장한다.

4) 모든 抑2에 대해 孔金气 = £;金彳;=6을 테스트 한다. 단, 0 < < f2 < 223216 -1. 만약。값을 테스트 하였을 때, 성립하는 개수가 6보다 크다면, 그때의 모든(7, 气, 彳:, 彳:) 와 추측한 128 비트 부분 키 M를 저장한다. 만약 그렇지 않다면, 단계 2로 돌아간다.

5) 두 개의 32 비트 부분 키 0竺 即*32를 추측한다. 추측한 부분 키 砂2를 사용하여 32 라운드에 대한 모든 气, 4의 부분 복호화를 수행 하여, Tix, I? 에 저 장한다. 또한 추측한 부분 키 甲*32를 사용하여 32 라운드에 대한 모든 4:, 彳:의 부분 복호화를 수행하여에 저장한다. 만약 모든 冗, 彳:와"이 차분(£3, 14, 15, 24, 25冷5, 27, 。9, 18, 29&31, °, °, °, 0)을 만족한다면 , 彳;, 幻: , 球 , 冗* 와 추측한 부분 키 砂2를 저장한다. 만약 그렇지 않다면, 단계 5로 돌아간다. 만약 모든 추측한 I歹32, W*32 에 대해서도 주어진 차분을 만족하지 않는다면, 단계 2로 돌아간다.

6) 두 개의 32 비트 부분 키 "31, 0*31 를 추측한다. 추측한 부분 키 疋最를 사용하여 31 라운드에 대한 모든 彳'"幻; 의 부분 복호화를 수행하여, 에 저장한다. 또한 추측한 부분 키 君31를 사용하여 31 라운드에 대한 모든 4*, 2了의 부분 복호화를 수행하여 冗에 저장한다. 만약 모든 写;, 幻';와 T:;, T:; 이 차분 佰5, 27冷9, 18, 29, 。31,000, 0, 0)을 만족한다면, 추측한 부분 키 归‘I 를 저장한다. 만약 그렇지 않다면, 단계 6으로 돌아간다. 만약 모든 추측한 贵31, 君31에 대해서도 주어진 차분을 만족하지 않는다면, 단계 5 또는 2로 돌아간다. 즉, 만약 M, sA:*에 대해 추측하지 않은 归32, 君32가 존재한다면. 단계 5로 아닌 경우에는 단계 2로 돌아간다.

7) 단계 6까지 통과한 부분 키 形32, 砂 1에 대해 나머지 320 비트 키에 대한 전수 조사를 수행한다. 이 과정을 통과한다면, 512 비트키 妇를 37-라운드 SHACAL-2의 마스터 키로 处'金(0, 0, 0, 0, 0, 0, 0, 0, e:u, 0, 0, 0, 0, 0, 0, 0)를 연관된 512 비트 마스터 키로 출력한다.

알고리즘 2의 데이터 복잡도는 2233 16 연관키 선택 평문을 요구하며, 공격에 사용되는 메모리는 암호문쌍 저장 공간에 의존하므로 약 2238'16 (=2233'16 . 32) 바이트를 요구한다.

또한 알고리즘 2의 계산 복잡도는 다음과 같이 평가할 수 있다. 단계 1의 계산 복잡도는 2233'16 37-라운드 SHACAL-2 암호화 연산이다(데이터수집 단계). 단계 3의 계산 복잡도는 평균 2484'95 (或33" . 郷 . § . 齐 번의 37-라운드 SHACAL-2 암호화 연산이다. 단계 4에서 모든 가능한 각각의 (皿, 44:, 4:)의 6 차분 성립 여부를 테스트 한다. 이는 해쉬 테이블을 이용하여 효과적으로 수행할 수 있다. 유사하게 해쉬 테이블은 단계 5, 6의 나타난 차분 값을 평가하는데에도 효과적으로 사용할 수 있다. 단계 4에서 올바르지 않은 추측 키가 적어도 6개의에 대해 5 차분 성립 여부 테스트를 통과하는 확률은 약

#

이다. 단, t는 尹功"개의 평문 쌍으로부터 유도되는 모든 7]능한 quartet의 개수를 표현하는 邪逐이다. 따라서 단계 4를 통과하는 128 비트 부분 키 쌍의 기댓값은 평균 #이다

통과하는 2'熊泌개의 부분 키 쌍을 걸러내는 방법 중 하나로, 단계 5, 6을 사용한다. 부가적으로 알고리즘 2는 단계 5, 6을 수행함으로써 64 비트 부분 키를 얻을 수 있다. 올바르지 않은 키 쌍 用32, W*32 이단계 5를 만족할 확률은 기껏해야 #이다. 확률 2顼5는 표 6의 32-33 라운드에 표기된 1 라운드 차분 특성을 만족하기 위해 요구되는 수치이며, 단계 5에서 테스트 하는 quartet의 개수가 적어도 6이상이라는 점에서 계산된 확률이다. 따라서 단계 5에서 통과하는 160비트 부분 키 쌍 ((戒, 7严), 3妒, W*32)) 의 기댓값은 2#이고, 단계 5의 계산 복잡도는 약 # 번의 37-라운드 SHAGAL- 2 암호화 연산이다. 유사하게 단계 6은 통과한 2 冷78 부분 키 쌍을 걸러내기 위해 표 6의 31 ~ 32 라운드에 표기된 1 라운드 차분 특성을 이용한다. 1 라운드 차분 특성 확률은 2T2이고, 단계 6에서 테스트 하는 quartet의 개수는 적어도 6 이상이기 때문에, 통과하는 192비트 부분 키 쌍 #의 기댓값은#이고, 단계 6의 계산 복잡도는 약 # 번의 37-라운드 SHACAL-2 암호화 연산이다. 단계 7의 계산 복잡도는 2320 37-라운드 SHACAL-2 암호화 과정을 요구하기 때문에,알고리즘 2의 전체 계산 복잡도는 #번의 35-라운드 SHACAL-2 암호화 연산이다.

알고리즘 2는 앞서 설명한 확률 #으로 만족하는 33-라운드 연관키 Rectangle 특성을 이용하였기 때문에, 올바른 quartet의. 기대 값은 약 23(=痒旳 .(2项2")2)이다. 올바른 부분 키 쌍이 단계 5, 6을 만족하는 확률은 1이다. 그러므로 알고리즘 '2의 성공 확률, 즉, 올바른 부분 키 쌍을 가지고 0 차분 성립 여부 테스트를 통과하는 적어도 6개 이상의 quartet이 생성될 확률은 약 #이다 단, t 는 邪3加 이다

Ⅵ.결 론

본 논문은 향상된 연관키 차분-선형 공격을 소개하고, 이를 연관키 차분-비선형 공격으로 확장 적용하였다. 연관키 차분-비선형 공격을 이용하여 24232 연관키 선택 평문의 데이터 복잡도와 2452」의 계산복잡도를 가지고 35-라운드 SHACAL-2를 공격하였다. 또한 본 논문에서는 연관키 Rectangle 공격을 이용하여 2233 16 연관키 선택 평문의 데이터 복잡도와 2484.95 의 계산 복잡도를 가지고 37-라운드 SHACAL-2를 공격하였다. 이는 SHACAL-2에대한 가장 효과적인 분석 결과이다. 본 논문은 연관키 관련 공격을 이용하여 SHACAL-2의 분석 결과를 소개하였다.

본 고에서 알 수 잇듯이 비교적 단순한 키 스케쥴을 갖는 블록 암호의 경우는 연관키 공격 관점에서 안전성 평가가 이루어질 필요가 있다.

* 본 연구는 고려대학교 특별연구비에 의하여 수행 되었습니다.

References

  1. E. Biham and A. Shamir, 'Differential cryptanalysis of the full 16-round DES', Advances in Cryptology - CRYPTO' 92, LNCS 740, pp. 487-496, Springer- Verlag, 1992
  2. E. Biham, 'New Types of Cryptanalytic Attacks Using Related Keys', Journal of Cryptology, Vol. 7, No. 4, pp. 229- 246, 1994
  3. E. Biham, O. Dunkelman and N. Keller, 'Enhanced Differential-Linear Cryptanalysis,' Advances in Cryptology - ASIACRYPT'02, LNCS 2501, pp. 254-266, Springer-Verlag, 2002
  4. E. Biham, O. Dunkelman and N. Keller, 'Rectangle Attacks on 49-Round SHACAL-1,' FSE '03, LNCS 2887, pp. 22-35, Springer-Verlag, 2003
  5. H. Handschuh and D. Naccache, 'SHACAL : A Family of Block Ciphers,' Submission to the NESSIE project, 2002
  6. P. Hawkes, 'Differential-Linear Weak- Key Classes of IDEA,' Advances in Cryptology - EUROCRYPT'98, LNCS 1403, pp. 112-126, Springer-Verlag, 1998
  7. 홍석희, 김종성, 김구일, 이창훈, 성재철, 이상진, '30 라운드 SHACAL-2의 불능 차분 공격'. 정보보호학회논문지, 14(3), pp. 107- 115, 2004
  8. 김구일, 김종성, 홍석희, 이상진, 임종인, '축소 라운드 SHACAL-2의 차분-선형 유형 공격'. 정보보호학회논문지, 15(1), pp. 57- 66, 2005
  9. 김종성, 김구일, 홍석희, 이상진, 'SHACAL- 1의 축소 라운드에 대한 연관키 Rectangle 공격'. 정보보호학회논문지, 14(5), pp. 57-68, 2005
  10. S. K. Langford and M.E. Hellman, 'Differential-Linear Cryptanalysis,' Advances in Cryptology - CRYPTO' 94, LNCS 839, pp. 17-25, Springer- Verlag, 1994
  11. M. Matsui, 'Linear Cryptanalysis Method for DES Cipher,' Advances in Cryptology - EUROCRYPT'93, LNCS 765, pp. 386-397, Springer- Verlag, 1994
  12. A. A. Selcuk and A. Bicak, 'On Probability of Success in Linear and Differential Cryptanalysis,' SCN'00, LNCS 2576, pp. 174-185, Springer- Verlag, 2002
  13. U.S. Department of Commerce.FIPS 180-2: Secure Hash Standard, Federal Information Processing Standards Publication, N.I.S.T., August 2002