WO2017145250A1 - 情報処理装置及び情報処理方法及び情報処理プログラム - Google Patents

情報処理装置及び情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
WO2017145250A1
WO2017145250A1 PCT/JP2016/055120 JP2016055120W WO2017145250A1 WO 2017145250 A1 WO2017145250 A1 WO 2017145250A1 JP 2016055120 W JP2016055120 W JP 2016055120W WO 2017145250 A1 WO2017145250 A1 WO 2017145250A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
assigned
attribute
decryption
user
Prior art date
Application number
PCT/JP2016/055120
Other languages
English (en)
French (fr)
Inventor
豊 川合
松田 規
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to PCT/JP2016/055120 priority Critical patent/WO2017145250A1/ja
Publication of WO2017145250A1 publication Critical patent/WO2017145250A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords

Definitions

  • the present invention relates to determination of a set value of a conditional expression used in a functional encryption method.
  • the functional encryption scheme referred to in this specification includes an ID-based encryption scheme and an attribute-based encryption scheme.
  • a technique that assumes a plurality of recipients when transmitting ciphertext is called a broadcast encryption technique.
  • a ciphertext creator designates a set of recipients and generates a ciphertext so that only the receivers included in the set can decrypt the ciphertext.
  • CS method complete subtree method
  • SD method subset difference
  • the ciphertext is generated using a conditional expression in which user attributes are combined with logical sum (OR) or logical product (AND). If the user has a key generated in association with the attribute included in the conditional expression, the user can decrypt the ciphertext using the key.
  • Non-Patent Document 1 key distribution using a binary tree and a functional encryption configuration method have been proposed (for example, Non-Patent Document 1 and Non-Patent Document 2).
  • Non-Patent Literature 1 and the technology of Non-Patent Literature 2 it is necessary to grasp the attributes of each user before distributing the key to the users. That is, in the technique of Non-Patent Document 1 and the technique of Non-Patent Document 2, the user to whom the key is distributed, that is, the decryption-permitted user who permits the decryption of the ciphertext is designated unless the attributes of each user are known. There is a problem that it cannot be done.
  • Non-Patent Document 1 or the technology of Non-Patent Document 2 is used in a company or the like, it is possible to designate a decryption-permitted user without confirming the organizational structure in the company in advance and grasping the attributes of each user. Can not.
  • the main purpose of the present invention is to solve such a problem, and to make it possible to designate a decryption-permitted user without having to grasp user attributes in advance.
  • An information processing apparatus includes: A binary tree including a plurality of nodes including a plurality of leaf nodes, wherein each node is assigned a node-specific value that is a unique value for each node, and a plurality of user identifiers are assigned to the plurality of leaf nodes
  • a decryption-permitted user identifier which is a user identifier of a decryption-permitted user who is permitted to decrypt ciphertext based on the functional encryption method, selected from the plurality of user identifiers is assigned.
  • a node extraction unit that searches for a subtree composed of leaf nodes only by leaf nodes, and extracts a root node in the subtree obtained by the search from the binary tree;
  • a conditional expression set value designating unit that designates a node specific value assigned to the node extracted by the node extracting unit as a set value of a conditional expression of the functional encryption method that defines the decryption-permitted user.
  • the node-specific value associated with the decryption-permitted user identifier is designated as the set value of the conditional expression of the functional encryption scheme. For this reason, according to the present invention, it is possible to specify a decryption-permitted user in a conditional expression without knowing the user's attributes in advance.
  • FIG. 5 is a diagram showing an example of an encryption attribute table according to the first embodiment.
  • FIG. 3 is a diagram illustrating a configuration example of an attribute generation device according to the first embodiment.
  • FIG. 3 is a diagram illustrating a configuration example of a tree structure generation unit according to the first embodiment.
  • FIG. 3 is a diagram illustrating an example of a binary tree according to the first embodiment.
  • FIG. 3 is a diagram illustrating a configuration example of a node attribute processing unit according to the first embodiment.
  • FIG. 4 is a diagram showing an example of a node attribute table according to the first embodiment.
  • FIG. 6 is a diagram showing an example of a user attribute table according to the first embodiment.
  • FIG. 6 is a flowchart showing an operation example of a user attribute generation unit according to the first embodiment.
  • FIG. 6 is a flowchart showing an operation example of a node attribute processing unit according to the first embodiment.
  • FIG. 6 is a flowchart showing an operation example of a node attribute processing unit according to the first embodiment.
  • FIG. 3 is a diagram illustrating a configuration example of an encryption attribute processing unit according to the first embodiment.
  • FIG. 4 is a flowchart showing an operation example of an encryption attribute processing unit according to the first embodiment.
  • FIG. 4 is a flowchart showing an operation example of an encryption attribute processing unit according to the first embodiment.
  • FIG. 5 is a diagram showing an example of a partial tree search according to the first embodiment.
  • FIG. 3 is a diagram illustrating a hardware configuration example of the attribute generation device according to the first embodiment.
  • Embodiment 1 FIG.
  • the following expression represents an event that an attribute value of a certain type (category) A is a.
  • a line connecting nodes in a binary tree is called a path.
  • the length of the path connecting the nodes is 1.
  • depth means the length of the path from the root node to the target node. The depth of the root node is 0.
  • a complete binary tree is a binary tree in which all nodes other than leaf nodes have two child nodes, and all leaf nodes are at an equal distance from the root node.
  • the decryption-permitted user is a user who is permitted to decrypt ciphertext based on the functional encryption method.
  • FIG. 1 shows an example of a binary tree generated by the attribute generation device 100 according to the present embodiment.
  • the binary tree shown in FIG. 1 is a complete binary tree with a depth of 3.
  • user identifiers A to H are assigned to leaf nodes.
  • User identifiers A to H are identifiers of users A to H.
  • values 1 to 15 are referred to as node numbers.
  • the values 01 to 38 are called node attribute values.
  • the first digit value is a value representing the depth
  • the second digit value is a value set in ascending order from the root node.
  • the value of the node category d (referred to as category value) is a value representing the depth.
  • the depth is also referred to as a hierarchy.
  • “nodes at the same depth” are also expressed as “nodes belonging to the same hierarchy”.
  • a combination of a depth value and a node attribute value is called a node attribute.
  • the node attribute is a unique value for each node and is also referred to as a node-specific value.
  • the user attributes possessed by users A to H are as follows.
  • user attributes are defined by combinations of node attributes.
  • FIG. 2 shows an example of the encryption attribute table according to the present embodiment.
  • the encryption attribute name CN describes the name of a group of decryption permitted users.
  • the encryption attribute CA a logical expression in which node attributes are combined by a logical sum (OR) is described.
  • the logical expression described in the encryption attribute CA is a setting value set in the conditional statement of the functional encryption method. By setting a logical expression described in the encryption attribute CA in a conditional statement, it is possible to define a decryption permitted user.
  • the attribute generation device 100 generates the encrypted attribute table illustrated in FIG. 2 using the binary tree illustrated in FIG.
  • the logical expression described in the encryption attribute table is set as a conditional expression for functional encryption and used for key generation and encryption.
  • FIG. 3 shows a configuration example of the attribute generation device 100 according to the present embodiment.
  • the attribute generation device 100 corresponds to an example of an information processing device.
  • the operation of the attribute generation device 100 corresponds to an example of an information processing method.
  • the attribute generation device 100 includes a tree structure generation unit 110, a node attribute processing unit 120, and an encrypted attribute processing unit 130.
  • the attribute generation device 100 includes at least hardware such as a processor 901 and a storage device 902.
  • the storage device 902 stores programs (information processing programs) that realize the functions of the tree structure generation unit 110, the node attribute processing unit 120, and the encryption attribute processing unit 130.
  • the processor 901 executes this program and performs operations described later of the tree structure generation unit 110, the node attribute processing unit 120, and the encryption attribute processing unit 130.
  • FIG. 3 schematically illustrates a state in which the processor 901 is executing a program that implements the functions of the tree structure generation unit 110, the node attribute processing unit 120, and the encryption attribute processing unit 130.
  • the tree structure generation unit 110 includes a user information input unit 111, a binary tree generation unit 112, and a binary tree output unit 113.
  • the user information input unit 111 receives a total number N of users and a set I of user identifiers i (hereinafter also referred to as a user identifier set I) from the operator of the attribute generation apparatus 100.
  • the binary tree generation unit 112 generates a binary tree T based on the total number N of users and the set I of user identifiers i. More specifically, the binary tree generation unit 112 generates a binary tree having at least as many leaf nodes as the total number N of users.
  • the binary tree generation unit 112 assigns node numbers in order from the left node between nodes of the same depth.
  • the binary tree generation unit 112 assigns a user identifier i to each leaf node of the binary tree T after assigning a node number to each node. That is, the binary tree generation unit 112 determines a user identifier i to be associated with a leaf node for each leaf node, adds the user identifier i to the association information of the target leaf node, and adds the user identifier to the leaf node. i is assigned. The order in which the user identifier i is assigned to the leaf nodes can be changed as appropriate.
  • the binary tree output unit 113 outputs the binary tree T in which the node number is assigned to each node and the user identifier is assigned to the leaf node, and the user identifier set I to the node attribute processing unit 120.
  • the node attribute processing unit 120 includes an information input unit 121, a node category generation unit 122, a node attribute generation unit 123, and a user attribute generation unit 124. .
  • the information input unit 121 receives the binary tree T and the user identifier set I output from the tree structure generation unit 110.
  • the node category generation unit 122 and the node attribute generation unit 123 assign a node attribute NA to each node of the binary tree T output from the tree structure generation unit 110.
  • the node attribute NA is a combination of the category value nt that is a depth value and the node attribute value nx.
  • the node attribute NA is a value unique to each node, and is an example of a node unique value.
  • the node category generation unit 122 assigns the same category value nt to nodes having the same depth, and assigns different category values nt to nodes having different depths.
  • the node category generation unit 122 assigns the same category value nt as in FIG. 1 to each node.
  • the node attribute generation unit 123 sets a node attribute value nx for each node.
  • the node attribute generation unit 123 assigns a different node attribute value nx for each node to nodes having the same category value nt, that is, nodes having the same depth.
  • the same node attribute value nx may be assigned to nodes having different category values nt, that is, nodes not having the same depth. That is, the node attribute generation unit 123 assigns a value that is unique among at least nodes belonging to the same hierarchy as the node attribute value nx.
  • it is assumed that the node attribute generation unit 123 assigns a node attribute value nx similar to that in FIG. 1 to each node.
  • the node attribute generation unit 123 generates a node attribute table NTtable that is a table representing the correspondence between the node number and the node attribute NA.
  • a node attribute table NTtable is a table representing the correspondence between the node number and the node attribute NA.
  • An example of the node attribute table NTable is shown in FIG.
  • the node attribute generation unit 123 outputs the generated node attribute table NTable to the user attribute generation unit 124.
  • the user attribute generation unit 124 generates a user attribute table KATable that indicates the correspondence between the user identifier i and the user attribute KA.
  • a user attribute table KATable An example of the user attribute table KATable is shown in FIG.
  • the user attribute table KATable is used for key generation such as ID-based encryption, attribute-based encryption, and functional encryption.
  • the encryption attribute processing unit 130 includes an information input unit 131, a subtree search unit 132, a subtree root node accumulation unit 133, and an encryption attribute generation unit 134.
  • the subtree search unit 132 and the subtree root node accumulation unit 133 function as a node extraction unit.
  • the processing by the subtree search unit 132 and the subtree root node accumulation unit 133 corresponds to an example of node extraction processing.
  • the encryption attribute generation unit 134 functions as a conditional expression setting value designation unit. Further, the processing by the encryption attribute generation unit 134 corresponds to an example of conditional expression setting value designation processing.
  • the information input unit 131 receives the binary tree T and the node attribute table NTtable output from the node attribute processing unit 120. Further, the information input unit 131 receives the encrypted attribute name CN and the decryption permitted user identifier set J from the operator of the attribute generation device 100. The information input unit 131 stores the binary tree T, the node attribute table NTable, the encrypted attribute name CN, and the decryption permitted user identifier set J in a register in the processor 901 or the storage device 902. As shown in FIG. 2, the encryption attribute name CN is a name of a group of decryption permitted users. The decryption permitted user identifier set J is a set of decryption permitted user identifiers j.
  • the decryption permission user identifier j is a user identifier selected from the user identifier set I.
  • the decryption authorized user identifier j is a user identifier of the decryption authorized user.
  • the binary tree T received by the information input unit 131 includes a plurality of nodes including a plurality of leaf nodes, and each node is assigned a node-specific value that is a unique value for each node. A plurality of user identifiers are assigned to the node.
  • the subtree search unit 132 searches for a subtree in which the leaf node is configured by only the leaf node to which the decoding permitted user identifier j is assigned. More specifically, the subtree search unit 132 reads the binary tree T from the register or storage device 902, and sequentially specifies the nodes in the binary tree T as examination target nodes. Next, the subtree search unit 132 specifies a leaf node of the subtree having the examination target node as a root node. Further, the subtree search unit 132 determines whether or not all the leaf nodes of the subtree whose root node is the examination target leaf node are the leaf nodes to which the decryption permission user identifier j is assigned.
  • the subtree search unit 132 reads the decryption-permitted user identifier set J from the register or storage device 902, and the user identifiers of the leaf nodes of the subtree whose root node is the examination target node are included in the decryption-permitted user identifier set J It is determined whether or not the decryption permission user identifier j matches.
  • the subtree having the node of node number: 2 as the root node includes a leaf node corresponding to user identifier: C that is not a decryption-permitted user identifier. For this reason, the subtree search unit 132 does not employ a subtree having the node of node number: 2 as the root node.
  • the subtree having the node number: 3 as a root node includes leaf nodes corresponding to user identifiers E and F that are not decryption-permitted user identifiers. For this reason, the subtree search unit 132 does not employ a subtree having the node of node number: 3 as the root node.
  • the subtree having the node of node number: 4 as the root node includes only the leaf node corresponding to the user identifier: A that is a decryption-permitted user identifier and the user identifier: B that is a decryption-permitted user identifier. It has become.
  • the subtree search unit 132 employs a subtree having the node of node number: 4 as a root node.
  • the subtree having the node of node number: 5 as the root node includes a leaf node corresponding to user identifier: C that is not a decryption-permitted user identifier.
  • the subtree search unit 132 does not employ a subtree having the node of node number: 5 as the root node.
  • the subtree having the node number: 6 as a root node includes leaf nodes corresponding to user identifiers: E and F that are not decryption-permitted user identifiers.
  • the subtree search unit 132 does not employ a subtree having the node having the node number: 6 as a root node.
  • the subtree having the node of node number: 7 as the root node is a leaf node corresponding to the user identifier: G that is a decryption-permitted user identifier and only the leaf node corresponding to the user identifier: H that is a decryption-permitted user identifier. It has become. Therefore, the subtree search unit 132 employs a subtree having the node with the node number: 7 as a root node.
  • the subtree having the node of node number: 10 as the root node includes a leaf node corresponding to user identifier: C that is not a decryption-permitted user identifier. For this reason, the subtree search unit 132 does not employ a subtree having the node of node number: 10 as the root node. In the subtree having the node number: 11 as the root node, only the leaf node corresponding to the user identifier: D, which is the decryption-permitted user identifier, is the leaf node. For this reason, the subtree search unit 132 employs a subtree having the node of node number: 11 as a root node.
  • the subtree having the node of node number: 12 as the root node includes a leaf node corresponding to user identifier: E that is not a decryption-permitted user identifier. For this reason, the subtree search unit 132 does not employ a subtree having the node of node number: 12 as the root node.
  • the subtree having the node number: 13 as a root node includes a leaf node corresponding to the user identifier: F that is not a decryption-permitted user identifier. For this reason, the subtree search unit 132 does not employ a subtree having the node of node number: 13 as a root node.
  • the subtree search unit 132 is a subtree whose node number is 4 as a root node, a node tree whose node number is 7 as a root node, and a node whose node number is 11 as a root node. Adopt wood. Then, the subtree search unit 132 outputs the three subtrees obtained as a result of the search to the subtree root node accumulation unit 133 as a subtree sT. More specifically, the subtree search unit 132 stores the subtree sT in a register or storage device 902, and an area of the register or storage device 902 in which the subtree sT is stored (hereinafter referred to as a subtree sT storage region). ) To the subtree root node accumulation unit 133.
  • the subtree root node accumulation unit 133 reads the subtree sT from the subtree sT storage area notified from the subtree search unit 132 and extracts the root node of the subtree sT from the binary tree T.
  • the node extracted by the subtree root node accumulation unit 133 is a leaf node to which a decryption-permitted user identifier is assigned or an upper node to which a leaf node to which a decryption-permitted user identifier is assigned is connected.
  • the subtree search unit 132 has a subtree whose node is node number: 4 as a root node, a subtree whose node number is 11 as a root node, and a node number: 7
  • a partial tree having the node as a root node is read as a partial tree sT from the partial tree sT storage area.
  • the subtree root node accumulation unit 133 extracts a node having a node number: 4, a node having a node number: 11, and a node having a node number: 7. Then, the subtree root node accumulation unit 133 outputs the set L of node numbers of the extracted nodes to the encryption attribute generation unit 134. More specifically, the subtree root node accumulation unit 133 stores the node number set L in the register or storage device 902 and encrypts the register or storage device 902 area in which the node number set L is stored. The attribute generation unit 134 is notified.
  • the encryption attribute processing unit 130 specifies the node attribute (node specific value) assigned to the node extracted by the subtree root node accumulation unit 133 as a setting value of the conditional expression of the functional encryption method.
  • This conditional expression is a logical expression that defines a decryption permitted user.
  • the encryption attribute processing unit 130 searches the node attribute table NTtable for a node attribute corresponding to the node number included in the set L. Then, the encryption attribute processing unit 130 generates a logical expression in which all node attributes obtained by the search are connected with a logical sum (OR).
  • the encrypted attribute processing unit 130 further generates an encrypted attribute table CATable (FIG. 2) that associates the logical expression with the encrypted attribute name CN, and outputs the generated encrypted attribute table CATable.
  • an encrypted attribute table CATable (FIG. 2) that associates the logical expression with the encrypted attribute name CN, and outputs the generated encrypted attribute table CATable.
  • the information input unit 121 receives the binary tree T and the user identifier set I.
  • the node category generation unit 122 selects a root node in the binary tree T.
  • the node category generation unit 122 determines whether a category value is set in the hierarchy. If the category value has already been set, the node category generation unit 122 proceeds to S204a and assigns a category value corresponding to the node. If the category value is not set, the node category generation unit 122 proceeds to S204b and sets a new category value.
  • the node category generation unit 122 determines whether or not the category value assignment has been completed for all nodes belonging to the same hierarchy. If the assignment of category values has not ended, the node category generation unit 122 proceeds to S206, selects the next node, and returns to S203. If the assignment of category values has been completed, S207 is performed.
  • the node attribute generation unit 123 selects a root node in the binary tree T.
  • the node attribute generation unit 123 determines whether or not node attribute values have already been assigned to other nodes belonging to the same hierarchy. If the node attribute value has already been assigned to another node belonging to the same hierarchy, the node attribute generation unit 123 proceeds to S209a and sets a node attribute value different from the node attribute value of another node belonging to the same hierarchy to the node. assign. If no node attribute value is set for another node belonging to the same hierarchy, the node attribute generation unit 123 proceeds to S209b and sets an arbitrary node attribute value for the node.
  • the node attribute generation unit 123 determines whether or not assignment of node attribute values has been completed for all nodes belonging to the same hierarchy. If the assignment of the node attribute value has not ended, the node attribute generation unit 123 proceeds to S211 to select the next node and returns to S208. If the node attribute value assignment has been completed, the node attribute generation unit 123 proceeds to S212.
  • the node attribute generation unit 123 combines the category values and node attribute values of all nodes. As described above, a combination of a category value and a node attribute value is called a node attribute.
  • the node attribute generation unit 123 generates a node attribute table NTable by associating all the node numbers with the node attributes.
  • the user attribute generation unit 124 selects the leftmost leaf node of the binary tree T and stores the user identifier assigned to the selected leaf node. More specifically, the user attribute generation unit 124 stores the user identifier in the storage device 902 in FIG. In the example of the binary tree T in FIG. 1, the leaf node with the node number: 8 is the leftmost leaf node. Since the user identifier assigned to the leaf node with the node number: 8 is A, the user attribute generation unit 124 stores the user identifier: A.
  • the user attribute generation unit 124 accumulates node attributes of nodes on the path from the root node.
  • the node attributes accumulated in S215 are referred to as user attributes.
  • the user attribute generation unit 125 generates an empty user attribute table KATable, and adds a set of a user identifier and a user attribute to the user attribute table KATable. If the user attribute table KATable has been generated, the user attribute generation unit 125 only adds a combination of a user identifier and a user attribute to the user attribute table KATable.
  • the user attribute generation unit 124 determines whether or not a set of user identifiers and user attributes is stored in the user attribute table KATable for all leaf nodes. If there is a leaf node in which the combination of the user identifier and the user attribute is not stored in the user attribute table KATable, the user attribute generation unit 124 proceeds to S218, and is immediately adjacent to the leaf node on which the processing of S215 and S216 has been performed. And the user identifier assigned to the leaf node is stored. Then, the user attribute generation unit 124 returns to S215. If a set of user identifiers and user attributes is stored in the user attribute table KATable for all leaf nodes, S219 is performed.
  • the node category generation unit 122 outputs the node attribute table NTable, and the user attribute generation unit 124 outputs the user attribute table KATable.
  • the information input unit 131 receives the binary tree T, the decryption permitted user identifier set J, the node attribute table NTable, and the encrypted attribute name CN.
  • the subtree search unit 132 determines whether all of the decryption-permitted user identifiers j that are elements of the decryption-permitted user identifier set J are associated with the leaf nodes of the binary tree T. If all the decryption-permitted user identifiers j are associated with the leaf nodes of the binary tree T, the subtree search unit 132 proceeds to S303. If any one of the decryption-permitted user identifiers j is not associated with a leaf node, the subtree search unit 132 ends the process.
  • the subtree search unit 132 searches for a subtree having only leaf nodes corresponding to the decryption-permitted user identifier j as leaf nodes.
  • the subtree search unit 132 sets the node number: 4 to the root node. And a subtree having a node number of 11 as a root node and a subtree having a node number of 7 as a root node. Then, the subtree search unit 132 outputs the subtree obtained by the search to the subtree root node accumulation unit 133 as a subtree sT.
  • the subtree root node accumulation unit 133 extracts the root node of the subtree sT output from the subtree search unit 132. Then, the subtree root node accumulation unit 133 outputs the extracted set L of root nodes to the encryption attribute generation unit 134.
  • the encryption attribute generation unit 134 searches the node attribute table NTtable for the node attributes of the nodes included in the set L.
  • the encryption attribute generation unit 134 generates, as the encryption attribute CA, a logical expression obtained by connecting all the node attributes obtained in S305 with a logical sum (OR).
  • the encryption attribute generation unit 134 associates the encryption attribute name CN received in S301 with the encryption attribute CA generated in S306, and generates an encryption attribute table CATable.
  • the encryption attribute generation unit 134 outputs the encryption attribute table CATable.
  • a decryption-permitted user identifier is selected from the plurality of user identifiers.
  • the node attribute associated with the decryption-permitted user identifier is designated as the setting value of the conditional expression of the functional encryption scheme.
  • the attribute generation device 100 is a computer.
  • a processor 901 illustrated in FIG. 3 is an IC (Integrated Circuit) that performs processing.
  • the processor 901 is a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or the like.
  • 3 includes a RAM (Random Access Memory), a ROM (Read Only Memory), a flash memory, and an HDD (Hard). Disk Drive) and the like.
  • the storage device 902 also stores an OS (Operating System). At least a part of the OS is executed by the processor 901. While executing at least a part of the OS, the processor 901 performs the tree structure generation unit 110, the node attribute processing unit 120, the encryption attribute processing unit 130, the user information input unit 111, and the binary tree shown in FIG. Generator 112, binary tree output unit 113, information input unit 121, node category generation unit 122, node attribute generation unit 123, user attribute generation unit 124, information input unit 131, subtree shown in FIG.
  • a program that implements the functions of the search unit 132, the subtree root node accumulation unit 133, and the encryption attribute generation unit 134 (hereinafter collectively referred to as “unit”) is executed.
  • the attribute generation device 100 may include a plurality of processors.
  • information, data, signal values, and variable values indicating the processing results of “unit” are stored in the storage device 902, a register in the processor 901, or a cache memory.
  • the program for realizing the function of “unit” may be stored in a portable storage medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, or a DVD.
  • the attribute generation device 100 may be realized by a processing circuit 990.
  • the processing circuit 990 is a dedicated electronic circuit that realizes the function of “unit”.
  • the processing circuit 990 is assumed to be a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA (Gate Array), an ASIC (Application Specific Integrated Circuit), or an FPGA (Field-Programmable Gate Array). Is done.
  • the function of “unit” may be realized by one processing circuit 990, or may be realized by distributing the “unit” to a plurality of processing circuits 990.
  • attribute generation device 100 may be realized by dedicated hardware, and other functions may be realized by software (program).
  • processor 901, the storage device 902, and the processing circuit 990 are collectively referred to as “processing circuitry”. That is, regardless of whether the hardware configuration of the attribute generation device 100 is the hardware configuration of FIG. 3 or the hardware configuration of FIG. 16, the function of “unit” is realized by the processing circuitry. In addition, “part” may be read as “process”, “procedure”, or “processing”. Further, the function of “unit” may be realized by firmware.
  • 100 attribute generation device 110 tree structure generation unit, 120 node attribute processing unit, 130 encrypted attribute processing unit, 111 user information input unit, 112 binary tree generation unit, 113 binary tree output unit, 121 information input unit, 122 node category Generation unit, 123 node attribute generation unit, 124 user attribute generation unit, 131 information input unit, 132 subtree search unit, 133 subtree root node accumulation unit, 134 encrypted attribute generation unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

