DOI QR코드

DOI QR Code

The Conversion method from ID-based Encryption to ID-based Dynamic Threshold Encryption

ID기반 암호시스템을 이용하여 ID기반 동적 임계 암호시스템으로 변환하는 방법

  • Kim, Mi-Lyoung (Graduate School of Information Security, Korea University) ;
  • Kim, Hyo-Seung (Graduate School of Information Security, Korea University) ;
  • Son, Young-Dong (Graduate School of Information Security, Korea University) ;
  • Lee, Dong-Hoon (Graduate School of Information Security, Korea University)
  • 김미령 (고려대학교 정보보호대학원) ;
  • 김효승 (고려대학교 정보보호대학원) ;
  • 손영동 (고려대학교 정보보호대학원) ;
  • 이동훈 (고려대학교 정보보호대학원)
  • Received : 2012.03.23
  • Accepted : 2012.05.08
  • Published : 2012.08.31

Abstract

Dynamic threshold public-key encryption provides dynamic setting of the group of all users, receivers and the threshold value. Over recent years, there are many studies on the construction of scheme, called ID-based dynamic threshold encryption, which combines the ID-based encryption with dynamic threshold encryption. In this paper, we analyze the ID-based dynamic threshold encryption proposed by Xing and Xu in 2011, and show that their scheme has a structural problem. We propose a conversion method from ID-based encryption which uses the bilinear map to ID-based dynamic threshold encryption. Additionally, we prove this converted scheme has CPA security under the full model.

동적 임계 공개키 암호 시스템(dynamic threshold public-key encryption)이란 시스템을 구축하는 과정에서 전체 사용자들의 집합과 인증된 수신자 집합의 크기, 임계치를 고정값으로 설정하지 않고 유연하게 변경될 수 있는 기능을 제공하는 임계 암호 시스템을 말한다. 이와 관련하여 신원정보를 공개키로 사용하는 ID기반 암호 시스템(identity-based encryption)과 동적 임계 공개키 시스템을 결합하여 ID기반 동적 임계 암호 시스템(identity-based dynamic threshold encryption)을 설계하려는 연구가 이뤄지고 있으며, 최근 2011년 Xing과 Xu은 동적 기능을 제공하는 ID기반 임계 암호기법을 제안하였다. 본 논문에서는 Xing과 Xu가 제안한 ID기반 동적 임계 암호 시스템을 분석하고 구조적으로 문제점이 있음을 보인다. 또한 겹선형 함수를 이용한 ID기반 암호 시스템을 ID기반 동적 임계 암호 시스템으로 변환하는 방법(conversion method)를 제안한다. 마지막으로, 변환하여 설계한 기법이 완전한 풀 모델(full model)로 선택된 평문 공격(chosen plaintext attack)환경에서 안전함을 증명한다.

Keywords

I. 서론

1.1 개요

임계 공개키 암호 시스템(threshold public - key encryption)은 일반적인 공개키 암호 시스템을 확장한 암호 시스템으로서 임계치(threshold value)를 이용하여 수신자들의 복호화 권한을 설정할 수 있다[2,5,6]. 암호문은 송신자가 선택한 수신자들의 공개키를 이용하여 생성되고, 수신자들로 구성된 집합 중에 임계치 이상의 수신자가 모여야 암호문을 복호화할 수 있게 된다. 이 때 복호화에 참여하지 않은 수신자는 메시지를 얻을 수 없다. 예를 들어, 전체 사용자가 20명일 때 송신자가 선택한 수신자 10명에 대하여 임계치가 4인 암호문을 전송하였을 때, 수신자 10명 중 적어도 4명이 모여야 암호문을 복호화 할 수 있다. 일반적으로 복호화 과정은 Shamir의 비밀 분산(secret sharing) 기법[10]을 이용한다. 이와 같이 임계 공개키 암호 시스템은 기존에 제시 되었던 일반 적인 공개키 암호 시스템에서 지원하지 못했던 기능을 제공한다.

기본적으로 공개키 암호 시스템에서 공개키는 누구나 만들 수 있기 때문에 이것을 이용하기 위하여 신뢰할 수 있는 인증기관에 공개키를 생성한 정당한 수신자임을 인증 받아야 한다. 정당한 수신자임을 인증 받으면 인증기관에서는 수신자에게 인증서를 발급 해 준다. 하지만 이와 같은 경우 인증서 관리 문제와 인증서 검증에 따른 연산량 등 여러 문제가 생기게 된다. 이에 1985년 전자우편주소나 주민등록번호처럼 수신자의 신원정보를 공개키로 이용하는 ID기반 암호 시스템(Identity-Based Encryption:IBE)이 Shamir에 의해 처음 제안 되었다[11]. 송신자는 암호문을 만들 때 누구나 알 수 있는 수신자의 고유한 신원정보를 공개키로 이용한다. 공개키 자체로 수신자를 인증하기 때문에 공개키 암호 시스템과 달리 인증기관에 정당한 수신자임을 인증 받아야 하는 복잡함과 이에 따른 비용과 비효율성 문제를 해결하는 큰 장점을 가지게 된다.

ID기반 임계 암호 시스템(identity-based threshold encryption)은 임계 암호 시스템과 IBE를 결합한 것으로, 인증서에 대한 문제가 발생하지 않으며 임계치를 이용하여 복호화 권한을 설정할 수 있는 기능을 모두 제공 한다[9,4,12]. 이와 같이 ID기반 임계 암호 시스템은 IBE와 임계 암호 시스템의 장점을 제공한다.

1.2 관련연구

