KR20060095077A - 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법 - Google Patents

계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법 Download PDF

Info

Publication number
KR20060095077A
KR20060095077A KR1020050015967A KR20050015967A KR20060095077A KR 20060095077 A KR20060095077 A KR 20060095077A KR 1020050015967 A KR1020050015967 A KR 1020050015967A KR 20050015967 A KR20050015967 A KR 20050015967A KR 20060095077 A KR20060095077 A KR 20060095077A
Authority
KR
South Korea
Prior art keywords
key
tree
node
user
broadcast
Prior art date
Application number
KR1020050015967A
Other languages
English (en)
Other versions
KR100737876B1 (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 KR1020050015967A priority Critical patent/KR100737876B1/ko
Priority to US11/340,614 priority patent/US8005225B2/en
Publication of KR20060095077A publication Critical patent/KR20060095077A/ko
Application granted granted Critical
Publication of KR100737876B1 publication Critical patent/KR100737876B1/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • 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/0822Key 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) using key encryption key
    • 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/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/601Broadcast encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법이 개시된다. 본 발명에 따른 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법은 서버의 초기화 및 사용자 가입을 위한 제1 단계, 합법적인 사용자가 그룹키를 복호화할 수 있도록 메시지를 분배하는 제2 단계 및 합법적인 사용자가 그룹키를 이용하여 메시지를 복호화하는 제3 단계를 포함한다. 본 발명에 의하면, 탈퇴자들의 임의의 그룹이 각각의 비밀정보 및 서버에 의해 브로드캐스트되는 정보를 이용하여 그룹키를 얻는 것을 방지할 수 있다.
그룹키, 트리, 브로드캐스트 암호화, 서브 그룹

Description