暗号化属性処理部(130)は、複数のリーフノードを含む複数のノードが含まれる二分木であって、ノードの各々に、ノードごとに固有の値であるノード固有値が割り当てられ、複数のリーフノードに、複数のユーザ識別子が割り当てられている二分木において、複数のユーザ識別子の中から選択された、関数型暗号方式に基づく暗号文の復号が許可される復号許可ユーザのユーザ識別子である復号許可ユーザ識別子が割り当てられているリーフノードのみでリーフノードが構成される部分木を探索する。更に、暗号化属性処理部(130)は、探索により得られた部分木内のルートノードを二分木から抽出する。更に、暗号化属性処理部(130)は、抽出されたノードに割り当てられているノード固有値を、復号許可ユーザを定義する、関数型暗号方式の条件式の設定値に指定する。

Description

情報処理装置及び情報処理方法及び情報処理プログラム
 本発明は、関数型暗号方式で用いられる条件式の設定値の決定に関する。
 なお、本明細書で言及する関数型暗号方式には、IDベース暗号方式、属性ベース暗号方式も含まれる。
 暗号文を送信する際に、複数の受信者を想定する技術をブロードキャスト暗号技術と呼ぶ。
 ブロードキャスト暗号技術では、暗号文作成者が、受信者の集合を指定し、その集合に含まれる受信者のみが復号できるように、暗号文を生成する。
 このようなブロードキャスト暗号技術にはいくつかの方式がある。
 一つ目の方法として、二分木を作成し、二分木に含まれる各ノードに鍵を割り当てる方法がある。
 この方法には、Complete Subtree法(CS法)とSubset Difference(SD法)と呼ばれる技術がある。
 CS法では、二分木の各リーフノード(以下、単にリーフともいう)にユーザを割り当てる。
 次に、二分木のルートノード及び全てのリーフノードに異なる鍵を割り当てる。
 ユーザは、ルートノードから自己が割り当てられているリーフノードまでの全てのノードの鍵を持つ。
 暗号文をブロードキャスト送信する際は、暗号文作成者は、二分木内で、送信先のユーザを含む最小の部分木を抽出し、抽出した部分木内のルートノードの鍵で暗号化を行い、暗号文をブロードキャスト送信する。
 二つ目の方法として、関数型暗号を用いる方法がある(例えば、特許文献1)。
 この方法では、暗号文は、ユーザの属性を論理和(OR)や論理積(AND)で組み合わせた条件式を用いて生成される。
 ユーザは、条件式に含まれる属性と対応付けて生成された鍵を所持していれば、当該鍵を用いて暗号文を復号することができる。
 また、従来から、二分木を使った鍵配布や、関数型暗号の構成方法が提案されている(例えば、非特許文献1及び非特許文献2)。
