DOI QR코드

DOI QR Code

2-Subset Difference Scheme for Broadcast Encryption

효율적인 동보메시지 암호화를 위한 2-부분 차집합 기법

  • Published : 2006.08.01

Abstract

Broadcast Encryption allows a center to broadcast encrypted message to a set of users so that only privileged users can decrypt them. In this paper, we propose an efficient broadcast encryption scheme based on the 'Subset Difference' (SD) scheme. It reduces the transmission overhead by 50 percent while the storage overhead remains the same but the computational overhead somewhat increases.

동보메시지 암호화는 중앙에서 동보 메시지를 전송할 때, 권한이 있는 사용자들만이 받은 메시지를 해독하고 열람할 수 있도록 암호화해서 보내는 기술이다. 본 논문에서는 기존의 'Subset Difference'(SD) 기법을 기반으로 한 효율적인 동보메시지 암호화 기법을 제안하고자 한다. 이를 통해서 전송 부하를 약 50% 정도 줄일 수 있었으며, 계산량이 다소 늘었을 뿐, 필요로 하는 저장 공간은 늘지 않았다.

Keywords

Ⅰ. 서론

Fiat 와 Naor(1)에 의해서 처음 소개된 동보메시지 암호화는 중앙에서 동보메시지를 전송할 때 권한 이 있는 사용자들만이 받은 메시지를 복호하고 열람 할 수 있도록 암호화해서 전송하는 기술이다. 이러한 기술은 저작권이 있는 음악, 영화, 책 등의 미디어의 배포나 유료 케이블 TV 방송 등에 적용되어 권한이 있는 사용자들만이 해당 컨텐츠를 이용할 수 있도록 하는데 사용될 수 있다. 트리 구조에 기반한 Complete Subtree (CS) 기법과 Subset Difference (SD) 기법(2)이 Naor 등에 의해서 제안되었고, Layered SD 기법(3)이 Halevy와 Shamir에 의해서 제 안되었다. 최근에는 일방향 해쉬 체인을 이용한 Punctured Interval (PI) 기법(4)이 Jho 등에 의해서 제안되었으며, 기존의 동보메시지 암호화 기법을 효율적으로 적용시킬 수 있는 일반화된 형태의 기법⑸ 이 Hwang 등에 의해서 제안되었다.

일반적으로 동보메시지 암호화 기술의 효율성은 전송 부하, 저장 공간 부하, 계산량 부하의 3가지 측면에서 측정된다. 본 논문에서는 전송 부하를 줄이는 데 목표를 두고, 기존의 SD 기법을 발전시킨 효율적인 동보메시지 전송기법인 “2-Subset Difference scheme"을 제시한다. 이 기법에서 우리는, 권한이 있는 사용자를 커버하는 겹치지 않는 부분집합의 개 수를 기존의 SD 기법에 비해 절반으로 줄여 전송되는 메시지의 길이를 권한을 상실한 사용자의 수와 동일한 r로 줄였다.

Ⅱ. 기존 연구

본 논문에서 제시하는 기법은 Subset Difference Scheme을 기반으로 하고 있기에 이에 대해서 우선 간략하게 살펴본다.

초기에 중앙에서는 사용자들을 儿개의 leaf 노드에 대응시킨 완전 이진 트리(complete binary tree)를 구성한다. 하나의 부분집합은 (%%) 와 같이 노드 페어로 표현되며, 이 경우。, 가 % 의 선조 노드가 된다. 부분집합 S由는 "를 root로 하는 부분 트리의 leaf 노드들에서 %를 root로 하는 부분 트리의 leaf 노드를 제외한 노드들을 포함한다. 다른 동보메시지 암호화 기법과 마찬가지로 SD 기법도 3단계 -초기 설정, 암호화, 복호화-로 구성된다.

1. 초기설정

