DOI QR코드

DOI QR Code

Security analysis o( proxy signature schemes based on RSA and integer factorization problems

RSA와 소인수 분해 문제에 기반한 대리서명 기법의 안전성 분석

  • Published : 2005.04.01

Abstract

Quite recently, Zhou, Lu and Cao proposed a proxy-protected signature scheme based on the RSA assumption and two proxy-protectcd schemes based on the hardness of integer factorization. Dey also provided a security proof for each signature scheme in the random oracle model. In this paper, we show that their schemes do not satisfy a security requirement necessary for proxy signature schemes. This results in generating proxy signature without fay Permission from an original signer.

최근 Zhou, Cao 그리고 Lu는 강한 위조 불가능을 만족하는 RSA와 소인수 분해 문제 기반의 세 가지 대리서명기법을 제안하면서 각각의 대리서명 기법들이 랜덤 오라클 모델하에서 증명가능한 안전성을 제공한다는 주장을 하였다. 본 논문에서는 이 기법들이 원 서명자로부터 위임받지 않은 사용자도 유효한 대리서명을 생성할 수 있게 한다는 점을 보임으로써 대리서명이 만족해야 하는 기본적인 안전성을 만족하지 않는다는 것을 보인다.

Keywords

Ⅰ. 서론

대리 서명 기법은 원 서명자와 대리 서명자, 그리고 검증자들로 구성되며 원 서명자가 대리 서명자에게 자신의 서명 권한을 안전하게 위임함으로써, 대리서명자가 메시지에 대한 서명을 생성할 수 있도록 하는 방식이다. 이러한 대리 서명 기법의 개념은 1996년 Mambo, Usuda, 그리고 Okamoto에 의해 처음 소개되었고, 이후 다양한 기법들이 제안되고 있다.(1-6)

대리 서명 기법은 그 위임방법에 따라 전체위임 (full delegation), 부분위임 (partial delegation), 그리고 보증위임 (delegation by certificate (warrant))으로 나눌 수 있다 대리자 보호 대리서명 (proxy-protected signature)은 일종의 부분위임 대리서명 기법으로, 위임받은 대리 서명자 이외에는 원 서명자라도 유효한 대리 서명을 생성하는 것이 불가능한 방법이다. 최근의 대리서명 연구에 있어서 이러한 성질은 기본적으로 만족해야 할 안전성 중 하나로 인정받고 있으며 이를 강한 위조 불가능성으로 정의하고 있다. 참고로 대리 서명 기법이 만족해야 할 기본적인 안전성은 다음과 같다.(4) , 검증 가능성 (Verifiability): 주어진 대리서 명으로부터, 검증자는 서명된 메시지에 대한 원 서명자의 동의를 확인할 수 있다.

.강한 위조 불가능성 (Strong unforgeability): 대리 서명자를 제외한 누구도 유효한 대리 서명을 생성할 수 없다.

.강한 신원 확인성 (Strong identifiability): 누구나 주어진 대리 서명으로부터 서명을 생성한 대리 서명자의 신원을 확인할 수 있다.

.강한 부인 방지성 (Strong undeniability): 대리 서명자는 자신이 생성한 대리 서명을 부인할 수 없다.

, 오용 방지 (Prevention of misuse): 대리 서명키는 유효한 대리 서명을 생성하는 것 이외의 용도로 사용될 수 없다. 대리 서명키의 오용이 확인될 경우, 대리 서명자의 책임이 정확하게 결정되어야 한다.

지금까지 제안된 거의 모든 대리 서명 기법들은 위의 기본적인 안전성들을 각각 독립적으로 증명하였으며 이로 인하여 대리 서명 기법에서 충분히 발생할 수 있는 복합적인 공격 모델에서의 안전성은 정확히 검증되지 못하였다.⑹ 하지만 최근 Boldyreva, Palacio 그리고 Warinschi는 보증 위임 대리서명에 대한 안전성 개념을 형식화하고 이 형식 모델에 맞춘 증명 가능한 안전성을 가지는 기법들을 제안함으로써 이러한 문제점을 해결하고자 하였다.(4)

최근 Zhou, Cao 그리고 Lu는 RSA와 소인 수 분해 문제에 기반한 세 가지 대리자 보호 대리 서명 기법을 제안하고 랜덤 오라클 모델에서의 안전성 증명을 제시하였다.(7,8) 그러나 이들은 자신들이 제안한 대리 서명 기법의 안전성 증명에 있어서 논문 〔4〕에서와 같이 전체적인 안전성 개념에 대한 형식화 없이 단지 일반적인 서명 기법의 안전성 개념인 능동 선택 평문 공격에 대한 존재 위조불가 (existential unforgeable under the adaptive chosen message attack)에 따른 증명을 제시하였다. 이러한 일반적인 서명 기법의 안전성을 대리서명 기법에서 맞춰보면 대리 서명자가 생성한 서명에 대한 위조 불가능성과 부인 방지성에만 해당한다. 결국 이들이 제시한 증명은 대리자 보호라는 특정 성격에만 초점을 맞춘 것으로, 궁극적으로는 기존의 대리 서명 기법들과 마찬가지로 안전성 요구 조건 각각에 대한 증명을 제시한 것과 다를 바 없다. 본 논문에서는 이들이 제시한 세 가지 대리 서명 기법들이 명확한 증명이 제시되지 않은 검증 가능성 측면에서 실제로 안전하지 않음을 보인다. 본 논문에서 제안하는 공격 방법은 일종의 가장 공격 (Impersonating at- tack) ⑼으로 유효한 대리 서명이 주어졌을 때, 이를 이용하여 누구나 자신의 개인 키로 원 서명자의 동의나 인증과는 상관없이 유효한 대리 서명을 생성할 수 있음을 보여준다. 본 논문에서는 특히 〔7〕 에서 제안된 대리 서명 기법의 경우 유효한 대리서명이 없이도 누구나 대리서명을 생성할 수 있음을 보인다. 이러한 성질은 Zhou등이 제안한 기법들이 대리서명으로부터 원 서명자의 동의를 확인할 수 있어야 한다는 검증 가능성을 만족하지 않는다는 것을 보여 주며 이는 강한 부인 방지성, 강한 신원 확인성, 그리고 오용 방지 측면에서도 취약하다는 것을 의미한다.

Ⅱ.세 가지 대리 서명 기법

Zhou, Cao 그리고 Lu는 논문 〔8〕 에서 RSA 기반과 Rabin 기반 대리 서명 기법을 제안하였고〔7〕 에서는 변형된 형태의 Rabin 기반 대리 서명 기법을 제안하였다. 이 대리 서명 기법들의 전체적인 구조는 동일하다고 볼 수 있는데, 원 서명자가 대리 서명자에게 위임장과 그에 대한 서명 1)(\(m_{w}, \sigma\)) 을 전송하면. 대리서명자는 인증서 b의 유효성을 확인한 후, b를 대리 서명키로 사용한다. 각 서명 기법들의 자세한 구조를 설명하기에 앞서 공통적으로 사용하는 기호를 나열하면 다음과 같다.