초기에 제안되었던 임계 공개키 암호 시스템에서는 암호 시스템을 초기설정 또는 키 생성 과정에서 전체 사용자들의 집합과 수신자 집합의 크기, 임계치가 고정값으로 설정 되었다. 이러한 경우 시스템이 작동한 이후로는 위에서 설정한 값들이 공개키의 입력 값이 되기 때문에 변경 할 수 없었다[5,7]. 하지만 이동 ad-hoc 네트워크와 같은 경우 수신자들의 집합이 동적으로(dynamically) 변할 수 있기 때문에 위와 같은 값들을 고정값으로 설정하지 않고 유연하게 변경할 수 있는 기능을 제공하는 동적 임계 공개키 암호 시스템(dynamic threshold public- key encryption)이 제안되었다[8].

동적 임계 공개키 암호 시스템에서는 시스템이 작동한 후에도 송신자는 인증된 수신자들의 집합을 동적으로 선택이 가능하며, 동적으로 인증된 집합 중 복호 기능에 대한 임계치가 암호문 생성 과정에서 유연하게 설정 될 수 있다. 2008년에 Cécile Delerablée 와 David Pointcheval은 동적 임계 공개키 암호 시스템이 만족해야하는 기능을 다음과 같이 제시하였다[8].

• 어떠한 사용자도 시스템에 동적으로 참여하여 수신자가 될 수 있다.

• 송신자는 암호문에 대하여 수신자들의 집합을 동적으로 선택 할 수 있다.

• 송신자는 매번 암호문을 만들 때마다 임계치를 동적으로 설정할 수 있다. 이때 임계치는 수신자 집합에서 복호화 권한이 된다.

이와 다른 연구로 Shamir에 의해 처음 제안된 IBE는 연구가 지속 되어오다, 2001년 Boneh과 Franklin에 의해 겹선형 함수(bilinear map)를 이용하여 효율적이고, 랜덤 오라클을 이용하여 안전성을 증명한 IBE가 제안 되었다[3]. 2004년에 랜덤 오라클을 이용하지 않고, 공격자가 공격 대상을 정한 뒤 공격이 시작되는 선택적인 ID 모델(sele- ctive ID model)을 이용하여 선택된 암호문 공격(Chosen Ciphertext Attack:CCA)에 안전한 기법이 Boneh과 Boyen에 의해 제안 되었다[1]. 이후 연구가 지속 되어왔지만 비효율성 문제를 가지고 있었으며, 2005년 Waters가 제안한 IBE는 선택적인 ID모델보다 강한 개념인 풀 모델(full model)로 안전성이 증명되었다[13].

위에서 언급한 IBE와 임계 공개키 시스템의 각각의 장점을 결합한 ID기반 임계 암호 시스템 (identity-based threshold encryption) 또한 하나의 연구 분야로서 활발히 연구가 이루어지고 있다. 2003년에 처음으로 구체적인 기법으로 제안되었고, 이후 여러 기법이 제안되었지만 동적인 환경에서는 적용할 수 없었다[9,4,12]. 2011년 Xing과 Xu 는 ID기반 임계 암호 시스템에서 동적인 기능을 추가하여 인증된 수신자 집합의 크기, 임계치를 유연하게 변경하는 기법을 제안했다[14].

1.3 기여도

본 논문은 Xing과 Xu가 제안한 ID기반 동적 임계 암호 기법을 분석하고, 구조적인 문제가 있음을 설명한다. 또한 IBE와 Shamir 기법을 이용하여 Xing과 Xu가 제안한 기법과 같은 기능을 제공하는 기법을 설계 할 수 있는 변환 방법(conversion method)을 제시한다. 본 논문에서 제안하는 방법을 이용하면 선택된 평문 공격(Chosen Plaintext Attack:CPA)에 안전하고 겹선형 함수를 이용한 IBE의 존재 하에 CPA에 안전한 ID기반 동적 임계 암호 시스템의 설계가 가능하다. 본 논문에서는 2005년에 제안된 Waters의 IBE[13]를 기반으로 랜덤 오라클을 이용하지 않고, 완전한 풀 모델로 증명 한다[13].

논문의 구성은 다음과 같다. Ⅱ장에서는 관련 연구에 대한 배경지식을 기술하고, Ⅲ장에서는 Xing과 Xu가 제안한 ID기반 동적 임계 암호기법에 대하여 설명하고, 기법의 문제점을 분석한다. Ⅳ장에서는 변환 방법(conversion method)을 제안한다. Ⅴ장에서는 제안한 변환 방법을 이용하여 설계된 기법의 안전성을 기술한 안전성 모델로 증명한다. 마지막으로 Ⅵ장에서 결론을 맺는다.

II. 배경 지식

2.1 겹선형 함수

G₁은 위수를 소수 q로 갖는 덧셈 연산군이라 하고, G₂는 같은 위수 q를 갖는 곱셈 연산군이라 하자. 그리고 P는 G₁의 생성원(generator)이다. 군 G₁과 G₂에서 모두 이산대수문제(discrete logarithm problem)가 어렵다고 가정할 때. 다음과 같은 조건을 만족하는 함수 e : G₁ ×G₁ →G₂를 겹선형 함수라 한다.

• 겹선형성 (bilinearlity): 임의의 군 원소 P, Q∈G₁와 a, b∈Zq*에 대하여 e(aP,bQ) =e(P,Q)ab을 만족한다.

• 비소실성 (non-degeneracy): e(P, P)≠1을 만족하는 P∈G₁이 존재한다.

• 계산 가능성 (computability): 모든 P, Q ∈G₁에 대해서 e(P, Q)를 계산하는 효율적인 알고리즘이 존재한다.

2.2 Shamir의 기법[10]

