DOI QR코드

DOI QR Code

Calculating the Approximate Probability of Differentials for ARX-Based Cipher Using SAT Solver

SAT 솔버를 이용한 ARX 구조 암호의 디퍼렌셜 확률 근사값 계산

  • Received : 2017.09.26
  • Accepted : 2017.12.08
  • Published : 2018.02.28

Abstract

In this paper, we explain a method of appproximating the differentials probability using a SAT solver. It is possible to increase the probability by constructing the differential characteristic which already known to differentials with a SAT solver. We apply our method to SPECK32 and SPECK48. As a result, we introduced a SPECK32's 10-round differentials with a probability of$2^{-30.39}$, and SPECK48's 12-round differentials with probability of $2^{-46.8}$. Both differentials are new and longer round and higher probability than previous ones. Using the differentials presented in this paper, we improved attacks of SPECK32/64 to 15 round, SPECK48/72 to 16 round, SPECK48/96 to 17 round, which attack 1 more rounds of previous works.

본 논문에서는 SAT 솔버를 이용하여 디퍼렌셜 확률의 근사값을 구하는 방법에 대해서 설명한다. SAT 솔버를 이용해서 이미 알려진 차분특성을 디퍼렌셜로 구성하여 확률을 높일 수 있다. 본 논문에서 제안하는 방법으로 SPECK32와 SPECK48의 디퍼렌셜을 구성하였다. SPECK32는$2^{-30.39}$의 확률을 가지는 10-라운드 디퍼렌셜을 찾아냈고, SPECK48은 $2^{-46.8}$의 확률을 가지는 12-라운드 디퍼렌셜을 찾아냈다. 두 특성 모두 가장 길고 높은 확률을 가지는 새로운 디퍼렌셜이다. 본 논문에서 발견한 디퍼렌셜을 이용해서 SPECK32/64의 15 라운드 차분공격, SPECK48/72의 16 라운드 차분공격, SPECK48/96의 17 라운드 차분공격을 하여 이전 공격보다 각각 1 라운드씩 개선하였다.

Keywords

I. 서론

블록암호는 암호시스템에서 가장 많이 사용되는 암호학적 핵심요소이다. 현대 블록암호 설계는 안전성과 더불어 구현 효율성 등 여러 목적을 만족하도록 설계되고 있다. 최근 경량 환경에서 적합한 암호가 많이 필요하게 되었다. ARX 구조 암호는 경량 환경에 적합한 암호로, 혼돈(Confusion) 효과를 제공하기 위해서 법덧셈(Addition Modulo 2n)과 확산(Diffusion) 효과를 제공하기 위해서 비트 순환이동(Rotation), 배타적 논리합(eXclusiveOR, XOR)으로 이루어진 라운드 함수를 반복적으로 사용하는 경량 블록암호이다. 대표적인 ARX 구조 블록암호에는 SPECK[1]과 LEA[2]가 있다.

블록암호의 안전성 분석 방법은 매우 많으며, 이중 차분분석(Differential Cryptanalysis)[3]은 선형분석(Linear Cryptanalysis)[4]과 함께 블록암호를 분석하는 대표적인 방법이다. 차분분석은 블록 암호 E에 대해 어떤 입력 차분(두 평문의 XOR값)이 랜덤보다 더 높은 확률로 특정 출력 차분(대응되는 암호문의 XOR 값)을 발생시키는 성질(디퍼렌셜, Differentials)을 이용하는 공격법이다. 디퍼렌셜의 정확한 확률을 계산하는 것은 매우 어렵기 때문에, 대부분의 경우 모든 라운드가 독립인 것으로 가정하였을 때 가장 높은 확률을 갖는 차분 경로로 구성되는 차분특성(Differential Characteristic)을 이용한다. 차분특성은 라운드 함수의 입·출력 차분 값과 그 확률을 조사하여 구성할 수 있다. 차분특성 구성은 어렵기 때문에 복잡한 과정을 피하기 위해서 [5,6]등과 같이 자동 탐색 연구가 되었다. 최근에는 임의의 문제를 수학적으로 모델링하여 해를 찾기 위한 도구들이 자동 탐색에서 중요한 역할을 하고 있다. 두 가지 도구가 대표적으로 사용되는데 하나는 Mixed-Integer Linear Programming(MILP)기반 툴이고, 다른 하나는 SAT/SMT 기반 툴이다.

