Patent Publication Number: US-11658806-B2

Title: Identity-based hash proof system configuration apparatus, identity-based encryption apparatus, identity-based hash proof system configuration method and program

Description:
TECHNICAL FIELD 
     The present invention relates to an ID-based hash proof system configuration apparatus, an ID-based encryption apparatus, an ID-based hash proof system configuration method, and a program. 
     BACKGROUND ART 
     A concept referred to as an ID-based hash proof system (hereinafter also referred to as an identity-based hash proof system (IB-HPS)) has been known (see Non Patent Literature (NPL) 1, for example). The description of NPL 1 suggests that ID-based encryption can be configured by using the IB-HPS, and that the configuration satisfies key leakage-resilience. The key leakage-resilience refers to safety greater than usual, which prevents safety from being endangered even if a part of a private key is leaked. In the actual world, completely privately storing a private key is difficult, and it is thus desirable that key leakage-resilience be achieved. 
     The description disclosed in NPL 1 suggests that the key leakage-ratio, i.e., a ratio enabling prevention of endangerment of safety even if a part of a private key is leaked, be substantially equal to a parameter referred to as a universality-ratio of the IB-HPS as a component. 
     Here, among conventional configuration methods of the IB-HPS, methods that achieve an optimal universality-ratio, i.e., that achieve a universality-ratio of substantially 1, use a heuristic model, referred to as a random oracle, for proof of safety. 
     CITATION LIST 
     Non Patent Literature 
     NPL 1: Jo{umlaut over ( )}el Alwen, Yevgeniy Dodis, Moni Naor, Gil Segev, Shabsi Walfish, and Daniel Wichs. Public-key encryption in the bounded-retrieval model. In Henri Gilbert, editor, EUROCRYPT 2010, volume 6110 of LNCS, pages 113-134. Springer, Heidelberg, May 2010. 
     SUMMARY OF THE INVENTION 
     Technical Problem 
     However, the random oracle is such a heuristic model that an actual hash function is regarded as a true random function, and proof of safety using the model thus may not invariably ensure safety in the actual world. For this reason, to ensure sufficient safety in the actual world, it is desirable that proof of safety be achieved without using a random oracle. 
     An embodiment of the present invention is made in light of the circumstances described above, and has an object to configure an ID-based hash proof system having an optimal universality-ratio without using a random oracle. 
     Means for Solving the Problem 
     To achieve the object mentioned above, an embodiment of the present invention includes: a setup means of taking an input of a security parameter 1 λ , and outputting a public parameter pp and a master private key (msk, K) by using a setup algorithm Setup MIBE  and a key K, the setup algorithm Setup MIBE  including a setup algorithm Setup IPE  for inner-product encryption, the key K being randomly selected from a key space of a pseudorandom function PRF; a key generation means of taking an input of the public parameter pp, the master private key (msk, K), and an identifier id, and outputting a private key sk id =(sk id ′, {r i } i∈[n] ) by using a bit value r i  (1≤i≤n) that is selected, a key generation algorithm KeyGen MIBE , and the pseudorandom function PRF, the bit value r i  (1≤i≤n) being one of n bit values r i  (1≤i≤n) randomly selected from {0, 1}, the key generation algorithm KeyGen MIBE  including a key generation algorithm KeyGen IPE  for the inner-product encryption, the private key sk id =(sk id ′, {r i } i∈[n] ) being configured by using an output sk id ′ of the key generation algorithm KeyGen MIBE  and the bit value r i  (1≤i≤n); an encapsulation means of taking an input of the public parameter pp and the identifier id, and outputting a ciphertext ct and a key k by using an encryption algorithm Enc MIBE  including an encryption algorithm Enc IPE  for the inner-product encryption; a wrong encapsulation means of taking an input of the public parameter pp and the identifier id, and outputting a wrong ciphertext ct′ by using the encryption algorithm Enc MIBE ; and a decryption means of taking an input of the public parameter pp, the private key sk id , the identifier id, and the ciphertext ct, and outputting the key k by using a decryption algorithm Dec MIBE  including a decryption algorithm Dec IPE  for the inner-product encryption. 
     Effects of the Invention 
     The ID-based hash proof system having an optimal universality-ratio can be configured without using a random oracle. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG.  1    is a diagram illustrating an example of a functional configuration of an ID-based hash proof system configuration apparatus according to an embodiment of the present invention. 
         FIG.  2    is a diagram for describing an example of a procedure of processing executed by the ID-based hash proof system configuration apparatus according to the embodiment of the present invention. 
         FIG.  3    is a diagram illustrating an example of a hardware configuration of the ID-based hash proof system configuration apparatus according to the embodiment of the present invention. 
     
    
    
     DESCRIPTION OF EMBODIMENTS 
     An embodiment of the present invention will be described below. The embodiment of the present invention will provide a description of an ID-based hash proof system configuration apparatus  10  that configures an ID-based hash proof system having an optimal universality-ratio without using a random oracle. 
     The embodiment of the present invention will herein provide a description of a case of configuring an IB-HPS by using inner-product encryption (hereinafter also referred to as IPE). In this case, as an intermediate product, multi ID-based encryption (hereinafter also referred to as multi identity-based encryption (MIBE)) is configured. In light of this, first, definition of the IB-HPS, the IPE, and the MIBE will be described. 
     1. Definition 
     1-1. IB-HPS 
     The IB-HPS consists of a set of algorithms (Setup, KeyGen, Encap, Encap*, Decap). Note that, for details of the IB-HPS, refer to NPL 1 described above, for example. 
     Setup(1 λ ): This is a setup algorithm. This algorithm takes an input of a security parameter 1 λ , and outputs a public parameter pp and a master private key msk. Note that, for the sake of simplicity of description, the following description assumes that each of the following algorithms KeyGen, Encap, Encap*, and Decap implicitly takes an input of the public parameter pp. 
     KeyGen(msk, id): This is a key generation algorithm. This algorithm takes an input of the master private key msk and an ID (hereinafter also referred to as an identifier) id, and outputs a private key sk id . 
     Encap(id): This is an encapsulation algorithm. This algorithm takes an input of the identifier id, and outputs a ciphertext ct and a key k. 
     Encap*(id): This is a wrong encapsulation algorithm. This algorithm takes an input of the identifier id, and outputs a wrong ciphertext ct′. 
     Decap(sk id , id, ct): This is a decryption algorithm. This algorithm takes an input of the private key sk id , the identifier id, and the ciphertext ct, and outputs a key k. 
     Here, the IB-HPS is required to satisfy the following three properties, which are validity, ciphertext indistinguishability, and universality. 
     Validity: When the ciphertext ct generated for the identifier id by using the encapsulation algorithm Encap is decrypted by using the private key sk id  corresponding to the identifier id, the correct key k is obtained. 
     Ciphertext indistinguishability: The ciphertext generated by using the encapsulation algorithm Encap and the ciphertext generated by using the wrong encapsulation algorithm Encap* are quantitatively indistinguishable. 
     Universality: There are a great number of candidates for the private key sk id  corresponding to a single identifier id. Decrypted results of the wrong ciphertext ct′ that are generated by using the wrong encapsulation algorithm Encap* depend on a factor as to which private key sk id  is used for the decryption. 
     1-2. IPE 
     The IPE consists of a set of algorithms (Setup, KeyGen, Enc, Dec). For the details of the IPE, refer to the following reference document 1, for example. 
     Reference Document 1 
     Jonathan Katz, Amit Sahai, and Brent Waters. Predicate encryption supporting disjunctions, polynomial equations, and inner products. In Nigel P. Smart, editor, EUROCRYPT 2008, volume 4965 of LNCS, pages 146-162. Springer, Heidelberg, April 2008. 
     Setup(1 λ , 1 n ): This is a setup algorithm. This algorithm takes an input of a security parameter 1 λ  and a dimensionality 1 n , and outputs a public parameter pp and a master private key msk. The public parameter pp specifies a vector space as expressed by the following expression (that is, the public parameter pp includes a natural number q).
 
 V   n :=   q   n   [Math. 1]
 