각 부분 집합들에 다음과 같이 키를 할당한다. G를 주어진 입력에 대해 3배 길이의 출력을 만드는 pseudo random sequence generator (C: {0, 1} n — {0, 1} 3”)라고 하고, %( . )을 G의 출력 중 왼쪽 1/3, G%( .)을 오른쪽 1/3. 伝伏 . )을 가운데 1/3로 정의한다. 노드 % 의 레이블 乙에 대해 왼쪽 자식 노드의 레이블은 Gi(A). 오른쪽 자식 노드의 레 이블은 Gs(乙)가 되며, 노드。, 의 키는가 된다. 이러한 레이블링을 반복적으로 수행하게 되면, 노드 S의 후손 노드인 % 의 레이블을 유도해낼 수 있으며 이렇게 유도된 레이블을 Z幻.라 표기한다. 부분집합 에 할당되는 키는 0认勺顶)가 된다. 높이가 为인 부분 트리 彳에 속한 유저는 论개의 레이블을 받으며 부분 트리의 높이는 0부터 log(n)까지 가능하므로, 각 사용자가 저장하게 되는 레이블(키)

2. 암호화

중앙에서 세션 키 K를 선택하고 권한이 있는 사용자 집합 R을 겹치지 않게 부분집합 Si j 으로 분할한다. 세션 키 K는 妩3, 妩3...丙 , .當로 각각 암호화되고 메시지 法은 세션 키 K로 암호화된다. 그런 다음, 중앙에서는 헤더 <(标畐), ..., (顷疽, % (K)>와 몸체 < > 로 구성된 암호화된 메시지를 전송하고. 이는 권한이 있는 사용자들만이 복호할 수 있게 된다. 겹치지 않는 부분 집합들의 모임인 커버는 다음과 같이 구성된다. 집합 氏(권한을 상실한 사용자 집합)과 root 노 드를 포함하는 Steiner Tree ST(R)을 시작으로 하여 최종적으로 노드가 한 개 남을 때까지 다음을 반복적으로 수행한다. ST(R)에서 2개의 leaf 노드"와선택하고 이 두 노드 외에는 다른 leaf 노 드를 갖지 않는 최소 공통 선조 노드인 0를 찾는다. % 와 %를 0의 자식 노드라 하자. 이때 % 는 % 의. % 는 % 의 선조 노드이다. 만약 % 尹 % 이면, 부분집합 用指를 커버에 추가하고. %尹 %이면, 부분집합 를 커버에 추가한다. 이제 0의 모든 후손 노드를 제거하고 0를 leaf 노드로 만든다. 이를 반복하고 나면, 최종적으로 커버는 최대 冰-1개의 부분집합을 갖게 된다.

3. 복호화

권한이 있는 사용자 ueN\R는 우선 자신이 속 한 부분집합 昌, .를 헤더의 인덱스를 보고 찾는다. 물론, % 는 U의 선조가 아니다. 레이블 如를 계산해 내기 위해 사용자는 레이블 [에[에 G를 최대 log(w) 번 적용해야 한다. 사용자는 구해진 压를 통해 세션 키 K를 얻게 되고, 메시지를 복호하여 人/을 열람할 수 있게 된다.

SD 기법에 대한 자세한 사항은 논문(2)을 참조하기 바란다.

Ⅲ. 제안하는 기법

본 논문에서 우리는 제안하는 2-Subset Difference Scheme을 통해 메시지 헤더의 길이를 줄이고 전송 부하를 낮추는 데 중점을 두었다.

부분집합 는 %를 root로 하는 부분 트리의 leaf 노드들에서 %를 root로 하는 부분 트리의 leaf 노드들을 제외한 노드들을 포함한다고 정의하였다. 이때, %를 root로 하는 부분 트리의 leaf(사용자)들은 (연속된) 권한을 상실한 사용자들을 의미하게 된다. 기존 SD 기법에서는 하나의 부분집합이 하나의 (연속된) 권한을 상실한 사용자 집합을 포함할 수 있었다. 우리의 주된 아이디어는 하나의 부분집합에서 하나 이상의 (본 논문에서는 2개의) 권한을 상실한 사용자 집합을 포함할 수 있도록 하는 것이다. 이렇게 함으로써 전체 부분집합의 개수를 줄일 수 있게 되고 전송 부하 또한 낮출 수 있다. 지금부터 2-SD 기법에 대해서 자세히 살펴보겠다.

기존 SD 기법과 마찬가지로 초기에 중앙에서는 사용자들을 n개 leaf 노드에 대응시킨 완전 이진 트리를 구성한다. 부분집합"%祯를 그림 1과 같이 Vi를 root로 하는 부분 트리의 leaf 노드들에서 % 와 %를 각각 root로 하는 부분 트리의 leaf 노드들을 제외시킨 노드들의 집합이라 표기한다. 2-SD 기법의 3단계 과정은 다음과 같다.

그림 1. 2-Subset Difference scheme에서의 부분집합 &, 沁

1. 초기설정

기존 SD 기법과 유사하게 pseudo random sequence generator G를 이용하여 노드들의 레이블을 부여한다. (G 함수와 레이블링의 방법은 Ⅱ.1절을 참조하기 바란다.) 그다음。「를 root로 하는 부분트 리 彳에 속한 각 사용자 tz는 "의 자손이면서 “의 선조가 아닌 노드들의 레이블을 저장하게 된다. 세션 키를 암호화할 때 쓰이는 부분집합의 키는 권한을 상실한 사용자 집합을 2개 포함할 경우 &就이며, K讨 와 瓦漬 XOR 한 危芦瓦*의 결과값과 동일하다. K&amp; 느 부분집합 % 의 키로 G(知)이며 瓦*는, 부분집합 月*에 할당되는 키로 G认乙* )이다. 권한을 상실한 사용자 집합을 1개 포함할 경우, 부분집합의 키는 기존 SD 기법과 동일한 형태의 瓦。가 된다.

2. 암호화

중앙에서 전송할 암호화된 메시지(메시지의 헤더와 몸체)를 구성하는 방법은 기존 SD 기법과 유사하다. 다만 권한이 있는 사용자를 커버하는 부분집합을 생성하는 과정에 있어서 차이가 있다. 중앙에서는 메시 지를 암호화할 세션 키 K를 생성하고 권한이 있는 사용자 집합 反을 겹치지 않는 부분 집합들로 나누어 커버를 생성하게 된다. 이렇게 생성된 각 부분집합의 키로 세션 키를 암호화하게 된다. 집합 R(권한을 상실한 사용자 집합) 과 root 노드를 포함하는 Steiner Tree ST(R)을 구성하고 다음과 같이 커버에 부분 집합들을 추가해 나간다. ST(R)에서 두 leaf 노드 % 와 %를 선택하고 이 두 노드 외에는 leaf‘노드를 갖지 않는 최소 공통 부모 노드 %를 찾는다. 이렇게 찾아진 % 의자식 노드를를 % 와 %라 하며. 이때 % 는 % 의 선조 노드이고 % 는 % 의 선조 노드이다. 이에 대해 다음과 같이 부분집합을 커버에 추가한다.

1)이고 % 尹 % 이면 부분집합 昌, 就를 커버에 추가한다.

2)이고 %=% 이면 부분집합 S厲를 커버에 추가한다.

3) %=%.이고 %% * 이면 부분집합 爲* :를, 커버에 추가한다.

