WO2024004116A1 - 鍵発行装置、情報処理システム、方法及びコンピュータ可読媒体 - Google Patents

鍵発行装置、情報処理システム、方法及びコンピュータ可読媒体 Download PDF

Info

Publication number
WO2024004116A1
WO2024004116A1 PCT/JP2022/026138 JP2022026138W WO2024004116A1 WO 2024004116 A1 WO2024004116 A1 WO 2024004116A1 JP 2022026138 W JP2022026138 W JP 2022026138W WO 2024004116 A1 WO2024004116 A1 WO 2024004116A1
Authority
WO
WIPO (PCT)
Prior art keywords
random number
key
distributed
share
user
Prior art date
Application number
PCT/JP2022/026138
Other languages
English (en)
French (fr)
Inventor
光 土田
春菜 福田
健吾 森
寿幸 一色
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to PCT/JP2022/026138 priority Critical patent/WO2024004116A1/ja
Publication of WO2024004116A1 publication Critical patent/WO2024004116A1/ja

Links

Images

Classifications

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

Definitions

  • the present disclosure relates to a key issuing device, an information processing system, a method, and a computer-readable medium.
  • Non-Patent Document 1 discloses a technique of ID-based proxy re-encryption scheme (IB-PRE).
  • Non-Patent Document 2 and Non-Patent Document 3 disclose techniques related to ID-based encryption.
  • Non-Patent Document 4 and Non-Patent Document 5 disclose techniques related to the present disclosure.
  • ID-based proxy re-encryption a master public key and a master private key are issued by a key issuing authority.
  • a master private key and a user's ID can be used to generate a private key for that user.
  • the user's ID is publicly known. Therefore, a person who has acquired the master private key can easily generate a user's private key. Therefore, in the technology according to Non-Patent Document 1, if the key issuing authority has malicious intent, there is a risk that all the ciphertexts in the system will be decrypted using the master private key.
  • An object of the present disclosure is to provide a key issuing device, system, method, and program that can prevent a sentence from being decrypted.
  • a key issuing device uses a distributed master key generation means that generates at least a distributed master private key distributed among a plurality of key issuing devices, and the distributed master private key and user identification information.
  • the distributed master key generation means includes a distributed user private key generation means for generating a distributed user private key, and a transmission means for transmitting the distributed user private key to the user device of the user, Generate the distributed master private key based on the share of the first random number in the state in which the second random number to be kept secret is distributed, and the share in the second random number in the state in which the second random number to be kept secret is distributed, and generate the distributed user private key.
  • the means includes a share of a third random number in which a third random number that is kept confidential and is an element of the user private key is distributed, and a share of a fourth random number in which a fourth random number to be kept confidential is distributed.
  • the information processing system includes a plurality of key issuing devices, a plurality of user devices, and a re-encryption device, and each of the plurality of key issuing devices is distributed among the plurality of key issuing devices.
  • distributed master key generating means for generating at least a distributed master private key in a state in which the user's user private key is distributed using the distributed master private key and the user's identification information; a distributed user private key generation means for generating a distributed user private key, wherein the user private key is obtained using the distributed user private keys obtained from a plurality of key issuing devices; transmitting means for transmitting to the user device of the user, and the distributed master key generating means is configured to generate a share of the first random number in a state in which the first random number to be concealed is distributed, and a second random number to be concealed.
  • the distributed master secret key is generated based on the second random number share in which the random numbers are distributed, and the distributed user private key generation means generates a third secret key that is kept secret and becomes an element of the user private key.
  • the user generates the distributed user private key based on the obtained product, and each of the plurality of user devices generates the user private key using the distributed user private key obtained from the plurality of key issuing devices.
  • the re-encryption method includes a private key generation means, a re-encryption key generation means for generating a re-encryption key using the user private key, and a decryption means for decrypting the ciphertext to obtain the plaintext.
  • the device uses the re-encryption key to enable a second user device of the plurality of user devices to decrypt a ciphertext that can be decrypted by a first user device of the plurality of user devices.
  • the decryption means of the second user device re-encrypts the ciphertext that can be decrypted with the user private key related to the first user device without decrypting it, and the decryption means of the second user device decrypts the user private key related to the second user device. is used to decrypt the re-encrypted ciphertext.
  • the key issuance method includes a share of the first random number in which the first random number to be kept secret is distributed, and a share of the second random number in which the second random number to be concealed is distributed. at least generate a distributed master private key distributed among a plurality of key issuing devices based on the shared information, and the user private key of the user is distributed using the distributed master private key and identification information of the user.
  • the fourth the distributed user private key is generated based on the product obtained as a result of the multiplication, and the distributed user private key is transmitted to the user device of the user.
  • a share of the first random number in which the first random number to be concealed is distributed and a share of the second random number to be concealed is distributed by each of the plurality of key issuing devices.
  • the share of the third random number in which the third random number that is concealed and is an element of the user private key is distributed, and the share of the fourth random number in which the fourth random number to be concealed is distributed.
  • Obtain shares of random numbers and obtain a share of the first random number that is an element of the distributed master private key, a share of the second random number that is an element of the distributed master private key, and a share of the third random number that is an element of the distributed master private key. multiplying each by a share of the fourth random number, generating the distributed user private key based on the product obtained as a result of the multiplication, and transmitting the distributed user private key to the user device of the user.
  • the user device generates the user private key using the distributed user private keys acquired from the plurality of key issuing devices, generates a re-encryption key using the user private key, and decrypts the ciphertext.
  • the re-encryption device uses the re-encryption key to enable the second user device to decrypt the ciphertext that can be decrypted by the first user device.
  • the ciphertext that can be decrypted with the user private key related to the user device is re-encrypted without being decrypted, and the second user device uses the user private key related to the second user device to re-encrypt the ciphertext.
  • the encoded ciphertext is decrypted.
  • the program according to the present disclosure includes a first random number share in which the first random number to be concealed is distributed, and a second random number share in which the second random number to be concealed is distributed.
  • a key issuance that can prevent a ciphertext from being decrypted by a key issuing authority even if the key issuing authority has malicious intent.
  • Devices, systems, methods and programs can be provided.
  • FIG. 2 is a diagram for explaining general public key cryptography.
  • FIG. 2 is a diagram for explaining ID-based encryption.
  • FIG. 3 is a diagram for explaining general proxy re-encryption.
  • FIG. 3 is a diagram for explaining ID-based proxy re-encryption.
  • 1 is a diagram showing the configuration of an information processing system according to a first embodiment;
  • FIG. 1 is a diagram showing the configuration of a key issuing device according to a first embodiment;
  • FIG. 1 is a diagram showing a configuration of a user device according to Embodiment 1.
  • FIG. 1 is a diagram showing the configuration of a re-encryption device according to a first embodiment;
  • FIG. 3 is a flowchart showing processing executed by the information processing system according to the first embodiment.
  • FIG. 3 is a flowchart showing processing executed by the information processing system according to the first embodiment.
  • 3 is a flowchart showing processing executed by the information processing system according to the first embodiment.
  • 3 is a flowchart showing processing executed by the information processing system according to the first embodiment.
  • FIG. 3 is a diagram showing the configuration of a key issuing device according to a second embodiment.
  • FIG. 1 is a block diagram schematically showing an example of a hardware configuration of a calculation processing device that can implement the device and system according to each embodiment.
  • FIGS. 1 to 4 are diagrams for explaining ID-based proxy re-encryption.
  • FIG. 1 is a diagram for explaining general public key cryptography.
  • the ciphertext creator owns the public keys of users A to C.
  • the ciphertext creator creates ciphertext Ca with user A's public key, creates ciphertext Cb with user B's public key, and creates ciphertext Cc with user C's public key.
  • User A owns User A's private key.
  • User A can decrypt ciphertext Ca using user A's private key.
  • user B owns user B's private key.
  • User B can decrypt ciphertext Cb using user B's private key.
  • User C owns User C's private key.
  • User C can decrypt ciphertext Cc using user C's private key.
  • FIG. 2 is a diagram for explaining ID-based encryption (IBE).
  • ID-based cryptography the key issuance period generates a master public key and a master private key. Then, the key issuing authority obtains the private keys of each of the users A to C by embedding each user's ID (actually, a hash value of the ID, etc.) in the master private key.
  • the user's ID (Identification: identification information) may be, for example, the user's email address.
  • the key issuing authority distributes the user private keys of users A to C to users A to C, respectively.
  • the key issuing authority also distributes the master public key to the ciphertext creator.
  • the ciphertext creator can obtain the public keys of each of users A to C by embedding the user ID in the obtained master public key.
  • the ciphertext creator creates ciphertext Ca with user A's public key, creates ciphertext Cb with user B's public key, and creates ciphertext Cc with user C's public key in the same manner as in FIG. Create. Then, the user A decrypts the ciphertext Ca using the user A's private key generated from the master private key by the key issuing authority. Further, user B decrypts the ciphertext Cb using the user B's private key generated from the master private key. User C decrypts the ciphertext Cc using the user C's private key generated from the master private key by the key issuing authority. ID-based cryptography provides the following advantages compared to the public key cryptography of FIG.
  • an arbitrary character string (email address, etc.) can be embedded in a user key (public key and private key) or ciphertext as a user ID. Further, a ciphertext can be created in advance for a user who does not exist in the system (such as the user D who does not exist in the example of FIG. 2). Furthermore, the public key certificate that was necessary in the case of FIG. 1 is no longer necessary.
  • FIG. 3 is a diagram for explaining general proxy re-encryption (PRE).
  • Proxy re-encryption is a technology that allows you to change the decryption destination while encrypting information on a server such as a cloud environment.
  • a conversion key (re-encryption key) necessary for re-encryption is generated using the public key of the user of the conversion destination (converted decryption destination) and the private key of the conversion-source user. Can be done.
  • user A conversion source
  • D conversion destination
  • the conversion keys K A ⁇ B , K A ⁇ C , K A ⁇ D transform the ciphertext Ca that can be decrypted with the private key of user A into the ciphertexts Cb, Cc, and ciphertexts that can be decrypted with the private keys of users B to D, respectively.
  • This is a key (re-encryption key) for converting to Cd.
  • the agent corresponds to, for example, a proxy server or a gateway server.
  • the agent re-encrypts the ciphertext, for example, when the network environment to which the ciphertext is made public changes.
  • the agent re-encrypts the ciphertext Ca that can be decrypted with the user A's private key using each conversion key without decrypting the ciphertext Ca.
  • the ciphertext Ca is converted to the ciphertext Cb that can be decrypted with the user B's private key using the conversion key KA ⁇ B .
  • ciphertext Ca is converted to ciphertexts Cc and Cd that can be decrypted with the private keys of users C and D, respectively, using conversion keys K A ⁇ C and K A ⁇ D .
  • Users B to D can each decrypt the ciphertexts Cb, Cc, and Cd with their own private keys. Note that if user A does not wish to disclose the ciphertext Ca to user D, user A need not generate the conversion key K A ⁇ D . Thereby, the ciphertext Ca remains hidden from the user D.
  • FIG. 4 is a diagram for explaining ID-based proxy re-encryption (IB-PRE).
  • ID-based proxy re-encryption performs proxy re-encryption on an ID basis.
  • the key issuing authority generates a master public key and a master private key. Then, the key issuing authority obtains the private keys of each of the users A to D by embedding each user's ID in the master private key. Further, in the example of FIG. 4, the key issuing authority distributes the master public key to user A. User A generates a conversion key (re-encryption key) using the master public key and the conversion source private key.
  • user A uses the IDs of users B to D to obtain public keys of users B to D. Then, as in the case of FIG. 3, user A generates conversion keys K A ⁇ B , K A ⁇ C , K A ⁇ D using user A's private key and the public keys of users B to D. do.
  • user A sends each conversion key to the agent.
  • the agent re-encrypts the ciphertext Ca that can be decrypted with the user A's private key using each conversion key without decrypting the ciphertext Ca.
  • the ciphertext Ca is converted into the ciphertexts Cb, Cc, and Cd.
  • users B to D can each decrypt the ciphertexts Cb, Cc, and Cd with their own private keys.
  • Non-Patent Document 1 discloses a technology for ID-based proxy re-encryption.
  • the technology according to Non-Patent Document 1 can achieve key private, in which information regarding the ID of the conversion destination is not leaked from the conversion key.
  • Non-Patent Document 1 realizes a re-encryption function for so-called exponent-inversion type IBE among the three classifications of elliptic curve-based IBE.
  • the Kasahara-Sakai method is an exponent-inversion type IBE method, but it should be noted that the method based on Non-Patent Document 1 is not the Kasahara-Sakai method.
  • Non-Patent Document 1 uses symmetric pairing and the q-DDHE (Decisional Diffie-Hellman Exponent) assumption. Use.
  • Non-Patent Document 2 and Non-Patent Document 3 propose DKG for the Kasahara-Sakai method.
  • Non-Patent Document 2 and Non-Patent Document 3 are technologies related to ID-based encryption (IBE), and are not related to ID-based proxy re-encryption (IB-PRE). Therefore, the format of the private key according to Non-Patent Document 2 and Non-Patent Document 3 is different from the format of the private key related to IB-PRE as related to Non-Patent Document 1.
  • Shamir's secret sharing method is a type of (t,n) threshold secret sharing.
  • n is the total number of participants P i and t ( ⁇ n) is the threshold value.
  • f is a polynomial for polynomial completion.
  • s ⁇ Z p is a value to be kept secret (secret value).
  • Z p is a set of values from 0 to p-1.
  • [s] can also be said to indicate a state in which the secret value s is distributed to all participants.
  • [s] i indicates the value (distributed value) that participant P i has when the secret value s is distributed.
  • share [s] will be used when s indicates the variance value [s] i , ... [s] n , which is distributed among each participant, without distinguishing between them. There is.
  • the secret value is restored as follows. That is, the reconstructing party receives t [s] i from each participant P i . Then, the reconstructing party reconstructs the secret value s using the following equation (1) by polynomial completion. ...(1)
  • ⁇ i is a Lagrangian coefficient and is expressed by the following equation (2). ...(2)
  • formula (3) is expressed as "[[s]]".
  • participant P i may keep ⁇ i [s] i as a secret and redistribute it as [[ ⁇ i [s] i ]].
  • ⁇ [[ ⁇ i [s] i ]] the threshold value and the number of participants may be changed from t and n to t' and n', respectively. It should be noted that this may be achieved under the assumption that the old share before the change is safely deleted.
  • Mult() can be realized in various ways.
  • Mult() may be realized by the method shown in Non-Patent Document 4. Note that when implementing Mult(), it is necessary to communicate between participants. Further, for example, Mult() may be realized by the following steps, but is not limited thereto.
  • Step A2 By calculating the following equation (8), [c], which is the result of multiplication of [a] and [b], is obtained. ...(8)
  • pairing (bilinear mapping) is used.
  • calculations are performed under pairing conditions as described below.
  • G and GT be multiplicative cyclic groups of order p (p is a sufficiently large prime number).
  • p is a sufficiently large prime number.
  • g ⁇ G is a generator of G.
  • g is, for example, a rational point on an elliptic curve, but is not limited thereto.
  • G is a set composed of generators that are, for example, rational points on an elliptic curve, but is not limited thereto.
  • GT is, for example, a set of elements of an extension field, but is not limited thereto.
  • the bilinear mapping e: G ⁇ G ⁇ G T satisfies the following property.
  • ⁇ Bilinearity: e (g 1 a , g 2 b ) e (g 1 , g 2 ) ab
  • a and b are arbitrary values randomly selected from Z p * .
  • Z p * is a set of values from 1 to p-1.
  • e(g 1 , g 2 ) is an element of the multiplicative cyclic group G T of order p.
  • the key issuing authority cannot directly pass s to the user in order to prevent leakage of the master private key, but the user cannot decrypt the ciphertext unless it passes some value related to s. Therefore, the key issuing authority passes, for example, a value in the form of gs to the user as a private key. Note that it is not possible to calculate s from g s at this time.
  • FIG. 5 is a diagram showing the configuration of the information processing system 50 according to the first embodiment.
  • the information processing system 50 includes a plurality of key issuing devices 100-1 to 100-n (n is an integer of 2 or more), an encryption device 60, a plurality of user devices 200, and a re-encryption device 300.
  • the key issuing device 100, the encryption device 60, the user device 200, and the re-encryption device 300 are connected to each other via wire or wirelessly so that they can communicate with each other.
  • Each device configuring the information processing system 50 can be realized by, for example, a computer.
  • the information processing system 50 implements the DKG in the IB-PRE using the above-mentioned devices. The details will be described later.
  • the information processing system 50 can also function as a key generation system (key issuing system) that generates public keys and private keys.
  • the key issuing device 100 may be managed by the key issuing authority mentioned above.
  • the key issuing device 100 is configured to generate at least a distributed master private key, and to generate distributed user private keys in which user private keys are distributed, using the distributed master private key and user identification information. There is. Then, the key issuing device 100 transmits the distributed user private key to the user's user device.
  • the distributed master secret key can also be said to be a master secret key in a virtually distributed state. Note that in this embodiment, a master secret key is not actually generated.
  • the distributed master private key is distributed among a plurality of key issuing devices 100, and includes elements for generating distributed user private keys. Further, the distributed user private key is distributed to a plurality of key issuing devices 100, and the user private key is configured to be obtained using the distributed user private key obtained from the plurality of key issuing devices 100. . The details will be described later.
  • the encryption device 60 is configured to create ciphertext. Specifically, the encryption device 60 creates a ciphertext C by encrypting the plaintext m. Note that the encryption device 60 may be integrated with the user device 200. In this case, for example, user A's user device 200A may function as the encryption device 60.
  • the user device 200 may be managed by the user described above.
  • user devices 200A-200D may be managed by users AD, respectively.
  • the number of user devices 200 is arbitrary.
  • Each of the user devices 200 is configured to use the distributed user private keys obtained from the plurality of key issuing devices 100 to generate a user private key of a user who manages the user device 200.
  • the user device 200 is configured to generate a re-encryption key (conversion key) using the user private key.
  • the user device 200 is configured to decrypt the ciphertext and obtain the plaintext using the user private key related to the user device 200. The details will be described later.
  • the re-encryption device 300 may be managed by the agent mentioned above.
  • the re-encryption device 300 may be configured with the above-described proxy server or gateway server, for example.
  • the re-encryption device 300 is configured to use the re-encryption key to re-encrypt the ciphertext that can be decrypted with the user private key of the first user device of the plurality of user devices 200 without decrypting it. has been done.
  • the re-encryption device 300 uses the re-encryption key to convert ciphertext that can be decrypted with the user private key related to the first user device into ciphertext that can be decrypted with the user private key related to the second user device. Convert.
  • this re-encryption key is a conversion key for making the ciphertext decryptable by the first user device decryptable by the second user device of the plurality of user devices 200.
  • the second user device decrypts the re-encrypted ciphertext using the user private key related to the second user device. The details will be described later.
  • user A's user device 200A is the first user device
  • user B's user device 200B is the second user device.
  • the re-encryption device 300 converts (re-encrypts) the ciphertext Ca into the ciphertext Cb using the re-encryption key KA ⁇ B .
  • the user device 200B decrypts the re-encrypted ciphertext Cb using the user B's user private key.
  • FIG. 6 is a diagram showing the configuration of the key issuing device 100 according to the first embodiment.
  • the key issuing device 100 includes a random number generation section 102, a distribution section 104, a random number share acquisition section 106, a share multiplication section 108, a restoration section 110, and a share storage section 112 as components.
  • the key issuing device 100 also includes a distributed master key generation section 120, a master public key generation section 130, a distributed user private key generation section 140, and a transmission section 150 as components.
  • the random number generation unit 102 may be configured as a subroutine called by the distributed master key generation unit 120, the master public key generation unit 130, and the distributed user private key generation unit 140.
  • the distribution unit 104, the random number share acquisition unit 106, the share multiplication unit 108, the restoration unit 110, and the share storage unit 112 are connected to the distributed master key generation unit 120, the master public key generation unit 130, and the distributed user private key generation unit 140. It may also be configured as a called subroutine.
  • the random number generation unit 102 has a function as a random number generation means.
  • the dispersion unit 104 has a function as a dispersion means.
  • the random number share acquisition unit 106 has a function as a random number share acquisition means.
  • the share multiplier 108 has a function as a share multiplier.
  • the restoring unit 110 has a function as a restoring means.
  • the distributed master key generation unit 120 has a function as a distributed master key generation means.
  • the master public key generation unit 130 has a function as a master public key generation means.
  • the distributed user private key generation unit 140 has a function as a distributed user private key generation means.
  • the transmitter 150 has a function as a transmitter.
  • the random number generation unit 102 is configured to generate random numbers. Further, the random number generation unit 102 generates a random number element that becomes an element of a random number to be kept secret.
  • the distribution unit 104 is configured to perform secret sharing on random numbers (random number elements). The distribution unit 104 may obtain the share (distribution value) of the random number elements by performing secret sharing using, for example, the function shown by the above-mentioned formula (4). The distribution unit 104 transmits the acquired random number element share (distribution value) to other key issuing devices 100.
  • the random number share acquisition unit 106 is configured to acquire a random number share using shares of a plurality of random number elements received from a plurality of key issuing devices 100.
  • the random number share acquisition unit 106 may acquire the random number share by summing the shares (variance values) of the plurality of random number elements received from the plurality of key issuing devices 100.
  • the share multiplication unit 108 is configured to perform multiplication between shares.
  • the share multiplication unit 108 may perform multiplication between shares using, for example, the function shown in equation (6) above.
  • the restoring unit 110 performs restoring on a share of a certain value (secret value) and obtains the value.
  • the restoration unit 110 may perform the restoration using, for example, the function expressed by the above-mentioned equation (5).
  • the share storage unit 112 stores shares (variance values) acquired in the process of calculations regarding shares.
  • the share storage unit 112 stores shares (dispersion values) acquired in the processes of S120 to S140, which will be described later.
  • the share storage unit 112 may temporarily store shares (dispersion values).
  • the distributed master key generation unit 120 is configured to at least generate distributed master secret keys distributed among the plurality of key issuing devices 100.
  • the distributed master key generation unit 120 may generate distributed master public keys that are distributed among a plurality of key issuing devices 100.
  • the details will be described later.
  • the master public key generation unit 130 is configured to generate a master public key.
  • the distributed user private key generation unit 140 is configured to generate a distributed user private key using the distributed master private key and user identification information. The details will be described later.
  • the transmitter 150 is configured to transmit the distributed user private key to the user device 200 of the user corresponding to the above identification information.
  • FIG. 7 is a diagram showing the configuration of the user device 200 according to the first embodiment.
  • the user device 200 includes a user private key generation section 210, a user private key storage section 220, a re-encryption key generation section 230, and a decryption section 240.
  • the user secret key generation unit 210 has a function as a user secret key generation means.
  • the user secret key storage unit 220 has a function as a user secret key storage means.
  • the re-encryption key generation section 230 has a function as a re-encryption key generation means.
  • the decoding unit 240 has a function as a decoding means.
  • the user private key generation unit 210 is configured to generate a user private key of a user who manages the user device 200 using distributed user private keys obtained from a plurality of key issuing devices 100. The details will be described later.
  • the user private key storage unit 220 is configured to store the generated user private key.
  • the re-encryption key generation unit 230 is configured to generate a re-encryption key using the user private key.
  • the re-encryption key generation unit 230 of the user device 200A uses the user A's user secret key K A to generate re-encryption keys (conversion keys) K A ⁇ B , K A ⁇ C , K A ⁇ D. generate.
  • the details will be described later.
  • the decryption unit 240 is configured to decrypt the ciphertext and obtain the plaintext using the user private key related to the user device 200. The details will be described later.
  • FIG. 8 is a diagram showing the configuration of the re-encryption device 300 according to the first embodiment.
  • the re-encryption device 300 includes a re-encryption key storage section 310, a ciphertext storage section 320, and a re-encryption section 330.
  • the re-encryption key storage unit 310 has a function as a re-encryption key storage means.
  • the ciphertext storage unit 320 has a function as a ciphertext storage means.
  • the re-encryption unit 330 has a function as a re-encryption means.
  • the re-encryption key storage unit 310 stores the re-encryption key generated by the user device 200.
  • the ciphertext storage unit 320 stores the ciphertext generated by the encryption device 60.
  • the re-encryption unit 330 is configured to use the re-encryption key to re-encrypt the ciphertext that can be decrypted with the user private key regarding the first user device of the plurality of user devices 200 without decrypting it. has been done.
  • the re-encryption unit 330 uses the re-encryption key to convert a ciphertext that can be decrypted with the user secret key related to the first user device into a ciphertext that can be decrypted with the user secret key related to the second user device. Convert (re-encrypt). The details will be described later.
  • FIG. 9 to 12 are flowcharts showing processes executed by the information processing system 50 according to the first embodiment.
  • FIG. 9 shows an information processing method (key issuing method, key generating method) executed by the information processing system 50.
  • S120 to S160 indicate a key issuing method (key generation method) implemented by the key issuing device 100.
  • the information processing system 50 sets the global parameter gparam (step S102).
  • the information processing system 50 performs "Global Setup".
  • Global parameters gparam may be exposed within information handling system 50. Note that the setting of the global parameters may be performed by any of the key issuing devices 100, or may be performed by a device (not shown) managed by a standards organization.
  • p is a prime number.
  • G is a multiplicative cyclic group of order p.
  • e is a bilinear mapping, e:G ⁇ G ⁇ GT .
  • g is a generator of G, and g ⁇ G.
  • H is a hash function, H:G T ⁇ Z p .
  • h which is an element of G, is set as a global parameter (public parameter), but in this embodiment, h is not disclosed. This is because if h is made public, an attacker may be able to obtain the plaintext from the ciphertext.
  • the distributed master key generation unit 120 of each of the plurality of key issuing devices 100 generates a distributed master key (step S120).
  • the key issuing device 100 performs "Distribute Setup".
  • mpk i is the distributed master public key.
  • msk i is a distributed master secret key. That is, the distributed master key (mpk i , msk i ) is a set of the distributed master public key mpk i and the distributed master private key msk i .
  • each of the plurality of key issuing devices 100-1 to 100-n generating a distributed master key
  • the distributed master public keys mpk 1 to mpk n are distributed among a plurality of key issuing devices 100.
  • distributed master secret keys msk 1 to msk n are distributed among a plurality of key issuing devices 100.
  • the plurality of key issuing devices 100-1 to 100-n cooperate to generate distributed master keys ⁇ (mpk i , msk i ) ⁇ .
  • the distributed master key generation unit 120 generates a random number element (step S122). That is, the distributed master key generation unit 120 of the key issuing device 100-i generates random number elements ⁇ i and ⁇ i . Note that the distributed master key generation unit 120 may perform the process of S122 using the random number generation unit 102 described above. Here, ⁇ i , ⁇ i ⁇ Z p . Further, the random number element ⁇ i (first random number element) becomes an element of the random number ⁇ (first random number). Further, the random number element ⁇ i (second random number element) becomes an element of the random number ⁇ (second random number). Note that the values of the random numbers ⁇ and ⁇ are kept secret from each key issuing device 100, that is, not known to each key issuing device 100.
  • the distributed master key generation unit 120 secretly shares the random number elements (step S124). That is, the distributed master key generation unit 120 of the key issuing device 100-i shares the secrets of the random number elements ⁇ i and ⁇ i . Note that the distributed master key generation unit 120 may perform the process of S124 using the above-mentioned distribution unit 104.
  • the distributed master key generation unit 120 performs secret sharing on the random number elements ⁇ i and ⁇ i , and calculates the share [ ⁇ i ] (distribution value) of the random number element ⁇ i and the share of the random number element ⁇ i obtained by the secret sharing. [ ⁇ i ] (dispersion value) is transmitted to other key issuing devices 100.
  • the distributed master key generation unit 120 of the key issuing device 100-i generates the share [ ⁇ i ] (dispersion value) of the random number element ⁇ i using the following equation (9). ...(9)
  • the distributed master key generation unit 120 of the key issuing device 100-i generates the share [ ⁇ i ] (dispersion value) of the random number element ⁇ i using the following equation (10). ...(10)
  • the key issuing device 100-i receives [ ⁇ 1 ] i , . . . , [ ⁇ n ] i and [ ⁇ 1 ] i , . . . , [ ⁇ n ] from the plurality of key issuing devices 100. Get i .
  • the distributed master key generation unit 120 obtains shares [ ⁇ ] and [ ⁇ ] (distribution values) of random numbers ⁇ and ⁇ (step S126).
  • the distributed master key generation unit 120 may perform the process of S126 using the random number share acquisition unit 106 described above.
  • the distributed master key generation unit 120 obtains the share [ ⁇ ] (dispersion value) of the random number ⁇ (first random number) using the share (dispersion value) of the first random number element obtained from the plurality of key issuing devices 100. do.
  • the distributed master key generation unit 120 uses the shares (distribution values) of the second random number elements obtained from the plurality of key issuing devices 100 to generate a share [ ⁇ ] (distribution value) of the random number ⁇ (second random number). ) to obtain.
  • the distributed master key generation unit 120 totals the shares (variance values) of the first random number elements obtained from the plurality of key issuing devices 100, and calculates the share [ ⁇ ] (variance value). Similarly, the distributed master key generation unit 120 totals the shares (variance values) of the second random number elements obtained from the plurality of key issuing devices 100, and calculates the share [ ⁇ ]( variance value).
  • the distributed master key generation unit 120 generates shares [ ⁇ ] and [ ⁇ ] (distribution values) using the following equations (11) and (12), respectively. ...(11) ...(12)
  • the distributed master key generation unit 120 generates a distributed master key (step S128). Specifically, the distributed master key generation unit 120 generates a distributed master key based on the acquired shares [ ⁇ ] and [ ⁇ ] (distribution values).
  • the distributed master key generation unit 120 of the key issuing device 100- i generates distributed master keys (mpk i , msk i ). That is, the distributed master key generation unit 120 generates a plurality of key issuing devices 100 based on the share [ ⁇ ] (distribution value) of the first random number ⁇ and the share [ ⁇ ] (distribution value) of the second random number ⁇ .
  • the distributed master key generation unit 120 also generates a share [ ⁇ ] (dispersion value) of the first random number in which the first random number ⁇ is distributed and a second share [ ⁇ ] (dispersion value) in which the second random number ⁇ is distributed.
  • a distributed master secret key in a distributed state is generated based on the random number share [ ⁇ ] (distribution value).
  • the distributed master key generation unit 120 of the key issuing device 100-i generates the distributed master public key mpk i using the following equation (15). ...(15)
  • the distributed master key generation unit 120 of the key issuing device 100-i generates the distributed master private key msk i using the following equation (16). ...(16)
  • random numbers ⁇ are sent to multiple key issuing devices 100-1 to 100-n without informing any key issuing device 100 (key issuing authority) of the values of random numbers ⁇ and ⁇ .
  • can be distributed. That is, as in the example of FIG. 4, when keys are not generated in a distributed manner, a single key issuing authority (key issuing device) only needs to generate the random numbers ⁇ and ⁇ . On the other hand, when keys are generated in a distributed manner, no key issuing device 100 (key issuing authority) must know the random numbers ⁇ and ⁇ in order to achieve the purpose of suppressing leakage of the private key.
  • each key issuing device 100 uses the share (dispersion value) of the random numbers ⁇ and ⁇ to create a distributed master. A key can be generated.
  • the master public key generation unit 130 of each of the plurality of key issuing devices 100 generates a master public key (step S130).
  • the key issuing device 100 performs "Distribute PKG (Public Key Generation)".
  • n generates a master public key mpk using the global parameter gparam and the set of distributed master public keys ⁇ mpk i ⁇ . That is, the master public key generation unit 130 generates a master public key based on the distributed master public keys obtained from the plurality of key issuing devices 100-1 to 100-n.
  • FIG. 11 is a flowchart showing the process of S130 in FIG. FIG. 11 shows the processing of the master public key generation unit 130 according to the first embodiment.
  • the master public key generation unit 130 generates the master public key mpk using the following equations (17) and (18). Note that through such processing, the same master public key can be generated in each key issuing device 100. In this way, by performing restoration using the exponent parts of the powers of g and the powers of e (g, g), any key issuing device 100 (key issuing institution) can publish the master without knowing the random numbers ⁇ and ⁇ .
  • the master public key generation unit 130 can generate g ⁇ by acquiring t or more [ ⁇ ] i (variance value of ⁇ ).
  • the master public key generation unit 130 can generate e(g,g) ⁇ by acquiring t or more [ ⁇ ] i (variance value of ⁇ ).
  • the distributed user private key generation unit 140 of each of the plurality of key issuing devices 100 generates a distributed user private key (step S140).
  • the key issuing device 100 performs "Distribute KeyGen (Key Generation)."
  • the key issuing device 100-i corresponds to the identification information ID using the global parameter gparam, the set of distributed master private keys ⁇ msk i ⁇ , and the ID that is the user identification information.
  • a distributed user private key is generated in which the user private keys of the users who are to be accessed are distributed.
  • the distributed user private key generation unit 140 generates the distributed user private key dk based on the distributed master private key ⁇ msk i ⁇ acquired from the plurality of key issuing devices 100-1 to 100-n and the user identification information ID. Generate ID,i .
  • the distributed user secret keys dk ID,1 , . . . , dk ID,n are distributed among a plurality of key issuing devices 100.
  • the identification information ID is, for example, an e-mail address, the user's identification information ID may be made public.
  • FIG. 12 is a flowchart showing the process of S140 in FIG. FIG. 12 shows the processing of the distributed user private key generation unit 140 according to the first embodiment.
  • the distributed user private key generation unit 140 generates a random number element (step S142). That is, the distributed user private key generation unit 140 of the key issuing device 100-i generates random number elements r ID,i , w i . Note that the distributed user private key generation unit 140 may perform the process of S142 using the random number generation unit 102 described above. Here, r ID,i , w i ⁇ Z p . Furthermore, the random number element r ID,i (third random number element) becomes an element of the random number r ID (third random number).
  • the random number element w i (fourth random number element) becomes an element of the random number w (fourth random number). It should be noted that the values of the random numbers r ID and w are kept secret from each key issuing device 100, that is, not known to each key issuing device 100.
  • the distributed user private key generation unit 140 secretly shares the random number elements (step S144). That is, the distributed user private key generation unit 140 of the key issuing device 100-i secretly shares the random number elements r ID,i , w i . Note that the distributed user private key generation unit 140 may perform the process of S144 using the above-mentioned distribution unit 104.
  • the distributed user private key generation unit 140 performs secret sharing on the random number elements r ID,i , w i , and calculates the share [r ID,i ] (distribution value) of the random number element r ID,i obtained by secret sharing. and the share [w i ] (dispersion value) of the random number element w i to other key issuing devices 100.
  • the distributed user private key generation unit 140 of the key issuing device 100-i generates the share [r ID,i ] (distributed value) of the random number element r ID ,i using the following equation (20). . ...(20)
  • the distributed user private key generation unit 140 of the key issuing device 100-i generates the share [w i ] (dispersion value) of the random number element w i using the following equation (21). ...(21)
  • the key issuing device 100-i receives [r ID,1 ] i , ..., [r ID,n ] i and [w 1 ] i , ..., from the plurality of key issuing devices 100. [ wn ] Obtain i .
  • the distributed user private key generation unit 140 obtains the shares [r ID ], [w] (distribution values) of the random numbers r ID , w (step S146).
  • the distributed user private key generation unit 140 may perform the process of S146 using the random number share acquisition unit 106 described above.
  • the distributed user private key generation unit 140 generates a share [r ID ] (distribution value) of the random number r ID (third random number) using the share (distribution value) of the third random number element obtained from the plurality of key issuing devices 100. ) to obtain.
  • the distributed user private key generation unit 140 uses the share (dispersion value) of the fourth random number element obtained from the plurality of key issuing devices 100 to generate a share [w] (dispersion value) of the random number w (fourth random number). value).
  • the distributed user private key generation unit 140 totals the shares (variance values) of the third random number elements obtained from the plurality of key issuing devices 100, and calculates the share of the random number r ID (third random number). Obtain [r ID ] (dispersion value). Similarly, the distributed user private key generation unit 140 totals the shares (variance values) of the fourth random number elements obtained from the plurality of key issuing devices 100, and calculates the share [w] of the random number w (fourth random number). (variance value).
  • the distributed user private key generation unit 140 generates shares [r ID ] and [w] (distribution values) using the following equations (22) and (23), respectively. ...(22) ...(23)
  • the distributed user private key generation unit 140 Focusing on the key issuing device 100- i , the distributed user private key generation unit 140 generates a distributed value [r ID, j ] i to obtain a variance value (share) [r ID ] i of the random number r ID . That is, the distributed user private key generation unit 140 generates the distributed value [r ID ] i using the following equation (24). ...(24)
  • the distributed user private key generation unit 140 performs share multiplication (step S148).
  • the distributed user private key generation unit 140 may perform the process of S148 using the share multiplication unit 108 described above.
  • the distributed user private key generation unit 140 multiplies each of [ ⁇ ]-[r ID ] and [ ⁇ ]-ID by [w].
  • the distributed user private key generation unit 140 generates a share [ ⁇ ] of ⁇ (first random number), a share [ ⁇ ] of ⁇ (second random number), and a share [r ID ] is multiplied by the share [w] of w (fourth random number).
  • [ ⁇ ] and [ ⁇ ] are elements of the distributed master secret key msk i .
  • the distributed user private key generation unit 140 generates a share [ ⁇ ] of ⁇ which is an element of the distributed master private key msk i , a share [ ⁇ ] of ⁇ which is an element of the distributed master private key msk i , and a share of r ID . Multiply each [r ID ] by the share [w] of w.
  • the distributed user private key generation unit 140 executes multiplication according to the following equations (26) and (27) in parallel. In this manner, in this embodiment, multiple multiplications between shares are executed. Note that, as described above, when executing Mult(), communication is performed between the plurality of key issuing apparatuses 100. ...(26) ...(27)
  • the distributed user private key generation unit 140 restores [( ⁇ -ID) ⁇ w] and calculates 1/( ⁇ -ID) ⁇ w, which is the inverse of the restoration result (step S150).
  • the distributed user private key generation unit 140 may perform the process of S150 using the restoration unit 110 described above.
  • the distributed user private key generation unit 140 multiplies the user private key element ( ⁇ -ID) obtained from the share [ ⁇ ] of the random number ⁇ and the identification information ID by the share [w] of the random number w. Restoration is performed on the first product [( ⁇ -ID) ⁇ w]. As a result, the value of ( ⁇ -ID) ⁇ w is obtained. Further, the distributed user private key generation unit 140 calculates the inverse element v (first value) of the value ( ⁇ -ID) ⁇ w obtained as a result of the restoration.
  • the distributed user private key generation unit 140 restores [( ⁇ -ID) ⁇ w] using the following equation (28), and obtains the value of ( ⁇ -ID) ⁇ w. ...(28)
  • the distributed user private key generation unit 140 generates a distributed user private key (step S152). As shown below, the distributed user private key generation unit 140 generates a distributed user private key based on the product obtained as a result of the multiplication of equations (26) to (27). Note that, as described later, the distributed user private key generation unit 140 calculates the share (dispersion value) of the random number w when the user private key is acquired using the distributed user private keys obtained from the plurality of key issuing devices 100. Generate a distributed user private key so that it can be removed.
  • the distributed user private key generation unit 140 of the key issuing device 100-i calculates the element h of the distributed user private key expressed by the following formula (30) from the above formulas (26) and (29). Calculate ID,i .
  • the distributed user private key generation unit 140 raises the power g ⁇ ([( ⁇ -r ID ) ⁇ w] i ) of g to the power (power operation) by v, and obtains the result of (g ⁇ ([( ⁇ - r ID ) ⁇ w] i )) ⁇ v is calculated as h ID,i .
  • the distributed user private key generation unit 140 generates a second power (g Calculate ⁇ ([( ⁇ -r ID ) ⁇ w] i )) ⁇ v as h ID,i .
  • the exponent (power exponent) of the first power of g (first power) is the product [( ⁇ -r ID ) ⁇ w] i (second product). ...(30)
  • the distributed user private key generation unit 140 of the key issuing device 100-i generates the distributed user private key dk ID,i expressed by the following equation (31). ...(31)
  • the distributed user secret key dk ID,i is a set of [r ID ] i and h ID,i . That is, the distributed user private key generation unit 140 generates a set of the share (distribution value) of the random number r ID and the first data as the distributed user private key.
  • the first data is the product obtained by multiplying the element of the user private key obtained by the share of the random number ⁇ and the share of the random number r ID by the share of the random number w (second product), and Let v (first value) be an element.
  • the user secret key generation unit 210 may perform the process of S162 using substantially the same function as the recovery unit 110 described above.
  • the user private key generated by the user private key generation section 210 is stored in the user private key storage section 220.
  • the user private key generation unit 210 generates r ID using the following equation (32). ...(32)
  • the random number w is removed in the processing of the user private key generation unit 210 in the user device 200. That is, by setting h ID,i to the format shown in equation (30), the random number w is removed. Therefore, the distributed user private key generation unit 140 generates a distributed user secret so that the share of the random number w is removed when the user private key is obtained using the distributed user private keys obtained from the plurality of key issuing devices 100. It can be said that a key is being generated. In this way, random numbers w that are not elements of the user private key are removed.
  • Non-Patent Document 2 and Non-Patent Document 3 which disclose the technology related to IBE, the user private key is configured with one value. Therefore, the format of the user private key is different between IB-PRE and IBE. Therefore, as described above, it is extremely difficult to simply combine the technology related to Non-Patent Document 1 and the technologies related to Non-Patent Document 2 and Non-Patent Document 3.
  • the key issuing device 100 has the above-described configuration, so that the user private key and the elements of the user private key (random number ⁇ , random number ⁇ , and random number r ID ) are known to any key issuing device 100. It is possible to generate a user private key without being asked to do so. Therefore, with the configuration according to the first embodiment, in the ID-based proxy re-encryption technology, even if the key issuing authority has malicious intent, it is possible to prevent the ciphertext from being decrypted by the key issuing authority. becomes possible.
  • the encryption device 60 creates a ciphertext (step S170).
  • the encryption device 60 may create ciphertext from plaintext in substantially the same manner as the method of Non-Patent Document 1.
  • the ciphertext created by the encryption device 60 is stored in the ciphertext storage section 320 of the re-encryption device 300.
  • the encryption device 60 generates the ciphertext C ID from the plaintext m using the following equation (34). This generates a ciphertext that can be decrypted with the user's private key related to the ID. Note that the master public key mpk and the identification information ID can generate a public key regarding the user corresponding to the ID. ...(34)
  • the re-encryption key generation unit 230 of the user device 200 generates a re-encryption key (step S174).
  • the re-encryption key generation unit 230 generates a re-encryption key using the user's private key.
  • the re-encryption key generation unit 230 may generate the re-encryption key in substantially the same manner as the method of Non-Patent Document 1.
  • the re-encryption key generation unit 230 generates the re-encryption key rk_(ID i ⁇ ID j ) using the following equation (36).
  • dk_(ID i ) is the user private key of user i.
  • the re-encryption unit 330 of the re-encryption device 300 re-encrypts the ciphertext stored in the ciphertext storage unit 320 (step S176).
  • the re-encryption unit 330 uses the re-encryption key stored in the re-encryption key storage unit 310 to decrypt the ciphertext that can be decrypted with the user private key regarding the first user device of the plurality of user devices 200. Re-encrypt without doing anything.
  • the re-encryption unit 330 may perform re-encryption using substantially the same method as in Non-Patent Document 1.
  • the re-encrypted ciphertext may be stored in the ciphertext storage unit 320.
  • the re-encryption unit 330 performs re-encryption using the following equation (37).
  • the re-encryption unit 330 uses the re-encryption key to transfer a ciphertext that can be decrypted with the user private key regarding the first user device (user i's user device 200) to the second user device (user j's user device 200).
  • the user device 200) is converted into a ciphertext that can be decrypted using the user's private key. ...(37)
  • the decryption unit 240 of the user device 200 decrypts the ciphertext and obtains the plaintext (step S180).
  • the decryption unit 240 decrypts the ciphertext using the user private key of the corresponding user.
  • the decryption unit 240 may decrypt the ciphertext using substantially the same method as in Non-Patent Document 1.
  • the decryption unit 240 When decrypting the ciphertext created in the process of S170, the decryption unit 240 performs decryption using the following equation (38) to obtain plaintext m.
  • ID corresponds to the identification information ID i of user i. ...(38)
  • the decryption unit 240 when decrypting the ciphertext re-encrypted in the process of S176, the decryption unit 240 performs decryption using the following equation (39) to obtain plaintext m.
  • ID corresponds to identification information ID j of user j. That is, the decryption unit 240 of the second user device decrypts the re-encrypted ciphertext using the user private key related to the second user device. ...(39)
  • the re-encryption key may be changed by the user device 200 or may be changed by multi-party calculation in the key issuing device 100. Furthermore, the update of the ciphertext may be performed without the involvement of the user device 200 that can decrypt the ciphertext.
  • Non-Patent Document 3 terminates the protocol when fraud is detected.
  • the share of each participant in the SSS may be a duplicate secret sharing method, and a majority vote may be taken at the time of multiplication. In this way, by having each participant (key issuing device 100) copy the share, it is safe even against attackers who attempt to falsify the calculation results.
  • CCA Code Ciphertext Attack
  • a system that achieves CCA security can be configured by using Fujisaki-Okamoto transformation. That is, by applying the Fujisaki-Okamoto transformation to the encryption method (S170) according to this embodiment, CCA security can be achieved.
  • Embodiment 2 shows an outline of the configuration according to the embodiment described above.
  • the information processing system 50 according to the second embodiment is substantially the same as that according to the first embodiment, so a description thereof will be omitted.
  • the information processing system 50 according to the second embodiment includes a plurality of key issuing devices.
  • FIG. 13 is a diagram showing the configuration of the key issuing device 10 according to the second embodiment.
  • Key issuing device 10 according to the second embodiment corresponds to key issuing device 100 according to the first embodiment.
  • the key issuing device 10 according to the second embodiment includes a distributed master key generation section 12, a distributed user private key generation section 14, and a transmission section 16.
  • the distributed master key generation unit 12 has a function as a distributed master key generation means.
  • the distributed user private key generation unit 14 has a function as a distributed user private key generation means.
  • the transmitter 16 has a function as a transmitter.
  • the distributed master key generation unit 12 corresponds to the distributed master key generation unit 120 according to the first embodiment.
  • the distributed master key generation section 12 can be realized by substantially the same function as the distributed master key generation section 120.
  • the distributed master key generation unit 12 generates at least distributed master secret keys distributed among the plurality of key issuing devices 10.
  • the distributed master key generation unit 12 generates a share ([ ⁇ ]) of the first random number in which the first random number ( ⁇ ) to be concealed is distributed, and a share ([ ⁇ ]) of the first random number in which the first random number ( ⁇ ) to be concealed is distributed, and a share in which the second random number ( ⁇ ) to be concealed is distributed.
  • a distributed master secret key is generated based on the second random number share ([ ⁇ ]) in the state.
  • the distributed user private key generation unit 14 corresponds to the distributed user private key generation unit 140 according to the first embodiment.
  • the distributed user private key generation section 14 can be realized by substantially the same function as the distributed user private key generation section 140.
  • the distributed user private key generation unit 14 generates a distributed user private key using the distributed master private key and user identification information.
  • a user private key is obtained using the distributed user private keys obtained from a plurality of key issuing devices.
  • the distributed user private key generation unit 14 generates a share of the third random number ([r ID ]) in which the third random number (r ID ) which is kept confidential and becomes an element of the user private key is distributed, and a third random number to be kept confidential.
  • the distributed user private key generation unit 14 obtains the share ([w]) of the fourth random number in which the random number (w) of 4 is distributed.
  • the distributed user private key generation unit 14 generates a first random number share that is an element of the distributed master private key, a second random number share that is an element of the distributed master private key, and a third random number share that is an element of the distributed master private key. and is multiplied by the share of the fourth random number.
  • the distributed user private key generation unit 14 generates a distributed user private key based on the product obtained as a result of the multiplication.
  • the transmitter 16 transmits the distributed user private key to the user device 200 of the user.
  • the user device 200 can generate a user private key using a plurality of distributed user private keys obtained from a plurality of key issuing devices 10.
  • the key issuing device 10 has the user secret key and the elements of the user secret key (the first random number, the second random number, and the third random number) as described above.
  • a user secret key can be generated without being known by any key issuing device 10. Therefore, in the ID-based proxy re-encryption technique, even if the key issuing authority has malicious intent, it is possible to prevent the ciphertext from being decrypted by the key issuing authority.
  • This also applies to the information processing system 50 having a plurality of key issuing devices 10, the key issuing method executed by the key issuing device 10, and the program that implements the key issuing method.
  • Hard configuration example An example of a configuration of hardware resources that implements the apparatus and system according to each of the embodiments described above using one calculation processing device (information processing device, computer) will be described.
  • the devices according to each embodiment key issuing device, encryption device, user device, re-encryption device, etc.
  • the device according to each embodiment may be physically or functionally realized using at least two computing devices.
  • the device according to each embodiment may be realized as a dedicated device or may be realized as a general-purpose information processing device.
  • FIG. 14 is a block diagram schematically showing an example of a hardware configuration of a calculation processing device that can implement the device and system according to each embodiment.
  • the calculation processing device 1000 includes a CPU 1001, a volatile storage device 1002, a disk 1003, a nonvolatile recording medium 1004, and a communication IF (IF) 1007. Therefore, it can be said that the device according to each embodiment includes a CPU 1001, a volatile storage device 1002, a disk 1003, a nonvolatile recording medium 1004, and a communication IF 1007.
  • the calculation processing device 1000 may be connectable to an input device 1005 and an output device 1006.
  • the calculation processing device 1000 may include an input device 1005 and an output device 1006. Further, the calculation processing device 1000 can send and receive information to and from other calculation processing devices and communication devices via the communication IF 1007.
  • the nonvolatile recording medium 1004 is a computer-readable medium, such as a compact disc or a digital versatile disc. Further, the nonvolatile recording medium 1004 may be a USB (Universal Serial Bus) memory, a solid state drive, or the like. The non-volatile recording medium 1004 retains the program even without supplying power, making it portable. Note that the nonvolatile recording medium 1004 is not limited to the above-mentioned medium. Further, instead of the nonvolatile recording medium 1004, the program may be supplied via the communication IF 1007 and the communication network.
  • USB Universal Serial Bus
  • the volatile storage device 1002 is computer readable and can temporarily store data.
  • the volatile storage device 1002 is a memory such as DRAM (dynamic random access memory) or SRAM (static random access memory).
  • the CPU 1001 copies a software program (computer program: hereinafter simply referred to as a "program") stored on the disk 1003 to the volatile storage device 1002 when executing it, and executes arithmetic processing.
  • the CPU 1001 reads data necessary for program execution from the volatile storage device 1002. If display is necessary, the CPU 1001 displays the output result on the output device 1006.
  • the CPU 1001 acquires the program from the input device 1005.
  • the CPU 1001 interprets and executes programs corresponding to the functions (processing) of each component shown in FIGS. 6 to 8 and 13 described above.
  • the CPU 1001 executes the processing described in each of the embodiments described above. In other words, the functions of each component shown in FIGS. 6 to 8 and 13 described above can be realized by the CPU 1001 executing a program stored in the disk 1003 or the volatile storage device 1002.
  • each embodiment can be considered to be achieved by the programs described above. Furthermore, each of the above-described embodiments can be realized by a computer-readable nonvolatile recording medium on which the above-described program is recorded.
  • the distributed user private key generation unit 140 multiplies [ ⁇ ] ⁇ [r ID ] by [w], but the configuration is not limited to this. [ ⁇ ] and 0 ⁇ [r ID ] may be separately multiplied by [w] as in the following equations (40) and (41). ...(40) ...(41)
  • the user private key generation unit 210 generates h ID using the following equation (43). ...(43)
  • the program includes instructions (or software code) that, when loaded into a computer, cause the computer to perform one or more of the functions described in the embodiments.
  • the program may be stored on a non-transitory computer readable medium or a tangible storage medium.
  • computer readable or tangible storage media may include random-access memory (RAM), read-only memory (ROM), flash memory, solid-state drive (SSD) or other memory technology, CD - Including ROM, digital versatile disk (DVD), Blu-ray disk or other optical disk storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage device.
  • the program may be transmitted on a transitory computer-readable medium or a communication medium.
  • transitory computer-readable or communication media includes electrical, optical, acoustic, or other forms of propagating signals.
  • the distributed user private key generation means for generating a distributed user private key, from which the user private key is obtained; transmitting means for transmitting the distributed user private key to a user device of the user; has The distributed master key generation means has a share of the first random number in which the first random number to be kept secret is distributed and a share of the second random number in which the second random number to be concealed is distributed. generating the distributed master private key based on the The distributed user private key generation means includes: Obtain the share of the third random number in a state in which the third random number that is concealed and becomes an element of the user secret key is distributed, and the share in the fourth random number in the state in which the fourth random number to be concealed is distributed.
  • the distributed user private key generation means generates the distributed user private key so that the share of the fourth random number is removed when the user private key is obtained using the distributed user private keys obtained from a plurality of key issuing devices. Generate a distributed user private key, The key issuing device described in Appendix 1.
  • the distributed user private key generation means generates a first random number obtained by multiplying an element of the user private key obtained by the first random number share and the identification information by the fourth random number share. performing restoration on the product and generating the distributed user private key using a first value that is the inverse of the value obtained as a result of the restoration; The key issuing device described in Appendix 2. (Additional note 4) The distributed user private key generation means generates the fourth random number for the element of the user private key obtained by the share of the third random number, the share of the second random number, and the share of the third random number.
  • the distributed user private key generation means generates, as the first data, a second power of a first power of a generation source of a multiplicative cyclic group of a predetermined order, with the first value as an exponent. generate, the exponent of the first power corresponds to the second product;
  • the distributed master key generation means includes: generating a first random number element serving as an element of the first random number and a second random number element serving as an element of the second random number; Secret sharing is performed on the first random number element and the second random number element, and the share of the first random number element and the share of the second random number element obtained by the secret sharing are divided into the shares of the first random number element and the second random number element.
  • a share of the first random number element is obtained using a share of the first random number element obtained from the plurality of key issuing apparatuses, and a share of the second random number element obtained from the plurality of key issuing apparatuses is used.
  • the distributed user private key generation means includes: generating a third random number element that is a third random number element that is concealed and that is an element of the user private key, and a fourth random number element that is a concealed fourth random number element; Secret sharing is performed on the third random number element and the fourth random number element, and the share of the third random number element and the share of the fourth random number element obtained by the secret sharing are Send it to the key issuing device, A share of the third random number is obtained using a share of the third random number element obtained from the plurality of key issuing devices, and a share of the fourth random number element obtained from the plurality of key issuing devices is used.
  • the key issuing device described in Appendix 1. (Appendix 8) a master public key generation means for generating a master public key; It further has The distributed master key generation means further generates a distributed master public key distributed among a plurality of key issuing devices based on the first random number share and the second random number share, The master public key generation means generates the master public key based on the distributed master public keys obtained from the plurality of key issuing devices.
  • (Appendix 9) multiple key issuing devices; a plurality of user devices; a re-encryption device; has Each of the plurality of key issuing devices is distributed master key generation means for generating at least distributed master secret keys distributed among a plurality of key issuing devices; Using the distributed master private key and the user's identification information, the user's user private key is distributed as a distributed user private key, and the distributed user private key obtained from a plurality of key issuing devices is used.
  • the distributed user private key generation means for generating a distributed user private key, from which the user private key is obtained; transmitting means for transmitting the distributed user private key to a user device of the user; has The distributed master key generation means has a share of the first random number in which the first random number to be kept secret is distributed and a share of the second random number in which the second random number to be concealed is distributed. generating the distributed master private key based on the The distributed user private key generation means includes: Obtain the share of the third random number in a state in which the third random number that is concealed and becomes an element of the user secret key is distributed, and the share in the fourth random number in the state in which the fourth random number to be concealed is distributed.
  • Each of the plurality of user devices includes: a user private key generation means for generating the user private key using the distributed user private keys obtained from the plurality of key issuing devices; re-encryption key generation means for generating a re-encryption key using the user private key; a decryption means for decrypting the ciphertext to obtain the plaintext; has The re-encryption device uses the re-encryption key to enable a second user device of the plurality of user devices to decrypt a ciphertext that can be decrypted by a first user device of the plurality of user devices.
  • the distributed user private key generation means of the key issuing device removes the share of the fourth random number when the user private key is obtained using the distributed user private keys obtained from a plurality of key issuing devices. generating the distributed user private key so as to The user private key generation means of the user device generates the distributed user private key such that the share of the fourth random number is removed.
  • the distributed user private key generation means of the key issuing device generates a distributed user private key by multiplying an element of the user private key obtained by the first random number share and the identification information by the fourth random number share. performing restoration on the obtained first product, and generating the distributed user private key using the first value that is the inverse of the value obtained as a result of the restoration;
  • the information processing system according to appendix 10.
  • the distributed user private key generation means of the key issuing device generates an element of the user private key obtained by the share of the third random number, the share of the second random number, and the share of the third random number.
  • the user private key generation means of the user device generates the user private key by restoring each of the third random number share and the second product.
  • the distributed user private key generation means of the key issuing device generates a second power of a first power of a generation source of a multiplicative cyclic group of a predetermined order, with the first value as an exponent. generated as the first data, the exponent of the first power corresponds to the second product;
  • the distributed master key generation means of the key issuing device includes: generating a first random number element serving as an element of the first random number and a second random number element serving as an element of the second random number; Secret sharing is performed on the first random number element and the second random number element, and the share of the first random number element and the share of the second random number element obtained by the secret sharing are divided into the shares of the first random number element and the second random number element.
  • a share of the first random number element is obtained using a share of the first random number element obtained from the plurality of key issuing apparatuses, and a share of the second random number element obtained from the plurality of key issuing apparatuses is used.
  • the distributed user private key generation means of the key issuing device includes: generating a third random number element that is a third random number element that is concealed and that is an element of the user private key, and a fourth random number element that is a concealed fourth random number element; Secret sharing is performed on the third random number element and the fourth random number element, and the share of the third random number element and the share of the fourth random number element obtained by the secret sharing are Send it to the key issuing device, A share of the third random number is obtained using a share of the third random number element obtained from the plurality of key issuing devices, and a share of the fourth random number element obtained from the plurality of key issuing devices is used.
  • the key issuing device is a master public key generation means for generating a master public key; It further has The distributed master key generation means of the key issuing device further generates a distributed master public key distributed among a plurality of key issuing devices based on the share of the first random number and the share of the second random number. generate, The master public key generation means of the key issuing device generates the master public key based on the distributed master public keys obtained from the plurality of key issuing devices, The re-encryption key generation means of the user device generates a re-encryption key using the master public key and the user private key.
  • the user's user private key is distributed as a distributed user private key, and the distributed user private key obtained from a plurality of key issuing devices is used.
  • the user's user private key is distributed as a distributed user private key, and the distributed user private key obtained from a plurality of key issuing devices is used.
  • Each of the second random number share and the third random number share is multiplied by the fourth random number share, and the distributed user secret key is generated based on the product obtained as a result of the multiplication. death, transmitting the distributed user private key to a user device of the user; By the user equipment, generating the user private key using the distributed user private keys obtained from a plurality of the key issuing devices; generating a re-encryption key using the user private key; Decrypt the ciphertext and get the plaintext, The re-encryption device uses the re-encryption key to enable the second user device to decrypt a ciphertext that can be decrypted by the first user device, and generates the user secret key for the first user device.
  • the distributed user secret is configured such that the share of the fourth random number is removed by the key issuing device when the user private key is obtained using the distributed user private keys obtained from a plurality of key issuing devices. generate a key, generating, by the user device, the distributed user private key such that a share of the fourth random number is removed; The information processing method described in Appendix 25.
  • the key issuing device generates, as the first data, a second power of a first power of a generation source of a multiplicative cyclic group of a predetermined order, with the first value as an index; the exponent of the first power corresponds to the second product; Information processing method according to appendix 28.
  • the user's user private key is distributed as a distributed user private key, and the distributed user private key obtained from a plurality of key issuing devices is used.
  • Each of the second random number share and the third random number share is multiplied by the fourth random number share, and the distributed user secret key is generated based on the product obtained as a result of the multiplication.
  • the step of transmitting the distributed user private key to a user device of the user; A non-transitory computer-readable medium that stores a program that causes a computer to execute.

