DOI QR코드

DOI QR Code

Efficient RSA-Based PAKE Procotol for Low-Power Devices

저전력 장비에 적합한 효율적인 RSA 기반의 PAKE 프로토콜

  • Lee, Se-Won (Graduate School of Information Management and Security, Korea University) ;
  • Youn, Taek-Young (Graduate School of Information Management and Security, Korea University) ;
  • Park, Yung-Ho (School of Computer Engineering, Sejong Cyber University) ;
  • Hong, Seok-Hie (Graduate School of Information Management and Security, Korea University)
  • 이세원 (고려대학교 정보경영공학전문대학원) ;
  • 윤택영 (고려대학교 정보경영공학전문대학원) ;
  • 박영호 (세종사이버대학교) ;
  • 홍석희 (고려대학교 정보경영공학전문대학원)
  • Published : 2009.12.31

Abstract

Password-Authenticated Key Exchange (PAKE) Protocol is a useful tool for secure communication conducted over open networks without sharing a common secret key or assuming the existence of the public key infrastructure (PKI). It seems difficult to design efficient PAKE protocols using RSA, and thus many PAKE protocols are designed based on the Diffie-Hellman key exchange (DH-PAKE). Therefore it is important to design an efficient PAKE based on RSA function since the function is suitable for designing a PAKE protocol for imbalanced communication environment. In this paper, we propose a computationally-efficient key exchange protocol based on the RSA function that is suitable for low-power devices in imbalanced environment. Our protocol is more efficient than previous RSA-PAKE protocols, required theoretical computation and experiment time in the same environment. Our protocol can provide that it is more 84% efficiency key exchange than secure and the most efficient RSA-PAKE protocol CEPEK. We can improve the performance of our protocol by computing some costly operations in offline step. We prove the security of our protocol under firmly formalized security model in the random oracle model.

패스워드 기반의 키 교환(PAKE) 프로토콜은 난수를 공유하거나 PKI가 구축되어 있지 않은 환경에서 공유한 패스워드를 사용하여 세션키를 공유할 수 있게 함으로써 안전한 통신을 제공하는 암호학적 도구이다. RSA를 사용하여 효율적으로 설계하는 것이 쉽지 않기 때문에 대다수의 PAKE 프로토콜들은 Diffie-Hellman 키 교환을 기반으로 설계되어 왔다. 본 논문에서는 RSA 암호화의 효율성을 활용하여 비대칭 통신환경에 적합한 효율적인 RSA-PAKE 프로토콜을 제안한다. 제안하는 RSA-PAKE 프로토콜이 이론적인 계산량과 파라메타를 바탕으로 한 실험을 통하여 얼마나 효율적인지 판단한다. 제안하는 RSA-PAKE 프로토콜에서 비대칭 통신환경의 저전력 장비는 계산적으로 기존 프로토콜 중에서 안전하고 가장 효율적인 CEKEP보다 약 84% 효율적인 비용으로 키 교환을 수행할 수 있다. 특히, 일정 부분의 연산을 키 교환 과정이 진행되기 이전에 수행함으로써 키 교환 과정의 효율성을 극대화 할 수 있다. 제안하는 RSA-PAKE 프로토콜의 안전성은 RSA 문제를 기반으로 렌덤 오라클 모델에서 증명한다.

Keywords

I. 서론

패스워드 기반 암호기법은 기억 가능한 엔트로피가 낮은 정보를 패스워드로 사용하기 때문에 패스워드 추측 공격에 안전하게 설계되어야 한다. 일반적인 패스워드 추측 공격은 온라인 패스워드 추측 공격과 오프라인 패스워드 추측 공격이 있다. 공격자는 패스워드를 추측하고, 추측한 패스워드를 사용하여 프로토콜에 직접 참여하여 서버의 반응을 통해 추측한 패스워드가 맞는지 확인하는 온라인 패스워드 공격은 패스워드 기반 프로토콜의 경우 피할 수 없는 공격이지만, 실패횟수를 제한하는 방법 등으로 쉽게 막을 수 있으므로 위협적인 공격으로는 간주하지 않는다. 네트워크상에 전송되는 통신 메시지를 수집하고 수집된 데이터를 통해 추측한 패스워드로 생성되었는지 검증함으로써 추측한 패스워드가 올바른지 아닌지 확인하는 오프라인 패스워드 추측 공격은 수집된 데이터를 사용하여 오프라인에서 모든 패스워드에 대한 확인이 가능하기 때문에 패스워드 기반 프로토콜에 대한 위협적인 공격이 된다.

