KR100670017B1 - 조합에 기반한 브로드캐스트 암호화 방법 - Google Patents

조합에 기반한 브로드캐스트 암호화 방법 Download PDF

Info

Publication number
KR100670017B1
KR100670017B1 KR1020040117701A KR20040117701A KR100670017B1 KR 100670017 B1 KR100670017 B1 KR 100670017B1 KR 1020040117701 A KR1020040117701 A KR 1020040117701A KR 20040117701 A KR20040117701 A KR 20040117701A KR 100670017 B1 KR100670017 B1 KR 100670017B1
Authority
KR
South Korea
Prior art keywords
group
user
server
key
base
Prior art date
Application number
KR1020040117701A
Other languages
English (en)
Other versions
KR20060079491A (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 KR1020040117701A priority Critical patent/KR100670017B1/ko
Priority to US11/311,256 priority patent/US8200963B2/en
Publication of KR20060079491A publication Critical patent/KR20060079491A/ko
Application granted granted Critical
Publication of KR100670017B1 publication Critical patent/KR100670017B1/ko
Priority to US13/460,098 priority patent/US8897445B2/en

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Storage Device Security (AREA)

Abstract

조합에 기반한 브로드캐스트 암호화 방법이 개시된다. 본 발명의 브로드캐스트 암호화 방법은 서버에서 각 사용자들에 대해 서로 다른 조합에 의해 생성된 기저군을 할당하는 단계, 각 사용자별로 할당된 기저군을 기저로 하여 각 사용자별 비밀 정보를 생성 및 전송하는 단계, 기저군 생성에 사용된 정수와 하나 이상의 인가된 사용자들의 키값 정보들을 연산하여 역기저 매개값을 생성 및 전송하는 단계, 및 인가된 사용자들의 키값 정보들에 의해 그룹키를 생성하고, 생성된 그룹키에 의해 세션키를 암호화하여 각 사용자들에게 전송하는 단계를 포함한다. 이에 의해 각 사용자마다 조합에 의해 서로 다른 기저를 부여함으로써 공모에 의한 공격에 대하여 안전성을 가지게 된다.
브로드캐스트, 암호화, 기저, 조합, 공모, 그룹키

Description

조합에 기반한 브로드캐스트 암호화 방법{Method for broadcast encryption based on the combination}
도 1은 일반적인 브로드캐스트 전송 시스템을 나타낸 도면,
도 2는 본 발명의 제1 및 제2 실시예에 따른 사용자 집합을 분할하는 개념을 나타낸 도면,
도 3은 본 발명의 제3, 제4 및 제5 실시예에 따른 사용자 그룹을 재분할 하는 개념을 나타낸 도면,
도 4는 본 발명의 제3, 제4 및 제5 실시예에 따른 사용자 그룹을 재분할 하는 방법을 나타낸 도면,
도 5는 본 발명의 제4 실시예에 따른 각 그룹별로 전송되는 메시지 형태를 나타낸 도면,
도 6은 본 발명의 제5 실시예에 따른 각 사용자별 그룹 분배를 나타낸 도면,
도 7은 본 발명의 기본 실시예에 따른 각 사용자별 키 분배 절차를 나타낸 흐름도,
도 8은 본 발명의 제1 및 제2 실시예에 따른 각 사용자별 키 분배 절차를 나타낸 흐름도,
도 9는 본 발명의 제3, 제4 및 제5 실시예에 따른 각 사용자별 키 분배 절차 를 나타낸 흐름도,
도 10은 본 발명의 실시예들의 전송 오버헤드를 종래 기술과 비교한 그래프, 그리고
도 11은 본 발명의 실시예들의 인덱스 오버헤드를 종래 기술과 비교한 그래프이다.
* 도면의 주요 부분에 대한 부호의 설명 *
100 : 서비스 제공자 110 : 방송 메시지
120 : 전송 채널 130 : 폐기된 사용자
140 : 인가된 사용자 201 내지 206 : 사용자 그룹
301 내지 306 : 재분할되는 사용자 그룹
500 : 전송 데이터 인덱스 510 : 그룹키
520 : 암호화된 컨텐츠
본 발명은 브로드캐스트 암호화 방법에 관한 것으로, 더욱 상세하게는 공모 공격에 안전한 브로드캐스트 암호화 방법에 관한 것이다.
일반적으로 암호 시스템은 암호화 키의 관리 형태에 따라 대칭키(또는 비밀키라고도 함)암호 시스템과 비대칭키(또는 공개키라고도 함) 암호 시스템으로 구분된다. 대칭키 암호 시스템은 공개키 암호 시스템이 나오기 전에 주로 사용되던 암 호 방식으로, 암호화와 복호화에 동일한 키를 사용하는 방식이다. 예를 들면, 송신자는 전송하고자 하는 평문 메시지를 암호화 키와 암호 알고리즘을 통해 암호문으로 변환시켜 수신자에게 전송하면, 수신자는 동일한 키를 복호 알고리즘에 사용해서 원래의 평문으로 만든다.
이때 수신자는 암호화 통신을 하기 전에 안전하게 키를 교환하여야 하며, 암호 통신을 도청하려는 제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 112004063062128-pat00001
을 계산한다.
3. 상기 계산된 비밀 정보를 상기 사용자 usri에게 안전하게 전달한다.
상기 작업을 통해 초기 설정 및 사용자 가입 절차가 완료된다. 이제 합법적 사용자(privileged user) 그룹 P⊂U가 주어지면, 각 사용자를 위한 그룹 키(group key) KP는 하기 <수학식 1>과 같이 설정된다.
Figure 112004063062128-pat00002
이때, 상기 P에 포함되는 각 사용자들은 상기 서버로부터 부여받은 ui 값을 이용하여 하기 <수학식 2>에 의해 상기 <수학식 1>의 그룹 키 KP를 산출할 수가 있게 된다.
Figure 112004063062128-pat00003
이때, 정상적인 가입자가 아닌 불법 가입자 또는 탈퇴자(revocator)는 상기 KP의 지수부(exponent)에 포함되지 않은 소수 yi를 ui의 지수부에 가지고 있으므로 이를 지수부에서 제거해야만 상기 그룹 키 KP를 산출할 수가 있게 된다. 그러나, 이는 'N의 소인수분해가 어렵다'는 문제로 인해 실제적으로 계산이 불가능하게 된다. 따라서, 상술한 방법에 의해 정당한 사용자에 대한 브로드캐스트 암호화가 가능하게 된다.
그러나, 상술한 Fiat 알고리즘은 사용자 두 명, 예컨대 usri 및 usrj가 서로의 비밀 정보를 공유하게 되면 안전성에 심각한 문제가 발생하게 된다. 즉, yi와 yj는 서로소이기 때문에 ayi + byj = 1을 만족하는 정수 a 및 b를 용이하게 구할 수가 있게 된다. 그러면, 하기 <수학식 3>에 의해 상기 두 사용자는 시스템의 비밀 정보인 O 값을 구할 수가 있게 된다.
Figure 112004063062128-pat00004
따라서, 상기 O값에 의해 불법 사용자가 모든 경우의 그룹 키 KP를 구할 수가 있게 된다. 즉, 상기 기본적인 두 알고리즘은 악의적인 사용자 2명이 공모하면 컨텐츠를 브로드캐스트하는 서버의 비밀 정보가 유출되어 시스템은 더 이상 안전하지 않게 된다. 이와 같이 한 명의 공격자에게는 안전하지만 2명 이상의 공모 공격에 안전하지 않은 시스템은 '1-resilient 시스템'이라 한다. 한편, 상기 Fiat는 상기 1-resilient 시스템에 기반하여 k-resilient 시스템을 제안하였지만, 매우 비효율적이라는 문제점이 있다
상기 k-resilient 방법은 수신기들(최대 't'개의 수신기들)이 서로 공모하는(collude) 한 임의의 개수의 수신기들을 제거하는 것이다. 그러나, 상기 방법은 상대적으로 긴 메시지 길이를 필요로 하고, 상대적으로 많은 수의 키들이 수신기에 저장되어야 하고, 각각의 수신기들이 한번 이상의 암호해독 동작을 수행하여야 한다. 더욱이, 상기 방법은 상태 비-유지 수신기 시나리오를 고려하지 않는다. 얼마나 많은 수신기들이 공모할지에 대한 가정을 추측하는 것을 피할 필요성이 있다. 또한, 메시지 크기 및 저장된 키의 개수를 최소화하여야 하며, 수신기에 의해 수행되어야 할 암호해독 동작도 성능 최적화를 위해 최소화되어야 한다.
한편, 상기 Fiat의 시스템과 같이 다른 암호시스템은 상태 비-유지 수신기 시나리오를 제공하지 않으며, 따라서, 기록 매체내의 컨텐츠 보호에 효과적으로 적용될 수 없다는 문제점이 있다.
따라서, 본 발명의 목적은 각 사용자에게 서로 다른 기저를 부여함으로서 공모 공격에 안전한 브로드캐스트 암호화 방법을 제공하는 데 있다.
또한, 본 발명의 목적은 각 사용자별로 그룹을 할당하고 각 그룹별 그룹키를 부여함으로써 저장량 및 계산량을 줄일 수 있는 브로드캐스트 암호화 방법을 제공하는 데 있다.
또한, 본 발명의 목적은 각 사용자별로 할당된 그룹을 재분할함으로써 전송량 및 계산량을 줄일 수 있는 브로드캐스트 암호화 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명에 따른 서버에서의 브로드캐스트 암호화 방법은 서버에서 복수의 서로 다른 정수들 중에서 하나 이상의 정수들을 조합하여 기저군을 생성하고, 각 사용자들에 대해 서로 다른 조합에 의해 생성된 상기 기저군을 할당하는 단계; 상기 각 사용자별로 할당된 기저군을 기저로 하여 해당 사용자에 할당된 키값 정보와 연산함으로써 각 사용자별 비밀 정보를 생성하고, 상기 생성된 사용자별 비밀 정보를 상기 각 사용자들에게 전송하는 단계; 상기 복수의 사용자들 중에서 인가된 사용자들만이 상기 비밀 정보로부터 기저군을 제거할 수 있도록, 상기 기저군 생성에 사용된 정수와 하나 이상의 인가된 사용자들의 키값 정보들을 연산하여 역기저 매개값을 생성하고, 상기 생성된 역기저 매개값을 각 사용자들에게 전송하는 단계; 및 상기 인가된 사용자들의 키값 정보들에 의해 그룹키를 생성하고, 상기 생성된 그룹키에 의해 세션키를 암호화하여 상기 각 사용자들에게 전송하는 단계;를 포함하는 것을 특징으로 한다.
이때, 상기 기저군 생성을 위한 각 정수들은 서로 "서로소" 관계에 있는 것들인 것을 특징으로 한다.
한편, 상기 역기저 매개값은 보안을 위하여 하나 이상의 난수들을 더 포함하여 연산하는 것을 특징으로 한다.
또한, 상기 역기저 매개값에 연산되는 하나 이상의 난수들은 상기 그룹키 생성의 연산을 위해 사용하는 것을 특징으로 한다.
상기 서버는 서버 고유의 난수값을 생성하고, 상기 사용자별 비밀 정보 연산에서 상기 생성된 서버 고유의 난수값을 포함하여 연산하는 것을 특징으로 한다.
상기 역기저 매개값에 연산되는 하나 이상의 난수들은 상기 서버 고유의 난수값과 연산하여 각 사용자들에게 전송하는 것을 특징으로 한다.
한편, 상기 생성되는 각 사용자별 비밀 정보의 기저는 상기 각 사용자별로 할당된 기저군과 모든 사용자들에게 공통으로 사용되는 공통 정수로 구성하며, 상기 그룹키는 상기 공통 정수를 기저로 하여 생성하는 것을 특징으로 한다.
상기 서버는 상기 각 사용자들에게 상기 해당 기저군 생성을 위한 조합에 대한 정보를 전송하는 것이 바람직하다.
상기 서버는 상기 사용자에 할당된 키값 정보를 브로드캐스트 메시지 전송시마다 전송할 수도 있다.
본 발명의 다른 실시예에 따른 서버에서의 방법은, 서버에서 브로드캐스트 메시지를 수신하는 복수의 사용자들로 구성된 하나의 상위 그룹을 복수의 그룹들로 분할하고, 각 그룹별로 해당 사용자들에게 키값을 할당하는 단계; 상기 각 그룹별로 복수의 서로 다른 정수들 중에서 하나 이상의 정수들을 조합하여 기저군을 생성하고, 상기 그룹내의 각 사용자들에 대해 서로 다른 조합에 의해 생성된 상기 기저군을 할당하는 단계; 상기 각 사용자별로 할당된 기저군을 기저로 하여 상기 각 그룹별로 해당 사용자에 할당된 키값 정보와 연산함으로써 각 사용자별 비밀 정보를 생성하고, 상기 생성된 사용자별 비밀 정보를 상기 각 사용자들에게 전송하는 단계; 상기 복수의 사용자들 중에서 인가된 사용자들만이 상기 비밀 정보로부터 기저군을 제거할 수 있도록, 상기 기저군 생성에 사용된 정수와 하나 이상의 인가된 사용자들의 키값 정보들을 연산하여 역기저 매개값을 생성하고, 상기 생성된 역기저 매개값을 상기 해당 그룹의 각 사용자들에게 전송하는 단계; 및 상기 인가된 사용자들의 키값 정보들에 의해 상기 각 그룹별로 그룹키를 생성하고, 상기 생성된 그룹키에 의해 세션키를 암호화하여 상기 각 사용자들에게 전송하는 단계;를 포함하는 것을 특징으로 한다.
이때, 상기 분할된 각 그룹별로 난수를 할당하고, 상기 각 그룹별 사용자들에게 전송되는 상기 사용자별 비밀 정보의 연산에 상기 해당 그룹에 할당된 난수를 더 포함하여 연산하는 것을 특징으로 한다.
한편, 상기 역기저 매개값의 연산에 상기 해당 그룹에 할당된 난수를 더 포함하여 연산하는 것을 특징으로 한다.
또한, 상기 각 그룹별로 생성하는 그룹키는 상기 해당 그룹에 할당된 난수를 더 포함하여 연산하는 것을 특징으로 한다.
상기 기저군 생성을 위한 각 정수들은 서로 "서로소"관계에 있는 것들인 것을 특징으로 한다.
상기 역기저 매개값은 보안을 위하여 하나 이상의 난수들과 더 포함하여 연산하는 것을 특징으로 한다.
상기 역기저 매개값에 연산되는 하나 이상의 난수들은 상기 그룹키 생성의 연산을 위해 사용하는 것을 특징으로 한다.
한편, 상기 서버는 서버 고유의 난수값을 생성하고, 상기 사용자별 비밀 정보 연산에서 상기 생성된 서버 고유의 난수값을 더 포함하여 연산하는 것을 특징으로 한다
상기 역기저 매개값에 연산되는 하나 이상의 난수들은 상기 서버 고유의 난수값과 연산하여 각 사용자들에게 전송하는 것을 특징으로 한다.
상기 생성되는 각 사용자별 비밀 정보의 기저는 상기 각 사용자별로 할당된 기저군과 모든 사용자들에게 공통으로 사용되는 공통 정수로 구성하며, 상기 그룹키는 상기 공통 정수를 기저로 하여 생성하는 것을 특징으로 한다.
상기 서버는 상기 각 그룹별 사용자들에게 상기 해당 기저군 생성을 위한 조합에 대한 정보를 전송하는 것이 바람직하다.
이때, 상기 서버는 상기 역기저 매개값의 연산에서 지수부와 기저부를 각각 분리하여 연산하고, 상기 연산된 역기저 매개값의 지수부와 기저부를 각각 전송하는 것이 가능하다.
한편, 상기 각 그룹들을 복수의 서브 그룹들로 분할하고, 상기 각 서브 그룹별로 해당 사용자들에게 키값을 할당하며, 상기 사용자별 비밀 정보 생성에 있어서 상기 각 서브 그룹별로 해당 사용자에 할당된 키값 정보와 연산하는 것을 특징으로 한다.
이때, 상기 그룹들 중에서 특정 그룹에 비인가된 사용자가 없을 경우, 상기 해당 그룹에는 각 그룹별로 할당된 별도의 키값을 그룹키로 설정할 수 있다.
또한, 상기 서버는 상기 사용자에 할당된 키값 정보를 브로드캐스트 메시지 전송시마다 전송할 수도 있다.
본 발명의 실시예에 따른 사용자에서의 방법은, 복수의 서로 다른 정수들 중에서 하나 이상의 정수들을 조합하여 기저군을 생성하고, 각 사용자들에 대해 서로 다른 조합에 의해 생성된 상기 기저군을 할당하는 단계; 상기 각 사용자별로 할당된 기저군을 기저로 하여 해당 사용자에 할당된 키값 정보와 연산함으로써 각 사용자별 비밀 정보를 생성하고, 상기 생성된 사용자별 비밀 정보를 상기 각 사용자들이 서버로부터 수신하는 단계; 상기 복수의 사용자들 중에서 인가된 사용자들만이 상기 비밀 정보로부터 기저군을 제거할 수 있도록, 상기 기저군 생성에 사용된 정수와 하나 이상의 인가된 사용자들의 키값 정보들을 연산하여 역기저 매개값을 생성하고, 상기 생성된 역기저 매개값을 상기 각 사용자들이 상기 서버로부터 수신하는 단계; 상기 서버로부터 수신된 상기 각 사용자별 비밀 정보 및 상기 역기저 매개값에 의해 그룹키를 산출하는 단계; 및 상기 산출한 그룹키에 의해 상기 서버로부터 수신된 세션키를 복호화하는 단계;를 포함하는 것을 특징으로 한다.
상기 기저군 생성을 위한 각 정수들은 서로 "서로소"관계에 있는 것들인 것을 특징으로 한다.
또한, 상기 역기저 매개값은 보안을 위하여 하나 이상의 난수들을 더 포함하여 연산하는 것을 특징으로 한다.
이때, 상기 역기저 매개값에 연산되는 하나 이상의 난수들은 상기 그룹키 생성의 연산을 위해 사용하는 것을 특징으로 한다.
또한, 상기 서버는 서버 고유의 난수값을 생성하고, 상기 사용자별 비밀 정보 연산에서 상기 생성된 서버 고유의 난수값을 포함하여 연산하는 것을 특징으로 한다.
한편, 상기 역기저 매개값에 연산되는 하나 이상의 난수들은 상기 서버 고유의 난수값과 연산하여 수신되는 것을 특징으로 한다.
또한, 상기 생성되는 각 사용자별 비밀 정보의 기저는 상기 각 사용자별로 할당된 기저군과 모든 사용자들에게 공통으로 사용되는 공통 정수로 구성하며, 상기 그룹키는 상기 공통 정수를 기저로 하여 생성하는 것을 특징으로 한다.
이때, 상기 각 사용자들은 상기 서버로부터 상기 해당 기저군 생성을 위한 조합에 대한 정보를 수신하는 것을 특징으로 한다.
한편, 상기 사용자에 할당된 키값 정보는 상기 서버로부터 브로드캐스트 메시지 전송시마다 수신할 수도 있다.
본 발명의 다른 실시예에 따른 사용자에서의 방법은, 브로드캐스트 메시지를 수신하는 복수의 사용자들로 구성된 하나의 상위 그룹을 복수의 그룹들로 분할하고, 각 그룹별로 해당 사용자들에게 키값을 할당하는 단계; 상기 각 그룹별로 복수의 서로 다른 정수들 중에서 하나 이상의 정수들을 조합하여 기저군을 생성하고, 상기 그룹내의 각 사용자들에 대해 서로 다른 조합에 의해 생성된 상기 기저군을 할당하는 단계; 상기 각 사용자별로 할당된 기저군을 기저로 하여 상기 각 그룹별로 해당 사용자에 할당된 키값 정보와 연산함으로써 각 사용자별 비밀 정보를 생성하고, 상기 생성된 사용자별 비밀 정보를 상기 각 사용자들이 서버로부터 수신하는 단계; 상기 복수의 사용자들 중에서 인가된 사용자들만이 상기 비밀 정보로부터 기저군을 제거할 수 있도록, 상기 기저군 생성에 사용된 정수와 하나 이상의 인가된 사용자들의 키값 정보들을 연산하여 역기저 매개값을 생성하고, 상기 생성된 역기저 매개값을 상기 각 해당 그룹의 사용자들이 상기 서버로부터 수신하는 단계; 상기 서버로부터 수신된 상기 각 사용자별 비밀 정보 및 상기 역기저 매개값에 의해 각 그룹별 그룹키를 산출하는 단계; 및 상기 산출한 그룹별 그룹키에 의해 상기 서버로부터 수신된 세션키를 복호화하는 단계;를 포함하는 것을 특징으로 한다.
이때, 상기 분할된 각 그룹별로 난수를 할당하고, 상기 각 그룹별 사용자들이 수신하는 상기 사용자별 비밀 정보의 연산에 상기 해당 그룹에 할당된 난수를 더 포함하여 연산하는 것을 특징으로 한다.
한편, 상기 역기저 매개값의 연산에 상기 해당 그룹에 할당된 난수를 더 포함하여 연산하는 것을 특징으로 한다.
또한, 상기 각 그룹별로 생성하는 그룹키는 상기 해당 그룹에 할당된 난수를 더 포함하여 연산하는 것을 특징으로 한다.
상기 기저군 생성을 위한 각 정수들은 서로 "서로소"관계에 있는 것들인 것을 특징으로 한다.
상기 역기저 매개값은 보안을 위하여 하나 이상의 난수들과 더 포함하여 연산하는 것을 특징으로 한다.
상기 역기저 매개값에 연산되는 하나 이상의 난수들은 상기 그룹키 생성의 연산을 위해 사용하는 것을 특징으로 한다.
한편, 상기 서버는 서버 고유의 난수값을 생성하고, 상기 사용자별 비밀 정보 연산에서 상기 생성된 서버 고유의 난수값을 더 포함하여 연산하는 것을 특징으로 하는 한다.
이때, 상기 역기저 매개값에 연산되는 하나 이상의 난수들은 상기 서버 고유의 난수값과 연산하여 각 사용자들이 수신하는 것을 특징으로 한다.
상기 생성되는 각 사용자별 비밀 정보의 기저는 상기 각 사용자별로 할당된 기저군과 모든 사용자들에게 공통으로 사용되는 공통 정수로 구성하며, 상기 그룹키는 상기 공통 정수를 기저로 하여 생성하는 것을 특징으로 한다.
또한, 상기 각 그룹별 사용자들은 상기 해당 기저군 생성을 위한 조합에 대한 정보를 상기 서버로부터 수신하는 것을 특징으로 한다.
상기 역기저 매개값의 연산에서 지수부와 기저부를 각각 분리하여 연산하고, 상기 연산된 역기저 매개값의 지수부와 기저부를 각각 서버로부터 수신할 수도 있다.
한편, 상기 각 그룹들을 복수의 서브 그룹들로 분할하고, 상기 각 서브 그룹별로 해당 사용자들에게 키값을 할당하며, 상기 사용자별 비밀 정보 생성에 있어서 상기 각 서브 그룹별로 해당 사용자에 할당된 키값 정보와 연산하는 것을 특징으로 한다.
이때, 상기 그룹들 중에서 특정 그룹에 비인가된 사용자가 없을 경우, 상기 해당 그룹에는 각 그룹별로 할당된 별도의 키값을 그룹키로 설정하는 것을 특징으로 한다.
상기 사용자에 할당된 키값 정보를 브로드캐스트 메시지 전송시마다 상기 서버로부터 수신할 수도 있다.
종래 기술에서 상술한 바와 같이 Fiat 알고리즘에서 각 사용자들에게 제공되는 비밀 정보
Figure 112004063062128-pat00018
은 미지수 O 한 개와 식 한 개를 제공한다. 이것으로, 이론(즉, Information theory)상 미지수 O를 계산할 수 있다. 그러나, N이 큰 두 소수의 합성수이면, '소인수분해의 어려움'으로 인해 계산상(Computation theory) O를 구하는 것은 불가능하다. 상기 Fiat 알고리즘은 이 점에 근거하여 1-resilient 시스템이라 할 수 있다. 반면 상술한 바와 같이 두 사용자의 비밀 정보 ui와 uj가 주어지면 미지수 한 개와 식 두 개인 상황이 되며, 상기 '소인수 분해의 어려움'의 논리가 여기에도 적용된다는 보장이 없다. 따라서, 실제로 공모된 두 사용자는 미지수 O를 쉽게 구할 수가 있게 된다.
본 발명은 상기 Fiat 알고리즘이 사용자마다 같은 기저(base), 즉 O를 사용하기 때문에 공모 공격에 노출될 수 있게 되는 점을 극복하기 위하여, 각 사용자마다 서로 다른 기저를 부여하게 된다. 이를 위하여 본 발명에서는 조합(combination)을 사용하게 된다. 또한, 본 발명의 변형된 실시예로서 탈퇴자의 처리를 위한 추가적인 메카니즘을 제안한다.
이하, 본 발명에 따라 각 사용자들에게 기저를 할당하는 방법을 설명한다.
먼저, C개의 정수 O1,..., OC는 1<Os<N이고, gcd(Os,N)=1을 만족한다고 가정하자. 이때, 이들 C개의 정수에서 d개의 정수를 뽑는 서로 다른 조합의 수는 CCd이다. 여기서, 각 사용자 비밀 정보의 기저로 O 대신에 상기 d개의 정수 곱으로서 기저군을 생성하고, 상기생성된 기저군, 즉
Figure 112005020545915-pat00019
를 사용하면 Fiat의 알고리즘을 공격한 방법에 대해 안전한 시스템을 만들 수가 있게 된다. 그러나, 충분히 많은 이러한 정수 곱들은 적은 사용자의 공모로도 알고자 하는 미지수보다 많은 식을 제공할 수가 있으므로 안전을 보장하지는 못하게 된다. 따라서, 안전성을 얻기 위하여 충분한 식을 제공하지 말아야 한다. 즉, 상기 CCd개의 모든 조합을 사용하지 않음으로써 가능한 모든 공격에 대비할 수가 있게 된다.
이하, 상기 본 발명의 기본 실시예에 따른 조합에 기반한 브로드캐스트 암호화 방법을 보다 구체적으로 설명하기로 한다.
<기본 실시예>
본 발명의 기본 실시예를 설명하기에 앞서, 먼저 상기 기본 실시예의 설명에 필요한 계수들을 다음과 같이 정의하기로 한다.
- U : Set of users with |U| = n
- P : Set of privileged users with |U-P| = r
- N : RSA composite
- ω, v :Random numbers
- z : A large integer
- κ : A session key
- O : A positive integer satisfying 1 < O < N
-
Figure 112004063062128-pat00020
: Positive integers satisfying 1 < Os < N and gcd(Os, N)= 1. C,d : Positive integers satisfying
Figure 112004063062128-pat00021
-
Figure 112004063062128-pat00022
: Positive integers satisfying 1 < Os < N and gcd(Os, N)= 1.
Figure 112004063062128-pat00023
: Positive integers satisfying
Figure 112004063062128-pat00024
- usri : An user in U where 1≤i≤n.
Figure 112004063062128-pat00025
: A set of integer for usri where σi is an 1-1 map from {1,..., d} to {1, ..., C}, σi(s)<σi(s+1) and σi's are distinct.
- usrij : An user in U where 1≤i≤L, 1≤j≤l and Ll=n.
Figure 112004063062128-pat00026
: A set of integer for usrij where σij is an 1-1 map from {1,..., d} to {1, ..., C}, σij(s)<σij(s+1) and σij's are distinct.
- usrijk : An user in U where 1≤i≤L, 1≤j≤l, 1≤k≤m and Llm=n.
Figure 112004063062128-pat00027
where k∈I⊂{1, ..., m}: A set of integer for usrijk where σI ijk is an 1-1 map from {1,...,
Figure 112004063062128-pat00028
} to {1, ...,
Figure 112004063062128-pat00029
}, σI ijk(s)<σI ijk(s+1) and σI ijk's are distinct. Ui : {usr ijk∈U | 1≤j≤l, 1≤k≤m}
- Uij : {usrijk∈U | 1≤k≤m}
- Ki : A secret key for usri for 1≤i≤n
- y1, ..., yn : Distinct primes
- KP : Group key for P (
Figure 112004063062128-pat00030
)
종래의 Fiat 알고리즘에서는
Figure 112004063062128-pat00031
를 사용자 비밀 정보로 사용함으로 인해 O가 유출되었으나, 본 발명의 기본 실시예에 따른 방법에서는 각 사용자마다 서로 다른 값
Figure 112004063062128-pat00032
를 기저로 할당하기 때문에 O가 유출되는 단점을 보완할 수가 있게 된다.
이하, 상기 기본 실시예에 따른 브로드캐스트 암호화 수행 절차를 설명한다. 상기 브로드캐스트 암호화 절차는 서버의 초기 설정 및 사용자 가입을 나타내는 설정(setup) 단계, 세션 키(session key)를 복호화 하기 위해서 서버와 합법적인 사용자 간에 공유하는 그룹 키(group key)를 계산하는 그룹 키 계산(group key calculation) 단계, 상기 세션 키를 분배하는 암호화 메시지 브로드캐스트(secret message broadcast) 단계로 나누어진다.
한편, 상기 절차 중에서 제1 단계인 설정 단계에서 사용자의 저장량이 결정되며, 제2 단계인 그룹 키 계산 단계에서 전송량과 계산량이 결정된다. 제3 단계인 상기 암호화 메시지 브로드캐스트 단계는 공유된 그룹 키로 세션 키를 암호화하여 전송하는 단계이다.
상술한 바와 같이 본 발명의 기본 실시예에서는 각 사용자마다 그룹 키 계산을 위해 저장하게 되는 개인 비밀 정보의 기저로
Figure 112005020545915-pat00033
를 사용한다. 이때, 모든 사용자의 기저는 서로 다른 값을 가지도록 할당된다. 한편, 이와 같이 사용자의 기저가 서로 다르게 되면, 그룹 키를 구하는 데 하기 <수학식 4>와 같은 그룹키 산출 과정이 필요하게 된다.
Figure 112005020545915-pat00123
상기 <수학식 4>에서 ω 및 v는 매 전송시에 서버가 생성하는 난수로서 그룹 키들을 여러 개 모아서 공모 공격에 이용되는 것을 막기 위한 값이다. 또한, 서버의 비밀 정보인 z, 전송되는 정보인 V와 함께, 상기 ω 및 v는 전송되는 정보 Os를 이용하여 서버의 비밀 정보를 알아내는 공격에 대비하기 위한 값이다.
먼저, 상기 제1 단계로서 설정 단계는 다음과 같다.
서버에서는 초기 설정값으로서, 모든 사용자 i 및 s에 대하여 N, yi, C, d, O, Os 및 σi를 생성한다. 여기서 s는 사용자를 나타내는 임의의 변수를 의미한다. 그런 다음, 상기 서버에서는 각 사용자별로 그룹 키 산출을 하기 위한 Ki를 하기 <수학식 5>에 의해 생성하게 된다.
Figure 112004063062128-pat00035
상기 <수학식 5>를 참조하면, 상기 각 사용자별 비밀 정보 Ki에 대한 기저로서 상술한 바와 같이
Figure 112006070173402-pat00124
를 사용하였음을 알 수 있다. 이때, 상기
Figure 112006070173402-pat00125
는 복수의 서로 다른 정수들(즉, 서로 "서로소"관계에 있는 정수들) 중에서 하나 이상의 정수들을 조합하여 생성한 기저군이며, 각 사용자마다 다른 조합 방법을 가지게 된다. 상기 조합 방법은 상기 O의 인덱스인 σi로서 구분된다. 또한, 상기 O는 상기 정수들 중에서 하나의 값으로서 모든 사용자들의 기저에 공통으로 포함되는 값이다. 따라서, 상기 각 사용자는 상기 비밀 정보 Ki에서 후술하는 연산에 의해 상기 기저군을 제거함으로써 그룹키 값을 산출하게 된다.
예컨대, C개의 정수에서 d개의 정수를 선택하여 조합할 경우, CCd 개의 가능한 조합이 생기게 된다. 이때, 상기 조합의 수는 사용자의 수보다 많도록 설정하는 것이 바람직하다. 따라서, 상기 각 사용자마다 서로 다른 조합에 의해 생성된 기저군을 할당할 수가 있게 된다.
또한, 상기 사용자별 비밀 정보 Ki의 지수부는 각 사용자별로 할당된 키값 정보 yi가 된다. 상기 키값 정보는 모든 사용자들이 공유할 수 있으나, 상기 비밀 정보 Ki는 해당 사용자만이 알게 되는 값이다. 한편, 상기 비밀 정보의 지수부에 포함된 z는 서버에서 생성하는 서버 고유의 난수값으로서 상기 비밀 정보의 보안을 위하여 추가되는 값이다.
한편, 모든 사용자들에게는 공통으로 N, yi, σi를 제공하게 된다. 상기 N값은 RSA 합성(composite) 값으로서 상당히 큰 수를 가지게 되며, 상기 N값의 범위 내에서 상기 기저를 위한 정수 O값들을 결정하게 된다. 상기 yi는 상술한 바와 같이 각 사용자별로 할당하는 키값 정보이며, 상기 σi은 상술한 기저군을 생성하는 조합에 대한 정보이다.
이때, 상기 각 사용자 usri는 상기 서버로부터 전송된 Ki 값을 포함하여, 상기 공통으로 전송된 N, {ys | 1≤s≠i≤n} 및 σi를 저장하게 된다.
이렇게 하여 제1 단계가 완료되며, 제2 단계로서 그룹키 산출을 다음과 같이 수행하게 된다.
먼저, 서버에서는 ω, v를 생성하고, 하기 <수학식 6>에 의해 V를 계산하여 브로드캐스트하게 된다.
Figure 112004063062128-pat00036
그런 다음, 하기 <수학식 7>에 의해 1≤s≤C에 대해
Figure 112005020545915-pat00037
를 계산하여 브로드캐스트하게 된다.
Figure 112004063062128-pat00038
이때, 상기
Figure 112005020545915-pat00126
는 각 사용자들이 그룹키 생성을 위하여 상기 기수신된 비밀 정보에서의 기저군을 제거하기 위한 역기저 매개값이 된다.
상기 <수학식 7>을 참조하면, 상기 역기저 매개값은 상기 기저군 생성을 위해 사용된 각 정수(Os)를 기저로 하고, 모든 인가된 사용자들(P)에 할당된 사용자별 키값 정보를 지수로 가지게 된다.
한편, 상기 역기저 매개값에서 기저부와 지수부에 각각 연산된 ω 및 v는 서버에서 생성되는 난수값으로서, 상기 역기저 매개값을 보안상 안전하게 전송하기 위하여 매 전송시마다 생성되어 상기 역기저 매개값의 연산에 사용된다.
또한, 상기 v값은 상기 <수학식 6>에서 상술한 바와 같이 서버 고유의 난수값 z와 연산되어 모든 사용자들에게 별도로 전송된다.
한편, 상기 각 사용자 usri는 상기 서버로부터 브로드캐스트 된 값들(즉, 각 사용자별 키값 yi, 조합에 대한 정보 σi, 인가된 사용자들(P)에 대한 정보, 각 사용자별 비밀 정보 Ki, 역기저 매개값
Figure 112005020545915-pat00127
등)을 사용하여 그룹키 값인 KP값을 하기 <수학식 8>에 의해 산출하게 된다.
Figure 112006070173402-pat00131
상기 <수학식 8>과 같이 그룹키가 산출되면, 상기 각 사용자들은 상기 산출된 그룹키에 의해 서버로부터 수신된 세션키를 복호화하게 된다.
즉, 서버에서는 상술한 <수학식 4>에 의해 그룹키 KP를 생성하고, 상기 생성된 그룹키로 세션키 k를 암호화하여 E(KP, k)를 각 사용자들에게 전송한다. 이때, 각 사용자들은 상술한 바와 같이 상기 <수학식 8>에 의해 산출된 그룹키에 의해 서버로부터 수신된 상기 E(KP, k)를 복호화하여 세션키를 구하게 된다.
상기 본 발명의 기본 실시예에 따른 방법에 의한 성능 분석은 하기 <표 1>과 같다. 상기 성능 분석에서 log N =1024, log k = 128, log yj =log yI j = b, r = 216, n = 220 이라고 가정한다.
기본실시예 전송량(kbyte) 저장량(kbyte) 계산량(bit)
b, C, d log N + Clog N + log k 2log N + (n-1) log yj + 16d log N + (n-1)log yj
25, 26, 10 3.39 3200,27 26,215,424
상기 <표 1>을 참조하면, 상술한 본 발명에 따른 기본 실시예는 종래의 Fiat 알고리즘의 단점인 공모 공격의 문제점을 보완하였으나, 다소의 추가적인 전송량 증가가 수반되었다. 따라서, 이하 상기 기본 실시예에 비하여 전송량, 저장량 및 계산량을 줄이기 위한 본 발명에 따른 5가지 다른 실시예들을 제안한다.
이하에서는 도면을 참조하여 본 발명의 각 실시예들을 보다 상세하게 설명한다.
<제1 실시예>
본 발명의 제1 실시예에 따른 방법은 기본적으로 많은 계산량과 저장량을 필요로 하는 Fiat 알고리즘 및 상술한 기본 실시예를 보완하기 위하여, 전체 사용자(상위 그룹) n을 L 개의 그룹으로 나누어 각 그룹에 큰 난수 xi를 할당하고, l(=n/L)개의 소수를 상기 구분된 각 그룹의 l명의 사용자들에게 할당하게 된다. 상기 각 그룹은 같은 소수를 사용하지만 서버의 비밀 정보인 xi에 의해 구별되며, 보안이 유지된다. 따라서, 이로 인하여 계산량과 저장량이 현저히 줄어들게 된다.
본 발명의 제1 실시예를 설명하기에 앞서, 먼저 상기 제1 실시예 및 후술할 제2 실시예의 설명에 필요한 계수들을 다음과 같이 정의하기로 한다.
- U : Set of users with |U| = n
- P : Set of privileged users with |U-P| = r
- N : RSA composite
- ω, v :Random numbers
- z : A large integer
- κ : A session key
- O : A positive integer satisfying 1 < O < N
-
Figure 112004063062128-pat00040
: Positive integers satisfying 1 < Os < N and gcd(Os, N)= 1. C,d : Positive integers satisfying
Figure 112004063062128-pat00041
-
Figure 112004063062128-pat00042
: Positive integers satisfying 1 < Os < N and gcd(Os, N)= 1.
Figure 112004063062128-pat00043
: Positive integers satisfying
Figure 112004063062128-pat00044
- usri : An user in U where 1≤i≤n.
Figure 112004063062128-pat00045
: A set of integer for usri where σi is an 1-1 map from {1,..., d} to {1, ..., C}, σi(s)<σi(s+1) and σi's are distinct.
- usrij : An user in U where 1≤i≤L, 1≤j≤l and Ll=n.
Figure 112004063062128-pat00046
: A set of integer for usrij where σij is an 1-1 map from {1,..., d} to {1, ..., C}, σij(s)<σij(s+1) and σij's are distinct.
- usrijk : An user in U where 1≤i≤L, 1≤j≤l, 1≤k≤m and Llm=n.
Figure 112004063062128-pat00047
where k∈I⊂{1, ..., m}: A set of integer for usrijk where σI ijk is an 1-1 map from {1,...,
Figure 112004063062128-pat00048
} to {1, ...,
Figure 112004063062128-pat00049
}, σI ijk(s)<σI ijk(s+1) and σI ijk's are distinct. Ui : {usr ijk∈U | 1≤j≤l, 1≤k≤m}
- Uij : {usrijk∈U | 1≤k≤m}
- Kij : A secret key for usrij for 1≤i≤L, 1≤j≤l and Ll=n
- x1, ..., xL : Large integers
- y1, ..., yL : Distinct primes
- KP1,..., KPL : Subgroup keys for P (
Figure 112004063062128-pat00050
)
도 2는 본 발명의 제1 및 제2 실시예에 따른 사용자 집합을 분할하는 개념을 나타낸 도면이다. 상기 도 2를 참조하면, 사용자 집합(상위 그룹)을 L개의 그룹으로 나누게 된다. 상기 도 2에서는 사용자 집합을 P1(201) 내지 P6(206)의 6개의 그룹으로 분할하였다.
이때, 각각의 그룹을 구성하는 1명의 사용자에게는 각각 l=n/L 개의 소수 y1, ..., yl이 할당된다. 즉, 크기 l의 사용자 집합 L개에 각각 상술한 본 발명에 따른 기본 실시예를 적용하게 되는 것이다. 이렇게 함으로써 각 그룹별로 서로 다른 그룹키들이 생성될 수 있다. 즉, 상기 그룹키는 최대 L개가 생성되며, 1≤i≤L에 대하여 하기 <수학식 9>와 같이 설정된다.
Figure 112004063062128-pat00051
상기 <수학식 9>에서 xi는 각 그룹을 구분하기 위하여 사용되는 난수값이다. 그러나, 각 사용자의 기저는 안전을 위하여 상술한 기본 실시예에서와 같이 n명 모두 다르게 설정되어야 한다.
이하, 상기 제1 실시예에 따른 브로드캐스트 암호화 수행 절차를 설명한다. 상기 제1 실시예에 따른 브로드캐스트 암호화 절차는 상술한 기본 실시예에서와 마찬가지로 서버의 초기 설정 및 사용자 가입을 나타내는 설정(setup) 단계, 세션 키(session key)를 복호화 하기 위해서 서버와 합법적인 사용자 간에 공유하는 서브 그룹키(group key)를 계산하는 서브 그룹키 계산(group key calculation) 단계, 상기 세션 키를 분배하는 암호화 메시지 브로드캐스트(secret message broadcast) 단계로 나누어진다.
한편, 상기 절차 중에서 1 단계인 설정 단계에서 사용자의 저장량이 결정되며, 2 단계인 서브 그룹 키 계산 단계에서 전송량과 계산량이 결정된다. 3 단계인 상기 암호화 메시지 브로드캐스트 단계는 공유된 서브 그룹 키로 세션 키를 암호화하여 전송하는 단계이다.
먼저, 상기 제1 단계로서 설정 단계는 다음과 같다.
서버에서는 초기 설정값으로서, 모든 i, j 및 s에 대하여 N, xi, yi, C, d, O, Os 및 σij를 생성한다. 그런 다음, 상기 서버에서는 각 사용자 usrij 별로 그룹키 산출을 하기 위한 해당 그룹 내에서의 각 사용자별 비밀 정보Kij를 모든 i 및 j에 대해서 하기 <수학식 10>에 의해 생성하게 된다.
Figure 112004063062128-pat00052
상기 <수학식 10>을 참조하면, 해당 그룹 내에서의 상기 각 사용자별 비밀 정보 Kij에 대한 기저로서 상술한 바와 같이
Figure 112006070173402-pat00128
를 사용하였음을 알 수 있다. 이때, 상기
Figure 112006070173402-pat00129
는 복수의 서로 다른 정수들(즉, 서로 "서로소"관계에 있는 정수들) 중에서 하나 이상의 정수들을 조합하여 생성한 기저군이며, 해당 그룹 내의 각 사용자마다 다른 조합 방법을 가지게 된다. 상기 조합 방법은 상기 O의 인덱스인 σij로서 구분된다. 또한, 상기 O는 상기 정수들 중에서 하나의 값으로서 모든 사용자들의 기저에 공통으로 포함되는 값이다. 따라서, 상기 각 사용자는 상기 비밀 정보 Kij에서 후술하는 연산에 의해 상기 기저군을 제거함으로써 그룹키 값을 산출하게 된다.
한편, 상기 서버에서는 보안 채널을 통해 각 사용자 usrij에게 상기 생성된 Kij 값을 전송하게 된다. 이때, 모든 i 및 j에 대해서는 N, yj, σij를 제공하게 된다.
이때, 상기 각 사용자 usrij는 상기 서버로부터 전송된 Kij 값을 포함하여, N, {ys | 1≤s≠j≤l} 및 σij를 저장하게 된다.
상기 제1 실시예에서도 상술한 기본 실시예에서와 마찬가지로 각 그룹별 사용자들에게 전송되는 비밀 정보의 기저로는 정수의 조합값이 사용된다.
이렇게 하여 제1 단계가 완료되며, 제2 단계로서 서브 그룹키(즉, 각 그룹별 그룹키) 산출을 다음과 같이 수행하게 된다.
먼저, 서버에서는 ω, v를 생성하고, 상술한 <수학식 6>에 의해 V를 계산하여 브로드캐스트하게 된다.
그런 다음, 하기 <수학식 11>에 의해 1≤i≤L, 1≤s≤C에 대해
Figure 112005020545915-pat00053
를 계산하여 브로드캐스트하게 된다.
Figure 112004063062128-pat00054
이때, 상기
Figure 112005020545915-pat00130
는 각 사용자들이 그룹키 생성을 위하여 상기 기수신된 비밀 정보에서의 기저군을 제거하기 위한 역기저 매개값이 된다.
상기 <수학식 11>을 참조하면, 상기 역기저 매개값은 상기 기저군 생성을 위해 사용된 각 정수(Os)를 기저로 하고, 모든 인가된 사용자들(P)에 할당된 사용자별 키값 정보를 지수로 가지게 된다. 이때, 상기 제1 실시예에서는 상술한 기본 실시예에서와는 달리 상기 역기저 매개값의 지수부에 그룹별로 할당된 난수값 xi를 포함하게 된다.
한편, 상기 역기저 매개값에서 기저부와 지수부에 각각 연산된 ω 및 v는 기본 실시예에서 상술한 바와 같이 서버에서 생성되는 난수값으로서, 상기 역기저 매개값을 보안상 안전하게 전송하기 위하여 매 전송시마다 생성되어 상기 역기저 매개값의 연산에 사용된다.
또한, 상기 v값도 마찬가지로 상기 <수학식 6>에서 상술한 바와 같이 서버 고유의 난수값 z와 연산되어 모든 사용자들에게 별도로 전송된다.
한편, 상기 각 사용자 usrij는 상기 서버로부터 브로드캐스트 된 값들과 기저장된 값에 의해 각 그룹 i별로 서브 그룹키 값인 KPi값을 하기 <수학식 12>에 의해 산출하게 된다.
Figure 112004063062128-pat00055
상기 <수학식 12>와 같이 그룹키가 산출되면, 상기 각 사용자들은 상기 산출된 그룹키(즉, 각 그룹별 서브 그룹키)에 의해 서버로부터 수신된 세션키를 복호화하게 된다.
즉, 서버에서는 상술한 <수학식 9>에 의해 그룹키 KPi를 생성하고, 상기 생성된 그룹키로 세션키 k를 암호화하여 E(KPi, k)를 각 사용자들에게 전송한다. 이때, 각 사용자들은 상술한 바와 같이 상기 <수학식 12>에 의해 산출된 그룹키에 의해 서버로부터 수신된 상기 E(KPi, k)를 복호화하여 세션키를 구하게 된다.
상기 본 발명의 제1 실시예에 따른 방법에 의한 성능 분석은 하기 <표 2>와 같다. 상기 성능 분석에서 log N =1024, log k = 128, log yj =log yI j = b, r = 216, n = 220 이라고 가정한다.
제1 실시예 전송량(kbyte) 저장량(kbyte) 계산량(bit)
b, l, C, d log N+Clog N+Llog k 2log N+(l-1)log yj+16d log N+(l-1)log yj
13, 512, 26, 10 6688.12 1.08 7,667
14, 1024, 26, 10 3344.12 2.02 15,356
15, 2048, 26, 10 1672.12 4.02 31,729
상기 <표 2>를 참조하면, 상술한 본 발명에 따른 제1 실시예는 각 사용자들을 L개의 그룹으로 나누어 각 그룹별 서브 그룹키를 생성함으로써, 계산량과 저장 량을 줄일 수가 있게 된다.
<제2 실시예>
본 발명의 제2 실시예에 따른 방법은 상술한 제1 실시예에서 증가된 전송량을 줄이기 위하여 상술한 역기저 매개값의 지수부와 기저부를 따로 계산하여 전송한다. 이때, 상기 기저부는 난수 ω 및 v에 의해 보호받고, 지수부는 역시 서버의 비밀 정보인 xi 및 난수 ω에 의해 보호 받는다. 이렇게 함으로써 전송량을 줄일 수가 있게 된다.
이하, 상기 제2 실시예에 따른 브로드캐스트 암호화 수행 절차를 설명한다. 상기 제2 실시예에 따른 브로드캐스트 암호화 절차는 상술한 실시예들에서와 마찬가지로 서버의 초기 설정 및 사용자 가입을 나타내는 설정(setup) 단계, 세션 키(session key)를 복호화 하기 위해서 서버와 합법적인 사용자 간에 공유하는 서브 그룹 키(group key)를 계산하는 서브 그룹 키 계산(group key calculation) 단계, 상기 세션 키를 분배하는 암호화 메시지 브로드캐스트(secret message broadcast) 단계로 나누어진다.
한편, 상기 절차 중에서 1 단계인 설정 단계에서 사용자의 저장량이 결정되며, 2 단계인 서브 그룹 키 계산 단계에서 전송량과 계산량이 결정된다. 3 단계인 상기 암호화 메시지 브로드캐스트 단계는 공유된 서브 그룹 키로 세션 키를 암호화하여 전송하는 단계이다.
먼저, 상기 제1 단계로서 설정 단계는 상술한 제1 실시예와 동일하다. 따라서, 이에 대한 구체적인 설명은 생략하기로 한다.
상기 제1 단계가 완료되며, 제2 단계로서 서브 그룹 키 산출을 다음과 같이 수행하게 된다.
먼저, 서버에서는 ω, v를 생성하고, 상술한 <수학식 6>에 의해 V를 계산하여 브로드캐스트하게 된다.
그런 다음, 하기 <수학식 13>에 의해 1≤s≤C에 대해 역기저 매개값의 기저부
Figure 112005020545915-pat00056
를 계산하여 브로드캐스트하게 된다.
Figure 112004063062128-pat00057
또한, 본 발명의 제2 실시예에 따라 1≤i≤L에 대해 하기 <수학식 14>에 의해 역기저 매개값의 지수부ei를 계산하여 브로드캐스트하게 된다.
Figure 112004063062128-pat00058
한편, 상기 각 사용자 usrij는 상기 서버로부터 브로드캐스트 된 값들과 기저장된 값에 의해 각 그룹 i별로 서브 그룹키 값인 KPi값을 하기 <수학식 15>에 의해 산출하게 된다.
Figure 112004063062128-pat00059
상기 <수학식 15>와 같이 그룹키가 산출되면, 상기 각 사용자들은 상기 산출된 그룹키에 의해 서버로부터 수신된 세션키를 복호화하게 된다.
즉, 서버에서는 상술한 <수학식 9>에 의해 그룹키 KPi를 생성하고, 상기 생성된 그룹키로 세션키 k를 암호화하여 E(KPi, k)를 각 사용자들에게 전송한다. 이때, 각 사용자들은 상술한 바와 같이 상기 <수학식 15>에 의해 산출된 그룹키에 의해 서버로부터 수신된 상기 E(KPi, k)를 복호화하여 세션키를 구하게 된다.
상기 본 발명의 제2 실시예에 따른 방법에 의한 성능 분석은 하기 <표 3>과 같다. 상기 성능 분석에서 log N =1024, log k = 128, log yj =log yI j = b, r = 216, n = 220 이라고 가정한다.
제2 실시예 전송량(kbyte) 저장량(kbyte) 계산량(bit)
b, l, C, d log N+Clog N+Llog N+Llog k 2log N+(l-1)log yj+16d 2log N+(l-1)log yj
13, 512, 26, 10 291.37 1.08 8,691
14, 1024, 26, 10 147.37 2.02 16,370
15, 2048, 26, 10 75.37 4.02 31,733
상기 <표 3>을 참조하면, 상술한 본 발명에 따른 제2 실시예는 전송 데이터의 지수부와 기저부를 따로 계산하여 전송함으로써 전송량을 현저히 줄일 수가 있게 된다.
이상으로 도 2를 참조하여 본 발명의 제1 및 제2 실시예를 설명하였다. 이하, 도 3 내지 도 6을 참조하여 본 발명의 제3 내지 제 5 실시예를 설명한다.
<제3 실시예>
본 발명의 제3 실시예에 따른 방법은 상술한 실시예들에서보다 계산량을 더 줄이기 위하여 상술한 제1 실시예에서 나눈 l명의 그룹을 다시 m명의 그룹으로 나누게 된다. 이때, 상기 L개의 그룹 각각이 그룹 키를 가지는 것은 상술한 제1 실시예에서와 동일하나, 후술할 제3 실시예에서는 각각에 부여된 소수를 m명 단위로 부여하게 된다.
한편, 모든 경우의 탈퇴자 처리를 가능하게 하기 위하여 상기 m명의 사용자 집합의 모든 부분 집합에 소수를 부여하고 모든 가능한 경우의 사용자 비밀 정보는 사용자가 추가로 저장하게 된다. 이로 인해 1/m의 계산량 감소 효과가 발생하게 된다.
본 발명의 제3 실시예를 설명하기에 앞서, 먼저 상기 제3 실시예 및 후술할 제4 및 제5 실시예의 설명에 필요한 계수들을 다음과 같이 정의하기로 한다.
- U : Set of users with |U| = n
- P : Set of privileged users with |U-P| = r
- N : RSA composite
- ω, v :Random numbers
- z : A large integer
- κ : A session key
- O : A positive integer satisfying 1 < O < N
-
Figure 112004063062128-pat00060
: Positive integers satisfying 1 < Os < N and gcd(Os, N)= 1. C,d : Positive integers satisfying
Figure 112004063062128-pat00061
-
Figure 112004063062128-pat00062
: Positive integers satisfying 1 < Os < N and gcd(Os, N)= 1.
Figure 112004063062128-pat00063
: Positive integers satisfying
Figure 112004063062128-pat00064
- usri : An user in U where 1≤i≤n.
Figure 112004063062128-pat00065
: A set of integer for usri where σi is an 1-1 map from {1,..., d} to {1, ..., C}, σi(s)<σi(s+1) and σi's are distinct.
- usrij : An user in U where 1≤i≤L, 1≤j≤l and Ll=n.
Figure 112004063062128-pat00066
: A set of integer for usrij where σij is an 1-1 map from {1,..., d} to {1, ..., C}, σij(s)<σij(s+1) and σij's are distinct.
- usrijk : An user in U where 1≤i≤L, 1≤j≤l, 1≤k≤m and Llm=n.
Figure 112004063062128-pat00067
where k∈I⊂{1, ..., m}: A set of integer for usrijk where σI ijk is an 1-1 map from {1,...,
Figure 112004063062128-pat00068
} to {1, ...,
Figure 112004063062128-pat00069
}, σI ijk(s)<σI ijk(s+1) and σI ijk's are distinct. Ui : {usr ijk∈U | 1≤j≤l, 1≤k≤m}
- Uij : {usrijk∈U | 1≤k≤m}
- KI ijk where I⊂{1, ..., m}: A secret key for usrijk for 1≤i≤L, 1≤j≤l, 1≤k≤m and Llm=n
- x1, ..., xL : Large integers
- yI j : Distinct primes for 1≤j≤l and nomempty subset I of {1, ..., m} (where yφ j = 1)
-
Figure 112006070173402-pat00132
- KP1,..., KPL : Subgroup keys for P (
Figure 112004063062128-pat00070
)
도 3은 본 발명의 제3, 제4 및 제5 실시예에 따른 사용자 그룹을 재분할 하는 개념을 나타낸 도면이다. 상기 도 3을 참조하면, 상기 도 2에서와 같이 사용자 집합을 L개의 그룹으로 나누게 된다. 상기 도 3에서는 사용자 집합을 P1(301) 내지 P6(306)의 6개의 그룹으로 분할하였다. 그런 다음, 본 발명의 제3 실시예에 따라 상기 각 그룹을 복수의 서브 그룹들로 또 한번 분할하게 된다. 이때, 상술한 바와 같이 상기 L개의 그룹 각각이 그룹키를 가지는 것은 상술한 제1 실시예에서와 동일하나, 후술할 제3 실시예에서는 각각에 부여된 소수를 m명 단위로 부여하게 된다.
도 4는 상기 본 발명의 제3 실시예 및 후술할 제4 및 제5 실시예에 따른 사용자 그룹을 복수의 서브 그룹들로 재분할 하는 방법을 나타낸 도면이다. 상기 도 4를 참조하면, 사용자들을 U1 내지 U6(410, 460)으로 분할하며, 상기 각 분할된 그룹을 복수의 서브 그룹들로 재분할 하게 된다. 예컨대, 상기 분할된 그룹 U6(460)를 각 서브 그룹U61(461), U62(462), U63(463), U64(464)로 재분할하게 된다.
또한, 모든 경우의 탈퇴자 처리를 가능하게 하기 위하여 상기 m명의 사용자 집합의 모든 부분 집합에 소수를 부여하고 모든 가능한 경우의 사용자 비밀 정보는 사용자가 추가로 저장하게 된다. 한편, 상기 본 발명의 제3 실시예에 따른 그룹 키는 하기 <수학식 16>과 같다.
Figure 112004063062128-pat00071
이하, 상기 제3 실시예에 따른 브로드캐스트 암호화 수행 절차를 설명한다. 상기 제3 실시예에 따른 브로드캐스트 암호화 절차는 상술한 기본 실시예에서와 마찬가지로 서버의 초기 설정 및 사용자 가입을 나타내는 설정(setup) 단계, 세션 키(session key)를 복호화 하기 위해서 서버와 합법적인 사용자 간에 공유하는 서브 그룹키(group key)를 계산하는 서브 그룹키 계산(group key calculation) 단계, 상기 세션 키를 분배하는 암호화 메시지 브로드캐스트(secret message broadcast) 단계로 나누어진다.
한편, 상기 절차 중에서 1 단계인 설정 단계에서 사용자의 저장량이 결정되며, 2 단계인 서브 그룹 키 계산 단계에서 전송량과 계산량이 결정된다. 3 단계인 상기 암호화 메시지 브로드캐스트 단계는 공유된 서브 그룹 키로 세션 키를 암호화하여 전송하는 단계이다.
먼저, 상기 제1 단계로서 설정 단계는 다음과 같다.
서버에서는 초기 설정값으로서, 모든 i, j, k , I 및 s에 대하여 N, xi, yI j,
Figure 112005064291089-pat00072
,
Figure 112005064291089-pat00073
, O, Os 및 σI ijk를 생성한다. 그런 다음, 상기 서버에서는 각 사용자 usrijk 별로 서브 그룹키 산출을 하기 위한 사용자별 비밀 정보KI ijk를 k를 포함하는 모든 I와 모든 i, j 및 k에 대해서 하기 <수학식 17>에 의해 생성하게 된다.
Figure 112004063062128-pat00074
상기 서버에서는 보안 채널을 통해 각 사용자 usrijk에게 상기 생성된 사용자별 비밀 정보KI ijk 값을 전송하게 된다. 이때, 모든 i, j 및 k에 대해서는 N, yI j, σI ijk를 제공하게 된다.
한편, 상기 각 사용자 usrijk는 상기 서버로부터 전송된 {KI ijk | all I including k}값을 포함하여, N, {yI s | 1≤s≠j≤l, all I} 및 k를 포함하는 모든 I에 대한 σI ijk를 저장하게 된다.
이렇게 하여 제1 단계가 완료되며, 제2 단계로서 서브 그룹키 산출을 다음과 같이 수행하게 된다.
먼저, 서버에서는 ω, v를 생성하고, 상술한 <수학식 6>에 의해 V를 계산하여 브로드캐스트하게 된다.
그런 다음, 하기 <수학식 18>에 의해
Figure 112005020545915-pat00075
에 대해 역기저 매개값의 기저부
Figure 112005020545915-pat00076
를 계산하여 브로드캐스트하게 된다.
Figure 112004063062128-pat00077
또한, 본 발명의 제3 실시예에 따라 1≤i≤L에 대해 하기 <수학식 19>에 의해 역기저 매개값의 지수부ei를 계산하여 브로드캐스트하게 된다.
Figure 112004063062128-pat00078
한편, 상기 각 사용자 usrijk는 상기 서버로부터 브로드캐스트 된 값들과 기저장된 값에 의해 각 서브 그룹별로 서브 그룹 키 값인 KPi값을 하기 <수학식 20>에 의해 산출하게 된다.
Figure 112006070173402-pat00133
상기 <수학식 20>과 같이 그룹키가 산출되면, 상기 각 사용자들은 상기 산출된 그룹키(즉, 각 그룹별 서브 그룹키)에 의해 서버로부터 수신된 세션키를 복호화하게 된다.
즉, 서버에서는 상술한 <수학식 16>에 의해 그룹키 KPi를 생성하고, 상기 생성된 그룹키로 세션키 k를 암호화하여 E(KPi, k)를 각 사용자들에게 전송한다. 이때, 각 사용자들은 상술한 바와 같이 상기 <수학식 20>에 의해 산출된 그룹키에 의해 서버로부터 수신된 상기 E(KPi, k)를 복호화하여 세션키를 구하게 된다.
상기 본 발명의 제3 실시예에 따른 방법에 의한 성능 분석은 하기 <표 4>와 같다. 상기 성능 분석에서 log N =1024, log k = 128, log yj =log yI j = b, r = 216, n = 220 이라고 가정한다.
제3 실시예 전송량(kbyte) 저장량(kbyte) 계산량(bit)
b, l, m,
Figure 112004063062128-pat00080
,
Figure 112004063062128-pat00081
logN+ClogN+LlogN+Llogk (2m-1+1)logN+(2m-1-1)(l-1)log yI j+2m-116d 2logN+(l-1)logyI j
13, 256, 2, 26, 12 291.37 1.63 5,363
15, 128, 4, 28, 12 291.62 4.80 3,953
14, 512, 2, 26, 12 147.37 3.04 9,202
16, 256, 4, 28, 12 147.62 8.78 6,128
16, 1024, 2, 26, 12 75.37 6.42 18,416
17, 512, 4, 28, 12 75.62 17.22 10,735
상기 <표 4>를 참조하면, 상술한 본 발명에 따른 제3 실시예는 상술한 실시예들에서의 계산량을 줄이기 위하여 사용자가 지수승 해야만 하는 소수의 개수를 줄일 수가 있게 된다. 즉, 상술한 바와 같이 L개의 그룹 각각을 다시 m명의 사용자 그룹으로 묶게 된다. 따라서, m명의 사용자 그룹이 모여 n/L 명의 한 그룹이 되고, 상기와 같은 그룹이 L개가 있게 된다. 결국 상술한 제2 실시예에서 최대 n/L-1개의 소수를 지수승 해야 하는 것을 최대 (n/L)/m-1 개의 소수로 대체할 수가 있게 된다. 이를 위해 m 명의 그룹의 공집합이 아닌 모든 부분 집합에 대응하는 소수가 있어야 하며, 이로 인해 상기와 같이 계산량이 현저히 줄어들게 된다. 즉, m을 2 내지 6의 값으로 설정함으로써 계산량을 상당히 줄일 수가 있게 된다. 또한, 단순히 소수의 개수만을 증가시켰기 때문에 보안상의 문제도 발생하지 않는다.
<제4 실시예>
본 발명의 제4 실시예에서는 상술한 제3 실시예에서 L개의 그룹 중 특정 그룹에 탈퇴자가 없는 경우, 상기 해당 그룹에는 설정 단계에서 서버가 생성하고 사용자가 공유한 정보를 공유하도록함으로써 전송량을 보다 줄일 수가 있게 된다.
따라서, 본 발명의 제4 실시예 및 후술할 제5 실시예에서의 서브 그룹키 값은 하기 <수학식 21>과 같이 정의될 수 있다.
Figure 112004063062128-pat00082
이하, 상기 제4 실시예에 따른 브로드캐스트 암호화 수행 절차를 설명한다. 상기 제4 실시예에 따른 브로드캐스트 암호화 절차는 상술한 기본 실시예에서와 마찬가지로 서버의 초기 설정 및 사용자 가입을 나타내는 설정(setup) 단계, 세션 키(session key)를 복호화 하기 위해서 서버와 합법적인 사용자 간에 공유하는 서브 그룹키(group key)를 계산하는 서브 그룹키 계산(group key calculation) 단계, 상기 세션 키를 분배하는 암호화 메시지 브로드캐스트(secret message broadcast) 단계로 나누어진다.
먼저, 상기 제1 단계로서 설정 단계는 다음과 같다.
서버에서는 초기 설정값으로서, 상술한 제3 실시예에서와 같이 모든 i, j, k 및 s에 대하여 N, xi, yI j,
Figure 112005020545915-pat00083
,
Figure 112005020545915-pat00084
, O, Os 및 σI ijk를 생성한다. 그런 다음, 상기 서버에서는 각 사용자 usrijk 별로 서브 그룹키 산출을 하기 위한 KI ijk를 k를 포함하는 모든 I와 모든 i, j 및 k에 대해서 상술한 <수학식 17>에 의해 생성하게 된다.
아울러, 본 발명의 제4 실시예에서는 모든 i 값에 대해 서버에서 생성하고 사용자와 공유하게 되는 정보인
Figure 112004063062128-pat00085
를 추가로 생성하게 된다.
상기 서버에서는 보안 채널을 통해 k를 포함하는 모든 I에 대해 각 사용자 usrijk에게 상기 생성된 KI ijk 값 및
Figure 112004063062128-pat00086
값을 전송하게 된다. 이때, 모든 i, j, I 및 k에 대해서는 N, yI j, σI ijk를 제공하게 된다.
한편, 상기 각 사용자 usrijk는 상기 서버로부터 전송된 {KI ijk | all I including k}값을 포함하여,
Figure 112004063062128-pat00087
, N, {yI s | 1≤s≠j≤l, all I} 및 k를 포함하는 모든 I에 대한 σI ijk를 저장하게 된다.
이렇게 하여 제1 단계가 완료되며, 제2 단계로서 서브 그룹 키 산출을 다음과 같이 수행하게 된다.
먼저, 서버에서는 ω, v를 생성하고, 상술한 <수학식 6>에 의해 V를 계산하여 브로드캐스트하게 된다.
그런다음, 상기 제3 실시예에서 상술한 <수학식 18>에 의해
Figure 112004063062128-pat00088
에 대해
Figure 112004063062128-pat00089
를 계산하여 브로드캐스트하게 된다.
그런다음, 본 발명의 제4 실시예에 따라 1≤i≤L에 대해, Ui가 P에 속하지 않는 경우(즉, 특정 그룹에 탈퇴자가 존재할 경우)에 한해서 상기 제3 실시예에서의 <수학식 19>에 의해 ei를 계산하여 브로드캐스트하게 된다.
따라서, 상기 Ui가 P에 속하지 않아 상기 ei를 수신한 그룹의 각 사용자 usrijk는 상기 서버로부터 브로드캐스트 된 값들과 기저장된 값에 의해 각 서브 그룹별로 서브 그룹 키 값인 KPi값을 상술한 <수학식 20>에 의해 산출하게 된다. 반면, 상기 L개의 그룹 중 특정 그룹에 탈퇴자가 없을 경우에는 상기 1 단계에서 생 성하여 사용자와 공유하고 있는
Figure 112004063062128-pat00090
값을 사용하게 된다.
삭제
삭제
도 5는 본 발명의 제4 실시예에 따른 각 그룹별로 전송되는 메시지 형태를 나타낸 도면이다. 상기 도 5를 참조하면, 상기 각 사용자에게 전송하는 메시지는 인덱스(index)(500), 상술한 서브 그룹 키값(510) 및 상기 키 값에 의해 암호화된 컨텐츠 정보(520)로 구성된다. 이때, 상기 인덱스(500)는 각 그룹별 탈퇴자 여부 정보를 포함하는 L비트의 탈퇴자 정보 필드(510)와, P에 포함되지 않는 각각의 그룹에 대하여 주어지는 데이터 필드(502, 503)로 구성된다. 또한, 상기 P에 포함되지 않는 각각의 그룹에 대하여 주어지는 데이터 필드(502, 503)는 l개의 사용자 소그룹 Uij 중 P에 포함되는 지 여부를 표시하는 l비트의 필드(504)와 2m-1개의 소수 yj i 중 사용된 소수를 표현하는 m비트의 필드(505, 506)로 구성될 수 있다.
이때, 상기 l개의 사용자 소그룹 Uij 중 P에 포함되는 지 여부를 표시하는 l비트의 필드(504)는 l개의 사용자 소그룹 Uij 중 P에 포함되는 것은 0으로 그렇지 않은 것은 1로 표현함으로써 구별할 수 있다. 또한, 상기 사용된 소수를 표현하는 필드에서는 소수를 인덱스 i에 따라 번호를 붙이게 된다.
상기 본 발명의 제4 실시예에 따른 방법에 의한 성능 분석은 하기 <표 5>와 같다. 상기 성능 분석에서 log N =1024, log k = 128, log yj =log yI j = b, r = 216, n = 220 이라고 가정한다.
제4 실시예 전송량(kbyte) 저장량(kbyte) 계산량(bit)
b, l, m,
Figure 112004063062128-pat00091
,
Figure 112004063062128-pat00092
logN+ClogN+min(L,r)logN+Llogk (2m-1+2)logN+(2m-1-1)(l-1)logyI j+2m-116d 2logN+(l-1)logyI j
13, 256, 2, 26, 12 291.37(35.37) 1.76 5,363
15, 128, 4, 28, 12 291.62(35.62) 4.93 3,953
14, 512, 2, 26, 12 147.37(19.37) 3.17 9,202
16, 256, 4, 28, 12 147.62(19.62) 8.91 6,128
16, 1024, 2, 26, 12 75.37(11.37) 6.54 18,416
17, 512, 4, 28, 12 75.62(11.62) 17.34 10,735
상기 <표 5>를 참조하면, 상술한 제3 실시예에서는 탈퇴자가 줄어들어도 동일한 전송량을 가지게 되나, 상술한 본 발명에 따른 제4 실시예에서는 전송량의 최대값이 r<L 인 인경우 줄어들기 시작하게 된다. 상기 <표 5>의 전송량에서 괄호 안의 값은 r이 0에 근접할 때의 값이 된다.
<제5 실시예>
상술한 제3 및 제4 실시예에서 지수 연산에 사용되는 소수 yI j는 상술한 바와 같이 사용자가 저장하고 있어도 되지만, 그 양이 적으므로 매번 전송되어도 전송량이 크게 증가하지가 않게 된다. 반면 저장량을 줄일 수가 있으므로 본 발명의 제5 실시예에서는 상기 소수 yI j를 매번 전송하는 형태로 변형된 방법을 제안한다.
도 6은 본 발명의 제5 실시예에 따른 각 사용자별 그룹 분배를 나타낸 도면이다. 상기 도 6을 참조하면, 전체 사용자(즉, 상위 그룹) U에 대하여 U1 내지 U4(610 내지 640)의 그룹으로 나눌 수가 있으며, 상기 각 그룹은 복수의 서브 그룹들로 재분할하게 된다. 예컨대, 상기 그룹U1(610)은 서브 그룹 U11(611)및 U12(612)로 재분할 된다. 이때, 상기 U11(611)은 usr111과 usr112가 포함되게 된다.
이하, 상기 제5 실시예에 따른 브로드캐스트 암호화 수행 절차를 설명한다. 상기 제4 실시예에 따른 브로드캐스트 암호화 절차는 상술한 기본 실시예에서와 마찬가지로 서버의 초기 설정 및 사용자 가입을 나타내는 설정(setup) 단계, 세션 키(session key)를 복호화 하기 위해서 서버와 합법적인 사용자 간에 공유하는 서브 그룹키(group key)를 계산하는 서브 그룹키 계산(group key calculation) 단계, 상기 세션 키를 분배하는 암호화 메시지 브로드캐스트(secret message broadcast) 단계로 나누어진다.
먼저, 상기 제1 단계로서 설정 단계는 다음과 같다.
서버에서는 초기 설정값으로서, 상술한 제4 실시예에서와 같이 모든 i, j, k 및 s에 대하여 N, xi, yI j,
Figure 112005020545915-pat00093
,
Figure 112005020545915-pat00094
, O, Os 및 σI ijk를 생성한다. 그런 다음, 상기 서버에서는 각 사용자 usrijk 별로 서브 그룹키 산출을 하기 위한 KI ijk를 k를 포함하는 모든 I와 모든 i, j 및 k에 대해서 상술한 <수학식 17>에 의해 생성하게 된다.
상기 서버에서는 보안 채널을 통해 k를 포함하는 모든 I에 대해 각 사용자 usrijk에게 상기 생성된 KI ijk 값을 전송하게 된다. 이때, 모든 i, j, I 및 k에 대해서는 N, σI ijk를 제공하게 된다.
한편, 상기 각 사용자 usrijk는 상기 서버로부터 전송된 {KI ijk | all I including k}값을 포함하여, N 및 k를 포함하는 모든 I에 대한 σI ijk를 저장하게 된다.
이렇게 하여 제1 단계가 완료되며, 제2 단계로서 서브 그룹 키 산출을 다음과 같이 수행하게 된다.
먼저, 서버에서는 ω, v를 생성하고, 상술한 <수학식 6>에 의해 V를 계산하여 브로드캐스트하게 된다.
그런다음, 상기 제3 실시예에서 상술한 <수학식 18>에 의해
Figure 112004063062128-pat00095
에 대해
Figure 112004063062128-pat00096
를 계산하여 브로드캐스트하게 된다.
이때, 본 발명의 제5 실시예에 따라 1≤j≤l 및 {1,..., m} 의 모든 서브셋 I에 대하여 yI j를 브로드캐스트하게 된다.
상기와 같이 제2 단계에 따라 서브 그룹 키가 산출되면, 상술한 실시예들에서와 같이 제3 단계로서 서버는 브로드캐스트 메시지를 상기 서브 그룹 키에 의해 암호화하여 각 사용자들에게 전송하고, 상기 메시지를 수신한 각 사용자는 상기 산출한 그룹 키에 의해 상기 수신된 메시지를 복호화하게 된다.
즉, 서버에서는 메시지 k를 생성하고, 각 그룹별로 서브 그룹 키 KPi에 의해 암호화하여 E(KPi, k)를 각 사용자들에게 전송하게 된다. 각 사용자들은 상기 수신된 E(KPi, k)를 상기와 같이 산출된 서브 그룹 키 값에 의해 복호화하게 된다.
상기 본 발명의 제5 실시예에 따른 방법에 의한 성능 분석은 하기 <표 6>과 같다. 상기 성능 분석에서 log N =1024, log k = 128, log yj =log yI j = b, r = 216, n = 220 이라고 가정한다.
제5 실시예 전송량(kbyte) 저장량(kbyte) 계산량(bit)
b, l, m,
Figure 112004063062128-pat00097
,
Figure 112004063062128-pat00098
logN+ClogN+min(L,r)logN+Llogk+(2m-1)llogyI j (2m-1+2)logN+2m-116d 2logN+(l-1)logyI j
13, 256, 2, 26, 12 292.59(36.59) 0.55 5,363
15, 128, 4, 28, 12 295.14(39.14) 1.44 3,953
16, 86, 6, 30, 14 300.20(46.20) 5.13 3,408
14, 512, 2, 26, 12 150.00(22.00) 0.55 9,202
16, 256, 4, 28, 12 155.12(27.12) 1.44 6,128
18, 171, 6, 30, 14 171.26(43.51) 5.13 5,108
16, 1024, 2, 26, 12 81.37(17.37) 0.55 18,416
17, 512, 4, 28, 12 91.56(27.56) 1.44 10,735
19, 342, 6, 30, 14 125.70(61.83) 5.13 8,527
상기 <표 6>을 참조하면, 상술한 제3 및 제4 실시예에서 지수 연산에 사용되는 소수 yI j를 본 발명의 제5 실시예에서는 저장하지 않고 매번 전송하는 형태로 변형함으로써 저장량을 줄일 수가 있게 된다.
이하, 상술한 본 발명의 기본 실시예, 제1 실시예 내지 제 5 실시예에 따른 메시지 전송 절차를 도 7 내지 도 9를 참조하여 설명한다.
도 7은 본 발명의 기본 실시예에 따른 각 사용자별 키 분배 절차를 나타낸 흐름도이다. 상기 도 7을 참조하면, 본 발명의 기본 실시예에 따라 각 사용자마다 서로 다른 값을 기저로 할당(S701)하게 된다. 이때, 상술한 바와 같이 조합에 의해 기저를 생성하여 할당하게 된다. 그런다음, 그룹키 생성을 위한 각 초기화 값을 설정(S702)하게 되며, 상기 서로 다른 기저를 조합하여 그룹키를 생성(S703)하게 된다. 마지막으로 세션 키를 분배하고 브로드캐스트 메시지를 전송(S704)함으로써 브로드캐스트 메시지 전송 절차가 종료된다.
도 8은 본 발명의 제1 및 제2 실시예에 따른 각 사용자별 키 분배 절차를 나타낸 흐름도이다. 상기 도 8을 참조하면, 본 발명의 제1 및 제2 실시예에 따라 각 사용자 집합을 L개의 그룹으로 분할(S801)하게 된다. 그런다음 각 그룹에 난수 xi를 할당(S802)하게 된다. 그런다음, n/L개의 소수를 각 그룹 사용자에게 할당(S803)하고, L개의 서브 그룹키를 생성(S804)하게 된다.
도 9는 본 발명의 제3, 제4 및 제5 실시예에 따른 각 사용자별 키 분배 절차를 나타낸 흐름도이다. 상기 도 9를 참조하면, 본 발명의 제3 내지 제5 실시예에 따라 각 사용자 집합을 L개의 그룹으로 분할(S901)하게 된다. 그런다음 다시 l명의 각 그룹을 m명의 그룹으로 분할(S902)하게 된다. 상기 l명 각각에 부여된 소수를 m명 단위로 부여(S903)한 후, L개의 서브 그룹키를 생성(S904)하게 된다.
이하, 도 10 및 도 11을 참조하여 본 발명의 실시예들의 성능과 종래 기술을 그래프로 비교하여 설명한다.
도 10은 본 발명의 실시예들의 전송 오버헤드를 종래 기술과 비교한 그래프이다. 상기 도 10을 참조하면, 본 발명의 실시예에 따른 방법들(1001, 1002, 1003)이 종래 기술(IBM의 SD 알고리즘)(1004)에 비해 탈퇴자의 수가 증가함에 따라 전송량 오버헤드가 현저히 줄어들게 됨을 알 수 있다.
도 11은 본 발명의 실시예들의 인덱스 오버헤드를 종래 기술과 비교한 그래프이다. 상기 도 11을 참조하면, 본 발명의 실시예에 따른 방법(1101)이 종래 기술(IBM의 SD 알고리즘)(1102)에 비해 탈퇴자의 수가 증가함에 따라 인덱스 오버헤드가 현저히 줄어들게 됨을 알 수 있다.
이상 설명한 바와 같이, 본 발명에 따르면, 종래의 브로드캐스트 암호화 방법이 공모 공격에 노출될 수 있게 되는 점을 극복하기 위하여, 각 사용자마다 조합에 의해 서로 다른 기저를 부여함으로써 안전성을 가지게 되는 장점이 있다. 또한, 본 발명의 다양한 실시예들에 의해 브로드캐스트 암호화에 필요한 저장량, 전송량, 계산량 등을 현저히 줄일 수가 있게 된다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.

Claims (48)

  1. 서버에서 복수의 서로 다른 정수들 중에서 하나 이상의 정수들을 조합하여 기저군을 생성하고, 각 사용자들에 대해 서로 다른 조합에 의해 생성된 상기 기저군을 할당하는 단계;
    상기 각 사용자별로 할당된 기저군을 기저로 하여 해당 사용자에 할당된 키값 정보와 연산함으로써 각 사용자별 비밀 정보를 생성하고, 상기 생성된 사용자별 비밀 정보를 상기 각 사용자들에게 전송하는 단계;
    상기 복수의 사용자들 중에서 인가된 사용자들만이 상기 비밀 정보로부터 기저군을 제거할 수 있도록, 상기 기저군 생성에 사용된 정수와 하나 이상의 인가된 사용자들의 키값 정보들을 연산하여 역기저 매개값을 생성하고, 상기 생성된 역기저 매개값을 각 사용자들에게 전송하는 단계; 및
    상기 인가된 사용자들의 키값 정보들에 의해 그룹키를 생성하고, 상기 생성된 그룹키에 의해 세션키를 암호화하여 상기 각 사용자들에게 전송하는 단계;를 포함하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  2. 제1항에 있어서,
    상기 기저군 생성을 위한 각 정수들은 서로 "서로소"관계에 있는 것들인 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  3. 제1항에 있어서,
    상기 역기저 매개값은 보안을 위하여 하나 이상의 난수들을 더 포함하여 연산하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  4. 제3항에 있어서,
    상기 역기저 매개값에 연산되는 하나 이상의 난수들은 상기 그룹키 생성의 연산을 위해 사용하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  5. 제1항에 있어서,
    상기 서버는 서버 고유의 난수값을 생성하고, 상기 사용자별 비밀 정보 연산에서 상기 생성된 서버 고유의 난수값을 포함하여 연산하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  6. 제1항에 있어서,
    상기 역기저 매개값은 보안을 위하여 하나 이상의 난수들을 더 포함하여 연산하고,
    상기 서버는 서버 고유의 난수값을 생성하여 상기 사용자별 비밀 정보 연산에서 상기 생성된 서버 고유의 난수값을 포함하여 연산하며,
    상기 역기저 매개값에 연산되는 하나 이상의 난수들은 상기 서버 고유의 난수값과 연산하여 각 사용자들에게 전송하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  7. 제1항에 있어서,
    상기 생성되는 각 사용자별 비밀 정보의 기저는 상기 각 사용자별로 할당된 기저군과 모든 사용자들에게 공통으로 사용되는 공통 정수로 구성하며, 상기 그룹키는 상기 공통 정수를 기저로 하여 생성하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  8. 제1항에 있어서,
    상기 서버는 상기 각 사용자들에게 상기 해당 기저군 생성을 위한 조합에 대한 정보를 전송하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  9. 제1항에 있어서,
    상기 서버는 상기 사용자에 할당된 키값 정보를 브로드캐스트 메시지 전송시마다 전송하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  10. 서버에서 브로드캐스트 메시지를 수신하는 복수의 사용자들로 구성된 하나의 상위 그룹을 복수의 그룹들로 분할하고, 각 그룹별로 해당 사용자들에게 키값을 할당하는 단계;
    상기 각 그룹별로 복수의 서로 다른 정수들 중에서 하나 이상의 정수들을 조합하여 기저군을 생성하고, 상기 그룹내의 각 사용자들에 대해 서로 다른 조합에 의해 생성된 상기 기저군을 할당하는 단계;
    상기 각 사용자별로 할당된 기저군을 기저로 하여 상기 각 그룹별로 해당 사용자에 할당된 키값 정보와 연산함으로써 각 사용자별 비밀 정보를 생성하고, 상기 생성된 사용자별 비밀 정보를 상기 각 사용자들에게 전송하는 단계;
    상기 복수의 사용자들 중에서 인가된 사용자들만이 상기 비밀 정보로부터 기저군을 제거할 수 있도록, 상기 기저군 생성에 사용된 정수와 하나 이상의 인가된 사용자들의 키값 정보들을 연산하여 역기저 매개값을 생성하고, 상기 생성된 역기저 매개값을 상기 해당 그룹의 각 사용자들에게 전송하는 단계; 및
    상기 인가된 사용자들의 키값 정보들에 의해 상기 각 그룹별로 그룹키를 생성하고, 상기 생성된 그룹키에 의해 세션키를 암호화하여 상기 각 사용자들에게 전송하는 단계;를 포함하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  11. 제10항에 있어서,
    상기 분할된 각 그룹별로 난수를 할당하고, 상기 각 그룹별 사용자들에게 전송되는 상기 사용자별 비밀 정보의 연산에 상기 해당 그룹에 할당된 난수를 더 포함하여 연산하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  12. 제11항에 있어서,
    상기 역기저 매개값의 연산에 상기 해당 그룹에 할당된 난수를 더 포함하여 연산하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  13. 제11항에 있어서,
    상기 각 그룹별로 생성하는 그룹키는 상기 해당 그룹에 할당된 난수를 더 포함하여 연산하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  14. 제10항에 있어서,
    상기 기저군 생성을 위한 각 정수들은 서로 "서로소"관계에 있는 것들인 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  15. 제10항에 있어서,
    상기 역기저 매개값은 보안을 위하여 하나 이상의 난수들과 더 포함하여 연산하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  16. 제15항에 있어서,
    상기 역기저 매개값에 연산되는 하나 이상의 난수들은 상기 그룹키 생성의 연산을 위해 사용하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  17. 제10항에 있어서,
    상기 서버는 서버 고유의 난수값을 생성하고, 상기 사용자별 비밀 정보 연산에서 상기 생성된 서버 고유의 난수값을 더 포함하여 연산하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  18. 제10에 있어서,
    상기 역기저 매개값은 보안을 위하여 하나 이상의 난수들을 더 포함하여 연산하고,
    상기 서버는 서버 고유의 난수값을 생성하여 상기 사용자별 비밀 정보 연산에서 상기 생성된 서버 고유의 난수값을 포함하여 연산하며,
    상기 역기저 매개값에 연산되는 하나 이상의 난수들은 상기 서버 고유의 난수값과 연산하여 각 사용자들에게 전송하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  19. 제10항에 있어서,
    상기 생성되는 각 사용자별 비밀 정보의 기저는 상기 각 사용자별로 할당된 기저군과 모든 사용자들에게 공통으로 사용되는 공통 정수로 구성하며, 상기 그룹키는 상기 공통 정수를 기저로 하여 생성하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  20. 제10항에 있어서,
    상기 서버는 상기 각 그룹별 사용자들에게 상기 해당 기저군 생성을 위한 조합에 대한 정보를 전송하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  21. 제10항에 있어서,
    상기 서버는 상기 역기저 매개값의 연산에서 지수부와 기저부를 각각 분리하여 연산하고, 상기 연산된 역기저 매개값의 지수부와 기저부를 각각 전송하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  22. 제10항에 있어서,
    상기 각 그룹들을 복수의 서브 그룹들로 분할하고, 상기 각 서브 그룹별로 해당 사용자들에게 키값을 할당하며, 상기 사용자별 비밀 정보 생성에 있어서 상기 각 서브 그룹별로 해당 사용자에 할당된 키값 정보와 연산하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  23. 제10항에 있어서,
    상기 그룹들 중에서 특정 그룹에 비인가된 사용자가 없을 경우, 상기 해당 그룹에는 각 그룹별로 할당된 별도의 키값을 그룹키로 설정하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  24. 제10항에 있어서,
    상기 서버는 상기 사용자에 할당된 키값 정보를 브로드캐스트 메시지 전송시마다 전송하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  25. 복수의 서로 다른 정수들 중에서 하나 이상의 정수들을 조합하여 기저군을 생성하고, 각 사용자들에 대해 서로 다른 조합에 의해 생성된 상기 기저군을 할당하는 단계;
    상기 각 사용자별로 할당된 기저군을 기저로 하여 해당 사용자에 할당된 키값 정보와 연산함으로써 각 사용자별 비밀 정보를 생성하고, 상기 생성된 사용자별 비밀 정보를 상기 각 사용자들이 서버로부터 수신하는 단계;
    상기 복수의 사용자들 중에서 인가된 사용자들만이 상기 비밀 정보로부터 기저군을 제거할 수 있도록, 상기 기저군 생성에 사용된 정수와 하나 이상의 인가된 사용자들의 키값 정보들을 연산하여 역기저 매개값을 생성하고, 상기 생성된 역기저 매개값을 상기 각 사용자들이 상기 서버로부터 수신하는 단계;
    상기 서버로부터 수신된 상기 각 사용자별 비밀 정보 및 상기 역기저 매개값에 의해 그룹키를 산출하는 단계; 및
    상기 산출한 그룹키에 의해 상기 서버로부터 수신된 세션키를 복호화하는 단계;를 포함하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  26. 제25항에 있어서,
    상기 기저군 생성을 위한 각 정수들은 서로 "서로소"관계에 있는 것들인 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  27. 제26항에 있어서,
    상기 역기저 매개값은 보안을 위하여 하나 이상의 난수들을 더 포함하여 연산하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  28. 제27항에 있어서,
    상기 역기저 매개값에 연산되는 하나 이상의 난수들은 상기 그룹키 생성의 연산을 위해 사용하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  29. 제25항에 있어서,
    상기 서버는 서버 고유의 난수값을 생성하고, 상기 사용자별 비밀 정보 연산에서 상기 생성된 서버 고유의 난수값을 포함하여 연산하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  30. 제25항에 있어서,
    상기 역기저 매개값은 보안을 위하여 하나 이상의 난수들을 더 포함하여 연산하고,
    상기 서버는 서버 고유의 난수값을 생성하여 상기 사용자별 비밀 정보 연산에서 상기 생성된 서버 고유의 난수값을 포함하여 연산하며,
    상기 역기저 매개값에 연산되는 하나 이상의 난수들은 상기 서버 고유의 난수값과 연산하여 수신되는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  31. 제25항에 있어서,
    상기 생성되는 각 사용자별 비밀 정보의 기저는 상기 각 사용자별로 할당된 기저군과 모든 사용자들에게 공통으로 사용되는 공통 정수로 구성하며, 상기 그룹키는 상기 공통 정수를 기저로 하여 생성하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  32. 제25항에 있어서,
    상기 각 사용자들은 상기 서버로부터 상기 해당 기저군 생성을 위한 조합에 대한 정보를 수신하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  33. 제25항에 있어서,
    상기 사용자에 할당된 키값 정보는 상기 서버로부터 브로드캐스트 메시지 전송시마다 수신하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  34. 브로드캐스트 메시지를 수신하는 복수의 사용자들로 구성된 하나의 상위 그룹을 복수의 그룹들로 분할하고, 각 그룹별로 해당 사용자들에게 키값을 할당하는 단계;
    상기 각 그룹별로 복수의 서로 다른 정수들 중에서 하나 이상의 정수들을 조합하여 기저군을 생성하고, 상기 그룹내의 각 사용자들에 대해 서로 다른 조합에 의해 생성된 상기 기저군을 할당하는 단계;
    상기 각 사용자별로 할당된 기저군을 기저로 하여 상기 각 그룹별로 해당 사용자에 할당된 키값 정보와 연산함으로써 각 사용자별 비밀 정보를 생성하고, 상기 생성된 사용자별 비밀 정보를 상기 각 사용자들이 서버로부터 수신하는 단계;
    상기 복수의 사용자들 중에서 인가된 사용자들만이 상기 비밀 정보로부터 기저군을 제거할 수 있도록, 상기 기저군 생성에 사용된 정수와 하나 이상의 인가된 사용자들의 키값 정보들을 연산하여 역기저 매개값을 생성하고, 상기 생성된 역기저 매개값을 상기 각 해당 그룹의 사용자들이 상기 서버로부터 수신하는 단계;
    상기 서버로부터 수신된 상기 각 사용자별 비밀 정보 및 상기 역기저 매개값에 의해 각 그룹별 그룹키를 산출하는 단계; 및
    상기 산출한 그룹별 그룹키에 의해 상기 서버로부터 수신된 세션키를 복호화하는 단계;를 포함하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  35. 제34항에 있어서,
    상기 분할된 각 그룹별로 난수를 할당하고, 상기 각 그룹별 사용자들이 수신하는 상기 사용자별 비밀 정보의 연산에 상기 해당 그룹에 할당된 난수를 더 포함하여 연산하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  36. 제35항에 있어서,
    상기 역기저 매개값의 연산에 상기 해당 그룹에 할당된 난수를 더 포함하여 연산하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  37. 제35항에 있어서,
    상기 각 그룹별로 생성하는 그룹키는 상기 해당 그룹에 할당된 난수를 더 포함하여 연산하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  38. 제34항에 있어서,
    상기 기저군 생성을 위한 각 정수들은 서로 "서로소"관계에 있는 것들인 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  39. 제34항에 있어서,
    상기 역기저 매개값은 보안을 위하여 하나 이상의 난수들과 더 포함하여 연산하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  40. 제39항에 있어서,
    상기 역기저 매개값에 연산되는 하나 이상의 난수들은 상기 그룹키 생성의 연산을 위해 사용하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  41. 제35항에 있어서,
    상기 서버는 서버 고유의 난수값을 생성하고, 상기 사용자별 비밀 정보 연산에서 상기 생성된 서버 고유의 난수값을 더 포함하여 연산하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  42. 제34항에 있어서,
    상기 역기저 매개값은 보안을 위하여 하나 이상의 난수들을 더 포함하여 연산하고,
    상기 서버는 서버 고유의 난수값을 생성하여 상기 사용자별 비밀 정보 연산에서 상기 생성된 서버 고유의 난수값을 포함하여 연산하며,
    상기 역기저 매개값에 연산되는 하나 이상의 난수들은 상기 서버 고유의 난수값과 연산하여 각 사용자들이 수신하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  43. 제35항에 있어서,
    상기 생성되는 각 사용자별 비밀 정보의 기저는 상기 각 사용자별로 할당된 기저군과 모든 사용자들에게 공통으로 사용되는 공통 정수로 구성하며, 상기 그룹키는 상기 공통 정수를 기저로 하여 생성하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  44. 제35항에 있어서,
    상기 각 그룹별 사용자들은 상기 해당 기저군 생성을 위한 조합에 대한 정보를 상기 서버로부터 수신하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  45. 제35항에 있어서,
    상기 역기저 매개값의 연산에서 지수부와 기저부를 각각 분리하여 연산하고, 상기 연산된 역기저 매개값의 지수부와 기저부를 각각 서버로부터 수신하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  46. 제35항에 있어서,
    상기 각 그룹들을 복수의 서브 그룹들로 분할하고, 상기 각 서브 그룹별로 해당 사용자들에게 키값을 할당하며, 상기 사용자별 비밀 정보 생성에 있어서 상기 각 서브 그룹별로 해당 사용자에 할당된 키값 정보와 연산하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  47. 제35항에 있어서,
    상기 그룹들 중에서 특정 그룹에 비인가된 사용자가 없을 경우, 상기 해당 그룹에는 각 그룹별로 할당된 별도의 키값을 그룹키로 설정하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
  48. 제35항에 있어서,
    상기 사용자에 할당된 키값 정보를 브로드캐스트 메시지 전송시마다 상기 서버로부터 수신하는 것을 특징으로 하는 조합에 기반한 브로드캐스트 암호화 방법.
KR1020040117701A 2004-12-31 2004-12-31 조합에 기반한 브로드캐스트 암호화 방법 KR100670017B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020040117701A KR100670017B1 (ko) 2004-12-31 2004-12-31 조합에 기반한 브로드캐스트 암호화 방법
US11/311,256 US8200963B2 (en) 2004-12-31 2005-12-20 Combination-based broadcast encryption method
US13/460,098 US8897445B2 (en) 2004-12-31 2012-04-30 Combination-based broadcast encryption method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040117701A KR100670017B1 (ko) 2004-12-31 2004-12-31 조합에 기반한 브로드캐스트 암호화 방법

Publications (2)

Publication Number Publication Date
KR20060079491A KR20060079491A (ko) 2006-07-06
KR100670017B1 true KR100670017B1 (ko) 2007-01-19

Family

ID=37171118

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040117701A KR100670017B1 (ko) 2004-12-31 2004-12-31 조합에 기반한 브로드캐스트 암호화 방법

Country Status (2)

Country Link
US (2) US8200963B2 (ko)
KR (1) KR100670017B1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100670010B1 (ko) * 2005-02-03 2007-01-19 삼성전자주식회사 하이브리드 브로드캐스트 암호화 방법
KR100729527B1 (ko) * 2006-10-20 2007-06-18 주식회사 디지캡 브로드캐스트 환경에서의 그룹 키 전송방법
KR100981419B1 (ko) * 2008-01-31 2010-09-10 주식회사 팬택 디지털 권한 관리를 위한 사용자 도메인 가입방법 및 그정보 교환 방법
US8458331B2 (en) * 2008-10-08 2013-06-04 Citrix Systems, Inc. Systems and methods for connection management for asynchronous messaging over HTTP
US20110194698A1 (en) * 2008-10-22 2011-08-11 Tomoyuki Asano Key Sharing System
US20100125546A1 (en) * 2008-11-19 2010-05-20 Melyssa Barrett System and method using superkeys and subkeys
US8412957B2 (en) * 2008-12-16 2013-04-02 SAP France S.A. Encryption and decryption of records in accordance with group access vectors
US8626705B2 (en) * 2009-11-05 2014-01-07 Visa International Service Association Transaction aggregator for closed processing
JP5511463B2 (ja) * 2010-03-25 2014-06-04 キヤノン株式会社 画像形成装置、画像処理システム、画像処理システムを制御する方法、およびプログラム
US10148285B1 (en) 2012-07-25 2018-12-04 Erich Schmitt Abstraction and de-abstraction of a digital data stream
EP2878112B1 (en) 2012-07-27 2015-10-21 Telefonaktiebolaget L M Ericsson (PUBL) Secure session for a group of network nodes
US9326144B2 (en) * 2013-02-21 2016-04-26 Fortinet, Inc. Restricting broadcast and multicast traffic in a wireless network to a VLAN
KR101393159B1 (ko) * 2013-04-10 2014-05-30 숭실대학교산학협력단 소셜 네트워크 서비스에서의 키 기반의 액세스 제어 방법 및 장치
US9553833B2 (en) * 2013-12-06 2017-01-24 Verizon Patent And Licensing Inc. Confidential messages in a group chat
US10795858B1 (en) 2014-02-18 2020-10-06 Erich Schmitt Universal abstraction and de-abstraction of a digital data stream
US9794271B2 (en) 2014-10-29 2017-10-17 At&T Mobility Ii Llc Restricting communications between subscriber machines
US9639687B2 (en) 2014-11-18 2017-05-02 Cloudfare, Inc. Multiply-encrypting data requiring multiple keys for decryption
US9590956B1 (en) * 2015-12-18 2017-03-07 Wickr Inc. Decentralized authoritative messaging
US11025596B1 (en) * 2017-03-02 2021-06-01 Apple Inc. Cloud messaging system
JP6834771B2 (ja) * 2017-05-19 2021-02-24 富士通株式会社 通信装置および通信方法
KR101997117B1 (ko) * 2017-12-27 2019-07-05 경동대학교 산학협력단 그룹 멤버간 정보 공유를 위한 그룹키 관리 및 인증 방법과 그 장치
US10839060B1 (en) * 2019-08-27 2020-11-17 Capital One Services, Llc Techniques for multi-voice speech recognition commands

Family Cites Families (8)

* 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
EP1526472A3 (en) * 1995-02-13 2006-07-26 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US7721089B2 (en) * 2003-05-21 2010-05-18 Ntt Docomo, Inc. Broadcast encryption using RSA
US7610485B1 (en) * 2003-08-06 2009-10-27 Cisco Technology, Inc. System for providing secure multi-cast broadcasts over a network
KR100709318B1 (ko) * 2005-02-01 2007-04-20 삼성전자주식회사 디지털 방송을 위한 수신제한서비스 키 할당 방법 및 시스템
KR100717681B1 (ko) * 2005-03-24 2007-05-11 주식회사 케이티프리텔 단일 주파수망에서의 암호화된 방송신호 송출 시스템 및 그방법
US9729316B2 (en) * 2008-02-27 2017-08-08 International Business Machines Corporation Unified broadcast encryption system
US20110194698A1 (en) * 2008-10-22 2011-08-11 Tomoyuki Asano Key Sharing System

Also Published As

Publication number Publication date
KR20060079491A (ko) 2006-07-06
US20120213364A1 (en) 2012-08-23
US20070140483A1 (en) 2007-06-21
US8897445B2 (en) 2014-11-25
US8200963B2 (en) 2012-06-12

Similar Documents

Publication Publication Date Title
KR100670017B1 (ko) 조합에 기반한 브로드캐스트 암호화 방법
KR100670010B1 (ko) 하이브리드 브로드캐스트 암호화 방법
KR100737876B1 (ko) 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법
Yang et al. Time-domain attribute-based access control for cloud-based video content sharing: A cryptographic approach
Xu et al. CL-PRE: a certificateless proxy re-encryption scheme for secure data sharing with public cloud
KR100579515B1 (ko) 브로드캐스트 암호화를 위한 키 생성 장치 및 방법
US8744079B2 (en) Secure communication system
EP1526676A1 (en) Conference session key distribution method on an id-based cryptographic system
US7200752B2 (en) Threshold cryptography scheme for message authentication systems
JP2007538454A (ja) 大規模及び中規模シナリオ及び少ないユーザ側要求のためのマルチキャストキー発行スキーム
CN101707524B (zh) 一种具有层次关系的公钥广播加密方法
Pal et al. Efficient and secure key management for conditional access systems
CN111656728B (zh) 一种用于安全数据通信的设备、系统和方法
JP2006227411A (ja) 通信システム、暗号化装置、鍵生成装置、鍵生成方法、復元装置、通信方法、暗号化方法、暗号復元方法
CN115603902A (zh) Cca安全的sm9匿名广播加密方法
Hwang et al. CP-ABE access control that block access of withdrawn users in dynamic cloud
Mishra et al. A certificateless authenticated key agreement protocol for digital rights management system
Blundo et al. Multiple key distribution maintaining user anonymity via broadcast channels
JP4133364B2 (ja) 暗号化装置及びそのプログラム、復号装置及びそのプログラム、並びに、コンテンツ配信サーバ及びコンテンツ復号端末
Yoon et al. Cryptanalysis of two user identification schemes with key distribution preserving anonymity
JP3862397B2 (ja) 情報通信システム
HWANG et al. A STUDY ON VIDEO DATA ACCESS CONTROL TECHNOLOGY USING CP-ABPRE SCHEMES IN CCTV ENVIRONMENT
Turk Secure Communication Using Deterministic Key Rotation Over Elliptic Curves
CN113556236A (zh) 一种基于代理签名的能源数据中台敏感内容委托授权方法
Krishna Key Transfer Protocol Based on Secret Sharing Using Initiator

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: 20121210

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131217

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141224

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20181218

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20191216

Year of fee payment: 14