Abstract

IDベース代理人再暗号化の技術において鍵発行機関が悪意を持っている場合であっても鍵発行機関によって暗号文が復号されることを抑制することが可能な鍵発行装置を提供する。分散マスタ鍵生成部(12)は、複数の鍵発行装置(10)に分散された状態の分散マスタ秘密鍵を少なくとも生成する。分散ユーザ秘密鍵生成部(14)は、分散マスタ秘密鍵とユーザの識別情報とを用いて、分散ユーザ秘密鍵を生成する。送信部(16)は、分散ユーザ秘密鍵をユーザのユーザ装置に送信する。

Description

鍵発行装置、情報処理システム、方法及びコンピュータ可読媒体
 本開示は、鍵発行装置、情報処理システム、方法及びコンピュータ可読媒体に関する。
 暗号化技術において、IDベース暗号(IBE:ID-Based Encryption)及び代理人再暗号化(PRE:Proxy Re-Encryption)が知られている。これらの技術に関連し、非特許文献1は、IDベース代理人再暗号化(IB-PRE:Identity-Based Proxy Re-Encryption scheme)の技術を開示する。また、非特許文献2及び非特許文献3は、IDベース暗号に関する技術を開示する。また、非特許文献4及び非特許文献5は、本開示に関する技術を開示する。
