WO2014083784A1 - 暗号システム、データ保存システム、それに用いる装置および方法 - Google Patents

暗号システム、データ保存システム、それに用いる装置および方法 Download PDF

Info

Publication number
WO2014083784A1
WO2014083784A1 PCT/JP2013/006640 JP2013006640W WO2014083784A1 WO 2014083784 A1 WO2014083784 A1 WO 2014083784A1 JP 2013006640 W JP2013006640 W JP 2013006640W WO 2014083784 A1 WO2014083784 A1 WO 2014083784A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
user
ciphertext
generated
update
Prior art date
Application number
PCT/JP2013/006640
Other languages
English (en)
French (fr)
Inventor
古川 潤
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2014549787A priority Critical patent/JP6115573B2/ja
Publication of WO2014083784A1 publication Critical patent/WO2014083784A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Definitions

  • the present invention relates to an encryption system capable of designating a plurality of users who can decrypt, a data storage system using the encryption system, a key derivation device, a decryption device, a proxy key generation device, and a data processing method used therefor.
  • Non-Patent Document 1 describes an example of a functional encryption scheme.
  • FIG. 13 is an explanatory diagram showing an outline of the functional encryption method described in Non-Patent Document 1.
  • the functional encryption method described in Non-Patent Document 1 includes a setting function 901, a key derivation function 902, an encryption function 903, and a decryption function 904.
  • the setting function 901 generates a public key 911 and a master key 912.
  • the key derivation function 902 generates a secret key 914 corresponding to the attribute from the public key 911, the master key 912, and the predicate vector 913 corresponding to the attribute vector 916 designating the authority (attribute) that can be decrypted.
  • the encryption function 903 generates a ciphertext 917 from the public key 911, the document to be encrypted (plaintext) 915, and an attribute vector 916 that specifies the authority to decrypt the document.
  • the decryption function 904 generates a plaintext 918 that is a decrypted text of the ciphertext 917 from the public key 911, a private key 914 (for example, the private key 914-1) possessed by the decryptor, and the received ciphertext 917. .
  • the setting function 901 outputs the public key pk and the master key mk.
  • the key derivation function 902 inputs the public key pk, the master key mk, and the predicate vector v, and outputs the secret key sk of the attribute set.
  • the encryption function 903 inputs the public key pk generated by the setting function 901, the document m to be encrypted, and the attribute vector x that designates the authority to decrypt the document m, and uses the ciphertext of the document m.
  • a certain C is output.
  • a receiver having a secret key sk generated by specifying a predicate vector v corresponding to an attribute vector x specified when generating a ciphertext. For example, since the ciphertext can be decrypted, a plurality of recipients can decrypt one ciphertext.
  • a functional encryption method for example, it is possible to easily realize access control that permits browsing only to a specific set of users with respect to a file that can be accessed by a plurality of persons. Accordingly, it is possible to contribute to enhancing the safety of a data storage service using a cloud or the like. For example, consider a case where an organization such as a company stores data in a storage device on a network.
  • data that should be read only by a member with a certain qualification of this organization may be encrypted using a functional encryption method and stored in a storage device on the network.
  • the qualification to read data is represented by a predicate vector v
  • members of the organization need data, they access the storage device holding the data via the network and obtain necessary data.
  • This data is encrypted by the functional encryption method as described above, but if it is a member of the organization having the predicate vector v corresponding to the attribute x, it should be decrypted according to the decryption method in the functional encryption method and used. Can do.
  • Non-Patent Document 2 describes an example of a broadcast encryption scheme.
  • FIG. 14 is an explanatory diagram showing an outline of the broadcast-type encryption method described in Non-Patent Document 2.
  • the broadcast encryption method described in Non-Patent Document 2 includes a setting function 801, a key derivation function 802, an encryption function 803, and a decryption function 804.
  • the setting function 801 generates a public key 811 and a master key 812.
  • the key derivation function 802 generates a secret key 814 corresponding to the decryption person (hereinafter referred to as a decryption person private key 814) from the master key 812, the public key 811, and the decryption person identifier 813.
  • the encryption function 803 generates a ciphertext 817 from the public key 811, a decryptable person set 816 that designates a set of decryptable persons, and a document (plain text) 815 to be encrypted.
  • the decryption function 804 includes a public key 811, received ciphertext 817, a decryptable person set 816 (for example, a decryptable person set 816-1) that specifies a set of decryptable persons recognized by the decryptor, A plaintext 818 that is a decrypted text of the ciphertext 817 is generated from the decryptor private key 814 (for example, the decryptor private key 814-1) possessed by the decryptor.
  • the decryptable person set 816 input to the encryption function 803 and the decryptable person set 816 input to the decryption function 804 are the same, and the ciphertext 817 output by the encryption function 803 and the decryption function 804 are input. If the ciphertext 817 is the same, and the decryptor private key 814 input to the decryption function 804 is the private key of the decryptor belonging to the decryptable person set 816 input to the decryption function 804, the encryption function 803
  • the plaintext 815 input to the plaintext 818 and the plaintext 818 output from the decryption function 804 have the same contents.
  • the broadcast encryption method can contribute to enhancing the security of the data storage service using the cloud or the like, similarly to the functional encryption method.
  • an organization such as a company stores data in a storage device on a network.
  • data that should be readable only by members of this organization is encrypted using a broadcast encryption method after designating data indicating a set of decryptable persons to which each member of the organization belongs. What is necessary is just to preserve
  • Each member of the organization is given a corresponding private key along with data indicating the set of decryptable persons.
  • members of the organization need data, they access the storage device holding the data via the network and obtain necessary data.
  • This data is encrypted by the broadcast encryption method as described above, but if it is a member of an organization, it can be decrypted and used according to the decryption method of this broadcast encryption.
  • the broadcast encryption method is different from the functional encryption method in that it can control whether or not each receiver can decrypt. That is, if the decryptable person set 816 is appropriately changed when the member is changed, the decryptable person can be changed according to the changed decryptable person set. For example, when a new member joins the organization, the key derivation function 802 generates a decryptor private key 814 for the new member, and the encryption function 803 adds this member in the subsequent encryption processing. Data may be encrypted using the new decryptable person set 816. Further, for example, when a member leaves the organization, the data may be encrypted by using the new decryptable person set 816 from which the member is deleted in the subsequent encryption processing in the encryption function 803. With these processes, only the latest member belonging to the new decryptable person set 816 can be decrypted with respect to the data encrypted using the new decryptable person set 816.
  • Functional encryption can control whether or not decryption can be performed on an attribute-by-attribute basis by specifying the attribute when encrypting, so even if a new member is added, only the secret key is distributed to the added member. While each member has the advantage of being able to decrypt all target data including already encrypted data, if a member is missing, the missing member can also be decrypted if the target data is available Have the problem of
  • a decryptable user set is specified when encrypting, but by changing the user in the set, whether or not the decryption can be performed can be controlled for each user. While it has the advantage of being able to handle it safely, it is decided when encryption can be done and when it is encrypted, it will be fixed afterwards, so if you try to allow new members to see already encrypted data, There is a problem that the existing encrypted data must be decrypted and encrypted again every time it is changed.
  • a set of recipients that can decrypt the document M is encrypted using a broadcast encryption method, and a set of recipient attributes that can be decrypted is further encrypted using a functional encryption method.
  • a functional encryption method it seems that only a receiver having the specified attribute and included in the specified receiver set can decrypt.
  • a recipient who has the specified attribute but is not included in the specified recipient set cooperates with a recipient who does not have the specified attribute but is included in the specified recipient set, the decryption is not possible. It is possible and need not be a recipient with both conditions simultaneously. That is, the collusion resistance is not sufficient. The same applies even if the order of encryption is reversed.
  • an object of the present invention is to make it possible to safely and efficiently cope with changes in members while enabling decryption control in attribute units. More specifically, whether or not decryption is possible can be specified in attribute units, and even when the member is changed, it takes time and effort to decrypt and re-encrypt the already encrypted data. And providing an encryption system, a data storage system, a key derivation device, a decryption device, a proxy key generation device, and a data processing method that can ensure safety for all target data including already encrypted data. With the goal.
  • the cryptographic system is a part that is changed in accordance with a change of a user set, which is a set of users that can be decrypted, in addition to a main body generated by a method that complies with a functional cryptosystem, and is randomly
  • a setting unit that generates a public key and a master key including an update unit that is a part in which a value based on a selected public key update factor is set, and a public key, a master key, a predicate vector, and a user identifier are input
  • a user identification factor that is unique to the user and unknown to the user a predicate part that is generated based on the master key, the predicate vector, and the user identification factor, and the user identification factor and the master key
  • a key derivation unit that generates a secret key including a user-dependent value cancellation unit that is generated based on the above and an encryption method that generates a ciphertext by specifying an attribute vector by a method that complies with the functional encryption
  • a public key, a private key, and a ciphertext and depending on the user identification factor used to generate the secret key based on the ciphertext and the predicate part of the secret key.
  • a user-dependent value generated by generating a user-dependent value cancellation value for canceling the user-dependent value based on the ciphertext and the user-dependent value cancellation unit of the secret key.
  • the decryption means for decrypting the ciphertext using the user-dependent value cancellation value When the decryption means for decrypting the ciphertext using the user-dependent value cancellation value, the public key, the master key, and the changed user set are input, a new public key update factor is generated, Based on the generated public key update factor, a public key update unit, an update key that is a secret key update unit, and a master key update unit are generated, and the generated public key update factor and change are generated.
  • the proxy key for converting the ciphertext that can be decrypted with the private key of the user belonging to the user set before the change into the ciphertext that can be decrypted with the private key of the user belonging to the user set after the change, and the master key
  • the proxy key generating means for generating the update unit
  • the encrypted text that can be decrypted with the private key of the user belonging to the user set before the change using the proxy key generated by the proxy key generating means, And re-encrypting means for generating new ciphertext that can be decrypted with the secret key of the user belonging to the changed user set without decryption.
  • a data storage system includes a management device used by a data administrator, a data storage device used by a data storage user who stores encrypted data, a decryption device, and an encryption device.
  • a part of the public key that is selected at random, in addition to the main part generated by a method that complies with the functional encryption method, as well as the part that is changed in accordance with the change of the set of users that can be decrypted
  • a user identification factor that is unknown to the user and is generated based on the master key, the predicate vector, and the user identification factor, the user identification factor, and the master key.
  • a new public key update factor is generated. Then, based on the generated public key update factor, a public key update unit, an update key that is a secret key update unit, and a master key update unit are generated, and the generated public key update factor And the user set after the change of the ciphertext that can be decrypted with the private key of the user belonging to the user set before the change based on the public key update factor obtained from the public key before the change and the master key before the change And a proxy key generation means for generating a master key update unit for converting into a ciphertext that can be decrypted with a private key of the user belonging to the data storage device is generated by the proxy key generation means Belong to the user set before the change Re-encryption means for generating a new ciphertext that can be decrypted with
  • Generates a user-dependent value Generates a user-dependent value, generates a user-dependent value cancellation value for canceling the user-dependent value based on the ciphertext and the user-dependent value cancellation unit of the secret key, and uses the generated usage Ciphertext using a user-dependent value and a user-dependent value cancellation value And a decoding means for decoding.
  • the key derivation device is a part that is changed in accordance with a change of a user set, which is a set of users that can be decrypted, in addition to a main body generated by a method that complies with a functional cryptosystem, and is randomly
  • a public key and master key including an update unit, a predicate vector, and a user identifier are input, a value that is set based on the public key update factor selected by the user is input.
  • a user identification factor that is unknown to the user a predicate part that is generated based on the master key, predicate vector, and user identification factor, and a usage that is generated based on the user identification factor and the master key
  • a key derivation unit for generating a secret key including a person-dependent value canceling unit.
  • the decryption device is a part that is changed in accordance with a change of a user set, which is a set of users that can be decrypted, in addition to a main body generated by a method that complies with a functional cryptosystem, and is randomly
  • a public key that includes at least an update part, which is a part for which a value based on the selected public key update factor is set, and a secret key with a predicate vector specified, which is unique to the user and known to the user
  • a secret key including a predicate part based on a non-user identification factor, a master key, and a predicate vector, a user-dependent value cancellation part based on the user identification factor and the master key, and a ciphertext are input, Based on the ciphertext and the predicate part of the secret key, a user-dependent value that depends on the user identification factor used when generating the secret key is generated, and a user-dependent value of the ciphertext and the secret key Based
  • the proxy key generation device is a part that is changed in accordance with a change of a user set that is a set of users that can be decrypted, in addition to a main body generated by a method that complies with a functional cryptosystem.
  • a user who can decrypt A master key including at least an update part that is a part that is changed in accordance with a change in the user set that is a set of the key and a value that is set based on a public key update factor that is randomly selected, and a post-change key
  • a public key update factor is newly generated, and based on the generated public key update factor, an update part of the public key, an update key that is an update part of the secret key, Update master key And the secrets of users belonging to the user set before change based on the generated public key update factor, the public key update factor obtained from the public key before change, and the master key before change
  • a proxy key generation means for generating a proxy key for converting a ciphertext that can be decrypte
  • the data processing method is a data processing method for transferring confidential data via a network, and can be decrypted in addition to a main body generated by a method compliant with a functional encryption method.
  • a public key and a master key including an update unit that is a part that is changed in accordance with a change of a user set that is a set of users and that is a part in which a value based on a public key update factor selected at random is set.
  • a user identification factor that is unique to the user and that the user does not know for each user who is permitted to decrypt data, and based on the master key, predicate vector, and user identification factor Used to generate a secret key including a generated predicate part, a user-dependent value cancellation part generated based on a user identification factor and a master key, and decrypt data or a ciphertext of the data
  • the message key is based on the received ciphertext and the predicate part of the secret key possessed by the user.
  • a user-dependent value canceling value for canceling is generated, and the ciphertext is decrypted using the generated user-dependent value and the user-dependent value canceling value.
  • FIG. 3 is a block diagram illustrating a configuration example of a setting unit 11.
  • FIG. 3 is a block diagram illustrating a configuration example of a key derivation unit 12.
  • FIG. 3 is a block diagram illustrating a configuration example of an encryption unit 13.
  • FIG. It is a block diagram which shows the other structural example of the encryption part.
  • 3 is a block diagram illustrating a configuration example of a decoding unit 14.
  • FIG. 3 is a block diagram illustrating a configuration example of a proxy key generation unit 15.
  • FIG. 3 is a block diagram illustrating a configuration example of a re-encryption unit 16.
  • FIG. 3 is a block diagram illustrating a configuration example of a key update unit 17.
  • FIG. 3 is a block diagram illustrating a configuration example of a key update unit 17.
  • the encryption method of the present invention is an improvement of the functional encryption method, and solves the above-described problems by adding the following functions to the functional encryption method.
  • Proxy key generation function More specifically, a ciphertext that can be decrypted with a secret key of a user belonging to a certain “user set U” is converted to a secret key of the user belonging to a new “user set U ′”. A function that generates a proxy key for conversion into ciphertext that can be decrypted based on the master key.
  • a decryption key is obtained from a ciphertext that can be decrypted with a private key of a user belonging to a certain “user set U” using the proxy key generated by the proxy key generation function.
  • access to data stored in the cloud or the like is controlled by an encryption method
  • the set of users permitted to access can be dynamically changed as follows: To do.
  • “access to data is controlled by an encryption method” specifically means that data subject to access restriction is encrypted using a predetermined encryption method and stored as encrypted data.
  • the person who can view the contents of the data is limited to those who can decrypt the encrypted data. That is, in the present invention, when the expression “access control” is used, it means that the person who can decrypt the encrypted data is controlled.
  • the encryption method of the present invention adds these two functions, and the user set that permits decryption of the data encrypted and stored by this method is as follows. It can be changed dynamically.
  • the target data is encrypted with the authority to decrypt it.
  • a user set U that is a set of users having the authority is specified, and each user is assigned a secret key corresponding to the authority specified at the time of encryption and specifying the user. It is done.
  • the ciphertext can be decrypted only by users who belong to the user set U and hold the authority specified at the time of ciphertext generation. This is because access to each ciphertext is restricted by the authority requested, and the distribution of the secret key is also restricted by the set of users.
  • the secret key of each user belonging to the user set can be generated using the master key.
  • a person having this master key is called an administrator. It is assumed that this administrator entrusts another person without saving the encrypted data.
  • a person who saves encrypted data is called a data saver.
  • the data storage person will be described as an example of a person who performs data storage work in the cloud or the like. However, the data storage person may simply be a receiver who has received the ciphertext.
  • the administrator uses the above-described proxy key generation function to generate the proxy key rk and other various data required for changing the user set from the user set U, user set U ′, and master key To do. Then, the generated proxy key rk is sent to the data saver.
  • Various data required in accordance with the change of the user set includes, for example, the secret key of each user belonging to the new user set U ′.
  • the data saver uses the above-mentioned re-encryption function to re-encrypt each ciphertext stored by itself based on the ciphertext and the proxy key to generate a new ciphertext. Then, the original ciphertext is replaced with this new ciphertext.
  • the new ciphertext can be decrypted by the users belonging to the new user set U 'who have the same authority. Accordingly, it can be considered that access to these data is restricted to users belonging to the user set U '. That is, as long as the authority matches, it can be considered that the user set that can be decrypted has been successfully changed.
  • Embodiment 1 An encryption system using the encryption method of the present invention will be described with reference to the drawings.
  • G G T is a respective cyclic group and of order prime q, and e: shall have the G ⁇ G ⁇ G T becomes bilinear map.
  • g is a generator of group G.
  • Fq is a prime field of order q.
  • V represents a vector space G N on Fq.
  • all elements of a [i] are 0 on V except for the i-th element, and the i-th element is g.
  • Group G is described as an additive cyclic group. Multiplication is defined for the element of Fq and the element of group G. If the element of Fq is ⁇ and the element of group G is g, those multiplications are described as ⁇ g. Further, the group G T is described as multiplicative cyclic group. The Fq original and the original group G T are defined a power multiplication, the original group G T in Fq former is alpha is if g T, their multiplication is described as g T alpha. As method for realizing the group G and the group G T, methods and the like are known using elliptic curve.
  • paramsV (q, V, G T, A, e ( ⁇ , ⁇ ), g T, B, B *) dual outputs a This is an orthonormal basis generation function. The superscript * attached to the symbol is used as a mere identification symbol for distinguishing B from B * .
  • paramsV (q, V, G T , A, e (•, •), g T , B, B * ) is output.
  • FIG. 1 is an overall configuration diagram of the cryptographic system according to the first embodiment. 1 includes a setting unit 11, a key derivation unit 12, an encryption unit 13, a decryption unit 14, a proxy key generation unit 15, a re-encryption unit 16, and a key update unit 17. Prepare.
  • the setting unit 11 generates a public key 201 and a master key 202.
  • FIG. 2 is a block diagram illustrating a configuration example of the setting unit 11.
  • the setting unit 11 may include a setting unit 111.
  • the public key and master key generation method may be basically the same as the generation method in a general functional encryption scheme. However, as shown below, at least an update unit that is updated in accordance with the generation of the proxy key 213 is added to the public key 201, and the update that is updated in accordance with the generation of the proxy key 213 in the master key 202 At least a part is added.
  • Both the update unit of the public key 201 and the update unit of the master key 202 include an area for setting a value based on a public key update factor generated by the proxy key generation unit 15 described later. Since the public key update factor is generated when the user set is changed, the temporary public key update factor randomly selected by the setting unit 11 at the time of public key generation and master key generation A value based on is set in the area.
  • a part other than the “update part” and generated by a method based on the functional encryption method may be referred to as a “main part”.
  • f ⁇ g of pk corresponds to the “update unit” of the public key 201, and the other corresponds to the “main body unit”.
  • mk h corresponds to the “update part” of the master key, and the other corresponds to the “main part”.
  • the following formula (1) is established for a certain two 4n + 3 component vectors z and z * .
  • the right-hand side of equation (1) is a z and z * of the inner product z ⁇ z *.
  • the key derivation unit 12 is included in the public key 201, the master key 202, the predicate vector 203 corresponding to the authority granted to the secret key 206 generated by the key derivation unit 12, and the user set U having the authority. Based on the user identifier 204 of the user, a secret key 206 corresponding to the user is generated.
  • FIG. 3 is a block diagram illustrating a configuration example of the key derivation unit 12.
  • the key derivation unit 12 may include a predicate part generation unit 121, a cancellation unit generation unit 122, and a user identification factor generation unit 123.
  • the method for generating the secret key 206 by the key derivation unit 12 may be the same as the method for generating the secret key in the functional encryption method for the basic part. However, in this example, a user-specific element is added using a user identification factor 205 that is specific to the user and that the user does not know.
  • the user identification factor generation means 123 randomly selects a vector u from Fq n .
  • the user identification factor 205 selected at this time is shared with a proxy key generation unit 15 described later, it is managed in association with the input user identifier 204. For example, a correspondence table between the user identifier 204 and the user identification factor 205 may be generated and held. For example, when the hash value of the user identifier 204 and the master key 202 is used as the user identification factor 205, that fact may be determined in advance.
  • the user-dependent value can be erased, and a final decoding result can be obtained.
  • the deriving unit 12 may input a user set U including a set of user identifiers 204, and generate and output a secret key corresponding to each user identifier included in the user set U.
  • the encryption unit 13 generates the ciphertext 209 based on the public key 201 and the attribute vector 207 that specifies the authority to decrypt the ciphertext 209 generated by the encryption unit 13.
  • FIG. 4 is a block diagram illustrating a configuration example of the encryption unit 13. As shown in FIG. 4, the encryption unit 13 may include an encryption unit 131.
  • the encryption method may be basically the same as the encryption method in a general functional encryption method. However, as shown below, at least the second element generated based on the public key update unit is added to the ciphertext.
  • FIG. 1 shows an example in which the encryption unit 13 does not encrypt the document to be protected but generates a message key to be used when encrypting the document and encrypts it.
  • the hybrid encryption method refers to an encryption method that uses a combination of a common key encryption method and a public key encryption method. More specifically, the sender can arbitrarily generate a message key, encrypt the document using the generated message key using a common key encryption method, and publish the message key using the public key. Encryption is performed using a key encryption method, and the encrypted document and the encrypted message key are transmitted to the receiver side.
  • the receiver side first decrypts the message key encrypted with the public key cryptosystem using the public key to obtain the message key, and encrypts it with the common key cryptosystem using the obtained message key.
  • the obtained document is decrypted to obtain a plain text (document). Since the encryption method of the present invention, which is an extension of the functional encryption method, is one of the public key encryption methods, the encryption method of the present invention can be used in a system that transmits a document using such a hybrid encryption method. .
  • the public key cryptosystem has an advantage that the key can be easily distributed and managed, but has a problem that it takes time to process and is not suitable for encrypting a large capacity file.
  • the hybrid encryption method it is possible to use both the advantage of the common key encryption method that “processing is fast” and the advantage of the public key encryption method that key distribution and management are easy.
  • the encryption unit 13 generates the message key 208 and its ciphertext 209 as follows, for example.
  • pk: ( ⁇ , paramsV, B ′, f).
  • the encryption unit 131 randomly selects w, ⁇ , ⁇ , and ⁇ from Fq.
  • a second encryption unit that encrypts a document by a common key encryption method using a message key generated by the encryption unit 13;
  • a second decryption unit that decrypts the encrypted document using a message key associated with the document may be provided.
  • the second encryption unit encrypts the document to be protected using the common key encryption method using the message key 208 output from the encryption unit 13. Then, the encrypted message key 209 together with the encrypted document is transmitted to the receiver side (more specifically, the data storage person).
  • the document can be directly encrypted using the encryption method of the present invention without using hybrid encryption. It is also possible to transmit.
  • the encryption unit 13 receives the public key 201, the attribute vector 207, and the document 208 to be encrypted, and inputs the ciphertext 209 of the document 208.
  • the structure which outputs may be sufficient.
  • FIG. 5 is a block diagram illustrating another configuration example of the encryption unit 13. In this case, the method for encrypting the document 208 may be the same as that for the message key. In the configuration shown in FIG.
  • a random number (corresponding to ⁇ described above) serving as the message key 208 may be input instead of the document 208 to be encrypted.
  • the above-described hybrid cryptosystem can be supported as it is.
  • the decryption unit 14 Based on the public key 201, the secret key 206, and the ciphertext 209, the decryption unit 14 generates a plaintext 210 that is a decrypted text of the ciphertext 209.
  • FIG. 6 is a block diagram illustrating a configuration example of the decoding unit 14.
  • the decoding unit 14 may include a dependency value generation unit 141, a cancellation value generation unit 142, and a cancellation unit 143.
  • the decryption method may be basically the same as the decryption method in a general functional encryption method. However, as will be described below, at least new processing is added with the addition of the user-dependent value. More specifically, a user-dependent value 214 is generated from the ciphertext based on the predicate part 2061 of the secret key 206 in the intermediate stage of the decryption process, and the user-dependent value 214 is then used as the user-dependent value of the secret key 206. At least processing for canceling based on the value canceling unit 2062 is added.
  • the decryption unit 14 generates the plaintext 210 as follows.
  • the latest public key 201: pk
  • pk: ( ⁇ , paramsV, B ′, f)
  • sk v, I : (k * , d I )
  • Cx: (c [1], c [2])
  • output means or the like (not shown) outputs the message key K ′ as the plaintext 210 that is a decrypted text.
  • the plaintext of the document is obtained as a decryption result.
  • the plaintext of this document may be obtained using the 2nd decoding part.
  • the decryption unit 14 may perform the decryption process similar to the decryption process of the message key even when the encrypted text is directly input as the ciphertext 209.
  • the proxy key generating unit 15 includes the proxy key 213, the new public key 201, A new master key 202 and an update key 212 for each user are generated.
  • the new public key 201 refers to the one obtained by changing the update part of the public key 201 before changing the user set based on the public key update factor shown below.
  • the new master key 202 refers to a master key 202 update unit that has been changed based on the same public key update factor before the user set is changed.
  • the update key 212 is a part of the new secret key 206.
  • the proxy key 213 decrypts a ciphertext that can be decrypted with the secret key of the user belonging to a certain “user set U” with the secret key of the user belonging to the new “user set U ′”. It is a key that contains information necessary for conversion to ciphertext that can be made.
  • FIG. 7 is a block diagram illustrating a configuration example of the proxy key generation unit 15.
  • the proxy key generation unit 15 includes an update factor selection unit 151, a public key update unit 152, a proxy key generation unit 153, a master key update unit 154, and an identification factor acquisition / generation unit 155.
  • the update key generation means 156 may be included.
  • the proxy key generation unit 15 generates, for example, as follows, various data necessary for changing the proxy key and other user sets.
  • the identification factor acquisition / generation unit 155 may obtain the corresponding user identification factor 205 by referring to the correspondence table managed by the key derivation unit 12.
  • the identification factor acquisition / generation unit 155 when the key derivation unit 12 has derived the user identification factor 205 deterministically from the combination of the user identifier 204 and possibly the master key 202, the identification factor acquisition / generation unit 155.
  • the user identification factor 205 having the same value can be obtained by deriving the user identification factor 205 deterministically using the same method.
  • the proxy key generation unit 15 may newly generate a user newly included in the changed user set using the same method as the key derivation unit 12.
  • the user identification factor 205 of the user may be obtained by the same method as described above.
  • the re-encryption unit 16 uses the public key 201 and the proxy key 213 to decrypt the ciphertext 209 that can be decrypted with the private key 206 before the change with the private key 206 after the change. A new ciphertext 209 that can be decrypted is generated.
  • FIG. 8 is a block diagram illustrating a configuration example of the re-encryption unit 16. As shown in FIG. 8, the re-encryption unit 16 may include re-encryption means 161.
  • the re-encryption unit 16 generates a new (re-encrypted) ciphertext 209 from the existing ciphertext 209 as follows.
  • pk: ( ⁇ , paramsV, B ′, f)
  • rk:
  • Cx: (c [1], c [2])
  • the key update unit 17 includes the public key 201, the private key 206 before the change (for example, the secret key 206-1), and the update key 212 (for example, the update key 212-1) that is the changed part of the secret key 206. Based on the above, a new secret key 206 (for example, secret key 206-1) is generated.
  • FIG. 9 is a block diagram illustrating a configuration example of the key update unit 17.
  • the key update unit 17 may include a key update unit 171.
  • the decryption result does not change even if the re-encryption is performed.
  • d ′ I ( ⁇ I h ′)
  • f ′ ⁇ ′g
  • ⁇ ′ / ⁇ .
  • the portion related to the function added by the encryption method of the present invention is not limited to the above example.
  • the user identification factor may be anything unique to the user and not known to the user.
  • the function for generating the user identification factor may calculate a bilinear map with a part of the ciphertext and the predicate part of the secret key as inputs.
  • the function for generating the user-dependent value may calculate a bilinear map with a part of the ciphertext and the user-dependent value cancellation unit of the secret key as inputs.
  • the predicate part of the secret key may be generated using a master key, a predicate vector, and a user identification factor.
  • the secret key predicate unit may be a product of a vector including a user identification factor in its component and a component of the public key as a matrix.
  • the private key user revocation unit may consist of two or more components, two of which may contain a term consisting of the product of one element of the public key and the user identifier. Good.
  • the public key update factor only needs to be selected at random.
  • the public key update unit may be generated using the public key update factor and the public key selected as described above.
  • the master key update unit may be generated based on a public key update factor.
  • the proxy key may be a value obtained by dividing the public key update factor by a part of the master key.
  • the update key is preferably not part of the predicate vector and is part of the secret part generated from the new master key.
  • whether or not decryption can be performed can be controlled in attribute units (for example, organizational units), and changes in the members can be handled safely and efficiently.
  • attribute units for example, organizational units
  • FIG. 10 is a block diagram illustrating an example of the overall configuration of the data storage system according to the second embodiment. Note that the same functional parts as those of the cryptographic system of the first embodiment are denoted by the same reference numerals and description thereof is omitted.
  • the data storage system according to the present embodiment is used by the management device 31 used by the “manager”, the encryption device 32 used by the “data registrant”, and the “data store”. A data holding / re-encrypting device 33 and a decrypting device 34 used by a “data user” are provided.
  • each “data user” there are two or more decryption devices 34 and each user (each “data user”) included in the set of users permitted to decrypt.
  • two or more encryption devices 32 may be provided so that a plurality of users can use them.
  • the “data user” may be a “data registrant” at the same time.
  • the encryption device 32 and the decryption device 34 are realized by the same device.
  • the encryption device 32 and the decryption device 34 may be mounted in one user terminal.
  • the management device 31 includes a setting unit 11, a key derivation unit 12, and a proxy key generation unit 15.
  • the encryption device 32 includes a hybrid encryption unit 321.
  • the hybrid encryption unit 321 includes an encryption unit 13 and a second encryption unit 322.
  • the data holding / re-encrypting device 33 includes a re-encrypting unit 16 and a data holding unit 331.
  • the decryption device 34 includes a key update unit 17 and a hybrid decryption unit 341.
  • the hybrid decoding unit 341 includes a decoding unit 14 and a second decoding unit 342. Note that FIG.
  • each device shown here for example, a management device, an encryption device, a decryption device, and a data holding / re-encryption device.
  • a management device for example, a management device, an encryption device, a decryption device, and a data holding / re-encryption device.
  • the setting unit 11, the key derivation unit 12, and the proxy key generation unit 15 are mounted on different devices, and operate as one management device 31 by being connected by a secure communication path. May be.
  • the hybrid encryption unit 321 when the hybrid encryption unit 321 receives the document 219 to be encrypted and the attribute vector 207, the hybrid encryption unit 321 encrypts the document 219 using the common key encryption method,
  • the ciphertext 209 obtained by encrypting the message key 208 used for encrypting the ciphertext 220 by using a public key cryptosystem (more specifically, the cipher scheme of the present invention) is output as an encrypted data set.
  • the second encryption unit 322 receives the document 219 to be encrypted in the hybrid encryption unit 321 and the message key 208 generated by the encryption unit 13 as input, and uses the document 219 as a message key.
  • the ciphertext 220 of the document 219 is generated by encrypting with the common key cryptosystem using 208.
  • the hybrid decryption unit 341 tries to decrypt the ciphertext 220 of the document, If successful, a document 221 that is a decrypted text of the ciphertext 220 is output.
  • the second decryption unit 342 receives the ciphertext 220 of the document and the message key 210 decrypted by the decryption unit 14 in the hybrid decryption unit 341, and uses the ciphertext 220 as the message key 210.
  • the document 221 which is a decrypted text of the ciphertext 220 is generated by decrypting.
  • the data storage unit 331 is a storage unit that stores the ciphertext 220 of the document and the ciphertext 209 of the message key used when encrypting the ciphertext 220 in association with each other as a single encrypted data set. .
  • the management device 31, the encryption device 32, the data holding / re-encryption device 33, and the decryption device 34 are connected to each other via a network.
  • the encryption device 32 and the decryption device 34 may not be connected so as to be able to communicate directly as long as the encrypted data set can be transmitted and received via the data holding / re-encryption device 33.
  • the setting unit 11, the key derivation unit 12, and the proxy key generation unit 15 are realized by an information processing device that operates according to a program such as a CPU provided in the management device 31, for example.
  • the encryption unit 13 and the second encryption unit 322 are realized by an information processing device that operates according to a program such as a CPU provided in the encryption device 32, for example.
  • the re-encryption unit 16 is realized by an information processing device that operates according to a program such as a CPU provided in the data holding / re-encryption device 33, for example.
  • the data holding unit 331 is realized by a database system, a storage device, or the like provided in the data holding / re-encrypting device 33, for example.
  • the key update unit 17, the decryption unit 14, and the second decryption unit 342 are realized by an information processing device that operates according to a program such as a CPU provided in the decryption device 34, for example.
  • the operation of this embodiment is largely divided into a preparation phase, an encryption phase, a re-encryption phase, and a decryption phase.
  • the preparation phase will be described.
  • the preparation phase is performed as follows as a process in the stage before operating this system.
  • the administrator issues an instruction to the management apparatus 31 to cause the setting unit 11 to generate the public key 201 and the master key 202.
  • the master key 202 is stored in the management device 31 and is not disclosed to other devices.
  • the public key 201 is continuously updated as will be described later. Although the public key 201 that continues to be updated is omitted in FIG.
  • the latest contents include at least the key update unit 17 and the encryption unit 13 in addition to the key derivation unit 12 and the proxy key generation unit 15.
  • the re-encryption unit 16 and the decryption unit 14 are open to the public so that they can be used. Note that this is not the case during a series of processing at the time of key update (for example, during the distribution of a private key or during re-encryption), and it is also conceivable that the disclosure is stopped until re-encryption is completed.
  • the administrator determines users (data users) who are allowed to read data, and sets a set of these identifiers (user identifiers 204) as a user set. Then, a predicate vector 203 corresponding to each authority is defined for each user identifier 204 included in the user set, and the key derivation unit 12 is caused to generate a secret key 206 corresponding to each user. Then, the generated secret key 206 is distributed to the decryption device 34 used by the corresponding user. As a distribution method, for example, it may be sent directly through a secure communication path. Further, for example, the encrypted data may be sent to the data holding / re-encrypting device 33 as an encrypted text that can be decrypted only by each user. When the distribution of each user to the decryption device 34 is completed, the preparation phase ends.
  • the encryption phase is performed as follows when the data registrant wants to entrust data storage to the data storage person.
  • the data registrant obtains the latest public key 201.
  • the public key 201 may be obtained not only from the management device 31 but also from the data holding / re-encrypting device 33.
  • the data registrant specifies the document 219 that is the plaintext of the data that the data saver wants to hold, and the attribute vector 207 that specifies the authority to decrypt the document 219, and then sends it to the hybrid encryption unit 321.
  • An instruction is issued, and the ciphertext 220 of the document 219 and the ciphertext 209 of the message key 208 used when the ciphertext 220 is generated are generated.
  • the encryption unit 13 in response to the instruction, the encryption unit 13 first generates the message key 208 and the ciphertext 209 of the message key 208, and then the second encryption unit 322 is generated. Processing for generating a ciphertext 220 of the document 219 using the message key 208 is performed.
  • the designation by the attribute vector 207 here is access control to the document.
  • the data registrant stores and re-encrypts an encrypted data set including the ciphertext 220 of the document obtained in this way and the ciphertext 209 of the message key used when encrypting the ciphertext 220. Transmit to device 33.
  • the data holding / re-encrypting device 33 that has received the encrypted data set causes the data holding unit 331 to store the received encrypted data set.
  • the re-encryption phase is performed as follows when the administrator wants to change the users included in the user set having the authority to decrypt data.
  • the change of the user set is nothing but an individual change of the users who can decrypt the encrypted text if it is generated by designating the authority that matches the authority of the user.
  • Such a change in the user set occurs when a new person is added to the organization or when the person leaves the organization.
  • the administrator designates a new user set 211 and a master key 202 and issues an instruction to the proxy key generation unit 15 to create a new public key 201, proxy key 213, new master key 202, and new An update key 212 corresponding to each user included in the user set is generated.
  • the generated proxy key 213 is sent to the data holding / re-encrypting device 33.
  • the generated update key 212 of each user is also distributed to the decryption device 34 used by each user.
  • the distribution method may be the same as in the case of the private key 206.
  • the conventional public key and master key are rewritten with the generated new public key 201 and master key 202.
  • the public key 201 and the master key 202 are continuously updated.
  • the secret key 206 of each user is continuously updated along with the update of the public key 201 and the master key 202.
  • the data holding / re-encrypting device 33 When the data holding / re-encrypting device 33 receives the proxy key 213, the data holding / re-encrypting device 33 issues an instruction to the re-encrypting unit 16, and the ciphertext 209 (that is, the message) of each encrypted data set held in the data holding unit 331. Re-encryption processing is sequentially performed on the ciphertext of the key.
  • the re-encryption unit 16 sequentially rewrites the designated ciphertext 209 with a new ciphertext 209 by the re-encryption process described above. By this rewriting process, the user who can decrypt the ciphertext 209 held is changed to each user included in the new user set.
  • the key update unit 17 updates each private key 206. This update is performed every time the update key 212 is received, and the secret key 206 is continuously updated. If the ciphertext of the update key is entrusted to the data holding / re-encrypting device 33, the decryptor accesses the data holding / re-encrypting device 33 and updates the data holding unit 331 from its own. It is only necessary to receive the key 212 in the form of ciphertext and decrypt it using the private key before the change or the like to obtain an updated key.
  • the access to the data holding / re-encrypting device 33 for obtaining the update key may be performed, for example, when an update key 212 update notification is received, or the data holding / re-encrypting device. It is also possible to check the presence / absence of registration of the update key when obtaining the ciphertext from 33.
  • the decryption phase is performed as follows when the data user obtains a desired document (more specifically, an encrypted data set including the ciphertext 220 of the document) from the data holding / re-encrypting device 33. . It is assumed that a certain data user obtains an encrypted data set including a ciphertext 220 of a desired document from the data holding / re-encrypting device 33. The data user designates his / her private key 206 and then instructs the hybrid decryption unit 341 to perform decryption processing on the obtained encrypted data set.
  • the decryption unit 14 in response to the instruction, the decryption unit 14 first attempts to decrypt the ciphertext 209 of the message key included in the encrypted data set. If the decryption is successful, the second decryption unit 341 uses the message key 210 obtained to The decryption unit 342 decrypts the ciphertext 220 of the document.
  • the message key is decrypted by the decrypting unit 14 by using its own private key 206.
  • 210 can be obtained.
  • a desired document 221 can be obtained by decrypting the ciphertext 220 of the document by the second decryption unit 342 using the message key 210.
  • Access control to data can be performed safely and efficiently in attribute units (for example, organizational units).
  • Access control in many data storage services is required to be able to be revoked in addition to control of access authority by authority and user subscription.
  • Such a request can be accommodated also in access control by encryption.
  • Access control by encryption is a powerful method in the sense that the data custodian does not have to worry about the possibility of stealing data.
  • FIG. 10 shows an example of a configuration in which the data holding system encrypts and holds data using the hybrid cipher, but the data is directly transferred to the encryption method of the present invention without using the hybrid cipher. It is also possible to encrypt and hold using. In such a case, for example, a configuration as shown in FIG. 11 may be used.
  • FIG. 11 is a block diagram showing another configuration example of the data holding system of the present embodiment.
  • the data holding system shown in FIG. 11 is different in that the encryption device 32 simply includes the encryption unit 13 instead of the hybrid encryption unit 321.
  • the decoding device 34 is different from the hybrid decoding unit 341 in that it simply includes the decoding unit 14.
  • the encryption target in the encryption unit 13 is not the message key 208 but the plaintext (document) 219
  • the decryption target in the decryption unit 14 is not the message key ciphertext 209 but the ciphertext of the document. 220
  • the data storage unit 331 retains the ciphertext 220 of the document, not the cipher data set, but the basic operation is the same as in FIG.
  • FIG. 12 is a block diagram showing an outline of the invention.
  • the encryption system of the present invention includes setting means 101, key derivation means 102, encryption means 103, decryption means 104, proxy key generation means 105, and re-encryption means 106. Prepare.
  • the setting unit 101 (for example, the setting unit 11) is a part that is changed in accordance with a change of a user set that is a set of users that can be decrypted, in addition to a main body generated by a method that complies with a functional encryption method.
  • the key derivation unit 102 determines a user identification factor that is unique to the user and that the user does not know. And generating a secret key including a predicate part generated based on the master key, the predicate vector, and the user identification factor, and a user-dependent value cancellation part generated based on the user identification factor and the master key. Generate.
  • the encryption unit 103 (for example, the encryption unit 13) generates a ciphertext by designating an attribute vector by a method compliant with the functional encryption method.
  • the decryption means 104 (for example, the decryption unit 14) is used when generating the secret key based on the ciphertext and the predicate part of the secret key when the public key, the secret key, and the ciphertext are input. Generates a user-dependent value that depends on the user identification factor, and generates a user-dependent value cancellation value for canceling the user-dependent value based on the ciphertext and the user-dependent value cancellation unit of the secret key Then, the ciphertext is decrypted using the generated user-dependent value and user-dependent value cancellation value.
  • the proxy key generation unit 105 (for example, the proxy key generation unit 15) newly generates a public key update factor and generates the generated public key. Based on the key update factor, a public key update unit, an update key that is a secret key update unit, and a master key update unit are generated, and the generated public key update factor and the public key before change are generated.
  • the ciphertext that can be decrypted with the private key of the user belonging to the user set before the change based on the public key update factor obtained from the master key before the change and the secret key of the user belonging to the user set after the change A proxy key for conversion into a ciphertext that can be decrypted by the user and a master key update unit are generated.
  • the key derivation unit 102 includes a predicate part that is a product of a vector including a user identification factor in its component and one component of the public key that is a matrix, and two or more components, two of which are public key
  • a secret key including a user-dependent value canceling unit including a term composed of a product of one element and a user identification factor may be generated.
  • the decryption means 104 generates a user-dependent value by calculating a bilinear mapping using a part of the input ciphertext and the predicate part of the secret key, and also generates a user-dependent value.
  • a user-dependent value cancellation value may be generated by calculating a bilinear map using a part and a user-dependent value cancellation unit of the secret key.
  • the proxy key generation unit 105 includes a public key update factor in the master key update unit, and a proxy key including a value obtained by dividing the newly generated public key update factor by a part of the master key before the change.
  • the update key may be generated as part of a secret key generated from a new master key without requiring a predicate vector.
  • the present invention is applicable to a case where confidential data is exchanged via a network and access control to the data is desired to be specified in attribute units such as an organization.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

 復号可否を属性単位で制御可能にしつつそのメンバの変更に対して安全にかつ効率よく対応できるようにする。関数型暗号方式に、ある利用者集合に属する利用者の秘密鍵で復号できる暗号文を、新しい利用者集合に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵をマスタ鍵に基づいて生成する代理鍵生成機能と、代理鍵生成機能によって生成された代理鍵を用いて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文から、該暗号文を復号せずに、新しい利用者集合に属する利用者の秘密鍵で復号できる新たな暗号文を生成する再暗号化機能を付与する。そのために代理鍵生成手段105および再暗号化手段106とを備える。

