Ⅰ.서론
블록 암호에 대한 가장 강력한 공격법들로서 차분공격] 지과 선형 공격図이 있다. 이러한 공격법들은 기존의 여러가지 블록 암호에 효과적으로 적용되어왔다. 그래서 블록 암호의 차분 및 선형 공격에 대한 안전성의 평가에 많은 관심을 가지게 되었다. 1992 년, Nyberg와 Knudsene‘山 차분 공격에 대한 증명 가능한 안전성의 개념을 소개하고, Feistel 구조의 차분 공격에 대한 증명 가능한 안전성을 제시하였다. 그 후, 차분 및 선형 공격에 대한 증명 가능한 많은 블록 암호 구조들이 연구되었다 L6, 7, 8, W3, 均 그러나 차분 및 선형 공격에 대한 안전성의 평가는 블록 암호의 안전성을 평가하는 데에 한계가 있다. 왜냐하면, 차분 및 선형 공격에 취약하지 않은 블록 암호가 다른 공격법들에 취약할 수 있기 때문이다. 예를 들어, 라운드 함수가 전단 사인 3라운드 Feistel 구조는 차분 및 선형 공격에 대한 증명 가능한 안전성m을 가지지만, 5라운드 불능 차분 특성이 존재한다. 이러한 사실은 Nyberg回가 제시한 Feistel의 일반화된 구조에도 적용되어진다. (이는 Nyberg의 conjecture?} 옳다는 전제하에서 성립한다.[표 1])
(표 1) 본 논문의 결과에 대한 요약
( w. 각 라운드에 존재하는 함수 F의 개수, P: 함수 F에 대한 최대 평균 차분 확률, A: 최대 평균 차분 확률이 으로 유계할 라운드 수 r, B: 불능 차분 특성의 라운드 수 z)
본 논문에서는 라운드 함수가 전단 사인 불록 암호구조에서 발생할 수 있는 불능 차분 특성을 찾는 널리 활용 가능한 방법을 제시한다.
Ⅱ. 불능 차분 공격에 대한 새로운 기본적인 개념
본 절에서는 불능 차분 공격에 대한 여러가지 새로운 기호와 정의들을 소개한다. 블록 암호 구조 S 는 전단사인 라운드 함수 F를 가지며, R개의 입/출력 블록을(예를 들어 Feistel 구조는 2개의 입/출력 블록을 가진다.) 가진다고 가정하자. 즉, S의한 라운드에 대한 입력과 출력을 각각 (丫1, 丫2, …, r”)와 (乂1, 乂2, “・, 乂“)라 가정하자.
정의 1
블록 암호 구조 S에 대한 nxn 암호화 특성 행렬 E와 nxn 복호화 특성 행렬 D는 다음과 같이 정의한다. 만약 匕가 X, 에 영향을 받는다면, E의 (U) 성분을 1로 정의하며, 영향을 받지 않는다면, (/, 顶) 성분을 0으로 정의한다. 특히, 匕가 F(X, )에 영향을 받는다면, E의 (»성분을 1 대신 1尸로 정의한다. 거꾸로, 만약 X, 가 匕에 영향을 받는다면, Z)의 3, 力성분을 1로 정의하며, 영향을 받지 않는다면, 3")성분을 0으로 정의한다. 특히, X, 가 F( K, ) 또는 FT(匕)에 영향을 받는다면, £)의 (/, , )성분을 1 대신 If로 정의한다.
[그림 1]과 같은 Feistel 구조의 암/복호화 특성 행렬은 정의 1에 의하여 다음과 같이 된다.
(그림 1) Festel 구조에 대한 한 라운드
#
만약 블록 암호 구조 S의 암/복호화 특성 행렬 E 와 〃의 각 열의 성분 1(#=1f)의 개수가 한개 이하라면, 다음장에서 제시될 알고리즘을 이용하여 S에 대한 불능 차분 특성의 길이를 쉽게 구할 수 있다. 이러한 행렬을 1-property 행렬이라 부르기로 하자. 본 논문에서는 E와 D 모두 1-property 행렬인 S에 대해서만 고려한다.
정의 2
고정된 입력 차분 a=(a“a2, …, a”)에 대응하는차분 벡터艾은 다음과 같이 정의한다
#
고정된 입력 차분 a에 대한 r 라운드 후의 가능한 출력 차분(한 블록에 대한 출력 차분)은 5가지로 표현 될 수 있다. 0 차분, 0이 아니면서 고정되지 않은 차분 , 0이 아닌 고정된 차분, 0이 아닌 고정된차분과 0이 아니면서 고정되지 않은 차분의 exor, 그리고 고정되지 않은 차분으로 표현 되어진다. 입력 차분 a에 대한 /■ 라운드 후의 출력 차분에 대응하는 벡터를 苛로 표기하고, 벡터, 의, 번째 성분을 a r*로 표기한다면, 성분 Sv에 대응하는 차분은 표 2와 같이 정의한다. (위와 같은 작업을 복호화 과정에 적용할 때에는, ~ar 대신에 E을 arj 대신에 f 을 사용한다.)
[표 2]에 의하면, 성분 KN2)에 대한 대응하는 차분은 성분 £로부터 알 수 없다. 다시 말해, 성분 网 대응하지 않는 차분을 알 수 없다. 반면, 성분 0, 1, 1*, 2*에 대한 대응하지 않는 차분은 각 성분들로부터 알 수 있다. 예를 들어, 성분 2* 가 차분 a, ® 에 대응된다면, (a, : 0이 아닌 고정된 차분, dp 0이아니면서 고정되지 않은 차분) 성분 2■■는 결코 차분 a; 를 나타낼 수 없다. (앞으로 사용되는 차분의기호 a i, a j, a 0이 아닌 고정된 차분을 3;, 6 j, 8), 는 0이 아니면서 고정되지 않은 차분을, 는고정되지 않은 차분을 나타내기로 흐}. 자.) 이러한 사실은 블록 암호 구조 S에 대한 불능 차분 특성을 찾는데 유용하게 이용된다.
(표 2) 차분 벡터의 성분과 대응하는 차분
차분 벡터 X 또는 舌을 계산하기 위해서는 차분 벡터와 특성 행렬 사이의 연산을 정의해야 한다. 차분 벡터 苛과 —房은 각각 다음과 같이 계산되어진다.
#
먼저, 곱에 대해서는 [표 3]와 같이 정의한다. (복호화 과정의 계산도 암호화 과정의 계산과 동일하다.)
[표 3) 곱 #에 대한 정의 및 의미 ( k- 벡터에 대한 임의의 성분값)
그리고 두 성분 사이의 덧셈 #은 대응하는 두 차분에 대한 exor을 나타내므로, 다음과 같이 자연스럽게 정의 할수 있다.
1. * 을 가지고 있지 않은 두 성분의 덧셈은 정수 위에서의 덧셈 연산과 동일하다.
2. 두 성분 중 하나의 성분만이 * 을 가질 때, 다음과 같이 정의한다.
-만약 성분 为가 0 또는 1이면, #이 되고, & 가 2 이상의 성분이라면, 1* + 左=1 + 为가 된다.
-만약 성분 為가 0이면, #이 되고, 为가 1 이상의 성분이라면, 2* + »=2+ 倒 된다.
블록 암호 구조 S의 암/복호화 특성 행렬이 1-property 행렬이므로, [표 3]의 곱 연산에 의한 성분 Epe 모든 z.에 대하여 1개 이하의 *을 갖는다. 따라서 더하여지는 두 성분이 모두 *을 가질 수는 없다. [표 4]은 두 성분의 덧셈 연산에 대응하는 두 차분의 exor을 나타낸 것이다.
(표 4) 두 성분의 덧셈 연산에 대응하는 두 벡터의 exor ( 7.: 임의의 성분 게 대응하는 차분, tf, tj. 2 이상의 성분)
위와 같이 정의된 곱셈과 덧셈 연산은 논리적으로 ([표 2]의 관점에서) 잘정의된다어진다.
새롭게 정의된 연산의 이해를 돕기 위해 라운드함수가 전단사인 Feistel 구조를 살펴보자. 입력 차분벡터 艾 =*) (0, 1에 대한 /.라운드 후의 출력 차분벡터 We 위에서 정의된 연산에 의하여 다음과 같이 계산 되어진다. ([그림 2]의 왼쪽 그림 참조)
(그림 2) 차분 벡터 # =(0* , 1)와 # =(l*, 0 )에 대한 #와 #의 대응되는 차분 (31, 62, 33, 64: 0 아니면서 고정되지 않은 차분, Xj.%2 : 고정되지 않은 차분)
#
이제, 차분 벡터의 성분을 이용하여 블록 암호 구조 S에 대한 불능 차분 특성을 찾아보자. 입력 차분과 출력 차분이 각각 a(차분 벡터 艾에 대응되는 차분)와 8인 불능 차분 특성을 "고로 표기한다면 다음과 같은 성질을 갖는다.
- 만약 s“=0이면, B芹0인 t 라운드 불능 차분 특성 ”小이 존재한다.
- 만약 a, ”=l이면, 们=0인 r 라운드 불능 차분 특성 "6이 존재한다.
- 만약 a 1 * (대응하는 차분 a, )이면, 6芹皿인 r 라운드 불능 차분 특성 E이 존재한다.
-만약 ";=2 *(대응하는 차분 : a殆为)이면, 们= a, .인 t 라운드 불능 차분 특성 宀이 존재한다.
만약 arJ>2이면, 성분 a 小로부터 대응되는 차분을 추측할 수 없다. 이것은 2 이상의 성분을 이용한불능 차분 특성이 존재하는지 여부를 정확히 알 수없음을 의미한다. 그러나 불능 차분 공격의 관점에서성분 0, 1, 1 *, * 2은 유용하게 이용된다. 이러한 성분의 집합을 "*, *} 2={0, 1, 1로 표기하고, 이제부터집합 "에 속하지 않는 성분은 고려하지 않는다.
a r i e"인 경우, r 라운드 불능 차분 특성은 위와 같이 항상 존재하며, 또한 r 라운드 이상의 불능차분 특성도 존재 할 수 있다. r 라운드 이상의 불능 차분 특성을 찾기 위해 仇 冬 "의 보조 성분 집합인 成을 정의하자. 3는 다음과 같은 성질을 갖는다. 첫째, —讯는 "의 부분 집합이다. 둘째, 3의 원소들은 m에 대응하지 않는 모든 차분들을 나타낸다. 예를 들어, 亍를 살펴보자. 1* 는 0이 아닌 고정된차분 a, .을 나타내므로, 1* 는 "의 원소들에 대응하는 차분들 중 0, a a i) 또는 a j 차분과는 대응될 수 없다. 따라서, 亍= {*, *} 20, 1이 된다. 비슷한 방법으로 에 대한 3를 [표 5]와 같이 얻을 수 있다
(표 5) 성분 #와 집합 #에 대응하는 차분
転의 정의에 의하여, ari w"일 때 다음과 같은 /라운드 이상의 불능 차분 특성이 존재한다.
- 만약 #이고 #이면, (/.+/) 라운드 불능 차분 특성 0宀6이 존재한다.
- 만약 所이고 이면, (, + , ')라운드불능 차분 특성 ”6이 존재한다.
정의 3
고정된 입력 차분 벡터 艾에 대해서, 艾와 성분 met/ (또는 집합 ■兌)에 따른 최대 암호화 라운드수는 다음과 같이 정의한다.
#
또한, 성분 m w" (또는 집합 3)에 따른 최대암호화 라운드 수는 다음과 같이 정의한다.
#
동일한 방법으로, 각각의 최대 복호화 라운드 수는 다음과 같이 정의한다.
#
정의 3에 의하면, 블록 암호 구조 S는 (ME [(乙, 诫) + MD, ( b, ni)) 라운드 또는 (ME K a, ni) + MD, (节, %)七 라尹드의 불능 차분 후성을 a갖는다. 약 a, b) = max „ {ME ; ( a, m) + MD , ■ ( b, m)} = max „ {MEa, ni) + MDX b, m)}, M= max 7*0, ■山 节)라 정의한다면, 블록 암호 구조 S는 m3, 飞) 라운드 또는 M 라운드의 불능 차분 특성 또한 갖는다. 한편, M=max+ MDm)}= max , ;w {ME, -(ni) + MD, ( ”z)}이(이식은 다음 장에서 제시되는 알고리즘에 유용하게 사용된다.) 성립하며, 위의 수식들로부터 다음과 같은정리를 이끌어 낼 수 있다.
정리 1
라운드 함수가 전단 사이고 암/복호화 특성 행렬이 1-property 행렬인 블록 암호 구조 河 대해서 집합 t/를 이용하여 찾을 수 있는 최대 불능 차분 특성의 라운드 수는 M이다.
다음은 Feistel 구조에 대한 M 라운드 불능 차분 특성을 찾는 과정을 보여준다.
. 라운드 함수가 전단 사인 Feistel 구조는 5 라운드불능 차분 특성을 갖는다.
먼저, i, m에 따른 雄, ((0*), , 1彻)와 肱顷(*, 1 0), 物의 값을 구해 보자. [그림 2]에 의하여 MEi ((0, 1 *), »?) 와 枷;(*, 0(1), 毎의 값은 쉽게 체크할 수 있다. 특히 [그림 2]의 박스 부분에 의하여 M(0, l *), (1 *, 0)) = 5가 됨을 알 수 있다. 이와동일한 방법으로 다른 입력 차분 벡터들에 대한 다음의 식들을 얻을 수 있다.
#
따라서 # 된다.
그러므로 라운드 함수가 전단 사인 Feistel 구조는 5라운드 불능 차분 특성 (0, a) 이四0)을 갖는다.
Ⅲ. 라운드 수 M을 구하는 알고리즘
본 장에서는 앞장에서 소개한 정의와 기호들을 이용하여 불능 차분 특성의 길이 M을 구하는 알고리즘을 제시한다. 이 알고리즘은 블록 암호 구조 S의 암/복호화 특성 행렬이 1-property 행렬일 때 유용하게 이용된다. 알고리즘은 다음과 같이 크게 4단계의 과정을 수행한다.
Step 1. 암/복호화 특성 행렬 와 D= 를 입력한다.
Step 2. 최대 암호화 라운드 수 ME 3)을 계산한다. (1 <.i<.ny mwU)
Step 3. 최대 복호화 라운드 수 "刀。砂을 계산한다.
Step 4. [/을 이용한 불능 차분 특성의 최대 길이 M= max 成硏(沥+ 如, (3)} 을 출력한다.
[표 6]은 위의 단계들의 수행 과정상 필요한 저장공간에 대한 설명이다. 알고리즘에서 가장 중요한 부분은 차분 벡터의 성분들 중 *을 가지는 성분을 구분해 내는 것이다. [표 6]은 성분 丿와 …을 구분하기 위한 변수 知에 대한 설명이다. [표 6]에서 출력 차분 벡터에 대한 丿번째 성분이 *을 가질 필요충분 조건이 知 + #2+ — + 如= — 1이 된다. 왜냐하면 암/ 복호화 특성 행렬 E와 刀가 1-propeHy 행렬이기 때문이다.
[표 6) 알고리즘에 사용되는 저장 공간의 값에 대한 의미 (y=0, 1, 2, ….)
[표 7) 알고리즘 안에서의 차분 벡터와 행렬의 곱
불능 차분 특성의 길이 M을 구하는 알고리즘
Ⅳ. 블록 암호 구조에의 적용
본 장에서는 in장에서 제시한 알고리즘을 이용하여 Nyberg의 일반화된 Feistel network와 일반화된 RC6 유사 구조에 대한 여러 가지 불능 차분 특성을 찾는다. 본장의 결과들은 각 입/출력 블록의 개수가 작은경우의 (32개 이하) 프로그래밍에 기초한 것이다. 하지만, 일반화된 구조는 일정한 구조적 특성을 가지고있기 때문에, 프로그래밍의 결과들을 입/출력 블록의개수에 따른 일반화가 가능하다.
4.1 일반화된 Feistel Network에의 적용
일반화된 Feistel network는 Nyberg", 에 의해 제안된 블록 암호 구조이다. 간단하게 그 구조를 살펴보면 다음과 같다. 한 라운드에 대한 입력값을 (Xi, Xzl'Xm)라 흐'! 자 "개의 라운드 함수 Fi, F2, …, 과 如 개의 라운드 키 K], K2, …, 에대해서, 출력값 ( 皿 , 丫2, ・“, 丫2”)은 다음과 같이 계산되 어진다.
#
만약 F, 를 키가 사용된 함수 F로 간주하고, 勿 = 4 라면, 일반화된 Feistel networke 다음과 같이 묘사된다.
[그림 3) 일반화된 Feistel network에 대한 한 라운드
이제 일반화된 Feistel network에 대한 불능 차분특성을 찾아보자. 일반화된 Feistel network는 1-property 행렬 E와 D를 갖는다. 그러므로 앞장에서 제시한 알고리즘을 이 network에 직접 적용할 수 있다. 이 network에 대한 알고리즘의 수행 시간은 대략 2・2"번의 Step 2의 과정이 요구된다. 하지만 일반화된 Feistel network의 암호화 함수와 복호화 함수가거의 동일하다는 사실을 이용하여 알고리즘의 수행시간을 1/2으로 줄일 수 있다. 즉, Step 3의 과정에서 필요한 최대 복호화 라운드 수 MD; 아!)은 Step 2 에서 계산된 AfE, 。) 로부터 쉽게 구할 수 있다. 성질 1은 일반화된 Feistel network에 대한 알고리즘의적용 결과를 일반화시킨 결과이다.
성질 1
. 각 라운드마다 2개의 전단사 함수 F를 가지고 있는 일반화된 Feistel network는 7라운드의 불능 차분 특성을 갖는다. 또한, 각 라운드마다 3개 이상의전단사 함수 F를 가지고 있는 일반화된 Feisztel network는 (3"+ 2) 라운드의 불능 차분 특성을 갖는다.
또한 m장에서 제시한 알고리즘을 약간 변형하여 성질 1에서 언급된 최대 불능 차분 특성의 구체적인 모양을 찾을 수 있다. (표 8).
표 8. 일반화된 Feistel Network의 최대 길이의 불능차분 특성 (#: 0이 아닌 고정된 차분, (/1, /2)*(0, 0) )
4.2 일반화된 RC6 유사 구조에의 적용
일반화된 RC6 유사 구조는 Moriai등凹에 의해 제시된 블록 암호 구조로서 다음과 같이 묘사된다.
#
성질 2는 일반화된 RC6 유사 구조에 대한 알고리즘의 적용 결과를 일반화시킨 결과이다.
성질 2
각 라운드마다 n개의 전단사 함수 F를 가지고 있는 일반화된 RC6 유사 구조는 (4但+1) 라운드 불능차분 특성 (0, 0, …, 0, …, 0, «i)을 갖는다.
Ⅳ. 결론
본 논문에서는 라운드 함수가 전단 사인 불록 암호구조에서 발생할 수 있는 불능차분 특성을 찾는 널리 활용 가능한 방법을 제시하였다. 이 방법을 이용하여, 일반화된 Feistel network의 (3处+ 2) 라운드의 불능 차분 특성과 일반화된 RC6 유사 구조의 (4^+1) 라운드의 불능차분 특성을 찾을 수 있었다.
참고문헌
- IEICE Transactions fundamentals of Electronics,Communications and Computer Sciences v.1 Strict evaluation of the maximum average of differential probability and the maximem average of linear probability K.Aoki;K.Ohta
- Advances in Cryptology-CRYPTO'90,LNCS 537 Differential cryptanalysis of DES-like cryptosystems E.Biham;A.Shamir
- Advances in Cryptology-CRYPTO'92, LNCS 740 Differential cryptanalysis of the full 16-round DES E.Biham;A.Shamir
- Advances in Cryptology - EUROCRYPT'99,LNCS 1592 Cryptanalysis of Skipjack reduced to 31 rounds using impossible differentials E.Biham;A.Biryukov;A.Shamir
- ICISC'01, LNCS 2288 Improved Impossible Differential Cryptanalysis of Rijndael and Crypton J.H.Cheon;M.J.Kim;K.J.Kim;J.Y.Lee
- FSE'00 Provable Security against Differential and Linear Crytanalysis for the SPN structure S.H.Hong;S.J.Lee;J.I.Lim;J.C.Sung;D.Y.Choen;I.H.Cho
- IPL v.82 Provable Security for 13 round Skipjack-like Structure S.H.Hong;J.C.Sung;S.J.Lee;J.I.Lim;J.S.Kim https://doi.org/10.1016/S0020-0190(01)00276-9
- SAC'99,LNCS 1556 A strategy for constructing fast functions with practical security against differential and linear cryptanalysis M.Kanda;Y.Takashima;T.Matsumoto;K.Aoki;K.Ohta
- Advances in Cryptology - EUROCRYPT'93,LNCS 765 Linear cryptanalysis method for DES cipher M.Matsui
- FSE'96 New structure of block ciphers with provable security against differential and Linear cryptanalysis M.Matsui
- Advances in Cryptology - ASIACRYPT'00, LNCS 1976 On the Pseudorandomness of Top-Level Schemes of Block Ciphers S.Moriai;S.Vaudenay
- Advances in Cryptology - CRYPTO'92, LNCS 740 Provable security against differential cryptanalysis K.Nyberg;L.R.Knudsen
- Advances in Cryptology - ASIACRYPT'96, LNCS 1163 Generalized Feistel Networks K.Nyberg
- Advances in Cryptology - ASIACRYPT'01, LNCS 2248 Security of Reduced Version of the Block Cipher Camellia against Truncated and Impossible Differential Cryptanalysis M.Sugita;K.Kobara;H.Imai
- Advances in Cryptology - ASIACRYPT'00, LNCS 1976 Provable Security for the Skipjack-like Structure against Differential Cryptanalysis and Linear Cryptanalysis J.C.Sung;S.J.Lee;J.I.Lim;S.H.Hong;S.J.Park