KR101160812B1 - Method for key generation to reduce transmission overhead in Broadcast Encryption, Encryption and Decryption using the key generation - Google Patents

Method for key generation to reduce transmission overhead in Broadcast Encryption, Encryption and Decryption using the key generation Download PDF

Info

Publication number
KR101160812B1
KR101160812B1 KR1020050029375A KR20050029375A KR101160812B1 KR 101160812 B1 KR101160812 B1 KR 101160812B1 KR 1020050029375 A KR1020050029375 A KR 1020050029375A KR 20050029375 A KR20050029375 A KR 20050029375A KR 101160812 B1 KR101160812 B1 KR 101160812B1
Authority
KR
South Korea
Prior art keywords
nodes
node
key
row
assigned
Prior art date
Application number
KR1020050029375A
Other languages
Korean (ko)
Other versions
KR20060106330A (en
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 재단법인서울대학교산학협력재단
Publication of KR20060106330A publication Critical patent/KR20060106330A/en
Application granted granted Critical
Publication of KR101160812B1 publication Critical patent/KR101160812B1/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A21BAKING; EDIBLE DOUGHS
    • A21BBAKERS' OVENS; MACHINES OR EQUIPMENT FOR BAKING
    • A21B3/00Parts or accessories of ovens
    • A21B3/13Baking-tins; Baking forms
    • A21B3/139Baking-tins; Baking forms with apertures to vent steam
    • AHUMAN NECESSITIES
    • A21BAKING; EDIBLE DOUGHS
    • A21BBAKERS' OVENS; MACHINES OR EQUIPMENT FOR BAKING
    • A21B3/00Parts or accessories of ovens
    • A21B3/13Baking-tins; Baking forms
    • A21B3/133Baking-tins; Baking forms for making bread

Landscapes

  • Life Sciences & Earth Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Food Science & Technology (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

브로드캐스트 암호화에서 사용되는 키 생성방법이 개시된다. 상기 키 생성 방법은 다수의 행들 각각에 다수의 노드들을 할당하고, 상기 다수의 행들 중에서 어느 하나의 행을 구성하는 적어도 하나의 노드는 상기 다수의 행들 중에서 다른 하나의 행을 구성하는 적어도 하나의 노드와 서로 연관되도록 다수의 노드들로 구성된 계층적인 노드 그룹을 형성하는 단계; 상기 계층적인 노드 그룹을 형성하는 모든 노드들 각각에 적어도 하나의 노드 키를 할당하는 단계; 상기 다수의 행들 각각에 적어도 하나의 일방향 함수를 할당하는 단계; 상기 계층적인 노드 그룹을 형성하는 모든 노드들 중에서 선택된 두 개의 노드들로 이루어진 구간을 설정하고, 상기 구간을 형성하는 두 개의 노드들 각각을 포함하는 적어도 하나의 행에 할당된 적어도 하나의 일방향 함수를 적용하여 상기 구간의 구간 키를 생성하고, 생성된 구간 키를 상기 선택된 두 개의 노드들 중에서 어느 하나의 노드에 할당하는 단계: 및 상기 다수의 행들 중에서 마지막 행을 구성하는 다수의 노드들 각각에 사용자를 할당하는 단계를 구비한다. 상기 키 생성 방법은 브로드캐스트 암호화에서 전송량을 감소시킬 수 있다.Disclosed is a key generation method used in broadcast encryption. The key generation method allocates a plurality of nodes to each of a plurality of rows, and at least one node constituting any one of the plurality of rows comprises at least one node constituting another one of the plurality of rows. Forming a hierarchical node group composed of a plurality of nodes to be associated with each other; Assigning at least one node key to each of the nodes forming the hierarchical node group; Assigning at least one one-way function to each of the plurality of rows; Setting a section consisting of two nodes selected from all nodes forming the hierarchical node group, and setting at least one one-way function assigned to at least one row including each of the two nodes forming the section. Generating an interval key of the interval and assigning the generated interval key to any one of the selected two nodes; and a user to each of a plurality of nodes constituting a last row among the plurality of rows. The step of assigning. The key generation method can reduce the amount of transmission in broadcast encryption.

브로드캐스트 암호화, 전송량 Broadcast encryption, throughput

Description

브로드캐스트 암호화에서 전송량을 감소시킬 있는 키 생성방법, 이를 이용한 암호화 및 복호화 방법{Method for key generation to reduce transmission overhead in Broadcast Encryption, Encryption and Decryption using the key generation} Method for key generation to reduce transmission overhead in Broadcast Encryption, Encryption and Decryption using the key generation}

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.The detailed description of each drawing is provided in order to provide a thorough understanding of the drawings cited in the detailed description of the invention.

도 1은 일반적인 브로드캐스트 암호화에 의한 데이터 전송 시스템의 네트워크 구조를 나타낸다.1 shows a network structure of a data transmission system using general broadcast encryption.

도 2는 본 발명의 일실시예에 따른 브로드캐스트 암호화에 의한 데이터 전송 시스템의 네트워크 구조를 개념적으로 나타낸다.2 conceptually illustrates a network structure of a data transmission system using broadcast encryption according to an embodiment of the present invention.

도 3은 본 발명의 일실시예에 따른 키 생성방법을 나타내는 흐름도이다.3 is a flowchart illustrating a key generation method according to an embodiment of the present invention.

도 4는 본 발명의 일실시예에 따라 다수의 노드들을 포함하는 계층적인 노드 그룹을 나타내는 개념도이다.4 is a conceptual diagram illustrating a hierarchical node group including a plurality of nodes according to an embodiment of the present invention.

도 5는 본 발명의 일실시예에 따라 설정된 제1구간 및 그 구간 키 할당방법을 나타내는 개념도이다.5 is a conceptual diagram illustrating a first section set according to an embodiment of the present invention and a method of allocating the section key thereof.

도 6은 본 발명의 일실시예에 따라 설정된 제2구간 및 그 구간 키 할당방법을 나타내는 개념도이다.6 is a conceptual diagram illustrating a second section set according to an embodiment of the present invention and a section key allocation method thereof.

도 7은 본 발명의 일실시예에 따라 설정된 제3구간 및 구간 키 할당방법을 나타내는 개념도이다.7 is a conceptual diagram illustrating a method for allocating a third section and section key set according to an embodiment of the present invention.

도 8은 본 발명의 일실시예에 따른 브로드캐스트 암호화 방법을 나타내는 흐름도인다.8 is a flowchart illustrating a broadcast encryption method according to an embodiment of the present invention.

도 9는 본 발명의 일실시예에 따른 오른쪽 구간 키와 왼쪽 구간 키를 계산하는 방법을 나타내는 흐름도이다. 9 is a flowchart illustrating a method of calculating a right section key and a left section key according to an embodiment of the present invention.

도 10은 본 발명의 일실시예에 따른 복호화 방법을 나타내는 흐름도인다.10 is a flowchart illustrating a decoding method according to an embodiment of the present invention.

도 11은 본 발명의 일실시예에 따른 수신기의 블락도를 나타낸다.11 is a block diagram of a receiver according to an embodiment of the present invention.

도 12는 본 발명의 일실시예에 따라 자신이 속하는 구간을 계산하고 상기 구간의 구간 키를 계산하는 방법을 개념적으로 나타낸다.12 conceptually illustrates a method of calculating a section to which it belongs and calculating a section key of the section according to an embodiment of the present invention.

도 13은 종래의 방법에 따른 전송량과 본 발명의 일실시예에 따른 전송량을 비교한 그래프를 나타낸다.Figure 13 shows a graph comparing the transmission amount according to the conventional method and the transmission amount according to an embodiment of the present invention.

본 발명은 암/복호화 방법에 관한 것으로, 보다 상세하게는 브로드캐스트 암호화에서 전송량을 감소시킬 수 있는 키 생성방법, 브로드캐스트 암호화 방법, 브로드캐스트 복호화 방법, 및 상기 각 방법을 구현하기 위한 장치와 그 기록매체에 관한 것이다.The present invention relates to an encryption / decryption method, and more particularly, to a key generation method, a broadcast encryption method, a broadcast decryption method, and an apparatus for implementing each of the above methods, which can reduce a transmission amount in broadcast encryption. It relates to a recording medium.

브로드캐스트 암호화(Broadcast Encryption)는 전체 사용자들 중에서 송신자 (즉, 방송 센터(Broadcast Center))가 원하는 사용자들에게만 정보를 효과적으로 전달하는 방법으로서, 정보를 받을 사용자(user)들의 집합이 임의적이고 동적으로 변화하는 경우에 효과적으로 사용될 수 있어야 한다. 브로드캐스트 암호화에서의 가장 중요한 성질은 원치 않는 사용자(예컨대, 불법 사용자 또는 기간이 만료된 사용자)의 배제(revocation) 또는 제외이다.Broadcast encryption is a method in which the sender (i.e., broadcast center) among all the users effectively delivers information to the desired users. The set of users to receive the information is randomly and dynamically. It must be able to be used effectively in case of change. The most important property in broadcast encryption is the revocation or exclusion of unwanted users (eg, illegal users or expired users).

도 1은 일반적인 브로드캐스트 암호화에 의한 데이터 전송 시스템의 네트워크 구조(100)를 나타낸 도면이다. 도 1을 참조하면, 컨텐츠 생산자(110)는 오디오 또는 비디오 데이터를 비롯한 각종 유용한 데이터를 생산하고, 생산된 오디오 또는 비디오 데이터를 서비스 제공자(120)에게 제공한다. 서비스 제공자(120)는 컨텐츠 생산자(110)로부터 제공받은 각종 데이터를 각종 유무선 통신 네트워크를 통해 해당 데이터에 대한 비용을 지불한 정당한 사용자들(예컨대, 모바일 DRM(Digital Right Management) 네트워크, 스마트홈 DRM 네트워크)에게 브로드캐스팅(broadcasting)하게 된다.FIG. 1 is a diagram illustrating a network structure 100 of a data transmission system using general broadcast encryption. Referring to FIG. 1, the content producer 110 produces various useful data, including audio or video data, and provides the produced audio or video data to the service provider 120. The service provider 120 may provide legitimate users (eg, a mobile digital right management (DRM) network and a smart home DRM network) for paying for the data through various wired and wireless communication networks for various data provided from the content producer 110. Broadcast to).

즉, 서비스 제공자(120)는 위성(130)을 통해 각종 위성 수신기가 구비된 셋톱박스(set-top box)와 같은 사용자들의 장치(161)로 데이터를 전송할 수 있으며, 이동통신 망(140)을 통해 이동통신 단말기(163)로도 전송할 수 있다. 또한, 인터넷 네트워크(150)를 통해 스마트 홈 네트워크의 각종 단말기들(165)로 전송할 수 있다.That is, the service provider 120 may transmit data to the user's device 161 such as a set-top box equipped with various satellite receivers through the satellite 130, and may transmit the mobile communication network 140. It can also be transmitted to the mobile communication terminal 163 through. In addition, it may transmit to various terminals 165 of the smart home network through the Internet network 150.

한편, 이때 해당 데이터에 대한 정당한 비용을 지불하지 않은 불법 사용자(revoked-user; 167)가 데이터를 이용하지 못하도록 하기 위하여 브로드캐스트 암 호화(Broadcast Encryption)에 의해 데이터를 암호화하게 된다.In this case, the data is encrypted by broadcast encryption in order to prevent the revoked-user 167 who does not pay a fair fee for the data from using the data.