계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법{The hierarchial threshold tree-based broadcast encryption method}
도 1은 일반적인 브로드캐스트 전송 시스템을 나타낸 도면,
도 2는 본 발명에 따른 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법의 설명에 제공되는 흐름도,
도 3은 도 2의 S220 단계(셋업 단계)를 상세히 나타낸 흐름도,
도 4는 도 2의 S240 단계(메시지 브로드캐스트 단계)를 상세히 나타낸 흐름도,
도 5는 도 2의 S260 단계(메시지 복호화 단계)를 상세히 나타낸 흐름도,
도 6은 │N│= n = 26, w = 22 일 때, 생성되는 서브 그룹 Sl , j 의 형태를 도시한 도면,
도 7은 도 6에 도시된 사용자 U21이 저장하게 되는 키의 형태를 도시한 도면,
도 8은 탈퇴자들의 집합 R이 {U21, U36, U123, U124 , U125}인 경우에 구성되는 Steiner Tree를 도시한 도면, 그리고
도 9는 탈퇴자의 수에 따른 메시지 전송량을 도시한 도면이다.
본 발명은 브로드캐스트 암호화 방법에 관한 것으로, 보다 상세하게는 (t,n) -threshold 기법을 계층적으로 사용하여 브로드캐스트 전송 시스템의 성능을 향상시키고 탈퇴자들의 공모 공격을 방지하는 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법에 관한 것이다.
일반적으로 암호 시스템은 암호화 키의 관리 형태에 따라 대칭키(또는 비밀키라고도 함)암호 시스템과 비대칭키(또는 공개키라고도 함) 암호 시스템으로 구분된다. 대칭키 암호 시스템은 공개키 암호 시스템이 나오기 전에 주로 사용되던 암호 방식으로, 암호화와 복호화에 동일한 키를 사용하는 방식이다. 예를 들면, 송신자는 전송하고자 하는 평문 메시지를 암호화 키와 암호 알고리즘을 통해 암호문으로 변환시켜 수신자에게 전송하면, 수신자는 동일한 키를 복호 알고리즘에 사용해서 원래의 평문으로 만든다.
이때 수신자는 암호화 통신을 하기 전에 안전하게 키를 교환하여야 하며, 암호 통신을 도청하려는 제3자는 송신자와 수신자가 사용한 키가 없으면 원래의 평문을 알 수 없다. 그러나, 키 관리의 문제와 암호화 하고자 하는 상대방이 많으면 그에 따라 관리해야 하는 키의 수도 증가하게 되므로 키 관리 및 교환에 문제가 생긴다.
이에 비하여 비대칭키 암호화 시스템은 수학적 함수를 기반으로 하며, 대칭 키 암호 시스템과 달리 한 쌍의 키가 존재하여 하나의 키는 누구든지 사용할 수 있도록 공개하고 다른 하나는 자신만이 비밀스럽게 보관하는 방식이다. 이때, 공개하는 키를 공개키(public key)라고 하며 비밀스럽게 보관하는 키를 개인키(private key)라고 한다.
공개키를 이용해서 송신자와 수신자가 암호 통신을 하기 위해서, 먼저 송신자는 수신자의 공개키로 메시지를 암호화하여 전송하고, 수신자는 자신의 개인키로 암호문을 복호화하여 평문을 얻는다. 네트워크 상에서 누군가 암호문을 얻더라도 개인키 없이는 암호문을 복호화할 수 없으므로 안전하게 데이터를 전송할 수 있다. 왜냐하면, 개인키는 언제나 소유자만이 보관하고 있으며, 전송되거나 다른 사람에게 알려질 필요가 없기 때문이다
한편, 대칭키(symmetric cipher)는 브로드캐스트(broadcast)된 스트림(stream)을 암호화/복호화(encryption/decryption) 하는데 많이 사용된다. 왜냐하면 대칭키를 사용한 암호화/복호화는 매우 빠르게 수행될 수 있고, 대칭키는 제한적 사용자에 대한 인증을 거친 사용자만이 접근할 수 있는 제한적 액세스 시스템을 통해서 안전하게 전송될 수 있기 때문이다.
일반적인 브로드캐스트 암호화에 의한 데이터 전송 시스템에서 컨텐츠 생산자는 오디오 또는 비디오 데이터를 비롯한 각종 유용한 데이터를 생산하며, 생산된 데이터를 서비스 제공자에게 제공한다. 서비스 제공자는 컨텐츠 생산자로부터 제공받은 데이터를 각종 유무선 통신 네트워크를 통해 해당 데이터에 대한 비용을 지불한 정당한 사용자들(예컨대, 모바일 DRM(Digital Right Management) 네트워크, 스 마트홈 DRM 네트워크)에게 브로드캐스팅(broadcasting)하게 된다.
도 1은 일반적인 브로드캐스트 전송 시스템을 나타낸 도면이다. 상기 도 1을 참조하면, 서비스 제공자(100)는 브로드캐스트 메시지(110)를 생성하여 각종 전송 채널(120)에 의해 각 사용자들에게 전송한다. 이때, 상기 브로드캐스트 메시지는 인가된 사용자들(privileged users; 130) 뿐만 아니라 페기된 사용자들(Revoked users; 140)에게도 전송된다. 따라서, 상기 서비스 제공자(100)는 인가된 사용자만이 상기 전송된 브로드캐스트 메시지를 열람할 수 있도록 별도의 키를 할당하여 상기 브로드캐스트 메시지를 암호화하게 된다. 따라서, 이때 상기 인가된 사용자(130)들만이 복호화할 수 있도록 소정의 그룹키를 생성하는 방법은 브로드캐스트 시스템에서 중요한 이슈가 되고 있다.
예컨대, 서비스 제공자는 위성을 통해 각종 위성 수신기가 구비된 셋톱박스 (set-top box)와 같은 사용자들의 장치로 데이터를 전송할 수 있으며, 이동통신 망을 통해 이동통신 단말기로도 전송할 수 있다. 또한, 인터넷 네트워크를 통해 스마트 홈 네트워크의 각종 단말기들로 전송할 수 있다.
한편, 이때 해당 데이터에 대한 정당한 비용을 지불하지 않은 불법 사용자가 데이터를 이용하지 못하도록 하기 위하여 브로드캐스트 암호화(Broadcast Encryption; BE)에 의해 데이터를 암호화하게 된다.
이러한 암호화 및 복호화 시스템에서의 안전성은 대개 암호화 키를 관리하는 시스템에 달려있다. 그리고 이러한 암호화 키 관리 시스템에서 가장 중요한 것은 암호화 키를 어떻게 생성(Key Derivation)하는 가이다. 아울러, 생성된 암호화 키 를 관리(Key Management)하고, 갱신(Key Update)하는 것 또한 중요하다.
한편, 공개키 방식에 의한 데이터 전송 방법은 데이터를 전송할 때 각 정당한 사용자들에 대한 키 값을 포함하여 전송하는 방법이다. 즉, 서비스 제공자가 브로드캐스트/홈 네트워크를 통해 전송하는 데이터는 인증 정보가 포함된 헤더 부분과, 실제 데이터 정보가 포함된 암호화된 데이터 부분으로 구성된다. 이때, 헤더 부분에는 복수의 사용자들 중에서 인가된 그룹의 사용자들에게만 데이터가 전송될 수 있도록 그룹 ID와 각 인가된 그룹에 포함된 인가된 사용자들의 키 값 정보들이 포함된다. 따라서, 서비스 제공자로부터 인증서 폐지 목록(CRL)과 온라인 상태 확인 프로토콜(OCSP) 정보를 포함하는 CRL/OCSP에 의해 데이터가 암호화되어 전송되면, 데이터를 수신하는 사용자는 데이터의 헤더 부분에 포함된 자신의 키 값 정보를 확인하고 정상적으로 인증을 받은 후 해당 데이터를 이용할 수가 있게 된다.
한편, 브로드캐스트 암호화(BE) 방식은 헤더 부분에 그룹 ID와 해당 그룹에 대한 키 값 정보만을 포함하게 된다. 따라서, 인가된 그룹의 정당한 사용자들은 자신이 가지고 있는 그룹키 값을 이용하여 수신된 데이터를 정상적으로 복호할 수가 있게 된다.
암호를 브로드캐스트 하는 기타 방법들에는 'Broadcast Encryption' (Fiat 등이 지음, Crypto '93, LINCS vol. 839, pp 480-491, 1994)(이하, 'Fiat 알고리즘'라 한다.)에 개시된 방법들이 있다. 상기 방법은 두 가지 기본적인 브로드캐스트 암호화 알고리즘과 공모 공격(collusion attack) 대한 안전성을 높인 알고리즘을 제안한다.
이하, 상기 Fiat 알고리즘에 대해 간략히 설명하기로 한다. 상기 Fiat 알고리즘의 설명을 위해 먼저 다음과 같은 계수들이 정의된다.
- U : Set of users with |U| = n
- P : Set of privileged users with |U-P| = r
- N : RSA composite
- y1, ..., yn : Distinct primes
- usri : An user in U where 1≤i≤n
- O : A positive integer satisfying 1<O<N
상기 Fiat 알고리즘은 시스템 초기 설정 단계에서 서버로 하여금 상기 정의된 계수들 중 시스템 계수인 N, y1,..., yn, O를 생성하도록 하며, 상기 시스템 계수들 중에서 N, y1,..., yn을 누구나 열람할 수 있도록 공개한다. 또한, 사용자 usri가 서비스에 가입하면 서버는 다음과 같은 작업을 수행한다.
1. 상기 사용자 usri에게 yi 값을 할당한다.
2. 상기 사용자 usri의 비밀 정보인
Figure 112005010225414-PAT00001
을 계산한다.
3. 상기 계산된 비밀 정보를 상기 사용자 usri에게 안전하게 전달한다.
상기 작업을 통해 초기 설정 및 사용자 가입 절차가 완료된다. 이제 합법적 사용자(privileged user) 그룹 P⊂U가 주어지면, 각 사용자를 위한 그룹키(group key) KP는 하기 <수학식 1>과 같이 설정된다.
Figure 112005010225414-PAT00002
이때, 상기 P에 포함되는 각 사용자들은 상기 서버로부터 부여받은 ui 값을 이용하여 하기 <수학식 2>에 의해 상기 <수학식 1>의 그룹키 KP를 산출할 수가 있게 된다.
Figure 112005010225414-PAT00003
이때, 정상적인 가입자가 아닌 불법 가입자 또는 탈퇴자(revocator)는 상기 KP의 지수부(exponent)에 포함되지 않은 소수 yi를 ui의 지수부에 가지고 있으므로 이를 지수부에서 제거해야만 상기 그룹키 KP를 산출할 수가 있게 된다. 그러나, 이는 'N의 소인수분해가 어렵다'는 문제로 인해 실제적으로 계산이 불가능하게 된다. 따라서, 상술한 방법에 의해 정당한 사용자에 대한 브로드캐스트 암호화가 가능하게 된다.
그러나, 상술한 Fiat 알고리즘은 사용자 두 명, 예컨대 usri 및 usrj가 서로의 비밀 정보를 공유하게 되면 안전성에 심각한 문제가 발생하게 된다. 즉, yi와 yj 는 서로소이기 때문에 ayi + byj = 1을 만족하는 정수 a 및 b를 용이하게 구할 수가 있게 된다. 그러면, 하기 <수학식 3>에 의해 상기 두 사용자는 시스템의 비밀 정보인 O 값을 구할 수가 있게 된다.
Figure 112005010225414-PAT00004
따라서, 상기 O값에 의해 불법 사용자가 모든 경우의 그룹키 KP를 구할 수가 있게 된다. 즉, 상기 기본적인 두 알고리즘은 악의적인 사용자 2명이 공모하면 컨텐츠를 브로드캐스트하는 서버의 비밀 정보가 유출되어 시스템은 더 이상 안전하지 않게 된다. 이와 같이 한 명의 공격자에게는 안전하지만 2명 이상의 공모 공격에 안전하지 않은 시스템은 '1-resilient 시스템'이라 한다. 한편, 상기 Fiat는 상기 1-resilient 시스템에 기반하여 k-resilient 시스템을 제안하였지만, 매우 비효율적이라는 문제점이 있다
상기 k-resilient 방법은 수신기들(최대 't'개의 수신기들)이 서로 공모하는(collude) 한 임의의 개수의 수신기들을 제거하는 것이다. 그러나, 상기 방법은 상대적으로 긴 메시지 길이를 필요로 하고, 상대적으로 많은 수의 키들이 수신기에 저장되어야 하고, 각각의 수신기들이 한번 이상의 암호해독 동작을 수행하여야 한다. 더욱이, 상기 방법은 상태 비-유지 수신기 시나리오를 고려하지 않는다. 얼마나 많은 수신기들이 공모할지에 대한 가정을 추측하는 것을 피할 필요성이 있다. 또한, 메시지 크기 및 저장된 키의 개수를 최소화하여야 하며, 수신기에 의해 수행 되어야 할 암호해독 동작도 성능 최적화를 위해 최소화되어야 한다.
한편, 상기 Fiat의 시스템과 같이 다른 암호시스템은 상태 비-유지 수신기 시나리오를 제공하지 않으며, 따라서, 기록 매체내의 컨텐츠 보호에 효과적으로 적용될 수 없다는 문제점이 있다.
따라서, 본 발명의 목적은 기존의 브로드캐스트 암호화 방법에 비하여 공모 공격에 안전하고, 전송부담/저장부담/연산부담 등을 줄일 수 있는 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법을 제공하기 위함이다.
상기 목적을 달성하기 위한 본 발명에 따른 서버의 초기화 및 사용자 가입을 위한 제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는, 사용자에게 어느 노드키로 상기 그룹키를 복호화해야 되는지를 알려주기 위한 정보인 것이 바람직하다.
먼저, 본 발명에 따른 계층적 문턱 트리에 기반한 브로드캐스트 암호화방법의 설명에 필요한 계수들을 다음과 같이 정리한다.
Figure 112005010225414-PAT00005
: 모든 사용자들의 집합, N의 크기는 │N│= n = 2a
Figure 112005010225414-PAT00006
: 탈퇴자 그룹, R의 크기는 │R│= r이며, R은 N의 부분 집합이다.
Figure 112005010225414-PAT00007
: 트리의 노드 i의 identifier
Figure 112005010225414-PAT00008
: 완전 w-ary 트리를 가정한다.
Figure 112005010225414-PAT00009
: 트리의 깊이, h = logwn
Figure 112005010225414-PAT00010
: 트리의 레벨값으로 레벨은 루트를 시작점으로 한다. 즉, 루트의 레벨은 0 이다.
Figure 112005010225414-PAT00011
: 레벨 l에 해당하는 j번째 서브 그룹, Sl ,j의 id를 sl ,j로 표기한다.
Figure 112005010225414-PAT00012
: 레벨 l에 대응하는 다항식으로서 차수가 d이고 j번째 서브 그룹에 대응됨.
Figure 112005010225414-PAT00013
: 노드 Ni에 대응되는 노드키.
Figure 112005010225414-PAT00014
: 그룹키
Figure 112005010225414-PAT00015
: 메시지 M과 그룹키(sk)를 암호화하기 위해 사용. FK는 속도가 빨라야 하고 암호화로 인해 입력값의 길이를 확장시켜서는 안된다. 간단한 구현방법으로 데이터와 키 K로 XOR을 하는 방법이 있다.
Figure 112005010225414-PAT00016
: FK의 복호화 함수.
Figure 112005010225414-PAT00017
: collision-resistance 일방향 해쉬함수.
Figure 112005010225414-PAT00018
: 서버가 전송하는 브로드캐스트 메시지. MB는 크게 세 부분으로 구분된다. 첫 번째 부분인
Figure 112005010225414-PAT00019
는 (t,n)-threshold 기법에서 다항식의 비밀값
Figure 112005010225414-PAT00020
를 복구하기 위해서 사용되는 쉐어값을 의미한다.
Figure 112005010225414-PAT00021
는 구성원이 가지고 있는 쉐어값들 중에 어떤 쉐어값으로 비밀값을 복원해야되는지를 알려주 기 위한 identifier이다. 전송되는 sharei의 개수는 m이라 가정한다. 그리고,
Figure 112005010225414-PAT00022
는 (t,n) threshold 기법의 다항식들의 각 비밀값 fi(0)로 그룹키를 암호화한 암호문을 나타낸다. 비밀값 fi(0)을 복원한 구성원들만이 암호문
Figure 112005010225414-PAT00023
로부터 그룹키를 복호화할 수 있다. 두 번째 부분인
Figure 112005010225414-PAT00024
는 그룹키를 노드키로 암호화한 암호문을 나타내고, 전송되는 암호문의 개수는 k로 가정한다.
Figure 112005010225414-PAT00025
는 구성원에게 어떤 노드키로 복호화해야 되는지를 알려주기 위한 노드키 Ki의 identifier이다. 세 번째 부분은 그룹키로 메시지 M을 암호화한 부분이다.
이하에서는 첨부도면을 참조하여 본 발명에 대해 설명한다.
도 2는 본 발명에 따른 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법의 설명에 제공되는 흐름도이다.
본 발명에 따른 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법은 서버의 초기화 및 사용자 가입을 위한 셋업단계(S220), 합법적인 사용자가 그룹키를 복호화할 수 있도록 메시지를 분배하는 브로드캐스트 단계(S240), 및 합법적인 사용자가 그룹키를 이용하여 메시지를 복호화하는 단계(S260)로 이루어진다.
먼저, 서버의 초기화 및 사용자 가입을 위한 셋업 단계에 대해 도면을 참조하여 설명한다. 도 3은 도 2의 S220 단계(셋업 단계)를 상세히 나타낸 흐름도이다.
셋업 단계에서 모든 사용자에 대응되는 키 구조는 완전 w-ary 트리 구조를 가지며, 레벨 0(루트)을 제외한 각 레벨의 모든 노드들은 w개의 노드를 가지는 서브 그룹 Sl ,j들로 구분되는 것으로 가정한다.
먼저, 서버는 루트를 제외한 트리의 각 노드에 대응되는 노드키
Figure 112005010225414-PAT00026
을 랜덤하게 생성한다(S310). 그리고, 각 레벨 l(1≤l≤h)의 모든 서브 그룹
Figure 112005010225414-PAT00027
에 대응되는 차수가 d차(1≤d≤w/2)인 랜덤 다항식
Figure 112005010225414-PAT00028
을 각 서브 그룹 별로 생성한다(S320).
서버는 각 서브 그룹 별로 생성된 d차 다항식에 노드 i의 identifier를 대입하여, 랜덤한 d차 다항식의 비밀값을 복원하기 위한 쉐어(share)값인
Figure 112005010225414-PAT00029
를 생성한다(S330).
이어서, 서버는 생성된 노드키와 쉐어값인
Figure 112005010225414-PAT00030
를 보안 채널을 통하여 사용자 Ui에게 전송한다(S340).
각 사용자 Ui는 두 가지 형태의 키 값을 비밀키로 저장하게 된다. 첫 번째 형태의 비밀키는 레벨 1부터 h 레벨의 리프(leaf) 노드에까지 해당하는 h개의 노드키
Figure 112005010225414-PAT00031
이다.
사용자가 저장하는 두 번째 형태의 비밀키는 h×(w/2) 개의 쉐어값
Figure 112005010225414-PAT00032
이다.
Figure 112005010225414-PAT00033
는 Shamir의 threshold 방법을 이용해서 다항식의 비밀값을 복원하기 위해서 사용되는 쉐어값이다. 최종적으로 다항식의 비밀값을 이용해서 그룹키를 산출할 수 있기 때문에 사용자는 이러한 쉐어값을 저장해야 한다.
이와 같은 방식으로 셋업 단계(S220)가 수행되면, 서버는 그룹키(sk)와 메시지(M)를 합법적인 사용자들에게 브로드캐스팅하기 위한 브로드캐스트 단계(S240)를 다음과 같은 과정을 통해 수행한다.
도 4는 도 2의 S240 단계를 상세히 나타낸 흐름도이다. 도 4를 참조하면, 먼저, 서버는 그룹키(sk)를 생성한다(S410). 이어서, 탈퇴자들의 집합 R이 주어졌을 때, 탈퇴자들의 집합 R에 속해있는 구성원들에 대응되는 노드를 모두 연결하여 Steiner Tree, ST(R)를 구성한다(S420). ST(R)이 구성되면, 서버는 트리의 각 레벨에 속하는 모든 서브 그룹
Figure 112005010225414-PAT00034
에 대하여 다음과 같은 과정을 수행한다.
먼저, 각 서브 그룹
Figure 112005010225414-PAT00035
내에서 ST(R)에 속하는 노드의 개수
Figure 112005010225414-PAT00036
를 산출한다(S430).
산출된 ST(R)에 속하는 노드의 개수 Il ,j가 만약 1≤ Il ,j≤w/2 를 만족하면(S440), 각 서브 그룹
Figure 112005010225414-PAT00037
에 대응되는 d차 다항식의 비밀값
Figure 112005010225414-PAT00038
으로 그룹키(sk)를 암호화하여 제1 암호문
Figure 112005010225414-PAT00039
을 생성한다(S450). 이 때, 제1 암호문
Figure 112005010225414-PAT00040
은 아래의 수학식과 같다.
Figure 112005010225414-PAT00041
이어서, 서버는 각 서브 그룹에 대응되는 공유키
Figure 112005010225414-PAT00042
및 제1 암호문
Figure 112005010225414-PAT00043
을 브로드캐스트 메시지(MB)의 첫 번째 영역
Figure 112005010225414-PAT00044
에 추가한다(S460). 여기서,
Figure 112005010225414-PAT00045
는 구성원이 가지고 있는 쉐어값들 중에 어떤 쉐어값으로 비밀값을 복원해야되는지를 알려주기 위한 identifier로서,
Figure 112005010225414-PAT00046
로 표현된다.
한편, 산출된 ST(R)에 속하는 노드의 개수 Il ,j가 만약 Il ,j > w/2를 만족하면(S470), Il ,j > w/2 를 만족하는 모든 서브 그룹
Figure 112005010225414-PAT00047
에 대하여 ST(R)에 포함되지 않는 노드를 찾고, 그 노드에 대응되는 노드키로 그룹키(sk)를 암호화하여 제2 암 호문
Figure 112005010225414-PAT00048
을 생성한다(S480). 이어서, 서버는 생성된 제2 암호문
Figure 112005010225414-PAT00049
을 브로드캐스트 메시지(MB)의 두 번째 부분
Figure 112005010225414-PAT00050
에 추가한다(S490). 여기서,
Figure 112005010225414-PAT00051
는 구성원에게 어떤 노드키로 복호화해야 되는지를 알려주기 위한 노드키 Ki의 identifier로서,
Figure 112005010225414-PAT00052
로 표현된다.
그 후, 서버는 메시지(M)를 전송하기 위해서 그룹키(sk)로 메시지(M)를 암호화해서 제3 암호문
Figure 112005010225414-PAT00053
을 생성한다(S492).
서버는 상술한 방식으로 최종적으로 생성된 브로드캐스트 메시지(MB)를 사용자들에게 브로드캐스트하며, 이에 의해 메시지 브로드캐스트 단계가 완료된다(S494).
마지막으로, 메시지 복호화 단계인 제3 단계가 수행된다. 각 사용자 Ui는 브로드캐스트 메시지(MB)를 서버로부터 전송받은 후, 다음과 같은 과정을 통해서 그룹키(sk)를 얻은 후에 메시지 MB를 복호화한다.
도 5는 도 2의 S260 단계를 상세히 나타낸 흐름도이다. 도 5를 참조하면, 먼저, 탈퇴자 그룹 R에 속하지 않는 합법적인 사용자 Ui는 브로드캐스트 메시지에 자 신이 가지고 있는 비밀키에 대응되는 정보가 있는지 검색한다(S510).
먼저, 브로드캐스트 메시지의 첫 번째 부분인
Figure 112005010225414-PAT00054
에 자신이 보유하는 쉐어값에 대응되는 공유 아이디가 존재하는지 확인한다(S520). 확인결과, 공유 아이디가 존재하면(S530:Y), 대응되는 쉐어값과 자신의 쉐어값을 사용해서 라그랑지(Lagrange) 교항 다항식을 이용하여 해당 다항식의 비밀값을 복구한다(S540).
해당 다항식의 비밀값이 복구되면, 복구된 비밀값을 이용해서, 제1 암호문
Figure 112005010225414-PAT00055
로부터 그룹키(sk)를 복호한다(S550).
한편, 브로드캐스트 메시지의 첫 번째 부분인
Figure 112005010225414-PAT00056
에 자신이 보유한 쉐어값에 대응되는 공유 아이디가 존재하지 않으면(S530:N), 브로드캐스트 메시지의 두 번째 부분
Figure 112005010225414-PAT00057
에서 대응되는 노드 아이디를 검색한다(S560). 이어서, 검색된 노드에 대응되는 노드키로 그룹키(sk)를 복호한다(S570).
마지막으로 복호화된 그룹키를 이용하여 브로드캐스트 메시지(M)을 산출한다(S580). 즉,
Figure 112005010225414-PAT00058
로부터 브로드캐스트 메시지 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들로 구분된다.
서버는 루트를 제외한 트리의 각 노드에 대응하는 노드키
Figure 112005010225414-PAT00059
를 랜덤하게 생성한다. 그리고 각 레벨 l(1≤l≤3)마다 서브 그룹
Figure 112005010225414-PAT00060
에 차수 d가 1차와 2차인 h×(w/2) = 3×2 = 6개의 랜덤 다항식
Figure 112005010225414-PAT00061
을 생성한다.
이어서, 서버는 생성된 6개의 랜덤 다항식에 노드 i의 identifier를 대입하여 다항식의 비밀값을 복원하기 위한 쉐어값
Figure 112005010225414-PAT00062
를 생성한다. 그 후, 서버는 노드키
Figure 112005010225414-PAT00063
및 생성된 쉐어값
Figure 112005010225414-PAT00064
을 보안 채널(secure channel)을 통하여 사용자 Ui에게 전송한다. 여기서,
Figure 112005010225414-PAT00065
은 (t,n)-threshold 기법의 쉐어값이다.
각 사용자 Ui는 첫 번째 형태의 비밀키로 레벨 1부터 레벨 3의 노드까지에 해당하는 3개의 노드키
Figure 112005010225414-PAT00066
및 두 번째 형태의 비밀키로서 h×(w/2)개의 쉐어값
Figure 112005010225414-PAT00067
을 저장한다.
본 실시예에서는 일반성을 잃지 않고 사용자 U21이 저장하게 되는 키 정보만을 살펴보도록 한다. 도 7은 도 6에 도시된 사용자 U21이 저장하게 되는 키의 형태를 도시한 도면이다. 도 7를 참조하면, 사용자 U21은 3개의 노드키 값
Figure 112005010225414-PAT00068
과 레벨 1 내지 레벨 3의 서브 그룹
Figure 112005010225414-PAT00069
에 대응되는 6개의 쉐어값
Figure 112005010225414-PAT00070
을 저장하게 된다.
2. 메시지 브로드캐스트 단계
서버는 그룹키(sk)와 메시지(M)을 합법적인 사용자에게 브로드캐스트하기 위한 과정을 수행한다. 먼저, 서버는 그룹키(sk)를 생성한다.
이어서, 탈퇴자들의 집합 R이 {U21, U36, U123, U124 , U125}로 주어졌을 때, 집합 R에 속한 구성원들에 대응되는 노드들을 모두 연결하여 Steiner Tree,
Figure 112005010225414-PAT00071
를 구성한다. 도 8은 탈퇴자들의 집합 R이 {U21, U36, U123, U124 , U125}인 경우에 구성되는 Steiner Tree를 도시한 도면이다. Steiner Tree가 구성되면, 서버는 트리의 각 레벨 1~3에 속하는 모든 서브 그룹
Figure 112005010225414-PAT00072
에 대해서 다음 과정을 수행한다.
서버는 각 서브 그룹
Figure 112005010225414-PAT00073
마다
Figure 112005010225414-PAT00074
에 속하는 노드의 개수
Figure 112005010225414-PAT00075
를 산출한다. 도 8에서, 각 레벨에 속하는 모든 서브 그룹
Figure 112005010225414-PAT00076
별로 ST(R)에 속하는 노드의 개수는 다음과 같다.
Figure 112005010225414-PAT00077
Figure 112005010225414-PAT00078
Figure 112005010225414-PAT00079
이어서, 서버는 산출된 노드의 개수
Figure 112005010225414-PAT00080
가 1≤ Il ,j≤w/2 및 Il ,j > w/2 중 어느 조건을 만족하는지 확인한다. 본 실시예에서 w=4이므로, 1≤ Il ,j≤2를 만족하는 서브 그룹은 S1 ,1, S2 ,1, S2 ,4, S3 ,1, S3 ,4이며, Il ,j > 2를 만족하는 서브 그룹은 S3 ,16이다.
먼저, 서버는 1≤ Il ,j≤w/2를 만족하는 서브 그룹들에 대해서, 다음과 같은 브로드캐스트 메시지 생성 과정을 수행한다.
먼저, 서버는 S1 ,1에 대응하는 2차 다항식의 쉐어값
Figure 112005010225414-PAT00081
및 다항식의 비밀값인
Figure 112005010225414-PAT00082
을 그룹키(sk)로 암호화한 값인
Figure 112005010225414-PAT00083
을 브로드캐스트 메시지(MB)의 첫 번째 부분에 추가한다.
이와 마찬가지로, 서버는 S2 ,1 에 대응하는 2개의 2차 다항식의 쉐어값인
Figure 112005010225414-PAT00084
Figure 112005010225414-PAT00085
및 다항식의 비밀값인
Figure 112005010225414-PAT00086
을 그룹키(sk)로 암호화한 값인
Figure 112005010225414-PAT00087
을 브로드캐스트 메시지(MB)의 첫 번째 부분에 추가한다.
또한, 서버는 S2 ,4에 대응하는 1차 다항식의 쉐어값인
Figure 112005010225414-PAT00088
및 다항식의 비밀값인
Figure 112005010225414-PAT00089
을 그룹키(sk)로 암호화한 값인
Figure 112005010225414-PAT00090
을 브로드캐스트 메시지(MB)의 첫 번째 부분에 추가한다.
또한, 서버는 S3 ,1에 대응하는 1차 다항식의 쉐어값인
Figure 112005010225414-PAT00091
및 다항 식의 비밀값인
Figure 112005010225414-PAT00092
을 그룹키 sk로 암호화한 값인
Figure 112005010225414-PAT00093
을 브로드캐스트 메시지(MB)의 첫 번째 부분에 추가한다.
또한, 서버는 S3 ,4에 대응하는 1차 다항식의 쉐어값인
Figure 112005010225414-PAT00094
및 다항식의 비밀값인
Figure 112005010225414-PAT00095
을 그룹키(sk)로 암호화한 값인
Figure 112005010225414-PAT00096
을 브로드캐스트 메시지(MB)의 첫 번째 부분에 추가한다.
한편, 서버는 Il ,j > 2를 만족하는 서브 그룹들에 대해서 다음과 같은 브로드캐스트 메시지 생성 과정을 수행한다. 즉 서버는 Il ,j > 2를 만족하는 서브 그룹에서 ST(R)에 포함되지 않는 노드를 찾고, 그 노드에 대응되는 노드키로 그룹키 (sk)를 암호화하여, 암호화된 값을 브로드캐스트 메시지 MB의 두 번째 부분에 추가한다.
본 실시예에서 Ii,j > 2를 만족하는 서브 그룹은 S3 ,16이다. 도 8을 참조하면, 서버는 서브 그룹 S3 ,16에서 ST(R)에 포함되지 않는 노드인 노드 126(N126)을 찾고, 노드 126 (N126)의 노드키
Figure 112005010225414-PAT00097
로 그룹키(sk)를 암호화한 값인
Figure 112005010225414-PAT00098
을 브로드캐스트 메시지 MB의 두 번째 부분에 추가한다.
이와 같은 방식으로, 브로드캐스트 메시지(MB)의 첫 번째 부분과 두 번째 부분이 구성되면, 서버는 메시지(M)를 전송하기 위해서 그룹키(sk)를 이용하여 메시지(M)를 암호화한 값인
Figure 112005010225414-PAT00099
를 생성하여, 브로드캐스트 메시지에 추가하여, 최종적인 브로드캐스트 메시지를 생성하고, 이를 사용자에게 브로드캐스트한다.
본 실시예에서 최종적으로 생성된 브로드캐스트 메시지 MB는 다음과 같다.
Figure 112005010225414-PAT00100
Figure 112005010225414-PAT00101
Figure 112005010225414-PAT00102
3. 메시지 복호화 단계
서버로부터 브로드캐스트 메시지가 전송되면, 각 사용자(Ui)는 브로드캐스트 메시지를 받은 후 다음과 같은 단계를 통해서 그룹키(sk)를 얻은 후에 서버로부터 전송받은 메시지를 복호화하게 된다.
먼저, 도 8을 참조하면, 탈퇴자 그룹에 속하지 않는 합법적인 각 사용자 Ui {U22,…, U35, U37,…,U122,U126}는 서버로부터 전송받은 브로드캐스트 메시지에 자신이 가지고 있는 비밀키에 대응되는 정보가 있는지 검색한다. 사용자 {U22, U23, U24}는 브로드캐스트 메시지(MB)에서 공유 아이디 h(3,1,1)에 대응되는 쉐어값
Figure 112005010225414-PAT00103
과 자신들 각자의 쉐어값인
Figure 112005010225414-PAT00104
,
Figure 112005010225414-PAT00105
,
Figure 112005010225414-PAT00106
을 이용해서 라그랑지(Lagrange) 교항 다항식을 계산함으로써 1차 다항식의 비밀값인
Figure 112005010225414-PAT00107
을 복원한다. 그 후, 복원된 1차 다항식의 비밀값인
Figure 112005010225414-PAT00108
을 이용해서 브로드캐스트 메시지 MB의 세 번째 부분인
Figure 112005010225414-PAT00109
로부터 그룹키(sk)를 복호한다.
한편, 사용자 {U25,…,U32}는 브로드캐스트 메시지 MB에서 공유 아이디 h(2,2,1)에 대응되는 쉐어값
Figure 112005010225414-PAT00110
,
Figure 112005010225414-PAT00111
과 자신들 각자의 쉐어값
Figure 112005010225414-PAT00112
,
Figure 112005010225414-PAT00113
을 2차 다항식의 비밀값
Figure 112005010225414-PAT00114
을 복원한 후, 복원된 비밀값을 이용하여 그룹키(sk)를 복호화한다.
또한, 사용자 {U33,…,U35}는 브로드캐스트 메시지 MB에서 공유 아이디 h(3,1,4)에 대응되는 쉐어값인
Figure 112005010225414-PAT00115
과 자신들 각자의 쉐어값
Figure 112005010225414-PAT00116
,
Figure 112005010225414-PAT00117
,
Figure 112005010225414-PAT00118
를 이용해서, 그룹키(sk)를 복호화한다. 사용자 {U37,… ,U110}과 사용자 {U111,…,U122}도 이와 동일한 방식으로 그룹키(sk)를 산출한다.
한편, 사용자 U126에 대응되는 공유 아이디는 브로드캐스트 메시지의 첫 번째 부분인
Figure 112005010225414-PAT00119
에 존재하지 않는다. 따라서, 사용자 U126은 브로드캐스트 메시지의 두 번째 부분
Figure 112005010225414-PAT00120
에서 대응되는 노드 아이디를 검색한 후, 해당 노드의 노드키 k126로 그룹키(sk)를 복호한다.
그룹키 복호화 과정이 완료되면 합법적인 사용자 {U22,…,U35,U37,…,U122,U126}는
Figure 112005010225414-PAT00121
을 이용하여 서버로부터 전송된 메시지를 복호화한다.
도 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))
이상에서 설명한 바와 같이, 본 발명에 의하면, 합법적인 사용자들의 임의의 그룹이 각각의 비밀정보 및 서버에 의해 브로드캐스트되는 정보를 이용하여 서버의 비밀정보를 얻는 것을 방지할 수 있다. 또한, 탈퇴자들의 임의의 그룹이 각각의 비밀정보 및 서버에 의해 브로드캐스트되는 정보를 이용하여 그룹키를 얻는 것을 방지할 수 있다.
이상에서는 본 발명의 바람직한 실시예에 대해서 도시하고 설명하였으나, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위에 있게 된다.

