DOI QR코드

DOI QR Code

2-Subset Difference Broadcast Encryption System Based on Secret Sharing Method

비밀분산 기반의 2-Subset Difference 브로드캐스트 암호시스템

  • Lee, Jae Hwan (Department of Computer Science, College of ICT Convergence, Sangmyung University) ;
  • Park, Jong Hwan (Department of Computer Science, College of ICT Convergence, Sangmyung University)
  • 이재환 (상명대학교 ICT융합대학 컴퓨터과학과) ;
  • 박종환 (상명대학교 ICT융합대학 컴퓨터과학과)
  • Received : 2015.04.14
  • Accepted : 2015.06.24
  • Published : 2015.07.30

Abstract

Broadcast encryption system is a cryptographic primitive that enables a sender to broadcast a message to a set of receivers in a secure channel. Out of previous proposed broadcast encryption systems, the most effective is the one that uses the Subset Difference(SD) method in a binary tree structure. The SD method has been realized by two underlying approaches: Pseudo-Random Generator(PRG) and Secret Sharing(SS). 2-SD method is the generalized version of the SD method by which two subsets of revoked receivers can be dealt with by one subset (in an SD-based broadcast encryption system). The primary advantage of the 2-SD method is to further reduce the size of transmission overhead, compared to the SD method. Until now, however, there is no known broadcast encryption system that is based on such a 2-SD technique using either PRG or SS basis. In this paper, we suggest a new 2-SD broadcast encryption system using the SS-based technique that was suggested by Jae Hwan Lee et al. in 2014[9]. The new system can reduce the size of ciphertext by 25% of the one in the previous SS-based broadcast encryption system. Also, on a theoretical note, ours is the first 2-SD broadcast encryption system that is provably secure.

브로드캐스트 암호시스템은 한명의 송신자가 다수의 수신자에게 안전하게 메시지를 전송하는 기법이다. 제안된 브로드캐스트 암호 시스템 중 가장 효율적인 것은 트리구조에서 Subset Difference(SD) 기법을 이용한 것으로, 이를 구체화하기 위해 유사난수생성기(PRG: Pseudo-Random Generator)와 비밀분산(SS: Secret Sharing) 방식을 이용한 두 가지 방법이 존재한다. 2-SD 기법은 SD 기법을 일반화하는 것으로 하나의 집합에서 두 개의 부분집합을 동시에 탈퇴시킬 수 있는 방법이다. 2-SD 기법의 장점으로는 SD 기법에 비해 전송량을 더 줄일 수 있다는 것이다. 그러나 현재까지 PRG나 SS 기반에서 2-SD 기법을 설계한 결과는 알려지지 않았다. 본 논문에서는 2014년 Jae Hwan Lee[9]등이 제시한 SS 기반의 SD 기법을 확장하여 SS 기반의 2-SD 기법을 설계한다. 제안된 기법은 기존 SS 기반의 SD 기법에서 요구하는 암호문 헤더 전송량의 약 25% 줄이는 효과가 있다. 또한 암호 이론적으로 본 논문의 결과는 증명 가능한 2-SD 기법을 최초로 제시한 것이다.

Keywords

Ⅰ. 서 론

브로드캐스트 암호시스템[1]은 한명의 송신자가 다수의 권한이 있는 수신자에게 메시지를 안전하게 전송할 수 있는 방법이다. 정당한 권한이 없는 사용자는 메시지를 암호화한 암호문에 접근하더라도 내용을 알 수 없어야 하는데, 이를 위해 브로드캐스트 암호시스템에서는 정당한 권한이 있는 사용자들만 구할 수 있는 그룹키를 이용하여 메시지를 암호화한다. 이러한 접근 제어 기능은 위성 TV, PPV (pay-per-view TV), DRM(Digital Right Management) 등의 실제 시스템에 적용되고 있다.

브로드캐스트 암호시스템의 효율성은 암호문 전송량, 사용자의 비밀키 저장량, 그리고 그룹키 계산을 위한 연산량 측면에서 분석이 된다. 세 가지 효율성 요소 중 짧은 전송량을 갖는 것이 가장 중요한 것으로 간주되는데, 그 이유는 일반적으로 브로드캐스트 암호시스템이 대규모 사용자(예를 들어 106~108명)를 대상으로 하므로 암호문의 전송량이 전체 네트워크 트래픽에 주는 영향이 크기 때문이다. 물론 전송량을 줄이더라도 나머지 저장량과 연산량이 적당한 범위 내에서 용인되어야 한다. 또한 브로드캐스트 암호시스템은 (공개키 없이) 지정된 송신자만 전송할 수 있는 대칭키 기반 기법[2]과 공개키를 이용하여 누구나 송신자가 될 수 있는 공개키 기반 기법[3][4][5]으로 분류된다.

지금까지 제안된 대칭키 기반 브로드캐스트 암호시스템 중 가장 효율적인 것으로는 2001년 Naor, Naor, Lotspiech[2]가 제안한 이진트리 기반의 SD(Subset Difference) 기법(이하에서는 SDPRG기법으로 표기함)이다. 이 기법은 전체 사용자 수 n, 탈퇴자 수를 r이라 할 때 O(r)전송량, O(log2n) 저장량, 그리고 O(logn)연산량을 갖는다. SD 기법은 사용자의 비밀키와 Subset에 따른 그룹키를 생성하기 위해 유사난수생성기(PRG: Pseudo-random generator)의 일방향성을 이용하여 키를 분배한다. 이후 PRG를 이용한 키 분배 방식을 변형하여 세 가지 효율성 요소 간에 trade-off를 제공하는 기법들[6][7][8]이 제안되었다.

최근에는 이재환 등[9]이 Shamir의 (2,n)-비밀분산(Secret Sharing) 기법을 이용하여 키 분배를 하는 SD 기법(이하에서는 SDSS기법으로 표기함)을 제시하였다. 기존 PRG 기반에 비해 암호문 전송량의 길이는 다소 증가하지만 증명과정에서 나타나는 안전성 손실(security loss)이 적고, 그룹키 계산을 위한 연산량이 O(1)으로 전체 사용자 수나 탈퇴자 수에 무관하다는 장점이 있었다. 암호 이론적으로는 SD 기법의 키 분배를 위해 PRG가 아닌 새로운 접근방법 - 정보 이론적으로 안전한 비밀분산 기법 - 을 이용한 것이 의미 있는 결과였다.

SD 기법에서는 탈퇴자 집합이 [그림 1]의 왼쪽처럼 Si,j형태의 부분집합들로 분할된다. 여기서 Si,j의미는 i를 root로 하는 subtree에서 j를 root로 하는 subtree를 제외한 집합이 수신자들이란 것이다. 이를 일반화하면 [그림 1]의 오른쪽처럼 Si,j,k형태의 부분집합들로 분할할 수 있다. 비슷하게 Si,j,k의미는 i를 root로 하는 subtree에서 j와 k를 root로 하는 두 개의 subtree를 제외한 집합이 수신자임을 나타낸다. 2-SD 기법에서는 하나의 부분집합으로 두 개의 subtree를 처리하므로 직관적으로도 SD 기법에 비해서 전송량을 거의 절반으로 줄일 수 있을 것이라고 예상된다.