이진 충족 가능성 문제(SAT, Boolean Satisfiability Problem)는 이진변수들로 이루어진 논리식을 참이 되게 하는 해를 찾는 결정 문제이다. SMT(Satisfiability Modulo Theories)[10]는 SAT의 확장으로 선형식, 배열, 벡터 등의 입력방식을 지원한다. SMT 솔버를 이용해서 Kircanski등[7]은 부메랑 특성을 찾는 방법을 제안하였고, Song등[8]은 같은 입·출력 차분특성을 다수 구하여 확률을 높이는 방법에 대해서 제안하였다. 또한 부채널 공격[9]등 많은 연구가 진행 중이다. 최근에는 Rotational-Xor Cryptanalysis의 특성을 자동 탐색하는 연구가 진행 중이다[17,18].

본 논문에서는 SAT 솔버를 이용한 ARX 구조 암호의 디퍼렌셜 확률 근사값 계산 방법을 제안한다. 본 논문의 방법으로 일반적인 방법으로 찾을 수 없었던 SPECK32의 2-30.39의 확률을 가지는 10-라운드 디퍼렌셜을 찾아냈고, SPECK48의 2-46.8의 확률을 가지는 12-라운드 디퍼렌셜을 찾아냈다. 해당 디퍼렌셜은 기존 SPECK32와 SPECK48의 구별자(Distingusiher)와 비교해 가장 길고 높은 확률을 가지며 이를 이용해 더 긴 라운드의 차분분석이 가능하였다. 차분분석의 요약은 Table 1.과 같다. 2장에서는 SAT 솔버를 이용한 디퍼렌셜 확률의 근사값을 계산하기 위한 사전지식에 대해서 설명한다. 3장에서는 SAT 솔버를 이용한 디퍼렌셜 확률의 근사값 계산 방법에 대해서 설명한다. 4장에서는 본 논문의 방법으로 SPECK의 디퍼렌셜을 찾는 방법을 설명하고 5장에서 결론을 맺는다.

Table 1. Comparison of our differentials of SPECK32,48 with previous works.

II. 사전 지식

2.1 표기법

⊕: 배타적 논리합(eXclusive OR, XOR)

¬ : 보수(complement)

⊞: 법덧셈(modular addition)

∧: 논리곱(AND, logical conjuction)

∨: 논리합(OR, logical disjunction)

\(\ggg a(\lll a)\) : 오른쪽(왼쪽)으로 a번 비트 순환이동

a∥b: a와 b의 연접

x[i]: x의 i번째 최하위 비트

2.2 이진 충족 가능성 문제(SAT)

이진 충족 가능성 문제(Boolean Satisfiability Problem, SAT)는 이진변수로 이루어진 논리식이 주어졌을 때, 논리식이 참이 되게 하는 해가 존재하는지 찾는 결정 문제이다. SAT는 이진변수의 개수, 이진변수의 논리합(절, Clause)의 개수, 절의 논리곱으로 표현된 논리식(CNF, Conjunctive Normal Form)을 입력 받는다. 논리식이 참이 되게 하는 이진변수 값이 존재할 경우 SAT(Satisfiable)를 반환하고, 존재하지 않을 경우 UNSAT(Unsatisfiable)를 반환한다.

SAT를 이용해 문제의 해를 구하기 위해서는 문제를 이진변수를 이용해서 절의 논리곱으로 표현해야 한다. 하지만 문제를 이진변수로 이루어진 절의 논리곱으로 표현하기 어렵기 때문에 SMT가 존재한다. SMT는 SAT의 확장으로 다양한 변수의 1차 표현방식을 입력으로 허용한다.