Claims (12)

  1. 서버의 초기화 및 사용자 가입을 위한 제1 단계;
    합법적인 사용자가 그룹키를 복호화할 수 있도록 메시지를 분배하는 제2 단계; 및
    합법적인 사용자가 그룹키를 이용하여 메시지를 복호화하는 제3 단계;를 포함하는 것을 특징으로 하는 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법.
  2. 제1항에 있어서, 상기 제1 단계는,
    모든 사용자에 대응되도록 h개의 레벨을 갖는 트리를 구성하는 단계;
    레벨 0을 제외한 트리의 각 레벨에서 w개의 노드를 하나의 서브 그룹으로 구분하는 단계;
    레벨 0을 제외한 트리의 각 노드에 대응되는 노드키를 랜덤하게 생성하는 단계;
    레벨 0을 제외한 각 레벨의 모든 서브 그룹에 대응하는 랜덤한 d차 방정식을 각 서브 그룹 별로 생성하는 단계;
    생성된 소정 개수의 d차 방정식에 각 노드의 ID를 대입하여 상기 d차 방정식의 비밀값을 복원하기 위한 쉐어값을 생성하는 단계; 및
    생성된 노드키와 쉐어값을 각 사용자에게 전송하는 단계;를 포함하는 것을 특징으로 하는 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법.
  3. 제2항에 있어서, 상기 제1 단계는,
    서버로부터 전송된 상기 노드키와 쉐어값을 사용자의 비밀키로 저장하는 단계;를 더 포함하는 것을 특징으로 하는 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법.
  4. 제2항에 있어서, 상기 d차 다항식의 차수인 d는,
    1≤d≤w/2을 만족하는 값인 것을 특징으로 하는 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법.
  5. 제2항에 있어서, 상기 비밀값은,
    상기 d차 다항식에 0을 대입한 값인 것을 특징으로 하는 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법.
  6. 제1항에 있어서, 제2 단계는,
    그룹키(sk)를 생성하는 단계;
    탈퇴자들의 집합 R이 주어진 경우, 탈퇴자들의 집합 R에 속하는 구성원들에 대응되는 노드를 모두 연결하여 Steiner Tree를 구성하는 단계;
    각 서브 그룹(Sl ,j)에서 Steiner Tree에 속하는 노드의 개수를 산출하는 단 계;
    상기 Steiner Tree에 속하는 노드의 개수(Il ,j)가 1≤ Il ,j≤w/2 및 Il ,j > w/2 중 어느 수식을 만족하는지에 따라 각각 다른 암호화 방법을 사용하여 브로드캐스트 메시지를 생성하는 단계; 및
    생성된 브로드캐스트 메시지를 전송하는 단계;를 포함하는 것을 특징으로 하는 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법.
  7. 제6항에 있어서, 상기 브로드캐스트 메시지 생성 단계는,
    상기 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 영역에 추가하여 각 사용자에게 전송할 브로드캐스트 메시지를 생성하는 단계;를 포함하는 것을 특징으로 하는 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법.
  8. 제1항에 있어서, 상기 제3 단계는,
    상기 브로드캐스트 메시지의 제1 영역에 상기 합법적인 사용자가 보유하는 쉐어값에 대응되는 공유 ID가 존재하는지 확인하는 단계;
    확인결과, 공유 ID가 존재하면, 해당 다항식의 비밀값을 복원하고, 복원된 비밀값을 이용하여 제1 암호문으로부터 그룹키를 복호화하는 단계; 및
    그룹키를 이용하여 브로드캐스트 메시지를 복호화하는 단계;를 포함하는 것을 특징으로 하는 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법.
  9. 제8항에 있어서, 상기 공유 ID는,
    사용자가 보유하는 쉐어값들 중에 어느 쉐어값으로 상기 비밀값을 복원해야되는지를 알려주기 위한 정보인 것을 특징으로 하는 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법.
  10. 제8항에 있어서,
    상기 공유 ID에 대응되는 쉐어값과 사용자가 보유하는 쉐어값 및 라그랑지(Lagrange) 교항 다항식을 이용하여 해당 다항식의 비밀값을 복원하는 것을 특징으 로 하는 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법.
  11. 제8항에 있어서,
    확인결과, 상기 브로드캐스트 메시지의 제1 영역에 상기 합법적인 사용자가 보유하는 쉐어값에 대응되는 공유 ID가 존재하지 않으면,
    상기 브로드캐스트 메시지의 제2 영역에서 대응되는 노드 ID를 검색하여, 상기 노드 ID에 대응되는 노드키로 그룹키를 복호화하는 단계; 및
    그룹키를 이용하여 브로드캐스트 메시지를 복호화하는 단계;를 더 포함하는 것을 특징으로 하는 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법.
  12. 제11항에 있어서, 상기 노드 ID는,
    사용자에게 어느 노드키로 상기 그룹키를 복호화해야 되는지를 알려주기 위한 정보인 것을 특징으로 하는 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법.
