WO2016067471A1 - 通信制御装置、通信制御方法およびプログラム - Google Patents
通信制御装置、通信制御方法およびプログラム Download PDFInfo
- Publication number
- WO2016067471A1 WO2016067471A1 PCT/JP2014/079138 JP2014079138W WO2016067471A1 WO 2016067471 A1 WO2016067471 A1 WO 2016067471A1 JP 2014079138 W JP2014079138 W JP 2014079138W WO 2016067471 A1 WO2016067471 A1 WO 2016067471A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- group
- node
- key
- mkb
- communication
- Prior art date
Links
Images
Classifications
-
- 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
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/185—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
Definitions
- Embodiments described herein relate generally to a communication control device, a communication control method, and a program.
- the dynamic group management method can be flexibly managed according to the situation, but ensuring the scalability is an issue.
- the present invention has been made in view of the above, and an object thereof is to provide a communication control device, a communication control method, and a program capable of realizing dynamic group management while ensuring scalability.
- the communication control device of the embodiment includes a reception unit, a generation unit, and an output unit.
- the accepting unit accepts input of a binary tree in which an index and a node key are assigned to each leaf node, and a node ID for identifying a leaf node belonging to the group among the leaf nodes.
- a generation unit generates a ciphertext obtained by encrypting a group key using a node key assigned to a root node of a binary tree subtree that includes only leaf nodes identified by node IDs, and a set including the generated ciphertext Generate information.
- the output unit outputs the set information to a communication device associated with at least a leaf node belonging to the group.
- 1 is a block diagram of a communication system according to an embodiment.
- 1 is a block diagram of a communication control apparatus according to a first embodiment.
- 1 is a block diagram of a communication device according to a first embodiment.
- the flowchart of Check () function in the case of left priority.
- the flowchart of the group control process in 1st Embodiment The flowchart of the production
- GDOI The Group Domain of Interpretation
- GDOI is a technique for joining and leaving group members and securely distributing group keys using multicast.
- GDOI it is possible to create a group, update a group, and distribute a group key.
- key information (LKH_DOWNLOAD_ARRAY) having a hierarchical structure is updated in almost all members every time a group member is updated. Therefore, when one communication device belongs to a plurality of groups, it is necessary for a single communication device to have a plurality of LKH_DOWNLOAD_ARRAY, and it is difficult to perform efficient management.
- the group operation is performed using a technique called MKB (media key block).
- MKB media key block
- range information indicating the range of communication devices belonging to the group and MKB (MKB fragment) that can be processed by the communication devices in the range indicated by the range information are obtained.
- MKB MKB fragment
- MKB is data capable of deriving a media key for decrypting content recorded on the media by performing processing using a corresponding device key.
- An MKB includes one or more elements.
- a typical MKB includes one or more ciphertexts (elements) generated by encrypting one media key with one or more device keys.
- the MKB may include information for specifying a device key for processing each ciphertext. The number of ciphertexts included in the MKB is determined depending on the corresponding device key. Therefore, depending on the corresponding device key, the MKB may include a large number of ciphertexts as elements.
- a media key obtained by processing the MKB is used as a group key shared by one or more communication devices belonging to the group. That is, an MKB that can be used to derive a group key by processing with a device key held by a communication device belonging to the group is distributed.
- the group management of the communication devices is realized by using the fact that the group key can be distributed only to the communication devices belonging to the group. Since the media key is used as a group key, it can also be expressed as GKB (group key block) instead of MKB.
- control is performed such that a member who can process a certain MKB and extract a group key belongs to the group (if it does not currently belong, it newly joins the group). .
- a control is performed such that a member who fails to acquire a group key does not belong to the group (if it currently belongs, it leaves the group).
- the size of the MKB for group operation may become extremely large. Therefore, if the MKB is distributed to the communication network as it is, the communication load may become extremely large.
- the MKB including a plurality of ciphertexts as elements is divided and sent.
- the group control method as described above is assumed, even if the MKB is simply divided and sent for each ciphertext, the intended group control may not be performed.
- the communication device receives the divided MKB and the group key cannot be acquired from the MKB, the communication device performs a process of leaving the group.
- an MKB that can be processed by the communication apparatus and obtain a group key may arrive later.
- information that defines a set of communication devices that are targets of group operation by the MKB is attached to the MKB.
- a range of device IDs (hereinafter referred to as device IDs) for identifying a target communication device can be used as information for defining a set of communication devices.
- device IDs for identifying a target communication device
- a set can be represented. Device IDs that are not less than the first device ID and not more than the second device ID belong to this set.
- the range is represented by two device IDs as described above, and a device ID included in the range is specified by the rule, or whether the device ID is included in the range. Can be determined.
- the communication device that has received the MKB with the information that defines the range of the communication device performs the operation shown in the following pseudo code.
- the MKB is processed by the device key held by the communication apparatus, and if the group key is successfully acquired and the group is joined, the derivation is performed. Update the information of the participating group using the group key. If acquisition of the group key is successful and the user does not participate in the group, the derived group key is used to join the group. If acquisition of the group key fails and you are participating in the group, you will leave the group.
- the communication device is a target device for group operation. If the node itself is not a group operation target, the group operation is not executed. Thereby, it is possible to prevent an unintended group leaving operation from occurring even with the divided MKB.
- FIG. 1 is a diagram showing an example of the structure of a group management tree used in the MKB used in this embodiment.
- a group management tree having a complete binary tree structure according to the CS (Complete Subtree) method is used.
- This complete binary tree may be, for example, a tree (complete binary tree T) that covers all communication devices of the target system, or some communication devices (for example, group operation of all communication devices of the target system). It may be a tree (subtree T ′ of a complete binary tree T) that covers only a set of target communication devices).
- CS Consumer Subtree
- each communication device has a unique device ID in the target system.
- Each leaf node of the complete binary tree T corresponds to one communication device. Therefore, managing communication devices in groups can be replaced by managing leaf nodes in groups.
- the leaf node has an index equal to the device ID of the corresponding communication device.
- a leaf node indicated by a broken-line circle represents a revoked node (revoked node).
- a bold line represents an edge on the path from the root to the revocation node.
- a triangle represents a subtree (subtree s) including only leaf nodes that have not been revoked.
- the filled node represents the root node of this subtree s.
- a different encryption key may be assigned to each node of the complete binary tree T.
- Each communication device may be preset with a device key including a node key assigned to each node on the path from the root node of the complete binary tree T to the corresponding leaf node.
- node key assignment and device key setting need not be performed. For example, when a group is managed without using an MKB as described above, it is not necessary to generate an MKB, so that node key assignment and device key setting are unnecessary.
- Each node is assigned at least information (node ID) for identifying the node as an attribute.
- the node ID is represented by (d (node depth), b (bitmap)), for example.
- the depth d of the node n is represented by (H T ⁇ H n ).
- the node n is each node included in the complete binary tree T.
- H T is the height of the complete subtree T
- H n is the height of the node n.
- the index index (b, d) of the node identified by the node ID (d, b) is represented by the value of the leading d bits of the bitmap b.
- Bit map b is a value including one or more “0” or “1” as shown in FIG.
- the index shown in FIG. 1 is obtained by assigning 0 to the path from the root node to the leaf node of the complete binary tree T when assigned to the left and 1 when assigned to the right.
- the MKB generated from the group management tree includes, for example, the following elements.
- i is the root node of the subtree s. (Index of node i, Enc (node key of i, group key))
- an MKB including the following four elements is generated. These correspond to nodes 000, 010, 10 and 110, respectively.
- Kg represents a group key.
- Enc (k (000), Kg) represents data obtained by encrypting Kg with k (000). (000, Enc (k (000), Kg), (010, Enc (k (010), Kg), (10, Enc (k (10), Kg), (110, Enc (k (110), Kg )
- the MKB having such a structure is divided into a plurality of MKBs (MKB fragments) each including a part of the elements, and the divided MKB fragments are transmitted to the communication device by multicast communication or broadcast communication. Is done.
- FIG. 2 is a block diagram illustrating an example of the configuration of the communication system according to the present embodiment.
- the communication system of this embodiment has a configuration in which communication devices 200a to 200f and a communication control device 100 are connected via a network 60.
- the network 60 can apply any network form such as the Internet.
- Each of the communication devices 200a to 200f does not need to be directly connected to the communication control device 100.
- the communication control device 100 is not limited to one, and may be configured to include two or more communication control devices. Since the communication devices 200a to 200f have the same configuration, they may be simply referred to as the communication device 200 below. The number of communication devices 200 is not limited to six.
- the communication control device 100 transmits a group operation command to each communication device 200.
- the group operation command includes, for example, set information and range information (for example, a range of device IDs).
- the group operation command may include a group ID for identifying the updated group.
- the set information is information indicating a set including a predetermined number of subtrees (for example, the subtree s in FIG. 1) including only leaf nodes belonging to the group (corresponding to the communication device).
- the set information may include, for example, an MKB (MKB fragment) that is divided so that the communication device associated with the leaf node of the subtree included in the set can derive the group key.
- MKB MKB fragment
- the range information indicates the range of indexes assigned to the leaf nodes of each subtree included in the set indicated by the set information. Since the index is equal to the device ID of the corresponding communication device as described above, the range of the device ID of the communication device that is the target of the group operation is specified by the range information. Details of the method for generating the set information and the range information will be described later.
- FIG. 3 is a block diagram illustrating a configuration example of the communication control apparatus 100.
- the communication control apparatus 100 includes a group information storage unit 121, an address storage unit 122, a key storage unit 123, a reception unit 101, a generation unit 102, and an output unit 103.
- the group information storage unit 121 stores group information including a group ID of a group to which one or more communication devices 200 belong and a device ID that identifies the communication device 200 belonging to the group identified by the group ID. That is, the group information storage unit 121 stores the group ID and the device ID of the communication device 200 belonging to the group identified by the group ID in association with each other.
- the group information storage unit 121 stores one or more group IDs in advance. However, the group information storage unit 121 does not include the group information storage unit 121, and performs group operations based on group information received from an external device. You may make it perform.
- the address storage unit 122 stores information (multicast group ID, multicast address, etc.) specifying a multicast group to which one or more communication devices 200 belong and the device ID of the communication device 200 belonging to the multicast group in association with each other.
- a multicast group is an example of a group managed independently of a group that is a target of group operation by the MKB.
- the multicast address is, for example, an address for transmitting information by multicast communication to the communication device 200 of each corresponding device ID.
- the address storage unit 122 may not be provided.
- the address storage unit 122 stores information for specifying a multicast group in advance. However, based on information received from an external device, new information may be added to the address storage unit 122, or The stored information may be updated.
- the key storage unit 123 stores a device key assigned to each communication device 200.
- the key storage unit 123 may store a device key in association with a tree-structured node. As described above, when only the group management is performed without using the MKB, the key storage unit 123 may not be provided.
- the accepting unit 101 accepts input of various information used in the communication control apparatus 100.
- the reception unit 101 receives various types of information from an external device such as the communication device 200.
- the receiving unit 101 receives, for example, a group control request and information specifying a group control target.
- the group control request is a request for creating a new group, changing a group (changing the communication device 200 belonging to the group, and the like).
- the reception unit 101 receives the group ID of the group to be operated and the device ID of the communication apparatus 200 to be included in the group, which are input by the operator using an operation unit (not shown) such as a keyboard. You may comprise as follows. It should be noted that group control may be executed not only when a group control request is received from an external device, but also when it is determined that the group control is necessary within the communication control device 100 and when it is determined necessary.
- the reception unit 101 may be a group management tree having a complete binary tree structure to be processed (a complete binary tree T that is an entire tree or a subtree T ′ of the complete binary tree T), and The input of the node ID of the leaf node corresponding to the communication device 200 belonging to the group is received. Since the leaf node corresponds to any one of the communication devices 200, the input of the device ID of the communication device 200 belonging to the group may be accepted. The accepting unit 101 can obtain the node ID of the leaf node corresponding to the communication device 200 having the input device ID. The receiving unit 101 sends a group management tree having a complete binary tree structure, a node ID, a group control request, and information (input information) designating a group control target to the generating unit 102.
- the generation unit 102 generates information used for group operation. For example, the generation unit 102 generates the above set information and range information.
- the generation unit 102 traces a group management tree having a complete binary tree structure, and generates range information while calculating set information.
- the generation unit 102 generates a predetermined number (M of subtrees of group management trees) each including only a leaf node identified by a node ID from one of the leftmost leaf node and the rightmost leaf node to the other. (Natural number))
- a tracing process including a process for obtaining set information indicating a set to be included and a process for obtaining range information of an index of leaf nodes included in the obtained set is repeated. Thereby, the amount of calculation can be O (L) (L is the number of leaf nodes). Details of the generation processing by the generation unit 102 will be described later.
- the output unit 103 outputs the set information and the range information to the communication device 200 associated with at least the leaf nodes belonging to the group.
- the set information may include key information (MKB fragment) from which the communication device 200 associated with the leaf node of the subtree included in the set can derive the group key.
- MKB fragment is expressed in the form of, for example, (node i index, Enc (i node key, group key)) as described above.
- the output unit 103 multicasts a group operation message including set information and range information to the multicast group to which the communication device 200 belonging to the group belongs.
- the output unit 103 multicasts a group operation message including set information and range information to the multicast group to which the communication device 200 belonging to the group belongs.
- the above information may be transmitted from the output unit 103 to a multicast group including the communication device 200 that is included in the group before update but not included in the group after update.
- a communication device 200 belongs to the multicast group, but can not process the MKB correctly, and thus leaves the updated group. In this way, a command for ordering to leave the group can be issued using the divided MKB. By issuing such a command, information to be held by the communication apparatus 200 can be appropriately managed.
- the output unit 103 is a set (group) of communication devices 200 managed independently of the group that is the target of the group operation by the MKB, and includes at least all the communication devices 200 whose groups have been updated. Output information for the set.
- the set of communication devices 200 is a set of a plurality of communication devices 200 and does not necessarily match a group to which a group ID is allocated. Examples of the set of communication devices 200 include a set of communication devices 200 that receive data by multicast communication, a set of communication devices 200 that receive data by broadcast communication, that is, a set of all communication devices 200, and the like. Can be mentioned.
- the output unit 103 may transmit output information to a set or group of communication apparatuses 200 including a device ID list by one or more multicast communication or broadcast communication.
- the output unit 103 selects one or more addresses (multicast addresses) associated with the device ID of the distribution target device ID among the addresses stored in the address storage unit 122, for example.
- Output information is transmitted as a destination.
- FIG. 4 is a block diagram illustrating a configuration example of the communication apparatus 200.
- the communication device 200 includes a GID storage unit 221, a group key storage unit 222, a device key storage unit 223, a device ID storage unit 224, a reception unit 201, a determination unit 202, and an MKB.
- a processing unit 203 and a group control unit 204 are provided.
- the group key storage unit 222 and the device key storage unit 223 need not be provided.
- the GID storage unit 221 stores the group ID (GID) of the group to which the communication device 200 belongs.
- the group key storage unit 222 stores the group key of the group identified by the group ID stored in the GID storage unit 221.
- the device key storage unit 223 stores the device key of the communication apparatus 200.
- the device ID storage unit 224 stores the device ID of the communication device 200.
- the receiving unit 201 receives various types of information from external devices such as the communication control device 100 and other communication devices 200. For example, the receiving unit 201 receives a group operation message from the communication control apparatus 100. The receiving unit 201 receives output information through multicast communication, broadcast communication, or the like. The receiving unit 201 determines whether the received message is a group operation message. If it is not a group operation message, the received message is passed to another module (not shown) that should process the message and processed. If the message is a group operation message, the message data is sent to the determination unit 202.
- the determination unit 202 determines whether or not the range information included in the group operation message includes the device ID stored in the device ID storage unit 224. If not included, the communication device 200 is not the target device of the received group operation message, and therefore stops the operation for the group operation message. If included, the communication device 200 is the target of the group operation message, and therefore the group operation message is passed to the MKB processing unit 203.
- the MKB processing unit 203 determines that the range information includes the device ID stored in the device ID storage unit 224, the MKB processing unit 203 stores the set information (MKB fragment) included in the group operation message and the device key storage unit 223. An MKB process for generating a group key from the stored device key is executed.
- the MKB processing unit 203 performs grouping by Dec (node key of node i, MKB fragment). Generate a key.
- the group key When the group key is obtained as a result of the MKB process, it means that the communication apparatus 200 belongs to the group indicated by GID.
- the MKB processing unit 203 sends the GID and the acquired group key to the group control unit 204.
- the method for determining whether a user belongs to a group is not limited to this.
- the set information includes a node index (d, b) in which the bit map of the device ID of the communication apparatus 200 matches the prefix high-order d bits, the group information is included. You may decide to belong.
- the group control unit 204 stores the GID in the GID storage unit 221 and stores the group key in the group key storage unit 222. When the GID is already stored, the group control unit 204 updates the GID stored in the GID storage unit 221 with the GID in the group operation message.
- the MKB processing unit 203 sends a GID and a notification that the group key could not be acquired to the group control unit 204.
- the group control unit 204 empties the GID storage unit 221 and the group key storage unit 222. If the GID or group key is already stored, the group control unit 204 deletes them.
- Each of the storage units described above can be configured by any commonly used storage medium such as an HDD (Hard Disk Drive), an optical disk, a memory card, and a RAM (Random Access Memory).
- HDD Hard Disk Drive
- optical disk an optical disk
- memory card an optical disk
- RAM Random Access Memory
- reception unit 101, the generation unit 102, and the output unit 103 of the communication control device 100, and the reception unit 201, the determination unit 202, the MKB processing unit 203, and the group control unit 204 of the communication device 200 are, for example, By causing a processing device such as a CPU (Central Processing Unit) to execute a program, that is, it may be realized by software, or may be realized by hardware such as an IC (Integrated Circuit), or software and hardware You may implement
- a processing device such as a CPU (Central Processing Unit)
- a program that is, it may be realized by software, or may be realized by hardware such as an IC (Integrated Circuit), or software and hardware You may implement
- FIG. 5 is a flowchart showing an example of the communication control process in the present embodiment.
- the accepting unit 101 accepts the complete binary tree T (or the subtree T ′ of the complete binary tree T) and the node ID of the leaf node corresponding to the communication device 200 belonging to the group (step S101).
- the device ID of the communication device 200 belonging to the group may be received, and the node ID of the leaf node corresponding to the communication device 200 with the received device ID may be obtained.
- the generation unit 102 executes a generation process for generating set information and range information based on the received complete binary tree T (or subtree T ′) and node ID (step S102).
- the generation unit 102 generates a group operation message including set information and range information.
- the output unit 103 outputs a group operation message (step S103).
- the trace process is recursively executed with either the left priority or the right priority from the root node R of the subtree T ′ of the complete binary tree T.
- Left priority means that set information and range information are generated in order from the leftmost leaf node to the rightmost leaf node of the subtree T ′.
- Right priority means that set information and range information are generated in order from the rightmost leaf node to the leftmost leaf node of the subtree T ′.
- the generation unit 103 may generate set information and the like by either left priority or right priority.
- the generation process includes a set (S, minr, maxr) of a list S of node IDs of at most M nodes of the subtree T ′, a lower limit value minr of the index of the leaf node corresponding to the list S, and an upper limit value maxr of the index.
- the list S corresponds to set information
- minr and maxr correspond to range information.
- adding the node ID of the node n to the list S may be simply expressed as adding the node n to the list S.
- LML (n) and RML (n) be functions that return the node indices of the left and right leaf nodes of the subtree with node n as the root node, respectively.
- a set of leaf nodes of the subtree T ′ is set as a set L.
- a set of leaf nodes belonging to the group in the set L is set as a set G.
- the “CS applicable” and “CS non-applicable” marks may be realized as a return value of a function that performs processing for the node currently being traced, or by holding it as an attribute value attached to each node. May be.
- one of the values corresponding to “CS undecided” indicating that the CS is applicable is indefinite. May be.
- LML (n) index (b, d) ⁇ 2 for the node n identified by the node ID (d, b).
- T T ′
- the generation process uses the following information as input.
- I List of device IDs of communication devices 200 included in group members T ′: Subtree of complete binary tree T that is a whole tree (root node R of T ′)
- M MKB fragment size (number of nodes included in MKB fragment)
- the generation process outputs a list O of (S, minr, maxr).
- S List of nodes contained in MKB fragment
- minr Lower limit value of node index of leaf node for list
- maxr Upper limit value of node index of leaf node for list
- FIG. 6 is a flowchart showing an example of the generation process.
- the generation unit 102 executes the Check () function on the root node R (step S202).
- the Check function is recursively executed on the child nodes of the designated node, and the list O is output as a result.
- FIG. 7 is a flowchart showing an example of the Check () function in the case of left priority.
- FIG. 7 shows the operation when the left priority Check () function for a certain node n is called.
- step S307 it is determined whether or not lval ⁇ rval is greater than 0 (step S307). This corresponds to determining whether both the left and right child nodes are “CS applicable”. If larger (step S307: Yes), the left child node and the right child node of node n are deleted from list S, node n is added to list S, and rv is set to 1 (step S308).
- step S307 If lval ⁇ rval is not greater than 0, that is, if it matches 0 (step S307: No), it is determined whether (lval + rval) is greater than 0 (step S309). This corresponds to determining that one of the left and right child nodes is “CS applicable”.
- step S308 when it is determined that (lval + rval) is not greater than 0 (step S309: No), or when the number of elements in the list S does not exceed M (step S310: No) It is determined whether or not the node n is a root node (step S312).
- step S312 Yes
- step S304 after step S305, after step S313, or when the node n is not a root node (step S312: No), the value of rv is returned (step S314), and the Check function ends.
- FIG. 8 is a flowchart showing an example of the Check () function in the case of right priority.
- steps other than Step S411 and Step S413 are the same as the Check () function (FIG. 7) in the case of the left priority, the description is omitted.
- FIG. 9 is a diagram showing an example of pseudo code representing a generation process in the case of left priority.
- Inputs I, T, R, and M in FIG. 9 correspond to the above list I, subtree T ′, root node R of subtree T ′, and MKB fragment size M.
- Output O corresponds to the above list O.
- rightmost_leaf_number (n) corresponds to the above RML (n).
- FIG. 10 is a diagram illustrating an example of a processing result of the generation process.
- I (000,010,100,101,110)
- Enc i node key, group key
- the present embodiment it is possible to perform MKB division (generation of a list S of M partial trees) while obtaining a partial tree including only leaf nodes belonging to the group.
- the generated MKB fragment can be transmitted without waiting until all subtrees are obtained.
- the calculation amount and the transmission delay of the MKB fragment can be reduced as compared with a method of obtaining all subtrees and then dividing the MKB into MKB fragments (modified example 1 described later).
- FIG. 11 is a flowchart illustrating an example of group control processing in the present embodiment.
- the receiving unit 201 receives a message from an external device such as the communication control device 100 (step S501).
- the receiving unit 201 determines whether or not the received message is a group operation message (step S502). If it is not a group operation message (step S502: No), the group control process is terminated. As described above, messages other than the group operation message are passed to the module that should process the message and are appropriately processed.
- step S502 If it is a group operation message (step S502: Yes), the determination unit 202 determines whether or not the device ID stored in the device ID storage unit 224 is included in the range indicated by the range information in the group operation message. (Step S503).
- step S503: No When the device ID is not included in the range indicated by the range information (step S503: No), the group control process is terminated because it is not the target of the group operation.
- step S503: Yes When the device ID is included in the range indicated by the range information (step S503: Yes), the MKB processing unit 203 processes the MKB fragment in the group operation message (step S504).
- the MKB processing unit 203 determines whether or not the MKB (MKB fragment) has been correctly processed (step S505).
- the group control unit 204 stores the GID in the group operation message in the GID storage unit 221 and also stores the group key obtained by the MKB process in the group key storage unit 222. (Step S506). If not correctly processed (step S505: No), the group control unit 204 deletes the GID in the group operation message from the GID storage unit 221 and deletes the group key from the group key storage unit 222 (step S507). .
- dynamic group management can be realized while ensuring scalability.
- information (MKB fragment) obtained by dividing the MKB is transmitted instead of the entire MKB, so that the communication load can be reduced.
- the MKB fragment is transmitted together with the information that defines the range of the communication device that is the target of the group operation, it is possible to avoid an unintended group operation.
- Modification 1 In the above embodiment, the MKB is divided while obtaining a partial tree including only leaf nodes belonging to the group, and range information of the divided MKB (MKB fragment) is generated.
- the sorted subtree list including only the leaf nodes belonging to the group is first obtained, and then the subtree list is divided to generate the MKB fragment and the range information of the MKB fragment is generated. .
- FIG. 12 is a flowchart illustrating an example of the generation process of the first modification.
- the generation unit 102 repeats the process of obtaining subtrees each including only the leaf node identified by the node ID from one of the leftmost leaf node and the rightmost leaf node to the other, and includes one or more subtrees.
- a list of subtrees obtained is obtained (step S601). Sorting means arranging in ascending or descending order of the index. For example, in the case of left priority, the subtrees are sorted so that the node index (LML (R) or RML (R)) of the left end or right end leaf node of the index R of the root node of the subtree is in ascending order. In the case of right priority, each subtree is sorted so that the index (LML (R) or RML (R)) of the left end or right end leaf node of the root node of the subtree is in descending order.
- the generation unit 102 divides the obtained subtree list into sets each including a predetermined number (M (natural number)) of the subtrees, and obtains index range information assigned to the leaf nodes of the subtrees included in each set. Obtained (step S602).
- M natural number
- the calculation amount is O (L + L / M) (L is the number of leaf nodes).
- FIG. 13 is a flowchart illustrating an example of the list generation process in step S601.
- the generation unit 102 initializes each parameter to be used (step S701). For example, the generation unit 102 sets the list S and the list O to be empty (NULL).
- the generation unit 102 executes the Check () function for the root node R (step S702).
- the Check function of the first modification is recursively executed on the child nodes of the designated node, and the list S is output as a result.
- FIG. 14 is a flowchart showing an example of the Check () function of Modification 1 in the case of left priority.
- FIG. 14 shows the operation when the left priority Check () function for a certain node n is called.
- Steps S801 to S807 are the same as steps S301 to S307 in FIG.
- step S807 When it is determined in step S807 that lval ⁇ rval is greater than 0 (step S807: Yes), the left child node and the right child node of the node n are deleted from the list S, and the node n is added to the list S. 1 is set in rv (step S808).
- step S807 When lval ⁇ rval is not larger than 0 (step S807: No), after step S804, after step S805, or after step S808, the value of rv is returned (step S809), and the Check function ends.
- step S602 an example of range information calculation processing in step S602 will be described.
- the list S obtained in the list generation process (step S601) is divided into lists F for each number of elements M, and the lower limit value minr of the index of the leaf node of the subtree included in the list F for each list F.
- a set (minr, maxr) of the upper limit value maxr of the index is calculated.
- a list of sets of lists F, minr, and maxr is output.
- the list F corresponds to the set information.
- the minr and maxr of the list F of the i-th (1 ⁇ i ⁇ N, N is the number of divisions, N ceiling (
- / M)) are calculated as follows.
- FIG. 15 is a diagram illustrating an example of pseudo code representing the generation process of Modification 1 in the case of left priority. Also in the modified example, the input (Input I, T, R, M) and the output (Output O) are the same as those in FIG.
- the fragment (S) in FIG. 15 corresponds to the range information calculation process.
- Modification 2 When a new communication device 200 (leaf node) is added to the group, the generation unit 102 may execute the generation process again using the node IDs of the leaf nodes belonging to the group after the addition. Further, when the communication device 200 (leaf node) leaves the group, the generation unit 102 may execute the generation process again using the node IDs of the leaf nodes belonging to the group after deletion. As a result, dynamic group management can be realized while ensuring scalability.
- the size of the MKB for group operation may become extremely large. Therefore, if the MKB is distributed to the communication network as it is, the communication load may become extremely large.
- an MKB (indexless MKB) obtained by removing a plurality of indexes from an MKB including a plurality of indexes and a plurality of ciphertexts as elements is generated and sent.
- the group control method as described above is assumed, there is a case where the intended group control cannot be performed even if the indexless MKB is simply sent.
- the communication device receives the indexless MKB, the communication device holds the communication device itself.
- a ciphertext included as an element of the indexless MKB is generated using an authenticated cipher.
- the authenticated cipher is a common key cipher having a function for specifying that the result of an illegal decryption is different when the key used for the encryption is different from the key used for the decryption.
- Typical ciphers with authentication include AES-CCM and AES-GCM, and various known techniques already exist. For example, when an indexless MKB is received, the communication apparatus attempts to decrypt the ciphertext included in the indexless MKB using each of a plurality of device keys held by itself.
- the information on the participating group is updated using the derived group key. If any one of the ciphertexts has been successfully decrypted and has not joined the group, the derived group key is used to join the group. If all the decryption processes fail and the group key acquisition fails, and the user joins the group, the user leaves the group.
- the communication apparatus checks whether it is instructed to belong to the group or instructed to leave by attempting to decrypt using the device key held by the communication apparatus. Thereby, the intended group operation can be performed also by the indexless MKB.
- the structure of the group management tree used for processing the indexless MKB used in this embodiment is the same as that of the first embodiment.
- the indexless MKB generated from the group management tree includes, for example, the following elements. (AuthEnc (i node key, group key))
- Kg represents a group key.
- AuthEnc (k (000), Kg) represents data obtained by encrypting Kg by encryption with authentication using k (000).
- the indexless MKBs corresponding to these MKBs are as follows. (AuthEnc (k (000), Kg), AuthEnc (k (010), Kg), AuthEnc (k (10), Kg), AuthEnc (k (110), Kg)
- the MKB having a structure from which such an index is removed is transmitted to the communication device by multicast communication or broadcast communication.
- the communication system according to the present embodiment includes a communication device 200-2 and a communication control device 100-2.
- the configuration of the communication system of the present embodiment is the same as that of the communication system of the first embodiment except that the communication device 200 is replaced with the communication device 200-2 and the communication control device 100 is replaced with the communication control device 100-2. Since it is the same as that of FIG.
- the communication control device 100-2 transmits a group operation command to each communication device 200-2.
- the group operation command includes, for example, set information.
- range information for example, a range of device IDs
- the group operation command may include a group ID for identifying the updated group.
- the set information is information indicating a set including a subtree (for example, the subtree s in FIG. 1) including only leaf nodes belonging to the group (corresponding to the communication device).
- the set information may include, for example, an indexless MKB obtained by removing an index from an MKB from which a communication device associated with a leaf node of a subtree included in the set can derive a group key.
- the indexless MKB is transmitted from the MKB to the communication apparatus 200-2 corresponding to the set information generated so as to include the subtree s, not the entire MKB.
- the set information is configured as information indicating a set including a predetermined number of subtrees (for example, the subtree s in FIG. 1) including only leaf nodes belonging to the group (corresponding to the communication device). May be.
- the range information indicates the range of the index assigned to the leaf node of each subtree included in the set indicated by the set information. Since the index is equal to the device ID of the corresponding communication device as described above, the range of the device ID of the communication device that is the target of the group operation is specified by the range information. Details of the method for generating the set information and the range information are the same as those in the first embodiment.
- the first embodiment it is also possible to determine whether a node key or device key belongs to a group without setting a node key and without using an MKB.
- a method for using a node key or MKB in the first embodiment may be combined.
- FIG. 16 is a block diagram illustrating a configuration example of the communication control apparatus 100-2.
- the communication control apparatus 100-2 includes a group information storage unit 121, an address storage unit 122, a key storage unit 123, a reception unit 101, a generation unit 102-2, and an output unit 103-. 2 is provided.
- the functions of the generation unit 102-2 and the output unit 103-2 are different from those of the first embodiment. Since other configurations and functions are the same as those in FIG. 3 which is a block diagram of the communication control apparatus 100 according to the first embodiment, the same reference numerals are given and description thereof is omitted here.
- the generation unit 102-2 generates information used for group operation. For example, the generation unit 102-2 generates the above-described indexless MKB.
- the generation unit 102-2 generates an MKB by tracing a group management tree having a complete binary tree structure, and removes an index from the MKB.
- the generation unit 102-2 includes a subtree (a subtree of a group management tree) that includes only the leaf nodes identified by the node ID from one of the leftmost leaf node and the rightmost leaf node to the other. Trace processing including processing for obtaining set information indicating When using range information, similarly to the first embodiment, a trace process that further includes a process for obtaining the range information of the index of the leaf node included in the obtained set may be performed.
- the generation unit 102-2 generates an indexless MKB by repeating the process of encrypting the group key with a key (node key) associated with the root node of each subtree. Thereby, the amount of calculation can be O (L) (L is the number of leaf nodes).
- the indexless MKB may be generated as an MKB that does not include an index while tracing a group management tree, or may be generated by generating an MKB including an index and then removing the index from the MKB. Details of the generation processing by the generation unit 102-2 will be described later.
- the output unit 103-2 outputs the set information to the communication device 200-2 associated with at least the leaf node belonging to the group.
- the set information may include key information (indexless MKB) from which the communication device 200-2 associated with the leaf node of the subtree included in the set can derive the group key.
- indexless MKB is expressed, for example, in the form of (AuthEnc (i node key, group key)) as described above.
- the output unit 103-2 multicasts a group operation message including the indexless MKB to the multicast group to which the communication device 200-2 belonging to the group belongs. In this way, by allowing the output of the output unit 103-2 to reach the communication device 200-2 that is not the group change target, the output unit 103-2 determines the output destination as compared with the case where the output is not allowed. Can reduce the calculation cost required.
- the above-mentioned information may be transmitted from the output unit 103-2 to the multicast group including the communication device 200-2 that is included in the group before update but not included in the group after update. Good.
- a communication device 200-2 belongs to the multicast group, but cannot leave the group key from the indexless MKB, and thus leaves the updated group. In this way, a command for ordering to leave a group can be issued using the indexless MKB. By issuing such a command, it is possible to appropriately manage information to be held by the communication device 200-2.
- the output unit 103-2 is a set (group) of communication devices 200-2 managed independently of the group to be subjected to the group operation by the MKB, and at least all the communication devices 200-2 whose groups have been updated.
- the output information is output to the set of communication devices 200-2 including.
- the set of communication devices 200-2 is a set of a plurality of communication devices 200-2 and does not necessarily match a group to which a group ID is allocated.
- a set of communication devices 200-2 a set of communication devices 200-2 that receive data by a certain multicast communication or a set of communication devices 200-2 that receive data by broadcast communication, that is, all communication devices 200. -2 sets.
- the output unit 103-2 may transmit the output information by one or more multicast communication or broadcast communication to a set or group of communication devices 200-2 including the device ID list.
- the output unit 103-2 for example, out of addresses stored in the address storage unit 122, one or more addresses (multicast address) associated with the device ID of the device ID to be distributed ) As the destination.
- FIG. 17 is a block diagram illustrating a configuration example of the communication device 200-2.
- the communication device 200-2 includes a GID storage unit 221, a group key storage unit 222, a device key storage unit 223, a device ID storage unit 224, a reception unit 201-2, and a determination unit. 202, an MKB processing unit 203-2, and a group control unit 204.
- the group key storage unit 222 and the device key storage unit 223 need not be provided.
- the functions of the receiving unit 201-2 and the MKB processing unit 203-2 are different from those in the first embodiment.
- FIG. 4 is a block diagram of the communication apparatus 200 according to the first embodiment, and thus the same reference numerals are given and description thereof is omitted here.
- the receiving unit 201-2 receives various types of information from external devices such as the communication control device 100-2 and the other communication device 200-2. For example, the receiving unit 201-2 receives a group operation message from the communication control apparatus 100-2. The receiving unit 201-2 receives output information through multicast communication, broadcast communication, or the like. The receiving unit 201-2 determines whether the received message is a group operation message. If it is not a group operation message, the received message is passed to another module (not shown) that should process the message and processed. If the message is a group operation message, the message data is sent to the MKB processing unit 203-2.
- the MKB processing unit 203-2 executes indexless MKB processing for generating a group key from the set information (indexless MKB) included in the group operation message and the device key stored in the device key storage unit 223.
- the MKB processing unit 203-2 uses the key of each node recorded in the device key storage unit 223.
- AuthDec node key of node j, AuthEnc (node key of i, group key)
- j is an index assigned to the device key recorded in the device key storage unit 223.
- AuthDec (node key of node j, AuthEnc (node key of i, group key)) is the result of decrypting the ciphertext AuthEnc (node key of i, group key) using the node key assigned to node j.
- the decryption result is a group key when the node key of j and the node key of i are equal, and an error occurs otherwise.
- the group key is obtained as a result of the indexless MKB process, it means that the communication device 200-2 belongs to the group indicated by GID.
- the MKB processing unit 203-2 sends the GID and the acquired group key to the group control unit 204.
- the MKB processing unit 203-2 sends the GID and a notification that the group key could not be acquired to the group control unit 204.
- Each of the storage units described above can be configured by any commonly used storage medium such as an HDD (Hard Disk Drive), an optical disk, a memory card, and a RAM (Random Access Memory).
- HDD Hard Disk Drive
- optical disk an optical disk
- memory card an optical disk
- RAM Random Access Memory
- the group control unit 204 causes a processing device such as a CPU to execute a program, that is, may be realized by software, may be realized by hardware such as an IC, or software and hardware. May be realized in combination.
- FIG. 18 is a flowchart illustrating an example of a communication control process in the present embodiment.
- the accepting unit 101-2 accepts the complete binary tree T (or the partial tree T 'of the complete binary tree T) and the node ID of the leaf node corresponding to the communication device 200-2 belonging to the group (step S901).
- the device ID of the communication device 200-2 belonging to the group may be received, and the node ID of the leaf node corresponding to the communication device 200-2 with the received device ID may be obtained.
- the generation unit 102-2 executes generation processing for generating set information and range information based on the received complete binary tree T (or subtree T ′) and the node ID (step S902).
- the generation unit 102-2 generates a group operation message including set information and range information.
- the output unit 103-2 outputs a group operation message (step S903).
- step S902 details of the generation processing in step S902 will be described.
- the following information is input and used for the same algorithm as in step S102 of the first embodiment.
- I List of device IDs of communication device 200-2 included in group members T ′: Subtree of complete binary tree T that is a whole tree (root node R of T ′) Number of M: T 'nodes
- S List of nodes included in MKB minr: Lower limit value of node index of leaf node for list
- S maxr Upper limit value of node index of leaf node for list S minr and maxr correspond to range information.
- AuthEnc (i node key, group key) may be calculated and output for each node included in the list S.
- i is an index of each node included in the list S.
- FIG. 19 is a flowchart illustrating an example of group control processing in the present embodiment.
- the receiving unit 201-2 receives a message from an external device such as the communication control device 100-2 (step S1001).
- the receiving unit 201-2 determines whether or not the received message is a group operation message (step S1002). If it is not a group operation message (step S1002: No), the group control process is terminated. As described above, messages other than the group operation message are passed to the module that should process the message and are appropriately processed.
- step S1002 When it is a group operation message (step S1002: Yes), the determination unit 202 determines whether or not the device ID stored in the device ID storage unit 224 is included in the range indicated by the range information in the group operation message. (Step S1003).
- step S1003: No When the device ID is not included in the range indicated by the range information (step S1003: No), the group control process is terminated because it is not subject to the group operation.
- step S1003: Yes the MKB processing unit 203-2 processes the indexless MKB in the group operation message (step S1004).
- the MKB processing unit 203-2 determines whether or not the indexless MKB has been correctly processed (step S1005).
- step S1005: Yes the group control unit 204 stores the GID in the group operation message in the GID storage unit 221 and the group key obtained by the indexless MKB process. (Step S1006). If not correctly processed (step S1005: No), the group control unit 204 deletes the GID in the group operation message from the GID storage unit 221 and deletes the group key from the group key storage unit 222 (step S1007). .
- dynamic group management can be realized while ensuring scalability. Further, since the indexless MKB is transmitted instead of the entire MKB for group management, the communication load can be reduced.
- the range information may be removed from the group operation message. With this configuration, the communication load can be further reduced.
- Modification 4 When the new communication device 200-2 (leaf node) is added to the group, the generation unit 102-2 may execute the generation process again using the node IDs of the leaf nodes belonging to the group after the addition. Good. Further, when the communication device 200-2 (leaf node) leaves the group, the generation unit 102-2 may execute the generation process again using the node IDs of the leaf nodes belonging to the group after deletion. . As a result, dynamic group management can be realized while ensuring scalability.
- the size of the MKB for group operation may become extremely large. Therefore, if the MKB is distributed to the communication network as it is, the communication load may become extremely large.
- a plurality of indexes are removed from the MKB including a plurality of indexes and a plurality of ciphertexts as elements, and instead, a Bloom filter MKB including a plurality of index Bloom filters. Generate and send. However, when the group control method as described above is assumed, even if the Bloom filter MKB is sent, the intended group control may not be performed.
- the communication device when a plurality of ciphertexts including MKB as elements are generated by general common key encryption, and the communication device receives the Bloom filter MKB, the communication corresponding to the index detected by the Bloom filter Even if an attempt is made to decrypt each ciphertext included in the MKB using the device key held by the apparatus, the group key cannot always be acquired correctly. This is because a general common key encryption decryption function returns an incorrect decryption result when the key used for encryption and the key used for decryption are different, but it indicates that this is an invalid decryption result. This is because there is no way to judge. Therefore, when an incorrect index is detected by a false positive in the Bloom filter, the communication device performs a process of belonging to a group that is not intended by the communication control device or a process of leaving the group.
- the cipher text included as an element in the Bloom filter MKB is generated by using an authenticated cipher.
- the authenticated cipher is a common key cipher having a function for specifying that the result of an illegal decryption is different when the key used for the encryption is different from the key used for the decryption.
- Typical ciphers with authentication include AES-CCM and AES-GCM, and various known techniques already exist. For example, when receiving the Bloom filter MKB, the communication apparatus tries to decrypt the ciphertext included in the Bloom filter MKB using each of a plurality of device keys held by the Bloom filter.
- the communication apparatus updates the information of the participating group using the derived group key. If any one of the ciphertexts is successfully decrypted and has not joined the group, the communication apparatus joins the group using the derived group key. If all the decryption processes fail to acquire the group key and if the group joins the group, the communication device leaves the group.
- the communication device is ordered to belong to the group or ordered to leave by attempting to decrypt using the device key held by the communication device detected by the Bloom filter. Check whether or not Thereby, the intended group operation can be performed also by the Bloom filter MKB.
- the structure of the group management tree used for the processing of the Bloom filter MKB used in this embodiment is the same as that of the first embodiment.
- each communication device has a unique device ID in the target system, and each leaf node of the complete binary tree T corresponds to one communication device.
- the Bloom filter MKB generated from the group management tree includes, for example, the following elements. (Bloom filter of index of node i, AuthEnc (node key of i, group key))
- Kg represents a group key.
- AuthEnc (k (000), Kg) represents data obtained by encrypting Kg with k (000). (000, AuthEnc (k (000), Kg), (010, AuthEnc (k (010), Kg), (10, AuthEnc (k (10), Kg), (110, AuthEnc (k (110), Kg )
- the Bloom filter MKB corresponding to these MKBs is as follows. (Bloom filter generated from (000, 010, 10, 110), AuthEnc (k (000), Kg), AuthEnc (k (010), Kg), AuthEnc (k (10), Kg), AuthEnc (k ( 110), Kg)
- an MKB having a structure including such a Bloom filter instead of such an index is transmitted to the communication device by multicast communication or broadcast communication.
- the communication system according to the present embodiment includes a communication device 200-3 and a communication control device 100-3.
- the configuration of the communication system of the present embodiment is the same as that of the communication system of the first embodiment except that the communication device 200 is replaced with the communication device 200-3 and the communication control device 100 is replaced with the communication control device 100-3. Since it is the same as that, description is abbreviate
- the communication control device 100-3 transmits a group operation command to each communication device 200-3.
- the group operation command includes, for example, set information.
- range information for example, a range of device IDs
- the group operation command may include a group ID for identifying the updated group.
- the set information is information indicating a set including a subtree (for example, the subtree s in FIG. 1) including only leaf nodes belonging to the group (corresponding to the communication device).
- the set information may include, for example, a Bloom filter MKB in which an index is removed from the MKB from which a communication device associated with a leaf node of a subtree included in the set can derive a group key, and a Bloom filter of the index is added.
- the Bloom filter MKB corresponding to the set information generated so as to include the subtree s is transmitted to the communication device 200-3 instead of the entire MKB.
- the set information is configured as information indicating a set including a predetermined number of subtrees (for example, the subtree s in FIG. 1) including only leaf nodes belonging to the group (corresponding to the communication device). May be.
- the range information indicates the range of the index assigned to the leaf node of each subtree included in the set indicated by the set information. Since the index is equal to the device ID of the corresponding communication device as described above, the range of the device ID of the communication device that is the target of the group operation is specified by the range information. Details of the method for generating the set information and the range information are the same as those in the first embodiment.
- the first embodiment it is also possible to determine whether a node key or device key belongs to a group without setting a node key and without using an MKB.
- the Bloom filter MKB including the node key since the Bloom filter MKB including the node key is used, the method for using the node key or MKB in the first embodiment may be combined.
- FIG. 20 is a block diagram illustrating a configuration example of the communication control apparatus 100-3.
- the communication control apparatus 100-3 includes a group information storage unit 121, an address storage unit 122, a key storage unit 123, a reception unit 101, a generation unit 102-3, and an output unit 103-. 3.
- the functions of the generation unit 102-3 and the output unit 103-3 are different from those in the first embodiment. Since other configurations and functions are the same as those in FIG. 3 which is a block diagram of the communication control apparatus 100 according to the first embodiment, the same reference numerals are given and description thereof is omitted here.
- the generation unit 102-3 generates information used for group operation. For example, the generation unit 102-3 generates a Bloom filter MKB.
- the generation unit 102-3 traces a group management tree having a complete binary tree structure to generate an MKB, derives a Bloom filter from an index attached to the MKB, removes the index, and attaches a Bloom filter instead.
- the generation unit 102-3 includes a subtree (a subtree of a group management tree) that includes only the leaf nodes identified by the node ID from one of the leftmost leaf node and the rightmost leaf node to the other.
- Trace processing including processing for obtaining set information indicating
- a trace process that further includes a process for obtaining the range information of the index of the leaf node included in the obtained set may be performed.
- the generation unit 102-3 repeats the process of encrypting the group key with the key (node key) associated with the root node of each subtree and the process of deriving the bloom filter from the index of the root node of each subtree.
- the Bloom filter MKB is generated.
- the amount of calculation can be O (L) (L is the number of leaf nodes). Details of the generation processing by the generation unit 102-3 will be described later.
- the output unit 103-3 outputs the set information to the communication device 200-3 associated with at least the leaf node belonging to the group.
- the set information may include key information (bloom filter MKB) from which the communication device 200-3 associated with the leaf node of the subtree included in the set can derive the group key.
- the Bloom filter MKB is represented, for example, in the form of (a Bloom filter of an index, a list of AuthEnc (i node key, group key)) as described above.
- the output unit 103-3 transmits the group operation message including the Bloom filter MKB by multicast to the multicast group to which the communication device 200-3 belonging to the group belongs. In this way, by allowing the output of the output unit 103-3 to reach the communication device 200-3 that is not the group change target, the output unit 103-3 determines the output destination as compared with the case where the output is not allowed. Can reduce the calculation cost required.
- the above-mentioned information may be transmitted from the output unit 103-3 to the multicast group including the communication device 200-3 that is included in the group before update but not included in the group after update. Good.
- a communication device 200-3 belongs to the multicast group, but does not derive the group key from the Bloom filter MKB, and therefore leaves the updated group. In this way, a command for ordering to leave the group can be issued using the Bloom filter MKB. By issuing such a command, it is possible to appropriately manage information to be held by the communication device 200-3.
- the output unit 103-3 is a set (group) of communication devices 200-3 managed independently of the group to be subjected to the group operation by the Bloom filter MKB, and at least all the communication devices 200 whose groups have been updated. Output information is output to a set of communication devices 200-3 including -3.
- the set of communication devices 200-3 is a set of a plurality of communication devices 200-3 and does not necessarily match a group to which a group ID is allocated.
- a set of communication devices 200-3 that receive data by a certain multicast communication or a set of communication devices 200-3 that receive data by a broadcast communication, that is, all communication devices 200. -3, etc.
- the output unit 103-3 may transmit the output information by one or more multicast communication or broadcast communication to a set or group of communication devices 200-3 including the device ID list.
- the output unit 103-3 for example, among the addresses stored in the address storage unit 122, one or more addresses (multicast address) associated with the device ID of the distribution target device ID ) As the destination.
- FIG. 21 is a block diagram illustrating a configuration example of the communication device 200-3.
- the communication device 200-3 includes a GID storage unit 221, a group key storage unit 222, a device key storage unit 223, a device ID storage unit 224, a reception unit 201-3, and a determination unit. 202, an MKB processing unit 203-3, and a group control unit 204.
- the group key storage unit 222 and the device key storage unit 223 may not be provided.
- the functions of the receiving unit 201-3 and the MKB processing unit 203-3 are different from those in the first embodiment.
- FIG. 4 is a block diagram of the communication apparatus 200 according to the first embodiment, and thus the same reference numerals are given and description thereof is omitted here.
- the receiving unit 201-3 receives various types of information from external devices such as the communication control device 100-3 and the other communication device 200-3. For example, the receiving unit 201-3 receives a group operation message from the communication control apparatus 100-3. The receiving unit 201-3 receives output information through multicast communication, broadcast communication, or the like. The receiving unit 201-3 determines whether the received message is a group operation message. If it is not a group operation message, the received message is passed to another module (not shown) that should process the message and processed. If the message is a group operation message, the message data is sent to the MKB processing unit 203-3.
- the MKB processing unit 203-3 executes a Bloom filter MKB process for generating a group key from the set information (bloom filter MKB) included in the group operation message and the device key stored in the device key storage unit 223.
- the MKB processing unit 203-3 is recorded in the device key storage unit 223.
- the index of each node is checked with a Bloom filter, and the detected index is searched. If an index is detected, the MKB processing unit 203-3 executes AuthDec (detected node key, AuthEnc (i node key, group key)) with the node key specified by the detected index. If decryption is successful, this is used as the group key.
- AuthDec (detected node key, AuthEnc (i node key, group key)) represents the result of decrypting the ciphertext AuthEnc (i node key, group key) using the detected node key.
- the decryption result is a group key when the detected node key is equal to the node key of i, and an error occurs otherwise.
- the group key is obtained as a result of the Bloom filter MKB process, it means that the communication device 200-3 belongs to the group indicated by GID.
- the MKB processing unit 203-3 sends the GID and the acquired group key to the group control unit 204.
- the MKB processing unit 203-3 sends the GID and a notification that the group key could not be acquired to the group control unit 204.
- Each of the storage units described above can be configured by any commonly used storage medium such as an HDD (Hard Disk Drive), an optical disk, a memory card, and a RAM (Random Access Memory).
- HDD Hard Disk Drive
- optical disk an optical disk
- memory card an optical disk
- RAM Random Access Memory
- the group control unit 204 causes a processing device such as a CPU to execute a program, that is, may be realized by software, may be realized by hardware such as an IC, or software and hardware are used in combination. May be realized.
- FIG. 22 is a flowchart illustrating an example of a communication control process in the present embodiment.
- the accepting unit 101 accepts the complete binary tree T (or the partial tree T ′ of the complete binary tree T) and the node ID of the leaf node corresponding to the communication device 200-3 belonging to the group (step S1101).
- the device ID of the communication device 200-3 belonging to the group may be received, and the node ID of the leaf node corresponding to the communication device 200-3 having the received device ID may be obtained.
- the generation unit 102-3 executes a generation process for generating set information and range information based on the received complete binary tree T (or subtree T ′) and the node ID (step S1102).
- the generation unit 102-3 generates a group operation message including set information and range information.
- the output unit 103-3 outputs a group operation message (step S1103).
- step S1102 details of the generation process in step S1102 will be described.
- the following information is input and used for the same algorithm as in step S102 of the first embodiment.
- I List of device IDs of the communication device 200-3 included in the group member T ′: a subtree of the complete binary tree T that is a whole tree (root node R of T ′)
- Number of M T 'nodes
- S List of nodes included in Bloom filter MKB minr: Lower limit of node index of leaf node for list S maxr: Upper limit of node index of leaf node for list S minr and maxr correspond to range information.
- a Bloom filter is calculated from the indexes of all the nodes included in the list S, and AuthEnc (i node key, group key is calculated for each node included in the list S. ) Is calculated and output.
- i is an index of each node included in the list S.
- the present embodiment it is possible to delete the MKB index from the set information and apply the index Bloom filter. As a result, information to be transmitted can be reduced as compared with a method of transmitting all MKBs, for example.
- FIG. 23 is a flowchart illustrating an example of group control processing in the present embodiment.
- the receiving unit 201-3 receives a message from an external device such as the communication control device 100-3 (step S1201).
- the receiving unit 201-3 determines whether or not the received message is a group operation message (step S1202). If it is not a group operation message (step S1202: No), the group control process is terminated. As described above, messages other than the group operation message are passed to the module that should process the message and are appropriately processed.
- step S1202 When it is a group operation message (step S1202: Yes), the determination unit 202 determines whether or not the device ID stored in the device ID storage unit 224 is included in the range indicated by the range information in the group operation message. (Step S1203).
- step S1203: No When the device ID is not included in the range indicated by the range information (step S1203: No), the group control process is terminated because it is out of the group operation target.
- step S1203: Yes the MKB processing unit 203-3 processes the MKB with the Bloom filter in the group operation message (step S1204).
- the MKB processing unit 203-3 determines whether or not the MKB with the Bloom filter has been correctly processed (step S1205).
- step S1205: Yes the group control unit 204 stores the GID in the group operation message in the GID storage unit 221 and the group key obtained by the Bloom filter MKB process. (Step S1206). If not correctly processed (step S1205: No), the group control unit 204 deletes the GID in the group operation message from the GID storage unit 221 and deletes the group key from the group key storage unit 222 (step S1207). .
- dynamic group management can be realized while ensuring scalability. Further, since the Bloom filter MKB is transmitted instead of the entire MKB for group management, the communication load can be reduced.
- the range information may be removed from the group operation message. With this configuration, the communication load can be further reduced.
- the Bloom filter included in the aggregate information may be calculated from the node keys specified by all the node indexes included in the list S.
- the generation unit 102-3 generates a Bloom filter from the node key specified by the index instead of the MKB index, and generates a Bloom filter MKB with the Bloom filter.
- the MKB processing unit 203-3 has each recorded in the device key storage unit 223.
- the node key is inspected with a Bloom filter, and the detected node key is searched. If a detected key is found, AuthDec (detected node key, AuthEnc (i node key, group key)) is executed, and if decryption is successful, it is set as a group key.
- Modification 7 When the new communication device 200-3 (leaf node) is added to the group, the generation unit 102-3 may execute the generation process again using the node ID of the leaf node belonging to the group after the addition. Good. Further, when the communication device 200-3 (leaf node) leaves the group, the generation unit 102-3 may execute the generation process again using the node IDs of the leaf nodes belonging to the group after deletion. . As a result, dynamic group management can be realized while ensuring scalability.
- FIG. 24 is an explanatory diagram illustrating a hardware configuration of the communication control apparatus according to the present embodiment.
- the communication control device communicates with a control device such as a CPU (Central Processing Unit) 51 and a storage device such as a ROM (Read Only Memory) 52 and a RAM (Random Access Memory) 53 connected to a network.
- a control device such as a CPU (Central Processing Unit) 51 and a storage device such as a ROM (Read Only Memory) 52 and a RAM (Random Access Memory) 53 connected to a network.
- the program executed by the device (communication control device, communication device) according to the present embodiment is provided by being incorporated in advance in the ROM 52 or the like.
- the program executed by the apparatus according to the present embodiment is a file in an installable format or an executable format, and is a CD-ROM (Compact Disk Read Only Memory), a flexible disk (FD), a CD-R (Compact Disk Recordable).
- the program may be recorded on a computer-readable recording medium such as a DVD (Digital Versatile Disk) and provided as a computer program product.
- the program executed by the apparatus according to the present embodiment may be provided by storing it on a computer connected to a network such as the Internet and downloading it via the network.
- the program executed by the apparatus according to the present embodiment may be provided or distributed via a network such as the Internet.
- the program executed by the apparatus according to the present embodiment can cause the computer to function as each unit described above.
- the CPU 51 can read a program from a computer-readable storage medium onto a main storage device and execute the program.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
通信制御装置は、受付部と、生成部と、出力部と、を備える。受付部は、葉ノードそれぞれにインデックスおよびノード鍵が割り当てられた二分木と、葉ノードのうちグループに属する葉ノードを識別するノードIDと、の入力を受け付ける。生成部は、ノードIDで識別される葉ノードのみをそれぞれ含む二分木の部分木の根ノードに割り当てられたノード鍵を用いてグループ鍵を暗号化した暗号文を生成し、生成した暗号文を含む集合情報を生成する。出力部は、集合情報を、少なくともグループに属する葉ノードに対応づけられる通信装置に対して出力する。
Description
本発明の実施形態は、通信制御装置、通信制御方法およびプログラムに関する。
ネットワークで接続された多数の機器の管理を効率的に行うために、機器をグループで管理する方法が存在する。グループによる管理法には、予め決められたグループ構造を利用する静的な管理法と、状況に応じてグループを生成および削除する動的な管理法が存在する。
M. Baugher et al.、 "RFC 3547、 The Group Domain of Interpretation"、 [online]、 July 2003、 retrieved from the Internet: <URL: http://www.ietf.org/rfc/rfc3547.txt>
しかしながら、動的なグループ管理方法は、状況に応じて柔軟な管理が可能であるが、スケーラビリティの確保が課題となる。
本発明は、上記に鑑みてなされたものであって、スケーラビリティを確保しながら動的なグループ管理を実現できる通信制御装置、通信制御方法およびプログラムを提供することを目的とする。
実施形態の通信制御装置は、受付部と、生成部と、出力部と、を備える。受付部は、葉ノードそれぞれにインデックスおよびノード鍵が割り当てられた二分木と、葉ノードのうちグループに属する葉ノードを識別するノードIDと、の入力を受け付ける。生成部は、ノードIDで識別される葉ノードのみをそれぞれ含む二分木の部分木の根ノードに割り当てられたノード鍵を用いてグループ鍵を暗号化した暗号文を生成し、生成した暗号文を含む集合情報を生成する。出力部は、集合情報を、少なくともグループに属する葉ノードに対応づけられる通信装置に対して出力する。
以下に添付図面を参照して、この発明にかかる通信制御装置の好適な実施形態を詳細に説明する。
(第1の実施形態)
GDOI(The Group Domain of Interpretation)は、マルチキャストを用いて、グループメンバの参加と離脱、および、グループ鍵の安全な配布を行うための技術である。GDOIでは、グループの作成、グループの更新、および、グループ鍵の配布を行うことができる。しかし、GDOIでは、グループメンバの更新ごとに、ほとんどすべてのメンバにおいて、階層構造を持つ鍵情報(LKH_DOWNLOAD_ARRAY)が更新される。そのため、1つの通信装置が複数のグループに所属するような場合には、単一の通信装置が複数のLKH_DOWNLOAD_ARRAYを持つことが必要となり、効率的な管理を行うことが困難である。
GDOI(The Group Domain of Interpretation)は、マルチキャストを用いて、グループメンバの参加と離脱、および、グループ鍵の安全な配布を行うための技術である。GDOIでは、グループの作成、グループの更新、および、グループ鍵の配布を行うことができる。しかし、GDOIでは、グループメンバの更新ごとに、ほとんどすべてのメンバにおいて、階層構造を持つ鍵情報(LKH_DOWNLOAD_ARRAY)が更新される。そのため、1つの通信装置が複数のグループに所属するような場合には、単一の通信装置が複数のLKH_DOWNLOAD_ARRAYを持つことが必要となり、効率的な管理を行うことが困難である。
そこで、本実施形態では、MKB(メディアキーブロック)という技術を用いてグループ操作を行う。MKBを用いることにより、単一のデバイス鍵(LKH_DOWNLOAD_ARRAYに相当する鍵束)によって、複数グループへの所属を効率的に管理することが可能である。
例えば、グループ管理木(詳細は後述)を用いることにより、グループに属する通信装置の範囲を示す範囲情報、および、この範囲情報で示される範囲の通信装置が処理できるMKB(MKBフラグメント)が得られる。なお、MKBを用いなくてもグループに属するかを管理(判定)することは可能である。例えば、グループ管理木から生成される集合情報(詳細は後述)と範囲情報とが得られれば、グループに属するか否かを判定できる。この場合は、MKB(MKBフラグメント)は生成しなくてもよい。
MKBとは、対応するデバイス鍵を用いて処理を行うことで、メディアに記録されたコンテンツを復号するためのメディア鍵を導出可能なデータである。MKBは1以上の要素を含む。典型的なMKBは、1つのメディア鍵を1以上のデバイス鍵でそれぞれ暗号化することで生成される1以上の暗号文(要素)を含む。さらに、MKBは、各暗号文を処理するためのデバイス鍵を特定する情報を含んでも良い。MKBが含む暗号文の個数は、対応するデバイス鍵に依存して決まる。そのため、対応するデバイス鍵によっては、MKBは、非常に多くの暗号文を要素として含む場合がある。
本実施形態では、MKBを処理することで得られるメディア鍵を、グループに属する1以上の通信装置で共有されるグループ鍵として用いる。すなわち、グループに属する通信装置が保持するデバイス鍵で処理することでグループ鍵を導出できるMKBを配布する。このように、グループに属する通信装置にのみグループ鍵を配布できることを用いて、通信装置のグループ管理を実現している。メディア鍵をグループ鍵として用いるため、MKBの代わりにGKB(グループキーブロック)と表現することもできる。
MKBによってグループ管理(操作)を行う場合、あるMKBを処理してグループ鍵を取り出すことができたメンバはグループに所属する(現在所属していなければ、グループに新規参加する)という制御が行われる。また、グループ鍵の取得に失敗したメンバは当該グループに所属しない(現在所属していれば、グループから離脱する)という制御が行われる。
しかし、対象となるメンバの数が非常に大きくなった場合、グループ操作用のMKBのサイズが極めて大きくなる可能性がある。従って、そのままMKBを通信ネットワークに配布した場合、通信負荷が極めて大きくなる可能性がある。
そこで、本実施形態では、ネットワーク負荷を軽減するために、複数の暗号文を要素として含むMKBを分割して送付する。しかし、上記のようなグループ制御方法を前提とする場合、単純に暗号文ごとにMKBを分割送付しても、意図した通りのグループ制御を行うことができない場合がある。例えば、通信装置が分割されたMKBを受信して、かつ、当該MKBからグループ鍵を取得できなかった場合、当該通信装置はグループからの離脱処理を行う。しかし、実際には、当該通信装置が処理してグループ鍵を取得することができるようなMKBが後から到着する可能性があるからである。
この問題を回避するため、MKBによるグループ操作の対象となる通信装置の集合を定める情報を、当該MKBに付す。例えば、対象となる通信装置を識別する装置ID(以下、デバイスIDという)の範囲を、通信装置の集合を定める情報として利用できる。例えば、数値的に連続したデバイスIDが割り振られている場合、第1のデバイスIDと第2のデバイスIDで、第1のデバイスIDと第2のデバイスIDで特定される範囲に属するデバイスIDの集合を表すことができる。この集合には、第1のデバイスID以上、かつ、第2のデバイスID以下であるデバイスIDが属する。規則に従ってデバイスIDが割り振られていれば、上述のように、2つのデバイスIDで範囲を表し、その規則より範囲に含まれるデバイスIDを特定することや、デバイスIDがその範囲に含まれるか否かを判定することができる。通信装置の範囲を定める情報が付されたMKBを受け取った通信装置は、以下の擬似コードに示すような動作を行う。
当該通信装置自身が指定範囲に含まれているか否かチェックする;
if(集合に含まれている){
MKBを処理;
if(グループ鍵取得成功){
if(現在グループに所属){
グループ更新;
}
else{ if(現在グループに所属していない){
グループに参加;
}
}
else{
if(現在グループに所属){
グループ離脱;
}
}
}
当該通信装置自身が指定範囲に含まれているか否かチェックする;
if(集合に含まれている){
MKBを処理;
if(グループ鍵取得成功){
if(現在グループに所属){
グループ更新;
}
else{ if(現在グループに所属していない){
グループに参加;
}
}
else{
if(現在グループに所属){
グループ離脱;
}
}
}
当該通信装置自身が指定された集合(範囲)に含まれているか否かチェックする。もし、指定された集合に含まれているならば、当該通信装置が保持しているデバイス鍵によりMKBを処理し、グループ鍵の取得に成功し、かつ、グループに参加しているならば、導出したグループ鍵を用いて、参加しているグループの情報を更新する。グループ鍵の取得に成功し、かつ、グループに参加していないならば、導出したグループ鍵を用いて、グループに参加する。グループ鍵の取得に失敗し、かつ、グループに参加しているならば、グループより離脱する。
このように、本実施形態では、最初に通信装置がグループ操作の対象装置であるか否かをチェックする。そして、自身がグループ操作の対象ではない場合、グループ操作を実行しない。これにより、分割されたMKBによっても、意図しないグループ離脱動作が起きないようにすることができる。
次に、本実施形態で用いるMKBの構造について説明する。図1は、本実施形態で用いるMKBで使用されるグループ管理木の構造の一例を示す図である。図1に示すように、本実施形態では、CS(Complete Subtree)法に従う完全二分木構造のグループ管理木が用いられる。この完全二分木は、例えば対象システムのすべての通信装置をカバーする木(完全二分木Tとする)でもよいし、対象システムのすべての通信装置のうち、一部の通信装置(例えばグループ操作の対象となる通信装置)の集合のみをカバーする木(完全二分木Tの部分木T’とする)であってもよい。以下、図1では完全二分木Tが用いられるものとして説明する。
上述のように、各通信装置は、対象システムで一意なデバイスIDを持つ。完全二分木Tの葉ノードは、それぞれ1つの通信装置に対応する。従って、通信装置をグループで管理することは、葉ノードをグループで管理することに置き換えられる。
葉ノードは、対応する通信装置のデバイスIDと等しいインデックスを持つ。破線の丸で示す葉ノードは、リボーク(グループから離脱)されたノード(リボークノード)を表す。太線は、ルート(根)からリボークノードまでのパス上のエッジを表す。三角形は、リボークされていない葉ノードのみを含む部分木(部分木s)を表す。塗りつぶされたノードは、この部分木sの根ノードを表す。
完全二分木Tの各ノードには、異なる暗号鍵(ノード鍵)が割り当てられるかもしれない。各通信装置は、完全二分木Tの根ノードから対応する葉ノードに至るパス上の各ノードに割り当てられたノード鍵を含むデバイス鍵が予め設定されるかもしれない。
なお、ノード鍵の割り当て、および、デバイス鍵の設定は行わなくてもよい。例えば、上述のようにMKBを用いずにグループを管理する場合は、MKBを生成する必要はないため、ノード鍵の割り当ておよびデバイス鍵の設定は不要となる。
また、各ノードには、少なくともノードを識別する情報(ノードID)が属性として割り当てられる。ノードIDは、例えば、(d(ノードの深さ),b(ビットマップ))で表される。ノードnの深さdは(HT-Hn)で表される。ノードnは、完全二分木Tに含まれる各ノードである。HTは完全部分木Tの高さ、Hnはノードnの高さである。ノードID(d,b)で識別されるノードのインデックスindex(b,d)は、ビットマップbの先頭dビットの値で表される。
ビットマップbは、例えば図1に示すように「0」または「1」を1以上含む値である。図1で示すインデックスは、完全二分木Tの根ノードから葉ノードまでの経路について、左に進んだ場合に0を割り当て、右に進んだ場合に1を割り当てることで得られる。
グループ管理木から生成されるMKBは、例えば以下の要素を含む。iは部分木sのルートノードである。
(ノードiのインデックス,Enc(iのノード鍵,グループ鍵))
(ノードiのインデックス,Enc(iのノード鍵,グループ鍵))
図1のグループ管理木の例では、次の4つの要素を含むMKBが生成される。これらは、ノード000、010、10、110にそれぞれ対応する。ただし、Kgはグループ鍵を表し、例えばEnc(k(000),Kg)はKgをk(000)で暗号化したデータを表す。
(000,Enc(k(000)、Kg),(010,Enc(k(010)、Kg),(10,Enc(k(10)、Kg),(110,Enc(k(110)、Kg)
(000,Enc(k(000)、Kg),(010,Enc(k(010)、Kg),(10,Enc(k(10)、Kg),(110,Enc(k(110)、Kg)
本実施形態では、このような構造のMKBが、それぞれ一部の要素を含む複数のMKB(MKBフラグメント)に分割され、分割されたMKBフラグメントが通信装置に対してマルチキャスト通信またはブロードキャスト通信などにより送信される。
以下、本実施形態の詳細について説明する。図2は、本実施形態にかかる通信システムの構成の一例を示すブロック図である。図2に示すように、本実施形態の通信システムは、通信装置200a~200fと、通信制御装置100とが、ネットワーク60で接続された構成となっている。ネットワーク60は、インターネットなどのあらゆるネットワーク形態を適用できる。各通信装置200a~200fは、通信制御装置100と直接接続されている必要はない。
通信制御装置100は、1つに限られるものではなく、2以上の通信制御装置を備えるように構成してもよい。通信装置200a~200fは同様の構成を備えるため、以下では単に通信装置200という場合がある。通信装置200の個数は6に限られるものではない。
図2に示すように、本実施形態では、通信制御装置100が、各通信装置200に対してグループ操作コマンドを送信する。グループ操作コマンドは、例えば、集合情報、および、範囲情報(例えばデバイスIDの範囲)を含む。グループ操作コマンドが、更新後のグループを識別するグループIDを含んでもよい。
集合情報は、グループに属する(通信装置に対応する)葉ノードのみを含む部分木(例えば図1の部分木s)を所定数含む集合を示す情報である。集合情報は、例えば、集合に含まれる部分木の葉ノードに対応づけられる通信装置がグループ鍵を導出できるように分割されたMKB(MKBフラグメント)を含んでもよい。このように、本実施形態では、MKB全体ではなく、所定数ごとに部分木sを含むように生成される集合情報に対応して分割されたMKBフラグメントを通信装置200に送信する。
範囲情報は、集合情報が示す集合に含まれる各部分木の葉ノードに割り当てられたインデックスの範囲を示す。上述のようにインデックスは対応する通信装置のデバイスIDと等しいため、範囲情報によってグループ操作の対象となる通信装置のデバイスIDの範囲が特定される。集合情報および範囲情報の生成方法の詳細は後述する。
図3は、通信制御装置100の構成例を表すブロック図である。図3に示すように、通信制御装置100は、グループ情報記憶部121と、アドレス記憶部122と、鍵記憶部123と、受付部101と、生成部102と、出力部103と、を備える。
グループ情報記憶部121は、1以上の通信装置200が所属するグループのグループIDと、グループIDで識別されるグループに属する通信装置200を識別するデバイスIDとを含むグループ情報を記憶する。つまり、グループ情報記憶部121は、グループIDと、グループIDで識別されるグループに属する通信装置200のデバイスIDとを対応付けて記憶する。
本実施形態では、グループ情報記憶部121は、予め、1以上のグループIDを記憶しているとするが、グループ情報記憶部121を備えず、外部装置より受け取ったグループ情報に基づき、グループ操作を行うようにしてもよい。
アドレス記憶部122は、1以上の通信装置200が所属するマルチキャストグループを特定する情報(マルチキャストグループID、マルチキャストアドレスなど)と、マルチキャストグループに属する通信装置200のデバイスIDとを対応づけて記憶する。マルチキャストグループは、MKBによるグループ操作の対象となるグループと独立に管理されるグループの一例である。マルチキャストアドレスは、例えば、対応する各デバイスIDの通信装置200に対してマルチキャスト通信で情報を送信するためのアドレスである。マルチキャスト通信を用いない場合(例えばブロードキャスト通信を用いる場合)、アドレス記憶部122を備えないように構成してもよい。
本実施形態では、アドレス記憶部122は、予めマルチキャストグループを特定する情報を記憶しているとするが、外部装置より受け取った情報に基づき、アドレス記憶部122に新たな情報を追加したり、既に記憶されている情報の更新を行ったりするように構成しても良い。
鍵記憶部123は、通信装置200それぞれに割り当てられるデバイス鍵を記憶する。MKBがCS法などにより生成される場合、鍵記憶部123が、木構造のノードに対応づけてデバイス鍵を記憶してもよい。上述のようにMKBを用いずにグループの管理のみを行う場合は、鍵記憶部123は備えなくてもよい。
受付部101は、通信制御装置100で用いる各種情報の入力を受け付ける。例えば、受付部101は、通信装置200などの外部装置から各種情報を受信する。受付部101は、例えば、グループ制御の要求、および、グループ制御の対象を指定する情報などを受信する。グループ制御の要求とは、グループの新規作成、グループの変更(グループに属する通信装置200の変更など)などの要求である。例えば、キーボードなどの操作部(図示せず)を用いてオペレータが入力した、操作対象となるグループのグループIDと、当該グループに入れるべき通信装置200のデバイスIDとを、受付部101が受信するように構成してもよい。なお、外部装置からグループ制御の要求を受信した場合のみでなく、通信制御装置100内でグループ制御の要否を判断し、必要と判断した場合にグループ制御を実行してもよい。
また、受付部101は、処理対象とする完全二分木構造のグループ管理木(全体木である完全二分木Tでもよいし、完全二分木Tの部分木T’であってもよい)、および、グループに属する通信装置200に対応する葉ノードのノードIDの入力を受け付ける。葉ノードは通信装置200のいずれかと対応するため、グループに属する通信装置200のデバイスIDの入力を受け付けてもよい。受付部101は、入力されたデバイスIDの通信装置200に対応する葉ノードのノードIDを得ることができる。受付部101は、完全二分木構造のグループ管理木、ノードID、グループ制御の要求、および、グループ制御の対象を指定する情報(入力情報)を生成部102に送る。
生成部102は、グループ操作に用いる情報を生成する。例えば生成部102は、上述の集合情報と範囲情報とを生成する。生成部102は、完全二分木構造のグループ管理木をトレースし、集合情報を算出しながら範囲情報を生成する。例えば生成部102は、左端の葉ノードおよび右端の葉ノードの一方から他方に向かって、ノードIDで識別される葉ノードのみをそれぞれ含む部分木(グループ管理木の部分木)を所定数(M(自然数))含む集合を示す集合情報を求める処理と、求めた集合に含まれる葉ノードのインデックスの範囲情報を求める処理と、を含むトレース処理を繰り返す。これにより、計算量をO(L)(Lは葉ノードの個数)とすることができる。生成部102による生成処理の詳細は後述する。
出力部103は、集合情報と、範囲情報とを、少なくともグループに属する葉ノードに対応づけられる通信装置200に対して出力する。上述のように、集合情報は、集合に含まれる部分木の葉ノードに対応づけられる通信装置200がグループ鍵を導出可能な鍵情報(MKBフラグメント)を含んでもよい。MKBフラグメントは、例えば上述のように(ノードiのインデックス,Enc(iのノード鍵,グループ鍵))の形式で表される。
例えば、出力部103は、集合情報と範囲情報とを含むグループ操作メッセージを、グループに属する通信装置200が属するマルチキャストグループ宛にマルチキャストで送信する。このようにグループ変更の対象ではない通信装置200にも出力部103の出力が届くことを許容することで、許容しない場合と比較して、出力部103による出力先の決定に要する計算コストを軽減できる。
また、出力部103より、更新前のグループには含まれるが、更新後のグループには含まれない通信装置200が含まれるマルチキャストグループに、上述の情報を送信するようにしてもよい。そのような通信装置200は、マルチキャストグループに属しているが、MKBを正しく処理できないため、更新後のグループから離脱を行う。このように、分割したMKBを用いて、グループの離脱を命じるコマンドを発行することができる。このようなコマンドを発行することで、通信装置200が保持すべき情報を適切に管理することができる。
また、更新後のグループに含まれない通信装置200に、上述のような、離脱を命じるコマンドを送付しなくても良い。これは、更新後のグループに含まれない通信装置200は、更新を命じるコマンドより、更新後のグループ鍵を導出できないため、更新後のグループには参加できないためである。このように構成することで、通信制御装置100が発行すべきコマンドの量を削減できる場合がある。
出力部103は、MKBによるグループ操作の対象となるグループとは独立に管理される通信装置200の集合(グループ)であって、少なくともグループが更新されたすべての通信装置200を含む通信装置200の集合に対して出力情報を出力する。ここで、通信装置200の集合とは、複数の通信装置200からなる集まりであって、グループIDが割り振られているグループとは必ずしも一致しない。通信装置200の集合の例として、あるマルチキャスト通信でデータを受信する通信装置200の集合や、ブロードキャスト通信でデータを受信する通信装置200からなる集合、つまりすべての通信装置200からなる集合、などが挙げられる。例えば、出力部103は、デバイスIDリストが含まれる通信装置200の集合、または、グループに対して、1以上のマルチキャスト通信やブロードキャスト通信により出力情報を送信してもよい。マルチキャスト通信で出力情報を送信する場合、出力部103は、例えばアドレス記憶部122に記憶されたアドレスのうち、配布対象のデバイスIDのデバイスIDに対応づけられた1以上のアドレス(マルチキャストアドレス)を宛先として、出力情報を送信する。
図4は、通信装置200の構成例を表すブロック図である。図4に示すように、通信装置200は、GID記憶部221と、グループ鍵記憶部222と、デバイス鍵記憶部223と、デバイスID記憶部224と、受信部201と、判定部202と、MKB処理部203と、グループ制御部204と、を備える。MKBを用いない場合は、グループ鍵記憶部222およびデバイス鍵記憶部223は備えなくてもよい。
GID記憶部221は、通信装置200が属するグループのグループID(GID)を記憶する。グループ鍵記憶部222は、GID記憶部221が記憶するグループIDで識別されるグループのグループ鍵を記憶する。デバイス鍵記憶部223は、通信装置200のデバイス鍵を記憶する。デバイスID記憶部224は、通信装置200のデバイスIDを記憶する。
受信部201は、通信制御装置100および他の通信装置200などの外部装置から各種情報を受信する。例えば、受信部201は、グループ操作メッセージを通信制御装置100から受信する。受信部201は、マルチキャスト通信およびブロードキャスト通信などにより出力情報を受信する。受信部201は、受信されたメッセージがグループ操作メッセージであるか判定する。グループ操作メッセージでない場合、受信されたメッセージは、当該メッセージを処理すべき他のモジュール(図示せず)に渡されて処理される。メッセージがグループ操作メッセージである場合、メッセージのデータは判定部202に送られる。
判定部202は、グループ操作メッセージに含まれる範囲情報に、デバイスID記憶部224に記憶されたデバイスIDが含まれるか否か判定する。含まれない場合、当該通信装置200は受信したグループ操作メッセージの対象機器ではないので、当該グループ操作メッセージに対する動作を中止する。含まれる場合は、当該通信装置200はグループ操作メッセージの対象であるので、グループ操作メッセージはMKB処理部203に渡される。
MKB処理部203は、範囲情報にデバイスID記憶部224に記憶されたデバイスIDが含まれると判定された場合に、グループ操作メッセージに含まれる集合情報(MKBフラグメント)と、デバイス鍵記憶部223に記憶されたデバイス鍵とからグループ鍵を生成するMKB処理を実行する。
例えば上述のようにMKBフラグメントが(ノードiのインデックス,Enc(iのノード鍵,グループ鍵))で表される場合、MKB処理部203は、Dec(ノードiのノード鍵、MKBフラグメント)によりグループ鍵を生成する。
MKB処理の結果、グループ鍵が得られた場合、当該通信装置200はGIDに示されるグループに所属することを意味する。MKB処理部203は、GIDと、取得したグループ鍵と、をグループ制御部204に送る。
なお、グループに所属するかの判定方法はこれに限られるものではない。例えばMKBフラグメントを含まない集合情報を用いる場合であれば、通信装置200のデバイスIDのビットマップとプレフィックス上位dビットが一致するノードインデックス(d、b)が集合情報に含まれていればグループに所属すると判定してもよい。
グループ制御部204は、GIDをGID記憶部221に格納し、グループ鍵をグループ鍵記憶部222に格納する。既にGIDが記憶されている場合は、グループ制御部204は、グループ操作メッセージ内のGIDで、GID記憶部221に記憶されているGIDを更新する。
一方、MKB処理の結果、グループ鍵が得られなかった場合は、当該通信装置200はGIDに示されるグループに所属しないことを意味する。従って、所属している場合は離脱する必要がある。このため、MKB処理部203は、GIDと、グループ鍵が取得できなかった旨の通知と、をグループ制御部204に送る。
グループ制御部204は、GID記憶部221とグループ鍵記憶部222とを空にする。GIDまたはグループ鍵が既に格納されている場合は、グループ制御部204はそれらを消去する。
なお、上述の各記憶部は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
また、通信制御装置100の受付部101、生成部102、および、出力部103、並びに、通信装置200の受信部201、判定部202、MKB処理部203、および、グループ制御部204は、例えば、CPU(Central Processing Unit)などの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、IC(Integrated Circuit)などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
次に、本実施形態にかかる通信制御装置100による通信制御処理について図5を用いて説明する。図5は、本実施形態における通信制御処理の一例を示すフローチャートである。
受付部101は、完全二分木T(または完全二分木Tの部分木T’)と、グループに属する通信装置200に対応する葉ノードのノードIDとを受け付ける(ステップS101)。グループに属する通信装置200のデバイスIDを受け付けて、受け付けたデバイスIDの通信装置200に対応する葉ノードのノードIDを求めてもよい。生成部102は、受け付けた完全二分木T(または部分木T’)とノードIDとをもとに、集合情報と範囲情報とを生成する生成処理を実行する(ステップS102)。生成部102は、集合情報と範囲情報とを含むグループ操作メッセージを生成する。出力部103は、グループ操作メッセージを出力する(ステップS103)。
次に、ステップS102の生成処理の詳細について説明する。生成処理では、完全二分木Tの部分木T’の根ノードRから左優先または右優先のいずれか一方で再帰的にトレース処理を実行する。左優先は、部分木T’の左端の葉ノードから右端の葉ノードに向けて順に集合情報および範囲情報を生成することを意味する。右優先は、部分木T’の右端の葉ノードから左端の葉ノードに向けて順に集合情報および範囲情報を生成することを意味する。生成部103は、左優先および右優先のいずれによって集合情報等を生成してもよい。
生成処理は、部分木T’の高々M個のノードのノードIDのリストSと、リストSに対応する葉ノードのインデックスの下限値minrおよびインデックスの上限値maxrの組(S,minr,maxr)のリストOと、を出力する。リストSが集合情報に相当し、minrおよびmaxrが範囲情報に相当する。なお、以下ではリストSにノードnのノードIDを追加することを、単にリストSにノードnを追加すると表現する場合がある。
以下では、ノードnを根ノードとする部分木の左端および右端の葉ノードのノードインデックスを返す関数をそれぞれLML(n)およびRML(n)とする。部分木T’の葉ノードの集合を集合Lとする。集合Lのうちグループに属する葉ノードの集合を集合Gとする。
生成処理は、例えば以下のステップを含む:
(S1)O=S=NULL、minr=LML(R)、maxr=RML(R)に初期化する。
(S2)現在トレース中のノードCに対し、ノードCが集合Lに含まれる場合、ノードCが集合Gに含まれる場合にはノードCをリストSに追加するとともにノードCを「CS該当」とマークする。また、ノードCが集合Gに含まれない場合にはノードCを「CS非該当」とマークする。
(S3)ノードCが集合Lに含まれず、かつ、ノードCの左右両方の子ノードが「CS非該当」とマークされた場合には、ノードCを「非CS該当」とマークする。
(S4)ノードCが集合Lに含まれず、かつ、ノードCの左右両方の子ノードが「CS該当」とマークされた場合には、ノードCを「CS該当」とマークするともに、左右両方の子ノードをリストSから削除し、ノードCをリストSに追加する。
(S5)ノードCが集合Lに含まれず、かつ、ノードCの一方の子ノードが「CS該当」で他方の子ノードが「CS非該当」とマークされた場合には、|S|>M(リストSの要素数がMより大)の場合には、リストSの先頭からM個のノードのリストをS[0:M]、左優先の場合maxr=RML(S[M-1])、右優先の場合minr=LML(S[M-1])とする。そして、(S[0:M],minr,maxr)を集合Oに追加し、S[0:M]をリストSから削除し、左優先の場合minr=maxr+1、右優先の場合maxr=minr-1に設定する。
(S6)ノードCが部分木T’の根ノードRの場合、左優先の場合maxr=RML(R)、右優先の場合minr=LML(R)として、(S,minr,maxr)を集合Oに追加する。
(S1)O=S=NULL、minr=LML(R)、maxr=RML(R)に初期化する。
(S2)現在トレース中のノードCに対し、ノードCが集合Lに含まれる場合、ノードCが集合Gに含まれる場合にはノードCをリストSに追加するとともにノードCを「CS該当」とマークする。また、ノードCが集合Gに含まれない場合にはノードCを「CS非該当」とマークする。
(S3)ノードCが集合Lに含まれず、かつ、ノードCの左右両方の子ノードが「CS非該当」とマークされた場合には、ノードCを「非CS該当」とマークする。
(S4)ノードCが集合Lに含まれず、かつ、ノードCの左右両方の子ノードが「CS該当」とマークされた場合には、ノードCを「CS該当」とマークするともに、左右両方の子ノードをリストSから削除し、ノードCをリストSに追加する。
(S5)ノードCが集合Lに含まれず、かつ、ノードCの一方の子ノードが「CS該当」で他方の子ノードが「CS非該当」とマークされた場合には、|S|>M(リストSの要素数がMより大)の場合には、リストSの先頭からM個のノードのリストをS[0:M]、左優先の場合maxr=RML(S[M-1])、右優先の場合minr=LML(S[M-1])とする。そして、(S[0:M],minr,maxr)を集合Oに追加し、S[0:M]をリストSから削除し、左優先の場合minr=maxr+1、右優先の場合maxr=minr-1に設定する。
(S6)ノードCが部分木T’の根ノードRの場合、左優先の場合maxr=RML(R)、右優先の場合minr=LML(R)として、(S,minr,maxr)を集合Oに追加する。
「CS該当」および「CS非該当」のマークは、現在トレース中のノードに対する処理を行う関数の返り値として実現してもよいし、各ノードに付随する属性の値として保持することにより実現してもよい。属性の値として保持する場合、「CS該当」および「CS非該当」に対応する値に加え、CS該当かどうかが未確定であることを示す「CS未定」に対応する値のいずれかを保持してもよい。
葉ノードのインデックスが上述のようにindex(b,d)で表される場合、ノードID(d,b)で識別されるノードnに対し、LML(n)=index(b,d)×2^(HT-d)、RML(n)=(index(b,d)+1)×2^(HT-d)-1で表される。例えば、T=T’のとき、T’の左端葉ノードのノードインデックスはLML(R)=0×2^(HT-0)=0であり、T’の右端葉ノードのノードインデックスはRML(R)=(0+1)×2^HT-1=2^HT-1である。
生成処理は、以下の情報を入力として使用する。
I:グループメンバに含まれる通信装置200のデバイスIDのリスト
T’:全体木である完全二分木Tの部分木(T’の根ノードR)
M:MKBフラグメントサイズ(MKBフラグメントに含まれるノード数)
I:グループメンバに含まれる通信装置200のデバイスIDのリスト
T’:全体木である完全二分木Tの部分木(T’の根ノードR)
M:MKBフラグメントサイズ(MKBフラグメントに含まれるノード数)
また、生成処理は、(S,minr、maxr)のリストOを出力する。ここで、
S:MKBフラグメントに含まれるノードのリスト
minr:リストSに対する葉ノードのノードインデックスの下限値
maxr:リストSに対する葉ノードのノードインデックスの上限値
である。
S:MKBフラグメントに含まれるノードのリスト
minr:リストSに対する葉ノードのノードインデックスの下限値
maxr:リストSに対する葉ノードのノードインデックスの上限値
である。
図6は、生成処理の一例を示すフローチャートである。生成部102は、生成処理で使用する各パラメータを初期化する(ステップS201)。例えば、生成部102は、リストSおよびリストOを空(NULL)にし、minr=LML(R),maxr=RML(R)に設定する。
生成部102は、根ノードRに対しCheck()関数を実行する(ステップS202)。Check関数は、指定されたノードの子ノードに対して再帰的に実行され、結果としてリストOが出力される。
図7は、左優先の場合のCheck()関数の一例を示すフローチャートである。図7は、あるノードnに対する左優先のCheck()関数が呼ばれた場合の動作を示す。
まずノードnが葉ノードであるか否かが判定される(ステップS301)。葉ノードであれば(ステップS301:Yes)、ノードnのノードIDがリストIに含まれるか否かが判定される(ステップS302)。含まれる場合(ステップS302:Yes)、リストSにノードnが追加される(ステップS303)。またrvに1が設定される(ステップS304)。rvは、「CS該当」であるか「CS非該当」であるかを設定するパラメータである。図7の例では、rv=1が「CS該当」、rv=0が「CS非該当」を意味する。ノードnのノードIDがリストIに含まれない場合(ステップS302:No)、rvに0が設定される(ステップS305)。
ステップS301で、ノードnが葉ノードでないと判定された場合(ステップS301:No)、lval=Check(ノードnの左の子ノード)、rval=Check(ノードnの右の子ノード)、rv=0が設定される(ステップS306)。
次に、lval×rvalが0より大きいか否かが判定される(ステップS307)。これは、左右の子ノードの両方が「CS該当」であるかを判定することに相当する。大きい場合(ステップS307:Yes)、リストSからノードnの左の子ノードおよび右の子ノードが削除され、リストSにノードnが追加され、rvに1が設定される(ステップS308)。
lval×rvalが0より大きくない場合、すなわち、0に一致する場合(ステップS307:No)、(lval+rval)が0より大きいか否かが判定される(ステップS309)。これは、左右の子ノードのいずれか一方が「CS該当」であることを判定することに相当する。
(lval+rval)が0より大きい場合(ステップS309:Yes)、リストSの要素数がMを超えたか否かが判定される(ステップS310)。リストSの要素数がMを超えた場合(ステップS310:Yes)、maxr=RML(S[M-1])とされ、リストOに(S[0:M],minr,maxr)が追加され、minr=maxr+1とされる(ステップS311)。
ステップS308の後、ステップS311の後、(lval+rval)が0より大きくないと判定された場合(ステップS309:No)、または、リストSの要素数がMを超えていない場合(ステップS310:No)、ノードnが根ノードであるか否かが判定される(ステップS312)。
ノードnが根ノードであれば(ステップS312:Yes)、maxr=RML(R)とされ、リストOに(S,minr,maxr)が追加される(ステップS313)。ステップS304の後、ステップS305の後、ステップS313の後、または、ノードnが根ノードでない場合(ステップS312:No)、rvの値を返して(ステップS314)、Check関数が終了する。
図8は、右優先の場合のCheck()関数の一例を示すフローチャートである。右優先の場合は、ステップS411およびステップS413以外は左優先の場合のCheck()関数(図7)と同様であるため説明を省略する。
ステップS411では、minr=LML(S[M-1])とされ、リストOに(S[0:M],minr,maxr)が追加され、maxr=minr-1とされる(ステップS411)。ステップS413では、minr=LML(R)とされ、リストOに(S,minr,maxr)が追加される(ステップS413)。
図9は、左優先の場合の生成処理を表す擬似コードの例を示す図である。図9のInput I,T,RおよびMは、上記のリストI、部分木T’、部分木T’の根ノードR、MKBフラグメントサイズMに対応する。また、Output Oは、上記のリストOに対応する。また、rightmost_leaf_number(n)は、上記のRML(n)に対応する。
図10は、生成処理の処理結果の一例を示す図である。図10は、HT=3(葉ノード数8)の全体木である図1の完全部分木Tに対し、T’=Tかつ左優先の場合の生成処理の処理結果の例である。
図10の例では、以下のようなリストIが入力パラメータとして与えられる。Iの各要素はデバイスIDを2進表記したものである。
I=(000,010,100,101,110)
I=(000,010,100,101,110)
M=2のとき、生成処理の出力であるリストOは以下の2つのリストSを含む。
S=[(3,000),(3,010)],(minr,maxr)=(0,2)
S=[(2,10),(3,110)],(minr,maxr)=(3,7)
S=[(3,000),(3,010)],(minr,maxr)=(0,2)
S=[(2,10),(3,110)],(minr,maxr)=(3,7)
M=3のとき、生成処理の出力であるリストOは以下の2つのリストSを含む。
S=[(3,000),(3,010),(2,10)],(minr,maxr)=(0,5)
S=[(3,110)],(minr,maxr)=(6,7)
S=[(3,000),(3,010),(2,10)],(minr,maxr)=(0,5)
S=[(3,110)],(minr,maxr)=(6,7)
集合情報にMKBフラグメントを含める場合は、例えば、リストSに含まれるノードごとにEnc(iのノード鍵,グループ鍵)を算出し、当該ノードのインデックスと対応づけて出力すればよい。
以上のように、本実施形態によれば、グループに属する葉ノードのみを含む部分木を求めながら、MKBの分割(M個ずつの部分木のリストSの生成)を行うことが可能となる。このため、例えばすべての部分木が求められるまで待つことなく、生成されたMKBフラグメントを送信することができる。その結果、例えばすべての部分木を求めてからMKBをMKBフラグメントに分割する方法(後述の変形例1など)と比較して、計算量、および、MKBフラグメントの送信遅延を低減することができる。
次に、本実施形態にかかる通信装置200によるグループ制御処理について図11を用いて説明する。図11は、本実施形態におけるグループ制御処理の一例を示すフローチャートである。
受信部201は、通信制御装置100などの外部装置からメッセージを受信する(ステップS501)。受信部201は、受信したメッセージがグループ操作メッセージであるか否かを判定する(ステップS502)。グループ操作メッセージでない場合(ステップS502:No)、グループ制御処理を終了する。なお、上述のようにグループ操作メッセージ以外のメッセージは、当該メッセージを処理すべきモジュールに渡されて適切に処理される。
グループ操作メッセージである場合(ステップS502:Yes)、判定部202は、グループ操作メッセージ内の範囲情報が示す範囲に、デバイスID記憶部224に記憶されたデバイスIDが含まれるか否かを判定する(ステップS503)。
範囲情報が示す範囲にデバイスIDが含まれない場合(ステップS503:No)、グループ操作の対象外であるため、グループ制御処理を終了する。範囲情報が示す範囲にデバイスIDが含まれる場合(ステップS503:Yes)、MKB処理部203は、グループ操作メッセージ内のMKBフラグメントを処理する(ステップS504)。
MKB処理部203は、MKB(MKBフラグメント)が正しく処理されたか否かを判定する(ステップS505)。正しく処理された場合(ステップS505:Yes)、グループ制御部204は、グループ操作メッセージ内のGIDをGID記憶部221に記憶するとともに、MKB処理により得られたグループ鍵をグループ鍵記憶部222に記憶する(ステップS506)。正しく処理されなかった場合(ステップS505:No)、グループ制御部204は、グループ操作メッセージ内のGIDをGID記憶部221から削除するとともに、グループ鍵をグループ鍵記憶部222から削除する(ステップS507)。
このように、本実施形態にかかる通信制御装置では、スケーラビリティを確保しながら動的なグループ管理を実現することができる。また、グループ管理のために、MKB全体ではなく、MKBを分割した情報(MKBフラグメント)を送信するため、通信負荷を軽減することができる。このとき、グループ操作の対象となる通信装置の範囲を定める情報とともにMKBフラグメントを送信するため、意図しないグループ操作が行われることを回避できる。
(変形例1)
上記実施形態では、グループに属する葉ノードのみを含む部分木を求めながら、MKBを分割し、分割したMKB(MKBフラグメント)の範囲情報を生成した。変形例1では、先にグループに属する葉ノードのみを含むソートされた部分木のリストを求め、その後、部分木のリストを分割してMKBフラグメントを生成するとともに、MKBフラグメントの範囲情報を生成する。
上記実施形態では、グループに属する葉ノードのみを含む部分木を求めながら、MKBを分割し、分割したMKB(MKBフラグメント)の範囲情報を生成した。変形例1では、先にグループに属する葉ノードのみを含むソートされた部分木のリストを求め、その後、部分木のリストを分割してMKBフラグメントを生成するとともに、MKBフラグメントの範囲情報を生成する。
図12は、変形例1の生成処理の一例を示すフローチャートである。生成部102は、左端の葉ノードおよび右端の葉ノードの一方から他方に向かって、ノードIDで識別される葉ノードのみをそれぞれ含む部分木を求める処理を繰り返して1以上の部分木を含むソートされた部分木のリストを求める(ステップS601)。ソートとは、インデックスの昇順または降順で並べることを意味する。例えば左優先の場合は、部分木のルートノードのインデックスRの左端または右端の葉ノードのノードインデックス(LML(R)またはRML(R))が昇順となるように各部分木がソートされる。右優先の場合は、部分木のルートノードの左端または右端の葉ノードのインデックス(LML(R)またはRML(R))が降順となるように各部分木がソートされる。
その後、生成部102は、求めた部分木のリストを、部分木をそれぞれ所定数(M(自然数))含む集合に分割し、集合それぞれに含まれる部分木の葉ノードに割り当てられたインデックスの範囲情報を求める(ステップS602)。
変形例1では、先に部分木のリストを求めた後に、M個の部分木を含む集合(部分木のリスト)をさらに求める。このため、計算量はO(L+L/M)(Lは葉ノードの個数)となる。
図13は、ステップS601のリスト生成処理の一例を示すフローチャートである。生成部102は、使用する各パラメータを初期化する(ステップS701)。例えば、生成部102は、リストSおよびリストOを空(NULL)に設定する。生成部102は、根ノードRに対しCheck()関数を実行する(ステップS702)。変形例1のCheck関数は、指定されたノードの子ノードに対して再帰的に実行され、結果としてリストSが出力される。
図14は、左優先の場合の変形例1のCheck()関数の一例を示すフローチャートである。図14は、あるノードnに対する左優先のCheck()関数が呼ばれた場合の動作を示す。
ステップS801からステップS807は、図7のステップS301からステップS307と同様であるため説明を省略する。
ステップS807でlval×rvalが0より大きいと判定された場合(ステップS807:Yes)、リストSからノードnの左の子ノードおよび右の子ノードが削除され、リストSにノードnが追加され、rvに1が設定される(ステップS808)。
lval×rvalが0より大きくない場合(ステップS807:No)、ステップS804の後、ステップS805の後、または、ステップS808の後、rvの値を返して(ステップS809)、Check関数が終了する。
次に、ステップS602の範囲情報算出処理の一例を説明する。範囲情報算出処理では、リスト生成処理(ステップS601)で求められたリストSを要素数MごとのリストFに分割し、リストFごとにリストFに含まれる部分木の葉ノードのインデックスの下限値minrおよびインデックスの上限値maxrの組(minr,maxr)を算出する。そして、リストF、minr、maxrの組のリストが出力される。この例では、リストFが集合情報に相当する。
i番目(1≦i≦N,Nは分割数,N=ceiling(|S|/M))のリストFのminr、maxrは以下のように算出される。
1番目のリストFのminr=0
i番目のリストFのminr=(i-1)番目のリストFのmaxr+1(i>1)
i番目のリストFのmaxr=i番目のリストFの最後の要素(部分木)の右端葉ノードのインデックス (i<N)
N番目のリストFのmaxr=T’の右端葉ノードのインデックス
1番目のリストFのminr=0
i番目のリストFのminr=(i-1)番目のリストFのmaxr+1(i>1)
i番目のリストFのmaxr=i番目のリストFの最後の要素(部分木)の右端葉ノードのインデックス (i<N)
N番目のリストFのmaxr=T’の右端葉ノードのインデックス
図15は、左優先の場合の変形例1の生成処理を表す擬似コードの例を示す図である。変形例の場合も入力(Input I,T,R,M)および出力(Output O)は、図9と同様である。図15のfragment(S)が、範囲情報算出処理に相当する。
(変形例2)
新規の通信装置200(葉ノード)がグループに追加された場合に、生成部102が、追加後のグループに属する葉ノードのノードIDを用いて、生成処理を再度実行してもよい。また、グループから通信装置200(葉ノード)が離脱した場合に、生成部102が、削除後のグループに属する葉ノードのノードIDを用いて、生成処理を再度実行してもよい。これにより、スケーラビリティを確保しながら動的なグループ管理を実現できる。
新規の通信装置200(葉ノード)がグループに追加された場合に、生成部102が、追加後のグループに属する葉ノードのノードIDを用いて、生成処理を再度実行してもよい。また、グループから通信装置200(葉ノード)が離脱した場合に、生成部102が、削除後のグループに属する葉ノードのノードIDを用いて、生成処理を再度実行してもよい。これにより、スケーラビリティを確保しながら動的なグループ管理を実現できる。
(第2の実施形態)
つぎに、第2の実施形態について説明する。
つぎに、第2の実施形態について説明する。
第1の実施形態で説明した通り、対象となるメンバの数が非常に大きくなった場合、グループ操作用のMKBのサイズが極めて大きくなる可能性がある。従って、そのままMKBを通信ネットワークに配布した場合、通信負荷が極めて大きくなる可能性がある。
そこで、本実施形態では、ネットワーク負荷を軽減するために、複数のインデックスと複数の暗号文を要素として含むMKBから、複数のインデックスを取り除いたMKB(インデックスレスMKB)を生成して送付する。しかし、上記のようなグループ制御方法を前提とする場合、単純にインデックスレスMKBを送付しても、意図した通りのグループ制御を行うことができない場合がある。例えば、インデックスレスMKBに要素として含まれる複数の暗号文がそれぞれ一般的な共通鍵暗号で生成されており、かつ、インデックスレスMKBを通信装置が受信した場合、当該通信装置は、自身が保持するデバイス鍵を用いて当該インデックスレスMKBが含む各暗号文の復号を試みたとしても、正しくグループ鍵を取得できたか否かを判定する術がない。なぜならば、一般的な共通鍵暗号の復号関数は、暗号化に用いた鍵と復号に用いた鍵が異なっている場合、不正な復号結果を返すが、それが不正な復号結果であることを判定する術を持たないからである。そのため、当該通信装置は、グループへの所属処理を行うべきか、グループからの離脱処理を行うべきかを判断することができない。
この問題を回避するため、インデックスレスMKBが要素として含む暗号文を、認証付暗号を用いて生成する。認証付暗号とは、暗号化に用いた鍵と復号に用いた鍵が異なり不正な復号が行われた場合に、その結果が不正であることを特定する機能を持つ共通鍵暗号である。代表的な認証付暗号はAES-CCMやAES-GCMなどが挙げられ、既に様々な公知技術が存在する。例えば、インデックスレスMKBを受信した場合、通信装置は、自身の保持する複数のデバイス鍵をそれぞれ用いて、当該インデックスレスMKBが含む暗号文の復号を試みる。いずれか1つの暗号文の復号に成功し、かつ、グループに参加しているならば、導出したグループ鍵を用いて、参加しているグループの情報を更新する。いずれか1つの暗号文の復号に成功し、かつ、グループに参加していないならば、導出したグループ鍵を用いて、グループに参加する。すべての復号処理が失敗してグループ鍵の取得に失敗し、かつ、グループに参加しているならば、グループから離脱する。
このように、本実施形態では、通信装置は、当該通信装置の保有するデバイス鍵を用いて復号を試みることで、グループへ所属を命じられているか、離脱を命じられているかをチェックする。これにより、インデックスレスMKBによっても、意図したグループ操作を行うことができる。
本実施形態で用いるインデックスレスMKBを処理するために使用されるグループ管理木の構造については第1の実施形態と同様とする。
グループ管理木から生成されるインデックスレスMKBは、例えば以下の要素を含む。
(AuthEnc(iのノード鍵,グループ鍵))
(AuthEnc(iのノード鍵,グループ鍵))
図1のグループ管理木の例では、次の4つの要素を含むMKBが生成される。これらは、ノード000、010、10、110にそれぞれ対応する。ただし、Kgはグループ鍵を表し、例えばAuthEnc(k(000),Kg)はk(000)を用いた認証付暗号によりKgを暗号化したデータを表す。
(000,AuthEnc(k(000)、Kg),(010,AuthEnc(k(010)、Kg),(10,AuthEnc(k(10)、Kg),(110,AuthEnc(k(110)、Kg)
(000,AuthEnc(k(000)、Kg),(010,AuthEnc(k(010)、Kg),(10,AuthEnc(k(10)、Kg),(110,AuthEnc(k(110)、Kg)
これらのMKBに対応するインデックスレスMKBは、下記のとおりである。
(AuthEnc(k(000)、Kg),AuthEnc(k(010)、Kg),AuthEnc(k(10)、Kg),AuthEnc(k(110)、Kg)
(AuthEnc(k(000)、Kg),AuthEnc(k(010)、Kg),AuthEnc(k(10)、Kg),AuthEnc(k(110)、Kg)
本実施形態では、このようなインデックスが取り除かれた構造のMKBが、通信装置に対してマルチキャスト通信またはブロードキャスト通信などにより送信される。
以下、本実施形態の詳細について説明する。本実施形態にかかる通信システムは、通信装置200-2と、通信制御装置100-2と、を含む。本実施形態の通信システムの構成は、通信装置200が通信装置200-2に置き換わり、通信制御装置100が通信制御装置100-2に置き換わる以外は、第1の実施形態の通信システムを示す図2と同様であるため説明を省略する。
通信制御装置100-2は、各通信装置200-2に対してグループ操作コマンドを送信する。グループ操作コマンドは、例えば、集合情報を含む。第1の実施形態と同様に、範囲情報(例えばデバイスIDの範囲)を含んでもよい。グループ操作コマンドが、更新後のグループを識別するグループIDを含んでもよい。
集合情報は、グループに属する(通信装置に対応する)葉ノードのみを含む部分木(例えば図1の部分木s)を含む集合を示す情報である。集合情報は、例えば、集合に含まれる部分木の葉ノードに対応づけられる通信装置がグループ鍵を導出できるMKBからインデックスを取り除いたインデックスレスMKBを含んでもよい。このように、本実施形態では、MKB全体ではなく、部分木sを含むように生成される集合情報に対応してMKBからインデックスレスMKBを通信装置200-2に送信する。
第1の実施形態と同様に、集合情報は、グループに属する(通信装置に対応する)葉ノードのみを含む部分木(例えば図1の部分木s)を所定数含む集合を示す情報として構成してもよい。また、範囲情報は、集合情報が示す集合に含まれる各部分木の葉ノードに割り当てられたインデックスの範囲を示す。上述のようにインデックスは対応する通信装置のデバイスIDと等しいため、範囲情報によってグループ操作の対象となる通信装置のデバイスIDの範囲が特定される。集合情報および範囲情報の生成方法の詳細は第1の実施形態と同様である。第1の実施形態では、ノード鍵やデバイス鍵を設定せず、またMKBを用いずにグループに属するかを判定することも可能であった。本実施形態では、ノード鍵を含むインデックスレスMKBを用いるため、第1の実施形態でノード鍵やMKBを用いる場合の手法を組み合わせればよい。
図16は、通信制御装置100-2の構成例を表すブロック図である。図16に示すように、通信制御装置100-2は、グループ情報記憶部121と、アドレス記憶部122と、鍵記憶部123と、受付部101と、生成部102-2と、出力部103-2と、を備える。本実施形態では、生成部102-2および出力部103-2の機能が第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかる通信制御装置100のブロック図である図3と同様であるので、同一符号を付し、ここでの説明は省略する。
生成部102-2は、グループ操作に用いる情報を生成する。例えば生成部102-2は、上述のインデックスレスMKBを生成する。生成部102-2は、完全二分木構造のグループ管理木をトレースしてMKBを生成し、そのMKBからインデックスを取り除く。例えば生成部102-2は、左端の葉ノードおよび右端の葉ノードの一方から他方に向かって、ノードIDで識別される葉ノードのみをそれぞれ含む部分木(グループ管理木の部分木)を含む集合を示す集合情報を求める処理を含むトレース処理を行う。範囲情報を用いる場合は、第1の実施形態と同様に、求めた集合に含まれる葉ノードのインデックスの範囲情報を求める処理をさらに含むトレース処理を行ってもよい。そして生成部102-2は、各部分木の根ノードに対応づけられた鍵(ノード鍵)でグル―プ鍵を暗号化する処理を繰り返すことで、インデックレスMKBを生成する。これにより、計算量をO(L)(Lは葉ノードの個数)とすることができる。インデックスレスMKBは、グループ管理木をトレースしながらインデックスを含まないMKBとして生成してもよいし、インデックスを含むMKBを生成した後にこのMKBからインデックスを取り除いて生成してもよい。生成部102-2による生成処理の詳細は後述する。
出力部103-2は、集合情報を少なくともグループに属する葉ノードに対応づけられる通信装置200-2に対して出力する。上述のように、集合情報は、集合に含まれる部分木の葉ノードに対応づけられる通信装置200-2がグループ鍵を導出可能な鍵情報(インデックスレスMKB)を含んでもよい。インデックスレスMKBは、例えば上述のように(AuthEnc(iのノード鍵,グループ鍵))の形式で表される。
例えば、出力部103-2は、インデックスレスMKBを含むグループ操作メッセージを、グループに属する通信装置200-2が属するマルチキャストグループ宛にマルチキャストで送信する。このようにグループ変更の対象ではない通信装置200-2にも出力部103-2の出力が届くことを許容することで、許容しない場合と比較して、出力部103-2による出力先の決定に要する計算コストを軽減できる。
また、出力部103-2から、更新前のグループには含まれるが、更新後のグループには含まれない通信装置200-2が含まれるマルチキャストグループに、上述の情報を送信するようにしてもよい。そのような通信装置200-2は、マルチキャストグループに属しているが、インデックスレスMKBからグループ鍵を導出できないため、更新後のグループから離脱を行う。このように、インデックスレスMKBを用いて、グループの離脱を命じるコマンドを発行することができる。このようなコマンドを発行することで、通信装置200-2が保持すべき情報を適切に管理することができる。
また、更新後のグループに含まれない通信装置200-2に、上述のような、離脱を命じるコマンドを送付しなくても良い。これは、更新後のグループに含まれない通信装置200-2は、更新を命じるコマンドから更新後のグループ鍵を導出できないため、更新後のグループには参加できないためである。このように構成することで、通信制御装置100-2が発行すべきコマンドの量を削減できる場合がある。
出力部103-2は、MKBによるグループ操作の対象となるグループとは独立に管理される通信装置200-2の集合(グループ)であって、少なくともグループが更新されたすべての通信装置200-2を含む通信装置200-2の集合に対して出力情報を出力する。ここで、通信装置200-2の集合とは、複数の通信装置200-2からなる集まりであって、グループIDが割り振られているグループとは必ずしも一致しない。通信装置200-2の集合の例として、あるマルチキャスト通信でデータを受信する通信装置200-2の集合や、ブロードキャスト通信でデータを受信する通信装置200-2からなる集合、つまりすべての通信装置200-2からなる集合、などが挙げられる。例えば、出力部103-2は、デバイスIDリストが含まれる通信装置200-2の集合、または、グループに対して、1以上のマルチキャスト通信やブロードキャスト通信により出力情報を送信してもよい。マルチキャスト通信で出力情報を送信する場合、出力部103-2は、例えばアドレス記憶部122に記憶されたアドレスのうち、配布対象のデバイスIDのデバイスIDに対応づけられた1以上のアドレス(マルチキャストアドレス)を宛先として、出力情報を送信する。
図17は、通信装置200-2の構成例を表すブロック図である。図17に示すように、通信装置200-2は、GID記憶部221と、グループ鍵記憶部222と、デバイス鍵記憶部223と、デバイスID記憶部224と、受信部201-2と、判定部202と、MKB処理部203-2と、グループ制御部204と、を備える。MKBを用いない場合は、グループ鍵記憶部222およびデバイス鍵記憶部223は備えなくてもよい。本実施形態では、受信部201-2とMKB処理部203-2の機能が第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかる通信装置200のブロック図である図4と同様であるので、同一符号を付し、ここでの説明は省略する。
受信部201-2は、通信制御装置100-2および他の通信装置200-2などの外部装置から各種情報を受信する。例えば、受信部201-2は、グループ操作メッセージを通信制御装置100-2から受信する。受信部201-2は、マルチキャスト通信およびブロードキャスト通信などにより出力情報を受信する。受信部201-2は、受信されたメッセージがグループ操作メッセージであるか判定する。グループ操作メッセージでない場合、受信されたメッセージは、当該メッセージを処理すべき他のモジュール(図示せず)に渡されて処理される。メッセージがグループ操作メッセージである場合、メッセージのデータはMKB処理部203-2に送られる。
MKB処理部203-2は、グループ操作メッセージに含まれる集合情報(インデックスレスMKB)と、デバイス鍵記憶部223に記憶されたデバイス鍵とからグループ鍵を生成するインデックスレスMKB処理を実行する。
例えば上述のようにインデックスレスMKBが(AuthEnc(iのノード鍵,グループ鍵))で表される場合、MKB処理部203-2は、デバイス鍵記憶部223に記録されている各ノードの鍵を用いて、AuthDec(ノードjのノード鍵、AuthEnc(iのノード鍵,グループ鍵))を実行し、復号に成功した場合、それをグループ鍵とする。ただし、jはデバイス鍵記憶部223に記録されているデバイス鍵に割り振られたインデックスとする。AuthDec(ノードjのノード鍵、AuthEnc(iのノード鍵,グループ鍵))は、ノードjに割り振られたノード鍵を用いて、暗号文AuthEnc(iのノード鍵,グループ鍵)を復号した結果を表す。復号結果は、jのノード鍵とiのノード鍵が等しいときはグループ鍵となり、それ以外の場合はエラーとなる。
インデックスレスMKB処理の結果、グループ鍵が得られた場合、当該通信装置200-2はGIDに示されるグループに所属することを意味する。MKB処理部203-2は、GIDと、取得したグループ鍵と、をグループ制御部204に送る。
一方、インデックスレスMKB処理の結果、グループ鍵が得られなかった場合は、当該通信装置200-2はGIDに示されるグループに所属しないことを意味する。従って、所属している場合は離脱する必要がある。このため、MKB処理部203-2は、GIDと、グループ鍵が取得できなかった旨の通知と、をグループ制御部204に送る。
なお、上述の各記憶部は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
また、通信制御装置100-2の受付部101、生成部102-2、および、出力部103-2、並びに、通信装置200-2の受信部201、判定部202、MKB処理部203-2、および、グループ制御部204は、例えば、CPUなどの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、ICなどのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
次に、本実施形態にかかる通信制御装置100-2による通信制御処理について図18を用いて説明する。図18は、本実施形態における通信制御処理の一例を示すフローチャートである。
受付部101-2は、完全二分木T(または完全二分木Tの部分木T’)と、グループに属する通信装置200-2に対応する葉ノードのノードIDとを受け付ける(ステップS901)。グループに属する通信装置200-2のデバイスIDを受け付けて、受け付けたデバイスIDの通信装置200-2に対応する葉ノードのノードIDを求めてもよい。生成部102-2は、受け付けた完全二分木T(または部分木T’)とノードIDとをもとに、集合情報と範囲情報とを生成する生成処理を実行する(ステップS902)。生成部102-2は、集合情報と範囲情報とを含むグループ操作メッセージを生成する。出力部103-2は、グループ操作メッセージを出力する(ステップS903)。
次に、ステップS902の生成処理の詳細について説明する。第1の実施形態のステップS102と同様のアルゴリズムに、以下の情報を入力して使用する。
I:グループメンバに含まれる通信装置200-2のデバイスIDのリスト
T’:全体木である完全二分木Tの部分木(T’の根ノードR)
M:T’のノードの個数
I:グループメンバに含まれる通信装置200-2のデバイスIDのリスト
T’:全体木である完全二分木Tの部分木(T’の根ノードR)
M:T’のノードの個数
そして、生成処理は、(S,minr、maxr)のリストOを生成する。ここで、
S:MKBに含まれるノードのリスト
minr:リストSに対する葉ノードのノードインデックスの下限値
maxr:リストSに対する葉ノードのノードインデックスの上限値
である。minrおよびmaxrが範囲情報に相当する。
S:MKBに含まれるノードのリスト
minr:リストSに対する葉ノードのノードインデックスの下限値
maxr:リストSに対する葉ノードのノードインデックスの上限値
である。minrおよびmaxrが範囲情報に相当する。
集合情報に含めるインデックスレスMKB生成するためには、例えば、リストSに含まれるノードごとにAuthEnc(iのノード鍵,グループ鍵)を算出し、出力すればよい。ただし、iはリストSに含まれる各ノードのインデックスとする。
以上のように、本実施形態によれば、集合情報からMKBのインデックスを削除することが可能となる。その結果、例えばすべてのMKBを送信する方法と比較して、送信すべき情報を低減することができる。
次に、本実施形態にかかる通信装置200-2によるグループ制御処理について図19を用いて説明する。図19は、本実施形態におけるグループ制御処理の一例を示すフローチャートである。
受信部201-2は、通信制御装置100-2などの外部装置からメッセージを受信する(ステップS1001)。受信部201-2は、受信したメッセージがグループ操作メッセージであるか否かを判定する(ステップS1002)。グループ操作メッセージでない場合(ステップS1002:No)、グループ制御処理を終了する。なお、上述のようにグループ操作メッセージ以外のメッセージは、当該メッセージを処理すべきモジュールに渡されて適切に処理される。
グループ操作メッセージである場合(ステップS1002:Yes)、判定部202は、グループ操作メッセージ内の範囲情報が示す範囲に、デバイスID記憶部224に記憶されたデバイスIDが含まれるか否かを判定する(ステップS1003)。
範囲情報が示す範囲にデバイスIDが含まれない場合(ステップS1003:No)、グループ操作の対象外であるため、グループ制御処理を終了する。範囲情報が示す範囲にデバイスIDが含まれる場合(ステップS1003:Yes)、MKB処理部203-2は、グループ操作メッセージ内のインデックスレスMKBを処理する(ステップS1004)。
MKB処理部203-2は、インデックスレスMKBが正しく処理されたか否かを判定する(ステップS1005)。正しく処理された場合(ステップS1005:Yes)、グループ制御部204は、グループ操作メッセージ内のGIDをGID記憶部221に記憶するとともに、インデックスレスMKB処理により得られたグループ鍵をグループ鍵記憶部222に記憶する(ステップS1006)。正しく処理されなかった場合(ステップS1005:No)、グループ制御部204は、グループ操作メッセージ内のGIDをGID記憶部221から削除するとともに、グループ鍵をグループ鍵記憶部222から削除する(ステップS1007)。
このように、本実施形態にかかる通信制御装置では、スケーラビリティを確保しながら動的なグループ管理を実現することができる。また、グループ管理のために、MKB全体ではなく、インデックスレスMKBを送信するため、通信負荷を軽減することができる。
(変形例3)
第2の実施形態において、MKBの分割を行わない場合には、グループ操作メッセージから範囲情報を取り除いてもよい。このように構成することで、通信負荷をさらに低減することができる。
第2の実施形態において、MKBの分割を行わない場合には、グループ操作メッセージから範囲情報を取り除いてもよい。このように構成することで、通信負荷をさらに低減することができる。
(変形例4)
新規の通信装置200-2(葉ノード)がグループに追加された場合に、生成部102-2が、追加後のグループに属する葉ノードのノードIDを用いて、生成処理を再度実行してもよい。また、グループから通信装置200-2(葉ノード)が離脱した場合に、生成部102-2が、削除後のグループに属する葉ノードのノードIDを用いて、生成処理を再度実行してもよい。これにより、スケーラビリティを確保しながら動的なグループ管理を実現できる。
新規の通信装置200-2(葉ノード)がグループに追加された場合に、生成部102-2が、追加後のグループに属する葉ノードのノードIDを用いて、生成処理を再度実行してもよい。また、グループから通信装置200-2(葉ノード)が離脱した場合に、生成部102-2が、削除後のグループに属する葉ノードのノードIDを用いて、生成処理を再度実行してもよい。これにより、スケーラビリティを確保しながら動的なグループ管理を実現できる。
(第3の実施形態)
つぎに、第3の実施形態について説明する。
つぎに、第3の実施形態について説明する。
第1の実施形態で説明した通り、対象となるメンバの数が非常に大きくなった場合、グループ操作用のMKBのサイズが極めて大きくなる可能性がある。従って、そのままMKBを通信ネットワークに配布した場合、通信負荷が極めて大きくなる可能性がある。
そこで、本実施形態では、ネットワーク負荷を軽減するために、複数のインデックスと複数の暗号文を要素として含むMKBから複数のインデックスを取り除き、代わりに、複数のインデックスのブルームフィルタを含めたブルームフィルタMKBを生成して送付する。しかし、上記のようなグループ制御方法を前提とする場合、ブルームフィルタMKBを送付しても、意図した通りのグループ制御を行うことができない場合がある。例えば、MKBは要素として含む複数の暗号文がそれぞれ一般的な共通鍵暗号で生成されており、かつ、通信装置はブルームフィルタMKBを受信した場合、ブルームフィルタで検出されたインデックスに対応する当該通信装置が保持するデバイス鍵を用いて当該MKBが含む各暗号文の復号を試みたとしても、正しくグループ鍵を取得できるとは限らない。なぜならば、一般的な共通鍵暗号の復号関数は、暗号化に用いた鍵と復号に用いた鍵が異なっている場合、不正な復号結果を返すが、それが不正な復号結果であることを判定する術を持たないためである。従ってブルームフィルタで偽陽性により誤ったインデックスが検出された場合、当該通信装置は、通信制御装置が意図しないグループへの所属処理や、グループからの離脱処理を行うことになる。
この問題を回避するため、ブルームフィルタMKBが要素として含む暗号文を、認証付暗号を用いて生成する。認証付暗号とは、暗号化に用いた鍵と復号に用いた鍵が異なり不正な復号が行われた場合に、その結果が不正であることを特定する機能を持つ共通鍵暗号である。代表的な認証付暗号はAES-CCMやAES-GCMなどが挙げられ、既に様々な公知技術が存在する。例えば、ブルームフィルタMKBを受信した場合、通信装置は、ブルームフィルタで検出された自身の保持する複数のデバイス鍵をそれぞれ用いて、当該ブルームフィルタMKBが含む暗号文の復号を試みる。いずれか1つの暗号文の復号に成功し、かつ、グループに参加しているならば、通信装置は、導出したグループ鍵を用いて、参加しているグループの情報を更新する。いずれか1つの暗号文の復号に成功し、かつ、グループに参加していないならば、通信装置は、導出したグループ鍵を用いて、グループに参加する。すべての復号処理が失敗してグループ鍵の取得に失敗し、かつ、グループに参加しているならば、通信装置は、グループから離脱する。
このように、本実施形態では、通信装置は、ブルームフィルタで検出された当該通信装置の保有するデバイス鍵を用いて復号を試みることで、グループへ所属を命じられているか、離脱を命じられているかをチェックする。これにより、ブルームフィルタMKBによっても、意図したグループ操作を行うことができる。
本実施形態で用いるブルームフィルタMKBの処理に使用されるグループ管理木の構造については第1の実施形態と同様とする。
また、第1の実施形態と同様に、各通信装置は、対象システムで一意なデバイスIDを持ち、完全二分木Tの葉ノードは、それぞれ1つの通信装置に対応する。
グループ管理木から生成されるブルームフィルタMKBは、例えば以下の要素を含む。
(ノードiのインデックスのブルームフィルタ,AuthEnc(iのノード鍵,グループ鍵))
(ノードiのインデックスのブルームフィルタ,AuthEnc(iのノード鍵,グループ鍵))
図1のグループ管理木の例では、次の4つの要素を含むMKBが生成される。これらは、ノード000、010、10、110にそれぞれ対応する。ただし、Kgはグループ鍵を表し、例えばAuthEnc(k(000),Kg)はKgをk(000)で暗号化したデータを表す。
(000,AuthEnc(k(000)、Kg),(010,AuthEnc(k(010)、Kg),(10,AuthEnc(k(10)、Kg),(110,AuthEnc(k(110)、Kg)
(000,AuthEnc(k(000)、Kg),(010,AuthEnc(k(010)、Kg),(10,AuthEnc(k(10)、Kg),(110,AuthEnc(k(110)、Kg)
これらのMKBに対応するブルームフィルタMKBとは、下記のとおりである。
((000、010、10、110)から生成したブルームフィルタ,AuthEnc(k(000)、Kg),AuthEnc(k(010)、Kg),AuthEnc(k(10)、Kg),AuthEnc(k(110)、Kg)
((000、010、10、110)から生成したブルームフィルタ,AuthEnc(k(000)、Kg),AuthEnc(k(010)、Kg),AuthEnc(k(10)、Kg),AuthEnc(k(110)、Kg)
本実施形態では、このようなインデックスの代わりにそれらのブルームフィルタを含む構造のMKBが、通信装置に対してマルチキャスト通信またはブロードキャスト通信などにより送信される。
以下、本実施形態の詳細について説明する。本実施形態にかかる通信システムは、通信装置200-3と、通信制御装置100-3と、を含む。本実施形態の通信システムの構成は、通信装置200が通信装置200-3に置き換わり、通信制御装置100が通信制御装置100-3に置き換わる以外は、第1の実施形態の通信システムを示す図2と同様であるため説明を省略する。
通信制御装置100-3が、各通信装置200-3に対してグループ操作コマンドを送信する。グループ操作コマンドは、例えば、集合情報を含む。第1の実施形態と同様に、範囲情報(例えばデバイスIDの範囲)を含んでもよい。グループ操作コマンドが、更新後のグループを識別するグループIDを含んでもよい。
集合情報は、グループに属する(通信装置に対応する)葉ノードのみを含む部分木(例えば図1の部分木s)を含む集合を示す情報である。集合情報は、例えば、集合に含まれる部分木の葉ノードに対応づけられる通信装置がグループ鍵を導出できるMKBからインデックスを取り除き、それらインデックスのブルームフィルタを付したブルームフィルタMKBを含んでもよい。このように、本実施形態では、MKB全体ではなく、部分木sを含むように生成される集合情報に対応するブルームフィルタMKBを通信装置200-3に送信する。
第1の実施形態と同様に、集合情報は、グループに属する(通信装置に対応する)葉ノードのみを含む部分木(例えば図1の部分木s)を所定数含む集合を示す情報として構成してもよい。また、範囲情報は、集合情報が示す集合に含まれる各部分木の葉ノードに割り当てられたインデックスの範囲を示す。上述のようにインデックスは対応する通信装置のデバイスIDと等しいため、範囲情報によってグループ操作の対象となる通信装置のデバイスIDの範囲が特定される。集合情報および範囲情報の生成方法の詳細は第1の実施形態と同様である。第1の実施形態では、ノード鍵やデバイス鍵を設定せず、またMKBを用いずにグループに属するかを判定することも可能であった。本実施形態では、ノード鍵を含むブルームフィルタMKBを用いるため、第1の実施形態でノード鍵やMKBを用いる場合の手法を組み合わせればよい。
図20は、通信制御装置100-3の構成例を表すブロック図である。図20に示すように、通信制御装置100-3は、グループ情報記憶部121と、アドレス記憶部122と、鍵記憶部123と、受付部101と、生成部102-3と、出力部103-3と、を備える。本実施形態では、生成部102-3および出力部103-3の機能が第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかる通信制御装置100のブロック図である図3と同様であるので、同一符号を付し、ここでの説明は省略する。
生成部102-3は、グループ操作に用いる情報を生成する。例えば生成部102-3は、ブルームフィルタMKBを生成する。生成部102-3は、完全二分木構造のグループ管理木をトレースしてMKBを生成し、そのMKBに付されたインデックスからブルームフィルタを導出し、インデックスを取り除いて代わりにブルームフィルタを付す。例えば生成部102-3は、左端の葉ノードおよび右端の葉ノードの一方から他方に向かって、ノードIDで識別される葉ノードのみをそれぞれ含む部分木(グループ管理木の部分木)を含む集合を示す集合情報を求める処理を含むトレース処理を行う。範囲情報を用いる場合は、第1の実施形態と同様に、求めた集合に含まれる葉ノードのインデックスの範囲情報を求める処理をさらに含むトレース処理を行ってもよい。そして生成部102-3は、各部分木の根ノードに対応づけられた鍵(ノード鍵)でグル―プ鍵を暗号化する処理、および、各部分木の根ノードのインデックスからブルームフィルタを導出する処理を繰り返すことで、ブルームフィルタMKBを生成する。これにより、計算量をO(L)(Lは葉ノードの個数)とすることができる。生成部102-3による生成処理の詳細は後述する。
出力部103-3は、少なくともグループに属する葉ノードに対応づけられる通信装置200-3に対して、集合情報を出力する。上述のように、集合情報は、集合に含まれる部分木の葉ノードに対応づけられる通信装置200-3がグループ鍵を導出可能な鍵情報(ブルームフィルタMKB)を含んでもよい。ブルームフィルタMKBは、例えば上述のように(インデックスのブルームフィルタ,AuthEnc(iのノード鍵,グループ鍵)のリスト)の形式で表される。
例えば、出力部103-3は、ブルームフィルタMKBを含むグループ操作メッセージを、グループに属する通信装置200-3が属するマルチキャストグループ宛にマルチキャストで送信する。このようにグループ変更の対象ではない通信装置200-3にも出力部103-3の出力が届くことを許容することで、許容しない場合と比較して、出力部103-3による出力先の決定に要する計算コストを軽減できる。
また、出力部103-3から、更新前のグループには含まれるが、更新後のグループには含まれない通信装置200-3が含まれるマルチキャストグループに、上述の情報を送信するようにしてもよい。そのような通信装置200-3は、マルチキャストグループに属しているが、ブルームフィルタMKBからグループ鍵を導出できないため、更新後のグループから離脱を行う。このように、ブルームフィルタMKBを用いて、グループの離脱を命じるコマンドを発行することができる。このようなコマンドを発行することで、通信装置200-3が保持すべき情報を適切に管理することができる。
また、更新後のグループに含まれない通信装置200-3に、上述のような、離脱を命じるコマンドを送付しなくても良い。これは、更新後のグループに含まれない通信装置200-3は、更新を命じるコマンドから、更新後のグループ鍵を導出できないため、更新後のグループには参加できないためである。このように構成することで、通信制御装置100-3が発行すべきコマンドの量を削減できる場合がある。
出力部103-3は、ブルームフィルタMKBによるグループ操作の対象となるグループとは独立に管理される通信装置200-3の集合(グループ)であって、少なくともグループが更新されたすべての通信装置200-3を含む通信装置200-3の集合に対して出力情報を出力する。ここで、通信装置200-3の集合とは、複数の通信装置200-3からなる集まりであって、グループIDが割り振られているグループとは必ずしも一致しない。通信装置200-3の集合の例として、あるマルチキャスト通信でデータを受信する通信装置200-3の集合や、ブロードキャスト通信でデータを受信する通信装置200-3からなる集合、つまりすべての通信装置200-3からなる集合、などが挙げられる。例えば、出力部103-3は、デバイスIDリストが含まれる通信装置200-3の集合、または、グループに対して、1以上のマルチキャスト通信やブロードキャスト通信により出力情報を送信してもよい。マルチキャスト通信で出力情報を送信する場合、出力部103-3は、例えばアドレス記憶部122に記憶されたアドレスのうち、配布対象のデバイスIDのデバイスIDに対応づけられた1以上のアドレス(マルチキャストアドレス)を宛先として、出力情報を送信する。
図21は、通信装置200-3の構成例を表すブロック図である。図21に示すように、通信装置200-3は、GID記憶部221と、グループ鍵記憶部222と、デバイス鍵記憶部223と、デバイスID記憶部224と、受信部201-3と、判定部202と、MKB処理部203-3と、グループ制御部204と、を備える。ブルームフィルタMKBを用いない場合は、グループ鍵記憶部222およびデバイス鍵記憶部223は備えなくてもよい。本実施形態では、受信部201-3とMKB処理部203-3の機能が第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかる通信装置200のブロック図である図4と同様であるので、同一符号を付し、ここでの説明は省略する。
受信部201-3は、通信制御装置100-3および他の通信装置200-3などの外部装置から各種情報を受信する。例えば、受信部201-3は、グループ操作メッセージを通信制御装置100-3から受信する。受信部201-3は、マルチキャスト通信およびブロードキャスト通信などにより出力情報を受信する。受信部201-3は、受信されたメッセージがグループ操作メッセージであるか判定する。グループ操作メッセージでない場合、受信されたメッセージは、当該メッセージを処理すべき他のモジュール(図示せず)に渡されて処理される。メッセージがグループ操作メッセージである場合、メッセージのデータはMKB処理部203-3に送られる。
MKB処理部203-3は、グループ操作メッセージに含まれる集合情報(ブルームフィルタMKB)と、デバイス鍵記憶部223に記憶されたデバイス鍵とからグループ鍵を生成するブルームフィルタMKB処理を実行する。
例えば上述のようにブルームフィルタMKBが(ブルームフィルタ,AuthEnc(iのノード鍵,グループ鍵)のリスト)で表される場合、MKB処理部203-3は、デバイス鍵記憶部223に記録されている各ノードのインデックスをブルームフィルタで検査し、検出されるインデックス探索する。もし、インデックスが検出されたら、MKB処理部203-3は、検出されたインデックスで特定されるノード鍵で、AuthDec(検出されたノード鍵、AuthEnc(iのノード鍵,グループ鍵))を実行し、復号に成功した場合、それをグループ鍵とする。AuthDec(検出されたノード鍵、AuthEnc(iのノード鍵,グループ鍵))は、検出されたノード鍵を用いて、暗号文AuthEnc(iのノード鍵,グループ鍵)を復号した結果を表す。復号結果は、検出されたノード鍵とiのノード鍵が等しいときはグループ鍵となり、それ以外の場合はエラーとなる。
ブルームフィルタMKB処理の結果、グループ鍵が得られた場合、当該通信装置200-3はGIDに示されるグループに所属することを意味する。MKB処理部203-3は、GIDと、取得したグループ鍵と、をグループ制御部204に送る。
一方、ブルームフィルタMKB処理の結果、グループ鍵が得られなかった場合、すなわち復号に成功しなかった場合は、当該通信装置200-3はGIDに示されるグループに所属しないことを意味する。従って、所属している場合は離脱する必要がある。このため、MKB処理部203-3は、GIDと、グループ鍵が取得できなかった旨の通知と、をグループ制御部204に送る。
なお、上述の各記憶部は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
また、通信制御装置100-3の受付部101、生成部102-3、および、出力部103-3、並びに、通信装置200-3の受信部201-3、MKB処理部203-3、および、グループ制御部204は、例えば、CPUなどの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、ICなどのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
次に、本実施形態にかかる通信制御装置100-3による通信制御処理について図22を用いて説明する。図22は、本実施形態における通信制御処理の一例を示すフローチャートである。
受付部101は、完全二分木T(または完全二分木Tの部分木T’)と、グループに属する通信装置200-3に対応する葉ノードのノードIDとを受け付ける(ステップS1101)。グループに属する通信装置200-3のデバイスIDを受け付けて、受け付けたデバイスIDの通信装置200-3に対応する葉ノードのノードIDを求めてもよい。生成部102-3は、受け付けた完全二分木T(または部分木T’)とノードIDとをもとに、集合情報と範囲情報を生成する生成処理を実行する(ステップS1102)。生成部102-3は、集合情報と範囲情報を含むグループ操作メッセージを生成する。出力部103-3は、グループ操作メッセージを出力する(ステップS1103)。
次に、ステップS1102の生成処理の詳細について説明する。第1の実施形態のステップS102と同様のアルゴリズムに、以下の情報を入力して使用する。
I:グループメンバに含まれる通信装置200-3のデバイスIDのリスト
T’:全体木である完全二分木Tの部分木(T’の根ノードR)
M:T’のノードの個数
I:グループメンバに含まれる通信装置200-3のデバイスIDのリスト
T’:全体木である完全二分木Tの部分木(T’の根ノードR)
M:T’のノードの個数
そして、生成処理は、(S,minr、maxr)のリストOを生成する。ここで、
S:ブルームフィルタMKBに含まれるノードのリスト
minr:リストSに対する葉ノードのノードインデックスの下限値
maxr:リストSに対する葉ノードのノードインデックスの上限値
である。minrおよびmaxrが範囲情報に相当する。
S:ブルームフィルタMKBに含まれるノードのリスト
minr:リストSに対する葉ノードのノードインデックスの下限値
maxr:リストSに対する葉ノードのノードインデックスの上限値
である。minrおよびmaxrが範囲情報に相当する。
集合情報に含めるブルームフィルタMKBを生成するためには、例えば、リストSに含まれるすべてのノードのインデックスからブルームフィルタを算出し、リストSに含まれるノードごとにAuthEnc(iのノード鍵,グループ鍵)を算出し、出力すればよい。ただし、iはリストSに含まれる各ノードのインデックスとする。
以上のように、本実施形態によれば、集合情報からMKBのインデックスを削除してインデックスのブルームフィルタを付すことが可能となる。その結果、例えばすべてのMKBを送信する方法と比較して、送信すべき情報を低減することができる。
次に、本実施形態にかかる通信装置200-3によるグループ制御処理について図23を用いて説明する。図23は、本実施形態におけるグループ制御処理の一例を示すフローチャートである。
受信部201-3は、通信制御装置100-3などの外部装置からメッセージを受信する(ステップS1201)。受信部201-3は、受信したメッセージがグループ操作メッセージであるか否かを判定する(ステップS1202)。グループ操作メッセージでない場合(ステップS1202:No)、グループ制御処理を終了する。なお、上述のようにグループ操作メッセージ以外のメッセージは、当該メッセージを処理すべきモジュールに渡されて適切に処理される。
グループ操作メッセージである場合(ステップS1202:Yes)、判定部202は、グループ操作メッセージ内の範囲情報が示す範囲に、デバイスID記憶部224に記憶されたデバイスIDが含まれるか否かを判定する(ステップS1203)。
範囲情報が示す範囲にデバイスIDが含まれない場合(ステップS1203:No)、グループ操作の対象外であるため、グループ制御処理を終了する。範囲情報が示す範囲にデバイスIDが含まれる場合(ステップS1203:Yes)、MKB処理部203-3は、グループ操作メッセージ内のブルームフィルタを付されたMKBを処理する(ステップS1204)。
MKB処理部203-3は、ブルームフィルタを付されたMKBが正しく処理されたか否かを判定する(ステップS1205)。正しく処理された場合(ステップS1205:Yes)、グループ制御部204は、グループ操作メッセージ内のGIDをGID記憶部221に記憶するとともに、ブルームフィルタMKB処理により得られたグループ鍵をグループ鍵記憶部222に記憶する(ステップS1206)。正しく処理されなかった場合(ステップS1205:No)、グループ制御部204は、グループ操作メッセージ内のGIDをGID記憶部221から削除するとともに、グループ鍵をグループ鍵記憶部222から削除する(ステップS1207)。
このように、本実施形態にかかる通信制御装置では、スケーラビリティを確保しながら動的なグループ管理を実現することができる。また、グループ管理のために、MKB全体ではなく、ブルームフィルタMKBを送信するため、通信負荷を軽減することができる。
(変形例5)
第3の実施形態において、MKBの分割が行われない場合には、グループ操作メッセージから範囲情報を取り除いて構成してもよい。このように構成することで、通信負荷をさらに低減することができる。
第3の実施形態において、MKBの分割が行われない場合には、グループ操作メッセージから範囲情報を取り除いて構成してもよい。このように構成することで、通信負荷をさらに低減することができる。
(変形例6)
集合情報に含めるブルームフィルタとして、リストSに含まれるすべてノードインデックスで特定されるノード鍵からブルームフィルタを算出するように構成してもよい。
集合情報に含めるブルームフィルタとして、リストSに含まれるすべてノードインデックスで特定されるノード鍵からブルームフィルタを算出するように構成してもよい。
例えば、生成部102-3は、MKBのインデックスの代わりに、インデックスで特定されるノード鍵からブルームフィルタを生成し、そのブルームフィルタを付したブルームフィルタMKBを生成する。
上述のようにブルームフィルタMKBが(ブルームフィルタ,AuthEnc(iのノード鍵,グループ鍵)のリスト)で表される場合、MKB処理部203-3は、デバイス鍵記憶部223に記録されている各ノード鍵をブルームフィルタで検査し、検出されるノード鍵を探索する。もし、検出される鍵を発見した場合は、AuthDec(検出されたノード鍵、AuthEnc(iのノード鍵,グループ鍵))を実行し、復号に成功した場合、それをグループ鍵とする。
このように構成することで、ノード鍵を保持していない通信機器は、グループに所属を命じられている機器を特定することができなくなり、プライバシを保護したグループ操作が可能となる。
(変形例7)
新規の通信装置200-3(葉ノード)がグループに追加された場合に、生成部102-3が、追加後のグループに属する葉ノードのノードIDを用いて、生成処理を再度実行してもよい。また、グループから通信装置200-3(葉ノード)が離脱した場合に、生成部102-3が、削除後のグループに属する葉ノードのノードIDを用いて、生成処理を再度実行してもよい。これにより、スケーラビリティを確保しながら動的なグループ管理を実現できる。
新規の通信装置200-3(葉ノード)がグループに追加された場合に、生成部102-3が、追加後のグループに属する葉ノードのノードIDを用いて、生成処理を再度実行してもよい。また、グループから通信装置200-3(葉ノード)が離脱した場合に、生成部102-3が、削除後のグループに属する葉ノードのノードIDを用いて、生成処理を再度実行してもよい。これにより、スケーラビリティを確保しながら動的なグループ管理を実現できる。
次に、本実施形態にかかる通信制御装置のハードウェア構成について図24を用いて説明する。図24は、本実施形態にかかる通信制御装置のハードウェア構成を示す説明図である。
本実施形態にかかる通信制御装置は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM(Random Access Memory)53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
本実施形態にかかる装置(通信制御装置、通信装置)で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
本実施形態にかかる装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
さらに、本実施形態にかかる装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかる装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
本実施形態にかかる装置で実行されるプログラムは、コンピュータを上述した各部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
Claims (12)
- 葉ノードそれぞれにインデックスおよびノード鍵が割り当てられた二分木と、葉ノードのうちグループに属する葉ノードを識別するノードIDと、の入力を受け付ける受付部と、
前記ノードIDで識別される前記葉ノードのみをそれぞれ含む前記二分木の部分木の根ノードに割り当てられた前記ノード鍵を用いて、前記グループで共有されるグループ鍵を暗号化した暗号文を生成し、生成した前記暗号文を含む集合情報を生成する生成部と、
前記集合情報を、少なくとも前記グループに属する葉ノードに対応づけられる通信装置に対して出力する出力部と、
を備える通信制御装置。 - 前記生成部は、前記部分木の根ノードに割り当てられた前記ノード鍵を特定するブルームフィルタをさらに含む前記集合情報を生成する、
請求項1に記載の通信制御装置。 - 前記生成部は、前記ノード鍵を用いた認証付暗号により前記グループ鍵を暗号化した暗号文を生成し、生成した前記暗号文を含む集合情報を生成する、
請求項1または2に記載の通信制御装置。 - 前記生成部は、前記部分木の葉ノードに割り当てられた前記インデックスの範囲情報をさらに含む集合情報を生成し、
前記出力部は、前記集合情報と、前記範囲情報とを、少なくとも前記グループに属する葉ノードに対応づけられる通信装置に対して出力する、
請求項1から3のいずれか1つに記載の通信制御装置。 - 前記生成部は、前記ノードIDで識別される前記葉ノードのみをそれぞれ含む前記二分木の部分木を所定数含む集合を示し、前記集合に含まれる前記部分木の根ノードに割り当てられた前記ノード鍵を用いて前記グループ鍵を暗号化した暗号文を含む集合情報と、前記集合に含まれる前記部分木の葉ノードに割り当てられた前記インデックスの範囲情報と、を生成し、
前記出力部は、前記集合情報と、前記範囲情報とを、少なくとも前記グループに属する葉ノードに対応づけられる通信装置に対して出力する、
請求項1に記載の通信制御装置。 - 前記生成部は、左端の葉ノードおよび右端の葉ノードの一方から他方に向かって、前記ノードIDで識別される前記葉ノードのみをそれぞれ含む前記部分木を前記所定数含む集合を示す前記集合情報を求める処理と、求めた前記集合に含まれる葉ノードの前記インデックスの前記範囲情報を求める処理と、を含むトレース処理を繰り返すことにより、前記集合情報と前記範囲情報とを生成する、
請求項5に記載の通信制御装置。 - 前記生成部は、左端の葉ノードおよび右端の葉ノードの一方から他方に向かって、前記ノードIDで識別される前記葉ノードのみをそれぞれ含む前記部分木を求める処理を繰り返して1以上の前記部分木を求め、求めた前記部分木を、それぞれ前記所定数含む前記集合に分割し、前記集合それぞれに含まれる前記部分木の葉ノードに割り当てられた前記インデックスの前記範囲情報を求めることにより、前記集合情報と前記範囲情報とを生成する、
請求項5に記載の通信制御装置。 - 前記生成部は、前記グループに葉ノードが追加された場合に、葉ノードを追加後のグループに属する葉ノードの前記ノードIDを用いて、前記集合情報と前記範囲情報とを再度生成する、
請求項1に記載の通信制御装置。 - 前記生成部は、前記グループに葉ノードが削除された場合に、葉ノードを削除後のグループに属する葉ノードの前記ノードIDを用いて、前記集合情報と前記範囲情報とを再度生成する、
請求項1に記載の通信制御装置。 - 前記集合情報は、前記集合に含まれる前記部分木の葉ノードに対応づけられる通信装置がグループ鍵を導出可能な鍵情報を含む、
請求項1に記載の通信制御装置。 - 葉ノードそれぞれにインデックスおよびノード鍵が割り当てられた二分木と、葉ノードのうちグループに属する葉ノードを識別するノードIDと、の入力を受け付ける受付ステップと、
前記ノードIDで識別される前記葉ノードのみをそれぞれ含む前記二分木の部分木の根ノードに割り当てられた前記ノード鍵を用いて、前記グループで共有されるグループ鍵を暗号化した暗号文を生成し、生成した前記暗号文を含む集合情報を生成する生成ステップと、
前記集合情報を、少なくとも前記グループに属する葉ノードに対応づけられる通信装置に対して出力する出力ステップと、
を含む通信制御方法。 - コンピュータを、
葉ノードそれぞれにインデックスおよびノード鍵が割り当てられた二分木と、葉ノードのうちグループに属する葉ノードを識別するノードIDと、の入力を受け付ける受付部と、
前記ノードIDで識別される前記葉ノードのみをそれぞれ含む前記二分木の部分木の根ノードに割り当てられた前記ノード鍵を用いて、前記グループで共有されるグループ鍵を暗号化した暗号文を生成し、生成した前記暗号文を含む集合情報を生成する生成部と、
前記集合情報を、少なくとも前記グループに属する葉ノードに対応づけられる通信装置に対して出力する出力部と、
として機能させるためのプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016556172A JP6290443B2 (ja) | 2014-10-31 | 2014-10-31 | 通信制御装置、通信制御方法およびプログラム |
PCT/JP2014/079138 WO2016067471A1 (ja) | 2014-10-31 | 2014-10-31 | 通信制御装置、通信制御方法およびプログラム |
US15/443,345 US10673624B2 (en) | 2014-10-31 | 2017-02-27 | Communication control device, communication control method, and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/079138 WO2016067471A1 (ja) | 2014-10-31 | 2014-10-31 | 通信制御装置、通信制御方法およびプログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/443,345 Continuation US10673624B2 (en) | 2014-10-31 | 2017-02-27 | Communication control device, communication control method, and computer program product |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016067471A1 true WO2016067471A1 (ja) | 2016-05-06 |
Family
ID=55856849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2014/079138 WO2016067471A1 (ja) | 2014-10-31 | 2014-10-31 | 通信制御装置、通信制御方法およびプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US10673624B2 (ja) |
JP (1) | JP6290443B2 (ja) |
WO (1) | WO2016067471A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018157246A (ja) * | 2017-03-15 | 2018-10-04 | 株式会社東芝 | 管理装置、および管理方法 |
JP2020129808A (ja) * | 2017-03-15 | 2020-08-27 | 株式会社東芝 | 管理装置、および管理方法 |
JP2023520441A (ja) * | 2020-03-31 | 2023-05-17 | グーグル エルエルシー | 複合量子ゲート較正 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6100922B2 (ja) | 2013-12-26 | 2017-03-22 | 株式会社東芝 | 通信制御装置、通信制御方法、プログラムおよび通信システム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005268926A (ja) * | 2004-03-16 | 2005-09-29 | Toshiba Corp | 情報処理装置、情報処理方法及び情報処理プログラム |
JP2011130012A (ja) * | 2009-12-15 | 2011-06-30 | Sony Corp | アクターノード、センサノード、担当区画変更方法、パラメータ変更方法、プログラムおよび情報処理システム |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6421662B1 (en) * | 1999-06-04 | 2002-07-16 | Oracle Corporation | Generating and implementing indexes based on criteria set forth in queries |
CA2293167A1 (en) * | 1999-12-30 | 2001-06-30 | Nortel Networks Corporation | Source code cross referencing tool, b-tree and method of maintaining a b-tree |
US7043024B1 (en) * | 2001-04-18 | 2006-05-09 | Mcafee, Inc. | System and method for key distribution in a hierarchical tree |
US7308583B2 (en) * | 2002-01-25 | 2007-12-11 | Matsushita Electric Industrial Co., Ltd. | Data distribution system |
US7340603B2 (en) * | 2002-01-30 | 2008-03-04 | Sony Corporation | Efficient revocation of receivers |
JP4436907B2 (ja) * | 2003-08-12 | 2010-03-24 | 株式会社リコー | 光ファイバ結合光学装置およびそれを備えた画像形成装置 |
JP4561074B2 (ja) | 2003-10-14 | 2010-10-13 | ソニー株式会社 | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
US20050210014A1 (en) * | 2004-03-08 | 2005-09-22 | Sony Corporation | Information-processing method, decryption method, information-processing apparatus and computer program |
JP4632413B2 (ja) * | 2004-09-01 | 2011-02-16 | キヤノン株式会社 | 情報暗号化装置及び情報配信装置並びにそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体 |
JP2006086568A (ja) * | 2004-09-14 | 2006-03-30 | Sony Corp | 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム |
JP4653157B2 (ja) * | 2005-01-25 | 2011-03-16 | 株式会社ターボデータラボラトリー | ツリーの検索、集計、ソート方法、情報処理装置、および、ツリーの検索、集計、ソートプログラム |
KR100737876B1 (ko) * | 2005-02-25 | 2007-07-12 | 삼성전자주식회사 | 계층적 문턱 트리에 기반한 브로드캐스트 암호화 방법 |
JP4569464B2 (ja) | 2005-12-20 | 2010-10-27 | 沖電気工業株式会社 | マルチホップネットワークにおける鍵更新システム,鍵管理装置,通信端末および鍵情報構築方法 |
WO2008024917A2 (en) * | 2006-08-23 | 2008-02-28 | Innovative Solution, Inc. | Efficient search result update mechanism |
JP2008131076A (ja) | 2006-11-16 | 2008-06-05 | Sony Corp | 情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラム |
US8300814B2 (en) | 2006-11-16 | 2012-10-30 | Sony Corporation | Information processing unit, terminal unit, information processing method, key generation method and program |
JP2009036022A (ja) * | 2007-07-31 | 2009-02-19 | Denso Corp | 内燃機関の異種燃料混入判定装置 |
US7801137B2 (en) * | 2008-03-11 | 2010-09-21 | Cisco Technology, Inc. | Receiver-based construction of point-to-multipoint trees using path computation elements in a computer network |
US20110158405A1 (en) * | 2009-12-31 | 2011-06-30 | The Industry & Academy Cooperation in Chungnam National University (IAC) | Key management method for scada system |
JP5676331B2 (ja) * | 2011-03-24 | 2015-02-25 | 株式会社東芝 | ルートノード及びプログラム |
US9155320B2 (en) * | 2011-07-06 | 2015-10-13 | International Business Machines Corporation | Prefix-based leaf node storage for database system |
EP2730060A4 (en) * | 2011-07-06 | 2014-12-03 | Ericsson Telefon Ab L M | DYNAMIC UPDATE OF A LABEL SWITCHED PATH |
US8930691B2 (en) * | 2011-08-16 | 2015-01-06 | Microsoft Corporation | Dynamic symmetric searchable encryption |
JP6029936B2 (ja) * | 2012-11-02 | 2016-11-24 | 株式会社東芝 | 通信制御装置、通信装置およびプログラム |
US9424132B2 (en) * | 2013-05-30 | 2016-08-23 | International Business Machines Corporation | Adjusting dispersed storage network traffic due to rebuilding |
JP5950285B2 (ja) * | 2013-12-19 | 2016-07-13 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 予め決められた複数のビット幅のデータに対して操作を行う命令を使用してツリーの検索を行うための方法、並びに、当該命令を使用してツリーの検索を行うためのコンピュータ及びそのコンピュータ・プログラム |
JP6100922B2 (ja) | 2013-12-26 | 2017-03-22 | 株式会社東芝 | 通信制御装置、通信制御方法、プログラムおよび通信システム |
GB2524287B (en) * | 2014-03-19 | 2020-07-01 | Advanced Risc Mach Ltd | Graphics processing systems |
US9348857B2 (en) * | 2014-05-07 | 2016-05-24 | International Business Machines Corporation | Probabilistically finding the connected components of an undirected graph |
-
2014
- 2014-10-31 JP JP2016556172A patent/JP6290443B2/ja active Active
- 2014-10-31 WO PCT/JP2014/079138 patent/WO2016067471A1/ja active Application Filing
-
2017
- 2017-02-27 US US15/443,345 patent/US10673624B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005268926A (ja) * | 2004-03-16 | 2005-09-29 | Toshiba Corp | 情報処理装置、情報処理方法及び情報処理プログラム |
JP2011130012A (ja) * | 2009-12-15 | 2011-06-30 | Sony Corp | アクターノード、センサノード、担当区画変更方法、パラメータ変更方法、プログラムおよび情報処理システム |
Non-Patent Citations (1)
Title |
---|
D. NAOR ET AL.: "Revocation and Tracing Schemes for Stateless Receivers", CRYPTOLOGY EPRINT ARCHIVE, 5 January 2001 (2001-01-05), pages 1 - 34, XP061000221, Retrieved from the Internet <URL:http://eprint.iacr.org/2001/059/20011205:104841> [retrieved on 20141117] * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018157246A (ja) * | 2017-03-15 | 2018-10-04 | 株式会社東芝 | 管理装置、および管理方法 |
JP2020129808A (ja) * | 2017-03-15 | 2020-08-27 | 株式会社東芝 | 管理装置、および管理方法 |
JP2023520441A (ja) * | 2020-03-31 | 2023-05-17 | グーグル エルエルシー | 複合量子ゲート較正 |
JP7487333B2 (ja) | 2020-03-31 | 2024-05-20 | グーグル エルエルシー | 複合量子ゲート較正 |
Also Published As
Publication number | Publication date |
---|---|
US10673624B2 (en) | 2020-06-02 |
US20170170958A1 (en) | 2017-06-15 |
JP6290443B2 (ja) | 2018-03-07 |
JPWO2016067471A1 (ja) | 2017-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8750511B2 (en) | Root node and a computer readable medium | |
JP5813872B2 (ja) | 通信制御装置、通信装置およびプログラム | |
JP5666422B2 (ja) | ブロードキャスト暗号化システムにおける除かれたノードリストの生成方法 | |
JP6100922B2 (ja) | 通信制御装置、通信制御方法、プログラムおよび通信システム | |
JP6290443B2 (ja) | 通信制御装置、通信制御方法およびプログラム | |
US10673713B2 (en) | Communication control device, communication device, and computer program product for dynamic group management | |
US10440523B2 (en) | Communication control device, communication device, and computer program product for managing a group of devices | |
JP2009272927A (ja) | 通信装置、サーバ、及びプログラム | |
JP6700797B2 (ja) | 鍵生成装置、中間暗号化装置、委託暗号化装置、復号装置およびそれらのプログラム、ならびに、個人情報保護システム | |
JP2018157246A (ja) | 管理装置、および管理方法 | |
JP6472911B2 (ja) | 通信装置、通信方法、プログラムおよび通信システム | |
JP6302109B2 (ja) | 通信制御装置、通信制御方法、プログラムおよび通信システム | |
JP5150175B2 (ja) | Sd法におけるクライアント端末被覆方法およびプログラム | |
JP6162873B2 (ja) | 通信制御装置、通信装置およびプログラム | |
JP2009153091A (ja) | 通信装置、鍵サーバ、管理サーバ、通信サーバ、通信方法及びプログラム | |
JP6903786B2 (ja) | 管理装置、および管理方法 | |
JP6178472B2 (ja) | 通信制御装置、通信装置およびプログラム | |
JP6139803B2 (ja) | 通信制御装置、通信装置およびプログラム | |
US20090274305A1 (en) | Method and apparatus for transmitting content key | |
WO2017145250A1 (ja) | 情報処理装置及び情報処理方法及び情報処理プログラム | |
JP5739078B1 (ja) | サーバ装置、通信方法、およびプログラム | |
JP2016028490A (ja) | 情報処理装置および送信方法 | |
JP6334679B2 (ja) | 通信制御装置、通信装置およびプログラム | |
KR20200089391A (ko) | 블록체인 기술을 이용한 정보 공유 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14905038 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2016556172 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14905038 Country of ref document: EP Kind code of ref document: A1 |