Description

暗号システム、データ保存システム、それに用いる装置および方法
 本発明は、復号できる利用者を複数指定できる暗号システム、それを利用したデータ保存システム、およびそれに用いられる鍵導出装置、復号装置、代理鍵生成装置並びにデータ処理方法に関する。
 復号できる利用者を複数指定できる暗号方式の一つに関数型暗号方式がある。関数型暗号方式は、受信者が暗号文を復号できるか否かがその受信者の所有する属性を入力とする関数値で決定されるもので、この関数を指定して暗号化する暗号方式である。また、関数型暗号方式は、暗号文をある受信者が復号できるか否かが、暗号文生成時に指定された属性とこの受信者が所持する述語によって決定される暗号方式であるとも言うことができる。非特許文献1には、関数型暗号方式の一例が記載されている。
 図13は、非特許文献1に記載された関数型暗号方式の概略を示す説明図である。図13に示すように、非特許文献1に記載された関数型暗号方式は、設定機能901と、鍵導出機能902と、暗号化機能903と、復号機能904とからなる。
 設定機能901は、公開鍵911とマスタ鍵912とを生成する。鍵導出機能902は、公開鍵911と、マスタ鍵912と、復号できる権限(属性)を指定する属性ベクトル916に対応する述語ベクトル913とから、該属性に対応する秘密鍵914を生成する。暗号化機能903は、公開鍵911と、暗号化対象の文書(平文)915と、当該文書を復号できる権限を指定する属性ベクトル916とから、暗号文917を生成する。復号機能904は、公開鍵911と、復号者が所持する秘密鍵914(例えば、秘密鍵914-1)と、受信した暗号文917とから、暗号文917の復号文である平文918を生成する。
 例えば、設定機能901が、公開鍵pkとマスタ鍵mkを出力したとする。そして、鍵導出機能902が、その公開鍵pkとマスタ鍵mkと述語ベクトルvとを入力して、属性組の秘密鍵skを出力したとする。暗号化機能903は、設定機能901が生成した公開鍵pkと、暗号化対象の文書mと、当該文書mを復号できる権限を指定する属性ベクトルxとを入力して、文書mの暗号文であるCを出力する。復号機能904は、設定機能901が生成した公開鍵pkと、受信した暗号文Cと、復号者が所持する属性組の秘密鍵skとを入力して復号処理を行う。このとき、v・x=0ならば復号に成功するので、復号文である文書mを生成して出力する。
 このように、関数型暗号方式を使用すれば、暗号文を生成する際に指定した属性ベクトルxに対応する述語ベクトルvを指定して生成された秘密鍵skを有している受信者であればその暗号文を復号できるため、1つの暗号文を複数の受信者が復号可能となる。このような関数型暗号方式を利用すれば、例えば、複数の者がアクセス可能なファイルに対して、特定の利用者集合に対してのみ閲覧を許可するといったアクセス制御を容易に実現できる。従って、クラウド等を利用したデータ保存サービスなどにおいてもその安全性を高めることに寄与することができる。例えば、企業等のある組織がネットワーク上の記憶装置にデータを保存する場合を考える。この場合、この組織のある資格を持つメンバのみが読めるべきデータを、関数型暗号方式を使用して暗号化してネットワーク上の記憶装置に保存すればよい。この時、データを読むことができる資格を述語ベクトルvで表し、この資格を持つメンバが復号できる暗号文はv・x=0となる属性xを指定して暗号化する。組織のメンバはデータを必要とするときには、当該データが保持されている記憶装置にネットワークを介してアクセスし必要なデータを取り寄せる。このデータは上述のように関数型暗号方式により暗号化されているが、属性xに対応する述語ベクトルvを持つ組織のメンバであれば関数型暗号方式における復号方法に従い復号して、利用することができる。
 一般に、クラウド等のネットワークを介したデータの取り寄せでは、要求に対して認証を行い、対応する組織のメンバにアクセス許可を限ることで安全性を持たせることができるが、認証処理にミスがある可能性もある。また、データを保持しているクラウド側(ネットワーク側)の管理が不十分であったり、管理者が不正を働けば、アクセス権限を持たない者にデータが渡ってしまう可能性もある。特に、クラウドを利用する場合、その利用者は、ネットワーク管理に関しては外部の人間となるので、外部の利用者が、ネットワークの管理が十分であるか否かを確認したり、管理者が不正を働かない確証を得ることは難しく、情報漏洩に対する不安はより大きくなるという問題があった。しかし、このような場合でもデータを関数型暗号方式を利用して暗号化していれば、正しい述語ベクトルの組の秘密鍵を持つメンバ以外がデータを手に入れたとしても、そのデータを復号することができないため、その内容が不当に明らかになることを防ぐことができる。
 また、復号できる利用者を複数指定できる暗号方式の他の例として、放送型暗号方式と呼ばれるものがある。放送型暗号方式は、復号が可能な受信者の集合を指定して暗号化を行う暗号方式であって、同一の暗号文を、それぞれ異なる秘密鍵を持った複数の受信者が受信し、それぞれ復号した結果が同じ平文となる暗号方式である。非特許文献2には、放送型暗号方式の一例が記載されている。
 図14は、非特許文献2に記載された放送型暗号方式の概略を示す説明図である。図14に示すように、非特許文献2に記載された放送型暗号方式は、設定機能801と、鍵導出機能802と、暗号化機能803と、復号機能804とからなる。
 設定機能801は、公開鍵811とマスタ鍵812とを生成する。鍵導出機能802は、マスタ鍵812と、公開鍵811と、復号者識別子813とから、当該復号者に対応する秘密鍵814(以下、復号者秘密鍵814という。)を生成する。暗号化機能803は、公開鍵811と、復号可能者の集合を指定する復号可能者集合816と、暗号化対象の文書(平文)815とから、暗号文817を生成する。復号機能804は、公開鍵811と、受信した暗号文817と、復号者が認識している復号可能者の集合を指定する復号可能者集合816(例えば、復号可能者集合816-1)と、復号者が所持している復号者秘密鍵814(例えば、復号者秘密鍵814-1)とから、暗号文817の復号文である平文818を生成する。
 暗号化機能803に入力された復号可能者集合816と、復号機能804に入力された復号可能者集合816が同一であり、暗号化機能803が出力した暗号文817と復号機能804に入力された暗号文817とが同一であり、復号機能804に入力された復号者秘密鍵814が復号機能804に入力された復号可能者集合816に属する復号者の秘密鍵であるならば、暗号化機能803に入力された平文815と復号機能804の出力する平文818は同一内容となる。
 このように、放送型暗号方式も関数型暗号方式と同様に、クラウド等を利用したデータ保存サービスなどにおいてその安全性を高めることに寄与することができる。例えば、企業等のある組織がネットワーク上の記憶装置にデータを保存する場合を考える。この場合、この組織のメンバのみが読めるべきデータを、当該組織の各メンバが属せられた復号可能者集合を示すデータを指定した上で放送型暗号方式を使用して暗号化してネットワーク上の記憶装置に保存すればよい。組織のメンバは復号可能者集合を示すデータとともに、各自対応する秘密鍵を渡される。組織のメンバはデータを必要とするときには、当該データが保持されている記憶装置にネットワークを介してアクセスし必要なデータを取り寄せる。このデータは上述のように放送型暗号方式により暗号化されているが、組織のメンバであれば本放送型暗号の復号方式に従い復号し、利用することができる。
 放送型暗号方式は、関数型暗号方式と比べて、受信者ごとに復号可能であるか否かを制御できる点が異なる。すなわち、メンバに変更があったときに復号可能者集合816を適宜変更すれば、変更後の復号可能者集合に応じて復号可能者を変更することができる。例えば、新しいメンバが組織に加わった場合は、鍵導出機能802でその新しいメンバに対して復号者秘密鍵814を生成するとともに、暗号化機能803における以降の暗号化処理で、このメンバを加えた新たな復号可能者集合816を用いてデータを暗号化すればよい。また、例えばあるメンバが組織を去ったときには、暗号化機能803における以降の暗号化処理で、そのメンバを削除した新たな復号可能者集合816を用いてデータを暗号化すればよい。これらの処理により、新たな復号可能者集合816を用いて暗号化されたデータについては、新たな復号可能者集合816に属する最新のメンバのみが復号できるようになる。