라그랑지 보간법(lagrange interpolation)이란 t개의 순서쌍을 만족시키는 t -1차 다항식을 만족하는 순서쌍을 계산하는 방법이다. 1979년 Shamir는 라그랑지 보간법을 근거로 임계치를 이용하여 비밀 분산 기법(threshold secret sharing)을 제안하였다[10]. 비밀 분산 기법의 기본적인 조건은 분배자 (dealer)는 수신자들에게 분할된 정보에 대한 비밀을 보장하여야 하며, k명의 수신자 집합에 분할된 정보 중 임의의 t명 이상이 정보를 재구성하였을 때 비밀 정보를 복원 되어야 한다. Shamir가 제안한 비밀 분산 기법은 다음과 같다.

• 분배자는 비밀 정보 s = a0를 상수항으로 하는 랜덤한 t -1차 다항식 f(x)를 선택한다.

f(x) = a0 +a1x+⋯+at - 1xt - 1 (modp)

단, 유한체 GF(p)에서 계산이 되고, 비밀 정보 s 또한 유한체 GF(p)에 속해 있다. 여기서 p는 비밀 정보 s보다 큰 소수 이다.

• 분배자는 각 수신자 i(1≤i≤k)에게 분할된 정보 f(i)를 준다.

• k명에게 분할된 정보 중 최소 t명이 모였을 때 라그랑지 보간법에 의해 f(0)값인 비밀 정보 s = a0를 구할 수 있게 된다.

2.3 IBE의 형식적 정의

일반적인 IBE는 다음과 같은 4개의 다항식 시간(polynomial-time) 알고리즘들로 구성된다.

•SetupIBE(1λ): 키 생성기관(Key Generation Center: KGC)에 의해 진행되며 보안 상수 1λ를 입력 받아 마스터 키 mk와 파라미터 params를 출력한다. 이때 mk는 KGC의 비밀 값이고 params는 공개된다.

•KeyGenIBE(params, ID, mk): KGC에 의해 진행되며 파라미터 params과 마스터 키 mk를 입력 받아 사용자의 ID에 대응되는 개인키 skᵢD를 출력한다. 이때 사용자의 ID는 임의의 길이를 가지며 공개키로 이용된다.

•EncryptIBE(params, ID, M): 파라미터 params와 사용자의 ID, 그리고 메시지 M을 입력받아 암호문 C를 출력한다.

•DecryptIBE(params, skᵢD, C): 파라미터 params와 사용자의 ID에 대한 개인키skᵢD, 그리고 암호문 C를 입력받아 메시지 M을 출력한다.

2.4 ID기반 동적 임계 암호 시스템의 형식적 정의

ID기반 동적 임계 암호 시스템은 다음과 같은 4개의 다항식 시간 알고리즘들로 구성 된다.

•Setup(1λ,N): KGC에 의해 진행되며 보안 상수 1λ와 사용자 전체 집합의 크기 N을 입력 받아 마스터 키 mk와 파라미터 params를 출력한다. 이때 mk는 KGC의 비밀 값이고 params는 공개된다.

•KeyGen(params, IDᵢ, mk): KGC에 의해 진행되며 파라미터 params과 마스터 키 mk를 입력 받아 각 사용자의 IDᵢ에 대응되는 개인키 skᵢDᵢ를 출력한다.

•Encrypt(params, {ID₁,...,IDₖ}, t, M): 파라미터 params와 그룹의 사용자 ID 집합 {ID₁, ...,IDₖ}, 그리고 메시지 M을 입력받아 암호문 C를 출력한다. 이때 k≤N이고, t는 임계치다. 즉, k명이 구성하는 그룹에 암호문 C을 전송하여 그 중 t명이 모이면 암호문 C을 복호화 할 수 있도록 설정한다.

•Decrypt(params,IDs, C): 파라미터 params와 사용자 집합 IDs 그리고 암호문 C를 입력받아 IDs 가 암호문을 생성할 때 지정한 사용자 집합의 부분집합이 아니거나, IDs의 크기가 임계치를 넘지 않을 경우 ⊥을 출력한다. 그렇지 않으면 메시지 M을 출력한다.

2.5 ID기반 동적 임계 암호 시스템의 안전성 모델

랜덤 오라클을 이용하지 않고, 풀 모델로 선택 평문 공격에 의한 평문 구분 불가능성(IND-CPA)을 만족하는 ID기반 동적 임계 암호 시스템의 안전성 모델은 다음과 같이 정의한다.

어떠한 다항식 시간(polynomial-time)에 ID기반 동적 임계 암호 시스템 공격자(attacker) A에 대하여 A가 다음과 같이 정의된 게임에서 이길 성공 확률이 무시할 수 있는(negligible) 값이라면 제안된 ID기반 동적 임계 암호 시스템은 IND-CPA를 만족한다고 정의한다.

•Setup(1λ): 시뮬레이터(simulator) Z는 Setup 알고리즘을 실행하여 마스터 키 mk와 파라미터 params를 얻는다. 시뮬레이터 Z는 파라미터 params를 공격자 A에게 준다. 이때 마스터 키 mk는 계속 비밀로 유지한다.

•Phase 1: 공격자 A는 시뮬레이터 Z에게 다음과 같은 질의를 한다.

- Extract(ID = {ID₁,...,IDₖ}): 공격자 A가 ID 집합에 대한 비밀키 sk를 요청할 때 시뮬레이터 Z는 KeyGen 알고리즘을 이용하여 ID 집합{ID₁,...,IDₖ}에 대응하는 비밀키 {sk₁, ...,skₖ}를 생성하여 준다.