. U。: 원 서명자

. %: 원 서명자로부터 위임받은 대리 서명자

. 〃: 원 서명자로부터 위임받지 않은 사용자

. P, q- 비슷한 크기의 서로 다른 소수

. N. p와 q를 곱한 값, 즉 N=pq

. 臥N): Euler 함수, {pq) = (p-l)(g-l)

. e, d: RSA의 암호화 지수와 복호화 지수,

. ed = 1 mod (、N、)

. mw. 대리 서명자 q의 위임장

. my. U7\ 직접 생성한 위임장

. %: 위임장에 대한 인증서

2.1 RSA 기반 대리 서명 기법

우선 RSA 기반의 공개키 기반 구조 (RSA based Public Key Infrastructure (PKI)) 를 가정하며 각 사용자는 공개키(W=pg, e)와 개인키 (p, g, d) 를 가진다.

.대리서명 준비과정 : 원 서명자 U。는 자신의 개인키(p,q,d)와 공개키(N。,e。)를 가지고 대리 서명자 Up 는 자신의 개인키(Pp, qp, dp) 와 공개키(Np,ep)를 가진다. 또한 Ho: {0,1}*→Zn와 Hp:{0,1}* X Zn。→Znp를 각각 원 서명자와 대리 서명자가 사용하는 안전한 해쉬함수로 한다.