Tatsuaki Okamoto, Katsuyuki Takashima, "Adaptively Attribute-Hiding (Hierarchical) Inner Product Encryption.", EUROCRYPT 2012, 2012, p.591-608. Dan Boneh, Craig Gentry, Brent Waters, "Collusion Resistant Broadcast Encryption With Short Ciphertexts and Private Keys", Advances in Cryptology - CRYPTO 2005, 25th Annual International Cryptology Conference, 2005, p.258-275.
 関数型暗号方式は、暗号化するときに属性を指定することによって属性単位で復号の可否を制御できるので、新たにメンバが追加された場合でもその追加されたメンバに秘密鍵を配布するだけで各メンバが既に暗号化ずみのデータを含む全ての対象データを復号できるようになるという利点がある一方で、メンバが抜けた場合にはその抜けたメンバも対象データが手に入れば復号できてしまうという問題を有している。
 一方、放送型暗号方式は、暗号化するときに復号可能者集合を指定するが、その集合内の利用者を変更することによって利用者単位で復号の可否を制御できるので、所属メンバの変更に安全に対応できるという利点がある一方で、誰が復号できるかが暗号化したときに決められ以後固定となるために、新たなメンバが既に暗号化ずみのデータを見られるようにしようとすると、メンバ変更の度に既存の暗号化データを復号して再度暗号化しなければならないという問題を有している。
 また、仮に関数型暗号方式と放送型暗号方式とを組み合わせて用いたとしても、単純には、双方の利点のみを得られるようなものにはならない。例えば、文書Mを、これを復号できる受信者集合を定めて放送型暗号方式を利用して暗号化し、さらにこれを復号できる受信者の属性の組を定めて関数型暗号方式を利用して暗号化したとする。すると、指定された属性を持ち、かつ指定された受信者集合に含まれる受信者でなければ復号できない様に見える。しかし、指定された受信者集合には含まれないが指定された属性を持つ受信者と、指定された属性は持たないが指定された受信者集合に含まれる受信者とが協力すれば復号は可能であり、両方の条件を同時に備える受信者である必要はない。すなわち、結託耐性が十分でない。なお、暗号化の順番を逆にしても同様である。
 さらに、そのような多段暗号化による組み合わせでは、関数型暗号方式がもつ、既に保存されていたデータに対して属性が一致すれば復元可能であるとするアクセス制限を活用できない。なぜなら、放送型暗号方式を使用すれば、それを復元できる復元者は暗号化したときに決まり、以後変更はできないからである。
 ここで、例えば組織を構成するメンバが変わったときに、今現在保存されている全ての暗号化データを全て取り出して、古い復号可能者集合を用いて復号した後、新しい復号可能者集合を用いて再度暗号化し、保存しなおすことを考える。しかし、世に存在する多くの組織、特に大きい組織では、その構成メンバの変更はよくある出来事であり、メンバ変更の度に今ある全ての暗号化データに対して、復号と再暗号化とを含む一連の処理を行うことは、極めて負担の大きいことである。
 すなわち、既存の暗号方式や、それらを単純に組み合わせて用いるだけでは、クラウド等を利用したデータ保存サービスを考えた場合、アクセス可能なメンバに変更があったときに安全性が十分でなく、また既に暗号化ずみのデータを含む全ての対象データに対して安全性を確保しようとすると、負担の大きい作業をせざるを得ないという問題があった。
 そこで、本発明は、復号可否を属性単位で制御可能にしつつそのメンバの変更に対して安全にかつ効率よく対応できるようにすることを目的とする。より具体的には、復号可能か否かを属性単位で指定でき、かつそのメンバに変更があった時でも、既に暗号化ずみのデータに対して一度復号して再暗号化するといった手間をかけずに、既に暗号化ずみのデータを含む全ての対象データに対して、安全性を確保できる暗号システム、データ保存システム、鍵導出装置、復号装置、代理鍵生成装置およびデータ処理方法を提供することを目的とする。
 本発明による暗号システムは、関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を含む公開鍵およびマスタ鍵を生成する設定手段と、公開鍵、マスタ鍵、述語ベクトルおよび利用者識別子が入力されると、利用者に固有でかつ利用者も知ることのない利用者識別因子を生成し、マスタ鍵と述語ベクトルと利用者識別因子とに基づいて生成される述語部と、利用者識別因子とマスタ鍵とに基づいて生成される利用者依存値打消部とを含む秘密鍵を生成する鍵導出手段と、関数型暗号方式に準拠した方法により、属性ベクトルを指定して暗号文を生成する暗号化手段と、公開鍵、秘密鍵および暗号文が入力されると、暗号文と秘密鍵の述語部とに基づいて、該秘密鍵を生成する際に使用された利用者識別因子に依存する利用者依存値を生成するとともに、暗号文と秘密鍵の利用者依存値打消部とに基づいて、該利用者依存値を打ち消すための利用者依存値打消値を生成して、生成された利用者依存値と利用者依存値打消値とを用いて暗号文を復号する復号手段と、公開鍵とマスタ鍵と変更後の利用者集合とが入力されると、公開鍵更新因子を新たに生成して、生成された公開鍵更新因子に基づいて、公開鍵の更新部と、秘密鍵の更新部分である更新鍵と、マスタ鍵の更新部とを生成するとともに、生成された公開鍵更新因子と、変更前の公開鍵から得られる公開鍵更新因子と変更前のマスタ鍵とに基づいて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文を変更後の利用者集合に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵と、マスタ鍵の更新部とを生成する代理鍵生成手段と、代理鍵生成手段によって生成された代理鍵を用いて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文から、該暗号文の復号をせずに、変更後の利用者集合に属する利用者の秘密鍵で復号できる新たな暗号文を生成する再暗号化手段とを備えたことを特徴とする。
 本発明によるデータ保存システムは、データの管理者が使用する管理装置と、暗号化されたデータを保存するデータ保存者が使用するデータ保存装置と、復号装置と、暗号装置とを備え、管理装置は、関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を含む公開鍵およびマスタ鍵を生成する設定手段と、公開鍵、マスタ鍵、述語ベクトルおよび利用者識別子が入力されると、利用者に固有でかつ利用者も知ることのない利用者識別因子を生成し、マスタ鍵と述語ベクトルと利用者識別因子とに基づいて生成される述語部と、利用者識別因子とマスタ鍵とに基づいて生成される利用者依存値打消部とを含む秘密鍵を生成する鍵導出手段と、公開鍵とマスタ鍵と変更後の利用者集合とが入力されると、公開鍵更新因子を新たに生成して、生成された公開鍵更新因子に基づいて、公開鍵の更新部と、秘密鍵の更新部分である更新鍵と、マスタ鍵の更新部とを生成するとともに、生成された公開鍵更新因子と、変更前の公開鍵から得られる公開鍵更新因子と変更前のマスタ鍵とに基づいて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文を変更後の利用者集合に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵と、マスタ鍵の更新部とを生成する代理鍵生成手段とを含み、データ保存装置は、代理鍵生成手段によって生成された代理鍵を用いて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文から、該暗号文を復号せずに、変更後の利用者集合に属する利用者の秘密鍵で復号できる新たな暗号文を生成する再暗号化手段と、再暗号化手段によって暗号化されたデータを保存する記憶手段とを含み、暗号化装置は、関数型暗号方式に準拠した方法により、属性ベクトルを指定して暗号文を生成する暗号化手段を含み、復号装置は、公開鍵、秘密鍵および暗号文が入力されると、暗号文と秘密鍵の述語部とに基づいて、該秘密鍵を生成する際に使用された利用者識別因子に依存する利用者依存値を生成するとともに、暗号文と秘密鍵の利用者依存値打消部とに基づいて、該利用者依存値を打ち消すための利用者依存値打消値を生成して、生成された利用者依存値と利用者依存値打消値とを用いて暗号文を復号する復号手段を含むことを特徴とする。
 本発明による鍵導出装置は、関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を含む公開鍵およびマスタ鍵と、述語ベクトルと、利用者識別子とが入力されると、利用者に固有でかつ利用者も知ることのない利用者識別因子を生成し、マスタ鍵と述語ベクトルと利用者識別因子とに基づいて生成される述語部と、利用者識別因子とマスタ鍵とに基づいて生成される利用者依存値打消部とを含む秘密鍵を生成する鍵導出手段を備えたことを特徴とする。
 本発明による復号装置は、関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を少なくとも含む公開鍵と、述語ベクトルが指定された秘密鍵であって、利用者に固有でかつ利用者も知ることのない利用者識別因子とマスタ鍵と述語ベクトルとに基づく述語部と、利用者識別因子とマスタ鍵とに基づく利用者依存値打消部とを含む秘密鍵と、暗号文とが入力されると、暗号文と秘密鍵の述語部とに基づいて、該秘密鍵を生成する際に使用された利用者識別因子に依存する利用者依存値を生成するとともに、暗号文と秘密鍵の利用者依存値打消部とに基づいて、該利用者依存値を打ち消すための利用者依存値打消値を生成して、生成された利用者依存値と利用者依存値打消値とを用いて暗号文を復号する復号手段を備えたことを特徴とする。
 本発明による代理鍵生成装置は、関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を少なくとも含む公開鍵と、関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を少なくとも含むマスタ鍵と、変更後の利用者集合とが入力されると、公開鍵更新因子を新たに生成して、生成された公開鍵更新因子に基づいて、公開鍵の更新部と、秘密鍵の更新部分である更新鍵と、マスタ鍵の更新部とを生成するとともに、生成された公開鍵更新因子と、変更前の公開鍵から得られる公開鍵更新因子と変更前のマスタ鍵とに基づいて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文を変更後の利用者集合に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵と、マスタ鍵の更新部とを生成する代理鍵生成手段を備えたことを特徴とする。
 本発明によるデータ処理方法は、秘匿性のあるデータの受け渡しをネットワークを介して行うためのデータ処理方法であって、関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を含む公開鍵およびマスタ鍵を生成し、データの復号を許可する利用者ごとに、該利用者に固有でかつ利用者も知ることのない利用者識別因子を生成し、マスタ鍵と述語ベクトルと利用者識別因子とに基づいて生成される述語部と、利用者識別因子とマスタ鍵とに基づいて生成される利用者依存値打消部とを含む秘密鍵を生成し、データ、または、データの暗号文を復号する際に用いるメッセージ鍵を、属性ベクトルを指定して暗号化し、データの暗号文またはメッセージ鍵の暗号文を受け取ると、受け取った暗号文と、当該利用者が所持している秘密鍵の述語部とに基づいて、該秘密鍵を生成する際に使用された利用者識別因子に依存する利用者依存値を生成するとともに、暗号文と秘密鍵の利用者依存値打消部とに基づいて、該利用者依存値を打ち消すための利用者依存値打消値を生成して、生成された利用者依存値と利用者依存値打消値とを用いて暗号文を復号することを特徴とする。
 本発明によれば、復号可否を属性単位で制御可能にしつつそのメンバの変更に対して安全にかつ効率よく対応できる。