•Challenge: 공격자 A는 공개키로 사용할 ID 집합 ID* = {ID₁,...,IDl}과 임계치 t를 선택하고 챌린지 할 두 메시지 M₀,M₁을 선택한다. 공격자 A는 시뮬레이터 Z에게 챌린지 메시지(ID* , t, M₀, M₁)을 준다. 시뮬레이터 Z는 b∈{0,1}을 선택하고 암호문 Cch를 다음과 같이 Encrypt(params,{ID₁,...,IDᵢ},t,Mb)로 생성하여 공격자 A에게 준다. 이때 Phases 1에서 질의하는 ID들의 색인(index) 집합 I : {k|IDₖ∈ID}에 대해서 I1 = #I 라 하였을 때, 임계치 t는 부등식|I 1#{k|IDₖ∈ID*}|<t를 만족해야 한다. 즉, Phases 1에서 질의한 모든 ID 중 t개 이상의 ID 가 ID*집합의 원소가 될 수 없다.

•Phase 2 : 공격자 A는 시뮬레이터 Z에게 Phase 1과 같은 질의를 한다. Phase 2에서 질의하는 ID 들의 색인 집합 I: {k|IDₖ∈ID}에 대해서 I2 = #I 라 하였을 때, 부등식 |(I 1# I2 )#{k|IDₖ∈ID*}|< t를 만족하는 ID 집합에 대해서만 질의가 가능하다. 조건을 만족하면 계속 하여 질의를 요청할 수 있다.

• Guess: 공격자 A 는 b∈{0,1}를 출력하고 b = b 인 경우 공격자 A가 위의 게임에서 이긴다.

위의 공격자 A의 이점(advantage)는 다음과 같은 확률 값으로 정의 된다.

Adv# [A] = #

따라서 공격자 A가 CPA 환경에서 ID기반 동적 임계 암호 시스템을 공격하는데 성공하였다면 A의 이점은 의미 있다고(non-negligible) 볼 수 있다.

III. Xing과 Xu의 기법[14]

본 장에서는 Xing과 Xu가 제안한 ID기반 동적 임계 암호 시스템에 대하여 설명하고 문제점을 분석한다.

3.1 Xing과 Xu의 기법

Xing과 Xu가 제안한 ID기반 동적 임계 암호기법은 다음과 같다.

•Setup(1λ,N): 위수가 소수 q인 덧셈군 G₁ =[P]와 곱셈군 G₂를 선택하고 겹선형 함수 e : G₁ ×G₁→G₂와 해쉬함수 H: {0,1}* →G₁*를 정의한다. 임의의 Q∈G₁*와 s∈Zq*를 선택하고 T= sP를 계산한다. 파라미터 params = (q, G₁, G₂, e, P, Q, T, H)와 마스터 키 mk= s를 출력한다.

•KeyGen(params, IDᵢ, mk): 그룹의 각 사용자의 IDᵢ에 대응되는 개인키 skᵢDᵢ = sH(IDᵢ)를 계산하여 전송한다.

•Encrypt(params, {ID₁,...,IDₖ}, t, M): 일반성을 잃지 않고 송신자가 정하는 수신자의 집합을{ID₁,...,IDₖ}라 하였을 때, 다음 과정을 통해 메시지 M에 대한 암호문 C를 생성한다.

1. 임의의 m∈Zq*를 선택하여 U = mP와 W= e(Q,T)m ∙M을 계산한다.

2. V = mQ+mH(ID₁)H(ID₂) ⋯H(IDₖ)를 계산하고 V = f(0)인 t -1차 다항식 f를 설정한다.

3. Vᵢ = e(H(IDᵢ), mT)f(H(IDᵢ))를 계산한다.

4. 암호문 C= (U, t, V₁,⋯,Vk,W)를 출력한다.

•Decrypt(params,IDs, C): 일반성을 잃지 않고 복호화에 참여하는 t명의 수신자의 아이디 집합을 IDs = {ID₁,ID₂,...,IDₜ}라 하자. 각 수신자는 다음을 계산한다.

# = # f(H(IDᵢ))

= # f(H(IDᵢ))

= f(H(IDᵢ))

t명의 수신자들이 계산한 f(H(IDᵢ)) 값들을 이용하여 V를 계산할 수 있다.

V = #f(H(IDᵢ)) # #

다음을 통해 메시지 M을 얻을 수 있다.

M = # W

단, IDs가 암호문을 생성할 때 지정한 사용자 집합의 부분집합이 아니거나, IDs의 크기가 임계치를 넘지 않을 경우 ⊥을 출력한다.

•정확성(Correctness) 다음을 통해 기법의 정확성을 확인할 수 있다.

# W

# W

# M

# M

= M

3.2 Xing과 Xu의 기법 분석

Xing과 Xu의 기법에서 Setup 알고리즘은 위수가 소수 q인 덧셈군 G₁ =[P]와 곱셈군 G₂를 선택하고, 겹선형 함수 e : G₁ ×G₁→G₂와 해쉬함수 H: {0,1}*→G₁*를 정의하고, Encrypt 알고리즘에서 V = mQ+mH(ID₁)H(ID₂) ⋯H(IDₖ)를 계산한다. 따라서 기법의 정확성을 만족하기 위해 덧셈군과 곱셈군 사이에 Zp와 Zp* 같은 G₁*⊂G₁의 관계가 성립해야 한다. 본래 겹선형 함수는 유한체에서 이산대수문제를 쉽게 해결하기 위해 타원곡선군의 원소를 유한체의 원소로 맵핑(maping) 시키도록 만들어진 함수이므로 G₁은 타원 곡선군이 된다. 타원 곡선상에서 원소간의 곱셈은 정의하지 않기 때문에 G₁이 포함하는 곱셈군 G₁*는 존재하지 않는다.

이에 해쉬함수 H: {0,1}*→G₁ 로 정의를 새롭게 가정한다. G₁은 덧셈군이므로 Encrypt 알고리즘에서 계산하는 V = mQ+mH(ID₁)H(ID₂) ⋯H(IDₖ)는 다음과 같이 새롭게 정의할 수 있다.

