Ⅰ. 서론
차분 공격과 선형 공격은 블록 암호에 대한 대표적인 공격이다. 1994년에 Langford와 Hellman이 차분 공격과 선형 공격을 동시에 이용한 차분-선형 공격[2]을 제시했다. 이후 2002년에 Biham 등에 의해 향상된 차분-선형 공격[3]이 제안되었다. 2019 년에는 Bar-On†등이 기존 차분-선형 공격의 한계점을 보완할 수 있는 DLCT (Differential-Linear Connectivity Table)를 이용한 향상된 차분-선형 공격을 제안했다[1]. 차분 구별자와 선형 구별자 간에 DLCT를 적용하면 기존 차분-선형 공격보다 정확한 차분-선형 구별자의 바이어스를 구할 수 있으며, 이를 통해 전체 공격 구별자의 라운드 수도 증가시킬 수 있다.
현재 RECTANGLE에 대한 단일 키 기준 안전성 분석은 제안 논문[4]과 [5]을 제외하고는 진행되지 않았다. RETANGLE 제안 논문[4]에서는 14-라운드 차분 구별자를 이용한 18-라운드 공격을 제안하였으나, 구체적인 공격 과정과 구체적인 공격 복잡도는 제시되지 않았다. 또한 [5]에서는 [4]보다 향상된 차분, 선형 구별자만 제시되어있고 제시된 구별자를 통한 키 복구는 제시되지 않았다. 이에 본 논문에서는 최신 암호 분석 기법인 DLCT를 차분-선형 공격에 적용하여 RECTANGLE의 안전성을 분석하고 이에 따른 키 복구 알고리즘과 복잡도를 제시한다.
본 논문의 구성은 다음과 같다. 2장에서는 RECTANGLE 암호에 관해 간략하게 서술한다. 3장에서는 본 논문에 쓰이는 기호들을 정리하고 DLCT에 대한 정의와 차분-선형 공격을 서술한다. 또한 차분-선형 공격의 한계점과 DLCT의 필요성을 서술한다. 4장에서는 RECTANGLE-80에 DLCT 를 이용한 차분-선형 공격을 적용한 구별자를 정의하고 정의한 구별자를 통해 키 복구 과정 및 이에 따른 공격 복잡도를 정리한다. 마지막으로 5장에서는 결론 및 향후 연구를 제시한다.
Ⅱ. RECTANGLE 암호 알고리즘
본 장에서는 RECTANGLE 암호 알고리즘에 관해 서술한다. RECTANGLE은 SPN (Substitution Permutation Network) 구조를 갖는 암호 알고리즘이다.
RECTANGLE 암호 알고리즘의 총 라운드 수는 25-라운드이고 블록 크키는 64 비트로 이루어져 있다. 키 길이는 80 비트 혹은 128 비트로 이루어진다. 본 논문에서는 80 비트의 키를 사용하는 암호에 대해 공격을 수행한다. 다음 Fig. 1.은 RECTANGLE 암호 알고리즘의 첫 2라운드에 대한 도식이다.
Fig. 1. First 2-round RECTANGLE Block Cipher
2.1 라운드 구성
각 라운드는 라운드 키를 XOR하는 AddRoundkey, 비선형 연산인 SubColumn, 비트를 확산시키는 ShiftRow로 구성된다. 마지막 라운드 이후 AddRoundKey를 한 번 더 수행한다. 다음 Fig. 2.는 RECTANGLE 블록 암호의 state를 나타낸다.
Fig. 2. State of RECTANGLE
Fig. 2.의 w0는 Fig. 1.의 LSB (Least Significant Bit)이다.
2.2 SubColumn
RECTANGLE의 SubColumn은 sbox를 이용해 각 비트에 비선형 연산을 적용한다. Table 1.은 RECTANGLE의 sbox를 나타내며 sbox는 4 비트 입력을 4 비트 출력에 매핑한다. Fig. 2. 암호 state를 기준으로 각 열에 sbox를 적용한다. 즉, state의 64 비트는 16번의 sbox를 거친다.
Table 1. RECTANGLE sbox table
(y = s(x))
2.3 ShiftRow
RECTANGLE의 ShiftRow는 Fig. 3.과 같다. 두 번째 행은 왼쪽으로 1 비트 로테이션, 세 번째행은 왼쪽으로 12 비트 로테이션, 마지막으로 네 번째 행은 왼쪽으로 13 비트 로테이션을 진행한다.
Fig. 3. ShiftRow of RECTANGLE
2.4 Key schedule
RECTANGLE의 Key schedule은 일련의 과정을 통해 총 26개의 라운드 키를 생성한다. Fig. 4.는 80 비트의 key state를 나타낸다.
Fig. 4. An 80 bits Key state
key state에서 1행부터 4행을 이용해 64 비트 라운드 키를 얻는다. (라운드 키 = 4행||3행||2행 ||1행). key state에서 i 번째 라운드 키를 얻은 후 다음과 같은 과정을 통해 key state를 갱신한다. 1)의 S는 sbox, Rown(n=0, 1, 2, 3, 4)는 key state의 n 번째 행 그리고 RC[i]는 i 번째 5 비트 라운드 상수를 뜻한다.
1)\(\begin{aligned} &\quad v_{(48+j)}^{\prime}\left\|v_{(32+j)}^{\prime}\right\| v_{(16+j)}^{\prime} \| v_{(0+j)}^{\prime}= S\left(v_{(48+j)}\left\|v_{(32+j)}\right\| v_{(16+j)} \| v_{(0+j)}\right)(j=0,1,2,3) \end{aligned}\)
2) \(\begin{aligned} &\operatorname{Row}_{0}^{\prime}=\left(\text { Row }_{0} \lll 8\right) \oplus R o w_{1} \\ &\operatorname{Row}_{1}^{\prime}=\text { Row }_{2} \\ &\operatorname{Row}_{2}^{\prime}=\text { Row }_{3} \\ &\operatorname{Row}_{3}^{\prime}=\left(\text { Row }_{3} \lll 12\right) \oplus \text { Row }_{4} \\ &\text {Row}_{4}^{\prime}=\text { Row }_{0} \end{aligned}\)
3) \(v_{4}^{\prime}\left\|v_{3}^{\prime}\right\| v_{2}^{\prime}\left\|v_{1}^{\prime}\right\| v_{0}^{\prime}=\left(v_{4}\left\|v_{3}\right\| v_{2}\left\|v_{1}\right\| v_{0}\right) \oplus R C[i]\)
위와 같은 key state 갱신하고 다시 1행부터 4행을 이용해 64 비트 라운드 키를 얻는다. 이를 반복해 총 26개의 라운드 키를 생성한다.
본 논문에서 라운드 키를 통해 마스터 키를 추측 할 때 비선형 연산인 sbox는 고려하지 않았다.
Ⅲ. 차분-선형 공격과 DLCT
본 장에서는 차분-선형 공격을 설명하고. 차분 구별자와 선형 구별자 사이에 DLCT를 적용하는 방법 론을 설명한다. 그리고 기존의 차분-선형 공격의 가정에 따른 한계점을 구체적으로 서술하고 DLCT의 필요성을 제시한다. 다음 Table 2.는 이후 사용될 기호들을 정리한 것이다.
Table 2. Notations
Table 2.의 ?는 4-라운드의 DLCT를 적용한 차분-선형 구별자를 표현한 Table 5.에서 0 또는 1의 비트를 뜻한다. 예를 들어 1의 입력 차분의 결과로 3, 6, 7, 0xb, 0xe 그리고 0xf의 출력 차분이 가능하다. \(\overline{d l c t}\)를 계산하기 위해 입력 차분에 따른 가능한 모든 출력 차분을 고려하기 때문에 0 또는 1의 값을 가지는 각 비트들을 ?로 표현했다. 또한 출력 차분이 정해지면 ? 비트는 0 또는 1의 값이 정해진다.
3.1 차분-선형 공격
[2]에서 처음 제안된 차분-선형 공격 도식은 Fig. 5.와 같다.
Fig. 5. Differential-Linear distinguisher
Fig. 5.에서 E0는 차분 구별자, E1은 선형 구별자이며, 이를 통해 전체 차분-선형 구별자를 E0=E1ºE0 로 표현할 수 있다.
차분 구별자에서 ΩI→ΩO의 확률이 p이고 선형 구별자에서 λI→λ0의 바이어스가 q라면 차분-선형 공격 구별자의 전체 바이어스는 식(1)과 같다.
\(\begin{aligned} &p\left(\left(\frac{1}{2}+q\right)\left(\frac{1}{2}+q\right)+\left(1-\left(\frac{1}{2}+q\right)\right)\left(1-\left(\frac{1}{2}+q\right)\right)\right) \\ &\left(\because \operatorname{Pr}\left[x \cdot \lambda_{I}=C \cdot \lambda_{O}\right]=\frac{1}{2}+q,\right. \\ &\left.\operatorname{Pr}\left[x^{*} \cdot \lambda_{I}=C^{*} \cdot \lambda_{O}\right]=\frac{1}{2}+q\right) \\ &=2 p q^{2} \end{aligned}\) (1)
3.2 DLCT와 차분-선형 공격에 DLCT의 적용
다음 Table 3.은 식(2)의 관계를 통해 구성된 RECTANGLE sbox에 대한 DLCT이다. 행은 입력 차분을 의미하고 열은 출력 마스킹을 의미한다.
Table 3. DLCT of RECTANGLE sbox
\(S(x) \text { ・ } \lambda=S(x \oplus \Omega) \cdot \lambda\) (2)
E0와 E1을 서로 연결하기 위해 식(2)와 같이 ΩO 과 λI의 관계식을 가지는 DLCT를 이용해 구성한 구별자 Em을 넣는다. 이를 도식화하면 다음 Fig. 6.와 같다.
Fig. 6. Differential Linear distinguisher with DLCT
본 논문에서 선형 마스킹의 결괏값을 0을 기준으로 설정했다. 따라서 DLCT를 구성한 식(2)를 만족한다면 결과적으로 다음과 같은 식이 유도된다.
\(\begin{aligned} &\lambda_{I} \cdot x \oplus \lambda_{O} \cdot E_{1}(x)=0 \\ &\lambda_{I} \cdot x^{*} \oplus \lambda_{O} \cdot E_{1}\left(x^{*}\right)=0 \\ &\left(E_{0}(P)=x, E_{0}\left(P^{*}\right)=x^{*}\right) \\ &\lambda_{I} \cdot x \oplus \lambda_{O} \cdot E_{1}(x)=\lambda_{I} \cdot x^{*} \oplus \lambda_{O} \cdot E_{1}\left(x^{*}\right) \\ &\Rightarrow \lambda_{I} \cdot\left(x \oplus x^{*}\right) \oplus \lambda_{O} \cdot\left(E_{1}(x) \oplus E_{1}\left(x^{*}\right)\right)=0 \\ &\Rightarrow \lambda_{I} \cdot \Omega_{O} \oplus \lambda_{O}\left(E_{1}(x) \oplus E_{1}\left(x^{*}\right)\right)=0 \\ &\text { If } \lambda_{I} \cdot x=\lambda_{I} \cdot x^{*} \\ &\Rightarrow \lambda_{o} \cdot\left(E_{1}(x) \oplus E_{1}\left(x^{*}\right)\right)=0\left(\because \lambda_{I} \cdot \Omega_{O}=0\right) \end{aligned}\)
따라서 Em에서는 ΩO와 λI의 종속성을 고려하기 위해 S(x)•λI=S(x⊕ΩO)•λI의 관계를 차분 구별자와 선형 구별자 사이에 적용한다. 이때, 전체 구별자를 E=E1∘Em∘E0으로 표현한다.
본 논문에서는 Em을 총 5-라운드로 구성했다. Em은 총 19개의 active sbox로 구성되었으며 Em 의 마지막 active sbox의 입력 차분에 대해 식 S(x)•λI=S(x⊕ΩO)•λI의 값을 만족하는지 확인하였다. 위의 과정을 통해 5-라운드 Em의 확률을 구했으며, 자세한 과정은 4.1.2에서 서술한다.
Em을 포함한 전체 구별자 E의 바이어스는 식(3)과 같이 나타낸다.
\(\begin{aligned} &2 p \overline{D L C T} q^{2}\\ &\left(\overline{D L C T}=\operatorname{Pr}\left[S(x) \cdot \lambda_{I}=S\left(x \oplus \Omega_{O}\right) \cdot \lambda_{I}\right]-\frac{1}{2}\right) \end{aligned}\) (3)
3.3 차분-선형 공격의 한계점과 DLCT의 필요성
기존 차분-선형 공격에서는 E0와 E1이 독립적이고, 또한 차분 구별자, 선형 구별자의 active sbox 확산 양상이 서로 독립적이라고 가정했다. 그러나 차분 구별자 E0의 입력값은 P⊕P*=ΩI의 관계에 있는 종속적인 두 개의 평문 P, P* 이므로 E0(P)와 E0(P*)는 확률적으로 E0(P)⊕E0(P*)=ΩO의 관계에 있다. 즉, E0(P)와 E0(P*)는 서로 독립적이지 않다. 따라서 E1의 입력값인 E0(P)와 E0(P*)가 종속적이므로 E0와 E1은 서로 종속적이라 할 수 있다. 또한 E0의 확률, 즉, Pr[ΩI→ΩO]이 1보다 작은 경우 차분 구별자 E0를 만족하지 않는 평문 쌍 (P, P*)에 대해 E0(P)∙λI= E0(P*)∙λI의 관계를 만족할 확률이 1보다 작기에 E0(P)∙λI= E0(P*)∙λI을 만족할 확률에 대한 계산이 필요하다. 따라서 E0와 E1사이에 Em을 추가하여 E0의 출력 차분에 대해 E0(P)∙λI= E0(P*)∙λI의 확률을 계산함과 동시에 E0와 E1을 연결하여 종속성을 따진다. 기존 차분-선형 구별자의 E0에서 E1의 active sbox를 Em을 통해 연결한다. Em의 입력 차분에 따른 모든 출력 차분을 전부 고려하여 E0와 E1의 active sbox의 확산 양상을 종속적으로 따진다.
Table 3.의 (색칠된 부분)을 보면 가능한 16개의 입력값에 대한 식(2)의 값이 모두 한쪽으로 치우쳐있는 것을 볼 수 있다. 이는 식(2)를 만족할 확률이 0 또는 1이라는 것을 뜻한다. 이 확률은 [3]에서 식(2)를 만족할 확률인 \(\frac{1}{2}\)과 차이가 크다.([2]에서는 \(\operatorname{pr}[s(x) \cdot \lambda=s(x \oplus \omega) \cdot \lambda]=1\) 을 가정했다. [3]에서는 \(s(x) \cdot \lambda \text { 와 } s(x \oplus \omega) \cdot \lambda\)의 값이 서로 독립적이고 균일하다고 가정했다. 따라서 차분 구별자를 성립하지 않는 경우의 입력 쌍 (x, x⊕Ω)에 대해 \(\operatorname{pr}[s(x) \cdot \lambda=s(x \oplus \omega) \cdot \lambda]=\frac{1}{2}\)로 설정했다). 이는 E0와 E1이 종속적이라는 것으로 해석할 수 있다. 따라서 E0와 E1 사이에 E1의 첫 라운드를 포함하는 DLCT를 이용해 구성된 구별자 Em을 적용하면 [2], [3]에서 E0와 E1이 독립적이라고 가정한 한계를 극복할 수 있으며, 이를 통해 더욱 정확한 차분-선형 구별자의 확률을 구할 수 있다.
Ⅳ. 15라운드 RECTANGLE-80에 대한 DLCT 를 적용한 차분-선형 공격
본 장에서는 RECTANGLE에 DLCT를 적용한 13-라운드 차분-선형 공격 구별자를 설명한다. 또한 이를 기반으로 앞, 뒤로 1라운드씩 키 복구 라운드를 붙여 총 15-라운드 RECTANGLE-80에 대한 키 복구 공격을 제안한다. 표로 표현된 공격 구별자들은 sbox의 입, 출력을 기준으로 구성했고 라운드는 암호 알고리즘의 라운드를 기준으로 작성했다.
4.1 공격 구별자
공격 구별자는 4-라운드의 E0, 5-라운드의 Em 그리고 4-라운드의 E1로 구성되며, 총 13-라운드이다.
4.1.1 차분 구별자
Fig. 7.은 E0의 첫 1라운드를 도식화한 것이다. 우측부터 7, 12번째 sbox의 입력 차분은 0x6, 0x5 이고 출력 차분은 0x2, 0x4이다. 이 비트들은 다음 라운드의 8번째 sbox의 0x6의 입력 차분이다.
Fig. 7. 1st-round of Differential distinguisher
전체 E0는 Table 4.와 같다. E0는 [4]에서 제안된 최적의 확률을 갖는 5-라운드 차분 구별자를 이용하여 구성했으며, 마지막 라운드의 active sbox 가 Em과 연결될 수 있도록 했다.
Table 4. 4-round Differential distinguishe
4.1.2 DLCT를 이용해 구성된 구별자 Em
Em의 입력 차분은 구별자의 계산 복잡도를 최소화하기 위해 1개의 active sbox로 제한했다. 5-라 운드 Em은 Table 5.와 같다.
Table 5. 5-round DLCT distinguisher Em
DLCT를 적용한 5-라운드 Em의 도식은 Fig. 8.과 같다.
Fig. 8. 5-round DLCT distinguisher Em
Table 6.은 Em의 마지막 라운드에 대한 표이다. Table 6.을 식(4)와 같이 표현할 수 있다.
\(\begin{aligned} &S(x) \cdot \lambda_{I}=S\left(x \oplus \Omega_{O}\right) \cdot \lambda_{I} \\ &\left(\Omega_{O}=\{0,1,2 \cdots 15\}, \lambda_{I}=1\right) \end{aligned}\) (4)
Table 5.에서 확인할 수 있듯이 Em의 입력 차분은 0x0000000000100000이다. 따라서 6번째 sbox의 입력 차분 0x1에 대해 DDT (Differential Distribution Table)를 통해 알 수 있는 가능한 출력 차분 {3, 6, 7, 0xB, 0xE, 0xF}을 전부 고려한다. 6라운드의 active sbox에 의해 생긴 출력 차분에 대해 7라운드의 active sbox와 각각의 입력 차분이 정해진다. 7라운드의 정해진 각각의 active sbox에 대해 다시 가능한 출력 차분을 계산한다. 이와 같은 방식으로 선형 구별자의 λI에 해당하는 값들에 대해 S(x)•λI=S(x⊕ΩO)•λI을 계산한다. 6라운드의 가능한 출력 차분 {3, 6, 7, 0xB, 0xE, 0xF}에 대해 모두 수행한다. 즉, 10라운드의 active sbox에 DLCT를 적용해 가능한 모든 입력 차분에 대해 S(x)•λI=S(x⊕ΩO)•λI 이 되는 확률을 구한다. 본 논문에서는 E1의 최대 라운드를 구성하기 위해 λI=1로 고정했다.
\(\overline{d l c t}\)\(\) 계산에 대한 알고리즘은 다음과 같다.
1) temp와 카운터를 초기화한다.
2) 고정된 입력 차분 0x1에 대해 DDT를 통해 알 수 있는 가능한 출력 차분 {3, 6, 7, 0xB, 0xE, 0xF}중 하나를 선택한다.
3) 2)에서 선택된 출력 차분에 대해 7라운드 1, 2, 5, 6번째 각각의 sbox 입력 차분이 정해진다. 각 sbox에서 정해진 입력 차분에 따라 가능한 출력 차분 중 하나를 각각 선택한다.
4) 3)에서 정해진 7라운드 sbox의 출력 차분에 대해 8라운드 1, 2, 3, 5, 6, 7, 13, 14, 15번째 sbox에 영향을 주는 차분을 각각의 sbox 입력 차분으로 한다.
5) 8라운드 sbox에 대해 입력 차분이 정해지면 가능한 출력 차분 중 하나를 선택한다. 각 출력 차분에 대해 9라운드 2, 3, 14, 15번째 sbox에 영향을 주는 차분을 9라운드 각각의 sbox 입력 차분으로 한다.
6) 9라운드 각각의 sbox 입력 차분에 대해 가능한 출력 차분 중 하나를 선택한다. 선택된 각 sbox 의 출력 차분 중 10라운드 15번째 sbox에 영향을 주는 비트만 선택하여 각각의 sbox 입력 차분으로 설정한다.
7) 설정된 입력 차분을 Ω*라 하자. 만약 S(x)•1=S(x⊕Ω*)•1을 만족하면 Table 3. 을 이용해 확률을 구하고 temp에 더한다. 이후 해당 카운터를 1 증가시킨다.
8) 각 단계에서 가능한 모든 입력 차분과 출력 차분을 고려할 때까지 2)-7)의 과정을 반복한다.
9) temp의 값을 카운터로 나누어 \(\overline{d l c t}\)의 확률을 구한다.
위의 알고리즘을 통해 \(e_{m} \simeq 2^{-1.09}\)임을 알 수 있다.
4.1.3 선형 구별자
계산 복잡도를 최소화하면서 최대한 많은 키 복구를 위해 E1을 두 가지 경우로 나누었다. 두 가지 경우의 E1은 Table 7.과 Table 8.과 같다. 두 개의 E1은 11-13라운드의 구성은 같고 14라운드의 λO는 각각 0x0000006000040000, 0x000000B0000E0000이다.
Table 7. First 4-round Linear distinguisher
Table 8. Second 4-round Linear distinguisher
4.2 키 복구 공격
본 절에서는 앞에서 정의한 13-라운드의 E를 통해 RECTANGLE 암호 알고리즘의 15-라운드를 공격하고 공격 복잡도를 정리한다. E는 2-5라운드의 E0, 6-10라운드는 Em 그리고 11-14라운드는 E1로 구성했다.
4.2.1 키 복구 과정
키 복구 과정은 총 7단계의 과정을 통해 K1 16 비트와 whitening key K16 24 비트를 복구한다. K1과 K16의 복구되는 키 비트는 Table 9.와 같다.
Table 9. Recovered key bits of K1 and K16
Table 7.의 첫번째 \(\mathrm{e}_{1}\)을 먼저 이용하여 공격한다. 공격 알고리즘은 다음과 같다.
1) 1라운드의 부분 키 16 비트의 키 후보를 하나 결정한다.
2) 1라운드의 복구하려는 부분 키 16 비트에서는 0~(216-1)의 값을 가지고 나머지 48 비트들이 고정된 상수를 갖는 240.18개의 스트럭쳐를 준비한다. 1)에서 결정한 키 후보로부터 주어진 스트럭쳐를 부분 암호화한 값이 0~(216-1)의 값을 갖는 평문 P0,…, P2(^16)-1 을 획득하고, 각각을 암호화하여 C0,…, C2(^16)-1을 얻는다.
3) 2)에서 얻은 216개의 평문, 암호문 쌍으로 구성된 하나의 스트럭쳐로부터 두 평문을 1라운드의 부분 키 16 비트들의 자리에 대해 부분 암호화했을 때, ΩI=0x0000500006000000가 되도록 쌍을 지어 215개의 평문 쌍을 얻는다.
4) 평문 Pi와 암호문 Ci에 대해 \(\mathrm{y}^{i}=\operatorname{s}_{\text {ubcolum } n}^{-1}\left(\mathrm{sh}_{i} f+\mathrm{r}_{n w}^{-1}\left(\mathrm{c}^{i}+\mathrm{k} 16\right)\right)\)라 하자. K1 16 비트 후보가 하나 결정됐을 때 부분 키 K16 12비트를 복구하기 위한 224의 카운터(T) 를 초기화한다. 그리고 모든 평문 쌍 (Pi,Pj)에 대하여, Yi와 Yj의 값이 같은 쌍의 개수를 저장한다.
5) 240.18개의 스트럭쳐들로부터 얻을 수 있는 전체 쌍의 개수를 N이라 하자. 모든 값이 있는 T가\(\left|\gamma-\frac{\mathrm{n}}{2}\right| \approx 2^{-40.18} \times \mathrm{n}\)을 만족할 경우, 각각의 키 후보들을 실제 K16의 부분 키로 추정한다. 그리고 1)에서 결정한 K1 16비트를 실제 K1의 부분 키로 추정한다. 만족하지 않으면 1)로 돌아가 키 후보를 변경하고 2)~5)의 과정을 반복한다.
6) T를 초기화하고 위에서 얻은 255.18개의 평문 쌍에 대해 두 번째 선형 구별자를 적용한다. K16 24 비트 부분 키 후보를 하나 결정한다. 결정한 키 후보를 통해 \(\mathrm{y}_{1}^{i} \oplus \mathrm{y}_{2}^{i} \oplus \mathrm{y}_{6}^{i} \oplus \mathrm{y}_{7}^{i} \oplus \mathrm{y}_{10}^{i} \oplus \mathrm{y}_{11}^{i}\)와 \(\mathrm{y}_{1}^{\jmath} \oplus \mathrm{y}_{2}^{\jmath} \oplus \mathrm{y}_{6}^{\jmath} \oplus \mathrm{y}_{7}^{\jmath} \phi \mathrm{y}_{10}^{\jmath} \oplus \mathrm{y}_{11}^{j}\left(\mathrm{y}_{j}^{\prime}\right.\)에서 j는 j번째 sbox)의 값이 같은 경우 카운터를 증가시킨다.
7) 카운터 중 가장 큰 값을 가지는 값을 실제 15라운드의 whitening key K16의 부분 키로 추정한다. 위의 공격 알고리즘을 통해 K1 16 비트와 K16 24 비트를 복구할 수 있다. RECTANGLE-128에 대한 공격은 전수조사의 크기를 늘리는 것으로 공격할 수 있다.
4.2.2 공격 복잡도
각 구별자에 대한 확률과 바이어스는 다음과 같다. 선형바이어스는 [6]의 Piling-upLemma에 의해 계산된다. Piling-upLemma는 식(5)과 같다.
\(2^{n-1} \prod_{i=1}^{n}\left(p_{i}-\frac{1}{2}\right)\) (5)
차분확률: 2-12, 선형바이어스: 2-s, Em 확률 : 2-1.09으로 총 13-라운드의 구별자의 확률은 \(\frac{1}{2}+2^{-28 \cdot 09}\)이다. 따라서 해당 공격을 위한 필요 평문 쌍은 255.18쌍이고 84.13%의 성공 확률을 갖는다 [6]
다음 Table 10.은 복구하는 키 비트와 그에 따른 시간 복잡도와 공간 복잡도이다.
Table10. Complexity
Ⅴ.결론 및 향후 계획
본 논문에서는 경량 블록 암호인 RECTANGLE-80에 DLCT를 적용한 차분-선형 13-라운드 E를 제안했다. 이 E를 이용해 15-라운드의 공격을 수행했으며, K1의 16 비트와 K16의 24비트를 통해 마스터키 22 비트를 복구했다. 이는 RECTANGLE 제안 논문[4]에서 제시한 최대 라운드 공격인 18-라운드차분 공격에 비해 적은 라운드이다. 그러나 해당 차분 공격에서는 구체적인 키 복구 과정과 공격 복잡도는 제시되어 있지 않다. 또한 [4], [5]의 결과를 제외하고는 단일 키 공격을 통한 분석 논문은 찾을 수 없었다. 따라서 본 논문의 공격은 신규 암호 분석 기법을 통한 암호 분석 관점에서 의미 있는 결과라고 할 수 있다.
본 논문의 5-라운드 Em의 확률은 2-1.09이다. 이는 같은 라운드의 차분 구별자의 확률, 선형 구별자의 바이어스와 비교해 확실히 좋은 확률을 갖는다. 하지만 Em 의 라운드 수는 블록 암호의 차분 관점의 Full-diffusion 라운드 수에 종속되며, 특히 RECTANGLE의 Full-diffusion 라운드는 4-라운드이다. 따라서 Em의 4번째 라운드에서 모든 sbox를 active로 설정하면, 선형 구별자의 첫 라운드에서 activesbox를 2개 이상으로 설정한 후 라운드를 늘릴 수 있을 것으로 예상한다. 하지만 이를 위해서는 최소 16개의 activesbox를 추가로 고려하므로 확률계산을 위해서는 더 높은 계산 복잡도가 필요하다. 관련 연구를 통해 16-라운드 이상의 RECTANGLE 분석을 수행하는 것이 향후 계획이다.
* 본 논문은 2021년도 정부(과학기술정보통신부)의 재원으로 정보통신기술진흥센터의 지원을 받아 수행된 연구임(No.2017-0-00520, SCR-Friendly 대칭키 암호 및 응용모드 개발)
* 본 논문은 2020년도 한국정보보호학회 하계학술대회에 발표한 우수논문을 개선 및 확장한 것임
참고문헌
- Achiya Bar-On, Orr Dunkelman, Nathan Keller and Ariel Weizman, "DLCT : A New Tool for Differential-Linear Cryptanalysis," Advances in Cryptology - EUROCRYPT'19, LNCS 11476, pp. 313-342. May. 2019
- Susan K Langford and Martin E Hellman, "Differential-Linear Cryptanalysis," Advances in Cryptology - CRYPTO'94, vol. 839, pp. 17-25, Aug. 1994
- Eli Biham, Orr Dunkelman and Nathan Keller, "Enhancing Differential-Linear Cryptanalysis", Advances in Cryptology - ASIACRYPT'02, LNCS 2501, pp. 254-266, Dec. 2002
- Wentao Zhang, Zhenzhen Bao, Dongdai Lin, Nincent Rijmen, Bohan Yang and Ingrid Verbauwhede, "RECTANGLE: A Bit-slice Lightweight Block Cipher Suitable for Multiple Platforms," Science China Information Sciences, 58, pp. 1-15, Nov. 2015
- Hall-Andersen, Mathias, and Philip S. Vejre, "Generating graphs packed with paths estimation of linear approximations and differentials," Iacr Transactions on Symmetric Cryptology, pp. 265-289, Sep. 2018
- Mitsuru Matsui, "Linear Cryptanalysis Method for DES Cipher," Advances in Cryptology - EUROCRYPT'93, vol. 765, pp. 386-397, May. 1993
- Eli Biham, Orr Dunkelman and Nathan Keller, "Differential-Linear Cryptanalysis of Serpent," International Workshop on Fast Software Encryption, LNCS 2887, pp. 9-21, Feb. 2003
- Jinyong Shan, Lei Hu, Ling Song, Siwei Sun, and Xiaoshuang Ma, "Related-Key Differential Attack on Round Reduced RECTANGLE-80," IACR Cryptology ePrint Archive, 986, 2014