KR101321401B1 - 그룹 키 관리 방법 및 이를 이용한 그룹 키 관리 장치 - Google Patents

그룹 키 관리 방법 및 이를 이용한 그룹 키 관리 장치 Download PDF

Info

Publication number
KR101321401B1
KR101321401B1 KR1020070011277A KR20070011277A KR101321401B1 KR 101321401 B1 KR101321401 B1 KR 101321401B1 KR 1020070011277 A KR1020070011277 A KR 1020070011277A KR 20070011277 A KR20070011277 A KR 20070011277A KR 101321401 B1 KR101321401 B1 KR 101321401B1
Authority
KR
South Korea
Prior art keywords
level
key
user
set element
new
Prior art date
Application number
KR1020070011277A
Other languages
English (en)
Other versions
KR20080072463A (ko
Inventor
허미숙
김대엽
조남수
유은선
김명환
천정희
Original Assignee
재단법인서울대학교산학협력재단
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 재단법인서울대학교산학협력재단, 삼성전자주식회사 filed Critical 재단법인서울대학교산학협력재단
Priority to KR1020070011277A priority Critical patent/KR101321401B1/ko
Publication of KR20080072463A publication Critical patent/KR20080072463A/ko
Application granted granted Critical
Publication of KR101321401B1 publication Critical patent/KR101321401B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Abstract

그룹 키 관리 방법 및 그룹 키 관리 장치가 개시된다. 본 발명의 그룹 키 관리 방법은, 각각 둘 이상의 사용자들로 구성되고 고유한 공통키를 가지는 사용자 집합 원소들을 생성하는 단계, 상기 사용자 집합 원소들 중 두 개를 선택하여 상위 레벨 집합 원소를 생성하고, 선택된 상기 사용자 집합 원소들 중 두 개 각각의 공통키들 중 어느 하나 이상을 이용하여 상기 상위 레벨 집합 원소의 레벨 키를 생성하는 단계, 및 기설정된 레벨까지 상기 상위 레벨 집합 원소의 레벨 키를 생성하는 단계를 반복하는 단계를 포함하는 것을 특징으로 한다. 따라서, 그룹 키 관리에 필요한 전송량을 줄일 수 있다.
브로드캐스트 암호화, 그룹 키 관리

Description

그룹 키 관리 방법 및 이를 이용한 그룹 키 관리 장치 {METHOD OF GROUP KEY MANAGEMENT AND APPARATUS FOR GROUP KEY MANAGEMENT USING THE SAME}
도 1은 본 발명의 일실시예에 따른 그룹 키 관리 방법을 나타낸 동작 흐름도이다.
도 2는 도 1에 도시된 그룹 키 관리 방법에 따른 그룹 키 할당의 일 예를 나타낸 도면이다.
도 3은 도 2에 도시된 예에서 사용자가 탈퇴하는 경우의 사용자 제거 과정을 나타낸 도면이다.
도 4는 도 3에 도시된 예에서 사용자 삭제 이후의 레벨 키 업데이트 과정을 나타낸 도면이다.
도 5는 도 4에 도시된 예에서 새로운 사용자가 가입하는 경우의 레벨 키 업데이트 과정을 나타낸 도면이다.
도 6은 도 1에 도시된 그룹 키 관리 방법에 따른 그룹 키 할당의 다른 예를 나타낸 도면이다.
도 7은 및 도 8은 도 6에 도시된 예에서 그룹에 변동이 있는 경우 레벨 키 업데이트 과정을 나타낸 도면이다.
도 9는 본 발명의 일실시예에 따른 그룹 키 관리 장치를 나타낸 블록도이다.
<도면의 주요 부분에 대한 부호의 설명>
S110: 사용자 집합 원소 생성 단계
S120: 레벨 키 생성 단계
S130: 레벨 키 생성 완료 판단 단계
본 발명은 그룹 키 관리에 관한 것으로, 특히 전송량을 획기적으로 줄일 수 있는 그룹 키 관리 방법 및 그룹 키 관리 장치에 관한 것이다.
인터넷과 휴대폰 등의 암호학적으로 안전하지 않은 통신 환경에서, 안전한 통신이 가능하도록 하기 위해서는 그룹의 구성원들이 비밀키를 공유하여야 한다. 이 때, 그룹 구성원들은 공개키 암호 기법을 이용하여 비밀키를 공유할 수 있다.
그러나, 그룹의 구성원들의 가입과 탈퇴가 빈번한 경우, 해당 그룹에 대한 암호학적 키를 효율적으로 갱신하는 것은 매우 어려운 문제이다. 이는, 한 명의 그룹 구성원이 빠지거나 추가되어도 전체 그룹의 그룹 키(비밀키)가 변화되어야 하기 때문이다. 이 때, 그룹 내의 나머지 구성원들은 새로운 그룹 키를 효율적으로 계산할 수 있어야 하며, 제외된 구성원들은 새로운 그룹 키를 얻을 수 없어야 한다. 또한, 새로운 구성원들이 이전의 그룹 키를 계산할 수 없어야 한다.
이와 같이, 그룹 키 관리(group key management)는 동적으로 변화하는 큰 그룹에 대한 암호학적인 그룹 키를 생성 및 갱신하는 방법에 관한 것이다. 그룹 키 관리에서 그룹의 구성원이 탈퇴(leave)하거나 가입(join)하는 경우, 즉 그룹이 변화하는 경우마다 그룹 키를 갱신(rekey)해야 하므로 그룹 키 갱신을 위해 필요한 전송량, 계산량 및 저장량을 최소화하는 것은 매우 중요한 문제이다.
1997년 Wallner 등은 LKH(Logical Key Hierarchy) 기법을 소개하였다. LKH 기법은 1999년 Harney와 Harder가 그 알고리즘을 구현하면서 LKH라는 이름으로 불리게 되었다. LKH는 그룹 크기의 로그값에 비례하는 전송량, 저장량 및 계산량을 제공한다.
1997년 Sherman 등이 고안한 OFT(One-Way Function Tree)는 트리의 노드들에 대하여 일방향 함수(one-way function)을 적용하여 노드키들 사이에 상관관계를 부여함으로써 그룹 키 관리의 효율성을 높였다. OFT는 한 사용자가 탈퇴할 경우 LKH에 비하여 전송량이 반으로 줄어든다.
한편, 그룹 키 관리와 관련된 기술로 브로드캐스트 암호화(broadcast encryption)를 들 수 있다. 브로드캐스트 암호화는 전체 사용자들 중에서 센터가 원하는 사용자들에게만 정보를 효과적으로 전달하는 암호학적인 기법으로, 정보를 받을 사용자들의 집합이 임의적이고 동적으로 변하는 경우에 사용된다는 점에서 그룹 키 관리와 유사한 특성을 가진다.
다만, 브로드캐스트 암호화는 각각의 유저들의 비밀키가 바뀌거나 업데이트되지 않는다는 점에서 그룹 키 관리와 구별된다. 즉, 브로드캐스트 암호화는 사용자의 탈퇴가 영구적인 탈퇴를 의미하지 않고 일시적 탈퇴만을 의미하며, 사용자의 추가적인 가입을 고려하지 않는다.
브로드캐스트 암호화는 종래의 그룹 키 관리 방식들에 비해 제외된 사용자의 수가 동일한 경우 적은 전송량으로 그룹 키를 관리할 수 있지만, 그룹 키 관리의 응용분야에 그대로 적용시키기에는 부적합하다. 브로드캐스트 암호화의 전송량은 전체 시스템에 포함된 사용자 중에서 현재 세션에서 제외된 사용자 수에 비례하는데, 브로드캐스트 암호화에서는 일시적인 탈퇴만을 고려하기 때문에 그룹 키 관리의 응용분야에 적용될 경우 제외된 사용자의 수는 지속적으로 증가하게 된다. 결국 여러 세션이 지난 후에는 브로드캐스트 암호화가 그룹 키 관리 방식들에 비해 오히려 더 많은 전송량을 필요로 하게 된다.
따라서, 브로드캐스트 암호화의 장점을 살리면서 종래의 그룹 키 관리 기법들에 비하여 전송량을 줄일 수 있는 새로운 그룹 키 관리 방법 및 장치의 필요성이 절실하게 대두된다.
본 발명은 상술한 바와 같은 종래기술의 문제점을 해결하기 위해 안출된 것으로서, 브로드캐스트 암호화의 장점을 살리면서 그룹 키 업데이트에 필요한 전송량을 줄이는 것을 목적으로 한다.
또한, 본 발명은 특히 탈퇴한 사용자의 수가 작은 경우에 그룹 키 업데이트에 필요한 전송량을 획기적으로 줄이는 것을 목적으로 한다.
또한, 본 발명은 새로운 사용자의 가입시에 새로 가입한 사용자에게 개별적으로 사용자 키를 전송하는 것만으로 그룹 키 업데이트를 수행할 수 있도록 하는 것을 목적으로 한다.
또한, 본 발명은 각 세션 별로 트리 구조의 레벨키를 생성하고, 그룹 구성원의 가입이나 탈퇴와 무관한 사용자 집단에 대한 레벨키는 다음 세션에서 재사용하도록 하여 보다 효율적으로 그룹 키를 관리하는 것을 목적으로 한다.
상기의 목적을 달성하고 종래기술의 문제점을 해결하기 위하여, 본 발명의 그룹 키 관리 방법은, 각각 둘 이상의 사용자들로 구성되고 고유한 공통키를 가지는 사용자 집합 원소들을 생성하는 단계, 상기 사용자 집합 원소들 중 두 개를 선택하여 상위 레벨 집합 원소를 생성하고, 선택된 상기 사용자 집합 원소들 중 두 개 각각의 공통키들 중 어느 하나 이상을 이용하여 상기 상위 레벨 집합 원소의 레벨 키를 생성하는 단계, 및 기설정된 레벨까지 상기 상위 레벨 집합 원소의 레벨 키를 생성하는 단계를 반복하는 단계를 포함하는 것을 특징으로 한다.
이 때, 그룹 키 관리 방법은 각각의 사용자에 대하여 상응하는 최상위 레벨 집합 원소의 레벨 키로 그룹 키를 암호화하여 전송하는 단계를 더 포함할 수 있다.
이 때, 상위 레벨 집합 원소의 레벨 키를 생성하는 단계는 상위 레벨 집합 원소를 생성한 후, 생성된 상기 상위 레벨 집합 원소를 상위 레벨 집합의 원소가 되도록 하고, 상기 상위 레벨 집합 원소에 상응하는 하위 레벨 집합 원소들을 상기 상위 레벨 집합의 하위 레벨에 속하는 하위 레벨 집합으로부터 삭제할 수 있다.
이 때, 각각의 사용자는 자신의 고유키, 자신을 포함하는 상기 사용자 집합 원소에 상응하는 공통키 및 상응하는 최상위 레벨 집합 원소까지의 레벨 키를 저장할 수 있다.
또한, 본 발명의 일실시예에 따른 그룹 키 관리 장치는, 각각 둘 이상의 사용자들로 구성되고 고유한 공통키를 가지는 사용자 집합 원소들을 생성하는 사용자 집합 원소 생성부, 상기 사용자 집합 원소들 중 두 개를 선택하여 상위 레벨 집합 원소를 생성하고, 선택된 상기 사용자 집합 원소들 중 두 개 각각의 공통키들 중 어느 하나 이상을 이용하여 상기 상위 레벨 집합 원소의 레벨 키를 생성하는 레벨 키 생성부, 및 기설정된 레벨까지 상기 상위 레벨 집합 원소의 레벨 키를 생성하도록 상기 레벨 키 생성부를 제어하는 레벨 키 생성 제어부를 포함하는 것을 특징으로 한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 그룹 키 관리 방법을 나타낸 동작 흐름도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 그룹 키 관리 방법은 각각 둘 이상의 사용자들로 구성되고 고유한 공통키를 가지는 사용자 집합 원소들을 생성한다(S110).
이 때, 사용자 집합 원소들은 각각 두 명의 사용자들을 포함할 수도 있고, 그 이상의 사용자들을 포함할 수도 있다.
예를 들어, 사용자 집합 원소들은 두 명의 사용자들을 포함하고, 공통키는 사용자 집합 원소 내의 두 명의 사용자에 대하여 부여된 고유한 키일 수 있다. 이 때, 사용자들은 각각 자신이 속한 파티션 내에 있는 다른 사용자들과의 공통키들을 저장할 수 있다.
예를 들어, 사용자 집합 원소들은 세 명 이하의 사용자들을 포함하고, 공통키는 사용자 집합 원소 내의 모든 사용자에 대응하여 부여된 고유한 키일 수 있다. 이 때, 사용자들은 각각 자신이 속한 파티션 내의 세 명 이하의 사용자들로 구성된 모든 부분집합 중 자신이 속한 부분집합에 상응하는 모든 키를 저장할 수 있다.
이 때, 사용자 집합 원소들은 동일한 파티션 내에서 형성될 수 있다.
또한, 본 발명의 일실시예에 따른 그룹 키 관리 방법은 사용자 집합 원소들 중 두 개를 선택하여 상위 레벨 집합 원소를 생성하고, 선택된 상기 사용자 집합 원소들 중 두 개 각각의 공통키들 중 어느 하나 이상을 이용하여 상기 상위 레벨 집합 원소의 레벨 키를 생성한다(S120).
즉, 단계(S120)는 상위 레벨 집합 원소를 생성한 후, 생성된 상기 상위 레벨 집합 원소를 상위 레벨 집합의 원소가 되도록 하고, 상기 상위 레벨 집합 원소에 상응하는 하위 레벨 집합 원소들을 상기 상위 레벨 집합의 하위 레벨에 속하는 하위 레벨 집합으로부터 삭제할 수 있다. 이 때, 레벨 집합은 각 레벨에 상응하는 사용자들의 집합일 수 있다.
이 때, 단계(S120)는 사용자 집합 원소들 중 두 개 중 어느 하나의 공통키 및 상기 두 개 중 다른 하나의 인덱스를 입력으로 하는 일방향 함수의 출력을 이용하여 상기 상위 레벨 집합 원소의 레벨 키를 생성할 수 있다.
또한, 본 발명의 일실시예에 따른 그룹 키 관리 방법은 단계(S120)의 동작이 기설정된 레벨까지 수행되었는지 여부를 판단한다(S130).
예를 들어, 그룹 키 관리 방법은 레벨 5까지의 레벨 키를 설정하도록 설정되어 있을 수 있고, 단계(S120)의 동작을 레벨 5의 레벨 키가 생성될 때까지 반복할 수 있다.
실시예에 따라, 도 1에 도시된 그룹 키 관리 방법은 각각의 사용자에 대하여 상응하는 최상위 레벨 집합 원소의 레벨 키로 그룹 키를 암호화하여 전송하는 단계를 더 포함할 수 있다. 이 때, 상기 그룹 키를 암호화하여 전송하는 단계는 각각의 사용자에 대하여 상기 각각의 사용자가 속한 최상위 레벨 집합 원소를 선택하는 단계, 및 선택된 상기 최상위 레벨 집합 원소의 레벨 키로 상기 그룹 키를 암호화하여 전송하는 단계를 포함할 수 있다.
이 때, 각각의 사용자는 자신의 고유키, 자신을 포함하는 상기 사용자 집합 원소에 상응하는 공통키 및 상응하는 최상위 레벨 집합 원소까지의 레벨 키를 저장할 수 있다.
실시예에 따라, 도 1에 도시된 그룹 키 관리 방법은 사용자가 탈퇴하여 그룹에서 제외되는 경우, 제외된 사용자에 상응하는 최상위 레벨 집합 원소를 두 개의 하위 레벨 집합 원소로 분할하는 단계, 상기 두 개의 하위 레벨 집합 원소로 분할하는 단계를 사용자 집합 레벨까지 반복하는 단계, 분할된 상기 사용자 집합 레벨에서 제외된 상기 사용자를 제거하는 단계, 상기 사용자 집합 레벨에서 새로운 사용자 집합 원소를 생성하는 단계, 상기 새로운 사용자 집합 원소를 포함하는 새로운 상위 레벨 집합 원소를 생성하고, 상기 새로운 상위 레벨 집합 원소에 상응하는 하위 레벨 집합 원소들 중 어느 하나 이상의 공통키를 이용하여 상기 새로운 상위 레벨 집합 원소의 레벨 키를 생성하는 단계, 및 상기 기설정된 레벨까지 상기 새로운 상위 레벨 집합 원소의 레벨 키를 생성하는 단계를 반복하는 단계를 더 포함할 수 있다.
실시예에 따라, 도 1에 도시된 그룹 키 관리 방법은 새로운 사용자가 그룹에 가입하는 경우에, 새로운 사용자를 포함하는 새로운 사용자 집합 원소를 생성하고, 상기 새로운 사용자 집합 원소의 공유키를 설정하는 단계, 상기 새로운 사용자 집합 원소를 포함하는 새로운 상위 레벨 집합 원소를 생성하고, 상기 새로운 상위 레벨 집합 원소에 상응하는 하위 레벨 집합 원소들 중 어느 하나 이상의 공통키를 이용하여 상기 새로운 상위 레벨 집합 원소의 레벨 키를 생성하는 단계, 및 상기 기설정된 레벨까지 상기 새로운 상위 레벨 집합 원소의 레벨 키를 생성하는 단계를 반복하는 단계를 포함할 수 있다.
이하, 보다 상세한 예를 들어 본 발명의 일실시예에 따른 그룹 키 관리 방법을 설명한다.
먼저, 센터는 상수 m을 결정하여 그룹 내의 모든 사용자를 크기가 m인 파티션으로 분할한다. 이 때, 센터는 그룹 키 관리를 담당하는 역할을 할 수 있다. 전체 사용자 수를 N이라 하면, 총 N/m개의 파티션이 생성된다.
각 파티션에 포함된 m명의 사용자는 1부터 m까지의 인덱스를 부여 받는다.
s번째 파티션의 인덱스 i를 부여 받은 사용자를 us,i로 표기하기로 한다. 각 사용자 us,i는 임의로 선택된 사용자 고유키 Is,i를 할당 받는다.
모든 파티션에 대해 센터는 가능한 모든 i, j ( 1 <= i < j <= m )에 대해서 임의로 키 Ks,{i,j}를 선택하여 사용자 us,i 및 us,j의 공통키로 할당한다. 즉, 각 사용자는 자신이 속한 파티션의 모든 임의의 다른 사용자와 공통키를 부여 받는다.
센터는 시스템의 초기 단계에서 상수 t를 결정하여, 시스템에서 앞으로 사용할 레벨 키의 상한을 결정한다. 예를 들어, t=5이면 레벨 키는 레벨 5까지만 생성된다.
또한 센터는 레벨 집합들 S0, S1, S2, ..., St을 생성한다. 기본적으로, 레벨 집합 Si는 2i명의 사용자들로 이루이진 집합으로 볼 수 있다. S0는 그룹 전체에 포함된 모든 사용자들로 구성된 집합으로 초기화되고, 나머지 S1, ..., St는 공집합으로 초기화된다.
S0에 포함된 사용자들 중에서 동일한 파티션에 포함된 두 명 us,i, us,j를 선택하여 레벨 집합 원소 S(1) s,{i,j} = {us,i, us,j}를 레벨 집합 S1에 포함시키고, S0에서 us,i, us,j를 제외시킨다. 또한, us,i, us,j의 공통키 Ks ,{i,j}를 레벨 집합 원소 S(1) s,{i,j}에 대응시킨다. 이상의 과정은 레벨 집합 S0에 동일한 파티션에 포함된 사용자 쌍이 존재하지 않을 때까지 반복된다. m을 짝수라 가정하면, S0에는 한 명의 사용자도 남지 않고, S1은 총 N/2의 원소를 갖게 된다. 설명의 편의를 위하여 레벨 집합 S1의 원소들, 즉, 레벨 집합 원소들을 각각 S(1) 1, ..., S(1) N/2로 표기하여, S1 = { S(1) 1, ..., S(1) N/2 }로 정의한다. 또한, S(1) i에 할당된 키를 K(1) i로 표기한다.
S1에서 임의로 두 개의 S(1) i 및 S(1) j를 선택하고, 이에 대응되는 키들 K(1) i 및 K(1) j를 이용하여 레벨 2의 레벨 키를 생성한다. 이 때, S(1) i 및 S(1) j의 이하 설명될 실시예의 경우와 같이 차례대로 선택되는 경우뿐 아니라 다양한 방식으로 선택될 수 있다.
레벨 2의 레벨 집합 원소 S(2) 1 = S(1) 1 U S(1) 2일 때, 이에 대응되는 레벨 2의 레벨 키는 K(2) 1 := h(K(1) 1, Ind2)로 정의된다. 이 때, h( , )는 일방향 함수(one-way function)이고, Ind2는 공개된 인덱스에 시간 정보 등의 임의로 변하는 값을 추가하여 사용한다.
센터는 K(2) 1을 K(1) 2로 암호화한 후 전송하여 K(1) 1과 K(1) 2 중에서 하나의 키를 알고 있는 4명의 사용자는 모두 K(2) 1을 알 수 있도록 한다.
K(2) 1을 생성한 후, S1에서 S(1) 1과 S(1) 2을 제거하고, S2에 S(2) 1를 포함시킨다. 다음, S(2) 2를 S(1) 3, S(1) 4를 이용하여 구성하고, S2에 포함시킨다. 이상의 과정은 S1에 원소가 하나 이하로 남을 때까지 반복된다. N/2가 짝수이면, S1에는 하나의 원소도 남지 않고, 레벨 집합 S2는 총 N/4개의 원소들을 갖게 된다.
설명의 편의를 위하여 레벨 집합 S2 = { S(2) 1, S(2) 2, ..., S(2) N/4 }로 정의한다. S2에서 임의의 두 개의 레벨 집합 원소들 S(2) i 및 S(2) j를 선택하고, 이에 대응하는 레벨 2의 레벨 키 K(2) i 및 K(2) j를 이용하여 레벨 3의 레벨 키를 생성한다. 예를 들어, 레벨 2의 레벨 그룹 원소 S(2) 1 및 S(2) 2로부터 레벨 3의 레벨 그룹 원소 S(3) 1을 생성하고, 이에 대응되는 K(2) 1 및 K(2) 2로부터 K(3) 1을 생성한다. 이 때, S(3) 1 = S(2) 1 U S(2) 2, K(3) 1 = h(K(2) 1, Ind2)로 정의된다. K(3) 1은 위의 레벨 2의 레벨 키와 동일한 방법으로 S(3) 1의 8명의 사용자에게 공유된다.
센터는 기설정된 상수 t에 대해서 동일한 방법으로 레벨 t까지의 레벨 키를 생성한다. 이러한 과정을 완료한 후 레벨 집합들 S0, S1, S2, ..., St-1은 공집합이거나 하나의 원소만을 포함한다. St는 현재 존재하는 모든 레벨 t 키에 대응하는 집합들을 원소로 갖는다.
도 2는 도 1에 도시된 그룹 키 관리 방법에 따른 그룹 키 할당의 일 예를 나타낸 도면이다.
도 2를 참조하면, 총 32명의 사용자는 4개의 파티션들(210, 220, 230, 240)로 분할되고, 각각의 파티션들은 8명의 사용자를 포함한다.
도 2에 도시된 예에서, 사용자 그룹(211)은 u1 ,1 및 u1 ,2에 상응하는 두 명의 사용자들을 포함하고, 사용자 그룹(211)에 상응하는 공통키(K1,{1,2})는 레벨 1의 레벨 키(K(1) 1)가 되고, 레벨 1의 레벨 키들(K(1) 1, K(1) 2)를 이용하여 레벨 2의 레벨 키(K(2) 1)가 생성된다. 또한, 레벨 2의 레벨 키들(K(2) 1, K(2) 2)을 이용하여 레벨 3의 레벨 키(K(3) 1)가 생성되고, 레벨 3의 레벨 키들(K(3) 1, K(3) 2)을 이용하여 레벨 4의 레벨 키(K(4) 1)가 생성되고, 레벨 4의 레벨 키들(K(4) 1, K(4) 2)을 이용하여 레벨 5의 레벨 키(K(5) 1)가 생성된다.
이 때, St = {S(5) 1}이고, 나머지 레벨 집합들은 모두 공집합이다.
센터는 레벨 집합들에 대한 정보를 다음 세션까지 저장한다. 이 때, 세션은 그룹 내의 사용자의 가입/탈퇴를 처리하는 하나의 단위 시간일 수 있다. 예를 들어, 한 세션이 시작되어서 끝날 때까지는 그룹 내의 사용자들의 가입/탈퇴가 일어 나지 않은 것으로 가정할 수 있다.
이하, 각각의 사용자들이 어떤 키를 저장하여야 하는지 살펴본다.
우선, 각 사용자는 그룹 키 관리 초기 단계에서 할당된 각 사용자의 고유키와 각 파티션 내에서 자신이 포함된 사용자 쌍에 대응하는 공통키를 저장한다. 이에 해당하는 키의 개수는 1 + (m -1) = m개이다.
또한, 각 사용자는 각 레벨마다 유일한 레벨 집합 원소에 포함되어 있으므로 총 (t - 1)개의 레벨 키를 저장한다.
따라서, 각 사용자의 총 키 저장량은 m + t -1이다.
도 2에 도시된 예에서 사용자 u1,1이 저장하는 레벨 키는 K(5)1, K(4)1, K(3)1 및 K(2)1로, 트리구조로 이해하면 루트 노드로부터 각 사용자에 이르는 경로상에 위치하는 모든 레벨 집합 원소의 레벨 키를 저장하는 것으로 볼 수 있다.
그룹에서 사용자가 탈퇴하는 경우, 센터는 임의로 세션 키를 결정하여 다음 세션의 그룹 키로 이용하는데, 그룹 키를 효과적으로 전송하기 위한 방법은 다음과 같다.
센터는 St = {S(t) 1, ..., S(t) w}에서 제외된 사용자를 포함하고 있는 원소를 제거하고, 그 원소를 두 개로 분할하여 St-1에 포함시킨다. 즉, S(t) i가 제외된 사용자를 포함하고 있다면, S(t) i를 St에서 제거하고, S(t) i를 구성하는 두 개의 S(t-1) 2i-1, S(t-1) 2i로 분할하여 둘 모두를 St-1에 포함시킨다. 결국, St에는 제외된 사용자를 포함하지 않는 S(t) j만이 남게 된다.
St에 대해 분할 과정을 마친 후, St-1에 제외된 사용자를 포함하는 원소가 있다면 이를 제거하고, 제거된 원소를 두 개의 t-2레벨 원소들로 분할하여 St-2에 포함시킨다.
이러한 작업을 사용자 집합 레벨까지 반복하여, S1에 제외된 사용자를 포함한 원소가 있다면 S1에서 제외시키고 각각의 사용자로 분할하여 S0에 포함시킨다.
마지막으로, S0에 포함되어 있는 제외된 사용자를 모두 제거한다.
도 3은 도 2에 도시된 예에서 사용자가 탈퇴하는 경우의 사용자 제거 과정을 나타낸 도면이다.
도 3을 참조하면, 사용자 u1 ,4, u1 ,7 및 u2 ,1이 제외되는 경우 S5 및 S3이 공집합이 되는 것을 알 수 있다.
이 때, S4 = {S(4) 2}, S2 = {S(2) 4}, S1 = {S(1) 1, S(1) 3, S(1) 6} 및 S0 = {u1 ,3, u1 ,8, u2 ,2}이다.
탈퇴한 사용자가 제거되면, 사용자 집합 레벨에서 새로운 사용자 집합이 가능한 경우에 새로운 사용자 집합이 생성된다.
즉, 사용자의 탈퇴로 인하여 변경된 S0에 동일 파티션에 포함된 두 명의 사용자 us,i, us,i가 있다면, S(1) f = {us,i, us,j}로 정의하고, K(1) f = Ks ,{i,j}로 정의한다. 단, f는 현재 S1에 포함된 다른 집합 원소들과 다른 인덱스를 부여한다. S0에서 us,i, us,j를 제거하고, S(1) f를 S1에 포함시킨다. 이러한 과정은 S0에 같은 파티션에 포함된 사용자 쌍(pair)이 없어질 때까지 반복된다.
또한, S1에서 두 개의 원소를 묶을 수 있으면, 두 개의 원소를 묶어서 S2의 원소로 만든다. 이 과정에서, 새로 생성된 레벨 키를 브로드캐스트 헤더에 포함시키는 방식 등으로 각 사용자들이 자신에게 새로 할당된 레벨 키를 계산할 수 있도록 한다.
상기한 과정은 St-1까지 반복되어 S1, ..., St-1가 모두 하나 이하의 원소를 갖게 된다.
그룹 키(세션 키)는 각 Si(0 <= i <= t)에 포함된 원소에 해당하는 레벨 키로 암호화되어 전송된다. S0의 경우 각 사용자의 고유 키가 사용된다.
도 4는 도 3에 도시된 예에서 사용자 삭제 이후의 레벨 키 업데이트 과정을 나타낸 도면이다.
도 4를 참조하면, u1 ,3 및 u1 ,8이 결합하여 K'(1) 2에 상응하는 원소가 생성된 다. 또한, K(1) 1에 상응하는 원소 및 새로 생성된 K'(1) 2에 상응하는 원소가 결합하여 K'(2) 1에 상응하는 원소가 생성된다. 또한, K(1) 3에 상응하는 원소 및 K(1) 6에 상응하는 원소가 결합하여 K'(2) 2에 상응하는 원소가 생성된다.
또한, 새로 생성된 K'(2) 1에 상응하는 원소 및 새로 생성된 K'(2) 2에 상응하는 원소가 결합하여 K'(3) 1에 상응하는 원소가 생성된다.
도 4에 도시된 예에서, 그룹 키는 K(4) 2, K'(3) 1, K(2) 4 및 u2 ,2로 암호화되어 전송된다.
이하, 그룹에 새로운 사용자가 가입하는 경우에 대해서 살펴본다.
파티션 s에 새로운 사용자 us,j가 가입하면, 기존 사용자 us,i는 자신의 고유키인 Is,i로부터 us,j와의 사용자 쌍에 대응하는 공유키를 생성한다. 이 때, 공유키 Ks ,{i,j}는 h(Is,i, Ind j)일 수 있다. 이 때, Ind j는 공개된 인덱스에 시간 정보 등의 임의로 변하는 값을 추가하여 사용한다. 이 때, us,j는 센터로부터 Ks ,{i,j}를 전송 받는다. 이후, 새로 가입한 사용자를 S0에 포함시키고 레벨 키를 생성한다.
사용자의 가입과 탈퇴가 동시에 일어나는 경우, 새로 가입한 사용자를 모두 S0에 포함시키고, 사용자 탈퇴에 따라 S0를 변경시킨다. 나머지 레벨 키 업데이트 과정은 이미 설명한 바와 같다.
도 5는 도 4에 도시된 예에서 새로운 사용자가 가입하는 경우의 레벨 키 업데이트 과정을 나타낸 도면이다.
도 5를 참조하면, 제외된 사용자의 수와 동일한 3명의 사용자(u1 ,4, u1 ,7, u2 ,1)가 가입한 것을 알 수 있다.
새로 가입한 사용자 u1 ,4 및 u1 ,7은 결합하여 K'(1) 4에 상응하는 원소를 생성한다. 또한, u2 ,2 및 새로 가입한 사용자 u2 ,1은 결합하여 K'(1) 5에 상응하는 원소를 생성한다.
또한, 새로 생성된 K'(1) 4에 상응하는 원소 및 K'(1) 5에 상응하는 원소가 결합하여 K'(2) 3에 상응하는 원소를 생성한다.
또한, 새로 생성된 K'(2) 3에 상응하는 원소 및 K(2) 4에 상하는 원소가 결합하여 K'(3) 2에 상응하는 원소를 생성한다.
또한, K'(3) 1에 상응하는 원소 및 새로 생성된 K'(3) 2에 상응하는 원소가 결합 하여 K'(4) 1에 상응하는 원소를 생성한다.
마지막으로, 새로 생성된 K'(4) 1에 상응하는 원소 및 K(4) 2에 상응하는 원소가 결합하여 최상위 레벨 집합 원소인 K'(5) 1에 상응하는 원소를 생성한다.
도 5에 도시된 예에서, 그룹 키는 레벨 5의 레벨 키(K'(5) 1)만으로 암호화되어 전송되면 된다.
결국, 본 발명의 일실시예에 따른 그룹 키 관리 방법에서 각 파티션에서, 사용자 집합 원소들 각각이 p명의 사용자로 구성되는 경우, r이 아주 작지 않을 때의 전송량은 (N - r)/p에 비례하고, r이 작은 경우의 전송량은 t에 크게 의존하여, 전체적으로 OFT의 50%정도의 전송량을 보인다. 이 때, 각 사용자의 저장량은 O(mp -1)가 된다(N은 전체 사용자 수, r은 탈퇴한 사용자 수, m은 파티션의 수).
이상에서 각각의 사용자 집합 원소들이 2명의 사용자로 구성되는 경우의 예를 중심으로 본 발명의 실시예를 설명하였으나, 본 발명의 기술사상은 사용자 집합 원소들이 2명의 사용자로 구성되는 경우에 한하지 아니한다. 이하에서 보다 상세히 설명한다.
한 파티션에 포함된 사용자의 수를 n이라 하면, 파티션 내에서 임의의 부분집합에 독립적인 공통키를 할당한다. 즉, (0 <= i <= n)인 모든 i에 대해서, n명중 i명으로 이루어진 모든 부분집합에 임의의 키를 선택하여 대응시키고, 해당 부 분집합에 포함된 사용자에게 공통키로 할당한다. 사용자 부분집합 S = {u1, u2, ..., ui}에 대응하는 키를 KS라 한다. 가능한 부분집합의 수는 2n이므로 총 2n개의 키가 할당되고, 각 사용자는 2n-1개의 키를 저장한다.
P = {u1, u2, ..., un}을 파티션내의 모든 사용자를 포함한 집합이라고 하면, KP가 파티션 전체에 대응되는 그룹 키가 된다.
사용자가 저장하는 키의 개수를 고려할 때, n은 8일 수 있다. 이 때, 사용자가 저장해야 하는 파티션 내의 키의 개수는 128개이다.
사용자 ui가 탈퇴한 경우, ui가 포함된 모든 부분집합에 대응하는 키를 제거한다. 이 때, P' = P - {ui}에 대해서 Kp'가 새로운 파티션 키가 된다.
사용자 n명이 포함된 파티션에 새로운 사용자 ui가 가입한 경우, 총 2n개의 부분집합이 새로 생성된다. 이에 대응하는 키는 다음과 같이 만들어진다.
S' = S U {ui}라 할 때, KS' = h(KS, indexi)일 수 있다. 이 때, h( , )는 일방향 함수이다.
파티션 내의 사용자들은 각각 자신이 저장하고 있는 키로부터 새로운 공통키를 생성하고, 새로 가입한 ui는 센터로부터 공통키를 전송 받는다.
이 때, P' = P U {ui}에 대해서 새로운 파티션키는 KP'이다.
레벨 키의 생성 방법은 이미 설명한 바와 같다. 다만, 각 파티션의 크기가 n인 경우 n명 이하의 사용자를 포함하는 레벨 집합 원소에 상응하는 레벨 키는 사용되지 않는다.
예를 들어, n = 8인 경우, 8명의 사용자에 대응되는 레벨 3의 레벨 키는 공통키에 해당하고, 레벨 4의 레벨 키부터 생성된다. 레벨 4의 레벨 키는 임의의 두 파티션을 선택하여 두 파티션키들로부터 생성된다.
사용자가 그룹에서 탈퇴하여 제외되는 경우, t레벨부터 시작하여 제외된 사용자가 포함된 레벨 키에 대한 갱신 작업을 수행한다. 즉, 제외된 사용자가 포함되지 않은 레벨 키는 계속 사용되고, 제외된 사용자가 포함된 레벨 키는 버려져서 두 개의 하위 레벨 키로 나눠진다. 예를 들어, n = 8인 경우, 레벨 4의 레벨 키에 제외된 사용자가 포함된 경우 레벨 키는 버려지고, 두 개의 파티션 키(공통키)로 나누어진다. 파티션키에서의 사용자 제외 과정은 앞에서 설명한 파티션내에서의 키 관리 방법을 따른다. 즉, 파티션 내에서의 사용자 제외 과정을 통해서 파티션 키가 갱신되고, 갱신된 새로운 파티션 키로부터 새로운 레벨 키가 생성된다.
새로운 사용자가 그룹에 가입하는 경우, 포화되지 않은 파티션이 존재할 경우, 새로 가입한 사용자는 포화되지 않은 파티션에 포함시킨다. 각 파티션 내에서의 키 생성과정에서는 추가적인 브로드캐스트 메시지가 필요하지 않고, 레벨 키 역시 일방향 함수를 적용하는 방법으로 갱신이 가능하므로 사용자의 가입에 추가적인 전송량은 필요하지 않다.
모든 파티션이 포화 상태인 경우에는 새로운 파티션을 생성하고, 레벨 키를 업데이트한다.
도 6은 도 1에 도시된 그룹 키 관리 방법에 따른 그룹 키 할당의 다른 예를 나타낸 도면이다.
도 6을 참조하면, 하나의 파티션은 8명의 사용자를 포함한다. 따라서, 레벨 3에 해당하는 레벨 키는 8명의 사용자로 구성된 집합에 상응하는 공통키에 해당한다.
이 때, 하나의 파티션이 8명의 사용자를 포함하므로, 레벨 3의 레벨 키는 공통키에 해당하고, 공통키를 이용하여 레벨 4의 레벨 키가 생성된다.
도 7은 및 도 8은 도 6에 도시된 예에서 그룹에 변동이 있는 경우 레벨 키 업데이트 과정을 나타낸 도면이다.
도 7을 참조하면, 파티션(710) 내의 사용자들(711, 712) 및 파티션(720) 내의 사용자(721)가 가입 또는 탈퇴를 한 경우, 먼저 가입 또는 탈퇴를 한 사용자를 포함하는 모든 파티션에 상응하는 레벨 키가 버려지는 것을 알 수 있다.
이 때, 사용자들(730)에 상응하는 레벨 키(K(4) 2) 및 사용자들(740)에 상응하는 레벨 키(K(5) 2)는 재사용된다.
도 8을 참조하면, 가입 또는 탈퇴를 한 사용자를 포함하는 모든 파티션들(810, 820)에 상응하는 레벨 키가 갱신되는 것을 알 수 있다. 이 때, 레벨 3의 레벨 키는 가입 또는 탈퇴를 한 사용자를 포함하는 파티션들(810, 820) 각각의 갱 신된 파티션 키로 갱신된다.
본 발명에 따른 그룹 키 관리 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
도 9는 본 발명의 일실시예에 따른 그룹 키 관리 장치를 나타낸 블록도이다.
도 9를 참조하면, 본 발명의 일실시예에 따른 그룹 키 관리 장치는 사용자 집합 원소 생성부(910), 레벨 키 생성부(920), 레벨 키 생성 제어부(930) 및 그룹 키 전송부(940)를 포함한다.
사용자 집합 원소 생성부(910)는 각각 둘 이상의 사용자들로 구성되고 고유한 공통키를 가지는 사용자 집합 원소들을 생성한다.
이 때, 사용자 집합 원소들은 동일한 파티션 내에서 생성될 수 있다.
레벨 키 생성부(920)는 사용자 집합 원소들 중 두 개를 선택하여 상위 레벨 집합 원소를 생성하고, 선택된 상기 사용자 집합 원소들 중 두 개 각각의 공통키들 중 어느 하나 이상을 이용하여 상기 상위 레벨 집합 원소의 레벨 키를 생성한다.
이 때, 레벨 키 생성부(920)는 상위 레벨 집합 원소를 생성한 후, 생성된 상기 상위 레벨 집합 원소를 상위 레벨 집합의 원소가 되도록 하고, 상기 상위 레벨 집합 원소에 상응하는 하위 레벨 집합 원소들을 상기 상위 레벨 집합의 하위 레벨에 속하는 하위 레벨 집합으로부터 삭제할 수 있다.
이 때, 레벨 키 생성부(920)는 상기 두 개 중 어느 하나의 공통키 및 상기 두 개 중 다른 하나의 인덱스를 입력으로 하는 일방향 함수의 출력을 이용하여 상기 상위 레벨 집합 원소의 레벨 키를 생성할 수 있다.
레벨 키 생성 제어부(930)는 기설정된 레벨까지 상기 상위 레벨 집합 원소의 레벨 키를 생성하도록 레벨 키 생성부(920)를 제어한다.
그룹 키 전송부(940)는 각각의 사용자에 대하여 상응하는 최상위 레벨 집합 원소의 레벨 키로 그룹 키를 암호화하여 전송한다.
이 때, 그룹 키 전송부(940)는 각각의 사용자에 대하여 상기 각각의 사용자가 속한 최상위 레벨 집합 원소를 선택하는 최상위 레벨 집합 원소 선택부, 및 선 택된 상기 최상위 레벨 집합 원소의 레벨 키로 상기 그룹 키를 암호화하여 전송하는 암호화 전송부를 포함할 수 있다.
각각의 사용자는 자신의 고유키, 자신을 포함하는 상기 사용자 집합 원소에 상응하는 공통키 및 상응하는 최상위 레벨 집합 원소까지의 레벨 키를 저장할 수 있다.
실시예에 따라, 도 9에 도시된 그룹 키 관리 장치는 사용자가 제외되면 제외된 사용자에 상응하는 최상위 레벨 집합 원소를 두 개의 하위 레벨 집합 원소로 분할하는 레벨 집합 분할부, 사용자 집합 레벨까지 상기 두 개의 하위 레벨 집합 원소로 분할하는 과정을 반복하도록 상기 레벨 집합 분할부를 제어하는 분할 제어부, 및 분할된 상기 사용자 집합 레벨에서 제외된 상기 사용자를 제거하는 사용자 제거부를 더 포함할 수 있다. 또한, 그룹 키 관리 장치는 상기 사용자 집합 레벨에서 새로운 사용자 집합 원소를 생성하는 제2 사용자 집합 원소 생성부, 상기 새로운 사용자 집합 원소를 포함하는 새로운 상위 레벨 집합 원소를 생성하고, 상기 새로운 상위 레벨 집합 원소에 상응하는 하위 레벨 집합 원소들 중 어느 하나 이상의 공통키를 이용하여 상기 새로운 상위 레벨 집합 원소의 레벨 키를 생성하는 제2 레벨 키 생성부, 및 상기 기설정된 레벨까지 상기 새로운 상위 레벨 집합 원소의 레벨 키를 생성하도록 상기 제2 레벨 키 생성부를 제어하는 제2 레벨 키 생성 제어부를 더 포함할 수 있다.
실시예에 따라, 그룹 키 관리 장치는 새로운 사용자가 가입하면 상기 새로운 사용자를 포함하는 새로운 사용자 집합 원소를 생성하고, 상기 새로운 사용자 집합 원소의 공유키를 설정하는 제2 사용자 집합 원소 생성부, 상기 새로운 사용자 집합 원소를 포함하는 새로운 상위 레벨 집합 원소를 생성하고, 상기 새로운 상위 레벨 집합 원소에 상응하는 하위 레벨 집합 원소들 중 어느 하나 이상의 공통키를 이용하여 상기 새로운 상위 레벨 집합 원소의 레벨 키를 생성하는 제2 레벨 키 생성부, 및 상기 기설정된 레벨까지 상기 새로운 상위 레벨 집합 원소의 레벨 키를 생성하는 단계를 반복하도록 상기 제2 레벨 키 생성부를 제어하는 제2 레벨 키 생성 제어부를 더 포함할 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
본 발명의 그룹 키 관리 방법 및 그룹 키 관리 장치는, 브로드캐스트 암호화의 장점을 살리면서 그룹 키 업데이트에 필요한 전송량을 줄일 수 있다.
또한, 본 발명은 특히 탈퇴한 사용자의 수가 작은 경우에 그룹 키 업데이트에 필요한 전송량을 획기적으로 줄일 수 있다.
또한, 본 발명은 새로운 사용자의 가입시에 새로 가입한 사용자에게 개별적으로 사용자 키를 전송하는 것만으로 그룹 키 업데이트를 수행할 수 있다.
또한, 본 발명은 각 세션 별로 트리 구조의 레벨키를 생성하고, 그룹 구성원의 가입이나 탈퇴와 무관한 사용자 집단에 대한 레벨키는 다음 세션에서 재사용하도록 하여 보다 효율적으로 그룹 키를 관리할 수 있다.

Claims (21)

  1. 각각 둘 이상의 사용자들로 구성되고 고유한 공통키를 가지는 사용자 집합 원소들을 생성하는 단계;
    상기 사용자 집합 원소들 중 두 개를 선택하여 상위 레벨 집합 원소를 생성하고, 선택된 상기 사용자 집합 원소들 중 두 개 각각의 공통키들 중 어느 하나 이상을 이용하여 상기 상위 레벨 집합 원소의 레벨 키를 생성하는 단계;
    기설정된 레벨까지 상기 상위 레벨 집합 원소의 레벨 키를 생성하는 단계를 반복하는 단계; 및
    각각의 사용자에 대하여 상응하는 최상위 레벨 집합 원소의 레벨 키로 그룹 키를 암호화하여 전송하는 단계
    를 포함하는 것을 특징으로 하는 그룹 키 관리 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 상위 레벨 집합 원소의 레벨 키를 생성하는 단계는
    상기 상위 레벨 집합 원소를 생성한 후, 생성된 상기 상위 레벨 집합 원소를 상위 레벨 집합의 원소가 되도록 하고, 상기 상위 레벨 집합 원소에 상응하는 하위 레벨 집합 원소들을 상기 상위 레벨 집합의 하위 레벨에 속하는 하위 레벨 집합으로부터 삭제하는 것을 특징으로 하는 그룹 키 관리 방법.
  4. 제1항에 있어서,
    상기 각각의 사용자는
    자신의 고유키, 자신을 포함하는 상기 사용자 집합 원소에 상응하는 공통키 및 상응하는 최상위 레벨 집합 원소까지의 레벨 키를 저장하는 것을 특징으로 하는 그룹 키 관리 방법.
  5. 제1항에 있어서,
    상기 그룹 키 관리 방법은
    사용자가 제외되면 제외된 사용자에 상응하는 최상위 레벨 집합 원소를 두 개의 하위 레벨 집합 원소로 분할하는 단계;
    상기 두 개의 하위 레벨 집합 원소로 분할하는 단계를 사용자 집합 레벨까지 반복하는 단계; 및
    분할된 상기 사용자 집합 레벨에서 제외된 상기 사용자를 제거하는 단계
    를 더 포함하는 것을 특징으로 하는 그룹 키 관리 방법.
  6. 제5항에 있어서,
    상기 그룹 키 관리 방법은
    상기 사용자 집합 레벨에서 새로운 사용자 집합 원소를 생성하는 단계;
    상기 새로운 사용자 집합 원소를 포함하는 새로운 상위 레벨 집합 원소를 생성하고, 상기 새로운 상위 레벨 집합 원소에 상응하는 하위 레벨 집합 원소들 중 어느 하나 이상의 공통키를 이용하여 상기 새로운 상위 레벨 집합 원소의 레벨 키를 생성하는 단계; 및
    상기 기설정된 레벨까지 상기 새로운 상위 레벨 집합 원소의 레벨 키를 생성하는 단계를 반복하는 단계
    를 더 포함하는 것을 특징으로 하는 그룹 키 관리 방법.
  7. 제1항에 있어서,
    상기 그룹 키 관리 방법은
    새로운 사용자가 가입하면 상기 새로운 사용자를 포함하는 새로운 사용자 집합 원소를 생성하고, 상기 새로운 사용자 집합 원소의 공유키를 설정하는 단계;
    상기 새로운 사용자 집합 원소를 포함하는 새로운 상위 레벨 집합 원소를 생성하고, 상기 새로운 상위 레벨 집합 원소에 상응하는 하위 레벨 집합 원소들 중 어느 하나 이상의 공통키를 이용하여 상기 새로운 상위 레벨 집합 원소의 레벨 키를 생성하는 단계; 및
    상기 기설정된 레벨까지 상기 새로운 상위 레벨 집합 원소의 레벨 키를 생성하는 단계를 반복하는 단계
    를 더 포함하는 것을 특징으로 하는 그룹 키 관리 방법.
  8. 제1항에 있어서,
    상기 사용자 집합 원소들은 동일한 파티션 내에서 생성되는 것을 특징으로 하는 그룹 키 관리 방법.
  9. 제1항에 있어서,
    상기 상위 레벨 집합 원소의 레벨 키를 생성하는 단계는
    상기 두 개 중 어느 하나의 공통키 및 상기 두 개 중 다른 하나의 인덱스를 입력으로 하는 일방향 함수의 출력을 이용하여 상기 상위 레벨 집합 원소의 레벨 키를 생성하는 것을 특징으로 하는 그룹 키 관리 방법.
  10. 제1항에 있어서,
    상기 최상위 레벨 집합 원소의 레벨 키로 그룹 키를 암호화하여 전송하는 단계는
    각각의 사용자에 대하여 상기 각각의 사용자가 속한 최상위 레벨 집합 원소를 선택하는 단계; 및
    선택된 상기 최상위 레벨 집합 원소의 레벨 키로 상기 그룹 키를 암호화하여 전송하는 단계
    를 포함하는 것을 특징으로 하는 그룹 키 관리 방법.
  11. 제1항 및 제3항 내지 제10항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
  12. 각각 둘 이상의 사용자들로 구성되고 고유한 공통키를 가지는 사용자 집합 원소들을 생성하는 사용자 집합 원소 생성부;
    상기 사용자 집합 원소들 중 두 개를 선택하여 상위 레벨 집합 원소를 생성하고, 선택된 상기 사용자 집합 원소들 중 두 개 각각의 공통키들 중 어느 하나 이상을 이용하여 상기 상위 레벨 집합 원소의 레벨 키를 생성하는 레벨 키 생성부;
    기설정된 레벨까지 상기 상위 레벨 집합 원소의 레벨 키를 생성하도록 상기 레벨 키 생성부를 제어하는 레벨 키 생성 제어부; 및
    각각의 사용자에 대하여 상응하는 최상위 레벨 집합 원소의 레벨 키로 그룹 키를 암호화하여 전송하는 그룹 키 전송부
    를 포함하는 것을 특징으로 하는 그룹 키 관리 장치.
  13. 삭제
  14. 제12항에 있어서,
    상기 레벨 키 생성부는
    상기 상위 레벨 집합 원소를 생성한 후, 생성된 상기 상위 레벨 집합 원소를 상위 레벨 집합의 원소가 되도록 하고, 상기 상위 레벨 집합 원소에 상응하는 하위 레벨 집합 원소들을 상기 상위 레벨 집합의 하위 레벨에 속하는 하위 레벨 집합으로부터 삭제하는 것을 특징으로 하는 그룹 키 관리 장치.
  15. 제12항에 있어서,
    상기 각각의 사용자는
    자신의 고유키, 자신을 포함하는 상기 사용자 집합 원소에 상응하는 공통키 및 상응하는 최상위 레벨 집합 원소까지의 레벨 키를 저장하는 것을 특징으로 하는 그룹 키 관리 장치.
  16. 제12항에 있어서,
    상기 그룹 키 관리 장치는
    사용자가 제외되면 제외된 사용자에 상응하는 최상위 레벨 집합 원소를 두 개의 하위 레벨 집합 원소로 분할하는 레벨 집합 분할부;
    사용자 집합 레벨까지 상기 두 개의 하위 레벨 집합 원소로 분할하는 과정을 반복하도록 상기 레벨 집합 분할부를 제어하는 분할 제어부; 및
    분할된 상기 사용자 집합 레벨에서 제외된 상기 사용자를 제거하는 사용자 제거부
    를 더 포함하는 것을 특징으로 하는 그룹 키 관리 장치.
  17. 제16항에 있어서,
    상기 그룹 키 관리 장치는
    상기 사용자 집합 레벨에서 새로운 사용자 집합 원소를 생성하는 제2 사용자 집합 원소 생성부;
    상기 새로운 사용자 집합 원소를 포함하는 새로운 상위 레벨 집합 원소를 생성하고, 상기 새로운 상위 레벨 집합 원소에 상응하는 하위 레벨 집합 원소들 중 어느 하나 이상의 공통키를 이용하여 상기 새로운 상위 레벨 집합 원소의 레벨 키를 생성하는 제2 레벨 키 생성부; 및
    상기 기설정된 레벨까지 상기 새로운 상위 레벨 집합 원소의 레벨 키를 생성하도록 상기 제2 레벨 키 생성부를 제어하는 제2 레벨 키 생성 제어부
    를 더 포함하는 것을 특징으로 하는 그룹 키 관리 장치.
  18. 제12항에 있어서,
    상기 그룹 키 관리 장치는
    새로운 사용자가 가입하면 상기 새로운 사용자를 포함하는 새로운 사용자 집합 원소를 생성하고, 상기 새로운 사용자 집합 원소의 공유키를 설정하는 제2 사용자 집합 원소 생성부;
    상기 새로운 사용자 집합 원소를 포함하는 새로운 상위 레벨 집합 원소를 생성하고, 상기 새로운 상위 레벨 집합 원소에 상응하는 하위 레벨 집합 원소들 중 어느 하나 이상의 공통키를 이용하여 상기 새로운 상위 레벨 집합 원소의 레벨 키를 생성하는 제2 레벨 키 생성부; 및
    상기 기설정된 레벨까지 상기 새로운 상위 레벨 집합 원소의 레벨 키를 생성하는 단계를 반복하도록 상기 제2 레벨 키 생성부를 제어하는 제2 레벨 키 생성 제어부
    를 더 포함하는 것을 특징으로 하는 그룹 키 관리 장치.
  19. 제12항에 있어서,
    상기 사용자 집합 원소들은 동일한 파티션 내에서 생성되는 것을 특징으로 하는 그룹 키 관리 장치.
  20. 제12항에 있어서,
    상기 레벨 키 생성부는
    상기 두 개 중 어느 하나의 공통키 및 상기 두 개 중 다른 하나의 인덱스를 입력으로 하는 일방향 함수의 출력을 이용하여 상기 상위 레벨 집합 원소의 레벨 키를 생성하는 것을 특징으로 하는 그룹 키 관리 장치.
  21. 제12항에 있어서,
    상기 그룹 키 전송부는
    각각의 사용자에 대하여 상기 각각의 사용자가 속한 최상위 레벨 집합 원소를 선택하는 최상위 레벨 집합 원소 선택부; 및
    선택된 상기 최상위 레벨 집합 원소의 레벨 키로 상기 그룹 키를 암호화하여 전송하는 암호화 전송부
    를 포함하는 것을 특징으로 하는 그룹 키 관리 장치.
KR1020070011277A 2007-02-02 2007-02-02 그룹 키 관리 방법 및 이를 이용한 그룹 키 관리 장치 KR101321401B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070011277A KR101321401B1 (ko) 2007-02-02 2007-02-02 그룹 키 관리 방법 및 이를 이용한 그룹 키 관리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070011277A KR101321401B1 (ko) 2007-02-02 2007-02-02 그룹 키 관리 방법 및 이를 이용한 그룹 키 관리 장치

Publications (2)

Publication Number Publication Date
KR20080072463A KR20080072463A (ko) 2008-08-06
KR101321401B1 true KR101321401B1 (ko) 2013-10-25

Family

ID=39882782

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070011277A KR101321401B1 (ko) 2007-02-02 2007-02-02 그룹 키 관리 방법 및 이를 이용한 그룹 키 관리 장치

Country Status (1)

Country Link
KR (1) KR101321401B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001527349A (ja) 1996-11-28 2001-12-25 ドイッチェ テレコム アーゲー キー階層により保護されたシステムを安全保護する方法
KR20020026284A (ko) * 2000-04-06 2002-04-09 이데이 노부유끼 정보 처리 시스템, 정보 처리 방법 및 정보 기록 매체와프로그램 제공 매체
US20050018853A1 (en) 2003-04-08 2005-01-27 Antonio Lain Cryptographic key update management method and apparatus
KR20060106330A (ko) * 2005-03-31 2006-10-12 재단법인서울대학교산학협력재단 브로드캐스트 암호화에서 전송량을 감소시킬 있는 키생성방법, 이를 이용한 암호화 및 복호화 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001527349A (ja) 1996-11-28 2001-12-25 ドイッチェ テレコム アーゲー キー階層により保護されたシステムを安全保護する方法
KR20020026284A (ko) * 2000-04-06 2002-04-09 이데이 노부유끼 정보 처리 시스템, 정보 처리 방법 및 정보 기록 매체와프로그램 제공 매체
US20050018853A1 (en) 2003-04-08 2005-01-27 Antonio Lain Cryptographic key update management method and apparatus
KR20060106330A (ko) * 2005-03-31 2006-10-12 재단법인서울대학교산학협력재단 브로드캐스트 암호화에서 전송량을 감소시킬 있는 키생성방법, 이를 이용한 암호화 및 복호화 방법

Also Published As

Publication number Publication date
KR20080072463A (ko) 2008-08-06

Similar Documents

Publication Publication Date Title
Yu et al. Assured data deletion with fine-grained access control for fog-based industrial applications
Takayasu et al. Lattice-based revocable identity-based encryption with bounded decryption key exposure resistance
Mao et al. JET: Dynamic join-exit-tree amortization and scheduling for contributory key management
Zhou et al. Privacy-preserved access control for cloud computing
Zewail et al. Device-to-device secure coded caching
WO2006025589A1 (en) Information encryption apparatus and controlling method of the same, computer program and computer readable storage medium
CN106850224A (zh) 一种私钥定长的密文策略属性基加密方法
JP2006203824A (ja) 暗号鍵生成装置、暗号鍵生成方法、暗号化データ配信装置、個別暗号鍵再生成装置、暗号化データ受信装置、暗号化データ配信システム、暗号鍵生成プログラム、および記録媒体
Hur et al. Removing escrow from ciphertext policy attribute-based encryption
CN106850216B (zh) 一种云数据库中密钥管理树的密钥撤销方法
CN104618090B (zh) 一种适用于异构传感器网络的组密钥管理方法
Jiang et al. Online/offline ciphertext retrieval on resource constrained devices
JP6029936B2 (ja) 通信制御装置、通信装置およびプログラム
Ambika et al. A novel RSA algorithm for secured key transmission in a centralized cloud environment
Bienstock et al. On the worst-case inefficiency of CGKA
JP4654371B2 (ja) 非集中型鍵管理方式を用いた通信方法及び通信システム
Kalai et al. Network extractor protocols
KR101321401B1 (ko) 그룹 키 관리 방법 및 이를 이용한 그룹 키 관리 장치
HU223920B1 (hu) Eljárás közös kriptográfiai kulcs létrehozására n felhasználó számára
KR101951545B1 (ko) 와일드 카드를 포함하는 키 발급, 암호화 및 복호화 방법
González Nieto et al. Forward-secure hierarchical predicate encryption
JP2001186119A (ja) 木構造を用いた鍵管理方法および鍵管理装置並びに記録媒体
CN114697002A (zh) 一种分布式量子密码网络组密钥分发方法及系统
Alyani et al. The improvement of key management based on logical key hierarchy by implementing Diffie Hellman algorithm
CN108521329A (zh) 雾系统中的动态安全信道建立方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160921

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170918

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180917

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190910

Year of fee payment: 7