第1の実施形態の暗号システムの全体構成図である。 設定部11の構成例を示すブロック図である。 鍵導出部12の構成例を示すブロック図である。 暗号化部13の構成例を示すブロック図である。 暗号化部13の他の構成例を示すブロック図である。 復号部14の構成例を示すブロック図である。 代理鍵生成部15の構成例を示すブロック図である。 再暗号化部16の構成例を示すブロック図である。 鍵更新部17の構成例を示すブロック図である。 第2の実施形態のデータ保存システムの全体構成の一例を示すブロック図である。 第2の実施形態のデータ保存システムの他の構成例を示すブロック図である。 本発明の概要を示すブロック図である。 関数型暗号方式の概略を示す説明図である。 放送型暗号方式の概略を示す説明図である。
 まず、本発明が使用する暗号方式(以下、本発明の暗号方式という。)について説明する。本発明の暗号方式は、関数型暗号方式を改良したものであって、関数型暗号方式に次の機能を付加することによって上述の課題を解決するものである。
(1)代理鍵生成機能
 より具体的には、ある「利用者集合U」に属する利用者の秘密鍵で復号できる暗号文を、新しい「利用者集合U’」に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵をマスタ鍵に基づいて生成する機能。
(2)再暗号化機能
 より具体的には、代理鍵生成機能によって生成された代理鍵を用いて、ある「利用者集合U」に属する利用者の秘密鍵で復号できる暗号文から、復号鍵を用いた復号処理を経ずに、新しい「利用者集合U’」に属する利用者の秘密鍵で復号できる暗号文を生成する機能。
 この2つの機能を付加することで、クラウド等に保存されたデータへのアクセスが暗号方式により制御されているときに、アクセスを許可する利用者集合を次のように動的に変更できるようにする。ここで、「データへのアクセスが暗号方式により制御されている」とは、具体的には、アクセス制限の対象とするデータを所定の暗号方式を用いて暗号化して暗号化データとして保存することによって、そのデータの中身を閲覧できる者がその暗号化データを復号可能な者に制限されていることを言う。すなわち、本発明において「アクセス制御」という表現を用いた場合には、暗号化データの復号可能者を制御することを意味する。
 すなわち、本発明の暗号方式は、この2つの機能を付加することによって、本方式により暗号化されて保存されているデータに対して、そのデータの復号を許可する利用者集合を次のように動的に変更できるようにしたものである。
 最初に、対象とするデータは、これを復号できる権限を指定して暗号化されているとする。この時、さらにその権限を有する利用者の集合である利用者集合Uが指定され、この各利用者には暗号化時に指定する権限に対応し、かつ当該利用者を指定した秘密鍵が各々配られる。これにより、この暗号文を復号できるのは、この利用者集合Uに属し、暗号文生成時に指定された権限を保持する利用者のみとなる。なぜなら、各暗号文へのアクセスがその要求する権限によって制限されているとともに、秘密鍵の配布が利用者の集合でも制限されているからである。
 ここで、データへのアクセス権を全て持つものはマスタ鍵を持つものである。また、マスタ鍵を用いて利用者集合に属する各利用者の秘密鍵を生成することができる。本発明では、このマスタ鍵を持つ者を管理者と呼ぶ。この管理者が、暗号化されたデータの保存を行わずに、別の者に委託することを想定する。また、暗号化されたデータを保存する者をデータ保存者という。データ保存者は、クラウド等でデータの保存業務を行う者を例に説明するが、単に暗号文を受信した受信者であってもよい。
 今、組織の改編等により、データへのアクセスを許可する利用者を追加あるいは削除等したいとする。これは、権限が合致さえすれば暗号化されたデータを復号できる利用者集合Uを変更したいことに他ならない。ここでは、変更先の利用者集合をU’とする。
 管理者は、上述の代理鍵生成機能を利用して、利用者集合Uと利用者集合U’とマスタ鍵とから代理鍵rk、その他利用者集合の変更に伴い必要とされる各種データを生成する。そして、生成した代理鍵rkをデータ保存者に送付する。利用者集合の変更に伴い必要とされる各種データには、例えば、新しい利用者集合U’に属する各利用者の秘密鍵が含まれる。
 データ保存者は、上述の再暗号化機能を利用して、自身が保存している各暗号文を、この暗号文と代理鍵とを基に再暗号化し、新しい暗号文を生成する。そして、元の暗号文をこの新しい暗号文で置き換える。新しい暗号文は、新しい利用者集合U’に属する利用者で権限が合致するものが復号可能である。従って、これらのデータへのアクセスは利用者集合U’に属する利用者に制限されているとみなすことができる。すなわち、権限が合致しさえすれば、復号が可能である利用者集合を変更することに成功したとみなせる。
