DOI QR코드

DOI QR Code

오류 분석 공격에 대응하는 효율적인 DSA 서명 기법

An Efficient DSA Signature Scheme Resistant to the Fault Analysis Attack

  • 투고 : 2010.03.15
  • 심사 : 2010.07.13
  • 발행 : 2010.10.31

초록

오류 분석 공격은 암호용 디바이스가 동작하는 동안 오류를 주입한 후 그 결과를 분석함으로써 사용된 비밀키를 추출하는 물리적 공격 방법이다. 이러한 오류 분석 공격에 의해 표준 서명 알고리듬인 DSA(Digital Signature Algorithm)도 취약한 특성이 있음이 밝혀졌고 이를 방어하기 위한 대응책들도 제시된 바 있다. 본 논문에서는 오류 분석 공격을 방어할 수 있는 새로운 DSA 서명 기법을 제안한다. 제안 기법은 서명 연산시 한 번의 역수 연산만 추가 되므로 타 대응 방식에 비해 효율적으로 구현할 수 있다.

The fault cryptanalysis is a physical attack in which the key stored inside of the device can be extracted by occurring some faults when the device performs cryptographic algorithm. Since the international signature standard DSA(Digital Signature Algorithm) was known to be vulnerable to some fault analysis attacks, many researchers have been investigating the countermeasure to prevent these attacks. In this paper we propose a new countermeasure to compute DSA signature that has its immunity in the presence of faults. Since additional computational overhead of our proposal is only an inverse operation in signature process, the proposed DSA scheme can be implemented more efficiently compared to previous countermeasures.

키워드

Ⅰ. 서론

최근 스마트카드와 같은 정보보호용 디바이스에 대한 물리적인 보안 문제가 주목을 받고 있다. 특히 정보보호용 암호 알고리듬을 개발할 당시 생각하지 못했던 하드웨어 구현상의 문제가 최근 심각한 보안 이슈로 대두되고 있다. 이 중에서 악의적인 공격자가 암호 알고리듬의 수행 중간에 오류를 주입하여 비밀키를 노출시키는 오류 분석 공격(fault analysis attack) 혹은 오류 주입 공격 (fault insertion attack) 에 대한 많은 연구가 있었다.

오류 주입 공격은 1997년 Bao 등에 의해 제시된 이후 많은 암호 알고리듬의 안전성을 위협하고 있다. [1. 2], 특히, 중국인의 나머지 정리에 기반한 RSA 암호 시스템에서는 단 한 번의 오류 주입 공격으로 비밀키 전체가 노출될 수 있으며 이에 대한 실험적인 연구 결과도 제시되고 있다〔3-5〕. 뿐만 아니라 이산대수 문제(discrete logarithm problem)에 기반한 공개키 암호 시스템 중 ElGamal 서명이나 DSA (Digital Signature Algorithm) 서명〔6〕에 대한오류 주입 공격도 시도되었다. 특히, 현재 국제 표준으로 사용 중인 DSA에 대한 오류 주입 공격은 Bao 등에 의해 처음 제안되었는데 이때 공격 모델은 비밀키에 대한 한 비트 플립 오류(flip error)를 가정하였다〔1〕. Bao 등의 공격에서는 한 번의 오류 주입으로 비밀키 한 비트를 찾아낼 수 있다. 또한, 2004년에는 Giraud와 Knudsen이 비트 오류 모델을 바이트 오류 모델로 확장하였는데 이 공격에서는 수천 개의 오류 서명이 필요하였다〔7〕. 이외에도 서명시 사용하는 랜덤 수 A의 최하위 바이트(Least Significant Byte, LSB)를 강제로 0으로 만드는 공격 모델이 Naccache 등에 의해 제시되었다. 여기에서는 각 k 의 LSB를 0으로 리셋시킬 수 있다는 가정 하에서 총 27개의 오류 서명으로 비밀키를 추출할 수 있다고 주장하였다〔8〕.