V = mQ+mH(ID₁)+mH(ID₂)+⋯+mH(IDₖ)

새롭게 정의한 V에 따라 Decrypt 알고리즘은 복호화 과정에서 메시지 M을 얻기 위해 다음과 같은 과정을 수행한다.

M= # W

• 이에 대한 정확성은 다음과 같다.

# W

= # W

# #

# # M

# M

# M

위 식에 따르면 각 사용자의 개인키 sH(ID₁), sH(ID₂),⋯,sH(IDₖ) 값 전체를 알고 있어야 복호화 할 수 있다. 각각의 사용자는 공개된 해쉬함수를 이용하여 다른 사용자의 해쉬값 H(IDᵢ)은 알 수 있지만 자신의 개인키를 제외한 다른 사용자들의 개인키는 알 수 없다. 따라서 Xing과 Xu가 제안한 ID기반 동적 임계 암호 시스템은 구조적으로 설계가 잘못되었음을 알 수 있다.

IV. 변환 방법

본 장에서는 IBE를 ID기반 동적 임계 암호 시스템으로 변환하는 방법을 제안한다.

4.1 제안하는 변환 방법

Xing과 Xu의 기법은 ID기반 임계 암호 시스템에서 동적인 기능을 추가하여 암호화 단계에서 인증된 수신자 집합의 크기, 임계치를 유연하게 변경하고자 하였다. 겹선형 함수를 이용하는 IBE와 Shamir[8]의 기법으로 같은 기능을 제공하는 기법을 설계 할 수 있다.

겹선형 함수를 이용하면서 SetupIBE, KeyGenIBE, EncryptIBE, DecryptIBE 4개의 다항식 시간 알고리즘들로 구성된 IBE가 존재한다고 가정한다.

•Setup(1λ,N): SetupIBE 알고리즘을 이용하여 파라미터 paramsIBE를 생성한다. 겹선형 함수를 이용하는 IBE이므로 파라미터 paramsIBE는 겹선형 함수 e : G₁ ×G₁→G₂를 원소로 갖는다. 이때 덧셈군 G₁과 곱셈군 G₂는 동일한 위수 p를 가진다. IBE의 마스터 키를 mk로 하고, 암호학적 해 쉬함수 H₁ : {0,1}*→{0,1}n과 H₂ : G₂→G₁을 정의한다. 이러한 파라미터 paramsIBE를 해쉬함수 H₁, H₂와 함께 파라미터 params = (paramsIBE, H₁, H₂)로 출력한다.

•KeyGen(params, IDᵢ, mk): KeyGenIBE 알고리즘을 이용하여 그룹의 각 사용자의 IDᵢ에 대응하는 개인키 skᵢ를 생성한다.

•Encrypt(params, {ID₁,...,IDₖ}, t, M): 일반성을 잃지 않고 송신자가 정하는 수신자의 집합을{ID₁,...,IDₖ}라 하였을 때, 다음 과정을 통해 메시지 M에 대한 암호문 C를 생성한다.

1. t -1차 다항식 f : {0,1}n→G₂를 임의로 선택한다.

2. 각 사용자의 ID₁,...,IDₖ의 함수값 f(H₁ (ID₁)) ,...,f(H₁ (IDₖ))∈G₂를 EncryptIBE 알고리즘에 입력하여 f(H₁ (IDᵢ∈{1,⋯,k}))에 대응하는 C#를 얻는다.

3. H₂ (f(0)) = H라 할 때 임의의 s∈Zp를 선택하고 EncryptIBE 알고리즘을 이용하여 얻은 암호문 CID₁ ,...,CIDₖ로 메시지 M에 대한 암호문 C를 다음과 같이 출력한다.

C= (e(H₂ (f(0)),g)s M, gs , CID₁ , ..., CIDₖ)

= (e(H, g)s M, gs , CID₁ ,...,CIDₖ)

= (C₁, C₂,CID₁ ,...,CIDₖ)

•Decrypt(params,IDs, C): 다음 과정을 통해 암호문 C에 대한 메시지 M을 출력한다.

1. 일반성을 잃지 않고 복호화에 참여하는 t명의 수신자의 아이디 집합을 IDs = {ID₁,ID₂, ...,IDₜ} 라 하자. 각 수신자는 DecryptIBE 알고리즘을 이용하여 f(H₁ (IDᵢ))를 얻는다.

#

=# #

= f(H1 (IDi))

2. t명의 수신자들이 계산한 f(H₁ (IDᵢ)) 값들로 Shamir 기법을 이용하여 f(0)를 계산한다.

f(0)

= # f(H₁ (IDᵢ)) # #

3. 계산한 f(0)와 params에 포함된 해쉬함수 H₂를 이용하여 H₂ (f(0))를 계산한다.

4. H2 (f(0)) = H이므로 다음을 통해 메시지 M을 얻을 수 있다.

M= C #

단, IDs가 암호문을 생성할 때 지정한 사용자 집합의 부분집합이 아니거나, IDs의 크기가 임계치를 넘지 않을 경우 ⊥을 출력한다.

이에 대한 정확성은 다음과 같다.

= e(H,g) s M

= e(H₂ (f(0)),g) s M

= M

4.2 Waters의 IBE[13]을 이용한 ID기반 동적 임계 암호 시스템

본 절에서는 4.1의 예로서 Waters의 IBE[13]를 이용하여 ID기반 동적 임계 암호 시스템으로 변환하는 방법을 설명한다.

Waters의 IBE에 따라 위수가 소수 p인 군 G₁ =[g ]와 군 G₂를 선택하고 겹선형 함수 e : G₁ ×G₁→G₂를 정의한다. 군의 크기는 보안 상수에 의해 결정된다. ID의 임의의 길이를 n의 길이로 출력하기 위해 암호학적 해쉬함수 H₁ : {0,1}* →{0,1}n 을 정의한다.