이러한 암호화 및 복호화 시스템에서의 안전성은 대개 암호화 키를 관리하는 시스템에 달려있다. 그리고 이러한 암호화 키 관리 시스템에서 가장 중요한 것은 암호화 키를 어떻게 생성(Key Generation)하는 가이다. 아울러, 생성된 암호화 키를 관리(Key Management)하고, 갱신(Key Update)하는 것 또한 중요하다.The security of such an encryption and decryption system usually depends on the system that manages the encryption key. The most important thing in such an encryption key management system is how to generate an encryption key. In addition, it is also important to manage and update the generated encryption key (Key Update).

1991년 브로드캐스트 암호화의 개념이 처음 제안된 이후로 많은 변화를 거쳐왔으며, 현재의 브로드캐스트 암호화에서는 수신자의 키가 갱신되지 못하는 것을 가정한다(stateless receiver). 이 개념은 세션(session)이 바뀜에 따라서 각각의 사용자들의 비밀키가 전혀 바뀌거나 갱신되지 않는다는 것을 의미한다. 이때, 안전성에 있어서는 'k-내성(k-resilient)'이라는 용어를 사용하는데, 이것은 제외된 사용자들 중 k명이 공모 공격을 하여도 정보를 복구해내지 못하는 것을 의미한다. 대개 r은 제외된 사용자의 숫자를 나타내므로, 'r-내성(r-resilient)'은 제외된 사용자 전부가 모여서 공모 공격을 하여도 안전하다는 것을 의미한다.Since the concept of broadcast encryption was first proposed in 1991, a number of changes have been made. It is assumed that the receiver's key cannot be updated in the current broadcast encryption (stateless receiver). This concept means that each session's private key is never changed or updated as the session changes. In this case, the term 'k-resilient' is used in terms of safety, which means that the k-resilient user is unable to recover information even after a public attack. Since r usually represents the number of excluded users, 'r-resilient' means that all excluded users are safe to collaborate.

한편, 브로드캐스트 암호화에서는 전송량(transmission overhead), 저장량(storage size), 계산량(computation cost)을 중요시하는데, 각각 전송측에서 전송해야 하는 헤더(header)의 양, 사용자가 저장해야 하는 비밀키의 양 및 사용자가 세션(session) 키를 얻기 위해 필요한 계산의 양을 의미한다. 이 중에서도 특히 전송량을 줄이는 것이 큰 과제라고 할 수 있다.On the other hand, in broadcast encryption, transmission overhead, storage size, and computation cost are important, respectively, the amount of headers to be transmitted by the transmitting side, and the amount of private keys that a user must store. And the amount of computation required for the user to obtain a session key. Among these, reducing the amount of transmission is a major problem.

따라서 본 발명이 이루고자 하는 기술적인 과제는 브로드캐스트 암호화에서 전송량을 감소시킬 수 있는 키 생성방법, 이를 이용한 암호화 및 복호화 방법을 제공하는 것이다.Accordingly, the technical problem to be achieved by the present invention is to provide a key generation method that can reduce the amount of transmission in broadcast encryption, an encryption and decryption method using the same.

상기 기술적 과제를 달성하기 위한 키 생성방법은 다수의 행들을 구비하며, 상기 다수의 행들 중에서 n번째 행이 (m)n의 노드들을 포함하도록 계층적인 트리(hierarchical tree)를 생성하는 단계; 상기 계층적인 트리를 형성하는 모든 노드들 각각에 적어도 하나의 노드 키를 할당하는 단계; 상기 다수의 행들 각각에 적어도 하나의 일방향 함수를 할당하는 단계; 상기 계층적인 트리를 형성하는 모든 노드들 중에서 선택된 두 개의 노드들로 이루어진 구간을 구하고, 상기 구간에 포함되며 각 행에 할당된 적어도 하나의 일방향 함수를 이용하여 상기 구간의 구간 키를 생성하고, 생성된 구간 키를 상기 선택된 두 개의 노드들 중에서 어느 하나의 노드에 할당하는 단계: 및 상기 계층적인 트리의 최하위 행의 노드들 각각에 사용자를 할당하는 단계를 구비한다.According to an aspect of the present invention, there is provided a method of generating a key, the method comprising: generating a hierarchical tree such that an nth row of the plurality of rows includes nodes of (m) n ; Assigning at least one node key to each of the nodes forming the hierarchical tree; Assigning at least one one-way function to each of the plurality of rows; Obtaining a section consisting of two nodes selected from all nodes forming the hierarchical tree, generating a section key of the section using at least one one-way function included in the section and assigned to each row, and generating Assigning the selected interval key to any one of the two selected nodes; and assigning a user to each of the nodes in the lowest row of the hierarchical tree.

상기 기술적 과제를 달성하기 위한 키 생성방법은 각 계층의 각 부모 노드가 다수개의 자식 노드들을 갖도록 계층적인 노드 그룹(hierarchical node group)을 생성하는 단계; 상기 각 계층의 각 부모 노드와 최하위 계층을 형성하는 자식 노드들 각각에 적어도 하나의 노드 키를 할당하는 단계; 상기 각 계층에 적어도 하나의 일방향 함수를 할당하는 단계; 상기 계층적인 노드 그룹을 형성하는 다수개의 노드들 중에서 선택된 두 개의 노드들로 이루어진 구간을 설정하는 단계; 상기 구간에 포함된 각 계층에 할당된 일방향 함수를 이용하여 상기 구간의 구간 키를 생성하고, 생성된 구간 키를 상기 선택된 두 개의 노드들 중에서 어느 하나의 노드에 할당하는 단계: 및 상기 최하위 계층을 형성하는 자식 노드들 각각에 대응되는 사용자를 할당하는 단계를 구비한다.The key generation method for achieving the technical problem comprises the steps of: creating a hierarchical node group so that each parent node of each layer has a plurality of child nodes; Assigning at least one node key to each parent node of each layer and each of the child nodes forming the lowest hierarchy; Assigning at least one one-way function to each layer; Setting a section consisting of two nodes selected from a plurality of nodes forming the hierarchical node group; Generating a section key of the section using a one-way function assigned to each layer included in the section, and assigning the generated section key to any one of the two selected nodes: and the lowest layer And assigning a user corresponding to each of the child nodes to be formed.

상기 키 생성방법은 상기 각 계층의 각 부모 노드 및/또는 상기 최하위 계층을 형성하는 자식 노드들 각각에 적어도 하나의 상기 구간 키를 할당하는 단계를 더 구비한다. 상기 키 생성방법은 상기 최하위 계층을 형성하는 자식 노드들 각각에는 상기 최하위 계층을 형성하는 노드들 각각의 직계 부모 노드에 할당된 적어도 하나의 상기 노드 키 및/또는 상기 직계 부모 노드에 할당된 적어도 하나의 상기 구간 키를 할당하는 단계를 더 구비한다.The key generation method further includes assigning at least one interval key to each parent node of each layer and / or each of the child nodes forming the lowest hierarchy. The key generation method may include at least one node key assigned to a direct parent node of each of the nodes forming the lowest hierarchy and / or at least one assigned to the direct parent node in each of the child nodes forming the lowest hierarchy. And allocating the interval key of.

상기 기술적 과제를 달성하기 위한 키 생성방법은 다수의 행들 각각에 다수의 노드들을 할당하고, 상기 다수의 행들 중에서 어느 하나의 행을 구성하는 적어도 하나의 노드는 상기 다수의 행들 중에서 다른 하나의 행을 구성하는 적어도 하나의 노드와 서로 연관되도록 다수의 노드들로 구성된 계층적인 노드 그룹을 형성하는 단계; 상기 계층적인 노드 그룹을 형성하는 모든 노드들 각각에 적어도 하나의 노드 키를 할당하는 단계; 상기 다수의 행들 각각에 적어도 하나의 일방향 함수를 할당하는 단계; 상기 계층적인 노드 그룹을 형성하는 모든 노드들 중에서 선택된 두 개의 노드들로 이루어진 구간을 설정하고, 상기 구간을 형성하는 두 개의 노드들 각각을 포함하는 적어도 하나의 행에 할당된 적어도 하나의 일방향 함수를 적용하여 상기 구간의 구간 키를 생성하고, 생성된 구간 키를 상기 선택된 두 개의 노드들 중에서 어느 하나의 노드에 할당하는 단계: 및 상기 다수의 행들 중에서 마지막 행을 구성하는 다수의 노드들 각각에 사용자를 할당하는 단계를 구비한다.The key generation method for achieving the technical problem is to assign a plurality of nodes to each of a plurality of rows, wherein at least one node constituting any one of the plurality of rows is the other row of the plurality of rows Forming a hierarchical node group consisting of a plurality of nodes to be associated with at least one constituting node; Assigning at least one node key to each of the nodes forming the hierarchical node group; Assigning at least one one-way function to each of the plurality of rows; Setting a section consisting of two nodes selected from all nodes forming the hierarchical node group, and setting at least one one-way function assigned to at least one row including each of the two nodes forming the section. Generating an interval key of the interval and assigning the generated interval key to any one of the selected two nodes; and a user to each of a plurality of nodes constituting a last row among the plurality of rows. The step of assigning.

상기 기술적 과제를 달성하기 위한 키 생성방법은 N(여기서, N은 자연수)개의 행들로 구성되며, 상기 N개의 행들 각각은 다수의 노드들을 포함하며, 상기 N개의 행들 중에서 I(여기서, I는 N보다 작은 자연수)번째 행을 구성하는 다수의 노드들 각각을 부모 노드로 할당하고, (I+1)번째 행을 구성하는 다수의 노드들 중에서 선택된 적어도 하나의 노드를 상기 I번째 행을 구성하는 다수의 노드들 중에서 적어도 하나의 부모 노드의 자식 노드로 할당함으로써 계층적인 노드 그룹(hierarchical node group)을 생성하는 단계; 상기 계층적인 노드 그룹을 형성하는 모든 노드들 각각에 적어도 하나의 노드 키를 할당하는 단계; 상기 N개의 행들 각각에 적어도 하나의 일방향 함수를 할당하는 단계; 상기 계층적인 노드 그룹을 형성하는 모든 노드들 중에서 선택된 두 개의 노드들로 이루어진 구간을 설정하고, 상기 구간을 형성하는 두 개의 노드들 각각을 포함하는 적어도 하나의 행에 할당된 적어도 하나의 일방향 함수를 연산하여 상기 구간의 구간 키를 생성하고, 생성된 구간 키를 상기 선택된 두 개의 노드들 중에서 어느 하나의 노드에 할당하는 단계: 및 상기 N번째 행을 구성하는 다수의 노드들 각각에 사용자를 할당하는 단계를 구비한다.The key generation method for achieving the technical problem is composed of N (where N is a natural number), each of the N rows includes a plurality of nodes, I (where I is N of the N rows) A smaller natural number) assigns each of the plurality of nodes constituting the first row as a parent node, and at least one node selected from among the plurality of nodes constituting the (I + 1) th row constitutes the Ith row Creating a hierarchical node group by assigning as a child node of at least one parent node among the nodes of; Assigning at least one node key to each of the nodes forming the hierarchical node group; Assigning at least one one-way function to each of the N rows; Setting a section consisting of two nodes selected from all nodes forming the hierarchical node group, and setting at least one one-way function assigned to at least one row including each of the two nodes forming the section. Generating a section key of the section by allocating the assigned section key and assigning the generated section key to any one of the selected two nodes; and assigning a user to each of a plurality of nodes constituting the Nth row. With steps.