KR1020050015967A 2005-02-25 2005-02-25 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법 KR100737876B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050015967A KR100737876B1 (ko) 2005-02-25 2005-02-25 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법
US11/340,614 US8005225B2 (en) 2005-02-25 2006-01-27 Hierarchical threshold tree-based broadcast encryption method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050015967A KR100737876B1 (ko) 2005-02-25 2005-02-25 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법

Publications (2)

Publication Number Publication Date
KR20060095077A true KR20060095077A (ko) 2006-08-30
KR100737876B1 KR100737876B1 (ko) 2007-07-12

Family

ID=37602649

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050015967A KR100737876B1 (ko) 2005-02-25 2005-02-25 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법

Country Status (2)

Country Link
US (1) US8005225B2 (ko)
KR (1) KR100737876B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100974628B1 (ko) * 2008-08-22 2010-08-09 고려대학교 산학협력단 무선 센서 네트워크에서의 브로드 캐스팅 메시지 인증을 통한 그룹키 분배 방법, 그 시스템 및 이를 기록한 기록매체
KR100975038B1 (ko) * 2008-01-17 2010-08-11 고려대학교 산학협력단 브로드캐스트 암호화 시스템 및 그 방법
KR20190028088A (ko) * 2017-09-08 2019-03-18 충남대학교산학협력단 클라우드 컴퓨팅에서 사물인터넷 데이터의 보안을 위한 키 관리 방법
CN114244493A (zh) * 2021-11-05 2022-03-25 南京邮电大学 一种基于区块链的带门限不经意可更新密钥管理方法

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7349538B2 (en) * 2002-03-21 2008-03-25 Ntt Docomo Inc. Hierarchical identity-based encryption and signature schemes
US7657748B2 (en) 2002-08-28 2010-02-02 Ntt Docomo, Inc. Certificate-based encryption and public key infrastructure
US20060078790A1 (en) * 2004-10-05 2006-04-13 Polyplus Battery Company Solid electrolytes based on lithium hafnium phosphate for active metal anode protection
US20100272262A1 (en) * 2005-08-29 2010-10-28 David Boubion Systems and methods for broadcast communication and interface with assets and datasets
JP2008103936A (ja) * 2006-10-18 2008-05-01 Toshiba Corp 秘密情報管理装置および秘密情報管理システム
JP5286748B2 (ja) * 2007-11-09 2013-09-11 ソニー株式会社 情報処理装置、鍵設定方法、及びプログラム
US20090172778A1 (en) * 2007-12-26 2009-07-02 Randall Stephens Rule-based security system and method
WO2009128011A1 (en) * 2008-04-14 2009-10-22 Philips Intellectual Property & Standards Gmbh Method for distributed identification, a station in a network
KR101042115B1 (ko) * 2008-05-08 2011-06-16 엘지전자 주식회사 세션 기반 통신 서비스에서의 보안키 관리 방법 및 이를 지원하는 단말
US20100100947A1 (en) * 2008-10-21 2010-04-22 Apple Inc. Scheme for authenticating without password exchange
US8812874B1 (en) * 2009-03-31 2014-08-19 Symantec Corporation Content deduplication in enterprise rights management
KR101308023B1 (ko) 2011-10-27 2013-09-26 국방과학연구소 수신자 프라이버시를 보호하는 브로드캐스트 암호화 방법
KR20140028342A (ko) * 2012-08-28 2014-03-10 삼성전자주식회사 브로드캐스트 암호화를 위한 키 관리 방법 및 브로드캐스트 암호화를 이용한 메시지 전송 방법
US10091000B2 (en) 2014-09-24 2018-10-02 Intel Corporation Techniques for distributing secret shares
JP6290443B2 (ja) * 2014-10-31 2018-03-07 株式会社東芝 通信制御装置、通信制御方法およびプログラム
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
TWI602064B (zh) 2016-11-23 2017-10-11 財團法人工業技術研究院 資料傳輸系統,以及其所使用的拓樸架構建立方法與拓樸架構修復方法
GB2564430C (en) * 2017-07-07 2021-02-17 Gurulogic Microsystems Oy Data communication system and method
KR101987752B1 (ko) * 2017-11-22 2019-06-11 동국대학교 산학협력단 차량 내 탑재되어 있는 ecu들에 대해 암호화된 방식으로 세션 키의 배포를 처리하는 키 배포 처리 장치 및 그 동작 방법
TWI702820B (zh) * 2019-05-03 2020-08-21 開曼群島商現代財富控股有限公司 具分級機制的秘密共享簽章系統及其方法
US11295028B2 (en) 2020-07-24 2022-04-05 International Business Machines Corporation Multi-key encrypted data deduplication
WO2022087466A1 (en) * 2020-10-23 2022-04-28 Ntt Research, Inc. Functional encryption for quadratic functions

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL106796A (en) * 1993-08-25 1997-11-20 Algorithmic Res Ltd Broadcast encryption
US6359986B1 (en) * 1997-08-06 2002-03-19 Matsushita Electric Industrial Co., Ltd. Encryption system capable of specifying a type of an encrytion device that produced a distribution medium
US6839436B1 (en) * 2000-10-16 2005-01-04 Lucent Technologies Inc. Method for providing long-lived broadcast encrypton
US7203743B2 (en) * 2001-12-28 2007-04-10 Nortel Networks Limited Hierarchical tree-based protection scheme for mesh networks
US7340603B2 (en) * 2002-01-30 2008-03-04 Sony Corporation Efficient revocation of receivers

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100975038B1 (ko) * 2008-01-17 2010-08-11 고려대학교 산학협력단 브로드캐스트 암호화 시스템 및 그 방법
KR100974628B1 (ko) * 2008-08-22 2010-08-09 고려대학교 산학협력단 무선 센서 네트워크에서의 브로드 캐스팅 메시지 인증을 통한 그룹키 분배 방법, 그 시스템 및 이를 기록한 기록매체
KR20190028088A (ko) * 2017-09-08 2019-03-18 충남대학교산학협력단 클라우드 컴퓨팅에서 사물인터넷 데이터의 보안을 위한 키 관리 방법
CN114244493A (zh) * 2021-11-05 2022-03-25 南京邮电大学 一种基于区块链的带门限不经意可更新密钥管理方法
CN114244493B (zh) * 2021-11-05 2023-07-18 南京邮电大学 一种基于区块链的带门限不经意可更新密钥管理方法