RSA-PAKE 프로토콜은 다른 PAKE들과 달리 e-잉여 공격이라는 형태의 공격에 대한 안전성을 고려해야 한다. RSA-PAKE 프로토콜은 매 세션마다 새로운 RSA 변수 (n,e)를 생성하여 사용하기 때문에 인증서와 같이 공개키를 인증할 수 있는 정보가 없는 상태로 (n,e)를 사용한다. 이와 같은 구성상 특성에 의해 공격자는 전송되는 공개키를 e|Φ(n)를 만족하도록 변조함으로써 공격을 시도할 수 있다. 이러한 공격을 e잉여 공격이라고 하고 RSA-PAKE 프로토콜에 큰 위협이 된다. e-잉여 공격에 안전하기 위해 전송되는 공개키의 신뢰성을 확인하기 위해 크게 두 가지 방법이 사용된다. 하나는 challenge/respones 방식의 프로토콜을 수행하여 공개키의 적합성을 검증하는 방법이고, 다른 하나는 특정 조건을 만족하는 공개키를 사용하여 e-잉여 공격에 대한 안전성을 보장하는 방법이다. challenge/respones 방식을 기반으로 설계된 최초의 프로토콜은 Zhu 등에 의해 제안되었다[15]. Wong 등은 challenge/respones 과정의 효율성을 개선한 프로토콜을 제시하였으나 안전성이 증명되지 않았다[12]. Catalaro 등은 최초로 안전성이 증명 가능한 프로토콜을 제안되었다[5]. 최근 challenge/ respones 방식을 사용하는 RSA-PAKE 프로토콜에 대한 일반적인 안전성 증명이 Shir 등에 의해 제안되었다[11]. 특정 조건을 만족하는 공개키를 사용함으로써 e-잉여 공격에 대한 안전성을 보장하는 최초의 RSA-PAKE 프로토콜인 SNAPI 프로토콜은 Mckenzie 등에 의해 제안되었다[8]. SNAPI 프로토콜은 큰 소수를 공개하도수로 사용함으로써 e-잉여 공격에 대한 안전성을 획득하였다. 그러나, SNAPI 프로토콜은 RSA 암호화 과정에서 큰 도수를 사용하기 때문에 연산 효율성이 낮다. 이점을 보안하기 위해 Zharg 등은 공개키로 작은 소수를 사용할 수 있는 안전성 증명이 가능한 RSA-PAKE 프로토콜인 PEKEP과 CEKEP이 제안되었다[14]. PEKEP와 CEKEP은 3, 5와 같이 작은 소수를 사용할 경우 소수생성 비용과 소수 판정 비용이 매우 적지만 다수의 RSA 암호화를 수행하기 때문에 전체 연산 효율성이 높지 않다. 매우 효율적인 프로토콜인 RSA-EPAKE 프로토콜이 Park 등에 의해 제안되었으나[10] 최근 Youn 등에 의해 취약점이 발견되어 안전하지 않음이 밝혀졌다[13].

본 논문에서는 매우 효율적인 키 교환을 제공하는 RSA-PAKE 프로토콜을 제안한다. 제안하는 RSAPAKE 프로토콜은 SNAPI 프로토콜, PEKEP, CEKEP와 RSA-EPAKE 프로토콜보다 매우 효율적인 키 교환을 제공한다. 비대칭 환경에서의 두 통신주체는 서로 다른 능력을 가진 주체이며, 시스템이 잘 갖추어지고 연산 능력이 큰 매체와 시스템 사양도 비교적 낮고 연산 능력이 적은 매체이다. 저전력 장비란 시스템 사양이 비교적 낮고 연산 능력이 적은 매체이며, 예를 들면 모바일기기가 있다. 즉, 연산 능력이 작은 저전력 장비를 사용하는 사용자의 경우 매우 효율적으로 키 교환을 수행할 수 있도록 구성되어 있어 두 통신 주체가 상이한 통신 능력을 보유하고 통신에 참여하는 비대칭 환경에 매우 적합하게 사용될 수 있다. 제안하는 RSA-PAKE 프로토콜에서 적은 연산 능력을 가진 통신 주체의 키 교환 비용은 기존 제안된 프로토콜 중에서 가장 효율적인 프로토콜인 CEKEP보다 약 84% 이상 효율성이 개선되었다. 특히, 일정 부분 연산을 키 교환 프로토콜의 수행 이전에 미리 계산함으로써 실시간 키 교환 비용을 절감할 수 있다. 제안하는 RSA-PAKE 프로토콜의 안전성은 RSA 문제를 기반으로 렌덤 오라클 모델에서 증명하였다.

II. 안전성 모델 및 정의

제안하는 RSA-PAKE 프로토콜의 안전성을 증명하기 위해[1]에 제시된 안전성 모델을 살펴본다. 본 논문에서는 안전성 모델에 대한 간략한 설명을 제공하므로 안전성 모델에 대한 자세한 설명은 [1]를 참고한다.

서버와 클라이언트를 각각 A와 B, 공격자는 E로 정의한다. D는 패스워드의 집합과 pw는 패스워드로 정의할 때, 두 통신 주체 A와 B는 키 교환을 수행하기 위해 pw∈D를 사전에 공유한 것으로 가정한다. # 는 주체 A의 프로토콜 i번째 세션에 대한 인스턴스로 정의한다. 각 인스턴스마다 세션 아이디 sid, 파트너 아이디 pid, 그리고 세션키 sk가 할당된다. 각 인스턴스는 sid와 pid를 갖고 프로토콜의 모든 과정을 수행하고, 프로토콜의 모든 과정이 올바르게 수행된 경우 sk가 할당된다.