.대리서명 위임과정 : 원 서명자 0의 서명 권한을 대리 서명자 U。에게 위임하기 위해 다음의 절차를 수행한다.

1. U。는 권한의 제한이나 유효기간과 같은 대리 서명과 관련된 정보를 포함하는 위임장mu,을 생성하고 이를 공개한다.

2. U。는 위임장 mu, 을 다음과 같이 서명한다.

#

그리고 (mw,so)를 %에게 안전한 경로 (secure channel)로 전송한다.

3. Up 는 다음의식이 성립하는지 확인함으로써 이 서명을 검증한다.

#

만일 이 서명이 유효하다면.인증서 s。를 대리 서명키로 사용한다.

.대리서명 서명과정 : 원 서명자 0를 대신해서 메시지m을 서명하기 위해, Up%는 임의로 정수\(r \in Z_{N .}\), 를 선택하고 다음을 계산한다.

#

메시지m에 대한 대리 서명은 p\(\sigma\) = (r1,r2)이다. 대리 서명 검증과정 : 메시지m에 대한 대리 서명 p\(\sigma\)=(r1,r2)을 검증하기 위해, 검증자는

# (1)

를 계산하고서 다음 식이 성립하는지 확인한다.

#

2.2 Rabin 기반 대리서명 기법

지금부터 설명하는 두 개의 대리 서명 기법들은 소인 수 분해 문제에 기반한 것들로 Rabin 서명 기법을 사용한다. 먼저 소인 수 분해 문제의 어려움에 기반한 공개키기반구조를 가정호].자. 그러면 각 사용자는 개인 키(p, q) 와 공개키 (N=pq, a) 를 가진다. 여기서 p와 q는 임의로 생성된 큰 소수들로 P = q= 3(mod4)를 만족하며, a는 Jacobi sym- #인 값이다.

.대리서명 준비과정 : 원 서명자 U。의 개인키와 공개키는 각각 (p。,q。)와 (N。,a。)이며, 대리서명자 U。의 개인키와 공개키는 각각 (pp,qp)와 (Np,ap)이다 또한 Ho:{0,1}*→ Zno는 Uo가 사용하는 안전한 해쉬 함수, 그리고 Hp : { 0, 1}* X Zno—> Znp는 耳가 사용하는 안전한 해쉬 함수라 하자.

.대리서명 위임과정 : 원 서명자 U。의 서명 권한을 대리 서명자 Up에게 위임하기 위해 다음의 절차를 수행한다.

1. U。는 위임장mu,을 생성하고 다음과 같이 서명한다.

#

위의 계산으로 얻어진 위임장과 그에 대한 인증서 (\(m_{w_{0}}, s_{o}, c_{1}^{o}, c_{2}^{o}\))를 Up에게 안전한 경로 (secure channel)로 전송한다.

2. Up%는 다음 의 식이 성립하는지 확인함으로써 이 서명을 검증한다.

#

.대리서명 서명과정 : 원 서명자 U。를 대신해서 메시지m을 서명하기 위해, Up는 임의로 정수 r\(\in\) ZNo를 선택하여 R=r2modNo를 계산하고 다음의 계산을 수행한다.

#

이렇게 얻어진 메시지m에 대한 대리 서명은 p\(\sigma\)- = (\(c_{1}^{o}, c_{2}^{o}, c_{1}^{p}, c_{2}^{p}, r_{1}, r_{2}\)) 이다.

대리서명 검증과정 : 메시지m에 대한 대리 서 명 p\(\sigma\) = (\(c_{1}^{o}, c_{2}^{o}, c_{1}^{p}, c_{2}^{p}, r_{1}, r_{2}\))을 검증하기 위해, 검증자는 다음을 계산한다.

#

이 값들로부터 서명에 사용된 난수요소를 다음과 같이 계산한다.

#(2)

이후 다음 식이 성립하는지 확인한다.

#

2.3 변형된 Rabin 기반 대리 서명 기법