상기 기술적 과제를 달성하기 위한 브로드캐스트 암호화 방법은 세션 키를 이용하여 메시지를 암호화하는 단계; 및 상기 메시지의 헤더에 표시된 구간에 속하는 정당한 사용자는 자신이 속하는 상기 구간을 계산하고, 계산된 구간의 구간 키 를 이용하여 상기 세션 키를 계산하고, 계산된 세션 키를 이용하여 암호화된 메시지를 복호하도록 그리고 상기 구간에 속하지 않는 불법 사용자는 상기 암호화된 메시지를 복호하지 못하도록 상기 정당한 사용자와 상기 불법의 사용자 각각에게 암호화된 메시지를 전송하는 단계를 구비한다.The broadcast encryption method for achieving the technical problem comprises the steps of encrypting a message using a session key; And a legitimate user belonging to the section indicated in the header of the message, calculates the section to which the user belongs, calculates the session key using the calculated section key, and decrypts the encrypted message using the calculated session key. And transmitting an encrypted message to each of the legitimate user and the illegal user so that an illegal user who does not belong to the interval does not decrypt the encrypted message.

상기 기술적 과제를 달성하기 위한 브로드캐스트 암호화 방법은 다수의 사용자들로부터 적어도 한 명의 불법 사용자를 제거하고, 각각이 적어도 한 명의 정당한 사용자를 포함하는 복수의 구간들을 얻는 단계; 상기 복수의 구간들 각각에 대응되는 일방향 함수를 이용하여 두 개의 구간 키들을 생성하고, 생성된 두 개의 구간 키들 각각을 이용하여 세션 키를 암호화하는 단계; 및 상기 세션 키를 복호화할 수 있도록 상기 구간들 각각을 구성하는 정당한 사용자들에 대한 정보, 암호화된 세션 키, 및 상기 세션 키를 사용하여 암호화된 콘텐츠를 포함하는 암호화된 메시지를 전송하는 단계를 구비한다.The broadcast encryption method for achieving the technical problem comprises the steps of removing at least one illegal user from a plurality of users, and obtaining a plurality of sections each including at least one legitimate user; Generating two interval keys by using a one-way function corresponding to each of the plurality of intervals, and encrypting a session key using each of the generated two interval keys; And transmitting an encrypted message comprising information about legitimate users constituting each of the intervals, an encrypted session key, and content encrypted using the session key to decrypt the session key. do.

상기 기술적 과제를 달성하기 위한 브로드캐스트 암호화 방법은 정당한 수신기들만 포함되는 하나의 구간을 제1구간과 제2구간으로 나누는 단계; 대응되는 제1 일방향 함수를 이용하여 상기 제1구간에 상응되는 제1구간 키와 대응되는 제2 일방향 함수를 이용하여 상기 제2구간에 상응되는 제2구간 키를 계산하는 단계; 및 생성된 세션 키를 상기 제1구간 키와 상기 제2구간 키를 이용하여 각각 암호화하는 단계를 구비한다. The broadcast encryption method for achieving the above technical problem comprises the steps of: dividing one section including only valid receivers into a first section and a second section; Calculating a second section key corresponding to the second section using a second one-way function corresponding to the first section key corresponding to the first section using a corresponding first one-way function; And encrypting the generated session key using the first section key and the second section key, respectively.

상기 구간이 상기 정당한 수신기들 각각을 사상한 다수의 노드들을 포함하는 경우, 상기 구간에 포함된 최상위 계층의 노드와 상기 구간의 시작 노드로 이루어 진 상기 제1구간을 형성하고, 상기 구간에 포함된 최상위 계층의 노드와 상기 구간의 끝 노드로 이루어진 상기 제2구간을 형성한다.When the section includes a plurality of nodes that map each of the legitimate receivers, the first section including the node of the highest layer included in the section and the start node of the section is formed, and is included in the section. The second section includes a node of an uppermost layer and an end node of the section.

상기 기술적 과제를 달성하기 위한 브로드캐스트 암호화 방법은 각 계층을 형성하는 각 부모 노드가 다수개의 자식 노드들을 갖고, 최하위 계층을 형성하는 직선상의 다수개의 자식 노드들 각각으로 사상된 사용자들 중에서 적어도 한 명의 불법 사용자를 제거하는 단계; 상기 직선상에서 정당한 사용자들을 포함하는 구간을 얻는 단계; 상기 구간에 포함된 상기 각 계층 중에서 최상위 계층의 노드를 찾는 단계; 상기 최상위 계층의 노드와 상기 구간의 시작 노드로 형성되는 왼쪽 구간과 상기 최상위 계층의 노드와 상기 구간의 끝 노드로 형성되는 오른쪽 구간을 구하는 단계; 각 계층에 할당된 제1일방향 함수를 이용하여 상기 오른쪽 구간에 상응하는 오른쪽 구간 키를 계산하고, 상기 각 계층에 할당된 제2일방향 함수를 이용하여 상기 왼쪽 구간에 상응하는 왼쪽 구간 키를 계산하는 단계; 세션 키를 생성하는 단계; 및 상기 세션 키를 상기 왼쪽 구간 키와 상기 오른쪽 구간 키 각각을 이용하여 암호화하고, 상기 구간에 대한 정보, 암호화된 각 세션 키에 대한 정보, 및 상기 세션 키를 이용하여 암호화된 콘텐츠를 포함하는 메시지를 전송하는 단계를 구비한다.In order to achieve the above technical problem, a broadcast encryption method includes at least one user among each parent node forming each layer having a plurality of child nodes and mapped to each of a plurality of linear child nodes forming a lowest layer. Removing the illegal user; Obtaining a section including legitimate users on the straight line; Finding a node of a top layer among the layers included in the section; Obtaining a left section formed of the node of the top layer and the start node of the section, and a right section formed of the node of the top layer and the end node of the section; Computing a right section key corresponding to the right section using a first one-way function assigned to each layer, and calculating a left section key corresponding to the left section using a second one-way function assigned to each layer step; Generating a session key; And encrypting the session key using each of the left interval key and the right interval key, and including information about the interval, information about each encrypted session key, and content encrypted using the session key. It comprises the step of transmitting.

상기 기술적 과제를 달성하기 위한 브로드캐스트 송신 장치는 메시지를 암호화하는 암호화기; 및 암호화된 메시지에 포함된 헤더에 표시된 소정의 구간에 속하는 적어도 한 명의 정당한 사용자는 암호화된 메시지를 복호하고, 상기 소정의 구간에 속하지 않는 적어도 한 명의 불법 사용자는 상기 암호화된 메시지를 복호하지 못하도록 상기 적어도 한 명의 정당환 사용자와 상기 적어도 한 명의 불법의 사용자에게 암호화된 콘텐츠를 전송하는 송신기를 구비한다.Broadcast transmission apparatus for achieving the technical problem is an encryptor for encrypting a message; And at least one legitimate user belonging to the predetermined section indicated in the header included in the encrypted message decrypts the encrypted message, and at least one illegal user who does not belong to the predetermined section prevents the encrypted message from being decrypted. And a transmitter for transmitting encrypted content to at least one party user and at least one illegal user.

상기 기술적 과제를 달성하기 위한 수신기는 소정의 구간 키를 저장하는 키 저장 수단; 및 암호화된 메시지를 수신하고, 상기 메시지에 포함된 구간정보에 기초하여 수신기 자신이 속하는 구간을 구하고, 상기 소정의 구간 키를 이용하여 상기 수신기 자신이 속하는 구간의 구간 키를 계산하고, 계산된 구간 키를 이용하여 세션 키를 복호하고, 복호된 세션 키를 이용하여 상기 메시지에 포함된 콘텐츠를 복호한다.A receiver for achieving the technical problem comprises a key storage means for storing a predetermined interval key; And receiving an encrypted message, obtaining a section to which the receiver itself belongs based on the section information included in the message, calculating a section key of the section to which the receiver belongs using the predetermined section key, and calculating the section. The session key is decrypted using the key, and the content included in the message is decrypted using the decrypted session key.

상기 기술적 과제를 달성하기 위한 복호화 방법은 세션 키를 이용하여 암호화된 메시지를 수신하는 단계; 상기 암호화된 메시지의 헤더에 포함된 구간에 속하는 정당한 사용자는 자신이 가지고 있는 구간 키를 일방향 함수 연산하여 자신이 속하는 상기 구간의 구간 키를 구하고, 구해진 구간 키를 이용하여 상기 세션 키를 계산하고, 계산된 세션 키를 이용하여 암호화된 메시지를 복호하는 단계를 구비한다. 컴퓨터로 읽을 수 있는 기록매체는 상기 방법을 저장한다.The decryption method for achieving the technical problem comprises the steps of receiving a message encrypted using the session key; The legitimate user belonging to the section included in the header of the encrypted message obtains the section key of the section to which the section belongs by calculating a one-way function of the section key, and calculates the session key using the obtained section key. Decrypting the encrypted message using the calculated session key. The computer readable recording medium stores the method.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings which illustrate preferred embodiments of the present invention and the contents described in the accompanying drawings.

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, the present invention will be described in detail with reference to the preferred embodiments of the present invention with reference to the accompanying drawings. Like reference numerals in the drawings denote like elements.

도 2는 본 발명의 일실시예에 따른 브로드캐스트 암호화에 의한 데이터 전송 시스템의 네트워크 구조를 개념적으로 나타낸다. 도 2를 참조하면, 본 발명에 따른 네트워크의 구조(200)는 방송 센터의 송신 장치(210), 정당한 사용자(또는 정당한 사용자의 수신기; 230), 및 불법 사용자(불법 사용자의 수신기; 240)를 구비한다. 2 conceptually illustrates a network structure of a data transmission system using broadcast encryption according to an embodiment of the present invention. Referring to FIG. 2, the network structure 200 according to the present invention includes a transmitting device 210 of a broadcasting center, a legitimate user (or a receiver of a legitimate user; 230), and an illegal user (receiver of an illegal user; 240). Equipped.

사용자 또는 수신기는 방송 콘테츠를 복호하기 위한 프로세서들을 그 내부에 가지고 있다. 본 명세서에서 정당한 사용자는 방송 콘텐츠에 대한 정당한 비용을 지불한 사용자를 의미하고, 불법 사용자는 상기 방송 콘텐츠에 대한 정당한 비용을 지불하지 않은 사용자를 의미한다. The user or receiver has processors therein for decoding broadcast content. In the present specification, a legitimate user means a user who pays a fair fee for broadcast content, and an illegal user means a user who does not pay a fair cost for the broadcast content.

송신장치(210)는 키 생성모듈(211)을 구비하는 암호화기(213)와 송신기(215)를 구비한다. 상기 키 생성 모듈(211)의 작동은 도 3을 참조하여 상세히 설명될 것이다. 상기 암호화기(213)는 본 발명의 실시예에 따라 메시지(또는 콘텐츠)를 암호화한다.The transmitter 210 includes an encryptor 213 having a key generation module 211 and a transmitter 215. The operation of the key generation module 211 will be described in detail with reference to FIG. 3. The encryptor 213 encrypts a message (or content) in accordance with an embodiment of the invention.

상기 송신기(215)는 헤더에 표시된 구간에 속하는 적어도 한 명의 정당한 사용자가 암호화된 메시지(좀 더 구체적으로는 콘텐츠)를 복호화하고, 상기 구간에 속하지 않는 적어도 한 명의 불법 사용자가 상기 암호화된 메시지(또는 콘텐츠)를 복호화하지 못하도록 상기 적어도 한 명의 정당환 사용자와 상기 적어도 한 명의 불법의 사용자에게 암호화된 메시지를 전송한다.The transmitter 215 decrypts the encrypted message (more specifically, the content) by at least one legitimate user who belongs to the interval indicated in the header, and the encrypted message (or Send an encrypted message to the at least one fully exchanged user and the at least one illegal user to prevent decryption of the content).

상기 암호화된 메시지는 매체 또는 무선 통신망을 통하여 각 사용자(230과 240)에게 전달된다. 상기 매체는 DVD, CD, 하드 디스크, 플레쉬 메모리 장치 등을 포함하나 이들에 한정되는 것은 아니다. The encrypted message is delivered to each user 230 and 240 via a medium or wireless communication network. Such media include, but are not limited to, DVDs, CDs, hard disks, flash memory devices, and the like.