Also Published As

Publication number Publication date
US8005225B2 (en) 2011-08-23
KR100737876B1 (ko) 2007-07-12
US20070189539A1 (en) 2007-08-16

Similar Documents

Publication Publication Date Title
KR100737876B1 (ko) 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법
KR100670010B1 (ko) 하이브리드 브로드캐스트 암호화 방법
Boneh et al. A fully collusion resistant broadcast, trace, and revoke system
US8897445B2 (en) Combination-based broadcast encryption method
KR100579515B1 (ko) 브로드캐스트 암호화를 위한 키 생성 장치 및 방법
Kiayias et al. Breaking and repairing asymmetric public-key traitor tracing
KR101021708B1 (ko) 그룹키 분배 방법 및 이를 위한 서버 및 클라이언트
JP6497747B2 (ja) 鍵交換方法、鍵交換システム
KR101308023B1 (ko) 수신자 프라이버시를 보호하는 브로드캐스트 암호화 방법
Pal et al. Efficient and secure key management for conditional access systems
Kim et al. An efficient public key trace and revoke scheme secure against adaptive chosen ciphertext attack
KR100975038B1 (ko) 브로드캐스트 암호화 시스템 및 그 방법
Gobi et al. A comparative study on the performance and the security of RSA and ECC algorithm
Qin et al. Strongly secure and cost-effective certificateless proxy re-encryption scheme for data sharing in cloud computing
De Ree et al. DECENT: decentralized and efficient key management to secure communication in dense and dynamic environments
Yoon et al. Robust key exchange protocol between set-top box and smart card in DTV broadcasting
JP2006227411A (ja) 通信システム、暗号化装置、鍵生成装置、鍵生成方法、復元装置、通信方法、暗号化方法、暗号復元方法
CN116055136A (zh) 一种基于秘密共享的多目标认证方法
Muthulakshmi et al. Identity based privacy preserving dynamic broadcast encryption for multi-privileged groups
KR101727691B1 (ko) Id 기반 수신자 제한 암호 서버 및 시스템
Yap et al. On the security of a lightweight authentication and encryption scheme for mobile ad hoc network
KR101306211B1 (ko) 아이디 기반의 브로드캐스트 암호화 방법
Yoon et al. ECC-based key exchange protocol for IPTV service
Sahana Raj et al. Efficiently Revocable Identity-Based Broadcast Encryption Using Integer Matrices as Keys
Safavi-Naini et al. Non-interactive conference key distribution and its applications

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
E902 Notification of reason for refusal
B701 Decision to grant
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20130624

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140619

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150624

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160617

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170619

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180620

Year of fee payment: 12