4) % =% 이고 % =% 이면 추가되는 부분집합이 없다. 위와 같이 해당되는 부분집합을 커버에 추가한 다음, %.의 모든 후손 노드를 제거하고 이를 leaf 노드로 만든다. 이와 같은 과정을 최종적으로 하나의 노 드가 남을 때까지 반복하게 된다.

3. 복호화

권한이 있는 사용자 uSN\R는 먼저 자신이 속 한 부분집합 席责(또는 S*) 를 찾는다. 부분집합 키 瓦就를 얻기 위해서는 瓦, 와 樓가 필요하며, 레이블 知는 레이블 乙에 G를 최대 log(n) 번 적용하면 유도해낼 수 있다. 레이블 Lik 또한 이와 유사하게 유도해낼 수 있다. 부분집합 키 瓦册 = 瓦丿企*를 瓦 계산한 다음, 사용자는 세션 키 K를 구해내 메시지를 복호할 수 있다.

Ⅳ. 안전성 분석

위에서 이미 언급했듯이 부분집합 키 瓦*를 , , , K&amp; 와 瓦』를 XOR 한 값으로 정의하였다. 그림 1에서 사용자 3. 4가 瓦*를, 알 수도 있지만, &畐를 알 수 없기 때문에 瓦, 祯를 유도해낼 수 없다. 마찬가지로 사용자 7 또한 任弘를 계산해낼 수 없다. 또한 XOR 한 결과 값을 부분집합 키로 정의하였기 때문에 2-SD 기법은 기존의 SD 기법과 동일한 수준의 안전성을 제공하고, 전송 부하를 줄이면서도 동일한 수준의 저장 공간 부하만을 필요로 한다.

