KR100640058B1 - 브로드캐스트 암호화를 위한 사용자 키 관리 방법 - Google Patents
브로드캐스트 암호화를 위한 사용자 키 관리 방법 Download PDFInfo
- Publication number
- KR100640058B1 KR100640058B1 KR1020040096497A KR20040096497A KR100640058B1 KR 100640058 B1 KR100640058 B1 KR 100640058B1 KR 1020040096497 A KR1020040096497 A KR 1020040096497A KR 20040096497 A KR20040096497 A KR 20040096497A KR 100640058 B1 KR100640058 B1 KR 100640058B1
- Authority
- KR
- South Korea
- Prior art keywords
- key
- user
- encryption
- session key
- users
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0822—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/083—Key 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/0833—Key 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/0836—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/02—Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/06—Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
- H04L2209/601—Broadcast encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Storage Device Security (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
브로드캐스트 암호화를 위한 사용자 키 관리 방법이 개시된다. 본 발명은, 컨텐츠(content)를 권한 있는 네트워크 상의 사용자에게만 전송하기 위하여 세션 키(session key)로 암호화하여 전송함에 있어, 이러한 세션 키를 상기의 권한 있는 사용자에게만 전송하기 위하여 트리(tree)구조에 기초한 이진 큐브(cube)에 의한 인시던스(incidence)매트릭스(matrix)를 사용하는 키 관리기법인 CuBES(binary-CUbes-based Broadcast Encryption Scheme)기법을 제시한다. 이에 의하여, 서버나 사용자가 관리해야 할 키의 수를 최소한으로 줄이면서 안전한 키의 브로드캐스팅(broadcasting) 방법이 구현된다.
BE기법, Broadcast Encryption, 암호화, 세션 키, session key, 이진 큐브, binary cube, CuBES
Description
도 1은 일반적인 브로드캐스트 암호화에 의한 데이터 전송 시스템의 네트워크 구조를 나타낸 도면,
도 2는 종래의 트리 구조로 키를 할당하는 브로드캐스트 암호화의 개념을 나타낸 도면,
도 3은 본 발명에 따른 브로드캐스트 암호화를 위한 사용자 키 관리 방법의 설명에 제공되는 구조도,
도 4는 본 발명의 브로드캐스트 암호화를 위한 사용자 키 관리 방법의 설명에 제공되는 흐름도,
도 5는 최상위 레벨에서 키암호키를 맵핑하는 기법의 설명에 제공되는 구조도,
도 6은 최상위 레벨에서 키암호키를 맵핑하는 기법의 설명에 제공되는 구조도,
도 7은 본 발명의 다른 실시예에 따른 브로드캐스트 암호화를 위한 사용자 키 관리 방법의 설명에 제공되는 흐름도,
도 8은 본 발명에 따른 메시지의 헤더의 구성을 도시한 도면,
도 9는 본 발명에 따른 브로드캐스트 암호화를 위한 사용자 키 관리 방법 중 세션 키의 복호과정을 설명하는데 제공되는 흐름도, 그리고
도 10은 본 발명에 따른 브로드캐스트 암호화를 위한 사용자 키 관리 방법의 성능을 설명하기 위한 그래프이다.
본 발명은 브로드캐스트 암호화 방법에 관한 것으로, 더욱 상세하게는 브로드캐스트 암호화를 위한 효율적인 사용자 키 관리 방법에 관한 것이다.
이동통신산업의 운영자와 콘텐츠 공급자는 자신들의 디지털 콘텐츠가 소정의 방법에 의해 제어되면서 소비자에게 전달되기를 희망한다. 디지털 미디어 객체의 소비와 분배를 제어하기 위한 방법을 DRM(Digital Rights Management)이라한다. 노키아를 주축으로 인텔, 보다폰, 마이크로소프트, 삼성전자 등 세계적인 무선장비 및 서비스 관련업체들이 호환 가능한 무선서비스를 위한 표준 개발과 이를 통한 무선서비스 확대를 목적으로 2002년 6월 설립한 컨소시엄인 OMA(Open Mobile Alliance)는 DRM 시스템을 위한 규격을 만들기 위한 노력을 진행하고 있다. 그러나 데이터 비밀보호, 가입자 장치의 인증, 가입자 장치와 다른 장치의 폐지와 같은 안전 서비스(security service)를 제공하는 적절한 해결방안을 세우지 못하고 있다.
브로드캐스트 암호화(Broadcast Encryption; 이하, 'BE'라 한다.)는 전체 사용자들 중에서 송신자(즉, 방송 센터(Broadcast Center))가 원하는 사용자들에게만 정보를 효과적으로 전달하는 방법으로서, 정보를 받을 사용자(user)들의 집합이 임의적이고 동적으로 변화하는 경우에 효과적으로 사용될 수 있어야 한다. BE에서의 가장 중요한 성질은 원치 않는 사용자(예컨대, 불법 사용자 또는 기간이 만료된 사용자)의 배제(revocation) 또는 제외이다.
도 1은 일반적인 브로드캐스트 암호화에 의한 데이터 전송 시스템의 네트워크 구조를 나타낸 도면이다. 도 1을 참조하면, 컨텐츠 생산자(100)는 오디오 또는 비디오 데이터를 비롯한 각종 유용한 데이터를 생산하며, 생산된 데이터를 서비스 제공자(110)에게 제공한다. 서비스 제공자(110)는 컨텐츠 생산자(100)로부터 제공받은 데이터를 각종 유무선 통신 네트워크를 통해 해당 데이터에 대한 비용을 지불한 정당한 사용자들(예컨대, 모바일 DRM(Digital Right Management) 네트워크(140), 스마트홈 DRM 네트워크(150))에게 브로드캐스팅(broadcasting)하게 된다.
즉, 서비스 제공자(110)는 위성(120)을 통해 각종 위성 수신기가 구비된 셋톱박스(set-top box; 141)와 같은 사용자들의 장치로 데이터를 전송할 수 있으며, 이동통신 망을 통해 이동통신 단말기(142)로도 전송할 수 있다. 또한, 인터넷 네트워크(130)를 통해 스마트 홈 네트워크(150)의 각종 단말기들(151, 152, 153, 154, 155)로 전송할 수 있다.
한편, 이때 해당 데이터에 대한 정당한 비용을 지불하지 않은 불법 사용자(160)가 데이터를 이용하지 못하도록 하기 위하여 브로드캐스트 암호화(Broadcast Encryption; BE)에 의해 데이터를 암호화하게 된다.
이러한 암호화 및 복호화 시스템에서의 안전성은 대개 암호화 키를 관리하는 시스템에 달려있다. 그리고 이러한 암호화 키 관리 시스템에서 가장 중요한 것은 암호화 키를 어떻게 생성(Key Derivation)하는 가이다. 아울러, 생성된 암호화 키를 관리(Key Management)하고, 갱신(Key Update)하는 것 또한 중요하다.
1991년 BE의 개념이 처음 제안된 이후로 많은 변화를 거쳐왔으며, 현재의 BE는 지배되지 않는 수신자(stateless receiver)를 가정한다. 이 개념은 세션(session)이 바뀜에 따라서 각각의 사용자들의 비밀키가 전혀 바뀌거나 갱신되지 않는다는 것을 의미한다. 이때, 안전성에 있어서는 'k-복구(k-resilient)'라는 용어를 사용하는데, 이것은 제외된 사용자들 중 k명이 공모 공격을 하여도 정보를 복구해내지 못하는 것을 의미한다. 대개 r은 제외된 사용자의 숫자를 나타내므로, 'r-복구(r-resilient)'는 제외된 사용자 전부가 모여서 공모 공격을 하여도 안전하다는 것을 의미한다.
한편, BE에서는 전송량(transmission overhead), 저장량(storage overhead), 계산량(computation overhead)을 중요시하는데, 각각 전송측에서 전송해야 하는 헤더(header)의 양, 사용자가 저장해야 하는 비밀키의 양 및 사용자가 세션(session) 키를 얻기 위해 필요한 계산의 양을 의미한다. 이 중에서도 특히 전송량을 줄이는 것이 큰 과제라고 할 수 있다. 전송량은 초기에 전체 사용자의 수인 N 값에 비례하던 것이 현재는 주로 제외된 사용자의 수인 r에 비례하는 것으로 줄어들었다. 전송량이 r에 비례하는 기술(scheme)들이 나오면서 전송량을 r 미만으로 줄이는 것이 BE에서의 큰 과제가 되었다.
이러한 BE 문제에 기반하여 현재까지 발표된 결과 중에서, 'Naor-Naor- Lotspiech'에 의해서 발표된 'Subset Difference(SD) Method'이 가장 좋은 결과를 보이고 있다. SD 방법에서는 전체 사용자가 n 명일 경우에, O(log1+en)의 저장량과 O(2r-1)의 전송량을 필요로 한다.
그러나, 이러한 SD 방법의 경우에도 다수의 사용자가 사용하기에는 효율적인 측면에서 문제가 있다.
상술한 바와 같이, 1991년 Berkovits가 처음 BE에 관한 논문을 발표한 후 현재까지 다양한 알고리즘이 제시되어 왔다. 이 중에서 중요한 알고리즘을 정리하면, 비밀키 공유(Secret sharing) 방식, 부분집합 커버-프리 시스템 모델(Subset Cover-Free System Model) 방식, 트리 구조를 이용한 방식 등이 제안되어 왔다.
먼저, 비밀키 공유(Secret Sharing)에 기반한 모델을 개략적으로 설명한다. 비밀키 공유 모델은 1991년에 'S. Berkovits'에 의해서 처음 제안되었으며, 2000년 'M. Noar'와 'B. Pinkas'가 "Efficient Trace and Revoke Schemes"라는 제목의 논문에서 좀더 효율적인 개선이 이루어졌다. S Berkovits의 "How to Broadcast a Secret"에서는 다항식 보간(polynomial interpolation)을 이용한 방법과 벡터 기반 비밀키 공유(vector based secret sharing)를 이용한 방법이 제시되었다.
다항식 보간 방법을 살펴보면, 센터(center; 즉, 방송 센터 또는 송신측)에서 각 사용자에게 비밀 채널로 점(xi, yi)을 전송한다. 이때, xi는 모두 다른 값이고, (xi, yi)는 각 사용자의 비밀키이다. 그 후, 각 세션(session)의 정당한 사용자 t명에게 비밀 정보 S를 브로드캐스트하기 위해, 랜덤 정수 j와 차수 t+j+1인 다항 식 P를 고른다. 다항식 P는 t명의 정당한 사용자의 비밀키 (xi, yi)와 다른 어떤 사용자의 비밀키도 아닌 임의의 j개의 점 (x, y)과 (O, S)를 지나는 다항식이다. 그리고, 센터에서는 다항식 P위의 t+j 개의 위의 점들과는 다른 점들을 전송한다. 그러면, t명의 정당한 사용자는 t+j개의 점들 이외에 하나의 점(자기 자신의 비밀키)을 더 알기 때문에 차수 t+j+1인 다항식 P를 복구할 수 있고 비밀 정보 S도 구할 수 있다. 그러나, 제외된 사용자는 단지 t+j개의 점만을 알기 때문에 절대 다항식 P를 복구할 수 없게 된다.
이러한 방법은 전송량이 O(t+j+1), 저장량이 O(1)이고 계산량은 대략 t3번의 곱셈이다. 또한, 폐기(revocation)가 쉽고 공모를 방지할 수 있으며, 공모 추적(traitor tracing)도 가능하다는 장점이 있다. 그러나, 많은 수의 사용자에 대해서는 비효율적이고 반복해서 쓸 경우 안전하지 못하기 때문에 실제적으로 사용할 수 없다는 문제점이 있다.
M. Noar와 B. Pinkas의 "Efficient Trace and Revoke Schemes"에서는 라그랑지의 보간 방식(Lagrange's interpolation formula)을 이용한 임계값 비밀키 공유(threshold secret sharing) 방식을 사용한다. Noar-Pinkas 방법에서는 r차 다항식을 r+1개의 다항식 위의 점을 알면 복구가 가능하지만, 하나 모자란 r개의 점을 가지고는 복구할 수 없다는 성질을 이용한다. 즉, 센터는 임의의 t차 다항식 P를 선택하고, 그 위의 각기 다른 점을 각 사용자들에게 비밀키로 제공한다. r명의 사용자가 제외되면 센터는 제외된 r명의 비밀키와 임의로 선택된 t-r개의 점을 합하여 총 t개의 점에 대한 정보를 브로드캐스트한다. 그 결과, 제외된 사용자는 자신의 비밀 정보를 합하여도 여전히 t개의 점만을 알게 되지만, 제외되지 않은 사용자는 t+1개의 점을 알게 되어 다항식 P를 복구할 수 있게 된다. 이 다항식을 이용하여 세션키 P(0) 값을 구하게 된다.
이러한 방법도 폐기가 쉽고 공모를 방지할 수 있으며, 공모 추적도 가능하다. 특히 새로운 사용자를 추가(add)할 수 있다는 큰 장점이 있으며, 전송량이 O(t)이고 저장량은 O(1)로서 상당히 효율적이다. 그러나, 이러한 방법의 경우 처음에 정해진 t보다 많은 사용자를 제외하는 것은 불가능하다는 문제가 있다. 게다가 전송하는 점의 수나 다항식을 계산하는데 필요한 계산량이 t에 의존하게 되어 많은 경우에 비효율적이다. 또한, t가 커질수록 계산 시간이 크게 증가하여 다수의 사용자를 포함하는 경우에는 사용하기 힘들다.
두번째로 부분집합 커버-프리 시스템 모델은 전체 사용자들의 집합을 S라 할 때, S의 부분집합(subset)들을 원소로 하는 집합에서 부분집합 커버-프리 시스템이라는 개념을 정의한다. 이러한 시스템을 찾을 수 있다면 그 시스템을 이용하여 BE를 수행할 수 있다. 그러나, 저장량과 전송량이 O(r log n) 정도가 되어 효율적이지 못하다는 단점이 있다. 또한, 1-resilient 모델을 확장하여 k-resilient 모델을 만드는 방법도 소개되었다. 효과적인 1-resilient 기법은 비교적 쉽게 고안할 수 있으므로 이러한 확장이 의미가 있어 보이지만, 아직까지 제시된 방법으로는 확장하는 과정에서 효율성이 크게 떨어지게 된다.
세번째로 최근에는 트리 구조를 이용하는 방법들이 주목받고 있다. 1998년에 C. K. Wong, M. Gouda, G. S. Lam 이 LTH(Logical-tree-hierarchy) 방법을 제안하였지만, 한번의 세션에서 많은 수의 사용자를 제외하기는 무리가 있었다. 또한, 사용자들의 비밀키가 세션이 지남에 따라 변화하는 모델이어서 지배되지 않는 수신자(stateless receiver)를 가정하는 현대적인 BE와는 거리가 있었다. 그 후, 2001년 D. Naor, M.Naor, J. Lotspiech가 "Complete Subset(CS) Cover Scheme"과 "Subset Difference(SD) Scheme"을 제안하였다. 두가지 방법 모두 사용자들의 수는 n명, 제외된 사용자의 수는 r이라고 가정하고, 센터는 높이가 log n인 이진 트리(binary tree)를 만들고 모든 노드(node)에는 그에 대응하는 비밀키를 배정한다. 그리고, 가지 노드(leaf node)에 사용자들을 한 명씩 배정한다.
먼저 CS Cover 방법을 살펴보면, 각 사용자들은 루트 노드(root node)에서 자신의 가지 노드(leaf node)까지의 경로(path)에 위치하는 모든 노드의 비밀키를 센터로부터 전달받아서 저장한다. 여기서, 서브트리(subtree)들 중 제외된 사용자를 한 명도 포함하지 않는 완전한 서브트리를 "Complete Subtree(CS)"라고 부르는데 이러한 CS를 적당히 모으면, 제외되지 않은 사용자들만을 모두 포함시킬 수가 있다. 이때, 사용된 CS들의 루트 노드에 해당하는 비밀키로 세션키를 암호화하여 전송하면, 정당한 사용자들은 세션키를 복구할 수 있으나, 제외된 사용자는 위에 사용된 어떠한 CS에도 포함되지 않으므로 세션키를 복구할 수 없게 된다.
도 2는 종래의 트리 구조로 키를 할당하는 브로드캐스트 암호화의 개념을 나타낸 도면이다. 도 2를 참조하면, 브로드캐스트 암호화 방식을 통해 데이터를 제공받는 각 사용자들(220)은 각각 자신의 고유한 키 값(32번 내지 47번)을 가지게 됨 과 동시에 트리 구조상에서 자신과 연결된 각 노드의 키 값을 가지게 된다.
예컨대, 34번 사용자는 자신의 34번 키 값과 함께 17번 노드(209)의 키 값, 8번 노드(204)의 키 값, 4번 노드(202)의 키 값, 2번 노드(201)의 키 값을 가지게 된다. 이때, 상기 34번 사용자가 가지는 17번 노드(209)의 키 값은 35번 사용자도 함께 공유하고 있게 된다. 마찬가지로, 상기 34번 사용자가 가지는 8번 노드(204)의 키 값은 32, 33, 35번 사용자도 함께 공유하게 된다.
한편, 32번 내지 47번 사용자가 모두 정당한 사용자일 경우, 바람직하게는 전송하고자 하는 데이터의 헤더 부분에 2번 노드(201) 키 값을 포함하여 모든 사용자에게 동일하게 전송함으로써 보안이 유지된 데이터의 전송이 가능하게 된다.
그러나, 만약 36번 사용자(221)의 키를 가진 사용자가 정당한 사용자가 아닌, 불법 사용자(revoked user)일 경우, 상기 36번 사용자(221)와 관련된 노드의 키 값들을 다른 사용자들이 공유하고 있으므로, 해당 키 값들을 갱신해 주는 과정이 필요하게 된다. 즉, 18번 노드(210), 9번 노드(205), 4번 노드(202) 및 2번 노드(201)의 키 값이 갱신되어야 한다. 이때, 상기 키 값의 갱신은 하위 노드로부터 상위 노드의 순으로 진행되게 된다.
먼저, 상기 18번 노드(210)의 키 값은 37번 사용자가 공유하고 있으므로, 서버로부터 19번 노드(211)의 갱신된 키 값을 37번 사용자의 키 값으로 암호화하여 37번 사용자에게 전송하게 된다. 그런다음, 9번 노드(205)의 키 값은 37번 사용자와 함께, 19번 노드(211) 아래에 있는 38번 사용자 및 39번 사용자가 함께 공유하고 있으므로, 9번 노드(205)의 갱신된 키 값을 37번 사용자에게는 이미 갱신된 18번 노드(210)의 키 값으로 암호화하여 전송하고, 38번 및 39번 사용자에게는 19번노드(211)의 키 값으로 암호화하여 전송하게 된다.
마찬가지 방법으로, 4번 노드(202)의 키 값은 8번 노드(204) 아래에 있는 32, 33, 34, 35번 사용자와 함께, 9번 노드(205) 아래에 있는 37, 38, 39번 사용자가 함께 공유하고 있으므로, 4번 노드(202)의 갱신된 키 값을 32 내지 35번 사용자에게는 8번 노드(204)의 키 값으로 암호화하여 전송하고, 37, 38, 39번 사용자에게는 이미 갱신된 9번 노드(205)의 키 값으로 암호화하여 전송하게 된다.
마지막으로, 2번 노드(201)의 키 값은 4번 노드(202) 아래에 있는 32 내지 39번 사용자들 중 36번 사용자(221)를 제외한 사용자들이 공유하며, 5번 노드(203) 아래에 있는 40 내지 47번 사용자가 함께 공유하고 있으므로, 2번 노드(201)의 갱신된 키 값을 32, 33, 34, 35, 37, 38, 39번 사용자에게는 이미 갱신된 4번 노드(202)의 키 값으로 암호화하여 전송하고, 40 내지 47번 사용자에게는 5번 노드(203)의 키 값으로 암호화하여 전송하게 된다. 이러한 키 갱신 과정을 통해 불법(또는 폐지된) 사용자(revoked user)의 접근을 차단할 수가 있게 된다.
상술한 방법(즉, CS 모델)에서의 전송량은 모든 제외되지 않은 사용자들만을 포함시키는 CS들의 개수인 O(r log(n/r))이고, 저장 오버헤드(storage overhead)는 O(log n)이다.
한편, SD(Subset Difference) 방법은 상술한 CS 모델의 변형으로 O(log2n)의 저장량과 O(2r-1)의 전송량을 요구하여 전송량을 획기적으로 개선하였다. SD 모델 에서는 한 노드 v를 루트로 하는 서브트리에서 해당 서브트리에 포함된 다른 한 노드 w를 루트로 하는 서브트리를 뺀 서브트리를 생각한다. 이 서브트리 밑의 가지 노드는 정당한 사용자들이고, w를 루트로 하는 서브트리 밑의 가지 노드는 제외된 사용자들이 된다. 이러한 방법은 적당한 수의 정당한 사용자들 사이에 제외된 사용자가 끼어 있는 경우, CS 모델이 반드시 2개 이상의 부분집합이 필요한 것과는 달리 하나의 부분집합으로 커버할 수 있다. SD 방법은 노드 v에 할당된 키의 해쉬(hash) 값에서 시작하여 노드 w까지의 해쉬 값을 구한 후, 그 값에 대응되는 값을 세션키로 한다. 각 사용자는 루트 노드에서 자신의 가지 노드까지의 패스 위의 각 노드에 대한 형제 노드(sibling node)들에 대한 해쉬 값들을 비밀키로 갖고 있다. 그러므로, 해쉬 함수의 일방향성에 의해 정당한 사용자들만이 세션키를 복구해낼 수가 있다. 이때, SD 모델의 전송량은 O(2r-1), 저장량은 O(log2n)이고, 계산량은 최대 O(log n)의 해쉬밖에 되지 않는다.
그 후, 2002년에는 SD 모델을 개선한 LSD 모델이 제안되었다. LSD 모델에서는 각 서브트리에 레이어(layer)를 사용하여 저장량을 O(log3/2n)으로 줄였지만 대신 전송량이 SD 모델의 두배가 되었다.
상술한 BE 모델들 중 가장 좋은 효율을 보여주는 것은 LSD나 SD 등의 트리 구조를 사용하는 모델들이다. 그러나, 상기 트리 구조를 이용한 방법의 경우 브로드캐스트에 필요한 부분집합의 수가 사용자들의 위치에 크게 의존하기 때문에 더 이상의 큰 개선을 기대하기는 어려운 실정이다. 또한, 트리 구조의 경우 유지 보수 에도 상당한 비용이 필요하다는 단점이 있다. 따라서, 상술한 트리 구조가 아닌 보다 효율적인 BE의 기술들이 요구되고 있는 실정이다.
또한 지배되지 않는 수신기들을 처리하는 것이 필요하다. 그러한 수신기는 과거 전송의 이력을 기록할 수 없고 그것의 상태에 따라서 변한다. 대신에 그것의 동작은 현재의 전송과 초기 설정에 기초되어야 한다.
따라서 본 발명의 목적은, 계층적 구조를 기초로 이진 큐브(cube)에 의한 BE기법을 구현하는, 브로드캐스트 암호화를 위한 사용자 키 관리 방법을 제공함에 있다.
상기 목적을 달성하기 위해 본 발명에 따른 브로드캐스트 암호화를 위한 사용자 키 관리 방법은, 적어도 하나의 노드를 ni 단위로 그룹핑한 제i레벨조합을 설정하고, 상기 제i레벨조합을 다시 ni+1 단위로 그룹핑한 제i+1레벨조합을 설정하는 과정을 i가 1에서 m까지 반복함으로써 m개의 계층을 가지는 트리구조를 형성하는 단계, 상기 트리구조의 상기 적어도 하나의 노드에 사용자를 맵핑하고, 상기 제m계층에 메시지 공급자를 맵핑하는 단계, 상기 제m계층으로부터 제1계층으로 내려가면서, 상기 각 제i레벨조합에 연결된 제i+1레벨조합에 대하여 키암호키를 맵핑하는 단계 및 상기 키암호키를 이용하여 상기 메시지를 전송하는 단계를 포함한다.
상기 키암호키를 맵핑하는 단계는, 상기 제i+1레벨조합 수의 이진 인수를 가 지는 이진 벡터를 열로 하고, 상기 제i+1레벨조합을 행으로 하는 매트릭스(matrix)를 형성하는 단계, 상기 노드에 가상사용자를 맵핑하고, 상기 열마다 키암호키를 맵핑하는 단계, 권한없는 상기 사용자를 하위레벨에 포함하는 상기 가상사용자를 검색하여, 상기 가상사용자가 가진 키암호키를 상기 매트릭스에서 제거하는 단계 및 상기 제거하는 단계 결과, 남은 매트릭스 상의 상기 사용자를 모두 포함하는 키암호키를 선택하는 단계를 포함한다.
바람직하게는, 상기 제거하는 단계의 정해진 것은 1이다.
또한 상기 제거하는 단계는, 상기 권한없는 사용자를 하위레벨에 포함하는 상기 가상사용자의 상기 매트릭스의 대응하는 행을 제거하고, 상기 제거한 행에 포함된 값이 0 및 1 중에서 정해진 것에 대응하는 열을 제거하는 단계를 더 포함할 수 있다.
나아가 상기 노드는 무선 네트워크에 의한 상기 컨텐츠를 공급받는 장치이다.
상기 키암호키는 상기 중심이 상기 제m레벨조합에서 제2레벨조합까지의 경우에 대하여만 맵핑되는 것이 바람직하다.
상기 전송하는 단계는, 상기 키암호키를 이용하여 세션(session) 키를 암호화하는 단계 및 상기 암호화된 세션 키를 이용하여 암호화된 상기 메시지를 전송함에 있어 헤더(header)에 상기 암호화된 세션 키를 부가하는 단계를 포함하는 것이 바람직하다.
또한 상기 전송하는 단계는, 상기 세션 키를 이용하여 암호화된 세션 키인 테스트블럭을 상기 헤더에 부가하는 단계를 더 포함할 수 있다.
그리고 상기 사용자가 상기 메시지를 수신하여 상기 메시지를 복호하는 단계를 더 포함하는 것이 바람직하다.
나아가 상기 복호하는 단계는, 상기 사용자가 기 소유한 키암호키를 이용하여 상기 암호화된 세션 키를 복호하여 후보 세션 키를 생성하는 단계, 상기 후보 세션 키를 이용하여 상기 테스트블럭의 암호화된 세션 키를 복호하여 상기 후보 세션 키와 비교하는 단계 및 상기 비교결과 동일하면, 상기 후보 세션 키를 자신에 대한 세션 키로 판단하고, 상기 메시지를 복호하는 단계를 포함한다.
바람직하게는, 상기 후보 세션 키를 생성하는 단계는, 상기 기 소유한 암호키 중, 상기 헤드에 부가된 암호화된 세션 키의 위치정보에 따라 자신의 세션 키에 대해 복호한다.
또한 본 발명의 브로드캐스트 암호화를 위한 사용자 키 관리 방법에 의해 동작하는 무선 단말장치는 암호화된 메시지를 수신하고 상기 암호화된 메시지를 복호할 수 있다.
이하에서는, 도면을 참조하여 본 발명을 상세히 설명한다. 이하 사용자와 노드를 동일한 개념으로 사용하기로 한다.
도 3은 본 발명에 따른 브로드캐스트 암호화를 위한 사용자 키 관리 방법의 설명에 제공되는 구조도이다.
본 발명의 키 관리방법은, 키 관리를 위해 가상의 트리(tree)구조를 기초로 한 BE(Broadcast Encryption)기법으로서 CuBES(binary-CUbes-based Broadcast Encryption Scheme)를 제시한다. 트리구조는 논리적인 계급구조를 이룬다. 그리고 맨 위의 계층(이하에서는 '센터'라고 함)과 맨 하위 계층에 이르는 노드(node)는 논리적인 노드로서 실제로 존재하는 것은 아니다. 이러한 트리구조의 맨 하위계층에는 사용자 노드(이하에서는 '사용자'라고 함)가 포함된다. 이러한 사용자들 중에는 콘텐츠(content) 또는 메시지의 공급을 받을 권한이 없어진, 탈퇴한 사용자를 포함한다.
메시지는 센터로부터 사용자로 공급되며, 공급될 컨텐츠는 세션 키(session key)에 의해 암호화 된다. 이러한 세션 키는 센터와 사용자만이 알고 있는 키암호키(KEK: Key Encryption Keys)에 의해 암호화된다. 그리고 이러한 세션 키는 해당 컨텐츠에 대한 사용권한 있는 사용자에게만 전송되어야 하며, 이러한 키의 분배를 위하여 본 발명의 키 관리기법이 사용된다. 이하에서는, 사용자의 영역에서 키암호키의 집합을 ‘키블럭(key block)’이라고 한다.
본 발명의 키 관리방법은, 이진 큐브(binary cube)에 기반한다.
이하에서는 먼저 이진 큐브를 설명한 후, 도 3을 기초로 본 발명의 키 관리방법을 설명한다.
키 분배는 인시던스(incidence) 매트릭스(matrix)를 통해 표시될 수 있다. 네트워크내에 N 명의 사용자가 있고, 센터에 K 개의 키가 있다고 하자. 사용자는 지수 j(j=1,...,N)로 명명된다. 그리고 키들은 지수 i(i=1,...,K)로 명명된다.
여기서 K×N차 이진매트릭스 A=[aij]를 형성할 수 있다. 여기서 열은 키에 대응되고, 행은 다음의 규칙에 의해 사용자에 대응된다. 만약 사용자 j가 i번째 키를 소유한다면, aij=1이고 그렇지 않으면 aij=0이 된다. 이러한 다음의 표 1과 같은 매트릭스 A를 ‘인시던스 매트릭스’라고 한다.
u1 | u2 | u3 | |
k1 | 1 | 0 | 0 |
k2 | 0 | 1 | 0 |
k3 | 0 | 0 | 1 |
k4 | 1 | 1 | 0 |
k5 | 1 | 0 | 1 |
k6 | 0 | 1 | 1 |
k7 | 1 | 1 | 1 |
표 1의 매트릭스는 3명의 사용자에게 7개의 키를 분배하는 것에 대응된다. 모든 사용자는 4개의 키를 가진다. 특별히, 사용자 1은 다음의 키 k1, k4, k
5 및 k7을 소정의 방법에 의해 미리 가진다.
만약 일부 사용자들이 탈퇴된다면, 센터는, 탈퇴한 사용자들에 일치하는 행들과 이러한 행들에 부수하는 모든 열들을 함께 폐기시킨다. 이후에 센터는 유지되는 행들에 일치하는 열들의 집합을 발견해야 하고, 메시지를 브로드캐스팅하기 위하여 그러한 열들에 일치하는 키들을 사용할 것이다.
이 경우, 탈퇴되지 않고 남은 사용자들을 커버할 수 있는 키들의 집합들이 적어도 하나이상 존재할 수 있다. 어떠한 집합도 가능하다. 다만 전송 오버헤드를 줄이기 위하여 가장 작은 사이즈의 집합을 발견하는 것이 바람직하다.
예를 들어, 사용자 2가 탈퇴한다면, 센터는 2 행 및 2행과 관련된 2,4,6 및 7열을 폐기시킨다. 그 결과는 표 2와 같다.
u1 | u3 | |
k1 | 1 | 0 |
k3 | 0 | 1 |
k5 | 1 | 1 |
남은 두 개 행의 사용자를 위한 키, 즉 인시던스 매트릭스의 열의 집합은 다섯 개가 있다. 그것은 {5}, {1,3}, {1,5}, {3,5}, {1,3,5} 이다. 그 중에서 가장 작은 크기의 조합은 5열만을 포함하는 것이다. 따라서 센터는 사용자 u1 및 u3에게 메시지를 브로드캐스트하기 위하여 k5 키를 사용하면 된다.
이하에서는, {5}와 같이 권한 있는 사용자를 모두 커버할 수 있는, 가장 작은 키의 조합을 ‘커버리지(coverage)’라고 부른다. 커버리지에 포함하는 열들은 권한 있는 전체 사용자를 커버한다.
여기에서, 표 1의 각 열을 '이진 큐브'라고 한다. 이진 큐브는, n 명의 사용자에 대하여 길이 n인 2진 벡터 x=(x1, x2,...,xn)가 될 수 있으며, 2
n개의 벡터가 있다. 이러한 벡터들의 합집합(union)을 ‘n차이진큐브’라고 한다.
모든 벡터가 0인 경우를 제외하고, 모든 n차이진큐브가 인시던스 매트릭스의 열로 둔다고 하면, 2n개의 열과 n 행을 가지는 2진 매트릭스에 의해 주어지는 BE 기법이 된다.
커버리지의 사이즈는, 얼마나 많은 사용자가 탈퇴했는가와 독립적으로 정확 히 1일 것이다. 사실, 만약 r명의 사용자 u1,u2,...,ur이 탈퇴했다면, 그땐 0 이 i1,i2,...,ir의 위치에 있고 나머지 위치에는 1이 있는, N번째 열이 i
1,i2,...,ir을 제외하는 모든 행들을 커버한다. 따라서 크기가 1인 커버리지가 주어진다. 어떠한 r에 대하여도 거기에 일치하는 열을 찾을 수 있다. 즉 탈퇴하지 아니하고 남은 전체 사용자만을 위한 하나의 키를 발견할 수 있는 것이다.
만약 n차이진큐브로부터 생성되는 인시던스 매트릭스로부터 적어도 하나의 열을 삭제한다면, 결과적으로 2나 그 이상의 크기의 커비리지를 요구하는 탈퇴된 사용자의 구성들이 있을 것이다.
이러한 n차이진큐브에 의한 인시던스 매트릭스를 이용하여 키 관리가 이루어진다. 이진 큐브는 전송 오버헤드의 관점으로부터 가능한 최선의 BE기법을 정의한다. 그러나, 사용자가 가진 키암호키의 집합인 키블록의 크기는 매우 빨리 커진다. 만약 네트워크에 N 사용자가 있다면, 2N-1개의 키가 있는 것이다. 그리고 모든 사용자는 2N-1개의 키를 가져야 한다. 이러한 키의 개수는 N=10 만해도 감당할 수 없이 크게 된다. 그리고 아마도 N>64의 이진 큐브를 사용하는 것은 불가능하다.
이러한 문제에 대응하기 위한 본 발명은, 논리적 계급을 이용한다. 이러한 경우, 이러한 계급은 다음의 트리구조를 가진다. 이하에서는 도 3을 참조하여, 상기 트리구조에 대하여 설명한다.
도 3을 참조하면, 27명의 사용자 u1 내지 u27을 포함한다. 즉 사용자의 수 N=27 이다. 이 중에서, 사용자 u2는 탈퇴된 사용자이다. 도 3의 트리는 사용자와 센터(c) 사이에 소정 개수의 레벨로 계층화된 트리를 형성한다.
가장 낮은 레벨은 소정의 수(n1)의 사용자들로 조합을 만든다. 사용자는 n1 단위로 그룹핑되어 하나의 절점인 조합 T1 내지 T9를 형성한다. 이러한 T1
내지 T9의 계층적 레벨을 '제1레벨'(a)이라 한다. 제1레벨(a)의 각 조합들을 위하여, n1차이진큐브에 기초한 BE기법을 형성한다. 거기에는 N/n1 개의 조합이 있을 것이다. 도 3에서는 N=27 이고, n1=3이므로 제1레벨(a)에는 9개의 조합이 포함된다.
T1 내지 T9를 포함하는 제1레벨(a)은 다시 소정 개수(n2)의 조합을 하나의 사용자로 가정하고 제1레벨(a)의 그룹핑과 동일한 방법으로 그룹핑을 한다. 이러한 그룹핑에 의하여 새로운 절점인 상위레벨의 조합 s1 내지 s3 이 생긴다. 이러한 s
1 내지 s3을 포함하는 상위레벨을 '제2레벨'(b)라 한다.
또한 맨 상위레벨은, 센터(c)를 기초로 하위에 소정 개수(n3)의 조합을 포함한다.
하나의 네트워크에 포함되는 레벨의 수는, 전체 사용자의 개수 N의 크기와 각 레벨마다의 그룹핑하는 단위개수 n1 및 n2 등에 따라 달라질 수 있다. 만약 m개의 트리를 형성하였다면, 전체 사용자의 수 N=n1×n2×...×nm 이다.
계층적 트리가 형성되었다면, 각 레벨별로 n차이진큐브에 의한 인시던스 매트릭스를 이용한 본 발명의 BE기법을 수행한다.
도 4는 본 발명의 브로드캐스트 암호화를 위한 사용자 키 관리 방법의 설명에 제공되는 흐름도이다. 이하에서는 도 3 내지 도 4를 참조하여 본 발명의 키 관리방법을 설명한다.
상기 도 3의 설명에 따라 전체 사용자를 포함하는 네트워크를 기초로 키 분배에 대한 트리구조가 형성되었다면(S401), 센터(c)는 탈퇴된 사용자를 검색한다(S403).
센터(c)는, 제1레벨(a) 중에서 탈퇴된 사용자를 포함하는 조합에 대하여 인시던스 매트릭스를 이용한 키암호키를 정한다. 센터는 사용자 u2가 탈퇴한 조합 T1에 대하여 BE기법을 수행한다. 이것은 3차이진큐브에 의한다. 따라서 표 1 및 표 2와 동일하게, 키 k5를 T1 조합의 사용자 u1, u2, u3
를 위한 키암호키로 선정한다. 즉 키 k5로 암호화된 세션 키를 보내고, 이 세션 키로 암호화된 메시지를 보내면, 사용자 u1, u3은 키 k5를 가졌으므로, 메시지를 복호할 수 있으나, 사용자 u
2는 키 k5를 가지지 않았으므로, 메시지를 복호할 수 없다. 이러한 과정은 제1레벨(a)의 조합 중 탈퇴한 사용자가 포함된 모든 조합에 대하여 진행된다. 이에 의하여 커버리지에 키암호키를 포함한다(S405).
센터(c)는 상기 S405 단계에서 키암호키를 맵핑한 조합(탈퇴된 사용자를 포함한 조합)을 포함하는 상위조합에 대하여 BE기법을 수행한다. 도 3에 기초할 때, S1이 이에 해당하며 3차이진큐브에 의한다. 조합 T1에 대하여는 키암호키를 맵핑하였으므로, 조합 T2, T3에 대하여만 새로운 키암호키를 맵핑하여 커버리지에 더한다.
도 5는 탈퇴된 사용자를 포함하는 조합을 구성원으로 하는 상위조합에 대한 키 관리방법의 설명에 제공되는 구조도로써, 센터(c)는 3차이진큐브에서 맵핑이 된 T1을 제거한다. 따라서 커버리지는 키 uk6 만을 포함하는 조합이 된다. 즉 T2, T3에 대하여는 uk6을 키암호키로 맵핑한다.
센터(c)는 하위에 키암호키를 맵핑한 조합을 가지는 모든 상위조합에 대하여 진행한다(S407).
센터(c)는 맨 상위 레벨인가를 판단하고(S409), 만약 맨 상위 레벨이 아니고 소정 개수(m)의 레벨을 포함한다면, 맨 상위레벨이 될 때까지 레벨을 올려가면서 S407 단계의 과정을 반복한다.
센터(c)는, S409 단계에서 맨 상위레벨 이라고 판단되면, 키암호키가 맵핑되지 아니한 바로 조합, 즉 하위에 탈퇴한 사용자를 포함하지 아니한 조합에 대하여 키암호키를 부여하는 BE기법을 수행한다. 도 6은 최상위 레벨에서 키암호키를 맵핑하는 기법의 설명에 제공되는 구조도로써, 센터(c)는 하위 조합 중 이미 키암호키가 맵핑된 조합 s1 을 제외한 나머지 조합 s2, s3에 대하여 상기 S405 또는 S407과 동일한 방법으로 키암호키를 부여한다. 이에 따라 센터(c)는 sk6를 s2, s3
조합(정확하게는 s2와 s3의 하위에 포함된 사용자들)을 위한 키암호키로 맵핑하여 커버리지에 더한다.
센터(c)에 의해 최종적으로 맵핑되는 조합은 그 레벨의 수에 무관하게, 하위에 키암호키가 맵핑된 조합이나 사용자를 포함하지 아니한다. 즉 그 하위에 탈퇴한 사용자를 포함하지 않은 것이다(S411).
센터(c)는 맵핑된 전체 키암호키를 포함하는 커버리지를 기초로, 이에 대한 정보가 부가된 암호화된 메시지를 사용자들에게 전송한다(S413).
이상의 방법에 의하여 본 발명의 키 관리방법이 수행된다.
다만, 본 발명의 다른 실시예는 도 4와 커버리지를 구하는 것과 반대방향으로 키암호키를 맵핑할 수 있다.
도 7은 본 발명의 다른 실시예에 따른 브로드캐스트 암호화를 위한 사용자 키 관리 방법의 설명에 제공되는 흐름도이다.
상기 도 3의 설명에 따라 전체 사용자를 포함하는 네트워크를 기초로 키 분배를 위한 트리구조가 형성되었다면(S701), 센터(c)는 탈퇴된 사용자를 검색한다(S703).
센터(c)는 만약 탈퇴된 사용자가 없다면, 계층적 트리의 꼭대기에서 전체 네트워크를 위해 정의된 특별한 하나의 키를 사용하여 세션 키를 암호화한다. 그리고 적어도 하나의 사용자가 탈퇴되었을 때, 커버리지 발견 절차는 트리의 맨 위 레벨로부터 시작할 수 있다. 이 레벨에, nm개의 하위조합이 있다. 먼저 센터(c)는, 하위레벨에 탈퇴한 사용자를 하나도 포함하지 않은 조합을 검색한다. 이러한 조합들을 위한 하나의 키인 키암호키를 맵핑한다. 만약 사용자들이 모든 조합으로부터 탈퇴했다면, 어떠한 키암호키도 커버리지에 더해질 필요가 없다. 이것은 도 6의 설명에 대응된다(S705).
그리고 한 개 레벨을 내려간다(S707).
센터(c)는, 해당레벨(제1레벨)에서 적어도 하나의 탈퇴한 사용자가 포함된 하위조합(T1)을 포함하는 조합(s1)을 다시 검색한다. 이러한 하위조합은 nm-1
개의 조합으로 쪼개진다. 도 3의 경우는 s1이 해당된다. 그리고 검색된 조합을 위한 한 개 키암호키를 커버리지에 더한다. 이것은 도 5의 설명에 대응된다(S709).
그리고 맨 하위 레벨인지 여부를 판단하고(S711), 맨 하위 레벨이 아니면 레벨을 내려 S707 내지 S709 단계를 반복한다.
맨 하위 레벨에서, 센터(c)는 하나 또는 그 이상의 탈퇴한 사용자가 있는 조합에 각각에 대해 BE기법을 수행한다. 그리고 그러한 조합의 모든 사용자를 위해 하나의 키암호키가 각 조합을 위해 다시 한번 커버리지에 더해진다. 이것은 도 3의 설명 중 k5의 선택에 대한 설명에 대응된다(S713).
이상의 방법에 의해서도 본 발명의 키 관리방법이 실시될 수 있다.
본 발명에 따라, 하나의 사용자에 의해 소유되는 키블럭의 전체 키의 수 KBt는 다음의 수학식 1과 같다.
사실, 사용자가 필요로 하는 키는 조금 더 작다. i와 i+1의 두개의 레벨을 생각하면, 사용자는 i 레벨에서 인시던스 매트릭스로부터 열(1,1,1,...,1)과 i+1레벨에서 열(1,0,0,...,0)에 해당하는 두 개의 키를 발견한다. 두 개의 키는 하나의 조합과 그 조합의 사용자 모두에게 유일하다. 두개의 키를 모두 저장할 필요는 없다. 그것은 단지 그들 중에 하나를 가지는 것으로 충분하다. 간단하게 말하면, i+1 레벨에 키를 남겨둔다. 그리고 i레벨로부터 하나를 폐기한다. 인시던스 매트릭스로부터 모두 1인 열을 폐기함으로써 가장 잘 묘사된다. 그리하여 다음부분에서는, n차이진큐브에 의해 주어지는 BE기법의 인시던스 매트릭스가, 길이 n의 모든 이진 열들 중에서 모두 1이거나 모두 0인 열을 제외한 2n-2열을 가진다고 가정한다.
탈퇴한 사용자가 하나도 없을 때, 단지 하나의 키를 사용하여 메시지를 브로드캐스트 할 수 있기 위하여 트리의 맨 위에 모두 1인 열을 더한다.
정리하면, N 사용자의 네트워크를 위해 모든 사용자가 가져야 하는 키의 수 Kut는 다음의 수학식 2와 같다.
여기에서, N=n1×n2×...×nm 이다.
이러한 이진 큐브에 기초한 브로드캐스트 암호기법을 CuBES(binary-CUbes-based Broadcast Encryption Scheme)라고 부른다.
이하에서는 CuBES에 의해 메시지를 암호화하여 전송하는 방법을 설명한다.
CuBES에서 센터에 의해 보내지는 메시지는 두 개의 부분을 포함한다. 두 번째 부분은 세션 키로 암호화된 정보(미디어)이다. 그리고 헤더(header)라고 불리는 첫 번째 부분은 탈퇴하지 않은 사용자가 세션 키를 얻도록 하기 위한 정보를 포함한다.
도 8은 본 발명에 따른 메시지의 헤더의 구성을 도시한 도면이다.
‘세션키암호문(ciphertexts)'(d) 부분은 그 각 필드가 키암호키로 암호화된 세션 키의 배열이다.
‘테스트블럭'(e)은 사용자가 세션 키를 정확하게 수신한 지 여부를 확인하도록 하기 위한 배열이다.
‘인덱스(index)'(f)부분은 메시지에서 사용된 키암호키에 대한 포인터(pointer)이며, 세션 키를 얻기 위하여 사용자가 세션키암호문(d)으로부터 무슨 세션키암호문을 검색해야 하는지에 대한 정보를 준다.
이하에서는 헤더의 각 부분을 설명하고, 센터에 의해 그것이 형성되고 사용자에 의해 그것이 분석되는 과정을 설명한다.
인덱스(f)는 사용자가 탈퇴되었는지에 대해 알 수 있고, 만약 탈퇴되지 않았 다면 세션 키를 얻기 위하여 무슨 세션키암호문(d)을 회복해야 하는지에 대한 정보를 포함한다. 센터(c)가 커버리지를 알고 있을 때, 인덱스(f)에서 이 정보를 코딩하는 절차가 필요하다.
인덱스(f)는 동일한 길이의 N/(n1×n2)레코드로 구성된다. n1×n
2 값은 트리의 제2레벨(b)의 하나의 조합에 있는 사용자의 수이다. 이 조합으로부터 탈퇴된 사용자의 구성을 포함하기 위하여, 최대 n2 키를 필요로 한다.
제2레벨(b)의 주어진 조합에 일치하는 커버리지에서 그 키암호키들에 의해 암호화된 세션 키의 세션키암호문(d)(이하에서는 이러한 세션키암호문을 '번들(bundle)'이라 함)은, 공백(gap)이나 다른 조합에 할당된 키의 삽입없이 연속적으로 헤더의 세션키암호문(d)에 위치한다. 그리고 모든 세션키암호문(d)의 길이가 동일하기 때문에, 그것의 번호를 아는 임의의 세션키암호문(d)을 회복하는 것은 쉽다.
다시 인덱스(f)의 레코드로 돌아가서 설명한다.
레코드의 첫 번째 부분은 번들이 시작하는 키의 번호를 보여준다. 커버리지안에 L 키가 있다고 하면, 모든 키는 0에서 L-1에 이르는 자신의 고유번호를 가진다. 따라서 주어진 키의 수를 쓰기 위해서는 log2L 비트가 필요하다.
레코드의 두 번째 부분은 두 번째 레벨로부터 주어진 조합의 인시던스 매트릭스의 열이다. 이 열은, 얼마나 많은 키가 번들안에 있는지를 정의한다. 즉 만약 두 번째 레벨의 주어진 조합을 위한 인시던스 매트릭스의 열의 해밍 웨이트 (Hamming weight)가 w 이면, n2 - w + 1 개의 키가 필요하다. 명백하게 이 부분의 길이는 n2 비트이다.
종합하면, 인덱스(f)의 전체 길이 IS는 다음의 수학식 3과 같다.
이하에서는 테스트블럭(e)과 세션 키의 복호에 대해 설명한다.
세션 키의 획득 절차를 쉽게 하기 위하여, 번들안에 있는 키들은 특별히 순서지어 진다. 첫 세션키암호문은 n1사용자들의 조합 중 사용자들이 탈퇴한 첫 번째 조합에 대응된다. 두 번째 세션키암호문은 두 번째 조합에 대응된다. 이런 방법으로 마지막 세션키암호문까지 대응된다. 번들의 마지막 세션키암호문은 탈퇴한 사용자들을 가지지 않은 조합에 대응된다.
번들안에 단지 하나의 세션키암호문이 있다면, 그땐 조합내에 탈퇴한 사용자가 없다는 것이 분명하다. 그리고 이 세션키암호문은 3 또는 그 이상 레벨의 BE기법으로부터 키암호키에 의해 암호화된 세션 키이다.
적어도 하나의 사용자가 탈퇴했다면, 번들은 두 개나 그 이상의 세션키암호문을 가지고 있다. 번들의 마지막 세션키암호문은 두 번째 레벨의 BE 기법으로부터 키암호키를 통해 얻어지고, 그밖의 다른 세션키암호문들은 트리의 제1레벨의 BE기법으로부터 얻은 키암호키를 통해 얻어진다.
적용된 인덱싱에 의해, 사용자는 세션 키를 암호화한 키암호키의 수와 동일한 수의 키암호키를 수신하지 않는다. 대신에, 사용자는 이러한 키암호키를 가진 BE기법이 무엇인지에 대한 표시를 수신한다.
여기에는 세가지 경우가 있다. 즉 키암호키는 첫 번째, 두 번째 레벨의 BE기법에 속할 수 있다. 혹은 세 번째나 그 이상의 BE기법에 속할 수 있다.
첫 번째 경우는, 사용자가 2(n1-1)-1의 키를 시도해야 한다. 두 번째는 2(n2-1)-1, 그리고 세 번째는 다음의 키를 시도해야 한다.
정확한 키암호키를 선택하고 세션 키를 얻기 위하여, 헤더에는 테스트블럭(e)이 있다. 테스트블럭(e)은 그 자신을 통해 암호화된 세션 키 K 이다. 즉 Test = Ek(K) 이다. 여기서 Ek(K) 함수는 키 k에 의해 데이터 K가 암호화되었음을 의미한다.
세션 키를 복호하는 절차는 다음의 도 9에 의한다.
도 9는 본 발명에 따른 브로드캐스트 암호화를 위한 사용자 키 관리 방법 중 세션 키의 복호과정을 설명하는데 제공되는 흐름도이다.
사용자는 연속적으로 대응하는 BE기법으로부터 모든 가능한 키암호키를 이용하여 세션 키의 복호를 시도한다. 그리고 매 시도마다 '후보 세션 키'인 K'을 얻는 다(S901).
사용자는 K'을 이용하여 테스트블록을 복호하고(S903), DK'(Test)=K'임을 확인한다(S905).
사용자는 만약 이러한 동일성이 사실이면, K=K'라고 판단한다(S907). 만약 동일하지 않으면 사용자는 S901 내지 S905단계를 반복하여 다음의 가능한 키암호키를 시도해야 한다. 그래서 한 번의 시도는 두 번의 복호를 요구한다.
그래서 세션 키를 회복하기 위하여, 복호를 시도한 전체 수는 다음의 수학식 5에 의해 상한이 경계지어진다.
이상의 방법에 의하여 세션 키가 복호된다.
이러한 CuBES 기법에 의하면, 사용자의 측면에서 저장해야 할 키의 수는 종래 기술에 비해 다소 많아지나, 전송 오버헤드는 확연히 줄일 수 있다. 이것은 헤더에 포함되는 암호화된 세션 키의 수를 줄임으로써 가능하다.
도 10은 본 발명에 따른 브로드캐스트 암호화를 위한 사용자 키 관리 방법의 성능을 설명하기 위한 그래프이다.
도 10에 포함된 그래프 (a) 및 (b)는 사용자의 수 N=220인 경우를 대상으로 한 것이다. 이경우, 본 발명의 CuBES 방법에 의하면, 사용자는 304개의 키를 보유 해야 하며, NNL Complete Subtree 기법에 의하면 21개의 키를, NNL Subset Difference에 의하면 211 개의 키를 보유해야 한다.
그래프의 가로축은 탈퇴한 사용자의 수 r을 나타내며, 세로축은 헤더에 포함되어 전송되는 키암호키의 수를 나타낸다. 키암호키의 수가 많을 수록 전송 오버헤드가 크게 된다. 탈퇴된 사용자의 수를 기준으로 (a) 및 (b)의 두개의 그래프로 분리하였다.
그래프를 참조하면, 전송 오버헤드에 있어 종래 기술에 비해 탁월한 효과를 보임을 알 수 있다.
본 발명은 방법, 장치 및 시스템으로 구현될 수 있다. 또한 본 발명이 컴퓨터 소프트웨어로 구현될 때는, 본 발명의 구성요소는 필요한 동작의 수행에 필요한 코드 세그먼트로 대치될 수 있다. 프로그램이나 코드 세그먼트는 마이크로프로세서에 의해 처리될 수 있는 매체에 저장될 수 있으며, 전송매체나 통신 네트워크를 통하여 운반 파형(carrier waves)와 결합된 컴퓨터 데이터로서 전송될 수 있다.
마이크로프로세서에 의해 처리될 수 있는 매체는 전자회로, 반도체 메모리 소자, 롬(ROM), 플래시 메모리, EEPROM, 플로피 디스크, 광학적 디스크, 하드 디스크, 광섬유, 무선 네트워크 등과 같이 정보를 전달하고 저장할 수 있는 것을 포함한다. 또한, 컴퓨터 데이터는 전기적 네트워크 채널, 광섬유, 전자기장, 무선 네트워크 등을 통해 전송될 수 있는 데이터를 포함한다.
이상 설명한 바와 같이, 본 발명에 따르면, 권한 있는 사용자만이 컨텐츠 (content)를 복호하여 이용할 수 있으며, 권한 없는 사용자는 컨텐츠를 복호할 수 없다. 이러한 것은 공모공격에 의하여도 마찬가지다.
종래기술에 비하여, 센터나 사용자의 시스템 자원을 최소한으로 하면서 전송 오버헤드(overhead)를 최소한으로 할 수 있다.
또한 새로운 사용자의 가입이나 탈퇴자의 발생이 있더라도, 기 보유한 키에 의하여 네트워크를 유지할 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
Claims (12)
- 적어도 하나의 노드를 ni 단위로 그룹핑한 제i레벨조합을 설정하고 상기 제i레벨조합을 다시 소정개수 ni+1 단위로 그룹핑한 제i+1레벨조합을 설정하는 과정을, i가 1에서 m까지 반복함으로써 m개의 계층을 가지는 트리구조를 형성하는 단계;상기 트리구조의 상기 적어도 하나의 노드에 사용자를 맵핑하고, 상기 제m계층에 메시지 공급자를 맵핑하는 단계;상기 제m계층으로부터 제1계층으로 내려가면서, 상기 각 제i레벨조합에 연결 된 제i+1레벨조합에 대하여 키암호키를 맵핑하는 단계; 및상기 키암호키를 이용하여 상기 메시지를 전송하는 단계;를 포함하는 것을 특징으로 하는 브로드캐스트 암호화를 위한 사용자 키 관리 방법.
- 제1항에 있어서,상기 키암호키를 맵핑하는 단계는,상기 제i+1레벨조합 수의 이진 인수를 가지는 이진 벡터를 열로 하고, 상기 제i+1레벨조합을 행으로 하는 매트릭스(matrix)를 형성하는 단계;상기 노드에 가상사용자를 맵핑하고, 상기 열마다 키암호키를 맵핑하는 단계;권한없는 상기 사용자를 하위레벨에 포함하는 상기 가상사용자를 검색하여, 상기 가상사용자가 가진 키암호키를 상기 매트릭스에서 제거하는 단계; 및상기 제거하는 단계 결과, 남은 매트릭스 상의 상기 사용자를 모두 포함하는 키암호키를 선택하는 단계;를 포함하는 것을 특징으로 하는 브로드캐스트 암호화를 위한 사용자 키 관리 방법.
- 제2항에 있어서,상기 제거하는 단계의 정해진 것은 1인 것을 특징으로 하는 브로드캐스트 암호화를 위한 사용자 키 관리 방법.
- 제2항에 있어서,상기 제거하는 단계는,상기 권한없는 사용자를 하위레벨에 포함하는 상기 가상사용자의 상기 매트릭스의 대응하는 행을 제거하고, 상기 제거한 행에 포함된 값이 0 및 1 중에서 정해진 것에 대응하는 열을 제거하는 단계;를 더 포함하는 것을 특징으로 하는 브로드캐스트 암호화를 위한 사용자 키 관리 방법.
- 제1항에 있어서,상기 노드는 무선 네트워크에 의한 상기 컨텐츠를 공급받는 장치임을 특징으로 하는 브로드캐스트 암호화를 위한 사용자 키 관리 방법.
- 제1항에 있어서,상기 키암호키는 상기 중심이 상기 제m레벨조합에서 제2레벨조합까지의 경우에 대하여만 맵핑되는 것을 특징으로 하는 브로드캐스트 암호화를 위한 사용자 키 관리 방법.
- 제1항에 있어서,상기 전송하는 단계는,상기 키암호키를 이용하여 세션(session) 키를 암호화하는 단계; 및상기 암호화된 세션 키를 이용하여 암호화된 상기 메시지를 전송함에 있어 헤더(header)에 상기 암호화된 세션 키를 부가하는 단계;를 포함하는 것을 특징으로 하는 브로드캐스트 암호화를 위한 사용자 키 관리 방법.
- 제 7항에 있어서,상기 전송하는 단계는,상기 세션 키를 이용하여 암호화된 세션 키인 테스트블럭을 상기 헤더에 부가하는 단계;를 더 포함하는 것을 특징으로 하는 브로드캐스트 암호화를 위한 사용자 키 관리 방법.
- 제8항에 있어서,상기 사용자가 상기 메시지를 수신하여 상기 메시지를 복호하는 단계;를 더 포함하는 것을 특징으로 하는 브로드캐스트 암호화를 위한 사용자 키 관리 방법.
- 제 9항에 있어서,상기 복호하는 단계는,상기 사용자가 기 소유한 키암호키를 이용하여 상기 암호화된 세션 키를 복호하여 후보 세션 키를 생성하는 단계;상기 후보 세션 키를 이용하여 상기 테스트블럭의 암호화된 세션 키를 복호하여 상기 후보 세션 키와 비교하는 단계; 및상기 비교결과 동일하면, 상기 후보 세션 키를 자신에 대한 세션 키로 판단 하고, 상기 메시지를 복호하는 단계;를 포함하는 것을 특징으로 하는 브로드캐스트 암호화를 위한 사용자 키 관리 방법.
- 제10항에 있어서,상기 후보 세션 키를 생성하는 단계는, 상기 기 소유한 암호키 중, 상기 헤드에 부가된 암호화된 세션 키의 위치정보에 따라 자신의 세션 키에 대해 복호하는 것을 특징으로 하는 브로드캐스트 암호화를 위한 사용자 키 관리 방법.
- 제1항의 브로드캐스트 암호화를 위한 사용자 키 관리 방법에 의해 암호화된 메시지를 수신하고 상기 암호화된 메시지를 복호하는 무선 단말장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040096497A KR100640058B1 (ko) | 2004-11-23 | 2004-11-23 | 브로드캐스트 암호화를 위한 사용자 키 관리 방법 |
US11/285,294 US7774598B2 (en) | 2004-11-23 | 2005-11-23 | Method of managing a key of user for broadcast encryption |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040096497A KR100640058B1 (ko) | 2004-11-23 | 2004-11-23 | 브로드캐스트 암호화를 위한 사용자 키 관리 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060057670A KR20060057670A (ko) | 2006-05-26 |
KR100640058B1 true KR100640058B1 (ko) | 2006-11-01 |
Family
ID=37152959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040096497A KR100640058B1 (ko) | 2004-11-23 | 2004-11-23 | 브로드캐스트 암호화를 위한 사용자 키 관리 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7774598B2 (ko) |
KR (1) | KR100640058B1 (ko) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100670010B1 (ko) * | 2005-02-03 | 2007-01-19 | 삼성전자주식회사 | 하이브리드 브로드캐스트 암호화 방법 |
KR100803596B1 (ko) | 2005-11-25 | 2008-02-19 | 삼성전자주식회사 | 폐기 메커니즘 상에서 외부 디바이스 또는 서비스를이용하는 복호화 방법 및 장치, 이를 위한 복호화 지원방법 및 장치 |
DE102006006633A1 (de) * | 2006-02-10 | 2007-08-16 | Sia Syncrosoft | Verfahren zur Verbreitung von Contents |
FR2899748B1 (fr) * | 2006-04-07 | 2008-11-28 | Thales Sa | Schema de diffusion hybride efficace, adapte a une faible bande passante |
JP4984827B2 (ja) * | 2006-10-30 | 2012-07-25 | ソニー株式会社 | 鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法、およびプログラム |
US8189789B2 (en) * | 2008-11-03 | 2012-05-29 | Telcordia Technologies, Inc. | Intrusion-tolerant group management for mobile ad-hoc networks |
US8356177B2 (en) * | 2008-12-30 | 2013-01-15 | Cisco Technology, Inc. | Key transport in authentication or cryptography |
US8254580B2 (en) * | 2009-09-30 | 2012-08-28 | Telefonaktiebolaget L M Ericsson (Publ) | Key distribution in a hierarchy of nodes |
US8396896B2 (en) | 2010-11-10 | 2013-03-12 | International Business Machines Corporation | Assigning resources to a binary tree structure |
KR20140028342A (ko) * | 2012-08-28 | 2014-03-10 | 삼성전자주식회사 | 브로드캐스트 암호화를 위한 키 관리 방법 및 브로드캐스트 암호화를 이용한 메시지 전송 방법 |
CA3189251A1 (en) * | 2014-01-31 | 2015-08-06 | Cryptometry Canada Inc. | System and method for performing secure communications |
US9537652B2 (en) | 2015-03-27 | 2017-01-03 | International Business Machines Corporation | Polymorphic encryption key allocation scheme |
US9774610B2 (en) * | 2015-07-28 | 2017-09-26 | Futurewei Technologies, Inc. | Certificateless data verification with revocable signatures |
US10467384B2 (en) * | 2016-05-18 | 2019-11-05 | International Business Machines Corporation | Subset-difference broadcast encryption with blacklisting |
US10841078B2 (en) * | 2018-07-26 | 2020-11-17 | International Business Machines Corporation | Encryption key block generation with barrier descriptors |
US20220191003A1 (en) * | 2021-12-10 | 2022-06-16 | Tamas Mihaly Varhegyi | Complete Tree Structure Encryption Software |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5917911A (en) * | 1997-01-23 | 1999-06-29 | Motorola, Inc. | Method and system for hierarchical key access and recovery |
US7043024B1 (en) * | 2001-04-18 | 2006-05-09 | Mcafee, Inc. | System and method for key distribution in a hierarchical tree |
-
2004
- 2004-11-23 KR KR1020040096497A patent/KR100640058B1/ko not_active IP Right Cessation
-
2005
- 2005-11-23 US US11/285,294 patent/US7774598B2/en not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
논문 |
Also Published As
Publication number | Publication date |
---|---|
US20070079118A1 (en) | 2007-04-05 |
US7774598B2 (en) | 2010-08-10 |
KR20060057670A (ko) | 2006-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100640058B1 (ko) | 브로드캐스트 암호화를 위한 사용자 키 관리 방법 | |
KR101092543B1 (ko) | 브로드캐스트 암호화를 위한 사용자 키 관리 방법 | |
US7848525B2 (en) | Hybrid broadcast encryption method | |
Eltoweissy et al. | Combinatorial optimization of group key management | |
US8755520B2 (en) | Apparatus and method for generating a key for broadcast encryption | |
US8005225B2 (en) | Hierarchical threshold tree-based broadcast encryption method | |
KR101152311B1 (ko) | 트리 토폴로지 네트워크 구조에서의 브로드 캐스트암호화를 위한 키 관리방법 | |
US8897445B2 (en) | Combination-based broadcast encryption method | |
US7092527B2 (en) | Method, system and program product for managing a size of a key management block during content distribution | |
JP4162237B2 (ja) | 複数の復号化装置に対し選択的にメッセージを配信する暗号化通信システム、暗号化装置、復号化装置、暗号化方法、復号化方法、暗号化プログラム、及び復号化プログラム | |
US7752435B2 (en) | Method for managing user key for broadcast encryption | |
US8054973B2 (en) | User key management method for broadcast encryption (BE) | |
KR20090090308A (ko) | 정보처리장치 | |
Vijayakumar et al. | An effective key distribution for secure internet pay‐TV using access key hierarchies | |
KR20060131536A (ko) | BE 시스템에서의 홈 디바이스의 통합적 키(key) 관리방법 및 그 시스템 | |
Pal et al. | Efficient and secure conditional access system for pay-TV systems | |
KR100701884B1 (ko) | 브로드캐스트 암호화를 위한 사용자 키 관리 방법 | |
Wang et al. | Balanced double subset difference broadcast encryption scheme | |
KR20060049340A (ko) | 브로드캐스트 암호화를 위한 사용자 키 관리 방법 | |
Zhang et al. | Broadcast encryption scheme and its implementation on conditional access system | |
KR100879083B1 (ko) | 2 부분 차집합을 이용한 동보 메세지 암호화 방법 |
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 | ||
LAPS | Lapse due to unpaid annual fee |