서명 기법의 기반구조 및 대리서명 준비과정과 대리서명 위임과정은 2절의 알고리즘과 동일하다. 그리므로 여기서는 대리서 명 생성과 검증 알고리즘에 대해서만 정리하도록 한다.

.대리서명 서명과정 : 원 서명자 U。를 대신해서 메시지m을 서명하기 위해, Up 임의로 정수 t \(\in\) Zno,Np 를 선택하고 \(T \equiv t^{2} \bmod N_{o} N_{p}\)를 계산한 후 다음의 절차를 수행한다.

#

이렇게 얻어진 메시지m에 대한 대리 서명은 # 이다.

대리서명 검증 과정 : 메시지 m 에 대한 대리 서 명 po = (m, T,\(r_{o}, r_{p}, c_{1}^{o}, c_{2}^{o}, c_{1}^{p}, c_{2}^{p}\))을 검증하기 위해, 검증자는 다음을 계산한다.

#

검증자는 중국인의 나머지 정리 (Chinese Remainder Theorem)를 이용하여

#

를 계산하고 다음을 확인한다.

#

Ⅲ.안전성 분석

본 절에서는 II장에서 제시한 세 가지 대리서명 기법들이 모두 안전하지 않다는 것을 보인다. 이러한 문제점은 이들 대리 서명 기법들이 원 서명자가 생성한 인증서 자체를 대리 서명키로 사용하는 구조에서 발생한다. 논문 ⑻에서 제시한 두 가지 기법들에 대해서는 대리 서명자로부터 생성된 대리 서명이 주어진 경우-, 이를 이용하여 위임을 받지 않은 사용자가 유효한 대리 서명을 생성할 수 있음을 보이고, 논문 〔7〕 에서 제시한 기법의 경우 사전에 획득한 대리서명 없이 누구나 유효한 대리서명을 생성할 수 있음을 보인다.

3.1 논문〔8〕 서명 기법에 대한 공격

먼저 RSA 기반 대리 서명 기법을 살펴보자. 원 서명자 U。로부터 위임받은 대리 서명자를 U라 하고 위임받지 않은 사용자를 U라 하자. U。 와Up의 공개키/개인키 쌍은 서명 기법 설명에서 제시한 기호를 사용하며 U의 키 쌍은 각각 (p, g, d)와(N,e)라 하고 HU: {0,1}* X ZNo→ZN를 자신이 사용하는 해쉬함수라 하자. 만일 U가 Up에 의해 생성된 메시지m에 대한 대리서명p\(\sigma\)=(r1,r2)를 받았을 때, 일반성을 잃지 않고 Up에 대한 위임장 mu,도 같이 얻는다고 가정할 수 있다. 그러면 U는 주어진 서명에서 난수요소 R를 식 (1)을 사용하여 복구할 수 있다.

#

다음으로 U는 자신의 공개키가 포함되어 있는 새로운 위임장 mU을 생성하고 새로운 메시지 mm'에 대해 다음을 계산한다.

#

그러면 메시지 m'에 대한 위조 대리서명(r1,r2') 은 다음의 식을 만족하기 때문에 유효한 것으로 검증된다.

#

