상기 목적을 달성하기 위한 본 발명에 따른 서버의 초기화 및 사용자 가입을 위한 제1 단계; 합법적인 사용자가 그룹키를 복호화할 수 있도록 메시지를 분배하는 제2 단계; 및 합법적인 사용자가 그룹키를 이용하여 메시지를 복호화하는 제3 단계;를 포함하는 것이 바람직하다.
여기서, 상기 제1 단계는, 모든 사용자에 대응되도록 h개의 레벨을 갖는 트리를 구성하는 단계; 레벨 0을 제외한 트리의 각 레벨에서 w개의 노드를 하나의 서브 그룹으로 구분하는 단계; 레벨 0을 제외한 트리의 각 노드에 대응되는 노드키를 랜덤하게 생성하는 단계; 레벨 0을 제외한 각 레벨의 모든 서브 그룹에 대응하는 랜덤한 d차 방정식을 각 서브 그룹 별로 생성하는 단계; 생성된 소정 개수의 d차 방정식에 각 노드의 ID를 대입하여 상기 d차 방정식의 비밀값을 복원하기 위한 쉐어값을 생성하는 단계; 및 생성된 노드키와 쉐어값을 각 사용자에게 전송하는 단 계;를 포함하는 것이 바람직하다.
여기서, 상기 제1 단계는, 서버로부터 전송된 상기 노드키와 쉐어값을 사용자의 비밀키로 저장하는 단계;를 더 포함하는 것이 바람직하다.
여기서, 상기 d차 다항식의 차수인 d는, 1≤d≤w/2을 만족하는 값인 것을 특징으로 하는 것이 바람직하다.
여기서, 상기 비밀값은, 상기 d차 다항식에 0을 대입한 값인 것이 바람직하다.
여기서, 제2 단계는, 그룹키(sk)를 생성하는 단계; 탈퇴자들의 집합 R이 주어진 경우, 탈퇴자들의 집합 R에 속하는 구성원들에 대응되는 노드를 모두 연결하여 Steiner Tree를 구성하는 단계; 각 서브 그룹(Sl ,j)에서 Steiner Tree에 속하는 노드의 개수를 산출하는 단계; 상기 Steiner Tree에 속하는 노드의 개수(Il ,j)가 1≤ Il ,j≤w/2 및 Il ,j > w/2 중 어느 수식을 만족하는지에 따라 각각 다른 암호화 방법을 사용하여 브로드캐스트 메시지를 생성하는 단계; 및 생성된 브로드캐스트 메시지를 전송하는 단계;를 포함하는 것이 바람직하다.
여기서, 상기 브로드캐스트 메시지 생성 단계는, 상기 Steiner Tree에 속하는 노드의 개수(Il ,j)가 1≤ Il ,j≤w/2 를 만족하면, 위 조건을 만족하는 각 서브 그룹에 대응되는 d차 다항식의 비밀값으로 그룹키를 암호화하여 제1 암호문을 생성하는 단계; 각 서브 그룹에 대응하는 쉐어값과 상기 제1 암호문을 브로드캐스트 메시 지의 제1 영역에 추가하는 단계; 상기 Steiner Tree에 속하는 노드의 개수(Il ,j)가 Il,j > w/2 를 만족하면, 위 조건을 만족하는 각 서브 그룹에서 Steiner Tree에 속하지 않는 노드를 찾고, 그 노드의 노드키로 그룹키를 암호화하여 제2 암호문을 생성하는 단계; 상기 제2 암호문을 브로드캐스트 메시지의 제2 영역에 추가하는 단계; 및 상기 제1 영역에 위치하는 상기 쉐어값과 상기 제1 암호문, 상기 제2 영역에 위치하는 상기 제2 암호문을 그룹키로 암호화하여 제3 암호문을 생성하고, 생성된 제3 암호문을 브로드캐스트 메시지의 제3 영역에 추가하여 각 사용자에게 전송할 브로드캐스트 메시지를 생성하는 단계;를 포함하는 것이 바람직하다.
여기서, 상기 제3 단계는, 상기 브로드캐스트 메시지의 제1 영역에 상기 합법적인 사용자가 보유하는 쉐어값에 대응되는 공유 ID가 존재하는지 확인하는 단계; 확인결과, 공유 ID가 존재하면, 해당 다항식의 비밀값을 복원하고, 복원된 비밀값을 이용하여 제1 암호문으로부터 그룹키를 복호화하는 단계; 및 그룹키를 이용하여 브로드캐스트 메시지를 복호화하는 단계;를 포함하는 것이 바람직하다.
여기서, 상기 공유 ID는, 사용자가 보유하는 쉐어값들 중에 어느 쉐어값으로 상기 비밀값을 복원해야되는지를 알려주기 위한 정보인 것이 바람직하다.
여기서, 상기 공유 ID에 대응되는 쉐어값과 사용자가 보유하는 쉐어값 및 라그랑지(Lagrange) 교항 다항식을 이용하여 해당 다항식의 비밀값을 복원하는 것이 바람직하다.
여기서, 확인결과, 상기 브로드캐스트 메시지의 제1 영역에 상기 합법적인 사용자가 보유하는 쉐어값에 대응되는 공유 ID가 존재하지 않으면, 상기 브로드캐스트 메시지의 제2 영역에서 대응되는 노드 ID를 검색하여, 상기 노드 ID에 대응되는 노드키로 그룹키를 복호화하는 단계; 및 그룹키를 이용하여 브로드캐스트 메시지를 복호화하는 단계;를 더 포함하는 것이 바람직하다.
여기서, 상기 노드 ID는, 사용자에게 어느 노드키로 상기 그룹키를 복호화해야 되는지를 알려주기 위한 정보인 것이 바람직하다.
먼저, 본 발명에 따른 계층적 문턱 트리에 기반한 브로드캐스트 암호화방법의 설명에 필요한 계수들을 다음과 같이 정리한다.
: 모든 사용자들의 집합, N의 크기는 │N│= n = 2
a
: 탈퇴자 그룹, R의 크기는 │R│= r이며, R은 N의 부분 집합이다.
: 트리의 레벨값으로 레벨은 루트를 시작점으로 한다. 즉, 루트의 레벨은 0 이다.
: 레벨 l에 해당하는 j번째 서브 그룹, S
l ,j의 id를 s
l ,j로 표기한다.
: 레벨 l에 대응하는 다항식으로서 차수가 d이고 j번째 서브 그룹에 대응됨.
: 메시지 M과 그룹키(sk)를 암호화하기 위해 사용. F
K는 속도가 빨라야 하고 암호화로 인해 입력값의 길이를 확장시켜서는 안된다. 간단한 구현방법으로 데이터와 키 K로 XOR을 하는 방법이 있다.
: collision-resistance 일방향 해쉬함수.
: 서버가 전송하는 브로드캐스트 메시지. M
B는 크게 세 부분으로 구분된다. 첫 번째 부분인
는 (t,n)-threshold 기법에서 다항식의 비밀값
를 복구하기 위해서 사용되는 쉐어값을 의미한다.
는 구성원이 가지고 있는 쉐어값들 중에 어떤 쉐어값으로 비밀값을 복원해야되는지를 알려주 기 위한 identifier이다. 전송되는 share
i의 개수는 m이라 가정한다. 그리고,
는 (t,n) threshold 기법의 다항식들의 각 비밀값 f
i(0)로 그룹키를 암호화한 암호문을 나타낸다. 비밀값 f
i(0)을 복원한 구성원들만이 암호문
로부터 그룹키를 복호화할 수 있다. 두 번째 부분인
는 그룹키를 노드키로 암호화한 암호문을 나타내고, 전송되는 암호문의 개수는 k로 가정한다.
는 구성원에게 어떤 노드키로 복호화해야 되는지를 알려주기 위한 노드키 K
i의 identifier이다. 세 번째 부분은 그룹키로 메시지 M을 암호화한 부분이다.
이하에서는 첨부도면을 참조하여 본 발명에 대해 설명한다.
도 2는 본 발명에 따른 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법의 설명에 제공되는 흐름도이다.
본 발명에 따른 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법은 서버의 초기화 및 사용자 가입을 위한 셋업단계(S220), 합법적인 사용자가 그룹키를 복호화할 수 있도록 메시지를 분배하는 브로드캐스트 단계(S240), 및 합법적인 사용자가 그룹키를 이용하여 메시지를 복호화하는 단계(S260)로 이루어진다.
먼저, 서버의 초기화 및 사용자 가입을 위한 셋업 단계에 대해 도면을 참조하여 설명한다. 도 3은 도 2의 S220 단계(셋업 단계)를 상세히 나타낸 흐름도이다.
셋업 단계에서 모든 사용자에 대응되는 키 구조는 완전 w-ary 트리 구조를 가지며, 레벨 0(루트)을 제외한 각 레벨의 모든 노드들은 w개의 노드를 가지는 서브 그룹 Sl ,j들로 구분되는 것으로 가정한다.
먼저, 서버는 루트를 제외한 트리의 각 노드에 대응되는 노드키
을 랜덤하게 생성한다(S310). 그리고, 각 레벨 l(1≤l≤h)의 모든 서브 그룹
에 대응되는 차수가 d차(1≤d≤w/2)인 랜덤 다항식
을 각 서브 그룹 별로 생성한다(S320).
서버는 각 서브 그룹 별로 생성된 d차 다항식에 노드 i의 identifier를 대입하여, 랜덤한 d차 다항식의 비밀값을 복원하기 위한 쉐어(share)값인
를 생성한다(S330).
이어서, 서버는 생성된 노드키와 쉐어값인
를 보안 채널을 통하여 사용자 U
i에게 전송한다(S340).
각 사용자 Ui는 두 가지 형태의 키 값을 비밀키로 저장하게 된다. 첫 번째 형태의 비밀키는 레벨 1부터 h 레벨의 리프(leaf) 노드에까지 해당하는 h개의 노드키
이다.
사용자가 저장하는 두 번째 형태의 비밀키는 h×(w/2) 개의 쉐어값
이다.
는 Shamir의 threshold 방법을 이용해서 다항식의 비밀값을 복원하기 위해서 사용되는 쉐어값이다. 최종적으로 다항식의 비밀값을 이용해서 그룹키를 산출할 수 있기 때문에 사용자는 이러한 쉐어값을 저장해야 한다.
이와 같은 방식으로 셋업 단계(S220)가 수행되면, 서버는 그룹키(sk)와 메시지(M)를 합법적인 사용자들에게 브로드캐스팅하기 위한 브로드캐스트 단계(S240)를 다음과 같은 과정을 통해 수행한다.
도 4는 도 2의 S240 단계를 상세히 나타낸 흐름도이다. 도 4를 참조하면, 먼저, 서버는 그룹키(sk)를 생성한다(S410). 이어서, 탈퇴자들의 집합 R이 주어졌을 때, 탈퇴자들의 집합 R에 속해있는 구성원들에 대응되는 노드를 모두 연결하여 Steiner Tree, ST(R)를 구성한다(S420). ST(R)이 구성되면, 서버는 트리의 각 레벨에 속하는 모든 서브 그룹
에 대하여 다음과 같은 과정을 수행한다.
먼저, 각 서브 그룹
내에서 ST(R)에 속하는 노드의 개수
를 산출한다(S430).
산출된 ST(R)에 속하는 노드의 개수 I
l ,j가 만약 1≤ I
l ,j≤w/2 를 만족하면(S440), 각 서브 그룹
에 대응되는 d차 다항식의 비밀값
으로 그룹키(sk)를 암호화하여 제1 암호문
을 생성한다(S450). 이 때, 제1 암호문
은 아래의 수학식과 같다.
이어서, 서버는 각 서브 그룹에 대응되는 공유키
및 제1 암호문
을 브로드캐스트 메시지(M
B)의 첫 번째 영역
에 추가한다(S460). 여기서,
는 구성원이 가지고 있는 쉐어값들 중에 어떤 쉐어값으로 비밀값을 복원해야되는지를 알려주기 위한 identifier로서,
로 표현된다.
한편, 산출된 ST(R)에 속하는 노드의 개수 I
l ,j가 만약 I
l ,j > w/2를 만족하면(S470), I
l ,j > w/2 를 만족하는 모든 서브 그룹
에 대하여 ST(R)에 포함되지 않는 노드를 찾고, 그 노드에 대응되는 노드키로 그룹키(sk)를 암호화하여 제2 암 호문
을 생성한다(S480). 이어서, 서버는 생성된 제2 암호문
을 브로드캐스트 메시지(M
B)의 두 번째 부분
에 추가한다(S490). 여기서,
는 구성원에게 어떤 노드키로 복호화해야 되는지를 알려주기 위한 노드키 K
i의 identifier로서,
로 표현된다.
그 후, 서버는 메시지(M)를 전송하기 위해서 그룹키(sk)로 메시지(M)를 암호화해서 제3 암호문
을 생성한다(S492).
서버는 상술한 방식으로 최종적으로 생성된 브로드캐스트 메시지(MB)를 사용자들에게 브로드캐스트하며, 이에 의해 메시지 브로드캐스트 단계가 완료된다(S494).
마지막으로, 메시지 복호화 단계인 제3 단계가 수행된다. 각 사용자 Ui는 브로드캐스트 메시지(MB)를 서버로부터 전송받은 후, 다음과 같은 과정을 통해서 그룹키(sk)를 얻은 후에 메시지 MB를 복호화한다.
도 5는 도 2의 S260 단계를 상세히 나타낸 흐름도이다. 도 5를 참조하면, 먼저, 탈퇴자 그룹 R에 속하지 않는 합법적인 사용자 Ui는 브로드캐스트 메시지에 자 신이 가지고 있는 비밀키에 대응되는 정보가 있는지 검색한다(S510).
먼저, 브로드캐스트 메시지의 첫 번째 부분인
에 자신이 보유하는 쉐어값에 대응되는 공유 아이디가 존재하는지 확인한다(S520). 확인결과, 공유 아이디가 존재하면(S530:Y), 대응되는 쉐어값과 자신의 쉐어값을 사용해서 라그랑지(Lagrange) 교항 다항식을 이용하여 해당 다항식의 비밀값을 복구한다(S540).
해당 다항식의 비밀값이 복구되면, 복구된 비밀값을 이용해서, 제1 암호문
로부터 그룹키(sk)를 복호한다(S550).
한편, 브로드캐스트 메시지의 첫 번째 부분인
에 자신이 보유한 쉐어값에 대응되는 공유 아이디가 존재하지 않으면(S530:N), 브로드캐스트 메시지의 두 번째 부분
에서 대응되는 노드 아이디를 검색한다(S560). 이어서, 검색된 노드에 대응되는 노드키로 그룹키(sk)를 복호한다(S570).
마지막으로 복호화된 그룹키를 이용하여 브로드캐스트 메시지(M)을 산출한다(S580). 즉,
로부터 브로드캐스트 메시지 M을 산출한다.
< 실시예 >
이하에서는 본 발명에 따른 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법에 대한 이해를 돕기 위해 │N│= n = 26, │R│= r = 5, w = 22인 경우를 가정하여 본 발명의 동작 과정을 설명한다.
1. 셋업 단계
도 6은 │N│= n = 26, w = 22 일 때, 생성되는 서브 그룹 Sl , j 의 형태를 도시한 도면이다. 도 6을 참조하면, 모든 구성원에 대응되는 키 구조는 완전 4-ary 트리 구조를 갖는다. 레벨 0을 제외한 각 레벨의 노드들은 4개의 노드를 가지는 서브 그룹 Sl ,j들로 구분된다.
서버는 루트를 제외한 트리의 각 노드에 대응하는 노드키
를 랜덤하게 생성한다. 그리고 각 레벨 l(1≤l≤3)마다 서브 그룹
에 차수 d가 1차와 2차인 h×(w/2) = 3×2 = 6개의 랜덤 다항식
을 생성한다.
이어서, 서버는 생성된 6개의 랜덤 다항식에 노드 i의 identifier를 대입하여 다항식의 비밀값을 복원하기 위한 쉐어값
를 생성한다. 그 후, 서버는 노드키
및 생성된 쉐어값
을 보안 채널(secure channel)을 통하여 사용자 U
i에게 전송한다. 여기서,
은 (t,n)-threshold 기법의 쉐어값이다.
각 사용자 U
i는 첫 번째 형태의 비밀키로 레벨 1부터 레벨 3의 노드까지에 해당하는 3개의 노드키
및 두 번째 형태의 비밀키로서 h×(w/2)개의 쉐어값
을 저장한다.
본 실시예에서는 일반성을 잃지 않고 사용자 U
21이 저장하게 되는 키 정보만을 살펴보도록 한다. 도 7은 도 6에 도시된 사용자 U
21이 저장하게 되는 키의 형태를 도시한 도면이다. 도 7를 참조하면, 사용자 U
21은 3개의 노드키 값
과 레벨 1 내지 레벨 3의 서브 그룹
에 대응되는 6개의 쉐어값
을 저장하게 된다.
2. 메시지 브로드캐스트 단계
서버는 그룹키(sk)와 메시지(M)을 합법적인 사용자에게 브로드캐스트하기 위한 과정을 수행한다. 먼저, 서버는 그룹키(sk)를 생성한다.
이어서, 탈퇴자들의 집합 R이 {U
21, U
36, U
123, U
124 , U
125}로 주어졌을 때, 집합 R에 속한 구성원들에 대응되는 노드들을 모두 연결하여 Steiner Tree,
를 구성한다. 도 8은 탈퇴자들의 집합 R이 {U
21, U
36, U
123, U
124 , U
125}인 경우에 구성되는 Steiner Tree를 도시한 도면이다. Steiner Tree가 구성되면, 서버는 트리의 각 레벨 1~3에 속하는 모든 서브 그룹
에 대해서 다음 과정을 수행한다.
서버는 각 서브 그룹
마다
에 속하는 노드의 개수
를 산출한다. 도 8에서, 각 레벨에 속하는 모든 서브 그룹
별로 ST(R)에 속하는 노드의 개수는 다음과 같다.
이어서, 서버는 산출된 노드의 개수
가 1≤ I
l ,j≤w/2 및 I
l ,j > w/2 중 어느 조건을 만족하는지 확인한다. 본 실시예에서 w=4이므로, 1≤ I
l ,j≤2를 만족하는 서브 그룹은 S
1 ,1, S
2 ,1, S
2 ,4, S
3 ,1, S
3 ,4이며, I
l ,j > 2를 만족하는 서브 그룹은 S
3 ,16이다.
먼저, 서버는 1≤ Il ,j≤w/2를 만족하는 서브 그룹들에 대해서, 다음과 같은 브로드캐스트 메시지 생성 과정을 수행한다.
먼저, 서버는 S
1 ,1에 대응하는 2차 다항식의 쉐어값
및 다항식의 비밀값인
을 그룹키(sk)로 암호화한 값인
을 브로드캐스트 메시지(M
B)의 첫 번째 부분에 추가한다.
이와 마찬가지로, 서버는 S
2 ,1 에 대응하는 2개의 2차 다항식의 쉐어값인
와
및 다항식의 비밀값인
을 그룹키(sk)로 암호화한 값인
을 브로드캐스트 메시지(M
B)의 첫 번째 부분에 추가한다.
또한, 서버는 S
2 ,4에 대응하는 1차 다항식의 쉐어값인
및 다항식의 비밀값인
을 그룹키(sk)로 암호화한 값인
을 브로드캐스트 메시지(M
B)의 첫 번째 부분에 추가한다.
또한, 서버는 S
3 ,1에 대응하는 1차 다항식의 쉐어값인
및 다항 식의 비밀값인
을 그룹키 sk로 암호화한 값인
을 브로드캐스트 메시지(M
B)의 첫 번째 부분에 추가한다.
또한, 서버는 S
3 ,4에 대응하는 1차 다항식의 쉐어값인
및 다항식의 비밀값인
을 그룹키(sk)로 암호화한 값인
을 브로드캐스트 메시지(M
B)의 첫 번째 부분에 추가한다.
한편, 서버는 Il ,j > 2를 만족하는 서브 그룹들에 대해서 다음과 같은 브로드캐스트 메시지 생성 과정을 수행한다. 즉 서버는 Il ,j > 2를 만족하는 서브 그룹에서 ST(R)에 포함되지 않는 노드를 찾고, 그 노드에 대응되는 노드키로 그룹키 (sk)를 암호화하여, 암호화된 값을 브로드캐스트 메시지 MB의 두 번째 부분에 추가한다.
본 실시예에서 I
i,j > 2를 만족하는 서브 그룹은 S
3 ,16이다. 도 8을 참조하면, 서버는 서브 그룹 S
3 ,16에서 ST(R)에 포함되지 않는 노드인 노드 126(N
126)을 찾고, 노드 126 (N
126)의 노드키
로 그룹키(sk)를 암호화한 값인
을 브로드캐스트 메시지 M
B의 두 번째 부분에 추가한다.
이와 같은 방식으로, 브로드캐스트 메시지(M
B)의 첫 번째 부분과 두 번째 부분이 구성되면, 서버는 메시지(M)를 전송하기 위해서 그룹키(sk)를 이용하여 메시지(M)를 암호화한 값인
를 생성하여, 브로드캐스트 메시지에 추가하여, 최종적인 브로드캐스트 메시지를 생성하고, 이를 사용자에게 브로드캐스트한다.
본 실시예에서 최종적으로 생성된 브로드캐스트 메시지 MB는 다음과 같다.
3. 메시지 복호화 단계
서버로부터 브로드캐스트 메시지가 전송되면, 각 사용자(Ui)는 브로드캐스트 메시지를 받은 후 다음과 같은 단계를 통해서 그룹키(sk)를 얻은 후에 서버로부터 전송받은 메시지를 복호화하게 된다.
먼저, 도 8을 참조하면, 탈퇴자 그룹에 속하지 않는 합법적인 각 사용자 U
i {U
22,…, U
35, U
37,…,U
122,U
126}는 서버로부터 전송받은 브로드캐스트 메시지에 자신이 가지고 있는 비밀키에 대응되는 정보가 있는지 검색한다. 사용자 {U
22, U
23, U
24}는 브로드캐스트 메시지(M
B)에서 공유 아이디 h(3,1,1)에 대응되는 쉐어값
과 자신들 각자의 쉐어값인
,
,
을 이용해서 라그랑지(Lagrange) 교항 다항식을 계산함으로써 1차 다항식의 비밀값인
을 복원한다. 그 후, 복원된 1차 다항식의 비밀값인
을 이용해서 브로드캐스트 메시지 M
B의 세 번째 부분인
로부터 그룹키(sk)를 복호한다.
한편, 사용자 {U
25,…,U
32}는 브로드캐스트 메시지 M
B에서 공유 아이디 h(2,2,1)에 대응되는 쉐어값
,
과 자신들 각자의 쉐어값
,
을 2차 다항식의 비밀값
을 복원한 후, 복원된 비밀값을 이용하여 그룹키(sk)를 복호화한다.
또한, 사용자 {U
33,…,U
35}는 브로드캐스트 메시지 M
B에서 공유 아이디 h(3,1,4)에 대응되는 쉐어값인
과 자신들 각자의 쉐어값
,
,
를 이용해서, 그룹키(sk)를 복호화한다. 사용자 {U
37,… ,U
110}과 사용자 {U
111,…,U
122}도 이와 동일한 방식으로 그룹키(sk)를 산출한다.
한편, 사용자 U
126에 대응되는 공유 아이디는 브로드캐스트 메시지의 첫 번째 부분인
에 존재하지 않는다. 따라서, 사용자 U
126은 브로드캐스트 메시지의 두 번째 부분
에서 대응되는 노드 아이디를 검색한 후, 해당 노드의 노드키 k
126로 그룹키(sk)를 복호한다.
그룹키 복호화 과정이 완료되면 합법적인 사용자 {U
22,…,U
35,U
37,…,U
122,U
126}는
을 이용하여 서버로부터 전송된 메시지를 복호화한다.
도 9는 탈퇴자의 수에 따른 메시지 전송량을 도시한 도면이다. 도 9를 참조하면, 사용자들의 총 수가 N = 220이고, 탈퇴되는 사용자들의 수가 최대 R = 216이라 할 때, 본 발명에 따른 계층적 문턱-트리에 기반한 브로드캐스트 암호화 방법에서 서버가 전송하는 메시지의 전송량은 다음과 같다.
초기 상태에서 한 명이 탈퇴하면, 6개의 메시지가 필요하다. 그리고, 한 명이 추가적으로 탈퇴하면, 최소의 경우 1개의 메시지만 추가되지만 최악의 경우는 5개의 메시지가 추가된다. 이와 같이 한 명의 탈퇴자마다 최대 5개의 통신량이 추가되는 경우는 1 < r(탈퇴자의 수) < 25 까지이다. 따라서, 탈퇴자의 수가 1 < r < 25 인 경우에 통신량은 5r+1이 된다. 그러나, 탈퇴자의 수가 r = 25일 때는 4개의 통신량만 추가되기 때문에, 통신량은 5ㆍ25이 된다. 그 이후, 즉 25 < r < 26(26-1)인 경우에는 하나의 탈퇴자가 추가되는 경우에 최대 3개의 통신량이 추가되기 때문에 통신량은 3r+26이 된다.
그리고, 탈퇴자(r)가 26(26-1) < r < 26ㆍ26일 때 한 명의 탈퇴자가 추가되는 경우 최대 2개씩의 통신량이 추가되기 때문에 통신량은 2r+212의 식을 따른다. 마지막으로 탈퇴자가 212 < r ≤ 216 에서는 통신량이 1씩 증가하게 되어 기울기가 1이고, 213을 상수로 하는 r+213 식을 따르게 된다. 결국 탈퇴자가 최대인 r=216의 경우, 메시지 전송량은 216+213이므로 편의상 1.125r로 볼 수 있다.
아래 표는 본 발명에 따른 계층적 문턱-트리 기반의 브로드캐스트 암호화 방법에서 통신량과 각 사용자의 저장량, 그리고 사용자가 메시지를 복호화하는데 필요한 계산량을 나타낸 것이다.
통신량 (r=216) |
사용자 저장량 |
계산량(128비트) |
1.125r |
2.4 Kbyte |
multiplication |
division |
search |
63 |
63 |
O(log(n)) |