Note that, for the sake of simplicity of description, the following description assumes that each of the following algorithms KeyGen, Enc, and Dec implicitly takes an input of the public parameter pp.
 
     KeyGen(msk, y): This is a key generation algorithm. This algorithm takes an input of the master private key msk and a vector y∈V n , and outputs a private key sk y  corresponding to the vector y. 
     Enc(x, m): This is an encryption algorithm. This algorithm takes an input of a vector x∈V n  and a plaintext m, and outputs a ciphertext ct. 
     Dec(sk y , y, ct): This is a decryption algorithm. This algorithm takes an input of the private key sk y , the vector y∈V n , and the ciphertext ct, and outputs a plaintext m. 
     Here, the IPE is required to satisfy the following two properties, which are validity and safety. 
     Validity: If the inner product &lt;x, y&gt; is 0, the ciphertext corresponding to the vector x (that is, the ciphertext ct generated by using Enc(x, m)) can be correctly decrypted into the plaintext m by using the private key sk y  corresponding to the vector y. 
     Safety: If the inner product &lt;x, y&gt; is not 0, the ciphertext corresponding to the vector x and the private key sk y  corresponding to the vector y conceal the plaintext. 
     1-3. MIBE 
     The MIBE consists of a set of algorithms (Setup, KeyGen, Enc, Dec). Note that the MIBE is a formulation introduced in the embodiment of the present invention. 
     Setup(1 λ , 1 n ): This is a setup algorithm. This algorithm takes an input of a security parameter 1 λ  and an ID multiplicity 1 n , and outputs a public parameter pp and a master private key msk. Note that, for the sake of simplicity of description, the following description assumes that each of the following algorithms KeyGen, Enc, and Dec implicitly takes an input of the public parameter pp. 
     Here, Setup is a randomized algorithm (also referred to as a probabilistic algorithm). The operation of the randomized algorithm Alg( ) of taking an input of a certain value a and outputting a certain value b is expressed as:
 