그림 1.SD 기법과 2-SD 기법에서의 부분집합 표현 Fig. 1. Subset representation in SD(left) and 2-SD(right) methods

2006년 장지용 등[10]은 Naor 등이 제시한 SDPRG기법을 변형하여 2-SD 기법을 제안하였다. 그 2-SD 기법은 SDPRG 기법에 비해 저장량과 연산량을 거의 희생시키지 않고 전송량을 1/2로 줄일 수 있다는 놀라운 결과를 제시하였다. 그러나 2014년 이재환 등[11]은 장지용 등이 제안한 2-SD 기법이 브로드캐스트 암호시스템 안전성 모델에서 기본적인 공격인 공모공격(collusion attack)에 전혀 안전하지 않다는 것을 보였다. 최근 Bhattacherjee 등[8]은 2-SD 기법과는 다른 접근방법으로, 이진트리를 k진트리로 확장하여 PRG 기반의 SD 기법을 일반화하는 방법을 소개하였다. [8]에서는 동일한 부모 아래 오직 같은 레벨에 있는 k개의 자손 중 임의의 두 개 자손이 탈퇴되는 경우를 처리한다는 점에서 2-SD 기법과 비슷하다. 그러나 2-SD 기법은 (k진트리로 확장하더라도) 서로 다른 레벨에 있는 자손 중 임의의 두 개 자손을 탈퇴시킬 수 있다는 점에서 [8]에서 제안한 기법보다 더욱 일반적이다. 더구나 [8]은 worst case에 SDPRG 기법보다 전송량을 줄이는 효과를 전혀 내지 못하고 있다.

현재까지 2-SD 기법을 구현한 브로드캐스트 암호시스템은 제안되지 않고 있다. 본 논문에서는 [9]에서 소개된 비밀 분산 방식의 키 분배 아이디어를 확장하여 최초로 2-SD 기법을 설계하고자 한다. 새롭게 제안되는 2-SD 기법(이하에서는 2-SDss 기법으로 표기함)은 (2,n)-비밀분산과 추가적으로 (3,n)-비밀분산 방식을 도입하고, (3,n)-비밀분산을 이진트리의 서로 다른 레벨에 적용하여 키를 분배하는 방식을 도입한다. 2-SDss 기법은 O(r)전송량, O(log3n) 비밀키 저장량, O(1)복호화 연산량을 갖는다. SDss기법과 비교하면 비밀키 저장량은 증가하지만, SDss기법에서 요구하는 전송량의 약 1/4을 줄일 수 있는 효과가 있다. 또한 SDss기법과 마찬가지로 전체 사용자 수나 탈퇴자 수에 관계없이 항상 일정한 O(1) 복호화 연산량을 제공한다. 예를 들어 SDPRG기법과 전송량을 비교하면, 전체 사용자수를 n=231, 탈퇴자 수를 r=212이라 할 때, SDPRG : SDss : 2-SDss = 1 : 1.7 : 1.25의 비율을 보인다. [표 1]에서는 안전성과 효율성 측면에서 SDPRG, SDss, 2- SDss 기법들을 비교한다. 암호 이론적으로는 기존 PRG 기반에서 설계할 수 없었던 2-SD 기법이 비밀분산 기반에서 설계가능하다는 것을 보이는 최초의 결과이다.

표 1.m: Subset Cover를 구성하는 부분집합의 최대 개수, n: 전체 사용자 수, r: 탈퇴자 수, {w1,w2,w3}: 각 기법의 setup 과정에서 생성되는 전체 그룹키의 개수, weak CCA1 : [9]에서 제시된 안전성 모델로 이 모델에선 탈퇴자=배제자가 된다.

 

Ⅱ. 브로드캐스트 암호시스템과 안전성 정의

1. 브로드캐스트 암호시스템

양의 정수 n은 브로드캐스트 암호시스템이 수용하는 전체 사용자 수라고 하고, N을 전체 사용자 집합이라고 하자. 즉 N={1,2,...,n}이다. 브로드캐스트 암호시스템에 속하는 사용자는 1부터 n가운데 하나의 수로 특정된다. R은 N의 부분집합으로서 탈퇴자들의 집합이라 하자. 브로드캐스트 암호의 목표는 전송 메시지 M을 R에 속하는 탈퇴자는 복호화할 수 없도록 하고, N╲R에 속하는 사용자는 복호화할 수 있도록 하는 것이다. 약화된 안전성 모델에서는 탈퇴자=배제자임을 상기하자.

브로드캐스트 암호시스템은 세 가지 알고리즘 - 초기설정(setup), 암호화(Encryption), 복호화(decryption) - 으로 구성되어 있다.

2. Subset Cover 방식에 기반한 브로드캐스트 암호시스템

Subset Cover 방식은 먼저 전체 사용자 집합 N에서 탈퇴자 집합 R을 제외한 집합, 즉 N╲R을 서로 겹치지 않은 disjoint 부분집합들의 모임인 Si1,...,Sim으로 분리된다. 즉 가 된다. 이러한 부분집합을 찾는 알고리즘을 CoverFinding 알고리즘이라 하고, R을 입력받아 부분집합을 출력하는 것을 CoverFinding(R)={Si1,...,Sim}으로 표현하자. 각각의 부분집합 Sj들은 그에 대응하는 그룹키 Lj가 할당되고, Sj안의 모든 수신자는 Lj를 유도해 낼 수 있다. 그리고 메시지를 암호화하기 위한 (일회용) 키 K는 Si1,...,Sim들에 대응하는 그룹키 Li1,...,Lim들로 암호화되고, 전송하고자 하는 메시지는 K를 이용하여 암호화한다. 보다 구체적으로 설명하면, Subset Cover 방식 하에서는 두 가지 종류의 대칭키 암호시스템이 사용된다.

이러한 Subset Cover 방식에 기반한 브로드캐스트 암호시스템은 다음의 세 알고리즘으로 설명할 수 있다.

2.1 초기설정(Setup)

모든 수신자 u는 비밀키 du를 받는다. Si에 속한 모든 수신자 u는 자신의 비밀키 du를 이용하여 Si에 대응되는 그룹키 Li를 유도할 수 있다. 여기서 그룹키 Li는 각각의 그룹 별로 독립적이고 랜덤한 값으로 할당하거나, 유사난 수 값을 이용하여 할당할 수도 있다.

2.2 암호화(Encryption)

2.3 복호화(Decryption)

수신자 u는 다음과 같은 암호문을 수신하면, 자신의 비밀키 du를 이용하여 복호화 절차를 실행한다.

3. 브로드캐스트 암호시스템의 안전성