Chunpeng Ge1, Jinyue Xia and Liming Fang、"Key-Private Identity-Based Proxy Re-Encryption"、Computers, Materials & Continua 63.2 (2020): 633-647. Martin Geisler and Nigel P. Smart、"Distributing the Key Distribution Centre in Sakai-Kasahara Based Systems"、IMA International Conference on Cryptography and Coding. Springer, Berlin, Heidelberg, 2009. Aniket Kate, and Ian Goldberg、"Distributed Private-Key Generators for Identity-Based Cryptography"、Cryptology ePrint Archive, 2009、URL:https://eprint.iacr.org/2009/355.pdf Rosario Gennaro, Michael O. Rabin, and Tal Rabin、"Simplified VSS and Fast-track Multiparty Computations with Applications to Threshold Cryptography"、Proceedings of the seventeenth annual ACM symposium on Principles of distributed computing. 1998.、URL:https://dl.acm.org/doi/10.1145/277697.277716 Yoshinori Aono, et al.、"Key-Private Proxy Re-encryption under LWE"、International Conference on Cryptology in India. Springer, Cham, 2013
 IDベース代理人再暗号化では、マスタ公開鍵及びマスタ秘密鍵を鍵発行機関が発行する。ここで、IDベース代理人再暗号化では、マスタ秘密鍵とユーザのIDとを用いて、そのユーザの秘密鍵を生成することができる。そして、ユーザのIDは公知であることが多い。したがって、マスタ秘密鍵を取得した者は、ユーザの秘密鍵を容易に生成することができる。したがって、非特許文献1にかかる技術では、鍵発行機関が悪意を持っている場合に、マスタ秘密鍵を用いてシステム内の全ての暗号文が復号されてしまうおそれがある。
 本開示の目的は、このような課題を解決するためになされたものであり、IDベース代理人再暗号化の技術において鍵発行機関が悪意を持っている場合であっても鍵発行機関によって暗号文が復号されることを抑制することが可能な鍵発行装置、システム、方法及びプログラムを提供することにある。
 本開示にかかる鍵発行装置は、複数の鍵発行装置に分散された状態の分散マスタ秘密鍵を少なくとも生成する分散マスタ鍵生成手段と、前記分散マスタ秘密鍵とユーザの識別情報とを用いて、前記ユーザのユーザ秘密鍵が分散された状態の分散ユーザ秘密鍵であって、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される、分散ユーザ秘密鍵を生成する分散ユーザ秘密鍵生成手段と、前記分散ユーザ秘密鍵を前記ユーザのユーザ装置に送信する送信手段と、を有し、前記分散マスタ鍵生成手段は、秘匿される第1の乱数が分散された状態の第1の乱数のシェアと、秘匿される第2の乱数が分散された状態の第2の乱数のシェアとに基づいて、前記分散マスタ秘密鍵を生成し、前記分散ユーザ秘密鍵生成手段は、秘匿され前記ユーザ秘密鍵の要素となる第3の乱数が分散された状態の第3の乱数のシェアと、秘匿される第4の乱数が分散された状態の第4の乱数のシェアを取得し、前記分散マスタ秘密鍵の要素である前記第1の乱数のシェア、前記分散マスタ秘密鍵の要素である前記第2の乱数のシェア、及び前記第3の乱数のシェアのそれぞれに対して、前記第4の乱数のシェアを乗算し、乗算の結果得られた積に基づいて、前記分散ユーザ秘密鍵を生成する。
 また、本開示にかかる情報処理システムは、複数の鍵発行装置と、複数のユーザ装置と、再暗号化装置と、を有し、前記複数の鍵発行装置それぞれは、複数の鍵発行装置に分散された状態の分散マスタ秘密鍵を少なくとも生成する分散マスタ鍵生成手段と、前記分散マスタ秘密鍵とユーザの識別情報とを用いて、前記ユーザのユーザ秘密鍵が分散された状態の分散ユーザ秘密鍵であって、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される、分散ユーザ秘密鍵を生成する分散ユーザ秘密鍵生成手段と、前記分散ユーザ秘密鍵を前記ユーザのユーザ装置に送信する送信手段と、を有し、前記分散マスタ鍵生成手段は、秘匿される第1の乱数が分散された状態の第1の乱数のシェアと、秘匿される第2の乱数が分散された状態の第2の乱数のシェアとに基づいて、前記分散マスタ秘密鍵を生成し、前記分散ユーザ秘密鍵生成手段は、秘匿され前記ユーザ秘密鍵の要素となる第3の乱数が分散された状態の第3の乱数のシェアと、秘匿される第4の乱数が分散された状態の第4の乱数のシェアを取得し、前記分散マスタ秘密鍵の要素である前記第1の乱数のシェア、前記分散マスタ秘密鍵の要素である前記第2の乱数のシェア、及び前記第3の乱数のシェアのそれぞれに対して、前記第4の乱数のシェアを乗算し、乗算の結果得られた積に基づいて、前記分散ユーザ秘密鍵を生成し、前記複数のユーザ装置それぞれは、複数の前記鍵発行装置から取得した前記分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵を生成するユーザ秘密鍵生成手段と、前記ユーザ秘密鍵を用いて再暗号化鍵を生成する再暗号化鍵生成手段と、暗号文を復号して平文を取得する復号手段と、を有し、前記再暗号化装置は、前記複数のユーザ装置の第1のユーザ装置で復号可能な暗号文を前記複数のユーザ装置の第2のユーザ装置で復号可能とするための前記再暗号化鍵を用いて、前記第1のユーザ装置に関する前記ユーザ秘密鍵で復号可能な前記暗号文を、復号することなしに再暗号化し、前記第2のユーザ装置の復号手段は、当該第2のユーザ装置に関する前記ユーザ秘密鍵を用いて、前記再暗号化された前記暗号文を復号する。
 また、本開示にかかる鍵発行方法は、秘匿される第1の乱数が分散された状態の第1の乱数のシェアと、秘匿される第2の乱数が分散された状態の第2の乱数のシェアとに基づいて、複数の鍵発行装置に分散された状態の分散マスタ秘密鍵を少なくとも生成し、前記分散マスタ秘密鍵とユーザの識別情報とを用いて、前記ユーザのユーザ秘密鍵が分散された状態の分散ユーザ秘密鍵であって、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される、分散ユーザ秘密鍵を生成し、その際に、秘匿され前記ユーザ秘密鍵の要素となる第3の乱数が分散された状態の第3の乱数のシェアと、秘匿される第4の乱数が分散された状態の第4の乱数のシェアを取得し、前記分散マスタ秘密鍵の要素である前記第1の乱数のシェア、前記分散マスタ秘密鍵の要素である前記第2の乱数のシェア、及び前記第3の乱数のシェアのそれぞれに対して、前記第4の乱数のシェアを乗算し、乗算の結果得られた積に基づいて、前記分散ユーザ秘密鍵を生成し、前記分散ユーザ秘密鍵を前記ユーザのユーザ装置に送信する。
 また、本開示にかかる情報処理方法は、複数の鍵発行装置それぞれによって、秘匿される第1の乱数が分散された状態の第1の乱数のシェアと、秘匿される第2の乱数が分散された状態の第2の乱数のシェアとに基づいて、複数の鍵発行装置に分散された状態の分散マスタ秘密鍵を少なくとも生成し、前記分散マスタ秘密鍵とユーザの識別情報とを用いて、前記ユーザのユーザ秘密鍵が分散された状態の分散ユーザ秘密鍵であって、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される、分散ユーザ秘密鍵を生成し、その際に、秘匿され前記ユーザ秘密鍵の要素となる第3の乱数が分散された状態の第3の乱数のシェアと、秘匿される第4の乱数が分散された状態の第4の乱数のシェアを取得し、前記分散マスタ秘密鍵の要素である前記第1の乱数のシェア、前記分散マスタ秘密鍵の要素である前記第2の乱数のシェア、及び前記第3の乱数のシェアのそれぞれに対して、前記第4の乱数のシェアを乗算し、乗算の結果得られた積に基づいて、前記分散ユーザ秘密鍵を生成し、前記分散ユーザ秘密鍵を前記ユーザのユーザ装置に送信し、前記ユーザ装置によって、複数の前記鍵発行装置から取得した前記分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵を生成し、前記ユーザ秘密鍵を用いて再暗号化鍵を生成し、暗号文を復号して平文を取得し、再暗号化装置によって、第1のユーザ装置で復号可能な暗号文を第2のユーザ装置で復号可能とするための前記再暗号化鍵を用いて、前記第1のユーザ装置に関する前記ユーザ秘密鍵で復号可能な前記暗号文を、復号することなしに再暗号化し、前記第2のユーザ装置によって当該第2のユーザ装置に関する前記ユーザ秘密鍵を用いて、前記再暗号化された前記暗号文を復号する。
 また、本開示にかかるプログラムは、秘匿される第1の乱数が分散された状態の第1の乱数のシェアと、秘匿される第2の乱数が分散された状態の第2の乱数のシェアとに基づいて、複数の鍵発行装置に分散された状態の分散マスタ秘密鍵を少なくとも生成するステップと、前記分散マスタ秘密鍵とユーザの識別情報とを用いて、前記ユーザのユーザ秘密鍵が分散された状態の分散ユーザ秘密鍵であって、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される、分散ユーザ秘密鍵を生成し、その際に、秘匿され前記ユーザ秘密鍵の要素となる第3の乱数が分散された状態の第3の乱数のシェアと、秘匿される第4の乱数が分散された状態の第4の乱数のシェアを取得し、前記分散マスタ秘密鍵の要素である前記第1の乱数のシェア、前記分散マスタ秘密鍵の要素である前記第2の乱数のシェア、及び前記第3の乱数のシェアのそれぞれに対して、前記第4の乱数のシェアを乗算し、乗算の結果得られた積に基づいて、前記分散ユーザ秘密鍵を生成するステップと、前記分散ユーザ秘密鍵を前記ユーザのユーザ装置に送信するステップと、をコンピュータに実行させる。
 本開示によれば、IDベース代理人再暗号化の技術において鍵発行機関が悪意を持っている場合であっても鍵発行機関によって暗号文が復号されることを抑制することが可能な鍵発行装置、システム、方法及びプログラムを提供できる。
