DOI QR코드

DOI QR Code

Security Verification Methodology of Redundancy-Based Fault Injection Countermeasures against Second-Order Fault Injection Attacks

Redundancy 기반 오류주입 대응기법에 대한 2차 오류주입 공격 안전성 검증 방법론

  • Received : 2026.02.02
  • Accepted : 2026.03.22
  • Published : 2026.06.30

Abstract

In this paper, we proposed attack scenarios reflecting structural characteristics and a statistical evaluation methodology to objectively assess the security of Redundancy-based fault injection countermeasures against second-order fault injection attacks. We designed three attack scenarios by applying fault models that include not only data manipulation but also program flow manipulation, and proposed a verification methodology based on output ratio analysis and chi-squared testing. Simulation results on existing countermeasures demonstrate the effectiveness of the proposed methodology through analysis of security strength for each countermeasure.

본 논문에서는 Redundancy 기반 오류주입 대응기법의 2차 오류주입 공격에 대한 안전성을 평가하기 위해 구조적 특성을 반영한 공격 시나리오와 통계적 평가 방법론을 제안한다. 데이터 변조 및 프로그램 흐름 변조를 포함한 오류 모델을 적용하여 세 가지 공격 시나리오를 설계하고, 출력 비율 분석과 카이제곱 검정 기반의 검증 방법론을 제안하였다. 기존 대응기법에 시뮬레이션을 수행한 결과, 대응기법별 보안 강도 분석을 통해 제안 방법론의 실효성을 입증하였다.

Keywords

I. 서론

최근 사이버 공격은 단순한 정보 탈취를 넘어 시스템의 하드웨어적인 취약점을 악용하여 보안 메커니즘 자체를 무력화하는 방향으로 진화하고 있다. 그중 오류주입 공격(Fault Injection Attack)은 사이버 무력화의 핵심적인 수단으로 대두되고 있다[1].

1997년 Boneh 등[1]은 RSA 서명 과정에서 오류를 유도할 수 있다면 비밀키를 복구할 수 있음을 입증하였으며, Biham 등[2]은 DES(Data Encryption Standard)에 대한DFA(Differential Fault Analysis)를 제안하여 오류주입의 대상을 블록 암호로 확장하였다. 이처럼 오류주입 공격은 기존에 수학적으로 안전하다고 알려진 현대 암호조차도 물리적 오류에는 취약할 수 있음을 시사하며 오늘날 사이버 무력화를 일으키는 대표적인 공격으로 여겨지고 있다.

이에 발맞춰 Redundancy 기법과 같이 1차 오류주입에 대응하기 위한 다양한 방어 대책이 꾸준히 연구되어 왔다[3]. 특히 1차 오류주입에 대해서는 지난 몇 년간 학계와 산업계에서 폭넓은 연구가 이루어져 왔으며, 이를 정량적으로 평가하기 위한 XFC[4], FaultMeter[5]와 같은 객관적인 지표들이 제안되는 등 이미 성숙한 연구 생태계가 조성되어 있다.

그러나 이러한 기존의 대응기법들은 단일 오류 모델만을 가정하고 있다는 근본적인 한계를 가진다. 이러한 가정은 최근에 조명되고 있는 2차 오류주입 공격에 매우 취약하다. 가령, 비교 연산을 통해 오류를 탐지하고 대응하는 Detection 알고리즘의 경우, 공격자가 첫 번째 오류로 중간값을 변조하고 두 번째 오류를 통해 비교 연산 자체를 생략시켜 버리면 시스템은 탐지 로직을 수행하지 못한 채 오류가 포함된 암호문을 그대로 반환하게 된다.

이처럼 기존의 1차 대응기법은 다중 오류주입 환경에서 중복 연산에 동일한 오류를 유도하거나 탐지 로직을 생략함으로써 무력화될 수 있다. 이를 방어하기 위해 다양한 2차 오류주입 대응기법이 제안되고 있으나, 여전히 해당 기법들의 보안 강도를 체계적으로 측정하거나 검증할 수 있는 방법론에 대한 논의는 현저히 부족한 실정이다.

따라서 본 논문에서는 이러한 연구 공백을 해소하기 위해 Redundancy 기반 대응기법의 2차 오류주입 공격에 대한 안전성 검증 방법론을 제안한다. 본 연구의 주요 기여는 다음과 같다.

첫째, 기존의 데이터 변조뿐만 아니라 프로그램 흐름 변조까지 고려한 2차 오류주입 공격 시나리오를 체계화하였다.

둘째, 1차 및 2차 오류주입에 대한 대응방안의 안전성을 측정할 수 있는 세 가지 통계적 검증 기법을 제시하였다.

마지막으로, 제안한 방법론을 기존 대응기법들에 적용하여 시뮬레이션을 수행함으로써 대응기법의 보안 강도를 사전에 분석할 수 있는 평가 체계로서의 실효성을 입증하였다.

II. 배경지식 및 관련 연구

