I. 서론
차분 분석(Differential Cryptanalysis)은 Eli Biham과 Adi Shamir에 의해 제안되어 현재까지 블록암호의 안전성 분석에 사용되는 대표적인 분석법이다[1]. 이 방법은 특정 차분을 만족하는 평문 쌍이 해당 암호문 쌍에 미치는 영향을 분석하여 비밀정보를 알아내거나 구별 공격을 하는데 이용된다. 차분 분석에 사용되는 차분 특성(differential characteristic)의 기대 차분 확률은 흔히 중간 차분을 고려한 차분 경로(differential trail)의 확률 또는 고려하지 않는 디퍼런셜(differential)의 확률로 정해진다. 그러나 디퍼런셜을 만족하는 가능한 모든 차분 경로를 찾는 것이 불가능하므로 정확한 디퍼런셜의 확률 계산이 어렵다[2]. 따라서 보통의 경우, 블록암호가 마르코프 암호(markov cipher)를 만족시킨다고 가정하여 중간 차분을 고려한 차분 경로의 확률을 바탕으로 차분 분석의 복잡도를 얻어낸다. 마르코프 암호란 각 라운드의 출력 차분이 마르코프 체인(markov chain)을 형성하여 라운드 독립성을 만족하는 암호를 말한다[3]. 이론적 차분 확률은 마르코프 암호 이론에 따라 경로를 구성하는 각 라운드의 확률을 곱하여 구한다. 하지만 마르코프 암호 이론에 따른 블록암호의 차분 공격에 대한 저항성 평가[3, 4, 5]에서는 고정된 키에 따라 달라질 수 있는 차분 확률을 고려하기 어렵다. 따라서 확률 동등성 가정(the hypothesis of stochastic equivalence)에 따라 고정된 비밀키에 대한 차분 경로의 확률은 모든 비밀키의 평균값의 확률에 근사하다고 가정한다. 이와 관련된 고정키에 대한 확률을 고려한 차분 확률에 관한 연구로 [6,7] 등이 있다. Daemen과 Rijmen은 키 교대 암호(key-alternating cipher)의 경우에는 확률 동등성 가정이 성립하지 않음을 보였다[6]. Ling 등은 차분 경로를 따르는 옳은 평문 쌍을 더 많이 만족하게 하는 키의 비율을 찾는 연구를 진행하였다[7].
병렬 프로그래밍이란 사용 가능한 프로세서 자원들로 동시에 연산하여 수행 시간을 줄이기 위한 프로그래밍이다. 특히 그래픽 처리 장치(GPU)를 사용하는 병렬 프로그래밍 GPGPU(General-Purpose computing on Graphics Processing Units) 기술을 이용한 다양한 연구들이 활발히 진행되고 있고, 간단한 문제를 반복해서 수행하는 SPMD(Single Program, Multiple Data) 문제를 해결하는 데 적합하다[8]. GPGPU 기술은 멀티프로세서 당 최대 가용 스레드(thread)의 개수만큼 병렬 연산이 가능하므로, 많은 연산량이 필요한 전자 화폐 채굴과 SHA-1에 대한 충돌쌍 공격(collision attack) 등에 이용되었다[9]. GPGPU 기술은 2007년 NDIVIA에서 개발한 그래픽 카드의 병렬 프로그램 개발 환경인 CUDA(Compute Unified Device Architecture) 라이브러리로 인하여 널리 사용되기 시작되었다[10]. 범용 프로그래밍 환경인 CUDA C는 리눅스와 윈도우 환경에서 대중적으로 사용되는 C 컴파일러와 연동되는 장점으로 인해 GPGPU 기술 중에서 가장 많이 사용된다.
1.1 의의 및 구성
본 논문에서는 마르코프 암호 가정 하에 구한 기대 차분 확률과 차분 확률의 분포를 실험적으로 검증한다. 본 논문의 의의는 첫 번째, 마르코프 암호 가정 하의 이론적 기대 차분 확률과 실험적 확률의 통계적 비교를 경량 블록암호 PRESENT의 6라운드에 적용하여 근사함을 보인다. 두 번째, 마르코프 암호 가정 하의 기대 차분 확률을 따르지만, 차분 확률의 분포가 푸아송분포를 따르지 않는 경우가 있음을 경량 블록암호 GIFT의 4라운드에 적용하여 실험을 통해 통계적으로 검정한다. 고정키에서의 차분 확률의 분포는 푸아송분포에 근사한다고 알려져 있다[6]. 하지만 이를 실험적으로 검증하지 않았으므로, 본 논문은 GPU를 기반으로 얻은 데이터를 이용하여 동일하게 적용되지 않는 예시를 제시한다. 세 번째, [6]의 표본 추출 가정에 키 스케줄이 영향을 미치는지를 분석하기 위해 GIFT의 라운드 키의 XOR 위치와 개수를 바꾸어 얻은 실험 결과를 통해 키 스케줄을 변경하여도 표본 추출 가정을 만족하지 않음을 보인다. 키 스케줄이 단순할수록 라운드 키는 균일하지 않다[11]. GIFT의 경우에 라운드 키와 XOR 연산하지 않는 부분의 라운드 키를 0으로 볼 수 있으므로, 표본 추출 가정의 오류의 원인이 키 스케줄 때문인지 실험을 통해 확인한다.
본 논문의 구성은 다음과 같다. Ⅱ장에서는 표기법과 배경지식을 소개하고, Ⅲ장에서는 통계적 검정을 위한 데이터 수집 방법과 GPU 설계 프로세스, CPU와 GPU의 속도 비교 결과 및 GPU를 이용한 디퍼런셜의 통계적 비교 분석을 제시한다. Ⅳ장에서는 제시한 방법을 토대로 마르코프 암호 가정 하에 구한 기댓값 분석을 PRESENT에 적용하고, GIFT의 차분 확률의 분포를 검정한다. Ⅴ장에서는 GIFT에 대해 키 스케줄을 변경하여도 [6]의 표본 추출 가정을 만족하지 않음을 보인다. Ⅵ장에서 결론을 맺고, GPU 설계 의사 코드와 실험에 사용된 디퍼런셜, 차분 경로들은 부록에서 제시한다.
II. 배경 지식
2.1 표기법
본 논문에서 사용된 표기법은 다음과 같다.
o Ci : i라운드의 입력 차분
o [C0, C1, ..., Cr]: r라운드의 차분 경로
o (C0, C1, ..., Cr): 라운드의 차분 경로를 만족하는 평문쌍의 집합
o {p0,p1}: 평문쌍
o\(C^{P_{i}}\left(=\left[C_{0}^{P_{i}}, \ldots, C_{6}^{P_{i}}\right]\right)\) : 실험에 이용한 PRESENT의 차분 경로 (i = 1,...,6)
o \(C^{G_{i}}\left(=\left[C_{0}^{G_{i}}, \ldots, C_{4}^{G_{i}}\right]\right)\) : 실험에 이용한 GIFT의 차분 경로 (i = 1,2)
o EMarkov : 마르코프 암호 가정 하에 구한 r라운드 차분 경로의 기대 차분 확률
o Np: 전체 평문의 개수
o Nk: 전체 비밀키의 개수
o np : 표본 추출한 평문의 개수
o nk: 표본 추출한 비밀키의 개수
o Tx(\(\alpha,\beta\)) : \(\alpha\) 개의 평문과 개의 비밀키에 대한 차분 경로를 만족하는 평문 쌍의 개수\(\left(x=C^{R}, \ldots, C^{R}, C^{G_{1}}, C^{G_{2}}\right)\)
즉 비밀키 당 세어진 평문의 평균 개수
o\(T_{x}(\alpha, 1)[k]\) : \(\alpha\)개의 평문과 비밀키 에 대한 차분 경로 x를 만족하는 평문 쌍의 개수 \(\left(x=C^{P}, \ldots, C^{R}, C^{G_{1}}, C^{G_{2}}\right)\)
디퍼런셜을 이용한 경우, 차분 경로와 유사하게 정의하며 T대신 D를 사용한다.
2.2 차분 분석
차분 분석은 블록암호의 대표적인 분석 방법으로 입력값의 변화(입력 차분)에 따른 출력값의 변화(출력 차분)를 일정 확률로 예측하여 분석하는 방법이다[1]. 선형 계층에 대해서는 차분의 전파를 1의 확률로 예측할 수 있고, 비선형 계층에 대해서는 확률적으로 예측할 수 있다. 블록암호에 주로 사용되는 대표적인 비선형 연산인 S-box의 주어진 입력값들에 대응되는 출력값을 알고 있을 때, 입력 차분과 출력 차분은 비밀키가 올바르게 택하여지면 높은 확률로 만족하고, 올바르지 않은 비밀키라면 랜덤한 확률로 만족하게 된다. 즉 많은 선택 평문을 이용하여 올바른 키와 올바르지 않은 키를 확연히 구별할 수 있고, 이를 이용하여 비밀키를 추측한다.
2.3 차분 확률의 분포
라운드 함수 간 라운드 키와의 XOR 연산이 있는 키 교대 암호는 라운드 키가 균일하게 독립적일 경우에는 마르코프 암호를 만족한다. 라운드의 차분 경로 [C0, C1, ..., Cr]가 주어졌을 때, 라운드 차분 경로의 기대 차분 확률 EMarkov를 다음과 같이 구할 수 있다[3].
\(E_{\text {Markov }}=\prod_{i=1}^{r} \operatorname{Pr}\left[C_{i-1} \rightarrow C_{i}\right]\) (1)
디퍼런셜의 기대 확률은 디퍼런셜을 만족시키는 모든 차분 경로의 기대 확률들을 더하여 구할 수 있다.
일반적으로 고정된 키에 따라 달라질 수 있는 차분 확률을 고려하기 어려우므로 고정키에 대해서는 고려하지 않고, 차분 경로의 확률을 계산한다. 그러나 [6]에서는 가정 1을 통해 고정된 비밀키 에 대한 차분 경로 확률의 분포를 정리 1과 같이 나타내었다. 고정된 비밀키 에 대한 차분 경로의 확률은 다음과 같이 나타낼 수 있다.
\(\begin{array}{l} \operatorname{Pr}\left[\left\{p_{0}, p_{1}\right\} \in\left(C_{0}, \ldots, C_{r}\right) | k=k_{0}\right] \\ =\frac{T_{x}\left(N_{p}, 1\right)\left[k_{0}\right]}{N_{p}} \end{array}\) (2)
가정 1[6].(The Sampling Model) 모든 라운드 키가 균일하게 독립적인 블록암호를 \(I: P \times K \rightarrow C\)라 하고, 키 스케줄이 있는 블록암호를 \(B: P \times K^{\prime} \rightarrow C\)라 하자. 동일한 라운드 함수인 두 개의 블록암호에 대해, 비밀키를 ko으로 고정한 \(B_{K^{\prime}=k_{0}}: P \rightarrow C\)는 \(I: P \times K \rightarrow C\)의 가능한 모든 쌍 \(\{I(p, k) \left.I\left(p \oplus C_{0}, k\right)\right\}\)중에서 Np개의 쌍을 표본 추출한 것이라고 할 수 있다.
정리 1[6]. 키 스케줄이 있는 키 교대 블록암호인 \(B: P \times K^{\prime} \rightarrow C\)가 가정 1을 만족할 때, 고정된 비밀키 k0에 대한 차분 경로 x를 만족시키는 평문 쌍의 개수 \(T_{x}\left(N_{p}, 1\right)\left[k_{0}\right]\)은 다음의 분포를 따른다.
\(\begin{array}{l} X \sim \text { Poisson }\left(\lambda=N_{p} \times E_{\text {Markov }}\right) \text { 일 때|, } \\ \operatorname{Pr}\left[T_{x}\left(N_{p}, 1\right)\left[k_{0}\right]=i\right] \approx \operatorname{Pr}(X=i) \end{array}\) (3)
정리 1에 따르면 차분 확률의 분포는 푸아송분포를 따르고, EMarkov가 상당히 낮고 Np가 상당히 클 경우는 정규분포에 근사시킬 수 있다. 또한, 여러 개의 비밀키 k로부터 얻은 표본의 차분 확률은 표본의 평균 \(\bar{X}\)가 \(N_{p} \times E_{\text {Markov }}\)에 근사하고, 표본의 분산 s2은 \(N_{p} \times E_{\text {Markov }}\)에 근사함을 알 수 있다. 그러나 가정 1은 모든 라운드 키가 균일하게 독립적이지 않게 하는 키 스케줄을 사용하는 블록암호에도 적용할 수 있다. 마르코프 암호는 각 라운드 키들이 균일하게 독립임을 만족해야 하지만, 가정 1은 사용하는 키 스케줄의 라운드 키의 독립성을 요구하지 않는다. 따라서 가정 1은 마르코프 암호 이론에서 사용된 가정에 비해 더 약한 가정이다. [6]은 블록암호에서의 키 k0에 따라 정해지는 Np개의 쌍이 실제 표본 추출된 것과 동일한지의 타당성은 보이지 않았으므로 본 논문에서 가정 1의 타당성을 실험적으로 검증한다.
2.4 통계적 검정
2.4.1 차분 확률의 통계적 검정
Nk개의 비밀키를 갖는 블록암호에 대한 차분 경로 x의 기대 확률은 다음과 같이 구할 수 있다.
\(\operatorname{Pr}\left[\left\{p_{0}, p_{1}\right\} \in\left(C_{0}, \ldots, C_{r}\right)\right]=\frac{T_{x}\left(N_{p}, N_{k}\right)}{N_{p} \times N_{k}}\) (4)
블록 크기는 비트, 비밀키 크기가 비트인 블록암호의 \(T_{x}\left(N_{p}, N_{k}\right)\)를 구하기 위한 시간 복잡도는 약 2192이므로 \(T_{x}\left(N_{p}, N_{k}\right)\)의 기댓값은 현실적인 시간 내에 구할 수 없다. 그러나 \(T_{x}\left(N_{p}, N_{k}\right)\)에 대한 통계적 검정은 30개 이상의 비밀키와 평문 쌍을 표본 추출하여 수행할 수 있다. 따라서 표본 추출한 np (>> 30)개의 평문을 이용하여 \(T_{x}\left(N_{p}, 1\right)[k]\)를 \(T_{x}\left(N_{p}, 1\right)[k]\)로 점추정하고, 고정된 비밀키 k0에 대한 차분 경로의 확률을 다음과 같이 추정할 수 있다.
\(\begin{array}{l} \operatorname{Pr}\left[\left\{p_{0}, p_{1}\right\} \in\left(C_{0}, \ldots, C_{r}\right) | k=k_{0}\right] \\ =\frac{T_{x}\left(N_{p}, 1\right)\left[k_{0}\right]}{N_{p}} \approx \frac{T_{x}\left(n_{p}, 1\right)\left[k_{0}\right]}{n_{p}} \end{array}\) (5)
표본 추출한 nk (>> 30)개의 비밀키를 이용하여 구한 \(T_{x}\left(N_{p}, 1\right)[k]\)를 표본으로 사용하여 기대 차분 확률에 대해 검정할 수 있다.
디퍼런셜도 위와 같은 방법을 통해 차분 경로와 동일하게 구할 수 있다.
2.4.2 통계적 가설 검정
통계적 가설 검정(statistical hypothesis testing)이란 표본으로부터 얻은 정보를 이용하여 모수에 관한 주장의 옳고 그름을 판정하는 과정이다[12]. 모수에 관한 주장을 가설이라 하고, 가설에는 귀무가설과 대립가설이 있다. 귀무가설 H0은 검정 대상이 되는 가설로 증거가 없는 가설이고, 유의수준에 따라 기각하는 것이 목표이다. 대립가설 H1은 귀무가설에 상반되는 가설로 강력한 증거에 의하여 입증하고자 하는 가설이다.
본 논문에서는 마르코프 암호 가정 하에 구한 기대 차분 확률 EMarkov가 실제 차분 확률과 같은지 확인하기 위해 다음의 통계적 가설을 설정하였다.
\(\begin{array}{l} H_{0}: E\left(T_{x}\left(n_{p}, 1\right)[k]\right)=E_{\text {Markov}} \times n_{p} \\ H_{1}: E\left(T_{x}\left(n_{p}, 1\right)[k]\right) \neq E_{\text {Mirkov}} \times n_{p} \end{array}\) (6)
2.4.3 모평균과 모분산의 검정
모분산을 검정할 때는 카이제곱분포를 사용한다. 표본분산 s2에 (표본의 개수-1)인 (n-1)을 곱하고, 모분산 \(\delta\)2으로 나눈 값은 자유도가 v인 카이제곱분포를 따르고, \(\frac{s^{2}(n-1)}{\sigma^{2}} \sim \chi_{v}^{2}\)으로 나타낸다[12]. 모분산을 추정하여 검정이 맞으면 모분산을 기반으로 모평균을 검정한다. 틀리면 표본분산을 기반으로 모평균을 검정한다.
본 논문에서는 마르코프 암호 가정 하에 구한 기대 차분 확률의 분산 \(\sigma_{\text {Markov }}^{2}\)가 실제의 분산 \(\delta\)2과 같은지 확인하기 위해 다음의 통계적 가설을 설정하였다.
\(\begin{aligned} &H_{0}: \sigma^{2}=\sigma_{M \text {arkov }}^{2}\\ &H_{1}: \sigma^{2} \neq \sigma_{M a r k o v}^{2} \end{aligned}\) (7)
모평균의 검정은 표준정규분포를 이용하여 다음의 통계적 가설을 검정한다.
\(\begin{aligned} &H_{0}: \mu=\mu_{Markov}\\ &H_{1}: \mu \neq \mu_{M a r k o v} \end{aligned}\) (8)
2.5 GPU와 CUDA
GPU는 작은 프로세스의 배열로 구성되어 병렬 연산에 탁월한 성능을 보이고, 호스트 디바이스에서 받은 데이터를 빠르게 연산할 수 있다. CUDA 프로그램은 모든 스레드에 동일하게 할당되어 실행되지만, 스레드의 고유번호가 파라미터로 사용되어 수행하는 내용이 달라질 수 있다. GPU가 가진 수천 개의 산술 처리 장치는 병렬 가속화를 통해 연산 시간을 줄일 수 있으나, 데이터의 입출력을 위해 사용되는 메모리의 대역폭으로 인해 빠른 수행 시간을 제공해 주기 어려울 수 있다. Fig.1.은 CUDA의 메모리 계층 구조를 나타낸 그림이다. 호스트 디바이스와의 데이터 교환을 위해 사용되는 메모리로는 상수 메모리(constant memory)와 전역 메모리(global memory)가 있다. 상수 메모리는 모든 스레드에서 접근하기 가장 용이한 메모리지만, 보통 64KB까지 지원하며 CUDA 프로그램이 실행되는 동안은 읽기 전용으로 사용된다. 전역 메모리는 GPU에서 가장 큰 메모리지만, 가장 느리다.
Fig. 1. CUDA Memory Hierarchy
III. 검정을 위한 데이터 수집 방법 및 CPU와 GPU의 속도 비교
3.1 데이터 수집 방법
Algorithm 1은 임의의 비밀키 nk개와 평문 쌍 np개에 대해, 비밀키 당 정해진 차분 경로와 디퍼런셜을 만족시키는 평문 쌍의 평균 개수 \(T_{x}\left(n_{p}, n_{k}\right)\), \(D_{x}\left(n_{p}, n_{k}\right)\)를 계산하는 알고리즘이다. 이때 Encryptl은l번째 라운드까지 암호화한 것을 나타낸다. 검정을 위해 필요한 데이터의 양은 확률 2-24의 차분 경로를 이용할 경우, 최소 평문 쌍의 개수는 226개와 비밀키 25개가 필요하다(즉 최소 시간 복잡도 232).
Fig. 2. Algorithm of the Sampling Data for testing
3.2 GPU 설계 프로세스
이 실험에 사용된 프로세서는 CPU는 i7-8700K, GPU는 GTX-1080 Ti이다. GTX-1080 Ti의 스트리밍 멀티프로세서(SM)의 개수는 28개이고, SM 당 스트리밍 프로세스(SP)의 개수는 128개이며, 상수 메모리의 크기는 64KB이다.
사용한 GPU는 1 cycle에 SP 당 4번의 연산을 처리할 수 있으므로 1 cycle에 최대 \(28 \times(128 \times 4)\)개만큼 서로 독립인 병렬 연산 처리가 가능하다. 즉 차분 경로와 평문 쌍, 비밀키가 주어졌을 때, 스레드 당 다른 비밀키를 할당하여 각각 차분 경로 혹은 디퍼런셜을 만족시키는지 확인하는 연산은 서로 독립 연산이므로 병렬 처리가 가능하다. GPU를 사용함으로써 이상적으로 CPU가 \(28 \times 512\)번 수행해야 하는 연산을 번의 병렬 처리로 수행할 수 있다. 따라서 실험에서는 \(28 \times 512\left(=14336=2^{13.807}\right) \)개의 스레드를 사용하였다. 모든 스레드에서 동일한 평문을 사용하는 이유는 GPU의 상수 메모리에 여러 SM이 동시에 빠르게 접근하여 사용할 수 있기 때문이다. GPU를 이용할 때는 GPU의 상수 메모리를 사용하면 시간을 줄일 수 있다. 본 논문에서는 효율적인 실험을 위해 전처리로 CPU에서 GPU의 상수 메모리에 임의의 평문들을 설정하고, 스레드마다 서로 다른 비밀키를 할당하여 병렬적으로 주어진 차분 경로와 디퍼런셜을 만족하는 평문 쌍의 개수를 계산하도록 설계하였다.
3.3 CPU와 GPU를 이용한 속도 비교
본 절에서는 CPU와 GPU를 이용할 때의 데이터 수집 속도의 효율성 비교를 위해 PRESENT[13]와 GIFT[14]에 적용하여 비교한다.
차분 경로는 확률이 각각 2-18, 2-20인 입출력이 동일한 라운드 차분 경로를 이용한다. 평문 쌍의 개수는 확률이 2-20인 차분 경로를 이용하므로 최소 220개 이상 필요하고, 키의 개수는 실험에서 사용한 GPU의 스레드 개수 213.807개로 고정하여 사용한다.
Table 1.과 Table 2.는 각 프로세서를 이용할 때의 속도 비교 결과이다. 이를 통해 GPU를 이용할 때 CPU보다 평균적으로 약 157배 빠른 것을 확인할 수 있다. 즉 GPU를 이용하면 더 효율적으로 분석 데이터를 얻을 수 있다.
Table 1. comparison table using CPU and GPU of PRESENT : Single-threaded on CPU.
Table 2. comparison table using CPU and GPU of GIFT : Single-threaded on CPU.
3.4 디퍼런셜 간 확률의 통계적 비교 분석
본 절에서는 GPU의 효율성을 확인하기 위해 확률이 2-24인 PRESENT의 6라운드 차분 경로를 이용하여 시간 복잡도가 224인 디퍼런셜 확률을 실험적으로 계산한다. Table 2.를 이용하여 추측하면, 이 실험을 CPU만을 이용하여 수행하기 위해서는 1개의 디퍼런셜 당 약 42일 이상의 시간이 필요하다.
실험에 사용된 평문 쌍의 개수는 231개, 비밀키는 213.807개이다. Table 3.은 비밀키 당 PRESENT의 6라운드 디퍼런셜을 만족하는 평문 쌍의 평균 개수를 정리한 표이다. 실험 결과를 통해 D6(231,213,807)이 보다 약 18%이상 더 큼을 확인할 수 있다. 실험적으로 더 높은 결과값을 갖는 짧은 라운드의 디퍼런셜을 포함하여 긴 라운드의 디퍼런셜을 만들어 차분 공격을 수행한다면 동일한 데이터 복잡도로 더 효율적으로 차분 공격을 수행할 수 있을 것이다. 이처럼 GPU를 이용하면 확률을 구하기 어려운 디퍼런셜 간의 확률 비교가 실험적으로 가능하다.
Table 3. Experimental results of satisfying Right pairs of PRESENT’s 6 round differentials
IV. 실제 블록암호에 적용
본 장에서는 EMarkov의 검정을 PRESENT에 적용하고, 차분 확률의 분포가 정리 1을 만족하는지 GIFT에서 확인한다.
4.1 마르코프 암호 가정 하에 구한 차분 확률의 기댓값 검정 : PRESENT
본 절에서는 EMarkov와 실험을 통해 구한 확률이 근사한지 검정하기 위해 PRESENT의 6라운드의 알려진 가장 높은 확률 2-24인 차분 경로에 적용한다. 실험에 사용된 평문 쌍의 개수는 231개, 비밀키는 개이고, 실험 결과는 Table 4.와 같다.
Table 4. Experimental results of PRESENT’s 6 round trails
차분 경로 \(C^{P_{i}}(i=1, \ldots, 6)\)의 분포는 표본크기가 231으로 충분히 크기 때문에 Cpi의 분포들은 \(N\left(128, \frac{\sigma^{2}}{n}=\frac{127.99}{14336}=0.09^{2}\right)\)을 따른다. 정리한 내용을 바탕으로 귀무가설과 대립가설을
\(H_{0}: T_{C^{P_{i}}}\left(n_{p}, n_{k}\right)=128, H_{1}: T_{C^{P_{i}}}\left(n_{p}, n_{k}\right) \neq 128\)
이라 하고 유의수준 \(\alpha = 0.01\)에서 검정한다. 각 경로에 따른 Z에 대해, 표준정규분포Z0.005=2.58의 관측값 을 기준으로 |Z|\(\leq Z_{0.005}\)이면 기각할 수 없고, \(|Z|>Z_{0.005}\)이면 기각한다. \(C^{P_{i}}(i=1, \ldots, 6)\)에 대해 검정하면 모든 \(C^{P_{i}}\)에 대해, \(\mid Z \leq Z_{0.005}\)이므로 귀무가설 H0을 유의수준 \(\alpha=0.01\)에서 기각할 수 없다. 즉 실험에 적용한 PRESENT의 6라운드 차분 경로의 EMarkov와 실험을 통해 구한 확률이 통계적으로 모두 근사한다고 할 수 있다.
4.2 차분 확률의 분포 검증 : GIFT
본 절에서는 차분 확률의 분포가 평균과 분산이 \(N_{p} \times E_{\text {Markov }}\)인 푸아송분포를 따르는지를 확인하기 위해 GIFT에 적용하여 모집단의 모분산과 모평균을 검정한다. 모분산이 기각되는 경우에는 키에 따라 달라지는 차분 경로의 확률 분포 형태를 보기 위해 히스토그램을 이용하여 차분 확률의 분포를 확인한다.
실험에는 4라운드의 입출력이 동일한 차분 경로 중 가장 높은 확률로 알려진 2-20인 차분 경로 2개를 이용한다. 사용된 평문 쌍은 225개와 키 213.807개이고, 실험 결과는 Table 5.와 같다.
Table 5. Experimental results of GIFT’s 4 round iterative trails
실험 결과로부터 모분산을 추정하기 위해 귀무가설과 대립가설을
\(H_{0}: \sigma^{2}=32, H_{1}: \sigma^{2} \neq 32\)
라고 하고, 유의수준 \(\alpha=0.05\)에서 우측 검정한다. 검정 통계량 \(\chi^{2}=(n-1) s^{2} / \sigma^{2}\)을 자유도가 14335인 \(C^{G_{1}}\)과 \(C^{G_{2}}\)에 대해 계산하면 각각 \(\chi_{C^{G_{1}}}^{2}=14293.15\),\(\chi_{C^{G_{2}}}^{2}=1389738.69\)이다. 자유도가 14335인 유의수준 \(\alpha=0.05\)의 기준값은 \(\chi_{0,05}^{2}(14335)=14614.64\)이므로 \(C^{G_{1}}\)에 대해서는 귀무가설을 기각할 수 없지만, \(C^{G_{2}}\)에 대해서는 기각한다. 따라서 모평균을 검정할 때 \(C^{G_{1}}\)은 모분산을, \(C^{G_{2}}\)는 표본분산을 이용한다.
모평균을 추정하기 위해 귀무가설과 대립가설을
\(H_{0}: \bar{X}=32, H_{1}: \bar{X} \neq 32\)
라고 하고, 유의수준 \(\alpha=0.01\)에서 검정한다. \(C^{G_{1}}\)과 \(C^{G_{2}}\)에 대해 검정 통계량 \(Z=(\bar{X}-\mu) /(\sigma / \sqrt{n})\)을 계산하면 \(Z_{C^{C_{1}}}=0.084\), \(Z_{C^{C_{2}}}=-0.177\)이다. \(C^{G_{1}}\)과 \(C^{G_{2}}\)는 \(| Z| \leq Z_{0,005}=2.58\)이므로 유의수준 \(\alpha=0.01\)에서 귀무가설을 기각할 수 없다. 따라서 \(C^{G_{1}}\)과 \(C^{G_{2}}\)의 표본평균은 모평균에 근사하다.
즉 \(C^{G_{1}}\)과 \(C^{G_{2}}\)모두 모평균에는 근사하고,\(C^{G_{1}}\)의 표본분산은 모분산에 근사하지만 \(C^{G_{2}}\)의 표본분산은 모분산에 근사하지 않는다. 이 경우는 차분 확률의 분포를 확인하기 위해 히스토그램을 이용한다. Fig.3.과 Fig.4.는 \(C^{G_{1}}\),\(C^{G_{2}}\)의 분포의 형태를 나타낸 그래프이다. Fig.3.은 정규분포의 형태를 띠지만, Fig.4.는 정규분포의 형태를 띠지 않는다. [6]의 표본 추출 가정이 참이라면 차분 확률의 분포가 푸아송 분포를 따라야 하지만, 히스토그램의 결과를 통해 정리 1을 만족하지 않는 경우가 있음을 확인할 수 있다.
Fig. 3. Distribution of the number of right pairs with each fixed key for GIFT
Fig. 4. Distribution of the number of right pairs with each fixed key for GIFT
V. 키 스케줄을 변경한 결과 : GIFT
본 장에서는 4.2절에서 수행한 차분 확률의 분포를 GIFT에 적용하여 확인한 결과, 정규분포를 따르지 않는 경우의 원인이 키 스케줄의 영향인지를 확인하기 위해 라운드 함수 간 라운드 키와의 XOR 연산의 위치를 변경하며 모분산과 모평균을 검정한다.
Fig. 5. The round function of GIFT-64
Fig.5.는 GIFT-64의 라운드 함수로, 입력값이 S-box를 통과한 후에 순열을 거쳐 라운드 키와 오른쪽 2비트만 XOR 연산한다[14]. 4비트 S-box를 기준으로 가장 왼쪽 1비트는 라운드 상수와 XOR 연산한다. 라운드 키와의 XOR 연산은 라운드 함수의 일부이지만, XOR 연산의 위치에 따라 키 스케줄을 통한 라운드 키의 값을 0으로 고정하는 것으로 본다. 이에 따라 키 스케줄을 변경하는 것으로 간주하여 결과를 분석한다. 즉 키 스케줄이 표본 추출 가정에 미치는지를 분석하기 위해 라운드 키의 XOR 위치와 개수를 변경하며 GIFT에 적용하여 확인한다. 실험에 사용된 평문 쌍의 개수는 225개, 비밀키는 213.807개이다. Table 6.은 \(C^{G_{1}}\) 과 \(C^{G_{2}}\)에 대한 차분 분포의 평균과 분산을 나타낸 표이다.
Table 6. Experimental results of GIFT’s 4 round trails
실험 결과로부터 모분산을 추정하기 위해 귀무가설과 대립가설을
\(H_{0}: \sigma^{2}=32, H_{1}: \sigma^{2} \neq 32\)
라고 하고, 유의수준\(\alpha=0.05\) 에서 우측 검정한다. 자유도가 14335인 유의수준 \(\alpha=0.05\)의 기준값은 \(\chi_{0,05}^{2}(14335)=14614.64\)이다. 그러므로 \(C^{G_{1}}\)과 \(C^{G_{2}}\)에 대한 검정 통계량 X2은 \(C^{G_{1}}\)의 모든 XOR 연산의 경우의 수에 대해서는 귀무가설을 기각할 수 없지만, \(C^{G_{2}}\)에 대해서는 모든 XOR 연산의 경우의 수를 기각할 수 있다. 따라서 모평균을 검정할 때 \(C^{G_{1}}\)은 모분산을, \(C^{G_{2}}\)는 표본분산을 이용한다.
실험 결과로부터 모평균을 추정하기 위해 귀무가설과 대립가설을
\(H_{0}: \bar{X}=32, H_{1}: \bar{X} \neq 32\)
라고 하고, 유의수준 \(\alpha=0.01\)에서 검정한다. \(C^{G_{1}}\)과 \(C^{G_{2}}\)에 대해 검정 통계량 \(Z=(\bar{X}-\mu) /(\sigma / \sqrt{n})\)을 계산하면 \(C^{G_{2}}\) 의 XOR 연산의 위치가 *0*0와 00*0인 경우를 제외한 모든 경우에 대해 \(| Z| \leq Z_{0,005}=2.58\)이므로 유의수준 \(\alpha=0.01\)에서 귀무가설을 기각할 수 없다. 따라서 \(C^{G_{2}}\)의 XOR 연산의 위치가 *0*0와 00*0인 경우를 제외한 모든 경우의 표본평균은 모평균에 근사한다.
정규분포를 따르지 않는 이유가 키 스케줄의 영향인지를 확인하기 위해 모든 라운드 키를 임의로 생성하여 4비트 모두 XOR 연산을 수행하였다. 그러나 실험 결과를 통해 모평균과 모분산의 값이 기각되었던 차분 경로 \(C^{G_{2}}\)에 대해 여전히 기각됨을 확인할 수 있다. 이에 따라 모분산의 기각에 키 스케줄의 영향이 미치지 않음을 확인할 수 있었고, 이 결과 가정 1에 키 스케줄만의 영향이 아님을 알 수 있다. 또한, 차분 경로 \(C^{G_{1}}\)과 \(C^{G_{2}}\)에 대해 동일한 위치에서의 XOR 연산을 수행함에도, 평균과 분산의 결과값에 큰 차이가 있었으므로 키 스케줄만의 영향이 아님을 확인할 수 있다.
추가적으로 \(C^{G_{1}}\)의 XOR 연산의 위치가 *0*0와 00*0인 연산 결과의 평균을 통해 라운드 키의 XOR 위치가 확률에 큰 영향을 미침을 알 수 있다. Fig.4.를 통해 알 수 있듯이 \(C^{G_{2}}\)를 만족하는 평문 쌍의 개수를 없도록 만드는 키의 개수는 전체키 14336개 중 10724개이다. 높은 확률의 차분 경로에 대해 차분 경로를 만족하는 평문 쌍의 개수를 없도록 만드는 키의 비율은 74.8%이고, 이 경우에는 계속해서 0인 확률이 발생하므로 키에 따라 확률이 \(E_{\text {Markov }}\)와 크게 달라질 수 있다. 특히 분산이 작을수록 키에 따라 달라지는 차분 경로 확률의 분포가 평균에 근사하게 분포해 있음을 뜻하는데, \(C^{G_{1}}\)과 \(C^{G_{2}}\)에 대한 실험 결과의 분산 값은 약 100배 차이가 난다. 따라서 \(C^{G_{2}}\)의 분포는 \(C^{G_{1}}\)에 비해 평균에 멀리 퍼져있음을 알 수 있다. 즉 분산에 따라 특정키에서는 확률이 크게 높아지거나 낮아질 수 있으므로 키에 따라 \(E_{\text {Markov }}\)와 확률의 차이가 생기는 현상이 나타남을 알 수 있다.
VI. 결론
본 논문에서는 GPGPU 기술을 활용하여 얻은 데이터를 통해 차분 확률을 PRESENT와 GIFT에 적용하여 통계적으로 분석하였다. 마르코프 암호 가정에서 구한 기대 차분 확률의 타당성을 실험을 통해 구한 차분 확률이 마르코프 암호 가정 하에 구한 기대 차분 확률에 통계적으로 타당함을 보였다. 차분 확률의 분포가 푸아송분포를 따른다는 [6]의 정리1은 GIFT의 4라운드에 적용하여 만족하지 않는 경우가 있음을 실험을 통하여 보였다. 이 결과는 마르코프 암호 가정 하의 기대 차분 확률을 만족하지만, 차분 확률의 분포가 푸아송분포를 따르지 않는 경우를 보여준다. 제시한 그래프의 형태는 특정키에서의 차분 확률이 마르코프 암호 가정 하의 기대 차분 확률과 큰 차이가 날 수 있음을 뜻한다. 또한, 푸아송분포를 따르지 않는 원인이 키 스케줄의 영향인지를 확인하기 위하여 GIFT의 라운드 키의 XOR 연산 위치를 바꾸어 가며 차분 확률을 구하였다. 그리고 이 결과를 통해서 키 스케줄만의 영향이 아님을 확인하였다. 뿐만 아니라 라운드 키의 XOR 연산 위치가 차분 확률에 영향을 미친다는 사실을 통하여 키 스케줄이 차분 확률에 영향을 준다는 것을 확인할 수 있었다.
향후에는 GIFT의 차분 경로와 키에 따라서 차분 경로의 확률을 0으로 만드는 원인을 일반화하는 연구를 할 수 있을 것이다. 또한, GPGPU 기술을 활용하여 선형 근사 확률에도 동일하게 적용하여 효율적으로 분석할 수 있을 것이다.
* 본 논문은 2018년 한국정보보호학회 동계학술대회에서 발표한 우수논문을 개선 및 확장한 것임 * 본 연구는 고려대 암호기술 특화연구센터(UD170109ED)를 통한 방위사업청과 국방과학연구소의 연구비 지원으로 수행되었습니다.
References
- 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.
- Biryukov Alex, Patrick Derbez and Leo Perrin. "Differential analysis and meet-in-the-middle attack against round-reduced TWINE." International Workshop on Fast Software Encryption. Springer, Berlin, Heidelberg, pp. 3-27, Mar. 2015.
- Lai Xuejia, James L. Massey, and Sean Murphy. "Markov ciphers and differential cryptanalysis." Workshop on the Theory and Application of Cryptographic Techniques. Springer, Berlin, Heidelberg, pp. 17-38, Apr. 1991.
- O'Connor Luke and Jovan Dj Golic. "A unified markov approach to differential and linear cryptanalysis." International Conference on the Theory and Application of Cryptology. Springer, Berlin, Heidelberg, pp. 385-397, Nov. 1994.
- Vaudenay Serge. "On the security of CS-cipher." International Workshop on Fast Software Encryption. Springer, Berlin, Heidelberg, pp. 260-274, Mar. 1999.
- Daemen Joan and Vincent Rijmen. "Probability distributions of correlation and differentials in block ciphers." Journal of Mathematical Cryptology JMC 1.3 pp. 221-242. 2007
- Sun Ling, Wei Wang, and Meiqin Wang. "More Accurate Differential Properties of LED64 and Midori64." IACR. Transactions on Symmetric Cryptology, pp. 93-123, 2018.
- Luebke David, et al. "GPGPU: general-purpose computation on graphics hardware." Proceedings of the 2006 ACM/IEEE conference on Supercomputing. ACM, pp. 208, Nov. 2006.
- Stevens, Marc, et al. "The first collision for full SHA-1." Annual International Cryptology Conference. Springer, Cham, pp. 570-596, Aug. 2017.
- NVIDIA. NVIDIA CUDA Compute Unified Device Architecture: Programming Guide (Version 7.0), http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html,2014.
- Knudsen Lars R. and John E. Mathiassen. "On the role of key schedules in attacks on iterated ciphers." European Symposium on Research in Computer Security. Springer, Heidelberg, pp. 322-334, Sep. 2004.
- DEGROOT, Morris H.; SCHERVISH, Mark J. Probability and statistics. Pearson Education, 2012.
- Bogdanov Andrey, et al. "PRESENT: An ultra-lightweight block cipher." International Workshop on Cryptographic Hardware and Embedded Systems. Springer, Berlin, Heidelberg, pp. 450-466, Sep. 2007.
- Banik, Subhadeep, et al. "GIFT: a small PRESENT." International Conference on Cryptographic Hardware and Embedded Systems. Springer, Cham, pp. 321-345, Sep. 2017.