一般的な公開鍵暗号を説明するための図である。 IDベース暗号を説明するための図である。 一般的な代理人再暗号化を説明するための図である。 IDベース代理人再暗号化を説明するための図である。 実施の形態1にかかる情報処理システムの構成を示す図である。 実施の形態1にかかる鍵発行装置の構成を示す図である。 実施の形態1にかかるユーザ装置の構成を示す図である。 実施の形態1にかかる再暗号化装置の構成を示す図である。 実施の形態1にかかる情報処理システムで実行される処理を示すフローチャートである。 実施の形態1にかかる情報処理システムで実行される処理を示すフローチャートである。 実施の形態1にかかる情報処理システムで実行される処理を示すフローチャートである。 実施の形態1にかかる情報処理システムで実行される処理を示すフローチャートである。 実施の形態2にかかる鍵発行装置の構成を示す図である。 各実施形態に係る装置およびシステムを実現可能な計算処理装置のハードウェア構成例を概略的に示すブロック図である。
(本実施の形態の概要)
 本実施の形態の説明に先立って、本実施の形態の概要について説明する。なお、以下、本実施の形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。また、以下の説明において、使用されるインデックス(英文字等)は、本明細書全体で共通のものとは限らない。
 図1~図4は、IDベース代理人再暗号化について説明するための図である。図1は、一般的な公開鍵暗号を説明するための図である。暗号文作成者は、ユーザA~Cの公開鍵を所有している。暗号文作成者は、ユーザAの公開鍵で暗号文Caを作成し、ユーザBの公開鍵で暗号文Cbを作成し、ユーザCの公開鍵で暗号文Ccを作成する。ユーザAは、ユーザAの秘密鍵を所有している。ユーザAは、ユーザAの秘密鍵を用いて暗号文Caを復号することができる。また、ユーザBは、ユーザBの秘密鍵を所有している。ユーザBは、ユーザBの秘密鍵を用いて暗号文Cbを復号することができる。ユーザCは、ユーザCの秘密鍵を所有している。ユーザCは、ユーザCの秘密鍵を用いて暗号文Ccを復号することができる。
 図2は、IDベース暗号(IBE)を説明するための図である。IDベース暗号では、鍵発行期間がマスタ公開鍵及びマスタ秘密鍵を生成する。そして、鍵発行機関は、マスタ秘密鍵に各ユーザのID(実際にはIDのハッシュ値など)を埋め込むことで、ユーザA~Cそれぞれの秘密鍵を取得する。ユーザのID(Identification:識別情報)は、例えば、そのユーザのメールアドレスであってもよい。鍵発行機関は、ユーザA~Cに、それぞれ、ユーザA~Cのユーザ秘密鍵を配布する。また、鍵発行機関は、暗号文作成者にマスタ公開鍵を配布する。暗号文作成者は、取得したマスタ公開鍵にユーザIDを埋め込むことで、ユーザA~Cそれぞれの公開鍵を取得することができる。
 暗号文作成者は、図1の場合と同様にして、ユーザAの公開鍵で暗号文Caを作成し、ユーザBの公開鍵で暗号文Cbを作成し、ユーザCの公開鍵で暗号文Ccを作成する。そして、ユーザAは、鍵発行機関によってマスタ秘密鍵から生成されたユーザAの秘密鍵を用いて暗号文Caを復号する。また、ユーザBは、マスタ秘密鍵から生成されたユーザBの秘密鍵を用いて暗号文Cbを復号する。ユーザCは、鍵発行機関によってマスタ秘密鍵から生成されたユーザCの秘密鍵を用いて暗号文Ccを復号する。IDベース暗号によって、図1の公開鍵暗号と比較して、以下の利点が得られる。すなわち、任意の文字列(メールアドレス等)を、ユーザIDとして、ユーザ鍵(公開鍵及び秘密鍵)又は暗号文に埋め込むことができる。また、システム内に存在しないユーザ(図2の例では、存在しないユーザDなど)に対して、事前に暗号文を作成することができる。さらに、図1の場合では必要であった公開鍵証明書が不要となる。
 図3は、一般的な代理人再暗号化(PRE)を説明するための図である。代理人再暗号化は、クラウド環境などのサーバ上で、情報を暗号化したまま復号先を変更できる技術である。具体的には、変換先(変換された復号先)のユーザの公開鍵と変換元のユーザの秘密鍵とを用いて、再暗号化に必要な変換鍵(再暗号化鍵)を生成することができる。図3の例では、ユーザA(変換元)が、ユーザAの秘密鍵とユーザB~D(変換先)の公開鍵とを用いて、変換鍵KA→B,KA→C,KA→Dを生成する。変換鍵KA→B,KA→C,KA→Dは、ユーザAの秘密鍵で復号可能な暗号文Caを、それぞれユーザB~Dの秘密鍵で復号可能な暗号文Cb,Cc,Cdに変換するための鍵(再暗号化鍵)である。
 ユーザAは、各変換鍵を、代理人に送信する。代理人は、例えば、プロキシサーバ又はゲートウェイサーバに対応する。代理人は、例えば、暗号文を公開する対象のネットワーク環境が変化する場合等に、暗号文を再暗号化する。代理人は、ユーザAの秘密鍵で復号可能な暗号文Caを、各変換鍵を用いて、暗号文Caを復号することなく、再暗号化する。これにより、暗号文Caは、変換鍵KA→Bを用いて、ユーザBの秘密鍵で復号可能な暗号文Cbに変換される。同様に、暗号文Caは、変換鍵KA→C,KA→Dを用いて、それぞれ、ユーザC及びユーザDの秘密鍵で復号可能な暗号文Cc,Cdに変換される。ユーザB~Dは、それぞれ、暗号文Cb,Cc,Cdを、自身の秘密鍵で復号することができる。なお、ユーザAがユーザDに暗号文Caを開示したくなければ、ユーザAは、変換鍵KA→Dを生成しなければよい。これにより、暗号文Caは、ユーザDに対して秘匿化されたままとなる。
 図4は、IDベース代理人再暗号化(IB-PRE)を説明するための図である。IDベース代理人再暗号化は、代理人再暗号化を、IDベースで行う。図2の場合と同様に、鍵発行機関は、マスタ公開鍵及びマスタ秘密鍵を生成する。そして、鍵発行機関は、マスタ秘密鍵に各ユーザのIDを埋め込むことで、ユーザA~Dそれぞれの秘密鍵を取得する。また、図4の例では、鍵発行機関は、ユーザAにマスタ公開鍵を配布する。ユーザAは、マスタ公開鍵と変換元の秘密鍵とを用いて、変換鍵(再暗号化鍵)を生成する。すなわち、ユーザAは、ユーザB~DのIDを用いて、ユーザB~Dの公開鍵を取得する。そして、図3の場合と同様に、ユーザAは、ユーザAの秘密鍵とユーザB~Dの公開鍵とを用いて、変換鍵KA→B,KA→C,KA→Dを生成する。
 図3と同様に、ユーザAは、各変換鍵を、代理人に送信する。代理人は、ユーザAの秘密鍵で復号可能な暗号文Caを、各変換鍵を用いて、暗号文Caを復号することなく、再暗号化する。これにより、暗号文Caは、暗号文Cb,Cc,Cdに変換される。図3と同様に、ユーザB~Dは、それぞれ、暗号文Cb,Cc,Cdを、自身の秘密鍵で復号することができる。
 ここで、上述したように、非特許文献1は、IDベース代理人再暗号化の技術を開示している。非特許文献1にかかる技術は、変換鍵から変換先のIDに関する情報が漏れないというKey privateを達成できている。また、非特許文献1は、楕円曲線ベースIBEの3つの分類のうち、所謂exponent-inversion typeのIBEに対して再暗号化機能を実現している。ここで、exponent-inversion typeのIBEの方式として、笠原・境方式があるが、非特許文献1でベースとなる方式は、笠原・境方式ではないことに留意されたい。具体的には、笠原・境方式は非対称ペアリングとq-BDHI(Bilinear Diffie-Hellman Inversion)仮定を用いるが、非特許文献1では、対称ペアリングとq-DDHE(Decisional Diffie-Hellman Exponent)仮定を用いる。
 また、秘密鍵の漏洩を抑制するための技術として、DKG(Distributed Key Generation:分散鍵生成)がある。非特許文献2及び非特許文献3は、笠原・境方式に対するDKGを提案している。ここで、非特許文献2及び非特許文献3についてはIDベース暗号(IBE)に関する技術であり、IDベース代理人再暗号化(IB-PRE)に関する技術ではない。したがって、非特許文献2及び非特許文献3にかかる秘密鍵の形式が、非特許文献1に関するようなIB-PREにかかる秘密鍵の形式と異なる。したがって、非特許文献1に関する技術と、非特許文献2及び非特許文献3に関する技術とを単純に組み合わせることは、極めて困難である。これに対し、以下に説明するように、本実施の形態では、IDベース代理人再暗号化において、DKGを実現している。したがって、本実施の形態では、IDベース代理人再暗号化の技術において鍵発行機関が悪意を持っている場合であっても鍵発行機関によって暗号文が復号されることを抑制することが可能となる。