본 논문에서 고려하는 브로드캐스트 암호시스템의 안전성 모델은 [9]에서 제안하였고, 약화된 선택 암호문 중간공격(weak CCA1)이다. 선택 암호문 중간공격(CCA1: Chosen ciphertext and launch-time attack)[2]은 대부분의 브로드캐스트 응용환경에서 충분하다고 간주되는 공격이다. 이 공격에서는 정당한 수신자의 집합 S=N╲R에 암호문을 전송하는 경우, 집합 R에 속하는 탈퇴자들이 자신들의 비밀키를 이용하여 공모공격(collusion attack)을 하더라도 암호문에 대응하는 평문의 내용을 알 수 없어야 한다. 또한 선택 암호문 공격이므로 공격자는 평문에 대응하는 암호문을 수집할 수 있는 능력뿐만 아니라, 암호문에 대응하는 평문을 수집할 수 있는 능력까지 주어진다. 단, weak CCA1 모델에서는 암호 질의 및 복호 질의에 사용된 탈퇴자들은 이후의 공격에서도 계속해서 탈퇴된 자들의 집합에 포함되어야 한다는 것이 일반적인 CCA1과 다른 점이다. 부연하면 R에 속한 사용자들은 (시스템이 유지되는 한) 계속해서 탈퇴자로 남고, 메시지 전송 시 정당한 수신자 집합은 N╲R로 결정되어야 한다. 따라서 수신자 집합 S를 N╲R에 속하는 부분집합으로서 동적으로 선택하는 것은 고려되지 않는다. 이러한 weak CCA1 안전성은 공격자 A와 챌린저 B사이의 (다음과 같은) 게임으로 정의된다.

A가 bit b를 정확하게 추측한 상황을 CGuess로나타내자. 시스템 파라미터 λ에 대해 A의 advantage는 로 정의된다.

정의 1. 브로드캐스트 암호시스템이 weak CCA1 공격 환경에서 공격자 A가 가지는 가 무시할 만한(negligible) 수준이라면, ‘브로드캐스트 암호시스템이 weak CCA1 공격에 안전하다’라고 말한다.

4. 메시지 암호키를 암호화하는 대칭키 암호의 안전성

각각의 부분집합에 대응하는 그룹키 하에서 메시지 암호키 K를 암호화하기 위해 필요한 대칭키 암호시스템 SKE=(E,D)의 안전성을 정의한다. CCA1 공격에 안전한 브로드캐스트 암호시스템을 설계하기 위해서는 SKE역시 CCA1 공격에 안전해야 된다. 대칭키 암호의 CCA1 안전성은 공격자 A와 챌린저 B사이의 (다음과 같은) 게임으로 정의된다.

A가 bit b를 정확하게 추측한 상황을 CGuess로 하자. 안전성 상수 λ에 대해 A의 advantage는 로 정의된다.

정의 2. 대칭키 암호시스템이 CCA1 공격 환경에서 공격자 A가 가지는 이 무시할 만한(negligible) 수준이라면, 우리는 ‘대칭키 암호시스템이 CCA1 공격에 안전하다’라고 말한다.

5. 메시지를 암호화하는 대칭키 암호의 안전성

메시지 암호키 K가 결정되면 메시지 M은 다른 대칭키 암호시스템 을 이용하여 암호화된다. CCA1 공격에 안전한 브로드캐스트 암호시스템을 설계하기 위해서는 가 one-time 선택 평문 공격(CAP: chosen-plaintext attack)에 안전해도 충분하다. 대칭키 암호의 one-time CPA 안전성은 공격자 A와 챌린저 B사이의 (다음과 같은) 게임으로 정의된다.

A가 bit b를 정확하게 추측한 상황을 CGuess로 하자. 안전성 상수 λ에 대해 A의 advantage는 로 정의된다.

정의 3. 대칭키 암호시스템이 one-time CPA 공격 환경에서 공격자 A가 가지는 이 무시할 만한(negligible) 수준이라면, 우리는 ‘대칭키 암호시스템이 onetime CPA 공격에 안전하다’라고 말한다.

6. Shamir의 비밀분산 기법

본 논문에서 필요한 비밀분산(SS: Secret Sharing) 기법은 Shamir의 다항식 기반 (2,n)-SS과 (3,n)-SS기법이다. p를 다항식 설정을 위한 소수(prime)라 하자. (2,n)-SS의 경우, 1차 다항식 f(x)=ax+K∈Zp[x]를 선택한다. 여기서 a∈Zp는 랜덤하게 선택된 값이고, 상수항 K∈Zp는 공유하고자 하는 비밀값이라 하자. 서로 다른 n개의 값 x1,...,xn에 대하여 f(x1),...,f(xn)을 share라 하면, 비밀 값 K는 전체 n개의 share 중 2개 이상의 값을 알면 복구할 수 있다. 여기서 K를 효율적으로 복구하기 위해 Lagrange 보간법을 사용할 수 있다. (3,n)-SS 기법에서는 2차 다항식 g(x)=bx2+cx+K∈Zp[x]를 선택한다. 여기서 b,c∈Zp는 랜덤하게 선택된 값이고, 상수항 K∈Zp는 공유하고자 하는 비밀값이다. 이 경우 n개의 share g(x1),...,g(xn) 중 3개 이상의 값을 갖는 경우에만 비밀키 K값을 복구할 수 있고, 2개 이하의 share 값을 아는 경우에는 K에 대한 어떠한 정보도 정보 이론적으로 알 수 없다.

이러한 K의 안전성은 공격자 A와 챌린저 B사이에서 이루어지는 다음과 같은 게임으로 정의된다. B는 랜덤 bit b∈{0,1}을 선택한다. (2,n)-SS의 경우, b=1인 경우에는 (f(xi),xi,K)를 A에게 주고, b=0인 경우는 랜덤한 RK∈Zp를 선택하여 (f(xi),xi,RK)를 A에게 준다. 여기서 xi는 A가 임의로 선택한 값이다. 이 게임에서 A가 bit b를 정확하게 추측한 상황을 CGuess로 하자. 다항식 f는 A에게 정보 이론적으로 K에 대한 어떠한 정보도 노출하지 않는다. 따라서 |Pr[CGuess]-1/2|=0이 된다. 따라서 다음과 같은 식을 얻는다.

마찬가지로 (3,n)-SS의 경우에도, (g(xj),g(xk),xj,xk,K)와 (g(xj),g(xk),xj,xk,RK)이 주어지는 게임을 고려할 수있다. 여기서 xj와 xk는 반드시 달라야 하고, xi, xj, xk는 A가 임의로 선택한 값이다. 다항식 g는 정보 이론적으로 K에 대한 어떠한 정보도 노출하지 않으므로 |Pr[CGuess]-1/2|=0이 된다. 따라서 다음과 같은 식을 얻는다.

 

Ⅲ. Secret Sharing을 이용한 2-SD 기법 아이디어

1. 아이디어: 2차 다항식을 이용한 Secret Sharing으로 확장

각 사용자는 이진트리 구조에서 leaf노드에 대응된다고 하자. 본래 Naor, Naor, Lotspiech[2]가 제안한 SD(Subset Difference) 기법은 임의의 subtree에서 그 내부에 있는 하나의 노드를 root로 하는 부분집합을 탈퇴시키는 것이었다. 그러나 2-SD 기법은 임의의 노드를 root로 하는 subtree에서 두개의 부분집합을 동시에 탈퇴시킬 수 있는 기법이다. [그림 2]에서 보면, i노드를 root로 할 때 j와 k노드를 root로 하는 두 개의 부분집합을 탈퇴시킬 수 있음을 의미한다. 2-SD 기법의 장점으로는 하나의 (i노드에 대응하는) 그룹키로 두 개의 부분집합을 처리할 수 있기 때문에, 그룹키에 대응하는 부분집합의 개수가 줄어들고 이는 결과적으로 SD 기법에 비해 암호문의 길이가 짧아진다는 것이다.