Ⅴ. 효율성 비교 분석

ae 전체 사용자의 수, 「은 권한을 상실한 사용자의 수를 각각 의미한다.

정리1 : 2-Subset Difference scheme은 최대「의 메시지 헤더 길이, §Zog2(n) + §Sg(n)+i 개의 저장해야 할 키 정보, 21og(n) 번의 연산을 필요로 한다.

중명 : 커버를 구성할 때, 한 번의 과정을 수행하고 나면 최대 1개의 부분집합이 커버에 추가되고 leaf 노드의 개수는 1개씩 줄어든다. Steiner Tree에서, 최초「개의 leaf 노드에서 시작하여 최종적으로 1개의 노드가 남을 때까지 과정이 반복되므로 총 r-l번의 과정이 수행되게 된다. 따라서 r-l번의 모든 과정을 마치고 나면 최대 r—l개의 부분집합이 생성된다. 이후, 마지막 검사를 하면서 1개의 부분 집합이 추가될 수 있다. 따라서 커버 크기는 최대 r이 된다. 부분집합의 키는 (3) 와 瓦岸 XOR 한 값이다. 두 키 모두를 기존 SD 기법에서 저장한 키 정보들로부터 구할 수 있기 때문에, 기존 SD 기법과 비교해서 추가적으로 저장해야 하는 키 정보는 없다. 따라서 각 人] 용자마다 저장해야 하는 레이블(키) 개수는 yW(n) + yZoff(n) + l이다. 부분집합 키 瓦林를 계산할 때, 러〕 이블 如는 레이블 그에 G를 최대 log(n) 번 적용하여 유도해낼 수 있고, 레이블 L以 또한 동일한 방법으로 구할 수 있다. 결과적으로 세션 키를 구하기 위해 21og(n)번의 연산 과정이 필요하다. ■

표 1은 CS, SD, LSD와 본 논문에서 제시한 2-SD 기법의 전송 부하, 저장 공간 부하, 계산량 부하의 복잡도를 나타낸 것이다. 2-SD 기법의 계산량 부하는 최악의 경우 21og(n)이고, 기존 SD 기법과 마찬가지로 하나의 부분집합이 단지 하나의 권한을 상실한 집합만을 포함할 경우 log(n)이다. 따라서 계산량 부하는 평균적으로 L51og(n)이 된다.

표 1. CS, SD, LSD, 2-SD 기법의 복잡도

Ⅴ. 결론

본 논문에서는 Subset Difference scheme에 기반한 2-Subset Difference s사ieme을 제안하였다. 2-SD 기법은 계산량 부하가 약간 늘어난 대신, 전송부하를 절반 가량 줄였다. 또한 메시지 헤더의 길이가 r 밖에 되지 않아 권한을 상실한 사용자의 수가 늘어나는 경우에도 유동적으로 적용될 수 있다.

References

  1. A. Fiat and M. Naor, 'Broadcast Encryption,' In Advances in Cryptology: CRYPTO 1993, LNCS vol.773, pp. 480-491, 1993
  2. D. Naor, M. Naor, and J. Lotspiech, 'Revocation and Tracing Schemes for Stateless Receivers,' In Advances in Cryptology: CRYPTO 2001, LNCS vol. 2139, pp. 41-62, 2001
  3. D. Halevy and A. Shamir, 'The LSD Broadcast Encryption Scheme, 'In Advances in Cryptology: CRYPTO 2002, LNCS vol.2442, pp.47-60, 2002 https://doi.org/10.1007/3-540-45708-9_4
  4. NS. Jho, JY. Hwang, JH. Cheon, M. Kim, DH. Lee and ES. Yoo, 'One-way chain Based Broadcast Encryption Scheme,' In Advances in Cryptology: Eurocrypt 2005, LNCS vol.3494, pp.559-574, 2005
  5. JY. Hwang, DH. Lee, and J. Lim, 'Generic Transformation for Scalable Broadcast Encryption Schemes,' In Advances in Cryptology: CRYPTO 2005, LNCS vol.3621, pp.276-292, 2005