Alg( a )   b  or  b   Alg( a )  [Math. 2]
 
This operation is expressed as “Alg(a) R →b” or “b← R Alg(a)” in the following description of this Specification. In contrast, the operation of a deterministic algorithm Alg( ) of taking an input of a certain value a and outputting a certain value b is expressed as “Alg(a)→b” or “b←Alg(a)”.
 
     Accordingly, the above-described setup algorithm is expressed as Setup (1 λ , 1 n ) R →(pp, msk). 
     KeyGen(msk, (id 1 , . . . , id n )): This is a key generation algorithm. This algorithm takes an input of a master key msk and a set of identifiers (id 1 , . . . , id n ), and outputs a private key expressed in the following expression.
 
 sk   (id     1     , . . . ,id     n     )   [Math. 3]
 
     Note that, in the description of this Specification, each id j  (j=1, . . . , n) that is included in the set of identifiers (id 1 , . . . , id n ) serving as a suffix of the private key is represented by “idj”. Accordingly, in the description of this Specification, the above-described private key generated by using the key generation algorithm KeyGen is represented by sk (id1, . . . , idn) . 
     Here, KeyGen is a randomized algorithm, and is expressed as:
 
KeyGen(msk,(id 1 , . . . ,id n ))   sk   (id     1     , . . . ,id     n     )   [Math. 4]
 
     Enc(id, m): This is an encryption algorithm. This algorithm takes an input of the identifier id and a plaintext m, and outputs a ciphertext ct. Here, Enc is a randomized algorithm and is expressed as Enc(id, m) R →ct. Note that the relationship between the identifier id and the suffix “idj” will be described later. 
     Dec(sk (id1, . . . , idn) , (id 1 , . . . , id n ), ct): This is a decryption algorithm. This algorithm takes an input of the private key sk (id1, . . . , idn) , the set of identifiers (id 1 , . . . , id n ), and the ciphertext ct, and outputs a plaintext m. Here, Dec is a deterministic algorithm and is expressed as Dec(sk (id1, . . . , idn) , (id 1 , . . . , id n ), ct)→m. 
     Here, the MIBE is required to satisfy the following two properties, which are validity and safety. 
     Validity: If id∈{id 1 , . . . , id n } is true, the ciphertext corresponding to the identifier id (that is, the ciphertext ct generated by using Enc(id, m)) can be correctly decrypted into the plaintext by using the private key sk id1, . . . , idn) , corresponding to the set of identifiers (id 1 , . . . , id n ). 
     Safety: If id∈{id 1 , . . . , id n } is not true, the ciphertext corresponding to the identifier id and the private key sk (id1, . . . , idn)  corresponding to the set of identifiers (id 1 , . . . , id n ) conceal the plaintext. 
     2. Configuration of MIBE Using IPE 
     The following will provide a description of a method of configuring the MIBE defined in 1-3 described above by using the IPE defined in 1-2 described above, as a preliminary step for configuring the IB-HPS by using the MIBE. In the following description, a set of algorithms of the IPE defined in 1-2 described above is represented by (Setup IPE , KeyGen IPE , Enc IPE , Dec IPE ), and a set of algorithms of the MIBE configured by using the IPE is represented by (Setup MIBE , KeyGen MIBE , Enc MIBE , Dec MIBE ). 
     An operator who carries out the present application configures the set of algorithms of the MIBE (Setup MIBE , KeyGen MIBE , Enc MIBE , Dec MIBE ) by using the set of algorithms of the IPE (Setup IPE , KeyGen IPE , Enc IPE , Dec IPE ) as in the following procedure. 
     Setup MIBE (1 λ , 1 n ) (pp, msk)← R Setup IPE (1 λ , 1 n+1 ) is generated, and then (pp, msk) is output. If the public parameter pp specifies a vector space V n+1  as the IPE, an ID space of the MIBE is set as:
 
 V=     q   [Math. 5]
 
     KeyGen MIBE (msk, id 1 , . . . , id n )∈V n ): First, {y i ∈V} i∈{0, . . . , n} , that lets a variable X satisfy the following equation is calculated to obtain y:=(y 0 , . . . , y n )∈V n+1 .
 