그림 2.SS 기반 2-SD 기법의 Subset 형태 Fig. 2. Subset form in 2-SDss

2-SD 기법이 SD 기법의 한 가지 확장된 형태로 볼 수 있으나, 2-SD 기법을 설계하는 것은 그리 간단하지 않다. 현재까지 SD 기법을 설계하는 방법으로는 유사난수생성기(PRG: Pseudo-random generator)를 이용한 것과 비밀분산(SS: Secret Sharing)을 이용한 두 가지 방법이 있다. SD 기법에 필요한 사용자의 비밀키 및 각 부분집합에 대응하는 그룹키를 생성하기 위해, PRG를 이용한 방법은 각 root노드에서 하위 노드로 향하는 경로 상에서 PRG의 일방향성을 이용하였고, SS를 이용한 방법은 각 root노드에서 하위 depth별로 독립적인 일차 다항식을 설정하고 (2,n)-SS를 이용하였다. 이에 비해 2-SD 기법을 설계하는 방법은 현재까지 제안되지 않고 있다. Bhattacherjee 등이 [8]에서 제시한 기법은 PRG를 이용한 매우 제한적인 형태의 2-SD 기법으로서, 삼진트리 위에서 하나의 노드 아래에 있는 동일한 레벨의 3개 자손노드 중 두 개의 노드만을 (또는 그 두 개의 노드를 root로 하는 부분집합들을) 탈퇴시키는 형태이다.

본 논문에서는 SS를 이용하여 2-SD 기법을 설계할 수 있음을 보인다. [9]에서 제시된 SDss 기법을 확장하여 2-SD 기법에 맞도록 새로운 키 분배방식과 Coverfinding 알고 리즘을 제안한다. 제안된 2-SDss 기법은 전체 사용자 수를 n, 탈퇴자 수를 r이라 할 때, O(r)의 전송량, O(log3n)의 비밀키 저장량, 그리고 O(1)의 복호화 연산량을 보인다. 이 결과는 SDss기법이 O(r)의 전송량, O(log2n)의 비밀키 저장량, 그리고 O(1)의 복호화 연산량을 갖는 것에 비하면, 저장량 측면에서 더 나빠진 성능을 갖는 것으로 보일 수 있다. 그러나 실제 전송량은 보안 파라미터 k에 대해 최악의 경우(worst case) 2-SDss기법이 약 3r × k bits인데 비해, SDss기법이 약 4r × k bits를 갖게 되어, 2-SDss기법이 SDss기법에 비해 약 25% 짧아진 전송량을 갖게 된다.

2-SDss기법을 설계하는 핵심 아이디어는 이진트리 구조에서 2차 다항식 f(x)=ax2+bx+K∈Zp[x]를 이용한 (3,n)-SS를 도입하는 것이다. [그림 2]과 같이 i노드를 root로 하는 subtree에서 j노드와 k노드 아래의 후손들을 제외하는 경우를 생각하자. 이 경우 탈퇴자를 제외한 수신자 집합을 Si,j,k로 표현하자. 여기서 중요한 점은 1) j노드와 k노드는 동일한 레벨에 존재하지 않아도 된다는 것, 2) j노드를 root로 하는 subtree는 i노드의 왼쪽 자손 쪽에, 그리고 k노드를 root로 하는 subtree는 i노드의 오른쪽 자손 쪽에 위치한다는 것이다. 즉 i노드를 기준으로 왼쪽과 오른쪽 자손에 각각 하나의 탈퇴자 집합이 있다.1) Si,j,k를 위해서는 j노드와 k노드의 후손들을 배제하는 하나의 그룹키를 생성하는 것이 필요한데, 이를 위해 2차 다항식 f(x)=ax2+bx+K∈Zp[x]를 이용한다. 이 다항식은 [그림 2]에서 빨간색 점선으로 표시된, i노드의 왼쪽인 j노드 레벨과 i노드의 오른쪽인 k노드 레벨에 대응하는 다항식이다. 또한 상수항 K는 i노드에서 j노드와 k노드 레벨에 대응하는 그룹키로 설정된다. 각 사용자는 해당 레벨에 대응하는 노드의 함수값을 사전에 받게 되고, 암호문 생성 시 Si,j,k를 위해서는 [f(j),f(k),EK(K′)]의 값이 계산된다. 여기서 K′는 메시지 암호화 키이다. 이 경우 Si,j,k에 속하는 사용자는 자신이 받은 (j노드와 k노드에 대응되지 않는) 함수값과 f(j),f(k)를 이용하여 그룹키 K를 복구할 수 있고, j노드와 k노드 아래의 탈퇴자들은 두 개의 함수값만 갖게 되어 K를 복구할 수 없게 된다.

위에서 기술한 아이디어는 기존 SDss 기법에서 1차 다항식을 이용한 (2,n)-SS을 확장한 것으로 볼 수 있다. SDss 기법이 root노드인 i노드에서 동일한 depth에 있는 레벨만을 (2,n)-SS로 다룬 것에 비해, 2-SDss 기법에서는 i노드 기준으로 좌우의 서로 다른 (또는 동일한) depth에 있는 레벨을 (3,n)-SS로 다루는 것이다. 당연히 i노드에서 동일한 depth에 있는 레벨을 ((3,n)-SS로) 다루는 것도 포함한다. 그러나 Si,j,k 부분집합은 (3,n)-SS을 이용하게 됨으로 [f(j),f(k),EK(K′)]에서 보듯, 복호화 연산을 위해 2개의 함수값을 전송해야 한다. 이는 SDss기법이 [f(j),EK(K′)]처럼, Si,j부분집합별로 하나의 함수값을 전송하는 것에 비해 f(k)와 같은 함수값을 추가로 전송하는 부담이 있다. 그 러나 2-SDss기법에서는 암호문 작성에 필요한 부분집합의 개수가 상당히 줄어들게 되어, 결과적으로 암호문 전송량이 줄어드는 효과를 가진다.

2. 2-SDss 기법에 필요한 Coverfinding 알고리즘