国際公開第2011/135895号
Dalit Naor,Moni Naor and Jeffery Lotspiech, "Revocation and tracing schemes for stateless receivers", Advances in Cryptology CRYPTO 2001 Lecture Notes in Computer Science Volume 2139, 2001, pp 41-62 Vipul Goyal、Omkant Pandey、Amit Sahai and Brent Waters, "Attribute-based encryption for fine-grained access control of encrypted data",The 13th ACM Conference on Computer and Communications Security
 非特許文献1の技術及び非特許文献2の技術では、ユーザに鍵を配布するよりも前に、各ユーザの属性を把握する必要がある。
 つまり、非特許文献1の技術及び非特許文献2の技術では、各ユーザの属性を把握した後でないと、鍵の配布先のユーザ、すなわち、暗号文の復号を許可する復号許可ユーザを指定することができないという課題がある。
 企業などで非特許文献1の技術又は非特許文献2の技術を用いる場合は、あらかじめ企業内の組織構造を確定させ、各ユーザの属性を把握した後でないと、復号許可ユーザを指定することができない。
 本発明は、このような課題を解決することを主な目的とし、事前にユーザの属性を把握しなくても復号許可ユーザを指定できるようにすることを主な目的とする。
 本発明に係る情報処理装置は、
 複数のリーフノードを含む複数のノードが含まれる二分木であって、ノードの各々に、ノードごとに固有の値であるノード固有値が割り当てられ、前記複数のリーフノードに、複数のユーザ識別子が割り当てられている二分木において、前記複数のユーザ識別子の中から選択された、関数型暗号方式に基づく暗号文の復号が許可される復号許可ユーザのユーザ識別子である復号許可ユーザ識別子が割り当てられているリーフノードのみでリーフノードが構成される部分木を探索し、探索により得られた部分木内のルートノードを前記二分木から抽出するノード抽出部と、
 前記ノード抽出部により抽出されたノードに割り当てられているノード固有値を、前記復号許可ユーザを定義する、前記関数型暗号方式の条件式の設定値に指定する条件式設定値指定部とを有する。
 本発明では、復号許可ユーザ識別子に対応付けられているノード固有値が、関数型暗号方式の条件式の設定値に指定される。
 このため、本発明によれば、事前にユーザの属性を把握していなくても、復号許可ユーザを条件式において指定することができる。