공격모델 (Adversarial model): 안정성의 개념을 정의하기 위해 E의 능력에 대한 공격 모델을 설명한다. E는 수동적인 공격자로서 통신 메시지를 관찰하거나 능동적인 공격자로서 사용자들 사이의 메시지를 없애거나 공격자의 의도대로 메시지를 바꿀 수 있는 등의 행동을 할 수 있다. E의 공격 능력은 다음과 같이 오라클 질의의 형태로 정의할 수 있다.

• Send(A, i, M): E가 인스턴스 # 에 메시지 M을 전송하면, # 는 프로토콜을 수행하여 나온 응답을 E에게 전송한다. E는 M을 변조하거나 다른 인스턴스의 M을 전송할 수 있다.

• Execute(A, i, B, j): A와 B에 대한 인스턴스 ## 는 이전에 프로토콜을 수행하지 않은 상태이다. E는 인스턴스 ## 가 정상적인 프로토콜을 진행하는 동안 통신되는 모든 M을 얻을 수 있다.

• Reveal(A, i): E는 인스턴스 ## 를 가지고 있다.

• Test(A, i): 인스턴스 # 에서 랜덤한 한 비트 b를 생성하고, 출력값으로 E에게 # 가 주어지면 b는 1로 결정되고, 랜덤한 sk가 주어지면 0으로 결정된다. 이 질의는 프로토콜이 진행되는 동안 단 한번 사용할 수 있다.

• Oracle(M): E는 공간 O에서 확률적으로 랜덤하게 선택하는 함수 H에 접근할 수 있는 오라클을 갖고 있다. O는 랜덤오라클 모델 또는 표준 모델에서 작동되는가에 따라 결정된다.

Partnering과 Freshness: 서로 다른 A와 B에 대하여 인스턴스 ## 를 가정하자. 두 인스턴스가 같은 sid를 갖고서 프로토콜이 정당하게 진행되고 서로 상대방을 의미하는 pid를 갖는 경우, 즉 ## 를 만족하면 인스턴스 ## 는 Partner라고 정의한다. 인스턴스 # 가 Freshness라는 의미는 올바른 모든 검증과정을 통과한 인스턴스이고, 인스턴스 # 와 상대방에 대해 Reveal 질의가 이루어지지 않은 경우를 의미한다.

정확성(Correctness): 인스턴스 #### 을 만족하는 Partner이고, 서로 정상적임을 확인한 후 두 인스턴스는 같은 세션키 # 를 갖고 있는 상태를 의미한다.

E가 새로운 인스턴스에 Test 질의를 하고 받은 메시지가 랜덤값인지 아니면 정상적인 프로토콜에서 나온 세션키인지 판단하게 해주는 Test 질의에서의 출력값인 b를 올바르게 추측하는 사건을 Succ라고 정의한다. E의 공격능력을 다음과 같이 정의한다: # 다항식 시간 내의 E가 온라인 패스워드 추측 공격이 제한 없이 수행할 수 있다면 #는 1에 가까워진다. 온라인 패스워드 추측공격의 경우 E가 추측한 패스워드로 프로토콜에 참여하여 추측한 패스워드가 맞는지 틀린지 알 수 있다.

정의 1. 패스워드 기반 키 교환 프로토콜은 모든 다항식 시간동안 공격을 수행하는 공격자 E가 매우 작은 (negligible) ε에 대해 # 의 공격 능력을 가지는 경우 안전하다고 정의한다. 이때, |D|는 D 의 크기이고, Qse는 Send 질의 횟수를 나타낸다.

III. 제안하는 프로토콜

본 장에서는 효율적인 RSA-PAKE 프로토콜을 제안한다. 두 사용자를 A, B라고 한다. Zn은 n보다 적은 양의 정수 집합이고, #이다. 제안하는 RSA-PAKE 프로토콜에서는 해쉬함수 H : {0,1}*→{0,1}k1,H1,H2,H3 : {0,1}*→{0,1}k2를 사용한다. A와 B는 세션키를 생성하기 위해 다음과 같이 프로토콜을 수행한다.

1. A는 RAR{0,1}k와 l-비트 모듈러 n을 생성하고, B에게 (RA, n, A)을 전송한다.

2. B는 n이 l-비트 홀수가 아니면 프로토콜을 종료한다. 정당한 n일 경우 m-비트 소수 e, R∈R{0,1}k# 를 생성하고, α = H(pw, RA, RB, A, B, e, n)를 계산한다. gcd(α, n)≠1 이면 난수 #를 선택하고, 식이 성립하면 z = αRe modn를 계산하여 A에게 (e, RB, z, B)를 전송한다.