(本実施の形態で適用される原理)
 ここで、本実施の形態で適用される原理について説明する。
 本実施の形態では、DKGを実現するにあたり、秘密分散をベースとしたマルチパーティ計算(MPC:Multiparty Computation)を用いる。また、秘密分散の手法として、シャミアの秘密分散法(Shamir's Secret Sharing scheme:SSS)を用いる。なお、これらはあくまでも例示であって、DKGを実現する方法は、上記に限定されない。
 シャミアの秘密分散法は、(t,n)閾値秘密分散の一種である。ここで、nは参加者Pの総数であり、t(<n)は閾値(threshold values)である。秘密情報を参加者Pそれぞれに分散することで、各参加者は、シェア(share:分散値)を得る。そして、任意のt個以上のシェアが集まると秘密を復元することができる。
 素数p上の(t-1)次の多項式をfとする。ただし、f(0)=sとする。ここで、fは、多項式補完にかかる多項式である。また、s∈Zは、秘密にしたい値(秘密値)である。なお、Zは、0~p-1の値の集合である。また、参加者P(i=1,・・・,n)のsのシェアを、[s]=f(i)と表記する。また、sのシェアを[s]=([s],・・・,[s])と表記する。ここで、[s]は、秘密値sが参加者全員に分散された状態を示しているとも言える。また、[s]は、秘密値sを分散した際の、参加者Pが有する値(分散値)を示している。なお、説明の便宜上、以下の説明では、シェア[s]を、sが各参加者に分散された分散値[s],・・・[s]を区別しないで示す場合に使用することがある。
 ここで、c,c,c∈Zとしたとき、以下の式が成立する。これらは、参加者間の通信なしで計算され得る。
 ・線形性(シェア同士の加算):[ca+cb]=c[a]+c[b]
 ・定数倍:[ca]=c[a]
 ・定数加算:[c+a]=c+[a]
 例えば、参加者Pの動作のみに注目すると、上記の定数倍の式は、[ca]=c[a]と表記される。
 シャミアの秘密分散法において、秘密値の分散は、以下のようにして行われる。すなわち、input dealer(参加者Pの1つ)が秘密値sに対して多項式fをランダムに選び、参加者Pに[s](=f(i))を送信する。これにより、sが各参加者に分散される。
 また、シャミアの秘密分散法において、秘密値の復元は、以下のようにして行われる。すなわち、reconstructing partyは、各参加者Pから[s]をt個受信する。そして、reconstructing partyは、多項式補完により、以下の式(1)を用いて、秘密値sを復元する。
Figure JPOXMLDOC01-appb-M000001
  ・・・(1)
 ここで、λは、ラグランジュ係数であり、以下の式(2)で表される。
Figure JPOXMLDOC01-appb-M000002
  ・・・(2)
 なお、(t,n)閾値秘密分散のシェアを[s]、(t’,n’)閾値秘密分散のシェアを以下の式(3)のように表す。
Figure JPOXMLDOC01-appb-M000003
  ・・・(3)
 なお、表記の便宜上、式(3)を「[[s]]」と表記する。このとき、参加者Pは、λ[s]を秘密として、[[λ[s]]]として再分散してもよい。そして、Σ[[λ[s]]]として、閾値及び参加者数をそれぞれt,nからt’,n’に変更してもよい。なお、これは、変更前の古いシェアを安全に削除しているなどの仮定の下で実現され得ることに留意されたい。
 また、本実施の形態におけるマルチパーティ計算において、秘密値の分散の関数として、SSSの「Share()」を用いる。つまり、以下の式(4)のように、aの分散が行われる。なお、iは、input dealerである参加者Pの添え字(インデックス)に対応する。また、aは秘密値である。
Figure JPOXMLDOC01-appb-M000004
  ・・・(4)
 また、秘密値の復元の関数として、SSSの「Open()」を用いる。つまり、以下の式(5)のように、aの復元が行われる。
Figure JPOXMLDOC01-appb-M000005
  ・・・(5)
 また、本実施の形態において、シェア同士の乗算を行うための関数として、「Mult()」を用いる。つまり、以下の式(6)のように、秘密値aのシェア[a]と秘密値bのシェア[b]との乗算が行われる。
Figure JPOXMLDOC01-appb-M000006
  ・・・(6)
 なお、Mult()は、種々の方法で実現できる。例えば、非特許文献4に示される方法でMult()を実現してもよい。なお、Mult()を実現する場合、参加者間で通信を行うことが必要となる。また、例えば、Mult()は、以下のステップで実現されてもよいが、これに限定されない。
ステップA1:
 参加者P(for i=1,・・・,n)は、以下の式(7)によりcを計算して、cを分散して、cのシェア[c]を計算する。そして、参加者Pは、シェア[c](=[c,・・・,[c)を他の参加者に送信する。
Figure JPOXMLDOC01-appb-M000007
  ・・・(7)
ステップA2:
 以下の式(8)を計算することにより、[a]と[b]との乗算の結果である[c]が得られる。
Figure JPOXMLDOC01-appb-M000008
  ・・・(8)
 なお、[a]=f(i)、[b]=g(i)である。また、f,gは、(t-1)次の多項式である。また、f(i)g(i)=h(i)とする。このとき、hは(2t-2)次の多項式である。また、f(0)=a、g(0)=bであるので、h(0)=abとなる。したがって、上記の式(8)が成り立つ。
 また、本実施の形態では、ペアリング(双線形写像)を用いる。本実施の形態では、以下で説明するようなペアリングの条件下で計算が行われる。
 G,Gをそれぞれ位数p(pは十分に大きい素数)の乗法巡回群とする。このとき、g∈GはGのgenerator(生成元)である。gは、例えば楕円曲線上の有理点であるが、これに限定されない。Gは、例えば楕円曲線上の有理点である生成元によって構成される集合であるが、これに限定されない。また、Gは、例えば、拡大体の要素の集合であるが、これに限定されない。
 また、双線形写像e:G×G→Gは、以下の性質を満たす。
 ・双線形性:e(g ,g )=e(g,gab
  但し、a,bは、Z からランダムに選択した任意の値である。また、g,g∈Gである。また、Z は、1~p-1の値の集合である。
 ・非退化性:e(g,g)≠1
 ・計算効率性:任意のg,g∈Gに対して、e(g,g)を計算する効率の良いアルゴリズム(多項式時間アルゴリズム)が存在する。
 なお、e(g,g)は位数pの乗法巡回群Gの要素(元)である。
 ここで、暗号方式を構成する際にペアリングを使う概略を簡単に説明する。例えば、公開鍵としてg,e(g,g)stがあり、マスタ秘密鍵がsであるとする。このとき、g,e(g,g)stからはt,stを計算することができないことに留意されたい。このとき、暗号文作成者は、m・e(g,g)stとして、平文mの暗号文を作成する。
 ここで、鍵発行機関は、マスタ秘密鍵の漏洩を防ぐためsをユーザに直接渡すことはできないが、sに関連する何らかの値を渡さないと、ユーザが暗号文を復号することはできない。したがって、鍵発行機関は、例えば秘密鍵として、gのような形式の値を、ユーザに渡す。このとき、gからsを計算することはできないことに留意されたい。
 ユーザはgからsを計算することができないので、m・e(g,g)stからmを復号できないように思われる。しかしながら、ユーザは、ペアリングによって、公開鍵g及び秘密鍵gを用いて、t及びsが未知の状態でも、e(g,g)=e(g,g)stを計算することができる。すなわち、ペアリングを用いることによって、g,gからx,yを計算できない状態であっても、e(g,g)xyとして指数の箇所でxyのような演算することができる。
(実施の形態1)
 以下、実施の形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
 図5は、実施の形態1にかかる情報処理システム50の構成を示す図である。情報処理システム50は、複数の鍵発行装置100-1~100-n(nは2以上の整数)と、暗号化装置60と、複数のユーザ装置200と、再暗号化装置300とを有する。鍵発行装置100、暗号化装置60、ユーザ装置200及び再暗号化装置300は、有線又は無線を介して互いに通信可能に接続されている。
 情報処理システム50を構成する各装置は、例えばコンピュータによって実現され得る。情報処理システム50は、上記の装置によって、IB-PREにおいて、DKGを実現する。詳しくは後述する。なお、情報処理システム50は、公開鍵及び秘密鍵を生成する鍵生成システム(鍵発行システム)としても機能し得る。
 鍵発行装置100は、上述した鍵発行機関により管理され得る。鍵発行装置100-i(i=1,・・・,n)は、上述した秘密分散における参加者Pに対応する。鍵発行装置100は、分散マスタ秘密鍵を少なくとも生成し、分散マスタ秘密鍵とユーザの識別情報とを用いて、ユーザ秘密鍵が分散された状態の分散ユーザ秘密鍵を生成するように構成されている。そして、鍵発行装置100は、分散ユーザ秘密鍵をユーザのユーザ装置に送信する。ここで、分散マスタ秘密鍵は、マスタ秘密鍵が仮想的に分散された状態にあるものであるとも言える。なお、本実施の形態では、実際にはマスタ秘密鍵は生成されないことに留意されたい。また、分散マスタ秘密鍵は、複数の鍵発行装置100に分散された状態となっており、分散ユーザ秘密鍵を生成するための要素を含む。また、分散ユーザ秘密鍵は、複数の鍵発行装置100に分散されており、複数の鍵発行装置100から得られる当該分散ユーザ秘密鍵を用いてユーザ秘密鍵が取得されるように構成されている。詳しくは後述する。
 暗号化装置60は、暗号文を作成するように構成されている。具体的には、暗号化装置60は、平文mを暗号化して暗号文Cを作成する。なお、暗号化装置60は、ユーザ装置200と一体であってもよい。この場合、例えば、ユーザAのユーザ装置200Aが、暗号化装置60として機能してもよい。
 ユーザ装置200は、上述したユーザによって管理され得る。図5の例では、ユーザ装置200A~200Dは、それぞれ、ユーザA~Dによって管理され得る。なお、図5には4つのユーザ装置200が示されているが、ユーザ装置200の数は任意である。ユーザ装置200それぞれは、複数の鍵発行装置100から得られる当該分散ユーザ秘密鍵を用いて、当該ユーザ装置200を管理するユーザのユーザ秘密鍵を生成するように構成されている。また、ユーザ装置200は、ユーザ秘密鍵を用いて再暗号化鍵(変換鍵)を生成するように構成されている。また、ユーザ装置200は、当該ユーザ装置200に関するユーザ秘密鍵を用いて、暗号文を復号して平文を取得するように構成されている。詳しくは後述する。
 再暗号化装置300は、上述した代理人によって管理され得る。再暗号化装置300は、例えば、上述したプロキシサーバ又はゲートウェイサーバで構成され得る。再暗号化装置300は、再暗号化鍵を用いて、複数のユーザ装置200の第1のユーザ装置に関するユーザ秘密鍵で復号可能な暗号文を、復号することなしに再暗号化するように構成されている。つまり、再暗号化装置300は、再暗号化鍵を用いて、第1のユーザ装置に関するユーザ秘密鍵で復号可能な暗号文を、第2のユーザ装置に関するユーザ秘密鍵で復号可能な暗号文に変換する。この場合、この再暗号化鍵は、第1のユーザ装置で復号可能な暗号文を複数のユーザ装置200の第2のユーザ装置で復号可能とするための変換鍵である。このとき、第2のユーザ装置は、当該第2のユーザ装置に関するユーザ秘密鍵を用いて、再暗号化された暗号文を復号する。詳しくは後述する。
 例えば、図4の例において、ユーザAのユーザ装置200Aを第1のユーザ装置とし、ユーザBのユーザ装置200Bを第2のユーザ装置とする。このとき、再暗号化装置300は、再暗号化鍵KA→Bを用いて、暗号文Caを、暗号文Cbに変換(再暗号化)する。ユーザ装置200Bは、再暗号化された暗号文である暗号文Cbを、ユーザBのユーザ秘密鍵を用いて復号する。
 図6は、実施の形態1にかかる鍵発行装置100の構成を示す図である。鍵発行装置100は、構成要素として、乱数生成部102と、分散部104と、乱数シェア取得部106と、シェア乗算部108と、復元部110と、シェア記憶部112とを有する。また、鍵発行装置100は、構成要素として、分散マスタ鍵生成部120と、マスタ公開鍵生成部130と、分散ユーザ秘密鍵生成部140と、送信部150とを有する。乱数生成部102は、分散マスタ鍵生成部120、マスタ公開鍵生成部130及び分散ユーザ秘密鍵生成部140から呼び出されるサブルーチンとして構成されてもよい。同様に、分散部104、乱数シェア取得部106、シェア乗算部108、復元部110及びシェア記憶部112は、分散マスタ鍵生成部120、マスタ公開鍵生成部130及び分散ユーザ秘密鍵生成部140から呼び出されるサブルーチンとして構成されてもよい。
 乱数生成部102は、乱数生成手段としての機能を有する。分散部104は、分散手段としての機能を有する。乱数シェア取得部106は、乱数シェア取得手段としての機能を有する。シェア乗算部108は、シェア乗算手段としての機能を有する。復元部110は、復元手段としての機能を有する。分散マスタ鍵生成部120は、分散マスタ鍵生成手段としての機能を有する。マスタ公開鍵生成部130は、マスタ公開鍵生成手段としての機能を有する。分散ユーザ秘密鍵生成部140は、分散ユーザ秘密鍵生成手段としての機能を有する。送信部150は、送信手段としての機能を有する。
 乱数生成部102は、乱数を生成するように構成されている。また、乱数生成部102は、秘匿される乱数の要素となる乱数要素を生成する。分散部104は、乱数(乱数要素)に対して秘密分散を行うように構成されている。分散部104は、例えば、上述した式(4)で示される関数を用いて秘密分散を行って、乱数要素のシェア(分散値)を取得してもよい。分散部104は、取得された乱数要素のシェア(分散値)を、他の鍵発行装置100に対して送信する。
 乱数シェア取得部106は、複数の鍵発行装置100から受信した複数の乱数要素のシェアを用いて乱数のシェアを取得するように構成されている。乱数シェア取得部106は、複数の鍵発行装置100から受信した複数の乱数要素のシェア(分散値)を合計することによって乱数のシェアを取得してもよい。シェア乗算部108は、シェア同士の乗算を行うように構成されている。シェア乗算部108は、例えば、上述した式(6)で示される関数を用いて、シェア同士の乗算を行ってもよい。復元部110は、ある値(秘密値)のシェアに対して復元を行って、その値を取得する。復元部110は、例えば、上述した式(5)で示される関数を用いて、復元を行ってもよい。シェア記憶部112は、シェアに関する演算の過程で取得されたシェア(分散値)を記憶する。シェア記憶部112は、後述するS120~S140の処理で取得されるシェア(分散値)を記憶する。シェア記憶部112は、シェア(分散値)を一時的に記憶してもよい。
 分散マスタ鍵生成部120は、複数の鍵発行装置100に分散された状態の分散マスタ秘密鍵を少なくとも生成するように構成されている。分散マスタ鍵生成部120は、複数の鍵発行装置100に分散された状態の分散マスタ公開鍵を生成してもよい。詳しくは後述する。マスタ公開鍵生成部130は、マスタ公開鍵を生成するように構成されている。詳しくは後述する。分散ユーザ秘密鍵生成部140は、分散マスタ秘密鍵とユーザの識別情報とを用いて、分散ユーザ秘密鍵を生成するように構成されている。詳しくは後述する。送信部150は、分散ユーザ秘密鍵を、上記の識別情報に対応するユーザのユーザ装置200に送信するように構成されている。
 図7は、実施の形態1にかかるユーザ装置200の構成を示す図である。ユーザ装置200は、ユーザ秘密鍵生成部210と、ユーザ秘密鍵記憶部220と、再暗号化鍵生成部230と、復号部240とを有する。ユーザ秘密鍵生成部210は、ユーザ秘密鍵生成手段としての機能を有する。ユーザ秘密鍵記憶部220は、ユーザ秘密鍵記憶手段としての機能を有する。再暗号化鍵生成部230は、再暗号化鍵生成手段としての機能を有する。復号部240は、復号手段としての機能を有する。
 ユーザ秘密鍵生成部210は、複数の鍵発行装置100から得られる分散ユーザ秘密鍵を用いて、当該ユーザ装置200を管理するユーザのユーザ秘密鍵を生成するように構成されている。詳しくは後述する。ユーザ秘密鍵記憶部220は、生成されたユーザ秘密鍵を記憶するように構成されている。
 再暗号化鍵生成部230は、ユーザ秘密鍵を用いて再暗号化鍵を生成するように構成されている。例えば、ユーザ装置200Aの再暗号化鍵生成部230は、ユーザAのユーザ秘密鍵Kを用いて、再暗号化鍵(変換鍵)KA→B,KA→C,KA→Dを生成する。詳しくは後述する。復号部240は、当該ユーザ装置200に関するユーザ秘密鍵を用いて、暗号文を復号して平文を取得するように構成されている。詳しくは後述する。
 図8は、実施の形態1にかかる再暗号化装置300の構成を示す図である。再暗号化装置300は、再暗号化鍵記憶部310と、暗号文記憶部320と、再暗号化部330とを有する。再暗号化鍵記憶部310は、再暗号化鍵記憶手段としての機能を有する。暗号文記憶部320は、暗号文記憶手段としての機能を有する。再暗号化部330は、再暗号化手段としての機能を有する。
 再暗号化鍵記憶部310は、ユーザ装置200で生成された再暗号化鍵を記憶する。暗号文記憶部320は、暗号化装置60で生成された暗号文を記憶する。再暗号化部330は、再暗号化鍵を用いて、複数のユーザ装置200の第1のユーザ装置に関するユーザ秘密鍵で復号可能な暗号文を、復号することなしに再暗号化するように構成されている。つまり、再暗号化部330は、再暗号化鍵を用いて、第1のユーザ装置に関するユーザ秘密鍵で復号可能な暗号文を、第2のユーザ装置に関するユーザ秘密鍵で復号可能な暗号文に変換(再暗号化)する。詳しくは後述する。
 図9~図12は、実施の形態1にかかる情報処理システム50で実行される処理を示すフローチャートである。図9は、情報処理システム50で実行される情報処理方法(鍵発行方法、鍵生成方法)を示す。また、図9において、S120~S160は、鍵発行装置100で実現される鍵発行方法(鍵生成方法)を示す。
 情報処理システム50は、大域パラメータgparamを設定する(ステップS102)。S102において、情報処理システム50は、「Global Setup」を行う。大域パラメータgparamは、情報処理システム50内で公開され得る。なお、大域パラメータの設定は、鍵発行装置100のいずれかによって行われてもよいし、標準化機関によって管理される装置(図示せず)によって行われてもよい。
 具体的には、情報処理システム50は、セキュリティパラメータλを用いて、大域パラメータgparam=(p,G,e,g,H)を設定する。ここで、pは素数である。Gは、位数pの乗法巡回群である。eは、双線形写像であり、e:G×G→Gである。gはGの生成元であり、g∈Gである。Hはハッシュ関数であり、H:G→Zである。なお、非特許文献1では、Gの要素(元)であるhを大域パラメータ(公開パラメータ)として設定していたが、本実施の形態では、hは公開されない。hが公開されると、攻撃者によって暗号文から平文が取得されてしまう可能性があるからである。
 複数の鍵発行装置100それぞれの分散マスタ鍵生成部120は、分散マスタ鍵を生成する(ステップS120)。S120において、鍵発行装置100は、「Distribute Setup」を行う。鍵発行装置100-i(i=1,・・・,n)は、後述するように、大域パラメータgparamを用いて、分散マスタ鍵(mpk,msk)を生成する。ここで、mpkは、分散マスタ公開鍵である。また、mskは、分散マスタ秘密鍵である。つまり、分散マスタ鍵(mpk,msk)は、分散マスタ公開鍵mpkと分散マスタ秘密鍵mskとの組である。
 複数の鍵発行装置100-1~100-nがそれぞれ分散マスタ鍵を生成することにより、分散マスタ鍵の集合である{(mpk,msk)}={(mpk,msk),・・・,(mpk,msk)}が生成される。つまり、分散マスタ公開鍵mpk~mpkは、複数の鍵発行装置100に分散された状態となっている。同様に、分散マスタ秘密鍵msk~mskは、複数の鍵発行装置100に分散された状態となっている。複数の鍵発行装置100-1~100-nは、協調して、分散マスタ鍵{(mpk,msk)}を生成する。
 図10は、図9のS120の処理を示すフローチャートである。図10は、実施の形態1にかかる分散マスタ鍵生成部120の処理を示す。なお、以下の説明では、鍵発行装置100-iの分散マスタ鍵生成部120の処理について述べるが、他の鍵発行装置100についても同様の処理が行われる。つまり、鍵発行装置100-i(i=1,・・・,n)について、同様の処理が行われる。このことは、他の処理においても同様である。
 分散マスタ鍵生成部120は、乱数要素を生成する(ステップS122)。つまり、鍵発行装置100-iの分散マスタ鍵生成部120は、乱数要素α,βを生成する。なお、分散マスタ鍵生成部120は、上述した乱数生成部102によって、S122の処理を行ってもよい。ここで、α,β∈Zである。また、乱数要素α(第1の乱数要素)は、乱数α(第1の乱数)の要素となる。また、乱数要素β(第2の乱数要素)は、乱数β(第2の乱数)の要素となる。なお、乱数α,βの値は、各鍵発行装置100に対して秘匿される、つまり各鍵発行装置100に知られないようにされていることに、留意されたい。
 分散マスタ鍵生成部120は、乱数要素を秘密分散する(ステップS124)。つまり、鍵発行装置100-iの分散マスタ鍵生成部120は、乱数要素α,βを秘密分散する。なお、分散マスタ鍵生成部120は、上述した分散部104によって、S124の処理を行ってもよい。分散マスタ鍵生成部120は、乱数要素α,βに対して秘密分散を行い、秘密分散によって得られた乱数要素αのシェア[α](分散値)と乱数要素βのシェア[β](分散値)とを他の鍵発行装置100に対して送信する。
 具体的には、鍵発行装置100-iの分散マスタ鍵生成部120は、以下の式(9)によって、乱数要素αのシェア[α](分散値)を生成する。
Figure JPOXMLDOC01-appb-M000009
  ・・・(9)
 同様に、鍵発行装置100-iの分散マスタ鍵生成部120は、以下の式(10)によって、乱数要素βのシェア[β](分散値)を生成する。
Figure JPOXMLDOC01-appb-M000010
  ・・・(10)
 そして、鍵発行装置100-iの分散マスタ鍵生成部120は、生成されたシェア[α](分散値)及びシェア[β](分散値)を、他の鍵発行装置100に送信する。具体的には、鍵発行装置100-iの分散マスタ鍵生成部120は、鍵発行装置100-j(j=1,・・・,n)に対して、分散値[α及び[βを送信する。これにより、[α]=([α,・・・,[α)という状態、及び、[β]=([β,・・・,[β)という状態が生成される。また、他の鍵発行装置100においても同様の処理が行われる。したがって、鍵発行装置100-iは、複数の鍵発行装置100から、[α,・・・,[α、及び、[β,・・・,[βを取得する。
 分散マスタ鍵生成部120は、乱数α,βのシェア[α],[β](分散値)を取得する(ステップS126)。分散マスタ鍵生成部120は、上述した乱数シェア取得部106によって、S126の処理を行ってもよい。分散マスタ鍵生成部120は、複数の鍵発行装置100から取得した第1の乱数要素のシェア(分散値)を用いて乱数α(第1の乱数)のシェア[α](分散値)を取得する。同様に、分散マスタ鍵生成部120は、複数の鍵発行装置100から取得した第2の乱数要素のシェア(分散値)を用いて乱数β(第2の乱数)のシェア[β](分散値)を取得する。
 具体的には、分散マスタ鍵生成部120は、複数の鍵発行装置100から取得した第1の乱数要素のシェア(分散値)を合計して、乱数α(第1の乱数)のシェア[α](分散値)を取得する。同様に、分散マスタ鍵生成部120は、複数の鍵発行装置100から取得した第2の乱数要素のシェア(分散値)を合計して、乱数β(第2の乱数)のシェア[β](分散値)を取得する。
 つまり、分散マスタ鍵生成部120は、以下の式(11)及び式(12)によって、それぞれシェア[α],[β](分散値)を生成する。
Figure JPOXMLDOC01-appb-M000011
 ・・・(11)
Figure JPOXMLDOC01-appb-M000012
 ・・・(12)
 鍵発行装置100-iに着目すると、分散マスタ鍵生成部120は、複数の鍵発行装置100から取得した乱数要素α(j=1,・・・,n)の分散値[αを合計して、乱数αの分散値(シェア)[α]を取得する。つまり、分散マスタ鍵生成部120は、以下の式(13)によって、分散値[α]を生成する。
Figure JPOXMLDOC01-appb-M000013
  ・・・(13)
 同様に、分散マスタ鍵生成部120は、複数の鍵発行装置100から取得した乱数要素β(j=1,・・・,n)の分散値[βを合計して、乱数βの分散値(シェア)[β]を取得する。つまり、分散マスタ鍵生成部120は、以下の式(14)によって、分散値[β]を生成する。
Figure JPOXMLDOC01-appb-M000014
  ・・・(14)
 分散マスタ鍵生成部120は、分散マスタ鍵を生成する(ステップS128)。具体的には、分散マスタ鍵生成部120は、取得されたシェア[α],[β](分散値)に基づいて、分散マスタ鍵を生成する。鍵発行装置100-iの分散マスタ鍵生成部120は、取得されたシェア[α],[β](分散値[α],[β])に基づいて、分散マスタ鍵(mpk,msk)を生成する。つまり、分散マスタ鍵生成部120は、第1の乱数αのシェア[α](分散値)と第2の乱数βのシェア[β](分散値)とに基づいて、複数の鍵発行装置100に分散された状態の分散マスタ公開鍵を生成する。また、分散マスタ鍵生成部120は、第1の乱数αが分散された状態の第1の乱数のシェア[α](分散値)と、第2の乱数βが分散された状態の第2の乱数のシェア[β](分散値)とに基づいて、分散された状態の分散マスタ秘密鍵を生成する。
 さらに具体的には、鍵発行装置100-iの分散マスタ鍵生成部120は、以下の式(15)により、分散マスタ公開鍵mpkを生成する。
Figure JPOXMLDOC01-appb-M000015
  ・・・(15)
 また、鍵発行装置100-iの分散マスタ鍵生成部120は、以下の式(16)により、分散マスタ秘密鍵mskを生成する。
Figure JPOXMLDOC01-appb-M000016
  ・・・(16)
 上述した分散マスタ鍵生成部120の処理によって、どの鍵発行装置100(鍵発行機関)にも乱数α,βの値を知らせずに、複数の鍵発行装置100-1~100-nに乱数α,βが分散された状態を実現することができる。すなわち、図4の例のように、鍵を分散して生成しない場合は、単一の鍵発行機関(鍵発行装置)が乱数α,βを生成するだけでよい。これに対し、鍵を分散して生成する場合、秘密鍵の漏洩を抑制するという目的を達成するためには、どの鍵発行装置100(鍵発行機関)も乱数α,βを知ってはいけない。したがって、S122の処理において、各鍵発行装置100-i(i=1,・・・,n)は、乱数要素α,βを生成し、S124の処理において乱数要素α,βを秘密分散する。そして、S126の処理によって、各鍵発行装置100-iは、乱数α,βのシェア[α],[β](分散値)を生成する。このような処理により、どの鍵発行装置100(鍵発行機関)も乱数α,βの値を知らずに、乱数α,βが分散した状態を実現することができる。そして、どの鍵発行装置100(鍵発行機関)に対しても乱数α,βが秘匿された状態で、各鍵発行装置100は、乱数α,βのシェア(分散値)を用いて、分散マスタ鍵を生成することができる。
 図9の説明に戻る。複数の鍵発行装置100それぞれのマスタ公開鍵生成部130は、マスタ公開鍵を生成する(ステップS130)。S130において、鍵発行装置100は、「Distribute PKG(Public Key Generation)」を行う。上述したように、S120の処理で、複数の鍵発行装置100-1~100-nにより、分散マスタ公開鍵の集合{mpk}={mpk,・・・,mpk}が生成される。鍵発行装置100-i(i=1,・・・,n)は、大域パラメータgparam及び分散マスタ公開鍵の集合{mpk}を用いて、マスタ公開鍵mpkを生成する。つまり、マスタ公開鍵生成部130は、複数の鍵発行装置100-1~100-nから取得した分散マスタ公開鍵に基づいて、マスタ公開鍵を生成する。
 図11は、図9のS130の処理を示すフローチャートである。図11は、実施の形態1にかかるマスタ公開鍵生成部130の処理を示す。マスタ公開鍵生成部130は、分散マスタ公開鍵を送信する(ステップS132)。具体的には、鍵発行装置100-i(i=1,・・・,n)のマスタ公開鍵生成部130は、上述した式(15)で示される分散マスタ公開鍵mpkを、全ての鍵発行装置100に送信(ブロードキャスト)する。なお、マスタ公開鍵生成部130は、マスタ公開鍵が必要な装置(暗号化装置60、ユーザ装置200又は鍵発行装置100)に、分散マスタ公開鍵を送信してもよい。
 マスタ公開鍵生成部130は、マスタ公開鍵を生成する(ステップS134)。具体的には、マスタ公開鍵生成部130は、複数の鍵発行装置100から取得した分散マスタ公開鍵{mpk}={mpk,・・・,mpk}={(g^([α]),e(g,g)^([β]))}を用いて、マスタ公開鍵を生成する。このとき、後述するように、マスタ公開鍵生成部130は、上述した式(5)で示される関数を用いて、シェア[α],[β]に対して復元を行うことによって、マスタ公開鍵mpk=(gα,e(g,g)β)を生成する。マスタ公開鍵生成部130は、上述した復元部110によって、S134の処理を行ってもよい。
 さらに具体的には、マスタ公開鍵生成部130は、以下の式(17)及び式(18)によって、マスタ公開鍵mpkを生成する。なお、このような処理により、各鍵発行装置100で、同じマスタ公開鍵が生成され得る。このようにして、gのべき乗及びe(g,g)のべき乗それぞれの指数部分で復元を行うことによって、どの鍵発行装置100(鍵発行機関)も乱数α,βを知らないまま、マスタ公開鍵mpk=(gα,e(g,g)β)が生成され得る。
Figure JPOXMLDOC01-appb-M000017
  ・・・(17)
Figure JPOXMLDOC01-appb-M000018
  ・・・(18)
 なお、マスタ公開鍵生成部130は、全ての鍵発行装置100-1~100-nからn個全ての{[α]}={[α],・・・,[α]}を取得して式(17)に示す計算を行う必要はない。マスタ公開鍵生成部130は、t個以上の[α](αの分散値)を取得することで、gαを生成することができる。同様に、マスタ公開鍵生成部130は、全ての鍵発行装置100-1~100-nからn個全ての{[β]}={[β],・・・,[β]}を取得して式(18)に示す計算を行う必要はない。マスタ公開鍵生成部130は、t個以上の[β](βの分散値)を取得することで、e(g,g)βを生成することができる。
 なお、本実施の形態では、非特許文献1の技術で公開されていたパラメータhについて、h=gβとみなす。このとき、上述したペアリングの双線形性から、以下の式(19)が成り立つ。
Figure JPOXMLDOC01-appb-M000019
  ・・・(19)
 上述したように、非特許文献1の技術では、上記のhが公開される。すなわち、非特許文献1の技術では、公開パラメータとして、(g,g,h,H)が公開される。なお、g=gαであることに留意されたい。一方、本実施の形態では、hではなく、e(g,h)(=e(g,g)β)が公開される。すなわち、本実施の形態では、公開パラメータとして、(g,g,e(g,h),H)が公開される。したがって、本実施の形態では、hが公開されないので、上述したような攻撃者からの攻撃を抑制することができる。なお、e(g,h)=e(g,g)の場合、h=gとなるので、hが公開されてしまうこととなる。したがって、この場合は、処理フローはS120の処理に戻り、S120から処理が再度実行される。
 図9の説明に戻る。複数の鍵発行装置100それぞれの分散ユーザ秘密鍵生成部140は、分散ユーザ秘密鍵を生成する(ステップS140)。S140において、鍵発行装置100は、「Distribute KeyGen(Key Generation)」を行う。上述したように、S120の処理で、複数の鍵発行装置100-1~100-nにより、分散マスタ秘密鍵の集合{msk}={msk,・・・,msk}が生成される。鍵発行装置100-i(i=1,・・・,n)は、大域パラメータgparam、分散マスタ秘密鍵の集合{msk}及びユーザの識別情報であるIDを用いて、識別情報IDに対応するユーザのユーザ秘密鍵が分散された状態の分散ユーザ秘密鍵を生成する。
 つまり、分散ユーザ秘密鍵生成部140は、複数の鍵発行装置100-1~100-nから取得した分散マスタ秘密鍵{msk}とユーザの識別情報IDとに基づいて、分散ユーザ秘密鍵dkID,iを生成する。複数の鍵発行装置100-1~100-nがそれぞれ分散ユーザ秘密鍵を生成することにより、分散ユーザ秘密鍵の集合である{dkID,i}={dkID,1,・・・,dkID,n}が生成される。つまり、分散ユーザ秘密鍵dkID,1,・・・,dkID,nは、複数の鍵発行装置100に分散された状態となっている。なお、識別情報IDは例えばメールアドレス等であるので、ユーザの識別情報IDは公開されていてもよいことに留意されたい。
 図12は、図9のS140の処理を示すフローチャートである。図12は、実施の形態1にかかる分散ユーザ秘密鍵生成部140の処理を示す。分散ユーザ秘密鍵生成部140は、乱数要素を生成する(ステップS142)。すなわち、鍵発行装置100-iの分散ユーザ秘密鍵生成部140は、乱数要素rID,i,wを生成する。なお、分散ユーザ秘密鍵生成部140は、上述した乱数生成部102によって、S142の処理を行ってもよい。ここで、rID,i,w∈Zである。また、乱数要素rID,i(第3の乱数要素)は、乱数rID(第3の乱数)の要素となる。また、乱数要素w(第4の乱数要素)は、乱数w(第4の乱数)の要素となる。なお、乱数rID,wの値は、各鍵発行装置100に対して秘匿される、つまり各鍵発行装置100に知られないようにされていることに、留意されたい。
 分散ユーザ秘密鍵生成部140は、乱数要素を秘密分散する(ステップS144)。つまり、鍵発行装置100-iの分散ユーザ秘密鍵生成部140は、乱数要素rID,i,wを秘密分散する。なお、分散ユーザ秘密鍵生成部140は、上述した分散部104によって、S144の処理を行ってもよい。分散ユーザ秘密鍵生成部140は、乱数要素rID,i,wに対して秘密分散を行い、秘密分散によって得られた乱数要素rID,iのシェア[rID,i](分散値)と乱数要素wのシェア[w](分散値)とを他の鍵発行装置100に対して送信する。
 具体的には、鍵発行装置100-iの分散ユーザ秘密鍵生成部140は、以下の式(20)によって、乱数要素rID,iのシェア[rID,i](分散値)を生成する。
Figure JPOXMLDOC01-appb-M000020
  ・・・(20)
 同様に、鍵発行装置100-iの分散ユーザ秘密鍵生成部140は、以下の式(21)によって、乱数要素wのシェア[w](分散値)を生成する。
Figure JPOXMLDOC01-appb-M000021
  ・・・(21)
 そして、鍵発行装置100-iの分散ユーザ秘密鍵生成部140は、生成されたシェア[rID,i](分散値)及びシェア[w](分散値)を、他の鍵発行装置100に送信する。具体的には、鍵発行装置100-iの分散ユーザ秘密鍵生成部140は、鍵発行装置100-j(j=1,・・・,n)に対して、分散値[rID,i及び[wを送信する。これにより、[rID,i]=([rID,i,・・・,[rID,i)という状態、及び、[w]=([w,・・・,[w)という状態が生成される。また、他の鍵発行装置100においても同様の処理が行われる。したがって、鍵発行装置100-iは、複数の鍵発行装置100から、[rID,1,・・・,[rID,n、及び、[w,・・・,[wを取得する。
 分散ユーザ秘密鍵生成部140は、乱数rID,wのシェア[rID],[w](分散値)を取得する(ステップS146)。分散ユーザ秘密鍵生成部140は、上述した乱数シェア取得部106によって、S146の処理を行ってもよい。分散ユーザ秘密鍵生成部140は、複数の鍵発行装置100から取得した第3の乱数要素のシェア(分散値)を用いて乱数rID(第3の乱数)のシェア[rID](分散値)を取得する。同様に、分散ユーザ秘密鍵生成部140は、複数の鍵発行装置100から取得した第4の乱数要素のシェア(分散値)を用いて乱数w(第4の乱数)のシェア[w](分散値)を取得する。
 具体的には、分散ユーザ秘密鍵生成部140は、複数の鍵発行装置100から取得した第3の乱数要素のシェア(分散値)を合計して、乱数rID(第3の乱数)のシェア[rID](分散値)を取得する。同様に、分散ユーザ秘密鍵生成部140は、複数の鍵発行装置100から取得した第4の乱数要素のシェア(分散値)を合計して、乱数w(第4の乱数)のシェア[w](分散値)を取得する。
 つまり、分散ユーザ秘密鍵生成部140は、以下の式(22)及び式(23)によって、それぞれシェア[rID],[w](分散値)を生成する。
Figure JPOXMLDOC01-appb-M000022
 ・・・(22)
Figure JPOXMLDOC01-appb-M000023
 ・・・(23)
 鍵発行装置100-iに着目すると、分散ユーザ秘密鍵生成部140は、複数の鍵発行装置100から取得した乱数要素rID,j(j=1,・・・,n)の分散値[rID,jを合計して、乱数rIDの分散値(シェア)[rIDを取得する。つまり、分散ユーザ秘密鍵生成部140は、以下の式(24)によって、分散値[rIDを生成する。
Figure JPOXMLDOC01-appb-M000024
  ・・・(24)
 同様に、分散ユーザ秘密鍵生成部140は、複数の鍵発行装置100から取得した乱数要素w(j=1,・・・,n)の分散値[wを合計して、乱数wの分散値(シェア)[w]を取得する。つまり、分散ユーザ秘密鍵生成部140は、以下の式(25)によって、分散値[w]を生成する。
Figure JPOXMLDOC01-appb-M000025
  ・・・(25)
 分散ユーザ秘密鍵生成部140は、シェアの乗算を行う(ステップS148)。分散ユーザ秘密鍵生成部140は、上述したシェア乗算部108によって、S148の処理を行ってもよい。分散ユーザ秘密鍵生成部140は、[β]-[rID]、及び[α]-IDのそれぞれに対して、[w]を乗算する。つまり、分散ユーザ秘密鍵生成部140は、α(第1の乱数)のシェア[α]、β(第2の乱数)のシェア[β]、及びrID(第3の乱数)のシェア[rID]のそれぞれに対して、w(第4の乱数)のシェア[w]を乗算する。ここで、[α],[β]は、分散マスタ秘密鍵mskの要素である。したがって、分散ユーザ秘密鍵生成部140は、分散マスタ秘密鍵mskの要素であるαのシェア[α]、分散マスタ秘密鍵mskの要素であるβのシェア[β]、及びrIDのシェア[rID]のそれぞれに対して、wのシェア[w]を乗算する。
 具体的には、分散ユーザ秘密鍵生成部140は、以下の式(26)及び式(27)による乗算を、並行して実行する。このように、本実施の形態では、シェア同士の乗算が、複数実行される。なお、上述したように、Mult()を実行する際、複数の鍵発行装置100の間で、通信が行われる。
Figure JPOXMLDOC01-appb-M000026
  ・・・(26)
Figure JPOXMLDOC01-appb-M000027
  ・・・(27)
 上記の式(26)で示されるように、[β]-[rID]と[w]との乗算により、積[(β-[rID])・w](第2の積)が得られる。上記の式(26)により、β-rID(つまりβ及びrID)がwによってマスク(秘匿)される。また、上記の式(27)で示されるように、[α]-IDと[w]との乗算により、積[(α-ID)・w](第1の積)が得られる。上記の式(27)によって、α-ID(つまりα)がwによってマスク(秘匿)される。なお、後述するように、β-rID及びα-ID(つまりα、β、及びrID)は、ユーザ秘密鍵の要素となる。
 分散ユーザ秘密鍵生成部140は、[(α-ID)・w]を復元し、復元結果の逆元である1/(α-ID)・wを計算する(ステップS150)。分散ユーザ秘密鍵生成部140は、上述した復元部110によって、S150の処理を行ってもよい。分散ユーザ秘密鍵生成部140は、乱数αのシェア[α]と識別情報IDとによって得られるユーザ秘密鍵の要素(α-ID)に対して乱数wのシェア[w]を乗算して得られた第1の積[(α-ID)・w]に対して復元を行う。これにより、(α-ID)・wの値が得られる。また、分散ユーザ秘密鍵生成部140は、復元の結果得られた値(α-ID)・wの逆元v(第1の値)を計算する。
 具体的には、分散ユーザ秘密鍵生成部140は、以下の式(28)により、[(α-ID)・w]を復元して、(α-ID)・wの値を取得する。
Figure JPOXMLDOC01-appb-M000028
  ・・・(28)
 また、分散ユーザ秘密鍵生成部140は、以下の式(29)によって、(α-ID)・wの逆元vを計算する。なお、(α-ID)・w=0である場合、S140の処理は、S142から再度実行されることに留意されたい。
Figure JPOXMLDOC01-appb-M000029
  ・・・(29)
 ここで、式(28)のように、(α-ID)・wの値が得られても、wが秘匿されているので、αの値も秘匿されることに留意されたい。したがって、α,wが秘匿されたまま、値(α-ID)・wの逆元vが得られる。
 分散ユーザ秘密鍵生成部140は、分散ユーザ秘密鍵を生成する(ステップS152)。以下に示すように、分散ユーザ秘密鍵生成部140は、式(26)~式(27)の乗算の結果得られた積に基づいて、分散ユーザ秘密鍵を生成する。なお、後述するように、分散ユーザ秘密鍵生成部140は、複数の鍵発行装置100から得られる分散ユーザ秘密鍵を用いてユーザ秘密鍵が取得される際に乱数wのシェア(分散値)が除去されるように、分散ユーザ秘密鍵を生成する。
 具体的には、鍵発行装置100-iの分散ユーザ秘密鍵生成部140は、上記の式(26)及び式(29)から、以下の式(30)で示される分散ユーザ秘密鍵の要素hID,iを計算する。つまり、分散ユーザ秘密鍵生成部140は、gのべき乗g^([(β-rID)・w])をvだけべき乗(冪演算)して得られる、(g^([(β-rID)・w]))^vを、hID,iとして計算する。言い換えると、分散ユーザ秘密鍵生成部140は、第1のgのべき乗g^([(β-rID)・w])の、vを指数(冪指数)とする第2のべき乗(g^([(β-rID)・w]))^vを、hID,iとして計算する。ここで、第1のgのべき乗(第1のべき乗)の指数(冪指数)は、式(26)の乗算の結果得られた積[(β-rID)・w](第2の積)に対応する。
Figure JPOXMLDOC01-appb-M000030
  ・・・(30)
 そして、鍵発行装置100-iの分散ユーザ秘密鍵生成部140は、以下の式(31)で示される分散ユーザ秘密鍵dkID,iを生成する。
Figure JPOXMLDOC01-appb-M000031
  ・・・(31)
 ここで、分散ユーザ秘密鍵dkID,iは、[rIDとhID,iとの組である。つまり、分散ユーザ秘密鍵生成部140は、乱数rIDのシェア(分散値)と、第1のデータとの組を、分散ユーザ秘密鍵として生成する。ここで、第1のデータは、乱数βのシェア及び乱数rIDのシェアによって得られるユーザ秘密鍵の要素に対して乱数wのシェアを乗算して得られた積(第2の積)、及びv(第1の値)を要素とする。
 図9の説明に戻る。複数の鍵発行装置100それぞれの送信部150は、分散ユーザ秘密鍵を、ユーザ装置200に送信する(ステップS160)。具体的には、鍵発行装置100-iの送信部150は、識別情報IDに対応するユーザのユーザ装置200に対して、分散ユーザ秘密鍵dkID,iを送信する。これにより、識別情報IDに対応するユーザ装置200は、複数の鍵発行装置100-1~100-nから、分散ユーザ秘密鍵dkID,i(i=1,・・・,n)を取得する。
 ユーザ装置200は、ユーザ秘密鍵を生成する(ステップS162)。具体的には、識別情報IDに対応するユーザ装置200のユーザ秘密鍵生成部210は、複数の分散ユーザ秘密鍵dkID,iを用いて、ユーザ秘密鍵dkID=(rID,hID)を生成する。ユーザ秘密鍵生成部210は、上述した復元部110と実質的に同様に機能によって、S162の処理を行ってもよい。ユーザ秘密鍵生成部210によって生成されたユーザ秘密鍵は、ユーザ秘密鍵記憶部220に記憶される。
 さらに具体的には、ユーザ秘密鍵生成部210は、以下の式(32)によってrIDを生成する。
Figure JPOXMLDOC01-appb-M000032
  ・・・(32)
 また、ユーザ秘密鍵生成部210は、以下の式(33)によってhIDを生成する。なお、上述したように、h=gβであることに留意されたい。
Figure JPOXMLDOC01-appb-M000033
  ・・・(33)
 なお、ユーザ秘密鍵生成部210は、全ての鍵発行装置100-1~100-nからn個全ての{dkID,i}={dkID,1,・・・,dkID,n}を取得して式(32)及び式(33)に示す計算を行う必要はない。つまり、ユーザ秘密鍵生成部210は、t個以上の[rIDを取得することで、rIDを生成することができる。同様に、ユーザ秘密鍵生成部210は、t個以上のhID,iを取得することで、hIDを生成することができる。
 また、式(30)と式(33)とを比較すると、ユーザ装置200におけるユーザ秘密鍵生成部210の処理において、乱数wが除去されていることが分かる。すなわち、hID,iを式(30)で示すような形式とすることで、乱数wが除去される。したがって、分散ユーザ秘密鍵生成部140は、複数の鍵発行装置100から得られる分散ユーザ秘密鍵を用いてユーザ秘密鍵が取得される際に乱数wのシェアが除去されるように、分散ユーザ秘密鍵を生成していると言える。このようにして、ユーザ秘密鍵の要素でない乱数wが除去されることとなる。
 なお、非特許文献1においてもそうであるように、IB-PREにおけるユーザ秘密鍵は、dkID=(rID,hID)といったように、2つの値の組で構成される形式となっている。このように、ユーザ秘密鍵が組の形式となっていることにより、暗号文を再暗号化することができる。なお、IBEにかかる技術を開示する非特許文献2及び非特許文献3では、ユーザ秘密鍵が1つの値で構成される形式となっている。したがって、ユーザ秘密鍵の形式が、IB-PREとIBEとで異なる。したがって、上述したように、非特許文献1に関する技術と、非特許文献2及び非特許文献3に関する技術とを単純に組み合わせることは、極めて困難である。
 また、実施の形態1にかかる鍵発行装置100は、上述した構成によって、ユーザ秘密鍵、及びユーザ秘密鍵の要素(乱数α、乱数β及び乱数rID)が、どの鍵発行装置100にも知られないまま、ユーザ秘密鍵を生成させることができる。したがって、実施の形態1にかかる構成によって、IDベース代理人再暗号化の技術において鍵発行機関が悪意を持っている場合であっても鍵発行機関によって暗号文が復号されることを抑制することが可能となる。
 暗号化装置60は、暗号文を作成する(ステップS170)。暗号化装置60は、非特許文献1の方式と実質的に同様にして、平文から暗号文を作成してもよい。暗号化装置60によって作成された暗号文は、再暗号化装置300の暗号文記憶部320に記憶される。暗号化装置60は、以下の式(34)によって、平文mから暗号文CIDを生成する。これにより、IDに関するユーザのユーザ秘密鍵で復号可能な暗号文が生成される。なお、マスタ公開鍵mpk及び識別情報IDによって、IDに対応するユーザに関する公開鍵が生成され得ることに留意されたい。
Figure JPOXMLDOC01-appb-M000034
  ・・・(34)
 なお、ユーザi(i=A,B,C,D)のユーザ秘密鍵で復号可能な暗号文を生成する場合、暗号化装置60は、以下の式(35)によって、平文mから暗号文C_(ID)を生成する。なお、IDは、ユーザiの識別情報である。
Figure JPOXMLDOC01-appb-M000035
  ・・・(35)
 ユーザ装置200の再暗号化鍵生成部230は、再暗号化鍵を生成する(ステップS174)。再暗号化鍵生成部230は、ユーザ秘密鍵を用いて再暗号化鍵を生成する。再暗号化鍵生成部230は、非特許文献1の方式と実質的に同様にして、再暗号化鍵を生成してもよい。
 再暗号化鍵生成部230は、以下の式(36)によって、再暗号化鍵rk_(ID→ID)を生成する。なお、dk_(ID)は、ユーザiのユーザ秘密鍵である。また、IDは、ユーザj(i≠j、j=A,B,C,D)の識別情報である。したがって、再暗号化鍵rk_(ID→ID)は、第1のユーザ装置(ユーザiのユーザ装置200)で復号可能な暗号文を第2のユーザ装置(ユーザjのユーザ装置200)で復号可能とするための再暗号化鍵である。
Figure JPOXMLDOC01-appb-M000036
  ・・・(36)
 再暗号化装置300の再暗号化部330は、暗号文記憶部320に記憶された暗号文の再暗号化を行う(ステップS176)。再暗号化部330は、再暗号化鍵記憶部310に記憶された再暗号化鍵を用いて、複数のユーザ装置200の第1のユーザ装置に関するユーザ秘密鍵で復号可能な暗号文を、復号することなしに再暗号化する。再暗号化部330は、非特許文献1の方式と実質的に同様にして、再暗号化を行ってもよい。再暗号化された暗号文は、暗号文記憶部320に記憶されてもよい。
 再暗号化部330は、以下の式(37)によって、再暗号化を行う。つまり、再暗号化部330は、再暗号化鍵を用いて、第1のユーザ装置(ユーザiのユーザ装置200)に関するユーザ秘密鍵で復号可能な暗号文を、第2のユーザ装置(ユーザjのユーザ装置200)に関するユーザ秘密鍵で復号可能な暗号文に変換する。
Figure JPOXMLDOC01-appb-M000037
  ・・・(37)
 ユーザ装置200の復号部240は、暗号文を復号して平文を取得する(ステップS180)。復号部240は、対応するユーザのユーザ秘密鍵を用いて、暗号文を復号する。復号部240は、非特許文献1の方式と実質的に同様にして、暗号文を復号してもよい。
 S170の処理で作成された暗号文を復号する場合、復号部240は、以下の式(38)によって復号を行って、平文mを取得する。このとき、式(38)において、IDはユーザiの識別情報IDに対応する。
Figure JPOXMLDOC01-appb-M000038
  ・・・(38)
 一方、S176の処理で再暗号化された暗号文を復号する場合、復号部240は、以下の式(39)によって復号を行って、平文mを取得する。このとき、式(39)において、IDはユーザjの識別情報IDに対応する。つまり、第2のユーザ装置の復号部240は、第2のユーザ装置に関するユーザ秘密鍵を用いて、再暗号化された暗号文を復号する。
Figure JPOXMLDOC01-appb-M000039
  ・・・(39)
<注記>
 なお、鍵発行装置100(鍵発行機関)の追加又は削除を行う場合、単にマスタ鍵のシェアの再分散を行うことでは問題があることに留意されたい。なぜならば、以下に示すように、最初に設定したt(不正者数)の値を単に変更することが困難であるからである。
 例えば、3個の鍵発行装置100(n=3)があり、1個の鍵発行装置100までの不正を許容する(t=1)と仮定する。このとき、「n/2>t」が成り立つので、ユーザ秘密鍵の漏洩といった問題がなく、システムが動作する。
 この場合において、鍵発行装置100を2個追加して、n=5となったとする。このとき、「n/2>tであれば良い」と判断して、t=2として、2個の鍵発行装置100までの不正が許容できるようになるわけではない。なぜならば、上述した秘密値の再分散前の元のシェアを保存しておけば、追加前の3個の鍵発行装置100のうちの2つの鍵発行装置100が協力することで、マスタ秘密鍵の要素となる乱数α等が得られてしまう。そして、結果として、本実施の形態では鍵発行装置100で生成されないマスタ秘密鍵が得られてしまう。
 したがって、tの変更を伴ってnを更新したい場合は、更新前の乱数を適切に削除するだけでなく、乱数α等の再セットアップ、再暗号化装置における再暗号化鍵の変更、及び暗号文の更新が必要である。乱数α等の再セットアップにより、公開鍵及び秘密鍵がリニューアルされる。また、再暗号化鍵の変更について、再暗号化鍵は、ユーザ装置200によって変更されてもいし、鍵発行装置100におけるマルチパーティ計算によって変更されてもよい。また、暗号文の更新は、その暗号文を復号可能なユーザ装置200が関与しないで、実行されてもよい。
 また、非特許文献3におけるmalicious安全な方式は、不正を検知したらプロトコルを打ち切るものである。しかしながら、不正が生じても常に正しく動作するような、robustnessな方式が求められる。これに対し、SSSの各参加者(鍵発行装置100)のシェアを複製型秘密分散とし、乗算時に多数決を取るようにしてもよい。このように、シェアを各参加者(鍵発行装置100)で複製して持つことで、計算結果の改竄を試みるような攻撃者に対しても安全である。
 また、CCA(Chosen Ciphertext Attack:選択的暗号文攻撃)安全性について、例えば非特許文献5を参照して、藤崎・岡本変換を用いることにより、CCA安全を達成した方式を構成できる。すなわち、藤崎・岡本変換を、本実施の形態にかかる暗号化方式(S170)に適用することで、CCA安全を達成できる。
(実施の形態2)
 次に、実施の形態2について説明する。実施の形態2は、上述した実施の形態にかかる構成の概要を示している。なお、実施の形態2にかかる情報処理システム50は、実施の形態1にかかるものと実質的に同様であるので、説明を省略する。つまり、実施の形態2にかかる情報処理システム50は、複数の鍵発行装置を有する。
 図13は、実施の形態2にかかる鍵発行装置10の構成を示す図である。実施の形態2にかかる鍵発行装置10は、実施の形態1にかかる鍵発行装置100に対応する。実施の形態2にかかる鍵発行装置10は、分散マスタ鍵生成部12と、分散ユーザ秘密鍵生成部14と、送信部16とを有する。分散マスタ鍵生成部12は、分散マスタ鍵生成手段としての機能を有する。分散ユーザ秘密鍵生成部14は、分散ユーザ秘密鍵生成手段としての機能を有する。送信部16は、送信手段としての機能を有する。
 分散マスタ鍵生成部12は、実施の形態1にかかる分散マスタ鍵生成部120に対応する。分散マスタ鍵生成部12は、分散マスタ鍵生成部120の機能と実質的に同様の機能によって実現できる。分散マスタ鍵生成部12は、複数の鍵発行装置10に分散された状態の分散マスタ秘密鍵を少なくとも生成する。分散マスタ鍵生成部12は、秘匿される第1の乱数(α)が分散された状態の第1の乱数のシェア([α])と、秘匿される第2の乱数(β)が分散された状態の第2の乱数のシェア([β])とに基づいて、分散マスタ秘密鍵を生成する。
 分散ユーザ秘密鍵生成部14は、実施の形態1にかかる分散ユーザ秘密鍵生成部140に対応する。分散ユーザ秘密鍵生成部14は、分散ユーザ秘密鍵生成部140の機能と実質的に同様の機能によって実現できる。分散ユーザ秘密鍵生成部14は、分散マスタ秘密鍵とユーザの識別情報とを用いて、分散ユーザ秘密鍵を生成する。ここで、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて、ユーザ秘密鍵が取得される。分散ユーザ秘密鍵生成部14は、秘匿されユーザ秘密鍵の要素となる第3の乱数(rID)が分散された状態の第3の乱数のシェア([rID])と、秘匿される第4の乱数(w)が分散された状態の第4の乱数のシェア([w])を取得する。分散ユーザ秘密鍵生成部14は、分散マスタ秘密鍵の要素である第1の乱数のシェア、分散マスタ秘密鍵の要素である第2の乱数のシェア、及び第3の乱数のシェアのそれぞれに対して、第4の乱数のシェアを乗算する。分散ユーザ秘密鍵生成部14は、乗算の結果得られた積に基づいて、分散ユーザ秘密鍵を生成する。
 送信部16は、分散ユーザ秘密鍵をユーザのユーザ装置200に送信する。ユーザ装置200は、上述したように、複数の鍵発行装置10から取得された複数の分散ユーザ秘密鍵を用いて、ユーザ秘密鍵を生成することができる。
 実施の形態2にかかる鍵発行装置10は、上述した構成によって、上述したように、ユーザ秘密鍵、及びユーザ秘密鍵の要素(第1の乱数、第2の乱数及び第3の乱数)が、どの鍵発行装置10にも知られないまま、ユーザ秘密鍵を生成させることができる。したがって、IDベース代理人再暗号化の技術において鍵発行機関が悪意を持っている場合であっても鍵発行機関によって暗号文が復号されることを抑制することが可能となる。このことは、複数の鍵発行装置10を有する情報処理システム50、鍵発行装置10によって実行される鍵発行方法、及び鍵発行方法を実現するプログラムにおいても同様である。
(ハードウェア構成例)
 上述した各実施形態に係る装置およびシステムを、1つの計算処理装置(情報処理装置、コンピュータ)を用いて実現するハードウェア資源の構成例について説明する。但し、各実施形態に係る装置(鍵発行装置、暗号化装置、ユーザ装置及び再暗号化装置等)は、物理的または機能的に少なくとも2つの計算処理装置を用いて実現されてもよい。また、各実施形態に係る装置は、専用の装置として実現されてもよいし、汎用の情報処理装置で実現されてもよい。
 図14は、各実施形態に係る装置およびシステムを実現可能な計算処理装置のハードウェア構成例を概略的に示すブロック図である。計算処理装置1000は、CPU1001、揮発性記憶装置1002、ディスク1003、不揮発性記録媒体1004、及び、通信IF1007(IF:Interface)を有する。したがって、各実施形態に係る装置は、CPU1001、揮発性記憶装置1002、ディスク1003、不揮発性記録媒体1004、及び、通信IF1007を有しているといえる。計算処理装置1000は、入力装置1005及び出力装置1006に接続可能であってもよい。計算処理装置1000は、入力装置1005及び出力装置1006を備えていてもよい。また、計算処理装置1000は、通信IF1007を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
 不揮発性記録媒体1004は、コンピュータが読み取り可能な、たとえば、コンパクトディスク(Compact Disc)、デジタルバーサタイルディスク(Digital Versatile Disc)である。また、不揮発性記録媒体1004は、USB(Universal Serial Bus)メモリ、ソリッドステートドライブ(Solid State Drive)等であってもよい。不揮発性記録媒体1004は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。なお、不揮発性記録媒体1004は、上述した媒体に限定されない。また、不揮発性記録媒体1004の代わりに、通信IF1007及び通信ネットワークを介して、係るプログラムが供給されてもよい。
 揮発性記憶装置1002は、コンピュータが読み取り可能であって、一時的にデータを記憶することができる。揮発性記憶装置1002は、DRAM(dynamic random Access memory)、SRAM(static random Access memory)等のメモリ等である。
 すなわち、CPU1001は、ディスク1003に格納されているソフトウェアプログラム(コンピュータ・プログラム:以下、単に「プログラム」と称する)を、実行する際に揮発性記憶装置1002にコピーし、演算処理を実行する。CPU1001は、プログラムの実行に必要なデータを揮発性記憶装置1002から読み取る。表示が必要な場合、CPU1001は、出力装置1006に出力結果を表示する。外部からプログラムを入力する場合、CPU1001は、入力装置1005からプログラムを取得する。CPU1001は、上述した図6~図8,図13に示される各構成要素の機能(処理)に対応するプログラムを解釈し実行する。CPU1001は、上述した各実施形態において説明した処理を実行する。言い換えると、上述した図6~図8,図13に示される各構成要素の機能は、ディスク1003又は揮発性記憶装置1002に格納されたプログラムを、CPU1001が実行することによって実現され得る。
 すなわち、各実施形態は、上述したプログラムによっても成し得ると捉えることができる。さらに、上述したプログラムが記録されたコンピュータが読み取り可能な不揮発性の記録媒体によっても、上述した各実施形態は成し得ると捉えることができる。
(変形例)
 なお、本発明は上記実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述したフローチャートにおいて、各処理(ステップ)の順序は、適宜、変更可能である。また、複数ある処理(ステップ)のうちの1つ以上は、省略されてもよい。例えば、図9のS102の処理は省略されてもよい。また、図9のS139の処理は省略されてもよい。
 また、上述した実施の形態では、分散ユーザ秘密鍵生成部140は、[β]-[rID]に対して、[w]を乗算するとしたが、このような構成に限られない。以下の式(40)及び式(41)のように、[β]と0-[rID]とに対して、別個に、[w]を乗算してもよい。
Figure JPOXMLDOC01-appb-M000040
  ・・・(40)
Figure JPOXMLDOC01-appb-M000041
  ・・・(41)
 この場合、分散ユーザ秘密鍵の要素hID,iは、以下の式(42)で表される。
Figure JPOXMLDOC01-appb-M000042
  ・・・(42)
 また、この場合、ユーザ秘密鍵生成部210は、以下の式(43)によってhIDを生成する。
Figure JPOXMLDOC01-appb-M000043
  ・・・(43)
 一方、上記の式(40)~式(43)の場合、実施の形態1で示した式(26)、式(30)及び式(33)の場合と比較して、Mult()の演算が、1回多くなる。したがって、式(26)等のように演算することにより、Mult()の演算回数を抑制できるので、演算の効率を向上させることができる。つまり、第1のgのべき乗g^([(β-rID)・w])の、vを指数(冪指数)とする第2のべき乗(g^([(β-rID)・w]))^vを、hID,iとして計算することにより、演算の効率を向上させることが可能となる。
 上述の例において、プログラムは、コンピュータに読み込まれた場合に、実施形態で説明された1又はそれ以上の機能をコンピュータに行わせるための命令群(又はソフトウェアコード)を含む。プログラムは、非一時的なコンピュータ可読媒体又は実体のある記憶媒体に格納されてもよい。限定ではなく例として、コンピュータ可読媒体又は実体のある記憶媒体は、random-access memory(RAM)、read-only memory(ROM)、フラッシュメモリ、solid-state drive(SSD)又はその他のメモリ技術、CD-ROM、digital versatile disk(DVD)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なコンピュータ可読媒体又は通信媒体上で送信されてもよい。限定ではなく例として、一時的なコンピュータ可読媒体又は通信媒体は、電気的、光学的、音響的、またはその他の形式の伝搬信号を含む。
 以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
 (付記1)
 鍵発行装置であって、
 複数の鍵発行装置に分散された状態の分散マスタ秘密鍵を少なくとも生成する分散マスタ鍵生成手段と、
 前記分散マスタ秘密鍵とユーザの識別情報とを用いて、前記ユーザのユーザ秘密鍵が分散された状態の分散ユーザ秘密鍵であって、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される、分散ユーザ秘密鍵を生成する分散ユーザ秘密鍵生成手段と、
 前記分散ユーザ秘密鍵を前記ユーザのユーザ装置に送信する送信手段と、
 を有し、
 前記分散マスタ鍵生成手段は、秘匿される第1の乱数が分散された状態の第1の乱数のシェアと、秘匿される第2の乱数が分散された状態の第2の乱数のシェアとに基づいて、前記分散マスタ秘密鍵を生成し、
 前記分散ユーザ秘密鍵生成手段は、
  秘匿され前記ユーザ秘密鍵の要素となる第3の乱数が分散された状態の第3の乱数のシェアと、秘匿される第4の乱数が分散された状態の第4の乱数のシェアを取得し、
  前記分散マスタ秘密鍵の要素である前記第1の乱数のシェア、前記分散マスタ秘密鍵の要素である前記第2の乱数のシェア、及び前記第3の乱数のシェアのそれぞれに対して、前記第4の乱数のシェアを乗算し、
  乗算の結果得られた積に基づいて、前記分散ユーザ秘密鍵を生成する、
 鍵発行装置。
 (付記2)
 前記分散ユーザ秘密鍵生成手段は、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される際に前記第4の乱数のシェアが除去されるように、前記分散ユーザ秘密鍵を生成する、
 付記1に記載の鍵発行装置。
 (付記3)
 前記分散ユーザ秘密鍵生成手段は、前記第1の乱数のシェアと前記識別情報とによって得られる前記ユーザ秘密鍵の要素に対して前記第4の乱数のシェアを乗算して得られた第1の積に対して復元を行い、復元の結果得られた値の逆元である第1の値を用いて、前記分散ユーザ秘密鍵を生成する、
 付記2に記載の鍵発行装置。
 (付記4)
 前記分散ユーザ秘密鍵生成手段は、前記第3の乱数のシェアと、前記第2の乱数のシェア及び前記第3の乱数のシェアによって得られる前記ユーザ秘密鍵の要素に対して前記第4の乱数のシェアを乗算して得られた第2の積、及び前記第1の値を要素とする第1のデータとの組を、前記分散ユーザ秘密鍵として生成する、
 付記3に記載の鍵発行装置。
 (付記5)
 前記分散ユーザ秘密鍵生成手段は、予め定められた位数の乗法巡回群の生成元の第1のべき乗の、前記第1の値を指数とする第2のべき乗を、前記第1のデータとして生成し、
 前記第1のべき乗の指数は前記第2の積に対応する、
 付記4に記載の鍵発行装置。
 (付記6)
 前記分散マスタ鍵生成手段は、
  前記第1の乱数の要素となる第1の乱数要素と、前記第2の乱数の要素となる第2の乱数要素とを生成し、
  前記第1の乱数要素と、前記第2の乱数要素とに対して秘密分散を行い、秘密分散によって得られた前記第1の乱数要素のシェアと前記第2の乱数要素のシェアとを他の鍵発行装置に対して送信し、
  前記複数の鍵発行装置から取得した前記第1の乱数要素のシェアを用いて前記第1の乱数のシェアを取得し、前記複数の鍵発行装置から取得した前記第2の乱数要素のシェアを用いて前記第2の乱数のシェアを取得する、
 付記1に記載の鍵発行装置。
 (付記7)
 前記分散ユーザ秘密鍵生成手段は、
  秘匿され前記ユーザ秘密鍵の要素となる第3の乱数の要素となる第3の乱数要素と、秘匿される第4の乱数の要素となる第4の乱数要素とを生成し、
  前記第3の乱数要素と、前記第4の乱数要素とに対して秘密分散を行い、秘密分散によって得られた前記第3の乱数要素のシェアと前記第4の乱数要素のシェアとを他の鍵発行装置に対して送信し、
  前記複数の鍵発行装置から取得した前記第3の乱数要素のシェアを用いて前記第3の乱数のシェアを取得し、前記複数の鍵発行装置から取得した前記第4の乱数要素のシェアを用いて前記第4の乱数のシェアを取得する、
 付記1に記載の鍵発行装置。
 (付記8)
 マスタ公開鍵を生成するマスタ公開鍵生成手段、
 をさらに有し、
 前記分散マスタ鍵生成手段は、前記第1の乱数のシェアと前記第2の乱数のシェアとに基づいて、複数の鍵発行装置に分散された状態の分散マスタ公開鍵をさらに生成し、
 前記マスタ公開鍵生成手段は、前記複数の鍵発行装置から取得した前記分散マスタ公開鍵に基づいて、前記マスタ公開鍵を生成する、
 付記1に記載の鍵発行装置。
 (付記9)
 複数の鍵発行装置と、
 複数のユーザ装置と、
 再暗号化装置と、
 を有し、
 前記複数の鍵発行装置それぞれは、
  複数の鍵発行装置に分散された状態の分散マスタ秘密鍵を少なくとも生成する分散マスタ鍵生成手段と、
  前記分散マスタ秘密鍵とユーザの識別情報とを用いて、前記ユーザのユーザ秘密鍵が分散された状態の分散ユーザ秘密鍵であって、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される、分散ユーザ秘密鍵を生成する分散ユーザ秘密鍵生成手段と、
  前記分散ユーザ秘密鍵を前記ユーザのユーザ装置に送信する送信手段と、
 を有し、
 前記分散マスタ鍵生成手段は、秘匿される第1の乱数が分散された状態の第1の乱数のシェアと、秘匿される第2の乱数が分散された状態の第2の乱数のシェアとに基づいて、前記分散マスタ秘密鍵を生成し、
 前記分散ユーザ秘密鍵生成手段は、
  秘匿され前記ユーザ秘密鍵の要素となる第3の乱数が分散された状態の第3の乱数のシェアと、秘匿される第4の乱数が分散された状態の第4の乱数のシェアを取得し、
  前記分散マスタ秘密鍵の要素である前記第1の乱数のシェア、前記分散マスタ秘密鍵の要素である前記第2の乱数のシェア、及び前記第3の乱数のシェアのそれぞれに対して、前記第4の乱数のシェアを乗算し、
  乗算の結果得られた積に基づいて、前記分散ユーザ秘密鍵を生成し、
 前記複数のユーザ装置それぞれは、
 複数の前記鍵発行装置から取得した前記分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵を生成するユーザ秘密鍵生成手段と、
 前記ユーザ秘密鍵を用いて再暗号化鍵を生成する再暗号化鍵生成手段と、
 暗号文を復号して平文を取得する復号手段と、
 を有し、
 前記再暗号化装置は、前記複数のユーザ装置の第1のユーザ装置で復号可能な暗号文を前記複数のユーザ装置の第2のユーザ装置で復号可能とするための前記再暗号化鍵を用いて、前記第1のユーザ装置に関する前記ユーザ秘密鍵で復号可能な前記暗号文を、復号することなしに再暗号化し、
 前記第2のユーザ装置の復号手段は、当該第2のユーザ装置に関する前記ユーザ秘密鍵を用いて、前記再暗号化された前記暗号文を復号する、
 情報処理システム。
 (付記10)
 前記鍵発行装置の前記分散ユーザ秘密鍵生成手段は、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される際に前記第4の乱数のシェアが除去されるように、前記分散ユーザ秘密鍵を生成し、
 前記ユーザ装置の前記ユーザ秘密鍵生成手段は、前記第4の乱数のシェアが除去されるように前記分散ユーザ秘密鍵を生成する、
 付記9に記載の情報処理システム。
 (付記11)
 前記鍵発行装置の前記分散ユーザ秘密鍵生成手段は、前記第1の乱数のシェアと前記識別情報とによって得られる前記ユーザ秘密鍵の要素に対して前記第4の乱数のシェアを乗算して得られた第1の積に対して復元を行い、復元の結果得られた値の逆元である第1の値を用いて、前記分散ユーザ秘密鍵を生成する、
 付記10に記載の情報処理システム。
 (付記12)
 前記鍵発行装置の前記分散ユーザ秘密鍵生成手段は、前記第3の乱数のシェアと、前記第2の乱数のシェア及び前記第3の乱数のシェアによって得られる前記ユーザ秘密鍵の要素に対して前記第4の乱数のシェアを乗算して得られた第2の積、及び前記第1の値を要素とする第1のデータとの組を、前記分散ユーザ秘密鍵として生成し、
 前記ユーザ装置の前記ユーザ秘密鍵生成手段は、前記第3の乱数のシェア及び前記第2の積それぞれに対して復元を行うことにより、前記ユーザ秘密鍵を生成する、
 付記11に記載の情報処理システム。
 (付記13)
 前記鍵発行装置の前記分散ユーザ秘密鍵生成手段は、予め定められた位数の乗法巡回群の生成元の第1のべき乗の、前記第1の値を指数とする第2のべき乗を、前記第1のデータとして生成し、
 前記第1のべき乗の指数は前記第2の積に対応する、
 付記12に記載の情報処理システム。
 (付記14)
 前記鍵発行装置の前記分散マスタ鍵生成手段は、
  前記第1の乱数の要素となる第1の乱数要素と、前記第2の乱数の要素となる第2の乱数要素とを生成し、
  前記第1の乱数要素と、前記第2の乱数要素とに対して秘密分散を行い、秘密分散によって得られた前記第1の乱数要素のシェアと前記第2の乱数要素のシェアとを他の鍵発行装置に対して送信し、
  前記複数の鍵発行装置から取得した前記第1の乱数要素のシェアを用いて前記第1の乱数のシェアを取得し、前記複数の鍵発行装置から取得した前記第2の乱数要素のシェアを用いて前記第2の乱数のシェアを取得する、
 付記9に記載の情報処理システム。
 (付記15)
 前記鍵発行装置の前記分散ユーザ秘密鍵生成手段は、
  秘匿され前記ユーザ秘密鍵の要素となる第3の乱数の要素となる第3の乱数要素と、秘匿される第4の乱数の要素となる第4の乱数要素とを生成し、
  前記第3の乱数要素と、前記第4の乱数要素とに対して秘密分散を行い、秘密分散によって得られた前記第3の乱数要素のシェアと前記第4の乱数要素のシェアとを他の鍵発行装置に対して送信し、
  前記複数の鍵発行装置から取得した前記第3の乱数要素のシェアを用いて前記第3の乱数のシェアを取得し、前記複数の鍵発行装置から取得した前記第4の乱数要素のシェアを用いて前記第4の乱数のシェアを取得する、
 付記9に記載の情報処理システム。
 (付記16)
 前記鍵発行装置は、
 マスタ公開鍵を生成するマスタ公開鍵生成手段、
 をさらに有し、
 前記鍵発行装置の前記分散マスタ鍵生成手段は、前記第1の乱数のシェアと前記第2の乱数のシェアとに基づいて、複数の鍵発行装置に分散された状態の分散マスタ公開鍵をさらに生成し、
 前記鍵発行装置の前記マスタ公開鍵生成手段は、前記複数の鍵発行装置から取得した前記分散マスタ公開鍵に基づいて、前記マスタ公開鍵を生成し、
 前記ユーザ装置の前記再暗号化鍵生成手段は、前記マスタ公開鍵と前記ユーザ秘密鍵とを用いて再暗号化鍵を生成する、
 付記9に記載の情報処理システム。
 (付記17)
 秘匿される第1の乱数が分散された状態の第1の乱数のシェアと、秘匿される第2の乱数が分散された状態の第2の乱数のシェアとに基づいて、複数の鍵発行装置に分散された状態の分散マスタ秘密鍵を少なくとも生成し、
 前記分散マスタ秘密鍵とユーザの識別情報とを用いて、前記ユーザのユーザ秘密鍵が分散された状態の分散ユーザ秘密鍵であって、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される、分散ユーザ秘密鍵を生成し、その際に、秘匿され前記ユーザ秘密鍵の要素となる第3の乱数が分散された状態の第3の乱数のシェアと、秘匿される第4の乱数が分散された状態の第4の乱数のシェアを取得し、前記分散マスタ秘密鍵の要素である前記第1の乱数のシェア、前記分散マスタ秘密鍵の要素である前記第2の乱数のシェア、及び前記第3の乱数のシェアのそれぞれに対して、前記第4の乱数のシェアを乗算し、乗算の結果得られた積に基づいて、前記分散ユーザ秘密鍵を生成し、
 前記分散ユーザ秘密鍵を前記ユーザのユーザ装置に送信する、
 鍵発行方法。
 (付記18)
 複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される際に前記第4の乱数のシェアが除去されるように、前記分散ユーザ秘密鍵を生成する、
 付記17に記載の鍵発行方法。
 (付記19)
 前記第1の乱数のシェアと前記識別情報とによって得られる前記ユーザ秘密鍵の要素に対して前記第4の乱数のシェアを乗算して得られた第1の積に対して復元を行い、復元の結果得られた値の逆元である第1の値を用いて、前記分散ユーザ秘密鍵を生成する、
 付記18に記載の鍵発行方法。
 (付記20)
 前記第3の乱数のシェアと、前記第2の乱数のシェア及び前記第3の乱数のシェアによって得られる前記ユーザ秘密鍵の要素に対して前記第4の乱数のシェアを乗算して得られた第2の積、及び前記第1の値を要素とする第1のデータとの組を、前記分散ユーザ秘密鍵として生成する、
 付記19に記載の鍵発行方法。
 (付記21)
 予め定められた位数の乗法巡回群の生成元の第1のべき乗の、前記第1の値を指数とする第2のべき乗を、前記第1のデータとして生成し、
 前記第1のべき乗の指数は前記第2の積に対応する、
 付記20に記載の鍵発行方法。
 (付記22)
 前記第1の乱数の要素となる第1の乱数要素と、前記第2の乱数の要素となる第2の乱数要素とを生成し、
 前記第1の乱数要素と、前記第2の乱数要素とに対して秘密分散を行い、秘密分散によって得られた前記第1の乱数要素のシェアと前記第2の乱数要素のシェアとを他の鍵発行装置に対して送信し、
 前記複数の鍵発行装置から取得した前記第1の乱数要素のシェアを用いて前記第1の乱数のシェアを取得し、前記複数の鍵発行装置から取得した前記第2の乱数要素のシェアを用いて前記第2の乱数のシェアを取得する、
 付記17に記載の鍵発行方法。
 (付記23)
 秘匿され前記ユーザ秘密鍵の要素となる第3の乱数の要素となる第3の乱数要素と、秘匿される第4の乱数の要素となる第4の乱数要素とを生成し、
 前記第3の乱数要素と、前記第4の乱数要素とに対して秘密分散を行い、秘密分散によって得られた前記第3の乱数要素のシェアと前記第4の乱数要素のシェアとを他の鍵発行装置に対して送信し、
 前記複数の鍵発行装置から取得した前記第3の乱数要素のシェアを用いて前記第3の乱数のシェアを取得し、前記複数の鍵発行装置から取得した前記第4の乱数要素のシェアを用いて前記第4の乱数のシェアを取得する、
 付記17に記載の鍵発行方法。
 (付記24)
 前記第1の乱数のシェアと前記第2の乱数のシェアとに基づいて、複数の鍵発行装置に分散された状態の分散マスタ公開鍵をさらに生成し、
 前記複数の鍵発行装置から取得した前記分散マスタ公開鍵に基づいて、マスタ公開鍵を生成する、
 付記17に記載の鍵発行方法。
 (付記25)
 複数の鍵発行装置それぞれによって、
  秘匿される第1の乱数が分散された状態の第1の乱数のシェアと、秘匿される第2の乱数が分散された状態の第2の乱数のシェアとに基づいて、複数の鍵発行装置に分散された状態の分散マスタ秘密鍵を少なくとも生成し、
  前記分散マスタ秘密鍵とユーザの識別情報とを用いて、前記ユーザのユーザ秘密鍵が分散された状態の分散ユーザ秘密鍵であって、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される、分散ユーザ秘密鍵を生成し、その際に、秘匿され前記ユーザ秘密鍵の要素となる第3の乱数が分散された状態の第3の乱数のシェアと、秘匿される第4の乱数が分散された状態の第4の乱数のシェアを取得し、前記分散マスタ秘密鍵の要素である前記第1の乱数のシェア、前記分散マスタ秘密鍵の要素である前記第2の乱数のシェア、及び前記第3の乱数のシェアのそれぞれに対して、前記第4の乱数のシェアを乗算し、乗算の結果得られた積に基づいて、前記分散ユーザ秘密鍵を生成し、
  前記分散ユーザ秘密鍵を前記ユーザのユーザ装置に送信し、
 前記ユーザ装置によって、
  複数の前記鍵発行装置から取得した前記分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵を生成し、
  前記ユーザ秘密鍵を用いて再暗号化鍵を生成し、
  暗号文を復号して平文を取得し、
 再暗号化装置によって、第1のユーザ装置で復号可能な暗号文を第2のユーザ装置で復号可能とするための前記再暗号化鍵を用いて、前記第1のユーザ装置に関する前記ユーザ秘密鍵で復号可能な前記暗号文を、復号することなしに再暗号化し、
 前記第2のユーザ装置によって当該第2のユーザ装置に関する前記ユーザ秘密鍵を用いて、前記再暗号化された前記暗号文を復号する、
 情報処理方法。
 (付記26)
 前記鍵発行装置によって、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される際に前記第4の乱数のシェアが除去されるように、前記分散ユーザ秘密鍵を生成し、
 前記ユーザ装置によって、前記第4の乱数のシェアが除去されるように前記分散ユーザ秘密鍵を生成する、
 付記25に記載の情報処理方法。
 (付記27)
 前記鍵発行装置によって、前記第1の乱数のシェアと前記識別情報とによって得られる前記ユーザ秘密鍵の要素に対して前記第4の乱数のシェアを乗算して得られた第1の積に対して復元を行い、復元の結果得られた値の逆元である第1の値を用いて、前記分散ユーザ秘密鍵を生成する、
 付記26に記載の情報処理方法。
 (付記28)
 前記鍵発行装置によって、前記第3の乱数のシェアと、前記第2の乱数のシェア及び前記第3の乱数のシェアによって得られる前記ユーザ秘密鍵の要素に対して前記第4の乱数のシェアを乗算して得られた第2の積、及び前記第1の値を要素とする第1のデータとの組を、前記分散ユーザ秘密鍵として生成し、
 前記ユーザ装置によって、前記第3の乱数のシェア及び前記第2の積それぞれに対して復元を行うことにより、前記ユーザ秘密鍵を生成する、
 付記27に記載の情報処理方法。
 (付記29)
 前記鍵発行装置によって、予め定められた位数の乗法巡回群の生成元の第1のべき乗の、前記第1の値を指数とする第2のべき乗を、前記第1のデータとして生成し、
 前記第1のべき乗の指数は前記第2の積に対応する、
 付記28に記載の情報処理方法。
 (付記30)
 前記鍵発行装置によって、
  前記第1の乱数の要素となる第1の乱数要素と、前記第2の乱数の要素となる第2の乱数要素とを生成し、
  前記第1の乱数要素と、前記第2の乱数要素とに対して秘密分散を行い、秘密分散によって得られた前記第1の乱数要素のシェアと前記第2の乱数要素のシェアとを他の鍵発行装置に対して送信し、
  前記複数の鍵発行装置から取得した前記第1の乱数要素のシェアを用いて前記第1の乱数のシェアを取得し、前記複数の鍵発行装置から取得した前記第2の乱数要素のシェアを用いて前記第2の乱数のシェアを取得する、
 付記25に記載の情報処理方法。
 (付記31)
 前記鍵発行装置によって、
  秘匿され前記ユーザ秘密鍵の要素となる第3の乱数の要素となる第3の乱数要素と、秘匿される第4の乱数の要素となる第4の乱数要素とを生成し、
  前記第3の乱数要素と、前記第4の乱数要素とに対して秘密分散を行い、秘密分散によって得られた前記第3の乱数要素のシェアと前記第4の乱数要素のシェアとを他の鍵発行装置に対して送信し、
  前記複数の鍵発行装置から取得した前記第3の乱数要素のシェアを用いて前記第3の乱数のシェアを取得し、前記複数の鍵発行装置から取得した前記第4の乱数要素のシェアを用いて前記第4の乱数のシェアを取得する、
 付記25に記載の情報処理方法。
 (付記32)
 前記鍵発行装置によって、
  前記第1の乱数のシェアと前記第2の乱数のシェアとに基づいて、複数の鍵発行装置に分散された状態の分散マスタ公開鍵をさらに生成し、
  前記複数の鍵発行装置から取得した前記分散マスタ公開鍵に基づいて、マスタ公開鍵を生成し、
 前記ユーザ装置によって、前記マスタ公開鍵と前記ユーザ秘密鍵とを用いて再暗号化鍵を生成する、
 付記25に記載の情報処理方法。
 (付記33)
 秘匿される第1の乱数が分散された状態の第1の乱数のシェアと、秘匿される第2の乱数が分散された状態の第2の乱数のシェアとに基づいて、複数の鍵発行装置に分散された状態の分散マスタ秘密鍵を少なくとも生成するステップと、
 前記分散マスタ秘密鍵とユーザの識別情報とを用いて、前記ユーザのユーザ秘密鍵が分散された状態の分散ユーザ秘密鍵であって、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される、分散ユーザ秘密鍵を生成し、その際に、秘匿され前記ユーザ秘密鍵の要素となる第3の乱数が分散された状態の第3の乱数のシェアと、秘匿される第4の乱数が分散された状態の第4の乱数のシェアを取得し、前記分散マスタ秘密鍵の要素である前記第1の乱数のシェア、前記分散マスタ秘密鍵の要素である前記第2の乱数のシェア、及び前記第3の乱数のシェアのそれぞれに対して、前記第4の乱数のシェアを乗算し、乗算の結果得られた積に基づいて、前記分散ユーザ秘密鍵を生成するステップと、
 前記分散ユーザ秘密鍵を前記ユーザのユーザ装置に送信するステップと、
 をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
10 鍵発行装置
12 分散マスタ鍵生成部
14 分散ユーザ秘密鍵生成部
16 送信部
50 情報処理システム
60 暗号化装置
100 鍵発行装置
102 乱数生成部
104 分散部
106 乱数シェア取得部
108 シェア乗算部
110 復元部
112 シェア記憶部
120 分散マスタ鍵生成部
130 マスタ公開鍵生成部
140 分散ユーザ秘密鍵生成部
150 送信部
200 ユーザ装置
210 ユーザ秘密鍵生成部
220 ユーザ秘密鍵記憶部
230 再暗号化鍵生成部
240 復号部
300 再暗号化装置
310 再暗号化鍵記憶部
320 暗号文記憶部
330 再暗号化部

Claims (33)

  1.  鍵発行装置であって、
     複数の鍵発行装置に分散された状態の分散マスタ秘密鍵を少なくとも生成する分散マスタ鍵生成手段と、
     前記分散マスタ秘密鍵とユーザの識別情報とを用いて、前記ユーザのユーザ秘密鍵が分散された状態の分散ユーザ秘密鍵であって、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される、分散ユーザ秘密鍵を生成する分散ユーザ秘密鍵生成手段と、
     前記分散ユーザ秘密鍵を前記ユーザのユーザ装置に送信する送信手段と、
     を有し、
     前記分散マスタ鍵生成手段は、秘匿される第1の乱数が分散された状態の第1の乱数のシェアと、秘匿される第2の乱数が分散された状態の第2の乱数のシェアとに基づいて、前記分散マスタ秘密鍵を生成し、
     前記分散ユーザ秘密鍵生成手段は、
      秘匿され前記ユーザ秘密鍵の要素となる第3の乱数が分散された状態の第3の乱数のシェアと、秘匿される第4の乱数が分散された状態の第4の乱数のシェアを取得し、
      前記分散マスタ秘密鍵の要素である前記第1の乱数のシェア、前記分散マスタ秘密鍵の要素である前記第2の乱数のシェア、及び前記第3の乱数のシェアのそれぞれに対して、前記第4の乱数のシェアを乗算し、
      乗算の結果得られた積に基づいて、前記分散ユーザ秘密鍵を生成する、
     鍵発行装置。
  2.  前記分散ユーザ秘密鍵生成手段は、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される際に前記第4の乱数のシェアが除去されるように、前記分散ユーザ秘密鍵を生成する、
     請求項1に記載の鍵発行装置。
  3.  前記分散ユーザ秘密鍵生成手段は、前記第1の乱数のシェアと前記識別情報とによって得られる前記ユーザ秘密鍵の要素に対して前記第4の乱数のシェアを乗算して得られた第1の積に対して復元を行い、復元の結果得られた値の逆元である第1の値を用いて、前記分散ユーザ秘密鍵を生成する、
     請求項2に記載の鍵発行装置。
  4.  前記分散ユーザ秘密鍵生成手段は、前記第3の乱数のシェアと、前記第2の乱数のシェア及び前記第3の乱数のシェアによって得られる前記ユーザ秘密鍵の要素に対して前記第4の乱数のシェアを乗算して得られた第2の積、及び前記第1の値を要素とする第1のデータとの組を、前記分散ユーザ秘密鍵として生成する、
     請求項3に記載の鍵発行装置。
  5.  前記分散ユーザ秘密鍵生成手段は、予め定められた位数の乗法巡回群の生成元の第1のべき乗の、前記第1の値を指数とする第2のべき乗を、前記第1のデータとして生成し、
     前記第1のべき乗の指数は前記第2の積に対応する、
     請求項4に記載の鍵発行装置。
  6.  前記分散マスタ鍵生成手段は、
      前記第1の乱数の要素となる第1の乱数要素と、前記第2の乱数の要素となる第2の乱数要素とを生成し、
      前記第1の乱数要素と、前記第2の乱数要素とに対して秘密分散を行い、秘密分散によって得られた前記第1の乱数要素のシェアと前記第2の乱数要素のシェアとを他の鍵発行装置に対して送信し、
      前記複数の鍵発行装置から取得した前記第1の乱数要素のシェアを用いて前記第1の乱数のシェアを取得し、前記複数の鍵発行装置から取得した前記第2の乱数要素のシェアを用いて前記第2の乱数のシェアを取得する、
     請求項1に記載の鍵発行装置。
  7.  前記分散ユーザ秘密鍵生成手段は、
      秘匿され前記ユーザ秘密鍵の要素となる第3の乱数の要素となる第3の乱数要素と、秘匿される第4の乱数の要素となる第4の乱数要素とを生成し、
      前記第3の乱数要素と、前記第4の乱数要素とに対して秘密分散を行い、秘密分散によって得られた前記第3の乱数要素のシェアと前記第4の乱数要素のシェアとを他の鍵発行装置に対して送信し、
      前記複数の鍵発行装置から取得した前記第3の乱数要素のシェアを用いて前記第3の乱数のシェアを取得し、前記複数の鍵発行装置から取得した前記第4の乱数要素のシェアを用いて前記第4の乱数のシェアを取得する、
     請求項1に記載の鍵発行装置。
  8.  マスタ公開鍵を生成するマスタ公開鍵生成手段、
     をさらに有し、
     前記分散マスタ鍵生成手段は、前記第1の乱数のシェアと前記第2の乱数のシェアとに基づいて、複数の鍵発行装置に分散された状態の分散マスタ公開鍵をさらに生成し、
     前記マスタ公開鍵生成手段は、前記複数の鍵発行装置から取得した前記分散マスタ公開鍵に基づいて、前記マスタ公開鍵を生成する、
     請求項1に記載の鍵発行装置。
  9.  複数の鍵発行装置と、
     複数のユーザ装置と、
     再暗号化装置と、
     を有し、
     前記複数の鍵発行装置それぞれは、
      複数の鍵発行装置に分散された状態の分散マスタ秘密鍵を少なくとも生成する分散マスタ鍵生成手段と、
      前記分散マスタ秘密鍵とユーザの識別情報とを用いて、前記ユーザのユーザ秘密鍵が分散された状態の分散ユーザ秘密鍵であって、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される、分散ユーザ秘密鍵を生成する分散ユーザ秘密鍵生成手段と、
      前記分散ユーザ秘密鍵を前記ユーザのユーザ装置に送信する送信手段と、
     を有し、
     前記分散マスタ鍵生成手段は、秘匿される第1の乱数が分散された状態の第1の乱数のシェアと、秘匿される第2の乱数が分散された状態の第2の乱数のシェアとに基づいて、前記分散マスタ秘密鍵を生成し、
     前記分散ユーザ秘密鍵生成手段は、
      秘匿され前記ユーザ秘密鍵の要素となる第3の乱数が分散された状態の第3の乱数のシェアと、秘匿される第4の乱数が分散された状態の第4の乱数のシェアを取得し、
      前記分散マスタ秘密鍵の要素である前記第1の乱数のシェア、前記分散マスタ秘密鍵の要素である前記第2の乱数のシェア、及び前記第3の乱数のシェアのそれぞれに対して、前記第4の乱数のシェアを乗算し、
      乗算の結果得られた積に基づいて、前記分散ユーザ秘密鍵を生成し、
     前記複数のユーザ装置それぞれは、
     複数の前記鍵発行装置から取得した前記分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵を生成するユーザ秘密鍵生成手段と、
     前記ユーザ秘密鍵を用いて再暗号化鍵を生成する再暗号化鍵生成手段と、
     暗号文を復号して平文を取得する復号手段と、
     を有し、
     前記再暗号化装置は、前記複数のユーザ装置の第1のユーザ装置で復号可能な暗号文を前記複数のユーザ装置の第2のユーザ装置で復号可能とするための前記再暗号化鍵を用いて、前記第1のユーザ装置に関する前記ユーザ秘密鍵で復号可能な前記暗号文を、復号することなしに再暗号化し、
     前記第2のユーザ装置の復号手段は、当該第2のユーザ装置に関する前記ユーザ秘密鍵を用いて、前記再暗号化された前記暗号文を復号する、
     情報処理システム。
  10.  前記鍵発行装置の前記分散ユーザ秘密鍵生成手段は、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される際に前記第4の乱数のシェアが除去されるように、前記分散ユーザ秘密鍵を生成し、
     前記ユーザ装置の前記ユーザ秘密鍵生成手段は、前記第4の乱数のシェアが除去されるように前記分散ユーザ秘密鍵を生成する、
     請求項9に記載の情報処理システム。
  11.  前記鍵発行装置の前記分散ユーザ秘密鍵生成手段は、前記第1の乱数のシェアと前記識別情報とによって得られる前記ユーザ秘密鍵の要素に対して前記第4の乱数のシェアを乗算して得られた第1の積に対して復元を行い、復元の結果得られた値の逆元である第1の値を用いて、前記分散ユーザ秘密鍵を生成する、
     請求項10に記載の情報処理システム。
  12.  前記鍵発行装置の前記分散ユーザ秘密鍵生成手段は、前記第3の乱数のシェアと、前記第2の乱数のシェア及び前記第3の乱数のシェアによって得られる前記ユーザ秘密鍵の要素に対して前記第4の乱数のシェアを乗算して得られた第2の積、及び前記第1の値を要素とする第1のデータとの組を、前記分散ユーザ秘密鍵として生成し、
     前記ユーザ装置の前記ユーザ秘密鍵生成手段は、前記第3の乱数のシェア及び前記第2の積それぞれに対して復元を行うことにより、前記ユーザ秘密鍵を生成する、
     請求項11に記載の情報処理システム。
  13.  前記鍵発行装置の前記分散ユーザ秘密鍵生成手段は、予め定められた位数の乗法巡回群の生成元の第1のべき乗の、前記第1の値を指数とする第2のべき乗を、前記第1のデータとして生成し、
     前記第1のべき乗の指数は前記第2の積に対応する、
     請求項12に記載の情報処理システム。
  14.  前記鍵発行装置の前記分散マスタ鍵生成手段は、
      前記第1の乱数の要素となる第1の乱数要素と、前記第2の乱数の要素となる第2の乱数要素とを生成し、
      前記第1の乱数要素と、前記第2の乱数要素とに対して秘密分散を行い、秘密分散によって得られた前記第1の乱数要素のシェアと前記第2の乱数要素のシェアとを他の鍵発行装置に対して送信し、
      前記複数の鍵発行装置から取得した前記第1の乱数要素のシェアを用いて前記第1の乱数のシェアを取得し、前記複数の鍵発行装置から取得した前記第2の乱数要素のシェアを用いて前記第2の乱数のシェアを取得する、
     請求項9に記載の情報処理システム。
  15.  前記鍵発行装置の前記分散ユーザ秘密鍵生成手段は、
      秘匿され前記ユーザ秘密鍵の要素となる第3の乱数の要素となる第3の乱数要素と、秘匿される第4の乱数の要素となる第4の乱数要素とを生成し、
      前記第3の乱数要素と、前記第4の乱数要素とに対して秘密分散を行い、秘密分散によって得られた前記第3の乱数要素のシェアと前記第4の乱数要素のシェアとを他の鍵発行装置に対して送信し、
      前記複数の鍵発行装置から取得した前記第3の乱数要素のシェアを用いて前記第3の乱数のシェアを取得し、前記複数の鍵発行装置から取得した前記第4の乱数要素のシェアを用いて前記第4の乱数のシェアを取得する、
     請求項9に記載の情報処理システム。
  16.  前記鍵発行装置は、
     マスタ公開鍵を生成するマスタ公開鍵生成手段、
     をさらに有し、
     前記鍵発行装置の前記分散マスタ鍵生成手段は、前記第1の乱数のシェアと前記第2の乱数のシェアとに基づいて、複数の鍵発行装置に分散された状態の分散マスタ公開鍵をさらに生成し、
     前記鍵発行装置の前記マスタ公開鍵生成手段は、前記複数の鍵発行装置から取得した前記分散マスタ公開鍵に基づいて、前記マスタ公開鍵を生成し、
     前記ユーザ装置の前記再暗号化鍵生成手段は、前記マスタ公開鍵と前記ユーザ秘密鍵とを用いて再暗号化鍵を生成する、
     請求項9に記載の情報処理システム。
  17.  秘匿される第1の乱数が分散された状態の第1の乱数のシェアと、秘匿される第2の乱数が分散された状態の第2の乱数のシェアとに基づいて、複数の鍵発行装置に分散された状態の分散マスタ秘密鍵を少なくとも生成し、
     前記分散マスタ秘密鍵とユーザの識別情報とを用いて、前記ユーザのユーザ秘密鍵が分散された状態の分散ユーザ秘密鍵であって、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される、分散ユーザ秘密鍵を生成し、その際に、秘匿され前記ユーザ秘密鍵の要素となる第3の乱数が分散された状態の第3の乱数のシェアと、秘匿される第4の乱数が分散された状態の第4の乱数のシェアを取得し、前記分散マスタ秘密鍵の要素である前記第1の乱数のシェア、前記分散マスタ秘密鍵の要素である前記第2の乱数のシェア、及び前記第3の乱数のシェアのそれぞれに対して、前記第4の乱数のシェアを乗算し、乗算の結果得られた積に基づいて、前記分散ユーザ秘密鍵を生成し、
     前記分散ユーザ秘密鍵を前記ユーザのユーザ装置に送信する、
     鍵発行方法。
  18.  複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される際に前記第4の乱数のシェアが除去されるように、前記分散ユーザ秘密鍵を生成する、
     請求項17に記載の鍵発行方法。
  19.  前記第1の乱数のシェアと前記識別情報とによって得られる前記ユーザ秘密鍵の要素に対して前記第4の乱数のシェアを乗算して得られた第1の積に対して復元を行い、復元の結果得られた値の逆元である第1の値を用いて、前記分散ユーザ秘密鍵を生成する、
     請求項18に記載の鍵発行方法。
  20.  前記第3の乱数のシェアと、前記第2の乱数のシェア及び前記第3の乱数のシェアによって得られる前記ユーザ秘密鍵の要素に対して前記第4の乱数のシェアを乗算して得られた第2の積、及び前記第1の値を要素とする第1のデータとの組を、前記分散ユーザ秘密鍵として生成する、
     請求項19に記載の鍵発行方法。
  21.  予め定められた位数の乗法巡回群の生成元の第1のべき乗の、前記第1の値を指数とする第2のべき乗を、前記第1のデータとして生成し、
     前記第1のべき乗の指数は前記第2の積に対応する、
     請求項20に記載の鍵発行方法。
  22.  前記第1の乱数の要素となる第1の乱数要素と、前記第2の乱数の要素となる第2の乱数要素とを生成し、
     前記第1の乱数要素と、前記第2の乱数要素とに対して秘密分散を行い、秘密分散によって得られた前記第1の乱数要素のシェアと前記第2の乱数要素のシェアとを他の鍵発行装置に対して送信し、
     前記複数の鍵発行装置から取得した前記第1の乱数要素のシェアを用いて前記第1の乱数のシェアを取得し、前記複数の鍵発行装置から取得した前記第2の乱数要素のシェアを用いて前記第2の乱数のシェアを取得する、
     請求項17に記載の鍵発行方法。
  23.  秘匿され前記ユーザ秘密鍵の要素となる第3の乱数の要素となる第3の乱数要素と、秘匿される第4の乱数の要素となる第4の乱数要素とを生成し、
     前記第3の乱数要素と、前記第4の乱数要素とに対して秘密分散を行い、秘密分散によって得られた前記第3の乱数要素のシェアと前記第4の乱数要素のシェアとを他の鍵発行装置に対して送信し、
     前記複数の鍵発行装置から取得した前記第3の乱数要素のシェアを用いて前記第3の乱数のシェアを取得し、前記複数の鍵発行装置から取得した前記第4の乱数要素のシェアを用いて前記第4の乱数のシェアを取得する、
     請求項17に記載の鍵発行方法。
  24.  前記第1の乱数のシェアと前記第2の乱数のシェアとに基づいて、複数の鍵発行装置に分散された状態の分散マスタ公開鍵をさらに生成し、
     前記複数の鍵発行装置から取得した前記分散マスタ公開鍵に基づいて、マスタ公開鍵を生成する、
     請求項17に記載の鍵発行方法。
  25.  複数の鍵発行装置それぞれによって、
      秘匿される第1の乱数が分散された状態の第1の乱数のシェアと、秘匿される第2の乱数が分散された状態の第2の乱数のシェアとに基づいて、複数の鍵発行装置に分散された状態の分散マスタ秘密鍵を少なくとも生成し、
      前記分散マスタ秘密鍵とユーザの識別情報とを用いて、前記ユーザのユーザ秘密鍵が分散された状態の分散ユーザ秘密鍵であって、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される、分散ユーザ秘密鍵を生成し、その際に、秘匿され前記ユーザ秘密鍵の要素となる第3の乱数が分散された状態の第3の乱数のシェアと、秘匿される第4の乱数が分散された状態の第4の乱数のシェアを取得し、前記分散マスタ秘密鍵の要素である前記第1の乱数のシェア、前記分散マスタ秘密鍵の要素である前記第2の乱数のシェア、及び前記第3の乱数のシェアのそれぞれに対して、前記第4の乱数のシェアを乗算し、乗算の結果得られた積に基づいて、前記分散ユーザ秘密鍵を生成し、
      前記分散ユーザ秘密鍵を前記ユーザのユーザ装置に送信し、
     前記ユーザ装置によって、
      複数の前記鍵発行装置から取得した前記分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵を生成し、
      前記ユーザ秘密鍵を用いて再暗号化鍵を生成し、
      暗号文を復号して平文を取得し、
     再暗号化装置によって、第1のユーザ装置で復号可能な暗号文を第2のユーザ装置で復号可能とするための前記再暗号化鍵を用いて、前記第1のユーザ装置に関する前記ユーザ秘密鍵で復号可能な前記暗号文を、復号することなしに再暗号化し、
     前記第2のユーザ装置によって当該第2のユーザ装置に関する前記ユーザ秘密鍵を用いて、前記再暗号化された前記暗号文を復号する、
     情報処理方法。
  26.  前記鍵発行装置によって、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される際に前記第4の乱数のシェアが除去されるように、前記分散ユーザ秘密鍵を生成し、
     前記ユーザ装置によって、前記第4の乱数のシェアが除去されるように前記分散ユーザ秘密鍵を生成する、
     請求項25に記載の情報処理方法。
  27.  前記鍵発行装置によって、前記第1の乱数のシェアと前記識別情報とによって得られる前記ユーザ秘密鍵の要素に対して前記第4の乱数のシェアを乗算して得られた第1の積に対して復元を行い、復元の結果得られた値の逆元である第1の値を用いて、前記分散ユーザ秘密鍵を生成する、
     請求項26に記載の情報処理方法。
  28.  前記鍵発行装置によって、前記第3の乱数のシェアと、前記第2の乱数のシェア及び前記第3の乱数のシェアによって得られる前記ユーザ秘密鍵の要素に対して前記第4の乱数のシェアを乗算して得られた第2の積、及び前記第1の値を要素とする第1のデータとの組を、前記分散ユーザ秘密鍵として生成し、
     前記ユーザ装置によって、前記第3の乱数のシェア及び前記第2の積それぞれに対して復元を行うことにより、前記ユーザ秘密鍵を生成する、
     請求項27に記載の情報処理方法。
  29.  前記鍵発行装置によって、予め定められた位数の乗法巡回群の生成元の第1のべき乗の、前記第1の値を指数とする第2のべき乗を、前記第1のデータとして生成し、
     前記第1のべき乗の指数は前記第2の積に対応する、
     請求項28に記載の情報処理方法。
  30.  前記鍵発行装置によって、
      前記第1の乱数の要素となる第1の乱数要素と、前記第2の乱数の要素となる第2の乱数要素とを生成し、
      前記第1の乱数要素と、前記第2の乱数要素とに対して秘密分散を行い、秘密分散によって得られた前記第1の乱数要素のシェアと前記第2の乱数要素のシェアとを他の鍵発行装置に対して送信し、
      前記複数の鍵発行装置から取得した前記第1の乱数要素のシェアを用いて前記第1の乱数のシェアを取得し、前記複数の鍵発行装置から取得した前記第2の乱数要素のシェアを用いて前記第2の乱数のシェアを取得する、
     請求項25に記載の情報処理方法。
  31.  前記鍵発行装置によって、
      秘匿され前記ユーザ秘密鍵の要素となる第3の乱数の要素となる第3の乱数要素と、秘匿される第4の乱数の要素となる第4の乱数要素とを生成し、
      前記第3の乱数要素と、前記第4の乱数要素とに対して秘密分散を行い、秘密分散によって得られた前記第3の乱数要素のシェアと前記第4の乱数要素のシェアとを他の鍵発行装置に対して送信し、
      前記複数の鍵発行装置から取得した前記第3の乱数要素のシェアを用いて前記第3の乱数のシェアを取得し、前記複数の鍵発行装置から取得した前記第4の乱数要素のシェアを用いて前記第4の乱数のシェアを取得する、
     請求項25に記載の情報処理方法。
  32.  前記鍵発行装置によって、
      前記第1の乱数のシェアと前記第2の乱数のシェアとに基づいて、複数の鍵発行装置に分散された状態の分散マスタ公開鍵をさらに生成し、
      前記複数の鍵発行装置から取得した前記分散マスタ公開鍵に基づいて、マスタ公開鍵を生成し、
     前記ユーザ装置によって、前記マスタ公開鍵と前記ユーザ秘密鍵とを用いて再暗号化鍵を生成する、
     請求項25に記載の情報処理方法。
  33.  秘匿される第1の乱数が分散された状態の第1の乱数のシェアと、秘匿される第2の乱数が分散された状態の第2の乱数のシェアとに基づいて、複数の鍵発行装置に分散された状態の分散マスタ秘密鍵を少なくとも生成するステップと、
     前記分散マスタ秘密鍵とユーザの識別情報とを用いて、前記ユーザのユーザ秘密鍵が分散された状態の分散ユーザ秘密鍵であって、複数の鍵発行装置から得られる当該分散ユーザ秘密鍵を用いて前記ユーザ秘密鍵が取得される、分散ユーザ秘密鍵を生成し、その際に、秘匿され前記ユーザ秘密鍵の要素となる第3の乱数が分散された状態の第3の乱数のシェアと、秘匿される第4の乱数が分散された状態の第4の乱数のシェアを取得し、前記分散マスタ秘密鍵の要素である前記第1の乱数のシェア、前記分散マスタ秘密鍵の要素である前記第2の乱数のシェア、及び前記第3の乱数のシェアのそれぞれに対して、前記第4の乱数のシェアを乗算し、乗算の結果得られた積に基づいて、前記分散ユーザ秘密鍵を生成するステップと、
     前記分散ユーザ秘密鍵を前記ユーザのユーザ装置に送信するステップと、
     をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
PCT/JP2022/026138 2022-06-30 2022-06-30 鍵発行装置、情報処理システム、方法及びコンピュータ可読媒体 WO2024004116A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/026138 WO2024004116A1 (ja) 2022-06-30 2022-06-30 鍵発行装置、情報処理システム、方法及びコンピュータ可読媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/026138 WO2024004116A1 (ja) 2022-06-30 2022-06-30 鍵発行装置、情報処理システム、方法及びコンピュータ可読媒体

Publications (1)

Publication Number Publication Date
WO2024004116A1 true WO2024004116A1 (ja) 2024-01-04

Family

ID=89382279

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/026138 WO2024004116A1 (ja) 2022-06-30 2022-06-30 鍵発行装置、情報処理システム、方法及びコンピュータ可読媒体

Country Status (1)

Country Link
WO (1) WO2024004116A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015505230A (ja) * 2012-01-25 2015-02-16 サーティボックス エルティーディーCertivox,Ltd. 分散秘密鍵ジェネレータ(d−pkg)ノードから発行された秘密鍵をセキュリティ保護するためのシステム及び方法
US20200252211A1 (en) * 2019-01-31 2020-08-06 Cobinhood Ltd. Method for generating secure randomness on blockchain
WO2020251795A1 (en) * 2019-06-10 2020-12-17 tZERO Group, Inc. Key recovery using encrypted secret shares
CN113079003A (zh) * 2021-03-26 2021-07-06 中国科学院信息工程研究所 一种分布式sm9密钥生成方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015505230A (ja) * 2012-01-25 2015-02-16 サーティボックス エルティーディーCertivox,Ltd. 分散秘密鍵ジェネレータ(d−pkg)ノードから発行された秘密鍵をセキュリティ保護するためのシステム及び方法
US20200252211A1 (en) * 2019-01-31 2020-08-06 Cobinhood Ltd. Method for generating secure randomness on blockchain
WO2020251795A1 (en) * 2019-06-10 2020-12-17 tZERO Group, Inc. Key recovery using encrypted secret shares
CN113079003A (zh) * 2021-03-26 2021-07-06 中国科学院信息工程研究所 一种分布式sm9密钥生成方法及系统

Similar Documents

Publication Publication Date Title
Perlner et al. Quantum resistant public key cryptography: a survey
US8429408B2 (en) Masking the output of random number generators in key generation protocols
US9426131B2 (en) Server apparatus and program to re-encrypt ciphertext data
US20170104583A1 (en) Proxy computing system, computing apparatus, capability providing apparatus, proxy computing method, capability providing method, program, and recording medium
EP3741081B1 (en) Computer implemented method and system for obtaining digitally signed data
US20170366338A1 (en) Method and system for providing encrypted data
Son et al. Conditional proxy re-encryption for secure big data group sharing in cloud environment
Kanna et al. Enhancing the security of user data using the keyword encryption and hybrid cryptographic algorithm in cloud
Mansouri et al. Learning from failures: Secure and fault-tolerant aggregation for federated learning
Chakraborty et al. A secure cloud computing authentication using cryptography
CA2742530C (en) Masking the output of random number generators in key generation protocols
WO2024004116A1 (ja) 鍵発行装置、情報処理システム、方法及びコンピュータ可読媒体
Gaidhani et al. A SURVEY REPORT ON TECHNIQUES FOR DATA CONFIDENTIALITY IN CLOUD COMPUTING USING HOMOMORPHIC ENCRYPTION.
Hyla et al. Certificate-based encryption scheme with general access structure
JP5513444B2 (ja) ベクトル構成システム、方法、装置及びプログラム並びに暗号システム
JP7443217B2 (ja) 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム
WO2022054130A1 (ja) 暗号システム、方法及びプログラム
Kanagamani et al. Zero knowledge based data deduplication using in-line Block Matching protocolfor secure cloud storage
Chopra Comparative analysis of key exchange algorithms in cryptography and its implementation
JP7125857B2 (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム
US11811741B2 (en) Information processing system and information processing method
TWI789115B (zh) 雲端服務的加密系統及加密方法
Lin Cloud data storage with group collaboration supports
WO2024028961A1 (ja) 暗号システム、方法及びプログラム
CN110535873B (zh) 应用于数据协同加密系统的加密方法、解密方法

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: 22949390

Country of ref document: EP

Kind code of ref document: A1