実施の形態1に係るノード属性及びユーザ識別子が割り当てられている二分木の例を示す図。 実施の形態1に係る暗号化属性テーブルの例を示す図。 実施の形態1に係る属性生成装置の構成例を示す図。 実施の形態1に係る木構造生成部の構成例を示す図。 実施の形態1に係る二分木の例を示す図。 実施の形態1に係るノード属性処理部の構成例を示す図。 実施の形態1に係るノード属性テーブルの例を示す図。 実施の形態1に係るユーザ属性テーブルの例を示す図。 実施の形態1に係るユーザ属性生成部の動作例を示すフローチャート図。 実施の形態1に係るノード属性処理部の動作例を示すフローチャート図。 実施の形態1に係るノード属性処理部の動作例を示すフローチャート図。 実施の形態1に係る暗号化属性処理部の構成例を示す図。 実施の形態1に係る暗号化属性処理部の動作例を示すフローチャート図。 実施の形態1に係る暗号化属性処理部の動作例を示すフローチャート図。 実施の形態1に係る部分木探索の例を示す図。 実施の形態1に係る属性生成装置のハードウェア構成例を示す図。
実施の形態1.
 実施の形態の説明では、次式は、ある種類(カテゴリ)Aの属性値がaであるという事象を表す。
 (A=a)
 種類Aが「性別」であれば、値aは「男性」又は「女性」である。
 この場合は、(性別=男性)又は(性別=女性)と表記される。
 また、本実施の形態では、二分木において、ノードを結ぶ線を経路(パス)と呼ぶ。
 ノードとノードを結ぶ経路の長さは1である。
 二分木において、「深さ」はルートノードから対象のノードに至るまでの経路の長さを意味する。
 またルートノードの深さは0とする。
 完全2分木とは、リーフノード以外の全てのノードが2つの子ノードを持ち、また、すべてのリーフノードがルートノードから等しい距離にある二分木である。
 復号許可ユーザは、関数型暗号方式に基づく暗号文の復号が許可されるユーザである。
 図1は、本実施の形態に係る属性生成装置100で生成される二分木の例を示す。
 図1に示す二分木は、深さ3の完全二分木である。
 また、図1に示す二分木では、A~Hのユーザ識別子がリーフノードに割り当てられている。
 ユーザ識別子A~Hは、ユーザA~Hの識別子である。
 図1において、1~15の値をノード番号という。
 また、01~38の値は、ノード属性値という。
 ノード属性値において、一桁目の値は深さを表す値であり、二桁目の値は、ルートノードから昇順で設定された値である。
 ノードカテゴリdの値(カテゴリ値という)は、深さを表す値である。
 また、深さを階層ともいい、例えば「同じ深さにあるノード」を「同じ階層に属するノード」とも表現する。
 図1において、d=0(深さ0)の階層に属するノードは、ノード番号が1のルートノードのみである。
 d=1(深さ1)の階層に属するノードは、ノード番号が2のノードとノード番号が3のノードである。
 d=2(深さ2)の階層に属するノードは、ノード番号が4~7のノードである。
 d=3(深さ3)の階層に属するノードは、ノード番号が8~15のリーフノードである。
 深さの値と、ノード属性値との組合せを、ノード属性という。
 ルートノードのノード属性は、前述の(A=a)の形式で表記すると、(0=01)と表される。
 また、ノード番号が8のリーフノードのノード属性は、(3=31)と表される。
 ノード属性は、ノードごとに固有の値であり、ノード固有値ともいう。
 ユーザA~Hが持つユーザ属性は、以下のようになる。
 ユーザA:0=01、1=11、2=21、3=31
 ユーザB:0=01、1=11、2=21、3=32
 ユーザC:0=01、1=11、2=22、3=33
 ユーザD:0=01、1=11、2=22、3=34
 ユーザE:0=01、1=12、2=23、3=35
 ユーザF:0=01、1=12、2=23、3=36
 ユーザG:0=01、1=12、2=24、3=37
 ユーザH:0=01、1=12、2=24、3=38
 上記のように、本実施の形態では、ユーザ属性は、ノード属性の組み合わせで定義される。
 図2は、本実施の形態に係る暗号化属性テーブルの例を示す。
 図2において、暗号化属性名CNには、復号許可ユーザのグループの名称が記述される。
 暗号化属性CAには、ノード属性が論理和(OR)により組み合わされた論理式が記述される。
 暗号化属性CAに記述される論理式は、関数型暗号方式の条件文に設定する設定値である。
 暗号化属性CAに記述される論理式を条件文に設定することで、復号許可ユーザを定義することができる。
 図2の1行目では、暗号化属性名CN:「グループ1」に対して、暗号化属性CA:((3=31)OR(3=34))が記述されている。
 ノード属性:(3=31)は、図1のノード番号:8のリーフノードのノード属性であり、当該リーフノードには、ユーザ識別子:Aが割り当てられている。
 また、ノード属性:(3=34)は、図1のノード番号:11のリーフノードのノード属性であり、当該リーフノードには、ユーザ識別子:Dが割り当てられている。
 従って、図2の1行目は、復号許可ユーザとしてユーザAとユーザDを条件式に設定する例を示している。
 本実施の形態に係る属性生成装置属性生成装置100は、図1に示す二分木を用いて、図2に例示する暗号化属性テーブルを生成する。
 暗号化属性テーブルに記載されている論理式は、関数型暗号の条件式に設定されて、鍵生成及び暗号化に用いられる。