2.1 Redundancy 기반 대응기법

DFA와 같은 오류주입에 대한 대응 기법의 주된 목적은 공격자가 분석에 필요한 오류 암호문을 획득하지 못하도록 출력을 차단하거나 변조하는 데 있다.

Redundancy 기반 대응 기법은 이러한 방지 기법의 대표적인 방식으로, 원본 암호 연산과 동일한 연산을 추가로 수행함으로써 암호문의 무결성을 검증한다. 이때 추가로 수행되는 암호 연산을 중복 연산이라 하며, 이를 통해 도출된 암호문을 활용하는 메커니즘에 따라 대응 기법은 크게 Detection 기법과 Infection 기법으로 분류된다.

Detection 기법은 원본 암호 연산과 중복 연산의 결과를 비교하여 오류 발생 여부를 판별한다[1,6]. 정상적인 동작 상황에서는 두 암호문이 일치하므로 암호문을 그대로 반환하지만, 오류가 주입되어 두 값이 일치하지 않는 경우 출력을 차단하거나 분석에 활용할 수 없는 무의미한 출력을 반환함으로써 오류에 대응한다. 오버헤드를 줄이기 위해 오류를 탐지하는 오류 검출 코드를 사용하는 방법들도 제안되었으나, 다른 대응 기법도 함께 적용하였을 때의 성능저하 문제 등이 존재하여 중복 연산을 수행하는 방법이 일반적으로 선호된다[7].

한편 Infection 기법은 오류주입 여부를 탐지하는 대신, 오류로 인해 발생한 연산 결과 간의 차이를 암호문 전반으로 확산시켜 공격자의 분석을 무력화하는 방식이다[3]. 정상적인 동작 상황에서는 원본 연산과 중복 연산의 결과가 일치하므로 확산 메커니즘이 최종 출력에 영향을 주지 않는다. 그러나 오류가 주입되어 두 결과 사이에 차이가 발생할 경우, 이를 활용한 확산 연산을 수행하여 무작위 값을 생성한다. 이러한 연산을 확산함수라고 하며, 확산함수 출력을 원본 암호문에 XOR 연산함으로써 최종 암호문을 분석에 활용할 수 없도록 무작위화한다.

하지만 앞서 설명한 대응기법들은 단일 오류 모델만을 가정하여 설계되었으므로, 중복 연산에 동일한 오류를 주입함으로써 대응 메커니즘을 무력화하는 2차 오류주입 공격에는 취약하다. 이러한 공격에 대응하기 위해, 최근에는 기존의 Redundancy 대응 기법을 2차 오류주입 상황까지 대응할 수 있도록 확장한 연구들이 제안되고 있다.

Zhang 등[8]은 2차 오류주입에 대응하기 위해 총 2번의 중복 연산을 수행하는 Infection 방법을 제안했다. 해당 대응기법은 중간 암호문을 두 개씩 쌍을 지어 차분을 계산한 뒤, 이렇게 계산된 두 개의 차분을 확산함수로 확산시켜 도출된 결과의 차분을 다시 원본 암호 연산의 출력에 XOR하는 방법이다.

Barbu 등[9]은 2차뿐만 아니라 더 높은 차수의 오류주입에도 확장 가능한 고차 Infection 프레임워크를 제안하였다. 2차 오류주입을 예시로 들면, 해당 프레임워크는 2차 오류주입을 막기 위해 2번의 중복 연산을 추가로 수행한다. 이후, 계산된 중간 암호문들을 서로 다른 순서로 연접하여 두 개의 메시지를 만든다. 이후 이 메시지들은 공격자가 예측할 수 없는 랜덤 값에 의존하는 CBC-MAC 또는 해시 함수에 입력되어 두 개의 검증 값을 생성한다. 여기서 도출된 검증 값은 원본 암호 연산 결과에 XOR 된다. 만약 오류가 주입되지 않은 경우, 모든 중간 암호문이 동일해지므로 동일한 메시지에 대한 동일 검증 값이 생성된다. 따라서 XOR 연산이 상쇄되어 원본 암호문이 정상적으로 출력된다. 반면 오류가 주입된 경우, 중간 암호문의 불일치로 인해 서로 다른 메시지에 대한 검증 값이 생성된다. 이때 검증 값은 랜덤값에 종속적이므로, 최종적으로 공격자에게는 예측 불가능한 랜덤 값이 출력된다.

2.2 오류주입 공격에 대한 기존 안전성 검증 방법의 한계

본 절에서는 오류주입 공격에 대한 안전성 검증 방법을 제안한 기존의 연구에 대해 설명한다.

Khanna 등[4]은 블록암호에 대한 DFA 취약점을 자동으로 분석하고 식별하는 프레임워크인 XFC를 제안하였다. XFC는 오류 확산 경로를 색상으로 추적함으로써, 비밀키 유출을 유도하는 오류를 자동으로 탐색한다. 또한, 공격에 필요한 키 추측 복잡도를 산출하여 공격 효율성을 정량적으로 평가한다. 그러나 XFC는 bit flip을 유발하는 단일 오류주입 모델만을 가정했다는 한계가 있다.