따라서 정당한 사용자(230)는 본 발명에 따른 키 생성방법을 적용하여 자신이 속한 구간의 구간 키를 계산할 수 있으므로 암호화된 메시지를 복호화할 수 있다. 그러나 불법 사용자(240)는 헤더에 표시된 어떤 구간에도 속하지 않기 때문에 구간 키를 계산할 수 없으므로 암호화된 메시지를 복호화할 수 없다. Accordingly, the legitimate user 230 may calculate the section key of the section to which the legitimate user belongs by applying the key generation method according to the present invention, and thus may decrypt the encrypted message. However, since the illegal user 240 does not belong to any section indicated in the header, the illegal user 240 cannot calculate the section key and thus cannot decrypt the encrypted message.

도 3은 본 발명의 일실시예에 따른 키 생성방법을 나타내는 흐름도이다. 도 4는 본 발명의 일실시예에 따라 다수의 노드들을 포함하는 계층적인 노드 그룹을 나타내는 개념도이다.3 is a flowchart illustrating a key generation method according to an embodiment of the present invention. 4 is a conceptual diagram illustrating a hierarchical node group including a plurality of nodes according to an embodiment of the present invention.

도 3과 도 4를 참조하면, 제1행(또는 '계층'이하고도 한다)에는 다수개의 부모 노드들(N1 내지 NC; C는 자연수)이 할당된다. 그리고 각 부모 노드(N1 내지 NC)에는 레이블(label)이 부여된다. 상기 제1행에 할당된 각 부모 노드(N1 내지 NC)는 다수개의 자식 노드들(N11 내지 N1C, N21 내지 N2C, N31 내지 N3C, ..., NC1내지 NCC)이 할당된다. 도 4에서는 설명의 편의를 의하여 제1행의 부모 노드들의 수와 각 부모 노드의 자식 노드들의 수가 동일하나 본 발명의 사상이 이에 한정되는 것은 아니다.3 and 4, a plurality of parent nodes (N1 to NC; C is a natural number) is allocated to the first row (or 'tier' or less). Each parent node N1 to NC is given a label. Each of the parent nodes N1 to NC allocated to the first row is assigned a plurality of child nodes N11 to N1C, N21 to N2C, N31 to N3C, ..., NC1 to NCC. In FIG. 4, for convenience of description, the number of parent nodes in the first row and the number of child nodes of each parent node are the same, but the inventive concept is not limited thereto.

상기 제1행의 각 자식 노드(N11 내지 N1C, N21 내지 N2C, N31 내지 N3C, ..., NC1내지 NCC)는 제2행의 부모 노드로 된다. 그리고, 제2행을 형성하는 각 부모 노드(N11 내지 N1C, N21 내지 N2C, N31 내지 N3C, ..., NC1내지 NCC)에는 다수개의 자식 노드들(N111 내지 N11C, N121 내지 N12C, N1C1 내지 N1CC, NCC1 내지 NCCC)이 할당된다.Each child node (N11 to N1C, N21 to N2C, N31 to N3C, ..., NC1 to NCC) in the first row becomes the parent node of the second row. Each parent node N11 to N1C, N21 to N2C, N31 to N3C, ..., NC1 to NCC forming a second row has a plurality of child nodes N111 to N11C, N121 to N12C, and N1C1 to N1CC. , NCC1 to NCCC) are allocated.

상술한 바와 같이 제i(i≥1)행의 각 자식 노드는 제(i+1)행의 부모 노드로 할당된다. 즉, 제i(i≥1)행은 다수개의 부모 노드들이 할당되고, 할당된 부모 노드들 각각에 레이블이 부여된다.As described above, each child node of the i th (i ≧ 1) row is assigned to a parent node of the (i + 1) th row. That is, in the i th row (i ≧ 1), a plurality of parent nodes are allocated and a label is assigned to each of the assigned parent nodes.

그리고 상기 제i(i≥1)행의 각 부모 노드에는 다수개의 자식 노드들이 할당된다. 제i(i≥1)행의 각 자식 노드는 제(i+1)행의 부모 노드가 되고, 제(i+1)행의 각 부모 노드에는 다시 다수개의 자식 노드들이 할당된다. 이와 같은 방법으로 다수개의 노드들을 포함하는 계층적인 노드 그룹(hierarchical node group;400)이 생성된다(310).A plurality of child nodes is allocated to each parent node of the i th (i ≧ 1) row. Each child node of the i th (i ≧ 1) row becomes a parent node of the (i + 1) th row, and a plurality of child nodes are allocated to each parent node of the (i + 1) th row. In this manner, a hierarchical node group 400 including a plurality of nodes is generated 310.

제1행의 각 부모 노드(N1 내지 NC), 제2행의 각 부모 노드(=제1행의 각 자식 노드; N11 내지 N1C, N21 내지 N2C, N31 내지 N3C, ..., NC1내지 NCC)와 제2행의 각 자식 노드(N111 내지 N11C, N121 내지 N12C, N1C1 내지 N1CC, NCC1 내지 NCCC)에는 적어도 하나의 노드 키가 할당된다(320). 여기서 각 노드(NC, NCC, NCCC)에 할당된 노드 키는 K(NC), K(NCC), 및 K(NCCC)로 표시한다.Each parent node N1 to NC in the first row, each parent node in the second row (= each child node in the first row; N11 to N1C, N21 to N2C, N31 to N3C, ..., NC1 to NCC) At least one node key is allocated to each of the child nodes N111 to N11C, N121 to N12C, N1C1 to N1CC, and NCC1 to NCCC in the second row. The node keys assigned to the nodes NC, NCC, and NCCC are represented by K (NC), K (NCC), and K (NCCC).

예컨대, 제2행의 각 자식 노드(N111 내지 N11C, N121 내지 N12C, N1C1 내지 N1CC, NCC1 내지 NCCC) 즉, 제3행에는 하나의 노드 키를 부여할 수 있고, 제1행을 구성하는 각 부모 노드(N1 내지 NC)와 상기 제2행을 구성하는 각 부모 노드(N11 내지 N1C, N21 내지 N2C, N31 내지 N3C, ..., NC1내지 NCC)에는 두 개씩의 노드 키들을 부여할 수 있다.For example, one node key can be assigned to each child node (N111 to N11C, N121 to N12C, N1C1 to N1CC, NCC1 to NCCC) in the second row, that is, the third row, and each parent constituting the first row. Two node keys may be assigned to the nodes N1 to NC and each of the parent nodes N11 to N1C, N21 to N2C, N31 to N3C, ..., NC1 to NCC constituting the second row.

도 4에는 설명의 편의를 위하여 두 개의 행만을 도시하였으므로, 제2행의 자식 노드들이 최하위 행의 자식 노드들로 된다. 경우에 따라 제2행의 각 자식 노드를 제3행(최하위 행)을 형성하는 노드들이라 한다.Since only two rows are shown in FIG. 4 for convenience of description, the child nodes of the second row are the child nodes of the lowest row. In some cases, each child node of the second row is referred to as nodes forming a third row (lowest row).

제1행, 제2행, 및 상기 제2행의 각 자식 노드로 구성된 행(또는, 제3행)에 적어도 하나의 일방향 함수(예컨대, 해쉬 함수(h)로 표시한다)를 할당한다(330). At least one one-way function (e.g., denoted by a hash function h) is allocated to a row (or a third row) including the first row, the second row, and each child node of the second row (330). ).

