I. 서론
디지털 기술의 확산과 발전으로 보안의 중요성이 강조되고 있다. 다양한 디지털 기기와 네트워크가 일상생활과 산업 전반에 걸쳐 활용됨에 따라, 민감한 데이터를 보호하기 위한 암호화 기술이 필수적이다. 이 가운데, 경량 블록 암호 알고리즘은 자원 제한이 큰 IoT 기기와 같은 환경에서 주로 사용되며, 암호 알고리즘의 보완성 확보를 위해 다양한 연구가 진행되고 있다. 최근 이러한 경량 블록 암호의 안전성 평가와 취약점 탐색을 위한 수단으로 딥러닝 기술을 활용한 암호 분석 기법이 주목받고 있으며[1-7], 특히 차분 분석 공격에 딥러닝을 적용하여 암호 구조의 약점을 효과적으로 식별하려는 시도가 늘고 있다.
대표적으로 CRYPTO 2019에서 딥러닝 기술을 활용하여 경량 블록 암호 Speck의 안전성을 분석하는 신경망 구분자(Neural Distinguisher, ND)가 제안되었다[8, 9]. 신경망 구분자는 기존의 차분 분석 공격에 신경망을 적용한 것으로, 사람이 직접 비교 및 분석을 수행해야 하는 전통적인 차분 구분자보다 더 쉽게 암호문과 랜덤한 값을 구별할 수 있다. 하지만, 신경망 구분자 또한 암호 라운드가 증가함에 따라 성능이 저하되는 한계가 나타났다. 이를 해결하기 위해 다양한 성능 개선 연구가 진행되었다[9-13]. 그중 입력 데이터 형식과 다양한 가중치 함수의 적용을 통한 성능 개선 기술이 주목받고 있다. 최근에는 암호문 쌍과 키 쌍에 대한 차분을 학습시키는 연관키 신경망 구분자(Related-Key Neural Distinguisher, RKND)가 제안되었다[12]. 그러나 연관키 신경망 구분자의 성능 개선을 위한 학술적 분석은 미미한 수준에 머물러 있으며, 가중치 함수나 입력 데이터 형식을 통한 성능 최적화가 필요하다.
이에 본 논문에서는 신경망 구분자의 성능 개선을 위해 제안된 입력 데이터 형식과 가중치 함수 적용 기술을 다루고자 한다, 특히, 가중치 함수는 구분자의 출력값을 극대화시키는 데 중요한 역할을 하며, 이에 따라 구분자의 출력값 분포 특성이 성능에 영향을 미친다. 따라서, 본 논문에서는 암호 알고리즘 및 구분자의 종류에 따른 출력값 분포 특성에 대해 심도 있게 분석한다. 이를 통해 Simeck 32/64에 대해 적합한 가중치 함수를 선별하고, 연관키 신경망 구분자에 가중치 함수를 적용하여 암호 알고리즘 및 구분자 종류에 따라 구분자의 출력값 분포가 달라져 적절한 가중치 함수가 달라질 수 있다는 가능성을 제시한다.
연구의 주요 목표는 다음과 같다.
⦁ 가중치 함수가 성능을 향상시키는 원인을 분석하고 암호 알고리즘 및 구분자 종류에 따른 구분자의 출력값 분포 차이를 규명한다.
⦁ 가중치 함수가 신경망 구분자의 성능에 미치는 영향을 분석하고, Simeck 32/64 알고리즘에 적용하여 적절한 가중치 함수를 선별한다.
⦁ 가중치 함수를 연관키 신경망 구분자에 적용하여 각 암호 알고리즘에 대한 적절한 가중치 함수 선정을 통한 성능 향상 방안을 도출한다.
상기 목표를 위해 본 연구에서는 대표적인 경량 블록 암호 알고리즘인 Speck 32/64, Simon 32/64, Simeck 32/64 알고리즘을 대상으로 실험을 진행하였으며, 다양한 입력 데이터 형식과 가중치 함수에 따른 성능 변화를 분석한다. 이를 통해 기존 신경망 구분자 및 연관키 신경망 구분자의 성능을 향상시킬 수 있는 방안을 모색하여 암호 알고리즘의 안전성 검증 기술을 강화한다. 나아가, 신경망 구분자의 성능 개선 기술을 통해 딥러닝 기술이 암호 분석에서 어떻게 활용될 수 있는지에 대한 구체적인 사례를 제공하며, 신경망 기반 분석 기법이 차세대 암호 분석 기술로서의 가능성에 대한 여부를 제시한다.
본 논문의 구성은 다음과 같다. 2장에서는 경량 블록 암호 알고리즘, 차분 분석 공격, 신경망 구분자 등의 배경지식과 신경망 구분자의 성능 개선 기술 동향을 정리한다. 3장에서는 구분자의 출력값 분포 특성에 대해 분석하고 이를 기반으로 분포 특성에 따른 적절한 가중치 함수 선별 방법에 대해 설명한다. 4장에서는 3장에서 설명한 사항에 대한 실험 결과를 제시하며, 5장에서는 본 논문의 내용을 정리하고 결론을 맺는다.
II. 관련 연구
본 장에서는 차분 분석 공격을 설명하며, 이를 기반으로 신경망 구분자에 대해 분석한다. 또한, 본 논문의 목표 알고리즘인 경량 블록 암호 Speck, Simon, Simeck을 간략하게 분석한다.
2.1 Notation
본 절에서는 논문에서 사용되는 Notation과 그 의미를 정의하고 있으며, Table 1.은 본 논문에서 사용되는 Notation을 나타낸다.
Table 1. Description of the major notation

