I. 서론
코로나19의 영향으로 사람들은 주거공간에 머무는 시간이 늘어나고 편리함과 건강, 생활필수품의 운송 방법에도 많은 관심을 두게 되었다. 이로 인해 스마트 가전제품 등을 활용한 스마트홈이 발달하고, PC와 스마트폰 같은 범용적 디지털기기 외에도 웨어러블이 가능한 의료 IoT, 운송 전용 무인 드론 등과 같이 기능과 리소스가 제한적인 IoT 기기들의 사용량이 늘어나고 있다. 사용자에게 밀접한 기기일수록 민감한 개인정보를 다루는데, 개인정보의 악용을 막기 위해서는 경량 보안요소를 반드시 내장해야 한다. 경량화되지 않는 보안요소의 탑재는 성능저하를 만들거나 급기야는 기기의 작동을 멈출 수 있다. 이러한 문제를 해결하기 위하여 경량암호의 개발은 필수적이다. 국제적인 지지를 받고 있으며 미국 보안표준을 다루는 NIST에서는 경량암호표준개발을 위한 Lightweight Cryptography (LWC) 프로젝트가 진행 중이며, 2021년 3월에 final round 후보들이 발표되었다[3, 4].
S-box는 암호 설계에 필수적이며 중요한 요소이다. 중요성에 대한 예로, LWC 프로젝트에서 final round로 발표된 암호의 절반 이상이 S-box를 사용한다. S-box를 사용하는 암호의 암호학적 안전성은 S-box에 크게 기인한다. 특히, 암호분석법 중 차분분석과 선형분석에 사용되는 경로는 각각 S-box의 DDT(differential distribution table)와 LAT(linear approximation table)에 많은 영향을 받는다. 경로생성에는 각 표의 가장 큰 값(혹은 가장 큰 절댓값)을 주로 사용하며, 이는 각각 차분균일성(Differential uniformity)과 선형성(linearity)으로 불린다. S-box는 주로 연접해서 사용되는 경우가 많으므로 S-box의 bijective 성질은 활용 면을 극대화한다.
논리연산(AND, XOR 등)으로 생성되는 경량 S-box는 확장구조 혹은 같은 연산을 반복하여 생성하거나, 연산자를 휴리스틱 알고리즘을 통해 한 개씩 추가하여 생성하는 방법이 있다. 확장구조나 연산을 반복하여 생성하는 방법은 큰 크기의 S-box 생성이 쉬우나, 안전성의 한계가 존재한다[5]. 휴리스틱 알고리즘을 사용하는 방법은 큰 크기의 S-box 생성이 어려우나, 안전성과 효율성의 균형에 대한 섬세한 작업이 가능하다. 2021년 이전까지 큰 크기의 S-box는 휴리스틱 생성법이 없었으나, 2021년 김기윤 외 4인은 휴리스틱 방법에 강화학습을 도입해 MISTY 확장구조로 생성한 8-bit S-box와 같은 차분 균일성과 선형성을 갖는 8-bit S-box 생성에 성공했다[2]. 2022년 전용진 외 4인은 비록 bijective는 아니지만, 같은 선형성을 가지며 비선형연산자를 1개줄이고 절반의 차분 균일성를 갖는 8-bit S-box를 생성하는 휴리스틱 알고리즘을 제안했다. [1]. 해당 논문에서는 제안한 알고리즘으로 각 비선형연산자 개수에 대한 차분 균일성과 선형성의 하한도 제안했다.
[1]의 알고리즘은 AND 연산자를 한 개씩 추가하면서 S-box를 생성하는데, AND 연산자를 추가하기 전에 차분 균일성을 계산하여 원하는 기준에 도달할 수 없는 S-box를 사전에 제거하는 방식을 사용한다. 이는 선형분석관점에서의 안전성은 S-box 생성이 완료된 후 확인할 수 있다는 단점이 있다. 본 논문에서는 이를 보완하여 선형분석관점에서 S-box를 사전에 제거할 방법을 추가하고, 차분분석관점에서도 조건을 추가하여 더 많은 S-box를 제거하는 알고리즘을 제안한다.
본 논문은 2장에서는 S-box와 동치류, A-box 등 논리 전개에 필요한 사전지식을 소개한다. 3장에서는 향상된 경량 S-box 조사방법들을 소개하며, 4장에서는 알고리즘을 사용하여 실제로 S-box를 조사했을 때의 결과를 소개한다. 이후, 5장에서 결론을 짓는다.
II. 사전준비
2.1 S-box의 암호학적 성질
(n,m)-bit S-box는 다변수 부울함수S : {0,1}n→{0,1}m로 정의된다. 차분분석에 대한 S-box의 안전성에 대한 대표적인 지표로는 DDT와 차분 균일성 δ가 있다. DDT는 각 입출력차분쌍의 발생분포를 나타내는 표이며, 차분 균일성은 DDT에서 0 입출력차분을 제외할 때 가장 큰 값을 말한다. 이때의 0은 0을 연접한 적당한 비트열 0|| ⋯ ||0을 뜻한다. 본 논문에서는 가독성의 이유로 숫자 0과 영비트열을 모두 0으로 표기한다. 여기서 Δa는 n-bit 이고, Δb는 m-bit이다.
DDTs(Δa,Δb)
= #{x∈{0,1}n :S (x)⊕S(x⊕Δa) = Δb},
δ(S) = maxΔa(≠0),ΔbDDTS(Δa,Δb).
LAT와 선형성 λ는 선형분석에 대한 S-box의 안전성 지표이다. LAT는 각 입출력마스킹에 대한 선형방정식이 성립할 경우의 수의 편차를 말하며, 선형성은 LAT에서 0 입출력마스킹을 제외할 때 가장 큰 편차의 절댓값을 말한다.
LATs(⋀a,⋀b)
= #{x∈{0,1}n : x ⋅ ⋀a⊕S(x) ⋅ ⋀b}-2n-1
λ(S) =max⋀a,⋀b(≠0)|LATS(⋀a,⋀b)|.
n = m인 (n,m)-bit S-box는 n-bit S-box라고 작성한다. 만약 n-bit S-box S의 치역이 정의역과 같다면 S를 bijective라 하고, bijective가 아니면 non-bijective라고 한다. 또한, bijective 성질은 다음과 같은 필요충분조건이 존재한다.
• S는 bijective이다.
• 0이 아닌 모든 n-bit 입력차분 Δa에 대해 DDTS(Δa,0) = 0이다.
• 0이 아닌 모든 n-bit 출력마스킹 ⋀b에 대해 LATS(0, ⋀b) = 0이다.
2.2 동치류에 대한 불변성질
차분 균일성과 선형성은 선형동치류(linear equivalent class)와 확장선형동치류(extended linear equivalent class)에 대해 보존된다. 선형동치와 확장선형동치의 정의는 다음과 같다.
정의 1. 두 다변수 부울함수 F,G : {0,1}n→{0,1}m 에 대해, 두 선형순열 A : {0,1}n→{0,1}n과 B : {0,1}m→{0,1}m가 F(x) = (B ∘ G ∘ A)(x)를 만족한다면 F와 G는 서로 선형동치라고 한다. 또한, 어떤 선형함수 C : {0,1}n→{0,1}m에 대해
F(x) = (B ∘ G ∘ A)(x)⊕C(x)
를 만족하면 F와 G는 서로 확장선형동치라고 한다.
동치의 변환은 각 동치에 해당하는 식으로 변환하는 것을 말한다. 예를 들어, 다변수 부울함수 G를 F(x) = (B ∘ G ∘ A)(x)⊕C(x)꼴로 변환하는 것을 확장선형변환이라고 한다. 확장선형변환에 대해 DDT와 LAT는 아래와 같이 변형된다. 모든 선형순열은 행렬표현으로 유일하게 표현할 수 있는데, 아래첨자로 쓰인 BT 는 선형순열 B의 행렬표현과 전치인 행렬표현을 갖는 선형순열을 뜻하며, A-T 는 선형순열 A-1 의 행렬표현과 전치인 행렬표현을 갖는 선형순열을 뜻한다.
DDTG(Δa,Δb) = DDTF(A(Δa), B-1(Δb)⊕C(Δa))
LATG(⋀a,⋀b) = LATF(A-T(⋀a⊕CT(⋀b)),BT(⋀b))
위의 식을 통해 확장선형변환에서는 차분 균일성과 선형성이 보존된다는 것은 쉽게 알 수 있다. C를 0만 출력하는 상수함수로 취급하면 단순 선형변환이되며, 마찬가지로 차분 균일성과 선형성이 보존된다. (δG = δF, λG = λF.) Bijective 성질은 선형변환에서는 보존되나 확장선형변환에서는 보존되지 않는다.
2.3 S-box와 A-box의 관계성
임의의 (n,m)-bit S-box는 S(0) = 0인 S와 m-bit 벡터 v를 XOR하여 만들어진다. S(0) = 0를 만족하는 S는 XOR 연산자와 AND 연산자만으로도 구현할 수 있다[6]. 이때, 모든 AND 연산자의 출력을 순서대로 연접한 함수를 A-box라고 정의한다[1]. 예를 들어, k개의 AND 연산자를 사용했다면 이때의 A-box는 입력 n-bit와 출력 k-bit를 갖는다. S의 암호학적 안전성은 비선형연산자인 AND 연산에 크게 기인하므로 A-box는 S-box의 안전성을 좌우한다.
AND 연산자는 2-bit를 입력받아 1-bit 출력을 하는 연산이다. S-box 구현 시 AND 연산자의 2-bit 입력값은 전체 S-box의 입력값 n-bit와 이전 AND 연산자 출력값들의 선형결합으로 이루어진다. 즉, S-box의 입력값을 x, AND 연산자 출력값을 처음부터 순서대로 y0,y1,⋯ 라고 한다면 i번째 AND 연산자의 두 입력값은 x와 y0,y1,⋯,yi-2의 선형결합으로 이루어진다. 입력 2-bit는 각각 어떤 (n+i)-bit 벡터 b2i와 b2i+1을 통해 아래와 같은 식으로 표현할 수 있다.
b2i ⋅ (yi-2||yi-3|| ⋯ ||y0||x),
b2i+1 ⋅ (yi-2||yi-3|| ⋯ ||y0||x).
선형결합의 표현에 사용되는 벡터 b2i와 b2i+1을 파트너 벡터(partner vector)라고 하고, 파트너 벡터를 순서대로 모은 쌍 (b0,b1,⋯)을 파트너쌍 (partner tuple)이라고 한다. 파트너쌍이 정해지면 모든 AND 연산자들의 입력값이 정해지는 것이므로 A-box의 값이 정해진다. 그러므로 A-box의 수학적 정의는 파트너쌍을 사용하여 다음과 같이 연역적으로 정의된다.
정의 2. (n,k)-bit S-box SA의 입력과 출력을 x = (xn-1,⋯,x0)∈{0,1}, y = (yk-1,⋯,y0 )∈{0,1}라고 하자. 2k쌍인 파트너쌍 (b0,⋯,b2k-1 )가 다음의 연역적 성질을 만족하면 SA를 (n,k)-bit A-box라고 한다.
• y0 = (b0 ⋅ x)(b1 ⋅ x),
• 1 이상이고, k보다 작은 자연수 i에 대해, yi = (b2i ⋅ (yi-1|| ⋯ ||y0||x))(b2i+1 ⋅ (yi-1|| ⋯ ||y0||x)).
Multiplicative complexity (MC)는 S-box를 XOR, AND, NOT 연산자만으로 구현했을 때 필요한 AND 연산자의 최소 개수를 뜻한다. MC는 상수 XOR 및 NOT 연산에 대해 불변하므로[7] S(0) = 0을 만족하는 S-box S만을 고려한다.
임의의 S-box는 MC 개수의 AND 연산자를 사용한 구현 방법이 존재한다. A-box 출력값의 크기는 AND 연산자의 개수와 같으므로 이런 구현 방법에서의 A-box는 MC와 같은 크기의 출력값을 갖는다. A-box를 제외하면 전부 XOR 연산자로 이루어져 있으므로 행렬로 표현된다. MC가 k이고 S(0) = 0인 (n,m)-bit S-box S는 다음을 만족하는 m × k 기약다항식꼴행렬 M, m × m 가역행렬 D, m × n 행렬 C, (n,k)-bit A-box SA를 갖는다[1].
S = D ∘ (M ∘ SA⊕C).
이때, S는 M ∘ SA와 확장선형동치이며, M ∘ SA⊕C와는 선형동치인 것은 자명하게 알 수 있다. S = M ∘ SA⊕C의 DDT와 LAT는 다음과 같다.
DDTS(Δa,Δb) = DDTM ∘ SA⊕C(Δa,Δb)
= DDTM ∘ SA (Δa,Δb⊕C(Δa)),
LATS(⋀a,⋀b) = LATM ∘ SA⊕C(⋀a,⋀b)
= LATM ∘ SA(⋀a⊕CT(⋀b),⋀b).
III. 향상된 경량 S-box 생성 방법
3.1 부분 A-box와 부분 행렬
S가 D ∘ (M ∘ SA⊕C)로 표현될 때, S와 M ∘ SA는 서로 확장선형동치이므로 차분 균일성과 선형성이 같다. 그러므로 M ∘ SA가 적절한 차분 균일성과 선형성을 만족하는 SA와 M을 생성하는 것으로 S-box의 조사를 대체할 수 있다. 적절한 C까지 생성하여 M ∘ SA⊕C를 구하면 bijective 성질도 얻을 수 있다.
k개의 AND 연산자를 사용하여 S-box를 생성한다고 가정하자. A-box의 크기는 (n,k)-bit가 된다. (n,k)-bit A-box SA의 출력을 (yk-1,yk-2,⋯,y0)로 표기하자. A-box의 정의에 따라 (n,k)-bit A-box를 만들기 위해서는 첫 번째 AND 연산자로 생성되는 y0부터 순서대로 생성해야 한다. A-box 생성과정에서 나타나는 A-box들을 부분 A-box라고 부르고 다음과 같이 정의한다.
SAi : {0,1}→{0,1},
SA1 = y0,
SA2 = (y1,y0),
…,
SAk = (yk-1,yk-2, ⋯,y0) = SA.
k < m이면 [1]의 정리 5에 의해 최종 S-box의 선형성이 2n가 되므로 선형분석에 저항성을 갖지 못한다. 그러므로 k ≧ m을 가정한다. k×m 기약행사다리꼴행렬 M을 생각해보자. 제일 아래의 행을 0번째 행이라 하고, 제일 오른쪽의 열을 0번째 열이 라고 할 때, i번째 행과 j번째 열에 있는 항을 Mi,j라고 하자. 기약행사다리꼴행렬의 성질로 인해, i < j + m - k일 때 Mi,j = 0이다. 이제, M ∘ SA = (zm-1,zm-2,⋯,z0)라고 하자. zi는 다음과 같은 형태를 보인다.
zi = Mi,0y0⊕Mi,1y1⊕ ⋯ ⊕Mi,k-m-1+iyk-m-1+i· 즉, zi는 yk-m+i부터 yk-1의 값에 영향을 받지 않는다. 그러므로 부분 A-box인 SAk-m+i을 생성하고, M의 밑에서부터 i+1개의 행을 생성하면 z0부터 zi까지의 값을 구할 수 있다. M의 밑에서부터 i개의 행만 추출한 k×i 부분행렬을 Mi라 정의하자. Mm = M임은 쉽게 알 수 있다.
이제 부분 A-box SAk-m+i와 부분행렬 Mi를 합성한 Mi ∘ SAk-m+i를 Si라고 하자. Si는 (n,i)-bit S-box이며 다음과 같은 성질이 존재한다.
DDTSi(Δa,Δb) = DDTSi+1 (Δa,0||Δb) + DDTSi+1 (Δa,1||Δb),
LATSi(⋀a,⋀b) = LATSi+1 (⋀a,0||⋀b).
위의 성질을 통해 우리는 다음의 성질도 얻을 수 있다.
\(\begin{aligned}\frac{1}{2} \delta\left(S^{i}\right) \leqq \delta\left(S^{i+1}\right) \leqq \delta\left(S^{i}\right), \lambda\left(S^{i}\right) \leqq \lambda\left(S^{i+1}\right)\end{aligned}\).
이를 통해 차분 균일성 δ와 선형성 λ를 만족하는 S는 다음의 식을 만족한다.
\(\begin{aligned}\begin{array}{l}\frac{1}{2^{m-1}} \delta\left(S^{1}\right) \leqq \frac{1}{2^{m-2}} \delta\left(S^{2}\right) \leqq \cdots \leqq \delta\left(S^{m}\right)=\delta(S)=\delta \\ \lambda\left(S^{1}\right) \leqq \lambda\left(S^{2}\right) \leqq \cdots \leqq \lambda\left(S^{m}\right)=\lambda(S)=\lambda .\end{array}\end{aligned}\).
따라서 i를 증가시키면서 다음 두 식을 만족하지 않는 Mi와 SAk-m+1를 사전에 제거한다면 더 빠른 조사가 가능하다.
δ(Si) = δ(Mi ∘ SAk-m+i) ≦ 2m-iδ, (1)
λ(Si) = λ(Mi ∘ SAk-m+i) ≦ λ. (2)
A-box를 생성하는 중에는 SAi 의 파트너쌍에 2개의 파트너 벡터들을 추가하여 (즉, 1개의 AND 연산자를 추가하여) SAi+1을 생성하는데, 이를 SAi 를 SAi+1로 확장한다고 한다. 또, Mi의 위에 한 행을 추가하여 Mi +1을 생성하는 것을 Mi를 Mi+1로 확장한다고 한다.
3.2 A-box 전수조사
A-box는 작은 크기의 A-box로 큰 크기의 A-box를 생성할 수 있는 성질이 있다. 작은 크기의 A-box를 미리 전수조사하고 조사된 A-box들의 크기를 늘려 다양한 크기를 갖는 A-box로 만든다면, 더 빠른 조사를 할 수 있다. A-box의 크기를 늘리는 방법은 입력 크기를 늘리는 방법과 출력 크기를 늘리는 방법 두 가지가 있다. A-box의 출력 크기를 늘리는 방법은 전 장에서 다룬 바와 같이 AND 연산자의 개수를 늘리는 방식으로 A-box를 확장하는 것이다. 이와 반대로, 파트너 벡터에 값을 추가하여 A-box의 입력 크기를 늘리는 방법이 있다.
파트너 벡터들은 A-box 입력에 관여되는 n개의 성분과 A-box 출력에 관여되는 나머지 성분들을 갖는다. 이 성분들 사이에 j-bit 0 비트열을 주입하면 크기가 (n+j)-bit인 A-box의 파트너 벡터가 된다. 이때, y0를 생성하는 파트너 벡터 b0와 b1은 출력에 관여되는 성분이 없으므로 입력에 관여되는 성분의 MSB (Most Significant Bit)에 추가하여 0||b0과 0||b1로 생성한다. 이렇게 0 비트열을 주입하여 A-box의 입력 크기를 늘리는 것을 파트너 벡터를 확장한다고 한다.
작은 크기라도 A-box를 모두 전수조사하는 것은 어려우므로 동치류를 구한다. A-box의 동치류 중 A-box의 출력에 행렬을 연산하는 방식의 동치류 생성은 M과의 상호작용으로 S-box 생성에 장애가 될 수 있다. 그러므로 A-box의 전수조사에는 입력선형동치를 사용한다. 두 (n,k)-bit A-box SA와 SA′이어떤 선형순열 L에 대해 SA = SA′ ∘ L을 만족하면 SA와 SA′은 서로 입력선형동치라고 한다. 입력선형동치인 SA와 SA′은 다음과 같은 관계를 갖는다.
정리 1. (n,k)-bit A-box SA와 선형순열 L : {0,1}→{0,1}에 대해, SA′ = SA ∘ L를 만족하는 A-box SA′를 생각하자. 만약 SA의 파트너 쌍이(b2k-1,b2k-2,⋯,b0 )이면, 다음을 만족하는 (b2k-1′,b2k-2′,⋯,b0′)는 SA′의 파트너 쌍이 된다.
\(\begin{aligned}\left\{\begin{array}{l}b_{2 i}^{\prime}=L_{i}\left(b_{2 i}\right) \\ b_{2 i+1}^{\prime}=L_{i}\left(b_{2 i+1}\right)\end{array}\right.\\\end{aligned}\).
이때, 0 ≤ i < k 인 i에 대해서 \(\begin{aligned}L_{i}=\left(\begin{array}{ll}I_{i} & 0 \\ 0 & L\end{array}\right)\\\end{aligned}\) 이고, Ii는 i×i인 항등행렬이다[1].
정리 1의 b2i′와 b2i+1′은 다음과 같은 꼴을 갖는다.
b2i′ = Li(b2in+i-2,b2in+i-3,⋯,b2i0)
= b2in+i-2⊕b2in+i-3⊕ ⋯ ⊕b2in⊕L(b2in-1,⋯,b2i0),
b2i+1′ = Li(b2i+1n+i-2,b2i+1n+i-3,⋯,b2i+10)
= b2i+1n+i-2⊕b2i+1n+i-3⊕ ⋯ ⊕b2i+1n⊕L(b2i+1n-1,⋯,b2i+10).
n > 2k라고 가정하자. 그러면 서로 일차독립인 b0,b1,⋯,b2k-1에 대해, 다음과 같은 규칙을 갖는 L을 정할 수 있다.
L(b0n-1,⋯,b00) = ( 0,0,⋯,0,0,0,0,0,0,1) ,
L(b1n-1,⋯,b10) = ( 0,0,⋯,0,0,0,0,0,1,0) ,
L(b2n-1,⋯,b20) = ( 0,0,⋯,0,0,0,0,1,0,0) ,
L(b3n-1,⋯,b30) = ( 0,0,⋯,0,0,0,1,0,0,0) ,
… ,
L(b2k-2n-1,⋯,b2k-20) = ( 0,0,⋯,0,0,1,0,⋯,0) ,
L(b2k-1n-1,⋯,b2k-10) = ( 0,0,⋯,0,1,0,0,⋯,0) ,
이러한 L로 만들어진 A-box의 모든 파트너 벡터들은 (n-2k)-bit MSB 값이 0이 된다. 만약 b0,b1,⋯,b2k-1이 서로 일차종속이라면 더 많은 비트의 값을 0으로 만들 수 있다. 이렇게 만들어진 0 성분들을 모두 제거하고 남은 성분들만 모은 벡터들은 (2k,k)-bit A-box의 파트너 벡터가 된다. 그러므로 n > 2k이면 n의 크기에 상관없이 (n,k)-bit A-box의 입력선형동치류들은 모두 (2k,k)-bit A-box의 입력선형동치류들과 일대일 대응 관계가 된다.
만약 b2k-2와 b2k-1로 생성되는 k번째 AND 연산자의 출력값 yk-1이 A-box의 입력값 x와 이전 AND 연산자들의 출력값인 yk-2,yk-3,⋯,y0의 선형 결합으로 만들어질 수 있으면 사전에 제거한다. 이러한 출력값은 AND 연산자의 필요 없이 XOR 연산자만으로 생성할 수 있기 때문이다. 이 과정으로 인해, A-box는 A-box의 MC과 같은 개수의 AND 연산자만 사용하게 된다.
본 논문에서는 (2,1)-bit, (4,2)-bit A-box를 조사하고, 이를 통해 (4,3)-bit A-box, (5,3)-bit A-box, (6,3)-bit A-box의 전수조사를 진행했다. Table 1.은 그에 대한 표이다.
Table 1. Number of representative elements of A-box
(2,1)-bit A-box는 특별한 경우로, 부울 함수 (x1,x0)↦x0x1의 동치류만 존재한다. 아래는 (4,2)-bit A-box 대표원소들의 예시이다. 단, y0 = x0x1이다.
(x3,x2,x1,x0)↦(x0x1,x0x2),
(x3,x2,x1,x0)↦(x0x1,(x1⊕x0)x2),
(x3,x2,x1,x0)↦(x0x1,x2(x2⊕x0)),
(x3,x2,x1,x0)↦(x0x1,x2(x2⊕x1⊕x0)),
(x3,x2,x1,x0)↦(x0x1,x2x3),
(x3,x2,x1,x0)↦(x0x1,x2y0),
(x3,x2,x1,x0)↦(x0x1,x2(y0⊕x0)),
(x3,x2,x1,x0)↦(x0x1,x2(y0⊕x1⊕x0)),
(x3,x2,x1,x0)↦(x0x1,x2(y0⊕x2)),
(x3,x2,x1,x0)↦(x0x1,x2(y0⊕x2⊕x0)),
(x3,x2,x1,x0)↦(x0x1,x2(y0⊕x2⊕x1⊕x0)),
(x3,x2,x1,x0)↦(x0x1,x2(y0⊕x3)),
(x3,x2,x1,x0)↦(x0x1,(y0⊕x1⊕x0)(y0⊕x2)),
(x3,x2,x1,x0)↦(x0x1,(y0⊕x2)(y0⊕x3)).
3.3 A-box의 차분성
S-box의 차분 균일성은 A-box의 차분 균일성보다 작아질 수 없다[1]. 그러므로 행렬 Mi를 조사하기 전에 A-box SAi 의 차분 균일성을 먼저 검사한다. 식 (1)의 성질을 사용해 SAi 의 차분 균일성이 2m-iδ이하인지 검사하고 2m-iδ보다 크다면 제거한다. 만약 i가 작아서 2m-iδ ≧ 2n를 만족하면 식(1)을 항상 만족하므로 검사는 건너뛴다.
또한, SAi 와 SAi 로 확장된 SAi+1의 DDT는 다음과 같은 관계를 갖는다.
DDTSAi (Δa,Δb) = DDTSAi+1 (Δa,0||Δb) +DDTSAi+1(Δa,1||Δb) (3)
yi = (b2i ⋅ (SAi||x)) ⋅ (b2i+1 ⋅ (SAi||x))를 SAi+1의 새로운 출력값이라고 하자. 식 (3)에서 Δb의 앞에 붙는 1-bit 값은 yi의 차분을 뜻한다. SA(x)⊕SA(x⊕Δa) = Δb를 만족하는 x에 대해 yi의 Δa 차분은 다음과 같이 주어진다.
yi (x) ⊕yi(x⊕Δa)
= (b2i ⋅ SAi(x)||x)(b2i+1 ⋅ SAi(x)||x)
⊕( b2 ⋅ SAi(x⊕Δa)||(x⊕Δa))
(b2i+1 ⋅ SAi(x⊕Δa)||(x⊕Δa))
= (b2i ⋅ SAi(x)||x)(b2i+1 ⋅ SAi(x)||x)
⊕(b2i ⋅ SAi(x)||x)⊕b2i ⋅ (Δb||Δa))
(b2i+1 ⋅ SAi(x)||x)⊕b2i+1 ⋅ (Δb||Δa))
= (b2i ⋅ SAi(x)||x)(b2i+1 ⋅ Δb||Δa)
⊕(b2i ⋅ Δb||Δa)(b2i+1 ⋅ SAi(x)||x)
⊕(b2i ⋅ Δb||Δa)(b2i+1 ⋅ Δb||Δa)
위 식을 통해 다음 식을 만족하면 yi의 차분도 0이 됨을 쉽게 알 수 있다.
b2i ⋅ Δb||Δa = b2i+1 ⋅ Δb||Δa = 0.
즉, b2i와 b2i+1이 Δb||Δa와 직교한다면 yi의 Δa 차분은 0이 된다. 이러한 Δa와 Δb에 대해 DDT는 다음과 같은 식을 만족한다.
DDTSAi (Δa,Δb) = DDTSAi+1 (Δa,0||Δb). (4)
2m-i-1δ < DDTSAi (Δa,Δb)를 만족하는 Δa와 Δb에 대해, 새로 만들어진 파트너 벡터 b2i와 b2i+1가 Δb||Δa와 직교한다면 SAi+1의 차분 균일성은 2m-i-1δ보다 크므로 제거된다. 따라서 이러한 파트너 벡터들은 조사하지 않는다.
3.4 A-box의 선형성
식 (2)와 같이 최종 S-box S의 선형성이 λ이기 위해서는 Si의 선형성도 λ여야 한다. Si의 LAT는 아래와 같은 관계식이 존재한다.
LATSi (⋀a,⋀b)
= LATMi ∘ SAk-m+i(⋀a,⋀b)
=LATSAk-m+i(⋀a,(Mi)T(⋀b)).
즉, Si의 LAT는 SAk-m+i의 LAT의 일부분이다. Mi에 따라 LAT의 원하는 행을 선택할 수 있으므로 λ을 넘는 값을 모두 제거하는 Mi를 선택한다.
3.2장에서 전수조사했던 바와 같이, 어떠한 A-box를 선택하든 y0는 (x0,x1)↦x0x1과 같은 동치류에 속한다. 1 × (k-1)행렬인 M1이 다음과 같은 형태임을 상기하자.
M1 = (0 ⋯ 0 M0,k-m-1 M0,k-m-2 ⋯ M0,0)
만약 M0,k-m-1 = M0,k-m-2 =⋯= M0,1 = 0이라면, S1 = z0는 M0,0y0와 같으므로 M0,0에 따라 0이거나 y0이다. 이때의 선형성은 각각 2n이거나 2n-1이다. λ(S1) ≤ λ(S)이므로 2n-1보다 낮은 선형성을 얻을 수 없다. 그러므로 M0,k-m-1,M0,k-m-2,⋯,M0,1 중 하나는 0이 아니라는 조건을 추가한다면 2n-1보다 더 낮은 선형성을 갖는 S-box를 찾을 수 있다.
3.5 S-box 조사 알고리즘
k개의 AND 게이트를 사용하고, 차분 균일성이 δ이고, 선형성이 λ인 (n,m)-bit S-box를 구한다고 하자. Si = Mi ∘ SAk-m+i에 대해, δ(Si) ≦ 2m-iδ과 λ(Si) = λ를 만족하는 Mi와 SAk-m+i가 주어졌을 때, Mi +1과 SAk-m+i+1의 집합을 구하는 알고리즘은 다음과 같다. 작성의 편의상 r = k - m으로 치환한다.
1. A-box를 확장하기 위하여 파트너 벡터의 쌍(b2r+2i,b2r+2i+1)∈{0,1}n+r+i × {0,1}n+r+i의 집합을 생성한다.
1-1. b2r+2i ≧ b2r+2i+1이면 사전에 제거한다.
1-2. SAr+1의 마지막 파트너 벡터의 쌍(b2r+2i-2,b2r+2i-1)에 대해, b2r+2i-2 ≧ b2r+2i이고 b2r+2i-1 ≧ b2r+2i+1이면 사전에 제거한다.
1-3. 식 (4)를 만족하는 Δa와 Δb에 대해 Δb||Δa와 직교하는 파트너 벡터는 사전에 제거한다.
1-4. 새로운 파트너 벡터로 생성한 출력이 SAr+1 입출력의 선형결합으로 생성될 수 있으면 제거한다.
2. δ(SAk-m+i+1) > 2m-i +1δ를 만족하는 SAk-m+i+1를 제거한다.
3. Mi를 확장하여 λ(Mi+1 ∘ SAk-m+i+1) = λ를 만족하는 Mi+1를 만든다.
4. δ(Mi+1∘SAk-m+i+1) > 2m-i +1δ를 만족하는 (Mi+1,SAk-m+i+1)쌍을 제거한다.
5. 남은 (Mi+1,SAk-m+i+1)쌍을 저장한다.
위의 알고리즘에서 1-1번, 2번, 5번 단계만 취하면 [1]의 알고리즘이 된다. 또한, [1]의 알고리즘은 안전성 하한에 맞는 S-box만을 생성할 수 있었지만, 본 논문의 알고리즘은 그렇지 않은 S-box까지도 생성할 수 있다.
[1]의 알고리즘은 A-box가 완성되고 나서 M을 생성한다. [1]와의 알고리즘 성능 비교를 위해 Mi와 SAk-m+i를 동시에 생성하는 관점에서 본다. [1]에서는 Mi에 대한 제약이 없으므로 각 SAk-m+i에 대해 모든 경우를 생성한다. Table 2.는 k = 8, n = m = 6, δ = 2, λ = 8인 경우에 대해 Si의 개수를 비교한 것이다. 이때 SA3는 Table 1.에서 사전조사한 A-box를 사용한다. 본 논문의 방법으로 20배 이상의 검색공간 감소 효율을 보이는 것을 알 수 있다.
Table 2. The number of (SA2+i,Mi) with k = 8, n = m = 6, δ = 2, λ = 8.
본 논문에서는 다음과 같은 세 개의 경우에 대해 조사를 진행했으며, 그 결과는 4장에 작성되어 있다.
• k = 8, n = m = 6, δ = 2, λ = 8
• k = 8, n = m = 7, δ = 8, λ = 32
• k = 8, n = m = 8, δ = 16, λ = 64
IV. 각 크기별 S-box 조사
4.1 6-bit S-box
Table 3.은 기존에 발표된 6-bit S-box의 성질을 보여준다. AND 연산자의 개수가 제시되어있지 않은 항목은 ‘–’라고 표시했다.
Table 3. Existed 6-bit S-box
[1]는 7개의 AND 연산자를 사용하며 차분 균일성이 4를 만족하는 S-box를 발견했다. AND 연산자가 하나 늘었을 때, 차분 균일성은 최대 절반으로 감소하므로 8개를 사용했을 때는 2가 될 가능성이 존재한다. 6-bit S-box의 선형성은 [14]에서 제시하는 논리적인 하한에 따르면 최소 6이 될 수 있지만, 실제 발견된 S-box들의 선형성을 보아 8이 최소값임을 추정할 수 있다. 8개의 AND 연산자를 사용하는 6-bit S-box를 조사하므로 k = 8, n = m = 6, δ = 2, λ = 8이다. 조사의 단계는 다음과 같다.
• 3.2장에서 전수조사한 각 SA3 에 대해, λ(M1 ∘ SA3) = 8을 만족하는 M1을 조사하여 (SA3,M1)쌍을 저장한다.
• 각 i에 대해 랜덤하게 (SA2+i,mi)쌍을 선택하여 3.5장의 알고리즘을 반복한다.
• (옵션) M6 ∘ SA8⊕C가 bijective가 되는 C를 조사한다.
해당 조건을 만족하는 S-box는 찾지 못했다. 이 결과를 통해 6-bit S-box는 차분 균일성이 2가 되기 위해서는 최소 9개의 AND 연산자를 사용해야 한다고 추정할 수 있다.
4.2 7-bit S-box
Table 4.는 기존에 발표된 7-bit S-box의 성질을 보여준다. AND 연산자의 개수가 제시되어있지 않은 항목은 ‘–’라고 표시했으며, 본 논문의 조사를 통해 발견한 S-box를 추가하였다.
Table 4. 7-bit S-box
[1]는 7개의 AND 연산자를 사용하며 차분 균일성이 16를 만족하는 S-box를 발견했다. 그러므로 8개의 AND 연산자를 사용하여 8의 차분 균일성을 갖는 S-box를 찾는 것을 목표로 한다. 발견된 S-box들의 최소 선형성은 8이며, [14]에서 제시하는 선형성의 하한값과 같다. 조사방법은 6-bit S-box와 비슷하나 첫 번째 단계에 파트너 벡터의 확장이 추가된다. 본 장에서는 k = 8, n = m = 7, δ = 8, λ = 32의 조사단계를 묘사한다. 조사의 단계는 다음과 같다.
• 3.2장에서 전수조사한 각 (6,3)-bit A-box의 파트너 벡터를 확장하여 (7,3)-bit A-box를 만든다. 이를 SA3이라고 한다.
• 각 SA3에 대해, λ(M2 ∘ SA3) = 32을 만족하는 M2을 조사하여 (SA3,M2)쌍을 저장한다.
• 각 i에 대해 랜덤하게 (SA1+i,Mi)쌍을 선택하여 3.5장의 알고리즘을 반복한다.
• (옵션) M7 ∘ SA8⊕C가 bijective가 되는 C를 조사한다.
본 논문에서는 차분 균일성이 8이고, 선형성이 32이고 non-bijective인 7-bit S-box를 찾았다.
4.3 8-bit S-box
8-bit S-box는 블록암호 AES[18]를 비롯하여 SKINNY[19], Fantomas[20]등 수많은 블록암호에서 사용되는 크기이다. [14]에서 제시하는 선형성의 하한은 12이나, 현존하는 S-box들의 최소값은 16이다. 기존에 발표된 8-bit S-box는 Table 5.와 같다.
Table 5. Existed 8-bit S-box
[1]는 7개의 AND 연산자를 사용하여 차분 균일성이 32를 만족하는 S-box를 발견했다. 8개의 AND 연산자를 사용했을 때, 차분 균일성 16을 달성할 수 있는지는 알려지지 않았다. 이때의 선형성은 최소 64이다. k = 8, n = m = 8, δ = 16, λ = 64이며, 방법은 이전 장에서 묘사한 방법과 유사하다.
해당 조건을 만족하는 S-box는 찾지 못했다. 이를 통해, 8-bit S-box는 차분 균일성이 16이 되기 위해서는 최소 9개의 AND 연산자를 사용해야 한다고 추정할 수 있다.
V. 결론
본 논문에서는 A-box와 S-box의 관계성을 살펴보고 이를 통해 경량 S-box를 생성하는 방법을 제안한다. 임의의 S-box는 S(0) = 0을 만족하는 S-box S와 XOR 동치이며, S는 A-box SA와 기약행사다리꼴행렬 M으로 이루어진 M ∘ SA와 확장선형동치를 이룬다. 동치류의 특성상 S-box의 차분균일성과 선형성은 M ∘ SA와 같다. 그러므로 S-box의 차분 균일성은 A-box의 차분 균일성보다 작을 수 없으며, A-box의 LAT로 S-box의 선형성을 계산할 수 있다.
SA와 M ∘ SA를 다음과 같이 표기하자.
SA = (yk-1,yk-2,⋯,y0),
M ∘ SA = (zm-1,zm-2,⋯,z0 ).
A-box는 y0부터 순차적으로 생성되며, 기약행사다리꼴행렬의 특성으로 zi는 yk-m+i부터 yk-1의 값에 영향을 받지 않는다. 이로 인해 A-box의 생성과정 중 M ∘ SA의 일부를 계산할 수 있으므로 M ∘ SA의 부분적인 DDT와 LAT를 생성하여 불가능한 조건을 갖는 쌍을 사전에 제거한다. 만약 δ의 차분 균일성과 λ의 선형성을 갖는 S-box를 원한다면, zi가 생성될 때 2m-iδ의 차분 균일성과 λ의 선형성을 가져야 한다. 이 외에도 차분의 특성을 사용한 추가적인 방법으로 더 많은 쌍을 사전에 제거할 수 있다.
또한, 본 논문에서는 제안한 방법으로 8개의 AND 연산자를 사용하여 6,7,8-bit 크기의 S-box를 조사하였다. 발견된 7-bit S-box는 같은 차분 균일성을 갖는 기존에 발견된 S-box보다 적은 AND 연산자를 사용하는 것을 볼 수 있다. 반면, 선형성은 더 높으며 non-bijective 특성을 갖는다. 6,8-bit 크기의 S-box는 기존보다 더 좋은 안전성을 갖는 S-box를 찾지 못했다.
본 논문에서는 3개의 AND 연산자를 사용하는 A-box를 전수조사하고, 이것을 기반으로 8개의 AND 연산자를 사용하는 S-box를 조사하였다. 전수조사가 가능한 AND 연산자의 개수를 늘린다면, 더 많은 AND 연산자를 사용하는 S-box를 조사할 수 있을 것이다.
참고문헌
- Y. Jeon, S. Baek, H. Kim, G. Kim, and J. Kim, "Differential uniformity and linearity of S-boxes by multiplicative complexity," Cryptography and Communications (2022), Jan. 2022.
- G. Kim, H. Kim, Y. Heo, Y. Jeon, and J. Kim, "Generating Cryptographic S-Boxes Using the Reinforcement Learning," IEEE Access, vol. 9, pp. 83092-83104, Jun. 2021. https://doi.org/10.1109/ACCESS.2021.3085861
- K. McKay, L. Bassham, M. Sonmez Turan, and N. Mouha, "Report on light weight cryptography," NISTIR 8114, Mar. 2017.
- M. S. Turan, K. McKay, D. Chang, C. Calik, L. Bassham, J. Kang, and J. Kelsey, "Status Report on the Second Round of the NIST Lightweight Cryptography Standardization Process," NISTIR 8369, Jul. 2021.
- A. Canteaut, S. Duval, and G. Leurent, "Construction of lightweight S-boxes using Feistel and MISTY structures," SAC'15, LNSC 9566, pp. 373-393, 2015.
- P. Zajac, and M. Jokay, "Multiplicative complexity of bijective 4×4 S-boxes," Cryptography and Communications, vol. 6, pp. 255-277, May 2014. https://doi.org/10.1007/s12095-014-0100-y
- M. Turan Sonmez, and R. Peralta, "The multiplicative complexity of Boolean functions on four and five variables," LightSec'14, LNSC 8898, pp. 21-33, Mar. 2015.
- G. Leander, T. Moos, A. Moradi, and S. Rasoolzadeh, "The SPEEDY Family of Block Ciphers," Engineering an Ultra Low-Latency Cipher from Gate Level for Secure Processor Architectures, vol. 2021(4), pp. 510-545, Aug. 2021.
- H. Kim, Y. Jeon, G. Kim, J. Kim, B. Sim, D. Han, H. Seo, S. Kim, S. Hong, J. Sung, and D. Hong, "A new method for designing lightweight S-boxes with high differential and linear branch numbers, and its application," IEEE Access, vol. 9, pp. 150592-150607, Oct. 2021. https://doi.org/10.1109/ACCESS.2021.3126008
- T. Shimoyama, H. Yanami, K. Yokoyama, M. Takenaka, K. Itoh, J. Yajima, N. Torii, and H. Tanaka, "The block cipher SC2000," FSE'00, LNCS 2355, pp. 312-327, Jun. 02.
- B. Bilgin, L. De Meyer, S. Duval, I. Levi, and F. X. Standaert, "Low ANDdepth and efficient inverses: a guide on s-boxes for low-latency masking," IACR Transactions on Symmetric Cryp tology, vol. 2020(1), pp. 144-184, May 2020.
- K. A. Browning, J. F. Dillon, M. T. McQuistan, and A. J. Wolfe, "An APN permutation in dimension six," Finite Fields: theory and applications, vol. 518, pp. 33-42, 2010 https://doi.org/10.1090/conm/518/10194
- B. Bilgin, A. Bogdanov, M. Knezevic, F. Mendel, and Q. Wang, "Fides: Lightweight authenticated cipher with side-channel resistance for constrained hardware," CHES'13, pp. 142-158, Aug. 2013
- C. Carlet and C. Ding, "Nonlinearities of S-boxes," Finite fields and their applications, vol. 13(1), pp. 121-135, Jan. 2007 https://doi.org/10.1016/j.ffa.2005.07.003
- M. Aagaard, R. AlTawy, G. Gong, K. Mandal, R. Rohit, and N. Zidaric, "WAGE: an authenticated cipher," Submission to NIST Lightweight Cryptography Standardization Project, Aug. 2019.
- M. Matsui, "New block encryption algorithm MISTY," FSE'97, pp. 54-68, Jan. 1997
- J. Wallen, "Design principles of the kasumi block cipher," In Proceedings of the Helsinki University of Technology Seminar on Network Security, 2000
- J. Daemen and V. Rijmen, "The Rijndael block cipher: AES proposal," In First candidate conference (AeS1), pp. 343-348, Mar. 1999.
- C. Beierle, J. Jean, S. Kolbl, G. Leander, A. Moradi, T. Peyrin, Y. Sasaki, P. Sasdrich, and S. M. Sim, "The SKINNY family of block ciphers and its low-latency variant MANTIS," CRYPTO'16, LNSC 9815, pp. 123-153, Jul. 2016.
- V. Grosso, G. Leurent, F. X. Standaert, and K. Varici, "LS-designs: Bitslice encryption for efficient masked software implementations," FSE'14, LNSC 8540, pp. 18-37, Apr. 2015.