예컨대, 제1행에는 제1일방향 함수(또는 오른쪽 일방향 함수; Rh1)와 제2일방향 함수(또는 왼쪽 일방향 함수(Lh1)가 할당되고, 제2행에는 제3일방향 함수(또는 오른쪽 일방향 함수; Rh2)와 제4일방향 함수(또는 왼쪽 일방향 함수(Lh2)가 할당되고, 상기 제2행의 각 자식 노드로 구성된 행(또는, 제3행)에는 제5일방향 함수(hd)가 할당될 수 있다.For example, a first one-way function (or right one-way function Rh1) and a second one-way function (or left one-way function Lh1) are assigned to the first row, and a third one-way function (or right one-way function; Rh2 is assigned to the second row. ) And a fourth one-way function (or left one-way function Lh2) may be allocated, and a fifth one-way function hd may be assigned to a row (or a third row) including each child node of the second row.

계층적인 노드 그룹(400)을 형성하는 모든 노드들(N1 내지 NC, N11 내지 N1C, N21 내지 N2C, N31 내지 N3C, ..., NC1내지 NCC, N11 내지 N1C, N21 내지 N2C, N31 내지 N3C, ..., NC1내지 NCC)중에서 선택된 두 개의 노드들로 이루어진 구간을 설정한다(340).All nodes forming the hierarchical node group 400 (N1 to NC, N11 to N1C, N21 to N2C, N31 to N3C, ..., NC1 to NCC, N11 to N1C, N21 to N2C, N31 to N3C, ..., and sets a section consisting of two nodes selected from NC1 to NCC (340).

그리고, 상기 각 행에 할당된 일방향 함수(Rh1, Lh1, Rh2, Lh2, 및 hd)를 이용(연산)하여 상기 구간에 해당하는 구간 키를 생성하고, 상기 생성된 구간 키를 상기 선택된 두 개의 노드들 중에서 어느 하나의 노드에 할당한다(350).Then, by using (operating) one-way functions Rh1, Lh1, Rh2, Lh2, and hd assigned to each row, an interval key corresponding to the interval is generated, and the generated interval key is used as the selected two nodes. The allocation to one of the nodes (350).

도 5 내지 도 7을 참조하여 설정된 구간의 구간 키를 생성하는 방법을 설명하면 다음과 같다. 도 5는 동일한 행에 존재하는 두 개의 노드들로 제1구간이 설정되는 경우를 나타낸다. A method of generating a section key of a set section will now be described with reference to FIGS. 5 to 7. 5 illustrates a case in which a first section is configured with two nodes existing in the same row.

우선, 제1구간은 제2행의 노드들(N21과 NC1)에 의하여 형성된다. 만일, 선택된 노드들(N21과 NC1)의 길이가 m이고, 노드(N21)에 할당된 노드 키가 K(N21)이고, 제2행에 할당된 일방향 함수가 Rh2일 때, 상기 제2행의 노드들(N21과 NC1)로 형성 된 제1구간의 구간 키(RIK)는 수학식 1을 통하여 구할 수 있다.First, the first section is formed by the nodes N21 and NC1 in the second row. If the lengths of the selected nodes N21 and NC1 are m, the node key assigned to the node N21 is K (N21), and the one-way function assigned to the second row is Rh2, The interval key RIK of the first section formed of the nodes N21 and NC1 may be obtained through Equation 1.

Figure 112005018473811-pat00001
Figure 112005018473811-pat00001

그리고 수학식1을 통하여 생성된 구간 키(RIK)는 노드(NC1)에 할당된다. 이때 구간은 동일 행(제2행) 사이에서 형성되므로, 오른쪽으로만 일방향 함수를 적용하여 구간 키를 구하는 것이 바람직하다.The interval key RIK generated through Equation 1 is assigned to the node NC1. At this time, since the section is formed between the same row (second row), it is preferable to obtain the section key by applying a one-way function to the right side only.

또한, 노드(NC1)에는 노드(N11)와 노드(NC1)로 이루어진 구간의 구간 키, 노드(N12)와 노드(NC1)로 이루어진 구간의 구간 키, 노드(N1C)와 노드(NC1)로 이루어진 구간의 구간 키, 등 노드(NC1)와 계층적인 노드 그룹(500)을 형성하는 모든 노드들 중에서 노드(NC1)를 제외한 하나의 노드로 이루어진 구간의 구간 키 중에서 적어도 하나가 할당된다.In addition, the node NC1 includes a section key of a section consisting of a node N11 and a node NC1, a section key of a section consisting of a node N12 and a node NC1, and a node N1C and a node NC1. At least one of an interval key of an interval including one node except for the node NC1 among all nodes forming the hierarchical node NC1 and the hierarchical node group 500 is assigned.

도 6은 서로 다른 행에 존재하는 두 개의 노드들(N21과 NC22)로 제2구간이 설정되는 경우를 나타낸다. 도 6을 참조하면, 상위 노드(N21)는 제2행에 존재하고 하위 노드(NC22)는 상기 상위 노드(N21)의 오른쪽이면서 상기 제2행의 자식 노드들이 형성하는 행(즉, 제3행)에 존재한다.FIG. 6 illustrates a case in which a second section is set to two nodes N21 and NC22 existing in different rows. Referring to FIG. 6, the upper node N21 exists in the second row, and the lower node NC22 is the right side of the upper node N21 and formed by the child nodes of the second row (that is, the third row). Present in)

만일, 두 개의 노드들(N21과 NC1)사이의 길이가 n이고, 노드(NC21)와 노드(NC22)사이의 길이가 1이고, 노드(N21)에 할당된 노드 키가 K(N21)이고, 제2행에 할당된 일방향 함수가 Rh2이고, 제3행에 할당된 일방향 함수가 hd일 때, 상기 노드들(N21과 NC22)로 형성된 제2구간의 구간 키(RIK)는 수학식 2를 통하여 구할 수 있 다. If the length between two nodes N21 and NC1 is n, the length between node NC21 and node NC22 is 1, the node key assigned to node N21 is K (N21), When the one-way function assigned to the second row is Rh2 and the one-way function assigned to the third row is hd, the interval key RIK of the second section formed by the nodes N21 and NC22 is represented by Equation 2. You can get it.

Figure 112005018473811-pat00002
Figure 112005018473811-pat00002

그리고 수학식2를 통하여 생성된 구간 키(RIK)는 노드(NC22)에 할당되는 것이 바람직하다. 또한, 노드(NC22)에는 노드(N22)와 노드(NC22)로 이루어진 구간의 구간 키, 노드(N2C)와 노드(NC22)로 이루어진 구간의 구간 키, 노드(N32)와 노드(NC22)로 이루어진 구간의 구간 키, 등 노드(NC22)와 계층적인 노드 그룹(600)을 형성하는 모든 노드들 중에서 노드(NC22)를 제외한 어느 하나의 노드로 이루어진 구간의 구간 키 중에서 적어도 하나가 할당된다.The interval key RIK generated through Equation 2 is preferably assigned to the node NC22. In addition, the node NC22 includes a section key of a section consisting of a node N22 and a node NC22, a section key of a section consisting of a node N2C and a node NC22, and a node N32 and a node NC22. At least one of a section key of a section, among the nodes constituting the hierarchical node NC22 and the hierarchical node group 600, is assigned to at least one section key of a section except for the node NC22.

또한, 도 5를 참조하여 설명한 바와 같이 노드(NC22)에는 노드(N111)와 노드(NC22)로 이루어진 구간의 구간 키, 노드(N121)와 노드(NC22)로 이루어진 구간의 구간 키, 노드(N1CC)와 노드(NC22)로 이루어진 구간의 구간 키, 등 노드(NC22)와 계층적인 노드 그룹(600)을 형성하는 모든 노드들 중에서 노드(NC22)를 제외한 어느 하나의 노드로 이루어진 구간의 구간 키 중에서 적어도 하나가 할당된다.In addition, as described with reference to FIG. 5, the node NC22 has a section key of a section consisting of the node N111 and the node NC22, a section key of a section consisting of the node N121 and the node NC22, and a node N1CC. Section key of the section consisting of the node NC22, among the nodes forming the hierarchical node group 600 with the back node NC22, and the section key of the section consisting of any one node except the node NC22. At least one is assigned.

수학식 2를 참조하면, 구간 키를 구하기 위해 2행에 할당된 일방향 함수(Rh2)는 노드(N21)로부터 노드(NC22)의 부모 노드(NC2)의 바로 전에 존재하는 노드(NC1)까지만 적용한다. 만일, 2행에 할당된 일방향 함수를 노드(NC22)의 부모 노드(NC2)까지 적용하면, 노드(NC2)의 자식 노드들(NC21 내지 NC2C)중에서 적어도 하나의 불법 사용자(예컨대, NC2C)는 자신의 부모 노드(NC2)에 할당된 키를 가지고 있 으므로 자신의 부모 노드(NC2)에 할당된 키를 사용하여 암호화된 메시지를 복호화할 수 있다. 따라서 이를 방지하기 위하여 자신이 속하는 부모 노드 전에 존재하는 노드까지만 대응되는 일방향 함수를 적용한다.Referring to Equation 2, the one-way function Rh2 assigned to the second row to obtain the interval key applies only from the node N21 to the node NC1 that exists immediately before the parent node NC2 of the node NC22. . If the one-way function assigned to the second row is applied to the parent node NC2 of the node NC22, at least one illegal user (eg, NC2C) among the child nodes NC21 to NC2C of the node NC2 has its own. Since it has a key assigned to its parent node NC2, it is possible to decrypt an encrypted message using the key assigned to its parent node NC2. Therefore, in order to prevent this, the one-way function corresponding to only the node existing before the parent node to which it belongs is applied.

계속하여, 서로 다른 행에 존재하는 두 개의 노드들(N1과 N321)로 제2구간이 설정되는 경우를 나타낸다. Subsequently, the second section is set to two nodes N1 and N321 existing in different rows.

두 개의 노드들(N1과 N2)의 길이가 1이고, 두 개의 노드들(N2C와 N31)사이의 길이가 1이고, 두 개의 노드들(N31C와 N321)의 길이가 1이고, 노드(N1)에 할당된 노드 키가 K(N1)이고, 제1행에 할당된 일방향 함수가 Rh1이고, 제2행에 할당된 일방향 함수가 Rh2이고, 제3행에 할당된 일방향 함수가 hd일 때, 상기 노드들(N1과 N321)로 형성된 제2구간의 구간 키(RIK)는 수학식 3을 통하여 구할 수 있다. The length of the two nodes N1 and N2 is 1, the length between the two nodes N2C and N31 is 1, the length of the two nodes N31C and N321 is 1, and the node N1 When the node key assigned to is K (N1), the one-way function assigned to the first row is Rh1, the one-way function assigned to the second row is Rh2, and the one-way function assigned to the third row is hd. The interval key RIK of the second section formed of the nodes N1 and N321 may be obtained through Equation 3 below.

Figure 112005018473811-pat00003
Figure 112005018473811-pat00003

그리고 수학식3을 통하여 생성된 구간 키(RIK)는 노드(N321)에 할당되는 것이 바람직하다. The interval key RIK generated through Equation 3 is preferably assigned to the node N321.

수학식 3를 참조하면, 노드(N321)는 자신의 직계 부모 노드들(M32와 N3)에 할당된 노드 키를 가지고 있다. 따라서 노드(N321)에 할당된 사용자가 불법 사용자인 경우 상기 불법 사용자는 암호화된 메시지를 복호화하지 못하게 구간 키를 노드(N321)에 부여해야 한다. Referring to Equation 3, the node N321 has a node key assigned to its immediate parent nodes M32 and N3. Therefore, if the user assigned to the node N321 is an illegal user, the illegal user should give the node N321 an interval key to prevent decryption of the encrypted message.

도 7은 서로 다른 행에 존재하는 두 개의 노드들(N31과 N121)로 제3구간이 설정되는 경우를 나타낸다. 도 7을 참조하면, 상위 노드(N31)는 제2행에 존재하고 하위 노드(N121)는 상위 노드(N31)의 왼쪽이면서 제3행에 존재한다. FIG. 7 illustrates a case in which a third section is set with two nodes N31 and N121 existing in different rows. Referring to FIG. 7, the upper node N31 is present in the second row, and the lower node N121 is left of the upper node N31 and is present in the third row.

만일, 두 개의 노드들(N31과 N1C)의 길이가 t이고, 노드(N12C)와 노드(N121)의 길이가 c이고, 노드(N31)에 할당된 노드 키가 K(N31)이고, 제2행에 할당된 일방향 함수가 Lh2이고, 제3행에 할당된 일방향 함수가 hd일 때, 상기 노드들(N31과 N121)로 형성된 제3구간의 구간 키(LIK)는 수학식 4를 통하여 구할 수 있다.If the lengths of the two nodes N31 and N1C are t, the lengths of the nodes N12C and N121 are c, the node key assigned to the node N31 is K (N31), and the second When the one-way function assigned to the row is Lh2 and the one-way function assigned to the third row is hd, the interval key LIK of the third section formed by the nodes N31 and N121 can be obtained from Equation 4. have.

Figure 112005018473811-pat00004
Figure 112005018473811-pat00004

그리고 수학식4를 통하여 생성된 구간 키(LIK)는 노드(N121)에 할당되는 것이 바람직하다. 또한, 노드(N121)에는 노드(N2C)와 노드(N121)로 이루어진 구간의 구간 키, 노드(N22)와 노드(N121)로 이루어진 구간의 구간 키, 노드(N1C)와 노드(N121)로 이루어진 구간의 구간 키, 등 노드(N121)와 계층적인 노드 그룹(700)을 형성하는 모든 노드들 중에서 노드(N121)를 제외한 어느 하나의 노드로 이루어진 구간의 구간 키 중에서 적어도 하나가 할당된다.The interval key LIK generated through Equation 4 is preferably assigned to the node N121. In addition, the node N121 includes a section key of a section consisting of a node N2C and a node N121, a section key of a section consisting of a node N22 and a node N121, and a node N1C and a node N121. At least one of a section key of a section, among the nodes forming the hierarchical node group N121 and the hierarchical node group 700, is assigned at least one of a section key of a section except for the node N121.

하위 행의 노드가 상위 행의 노드의 오른쪽에 있는 경우 오른쪽으로 향하는 일방향 함수(Rhi, i는 자연수)를 적용하고, 하위 행의 노드가 상위 행의 노드의 왼쪽에 있는 경우 왼쪽으로 향하는 일방향 함수(Lhi, i는 자연수)를 적용한다.Apply a one-way function to the right (Rhi, i is a natural number) if the node in the child row is to the right of the node in the parent row, or a one-way function to the left if the node in the child row is to the left of the node in the parent row ( Lhi, i is a natural number).

각 행을 구성하는 각 부모 노드, 또는 각 행의 자식 노드에는 각 행에 할당된 일방향 함수에 의해 생성된 적어도 하나의 구간 키, 서로 다른 행에 각각 할당 된 함수들(예컨대, Rhi와 hd)을 적용하여 생성된 적어도 하나의 구간 키, 및 서로 다른 행에 각각 할당된 함수들(Lhi와 hd)을 적용하여 생성된 적어도 하나의 구간 키 중에서 적어도 하나가 할당된다.Each parent node or each child node of each row includes at least one interval key generated by a one-way function assigned to each row and functions assigned to different rows (eg, Rhi and hd). At least one interval key generated by applying and at least one interval key generated by applying functions Lhi and hd respectively assigned to different rows are assigned.

따라서 계층적인 그룹 노드(400)를 형성하는 각 노드(N1 내지 NC, N11 내지 N1C, N21 내지 N2C, N31 내지 N3C, NC1 내지 NCC, N111 내지 N11C, N121 내지 N12C, N1C1 내지 N1CC, NCC1 내지 NCCC)에는 적어도 하나의 노드 키와 적어도 하나의 구간 키 중에서 적어도 하나가 할당된다.Therefore, each node forming the hierarchical group node 400 (N1 to NC, N11 to N1C, N21 to N2C, N31 to N3C, NC1 to NCC, N111 to N11C, N121 to N12C, N1C1 to N1CC, NCC1 to NCCC) At least one of at least one node key and at least one interval key is assigned.

제2행의 자식 노드들(N111 내지 N11C, N121 내지 N12C, N1C1 내지 N1CC, NCC1 내지 NCCC)각각에 대응되는 사용자를 할당한다(360). 즉, D(D는 자연수)개의 행으로 구성된 계층적인 노드 그룹 중에서 마지막 행을 구성하는 노드들 각각에 사용자들을 할당한다.Users corresponding to the child nodes N111 to N11C, N121 to N12C, N1C1 to N1CC, and NCC1 to NCCC in the second row are allocated 360. That is, users are assigned to each of the nodes constituting the last row among a hierarchical node group composed of D (D is a natural number) rows.

도 4에 도시된 최하위 행(예컨대, 제3행)을 형성하는 자식 노드들(N111 내지 N11C, N121 내지 N12C, N1C1 내지 N1CC, NCC1 내지 NCCC) 각각에 상기 최하위 행을 형성하는 노드들 각각의 직계 부모 노드에 할당된 적어도 하나의 상기 노드 키 및/또는 상기 직계 부모 노드에 할당된 적어도 하나의 상기 구간 키를 할당한다.A direct line of each of the nodes forming the lowest row in each of the child nodes N111 to N11C, N121 to N12C, N1C1 to N1CC, and NCC1 to NCCC shown in FIG. 4. Assign at least one said node key assigned to a parent node and / or at least one said interval key assigned to said immediate parent node.

노드(N11)는 각 노드(N111 내지 N11C)의 부모 노드이고, 노드(N1)는 각 노드(N11 내지 N1C)의 노드이다. 즉, 노드(N111)에는 자신의 직계 부모 노드(N11과 N1)에 할당된 노드 키(K(N11), K(N1))가 할당되고, 노드(N121)에는 자신의 직계 부모 노드(N12와 N1)에 할당된 노드 키(K(N12), K(N1))가 할당되고, 노드(NCCC)에는 자신의 직계 부모 노드(NCC과 NC)에 할당된 노드 키(K(NCC), K(NC))가 할당된다.Node N11 is a parent node of each node N111-N11C, and node N1 is a node of each node N11-N1C. That is, node N111 is assigned node keys K (N11, K (N1)) assigned to its direct parent nodes N11 and N1, and node N121 is assigned to its direct parent node N12. Node keys K (N12) and K (N1) assigned to N1) are assigned, and node keys K (NCC) and K (assigned to their immediate parent nodes NCC and NC are assigned to node NCCC. NC)) is assigned.