Si,j,k처럼 N╲R을 disjoint한 부분집합으로 분할하기 위 해서는 새로운 Coverfinding 알고리즘이 필요하게 된다. 새로운 Coverfinding 알고리즘 역시 기존 SDss기법에서처럼 탈퇴자 집합 R을 입력받아 N╲R의 사용자들을 disjoint한 부분집합으로 분할한다. 기본적으로 새로운 Coverfinding 알고리즘이 Si,j,k 형태의 부분집합을 출력하지만, 특수한 경우에는 기존 SDss기법에서처럼 Si,j형태의 부분집합도 출력한다. 여기서 특수한 경우는 임의의 i노드를 root로 하는 subtree에서 i노드의 왼쪽 자식노드 (i.lchild로 표기) 또는 오른쪽 자식노드(i.rchild로 표기)가 탈퇴자 집합의 노드를 가리킬 때이다. 이 경우는 Si,j,k보다 Si.rchild,j 또는 Si.lchild,j 집합으로 암호문을 구성하는 것이 암호문 길이를 줄일 수 있기 때문이다.2) 이것은 다음의 세 가지를 의미한다. 1) 사용자의 비밀키를 부여할 때, Si,j,k 형태에 대응하는 2차 다항식을 이용한 비밀키 뿐만 아니라 Si,j 형태에 대응하는 1차 다항식을 이용한 비밀키를 생성해야 한다. 2) 사용자의 비밀키를부여할 때, i노드기준으로 i.lchild노드 레벨과 오른쪽 편 레벨에 대응하는 2차 다항식들은 고려할 필요가 없다는 것이다. 마찬가지로 i.rchild노드 레벨과 왼쪽 편 레벨에 대응하는 2차 다항식들은 고려할 필요가 없다는 것이다.3) 3) 2-SDss 기법의 Coverfinding 알고리즘은 Si,j형태의 집합들(S1으로 표기)과 Si,j,k형태의 집합들(S2로 표기)이 출력된다. 이를 Coverfinding(R)={S1,S2}로 표현하기로 하자. 더 구체적으로 S1={Si1,j1,Si2,j2,....,Siu,ju}이고 S2={Si1,j1,k1,Si2,j2,k2,....,Siw,jw,kw}의 모습으로 부분집합들을 포함하게 될 것이다.

Coverfinding 알고리즘이 탈퇴자 집합 R을 입력받게 되면 root노드와 탈퇴자에 해당하는 leaf노드들, 그리고 연결되는 내부 경로에 포함된 노드들로 구성된 Steiner Tree ST(R)를 구성하고, 최종적으로 탈퇴자 처리된 root노드만 남을 때까지 반복 작업을 수행하여 N╲R을 disjoint한 부분집합들로 분할하게 된다. 자세한 과정은 아래 2.1절에 유사코드로 서술되어 있다.

2.1 2-SDss기법의 Coverfinding 알고리즘 유사코드 Coverfinding(R)

let T:= ST(R)

let S1:= ∅

let S2:= ∅

while(root.state≠revocation)

{

}

return {S1,S2}

2.2 Coverfinding 알고리즘 분석

위 Coverfinding 알고리즘에서 while 반복문을 한번 수행할 때마다 두 개의 탈퇴자노드를 처리하고 한 개의 탈퇴자 노드가 새롭게 생성된다. 그러면서 1개의 부분집합이 S1또는 S2에 추가된다. 반복문은 root노드가 탈퇴자노드가 될 때까지 수행된다. root노드가 탈퇴자가 되려면 while문이 최소 r-1번 수행되어서 남아있는 탈퇴자수를 1개로 줄여야 한다. 그것이 root노드가 아니라면 한 번 더 수행하여 root노드를 탈퇴자 노드로 만들고 알고리즘을 종료한다. 따라서 while문은 최대 r번 수행될 수 있다. worst case로 반복문이 수행될 때마다 S1또는 S2에 부분집합이 1개 추가된다고 하면, r명의 탈퇴자에 대해 최대 r개의 부분집합이 출력된다.

 

Ⅳ. 제안하는 2-SDss 브로드캐스트 암호시스템

1. 기법 설명

설명의 편의를 위해 다음을 가정한다. 1) 안전성 파라미터 λ는 전체 사용자가 공유한다. 2) 메시지 암호키를 암호화하기 위한 대칭키 암호시스템 SKE=(E,D)와 메시지를 암호화하기 위한 대칭키 암호시스템 는 전체 사용자가 공유한다. 3) (AES 대칭키 암호를 사용하기 위해) 128 비트의 소수(prime) p는 전체 사용자가 공유한다. 4) 전체 사용자 수는 n=2k이라 하자. 5) n명을 leaf노드에 대응시키는 완전이진트리(full binary tree)를 구성하고, 이진트리의 모든 노드들은 Zp상의 원소에 고유하게 대응된다.

1.1 초기설정(Setup)

그림 3.Secret-sharing 기반 2-SD 기법의 비밀키 할당 예시 Fig. 3. Example of key assignment in 2-SDss

각 사용자가 저장하는 비밀값 du의 사이즈를 분석하면, 의 원소 개수는 logn-j개가 되고, j는 0부터 logn-1까지 포함하므로, 전체 개수는 로 구할 수 있다. 의 원소 개수는 (logn-j-1)2개가 되고, j는 0 부터 logn-2까지 포함하므로, 로 구할 수 있다. 결과적으로 , 즉 O(log3n)의 비밀키 저장량을 가지게 된다.

1.2 암호화(Encryption)

탈퇴자 집합 R과 메시지 M을 입력받으면, 송신자는 ЁK={0,1}t↦{0,1}*와 EL={0,1}l↦{0,1}l를 사용하여 아래와 같이 암호문을 생성한다.

전송량 측면에서 기존 SDss 기법과 비교할 때, 우선 Coverfinding 알고리즘이 달라짐으로 암호문 생성에 필요한 부분집합이 달라진다. 2-SDss 기법의 Coverfinding 알고리즘의 결과로 탈퇴자수 r에 대하여 최악의 경우 r개의 부분집합이 발생한다. 기존 SDss 기법의 2r-1개에 비해 부분집합 개수를 대폭 줄였지만, S2에 속하는 Si,j,k형태의 부분집합은 (fi,l,m(j),fi,l,m(k),EKi,l,m(K))로 2개의 함수값을 전송하는 것을 고려해야한다.

1.3 복호화(Decryption)

수신자 u는 다음과 같은 브로드캐스트 암호문을 수신하고 복호화 절차를 실행한다.

N╲R에 속하는 권한을 가진 사용자의 경우 2-4 과정 또는 6-8 과정 둘 중 하나를 통하여 그룹키를 구할 수 있으며, 두 개의 과정 모두 복호화 시 전체 사용자 수 n이나 탈퇴자 수 r에 관계없이 간단한 modular 연산을 필요로 한다.

 

Ⅴ. 제안하는 2-SDss브로드캐스트 암호시스템의 안전성 증명

정리 4. 대칭키 암호시스템이 SKE=(E,D)이 CCA1 공격에 안전하고, 대칭키 암호시스템 이 one-time CPA 공격에 안전하다고 가정하자. 이 경우 제안한 브로드캐스트 암호시스템은 weak CCA1 공격에 안전하다.

구체적으로 A는 브로드캐스트 암호시스템에 대한 weak CCA1 공격 알고리즘이고, B는 SKE에 대한 CCA1 공격 알고리즘 또는 에 대한 one-time CPA 공격 알고리즘이라 하면,

여기서 v은 A가 선택하는 탈퇴자 집합에 의해 생성되는 부분집합의 최대 개수이고, w는 2-SD의 setup 하에서 설정되는 전체 그룹키 개수이다.