본 논문에서는 SAT 솔버를 직접 이용하여 ARX구조 암호의 디퍼렌셜 확률 근사값을 계산하는 방법을 설명한다. 사용한 SAT 솔버는 CryptoMiniSat 5.0.1[16]을 Ubuntu 16.04를 운영체제로 하여 Intel i7-6700 @ 3.40GHz 프로세서, 16GB RAM의 데스크탑에서 실행하였다.

2.3 배경지식 및 정리

ARX 구조 암호의 법덧셈에서의 차분의 확률을 계산하기 위해서는 Lipmaa와 Moriai[11]가 제안한 두 가지 정리를 이용한다.

정리 1. 법덧셈 차분의 존재성 [11]

(α,β→γ)을 입력 차분이 α,β이고 출력 차분이 γ인 법덧셈 차분이라 할 때, 법덧셈 차분 (α,β→γ)이 0이 아닌 확률을 가질 필요 충분 조건은 아래의 조건이다.

eq(α≪1,β≪1,γ≪1)∧(α⊕β⊕γ⊕(α≪1)=0

이때 eq(x,y,z) = (¬x⊕y) ∧ (¬x⊕z)이다.

정리 2. 법덧셈 차분의 확률 [11]

법덧셈 차분 (α,β→γ)이 0이 아닌 확률을 가질 경우, 법덧셈 차분 (α,β→γ)의 확률은 \(2^{-\sum_{i=0}^{n-2} \operatorname{all}(\alpha[i], \beta[i], \gamma[i])}\)이다.

이 때, \(\operatorname{all}(a, b, c)=\left\{\begin{array}{lc} 1 & (a=b=c) \\ 0 & \text { others } \end{array}\right.\)이다.

정리1로 법덧셈 차분 (α,β→γ)이 가능한 차분만을 표현해 차분특성을 구성할 수 있다. 따라서 정리1을 이용해 가능한 차분성질로 차분특성을 구성하고, 그 확률을 정리2를 이용해 계산할 수 있다.

III. SAT 솔버를 이용한 디퍼렌셜 확률의 근사값 계산

많은 라운드의 차분 공격을 위해서는 높은 확률을 가진 긴 라운드의 차분특성이 필요하다. 차분특성의 길이는 한계가 있기 때문에 확률을 높이기 위해서는 같은 입·출력 차분 값을 가지는 디퍼렌셜의 확률을 계산할 필요가 있다. 하지만 디퍼렌셜의 확률을 계산하는 것은 어렵기 때문에 같은 입·출력 차분값을 가지는 차분특성의 확률을 더하는 것으로 디퍼렌셜 확률의 근사값을 계산할 수 있다. 본 논문에서는 입·출력 차분값이 같은 차분특성을 찾는 것은 어렵기 때문에, 같은 입·출력 차분값을 가지는 차분특성을 찾기 위해서 SAT 솔버를 이용하였다. 본 절에서는 ARX 구조 암호의 입·출력 차분값이 같은 차분특성을 찾기 위해서 ARX 구조 암호의 성질을 논리곱 형태 표현하는 방법, 확률 제약식 표현하는 방법, SAT 솔버를 이용하여 ARX 구조 암호의 디퍼렌셜 확률 근사값을 계산하는 방법에 대해서 설명한다.

3.1 ARX 구조 암호의 절의 논리곱 표현 방법

ARX 구조 암호의 특정 차분특성을 SAT 솔버를 이용하여 찾기 위해서는 ARX 구조 암호의 XOR 연산에 대한 차분성질을 절의 논리곱 형태로 표현해야 한다. ARX 구조 암호의 XOR연산에 대한 차분성질을 절의 논리곱으로 표현하기 위해서는 법덧셈, 비트순환이동, XOR 연산의 차분성질을 표현하면 된다.

법덧셈: 법덧셈 차분 (α,β→γ)의 차분성질을 표현하기 위해서는 Lipmaa와 Moriai의 정리1을 이용하여 가능한 경우만을 남기면 된다. 정리1을 비트별 조건식으로 표현하면 아래와 같다.

(¬α[i-1]⊕β[i-1])∧(¬α[i-1]⊕γ[i-1])

→¬(α[i]⊕β[i]⊕γ[i]⊕α[i-1]) i∊[0,n-2]

위 조건식을 SAGE의 convert_cnf_table()함수를 이용해서 아래와 같은 8개의 절의 논리곱 형태로 표현된다.

(α[i]∨β[i]∨γ[i]∨α[i+1]∨β[i+1]∨¬γ[i+1]Λ

(α[i]∨β[i]∨γ[i]∨α[i+1]∨¬β[i+1]∨γ[i+1]Λ

(α[i]∨β[i]∨γ[i]∨¬α[i+1]∨β[i+1]∨γ[i+1]Λ

(¬α[i]∨¬β[i]∨¬γ[i]∨α[i+1]∨β[i+1]∨γ[i+1]Λ

(α[i]∨β[i]∨γ[i]∨¬α[i+1]∨¬β[i+1]∨¬γ[i+1]Λ

(¬α[i]∨¬β[i]∨¬γ[i]∨¬α[i+1]∨¬β[i+1]∨γ[i+1]Λ

(¬α[i]∨¬β[i]∨¬γ[i]∨¬α[i+1]∨β[i+1]∨¬γ[i+1]Λ

(¬α[i]∨¬β[i]∨¬γ[i]∨α[i+1]∨¬β[i+1]∨¬γ[i+1]Λ

n비트 법덧셈을 표현하기 위해서 8(n-1)개의 절로 법덧셈의 차분성질을 표현할 수 있다.

비트 순환이동: 비트 순환이동은 XOR 연산에 대해 선형연산이므로 원래 비트 순환이동 연산으로 진행된다. 따라서 다른 연산을 표현하는 과정에서 비트를 참조할 때, 비트 순환이동에 맞게 비트를 참조하는 것으로 비트 순환이동의 차분성질을 표현할 수 있다.

XOR: XOR 차분에 대해서 XOR 연산은 선형이므로 원래 XOR 연산으로 진행된다. a⊕b⊕c=0을 절의 논리곱으로 표현하기 위해서는 22개의 절이 필요하다. 하지만 본 논문에서 사용한 SAT 솔버인 CryptoMiniSAT에서는 자주 사용되는 XOR 연산을 XOR 절(XOR Clause)로 입력을 허용한다. 따라서 a⊕b⊕c=0을 표현하기 위해서 1개의 XOR절로 표현이 가능하다.

ARX 구조 암호의 각 연산을 위와 같이 표현하는 것으로 한 라운드 차분성질을 표현한 절의 논리곱 형태로 표현이 가능하다. 따라서 라운드를 반복 구성하고 특정 입·출력 차분값에 대한 표현도 추가해서 원하는 입·출력 차분값의 차분특성을 찾는 모델을 만들 수 있다. 만든 모델을 이용해 SAT 솔버로 차분특성을 찾을 수 있다.

3.2 확률 제약식 표현 방법

3.1절의 방법으로 만든 모델을 이용해 SAT 솔버로 ARX 구조 암호의 특정 입·출력 차분값을 가지는 차분특성을 찾을 수 있다. 디퍼렌셜의 근사값 확률을 구하기 위해서는 높은 확률을 가지는 차분특성이 필요하지만 3.1절의 방법은 특정 입·출력 차분값의 차분특성만 찾을 뿐 높은 확률의 차분특성을 보장하지 못한다. 따라서 높은 확률을 가지는 차분특성을 위해 3.1절의 방법으로 만든 모델에 확률 제약식을 절의 논리곱 표현으로 추가하는 방법에 대해서 설명한다.

ARX 구조 암호는 정리2에 의해서 법덧셈의 최상위 비트를 제외한 비트에서만 차분특성의 확률이 발생한다. 또한 비트당 발생하는 확률은 20(=1)과 2-1로 -log2값을 취했을 경우 0과 1뿐이다. 이러한 사실을 바탕으로 원하는 확률의 차분특성을 찾기 위한 확률 카운터를 설정할 수 있다. 아래는 ARX구조 암호의 6비트 확률 카운터 예이다. pci와 p0는 피연산자이고 si는 결과값이고, ci-1는 pci에서 발생하는 자리올림수이다.

\(\begin{array}{cccccccc} & \curvearrowleft c_{0} & \curvearrowleft c_{1} & \curvearrowleft c_{2} & \curvearrowleft c_{3} & \curvearrowleft c_{4} \\ + & p c_{0} & p c_{1} & p c_{2} & p c_{3} & p c_{4} & p c_{5} \\ & & & & & & p_{0} \\ \hline s_{0} & s_{1} & s_{2} & s_{3} & s_{4} & s_{5} \end{array}\)

위와 같은 확률 카운터의 논리 표현은 아래와 같다.

\(\begin{aligned} s_{5} &=p c_{5} \oplus p_{0} & & c_{4}=p c_{5} \wedge p_{0} \\ s_{4} &=p c_{4} \oplus c_{4} & c_{3} &=p c_{4} \wedge c_{4} \\ s_{3} &=p c_{3} \oplus c_{3} & c_{2} &=p c_{3} \wedge c_{3} \\ s_{2} &=p c_{2} \oplus c_{2} & c_{1} &=p c_{2} \wedge c_{2} \\ s_{1} &=p c_{1} \oplus c_{1} & c_{0} &=p c_{1} \wedge c_{1} \\ s_{0} &=p c_{0} \oplus c_{0} & & \end{aligned}\)

p0는 정리2를 이용해 p0=-all(α[i],β[i],γ[i]) (i∈{0,1,…,n-2})와 같이 설정할 수 있다. 따라서 SAGE의 convert_cnf_table() 함수를 이용해서 s0는 10개의 절, 그 이외 si는 1개의 XOR 절로 표현이 가능하다. c0는 6개의 절, 그 이외의 ci는 a = b∧c의 경우로 (a∨¬b∨¬c),(¬a∨b), (¬a∨c)로 3개의 절로 표현이 가능하다. 따라서 n-비트 확률 카운터 1개를 절의 논리곱 형태로 표현하기 위해서는 3n-1(=n+n+(n-1))개의 변수와 n-1개의 XOR 절, 3n+10(=10+6+3(n-2))개의 절로 총 4n+9개의 절이 추가로 필요하다.

3.3 디퍼렌셜 확률의 근사값 계산 방법

3.1절과 3.2절의 방법을 이용해서 ARX 구조 암호의 특정 입·출력 차분값의 특정 확률을 가지는 차분특성을 찾기 위한 모델로 표현이 가능하다. 해당 모델을 이용해 디퍼렌셜 확률의 근사값 계산이 가능하며 구하는 과정은 Algorithm1과 같다.

Algorithm1은 특정 입·출력 차분값(Δin, Δout)과 라운드(r), 확률(p), 찾는 횟수(N)을 입력받아 2-p의 확률을 가지는 r-라운드 차분특성부터 2-(p+N)의 확률을 가지는 r-라운드 차분특성을 구해서 각 차분특성의 확률을 모두 더하여 디퍼렌셜 확률의 근사값을 구한다. SAT 솔버의 입력되는 모델 M은 2-(p+i) 확률(i∈{0,1,⋯,N})의 특정 입·출력 차분값인 r-라운드 차분특성을 표현한 모델이다. SAT 솔버로 얻은 해는 p 확률을 가지는 해당 입·출력 차분값의 r-라운드 차분특성을 의미한다. 따라서 SAT 솔버로 구한 각 해는 2-(p+i)의 확률을 가지는 (\(\left(\Delta_{i n} \stackrel{r}{\rightarrow} \Delta_{o u t}\right)\)) 차분특성을 의미한다. 구한 차분특성의 확률을 더하는 것으로 해당 입·출력 차분값을 가지는 r-라운드 디퍼렌셜 확률의 근사값을 구할 수 있다.

Algorithm 1. Calculation for Differentials of Differential Characteristic

IV. SPECK에 대한 적용

본 장에서는 3장의 방법을 이용해서 ARX 구조 블록암호인 SPECK family의 디퍼렌셜과 공격에 대해서 설명한다.

4.1 SPECK Family

SPECK[1]은 NSA가 2013년에 공개한 ARX 구조 경량 블록암호이다. 파라미터 분류에 따라 10가지 종류를 가진다. 블록 크기 2n(n∈{16.24,32,48,64})이고 키 크기가 mn(m∈{2,3,4}, n에 따라 결정)인 종류를 SPECK2n/mn으로 표기한다. i번째 라운드의 입·출력값을 각각 xi,yi라 하고 라운드 키를 ki라고 할 때, i번째 라운드 함수는 아래와 같다.

\(F\left(x_{i}, y_{i}\right)=\left\{\left(x_{i} \ggg \alpha\right) \boxplus y_{i}\right\} \oplus k_{i} \|\left(y_{i} \lll \beta\right) \oplus x_{i}\)

비트 순환이동 상수인 α와 β는 파라미터는 워드의 크기가 32 비트 일 경우 α=7, β=2이고, 나머지는 α=8, β=3이다.

4.2 SPECK의 디퍼렌셜

SPECK의 디퍼렌셜 확률의 근사값을 구하기 위해서는 3장에서 설명한 방법을 이용해 SPECK을 절의 논리곱 형태의 모델로 표현해야 한다. 3.1절의 방법을 이용해 SPECK2n/mn의 한 라운드를 절의 논리곱 형태로 표현하기 위해서는 입·출력 변수 4n(=2n×2)개와 법덧셈의 8(n-1)+1개의 절과 XOR의 n개의 절이 필요하다. 또한 3.2절의 방법을 이용해 한 라운드 8-비트 확률 카운터를 절의 논리곱 형태로 표현하기 위해서는 23(n-1)개의 변수와 49n개의 절이 추가로 필요하다. 따라서 8-비트 확률 카운터의 γ-라운드를 표현하기 위해서는 총 2nr+2n+23(n-1)r+8개의 변수와 58nr-7r개의 절이 필요하다. 변수에 대한 정보는 Fig 1.과 같다.

Fig. 1. ith round variables of SPECK2n/mn

[12]에서 제안하는 비트단위 차분특성 탐색 알고리즘을 이용해서 SPECK32의 2-34의 확률을 가지는 10-라운드 차분특성 1개와 2-35의 확률을 가지는 10-라운드 차분특성 33개를 찾아냈으며 SPECK48의 2-49의 확률을 가지는 12-라운드 차분특성 6개를 찾아냈다. SPECK32의 34개의 차분특성과 SPECK48의 6개의 차분특성은 모두 구별자로서 의미는 없다. 하지만 각 차분특성을 Algorithm1을 이용해서 각각의 디퍼렌셜 확률의 근사값을 구하였고, 구별자로 의미 있는 차분특성을 찾을 수 있다. SPECK32는 2-35의 확률을 가지는 10-라운드 차분특성 \((2800,0010)\stackrel{10}{\rightarrow}(0004,0014)\)은 디퍼렌셜 확률의 근사값이 2-30.39으로 구별자로서 의미를 갖는다. SPECK32의 디퍼렌셜의 각 해는 Table 2.와 같다.

Table 2. SPECK32’s 10-round Differentials with (2800,0010)→(0004,0014)

Table 3. SPECK48’s 12-round Differentials with (080048,080800)→(840084,A00080)

SPECK48은 2-40의 확률을 가지는 12-라운드 차분특성 \((080048,080800) \stackrel{12}{\longrightarrow}(840084, \mathrm{~A} 00080)\)\((0800 \mathrm{C} 8,080800) \stackrel{12}{\longrightarrow}(840084, \mathrm{~A} 00080)\)은 디퍼렌셜 확률의 근사값이 2-46.8으로 구별자로서 의미를 갖는다. SPECK48의 한 디퍼렌셜의 각해는 Table 3.과 같다.

SPECK32의 2-35의 확률을 가지는 10-라운드 차분특성 \((2800,0010) \stackrel{10}{\longrightarrow}(0004,0014)\)의 디퍼렌셜의 확률을 5,000개의 랜덤한 키와 232개의 평문을 이용해서 실험적으로 측정해 보았다. 차분특성의 확률이 2-35이므로 차분특성을 만족하는 평문의 기댓값은 0개라 할 수 있다. 하지만 실험결과 차분특성을 만족하는 평문의 기댓값은 약 4로 나왔으며, 본 논문의 방법으로 측정한 디퍼렌셜 확률의 근사값인 2-30.39으로 차분특성이 구별자로서 이용될 수 있다는 것을 알 수 있다. 따라서 본 논문에서 찾는 SPECK32와 SPECK48의 디퍼렌셜은 [13]과 비교해서 각각 더 높은 확률, 더 긴 라운드를 가지는 새로운 구별자 역할을 한다. 해당 결과는 Table 4.와 같다.

Table 4. SPECK’s DIfferential Characteristic(D) and Differentials(Ds)

4.3 SPECK32와 SPECK48의 차분공격

[14]에서 Dinur는 guess-and-determine 방법을 이용해서 SPECK의 일반적인 키 복구 공격에 대해서 제안하였다. SPECK2n/mn의 p(≧2-2n+1)의 확률을 가지는 r-라운드 차분특성이 존재할 경우, 공격자는 해당 차분특성 앞에 한 라운드와 뒤쪽에 m-라운드를 붙여 (r+m+1)-라운드를 공격할 수 있다. 해당 공격은 2p-1의 선택 평문이 필요하고, 2p-12(m-2)n의 시간 복잡도, 222의 메모리 복잡도가 필요하다.

Table 4. SPECK’s DIfferential Characteristic(D) and Differentials(Ds)

본 논문에서 제안하는 방법으로 찾은 SPECK32와 SPECK48의 디퍼렌셜을 이용해서 각각의 더 긴 라운드 공격을 할 수 있었다. 각 공격의 요약은 Table 1.과 같다.

V. 결론

본 논문은 SAT 솔버를 이용해서 ARX 구조 암호의 디퍼렌셜 확률 근사값 계산 방법에 대해서 설명하였다. 제안하는 방법을 이용해서 SPECK에 적용하였고, SPECK32의 10-라운드 확률 2-30.39의 확률을 가지는 디퍼렌셜과 SPECK43의 12-라운드 확률 2-46.8의 확률을 가지는 디퍼렌셜을 찾아냈다. 논문에서 찾은 디퍼렌셜을 이용하여 SPECK32/64, SPECK48/72, SPECK48/96의 차분공격을 각각 1 라운드씩 개선하였다. 제안하는 방법을 이용해 다른 ARX 구조 암호의 디퍼렌셜을 찾아내 안전성 분석이 가능하다.

* 본 논문은 2017년 한국정보보호학회 하계학술대회에 발표한 우수논문을 개선 및 확장한 것임

* 이 논문은 2017년도 정부(미래창조과학부)의 재원으로 정보통신기술진흥센터의 지원을 받아 수행된 연구임(No.B0722-16-0006, (창조씨앗-2단계)암호와 물리계층보안을 결합한 IoT 네트워크 보안 기술 개발)

References

  1. Ray Beaulieu, Douglas Shors, Jason Smith. "The SIMON and SPECK lightweight block ciphers." Design Automation Conference (DAC), 2015 52nd ACM/EDAC/IEEE. IEEE, pp. 1-6, 2015.
  2. Deukjo Hong, Jung-Keun Lee, Dong-Chan Kim, Daesung Kwon, Kwon Ho Ryu, Dong-Geon Lee. "LEA: A 128-bit block cipher for fast encryption on common preocessors.", WISA 13: 14th vol. 8267 pp. 3-27, Aug, 2014.
  3. Eli Biham and Adi Shamir. "Differential cryptanalysis of DES-like cryptosystems." CRYPTO'90, Lecture Notes in Computer Science, vol. 537, pp. 2-21, August, 1991.
  4. Mitsuru Matsui. "Linear cryptoanalysis method for DES cipher.", EUROCRYPT'93, Lecture Notes in Computer Science, vol. 765, pp. 386-397, May, 1994.
  5. Alex Biryukov and Vesselin Velichkov. "Automatic search for differential trails in ARX ciphers." CTRSA 2014, Lecture Notes in Computer Science, vol. 8366, pp. 227-250, Feb, 2014.
  6. Alex Biryukov and Ivica Nikolic. "Automatic search for related-key differential characteristics in byte-oriented block ciphers: Application to AES, Camellia,", EUROCRYPT 2010, Lecture Notes in Computer Science, vol. 6110, pp. 322-344, May, 2010.
  7. Aleksandar Kircanski. "Analysis of boomerang differential trails via a SATbased constraint solver URSA.", ACNS 15: 13th International Conference on Applied Cryptography and Network Security, Lecture Notes in Computer Science, vol. 9092, pp. 331-349, June, 2015.
  8. Ling Song, Zhangjie Huang, and Qianqian Yang. "Automatic differential analysis of ARX block ciphers with application to SPECK and LEA.", Cryptology ePrint Archive, Report 2016/209, 2016. http://eprint.iacr.org/2016/ 209.
  9. Mohamed, Mohamed Saied Emam, et al. "Improved algebraic side-channel attack on AES." Hardware-Oriented Security and Trust (HOST), 2012 IEEE International Symposium on. IEEE, pp. 146-151, Jun, 2012.
  10. C. W. Barrett, R. Sebastiani, S. A. Seshia, and C. Tinelli. Satisability modulo theories. Handbook of satisability, vol. 185, pp. 825-885, 2009.
  11. Helger Lipmaa and Shiho Moriai. "Efficient algorithms for computing differential properties of addition.", FSE 2001, Lecture Notes in Computer Science, vol 2355, pp. 336-350, April, 2002.
  12. Seojin Kim et al. "Efficient Differential Trail Searching Algorithm for ARX Block Ciphers." Jouranl of The Korea Institute of Information Security & Cryptology, 26(6), pp. 1421-1430, Dec, 2016 https://doi.org/10.13089/JKIISC.2016.26.6.1421
  13. Alex Biryukov, Vesselin Velichkov, and Yann Le Corre. "Automatic search for the best trails in ARX: Application to block cipher speck.", FSE 2016, Lecture Notes in Computer Science, vol. 9783, pp. 289-310, March, 2016.
  14. Itai Dinur. "Improved differential cryptanalysis of round-reduced Speck.", SAC 2014: 21st Annual International Workshop on Selected Areas in Cryptography, Lecture Notes in Computer Science, vol. 8781, pp. 147- 164, August, 2014.
  15. Abed, Farzaneh, et al. "Differential cryptanalysis of round-reduced simon and speck." International Workshop on Fast Software Encryption. Springer Berlin Heidelberg, pp. 525-545, 2014.
  16. https://www.msoos.org/cryptominisat4
  17. Y. Liu, G. D. Witte, A. Ranea and T. Ashur. "Differential cryptanalysis of round-reduced simon and speck.", IACR Trans. Symm. Cryptol., 2017(3): pp. 24-36, 2017.
  18. G. D. Witte, T. Ashur and Y. Liu, "An Automated Tool for Rotational-XOR Cryptanalysis of ARX-based Primitives", 38th Symp. on Info. Theo. in the Benelux, pp 59-66, 2017.