3. e가 m-비트 소수가 아닌 경우 A는 프로토콜을 종료한다. e가 m-비트 소수일 경우 A는 α = H(pw, RA, RB, A, B, e, n)를 계산한다. gcd(α,n) = 1 또는 gcd(e ,Φ(n)) = 1가 성립하지 않으면 난수 #를 생성하고, 두 식이 성립하면 d = e-1 mod Φ(n)와 b = (zα-1 )d modn를 계산한다. β = H1(b, RA, RB, A, B, e, n)를 계산하고 B에게 β를 전송한다.

4. B는 β = H1(R, RA, RB, A, B, e, n)이 아니면 프로토콜을 종료한다. 해당 조건식이 만족하면 γ = H2(R, RA, RB, A, B, e, n)와 sk = H3(R, RA, RB, A, B, e, n)를 계산하고 A에게 γ를 전송한다.

5. A는 γ = H2(b, RA, RB, A, B, e, n)이 아닌 경우 프로토콜을 종료한다. 식이 성립하면 세션키 sk = H3(b, RA, RB, A, B, e, n)를 계산하고 프로토콜을 종료한다.

[표 1] 제안하는 RSA-PAKE 프로토콜

IV. 안전성 분석

본 장에서는 2장에서 살펴본 안전성 모델을 바탕으로 본 논문에서 제안한 RSA-PAKE의 안전성을 증명한다. Bellare와 Rogaway의 랜덤오라클 모델을 기반으로 기술한다[1]. 이 모델에서는 새로운 질의마다 랜덤값를 주는 오라클인 해쉬 함수가 사용된다. 이때 해쉬 함수에서 사용된 질의와 응답은 리스트로 저장되어 지고, 만약 이전의 질의로 다시 질의 되는 경우 랜덤값이 아닌 이전에 리스트에 저장된 값을 준다. RSA 문제를 푸는 것이 어렵다는 것을 가정하고, 증명과정에서는 t시간 동안 내에 RSA 문제가 풀 수 있는 확률이 아주 작다는 표현으로 Advrsa(t)를 사용한다. 제안하는 RSA-PAKE의 안전성은 Hybrid Argument 로 구성되어 있으며 Zhang 등의 논문에서 제시된 안전성 분석방법과 거의 동일하다[14]. 결론적으로 제안하는 RSA-PAKE 프로토콜은 정리 1에서 보이는 것과 같이 증명 가능한 안전성을 제공한다.

정리 1을 증명하기 위한 Hybrid Argument는 5개의 Experiment와 각 Experiment사이에서 공격자가 가지는 능력의 차이를 보이기 위한 보조정리 4개, 그리고 마지막 Experiment에서 공격자의 공격능력을 증명하기 위한 보조정리 1개로 구성된다. 첫번째 Experiment는 실제 공격과 동일한 환경을 제공하는 실험이고 마지막 Experiment는 공격자가 negligible한 공격 능력을 가지는 환경으로 설계되어 있다.

Hybrid Experiment P0 : E는 다양한 오라클을 사용하여 공격할 수 있다.(ex. Send, Execute, Reveal, Test 질의) E는 4개의 독립적인 랜덤 오라클 H1, H2, H3, H을 사용할 수 있다. 각 랜덤 오라클마다 입력 값에 대한 출력 값을 주고 리스트에 저장한다. 새로운 입력 값이면 출력 값을 랜덤값으로 주고, 이전과 동일한 입력 값일 경우 리스트에 저장되어 있는 출력값을 준다. 여기서 Adv(E) = Adv(E, P0)이고, 본 논문에서는 E가 다른 인스턴스들을 이용하여 Adv(E, P0) ≤ Qse/|D|+ε을 만족시키도록 하는 것이 목적이다.

 Hybrid Experiment P1: Execute 오라클은 인스턴스의 세션키를 생성하기 위해 랜덤값을 선택할 수 있다. 두 인스턴스 ## 에서 Execute(A, i, B, j) 오라클이 사용되면, 세션키 ## 는 랜덤 오라클 H3의 출력 값이 아닌 {0, 1}k에서 선택한 랜덤값으로 결정된다.

보조정리 1. 랜덤 오라클 사용한 횟수를 Qh, Execute 오라클 사용한 횟수를 Qex로 정의할 때 모든 다항식 시간 내의 E는 다음 식을 만족한다:

|Adv(E,P1)- Adv(E,P0)| ≤ QexAdvrsa(O(t))+QexQh/Φ(n)

증명. E가 P1과 P0를 구별가능하다는 것은 RSA를 풀 수 있다는 것과 같음을 보여줌으로써 Zhang[14]의 논문의 보조정리 1과 유사한 방법으로 보조정리1를 증명할 수 있다. 자세한 증명은 부록 A에서 기술한다.

다른 보조정리를 정의하고 증명하기 위해 Send 오라클을 5가지로 세분화하여 정의하고 각 오라클이 공격 알고리즘 E에게 미치는 영향을 확인하도록 한다.

• Send0(A, i) : 인스턴스 # 는 l-비트 RSA 모듈러 n과 RA∈{0, 1}k를 생성한다. (RA, n, A)를 E에게 보낸다.

• Send1(B, j, A, n, RA) : 인스턴스 # 는 n이 l-비트인 홀수인지 확인하고, 아니면 프로토콜을 종료한다. n이 l-비트인 홀수인지 확인한 후 m-비트소수 e, RB∈{0, 1}k#을 생성한다. 그리고 α = H(pw, RA, RB, A, B, e, n)를 계산한다. 만약 gcd(α, n) = 1을 만족하지 않으면 #를 생성하고, 만족할 경우 z = αRe modn를 계산하여 E에게 (e, RB, z, B)를 보낸다.

• Send2(A, i, e, RB, z) : 인스턴스 # 는 e가 m-비트소수인지 확인하고, 아니면 # 는 종료한다. 인스턴스 # 는 α = H(pw, RA, RB, A, B, e, n)를 계산한다. 그리고 gcd(e ,Φ(n))≠1 또는 gcd(α,n)≠1인 경우 b∈Zn를 생성하고, 아닌 경우 d = e-1 mod Φ(n)를 계산하여 b = (zα-1)d modn를 복호화한다. b와 통신 정보를 사용하여 β = H(b, RA, RB, A, B, e, n)를 E에게 보낸다.

• Send3(B, j, β) : 인스턴스 # 는 프로토콜 진행시(R, RA, RB, e, n)를 알고 있다. 인스턴스 # 는 Send1(B, j, A, n, RA)에서 (RA, n)를 받고, (R, RB, e)을 생성했다. H1 = (R, RA, RB, A, B, e, n)를 계산하여 β와 다르면 프로토콜을 종료하고, 같다면 (R, RA, RB, A, B, e, n)을 입력값으로 랜덤 오라클 H2와 H3을 이용하여 출력값을 갖는다. H3의 출력 값은 # 로, H2의 출력 값은 공격자에게 보낸다.

• Send4(A, i, γ) : 인스턴스 # 는 프로토콜 진행시(b, RA, RB, e, n)를 알고 있다. Send0(A, i) 오라클에서 (RA, n, A)와 Send2(A, i, e, RB, z) 오라클에서 (b, RB, e)를 알 수 있다. H2(b, RA, RB, A, B, e, n)를 계산하여 γ와 다르면 프로토콜을 종료하고, 같은 값이라면 H3(b, RA, RB, A, B, e, n)를 # 로 갖는다.

메시지가 인스턴스에 의해 생성된 경우 “오라클로 생성되었다”(oracle-generated)고 정의한다. 그 외의 경우 “공격이 개입되어 생성되었다”(adversarially- generated)라고 정의한다. 인스턴스 # 에 의해 메시지가 생성된 경우 “# -오라클로 생성되었다” (# - oracle-generated)라고 정의한다.

Hybrid Experiment P2 : 인스턴스 # 는 Send1 오라클에서 # -오라클로 생성된 메시지 (RA, n, A)를 고려한다. 두 인스턴스 ## 가 올바른 모든 검증과정을 통과한 메시지를 받는다면 같은 {0,1}k∈sk를 갖는다. # 는 검증과정을 통과하여 정당한 메시지라고 판단하고 # 는 그렇지 않은 경우, # 만이 랜덤한 세션키를 갖고 # 는 세션키를 갖지 못한다.

보조정리 2. Send 오라클 사용한 횟수를 Qse로 정의할 때 모든 다항식 시간 내의 E는 다음 식을 만족한다:

|Adv(E, P2)- Adv(E, P1)| ≤ QseAdvrsa(O(t))+Qse/2k2

증명. 보조정리 2는 Zhang[14]의 논문의 보조정리 2와 유사한 방법으로 증명할 수 있다. 자세한 증명은 부록 B에서 기술한다.

Hybrid Experiment P3 : 인스턴스 # 는 Send1 오라클에서 # -오라클로 생성된 메시지 (RA, n, A)와 인스턴스 # 는 Send2 오라클에서 # -오라클로 생성된 메시지 (e, RB, z, B)를 고려한다. 두 인스턴스 ## 가 메시지에 모든 검증과정을 통과하면 서로 같은 {0,1}k∈sk를 갖는다.

보조정리 3. Send 오라클 사용한 횟수를 Qse로 정의할 때 모든 다항식 시간 내의 E는 다음 식을 만족한다: Adv(E, P3) = Adv(E, P2).

Send1 오라클에서 인스턴스 ## -오라클로 생성된 메시지 (e, RB, z, B)를 받고서 인스턴스 # 는 공격이 개입된 메시지 (RA, n, A)를 받는다고 생각하자. 이 때 메시지 (e, RB, z, B)는 메시지 (RA, n, A)의 영향을 받기 때문에 (e, RB, z, B)도 공격자에 의해 생성된 메시지라고 볼 수 있다. 따라서 보조정리 3은 증명 없이 확인이 가능하다.

Hybrid Experiment P4 : 인스턴스 # (또는 # )는 Send2(또는 Send1) 오라클에서 공격이 개입되어 생성된 메시지를 받는다. 이 때 # (또는 #)가 올바른 모든 검증 과정을 통과한 메시지라고 확인되면, 이 실험은 중지되고 공격자는 성공이라고 판단한다. 이 경우 공격자의 공격능력을 증가시킨다.

보조정리 4. Send 오라클 사용 횟수를 Qse로 정의할 때 모든 다항식 시간 내의 공격자 E는 다음 식을 만족한다:

Adv(E, P3) ≤ Adv(E, P4)

P3에서는 Execute와 Send 오라클로부터 정당한 인스턴스들에 의해 생성된 랜덤한 세션키를 가지고 있다. P4는 공격이 개입되어 생성된 메시지를 이용하여 세션키의 교환 가능한 조건을 만족시키기 위해 P3보다 E의 공격능력이 더 크다. 따라서 보조정리 4은 증명없이 확인이 가능하다.

보조정리 5. 모든 다항식 시간 내의 공격자 E는 Send1, Send2 질의를 통해 Qse ≤ |D|를 만족하는 Qse를 수행한다. 이 때 공격자 E는 다음 식을 만족한다.

#

증명) 자세한 증명은 부록 C에서 기술한다.

앞에 제시된 보조정리 5에 제시된 Hybrid Argument는 5개의 Experiment와 각 Experiment사이에서 공격자가 가지는 능력의 차이를 이용하여 정리 1을 증명한다.

정리 1. 모든 다항식 시간동안 E는 다른 인스턴스들과 Qse ≤ |D|를 만족하는 Send 질의를 수행한다. 이때 제안하는 RSA-PAKE를 공격하는 E의 공격능력은 다음과 같다.

#

단, Qex과 Qse는 각각 Execute와 Send 질의 횟수이고, Qh는 랜덤 오라클을 사용한 횟수이다.

증명. 보조정리 1에서 5까지 나온 결과를 종합해보면 P0에서 E의 공격능력은 다음과 같다:

#

앞서 제시한 RSA 가정에 의해 Advrsa(O(t))는 매우 작은 값이다. 또한, 프로토콜에서 사용되는 변수 l-비트 n과 m-비트 소수 e를 충분히 큰 값으로 선택함으로써 ##, # 을 무시할 수 있는 크기의 값으로 설정할 수 있다. 따라서 충분히 큰 변수를 사용하면 제안하는 RSAPAKE 프로토콜은 렌덤 오라클 모델하에서 증명 가능한 안전성을 보장한다.

V. 효율성분석

본 장에서는 제안한 RSA-PAKE 프로토콜의 e-잉여 공격에 대한 안전성을 분석하고, 안전성이 요구되는 RSA 공개키 변수 e의 최소 크기를 제시한다. RSA 공개키 e의 크기를 기준으로 기존의 RSA- PAKE 프로토콜들과 연산량을 비교하여 효율성에 대해 논의한다.

5.1. 변수 크기 분석

소수의 분포에 대한 수학적 사실에 근거하여 본 논문에서 제안한 RSA-PAKE 프로토콜의 e-잉여 공격에 대한 안전성을 분석 및 증명한다.

정리 2. (Prime Number Theorem[4]) 임의의 양의정수 x보다 작은 소수의 개수를 π(x)라고 정의한다. π(x)는 충분히 큰 x에 대해 다음과 같이 추정할 수 있다:

#

잘 알려진 정리인 정리 2를 이용하여 본 논문에서 제안하는 RSA-PAKE 프로토콜에서 사용하는 소수의 크기를 정하기 위한 기준이 되는 정리 3를 증명한다

정리 3. n은 l-비트인 RSA 모듈러이고, e는 m-비트 소수이다. E가 e에 대한 정보를 알지 못하고 e|Φ(n)을 만족하는 n을 생성할 수 있는 확률은 다음과 같다:

#

증명. 정리 2에 의해 m-비트 소수의 개수는 다음과 같다:

#

m ≥ 5인 경우 (m-1)ln2 ≤ (m-2)이므로, 미리 m-비트 소수 한 개를 임의로 선택하고 이 소수를 맞출 수 있는 확률은 다음과 같이 계산 된다:

#

즉, E가 m-비트 소수 한 개를 추측하여 고정된 미지의 m-비트 소수를 맞출 수 있는 확률은 최대 2m/2m 이다. E가 n을 선택하는 경우 Φ(n)의 인수로 m-비트의 인수를 최대 k = [l/m⌋개 포함하도록 생성할 수 있다. Φ(n)를 구성하는 k개의 m-비트 인수를 pi(i= 1,2,⋯,k)로 표기하자. E가 모르는 고정된 m-비트 소수 e에 대하여 e|Φ(n)을 만족시킬 수 있는 확률은 어떤 i에 대해 pi = e를 만족하는 확률과 같다. 그러므로 Pr[gcd(e,Φ(n))≠1]를 다음과 같이 정리할 수 있다.

#

결론적으로 E가 n을 선택하여 e|Φ(n)이 만족할 수 있는 확률은 최대 2l/2m이다.

본 논문에서 제안하는 RSA-PAKE 프로토콜은 A가 e를 선택하지 않고 B가 e를 선택한다. 따라서, E가 e-잉여 공격을 성공하기 위해서는 B가 선택할 e를 예측하여 자신이 선택하는 n이 e|Φ(n)을 만족하도록 구성해야 한다. 정리 3에 의하여 E의 e-잉여 공격의 성공 확률이 최대 2l/2m임을 알 수 있다. E가 e-잉여 공격을 성공할 확률에 대해서 2l/2m < 1/|D|를 만족하도록 ;과 m을 설정하면, 패스워드를 추측하는 확률보다 낮게 할 수 있다. 즉, E가 e-잉여 공격을 시도하여도 온라인 패스워드 공격보다 높은 확률로 공격에 성공할 수 없다.

5.2. 연산량 비교 및 분석

기존에 제안된 RSA-PAKE 프로토콜인 SNAPI, PEKEP, CEKEP, RSA-EPAKE 프로토콜들의 효율성과 본 논문에서 제안한 프로토콜의 효율성을 비교한다. [표 2]는 Windows XP, 3.40GHz Pentium(R)D CPU, 2GB RAM인 프로세서를 이용하여 Microsoft Visual C++ 6.0 프로그램을 통해서 실험 수행한 결과이다. 동일한 조건에서의 비교를 위해 RSA 모듈러 n의 크기가 1024-비트인 경우를 고려한다. 또한, 지수연산은 기본적인 square-and- mltiply 알고리즘을 사용하고 소수 생성 및 판정은 Miller-Rabin 소수 판정법을 사용한다. 각 프로토콜에서 요구되어지는 세부적인 사항을 살펴보자. SNAPI 프로토콜에서 서버는 n과 1024-비트보다 큰 소수 e를 생성하고, 클라이언트는 e의 소수 판별 비용과 RSA 암호화인 e에 대한 지수승 연산 비용이 요구된다. PEKEP와 CEKEP에서 서버는 n과 소수 e를 생성한다. 여기서 e = 3, ε = 2-80인 경우를 고려한다. PEKEP에서 클라이언트는 RSA 암호화 과정에서 1024-비트보다 큰 지수에 대한 지수승이 요구 된다. CEKEP에서는 전체적인 라운드 수가 증가하고, 클라이언트의 RSA 암호화 연산 횟수가 늘어난다. 그러나 CEKEP의 총 RSA 암호화 연산 비용은 PEKEP와 비교시 상당히 적다. CEKEP에서 클라이언트는 약 80-비트 지수승 연산이 2번 요구된다. RSA-EPAKE 프로토콜에서 서버는 n과 최소 96-비트 소수 e를 생성한다. 클라이언트는 96-비트 소수 판정 비용과 RSA 암호화 연산 비용으로 96-비트 지수승 연산이 소요된다. 정리 3에 의해서 제안한 프로토콜에서는 서버가 n을 생성하고, 클라이언트에서 최소 52-비트 소수 e를 생성한다. 소수를 생성하는데 필요한 알고리즘인 Miller-Rabin 소수 판정법에서 각 소수에 대해 실행되는 수행 횟수를 살펴보자.

[표 2] 제안하는 RSA-PAKE 프로토콜과 이전 RSA-PAKE 프로토콜들의 서버와 클라이언트 연산량 비용 비교(걸린 시간 단위 : 1/103초, 시행횟수 : 100,000번, S=서버, C=클라이언트)

Miller-Rabin 소수 판정법을 사용할 경우 소수의 크기 및 어떠한 확률 범위 안에 그 수가 소수라는 가능성에 따라 테스트 횟수가 다르게 설정되어 있다. 기준은 [4]에서 제시된 것을 따른다. k는 비트수, t는 테스트 횟수이며, pk,t는 테스트를 통과한 값이 진정한 소수일 확률로 정의된다. 각 해당 k비트마다 t와 k에 해당하는 pk,t 식을 선택하여 계산하여 적용하였다. 이러한 설정에서 t ≥ k/4, k ≥ 21을 만족하는 비교적 작은 k-비트에 대해 pk,t < 1/7⋅k15/4⋅2-k/2-2t이 성립한다[4]. 제안하는 RSA-PAKE 프로토콜에서는 pk,t ≤ 2-40을 만족하면 되므로 52-비트일 경우 t는 17번이다. 이전 프로토콜들은 pk,t ≤ 2-80을 만족하는 소수를 사용해야 하므로 이를 실험에 반영하였다. SNAPI 프로토콜에서는 1025-비트 소수의 경우 t는 3번이고, RSA-EPAKE 프로토콜에서는 96-비트 소수의 경우 t는 27번이다. 이와 같이 Miller- Rabin 소수 판정법을 사용하여 소수의 신뢰성 수치와 각 비트수에 요구되는 t를 구해서 평준하게 실험하였다.

결과적으로 제안하는 RSA-PAKE 프로토콜은 기존의 RSA-PAKE 프로토콜들에 비해 효율적인 키 교환을 제공한다. 또한, e를 미리 계산하여 실제 키 교환 과정에서 52-비트 지수에 대한 지수승 한 번만 수행하면 되므로, 매우 빠르게 키 교환 과정을 진행할 수 있다.

VI. 결론

본 논문에서는 매우 효율적인 RSA-PAKE 프로토콜을 제안하였다. 기존의 대부분의 PAKE프로토콜들은 RSA를 사용하여 효율적으로 설계하는 것이 쉽지않기 때문에 Diffie-Hellman 키 교환을 기반으로 설계되어 왔다. 따라서 효율적으로 키 교환을 제공하는 안전한 RSA-PAKE 프로토콜을 설계하는 것은 매우 의미 있는 연구이다. 비대칭 통신환경에 적합한 효율적으로 제안된 RSA-PAKE 프로토콜은 기존에 제안된 PAKE 프로토콜보다 매우 효율적인 키 교환을 제공한다. CEKEP의 가장 효율적이라 고려되는 e = 3, ε = 2-80인 경우와 비교했을 때, 표2에서 제시했듯이 제안하는 RSA-PAKE 프로토콜의 클라이언트 연산량은 CEKEP보다 약 84%의 효율성이 개선되었음을 알 수 있다. 특히, 소수의 생성을 오프라인 단계에서 미리 수행하는 경우 실제로 키 교환이 수행되는 과정에서의 연산량을 줄일 수 있다. 이와 같은 경우 CEKEP보다 약 88% 개선된 효율성을 보인다.

References

  1. M. Bellare, D. Pointcheval, and P. Rogaway, "Authenticated key exchange secure against dictionary attack," Advances in Cryptology - EUROCRYPT 2000 Proceedings, LNCS 1807, pp. 139-155, 2000
  2. S. Bellovin and M. Merritt, "Encrypted key exchange : Password-based protocols secure against dictionary attacks," Proc. of the IEEE Symposium on Research in Security and Privacy, pp. 72-84, May 1992 https://doi.org/10.1109/RISP.1992.213269
  3. S. Bellovin and M. Merritt, "Augmented encrypted key exchange : A passwordbased protocol secure against dictionary attacks and password file compromise," Proc. of the 1st ACM Conference on Computer and Communications Security, ACM, pp. 244-250, Nov. 1993 https://doi.org/10.1145/168588.168618
  4. D.M. Burton, Elementary number theory, 6th Ed., McGraw-Hill Higher Education, 2007
  5. D. Catalano, D. Pointcheval, and T. Pornin, "Trapdoor Hard-to-Invert Group Isomorphisms and Their Application to Password-Based Authentication," IACR 2007, pp. 115-149, Jan. 2007 https://doi.org/10.1007/s00145-006-0431-8
  6. R. Gennaro and Y. Lindell, "A framework for password-based authenticated key exchange," Ad-vances in Cryptology - EUROCRYPT 2003 Proceedings, LNCS 2656, pp. 524-542, 2003
  7. S. Lucks, "Open key exchange: How to defeat dictionary attacks without encrypting public keys," Proc. of Security Protocol Workshop, LNCS 1361, pp. 79-90, 1997
  8. P. MacKenzie, S. Patel, and R. Swaminathan, "Password-authenticated key exchange based on RSA," Advances in Cryptology, ASIACRYPT 2000 Proceedings, LNCS 1976, pp. 599-613, 2000
  9. A.J. Menezes, P.C. van Oorschot, and S.A. Vanstone, Handbook of Applied Cryptography, 4th Ed., CRC Press, Oct. 1996
  10. S.J. Park, J.H. Nam, S.J. Kim, and D.H. Won, "Efficient Password-Authenticated Key Exchange Based on RSA," CT-RSA, LNCS 4377, pp. 309–323, 2007
  11. S.H. Shin, K. Kobara, and H. Imai, "RSA-based Password-Authenticated Key Exchange,Revisited," IEICE TRANSACTIONS on Information and Systems, vol. E91-D, no. 5, pp. 1424-1438, May 2008 https://doi.org/10.1093/ietisy/e91-d.5.1424
  12. D.S. Wong, A.H. Chan, and F. Zhu, "More Effcient Password Authenticated Key Exchange Based on RSA," In Proc. of INDOCRYPT 2003, LNCS 2904, pp. 375-387, 2003
  13. T.Y. Youn, Y.H. Park, C.H. Kim, and J. Lim, "Weakness in a RSA-based password authenticated key exchange protocol," Inf. Process. Lett, vol. 108, no. 6, pp. 339-342, Nov. 2008 https://doi.org/10.1016/j.ipl.2008.06.002
  14. M. Zhang, "New approaches to password authenticated key exchange based on RSA," Proc. of Asiacrypt, LNCS 3329, pp. 230-244, 2004
  15. F. Zhu, D.S. Wong, A.H. Chan, and R. Ye, "Password Authenticated Key Exchange Based on RSA for Imbalanced Wireless Networks," In Proc. of ISC 2002, LNCS 2433, pp. 150-161, 2002