Hoffmann 등[10]은 자체적으로 개발한 ARM-M 에뮬레이터를 기반으로 하는 자동화된 오류주입 시뮬레이션 프레임워크 ARMORY를 제안하였다. ARMORY는 소스 코드가 아닌 바이너리 수준에서 분석을 수행하여 컴파일러 최적화 과정에서 발생하는 취약점까지 탐지할 수 있으며 다중 오류주입을 포함한 다양한 오류 모델을 지원한다는 장점이 있다. 그러나 사용자가 직접 정의한 취약성 모델을 입력해야 하므로 안전성 검증을 위한 객관적이고 표준화된 기준을 제시하지는 못한다.

한편, Keerthi 등[5]은 데이터 변조뿐만 아니라 명령어 생략을 포함하는 오류가 주입됐을 때 해당 오류가 성공적으로 키 복구에 활용될 수 있는 확률을 정량화하는 도구인 FaultMeter를 제안했다.

FaultMeter는 암호의 암호학적 특성과 프로그램 구조 그리고 하드웨어 아키텍처를 기반으로 취약 명령어를 식별할 뿐만 아니라 오류가 최종 출력까지 전파될 확률을 정적 분석하여 정량화하였다. 하지만 해당 연구는 고차 오류 주입에 대한 취약점 분석은 고려하지 않았다는 한계가 존재한다.

한편 Tan 등은 SAT-solver 기반의 형식 검증 기법을 제안하였다[11]. 해당 연구는 암호회로 수준에서 오류주입에 대한 저항성을 입증했다는 점에서 의의가 있지만, 이러한 방식은 게이트 수준의 하드웨어 모델에만 국한되어 있다. 즉, 오류모델이 비트플립에 대해서만 한정되어 있다.

이처럼 최근에 제안된 오류주입 취약점 관련 연구는 데이터 변조 또는 명령어 생략 중 하나에만 치중되어 있거나, 단일 오류주입만을 고려하는 등 포괄적인 오류 모델에 대한 취약점을 탐색하는 연구는 부족하다. 또한, 고차 오류주입을 지원하는 도구의 경우에도 취약점 판단을 평가자에게 위임하는 등 명확한 안전성 평가 기준이 부재하다는 문제도 존재한다.

III. 2차 오류주입 공격에 대한 안전성 검증 방법

본 장에서는 Redundancy 기반 대응기법의 오류 주입 공격에 대한 안전성을 체계적으로 검증하기 위한 2차 오류주입 공격 시나리오와 이를 평가하기 위한 구체적인 기준을 제안한다.

3.1 오류 모델

본 논문에서는 데이터 변조와 프로그램 흐름 변조를 모두 고려하기 위해 오류 모델을 다음과 같이 두 가지 유형으로 정의한다.

- 오류 유형 1(데이터 변조): 암호문의 중간 상태값을 변조하는 랜덤 바이트 오류

- 오류 유형 2(명령어 생략): 하나 또는 다수의 연산 실행을 강제로 건너뛰는 오류

오류 유형 1은 일반적으로 DFA 관련 연구에서 널리 사용되는 오류 모델이다. 오류 유형 2는 프로그램 흐름 변조를 수행하는 방법 중 명령어 생략을 수행하는 오류에 해당한다. 본 연구에서는 프로그램 흐름 변조 방법 중 명령어 변조 대신 명령어 생략을 채택하였다. 이는 대응기법의 보호 로직을 무력화하는 관점에서 특정 명령어를 다른 명령어로 대체하는 것보다 실행 자체를 생략하는 것이 공격자 입장에서 더욱 효과적인 가정이라고 판단했기 때문이다. 이러한 오류는 오류에 대응하는 비교 연산을 생략시키는 등의 효과를 일으켜 대응기법이 제대로 기능을 하지 못하도록 한다. 또한, 이와 같은 연산을 생략하는 오류는 Menu 등[12]의 연구에서 충분히 입증된 발생 가능한 오류로, PC 레지스터 등의 값이 변경되는 등의 방식으로 발생 가능하다.

3.2 2차 오류주입 공격 시나리오

본 논문에서 가정하는 2차 오류주입 공격자는 3.1의 오류 모델을 바탕으로 알고리즘의 전체 실행 경로에 순차적으로 최대 2회의 오류를 주입하여 DFA를 수행한다. 이때 알고리즘의 전체 실행 경로는 암호연산뿐만 아니라 비교 연산이나 확산 연산과 같은 대응 연산을 모두 포함한다.