Π i=1   n ( X −id n )=Σ i=0   n   y   i   X   1   [Math. 6]
 
     Then, sk y ← R KeyGen IPE (msk, y) is generated, and sk (id1, . . . , idn) :=sk y  is output. 
     Enc MIBE (id, m):x:=(1, id, id 2 , . . . , i n ) is set with id i  being the i-th bit of the id, ct← R Enc IPE (x, m) is generated, and the ciphertext ct is output. 
     Dec MIBE (sk (id1, . . . , idn) , (id 1 , . . . , id n ), ct): y∈V n+1  is generated in a manner similar to KeyGen MIBE , m← R Dec IPE (sk (id1, . . . , idn) , y, ct) is calculated, and the plaintext m is output. 
     3. Configuration of IB-HPS Using MIBE 
     The following will provide a description of a method of configuring the IB-HPS by using the MIBE. In the following description, a set of algorithms of the IB-HPS defined in 1-1 described above is represented by (Setup HPS , KeyGen HPS , Encap HPS , Encap HPS *, Decap HPS ), and the set of algorithms is configured by using the MIBE configured in 2 described above. 
     An operator who carries out the present invention configures the set of algorithms of the IB-HPS (Setup HPS , KeyGen HPS , Encap HPS , Encap HPS *, Decap HPS ) by using the set of algorithms of the MIBE (Setup MIBE , KeyGen MIBE , Enc MIBE , Dec MIBE ) as in the following procedure. Here, a message space of the MIBE includes {0, 1} L , where L represents the length of the key k output by Encap HPS  and Decap HPS . Further, PRF represents a pseudorandom function, and n represents a parameter of an integer value. Note that, in the following description, a∥b represents connection between bit streams a and b, and bin(c) with respect to an integer c represents a bit stream of c. 
     Setup HPS (1 λ ): (pp, msk)← R Setup MIBE (1 λ , 1 n ) and the parameter as expressed by the following expression are generated, and the public parameter pp and the master private key (msk, K) are output.
 
 K     K   [Math. 7]
 
where K represents a key space of a pseudorandom function PRF.
 