DSA 서명 알고리듬에 대한 오류 주입 대응책으로 먼저 오류 감지 센서 등을 설계하여 오류 주입 자체를 막는 방법을 고려할 수 있다. 다른 한편으로는 오류주입 공격에 유연하게 대응할 수 있고 비교적 비용이 적게 드는 소프트웨어적인 방법이 있다. 소프트웨어적인 대응책으로는 오류 주입 여부를 검사하는 방법 (error detection)이나 오류가 주입되었을 경우 이오류를 확산(error diffusion) 시켜 공격에 필요한 정보가 누출되는 것을 방지하는 방법 등이 있다.. Bao 등은 오류 주입 공격을 방어하기 위해 DSA에 대한 몇 가지 오류 검사 방법〔1〕을 제시하였으며, 최근 Nikodeme 오류 확산 기법을 이용한 안전한 DSA 서명 방식〔9, 10〕을 제안한 바 있다.

본 논문에서는 오류 주입 공격을 방어하면서도 구현의 효율성이 높은 DSA 서명 방법을 제안하고자 한다. 논문에서 가정한 공격 모델은 Bao 등이 제시한 비밀키에 대한 비트 플립 오류이며 이 공격 모델에 기반하여 DSA 알고리듬의 취약성과 Nikodem의 대응기법 〔1이을 집중 분석하였다. 한 비트에 대한 오류 주입은 오류 주입 위치와 시간을 정확히 알고 실행하는 현실적으로 매우 강한 오류 공격 모델이다〔11〕. 논문 〔12〕와 (13) 등에서는 고정된 RAM이나 EEPROM 의 비트를 바꾸는 실험이 있었지만 암호 알고리듬이 장착되어 수행 중인 과정에서는 한 비트 오류 주입은 용이하지 않아 실험적으로 DSA 공격에 성공한 결과는 아직 없다. 제안하는 DSA 서명 방식은 기존의 파라미터나 연산 함수를 그대로 활용하면서 한 번의 역수 계산을 추가하는 계산 오버헤드만 가지고 있어 타대응 방식에 비해 효율적으로 구현할 수 있다. 그리고 Bao 등의 오류 공격 모델을 일반 DSA 서명 알고리듬에 적용하면 비밀키를 추출할 수 있지만, 제안 방식에는 적용되지 않음을 컴퓨터 시뮬레이션을 통해서 확인하였다.

Ⅱ. DSA 서명 방식에 대한 오류 분석 공격

2.1 DSA 서명 방식

DSA는 1991년 NIST(National Institute of Standard and Technology)/} 미국 전자서명 표준으로 사용하기 위하여 발표한 전자 서명 알고리듬이다 〔6、DSA는 ElGamal 서명의〔14〕변형으로서 그 안전성은 이산대수 문제의 어려움에 기반하고 있다. DSA 서명 시스템에 사용되는 변수들은 다음과 같다.

- p : 512비트 이상의 소수

- q : 160비트 소수, 단, 는 P-1을 나눌 수 있다.

- g '■ q 위수를 가지는 생성자 gwg.

- h0 ■ 해쉬 함수, (^* 0, 1}

- <1 : 사용자의 비밀키

- y : 사용자의 공개 키 y = f mod P

각 사용자는 비밀키 a를 비밀로 보관하며 공개 정보 & 93>를 저장하고 있다.

2.1.1 서명 알고리듬

입력 메시지 m을 서명하기 위해, 서명자는 랜덤 수 fe(0<*<<?)< 선택한 후 다음 수식을 이용하여 서명 (m, s)를 계산한다. 이를 나타낸 것이[그림 1〕이다.

(그림 1) DSA 서명 알고리듬

2.1.2 검증 알고리듬

zn에 대한 서명 값 (r, s)를 받은 수신자는 다음 식을 확인함으로써 서명을 검증한다.

#

검증식의 마지막 식이 성립하면 정당한 서명으로 받아들이고 그렇지 않으면 서명을 거부하게 된다.

2.2 오류 주입 공격 분석

Bao 등의 DSA에 대한 오류 주입 공격에서는 서명 알고리듬이 수행되는 동안 비밀키 a에 비트 오류를 주입한다고 가정하였다〔L 10], 즉, 비밀키 a가"비트로 구성되어 있으며 공격자는 비밀키가 저장된 레지스터에 오류를 넣어 한 비트 플립 오류(flip error)7} 발생한다고 가정하였다. 따라서 비밀키의 /번째 비트플립이 발생한 것을 수식으로 나타내면 오류 키 2는 a±2, 와 같다〔1〕. 오류가 주입된 후 DSA의 서명 출력 (r, M)은 다음과 같이 계산된다.

#