이러한 2차 오류주입 공격자가 오류를 주입하는 위치를 암호 연산과 비암호 연산으로 분류하였다. 이때 암호 연산에 주입되는 오류는 오류 암호문을 생성하는 오류이며, 비암호 연산에 주입되는 오류는 Detection에서의 비교 연산, Infection에서의 확산 연산을 생략하여 대응 로직을 무력화하는 오류를 의미한다. 공격자가 오류를 주입하는 위치에 따라 Table 1과 같이 다섯 가지의 공격 케이스가 도출된다.

Table 1. Categorization of fault injection cases based on target operation and fault frequency

JBBHCB_2026_v36n3_809_4_t0001.png 이미지

이중 Case 1과 2는 단일 오류를 주입하므로 1차 오류주입 공격에 해당하며, Case 3~5는 2차 오류주입 공격에 해당한다.

Case 2의 경우 암호 연산에 오류가 주입되지 않았으므로 오류 암호문이 생성되지 않는다. 따라서 이는 DFA를 수행하기에는 부적합하다고 판단하여 공격 시나리오에서 제외하였다.

Case 3의 경우 두 오류가 주입되는 위치에 따라 동일한 암호 연산 인스턴스에 주입하는 경우와 서로 다른 암호 연산 인스턴스에 주입하는 경우로 구분할 수 있다. 동일한 암호 연산 인스턴스에 오류를 주입하는 경우 하나의 오류 암호문만이 생성된다. 이는 오류 암호문을 생성하는 또 다른 방법에 불과할 뿐, 결과적으로는 Case 1과 동일하다. 따라서 본 논문에서는 서로 다른 암호 연산 인스턴스에 오류를 주입하는 경우만을 상정하였다. 추가로 주입하는 두 오류의 종류와 주입 시점을 동일하게 적용하였다.

Case 5의 경우, 2번과 동일한 이유로 시나리오에서 제외하였다. 이에 따라 본 논문에서는 Case1, 3, 4의 경우에 대해서만 고려하였으며 각각을 시나리오 1,2,3으로 Table 2와 같이 재정의하였다.

Table 2. Defined attack scenario according to fault injection target operation and fault description

JBBHCB_2026_v36n3_809_4_t0002.png 이미지

3.3 2차 오류주입 공격에 대한 안전성 평가 방법

본 절에서는 Redundancy 기반 대응기법의 안전성을 다각도로 평가하기 위해 안전성 검증 방법론을 제안한다. 본 방법론은 서로 다른 분석 목적을 가진 세 가지의 검증 테스트로 구성되며, 각 테스트는 그 목적에 따라 상이한 입력 데이터를 요구한다.

검증 과정은 시뮬레이션을 통해 개별 테스트 내에서 앞서 정의한 공격 시나리오 1, 2, 3을 모두 수행하는 방식으로 진행된다. 세 가지 검증 테스트 모두에서 시나리오 1, 2, 3에 대한 안전성 기준을 모두 만족해야만 해당 대응기법이 2차 오류주입 공격에 대해 안전하다고 판정한다.

3.3.1 단순 출력 테스트

단순 출력 테스트는 평문과 비밀 키, 주입되는 오류와 같은 모든 입력 데이터를 임의의 값으로 설정하여 출력 양상을 확인하는 테스트다. 본 테스트는 각 시나리오에 대한 시뮬레이션을 반복 수행하여 도출된 모든 출력이 다음 기준 중 하나에 해당하는 경우에만 안전한 것으로 판정한다.

가장 우선되는 기준은 난수 형태의 출력이다. Lomne 등[7]은 Infection 대응기법의 안전성을 위해 출력의 임의성이 요구된다고 주장하였으며, 실제로 대부분의 대응기법은 이러한 임의성 확보를 위해 난수를 기반으로 설계되었다. 다만 난수가 아닌 동일한 출력이 반복되어도 안전한 경우가 존재한다.

첫 번째로 정상 암호문이 출력되는 경우다. 정상 암호문은 오류가 주입되지 않았을 때의 암호문을 의미한다. 일반적으로 정상 암호문은 외부로 노출되어도 비밀 키에 대한 정보를 제공하지 않는 공개정보로 여겨진다. 따라서 본 방법론에서는 정상 암호문을 안전한 출력으로 분류하였다.

두 번째로는 사전에 약속된 고정 출력이 되는 경우다. Detection의 경우 오류 탐지 시 암호문의 비트가 모두 1인 경우처럼 무의미한 출력으로 치환하는 경우가 존재한다. 이 경우를 염두에 두어 해당 출력을 안전한 출력으로 정의하였다. 출력값이 복사되는 연산이 생략되어 어떠한 값도 존재하지 않는 모든 비트가 0인 출력 또한 이에 해당한다.

상기의 안전한 출력이 아닌 경우, 이는 DFA를 통해 키 복구가 가능한 오류 암호문이거나 대응기법의 설계에 벗어난 잠재적인 취약성이 존재하는 편향된 출력을 의미한다.

3.3.2 난수성 테스트

