Ⅰ. 서론
연관 키 공격과 연관암호 공격은 마스터키를 이용하여 라운드키를 생성하는 키 스케쥴 알고리즘 약점을 이용하는 공격 방법이다. 연관 키 공격(Re- lated-Key Attack)은 어떠한 연관 관계에 있는 서로 다른 키를 이용하여 평문과 암호문의 관계를 이용하여 공격하는 블록 암호 알고리즘의 분석법으로. 블록 암호 알고리즘의 키스케쥴의 약점을 이용한 공격법이다.⑸이 연관키 공격에서는 고정된 암호화 방식(일반적으로 같은 라운드 함수와 같은 라운드 수를 이용함)을 이용하여 두 키의 연관성을 이용하여 공격하는 반면, 2002년 H. Wu에 의해 소개된 연관 암호 공격 (Related-Cipher Attack)은 연관성이 있는 서로 다른 암호화 방식(일반적으로 같은 라운드 함수를 같지만 라운드 수만 다른 경우)에 두 암호에 사용되는 키의 유사동치성 (semiequivalent)을 이용한 공격 방법이다.'地 이 공격은 AES, ARIA, CAST-128 등과 같은 키 길이에 따라 가변 라운드를 사용하는 블록 암호 알고리즘에 주로 적용될 수 있는 공격법이다. 특히. 블록 암호 알고리즘이 키스케쥴의 약점을 갖고 두 라운드의 수가 작은 경우에 용이하게 적용 가능한 방법이다.
차분 분석법 (Differential Cryptanalysis)t4) 은 블록 암호 알고리즘의 가장 강력한 분석법으로 하나로, 입력 차분에에 대한 출력 차분의 비균일성을 이용한 방법이다. 블록 암호 알고리즘이 이러한 차분 분석에 안전하기 위해서는 차분 특성 확률이 낮은 라운드 함수를 이용하여 충분히 안전한 라운드를 반복하여 설계되어야 한다.
연관암호 공격은 두 연관된 암호에서 라운드 수의 차이가 작은 경우에는 쉽게 적용 가능하나, 라운드 수가 늘어나면 공격 적용이 쉽지 않다. 본 논문에서는 차분 분석법의 개념을 이용하여 연관암호 공격을 확장시키는 방법인 차분 연관 암호 공격 (Differential Related-Cipher Attack)을 소개한다. 이 공격은 차분 공격과 연관암호 공격을 결합한 공격법으로, 라운드 수의 차이가 큰 경우에도 적용 가능하다. 이러한 차분 연관 암호 공격법을 이용하여 가변 라운드 수를 갖는 블록 암호 알고리즘인 ARIA v.0.9[14]와 SC2000[21]에 대한 공격을 소개한다. 또한, 차분 분석뿐 아니라 선형 공격, 고계차분 공격, 스퀘어 공격 등의 기존의 다른 블록 암호 알고리즘의 분석법을 연관 암호 공격과 결합할 수 있음을 보인다. 이러한 공격 결합을 이용하여 SA- FER++"과 CAST-128(1)에 대한 연관암호 분석 관점에서의 안전성을 살펴본다.
Ⅱ.연관 키 공격과 연관암호 공격
블록 암호 알고리즘의 키스케쥴의 약점을 이용한 공격법으로는 취약키 공격""成, 슬라이드 공격 연관 키 공격 以切 연관암호 공격(22) 등이 있다.
취약키 공격은 기존의 차분 공격, 선형 공격 등의 블록 암호 알고리즘의 분석에 대해 일반적인 키보다 쉽게 분석 가능한 키(취약키)들에 대해 분석하는 방법이다. 단순한 키스케쥴을 사용하는 블록 암호 알고리즘 idea'⑸의 경우, 이러한 취약 키 공격에 대한 많은 분석이 소개되었다.[6.10.11] IDEA의 경우, \(2^{16}\) + 1에서의 곱셈 연산을 사용하기 때문에. 라운드 키가 0이거나 1인 경우 차분 공격이나 선형 공격에 쉽게 노출될 수 있다.
슬라이드 공격은 블록 암호의 자체 연관성을 이용한 공격법으로, 반복적인 구조를 사용하는 블록 암호 알고리즘에서 라운드키의 주기성을 이용한다. 이 공격 역시 블록 암호 알고리즘의 키 스케쥴의 약점을 이용한 공격법이다.
연관 키 공격은 선택키 공격법으로 서로 다른 두 키 사이의 연관성을 이용하여 기존의 블록암호알고 리즘의 분석법을 적용하여 공격하는 방법이다. 이 공격에서는 라운드 수는 고정되고 키와 연관되어 있다.
연관암호 공격은 라운드 수가가 변이고 키가 고정된 블록 암호 알고리즘을 분석하는 방법으로 2002년 H. Wu에 의해 소개되었다. 이 공격을 블록 암호 알고리즘 SQUARE와 ACISP 2002에서 제안된 변형된 AES’m에 적용하여 분석하였다. 연관암호 공격은 블록 암호 알고리즘에서의 라운드 수에는 무관 하나, 두 연관암호의 라운드 수의 차이에 의존한다.
연관 키 공격에서는 사용되는 두 키는 서로 다르나 연관되어 있음을 이용하여 분석하는 방법인 반면, 연관암호 공격에서는 가변 라운드를 사용하는 블록 암호 알고리즘에서 라운드 수의 차이를 이용하는 분석법이다. 두 라운드 수의 차이가 작다면 쉽게 연관암호 공격이 가능하다. 그러나 두 라운드 수의 차이가 점점 커질수록 기존의 연관암호 공격을 그대로 적용하기는 쉽지 않다. 이러한 문제점을 극복하기 위해, 본 논문에서는 연관 암호 공격과 기존의 차분 분석의 기법을 결합한 차분 연관 암호 공격(Differential Related-Cipher Attack)이라는 새로운 분석 개념을 도입한다. 또한, 기존의 블록 암호 알고리즘의 분석법과 연관암호 공격을 결합하여. 선형 연관암호 공격, 고계 차분 연관 암호 공격, 포화 연관 암호 공격 등으로 개념을 확장시킬 수 있다.
그림 1. 블록 암호 알고리즘 ARIA의 구조도
Ⅲ. ARIA v.0.9에 대한 차분 연관 암호 공격
3.1블록 암호 알고리즘 ARIA의 소개
ARIA v.0.9는 2003년 국내에서 개발된 AES 와 같은 SPN 구조의 128-비트 블록 암호 알고리즘이다. ARIA는 키 길이에 따라 가변 라운드를 갖는다. 즉, 키가 128비트인 경우 10라운드, 192비트인 경우 12라운드, 256비트인 경우 14라운드를 사용한다. 2004년 v.0.9의 키 스케쥴을 수정과 라운드 수를 각 2라운드 증가하여 v.1.0을 개발하였다. 본 논문에서는 ARIA v.0.9를 ARIA로 표기하고, 이 ARIA v.0.9에 대한 분석한다.
암호화 함수와 복호화 함수가 동일한 구조를 같은 Khazad(2)와 Anubis(3)와 같은 involution(x' =X) 암호는 작은 칩의 사이즈와 짧은 코드 길이로 하드웨어 구현 가능하다는 장점을 가지고 있다. 그러나 구조의 자기 연관성으로 인한 안전성의 문제가 제기되었다.⑼ ARIA는 전체적으로는 구현상의 효율성을 고려하여 involution 구조를 사용하였으나, 완전한 involution 구조는 아니다. 특히, substitution layer는 involution0] 아니다.
ARIA의 라운드는 round key addition layer, substitution layer, diffusion layer로 구성되어 있다. Substitution layer는 \(S_{1}\). \(S_{2}\). \(S_{1}^{-1}\). \(S_{2}^{-1}\) 4개의 S-box를 사용한다. Substitution lay- er는 두 종류의 type 1과 type 2를 순차적으로 사용한다. 이것은 ARIA의 전체적인 구조적 특징인 involution의 성질에도 부합한다. S-box layer type 1은 다음과 같이 구성된다.
#
S-box layer type 2는 type 1의 역함수 꼴로 다음과 같이 구성되어 있다.
#
Diffusion layer는 involution 성질(\(A^{-1}\) =A)을 만족하는 행렬A를 사용한다. A의 원소의 값은 0 혹은 1의 값을 갖는 이 진 행렬(binary matrix) 이다. 이 행렬은 역행렬을 갖는 이 진 행렬 중 확산효과가 가장 좋은 행렬로써, branch number의 수가 8이다. 다음은 행렬4를 표현한 것이다.
#
ARIA에 대한 차분 분석, 선형 분석. 불능차분 분석, 부정차분 특성 등에 대한 안전성 분석도 알고리즘과 함께 제시되었다.”幻
■ ARIA 암호 표기
\(\sigma\left[e k_{i}\right]\)를 i번째 라운드 key addition layer 함수로 표기하고 A를 diffusion layer 함수라고 하자. 또한, \(\gamma_{i}\)를 substitution layer 함수로 놓자(\(\gamma_{i}\) 는 i가 홀수이면 SL1이고 i가 짝수이면 SL2가 된다). 그러면, ARIA의 i번째 라운드 함수는 \(\phi\left[e k_{i}\right]\)는 다음과 같이 표현할 수 있다.
#
이러한 표현을 이용하여 키 길이 128/192/256-비트에 따른 t- 라운드(t=10, 12, 14) ARIA는 다음과 같이 표기한다.
#
■ ARIA v.0.9의 키 스케쥴
ARIA는 세 종류의 키 길이 (128/192/256)에 따라 가변 라운드를 갖는 블록 암호 알고리즘이다. ARIA의 키 스케쥴은 초기화 과정과 라운드키 생성 과정의 두 과정으로 구성되어 있다.
초기화 과정은 최초의 마스터키 MK로부터 3-라운드 Feistel 구조를 이용하여 4개의 128-비트값 \(W_{0}, \quad W_{1}, \quad W_{2}, \quad W_{3}\)을 생성한다. 여기서 사용되는 \(F_{o}\)와\(F_{e}\)는 각각 ARIA의 홀수 라운드 함수와 짝수 라운드 함수를 나타낸다. 그리고 각 라운드 함수에는 고정된 상수 \(C K_{i}\)를 키로 사용한다. ARIA는 가변 키 길이를 사용하므로 최초의 마스터키 MK는 128, 192, 256비트가 될 수 있다. 하지만, 초기화 과정에 최초 입력되는 (\(K L \| K R\))는 256비트이므로 마스터키가 256비트보다 작은 경우, 단순히 0으로 패딩(padding) 하여 \(K L \| K R\)의 값을 얻는다.
#
이러한 단순한 패딩으로 (\(K L \| K R\))의 값을 생성하여 서로 다른 키 길이를 같은 두 개의 키가 같은 (\(K L \| K R\))을 생성하여. 동일한 4개의 128-비트값\(W_{0}, \quad W_{1}, \quad W_{2}, \quad W_{3}\)을 생성하는 약점이 존재한다.
(\(K L \| K R\)) 로부터 \(W_{i}\)들을 생성하는 초기화 과정을 거친 후. 이 \(W_{i}\)값들을 적당히 조합하여 각라운드에 사용되는 라운드키를 생성하는 라운드키 생성 과정은 다음과 같다. 여기서, 《a은 왼쪽으로 a -비트만큼의 쉬프트 로테이션을 의미하고, 》a은 오른쪽으로 a-비트만큼의 쉬프트 로테이션을 의미한다.
그림 2. ARIA의 키스케쥴의 초기화 과정
#
마스터키의 길이가 각각 128/192/256-비트일 때, 각 라운드 수는 10/12/14이다. 따라서 마스터키 길이에 따라 각각 11/13/15개의 라운드키를 사용한다.
3.2 ARIA v.0.9에 대한 공격
ARIA는 가변 라운드 수를 갖는 알고리즘이다. 하지만, 키스케쥴 알고리즘이 다른 블록암호알고리 즘에 비해 상대적 간단히 설계되어, 마스터키의 사이즈에 의존하지 않는다. 따라서 서로 다른 키 사이즈를 사용하는 경우, 마지막 차이가 나는 라운드를 제외하면 같은 라운드키를 갖는 서로 다른 마스터키 쌍을 쉽게 찾을 수 있다. 우리는 이러한 키 쌍을 유사-동치키(semi-equivalent keys)라 하겠다.
ARIA의 키스케쥴 초기화 과정은 마스터키 妳를 이용하여 256비트인 (\(K L \| K R\))을 생성한다. K를 128비트의 마스터키라 하자. 그러면, 키스케 쥴에 의해 \(K L \| K R\)) = \(K \| 0^{128}\)이 된다. 또한, 키의 길이가 192비트의 마스터키 MK= \(M K=K \| 0^{64}\) 이라 하면, \((K L \| K R)=K\left\|0^{64}\right\| 0^{64}\)이다. 따라서 키길 이가 서로 다른 두 키 (K와 \(K \| 0^{64}\) ) 는 같은(\(K L \| K R\))을 생성한다. 따라서 라운드키 생성과정에 의해 마지막 두 라운드 키(\(e k_{12}\)와 \(e k_{13}\))을 제외한 다른 라운드키(\(e k_{1}, e k_{2}, \cdots, e k_{11}\) )은 같은 값을 갖는다. 이 때, 사용된 두 키 (K와 \(K \| 0^{64}\))는 서로 유사-동치키가 된다.
이러한 성질을 이용하여 서로 다른 키 사이즈를 사용하여 같은 평문尹를 암호화한 경우에 대한 차분 연관암호 공격에 대해 살펴보자. 두 개의 서로 다른 두 키, 128-비트의 키(X)와 192-비트의 키(K||0®)가 서로 유사-동치키라고 가정한다. 그리고 128-비트의 키에 의해 평문 P를 암호화하여 얻은 암호문을 (7라놓고. 192-비트의 키에 의해 같은 평문 P를 암호화하여 얻은 암호문을 C'라 하자. 그러면, C* 와 C*' 는 다음의 식을 만족한다.
#
ARIA에서 사용된 diffusion 행렬4는 선형이고 involution이므로, 위의 두 식은 C와 C'의 관계식으로 다음과 같이 표현된다.
#
위의 C와 C'는 그림 3의 관계에 있다. 즉, 유사-동치키의 관계에 의해 같은 평문을 암호화한 두 암호문은 서로 ARIA의 2-라운드의 관계식으로 표현된다. 따라서 두 암호문을 이용하면 마지막 3개의 라운드키 (\(e k_{11}, e k_{12}, e k_{13}\))를 찾을 수 있다. 이 세 개의 라운드키를 찾는 과정을 자세히 살펴보자.
임의의 128-비트의 값 X=( \(X_{1}, X_{2}, \cdots, X_{16}\))c로 표기한다. 여기서 각 Xi는 8-비트값이다. 평문 P1의 128-비트의 키(K)에 의한 암호문과 192-비트의 키(砌0")에 의한 각 암호문의 쌍을(C1,C1') 라 하자. 마찬가지로, 평문 P2에 대한 암호문의 쌍을(C2,C2')라 하자. 이 두 개의 쌍을 가지고 차분 분석[17]의 기법을 이용하여 각 라운드 키를 찾는다. 그림 3의 오른쪽 부분의 연관 암호 쌍을 이용한다.
일반적으로 S-박스가 주어지면 S-박스에 대한 입출력 차분 분포표를 구성할 수 있다. 만약 牛 박스 이전에 키 XOR 연산이 있을 경우. XOR 연산이 전의 입력 차분과 S-박스 연산 이후의 출력 차분을 알면 옳은 키를 찾을 수 있다.
그림 3의의 첫 번째 S-박스의 입출력 차분 값을 이용하여 \(e k_{12}\)와 \(e k_{13}\)의 값을 찾는다. 우선, \(S L 1^{-1}\)의 첫 번째 S-박스에 영향을 주는 키값인 \(e k_{13}\)의 처음 7개 바이트(\(e k_{13}^{4}, e k_{13}^{5}, e k_{13}^{7}, e k_{13}^{9}, e k_{13}^{10}\)\(e k_{13,}^{14} \quad e k_{13}^{15}\))과 A(\(e k_{12}\))의 첫 번째 바이트(\(e k_{12}^{1}\))을 추측한다. 그러면, 의 첫 번째 S-박스의 입력 차분을 알 수 있고, 출력 차분은 A(C)와 A(C')의 첫 번째 바이트의 차분이므로, S-박스 차분 분포표를 이용하면 추측한 키 바이트들이 옳은 값인지 여부를 판별할 수 있다. 옳은 키는 항상 이러한 과정을 통과하고, 랜덤한 키의 경우 확률 2-8으로 통과한다. 따라서 추측하는 키는 64비트이므로, 약 9개의 연관암호 쌍이 있으면 옳은 키를 거의 유일하게 찾을 수 있다. (\(2^{64} \times e^{-8 \cdot 9}<1\)).
그림 3 10-라운드와 12-라운드 ARIA의 연관 암호
\(S L 1^{-1}\)의 두 번째 S-박스의 살펴보면, \(e k_{13}\)의 5개 바이트와 A(\(e k_{12}\))의 두 번째 바이트의 값을 위와 같은 방법으로 구할 수 있다. 마찬가지의 방법으로 나머지 \(e k_{13}\)의 3 바이트를 구할 수 있다. \(e k_{13}\)을 모두 찾고 A(\(e k_{12}\))의 4바이트를 찾으면, 나머지 A(\(e k_{12}\))의 12바이트는 차분 분포표를 이용하면 쉽게 구할 수 있다. A(\(e k_{12}\))을 찾으면 \(e k_{12}\)의 값은 쉽게 구한다.
이러한 과정으로 \(e k_{12}\)와 \(e k_{13}\)의 값의 모두 구하면, A(C')와 \(e k_{11} \oplus A\) (\(e k_{11}\)) 의 XOR 값을 얻을 수 있다. 이 값을 X라 하면 다음식을 얻는다.
#
여기서I는 16x16항 등 행렬이고, 4 + I의 덧셈 연산은 각 행렬 원소의 XOR 연산이다 (A와 I의 행렬 원소의 값은 0 또는 1이다). 행렬 A + I의위 수(rank)를 구하면 14이다. 따라서, 우리는 \(e k_{11}\) 을 유일하게 결정할 수는 없지만, \(2^{16}\)개의 동치키를 찾을 수 있다. 하지만, 다른 방법을 이용하거나, 전수조사 방법을 이용하면 \(e k_{11}\)의 옳은 키 값을 정확히 찾을 수 있다.
이 공격에는 약 9개의 연관암호 쌍이 필요하며, 총 264번의 S-박스 연산이 필요하다. 만약 이러한 공격으로 마지막 3개의 라운드키 (\(e k_{11}, e k_{12}, e k_{13}\))을 찾았다면 이것을 이용하여 마스터키를 찾는 문제를 살펴보자.
두 연관암호에 사용된 키는 (K와 \(K \| 0^{64}\))에서 K는 ARIA의 키스케쥴 초기화 과정에 의하면 W0의 값과 같다. 또한, \(e k_{11}\) = (W0>>42) \(\bigoplus\)( W1<<66)이므로, W1 = (W0<<20)\(\bigoplus\) (\(e k_{11}\)<<62)DLEK. 또한, W0과 W1는 W1 = Fo(w0)을 만족한다. 여기서 W0의 값을 x라 놓고\(e k_{11}\)<<62을 c라 한다면, 두 관계식 W1 = (W0<<20)\(\bigoplus\)(\(e k_{11}\)<<62)과 W1 =Fo(W0) 을 이용하여 다음식을 얻는다.
#
행렬 A는 선형이고, SL1에 사용되는 S-박스는 GF(28) 위에서의 x-1 함수의 아핀 변환이다. 따라서, 키의 값 x를(\($x_{1}, x_{2}, \cdots, x_{128}\))으로 표현하면, 위의 식에서 x의 값을 구하는 문제는 128개의 변수와 128개의 이차방정식을 푸는 문제로 귀결된다. 하지만, 아직까지 이러한 방정식을 푸는 효과적인 방법은 알려져 있지 않다.
이상에서 살펴본 공격은 128-비트 키를 이용한 10-라운드 ARIA와 192-비트 키를 이용한 12-라운드 ARIA 암호에 대한 차분 연관 암호 공격이다. 이와 같은 방법으로 192-비트를 사용하는 12-라운드 ARIA와 256-비트를 사용하는 14-라운드 ARIA에 대해서도 같은 공격이 가능하다. 하지만 각 라운드에 사용되는 라운드키의 길이가 128비트이므로, 차분 분석의 방법을 사용하지 않고 기존의 연관 암호 공격만으로는 효과적으로 공격할 수 없다. 즉, 두 연관암호의 라운드 수의 차가 클수록 기존 연관 암호 분석만으로는 공격할 수 없다. 따라서, 연관 암호 분석의 개념에 차분 분석법을 결합한 차분 연 관 암호 공격은 기존의 연관암호 분석을 보다 효과적으로 확장할 수 있는 좋은 분석법이다.
ARIA는 키스케쥴 과정이 라운드 수와 관계없이 라운드키를 생성하여, 유사-동치키가 발생하는 취약점이 발생하였다. ARIA와 같이 키 길이에 따라 가변 라운드 수를 사용하는 블록 암호 알고리즘의 경우, 키스케쥴의 설계 시 이러한 성질이 발생하지 않도록 주의하여야 한다.
실제로 ARIA v.1.0의 경우에는 이러한 연관암호 공격이 적용되지 않도록 키 길이에 따른 서로 다른 상수를 사용하여 설계하였다.
Ⅳ. SC2000에 대한 차분 연관 암호 공격
SC2000[21)^ 일본에서 개발한 알고리즘으로, 유럽의 NESSIE 프로젝트와 일본의 CRYPTREC 프로젝트에 제안된 128-비트 블록 암호 알고리즘이다. CRYPTREC 프로젝트에서는 최종 후보 알고리즘으로 선택되기도 하였다. AES나 ARIA와 마찬가지 SC2000도 키 길이에 따라 가변 라운드 수를 갖는 알고리즘이다. 키 길이가 128/192/256-비트인 경우 각각 6.5/7.5/7.5라운드를 갖는다.
SC2000의 각 라운드는 (RxR)。I。B。I로 정의된다. 여기서, I는 비트별 키 XOR 함수이고, B는 S-box 대치 부분으로 128-비트를 32개의 4-비트로 나누어서 4-비트 입출력을 갖는 S-박스의 값으로 대치시키는 것이다. (RxR) 에서 Re 데이터 치환 함수 구조를 갖는 함수이고, X는 4개의 32-비트의 값의 순서를 바꾸는 연산 과정이다. 즉, X은 (a0,a1,a2,a3)를 (a2,a3,a0,a1 ) 으로 바꾼다. 그리고 앞의 (RXR)을 0.5라운드, I。B 。I를 0.5라운드라고 표기한다.
SC2000의 키스케쥴 과정도 ARIA의 경우와 마찬가지로 라운드 수과 관계없이 설계되었다. 따라서 128-비트의 키와 192-비트의 키가 유사-동치키 관계가 되도록 만들 수 있다. 마찬가지로, 128-비트와 256-비트키 쌍도 유사-동치키 관계가 되도록 만들 수 있다.
SC2000은 마스터키는 각 키 길이에 따라 다음과 같은 방법으로 8개의 32-비트를 생성한 후, 이 생성된 값을 이용하여 키스케쥴 과정을 수행한다. 여기서. K1는 128-비트, K2는 192-비트, K3는 256-비트 키이다.
#
만약 128-비트의 키 K1 = (\($K_{1}^{1}, K_{1}^{2}, K_{1}^{1}, K_{1}^{2}\))이고, 192-비트 키 K2 = (\(K_{1}^{1}, K_{1}^{2}, K_{1}^{1}, K_{1}^{2}, K_{1}^{1}, K_{1}^{2}\))가 이러한 형태를 갖는다면 두 키에 의해 생성된 8개의 32-비트값은 같게 되고, 두 키에 의해 생성된 앞의 6.5-라운드키는 동일한 값이 된다. 즉, 두 키는 유사-동치키 관계가 된다. 같은 논리를 이용하여, 128-비트 키K1 = (\(K_{1}^{1}, K_{1}^{2}, K_{1}^{3}, K_{1}^{4}\))와 256-비트 키 K2 = (\(K_{1}^{1}, K_{1}^{2}, K_{1}^{3}, K_{1}^{4}, K_{1}^{1}, K_{1}^{2}, K_{1}^{3}, K_{1}^{4}\))도 유사-동치리 관계가 된다.
유사 동치키 쌍(K1,K2) 혹은 (K1,K3)이 사용된 연관암호가 사용된 경우에 마지막 7.5- 라운드의 라운드 키 RK와 RK 를 복구하여 보자. P를 평문이라 하고를 각 키 사이즈에 사용하여 얻은 암호문쌍이라 하자. 또한. 암호문 C가(RxR)의 과정을 거친 후의 값을 D라 하자. 즉, C= (Rx R) (D)이다.
차분 연관 암호 공격을 위해 평문P1과 P2을 연관암호에 의해 얻은 두 암호문 쌍을(C1,C1') 과 (C2,C2') 라 하자. 그러면 (R X R)의 과정에는 키에 의한 연산이 없으므로C1 = (R X R) (D1)과 C2= (R X R)(D2)의 값을 각각 구할 수 있다. 따라서, S- 박스 대치 연산인 B 함수의 각 입력 차분과 출력 차분을 얻을 수 있으므로, 4-비트 입출력을 갖는 S-박스에 대한 차분 분포표를 이용하면 쉽게 RK의 값을 쉽게 구할 수 있다.RK의 올바른 값을 구하기 위해서는 약 2개의 차분 쌍이 있으면 된다. RK의 값을 찾으면, RK'은 쉽게 얻을 수 있다. 따라서 7.5-라운드에 사용된 두 개의 키 값을 모두 찾을 수 있다.
SC2000에 대한 차분 연관 암호 공격은 약 26번 정도의 S-박스 연산과 약 4~6개의 연관암호 쌍이 필요하다. SC2000의 경우도 라운드키 생성하는 과정에서 256-비트보다 작은 경우 256-비트로 확장하는 단계에서 키 길이가 다른 두 개의 키가 유사-동치키가 발생하여 이러한 공격이 가능하게 되었다.
SC2000의 경우의 경우, 연관암호 공격만으로는 정확한 키의 값을 구하기 어렵다. 같은 논리로 만약 두 연관암호의 라운드 차가 더 커진다면 연관암호 공격은 불가능하다. 이 경우, 차분 분석과 연관암호 공격을 결합한 차분 연관 암호 공격을 적용한다.면 보다 기존의 공격보다 적용 범위를 확장시킬 수 있는 강력한 공격이 될 수 있다.
Ⅴ. SAFER++와 CAST-128에 대한 연관암호 분석
연관암호 공격은 두 연관 암호의 라운드 수가 작은 경우에 적용되는 공격법이다. 하지만, 두라운 드 수의 차이가 커지면 연관암호 공격만으로는 공격하기 어렵다. 그래서 본 논문에서는 차분 분석의 개념을 연관암호 공격과 결합한 차분 연관 암호 분석을 도입하여 ARIA v.0.9와 SC2000을 분석하였다. 이 개념을 보다 일반적으로 확장하면, 차분 분석뿐 아니라 선형 분석, 고계차분 분석 등을 연관암호 공격과 결합할 수 있다.
본 절에서는 가변 라운드 수를 갖는 다른 블록 암호 알고리즘인 SAFER++[16)4 CAST-128(1)에 대해 기존의 선형 분석, 고계차분 분석 등의 결과를 활용하여 연관 암호 공격을 적용하여 본다. 연관암호 공격은 마스터키를 이용하여 각 라운드 키를 생성하는 과정에서의 유사-동치키 관계가 발생하는 약점을 이용한 공격이므로 SAFER++와 CAST- 128 알고리즘에 대한 자세한 설명은 생략한다.
SAFER++는 128-비트 블록 암호 알고리즘이고, 키 길이 128/256-비트에 따라 각각 7/10-라운드를 사용한다. ARIA와 SC2000의 라운드키 생성의 취약점과 마찬가지로 두 개의 서로 다른 키 사이즈에 대해 유사-동치키를 생성할 수 있다. 라운드 수의 차가 3이므로 기존 연관암호 공격은 효과적으로 적용할 수 없다.
지금까지 알려진 SAFER++의 3라운드에 대한 가장 효과적인 공격은 선형 분석이다.[19] 이 선형 분석에는 \(2^{101}\)의 암호화 연산과 \(2^{81}\)의 기지 평문이 필요하다. 이러한 분석 결과를 그대로 연관암호 공격에 적용할 수 있다. 이 공격은 선형 분석과 연관 암호 분석을 결합한 선형 연관암호 공격이 되는 것이다.
128-비트 블록 암호 CAST-128은 키 길이가 40-80비트인 경우 12라운드를 사용하고, 키 길이가 81-128비트인 경우에는 16라운드를 사용한다. 마스터키 K의 길이가 128-비트보다 작은 경우 뒤에 0을 첨가하여 128-비트가 되도록 K' = K|| 0...。 생성한 후, K를 이용하여 라운드키를 만든다. 따라서 길이가 다른 두 키에 대해 유사-동치키를 만들 수 있다. 두 키가 모두 40-80비트 사이 혹은 81-128비트 사이에 있는 경우에는 동치키가 되고. 한 키가 40-80비트 사이에 있고 다른 키가 81-128비트에 있는 경우 유사-동치키를 이용하여 연관암호 공격을 할 수 있다.
두 개의 연관암호의 라운드 수의 차가 4이다. 따라서, 연관암호 공격을 그대로 적용해서는 마지막 4라운드에 사용된 라운드 키들을 찾을 수는 없다. 따라서, 기존에 알려진 4-라운드 CAST-128에 대한 공격과 결합하여 분석한다. CAST-128에 대해 가장 효과적인 공격은 5-라운드 CAST-128에 대한 고계차분 공격이다. 이 경우, \(2^{17}\)개의 선택 평문과 \(2^{40}\)번의 암호화가 필요하다. 이를 이용하면, 4-라운드 CAST-128의 경우 5-라운드 계산 복잡도와 선택 평문 보다 작게 공격 가능하다. 이 공격은 고계차분 분석과 연관암호 공격을 결합한 고계차분 연관 암호 공격이 된다.
Ⅵ. 결론
연관암호 공격은 두 연관 암호의 라운드 수의 차이가 커질수록 그대로 적용하기는 어렵다. 이러한 문제를 극복하기 위해, 본 논문에서는 차분 분석의 개념을 연관암호 공격과 결합한 차분 연관 암호 공격을 소개하였다. 이 공격법을 가변 라운드 수를 갖는 블록 암호 알고리즘인 ARIA, SC2000, SAFER + + 등에 적용하여 분석하였다. 다음의 표는 본 논문의 결과를 요약한 것이다(ARIA v.1.0의 경우에는 본 공격은 적용되지 않는다).
표1. 본 논문의 공격 결과
1 a, b :키 길이(40 ≤ m ≤ 80, 81 ≤ n ≤ 128)
2 c, d : 각 Cipher(a)와 Cipher(b)의 라운드 수
3 RC : 연관암호 쌍, T : 테이블 참조 연산, E: 암호화 연산
4 KP : 기지 평문, (A)CP : (능동적) 선택 평문, CC : 기지 암호문
연관암호 공격은 가변 라운드 수를 갖는 블록 암호 알고리즘의 키스케쥴 과정의 설계의 안전성에 커다란 의미가 있다. 아무리 암호화 및 복호화 알고리즘을 안전하게 설계한다. 할지라도, 키스케쥴 과정을 잘못 설계한다면 그 블록 암호는 취약한 알고리즘은 간주되어 실제적인 사용에 제약을 줄 수 있다. 따라서 암호화 및 복호화 알고리즘과 마찬가지로 키스케쥴 과정도 동등한 안전성을 유지할 수 있도록 설계 시 주의를 기울여야 한다.
* 이 연구는 2004년 도 서울시립대학교 학술연구 조성비에 의하여 연구되었음
참고문헌
- C. M. Adams, 'The CAST-128 Encryption Algorithm,' Request for Comments (RFC) 2144, Network Working Group, Internet Engineering Task Force, May 1997
- P. S. L. M. Barreto and V. Rijmen, 'The Khazad Legacy-level Block Cipher,' Primitive Submitted to NESSIE, 2000
- P. S. L. M. Barreto and V. Rijmen, 'Anubis Block Cipher,' Primitive Submitted to NESSIE, 2000
- E. Biham and A. Shamir, 'Differential Cryptanalysis of DES-like Cryptosystems,' Advances in Cryptology - CRYPTO'90, LNCS 537, Springer-Verlag, pp. 2-21, 1991
- E. Biham, 'New Types of Cryptanalytic Attack Using Related Keys,' Journal of Cryptology, Vol. 7, No. 4, pp. 156-171, 1994
- A. Biryukov, J. Nakahara Jr, B. Preneel, and J. Vandewalle, 'New Weak-Key Classes of IDEA,' Information and Communication Security: 4th International Conference (ICICS 2002), LNCS 2513, Springer-Verlag, pp. 315-326, 2002
- A. Biryukov and D. Wagner, 'Slide Attacks,' The 6th Fast Software Encryption(FSE 1999), LNCS 1636, Springer-Verlag, pp. 245-259, 1999
- A. Biryukov and D. Wagner, 'Advanced Slide Attacks,' Advances in Cryptology - EUROCRYPT 2000, LNCS 1807, Springer-Verlag, pp. 589-606, 2000
- A. Biryukov, 'Analysis of Involutional Ciphers : Khazad and Anubis,' The 10th Fast Software Encryption(FSE 2003), LNCS 2887, Springer-Verlag, pp. 45-53, 2003
- J. Daemen, R. Govaerts, and J. Vandewalle, 'Weak Keys for IDEA,' Advances in Cryptoloty - CRYPTO'93, LNCS 773, Springer-Verlag, pp. 224-231, 1994
- P. Hawkes, 'Differential-Linear Weak Key Classes of IDEA,' Advances in Cryptology - EUROCRYPT'98, LNCS 1403, Springer-Verlag, pp. 112-126, 1998
- J. Kelsey, B. Schneier, and D. Wagner, 'Key-schedule Cryptanalysis of IDEA, G-DES, GOST, SAFER, and Triple-DES,' Advances in Cryptology - CRYPTO'96, LNCS 1109, Springer-Verlag, pp. 237-251, 1996
-
B. W. Koo, H. S. Jang, and J. H. Song, 'Constructing and Cryptanalysis of a
$16{\times}16$ Binary Matrix as a Diffusion Layer,' The 4th International Workshop on Information Security Applications (WISA 2003), LNCS 2908, Springer-Verlag, pp. 489-503, 2003 - D. Kwon et al. 'New Block Cipher : ARIA,' Pre-Proceedings of the 6th International Conference on Information Security and Cryptography (ICISC 2003), pp. 443-456, 2003
- X. Lai, J. Massey, and S. Murphy, 'Markov Ciphers and Differential Cryptanalysis,' Advances in Cryptology - EUROCRYPT'91, LNCS 547, Springer-Verlag, pp. 17-38, 1991
- J. L. Massey, G. H. Khachatrian, and M. K. Kuregian, 'Nomination of SAFER++ as Candidate Algorithm for the NESSIE,' Primitive Submitted to NESSIE, 2000
- L. May, M. Henricksen, W. Millian, G. Carter, and E. Dawson, 'Strengthening the Key Schedule of the AES,' The 7th Australasian Conference on Information Security and Privacy (ACISP 2002), LNCS 2384, Springer-Verlag, pp. 226-240, 2002
- S. Moriai, T. Shimoyama, and T. Kaneko, 'Higher Order Differential Attack of a CAST Cipher,' The 5th Fast Software Encryption Workshop (FSE 1998), LNCS 1372, Springer-Verlag, pp. 17-31, 1998
- J. Nakahara Jr, 'Cryptanalysis and Design of Block Ciphers,' PhD thesis, Katholieke Universiteit, Leuven, June 2003
- National Institute of Standards and Technology, 'Advanced Encryption Standard,' FIPS PUB 197, 2001
- T. Shimoyama, H. Yanami, K. Yokoyama, K. Ioth, J. Yajima, N. Toril, and H. Tanaka, 'The Block Cipher SC2000,' The 8th Fast Software Encryption(FSE 2001), LNCS 2355, Springer-Verlag, pp. 312-327, 2001
- H. Wu, 'Related-Cipher Attacks,' Information and Communication Security : 4th International Conference(ICICS 2002), LNCS 2513, Springer-Verlag, pp. 447-455, 2002