Here, let S be an arbitrary set. The operation of randomly selecting an element s out of the set S is expressed as:
 
 S     s  or  s     S   [Math. 8]
 
This operation is expressed as “S R →s” or “s← R S” in the following description of this Specification. Note that, for the sake of simplicity of description, the following description assumes that each of the following algorithms KeyGen HPS , Encap HPS , Encap HPS *, and Decap HPS  implicitly takes an input of the public parameter pp.
 
     KeyGen HPS ((msk, K), id): The parameter as expressed by the following expression is generated for i∈[n], with r i  satisfying “r i ← R {0, 1}”.
 
 sk′   id   KeyGen MIBE (msk,(id∥bin(1)∥ r   1 , . . . ,id∥bin( n )∥ r   n ); PRF ( K ,id))  [Math. 9]
 
Then, the parameter as expressed by the following expression is output.
 
 sk   id :=( sk′   id   ,{r   i } i∈[n] )  [Math. 10]
 
Note that [n]={1, . . . , n}.
 
     Encap HPS (id): k i ∈{0, 1} L  is generated for i∈[n] and ct i, b←R Enc MIBE (id∥bin(i)∥b, k i ) is generated for i∈[n] and b∈E{0, 1} to obtain the parameter as expressed by the following expression.
 
 ct:={ct   i,b } i∈[n],b∈{0,1}  and  k:=⊕   i∈[n]   k   i   [Math. 11]
 
     Then, (ct, k) is output. Note that the symbol expressed in the following expression represents an exclusive-or for each bit.
 
⊕  [Math. 12]
 
     Encap HPS *(id): k i, b ∈{0, 1} L  and ct i, b ← R Enc MIBE (id∥bin(i)∥b, k i,b ) are generated for i∈[n] and b∈{0, 1} to obtain ct′:={ct i, b } i∈[n], b∈{0,1}, and ct′ is output.    
     Decap HPS (sk id , id, ct): sk id  is decomposed as expressed by (sk id ′, {r i } i∈[n] )←sk id , and ct is decomposed as expressed by {ct i, b } i∈[n], b∈{0,1} ←ct to generate the parameter as expressed by the following expression.
 
 k′   i   ←Dec   MIBE ( sk′   id ,(id∥bin(1)∥ r   1 , . . . ,id∥bin( n )∥ r   n ), ct   ir     i   )  [Math. 13]
 