난수성 테스트는 대응기법이 설계에 맞게 임의의 출력을 반환하는지 확인하는 테스트다. 이를 위해 평문과 비밀키, 그리고 암호 연산에 주입되는 오류를 모두 고정한 상태로 반복 수행하여 출력의 통계적 임의성을 확인한다. 이는 대응기법이 설계 의도와 다르게 특정 공격 조건에서 편향된 출력을 반환하여 보안 수준이 저하되는 경우를 탐지하기 위함이다. 암호문 전체에 대한 임의성을 확인하는 것은 현실적으로 불가능하므로 본 논문에서는 출력을 바이트별로 구분하여 임의성을 평가하였다.

임의성 판단 방법으로는 카이제곱 적합성 검정을 이용하였다. 카이제곱 적합성 검정이란 수집된 데이터가 이론적인 균등 분포를 따르는지 확인하는 통계 방법이다. 카이제곱 검정 통계량은 수식(1)을 통해 계산한다.

\(\begin{align}\chi^{2}=\sum_{i=1}^{k} \frac{\left(O_{i}-E_{i}\right)^{2}}{E_{i}}\end{align}\)       (1)

이때 Oi는 i번째 데이터의 실제 관측 빈도를 나타내며 Ei는 이론적 빈도를 나타낸다. k는 데이터 종류의 수를 의미한다. 본 논문에서는 바이트별 카이제곱 검정을 수행하므로 k는 한 바이트가 가질 수 있는 상태 공간인 256이 된다. 해당 수식을 통해 도출된 통계량이 임계값 미만일 경우, 해당 대응기법이 입력된 난수를 기반으로 유효한 임의의 값을 반환했다고 판정한다. 이때 이 임계값은 k에 의해 결정되는 자유도와 유의 수준에 따라 결정된다.

3.3.3 독립성 테스트

독립성 테스트는 앞서 설명한 난수성 테스트와 유사하게 출력의 임의성을 확인하나 검증 목적에서 차이가 있다. 독립성 테스트는 단순히 출력의 임의성을 검증하는 것에 그치지 않고, 출력값이 비밀키와 통계적으로 무관하게 균등 분포를 따르는지 확인한다. 비밀키와의 연관성을 분석하기 위해 암호 연산에 주입된 오류를 대응기법이 적용되지 않은 표준 AES에 적용하였을 때 출력되는 오류 암호문과의 결합 분포를 분석한다. 해당 오류 암호문을 의도 오류 암호문이라고 한다. 의도 오류 암호문은 DFA의 원리에 따라 비밀키에 대한 정보를 내포하고 있으므로 의도 오류 암호문과 시뮬레이션 출력 간의 결합 분포를 분석함으로써 출력이 의도 오류 암호문과 무관하게 균등 분포에서 독립적으로 선택된 값인지 확인할 수 있다.

본 테스트는 난수성 테스트와 동일하게 카이제곱 적합성 검정을 통해 이를 검증하며, 두 변수의 결합 분포를 사용하므로 k는 65,025가 된다. 마찬가지로에 의해 결정되는 자유도와 유의 수준에 따라 결정된 임계값보다 작을 경우 두 변수 간의 결합 분포가 균등 분포를 따름을 의미한다. 즉, 의도 오류 암호문과 무관하게 균등 분포에서 독립적으로 선택된 출력임을 의미한다.

IV. 실험 및 결과

본 장에서는 3장에서 제안한 안전성 검증 방법을 실제 Redundancy 기반 대응기법에 적용함으로써 제안하는 평가 방법론의 실효성을 입증한다. 검증을 수행하기에 앞서, 먼저 실험 및 분석의 대상이 되는 알고리즘에 대해 설명한다. 이후 해당 기법을 대상으로 시나리오별로 제안한 테스트를 순차적으로 수행하며 도출된 데이터를 통해 제안하는 방법론의 실효성을 검증한다.

4.1 검증 대상 알고리즘

본 절에서는 제안하는 방법론의 실효성을 검증하기 위한 실험 대상 알고리즘을 설명한다. 보편적으로 널리 사용되는 대칭키 암호 표준인 AES-128을 선정하였으며, 여기에 1차 및 2차 오류주입에 대응하기 위해 설계된 Detection 및 Infection 기법을 적용하였다.

AES-128을 선택한 이유는 첫째, 해당 알고리즘은 국제 암호 표준으로서, 다수의 논문에서도 공통적으로 사용하는 신뢰도 높은 벤치마크 대상이기 때문이다. 두 번째로, AES-128은 오류 전파 특성에 관한 선행 연구가 충분히 이루어져 있어, 본 연구에서 제안하는 시나리오에 따른 보안 강도를 정량적으로 평가하기에 가장 적합한 구조를 갖추고 있기 때문이다.

Algorithm 1은 1차 Detection 알고리즘을 나타낸다. 해당 알고리즘은 1~2번 줄에서 AES 암호화 연산을 2번 수행한 뒤, 3번 줄에서 비교를 수행하여 조건을 만족하는 경우에만 C0을 반환하고 아닌 경우 입력으로 받은 난수를 반환한다.