実施形態1.
 次に、本発明の暗号方式を用いた暗号システムについて図面を参照して説明する。
[諸定義]
 まず、本実施形態の暗号システムで用いる暗号方式における各種用語の定義について説明する。G,Gは、それぞれ素数qを位数とする巡回群であって、かつe:G×G→Gなる双線形写像を持つものとする。gは群Gの生成子である。Fqは位数qの素体である。VはFq上のベクトル空間Gを表す。また、AをVの標準基底とし、A:=(a[i]) i=1,・・・,Nと表す。ここで、a[i]の全ての要素は、その第i番目のものを除いてV上0であり、第i番目の要素はgである。また、x:=(g[i]) i=1,・・・,N∈V、y:=(h[i]) i=1,・・・,N∈Vとしたとき、e(x,y):=Πe(g[i],[i])i=1 ∈Gとする。ただし、g[i]は、群Gの生成子であるgとは別記号として扱っている。
 また、群Gは、加法巡回群として記述される。Fqの元と群Gの元には乗算が定義されており、Fqの元がαで群Gの元がgならば、それらの乗算はαgと記述される。また、群Gは、乗法巡回群として記述される。Fqの元と群Gの元には冪乗算が定義されており、Fqの元がαで群Gの元がgならば、それらの乗算はg αと記述される。群Gや群Gの実現方法として、楕円曲線を用いた方法などが知られている。
 また、DOBG(・,・)は、整数λとNが入力されたら、paramsV=(q,V,G,A,e(・,・),g,B,B)を出力する双対正規直交基底生成関数である。なお、記号に付されている上付きの*は、BとBとを区別するための単なる識別用の記号として用いている。DOBG()内では、次のようにparamsVを生成する。最初に、大きさλのq,G,V,A,e(・,・),g:Gの生成子を選ぶ。また、Fqのψをランダムに選び、g:=e(g,g)ψを生成する。次いで、Fqの元を要素とするN×Nの可逆行列GL(N,Fq)からランダムにXを選び、Θ:=ψ・(X-1を生成する。また、B:=XA、B:=ΘAとする。なお、(b[0],・・・,b[N-1]):=B、(b[0],・・・,b[N-1]):=Bである。そして、paramsV(q,V,G,A,e(・,・),g,B,B)を出力する。
[構成]
 図1は、第1の実施形態の暗号システムの全体構成図である。図1に示す暗号システムは、設定部11と、鍵導出部12と、暗号化部13と、復号部14と、代理鍵生成部15と、再暗号化部16と、鍵更新部17とを備える。
[設定機能]
 設定部11は、公開鍵201とマスタ鍵202とを生成する。
 図2は、設定部11の構成例を示すブロック図である。図2に示すように、設定部11は、設定手段111を含んでいてもよい。
 公開鍵とマスタ鍵の生成方法は、基本的には一般的な関数型暗号方式における生成方法と同様でよい。ただし、以下に示すように、公開鍵201に、代理鍵213の生成に合わせて更新される更新部が少なくとも追加されるとともに、マスタ鍵202に、代理鍵213の生成に合わせて更新される更新部が少なくとも追加される。公開鍵201の更新部およびマスタ鍵202の更新部は、いずれも後述の代理鍵生成部15によって生成される公開鍵更新因子に基づく値を設定する領域を含むものとする。なお、公開鍵更新因子は、利用者集合が変更されるタイミングで生成されるものであるので、公開鍵生成時およびマスタ鍵生成時には、当該設定部11がランダムに選んだ仮の公開鍵更新因子に基づく値を当該領域に設定するものとする。以下では、「更新部」以外の部分であって関数型暗号方式に準拠した方法によって生成される部分を「本体部」と呼ぶ場合がある。
 設定部11は、例えば、次のようにして公開鍵201とマスタ鍵202とを生成する。まず、整数λとnが入力される。すると、設定手段111が、DOBG(λ,4n+3)の出力(paramsV:=(q,V,G,A,e(・,・),g,B,B),B:=(b[1],・・・,b[4n+3]),B:=(b[1],・・・,b[4n+3]))を得る。設定手段111は、次いで、B’:=(b[1],・・・,b[n],b[4n+1],b[4n+2],b[4n+3])、B’:=(b[1],・・・,b[n],,b[3n+1],・・・,b[4n],b[4n+1],b[4n+2],b[4n+3])とする。次いで、Fqからランダムにγを選び、f=γg∈V、h=(ψ/γ)gとする。そして、出力手段等(図示省略)が、公開鍵201として(λ,paramsV,B’,f):=pkを出力し、マスタ鍵202として(B’,h):=mkを出力する。なお、本例の場合、pkのうち、f=γgが公開鍵201の「更新部」に相当し、他は「本体部」に相当する。また、mkのうち、hがマスタ鍵の「更新部」に相当し、他は「本体部」に相当する。ここで、ある2つの4n+3成分ベクトルz,zに対して以下の式(1)が成り立つ。なお、式(1)の右辺は、zとzの内積z・zである。
B(B)z=z ・・・式(1)
[鍵導出機能]
 鍵導出部12は、公開鍵201と、マスタ鍵202と、当該鍵導出部12で生成する秘密鍵206に付与する権限に対応する述語ベクトル203と、その権限を有する利用者集合Uに含まれる利用者の利用者識別子204とに基づいて、その利用者に対応する秘密鍵206を生成する。
 図3は、鍵導出部12の構成例を示すブロック図である。図3に示すように、鍵導出部12は、述語部生成手段121と、打消部生成手段122と、利用者識別因子生成手段123とを含んでいてもよい。
 鍵導出部12による秘密鍵206の生成方法は、基本的な部分については関数型暗号方式における秘密鍵の生成方法と同様でよい。ただし、本例では、利用者に固有でかつ利用者も知ることのない利用者識別因子205を用いて利用者固有の要素を付加する。
 鍵導出部12は、例えば次のようにして秘密鍵206を生成する。まず、最新の公開鍵201:=pkと、最新のマスタ鍵202:=mkと、述語ベクトル203:=vと、利用者識別子204(例えば、利用者識別子204-1):=Iとが入力される。ここで、pk:=(λ,paramsV,B’,f)、mk:=(B’,h)である。すると、利用者識別因子生成手段123が、Fqから、当該利用者の利用者識別因子205(例えば、利用者識別因子205-1):=αとσをそれぞれランダムに選ぶ。また、利用者識別因子生成手段123は、Fqからベクトルuをランダムに選ぶ。なお、利用者識別因子205:=αは、利用者識別子204と、場合によってはマスタ鍵202との組み合わせから決定的に導出されるものであってもよい。
 このとき選ばれた利用者識別因子205は、後述する代理鍵生成部15と共有されるため、入力された利用者識別子204と対応づけて管理される。例えば、利用者識別子204と利用者識別因子205の対応表を生成し、保持しておいてもよい。また、例えば、利用者識別因子205として、利用者識別子204とマスタ鍵202とのハッシュ値を利用する場合には、その旨をあらかじめ定めておいてもよい。
 次いで、述語部生成手段121が、秘密鍵206の述語部2061として、k:=(σv,02n,u,1,0,α)Bを生成する。また、打消部生成手段122が、秘密鍵206の利用者依存値打消部2062として、d=αhを生成する。そして、出力手段等(図示省略)が、入力された利用者識別子204に対応する秘密鍵206(例えば、秘密鍵206-1)として、skv,I:=(k,d)を出力する。なお、述語部2061に含まれる「02n」は、全ての要素が0の要素数が2n個のベクトルを表している。なお、以下、同じように0に上付きの数値または記号が付されている場合には、全ての要素が0の要素数がその上付きの数値または記号で表される個数のベクトルを表すものとする。
 ここで、利用者識別因子αは利用者も知ることがなく、利用者に固有の値とみなす。また、本発明の暗号方式では、ここで生成された秘密鍵の述語部2061すなわちkを用いて属性ベクトルxを指定された暗号文を復号すると、中間段階でこの利用者識別因子αに依存するデータである「利用者依存値」が生成されるようにする。また、利用者識別因子αは、この利用者依存値との間に次のような関係を有するものとする。すなわち、指定された秘密鍵を用いた結果、x・v=0となる場合には、その後のステップで同秘密鍵の利用者依存値打消部2062に含まれるg、dを用いてこの利用者依存値を消し去ることができ、最終的な復号結果を得ることができる。一方、x・v=0でない場合は、利用者依存値にランダムな値が加わりこれを復号過程の後のステップで消し去ることができずに復号に失敗する。
 このように、本暗号方式では、秘密鍵を生成する際に利用者識別因子αを用いることによって、復号過程において全ての利用者ごとに異なる値を経由させるようにし、利用者ごとにその暗号文の復号を許すか否かの制御を可能にしている。
 なお、図3に示す例では、1つの利用者識別子204-1が入力されると、その利用者に対応する秘密鍵206-1を1つ生成して出力する例を示しているが、鍵導出部12は、利用者識別子204の集合からなる利用者集合Uを入力して、その利用者集合Uに含まれる各利用者識別子に対応する秘密鍵を生成して出力してもよい。
[暗号化機能]
 暗号化部13は、公開鍵201と、当該暗号化部13で生成する暗号文209を復号できる権限を指定する属性ベクトル207とに基づいて、暗号文209を生成する。
 図4は、暗号化部13の構成例を示すブロック図である。図4に示すように、暗号化部13は、暗号化手段131を含んでいてもよい。
 暗号化の方法は、基本的には一般的な関数型暗号方式における暗号化の方法と同様でよい。ただし、以下に示すように、暗号文に、公開鍵の更新部を基に生成される第2の要素が少なくとも追加される。
 なお、本実施形態では、ハイブリッド暗号方式を利用して文書を送信することを前提としている。このため図1では、暗号化部13が、保護対象とする文書そのものを暗号化するのではなく、その文書を暗号化する際に使用するメッセージ鍵を生成してそれを暗号化する例を示している。ここで、ハイブリッド暗号方式とは、共通鍵暗号方式と公開鍵暗号方式とを組み合わせて用いる暗号方式をいう。より具体的には、送信者側でメッセージ鍵を任意に生成し、文書をその生成したメッセージ鍵を使用して共通鍵暗号方式で暗号化するとともに、そのメッセージ鍵を公開鍵を使用して公開鍵暗号方式で暗号化して、暗号化された文書と暗号化されたメッセージ鍵とを受信者側に送信する。そして、受信者側では、まず公開鍵暗号方式で暗号化されたメッセージ鍵を公開鍵を使用して復号してメッセージ鍵を得て、得たメッセージ鍵を使用して共通鍵暗号方式で暗号化された文書を復号して平文(文書)を得る。関数型暗号方式を発展させた本発明の暗号方式も公開鍵暗号方式の一つであるので、このようなハイブリッド暗号方式を利用して文書を送信するシステムにおいて、本発明の暗号方式を使用できる。
 一般に、公開鍵暗号方式は鍵の配送・管理が容易であるという利点がある反面、処理に時間がかかり、大容量のファイルの暗号化には向かないという課題がある。しかし、ハイブリッド暗号方式を用いれば、共通鍵暗号方式の「処理が高速」という利点と、公開鍵暗号方式の「鍵の配送・管理が容易」という利点の両方を利用することができる。
 暗号化部13は、例えば次のようにしてメッセージ鍵208とその暗号文209とを生成する。まず、最新の公開鍵201:=pkと、属性ベクトル207:=x∈Fq(0,・・・,0)とが入力される。ここで、pk:=(λ,paramsV,B’,f)である。すると、暗号化手段131が、Fqから、wとφとζとξとをランダムに選ぶ。暗号化手段131は、次いで、メッセージ鍵208としてK:=g ζを生成し、またc[1]:=(wx,02n,0,ζ,φ,ξ)B、c[2]:=ζfを生成する。そして、出力手段等(図示省略)が、メッセージ鍵208であるKを出力し、暗号文209としてCx:=(c[1],c[2])を出力する。
 なお、図1では図示省略しているが、ハイブリッド暗号システムとして、さらに暗号化部13で生成されたメッセージ鍵を使用して文書を共通鍵暗号方式により暗号化する第2の暗号化部と、そのように暗号化された文書を、該文書に対応付けられているメッセージ鍵を使用して復号する第2の復号部とを備えていてもよい。
 そのような場合には、第2の暗号化部が、暗号化部13から出力されたメッセージ鍵208を使用して、保護対象とする文書を共通鍵暗号方式を使用して暗号化する。そして、その暗号化された文書とともに暗号化されたメッセージ鍵209とが受信者側(より具体的には、データ保存者)に送信される。
 保護対象とする文書のサイズが小さく、処理時間がパフォーマンスに影響のない範囲である場合などには、ハイブリッド暗号を利用せずに、文書を直接、本発明の暗号方式を使用して暗号化して送信することも可能である。そのような場合は、暗号化部13は、図5に示すように、公開鍵201と、属性ベクトル207と、暗号化の対象である文書208とを入力として、該文書208の暗号文209を出力する構成であってもよい。図5は、暗号化部13の他の構成例を示すブロック図である。なお、この場合の文書208の暗号化の方法はメッセージ鍵の場合と同様でよい。また、図5に示す構成において、暗号化の対象とする文書208の代わりに、メッセージ鍵208となる乱数(上述のζに相当)を入力するようにしてもよい。その場合は、そのまま上述のハイブリッド暗号方式に対応可能となる。ただし、本発明の暗号方式では、乱数=メッセージ鍵とはせず、入力された乱数と公開鍵とを組み合わせてメッセージ鍵を生成するものとする。
[復号機能]
 復号部14は、公開鍵201と、秘密鍵206と、暗号文209とに基づいて、当該暗号文209の復号文である平文210を生成する。
 図6は、復号部14の構成例を示すブロック図である。図6に示すように、復号部14は、依存値生成手段141と、打消値生成手段142と、打消手段143とを含んでいてもよい。
 復号の方法は、基本的には一般的な関数型暗号方式における復号方法と同様でよい。ただし、以下に示すように、利用者依存値の追加に伴って新たな処理が少なくとも追加される。より具体的には、復号処理の中間段階において秘密鍵206の述語部2061を基に暗号文から利用者依存値214を生成した上で、その利用者依存値214を秘密鍵206の利用者依存値打消部2062を基に打ち消す処理が少なくとも追加される。
 復号部14は、例えば次のようにして平文210を生成する。まず、最新の公開鍵201:=pkと、復号者が保持している秘密鍵206(例えば、秘密鍵206-1):=skv,Iと、暗号文209:=Cxとが入力される。ここで、pk:=(λ,paramsV,B’,f)、skv,I:=(k,d)、Cx:=(c[1],c[2])、c[1]:=(ζ,wx,02n,0,φ)B、c[2]:=ζfである。すると、依存値生成手段141が、入力された秘密鍵206の述語部2061であるkを用いて、利用者依存値214をr:=e(c[1],k)と生成する。また、打消値生成手段142が、入力された秘密鍵206の利用者依存値打消部2062であるdを用いて、利用者依存値打消値215を、R:=e(c[2],d)と生成する。次いで、打消手段143が、復号文として、K’=r/R={e(c[1],k)/e(c[2],d)}を生成する。そして、出力手段等(図示省略)が、復号文である平文210として、メッセージ鍵K’を出力する。
 この後は、このメッセージ鍵K’を用いて、メッセージ鍵の暗号文209とともに送信された共通鍵暗号方式により暗号化された文書の暗号文を復号すれば、復号結果として該文書の平文を得ることができる。なお、共通鍵暗号方式による復号処理を行う第2の復号部を備えている場合には、その第2の復号部を使用して該文書の平文を得てもよい。
 また、復号部14は、暗号文209として直接文書が暗号化されたものが入力された場合もメッセージ鍵の復号処理と同様の復号処理を行えばよい。
[代理鍵生成機能]
 代理鍵生成部15は、公開鍵201と、マスタ鍵202と、変更後の利用者集合U’である変更後の利用者集合211とに基づいて、代理鍵213と、新しい公開鍵201と、新しいマスタ鍵202と、各利用者の更新鍵212とを生成する。ここで、新しい公開鍵201とは、利用者集合を変更する前の公開鍵201の更新部を、以下に示す公開鍵更新因子を基に変更したものをいう。また、新しいマスタ鍵202とは、利用者集合を変更する前のマスタ鍵202の更新部を、同じ公開鍵更新因子を基に変更したものをいう。また、更新鍵212は、新しい秘密鍵206の一部となるものである。また、代理鍵213は、上述したように、ある「利用者集合U」に属する利用者の秘密鍵で復号できる暗号文を、新しい「利用者集合U’」に属する利用者の秘密鍵で復号できる暗号文に変換する際に必要となる情報を含んだ鍵である。
 図7は、代理鍵生成部15の構成例を示すブロック図である。図7に示すように、代理鍵生成部15は、更新因子選択手段151と、公開鍵更新手段152と、代理鍵生成手段153と、マスタ鍵更新手段154と、識別因子取得・生成手段155と、更新鍵生成手段156とを含んでいてもよい。
 代理鍵生成部15は、例えば次のようにして代理鍵、その他利用者集合の変更に伴い必要とされる各種データを生成する。まず、最新の公開鍵201:=pkと、マスタ鍵202:=mkと、新たな利用者集合211:=U’とが入力される。ここで、pk:=(λ,paramsV,B’,f)、mk:=(B’,h)である。また、U∋Iとする。すると、まず更新因子選択手段151が、Fqから今回の利用者集合の更新にかかる公開鍵更新因子216:=γ’をランダムに選ぶ。次いで、公開鍵更新手段152が、公開鍵の更新部217をf’=γ’gと生成する。また、代理鍵生成手段153が、代理鍵213をρ=γ’/γと生成する。また、マスタ鍵更新手段154が、マスタ鍵202と公開鍵更新因子γ’からマスタ鍵の更新部218をh’=(1/ρ)hと生成する。
 次いで、識別因子取得・生成手段155は、変更後の利用者集合U’に含まれる各利用者識別子204を基に、各々の利用者識別子204に対応づけられる利用者識別因子205:=(αI∈Uを得る。ここで得る利用者識別因子205は、変更前の利用者集合に含まれている利用者については該利用者の秘密鍵生成時に用いられた利用者識別因子205と同じ値であることを前提とする。識別因子取得・生成手段155は、例えば、鍵導出部12が管理している対応表を参照することにより、該当する利用者識別因子205を得てもよい。また、例えば、鍵導出部12が、利用者識別子204と、場合によってはマスタ鍵202との組み合わせから決定的に利用者識別因子205を導出していた場合には、識別因子取得・生成手段155は、同じ方法を用いて決定的に利用者識別因子205を導出することにより、同じ値の利用者識別因子205を得ることができる。なお、変更後の利用者集合に新たに含まれた利用者については、代理鍵生成部15が鍵導出部12と同じ方法を用いて新たに生成すればよい。なお、鍵導出部12に依頼して新しく加入した利用者の秘密鍵を生成させた上で、上述の方法と同じ方法でその利用者の利用者識別因子205を得てもよい。
 次いで、更新鍵生成手段156は、公開鍵更新因子216を基に、各利用者の秘密鍵206の変更部分である更新鍵212を、(ukI∈U=(d’I∈U:=(αh’)I∈Uと生成する。そして、出力手段等(図示省略)が、新しい公開鍵201としてpk’:=(λ,paramsV,B’,f’)を出力し、新しいマスタ鍵202としてmk’:=(B’,h’)を出力し、代理鍵213としてrk:=ρを出力し、更新鍵212として(ukI∈U=(d’I∈U:=(αh’)I∈Uを出力する。
[再暗号化機能]
 再暗号化部16は、利用者集合の変更に伴い、公開鍵201と、代理鍵213とに基づいて、変更前の秘密鍵206で復号可能な暗号文209から、変更後の秘密鍵206で復号可能な新たな暗号文209を生成する。
 図8は、再暗号化部16の構成例を示すブロック図である。図8に示すように、再暗号化部16は、再暗号化手段161を含んでいてもよい。
 再暗号化部16は、例えば次のようにして既存の暗号文209から新しい(再暗号化された)暗号文209を生成する。まず、最新の公開鍵201:=pkと、代理鍵213:=rkと、変更前の暗号文209:=Cxとが入力される。ここで、pk:=(λ,paramsV,B’,f)、rk:=ρ、Cx:=(c[1],c[2])、c[1]:=(wx,02n,0,ζ,φ,ξ)B、c[2]:=ζfである。すると、再暗号化手段161が、c’[2]:=ρ・c[2]を生成して、Cx’=(c[1]、c’[2])とする。そして、出力手段等(図示省略)が、再暗号化された暗号文209としてCx’を出力する。
[鍵更新機能]
 鍵更新部17は、公開鍵201と、変更前の秘密鍵206(例えば、秘密鍵206-1)と、その秘密鍵206の変更部分である更新鍵212(例えば、更新鍵212-1)とに基づいて、新しい秘密鍵206(例えば、秘密鍵206-1)を生成する。
 図9は、鍵更新部17の構成例を示すブロック図である。図9に示すように、鍵更新部17は、鍵更新手段171を含んでいてもよい。
 鍵更新部17は、例えば次のようにして新しい秘密鍵206を生成する。まず、最新の公開鍵201:=pkと、ある利用者の秘密鍵206:=skv,Iと、該利用者の更新鍵212:uk:=とが入力される。ここで、pk:=(λ,paramsV,B’,f)、uk=d’=(αh’)、skv,I:=(k,d)である。すると、鍵更新手段171は、sk’v,I:=(k,d’)と生成する。すなわち、既存の秘密鍵206に含まれる利用者依存値打消部2062の一部であるdを更新鍵として入力されたd’に更新する。そして、新しい秘密鍵206として、sk’v,Iを出力する。
[暗号方式の検証]
 上述の暗号方式が正しく動作することは次のことからわかる。まず、再暗号化がなされない場合に、上述の暗号化部13で暗号化の対象とされたメッセージ鍵K(平文208)と、上述の復号部14で復号処理によって得られたメッセージ鍵K’(平文210)とが等しいことは、以下のようにわかる。ただし、A^BはAを表す。
K’=(e(c[1],k)/e(c[2],d))
  =(g^(ζ+ζα+wσvx))/(g^(ζα))
  =g^ζ
 これが、v・x=0の場合、
K’=g^ζ=ek
となり、正しく復号されることがわかる。
 v・x=0の条件を課すことで、利用者のもつ属性vが満たすべき条件を、述語xを使って使用することができる。すなわち、属性に応じたアクセスコントロールを実施することができる。ここで、e(c[1],k)が利用者依存値である。
 また、更新された秘密鍵sk’v,Iを用いて復号すれば、再暗号化しても復号結果が変わらないことは、次のようにわかる。
 更新された秘密鍵sk’v,Iは、(k,d’)であり、また、再暗号化された暗号文の更新部分は、c’[2]:=ρc[2]である。ここでd’=(αh’)、f’=γ’g、ρ=γ’/γである。すると、再暗号化される前の暗号文の要素c[2]=ζf=ζγgであるが、更新されると、c’[2]=ρc[2]=(γ’/γ)ζγg=(γ’)ζg=ζf’となり、更新された公開鍵pk’で暗号化された場合と同じ値となる。秘密鍵sk’v,Iは、dがd’=(αh’)に置き換えられ、これも新しい公開鍵pk’を用いて作られた場合と同じ値になる。従って、更新される前と同様の計算により、再暗号化された暗号文を更新された秘密鍵を用いて復号すると、g^ζ=ekとなり、再暗号化する前と同じ値が復号される。
 一方、更新された秘密鍵sk’v,Iが手に入らない場合、すなわち古い秘密鍵skv,Iしか持っていない場合は、再暗号化された暗号文を復号できない。これは、更新の前後で秘密鍵は(γ’-γ)αgと変化していて、利用者識別因子αがランダムに選ばれているため、Diffie-Hellman問題を解けない限り更新された鍵を手に入れることができないためである。
 以上の性質から、ある暗号文に対して復号できる人々を簡易な再暗号化処理を用いて動的に制御することができることがわかる。なお、暗号化時に指定された述語ベクトルは、非特許文献1と同様の理由により、この暗号文を復号できないものには明かさない。また、一旦復号して再度暗号化する場合とは異なり、本発明の暗号方式によれば再暗号化時にこの述語ベクトルを知る必要がないため、再暗号化処理を外部の業者に委託しても安全性を保つことができる。
 なお、上述の方法はあくまで一例であって、本発明の暗号方式で追加された機能に関する部分を除けば、一般的な関数型暗号で用いられる他の方法を用いてもよい。
 また、本発明の暗号方式で追加された機能に関する部分においても、上記例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。例えば、利用者識別因子は、利用者に固有でかつ利用者も知ることのないものであればよい。また、復号処理との関係において、利用者識別因子を生成する機能が、暗号文の一部と秘密鍵の述語部を入力として双線形写像を計算するものであってもよい。そのような場合は、利用者依存値を生成する機能が、暗号文の一部と秘密鍵の利用者依存値打消部を入力として双線形写像を計算するものであってもよい。
 また、秘密鍵の述語部は、マスタ鍵と述語ベクトルと利用者識別因子とを用いて生成されるものであればよい。また、利用者打消部と公開鍵との関係において、秘密鍵の述語部が、利用者識別因子をその成分に含むベクトルと行列である公開鍵の一成分との積であってもよい。そのような場合には、秘密鍵の利用者打消部は、二つ以上の成分からなり、そのうちの二つが公開鍵の一つの要素と利用者識別子の積からなる項を含むものであってもよい。
 また、公開鍵更新因子は、ランダムに選択されるものであればよい。そして、公開鍵の更新部は、そのように選択された公開鍵更新因子と公開鍵とを用いて生成されるものであればよい。また、マスタ鍵の更新部は、公開鍵更新因子に基づいて生成されるものであればよい。また、代理鍵は、公開鍵更新因子をマスタ鍵の一部で割った値としてもよい。その上で、更新鍵を、述語ベクトルに依存を必要とせず、新しいマスタ鍵から生成される秘密部の一部とするのが好ましい。
 以上のように、本実施形態によれば、復号可否を属性単位(例えば、組織単位)で制御可能である上に、安全かつ効率よく、そのメンバの変更に対応できる。
実施形態2.
 次に、本発明の第2の実施形態について説明する。本実施形態は、本発明の暗号方式をデータ保存システムに適用させた例である。図10は、第2の実施形態のデータ保存システムの全体構成の一例を示すブロック図である。なお、第1の実施形態の暗号システムと同じ機能部については同じ符合を付し説明を省略する。図10に示すように、本実施形態のデータ保存システムは、「管理者」が使用する管理装置31と、「データ登録者」が使用する暗号化装置32と、「データ保存者」が使用するデータ保持・再暗号化装置33と、「データ利用者」が使用する復号装置34とを備えている。なお、本実施形態では、復号装置34は2以上あり、復号が許可される利用者集合に含まれる各利用者(各「データ利用者」)が所持しているものとする。また、暗号化装置32についても複数の利用者が使用できるよう2以上備えていてもよい。また、「データ利用者」が同時に「データ登録者」であってもよい。この場合、暗号化装置32と復号装置34とが同一の装置によって実現される。例えば、1つの利用者端末内に、暗号化装置32と復号装置34とが実装されていてもよい。
 管理装置31は、設定部11と、鍵導出部12と、代理鍵生成部15とを備えている。また、暗号化装置32は、ハイブリッド暗号化部321を備えている。ハイブリッド暗号化部321は、暗号化部13と、第2の暗号化部322とを含んでいる。また、データ保持・再暗号化装置33は、再暗号化部16と、データ保持部331とを備えている。また、復号装置34は、鍵更新部17と、ハイブリッド復号部341とを備えている。ハイブリッド復号部341は、復号部14と、第2の復号部342とを含んでいる。なお、図10では、使用者の区分けによる装置の分類を示しているが、ここで示した各装置(例えば、管理装置、暗号化装置、復号装置、データ保持・再暗号化装置)の実現例として、それらが2以上の装置によって実現されていてもかまわない。例えば、設定部11と、鍵導出部12と、代理鍵生成部15とがそれぞれ異なる装置に実装され、それらが安全な通信経路によって接続されることによって1つの管理装置31として動作するものであってもよい。
 本実施形態において、ハイブリッド暗号化部321は、暗号化の対象とされる文書219と、属性ベクトル207とが入力されると、共通鍵暗号方式を用いて文書219を暗号化した暗号文220と、公開鍵暗号方式(より具体的には本発明の暗号方式)を用いて、該暗号文220を暗号化する際に使用したメッセージ鍵208を暗号化した暗号文209とを暗号データセットとして出力する。また、第2の暗号化部322は、当該ハイブリッド暗号化部321において、暗号化の対象とされる文書219と、暗号化部13が生成したメッセージ鍵208とを入力として、文書219をメッセージ鍵208を使用して共通鍵暗号方式で暗号化し、文書219の暗号文220を生成する。
 また、ハイブリッド復号部341は、文書の暗号文220と、該暗号文220を暗号化する際に使用したメッセージ鍵の暗号文209とが入力されると、文書の暗号文220の復号を試み、成功すれば該暗号文220の復号文である文書221を出力する。また、第2の復号部342は、当該ハイブリッド復号部341において、文書の暗号文220と、復号部14によって復号されたメッセージ鍵210とを入力として、暗号文220をメッセージ鍵210を使用して復号し、暗号文220の復号文である文書221を生成する。
 また、データ保持部331は、文書の暗号文220と、該暗号文220を暗号化する際に使用したメッセージ鍵の暗号文209とを対応づけて1つの暗号データセットとして保持する記憶部である。
 また、本実施形態では、管理装置31と、暗号化装置32と、データ保持・再暗号化装置33と、復号装置34とは、各々ネットワークを介して接続されているものとする。なお、暗号化装置32と復号装置34とは、データ保持・再暗号化装置33を介して暗号データセットを送受信可能であれば、直接通信可能に接続されていなくてもよい。
 設定部11,鍵導出部12,代理鍵生成部15は、例えば管理装置31が備えるCPU等のプログラムに従って動作する情報処理装置によって実現される。また、暗号化部13,第2の暗号化部322は、例えば暗号化装置32が備えるCPU等のプログラムに従って動作する情報処理装置によって実現される。また、再暗号化部16は、例えばデータ保持・再暗号化装置33が備えるCPU等のプログラムに従って動作する情報処理装置によって実現される。また、データ保持部331は、例えばデータ保持・再暗号化装置33が備えるデータベースシステム、記憶装置等によって実現される。また、鍵更新部17,復号部14,第2の復号部342は、例えば復号装置34が備えるCPU等のプログラムに従って動作する情報処理装置によって実現される。
 次に、本実施形態の動作について説明する。本実施形態の動作は大きく、準備フェーズ、暗号化フェーズ、再暗号化フェーズ、復号フェーズに分けられる。まず、準備フェーズについて説明する。準備フェーズは本システムを稼働させる前段階における処理として、次のように行われる。まず管理者が管理装置31に対して指示を出すなどして、設定部11に公開鍵201とマスタ鍵202とを生成させる。マスタ鍵202は当該管理装置31内で保存し、他の装置には開示しない。また、公開鍵201は後に説明するが更新されつづける。この更新され続ける公開鍵201は、図10では図示省略しているが、その最新の内容が、鍵導出部12および代理鍵生成部15の他にも、少なくとも鍵更新部17、暗号化部13、再暗号化部16、復号部14に対して、利用可能なように公開されているものとする。なお、鍵更新時の一連の処理中(例えば、秘密鍵の配布中や再暗号化中)においてはこの限りではなく、再暗号化が完了するまであえて公開を停止するなども考えられる。
 次いで、管理者は、データを読むことを許す利用者(データ利用者)を定めて、これらの識別子(利用者識別子204)からなる集合を利用者集合とする。そして、利用者集合に含まれる各利用者識別子204に、それぞれの権限に対応する述語ベクトル203を定めた上で、鍵導出部12に、各利用者に対応する秘密鍵206を生成させる。そして、生成された秘密鍵206を該当する利用者が使用する復号装置34に各々配布する。配布方法としては、例えば直接安全な通信路で送付してもよい。また、例えば各利用者のみが復号できる暗号文としてデータ保持・再暗号化装置33に送付して委託してもよい。各利用者の復号装置34への配布が完了すると、準備フェーズを終了する。
 次に、暗号化フェーズについて説明する。暗号化フェーズは、データ登録者がデータ保存者にデータの保存を委託したい場合に次のように行われる。まず、データ登録者は、最新の公開鍵201を手に入れる。この公開鍵201は、管理装置31からだけでなく、データ保持・再暗号化装置33から入手してもよい。次いで、データ登録者は、データ保存者に保持させたいデータの平文である文書219と、該文書219を復号可能な権限を指定する属性ベクトル207とを指定した上で、ハイブリッド暗号化部321に指示を出し、該文書219の暗号文220と、該暗号文220を生成した際に使用したメッセージ鍵208の暗号文209とを生成させる。ハイブリッド暗号化部321では、指示に応じて、まず暗号化部13が、メッセージ鍵208と該メッセージ鍵208の暗号文209とを生成し、次いで、第2の暗号化部322が、生成されたメッセージ鍵208を用いて文書219の暗号文220を生成する処理を行う。なお、ここでの属性ベクトル207による指定が、当該文書へのアクセス制御となる。
 データ登録者は、このようにして得た文書の暗号文220と、該暗号文220を暗号化する際に使用したメッセージ鍵の暗号文209とを含む暗号データセットを、データ保持・再暗号化装置33に送信する。暗号データセットを受け取ったデータ保持・再暗号化装置33は、受け取った暗号データセットをデータ保持部331に記憶させる。
 次に、再暗号化フェーズについて説明する。再暗号化フェーズは、管理者が、データの復号可能権限を有する利用者集合に含ませる利用者を変更したい場合に次のように行われる。なお、この利用者集合の変更は、暗号文が利用者自身の権限に合致する権限を指定して生成されていれば復号できる利用者を個別に変更することに他ならない。このような利用者集合の変更は、組織に新たな人員が加わったり、人員が組織を去るとき等に発生する。まず、管理者は、新しい利用者集合211と、マスタ鍵202とを指定して、代理鍵生成部15に指示を出し、新しい公開鍵201と、代理鍵213と、新しいマスタ鍵202と、新しい利用者集合に含まれる各利用者に応じた更新鍵212とを生成させる。そして、生成された代理鍵213をデータ保持・再暗号化装置33に送付する。この時、生成された各利用者の更新鍵212についても、各利用者が使用する復号装置34に配布する。配布方法としては、秘密鍵206の場合と同様でよい。また、この時、従来(変更前)の公開鍵およびマスタ鍵を生成された新しい公開鍵201およびマスタ鍵202で書き換える。このように、公開鍵201とマスタ鍵202とは更新され続ける。なお、後述するが、公開鍵201とマスタ鍵202の更新に併せて各利用者の秘密鍵206も更新され続ける。
 データ保持・再暗号化装置33では、代理鍵213を受け取ったなら、再暗号化部16に指示を出し、データ保持部331に保持している各暗号データセットのうちの暗号文209(すなわちメッセージ鍵の暗号文)に対して、順次再暗号化処理を行わせる。再暗号化部16では、上述の再暗号化処理によって、指定された暗号文209を順次新しい暗号文209に書き換える。この書き換え処理により、保持している暗号文209を復号できる利用者が、新しい利用者集合に含まれる各利用者に変更される。
 復号装置34では、更新鍵212を受け取ったなら、鍵更新部17が、各自秘密鍵206を更新する。この更新は、更新鍵212を受け取る度に行われ、秘密鍵206が更新され続ける。なお、データ保持・再暗号化装置33に更新鍵の暗号文が委託されている場合には、復号者は、各々データ保持・再暗号化装置33にアクセスし、データ保持部331から自身の更新鍵212を暗号文の形で受け取り、それを変更前の秘密鍵等を用いて復号して更新鍵を得ればよい。なお、更新鍵取得のためのデータ保持・再暗号化装置33へのアクセスは、例えば、更新鍵212の更新の通知を受け取ったときに行うようにしてもよいし、データ保持・再暗号化装置33から暗号文を取り寄せる際に併せて更新鍵の登録有無をチェックすることにより行うことも可能である。
 次に、復号フェーズについて説明する。復号フェーズは、データ利用者が、データ保持・再暗号化装置33から所望の文書(より具体的には、文書の暗号文220を含む暗号データセット)を取り寄せた場合に次のように行われる。あるデータ利用者が、データ保持・再暗号化装置33から所望の文書の暗号文220を含む暗号データセットを取り寄せたとする。データ利用者は、自身の秘密鍵206を指定した上で、ハイブリッド復号部341に指示を出し、取り寄せた暗号データセットに対して復号処理を行わせる。ハイブリッド復号部341では、指示に応じて、まず復号部14が暗号データセットに含まれる、メッセージ鍵の暗号文209の復号を試み、それが成功すると、得られたメッセージ鍵210を用いて第2の復号部342が文書の暗号文220の復号を行う。
 このとき、データ利用者が、メッセージ鍵の暗号文209の暗号化時に指定された権限を保持しているならば、自身の秘密鍵206を用いることにより、復号部14での復号処理によりメッセージ鍵210を得ることができる。そして、このメッセージ鍵210を用いて第2の復号部342で文書の暗号文220を復号することにより、所望の文書221を得ることができる。
 以上のように、本実施形態によれば、クラウド等の外部機関により提供されるデータ保存サービスを利用した場合であっても、データ保存者を含む外部へのデータ漏洩の恐れを低減させつつ、データへのアクセス制御を属性単位(例えば、組織単位)で安全かつ効率よく行うことができる。
 特に、データを復号できる利用者の権限を指定すること、データを復号できる利用者の集合を変更することで、データへのアクセス制御を柔軟にすることができる。多くのデータ保存サービスにおけるアクセス制御は、権限によるアクセス権限の制御や利用者の加入に加えて失効が可能であることが求められている。このような求めに対して、暗号化によるアクセス制御においても、対応することができるようになる。暗号化によるアクセス制御はデータ保存者がデータを盗み見る可能性を心配する必要がないという意味において、強力な方法である。この様な強力な方法に対して、複数の利用者を一括りにしてアクセス権限を設定可能にし、また随時利用者の追加と失効を可能にする方法を提供することができることは、データ保存サービスの利用対象を大きく広げるものである。
 なお、図10では、本データ保持システムが、ハイブリッド暗号を利用してデータを暗号化し、保持する場合の構成例を示したが、ハイブリッド暗号を利用せずに、直接データを本発明の暗号方式を用いて暗号化し、保持するようにしてもよい。そのような場合には、例えば、図11に示すような構成であってもよい。
 図11は、本実施形態のデータ保持システムの他の構成例を示すブロック図である。図11に示すデータ保持システムは、暗号化装置32が、ハイブリッド暗号化部321に代わって、単に暗号化部13を備えている点が異なる。また、復号装置34が、ハイブリッド復号部341に代わって、単に復号部14を備えている点が異なる。それにより、暗号化部13での暗号化対象がメッセージ鍵208ではなく平文(文書)219となっており、復号部14での復号対象が、メッセージ鍵の暗号文209ではなく、文書の暗号文220となっており、データ保持部331の保持対象が暗号データセットではなく、文書の暗号文220となっているが、基本的な動作は図10の場合と同様である。
 図12は、発明の概要を示すブロック図である。図12に示すように、本発明の暗号システムは、設定手段101と、鍵導出手段102と、暗号化手段103と、復号手段104と、代理鍵生成手段105と、再暗号化手段106とを備える。
 設定手段101(例えば、設定部11)は、関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を含む公開鍵およびマスタ鍵を生成する。
 鍵導出手段102(例えば、鍵導出部12)は、公開鍵、マスタ鍵、述語ベクトルおよび利用者識別子が入力されると、利用者に固有でかつ利用者も知ることのない利用者識別因子を生成し、マスタ鍵と述語ベクトルと利用者識別因子とに基づいて生成される述語部と、利用者識別因子とマスタ鍵とに基づいて生成される利用者依存値打消部とを含む秘密鍵を生成する。
 暗号化手段103(例えば、暗号化部13)は、関数型暗号方式に準拠した方法により、属性ベクトルを指定して暗号文を生成する。
 復号手段104(例えば、復号部14)は、公開鍵、秘密鍵および暗号文が入力されると、暗号文と秘密鍵の述語部とに基づいて、該秘密鍵を生成する際に使用された利用者識別因子に依存する利用者依存値を生成するとともに、暗号文と秘密鍵の利用者依存値打消部とに基づいて、該利用者依存値を打ち消すための利用者依存値打消値を生成して、生成された利用者依存値と利用者依存値打消値とを用いて暗号文を復号する。
 代理鍵生成手段105(例えば、代理鍵生成部15)は、公開鍵とマスタ鍵と変更後の利用者集合とが入力されると、公開鍵更新因子を新たに生成して、生成された公開鍵更新因子に基づいて、公開鍵の更新部と、秘密鍵の更新部分である更新鍵と、マスタ鍵の更新部とを生成するとともに、生成された公開鍵更新因子と、変更前の公開鍵から得られる公開鍵更新因子と変更前のマスタ鍵とに基づいて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文を変更後の利用者集合に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵と、マスタ鍵の更新部とを生成する。
 また、鍵導出手段102は、利用者識別因子をその成分に含むベクトルと行列である公開鍵の一成分との積である述語部と、2以上の成分からなり、そのうちの2つが公開鍵の1つの要素と利用者識別因子の積からなる項を含む利用者依存値打消部とを含む秘密鍵を生成してもよい。
 また、復号手段104は、入力された暗号文の一部と秘密鍵の述語部とを用いて双線形写像を計算することによって、利用者依存値を生成し、また、入力された暗号文の一部と秘密鍵の利用者依存値打消部とを用いて双線形写像を計算することによって、利用者依存値打消値を生成してもよい。
 また、代理鍵生成手段105は、公開鍵更新因子をマスタ鍵の更新部に含ませるとともに、新たに生成した公開鍵更新因子を変更前のマスタ鍵の一部で割った値を含む代理鍵を生成し、かつ更新鍵を、述語ベクトルを要せずに、新しいマスタ鍵から生成される秘密鍵の一部として生成してもよい。
 このような構成を備えることによって、復号可否を属性単位で制御可能にしつつそのメンバの変更に対して安全にかつ効率よく対応できる。
 この出願は、2012年11月30日に出願された日本特許出願2012-262555を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
産業上の利用の可能性
 本発明は、秘匿性のあるデータの受け渡しをネットワークを介して行う用途であって、そのデータへのアクセス制御を組織等属性単位で指定したい場合に好適に適用可能である。
 11 設定部
 12 鍵導出部
 13 暗号化部
 14 復号部
 15 代理鍵生成部
 16 再暗号化部
 101 設定手段
 102 鍵導出手段
 103 暗号化手段
 104 復号手段
 105 代理鍵生成手段
 106 再暗号化手段
 201 公開鍵
 202 マスタ鍵
 203 述語ベクトル
 204 利用者識別子
 205 利用者識別因子
 206 秘密鍵
 2061 述語部
 2061 利用者依存値打消部
 207 属性ベクトル
 208,210 平文(メッセージ鍵または文書)
 209 暗号文(メッセージ鍵または文書)
 211 変更後の利用者集合
 212 更新鍵
 213 代理鍵
 214 利用者依存値
 215 利用者依存値打消値
 216 公開鍵更新因子
 217 公開鍵の更新部
 218 マスタ鍵の更新部
 219,221 文書
 220 文書の暗号文
 31 管理装置
 32 暗号化装置
 321 ハイブリッド暗号化部
 322 第2の暗号化部
 33 データ保持・再暗号化装置
 331 データ保持部
 34 復号装置
 341 ハイブリッド復号部
 342 第2の復号部

Claims (10)

  1.  関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を含む公開鍵およびマスタ鍵を生成する設定手段と、
     公開鍵、マスタ鍵、述語ベクトルおよび利用者識別子が入力されると、利用者に固有でかつ利用者も知ることのない利用者識別因子を生成し、前記マスタ鍵と前記述語ベクトルと前記利用者識別因子とに基づいて生成される述語部と、前記利用者識別因子と前記マスタ鍵とに基づいて生成される利用者依存値打消部とを含む秘密鍵を生成する鍵導出手段と、
     関数型暗号方式に準拠した方法により、属性ベクトルを指定して暗号文を生成する暗号化手段と、
     公開鍵、秘密鍵および暗号文が入力されると、前記暗号文と前記秘密鍵の述語部とに基づいて、該秘密鍵を生成する際に使用された利用者識別因子に依存する利用者依存値を生成するとともに、前記暗号文と前記秘密鍵の利用者依存値打消部とに基づいて、該利用者依存値を打ち消すための利用者依存値打消値を生成して、生成された利用者依存値と利用者依存値打消値とを用いて前記暗号文を復号する復号手段と、
     公開鍵とマスタ鍵と変更後の利用者集合とが入力されると、公開鍵更新因子を新たに生成して、生成された公開鍵更新因子に基づいて、公開鍵の更新部と、秘密鍵の更新部分である更新鍵と、マスタ鍵の更新部とを生成するとともに、生成された公開鍵更新因子と、変更前の公開鍵から得られる公開鍵更新因子と変更前のマスタ鍵とに基づいて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文を変更後の利用者集合に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵と、マスタ鍵の更新部とを生成する代理鍵生成手段と、
     前記代理鍵生成手段によって生成された代理鍵を用いて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文から、該暗号文の復号をせずに、変更後の利用者集合に属する利用者の秘密鍵で復号できる新たな暗号文を生成する再暗号化手段とを備えた
     ことを特徴とする暗号システム。
  2.  鍵導出手段は、利用者識別因子をその成分に含むベクトルと行列である公開鍵の一成分との積である述語部と、2以上の成分からなり、そのうちの2つが公開鍵の1つの要素と前記利用者識別因子の積からなる項を含む利用者依存値打消部とを含む秘密鍵を生成する
     請求項1に記載の暗号システム。
  3.  復号手段は、入力された暗号文の一部と秘密鍵の述語部とを用いて双線形写像を計算することによって、利用者依存値を生成し、
     前記復号手段は、入力された暗号文の一部と秘密鍵の利用者依存値打消部とを用いて双線形写像を計算することによって、利用者依存値打消値を生成する
     請求項2に記載の暗号システム。
  4.  代理鍵生成手段は、公開鍵更新因子をマスタ鍵の更新部に含ませるとともに、新たに生成した公開鍵更新因子を変更前のマスタ鍵の一部で割った値を含む代理鍵を生成し、かつ更新鍵を、述語ベクトルを要せずに、新しいマスタ鍵から生成される秘密鍵の一部として生成する
     請求項1から請求項3のうちのいずれか1項に記載の暗号システム。
  5.  データの管理者が使用する管理装置と、暗号化されたデータを保存するデータ保存者が使用するデータ保存装置と、復号装置と、暗号装置とを備え、
     前記管理装置は、
     関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を含む公開鍵およびマスタ鍵を生成する設定手段と、
     公開鍵、マスタ鍵、述語ベクトルおよび利用者識別子が入力されると、利用者に固有でかつ利用者も知ることのない利用者識別因子を生成し、前記マスタ鍵と前記述語ベクトルと前記利用者識別因子とに基づいて生成される述語部と、前記利用者識別因子と前記マスタ鍵とに基づいて生成される利用者依存値打消部とを含む秘密鍵を生成する鍵導出手段と、
     公開鍵とマスタ鍵と変更後の利用者集合とが入力されると、公開鍵更新因子を新たに生成して、生成された公開鍵更新因子に基づいて、公開鍵の更新部と、秘密鍵の更新部分である更新鍵と、マスタ鍵の更新部とを生成するとともに、生成された公開鍵更新因子と、変更前の公開鍵から得られる公開鍵更新因子と変更前のマスタ鍵とに基づいて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文を変更後の利用者集合に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵と、マスタ鍵の更新部とを生成する代理鍵生成手段とを含み、
     前記データ保存装置は、
     前記代理鍵生成手段によって生成された代理鍵を用いて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文から、該暗号文を復号せずに、変更後の利用者集合に属する利用者の秘密鍵で復号できる新たな暗号文を生成する再暗号化手段と、
     前記再暗号化手段によって暗号化されたデータを保存する記憶手段とを含み、
     前記暗号化装置は、
     関数型暗号方式に準拠した方法により、属性ベクトルを指定して暗号文を生成する暗号化手段を含み、
     前記復号装置は、
     公開鍵、秘密鍵および暗号文が入力されると、前記暗号文と前記秘密鍵の述語部とに基づいて、該秘密鍵を生成する際に使用された利用者識別因子に依存する利用者依存値を生成するとともに、前記暗号文と前記秘密鍵の利用者依存値打消部とに基づいて、該利用者依存値を打ち消すための利用者依存値打消値を生成して、生成された利用者依存値と利用者依存値打消値とを用いて前記暗号文を復号する復号手段を含む
     ことを特徴とするデータ保存システム。
  6.  関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を含む公開鍵およびマスタ鍵と、述語ベクトルと、利用者識別子とが入力されると、利用者に固有でかつ利用者も知ることのない利用者識別因子を生成し、前記マスタ鍵と前記述語ベクトルと前記利用者識別因子とに基づいて生成される述語部と、前記利用者識別因子と前記マスタ鍵とに基づいて生成される利用者依存値打消部とを含む秘密鍵を生成する鍵導出手段を備えた
     ことを特徴とする鍵導出装置。
  7.  関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を少なくとも含む公開鍵と、述語ベクトルが指定された秘密鍵であって、利用者に固有でかつ利用者も知ることのない利用者識別因子と前記マスタ鍵と述語ベクトルとに基づく述語部と、前記利用者識別因子と前記マスタ鍵とに基づく利用者依存値打消部とを含む秘密鍵と、暗号文とが入力されると、前記暗号文と前記秘密鍵の述語部とに基づいて、該秘密鍵を生成する際に使用された利用者識別因子に依存する利用者依存値を生成するとともに、前記暗号文と前記秘密鍵の利用者依存値打消部とに基づいて、該利用者依存値を打ち消すための利用者依存値打消値を生成して、生成された利用者依存値と利用者依存値打消値とを用いて前記暗号文を復号する復号手段を備えた
     ことを特徴とする復号装置。
  8.  関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を少なくとも含む公開鍵と、関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を少なくとも含むマスタ鍵と、変更後の利用者集合とが入力されると、公開鍵更新因子を新たに生成して、生成された公開鍵更新因子に基づいて、公開鍵の更新部と、秘密鍵の更新部分である更新鍵と、マスタ鍵の更新部とを生成するとともに、生成された公開鍵更新因子と、変更前の公開鍵から得られる公開鍵更新因子と変更前のマスタ鍵とに基づいて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文を変更後の利用者集合に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵と、マスタ鍵の更新部とを生成する代理鍵生成手段を備えた
     ことを特徴とする代理鍵生成装置。
  9.  秘匿性のあるデータの受け渡しをネットワークを介して行うためのデータ処理方法であって、
     関数型暗号方式に準拠した方法によって生成される本体部の他に、復号できる利用者の集合である利用者集合の変更に伴って変更される部分であってランダムに選択される公開鍵更新因子に基づく値が設定される部分である更新部を含む公開鍵およびマスタ鍵を生成し、
     データの復号を許可する利用者ごとに、該利用者に固有でかつ利用者も知ることのない利用者識別因子を生成し、前記マスタ鍵と述語ベクトルと前記利用者識別因子とに基づいて生成される述語部と、前記利用者識別因子と前記マスタ鍵とに基づいて生成される利用者依存値打消部とを含む秘密鍵を生成し、
     データ、または、前記データの暗号文を復号する際に用いるメッセージ鍵を、属性ベクトルを指定して暗号化し、
     データの暗号文または前記メッセージ鍵の暗号文を受け取ると、受け取った暗号文と、当該利用者が所持している秘密鍵の述語部とに基づいて、該秘密鍵を生成する際に使用された利用者識別因子に依存する利用者依存値を生成するとともに、前記暗号文と前記秘密鍵の利用者依存値打消部とに基づいて、該利用者依存値を打ち消すための利用者依存値打消値を生成して、生成された利用者依存値と利用者依存値打消値とを用いて前記暗号文を復号する
     ことを特徴とするデータ処理方法。
  10.  復号できる利用者の集合である利用者集合が変更されると、公開鍵更新因子を新たに生成して、生成された公開鍵更新因子に基づいて、公開鍵の更新部と、秘密鍵の更新部分である更新鍵と、マスタ鍵の更新部とを生成するとともに、生成された公開鍵更新因子と、変更前の公開鍵から得られる公開鍵更新因子と、変更前のマスタ鍵とに基づいて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文を変更後の利用者集合に属する利用者の秘密鍵で復号できる暗号文に変換するための代理鍵と、マスタ鍵の更新部とを生成し、
     生成された代理鍵を用いて、変更前の利用者集合に属する利用者の秘密鍵で復号できる暗号文から、該暗号文を復号せずに、変更後の利用者集合に属する利用者の秘密鍵で復号できる新たな暗号文を生成する
     請求項9に記載のデータ処理方法。
PCT/JP2013/006640 2012-11-30 2013-11-12 暗号システム、データ保存システム、それに用いる装置および方法 WO2014083784A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014549787A JP6115573B2 (ja) 2012-11-30 2013-11-12 暗号システム、データ保存システム、それに用いる装置および方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012262555 2012-11-30
JP2012-262555 2012-11-30

Publications (1)

Publication Number Publication Date
WO2014083784A1 true WO2014083784A1 (ja) 2014-06-05

Family

ID=50827447

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/006640 WO2014083784A1 (ja) 2012-11-30 2013-11-12 暗号システム、データ保存システム、それに用いる装置および方法

Country Status (2)

Country Link
JP (1) JP6115573B2 (ja)
WO (1) WO2014083784A1 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016076759A (ja) * 2014-10-03 2016-05-12 三菱電機株式会社 暗号システム、暗号方法、普遍再暗号化鍵生成装置及び再暗号化鍵生成装置
WO2016132547A1 (ja) * 2015-02-20 2016-08-25 三菱電機株式会社 データ保管装置及びデータ更新システム及びデータ処理方法及びデータ処理プログラム
WO2016132546A1 (ja) * 2015-02-20 2016-08-25 三菱電機株式会社 データ保管装置及びデータ処理方法及びデータ処理プログラム
JP2017079350A (ja) * 2015-10-19 2017-04-27 学校法人東京電機大学 データ伝送システム及びデータ伝送方法
JPWO2016103960A1 (ja) * 2014-12-25 2017-11-16 国立大学法人 東京大学 制御装置、統計解析装置、復号装置および送信装置
JP2019128640A (ja) * 2018-01-22 2019-08-01 ヤフー株式会社 提供装置、提供方法及び提供プログラム
US10516534B2 (en) 2015-04-07 2019-12-24 Mitsubishi Electric Corporation Cryptographic system and key generation apparatus
US10691815B2 (en) 2016-04-27 2020-06-23 Mitsubishi Electric Corporation Attribute linkage apparatus, transfer system, attribute linkage method and computer readable medium
WO2020240630A1 (ja) * 2019-05-24 2020-12-03 三菱電機株式会社 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
WO2024130749A1 (en) * 2022-12-24 2024-06-27 Huawei Technologies Co., Ltd. Methods, apparatuses, non-transitory computer-readable storage devices, and systems for data-usage control using attribute-based encryption

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011086687A1 (ja) * 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011086687A1 (ja) * 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム
CN102713995A (zh) * 2010-01-15 2012-10-03 三菱电机株式会社 隐匿检索系统以及密码处理系统
EP2525340A1 (en) * 2010-01-15 2012-11-21 Mitsubishi Electric Corporation Confidential search system and encryption processing system
US20120297201A1 (en) * 2010-01-15 2012-11-22 Mitsubishi Electric Corporation Confidential search system and cryptographic processing system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
NORI MATSUDA: "Kaisoteki Naiseki Jutsugo Ango o Mochiita Data Center System no Kento", 2010 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY, SCIS2010 [CD-ROM], 19 January 2010 (2010-01-19), pages 1 - 6 *
SHINTARO HISANO: "Doteki na Zokusei Joho Koshin Kino o Motsu Angobun Policy Zokusei Base Ango", 2011 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY, SCIS2011 [CD-ROM], 25 January 2011 (2011-01-25), pages 1 - 8 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016076759A (ja) * 2014-10-03 2016-05-12 三菱電機株式会社 暗号システム、暗号方法、普遍再暗号化鍵生成装置及び再暗号化鍵生成装置
JPWO2016103960A1 (ja) * 2014-12-25 2017-11-16 国立大学法人 東京大学 制御装置、統計解析装置、復号装置および送信装置
WO2016132547A1 (ja) * 2015-02-20 2016-08-25 三菱電機株式会社 データ保管装置及びデータ更新システム及びデータ処理方法及びデータ処理プログラム
WO2016132546A1 (ja) * 2015-02-20 2016-08-25 三菱電機株式会社 データ保管装置及びデータ処理方法及びデータ処理プログラム
JPWO2016132547A1 (ja) * 2015-02-20 2017-05-25 三菱電機株式会社 データ保管装置及びデータ更新システム及びデータ処理方法及びデータ処理プログラム
JPWO2016132546A1 (ja) * 2015-02-20 2017-06-22 三菱電機株式会社 データ保管装置及びデータ処理方法及びデータ処理プログラム
US10116442B2 (en) 2015-02-20 2018-10-30 Mitsubishi Electric Corporation Data storage apparatus, data updating system, data processing method, and computer readable medium
US10592682B2 (en) 2015-02-20 2020-03-17 Mitsubishi Electric Corporation Data storage apparatus, data processing method, and computer readable medium adding a user attribute of a revoked user to an embedded decryption condition while encrypted data remains in an encrypted state
US10516534B2 (en) 2015-04-07 2019-12-24 Mitsubishi Electric Corporation Cryptographic system and key generation apparatus
JP2017079350A (ja) * 2015-10-19 2017-04-27 学校法人東京電機大学 データ伝送システム及びデータ伝送方法
US10691815B2 (en) 2016-04-27 2020-06-23 Mitsubishi Electric Corporation Attribute linkage apparatus, transfer system, attribute linkage method and computer readable medium
JP2019128640A (ja) * 2018-01-22 2019-08-01 ヤフー株式会社 提供装置、提供方法及び提供プログラム
WO2020240630A1 (ja) * 2019-05-24 2020-12-03 三菱電機株式会社 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
JPWO2020240630A1 (ja) * 2019-05-24 2021-10-21 三菱電機株式会社 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
CN113853764A (zh) * 2019-05-24 2021-12-28 三菱电机株式会社 重加密装置、重加密方法、重加密程序和加密系统
US11824638B2 (en) 2019-05-24 2023-11-21 Mitsubishi Electric Corporation Re-encryption device, method and computer readable medium to change the access range for ciphertext
WO2024130749A1 (en) * 2022-12-24 2024-06-27 Huawei Technologies Co., Ltd. Methods, apparatuses, non-transitory computer-readable storage devices, and systems for data-usage control using attribute-based encryption

Also Published As

Publication number Publication date
JP6115573B2 (ja) 2017-04-19
JPWO2014083784A1 (ja) 2017-01-05

Similar Documents

Publication Publication Date Title
JP6115573B2 (ja) 暗号システム、データ保存システム、それに用いる装置および方法
Liang et al. Attribute based proxy re-encryption with delegating capabilities
Do et al. Attribute based proxy re-encryption for data confidentiality in cloud computing environments
CN102624522B (zh) 一种基于文件属性的密钥加密方法
US7657037B2 (en) Apparatus and method for identity-based encryption within a conventional public-key infrastructure
US9197410B2 (en) Key management system
Chung et al. A Study of Attribute-based Proxy Re-encryption Scheme in Cloud Environments.
JP5361920B2 (ja) ファイルサーバシステム
US20150067330A1 (en) Method and system for network data access
CN104735070B (zh) 一种通用的异构加密云间的数据共享方法
Jin et al. A secure and lightweight data access control scheme for mobile cloud computing
WO2014034018A1 (ja) 再暗号化システム、再暗号化方法および再暗号化プログラム
JP5047638B2 (ja) 暗号文復号権委譲システム
WO2014010202A1 (ja) 暗号化統計処理システム、復号システム、鍵生成装置、プロキシ装置、暗号化統計データ生成装置、暗号化統計処理方法、および、暗号化統計処理プログラム
CN106713349B (zh) 一种能抵抗选择密文攻击的群组间代理重加密方法
Lv et al. A secure and efficient revocation scheme for fine-grained access control in cloud storage
Weber A hybrid attribute-based encryption technique supporting expressive policies and dynamic attributes
Chaudhari et al. A review on attribute based encryption
JP2008176040A (ja) 鍵管理方法、鍵生成方法、暗号処理方法、復号権限委譲方法、通信ネットワークシステム
Modi et al. A Secure Communication Model for Expressive Access Control Using CP-ABE.
JP2001125481A (ja) 暗号通信端末、暗号通信センター装置及び暗号通信システム並びに記録媒体
Parit et al. Ciphertext Policy Attribute Based Encryption
Basavarajegowda et al. Enhanced CP-ABE with RSA for Secure and Revocable Data Transmission of Big Data in Cloud.
JP2018107625A (ja) データ配信システム、データ生成装置、仲介装置、データ配信方法、及びプログラム
Li et al. Research on node authorization trusted update mechanism based on agent re-encryption in IoT cloud

Legal Events

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

Ref document number: 13858581

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014549787

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13858581

Country of ref document: EP

Kind code of ref document: A1