증명) 브로드캐스트 암호시스템의 weak CCA1 안전성을 공격하는 공격자를 A라 하자. 증명에서는 A를 이용하여 SKE=(E,D)의 CCA1 안전성을 공격하거나 의 one-time CPA 안전성을 공격하는 알고리즘 B를 설계할 것이다. 증명의 편의상 공격자가 선택한 탈퇴자 집합 R*에 대해 CoverFinding(R)={S2}라고 하자.4) A가 받는 챌린지 암호문 CT*의 변화를 이용하여 다음 식 (11)과 같은 하이브리드 게임을 고려한다.

여기서 Ri1,l1m1,...,Riv,lvmv은 SKE의 비밀키 공간에서 선택한 난수들이고, R1, ... ,Rm은 SKE의 메시지 공간에서 선택한 난수들이다. RM*은 챌린지 메시지 M*와 같은 길이를 갖는 난수 메시지이다.

각 게임 Gi에서 공격자 A가 정확하게 추측할 확률을 Pr[Gi]라 하자. 게임 G0는 메시지 M*에 대한 암호문이 주어진 것으로 브로드캐스트 암호시스템의 weak CCA1 공격 환경이다. 반면 게임 GF는 난수 메시지 RM*에 대한 암호문이 주어진 것으로 A는 메시지에 대한 어떠한 정보도 얻을 수 없는 공격 환경이다. 안전성 증명은 G0에서 GF로 전이하는 과정에서 A가 가지는 advantage가 무시할 만한(negligible) 것임을 보이는 것으로 이루어진다.

증명) A는 브로드캐스트 암호시스템에 대한 weak CCA1 공격을 수행한다. B는 Si1,j1,k1에 대응하는 그룹키를 제외하고 setup 과정과 동일하게 비밀키를 생성한다. B는 챌린지로 받은 (f(j1),f (k1),j1,k1,T) 값을 Si1,j1,k1에 대응하는 질의에 이용한다. (여기서 j1,k1은 B가 선택한 값이다.) Si은 i을 root로 하는 subtree의 leaf 노드 사용자 집합이라 하자. 1) 사용자 u가 u∉Si1인 경우, u의 비밀키 질의는 B가 (관련된 키를 알고 있으므로) 쉽게 응답할 수 있다. u가 u∈Si1이고 (u∈Sj1 또는 u∈Sk1)인 경우, u의 비밀키 질의는 j1노드가 속한 레벨에 대응하는 다항식 값으로 f(j1)을 이용하고 k1노드가 속한 레벨에 대응하는 다항식 값으로 f(k1)을 이용한다. 2) u가 u∉Si1인 경우, A의 암호 복호) 질의는 B가 u의 비밀키를 생성하여 대응한다. u가 u∈Si1이고 (u∈ Sj1 또는 u∈Sk1)인 경우, A의 암호(복호) 질의는 T를 그룹키로 응답한다.

A가 u의 비밀키 질의 시 u∈Si1이고 (u∉Sj1 그리고 u∉Sk1)인 경우, j1노드와 k1노드 레벨에 동시에 대응하는 (계수를 모르는) 다항식 f( • )를 이용하여 비밀키를 응답해야 한다. 이 경우 B는 a × (j1)2 + b × j1 + c = T∈Zp와 a × (k1)2 + b × k1 + c = T∈Zp를 만족하는 a,b,c∈Zp를 랜덤하게 선택한 후, j1과 k1 노드 레벨에 대응하는 다항식을 f(x)=ax2+bx+c∈Zp[x]로 사용한다. 이러한 비밀키 질의가 발생하면 Si1,j1,k1는 더 이상 챌린지 단계에서 사용되지 않고, Si1,j1,k1가 두 개의 부분집합으로 분할된다. 그러므로 이후의 게임진행은 (Si1,j1,k1가 두 개의 부분집합으로 분할된) G0와 G1이 B의 챌린지값 (f(j1),f(k1),j1,k1,T)과는 무관하게 동일한 (statistically identical) 게임이 된다.5) 또한 암호(복호) 질의 시 수반되는 탈퇴자 집합들을 누적하는 과정에서 그때까지의 총 탈퇴자 집합이 u∈Si1이고 (u∉Sj1 그리고 u∉Sk1)인 사용자 u를 적어도 한명 포함하는 경우에는, 위와 같이 임의의 a,b,c∈Zp로 다항식을 f(x)=ax2+bx+c∈Zp[x]로 결정한 후 게임을 진행한다. 이 경우에도 weak CCA1 안전성 모델에서는 G0와 G1이 B의 챌린지 값 (f(j1),f(k1),j1,k1,T)과는 무관하게 동일한 게임이 되기 때문이다.

챌린지 단계에서 A가 탈퇴자 집합 R*와 M*를 보내면, B는 CoverFinding(R*)를 수행하여 Si1,j1,k1,....,Siv,jv,kv을 구한다. Si1,j1,k1에 대한 그룹키로 암호화할 때 B는 자신이 챌린지로 받은 T값을 이용한다. 다른 부분집합들에 대해서는 정상적인 그룹키로 메시지 암호키 K를 랜덤하게 선택한 후 다음과 같이 CT*를 구성한다.

T가 (f(j1),f(k1))의 상수항이면 A는 Si1,j1,k1의 그룹키가 T=Ki1,l1,k1인 G0에서 공격을 수행하는 것이고, T가 다항식의 상수항과 관계없는 난수이면 A는 Si1,j1,k1의 그룹키가 Ri1,j1,k1인 G1에서 공격을 수행하는 것이다. 따라서 G0와 G1을 구별하는 A의 공격능력은 2차 다항식 비밀분산 기법의 상수항을 구분하는 B의 능력으로 전환된다. 그러나 비밀분산 기법의 상수항을 구분하는 문제는 A의 능력과 관계없이 advantage의 차가 0이다. (II. 6절 참고)

증명) A는 브로드캐스트 암호시스템에 대한 weak CCA1 공격을 수행한다. B는 Si1,j1,k1에 대응하는 그룹키를 제외하고 setup 과정과 동일하게 비밀키를 생성한다. Si1,j1,k1에 대응하는 그룹키는 B가 CCA1 공격을 하는 대칭키 암호시스템 SKE의 비밀키로 한다. 1) 사용자 u가 u∉Si1인 경우, u의 비밀키 질의는 B가 (관련된 키를 알고 있으므로) 쉽게 응답할 수 있다. u가 u∈Si1이고 (u∈Sj1 또는 u∈Sk1)인 경우, u의 비밀키 질의는 j1노드의 레벨 l1과 k1노드의 레벨 m1에 대응하는 임의로 선택된 다항식 fi1,l1,m1(x)을 이용하여 응답한다. 여기서 레벨 l1과 레벨 m1에 대응하는 그룹키는 SKE의 비밀키임을 상기하자. u가 u∈Si1이고 (u∉Sj1 그리고 u∉Sk1)인 경우, B가 모르는 SKE의 비밀키가 상수항이 되도록 다항식 fi1,l1,k1(x)의 값을 결정할 수 없으므로 게임을 중단(abort)한다. 2) u가 u∉Si1인 경우, A의 암호(복호) 질의는 B가 u의 비밀키를 이용하여 대응한다. u가 u∈Si1이고 j1노드와 k1노드의 레벨에 대응하는 그룹키를 이용하여 암호(복호)화 할 경우, B는 자신의 챌린저에게 암호(복호) 질의를 하고 그 결과를 A에게 보낸다. u가 u∈Si1이고 j1노드와 k1노드의 레벨에 대응하지 않는 그룹키를 이용할 경우 B는 (관련된 키를 알고 있으므로) 쉽게 응답할 수 있다.