Algorithm 2는 2차 Detection 알고리즘을 나타낸다. 2~4번 줄에서 AES 암호화 연산을 3번 수행한 다음, 5번 줄과 7번 줄에서 2번의 비교 연산을 수행한다. 모든 조건을 만족하는 경우에만 C0을 반환한다. 추가로 6번 줄과 8번 줄에서 비교 연산을 수행할 때마다 카운터를 증가시킨 뒤, 16번 줄에서 이를 확인하여 카운터 값이 맞지 않는 경우 비교 연산이 생략되었다고 판단하여 난수를 반환한다.

JBBHCB_2026_v36n3_809_6_f0001.png 이미지

Fig. 1. First-order detection encryption algorithm

JBBHCB_2026_v36n3_809_6_f0002.png 이미지

Fig. 2. Second-order detection encryption algorithm

Algorithm 3은 [9]에서 제안한 1차 Infection 기법을, Algorithm 4는 2차 Infection을 나타낸다. 1차 Infection은 AES 암호화 연산을 2번 사용하였으며, 2차 Infection은 AES 암호화 연산을 3번 사용하였다. 공통적으로는 확산 연산으로 난수를 비밀키로 하는 CBC-MAC을 사용하였다.

JBBHCB_2026_v36n3_809_7_f0001.png 이미지

Fig. 3. First-order infection encryption algorithm

JBBHCB_2026_v36n3_809_7_t0002.png 이미지

Fig. 4. Second-order infection encryption algorithm

4.2 실험 결과

본 절에서는 3장에서 제안한 방법론을 활용하여 4.1절의 대상 알고리즘에 대해 검증을 수행한 결과를 기술한다. 실험은 64비트 Windows 운영체제 기반 및 Visual Studio 환경에서 C언어로 작성된 시뮬레이션 코드를 통해 수행되었다. AES 연산 중 주입되는 오류는 기존 오류주입 연구에서 보편적으로 사용되는 오류 모델을 반영하여, 9라운드 MixColumns 연산의 입력에 랜덤 바이트 오류를 주입하는 경우로 설정하였다.

또한 오류 유형 2의 경우, C언어 함수 단위로 매 실행마다 하나 또는 연속된 임의의 함수 구간이 생략되도록 시뮬레이션하였다. 아울러, 충분히 많은 횟수의 반복 시뮬레이션을 수행함으로써 발생 가능한 모든 생략 시나리오를 통계적으로 포괄할 수 있도록 설계하여 검증의 객관성을 확보하였다.

4.2.1 단순 출력 테스트 결과

단순 출력 테스트는 3.3에서 기술한 입력 조건을 바탕으로 총 1,000,000번 시뮬레이션하여 출력 유형별 비율을 산출하였다. 출력의 난수성을 확인하기 위해 동일한 입력과 키에 대해 10번 반복하였으며, 동일한 결과가 도출되는 경우를 편향된 출력(Biased Output)으로 분류하여 집계하였다. Fig 5, 6, 7은 시나리오별 실험 결과를 나타낸다. 그래프의 X축은 분석 대상인 대응 기법의 유형을 나타냈으며 Y축은 출력 비율을 백분율(%)로 나타낸다.

JBBHCB_2026_v36n3_809_8_f0001.png 이미지

Fig. 5. Output distribution of countermeasures under Scenario 1

JBBHCB_2026_v36n3_809_8_f0002.png 이미지

Fig. 6. Output distribution of countermeasures under Scenario 2

JBBHCB_2026_v36n3_809_8_f0003.png 이미지

Fig. 7. Output distribution of countermeasures under Scenario 3

본 논문에서 검증 대상으로 설정한 알고리즘은 오류주입 시 난수를 출력하도록 설정하였으므로 발생 가능한 안전한 고정 출력은 모든 비트가 0인 출력과 정상 암호문만이 존재한다. 따라서 모든 비트가 0인 경우(All-zero output)와 정상 암호문(Correctciphertext), 매번 다른 난수가 출력되는 경우(Randomized output), 그리고 난수가 아닌 특정값으로 편향된 경우(Biased Output)의 네 가지 범주로 세분화하여 각 비율을 집계하였다. 이 중 편향된 경우의 출력 비율이 0%를 초과하는 경우 해당 시나리오에 대해 취약한 것으로 판정하였다.

시나리오 1의 경우, 모든 대응기법이 모두 난수를 반환하며 보안 요구사항을 충족하였다. 이는 1차 대응기법과 2차 대응기법 모두 1차 오류주입 공격에는 강건함을 입증한다.

반면 시나리오 2의 경우 1차 Detection과 1차 Infection은 모든 경우에 대해 특정 값으로 편향되는 취약점이 발견되었다. 편향된 값을 분석한 결과 DFA를 통한 키 복구가 가능한 취약한 출력이 발생함을 확인하였다. 이는 두 번의 AES 연산만을 수행하는 1차 대응기법의 특성상 시나리오 2를 수행할 경우 대응 로직이 무력화되기 때문이다.

