I. 서론
경량 디바이스의 암호화 서비스 수요가 증가하면서 새로운 경량 블록암호가 지속적으로 제안되고 있다. 경량 블록암호는 경량성을 설계 목표로 하여 주로 단순한 키 스케줄 또는 마스터키로부터 부가 연산을 최소화하여 그대로 사용하는 경향이 있다. 하지만 단순한 구조의 키 스케줄에 대한 구조적 취약성으로 인해 2016년에 새로운 공격인 비선형 불변 공격이 제안되어 Midori, iSCREAM의 안전성이 재조명되었다[1]. 비선형 불변 공격은 취약키(weak-key)가정하에 한 라운드의 비선형 불변을 임의의 라운드의 비선형 불변으로 확장할 수 있다. 즉, 차분 공격, 선형 공격과는 달리 취약키 가정하에 블록암호의 라운드 수와 관계없이 공격을 수행할 수 있다. 따라서 복잡한 구조의 키 스케줄을 사용할 경우, 이러한 취약키 집합을 찾기가 어려우므로, 비교적 간단한 구조의 키 스케줄(마스터 키에 라운드 상수를 더하여 라운드 키를 생성하는 방식 등)을 갖는 경량 블록암호에 주로 적용된다. 이로 인해 비교적 간단한 구조의 키 스케줄을 갖는 경량 블록암호에서는 필수적으로 고려되어야 할 공격이다.
설계자 관점에서 비선형 불변 공격에 저항성을 보이는 방법이 2017년에 제안되었다[2]. [2]에서는 라운드 키 간의 차분 중 알려진 것들의 집합에서 선형계층에 대해 불변인 최소의 선형공간의 크기가 클수록 비선형 불변 공격에 저항성을 보일 수 있음을 증명하였다. 또한, 주어진 선형계층에 대해 비선형불변 공격에 저항성을 갖는 라운드 키 간의 차분의 최소 개수를 보였다. 라운드 키 간의 차분의 종류가한가지여도 비선형 불변 공격에 저항성을 보일 수 있는 선형계층을 사용하면, 어떠한 구조의 키 스케줄을사용하여도 비선형 불변 공격에 안전하다.
본 논문에서는 설계자 관점에서 라운드 키 간의차분의 종류가 한가지여도 비선형 불변 공격에 저항성을 갖는 비트 순열의 형태와 개수를 제안한다. 비트 순열을 선형계층으로 사용하는 경우, 해당 비트순열에 대응되는 순환행렬의 최소다항식과 특성다항식이 같으면 라운드 키 간의 차분의 종류가 한가지여도 비선형 불변 공격에 저항성을 갖는다. 이러한 특성을 만족하는 비트 순열을 최적의 비트 순열이라 표기한다. 또한, PRESENT 구조 블록암호는 비선형 불변 공격에 저항성을 갖기 위해 적어도 두 종류의 라운드 키 간의 차분이 필요함을 전수조사를 통해 보이며, 두 종류의 라운드 키 간의 차분을 필요로 하는 비트 순열을 사용해도 차분 공격에 대한 저항성이 오히려 증가할 수 있음을 보인다. 마지막으로 GIFT의 S-box를 사용하면서 BOGI 설계 논리를 유지하는 모든 비트 순열의 불변 성분 분포를 통해, 변형된GIFT 구조 블록암호는 비선형 불변 공격에 저항성을 갖기 위해 적어도 8종류의 라운드 키 간의 차분이 필요함을 보인다.
본 논문의 구성은 다음과 같다. Ⅱ장에서는 표기법과 비선형 불변 공격, 해당 공격에 대한 저항성 입증 방법을 설명한다. Ⅲ장에서는 최적의 비트 순열 도출 방법에 관해 기술하고, 경량 블록암호에 적용하여 도출한 결과를 Ⅳ장에서 제시한다. 끝으로 Ⅴ장에서 결론을 맺는다.
II. 배경 지식
2.1 표기법
본 논문에서 사용된 표기법은 다음과 같다.
• n : 블록암호의 블록 비트 크기
• L : SPN 구조의 선형계층, L-Layer
• S : 비트 순열
• \(P_{\pi}\) : 비트 순열 에 대응되는 순환행렬(permutation matrix)
• (i1i2 ··· ik) : 위수가 k인 사이클 γ
\(\left\{\begin{array}{l} \gamma\left(i_{1}\right)=i_{2}, \gamma\left(i_{2}\right)=i_{3}, \cdots, \gamma\left(i_{k}\right)=i_{1} \\ \gamma(i)=i, \forall i \notin\left\{i_{1}, i_{2}, \cdots, i_{k}\right\} \end{array}\right.\)
모든 비트 순열(\({\pi}\))은 대응되는 순환행렬(\(P_{\pi}\))이 존재하고, 사이클들의 조합으로 나타낼 수 있다.
\(\text { ex) } \pi=\left(\begin{array}{llll} 1 & 2 & 3 & 4 & 5 \\ 1 & 4 & 2 & 5 & 3 \end{array}\right) \Leftrightarrow P_{\pi}=\left[\begin{array}{lllll} 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 & 0 \end{array}\right] \Leftrightarrow(1)(2453)\)
• C(Qi) : 다항식 Qi에 대한 동반행렬(companion matrix)
• A ~B : A ~ B if Ps.t. P-1 AP = B
• \(\chi_{A}(x)\) : 행렬 A의 특성다항식(characteristic polynomial)
n × n 행렬 A의 특성다항식은 \(\chi_{A}(x)\) = det(xI - A)이다. 이때 I는 n × n 단위행렬(identity matrix)이다.
• mA(x) : 행렬 A의 최소다항식(minimal polynomial)
행렬 A의 최소다항식은 최고차항의 계수가 1인 다항식으로 다음을 만족하는 최소 차수(d) 다항식이다.
\(m_{A}(x)=\sum_{i=0}^{d} p_{i} x^{i} \in F_{2}[x] \text { s.t. } m_{A}(A)=\sum_{i=0}^{d} p_{i} A^{i}=0\)
2.2 비선형 불변
비선형 불변 공격은 블록암호 \(E_{k}: F_{2}^{n} \rightarrow F_{2}^{n}\)의 비선형 불변을 이용한 공격으로 비선형 불변은 다음과 같이 정의한다.
정의 1[1]. 블록암호 \(E_{k}: F_{2}^{n} \rightarrow F_{2}^{n}\)에 대해, 불함수 \(g: F_{2}^{n} \rightarrow F_{2}\)가 \(g(x)+g\left(E_{k}(x)\right)=\text { Const }, \forall x \in F_{2}^{n}\)을 다수의 키 K에 대해 만족시킬 때, g를 Ek의 비선형 불변이라 하고, 이를 만족하는 K는 비선형 불변 g에 대한 취약키(weak-key)라고 한다.
블록암호의 비선형 불변이 존재하는 경우에는 구별 공격, 평문 복원 및 키 복원을 시행할 수 있음이 2016년에 비선형 불변 공격을 통해 알려졌다[1]. 2018년에는 확장된 비선형 불변 공격이 제안되어 구별 공격을 시행하였다[4]. 또한, [6]에서는 correlation matrix를 통해 비선형 불변을 도출하고, 포화 공격(integral attack)과 결합하여 키 복원을 시행하였다.
2.3 비선형 불변 공격의 저항성 입증방법
본 논문에서는 Fig. 1.과 같이 SPN 구조의 블록 암호에 대해 살펴본다.
Fig. 1. SPN with S-Layer S and linear layer L
정의 2[2]. 불함수 g의 선형구조(linear structure)는 다음을 만족하는 원소 \(\alpha \in F_{2}^{n}\)를 뜻한다.
\(L S(g):=\left\{\alpha \in F_{2}^{n} \mid g(x)+g(x+\alpha)=\text { Const }, \forall x \in F_{2}^{n}\right\}\)
이때 선형구조에 속한 모든 원소 α를 모으면 \(F_{2}^{n}\)의 부분 선형공간(linear subspace)이고, 이를 g의 선형공간(linear space)이라 한다.
블록암호의 비선형 불변을 도출하기 위해서는 한 라운드에 대한 비선형 불변을 구해야 한다. 하지만 이는 현실적으로 구하기 어려우므로 비선형계층인 S-Layer와 선형 부분인 \(A d d_{k_{i}} \circ L\)에 공통으로 존재하는 비선형 불변을 블록암호의 비선형 불변으로 도 출한 후, 이를 활용하여 공격을 진행한다. 이때 서로 다른 라운드의 선형부분에 공통으로 존재하는 비선형 불변의 선형공간에 대한 특징은 다음과 같다.
정리 1[2]. 불함수 g가 라운드 키로 Ki, Kj를 사용하는 선형부분 \(A d d_{k_{i}} \circ L, A d d_{k_{j}} \circ L\)의 비선형 불변일 때, LS(g)는 Ki + Kj를 포함하며, L에 대해 불변인 선형공간이다.
정리 1에 의해 라운드 키 간의 차분은 LS(g)에 포함된다. 이때 선형계층 L에 대해 불변인 선형공간 중 \(c\left(\in F_{2}^{n}\right)\)를 포함하는 최소의 선형공간을 WL(c)로 정의하면, 보조정리 1을 통해 구할 수 있다. 보조 정리 1에서 〈 〉 표기는 선형생성(linear span)을 의미한다.
보조정리 1[2]. WL(c) = 〈Li(c), i ≥ 0〉
또한, 라운드 키 간의 차분 중 알려진 것들의 집합을 D로 정의하고, D를 포함한 최소 선형공간인 WL(D)는 다음과 같이 정의한다.
\(W_{L}(D):=\sum_{c \in D}\left\langle L^{i}(c), i \geq 0\right\rangle=\sum_{c \in D} W_{L}(c)\)
블록암호가 비선형 불변 공격에 저항성을 갖는다는 것은 비선형 불변 g가 상수함수인 0, 1로만 존재 할 경우이다. 비선형 불변 공격에 대한 저항성은 WL(D)의 차원을 통해 입증할 수 있다.
정리 2[2,7]. 불함수 g와 LS(g)는 다음의 필요충 분조건을 갖는다.
\(\operatorname{dim} L S(g) \geq d \Leftrightarrow \operatorname{deg}(g) \leq\left\{\begin{array}{l} n-d \text { if } d \neq n \\ 1 \quad \text { if } d=n \end{array}\right.\)
보조정리 2[2]. WL(D) ⊆ LS(g)
정리 2와 보조정리 2를 통해 dim WL(D) = n일 경우, 비선형 불변 g는 선형함수 또는 상수함수이다. 비선형계층 S에서 비선형 불변 g가 선형함수일 경우 에는 S-Layer에서 확률이 1인 선형 근사식이 존재한다. 하지만 S-Layer에서 확률이 1인 선형 근사식 이 존재하는 S-box를 사용하지 않으므로 WL(D)의 차원이 블록 크기와 같을 때, 해당 블록암호는 비선형 불변 공격에 저항성을 갖는다.
2.4 비선형 불변 공격의 저항성과 라운드 키 간의 차분 과의 관계
비선형 불변 공격의 저항성을 WL(D)의 차원을 통해 보일 수 있고, 선형계층 L이 주어진 경우 WL(D)의 차원이 블록 크기와 같게 되는 라운드 키 간의 차분의 최소 개수가 정해진다. 이는 선형계층 L에 대한 Rational Canonical Form의 불변 성분의 개수와 같다[2,3]. Fig. 2.는 선형계층 L에 대한 Rational Canonical Form을 나타내며, 이 때 다항식 Qi를 L의 불변 성분(invariant factors)이라 부른다. 또한, Qi = mL(x), Q1•Q2• ⋯ • Qr = XL(x), Qr|Qr-1| ⋯ | Q1이 성립한다.
Fig. 2. Linear Layer L’s Rational Canonical Form
정리 3[2]. Q1, ⋯, Qr이 선형계층 L의 불변 성분이고 t ≤ r이면,
\(\max _{c_{1} \ldots, c_{t}} \operatorname{dim} W_{L}\left(c_{1}, \cdots, c_{t}\right)=\sum_{i=1}^{t} \operatorname{deg} Q_{i}\)
정리 3에 의해 다음과 같은 따름정리를 얻는다.
따름정리 1. 라운드 키 간의 차분의 종류가 한가지여도 dim WL(c1) = n이 성립하려면 선형계층 L의 최소다항식과 특성다항식이 같아야 한다. 즉, 선형계층 L의 불변 성분이 하나인 것과 \(\chi_{L}(x)=m_{L}(x)\)은 동치이다.
III. 최적의 비트 순열의 형태와 개수 도출
본 장에서는 선형계층 중 최적의 비트 순열의 형태와 개수를 도출한다. 최적의 비트 순열 \(\pi\)는 \(\chi_{P_{\pi}}(x)=m_{P_{\pi}}(x)\)가 성립하는 비트 순열을 뜻한다. 최적의 비트 순열을 사용하면, 라운드 키 간의 차분의 종류가 한가지여도 비선형 불변 공격에 저항성을 갖는다.
정리 4[3]. 행렬 A, B에 대해 A∼B이면 \(\chi_{A}(x)=\chi_{B}(x), m_{A}(x)=m_{B}(x)\)이다.
정리 5. 모든 \(P_{\pi_{i}}\)에 대해, \(\pi_i\)를 구성하는 사이클의 개수와 각 사이클 내 위수가 같으면서 순서가 정렬된 \(P_{\pi_{j}}\left(=P^{-1} P_{\pi_{i}} P\right)\)로 변환하는 행렬 P가 존재하고 \(P_{\pi_{i}} \sim P_{\pi_{j}}\)이다.
증명. 선형대수학에서의 기저 변환(basis change) 을 통해 자명하게 보일 수 있다. □
예시. 주어진 비트 순열(\(\pi_1 \))에 대해 사이클의 순서가 정렬된 비트 순열(\(\pi_2 \))로 변환하는 행렬 P는 아래와 같다. 이는 4를 2로, 2를 4로 바꿔주면 된다.
\(\pi_{1}=\left(\begin{array}{llll} 1 & 2 & 3 & 4 & 5\\ 4 & 5 & 1 & 3 & 2 \end{array}\right) \Leftrightarrow P_{\pi_{1}}=\left[\begin{array}{lllll} 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 1 \\ 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 \end{array}\right] \Leftrightarrow(143)(25)\)
\(\pi_{2}=\left(\begin{array}{llll} 1 & 2 & 3 & 4 & 5\\ 2 & 3 & 1 & 5 & 4 \end{array}\right) \Leftrightarrow P_{\pi_{2}}=\left[\begin{array}{lllll} 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \\ 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 1 & 0 \end{array}\right] \Leftrightarrow(123)(45)\)
\(\exists P=\left[\begin{array}{lllll} 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 \end{array}\right] \text { s.t. } P_{\pi_{2}}=P^{-1} P_{\pi_{1}} P\)
정리 5에 의해 모든 비트 순열은 사이클 내 원소의 순서가 정렬된 비트 순열로 변환되고, 두 비트 순열에 대응되는 순환행렬의 닮음과 정리 4에 의해 이들의 최소다항식과 특성다항식은 각각 같다. 따라서 모든 비트 순열에 대해 두 식이 같은 비트 순열을 찾지 않고, 정렬된 비트 순열에 대해 두 식이 같은 비트 순열을 찾는 것만으로도 충분하다.
최적의 비트 순열의 형태와 개수 도출방법은 다음과 같다. 정리 4, 5에 의해 모든 비트 순열을 살펴보지 않고 정렬된 비트 순열만을 살펴봐도 충분하고, 정렬된 비트 순열은 해당 비트 순열이 하나의 사이클로 구성된 경우와 두 개 이상의 사이클로 구성된 경 우로 나눌 수 있다. 3.1절에서는 정렬된 비트 순열이 하나의 사이클로 구성된 경우 최소다항식과 특성 다항식이 같을 수 있는지를 파악하고, 3.2절에서는 정렬된 비트 순열이 두 개 이상의 사이클로 구성된 경우 두 식이 같을 수 있는지를 파악한다.
3.1 비트 순열이 하나의 사이클로 구성된 경우
보조정리 3[3]. 동반행렬 C(Qi)는 \(m_{C\left(Q_{i}\right)}(x)=\chi_{C\left(Q_{i}\right)}(x)=Q_{i}\)를 만족한다.
정리 6. 비트 순열이 하나의 사이클로 구성된 경우, 해당 순환행렬의 최소다항식과 특성다항식이 같고, 그 개수는 (n-1)!개다.
증명. 정리 5에 의해 하나의 사이클로 구성된 모든 비트 순열을 대표하는 사이클은 (12 ⋯ n)으로 표현된다. 이를 순환행렬로 표현하면 동반행렬의 특별한 형태이다.
\(\pi=\left(\begin{array}{cc} 1&2& \cdots &n \\ 2&3 &\cdots & 1 \end{array}\right) \Leftrightarrow P_{\pi}=\left[\begin{array}{cccc} 0 & 1 & & & \\ & 0 & 1 & & \\ && \ddots & \ddots & \\ && & 0 & 1 \\ 1 & & && 0 \end{array}\right] \Leftrightarrow(12 \cdots n)\)
따라서 보조정리 3에 의해 \(m_{P_{\pi}}(x)=\chi_{P_{\bar{\pi}}}(x)=x^{n}-1\)이고, 그 개수는 원순열의 개수와 같으므로(n-1)!개다. □
3.2 비트 순열이 여러 개의 사이클로 구성된 경우
보조정리 4[3]. 블록 행렬 \(M=\left[\begin{array}{cccc} M_{1} & & & \\ & M_{2} & & \\ & & \ddots & \\ & & & M_{r} \end{array}\right]\)의 최소다항식은 각 블록인 Mi(i = q, ⋯, r)의 최소다항식들의 최소공배수와 같다.
정리 7. 비트 순열이 여러 개의 사이클로 구성된 경우, 해당 순환행렬의 최소다항식과 특성다항식은 같지 않다.
증명. 정리 5에 의해 여러 개의 사이클로 구성된 모든 비트 순열을 대표하는 사이클은 (12 ⋯ i1)(i1 + 1 ⋯ i1 +i2) ⋯ (n-ik + 1 ⋯ n)으로 표현된다. 전체 사이클에 대응되는 비트 순열을 , 각 사이클에 대응되는 비트 순열을 로 표현하면 다음과 같다.
\(\pi_{1}=\left(\begin{array}{cc} 1&2 & \cdots & i_{1} \\ 2 & 3 & \cdots & 1 \end{array}\right), \cdots, \pi_{k}=\left(\begin{array}{cc} n-i_{k}+1& \cdots & n \\ n-i_{k}+2 & \cdots & n-i_{k}+1 \end{array}\right)\)
\(\pi=\left(\begin{array}{lllll} 1 & 2 & \cdots & i_{1} & \cdots & n-i_{k}+1 & \cdots & n-1 & n \\ 2 & 3 & \cdots & 1 & \cdots & n-i_{k}+2 & \cdots & n & n-i_{k}+1 \end{array}\right)\)
이때 는 대각 성분이 동반행렬로 이루어진 블록행렬로,
\(P_{\pi}=\left[\begin{array}{cccc}
P_{\pi_{1}} & & \\
& P_{\pi_{2}} & \\
& & \ddots & \\
& & & P_{\pi_{k}}
\end{array}\right]\) (1)
이고 \(P_{\pi_{1}}, \cdots, P_{\pi_{k}}\)는 크기가 각각 i1×i1, ⋯, ik×ik이며 i1 + i2 + ⋯ +ik = n이 성립한다. 또한, \(P_{\pi_{1}}, \cdots, P_{\pi_{k}}\)의 최소다항식은 각각 \(x^{i_{1}}-1, \cdots, x^{i_{k}}-1\)이고, 보조정리 4에 의해 \(m_{P_{\pi}}(x)=\operatorname{lcm}\left(m_{P_{\pi_{1}}}(x), \cdots, m_{P_{\pi_{k}}}(x)\right)\)이다. 이때 \(P_{\pi_{1}}, \cdots, P_{\pi_{k}}\)의 최소다항식들은 공통인수로 x-1을 가지므로, \(P_{\pi}\)의 최소다항식의 차수는 n보다 낮다. 하지만 의 특성다항식의 차숫는 n이므로 \(P_{\pi}\)의 최소다항식과 특성다항식은 같지 않다. □
예시. 비트 순열이 사이클 (165)(27)(384)로 이루어진 경우, 정리 5에 의해 사이클 내 원소의 순서가 정렬된 사이클 (123)(45)(678)로 변환된다. 이는 6을 2로, 5를 3으로, 2를 4로, 7을 5로, 3을 6으로, 8을 7로, 4를 8로 바꿔주면 된다. 이때 정렬된 사이클에 대응되는 순환행렬은 아래와 같다.
\(P_{\pi}=\left[\begin{array}{ccccc} 0 & 1 & 0 & & & \\ 0 & 0 & 1 & & & \\ 1 & 0 & 0 & & & \\ & && 0 & 1 & & \\ & && 1 & 0 & & \\ & &&& & 0 & 1 & 0 \\ & &&& & 0 & 0 & 1 \\ & &&& & 1 & 0 & 0 \end{array}\right]\)
정리 6, 7에 의해 라운드 키 간의 차분의 종류가 한가지여도 비선형 불변 공격에 저항성을 갖는 비트 순열의 형태는 하나의 사이클로 구성되어야 하고, 그 개수는 (n-1)!개이다. 즉, 하나의 사이클로 구성된 비트 순열이 최적의 비트 순열이고, 해당 비트 순열을 사용할 경우 라운드 키 간의 차분의 종류가 한가지여도 비선형 불변 공격에 저항성을 갖는다. 또한, 앞선 정리들로 다음과 같은 따름정리를 얻는다
따름정리 2. 비트 순열을 구성하는 각 사이클 내 위수를 크기가 큰 순으로 정렬한 것을 a1, a2, ⋯, ak라 하자. 만약 ak|ak-1| ⋯ |a1이 성립하면, 불변 성분의 개수와 차수는 비트 순열을 구성하는 사이클의 개수 와 사이클 내 위수와 동일하다.
증명. 모든 비트 순열을 (1)과 같이 표현할 수 있고, 동반행렬의 Rational Canonical Form은 동반행렬과 같다. 또한, Rational Canonical Form은 동반행렬들의 direct sum이기 때문에, 불변 성분의 개수와 차수는 비트 순열을 구성하는 사이클의 개수 와 사이클 내 위수와 동일하다. □
따름정리 2를 통해 비트 순열의 경우, Rational Canonical Form을 통해 불변 성분을 구하지 않고도 비트 순열의 사이클을 통해 불변 성분의 개수와 차수를 파악할 수 있다.
IV. 실제 경량 블록암호에 적용
본 장에서는 Ⅲ장에서 구한 최적의 비트 순열과 기존의 경량 블록암호 중 비트 순열을 선형계층으로 갖는 PRESENT[8], GIFT[9]를 비교한다. 또한, 최적의 비트 순열을 PRESENT의 설계 논리에 따라 적용한 결과를 보인다. 즉, 하나의 사이클로 구성된 비트 순열이 PRESENT 구조에 존재하는지를 전수조사를 통해 확인한다. 마지막으로 GIFT의 S-box를 사용하면서 BOGI 설계 논리를 유지하는 모든 비트 순열의 불변 성분 분포를 보인다.
4.1 최적의 비트 순열과 PRESENT, GIFT 비교
PRESENT 비트 순열의 경우, 위수가 1인 사이클 4개, 위수가 3인 사이클 20개로 총 24개의 사이클로 구성된다. 따름정리 2를 통해 PRESENT는 24개의 불변 성분을 가지며 차수가 1인 불변 성분 4개, 차수가 3인 불변 성분 20개를 갖는 것을 알 수 있다. PRESENT 비트 순열에서 도출한 불변 성분 은 다음과 같다.
\(\begin{array}{l} Q_{1}(X)=\cdots=Q_{20}(X)=(X+1)\left(X^{2}+X+1\right) \\ Q_{21}(X)=\cdots=Q_{24}(X)=X+1 \end{array}\)
이는 정리 3에 의해 설계 관점에서 최소 24종류의 라운드 키 간의 차분으로 비선형 불변 공격에 저항성 을 보일 수 있음을 뜻한다.
GIFT 비트 순열의 경우, 위수가 1인 사이클 4개, 위수가 2인 사이클 2개, 위수가 4인 사이클 14개로 총 20개의 사이클로 구성된다. 이를 통해 GIFT는 20개의 불변 성분을 가지며 차수가 1인 불변 성분 4개, 차수가 2인 불변 성분 2개, 차수가 4인 불변 성분 14개를 갖는 것을 알 수 있다. GIFT 비트 순열에서 도출한 불변 성분은 다음과 같다.
\(\begin{array}{l} Q_{1}(X)=\cdots=Q_{14}(X)=(X+1)^{4} \\ Q_{15}(X)=Q_{16}(X)=(X+1)^{2} \\ Q_{17}(X)=\cdots=Q_{20}(X)=X+1 \end{array}\)
이는 설계 관점에서 최소 20종류의 라운드 키 간의 차분으로 비선형 불변 공격에 저항성을 보일 수 있음을 뜻한다.
Ⅲ장에서 구한 최적의 비트 순열의 형태는 하나의 사이클로 구성되므로 1개의 불변 성분을 갖는다. 최적의 비트 순열에서 도출한 불변 성분은 다음과 같다.
\(Q_{1}(X)=(X+1)^{64}\)
이는 설계 관점에서 라운드 키 간의 차분의 종류가 한가지여도 비선형 불변 공격에 저항성을 보일 수 있음을 뜻한다.
최적의 비트 순열과 PRESENT, GIFT 선형계층의 불변 성분 개수를 정리하면 Tabl 1.과 같다.
Table 1. Comparison table of Optimal L-Layer, PRESENT L-Layer and GIFT L-Layer
Fig. 3.은 라운드 키 간의 차분의 개수에 따른 WL(c1, ⋯, ct)의 최대 차원을 나타낸 그래프이다. WL(c1, ⋯, ct)의 최대 차원은 선형계층의 불변 성분들의 차수만큼 증가한다. 최적의 비트 순열의 경우 라운드 키 간의 차분의 종류가 한가지여도 WL(c1)의 최대 차원이 블록 크기인 64와 같고, PRESENT, GIFT의 경우 각각 최소 24종류, 20종류의 라운드 키 간의 차분으로 WL(c1, ⋯, c24), WL(c1, ⋯, c20)의 최대 차원이 블록 크기인 64와 같다.
4.2 최적의 비트 순열 적용 : PRESENT
PRESENT는 16비트 순열로부터 설계 논리에 맞게 확장한 64비트 순열을 사용한다. Fig. 4.와 같이 16개의 S-box를 4개씩 나눈 뒤 이를 각각 그룹이라 지칭하고, 설계 논리에 따라 비트 순열을 확장한다. PRESENT의 설계 논리를 살펴보면 다음과 같다.
Fig. 3. For Optimal L- Layer, PRESENT L- Layer and GIFT L- Layer, this figure shows the highest possible dimension of WL(c1, ⋯, ct) for t values c1, ⋯, ct (see Theorem 3)
1. S-box의 입력 비트는 동일한 그룹의 4개의 서로 다른 S-box로부터 선택된다.
2. 한 그룹의 4개의 S-box에 대한 입력 비트는 16 개의 서로 다른 S-box로부터 선택된다.
3. 특정 S-box에 대한 4개의 출력 비트는 다음 라운드에서 각각 다른 그룹의 4개의 S-box의 입력 비트로 보낸다.
4. 다른 그룹에 속하는 S-box의 출력 비트는 서로 다른 S-box의 입력 비트로 보낸다.
본 논문에서는 동일한 설계 논리를 갖는 비트 순열을 탐색한 결과, 하나의 사이클로 구성된 비트 순열이 존재하지 않음을 전수조사를 통해 확인하였다. 즉, PRESENT와 동일한 설계 논리를 갖는 암호의 경우 비선형 불변 공격에 저항성을 가지려면 적어도 두 종류의 라운드 키 간의 차분이 필요하다.
PRESENT의 설계 논리를 따르며, 두 종류의 라운드 키 간의 차분을 필요로 하는 비트 순열로 변경한 PRESENT를 Var-PRESENT라 표기한다. Var-PRESENT에 적용한 비트 순열을 대표적으로 3가지만 나타내면 Fig. 5.와 같다. PRESENT 비트 순열은 24개의 사이클로 구성되는 반면 Var-PRESNET 비트 순열은 2개의 사이클로 구성된다.
Fig. 5. Bit permutation applied to Var-PRESENT, bit i is moved to bit position P(i)
Fig. 6.은 PRESENT와 Var-PRESENT의 차분 공격에 대한 저항성 비교결과이다. 차분 공격에 대한 저항성은 차분 경로의 최대 확률이 2-64보다 작아지는 라운드를 측정한 결과이다. PRESENT의 경우, 차분 공격과 비선형 불변 공격에 저항성을 갖 기 위해서는 각각 최소 15라운드와 최소 24종류의 라운드 키 간의 차분이 필요하다. Var-PRESENT 의 경우, 차분 공격과 비선형 불변 공격에 저항성을 갖기 위해서는 각각 최소 13라운드와 최소 2종류의 라운드 키 간의 차분이 필요하다. 이에 대한 정리는 Tabl 2.와 같다.
Fig. 6. Best differential trail’s probabilities of PRESENT and Var-PRESENT
Table 2. Comparison table between PRESENT and Var-PRESENT
Var-PRESENT를 탐색하여 차분 공격과 비선형 불변 공격에 대한 저항성을 확인한 결과, PRESENT보다 적은 라운드와 적은 라운드 키 간의 차분의 종류를 통해 공격에 저항성을 보일 수 있음을 확인하였다.
4.3 BOGI
경량 블록암호의 설계 논리 중 하나인 BOGI는 GIFT에서 처음 소개되었다[9]. BOGI는 비트 순열을 선형계층으로 갖는 경우에 적용할 수 있는 설계 논리로, S-box의 출력 차분의 활성 비트 수가 1개일 경우(Bad-Output), 비트 순열을 통과 후 다음 S-box의 출력 차분의 활성 비트 수가 2개 이상이 나오는 입력 차분(Good-Input)을 만드는 방법이다. 따라서 S-box의 브랜치 넘버가 2임에도 1비트에서 1비트로 계속 이어지는 차분, 선형 특성을 만들 수 없게 된다. BOGI 설계 논리의 자세한 내용은 [9]를 참고하길 권장한다.
BOGI 설계 논리를 만족하는 함수 를 설계하는 방법은 다음과 같다. 이때 GI, GO, BI, BO는 각각 Good Input, Good Output, Bad Input, Bad Output을 의미하며, 1-1비트 DDT, LAT에서 GI는 행을 기준으로 원소가 모두 0인 것을 말하고, BI는 적어도 하나는 0이 아닌 것을 의미한다. 마찬가지로 GO와 BO는 열을 기준으로 위와 같은 조건을 적용한 것이다. 먼저 \(\pi_{a}: B O \rightarrow G I\)를 정의하면 \(|B O| \leq|G I|\)이므로 단사함수이다. 이때 \(\pi_a\)는 “Bad Output must go to Good Input” 보장한다. 같은 논리로 \(\pi_{b}: G O \rightarrow \pi_{a}(B O)^{C}\)를 정의하면 단사함수이다. \(\pi_a\)와 \(\pi_b\)를 통합한 \(\pi: B O \cup G O \rightarrow B I \cup G I\)를 e ∊ BO이면 \(\pi(e)=\pi_{a}(e)\), e ∊ GO이면 \(\pi(e)=\pi_{b}(e)\)로 정의하면 \(\pi\)는 BOGI 기법을 만족한다. GIFT의 경우, 1-1비트 DDT, LAT는 Tabl 3., Tabl 4.와 같고, \(\pi_{a}:\{2,3\} \rightarrow\{2,3\}, \pi_{b}:\{0,1\} \rightarrow\{0,1\}\)이며 이들을 통합한 \(\pi\)는 다음과 같다.
• \(\pi(0)=0, \pi(1)=1, \pi(2)=2, \pi(3)=3\)
Table 3. GIFT 1-1 bit DDT
Table 4. GIFT 1-1 bit LAT
4.4 최적의 비트 순열 적용 : GIFT
GIFT는 PRESENT와는 달리 BOGI를 활용하여 비트 순열을 구성한다. GIFT의 S-box를 사용하면서 BOGI 설계 논리를 만족하는 함수가 총 4개 존재하고, 이를 각각 라 표기하면 다음과 같다.
• \(\pi_{1}(0)=0, \pi_{1}(1)=1, \pi_{1}(2)=2, \pi_{1}(3)=3\)
• \(\pi_{2}(0)=0, \pi_{2}(1)=1, \pi_{2}(2)=3, \pi_{2}(3)=2\)
• \(\pi_{3}(0)=1, \pi_{3}(1)=0, \pi_{3}(2)=2, \pi_{3}(3)=3\)
• \(\pi_{4}(0)=1, \pi_{4}(1)=0, \pi_{4}(2)=3, \pi_{4}(3)=2\)
또한, i번째 라운드의 S-box를 \(S b_{0}^{i}, \cdots, S_{15}^{i}\)로 표기하고 이들을 2개의 그룹인 몫(Qx)과 나머지(Rx) 그룹으로 나누면 다음과 같다.
• \(Q x=\left\{S b_{4 x}, S b_{4 x+1}, S b_{4 x+2}, S b_{4 x+3}\right\}\)
• \(R x=\left\{S b_{x}, S b_{4+x}, S b_{8+x}, S b_{12+x}\right\}\), Where 0 ≤ x ≤ 3
이때 Qxi에서 Rxi+1로 가는 BOGI 비트 순열을 표현하면 Tabl 5.와 같고, Table 5.에서 를 으로 사용할 경우 GIFT의 16비트 순열로 Fig. 8.과 같다. 또한, GIFT의 64비트 순열은 Fig. 7.과 같이 표현된다. 이때 BOGI Bit-Permutation은 Fig. 8.의 16비트 순열이다.
Table 5. BOGI bit-permutation mapping from Qxi to Rxi+1
Fig. 7. GIFT 64-bit permutation
Fig. 8. Group mapping from Q0 to R0 in GIFT
BOGI 설계 논리를 유지하는 비트 순열의 개수는 각 \(\pi\)함수마다 크기 4의 라틴 방진 개수인 576개다. 이는 Tabl 5.의 원소들이 각 행과 열에 모두 중복되지 않는 경우의 수이다. 이를 통해 GIFT의 S-box를 사용하면서 BOGI 설계 논리를 유지하는 모든 비트 순열의 개수는 2304개임을 알 수 있다. 또한, 이들의 불변 성분의 분포를 살펴보면 Tabl 6.과 같다. Tabl 6.을 통해 GIFT 구조 블록암호 의 경우, 불변 성분 개수의 최솟값이 8임을 알 수 있다. 이는 BOGI 설계 논리를 만족하는 함수인 \(\pi\)를 \(\pi_{4}\)로 사용할 경우, 8개의 불변 성분을 갖는 비트 순열이 288개가 있음을 뜻한다. 또한, 변형된 GIFT 구조 블록암호는 비선형 불변 공격에 저항성 을 갖기 위해 적어도 8종류의 라운드 키 간의 차분이 필요함을 알 수 있다.
Table 6. Distribution of number of bit permutation
V. 결론
본 논문에서는 경량 블록암호의 선형계층이 비트순열일 경우, 설계자 관점에서 라운드 키 간의 차분의 종류가 한가지여도 비선형 불변 공격에 저항성을 갖는 비트 순열의 형태와 개수를 도출하였다. 그리고 비트 순열의 경우, 불변 성분을 구하지 않고도 비트순열을 구성하는 사이클의 개수와 위수를 통해 비선형 불변 공격에 대한 저항성을 측정할 수 있음을 보였다. 또한, PRESENT 구조 블록암호의 경우 비선형 불변 공격에 저항성을 가지려면 적어도 두 종류의 라운드 키 간의 차분이 필요함을 전수조사를 통해 확인하고, 두 종류의 라운드 키 간의 차분을 필요로 하는 비트 순열로 변경하여 탐색한 결과 PRESENT보다 적은 라운드와 적은 라운드 키 간의 차분의 종류를 이용하여 차분 공격과 비선형 불변 공격에 저항성을 보일 수 있었다. 마지막으로 GIFT의 S-box를 사용하면서 BOGI 설계 논리를 유지하는 모든 비트순열의 불변 성분 분포를 통해, 변형된 GIFT 구조블록암호는 비선형 불변 공격에 저항성을 갖기 위해 적어도 8종류의 라운드 키 간의 차분이 필요함을 보였다.
향후에는 GIFT 구조 블록암호에서 BOGI 설계논리를 유지하는 모든 비트 순열에 대한 차분 공격, 선형 공격의 저항성을 연구할 수 있을 것이다. 또한, 일반적인 선형계층에서 비선형 불변 공격에 저항성을 갖는 최적의 선형계층의 형태와 개수의 도출 방안을 연구할 수 있을 것이다.
* 본 연구는 고려대 암호기술 특화연구센터(UD170109ED)를 통한 방위사업청과 국방과학연구소의 연구비 지원으로 수행되었습니다.
* 본 논문은 2019년도 동계 학술대회에 발표한 우수논문을 개선 및 확장한 것임
참고문헌
- TODO, Yosuke; LEANDER, Gregor; SASAKI, Yu. Nonlinear invariant attack. In: International Conference on the Theory and Application of Cryptology and Information Security. Springer, Berlin, Heidelberg, 2016. p. 3-33.
- BEIERLE, Christof, et al. Proving resistance against invariant attacks: How to choose the round constants. In: Annual International Cryptology Conference. Springer, Cham, 2017. p. 647-678.
- DUMMIT, David Steven; FOOTE, Richard M. Abstract algebra. Hoboken: Wiley, 2004.
- WEI, Yongzhuang, et al. Generalized nonlinear invariant attack and a new design criterion for round constants. IACR Transactions on Symmetric Cryptology, 2018, 62-79.
- LEANDER, Gregor, et al. A cryptanalysis of PRINTcipher: the invariant subspace attack. In: Annual Cryptology Conference. Springer, Berlin, Heidelberg, 2011. p. 206-221.
- BEYNE, Tim. Block cipher invariants as eigenvectors of correlation matrices. Journal of Cryptology, 2020, 1-28.
- CARLET, Claude; CRAMA, Yves; HAMMER, Peter L. Boolean functions for cryptography and error correcting codes. Boolean models and methods in mathematics, computer science, and engineering, 2010, 2: 257-397.
- BOGDANOV, Andrey, et al. PRESENT: An ultra-lightweight block cipher. In: International Workshop on Cryptographic Hardware and Embedded Systems. Springer, Berlin, Heidelberg, 2007. p. 450-466.
- BANIK, Subhadeep, et al. GIFT: a small present. In: International Conference on Cryptographic Hardware and Embedded Systems. Springer, Cham, 2017. p. 321-345.
- BIHAM, Eli; SHAMIR, Adi. Differential cryptanalysis of DES-like cryptosystems. Journal of CRYPTOLOGY, 1991, 4.1: 3-72. https://doi.org/10.1007/BF00630563
- MATSUI, Mitsuru. Linear cryptanalysis method for DES cipher. In: Workshop on the Theory and Application of Cryptographic Techniques. Springer, Berlin, Heidelberg, 1993. p. 386-397.