2.2 경량 블록 암호
Speck과 Simon은 2013년 NSA(National Security Agency)에서 공개적으로 발표한 경량 블록 암호로써 Speck은 소프트웨어 구현 성능에 최적화되었으며, Simon은 하드웨어 구현에 최적화되었다. Simeck은 하드웨어 구현 비용을 개선하기 위해 제안된 경량 블록 암호이다[14, 15].
본 논문에서 다루고 있는 경량 블록 암호 알고리즘은 블록 크기(block size)와 키 크기(key size)를 각각 2n과 mn으로 나타낸다. 여기서 n은 워드크기(word size)를 의미하며, 이는 암호 알고리즘의 기본 단위가 되는 데이터 크기를 비트 단위로 나타낸다. 블록 크기 2n은 두 개의 워드 크기로 구성되어 암호화 및 복호화 과정에서 처리되는 전체 데이터의 크기를 나타낸다. 키 크기 mn은 m개의 워드크기로 구성된 비밀 키의 크기를 나타낸다.
2.2.1 Speck
Speck은 ARX(Addition-Rotation-XOR) 구조로, Addition modulo 2n(⊞), 비트 단위 XOR(⊕), 순환 왼쪽·오른쪽 시프트 γ bit 연산(⋘,≫)으로 구성되어 있다. Speck 알고리즘은 Speck 2n/mn으로 표기되며, n∈{16, 24, 32, 48, 64}, m∈{2, 3, 4}이다. Speck 알고리즘의 라운드 함수는 식 (1)과 같이 정의되며, 라운드 수는 블록 크기와 키 크기에 따라 22-34 라운드로 구성된다.
\(\begin{align}\left\{\begin{array}{l}L^{\prime}=((L \gg \alpha) \boxplus R) \oplus k_{i} \\ R^{\prime}=(R \lll \beta) \oplus((L \gg \alpha) \boxplus R) \oplus k_{i}\end{array}\right.\end{align}\) (1)
ki는 해당 라운드의 키로, 초기 키k = (k0, l0, ⋯, lm-2)를 활용하여 아래 키 스케줄을 수행한다. 최종적으로 생성된 키는 K = {km-1, km-2, ..., k0) 형태로 생성되며, 키 스케줄 함수의 수식은 다음과 같다.
\(\begin{align}\left\{\begin{array}{l}l_{i+m-1}=k_{i} \boxplus\left(l_{i} \ggg \alpha\right) \oplus i \\ k_{i+1}=\left(k_{i} \mathbb{<} \beta\right) \oplus l_{i+m-1}\end{array}\right.\end{align}\) (2)
2.2.2 Simon
Simon은 AND-RX(AND-Rotation-XOR) 구조로, 비트 단위 AND(⊙), 비트 단위 XOR(⊕), 순환 왼쪽 시프트 γ bit 연산(⋘)으로 구성되어 있으며, Feistel 구조로 연산을 수행한다. Simon 2n/mn으로 표기되며, n∈{16, 24, 32, 48, 64}, m∈{2, 3, 4}이다. Simon 알고리즘의 라운드 함수는 식 (3)과 같이 정의되며, 라운드 수는 블록 크기와 키 크기에 따라 32-72 라운드로 구성된다.
\(\begin{align}\left\{\begin{array}{l}L^{\prime}=(R \oplus((L \ll \alpha) \odot(L \lll \beta)) \\ \quad \oplus(L \ll \gamma)) \oplus k_{i} \\ R^{\prime}=L\end{array}\right.\end{align}\) (3)
ki는 해당 라운드의 키로 키 스케줄에서는 라운드 상수 c와 시퀀스 값(zj)i을 사용하며 수식은 아래와 같다.
ki+m = c⊕(zj)i⊕k⊕(ki+1 ≫ 1)⊕(ki+3 ≫ 4)⊕(ki+3 ≫ 3)⊕ki+1 (4)
2.2.3 Simeck
Simeck은 Simon의 하드웨어 구현 비용을 개선하기 위해 제안된 경량 블록 암호로 Simon과 동일하게 AND-RX 구조를 사용하고 있으며, Feistel 구조를 채택하여 연산을 수행하고 있다. Simeck 2n/4n으로 표기되며, n∈{16, 24, 32}이다. Simeck 알고리즘의 라운드 함수는 식 (5)와 같이 정의되며, 라운드 수는 블록 크기와 키 크기에 따라 32-44 라운드로 구성된다.
\(\begin{align}\left\{\begin{array}{l}L^{\prime}=(R \oplus(L \odot(L \mathbb{K} \beta)) \oplus(L \lll \gamma)) \oplus k_{i} \\ R^{\prime}=L\end{array}\right.\end{align}\) (5)
Simeck은 Speck의 키 스케줄과 유사한 것으로, 초기 키는 (t2, t1, t0, k0)로 구성되며 첫 4라운드 동안 사용된다. 다음 라운드부터는 라운드 키 ki를 생성하기 위해 아래 수식의 키 스케줄이 수행되며, f(x) = x⊙(x ≪ β)⊕(x ≪ γ)으로 라운드 함수를 의미한다.
\(\begin{align}\left\{\begin{array}{l}k_{i+1}=t_{i} \\ t_{i+3}=k_{i} \oplus f\left(t_{i}\right) \oplus c \oplus\left(z_{j}\right)_{i}\end{array}\right.\end{align}\) (6)
2.3 차분 분석 공격
차분 분석(differential cryptanalysis) 공격은 선택적 평문 공격(chosen plaintext attack) 중 하나로, 차분 특성을 활용하여 암호키를 추론하고 이를 통해 키를 복구하는 방식이다[16-18]. 이때 두 입력값의 차이가 암호화 과정에서 출력값의 차이로 어떻게 변하는지를 설명하는 ‘차분 특성’은 이 공격에서 중요한 개념이다.
암호 알고리즘은 암호문이 랜덤하게 생성될수록 예측하거나 해독하기가 어려워지므로, 높은 랜덤성(randomness)이 암호의 안전성을 높이는 요소로 작용한다[19]. 하지만 실제로 완벽한 랜덤성을 가진 암호문을 생성하는 것은 어렵다. 이를 해결하기 위해 암호 알고리즘은 비선형성을 도입하여 복잡성을 높이고, 암호문이 더욱 랜덤하게 보이도록 한다[20]. 그러나 비선형성을 완벽하게 구현하기는 어렵기 때문에 특정 입력 차분에 대해 출력 차분이 균일하지 않고 특정 차분으로 나타나는 경향이 있다. 이러한 차분 특성을 이용한 차분 분석 공격은 무차별 대입 공격(brute force attack)보다 효율적으로 암호를 분석할 수 있으며, 블록 암호의 안전성을 평가하는 중요한 기준 중 하나로 간주된다.
2.4 신경망 구분자
차분 분석 공격의 주요 기법 중 하나인 차분 구분자(differential distinguisher)는 특정 차분을 갖는 암호문과 랜덤하게 생성된 암호문을 구별하는 데 사용된다. 이 과정은 다음과 같이 진행된다. 먼저 특정 차분을 갖는 여러 쌍의 평문을 선택하고, 이를 암호화하여 대응하는 암호문 쌍을 얻는다. 이후, 각 암호문 쌍의 차분을 분석하고, 평문 쌍의 차분에 대응하는 암호문 쌍의 차분 경로 확률을 계산한다. 만약 계산된 확률값이 랜덤하게 생성된 암호문과 비교했을 때 통계적으로 유의미하게 높다면, 해당 암호문 쌍이 특정 차분을 갖는 암호문으로 유추하게 된다.
그러나 기존의 차분 구분자는 사람이 차분 분포표를 통해 직접 비교/분석을 수행하기 떄문에, 랜덤한 암호문과 특정 차분을 갖는 암호문을 구별하는 데 시간이 많이 소요되고 비효율적일 수 있다. 이에, 효율성과 편리성 향상을 위해 딥러닝 기술을 도입한 신경망 구분자(Neural Distinguisher, ND)가 새롭게 제안되었다[9].
CRYPTO 2019에서 처음 제안된 신경망 구분자는 차분 구분자와 동일하게 특정 차분을 갖는 암호문과 랜덤한 암호문을 구별한다. 여기서 특정 차분을 갖는 암호문은 두 평문 쌍을 암호화하여 생성한 데이터를 의미하며, 두 평문 쌍은 특정 차분을 갖는다. 반면, 랜덤한 암호문은 무작위하게 생성된 두 평문쌍을 암호화하여 생성한 데이터를 의미한다. 이러한 신경망 구분자는 데이터 생성 단계, 수집 및 전처리 단계, 학습 단계로 구성된다.
데이터 생성 단계에서는 특정 차분을 갖는 평문쌍을 선택하여 이를 암호화하여 암호문 쌍을 생성한다. 이때, 특정 차분을 갖는 평문 쌍은 암호화 과정 후, 특정 출력 차분을 가질 확률이 높아진다. 다음으로 무작위로 생성된 평문 쌍을 암호화하여 랜덤한 암호문 쌍을 생성하며, 두 종류의 암호문 데이터는 신경망이 학습할 수 있는 데이터로 사용된다.
데이터 수집 및 전처리 단계에서는 앞서 생성된 특정 차분을 갖는 암호문 쌍과 랜덤한 암호문 쌍을 수집하고, 이를 신경망이 학습할 수 있도록 전처리한다. 일반적으로 암호문 쌍의 차분 정보가 함께 입력 데이터로 사용되며, 신경망이 효과적으로 학습할 수 있도록 데이터를 정규화하거나 딥러닝 학습에 적합한 입력 데이터 형식으로 변환한다.
학습 단계에서는 신경망 모델이 특정 차분을 갖는 암호문 쌍과 랜덤한 암호문 쌍을 입력받아 이를 구별할 수 있도록 학습된다. 학습 데이터에는 암호문쌍과 각 데이터에 대한 레이블(특정 차분을 가진 암호문 0, 랜덤한 암호문 1)이 포함된다. 학습이 완료된 신경망 구분자는 새로운 암호문 데이터를 입력받았을 때 해당 데이터가 특정 차분을 갖는 암호화된 데이터 인지 랜덤하게 생성된 데이터인지 예측할 수 있다. 이처럼 신경망 구분자는 기존의 수작업에 의존하던 차분 구분자와 다르게 자동 분석이 가능하며, 더욱 효율적이고 정확하게 암호문을 분석 및 구분할 수 있다.
2.5 연관키 신경망 구분자
차분 분석 공격은 입력값 및 출력값의 차분만을 고려하지만, 연관키 차분 분석(related key differential cryptanalysis) [21-23] 공격은 암·복호화에 사용되는 암호화 키의 차분을 함께 분석한다. 이 공격 기법은 암호 알고리즘의 키 스케줄링에서 발생하는 취약점을 이용하며, 연관된 여러 키 간의 차분을 분석해 공격을 수행하는 방식이다. 이러한 분석 방법에 신경망 기술을 도입하여, 라운드 수가 증가함에 따라 성능이 저하되는 기존 신경망 구분자의 한계를 극복하기 위해 연관키 신경망 구분자(Related Key Neural Distinguisher, RKND)가 제안되었다[12]
기존의 신경망 구분자는 특정 차분을 가진 평문 쌍을 하나의 랜덤 키 k로 암호화하여 데이터를 생성하는 방식이다. 이는 단일 키로 평문 쌍을 암호화한 뒤, 생성된 암호문 쌍의 차분을 분석하여 신경망 구분자가 학습할 수 있도록 데이터를 제공한다. 그러나, 연관키 신경망 구분자는 두 개의 키(k, k′)을 사용하여 데이터를 생성한다. 이 과정에서 특정 차분을 가진 평문 쌍뿐만 아니라, 서로 차분이 있는 두 개의 키를 사용하여 암호화가 진행된다. 즉, 암호화된 후 생성된 암호문 쌍의 차분을 학습에 활용하는데, 이 과정에서 키 쌍의 차분과 평문 쌍의 차분이 모두 고려된다.
이러한 연관키 신경망 구분자는 데이터 생성 및 전처리 단계, 신경망 학습 단계로 구성된다. 먼저 데이터 생성 및 전처리 단계에서는 특정 차분을 가진 평문 쌍과 키 쌍을 선택하여 암호화하여 암호문 쌍을 생성한다. 생성된 암호문 쌍은 신경망이 학습할 수 있도록 적절한 입력 데이터 형식으로 변환하는 전처리 과정을 거친다. 이 과정에서 암호문 쌍의 차분 정보와 키 쌍의 차분 정보가 함께 사용된다. 신경망 학습 단계에서는 전처리된 데이터를 신경망에 입력하여 학습이 진행된다. 이때 신경망은 암호문 쌍과 키쌍의 차분 정보를 기반으로 암호화 과정에서 발생하는 특정 패턴을 학습한다.
이러한 학습 과정을 통해 연관키 신경망 구분자는 기존 신경망 구분자보다 더욱 강력한 공격을 수행한다. 실제로 연관키 신경망 구분자는 더 많은 라운드를 구별할 수 있고, 더 높은 정확도를 제공하여 암호 알고리즘의 안전성을 평가하는 데 중요한 도구로 사용될 수 있다.
2.6 신경망 구분자의 성능 개선 기술 분석
신경망 구분자가 제안되면서 기존의 차분 구분자 보다 더 효율적이고 편리하게 특정 차분을 갖는 암호화된 데이터와 랜덤한 데이터를 구별할 수 있게 되었다. 이러한 성능 향상은 암호화 키를 추출하거나 예측하여 암호화된 데이터를 해독할 가능성을 높였으며, 이는 암호학 분야에서 매우 위협적인 공격으로 작용할 수 있다. 이러한 이유로 신경망 구분자의 성능을 향상시키기 위한 다양한 연구들이 활발하게 진행되고 있다[9-13]. 따라서 본 절에서는 입력 데이터 형식 및 가중치 함수를 통한 신경망 구분자의 성능 개선 기술 동향에 대해 분석한다.
2.6.1 입력 데이터 형식을 통한 신경망 구분자의 성능 향상
딥러닝에서는 입력 데이터의 형태가 학습 가능성과 모델의 성능에 중요한 역할을 한다[24]. 이에, 입력 데이터 형식에 따른 신경망 구분자의 성능 개선을 목표로 다양한 연구가 진행되었으며, 여러 입력 데이터 형식들이 제안되었다[10-12].
처음 제안되었던 신경망 구분자[9]는 암호문 쌍(C, C′ )을 (CL, CR, C'L, C'R)로 변환하여 입력 데이터로 사용하였다. 이후, 신경망 구분자의 성능을 높이기 위해 다양한 입력 데이터 형식이 도입되었으며, 이러한 입력 데이터 형식은 해당 라운드 암호문쌍의 차분을 포함하는 방식으로 제안되었다, 즉, 단순히 암호문 쌍을 입력하는 것이 아니라 차분 정보를 포함시킴으로써 신경망 구분자의 성능을 개선하고자 하였다. 제안된 입력 데이터 형식은 다음과 같다.
① (∆rL, ∆rR)
② (CR, C'R, ∆r-1R)
③ (∆rL, ∆rR, CL, CR, C'L, ∆r-1R, ∆r-2R)
이때 ∆rL = CrL⊕Cr'L과 ∆rR = CrR⊕Cr'R은 r-라운드 암호문에 대한 차분을 의미하는 것으로 ∆r-1R은 (r-1)-라운드 암호문에 대한 차분, ∆r-2R은 (r-2)-라운드 암호문에 대한 차분을 의미한다.
Simon 알고리즘을 대상으로 입력 데이터 형식에 따른 신경망 구분자의 성능을 분석한 결과, 데이터 형식이 ∆rL, ∆rR, CL, CR, C'L, C'R, ∆r-1R, ∆r-2R 일 때 가장 높은 정확도를 보였으며 기존 입력 데이터 형식보다 약 37% 향상되었다. 또한, ∆rL, ∆rR의 경우 약 12%, CR, C'R, ∆r-1R는 약 36% 향상되어 처음 제안된 신경망 구분자보다 더 높은 성능을 보였다.
2.6.2 가중치 함수를 통한 신경망 구분자의 성능 향상
신경망 구분자는 특정 차분을 가진 평문을 암호화한 데이터와 랜덤한 값을 암호화한 데이터를 입력으로 받아 0과 1 사이의 값을 출력한다. 출력값이 1에 가까울수록 특정 차분을 가진 평문을 암호화한 데이터로 분류되며, 이를 통해 암호문의 특성을 파악할 수 있다. 이러한 출력값은 가중치 함수를 통해 극대화되어, 신경망 구분자의 성능을 향상시킬 수 있다.
처음 제안된 신경망 구분자[9]는 신경망 구분자의 성능을 높이기 위해 Key averaging 알고리즘을 적용하였다. Fig. 1.은 [9]에서 제안된 Key averaging 알고리즘을 나타낸 것으로, 이 알고리즘은 신경망 구분자의 출력값에 \(\begin{align}\frac{1}{1-x}\end{align}\) 형태의 가중치 함수를 적용하여 성능을 최적화하는 방식이다.

Fig. 1. Key averaging algorithm[9]
Key averaging 알고리즘이 적용된 신경망 구분자는 학습 단계, 복호화 단계, 신경망 구분자의 예측 단계, Key averaging 단계로 구분할 수 있으며, Fig. 2.는 이러한 과정을 도식화로 나타낸 것이다.

Fig. 2. Process of distinguisher based on Key averaging algorithm
먼저 학습 단계는 신경망 구분자를 학습시키는 과정으로 특정 차분을 가진 평문 쌍을 암호화한 데이터와 랜덤하게 생성된 값을 암호화한 데이터를 구분할 수 있도록 학습시키는 단계이다.
복호화 단계에서는 특정 차분을 가진 평문 쌍을 (r+1)-라운드로 암호화한 데이터 (C0, C1)와 랜덤한 값을 (r+1)-라운드로 암호화한 데이터 (R0, R1)을 생성한다. 암호화된 데이터들을 (r+1)-라운드 키가 될 수 있는 키 후보군 k∈{0, 1, ..., 216}으로 한 라운드만 복호화한다. 이 과정은 Fig. 1에서 Line 1-2를 의미하며, 복호화된 데이터를 (D0[k], D1[k])라고 할 때, 총 216개의 (D0[k], D1[k]) 복호화된 암호문이 출력된다.
신경망 구분자의 예측 과정은 학습이 완료된 신경망 구분자에 216개의 (D0[k], D1[k]) 복호화된 암호문을 입력한다. 이때 신경망 구분자의 출력값은 0과 1사이의 값으로 나타나며, 이 과정은 Fig. 1.에서 Line 3을 의미한다.
Key averaging 과정에서는 앞선 신경망 구분자의 출력값을 \(\begin{align}\frac{1}{1-x}\end{align}\) 가중치 함수에 입력하여 최종 출력값을 계산한다. 이 과정은 Fig. 1.에서 Line. 4-7에 해당하며, 가중치 함수를 통해 신경망 구분자의 성능을 극대화한다. 이는 신경망 구분자의 성능을 높이기 위한 전처리 과정으로, 입력 데이터의 분포 특성을 극대화시키는 데 기여한 것으로 추정되었다. 이에 신경망 구분자의 성능 향상 원인에 대해 분석이 이루어졌으며, \(\begin{align}\frac{1}{1-x}\end{align}\) 외에 Tangent, ReLu(Rectified Linear Unit), Step 함수와 같은 가중치 함수를 사용하여 출력값 분포를 극대화하기 위한 연구가 진행되었다[13].
가중치 함수는 입력되는 데이터들의 분포 특성을 극대화하는 역할을 하며, 입력 데이터에 따라 신경망 구분자의 출력값 분포가 달라질 수 있다. 이에 신경망 구분자의 정확도가 유사한 6라운드 Speck 32/64와 8라운드 Simon 32/64에 대한 신경망 구분자의 출력값 분포를 분석하였다[13].
Fig. 3.은 Speck 32/64와 Simon 32/64에 대한 신경망 구분자의 출력값 분포를 나타내는 것으로, Speck의 경우 출력값이 0과 1 사이의 중간값에도 분포되어있는 것을 확인할 수 있다. 그러나 Simon의 경우 출력값이 양극단으로 분포되어있는 것을 확인할 수 있다. 이를 통해 암호 알고리즘의 종류에 따라 신경망 구분자의 출력값 분포가 다르게 나타나는 것을 알 수 있었다. 따라서 [13]에서는 신경망 구분자의 출력값 분포를 극대화시킬 수 있는 최적의 가중치 함수가 암호 알고리즘마다 다를 것으로 예상하여 Speck과 Simon에 대한 최적의 가중치 함수를 찾기 위한 연구를 진행하였다. 가중치 함수로는 \(\begin{align}\frac{1}{1-x}\end{align}\), Tangent, ReLU, Step 함수를 활용하였으며, 신경망에 적용시킨 후 신경망 구분자의 성능을 비교하였다. Table 2.는 Speck 32/64와 Simon 32/64를 대상으로 진행한 가중치 대체 실험 결과를 나타내는 것으로, Speck 32/64는 6라운드와 7라운드에서 각각 0.796, 0.633으로 \(\begin{align}\frac{1}{1-x}\end{align}\) 함수를 사용했을 때 가장 높은 성능을 보였다. 그러나 Simon 32/64의 경우, Speck 32/64를 대상으로 진행한 실험과 다르게 8라운드에서 0.822로 Tangent 함수를 사용했을 때 가장 높은 성능을 보였다. 이는 Speck 32/64와 다르게 Simon 32/64에서는 \(\begin{align}\frac{1}{1-x}\end{align}\) 함수보다 Tangent 함수가 신경망 구분자의 출력 분포 특성을 잘 분류할 수 있음을 입증하고 있다.

Fig. 3. Neural network prediction value distribution of Speck and Simon. (left) 6-round Speck 32/64. (right) 8-round Simon 32/64[13]
Table 2. Accuracy of neural distinguisher for Speck 32/64, Simon 32/64 according to the weight functions [13]

위 실험은 신경망 구분자의 출력값 분포 특성에 따라 특정 암호 알고리즘에 적합한 가중치 함수가 달라질 수 있음을 시시한다. 그러나 이러한 결과는 Speck 32/64와 Simon 32/64 알고리즘에 한정된 것이며, 다양한 암호 알고리즘에서도 동일한 결과를 보일지에 대한 검증은 부족하다. 따라서, 본 논문에서는 Simeck 32/64 알고리즘에 따른 출력값 분포 특성을 분석하고, 적합한 가중치 함수를 선별한다. 아울러, 새로 제안된 연관키 신경망 구분자[12]에도 가중치 함수를 적용하여 암호 알고리즘뿐만 아니라 구분자의 종류에 따라서도 적절한 가중치 함수가 달라질 수 있음을 심층적으로 분석하고자 한다.
III. 신경망 구분자 및 연관키 신경망 구분자의 출력값 분포 특성 분석
신경망 구분자의 성능을 개선하기 위해 다양한 기술이 제안되었으며, 대표적으로 입력 데이터 형식과 가중치 함수의 적용이 있다. 그중에서도 가중치 함수는 구분자의 출력값 분포 특성을 극대화하여 성능을 높이는 중요한 역할을 한다. 이에 따라 구분자의 성능을 최적화하기 위해서는 구분자의 출력값 분포 특성이 중요한 요소로 작용된다. 따라서 본 장에서는 암호 알고리즘과 신경망 구분자의 종류에 따른 구분자의 출력값 분포 특성을 분석한다. 또한, 이를 기반으로 Simeck 32/64와 연관키 신경망 구분자의 출력 분포 특성에 따른 성능 개선 방안을 제시한다. 특히 구분자의 출력값 분포 특성에 따라 각 암호 알고리즘의 적절한 가중치 함수를 선별하고, 입력 데이터 형식과 가중치 함수에 따른 신경망 구분자의 성능 변화를 기반으로 상관관계를 분석한다. 이를 기반으로 한 실험 결과는 4장에서 분석한다.
3.1 신경망 모델
처음 제안된 신경만 모델은 암호 해독을 위해 Residual block을 활용하여 설계된 합성곱 신경망(convolution neural network) 구조를 사용한다. Residual block은 잔차 연결을 통해 깊은 신경망에서도 효율적으로 학습할 수 있는 구조로, 신경망이 깊어짐에 따라 발생할 수 있는 기울기 소실 문제를 해결한다[25]. 이러한 구조적 특징을 통해 신경망 모델은 복잡한 데이터 패턴을 효과적으로 학습할 수 있게 된다.
그러나, 본 연구에서는 SE block(Squeeze-and Excitation block)과 Residual block을 결합한 SE-ResNet 구조를 사용한다. 먼저, SE block은 주로 합성곱 신경망에서 데이터 간 상호 의존성을 학습하여 모델의 표현력을 높이는 역할을 한다. 이는 각 데이터의 중요도를 학습하여 강조하거나 억제하는 과정을 포함한다[26]. 따라서 Residual block과 SE block을 결합한 SE-ResNet은 데이터의 중요도를 평가하여 중요한 부분을 강조하는 과정을 통해 더 정확한 예측이 가능하도록 한다.
이에 본 연구에서는 SE-ResNet 모델을 사용하여 학습을 진행하며, 모델의 구조는 Fig. 4.와 같다. SE-ResNet 모델은 입력 계층, 반복 계층, 예측 계층으로 구성된다. 입력 계층은 하나의 1D Convolution Layer와 두 개의 Dense Layer를 사용하여 훈련 데이터를 입력받는다.

Fig. 4. SE-ResNet Scheme[9]
반복 계층에서는 각 모듈에 2개의 1D Convolution Layer와 1개의 SE 블록이 포함된 5개의 SE-Residual 블록을 사용한다. 학습을 보다 안정적으로 만들고 기울기 소실 문제를 완화하기 위해 각 1D Convolution Layer 뒤에 Batch Normalize Layer를 적용한 다음 Activation Layer에 ReLU 함수를 적용한다.
마지막으로 예측 계층에서는 데이터가 앞선 계층에서 출력된 데이터를 1차원으로 평탄화한다. 또한, batch size는 30000으로 설정했으며, 학습 과정에서 학습률(learning rate)을 주기적으로 변화시키는 cyclic learning rate를 사용한다. 이때 사용되는 cyclic learning rate는 식 (7)과 같으며, ⍺ = 0.0001, β = 0.003, n = 29로 설정한다.
\(\begin{align}l_{i}=\alpha+\frac{(n-1) \bmod (n+1)}{n} \cdot(\beta-\alpha)\end{align}\) (7)
최적화 함수, 손실 함수, 정규화 함수는 각각 Adam(Adaptive Moment Estimation), 평균 제곱오차(Mean Squared Error, MSE), L2 정규화(L2 regularization)를 사용하며, 120 epoch로 훈련된다.
3.2 입력 데이터 형식에 따른 신경망 구분자의 성능 분석
[12]에서 Simon 32/64를 대상으로 입력 데이터 형식 변화를 통해 신경망 구분자의 성능을 비교하는 실험을 진행하여, 입력 데이터 형식에 따른 신경망 구분자의 성능 향상 변화를 실험적으로 검증하였다. 이에 본 절에서는 Simon 32/64 알고리즘 외에 Speck 32/64, Simeck 32/64 알고리즘을 대상으로 입력 데이터 형식에 따른 신경망 구분자의 성능을 분석한다.
본 실험에서는 Simon 32/64를 대상으로 진행한 실험과 동일한 입력 데이터를 사용한다. 이러한 입력 데이터 형식은 입력 데이터 개수에 따라 Data form_2, Data form_3, Data form_4, Data form_8로 정의하고 있으며, Table 3.은 입력 데이터 형식을 표로 나타낸 것이다. 또한, Speck 32/64, Simon 32/64, Simeck 32/64 알고리즘의 전체 라운드 수는 각각 다르기 때문에 신경망 구분자가 비슷한 정확도를 보이는 라운드 수를 기준으로 실험을 진행하여 각 알고리즘 간의 성능을 공정하게 비교한다. 따라서 전체 라운드 수가 각각 22인 Speck, 32인 Simon, 32인 Simeck 알고리즘 중, 신경망 구분자의 정확도가 유사한 6라운드 Speck, 8라운드 Simon, 9라운드 Simeck 알고리즘을 대상으로 실험을 진행한다.
Table 3. Definition of data format

실험과정은 다음과 같으며, Fig. 5.는 실험과정을 도식화로 나타낸 것이다. 각 암호 알고리즘에 맞는 라운드에 대해 특정 차분을 갖는 평문 쌍과 랜덤한 값을 암호화한 데이터를 생성한 후, 선정한 입력 데이터 형식으로 변환하여 데이터 전처리 과정을 수행한다. 데이터 전처리 과정을 수행한 후, 변환된 데이터를 입력으로 받아 신경망 구분자를 학습시키며, 학습이 완료된 신경망 구분자의 정확도를 기준으로 각 데이터 형식에 따른 성능 변화를 분석한다. 6라운드 Speck 32/64, 8라운드 Simon 32/64, 9라운드 Simeck 32/64 알고리즘에 대해 각각 동일한 실험을 진행하며, 이를 통해 각 입력 데이터 형식이 신경망 구분자의 성능에 미치는 영향을 분석한다.

Fig. 5. Process of neural distinguisher‘s accuracy to the input data form
3.3 가중치 함수와 입력 데이터 형식에 따른 신경망 구분자의 성능 기반 상관관계 분석
앞선 연구에서 다양한 경량 블록 암호를 대상으로 가중치 함수와 입력 데이터 형식에 따른 신경망 구분자의 성능 개선 기술을 분석했다. 본 항에서는 입력 데이터 형식과 가중치 함수에 따른 신경망 구분자의 성능을 기반으로 상관관계를 분석한다.
본 실험에서는 가중치 함수 대체 실험에서 가장 높은 성능을 보였던 \(\begin{align}\frac{1}{1-x}\end{align}\), Tangent 함수를 가중치 함수로 선정했으며, [6-9]에서 제안된 입력 데이터 형식 Data form_2, Data form_3, Data form_4, Data form_8을 선정하여 신경망 구분자의 성능을 분석한다. 또한, Simon 32/64 알고리즘을 대상으로 연구를 진행하며 9라운드 암호문에 대한 신경망 구분자의 성능을 분석한다.
실험과정은 다음과 같다. Simon 32/64 알고리즘을 이용하여 특정 차분을 갖는 평문 쌍과 랜덤한 값을 암호화한 데이터를 생성한 후, 선정한 입력 데이터 형식으로 변환시켜 데이터 전처리 과정을 수행한다. 변환된 데이터를 입력으로 받아 신경망 구분자를 학습시키며, 학습이 완료된 신경망 구분자에 Key averaging 알고리즘을 적용하여 신경망 구분자의 정확도를 기준으로 각 데이터 형식에 따른 성능 변화를 분석한다. 선정한 가중치 함수를 대체한 후 위 과정을 반복하며, 기존의 신경망 구분자와 가중치 함수를 적용한 신경망 구분자의 성능 변화를 계산한다. 이를 통해 입력 데이터 형식과 가중치 함수에 따른 신경망 구분자의 성능 간의 상관관계에 대해 분석한다.
3.4 구분자의 출력값 분포 특성 분석
본 절에서는 구분자의 출력값 분포 특성 차이가 성능 향상에 미치는 영향에 대해 분석하고, 이러한 분포 특성에 따라 적절한 가중치 함수를 선별하는 방법에 대해 설명한다.
3.4.1 암호 알고리즘에 따른 신경망 구분자의 출력값 분포 특성 분석
[13]에서 Speck 32/64와 Simon 32/64를 대상으로 진행한 가중치 함수 대체 실험을 통해 각 암호 알고리즘마다 최적의 가중치 함수가 존재함이 실험적으로 입증되었다. Speck 32/64의 경우 \(\begin{align}\frac{1}{1-x}\end{align}\) 함수를 사용했을 때 가장 높은 성능을 보인 반면, Simon 32/64의 경우 Tangent 함수를 사용했을 때 가장 높은 성능을 보였다. 이에 본 항에서는 Simeck 32/64 알고리즘에 대한 신경망 구분자의 출력값 분포 특성을 분석하고 최적의 가중치 함수를 찾기 위해 가중치 함수 대체 실험을 진행한다. Fig. 6.은 8라운드 Simon 32/64로 암호화된 암호문과 9라운드 Simeck 32/64로 암호화된 암호문에 대한 신경망 구분자의 출력값 분포 그래프를 비교한 것이다. 출력값 분포는 각 암호 알고리즘으로 (r+1)-라운드 암호화한 암호문을 키 후보군 k∈{0, 1, ..., 216}으로 한 라운드만 복호화한 후 신경망 구분자에 의해 구분된 결과값이다. Fig. 6.의 우측에 표시된 그래프는 Simeck 32/64 알고리즘에 대한 출력값 분포로 Simon 32/64와 유사하게 출력값이 양극단으로 분포되어 있는 특성을 가진다. 이에 Simeck 32/64 알고리즘에 적합한 가중치 함수는 Tangent 함수일 것으로 예상되며, 이를 확인하기 위해 Simeck 32/64 알고리즘을 대상으로 가중치 함수 대체 실험을 진행하였다.

Fig. 6. Neural network prediction value distribution of Simon and Simeck. (left) 8-round Simon 32/64. (right) 9-round Simeck 32/64
본 실험에서는 앞선 연구에서 좋은 성능을 보였던 \(\begin{align}\frac{1}{1-x}\end{align}\), Tangent, Relu 함수를 선정하여 가중치 함수로 사용하며, Simeck 32/64 알고리즘을 대상으로 실험을 진행한다. 또한, 입력 데이터 형식 변화에 따른 신경망 구분자의 성능 비교 실험 결과 가장 높은 성능을 보인 Data form_8 형식을 사용하여 데이터 전처리 과정을 수행한다.
① Key_averaging : \(\begin{align}\frac{1}{1-x}\end{align}\) (8)
② Tangent : \(\begin{align}W(x)=2 \tan \left(\frac{\pi}{2} x\right)\end{align}\) (9)
③ Relu : W(x) = max(0, b(x-a)) (10)
실험과정은 다음과 같다. Simeck 32/64 알고리즘을 이용하여 특정 차분을 갖는 평문 쌍과 랜덤한 값을 암호화한 데이터를 생성한 후, Data form_8 형식으로 변환하는 데이터 전처리 과정을 수행한다. 변환된 데이터를 입력으로 받아 신경망 구분자를 학습시키며, 학습이 완료된 신경망 구분자에 Key averaging 알고리즘을 적용하여 신경망 구분자의 성능을 비교한다. 이때, 선정한 가중치 함수에 대해서 Fig. 1.의 Line. 4에서 사용된 가중치 함수만 대체하여 위 과정을 반복한다. 이를 통해 Simeck 32/64 알고리즘에 가장 적합한 가중치 함수를 분석한다.
3.4.2 암호 알고리즘에 따른 연관키 신경망 구분자의 출력값 분포 특성 분석
기존 신경망 구분자는 암호 알고리즘에 따라 적절한 가중치 함수를 선택함으로써 신경망 구분자의 성능을 향상시킬 수 있었다. Speck 32/64의 경우 \(\begin{align}\frac{1}{1-x}\end{align}\)인 가중치 함수를 사용했을 때 가장 높은 성능을 보였으며, Simon 32/64와 Simeck 32/64의 경우 Tangent 함수를 사용했을 때 가장 높은 정확도를 보였다. 이에 본 연구에서는 연관키 신경망 구분에 가중치 함수를 적용시키기 위해 암호 알고리즘에 따른 연관키 신경망 구분자의 출력값 분포를 분석한다.
Fig. 7.은 6라운드 Speck 32/64로 암호화된 데이터에 대한 신경망 구분자의 출력값 분포와 연관키 신경망 구분자의 출력값 분포를 비교한 것이다. 출력 값 분포는 Speck 32/64로 6라운드 암호화한 암호문을 키 후보군 k∈{0, 1, ..., 216}으로 한 라운드만 복호화한 후 신경망 구분자에 의해 구분된 결과값이다. Fig. 7.의 좌측 그래프는 기존 신경망 구분자의 출력값 분포로 출력값이 0과 1 사이의 값 중간에도 분포되어있는 것을 확인할 수 있다. 반면에, Fig. 7.의 우측 그래프는 연관키 신경망 구분자의 출력값 분포로, 기존 신경망 구분자의 출력값 분포와 다르게 양극단으로 분포되어있는 특성을 확인할 수 있다. 이에 같은 암호 알고리즘이라도 신경망 구분자에서 적합한 가중치 함수와 연관키 신경망 구분자에서 적합한 가중치 함수가 다를 것으로 예상된다. 따라서 본 연구에서는 가중치 함수를 연관키 신경망 구분자에 적용하여 경량 블록 암호 알고리즘에 따른 구분자의 성능을 분석하고, 신경망 구분자의 종류에 따른 적합한 가중치 함수의 변화를 탐구한다.

Fig. 7. Neural network prediction value distribution of Speck 32/64. (left) neural distinguisher for 6-round Speck 32/64. (right) related key neural distinguisher for 6-round Speck 32/64
실험과정은 3.3.1절에서 진행한 가중치 함수 대체 실험과 동일하게 \(\begin{align}\frac{1}{1-x}\end{align}\), Tangent, ReLu 함수를 사용하여 실험한다. 또한, 입력 데이터 형식 대체 실험 결과 가장 높은 성능을 보인 Data form_8 형식을 사용하여 데이터 전처리 과정을 수행하며, 대상 알고리즘은 Speck 32/64, Simon 32/64, Simeck 32/64 알고리즘을 사용한다.
IV. 실험 결과
3장에서는 신경망 구분자의 성능 향상을 위해 제안된 입력 데이터 형식을 다양한 경량 블록 암호 알고리즘에 적용하였으며, 구분자에 따른 출력값 분포 특성을 분석하여 최적의 가중치 함수를 선별하는 방법에 대해 설명했다. 또한, 입력 데이터 형식과 가중치 함수의 상관관계가 신경망 구분자의 성능에 미치는 영향에 대해 분석했다. 이에 본 장에서는 이러한 내용을 바탕으로 다음과 같은 환경에서 진행한 실험 결과를 분석한다.
본 실험은 Ubuntu 20.04.6에서 Python3.9를 사용하여 진행하였으며, 모델은 Pytorch 12.1로 구현되었다. 또한, Intel(R) Core(TM) i9-10980XE CPU @ 3.00GHz, 256GB RAM 및 NVIDIA GeForce RTX 3090을 갖춘 서버를 사용하였다.
4.1 입력 데이터 형식에 따른 신경망 구분자의 성능 검증
3.2절에서 신경망 구분자의 성능 향상을 위해 제안된 입력 데이터 형식을 다양한 경량 암호에 적용한 결과에 대해 분석한다. 이에 본 실험에서는 Simon 32/63 알고리즘 외에 Speck 32/64, Simeck 32/64 알고리즘을 대상으로 진행하였으며, Data form_2, Data form_3, Data form_4, Data form_8 입력 데이터 형식을 사용하여 입력 데이터 형식 변화에 따른 신경망 구분자의 성능 비교 실험 결과 제시한다.
Table 4.는 Speck 32/64, Simon 32/64, Simeck 32/64 알고리즘을 대상으로 진행한 입력 데이터 형식 변화에 따른 신경망 구분자의 성능 비교 실험 결과를 나타내며, 각 수치는 신경망 구분자의 정확도를 의미한다. Table 4.를 보면 알 수 있듯이 Data form_8일 때 Speck 32/64, Simon 32/64, Simeck 32/64 알고리즘의 신경망 구분자 정확도가 각각 0.9208, 0.9705, 0.9577로 가장 높은 정확도를 가진 것을 확인할 수 있다. 반면에 Data form_4일 때 Speck 32/64, Simon 32/64, Simeck 32/64 알고리즘의 신경망 구분자 정확도가 0.6923 0.7045 0.5230로 가장 낮은 정확도를 가진 것을 확인할 수 있다. 즉, 암호 알고리즘과 관계없이 입력 데이터 형식이 Data form_8 (∆rL, ∆rR, CL, CR, C'L, C'R, ∆r-1R, p∆r-2R)일 때 가장 높은 정확도를 보였으며, 암호문에 대한 차분이 포함되지 않은 Data form_4(CL, CR, C'L, C'R)일 때 가장 낮은 정확도를 보였다.
Table 4. Accuracy of neural distinguisher for 6 round Speck 32/64, 8 round Simon 32/64, 9 round Simeck 32/64 according to the weight functions

Data form_8의 결과를 기반으로 신경망 구분자에서는 많은 정보가 입력값으로 사용될 때 모델의 성능도 함께 올라가는 것으로 분석할 수 있다. 그러나, Data form_3과 Data form_4의 결과를 비교해보면 Data form_3(CR, C'R, ∆r-1R)가 더 높은 성능을 보인 것을 알 수 있다. 이는 단순히 입력 데이터의 개수가 많을 때 좋은 성능을 보이는 것이 아니라 차분에 대한 정보가 많이 포함될수록 신경망 구분자의 성능 향상에 큰 효과를 준다고 할 수 있다.
본 실험을 통해 입력 데이터 형식에 따른 신경망 구분자의 성능 변화를 확인할 수 있었으며, 차분의 정보가 입력 데이터로 포함될 때 효과적으로 신경망 구분자의 성능을 향상시킬 수 있음을 실험적으로 입증했다.
4.2 가중치 함수와 입력 데이터 형식에 따른 신경망 구분자의 성능 기반 상관관계 분석
본 항에서는 3.3절에서 설계한 실험을 바탕으로, 입력 데이터 형식과 가중치 함수에 따른 신경망 구분자의 성능을 분석하고 그 상관관계를 도출한다. 본 실험에서는 가중치 함수 대체 실험 결과 높은 성능을 보였던 \(\begin{align}\frac{1}{1-x}\end{align}\), Tangent 함수를 가중치 함수로 선정하여 실험을 진행했다. 또한, Data form_2, Data form_3, Data form_4, Data form_8 입력 데이터 형식을 사용하였으며 Simon 32/64 알고리즘을 대상으로 진행한 실험 결과를 제시한다.
Table 5.는 Simon 32/64 알고리즘을 대상으로 진행한 분석 결과로, 각 수치는 연관키 신경망 구분자의 정확도를 의미한다. diff1은 \(\begin{align}\frac{1}{1-x}\end{align}\) 함수를 적용한 신경망 구분자와 가중치 함수를 적용하지 않은 신경망 구분자의 변화량을 의미하며, diff2는 Tangent 함수를 적용한 신경망 구분자와 가중치 함수를 적용하지 않은 신경망 구분자의 변화량을 나타낸다. Table 5.를 보면 알 수 있듯이 입력 데이터 형식이 Data form_8일 때 0.046, 0.065로 가장 높은 변화량을 보여준다. 반면에, Data form_3일 때 0.019, 0.039로 가장 낮은 변화량을 확인할 수 있다. 입력 데이터 형식이 Data form_3일 때는 가중치 함수에 따른 신경망 구분자의 성능 향상이 뚜렷하게 나타나지 않았지만, Data form_8일 때는 가중치 함수에 따른 신경망 구분자의 성능 변화가 가장 크게 나타났다. 이는 Data form_3가 신경망 구분자의 성능을 향상시키는데 유용할 수 있지만, 가중치 함수를 최적화하여 성능을 극대화하려는 경우에는 한계가 있을 수 있다고 볼 수 있다. 반면에, Data form_8은 신경망 구분자의 성능을 향상시킬 뿐만 아니라 가중치 함수를 최적화하여 성능을 극대화시키는데 적합하다고 볼 수 있다. 따라서 신경망 구분자의 성능을 극대화하기 위해서는 Data form_8과 같은 데이터 형식을 사용하는 것이 바람직할 것으로 판단된다.
Table 5. Accuracy of neural distinguisher for 9 round Simon 32/64 according to the weight function and Data format

본 실험을 통해 입력 데이터 형식이 Data form_8일 때 가중치 함수에 따른 신경망 구분자의 성능 향상이 가장 두드러지며, 성능 변화량이 가장 높다는 것을 확인할 수 있었다. 반면, Data form_3일 때는 성능 향상 변화가 상대적으로 미미했으며, 가중치 함수의 최적화에 한계가 있음을 확인하였다. 이에 신경망 구분자의 성능 향상을 위한 입력 데이터 형식과 가중치 함수의 최적 조합에 대한 추가연구의 필요성을 제기하며, 성능 변화량을 향상시킬 수 있는 기술 개발이 필요할 것으로 보인다.
4.3 구분자의 출력값 분포 특성에 따른 최적의 가중치 함수 도출
3.4절에서 구분자의 출력값 분포 특성 차이가 성능 향상에 미치는 영향에 대해 분석하고, 이러한 분포 특성에 따라 적절한 가중치 함수를 선별하는 방법에 대해 설명해다. 이에 본 절에서는 위 내용을 기반으로 진행한 실험 결과에 대해 분석하고 성능 향상 방안을 도출한다.
4.3.1 가중치 함수 변화에 따른 신경망 구분자 성능 검증
본 항에서는 3.4.1절에서 분석한 출력값 분포 특성에 따라 Simeck 32/64 알고리즘에 다양한 가중치 함수를 적용하고 그 결과를 분석한다. 본 실험에서는 입력 데이터 형식 변화에 따른 신경망 구분자의 성능 비교 실험에서 가장 높은 성능을 보였던 Data form_8 형식을 사용하였으며, \(\begin{align}\frac{1}{1-x}\end{align}\), Tangent, Relu 함수를 가중치 함수로 선정하여 실험을 진행했다. 이에 Speck 32/64, Simon 32/64 알고리즘 외에 Simeck 32/64 알고리즘에 대한 최적의 가중치 함수를 찾기 위해 진행한 가중치 함수 대체 실험 결과를 제시한다.
Table 6.은 Speck, Simon, Simeck을 대상으로 한 가중치 함수 대체 실험 결과로 각 수치는 신경망 구분자의 정확도를 의미한다. 정확한 성능 변화를 측정하기 위해 이미 모델의 성능이 우수한 라운드를 제외한 신경망 구분자를 대상으로 실험을 진행하였다.
Table 6. Accuracy of neural distinguisher for Speck 32/64, Simon 32/64, Simeck 32/64 according to the weight functions

Speck 32/64의 경우 6라운드와 7라운드에 대해서 \(\begin{align}\frac{1}{1-x}\end{align}\) 함수를 사용했을 때 0.9865, 0.8133으로 가장 높은 정확도를 가진 것을 확인할 수 있다. Simon 32/64의 경우 8, 9, 10라운드에 대해서 Tangent 함수를 사용했을 때, 0.9999, 0.9039, 0.6822로 가장 높은 정확도를 가진 것을 확인할 수 있다. 즉, 본 실험에서는 \(\begin{align}\frac{1}{1-x}\end{align}\) 함수가 가장 적절한 가중치 함수였던 Speck과 다르게 Tangent 함수를 사용했을 때 가장 높은 성능을 보였음을 실험적으로 입증했다. 따라서 본 실험 결과로 보아 Speck 32/64의 경우 \(\begin{align}\frac{1}{1-x}\end{align}\) 함수가 가장 적절한 가중치 함수로 판단되며, Simon 32/64의 경우 Tangent 함수가 가장 적합한 가중치 함수로 판단된다.
Simeck 32/64를 대상으로 진행한 가중치 함수 대체 실험 결과 10라운드와 11라운드에서 Tangent 함수를 사용했을 때 0.7624, 0.5584로 가장 높은 성능을 보인다. 이는 Simeck 32/64에 대한 신경망 구분자의 출력값 분포 특성에서 기인한 결과로, Fig. 6.의 그래프처럼 Simon과 유사하게 출력값이 양극단으로 분포되는 경향을 보인다. 이러한 분포 특성으로 인해 Tangent 함수가 다른 가중치 함수보다 더 적합하게 최적화하는 것으로 판단된다. Fig. 8.은 Tangent 함수의 그래프로, 입력값이 특정 경계에 가까워지면 출력이 급격히 변하는 특성을 가지고 있다. 따라서, Fig. 6.과 같이 출력값이 양극단으로 분포되는 Simon 32/64와 Simeck 32/64의 경우에는 0에 가까운 값은 0으로, 1에 가까운 값은 1로 극대화시켜 Tangent 함수가 더 높은 성능을 보인게 된다.

Fig. 8. Tangent weight function
본 실험을 통해 출력값 분포가 0과 1사이의 중간값에도 분포되어 있는 경우에는 \(\begin{align}\frac{1}{1-x}\end{align}\) 함수가 최적의 가중치 함수로 작용하였으며, 양극단으로 분포되어 있는 경우에는 Tangent 함수가 가장 적합한 가중치 함수임을 보였다. 이에, Speck 32/64 알고리즘에 대해 \(\begin{align}\frac{1}{1-x}\end{align}\) 함수가 최적의 성능을 나타내며, Simon 32/64, Simeck 32/64 알고리즘에 대해 Tangent 함수가 최적의 성능을 보였다. 이에 다양한 경량 블록 암호 알고리즘에 따라 신경망 구분자의 출력 분포 특성을 잘 분류할 수 있는 가중치 함수가 다르다는 것을 실험적으로 검증하였으며, Simeck 32/64 알고리즘에 가장 적합한 가중치 함수를 도출하였다.
4.3.2 가중치 함수 변화에 따른 연관키 신경망 구분자 성능 검증
3.4.2절에서 Speck 32/64를 대상으로 진행한 신경망 구분자의 출력값 분포와 연관키 신경망 구분자의 출력값 분포에 대해 분석한 결과 Fig. 7.과 같이 다른 분포 양상을 띠었다. 이에 본 항에서는 다양한 가중치 함수에 따른 연관키 신경망 구분자의 성능 개선 기술을 경량 블록 암호 알고리즘에 적용한 결과를 분석한다. 더 나아가, 이를 기반으로 신경망 구분자의 종류에 따른 적합한 가중치 함수의 변화를 연구한다. 본 실험에서는 입력 데이터 형식 대체 실험 결과 가장 높은 성능을 보였던 Data form_8 형식을 사용하였으며, \(\begin{align}\frac{1}{1-x}\end{align}\), Tangent, Relu 함수를 가중치 함수로 선정하여 실험을 진행했다. 이에 Speck 32/64, Simon 32/64, Simeck 32/64 알고리즘에 대한 최적의 가중치 함수를 찾기 위해 진행한 가중치 함수 대체 실험 결과를 제시한다.
Table 7.은 Speck 32/64, Simon 32/64, Simeck 32/64를 대상으로 한 가중치 함수 대체 실험 결과로 각 수치는 연관키 신경망 구분자의 정확도를 의미한다. 정확한 성능 변화를 측정하기 위해 이미 모델의 성능이 우수한 라운드를 제외한 신경망 구분자를 대상으로 실험을 진행하였다.
Table 7. Accuracy of related - key neural distinguisher for Speck 32/64, Simon 32/64, Simeck 32/64 according to the weight functions

Simon 32/64의 경우 10라운드와 11라운드에 대해서 Tangent 함수를 사용했을 때, 0.9906, 0.7775로 가장 높은 정확도를 가진 것을 확인할 수 있다. 또한, Simeck 32/64의 경우 13라운드와 14 라운드에 대해서 Tangent 함수를 사용했을 때 0.9923, 0.6495로 가장 높은 정확도를 가진 것을 확인할 수 있다. 이는 Simon 32/64와 Simeck 32/64를 대상으로 진행한 연관키 신경망 구분자의 출력값 분포 특성이 신경망 구분자의 출력값 분포 특성과 동일하게 양극단으로 분포되는 특성을 보여 Tangent 함수를 사용했을 때 가장 높은 성능을 보였다고 할 수 있다.
Speck 32/64의 경우 6라운드와 7라운드에 대해서 Tangent 함수를 사용했을 때 0,9768, 0.6675로 가장 높은 정확도를 가진 것을 확인할 수 있다. 즉, Speck 32/64를 대상으로 진행한 실험에서 기존의 신경망 구분자와 다르게 연관키 신경망 구분자에서는 Tangent 함수를 사용했을 때 가장 높은 성능을 보인다.
Table 8.은 6라운드 Speck 32/64를 대상으로 신경망 구분자의 가중치 대체 실험 결과와 연관키 신경망 구분자의 가중치 대체 실험 결과를 비교한 것이다. 신경망 구분자의 경우, \(\begin{align}\frac{1}{1-x}\end{align}\) 함수를 사용했을 때 0.9865로 가장 높은 정확도를 보였으나, 연관키 신경망 구분자의 경우, Tangent 함수를 사용했을 때 0.9768로 가장 높은 정확도를 보였다. 이는 Fig. 7.의 출력값 분포 특성 차이에 의한 것으로 신경망 구분자의 출력값 분포의 경우, 0과 1 사이의 중간값에도 분포되어 있는 것을 확인할 수 있었다. 그러나 연관키 신경망 구분자의 출력값 분포의 경우, 양극단으로 분포되어 있으며, 이러한 특성으로 인해 Tangent 함수를 사용했을 때 가장 높은 성능을 보였다고 할 수 있다.
Table 8. Accuracy of neural distinguisher and related - key neural distinguisher for 6-roundSpeck 32/64 according to the weight functions

본 실험에서는 Speck 32/64, Simon 32/64, Simeck 32/64를 대상으로 연관키 신경망 구분자의 출력값 분포 특성을 분석하고 이를 기반으로 가중치 함수 대체 실험을 진행하였다. 그 결과 Speck 32/64, Simon 32/64, Simeck 32/64 알고리즘 모두 출력값이 양극단으로 분포되는 특성임을 확인할 수 있었으며, 이에 따라 Tangent 함수를 사용했을 때 이러한 분포 특성을 가장 잘 극대화시켜 구분자가 높은 성능을 보였다. 이를 통해 출력값 분포가 양극단으로 치우친 경우에는 Tangent 함수가 최적의 가중치 함수로 작용하였으며, 0과 1사이의 중간값에도 분포되어 있는 경우에는 \(\begin{align}\frac{1}{1-x}\end{align}\) 함수가 적합한 가중치 함수임을 도출할 수 있다. 또한, 동일한 암호 알고리즘이라도 구분자의 종류에 따라 출력값 분포 특성이 달라질 수 있음을 보여주며, 최적의 가중치 함수를 선별하기 위해서는 출력값 분포 특성을 분석이 필요함을 시사한다.
V. 결론
본 논문에서는 신경망 구분자의 성능 향상에 중요한 요소로 작용하는 가중치 함수에 대해 분석하였다. 특히, 각 암호 알고리즘과 구분자 종류에 따라 출력값 분포 특성이 달라지며, 이는 성능 향상에 영향을 미친다는 사실을 실험적으로 입증하였다.
먼저 가중치 함수는 출력값 분포 특성을 극대화함으로써 구분자의 성능을 향상시킬 수 있으며, 이는 최적의 가중치 함수를 선별하기 위해서는 출력값 분포 특성을 분석해야 함을 시사한다. 이에 암호 알고리즘과 구분자의 종류에 따른 출력값 분포 특성을 분석하였으며, 이를 기반으로 가중치 함수 대체 실험을 진행하였다. 그 결과, 출력값이 0과 1사이의 중간값에도 분포되는 경우에는 \(\begin{align}\frac{1}{1-x}\end{align}\) 함수가 적합한 가중치 함수로 작용하였으며, 출력값이 양극단으로 치우진 경우에는 Tangent 함수가 최적의 가중치 함수임을 도출하였다. 따라서 Simeck 32/64 알고리즘은 신경망 구분자의 출력값 분포가 양극단으로 분포되어 Tangent 함수가 최적의 가중치 함수로 작용한다.
또한, Speck 32/64의 경우에는 신경망 구분자의 출력값 분포 특성과 연관키 신경망 구분자의 출력값 분포 특성이 다른 것을 확인하였다. 신경망 구분자의 경우에는 출력값이 0과 1사이의 중간값에도 분포되는 특성을 보였지만, 연관키 신경망 구분자에서는 양극단으로 분포되는 특성을 보였다. 이에, 동일한 암호 알고리즘이더라도 구분자의 종류에 따라 출력값 분포 특성이 달라질 수 있음을 확인하였고, 최적의 가중치 함수 선별을 위해서는 출력값 분포 특성에 대한 분석이 중요한 요인으로 작용한다고 할 수 있다. 따라서 적절한 가중치 함수를 선정하여 구분자의 성능을 개선하기 위해서는 출력값 분포 특성에 따라 가중치 함수를 선별해야 한다.
향후 연구에서는 출력값 분포 특성을 고려하여 신경망 구분자의 종류와 가중치 함수의 상호작용에 따른 최적화 전략에 대한 연구가 필요하다. 또한, 실제 환경에서 사용되고 있는 경량 블록 암호 알고리즘의 블록 크기와 키 크기를 갖는 암호 알고리즘에 대한 추가 실험과 더 정교한 가중치 함수 선택 방안을 탐구할 필요가 있다.
References
- M.M. Alani, "Neuro-cryptanalysis of DES and triple-DES," Proceedings of the 19th In International Conference on Neural Information Processing, pp. 637-646, Nov. 2012.
- R. Focardi and F.L. Luccio, "Neural cryptanalysis of classical ciphers," Italian Conference on Theoretical Computer Science, pp.104-115, Sep. 2018.
- prouff, "Breaking cryptographic implementations using deep learning techniques," International Conference on Security, Privacy, and Applied Cryptography Engineering, pp. 3-26, Dec. 2016.
- G. Hospodar, B. Gierlichs, E. De Mulder, I. Verbauwhede, and J. Vandewalle, "Machine learning in side-channel analysis: a first study," Journal of Cryptographic Engineering, vol. 1, no. 4, pp. 293-302, Oct. 2011. https://doi.org/10.1007/s13389-011-0023-x
- R.L. Rivest, "Cryptography and machine learning," International Conference on the Theory and Application of Cryptology, pp. 427–439, Jan. 2005.
- A. Baksi, "Machine learning-assisted differential distinguishers for lightweight ciphers," Classical and Physical Security of Symmetric Key Cryptographic Algorithms, pp. 141-162, Jan. 2022.
- J. So, "Deep learning-based cryptanalysis of lightweight block ciphers," Security and Communication Networks, vol. 2020, pp. 1-11, Jul. 2020. https://doi.org/10.1155/2020/3701067
- GitHub, "agohr/deep_speck," https://github.com/agohr/ deep_speck, last accessed Jun. 24. 2024.
- A.. Gohr, "Improving attacks on round-reduced speck32/64 using deep learning," Advances in Cryptology, CRYPTO 2019, LNCS 11693, pp. 150-179, Aug. 2019.
- Z.Z. Hou, J.J. Ren, and S.Z. Chen, 'Improve neural distinguishers of simon and speck,' Security and Communication Networks, vol. 2021, no. 1, pp, 1-11, 2021.
- Z. Bao, J. Guo, M.. Liu, L. Ma, and Y. Tu, "Enhancing differential-neural cryptanalysis," International Conference on the Theory and Application of Cryptology and Information Security, LNCS 13791, pp. 318-347, Jan. 2023.
- J. Lu, G. Liu, B. Sun, C. Li, and L. Liu, 'Improved (related-key) differential-based neural distinguishers for SIMON and SIMECK block ciphers,' The Computer Journal, vol. 67, no. 2, pp. 537-547, Feb. 2024. https://doi.org/10.1093/comjnl/bxac195
- H. Seong, H. Yoo, Y. Yeom, and J.S. Kang, 'Analysis of gohr's neural distinguisher on Speck32/64 and its application to Simon32/64,' Jonornal of The Korea Institute of information Security & Cryptology, 32(2), pp. 391-404, Apr. 2022.
- R. Beaulieu, et al. "The SIMON and SPECK lightweight block ciphers," Proceedings of the 52nd Annual Design Automation Conference, pp. 1–6, Jun. 2015.
- G. Yang, B. Zhu, V. Suder, M..D. Aagaard and G. Gong, "The simeck family of lightweight block ciphers," International Workshop on Cryptographic Hardware and Embedded Systems, LNCS 9293, pp. 307-329, Jan. 2015.
- E. Biham and A. Shamir, 'Differential cryptanalysis of DES-like cryptosystems,' Journal of CRYPTOLOGY, vol. 4, pp. 3-72, Jan. 1991. https://doi.org/10.1007/BF00630563
- N. Mouha, Q. Wang, D. Gu, and B. Preneel, "Differential and linear cryptanalysis using mixed integer linear programming," International Conference on Information Security and Cryptology, LNCS 7537, pp. 57–76. 2011.
- F. Abed, E. List, S. Lucks, and J. Wenzel, "Differential cryptanalysis of round-reduced Simon and Speck," InInternational Workshop on Fast Software Encryption, LNCS 8540, pp. 525-545, Mar. 2014.
- J.P. ChristofPaar, and B. Preneel, Understanding Cryptography: A Textbook for Students and ractitioners, Springer, 2010.
- J.H.. Kim, and S.C. Yun, 'A study on nonlinear analysis of S-box in DES algorithm,' Jonornal of The Korea Institute of information Security & Cryptology, 8(3), pp. 17-26, 1998.
- E. Biham, "New types of cryptanalytic attacks using related keys," Journal of Cryptology, vol. 7, pp. 229–246, Dec. 1994. https://doi.org/10.1007/BF00203965
- G. Jakimoski and Y. Desmedt, "Related-key differential cryptanalysis of 192-bit key AES variants," International Workshop on Selected Areas in Cryptography, LMCS 3006, pp. 208-221, 2003.
- Y. Ko, S. Hong, W. Lee, S. Lee, J.S. Kang, "Related key differential attacks on 27 rounds of XTEA and full-round GOST," International Workshop on Fast Software Encryption, LNCS 3017, pp. 299–316, 2004.
- J. Brownlee, Data preparation for machine learning: data cleaning, feature selection, and data transforms in Python, Machine Learning Mastery, 2020.
- K. He, X. Zhang, S. Ren, and J. Sun, "Deep residual learning for image recognition," Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 770-778, 2016.
- J. Hu, L. Shen, and G. Sun,"Squeeze-and-excitation networks," Proceedings of the IEEEconferenceon computer vision and patternrecognition, pp. 7132–7141, 2018.