즉, U부터 위임장mU와 메시지 m' , 그리고 대리 서명 (r1,r2)을 받은 검증자는 먼저 re1o . H。 (mU)-1를 계산하여 난수요소 RU를 찾고 r'e2mod N과 HU(M',RU)d modN  서로 같은지 비교한다. 물론 r'2=HU(M',RU)d modN 이기 때문에 서로 같음을 확인할 수 있고 결국 이 대리서명이 유효하다는 검증을 하게 된다.

다음은 Rabin 기반대리서명 기법을 살펴보자. 이 기법에 대한 공격 방법은 RSA 기반 대리 서명 기법에 대한 공격과 매우 유사하다. 그러므로 여기서는 핵심적인 부분에 대해서만 간략하게 소개하도록 한다. 먼저 위임받지 않은 사용자 U에 대한 개인키와 공개키를 각각 (p, q) 와 (N,a)라 하자. 만일 U가 Up에 의해 생성된 메시지m에 대한 대리 서명 p\(\sigma\) = (\(c_{1}^{o}, c_{2}^{o}, c_{1}^{p}, c_{2}^{p}, r_{1}, r_{2}\))을 안다면, U는 우선 식(2)을 이용하여 commitment R'을 계산할 수 있다. 다음으로 U는 자신의 공개키 정보가 들어간 새로운 위임장 mu을 생성하고 다음을 계산한다.

#

이어서 새로운 메시지 mm'에 대한 해쉬값 HU(m', RU)을 계산한 후, 대리 서명 알고리즘의 절차에 따라 Cp1,Cp2 그리고 r2대신 사용할 c1,c2 그리고 r'2를 계산할 수 있다. 그러면 메시지 m 대한 위조 서명 (\(c_{1}^{o}, c_{2}^{o}, c_{1}, c_{2}, r_{1}, r_{2}^{\prime}\))은 다음의 식을 만족하기 때문에 유효한 것으로 판정된다.

#

이를 자세히 살펴보면, 앞의 RSA 기반의 대리서명 기법과 마찬가지로 공격자 U로부터 위임장 mU 와 메시지 m' , 그리고 대리서명 (\(c_{1}^{o}, c_{2}^{o}, c_{1}, c_{2}, r_{1}, r_{2}^{\prime}\)) 을 받은 검증자는 먼저

R1=r21modNo 와

#

를 계산하여

#

를 얻는다. 위조 서명의 생성 과정에서

#

#를 계산하였으므로 검증자는

#

임을 확인하게 된다.

3.2 논문 〔7〕의 서명 기법에 대한 공격

먼저 U는 자신의 공개키가 포함되어 있는 새로운 위임장 mU를 생성하고 임의로 선택한 A \(\in\) ZNe 대해, ro\(\equiv\) A modNo라 하자. 그리고 Jacobi symbol #에 따라 c1을 다음과 같이 정하자.

#

다음으로, U는 임의의 값 Q\(\in\)ZN를 선택하고,

임의의 값 c2 \(\in\) {0, 1}에 대해

#

를 계산하고, 다음 값들을 정하자.

#

중국인의 나머지 정리를 사용하여 다음을 만족하는 commitment modT*NoN를 찾을 수 있다.

#

이 값을 이용하여 새로운 메시지 m m'에 대한 해쉬값을 계산한 후, (c1U,c2U,sU,rU)를 다음과 같이 계산한다.

#

이러한 계산을 통해 새로운 메시지 m'에 대한 대리서명 p\(\sigma\)'=(T*, ro,rU,c1,c2,c1U,c2U)을 출력한다.

이 서명을 받은 검증자는

#

를 계산하고 다음식을 만족하는 X modNoN 을 찾는다.

#

그러면 X\(\equiv\)T* modNoN을 만족하기 때문에,

p\(\sigma\)'을 유효한 m'에 대한 대리서명으로 검증한다.

3.3 공격 방법에 대한 분석

앞 소절에서 제시한 공격 방법들은 결국 대리서명 키 s。가 실제 대리서명자의 서명 절차에서 제 역할을 수행하지 못하기 때문에 발생한다. 대리서명 단계에서 원 서명자의 인증서인 s。는 단지 난수요소 r을 숨기기 위한 용도로만 사용되는데, 문제는 실제 서명 생성에 필요한 난수요소의 역할은 commitment R이 담당하며, 이 값은 대리 서명 검증 단계의 절차로부터 쉽게 얻어질 수 있는 것이다. 앞의 대리 서명 기법에서는 인증서가 직접 대리 서명키로 사용되기 때문에 검증자에게 공개되지 않고 결국 검증자는 위임장에 대한 직접적인 검증을 할 수 없게 된다. 그러므로 위임받지 않은 사용자 U는 자신의 위임장을 스스로 생성해서 다른 commitment RU를 만들어내고 이를 이용한 자신의 대리서명을 생성할 수 있다. 이 대리 서명을 받은 검증자는 원 서명자의 정보만으로 RU를 복구한 다음 위조된 위임장mU에 기재된 대리 서명자의 정보를 이용하여 서 명의 유효성을 검증하게 된다. 또한 위임받은 대리서명자도 이러한 공격 방법을 이용하면 위임장을 위조하여 사용할 수 있다. 이는 권한의 오용 방지 측면에서의 취약성을 나타낸다.

이러한 취약성을 제거하기 위한 기본적인 방법은 검증자가 원 서명자의 인증서의 유효성을 독립적으로 확인하는 것이다. 이를 위해서는 대리 서명자가 인증서를 검증자에게 서명과 함께 전송해야 하기 때문에 위의 구조와는 다른 형태의 대리 서명키를 사용해야 한다. 일반적인 보증 위임 대리서명 기법에서처럼 대리서명자 자신의 개인키를 대리 서명키로 이용하면 위임장과 인증서 仏如, %)는 대리 서명과 함께 검증자에게 전달될 수 있다. 대리 서명을 받은 검증자는 먼저 인증서를 검증한 후 위임장에 명시되어 있는 대리 서명자의 공개키로 대리서명의 유효성을 검증할 필요가 있으며 서명된 메시지가 위임장에 명시된 제한 조건에 부합하는지 확인해야 한다.