도 4 내지 도 7을 참조하면, 일방향 함수는 D(D는 자연수)개의 행 중 각 i(i는 자연수)번째 행에는 두 개의 일방향 함수들(Rhi과 Lhi)를 할당한다. 4 to 7, the one-way function allocates two one-way functions Rhi and Lhi to each i (i is a natural number) row among D (D is a natural number) rows.

도 4 내지 도 7을 참조하여 구간의 구간 키를 계단식 일방향 함수를 이용하여 계산하는 방법을 설명한다.A method of calculating a section key of a section by using a stepwise one-way function will be described with reference to FIGS. 4 to 7.

Figure 112005018473811-pat00005
이고
Figure 112005018473811-pat00006
이고
Figure 112005018473811-pat00007
, 즉 B가 A의 우측에 있다(
Figure 112005018473811-pat00008
)고 하자.
Figure 112005018473811-pat00005
ego
Figure 112005018473811-pat00006
ego
Figure 112005018473811-pat00007
, B is on the right side of A (
Figure 112005018473811-pat00008
Let's say

1) k=1일 경우, 우측 일방향 함수(right oneway function)을 이용한다. 즉,

Figure 112005018473811-pat00009
Figure 112005018473811-pat00010
에 대하여
Figure 112005018473811-pat00011
으로 정의한다.1) When k = 1, the right oneway function is used. In other words,
Figure 112005018473811-pat00009
Is
Figure 112005018473811-pat00010
about
Figure 112005018473811-pat00011
It is defined as

2) k<1일 경우, 우측 계단식 함수(right cascade function)를 이용한다. 즉,

Figure 112005018473811-pat00012
Figure 112005018473811-pat00013
,
Figure 112005018473811-pat00014
에 대하여
Figure 112005018473811-pat00015
으로 정의한다.2) If k <1, the right cascade function is used. In other words,
Figure 112005018473811-pat00012
Is
Figure 112005018473811-pat00013
,
Figure 112005018473811-pat00014
about
Figure 112005018473811-pat00015
It is defined as

3) k>1일 경우, 좌측 계단식 함수(left cascade function}를 이용한다. 즉,

Figure 112005018473811-pat00016
Figure 112005018473811-pat00017
,
Figure 112005018473811-pat00018
에 대하여
Figure 112005018473811-pat00019
으로 정의한다.3) If k> 1, the left cascade function is used.
Figure 112005018473811-pat00016
Is
Figure 112005018473811-pat00017
,
Figure 112005018473811-pat00018
about
Figure 112005018473811-pat00019
It is defined as

상기 우측 일방향 함수는 본 명세서의 Rhi와 같고, 상기 좌측 일방향 함수는 본 명세서의 Lhi와 같다.The right one-way function is equal to Rhi in the present specification, and the left one-way function is equal to Lhi in the present specification.

도 8은 본 발명의 일실시예에 따른 브로드캐스트 암호화 방법을 나타내는 흐름도인다. 도 9는 본 발명의 일실시예에 따른 오른쪽 구간 키와 왼쪽 구간 키를 계산하는 방법을 나타내는 흐름도이다. 8 is a flowchart illustrating a broadcast encryption method according to an embodiment of the present invention. 9 is a flowchart illustrating a method of calculating a right section key and a left section key according to an embodiment of the present invention.

도 8과 도 9를 참조하면, 방송 센터(브로드캐스트 송신장치, 또는 암호화 장치)는 계층적인 노드 그룹(900)에서 직선상의 각 노드(N111 내지 N11C, N121 내지 N12C, N1C1 내지 N1CC, NCC1 내지 NCCC)로 사상(mapping)된 사용자들 중에서 적어도 한 명의 불법 사용자(N211과 NCCC)를 X로 표시하고, 정당한 사용자들을 포함하는 적어도 하나의 구간([A, B])을 얻기 위하여 상기 직선상에 X로 표시된 사용자들을 제거한다(810). 8 and 9, the broadcast center (broadcast transmitter or encryption apparatus) is a node in the hierarchical node group 900, each node in a straight line (N111 to N11C, N121 to N12C, N1C1 to N1CC, NCC1 to NCCC) At least one illegal user (N211 and NCCC) among the users mapped with) is represented by X, and X is obtained on the straight line to obtain at least one section [A, B] including legitimate users. Remove the user indicated by (810).

따라서 방송 센터는 직선상에서 정당한 사용자들을 포함하는 다수개의 구간들을 얻는다(820). 도 9에 도시된 바와 같이 방송 센터는 직선상에서 불법 사용자들(N211과 NCCC)을 제거하고 구간([A, B]=[N212, NCC2])을 얻는다.Accordingly, the broadcast center obtains a plurality of sections including legitimate users in a straight line (820). As shown in Fig. 9, the broadcasting center removes illegal users N211 and NCCC on a straight line and obtains a section [A, B] = [N212, NCC2].

그리고, 방송 센터는 구간([A, B])의 길이와 노드의 기준 길이(Cd; 예컨대, 사용자가 할당된 행의 길이)의 크기를 비교하고(830), 구간([A, B])의 길이가 노드의 기준 길이(Cd)보다 작은 경우, 상기 구간([A, B])을 기본 구간이라 하고, 수학식 5를 이용하여 기본 구간의 구간 키(BIK)를 구한다(831). Then, the broadcasting center compares the length of the interval [A, B] with the size of the node's reference length Cd (eg, the length of the row to which the user is assigned) (830), and the interval ([A, B]). When the length of P is smaller than the reference length Cd of the node, the interval [A, B] is called a basic interval, and the interval key BIK of the basic interval is obtained using Equation 5 (831).

Figure 112005018473811-pat00020
Figure 112005018473811-pat00020

여기서 hd는 최하위 행에 할당된 일방향 함수를 나타내고, KA는 노드(A)에 할당된 노드 키를 나타낸다.Where hd represents a one-way function assigned to the lowest row and KA represents a node key assigned to node A.

구간[A, B]의 구간 키는 노드(A)의 노드 키(KA)와 노드(B)의 노드 키(KB)에 대하여 상술한 계단식 일방향 함수를 이용하여 노드(A)와 노드(B)가 같은 행의 노드이거나 노드(A)가 노드(B)보다 상위 행에 존재하는 경우, 구간[A, B]의 노드 키는 (

Figure 112005018473811-pat00021
)로 계산한다. 그러나 노드(B')가 노드(A')보다 상위 행에 존재하는 경우 구간[A, B]의 구간 키는
Figure 112005018473811-pat00022
으로 계산한다.The interval key of the interval [A, B] is the node A and the node (A) using the stepwise one-way function described above with respect to the node key K A of the node A and the node key K B of the node B. If B) is a node in the same row or node A exists in a row higher than node B, the node key of the interval [A, B] is (
Figure 112005018473811-pat00021
Calculate However, if node B 'exists in a row higher than node A', the interval key of the interval [A, B] is
Figure 112005018473811-pat00022
Calculate

구간([A, B])의 길이가 노드의 기준 길이(Cd)보다 큰 경우, 방송 센터는 구간([A, B])에 포함되는 최상의 행의 노드(N3=C)를 찾는다(840). If the length of the interval [A, B] is greater than the reference length Cd of the node, the broadcast center finds the node (N3 = C) of the best row included in the interval [A, B] (840). .

상기 최상위 행의 노드(C)와 상기 구간([A, B])의 시작 노드(A)로 형성되는 왼쪽 구간(LI=[A, C])과 상기 최상위 행의 노드(C)와 상기 구간([A, B])의 끝 노드(B)로 형성되는 오른쪽 구간(RI=[C, B])을 구한다(850).The left section LI = [A, C] formed by the node C of the top row and the start node A of the section [A, B], the node C of the top row and the section The right section RI = [C, B] formed by the end node B of ([A, B]) is obtained (850).

각 행에 할당된 제1일방향 함수(Rh1, Rh2)를 이용하여 상기 오른쪽 구간([C, B])에 상응하는 오른쪽 구간 키(Right Interval Key; RIK)를 계산하고 상기 각 행에 할당된 제2일방향 함수(Lh1, Lh2)를 이용하여 상기 왼쪽 구간([A, C])에 상응하는 왼쪽 구간 키(left interval key; LIK)를 계산한다(860).Using the first one-way functions Rh1 and Rh2 assigned to each row, a right interval key RIK corresponding to the right interval [C, B] is calculated and the first assigned to each row is calculated. A left interval key LIK corresponding to the left interval [A, C] is calculated using the two-way functions Lh1 and Lh2 (860).

도 9를 참조하면, 노드(N3C)와 노드(NC2)의 길이가 t이고, 노드(NC2C)와 노드(NCC2)의 길이가 s인 경우, 오른쪽 구간([C, B])에 상응하는 오른쪽 구간 키(RIK)는

Figure 112005018473811-pat00023
이다. 또한, 노드(N31)와 노드(N22)의 길이가 n이고, 노드(N221)와 노드(N212)의 길이가 m인 경우, 왼쪽 구간([A, C])에 상응하는 왼쪽 구간 키(LIK)는
Figure 112005018473811-pat00024
이다. Referring to FIG. 9, when the length of the node N3C and the node NC2 is t and the length of the node NC2C and the node NCC2 is s, the right side corresponding to the right section [C, B] Segment key (RIK)
Figure 112005018473811-pat00023
to be. In addition, when the lengths of the nodes N31 and N22 are n and the lengths of the nodes N221 and N212 are m, the left interval key LIK corresponding to the left interval [A, C] is obtained. )
Figure 112005018473811-pat00024
to be.