***構成の説明***
 図3は、本実施の形態に係る属性生成装置100の構成例を示す。
 属性生成装置100は、情報処理装置の例に相当する。
 また、属性生成装置100の動作が、情報処理方法の例に相当する。
 図3に示すように、本実施の形態に係る属性生成装置100は、木構造生成部110、ノード属性処理部120、暗号化属性処理部130を備える。
 属性生成装置100には、少なくとも、プロセッサ901、記憶装置902というハードウェアが含まれる。
 記憶装置902には、木構造生成部110、ノード属性処理部120、暗号化属性処理部130の機能を実現するプログラム(情報処理プログラム)が記憶されている。
 プロセッサ901がこのプログラムを実行して、木構造生成部110、ノード属性処理部120、暗号化属性処理部130の後述する動作を行う。
 図3では、プロセッサ901が木構造生成部110、ノード属性処理部120、暗号化属性処理部130の機能を実現するプログラムを実行している状態を模式的に表している。
***動作の説明***
 先ず、木構造生成部110の動作例を図4を参照して説明する。
 図4に示すように、木構造生成部110には、ユーザ情報入力部111、二分木生成部112及び二分木出力部113が含まれる。
 ユーザ情報入力部111は、属性生成装置100のオペレータから、ユーザの総人数N及びユーザ識別子iの集合I(以下、ユーザ識別子集合Iとも表記する)を受信する。
 二分木生成部112は、ユーザの総人数N及びユーザ識別子iの集合Iに基づき、二分木Tを生成する。
 より具体的には、二分木生成部112は、少なくともユーザの総人数Nと同数のリーフノードを持つ二分木を生成する。
 また、二分木生成部112は、各ノードにノード番号を割り当てる。
 つまり、二分木生成部112は、図1と同様の順序で、二分木Tの各ノードのノード番号を決定し、ノードの位置(d=0の階層、d=1の階層の右側、d=1の階層の左側等)と、ノード番号とを対応付ける対応付け情報をノード単位で生成することにより、各ノードにノード番号を割り当てる。
 具体的には、二分木生成部112は、ルートノードにノード番号:1を割り当てる。
 また、二分木生成部112は、深さの値の順にノード番号を割り当てる。
 つまり、d=0の階層に属するノード、d=1の階層に属するノード、d=2の階層に属するノード、d=3の階層に属するノードの順にノード番号を割り当てる。
 また、二分木生成部112は、同じ深さのノードの間では、左側のノードから順にノード番号を割り当てる。
 二分木生成部112は、各ノードにノード番号を割り当てた後に、二分木Tの各リーフノードに対して、ユーザ識別子iを割り当てる。
 つまり、二分木生成部112は、リーフノードごとに、リーフノードと対応付けるユーザ識別子iを決定し、対象となっているリーフノードの対応付け情報にユーザ識別子iを追記して、リーフノードにユーザ識別子iを割り当てる。
 ユーザ識別子iをリーフノードに割り当てる順序は、適宜変更することができる。
 ユーザ情報入力部111がN=8、I={A、B、C、D、E、F、G、H}を入力した場合は、二分木生成部112は、図5に示す二分木Tを生成する。
 つまり、二分木生成部112は、リーフノード数が8の木構造データを生成し、ノード番号:8~15のリーフノードに、ユーザ識別子A~Hを割り当てる。
 二分木出力部113は、各ノードにノード番号が割り当てられ、リーフノードにユーザ識別子が割り当てられている二分木Tと、ユーザ識別子集合Iとをノード属性処理部120に出力する。
 次に、ノード属性処理部120の動作例を図6を参照して説明する。
 図6に示すように、ノード属性処理部120には、情報入力部121、ノードカテゴリ生成部122、ノード属性生成部123及びユーザ属性生成部124が含まれる。。
 情報入力部121は、木構造生成部110から出力された二分木Tとユーザ識別子集合Iを受信する。
 ノードカテゴリ生成部122及びノード属性生成部123は、木構造生成部110から出力された二分木Tの各ノードにノード属性NAを割り当てる。
 前述したように、ノード属性NAは、深さの値であるカテゴリ値ntと、ノード属性値nxとの組合せである。
 ノード属性NAは、ノードごとに固有の値であり、ノード固有値の例である。
 ノードカテゴリ生成部122は、深さが同じノードに対して同じカテゴリ値ntを割り当て、深さが異なるノードに対しては異なるカテゴリ値ntを割り当てる。
 ここでは、ノードカテゴリ生成部122は、図1と同様のカテゴリ値ntを各ノードに割り当てるものとする。
 なお、ノード属性処理部120は、d=0、1、2、3とは別のカテゴリ値ntを各ノードに割り当ててもよい。
 次に、ノード属性生成部123が、各ノードにノード属性値nxを設定する。
 ノード属性生成部123は、カテゴリ値ntが同じノード、すなわち同じ深さのノードに対しては、ノードごとに異なるノード属性値nxを割り当てる。
 カテゴリ値ntが異なるノード、すなわち同じ深さではないノードに対しては、同じノード属性値nxを割り当ててもよい。
 つまり、ノード属性生成部123は、ノード属性値nxとして、少なくとも同じ階層に属するノード間で一意である値を割り当てる。
 ここでは、ノード属性生成部123は、図1と同様のノード属性値nxを各ノードに割り当てるものとする。
 また、ノード属性生成部123は、ノード番号とノード属性NAの対応関係を表すテーブルであるノード属性テーブルNTableを生成する。
 ノード属性テーブルNTableの例を、図7に示す。
 更に、ノード属性生成部123は、生成したノード属性テーブルNTableをユーザ属性生成部124に出力する。
 また、ユーザ属性生成部124は、ノード属性テーブルNTableを参照して、ユーザ識別子iごとに、ユーザ属性を抽出する。
 具体的には、ユーザ属性生成部124は、ユーザ識別子iごとに、対応するリーフノードから二分木Tのルートノードまでのパスに含まれる各ノードに割り当てられているノード属性(nt=nx)をユーザ属性KAとして抽出する。
 また、ユーザ属性生成部124は、ユーザ識別子iとユーザ属性KAとの対応関係を表すユーザ属性テーブルKATableを生成する。
 ユーザ属性テーブルKATableの例を、図8に示す。
 ユーザ属性テーブルKATableはIDベース暗号、属性ベース暗号、関数型暗号などの鍵生成に用いられる。
 次に、暗号化属性処理部130の動作例を図12を参照して説明する。
 図12に示すように暗号化属性処理部130には、情報入力部131、部分木探索部132、部分木ルートノード集積部133及び暗号化属性生成部134が含まれる。
 部分木探索部132及び部分木ルートノード集積部133は、ノード抽出部として機能する。
 また、部分木探索部132及び部分木ルートノード集積部133による処理は、ノード抽出処理の例に相当する。
 暗号化属性生成部134は、条件式設定値指定部として機能する。
 また、暗号化属性生成部134による処理は、条件式設定値指定処理の例に相当する。
 情報入力部131は、ノード属性処理部120から出力された二分木Tとノード属性テーブルNTableを受信する。
 更に、情報入力部131は、属性生成装置100のオペレータから、暗号化属性名CNと、復号許可ユーザ識別子集合Jを受信する。
 情報入力部131は、二分木T、ノード属性テーブルNTable、暗号化属性名CN、復号許可ユーザ識別子集合Jをプロセッサ901内のレジスタ又は記憶装置902に格納する。
 暗号化属性名CNは、図2に示すように、復号許可ユーザのグループの名称である。
 復号許可ユーザ識別子集合Jは、復号許可ユーザ識別子jの集合である。
 復号許可ユーザ識別子jは、ユーザ識別子集合Iの中から選択されたユーザ識別子である。
 復号許可ユーザ識別子jは、復号許可ユーザのユーザ識別子である。
 また、情報入力部131が受信した二分木Tには、複数のリーフノードを含む複数のノードが含まれ、ノードの各々に、ノードごとに固有の値であるノード固有値が割り当てられ、複数のリーフノードに、複数のユーザ識別子が割り当てられている。
 部分木探索部132は、二分木Tにおいて、復号許可ユーザ識別子jが割り当てられているリーフノードのみでリーフノードが構成される部分木を探索する。
 より具体的には、部分木探索部132は、レジスタ又は記憶装置902から二分木Tを読み出し、二分木T内のノードを順に検討対象ノードとして指定する。
 次に、部分木探索部132は、検討対象ノードをルートノードとする部分木のリーフノードを特定する。
 更に、部分木探索部132は、検討対象リーフノードをルートノードとする部分木のリーフノードの全てが、復号許可ユーザ識別子jが割り当てられているリーフノードであるか否かを判定する。
 つまり、部分木探索部132は、レジスタ又は記憶装置902から復号許可ユーザ識別子集合Jを読み出し、検討対象ノードをルートノードとする部分木のリーフノードのユーザ識別子が、復号許可ユーザ識別子集合Jに含まれる復号許可ユーザ識別子jと一致するか否かを判定する。
 以下では、図15に示されるように、情報入力部131が、復号許可ユーザ識別子集合J={A、B、D、G、H}を受信した場合を例にして説明を行う。
 例えば、部分木探索部132は、d=1の階層のノード→d=2の階層のノード→d=3の階層のノードの順に検討対象ノードを指定する。
 ノード番号:2のノードをルートノードとする部分木には、復号許可ユーザ識別子ではないユーザ識別子:Cに対応するリーフノードが含まれてしまう。
 このため、部分木探索部132は、ノード番号:2のノードをルートノードとする部分木は採用しない。
 ノード番号:3のノードをルートノードとする部分木には、復号許可ユーザ識別子ではないユーザ識別子:E、Fに対応するリーフノードが含まれてしまう。
 このため、部分木探索部132は、ノード番号:3のノードをルートノードとする部分木は採用しない。
 ノード番号:4のノードをルートノードとする部分木は、復号許可ユーザ識別子であるユーザ識別子:Aに対応するリーフノードと復号許可ユーザ識別子であるユーザ識別子:Bに対応するリーフノードのみがリーフノードとなっている。
 このため、部分木探索部132は、ノード番号:4のノードをルートノードとする部分木を採用する。
 ノード番号:5のノードをルートノードとする部分木には、復号許可ユーザ識別子ではないユーザ識別子:Cに対応するリーフノードが含まれてしまう。
 このため、部分木探索部132は、ノード番号:5のノードをルートノードとする部分木は採用しない。
 ノード番号:6のノードをルートノードとする部分木には、復号許可ユーザ識別子ではないユーザ識別子:E、Fに対応するリーフノードが含まれてしまう。
 このため、部分木探索部132は、ノード番号:6のノードをルートノードとする部分木は採用しない。
 ノード番号:7のノードをルートノードとする部分木は、復号許可ユーザ識別子であるユーザ識別子:Gに対応するリーフノードと復号許可ユーザ識別子であるユーザ識別子:Hに対応するリーフノードのみがリーフノードとなっている。
 このため、部分木探索部132は、ノード番号:7のノードをルートノードとする部分木を採用する。
 ノード番号:10のノードをルートノードとする部分木には、復号許可ユーザ識別子ではないユーザ識別子:Cに対応するリーフノードが含まれてしまう。
 このため、部分木探索部132は、ノード番号:10のノードをルートノードとする部分木は採用しない。
 ノード番号:11のノードをルートノードとする部分木は、復号許可ユーザ識別子であるユーザ識別子:Dに対応するリーフノードのみがリーフノードとなっている。
 このため、部分木探索部132は、ノード番号:11のノードをルートノードとする部分木を採用する。
 ノード番号:12のノードをルートノードとする部分木には、復号許可ユーザ識別子ではないユーザ識別子:Eに対応するリーフノードが含まれてしまう。
 このため、部分木探索部132は、ノード番号:12のノードをルートノードとする部分木は採用しない。
 ノード番号:13のノードをルートノードとする部分木には、復号許可ユーザ識別子ではないユーザ識別子:Fに対応するリーフノードが含まれてしまう。
 このため、部分木探索部132は、ノード番号:13のノードをルートノードとする部分木は採用しない。
 以上より、部分木探索部132は、ノード番号:4のノードをルートノードとする部分木、ノード番号:7のノードをルートノードとする部分木、ノード番号:11のノードをルートノードとする部分木を採用する。
 そして、部分木探索部132は、探索の結果得られた3つの部分木を部分木sTとして部分木ルートノード集積部133に出力する。
 より具体的には、部分木探索部132は、部分木sTをレジスタ又は記憶装置902に格納し、部分木sTが格納されているレジスタ又は記憶装置902の領域(以下、部分木sT格納領域という)を部分木ルートノード集積部133に通知する。
 部分木ルートノード集積部133は、部分木探索部132から通知された部分木sT格納領域から部分木sTを読み出し、部分木sTのルートノードを二分木Tから抽出する。
 部分木ルートノード集積部133が抽出するノードは、復号許可ユーザ識別子が割り当てられているリーフノード、または復号許可ユーザ識別子が割り当てられているリーフノードが接続している上位ノードである。
 ここでも、図15に示されるように、情報入力部131が、復号許可ユーザ識別子集合J={A、B、D、G、H}を受信した場合を想定する。
 前述したように、この場合は、部分木探索部132は、ノード番号:4のノードをルートノードとする部分木と、ノード番号:11のノードをルートノードとする部分木と、ノード番号:7のノードをルートノードとする部分木を部分木sTとして部分木sT格納領域から読み出す。
 部分木ルートノード集積部133は、ノード番号:4のノード、ノード番号:11のノード、ノード番号:7のノードを抽出する。
 そして、部分木ルートノード集積部133は、抽出したノードのノード番号の集合Lを暗号化属性生成部134に出力する。
 より具体的には、部分木ルートノード集積部133は、ノード番号の集合Lをレジスタ又は記憶装置902に格納し、ノード番号の集合Lが格納されているレジスタ又は記憶装置902の領域を暗号化属性生成部134に通知する。
 暗号化属性処理部130は、部分木ルートノード集積部133により抽出されたノードに割り当てられているノード属性(ノード固有値)を、関数型暗号方式の条件式の設定値に指定する。
 この条件式は、復号許可ユーザを定義する論理式である。
 暗号化属性処理部130は、集合Lに含まれるノード番号に対応するノード属性をノード属性テーブルNTableから検索する。
 そして、暗号化属性処理部130は、検索により得られたノード属性を全て、論理和(OR)でつないだ論理式を生成する。
 部分木ルートノード集積部133から、集合Lとして、ノード番号:4、ノード番号:11、ノード番号:7が通知されている場合は、暗号化属性処理部130は、ノード属性テーブルNTableから(2=21)、(3=34)、(2=24)のノード属性を得る。
 そして、暗号化属性処理部130は、以下の論理式を生成する。
 (2=21)OR(3=34)OR(2=24)
 この論理式が、関数型暗号方式の条件式の設定値である。
 暗号化属性処理部130は、更に、上記論理式と暗号化属性名CNとを対応付ける暗号化属性テーブルCATable(図2)を生成し、生成した暗号化属性テーブルCATableを出力する。
 次に、図9、図10、図11を参照しながら、ノード属性処理部120の各部の動作を説明する。
 S201において、情報入力部121は、二分木Tと、ユーザ識別子集合Iを受信する。
 S202において、ノードカテゴリ生成部122が、二分木T内のルートノードを選択する。
 S203において、ノードカテゴリ生成部122は、階層にカテゴリ値が設定されているか否かを判定する。
  カテゴリ値が既に設定されていれば、ノードカテゴリ生成部122は、S204aに進み、ノードに対応するカテゴリ値を割り当てる。
  カテゴリ値が未設定であれば、ノードカテゴリ生成部122は、S204bに進み、新たなカテゴリ値を設定する。
 S205において、ノードカテゴリ生成部122は、同じ階層に属する全てのノードに対して、カテゴリ値の割り当てが終了したか否かを判定する。
 カテゴリ値の割り当てが終了していなければ、ノードカテゴリ生成部122は、S206に進み、次のノードを選択し、S203へ戻る。
 カテゴリ値の割り当てが終了していれば、S207が行われる。
 S207において、ノード属性生成部123が、二分木T内のルートノードを選択する。
 S208において、ノード属性生成部123は、同じ階層に属する他のノードにノード属性値が既に割り当てられているか否かを判定する。
 同じ階層に属する他のノードにノード属性値が既に割り当てられている場合は、ノード属性生成部123は、S209aに進み、同じ階層に属する他のノードのノード属性値と異なるノード属性値をノードに割り当てる。
 同じ階層に属する他のノードにノード属性値が設定されていない場合は、ノード属性生成部123は、S209bに進み、任意のノード属性値をノードに設定する。
 S210において、ノード属性生成部123は、同じ階層に属する全てのノードに対して、ノード属性値の割り当てが終了したか否かを判定する。
 ノード属性値の割り当てが終了していなければ、ノード属性生成部123は、S211に進み、次のノードを選択し、S208へ戻る。
 ノード属性値の割り当てが終了していれば、ノード属性生成部123は、S212に進む。
 S212において、ノード属性生成部123は、全てのノードのカテゴリ値とノード属性値とを組み合わせる。
 前述のように、カテゴリ値とノード属性値との組合せをノード属性という。
 S213において、ノード属性生成部123は、全てのノード番号とノード属性とを対応付けてノード属性テーブルNTableを生成する。
 また、S214において、ユーザ属性生成部124が、二分木Tの最も左のリーフノードを選択し、選択したリーフノードに割り当てられているユーザ識別子を記憶する。
 より具体的には、ユーザ属性生成部124は、ユーザ識別子を図3の記憶装置902に格納する。
 図1の二分木Tの例では、ノード番号:8のリーフノードが最も左のリーフノードである。
 そして、ノード番号:8のリーフノードに割り当てられているユーザ識別子はAであるため、ユーザ属性生成部124は、ユーザ識別子:Aを記憶する。
 S215において、ユーザ属性生成部124は、ルートノードからのパス上のノードのノード属性を集積する。
 図1の二分木Tにおいて、ルートノードからノード番号:8のノードに至るパスには、ノード番号:1のノード、ノード番号:2のノード、ノード番号:4のノード、ノード番号:8のノードが含まれる。
 このため、ユーザ属性生成部124は、(0=01)、(1=11)、(2=21)、(3=31)のノード属性を集積する。
 前述のように、S215で集積されたノード属性をユーザ属性という。
 S216において、ユーザ属性生成部125は、空のユーザ属性テーブルKATableを生成し、ユーザ識別子とユーザ属性との組をユーザ属性テーブルKATableに追加する。
 ユーザ属性テーブルKATableが生成済みであれば、ユーザ属性生成部125は、ユーザ識別子とユーザ属性との組をユーザ属性テーブルKATableに追加するのみである。
 S217において、ユーザ属性生成部124は、全てのリーフノードについてユーザ識別子とユーザ属性との組がユーザ属性テーブルKATableに格納されているか否かを判定する。
 ユーザ識別子とユーザ属性との組がユーザ属性テーブルKATableに格納されていないリーフノードがある場合は、ユーザ属性生成部124は、S218に進み、S215及びS216の処理が行われたリーフノードの右隣のリーフノードを選択し、当該リーフノードに割り当てられているユーザ識別子を記憶する。
 そして、ユーザ属性生成部124はS215に戻る。
 全てのリーフノードについてユーザ識別子とユーザ属性との組がユーザ属性テーブルKATableに格納されている場合は、S219が行われる。
 S219では、ノードカテゴリ生成部122がノード属性テーブルNTableを出力し、ユーザ属性生成部124がユーザ属性テーブルKATableを出力する。
 次に、図13及び図14を参照しながら、暗号化属性処理部130の各部の動作を説明する。
 S301において、情報入力部131は、二分木T、復号許可ユーザ識別子集合J、ノード属性テーブルNTable、暗号化属性名CNを受信する。
 S302において、部分木探索部132は、復号許可ユーザ識別子集合Jの要素である復号許可ユーザ識別子jが全て二分木Tのリーフノードと対応付けられているかを判定する。
 全ての復号許可ユーザ識別子jが二分木Tのリーフノードに対応付けられていれば、部分木探索部132はS303に進む。
 いずれかの復号許可ユーザ識別子jがリーフノードに対応付けられていなければ、部分木探索部132は処理を終了する。
 S303において、部分木探索部132は、復号許可ユーザ識別子jと対応するリーフノードのみをリーフノードとする部分木を探索する。
 前述したとおり、図15に示すように、復号許可ユーザ識別子集合J={A、B、D、G、H}が指定された場合は、部分木探索部132は、ノード番号:4をルートノードとする部分木、ノード番号:11をルートノードとする部分木、ノード番号:7をルートノードとする部分木を得る。
 そして、部分木探索部132は、探索により得られた部分木を部分木sTとして部分木ルートノード集積部133に出力する。
 S304において、部分木ルートノード集積部133は、部分木探索部132から出力された部分木sTのルートノードを抽出する。
 そして、部分木ルートノード集積部133は、抽出したルートノードの集合Lを暗号化属性生成部134に出力する。
 S305において、暗号化属性生成部134は、集合Lに含まれるノードのノード属性をノード属性テーブルNTableから検索する。
 S306において、暗号化属性生成部134は、S305で得られたノード属性を全て論理和(OR)でつないだ論理式を暗号化属性CAとして生成する。
 図15の例では、ノード番号4、11、7のノード属性は、それぞれ(2=21)、(3=34)、(2=24)、である。
 このため、暗号化属性生成部134は、暗号化属性CAとして、「((2=21)OR(3=34)OR(2=24))」を生成する。
 S307において、暗号化属性生成部134は、S301で受信された暗号化属性名CNと、S306で生成された暗号化属性CAとを対応付けて、暗号化属性テーブルCATableを生成する。
 最後に、S308において、暗号化属性生成部134は、暗号化属性テーブルCATableを出力する。