서론에서 언급한 바와 같이 위 대리서명 기법들을 제안한 논문에서는 대리 서명 기법이 만족해야 할 기본적인 안전성 조건을 전체적으로 고려하지 않고 단지 강한 위조 불가능성에 대한 안전성 증명만으로 이 기법들이 증명 가능한 안전성을 가진다고 주장하였다. 하지만 주어진 대리 서명 기법이 진정한 의미에서 안전하다는 것을 증명하기 위해서는. 이 기법에서 발생할 수 있는 다양한 공격들을 형식 모델로 정립한 후에 이에 대한 안전성을 측정, 증명하여야 할 것이다.

Ⅳ. 결론

본 논문에서는, Zhou, Cao 그리고 Lu가 제안한 세 가지 대리 서명 기법에서 위임받지 않은 사용자가 원서명자의 대리 서명을 생성할 수 있는 공격 방법을 제시하여 이 대리 서명 기법들이 안전하지 않음을 보였다. 이러한 결과를 통해 볼 때, 암호 기법 에서 부분적인 성질에 대한 안전성 증명만으로는 기법의 전체적인 안전성을 보장할 수 없다는 것을 유의해야 한다.

References

  1. 김승주, 박상준, 원동호, '보증 부분 위임과 역치 위임에 의한 대리 서명방식,' 정보보호학회논문지, 8(2), pp. 69-81, 1998
  2. 이정연, 천정희, 김태성, 진승헌, 'Bilinear 함수를 이용한 ID 기반 대리서명 기법,' 정보보호학회논문지, 13(2), pp. 3-11, 2003
  3. 박희운, 이임영, '이동 통신에서 적용 가능한 수신자 지정 대리 서명 방식,' 정보보호학회논문지, 11(2), pp. 18-27, 2001
  4. A. Boldyreva, A. Palacio, B. Warinschi, 'Secure proxy signature schemes for delegation of signing rights,' Cryptology ePrint Archive, Report 2003/096
  5. S. Kim, S. Park, D. Won, 'Proxy signatures, revisited,' Information and Communication Security - ICICS'97, Lecture Notes in Comput. Sci. vol. 1334, pp. 223-232, 1997
  6. J.-Y. Lee, J.H. Cheon, S. Kim, 'An analysis of proxy signatures: Is a secure channel necessary?' Topics in Cryptology - CTRSA 2003, Lecture Notes in Comput. Sci. vol. 2612, pp. 68- 79, 2003
  7. R. Lu, Z. Cao, Y. Zhou, 'A simple efficient proxy-protected signature scheme based on factoring,' Comp. Stand. Inter., withdrawn, 2004
  8. Y. Zhou, Z. Cao, R. Lu, 'Provably secure proxy-protected signature schemes based on factoring,' Appl. Math. Comput. 164(1), pp. 83-98, 2005 https://doi.org/10.1016/j.amc.2004.04.032
  9. G. Wang, F. Bao, J. Zhou, R.H. Deng, 'Security analysis of some proxy signatures,' Information Security and Cryptology - ICISC 2003, Lecture Notes in Comput. Sci. vol. 2971, pp. 305-319, 2004