그리고, 방송 센터는 세션 키(session key; SK)를 생성한다(870).In operation 870, the broadcasting center generates a session key SK.

방송 센터는 상기 세션 키(SK)를 상기 왼쪽 구간 키(LIK)와 상기 오른쪽 구간 키(RIK) 각각을 이용하여 암호화(

Figure 112005018473811-pat00025
)한다(880). The broadcasting center encrypts the session key SK using the left interval key LIK and the right interval key RIK, respectively.
Figure 112005018473811-pat00025
(880).

상기 방송 센터는 세션 키(SK)를 이용하여 메시지를 암호화하고(885), 상기 구간에 대한 정보, 암호화된 각 세션 키에 대한 정보, 및 상기 세션 키를 이용하여 암호화된 콘텐츠를 포함하는 암호화된 메시지를 전송한다(890).The broadcasting center encrypts a message using a session key (SK) (885), and encrypts a message including information on the section, information on each encrypted session key, and content encrypted using the session key. The message is sent (890).

즉, 방송센터는 수학식 6으로 표시되는 암호화된 메시지를 전송한다.That is, the broadcasting center transmits an encrypted message represented by Equation 6.

Figure 112005018473811-pat00026
Figure 112005018473811-pat00026

도 10은 본 발명의 일실시예에 따른 복호화 방법을 나타내는 흐름도인다. 도 11은 본 발명의 일실시예에 따른 수신기의 블락도를 나타낸다. 도 12는 본 발명의 일실시예에 따라 자신이 속하는 구간을 계산하고 상기 구간의 구간 키를 계산하는 방법을 개념적으로 나타낸다.10 is a flowchart illustrating a decoding method according to an embodiment of the present invention. 11 is a block diagram of a receiver according to an embodiment of the present invention. 12 conceptually illustrates a method of calculating a section to which it belongs and calculating a section key of the section according to an embodiment of the present invention.

수신기(230)는 키 저장 수단(231)과 프로세서(233)를 구비한다. 키 저장 수단(231)은 도 3 내지 도 7을 참조하여 설명한 키 생성방법에 따라 할당된 적어도 하나의 노드 키와 적어도 하나의 구간 키를 저장한다.The receiver 230 has a key storage means 231 and a processor 233. The key storage means 231 stores at least one node key and at least one interval key allocated according to the key generation method described with reference to FIGS. 3 to 7.

프로세서(233)는 암호화된 메시지를 수신하고(1010), 수신된 메시지의 헤더에 포함된 구간정보에 기초하여 사용자(또는 수신기) 자신이 속하는 구간(예컨대, 기본 구간과 오른쪽 구간과 왼쪽 구간 중에서 어느 하나의 구간)을 구하고(1020), 상기 키 저장 수단(231)에 저장된 사용자 키(또는 구간 키)를 이용하여 자신이 속하는 구간의 구간 키를 계산하고(1030), 계산된 구간 키를 이용하여 세션 키를 복호화하고(1040), 상기 세션 키를 이용하여 컨텐츠를 복호화한다(1050).The processor 233 receives the encrypted message (1010), and based on the section information included in the header of the received message, the user (or receiver) section to which it belongs (for example, the basic section, the right section and the left section One section), using the user key (or section key) stored in the key storage means 231, calculating the section key of the section to which the user belongs (1030), and using the calculated section key. The session key is decrypted (1040) and the content is decrypted using the session key (1050).

상기 프로세서(233)는 세션 키를 이용하여 암호화된 메시지를 수신하고, 상기 암호화된 메시지의 헤더에 표시된 구간에 속하는 정당한 사용자의 프로세서는 자신이 속하는 상기 구간의 구간 키를 이용하여 상기 세션 키를 계산하고 계산된 세션 키를 이용하여 암호화된 메시지를 복호화한다.The processor 233 receives the message encrypted using the session key, and the processor of a legitimate user belonging to the section indicated in the header of the encrypted message calculates the session key using the section key of the section to which the processor belongs. And decrypt the encrypted message using the calculated session key.

도 12는 사용자(수신기, 또는 프로세서)가 자신이 속하는 구간을 구하는 개념을 나타낸다.12 illustrates a concept in which a user (receiver or processor) obtains a section to which the user belongs.