***実施の形態の効果の説明***
 このように、本実施の形態では、ノード固有値が割り当てられている複数のリーフノードに複数のユーザ識別子が割り当てられた後に、複数のユーザ識別子の中から復号許可ユーザ識別子が選択される。
 そして、復号許可ユーザ識別子が選択されると、復号許可ユーザ識別子に対応付けられているノード属性が、関数型暗号方式の条件式の設定値に指定される。
 このように、本実施の形態によれば、事前にユーザの属性を把握していなくても、復号許可ユーザを条件式において指定することができる。
 また、本実施の形態では、一部のユーザを復号許可ユーザから除外する場合にも、1回の暗号化で一部のユーザを除く復号許可ユーザに対する暗号文を生成することができる。
 図15に示すように、ユーザ={A、B、C、D、E、F、G、H}のうちのユーザ={C、E、F}を復号許可ユーザから除外する場合は、前述のように、暗号化属性CAである「((2=21)OR(3=34)OR(2=24))」を関数型暗号方式の条件式に設定すれば、1回の処理で復号許可ユーザ={A、B、D、G、H}のみが復号可能な暗号文を生成することができる。
 非特許文献1に記載されている方法において、復号を許可するユーザから一部のユーザを除く場合には、暗号文数が増加する。
 例えば、図15のように、ユーザ={C、E、F}を復号許可ユーザから除外する場合は、復号許可ユーザ={A、B、D、G、H}の個々のユーザに対して暗号化を行い、個々のユーザ向けの暗号文を生成する必要がある。
 このため、非特許文献1の方法では、4回の暗号化により4つの暗号文を生成することになる。
 本実施の形態によれば、前述したように、一部のユーザを復号許可ユーザから除外する場合にも、1回の暗号化で一部のユーザを除いた復号許可ユーザに対する暗号文を生成することができる。