시나리오 3의 경우 2차 Detection과 Infection은 모든 비트가 0인 경우 또는 난수가 출력되어 안전함이 확인되었다. 반면 1차 대응기법의 경우 해당 출력이 발생하는 경우도 존재하지만 편향된 출력이 각각 16.7%와 9.1%로 취약함을 보였다. 이는 1차 대응기법이 다중 오류주입 환경에서는 취약함을 시사한다.

4.2.2 난수성 테스트

난수성 테스트는 3.3에서 기술한 입력 조건을 바탕으로 총 1,000,000번 시뮬레이션하여 출력에 대한 바이트별 카이제곱 통계량을 산출하였다. Fig 8, 9, 10은 시나리오별 카이제곱 적합성 검정 실험 결과를 나타낸다. 각 그림의 개별 그래프는 좌측 상단부터 시계 방향으로 1차 Detection, 1차 Infection, 2차 Infection 그리고 2차 Detection 순서로 배치하였다. 각 그래프별 X축은 바이트 위치를 나타내며 Y축은 해당 바이트 위치에서의 카이제곱 통계량을 나타낸다. 붉은색 점선은 유의 수준 99%와 자유도 255에서의 임계값을 나타낸다. 바이트별 카이제곱 통계량이 해당 임계값 이상인 경우, 해당 시나리오에 대해 통계적으로 편향성을 갖는 것으로 간주하여 취약한 것으로 판정한다.

JBBHCB_2026_v36n3_809_8_f0004.png 이미지

Fig. 8. randomness Chi-square test results for each countermeasure under Scenario 1

JBBHCB_2026_v36n3_809_8_f0005.png 이미지

Fig. 9. randomness Chi-square test results for each countermeasure under Scenario 2

JBBHCB_2026_v36n3_809_9_f0001.png 이미지

Fig. 10. randomness Chi-square test results for each countermeasure under Scenario 3

시나리오 1의 경우 모든 대응기법의 모든 바이트가 임계값보다 낮게 측정되어 보안 요구사항을 충족하였다. 이는 해당 시나리오를 수행하였을 때 모든 대응기법이 특정 값에 편향되지 않고 이론적인 균등분포를 따르는 난수를 출력함을 의미한다.

반면 시나리오 2의 경우 1차 Detection과 1차 Infection은 임계값 이상의 카이제곱 통계량을 가진 것으로 측정되었다. 이는 시나리오 2에 대해 해당 대응기법이 균등 분포를 따르는 것이 아닌 편향된 출력을 반환함을 의미한다. 이는 시나리오 3에서도 동일하게 관측되었으며, 이를 통해 1차 대응기법이 다중 오류주입 환경에서는 취약함을 의미한다.

4.2.3 독립성 테스트

독립성 테스트는 3.3에서 기술한 입력 조건을 바탕으로 총 10,000,000번 시뮬레이션하여 출력에 대한 바이트별 카이제곱 통계량을 산출하였다. 앞선 난수성 테스트보다 시뮬레이션 횟수가 증가한 이유는 독립성 테스트는 출력값과 의도 오류 암호문 간의 결합 분포를 사용하므로 바이트별로 출력 가능한 데이터가 65,536가지로 확장되어 난수성 테스트의 256개 대비 현저히 크기 때문이다.

Fig 11, 12, 13은 시나리오별로 출력과 의도 오류 암호문 간 결합 분포의 카이제곱 적합성 검정 실험 결과를 나타낸다. 각 그림의 그래프 배열은 난수성 테스트와 동일하며, 임계값은 유의 수준 99%와 자유도 65,025에 의해 결정됐다. 바이트별 카이제곱 통계량이 해당 임계값 이상인 경우, 해당 시나리오에 대해 의도 오류 암호문에 의존적인 통계적으로 편향성을 갖는 것으로 간주하여 취약한 것으로 판정한다.

JBBHCB_2026_v36n3_809_9_f0002.png 이미지

Fig. 11. Independence-randomness Chi-square test results for each countermeasure under Scenario 1

JBBHCB_2026_v36n3_809_9_f0003.png 이미지

Fig. 12. Independence-randomness Chi-square test results for each countermeasure under Scenario 2

JBBHCB_2026_v36n3_809_9_f0004.png 이미지

Fig. 13. Independence-randomness Chi-square test results for each countermeasure unde rScenario 3

시나리오 1의 경우 모든 대응기법의 모든 바이트가 임계값보다 낮게 측정되어 보안 요구사항을 충족하였다. 이는 해당 시나리오를 수행하였을 때 모든 대응기법이 의도 오류 암호문과 무관하게 이론적인 균등 분포를 따르는 난수를 출력함을 의미한다.