사용자(N312=UK)는 자신이 속하는 구간([A, B]=[N211, N32C])을 구하고, 상기 구간([A, B])에 포함된 최상위 행의 노드(N2=C)로부터 상기 사용자(UK)의 가장 높은 직계 부모 노드(N31)까지 대응되는 일방향 함수(Rh2)를 적용하여 구해진 구간 키(Rh2(K(N2))를 가지고 있다. The user N312 = UK obtains the section ([A, B] = [N211, N32C]) to which he belongs, and from the node (N2 = C) of the highest row included in the section ([A, B]), It has a segment key Rh 2 (K (N2)) obtained by applying a one-way function Rh2 corresponding to the highest immediate parent node N31 of the user UK.

따라서 노드(N312)에 할당된 사용자(UK)는 자신이 가진 구간 키(

Figure 112005018473811-pat00027
)을 노드(N32C)까지 m번 일방향 함수(hd)로 연산하여 암호화된 메시지를 복호하는데 필요한 구간 키(
Figure 112005018473811-pat00028
)을 구한다. 그리고 계산된 구간 키(
Figure 112005018473811-pat00029
)를 이용하여 세션 키(SK)를 복호하고(1040), 복호된 세션 키(SK)를 이용하여 암호화된 컨텐츠를 복호한다(1050).Therefore, the user UK assigned to the node N312 has its own interval key (
Figure 112005018473811-pat00027
) Is a one-way function (hd) m to node N32C to compute the interval key (
Figure 112005018473811-pat00028
). And the calculated interval key (
Figure 112005018473811-pat00029
Decrypt the session key (SK) using the (1040), and decrypts the encrypted content using the decrypted session key (SK) (1050).

예컨대, 노드(A)가 최상위 행의 노드인 경우 구간[A, B]의 구간 키(KA, B)를 가진 사용자(B)는 구간[A, C]의 구간 키(KA, C)로 암호화된 세션 키를 복호화하기 위해 구간 키(KA, B)로부터 구간[A, C]의 구간 키(KA, C)를 수학식7을 통하여 계산한다.For example, when node A is a node of the top row, the user B having the interval keys K A and B of the sections A and B is the interval keys K A and C of the sections A and C. In order to decrypt the encrypted session key, the interval key (K A, C ) of the interval [A, C] from the interval key (K A, B ) is calculated through Equation (7).

Figure 112005018473811-pat00030
Figure 112005018473811-pat00030

노드(B)가 최상위 행의 노드인 경우 구간[A, B]의 구간 키(KA, B)를 가진 사용자(B)는 구간[B, C]의 구간 키(

Figure 112005018473811-pat00031
)로 암호화된 세션 키를 복호화하기 위해 구간 키(KA, B)로부터 구간[B, C]의 구간 키(
Figure 112005018473811-pat00032
)를 수학식8을 통하여 계산한다.When node B is a node of the top row, the user B having the interval keys K A and B of the interval [A, B] is the interval key (the interval B of the interval [B, C]).
Figure 112005018473811-pat00031
The interval key of the interval [B, C] from the interval key (K A, B ) to decrypt the session key encrypted with
Figure 112005018473811-pat00032
) Is calculated through Equation 8.

Figure 112005018473811-pat00033
Figure 112005018473811-pat00033

도 13은 종래의 방법에 따른 전송량과 본 발명의 일실시예에 따른 전송량을 비교한 그래프를 나타낸다. 도 13을 참조하면, 미국 특허공개 공보(US 2002/0147906 A1)에 기재된 브로드캐스트 암호화 방법에 따른 전송량은 불법 사용자의 수(r)가 증가함에 따라 2r의 비율로 증가된다. 그러나 본 발명에 따른 브로드캐스트 암호화방법을 이용하는 경우, 전송량은 불법 사용자의 수(r)가 (N/Cd)까지는 2r의 비율로 증가되나, 불법 사용자의 수(r)가 상기 (N/Cd)를 초과하는 경우 전송량은 불법 사용자의 수(r)가 증가함에 따라 r의 비율로 증가된다. 여기서 N은 전 체 사용자의 수를 나타낸고, Cd는 마지막 행을 형성하는 사용자들의 길이(또는 수)를 나타낸다.Figure 13 shows a graph comparing the transmission amount according to the conventional method and the transmission amount according to an embodiment of the present invention. Referring to FIG. 13, the transmission amount according to the broadcast encryption method described in US Patent Publication No. US 2002/0147906 A1 increases at a rate of 2r as the number of illegal users r increases. However, in case of using the broadcast encryption method according to the present invention, the amount of transmission is increased by the ratio of 2r until the number of illegal users (r) is (N / Cd), but the number of illegal users (r) is (N / Cd). If exceeds, the amount of transmission increases at the rate of r as the number of illegal users (r) increases. Where N represents the total number of users and Cd represents the length (or number) of users forming the last row.

본 발명의 실시예들은 컴퓨터 시스템에서 실행할 수 있는 프로그램으로 작성가능하다. 또한, 상기 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체로부터 독출된 해당 프로그램은 디지털 컴퓨터 시스템에서 실행될 수 있다. 상기 기록 매체에는 마그네틱 저장 매체(예를 들면, 롬, 플로피디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 씨디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 매체를 포함한다.Embodiments of the present invention can be written as a program executable in a computer system. Also, the program read out from the computer-readable recording medium that recorded the program can be executed in the digital computer system. The recording medium may include a magnetic storage medium (e.g., ROM, floppy disk, hard disk, etc.), an optical reading medium (e.g., CD-ROM, DVD, etc.) and a carrier wave (e.g., transmission over the Internet). Media.

본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described with reference to one embodiment shown in the drawings, this is merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

상술한 바와 같이 본 발명에 따른 키 생성방법, 상기 키 생성방법을 이용한 암호화 방법과 복호화 방법은 전송량을 감소시키는 효과가 있다.As described above, the key generation method, the encryption method and the decryption method using the key generation method of the present invention have the effect of reducing the amount of transmission.

Claims (20)

키 생성방법에 있어서,In the key generation method, 다수의 행들 각각에 다수의 노드들이 할당되고, 상기 다수의 행들 중에서 어느 하나의 행을 구성하는 적어도 하나의 노드는 상기 다수의 행들 중에서 다른 하나의 행을 구성하는 적어도 하나의 노드와 서로 연관되도록 다수의 노드들로 구성된 계층적인 노드 그룹이 형성되는 단계;A plurality of nodes are assigned to each of the plurality of rows, and the at least one node constituting any one of the plurality of rows is associated with at least one node constituting another one of the plurality of rows to be associated with each other. Forming a hierarchical node group composed of nodes of; 상기 계층적인 노드 그룹을 형성하는 모든 노드들 각각에 적어도 하나의 노드 키가 할당되는 단계;At least one node key is assigned to each of all nodes forming the hierarchical node group; 상기 다수의 행들 각각에 적어도 하나의 일방향 함수가 할당되는 단계;Assigning at least one one-way function to each of the plurality of rows; 상기 계층적인 노드 그룹을 형성하는 모든 노드들 중에서 선택된 두 개의 노드들로 이루어진 구간이 설정되고, 상기 구간을 형성하는 두 개의 노드들 각각을 포함하는 적어도 하나의 행에 할당된 적어도 하나의 일방향 함수를 적용하여 상기 구간의 구간 키가 생성되고, 생성된 구간 키가 상기 선택된 두 개의 노드들 중에서 어느 하나의 노드에 할당되는 단계: 및A section consisting of two nodes selected from all nodes forming the hierarchical node group is set, and at least one one-way function assigned to at least one row including each of the two nodes forming the section. Applying an interval key of the interval, and assigning the generated interval key to any one of the selected two nodes; and 상기 다수의 행들 중에서 마지막 행을 구성하는 다수의 노드들 각각에 사용자가 할당되는 단계를 포함하는 키 생성방법.And assigning a user to each of a plurality of nodes constituting a last row among the plurality of rows. 키 생성방법에 있어서,In the key generation method, N(여기서, N은 자연수)개의 행들로 구성되며, 상기 N개의 행들 각각은 다수의 노드들을 포함하며, 상기 N개의 행들 중에서 I(여기서, I는 N보다 작은 자연수)번째 행을 구성하는 다수의 노드들 각각이 부모 노드로 할당되고, (I+1)번째 행을 구성하는 다수의 노드들 중에서 선택된 적어도 하나의 노드가 상기 다수의 부모 노드들 중 적어도 하나의 자식 노드로 할당됨으로써 계층적인 노드 그룹(hierarchical node group)이 생성되는 단계;N (where N is a natural number), each of the N rows includes a plurality of nodes, and a plurality of rows forming an I (where I is a natural number less than N) of the N rows. Each node is assigned a parent node, and at least one node selected from among a plurality of nodes constituting the (I + 1) th row is assigned to at least one child node of the plurality of parent nodes, thereby hierarchical node group. generating a hierarchical node group; 상기 계층적인 노드 그룹을 형성하는 모든 노드들 각각에 적어도 하나의 노드 키가 할당되는 단계;At least one node key is assigned to each of all nodes forming the hierarchical node group; 상기 N개의 행들 각각에 적어도 하나의 일방향 함수가 할당되는 단계;Assigning at least one one-way function to each of the N rows; 상기 계층적인 노드 그룹을 형성하는 모든 노드들 중에서 선택된 두 개의 노드들로 이루어진 구간이 설정되고, 상기 구간을 형성하는 두 개의 노드들 각각을 포함하는 적어도 하나의 행에 할당된 적어도 하나의 일방향 함수를 연산하여 상기 구간의 구간 키가 생성되고, 생성된 구간 키가 상기 선택된 두 개의 노드들 중에서 어느 하나의 노드에 할당되는 단계: 및A section consisting of two nodes selected from all nodes forming the hierarchical node group is set, and at least one one-way function assigned to at least one row including each of the two nodes forming the section. Calculating and generating an interval key of the interval, and assigning the generated interval key to any one of the selected two nodes; and 상기 N번째 행을 구성하는 다수의 노드들 각각에 사용자가 할당되는 단계를 포함하는 키 생성방법.And assigning a user to each of a plurality of nodes constituting the Nth row. 제2항에 있어서, 상기 계층적인 노드 그룹의 상기 N번째 행을 구성하는 다수의 노드들 각각에는 하나의 노드 키가 할당되고, 나머지 행을 구성하는 다수의 노드들 각각에는 두 개의 노드 키들이 할당되는 키 생성방법.3. The node of claim 2, wherein one node key is assigned to each of the plurality of nodes constituting the Nth row of the hierarchical node group, and two node keys are assigned to each of the plurality of nodes constituting the remaining row. Key generation. 제2항에 있어서, 상기 계층적인 노드 그룹의 상기 N번째 행에는 하나의 일방향 함수가 할당되고, 나머지 행들 각각에는 두 개의 일방향 함수들이 할당되는 키 생성방법.3. The method of claim 2, wherein one N-way function is assigned to the N-th row of the hierarchical node group, and two one-way functions are assigned to each of the remaining rows. 제2항에 있어서, 상기 키 생성방법은,The method of claim 2, wherein the key generation method comprises: 상기 N번째 행을 구성하는 노드들 각각에는 상기 N번째 행을 구성하는 노드들 각각의 직계 부모 노드에 할당된 적어도 하나의 상기 노드 키 또는 상기 직계 부모 노드에 할당된 적어도 하나의 상기 구간 키 중 적어도 하나가 할당되는 단계를 더 포함하는 키 생성방법.Each of the nodes constituting the Nth row includes at least one of the at least one node key assigned to the direct parent node of each of the nodes constituting the Nth row or at least one interval key assigned to the direct parent node. The key generation method further comprises the step of assigning one. 키 생성방법에 있어서,In the key generation method, I(I는 자연수)번째 행에 다수의 노드들이 할당되는 (a)단계;(A) allocating a plurality of nodes to an I (I is a natural number) row; 상기 I번째 행에 할당된 다수의 노드들 각각에 다시 다수의 노드들이 할당됨으로써 (I+1)번째 행이 형성되는 (b)단계;(B) forming a (I + 1) -th row by assigning a plurality of nodes to each of the plurality of nodes allocated to the I-th row; 상기 I를 1씩 증가시키면서 상기 (I+1)번째 행이 D(D는 자연수)번째 행이 될 때까지 상기 (b)단계가 반복적으로 수행되어 다수개의 노드들을 구비하는 계층적인 노드 그룹이 형성되는 (c)단계;The step (b) is repeated until the (I + 1) th row becomes the D (D is a natural number) row while increasing I by 1 to form a hierarchical node group including a plurality of nodes. (C) being; 상기 계층적인 노드 그룹을 형성하는 모든 노드들 각각에 적어도 하나의 노드 키가 할당되는 (d)단계;(D) at least one node key is assigned to each of all nodes forming the hierarchical node group; 상기 (a) 단계 내지 (c)단계를 통하여 형성된 각 행에 적어도 하나의 일방향 함수가 할당되는 (e)단계;(E) assigning at least one one-way function to each row formed through steps (a) to (c); 상기 계층적인 노드 그룹을 형성하는 모든 노드들 중에서 선택된 두 개의 노드들로 이루어진 구간이 설정되고, 상기 구간을 형성하는 두 개의 노드들 각각을 포함하는 적어도 하나의 행에 상기 (e)단계를 통하여 할당된 적어도 하나의 일방향 함수를 연산하여 상기 구간의 구간 키가 생성되고, 생성된 구간 키가 상기 선택된 두 개의 노드들 중에서 어느 하나의 노드에 할당되는 (f)단계: 및A section consisting of two nodes selected from all the nodes forming the hierarchical node group is set, and is assigned to at least one row including each of the two nodes forming the section through step (e). (F) a step key of the section is generated by calculating at least one one-way function, and the generated section key is assigned to any one of the selected two nodes; and 상기 D번째 행을 구성하는 다수의 노드들 각각에 사용자가 할당되는 (g)단계를 포함하는 키 생성방법.And (g) assigning a user to each of a plurality of nodes constituting the D-th row. 제6항에 있어서, 상기 키 생성방법은,The method of claim 6, wherein the key generation method comprises: 상기 D번째 행을 구성하는 다수의 노드들 각각에는 상기 (a)단계와 상기 (C)와 상기 (d)단계를 통하여 할당된 적어도 하나의 상기 노드 키 또는 상기 (f)단계를 통하여 할당된 적어도 하나의 상기 구간 키 중 적어도 하나가 할당되는 단계를 더 포함하는 키 생성방법.Each of the plurality of nodes constituting the D-th row has at least one node key assigned through the steps (a) and (C) and (d) or at least one assigned through the step (f). And at least one of the one interval key is assigned. 제1항 내지 제7항 중의 어느 하나의 항에 기재된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for executing the method according to any one of claims 1 to 7. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020050029375A 2005-03-31 2005-04-08 Method for key generation to reduce transmission overhead in Broadcast Encryption, Encryption and Decryption using the key generation KR101160812B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050026905 2005-03-31
KR20050026905 2005-03-31

Publications (2)

Publication Number Publication Date
KR20060106330A KR20060106330A (en) 2006-10-12
KR101160812B1 true KR101160812B1 (en) 2012-06-28

Family

ID=37627064

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050029375A KR101160812B1 (en) 2005-03-31 2005-04-08 Method for key generation to reduce transmission overhead in Broadcast Encryption, Encryption and Decryption using the key generation

Country Status (1)

Country Link
KR (1) KR101160812B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101321401B1 (en) * 2007-02-02 2013-10-25 재단법인서울대학교산학협력재단 Method of group key management and apparatus for group key management using the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020043973A (en) * 2000-12-05 2002-06-12 오길록 System and method for key recovery using multiple agents
KR20040009766A (en) * 2002-07-25 2004-01-31 학교법인 성균관대학 Apparatus and method for transmitting and receiving in encryption system
KR20040097717A (en) * 2003-05-13 2004-11-18 펜타시큐리티시스템 주식회사 Method and system for transporting session key

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020043973A (en) * 2000-12-05 2002-06-12 오길록 System and method for key recovery using multiple agents
KR20040009766A (en) * 2002-07-25 2004-01-31 학교법인 성균관대학 Apparatus and method for transmitting and receiving in encryption system
KR20040097717A (en) * 2003-05-13 2004-11-18 펜타시큐리티시스템 주식회사 Method and system for transporting session key

Also Published As

Publication number Publication date
KR20060106330A (en) 2006-10-12

Similar Documents

Publication Publication Date Title
KR101092543B1 (en) Method of managing a key of user for broadcast encryption
KR100692344B1 (en) Public key media key block
US7848525B2 (en) Hybrid broadcast encryption method
US9015850B2 (en) Detecting and revoking pirate redistribution of content
US8411865B2 (en) Key management method for broadcast encryption in tree topology network
EP2052539B1 (en) Method of revocation of security modules used to secure broadcast messages
JP4162237B2 (en) ENCRYPTED COMMUNICATION SYSTEM, ENCRYPTION DEVICE, DECRYPTION DEVICE, ENCRYPTION METHOD, DECRYPTION METHOD, ENCRYPTION PROGRAM, AND DECRYPTION PROGRAM
JP2016158189A (en) Change direction with key control system and change direction with key control method
US20060107043A1 (en) Method for managing user key for broadcast encryption
KR20060079491A (en) Method for broadcast encryption based on the combination
JP2012090324A (en) Method for generating revoked node list in broadcast encryption system
US8054973B2 (en) User key management method for broadcast encryption (BE)
KR100640058B1 (en) Method of managing a key of user for broadcast encryption
US20080046730A1 (en) Method and apparatus for providing content encrypted using broadcast encryption scheme in local server
KR101086431B1 (en) Method and apparatus for decryption using external device or service on revocation mechanism, method and apparatus for supporting decryption therefor
EP2274867B1 (en) Keys for protecting user access to media
JP2004120008A (en) Key management system
KR101160812B1 (en) Method for key generation to reduce transmission overhead in Broadcast Encryption, Encryption and Decryption using the key generation
JP2005333242A (en) Key management system and reproducing apparatus
JP2007189597A (en) Encryption device, encryption method, decoding device, and decoding method
US20070291948A1 (en) User key allocation method for broadcast encryption
Jin et al. Efficient coalition detection in traitor tracing
JP2009065345A (en) Method of covering client terminal in sd method and program
JP5052207B2 (en) Broadcast encryption system capable of tracking unauthorized persons, center device and user device thereof, program thereof and recording medium thereof
KR20060049340A (en) Method of managing a key of user for broadcast encryption

Legal Events

Date Code Title Description
N231 Notification of change of applicant
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: 20150601

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160204

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170524

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180521

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190902

Year of fee payment: 8