I. 서론
현대 암호시스템에서 블록암호는 안전한 통신과 데이터 보호에 중요한 역할을 한다. IoT 기기의 발전으로 저전력 기기에서의 암호 효율성이 요구되면서 ARX 기반 블록암호가 주목받기 시작했다. ARX 기반 블록암호는 비교적 간단한 연산인 법 덧셈(modular Addition), 비트 순환이동 연산(Rotation), 배타적 논리합(XOR)을 기반으로 구성된 라운드 함수가 반복적으로 동작하는 블록암호이다. 대표적인 ARX 구조 블록암호는 HIGHT[1], SPECK[2], LEA[3], CHAM[4]이 있다.
CHAM[4]은 국가보안기술연구소에서 제안한 ARX 기반 경량 블록암호로 ICISC‘17 에서 발표되었으며, 추가적인 안전성 분석을 통해 라운드 수가 늘어난 revised version이 ICISC’19 에서 발표되었다[5]. CHAM은 LEA와 같이 ISO/IEC 표준 블록암호 운영 모드에서 암호화 함수가 복호화 함수보다 더 광범위하고 자주 사용되는 점을 고려하여, 암호화와 복호화 간의 속도 균형보다 암호화 속도를 강조하여 설계되었다.
현대 범용 프로세서에서 채택하고 있는 구조인 슈퍼스칼라 아키텍처에서는 명령어 수준 병렬화, 비순차 실행, 명령어별 실행 유닛 수 분배 등 여러 최적화 기법을 통해 1 클럭 사이클 동안 여러 명령어를 실행할 수 있다. 이러한 하드웨어 단에서의 최적화 기법 때문에 범용 프로세서 환경에서는 연산의 구성이 동일하더라도 순서를 바꾸는 것만으로도 암호화 속도가 크게 개선할 수 있다.
본 논문에서는 암호화 속도를 강조한 ARX 기반 블록암호 CHAM에 대해 연산 순서를 재배치한 6개의 변형 구조(CHAM-like 구조) 단일 블록 구현과 병렬 구현에 대한 구현 효율성을 평가한다. Table 1.은 범용 프로세서인 Intel i7-12700K, Xeon Gold 6230과 고성능 마이크로컨트롤러인 ARMv8 Cortex-A72에서 CHAM-64/128과 가장 빠른 구조의 CHAM-like-64/128을 구현하여 암호화 속도를 비교한다. x86_64와 AArch64에서는 단일블록 구현을, AVX2, AVX512, NEON에서는 병렬 구현에 대한 암호화 속도를 나타낸다. 가장 빠른 구조의 CHAM-like-64/128이 적게는 9.3%, 최대 56.4% 빠른 암호화 속도를 보여준다.
Table 1. Comparison of encryption speeds for CHAM and the most efficient CHAM-like-64/128(cpb : cycles per byte)
블록암호의 연산 순서 변경으로 인해 보안 강도에 변화가 있을 수 있다. 이에 따라 CHAM과 비슷한 보안 강도를 가졌는지 확인하기 위해 CHAM-like 구조들의 차분 공격 및 선형 공격 저항성을 평가한다. 6개의 CHAM-like 구조를 선형/차분 분석 관점에서 두 개의 class로 구분하며, 각 class 내의 구조들은 차분 공격 및 선형 공격 저항성이 동일하다. 두 개의 class 중 한 class는 CHAM과 동일한 최적 차분 경로를 가진다. 이에 따라 남은 한 class의 최적 차분 경로 및 차분 확률 가중치와 최적 선형 경로 및 선형 상관관계 가중치를 분석한다. 분석 결과, Table 1.에 제시된 가장 효율적인 CHAM-like-64/128이 속한 class는 CHAM-64/128에 비해 차분 관점에서 3라운드가 증가하여 보안 마진 관점에서 3.4%의 차이를 보인다. 선형 관점에서는 6라운드가 증가하여 보안 마진 관점에서 6.8% 차이를 보이며 차분 및 선형 관점에서 비슷한 보안 강도를 가짐을 확인하였다.
본 논문에서는 위 결과에 따라 CHAM보다 효율적이면서 비슷한 보안 강도를 갖는 CHAM-like 구조를 제시한다. 본 논문에서 제시한 구조 및 결과는 ARX 기반 블록암호의 설계 관점에서 활용가능하다.
본 논문의 구성은 다음과 같다. 2장에서는 본 논문의 배경지식이 되는 CHAM의 명세, 슈퍼스칼라 아키텍처와 SMT 솔버를 활용한 ARX 암호 차분 분석 방법을 다룬다. 3장에서는 CHAM의 연산 순서를 재배치한 CHAM-like 구조를 제시하고 효율성 및 안전성 분석을 제시한다. 마지막으로 4장에서 본 논문에 대한 결론을 맺는다.
II. 배경 지식
2.1 표기법
Xi[j]: i-라운드 입력 블록의 j번째 워드
x║y: 비트열 x와 y의 연접(Concatenation)
x⊞y: x와 y의 법 덧셈 (Addition modulo 2w)
x⊕y: x와 y의 배타적 논리합 (XOR)
ROLn(x): x의 왼쪽으로 n만큼 비트 순환이동 연산 (Rotation)
∆Xr: r-라운드 입력 차분
ΓXr: r-라운드 입력 마스크
2.2 경량 블록암호 CHAM
CHAM[4]은 LEA[3]를 8-bit AVR 및 16-bit MSP 마이크로컨트롤러와 같은 자원 제한 환경에서 적합하도록 개선하려는 시도로 제안된 암호이다. CHAM 계열의 각 알고리즘은 n-bit 블록, k-bit 비밀키에 따라 CHAM-n/k로 표현되며 CHAM-64/128, CHAM-128/128, CHAM-128/256으로 이루어져 있다. Table 2.는 CHAM의 3가지 알고리즘과 각 알고리즘에 따른 파라미터를 나타낸다.
Table 2. List of revised version of CHAM ciphers and their parameters
CHAM은 키의 상태를 업데이트하지 않는 stateless-on-the-fly 키스케줄을 사용하여 저장공간을 줄여 저사양 환경에서 높은 효율성을 보여준다. 또한 비트 순환이동 연산의 크기를 1과 8만을 사용하여 8-bit AVR 마이크로컨트롤러에서의 높은 구현 효율성을 갖는다.
4-branch GFN type-1 구조를 가진 CHAM-n/k는 n-bit 평문 P를 w-bit 4개 워드로 나눠 P = X[0]║X[1]║X[2]║X[3]로 표현할 수 있다. Fig. 1.은 CHAM 계열의 암호화 라운드 함수를 나타낸 것이다. CHAM 계열의 라운드 함수는 짝수 라운드와 홀수 라운드에서 비트 순환이동 연산 크기를 다르게 사용해 짝수 라운드는
Xi+1[3]←ROL8((Xi[0]⊕i)⊞(ROL1(Xi[1])⊕RK[i])),
Xi+1[j]←Xi[j+1] for 0 ≤ j <3.
와 같이 계산되고, 홀수 라운드는
Xi+1[3]←ROL1((Xi[0]⊕i)⊞(ROL8(Xi[1])⊕RK[i])),
Xi+1[j]←Xi[j+1] for 0 ≤ j <3.
와 같이 계산된다.
Fig. 1. 2-round encryption function of CHAM family.
2.3 슈퍼스칼라 아키텍처
슈퍼스칼라 아키텍처는 1 클록 사이클 동안 여러 개의 명령어를 가져오고 실행하도록 설계된 프로세서이다. 슈퍼스칼라 아키텍처는 비순차적 실행과 명령어 수준 병렬화를 활용하여 서로 의존성이 없는 명령어들을 먼저 또는 동시에 실행하도록 순서를 하드웨어 단에서 재배치한다. 또한, 복수의 실행 유닛을 가지고 있어 재배치된 명령어들을 병렬로 처리할 수 있다. 실행 유닛별로 처리할 수 있는 명령어 유형이 다르기 때문에 명령어의 순서가 성능에 영향을 미친다. 이에 따라, 명령어들의 순서를 재배치하기 위해 명령어 디코더와 스케줄러 등 제어 로직이 함께 동작한다. 명령어는 디코더에서 해석되고 이후 스케줄러에 의해 적절한 실행 유닛들에 할당된다. 실행 유닛들은 명령어를 병렬로 실행하고 결과를 레지스터에 저장한다. 슈퍼스칼라 아키텍처는 이와 같은 과정을 통해 하드웨어 단에서 최적화하여 작업을 수행한다.
본 논문에서는 암호의 연산 구성 요소는 같지만 연산 순서를 재배치하여 암호의 구조를 변경한다. 슈퍼스칼라 아키텍처에서 암호의 변경한 구조마다 최적화했을 때 속도가 달라질 수 있으므로 해당 구조들끼리 속도를 비교한다.
2.4 SMT 솔버를 활용한 ARX 암호 차분 경로 탐색
이진 충족성 문제(Boolean Satisfiability Problem)는 이진 변수들과 논리 연산자들을 사용하여 구성된 공식을 만족하는 값이 존재하는지를 결정하는 문제이다. 이진 충족성 문제를 해결할 수 있는 SAT 솔버는 다양한 휴리스틱과 최적화 기법을 사용하여 주어진 공식을 분석하고 만족시키는 변수들의 값을 찾아 문제를 해결하는 도구이다. SMT(Satisfiability Modulo Theories) 솔버는 이진 충족성 문제를 확장한 SMT 문제[6]를 해결할 수 있다. SMT 솔버는 암호 분석에 적합한 비트 벡터 등과 같은 다양한 데이터 타입과 이에 대한 제약을 처리할 수 있다. 또한 ARX 기반 암호는 워드 단위 연산이 포함되어 있기 때문에 SMT 솔버로 분석하기에 적합하다.
SMT 솔버를 활용하여 ARX 기반 암호의 차분특성을 찾기 위한 프레임워크는 [7]에서 Mouha 등에 의해 제안되었고 Salsa20[10]에 적용하였다. 제안된 프레임워크는 SAT 솔버를 기반으로 구축된 SMT 솔버인 STP[8]를 사용하여 차분 확률 가중치 w를 가지는 차분 특성을 찾는다. 차분 특성을 찾기 위해 STP에 각 라운드별 워드 단위 차분 상태 변수, 덧셈 연산 후 차분 상태 변수, 차분 확률 가중치 변수와 ARX 암호의 XOR, 법 덧셈, 순환이동 연산에 대한 XOR 차분에 관한 방정식을 입력으로 넣는다. STP는 방정식을 CNF 형태로 변환하여 SAT 솔버에 입력으로 넣는다. SAT 솔버는 CNF 형태의 식의 해를 찾아 차분 특성과 해당 특성이 발생할 확률을 계산할 수 있다.
비트 순환이동 연산과 XOR 연산은 각 입력 차분(두 입력 평문에 대해 XOR 연산한 값)에 대한 유효한 출력 차분(두 출력 값에 대해 XOR 연산한 값)이 단 하나이기 때문에, 법 덧셈에 대한 XOR 차분과 확률만 고려하면 차분 경로의 확률을 계산할 수 있다. 법 덧셈에 대한 XOR 차분 확률에 관한 식은 Lipmaa와 Moriai가 [9]에서 제시한 정리를 이용한다.
정의 1. 법 덧셈에 대한 XOR 차분
A, B, ⍺, β, γ ∈ 𝔽w 입력값 A, B와 입력 차분 ⍺, β의 법 덧셈에 대한 출력 차분 γ는 다음과 같다.
γ = (A⊞B)⊕((A⊕⍺)⊞(B⊕β)).
정의 2. 법 덧셈에 대한 XOR 차분 확률
xdp+(⍺, β→γ)는 입력 차분 ⍺, β에 대한 출력 차분 γ 일 때 법 덧셈에 대한 XOR 차분 확률을 나타낸다.
\(\begin{align}\operatorname{xdp}^{+}(\alpha, \beta \rightarrow \gamma)=\frac{\#\{(x \boxplus y) \oplus((x \oplus \alpha) \boxplus(y \oplus \beta))\}}{2^{2 w}}\end{align}\).
정리 1. 법 덧셈에 대한 XOR 차분 존재성[9]
입력 차분 ⍺, β에 대한 출력 차분 γ인 법 덧셈에 대한 XOR 차분 (⍺, β→γ)의 유효한 필요 충분 조건은 아래와 같다.
eq(⍺ ≪ 1, β ≪ 1, γ ≪ 1) ∧ (⍺ ⊕ β ⊕ γ (β ≪ 1)) = 0
이때, eq(x, y, z) = (┐x⊕y) ∧ (┐x⊕z)이다.
정리 2. 법 덧셈에 대한 차분 확률 가중치
모든 유효한 차분 (⍺, β→γ)에 대한 차분 확률 가중치 weight(⍺, β→γ)는 아래와 같이 정의된다.
weight(⍺, β→γ) = -log2(xdp+ (⍺, β→γ)).
유효한 차분의 차분 확률 가중치는 다음 식으로 계산할 수
weight(⍺, β→γ) = h*(┐eq(x, y, z)).
이때, h*(x)는 x의 MSB를 제외한 나머지 비트 중 0이 아닌 비트의 수를 의미한다. Markov 가정[11]에 의해 유효한 차분 특성의 가중치를 각 법 덧셈 연산에서의 차분 확률 가중치 합으로 계산한다.
2.5 SMT 솔버를 활용한 ARX 암호 선형 경로 탐색
차분 경로 탐색과 마찬가지로, SAT/SMT 솔버를 활용한 ARX 기반 선형 경로 탐색에 관한 연구가 진행되었다. [12]에서 SAT 솔버를 활용하여 SPECK[2]과 chaskey[13]에 적용하였고 22라운드 SPECK32, 11라운드 SPECK48, 13라운드 SPECK64, 9라운드 SPECK96, 9라운드 SPECK128에 대한 최적 선형 경로를 탐색하였다.
STP를 사용하여 선형 경로를 찾기 위해 각 라운드별 워드 단위 선형 마스크 상태 변수, 선형 상관관계 가중치 변수와 ARX 암호의 XOR, 덧셈, 비트 순환이동 연산에 대한 방정식을 입력으로 넣는다. 비트 순환이동 연산의 입력 마스크에 대한 유효한 출력 마스크는 입력 마스크에 비트 순환이동 연산을 한 것과 같다. 법 덧셈 연산에 대한 선형 근사의 상관관계를 계산하는 방법은 Schulte-Geers[14]가 제안한 정리를 이용한다.
정의 3. 선형 근사(linear approximation)
블록암호의 선형 공격은 선형 근사를 기반으로 한다. 함수 f가 두 입력 (x0, x1)∈Fm2 × Fm2을 가질 때, 입력 선형 마스크 (⍺, β)∈Fm2 × Fm2와 출력 선형 마스크 γ∈Fn2에 대해 f의 선형 근사(⍺, β)→γ의 상관관계는 다음과 같이 정의한다.
\(\begin{align}\begin{array}{l}C(\alpha, \beta \rightarrow \gamma)= \\ 2 \cdot \frac{\#\left\{\left(x_{0}, x_{1}\right) \in F_{2}^{n} \times F_{2}^{m \mid} \mid \alpha \cdot x_{0} \oplus \beta \cdot x_{1} \oplus \gamma \cdot f\left(x_{0}, x_{1}\right)=0\right\}}{2^{2 m}}-1\end{array}\end{align}\).
정리 3. 법 덧셈에 대한 선형 근사의 상관관계[14]
z = (zn-1, zn-2,..., z0)는 z⊕(z ≫ 1)⊕((⍺⊕β⊕γ) ≫ 1) = 0, zn-1 = 0을 만족하는 n-bit 벡터이다. 이때 법 덧셈의 선형 근사 (⍺, β→γ)의 상관관계는 다음과 같다.
C(⍺, β→γ) = 1(γ⊕⍺)≤z1(γ⊕β)≤z(-1)(⍺⊕γ)∙(β⊕γ)2-h*(z).
III. 효율적인 CHAM-like 구조
3.1 CHAM-like 구조
CHAM의 암호화 라운드 함수에서는 라운드 상수 XOR-Addition-Rotation(XAR) 연산 순서로 진행된다. 이 연산 구조의 순서를 변경하면 6가지 연산 구조 순열을 구성할 수 있다. Fig. 2.는 CHAM의 6가지 CHAM-like 구조들의 암호화 라운드 함수를 나타낸 것이다. 본 논문에서는 연산 구조를 식별하기 위해 각 연산의 앞 문자를 나열하여 (a)XAR, (b)XRA, (c)RXA, (d)RAX, (e)AXR, (f)ARX과 같이 표기한다.
Fig. 2. 2-round encryption functions of CHAM-like structures
CHAM의 라운드 함수에서 비트 순환이동 연산의 크기는 AVR 및 MSP 명령어 집합을 고려하여 선정하였다[4]. AVR 및 MSP 명령어 집합에서는 비트 순환이동 연산을 할 때 임의의 양만큼 순환이동 연산을 하는 단일 명령어가 존재하지 않아 1비트 순환이동을 여러 번 구현해야 한다. AVR 및 MSP 환경에서의 구현 효율성과 안전성을 고려하여 비트 순환이동 연산의 크기를 결정하였다. 본 논문에서는 CHAM의 제안 논문에서 제시한 비트 순환이동 연산의 크기를 CHAM-like 구조에 적용하여 안전성과 구현 효율성을 분석한다.
3.2 CHAM-like 구조 효율성 분석
범용 프로세서 환경에서 암호화 함수의 연산 순서를 재배치하여 수행하면 명령어 수준 병렬성, 명령어 간 의존성 및 스케줄링에 따라 암호화 속도가 달라질 수 있다. 이에 CHAM-like 구조들에 대해 효율성을 분석하여 CHAM보다 우수한 성능을 가진 구조를 탐색한다.
Table 3.은 x86_64, AVX2, AVX512, AArch64, NEON 명령어로 구현한 CHAM-like-64/128의 구현물에 대해 암호화 속도를 비교한 표이다. x86_64와 AVX2 구현물은 Intel i7-12700K(x64) 프로세서 환경에서 구현되었고, AVX512 구현물은 Intel Xeon Gold 6230 프로세서 환경에서 구현되었다. AArch64 구현물과 NEON 구현물은 ARMv8 cortex-A72 프로세서 환경에서 구현되었다. 모든 구현물은 키스케줄을 포함하지 않은 상태로 88라운드 암호화 함수의 속도만을 평가하며 컴파일 최적화 옵션은 –O3로 진행한다. CHAM-like-64/128에 대해 x86_64와 AArch64 구현은 1블록 암호화 함수 500,000회 수행의 바이트당 클럭 사이클 수를 나타내었고, NEON 구현은 8블록 병렬, AVX2 구현은 16블록 병렬, AVX512 구현은 32블록 병렬 암호화 함수 500,000회 수행의 바이트당 클럭 사이클 수를 나타낸다.
Table 3. Comparison of encryption speeds for CHAM-like-64/128 (cpb : cycles per byte)
5가지 구현에서 가장 빠른 구조는 CHAM-RXA-64/128임을 확인할 수 있다. CHAM-RXA-64/128은 CHAM에 비해 x86_64 구현에서 54.87%, AVX2 구현에서 24.75%, AVX512 구현에서 19.35%, AArch64에서 9.36%, NEON에서 52.96% 향상된 암호화 속도를 확인할 수 있다.
3.3 CHAM-like 구조 차분 분석
본 절에서는 CHAM-like 구조들에 대해 SMT 솔버를 활용하여 최적 차분 경로를 탐색한 결과를 제시한다. 3.1절에서 언급한 바와 같이 CHAM-like 구조에서 비트 순환이동 연산 크기를 CHAM과 동일하게 구성한다.
차분 분석에서 XOR 연산은 입력 차분에 대한 출력 차분에 어떠한 영향도 주지 않으므로, 6가지 CHAM-like 구조에서 XOR 연산인 라운드 상수 XOR 연산과 라운드키 연산을 소거하여 구조를 간소화할 수 있다. 간소화된 구조는 CHAM-AR와 CHAM-RA 두 가지 class로 분류할 수 있다. CHAM-AR class는 CHAM(CHAM-XAR), CHAM-AXR, CHAM-ARX로 이루어져 있고, CHAM-RA class는 CHAM-XRA, CHAM-RXA, CHAM-RAX로 이루어져 있다. 각 class는 차분 분석 관점에서 모두 같은 최적 차분 경로를 갖는다. 따라서 CHAM-AXR과 CHAM-ARX는 차분 분석 관점에서 CHAM과 같은 안전성을 갖는다.
Table 4.는 SMT 솔버를 활용하여 탐색한 CHAM-AR-64/128과 CHAM-RA-64/128의 최적 차분 경로의 확률 가중치를 비교한 표이다. CHAM-AR-64/128의 라운드별 차분 확률 가중치는 [5]에서 제시한 CHAM-64/128의 라운드별 차분 확률 가중치와 동일하다. Table 4.에서 CHAM-RA-64/128이 CHAM-64/128에 비해 최적 차분 경로가 3라운드 더 긴 것을 확인할 수 있다. CHAM-RA-64/128이 revised CHAM-64/128과 같이 88라운드를 가진다고 했을 때, 보안 마진 관점에서 3.4% 차이를 가지므로 CHAM-64/128과 유사한 보안 강도를 가짐을 알 수 있다. 43라운드 CHAM-RA-64/128의 자세한 차분 경로와 가중치는 Appendix의 Table 6.에 나타낸다.
Table 4. The probability weights of the best differential trails for CHAM-64/128[5] and CHAM-RA-64/128
Table 5. The correlation weights of the optimal linear trails for CHAM-64/128 [15] and CHAM-RA-64/128
Table 6. 43-round optimal differential trail for CHAM-RA-64/128
3.4 CHAM-like 구조 선형 분석
본 절에서는 CHAM-like 구조들에 대해 SMT 솔버를 활용하여 최적 선형 경로를 탐색한 결과를 제시한다. 3.3절의 차분 분석과 마찬가지로 CHAM-like 구조에서 비트 순환이동 연산 크기를 CHAM과 동일하게 구성하며 2가지 class로 분류하여 최적 선형 경로를 탐색한다.
Table 5.는 CHAM과 CHAM-RA class의 최적 선형 경로의 라운드별 상관관계 가중치를 나타낸 표이다. CHAM-AR의 최적 선형 경로는 [15]에서 제시한 CHAM-64/128의 최적 선형 경로의 상관관계 가중치와 이론적으로 일치하므로 CHAM-RA의 최적 선형 경로를 탐색하여 비교한다. CHAM의 선형 분석 구별자의 최대 라운드는 34라운드이고, CHAM-RA class의 최대 라운드는 40라운드로 6라운드 더 긴 것을 알 수 있다. CHAM-RA-64/128이 revised CHAM-64/128과 같이 88라운드를 가진다고 했을 때, 보안 마진 관점에서 6.8% 차이를 가지므로 CHAM-64/128과 유사한 보안 강도를 가짐을 알 수 있다. CHAM-RA-64/128의 41라운드 최적 선형 경로와 상관관계 가중치는 Appendix의 Table 7.에 나타낸다.
Table 7. 41-round optimal linear trail for CHAM-RA-64/128
IV. 결론
본 논문에서는 ARX 기반 블록암호 CHAM의 연산 순서를 재배치하여 범용 프로세서에서 효율적인 CHAM-like 구조를 제시한다. 여러 범용 프로세서에서의 효율성 분석과 차분 분석 기반 안전성 분석 결과를 통해 6가지 CHAM-like 구조 중 암호화 속도 관점에서 가장 빠른 구조는 CHAM-RXA-64/128임을 알 수 있다. CHAM-RXA-64/128는 범용 프로세서 환경에서 암호화 속도가 CHAM-64/128보다 최대 약 55% 빠른 결과를 확인할 수 있고, 차분 분석 및 선형 분석 관점에서 CHAM-64/128과 유사한 보안 강도를 가짐을 3.3절과 3.4절에서 확인할 수 있다. 연산 구성은 동일하지만 순서를 바꾸는 것만으로도 범용 프로세서 환경에서 암호화 속도가 크게 달라질 수 있으므로 ARX 기반 블록암호 설계할 때 이를 고려할 수 있다.
향후 연구로 가능한 비트 순환이동 연산 크기에 대해 안전성 및 구현 효율성을 탐색하여 CHAM보다 안전하고 효율적인 CHAM variant 제시할 예정이다.
Appendix
References
- Deukjo Hong, Jaechul Sung, Seokhie Hong, Jongin Lim, Sangjin Lee, Bonseok Koo, Changhoon Lee, Donghoon Chang, Jesang Lee, Kitae Jeong, Hyun Kim, Jongsung Kim, and Seongtaek Chee, "HIGHT: A New Block Cipher Suitable for Low-Resource Device," Cryptographic Hardware and Embedded Systems (CHES 2006), LNCS 4249, pp. 46-59, Springer, 2006.
- 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, Jun. 2015.
- 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 Processors," International Workshop on Information Security Applications (WISA'13), LNCS 8267, pp. 3-27, Springer, 2014.
- Bonwook Koo, Dongyoung Roh, Hyeonjin Kim, Younghoon Jung, Dong-Geon Lee and Daesung Kwon, "CHAM: A family of lightweight block ciphers for resource-constrained devices," International Conference on Information Security and Cryptology (ICISC'17), LNCS 10779, pp. 3-25, Springer, 2018.
- Dongyoung Roh, Bonwook Koo, Younghoon Jung, Il Woong Jeong, Dong-Geon Lee, Daesung Kwon and Woo-Hwan Kim, "Revised version of block cipher CHAM," International Conference on Information Security and Cryptology (ICISC'19), LNCS 11975, pp. 1-19, Springer, 2020.
- C. W. Barrett, R. Sebastiani, S. A. Seshia, and C. Tinelli. Satisability modulo theories. Handbook of satisability, pp. 825-885, IOS Press, Apr.2009.
- Nicky Mouha and Bart Preneel,"Towards Finding Optimal Differential Characteristics for ARX: Application to Salsa20," IACR ePrint 2013-328,Nov. 2013.
- Vijay Ganesh and David L. Dill, "A Decision Procedure for Bit-Vectors and Arrays," Computer Aided Verification 2007, LNCS 4590, pp.519-531, Springer, 2007.
- Helger Lipmaa and Shiho Moriai. "Efficient algorithms for computing differential properties of addition," FSE 2001, LNCS 2355, pp. 336-350,Springer, 2002.
- Daniel J. Bernstein, "The Salsa20Family of Stream Ciphers," New Stream Cipher Designs, LNCS 4986, pp. 84-97, Springer, 2008.
- Xuejia Lai, James L. Massey and Sean Murphy, "Markov Ciphers and Differential Cryptanalysis," EUROCRYPT 1991, LNCS 547, pp. 17-38. Springer, 1991.
- Yunwen Liu, Qingju Wang and Vincent Rijmen, "Automatic Search of Linear Trails in ARX with Applications to SPECK and Chaskey," Applied Cryptography and Network Security-14th international conference(ACNS2016), LNCS 9696, pp. 485-499, Springer, 2016
- Nicky Mouha, Bart Mennink, Anthony Van Herrewege, Dai Watanabe, Bart Preneel and Ingrid Verbauwhede "Chaskey: an efficient MAC algorithm for 32-bit microcontrollers," Selected Areas in Cryptography(SAC 2014), LNCS 8781, pp. 306-323, Springer, 2014.
- Ernst Schulte-Geers, "On CCZ-equivalence of addition mod 2n," Designs, Codes and Cryptography. vol. 66, pp. 111-127, May, 2012. https://doi.org/10.1007/s10623-012-9668-4
- Huang, Mingjiang, and Liming Wang. "Automatic Search for the Linear (Hull) Characteristics of ARX Ciphers: Applied to SPECK, SPARX, Chaskey, and CHAM-64," IACR ePrint 2019-1319, Jan. 2020.