그러므로 오류 서명 (r, M)를 받은 공격자는 다음과 같이 7를 계산한다.

#

이때 7를 다시 정리하면 아래와 같다.

#

여기서 공격자는 i = 0, 대해서 & =舟勇曲。烦 modp 를 구하고 다음의 두 식을 계산한다.

#

그리고 공격자는 다음 두 식을 확인해 봄으로써 오류가 발생했던 위치의 비밀키 한 비트를 찾을 수 있다.

#

따라서 공격자는 서로 다른 同 대해 반복적으로 個 mod p mod g와 미 R* mod p mod q가 r과 같은지 비교함으로써 공격자는 비밀키 a의 /번째 비트를 찾을 수 있다. 만약 비밀키 비트가 0에서 1로 바뀌었다면 T 에 4를 곱한 후 mod, 연산을 하면「과 같아질 것이고 비밀키 비트가 1에서 0로 바꿘 경우라면 7에 £를 나눈 후 mod, 연산을 하면 r과 같아지 게 된다.

2.3 오류 주입 공격 대응책 분석

2.3.1 비교 검사 방법

DSA 서명이 정확히 생성되었는지를 확인하는 방법으로 가장 확실한 방법은 서명을 출력하기 전에 검증 과정을 통해 서명이 정확한지 확인하는 방법이다. 그러나 이 방법은 서명 검증을 위해 약 2번의 멱승 연산이 더 필요하게 된다. 또한, 서명 연산 자체를 두 번 생성하여 서로 같은 출력이 생성되는지 비교함으로써 오류 주입 여부를 확인할 수도 있다. 그러나 이 방법은 일반 서명 연산의 두 배의 시간이 필요하게 되며, 특히 비밀키 a에 영구적인 오류(오류 a가 서명 연산동 안 계속 지속되는 경우도 포함)나 두 번의 연산시 a 에 동일한 오류가 발생하는 경우에는 오류 공격에 취약하다.