***ハードウェア構成の補足説明***
 最後に、属性生成装置100のハードウェア構成の補足説明を行う。
 属性生成装置100はコンピュータである。
 図3に示すプロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。
 プロセッサ901は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
 図3に示す記憶装置902は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard
 Disk Drive)等である。
 また、記憶装置902には、OS(Operating System)も記憶されている。
 そして、OSの少なくとも一部がプロセッサ901に実行される。
 プロセッサ901はOSの少なくとも一部を実行しながら、図3に示される木構造生成部110、ノード属性処理部120、暗号化属性処理部130、図4に示されるユーザ情報入力部111、二分木生成部112、二分木出力部113、図6に示される情報入力部121、ノードカテゴリ生成部122、ノード属性生成部123、ユーザ属性生成部124、図12に示される情報入力部131、部分木探索部132、部分木ルートノード集積部133及び暗号化属性生成部134(以下、これらをまとめて「部」という)の機能を実現するプログラムを実行する。
 図3では、1つのプロセッサが図示されているが、属性生成装置100が複数のプロセッサを備えていてもよい。
 また、「部」の処理の結果を示す情報やデータや信号値や変数値が、記憶装置902、又は、プロセッサ901内のレジスタ又はキャッシュメモリに記憶される。
 また、「部」の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記憶媒体に記憶されてもよい。
 また、図16に示すように、属性生成装置100は、処理回路990で実現されてもよい。
 処理回路990は、「部」の機能を実現する専用の電子回路である。
 処理回路990は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)が想定される。
 「部」の機能を1つの処理回路990で実現してもよいし、「部」を複数の処理回路990に分散させて実現してもよい。
 また、属性生成装置100の一部の機能を専用のハードウェアで実現し、他の機能をソフトウェア(プログラム)で実現するようにしてもよい。