반면 시나리오 2의 경우 1차 Detection과 1차 Infection은 임계값 이상의 카이제곱 통계량을 가진 것으로 측정되었다. 이는 시나리오 2에 대해 해당 대응기법이 균등 분포를 따르는 것이 아닌, 의도 오류 암호문에 의존하는 편향된 출력을 반환함을 의미한다. 이러한 경향은 시나리오 3에서도 동일하게 관측되었으며, 이를 통해 1차 대응기법이 다중 오류주입 환경에서는 출력의 독립성을 보장하지 못하며 취약함을 보인다.

V. 결론

본 논문에서는 Redundancy 기반 대응기법의 구조적 특성을 반영한 공격 시나리오와 통계적 검증 방법론을 제안하였다. 주요 성과는 다음과 같다.

첫째, Redundancy 대응기법의 구조에 특화된 공격 시나리오를 수립하였다. 단순히 중간값을 변조하는 것이 아닌 대응기법 등을 생략하는 등의 프로그램 흐름 변조까지 고려한 오류 모델을 적용함으로써 기존에 제안된 검증 방법보다 구체적인 시나리오를 작성하였다.

두 번째로, 통계적 보안성 검증 방법론을 제안하였다. 단순히 취약한 출력 반환 유무를 확인하던 방식을 넘어, 카이제곱 적합성 검정을 통해 설계에 맞게 통계적으로 임의성을 갖는지 확인하는 검증 방법을 제안하였다.

마지막으로, 수립된 시나리오와 제안한 방법론은 기존 1차, 2차 대응기법에 적용함으로써 그 실효성을 검증하였다.

결론적으로, 본 논문은 Redundancy 기반 대응 기법에 특화된 오류주입 공격 시나리오와 통계적으로 안전성을 검증하는 방법론을 제안하였다. 특히 본 방법론은 대상 암호 연산과 무관하게 Redundancy 구조만 적용되어있다면 동일하게 활용 가능한 범용성을 지닌다. 다만, 본 연구는 2차 오류주입 공격에 집중하여 검증을 수행하였다는 한계가 존재한다. 추후 연구에서는 본 논문의 검증 프레임워크를 N차 이상의 고차 오류주입 공격 환경으로 확장함으로써 안전성 평가의 범위를 넓히고자 한다.

References

  1. D. Boneh, R. A. DeMillo, and R.J. Lipton, "On the importance of checking cryptographic protocols for faults," International Conference on the Theory and Applications of Cryptographic Techniques, vol. 1233, pp. 37-51, May 1997.
  2. E. Biham and A. Shamir, "Differential fault analysis of secret key cryptosystems," Annual International Cryptology Conference, vol. 1294, pp. 513-525, Aug. 1997.
  3. A. Baksi, D. Saha, and S. Sarkar, "To infect or not to infect: A critical analysis of infective countermeasures in fault attacks," Journal of Cryptographic Engineering, vol. 10, no. 4, pp. 355-374, Nov. 2020. https://doi.org/10.1007/s13389-020-00224-9
  4. P. Khanna, C. Rebeiro, and A. Hazra, "XFC: A framework for exploitable fault characterization in block ciphers," Proceedings of the 54th Annual Design Automation Conference 2017, pp. 1-6, June 2017.
  5. K. Keerthi and C. Rebeiro, "FaultMeter: quantitative fault attack assessment of block cipher software," IACR Transactions on Cryptographic Hardware and Embedded Systems, vol. 2023, no. 2, pp. 212-240, Mar. 2023.
  6. M. Joye and M. Tunstall, Eds., Fault Analysis in Cryptography, Heidelberg: Springer, pp. 1-228, 2012.
  7. V. Lomné, T. Roche, and A. Thillard, "On the need of randomness in fault attack countermeasures - application to AES," 2012 Workshop on Fault Diagnosis and Tolerance in Cryptography, pp. 85-94, Sept. 2012.
  8. J. Zhang, W.U. Ning, X. Zhang, L. Shen, and F. Zhou, "Against double fault attacks based on countermeasures for second order infection mechanism," Proceedings of the World Congress on Engineering and Computer Science (WCECS), vol. 1, pp. 115-119, Oct. 2016.
  9. G. Barbu, et al., "A high-order infective countermeasure framework," 2021 Workshop on Fault Detection and Tolerance in Cryptography (FDTC), pp. 13-19, Sept. 2021.
  10. M. Hoffmann, F. Schellenberg, and C. Paar, "ARMORY: fully automated and exhaustive fault simulation on ARM-M binaries," IEEE Transactions on Information Forensics and Security, vol. 16, pp. 1058-1073, Nov. 2020.
  11. H. Tan, et al., "SAT-based formal verification of fault injection countermeasures for cryptographic circuits," IACR Transactions on Cryptographic Hardware and Embedded Systems, vol. 2024, no. 4, pp. 1-39, Aug. 2024.
  12. A. Menu, et al., "Experimental analysis of the electromagnetic instruction skip fault model," 2020 15th Design & Technology of Integrated Systems in Nanoscale Era (DTIS), pp. 1-6, Apr. 2020.