Bao 등은 위에서 설명한 오류 주입 공격을 제시하면서 보다 간단한 대응책을 제안하였는데, 그 방법은 미리 비밀키의 역수 를 저장하여 두고 이를 이용하여 서명 s 가 정확히 계산되었는지 비교 검사하는 방법이다〔1〕. 즉, 서명 S는 s = L ("(m)+ ar) modq와같이 생성되므로 al(sk-h{m)) modg를 계산하여 이값이「과 동일한지 비교하여 같으면 서명을 출력하고 그렇지 않으면 서명 장치를 리셋하게 된다. 이 방법은 비밀키의 역수를 미리 계산하여 저장할 뿐만 아니라 비교 연산을 통해 오류 주입 여부를 판단하게 된다. 그러나 비교 연산은 또 다른 오류 주입으로 그 과정을 건너뛸 수 있다는 취약점이 있다. 그리고 실제 실험을 통해 비교 연산 과정을 건너뛰는 오류 주입 공격이 성공한 사례도 있었다〔5〕.

2.3.2 오류 확산 방법

최근 Nikodeme 오류 주입 공격을 방어할 수 있는 DSA 서명 알고리듬을 제안하였다. 그의 대응책에서는 비밀키 a나 서명 과정 중에서 오류가 주입되면 그 오류가 서 명문 전체 에 확산되는 성질을 이용하였다 〔10〕.[그림 2〕는 Nikodem이 제안한 오류 주입 공격에 강인한 "Nikodem의 DSA 알고리듬T"을 나타내고 있다.

[그림 2〕오류 주입 공격에 대응하는 Nikodem의 DSA 알고리듬-1

[그림 2〕에서는 오류 주입 여부를 확인하기 위해 단계 4에서 矿를 계산한다. 만약 단계 3에서 오류가 주입되지 않았으면 μ=0이 된다. 즉, 이 방식에서는 단계 3에서 비밀키 a를 사용하는데 이 비밀키가 정상적으로 사용되었는지 여부를 단계 4를 통해서 검증하게 된다. 단계 4에서의 검증은 공개 키 g를 이용하여 위에서 사용한 비밀키가 정상적인 값인지 검사하게 된다.

Nikodeme[그림 2〕의 기법뿐만 아니라 이를 좀 더 단순화 시킨 대응책도 제안하였다. 이를 나타낸 것이 [그림 3〕의 "Nikodem의 DSA 알고리듬 - 2"인데대응책의 원리는 위에서 분석한 것과 유사하다.[그림 2〕의 기법과 차이가 나는 것은 단계 3에서 t;를 계산할 때 A;를 제외하여 w = 와 같이 계산한 것과 단계 4에서 V를 ((eVniodp)mod«)-1 mvxdg와 같이 계산하는 것만 다르다.

(그림 3) Nikodem의 DSA 알고리듬-2

그러나 위의 두 가지 오류 확산 기법은 기존의 서명 방법에 비해 약 3배 정도의 연산이 필요하다. 따라서 [그림 2〕의 DSA 알고리듬에서 연산량을 줄이기 위해 단계 4의 I깞을 아래와 같이 계산할 수도 있다. 이와 같은 방식을 "Nikodem의 DSA 알고리듬T”이라 하자.

#

그러나 이 방식은 비밀키 a에 영구적인 오류나 단계 3과 4의 a에 동일한 오류가 발생하는 경우에는 오류공격에 취약한 특성을 보인다.

또한, 미리 저장된 a의 역수 aT를 이용하여[그림 2〕의 知을 아래와 같이 계산할 수도 있다. 이 방식을 “Nikodem의 DSA 알고리듬-4'라고 하자. 그러나 이 방법 역시 역수를 미리 저장하는 저장 공간이 필요하며 한 번의 멱승 연산이 추가적으로 필요함을 확인할 수 있다.

#

Ⅲ. 오류 분석 공격에 대응하는 DSA 서명 제안

본 절에서는 오류 분석 공격에 안전하고 메모리 저장 공간과 연산량이 적은 DSA 서명 방식을 제안한다. 오류 공격 모델은 앞장에서 기술한 공격 모델로 가정한다. 제안하는 방식은 오류를 검줄하여 서로 비교하는 방법이 아닌 오류가 확산되는 기법을 이용하여 설계한다.

3.1 제안하는 DSA 서명 기법

제안하는 오류 주입 공격에 대응하는 새로운 DSA 서명 알고리듬을 도시한 것이[그림 4〕이다. 이 방식에서 가장 큰 특징 중 하나는 广을 생성할 때 생성자 g를 사용하는 것이 아니라 자신의 공개키 覆 사용하여「을 계산한다는 점이다. 따라서 서명 re t寸 mod p) mod q= (gak mod p) mod q가 되 므로[그림 1〕의 기존 방식과 비교해보면 랜덤 수 /에 비밀키 a를 곱한 후 8에 대한 멱승 연산으로 r을 구한 것과 같다.

(그림 4) 제안하는 오류 주입 공격에 강인한 효율적인 DSA 서명 알고리듬

따라서 다른 서명 쌍 s를 구하는 수식은 아래와 같게 된다’ 즉, [그림 1〕에서 "를 곱하던 것을 (싸:)T 를 곱하여 전개한 것과 같게 된다.

#

제안 방식에서는 S를 생성할 때 비밀키 a를 사용하지 않고 a의 역수를 사용하도록 설계하였다. 이렇게 함으로써 비밀키 a에 한 비트 오류가 발생하더라고 비선형 함수인 역수 연산을 통해 오류가 확산되도록 하였다.

만약[그림 4〕와 같은 서명 알고리듬을 사용하더라도 검증 방법은 일반 DSA 에서 사용했던 것과 동일함을 알 수 있다. 즉, m에 대한 서명 값 (r, s)를 받은 수신자는 다음과 같이 계산하여 최종 검사 과정이 통과하는지 확인함으로써 서명을 검증한다.

#

(증명) DSA 검증 알고리듬

서명식 : # 

따라서 # 이다.

검증식 :  #

3.2 공격에 대한 안전성

제안 방식이 위에서 언급한 공격 모델에 안전한지 여부를 검증하기 위해 서명 알고리듬이 수행되는 동안 공격자는 비밀키가 저장된 레지스터에 오류를 넣어 한 비트 플립 오류가 발생한다고 가정줗].자. 서명 S가 생성되는 동안 @의 2번째 비트가 보수(eompiement)로 바뀐다고 가정하면 오류가 주입된 후 DSA의 서명 출력 S3)은 다음과 같이 계산될 것이다.

r = (护 modp) modq를 계산한다’

$= (汹)" 1h(m) + L 質 mod q를 계산한다’

따라서 공격자는 Bao 등의 공격과 동일한 방법으로 다음과 같이 J틀 계산한다.

#

이때 7를 다시 정리하면 아래와 같다.

#

따라서 공격자가 準나 "4를 계산했을때寸 mod p가 되는 R느 다음과 같이 표현된다.

#

공격자는 비밀키 비트 추출을 위해 4값을 계산할 수 있어야 하지만 이러한 4값은 비밀 키 a를 알지 못하면 구할 수 없는 값이다. 간단히 예를 들어 비밀키 a 의 최하위 비트에 오류가 주입되었다고 가정하면 j = o 이고 값은 아래와 같다. 하지만 이 값은 a에 대한 정보 없이는 구할 수 없다.

#

기존 DSA 서명 알고리듬에서는 서명 3를 만들 때 비밀키 a를 그대로 사용하는 형태이므로 7와 W를 아래와 같이 쉽게 구한 후 r = (/ mod 0 )mod 再 비교할 수 있었다.

#

그러나 제안 방식에서는 서명 S를 만들 때 비밀키 a를 그대로 사용하지 않고『1를 사용하는 구조이므로 동일한 공격에 대해 아래와 같이 7깞이 계산된다. 따라서 역수 연산의 비선형성 (nonlinearity) 때문에 비밀키에 대한 정보없이 r = (yk mod p)mod qS\ 비교할 W값을 구할 수 없다. 따라서 위에서 사용한 오류주입 공격 방법을 적용할 수 없게 된다.

#

제안한 DSA 서명 알고리듬에서는 서명 7■값을 생성할 때 비밀키 q가 포함된 공개 키를 밑수로 사용함으로써 최종 검증식이 r = (yk modp)mod q가 되도록 하였다. 따라서 이때 사용된 A값은 k — smodg 와 같으므로 비밀키 ◎와 비선형적 관계를 가지도록 구성하였다. 따라서 서명 $를 구하는 동안 레지스터에 저장된 비밀키 a에 한 비트 오류가 발생하더라도 Q에 대한 역수를 구하는 과정에서 오류가 확산되도록 설계하였다. 서명 S를 생성할 때 비밀키에 한 비트 오류 e가 주입되면 오류 서명 M는 아래와 같이 계산된다. 여기서 공격자는 .磋 알고 있어도 &나 a에 관한 정보를 얻을 수 없다.

#

한편 제안하는 대응책은 비밀키에 대한 오류 주입을 가정한 것이므로 Naccache 등이 제시한 공격 모델 ⑻에는 적용되지 않는다. 그 이유는 Naccache 등의 공격 방법은 랜덤 수 化의 LSB 바이트를 0으로 고정시키는 것이므로 )를 $ = (澜厂 %(m) + D mod q와 같이 생성하더라도 공격에 필요한 1차식 '야) = 泌(m) + rmodq 이 성립하게 되어 비밀키 a를 찾아낼 수 있다. 그러나 Naccache 등은 논문에서 자신들의 공격에 대한 대응책을 제시하였는데 , 제안 알고리듬에 그 대응책을 적용하면 두 오류 공격을 모두 방어할 수 있다.

Ⅳ. 효율성 분석 및 시뮬레이션

제안하는 DSA 서명 알고리듬과 기존의 알고리듬과의 효율성을 비교한 것이〔표 1〕이다. 효율성은 서명 생성시 필요한 멱승 수와 추가적인 파라미터를 저장하는데 필요한 공간으로 나누어 비교하였다. 효율성 비교에서 160비트에 대한 역수, 모듈라 덧셈, 모듈라곱셈 등은 멱승에 비해 계산량이 작기 때문에 필요한멱승 수만 비교하였다〔15, 16〕. 비교 검사를 이용하는 방법 중 검증 후 서명을 출력하는 방식이나 두 번서명 연산을 거쳐 비교하는 방법은 연산량이 많거나 영구적 오류에도 취약한 특성이 있다. 또한 비밀키의 역수를 저장하고 이를 이용하여 서명 결과를 검증하는 방식은 연산 효율면에서는 매우 유리하나 비교 연산을 건너뛰는 2차 오류 주입 공격에 취약할 수 있다.

〔표 1) 오류 주입 대응기법의 효율성 비교

이 에 반해 Nikodem에 의해 제안된 4가지 오류 확산 방법은 비교 구문을 건너뛰는 공격에는 강하지만 오류를 확산시키기 위해 멱승 연산이 추가적으로 필요하다. 또한 영구적 오류 혹은 동일 오류 2회 발생 시공 격에 취약할 수도 있으며 비밀키 역수 값을 미리 저장해야 하는 경우도 있다.

제안 방식은 비밀키에 대한 (싸:)T mod g를 계산함으로써 비밀키의 역수를 저장하지 않으면서도 오류 주입 공격에 대응할 수 있다. 즉, s를 생성할 때 비밀키 a에 오류를 넣으면 (a灼T mod g과정을 거쳐 s전체 에오류를 확산하는 효과를 가지게 된다. 이러한 오류 확산 효과를 유도하기 위해 서명「을 생성할 때는 생성자 g대신 서명자의 공개키 g를 사용하도록 설계한 것이다. DSA를 구현하는 환경에 따라 다르지만 만약 서명자의 공개키 0가 제공되지 않는다면 비밀키를 이용하여 사전에 공개키를 생성하여 저장한 후 사용할 수도 있다.

논문에서는 일반 DSA 서명은 Bao 등의 오류 주입 공격에 의해 비밀키가 노출될 수 있음을 보이고, 제안하는 대응 방식에는 이 공격이 적용되지 않음을 컴퓨터 시뮬레이션을 통해 검증하였다. 검증은 PC에서 DSA 알고리듬을 구현한 후 소프트웨어적인 방법으로 오류 주입을 가정하고 시뮬레이션 하였다. 구현한 DSA시스템은 소수 p가 512비트이고 g는 160비트를 가정하였다. 해쉬 함수는 SHA-1 알고리듬을 이용하였으며 money.txt라는 특정 파일을 서명하는 것으로 구성하였다. 시뮬레이션에 사용된 파라미터는 아래와 같으며 16진수로 표기하였다.

소수 p=8df2a494 492276aa 3d25759b

b06869cb eac0d83a fb8d0cf7

cbb8324f d7882e5 d0762fc5

b7210eaf c2e9adac 32ab7aac

9693dfb f83724c2 ec0736ee

31c80291

소수 9=c773218c 737ec8ee 993b4f2d

ed30f48e dace915f

생성자 g=626d0278 39ea0al3 413163a5

5b4cb500 299d5522 956cefcb

3bffl0f3 99ce2c2e 71cb9de

fa24babf 58e5b795 21925c9c

c42e9f6f 464b088c c572af53

e6d78802

비밀키 a=634df67a 7c22d358 bca5f3fa

3e9d3f6e 302826f4

공캐키 ?/=810e5859 3317694 e8f3172b

f79fa216 cf2d4b54 bl7f4872

c5ac0a5d dc428726 ce555d40

754b55b3 269ebf6f 672bel97

ae90869e 49628098 5519330e

84a86a75

해쉬값 /xU)-6ae4e6a 6d3e8489 7490be99

5d41b47c 2bfcae06

먼저 Bao의 오류 주입 공격이 동작함을 보인 화면이 [그림 5〕이다. 그림의 (a)는 DSA 서명과 검증이 정상적으로 이루어지고 있음을 보이는 화면이며 (b) 는비밀키 a에 한 비트 오류가 발생했을 경우 공격자가 비밀키 비트를 추출하는 과정을 보인 것이다. 즉, 비밀키의 최하위 비트 %가 0에서 1로 바뀐 것을 가정하면 공격자는 정확히 최하위 비트를 찾아낼 수 있었다.

(그림 5) DSA 서명 및 오류 주입 공격 시뮬레이션 화면

제안하는 서명 방식이 정상적으로 동작하며 오류주입 공격에 강인함을 보인 화면이[그림 6〕이다. 그림의 (a)는 DSA 서명과 검증이 정상적으로 이루어지고 있음을 보이는 화면이며 (b)는 위의 공격 모델과 동일하게 비밀키 a에 한 비트 오류가 발생했을 경우에도 공격자가 비밀키 비트를 추출할 수 없음을 보인 것이다. 즉, 비밀키의 최하위 비트가 0에서 1로 바뀐 것을 가정하더라도 공격자는 최하위 비트를 알아낼 수 없다.

[그림 6} 제안하는 DSA 서명 및 오류 주입 공격 대응 시뮬레이션 화면

Ⅴ. 결론

본 본문에서는 DSA 서명 시스템에 대한 오류 주입 공격과 그 대응책을 분석하였다. 또한 오류 확산 기법을 이용한 효율적인.DSA 서명 방식을 제안하였다. 제안하는 DSA 서명 방식에서는 서명자의 공개키와 비밀키를 동시에 이용하도록 하였으며, 공격자에 의해 비밀키에 비트 오류가 발생해도 오류가 확산되어 키 추출을 위한 정보를 얻을 수 없도록 설계하였다. 또한, 기존 DSA에서 사용되는 파라미터나 함수를 그대로 이용하면서 단지 1회 정도의 역수 연산만 추가하여 구현할 수 있다. 따라서 제안 방식은 메모리 공간이 제한적이거나 연산 성능이 낮은 암호 디바이스에서 오류 주입 공격에 대응하는 DSA를 구현하는데 적용할 수 있다.

참고문헌

  1. F. Bao, R. H. Deng, Y. Han, A. Jeng, A. D. Narasimbalu and T. Ngair, "Breaking Public Key Cryptosystems on Tamper Resistant Devices in the Presence of Transient Faults," Security Protocols Workshop-1997, LNCS vol. 1361, pp. 115-124, 1997.
  2. E. Biham, A. Shamir, "Differential Fault Analysis of Secret Key Cryptosystems," CRYPTO-1997, LNCS vol. 1294, pp. 513-525, 1997.
  3. D. Boneh, R. A. DeMillo and R. J. Lipton, "On the Importance of Checking Cryptographic Protocols for Faults," EUROCRYPT- 1997, LNCS vol. 1233, pp. 37-51, 1997.
  4. C. Aumuller, P. Bier, W. Fischer, P. Hofreiter, and J. P. Seifert, "Fault Attacks on RSA with CRT: Concrete Results and Practical Countermeasures," CHES-2002, LNCS 2523, pp. 206-275, 2003.
  5. C. H. Kim, J. J. Quisquater, "Fault Attacks for CRT Based RSA: New Attacks, New Results, and New Countermeasures," WISTP-2007, LNCS vol. 4462, pp. 215-228, 2007.
  6. "National Institute of Standards and Technology," FIPS PUB 186-2: Digital Signature Standard, 2000.
  7. C. Giraud and E. Knudsen, "Fault Attacks on Signature Schemes," ACISP-2004, LNCS vol. 3108, pp. 478-491, 2004.
  8. D. Naccache, P. Nguyen, M. Tunstall and C. Whelan, "Experimenting with Faults, Lattices and the DSA," PKC-2005, LNCS vol. 3386, pp. 16-28, 2005.
  9. M. Nikodem, "Error Prevention, Detection and Diffusion Algorithms for Cryptographic Hardware," 2nd International Conference on Dependability of Computer Systems - DepCoS-RELCOMEX'07, pp. 127-134, June, 2007.
  10. M. Nikodem, "DSA Signature Scheme Immune to the Fault Cryptanalysis," CARDIS-2008, LNCS vol. 5198, pp. 61-73, 2008.
  11. J. $Bl\ddot{O}mer$, M. Otto and J. P. Seifert, "A new RSA+CRT algorithm secure against Bellcore attacks," In 10th ACM conference on Computer and Communication Security, pp. 311-320, Oct. 2003.
  12. S. P. Skorobogatov, R. J. Anderson, "Optical Fault Induction Attacks," CHES- 2002, LNCS vol. 2523, pp. 31-48, 2003.
  13. J. J. Quisquater, D. Samyde, "Eddy current for magnetic analysis with active sensor," In the proceedings of E-Smart 2002, pp 185–194, Sept. 2002.
  14. T. ElGamal, "A Public-Key Cryptosystems and Signature Scheme Based on Discrete Logarithms," IEEE Trans, Information Theory, vol. IT-31, no. 4, pp. 469-472, July, 1985.
  15. A. Menezes. P. Oorschot, and S. Vanstone, "Handbook of Applied Cryptography," pp. 66-72, CRC Press, 1997.
  16. C. H. Lim and P. J. Lee, "A Study on the Proposed Korean Digital Signature Algorithm," ASIACRYPT'98, LNCS vol. 1514, pp. 175-186, 2000.