•Setup(1λ,N): Waters IBE의 공개 파라미터는 paramsIBE = (g, G₁, G₂, u′, U, e, H₁)로 구성되어 있다. 이때 g는 위수가 소수 p인 덧셈군 G₁의 생성 원이고, IBE의 마스터 키 mk가 α∈Zp일 때 G₁은 gα, G₂∈G₁는 임의의 값이다. 임의의 값 u′∈G₁과 uᵢ ∈G₁에 대해 U는 길이가 n인 벡터 U = {uᵢ}i = 1 n 이다. 겹선형 함수를 e : G₁ ×G₁→G₂라 할 때 G₂는 곱셈군이다. H₁ : {0,1}*→{0,1}n은 임의의 길이 ID를 n의 길이로 출력하기 위한 암호학적 해쉬함수이다. 마스터 키 mk를 α라 하고, 암호학적 해쉬함수 H₂ : G₂→G₁를 정의한 뒤 파라미터 paramsIBE와 해쉬함수 H₂를 함께 파라 미터 params =(paramsIBE, H₂)로 출력한다.

•KeyGen(params, IDᵢ, mk): Waters IBE의 ExtractIBE 알고리즘을 이용하여 그룹의 사용자 IDᵢ에 대응하는 개인키 skᵢ = (G₂α (u′. j∈V uj ) r ,gr )= (d1,d2 )를 생성한 뒤 출력한다. r∈Zp는 임의의 값이다. 이때 H₁ (IDᵢ)j는 n 비트 길이의 H₁ (IDᵢ) 에서 j번째 비트를 의미하고 V ⊆{1,...,n}는 H₁ (IDᵢ)j = 1을 만족하는 j로 구성된 집합이다.

•Encrypt(params, {ID₁,...,IDₖ}, t, M): 일반성을 잃지 않고 송신자가 정하는 수신자의 집합을{ID₁,...,IDₖ}라 하였을 때, 다음 과정을 통해 메시지 M에 대한 암호문을 생성한다.

1. t -1차 다항식 f : {0,1}n→G₂를 임의로 선택한다.

2. 각 사용자의 ID₁,...,IDₖ에 대한 f(H₁ (ID₁)),...,f(H₁ (IDₖ))∈G₂를 Waters IBE의 EncryptIBE 알고리즘에 입력하여

f(H₁ (IDᵢ∈{1, ⋯, k}))에 대응하는CIDᵢ를 다음과 같이 CIDᵢ = (e(G₁,G₂) si f(H₁ (IDᵢ)),g si , (u′ j∈V uj ) si )

( C₁, C₂, C3)를 얻는다. 이때 si ∈Zp를 만족한다.

3. H₂ (f(0)) = H라 할 때 임의의 s∈Zp를 선택하고 EncryptIBE 알고리즘을 이용하여 얻은 암호문 CID₁ ,...,CIDₖ로 메시지 M에 대한 암호문 C를 다음과 같이 출력한다.

C= (e(H₂ (f(0)),g) s M, gs , CID₁ , ..., CIDₖ)

= (e(H, g) s M, gs , CID₁ ,...,CIDₖ)

= (C₁, C₂,CID₁ ,...,CIDₖ)

•Decrypt(params,IDs, C): 다음 과정을 통해 암호문 C에 대한 메시지 M을 출력한다.

1. 일반성을 잃지 않고 복호화에 참여하는 t명의 수신자의 아이디 집합IDs을 {ID₁,ID₂, ...,IDₜ}라 하자. 각 수신자는 DecryptIBE 알고리즘을 이용하여 f(H₁ (IDᵢ))값을 얻는다.

#

= (e(G₁,G₂) si f(H₁ (IDᵢ)) )

= f(H₁ (IDᵢ))

2. t명의 수신자들이 계산한 f(H₁ (IDᵢ)) 값들로 Shamir 기법을 이용하여 다음과 같이 f(0)를 계산한다.

f(0) 

= # f(H₁ (IDᵢ)) # #

3. 계산한 f(0)와 params에 포함된 H₂를 이용하여 H₂ (f(0))를 계산한다.

4. H₂ (f(0)) = H이므로 다음을 통해 메시지 M을 얻을 수 있다.

M= C#

단, IDs가 암호문을 생성할 때 지정한 사용자 집합의 부분집합이 아니거나, IDs의 크기가 임계치를 넘지 않을 경우 ⊥을 출력한다.

V. 안전성 증명

4.1에서 제안한 방법으로 변환한 ID기반 동적 임계 암호 시스템은 겹선형 함수를 이용하고 CPA에 안전한 IBE의 존재 하에 CPA 안전성을 증명 할 수 있다. Waters IBE[13]는 위의 조건을 만족하는 기법 중 하나이므로 본장에서는 [13]을 기반으로 4.2에서 설계한 ID기반 동적 임계 암호 시스템이 IND-CPA 가 만족함을 보인다.

정리. 제안 방법으로 IBE를 변환하여 설계한 ID기반 동적 임계 암호 시스템이 존재 하에 CPA 환경에서 의미 있는 확률로 암호문을 구별할 수 있는 공격자가 존재한다고 가정한다. A의 이점이 Ad#[A] = ε일 때 ID기반 동적 임계 암호 시스템 시뮬레이터 B가 CPA환경에서 IBE의 암호문을 구별하는데 얻을 수 있는 이점의 최솟값은 Adv#[B]≥ # ε 로 나타낼 수 있다.