**付記**
 プロセッサ901及び記憶装置902と、処理回路990とを、総称して「プロセッシングサーキットリー」という。
 つまり、属性生成装置100のハードウェア構成が図3のハードウェア構成、図16のハードウェア構成のいずれであっても、「部」の機能は、プロセッシングサーキットリーにより実現される。
 また、「部」を「工程」又は「手順」又は「処理」に読み替えてもよい。
 また、「部」の機能をファームウェアで実現してもよい。
 100 属性生成装置、110 木構造生成部、120 ノード属性処理部、130 暗号化属性処理部、111 ユーザ情報入力部、112 二分木生成部、113 二分木出力部、121 情報入力部、122 ノードカテゴリ生成部、123 ノード属性生成部、124 ユーザ属性生成部、131 情報入力部、132 部分木探索部、133 部分木ルートノード集積部、134 暗号化属性生成部。

Claims (6)

  1.  複数のリーフノードを含む複数のノードが含まれる二分木であって、ノードの各々に、ノードごとに固有の値であるノード固有値が割り当てられ、前記複数のリーフノードに、複数のユーザ識別子が割り当てられている二分木において、前記複数のユーザ識別子の中から選択された、関数型暗号方式に基づく暗号文の復号が許可される復号許可ユーザのユーザ識別子である復号許可ユーザ識別子が割り当てられているリーフノードのみでリーフノードが構成される部分木を探索し、探索により得られた部分木内のルートノードを前記二分木から抽出するノード抽出部と、
     前記ノード抽出部により抽出されたノードに割り当てられているノード固有値を、前記復号許可ユーザを定義する、前記関数型暗号方式の条件式の設定値に指定する条件式設定値指定部とを有する情報処理装置。
  2.  前記ノード抽出部は、
     前記複数のノードの各々に、各ノードが属する前記二分木内の階層を表す値と、少なくとも同じ階層に属するノード間で一意である値とが組み合わされているノード固有値が割り当てられている二分木において、前記部分木を探索する請求項1に記載の情報処理装置。
  3.  前記ノード抽出部は、
     前記部分木内のルートノードとして、前記復号許可ユーザ識別子が割り当てられているリーフノード、及び前記復号許可ユーザ識別子が割り当てられているリーフノードが接続している上位ノードのいずれかを前記二分木から抽出する請求項1に記載の情報処理装置。
  4.  前記条件式設定値指定部は、
     前記ノード抽出部により複数のノードが抽出された場合に、
     前記ノード抽出部により抽出された前記複数のノードに割り当てられている複数のノード固有値を論理和で組み合わせて得られる論理式を、前記関数型暗号方式の条件式の設定値に指定する請求項1に記載の情報処理装置。
  5.  コンピュータが、複数のリーフノードを含む複数のノードが含まれる二分木であって、ノードの各々に、ノードごとに固有の値であるノード固有値が割り当てられ、前記複数のリーフノードに、複数のユーザ識別子が割り当てられている二分木において、前記複数のユーザ識別子の中から選択された、関数型暗号方式に基づく暗号文の復号が許可される復号許可ユーザのユーザ識別子である復号許可ユーザ識別子が割り当てられているリーフノードのみでリーフノードが構成される部分木を探索し、探索により得られた部分木内のルートノードを前記二分木から抽出し、
     前記コンピュータが、抽出されたノードに割り当てられているノード固有値を、前記復号許可ユーザを定義する、前記関数型暗号方式の条件式の設定値に指定する情報処理方法。
  6.  複数のリーフノードを含む複数のノードが含まれる二分木であって、ノードの各々に、ノードごとに固有の値であるノード固有値が割り当てられ、前記複数のリーフノードに、複数のユーザ識別子が割り当てられている二分木において、前記複数のユーザ識別子の中から選択された、関数型暗号方式に基づく暗号文の復号が許可される復号許可ユーザのユーザ識別子である復号許可ユーザ識別子が割り当てられているリーフノードのみでリーフノードが構成される部分木を探索し、探索により得られた部分木内のルートノードを前記二分木から抽出するノード抽出処理と、
     前記ノード抽出処理により抽出されたノードに割り当てられているノード固有値を、前記復号許可ユーザを定義する、前記関数型暗号方式の条件式の設定値に指定する条件式設定値指定処理とをコンピュータに実行させる情報処理プログラム。
PCT/JP2016/055120 2016-02-22 2016-02-22 情報処理装置及び情報処理方法及び情報処理プログラム WO2017145250A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/055120 WO2017145250A1 (ja) 2016-02-22 2016-02-22 情報処理装置及び情報処理方法及び情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/055120 WO2017145250A1 (ja) 2016-02-22 2016-02-22 情報処理装置及び情報処理方法及び情報処理プログラム

Publications (1)

Publication Number Publication Date
WO2017145250A1 true WO2017145250A1 (ja) 2017-08-31

Family

ID=59684886

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/055120 WO2017145250A1 (ja) 2016-02-22 2016-02-22 情報処理装置及び情報処理方法及び情報処理プログラム

Country Status (1)

Country Link
WO (1) WO2017145250A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014112182A1 (ja) * 2013-01-18 2014-07-24 三菱電機株式会社 データ復号装置、属性ベース暗号システム、乱数要素除去装置、ランダム化秘密鍵生成装置、データ復号方法およびデータ復号プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014112182A1 (ja) * 2013-01-18 2014-07-24 三菱電機株式会社 データ復号装置、属性ベース暗号システム、乱数要素除去装置、ランダム化秘密鍵生成装置、データ復号方法およびデータ復号プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KWANGSU LEE ET AL.: "Privacy Preserving Revocable Predicate Encryption Revisited", CRYPTOLOGY EPRINT ARCHIVE, February 2014 (2014-02-01), XP061015533, Retrieved from the Internet <URL:http://eprint.iacr.org/2012/655/20140226:222514> [retrieved on 20160511] *

Similar Documents

Publication Publication Date Title
US9111106B2 (en) Data processing apparatus and data storage apparatus
US9300471B2 (en) Information processing apparatus, information processing method, and program
JP6239213B1 (ja) 秘匿検索システム、秘匿検索方法及び秘匿検索プログラム
CN107291861B (zh) 一种面向加密图的带约束近似最短距离查询方法
JP2004320719A (ja) 著作物保護システム、鍵データ生成装置及び端末装置
US10673624B2 (en) Communication control device, communication control method, and computer program product
US9690845B2 (en) System for generating index resistant against divulging of information, index generation device, and method therefor
JP6100922B2 (ja) 通信制御装置、通信制御方法、プログラムおよび通信システム
JP2006074392A (ja) 情報暗号化装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP5992295B2 (ja) 通信制御装置、通信装置およびプログラム
JP2014093666A (ja) 通信制御装置、通信装置およびプログラム
WO2017145250A1 (ja) 情報処理装置及び情報処理方法及び情報処理プログラム
JP2005123678A (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP2007189597A (ja) 暗号化装置および暗号化方法、並びに復号化装置および復号化方法
JP2005086747A (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP6493402B2 (ja) 追加装置、削除装置、追加依頼装置、データ検索システム、データ検索方法、および、コンピュータプログラム
JP5901803B2 (ja) 情報処理装置及び情報処理方法及びプログラム
JP7217836B1 (ja) データ管理装置、秘匿検索システム、秘匿検索方法、および、秘匿検索プログラム
JP6472911B2 (ja) 通信装置、通信方法、プログラムおよび通信システム
JP6302109B2 (ja) 通信制御装置、通信制御方法、プログラムおよび通信システム
JP6178472B2 (ja) 通信制御装置、通信装置およびプログラム
JP6162873B2 (ja) 通信制御装置、通信装置およびプログラム
JP6599215B2 (ja) 秘匿計算装置およびプログラム
WO2009130795A1 (ja) 情報処理装置及びプログラム
JP2015226265A (ja) 匿名id生成装置、匿名id復号装置、匿名id生成方法及び匿名id生成プログラム

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16891409

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 16891409

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP