WO2005018136A1 - 鍵情報処理方法及びその装置、並びにプログラム - Google Patents

鍵情報処理方法及びその装置、並びにプログラム Download PDF

Info

Publication number
WO2005018136A1
WO2005018136A1 PCT/JP2004/009946 JP2004009946W WO2005018136A1 WO 2005018136 A1 WO2005018136 A1 WO 2005018136A1 JP 2004009946 W JP2004009946 W JP 2004009946W WO 2005018136 A1 WO2005018136 A1 WO 2005018136A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
node
information processing
processing method
keys
Prior art date
Application number
PCT/JP2004/009946
Other languages
English (en)
French (fr)
Inventor
Yuji Suga
Junichi Hayashi
Original Assignee
Canon Kabushiki Kaisha
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
Priority claimed from JP2003321420A external-priority patent/JP4208678B2/ja
Priority claimed from JP2003338679A external-priority patent/JP2005109753A/ja
Application filed by Canon Kabushiki Kaisha filed Critical Canon Kabushiki Kaisha
Priority to CN2004800248340A priority Critical patent/CN1846396B/zh
Priority to EP04747412A priority patent/EP1650893A4/en
Publication of WO2005018136A1 publication Critical patent/WO2005018136A1/ja
Priority to US11/329,037 priority patent/US7706530B2/en

Links

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/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Definitions

  • the present invention relates to a key information processing method and device, and a program, and relates to a content distribution system and a removable media control method that need to manage a plurality of keys for decryption, a calculation amount required for key generation, and
  • the present invention relates to a key information processing method, apparatus, and program suitable for reducing the load on the number of distributed keys.
  • the tree structure management method is used in offline content playback devices such as DVD players, and is suitable for invalidating users.
  • key information and encrypted content used for encryption are simultaneously delivered or stored in media so that only authorized users can decrypt the encrypted data. It is necessary to distribute key information in advance to each user in an appropriate combination, but by using a tree structure, large user key information can be managed efficiently.
  • index 1 which affects network traffic, will be emphasized, but from the perspective of the content provider, the management cost of the index 3) will be the most important. It should be noted that the weight of the indicator changes depending on the situation.
  • a typical tree structure management method is a content distribution model (for example, see Non-Patent Document 1).
  • a tree structure for key distribution as shown in Fig. 44 is used, and different keys are allocated to each node.
  • a user key in this paper, a key held by a player such as a DVD
  • a terminal node leaf node
  • all key data from the root to the terminal node is stored. You.
  • Each node holds multiple keys, and the parent node is configured to hold all keys of child nodes.
  • FIG. 48 shows an example of this, in which a set of key data distributed to each node is described. For example, it can be seen that the parent node of the node to which ⁇ k5 ⁇ is distributed contains key data k5. Similarly, in other nodes, the parent node includes all the key data of the child node.
  • XOR is a bitwise exclusive OR.
  • F () is a one-way hash function, which will be described in detail later.
  • n3 is the identifier of the node associated with key data k3, rl3 and r23 are random data associated with node nl (key data kl) and node n3, respectively, and node n2 (key data k2) and node n3. It is random data and is publicly available.
  • Non-Patent Document 1 "Digital Content Protection Management System” SCIS2001, pp.213-218
  • Non-Special Noon Document 2 C.H.Lm.Dynamic key management schemes for access control in a hierarchy "Computer Communications, 20: 1381-1385, 1997
  • a power operation is used for the one-way hash function.
  • a configuration using a trapdoor hash function is also conceivable, but in any case, an operation that requires exponentiation is included, and the computation cost is enormous.
  • devices with less computational resources, such as PDAs spend a lot of time on key calculation, and as a result, interactive processing may not be possible during data decryption.
  • the present invention provides a key information processing method and a key information processing method that can securely configure a key management method having an access structure similar to the hierarchical key management method with a small amount of calculation. It is an object to provide the device and the program.
  • a key information processing method of the present invention includes a setting step of setting a set of execution rules of a one-way function for each of a plurality of elements having a hierarchical relationship; For each of the elements, a value obtained by executing the one-way function in accordance with the corresponding execution rule of the set of execution rules set for each of two or more original keys for the element, A key generation step of generating two or more individual keys; and a key distribution step of distributing two individual keys to the element for each element.
  • the execution rule is the number of times the one-way function is executed.
  • a key information processing method for generating a key at each node from a parent node and distributing the key is described. And an initial key generation step of calculating N keys by using a value obtained by executing a one-way function a specified number of times at each node according to an execution rule for M (M ⁇ N) of the N initial keys. And a node key generating step of generating as M node keys for the node.
  • the method includes a key distribution step of distributing a node key from each of the nodes to a child node or a descendant node.
  • the method further includes an initial key number calculation step of calculating the number N of initial keys from the structure of the directed graph.
  • the key information processing apparatus of the present invention has a setting unit for setting a set of execution rules of a one-way function for each of a plurality of elements having a hierarchical relationship, and Two or more individual keys for the element as values that execute the one-way function in accordance with the corresponding execution rule of the set of execution rules set for the element for each of the one or more original keys And key distribution means for distributing, for each of the elements, two individual keys for the element.
  • a root node located at the highest level is N
  • Initial key generation means for calculating the number of keys, and each node assigns a value obtained by executing the one-way function a specified number of times to M nodes (M ⁇ N) among the N initial keys according to the execution rule.
  • Node key generating means for generating as M node keys It is characterized by that.
  • the computer-readable program of the present invention includes a setting step of setting a set of execution provisions of a one-way function for each of a plurality of elements having a hierarchical relationship; The value obtained by executing the one-way function according to the corresponding execution rule of the set of execution rules set for each element in each of two or more original keys is two or more for the element.
  • a key information processing method comprising: a key generation step of generating an individual key for each element; and a key distribution step of distributing two individual keys to the element, for each of the elements, causes the computer to execute the key information processing method.
  • a key information processing method that can generate a key for each node from a parent node based on a hierarchical relationship represented by a directed graph having no cycles
  • the root node located at the highest level is N
  • M ⁇ N specified number of times
  • FIG. 1 is a block diagram showing a configuration of a processing device according to an embodiment of the present invention.
  • FIG. 2 is a diagram showing a first example of a key generation graph according to the first embodiment.
  • FIG. 3 is a diagram showing a second example of the key generation graph according to the first embodiment.
  • FIG. 4 is a flowchart showing a procedure for generating a type A key according to the first embodiment.
  • FIG. 5 is a diagram showing a third example of a key generation graph according to the first embodiment.
  • FIG. 6 is a diagram showing a fourth example of the key generation graph according to the first embodiment.
  • FIG. 7 is a conceptual diagram illustrating a flowchart for generating a type B key according to the first embodiment.
  • FIG. 8 shows an example of a key generation graph having a different number of levels for each hierarchical axis according to the first embodiment.
  • FIG. 9 is a diagram showing a fifth example of a key generation graph according to the first embodiment.
  • FIG. 10 is a diagram showing a sixth example of the key generation graph according to the first embodiment.
  • FIG. 11 is a diagram showing a seventh example of a key generation graph according to the first embodiment.
  • FIG. 12 is a diagram illustrating a correspondence between a tree structure and a matrix according to the second embodiment.
  • FIG. 13 is a diagram showing a first example of a key generation graph according to the second embodiment.
  • FIG. 14 is a diagram showing a second example of a key generation graph according to the second embodiment.
  • FIG. 15 is a diagram illustrating a fusion key according to a second embodiment.
  • FIG. 16 is a flowchart for generating a fusion key according to the second embodiment.
  • FIG. 17 is a flowchart of generating a fusion key having a size of Nx * Ny according to the second embodiment.
  • FIG. 18 is a flowchart showing a procedure for generating a type A key according to the second embodiment.
  • FIG. 19 is a flowchart showing a procedure for generating a type B key according to the second embodiment.
  • FIG. 20 is a diagram showing another example of a key generation graph having a different number of levels for each hierarchical axis according to the second embodiment.
  • FIG. 21 is a diagram showing a third example of a key generation graph according to the second embodiment.
  • FIG. 22 is a diagram illustrating a first example of a directed graph according to the third embodiment.
  • FIG. 23 is a diagram showing a first example of a key generation graph according to the third embodiment.
  • FIG. 24 is a diagram showing a first example of a key distribution matrix according to the third embodiment.
  • FIG. 25 is a diagram illustrating a first example of node division in the directed graph shown in FIG. 22 according to the third embodiment.
  • FIG. 26 is a key distribution matrix showing a state in the middle of configuring a key distribution system according to the third embodiment.
  • FIG. 27 is a key distribution matrix showing a state in the middle of configuring a key distribution system according to the third embodiment.
  • FIG. 28 A key distribution showing a state in the middle of configuring a key distribution system according to the third embodiment. It is a matrix.
  • FIG. 29 is a second example of node division in the directed graph shown in FIG. 22 according to the third embodiment.
  • FIG. 30 is a second example of the key distribution matrix according to the third embodiment.
  • FIG. 31 is a flowchart illustrating a node key generation procedure according to the third embodiment.
  • FIG. 32 is a diagram showing a second example of the directed graph according to the third embodiment.
  • FIG. 33 is a diagram explaining a third example of node division in the directed graph shown in FIG. 32 according to the third embodiment.
  • FIG. 34 is a diagram showing a second example of a key generation graph according to the third embodiment.
  • FIG. 35 is a key distribution matrix showing a state in the middle of configuring a key distribution system according to the third embodiment.
  • FIG. 36 is a key distribution matrix showing a state in the middle of configuring a key distribution system according to the third embodiment.
  • FIG. 37 is a key distribution matrix showing a state in the middle of configuring a key distribution system IJ according to the third embodiment.
  • FIG. 38 is a key distribution matrix showing a state in the middle of configuring a key distribution system IJ according to the third embodiment.
  • FIG. 39 is a diagram showing a third example of a key generation graph according to the third embodiment.
  • FIG. 40 is a diagram showing an example of a directed graph in which nodes having a bidirectional connection relationship exist according to the third embodiment.
  • FIG. 41 is a diagram showing an example of the digraph shown in FIG. 40 according to the third embodiment, which is modified so that there is no node having a bidirectional connection relationship.
  • FIG. 42 is a conceptual diagram illustrating a hierarchical access structure according to the present embodiment.
  • FIG. 43 is a table showing an image list to be encrypted by each node according to the embodiment.
  • FIG. 44 is a conceptual diagram illustrating a binary tree access structure in a tree structure management method.
  • FIG. 45 is a conceptual diagram illustrating an access structure in a hierarchical access control method.
  • FIG. 46 is a conceptual diagram illustrating an access structure in a hierarchical access control method.
  • FIG. 47 is a conceptual diagram illustrating a local structure in a hierarchical access control method.
  • FIG. 48 is a view for explaining an example of User multiple keying.
  • FIG. 1 is a block diagram schematically showing a configuration of a key information processing apparatus according to an embodiment of the present invention.
  • a key information processing apparatus 100 includes a modem 118 such as a public line, a monitor 102 as a display unit, a CPU 103, a RAM 104, a RAM 105, an HD (node disk) 106, and a network connection unit of a network. 107, CD108, FD (flexible disk) 109, DVD (digital 'video' disk or Digital Versatile Disk) 110, interface (I / F) 117 of printer 115, mouse 112 and keyboard 113 as operation unit, etc. Interfaces (I / F) 111, which are communicably connected to each other via a bus 116.
  • the mouse 112 and the keyboard 113 are operation units for a user to input various instructions and the like to the key information processing apparatus 100.
  • Information (operation information) input via the operation unit is taken into the key information processing apparatus 100 via the interface 111.
  • Various information (character information, image information, and the like) in the key information processing apparatus 100 can be printed out by the printer 115.
  • the monitor 102 displays various kinds of instruction information to the user and various kinds of information such as character information or image information.
  • the CPU 103 controls the operation of the entire key information processing apparatus 100.
  • the CPU 103 reads out and executes a processing program (software program) from the HD (hard disk) 106 or the like to execute the entire information processing apparatus 100. Control.
  • the CPU 103 reads out a processing program for realizing key generation from the HD 106 or the like and executes the processing program, thereby performing information processing described later.
  • the ROM 104 stores a processing program for key generation, various data (eg, a key generation graph) used in the program, and the like.
  • the RAM 105 is used as a work area for temporarily storing a processing program and information of a processing target for various kinds of processing in the CPU 103.
  • the HD 106 is a component as an example of a large-capacity storage device, and stores various data or a processing program for information conversion processing transferred to the RAM 105 or the like when performing various processing. .
  • the CD (CD drive) 108 has a function of reading data stored on a CD (CD-R) as an example of an external storage medium and writing data to the CD.
  • CD-R CD-R
  • An FD (floppy (R) disk drive) 109 reads data stored in the FD 109 as an example of an external storage medium, similarly to the CD 108.
  • various data were
  • the DVD (digital 'video disk') 110 has a function of reading data stored in the DVD 110 as an example of an external storage medium and writing data to the DVD 110, like the CD 108 and the FD 109. Let's do it.
  • an editing program or a printer driver is stored in an external storage medium such as the CD 108, the FD 109, or the DVD 110, these programs are installed in the HD 106, and the Accordingly, the configuration may be such that the data is transferred to the RAM 105.
  • the interface (I / F) 111 is for receiving an input from a user with the mouse 112 or the keyboard 113.
  • the modem 118 is a communication modem, and is connected to an external network via an interface (I / F) 119, for example, through a public line or the like.
  • the network connection unit 107 is connected to an external network via an interface (I / F) 114.
  • An individual key for each node is a type A key obtained by applying a hash function to two original keys common to all nodes, and a type B key obtained only when three or more nodes exist in the same hierarchy. Keys are divided into two types. Also, a group called “rank” is defined as a group of nodes existing in the same hierarchy for convenience. The root node is rank 1, and the rank number is incremented by one every time through the hierarchy.
  • X and y be the two original keys from which all type A keys are generated.
  • the two numbers added to each node in 2A of FIG. 2 and 3A of FIG. 3 represent the number of times the hash function is applied to X and y.
  • a node marked (2, 4) holds H (H (X))) and H (H (H (H (y)))) as type A keys.
  • H H (n ()
  • the node denoted by (2, 4) is H '2 ( X) and H'4 (y).
  • 2B in FIG. 2 and 3B in FIG. 3 A description will be given using 2B in FIG. 2 and 3B in FIG. 3 as examples of the type B key.
  • 2B in FIG. 2 and 3B in FIG. 3 have the same hierarchical structure as 2A in FIG. 2 and 3A in FIG. 3, respectively.
  • these keys do not exist.
  • HOT 2 (X) IIH "2 (y)) obtained by concatenating and hashing the (2, 2) keys in type A is designated as R30.
  • the number of hash functions applied to R30 is expressed in rank 3.
  • the three nodes in rank 3 hold H (R30), R30, and H (R30) from the left, respectively, and a type B key. Means to do.
  • R40 and R41 are generated from data that can be shared by all nodes of rank 3.For example, when generating from a type B key, H (H (R30) I
  • the four nodes at rank 4 are H (R40) and H (R41), R40 and H (R41), H (R40) and R41, respectively, from the left. It means that H (R40), H (R41) and record type B keys are held. Subsequent ranks are generated in the same way. When the number of nodes of the same rank becomes 2 or less, no type B key is generated. That is, there are no type B keys of ranks 6 and 7 in 2B of FIG. 2 and ranks 8 and 9 in 3B of FIG.
  • the graphs shown in FIGS. 2 and 3 are generated according to the following rules. First, a method for generating a type A graph will be described with reference to the flowchart in FIG.
  • the key of rank 1 is ⁇ (0, 0) ⁇ (step S401).
  • #R (i)> # R (il) the key is ((Q-2 * #R (i) +5, Q + 3), (Q-2 * #R (i) +7 , Q + 1), (Q + 3, Q_2 * #R (i) +5) ⁇ ,
  • #R (i) ⁇ # R (G1) the key is ((Q_2 * #R (i) +3, Q + 1), (Q_2 * # R (i) +5, Ql), , (Q + 1, Q-2 * # R (i) +3) ⁇ (step S405).
  • each key of rank i is #R (i) _2, and the keys are ((1, 1), (0, 1, ..., 1), (1, 0, ... , 1), ..., (1, 1, 0), (1,..., 1) ⁇ , and go to (2) (step S705).
  • the process (5) means that both ends are composed of 1s, and 0s appear only at one other position (however, they do not appear at the same position).
  • #R (i) 6 ⁇ (1, 1, 1, 1), (0, 1, 1, 1), (1, 0, 1, 1), (1, 1, 0, 1 ), (1, 1, 1, 0), (1, 1, 1, 1) ⁇ .
  • the above graph generation method is generated so as to satisfy the following conditions.
  • a parent node can generate a key for a child node.
  • a key distribution method to each node by the root key distributor entity of the root node
  • a key distribution method to lower nodes by an entity holding individual keys other than the note key distributor The law and will be described respectively.
  • the root key distributor generates keys X and y randomly and securely and uses them as its own individual keys. Further, a plurality of keys are allocated to each node by the above-described key generation procedure.
  • the Root Key Distributor securely distributes each node's key to entities located at each node. Also, publish a key distribution graph as shown in Figs. 2 and 3, and distribute data to each entity to identify the location of the distributed key in the graph. This data is assumed to be composed of, for example, a rank number and an identification number within the rank indicating the power within the same rank.
  • Key data for the child node or grandchild node is generated from the individual key and the identification data indicating the position of the key in the key distribution graph.
  • the keys of each rank are generated in order of the key strength of the higher rank, which is exactly the same as the operation of the root key distributor. The explanation is omitted.
  • Data to be managed such as images
  • Data to be managed is acquired through the CD 108 or the network connection unit 107 of the network and stored in the HD 106, or is selected from data already stored in the HD 106.
  • the user selects from the list displayed on the monitor 102 using the mouse 112 or the keyboard 113.
  • a key generation graph corresponding to the selected structure is generated by the CPU 103.
  • the calculation is stored in the RAM 105, HD106, or the like.
  • the individual key stored in the RAM 105, the HD 106, or the like is read out to another information processing device, and distributed via the network through the network connection unit 107.
  • Figures 2 and 3 only take the example of hierarchical axes with the same level (in Fig. 2, both hierarchical axes have level 3 and in Fig. 3 both hierarchical axes have level 4).
  • Figure 8 shows that the example can be generated in a similar way. 8A and 8B in Fig. 8 have three levels in the lower left direction and four levels in the lower right direction.It can be seen that normal processing can be performed based on the flowcharts shown in Figs. 4 and 7. .
  • the type B key is generated from the key data in the middle rank.However, the root key distributor generates and distributes initial data in the same framework as the type A key. The method will be described.
  • FIG. 10 describes a method of generating an original key called z different from X and y at an early stage, instead of the method of generating a type B key in the middle of FIG.
  • the notation is the same as in FIG. 2, and represents the number of times the third component performs the hash function applied to the original key z.
  • the original key z is distributed as the key information of the child node.
  • z is processed as the initial key R30 according to the method described in 9B of FIG.
  • h (z) is distributed.
  • the function of avoiding a collusion attack by a plurality of nodes in the same layer is not concentrated on the third original key, but is distributed to the first and second original keys.
  • S power The key generation graph shown in FIG. 11 is an example. In this way, it is also possible to construct a graph that reduces the total hash calculation amount.
  • FIG. 12 shows an example of a tree structure composed of seven layers and having 16 nodes.
  • 12B in FIG. 12 shows an example in which the tree structure shown in 12A in FIG. 12 is replaced with a matrix.
  • the numbers written in each node of 12A in FIG. 12 and the numbers written in each cell of 12B in FIG. 12 indicate the same correspondence.
  • a root node (a node indicated by “0” in the figure) is associated with the uppermost cell in the matrix. Then, the node located on the left and the node located on the right among the child nodes of each node in the tree structure are associated with the left cell and the cell below the cell in the matrix, respectively.
  • the tree structure shown in 12A in FIG. 12 can be replaced with the matrix shown in 12B in FIG.
  • Key generation is performed according to the key generation matrices and graphs shown in FIGS.
  • the individual keys for each element and each node are represented in a tree structure, and a type A key obtained by applying a hash function from two original keys common to all nodes, and a leaf node (child node (A node that does not have a key).
  • rank In the tree structure, a group called “rank” is defined for convenience as a set of nodes existing in the same hierarchy.
  • the root node is rank 1, and the rank number is incremented by one for each hierarchy (see 12A in Fig. 12).
  • the element at the top right is the origin (0, 0)
  • the X coordinate increases in the horizontal left direction
  • the y coordinate increases in the vertical downward direction.
  • the coordinates of the element marked “4” in 12B of FIG. 12 are (1, 1)
  • the coordinates of the element marked “14” are (2, 3). (See 12B in Figure 12).
  • the number of cells in the horizontal direction of the matrix is Nx, and the number of cells in the vertical direction is Ny. [0076] [Type A key]
  • X and y be the two original keys from which all type A keys are generated.
  • the two numbers described in the respective cells in 13A of FIG. 13 and 14A of FIG. 14 represent the number of times the hash function is applied to X and y. For example, suppose that a cell described as [1, 4] holds H (x) and H (H (H (H (y))))) as type A keys. In the future, when hash operation is performed n times, it is abbreviated as ⁇ ⁇ (). Based on this notation, a cell marked [1, 4] will have two Type A keys, ⁇ (X) and H'4 (y).
  • 13B in FIG. 13 and 14B in FIG. 14 A description will be given using 13B in FIG. 13 and 14B in FIG. 14 as examples of the type B key.
  • 13B in FIG. 13 and 14B in FIG. 14 have the same size matrix as 13A in FIG. 13 and 14A in FIG. 14, respectively. These keys do not exist in the bottom row and leftmost column of the matrix. The symbol 'N' will be used below to indicate that no key exists.
  • the values of the type A keys having the sizes of Nx-2 and Ny-2 are applied to cells other than the leftmost column, the rightmost column, the bottom row, and the top row as they are.
  • the value of the cell immediately below it is applied to the cell in the top row other than these, and the value of the cell to the left of that cell is applied to the cell in the rightmost row.
  • the size is Nx_2, as shown in 14C of FIG.
  • a fusion key that is Ny-2 is applied. Details of the fusion key will be described later.
  • a type II key and a type B key located in the same cell are fused to generate a corresponding fused key.
  • cell (1, 2) holds a fusion key such as H'5 (x), H "4 (y), H" 2 (u), and H (v). Means to do.
  • the key matrix in the present embodiment as described above can also be expressed as a tree structure.
  • An example in which the matrix shown in 15A of FIG. 15 is represented by a tree structure is shown in 15B of FIG.
  • step S601 variables Nx and Ny indicating the number of horizontal and vertical cells of the fusion key matrix are initialized.
  • the present invention is adaptable to various access controls without being limited to this.
  • the variable PL indicating the processing level is initialized to 0.
  • step S602 initializes the number of elements stored in each cell of the fusion key matrix.
  • the number of fusion keys to be stored in one cell generated by a fusion key generation process described later is set as the number of elements.
  • Min (Nx, Ny) fusion keys are generated for one cell, the number of elements is set to Min (Nx, Ny).
  • step S603 a fusion key matrix of size Nx * Ny at the processing level PL is generated. Details of the fusion key generation processing in the present embodiment will be described later.
  • step S604 the generated fusion key at each processing level PL is fused into one fusion key matrix.
  • FIG. 7 is a flowchart illustrating a fusion key generation process according to the present embodiment.
  • step S501 it is determined whether Max (Nx, Ny) is 2 or less.
  • Max (a, b) is an operator for selecting a larger value from a and b. value
  • step S502 If it is 2 or less, the process proceeds to step S502. Otherwise, step through the process
  • step S502 a type A key matrix of size Nx * Ny at the processing level PL is generated, and after generating the type A key matrix, the fusion key generation process ends.
  • step S503 generates a fusion key matrix of size (Nx_2) * (Ny_2) at processing level PL + 1. Further, after generating the fusion key matrix, a step S504 generates an Nx * Ny type B key matrix in the processing level PL, and terminates the fusion key generation process.
  • a fusion key matrix of size Nx * Ny at processing level PL in order to generate a fusion key matrix of size Nx * Ny at processing level PL, the size (Nx ⁇ 2) * (Ny ⁇ 2) at processing level PL is used.
  • a fusion key matrix is generated recursively. That is, a larger fusion key matrix is generated in order using a smaller fusion key matrix.
  • step S801 sets variables i and j to 0.
  • Variables i and j are indices indicating the horizontal and vertical coordinates of the matrix, respectively.
  • step S802 evaluates the value of the variable Ny. If Ny is 1, the process proceeds to step S814. Otherwise, the process proceeds to step S803.
  • Step S803 evaluates the value of the variable j. If j is 0, the process proceeds to step S804. Otherwise, the process proceeds to step S805. Then, a step S804 substitutes the value i for the X key x_ (i, j) of the cello (i, j). On the other hand, a step S805 substitutes the value Nx + j-1 for the X key X (i, j) of the senoré (i, j). Thereafter, the process proceeds to step S814. [0097] Step S814 evaluates the value of the variable Nx. If Nx is 1, the process proceeds to step S809. Otherwise, the process proceeds to step S806.
  • Step S806 evaluates the value of the variable i. If i is 0, the process proceeds to step S807. Otherwise, the process proceeds to step S808. Then, a step S807 substitutes the value j for the y key y_ (i, j) of the cello (i, j). On the other hand, a step S808 substitutes the value Ny + i-1 for the y key y_ (i, j) of the senoré (i, j). Thereafter, the process proceeds to step S809.
  • step S809 the variable i is increased by 1, and the process proceeds to step S810. Then, in step S810, the value of the variable i is evaluated. If i is smaller than Nx, the process proceeds to step S803. Otherwise, the process proceeds to step S813, initializes variable i to 0, and then proceeds to step S811.
  • step S811 the variable j is increased by 1, and the process proceeds to step S812. Then, in step S812, the value of the variable j is evaluated. If j is smaller than Ny, the process proceeds to step S803. Otherwise, the type A key generation processing ends.
  • step S902 sets variables i and j to 0.
  • Variables i and j are indices indicating the horizontal and vertical coordinates of the matrix, respectively.
  • Step S905 evaluates the values of the variables i and j. If i is equal to Nx_l or j is equal to Ny_l, the process proceeds to step S906. Otherwise, the process proceeds to step S907.
  • Step S907 evaluates the value of the variable i. If i is 0, the process proceeds to step S908. Otherwise, the process proceeds to step S909.
  • step S908 u, _ (0, j_l) is assigned to the u key u_ (i, j) of the cell (i, j), and v, v is assigned to the V key v_ (i, j) of the senoré (i, j).
  • u ′ and v represent processing level power 1, that is, a type A key whose matrix size is (Nx ⁇ 2) * (Ny ⁇ 2).
  • the type A key having the processing level power SPL + 1 is generated in advance in the fusion key generation process (step S703 in FIG. 17) before the type B key generation process (step S704 in FIG. 7). Thereafter, the process proceeds to step S911.
  • Nx 3
  • u key u_ (i, j) is not generated
  • Ny 3
  • v key v_ (i, j) is not generated.
  • Step S909 evaluates the value of the variable j. If j is 0, the process proceeds to step S910. Otherwise, the process proceeds to step S915.
  • step S910 the u key u of cell (i, j) u — (i, j) is assigned u, — (i-1, 0), and the v key v_ (i, j) of cell (i, j) is assigned. And v, — (i-1, 0).
  • step S915 the u key u_ (i, j) of (i, j) is assigned u, — (i ⁇ 1, j 1), and the V key V ⁇ (i , j) with v, (i 1, u1). Thereafter, the process proceeds to step S911.
  • Nx 3
  • u key u— (i, j) is not generated
  • Ny 3
  • v key v— (i, j) is not generated.
  • step S911 the variable i is incremented by 1, and the process proceeds to step S912. Then, in step S912, the value of the variable i is evaluated. If i is smaller than Nx, the process proceeds to step S903. Otherwise, the process proceeds to step S915, where the variable i is initialized to 0, and then the process proceeds to step S913.
  • step S913 the variable j is increased by 1, and the process proceeds to step S914. Then, in step S914, the value of the variable j is evaluated. If j is smaller than Ny, the process proceeds to step S903. Otherwise, the type B key generation processing ends.
  • the above graph generation method is generated so as to satisfy the following conditions.
  • the key distribution method to each node by the root key distributor (the entity of the root node) and the key distribution method to lower nodes by the entity holding individual keys other than the note key distributor will be described.
  • the root key distributor randomly and securely generates keys X, y, u, and V and uses them as their own individual keys. Further, a plurality of keys are arranged in each node by the above-described key generation procedure.
  • the Root Key Distributor securely distributes the key of each node to the entity located at each node.
  • a key distribution graph as shown in Figs. 13 and 14 is made public, and data that can identify the location of the distributed key in the graph is distributed to each entity. This data may be composed of, for example, a rank number in the tree structure and an identification number within the rank indicating the power within the same rank, or may be composed of coordinates in a matrix.
  • Key data for the child node or grandchild node is generated from the individual key and the identification data indicating the position of the key in the key distribution graph. For example, at 15A in Fig. 15, if we have x ', y', u ', v' as the fusion key, and this is the cell (1, 1) in the matrix, that is, the second in rank 3 at the position on the graph, Corresponds to [4, 4, 0, 0].
  • Data to be managed such as images
  • Data to be managed is acquired through the CD 108 or the network connection unit 107 of the network and stored in the HD 106, or is selected from data already stored in the HD 106.
  • the user selects from the list displayed on the monitor 102 using the mouse 112 or the keyboard 113.
  • a key generation graph corresponding to the structure is generated by the CPU 103. Calculate and store in RAM105, HD106, etc.
  • Random data is generated from data such as the operation of the ROM 104, the RAM 105, the HD 106, or the mouse 112, and a plurality of original keys are generated using the random data and stored in the RAM 105, the HD 106, or the like. Further, the individual key of each node in the key generation graph is subjected to the original key strength calculation and stored in the RAM 105 or the HD 106 or the like.
  • the individual key stored in the RAM 105, HD 106, or the like is read out to another information processing device, and distributed via the network through the network connection unit 107.
  • the hierarchical relation is represented by a directed graph having no loop and no cycle as shown in FIGS.
  • FIGS When there are places where a plurality of different nodes are connected to each other in a directed graph, as in nodes nl and n2 in Fig. 40, these nodes are treated collectively as a single node. If there is no node that has the connection relation of the direction, it can be reduced.
  • Figure 41 is a directed graph in which nl and n2 are identified as ⁇ and another node.
  • nl and n2 are identified as ⁇ and another node.
  • the present embodiment deals with a grid draf with two layers as shown in FIG.
  • the three numbers described in each cell represent the number of times the hash function is applied to the three initial keys X, y, and z.
  • a cell described as [2, 2, N] holds H (H (x)) and H (H (y)) as node keys.
  • N means "same” and means that it has no information on the initial key z.
  • hash operation is performed n times, it is abbreviated as ⁇ ⁇ ().
  • the cell marked [2, 2, ⁇ ] has two node keys, H '2 (X) and tT 2 (y).
  • the structure can also be described by replacing it with a matrix as shown in Fig. 4.
  • Fig. 23 is an example of a tree structure with 9 nodes. The numbers in each cell indicate that the correspondence is the same.
  • the root node (the node indicated by [0,0,0] in the figure) is associated with the top right cell in the matrix.
  • the left node and the right node of the child nodes of each node in the tree structure are associated with the left cell and the lower cell of the matrix, respectively.
  • n_a and n_b included in SubG_i satisfy n_a ⁇ n_b or n_a> n_b.
  • n_a and n_b have a descendant relationship, and one must be the other descendant node.
  • the number N of the divided subsets is called a key distribution order of a key distribution graph G, and is denoted by rd (G).
  • Each node is assigned a number associated with N initial keys K_i (l ⁇ N). This number is the number of times the one-way function is performed on the initial key K_i, and may be given a "N" meaning "same”. If the number of the initial key K_i is "N", This means that the key associated with the initial key K_i must not be retained.
  • the number associated with the initial key Kj (i ⁇ j) of the node included in SubG_i is not an ancestor node of the node included in SubGj (which is a subset of the initial key Kj).
  • the corresponding number is N (none), and the corresponding number of the ancestor node is
  • FIG. 31 is a flowchart of the above-described node key assignment processing. Hereinafter, FIG. 31 will be described. Here, all node sets are already disjoint and non-empty subsets. It is assumed that they are divided into ⁇ SubG_i ⁇ (l ⁇ i ⁇ N), and the initial key K_i for each subset is calculated. The number of nodes included in the subset SubGj is described as #N (i). n (i, 2),..., n (i, #N (i)) ⁇ .
  • the node key for node n (i, j) is the initial key K_k (l ⁇ k ⁇ N) subjected to a one-way hash function a specified number of times, and the specified number of times is Mi, j, k). write.
  • Step S1101 is a loop of a variable i that varies from 1 to N
  • step S1102 is a loop of a variable j that varies from 1 to N
  • step S1103 is a loop of a variable k that varies from 1 to #N (i). .
  • step S1104 it is evaluated whether the variables i and k match, and if they match, the process proceeds to step S1105; otherwise, the process proceeds to step S1106.
  • a step S1105 substitutes j_l for h (i, j, k) and returns to the loop processing.
  • Step S1106 evaluates whether n (k, m) ⁇ n (i, j), that is, n (i, j) satisfies the ancestor node of n (k, m). In this case, the process proceeds to step S1107; otherwise, the process proceeds to step S1108. In step S1107, “N” is substituted for h (i, j, k), and the process returns to the loop.
  • step S1108i or h (i, j, k) min ⁇ h (k, m, k)
  • Fig. 27 shows the locations where "N" is given from the descendant relationships of the nodes.
  • n (l, m) ⁇ n (2, 1) nl
  • h ( l, 1, 1) 0
  • h (l, 2, l) l
  • h (l, 3, 1) 2
  • the minimum value 0 is selected. Further, check is performed for all i and j that satisfy n (2, m) ⁇ n (i, j).
  • the configuration method based on node division shown in FIG. 29, which is different from FIG. 25, can be configured in the same manner as FIG. 24 according to the flowchart of FIG. In FIGS. 24 and 30, the total hash operation amount in FIG. 30 increases.
  • the node key configured based on the flowchart shown in FIG. 31 is as shown in FIG.
  • FIG. 35 shows only h (i, j, i).
  • FIG. 36 shows a portion where "N" is obtained from the descendant relationship of the node.
  • FIG. 37 shows the result of checking and reflecting n (l, m) ⁇ n (i, j) for all i and j.
  • FIG. 38 the result of checking and reflecting n (2, m) ⁇ n (i, j) with all i, j is shown in FIG. 38, and finally, FIG. 34 is obtained.
  • FIG. 39 is an example of this, in which the end node has no node key as described in [N, N, N]. Means. This can be obtained by applying to the flowchart of FIG. 31 from a state where only the terminal node is not included in any subset at the time of node division. Here, an example is shown in which the node key is not distributed to only one of the end nodes.
  • the above key generation system is configured to satisfy the following conditions.
  • the target node must be able to generate keys for its grandchild nodes.
  • the key distribution method to each node by the root key distributor (the entity of the root node) and the key distribution method to lower nodes by the entity holding individual keys other than the note key distributor will be described.
  • the root key distributor randomly and securely generates the key distribution order Ord (G) parameters ⁇ x_i ⁇ (l ⁇ i ⁇ Ord (G)) determined according to the key distribution graph G, and generates them by itself. Individual key. Further, a plurality of keys are arranged in each node by the above-described key generation procedure.
  • the Root Key Distributor securely distributes the key of each node to the entity located at each node. It also publishes the key distribution graph and distributes data to each entity to identify the location of the distributed key in the graph. For example, if the grid graph is to be a key distribution graph, the data may be composed of the coordinates when the matrix is described.
  • Data to be managed such as images
  • Data to be managed is acquired through the CD 108 or the network connection unit 107 of the network and stored in the HD 106, or is selected from data already stored in the HD 106.
  • the user can use the mouse 1 from the list displayed on the monitor 102. Select using 12 or the keyboard 113.
  • a key generation graph corresponding to the selected structure is generated by the CPU 103.
  • the calculation is stored in the RAM 105, HD106, or the like.
  • Random data is generated from data such as the operation of the RAM 104, the RAM 105, the HD 106, or the mouse 112, and a plurality of original keys are generated using the random data and stored in the RAM 105, HD 106, or the like. Further, the individual key of each node in the key generation graph is calculated from the original key and stored in the RAM 105, HD106 or the like.
  • the individual key stored in the RAM 105, the HD 106, or the like is read out to another information processing device, and is distributed via the network through the network connection unit 107.
  • Fig. 42 shows an example in which one (lower left) is the resolution and the other is the image area (lower right).
  • the target image data IMG is the image data IMG1 of the area B
  • the difference data of the area A is IMG_2
  • low-resolution data is IMG_i (L)
  • medium-resolution difference data is IMG_i (M)
  • the root key distributor randomly generates original keys x, y, and z.
  • Key ( ⁇ High, All>): H (x
  • II is data concatenation.
  • the obtained three data are connected in the same manner as the root node to generate an encryption key, and the data shown in FIG. 43 is decoded.
  • H (x), H "2 (y), z are given as key data, and the key is a key.
  • Key ⁇ (Mid, All>): H (H (x) I
  • the target image data IMG is the image data IMG1 of the area B
  • the area A difference data is IMG-2
  • the low-resolution data is IMG-i (L)
  • the middle-resolution difference data is IMG-i (M)
  • the root key distributor randomly generates original keys x, y, and u.
  • Key ( ⁇ High, All>) used for encryption: H (x
  • I I is the concatenation of data.
  • the acquired three data are concatenated in the same manner as the root node to generate an encryption key, and the data shown in FIG. 43 is encrypted.
  • H (x), H "3 (y), u are given as key data and the key is a key.
  • Key ⁇ (Mid, All>): H (H (x) I
  • the target image data IMG is the image data IMG1 of the area B
  • the difference data of the area A is IMG-2
  • IMG_i low-resolution data
  • IMG_i medium-resolution difference data
  • IMG_i high-resolution difference data
  • IMG_i IMG_i (L) + IMG_i (M) + IMG_i (H).
  • the root key distributor randomly generates original keys x, y, and u.
  • I I is the concatenation of data.
  • the acquired three data are concatenated in the same manner as the root node to generate an encryption key, and the data shown in FIG. 43 is encrypted.
  • H (x), H '3 (y), u are given as key data
  • the encryption key Key (K Mid, All>): H (H (x) I
  • IMG_3 (M) is decoded with this key.
  • decrypting the encrypted data the same processing is performed. Then, an encryption key is calculated and decryption processing is performed to obtain appropriate image data.
  • a method of concatenating keys and hashing is adopted as a method of generating an encryption key, but other key concatenation methods (a method of calculating one key from a plurality of key data) may be used. Absent.
  • the resolution and the image area are taken as the hierarchical axes.
  • the present invention is not limited to this.
  • the image quality, the time axis, the usage control information, etc. It is also possible to select any two or more layers from among them and use them as axes.
  • the present invention can be applied as a part of a system including a plurality of devices (for example, a host computer, an interface device, a reader, a printer, etc.), or a part of a device including one device (for example, a copying machine or a facsimile machine). May be applied.
  • a host computer for example, a host computer, an interface device, a reader, a printer, etc.
  • a part of a device including one device for example, a copying machine or a facsimile machine.
  • the present invention provides an apparatus, a method, and an embodiment for realizing the above embodiment.
  • the program code of software for implementing the above-described embodiment is supplied to a computer (CPU or MPU) in the above-described system or apparatus, which is not limited to the method performed by combining the methods described in the above.
  • the present invention also includes a case where the computer of the system or the apparatus operates the various devices according to the program code to realize the embodiment.
  • the program code itself of the software realizes the function of the above-described embodiment, and the program code itself and means for supplying the program code to the computer, specifically,
  • the storage medium storing the program code is included in the scope of the present invention.
  • a storage medium for storing such a program code for example, a floppy (R) disk, hard disk, optical disk, magneto-optical disk, CD-ROM, magnetic tape, nonvolatile memory card, ROM, or the like is used.
  • R floppy
  • CD-ROM compact disc-read only memory
  • magnetic tape magnetic tape
  • nonvolatile memory card nonvolatile memory card
  • the computer controls the various devices according to only the supplied program code, so that not only the case where the functions of the above-described embodiment are realized but also the OS under which the program code runs on the computer (Operating system), or a program code that is effective even when the above embodiment is realized in cooperation with another application software or the like is included in the scope of the present invention.
  • the function code is stored based on the instruction of the program code.
  • the scope of the present invention also includes a case where a CPU or the like provided in the extension board or the function storage unit performs part or all of the actual processing, and the above-described embodiment is realized by the processing.
  • the amount of calculation in key generation can be reduced in a content distribution system or a removable media control method that needs to manage a plurality of keys for decryption. Accordingly, there is an effect that a method for reducing the load of key management can be provided.

Landscapes

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

Abstract

 階層的鍵管理方式と同様のアクセス構造を持つ鍵管理方式を少ない計算量で安全に構成する。ランクiの各要素に対して、一方向性ハッシュ関数の実行回数の組(,)を設定する設定工程と、前記各要素につき、2つのオリジナル鍵のそれぞれに当該要素に対して設定された前記実行回数の組の対応する実行回数だけ前記一方向性関数を実行した値として、当該要素に対する2つの個別鍵を生成する鍵生成工程と、前記各要素に対し、当該要素に対する2つの個別鍵を配布する鍵配布工程とを備える。又、サイクルを持たない有向グラフで表現された階層関係に基づいて、各ノードにおける鍵を親ノードから生成して鍵配布を行う場合に、最上位に位置するルートノードでN個の鍵を算出する初期鍵生成工程と、各ノードで前記N個の初期鍵のうちM個(M≦N)に実行規定に応じて一方向性関数を規定回数実行した値を当該ノードに対するM個のノード鍵として生成するノード鍵生成工程とを有する。

Description

明 細 書
鍵情報処理方法及びその装置、並び
優先権の主張
[0001] 本願は、 2003年 7月 11曰提出の曰本国特許出願第 2003— 195729号、 2003年 9月 12曰提出の曰本国特許出願第 2003— 321420号、 2003年 9月 29曰提出の曰 本国特許出願第 2003— 338679号を基礎として優先権を主張するものであり、その 記載内容の全てをここに援用する。
技術分野
[0002] 本発明は、鍵情報処理方法及びその装置、並びにプログラムに関し、復号のため の複数の鍵を管理する必要があるコンテンツ配信システムやリムーバルメディア制御 方式において、鍵生成に要する演算量、及び鍵の配信数に関する負荷を軽減させ るのに好適な鍵情報処理方法及びその装置、並びにプログラムに関する。
^景技術
[0003] 近年、通信回線や DVDなどの大容量記録メディアを通じて、文書や画像データな どのデジタルコンテンツが流通する機会が増加してレ、る。デジタルコンテンツ配信サ 一ビスは、特定のユーザに対してコンテンツを流布するサービスである力 S、ユーザ以 外にはコンテンツが漏洩しない仕組みが要求されている。また、大容量メディアによる コンテンツ配信においても、同様のユーザによるアクセス制御の機構が検討されてい る。その際には、コンテンツデータに対する暗号化やスクランブル処理などが行われ ており、正当な鍵情報を持つ、もしくはデスクランブル処理を知っている正当なユー ザのみが復号処理を行い、正規の文書や画像データなどのコンテンツを享受できる 仕組みが提供されている。
[0004] このようなコンテンツ配信サービスにおレ、ては、コンテンツを配信するコンテンツプロ バイダが存在する。コンテンツプロバイダでは、複数のコンテンツのそれぞれに対して 異なるアクセス制御情報の設定を行う必要があり、コンテンツごと、ユーザごと、さらに はユーザのアクション (例えば、閲覧、コピーなど)ごとに異なる鍵による暗号化処理 を行うことが想定されている。この処理において、鍵生成、鍵保持、鍵配信などの鍵 情報に関わるマネージメントはコンテンツプロバイダにおいて非常に負荷力 Sかかるこ とが多い。そこで鍵管理に関して、セキュリティレベルを低下させることなぐより効率 的な管理方法に関する研究が行われている。従来の管理方法のいくつかに関して説 明を行う。
[0005] [木構造管理方式]
木構造管理方式は DVDプレイヤーなどのオフラインでのコンテンツ再生機器にお いて利用されており、ユーザの無効化を行うのに適している。この方式では、暗号化 データを正当なユーザのみが復号できるように、暗号化に用レ、た鍵情報と暗号化コ ンテンッとを同時に配信、もしくはメディアに格納しておく。各ユーザに対して適切な 組み合わせで鍵情報を事前に配布しておく必要があるが、木構造を用いることで膨 大なユーザ鍵情報を効率的に管理することができる。
[0006] この管理方式においては、方式の良し悪しを決定するにあたり次のような指標が存 在する、 1)コンテンツと同時に配信される鍵情報のデータサイズ、 2)ユーザが保持 する事前配布された鍵情報のデータサイズ、 3)コンテンツプロバイダが管理する必 要のある鍵情報のデータサイズ、以上の 3つの指標がそれにあたる。オンライン型配 信サービスの場合にはネットワークトラフィックを左右する 1)の指標が重視されるであ ろうが、コンテンツプロバイダの立場から考えると 3)の指標の管理コストが最も重視さ れることになる。このようにシチュエーションにより指標の重みが変化することに留意し なければならない。
[0007] 木構造管理方式の代表的なものとしては、コンテンツ配信モデルがある(例えば、 非特許文献 1を参照)。このモデルにおいては、図 44のような鍵配布用の木構造を 用いており各ノードには異なる鍵が配置される。ユーザ鍵 (論文中では DVDなどの プレイヤーが保持する鍵を想定)は末端のノード (葉ノード)と同一視され、ルートから 末端ノードまでのすべての鍵データを保持するものと仮定してレ、る。本モデルでは更 新が頻繁に起きることを想定しており、このように配置することで鍵無効化の効率を改 良している。
[0008] [階層的鍵管理方式]
一方、階層的鍵管理方式で想定している鍵管理は各ノードに鍵が配置されている 点では同様であるが、ユーザは末端ノードだけでなぐルートを含めたすべてのノー ドに位置する鍵が配布される点が大きく異なる (例えば、非特許文献 2、 3を参照)。
[0009] また、図 44のような n分木の構造ではなぐ図 45や図 46のようなアクセス構造を想 定しており、局所的に見ると図 47のような関係になっている箇所が見受けられる。こ の場合、ノード nlに配置されている鍵とノード n2に配置されている鍵の両者からノー ド n3の持つべき鍵を生成できるような仕組みが提供されていなければならない。 Birgetらの論文(非特許文献 3)によれば、この仕組みを提供する方式として次の 2つ の方法が提案されている。
[0010] [(1) User multiple keying]
各ノードが複数の鍵を保持する方式であり、親ノードは子ノードのすべての鍵を保 持するように構成されている。図 48はその 1例であり、各ノードに配布される鍵データ の集合が記載されている。例えば {k5}が配布されているノードの親ノードには鍵デー タ k5が含まれていることがわかる。同様に他のノードにおいても親ノードには子ノード の鍵データがすべて含まれてレ、ることがわかる。
[0011] [(2) One-way function based keying schemes]Linらの提案(非特許文献 2)を拡張 させた方式であり、一方向性ハッシュ関数を用いることで、各ノードが保持する鍵情 報を削減することができる。但し、図 47のように複数の親ノードの鍵データから子ノー ドの鍵データを生成する際には、次のような操作が必要である。この操作を図 49を用 いて説明する。
[0012] 図 49において、鍵データ klまたは k2から k3を生成するには
k3:= F(kl,n3) XOR rl3
k3:= F(k2,n3) XOR r23
という演算を行う。ここで XORはビットごとの排他的論理和である。また F( )は一方向 性ハッシュ関数であり、詳細は後述する。 n3は鍵データ k3が関連付けられたノードの 識別子、 rl3,r23はそれぞれ,ノード nl (鍵データ kl)とノード n3により関連付けられた ランダムデータ、ノード n2(鍵データ k2)とノード n3により関連付けられたランダムデータ であり、共に公開されているデータである。
[0013] 関数 F( )は F(k丄 nj) = g k_i+nj} mod p (ただし、 pは素数, gは原始元)で構成さ れており、上記 rl2,rl3は F(kl,n3) XOR rl3 = F(k2,n3) XOR r23を満たすように生成 される。
非特許文献 1 :「デジタルコンテンツ保護用管理方式」 SCIS2001, pp.213-218
非特午文献 2 : C. H. Lm. Dynamic key management schemes for access control in a hierarchy" Computer Communications, 20: 1381 - 1385, 1997
特午文献 3 : J.—C. Birget, X. Zou, G. Noubir, B. Ramamurthy, "Hierarchy-Based Access Control in Distributed Environments in the Proceedings of IEEE ICC, June 2001
発明の開示
発明が解決しょうとする課題
[0014] 前述したように、階層的鍵管理方式において局所的に親ノードが 2つ以上存在する 場合(図 47は 2つの親ノードが存在している例である)においては、異なる親ノードか ら同じ鍵データを生成するための方式がすでに提案されている。しかし、(l) User multiple keyingにおいては、各ノードが多くの鍵を持ち合わせていなければならず、 階層が深くなるにつれて、つまり全体ノード数に比例して保持すべき鍵データが増加 する問 Si力存ィ ¾し、 (2) One-way function based Keying scnemesにおレヽ飞は、一方 向性ハッシュ関数を用いることで各ノードが保持する鍵データ量を減らしているが、 rl2,rl3などの公開ランダムデータを別途保持する必要があり、(1)と同様に階層が 深くなるにつれて保持すべきデータが増加するという問題が存在する。
[0015] さらに、(2)においては、一方向性ハッシュ関数にべき乗演算が用いられている。落 とし戸付きハッシュ関数による構成も考えられるが、いずれにせよ、べき乗演算が必 要な演算が含まれており、計算コストが膨大である。特に PDAなどの演算リソースの 少ないデバイスにおいては鍵計算に多くの時間を費やすこととなり、結果としてデー タ復号時にインタラクティブな処理ができなくなる可能性がある。
[0016] そこで、本発明は、上述の問題点に鑑み、階層的鍵管理方式と同様のアクセス構 造を持つ鍵管理方式を少ない計算量で安全に構成することができる鍵情報処理方 法及びその装置、並びにプログラムを提供することを目的とする。
課題を解決するための手段 [0017] 上記課題を解決するために、本発明の鍵情報処理方法は、階層関係を持つ複数 の要素の各要素に対して、一方向性関数の実行規定の組を設定する設定工程と、 前記各要素につき、 2つ以上のオリジナル鍵のそれぞれに当該要素に対して設定さ れた前記実行規定の組の対応する実行規定に応じて前記一方向性関数を実行した 値として、当該要素に対する 2つ以上の個別鍵を生成する鍵生成工程と、前記各要 素に対し、当該要素に対する 2つの個別鍵を配布する鍵配布工程と、を有することを 特徴とする。ここで、前記実行規定は、前記一方向性関数の実行回数である。
又、サイクルを持たない有向グラフで表現された階層関係に基づいて、各ノードに おける鍵を親ノードから生成して鍵配布を行う鍵情報処理方法にぉレ、て、最上位に 位置するルートノードで N個の鍵を算出する初期鍵生成工程と、各ノードで前記 N個 の初期鍵のうち M個(M≤N)に実行規定に応じて一方向性関数を規定回数実行し た値を当該ノードに対する M個のノード鍵として生成するノード鍵生成工程と、を有 することを特徴とする。ここで、前記各ノードから子ノード、あるいは子孫ノードに対す るノード鍵を配布する鍵配布工程を有する。また、前記有向グラフが、複数の異なる ノードがお互いに有向グラフで接続されている箇所が存在するとき、これらのノードを まとめて一つのノードとして扱う。また、前記有向グラフの構造から初期鍵の個数 Nを 算出する初期鍵数算出工程を有する。
[0018] 又、本発明の鍵情報処理装置は、階層関係を持つ複数の要素の各要素に対して、 一方向性関数の実行規定の組を設定する設定手段と、前記各要素につき、 2つ以上 のオリジナル鍵のそれぞれに当該要素に対して設定された前記実行規定の組の対 応する実行規定に応じて前記一方向性関数を実行した値として、当該要素に対する 2つ以上の個別鍵を生成する鍵生成手段と、前記各要素に対し、当該要素に対する 2つの個別鍵を配布する鍵配布手段とを有することを特徴とする。
[0019] 又、サイクルを持たない有向グラフで表現された階層関係に基づいて、各ノードに おける鍵を親ノードから生成することのできる鍵情報処理装置において、最上位に位 置するルートノードは N個の鍵を算出する初期鍵生成手段と、各ノードは前記 N個の 初期鍵のうち M個(M≤N)に実行規定に応じて一方向性関数を規定回数実行した 値を当該ノードに対する M個のノード鍵として生成するノード鍵生成手段とを有する ことを特徴とする。
[0020] 又、本発明のコンピュータにより読み取り可能なプログラムは、階層関係を持つ複 数の要素の各要素に対して、一方向性関数の実行規定の組を設定する設定工程と 、前記各要素につき、 2つ以上のオリジナル鍵のそれぞれに当該要素に対して設定 された前記実行規定の組の対応する実行規定に応じて前記一方向性関数を実行し た値として、当該要素に対する 2つ以上の個別鍵を生成する鍵生成工程と、前記各 要素に対し、当該要素に対する 2つの個別鍵を配布する鍵配布工程とを有する鍵情 報処理方法をコンピュータに実行させることを特徴とする。
[0021] 又、サイクルを持たない有向グラフで表現された階層関係に基づいて、各ノードに おける鍵を親ノードから生成することのできる鍵情報処理方法において、最上位に位 置するルートノードは N個の鍵を算出する初期鍵生成工程と、各ノードは前記 N個の 初期鍵のうち M個(M≤N)に実行規定に応じて一方向性関数を規定回数実行した 値を当該ノードに対する M個のノード鍵として生成するノード鍵生成工程とを有する 鍵情報処理方法をコンピュータに実行させることを特徴とする。
[0022] 本発明のその他の特徴及び利点は、添付図面を参照した以下の説明より明らかに なるであろう。なお、添付図面はにおいて、同じ若しくは同様の構成には、同じ番号 を付す。
図面の簡単な説明
[0023] [図 1]本発明の実施の形態に係る処理装置の構成を示すブロック図である。
[図 2]第 1の実施形態に係る鍵生成用グラフの第 1例を示す図である。
[図 3]第 1の実施形態に係る鍵生成用グラフの第 2例を示す図である。
[図 4]第 1の実施形態に係るタイプ Aの鍵を生成する手順を示すフローチャートである
[図 5]第 1の実施形態に係る鍵生成用グラフの第 3例を示す図である。
[図 6]第 1の実施形態に係る鍵生成用グラフの第 4例を示す図である。
[図 7]第 1の実施形態に係るタイプ Bの鍵を生成するフローチャートを説明する概念図 である。
[図 8]第 1の実施形態に係る階層軸ごとにレベル数が異なる鍵生成用グラフの例を示 す図である。
[図 9]第 1の実施形態に係る鍵生成用グラフの第 5例を示す図である。
[図 10]第 1の実施形態に係る鍵生成用グラフの第 6例を示す図である。
[図 11]第 1の実施形態に係る鍵生成用グラフの第 7例を示す図である。
[図 12]第 2の実施形態に係る木構造と行列の対応関係を説明する図である。
[図 13]第 2の実施形態に係る鍵生成用グラフの第 1例を示す図である。
[図 14]第 2の実施形態に係る鍵生成用グラフの第 2例を示す図である。
[図 15]第 2の実施形態に係る融合鍵を説明する図である。
[図 16]第 2の実施形態に係る融合鍵を生成するフローチャートである。
[図 17]第 2の実施形態に係るサイズが Nx * Nyの融合鍵を生成するフローチャートで める。
[図 18]第 2の実施形態に係るタイプ Aの鍵を生成する手順を示すフローチャートであ る。
[図 19]第 2の実施形態に係るタイプ Bの鍵を生成する手順を示すフローチャートであ る。
[図 20]第 2の実施形態に係る階層軸ごとにレベル数が異なる鍵生成用グラフの他の 例を示す図である。
[図 21]第 2の実施形態に係る鍵生成用グラフの第 3例を示す図である。
[図 22]第 3の実施形態に係る有向グラフの第 1例を説明する図である。
[図 23]第 3の実施形態に係る鍵生成用グラフの第 1例を示す図である。
[図 24]第 3の実施形態に係る鍵配布行列の第 1例を示す図である。
[図 25]第 3の実施形態に係る図 22に記載の有向グラフにおけるノード分割の第 1例 を説明する図である。
[図 26]第 3の実施形態に係る鍵配布行歹を構成する途中段階の状態を表す鍵配布 行列である。
[図 27]第 3の実施形態に係る鍵配布行歹を構成する途中段階の状態を表す鍵配布 行列である。
[図 28]第 3の実施形態に係る鍵配布行歹を構成する途中段階の状態を表す鍵配布 行列である。
[図 29]第 3の実施形態に係る図 22に記載の有向グラフにおけるノード分割の第 2例 である。
[図 30]第 3の実施形態に係る鍵配布行列の第 2例である。
[図 31]第 3の実施形態に係るノード鍵生成手順を表すフローチャートである。
[図 32]第 3の実施形態に係る有向グラフの第 2例を示す図である。
[図 33]第 3の実施形態に係る図 32に記載の有向グラフにおけるノード分割の第 3例 を説明する図である。
[図 34]第 3の実施形態に係る鍵生成用グラフの第 2例を示す図である。
[図 35]第 3の実施形態に係る鍵配布行歹を構成する途中段階の状態を表す鍵配布 行列である。
[図 36]第 3の実施形態に係る鍵配布行歹を構成する途中段階の状態を表す鍵配布 行列である。
[図 37]第 3の実施形態に係る鍵配布行歹 IJを構成する途中段階の状態を表す鍵配布 行列である。
[図 38]第 3の実施形態に係る鍵配布行歹 IJを構成する途中段階の状態を表す鍵配布 行列である。
[図 39]第 3の実施形態に係る鍵生成用グラフの第 3例を示す図である。
[図 40]第 3の実施形態に係る双方向に接続関係を持つノードが存在する有向グラフ の例を示す図である。
[図 41]第 3の実施形態に係る図 40に記載の有向グラフにおいて、双方向に接続関 係を持つノードが存在しないように変更した有向グラフの例を示す図である。
[図 42]本実施形態に係る階層型アクセス構造を説明する概念図である。
[図 43]本実施形態に係る各ノードが暗号化すべき画像リストを表わす表である。
[図 44]木構造管理方式における 2分木アクセス構造を説明する概念図である。
[図 45]階層的なアクセス制御方式におけるアクセス構造を説明する概念図である。
[図 46]階層的なアクセス制御方式におけるアクセス構造を説明する概念図である。
[図 47]階層的なアクセス制御方式における局所的構造を説明する概念図である。 [図 48]User multiple keyingの例を説明する図である。
[図 49] One— way function based keying schemesを兄明する である。
発明を実施するための最良の形態
[0024] 以下、図面を参照して、本発明の好適な実施形態を説明する。
[0025] <本実施形態に係る鍵情報処理装置の構成例 >
図 1は、本発明の実施形態に係る鍵情報処理装置の構成を概略的に示すブロック 図である。
[0026] なお、本発明の実現にあたって、図 1に示される全ての機能を使用することは必須 ではない。
[0027] 図 1において、鍵情報処理装置 100は、公衆回線等のモデム 118、表示部としての モニタ 102、 CPU103、 R〇M104、 RAM105、 HD (ノヽードディスク) 106、ネットヮ ークのネットワーク接続部 107、 CD108、 FD (フレキシブルディスク) 109、 DVD (デ ジタル'ビデオ'ディスク、または Digital Versatile Disk) 110、プリンタ 115のインター フェース(I/F) 117、及び操作部としてのマウス 112やキーボード 113等のインター フェース(I/F) 111を備え、これらは、バス 116を介して互いに通信可能に接続され ている。
[0028] マウス 112及びキーボード 113は、鍵情報処理装置 100に対する各種指示等をュ 一ザが入力するための操作部である。この操作部を介して入力された情報 (操作情 報)は、インターフェース 111を介して、鍵情報処理装置 100内に取り込まれる。
[0029] 鍵情報処理装置 100での各種情報 (文字情報や画像情報等)は、プリンタ 115によ り印刷出力できるようになされている。
[0030] モニタ 102は、ユーザへの各種指示情報や、文字情報或いは画像情報等の各種 情報の表示を行う。
[0031] CPU103は、鍵情報処理装置 100全体の動作制御を司るものであり、 HD (ハード ディスク) 106等から処理プログラム(ソフトウェアプログラム)を読み出して実行するこ とで、情報処理装置 100全体を制御する。特に、本実施の形態では、 CPU103は、 HD106等から、鍵生成を実現する処理プログラムを読み出して実行することで、後 述する情報処理を実施する。 [0032] ROM104は、鍵生成のための処理プログラムや、プログラム内で用いられる各種 データ (鍵生成用グラフなど)等を記憶する。
[0033] RAM105は、 CPU103での各種処理のために、一時的に処理プログラムや処理 対象の情報を格納するための作業用エリア等として使用される。
[0034] HD106は、大容量記憶装置の一例としての構成要素であり、各種データ、あるい は各種処理の実行時に RAM105等へ転送される情報変換処理等のための処理プ ログラム等を保存する。
[0035] CD (CDドライブ) 108は、外部記憶媒体の一例としての CD (CD-R)に記憶された データを読み込み、また、当該 CDへデータを書き出す機能を有する。
[0036] FD (フロッピー (R)ディスクドライブ) 109は、 CD108と同様に、外部記憶媒体の一 例としての FD109に記憶されたデータを読み出す。また、種々のデータを上記 FD1
09へ書き込む機能を有してレ、る。
[0037] DVD (デジタル 'ビデオ ·ディスク) 110は、 CD108や FD109と同様に、外部記憶 媒体の一例としての DVD110に記憶されたデータを読み出し、また、上記 DVD110 へデータを書き込む機能を有してレ、る。
[0038] なお、 CD108、 FD109、 DVD110等の外部記憶媒体に対して、例えば、編集用 のプログラム或いはプリンタドライバが記憶されている場合には、これらのプログラム を HD106ヘインストールしておき、必要に応じて、 RAM105へ転送するように構成 してもよい。
[0039] インターフェース(I/F) 111は、マウス 112或いはキーボード 113によるユーザから の入力を受け付けるためのものである。
[0040] モデム 118は、通信モデムであり、インターフェース(I/F) 119を介して、例えば、 公衆回線等を通じて外部のネットワークに接続される。
[0041] ネットワーク接続部 107は、インターフェース(I/F) 114を介して、外部のネットヮー クに接続される。
[0042] <本装置による鍵の生成 ·管理の第 1の実施形態 >
以下、上述した装置による鍵の生成 ·管理の第 1の実施形態について説明する。
[0043] まず、階層的鍵管理方式における各ノードの個別鍵の生成に関する説明から行う。 鍵生成は、図 2及び 3に示される鍵生成用グラフに従って行われる。
[0044] [鍵生成概要]
各ノードごとの個別鍵は、全ノードに共通した 2つのオリジナル鍵からハッシュ関数 を施して得られるタイプ A鍵と、同階層に存在するノードが 3つ以上存在するときにの み得られるタイプ B鍵の 2つの種類に分けられる。また、同階層に存在するノードの集 合を「ランク」と呼ばれるグループを便宜上定義する。ルートノードをランク 1とし、ラン ク番号は階層を経るごとに 1ずつ増加することとする。
[0045] [タイプ A鍵]
タイプ A鍵の例として図 2の 2A及び図 3の 3Aを用いて説明する。すべてのタイプ A 鍵が生成される元となる 2つのオリジナル鍵をそれぞれ X, yとする。図 2の 2A及び図 3の 3Aにおいてそれぞれのノードに付加されている 2つの数字は X, yに対して施す ハッシュ関数の回数が表現されている。例えば(2, 4)と記されているノードでは、タイ プ A鍵として H (H (X) ) )と H (H (H (H (y) ) ) )を保持するとする。今後ハッシュ演算 を n度施す場合には H"n ()と略記して表現するものとする。この表記法に基づけば、 (2, 4)と記されてレ、るノードは H' 2 (X)と H'4 (y)の 2つのタイプ A鍵を持つこととな る。
[0046] [タイプ B鍵]
タイプ B鍵の例として図 2の 2B及び図 3の 3Bを用いて説明する。図 2の 2B及び図 3 の 3Bは、それぞれ図 2の 2A及び図 3の 3Aと同様の階層構造を持っていることに注 意する。ランク 1およびランク 2ではこれらの鍵は存在しない。ランク 3において、タイプ Aにおける(2, 2)の鍵から、それらを連結してハッシュを施した H OT 2 (X) I I H" 2 (y) )を R30とおく。図 2の(B)のランク 3には R30に対して施すハッシュ関数の回数が 表現されている。ランク 3における 3つのノードは、それぞれ左から H (R30), R30, H (R30)とレ、うタイプ B鍵を保持することを意味する。
[0047] ランク 4には 2つの数字が記載されているがこれは R40, R41に対して施すハッシュ 関数の回数が表現されている。 R40, R41はランク 3のすベてのノードで共有可能な データから生成されるが、例えばタイプ B鍵から生成する場合には、公開データ RN D1および RND2から H (H (R30) I | RND1 )と H (H (R30) | | RND2)をそれ ぞれ R40, R41とすればよい。 R40と R41を生成する場合には、 R40力 R41もしく は R41から R40が計算可能ではないようにすることに注意する。そのほかにも HMA Cを使うなどの方法が考えられる。
[0048] 図 2の 2Bまたは図 3の 3Bにおいて、ランク 4における 4つのノードは、それぞれ左か ら H(R40)と H(R41)、 R40と H(R41)、 H(R40)と R41、 H (R40)と H (R41)とレヽぅ タイプ B鍵を保持することを意味する。以降のランクに関しても同様の方法で生成さ れる。同ランクのノードが 2以下になった時点でタイプ B鍵は生成されないこととする。 すなわち図 2の 2Bにおけるランク 6、 7および図 3の 3Bにおけるランク 8、 9のタイプ B 鍵は存在しない。
[0049] [鍵生成用グラフの生成方法]
図 2及び図 3に記載のグラフは次のような規則で生成される。まずタイプ Aのグラフ の生成方法について図 4のフローチャートを用いて説明する。
(1)ランク 1の鍵は { (0, 0) }とする(ステップ S401)。
(2)ランク 2の鍵は {(1, 3), (3, 1)}とする(ステップ S402)。
(3)変数 iを 3とする。つまり i: = 3とおく(ステップ S403)。
(4)ランク i (i≥ 3)はランク(ト 1)における最大の要素成分を Qとする (ステップ S404)
[0050] ランク iにおけるノードの数を # R (i)とすると、
もし #R(i)>#R(i-l)の場合には、鍵は {(Q-2* #R(i)+5, Q + 3), (Q - 2* #R(i)+7, Q+1), (Q + 3, Q_2* #R(i)+5)}とし、
#R(i)<#R (ト 1)の場合には、鍵は {(Q_2* #R(i)+3, Q + 1), (Q_2 * # R(i) +5, Q-l), ... , (Q + 1, Q-2* #R(i) +3) }とする(ステップ S405)。
(5) #R(i+l)=0であれば終了(ステップ S406)。そうでなければ i:=i+lとして(4 )へ(ステップ S407)。
[0051] さらに処理 (4)の前に次のサブルーチンを選択することで、ハッシュ関数演算処理 量を削減することができる。
(4—1)ランク iに関して、 # R (i) < # R (i_l)かつ # R (i) = 3の場合、鍵は { (Q-3, Q), (Q-l, Q + 2), (Q, Q + 3)}とし(5)へ処理を移す。 (4-2)ランク iに関して、 # R (i) < # R (i-1 )かつ # R (i) = 2の場合、鍵は { (Q— 1, Q), (Q, Q-l)}とし(5)へ処理を移す。
(4一 3)ランク iに関して、 #R(i)<#R(i_l)かつ #R(i)=lの場合、鍵は {(Q, Q) } とし(5)へ処理を移す。
[0052] このサブルーチンを選択すると、図 2の 2Aに対しては図 5に、図 3の 3Aに対しては 図 6に示されるような鍵生成用グラフが得られる。
[0053] 次にタイプ Bのグラフの生成方法について図 7のフローチャートを用いて説明する。
ただし表記法 #R(i)は前述のとおりとする。
(1)変数 iを 0とする。つまり i:=0とおく(ステップ S701)。
(2) i:=i+lとする(ステップ S702)。
(3) #R(i)=0であれば終了(ステップ S703)。
(4) #R(i)く 3であればランク iの鍵はなしとし、(2)へ(ステップ S704、 706)。
(5)ランク iの各鍵の成分数は #R(i)_2であり、鍵は {(1, 1), (0, 1, ···, 1), (1 , 0, ···, 1), ... , (1, 1, 0), (1, ···, 1)}とし、(2)へ(ステップ S705)。
[0054] 処理(5)は、両端はすべて 1で構成され、それ以外は 1箇所だけ 0が現れる(ただし 同じ位置で現れることはなレ、)ことを意味する。 #R(i)=6の場合には {(1, 1, 1, 1) , (0, 1, 1, 1), (1, 0, 1, 1), (1, 1, 0, 1), (1, 1, 1, 0), (1, 1, 1, 1)}となる。
[0055] [鍵生成の正当性]
上記のグラフ生成方式は次の条件を満たすように生成されてレ、る。
•親ノードが子ノードの鍵を生成できること
•子ノードの鍵情報からは(一方向性関数が脆弱にならない限り)親ノードの鍵は生成 できないこと
•複数のエンティティが結託しても、上位に位置するノードの鍵は生成できないこと これらの条件により、安全に鍵生成と鍵配布を行うことができる階層的鍵管理方式 が実現できる。
[0056] [鍵配布]
ルート鍵配布者 (ルートノードのエンティティ)による各ノードへの鍵配布方法と、ノレ ート鍵配布者以外の個別鍵を保持するエンティティによる下位ノードへの鍵配布方 法とについて、それぞれ説明する。まずルート鍵配布者は、鍵 X, yをランダムに且つ 安全に生成し、それらを自身の個別鍵とする。さらに前述した鍵生成手順により各ノ ードに複数の鍵を配置する。ルート鍵配布者は各ノードに位置するエンティティに対 して、各ノードの鍵を安全に配布する。また、図 2及び 3に示されているような鍵配布 グラフを公開し、各エンティティに対して、配布された鍵がグラフのどの位置の鍵であ るかを識別できるデータを配布する。このデータは例えばランク番号と、同一ランク内 の何番目力 ^示すランク内識別番号とにより構成されているものとする。
[0057] 次に、ルート鍵配布者以外の個別鍵を保持するエンティティによる鍵配布方法につ いて説明する。個別鍵と鍵配布グラフにおける鍵の位置を示す識別データから、子ノ ードもしくは、孫ノードに対する鍵データを生成する。例えば図 2の 2Aにおいて、タイ プ A鍵として χ ' , y'を持ち、これがグラフ上の位置でランク 3の 1番目であるとすると、 ( 2, 6)に対応する。このエンティティは、ランク 4の 2番目にある子ノード((5, 7)に対 応)に対して、 H"5 (x) =H' 3 (H' 2 (X) ) =H' 3 (x,)と tT 7 (y) =H (Η' 6 (y) ) =H ( y' )であるから、子ノード(5, 7)の鍵として、 11 3 ' )ぉょび11 ' )を配布することが できる。同様に別の子ノードや孫ノードに対する鍵も生成できることは明らかである。
[0058] また、タイプ B鍵に関しては、前述した生成手順によれば、各ランクの鍵はその上位 ランクの鍵力 順に生成されるものであり、ルート鍵配布者の操作と全く同じであるた め説明を割愛する。
[0059] [情報処理装置における鍵生成'配布処理]
前記情報処理装置 100において以上の鍵生成 ·配布処理を行う手順について説 明する。画像などの管理対象データを CD108もしくはネットワークのネットワーク接続 部 107を通して取得し HD106に格納する力 \もしくは HD106に既に格納されてい るデータの中から選択する。ここで、ユーザはモニタ 102に表示した一覧からマウス 1 12もしくはキーボード 113などを使って選択する。
[0060] 管理対象データに対して何階層の階層軸を持たせるかなどのアクセス制御構造を 同様の方法を用いてユーザが選択すると、その構造に応じた鍵生成用グラフを CPU 103を用いて計算を行レ、、 RAM105や HD106などに格納する。
[00611 R〇M104ゃRAM105ゃHD106もしくはマゥス112の動作などのデータからラン ダムデータを生成し、そのランダムデータを用いて、複数のオリジナル鍵を生成し、 R AM105や HD106などに格納する。さらに鍵生成用グラフにおける各ノードの個別 鍵をオリジナル鍵力 演算し、 RAM105や HD106などに格納する。
[0062] 他の情報処理装置に対して、 RAM105や HD106などに格納された個別鍵を読 み出して、ネットワーク接続部 107を通じてネットワークを介して配布を行う。
[0063] [階層軸ごとに異なるレベル数の階層的アクセス構造]
図 2及び 3ではそれぞれ同レベルを持つ階層軸の例のみを取り上げた(図 2では階 層軸がともにレベルが 3、図 3では階層軸がともにレベルが 4であった)力 異なるレべ ルの例も同様の方法で生成できることを図 8に示す。図 8の 8A及び 8Bでは、左下方 向のレベルは 3つ、右下方向のレベルは 4つである力 図 4および図 7に記載のフロ 一チャートに基づき正常に処理することができることがわかる。
[0064] ぐ第 1の実施形態の変形例 >
第 1の実施形態では、タイプ B鍵は途中のランクにおける鍵データから生成する方 式であつたが、タイプ A鍵と同様の枠組みでルート鍵配布者が初期データを生成お よび配布を行う融合方式について説明する。
[0065] 図 9の 9A及び 9Bは、各階層軸のレベルが 3の場合の実施形態 1による構成例であ る。図 10は、図 9におけるタイプ B鍵を途中から生成する方式ではなぐ初期段階で X , yとは別の zというオリジナル鍵を生成しておく方法が記載されている。表記方法は 図 2と同様であり、第 3成分がオリジナル鍵 zに施すハッシュ関数の回数を表している 。具体的には、タイプ Bが存在しないランク 1とランク 2ではオリジナル鍵 zのまま子ノー ドの鍵情報として配布される。ランク 3では図 9の 9Bに記載の方法に則り、 zを初期鍵 R30として処理する。ランク 4以下では h (z)を配布する。
[0066] このように融合方式の場合には、第 3のオリジナル鍵に、同レイヤの複数ノードによ る結託攻撃を回避する機能を集中させず、第 1および第 2のオリジナル鍵に分散させ ること力 Sできる。図 11に記載している鍵生成用グラフはその例である。このように総ハ ッシュ演算量を削減させるグラフを構成することも可能である。
[0067] <本装置による鍵の生成 ·管理の第 2の実施形態 >
以下、上述した装置による鍵の生成 ·管理の第 2の実施形態について説明する。 [0068] [鍵生成概要]
まず、階層的鍵管理方式における各ノードの個別鍵の生成に関する説明力 行う。
[0069] 尚、以降では、便宜上、図 12に示すように、階層的鍵管理方式における木構造を 行列と置き換えて説明する。図 12の 12Aは、 7つの階層から構成され、 16個のノード を有する木構造の例を示す。また、図 12の 12Bは、図 12の 12Aに示した木構造を 行列に置き換えた例を示す。図 12の 12Aの各ノードに記された数字と、図 12の 12B の各セルに記された数字は、同じ対応関係であることを示す。
[0070] まず、図 12の 12Aに示したような木構造において、ルートノード(図中、 "0"で示さ れるノード)を行列における一番右上のセルに対応付ける。そして、木構造における 各ノードの子ノードのうち左に位置するノード、及び右に位置するノードを、夫々、行 列のセルの左のセル、及び下のセルに対応付ける。この対応付けを全てのノード、及 びセルに対して順に行うことにより、図 12の 12Aに示した木構造は図 12の 12Bに示 した行列に置き換えることができる。
[0071] 次に、本実施形態における鍵生成について説明する。鍵生成は、図 13及び 14に 示される鍵生成用行列、及びグラフに従って行われる。
[0072] 各要素、及びノードごとの個別鍵は、木構造にぉレ、て、全ノードに共通した 2つのォ リジナル鍵からハッシュ関数を施して得られるタイプ A鍵と、葉ノード (子ノードを有さ ないノード)以外のノードのみ得られるタイプ B鍵の 2つの種類に分けられる。
[0073] また、木構造においては、同階層に存在するノードの集合として「ランク」と呼ばれる グループを便宜上定義する。ルートノードをランク 1とし、ランク番号は階層を経るごと に 1ずつ増加することとする(図 12の 12A参照)。
[0074] 更に、行列においては、各セルの座標を示すために、最も右上の要素が原点(0, 0 )、そして水平左方向に X座標が増加し、垂直下方向に y座標が増加するような座標 軸を定義する。この定義によれば、例えば、図 12の 12Bの" 4"と記されている要素の 座標は(1, 1)、また" 14"と記されている要素の座標は(2, 3)と表現される(図 12の 12B参照)。
[0075] また、以降の説明では、行列の水平方向のセル数を Nx、垂直方向のセル数を Ny とする。 [0076] [タイプ A鍵]
タイプ A鍵の例として図 13の 13A及び図 14の 14Aを用いて説明する。図 13の 13 Aは Nx = 4、 Ny=4であるタイプ A鍵の行歹 U、そして図 14の 14Aは Nx = 5, Ny = 5 であるタイプ A鍵の行列の例を示す。すべてのタイプ A鍵が生成される元となる 2つの オリジナル鍵をそれぞれ X, yとする。図 13の 13A及び図 14の 14Aにおいてそれぞ れのセルに記載されている 2つの数字は X, yに対して施すハッシュ関数の回数が表 現されている。例えば [1 , 4]と記されているセルでは、タイプ A鍵として H (x)と H (H (H (H (y) ) ) )を保持するとする。今後ハッシュ演算を n度施す場合には Η η ( )と略 記して表現するものとする。この表記法に基づけば、 [1 , 4]と記されているセルは Η ( X)と H'4 (y)の 2つのタイプ A鍵を持つこととなる。
[0077] [タイプ B鍵]
タイプ B鍵の例として図 13の 13B及び図 14の 14Bを用いて説明する。図 13の 13B 及び図 14の 14Bは、それぞれ図 13の 13A及び図 14の 14Aと同じサイズの行列を 持っていることに注意する。行列における、最下行、及び最左列ではこれらの鍵は存 在しない。鍵が存在しないことを示すために、以下では記号 ' N'を用レ、るものとする。 また、最左列、最右列、最下行、及び最上行以外のセルには、サイズが Nx - 2、及び Ny— 2であるタイプ A鍵の値がそのまま適応される。更に、これら以外の最上行のセ ルにはそのひとつ下のセルの値、そして最右行のセルにはその一つ左のセルの値が 、夫々そのまま適応される。
[0078] すべてのタイプ A鍵が生成される元となる 2つのオリジナル鍵をそれぞれ u, Vとする 。タイプ A鍵と同様に、図 13の 13B、及び図 14の 14Bにおいて夫々のセルに付加さ れている 2つの数字は u, Vに対して施すハッシュ関数の回数が表現されている。
[0079] 更に、図 14の 14Cに示したように、タイプ B鍵の行列のサイズのうち大きい方のサイ ズが 5以上である場合には、図 14の 14Cに示すようにサイズが Nx_2,及び Ny— 2で ある融合鍵が適応される。融合鍵についての詳細は後述する。
[0080] [融合鍵]
本実施形態では、以上説明したようなタイプ A鍵、及びタイプ B鍵を融合して用いる 。以降では、タイプ A鍵、及びタイプ B鍵を融合した鍵を融合鍵と呼ぶ。図 15に、図 1 3に示したような Nx = 4、 Ny = 4である場合の融合鍵の行歹 IK図 15の 15A)を示す。 図 15に示すように、同じセルに位置するタイプ Α鍵、及びタイプ B鍵が融合され、対 応する融合鍵が生成される。例えば、図 15の 15Aにおいて、セル(1, 2)は、 H' 5 (x )、 H"4 (y)、 H"2 (u)、及び H (v)とレ、う融合鍵を保持することを意味する。
[0081] 尚、前述したように、以上説明したような本実施形態における鍵行列は、木構造とし ても表現できる。図 15の 15Aに示した行列を木構造で表現した場合の例を、図 15の 15Bに示す。
[0082] [鍵生成用グラフの生成方法]
次に、図 16を用いて、本実施形態における融合鍵を生成する処理方法について 説明する。
[0083] 図 16に示すように、まず、ステップ S601は、融合鍵行列の水平方向、及び垂直方 向のセル数を示す変数 Nx,及び Nyを初期化する。これは、アクセス制御を行う対象 の数に応じて適当な値を設定するようにすればよい。例えば、 6つの解像度と 5つの 画質を有する画像データに対して、解像度、及び画質に応じたアクセス制御を行うよ うな場合には、 Nx = 6、及び Ny = 5のように設定する。し力 ながら、本発明はこれ に限定されることなぐ種々のアクセス制御に対して適応可能である。更に、処理レべ ルを示す変数 PLが 0に初期化される。
[0084] 次に、ステップ S602は、融合鍵行列の各セルに格納される要素の数を初期化する 。本実施形態においては、後述する融合鍵生成処理により生成される一つのセルに 格納されるべき融合鍵の数が要素数として設定される。本実施形態における融合鍵 生成処理においては、ひとつのセルに対して Min (Nx, Ny)個の融合鍵が生成され るため、要素数を Min (Nx, Ny)に設定する。尚、 Min (a, b)は a,及び bのうち小さ な値を選択する演算である。例えば、前述したように Nx = 6,及び Ny = 5であるよう な場合は、一つのセルに格納される要素数を 5に初期化する。
[0085] ステップ S603は、処理レベル PLにおけるサイズ Nx * Nyの融合鍵行列を生成す る。本実施形態における融合鍵生成処理についての詳細は後述する。
[0086] そして、ステップ S604は、生成された夫々の処理レベル PLにおける融合鍵をひと つの融合鍵行列に融合する。本実施形態においては、処理レベル PL = 0のタイプ A 鍵と処理レベル PL = 0のタイプ B鍵を融合し、更に、それ以降の(処理レベル PL1以 上の)全ての生成されたタイプ B鍵を融合する。
[0087] 以上、本実施形態における融合鍵を生成する処理方法について説明した。
[0088] 次に、本実施形態における融合鍵生成処理について図 17を用いて説明する。図 1
7は、本実施形態における融合鍵生成処理を説明するフローチャートである。
[0089] 図 17に示すように、まず、ステップ S501は Max (Nx, Ny)が 2以下であるか否かを 判定する。尚、 Max (a, b)は a,及び bのうち大きな値を選択する演算子である。値が
2以下である場合には処理をステップ S502に進める。さもなければ、処理をステップ
S503に進める。
[0090] ステップ S502は、処理レベル PLにおけるサイズ Nx * Nyのタイプ A鍵行列を生成 し、タイプ A鍵行列を生成した後、融合鍵生成処理を終了する。
[0091] 一方、ステップ S503は、処理レベル PL+ 1におけるサイズ(Nx_2) * (Ny_2)の 融合鍵行列を生成する。更に、融合鍵行列を生成した後、ステップ S504は、処理レ ベノレ PLにおける Nx * Nyのタイプ B鍵行列を生成し、融合鍵生成処理を終了する。
[0092] 以上説明したように、本実施形態においては、処理レベル PLにおけるサイズ Nx * Nyの融合鍵行列を生成するために、処理レベル PLにおけるサイズ(Nx— 2) * (Ny -2)である融合鍵行列が再帰的に生成される。即ち、よりサイズの小さな融合鍵行列 を用いて、より大きな融合鍵行列が順に生成される。
[0093] 次に、タイプ A鍵の行列の生成方法について図 18のフローチャートを用いて説明 する。
[0094] まず、ステップ S801は、変数 i、及び jを 0に設定する。変数 i、及び jは夫々行列の 水平方向、及び垂直方向の座標を示すインデックスである。
[0095] そして、ステップ S802は変数 Nyの値を評価する。もし Nyが 1であれば処理をステ ップ S814に進める。さもなければ、処理をステップ S803に進める。
[0096] ステップ S803は変数 jの値を評価する。もし jが 0であれば処理をステップ S804に 進める。さもなければ、処理をステップ S805に進める。そして、ステップ S804は、セ ノレ(i, j )の X鍵 x_ (i, j )に値 iを代入する。一方、ステップ S805は、セノレ(i, j )の X鍵 X (i, j)に値 Nx+j— 1を代入する。その後、処理をステップ S814に進める。 [0097] ステップ S814は変数 Nxの値を評価する。もし Nxが 1であれば処理をステップ S80 9に進める。さもなければ、処理をステップ S806に進める。
[0098] ステップ S806は変数 iの値を評価する。もし iが 0であれば処理をステップ S807に 進める。さもなければ、処理をステップ S808に進める。そして、ステップ S807は、セ ノレ(i, j)の y鍵 y_ (i, j)に値 jを代入する。一方、ステップ S808は、セノレ(i, j)の y鍵 y _ (i, j)に値 Ny + i— 1を代入する。その後、処理をステップ S809に進める。
[0099] ステップ S809は変数 iを 1だけ増やし、処理をステップ S810に進める。そして、ステ ップ S810において変数 iの値が評価される。もし iが Nxより小さい場合には処理をス テツプ S803に進める。さもなければ、処理をステップ S813に進め、変数 iを 0に初期 化した後、処理をステップ S811に進める。
[0100] ステップ S811は変数 jを 1だけ増やし、処理をステップ S812に進める。そして、ステ ップ S812において変数 jの値が評価される。もし jが Nyより小さい場合には処理をス テツプ S803に進める。さもなければ、タイプ A鍵生成処理を終了る。
[0101] 以上、本実施形態におけるタイプ A鍵の行列の生成方法について説明した。以上 説明したような方法により、 Nx = 4、 Ny = 4の場合、図 13の 13Aに記載したタイプ A 鍵の行列を生成することができる。また、 Nx = 5, Ny = 5の場合には、同様に図 14 の 14Aに記載したタイプ A鍵の行列を生成することができる。
[0102] 次に、タイプ B鍵の行列の生成方法について図 19のフローチャートを用いて説明 する。まず、ステップ S902は、変数 i、及び jを 0に設定する。変数 i、及び jは夫々行列 の水平方向、及び垂直方向の座標を示すインデックスである。
[0103] そして、ステップ S903は変数 i,及び jの値を評価する。もし i,及び jが共に 0である 場合には、処理をステップ S904に進める。さもなければ、処理をステップ S905に進 める。ステップ S904では、セノレ(i, j )の u鍵 u_ (i, j )、及びセル(i, j )の V鍵 v_ (i, j ) に共に 0を代入する。その後、処理をステップ S911に進める。尚、 Nx= 3の場合は u 鍵 u_(i, j)は生成せず、 Ny = 3の場合は、 V鍵 v_(i, j)は生成しない。
[0104] ステップ S905は変数 i,及び jの値を評価する。もし iが Nx_l、或いは jが Ny_lに 等しければ、処理をステップ S906に進める。さもなければ、処理をステップ S907に 進める。ステップ S906は、セル(i, j)の u鍵 u (i, j)、及びセル(i, j)の V鍵 V (i, j) に共に ' N'を代入する。尚、前述したように ' N'は鍵を設定しないことを示す符号で ある。その後、処理をステップ S911に進める。尚、 Nx = 3の場合はu鍵u—(i, j)は 生成せず、 Ny= 3の場合は、 V鍵 V— (i, j )は生成しない。
[0105] ステップ S907は変数 iの値を評価する。もし iが 0なら、処理をステップ S908に進め る。さもなければ、処理をステップ S909に進める。ステップ S908は、セル(i, j)の u鍵 u_(i, j )に u,_ (0, j_l)を、また、セノレ(i, j )の V鍵 v_ (i, j )に v,_(0, j_l)を代入 する。ここで、 u'、及び v,は処理レベル力 1、即ち、行列のサイズが(Nx— 2) * (Ny— 2)であるタイプ A鍵を表している。処理レベル力 SPL+ 1であるタイプ A鍵は、タ イブ B鍵生成処理(図 7におけるステップ S704)の前段において、融合鍵生成処理( 図 17におけるステップ S703)中で予め生成されている。その後、処理をステップ S9 11に進める。尚、 Nx = 3の場合はu鍵u_(i, j)は生成せず、 Ny = 3の場合は、 v鍵 v_ (i, j)は生成しない。
[0106] ステップ S909は変数 jの値を評価する。もし jが 0なら、処理をステップ S910に進め る。さもなければ処理をステップ S915に進める。ステップ S910は、セル(i, j)の u鍵 u — (i, j)に u,— (i-1, 0)を、また、セル (i, j)の v鍵 v_(i, j)に v,— (i-1, 0)を代入 する。一方、ステップ S915は、 (i, j)の u鍵 u_ (i, j)に u,— (i-1, j 1)を、また、セ ノレ(i, j)の V鍵 V— (i, j)に v, (i 1 ,卜 1)を代入する。その後、処理をステップ S91 1に進める。尚、 Nx = 3の場合はu鍵u—(i, j)は生成せず、 Ny = 3の場合は、 v鍵 v — (i, j )は生成しない。
[0107] ステップ S911は変数 iを 1だけ増やし、処理をステップ S912に進める。そして、ステ ップ S912において変数 iの値が評価される。もし iが Nxより小さい場合には処理をス テツプ S903に進める。さもなければ、処理をステップ S915に進め、変数 iを 0に初期 化した後、処理をステップ S913に進める。
[0108] ステップ S913は変数 jを 1だけ増やし、処理をステップ S914に進める。そして、ステ ップ S914において変数 jの値が評価される。もし jが Nyより小さい場合には処理をス テツプ S903に進める。さもなければ、タイプ B鍵生成処理を終了る。
[0109] 以上、本実施形態におけるタイプ B鍵の行列の生成方法について説明した。以上 説明したような方式により、 Nx = 4, Ny = 4の場合、図 13の 13Bに記載したタイプ B 鍵の行列を生成することが出来る。また、 Nx= 5, Ny= 5の場合には、同様に図 14 の 14Aに記載したタイプ B鍵の行列を生成することができる。
[0110] [鍵生成の正当性]
上記のグラフ生成方式は次の条件を満たすように生成されてレ、る。
-ノードはその孫ノードの鍵だけを生成できること
•子ノードの鍵情報からは(一方向性関数が脆弱にならない限り)親ノードの鍵は生成 できないこと
•任意の二つ以上のエンティティが結託しても、夫々のエンティティより上位に位置す るノードの鍵は生成できなレ、こと
これらの条件により、安全に鍵生成と鍵配布を行うことができる階層的鍵管理方式 が実現できる。
[0111] [鍵配布]
ルート鍵配布者 (ルートノードのエンティティ)による各ノードへの鍵配布方法と、ノレ ート鍵配布者以外の個別鍵を保持するエンティティによる下位ノードへの鍵配布方 法とについて、それぞれ説明する。まずルート鍵配布者は、鍵 X, y, u, Vをランダム に且つ安全に生成し、それらを自身の個別鍵とする。さらに前述した鍵生成手順によ り各ノードに複数の鍵を配置する。ルート鍵配布者は各ノードに位置するエンティティ に対して、各ノードの鍵を安全に配布する。また、図 13及び 14に示されているような 鍵配布グラフを公開し、各エンティティに対して、配布された鍵がグラフのどの位置の 鍵であるかを識別できるデータを配布する。このデータは例えば、木構造におけるラ ンク番号と、同一ランク内の何番目力を示すランク内識別番号とにより構成したり、或 いは行列における座標により構成したりするようにすれば良い。
[0112] 次に、ルート鍵配布者以外の個別鍵を保持するエンティティによる鍵配布方法につ いて説明する。個別鍵と鍵配布グラフにおける鍵の位置を示す識別データから、子ノ ードもしくは、孫ノードに対する鍵データを生成する。例えば図 15の 15Aにおいて、 融合鍵として x', y', u', v'を持ち、これが行列においてセル(1 , 1)、即ちグラフ上 の位置でランク 3の 2番目であるとすると、 [4, 4, 0, 0]に対応する。このエンティティ は、セル(2, 1)、即ちランク 4の 2番目にある子ノードに対して、 H'4 (x) =H'0 (H'4 (x) ) =x,、 H'5 (y) =H' l (H'4 (y) ) =H' l (y,)、 H (u) =H' 1 (H'O (u) ) =H' 1 (u,)、及び tT 2 (v) =H' 2 (H'0 (v) ) =H' 2 (v,)であるから、セル(2, 1)の鍵として 、 H'4 (X ' )、 H (y' )、 tT 1 (u, )、及び H' 2 (ν' )を配布することができる。同様に別 の子ノードや孫ノードに対する鍵も生成できることは明らかである。
[0113] [情報処理装置における鍵生成 ·配布処理]
前記情報処理装置 100において以上の鍵生成.配布処理を行う手順について説 明する。画像などの管理対象データを CD108もしくはネットワークのネットワーク接続 部 107を通して取得し HD106に格納する力 \もしくは HD106に既に格納されてい るデータの中から選択する。ここで、ユーザはモニタ 102に表示した一覧からマウス 1 12もしくはキーボード 113などを使って選択する。
[0114] 管理対象データに対して何階層の階層軸を持たせるかなどのアクセス制御構造を 同様の方法を用いてユーザが選択すると、その構造に応じた鍵生成用グラフを CPU 103を用いて計算を行い、 RAM105や HD106などに格納する。
[0115] ROM104や RAM105や HD106もしくはマウス 112の動作などのデータ力らラン ダムデータを生成し、そのランダムデータを用いて、複数のオリジナル鍵を生成し、 R AM105や HD106などに格納する。さらに鍵生成用グラフにおける各ノードの個別 鍵をオリジナル鍵力 演算し、 RAM105や HD106などに格納する。
[0116] 他の情報処理装置に対して、 RAM105や HD106などに格納された個別鍵を読 み出して、ネットワーク接続部 107を通じてネットワークを介して配布を行う。
[0117] [階層軸ごとに異なるレベル数の階層的アクセス構造]
図 13及び 14では Nx,及び Nyが等しい場合の例のみを取り上げた(図 13では Nx = Ny = 4、図 14では Nx = Ny= 5あった)が、 Nx,及び Nyが異なる場合も同様の方 法で生成できることを、タイプ A鍵について図 20の 20Aに示し、タイプ B鍵について 図 20の 20Bに示す。図 20で ίま、 Nx= 3, Ny=4である力 図 18および図 19に記載 のフローチャートに基づき正常に処理することができることがわかる。
[0118] <本装置による鍵の生成 ·管理の第 3の実施形態 >
以下、上述した装置による鍵の生成 ·管理の第 3の実施形態について説明する。
[0119] [鍵生成概要] まず、階層的鍵管理方式における各ノードのノード鍵の生成に関する説明から行う
[0120] 本発明では図 22や図 32のように階層関係がループおよびサイクルを持たない有 向グラフで表現されていることを前提とする。図 40のノード nlと n2のように、複数の異 なるノードがお互いに有向グラフで接続されている箇所が存在するとき、これらのノー ドをまとめて一つのノードとして扱うことで、このような双方向の接続関係を持つノード がない場合に帰着することができる。図 41は nlと n2を η とレ、うひとつのノードと同一 視した有向グラフである。以降、このような双方向の接続関係を持つノードがないと仮 する。
[0121] 説明の便宜上、本実施の形態では図 22に示すような 2つの階層を持った格子ダラ フを取り扱う。図 23及び図 24においてそれぞれのセルに記載されている 3つの数字 は 3つの初期鍵 X, y, zに対して施すハッシュ関数の回数が表現されている。例えば [ 2, 2, N]と記されているセルでは、ノード鍵として H(H (x) )と H (H (y) )を保持すると する。 Nは"なじ'を意味し、初期鍵 zに関する情報は全く持たないことを意味する。今 後、ハッシュ演算を n度施す場合には Η η ( )と略記して表現するものとする。この表 記法に基づけば、 [2, 2, Ν]と記されているセルは H' 2 (X)と tT 2 (y)の 2つのノード 鍵を持つこととなる。階層的鍵管理方式における木構造を図 4に示すような行列と置 き換えて説明することもできる。図 23は 9個のノードを有する木構造の例であり、図 23 の各ノードに記された数字と、図 24の各セルに記された数字は、同じ対応関係であ ることを示す。
[0122] まず、図 23に示したような木構造において、ルートノード(図中 [0,0,0]で示されるノ ード)を行列における一番右上のセルに対応付ける。そして、木構造における各ノー ドの子ノードのうち左に位置するノード、及び右に位置するノードを、夫々、行列の左 のセル、及び下のセルに対応付ける。この対応付けを全てのノード、及びセルに対し て順に行うことにより、図 23に示した木構造は図 24に示した行列に置き換えることが できる。
[0123] 次に、図 23または 24に示される鍵生成用データの生成方法について説明する。
[0124] [ノードの分割] 鍵生成用データを生成するために、与えられた鍵配布グラフ Gにおいて、次の条件 を満たすようにノードの分割を行う。ここで、ノード全体の集合を Node(G)、部分集合 の組の大きさを N、分割された部分集合を SubG_l, SubG_2, · · ·, SubG_Nという表記方 法を使うこととする。
[0125] - SubG.l U SubG_2 U… U SubG.N = Node(G),つまり部分集合全体は全ノードを網 羅する。
[0126] ' SubG_iに含まれる任意の 2つの異なるノード n_a,n_bは n_a < n_bまたは n_a > n_bが 成立する。つまり n_a,n_bには子孫関係が存在し、一方が必ずもう一方の子孫ノードで める。
[0127] この分割された部分集合の数 Nを鍵配布グラフ Gの鍵配布オーダーと呼び〇rd (G) と表記する。
[0128] [ノード鍵の割り当て]
部分集合 SubG_iに対して 1つずつ初期鍵 K_iを計算し、ルートノードのノード鍵とし て割り当てる。ルートノードの配下にある子孫ノードは次のような法則でノード鍵が割 り当てられる。
[0129] あ)各ノードは N個の初期鍵 K_i (l≤ N)に関連付けられた番号が振られる。この 番号は初期鍵 K_iに対し一方向性関数を実行する回数であり、 "なじ'を意味する" N" 力 S振られることもある。初期鍵 K_iの当該番号が" N"のときは、初期鍵 K_iに関連した 鍵を保有しなレ、ことを意味する。
[0130] レ、) SubG_iに含まれるノードをそれぞれの集合内で有向グラフ上での子孫関係に従 つて降順にソートし、 0から 1つずつ増加させた番号を割り付けする。この番号は初期 鍵 K_iに関連付けられた番号である。
[0131] う) SubG_iに含まれるノードの初期鍵 Kj (i≠j)に関連付けられた番号は、(初期鍵 K jに対する部分集合である) SubGjに含まれるノードの祖先ノードではなレ、場合には 当該番号を N (なし)とし、祖先ノードであるノードの当該番号は子孫ノードとして
SubGJに含まれるノードのうち割り当てされた番号の最小値とする。
[0132] 図 31は上記のノード鍵割り当て処理をフローチャートにしたものである。以降、図 3 1の説明を行う。ここでは、すでに全ノード集合は互いに素であり、空ではない部分集 合 {SubG_i}(l≤i≤N)に分割されており、それぞれの部分集合に対する初期鍵 K_i が計算されているものとする。また、部分集合 SubGjに含まれるノード数を #N(i)と 記述し、部分集合 SubG_iに含まれるノードは、有向グラフ上での子孫関係に従って降 順にソートされ SubG_i={n(i, 1), n(i, 2), . . ., n(i, #N(i)) }と記述することとす る。さらにノード n(i, j)に対するノード鍵は初期鍵 K_k(l≤k≤N)に一方向性ハツシ ュ関数を規定回数施したものであるが、この規定回数を Mi, j, k)と表記する。
[0133] ステップ S1101は 1から Nまで変動する変数 iのループ、ステップ S1102は 1から N まで変動する変数 jのループ、ステップ S1103は 1から # N (i)まで変動する変数 kの ループである。ステップ S1104は変数 iと変数 kがー致するかどうか評価し、一致する 場合には処理をステップ S1105に進め、一致しない場合には処理をステップ S1106 に進める。ステップ S1105は h(i, j, k)に j_lを代入し、ループ処理に戻る。ステップ S1106は n(k, m)<n(i, j),つまり n(i, j)は n(k, m)の祖先ノードであることを満た す mが存在するか評価し、存在しない場合には処理をステップ S1107に進め、存在 しない場合には処理をステップ S1108に進める。ステップ S1107は h(i, j, k)に "N" を代入し、ループ理に戻る
[0134] ステップ S1108iま h(i, j, k)に min{h(k, m, k)|n(k, m)<n(i, j)}、つまり n(i, j) が n(k, m)の祖先ノードであるノードのうち h(k, m, k)の最小値を代入し、ループ処 理に戻る。
[0135] 以下、具体例を図 25から図 28、図 29から図 30、および、図 32から図 38を用いて 説明する。
[0136] 図 25は、図 22に示す鍵生成用グラフにおけるノード分割の例であり、 3つの部分集 合 SubG_ 1から SubG_ 3に分割している。つまり、 SubG_ 1={η0, n2, n5}, SubG_ 2={nl, n4, n7}, SubG_ 3={n3, n6, n8}である。このとき、 h(i, j, i)のみを表示したものが図 26 である。たとえば {h(l, 1, 1), h(l, 2, 1), h(l, 3, 1)} = {0, 1, 2}であり、これは ステップ S1104および S1105に対応する。さらにノードの子孫関係から" N"となる箇 所を記載したものが図 27である。たとえば h(l, 1, 3)="N"である力 S、これは n(3, m)<n(l, 1)=η3となる mは存在しないことに起因する。実際 η(3, 1)=η0, n(3, 2) =n2, n(3, 3)=n5でありこのことが確認できる力 これはステップ S1106および S110 7に対応する。さらに n(3, m)<n(i, j)を満たすすべての i, jでチェックして反映した 結果が図 28である。たとえば h(2, 1, 1)=0である力 これは n(l, m)<n(2, 1)= nlとなる mには 1, 2, 3の可能性があるが、 h(l, 1, 1) =0, h(l, 2, l)=l, h(l, 3 , 1)= 2のうち最小値である 0が選択される。さらに n(2, m)<n(i, j)を満たすすべ ての i, jでチェックし,最終的には図 24を得る。
[0137] また、図 25とは異なる図 29に記載のノード分割による構成方法は、図 31のフロー チャートにより図 24と同様に構成でき、図 30を得る。図 24と図 30では、総ハッシュ演 算量が図 30の場合が多くなる。
[0138] 次に図 32に示す鍵生成用グラフにおけるノード鍵の構成方法について説明する。
図 33は、図 32に示す鍵生成用グラフにおけるノード分割の例であり、 3つの部分集 合 SubG_ 1から SubG_ 3に分割している。つまり SubG_ 1={η0, nl, n4, n7}, SubG_ 2={n3, n6}, SubG_ 3={n2, n5}である。このとき図 31に記載のフローチャートに基づき 構成したノード鍵は図 34のとおりである。以下、図 34に至るまでの構成を説明する。 まず、 h(i, j, i)のみを表示したものが図 35である。たとえば {h(l, 1, l), h(l, 2, 1 ), h(l, 3, l), h(l, 4, 1)} = {0, 1, 2, 3}であり、これ ίまステップ S1104および SI 105に対応する。さらにノードの子孫関係から" N"となる箇所を記載したものが図 36 である。たとえば h(l, 2, 3) ="N"であるが、これは n(3, m) <n(l, 2) =nlとなる m は存在しないことに起因する。実際 η(3, 1)=η3, n(3, 2)= n6でありこのことが確認 できる力 これはステップ S1106および S1107に対応する。さらに n(l, m) <n(i, j) をすベての i, jでチェックして反映した結果が図 37である。たとえば h(2, 1, 1)=2で ある力 S、これは n(l, m)<n(2, 1) =n3となる mには 3, 4の可能性がある力 h(l, 3 , 1)=2, h(l, 4, 1) =3のうち最小値である 2が選択される。同様にして n( 2, m) <n(i, j)をすベての i, jでチェックして反映した結果が図 38であり、最終的には図 34 を得る。
[0139] さらに、終端ノードに鍵を配布しない場合を考える。これは画像データにおけるサム ネイル画像など、制限なしにデータアクセス可能な状態を作ることができる。図 39は その例であり、終端ノードは [N, N, N]と記載されているようにノード鍵が存在しないこ とを意味する。これは、終端ノードのみをノード分割時 nどの部分集合にも含めない状 態から図 31のフローチャートに適用することで得ることができる。ここでは終端ノード のひとつのみに対しノード鍵を配布しない例を示した力 複数ノードにした場合でも 同様に構成できることは明らかである。
[0140] [生成された鍵の満たすべき条件]
上記の鍵生成方式は次の条件を満たすように構成されてレ、る。
•a.生成可能性:対象ノードはその孫ノードの鍵を生成できること
• b.結託攻撃回避性:(一方向性関数が脆弱にならない限り)任意の二つ以上のノー ドに位置するエンティティが結託しても、夫々のノードより上位に位置する祖先ノード の鍵は生成できないこと
これらの条件により、安全に鍵生成と鍵配布を行うことができる階層的鍵管理方式 が実現できる。
[0141] [鍵配布]
ルート鍵配布者 (ルートノードのエンティティ)による各ノードへの鍵配布方法と、ノレ ート鍵配布者以外の個別鍵を保持するエンティティによる下位ノードへの鍵配布方 法とについて、それぞれ説明する。まずルート鍵配布者は、鍵配布グラフ Gに応じて 決まる鍵配布オーダー Ord (G)個のパラメータ {x_i} (l≤i≤Ord (G) )をランダムに 且つ安全に生成し、それらを自身の個別鍵とする。さらに前述した鍵生成手順により 各ノードに複数の鍵を配置する。ルート鍵配布者は各ノードに位置するエンティティ に対して、各ノードの鍵を安全に配布する。また、鍵配布グラフを公開し、各ェンティ ティに対して、配布された鍵がグラフのどの位置の鍵であるかを識別できるデータを 配布する。このデータは例えば、格子グラフを鍵配布グラフとする場合には、行列表 記したときの座標により構成するようにすれば良レ、。
[0142] [情報処理装置における鍵生成'配布処理]
前記情報処理装置 100において以上の鍵生成.配布処理を行う手順について説 明する。画像などの管理対象データを CD108もしくはネットワークのネットワーク接続 部 107を通して取得し HD106に格納する力 \もしくは HD106に既に格納されてい るデータの中から選択する。ここで、ユーザはモニタ 102に表示した一覧からマウス 1 12もしくはキーボード 113などを使って選択する。
[0143] 管理対象データに対して何階層の階層軸を持たせるかなどのアクセス制御構造を 同様の方法を用いてユーザが選択すると、その構造に応じた鍵生成用グラフを CPU 103を用いて計算を行レ、、 RAM105や HD106などに格納する。
[0144] R〇M104ゃRAM105ゃHD106もしくはマゥス112の動作などのデータからラン ダムデータを生成し、そのランダムデータを用いて、複数のオリジナル鍵を生成し、 R AM105や HD106などに格納する。さらに鍵生成用グラフにおける各ノードの個別 鍵をオリジナル鍵から演算し、 RAM105や HD106などに格納する。
[0145] 他の情報処理装置に対して、 RAM105や HD106などに格納された個別鍵を読 み出して、ネットワーク接続部 107を通じてネットワークを介して配布を行う。
[0146] <本実施形態に係る階層型アクセス構造の具体例 >
第 1および第 3の実施形態における鍵配布方式により生成された階層的な構造を 持つ鍵データを用いたアクセス制御の好例を説明する。
[0147] 図 2、図 3や図 15で表現されている鍵生成用グラフは 2つの階層軸を持っている。こ のうち 1つ (左下方向)を解像度、もう片方 (右下方向)を画像領域、とした場合の例を 図 42に示す。解像度には高、中、低の 3つのレベルがあり、取得できる画像の解像 度を示す。画像領域にも 3つのレベルがあり、すべての領域、サブ領域 A、 (サブ領 域 Aよりも狭レ、)サブ領域 B、の閲覧の権限が与えられるとする。このときルートに位置 する権限の最も大きいノードには (解像度 =高、画像領域 =すベて)が割り当てられ 、最下位のノードには (解像度 =低、画像領域 =領域 B)が割り当てられている。
[0148] [第 1の実施形態の具体的適用例]
図 10に則った鍵配布を行う場合を例として鍵配布方法および画像喑号ィ匕方法を 説明する。対象画像データ IMGは領域 Bの画像データ IMG1、領域 A差分データを IMG_2、すべての画像データを得るための差分データを IMG_3とする。つまり IM G = IMG_1 +IMG_2 + IMG_3である。また、それぞれの IMG_iは低解像度 データを IMG_i (L)、中解像度差分データを IMG_i (M)、高解像度差分データを IMG_i (H)とする。つまり IMG_i=IMG_i (L) +IMG_i (M) +IMG_i (H)で める。 [0149] まずルート鍵配布者はランダムにオリジナル鍵 x, y, zを生成する。喑号ィ匕に使う鍵 Key (< High, All>) :=H(x | | y | | z)とし、この鍵で IMG— 3 (H)を暗号化す る。ただし I I はデータの連結とする。それぞれの子ノードでは取得した 3つのデー タをルートノードと同様に連結して暗号鍵を生成し図 43に記載のデータを喑号ィ匕す る。
[0150] 例えば、 <Mid, All >ノードでは、鍵データとして H(x), H"2(y), zが与えられて レヽる力 喑号鍵 Key (く Mid, All>) :=H(H(x) I | H"2(y) | | z)とし、この鍵で IMG_3(M)を喑号ィ匕する。暗号化されたデータを復号する際には、同様の処理を 行って暗号鍵を計算し復号処理をして適切な画像データを取得する。
[0151] [第 2の実施形態の具体的適用例]
図 21に則った鍵配布を行う場合を例として、鍵配布方法および画像暗号化方法を 説明する。図 21は Nx = 3, Ny = 3である場合のタイプ A鍵(図 21の 21A)、及びタイ プ B鍵(図 21の 21B)の例である。対象画像データ IMGは領域 Bの画像データ IMG 1、領域 A差分データを IMG— 2、すべての画像データを得るための差分データを I MG— 3とする。つまり IMG = IMG— 1+IMG— 2 + IMG— 3である。また、それぞ れの IMG— iは低解像度データを IMG— i(L)、中解像度差分データを IMG— i(M) 、高解像度差分データを IMG— i(H)とする。つまり IMG— i = IMG— i(L) +IMG — i (M) + IMG一 i (H)である。
[0152] まずルート鍵配布者はランダムにオリジナル鍵 x, y, uを生成する。暗号化に使う鍵 Key ( < High, All > ): = H (x | | y | | u)とし、この鍵で IMG— 3 (H)を暗号化す る。ただし I I はデータの連結とする。それぞれの子ノードでは取得した 3つのデー タをルートノードと同様に連結して暗号鍵を生成し、図 43に記載のデータを暗号化 する。
[0153] 例えば、 <Mid, All >ノードでは、鍵データとして H(x), H"3(y), uが与えられて レヽる力 喑号鍵 Key (く Mid, All>) :=H(H(x) I | H"3(y) | | u)とし、この鍵で IMG_3(M)を喑号ィ匕する。暗号化されたデータを復号する際には、同様の処理を 行って暗号鍵を計算し復号処理をして適切な画像データを取得する。
[0154] [第 3の実施形態の具体的適用例] 図 23または図 24に則った鍵配布を行う場合を例として、鍵配布方法および画像喑 号化方法を説明する。対象画像データ IMGは領域 Bの画像データ IMG1、領域 A差 分データを IMG— 2、すべての画像データを得るための差分データを IMG— 3とす る。っまりIMG = IMG_1 +IMG_2 + IMG_3でぁる。また、それぞれの IMG_i は低解像度データを IMG_i (L)、中解像度差分データを IMG_i (M)、高解像度 差分データを IMG_i (H)とする。つまり IMG_i = IMG_i (L) +IMG_i (M) +IM G_i (H)である。
[0155] まずルート鍵配布者はランダムにオリジナル鍵 x, y, uを生成する。暗号化に使う鍵 Key ( < High, All > ): = H (x I | y | | u)とし、この鍵で IMG_3 (H)を暗号化す る。ただし I I はデータの連結とする。それぞれの子ノードでは取得した 3つのデー タをルートノードと同様に連結して暗号鍵を生成し、図 43に記載のデータを暗号化 する。
[0156] 例えば、く Mid, All >ノードでは、鍵データとして H (x) , H' 3 (y) , uが与えられて レヽる力 S、暗号鍵 Key (く Mid, All>) : =H (H (x) I | H"3 (y) | | u)とし、この鍵で IMG_3 (M)を喑号ィ匕する。暗号化されたデータを復号する際には、同様の処理を 行って暗号鍵を計算し復号処理をして適切な画像データを取得する。
[0157] 本実施形態では、暗号鍵の生成方式として鍵を連結してハッシュする方式を採用し たが、その他の鍵連結方式 (複数の鍵データから 1つの鍵を計算する方式)に従って もかまわない。
[0158] また、本実施形態では解像度と画像領域を階層軸として取り上げたが、本発明はこ れに限定されることなぐ画質や時間軸や利用制御情報などアクセス制御の対象とす べき階層の中から、任意の二つ以上の階層を選択して軸として利用することも可能で める。
[0159] <ソフトウェアなどによる他の実施の形態 >
本発明は、複数の機器 (例えばホストコンピュータ、インターフェース機器、リーダ、 プリンタ等)から構成されるシステムの一部として適用しても、ひとつの機器(たとえば 複写機、ファクシミリ装置)からなるものの一部に適用してもよい。
[0160] また、本発明は上記実施の形態を実現するための装置及び方法及び実施の形態 で説明した方法を組み合わせて行う方法のみに限定されるものではなぐ上記システ ムまたは装置内のコンピュータ(CPUあるいは MPU)に、上記実施の形態を実現す るためのソフトウェアのプログラムコードを供給し、このプログラムコードに従って上記 システムあるいは装置のコンピュータが上記各種デバイスを動作させることにより上記 実施の形態を実現する場合も本発明の範疇に含まれる。
[0161] またこの場合、前記ソフトウェアのプログラムコード自体が上記実施の形態の機能 を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンビ ユータに供給するための手段、具体的には上記プログラムコードを格納した記憶媒 体は本発明の範疇に含まれる。
[0162] この様なプログラムコードを格納する記憶媒体としては、例えばフロッピー(R)ディ スク、ハードディスク、光ディスク、光磁気ディスク、 CD-ROM,磁気テープ、不揮発 性のメモリカード、 ROM等を用いることができる。
[0163] また、上記コンピュータが、供給されたプログラムコードのみに従って各種デバイス を制御することにより、上記実施の形態の機能が実現される場合だけではなぐ上記 プログラムコードがコンピュータ上で稼働している OS (オペレーティングシステム)、あ るいは他のアプリケーションソフト等と共同して上記実施の形態が実現される場合に も力かるプログラムコードは本発明の範疇に含まれる。
[0164] 更に、この供給されたプログラムコードが、コンピュータの機能拡張ボードやコンビュ ータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコ ードの指示に基づいてその機能拡張ボードや機能格納ユニットに備わる CPU等が 実際の処理の一部または全部を行い、その処理によって上記実施の形態が実現さ れる場合も本発明の範疇に含まれる。
[0165] 以上説明したように、本発明によれば、復号のための複数の鍵を管理する必要があ るコンテンツ配信システムやリムーバルメディア制御方式にぉレ、て、鍵生成における 計算量の削減により、鍵管理の負荷を軽減させる方式を提供することができるという 効果がある。
[0166] 本発明は上記の実施の形態に制限されるものではなぐ本発明の精神及び範囲か ら離脱することなぐ様々な変更及び変形が可能である。従って、本発明の範囲を公 にするために、以下に請求項を添付する。

Claims

請求の範囲
[1] 階層関係を持つ複数の要素の各要素に対して、一方向性関数の実行規定の組を 設定する設定工程と、
前記各要素につき、 2つ以上のオリジナル鍵のそれぞれに当該要素に対して設定 された前記実行規定の組の対応する実行規定に応じて前記一方向性関数を実行し た値として、当該要素に対する 2つ以上の個別鍵を生成する鍵生成工程と、 前記各要素に対し、当該要素に対する 2つの個別鍵を配布する鍵配布工程と、を 有することを特徴とする鍵情報処理方法。
[2] 前記実行規定は、前記一方向性関数の実行回数であることを特徴とする請求項 1 に記載の情報処理方法。
[3] 前記鍵生成工程において、最上位の要素に対する個別鍵を前記 2つ以上のオリジ ナル鍵とすることを特徴とする請求項 1又は 2に記載の鍵情報処理方法。
[4] 前記鍵生成工程において、最上位の要素が前記 2つ以上のオリジナル鍵から前記 各要素に対する 2つ以上の個別鍵を生成し、前記鍵配布工程において、当該最上 位の要素が前記各要素に対し、当該要素に対する 2つ以上の個別鍵を配布すること を特徴とする請求項 1又は 2に記載の情報処理方法。
[5] 前記鍵生成工程において、最上位以外の要素が当該要素に対する 2つ以上の個 別鍵から下位要素に対する 2つ以上の個別鍵を生成し、前記鍵配布工程において、 当該最上位以外の要素が当該下位要素に対し、当該下位要素に対する 2つ以上の 個別鍵を配布することを特徴とする請求項 1又は 2に記載の情報処理方法。
[6] 前記鍵生成工程において、最上位以外の要素の 2つ以上の個別鍵のそれぞれに 、当該最上位以外の要素に対して設定された実行回数の組と前記下位要素に対し て設定された実行回数の組との差において対応する回数だけ、前記一方向性関数 を実行することで、当該下位要素に対する 2以上の個別鍵を生成することを特徴とす る請求項 2に記載の情報処理方法。
[7] 前記設定工程の設定内容を表わすグラフを前記各要素に公開する公開工程と、 前記各要素に、当該要素の前記グラフ上での位置を表わす識別データを配布する 識別データ配布工程とを有することを特徴とする請求項 6に記載の情報処理方法。
[8] 前記設定工程において、最上位層のランク番号を 1とし、以下の階層のランク番号 を順次 1ずつ増加した値として、
ランク番号 1の要素に対する前記実行回数の組として { (0, 0) }を設定し、 ランク番号 2の各要素に対する実行回数の組としてそれぞれ {(1, 3), (3, 1)}を設 定し、
ランク番号 (i一 1)における最大の要素成分を Q、ランク iにおけるノードの数を #R(i )とし、ランク番号 i(i≥ 3)の各要素に対する実行回数の組としてそれぞれ、 #R(i) > #R(i— 1)のとき、 {(Q— 2* #R(i)+5, Q + 3), (Q— 2 * # R (i) + 7, Q + l), ..·, (Q + 3, Q_2* #R(i)+5)}を設定し、 #R(i)<#R(i_l)の場合には、 { (Q-2 * #R(i) +3, Q+l), (Q-2* #R(i) +5, Q_l), ·.., (Q+l, Q-2* #R(i) +3) }を設定することを特徴とする請求項 1又は 2に記載の鍵情報処理方法。
[9] ランク番号 i(i≥3)の各要素に対して、 #R(i)<#R(i_l)を満たすとき、 {(Q-2*
#R(i)+3, Q+l), (Q_2* #R(i)+5, Q_l), .··, (Q+l, Q_2* #R(i)+3) }に代えて、
#R(i)=3の場合 {(Q_3, Q), (Q_l, Q + 2), (Q, Q + 3)}を設定し、 #R(i)=2の場合 {(Q_l, Q), (Q, Q_l)}を設定し、
#R(i) =1の場合 { (Q, Q) }を設定することを特徴とする請求項 7に記載の鍵情報 処理方法。
[10] 前記設定工程において、行列に最右上のセルが原点(0, 0)、及び水平左方向に X座標が 1ずつ増加し、垂直下方向に y座標が 1ずつ増加するような座標軸を定義し 、大きさが Nx*Nyである行列の座標(i, j)のセルに対する前記実行回数の組 (x—i j, y_ij)として、
j = 0の場合、 x_ij=i、
j≠0の場合、 x_ij=Nx+j— 1とし、且つ、
i = 0の場合、 y_ij叫、
j≠0の場合、 y_ij = Ny + i— 1と設定することを特徴とする請求項 1又は 2に記載の 鍵情報処理方法。
[11] 前記複数の要素が 2つの階層軸を持つ格子状の階層関係にあり、 上位階層に複数の親要素を持つ要素に対して第 3の個別鍵を生成する第 2の鍵生 成工程と、
前記複数の親要素を持つ要素に対して第 3の個別鍵を配布する第 2の鍵配布工程 とを有することを特徴とする請求項 1又は 2に記載の鍵情報処理方法。
[12] 前記第 2の鍵生成工程において、前記複数の親要素の階層で共有するデータに 一方向性関数を所定回数実行することで前記第 3の個別鍵を生成することを特徴と する請求項 11に記載の鍵情報処理方法。
[13] 前記複数の親要素を持つ要素と同階層の各要素に対して前記一方向性関数を実 行する回数の組を設定する第 2の設定工程を備え、前記第 2の鍵生成工程において 、前記複数の親要素で共有するデータに当該回数の組のそれぞれの回数だけ前記 一方向性関数を実行した結果を当該同階層の各要素に対する前記第 3の個別鍵と して生成することを特徴とする請求項 11に記載の鍵情報処理方法。
[14] 前記第 2の設定工程において、最上位層のランク番号を 1とし、以下の階層のランク 番号を順次 1ずつ増加した値とし、ランク番号 iにおけるノードの数を #R(i)として、
#R(i)く 3を満たすランク番号 iの階層の各要素に対しては、前記回数を設定せず
#R(i)≥3を満たすランク番号 iの階層の各要素に対して、前記回数として、(1, ... , 1), (0, 1,…, 1), (1, 0, ··., 1), ··., (1, ··., 1, 0), (1,…, 1)}を設定すること を特徴とする請求項 13に記載の鍵情報処理方法。
[15] 前記第 2の設定工程において、行列に最右上のセルが原点(0, 0)、及び水平左 方向に X座標力 ずつ増加し、垂直下方向に y座標力 S1ずつ増加するような座標軸を 定義し、大きさが(Nx— 2) * (Ny— 2)である行列における座標(i', j')のセルに対す る前記実行回数の組を (u'_i'j', v'_i'j')とした場合、大きさが Nx*Nyである行 列における座標 (i, j)のセルに対する前記実行回数の組 (u_ij, v_ij)として、
i = 0、且つ j = 0の場合、 u_ij = 0、及び v_ij = 0とし、
i = Nx— 1、或いは j = Ny— 1の場合、 u_ij,及び v_ijとして、前記個別鍵が存在し ないことを示す情報とし、
i = 0、且つ j≠0の場合、 u ii=u' i(j_l)、及び V ii=v' i(j— 1)とし、 j = 0、且つ i≠0の場合の場合、 u— ij =u, (i-l)j、及び v— ij =v' _ (i-l)jとし、 上記以外の場合、 u_ij =u'_ (i-l) (j 1)、及び v— ij =v'_ (i— 1) (j 1)と設定 し、
前記大きさが(Nx— 2) * (Ny— 2)である行列における各セルの実行回数の組を、 請求項 10に記載の方法で生成することを特徴とする請求項 13に記載の鍵情報処理 方法
[16] 前記複数の親要素で共有するデータは前記 2つのオリジナル鍵を用いて生成され るデータであることを特徴とする請求項 11に記載の鍵情報処理方法。
[17] 前記複数の親要素で共有するデータは前記 2つのオリジナル鍵とは独立な第 3の オリジナル鍵から生成されるデータであることを特徴とする請求項 11に記載の鍵情 報処理方法。
[18] 前記 2つの階層軸はそれぞれ画像の 2つのパラメータの階層レベルに対応付けら れており、各要素の個別鍵は、当該 2つのパラメータについて当該要素の属する階 層レベルに対応する画像へのアクセスを可能とすることを特徴とする請求項 11に記 載の鍵情報処理方法。
[19] 前記 2つのパラメータは、画像の領域及び解像度であることを特徴とする請求項 18 に記載の鍵情報処理方法。
[20] 前記 2つのパラメータは、画像の画質及び解像度であることを特徴とする請求項 18 に記載の鍵情報処理方法。
[21] 前記画像は動画であり、前記 2つのパラメータは、動画の時間領域及び画質である ことを特徴とする請求項 18に記載の鍵情報処理方法。
[22] 階層関係を持つ複数の要素の各要素に対して、一方向性関数の実行規定の組を 設定する設定手段と、
前記各要素につき、 2つ以上のオリジナル鍵のそれぞれに当該要素に対して設定 された前記実行規定の組の対応する実行規定に応じて前記一方向性関数を実行し た値として、当該要素に対する 2つ以上の個別鍵を生成する鍵生成手段と、 前記各要素に対し、当該要素に対する 2つの個別鍵を配布する鍵配布手段とを有 することを特徴とする鍵情報処理装置。
[23] コンピュータにより読み取り可能なプログラムであって、階層関係を持つ複数の要素 の各要素に対して、一方向性関数の実行規定の組を設定する設定工程と、 前記各要素につき、 2つ以上のオリジナル鍵のそれぞれに当該要素に対して設定 された前記実行規定の組の対応する実行規定に応じて前記一方向性関数を実行し た値として、当該要素に対する 2つ以上の個別鍵を生成する鍵生成工程と、 前記各要素に対し、当該要素に対する 2つの個別鍵を配布する鍵配布工程とを有 する鍵情報処理方法をコンピュータに実行させることを特徴とするプログラム。
[24] サイクルを持たなレ、有向グラフで表現された階層関係に基づレ、て、各ノードにおけ る鍵を親ノードから生成して鍵配布を行う鍵情報処理方法において、
最上位に位置するルートノードで N個の鍵を算出する初期鍵生成工程と、 各ノードで前記 N個の初期鍵のうち M個(M≤N)に実行規定に応じて一方向性関 数を規定回数実行した値を当該ノードに対する M個のノード鍵として生成するノード 鍵生成工程と、を有することを特徴とする鍵情報処理方法。
[25] 前記各ノードから子ノードに対するノード鍵を配布する鍵配布工程を有することを特 徴とする請求項 24に記載の鍵情報処理方法。
[26] 前記各ノードから子孫ノードに対するノード鍵を配布する鍵配布工程を有することを 特徴とする請求項 24に記載の鍵情報処理方法。
[27] 前記有向グラフが、複数の異なるノードがお互いに有向グラフで接続されている箇 所が存在するとき、これらのノードをまとめて一つのノードとして扱うことを特徴とする 請求項 24乃至 26のいずれ力 1項に記載の鍵情報処理方法。
[28] 前記有向グラフの構造力 初期鍵の個数 Nを算出する初期鍵数算出工程を有する ことを特徴とする請求項 24乃至 26のいずれか 1項に記載の鍵情報処理方法。
[29] 前記初期鍵数算出工程において、全ノードを網羅するようにノードの部分集合の組 を生成するノード分割工程と、
前記部分集合は、同一部分集合に含まれる任意のノードが必ず子孫関係にあるこ とを満たすことをチェックする工程と、
前記部分集合の組の大きさを前記初期鍵の個数 Nとする初期鍵数算出工程と、 を有することを特徴とする請求項 24乃至 26のいずれ力、 1項に記載の鍵情報処理方 法。
[30] 前記ノード分割工程において、全ノードを互いに素な部分集合に分割することを特 徴とする請求項 29に記載の鍵情報処理方法。
[31] 前記実行規定は、前記ノード分割工程によって得られた部分集合の組ごとに、異な る初期鍵を関連付ける初期鍵関連付け工程と、
前記部分集合をそれぞれの集合内で有向グラフ上での子孫関係に従って降順に ソートし、 0から 1つずつ番号を割り付けするナンバリング工程と、
ナンバリングされた数値は、前記初期鍵に対し一方向性関数を実行する回数であ ることを特徴とする請求項 24乃至 26のいずれ力、 1項に記載の鍵情報処理方法。
[32] 前記初期鍵関連付け工程において、初期鍵 Kに関連付けが為されなかった他の部 分集合に含まれるノードに対して当該番号 (一方向性関数を実行する回数)を割り当 てるとき、前記初期鍵 Kに関連付けされた部分集合 Gに含まれるノードの祖先ノード ではないノードの当該番号を N (なし)とし、祖先ノードであるノードの当該番号は子孫 ノードとして前記部分集合 Gに含まれるノードのうち割り当てされた番号の最小値をと ることを特徴とする請求項 31に記載の鍵情報処理方法。
[33] 前記ノード鍵生成工程において、最下位ノードにはノード鍵を配布しないことを特 徴とする請求項 24乃至 26のいずれ力 1項に記載の鍵情報処理方法。
[34] 前記ノード鍵生成工程において、複数の指定ノードの子孫ノードにはノード鍵を配 布しないことを特徴とする請求項 33に記載の鍵情報処理方法。
[35] 前記ノード分割工程において、ノード鍵を配布しないノードを前記部分集合に含め ないことを特徴とする請求項 33又は 34に記載の鍵情報処理方法。
[36] 前記有向グラフは 2つの階層軸を持つ格子状の階層関係を表す格子ノードである ことを特徴とする請求項 24乃至 26のいずれか 1項に記載の鍵情報処理方法。
[37] 前記ノード鍵設定工程の設定内容を表わすノード鍵設定データを前記各ノードに 公開する公開工程と、
前記各ノードに、当該ノードの前記ノード鍵設定データ上での位置を表わす識別デ ータを配布する識別データ配布工程とを有することを特徴とする請求項 24乃至 26の いずれか 1項に記載の鍵情報処理方法。
[38] 前記 2つの階層軸はそれぞれ画像の 2つのパラメータの階層レベルに対応付けら れており、各要素の個別鍵は、当該 2つのパラメータについて当該要素の属する階 層レベルに対応する画像へのアクセスを可能とすることを特徴とする請求項 37に記 載の鍵情報処理方法。
[39] 前記 2つのパラメータは、画像の領域及び解像度であることを特徴とする請求項 38 に記載の鍵情報処理方法。
[40] 前記 2つのパラメータは、画像の画質及び解像度であることを特徴とする請求項 38 に記載の鍵情報処理方法。
[41] 前記画像は動画であり、前記 2つのパラメータは、動画の時間領域及び画質である ことを特徴とする請求項 38に記載の鍵情報処理方法。
[42] 前記初期鍵生成工程において、前記 N個の初期鍵は、 1つのオリジナル鍵から生 成されることを特徴とする請求項 24に記載の鍵情報処理方法。
[43] 前記初期鍵生成工程において、前記 N個の初期鍵は、前記オリジナル鍵から一方 向性関数を用いて算出されることを特徴とする請求項 42に記載の鍵情報処理方法。
[44] サイクルを持たなレヽ有向グラフで表現された階層関係に基づレ、て、各ノードにおけ る鍵を親ノードから生成することのできる鍵情報処理装置において、
最上位に位置するルートノードは N個の鍵を算出する初期鍵生成手段と、 各ノードは前記 N個の初期鍵のうち M個(M≤N)に実行規定に応じて一方向性関 数を規定回数実行した値を当該ノードに対する M個のノード鍵として生成するノード 鍵生成手段とを有することを特徴とする鍵情報処理装置。
[45] コンピュータにより読み取り可能なプログラムであって、サイクルを持たない有向ダラ フで表現された階層関係に基づいて、各ノードにおける鍵を親ノードから生成するこ とのできる鍵情報処理方法において、
最上位に位置するルートノードは N個の鍵を算出する初期鍵生成工程と、 各ノードは前記 N個の初期鍵のうち M個(M≤N)に実行規定に応じて一方向性関 数を規定回数実行した値を当該ノードに対する M個のノード鍵として生成するノード 鍵生成工程とを有する鍵情報処理方法をコンピュータに実行させることを特徴とする
PCT/JP2004/009946 2003-07-11 2004-07-12 鍵情報処理方法及びその装置、並びにプログラム WO2005018136A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN2004800248340A CN1846396B (zh) 2003-07-11 2004-07-12 密钥信息处理方法及其设备
EP04747412A EP1650893A4 (en) 2003-07-11 2004-07-12 METHOD, DEVICE AND PROGRAM FOR PROCESSING KEY INFORMATION
US11/329,037 US7706530B2 (en) 2003-07-11 2006-01-11 Key information processing method, device thereof, and program

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2003195729 2003-07-11
JP2003-195729 2003-07-11
JP2003-321420 2003-09-12
JP2003321420A JP4208678B2 (ja) 2003-07-11 2003-09-12 鍵情報処理方法及びその装置、プログラム
JP2003-338679 2003-09-29
JP2003338679A JP2005109753A (ja) 2003-09-29 2003-09-29 鍵情報処理方法及びその装置、並びにプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/329,037 Continuation US7706530B2 (en) 2003-07-11 2006-01-11 Key information processing method, device thereof, and program

Publications (1)

Publication Number Publication Date
WO2005018136A1 true WO2005018136A1 (ja) 2005-02-24

Family

ID=34198741

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2004/009946 WO2005018136A1 (ja) 2003-07-11 2004-07-12 鍵情報処理方法及びその装置、並びにプログラム

Country Status (4)

Country Link
US (1) US7706530B2 (ja)
EP (1) EP1650893A4 (ja)
CN (1) CN1846396B (ja)
WO (1) WO2005018136A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100924773B1 (ko) * 2002-09-16 2009-11-03 삼성전자주식회사 메타데이터 암호화 및 복호화 방법과 암호화된 메타데이터관리 방법 및 그 시스템
JP4632413B2 (ja) * 2004-09-01 2011-02-16 キヤノン株式会社 情報暗号化装置及び情報配信装置並びにそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP2006080623A (ja) * 2004-09-07 2006-03-23 Canon Inc 情報処理方法及び装置、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
JP4310285B2 (ja) 2005-02-09 2009-08-05 キヤノン株式会社 情報処理方法及び装置、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
JP4993674B2 (ja) * 2005-09-09 2012-08-08 キヤノン株式会社 情報処理装置、検証処理装置及びそれらの制御方法、コンピュータプログラム及び記憶媒体
JP2007081482A (ja) * 2005-09-09 2007-03-29 Canon Inc 端末認証方法及びその装置、プログラム
JP5043421B2 (ja) 2005-12-28 2012-10-10 キヤノン株式会社 情報処理装置およびその方法
JP2008059561A (ja) * 2006-08-04 2008-03-13 Canon Inc 情報処理装置、データ処理装置、および、それらの方法
JP2008131076A (ja) * 2006-11-16 2008-06-05 Sony Corp 情報処理装置、端末装置、情報処理方法、鍵生成方法、及びプログラム
KR101213154B1 (ko) * 2006-11-16 2012-12-17 삼성전자주식회사 키 업데이트 방법 및 이를 이용한 키 업데이트 장치
KR100938262B1 (ko) * 2007-07-18 2010-01-22 한국전자통신연구원 비밀키 사전분배 방법
JP5270894B2 (ja) * 2007-10-01 2013-08-21 キヤノン株式会社 情報処理装置及びその制御方法、情報処理システム、プログラム
JP2009135871A (ja) * 2007-11-05 2009-06-18 Sumitomo Electric Ind Ltd 暗号鍵生成方法
US8634553B2 (en) * 2007-11-05 2014-01-21 Sumitomo Electric Industries, Ltd. Encryption key generation device
US8150850B2 (en) * 2008-01-07 2012-04-03 Akiban Technologies, Inc. Multiple dimensioned database architecture
EP2172896A1 (fr) * 2008-10-02 2010-04-07 Nagravision S.A. Méthode de gestion d'une valeur dans un dispositif à prépaiement
JP5921120B2 (ja) 2011-09-07 2016-05-24 キヤノン株式会社 情報処理装置、情報処理方法
US9020954B2 (en) * 2012-09-28 2015-04-28 International Business Machines Corporation Ranking supervised hashing
CN108063756B (zh) 2017-11-21 2020-07-03 阿里巴巴集团控股有限公司 一种密钥管理方法、装置及设备
TWI707246B (zh) * 2018-11-05 2020-10-11 開曼群島商現代財富控股有限公司 分散式多層遞迴的密鑰保管系統及其方法
CN115086730B (zh) * 2022-06-16 2024-04-02 平安国际融资租赁有限公司 签约视频生成方法、系统、计算机设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1198487A (ja) * 1997-09-24 1999-04-09 Mitsubishi Electric Corp 画像符号化装置及び画像復号化装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970024712A (ko) * 1995-10-16 1997-05-30 이데이 노부유키 암호화 방법 및 암호화 장치 및 기록 방법 및 복호 방법 및 복호 장치 및 기록 매체
US5754659A (en) * 1995-12-22 1998-05-19 General Instrument Corporation Of Delaware Generation of cryptographic signatures using hash keys
JPH09182050A (ja) 1995-12-26 1997-07-11 Matsushita Electric Ind Co Ltd スクランブル伝送装置およびスクランブル装置およびデスクランブル装置
CN1099780C (zh) * 1999-12-10 2003-01-22 北京深思洛克数据保护中心 一种密钥传递及数字签名的方法
US6891951B2 (en) * 2000-01-21 2005-05-10 Victor Company Of Japan, Ltd. Cryptosystem-related method and apparatus
EP1189432A3 (en) * 2000-08-14 2004-10-20 Matsushita Electric Industrial Co., Ltd. A hierarchical encryption scheme for secure distribution of predetermined content
JP2004140668A (ja) 2002-10-18 2004-05-13 Canon Inc 情報処理方法
JP2004297778A (ja) 2003-03-07 2004-10-21 Canon Inc 画像データ暗号化方法及び装置、並びにコンピュータプログラム及びコンピュータ可読記憶媒体

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1198487A (ja) * 1997-09-24 1999-04-09 Mitsubishi Electric Corp 画像符号化装置及び画像復号化装置

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
"Digital Contents Protective Management Method", SCIS2001, 2001, pages 213 - 218
ANDO K. ET AL.: "JPEG2000 fugoka gazo no joho hankaijiho", THE TRANSACTIONS OF THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS, vol. J85-D-II, no. 2, 1 February 2002 (2002-02-01), pages 282 - 290, XP002985387 *
C. H. LIN: "Dynamic key management schemes for access control in a hierarchy", COMPUTER COMMUNICATIONS, vol. 20, 1997, pages 1381 - 1385
J.-C. BIRGET; X. ZOU; G. NOUBIR; B. RAMAMURTHY: "Hierarchy-Based Access Control in Distributed Environments", PROCEEDINGS OF IEEE ICC, June 2001 (2001-06-01)
JOYE M ET AL.: "One-way cross-trees and their applications", LECTURE NOTES ON COMPUTER SCIENCE -LNCS
SANDHU R.S. ET AL.: "Cryptographic implementation of a tree hierarchy for access control", INFORMATION PROCESSING LETTERS, vol. 27, no. 2, 29 February 1988 (1988-02-29), pages 95 - 98, XP002985386 *
See also references of EP1650893A4 *
ZHENG Y. ET AL.: "The sibling interactable function family (SIFF): notion, construction and applications", IEICE TRANSACTIONS FUNDAMENTALS OF ELECTRONICS,COMMUNICATION AND COMPUTER SCIENCE, vol. E76-A, no. 1, 25 January 1993 (1993-01-25), pages 4 - 13, XP000358851 *

Also Published As

Publication number Publication date
EP1650893A1 (en) 2006-04-26
EP1650893A4 (en) 2011-07-06
CN1846396A (zh) 2006-10-11
CN1846396B (zh) 2011-09-28
US7706530B2 (en) 2010-04-27
US20060149762A1 (en) 2006-07-06

Similar Documents

Publication Publication Date Title
WO2005018136A1 (ja) 鍵情報処理方法及びその装置、並びにプログラム
US7620806B2 (en) Encrypted communication for selectively delivering a message to multiple decrypting devices
JP4599194B2 (ja) 復号装置、復号方法、及びプログラム
US8000472B2 (en) Information encryption apparatus and controlling method of the same, computer program and computer readable storage medium
US7792867B2 (en) Information processing method and information processing apparatus
JP2004297778A (ja) 画像データ暗号化方法及び装置、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
US8861723B2 (en) Storage device, access device, and program product
JP5269984B2 (ja) 暗号鍵生成装置
JP4771504B2 (ja) 分散画像生成装置及び分散画像生成方法及びコンピュータ読み取り可能な記憶媒体
JP6100922B2 (ja) 通信制御装置、通信制御方法、プログラムおよび通信システム
JP6029936B2 (ja) 通信制御装置、通信装置およびプログラム
Blackburn Combinatorial schemes for protecting digital content
JP4208678B2 (ja) 鍵情報処理方法及びその装置、プログラム
US7210042B2 (en) Device information generating device, device information generating method, control data generating device, control data generating method, content utilizing device, content utilizing method, and storage medium
JP5150175B2 (ja) Sd法におけるクライアント端末被覆方法およびプログラム
JP6290443B2 (ja) 通信制御装置、通信制御方法およびプログラム
JP2005109753A (ja) 鍵情報処理方法及びその装置、並びにプログラム
US20090274305A1 (en) Method and apparatus for transmitting content key
Zhang Comprehensive preimage security evaluations on Rijndael-based hashing
JP4635459B2 (ja) 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
Mandal et al. Efficient Adaptively Secure Public-Key Trace and Revoke from Subset Cover Using D e´ jaQ Framework
JP4638176B2 (ja) 著作権保護システム、べき乗剰余演算装置、演算装置、鍵管理装置、再生装置、記録装置、記録媒体、べき乗剰余演算方法、演算方法、及びプログラム
JP6162873B2 (ja) 通信制御装置、通信装置およびプログラム
JP6302109B2 (ja) 通信制御装置、通信制御方法、プログラムおよび通信システム
JP2007020225A (ja) 画像データ暗号化装置及びその制御方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200480024834.0

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 11329037

Country of ref document: US

REEP Request for entry into the european phase

Ref document number: 2004747412

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2004747412

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2004747412

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 11329037

Country of ref document: US