증명. CPA 환경에서 제안한 ID기반 동적 임계 암호 시스템의 암호문을 의미 있는 확률로 구별 할 수있는 공격자 가 존재한다고 가정한다. A를 이용하여 IBE을 효율적으로 공격할 수 있는 시뮬레이터  가 존재함을 보일 것이다. B의 목적은 IBE 시뮬레이터 Z에게 받은 암호문에 대해서 두 메시지를 구분 하는 것이다.

•Setup: 파라미터 params를 생성하기 위해 B는 Z에게 파라미터 paramsIBE = (g, G₁, G₂, u, U, e, H₁)를 받는다. g는 위수가 소수 p인 덧셈군 G₁의 생성원이고, IBE의 마스터 키 mk가 α∈Zp일 때 G₁은 gα, G₂∈G₁은 임의의 값이다. 임의의 값 u∈G₁과 uᵢ ∈G₁에 대해서 U는 길이가 n인 벡터 U = {uᵢ}#이다. 겹선형 함수를 e : G₁ ×G₁→G₂라 할 때 G₂는 곱셈군이다. H₁ : {0,1}*→{0,1}n은임의의 길이 ID를 n의 길이로 출력하기 위한 암호학적 해쉬함수이다. B는 암호학적 해쉬함수 H₂ : G₂→G₁를 정의하고 Z로부터 입력 받은 파라 미터 paramsIBE와 해쉬함수 H₂를 함께 파라미터 params = (paramsIBE, H₂)로 A에게 반환한다.

•Phase 1: B는 A의 오라클 질의들에 대한 응답을 다음과 같이 시뮬레이션 한다.

- Extract(ID = {ID₁,...,IDₖ}): A가 사용자들의 ID 집합에 대한 비밀키 sk를 요청할 때 B는 각 사용자의 ID₁,...,IDₖ를 Z에게 각각 KeyGenIBE 오라클에 질의하여 대응하는 개인키 sk₁, ..., skₖ를 Z에게 받는다. 개인키 skᵢ는 다음과 같다.

skᵢ = #

r∈Zp는 임의의 값이다. 위의 H₁ (IDᵢ)j는 n 비트 길이의 H₁ (IDᵢ)에서 j번째 비트를 의미하고 V ⊆{1,...,n}는 H₁ (IDᵢ)j = 1인 j로 구성된 집합이다. B는 Z에게 받은 개인키 skᵢ들을 다음과 같이 개인키 집합 SK = {sk₁,...,skₖ}로 설정하여 A에게 반환한다.

•Challenge: A는 공개키로 사용할 ID 집합 ID* = {ID₁,...,IDl}과 임계치 t를 선택하고 챌린지할 두 메시지 M₀,M₁을 선택하여 B에게 챌린지 메시지(ID* , t, M₀, M₁)을 준다. 이때 Phases 1에서 질의하는 ID들의 색인(index) 집합 I : {k|IDₖ∈ID}에 대해서 I1 = #I 라 하였을 때, 임계치 t는 부등식|I1#{k|IDₖ∈ID*}|<t를 만족해야 한다. 즉, Phases 1에서 질의한 모든 ID 중 t개 이상의 ID가 ID*집합의 원소가 될 수 없다. B는 A의 챌린지에 대한 응답을 다음과 같이 시뮬레이션 한다.

1. B는 임의로 t -1차 다항식 f : {0,1}n →G₂를 선택한다. 각 사용자의 ID₁,...,IDl 에 대응하는 f(H₁ (ID₁)),...,f(H₁ (IDl ))∈G₂를 계산한다. B는 챌린지 단계에서 A에게 받은 ID 집합{ID₁* ,...,IDl*} 중 Phase 1에서 질의하지 않은 IDᵢ*를 선택하고, 이를 계산한 f(H₁ (IDᵢ*))와 임의의 값 R∈G₂을 선택한다. 이때 f(H₁ (IDᵢ*))와 R은 f(H₁ (IDᵢ*))= M₀* , R= M₁*으로 각각 설정한다. B는 Z에게 챌린지 메시지 (IDᵢ* , M₀* , M₁*)를 준다.

2. 다음과 같이 B는 챌린지 암호문 CIDᵢ* = EncryptIBE(paramsIBE,IDᵢ* ,Mb*)를 Z에게 받는다.