챌린지 단계에서 A가 탈퇴자 집합 R*와 M*를 보내면, B는 CoverFinding(R*)를 수행하여 Si1,j1,k1,....,Siv,jv,kv을 구한다. Si1,j1,k1에 대한 암호문을 생성하기 위해 B는 메시지 암호키 K를 랜덤하게 선택한 후 B의 챌린저에게 K를 챌린지 값으로 보낸다. 그 결과로 받은 암호문을 T라 하자. 이를 이용하여 B는 CT*를 다음과 같이 구성한다.

T가 K를 암호화한 것이면 A는 G1에서 공격을 수행하는 것이고, T가 K와 같은 길이의 난수 R1을 암호화한 것이면 A는 에서 공격을 수행하는것이다. 따라서 위의 게임중단(abort)이 발생하지 않으면, G1와 을 구별하는 A의 공격능력은 SKE에 대한 CCA1공격을 하는 B의 능력으로 전환된다. 여기서 abort가 발생하지 않을 확률은 2-SD의 setup 하에서 전체 그룹키 개수 w중 한 개를 SKE의 비밀키로 선택하는 것이므로 1/w가 된다. 즉 일 경우 A의 공격능력을 B의 공격능력으로 전환할 수 있다.

증명) Claim 1과 유사하게 증명할 수 있다.

탈퇴자 집합 R*로 생성되는 부분집합의 최대 개수를 v개 하면, v개의 부분집합 각각에 대해 위 Claim 1, Claim 2, Claim 3의 증명을 유사하게 적용할 수 있다. 그 결과 이후의 하이브리드 게임들에 대해 아래의 Claim 4, Claim 5, Claim 6을 쉽게 증명할 수 있다.

증명) A는 브로드캐스트 암호시스템에 대한 weak CCA1 공격을 수행한다. B는 setup 과정과 동일하게 비밀키를 생성한다. 메시지를 암호화하는 의 비밀키에 대해 B가 one-time CPA 공격을 하는 것임을 상기하자. B가 (관련된 키를 알고 있으므로) 사용자 u에 대한 비밀키 질의와 암호(복호)와 질의를 쉽게 응답할 수 있다.

챌린지 단계에서 A가 탈퇴자 집합 R*와 M*를 보내면, B는 CoverFinding(R*)를 수행하여 Si1,j1,k1,....,Siv,jv,kv을 구한다. B는 각 부분집합에 대응하는 메시지 암호키 R1,...,Rm을 선택한 후, M*를 B의 챌린저에게 챌린지 값으로 보낸다. 그 결과로 받은 암호문을 T라 하자. 이를 이용하여 B는 CT*를 다음과 같이 구성한다.

T가 M*를 암호화한 것이면 A는 에서 공격을 수행하는 것이고, T가 랜덤 메시지 RM*을 암호화한 것이면 A는 GF에서 공격을 수행하는 것이다. 따라서 와 GF을 구별하는 A의 공격능력은 에 대한 one-time CPA공격을 하는 B의 능력으로 전환된다.

위에서 전개한 하이브리드 게임은 랜덤 메시지 RM*을 암호화한 것을 유지하면서 다시 각 부분집합에 대응하는 메시지 암호키를 Ri에서 K로 전환시키는 게임을 추가함으로써 완성된다. 이는 랜덤 메시지 RM*을 암호화한 것을 유지하면서 G0에서 GF로 변환되는 과정을 반대로 전개하면 된다. 이 경우 Gi에 대응하는 게임을 라 하자. 마지막 게임 은 G0와 같으면서도 M*대신 RM*을 암호화한 암호문이 된다. 결국 위 하이브리드 게임들을 종합하면 다음과 같은 식 (15)를 얻는다.

즉, 으로 정리 4의 증명이 완성된다.

 

Ⅵ. 기존 기법과의 효율성 비교분석

제안한 2-SD 기법의 효율성을 기존 기법들과 비교한다. 편의상 PRG(Pseudo-Random Generator) 기반의 SD 기법 [2]을 SDPRG, SS(Secret Sharing) 기반의 SD 기법을 SDss[9], 그리고 SS(Secret Sharing) 기반의 2-SD 기법을 2-SDss로 표기한다. [표 2]는 1) 암호문 전송량, 2) 수신자의 비밀키 저장량, 3) 복호화 시 필요한 계산량 측면에서 SDPRG, SDss, 2-SDss 기법들 간의 효율성을 비교한 것이다.

표 2.기존 기법들과의 효율성 비교 Table 2. Performance comparison to the existing methods

1. 암호문 헤더 전송량

2-SDss 기법의 암호화 알고리즘은 (R, M)을 입력받아 CoverFinding(R)={S1,S2}을 수행한 후 아래와 같은 암호문을 생성한다.

여기서 대괄호 [] 안의 값을 암호문 헤더(header)라 한다. 전송량 비교에서는 메시지 M에 대한 암호문 ЁK(M)을 제외하고, 암호문의 헤더 길이만을 고려한다. SDPRG나 SDss 기법과 달리, 2-SDss 기법은 변형된 Coverfinding 알고리즘을 사용함으로써 탈퇴자 수 r에 대해 최대 r개의 부분집합이 (worst case로) 발생한다. r개의 부분집합은 S1 집합에 포함되는 Si,j형태로 또는 S2 집합에 속하는 Si,j,k형태로 결정된다. Si,j,k형태의 부분집합은 Si,j에 비해 암호문 헤더에 1개의 함수값을 더 전송해야하며 index도 1개 더 전송되므로 overhead가 커지게 된다. 2-SDss 기법에 가장 불리하도록 암호문 길이를 분석하기 위해 부분집합이 모두 Si,j,k형태가 된다고 가정하자. 이 경우 암호문 헤더는 위 식 (17) 로 결정된다. Si,j,k형태의 부분집합은 Si,j,k마다 이를 표현하는 index는 i노드와 j노드 그리고 k노드를 묶어 (i,j,k)으로 표현한다. index 정보들 {(iq,jq,kq)}는 [9]와 마찬가지로 암호문 헤더에 포함되어 전송된다고 하자.