Then, the parameter as expressed by the following expression is output.
 
 k:=⊕   i∈[n]   k′   i   [Math. 14]
 
     Through the procedure described above, an IB-HPS having an optimal universality-ratio (that is, an IB-HPS having a universality-ratio of substantially 1) is configured. 
     Here, the universality-ratio is expressed by a ratio between universality and the size of a private key. In the IB-HPS configured by using the MIBE of 3 described above, the private key sk id  output by KeyGen HPS  is expressed as (sk id , {r i } n∈[n] ), and accordingly there are 2 n  candidates for the private key sk id  corresponding to a single identifier id. Thus, universality is expressed as log 2 2 n =n. Further, the size of the private key sk id  is the sum of the size of sk id ′ and the size of {r i } n∈[n] . Accordingly, the size of the private key sk id  is expressed as |sk id ′|+n, where |sk id ′| represents the size of sk id ′. 
     Thus, the universality-ratio of the IB-HPS configured by using the MIBE of 3 described above is expressed as n/(|sk id ′|+n). This expression brings the universality-ratio to substantially 1 if a sufficient large value is substituted into the parameter n. Consequently, by virtue of the IB-HPS configured by using the MIBE of 3 described above, an operator who carries out the present invention is enabled to configure ID-based encryption having an optimal key leakage-ratio without using a random oracle. 
     4. Functional Configuration of ID-Based Hash Proof System Configuration Apparatus  10   
     With reference to  FIG.  1   , the following will provide a description of a functional configuration of the ID-based hash proof system configuration apparatus  10  according to the present invention. The apparatus configures the ID-based hash proof system (IB-HPS) having an optimal universality-ratio by executing each of the algorithms of the IB-HPS configured by using the MIBE of 3 described above.  FIG.  1    is a diagram illustrating an example of a functional configuration of the ID-based hash proof system configuration apparatus  10  according to the embodiment of the present invention. 
     As illustrated in  FIG.  1   , the ID-based hash proof system configuration apparatus  10  according to the embodiment of the present invention includes a setup unit  101 , a key generation unit  102 , an encapsulation unit  103 , a wrong encapsulation unit  104 , and a decryption unit  105 . 
     The setup unit  101  takes an input of the security parameter 1 λ  to execute Setup HPS , and outputs the public parameter pp and the master private key (msk, K). 
     The key generation unit  102  takes an input of the public parameter pp, the master private key (msk, K), and the identifier id to execute KeyGen HPS , and outputs the private key sk id . 
     The encapsulation unit  103  takes an input of the public parameter pp and the identifier id to execute Encap HPS , and outputs (ct, k). Note that ct represents a ciphertext, and k represents a key. 
     The wrong encapsulation unit  104  takes an input of the public parameter pp and the identifier id to execute Encap HPS *, and outputs the wrong ciphertext ct′. 
     The decryption unit  105  takes an input of the public parameter pp, the private key sk id , the identifier id, and the ciphertext ct, and outputs the key k. 
     5. Procedure of Processing Executed by ID-Based Hash Proof System Configuration Apparatus  10   
     With reference to  FIG.  2   , the following will provide a description of a procedure of processing executed by the ID-based hash proof system configuration apparatus  10  according to the embodiment of the present invention.  FIG.  2    is a diagram for describing an example of a procedure of processing executed by the ID-based hash proof system configuration apparatus  10  according to the embodiment of the present invention. Note that the processing of Step S 101  (setup processing) to be described later is, for example, executed only once as initial processing performed at the time of configuring the IB-HPS. Further, the processing of Step S 102  (key generation processing) to be described later is, for example, executed every single time generation of the private key sk id  is performed. Further, the processing of Step S 102  (encapsulation processing) to be described later is, for example, executed every single time encapsulation (or wrong encapsulation) is performed. In a similar manner, the processing of Step S 103  (decryption processing) to be described later is, for example, executed every single time decryption is performed. 
     Step S 101  (setup processing): The setup unit  101  takes an input of the security parameter 1 λ  to execute Setup HPS , and outputs the public parameter pp and the master private key (msk, K). 
     Step S 102  (key generation processing): The key generation unit  102  takes an input of the public parameter pp, the master private key (msk, K), and the identifier id to execute KeyGen HPS , and outputs the private key sk id . 
     Step S 103  (encapsulation processing): The encapsulation unit  103  takes an input of the public parameter pp and the identifier id to execute Encap HPS , and outputs (ct, k). Alternatively, the wrong encapsulation unit  104  takes an input of the public parameter pp and the identifier id to execute Encap HPS *, and outputs the wrong ciphertext ct′. 
     Step S 104  (decryption processing): The decryption unit  105  takes an input of the public parameter pp, the private key sk id , the identifier id, and the ciphertext ct to execute Decap HPS , and outputs the key k. 
     6. Hardware Configuration of ID-Based Hash Proof System Configuration Apparatus  10   
     With reference to  FIG.  3   , the following will provide a description of a hardware configuration of the ID-based hash proof system configuration apparatus  10  according to the embodiment of the present invention.  FIG.  3    is a diagram illustrating an example of a hardware configuration of the ID-based hash proof system configuration apparatus  10  according to the embodiment of the present invention. 
     As illustrated in  FIG.  3   , the ID-based hash proof system configuration apparatus  10  according to the embodiment of the present invention includes an input device  201 , a display device  202 , an external I/F  203 , a communication I/F  204 , a random access memory (RAM)  205 , a read only memory (ROM)  206 , a central processing unit (CPU)  207 , and an auxiliary storage device  208 . Each of these pieces of hardware is communicably connected to each other via a bus  209 . 
     The input device  201  is, for example, a keyboard, a mouse, a touch panel, and the like, and is used by a user to input various operations. The display device  202  is, for example, a display and the like, and displays processing results of the ID-based hash proof system configuration apparatus  10 . Note that the ID-based hash proof system configuration apparatus  10  need not necessarily include at least one of the input device  201  and the display device  202 . 
     The external I/F  203  is an interface for establishing connection with an external apparatus. Examples of the external apparatus include a recording medium  203   a , or the like. The ID-based hash proof system configuration apparatus  10  can read and write data from and to the recording medium  203   a  and the like via the external I/F  203 . The recording medium  203   a  may store, for example, one or more programs for implementing each of the functional units (for example, the setup unit  101 , the key generation unit  102 , the encapsulation unit  103 , the wrong encapsulation unit  104 , and the decryption unit  105 ) included in the ID-based hash proof system configuration apparatus  10 . 
     Examples of the recording medium  203   a  include a flexible disk, a Compact Disc (CD), a Digital Versatile Disk (DVD), a Secure Digital memory card (SD memory card), a Universal Serial Bus (USB) memory card, or the like. 
     The communication I/F  204  is an interface for connecting the ID-based hash proof system configuration apparatus  10  to a communication network. The one or more programs for implementing each of the functional units included in the ID-based hash proof system configuration apparatus  10  may be acquired (downloaded) from a predetermined server or the like via the communication I/F  204 . 
     The RAM  205  is a volatile semiconductor memory that temporarily stores programs and data. The ROM  206  is a non-volatile semiconductor memory that can store programs and data even after power is turned off. The ROM  206  stores, for example, configuration information related to an operating system (OS), configuration information related to a communication network, and the like. 
     The CPU  207  is an arithmetic apparatus that reads programs and data from the ROM  206 , the auxiliary storage device  208 , or the like, stores the read programs and data in the RAM  205 , and executes processing. Each of the functional units included in the ID-based hash proof system configuration apparatus  10  is, for example, implemented through the processing in which the one or more programs stored in the auxiliary storage device  208  are executed by the CPU  207 . 
     The auxiliary storage device  208  is, for example, a hard disk drive (HDD), a solid state drive (SSD), or the like, and is a non-volatile storage device that stores programs and data. The programs and data stored in the auxiliary storage device  208  include an OS, application programs, one or more programs for implementing each of the functional units included in the ID-based hash proof system configuration apparatus  10 , or the like. 
     Because the ID-based hash proof system configuration apparatus  10  according to the embodiment of the present invention includes the hardware configuration illustrated in  FIG.  3   , the ID-based hash proof system configuration apparatus.  10  can implement various types of processing described above. Note that  FIG.  3    illustrates a hardware configuration example of a case in which the ID-based hash proof system configuration apparatus  10  is implemented by a single computer. However, this configuration is not restrictive, and the ID-based hash proof system configuration apparatus  10  may be implemented by a plurality of computers. 
     7. Supplement 
     As described above, the ID-based hash proof system configuration apparatus  10  according to the embodiment of the present invention configures the IB-HPS by means of the MIBE that is configured by using the IPE. Owing to this configuration, the ID-based hash proof system configuration apparatus  10  according to the embodiment of the present invention can configure the IB-HPS having an optimal universality-ratio without using a random oracle. 
     Therefore, through the use of the ID-based hash proof system configuration apparatus  10  according to the embodiment of the present invention, the ID-based encryption having an optimal key leakage-ratio can be configured without using a random oracle. In other words, with the ID-based encryption being configured using the IB-HPS that is configured by using the ID-based hash proof system configuration apparatus  10  according to the embodiment of the present invention, an apparatus (ID-based encryption apparatus) that implements the ID-based encryption can be configured. Note that, in this case, the ID-based hash proof system configuration apparatus  10  and the ID-based encryption apparatus may be different apparatuses, or may be the same apparatus. 
     The present invention is not limited to the above-described embodiment specifically disclosed, and various modifications and changes can be made without departing from the scope of the claims. 
     REFERENCE SIGNS LIST 
     
         
           10  ID-based hash proof system configuration apparatus 
           101  Setup unit 
           102  Key generation unit 
           103  Encapsulation unit 
           104  Wrong encapsulation unit 
           105  Decryption unit