CIDᵢ* = (e(G₁,G₂)β Mb**), gβ, (u #uj )β)

이때 b*는 b*∈{0, 1}이고, β∈Zp는 임의의 값이다.

3. B는 ID 집합 ID* = {ID₁* ,...,IDl*} 중 IDᵢ*를 제외한 나머지 IDₖ≠i* 에 대해 f(H₁ (IDₖ≠i*))의 암호문을 다음과 같이 시뮬레이션 한다. B는 임의의γk∈Zp를 선택하고 파라미터 params와 사용자의 H₁ (IDₖ *)에 대한 f(H₁ (IDₖ *))를 이용하여 암호문 CIDₖ*를 다음과 같이 생성한다.

CIDₖ * = #

4. B는 b∈{0,1}와 임의의 s∈Zp를 선택하고 Z에게 받은 암호문 CIDᵢ* 와 B가 생성한 암호문 CID₁*,...,CIDl*으로 챌린지 메시지 Mb에 대한 암호문 C을 다음과 같이 생성하여 A에게 반환한다.

C = #

•Phase 2 : 공격자 A는 시뮬레이터 Z에게 Phase 1과 같은 질의를 한다. Phase 2에서 질의하는 ID 들의 색인 집합 I: {k|IDₖ∈ID′}에 대해서 I2 = #I 라 하였을 때, 부등식|(I 1#I2 ) #{k|IDₖ∈ID*}|< t를 만족하는 ID 집합에 대해서만 질의가 가능하다. 이와 같은 조건을 만족하면 A는 계속하여 질의를 요청할 수 있다.

•Guess: A 는 자신이 추측한 비트값 b∈{0,1}를 출력한다. B는 출력된 비트값 b′와 b를 비교하여 b = b이면 Z에게 b″= 0을 출력하고, 그렇지 않으면 b″= 1를 출력한다.

위의 ID기반 동적 임계 암호 시스템 공격자 A의 이점을 Adv#[A] = ε이라고 할 때, 가정에 의하여 A 가 출력하는 b′와 ID기반 동적 임계 암호 시스템의 시뮬레이터 B가 설정한 b가 서로 같거나 다를 경우에 대한 확률은 다음과 같다.

Pr[b = b] = #+ε, Pr[b≠b] = #

IBE 시뮬레이터 Z가 b* = 1로 설정했을 때, B가 A에게 주는 암호문 C에 |ID*| -1개의 IBE 암호문과 임의의 R값이 하나 포함되어 있다. 만약 t = 1일 때 확률 1/|ID*|로 B는 A에게 실제와 같은 환경으로 시뮬레이션 할 수 없으며, 이 때 A의 이점을 모두 손실하게 된다. 따라서 A가 출력하는 b′와 B가 설정한 b가 서로 다를 경우에 대한 확률의 최솟값은 다음과 같다.

Pr[b′≠b| b* = 1] ≥#

Z가 b* = 0으로 설정했을 때, B가 A에게 주는 암호문 C는 IBE 암호문 CID* 가 포함한 IBE 암호문으로 구성되어 있다. 따라서 B는 확률 1/|ID*|로 A의 이점을 손실 없이 이용할 수 있다. 따라서 A가 출력하는 b′와 B가 설정한 b가 서로 같을 경우에 대한 확률의 최솟값은 다음과 같다.

Pr[b = b| b* = 0] ≥|#+#ε|

시뮬레이터 B가 IBE 시뮬레이터 Z에게 받은 암호문에 대해서 두 메시지를 구분 하는데 얻을 수 있는 이점은 다음과 같은 확률 값으로 계산된다.

AdvIBE CPA [B] = #

VI. 결론

임계 암호 시스템을 분석하고 구조적인 문제점에 대해 설명했다. IBE와 Shamir의 기법을 이용하여 ID기반 동적 임계 암호 시스템으로 변환할 수 있는 방법을 제안하였다. 이는 CPA에 안전한 IBE의 존재 하에 CPA에 안전한 ID기반 동적 임계 암호 시스템을 설계 할 수 있음을 의미한다. 일반적인 임계 암호 시스템에서 암호문의 길이는 인증된 수신자의 집합 크기에 비례하여 선형적으로 증가하게 된다. 겹선형 함수 연산은 일반 곱 연산보다 몇 배의 계산량을 필요로 하기 때문에, 기법의 효율성을 증가시키는 것에 대한 연구는 임계 암호 시스템 분야에서 떠오르는 이슈라 할 수 있다. 특히 인증된 수신자의 집합 크기와 상관없이 암호문 길이가 항상 상수가 되도록 하는 기법은 향후 흥미로운 연구과제가 될 것이다.

References

  1. Dan Boneh and Xavier Boyen, "Efficient selective-ID secure identity -based encryption without random oracles," Advances in Cryptology, EUROCRYPT '04, LNCS 3027, pp. 223-238, 2004.
  2. Dan Boneh, Xavier Boyen, and Shai Halevi. "chosen ciphertext secure public-key threshold encryption without random oracles," CT-RSA'06, LNCS 3860, pp. 226-243, 2006.
  3. Dan Boneh and Matt Franklin, "identity-based encryption from the weil pairing," Advances in Crypto- logy, CRYPT'01, LNCS 2139, pp. 213-229, 2001.
  4. J. Baek and Y. Zheng, "identity-based threshold decryption," public-key Cryptography, PKC'04, LNCS 2947, pp. 262-276, 2004.
  5. R. Canetti and S. Goldwasser, "An efficient threshold public-key cryptosystem secure against adaptive chosen ciphertext attack," Advances in Cryptology, EUROCRYPT'99, LNCS 1592, pp. 90-106, 1999.
  6. Yvo Desmedt and Yair Frankel. "Threshold cryptosystems," Advances in Cryptology, CRYPTO'89, LNCS 435, pp. 307-315, 1990.
  7. V. Daza, J. Herranz, P. Morillo, and C. Rtextmdafols, "CCA2-secure thre- shold broadcast encryption with shorter ciphertexts," Provable Sec- urity'07, LNCS 4784, pp. 35-50, 2007.
  8. Cecile Delerablee and David Pointcheval, "Dynamic threshold public-key encryption," Advances in Cryptology, CRYPTO'08, LNCS 5157, pp. 317-334, 2008.
  9. B. Libert and J.-J. Quisquater, "Efficient revocation and threshold pairing based cryptosystems," ACM Symposium on Principles of Distributed Computing - PODC'03, pp. 163-171, July, 2003.
  10. Adi Shamir, "How to share a secret." Communications of the ACM, pp. 612- 613, Nov, 1979.
  11. Adi Shamir, "Identity-based cryptosystems and signature schemes," Advances in Cryptology, LNCS 196, pp. 47-53, 1985.
  12. Amit Sahai and Brent Waters, "Fuzzy identity-based encryption," Advances in Cryptology, EUROCRYPT'05, LNCS 3494, pp. 457-473, 2005.
  13. Brent Waters, "Efficient identity- based encryption without random oracles," Advances in Cryptology, EUROCRYPT '05, LNCS 3494, pp. 114-127, 2005.
  14. Jinghao Xing, Qiuliang Xu, "An identitybased group-oriented thresh- old encryption scheme," Anti- Counterfeiting, Security and Identification (ASID), 2011 IEEE, pp. 30-33, June, 2011.