암호문 헤더에 포함되는 각 원소의 사이즈는 다음과 같다. 먼저 각index 원소를 표현하기 위해서는 ⌈log(2n-1)⌉의 bits가 필요하다. 그 이유는 사용자 n명이 leaf노드로 대응되는 완전이진트리에서 총 노드의 수는 2n-1개가 되므로 하나의 노드를 표현하는데 ⌈log(2n-1)⌉bits면 충분하기 때문이다. 따라서 index (i,j,k)는 3⌈log(2n-1)⌉ bits로 표현된다. 다음으로 각 부분집합에 주어지는 (fi,l,m(j),fi,l,m(k),EKi,l,m(K))의 길이를 분석하면, 현재 상용화된 AES-128 대칭키 암호시스템을 고려하여 메시지 암호키 K를 128bits로 할 때, K를 표현하는 함수값도 동일한 128bits가 된다. 또한 EKi,l,m(K)은 AES를 이용하여 128bits 길이의 한 개 block 암호화로 해결할 수 있으므로 128bits가 된다. 결과적으로 index (i,j,k)와 (fi,l,m(j),fi,l,m(k),EKi,l,m(K))의 길이는 (3⌈log(2n-1)⌉+2×128)bits가 되고 Cover- finding 알고리즘이 worst case로 r개의 부분집합을 생성할 수 있으므로 2-SDss 기법의 총 헤더 전송량은 (3⌈log(2n-1)⌉+384×r bits를 갖는다.

2-SDss 기법의 이러한 암호문 헤더길이는 SDss 기법에 비해 확실히 더 짧아진 값이다. 이를 확인하기 위해 전체 사용자수를 n=231이고 탈퇴자 수를 r=212이라 하자. 이 경우 SDPRG 기법은 1572672bits(≈192KB), SDss 기법은 2621120bits(≈320KB)인데 비해 2-SDss 기법은 1966080 bits(≈240KB)이다. 즉 2-SDss 기법은 SDss 기법과 비교할 때, SDss 기법의 약 (320-240=80)/320 = 1/4의 암호문 헤더를 줄이는 효과를 볼 수 있다. 이러한 비율은 암호문 헤더 전송량의 기울기 값이 SDPRG

2. 저장량

사용자 u가 저장하는 비밀키 사이즈는 3장에서 기술한 대로 개의 함수값을 저장해야 한다. 이 값은 SDPRG와 SDss 기법이 저장하는 개에 비해 증가한 값이다.

실제 저장량을 비교하기 위해 전체 사용자수를 n=231이라 하고, 각각의 함수값을 128bits라 하자. SDPRG와 SDss 기법은 63616bits(≈7.8KB)인데 비해 2-SDss 기법은 1234176bits(≈151KB)로 약 151/7.8=19.4배의 저장량을 가져야 한다.

3. 복호화에 필요한 연산량

복호화에 필요한 연산량은 기존 SDPRG 기법이 최대 logn번의 PRG 함수를 계산해야 하는 것에 비해, SDss와 2-SDss기법은 Lagrange 보간법을 이용하여 Zp에서 (2,n)-SS 또는 (3,n)-SS 연산을 수행하면 된다. 여전히 전체 사용자 수 n이나 탈퇴자 수 r에 관계없이 O(1)의 복호화 연산량을 요구하므로 매우 빠른 복호화 시간을 보장할 수 있다.

 

Ⅶ. 결 론

본 논문에서는 [9]에서 소개된 (2,n)-비밀분산과 SD(Subset Difference) 기법의 아이디어를 확장하여 2-SD 기법을 설계하는 방법을 제시하였다. 2-SD 기법 설계를 위해서는 (2,n)-비밀분산에서 확장된 (3,n)-비밀분산 기법을 이용하여 그룹키를 분배하는 아이디어를 새롭게 도입하였고, 2-SD 기법에 맞도록 Coverfinding 알고리즘을 수정하였다. 효율성 측면에서 새로운 2-SD 기법은 기존 SDss 기법에 비해 전송량을 약 25% 줄일 수 있는 효과를 보였다. 이는 SDPRG 기법에 비해 (worst case로) 약 1.25배 긴 전송량을 갖는 것으로서 기존 SDss 기법이 1.7배 긴 전송량을 가진 것에 비해 개선된 결과이다. 이렇게 전송량을 줄이기 위해서는 저장량이 증가하는 단점이 있으나 최근 디바이스의 저장량을 고려하면 큰 문제가 되지는 않는다. 사용자의 복호화 연산량은 [9]와 마찬가지로 여전히 O(1)으로 사용자 수나 탈퇴자의 수에 관계없다는 장점을 가진다.

이론적으로 본 논문의 결과는 비밀분산 기법을 이용하여 (안전성을 약화시키면서) 2-SD 기법을 설계할 수 있음을 보인다. 이후의 흥미 있는 연구는 유사난수생성수(PRG)를 이용하여 2-SD 기법을 설계할 수 있느냐 하는 것으로, 이 결과는 SDPRG기법을 새로운 각도에서 일반화하는 것이 될 것이다.

References

  1. A. Fiat and M. Naor, "Broadcast encryption," Proceedings of the CRYPTO'93, volume 773 of LNCS, pp. 480-491, Aug. 1993.
  2. D. Naor, M. Naor and J. Lotspiech, "Revocation and tracing schemes for stateless receivers," Proceedings of the CRYPTO 2001, vol. 2139 of LNCS, pp. 41-62, Feb. 2001.
  3. Y. Dodis and N. Fazio, "Public key broadcast encryption for stateless receivers," Proceedings of the Digital Rights Management Workshop, vol. 2696 of Lecture Notes in Computer Science, pp. 61-80, 2002.
  4. D. Boneh, C. Gentry and B. Waters, "Collusion resistant broadcast encryption with short ciphertexts and private keys," Proceedings of the CRYPTO 2005, vol. 3621 of LNCS, pp. 258-275, Aug.2005.
  5. ChongHee Kim, YongHo Hwang and PilJoong Lee, "An efficient public key trace and revoke scheme secure against adaptive chosen ciphertext attack," Proceedings of the ASIACRYPT 2003, vol. 2894 of LNCS, pp. 359-373, Nov/Dec. 2003.
  6. D. Halevy and A. Shamir, "The LSD broadcast encryption scheme," Proceedings of the CRYPTO 2002, vol. 2442 of LNCS, pp. 47-60, Aug. 2002.
  7. M.T. Goodrich, J.Z. Sun and R. Tamassia, "Efficient tree-based revocation in groups of low-state devices," Proceedings of the CRYPTO 2004, vol. 3152 of LNCS, pp. 511-527, Aug. 2004.
  8. S. Bhattacherjee and P. Sarkar, “Tree based symmetric key broadcast encryption”, IACR Cryptology ePrint Archive, Report 2013/786, 2013.
  9. Jae Hwan Lee and Jong Hwan Park, “Broadcast encryption system using secret sharing and subset difference methods”, Journal of Broadcast Engineering, 20(1), pp.92-109, Jan. 2015. https://doi.org/10.5909/JBE.2015.20.1.92
  10. Ji Yong Jang, Dae Hun Nyung, and Joo Seok Song, “2-Subset Difference scheme for broadcast encryption”, Journal of the Korea Institute of Information Security & Cryptology, 16(4), pp.1-5, Aug. 2006.
  11. Jae Hwan Lee and Jong Hwan Park, “Security analysis of broadcast encryption system based on 2-subset difference method”, Journal of Broadcast Engineering, 19(4), pp.502-509, July. 2014. https://doi.org/10.5909/JBE.2014.19.4.502