Patent Publication Number: US-8995660-B2

Title: Cryptographic system, cryptographic communication method, encryption apparatus, key generation apparatus, decryption apparatus, content server, program, and storage medium

Description:
TECHNICAL FIELD 
     The present invention relates to a cryptographic communication technology, and more specifically, to a cryptographic communication technology based on functional encryption. 
     BACKGROUND ART 
     Known cryptographic technologies include a common key cryptosystem and a public key cryptosystem. 
     In the common key cryptosystem, a message sender encrypts a message with a common key to obtain an encrypted message, and the receiver decrypts the encrypted message with the same common key to obtain the original message. Therefore, it is necessary to establish a procedure for the sender and receiver to possess the common key securely. 
     In the public key cryptosystem, (1) a receiver prepares a public key and a private key corresponding thereto, (2) a sender encrypts a message with the public key to obtain an encrypted message, and (3) the receiver decrypts the encrypted message with the private key to obtain the original message. Therefore, the sender needs to obtain the public key prepared by the receiver before encrypting the message. In other words, encryption is impossible unless the receiver generates the public key. 
     Predicate encryption has been proposed recently. In the predicate encryption, information X is embedded in an encrypted message during encryption by the sender, the receiver who has information Y having a specific relationship with the information X can decrypt the encrypted message or obtain information related to the message without knowing the message. The sender does not necessarily need to know the information Y possessed by the receiver during encryption. In addition, the sender does not necessarily need to determine the receiver before encryption. The sender can determine the information X actively, freely and with initiative. In theory, the information X is called an attribute I (variable) and the information Y is called a predicate f (propositional function or Boolean function). The specific relationship which the information X and the information Y need to satisfy during decryption is, for example, f(I)=true. 
     PRIOR ART LITERATURE 
     Non-Patent Literature 
     Non-patent literature 1: Information Security Project of NTT 
     Information Sharing Platform Laboratories, “NTT Cryptographic Primitives”, URL: http://info.isl.ntt.co.jp/crypt/camellia/technology.html, retrieved on Jul. 15, 2010 
     Non-patent literature 2: J. Katz, A. Sahai, and B. Waters, “Predicate Encryption Supporting Disjunction, Polynomial Equations, and Inner Products”, Eurocrypt 2008, pp. 146-162 
     SUMMARY OF THE INVENTION 
     Problems to be Solved by the Invention 
     An object of the present invention is to provide a cryptographic communication technology that is based on functional encryption and that can operate flexibly. 
     Means to Solve the Problems 
     A first aspect of the present invention will be outlined below.
         A cryptographic system that uses functional encryption includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, and one or a plurality of decryption apparatuses.   A private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses.   One or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logical information used in the functional encryption algorithm.   Policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance.   Each of the one or the plurality of encryption apparatuses performs a first propositional logic information acquisition process of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and an encryption process of using the first attribute information or the first logic information, together with the public key of the key generation apparatus, to obtain a common key and encryption information corresponding to the common key or corresponding to information used to generate the common key, according to the functional encryption algorithm.   Each of the one or the plurality of key generation apparatuses performs a second propositional logic information acquisition process of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and a key generation process of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encryption information.   Each of the one or the plurality of decryption apparatuses uses the decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm.       

     Alternatively, the first aspect of the present invention will be outlined below.
         A cryptographic system that uses functional encryption includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, and one or a plurality of decryption apparatuses.   A private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses.   One or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm.   Policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance.   Each of the one or the plurality of encryption apparatuses performs a first propositional logic information acquisition process of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and an encryption process of using the first attribute information or the first logic information, together with the public key of the key generation apparatus, to obtain a common key and encryption information corresponding to the common key or corresponding to information used to generate the common key, according to the functional encryption algorithm;   Each of the one or the plurality of decryption apparatuses performs a second propositional logic information acquisition process of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and uses a decryption key sent from the key generation apparatus to apply a decryption process to the encryption information according to the functional encryption algorithm.   Each of the one or the plurality of key generation apparatuses performs a key generation process of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate the decryption key used to decrypt the encryption information.       

     Alternatively, the first aspect of the present invention will be outlined below.
         A cryptographic system that uses functional encryption includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, and one or a plurality of decryption apparatuses.   A private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses.   One or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm.   Policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance.   Each of the one or the plurality of encryption apparatuses performs a first propositional logic information acquisition process of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and an encryption process of using the first attribute information or the first logic information, together with the public key of the key generation apparatus and plaintext, to obtain encryption information corresponding to the plaintext according to the functional encryption algorithm.   Each of the one or the plurality of key generation apparatuses performs a second propositional logic information acquisition process of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and a key generation process of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encryption information.   Each of the one or the plurality of decryption apparatuses uses the decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm.       

     Alternatively, the first aspect of the present invention will be outlined below.
         A cryptographic system that uses functional encryption includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, and one or a plurality of decryption apparatuses.   A private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses.   One or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm.   Policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance.   Each of the one or the plurality of encryption apparatuses performs a first propositional logic information acquisition process of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and an encryption process of using the first attribute information or the first logic information, together with the public key of the key generation apparatus and plaintext, to obtain encryption information corresponding to the plaintext according to the functional encryption algorithm.   Each of the one or the plurality of decryption apparatuses performs a second propositional logic information acquisition process of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and uses a decryption key sent from the key generation apparatus to apply a decryption process to the encryption information according to the functional encryption algorithm.   Each of the one or the plurality of key generation apparatuses performs a key generation process of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate the decryption key used to decrypt the encryption information.       

     A second aspect of the present invention will be outlined below.
         In a cryptographic system that uses functional encryption and includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, and a plurality of decryption apparatuses, a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance.   Each of the one or the plurality of encryption apparatuses performs a first propositional logic information acquisition process of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and an encryption process of using the first attribute information or the first logic information, together with the public key of the key generation apparatus, to obtain a common key and encryption information corresponding to the common key or corresponding to information used to generate the common key, according to the functional encryption algorithm.   Each of the one or the plurality of key generation apparatuses performs a second propositional logic information acquisition process of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and a key generation process of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encryption information.   Each of the one or the plurality of decryption apparatuses uses the decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm. The decryption apparatus also performs a transfer process of transferring the encryption information to another decryption apparatus. The encryption information to be transferred may be sent from the encryption apparatus or may be transferred from another decryption apparatus. At least a part of the decryption apparatuses included in the cryptographic system has a function of performing the transfer process, but all of the decryption apparatuses are not required to have this function. A decryption apparatus that has received the transferred encryption information asks the key generation apparatus to generate the decryption key, if necessary, and performs the decryption process.       

     Alternatively, the second aspect of the present invention will be outlined below.
         In a cryptographic system that uses functional encryption and includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, and a plurality of decryption apparatuses, a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance.   Each of the one or the plurality of encryption apparatuses performs a first propositional logic information acquisition process of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and an encryption process of using the first attribute information or the first logic information, together with the public key of the key generation apparatus, to obtain a common key and encryption information corresponding to the common key or corresponding to information used to generate the common key, according to the functional encryption algorithm;   Each of the one or the plurality of decryption apparatuses performs a second propositional logic information acquisition process of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and uses a decryption key sent from the key generation apparatus to apply a decryption process to the encryption information according to the functional encryption algorithm.   Each of the one or the plurality of key generation apparatuses performs a key generation process of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate the decryption key used to decrypt the encryption information.   The decryption apparatus also performs a transfer process of transferring the encryption information to another decryption apparatus. The encryption information to be transferred may be sent from the encryption apparatus or may be transferred from another decryption apparatus. At least a part of the decryption apparatuses included in the cryptographic system has a function of performing the transfer process, but all of the decryption apparatuses are not required to have this function. A decryption apparatus that has received the transferred encryption information asks the key generation apparatus to generate the decryption key, if necessary, and performs the decryption process.       

     Alternatively, the second aspect of the present invention will be outlined below.
         In a cryptographic system that uses functional encryption and includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, and a plurality of decryption apparatuses, a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance.   Each of the one or the plurality of encryption apparatuses performs a first propositional logic information acquisition process of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and an encryption process of using the first attribute information or the first logic information, together with the public key of the key generation apparatus and plaintext, to obtain encryption information corresponding to the plaintext according to the functional encryption algorithm.   Each of the one or the plurality of key generation apparatuses performs a second propositional logic information acquisition process of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and a key generation process of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encryption information.   Each of the one or the plurality of decryption apparatuses uses the decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm. The decryption apparatus also performs a transfer process of transferring the encryption information to another decryption apparatus. The encryption information to be transferred may be sent from the encryption apparatus or may be transferred from another decryption apparatus. At least a part of the decryption apparatuses included in the cryptographic system has a function of performing the transfer process, but all of the decryption apparatuses are not required to have this function. A decryption apparatus that has received the transferred encryption information asks the key generation apparatus to generate the decryption key, if necessary, and performs the decryption process.       

     Alternatively, the second aspect of the present invention will be outlined below.
         In a cryptographic system that uses functional encryption and includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, and a plurality of decryption apparatuses, a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance.   Each of the one or the plurality of encryption apparatuses performs a first propositional logic information acquisition process of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and an encryption process of using the first attribute information or the first logic information, together with the public key of the key generation apparatus and plaintext, to obtain encryption information corresponding to the plaintext according to the functional encryption algorithm.   Each of the one or the plurality of decryption apparatuses performs a second propositional logic information acquisition process of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and uses a decryption key sent from the key generation apparatus to apply a decryption process to the encryption information according to the functional encryption algorithm.   Each of the one or the plurality of key generation apparatuses performs a key generation process of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate the decryption key used to decrypt the encryption information.   The decryption apparatus also performs a transfer process of transferring the encryption information to another decryption apparatus. The encryption information to be transferred may be sent from the encryption apparatus or may be transferred from another decryption apparatus. At least a part of the decryption apparatuses included in the cryptographic system has a function of performing the transfer process, but all of the decryption apparatuses are not required to have this function. A decryption apparatus that has received the transferred encryption information asks the key generation apparatus to generate the decryption key, if necessary, and performs the decryption process.       

     A third aspect of the present invention will be outlined below.
         A cryptographic system that uses functional encryption includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, one or a plurality of decryption apparatuses, and one or a plurality of content servers.   A private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses.   One or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm.   Policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance.   Each of the one or the plurality of encryption apparatuses performs a first propositional logic information acquisition process of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and an encryption process of using the first attribute information or the first logic information, together with the public key of the key generation apparatus and content, to obtain a common key, encryption information corresponding to the common key or corresponding to information used to generate the common key, and encrypted content obtained by encrypting the content with the common key, according to the functional encryption algorithm.   Each of the one or the plurality of content servers stores the encryption information and the encrypted content sent from each of the one or the plurality of encryption apparatuses; and transmits the encrypted content and the encryption information corresponding thereto, in response to a request sent from the decryption apparatus, to the decryption apparatus.   Each of the one or the plurality of key generation apparatuses performs a second propositional logic information acquisition process of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and a key generation process of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encryption information.   Each of the one or the plurality of decryption apparatuses performs a process of an acquisition request of the encrypted content for the content server; uses the decryption key to apply a decryption process to the encryption information obtained from the content server, according to the functional encryption algorithm; performs a content acquisition process of decrypting the encrypted content obtained from the content server with the common key obtained in the decryption process; and displays content obtained by decrypting the encrypted content.       

     Alternatively, the third aspect of the present invention will be outlined below.
         A cryptographic system that uses functional encryption includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, one or a plurality of decryption apparatuses, and one or a plurality of content servers.   A private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses.   One or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm.   Policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance.   Each of the one or the plurality of encryption apparatuses performs a first propositional logic information acquisition process of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and an encryption process of using the first attribute information or the first logic information, together with the public key of the key generation apparatus and content, to obtain a common key, encryption information corresponding to the common key or corresponding to information used to generate the common key, and encrypted content obtained by encrypting the content with the common key, according to the functional encryption algorithm.   Each of the one or the plurality of content servers stores the encryption information and the encrypted content sent from each of the one or the plurality of encryption apparatuses; and transmits the encrypted content and the encryption information corresponding thereto, in response to a request sent from the decryption apparatus, to the decryption apparatus.   Each of the one or the plurality of decryption apparatuses performs a second propositional logic information acquisition process of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; uses a decryption key to apply a decryption process to the encryption information obtained from the content server, according to the functional encryption algorithm; performs a content acquisition process of decrypting the encrypted content obtained from the content server, with the common key obtained in the decryption process; and displays content obtained by decrypting the encrypted content.   Each of the one or the plurality of key generation apparatuses performs a key generation process of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate the decryption key used to decrypt the encryption information.       

     Alternatively, the third aspect of the present invention will be outlined below.
         A cryptographic system that uses functional encryption includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, one or a plurality of decryption apparatuses, and one or a plurality of content servers.   A private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses.   One or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm.   Policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance.   Each of the one or the plurality of encryption apparatuses performs a first propositional logic information acquisition process of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and an encryption process of using the first attribute information or the first logic information, together with the public key of the key generation apparatus and content, to encrypt the content to obtain encrypted content, according to the functional encryption algorithm.   Each of the one or the plurality of content servers stores the encrypted content sent from each of the one or the plurality of encryption apparatuses; and transmits the encrypted content, in response to a request sent from the decryption apparatus, to the decryption apparatus.   Each of the one or the plurality of key generation apparatuses performs a second propositional logic information acquisition process of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and a key generation process of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encrypted content.   Each of the one or the plurality of decryption apparatuses performs a process of an acquisition request of the encrypted content for the content server; uses the decryption key to apply a decryption process to the encrypted content obtained from the content server, according to the functional encryption algorithm; and displays content obtained by decrypting the encrypted content.       

     Alternatively, the third aspect of the present invention will be outlined below.
         A cryptographic system that uses functional encryption includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, one or a plurality of decryption apparatuses, and one or a plurality of content servers.   A private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses.   One or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm.   Policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance.   Each of the one or the plurality of encryption apparatuses performs a first propositional logic information acquisition process of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and an encryption process of using the first attribute information or the first logic information, together with the public key of the key generation apparatus and content, to encrypt the content to obtain encrypted content, according to the functional encryption algorithm.   Each of the one or the plurality of content servers stores the encrypted content sent from each of the one or the plurality of encryption apparatuses; and transmits the encrypted content, in response to a request sent from the decryption apparatus, to the decryption apparatus.   Each of the one or the plurality of decryption apparatuses performs a second propositional logic information acquisition process of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; uses a decryption key to apply a decryption process to the encrypted content obtained from the content server, according to the functional encryption algorithm; and displays content obtained by decrypting the encrypted content.   Each of the one or the plurality of key generation apparatuses performs a key generation process of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate the decryption key used to decrypt the encrypted content.       

     Effects of the Invention 
     According to the present invention, by using one piece of conversion rule information selected based on whether input information input to an encryption apparatus is attribute designation information or logical expression designation information, where the one piece of conversion rule information is either one of attribute conversion rule information and logical expression conversion rule information contained in one conversion rule information pair selected from conversion rule information pairs, the attribute information or the logic information is obtained from the input information; therefore, cryptographic communication based on functional encryption can be operated in a flexible manner. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a structural view of a cryptographic system according to each embodiment in a first aspect of the present invention; 
         FIG. 2  is a view (No. 1) showing a processing procedure of a cryptographic communication method according to each embodiment in the first aspect; 
         FIG. 3  is a view (No. 2) showing the processing procedure of the cryptographic communication method according to each embodiment in the first aspect; 
         FIG. 4  is a view (No. 3) showing the processing procedure of the cryptographic communication method according to each embodiment in the first aspect; 
         FIG. 5  is a functional block diagram of an encryption apparatus according to a first embodiment of the first aspect; 
         FIG. 6  is a view showing a detailed processing procedure of an encryption process according to the first embodiment of the first aspect; 
         FIG. 7  is a functional block diagram of a decryption apparatus according to the first embodiment of the first aspect; 
         FIG. 8  is a view showing a detailed processing procedure of a decryption process according to the first embodiment of the first aspect; 
         FIG. 9  is a functional block diagram of a key generation apparatus according to the first embodiment of the first aspect; 
         FIG. 10  is a view showing a detailed processing procedure of a key generation process according to the first embodiment of the first aspect; 
         FIG. 11  is a view showing how to obtain attribute information or predicate information from input information or user information by using a schema corresponding to a policy; 
         FIG. 12  is a view showing how to obtain attribute information from attribute designation information by using an attribute schema; 
         FIG. 13  is a view showing how to obtain predicate information from predicate designation information by using a predicate schema; 
         FIG. 14  is a view showing examples of policies; 
         FIG. 15  is a view showing an example decryption key table; 
         FIG. 16  is a view showing an example authentication table; 
         FIG. 17  is a view showing an example user information tables; 
         FIG. 18  is a functional block diagram of a decryption apparatus according to a second embodiment of the first aspect; 
         FIG. 19  is a view showing a detailed processing procedure of a decryption process according to the second embodiment of the first aspect; 
         FIG. 20  is a functional block diagram of a key generation apparatus according to the second embodiment of the first aspect; 
         FIG. 21  is a view showing a detailed processing procedure of a key generation process according to the second embodiment of the first aspect; 
         FIG. 22  is a functional block diagram of an encryption apparatus according to a third embodiment of the first aspect; 
         FIG. 23  is a view showing a detailed processing procedure of an encryption process according to the third embodiment of the first aspect; 
         FIG. 24  is a functional block diagram of a decryption apparatus according to the third embodiment of the first aspect; 
         FIG. 25  is a view showing a detailed processing procedure of a decryption process according to the third embodiment of the first aspect; 
         FIG. 26  is a functional block diagram of a decryption apparatus according to a fourth embodiment of the first aspect; 
         FIG. 27  is a view showing a detailed processing procedure of a decryption process according to the fourth embodiment of the first aspect; 
         FIG. 28  is a structural view of a cryptographic system according to each embodiment in a second aspect of the present invention; 
         FIG. 29  is a view (No. 1) showing a processing procedure of a cryptographic communication method according to each embodiment in the second aspect; 
         FIG. 30  is a view (No. 2) showing the processing procedure of the cryptographic communication method according to each embodiment in the second aspect; 
         FIG. 31  is a view (No. 3) showing the processing procedure of the cryptographic communication method according to each embodiment in the second aspect; 
         FIG. 32  is a view (No. 4) showing the processing procedure of the cryptographic communication method according to each embodiment in the second aspect; 
         FIG. 33  is a functional block diagram of an encryption apparatus according to a first embodiment of the second aspect; 
         FIG. 34  is a view showing a detailed processing procedure of an encryption process according to the first embodiment of the second aspect; 
         FIG. 35  is a functional block diagram of a first decryption apparatus according to the first embodiment of the second aspect; 
         FIG. 36  is a view showing a detailed processing procedure of a first decryption process according to the first embodiment of the second aspect; 
         FIG. 37  is a functional block diagram of a second decryption apparatus according to the first embodiment of the second aspect; 
         FIG. 38  is a view showing a detailed processing procedure of a second decryption process according to the first embodiment of the second aspect; 
         FIG. 39  is a functional block diagram of a key generation apparatus according to the first embodiment of the second aspect; 
         FIG. 40  is a view showing a detailed processing procedure (corresponding to the first decryption apparatus) of a key generation process according to the first embodiment of the second aspect; 
         FIG. 41  is a view showing a detailed processing procedure (corresponding to the second decryption apparatus) of a key generation process according to the first embodiment of the second aspect; 
         FIG. 42  is a functional block diagram of a first decryption apparatus according to a second embodiment of the second aspect; 
         FIG. 43  is a view showing a detailed processing procedure of a first decryption process according to the second embodiment of the second aspect; 
         FIG. 44  is a functional block diagram of a second decryption apparatus according to the second embodiment of the second aspect; 
         FIG. 45  is a view showing a detailed processing procedure of a second decryption process according to the second embodiment of the second aspect; 
         FIG. 46  is a functional block diagram of a key generation apparatus according to the second embodiment of the second aspect; 
         FIG. 47  is a view showing a detailed processing procedure (corresponding to the first decryption apparatus) of a key generation process according to the second embodiment of the second aspect; 
         FIG. 48  is a view showing a detailed processing procedure (corresponding to the second decryption apparatus) of a key generation process according to the second embodiment of the second aspect; 
         FIG. 49  is a functional block diagram of an encryption apparatus according to a third embodiment of the second aspect; 
         FIG. 50  is a view showing a detailed processing procedure of an encryption process according to the third embodiment of the second aspect; 
         FIG. 51  is a functional block diagram of a first decryption apparatus according to the third embodiment of the second aspect; 
         FIG. 52  is a view showing a detailed processing procedure of a first decryption process according to the third embodiment of the second aspect; 
         FIG. 53  is a functional block diagram of a second decryption apparatus according to the third embodiment of the second aspect; 
         FIG. 54  is a view showing a detailed processing procedure of a second decryption process according to the third embodiment of the second aspect; 
         FIG. 55  is a functional block diagram of a first decryption apparatus according to a fourth embodiment of the second aspect; 
         FIG. 56  is a view showing a detailed processing procedure of a first decryption process according to the fourth embodiment of the second aspect; 
         FIG. 57  is a functional block diagram of a second decryption apparatus according to the fourth embodiment of the second aspect; 
         FIG. 58  is a view showing a detailed processing procedure of a second decryption process according to the fourth embodiment of the second aspect; 
         FIG. 59  is a view showing an example structure of data exchanged when the present invention is applied to an email system or an instant messaging system; 
         FIG. 60  is a structural view of a cryptographic system according to each embodiment in a third aspect of the present invention; 
         FIG. 61  is a view (No. 1) showing a processing procedure of a cryptographic communication method according to each embodiment in the third aspect; 
         FIG. 62  is a view (No. 2) showing the processing procedure of the cryptographic communication method according to each embodiment in the third aspect; 
         FIG. 63  is a view (No. 3) showing the processing procedure of the cryptographic communication method according to each embodiment in the third aspect; 
         FIG. 64  is a view (No. 4) showing the processing procedure of the cryptographic communication method according to each embodiment in the third aspect; 
         FIG. 65  is a functional block diagram of an encryption apparatus according to a first embodiment of the third aspect; 
         FIG. 66  is a view showing a detailed processing procedure of an encryption process according to the first embodiment of the third aspect; 
         FIG. 67  is a functional block diagram of a content server according to the first embodiment of the third aspect; 
         FIG. 68  is a functional block diagram of a decryption apparatus according to the first embodiment of the third aspect; 
         FIG. 69  is a view showing a detailed processing procedure of a second decryption process according to the first embodiment of the third aspect; 
         FIG. 70  is a functional block diagram of a key generation apparatus according to the first embodiment of the third aspect; 
         FIG. 71  is a view showing a detailed processing procedure of a key generation process according to the first embodiment of the third aspect; 
         FIG. 72  is a functional block diagram of a decryption apparatus according to a second embodiment of the third aspect; 
         FIG. 73  is a view showing a detailed processing procedure of a decryption process according to the second embodiment of the third aspect; 
         FIG. 74  is a functional block diagram of a key generation apparatus according to the second embodiment of the third aspect; 
         FIG. 75  is a view showing a detailed processing procedure of a key generation process according to the second embodiment of the third aspect; 
         FIG. 76  is a functional block diagram of an encryption apparatus according to a third embodiment of the third aspect; 
         FIG. 77  is a view showing a detailed processing procedure of an encryption process according to the third embodiment of the third aspect; 
         FIG. 78  is a functional block diagram of a decryption apparatus according to the third embodiment of the third aspect; 
         FIG. 79  is a view showing a detailed processing procedure of a decryption process according to the third embodiment of the third aspect; 
         FIG. 80  is a functional block diagram of a decryption apparatus according to a fourth embodiment of the third aspect; 
         FIG. 81  is a view showing a detailed processing procedure of a decryption process according to the fourth embodiment of the third aspect; 
         FIG. 82  is a view showing an example structure of data exchanged when the present invention is applied to a content delivery system; 
         FIG. 83  is a view illustrating tree structure data that expresses a standard logical expression PRO(1) PRO(2) PRO(3) including: propositional variables PRO(1) and PRO(2); a negation  PRO(3) of a propositional variable PRO(3); and logical symbols   and  ; and 
         FIG. 84  is a view illustrating tree structure data that expresses a standard logical expression PRO(1) PRO(2) PRO(2) PRO(3) PRO(1) PRO(3) PRO(4) ( PRO(5) PRO(6)) PRO(7) including: propositional variables PRO(1), PRO(2), PRO(3), PRO(6), and PRO(7); negations  PRO(4) and  PRO(5) of propositional variables PRO(4) and PRO(5); and logical symbols   and  . 
     
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
     &lt;Outline of Functional Encryption&gt; 
     In recent years, extended encryption of ID-based encryption called functional encryption is attracting attention. The functional encryption is formed of the following four algorithms (Setup, KeyGen, Enc, Dec). The protocol thereof will be outlined below. 
     &lt;&lt;Protocol FE&gt;&gt; 
     Setup (1 λ )→(pk, sk): setup algorithm 
     A probability polynomial time algorithm that receives a security parameter 1 λ  and outputs a public parameter pk and a master key sk 
     KeyGen (sk, i)→sk i : key generation algorithm 
     A probability polynomial time algorithm that receives the master key sk and a key identifier i and outputs a private key sk i  corresponding to the key identifier i 
     Enc (pk, j, x)→c j : encryption algorithm 
     A probability polynomial time algorithm that receives the public parameter pk, a receiver identifier j, and information to be encrypted (plaintext) x and outputs a ciphertext c j    
     Dec (pk, sk i , c c )→y: decryption algorithm 
     A probability polynomial time algorithm that receives the public parameter pk, the private key sk i , and the ciphertext c j  and outputs a plaintext y 
     In the functional encryption, the validity of the ID-based encryption is extended, and a receiver of a ciphertext can evaluate some function f i , j (x) concerning the plaintext x on the basis of the private key having the key identifier i and the ciphertext having the receiver identifier j. That is, if a given function f i , j (x) exists and if a probability Pr represented by Expression (A) to ∀i, ∀j, ∀x ε{0, 1} poly(λ)  is overwhelming to k (a difference from 1 is negligible), the functional encryption (Setup, KeyGen, Enc, Dec) is regarded as valid. Note that poly(λ) represents the polynomial length determined by λ. 
     
       
         
           
             
               
                 
                   Pr 
                   [ 
                   
                     y 
                     = 
                     
                       
                         
                           f 
                           
                             i 
                             , 
                             j 
                           
                         
                         ⁡ 
                         
                           ( 
                           x 
                           ) 
                         
                       
                       ⁢ 
                       
                          
                         
                           
                             
                               
                                 
                                   
                                     
                                       
                                         
                                           
                                             
                                               ( 
                                               
                                                 
                                                   p 
                                                   ⁢ 
                                                   
                                                       
                                                   
                                                   ⁢ 
                                                   k 
                                                 
                                                 , 
                                                 sk 
                                               
                                               ) 
                                             
                                             ⟵ 
                                             
                                               Setup 
                                               ⁡ 
                                               
                                                 ( 
                                                 
                                                   1 
                                                   λ 
                                                 
                                                 ) 
                                               
                                             
                                           
                                         
                                       
                                       
                                         
                                           
                                             
                                               sk 
                                               i 
                                             
                                             ⟵ 
                                             
                                               KeyGen 
                                               ⁡ 
                                               
                                                 ( 
                                                 
                                                   sk 
                                                   , 
                                                   i 
                                                 
                                                 ) 
                                               
                                             
                                           
                                         
                                       
                                     
                                   
                                 
                                 
                                   
                                     
                                       
                                         c 
                                         j 
                                       
                                       ⟵ 
                                       
                                         Enc 
                                         ⁡ 
                                         
                                           ( 
                                           
                                             
                                               p 
                                               ⁢ 
                                               
                                                   
                                               
                                               ⁢ 
                                               k 
                                             
                                             , 
                                             j 
                                             , 
                                             x 
                                           
                                           ) 
                                         
                                       
                                     
                                   
                                 
                               
                             
                           
                           
                             
                               
                                 y 
                                 ⟵ 
                                 
                                   Dec 
                                   ⁡ 
                                   
                                     ( 
                                     
                                       
                                         p 
                                         ⁢ 
                                         
                                             
                                         
                                         ⁢ 
                                         k 
                                       
                                       , 
                                       
                                         sk 
                                         i 
                                       
                                       , 
                                       
                                         c 
                                         j 
                                       
                                     
                                     ) 
                                   
                                 
                               
                             
                           
                         
                         ] 
                       
                     
                   
                 
               
               
                 
                   ( 
                   A 
                   ) 
                 
               
             
           
         
       
     
     In particular, a given relationship R(·, ·) exists, and functional encryption having a function f i , j (x) of type represented by Expression (B) contains various types of encryption (⊥ is a symbol that represents that normal decryption cannot be made). 
     
       
         
           
             
               
                 
                   
                     
                       f 
                       
                         i 
                         , 
                         j 
                       
                     
                     ⁡ 
                     
                       ( 
                       x 
                       ) 
                     
                   
                   = 
                   
                     { 
                     
                       
                         
                           x 
                         
                         
                           
                             ( 
                             
                               
                                 R 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     i 
                                     , 
                                     j 
                                   
                                   ) 
                                 
                               
                               ⁢ 
                               
                                 : 
                               
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               True 
                             
                             ) 
                           
                         
                       
                       
                         
                           ⊥ 
                         
                         
                           
                             ( 
                             
                               
                                 R 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     i 
                                     , 
                                     j 
                                   
                                   ) 
                                 
                               
                               ⁢ 
                               
                                 : 
                               
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               False 
                             
                             ) 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   B 
                   ) 
                 
               
             
           
         
       
     
     For example, the ID-based encryption can be defined as functional encryption having a function f i , j (x) represented by Expression (C). 
     
       
         
           
             
               
                 
                   
                     
                       f 
                       
                         i 
                         , 
                         j 
                       
                     
                     ⁡ 
                     
                       ( 
                       x 
                       ) 
                     
                   
                   = 
                   
                     { 
                     
                       
                         
                           x 
                         
                         
                           
                             ( 
                             
                               i 
                               = 
                               j 
                             
                             ) 
                           
                         
                       
                       
                         
                           ⊥ 
                         
                         
                           
                             ( 
                             
                               i 
                               ≠ 
                               j 
                             
                             ) 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   C 
                   ) 
                 
               
             
           
         
       
     
     Various types of functional encryption having a more advanced relationship R(·, ·) have been studied. The most versatile one of these types of functional encryption, which is called attribute-based encryption (ABE), predicate encryption (PE), or the like, has been actively studied. In 2010, Tatsuaki Okamoto et al. proposed this type of functional encryption that is relatively practical, corresponds to a predicate of a polynomial size and a set of predicate variables, and can prove CCA safety against adaptive identifier attacks under standard cryptologic assumptions (see reference literature R1).
     (reference literature R1) Tatsuaki Okamoto and Katsuyuki Takashima, “Fully Secure Functional Encryption with General Relations from the Decisional Linear Assumption”, In: Advances in Cryptology CRYPTO 2010, Lecture Notes in Computer Science, Volume 6223, 191-208, Springer-Verlag, 2010, Full paper: http://eprint.iacr.org/2010/563/   

     Functional encryption having a relationship R(·, ·) that is represented by Expression (D) assuming that the key identifier i and the receiver identifier j are instances of a predicate and a predicate variable, respectively, is called key policy functional encryption. At this time, the case where the ciphertext conceals not only the plaintext x but also the instance j of the predicate variable is called attribute concealment. 
     
       
         
           
             
               
                 
                   
                     R 
                     ⁡ 
                     
                       ( 
                       
                         i 
                         , 
                         j 
                       
                       ) 
                     
                   
                   = 
                   
                     { 
                     
                       
                         
                           True 
                         
                         
                           
                             ( 
                             
                               The 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               receiver 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               identifier 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               j 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               satisfies 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               the 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               predicate 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 i 
                                 . 
                               
                             
                             ) 
                           
                         
                       
                       
                         
                           False 
                         
                         
                           
                             ( 
                             
                               The 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               receiver 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               identifier 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               j 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               does 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               not 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               satisfy 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               the 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               predicate 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 i 
                                 . 
                               
                             
                             ) 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   D 
                   ) 
                 
               
             
           
         
       
     
     Functional encryption having a relationship R(·, ·) that is represented by Expression (E) assuming that the key identifier i and the receiver identifier j are instances of a predicate variable and a predicate, respectively, is called ciphertext policy functional encryption. At this time, the case where the ciphertext conceals not only the plaintext x but also the predicate j is called predicate concealment. 
     
       
         
           
             
               
                 
                   
                     R 
                     ⁡ 
                     
                       ( 
                       
                         i 
                         , 
                         j 
                       
                       ) 
                     
                   
                   = 
                   
                     { 
                     
                       
                         
                           True 
                         
                         
                           
                             ( 
                             
                               The 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               key 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               identifier 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               i 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               satisfies 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               the 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               predicate 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 j 
                                 . 
                               
                             
                             ) 
                           
                         
                       
                       
                         
                           False 
                         
                         
                           
                             ( 
                             
                               The 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               key 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               identifier 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               i 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               does 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               not 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               satisfy 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               the 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               predicate 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 j 
                                 . 
                               
                             
                             ) 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   E 
                   ) 
                 
               
             
           
         
       
     
     Key policy functional encryption having attribute concealment or ciphertext policy functional encryption having predicate concealment is called predicate encryption (see reference literature R2).
     (reference literature R2) Tatsuaki Okamoto and Katsuyuki Takashima, “Hierarchical Predicate Encryption for Inner-Products”, ASIACRYPT 2009: pp. 214-231, 2009.   

     &lt;Threshold Gate&gt; 
     The configuration of a threshold gate in the functional encryption is achieved according to a threshold secret sharing scheme, that is, a t-out-of-N secret sharing scheme, in which a secret can be restored if arbitrary t pieces out of N pieces of sharing information are given, whereas the secret cannot be restored even if arbitrary (t−1) or less pieces of sharing information are given. For the t-out-of-N secret sharing, please see reference literature R3 and the like. The threshold gate according to the t-out-of-N secret sharing scheme is called a t-out-of-N threshold gate. The t-out-of-N threshold gate has a gate structure that outputs “true” if t or more conditions out of N conditional expressions of inputs are satisfied, and outputs “false” in the other cases. The negation (of an output) of the t-out-of-N threshold gate is equivalent to an (N−t+1)-out-of-N threshold gate of the negation (of every input).
     (reference literature R3) A. Shamir, “How to Share a Secret”, Communications of the ACM, November 1979, Volume 22, Number 11, pp. 612-613.   

     &lt;Private Key Verifiable Functional Encryption&gt; 
     Functional encryption that can definitely prove that the private key sk i  is created correctly for the key identifier i is called private key verifiable functional encryption. A non-interactive zero-knowledge proof (see reference literature R4) that proves that key generation procedures have been performed correctly is added to the private key, whereby the private key verifiable functional encryption can be configured. The use of the private key verifiable functional encryption proves definitely that the private key sk i  is created correctly for the key identifier i.
     (reference literature R4) Jens Groth and Amit Sahai, “Efficient Non-interactive Proof Systems for Bilinear Groups”, Advances in Cryptology—EUROCRYPT 2008, LNCS 4965, pp. 415-432, March 2010.   

     &lt;Ciphertext Publicly Verifiable Functional Encryption&gt; 
     Functional encryption that can definitely prove that a ciphertext is created correctly even without any key for the ciphertext, the key being obtained according to the KeyGen algorithm, is called ciphertext publicly verifiable functional encryption. A non-interactive zero-knowledge proof (see reference literature R4 given above) that proves that encryption procedures have been performed correctly is added to the ciphertext, whereby the ciphertext publicly verifiable functional encryption can be configured. The use of the ciphertext publicly verifiable functional encryption proves definitely that the same results can be obtained even if any key capable of decryption is used for the ciphertext. 
     &lt;Electronic Signature&gt; 
     The electronic signature refers to the following three algorithms (KeyGen Σ , Sign Σ , Verify Σ ). The protocol thereof will be outlined below. 
     &lt;&lt;Protocol ES&gt;&gt; 
     KeyGen Σ (1 λ )→(sk Σ , pk Σ ): key generation algorithm 
     A probability polynomial time algorithm that receives a security parameter 1 λ  and outputs a public key for electronic signature verification pk Σ  and a private key for electronic signature sk Σ   
     Sign Σ (sk Σ , m)→σ: signature algorithm 
     A probability polynomial time algorithm that receives the private key for electronic signature sk Σ  and signature target information m and outputs a signature σ 
     Verify Σ (pk Σ , m, σ)→0/1: signature verification algorithm 
     A probability polynomial time algorithm that receives the public key for electronic signature verification pk Σ , the signature target information m, and the signature σ and outputs a verification result (Rejection (0) or Acceptance (1)) 
     Note that there is proposed an electronic signature scheme that can prove existential unforgeability against adaptive selected document attacks under appropriate cryptologic assumptions (for example, RSA-PSS (see reference literature R5)).
     (reference literature R5) Atsushi Fujioka, Evaluation Report on Cryptographic Algorithm RSA-PSS, Nippon Telegraph and Telephone Corporation, 2001   

     Next, the outline of the functional encryption will be described. Symbols and the like will be defined prior to the description. 
     [Definitions] 
     Matrix: A rectangular arrangement of elements of a set in which a calculation is defined. Not only elements of a ring but also elements of a group can form a matrix. 
     (·) T : Transposed matrix of · 
     (·) −1 : Inverse matrix of · 
       : Logical symbol representing a logical AND 
       : Logical symbol representing a logical OR 
       : Logical symbol representing a negation (NOT) 
     Propositional variable: Variable in a set {true, false} having “true” or “false” of a statement as its element. The propositional variable and the negation of the propositional variable are collectively referred to as a literal. 
     Logical expression: Expression having formal grammar representing a statement in mathematical logic. Specifically, “true” and “false” are logical expressions, a propositional variable is a logical expression, the negation of a logical expression is a logical expression, the logical AND of a logical expression and a logical expression is a logical expression, and the logical OR of a logical expression and a logical expression is a logical expression. 
     Z: Set of integers 
     sec: Security parameter (secεZ, sec&gt;0) 
     0*: Sequence formed of * zeros 
     1*: Sequence formed of * ones 
     F q : Finite field of order q, where q is an integer equal to or larger than 1. For example, the order q is a prime number or a power of a prime number. In other words, the finite field F q  is a prime field or an extended field of the prime field, for example. When the finite field F q  is a prime field, remainder calculations to modulus q can be easily performed, for example. When the finite field F q  is an extended field, remainder calculations modulo an irreducible polynomial can be easily performed, for example. A specific method for configuring a finite field F q  is disclosed, for example, in reference literature 1 “ISO/IEC 18033-2: Information technology—Security techniques—Encryption algorithms—Part 2: Asymmetric ciphers”. 
     0 F : Additive unit element of the finite field F q    
     1 F : Multiplicative unit element of the finite field F q    
     δ(i, j): Kronecker&#39;s delta function. When i=j, δ(i, j)=1 F . When i≠j, δ(i, j)=0 F . 
     E: Elliptic curve defined on the finite field F q . It is defined as a special point O called the point of infinity plus a set of points (x, y) satisfying x, yεF q  and the Weierstrass equation in an affine coordinate system
 
 y   2   +a   1   ·x·y+a   3   ·y=x   3   +a   2   ·x   2   +a   4   ·x+a   6  
 
where a 1 , a 2 , a 3 , a 4 , a 6 εF q . A binary operation + called an elliptic addition can be defined for any two points on the elliptic curve E, and a unary operation − called an elliptic inverse can be defined for any one point on the elliptic curve E. It is well known that a finite set of rational points on the elliptic curve E forms a group with respect to the elliptic addition. It is also well known that an operation called an elliptic scalar multiplication can be defined with the elliptic addition. A specific operation method of elliptic operations such as the elliptic addition on a computer is also well known. (For example, see reference literature 1; reference literature 2 “RFC 5091: Identity-Based Cryptography Standard (IBCS) #1: Supersingular Curve Implementations of the BF and BB1 Cryptosystems”; and reference literature 3 “Ian F. Blake, Gadiel Seroussi, and Nigel P. Smart, “Elliptic Curves in Cryptography”, Pearson Education, ISBN 4-89471-431-0”.)
 
     A finite set of rational points on the elliptic curve E has a subgroup of order p (p≧1). When the number of elements in a finite set of rational points on the elliptic curve E is #E and p is a large prime number that can divide #E without a remainder, for example, a finite set E[p] of p equally divided points on the elliptic curve E forms a subgroup of a finite set of rational points on the elliptic curve E. The p equally divided points on the elliptic curve E are points A on the elliptic curve E which satisfy the elliptic scalar multiplication p·A=O. 
     G 1 , G 2 , G T : Cyclic groups of order q. Specific examples of the cyclic groups G 1  and G 2  include the finite set E[p] of p equally divided points on the elliptic curve E and subgroups thereof. G 1  may equal G 2 , or G 1  may not equal G 2 . Specific examples of the cyclic group G T  include a finite set constituting an extended field of the finite field F q . An example thereof is a finite set of the p-th root of 1 in the algebraic closure of the finite field F q . Security is enhanced by making the orders of the cyclic groups G 1 , G 2 , and G T  identical with the order of the finite field F q . 
     In the present embodiment, operations defined on the cyclic groups G 1  and G 2  are expressed as additions, and an operation defined on the cyclic group G T  is expressed as a multiplication. More specifically, χ·ΩεG 1  for χεF q  and ΩεG 1  means that the operation defined in the cyclic group G 1  is applied to ΩεG 1  χ times, and Ω 1 +Ω 2 εG 1  for Ω 1 , Ω 2 εG 1  means that the operation defined in the cyclic group G 1  is applied to Ω 1 εG 1  and Ω 2 εG 1 . In the same way, χ·ΩεG 2  for χεF q  and ΩεG 2  means that the operation defined in the cyclic group G 2  is applied to ΩεG 2  χ times, and Ω 1 +Ω 2 εG 2  for Ω 1 , Ω 2 εG 2  means that the operation defined in the cyclic group G 2  is applied to Ω 1 εG 2  and Ω 2 εG 2 . In contrast, Q χ εG T  for χεF q  and ΩεG T  means that the operation defined in the cyclic group G T  is applied to ΩεG T  χ times, and Ω 1 ·Ω 2 εG T  for Ω 1 , Ω 2 εG T  means that the operation defined in the cyclic group G T  is applied to Ω 1 εG T  and Ω 2 εG T . 
     Ψ: Integer equal to or larger than 1 
     ψ: Integer equal to or larger than 0 and equal to or smaller than Ψ. ψ=0, . . . , Ψ. 
     λ: Integer equal to or larger than 1 and equal to or smaller than T. λ=1, . . . , Ψ. 
     n(ψ): Integer equal to or larger than 1 
     ζ(ψ): Integer equal to or larger than 0 
     G 1   n(ψ)+ζ(ψ) : Direct product of (n(ψ)+ζ(ψ)) cyclic groups G 1    
     G 2   n(ψ)+ζ(ψ) : Direct product of (n(ψ)+ζ(ψ)) cyclic groups G 2    
     g 1 , g 2 , g T : Generating elements of the cyclic groups G, G 1 , G 2 , G T    
     V(ψ): (n(ψ)+ζ(ψ))-dimensional vector space formed of the direct product of the (n(ψ)+ζ(ψ)) cyclic groups G 1    
     V*(ψ): (n(ψ)+ζ(ψ))-dimensional vector space formed of the direct product of the (n(ψ)+ζ(ψ)) cyclic groups G 2    
     e ψ : Non-degenerate bilinear map that maps the direct product G 1   n(ψ)+ζ(ψ) ×G 2   n(ψ)+ζ(ψ)  of the direct product G 1   n(ψ)+ζ(ψ)  and the direct product G 2   n(ψ)+ζ(ψ)  to the cyclic group G T . The bilinear map e ψ  receives (n(ψ)+ζ(ψ)) elements γ β  (β=1, . . . , n(ψ)+ζ(ψ)) of the cyclic group G 1  and (n(ψ)+ζ(ψ)) elements γ β * (β=1, . . . , n(ψ)+ζ(ψ)) of the cyclic group G 2  and outputs one element of the cyclic group G T .
 
 e   ψ   :G   1   n(ψ)+ζ(ψ)   ×G   2   n(ψ)+ζ(ψ)   →G   T   (1)
 
     The bilinear map e ψ  satisfies the following characteristics.
         Bilinearity: The following relationship is satisfied for all Γ 1 εG 1   n(ψ)+ζ(ψ) , Γ 2 εG 2   n(ψ)+ζ(ψ) , and ν, κεF q .
 
 e   ψ (ν·Γ 1 ,κ·Γ 2 )= e   ψ (Γ 1 , Γ 2 ) Γ·κ   (2)
   Non-degeneracy: This map does not map all Γ 1 εG 1   n(ψ)+ζ(ψ) , Γ 2 εG 2   n(ψ)+ζ(ψ)  onto the unit element of the cyclic group G T .   Computability: There exists an algorithm for efficiently calculating e ψ (Γ 1 , Γ 2 ) for all
 
Γ 1   εG   1   n(ψ)+ζ(ψ) ,Γ 2   εG   2   n(ψ)+ζ(ψ)   (3)
       

     In the present embodiment, the following non-degenerate bilinear map that maps the direct product G 1 ×G 2  of the cyclic group G 1  and the cyclic group G 2  to the cyclic group G T  constitutes the bilinear map e ψ .
 
Pair: G   1   ×G   2   →G   T   (4)
 
The bilinear map e ψ , of the present embodiment receives an (n(ψ)+ζ(ψ))-dimensional vector (γ 1 , . . . , γ n(ψ)+ζ(ψ) ) formed of (n(ψ)+ζ(ψ)) elements γ β  (β=1, . . . , n(ψ)+ζ(ψ)) of the cyclic group G 1  and an (n(ψ)+ζ(ψ))-dimensional vector (γ 1 *, . . . , γ n(ψ)+ζ(ψ) *) formed of (n(ψ)+ζ(ψ)) elements γ β * (β=1, . . . , n(ψ)+ζ(ψ)) of the cyclic group G 2  and outputs one element of the cyclic group G T .
 
 e   ψ :Π β=1   n(ψ)+ζ(ψ) Pair(γ β , γ β *)  (5)
 
     The bilinear map Pair receives a combination of one element of the cyclic group G 1  and one element of the cyclic group G 2  and outputs one element of the cyclic group G T . The bilinear map Pair satisfies the following characteristics.
         Bilinearity: The following relationship is satisfied for all Ω 1 εG 1 , Ω 2 εG 2 , and ν, κεF q .
 
Pair(ν·Ω 1 ,κ·Ω 2 )=Pair(Ω 1 ,Ω 2 ) ν·κ   (6)
   Non-degeneracy: This map does not map all
 
Ω 1   εG   1 ,Ω 2   εG   2   (7)
 
onto the unit element of the cyclic group G T .
       

     Computability: There exists an algorithm for efficiently calculating Pair(Ω 1 , Ω 2 ) for all Ω 1 εG 1 , Ω 2 εG 2 . 
     A specific example of the bilinear map Pair is a function for performing a pairing operation such as Weil pairing or Tate pairing. (For example, see reference literature 4 “Alfred. J. Menezes, Elliptic Curve Public Key Cryptosystems, Kluwer Academic Publishers, ISBN 0-7923-9368-6, pp. 61-81”.) A modified pairing function e(Ω 1 , phi(Ω 2 )) (Ω 1 εG 1 , Ω 2 εG 2 ) obtained by combining a function for performing a pairing operation, such as Tate pairing, and a predetermined function phi according to the type of the elliptic curve E may be used as the bilinear map Pair (for example, see reference literature 2). As the algorithm for performing a pairing operation on a computer, the Miller algorithm (see reference literature 5 “V. S. Miller, “Short Programs for Functions on Curves”, 1986, http://crypto.stanford.edu/miller/miller.pdf”) or some other known algorithm can be used. Methods for configuring a cyclic group and an elliptic curve used to efficiently perform a pairing operation have been well known. (For example, see reference literature 2; reference literature 6 “A. Miyaji, M. Nakabayashi, and S. Takano, “New Explicit Conditions of Elliptic Curve Traces for FR Reduction”, IEICE Trans. Fundamentals, Vol. E84-A, No. 5, pp. 1234-1243, May 2001”; reference literature 7 “P. S. L. M. Barreto, B. Lynn, M. Scott, “Constructing Elliptic Curves with Prescribed Embedding Degrees”, Proc. SCN “2002, LNCS 2576, pp. 257-267, Springer-Verlag. 2003”; and reference literature 8 “R. Dupont, A. Enge, F. Morain, “Building Curves with Arbitrary Small MOV Degree over Finite Prime Fields”, http://eprint.iacr.org/2002/094/”). 
     a i (ψ) (i=1, . . . , n(ψ)+ζ(ψ)): (n(ψ)+ζ(ψ))-dimensional basis vector having (n(ψ)+ζ(ψ)) elements of the cyclic group G 1  as elements. An example of the basis vector a i (ψ) is an (n(ψ)+ζ(ψ))-dimensional basis vector having κ 1 ·g 1 εG 1  as an i-dimensional element and the unit element (expressed as “0” in additive expression) of the cyclic group G 1  as the remaining (n(ψ)+ζ(ψ)−1) elements. In that case, each element of the (n(ψ)+ζ(ψ))-dimensional basis vector a i (ψ) (i=1, . . . , n(ψ)+ζ(ψ)) can be listed as follows. 
     
       
         
           
             
               
                 
                   
                     
                       
                         a 
                         1 
                       
                       ⁡ 
                       
                         ( 
                         ψ 
                         ) 
                       
                     
                     = 
                     
                       ( 
                       
                         
                           
                             κ 
                             1 
                           
                           · 
                           
                             g 
                             1 
                           
                         
                         , 
                         0 
                         , 
                         0 
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         0 
                       
                       ) 
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       
                         a 
                         2 
                       
                       ⁡ 
                       
                         ( 
                         ψ 
                         ) 
                       
                     
                     = 
                     
                       ( 
                       
                         0 
                         , 
                         
                           
                             κ 
                             1 
                           
                           · 
                           
                             g 
                             1 
                           
                         
                         , 
                         0 
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         0 
                       
                       ) 
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   … 
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       
                         a 
                         
                           
                             n 
                             ⁡ 
                             
                               ( 
                               ψ 
                               ) 
                             
                           
                           + 
                           
                             ζ 
                             ⁡ 
                             
                               ( 
                               ψ 
                               ) 
                             
                           
                         
                       
                       ⁡ 
                       
                         ( 
                         ψ 
                         ) 
                       
                     
                     = 
                     
                       ( 
                       
                         0 
                         , 
                         0 
                         , 
                         0 
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         
                           
                             κ 
                             1 
                           
                           · 
                           
                             g 
                             1 
                           
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   8 
                   ) 
                 
               
             
           
         
       
     
     Here, κ 1  is a constant formed of the elements of the finite field F q  other than the additive unit element 0 F . A specific example of κ 1 εF q  is κ 1 =1 F . The basis vector a i (ψ) is an orthogonal basis. Each (n(ψ)+ζ(ψ))-dimensional vector having (n(ψ)+ζ(ψ)) elements of the cyclic group G 1  as elements is expressed by a linear sum of (n(ψ)+(ψ))-dimensional basis vectors a i (ψ) (i=1, . . . , n(ψ)+ζ(ψ)). Therefore, the (n(ψ)+ζ(ψ))-dimensional basis vectors a i (ψ) span the vector space V(ψ), described earlier. 
     a i *(ψ) (i=1, . . . , n(ψ)+ζ(ψ)): (n(ψ)+ζ(ψ))-dimensional basis vector having (n(ψ)+ζ(ψ)) elements of the cyclic group G 2  as elements. An example of the basis vector a i *(ψ) is an (n(ψ)+ζ(ψ))-dimensional basis vector having κ 2 ·g 2 εG 2  as an i-dimensional element and the unit element (expressed as “0” in additive expression) of the cyclic group G 2  as the remaining (n(ψ)+ζ(ψ)−1) elements. In that case, each element of the (n(ψ)+ζ(ψ))-dimensional basis vector a i *(ψ) (i=1, . . . , n(ψ)+ζ(ψ)) can be listed as follows. 
     
       
         
           
             
               
                 
                   
                     
                       
                         a 
                         1 
                         * 
                       
                       ⁡ 
                       
                         ( 
                         ψ 
                         ) 
                       
                     
                     = 
                     
                       ( 
                       
                         
                           
                             κ 
                             2 
                           
                           · 
                           
                             g 
                             2 
                           
                         
                         , 
                         0 
                         , 
                         0 
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         0 
                       
                       ) 
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       
                         a 
                         2 
                         * 
                       
                       ⁡ 
                       
                         ( 
                         ψ 
                         ) 
                       
                     
                     = 
                     
                       ( 
                       
                         0 
                         , 
                         
                           
                             κ 
                             2 
                           
                           · 
                           
                             g 
                             2 
                           
                         
                         , 
                         0 
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         0 
                       
                       ) 
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   … 
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       
                         a 
                         
                           
                             n 
                             ⁡ 
                             
                               ( 
                               ψ 
                               ) 
                             
                           
                           + 
                           
                             ζ 
                             ⁡ 
                             
                               ( 
                               ψ 
                               ) 
                             
                           
                         
                         * 
                       
                       ⁡ 
                       
                         ( 
                         ψ 
                         ) 
                       
                     
                     = 
                     
                       ( 
                       
                         0 
                         , 
                         0 
                         , 
                         0 
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         
                           
                             κ 
                             2 
                           
                           · 
                           
                             g 
                             2 
                           
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   9 
                   ) 
                 
               
             
           
         
       
     
     Here, κ 2  is a constant formed of the elements of the finite field F q  other than the additive unit element 0 F . A specific example of κ 2 εF q  is κ 2 =1 F . The basis vector a i *(ψ) is an orthogonal basis. Each (n(ψ)+ζ(ψ))-dimensional vector having (n(ψ)+ζ(ψ)) elements of the cyclic group G 2  as elements is expressed by a linear sum of (n(ψ)+ζ(ψ))-dimensional basis vectors a i *(ψ) (i=1, . . . , n(ψ)+ζ(ψ)). Therefore, the (n(ψ)+ζ(ψ))-dimensional basis vectors a i *(ψ) span the vector space V*(ψ), described earlier. 
     The basis vector a i (ψ) and the basis vector a i *(ψ) satisfy the following expression for the elements τ=κ 1 ·κ 2  of the finite field F q  other than 0 F .
 
 e   ψ ( a   i (ψ), a   j *(ψ))= g   T   τ·δ(i,j)   (10)
 
When i=j, the following expression is satisfied from Expressions (5) and (6).
 
                       e   ψ     ⁡     (         a   i     ⁡     (   ψ   )       ,       a   j   *     ⁡     (   ψ   )         )       =       ⁢       Pair   ⁡     (         κ   1     ·     g   1       ,       κ   2     ·     g   2         )       ·     Pair   ⁡     (     0   ,   0     )       ·   …   ·     Pair   ⁡     (     0   ,   0     )                     =       ⁢         Pair   ⁡     (       g   1     ,     g   2       )         κ   ⁢           ⁢     1   ·   κ     ⁢           ⁢   2       ·                     ⁢         Pair   ⁡     (       g   1     ,     g   2       )         0   ·   0       ·   …   ·       Pair   ⁡     (       g   1     ,     g   2       )         0   ·   0                     =       ⁢       Pair   ⁡     (       g   1     ,     g   2       )         κ   ⁢           ⁢     1   ·   κ     ⁢           ⁢   2                   =       ⁢     g   T   τ                 
Here, superscripts κ1 and κ2 respectively represent κ 1  and κ 2 . When i≠j, the right side of e χ (a i (ψ), a j *(ψ))=Π i=1   n(ψ)+ζ(ψ)  Pair(a i (ψ), a j *(ψ)) does not include Pair(κ 1 ·g 1 , κ 2 ·g 2 ) and is the product of Pair(κ 1 ·g i , 0), Pair(0, κ 2 ·g 2 ), and Pair(0, 0). In addition, Pair(g 1 , 0)=Pair(0, g)=Pair(g 1 , g 2 ) 0  is satisfied from Expression (6). Therefore, when i≠j, the following expression is satisfied.
 
 e   ψ ( a   i (ψ), a   j *(ψ))= e   ψ ( g   1   ,g   2 ) 0   =g   T   0  
 
     Especially when τ=κ 1 ·κ 2 =1 F  (for example, κ 1 =κ 2 =1 F ), the following expression is satisfied.
 
 e ( a   i (ψ), a   j *(ψ))= g   T   δ(i,j)   (11)
 
Here, g T   0 =1 is the unit element of the cyclic group G T , and g T   1 =g T  is a generating element of the cyclic group G T . In that case, the basis vector a i (ψ) and the basis vector a i *(ψ) are a dual normal orthogonal basis, and the vector space V(ψ) and the vector space V*(ψ) are a dual vector space that can constitute bilinear mapping (dual pairing vector space (DPVS)).
 
     A(ψ): An (n(ψ)+ζ(ψ)) row by (n(ψ)+ζ(ψ)) column matrix having the basis vector a i (ψ) (i=1, . . . , n(ψ)+ζ(ψ)) as elements. When the basis vector a i (ψ) (i=1, . . . , n(ψ)+ζ(ψ)) is expressed by Expression (8), for example, the matrix A(ψ) is as follows. 
     
       
         
           
             
               
                 
                   
                     
                       
                         
                           A 
                           ⁡ 
                           
                             ( 
                             ψ 
                             ) 
                           
                         
                         = 
                           
                         ⁢ 
                         
                           ( 
                           
                             
                               
                                 
                                   
                                     a 
                                     1 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     ψ 
                                     ) 
                                   
                                 
                               
                             
                             
                               
                                 
                                   
                                     a 
                                     2 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     ψ 
                                     ) 
                                   
                                 
                               
                             
                             
                               
                                 ⋮ 
                               
                             
                             
                               
                                 
                                   
                                     a 
                                     
                                       
                                         n 
                                         ⁡ 
                                         
                                           ( 
                                           ψ 
                                           ) 
                                         
                                       
                                       + 
                                       
                                         ζ 
                                         ⁡ 
                                         
                                           ( 
                                           ψ 
                                           ) 
                                         
                                       
                                     
                                   
                                   ⁡ 
                                   
                                     ( 
                                     ψ 
                                     ) 
                                   
                                 
                               
                             
                           
                           ) 
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                         ⁢ 
                         
                           ( 
                           
                             
                               
                                 
                                   
                                     κ 
                                     1 
                                   
                                   · 
                                   
                                     g 
                                     1 
                                   
                                 
                               
                               
                                 0 
                               
                               
                                 … 
                               
                               
                                 0 
                               
                             
                             
                               
                                 0 
                               
                               
                                 
                                   
                                     κ 
                                     1 
                                   
                                   · 
                                   
                                     g 
                                     1 
                                   
                                 
                               
                               
                                 
                                     
                                 
                               
                               
                                 ⋮ 
                               
                             
                             
                               
                                 ⋮ 
                               
                               
                                 
                                     
                                 
                               
                               
                                 ⋱ 
                               
                               
                                 0 
                               
                             
                             
                               
                                 0 
                               
                               
                                 … 
                               
                               
                                 0 
                               
                               
                                 
                                   
                                     κ 
                                     1 
                                   
                                   · 
                                   
                                     g 
                                     1 
                                   
                                 
                               
                             
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   12 
                   ) 
                 
               
             
           
         
       
     
     A*(ψ): An (n(ψ)+ζ(ψ)) row by (n(ψ)+ζ(ψ)) column matrix having the basis vector a i *(ψ) (i=1, . . . , n(ψ)+ζ(ψ)) as elements. When the basis vector a i *(ψ) (i=1, . . . , n(ψ)+ζ(ψ)) is expressed by Expression (9), for example, the matrix A*(ψ) is as follows. 
     
       
         
           
             
               
                 
                   
                     
                       
                         
                           
                             A 
                             * 
                           
                           ⁡ 
                           
                             ( 
                             ψ 
                             ) 
                           
                         
                         = 
                           
                         ⁢ 
                         
                           ( 
                           
                             
                               
                                 
                                   
                                     a 
                                     1 
                                     * 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     ψ 
                                     ) 
                                   
                                 
                               
                             
                             
                               
                                 
                                   
                                     a 
                                     2 
                                     * 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     ψ 
                                     ) 
                                   
                                 
                               
                             
                             
                               
                                 ⋮ 
                               
                             
                             
                               
                                 
                                   
                                     a 
                                     
                                       
                                         n 
                                         ⁡ 
                                         
                                           ( 
                                           ψ 
                                           ) 
                                         
                                       
                                       + 
                                       
                                         ζ 
                                         ⁡ 
                                         
                                           ( 
                                           ψ 
                                           ) 
                                         
                                       
                                     
                                     * 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     ψ 
                                     ) 
                                   
                                 
                               
                             
                           
                           ) 
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                         ⁢ 
                         
                           ( 
                           
                             
                               
                                 
                                   
                                     κ 
                                     2 
                                   
                                   · 
                                   
                                     g 
                                     2 
                                   
                                 
                               
                               
                                 0 
                               
                               
                                 … 
                               
                               
                                 0 
                               
                             
                             
                               
                                 0 
                               
                               
                                 
                                   
                                     κ 
                                     2 
                                   
                                   · 
                                   
                                     g 
                                     2 
                                   
                                 
                               
                               
                                 
                                     
                                 
                               
                               
                                 ⋮ 
                               
                             
                             
                               
                                 ⋮ 
                               
                               
                                 
                                     
                                 
                               
                               
                                 ⋱ 
                               
                               
                                 0 
                               
                             
                             
                               
                                 0 
                               
                               
                                 … 
                               
                               
                                 0 
                               
                               
                                 
                                   
                                     κ 
                                     2 
                                   
                                   · 
                                   
                                     g 
                                     2 
                                   
                                 
                               
                             
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   13 
                   ) 
                 
               
             
           
         
       
     
     X(ψ): An (n(ψ)+ζ(ψ)) row by (n(ψ)+ζ(ψ)) column matrix having elements of the finite field F q  as elements. The matrix X(ψ) is used to apply coordinate conversion to the basis vector a i (ψ). When the element located at the i-th row and the j-th column (i=1, . . . , n(ψ)+ζ(ψ), j=1, . . . , n(ψ)+ζ(ψ)) in the matrix X(ψ) is χ i,j (ψ)εF q , the matrix X(ψ) is as follows. 
                     X   ⁡     (   ψ   )       =     (             χ     1   ,   1       ⁡     (   ψ   )               χ     1   ,   2       ⁡     (   ψ   )           …           χ     1   ,       n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )             ⁡     (   ψ   )                   χ     2   ,   1       ⁡     (   ψ   )               χ     2   ,   2       ⁡     (   ψ   )                       ⋮           ⋮                   ⋱       ⋮               χ         n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )         ,   1       ⁡     (   ψ   )               χ         n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )         ,   2       ⁡     (   ψ   )           …           χ         n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )         ,       n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )             ⁡     (   ψ   )             )             (   14   )               
Here, each element χ i,j (ψ) of the matrix X(ψ) is called a conversion coefficient.
 
     X*(ψ): X*(ψ) and the matrix X(ψ) satisfy the relationship of X*(ψ)=τ′·(X(ψ) −1 ) T . Note that τ′εF q  is an arbitrary constant belonging to the finite field F q , and τ′=1 F , for example. The matrix X*(ψ) is used to apply coordinate conversion to the basis vector a i *(ψ). When the element located at the i-th row and the j-th column in the matrix X*(ψ) is χ i,j *(ψ)εF q , the matrix X*(ψ) is as follows. 
                       X   *     ⁡     (   ψ   )       =     (             χ     1   ,   1     *     ⁡     (   ψ   )               χ     1   ,   2     *     ⁡     (   ψ   )           …           χ     1   ,       n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )           *     ⁡     (   ψ   )                   χ     2   ,   1     *     ⁡     (   ψ   )               χ     2   ,   2     *     ⁡     (   ψ   )                       ⋮           ⋮                   ⋱       ⋮               χ         n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )         ,   1     *     ⁡     (   ψ   )             χ         n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )         ,   2     *         …         χ         n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )         ,       n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )           *           )             (   15   )               
Here, each element χ i,j *(ψ) of the matrix X*(ψ) is called a conversion coefficient.
 
     In that case, when an (n(ψ)+ζ(ψ)) row by (n(ψ)+ζ(ψ)) column unit matrix is I(ψ), X(ψ)·(X*(ψ)) T =τ′·I(ψ). In other words, for the unit matrix given below, 
                     I   ⁡     (   ψ   )       =     (           1   F           0   F         …         0   F               0   F           1   F                     ⋮           ⋮                   ⋱         0   F               0   F           0   F         …         1   F           )             (   16   )               
the following expression is satisfied.
 
                       (             χ     1   ,   1       ⁡     (   ψ   )               χ     1   ,   2       ⁡     (   ψ   )           …           χ     1   ,       n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )             ⁡     (   ψ   )                   χ     2   ,   1       ⁡     (   ψ   )               χ     2   ,   2       ⁡     (   ψ   )                       ⋮           ⋮                   ⋱       ⋮               χ         n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )         ,   1       ⁡     (   ψ   )               χ         n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )         ,   2       ⁡     (   ψ   )           …           χ         n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )         ,       n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )             ⁡     (   ψ   )             )     ×     (             χ     1   ,   1     *     ⁡     (   ψ   )               χ     1   ,   2     *     ⁡     (   ψ   )           …           χ         n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )         ,   1     *     ⁡     (   ψ   )                   χ     1   ,   2     *     ⁡     (   ψ   )               χ     2   ,   2     *     ⁡     (   ψ   )                       ⋮           ⋮                   ⋱       ⋮               χ     1   ,       n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )           *     ⁡     (   ψ   )             χ     2   ,       n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )           *         …           χ         n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )         ,       n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )           *     ⁡     (   ψ   )             )       =       τ   ′     ·     (           1   F           0   F         …         0   F               0   F           1   F                     ⋮           ⋮                   ⋱         0   F               0   F           0   F         …         1   F           )               (   17   )               
Here, (n(ψ)+ζ(ψ))-dimensional vectors will be defined below.
 
χ i   → (ψ)=(χ i,1 (ψ), . . . ,χ i,n(ψ)+ζ(ψ)   (18)
 
χ j   → (ψ)=(χ j,1 (ψ), . . . ,χ j,n(ψ)+ζ(ψ)   (19)
 
The inner product of the (n(ψ)+ζ(ψ))-dimensional vectors χ i   → (ψ) and χ j   → *(ψ) satisfies the following expression from Expression (17).
 
χ i   → (ψ)·χ j   → *(ψ)=τ′·δ( i,j )  (20)
 
     b i (ψ): (n(ψ)+ζ(ψ))-dimensional basis vector having (n(ψ)+ζ(ψ)) elements of the cyclic group G 1  as elements. The basis vector b i (ψ) is obtained by applying coordinate conversion to the basis vector a i (ψ) (i=1, . . . , n(ψ)+ζ(ψ)) by using the matrix X(ψ). Specifically, the basis vector b i (ψ) is obtained by the following calculation.
 
 b   i (ψ)=Σ j=1   n(ψ)+ζ(ψ) =χ i,j (ψ)· a   j (ψ)  (21)
 
For example, when the basis vector a j (ψ) (j=1, . . . , n(ψ)+ζ(ψ)) is expressed by Expression (8), each element of the basis vector b i (ψ) can be listed as follows.
 
 b   i (ψ)=(χ i,j (ψ)·κ 1   ·g   1 ,χ i,2 (ψ)·κ 1   ·g   1 , . . . ,χ i,n(ψ)+ζ(ψ) (ψ)·κ 1   ·g   1 )  (22)
 
     Each (n(ψ)+ζ(ψ))-dimensional vector having (n(ψ)+ζ(ψ)) elements of the cyclic group G 1  as elements is expressed by a linear sum of (n(ψ)+ζ(ψ))-dimensional basis vectors b i (ψ) (i=1, . . . , n(ψ)+ζ(ψ)). Therefore, the (n(ψ)+ζ(ψ))-dimensional basis vectors b i (ψ) span the vector space V(ψ), described earlier. 
     b i *(ψ): (n(ψ)+ζ(ψ))-dimensional basis vector having (n(ψ)+ζ(ψ)) elements of the cyclic group G 2  as elements. The basis vector b i *(ψ) is obtained by applying coordinate conversion to the basis vector a i *(ψ) (i=1, . . . , n(ψ)+ζ(ψ)) by using the matrix X*(ψ). Specifically, the basis vector b i *(ψ) is obtained by the following calculation.
 
 b   i *(ψ)=Σ j=1   n(ψ)+ζ(ψ) χ i,j *(ψ)· a   j *(ψ)  (23)
 
For example, when the basis vector a j *(ψ) (j=1, . . . , n(ψ)+ζ(ψ) is expressed by Expression (9), each element of the basis vector b i *(ψ) can be listed as follows.
 
 b   i *(ψ)=(χ i,1 *(ψ)·κ 2   ·g   2 ,χ i,2 *(ψ)·κ 2   ·g   2 , . . . ,χ i,n(ψ)+ζ(ψ) *(ψ)·η 2   ·g   2 )  (24)
 
Each (n(ψ)+ζ(ψ)-dimensional vector having (n(ψ)+ζ(ψ)) elements of the cyclic group G 2  as elements is expressed by a linear sum of (n(ψ)+ζ(ψ))-dimensional basis vectors b i *(ψ) (i=1, . . . , n(ψ)+ζ(ψ)). Therefore, the (n(ψ)+ζ(ψ))-dimensional basis vectors b i *(ψ) span the vector space V*(ψ), described earlier.
 
     The basis vector b i (ψ) and the basis vector b i *(ψ) satisfy the following expression for the elements i=κ 1 ·κ 2  of the finite field F q  other than 0 F .
 
 e   ψ ( b   i (ψ), b   j *(ψ))= g   T   τ−τ′·δ(i,j)   (25)
 
The following expression is satisfied from Expressions (5), (20), (22), and (24).
 
                       e   ψ     ⁡     (         b   i     ⁡     (   ψ   )       ,       b   j   *     ⁡     (   ψ   )         )       =       ⁢       ∏     β   =   1         n   ⁡     (   ψ   )       +     ζ   ⁡     (   ψ   )           ⁢           ⁢     Pair   ⁡     (           χ     i   ,   β       ⁡     (   ψ   )       ·     κ   1     ·     g   1       ,         χ     j   ,   β     *     ⁡     (   ψ   )       ·     κ   2     ·     g   2         )                     =       ⁢       Pair   ⁡     (       g   1     ,     g   2       )           κ   1     ·     κ   2     ·         χ   i     →     ⁡     (   ψ   )       ·         χ   j       →   *       ⁡     (   ψ   )                       =       ⁢       Pair   ⁡     (       g   1     ,     g   2       )         τ   ·     τ   ′     ·     δ   ⁡     (     i   ,   j     )                       =       ⁢     g   T     τ   ·     τ   ′     ·     δ   ⁡     (     i   ,   j     )                       
Especially when τ=κ 1 ·κ 2 =1 F  (for example, κ 1 =κ 2 =1 F ), the following expression is satisfied.
 
 e   ψ ( b   i (ψ), b   j *(ψ))= g   T   δ(i,j)   (26)
 
In that case, the basis vector b i (ψ) and the basis vector b i *(ψ) are the dual normal orthogonal basis of a dual pairing vector space (the vector space V(ψ) and the vector space V*(ψ)).
 
     As long as Expression (25) is satisfied, the basis vectors a i (ψ) and a i *(ψ) other than those shown in Expressions (8) and (9) as examples and the basis vectors b i (ψ) and b i *(ψ) other than those shown in Expressions (21) and (23) as examples may be used. 
     B(ψ): An (n(ψ)+ζ(ψ)) row by (n(ψ)+ζ(ψ)) column matrix having the basis vector b i (ψ) (i=1, . . . , n(ψ)+ζ(ψ)) as elements. B(ψ)=X(ψ)·A(ψ) is satisfied. For example, when the basis vector b i (ψ) is expressed by Expression (22), the matrix B(ψ) is as follows. 
     
       
         
           
             
               
                 
                   
                     
                       
                         
                           B 
                           ⁡ 
                           
                             ( 
                             φ 
                             ) 
                           
                         
                         = 
                           
                         ⁢ 
                         
                           ( 
                           
                             
                               
                                 
                                   
                                     b 
                                     1 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     φ 
                                     ) 
                                   
                                 
                               
                             
                             
                               
                                 
                                   
                                     b 
                                     2 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     φ 
                                     ) 
                                   
                                 
                               
                             
                             
                               
                                 ⋮ 
                               
                             
                             
                               
                                 
                                   
                                     b 
                                     
                                       
                                         n 
                                         ⁡ 
                                         
                                           ( 
                                           φ 
                                           ) 
                                         
                                       
                                       + 
                                       
                                         ζ 
                                         ⁡ 
                                         
                                           ( 
                                           φ 
                                           ) 
                                         
                                       
                                     
                                   
                                   ⁡ 
                                   
                                     ( 
                                     φ 
                                     ) 
                                   
                                 
                               
                             
                           
                           ) 
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                         ⁢ 
                         
                           ( 
                           
                             
                               
                                 
                                   
                                     
                                       χ 
                                       
                                         1 
                                         , 
                                         1 
                                       
                                     
                                     ⁡ 
                                     
                                       ( 
                                       φ 
                                       ) 
                                     
                                   
                                   · 
                                   
                                     κ 
                                     1 
                                   
                                   · 
                                   
                                     g 
                                     1 
                                   
                                 
                               
                               
                                 … 
                               
                               
                                 
                                   
                                     
                                       χ 
                                       
                                         1 
                                         , 
                                         
                                           
                                             n 
                                             ⁡ 
                                             
                                               ( 
                                               φ 
                                               ) 
                                             
                                           
                                           + 
                                           
                                             ζ 
                                             ⁡ 
                                             
                                               ( 
                                               φ 
                                               ) 
                                             
                                           
                                         
                                       
                                     
                                     ⁡ 
                                     
                                       ( 
                                       φ 
                                       ) 
                                     
                                   
                                   · 
                                   
                                     κ 
                                     1 
                                   
                                   · 
                                   
                                     g 
                                     1 
                                   
                                 
                               
                             
                             
                               
                                 ⋮ 
                               
                               
                                 ⋱ 
                               
                               
                                 ⋮ 
                               
                             
                             
                               
                                 
                                   
                                     
                                       χ 
                                       
                                         
                                           
                                             n 
                                             ⁡ 
                                             
                                               ( 
                                               φ 
                                               ) 
                                             
                                           
                                           + 
                                           
                                             ζ 
                                             ⁡ 
                                             
                                               ( 
                                               φ 
                                               ) 
                                             
                                           
                                         
                                         , 
                                         1 
                                       
                                     
                                     ⁡ 
                                     
                                       ( 
                                       φ 
                                       ) 
                                     
                                   
                                   · 
                                   
                                     κ 
                                     1 
                                   
                                   · 
                                   
                                     g 
                                     1 
                                   
                                 
                               
                               
                                 … 
                               
                               
                                 
                                   
                                     χ 
                                     
                                       
                                         
                                           n 
                                           ⁡ 
                                           
                                             ( 
                                             φ 
                                             ) 
                                           
                                         
                                         + 
                                         
                                           ζ 
                                           ⁡ 
                                           
                                             ( 
                                             φ 
                                             ) 
                                           
                                         
                                       
                                       , 
                                       
                                         
                                           n 
                                           ⁡ 
                                           
                                             ( 
                                             φ 
                                             ) 
                                           
                                         
                                         + 
                                         
                                           ζ 
                                           ⁡ 
                                           
                                             ( 
                                             φ 
                                             ) 
                                           
                                         
                                       
                                     
                                   
                                   · 
                                   
                                     κ 
                                     1 
                                   
                                   · 
                                   
                                     g 
                                     1 
                                   
                                 
                               
                             
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   27 
                   ) 
                 
               
             
           
         
       
     
     B*(ψ): An (n(ψ)+ζ(ψ)) row by (n(ψ)+ζ(ψ)) column matrix having the basis vector b i *(ψ) (i=1, . . . , n(ψ)+ζ(ψ)) as elements. B*(ψ)=X*(ψ)·A*(ψ) is satisfied. For example, when the basis vector b i *(ψ) (i=1, . . . , n(i)+ζ(ψ)) is expressed by Expression (24), the matrix B*(ψ) is as follows. 
     
       
         
           
             
               
                 
                   
                     
                       
                         
                           
                             B 
                             * 
                           
                           ⁡ 
                           
                             ( 
                             φ 
                             ) 
                           
                         
                         = 
                           
                         ⁢ 
                         
                           ( 
                           
                             
                               
                                 
                                   
                                     b 
                                     1 
                                     * 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     φ 
                                     ) 
                                   
                                 
                               
                             
                             
                               
                                 
                                   
                                     b 
                                     2 
                                     * 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     φ 
                                     ) 
                                   
                                 
                               
                             
                             
                               
                                 ⋮ 
                               
                             
                             
                               
                                 
                                   
                                     b 
                                     
                                       
                                         n 
                                         ⁡ 
                                         
                                           ( 
                                           φ 
                                           ) 
                                         
                                       
                                       + 
                                       
                                         ζ 
                                         ⁡ 
                                         
                                           ( 
                                           φ 
                                           ) 
                                         
                                       
                                     
                                     * 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     φ 
                                     ) 
                                   
                                 
                               
                             
                           
                           ) 
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                         ⁢ 
                         
                           ( 
                           
                             
                               
                                 
                                   
                                     
                                       χ 
                                       
                                         1 
                                         , 
                                         1 
                                       
                                       * 
                                     
                                     ⁡ 
                                     
                                       ( 
                                       φ 
                                       ) 
                                     
                                   
                                   · 
                                   
                                     κ 
                                     1 
                                   
                                   · 
                                   
                                     g 
                                     1 
                                   
                                 
                               
                               
                                 … 
                               
                               
                                 
                                   
                                     
                                       χ 
                                       
                                         1 
                                         , 
                                         
                                           
                                             n 
                                             ⁡ 
                                             
                                               ( 
                                               φ 
                                               ) 
                                             
                                           
                                           + 
                                           
                                             ζ 
                                             ⁡ 
                                             
                                               ( 
                                               φ 
                                               ) 
                                             
                                           
                                         
                                       
                                       * 
                                     
                                     ⁡ 
                                     
                                       ( 
                                       φ 
                                       ) 
                                     
                                   
                                   · 
                                   
                                     κ 
                                     2 
                                   
                                   · 
                                   
                                     g 
                                     2 
                                   
                                 
                               
                             
                             
                               
                                 ⋮ 
                               
                               
                                 ⋱ 
                               
                               
                                 ⋮ 
                               
                             
                             
                               
                                 
                                   
                                     
                                       χ 
                                       
                                         
                                           
                                             n 
                                             ⁡ 
                                             
                                               ( 
                                               φ 
                                               ) 
                                             
                                           
                                           + 
                                           
                                             ζ 
                                             ⁡ 
                                             
                                               ( 
                                               φ 
                                               ) 
                                             
                                           
                                         
                                         , 
                                         1 
                                       
                                       * 
                                     
                                     ⁡ 
                                     
                                       ( 
                                       φ 
                                       ) 
                                     
                                   
                                   · 
                                   
                                     κ 
                                     1 
                                   
                                   · 
                                   
                                     g 
                                     1 
                                   
                                 
                               
                               
                                 … 
                               
                               
                                 
                                   
                                     
                                       χ 
                                       
                                         
                                           
                                             n 
                                             ⁡ 
                                             
                                               ( 
                                               φ 
                                               ) 
                                             
                                           
                                           + 
                                           
                                             ζ 
                                             ⁡ 
                                             
                                               ( 
                                               φ 
                                               ) 
                                             
                                           
                                         
                                         , 
                                         
                                           
                                             n 
                                             ⁡ 
                                             
                                               ( 
                                               φ 
                                               ) 
                                             
                                           
                                           + 
                                           
                                             ζ 
                                             ⁡ 
                                             
                                               ( 
                                               φ 
                                               ) 
                                             
                                           
                                         
                                       
                                       * 
                                     
                                     ⁡ 
                                     
                                       ( 
                                       φ 
                                       ) 
                                     
                                   
                                   · 
                                   
                                     κ 
                                     2 
                                   
                                   · 
                                   
                                     g 
                                     2 
                                   
                                 
                               
                             
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   28 
                   ) 
                 
               
             
           
         
       
     
     v(λ) → : An n(λ)-dimensional vector having elements of the finite field F q  as elements.
 
 v (λ) → =( v   1 (λ), . . . ,  v   n(λ) (λ))ε F   q   n(λ)   (29)
 
     v μ (λ): The μ-th (μ=1, . . . , n(λ)) element of the n(λ)-dimensional vector v(λ) → . 
     w(λ) → : An n(λ)-dimensional vector having elements of the finite field F q  as elements.
 
 w (λ) → =( w   1 (λ), . . . ,  w   n(λ) (λ))ε F   q   n(λ)   (30)
 
w μ (λ): The μ-th (μ=1, . . . , n(λ)) element of the n(λ)-dimensional vector w(λ) → .
 
     Enc: A common key encryption function that indicates an encryption process of a common key cryptosystem. 
     Enc k (M): Ciphertext obtained by encrypting plaintext M by the common key encryption function Enc with the use of a common key K. 
     Dec: A common key decryption function that indicates a decryption process of the common key cryptosystem. 
     Dec k (C): A decryption result obtained by decrypting ciphertext C by the common key decryption function Dec with the use of the common key K. 
     [Function Cryptosystem] 
     Next, the basic configuration of function cryptosystem will be described below. 
     In the function cryptosystem, a ciphertext is decoded in the case where the true value of a logical expression determined by the combination of first information and second information is “true”. One of the “first information” and the “second information” is embedded in the ciphertext, and the other thereof is embedded in key information. For example, a predicate cryptosystem disclosed in “Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products”, with Amit Sahai and Brent Waters One of 4 papers from Eurocrypt 2008 invited to the Journal of Cryptology” (reference literature 9) is one of function cryptosystems. 
     There exist various known function cryptosystems other than the one given above, and a new function cryptosystem that has not been published is described below. In the new function cryptosystem to be described below, secrets of a value according to secret information are hierarchically shared in a mode according to a predetermined logical expression. The predetermined logical expression includes a propositional variable whose true value is determined by the combination of the first information and the second information, and further includes all or some of the logical symbols  ,  , and   as needed. Then, in the case where the true value of the predetermined logical expression, which is determined by identifying the true value of each propositional variable, is “true”, the value according to the secret information is restored, and the ciphertext is decrypted on the basis of the restored value. 
     &lt;Relationship Between Logical Expression and Hierarchical Secret Sharing&gt; 
     The relationship between the predetermined logical expression and the hierarchical secret sharing will be described. 
     The secret sharing refers to dividing secret information into N (N≦2) pieces of share information such that the secret information is restored only in the case where K t  (K t ≦1) or more pieces (threshold value) of share information are obtained. A secret sharing scheme (SSS) that satisfies K t =N is called an N-out-of-N sharing scheme (or “N-out-of-N threshold sharing scheme”), and a secret sharing scheme that satisfies K t &lt;N is called a K t -out-of-N sharing scheme (or “K t -out-of-N threshold sharing scheme”) (for example, see reference literature 10 “Kaoru Kurosawa, Wakaha Ogata “Basic Mathematics of Modern Cryptography (IEICE Lecture Series)”, Corona Publishing Co., Ltd., March 2004, p. 116-119”; and reference literature 11 “A. Shamir, “How to Share a Secret”, Communications of the ACM, November 1979, Volume 22, Number 11, pp. 612-613.”). 
     In the N-out-of-N sharing scheme, if all pieces of share information share(1), . . . , share(N) are given, secret information SE can be restored, but even if (N−1) pieces of arbitrary share information share(φ 1 ), . . . , share(φ N−1 ) are given, the secret information SE cannot be obtained at all. An example thereof is given below.
         SH 1 , . . . , SH N−1  are randomly selected.   Calculation of SH N =SE−(SH 1 + . . . +SH N−1 ) is performed.   SH 1 , . . . , SH N  are respectively defined as the pieces of share information share(1), . . . , share(N).   If all the pieces of share information share(1), . . . , share(N) are given, the secret information SE can be restored by a restoration process using the following expression.
 
 SE =share(1)+ . . . +share( N )  (31)
       

     In the K t -out-of-N sharing scheme, if K t  pieces of arbitrary different share information share(φ1), . . . , share(φ Kt ) are given, the secret information SE can be restored, but even if (K t −1) pieces of arbitrary share information share(φ 1 ), . . . , share(φ Kt−1 ) are given, the secret information SE cannot be obtained at all. Note that the subscript Kt represents K t . An example of the K t -out-of-N sharing scheme is given below.
         A (K t −1)-order polynomial f(x)=ξ 0 +ξ 1 ·x+ξ 2 ·x 2 + . . . +ξ Kt−1 ·x Kt−1  that satisfies f(0)=SE is randomly selected. That is, assuming that ξ 0 =SE, ξ 1 , . . . , ξ Kt−1  are randomly selected. The share information is defined as share(ρ)=(ρ, f(ρ)) (ρ=1, . . . , N). Note that (ρ, f(ρ)) is information that can extract values of ρ and f(ρ), and is a bit connecting value of ρ and f(ρ), for example.   In the case where K t  pieces of arbitrary different share information share(φ 1 ), . . . , share(φ Kt ) ((φ 1 , . . . , φ Kt )∪(1, . . . , N)) are obtained, for example, the secret information SE can be restored by a restoration process using the following expression, according to the Lagrange formula for interpolation.       

                   SE   =       f   ⁡     (   0   )       =         LA   1     ·     f   ⁡     (     φ   1     )         +   …   +       LA     K   t       ·     f   ⁡     (     φ     K   t       )                     (   32   )                     LA   ρ     ⁡     (   x   )       =           (     x   -     ϕ   1       )     ⁢           ⁢     …   ⁢           ⁢     ⋁   ρ     ⁢           ⁢   …     ⁢           ⁢     (     x   -     ϕ     K   t         )           (       ϕ   ρ     -     ϕ   1       )     ⁢           ⁢     …   ⁢           ⁢     ⋁   ρ     ⁢           ⁢   …     ⁢           ⁢     (       ϕ   ρ     -     ϕ     K   t         )         ∈     F   q         ⁢     
     ⁢     where   ⁢           ⁢     ⌈     …   ⁢           ⁢     ⋁   ρ     ⁢           ⁢   …     ⌋               (   33   )               
means that a ρ-th operand from the beginning, which has a denominator element ((φ ρ −φ ρ ) and a numerator element (x−φ ρ ), does not exist. That is, the denominator of Expression (33) is as follows.
 
(φ ρ −φ 1 )· . . . ·(φ ρ −φ ρ−1 )·(φ ρ −φ p+1 )· . . . ·(φ ρ −φ Kt )
 
The numerator of Expression (33) is as follows.
 
( x−φ   1 )· . . . ·( x−φ   ρ−1 )·( x−φ   ρ+1 )· . . . ·( x−φ   Kt )
 
     Each secret sharing described above can be executed in the field. Further, through extension thereof, secrets of a value according to secret information SE can be shared to pieces of share information share. The value according to the secret information SE refers to the secret information SE itself and a function value of the secret information SE, and the value according to the share information share refers to the share information share itself and a function value of the share information. For example, secrets of elements g T   SE εG T  of the cyclic group G T  according to the secret information SEεF q  constituting elements of the finite field F q  can be shared to elements g T   share(1) , g T   share(2) εG T  of the cyclic group G T  according to the pieces of share information share(1), share(2) of the secret information SE. Further, the secret information SE described above is a linear combination of the pieces of share information share (Expressions (31) and (32)). Such a secret sharing scheme in which the secret information SE is a linear combination of the pieces of share information share is called a linear secret sharing scheme. 
     The predetermined logical expression described above can be expressed by tree structure data obtained by hierarchically sharing secrets of the secret information. That is, according to De Morgan&#39;s laws, the predetermined logical expression described above can be expressed by a logical expression formed of literals or a logical expression formed of at least part of the logical symbols A and v and literals (these will be called “standard logical expressions”), and such a standard logical expression can be expressed by tree structure data obtained by hierarchically sharing secrets of the secret information. 
     Tree structure data that expresses a standard logical expression includes a plurality of nodes, at least part of the nodes are defined as a parent node of one or more child nodes, one of the parent nodes is defined as a root node, and at least part of the child nodes are defined as a leaf node. A parent node of the root node and a child node of the leaf node do not exist. A value according to secret information corresponds to the root node, and a value according to share information obtained by sharing secrets of a value corresponding to each parent node corresponds to a child node of this parent node. Secret sharing modes (such as a secret sharing scheme and a threshold value) at each node are determined in accordance with a standard logical expression. Further, each literal constituting the standard logical expression corresponds to each leaf node, and the true value of each literal is determined by the combination of the first information and the second information. 
     Here, it is assumed that a value according to share information corresponding to a leaf node corresponding to a literal whose true value is “true” can be obtained, whereas a value according to share information corresponding to a leaf node corresponding to a literal whose true value is “false” cannot be obtained. Further, on the basis of the characteristics of the secret sharing described above, a value according to share information corresponding to a parent node (a value according to secret information, if this parent node is the root node) is restored only in the case where a number of values according to share information corresponding to child node(s) of this parent node are obtained, the number being equal to or more than a threshold value corresponding to this parent node. Accordingly, whether or not the value according to the secret information corresponding to the root node can be finally restored is determined in accordance with: the true value of a literal corresponding to which leaf node is “true”; and configurations of the tree structure data (including the secret sharing modes at each node). Then, the tree structure data configured in the following manner expresses a standard logical expression. That is, only in the case where the true value of each literal corresponding to each leaf node makes the true value of the standard logical expression “true”, the value according to the secret information corresponding to the root node can be finally restored. Such tree structure data that expresses the standard logical expression can be easily set. A specific example thereof is given below. 
       FIG. 83  is a view illustrating tree structure data that expresses a standard logical expression PRO(1) PRO(2) PRO(3) including: propositional variables PRO(1) and PRO(2); a negation  PRO(3) of a propositional variable PRO(3); and the logical symbols   and  . The tree structure data illustrated in  FIG. 83  includes a plurality of nodes N 1 , . . . , N 5 . The node N 1  is the parent node of the nodes N 2  and N 5 , the node N 2  is the parent node of the nodes N 3  and N 4 , the node N 1  as one of the parent nodes is the root node, and the nodes N 3 , N 4 , and N 5  as part of the child nodes are the leaf nodes. A value according to secret information SE corresponds to the node N 1 , and values according to pieces of share information SE, SE obtained by sharing secrets of the value according to the secret information SE using a 1-out-of-2 sharing scheme respectively correspond to the child nodes N 2  and N 5  of the node N 1 . Values according to pieces of share information SE−SH 1 , SH 1  obtained by sharing secrets of the value according to the share information SE using a 2-out-of-2 sharing scheme respectively correspond to the child nodes N 3  and N 4  of the node N 2 . That is, the value according to the share information share(1)=SE−SH 1  corresponds to the leaf node N 3 , the value according to the share information share(2)=SH 1  corresponds to the leaf node N 4 , and the value according to the share information share(3)=SE corresponds to the leaf node N 5 . Further, the literals PRO(1), PRO(2), and  PRO(3) constituting the standard logical expression PRO(1) PRO(2) PRO(3) respectively correspond to the leaf nodes N 3 , N 4 , and N 5 , and the true values of the literals PRO(1), PRO(2), and  PRO(3) are determined by the combination of the first information and the second information. Here, a value according to share information corresponding to a leaf node corresponding to a literal whose true value is “true” can be obtained, whereas a value according to share information corresponding to a leaf node corresponding to a literal whose true value is “false” cannot be obtained. In this case, only in the case where the combination of the first information and the second information makes the true value of the standard logical expression PRO(1) PRO(2) PRO(3) “true”, the value according to the secret information SE is restored. 
       FIG. 84  is a view illustrating tree structure data that expresses a standard logical expression PRO(1) PRO(2) PRO(2) PRO(3) PRO(1) PRO(3) PRO(4) ( PRO(5) PRO(6)) PRO(7) including: propositional variables PRO(1), PRO(2), PRO(3), PRO(6), and PRO(7); negations  PRO(4) and  PRO(5) of propositional variables PRO(4) and PRO(5); and the logical symbols   and  . 
     The tree structure data illustrated in  FIG. 84  includes a plurality of nodes N 1 , . . . , N 11 . The node N 1  is the parent node of the nodes N 2 , N 6 , and N 7 , the node N 2  is the parent node of the nodes N 3 , N 4 , and N 5 , the node N 7  is the parent node of the nodes N 8  and N 11 , the node N 8  is the parent node of the nodes N 9  and N 10 , the node N 1  as one of the parent nodes is the root node, and the nodes N 3 , N 4 , N 5 , N 6 , N 9 , N 10 , and N 11  are the leaf nodes. A value according to secret information SE corresponds to the node N 1 , and values according to pieces of share information SE, SE, SE obtained by sharing secrets of the value according to the secret information SE using a 1-out-of-3 sharing scheme respectively correspond to the child nodes N 2 , N 6 , and N 7  of the node N 1 . Values according to pieces of share information (1, f(1)), (2, f(2)), (3, f(3)) obtained by sharing secrets of the value according to the share information SE using a 2-out-of-3 sharing scheme respectively correspond to the child nodes N 3 , N 4 , and N 5  of the node N 2 . Values according to pieces of share information SH 4 , SE−SH 4  obtained by sharing secrets of the value according to the share information SE using a 2-out-of-2 sharing scheme respectively correspond to the child nodes N 8  and N 11  of the node N 7 . Values according to pieces of share information SH 4 , SH 4  obtained by sharing secrets of the value according to the share information SH 4  using a 1-out-of-2 sharing scheme respectively correspond to the child nodes N 9  and N 10  of the node N 8 . That is, the value according to the share information share(1)=(1, f(1)) corresponds to the leaf node N 3 , the value according to the share information share(2)=(2, f(2)) corresponds to the leaf node N 4 , the value according to the share information share(3)=(3, f(3)) corresponds to the leaf node N 5 , the value according to the share information share(4)=SE corresponds to the leaf node N 6 , the value according to the share information share(5)=SH 4  corresponds to the leaf node N 9 , the value according to the share information share(6)=SH 4  corresponds to the leaf node N 10 , and the value according to the share information share(7)=SE−SH 4  corresponds to the leaf node N 11 . Further, the literals PRO(1), PRO(2), PRO(2), PRO(3), PRO(1), PRO(3),  PRO(4),  PRO(5), PRO(6), and PRO(7) constituting the standard logical expression PRO(1) PRO(2) PRO(2) PRO(3) PRO(1) PRO(3) PRO(4) ( PRO(5) PRO(6)) PRO(7) respectively correspond to the leaf nodes N 3 , N 4 , N 5 , N 6 , N 9 , N 10 , and N 11 , and the true values of the literals PRO(1), PRO(2), PRO(2), PRO(3), PRO(1), PRO(3),  PRO(4),  PRO(5), PRO(6), and PRO(7) are determined by the combination of the first information and the second information. Here, a value according to share information corresponding to a leaf node corresponding to a literal whose true value is “true” can be obtained, whereas a value according to share information corresponding to a leaf node corresponding to a literal whose true value is “false” cannot be obtained. In this case, only in the case where the combination of the first information and the second information makes the true value of the standard logical expression PRO(1),  PRO(2),  PRO(2),  PRO(3),  PRO(1),  PRO(3),  PRO(4),  ( PRO(5),  PRO(6),  PRO(7) “true”, the value according to the secret information SE is restored. 
     &lt;Access Structure&gt; 
     In the case as described above where a predetermined logical expression is expressed by tree structure data obtained by hierarchically sharing secrets of secret information, whether the true value of a logical expression determined by the combination of the first information and the second information is “true” or “false” can be determined depending on whether or not a value according to the secret information can be restored from values according to share information at leaf nodes obtained for the combination of the first information and the second information. Hereinafter, a mechanism is called an access structure, in which: the combination of the first information and the second information is accepted in the case where the true value of the logical expression determined by the combination of the first information and the second information is “true”; and the combination of the first information and the second information is rejected in the case where the true value thereof is “false”. 
     The total number of leaf nodes of the tree structure data that expresses the predetermined logical expression as described above is defined as Ψ, and identifiers respectively corresponding to the leaf nodes are defined as λ=1, . . . , Ψ. A set {v(λ) → } λ=1, . . . , Ψ  of n(λ)-dimensional vectors v(λ) →  corresponding to the leaf nodes is defined as the first information, and a set {w(λ) → } λ=1, . . . , Ψ  of n(λ)-dimensional vectors w(λ) →  corresponding to the leaf nodes is defined as the second information. Further, the tree structure data described above is mounted as a labeled matrix LMT (MT, LAB). 
     The labeled matrix LMT (MT, LAB) includes a Ψ row by COL (COL≧1) column matrix 
                   MT   =     (           mt     1   ,   1           …         mt     1   ,   COL               ⋮       ⋱       ⋮             mt     Ψ   ,   1           …         mt     Ψ   ,   COL             )             (   34   )               
and a label LAB(λ) associated with each row λ=1, . . . , Ψ of the matrix MT.
 
     Each element mt λ,col  (col=1, . . . , COL) of the matrix MT satisfies the following two requirements. Firstly, in the case where a value according to secret information SEεF q  corresponds to the root node of the tree structure data that expresses the predetermined logical expression as described above, the following expression (37) is established for the following COL-dimensional vector (35) having elements of a predetermined finite field F q  as elements and the following COL-dimensional vector (36) having elements of a finite field F q  according to the secret information SE as elements.
 
 GV   → =( gv   1   , . . . , gv   COL )ε F   q   COL   (35)
 
 CV   → =( cv   1   , . . . , cv   COL )ε F   q   COL   (36)
 
 SE=GV   → ·( CV   → ) T   (37)
 
A specific example of the COL-dimensional vector GV →  is as follows.
 
 GV   → =(1 F , . . . ,1 F )ε F   q   COL   (38)
 
The COL-dimensional vector GV →  may be other COL-dimensional vectors such as GV → =(1 F , 0 F , . . . , 0 F )εF q   COL . Secondly, in the case where a value according to share information share(λ)εF q  corresponds to a leaf node corresponding to an identifier λ, the following expression is established.
 
(share(1), . . . , share(Ψ)) T   =MT ·( CV   → ) T   (39)
 
If the tree structure data that expresses the predetermined logical expression is determined as described above, the matrix MT that satisfies these two requirements is easily selected. Further, even if the secret information SE and the share information share(λ) are variables, the matrix MT that satisfies these two requirements is easily selected. That is, after the determination of the matrix MT, values of the secret information SE and the share information share(λ) may be determined.
 
     Further, the label LAB(λ) associated with each row λ=1, . . . , Ψ of the matrix MT corresponds to a literal (PRO(λ) or  PRO(λ) corresponding to a leaf node corresponding to the identifier λ. Here, it is assumed that the following first case is equivalent to the following second case. That is, in the first case, the true value of the propositional variable PRO(λ) is “true”. In the second case, the inner product v(λ) → ·w(λ) →  of v(λ) →  included in first information VSET1={X, v(λ) → |λ=1, . . . , Ψ} and w(λ) →  included in second information VSET2={λ, w(λ) → |λ=1, . . . , Ψ} is 0. It is also assumed that the following third case is equivalent to the following fourth case. That is, in the third case, the true value of the propositional variable PRO(λ) is “false”. In the fourth case, the inner product v(λ) → ·w(λ) →  is not 0. Then, it is assumed that the label LAB(λ) corresponding to PRO(λ) represents v(λ) →  and that the label LAB(λ) corresponding to  PRO(λ) represents  v(λ) → . Note that  v(λ) →  is a logical expression representing the negation of v(λ) → , and v(λ) →  can be identified from  v(λ) → . Further, the case where LAB(λ) represents v(λ) →  is expressed by “LAB(λ)=v(λ) → ”, and the case where LAB(λ) represents  v(λ) →  is expressed by “LAB(λ)= v(λ) → ”. Further, a set {LAB(λ)} λ=1, . . . , Ψ  of LAB(λ) (λ=1, . . . , Ψ) is expressed by LAB. 
     Moreover, the following Ψ-dimensional vector is defined.
 
 TFV   → =( tfv (1), . . . , tfv (Ψ))  (40)
 
An element tfv(λ) is 1 if the inner product v(λ) → ·w(λ) →  is 0, and the element tfv(λ) is 0 if the inner product v(A) → ·w(λ) →  is other than 0.
 
 tfv (λ)=1( PRO (λ) is “true”) if  v (λ) →   ·w (λ) → =0  (41)
 
 tfv (λ)=0( PRO (λ) is “false”) if  v (λ) →   ·w (λ) → ≠0  (42)
 
     Moreover, the case where the true value of the following logical expression is “true” is expressed by LIT(λ)=1.
 
{( LAB (λ)= v (λ) → ) ( tfv (λ)=1)} {( LAB (λ)=   v (λ) → ) ( tfv (λ)=0)}  (43)
 
The case where the true value thereof is “false” is expressed by LIT(λ)=0. That is, the case where the true value of a literal corresponding to a leaf node corresponding to the identifier λ is “true” is expressed by LIT(λ)=1, and the case where the true value thereof is “false” is expressed by LIT(λ)=0. Under the circumstances, a submatrix MT TFV  formed of only row vectors mt λ   → =(mt λ,1 , . . . , mt λ,COL ) whose LIT(λ) is 1, among the row vectors included in the matrix MT, can be expressed as follows.
 
 MT   TFV =( MT ) LIT(λ)=1   (44)
 
     In the case where the secret sharing scheme described above is a linear secret sharing scheme, the following first case is equivalent to the following second case. That is, in the first case, the value according to the secret information SE can be restored from the value according to the share information share(λ) corresponding to the identifier λ. In the fourth case, the COL-dimensional vector GV →  belongs to a vector space spanned by the row vectors mt λ   →  corresponding to the identifier λ. That is, whether or not the value according to the secret information SE can be restored from the value according to the share information share(λ) corresponding to the identifier λcan be determined by determining whether or not the COL-dimensional vector GV →  belongs to the vector space spanned by the row vectors mt λ   →  corresponding to the identifier λ. Note that the vector space spanned by the row vectors mt λ   →  means a vector space that can be represented by the linear combination of the row vectors mt λ   → . 
     Here, it is assumed that the combination of the first information and the second information is accepted in the case where the COL-dimensional vector GV →  belongs to a vector space span&lt;MT TFV &gt; spanned by the row vectors mt λ   →  of the submatrix MT TFV  described above and that the combination of the first information and the second information is rejected in the case where the COL-dimensional vector CV →  does not belong thereto. As a result, the access structure described above is realized. Note that, in the case where the labeled matrix LMT (MT, LAB) corresponds to the first information, the case where the access structure accepts the combination of the first information and the second information is expressed by “the access structure accepts the second information”, and the case where the access structure does not accept the combination of the first information and the second information is expressed by “the access structure rejects the second information”.
 
Accepted if  GV   → εspan&lt; MT   TFV &gt;
 
Rejected if  ( GV   → εspan&lt; MT   TFV &gt;)
 
     Further, in the case where GV → εspan &lt;MT TFV &gt;, a coefficient const(μ) that satisfies the following expression exists.
 
 SE=Σ   μεSET const(μ)·share(μ)  (45)
 
{const(μ)ε F   q   |μεSET}, SET     { 1 , . . . ,λ|LIT (λ)=1}
 
The coefficient const(μ) can be obtained by the polynomial time of the size of the matrix MT.
 
     &lt;Basic Configuration of Function Cryptosystem Using Access Structure&gt; 
     Description will be given below of a basic configuration when key encapsulation mechanisms (KEM) are configured according to a function cryptosystem using the access structure. This configuration includes: Setup (1 sec , (Ψ; n(1), . . . , n(Ψ))); GenKey (PK, MSK, LMT (MT, LAB)); Enc (PK, M, {λ, v(λ) → |=1, . . . , Ψ}) (v 1 (λ)=1 F ); and Dec (PK, SKS, C). Further, the first element w 1 (λ) of the second information VSET2={λ, w(λ) → |λ=1, . . . , Ψ} is defined as 1 F .
 
[Setup(1 sec ,(Ψ; n (1), . . . , n (Ψ))):setup]
         Input: 1 sec , (Ψ; n(1), . . . , n(Ψ))   Output: master key information MSK, public parameter PK       

     In the setup, the following process is executed for each ψ=0, . . . , Ψ. 
     (Setup-1) With 1 sec  being received as an input, the order q, the elliptic curve E, the cyclic groups G 1 , G 2 , and G T , and the bilinear map e ψ  (ψ=0, . . . , Ψ) at the security parameter sec are generated (param=(q, E, G 1 , G 2 , G T , e ψ )). 
     (Setup-2) τ′εF q  is selected, and matrixes X(ψ), X*(ψ) that satisfy X*(ψ)=τ′·(X(ψ) −1 ) T  are selected. 
     (Setup-3) Coordinate conversion is applied to the basis vector a i (ψ) (i=1, . . . , n(ψ)+ζ(ψ)) according to Expression (21), and the (n(ψ)+ζ(ψ))-dimensional basis vector b i (ψ) (i=1, . . . , n(ψ)+ζ(ψ)) is generated. The (n(ψ)+ζ(ψ)) row by (n(ψ)+ζ(ψ)) column matrix B(ψ) having the basis vector b i (ψ) (i=1, . . . , n(ψ)+ζ(ψ)) as elements is generated. 
     (Setup-4) Coordinate conversion is applied to the basis vector a i *(ψ) (i=1, . . . , n(ψ)+ζ(ψ)) according to Expression (23), and the (n(ψ)+ζ(ψ))-dimensional basis vector b i *(ψ) (i=1, . . . , n(ψ)+ζ(ψ)) is generated. The (n(ψ)+ζ(ψ)) row by (n(ψ)+ζ(ψ)) column matrix B*(ψ) having the basis vector b i *(ψ) (i=1, . . . , n(ψ)+ζ(ψ)) as elements is generated. 
     (Setup-5) A set {B*(ψ) ^}   ψ=0, . . . , Ψ of B*(ψ)^ is defined as the master key information MSK={B*(ψ)^} ψ=0, . . . , Ψ . Further, a set {B(ψ)^} Ψ=0, . . . , Ψ  of B*(ψ)^, 1 sec , and param are defined as the public parameter PK. Note that B*(ψ)^ is the matrix B*(ψ) or a submatrix thereof, and B(ψ)^ is the matrix B(ψ) or a submatrix thereof. Further, the set {B*(ψ)^} ψ=0, . . . , Ψ  includes at least b 1 *(0), b 1 *(λ), b n(λ) *(λ)(λ=1, . . . , Ψ). Further, the set {B(ψ)^} ψ=0, . . . , Ψ  includes at least b 1 (0), b 1 (λ), . . . , b n(λ) (λ) (λ=1, . . . , Ψ). Examples thereof are given below.
 
 n (0)+ξ(0)≧5,ξ(λ)=3 ·n (λ)
 
 B (0)^=( b   1 (0) b   3 (0) b   5 (0)) T  
 
 B (λ)^=( b   1 (λ) . . .  b   n(λ) (λ) b   3·n(λ)+1 (λ) . . .  b   4·n(λ) (λ)) T (λ=1, . . . , Ψ)
 
 B *(0)^=( b   1 *(0) b   3 *(0) b   4 *(0)) T  
 
 B *(λ)^=( b   1 *(λ) . . .  b   n(λ) *(λ) b   2·n(λ)+1 *(λ) . . .  b   3·n(λ)*(λ))   T (λ=1, . . . ,Ψ)
 
     [GenKey (PK, MSK, LMT (MT, LAB)): key information generation]
         Input: public parameter PK, master key information MSK, labeled matrix LMT (MT, LAB) corresponding to first information VSET1={λ, v(λ) → |λ=1, . . . , Ψ}   Output: key information SKS       

     (GenKey-1) The following process is executed for the secret information SE that satisfies Expressions (35) to (39).
 
 D *(0)=− SE·b   i *(0)+Σ ι=2   I coef ι (0)· b   ι *(0)  (46)
 
     Note that I is a constant equal to or more than 2 and equal to or less than n(0)+ζ(0). coef ι (0)εF q  is a constant or a random number. The “random number” means a true random number and a pseudorandom number. An example of D*(0) is given below. Note that coef 4 (0) in Expression (47) is a random number.
 
 D *(0)=− SE·b   1 *(0)+ b   3 *(0)+coef 4 (0)· b   4 *(0)  (47)
 
     (GenKey-2) The following process is executed for share(λ) (λ=1, . . . , Ψ) that satisfies Expressions (35) to (39). 
     The following expression is generated for λ that satisfies LAB(λ)=v(λ) → . 
     
       
         
           
             
               
                 
                   
                     
                       D 
                       * 
                     
                     ⁡ 
                     
                       ( 
                       λ 
                       ) 
                     
                   
                   = 
                   
                     
                       
                         ( 
                         
                           
                             share 
                             ⁡ 
                             
                               ( 
                               λ 
                               ) 
                             
                           
                           + 
                           
                             
                               coef 
                               ⁡ 
                               
                                 ( 
                                 λ 
                                 ) 
                               
                             
                             · 
                             
                               
                                 v 
                                 1 
                               
                               ⁡ 
                               
                                 ( 
                                 λ 
                                 ) 
                               
                             
                           
                         
                         ) 
                       
                       · 
                       
                         
                           b 
                           1 
                           * 
                         
                         ⁡ 
                         
                           ( 
                           λ 
                           ) 
                         
                       
                     
                     + 
                     
                       
                         ∑ 
                         
                           ι 
                           = 
                           2 
                         
                         
                           n 
                           ⁡ 
                           
                             ( 
                             λ 
                             ) 
                           
                         
                       
                       ⁢ 
                       
                         
                           coef 
                           ⁡ 
                           
                             ( 
                             λ 
                             ) 
                           
                         
                         · 
                         
                           
                             v 
                             ι 
                           
                           ⁡ 
                           
                             ( 
                             λ 
                             ) 
                           
                         
                         · 
                         
                           
                             b 
                             ι 
                             * 
                           
                           ⁡ 
                           
                             ( 
                             λ 
                             ) 
                           
                         
                       
                     
                     + 
                     
                       
                         ∑ 
                         
                           ι 
                           = 
                           
                             
                               n 
                               ⁡ 
                               
                                 ( 
                                 λ 
                                 ) 
                               
                             
                             + 
                             1 
                           
                         
                         
                           
                             n 
                             ⁡ 
                             
                               ( 
                               λ 
                               ) 
                             
                           
                           + 
                           
                             ζ 
                             ⁡ 
                             
                               ( 
                               λ 
                               ) 
                             
                           
                         
                       
                       ⁢ 
                       
                         
                           
                             coef 
                             ι 
                           
                           ⁡ 
                           
                             ( 
                             λ 
                             ) 
                           
                         
                         · 
                         
                           
                             b 
                             ι 
                             * 
                           
                           ⁡ 
                           
                             ( 
                             λ 
                             ) 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   48 
                   ) 
                 
               
             
           
         
       
     
     The following expression is generated for λ that satisfies LAB(λ)= v(λ) → .
 
 D *(λ)=share(λ)·Σ ι=1   n(λ)   v   ι (λ)· b   ι *(λ)+Σ ι=n(λ)+1   n(λ)+ζ(λ) coef ι (λ)· b   ι *(λ)  (49)
 
Note that coef(λ), coef ι (λ)εF q  are a constant or a random number. An example thereof is given below.
 
     The following expression is generated for λ that satisfies LAB(λ)=v(λ) → . 
     
       
         
           
             
               
                 
                   
                     
                       D 
                       * 
                     
                     ⁡ 
                     
                       ( 
                       λ 
                       ) 
                     
                   
                   = 
                   
                     
                       
                         ( 
                         
                           
                             share 
                             ⁡ 
                             
                               ( 
                               λ 
                               ) 
                             
                           
                           + 
                           
                             
                               coef 
                               ⁡ 
                               
                                 ( 
                                 λ 
                                 ) 
                               
                             
                             · 
                             
                               
                                 v 
                                 1 
                               
                               ⁡ 
                               
                                 ( 
                                 λ 
                                 ) 
                               
                             
                           
                         
                         ) 
                       
                       · 
                       
                         
                           b 
                           1 
                           * 
                         
                         ⁡ 
                         
                           ( 
                           λ 
                           ) 
                         
                       
                     
                     + 
                     
                       
                         ∑ 
                         
                           ι 
                           = 
                           2 
                         
                         
                           n 
                           ⁡ 
                           
                             ( 
                             λ 
                             ) 
                           
                         
                       
                       ⁢ 
                       
                         
                           coef 
                           ⁡ 
                           
                             ( 
                             λ 
                             ) 
                           
                         
                         · 
                         
                           
                             v 
                             ι 
                           
                           ⁡ 
                           
                             ( 
                             λ 
                             ) 
                           
                         
                         · 
                         
                           
                             b 
                             ι 
                             * 
                           
                           ⁡ 
                           
                             ( 
                             λ 
                             ) 
                           
                         
                       
                     
                     + 
                     
                       
                         ∑ 
                         
                           ι 
                           = 
                           
                             
                               2 
                               · 
                               
                                 n 
                                 ⁡ 
                                 
                                   ( 
                                   λ 
                                   ) 
                                 
                               
                             
                             + 
                             1 
                           
                         
                         
                           3 
                           · 
                           
                             n 
                             ⁡ 
                             
                               ( 
                               λ 
                               ) 
                             
                           
                         
                       
                       ⁢ 
                       
                         
                           
                             coef 
                             ι 
                           
                           ⁡ 
                           
                             ( 
                             λ 
                             ) 
                           
                         
                         · 
                         
                           
                             b 
                             ι 
                             * 
                           
                           ⁡ 
                           
                             ( 
                             λ 
                             ) 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   50 
                   ) 
                 
               
             
           
         
       
     
     The following expression is generated for λ that satisfies LAB(λ)= v(λ) → .
 
 D *(λ)=share(λ)·Σ ι=1   n(λ)   v   ι (λ)· b   ι *(λ)+Σ ι=2·n(λ)+1   3·n(λ) coef ι (λ)· b   ι *(λ)  (51)
 
Note that coef(λ) and coef ι (λ) in Expressions (50) and (51) are a random number.
 
     (GenKey-3) Key information 
     The following expression is generated.
 
 SKS =( LMT ( MT,LAB ), D *(0), D *(1), D (Ψ))  (52)
 
     [Enc (PK, M, VSET2): encryption]
         Input: public parameter PK, plaintext M, second information VSET2={λ, w(λ) → |λ=1, . . . , Ψ} (w 1 (λ)=1 F )   Output: ciphertext C       

     (Enc-1) Through the following process, the ciphertext C(ψ) (ψ=0, . . . , Ψ) of the common key K is generated.
 
 C (0)=υ· b   1 (0)+Σ ι=2   I υ ι (0)· b   ι (0)  (53)
 
 C (λ)=υ·Σ ι=1   n(λ)   w   ι(λ)·   b   ι (λ)+Σ ι=n(λ)+1   n(λ)+ζ(λ) υ ι (λ)· b   ι (λ)  (54)
 
Note that υ, υ ι (ψ)εF q (ψ=0, . . . , Ψ) are a constant or a random number, and satisfy the following expressions.
 
(coef 2 (0), . . . , coef 1 (0))·(υ 2 (0), . . . , υ I (0))=υ′  (55)
 
coef ι (λ)·υ ι (λ)=0 F (ι= n (λ)+1 , . . . , n (λ)+ζ(λ))  (56)
 
υ′ is, for example, any one of υ 2 (0), υ I (0). For example, υ, υ 3 (0), υ 5 (0), υ 3·n(λ)+1 (λ), . . . , υ 4·n(λ) (λ) are a random number, ζ(λ)=3·n(λ), and I=5. Further, the following expressions are satisfied.
 
(υ 2 (0), . . . , υ I (0))=(0 F , υ 3 (0),0 F ,υ 5 (0))
 
υ′=υ 3 (0)
 
(υ n(λ)+1 (λ), . . . , υ 3·n(λ) (λ))=(0 F , . . . ,0 F )
 
     (Enc-2) Common key 
     The following expression is generated.
 
 K=g   T   τ·τ′·υ′   εG   T   (57)
 
For example, in the case where τ=τ′=1 F , the following expression is satisfied.
 
 K=g   T   υ′   εG   T   (58)
 
     (Enc-3) With the use of the common key K, the following ciphertext of the plaintext M is generated.
 
 C (Ψ+1)= Enc   K ( M )  (59)
 
Note that a common key cryptosystem Enc may be, for example, Camellia (registered trademark) that is configured so as to be encryptable using the common key K, AES, and the exclusive OR of the common key and the plaintext. For another simple example, Enc K (M) may be generated in the following manner.
 
 C (Ψ+1)= g   T   υ′   ·M   (60)
 
where MεG T .
 
     (Enc-4) Ciphertext 
     The following expression is generated.
 
 C =( VSET 2 ,C (0),{ C (λ)} (λ,w(λ)→)εVSET 2 ,C (Ψ+1)  (61)
 
Note that the subscript “w(λ)→” represents “w(λ) → ”.
 
     [Dec (PK, SKS, C): decryption]
         Input: public parameter PK, key information SKS, ciphertext C   Output: plaintext M′       

     (Dec-1) For λ=1, . . . , Ψ, it is determined whether or not the inner product v(λ) → ·w(λ) →  of the n(λ)-dimensional vector v(λ) →  and the n(λ)-dimensional vector w(λ) →  is 0, the n(λ)-dimensional vector v(λ) →  being each label LAB(λ) of the labeled matrix LMT (MT, LAB) included in the key information SKS, the n(λ)-dimensional vector w(λ) →  being included in VSET2 of the ciphertext C. Then, whether or not GV → εspan&lt;MT TFV &gt; is determined by the result of this determination. If GV → ∉span&lt;MT TFV &gt;, the ciphertext C is rejected. If GV → εspan&lt;MT TFV &gt;, the ciphertext C is accepted. 
     (Dec-2) If the ciphertext C is accepted, SET {1, . . . , λ|LIT(λ)=1} and the coefficient const(μ) (μεSET) that satisfies Expression (45) are calculated. 
     (Dec-3) Common key 
     The following expression is generated. 
                   K   =         e   0     ⁡     (       C   ⁡     (   0   )       ,       D   *     ⁡     (   0   )         )       ·       ∏       μ   ∈     SET   ⋀     LAB   ⁡     (   μ   )           =       v   ⁡     (   μ   )       -&gt;         ⁢           e   μ     ⁡     (       C   ⁡     (   μ   )       ,       D   *     ⁡     (   μ   )         )         const   ⁡     (   μ   )         ·       ∏       μ   ∈     SET   ⋀     LAB   ⁡     (   μ   )           =     ⫬       v   ⁡     (   μ   )       -&gt;           ⁢         e   μ     ⁡     (       C   ⁡     (   μ   )       ,       D   *     ⁡     (   μ   )         )           const   ⁡     (   μ   )       /     (         v   ⁡     (   μ   )       -&gt;     ·       w   ⁡     (   μ   )       -&gt;       )                         (   62   )               
Here, the following expression is satisfied on the basis of Expressions (6), (25), and (55).
 
                             e   0     ⁡     (       C   ⁡     (   0   )       ,       D   *     ⁡     (   0   )         )       =       ⁢       e   0     ⁡     (         v   ·       b   1     ⁡     (   0   )         +       ∑     ι   =   2     I     ⁢         v   ι     ⁡     (   0   )       ·       b   ι     ⁡     (   0   )             ,         -   SE     ·       b   1   *     ⁡     (   0   )         +       ∑     ι   =   2     I     ⁢         coef   ι     ⁡     (   0   )       ·       b   ι   *     ⁡     (   0   )               )                   =       ⁢         e   0     ⁡     (       v   ·       b   1     ⁡     (   0   )         ,       -   SE     ·       b   1   *     ⁡     (   0   )           )       ·                     ⁢       ∏     ι   =   2     I     ⁢       e   0     ⁡     (           v   ι     ⁡     (   0   )       ·       b   ι     ⁡     (   0   )         ,         coef   ι     ⁡     (   0   )       ·       b   ι   *     ⁡     (   0   )           )         )                 =       ⁢           e   0     ⁡     (         b   1     ⁡     (   0   )       ,       b   1   *     ⁡     (   0   )         )           -   SE     ·   v       ·       ∏     ι   =   2     I     ⁢         e   0     ⁡     (         b   ι     ⁡     (   0   )       ,       b   ι   *     ⁡     (   0   )         )             v   ι     ⁡     (   0   )       ·       coef   ι     ⁡     (   0   )                 )               =       ⁢       g   T     τ   ·     τ   ′     ·     δ   ⁡     (     1   ,   1     )       ·     (       -   SE     ·   v     )         ·       ∏     ι   =   2     I     ⁢     g   T     τ   ·     τ   ′     ·     δ   ⁡     (     ι   ,   ι     )       ·       v   ι     ⁡     (   0   )       ·       coef   ι     ⁡     (   0   )                           =       ⁢     g   T     τ   ·     τ   ′     ·     (         -   SE     ·   v     +     v   ′       )                       (   63   )               
Further, the following expression is satisfied on the basis of Expressions (6), (25), (41), (48), (54), and (56) and w 1 (λ)=1 F .
 
                       ∏       μ   ∈     SET   ⋀     LAB   ⁡     (   μ   )           =       v   ⁡     (   μ   )       -&gt;         ⁢         e   μ     ⁡     (       C   ⁡     (   μ   )       ,       D   *     ⁡     (   μ   )         )         const   ⁡     (   μ   )           =         ∏       μ   ∈     SET   ⋀     LAB   ⁡     (   μ   )           =       v   ⁡     (   μ   )       -&gt;         ⁢         e   μ     ⁡     (         v   ·       ∑     ι   =   1       n   ⁡     (   μ   )         ⁢           w   ι     ⁡     (   μ   )       ·     b   ι       ⁢     (   μ   )           +       ∑     ι   =       n   ⁡     (   μ   )       +   1           n   ⁡     (   μ   )       +     ζ   ⁡     (   μ   )           ⁢       v   ι     ⁢       (   μ   )     ·     b   ι       ⁢     (   μ   )           ,       share   ⁢       (   μ   )     ·     b   1   *       ⁢     (   μ   )       +       ∑     ι   =   1       n   ⁡     (   μ   )         ⁢     coef   ⁢       (   μ   )     ·       v   ι     ⁡     (   μ   )       ·       b   ι   *     ⁡     (   μ   )             +       ∑     ι   =       n   ⁡     (   μ   )       +   1           n   ⁡     (   μ   )       +     ζ   ⁡     (   μ   )           ⁢         coef   ι     ⁡     (   μ   )       ·       b   ι   *     ⁡     (   μ   )               )         const   ⁡     (   μ   )           =         ∏       μ   ∈     SET   ⋀     LAB   ⁡     (   μ   )           =       v   ⁡     (   μ   )       -&gt;         ⁢       {         e   μ     ⁡     (       v   ·       ∑     ι   =   1       n   ⁡     (   μ   )         ⁢           w   ι     ⁡     (   μ   )       ·     b   ι       ⁢     (   μ   )           ,       share   ⁡     (   μ   )       ·       b   1   *     ⁡     (   μ   )           )       ·       e   μ     ⁡     (       v   ·       ∑     ι   =   1       n   ⁡     (   μ   )         ⁢           w   ι     ⁡     (   μ   )       ·     b   ι       ⁢     (   μ   )           ,       ∑     ι   =   1       n   ⁡     (   μ   )         ⁢       coef   ⁡     (   μ   )       ·       v   ι     ⁡     (   μ   )       ·       b   ι   *     ⁡     (   μ   )             )         }       const   ⁡     (   μ   )           =         ∏       μ   ∈     SET   ⋀     LAB   ⁡     (   μ   )           =       v   ⁡     (   μ   )       -&gt;         ⁢       (       g   T     τ   ·     τ   ′     ·   v   ·     share   ⁡     (   μ   )           ·       ∏     ι   =   1       n   ⁡     (   μ   )         ⁢     g   T     τ   ·     τ   ′     ·   v   ·     coef   ⁡     (   μ   )       ·       w   ι     ⁡     (   μ   )       ·       v   ι     ⁡     (   μ   )               )       const   ⁡     (   μ   )           =       ∏       μ   ∈     SET   ⋀     LAB   ⁡     (   μ   )           =       v   ⁡     (   μ   )       -&gt;         ⁢     g   T     τ   ·     τ   ′     ·   v   ·     const   ⁡     (   μ   )       ·     share   ⁡     (   μ   )                           (   64   )               
Further, the following expression is satisfied on the basis of Expressions (6), (25), (42), (49), (54), and (56).
 
                       ∏       μ   ∈     SET   ⋀     LAB   ⁡     (   μ   )           =     ⫬       v   ⁡     (   μ   )       -&gt;           ⁢         e   μ     ⁡     (       C   ⁡     (   μ   )       ,       D   *     ⁡     (   μ   )         )           const   ⁡     (   μ   )       /     (         v   ⁡     (   μ   )       -&gt;     ·       w   ⁡     (   μ   )       -&gt;       )           =         ∏       μ   ∈     SET   ⋀     LAB   ⁡     (   μ   )           =     ⫬       v   ⁡     (   μ   )       -&gt;           ⁢         e   μ     ⁡     (         v   ·       ∑     ι   =   1       n   ⁡     (   μ   )         ⁢           w   ι     ⁡     (   μ   )       ·     b   ι       ⁢     (   μ   )           +       ∑     ι   =       n   ⁡     (   μ   )       +   1           n   ⁡     (   μ   )       +     ζ   ⁡     (   μ   )           ⁢       v   ι     ⁢       (   μ   )     ·       b   ι     ⁡     (   μ   )               ,         share   ⁡     (   μ   )       ·       ∑     ι   =   1       n   ⁡     (   μ   )         ⁢           v   ι     ⁡     (   μ   )       ·     b   ι   *       ⁢     (   μ   )           +       ∑     ι   =       n   ⁡     (   μ   )       +   1           n   ⁡     (   μ   )       +     ζ   ⁡     (   μ   )           ⁢         coef   ι     ⁡     (   μ   )       ·       b   ι   *     ⁡     (   μ   )               )           const   ⁡     (   μ   )       /     (         v   ⁡     (   μ   )       -&gt;     ·       w   ⁡     (   μ   )       -&gt;       )           =         ∏       μ   ∈     SET   ⋀     LAB   ⁡     (   μ   )           =     ⫬       v   ⁡     (   μ   )       -&gt;           ⁢       {       ∏     ι   =   1       n   ⁡     (   μ   )         ⁢         e   μ     ⁡     (         b   ι     ⁡     (   μ   )       ,       b   ι   *     ⁡     (   μ   )         )         v   ·     share   ⁡     (   μ   )       ·       w   ι     ⁡     (   μ   )       ·       v   ι     ⁡     (   μ   )             }         const   ⁡     (   μ   )       /     (         v   ⁡     (   μ   )       -&gt;     ·       w   ⁡     (   μ   )       -&gt;       )           =         ∏       μ   ∈     SET   ⋀     LAB   ⁡     (   μ   )           =     ⫬       v   ⁡     (   μ   )       -&gt;           ⁢       {       ∏     ι   =   1       n   ⁡     (   μ   )         ⁢     g   T     τ   ·     τ   ′     ·   v   ·     share   ⁡     (   μ   )       ·       w   ι     ⁡     (   μ   )       ·       v   ι     ⁡     (   μ   )             }         const   ⁡     (   μ   )       /     (         v   ⁡     (   μ   )       -&gt;     ·       w   ⁡     (   μ   )       -&gt;       )           =         ∏       μ   ∈     SET   ⋀     LAB   ⁡     (   μ   )           =     ⫬       v   ⁡     (   μ   )       -&gt;           ⁢       {     g   T     τ   ·     τ   ′     ·   v   ·     share   ⁡     (   μ   )       ·       v   ⁡     (   μ   )       -&gt;     ·       w   ⁡     (   μ   )       -&gt;         }         const   ⁡     (   μ   )       /     (         v   ⁡     (   μ   )       -&gt;     ·       w   ⁡     (   μ   )       -&gt;       )           =       ∏       μ   ∈     SET   ⋀     LAB   ⁡     (   μ   )           =     ⫬       v   ⁡     (   μ   )       -&gt;           ⁢     g   T     τ   ·     τ   ′     ·   v   ·     const   ⁡     (   μ   )       ·     share   ⁡     (   μ   )                             (   65   )               
Accordingly, the following expression is satisfied on the basis of Expressions (45) and (63) to (65).
 
                   K   =         g   T     τ   ·     τ   ′     ·     (         -   SE     ·   v     +     v   ′       )         ·       ∏       μ   ∈     SET   ⋀     LAB   ⁡     (   μ   )           =       v   ⁡     (   μ   )       -&gt;         ⁢       g   T     τ   ·     τ   ′     ·   v   ·     const   ⁡     (   μ   )       ·     share   ⁡     (   μ   )           ·       ∏       μ   ∈     SET   ⋀     LAB   ⁡     (   μ   )           =     ⫬       v   ⁡     (   μ   )       -&gt;           ⁢     g   T     τ   ·     τ   ′     ·   v   ·     const   ⁡     (   μ   )       ·     share   ⁡     (   μ   )                   =         g   T     τ   ·     τ   ′     ·     (         -   SE     ·   v     +     v   ′       )         ·     g   T     τ   ·     τ   ′     ·   v   ·   SE         =     g   T     τ   ·     τ   ′     ·     v   ′                     (   66   )               
For example, in the case where τ=τ′=1 F , the following expression is satisfied.
 
 K=g   T   υ′   εG   T   (67)
 
     (Dec-4) With the use of the common key K, the following plaintext is generated.
 
 M′=Dec   K ( C (Ψ+1))= Dec   K ( C (Ψ+1))  (68)
 
For example, in the case of the common key cryptosystem shown in Expression (60), the plaintext M′ is generated by the following expression.
 
 M′=C (Ψ+1)/ K   (69)
 
     Note that g T   τ , g T   τ′ , and g T   τ·τ′  may be treated as generating elements of G T  instead of treating g T  as a generating element of G T . Further, a combination of C(λ) and D*(λ) may be identified using a map that identifies a correspondence relationship between λ of the key information SKS and λ of the ciphertext, and the process of [Dec (PK, SKS, C): decryption] may be executed. Further, 1 F  may be set to not only the first element w 1 (λ) of the second information VSET2={λ, w(λ) → |λ=1, . . . , Ψ} but also the n(λ)-th element v n(λ) (λ) of the first information VSET1={λ, v(λ) → |λ=1, . . . , Ψ}. Further, in the case where the element w 1 (λ) is not 1 F , w(λ) → /w 1 (λ) may be used instead of w(λ) → . In the case where the element v n(λ) (λ) is not 1 F , v(λ) → /v n(λ) (λ) may be used instead of v(λ) → . Further, the second information VSET2={λ, w(λ) → |λ=1, . . . , Ψ} may be used instead of the first information VSET1={λ, v(λ) → |λ=1, . . . , Ψ}, and the first information VSET1={λ,v(λ) → |λ=1, . . . , Ψ} may be used instead of the second information VSET2={λ, w(λ) → |λ=1, . . . , Ψ}. In this case, 1 F  is set to the first element v 1 (λ) of the first information VSET1={λ, v(λ) → |λ=1, . . . , Ψ}. 
     Next, predicate encryption using inner products will be described as an example of the predicate encryption that is one mode of the functional encryption. Expression numbers are newly assigned below. It should be noted that the same wording and symbols as those used in the above descriptions may have different meanings in the following description for the sake of explanation. The predicate encryption corresponds to functional encryption using a 1-out-of-1 sharing scheme. 
     [Definitions] 
     Matrix: A rectangular arrangement of elements of a set in which a calculation is defined. Not only elements of a ring but also elements of a group can form a matrix. 
     (·) T : Transposed matrix of · 
     (·) −1 : Inverse matrix of · 
       : Logical AND 
       : Logical OR 
     Z: Set of integers 
     k: Security parameter (kεZ, k&gt;0) 
     {0, 1}*: Binary sequence having a desired bit length. An example is a sequence formed of integers 0 and 1. However, {0, 1}* is not limited to sequences formed of integers 0 and 1. {0, 1}* is a finite field of order 2 or its extended field. 
     {0, 1} C: Binary sequence having a bit length ζ (ζεZ, ζ&gt;0). An example is a sequence formed of integers 0 and 1. However, {0, 1} ζ  is not limited to sequences formed of integers 0 and 1. {0, 1} ζ  is a finite field of order 2 (when ζ=1) or its extended field (when ζ&gt;1). 
     (+): Exclusive OR operator between binary sequences. For example, the following is satisfied: 10110011 (+) 11100001=01010010. 
     F q : Finite field of order q, where q is an integer equal to or larger than 1. For example, the order q is a prime number of a power of a prime number. In other words, the finite field F q  is a prime field or an extended field of the prime field, for example. When the finite field F q  is a prime field, remainder calculations to modulus q can be easily performed, for example. When the finite field F q  is an extended field, remainder calculations modulo an irreducible polynomial can be easily performed, for example. A specific method for configuring a finite field F q  is disclosed, for example, in reference literature 1, “ISO/IEC 18033-2: Information technology—Security techniques—Encryption algorithms—Part 2: Asymmetric ciphers”. 
     0 F : Additive unit element of the finite field F q    
     1 F : Multiplicative unit element of the finite field F q    
     δ(i, j): Kronecker&#39;s delta function. When i=j, δ(i, j)=1 F . 
     When i≠j, δ(i, j)=0 F . 
     E: Elliptic curve defined on the finite field F q . It is defined as a special point O called the point of infinity plus a set of points (x, y) satisfying x, y E F q  and the Weierstrass equation in an affine coordinate system
 
 y   2   +a   1   xy+a   3   y=x   3   +a   2   x   2   +a   4   x+a   6   (1)
 
where a 1 , a 2 , a 3 , a 4 , a 6 εF q . A binary operation + called an elliptic addition can be defined for any two points on the elliptic curve E, and a unary operation − called an elliptic inverse can be defined for any one point on the elliptic curve E. It is well known that a finite set of rational points on the elliptic curve E forms a group with respect to the elliptic addition. It is also well known that an operation called an elliptic scalar multiplication can be defined with the elliptic addition. A specific operation method of elliptic operations such as the elliptic addition on a computer is also well known. (For example, see reference literature 2, “RFC 5091: Identity-Based Cryptography Standard (IBCS) #1: Supersingular Curve Implementations of the BF and BB1 Cryptosystems”, and reference literature 3, Ian F. Blake, Gadiel Seroussi, and Nigel P. Smart, “Elliptic Curves in Cryptography”, Pearson Education, ISBN 4-89471-431-0.)
 
     A finite set of rational points on the elliptic curve E has a subgroup of order p (p≧1). When the number of elements in a finite set of rational points on the elliptic curve E is #E and p is a large prime number that can divide #E without a remainder, for example, a finite set E[p] of p equally divided points on the elliptic curve E forms a subgroup of a finite set of rational points on the elliptic curve E. The p equally divided points on the elliptic curve E are points A on the elliptic curve E which satisfy the elliptic scalar multiplication pA=O. 
     G 1 , G 2 , G T : Cyclic groups of order q. Examples of the cyclic groups G 1  and G 2  include the finite set E[p] of p equally divided points on the elliptic curve E and subgroups thereof. G 1  may equal G 2 , or G 1  may not equal G 2 . Examples of the cyclic group G T  include a finite set constituting an extended field of the finite field F q . A specific example thereof is a finite set of the p-th root of 1 in the algebraic closure of the finite field F q . 
     Operations defined on the cyclic groups G 1  and G 2  are expressed as additions, and an operation defined on the cyclic group G T  is expressed as a multiplication. More specifically, χ·ΩεG 1  for χεF q  and ΩεG 1  means that the operation defined in the cyclic group G 1  is applied to ΩεG 1  χ times, and Ω 1 +Ω 2 εG 1  for Ω 1 , Ω 2 εG 1  means that the operation defined in the cyclic group G 1  is applied to Ω 1 εG 1  and Ω 2 εG 1 . In the same way, χ·ΩεG 2  for χεF q  and ΩεG 2  means that the operation defined in the cyclic group G 2  is applied to ΩεG 2  χ times, and Ω 1 +Ω 2 εG 2  for Ω 1 , Ω 2 εG 2  means that the operation defined in the cyclic group G 2  is applied to Ω 1 εG 2  and Ω 2 εG 2 . In contrast, Ω χ εG T  for χεF q  and ΩεG T  means that the operation defined in the cyclic group G T  is applied to ΩεG T  χ times, and Ω 1 ·Ω 2 εG T  for Ω 1 , Ω 2 εG T  means that the operation defined in the cyclic group G T  is applied to Ω 1 εG T  and Ω 2 εG T . 
     G 1   n+1 : Direct product of (n+1) cyclic groups G 1  (n≧1) 
     G 2   n+1 : Direct product of (n+1) cyclic groups G 2    
     g 1 , g 2 , g T : Generating elements of the cyclic groups G 1 , G 2 , G T    
     V: (n+1)-dimensional vector space formed of the direct product of the (n+1) cyclic groups G 1    
     V*: (n+1)-dimensional vector space formed of the direct product of the (n+1) cyclic groups G 2    
     e: Function (bilinear function) for calculating a non-degenerate bilinear map that maps the direct product G 1   n+1 ×G 2   n+1  of the direct product G 1   n+1  and the direct product G 2   n+1  to the cyclic group G T . The bilinear function e receives (n+1) elements γ L  (L=1, . . . , n+1) (n≧1) of the cyclic group G 1  and (n+1) elements γ L *(L=1, . . . , n+1) of the cyclic group G 2  and outputs one element of the cyclic group G T .
 
 e:G   1   n+1   ×G   2   n+1   →G   T   (2)
 
     The bilinear function e satisfies the following characteristics:
         Bilinearity: The following relationship is satisfied for all Γ 1 εG 1   n+1 , Γ 2 εG 2   n+1 , and ν, κεF q  
 
 e(ν·Γ   1 ,κ·Γ 2 )= e (Γ 1 ,Γ 2 ) Γ·κ   (3)
   Non-degeneracy: This function does not map all
 
Γ 1   εG   1   n+1 ,Γ 2   εG   2   n+1   (4)
 
onto the unit element of the cyclic group G T .
   Computability: There exists an algorithm for efficiently calculating e(Γ 1 , Γ 2 ) for all Γ 1 εG 1   n+1 , Γ 2 εG 2   n+1 .       

     The following function for calculating a non-degenerate bilinear map that maps the direct product G 1 ×G 2  of the cyclic group G 1  and the cyclic group G 2  to the cyclic group G T  constitutes the bilinear function e.
 
Pair: G   1   ×G   2   →G   T (5)
 
The bilinear function e receives an (n+1)-dimensional vector (γ 1 , . . . , γ n+1 ) formed of (n+1) elements γ L  (L=1, . . . , n+1) of the cyclic group G 1  and an (n+1)-dimensional vector (γ 1 *, . . . , γ n+1 *) formed of (n+1) elements γ L *(L=1, . . . , n+1) of the cyclic group G 2  and outputs one element of the cyclic group G T .
 
 e=Π   L=1   n+1 Pair(γ L ,γ L *)  (6)
 
     The bilinear function Pair receives one element of the cyclic group G 1  and one element of the cyclic group G 2  and outputs one element of the cyclic group G T , and satisfies the following characteristics:
         Bilinearity: The following relationship is satisfied for all Ω 1 εG 1 , Ω 2 εG 2 , and ν, κεF q  
 
Pair(ν·Ω 1 ,κ·Ω 2 )=Pair(Ω 1 ,Ω 2 ) ν·κ   (7)
   Non-degeneracy: This function does not map all
 
Ω 1   εG   1 ,Ω 2   εG   2   (8)
 
onto the unit element of the cyclic group G T .
   Computability: There exists an algorithm for efficiently calculating Pair(Ω 1 , Ω 2 ) for all Ω 1 εG 1 , Ω 2 εG 2 .       

     A specific example of the bilinear function Pair is a function for performing a pairing operation such as Weil pairing or Tate pairing. (See reference literature 4, Alfred. J. Menezes, “Elliptic Curve Public Key Cryptosystems”, Kluwer Academic Publishers, ISBN 0-7923-9368-6, pp. 61-81, for example.) A modified pairing function e(Ω 1 , phi(Ω 2 )) (Ω 1 εG 1 , Ω 2 εG 2 ) obtained by combining a function for performing a pairing operation, such as Tate pairing, and a predetermined function phi according to the type of the elliptic curve E may be used as the bilinear function Pair (see reference literature 2, for example). As the algorithm for performing a pairing operation on a computer, the Miller algorithm (see reference literature 5, V. S. Miller, “Short Programs for Functions on Curves”, 1986, http://crypto.stanford.edu/miller/miller.pdf) or some other known algorithm can be used. Methods for configuring a cyclic group and an elliptic curve used to efficiently perform a pairing operation have been known. (For example, see reference literature 2, described earlier, reference literature 6, A. Miyaji, M. Nakabayashi, and S. Takano, “New Explicit Conditions of Elliptic Curve Traces for FR Reduction”, IEICE Trans. Fundamentals, Vol. E84-A, No. 5, pp. 1234-1243, May 2001, reference literature 7, P. S. L. M. Barreto, B. Lynn, M. Scott, “Constructing Elliptic Curves with Prescribed Embedding Degrees”, Proc. SCN &#39;2002, LNCS 2576, pp. 257-267, Springer-Verlag. 2003, and reference literature 8, R. Dupont, A. Enge, F. Morain, “Building Curves with Arbitrary Small MOV Degree over Finite Prime Fields”, http://eprint.iacr.org/2002/094/). 
     a i  (i=1, . . . , n+1): (n+1)-dimensional basis vector having (n+1) elements of the cyclic group G 1  as elements. An example of the basis vector a i  is an (n+1)-dimensional basis vector having κ 1 ·g 1 εG 1  as an i-dimensional element and the unit element (expressed as “0” in additive expression) of the cyclic group G 1  as the remaining n elements. In that case, each element of the (n+1)-dimensional basis vector a i  (i=1, . . . , n+1) can be listed as follows: 
     
       
         
           
             
               
                 
                   
                     
                       a 
                       1 
                     
                     = 
                     
                       ( 
                       
                         
                           
                             κ 
                             1 
                           
                           · 
                           
                             g 
                             1 
                           
                         
                         , 
                         0 
                         , 
                         0 
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         0 
                       
                       ) 
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       a 
                       2 
                     
                     = 
                     
                       ( 
                       
                         0 
                         , 
                         
                           
                             κ 
                             1 
                           
                           · 
                           
                             g 
                             1 
                           
                         
                         , 
                         0 
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         0 
                       
                       ) 
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   … 
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       a 
                       
                         n 
                         + 
                         1 
                       
                     
                     = 
                     
                       ( 
                       
                         0 
                         , 
                         0 
                         , 
                         0 
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         
                           
                             κ 
                             1 
                           
                           · 
                           
                             g 
                             1 
                           
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   9 
                   ) 
                 
               
             
           
         
       
     
     Here, κ 1  is a constant formed of the elements of the finite field F q  other than the additive unit element 0 F . An example of κ 1 εF q  is κ 1 =1 F . The basis vector a i  is an orthogonal basis. Each (n+1)-dimensional vector having (n+1) elements of the cyclic group G 1  as elements is expressed by a linear sum of (n+1)-dimensional basis vectors a i  (i=1, . . . , n+1). Therefore, the (n+1)-dimensional basis vectors a i  span the vector space V, described earlier. 
     a i *(i=1, . . . , n+1): (n+1)-dimensional basis vector having (n+1) elements of the cyclic group G 2  as elements. An example of the basis vector a i * is an (n+1)-dimensional basis vector having κ 2 ·g 2 εG 2  as an i-dimensional element and the unit element (expressed as “0” in additive expression) of the cyclic group G 2  as the remaining n elements. In that case, each element of the (n+1)-dimensional basis vector a i * (i=1, . . . , n+1) can be listed as follows: 
     
       
         
           
             
               
                 
                   
                     
                       a 
                       1 
                       * 
                     
                     = 
                     
                       ( 
                       
                         
                           
                             κ 
                             2 
                           
                           · 
                           
                             g 
                             2 
                           
                         
                         , 
                         0 
                         , 
                         0 
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         0 
                       
                       ) 
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       a 
                       2 
                       * 
                     
                     = 
                     
                       ( 
                       
                         0 
                         , 
                         
                           
                             κ 
                             2 
                           
                           · 
                           
                             g 
                             2 
                           
                         
                         , 
                         0 
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         0 
                       
                       ) 
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   … 
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       a 
                       
                         n 
                         + 
                         1 
                       
                       * 
                     
                     = 
                     
                       ( 
                       
                         0 
                         , 
                         0 
                         , 
                         0 
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         
                           
                             κ 
                             2 
                           
                           · 
                           
                             g 
                             2 
                           
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   10 
                   ) 
                 
               
             
           
         
       
     
     Here, κ 2  is a constant formed of the elements of the finite field F q  other than the additive unit element 0 F . An example of κ 2 εF q  is κ 2 =1 F . The basis vector a i * is an orthogonal basis. Each (n+1)-dimensional vector having (n+1) elements of the cyclic group G 2  as elements is expressed by a linear sum of (n+1)-dimensional basis vectors a i * (i=1, . . . , n+1). Therefore, the (n+1)-dimensional basis vectors a i * span the vector space V*, described earlier. 
     The basis vector a i  and the basis vector a i * satisfy the following expression for the elements τ=κ 1 ·κ 2  of the finite field F q  other than 0 F :
 
 e ( a   i   ,a   j *)= g   T   τδ(i,j)   (11)
 
When i=j, the following expression is satisfied from Expressions (6) and (7).
 
                     e   ⁡     (       a   i     ,     a   j   *       )       =       ⁢       Pair   ⁡     (         κ   1     ·     g   1       ,       κ   2     ·     g   2         )       ·     Pair   ⁡     (     0   ,   0     )       ·   …   ·     Pair   ⁡     (     0   ,   0     )                     =       ⁢         Pair   ⁡     (       g   1     ,     g   2       )         κ   ⁢           ⁢   1   ⁢   κ   ⁢           ⁢   2       ·       Pair   ⁡     (       g   1     ,     g   2       )         0   ·   0       ·   …   ·       Pair   ⁡     (       g   1     ,     g   2       )         0   ·   0                     =       ⁢       Pair   ⁡     (       g   1     ,     g   2       )         κ   ⁢           ⁢   1   ⁢   κ   ⁢           ⁢   2                   =       ⁢     g   T   τ                 
When i≠j, e(a i , a j *) does not include Pair(κ 1 ·g 1 , κ 2 ·g 2 ) and is the product of Pair (κ 1 ·g 1 , 0), Pair (0, κ 2 ·g 2 ), and Pair(0, 0). In addition, the following expression is satisfied from Expression (7).
 
Pair( g   1 ,0)=Pair(0 ,g   2 )=Pair( g   1   ,g   2 )0·0
 
Therefore, when i≠j, the following expression is satisfied.
 
 e ( a   i   ,a   j *)= e ( g   1   ,g   2 ) 0   =g   T   0  
 
     Especially when τ=κ 1 ·κ 2 =1 F  (for example, κ 1 =κ 2 =1 F ), the following expression is satisfied.
 
 e ( a   i   ,a   j *)= g   T   δ(i,j)   (12)
 
Here, g T   0 =1 is the unit element of the cyclic group G T , and g T   1 =g T  is a generating element of the cyclic group G T . In that case, the basis vector a i  and the basis vector a i * are a dual normal orthogonal basis, and the vector space V and the vector space V* are a dual vector space that constitute bilinear mapping (dual pairing vector space (DPVS)).
 
     A: An (n+1) row by (n+1) column matrix having the basis vector a i  (i=1, . . . , n+1) as elements. When the basis vector a i  (i=1, . . . , n+1) is expressed by Expression (9), for example, the matrix A is as follows: 
     
       
         
           
             
               
                 
                   A 
                   = 
                   
                     
                       ( 
                       
                         
                           
                             
                               a 
                               1 
                             
                           
                         
                         
                           
                             
                               a 
                               2 
                             
                           
                         
                         
                           
                             ⋮ 
                           
                         
                         
                           
                             
                               a 
                               
                                 n 
                                 + 
                                 1 
                               
                             
                           
                         
                       
                       ) 
                     
                     = 
                     
                       ( 
                       
                         
                           
                             
                               
                                 κ 
                                 1 
                               
                               · 
                               
                                 g 
                                 1 
                               
                             
                           
                           
                             0 
                           
                           
                             … 
                           
                           
                             0 
                           
                         
                         
                           
                             0 
                           
                           
                             
                               
                                 κ 
                                 1 
                               
                               · 
                               
                                 g 
                                 1 
                               
                             
                           
                           
                             
                                 
                             
                           
                           
                             ⋮ 
                           
                         
                         
                           
                             ⋮ 
                           
                           
                             
                                 
                             
                           
                           
                             ⋱ 
                           
                           
                             0 
                           
                         
                         
                           
                             0 
                           
                           
                             … 
                           
                           
                             0 
                           
                           
                             
                               
                                 κ 
                                 1 
                               
                               · 
                               
                                 g 
                                 1 
                               
                             
                           
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   13 
                   ) 
                 
               
             
           
         
       
     
     A*: A (n+1) row by (n+1) column matrix having the basis vector a i * (i=1, . . . , n+1) as elements. When the basis vector a i * (i=1, . . . , n+1) is expressed by Expression (10), for example, the matrix A* is as follows: 
     
       
         
           
             
               
                 
                   
                     A 
                     * 
                   
                   = 
                   
                     
                       ( 
                       
                         
                           
                             
                               a 
                               1 
                               * 
                             
                           
                         
                         
                           
                             
                               a 
                               2 
                               * 
                             
                           
                         
                         
                           
                             ⋮ 
                           
                         
                         
                           
                             
                               a 
                               
                                 n 
                                 + 
                                 1 
                               
                               * 
                             
                           
                         
                       
                       ) 
                     
                     = 
                     
                       ( 
                       
                         
                           
                             
                               
                                 κ 
                                 2 
                               
                               · 
                               
                                 g 
                                 2 
                               
                             
                           
                           
                             0 
                           
                           
                             … 
                           
                           
                             0 
                           
                         
                         
                           
                             0 
                           
                           
                             
                               
                                 κ 
                                 2 
                               
                               · 
                               
                                 g 
                                 2 
                               
                             
                           
                           
                             
                                 
                             
                           
                           
                             ⋮ 
                           
                         
                         
                           
                             ⋮ 
                           
                           
                             
                                 
                             
                           
                           
                             ⋱ 
                           
                           
                             0 
                           
                         
                         
                           
                             0 
                           
                           
                             … 
                           
                           
                             0 
                           
                           
                             
                               
                                 κ 
                                 2 
                               
                               · 
                               
                                 g 
                                 2 
                               
                             
                           
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   14 
                   ) 
                 
               
             
           
         
       
     
     X: A (n+1) row by (n+1) column matrix having elements of the finite field F q  as elements. The matrix X is used to apply coordinate conversion to the basis vector a i . When the element located at the i-th row and the j-th column in the matrix X, χ i,j εFq, the matrix X is as follows: 
                   X   =     (           χ     1   ,   1             χ     1   ,   2           …         χ     1   ,     n   +   1                   χ     2   ,   1             χ     2   ,   2                       ⋮           ⋮                   ⋱       ⋮             χ       n   +   1     ,   1             χ       n   +   1     ,   2           …         χ       n   +   1     ,     n   +   1               )             (   15   )               
Here, each element χ ij  of the matrix X is called a conversion coefficient.
 
     X*: Transposed matrix of the inverse matrix of the matrix X. X*=(X −1 ) T . The matrix X* is used to apply coordinate conversion to the basis vector a i *. When the element located at the i-th row and the j-th column in the matrix X*, χ i j *, εFq, the matrix X* is as follows: 
                     X   *     =     (           χ     1   ,   1     *           χ     1   ,   2     *         …         χ     1   ,     n   +   1       *               χ     2   ,   1     *           χ     2   ,   2     *                     ⋮           ⋮                   ⋱       ⋮             χ       n   +   1     ,   1     *           χ       n   +   1     ,   2     *         …         χ       n   +   1     ,     n   +   1       *           )             (   16   )               
Here, each element χ i,j * of the matrix X* is called a conversion coefficient.
 
     In that case, when an (n+1) row by (n+1) column unit matrix is called I, X·(X*) T =I. In other words, for the unit matrix shown below, 
                   I   =     (           1   F           0   F         …         0   F               0   F           1   F                     ⋮           ⋮                   ⋱         0   F               0   F           0   F         …         1   F           )             (   17   )               
the following expression is satisfied.
 
                       (           χ     1   ,   1             χ     1   ,   2           …         χ     1   ,     n   +   1                   χ     2   ,   1             χ     2   ,   2                       ⋮           ⋮                   ⋱       ⋮             χ       n   +   1     ,   1             χ       n   +   1     ,   2           …         χ       n   +   1     ,     n   +   1               )     ·     (           χ     1   ,   1     *           χ     2   ,   1     *         …         χ       n   +   1     ,   1     *               χ     1   ,   2     *           χ     2   ,   2     *                     ⋮           ⋮                   ⋱       ⋮             χ     1   ,     n   +   1       *           χ     2   ,     n   +   1       *         …         χ       n   +   1     ,     n   +   1       *           )       =     (           1   F           0   F         …         0   F               0   F           1   F                     ⋮           ⋮                   ⋱         0   F               0   F           0   F         …         1   F           )             (   18   )               
Here, (n+1)-dimensional vectors will be defined below.
 
χ i   → =(χ i,1 , . . . , χ i,n+1 )  (19)
 
χ j   → =(χ j,1 *, . . . , χ j,n+1 *)  (20)
 
The inner product of the (n+1)-dimensional vectors χ i   →  and χ j   → * satisfies the following expression from Expression (18).
 
χ i   → ·χ j   → *=δ( i,j )  (21)
 
     b i : (n+1)-dimensional basis vector having (n+1) elements of the cyclic group G 1  as elements. The basis vector b i  is obtained by applying coordinate conversion to a i  (i=1, . . . , n+1) by using the matrix X. Specifically, the basis vector b i  is obtained by the following calculation
 
 b   i =(χ i,1 ·κ 1   ·g   1 ,χ i,2 ·κ 1   ·g   1 , . . . ,χ i,n+1 ·κ 1   ·g   1 )  (22)
 
When the basis vector a j  (j=1, . . . , n+1) is expressed by Expression (9), each element of the basis vector b i  is shown below.
 
 b   i =(χ i,1 ·κ 1   ·g   1 ,χ i,2 ·κ 1   ·g   1 , . . . ,χ i,n+1 ·κ 1   ·g   1   (23)
 
     Each (n+1)-dimensional vector having (n+1) elements of the cyclic group G 1  as elements is expressed by a linear sum of (n+1)-dimensional basis vectors b i  (i=1, . . . , n+1). Therefore, the (n+1)-dimensional basis vectors b i  span the vector space V, described earlier. 
     b i *: (n+1)-dimensional basis vector having (n+1) elements of the cyclic group G 2  as elements. The basis vector b i * is obtained by applying coordinate conversion to a i *(i=1, . . . , n+1) by using the matrix X. Specifically, the basis vector b i * is obtained by the following calculation
 
 b   i *=Σ j=1   n+1 χ i,j   *·a   j *  (24)
 
When the basis vector a i  (j=1, . . . , n+1) is expressed by Expression (10), each element of the basis vector b i * is shown below.
 
 b   i *=(χ i,1 *·κ 2   ·g   2 ,χ i,2 ·η 2   ·g   2 , . . . ,χ i,n+1 *·κ 2   ·g   2 )  (25)
 
     Each (n+1)-dimensional vector having (n+1) elements of the cyclic group G 2  as elements is expressed by a linear sum of (n+1)-dimensional basis vectors b i * (i=1, . . . , n+1). Therefore, the (n+1)-dimensional basis vectors b i * span the vector space V*, described earlier. 
     The basis vector b i  and the basis vector b i * satisfy the following expression for the elements τ=κ 1 ·κ 2  of the finite field F q  other than 0 F :
 
 e ( b   i   ,b   j *)= g   T   τδ(i,j)   (26)
 
The following expression is satisfied from Expressions (6), (21), (23), and (25).
 
                     e   ⁡     (       b   i     ,     b   j   *       )       =       ⁢       ∏     L   =   1       n   +   1       ⁢           ⁢     Pair   ⁡     (         χ     i   ,   L       ·     κ   1     ·     g   1       ,       χ     j   ,   L     *     ·     κ   2     ·     g   2         )                     =       ⁢       Pair   ⁡     (         χ     i   ,   l       ·     κ   1     ·     g   1       ,       χ     j   ,   l     *     ·     κ   2     ·     g   2         )       ·   …   ⁢           ·       (         χ     i   ,   n       ·     κ   1     ·     g   1       ,       χ     j   ,   n     *     ·     κ   2     ·     g   2         )     ⨯                       ⁢     Pair   ⁡     (         χ     j   ,     n   +   1         ·     κ   1     ·     g   1       ,       χ     j   ,     n   +   1       *     ·     κ   2     ·     g   2         )                   =       ⁢         Pair   ⁡     (       g   1     ,     g   2       )           κ   1     ·     κ   2     ·     χ     i   ,   1       ·     χ     j   ,   1     *         ·   …   ⁢           ·         Pair   ⁡     (       g   1     ,     g   2       )           κ   1     ·     κ   2     ·     χ     i   ,   2       ·     χ     j   ,   2     *         ⨯                       ⁢       Pair   ⁡     (       g   1     ,     g   2       )           κ   1     ·     κ   2     ·     χ     i   ,     n   +   1         ·     χ     j   ,     n   +   1       *                     =       ⁢       Pair   ⁡     (       g   1     ,     g   2       )           κ   1     ·       κ   2     (         χ     i   ,   1       ·     χ     j   ,   1     *       +       χ     i   ,   2       ·     χ     j   ,   2     *       +           ⁢   …   ⁢           +       χ     i   ,     n   +   1         ·     χ     j   ,     n   +   1       *         )                     =       ⁢       Pair   ⁡     (       g   1     ,     g   2       )           κ   1     ·     κ   2     ·     χ   i   →     ·     χ   j     →   *                       =       ⁢       Pair   ⁡     (       g   1     ,     g   2       )         τ   ·     δ   ⁡     (     i   ,   j     )                       =       ⁢     g   T     τ   ·     δ   ⁡     (     i   ,   j     )                       
Especially when τ=κ 1 ·κ 2 =1 F  (for example, κ 1 =κ 2 =1 F ), the following expression is satisfied.
 
 e ( b   i   ,b   j *)= g   T   δ(i,j)   (27)
 
In that case, the basis vector b i  and the basis vector b i * are the dual normal orthogonal basis of a dual pairing vector space (the vector space V and the vector space V*).
 
     As long as Expression (26) is satisfied, the basis vectors a i  and a i * other than those shown in Expressions (9) and (10) as examples, and the basis vectors b i  and b i * other than those shown in Expressions (22) and (24) as examples may be used. 
     B: An (n+1) row by (n+1) column matrix having the basis vector b i  (i=1, . . . , n+1) as elements. B=X·A is satisfied. When the basis vector b i  is expressed by Expression (23), for example, the matrix B is as follows: 
     
       
         
           
             
               
                 
                   
                     
                       
                         B 
                         = 
                           
                         ⁢ 
                         
                           ( 
                           
                             
                               
                                 
                                   b 
                                   1 
                                 
                               
                             
                             
                               
                                 
                                   b 
                                   2 
                                 
                               
                             
                             
                               
                                 ⋮ 
                               
                             
                             
                               
                                 
                                   b 
                                   
                                     n 
                                     + 
                                     1 
                                   
                                 
                               
                             
                           
                           ) 
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                         ⁢ 
                         
                           ( 
                           
                             
                               
                                 
                                   
                                     χ 
                                     
                                       1 
                                       , 
                                       1 
                                     
                                   
                                   · 
                                   
                                     κ 
                                     1 
                                   
                                   · 
                                   
                                     g 
                                     1 
                                   
                                 
                               
                               
                                 
                                   
                                     χ 
                                     
                                       1 
                                       , 
                                       2 
                                     
                                   
                                   · 
                                   
                                     κ 
                                     1 
                                   
                                   · 
                                   
                                     g 
                                     1 
                                   
                                 
                               
                               
                                 … 
                               
                               
                                 
                                   
                                     χ 
                                     
                                       1 
                                       , 
                                       
                                         n 
                                         + 
                                         1 
                                       
                                     
                                   
                                   · 
                                   
                                     κ 
                                     1 
                                   
                                   · 
                                   
                                     g 
                                     1 
                                   
                                 
                               
                             
                             
                               
                                 
                                   
                                     χ 
                                     
                                       2 
                                       , 
                                       1 
                                     
                                   
                                   · 
                                   
                                     κ 
                                     1 
                                   
                                   · 
                                   
                                     g 
                                     1 
                                   
                                 
                               
                               
                                 
                                   
                                     χ 
                                     
                                       2 
                                       , 
                                       2 
                                     
                                   
                                   · 
                                   
                                     κ 
                                     1 
                                   
                                   · 
                                   
                                     g 
                                     1 
                                   
                                 
                               
                               
                                 
                                     
                                 
                               
                               
                                 ⋮ 
                               
                             
                             
                               
                                 ⋮ 
                               
                               
                                 
                                     
                                 
                               
                               
                                 ⋱ 
                               
                               
                                 
                                   
                                     χ 
                                     
                                       n 
                                       , 
                                       
                                         n 
                                         + 
                                         1 
                                       
                                     
                                   
                                   · 
                                   
                                     κ 
                                     1 
                                   
                                   · 
                                   
                                     g 
                                     1 
                                   
                                 
                               
                             
                             
                               
                                 
                                   
                                     χ 
                                     
                                       
                                         n 
                                         + 
                                         1 
                                       
                                       , 
                                       1 
                                     
                                   
                                   · 
                                   
                                     κ 
                                     1 
                                   
                                   · 
                                   
                                     g 
                                     1 
                                   
                                 
                               
                               
                                 … 
                               
                               
                                 
                                   
                                     χ 
                                     
                                       
                                         n 
                                         + 
                                         1 
                                       
                                       , 
                                       n 
                                     
                                   
                                   · 
                                   
                                     κ 
                                     1 
                                   
                                   · 
                                   
                                     g 
                                     1 
                                   
                                 
                               
                               
                                 
                                   
                                     χ 
                                     
                                       
                                         n 
                                         + 
                                         1 
                                       
                                       , 
                                       
                                         n 
                                         + 
                                         1 
                                       
                                     
                                   
                                   · 
                                   
                                     κ 
                                     1 
                                   
                                   · 
                                   
                                     g 
                                     1 
                                   
                                 
                               
                             
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   28 
                   ) 
                 
               
             
           
         
       
     
     B*: An (n+1) row by (n+1) column matrix having the basis vector b i *(i=1, . . . , n+1) as elements. B*=X*·A* is satisfied. When the basis vector b i *(i=1, . . . , n+1) is expressed by Expression (25), for example, the matrix B* is as follows: 
     
       
         
           
             
               
                 
                   
                     
                       
                         
                           B 
                           * 
                         
                         = 
                           
                         ⁢ 
                         
                           ( 
                           
                             
                               
                                 
                                   b 
                                   1 
                                   * 
                                 
                               
                             
                             
                               
                                 
                                   b 
                                   2 
                                   * 
                                 
                               
                             
                             
                               
                                 ⋮ 
                               
                             
                             
                               
                                 
                                   b 
                                   
                                     n 
                                     + 
                                     1 
                                   
                                   * 
                                 
                               
                             
                           
                           ) 
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                         ⁢ 
                         
                           ( 
                           
                             
                               
                                 
                                   
                                     χ 
                                     
                                       1 
                                       , 
                                       1 
                                     
                                     * 
                                   
                                   · 
                                   
                                     κ 
                                     2 
                                   
                                   · 
                                   
                                     g 
                                     2 
                                   
                                 
                               
                               
                                 
                                   
                                     χ 
                                     
                                       1 
                                       , 
                                       2 
                                     
                                     * 
                                   
                                   · 
                                   
                                     κ 
                                     2 
                                   
                                   · 
                                   
                                     g 
                                     2 
                                   
                                 
                               
                               
                                 … 
                               
                               
                                 
                                   
                                     χ 
                                     
                                       1 
                                       , 
                                       
                                         n 
                                         + 
                                         1 
                                       
                                     
                                     * 
                                   
                                   · 
                                   
                                     κ 
                                     2 
                                   
                                   · 
                                   
                                     g 
                                     2 
                                   
                                 
                               
                             
                             
                               
                                 
                                   
                                     χ 
                                     
                                       2 
                                       , 
                                       1 
                                     
                                     * 
                                   
                                   · 
                                   
                                     κ 
                                     2 
                                   
                                   · 
                                   
                                     g 
                                     2 
                                   
                                 
                               
                               
                                 
                                   
                                     χ 
                                     
                                       2 
                                       , 
                                       2 
                                     
                                     * 
                                   
                                   · 
                                   
                                     κ 
                                     2 
                                   
                                   · 
                                   
                                     g 
                                     2 
                                   
                                 
                               
                               
                                 
                                     
                                 
                               
                               
                                 ⋮ 
                               
                             
                             
                               
                                 ⋮ 
                               
                               
                                 
                                     
                                 
                               
                               
                                 ⋱ 
                               
                               
                                 
                                   
                                     χ 
                                     
                                       n 
                                       , 
                                       
                                         n 
                                         + 
                                         1 
                                       
                                     
                                     * 
                                   
                                   · 
                                   
                                     κ 
                                     2 
                                   
                                   · 
                                   
                                     g 
                                     2 
                                   
                                 
                               
                             
                             
                               
                                 
                                   
                                     χ 
                                     
                                       
                                         n 
                                         + 
                                         1 
                                       
                                       , 
                                       1 
                                     
                                     * 
                                   
                                   · 
                                   
                                     κ 
                                     2 
                                   
                                   · 
                                   
                                     g 
                                     2 
                                   
                                 
                               
                               
                                 … 
                               
                               
                                 
                                   
                                     χ 
                                     
                                       
                                         n 
                                         + 
                                         1 
                                       
                                       , 
                                       n 
                                     
                                     * 
                                   
                                   · 
                                   
                                     κ 
                                     2 
                                   
                                   · 
                                   
                                     g 
                                     2 
                                   
                                 
                               
                               
                                 
                                   
                                     χ 
                                     
                                       
                                         n 
                                         + 
                                         1 
                                       
                                       , 
                                       
                                         n 
                                         + 
                                         1 
                                       
                                     
                                     * 
                                   
                                   · 
                                   
                                     κ 
                                     2 
                                   
                                   · 
                                   
                                     g 
                                     2 
                                   
                                 
                               
                             
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   29 
                   ) 
                 
               
             
           
         
       
     
     w → : An n-dimensional vector having elements of the finite field F q  as elements.
 
 w   → =( w   1   , . . . ,w   n )ε F   q   n   (30)
 
     w μ : The μ-th (μ=1, . . . , n) element of the n-dimensional vector. 
     v → : An n-dimensional vector having elements of the finite field F q  as elements.
 
 v   → =( v   1   , . . . , v   n )ε F   q   n   (31)
 
     v μ : The μ-th (μ=1, . . . , n) element of the n-dimensional vector. 
     Collisionless function: A function h that satisfies the following condition with respect to a sufficiently larger security parameter k, or a function regarded as serving as such.
 
 Pr[A ( h )=( x,y )| h ( x )= h ( y )   x≠y ]&lt;ε( k )  (32)
 
     Here, Pr[·] is the probability of the event [·]; A(h) is a probability polynomial time algorithm for calculating x and y (x≠y) that satisfy h(x)=h(y) for a function h; and ε(k) is a polynomial for the security parameter k. An example collisionless function is a hash function such as the cryptographic hash function disclosed in reference literature 1. 
     Injective function: A function by which each element belonging to a value range is expressed as the image of only one element in the definition range, or a function regarded as such. An example injection function is a hash function such as the key derivation function (KDF) disclosed in reference literature 1. 
     Pseudo-random function: A function belonging to a subset φ ζ  when a probability polynomial time algorithm cannot distinguish between the subset φ χ and its whole set Φ θ , or a function regarded as such. The set Φ ζ  is a set of all functions that map an element of a set {0, 1} ζ  to an element of the set {0, 1} ζ . An example pseudo-random function is a hash function such as that described above. 
     H 1 : A collisionless function that receives two binary sequences (ω 1 , ω 2 )ε{0, 1} k ×{0, 1}* and outputs two elements (ψ 1 , ψ 2 )εF q ×F q  of the finite field F q .
 
 H   1 :{0,1} k ×{0,1 }*→F   q   ×F   q   (33)
 
     An example of the function H 1  is a function that receives the connected bits ω 1 ∥ω 2  of ω 1  and ω 2 , performs calculations with a hash function such as the cryptographic hash function disclosed in reference literature 1, a binary-sequence-to-integer conversion function (octet string/integer conversion), and a binary-sequence-to-finite-field-element conversion function (octet string and integer/finite field conversion), and outputs two elements (ψ 1 , ψ 2 )εF q ×F q  of the finite field F q . It is preferred that the function H 1  be a pseudo-random function. 
     H 2 : A collisionless function that receives an element of the cyclic group G T  and a binary sequence (ξ, ω 2 )εG T ×{0, 1}* and outputs one element ψεF q  of the finite field F q .
 
 H   2   :G   T ×{0,1 }*→F   q   (34)
 
     An example of the function H 2  is a function that receives an element ξεG T  of the cyclic group G T  and a binary sequence ω 2 ε{0, 1}*, inputs the element ξεG T  of the cyclic group G T  to the finite-field-element-to-binary-sequence conversion function (octet string and integer/finite field conversion) disclosed in reference literature 1 to obtain a binary sequence, applies a hash function such the cryptographic hash function disclosed in reference literature 1 to the connected bits of the binary sequence and the binary sequence χ 2 ε{0, 1}*, performs a binary-sequence-to-finite-field-element conversion function (octet string and integer/finite field conversion), and outputs one element ψεF q  of the finite field F q . It is preferred from a security viewpoint that the function H 2  be a pseudo-random function. 
     R: An injective function that receives an element ξεG T  of the cyclic group G T  and outputs one binary sequence ωε{0, 1} k .
 
 R:G   T →{0,1}*  (35)
 
     An example of the injective function R is a function that receives an element ξεG T  of the cyclic group G T , performs calculations with the finite-field-element-to-binary-sequence conversion function (octet string and integer/finite field conversion) and then with a hash function such as the KDF (key derivation function) disclosed in reference literature 1, and outputs one binary sequence ωε{0, 1} k . From a security viewpoint, it is preferred that the function R be a collisionless function, and it is more preferred that the function R be a pseudo-random function. 
     Enc: A private key encryption function that indicates an encryption process of a private key cryptosystem. Example private key cryptosystems are Camellia(registered trademark) and AES. 
     Enc k (M): Ciphertext obtained by encrypting plaintext M by the private key encryption function Enc with the use of a common key K. 
     Dec: A private key decryption function that indicates a decryption process of the private key cryptosystem. 
     Dec k (C): A decryption result obtained by decrypting ciphertext C by the private key decryption function Dec with the use of the common key K. 
     [Inner Product Functional Encryption] 
     The basic configuration of inner product functional encryption will be described below. 
     &lt;Functional Encryption&gt; 
     Functional encryption (sometimes called functional encryption) means that ciphertext can be decrypted when a combination of attribute information and logic information makes a predetermined logical expression true. One of the attribute information and logic information is embedded in the ciphertext and the other is embedded in key information. The configuration of conventional functional encryption is, for example, disclosed in reference literature 9, Jonathan Katz, Amit Sahai and Brent Waters, “Function encryption supporting Disjunctions, Polynomial Equations, and Inner Products”, one of four papers from Eurocrypt 2008 invited by the Journal of Cryptology. 
     &lt;Inner Product Functional Encryption&gt; 
     Inner product functional encryption means that ciphertext can be decrypted when the inner product of attribute information and logic information handled as vectors is zero. In inner product functional encryption, an inner product of zero is equivalent to a logical expression of true. 
     [Relationship Between Logical Expression and Polynomial] 
     In inner product functional encryption, a logical expression formed of a logical OR(s) and/or a logical AND(s) is expressed by a polynomial. 
     The logical OR (x=η 1 ) (x=η 2 ) of statement 1 indicating that x is η 1  and statement 2 indicating that x is η 2  is expressed by the following polynomial.
 
( x−η   1 )·( x−η   2 )  (36)
 
Then, the relationships between true values and the function values of Expression (36) are shown in the following table.
 
     
       
         
           
               
               
               
               
             
               
                 TABLE 1 
               
               
                   
               
               
                 Statement 1 
                 Statement 2 
                 Logical OR 
                 Function value 
               
               
                 (x = η 1 ) 
                 (x = η 2 ) 
                 (x = η 1 )    (x = η 2 ) 
                 (x = η 1 ) · (x = η 2 ) 
               
               
                   
               
             
            
               
                 True 
                 True 
                 True 
                 0 
               
               
                 True 
                 False 
                 True 
                 0 
               
               
                 False 
                 True 
                 True 
                 0 
               
               
                 False 
                 False 
                 False 
                 Other than 0 
               
               
                   
               
            
           
         
       
     
     As understood from Table 1, when the logical OR (x=η 1 ) (x=η 2 ) is true, the function value of Expression (36) is zero; and when the logical OR (x=η 1 ) (x=η 2 ) is false, the function value of Expression (36) is a value other than zero. In other words, a logical OR (x=η 1 ) (x=n 2 ) of true is equivalent to a function value of zero in Expression (36). Therefore, the logical OR can be expressed by Expression (36). 
     The logical AND (x=η 1 ) (x=η 2 ) of statement 1 indicating that x is η 1  and statement 2 indicating that x is η 2  is expressed by the following polynomial
 
ι 1 ·( x−η   1 )+ι 2 ·( x−η   2 )  (37)
 
where ι 1  and ι 2  are random numbers. Then, the relationships between true values and the function values of Expression (37) are shown in the following table.
 
     
       
         
           
               
               
               
               
             
               
                 TABLE 2 
               
               
                   
               
               
                   
                   
                   
                 Function value 
               
               
                 Statement 1 
                 Statement 2 
                 Logical AND 
                 ι 1  · (x − η 1 ) + ι 2  · (x − 
               
               
                 (x = η 1 ) 
                 (x = η 2 ) 
                 (x = η 1 )    (x = η 2 ) 
                 η 2 ) 
               
               
                   
               
             
            
               
                 True 
                 True 
                 True 
                 0 
               
               
                 True 
                 False 
                 False 
                 Other than 0 
               
               
                 False 
                 True 
                 False 
                 Other than 0 
               
               
                 False 
                 False 
                 False 
                 Other than 0 
               
               
                   
               
            
           
         
       
     
     As understood from Table 2, when the logical AND (x=η 1 ) (x=η 2 ) is true, the function value of Expression (37) is zero; and when the logical AND (x=η 1 ) (x=η 2 ) is false, the function value of Expression (37) is a value other than zero. In other words, a logical AND (x=η 1 ) (x=η 2 ) of true is equivalent to a function value of zero in Expression (37). Therefore, the logical AND can be expressed by Expression (37). 
     As described above, by using Expressions (36) and (37), a logical expression formed of a logical OR(s) and/or a logical AND(s) can be expressed by the polynomial f(x). An example will be shown below.
 
Logical expression: {( x=η   1 ) ( x=η   2 ) ( x=η   3 )} ( x=η   4 ) ( x=η   5 )
 
Polynomial:  f ( x )=ι 1 ·{( x−η   1 )·( x−η   2 )·( x−η   3 )}+ι 2 ·( x−η   4 )+ι 3 ·( x−η   5 )  (38)
 
     In Expression (36), one indeterminate element x is used to express the logical OR. A plurality of indeterminate elements can also be used to express a logical OR. For example, two indeterminate elements x 0  and x 1  are used to express the logical OR (x 0 =η 0 ) (x 1 =η 1 ) of statement 1 indicating that x 0  is η 0  and statement 2 indicating that x 1  is η 1  by the following polynomial.
 
( x   0 −η 0 )·( x   1 −η 4 )
 
Three or more indeterminate elements can also be used to express a logical OR by a polynomial.
 
     In Expression (37), one indeterminate element x is used to express the logical AND. A plurality of indeterminate elements can also be used to express a logical AND. For example, the logical AND (x 0 =η 0 ) (x 1 =η 1 ) of statement 1 indicating that x 0  is η 0  and statement 2 indicating that x 1  is η 1  can be expressed by the following polynomial.
 
ι 0 ·( x   0 −η 0 )+ι 1 ·( x   1 −η 1 )
 
Three or more indeterminate elements can also be used to express a logical AND by a polynomial.
 
     A logical expression that includes a logical OR(s) and/or a logical AND(s) is expressed with H (H≧1) types of indeterminate elements x 0 , . . . , x H−1  as the polynomial f(x 0 , . . . , x H−1 ). It is assumed that a statement for each of the indeterminate elements x 0 , . . . , x H−1  is “x h  is η h ”, where η h  (h=0, . . . , H−1) is a constant determined for each statement. Then, in the polynomial f(x 0 , . . . , x H−1 ) indicating the logical expression, the statement indicating that an indeterminate element x h  is a constant η h  is expressed by the polynomial indicating the difference between the indeterminate element x h  and the constant η h ; each logical OR of statements is expressed by the product of the polynomials indicating the statements; and the logical AND of statements or the logical ORs of statements is expressed by a linear OR of the polynomials indicating the statements or the logical ORs of statements. For example, five indeterminate elements x 0 , . . . , x 4  are used to express a logical expression
 
{( x   0 =η 0 ) ( x   1 =η 1 ) ( x   2 =η 2 )} ( x   3 =η 3 ) ( x   4 =η 4 )
 
by the following polynomial
 
 f ( x 0 , . . . ,x 4)=ι 0 ·{( x   0 −η 0 )·(x 1 −η 1 )·( x   2 −η 2 )}+ι 1 ·( x   3 =η 3 )+ι 2 ·( x   4 =η 4 )
 
     [Relationship Between Polynomial and Inner Product] 
     The polynomial f(x 0 , . . . , x H−1 ) indicating a logical expression can be expressed by the inner product of two n-dimensional vectors. More specifically, a vector having the indeterminate elements of the terms of the polynomial f(x 0 , . . . , x H−1 ) as elements,
 
 v   → =( v   1   , . . . , v   n )
 
and a vector having the coefficients of the terms of the polynomial f(x 0 , . . . , x H−1 ) as elements,
 
 w   → =( w   1 , . . . , w   n )
 
are used to generate the inner product thereof,
 
 f ( x   0   , . . . ,x   H−1 )= w   →   ·v   → 
 
which is equal to the polynomial f(x 0 , . . . , x H−1 ). In other words, whether the polynomial f(x 0 , . . . , x H−1 ) indicating a logical expression is zero is equivalent to whether the inner product of the vector v →  having the indeterminate elements of the terms of the polynomial f(x 0 , . . . , x H−1 ) as elements and the vector w →  having the coefficients of the terms of the polynomial f(x 0 , . . . , x H−1 ) as elements is zero.
 
 f ( x   0   , . . . ,x   H−1 )=0 ←→w   →   ·v   → =0
 
     For example, a polynomial f(x)=θ 0 ·x 0 ±θ 1 ·x+ . . . +θ n−1 x n−1  can be expressed with two n-dimensional vectors
 
 w   → =( w   1   , . . . ,w   n )=(θ 0 , . . . ,θ n−1 )  (39)
 
 v   → =( v   1 , . . . , v   n )=( x   0 , . . . , x   n−1 )  (40)
 
by the inner product thereof.
 
 f ( x )= w   →   ·v   → (41)
 
In other words, whether the polynomial f(x) indicating a logical expression is zero is equivalent to whether the inner product in Expression (41) is zero.
 
 f ( x )=0 ←→w   →   ·v   → =0  (42)
 
     When a vector having the indeterminate elements of the terms of the polynomial f(x 0 , . . . , x H−1 ) as elements is expressed by
 
 w   → =( w   1   , . . . ,w   n )
 
and a vector having the coefficients of the terms of the polynomial f(x 0 , . . . , x H−1 ) as elements is expressed by
 
 v   → =( v   1   , . . . ,v   n )
 
whether the polynomial f(x 0 , . . . , x H−1 ) indicating a logical expression is zero is equivalent to whether the inner product of the vector w →  and the vector v →  is zero.
 
     For example, when the following expressions are used instead of Expressions (39) and (40),
 
 w   → =( w   1   , . . . ,w   n )=( x   0   , . . . ,x   n−1 )  (43)
 
 v   → =( v   1   , . . . ,v   n )=(θ 0 , . . . ,θ n−1 )  (44)
 
whether the polynomial f(x) indicating a logical expression is zero is equivalent to whether the inner product in Expression (41) is zero.
 
     In inner product predicate encryption, one of the vectors v → =(v 1 , . . . , v n ) and w → =(w 1 , . . . , w n ) is used as attribute information and the other is used as predicate information. One of the attribute information and predicate information is embedded in ciphertext and the other is embedded in key information. For example, an n-dimensional vector (θ 0 , . . . , θ n−1 ) is used as predicate information, another n-dimensional vector (x 0 , . . . , x n−1 ) is used as attribute information, one of the attribute information and predicate information is embedded in ciphertext, and the other is embedded in key information. It is assumed in the following description that an n-dimensional vector embedded in key information is w → =(w 1 , . . . , w n ) and another n-dimensional vector embedded in ciphertext is v → =(v 1 , . . . , v n ). For example,
 
Predicate information:  w   → =( w   1   , . . . ,w   n )=(θ n , . . . ,θ n−1 )
 
Attribute information:  v   → =( v   1   , . . . ,v   n )=( x   0   , . . . ,x   n−1 )
 
Alternatively,
 
Predicate information:  v   → =( v   1   , . . . ,v   n )=(θ 0 ,θ n−1 )
 
Attribute information:  w   → =( w   1   , . . . ,w   n )=( x   0   , . . . ,x   n−1 )
 
     [Basic Configuration of Inner Product Predicate Encryption] 
     The basic configuration of a key encapsulation mechanism (KEM) using inner product predicate encryption will be described below. This configuration includes Setup(1 k ), GenKey(MSK, w → ), Enc(PA, v → ), and Dec(SKw, C 2 ). 
     &lt;&lt;Setting up Setup(1 k )&gt;&gt; 
     Input: Security parameter k 
     Output: Master key information MSK, public parameter PK 
     In an example of Setup(1 k ), a security parameter k is used as n, an (n+1) row by (n+1) column matrix A having an (n+1)-dimensional basis vector a i  (i=1, . . . , n+1) as elements, an (n+1) row by (n+1) column matrix A* having a basis vector a i *(i=1, . . . , n+1) as elements, and (n+1) row by (n+1) column matrixes X and X* used for coordinate conversion are selected. Then, an (n+1)-dimensional basis vector b i  (i=1, . . . , n+1) is calculated through coordinate conversion by Expression (22), and an (n+1)-dimensional basis vector b i *(i=1, . . . , n+1) is calculated through coordinate conversion by Expression (24). An (n+1) row by (n+1) column matrix B* having the basis vector b i * (i=1, . . . , n+1) as elements is output as master key information MSK; and vector spaces V and V*, an (n+1) row by (n+1) column matrix B having the basis vector b i  (i=1, . . . , n+1) as elements, the security parameter k, the finite field F q , the elliptic curve E, the cyclic groups G 1 , G 2 , and G T , the generating elements g 1 , g 2 , and g T , the bilinear function e, and others are output as a public parameter PK. 
     &lt;&lt;Key information generation GenKey(MSK, w → )&gt;&gt; 
     Input: Master key information MSK, vector w →   
     Output: Key information D* corresponding to vector w →   
     In an example of GenKey(MSK, w → ), αεF q  is selected from the finite field F q . Then, the matrix B*, which is the master key information MSK, is used to generate and output key information D* corresponding to the vector w →  in the following way.
 
 D *=α·(Σ μ=1   n   w   μ   ·b   μ *)+ b   n+1   *εG   2   n+1   (45)
 
If it is difficult to solve a discrete logarithmic problem on the cyclic group G 2 , it is difficult to separate and extract the components of w μ ·b μ * and b n+1 *.
 
     &lt;&lt;Encryption Enc(PA, v → )&gt;&gt; 
     Input: Public parameter PK, vector v →   
     Output: Ciphertext C 2 , common key K 
     In an example of Enc(PA, v → ), a common key K and a random number υ 1 , which is an element of the finite field F q , are generated. Then, the public parameter PK, such as the matrix B, an element υ 2  corresponding to a value that includes the common key K, in the finite field F q , the vector v → , and the random number υ 1  are used to generate ciphertext C 2  in the following way.
 
 C   2 =υ 1 *(Σ μ=1   n   v   μ   ·b   μ )+υ 2   ·b   n+1   εG   1   n+1   (46)
 
The ciphertext C 2  and the common key K are output. An example of the common key K is g T   τ·υ2 εG T , where υ2 means υ 2 . An example of τ is 1 F , as described above. If it is difficult to solve a discrete logarithmic problem on the cyclic group G 1 , it is difficult to separate and extract the components of v μ ·b μ  and υ 2 ·b n+1 .
 
     &lt;&lt;Decryption and Key Sharing Dec(SKw, C 2 )&gt;&gt; 
     Input: Key information D 1 * corresponding to vector w → , ciphertext C 2    
     Output: Common key K 
     In an example of Dec(SKw, C 2 ), the ciphertext C 2  and the key information D 1 * are input to the bilinear function e of Expression (2). Then, from the characteristics of Expressions (3) and (26), the following is satisfied. 
     
       
         
           
             
               
                 
                   
                     
                       
                         
                           e 
                           ⁡ 
                           
                             ( 
                             
                               
                                 C 
                                 2 
                               
                               , 
                               
                                 D 
                                 * 
                               
                             
                             ) 
                           
                         
                         = 
                           
                         ⁢ 
                         
                           e 
                           ( 
                           
                             
                               
                                 
                                   ν 
                                   1 
                                 
                                 · 
                                 
                                   ( 
                                   
                                     
                                       ∑ 
                                       
                                         μ 
                                         = 
                                         1 
                                       
                                       n 
                                     
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     
                                       
                                         v 
                                         μ 
                                       
                                       · 
                                       
                                         b 
                                         μ 
                                       
                                     
                                   
                                   ) 
                                 
                               
                               + 
                               
                                 
                                   ν 
                                   2 
                                 
                                 · 
                                 
                                   b 
                                   
                                     n 
                                     + 
                                     1 
                                   
                                 
                               
                             
                             , 
                             
                               
                                 α 
                                 · 
                                 
                                   ( 
                                   
                                     
                                       ∑ 
                                       
                                         μ 
                                         = 
                                         1 
                                       
                                       n 
                                     
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     
                                       
                                         w 
                                         μ 
                                       
                                       · 
                                       
                                         b 
                                         μ 
                                         * 
                                       
                                     
                                   
                                   ) 
                                 
                               
                               + 
                               
                                 b 
                                 
                                   n 
                                   + 
                                   1 
                                 
                                 * 
                               
                             
                           
                           ) 
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                         ⁢ 
                         
                           
                             
                               e 
                               ⁡ 
                               
                                 ( 
                                 
                                   
                                     
                                       ν 
                                       1 
                                     
                                     · 
                                     
                                       v 
                                       1 
                                     
                                     · 
                                     
                                       b 
                                       1 
                                     
                                   
                                   , 
                                   
                                     α 
                                     · 
                                     
                                       w 
                                       1 
                                     
                                     · 
                                     
                                       b 
                                       1 
                                       * 
                                     
                                   
                                 
                                 ) 
                               
                             
                             · 
                             … 
                             ⁢ 
                             
                                 
                             
                             · 
                             
                               e 
                               ⁡ 
                               
                                 ( 
                                 
                                   
                                     
                                       ν 
                                       1 
                                     
                                     · 
                                     
                                       v 
                                       n 
                                     
                                     · 
                                     
                                       b 
                                       n 
                                     
                                   
                                   , 
                                   
                                     α 
                                     · 
                                     
                                       w 
                                       n 
                                     
                                     · 
                                     
                                       b 
                                       n 
                                       * 
                                     
                                   
                                 
                                 ) 
                               
                             
                           
                           × 
                         
                       
                     
                   
                   
                     
                       
                           
                         ⁢ 
                         
                           e 
                           ⁡ 
                           
                             ( 
                             
                               
                                 
                                   ν 
                                   2 
                                 
                                 · 
                                 
                                   b 
                                   
                                     n 
                                     + 
                                     1 
                                   
                                 
                               
                               , 
                               
                                 b 
                                 
                                   n 
                                   + 
                                   1 
                                 
                                 * 
                               
                             
                             ) 
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                         ⁢ 
                         
                           
                             
                               e 
                               ⁡ 
                               
                                 ( 
                                 
                                   
                                     b 
                                     1 
                                   
                                   , 
                                   
                                     b 
                                     1 
                                     * 
                                   
                                 
                                 ) 
                               
                             
                             
                               
                                 ν 
                                 1 
                               
                               · 
                               
                                 v 
                                 1 
                               
                               · 
                               α 
                               · 
                               
                                 w 
                                 1 
                               
                             
                           
                           · 
                           … 
                           ⁢ 
                           
                               
                           
                           · 
                           
                             
                               e 
                               ⁡ 
                               
                                 ( 
                                 
                                   
                                     b 
                                     n 
                                   
                                   , 
                                   
                                     b 
                                     n 
                                     * 
                                   
                                 
                                 ) 
                               
                             
                             
                               
                                 ν 
                                 1 
                               
                               · 
                               
                                 v 
                                 n 
                               
                               · 
                               α 
                               · 
                               
                                 w 
                                 n 
                               
                             
                           
                           · 
                           
                             
                               e 
                               ⁡ 
                               
                                 ( 
                                 
                                   
                                     b 
                                     
                                       n 
                                       + 
                                       1 
                                     
                                   
                                   , 
                                   
                                     b 
                                     
                                       n 
                                       + 
                                       1 
                                     
                                     * 
                                   
                                 
                                 ) 
                               
                             
                             
                               ν 
                               2 
                             
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                         ⁢ 
                         
                           
                             g 
                             T 
                             
                               τ 
                               · 
                               
                                 ν 
                                 1 
                               
                               · 
                               
                                 v 
                                 1 
                               
                               · 
                               α 
                               · 
                               
                                 w 
                                 1 
                               
                             
                           
                           · 
                           … 
                           ⁢ 
                           
                               
                           
                           · 
                           
                             g 
                             T 
                             
                               τ 
                               · 
                               
                                 ν 
                                 1 
                               
                               · 
                               
                                 v 
                                 n 
                               
                               · 
                               α 
                               · 
                               
                                 w 
                                 n 
                               
                             
                           
                           · 
                           
                             g 
                             T 
                             
                               τ 
                               · 
                               
                                 ν 
                                 2 
                               
                             
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                         ⁢ 
                         
                           
                             g 
                             T 
                             
                               τ 
                               · 
                               
                                 ν 
                                 1 
                               
                               · 
                               α 
                               · 
                               
                                 v 
                                 → 
                               
                               · 
                               
                                 w 
                                 → 
                               
                             
                           
                           · 
                           
                             g 
                             T 
                             
                               τ 
                               · 
                               
                                 ν 
                                 2 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   47 
                   ) 
                 
               
             
           
         
       
     
     When the inner product w → ·v →  is zero, Expression (47) can be changed to the following. 
                           e   ⁡     (       C   2     ,     D   *       )       =       ⁢       g   T     τ   ·     ν   1     ·   α   ·   0       ·     g   T     τ   ·     ν   2                       =       ⁢     g   T     τ   ·     ν   2                       (   48   )               
From this result, the common key K is generated and output. An example of the common key K is e T   τ·υ2 εG T .
 
     The (n+1)-dimensional basis vectors are used to configure the algorithm. The dimension is not limited to (n+1). An (n+ )-dimensional basis vector bi* (i=1, n+ ) may be used to configure the algorithm, where   is a predetermined integer equal to two or more. In that case, Expressions (49) can be used instead of Expression (45), and Expression (50) can be used instead of Expression (46), where υ ι  is a constant or a variable (such as a random number).
 
 D *=α·(Σ μ=1   n   w   μ   ·b   μ *)+Σ τ=n+1   n+   υ ι   ·b   ι   *εG   2   n+     (49)
 
 C   2 =υ 1 ·(Σ μ=1   n   v   μ   ·b   μ )+Σ ι=2     +1 υ ι   ·b   ι+n+1   εG   1   n+     (50)
 
     The following expression may be used as Expression (45).
 
 D *=α·(Σ μ=1   n   w   μ   ·b   μ *)+υ n+1   ·b   n+1   *εG   2   n+1  
 
In addition, the input information may be switched. Specifically, w is replaced with v in Expression (45) and v is replaced with w in Expression (46).
 
     Next, description will be given of embodiments according to a first aspect of the present invention which relate to a cryptographic communication technology that is based on functional encryption (predicate encryption is adopted as an example of the functional encryption) and that can operate flexibly. Note that expression numbers are newly assigned below. 
     (First Embodiment According to First Aspect) 
     A first embodiment according to the first aspect of the present invention will be described below with reference to  FIG. 1  to  FIG. 17 . 
     As shown in  FIG. 1 , a cryptographic system  1  includes a plurality of client apparatuses  10  and  30 , one or a plurality of key generation apparatuses  20 , one or a plurality of user information management apparatuses  40  (hereafter each called a management apparatus), conversion rule information pair management apparatuses  50  (hereafter each called a registration apparatus), one or a plurality of maintenance apparatuses  80 , and one or a plurality of authentication apparatuses  90 . These apparatuses can communicate with each other through a communication network  5 , such as the Internet. 
     The client apparatuses function as encryption apparatuses or decryption apparatuses based on their processing functions. In the light of their functions, the client apparatuses are called encryption apparatuses  10  or decryption apparatuses  30 . The cryptographic system  1  may include client apparatuses that function only as encryption apparatuses and/or client apparatuses that function only as decryption apparatuses. 
     In the cryptographic system  1 , encryption and decryption are performed using predicate encryption. In the first aspect of the present invention, the predicate encryption algorithm to be used is not limited, and the predicate encryption algorithm disclosed in Non-patent literature 2, for example, may be used. In the first embodiment of the first aspect, a predicate encryption algorithm of KEM (the key encapsulation mechanism) type will be used. 
     A cryptographic communication method used in the cryptographic system  1  will be described with reference to  FIGS. 2 ,  3 ,  4 ,  6 ,  8 , and  10 . See  FIGS. 5 ,  7 , and  9  for the functional structure of each apparatus. 
     &lt;&lt;Preparation Process&gt;&gt; 
     A parameter generation unit (not shown) of the key generation apparatus  20  generates a private key and an entry used in the predicate encryption algorithm (step S 1 ). The entry includes a public parameter (abbreviated as a public P in the figures) used in the predicate encryption algorithm, the address of the key generation apparatus  20 , a list of policies that can be used by the key generation apparatus  20 , and a list of schemas that can be used by the key generation apparatus  20 . 
     The public parameter includes, for example, generating elements g 1 , g 2 , and g T  of cyclic groups G 1 , G 2 , and G T  having an order q, a non-degenerate bilinear mapping e: G 1 ×G 2 →G T  (where e(g 1 , g 2 )=g T ), the order q, and the orthogonal basis B of an (n+1) dimensional vector space V. The private key includes the orthogonal basis B* of a dual vector space V. When the algebraic structure is a finite field F q , q is a prime number or a power of a prime number. The bilinear mapping e is, for example, Tate pairing or Weil pairing. 
     The orthogonal basis B and the orthogonal basis B* will be described next. It is assumed that an arbitrary element of the (n+1) dimensional vector space V is expressed as an element of an (n+1) dimensional direct product G 1   n+1  of the cyclic group G 1 , as shown in Expression (1). An arbitrary element of the (n+1) dimensional vector space V can also be expressed by using the canonical basis A of the (n+1) dimensional vector space V, as shown in Expression (2), where a i  is an element of the (n+1) dimensional direct product G 1   n+1 , z i  is an element of an (n+1) dimensional direct product F q   n+1 , and 1 indicates an additive identity. 
     
       
         
           
             
               
                 
                   
                     V 
                     ⁢ 
                     
                       : 
                     
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       ( 
                       
                         
                           g 
                           1 
                           
                             
                               z 
                               ⁢ 
                               
                                   
                               
                             
                             1 
                           
                         
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         
                           g 
                           1 
                           
                             
                               z 
                               ⁢ 
                               
                                   
                               
                             
                             
                               n 
                               + 
                               1 
                             
                           
                         
                       
                       ) 
                     
                   
                   ∈ 
                   
                     G 
                     1 
                     
                       n 
                       + 
                       1 
                     
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       V 
                       ⁢ 
                       
                         : 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         z 
                         1 
                       
                       ⁢ 
                       
                         a 
                         1 
                       
                     
                     + 
                     … 
                     ⁢ 
                     
                         
                     
                     + 
                     
                       
                         z 
                         
                           n 
                           + 
                           1 
                         
                       
                       ⁢ 
                       
                         a 
                         
                           n 
                           + 
                           1 
                         
                       
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       
                         
                           A 
                           = 
                             
                           ⁢ 
                           
                             ( 
                             
                               
                                 a 
                                 1 
                               
                               , 
                               … 
                               ⁢ 
                               
                                   
                               
                               , 
                               
                                 a 
                                 
                                   n 
                                   + 
                                   1 
                                 
                               
                             
                             ) 
                           
                         
                       
                     
                     
                       
                         
                           
                             = 
                               
                             ⁢ 
                             
                               ( 
                               
                                 
                                   
                                     
                                       g 
                                       1 
                                     
                                   
                                   
                                     1 
                                   
                                   
                                     … 
                                   
                                   
                                     1 
                                   
                                 
                                 
                                   
                                     1 
                                   
                                   
                                     
                                       g 
                                       1 
                                     
                                   
                                   
                                     
                                         
                                     
                                   
                                   
                                     ⋮ 
                                   
                                 
                                 
                                   
                                     ⋮ 
                                   
                                   
                                     
                                         
                                     
                                   
                                   
                                     ⋱ 
                                   
                                   
                                     1 
                                   
                                 
                                 
                                   
                                     1 
                                   
                                   
                                     … 
                                   
                                   
                                     1 
                                   
                                   
                                     
                                       g 
                                       1 
                                     
                                   
                                 
                               
                               ) 
                             
                           
                           , 
                           
                             
                               a 
                               i 
                             
                             ∈ 
                             
                               G 
                               1 
                               
                                 n 
                                 + 
                                 1 
                               
                             
                           
                         
                       
                     
                     
                       
                         
                             
                           ⁢ 
                           
                             
                               z 
                               i 
                             
                             ∈ 
                             
                               F 
                               q 
                               
                                 n 
                                 + 
                                 1 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
           
         
       
     
     The orthogonal basis B is obtained by applying an (n+1) dimensional square matrix X to the canonical basis A, as shown in Expression (3), where symbol T indicates transposition. The matrix X is kept secret as the private key. 
     
       
         
           
             
               
                 
                   
                     
                       B 
                       = 
                       
                         X 
                         · 
                         A 
                       
                     
                     ⁢ 
                     
                       
 
                     
                     ⁢ 
                     B 
                     ⁢ 
                     
                       = 
                       T 
                     
                     ⁢ 
                     
                       ( 
                       
                         
                           b 
                           1 
                         
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         
                           b 
                           
                             n 
                             + 
                             1 
                           
                         
                       
                       ) 
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       
                         
                           X 
                           = 
                             
                           ⁢ 
                           
                             T 
                             ( 
                             
                               
                                 x 
                                 1 
                               
                               , 
                               … 
                               ⁢ 
                               
                                   
                               
                               , 
                               
                                 x 
                                 
                                   n 
                                   + 
                                   1 
                                 
                               
                             
                             ) 
                           
                         
                       
                     
                     
                       
                         
                           
                             = 
                               
                             ⁢ 
                             
                               
                                 ( 
                                 
                                   χ 
                                   ij 
                                 
                                 ) 
                               
                               
                                 
                                   ( 
                                   
                                     n 
                                     + 
                                     1 
                                   
                                   ) 
                                 
                                 × 
                                 
                                   ( 
                                   
                                     n 
                                     + 
                                     1 
                                   
                                   ) 
                                 
                               
                             
                           
                           , 
                           
                             
                               χ 
                               ij 
                             
                             ∈ 
                             
                               F 
                               q 
                             
                           
                         
                       
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       x 
                       i 
                     
                     = 
                     
                       ( 
                       
                         
                           χ 
                           
                             i 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             1 
                           
                         
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         
                           χ 
                           
                             i 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               ( 
                               
                                 n 
                                 + 
                                 1 
                               
                               ) 
                             
                           
                         
                       
                       ) 
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       
                         
                           
                             b 
                             i 
                           
                           = 
                             
                           ⁢ 
                           
                             
                               ∑ 
                               
                                 j 
                                 = 
                                 1 
                               
                               
                                 n 
                                 + 
                                 1 
                               
                             
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               
                                 χ 
                                 ij 
                               
                               ⁢ 
                               
                                 a 
                                 j 
                               
                             
                           
                         
                       
                     
                     
                       
                         
                           = 
                             
                           ⁢ 
                           
                             ( 
                             
                               
                                 g 
                                 1 
                                 
                                   x 
                                   
                                     i 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     1 
                                   
                                 
                               
                               , 
                               … 
                               ⁢ 
                               
                                   
                               
                               , 
                               
                                 g 
                                 1 
                                 
                                   x 
                                   
                                     i 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     
                                       ( 
                                       
                                         n 
                                         + 
                                         1 
                                       
                                       ) 
                                     
                                   
                                 
                               
                             
                             ) 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
           
         
       
     
     It is also assumed that an arbitrary element of the dual vector space V* corresponding to the vector space V is expressed as an element of an (n+1) dimensional direct product G 2   n+1  of the cyclic group G 2 , as shown in Expression (4). An arbitrary element of the dual vector space V* can also be expressed by using the canonical basis A* of the dual vector space V*, as shown in Expression (5), where a i * is an element of the (n+1) dimensional direct product G 2   n+1 , y i * is an element of the (n+1) dimensional direct product F q   n+1 , and 1 indicates an additive identity. 
     
       
         
           
             
               
                 
                   
                     
                       V 
                       * 
                     
                     ⁢ 
                     
                       : 
                     
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       ( 
                       
                         
                           g 
                           2 
                           
                             
                               y 
                               ⁢ 
                               
                                   
                               
                             
                             1 
                           
                         
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         
                           g 
                           2 
                           
                             
                               y 
                               ⁢ 
                               
                                   
                               
                             
                             
                               n 
                               + 
                               1 
                             
                           
                         
                       
                       ) 
                     
                   
                   ∈ 
                   
                     G 
                     2 
                     
                       n 
                       + 
                       1 
                     
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       
                         V 
                         * 
                       
                       ⁢ 
                       
                         : 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         y 
                         1 
                       
                       ⁢ 
                       
                         a 
                         1 
                         * 
                       
                     
                     + 
                     … 
                     ⁢ 
                     
                         
                     
                     + 
                     
                       
                         y 
                         
                           n 
                           + 
                           1 
                         
                       
                       ⁢ 
                       
                         a 
                         
                           n 
                           + 
                           1 
                         
                         * 
                       
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       
                         
                           
                             A 
                             * 
                           
                           = 
                             
                           ⁢ 
                           
                             ( 
                             
                               
                                 a 
                                 1 
                                 * 
                               
                               , 
                               … 
                               ⁢ 
                               
                                   
                               
                               , 
                               
                                 a 
                                 
                                   n 
                                   + 
                                   1 
                                 
                                 * 
                               
                             
                             ) 
                           
                         
                       
                     
                     
                       
                         
                           
                             = 
                               
                             ⁢ 
                             
                               ( 
                               
                                 
                                   
                                     
                                       g 
                                       2 
                                     
                                   
                                   
                                     1 
                                   
                                   
                                     … 
                                   
                                   
                                     1 
                                   
                                 
                                 
                                   
                                     1 
                                   
                                   
                                     
                                       g 
                                       2 
                                     
                                   
                                   
                                     
                                         
                                     
                                   
                                   
                                     ⋮ 
                                   
                                 
                                 
                                   
                                     ⋮ 
                                   
                                   
                                     
                                         
                                     
                                   
                                   
                                     ⋱ 
                                   
                                   
                                     1 
                                   
                                 
                                 
                                   
                                     1 
                                   
                                   
                                     … 
                                   
                                   
                                     1 
                                   
                                   
                                     
                                       g 
                                       2 
                                     
                                   
                                 
                               
                               ) 
                             
                           
                           , 
                           
                             
                               a 
                               i 
                               * 
                             
                             ∈ 
                             
                               G 
                               2 
                               
                                 n 
                                 + 
                                 1 
                               
                             
                           
                         
                       
                     
                     
                       
                         
                             
                           ⁢ 
                           
                             
                               y 
                               i 
                             
                             ∈ 
                             
                               F 
                               q 
                               
                                 n 
                                 + 
                                 1 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   5 
                   ) 
                 
               
             
           
         
       
     
     The orthogonal basis B* is obtained by applying an (n+1) dimensional square matrix  T (X −1 ) to the canonical basis A*, as shown in Expression (6), where symbol E indicates a unit matrix. 
     
       
         
           
             
               
                 
                   
                     
                       
                         B 
                         * 
                       
                       ⁢ 
                       
                         = 
                         T 
                       
                       ⁢ 
                       
                         
                           ( 
                           
                             X 
                             
                               - 
                               1 
                             
                           
                           ) 
                         
                         · 
                         
                           A 
                           * 
                         
                       
                     
                     ⁢ 
                     
                       
 
                     
                     ⁢ 
                     
                       B 
                       * 
                     
                     ⁢ 
                     
                       = 
                       T 
                     
                     ⁢ 
                     
                       ( 
                       
                         
                           b 
                           1 
                           * 
                         
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         
                           b 
                           
                             n 
                             + 
                             1 
                           
                           * 
                         
                       
                       ) 
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       b 
                       i 
                       * 
                     
                     = 
                     
                       ( 
                       
                         
                           g 
                           2 
                           
                             x 
                             
                               i 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               1 
                             
                             * 
                           
                         
                         , 
                         … 
                         ⁢ 
                         
                             
                         
                         , 
                         
                           g 
                           2 
                           
                             x 
                             
                               i 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 ( 
                                 
                                   n 
                                   + 
                                   1 
                                 
                                 ) 
                               
                             
                             * 
                           
                         
                       
                       ) 
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       
                         X 
                         ⁢ 
                         
                           · 
                           T 
                         
                         ⁢ 
                         
                           ( 
                           
                             X 
                             * 
                           
                           ) 
                         
                       
                       = 
                       E 
                     
                     , 
                     
                       
 
                     
                     ⁢ 
                     
                       
                         X 
                         * 
                       
                       ⁢ 
                       
                         = 
                         T 
                       
                       ⁢ 
                       
                         ( 
                         
                           X 
                           
                             - 
                             1 
                           
                         
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   6 
                   ) 
                 
               
             
           
         
       
     
     The schema list will be described next. A pair of conversion rule information items is called a schema pair (see  FIGS. 11 to 13 ): one of the conversion rule information items is information (attribute conversion rule information, or attribute schema) that prescribes a conversion rule for converting information that designates an attribute (attribute designation information, that is, information that identifies an attribute such as a name or a date of birth specifically and uniquely, also called an attribute value) to attribute information used in the predicate encryption algorithm, and the other of the conversion rule information items is information (predicate (logical expression) conversion rule information, or predicate (logical expression) schema) that prescribes a conversion rule for converting information that designates a predicate (logical expression) (predicate (logical expression) designation information, that is, information that specifies a condition related to an attribute, such as an age or an authority specifically by a logical expression, also called a propositional function) to predicate information (logic information) used in the predicate encryption algorithm. A set (data list) of one or a plurality of schema pairs is called a schema list. Each key generation apparatus  20  can determine a schema list in a desired manner. Each data item included in each schema in the schema list is written, for example, in XML (the eXtensible Markup Language) or ASN.1 (the Abstract Notation Number One). 
     An example of the attribute schema shown in  FIG. 12  will be described below. User attribute designation information (attribute value) is associated with an attribute name and a data type. In the example shown in  FIG. 12 , a data type ‘character string’ is specified for an attribute name ‘email1’, and the attribute name ‘email1’ and the data type ‘character string’ are associated with an attribute value ‘XXX@XXX.ntt.co.jp’, for example. 
     The attribute schema prescribes a conversion rule in which an element number is associated with an attribute name and a type conversion function. In the example shown in  FIG. 12 , an element number ‘1’ is associated with an attribute name ‘blood type’ and a type conversion function, for example. The type conversion function corresponding to the element number ‘1’ converts the attribute value to 0 when the attribute value of the blood type is ‘O’, to 1 when the attribute value of the blood type is ‘A’, to 2 when the attribute value of the blood type is ‘B’, and to 3 when the attribute value of the blood type is ‘AB’. Element numbers ‘2’ and ‘3’ are associated with an attribute name “date of birth” and type conversion functions. The type conversion functions corresponding to the element numbers ‘2’ and ‘3’ convert the year of the attribute value of the date of birth to the value of a hash function having the year as the input for the element number ‘2’ and the month and day of the attribute value of the date of birth to the value of the hash function having the month and day as the input for the element number ‘3’. 
     When the example attribute schema shown in  FIG. 12  is applied to the example attribute designation information (attribute value) of a user shown in  FIG. 12 , example attribute information (vector information) shown in  FIG. 12  is obtained. This attribute information can be regarded as a vector by arranging the outputs of the type conversion functions by using the element numbers of the attribute schema as the element numbers of the vector. 
     In general, according to the functional encryption, a plurality of pieces of attribute information can be designated at the time of encryption. For example, an attribute schema is applied to a plurality of pieces of attribute designation information, whereby a plurality of pieces of attribute information can be obtained. Alternatively, a plurality of attribute schemas may be applied to one piece of attribute designation information, whereby a plurality of pieces of attribute information may be obtained. 
     In the above description, the outputs of the type conversion functions are integers and the output values of the hash function. In reality, the outputs of the type conversion functions depend on the predicate encryption algorithm and are, for example, elements of the finite field F q . 
     An example of the predicate schema shown in  FIG. 13  will be described below. As predicate designation information, logic expressions that specify conditions for attributes are given. In the example shown in  FIG. 13 , the predicate designation information of ‘name=Taro Tanaka AND age=20 or more’ which means the attribute value of an attribute name ‘name’ is ‘Taro Tanaka’ and the attribute value of an attribute name ‘age’ is ‘20 or more” is given. 
     The predicate schema prescribes a conversion rule in which an element number is associated with an attribute name and a type conversion function. In the example shown in  FIG. 13 , an element number ‘1’ is associated with an attribute name ‘blood type’ and a type conversion function, for example. The type conversion function corresponding to the element number ‘1’ converts the attribute value to 0 when the attribute value of the blood type is ‘O’, to 1 when the attribute value of the blood type is ‘A’, to 2 when the attribute value of the blood type is ‘B’, and to 3 when the attribute value of the blood type is ‘AB’. Element numbers ‘2’ and ‘3’ are associated with an attribute name ‘date of birth’ and type conversion functions. The type conversion functions corresponding to the element numbers ‘2’ and ‘3’ convert the year of the attribute value of the date of birth to the value of a hash function having the year as the input for the element number ‘2’ and the month and day of the attribute value of the date of birth to the value of the hash function having the month and day as the input for the element number ‘3’. 
     When the example predicate schema shown in  FIG. 13  is applied to the example predicate designation information shown in  FIG. 13 , example predicate information (vector information) shown in  FIG. 13  is obtained. Specifically, in this example, the predicate schema is applied to the predicate designation information to obtain a multivariate polynomial f having variables corresponding to the element numbers, and the multivariate polynomial f is converted to vector information to obtain predicate information (vector information). This process will be described below by using the example predicate designation information shown in  FIG. 13 . When the predicate schema is applied to the predicate designation information of ‘name=Taro 
     Tanaka AND age=20 or more’, the output value ‘Hash(Taro Tanaka)’ of the type conversion function corresponding to an element number ‘0’ and the output value ‘1’ of the type conversion function corresponding to an element number ‘23’ are obtained. A polynomial with a degree of one with respect to a variable X 0  corresponding to the element number ‘0’, which has the output value ‘Hash(Taro Tanaka)’ of the type conversion function corresponding to the element number ‘0’ as a zero, and a polynomial with a degree of one with respect to a variable X 23  corresponding to the element number ‘23’, which has the output value ‘1’ of the type conversion function corresponding to the element number ‘23’ as a zero, are linearly combined to obtain a multivariate polynomial f=r 1 (X 0 −H(Taro Tanaka))+r 2 (X 23 −1), where r 1  and r 2  are random numbers. Then, this multivariate polynomial f is expanded and the coefficients of the terms are arranged to convert the multivariate polynomial f to vector information. The example of the predicate information (vector information) shown in  FIG. 13  is thus obtained. 
     In general, according to the functional encryption, a plurality of pieces of predicate information can be designated at the time of encryption. For example, a predicate schema is applied to a plurality of pieces of predicate designation information, whereby a plurality of pieces of predicate information can be obtained. Alternatively, a plurality of predicate schemas may be applied to one piece of predicate designation information, whereby a plurality of pieces of predicate information may be obtained. 
     In the above description, the outputs of the type conversion functions are integers or the output values of the hash function. In reality, the outputs of the type conversion functions depend on the predicate encryption algorithm and are, for example, elements of the finite field F q . 
     Both schemas constituting a schema pair need to have the same combinations of attribute names and type conversion functions, the same data types of attribute values to be input, and the like. 
     The policy list will be described next with reference to  FIG. 14 . Information that identifies either the attribute schema or the predicate schema is called policy information (hereafter called just policy). A data list in which the policy is written is called a policy list. When the key generation apparatus  20  uses both the attribute schema and the predicate schema, two types of policies are prepared: Cipher_Text_Policy and Key_Policy. When the key generation apparatus  20  uses only the attribute schema, just one type of policy is prepared: Key_Policy. When the key generation apparatus  20  uses only the predicate schema, just one type of policy is prepared: Cipher_Text_Policy. The policy is written, for example, with XML (the eXtensible Markup Language) or ASN.1 (the Abstract Notation Number One). The key generation apparatus  20  can freely determine the policy target: only the attribute schema, only the predicate schema, or both the attribute schema and the predicate schema. 
     In general, according to the functional encryption, as described above, the plurality of different attribute schemas are applied to one piece of attribute designation information, whereby the plurality of pieces of attribute information can be obtained. In such a case, the plurality of attribute schemas are designated in advance as the policy. The plurality of different predicate schemas are applied to one piece of predicate designation information, whereby the plurality of pieces of predicate information can be obtained. In such a case, the plurality of predicate schemas are designated in advance as the policy. 
     After the process of step S 1 , a transmitter unit of the key generation apparatus  20  sends the entry to the authentication apparatus  90 , and a receiver unit of the authentication apparatus  90  receives the entry (step S 2 ). A signature assigning unit (not shown) of the authentication apparatus  90  assigns an electronic signature to the entry with, for example, a conventional method (step S 3 ), a transmitter unit of the authentication apparatus  90  sends the entry with the signature to the key generation apparatus  20 , and a receiver unit of the key generation apparatus  20  receives the entry with the signature (step S 4 ). Then, the transmitter unit of the key generation apparatus  20  sends the entry with the signature to the maintenance apparatus  80 , and a receiver unit of the maintenance apparatus  80  receives the entry with the signature (step S 5 ). 
     A transmitter unit of the maintenance apparatus  80  sends a search query, which includes information (such as address) identifying the key generation apparatus  20 , to the registration apparatus  50 , and a receiver unit of the registration apparatus  50  receives the search query (step S 6 ). A searching unit (not shown) of the registration apparatus  50  searches for the registered content (entry) concerning the key generation apparatus  20  (step S 7 ), a transmitter unit of the registration apparatus  50  sends a search result, which includes whether registration has been made and the registered content, to the maintenance apparatus  80 , and the receiver unit of the maintenance apparatus  80  receives the search result (step S 8 ). 
     A checking unit (not shown) of the maintenance apparatus  80  compares the entry with the signature received in the process of step S 5  with the search result received in the process of step S 8  to check if the entry has already been registered (step S 9 ). If it is determined that the entry has not yet been registered, the transmitter unit of the maintenance apparatus  80  sends the entry with the signature to the registration apparatus  50 , and the receiver unit of the registration apparatus  50  receives the entry with the signature (step S 10 ). A registration unit (not shown) of the registration apparatus  50  stores the entry with the signature in a storage unit of the registration apparatus  50  in association with the key generation apparatus  20  (step S 11 ). The transmitter unit of the registration apparatus  50  sends the registration result to the maintenance apparatus  80 , and the receiver unit of the maintenance apparatus  80  receives the registration result (step S 12 ). The transmitter unit of the maintenance apparatus  80  sends the registration result to the key generation apparatus  20 , and the key generation apparatus  20  receives the registration result (step S 13 ). 
     When a plurality of key generation apparatuses  20  are provided, each of the plurality of key generation apparatuses  20  separately performs the processes of step S 1  to step S 13 . For example, each key generation apparatus specifies a public parameter and a private key. However, this does not prevent each key generation apparatus from having a common public parameter and a common private key. The key generation apparatuses may register their entries in the same registration apparatus  50  or in different registration apparatuses  50 . 
     When the private key and the entry are specified in advance and the entry is registered in the registration apparatus  50  in advance, the processes from step S 1  to step S 13  may be omitted. 
     The authentication apparatus  90  and the maintenance apparatus  80  may be the same hardware entity. The cryptographic system  1  may have a system structure having no maintenance apparatus  80 , no authentication apparatus  90 , or no maintenance apparatus  80  and no authentication apparatus  90  when authentication is not required for registering an entry or when it is guaranteed unity of the entry is registered in the registration apparatus  50 . 
     The description of &lt;&lt;the preparation process&gt;&gt; ends here. 
     &lt;&lt;Encryption Process&gt;&gt; 
     Under the control of a controller unit, not shown, a transmitter unit  14  of the encryption apparatus  10  sends a search query to the registration apparatus  50 , and the receiving unit of the registration apparatus  50  receives the search query (step S 14 ). The searching unit of the registration apparatus  50  searches some or all of the entries registered in the storage unit of the registration apparatus  50  and chooses any one entry (step S 15 ). The transmitter unit of the registration apparatus  50  sends the entry to the encryption apparatus  10 , and a receiver unit of the encryption apparatus  10  receives the entry (step S 16 ). This entry includes the address of the key generation apparatus, the public parameter of the key generation apparatus, the policy list that can be used by the key generation apparatus, and the schema list that can be used by the key generation apparatus. The received entry is stored in a memory  11  of the encryption apparatus  10 . 
     When the encryption apparatus  10  has the public parameter, schema list, policy list, and address of each key generation apparatus  20  in advance, the processes of steps S 14  to S 16  are omitted. It should be noted that the cryptographic system  1  may have no registration apparatus  50 . 
     A first predicate logic information acquisition unit  12  of the encryption apparatus  10  reads the input information, the policy, and the schemas from the memory  11  and obtains attribute information (hereafter called first attribute information) and predicate information (hereafter called first predicate information) (step S 17   a ). Details of this process will be described below with reference to  FIGS. 12 and 13 . 
     When the schema list has a plurality of schema pairs, one schema pair is selected based on the usage or the like. The user of the encryption apparatus  10  may select a schema pair and input designation information thereof. Alternatively, the first predicate logic information acquisition unit  12  may select a schema pair according to a predetermined rule. 
     According to whether the input information is attribute designation information or predicate designation information, one of the schemas is selected together with the policy. The user of the encryption apparatus  10  may select the policy and one of the schemas and input designation information thereof. Alternatively, the first predicate logic information acquisition unit  12  may select the policy and one of the schemas according to a predetermined rule. When only one type of policy is prepared in the key generation apparatus  20 , one schema of the schema pair is selected according to the policy. If the selected schema does not correspond to the type of the input information, a schema pair needs to be selected again from the schema list or an entry needs to be provided by the registration apparatus  50  again. 
     The input information may be information inputted by the user of the encryption apparatus  10  or information acquired by an acquisition unit (not shown) of the encryption apparatus  10  from a storage medium such as an IC card  39 . 
     Then, the first predicate logic information acquisition unit  12  uses the schema selected from the schema pair according to the policy to obtain the first attribute information or the first predicate information from the input information. When the policy is Key_Policy and the selected schema is an attribute schema, the first attribute information is obtained. When the policy is Cipher_Text_Policy and the selected schema is a predicate schema, the first predicate information is obtained. The first attribute information and the first predicate information are one or a plurality of vector information having elements of the finite field F q  as components in the first embodiment according to the first aspect (see  FIGS. 11 to 13 ). The schema is used to extract or arrange necessary attribute values from the input information. 
     Next, an encryption unit  13  of the encryption apparatus  10  uses the first attribute information v=(v 1 , . . . , v n ) or the first predicate information w=(w 1 , . . . , w n ), an orthogonal basis B (substantial public key) included in the public parameter read from the memory  11 , and plaintext M to obtain a common key K, encryption information C 1 , and ciphertext C 2  (steps S 17   b  and S 17   c ). Details of these processes will be described below. When the first embodiment of the first aspect is dedicated to the delivery of the common key K, it is not necessary to generate the ciphertext C 2 . 
     A first encryption unit  13   a  generates random numbers r and ρ which are elements of the finite field Fq according to the predicate encryption algorithm, specifies the common key K as shown by Expression (7), and obtains the encryption information C 1  according to Expression (8) (step S 17   b ), where H indicates, for example, a hash function. In this example, the first attribute information v is used. To use the first predicate information, v needs to be replaced with w in Expression (8). In this example, the encryption information C 1  corresponds to ρ used to generate the common key K. The encryption information C 1  may correspond to the common key K. 
     
       
         
           
             
               
                 
                   K 
                   = 
                   
                     H 
                     ⁡ 
                     
                       ( 
                       
                         g 
                         T 
                         ρ 
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   7 
                   ) 
                 
               
             
             
               
                 
                   
                     C 
                     1 
                   
                   = 
                   
                     
                       r 
                       ⁢ 
                       
                         
                           ∑ 
                           
                             i 
                             = 
                             1 
                           
                           n 
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           
                             v 
                             i 
                           
                           ⁢ 
                           
                             b 
                             i 
                           
                         
                       
                     
                     + 
                     
                       ρ 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         b 
                         
                           n 
                           + 
                           1 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   8 
                   ) 
                 
               
             
           
         
       
     
     Next, the second encryption unit  13   b  uses the common key K and the plaintext M to obtain the ciphertext C 2  according to Expression (9) (step S 17   c ). An encryption method Enc k  that uses the private key can be a known method. For example, it may be the method disclosed in Non-patent literature 1. As described earlier, when the first embodiment of the first aspect is dedicated to the delivery of the common key K, the process of step S 17   c  is omitted. In other words, the encryption apparatus  10  has even the function of the second encryption unit  13   b  but does not perform the process of step S 17   c.  
 
 C   2   =Enc   K ( M )  (9)
 
     Next, under the control of the controller unit, the transmitter unit  14  of the encryption apparatus  10  generates an encrypted message that includes the encryption information C 1  and the ciphertext C 2  (if necessary), together with the schema pair, the policy, the public parameter, and the address of the key generation apparatus read from the memory  11  (step S 17   d ). The transmitter unit  14  of the encryption apparatus  10  then sends the encrypted message to the decryption apparatus  30 , and a receiver unit of the decryption apparatus  30  receives the encrypted message (step S 18 ). 
     The description of &lt;&lt;the encryption process&gt;&gt; ends here. 
     &lt;&lt;Decryption Process&gt;&gt; 
     Under the control of a controller unit, not shown, a transmitter unit  34  of the decryption apparatus  30  sends a search query that includes the address of the key generation apparatus, the address being included in the encrypted message, to the registration apparatus  50 , and the receiving unit of the registration apparatus  50  receives the search query (step S 19 ). The searching unit of the registration apparatus  50  searches for the entry of the key generation apparatus specified by the address and selects it (step S 20 ). The transmitter unit of the registration apparatus  50  sends the entry of the search result to the decryption apparatus  30 , and the receiver unit of the decryption apparatus  30  receives the entry (step S 21 ). This entry includes the address of the key generation apparatus, the public parameter of the key generation apparatus, the policy list that can be used by the key generation apparatus, and the schema list that can be used by the key generation apparatus. The received entry is stored in a memory  31  of the decryption apparatus  30 . 
     When the decryption apparatus  30  has the public parameter, schema list, policy list, and address of each key generation apparatus  20  in advance, the processes of steps S 19  to S 21  are omitted. In that case, the decryption apparatus  30  searches the memory  31  for the entry of the key generation apparatus corresponding to the address included in the encrypted message and retrieves it. 
     Under the control of the controller unit, a verification unit (not shown) of the decryption apparatus  30  verifies that the schema pair and the policy included in the encrypted message are included in the schema list and the policy list included in the entry obtained from the registration apparatus  50  (step S 22   a ). If this verification fails, the process ends with a decryption processing failure (step S 22   g ). 
     When the verification succeeds, an acquisition unit  32  of the decryption apparatus  30  reads the attribute designation information or the predicate designation information corresponding to the user of the decryption apparatus  30  from a storage medium such as the IC card  39  (step S 22   f ). Whether the attribute designation information or the predicate designation information is read depends on the policy included in the encrypted message. More specifically, the read designation information corresponds to the content of the policy identifying one schema paired with the other schema identified by the policy included in the encrypted message. When the policy is Cipher_Text_Policy, the acquisition unit  32  reads the attribute designation information from the storage medium. When the policy is Key_Policy, the acquisition unit  32  reads the predicate designation information from the storage medium. The read designation information is hereafter called user information. The acquisition unit  32  of the decryption apparatus  30  may read from the management apparatus  40  the attribute designation information or the predicate designation information corresponding to the user of the decryption apparatus  30 , in the same way as in &lt;&lt;a user information acquisition process&gt;&gt; in the key generation apparatus  20 , described later. In the first embodiment of the first aspect, the process of step S 22   f  may be omitted. When the decryption apparatus  30  has the attribute designation information and the predicate designation information corresponding to the user in advance, either the attribute designation information or the predicate designation information serves as user information, according to the policy. 
     Next, the verification unit of the decryption apparatus  30  verifies that the decryption apparatus  30  has the decryption key to be used to decrypt the encryption information included in the encryption message (step S 22   b ). 
     The decryption apparatus  30  stores a decryption key table in the memory  31 . In the decryption key table, as shown in  FIG. 15 , for example, the identifier of each key generation apparatus is associated with the public parameter, the schema pair, the decryption key target, the predicate designation information, and the decryption key. The verification unit verifies that the decryption apparatus  30  has the decryption key corresponding to the identifier of the key generation apparatus determined from the address included in the encrypted message, to the public parameter, to the schema pair, and to the decryption key target (corresponding to the content of the policy identifying one schema paired with the other schema identified by the policy included in the encrypted message). When the decryption apparatus  30  has the decryption key, the process of step S 29  will be performed. If the decryption apparatus  30  does not have the decryption key, the process of step S 23  will be performed. 
     The description of &lt;&lt;the decryption process&gt;&gt; is temporarily halted here and &lt;&lt;a key generation process&gt;&gt; will be described below, 
     If the decryption apparatus  30  does not have the decryption key, the transmitter unit  34  of the decryption apparatus  30  generates, under the control of the controller unit, a key request message that includes the public parameter, the policy, the schema pair, the user information (if any), and the authentication information, all of these items being read from the memory  31 . The authentication information includes, for example, the ID of the user and a password. The transmitter unit  34  of the decryption apparatus  30  sends the key request message to the key generation apparatus having the address read from the memory  31 , and the receiver unit of the key generation apparatus  20  receives the key request message (step S 23 ). The received key request message is stored in a memory  21  of the key generation apparatus  20 . 
     Under the control of a controller unit, a verification unit (not shown) of the key generation apparatus  20  verifies that the schema pair and the policy included in the key request message are included in the schema list and the policy list included in the entry owned by the key generation apparatus  20  (for example, the entry generated in step S 1 ) and that the public parameter included in the key request message is identical to the public parameter of the key generation apparatus  20  (step S 24   a ). If this verification fails, the process ends with a key generation process failure (step S 24   g ). When the authentication information is included in the key request message, the authentication information is also verified in the process of step S 24   a . The key generation apparatus  20  stores an authentication table in the memory  21 . In the authentication table, as shown in  FIG. 16 , for example, each user ID is associated with a password. The verification unit verifies that the user ID and the password included in the key request message are identical to the user ID and the password included in the authentication table. If the verification fails, the process of step S 24   g  is performed. 
     When this verification succeeds, the verification unit of the key generation apparatus  20  verifies that the key request message includes the user information (step S 24   b ). When the key request message includes the user information, the process of step S 24   c  will be performed. If the key request message does not include the user information, the process of step S 25  will be performed. When a method is employed in which a key request message always includes user information, the process of step S 24   b  and &lt;&lt;a user information acquisition process&gt;&gt;, described later, are unnecessary. 
     The description of &lt;&lt;the key generation process&gt;&gt; is temporarily halted here and &lt;&lt;the user information acquisition process&gt;&gt; will be described below. 
     The transmitter unit  24  of the key generation apparatus  20  sends a request that includes the policy and the authentication information (if any) included in the key request message to the management apparatus  40 , and the management apparatus  40  receives the request (step S 25 ). The received request is stored in a memory of the management apparatus  40 . 
     The management apparatus  40  stores an authentication table in the memory. In the same way as in the authentication table described above, the user ID is associated with the password in this authentication table (see  FIG. 16 ). A verification unit (not shown) of the management apparatus  40  verifies that the user ID and the password included in the request are identical to the user ID and the password included in the authentication table. 
     When this verification succeeds, a searching unit (not shown) of the management apparatus  40  searches a user information table stored in the memory for the attribute designation information or the predicate designation information according to the policy included in the request (step S 26 ). The user information table includes, for example, a first table formed of each user ID, and an attribute name and attribute designation information associated with the user ID, and a second table formed of the user ID and predicate designation information associated with the user ID (see  FIG. 17 ). Whether the attribute designation information or the predicate designation information is read is determined by the policy included in the request. More specifically, the read information corresponds to the content of one policy identifying the schema paired with the other schema identified by the policy included in the request. When the policy is Cipher_Text_Policy, the searching unit reads the attribute designation information corresponding to the user ID included in the request from the first table. When the policy is Key_Policy, the searching unit reads the predicate designation information corresponding to the user ID included in the request from the second table. The read designation information is hereafter called user information. 
     Under the control of a controller unit, a transmitter unit of the management apparatus  40  sends the user information to the key generation apparatus  20 , and the receiver unit of the key generation apparatus  20  receives the user information (step S 27 ). The received user information is stored in the memory  21  of the key generation apparatus  20 . 
     The description of &lt;&lt;the user information acquisition process&gt;&gt; ends here, and the description of &lt;&lt;the key generation process&gt;&gt; will be resumed. 
     When the key generation apparatus  20  already has the user information or receives the user information through the user information acquisition process (step S 27 ), a second predicate logic information acquisition unit  23  of the key generation apparatus  20  reads the policy, the schema pair, the public parameter, and the user information from the memory  21 , and obtains attribute information (hereafter called second attribute information) or predicate information (second predicate information) from the user information (step S 24   c ). In this process, the schema paired with the schema identified by the policy is applied to the user information. When the policy is Cipher_Text_Policy, the schema (attribute schema) paired with the schema (predicate schema) identified by Cipher_Text_Policy is used to obtain the second attribute information from the user information (attribute designation information). When the policy is Key_Policy, the schema (predicate schema) paired with the schema (attribute schema) identified by Key_Policy is used to obtain the second predicate information from the user information (predicate designation information). It should be noted that the schema paired with the schema used in step S 17   a  is used in this process. In the first embodiment of the first aspect, the second attribute information and the second predicate information are one or a plurality of vector information having elements of the finite field F q  as components (see  FIGS. 11 to 13 ). 
     The schema is used to extract and arrange necessary attribute values from the input information. 
     Next, a key generation unit  25  of the key generation apparatus  20  generates a random number α that is an element of the finite field F q , based on the public parameter q according to the predicate encryption algorithm, and uses the random number α, the second attribute information v (p) =(V (p)1 , . . . , V (p)n ) or the second predicate information w (p) =(w (p)1 , . . . , w (p)n ) read from the memory  21 , and a private key B* of the key generation apparatus to obtain a decryption key R according to Expression (10) (step S 24   d ). The second predicate information w (p)  is used in this example because the input information used in the encryption process is the attribute designation information. When the input information is the predicate designation information, the second attribute information v (p)  is used. Therefore, w (p)  needs to be replaced with v (p)  in Expression (10). 
     
       
         
           
             
               
                 
                   R 
                   = 
                   
                     
                       α 
                       ⁢ 
                       
                         
                           ∑ 
                           
                             i 
                             = 
                             1 
                           
                           n 
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           
                             w 
                             
                               
                                 ( 
                                 p 
                                 ) 
                               
                               ⁢ 
                               i 
                             
                           
                           ⁢ 
                           
                             b 
                             i 
                             * 
                           
                         
                       
                     
                     + 
                     
                       b 
                       
                         n 
                         + 
                         1 
                       
                       * 
                     
                   
                 
               
               
                 
                   ( 
                   10 
                   ) 
                 
               
             
           
         
       
     
     Next, under the control of the controller unit, the transmitter unit  24  of the key generation apparatus  20  sends the decryption key R to the decryption apparatus  30 , and the receiver unit of the decryption apparatus  30  receives the decryption key R (step S 28 ). The received decryption key R is stored in the memory  31  of the decryption apparatus  30 . 
     The description of &lt;&lt;the key generation process&gt;&gt; ends here, and the description of &lt;&lt;the decryption process&gt;&gt; will be resumed. 
     When the decryption apparatus  30  already has the decryption key or receives the decryption key through the key generation process (step S 28 ), a decryption unit  33  of the decryption apparatus  30  reads the public parameter, the decryption key R, the encryption information C 1 , and the ciphertext C 2  (if necessary) from the memory  31 , and obtains the common key K and the plaintext M (if necessary) (step S 29 ). 
     Details of the process in step S 29  will be described below. A first decryption unit  33   a  reads the public parameter, the decryption key R, and the encryption information C 1  from the memory  31 , and obtains e(C 1 , R) according to the predicate encryption algorithm. As shown in Expression (11), the calculation result depends on the result of the canonical inner product of the first attribute information v and the second predicate information w (p)  taken out from the encryption information C 1  and the decryption key R according to bilinearity when the input information is the attribute designation information. When the input information is the predicate designation information, v needs to be replaced with v (p)  and w (p)  needs to be replaced with w in Expression (11). The calculation result depends on the result of the canonical inner product of the first predicate information w and the second attribute information v (p)  taken out from the encryption information C 1  and the decryption key R according to bilinearity. In Expression (11), e(b i , b i *) is defined as shown in Expression (12), where δ ij  is the Kronecker&#39;s delta symbol. 
     
       
         
           
             
               
                 
                   
                     
                       
                         
                           
                             e 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   C 
                                   1 
                                 
                                 , 
                                 R 
                               
                               ) 
                             
                           
                           = 
                             
                           ⁢ 
                           
                             
                               e 
                               ( 
                               
                                 
                                   r 
                                   ⁢ 
                                   
                                     
                                       ∑ 
                                       
                                         i 
                                         = 
                                         1 
                                       
                                       n 
                                     
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     
                                       
                                         v 
                                         i 
                                       
                                       ⁢ 
                                       
                                         b 
                                         i 
                                       
                                     
                                   
                                 
                                 , 
                                 R 
                               
                               ) 
                             
                             · 
                             
                               e 
                               ⁡ 
                               
                                 ( 
                                 
                                   
                                     ρ 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     
                                       b 
                                       
                                         n 
                                         + 
                                         1 
                                       
                                     
                                   
                                   , 
                                   R 
                                 
                                 ) 
                               
                             
                           
                         
                       
                     
                     
                       
                         
                           = 
                             
                           ⁢ 
                           
                             
                               ∏ 
                               
                                 i 
                                 = 
                                 1 
                               
                               n 
                             
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               
                                 
                                   e 
                                   ⁡ 
                                   
                                     ( 
                                     
                                       
                                         b 
                                         i 
                                       
                                       , 
                                       
                                         b 
                                         i 
                                         * 
                                       
                                     
                                     ) 
                                   
                                 
                                 
                                   r 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   α 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   
                                     v 
                                     i 
                                   
                                   ⁢ 
                                   
                                     w 
                                     
                                       
                                         ( 
                                         p 
                                         ) 
                                       
                                       ⁢ 
                                       i 
                                     
                                   
                                 
                               
                               · 
                               
                                 
                                   e 
                                   ⁡ 
                                   
                                     ( 
                                     
                                       
                                         b 
                                         
                                           n 
                                           + 
                                           1 
                                         
                                       
                                       , 
                                       
                                         b 
                                         
                                           n 
                                           + 
                                           1 
                                         
                                         * 
                                       
                                     
                                     ) 
                                   
                                 
                                 ρ 
                               
                             
                           
                         
                       
                     
                     
                       
                         
                           = 
                             
                           ⁢ 
                           
                             
                               
                                 g 
                                 T 
                                 
                                   r 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   α 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   
                                     
                                       Σ 
                                       
                                         i 
                                         = 
                                         1 
                                       
                                     
                                     n 
                                   
                                   ⁢ 
                                   
                                     v 
                                     i 
                                   
                                   ⁢ 
                                   
                                     w 
                                     
                                       
                                         ( 
                                         p 
                                         ) 
                                       
                                       ⁢ 
                                       i 
                                     
                                   
                                 
                               
                               
                                   
                               
                             
                             · 
                             
                               g 
                               T 
                               ρ 
                             
                           
                         
                       
                     
                     
                       
                         
                           = 
                             
                           ⁢ 
                           
                             
                               g 
                               T 
                               
                                 r 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 α 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 
                                   v 
                                   · 
                                   
                                     w 
                                     
                                       ( 
                                       p 
                                       ) 
                                     
                                   
                                 
                               
                             
                             · 
                             
                               g 
                               T 
                               ρ 
                             
                           
                         
                       
                     
                   
                   ⁢ 
                   
                     
 
                   
                 
               
               
                 
                   ( 
                   11 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       
                         
                           e 
                           ⁡ 
                           
                             ( 
                             
                               
                                 b 
                                 i 
                               
                               , 
                               
                                 b 
                                 j 
                                 * 
                               
                             
                             ) 
                           
                         
                         = 
                           
                         ⁢ 
                         
                           
                             ∏ 
                             
                               j 
                               = 
                               1 
                             
                             
                               n 
                               + 
                               1 
                             
                           
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             e 
                             ( 
                             
                               
                                 g 
                                 1 
                                 
                                   χ 
                                   ij 
                                 
                               
                               , 
                               
                                 g 
                                 2 
                                 
                                   χ 
                                   ij 
                                   * 
                                 
                               
                             
                             ) 
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                         ⁢ 
                         
                           g 
                           T 
                           
                             
                               
                                 Σ 
                                 
                                   j 
                                   = 
                                   1 
                                 
                               
                               
                                 n 
                                 + 
                                 1 
                               
                             
                             ⁢ 
                             
                               χ 
                               ij 
                             
                             ⁢ 
                             
                               χ 
                               ij 
                               * 
                             
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                         ⁢ 
                         
                           g 
                           T 
                           
                             
                               x 
                               i 
                             
                             · 
                             
                               T 
                               
                                 x 
                                 j 
                               
                               * 
                             
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                         ⁢ 
                         
                           g 
                           T 
                           
                             δ 
                             ij 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   12 
                   ) 
                 
               
             
           
         
       
     
     Therefore, when the canonical inner product of the first attribute information v and the second predicate information w (p)  is zero (or when the canonical inner product of the first predicate information w and the second attribute information v (p)  is zero), the result of calculation in Expression (11), g T   ρ , is obtained. When the result of calculation, g T   ρ , is obtained, the first decryption unit  33   a  of the decryption apparatus  30  obtains the common key K, which is correct, according to Expression (7) (step S 22   c ). When the canonical inner product of the first attribute information v and the second predicate information w (p)  is not zero (or when the canonical inner product of the first predicate information w and the second attribute information v (p)  is not zero), the first decryption unit  33   a  obtains an incorrect value according to Expression (7). In this example, it is assumed that the hash function H is common to the system or is included in the public parameter. The encryption information C 1  corresponds to the information ρ used to generate the common key K in this example. When encryption information C 1  corresponds to the common key K, the result of calculation in Expression (11) is the common key K (or incorrect value). In other words, an authorized user of the decryption apparatus  30  has predicate designation information that gives the second predicate information w (p)  which makes the canonical inner product with the first attribute information v zero, or attribute designation information that gives the second attribute information v (p)  which makes the canonical inner product with the first predicate information w zero. 
     Then, a second decryption unit  33   b  uses the common key K and the ciphertext C 2  to calculate plaintext M according to Expression (13) (step S 22   d ). A decryption method Dec K  that uses the private key corresponds to the encryption method Enc K . As described earlier, when the first embodiment of the first aspect is dedicated to the delivery of the common key K, the process of step S 22   d  is omitted. More specifically, even if the decryption apparatus  30  has the function of the second decryption unit  33   b , it does not perform the process of step S 22   d.  
 
 M=Dec   K ( C   2 )  (13)
 
     If the result of calculation in Expression (11) is an incorrect value, the correct plaintext M cannot be obtained by Expression (13). 
     The decryption apparatus  30  may store the decryption key R in the decryption key table. In addition, the decryption apparatus  30  may store the common key K in the decryption key table. 
     The description of &lt;&lt;the decryption process&gt;&gt; ends here. 
     (Second Embodiment According to First Aspect) 
     A second embodiment of the first aspect differs from the first embodiment of the first aspect in that the decryption apparatus  30  generates the second attribute information or the second predicate information. Because of this difference, the second embodiment of the first aspect differs in several points from the first embodiment of the first aspect. A description of commonalities between the first and second embodiments of the first aspect is omitted (the same reference numerals are assigned to the same components), and a description of the differences from the first embodiment of the first aspect will be made with reference to  FIGS. 18 to 21 . 
     The processes of steps S 1  to S 22   b  are the same as those in the first embodiment of the first aspect. 
     When the decryption key is not possessed in the process of step S 22   b , a second predicate logic information acquisition unit  35  of the decryption apparatus  30  reads the policy, the schema pair, the public parameter, and the user information from the memory  31  and obtains attribute information (called second attribute information) or predicate information (called second predicate information) from the user information (step S 23   g ). In this process, the schema paired with the schema identified by the policy is applied to the user information. When the policy is Cipher_Text_Policy, the schema (attribute schema) paired with the schema (predicate schema) identified by Cipher_Text_Policy is used to obtain the second attribute information from the user information (attribute designation information). When the policy is Key_Policy, the schema (predicate schema) paired with the schema (attribute schema) identified by Key_Policy is used to obtain the second predicate information from the user information (predicate designation information). It should be noted that the schema paired with the schema used in step S 17   a  is used in this process. In the second embodiment of the first aspect, the second attribute information and the second predicate information are one or a plurality of vector information having elements of the finite field F q  as components (see  FIGS. 11 to 13 ). 
     After the process of step S 23   g , the process of step  23  is performed. In this process, the transmitter unit  34  of the decryption apparatus  30  generates a key request message that includes the public parameter, the policy, the schema pair, and the authentication information read from the memory  31 , and the second attribute information or the second predicate information, under the control of the controller unit. The transmitter unit  34  of the decryption apparatus  30  sends the key request message to the key generation apparatus having the address read from the memory  31 , and the receiver unit of the key generation apparatus  20  receives the key request message. 
     When the verification succeeds in the process of step S 24   a , the process of step S 24   d  is performed. Since the key generation apparatus  20  has received the second attribute information or the second predicate information from the decryption apparatus  30 , the function and the process for generating the information are unnecessary, unlike in the first embodiment of the first aspect. 
     The processes of steps S 28  and S 29 , to be performed after the process of step S 24   d , are the same as those in the first embodiment of the first aspect. 
     (Third Embodiment According to First Aspect) 
     A third embodiment of the first aspect differs from the first embodiment of the first aspect in that the encryption unit  13  of the encryption apparatus  10  uses the first attribute information v=(v 1 , . . . , v n ) or the first predicate information w=(w 1 , . . . , w n ), together with the public key included in the public parameter and the plaintext M read from the memory  11 , to obtain encryption information C 1 . In other words, the predicate encryption algorithm disclosed in Non-patent literature 2, for example, is used in the third embodiment of the first aspect. Because of this difference, the third embodiment of the first aspect differs in several points from the first embodiment of the first aspect. A description of commonalities between the first and third embodiments of the first aspect is omitted (the same reference numerals are assigned to the same components), and a description of the differences from the first embodiment of the first aspect will be made with reference to  FIGS. 22 to 25 . 
     The processes of steps S 1  to S 17   a  are the same as those in the first embodiment of the first aspect. The public parameter and some other information are required by the predicate encryption algorithm of the third embodiment of the first aspect. For specific information required, see Non-patent literature 2, described above, for example. 
     In the process of step S 17   b   1 , following the process of step S 17   a , the encryption unit  13  of the encryption apparatus  10  uses the first attribute information v=(v 1 , . . . , v n ) or the first predicate information w=(w 1 , . . . , w n ), together with the public key included in the public parameter and the plaintext M read from the memory  11 , to obtain encryption information C 1  according to the predicate encryption algorithm (step S 17   b   1 ). 
     After the process of step S 17   b   1 , the process of step  17   d  is performed. In this process, the transmitter unit  14  of the encryption apparatus  10  generates an encrypted message that includes the encryption information C 1 , and the schema pair, the policy, the public parameter, and the address of the key generation apparatus read from the memory  31 , under the control of the controller unit (step S 17   d ). 
     The processes of steps S 18  to S 28 , following the process of step S 17   d , are the same as those in the first embodiment of the first aspect. 
     In the process of step S 22   c   1 , following the process of step S 28 , the decryption unit  33  of the decryption apparatus  30  reads the public parameter, the decryption key R, and the encryption information C 1  from the memory  31  to calculate plaintext M according to the predicate encryption algorithm (step S 22   c   1 ). 
     (Fourth Embodiment According to First Aspect) 
     A fourth embodiment of the first aspect corresponds to a combination of the second embodiment of the first aspect and the third embodiment of the first aspect. The fourth embodiment of the first aspect differs from the first embodiment of the first aspect in that (1) the decryption apparatus  30  generates the second attribute information or the second predicate information, and (2) the encryption unit  13  of the encryption apparatus  10  uses the first attribute information v=(v 1 , . . . , y n ) or the first predicate information w=(w 1 , . . . , w n ), together with the public key included in the public parameter and the plaintext M read from the memory  11 , to obtain encryption information C 1 . Because of these differences, the fourth embodiment of the first aspect differs in several points from the first embodiment of the first aspect. A description of commonalities between the first and fourth embodiments of the first aspect is omitted (the same reference numerals are assigned to the same components), and a description of the differences from the first embodiment of the first aspect will be made with reference to  FIGS. 26 and 27 . 
     The processes of steps S 1  to S 17   a  are the same as those in the first embodiment of the first aspect. The public parameter and some other information are required by the predicate encryption algorithm of the fourth embodiment of the first aspect. For specific information required, see Non-patent literature 2, described above, for example. 
     In the process of step S 17   b   1 , following the process of step S 17   a , the encryption unit  13  of the encryption apparatus  10  uses the first attribute information v=(v 1 , . . . , v n ) or the first predicate information w=(w 1 , . . . , w n ), together with the public key included in the public parameter and the plaintext M read from the memory  11 , to obtain encryption information C 1  according to the predicate encryption algorithm (step S 17   b   1 ). 
     After the process of step S 17   b   1 , the process of step  17   d  is performed. In this process, the transmitter unit  14  of the encryption apparatus  10  generates an encrypted message that includes the encryption information C 1 , and the schema pair, the policy, the public parameter, and the address of the key generation apparatus read from the memory  31 , under the control of the controller unit (step S 17   d ). 
     The processes of steps S 18  to S 22   b , following the process of step S 17   d , are the same as those in the first embodiment of the first aspect. 
     When the decryption key is not possessed in the process of step S 22   b , the second predicate logic information acquisition unit  35  of the decryption apparatus  30  reads the policy, the schema pair, the public parameter, and the user information from the memory  31  and obtains attribute information (called second attribute information) or predicate information (called second predicate information) from the user information (step S 23   g ). In this process, the schema paired with the schema identified by the policy is applied to the user information. When the policy is Cipher_Text_Policy, the schema (attribute schema) paired with the schema (predicate schema) identified by Cipher_Text_Policy is used to obtain the second attribute information from the user information (attribute designation information). When the policy is Key_Policy, the schema (predicate schema) paired with the schema (attribute schema) identified by Key_Policy is used to obtain the second predicate information from the user information (predicate designation information). It should be noted that the schema paired with the schema used in step S 17   a  is used in this process. In the fourth embodiment of the first aspect, the second attribute information and the second predicate information are one or a plurality of vector information having elements of the finite field F q  as components (see  FIGS. 11 to 13 ). 
     After the process of step S 23   g , the process of step  23  is performed. In this process, the transmitter unit  34  of the decryption apparatus  30  generates a key request message that includes the public parameter, the policy, the schema pair, and the authentication information read from the memory  31 , and the second attribute information or the second predicate information, under the control of the controller unit. The transmitter unit  34  of the decryption apparatus  30  sends the key request message to the key generation apparatus having the address read from the memory  31 , and the receiver unit of the key generation apparatus  20  receives the key request message. 
     When the verification succeeds in the process of step S 24   a , the process of step S 24   d  is performed. Since the key generation apparatus  20  has received the second attribute information or the second predicate information from the decryption apparatus  30 , the function and the process for generating the information are unnecessary. 
     The process of step S 28 , following the process of step S 24   d , is the same as that in the first embodiment of the first aspect. 
     In the process of step S 22   c   1 , following the process of step S 28 , the decryption unit  33  of the decryption apparatus  30  reads the public parameter, the decryption key R, and the encryption information C 1  from the memory  31  to calculate plaintext M according to the predicate encryption algorithm (step S 22   c   1 ). 
     Embodiments according to a second aspect of the present invention, which relate to a cryptographic communication technology that can operate flexibly, that is based on predicate encryption, and that allows encryption information encrypted with the predicate encryption to be distributed will be described next while attention is being paid to the cryptographic communication technology of the first aspect, described above. Since a decryption apparatus has a transfer function in the cryptographic communication technology of the second aspect, encryption information encrypted with the predicate encryption can be distributed. 
     The description of the cryptographic communication technology of the second aspect and the description of the cryptographic communication technology of the first aspect have many substantial commonalities, but, to avoid referring to the description of the cryptographic communication technology of the first aspect, the cryptographic communication technology of the second aspect will be described below with overlapping explanations and figures being included as much as possible. Therefore, in both descriptions, identical expression numbers, identical reference numerals assigned to function blocks, and identical reference numerals assigned to steps are used. Because the contexts are different, there should be no risk of confusion. 
     (First Embodiment According to Second Aspect) 
     A first embodiment according to the second aspect of the present invention will be described below with reference to  FIG. 28  to  FIG. 41 . 
     As shown in  FIG. 28 , a cryptographic system  1  according to the second aspect includes a plurality of client apparatuses  10 ,  30 - 1 , and  30 - 2 , one or a plurality of key generation apparatuses  20 , one or a plurality of user information management apparatuses  40  (hereafter each called a management apparatus), conversion rule information pair management apparatuses  50  (hereafter each called a registration apparatus), one or a plurality of maintenance apparatuses  80 , and one or a plurality of authentication apparatuses  90 . These apparatuses can communicate with each other through a communication network  5 , such as the Internet. 
     The client apparatuses function as encryption apparatuses or decryption apparatuses based on their processing functions. In the light of their functions, the client apparatuses are called encryption apparatuses  10  or decryption apparatuses. The decryption apparatuses include a first decryption apparatus  30 - 1  serving as an apparatus for exchanging an encrypted message, described later, with the encryption apparatus  10  and a second decryption apparatus  30 - 2  that does not perform such an exchange. The cryptographic system  1  according to the second aspect may include client apparatuses that function only as encryption apparatuses and/or client apparatuses that function only as decryption apparatuses. 
     In the cryptographic system  1  according to the second aspect, encryption and decryption are performed using predicate encryption. In the second aspect of the present invention, the predicate encryption algorithm to be used is not limited, and the predicate encryption algorithm disclosed in Non-patent literature 2, for example, may be used. In the first embodiment of the second aspect, a predicate encryption algorithm of KEM (the key encapsulation mechanism) type will be used. 
     A cryptographic communication method used in the cryptographic system  1  according to the second aspect will be described with reference to  FIGS. 29 ,  30 ,  31 ,  32 ,  34 ,  36 ,  38 ,  40 , and  41 . See  FIGS. 33 ,  35 ,  37 , and  39  for the functional structure of each apparatus. 
     &lt;&lt;Preparation Process&gt;&gt; 
     The entire description of &lt;&lt;the preparation process&gt;&gt; in the first embodiment of the first aspect according to the present invention is incorporated here and a description of &lt;&lt;the preparation process&gt;&gt; is omitted. See  FIG. 29  for the preparation process,  FIGS. 11 to 13  for schema pairs, and  FIG. 14  for policy lists. The description of the preparation process ends here. 
     &lt;&lt;Encryption Process&gt;&gt; 
     Under the control of a controller unit, not shown, a transmitter unit  14  of the encryption apparatus  10  sends a search query to the registration apparatus  50 , and the receiving unit of the registration apparatus  50  receives the search query (step S 14 ). The searching unit of the registration apparatus  50  searches some or all of the entries registered in the storage unit of the registration apparatus  50  and chooses one entry (step S 15 ). The transmitter unit of the registration apparatus  50  sends the entry to the encryption apparatus  10 , and a receiver unit of the encryption apparatus  10  receives the entry (step S 16 ). This entry includes the address of the key generation apparatus, the public parameter of the key generation apparatus, the policy list that can be used by the key generation apparatus, and the schema list that can be used by the key generation apparatus. The received entry is stored in a memory  11  of the encryption apparatus  10 . 
     When the encryption apparatus  10  has the public parameter, schema list, policy list, and address of each key generation apparatus  20  in advance, the processes of steps S 14  to S 16  are omitted. It should be noted that the cryptographic system  1  may have no registration apparatus  50 . 
     A first predicate logic information acquisition unit  12  of the encryption apparatus  10  reads the input information, the policy, and the schemas from the memory  11  and obtains attribute information (hereafter called first attribute information) and predicate information (hereafter called first predicate information) (step S 17   a ). Details of this process will be described below with reference to  FIGS. 12 and 13 . 
     When the schema list has a plurality of schema pairs, one schema pair is selected based on the usage or the like. The user of the encryption apparatus  10  may select a schema pair and input designation information thereof. Alternatively, the first predicate logic information acquisition unit  12  may select a schema pair according to a predetermined rule. 
     According to whether the input information is attribute designation information or predicate designation information, one of the schemas is selected together with the policy. The user of the encryption apparatus  10  may select the policy and one of the schemas and input designation information thereof. Alternatively, the first predicate logic information acquisition unit  12  may select the policy and one of the schemas according to a predetermined rule. When only one type of policy is prepared in the key generation apparatus  20 , one schema of the schema pair is selected according to the policy. If the selected schema does not correspond to the type of the input information, a schema pair needs to be selected again from the schema list or an entry needs to be provided by the registration apparatus  50  again. 
     The input information may be information inputted by the user of the encryption apparatus  10  or information acquired by an acquisition unit (not shown) of the encryption apparatus  10  from a storage medium such as an IC card  39 . 
     Then, the first predicate logic information acquisition unit  12  uses the schema selected from the schema pair according to the policy to obtain the first attribute information or the first predicate information from the input information. When the policy is Key_Policy and the selected schema is an attribute schema, the first attribute information is obtained. When the policy is Cipher_Text_Policy and the selected schema is a predicate schema, the first predicate information is obtained. The first attribute information and the first predicate information are one or a plurality of vector information having elements of the finite field F q  as components in the first embodiment according to the second aspect (see  FIGS. 11 to 13 ). The schema is used to extract or arrange necessary attribute values from the input information. 
     Next, an encryption unit  13  of the encryption apparatus  10  uses the first attribute information v=(v 1 , . . . , v n ) or the first predicate information w=(w 1 , . . . , w n ), an orthogonal basis B (substantial public key) included in the public parameter read from the memory  11 , and plaintext M to obtain a common key K, encryption information C 1 , and ciphertext C 2  (steps S 17   b  and S 17   c ). Details of these processes will be described below. When the first embodiment of the second aspect is dedicated to the delivery of the common key K, it is not necessary to generate the ciphertext C 2 . 
     A first encryption unit  13   a  generates random numbers r and p which are elements of the finite field Fq according to the predicate encryption algorithm, specifies the common key K as shown by Expression (7), and obtains the encryption information C 1  according to Expression (8) (step S 17   b ), where H indicates, for example, a hash function. In this example, the first attribute information v is used. To use the first predicate information, v needs to be replaced with w in Expression (8). In this example, the encryption information C 1  corresponds to ρ used to generate the common key K. The encryption information C 1  may correspond to the common key K. 
     Next, the second encryption unit  13   b  uses the common key K and the plaintext M to obtain the ciphertext C 2  according to Expression (9) (step S 17   c ). An encryption method Enc k  that uses the private key can be a known method. For example, it may be the method disclosed in Non-patent literature 1. As described earlier, when the first embodiment of the second aspect is dedicated to the delivery of the common key K, the process of step S 17   c  is omitted. In other words, the encryption apparatus  10  has even the function of the second encryption unit  13   b  but does not perform the process of step S 17   c.    
     Next, under the control of the controller unit, the transmitter unit  14  of the encryption apparatus  10  generates an encrypted message that includes the encryption information C 1  and the ciphertext C 2  (if necessary), together with the schema pair, the policy, the public parameter, and the address of the key generation apparatus read from the memory  11  (step S 17   d ). The transmitter unit  14  of the encryption apparatus  10  then sends the encrypted message to the first decryption apparatus  30 - 1 , and a receiver unit of the first decryption apparatus  30 - 1  receives the encrypted message (step S 18 ). The encryption apparatus  10  is allowed to send an encrypted message to a plurality of first decryption apparatuses  30 - 1 . 
     The description of &lt;&lt;the encryption process&gt;&gt; ends here. 
     &lt;&lt;First Decryption Process&gt;&gt; 
     Under the control of a controller unit, not shown, a transmitter unit  34  of the first decryption apparatus  30 - 1  sends a search query that includes the address of the key generation apparatus, the address being included in the encrypted message, to the registration apparatus  50 , and the receiving unit of the registration apparatus  50  receives the search query (step S 19 ). The searching unit of the registration apparatus  50  searches for the entry of the key generation apparatus specified by the address and selects it (step S 20 ). The transmitter unit of the registration apparatus  50  sends the entry of the search result to the first decryption apparatus  30 - 1 , and the receiver unit of the first decryption apparatus  30 - 1  receives the entry (step S 21 ). This entry includes the address of the key generation apparatus, the public parameter of the key generation apparatus, the policy list that can be used by the key generation apparatus, and the schema list that can be used by the key generation apparatus. The received entry is stored in a memory  31  of the first decryption apparatus  30 - 1 . 
     When the first decryption apparatus  30 - 1  has the public parameter, schema list, policy list, and address of each key generation apparatus  20  in advance, the processes of steps S 19  to S 21  are omitted. In that case, the first decryption apparatus  30 - 1  searches the memory  31  for the entry of the key generation apparatus corresponding to the address included in the encrypted message and retrieves it. 
     Under the control of the controller unit, a verification unit (not shown) of the first decryption apparatus  30 - 1  verifies that the schema pair and the policy included in the encrypted message are included in the schema list and the policy list included in the entry obtained from the registration apparatus  50  (step S 22   a ). If this verification fails, the process ends with a decryption processing failure (step S 22   g ). 
     When the verification succeeds, an acquisition unit  32  of the first decryption apparatus  30 - 1  reads the attribute designation information or the predicate designation information corresponding to the user of the first decryption apparatus  30 - 1  from a storage medium such as the IC card  39  (step S 22   f ). Whether the attribute designation information or the predicate designation information is read depends on the policy included in the encrypted message. More specifically, the read designation information corresponds to the content of the policy identifying one schema paired with the other schema identified by the policy included in the encrypted message. When the policy is Cipher_Text_Policy, the acquisition unit  32  reads the attribute designation information from the storage medium. When the policy is Key_Policy, the acquisition unit  32  reads the predicate designation information from the storage medium. The read designation information is hereafter called user information. The acquisition unit  32  of the first decryption apparatus  30 - 1  may read from the management apparatus  40  the attribute designation information or the predicate designation information corresponding to the user of the first decryption apparatus  30 - 1 , in the same way as in &lt;&lt;a user information acquisition process&gt;&gt; in the key generation apparatus  20 , described later. In the first embodiment of the second aspect, the process of step S 22   f  may be omitted. When the first decryption apparatus  30 - 1  has the attribute designation information and the predicate designation information corresponding to the user in advance, either the attribute designation information or the predicate designation information serves as user information, according to the policy. 
     Next, the verification unit of the first decryption apparatus  30 - 1  verifies that the decryption apparatus  30  has the decryption key to be used to decrypt the encryption information included in the encryption message (step S 22   b ). 
     The first decryption apparatus  30 - 1  stores a decryption key table in the memory  31 . In the decryption key table, as shown in  FIG. 15 , for example, the identifier of each key generation apparatus is associated with the public parameter, the schema pair, the decryption key target, the predicate designation information, and the decryption key. The verification unit verifies that the decryption apparatus  30  has the decryption key corresponding to the identifier of the key generation apparatus determined from the address included in the encrypted message, to the public parameter, to the schema pair, and to the decryption key target (corresponding to the content of the policy identifying one schema paired with the other schema identified by the policy included in the encrypted message). When the decryption apparatus  30  has the decryption key, the process of step S 29  is performed. If the decryption apparatus  30  does not have the decryption key, the process of step S 23  is performed. 
     The description of &lt;&lt;the decryption process&gt;&gt; is temporarily halted here and &lt;&lt;a key generation process&gt;&gt; will be described below. 
     If the first decryption apparatus  30 - 1  does not have the decryption key, the transmitter unit  34  of the first decryption apparatus  30 - 1  generates, under the control of the controller unit, a key request message that includes the public parameter, the policy, the schema pair, the user information (if any), and the authentication information, all of these items being read from the memory  31 . The authentication information includes, for example, the ID of the user and a password. The transmitter unit  34  of the first decryption apparatus  30 - 1  sends the key request message to the key generation apparatus having the address read from the memory  31 , and the receiver unit of the key generation apparatus  20  receives the key request message (step S 23 ). The received key request message is stored in a memory  21  of the key generation apparatus  20 . 
     Under the control of a controller unit, a verification unit (not shown) of the key generation apparatus  20  verifies that the schema pair and the policy included in the key request message are included in the schema list and the policy list included in the entry owned by the key generation apparatus  20  (for example, the entry generated in step S 1 ) and that the public parameter included in the key request message is identical to the public parameter of the key generation apparatus  20  (step S 24   a ). If this verification fails, the process ends with a key generation process failure (step S 24   g ). When the authentication information is included in the key request message, the authentication information is also verified in the process of step S 24   a . The key generation apparatus  20  stores an authentication table in the memory  21 . In the authentication table, as shown in  FIG. 16 , for example, each user ID is associated with a password. The verification unit verifies that the user ID and the password included in the key request message are identical to the user ID and the password included in the authentication table. If the verification fails, the process of step S 24   g  is performed. 
     When this verification succeeds, the verification unit of the key generation apparatus  20  verifies that the key request message includes the user information (step S 24   b ). When the key request message includes the user information, the process of step S 24   c  is performed. If the key request message does not include the user information, the process of step S 25  is performed. When a method is employed in which a key request message always includes user information, the process of step S 24   b  and &lt;&lt;a user information acquisition process&gt;&gt;, described later, are unnecessary. 
     The description of &lt;&lt;the key generation process&gt;&gt; is temporarily halted here and &lt;&lt;the user information acquisition process&gt;&gt; will be described below. 
     The transmitter unit  24  of the key generation apparatus  20  sends a request that includes the policy and the authentication information (if any) included in the key request message to the management apparatus  40 , and the management apparatus  40  receives the request (step S 25 ). The received request is stored in a memory of the management apparatus  40 . 
     The management apparatus  40  stores an authentication table in the memory. In the same way as in the authentication table described above, the user ID is associated with the password in this authentication table (see  FIG. 16 ). A verification unit (not shown) of the management apparatus  40  verifies that the user ID and the password included in the request are identical to the user ID and the password included in the authentication table. 
     When this verification succeeds, a searching unit (not shown) of the management apparatus  40  searches a user information table stored in the memory for the attribute designation information or the predicate designation information according to the policy included in the request (step S 26 ). The user information table includes, for example, a first table formed of each user ID, and an attribute name and attribute designation information associated with the user ID, and a second table formed of the user ID and predicate designation information associated with the user ID (see  FIG. 17 ). Whether the attribute designation information or the predicate designation information is read is determined by the policy included in the request. More specifically, the read information corresponds to the content of the policy identifying one schema paired with the other schema identified by the policy included in the request. When the policy is Cipher_Text_Policy, the searching unit reads the attribute designation information corresponding to the user ID included in the request from the first table. When the policy is Key_Policy, the searching unit reads the predicate designation information corresponding to the user ID included in the request from the second table. The read designation information is hereafter called user information. 
     Under the control of a controller unit, a transmitter unit of the management apparatus  40  sends the user information to the key generation apparatus  20 , and the receiver unit of the key generation apparatus  20  receives the user information (step S 27 ). The received user information is stored in the memory  21  of the key generation apparatus  20 . 
     The description of &lt;&lt;the user information acquisition process&gt;&gt; ends here, and the description of &lt;&lt;the key generation process&gt;&gt; will be resumed. 
     When the key generation apparatus  20  already has the user information or receives the user information through the user information acquisition process (step S 27 ), a second predicate logic information acquisition unit  23  of the key generation apparatus  20  reads the policy, the schema pair, the public parameter, and the user information from the memory  21 , and obtains attribute information (hereafter called second attribute information) or predicate information (second predicate information) from the user information (step S 24   c ). In this process, the schema paired with the schema identified by the policy is applied to the user information. When the policy is Cipher_Text_Policy, the schema (attribute schema) paired with the schema (predicate schema) identified by Cipher_Text_Policy is used to obtain the second attribute information from the user information (attribute designation information). When the policy is Key_Policy, the schema (predicate schema) paired with the schema (attribute schema) identified by Key_Policy is used to obtain the second predicate information from the user information (predicate designation information). It should be noted that the schema paired with the schema used in step S 17   a  is used in this process. In the first embodiment of the second aspect, the second attribute information and the second predicate information are one or a plurality of vector information having elements of the finite field F q  as components (see  FIGS. 11 to 13 ). The schema is used to extract and arrange necessary attribute values from the input information. 
     Next, a key generation unit  25  of the key generation apparatus  20  generates a random number α that is an element of the finite field F q , based on the public parameter q according to the predicate encryption algorithm, and uses the random number α, the second attribute information v (p) =(V (p)1 , . . . , V (p)n ) or the second predicate information w (p) =(w (p)1 , w (p)n ) read from the memory  21 , and a private key B* of the key generation apparatus to obtain a decryption key R according to Expression (10) (step S 24   d ). The second predicate information w (p)  is used in this example because the input information used in the encryption process is the attribute designation information. When the input information is the predicate designation information, the second attribute information v (p)  is used. Therefore, w (p)  needs to be replaced with v (p)  in Expression (10), described earlier. 
     Next, under the control of the controller unit, the transmitter unit  24  of the key generation apparatus  20  sends the decryption key R to the first decryption apparatus  30 - 1 , and the receiver unit of the first decryption apparatus  30 - 1  receives the decryption key R (step S 28 ). The received decryption key R is stored in the memory  31  of the first decryption apparatus  30 - 1 . 
     The description of &lt;&lt;the key generation process&gt;&gt; ends here, and the description of &lt;&lt;the decryption process&gt;&gt; will be resumed. 
     When the first decryption apparatus  30 - 1  already has the decryption key or receives the decryption key through the key generation process (step S 28 ), a decryption unit  33  of the first decryption apparatus  30 - 1  reads the public parameter, the decryption key R, the encryption information C 1 , and the ciphertext C 2  (if necessary) from the memory  31 , and obtains the common key K and the plaintext M (if necessary) (step S 29 ). 
     Details of the process in step S 29  will be described below. A first decryption unit  33   a  reads the public parameter, the decryption key R, and the encryption information C 1  from the memory  31 , and obtains e(C 1 , R) according to the predicate encryption algorithm. As shown in Expression (11), described earlier, the calculation result depends on the result of the canonical inner product of the first attribute information v and the second predicate information w (p)  taken out from the encryption information C 1  and the decryption key R according to bilinearity when the input information is the attribute designation information. When the input information is the predicate designation information, v needs to be replaced with v (p)  and w (p) needs to be replaced with w in Expression (11), described earlier. The calculation result depends on the result of the canonical inner product of the first predicate information w and the second attribute information v (p)  taken out from the encryption information C 1  and the decryption key R according to bilinearity. In Expression (11), e(b i , b i *) is defined as shown in Expression (12), described earlier, where δ ij  is the Kronecker&#39;s delta symbol. 
     Therefore, when the canonical inner product of the first attribute information v and the second predicate information w (p)  is zero (or when the canonical inner product of the first predicate information w and the second attribute information v (p)  is zero), the result of calculation in Expression (11), g T   ρ , is obtained. When the result of calculation, g T   ρ , is obtained, the first decryption unit  33   a  of the first decryption apparatus  30 - 1  obtains the common key K, which is correct, according to Expression (7), described earlier (step S 22   c ). When the canonical inner product of the first attribute information v and the second predicate information w (p)  is not zero (or when the canonical inner product of the first predicate information w and the second attribute information v (p)  is not zero), the first decryption unit  33   a  obtains an incorrect value according to Expression (7), described earlier. In this example, it is assumed that the hash function H is common to the system or is included in the public parameter. The encryption information C 1  corresponds to the information ρ used to generate the common key K in this example. When encryption information C 1  corresponds to the common key K, the result of calculation in Expression (11), described earlier, is the common key K (or incorrect value). In other words, an authorized user of the first decryption apparatus  30 - 1  has predicate designation information that gives the second predicate information w (p)  which makes the canonical inner product with the first attribute information v zero, or attribute designation information that gives the second attribute information v (p)  which makes the canonical inner product with the first predicate information w zero. 
     Then, a second decryption unit  33   b  uses the common key K and the ciphertext C 2  to calculate plaintext M according to Expression (13), described earlier (step S 22   d ). A decryption method Dec K  that uses the private key corresponds to the encryption method Enc K . As described earlier, when the first embodiment of the second aspect is dedicated to the delivery of the common key K, the process of step S 22   d  is omitted. More specifically, even if the first decryption apparatus  30 - 1  has the function of the second decryption unit  33   b , it does not perform the process of step S 22   d.    
     If the result of calculation in Expression (11), described earlier, is an incorrect value, the correct plaintext M cannot be obtained by Expression (13), described earlier. 
     The first decryption apparatus  30 - 1  may store the decryption key R in the decryption key table. In addition, the first decryption apparatus  30 - 1  may store the common key K in the decryption key table. 
     The description of &lt;&lt;the first decryption process&gt;&gt; ends here. 
     &lt;&lt;Transfer Process&gt;&gt; 
     A transfer unit  37  of the first decryption apparatus  30 - 1  transfers the encrypted message received from the encryption apparatus  10 , to the second decryption apparatus  30 - 2 , and a receiver unit of the second decryption apparatus  30 - 2  receives the encrypted message (step S 30 ). The decryption apparatus to which the encrypted message is transferred is not limited to the second decryption apparatus (decryption apparatus that does not exchange an encrypted message with the encryption apparatus) and may be another first decryption apparatus (decryption apparatus that exchanges an encrypted message with the encryption apparatus). For the convenience of description, the process of step S 30  follows the process of step S 29 . The process of step S 30 , however, may be performed anytime after the first decryption apparatus  30 - 1  receives the encrypted message from the encryption apparatus  10 . 
     The description of &lt;&lt;the transfer process&gt;&gt; ends here. 
     A second decryption process (that includes a key generation process and, if necessary, a user information acquisition process) performed by the second decryption apparatus  30 - 2  will be described below. This series of processing is substantially the same as the first decryption process. The second decryption apparatus  30 - 2  has the same functional structure as the first decryption apparatus  30 - 1  except that the transfer unit  37  is not necessarily required. Therefore, the same reference numerals are assigned to the same functional components. 
     &lt;&lt;Second Decryption Process&gt;&gt; 
     Under the control of a controller unit, not shown, a transmitter unit  34  of the second decryption apparatus  30 - 2  sends a search query that includes the address of the key generation apparatus, the address being included in the encrypted message, to the registration apparatus  50 , and the receiving unit of the registration apparatus  50  receives the search query (step S 31 ). The searching unit of the registration apparatus  50  searches for the entry of the key generation apparatus specified by the address and selects it (step S 32 ). The transmitter unit of the registration apparatus  50  sends the entry of the search result to the second decryption apparatus  30 - 2 , and the receiver unit of the second decryption apparatus  30 - 2  receives the entry (step S 33 ). This entry includes the address of the key generation apparatus, the public parameter of the key generation apparatus, the policy list that can be used by the key generation apparatus, and the schema list that can be used by the key generation apparatus. The received entry is stored in a memory  31  of the second decryption apparatus  30 - 2 . 
     When the second decryption apparatus  30 - 2  has the public parameter, schema list, policy list, and address of each key generation apparatus  20  in advance, the processes of steps S 31  to S 33  are omitted. In that case, the second decryption apparatus  30 - 2  searches the memory  31  for the entry of the key generation apparatus corresponding to the address included in the encrypted message and retrieves it. 
     Under the control of the controller unit, a verification unit (not shown) of the second decryption apparatus  30 - 2  verifies that the schema pair and the policy included in the encrypted message are included in the schema list and the policy list included in the entry obtained from the registration apparatus  50  (step S 34   a ). If this verification fails, the process ends with a decryption processing failure (step S 34   g ). 
     When the verification succeeds, an acquisition unit  32  of the second decryption apparatus  30 - 2  reads the attribute designation information or the predicate designation information corresponding to the user of the second decryption apparatus  30 - 2  from a storage medium such as the IC card  39  (step S 34   f ). Whether the attribute designation information or the predicate designation information is read depends on the policy included in the encrypted message. More specifically, the read designation information corresponds to the content of the policy identifying one schema paired with the other schema identified by the policy included in the encrypted message. When the policy is Cipher_Text_Policy, the acquisition unit  32  reads the attribute designation information from the storage medium. When the policy is Key_Policy, the acquisition unit  32  reads the predicate designation information from the storage medium. The read designation information is hereafter called user information. The acquisition unit  32  of the second decryption apparatus  30 - 2  may read from the management apparatus  40  the attribute designation information or the predicate designation information corresponding to the user of the second decryption apparatus  30 - 2 , in the same way as in &lt;&lt;a user information acquisition process&gt;&gt; in the key generation apparatus  20 , described later. In the first embodiment of the second aspect, the process of step S 34   f  may be omitted. When the second decryption apparatus  30 - 2  has the attribute designation information and the predicate designation information corresponding to the user in advance, either the attribute designation information or the predicate designation information serves as user information, according to the policy. 
     Next, the verification unit of the second decryption apparatus  30 - 2  verifies that the decryption apparatus  30  has the decryption key to be used to decrypt the encryption information included in the encryption message (step S 34   b ). 
     The second decryption apparatus  30 - 2  stores a decryption key table in the memory  31 . In the decryption key table, as shown in  FIG. 15 , for example, the identifier of each key generation apparatus is associated with the public parameter, the schema pair, the decryption key target, the predicate designation information, and the decryption key. The verification unit verifies that the decryption apparatus  30  has the decryption key corresponding to the identifier of the key generation apparatus determined from the address included in the encrypted message, to the public parameter, to the schema pair, and to the decryption key target (corresponding to the content of the policy identifying one schema paired with other the schema identified by the policy included in the encrypted message). When the decryption apparatus  30  has the decryption key, the process of step S 41  is performed. If the decryption apparatus  30  does not have the decryption key, the process of step S 35  is performed. 
     The description of &lt;&lt;the decryption process&gt;&gt; is temporarily halted here and &lt;&lt;a key generation process&gt;&gt; will be described below. 
     If the second decryption apparatus  30 - 2  does not have the decryption key, the transmitter unit  34  of the second decryption apparatus  30 - 2  generates, under the control of the controller unit, a key request message that includes the public parameter, the policy, the schema pair, the user information (if any), and the authentication information, all of these items being read from the memory  31 . The authentication information includes, for example, the ID of the user and a password. The transmitter unit  34  of the second decryption apparatus  30 - 2  sends the key request message to the key generation apparatus having the address read from the memory  31 , and the receiver unit of the key generation apparatus  20  receives the key request message (step S 35 ). The received key request message is stored in a memory  21  of the key generation apparatus  20 . This key generation apparatus  20  does not necessarily need to be the key generation apparatus  20  paired with the first decryption apparatus  30 - 1 . 
     Under the control of a controller unit, a verification unit (not shown) of the key generation apparatus  20  verifies that the schema pair and the policy included in the key request message are included in the schema list and the policy list included in the entry owned by the key generation apparatus  20  (for example, the entry generated in step S 1 ) and that the public parameter included in the key request message is identical to the public parameter of the key generation apparatus  20  (step S 36   a ). If this verification fails, the process ends with a key generation process failure (step S 36   g ). 
     When the authentication information is included in the key request message, the authentication information is also verified in the process of step S 36   a . The key generation apparatus  20  stores an authentication table in the memory  21 . In the authentication table, as shown in  FIG. 16 , for example, each user ID is associated with a password. The verification unit verifies that the user ID and the password included in the key request message are identical to the user ID and the password included in the authentication table. If the verification fails, the process of step S 36   g  is performed. 
     When this verification succeeds, the verification unit of the key generation apparatus  20  verifies that the key request message includes the user information (step S 36   b ). When the key request message includes the user information, the process of step S 36   c  is performed. If the key request message does not include the user information, the process of step S 37  is performed. When a method is employed in which a key request message always includes user information, the process of step S 36   b  and &lt;&lt;a user information acquisition process&gt;&gt;, described later, are unnecessary. 
     The description of &lt;&lt;the key generation process&gt;&gt; is temporarily halted here and &lt;&lt;the user information acquisition process&gt;&gt; will be described below. 
     The transmitter unit  24  of the key generation apparatus  20  sends a request that includes the policy and the authentication information (if any) included in the key request message to the management apparatus  40 , and the management apparatus  40  receives the request (step S 37 ). The received request is stored in a memory of the management apparatus  40 . 
     The management apparatus  40  stores an authentication table in the memory. In the same way as in the authentication table described above, the user ID is associated with the password in this authentication table (see  FIG. 16 ). A verification unit (not shown) of the management apparatus  40  verifies that the user ID and the password included in the request are identical to the user ID and the password included in the authentication table. 
     When this verification succeeds, a searching unit (not shown) of the management apparatus  40  searches a user information table stored in the memory for the attribute designation information or the predicate designation information according to the policy included in the request (step S 38 ). The user information table includes, for example, a first table formed of each user ID, and an attribute name and attribute designation information associated with the user ID, and a second table formed of the user ID and predicate designation information associated with the user ID (see  FIG. 17 ). Whether the attribute designation information or the predicate designation information is read is determined by the policy included in the request. More specifically, the read information corresponds to the content of the policy identifying one schema paired with the other schema identified by the policy included in the request. When the policy is Cipher_Text_Policy, the searching unit reads the attribute designation information corresponding to the user ID included in the request from the first table. When the policy is Key_Policy, the searching unit reads the predicate designation information corresponding to the user ID included in the request from the second table. The read designation information is hereafter called user information. 
     Under the control of a controller unit, a transmitter unit of the management apparatus  40  sends the user information to the key generation apparatus  20 , and the receiver unit of the key generation apparatus  20  receives the user information (step S 27 ). The received user information is stored in the memory  21  of the key generation apparatus  20 . 
     The description of &lt;&lt;the user information acquisition process&gt;&gt; ends here, and the description of &lt;&lt;the key generation process&gt;&gt; will be resumed. 
     When the key generation apparatus  20  already has the user information or receives the user information through the user information acquisition process (step S 39 ), a second predicate logic information acquisition unit  23  of the key generation apparatus  20  reads the policy, the schema pair, the public parameter, and the user information from the memory  21 , and obtains attribute information (hereafter called second attribute information) or predicate information (second predicate information) from the user information (step S 36   c ). In general, the user of the first decryption apparatus  30 - 1  and the user of the second decryption apparatus  30 - 2  are different. Therefore, the second attribute information or second predicate information obtained in this process is not necessarily the same as the second attribute information or the second predicate information obtained in the process of step S 24   c . In this process, the schema paired with the schema identified by the policy is applied to the user information. When the policy is Cipher_Text_Policy, the schema (attribute schema) paired with the schema (predicate schema) identified by Cipher_Text_Policy is used to obtain the second attribute information from the user information (attribute designation information). When the policy is Key_Policy, the schema (predicate schema) paired with the schema (attribute schema) identified by Key_Policy is used to obtain the second predicate information from the user information (predicate designation information). It should be noted that the schema paired with the schema used in step S 17   a  is used in this process. In the first embodiment of the second aspect, the second attribute information and the second predicate information are one or a plurality of vector information having elements of the finite field F q  as components (see  FIGS. 11 to 13 ). The schema is used to extract and arrange necessary attribute values from the input information. 
     Next, a key generation unit  25  of the key generation apparatus  20  generates a random number α that is an element of the finite field F q , based on the public parameter q according to the predicate encryption algorithm, and uses the random number α, the second attribute information v′ (p) =(v′ (p)1 , . . . , v′ (p)n ) or the second predicate information w′ (p) =(w′ (p)1 , . . . , w′ (p)n ) read from the memory  21 , and a private key B* of the key generation apparatus to obtain a decryption key R′ according to Expression (14) (step S 36   d ). The second predicate information w′ (p)  is used in this example because the input information used in the encryption process is the attribute designation information. When the input information is the predicate designation information, the second attribute information v′ (p)  is used. Therefore, w′ (p)  needs to be replaced with v′ (p)  in Expression (14). 
     
       
         
           
             
               
                 
                   
                     R 
                     ′ 
                   
                   = 
                   
                     
                       ɛ 
                       ⁢ 
                       
                         
                           ∑ 
                           
                             i 
                             = 
                             1 
                           
                           n 
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           
                             
                               w 
                               ′ 
                             
                             
                               
                                 ( 
                                 p 
                                 ) 
                               
                               ⁢ 
                               i 
                             
                           
                           ⁢ 
                           
                             b 
                             i 
                             * 
                           
                         
                       
                     
                     + 
                     
                       b 
                       
                         n 
                         + 
                         1 
                       
                       * 
                     
                   
                 
               
               
                 
                   ( 
                   14 
                   ) 
                 
               
             
           
         
       
     
     Next, under the control of the controller unit, the transmitter unit  24  of the key generation apparatus  20  sends the decryption key R′ to the second decryption apparatus  30 - 2 , and the receiver unit of the second decryption apparatus  30 - 2  receives the decryption key R′ (step S 28 ). The received decryption key R is stored in the memory  31  of the second decryption apparatus  30 - 2 . 
     The description of &lt;&lt;the key generation process&gt;&gt; ends here, and the description of &lt;&lt;the decryption process&gt;&gt; will be resumed. 
     When the second decryption apparatus  30 - 2  already has the decryption key or receives the decryption key through the key generation process (step S 40 ), a decryption unit  33  of the second decryption apparatus  30 - 2  reads the public parameter, the decryption key R′, the encryption information C 1 , and the ciphertext C 2  (if necessary) from the memory  31 , and obtains the common key K and the plaintext M (if necessary) (step S 41 ). 
     Details of the process in step S 41  will be described below. The first decryption unit  33   a  reads the public parameter, the decryption key R′, and the encryption information C 1  from the memory  31 , and obtains e(C 1 , R) according to the predicate encryption algorithm. As shown in Expression (15), the calculation result depends on the result of the canonical inner product of the first attribute information v and the second predicate information w′ (p)  taken out from the encryption information C 1  and the decryption key R′ according to bilinearity when the input information is the attribute designation information. When the input information is the predicate designation information, v needs to be replaced with v′ (p)  and w′ (p) needs to be replaced with w in Expression (15). The calculation result depends on the result of the canonical inner product of the first predicate information w and the second attribute information v′ (p)  taken out from the encryption information C 1  and the decryption key R′ according to bilinearity. In Expression (15), e(b i , b i *) is defined as shown in Expression (12), described earlier. 
     
       
         
           
             
               
                 
                   
                     
                       
                         
                           e 
                           ⁡ 
                           
                             ( 
                             
                               
                                 C 
                                 1 
                               
                               , 
                               
                                 R 
                                 ′ 
                               
                             
                             ) 
                           
                         
                         = 
                           
                         ⁢ 
                         
                           
                             e 
                             ( 
                             
                               
                                 r 
                                 ⁢ 
                                 
                                   
                                     ∑ 
                                     
                                       i 
                                       = 
                                       1 
                                     
                                     n 
                                   
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   
                                     
                                       v 
                                       i 
                                     
                                     ⁢ 
                                     
                                       b 
                                       i 
                                     
                                   
                                 
                               
                               , 
                               
                                 R 
                                 ′ 
                               
                             
                             ) 
                           
                           · 
                           
                             e 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   ρ 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   
                                     b 
                                     
                                       n 
                                       + 
                                       1 
                                     
                                   
                                 
                                 , 
                                 
                                   R 
                                   ′ 
                                 
                               
                               ) 
                             
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                         ⁢ 
                         
                           
                             ∏ 
                             
                               i 
                               = 
                               1 
                             
                             n 
                           
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             
                               
                                 e 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     
                                       b 
                                       i 
                                     
                                     , 
                                     
                                       b 
                                       i 
                                       * 
                                     
                                   
                                   ) 
                                 
                               
                               
                                 r 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 α 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 
                                   v 
                                   i 
                                 
                                 ⁢ 
                                 
                                   
                                     w 
                                     ′ 
                                   
                                   
                                     
                                       ( 
                                       p 
                                       ) 
                                     
                                     ⁢ 
                                     i 
                                   
                                 
                               
                             
                             · 
                             
                               
                                 e 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     
                                       b 
                                       
                                         n 
                                         + 
                                         1 
                                       
                                     
                                     , 
                                     
                                       b 
                                       
                                         n 
                                         + 
                                         1 
                                       
                                       * 
                                     
                                   
                                   ) 
                                 
                               
                               ρ 
                             
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                         ⁢ 
                         
                           
                             
                               g 
                               T 
                               
                                 r 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 α 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 
                                   
                                     Σ 
                                     
                                       i 
                                       = 
                                       1 
                                     
                                   
                                   n 
                                 
                                 ⁢ 
                                 
                                   v 
                                   i 
                                 
                                 ⁢ 
                                 
                                   
                                     w 
                                     ′ 
                                   
                                   
                                     
                                       ( 
                                       p 
                                       ) 
                                     
                                     ⁢ 
                                     i 
                                   
                                 
                               
                             
                             
                                 
                             
                           
                           · 
                           
                             g 
                             T 
                             ρ 
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                           
                         ⁢ 
                         
                           
                             g 
                             T 
                             
                               r 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               α 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 v 
                                 · 
                                 
                                   
                                     w 
                                     ′ 
                                   
                                   
                                     ( 
                                     p 
                                     ) 
                                   
                                 
                               
                             
                           
                           · 
                           
                             g 
                             T 
                             ρ 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   15 
                   ) 
                 
               
             
           
         
       
     
     Therefore, when the canonical inner product of the first attribute information v and the second predicate information w′ (p)  is zero (or when the canonical inner product of the first predicate information w and the second attribute information v′ (p)  is zero), the result of calculation in Expression (15), g T   ρ , is obtained. When the result of calculation, g T   ρ , is obtained, the first decryption unit  33   a  of the second decryption apparatus  30 - 2  obtains the common key K, which is correct, according to Expression (7), described earlier (step S 34   c ). When the canonical inner product of the first attribute information v and the second predicate information w′ (p)  is not zero (or when the canonical inner product of the first predicate information w and the second attribute information v′ (p)  is not zero), the first decryption unit  33   a  obtains an incorrect value according to Expression (7), described earlier. In this example, it is assumed that the hash function H is common to the system or is included in the public parameter. The encryption information C 1  corresponds to the information ρ used to generate the common key K in this example. When encryption information C 1  corresponds to the common key K, the result of calculation in Expression (15) is the common key K (or incorrect value). In other words, an authorized user of the second decryption apparatus  30 - 2  has predicate designation information that gives the second predicate information w′ (p)  which makes the canonical inner product with the first attribute information v zero, or attribute designation information that gives the second attribute information v′ (p)  which makes the canonical inner product with the first predicate information w zero. 
     Then, the second decryption unit  33   b  uses the common key K and the ciphertext C 2  to calculate plaintext M according to Expression (13), described earlier (step S 34   d ). A decryption method Dec K  that uses the private key corresponds to the encryption method Enc K . As described earlier, when the first embodiment of the second aspect is dedicated to the delivery of the common key K, the process of step S 34   d  is omitted. More specifically, even if the second decryption apparatus  30 - 2  has the function of the second decryption unit  33   b , it does not perform the process of step S 34   d.    
     If the result of calculation in Expression (15) is an incorrect value, the correct plaintext M cannot be obtained by Expression (13), described earlier. 
     The second decryption apparatus  30 - 2  may store the decryption key R′ in the decryption key table. In addition, the second decryption apparatus  30 - 2  may store the common key K in the decryption key table. 
     The description of &lt;&lt;the second decryption process&gt;&gt; ends here. 
     When the second decryption apparatus  30 - 2  has a transfer unit  37 , the second decryption apparatus  30 - 2  may transfer the encrypted message received from the first decryption apparatus  30 - 1 , to another second decryption apparatus (decryption apparatus that does not exchange an encrypted message with the encryption apparatus) or to the first decryption apparatus (decryption apparatus that exchanges an encrypted message with the encryption apparatus). This transfer process may be performed anytime after the second decryption apparatus  30 - 2  receives the encrypted message from the first decryption apparatus  30 - 1 . 
     (Second Embodiment According to Second Aspect) 
     A second embodiment of the second aspect differs from the first embodiment of the second aspect in that the first decryption apparatus  30 - 1  and the second decryption apparatus  30 - 2  generate the second attribute information or the second predicate information. Because of this difference, the second embodiment of the second aspect differs in several points from the first embodiment of the second aspect. A description of commonalities between the first and second embodiments of the second aspect is omitted (the same reference numerals are assigned to the same components), and a description of the differences from the first embodiment of the second aspect will be made with reference to  FIGS. 42 to 48 . 
     The processes of steps S 1  to S 22  are the same as those in the first embodiment of the second aspect. 
     When the decryption key is not possessed in the process of step S 22   b , a second predicate logic information acquisition unit  35  of the first decryption apparatus  30 - 1  reads the policy, the schema pair, the public parameter, and the user information from the memory  31  and obtains attribute information (called second attribute information) or predicate information (called second predicate information) from the user information (step S 23   g ). In this process, the schema paired with the schema identified by the policy is applied to the user information. When the policy is Cipher_Text_Policy, the schema (attribute schema) paired with the schema (predicate schema) identified by Cipher_Text_Policy is used to obtain the second attribute information from the user information (attribute designation information). When the policy is Key_Policy, the schema (predicate schema) paired with the schema (attribute schema) identified by Key_Policy is used to obtain the second predicate information from the user information (predicate designation information). It should be noted that the schema paired with the schema used in step S 17   a  is used in this process. In the second embodiment of the second aspect, the second attribute information and the second predicate information are one or a plurality of vector information having elements of the finite field F q  as components (see  FIGS. 11 to 13 ). 
     After the process of step S 23   g , the process of step  23  is performed. In this process, the transmitter unit  34  of the first decryption apparatus  30 - 1  generates a key request message that includes the public parameter, the policy, the schema pair, and the authentication information read from the memory  31 , and the second attribute information or the second predicate information, under the control of the controller unit. The transmitter unit  34  of the first decryption apparatus  30 - 1  sends the key request message to the key generation apparatus having the address read from the memory  31 , and the receiver unit of the key generation apparatus  20  receives the key request message. 
     When the verification succeeds in the process of step S 24   a , the process of step S 24   d  is performed. Since the key generation apparatus  20  has received the second attribute information or the second predicate information from the first decryption apparatus  30 - 1 , the function and the process for generating the information are unnecessary, unlike in the first embodiment of the second aspect. 
     The processes of steps S 28  to S 34   a , to be performed after the process of step S 24   d , are the same as those in the first embodiment of the second aspect. 
     When the decryption key is not possessed in the process of step S 34   b , a second predicate logic information acquisition unit  35  of the second decryption apparatus  30 - 2  reads the policy, the schema pair, the public parameter, and the user information from the memory  31  and obtains attribute information (called second attribute information) or predicate information (called second predicate information) from the user information (step S 35   g ). In this process, the schema paired with the schema identified by the policy is applied to the user information. When the policy is Cipher_Text_Policy, the schema (attribute schema) paired with the schema (predicate schema) identified by Cipher_Text_Policy is used to obtain the second attribute information from the user information (attribute designation information). When the policy is Key_Policy, the schema (predicate schema) paired with the schema (attribute schema) identified by Key_Policy is used to obtain the second predicate information from the user information (predicate designation information). It should be noted that the schema paired with the schema used in step S 17   a  is used in this process. In the second embodiment of the second aspect, the second attribute information and the second predicate information are one or a plurality of vector information having elements of the finite field F q  as components (see  FIGS. 11 to 13 ). 
     After the process of step S 35   g , the process of step  35  is performed. In this process, the transmitter unit  34  of the second decryption apparatus  30 - 2  generates a key request message that includes the public parameter, the policy, the schema pair, and the authentication information read from the memory  31 , and the second attribute information or the second predicate information, under the control of the controller unit. The transmitter unit  34  of the second decryption apparatus  30 - 2  sends the key request message to the key generation apparatus having the address read from the memory  31 , and the receiver unit of the key generation apparatus  20  receives the key request message. 
     When the verification succeeds in the process of step S 36   a , the process of step S 36   d  is performed. Since the key generation apparatus  20  has received the second attribute information or the second predicate information from the second decryption apparatus  30 - 2 , the function and the process for generating the information are unnecessary, unlike in the first embodiment of the second aspect. 
     The processes of steps S 40  and S 41 , following the process of step S 36   d , are the same as those in the first embodiment of the second aspect. 
     (Third Embodiment According to Second Aspect) 
     A third embodiment of the second aspect differs from the first embodiment of the second aspect in that the encryption unit  13  of the encryption apparatus  10  uses the first attribute information v=(v 1 , . . . , v n ) or the first predicate information w=(w 1 , . . . , w n ), together with the public key and included in the public parameter the plaintext M read from the memory  11  to obtain encryption information C 1 . In other words, the predicate encryption algorithm disclosed in Non-patent literature 2, for example, is used in the third embodiment of the second aspect. Because of this difference, the third embodiment of the second aspect differs in several points from the first embodiment of the second aspect. A description of commonalities between the first and third embodiments of the second aspect is omitted (the same reference numerals are assigned to the same components), and a description of the differences from the first embodiment of the second aspect will be made with reference to  FIGS. 49 to 54 . 
     The processes of steps S 1  to S 17   a  are the same as those in the first embodiment of the second aspect. The public parameter and some other information are required by the predicate encryption algorithm of the third embodiment of the second aspect. For specific information required, see Non-patent literature 2, described above, for example. 
     In the process of step S 17   b   1 , following the process of step S 17   a , the encryption unit  13  of the encryption apparatus  10  uses the first attribute information v=(v 1 , . . . , v n ) or the first predicate information w=(w 1 , . . . , w n ), together with the public key included in the public parameter and the plaintext M read from the memory  11 , to obtain encryption information C 1  according to the predicate encryption algorithm (step S 17   b   1 ). 
     After the process of step S 17   b   1 , the process of step  17   d  is performed. In this process, the transmitter unit  14  of the encryption apparatus  10  generates an encrypted message that includes the encryption information C 1 , and the schema pair, the policy, the public parameter, and the address of the key generation apparatus read from the memory  31 , under the control of the controller unit (step S 17   d ). 
     The processes of steps S 18  to S 28 , following the process of step S 17   d , are the same as those in the first embodiment of the second aspect. 
     In the process of step S 22   c   1 , following the process of step S 28 , the decryption unit  33  of the first decryption apparatus  30 - 1  reads the public parameter, the decryption key R, and the encryption information C 1  from the memory  31  to calculate plaintext M according to the predicate encryption algorithm (step S 22   c   1 ). 
     The processes of steps S 30  to S 40 , following the process of step S 22   c   1 , are the same as those in the first embodiment of the second aspect. 
     In the process of step S 34   c   1 , following the process of step S 40 , the decryption unit  33  of the second decryption apparatus  30 - 2  reads the public parameter, the decryption key R, and the encryption information C 1  from the memory  31  to calculate plaintext M according to the predicate encryption algorithm (step S 34   c   1 ). 
     (Fourth Embodiment According to Second Aspect) 
     A fourth embodiment of the second aspect corresponds to a combination of the second embodiment of the second aspect and the third embodiment of the second aspect. The fourth embodiment of the second aspect differs from the first embodiment of the second aspect in that (1) the first decryption apparatus  30 - 1  and the second decryption apparatus  30 - 2  generate the second attribute information or the second predicate information, and (2) the encryption unit  13  of the encryption apparatus  10  uses the first attribute information v=(v 1 , . . . , v n ) or the first predicate information w=(w 1 , . . . , w n ), together with the public key included in the public parameter and the plaintext M read from the memory  11 , to obtain encryption information C 1 . Because of these differences, the fourth embodiment of the second aspect differs in several points from the first embodiment of the second aspect. A description of commonalities between the first and fourth embodiments of the second aspect is omitted (the same reference numerals are assigned to the same components), and a description of the differences from the first embodiment of the second aspect will be made with reference to  FIGS. 55 to 58 . 
     The processes of steps S 1  to S 17   a  are the same as those in the first embodiment of the second aspect. The public parameter and some other information are required by the predicate encryption algorithm of the fourth embodiment of the second aspect. For specific information required, see Non-patent literature 2, described above, for example. 
     In the process of step S 17   b   1 , following the process of step S 17   a , the encryption unit  13  of the encryption apparatus  10  uses the first attribute information v=(v 1 , . . . , v n ) or the first predicate information w=(w i , . . . , w n ), together with the public key included in the public parameter and the plaintext M read from the memory  11 , to obtain encryption information C 1  according to the predicate encryption algorithm (step S 17   b   1 ). 
     After the process of step S 17   b   1 , the process of step  17   d  is performed. In this process, the transmitter unit  14  of the encryption apparatus  10  generates an encrypted message that includes the encryption information C 1 , and the schema pair, the policy, the public parameter, and the address of the key generation apparatus read from the memory  31 , under the control of the controller unit (step S 17   d ). 
     The processes of steps S 18  to S 22   b , following the process of step S 17   d , are the same as those in the first embodiment of the second aspect. 
     When the decryption key is not possessed in the process of step S 22   b , the second predicate logic information acquisition unit  35  of the first decryption apparatus  30 - 1  reads the policy, the schema pair, the public parameter, and the user information from the memory  31  and obtains attribute information (called second attribute information) or predicate information (called second predicate information) from the user information (step S 23   g ). In this process, the schema paired with the schema identified by the policy is applied to the user information. When the policy is Cipher_Text_Policy, the schema (attribute schema) paired with the schema (predicate schema) identified by Cipher_Text_Policy is used to obtain the second attribute information from the user information (attribute designation information). When the policy is Key_Policy, the schema (predicate schema) paired with the schema (attribute schema) identified by Key_Policy is used to obtain the second predicate information from the user information (predicate designation information). It should be noted that the schema paired with the schema used in step S 17   a  is used in this process. In the fourth embodiment of the second aspect, the second attribute information and the second predicate information are one or a plurality of vector information having elements of the finite field F q  as components (see  FIGS. 11 to 13 ). 
     After the process of step S 23   g , the process of step  23  is performed. In this process, the transmitter unit  34  of the first decryption apparatus  30 - 1  generates a key request message that includes the public parameter, the policy, the schema pair, and the authentication information read from the memory  31 , and the second attribute information or the second predicate information, under the control of the controller unit. The transmitter unit  34  of the first decryption apparatus  30 - 1  sends the key request message to the key generation apparatus having the address read from the memory  31 , and the receiver unit of the key generation apparatus  20  receives the key request message. 
     When the verification succeeds in the process of step S 24   a , the process of step S 24   d  is performed. Since the key generation apparatus  20  has received the second attribute information or the second predicate information from the first decryption apparatus  30 - 1 , the function and the process for generating the information are unnecessary. 
     The process of step S 28 , following the process of step S 24   d , is the same as that in the first embodiment of the second aspect. 
     In the process of step S 22   c   1 , following the process of step S 28 , the decryption unit  33  of the first decryption apparatus  30 - 1  reads the public parameter, the decryption key R, and the encryption information C 1  from the memory  31  to calculate plaintext M according to the predicate encryption algorithm (step S 22   c   1 ). 
     The processes of steps S 30  to S 34 , following the process of step S 22   c   1 , are the same as those in the first embodiment of the second aspect. 
     When the decryption key is not possessed in the process of step S 34   b , the second predicate logic information acquisition unit  35  of the second decryption apparatus  30 - 2  reads the policy, the schema pair, the public parameter, and the user information from the memory  31  and obtains attribute information (called second attribute information) or predicate information (called second predicate information) from the user information (step S 35   g ). In this process, the schema paired with the schema identified by the policy is applied to the user information. When the policy is Cipher_Text_Policy, the schema (attribute schema) paired with the schema (predicate schema) identified by Cipher_Text_Policy is used to obtain the second attribute information from the user information (attribute designation information). When the policy is Key_Policy, the schema (predicate schema) paired with the schema (attribute schema) identified by Key_Policy is used to obtain the second predicate information from the user information (predicate designation information). It should be noted that the schema paired with the schema used in step S 17   a  is used in this process. In the fourth embodiment of the second aspect, the second attribute information and the second predicate information are one or a plurality of vector information having elements of the finite field F q  as components (see  FIGS. 11 to 13 ). 
     After the process of step S 35   g , the process of step  35  is performed. In this process, the transmitter unit  34  of the second decryption apparatus  30 - 2  generates a key request message that includes the public parameter, the policy, the schema pair, and the authentication information read from the memory  31 , and the second attribute information or the second predicate information, under the control of the controller unit. The transmitter unit  34  of the second decryption apparatus  30 - 2  sends the key request message to the key generation apparatus having the address read from the memory  31 , and the receiver unit of the key generation apparatus  20  receives the key request message. 
     When verification succeeds in the process of step S 36   a , the process of step S 36   d  is performed. Since the key generation apparatus  20  has received the second attribute information or the second predicate information from the second decryption apparatus  30 - 2 , the function and the process for generating the information are unnecessary, unlike in the first embodiment of the second aspect. 
     The process of step S 40 , following the process of step S 36   d , is the same as that in the first embodiment of the second aspect. 
     In the process of step S 34   c   1 , following the process of step S 40 , the decryption unit  33  of the second decryption apparatus  30 - 2  reads the public parameter, the decryption key R, and the encryption information C 1  from the memory  31  to calculate plaintext M according to the predicate encryption algorithm (step S 34   c   1 ). 
     The above described embodiments of the second aspect are implemented, for example, as email systems or instant message systems.  FIG. 59  shows the structure of data exchanged. The basic format of the entire message conforms, for example, to S/MIME (Secure Multipurpose Internet Mail Extensions). An appropriate data structure is given to data from the start position marker of an encrypted message to the end position marker of the encrypted message in XML (the eXtensible Markup Language) or other some language. 
     A series of data concerning the predicate encryption is disposed from the start position marker of an encrypted message to the end position marker of the encrypted message. 
     An algorithm identifier block specifies information that identifies the predicate encryption algorithm used to encrypt the private key and the private key encryption algorithm used to encrypt the message payload. An identifier indicating the algorithm or the version of an algorithm (for example, PE/Version X+Camellia (Camellia is a registered trademark)) can be specified. 
     A digital signature block specifies the digital signature. A known signature algorithm can be used. This item can be omitted depending on the application. 
     A public parameter information block specifies information that identifies the public parameter used. An identifier that identifies the public parameter or the data of the public parameter can be specified. 
     A policy field specifies an identifier that identifies the policy used. 
     A schema field specifies an identifier that identifies the schema used or the data of the schema. 
     An encryption information field specifies the data (encryption information) obtained by encrypting, with the predicate encryption, the private key used to encrypt the message payload (plaintext). 
     An ciphertext field specifies the data (ciphertext) obtained by encrypting the message payload (plaintext). 
     An attribute field and a predicate field specify letter string representations that indicate the attribute and the predicate used for encryption, corresponding to the policy field, respectively. These items can be omitted according to the application. 
     An attachment field can include an attachment file encrypted with RSA, for example. This item can be omitted according to the application. 
     In secure communication for instant messaging, for example, it is not necessary to resend the encryption information obtained by encrypting the private key. In usual instant messaging, when an appropriate private key is obtained in the first instant message, the receiver may store the private key to decrypt subsequent instant messages. In that case, the sender just sends ciphertext to the receiver but may not send the public parameter, the policy, the schema, or the encryption information in the subsequent instant messages. In the same way, when the encryption algorithm used is not changed, the encryption algorithm identifier may be omitted in the subsequent instant messages. 
     Predicate encryption does not depend on information based on the receiver, in encryption. Therefore, the sender (sending apparatus) can send an encrypted message to an unknown receiver (receiving apparatus). In other words, the sender performs encryption just once even if there are a plurality of receivers (receiving apparatuses) (in the public key cryptosystem, encryption needs to be performed N times). Therefore, the sender (sending apparatus) can send an encrypted message to a plurality of receivers at a low cost. 
     The receiver (receiving apparatus) can transfer the encrypted message received from the encryption apparatus to a third party (apparatus). In the public key cryptosystem, the receiver (receiving apparatus) needs to decrypt the encrypted message, encrypt the original message with the public key of the third party (apparatus), and send the encrypted message, causing a high processing cost. In the above-described embodiments, since the encrypted message received from the encryption apparatus can be transferred to the third party (apparatus) without any processing, the encrypted message is transferred at a low processing cost. 
     Embodiments according to a third aspect of the present invention, which relate to a cryptographic communication technology that can operate flexibly, that is based on predicate encryption, and that allows content (encrypted content) encrypted with the predicate encryption to be distributed will be described next while attention is being paid to the cryptographic communication technology of the first aspect, described above. In the cryptographic communication technology of the third aspect, content (encrypted content) encrypted with predicate encryption is stored in a content server, and the encrypted content is distributed to a decryption apparatus upon request. 
     The description of the cryptographic communication technology of the third aspect and the description of the cryptographic communication technology of the first aspect have many substantial commonalities, but, to avoid referring to the description of the cryptographic communication technology of the first aspect, the cryptographic communication technology of the third aspect will be described below with overlapping explanations and figures being included as much as possible. Therefore, in both descriptions, identical expression numbers, identical reference numerals assigned to function blocks, and identical reference numerals assigned to steps are used. Because the contexts are different, there should be no risk of confusion. 
     (First Embodiment According to Third Aspect) 
     A first embodiment according to the third aspect of the present invention will be described below with reference to  FIG. 60  to  FIG. 71 . 
     As shown in  FIG. 60 , a cryptographic system  1  according to the third aspect includes a plurality of client apparatuses  10  and  30 , one or a plurality of key generation apparatuses  20 , one or a plurality of content servers  60 , one or a plurality of user information management apparatuses  40  (hereafter each called a management apparatus), conversion rule information pair management apparatuses  50  (hereafter each called a registration apparatus), one or a plurality of maintenance apparatuses  80 , and one or a plurality of authentication apparatuses  90 . These apparatuses can communicate with each other through a communication network  5 , such as the Internet. 
     The client apparatuses function as encryption apparatuses for encrypting content to generate encrypted content or decryption apparatuses for decrypting the encrypted content, based on their processing functions. Depending on their functions, the client apparatuses are called encryption apparatuses  10  or decryption apparatuses  30 . The cryptographic system  1  of the third aspect may include client apparatuses that function only as encryption apparatuses and/or client apparatuses that function only as decryption apparatuses. 
     In the cryptographic system  1  of the third aspect, encryption and decryption are performed using predicate encryption. In the third aspect of the present invention, the predicate encryption algorithm to be used is not limited, and the predicate encryption algorithm disclosed in Non-patent literature 2, for example, may be used. In the first embodiment of the third aspect, a predicate encryption algorithm of KEM (the key encapsulation mechanism) type will be used. 
     A cryptographic communication method used in the cryptographic system  1  will be described with reference to  FIGS. 61 ,  62 ,  63 ,  64 ,  66 ,  69 , and  71 . See  FIGS. 65 ,  67 ,  68 , and  70  for the functional structure of each apparatus. 
     &lt;&lt;Preparation Process&gt;&gt; 
     The entire description of &lt;&lt;the preparation process&gt;&gt; in the first embodiment of the first aspect according to the present invention is incorporated here and a description of &lt;&lt;the preparation process&gt;&gt; is omitted. See  FIG. 61  for the preparation process,  FIGS. 11 to 13  for schema pairs, and  FIG. 14  for policy lists. The description of the preparation process ends here. 
     &lt;&lt;Encryption Process&gt;&gt; 
     Under the control of a controller unit, not shown, a transmitter unit  14  of the encryption apparatus  10  sends a search query to the registration apparatus  50 , and the receiving unit of the registration apparatus  50  receives the search query (step S 14 ). The searching unit of the registration apparatus  50  searches some or all of the entries registered in the storage unit of the registration apparatus  50  and chooses one entry (step S 15 ). The transmitter unit of the registration apparatus  50  sends the entry to the encryption apparatus  10 , and a receiver unit of the encryption apparatus  10  receives the entry (step S 16 ). This entry includes the address of the key generation apparatus, the public parameter of the key generation apparatus, the policy list that can be used by the key generation apparatus, and the schema list that can be used by the key generation apparatus. The received entry is stored in a memory  11  of the encryption apparatus  10 . 
     When the encryption apparatus  10  has the public parameter, schema list, policy list, and address of each key generation apparatus  20  in advance, the processes of steps S 14  to S 16  are omitted. It should be noted that the cryptographic system  1  may have no registration apparatus  50 . 
     A first predicate logic information acquisition unit  12  of the encryption apparatus  10  reads the input information, the policy, and the schemas from the memory  11  and obtains attribute information (hereafter called first attribute information) and predicate information (hereafter called first predicate information) (step S 17   a ). Details of this process will be described below with reference to  FIGS. 12 and 13 . 
     When the schema list has a plurality of schema pairs, one schema pair is selected based on the usage or the like. The user of the encryption apparatus  10  may select a schema pair and input designation information thereof. Alternatively, the first predicate logic information acquisition unit  12  may select a schema pair according to a predetermined rule. 
     According to whether the input information is attribute designation information or predicate designation information, one of the schemas is selected together with the policy. The user of the encryption apparatus  10  may select the policy and one of the schemas and input designation information thereof. Alternatively, the first predicate logic information acquisition unit  12  may select the policy and one of the schemas according to a predetermined rule. When only one type of policy is prepared in the key generation apparatus  20 , one schema of the schema pair is selected according to the policy. If the selected schema does not correspond to the type of the input information, a schema pair needs to be selected again from the schema list or an entry needs to be provided by the registration apparatus  50  again. 
     The input information may be information inputted by the user of the encryption apparatus  10  or information acquired by an acquisition unit (not shown) of the encryption apparatus  10  from a storage medium such as an IC card  39 . 
     Then, the first predicate logic information acquisition unit  12  uses the schema selected from the schema pair according to the policy to obtain the first attribute information or the first predicate information from the input information. When the policy is Key_Policy and the selected schema is an attribute schema, the first attribute information is obtained. When the policy is Cipher_Text_Policy and the selected schema is a predicate schema, the first predicate information is obtained. The first attribute information and the first predicate information are vector information having elements of the finite field F q  as components in the first embodiment according to the third aspect (see  FIGS. 11 to 13 ). The schema is used to extract or arrange necessary attribute values from the input information. 
     Next, an encryption unit  13  of the encryption apparatus  10  uses the first attribute information v=(v 1 , . . . , v n ) or the first predicate information w=(w 1 , . . . , w n ), an orthogonal basis B (substantial public key) included in the public parameter read from the memory  11 , and content M to obtain a common key K, encryption information C 1 , and ciphertext C 2  (steps S 17   b  and S 17   c ). Details of these processes will be described below. 
     A first encryption unit  13   a  generates random numbers r and p which are elements of the finite field Fq according to the predicate encryption algorithm, specifies the common key K as shown by Expression (7), described earlier, and obtains the encryption information C 1  according to Expression (8) (step S 17   b ), where H indicates, for example, a hash function. In this example, the first attribute information v is used. To use the first predicate information, v needs to be replaced with w in Expression (8), described earlier. In this example, the encryption information C 1  corresponds to ρ used to generate the common key K. The encryption information C 1  may correspond to the common key K. 
     Next, the second encryption unit  13   b  uses the common key K and the content M to obtain the ciphertext C 2  according to Expression (9), described earlier (step S 17   c ). An encryption method Enc k  that uses the private key can be a known method. For example, it may be the method disclosed in Non-patent literature 1. 
     Next, under the control of the controller unit, the transmitter unit  14  of the encryption apparatus  10  generates an encrypted message that includes the encryption information C 1  and the encrypted content C 2 , together with the schema pair, the policy, the public parameter, and the address of the key generation apparatus read from the memory  11  (step S 17   d ). The transmitter unit  14  of the encryption apparatus  10  then sends the encrypted message to the content server  60 , and a receiver unit of the content server  60  receives the encrypted message (step S 18 ). The encrypted content is uploaded by a known method such as FTP (file transfer protocol) or WebDAV (distributed authoring and versioning protocol for the WWW). 
     The description of &lt;&lt;the encryption process&gt;&gt; ends here. 
     &lt;&lt;Content Delivery Process&gt;&gt; 
     Under the control of a controller unit, the content server  60  stores, in a memory  61  thereof, the encrypted message sent from each encryption apparatus  10 . With this, the encryption information and the encrypted content included in the encrypted message are registered in the content server  60 . The encrypted content registered in the content server  60  is made public, for example, on a web page. 
     The web page is displayed on a display unit, now shown, of the decryption apparatus  30  by a browser unit  38  of the decryption apparatus  30  according to the Internet protocol. The user of the decryption apparatus  30  performs an input operation to select a desired encrypted content. Based on the user input information, the browser unit  38  of the decryption apparatus  30  sends an acquisition request for acquiring the selected encrypted content from the content server  60 , to a decryption unit  33  (hereafter called a relay unit) of the decryption apparatus  30  (step S 19 ). Then, the relay unit  33  of the decryption apparatus  30  sends this acquisition request to the content server  60 , and a receiver unit of the content server  60  receives the acquisition request (step S 20 ). In this way, the browser unit  38  and the content server  60  performs exchanges through the relay unit  33  according to, for example, HTTP (hyper text transfer protocol) (the proxy setting of a WWW browser may be used). A searching unit  62  of the content server  60  searches for the encrypted message that includes the encrypted content specified in the acquisition request and selects it (step S 21 ). A transmitter unit  64  of the content server  60  sends the encrypted message to the decryption apparatus  30  under the control of the searching unit  62 , and a receiver unit of the decryption apparatus receives the encrypted message (step S 22 ). 
     The description of &lt;&lt;the content delivery process&gt;&gt; ends here. 
     &lt;&lt;Decryption Process&gt;&gt; 
     Under the control of a controller unit, not shown, a transmitter unit  34  of the decryption apparatus  30  sends a search query that includes the address of the key generation apparatus, the address being included in the encrypted message, to the registration apparatus  50 , and the receiving unit of the registration apparatus  50  receives the search query (step S 23 ). The searching unit of the registration apparatus  50  searches for the entry of the key generation apparatus specified by the address and selects it (step S 24 ). The transmitter unit of the registration apparatus  50  sends the entry of the search result to the decryption apparatus  30 , and the receiver unit of the decryption apparatus  30  receives the entry (step S 25 ). This entry includes the address of the key generation apparatus, the public parameter of the key generation apparatus, the policy list that can be used by the key generation apparatus, and the schema list that can be used by the key generation apparatus. The received entry is stored in a memory  31  of the decryption apparatus  30 . 
     When the decryption apparatus  30  has the public parameter, schema list, policy list, and address of each key generation apparatus  20  in advance, the processes of steps S 19  to S 21  are omitted. In that case, the decryption apparatus  30  searches the memory  31  for the entry of the key generation apparatus corresponding to the address included in the encrypted message and retrieves it. 
     Under the control of the controller unit, a verification unit (not shown) of the decryption apparatus  30  verifies that the schema pair and the policy included in the encrypted message are included in the schema list and the policy list included in the entry obtained from the registration apparatus  50  (step S 26   a ). If this verification fails, the process ends with a decryption processing failure (step S 26   g ). 
     When the verification succeeds, an acquisition unit  32  of the decryption apparatus  30  reads the attribute designation information or the predicate designation information corresponding to the user of the decryption apparatus  30  from a storage medium such as the IC card  39  (step S 260 . Whether the attribute designation information or the predicate designation information is read depends on the policy included in the encrypted message. More specifically, the read designation information corresponds to the content of the policy identifying one schema paired with the other schema identified by the policy included in the encrypted message. When the policy is Cipher_Text_Policy, the acquisition unit  32  reads the attribute designation information from the storage medium. When the policy is Key_Policy, the acquisition unit  32  reads the predicate designation information from the storage medium. The read designation information is hereafter called user information. The acquisition unit  32  of the decryption apparatus  30  may read from the management apparatus  40  the attribute designation information or the predicate designation information corresponding to the user of the decryption apparatus  30 , in the same way as in &lt;&lt;a user information acquisition process&gt;&gt; in the key generation apparatus  20 , described later. In the first embodiment of the third aspect, the process of step S 26   f  may be omitted. When the decryption apparatus  30  has the attribute designation information and the predicate designation information corresponding to the user in advance, either the attribute designation information or the predicate designation information serves as user information, according to the policy. 
     Next, the verification unit of the decryption apparatus  30  verifies that the decryption apparatus  30  has the decryption key to be used to decrypt the encryption information included in the encryption message (step S 26   b ). 
     The decryption apparatus  30  stores a decryption key table in the memory  31 . In the decryption key table, as shown in  FIG. 15 , for example, the identifier of each key generation apparatus is associated with the public parameter, the schema pair, the decryption key target, the predicate designation information, and the decryption key. The verification unit verifies that the decryption apparatus  30  has the decryption key corresponding to the identifier of the key generation apparatus determined from the address included in the encrypted message, to the public parameter, to the schema pair, and to the decryption key target (corresponding to the content of the policy identifying one schema paired with other the schema identified by the policy included in the encrypted message). When the decryption apparatus  30  has the decryption key, the process of step S 33  is performed. If the decryption apparatus  30  does not have the decryption key, the process of step S 27  is performed. 
     The description of &lt;&lt;the decryption process&gt;&gt; is temporarily halted here and &lt;&lt;a key generation process&gt;&gt; will be described below. 
     If the decryption apparatus  30  does not have the decryption key, the transmitter unit  34  of the decryption apparatus  30  generates, under the control of the controller unit, a key request message that includes the public parameter, the policy, the schema pair, the user information (if any), and the authentication information, all of these items being read from the memory  31 . The authentication information includes, for example, the ID of the user and a password. The transmitter unit  34  of the decryption apparatus  30  sends the key request message to the key generation apparatus having the address read from the memory  31 , and the receiver unit of the key generation apparatus  20  receives the key request message (step S 27 ). The received key request message is stored in a memory  21  of the key generation apparatus  20 . 
     Under the control of a controller unit, a verification unit (not shown) of the key generation apparatus  20  verifies that the schema pair and the policy included in the key request message are included in the schema list and the policy list included in the entry owned by the key generation apparatus  20  (for example, the entry generated in step S 1 ) and that the public parameter included in the key request message is identical to the public parameter of the key generation apparatus  20  (step S 28   a ). If this verification fails, the process ends with a key generation process failure (step S 28   g ). When the authentication information is included in the key request message, the authentication information is also verified in the process of step S 28   a . The key generation apparatus  20  stores an authentication table in the memory  21 . In the authentication table, as shown in  FIG. 16 , for example, each user ID is associated with a password. The verification unit verifies that the user ID and the password included in the key request message are identical to the user ID and the password included in the authentication table. If the verification fails, the process of step S 28   g  is performed. 
     When this verification succeeds, the verification unit of the key generation apparatus  20  verifies that the key request message includes the user information (step S 28   b ). When the key request message includes the user information, the process of step S 28   c  is performed. If the key request message does not include the user information, the process of step S 29  is performed. When a method is employed in which a key request message always includes user information, the process of step S 28   b  and &lt;&lt;a user information acquisition process&gt;&gt;, described later, are unnecessary. 
     The description of &lt;&lt;the key generation process&gt;&gt; is temporarily halted here and &lt;&lt;the user information acquisition process&gt;&gt; will be described below. 
     The transmitter unit  24  of the key generation apparatus  20  sends a request that includes the policy and the authentication information (if any) included in the key request message to the management apparatus  40 , and the management apparatus  40  receives the request (step S 29 ). The received request is stored in a memory of the management apparatus  40 . 
     The management apparatus  40  stores an authentication table in the memory. In the same way as in the authentication table described above, the user ID is associated with the password in this authentication table (see  FIG. 16 ). A verification unit (not shown) of the management apparatus  40  verifies that the user ID and the password included in the request are identical to the user ID and the password included in the authentication table. 
     When this verification succeeds, a searching unit (not shown) of the management apparatus  40  searches a user information table stored in the memory for the attribute designation information or the predicate designation information according to the policy included in the request (step S 30 ). The user information table includes, for example, a first table formed of each user ID, and an attribute name and attribute designation information associated with the user ID, and a second table formed of the user ID and predicate designation information associated with the user ID (see  FIG. 17 ). Whether the attribute designation information or the predicate designation information is read is determined by the policy included in the request. More specifically, the read information corresponds to the content of the policy identifying one schema paired with the other schema identified by the policy included in the request. When the policy is Cipher_Text_Policy, the searching unit reads the attribute designation information corresponding to the user ID included in the request from the first table. When the policy is Key_Policy, the searching unit reads the predicate designation information corresponding to the user ID included in the request from the second table. The read designation information is hereafter called user information. 
     Under the control of a controller unit, a transmitter unit of the management apparatus  40  sends the user information to the key generation apparatus  20 , and the receiver unit of the key generation apparatus  20  receives the user information (step S 31 ). The received user information is stored in the memory  21  of the key generation apparatus  20 . 
     The description of &lt;&lt;the user information acquisition process&gt;&gt; ends here, and the description of &lt;&lt;the key generation process&gt;&gt; will be resumed. 
     When the key generation apparatus  20  already has the user information or receives the user information through the user information acquisition process (step S 31 ), a second predicate logic information acquisition unit  23  of the key generation apparatus  20  reads the policy, the schema pair, the public parameter, and the user information from the memory  21 , and obtains attribute information (hereafter called second attribute information) or predicate information (second predicate information) from the user information (step S 28   c ). In this process, the schema paired with the schema identified by the policy is applied to the user information. When the policy is Cipher_Text_Policy, the schema (attribute schema) paired with the schema (predicate schema) identified by Cipher_Text_Policy is used to obtain the second attribute information from the user information (attribute designation information). When the policy is Key_Policy, the schema (predicate schema) paired with the schema (attribute schema) identified by Key_Policy is used to obtain the second predicate information from the user information (predicate designation information). It should be noted that the schema paired with the schema used in step S 17   a  is used in this process. In the first embodiment of the third aspect, the second attribute information and the second predicate information are one or a plurality of vector information having elements of the finite field F q  as components (see  FIGS. 11 to 13 ). 
     The schema is used to extract and arrange necessary attribute values from the input information. 
     Next, a key generation unit  25  of the key generation apparatus  20  generates a random number α that is an element of the finite field F q , based on the public parameter q according to the predicate encryption algorithm, and uses the random number α, the second attribute information v (p) =(V (p)1 , . . . , V (p)n ) or the second predicate information w (p) =(w (p)1 , . . . , w (p)n ) read from the memory  21 , and a private key B* of the key generation apparatus to obtain a decryption key R according to Expression (10), described earlier (step S 28   d ). The second predicate information w (p)  is used in this example because the input information used in the encryption process is the attribute designation information. When the input information is the predicate designation information, the second attribute information v (p)  is used. Therefore, w (p)  needs to be replaced with v (p)  in Expression (10), described earlier. 
     Next, under the control of the controller unit, the transmitter unit  24  of the key generation apparatus  20  sends the decryption key R to the decryption apparatus  30 , and the receiver unit of the decryption apparatus  30  receives the decryption key R (step S 32 ). The received decryption key R is stored in the memory  31  of the decryption apparatus  30 . 
     The description of &lt;&lt;the key generation process&lt;&lt; ends here, and the description of &lt;&lt;the decryption process&gt;&gt; will be resumed. 
     When the decryption apparatus  30  already has the decryption key or receives the decryption key through the key generation process (step S 32 ), the relay unit  33  of the decryption apparatus  30  reads the public parameter, the decryption key R, the encryption information C 1 , and the encrypted content C 2  (if necessary) from the memory  31 , and obtains the common key K and the content M (if necessary) (step S 33 ). 
     Details of the process in step S 33  will be described below. The relay unit  33  includes a first decryption unit  33   a  and a second decryption unit  33   b  for decryption. 
     The first decryption unit  33   a  reads the public parameter, the decryption key R, and the encryption information C 1  from the memory  31 , and obtains e(C 1 , R) according to the predicate encryption algorithm. As shown in Expression (11), described earlier, the calculation result depends on the result of the canonical inner product of the first attribute information v and the second predicate information w (p)  taken out from the encryption information C 1  and the decryption key R according to bilinearity when the input information is the attribute designation information. When the input information is the predicate designation information, v needs to be replaced with v (p)  and w (p)  needs to be replaced with w in Expression (11), described earlier. The calculation result depends on the result of the canonical inner product of the first predicate information w and the second attribute information v (p)  taken out from the encryption information C 1  and the decryption key R according to bilinearity. In Expression (11), e(b i , b i *) is defined as shown in Expression (12), described earlier, where δ ij  is the Kronecker&#39;s delta symbol. 
     Therefore, when the canonical inner product of the first attribute information v and the second predicate information w (p)  is zero (or when the canonical inner product of the first predicate information w and the second attribute information v (p)  is zero), the result of calculation in Expression (11), g T   ρ , is obtained. When the result of calculation, g T   ρ , is obtained, the first decryption unit  33   a  of the decryption apparatus  30  obtains the common key K, which is correct, according to Expression (7), described earlier (step S 26   c ). When the canonical inner product of the first attribute information v and the second predicate information w (p)  is not zero (or when the canonical inner product of the first predicate information w and the second attribute information v (p)  is not zero), the first decryption unit  33   a  obtains an incorrect value according to Expression (7), described earlier. In this example, it is assumed that the hash function H is common to the system or is included in the public parameter. The encryption information C 1  corresponds to the information ρ used to generate the common key K in this example. When encryption information C 1  corresponds to the common key K, the result of calculation in Expression (11), described earlier, is the common key K (or incorrect value). In other words, an authorized user of the decryption apparatus  30  has predicate designation information that gives the second predicate information w (p)  which makes the canonical inner product with the first attribute information v zero, or attribute designation information that gives the second attribute information v (p)  which makes the canonical inner product with the first predicate information w zero. 
     Then, a second decryption unit  33   b  uses the common key K and the encrypted content C 2  to calculate content M according to Expression (13), described earlier (step S 26   d ). A decryption method Dec K  that uses the private key corresponds to the encryption method Enc K . 
     If the result of calculation in Expression (11), described earlier, is an incorrect value, the correct plaintext M cannot be obtained by Expression (13), described earlier. 
     The decryption apparatus  30  may store the decryption key R in the decryption key table. In addition, the decryption apparatus  30  may store the common key K in the decryption key table. 
     The content M, obtained by decrypting the encrypted content, is sent from the relay unit  33  to the browser unit  38  (step S 34 ), and the browser unit  38  displays the content M on a display unit of the decryption apparatus  30  (step S 35 ). 
     The description of &lt;&lt;the decryption process&gt;&gt; ends here. 
     (Second Embodiment According to Third Aspect) 
     A second embodiment of the third aspect differs from the first embodiment of the third aspect in that the decryption apparatus  30  generates the second attribute information or the second predicate information. Because of this difference, the second embodiment of the third aspect differs in several points from the first embodiment of the third aspect. A description of commonalities between the first and second embodiments of the third aspect is omitted (the same reference numerals are assigned to the same components), and a description of the differences from the first embodiment of the third aspect will be made with reference to  FIGS. 72 to 75 . 
     The processes of steps S 1  to S 26   b  are the same as those in the first embodiment of the third aspect. 
     When the decryption key is not possessed in the process of step S 26   b , a second predicate logic information acquisition unit  35  of the decryption apparatus  30  reads the policy, the schema pair, the public parameter, and the user information from the memory  31  and obtains attribute information (called second attribute information) or predicate information (called second predicate information) from the user information (step S 27   g ). In this process, the schema paired with the schema identified by the policy is applied to the user information. When the policy is Cipher_Text_Policy, the schema (attribute schema) paired with the schema (predicate schema) identified by Cipher_Text_Policy is used to obtain the second attribute information from the user information (attribute designation information). When the policy is Key_Policy, the schema (predicate schema) paired with the schema (attribute schema) identified by Key_Policy is used to obtain the second predicate information from the user information (predicate designation information). It should be noted that the schema paired with the schema used in step S 17   a  is used in this process. In the second embodiment of the third aspect, the second attribute information and the second predicate information are one or a plurality of vector information having elements of the finite field F q  as components (see  FIGS. 11 to 13 ). 
     After the process of step S 27   g , the process of step  27  is performed. In this process, the transmitter unit  34  of the decryption apparatus  30  generates a key request message that includes the public parameter, the policy, the schema pair, and the authentication information read from the memory  31 , and the second attribute information or the second predicate information, under the control of the controller unit. The transmitter unit  34  of the decryption apparatus  30  sends the key request message to the key generation apparatus having the address read from the memory  31 , and the receiver unit of the key generation apparatus  20  receives the key request message. 
     When the verification succeeds in the process of step S 28   a , the process of step S 28   d  is performed. Since the key generation apparatus  20  has received the second attribute information or the second predicate information from the decryption apparatus  30 , the function and the process for generating the information are unnecessary, unlike in the first embodiment of the third aspect. 
     The processes of steps S 32  to S 35 , to be performed after the process of step S 28   d , are the same as those in the first embodiment of the third aspect. 
     (Third Embodiment According to Third Aspect) 
     A third embodiment of the third aspect differs from the first embodiment of the third aspect in that the encryption unit  13  of the encryption apparatus  10  uses the first attribute information v=(v 1 , . . . , v n ) or the first predicate information w=(w 1 , . . . , w n ), together with the public key included in the public parameter and the content M read from the memory  11 , to obtain encrypted content C 1 . In other words, the predicate encryption algorithm disclosed in Non-patent literature 2, for example, is used in the third embodiment of the third aspect. Because of this difference, the third embodiment of the third aspect differs in several points from the first embodiment of the third aspect. A description of commonalities between the first and third embodiments of the third aspect is omitted (the same reference numerals are assigned to the same components), and a description of the differences from the first embodiment of the third aspect will be made with reference to  FIGS. 76 to 79 . 
     The processes of steps S 1  to S 17   a  are the same as those in the first embodiment of the third aspect. The public parameter and some other information are required by the predicate encryption algorithm of the third embodiment of the third aspect. For specific information required, see Non-patent literature 2, described above, for example. 
     In the process of step S 17   b   1 , following the process of step S 17   a , the encryption unit  13  of the encryption apparatus  10  uses the first attribute information v=(v 1 , . . . , v n ) or the first predicate information w=(w 1 , . . . , w n ), together with the public key included in the public parameter and the content M read from the memory  11 , to obtain encrypted content C 1  according to the predicate encryption algorithm (step S 17   b   1 ). 
     After the process of step S 17   b   1 , the process of step  17   d  is performed. In this process, the transmitter unit  14  of the encryption apparatus  10  generates an encrypted message that includes the encrypted content C 1 , and the schema pair, the policy, the public parameter, and the address of the key generation apparatus read from the memory  31 , under the control of the controller unit (step S 17   d ). 
     The processes of steps S 18  to S 32 , following the process of step S 17   d , are the same as those in the first embodiment of the third aspect. 
     In the process of step S 26   c   1 , following the process of step S 32 , a decryption unit  33   c  included in the relay unit  33  of the decryption apparatus  30  reads the public parameter, the decryption key R, and the encrypted content C 1  from the memory  31  to calculate content M according to the predicate encryption algorithm (step S 26   c   1 ). 
     The processes of steps S 34  and S 35 , following the process of step S 26   c   1 , are the same as those in the first embodiment of the third aspect. 
     (Fourth Embodiment According to Third Aspect) 
     A fourth embodiment of the third aspect corresponds to a combination of the second embodiment of the third aspect and the third embodiment of the third aspect. The fourth embodiment of the third aspect differs from the first embodiment of the third aspect in that (1) the decryption apparatus  30  generates the second attribute information or the second predicate information, and (2) the encryption unit  13  of the encryption apparatus  10  uses the first attribute information v=(v 1 , . . . , v n ) or the first predicate information w=(w 1 , . . . , w n ), together with the public key included in the public parameter and the content M read from the memory  11 , to obtain encrypted content C 1 . Because of these differences, the fourth embodiment of the third aspect differs in several points from the first embodiment of the third aspect. A description of commonalities between the first and fourth embodiments of the third aspect is omitted (the same reference numerals are assigned to the same components), and a description of the differences from the first embodiment of the third aspect will be made with reference to  FIGS. 80 and 81 . 
     The processes of steps S 1  to S 17   a  are the same as those in the first embodiment of the third aspect. The public parameter and some other information are required by the predicate encryption algorithm of the fourth embodiment of the third aspect. For specific information required, see Non-patent literature 2, described above, for example. 
     In the process of step S 17   b   1 , following the process of step S 17   a , the encryption unit  13  of the encryption apparatus  10  uses the first attribute information v=(v 1 , . . . , v n ) or the first predicate information w=(w 1 , . . . , w n ), together with the public key included in the public parameter and the content M read from the memory  11 , to obtain encrypted content C 1  according to the predicate encryption algorithm (step S 17   b   1 ). 
     After the process of step S 17   b   1 , the process of step  17   d  is performed. In this process, the transmitter unit  14  of the encryption apparatus  10  generates an encrypted message that includes the encrypted content C 1 , and the schema pair, the policy, the public parameter, and the address of the key generation apparatus read from the memory  31 , under the control of the controller unit (step S 17   d ). 
     The processes of steps S 18  to S 26   b , following the process of step S 17   d , are the same as those in the first embodiment of the third aspect. 
     When the decryption key is not possessed in the process of step S 26   b , the second predicate logic information acquisition unit  35  of the decryption apparatus  30  reads the policy, the schema pair, the public parameter, and the user information from the memory  31  and obtains attribute information (called second attribute information) or predicate information (called second predicate information) from the user information (step S 27   g ). In this process, the schema paired with the schema identified by the policy is applied to the user information. When the policy is Cipher_Text_Policy, the schema (attribute schema) paired with the schema (predicate schema) identified by Cipher_Text_Policy is used to obtain the second attribute information from the user information (attribute designation information). When the policy is Key_Policy, the schema (predicate schema) paired with the schema (attribute schema) identified by Key_Policy is used to obtain the second predicate information from the user information (predicate designation information). It should be noted that the schema paired with the schema used in step S 17   a  is used in this process. In the fourth embodiment of the third aspect, the second attribute information and the second predicate information are one or a plurality of vector information having elements of the finite field F q  as components (see  FIGS. 11 to 13 ). 
     After the process of step S 27   g , the process of step  27  is performed. In this process, the transmitter unit  34  of the decryption apparatus  30  generates a key request message that includes the public parameter, the policy, the schema pair, and the authentication information read from the memory  31 , and the second attribute information or the second predicate information, under the control of the controller unit. The transmitter unit  34  of the decryption apparatus  30  sends the key request message to the key generation apparatus having the address read from the memory  31 , and the receiver unit of the key generation apparatus  20  receives the key request message. 
     When the verification succeeds in the process of step S 28   a , the process of step S 28   d  is performed. Since the key generation apparatus  20  has received the second attribute information or the second predicate information from the decryption apparatus  30 , the function and the process for generating the information are unnecessary. 
     The process of step S 32 , following the process of step S 28   d , is the same as that in the first embodiment of the third aspect. 
     In the process of step S 26   c   1 , following the process of step S 32 , the decryption unit  33  of the decryption apparatus  30  reads the public parameter, the decryption key R, and the encrypted content C 1  from the memory  31  to calculate content M according to the predicate encryption algorithm (step S 26   c   1 ). 
     The processes of steps S 34  and S 35 , to be performed after the process of step S 26   c   1 , are the same as those in the first embodiment of the third aspect. 
     The relay unit decrypts the encrypted content as clearly understood from the above described embodiments of the third aspect. Therefore, decryption can be performed separately from the usual protocol of, for example, a WWW server or a WWW browser, and a known WWW system can be used easily. Since the relay unit performs decryption even when the user does not perform any operation to decrypt the encrypted content, the user is provided with great convenience. 
     In the above described embodiments of the third aspect, a cache server may be provided at the communication path between the content server  60  and the decryption apparatus  30  (in that case, the encrypted content is cached). 
     The relay unit may cache the encrypted content before it is decrypted, in order to provide convenience when a client terminal is not always connected to the communication network  5 . 
     To avoid the caching operation of a WWW browser for the decrypted content, an HTTP cache control header that disables caching may be added to a response to the WWW browser. 
     When a plurality of users use the same client terminal, the relay unit may have an authentication function. In that case, basic authentication and digest authentication in HTTP may be used for a WWW browser, and an authentication information (user IDs and passwords) table and a management function for adding, changing, and deleting authentication information may be added to the relay unit. 
     It is preferred that the above described embodiments of the third aspect be applied to content delivery systems. Since predicate encryption is not based on information depending on the receiver, it is preferred that the predicate encryption be applied to access control of content that may be browsed by unspecified persons. 
       FIG. 82  shows the structure of data exchanged. The basic format of the entire message conforms, for example, to S/MIME (Secure Multipurpose Internet Mail Extensions). An appropriate data structure is given to data from the start position marker of an encrypted message to the end position marker of the encrypted message in XML (the eXtensible Markup Language) or other some language. 
     Data related to the encrypted content is called an encryption block. The components of the encryption block will be described below. 
     An algorithm identifier block specifies information that identifies the predicate encryption algorithm used to encrypt the private key and the private key encryption algorithm used to encrypt the content. An identifier indicating the algorithm or the version of an algorithm (for example, PE/Version X+Camellia (Camellia is a registered trademark)) can be specified. 
     A digital signature block specifies the digital signature. A known signature algorithm can be used. This item can be omitted depending on the application. 
     A public parameter information block specifies information that identifies the public parameter used. An identifier that identifies the public parameter or the data of the public parameter can be specified. 
     A policy field specifies an identifier that identifies the policy used. 
     A schema field specifies an identifier that identifies the schema used or the data of the schema. 
     An encryption information field specifies the data (encryption information) obtained by encrypting, with the predicate encryption, the private key used to encrypt the content. 
     A content file name, a content type, and a content file size specify the file name of the content, the data type (such as text or html) of the content, and the file size of the content, respectively. 
     An attribute field and a predicate field specify letter string representations that indicate the attribute and the predicate used for encryption, corresponding to the policy field, respectively. These items can be omitted according to the application. 
     The encrypted content generated by encrypting the content is described in encryption data. 
     The basic data structure of the content is described with HTML (Hyper Text Markup Language), and the encryption block is specified by a comment statement in HTML. 
     The encryption block is given an appropriate data structure with XML (the eXtensible Markup Language) or other languages. 
     When the encrypted content is directly browsed with a browser, comment statements are not displayed, and the other HTML statements are displayed. Therefore, a message indicating that the data includes encrypted content or an error message for a decryption failure may be described in the other HTML statements. 
     In the above description, the algebraic structure S is a finite field. The algebraic structure may be a finite ring (integer residue ring). When a predicate encryption algorithm uses an inner product, for example, the first and second attribute information and the first and second predicate information are vectors having elements of S as components. 
     According to the scheme of the algebraic structure S, the public key B is a set of elements of a module V on S, the private key B* is a set of elements of a module V* dual of the module V, and the decryption key R is an element of the dual module V*. When the algebraic structure S is a finite field, the module V on the finite field is a so-called vector space on the finite field. In that case, the encryption unit performs calculations that include a scalar multiplication in which the elements of the public key B are multiplied by the components, used as coefficients, of the first attribute information or a scalar multiplication in which the elements of the public key B are multiplied by the components, used as coefficients, of the first predicate information, to obtain encryption information. The key generation unit performs calculations that include a scalar multiplication in which the elements of the private key B* are multiplied by the components, used as coefficients, of the second predicate information or a scalar multiplication in which the elements of the private key B* are multiplied by the components, used as coefficients, of the second attribute information, to obtain the decryption key R. 
     The hardware entities (the client apparatus, the key generation apparatus, the registration apparatus, the management apparatus, the maintenance apparatus, the authentication apparatus, and the content server) included in the cryptographic system include an input unit connectable to a keyboard or the like, an output unit connectable to a liquid crystal display unit and or like, a communication unit connectable to a communication apparatus (such as a communication cable) with which communications are allowed outside the entities, a CPU (central processing unit) (which may be provided with a cache memory and a register), memories such as a RAM and a ROM, an external storage device (hard disk), and a bus that is connected such that data can be exchanged among the input unit, the output unit, the communication unit, the CPU, the RAM, the ROM, and the external storage unit. If necessary, the hardware entities may be provided with an apparatus (drive) that can read and write data to and from a storage medium such as a CD-ROM. Physical entities provided with such hardware resources include a general purpose computer. 
     The external storage device of each hardware entity stores a program required to implement the foregoing functions and data required in the processing of the program (instead of the external storage device, a read only storage device, that is, a ROM, may store the program, for example). Data obtained by the processing of the program and the like are stored in a RAM or the external storage device, if necessary. In the above descriptions, storage devices, such as RAMs and registers, that store calculation results and the addresses of the storage areas of the results are called just memories. 
     In each hardware entity, the program stored in the external storage device (or the ROM) and the data required for the processing of the program are read into a memory, when needed, and are interpreted, executed, or processed by the CPU, as required. As a result, the CPU implements the predetermined functions (such as those of the encryption unit, the decryption unit, the key generation unit, the first predicate logic information acquisition unit, the second predicate logic information acquisition unit, and the control unit). 
     Numerical calculations in number theory are required in some cases in detailed operations of the hardware entities described in each embodiment. Since the numerical calculations in number theory are performed in the same way as with a known technology, a detailed description thereof, including a calculation method thereof, is omitted. (Software that is capable of the numerical calculations in number theory and indicates the current technical level thereof includes PARI/GP and KANT/KASH. For PARI/GP, see http://pari.math.u-bordeaux.fr/, retrieved on Apr. 14, 2009. For KANT/KASH, see http://www.math.tu-berlin.de/algebra/, retrieved on Apr. 14, 2009.) The following reference A describes the numerical calculations in number theory.
     Reference A: H. Cohen, “A Course in Computational Algebraic Number Theory”, GTM 138, Springer-Verlag, 1993.   

     The present invention is not limited to the embodiments described above, and appropriate modifications can be made without departing from the scope of the present invention. The processes described in the above embodiments may be executed not only time sequentially according to the order of description but also in parallel or individually when necessary or according to the processing capabilities of the apparatuses that execute the processes. 
     When the processing functions of the hardware entities described in the above embodiments are implemented by a computer, the processing details of the functions that should be provided by hardware entities are described in a program. When the program is executed by a computer, the processing functions of the hardware entities are implemented on the computer. 
     The program containing the processing details can be recorded in a computer-readable storage medium. The computer-readable storage medium can be any type of medium, such as a magnetic storage device, an optical disc, a magneto-optical storage medium, and a semiconductor memory. For example, a hard disk device, a flexible disk, a magnetic tape, or the like can be used as a magnetic recording device; a digital versatile disc (DVD), a DVD random access memory (DVD-RAM), a compact disc read only memory (CD-ROM), a CD recordable or rewritable (CD-R/RW), or the like can be used as an optical disc; a magneto-optical disc or the like can be used as a magneto-optical storage medium; and an electronically erasable and programmable read only memory (EEPROM) or the like can be used as a semiconductor memory. 
     The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or a CD-ROM with the program recorded on it, for example. The program may also be distributed by storing the program in a storage unit of a server computer and transferring the program from the server computer to another computer through the network. 
     A computer that executes this type of program first stores the program recorded on the portable recording medium or the program transferred from the server computer in its storage unit. Then, the computer reads the program stored in its storage unit and executes processing in accordance with the read program. In a different program execution form, the computer may read the program directly from the portable recording medium and execute processing in accordance with the program, or the computer may execute processing in accordance with the program each time the computer receives the program transferred from the server computer. Alternatively, the processing may be executed by a so-called application service provider (ASP) service, in which the processing function is implemented just by giving a program execution instruction and obtaining the results without transferring the program from the server computer to the computer. The program of this form includes information that is provided for use in processing by a computer and is treated correspondingly as a program (something that is not a direct instruction to the computer but is data or the like that has characteristics that determine the processing executed by the computer). 
     In the description given above, the hardware entities are implemented by executing the predetermined program on the computer, but at least a part of the processing may be implemented by hardware. 
     Information described in figures, such as names, are imaginary and has no relationship with actual persons. 
     &lt;Summing Up&gt; 
     The present invention can be summed up from the first aspect in the following way. 
     Item 1 
     A cryptographic system that uses predicate encryption, comprising at least: 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; and 
     one or a plurality of decryption apparatuses; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     each of the one or the plurality of encryption apparatuses comprises a first propositional logic information acquisition unit adapted to use one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and 
     an encryption unit adapted to use the first attribute information or the first logic information, together with the public key of the key generation apparatus, to obtain a common key, and encryption information corresponding to the common key or corresponding to information used to generate the common key, according to the functional encryption algorithm; 
     each of the one or the plurality of key generation apparatuses comprises 
     a second propositional logic information acquisition unit adapted to use the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and 
     a key generation unit adapted to use the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encryption information; and 
     each of the one or the plurality of decryption apparatuses comprises a decryption unit adapted to use the decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm. 
     Item 2 
     A cryptographic system that uses functional encryption, comprising at least: 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; and 
     one or a plurality of decryption apparatuses; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     each of the one or the plurality of encryption apparatuses comprises 
     a first propositional logic information acquisition unit adapted to use one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and 
     an encryption unit adapted to use the first attribute information or the first logic information, together with the public key of the key generation apparatus, to obtain a common key, and encryption information corresponding to the common key or corresponding to information used to generate the common key, according to the functional encryption algorithm; 
     each of the one or the plurality of decryption apparatuses comprises 
     a second propositional logic information acquisition unit adapted to use the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and 
     a decryption unit adapted to use a decryption key sent from the key generation apparatus to apply a decryption process to the encryption information according to the functional encryption algorithm; and 
     each of the one or the plurality of key generation apparatuses comprises a key generation unit adapted to use the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate the decryption key used to decrypt the encryption information. 
     Item 3 
     A cryptographic system that uses functional encryption, comprising at least: 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; and 
     one or a plurality of decryption apparatuses; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     each of the one or the plurality of encryption apparatuses comprises 
     a first propositional logic information acquisition unit adapted to use one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and 
     an encryption unit adapted to use the first attribute information or the first logic information, together with the public key of the key generation apparatus and plaintext, to obtain encryption information corresponding to the plaintext according to the functional encryption algorithm; 
     each of the one or the plurality of key generation apparatuses comprises 
     a second propositional logic information acquisition unit adapted to use the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and 
     a key generation unit adapted to use the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encryption information; and 
     each of the one or the plurality of decryption apparatuses comprises a decryption unit adapted to use the decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm. 
     Item 4 
     A cryptographic system that uses functional encryption, comprising at least: 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; and 
     one or a plurality of decryption apparatuses; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     each of the one or the plurality of encryption apparatuses comprises 
     a first propositional logic information acquisition unit adapted to use one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and 
     an encryption unit adapted to use the first attribute information or the first logic information, together with the public key of the key generation apparatus and plaintext, to obtain encryption information corresponding to the plaintext according to the functional encryption algorithm; 
     each of the one or the plurality of decryption apparatuses comprises 
     a second propositional logic information acquisition unit adapted to use the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and 
     a decryption unit adapted to use a decryption key sent from the key generation apparatus to apply a decryption process to the encryption information according to the functional encryption algorithm; and 
     each of the one or the plurality of key generation apparatuses comprises a key generation unit adapted to use the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate the decryption key used to decrypt the encryption information. 
     Item 5 
     A cryptographic system according to one of Items 1 and 2, 
     wherein the encryption unit of the encryption apparatus encrypts plaintext with the common key to obtain ciphertext; and 
     the decryption unit of the decryption apparatus uses the common key obtained in the decryption process to apply a second decryption process to the ciphertext or uses a common key generated from the information that is obtained in the decryption process and that is used to generate the common key to apply a second decryption process to the ciphertext. 
     Item 6 
     A cryptographic system according to one of Items 1 to 5, 
     wherein the attribute designation information and/or the logical expression designation information corresponding to the user is stored in a storage medium; and 
     the decryption apparatus comprises a user information acquisition unit adapted to acquire the attribute designation information or the logical expression designation information corresponding to the user of the decryption apparatus from the storage medium. 
     Item 7 
     A cryptographic system according to one of Items 1 and 3, wherein the attribute designation information or the logical expression designation information corresponding to the user of the decryption apparatus, the information being used by the key generation apparatus, is obtained from the decryption apparatus. 
     Item 8 
     A cryptographic system according to one of Items 1 to 6, 
     wherein the cryptographic system further comprises one or a plurality of user information management apparatuses; 
     each of the one or the plurality of user information management apparatuses comprises a storage unit adapted to store the attribute designation information and/or the logical expression designation information corresponding to the user; and 
     the key generation apparatus obtains the attribute designation information or the logical expression designation information corresponding to the user of the decryption apparatus from the user information management apparatus. 
     Item 9 
     A cryptographic system according to one of Items 1 to 8, 
     wherein the one or the plurality of conversion rule information pairs are determined in advance for each of the one or the plurality of key generation apparatuses; 
     the cryptographic system further comprises one or a plurality of conversion rule information pair management apparatuses; 
     each of the one or the plurality of conversion rule information pair management apparatuses comprises a storage unit adapted to store the conversion rule information pair corresponding to each of the one or the plurality of key generation apparatuses; 
     the encryption apparatus comprises a conversion rule information pair acquisition unit adapted to acquire the conversion rule information pair from the conversion rule information pair management apparatus; and 
     the decryption apparatus comprises a conversion rule information pair acquisition unit adapted to acquire the conversion rule information pair from the conversion rule information pair management apparatus 
     Item 10 
     A cryptographic system according to one of Items 1 to 8, 
     wherein the one or the plurality of conversion rule information pairs are determined in advance for each of the one or the plurality of key generation apparatuses; 
     each of the one or the plurality of key generation apparatuses further comprises a storage unit adapted to store the conversion rule information pair corresponding to the key generation apparatus; 
     each of the one or the plurality of encryption apparatuses further comprises a storage unit adapted to store the conversion rule information pair corresponding to at least one of the one or the plurality of the key generation apparatuses; and 
     each of the one or the plurality of decryption apparatuses further comprises a storage unit adapted to store the conversion rule information pair corresponding to at least one of the one or the plurality of the key generation apparatuses. 
     Item 11 
     A cryptographic system according to one of Items 1 to 10, wherein whether the policy information identifies only the attribute conversion rule information, only the logical expression conversion rule information, or the attribute conversion rule information and the logical expression conversion rule information is determined in advance for each of the one or the plurality of key generation apparatuses. 
     Item 12 
     A cryptographic system according to one of Items 1 to 11, 
     wherein an algebraic structure K is a finite ring or a finite field; 
     the first and second attribute information and the first and second logic information are vectors having elements of K as components; and 
     the decryption process of the decryption unit receives the encryption information and the decryption key as inputs and performs a calculation depending on the result of the canonical inner product of the first logic information and the second attribute information, or of the canonical inner product of the first attribute information and the second logic information. 
     Item 13 
     A cryptographic system according to Item 12, 
     wherein the public key is a set of elements of a module V on K; 
     the private key is a set of elements of a module V* dual of the module V; 
     the decryption key is an element of the dual module V*; the encryption unit performs calculations that include a scalar multiplication in which the elements of the public key are multiplied by the components, used as coefficients, of the first attribute information or a scalar multiplication in which the elements of the public key are multiplied by the components, used as coefficients, of the first logic information, to obtain the encryption information; 
     the key generation unit performs calculations that include a scalar multiplication in which the elements of the private key are multiplied by the components, used as coefficients, of the second logic information or a scalar multiplication in which the elements of the private key are multiplied by the components, used as coefficients, of the second attribute information, to obtain the decryption key; and 
     the calculation used in the decryption process of the decryption unit has bilinearity and the result of the calculation depends on the result of the canonical inner product of the first logic information and the second attribute information, or of the first attribute information and the second logic information, all the pieces of information being taken out from the encryption information and the decryption key according to bilinearity. 
     Item 14 
     A cryptographic communication method for a cryptographic system that uses functional encryption and includes at least 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; and 
     one or a plurality of decryption apparatuses; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     the cryptographic communication method comprising: 
     a first propositional logic information acquisition step of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information, in a first propositional logic information acquisition unit of each of the one or the plurality of encryption apparatuses; 
     an encryption step of using the first attribute information or the first logic information, together with the public key of the key generation apparatus, to obtain a common key and encryption information corresponding to the common key or corresponding to information used to generate the common key, according to the functional encryption algorithm, in an encryption unit of the encryption apparatus; 
     a second propositional logic information acquisition step of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus, in a second propositional logic information acquisition unit of each of the one or the plurality of key generation apparatuses; 
     a key generation step of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encryption information, in a key generation unit of the key generation apparatus; and 
     a decryption step of using the decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm in a decryption unit of each of the one or the plurality of decryption apparatuses. 
     Item 15 
     A cryptographic communication method for a cryptographic system that uses functional encryption and includes at least 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; and 
     one or a plurality of decryption apparatuses; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     the cryptographic communication method comprising: 
     a first propositional logic information acquisition step of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information, in a first propositional logic information acquisition unit of each of the one or the plurality of encryption apparatuses; 
     an encryption step of using the first attribute information or the first logic information, together with the public key of the key generation apparatus, to obtain a common key and encryption information corresponding to the common key or corresponding to information used to generate the common key, according to the functional encryption algorithm, in an encryption unit of the encryption apparatus; 
     a second propositional logic information acquisition step of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus, in a second propositional logic information acquisition unit of the decryption apparatus; 
     a key generation step of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encryption information, in a key generation unit of the key generation apparatus; and 
     a decryption step of using the decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm in a decryption unit of the decryption apparatus. 
     Item 16 
     A cryptographic communication method for a cryptographic system that uses functional encryption and includes at least 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; and 
     one or a plurality of decryption apparatuses; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     the cryptographic communication method comprising: 
     a first propositional logic information acquisition step of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information in a first propositional logic information acquisition unit of each of the one or the plurality of encryption apparatuses; 
     an encryption step of using the first attribute information or the first logic information, together with the public key of the key generation apparatus and plaintext, to obtain encryption information corresponding to the plaintext, according to the functional encryption algorithm, in an encryption unit of the encryption apparatus; 
     a second propositional logic information acquisition step of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus, in a second propositional logic information acquisition unit of each of the one or the plurality of key generation apparatuses; 
     a key generation step of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encryption information, in a key generation unit of the key generation apparatus; and 
     a decryption step of using the decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm in a decryption unit of each of the one or the plurality of decryption apparatuses. 
     Item 17 
     A cryptographic communication method for a cryptographic system that uses functional encryption and includes at least 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; and 
     one or a plurality of decryption apparatuses; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     the cryptographic communication method comprising: 
     a first propositional logic information acquisition step of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information, in a first propositional logic information acquisition unit of each of the one or the plurality of encryption apparatuses; 
     an encryption step of using the first attribute information or the first logic information, together with the public key of the key generation apparatus and plaintext, to obtain encryption information corresponding to the plaintext, according to the functional encryption algorithm, in an encryption unit of the encryption apparatus; 
     a second propositional logic information acquisition step of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus, in a second propositional logic information acquisition unit of the decryption apparatus; 
     a key generation step of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encryption information, in a key generation unit of the key generation apparatus; and 
     a decryption step of using the decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm in a decryption unit of the decryption apparatus. 
     Item 18 
     A cryptographic communication method according to one of Items 14 and 15, 
     wherein the encryption step comprises a ciphertext generation step of also encrypting plaintext with the common key to obtain ciphertext, in the encryption unit; and 
     the decryption step comprises a second decryption step of performing a second decryption process of the ciphertext with the common key obtained in the decryption process or a second decryption process of the ciphertext with a common key generated from the information used to generate the common key and obtained in the decryption process, in the decryption unit. 
     Item 19 
     A cryptographic communication method according to one of Items 14 to 18, comprising an acquisition step of acquiring the attribute designation information or the logical expression designation information corresponding to the user of the decryption apparatus from a storage medium that stores the attribute designation information and/or the logical expression designation information corresponding to the user, in an acquisition unit of the decryption apparatus. 
     Item 20 
     A cryptographic communication method according to one of Items 14 and 16, comprising a user information transmission step of transmitting the attribute designation information or the logical expression designation information corresponding to the user of the decryption apparatus, to the key generation apparatus, in a transmitter unit of the decryption apparatus; and a user information receiving step of receiving the attribute designation information or the logical expression designation information corresponding to the user from the decryption apparatus, in a receiver unit of the key generation apparatus. 
     Item 21 
     A cryptographic communication method according to one of Items 14 to 18, 
     wherein the cryptographic system comprises one or a plurality of user information management apparatuses provided with a storage unit adapted to store the attribute designation information and/or the logical expression designation information corresponding to the user; and the cryptographic communication method comprises a user information acquisition step of acquiring the attribute designation information or the logical expression designation information corresponding to the user of the decryption apparatus from the user information management apparatus, in a user information acquisition unit of the key generation apparatus. 
     Item 22 
     A cryptographic communication method according to one of Items 14 to 21, 
     wherein the one or the plurality of conversion rule information pairs are determined in advance for each of the one or the plurality of key generation apparatuses; 
     the cryptographic system comprises one or a plurality of conversion rule information pair management apparatuses provided with a storage unit adapted to store the conversion rule information pair corresponding to each of the one or the plurality of key generation apparatuses; and 
     the cryptographic communication method comprises: 
     a conversion rule information pair acquisition step of acquiring the conversion rule information pair from the conversion rule information pair management apparatus, in a conversion rule information pair acquisition unit of the encryption apparatus; and 
     a conversion rule information pair acquisition step of acquiring the conversion rule information pair from the conversion rule information pair management apparatus, in a conversion rule information pair acquisition unit of the decryption apparatus. 
     Item 23 
     A cryptographic communication method according to one of Items 14 to 22, wherein whether the policy information identifies only the attribute conversion rule information, only the logical expression conversion rule information, or the attribute conversion rule information and the logical expression conversion rule information is determined in advance for each of the one or the plurality of key generation apparatuses. 
     Item 24 
     A cryptographic communication method according to one of Items 14 to 23, 
     wherein an algebraic structure K is a finite ring or a finite field; 
     the first and second attribute information and the first and second logic information are vectors having elements of K as components; and 
     in the decryption step, the encryption information and the decryption key serve as inputs and a calculation is performed depending on the result of the canonical inner product of the first logic information and the second attribute information, or of the canonical inner product of the first attribute information and the second logic information, in the decryption unit. 
     Item 25 
     A cryptographic communication method according to Item 24, 
     wherein the public key is a set of elements of a module V on K; 
     the private key is a set of elements of a module V* dual of the module V; 
     the decryption key is an element of the dual module V*; 
     in the encryption step, calculations that include a scalar multiplication in which the elements of the public key are multiplied by the components, used as coefficients, of the first attribute information or a scalar multiplication in which the elements of the public key are multiplied by the components, used as coefficients, of the first logic information, are performed to obtain the encryption information, in the encryption unit; 
     in the key generation step, calculations that include a scalar multiplication in which the elements of the private key are multiplied by the components, used as coefficients, of the second logic information or a scalar multiplication in which the elements of the private key are multiplied by the components, used as coefficients, of the second attribute information, are performed to obtain the decryption key, in the key generation unit; and 
     the calculation used in the decryption process of the decryption unit has bilinearity and the result of the calculation depends on the result of the canonical inner product of the first logic information and the second attribute information, or of the first attribute information and the second logic information, all the pieces of information being taken out from the encryption information and the decryption key according to bilinearity. 
     Item 26 
     An encryption apparatus used in a cryptographic system that uses functional encryption and includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, and one or a plurality of decryption apparatuses, 
     in the cryptographic system, 
     a private key and a public key corresponding to the private key being determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs being determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information being determined in advance; 
     the encryption apparatus comprising: 
     a first propositional logic information acquisition unit adapted to use one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and 
     an encryption unit adapted to use the first attribute information or the first logic information, together with the public key of the key generation apparatus, to obtain a common key, and encryption information corresponding to the common key or corresponding to information used to generate the common key, according to the functional encryption algorithm. 
     Item 27 
     An encryption apparatus used in a cryptographic system that uses functional encryption and includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, and one or a plurality of decryption apparatuses, 
     in the cryptographic system, 
     a private key and a public key corresponding to the private key being determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs being determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information being determined in advance; 
     the encryption apparatus comprising: 
     a first propositional logic information acquisition unit adapted to use one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and 
     an encryption unit adapted to use the first attribute information or the first logic information, together with the public key of the key generation apparatus and plaintext, to obtain encryption information corresponding to the plaintext, according to the functional encryption algorithm. 
     Item 28 
     A key generation apparatus used in a cryptographic system that uses functional encryption and includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, and one or a plurality of decryption apparatuses, 
     in the cryptographic system, 
     a private key and a public key corresponding to the private key being determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs being determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information being determined in advance; 
     the key generation apparatus comprising: 
     a second propositional logic information acquisition unit adapted to use the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and 
     a key generation unit adapted to use the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encryption information. 
     Item 29 
     A key generation apparatus used in a cryptographic system that uses functional encryption and includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, and one or a plurality of decryption apparatuses, 
     in the cryptographic system, 
     a private key and a public key corresponding to the private key being determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs being determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information being determined in advance; 
     the key generation apparatus comprising a key generation unit adapted to use the private key of the key generation apparatus, together with attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) generated from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus by using the conversion rule information paired with the conversion rule information identified by the policy information, to generate a decryption key used to decrypt the encryption information. 
     Item 30 
     A decryption apparatus used in a cryptographic system that uses functional encryption and includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, and one or a plurality of decryption apparatuses, 
     in the cryptographic system, 
     a private key and a public key corresponding to the private key being determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs being determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information being determined in advance; 
     the decryption apparatus comprising a decryption unit adapted to use a decryption key generated by the key generation apparatus to apply a decryption process to encryption information generated by the encryption apparatus, according to the functional encryption algorithm. 
     Item 31 
     A decryption apparatus used in a cryptographic system that uses functional encryption and includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, and one or a plurality of decryption apparatuses, 
     in the cryptographic system, 
     a private key and a public key corresponding to the private key being determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs being determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information being determined in advance; 
     the decryption apparatus comprising: 
     a second propositional logic information acquisition unit adapted to use the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and 
     a decryption unit adapted to use a decryption key generated by the key generation apparatus to apply a decryption process to encryption information generated by the encryption apparatus, according to the functional encryption algorithm. 
     Item 32 
     A program for making a computer function as an encryption apparatus according to one of Items 26 and 27. 
     Item 33 
     A program for making a computer function as a key generation apparatus according to one of Items 28 and 29. 
     Item 34 
     A program for making a computer function as a decryption apparatus according to one of Items 30 and 31. 
     Item 35 
     A computer readable storage medium having stored thereon at least one of a program according to Item 32, a program according to Item 33, and a program according to Item 34. 
     The present invention can be summed up from the second aspect in the following way. In the following description, item numbers will start again at one. 
     Item 1 
     A cryptographic communication method for a cryptographic system that uses functional encryption and includes at least 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; and 
     a plurality of decryption apparatuses; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     the cryptographic communication method comprising: 
     a first propositional logic information acquisition step of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information, in a first propositional logic information acquisition unit of each of the one or the plurality of encryption apparatuses; 
     an encryption step of using the first attribute information or the first logic information, together with the public key of the key generation apparatus, to obtain a common key and encryption information corresponding to the common key or corresponding to information used to generate the common key, according to the functional encryption algorithm in an encryption unit of the encryption apparatus; 
     an encryption information transmission step of transmitting the encryption information to a first decryption apparatus, in a transmitter unit of the encryption apparatus; 
     an encryption information receiving step of receiving the encryption information from the encryption apparatus, in a receiving unit of the first decryption apparatus; 
     a second propositional logic information acquisition step of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the first decryption apparatus, in a second propositional logic information acquisition unit of each of the one or the plurality of key generation apparatuses; 
     a key generation step of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a first decryption key used to decrypt the encryption information, in a key generation unit of the key generation apparatus; and 
     a decryption key transmission step of transmitting the first decryption key to the first decryption apparatus, in a transmitter unit of the key generation apparatus; 
     a decryption key receiving step of receiving the first decryption key from the key generation apparatus, in the receiving unit of the first decryption apparatus; 
     a decryption step of using the first decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm in a decryption unit of the first decryption apparatus; 
     a transfer step of transferring the encryption information to a second decryption apparatus, other than the first decryption apparatus, in a transfer unit of the first decryption apparatus; 
     a receiving step of receiving the encryption information from the first decryption apparatus, in a receiving unit of the second decryption apparatus; 
     a third propositional logic information acquisition step of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called third attribute information) or logic information (hereafter called third logic information) from attribute designation information or logical expression designation information corresponding to a user of the second decryption apparatus, in the second propositional logic information acquisition unit of the key generation apparatus; 
     a key generation step of using the third attribute information or the third logic information, together with the private key of the key generation apparatus, to generate a second decryption key used to decrypt the encryption information, in the key generation unit of the key generation apparatus; and 
     a decryption key transmission step of transmitting the second decryption key to the second decryption apparatus, in the transmitter unit of the key generation apparatus; 
     a decryption key receiving step of receiving the second decryption key from the key generation apparatus, in the receiving unit of the second decryption apparatus; and 
     a decryption step of using the second decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm in a decryption unit of the second decryption apparatus. 
     Item 2 
     A cryptographic communication method for a cryptographic system that uses functional encryption and includes at least 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; and 
     a plurality of decryption apparatuses; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     the cryptographic communication method comprising: 
     a first propositional logic information acquisition step of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information, in a first propositional logic information acquisition unit of each of the one or the plurality of encryption apparatuses; 
     an encryption step of using the first attribute information or the first logic information, together with the public key of the key generation apparatus, to obtain a common key and encryption information corresponding to the common key or corresponding to information used to generate the common key, according to the functional encryption algorithm in an encryption unit of the encryption apparatus; 
     an encryption information transmission step of transmitting the encryption information to a first decryption apparatus, in a transmitter unit of the encryption apparatus; 
     an encryption information receiving step of receiving the encryption information from the encryption apparatus, in a receiving unit of the first decryption apparatus; 
     a second propositional logic information acquisition step of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the first decryption apparatus, in a second propositional logic information acquisition unit of the first decryption apparatus; 
     a logic information transmission step of transmitting the second attribute information or the second logic information to the key generation apparatus, in a transmitter unit of the first decryption apparatus; 
     a logic information receiving step of receiving the second attribute information or the second logic information from the first decryption apparatus, in a receiver unit of the key generation apparatus; 
     a key generation step of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a first decryption key used to decrypt the encryption information, in a key generation unit of the key generation apparatus; and 
     a decryption key transmission step of transmitting the first decryption key to the first decryption apparatus, in a transmitter unit of the key generation apparatus; 
     a decryption key receiving step of receiving the first decryption key from the key generation apparatus, in the receiving unit of the first decryption apparatus; 
     a decryption step of using the first decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm in a decryption unit of the first decryption apparatus; 
     a transfer step of transferring the encryption information to a second decryption apparatus, other than the first decryption apparatus, in a transfer unit of the first decryption apparatus; 
     a receiving step of receiving the encryption information from the first decryption apparatus, in a receiving unit of the second decryption apparatus; 
     a third propositional logic information acquisition step of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called third attribute information) or logic information (hereafter called third logic information) from attribute designation information or logical expression designation information corresponding to a user of the second decryption apparatus, in the second propositional logic information acquisition unit of the second decryption apparatus; 
     a logic information transmission step of transmitting the third attribute information or the third logic information to the key generation apparatus, in a transmitter unit of the second decryption apparatus; 
     a logic information receiving step of receiving the third attribute information or the third logic information from the second decryption apparatus, in the receiver unit of the key generation apparatus; 
     a key generation step of using the third attribute information or the third logic information, together with the private key of the key generation apparatus, to generate a second decryption key used to decrypt the encryption information, in the key generation unit of the key generation apparatus; and 
     a decryption key transmission step of transmitting the second decryption key to the second decryption apparatus, in the transmitter unit of the key generation apparatus; 
     a decryption key receiving step of receiving the second decryption key from the key generation apparatus, in the receiving unit of the second decryption apparatus; and 
     a decryption step of using the second decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm in a decryption unit of the second decryption apparatus. 
     Item 3 
     A cryptographic communication method for a cryptographic system that uses functional encryption and includes at least 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; and 
     a plurality of decryption apparatuses; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     the cryptographic communication method comprising: 
     a first propositional logic information acquisition step of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information, in a first propositional logic information acquisition unit of each of the one or the plurality of encryption apparatuses; 
     an encryption step of using the first attribute information or the first logic information, together with the public key of the key generation apparatus and plaintext, to obtain encryption information corresponding to the plaintext, according to the functional encryption algorithm in an encryption unit of the encryption apparatus; 
     an encryption information transmission step of transmitting the encryption information to a first decryption apparatus, in a transmitter unit of the encryption apparatus; 
     an encryption information receiving step of receiving the encryption information from the encryption apparatus, in a receiving unit of the first decryption apparatus; 
     a second propositional logic information acquisition step of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the first decryption apparatus, in a second propositional logic information acquisition unit of each of the one or the plurality of key generation apparatuses; 
     a key generation step of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a first decryption key used to decrypt the encryption information, in a key generation unit of the key generation apparatus; and 
     a decryption key transmission step of transmitting the first decryption key to the first decryption apparatus, in a transmitter unit of the key generation apparatus; 
     a decryption key receiving step of receiving the first decryption key from the key generation apparatus, in the receiving unit of the first decryption apparatus; 
     a decryption step of using the first decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm in a decryption unit of the first decryption apparatus; 
     a transfer step of transferring the encryption information to a second decryption apparatus, other than the first decryption apparatus, in a transfer unit of the first decryption apparatus; 
     a receiving step of receiving the encryption information from the first decryption apparatus, in a receiving unit of the second decryption apparatus; 
     a third propositional logic information acquisition step of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called third attribute information) or logic information (hereafter called third logic information) from attribute designation information or logical expression designation information corresponding to a user of the second decryption apparatus, in the second propositional logic information acquisition unit of the key generation apparatus; 
     a key generation step of using the third attribute information or the third logic information, together with the private key of the key generation apparatus, to generate a second decryption key used to decrypt the encryption information, in the key generation unit of the key generation apparatus; and 
     a decryption key transmission step of transmitting the second decryption key to the second decryption apparatus, in the transmitter unit of the key generation apparatus; 
     a decryption key receiving step of receiving the second decryption key from the key generation apparatus, in the receiving unit of the second decryption apparatus; and 
     a decryption step of using the second decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm in a decryption unit of the second decryption apparatus. 
     Item 4 
     A cryptographic communication method for a cryptographic system that uses functional encryption and includes at least 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; and 
     a plurality of decryption apparatuses; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     the cryptographic communication method comprising: 
     a first propositional logic information acquisition step of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information, in a first propositional logic information acquisition unit of each of the one or the plurality of encryption apparatuses; 
     an encryption step of using the first attribute information or the first logic information, together with the public key of the key generation apparatus and plaintext, to obtain encryption information corresponding to the plaintext, according to the functional encryption algorithm in an encryption unit of the encryption apparatus; 
     an encryption information transmission step of transmitting the encryption information to a first decryption apparatus, in a transmitter unit of the encryption apparatus; 
     an encryption information receiving step of receiving the encryption information from the encryption apparatus, in a receiving unit of the first decryption apparatus; 
     a second propositional logic information acquisition step of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the first decryption apparatus, in a second propositional logic information acquisition unit of the first decryption apparatus; 
     a logic information transmission step of transmitting the second attribute information or the second logic information to the key generation apparatus, in a transmitter unit of the first decryption apparatus; 
     a logic information receiving step of receiving the second attribute information or the second logic information from the first decryption apparatus, in a receiver unit of the key generation apparatus; 
     a key generation step of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a first decryption key used to decrypt the encryption information, in a key generation unit of the key generation apparatus; and 
     a decryption key transmission step of transmitting the first decryption key to the first decryption apparatus, in a transmitter unit of the key generation apparatus; 
     a decryption key receiving step of receiving the first decryption key from the key generation apparatus, in the receiving unit of the first decryption apparatus; 
     a decryption step of using the first decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm in a decryption unit of the first decryption apparatus; 
     a transfer step of transferring the encryption information to a second decryption apparatus, other than the first decryption apparatus, in a transfer unit of the first decryption apparatus; 
     a receiving step of receiving the encryption information from the first decryption apparatus, in a receiving unit of the second decryption apparatus; 
     a third propositional logic information acquisition step of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called third attribute information) or logic information (hereafter called third logic information) from attribute designation information or logical expression designation information corresponding to a user of the second decryption apparatus, in the second propositional logic information acquisition unit of the second decryption apparatus; 
     a logic information transmission step of transmitting the third attribute information or the third logic information to the key generation apparatus, in a transmitter unit of the second decryption apparatus; 
     a logic information receiving step of receiving the third attribute information or the third logic information from the second decryption apparatus, in the receiver unit of the key generation apparatus; 
     a key generation step of using the third attribute information or the third logic information, together with the private key of the key generation apparatus, to generate a second decryption key used to decrypt the encryption information, in the key generation unit of the key generation apparatus; and 
     a decryption key transmission step of transmitting the second decryption key to the second decryption apparatus, in the transmitter unit of the key generation apparatus; 
     a decryption key receiving step of receiving the second decryption key from the key generation apparatus, in the receiving unit of the second decryption apparatus; and 
     a decryption step of using the second decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm in a decryption unit of the second decryption apparatus. 
     Item 5 
     A cryptographic communication method according to one of Items 1 and 2, 
     wherein the encryption step comprises a ciphertext generation step of also encrypting plaintext with the common key to obtain ciphertext, in the encryption unit; and 
     the decryption step comprises a second decryption step of performing a second decryption process of the ciphertext with the common key obtained in the decryption process or a second decryption process of the ciphertext with a common key generated from the information used to generate the common key and obtained in the decryption process, in the decryption unit. 
     Item 6 
     A cryptographic communication method according to one of Items 1 to 5, comprising an acquisition step of acquiring the attribute designation information or the logical expression designation information corresponding to the user of the decryption apparatus from a storage medium that stores the attribute designation information and/or the logical expression designation information corresponding to the user, in an acquisition unit of the decryption apparatus. 
     Item 7 
     A cryptographic communication method according to one of Items 1 and 3, comprising a user information transmission step of transmitting the attribute designation information or the logical expression designation information corresponding to the user of the decryption apparatus, to the key generation apparatus, in a transmitter unit of the decryption apparatus; and 
     a user information receiving step of receiving the attribute designation information or the logical expression designation information corresponding to the user from the decryption apparatus, in a receiver unit of the key generation apparatus. 
     Item 8 
     A cryptographic communication method according to one of Items 1 to 6, 
     wherein the cryptographic system comprises one or a plurality of user information management apparatuses provided with a storage unit adapted to store the attribute designation information and/or the logical expression designation information corresponding to the user; and 
     the cryptographic communication method comprises a user information acquisition step of acquiring the attribute designation information or the logical expression designation information corresponding to the user of the decryption apparatus from the user information management apparatus, in a user information acquisition unit of the key generation apparatus. 
     Item 9 
     A cryptographic communication method according to one of Items 1 to 8, 
     wherein the one or the plurality of conversion rule information pairs are determined in advance for each of the one or the plurality of key generation apparatuses; 
     the cryptographic system comprises one or a plurality of conversion rule information pair management apparatuses provided with a storage unit adapted to store the conversion rule information pair corresponding to each of the one or the plurality of key generation apparatuses; and 
     the cryptographic communication method comprises: 
     a conversion rule information pair acquisition step of acquiring the conversion rule information pair from the conversion rule information pair management apparatus, in a conversion rule information pair acquisition unit of the encryption apparatus; and 
     a conversion rule information pair acquisition step of acquiring the conversion rule information pair from the conversion rule information pair management apparatus, in a conversion rule information pair acquisition unit of the decryption apparatus. 
     Item 10 
     A cryptographic communication method according to one of Items 1 to 9, wherein whether the policy information identifies only the attribute conversion rule information, only the logical expression conversion rule information, or the attribute conversion rule information and the logical expression conversion rule information is determined in advance for each of the one or the plurality of key generation apparatuses. 
     Item 11 
     A cryptographic communication method according to one of Items 1 to 10, 
     wherein an algebraic structure K is a finite ring or a finite field; 
     the first and second attribute information and the first and second logic information are vectors having elements of K as components; and 
     in the decryption step, the encryption information and the decryption key serve as inputs and a calculation is performed depending on the result of the canonical inner product of the first logic information and the second attribute information, or of the canonical inner product of the first attribute information and the second logic information, in the decryption unit. 
     Item 12 
     A cryptographic communication method according to Item 11, 
     wherein the public key is a set of elements of a module V on K; 
     the private key is a set of elements of a module V* dual of the module V; 
     the decryption key is an element of the dual module V*; 
     in the encryption step, calculations that include a scalar multiplication in which the elements of the public key are multiplied by the components, used as coefficients, of the first attribute information or a scalar multiplication in which the elements of the public key are multiplied by the components, used as coefficients, of the first logic information, are performed to obtain the encryption information, in the encryption unit; 
     in the key generation step, calculations that include a scalar multiplication in which the elements of the private key are multiplied by the components, used as coefficients, of the second logic information or a scalar multiplication in which the elements of the private key are multiplied by the components, used as coefficients, of the second attribute information, are performed to obtain the decryption key, in the key generation unit; and 
     the calculation used in the decryption process of the decryption unit has bilinearity and the result of the calculation depends on the result of the canonical inner product of the first logic information and the second attribute information, or of the first attribute information and the second logic information, all the pieces of information being taken out from the encryption information and the decryption key according to bilinearity. 
     Item 13 
     A cryptographic system that uses functional encryption, comprising at least: 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; and 
     a plurality of decryption apparatuses; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     each of the one or the plurality of encryption apparatuses comprises 
     a first propositional logic information acquisition unit adapted to use one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and 
     an encryption unit adapted to use the first attribute information or the first logic information, together with the public key of the key generation apparatus, to obtain a common key, and encryption information corresponding to the common key or corresponding to information used to generate the common key, according to the functional encryption algorithm; 
     each of the one or the plurality of key generation apparatuses comprises 
     a second propositional logic information acquisition unit adapted to use the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and 
     a key generation unit adapted to use the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encryption information; and 
     the decryption apparatus comprises 
     a decryption unit adapted to use the decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm; and 
     a transfer unit adapted to transfer the encryption information to at least one decryption apparatus other than the decryption apparatus. 
     Item 14 
     A cryptographic system that uses functional encryption, comprising at least: 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; and 
     a plurality of decryption apparatuses; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     each of the one or the plurality of encryption apparatuses comprises 
     a first propositional logic information acquisition unit adapted to use one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and 
     an encryption unit adapted to use the first attribute information or the first logic information, together with the public key of the key generation apparatus, to obtain a common key, and encryption information corresponding to the common key or corresponding to information used to generate the common key, according to the functional encryption algorithm; 
     the decryption apparatus comprises 
     a second propositional logic information acquisition unit adapted to use the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; 
     a decryption unit adapted to use a decryption key sent from the key generation apparatus to apply a decryption process to the encryption information according to the functional encryption algorithm; and 
     a transfer unit adapted to transfer the encryption information to at least one decryption apparatus other than the decryption apparatus; and 
     each of the one or the plurality of key generation apparatuses comprises a key generation unit adapted to use the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate the decryption key used to decrypt the encryption information. 
     Item 15 
     A cryptographic system that uses functional encryption, comprising at least: 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; and 
     a plurality of decryption apparatuses; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     each of the one or the plurality of encryption apparatuses comprises 
     a first propositional logic information acquisition unit adapted to use one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and 
     an encryption unit adapted to use the first attribute information or the first logic information, together with the public key of the key generation apparatus and plaintext, to obtain encryption information corresponding to the plaintext according to the functional encryption algorithm; 
     each of the one or the plurality of key generation apparatuses comprises 
     a second propositional logic information acquisition unit adapted to use the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and 
     a key generation unit adapted to use the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encryption information; and 
     the decryption apparatus comprises 
     a decryption unit adapted to use the decryption key to apply a decryption process to the encryption information according to the functional encryption algorithm; and 
     a transfer unit adapted to transfer the encryption information to at least one decryption apparatus other than the decryption apparatus. 
     Item 16 
     A cryptographic system that uses functional encryption, comprising at least: 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; and 
     a plurality of decryption apparatuses; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     each of the one or the plurality of encryption apparatuses comprises 
     a first propositional logic information acquisition unit adapted to use one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and 
     an encryption unit adapted to use the first attribute information or the first logic information, together with the public key of the key generation apparatus and plaintext, to obtain encryption information corresponding to the plaintext according to the functional encryption algorithm; 
     the decryption apparatus comprises 
     a second propositional logic information acquisition unit adapted to use the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; 
     a decryption unit adapted to use a decryption key sent from the key generation apparatus to apply a decryption process to the encryption information according to the functional encryption algorithm; and 
     a transfer unit adapted to transfer the encryption information to at least one decryption apparatus other than the decryption apparatus; and 
     each of the one or the plurality of key generation apparatuses comprises a key generation unit adapted to use the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate the decryption key used to decrypt the encryption information. 
     Item 17 
     A cryptographic system according to one of Items 13 and 14, 
     wherein the encryption unit of the encryption apparatus encrypts plaintext with the common key to obtain ciphertext; and 
     the decryption unit of the decryption apparatus uses the common key obtained in the decryption process to apply a second decryption process to the ciphertext or uses a common key generated from the information that is obtained in the decryption process and that is used to generate the common key to apply a second decryption process to the ciphertext. 
     Item 18 
     A decryption apparatus used in a cryptographic system that uses functional encryption and includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, and a plurality of decryption apparatuses, 
     in the cryptographic system, 
     a private key and a public key corresponding to the private key being determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs being determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information being determined in advance; 
     the decryption apparatus comprising: 
     a decryption unit adapted to use a decryption key generated by the key generation apparatus to apply a decryption process to encryption information generated by the encryption apparatus, according to the functional encryption algorithm; and 
     a transfer unit adapted to transfer the encryption information to at least one decryption apparatus other than the decryption apparatus. 
     Item 19 
     A decryption apparatus used in a cryptographic system that uses functional encryption and includes, at least, one or a plurality of encryption apparatuses, one or a plurality of key generation apparatuses, and a plurality of decryption apparatuses, 
     in the cryptographic system, 
     a private key and a public key corresponding to the private key being determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs being determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information being determined in advance; 
     the decryption apparatus comprising: 
     a second propositional logic information acquisition unit adapted to use the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; 
     a decryption unit adapted to use a decryption key generated by the key generation apparatus to apply a decryption process to encryption information generated by the encryption apparatus, according to the functional encryption algorithm; and 
     a transfer unit adapted to transfer the encryption information to at least one decryption apparatus other than the decryption apparatus. 
     Item 20 
     A program for making a computer function as a decryption apparatus according to one of Items 18 and 19. 
     Item 21 
     A computer readable storage medium having stored thereon a program according to Item 20. 
     The present invention can be summed up from the third aspect in the following way. In the following description, item numbers will start again at one. 
     Item 1 
     A cryptographic system that uses functional encryption, comprising at least: 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; 
     one or a plurality of decryption apparatuses; and 
     one or a plurality of content servers; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     each of the one or the plurality of encryption apparatuses comprises 
     a first propositional logic information acquisition unit adapted to use one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and 
     an encryption unit adapted to use the first attribute information or the first logic information, together with the public key of the key generation apparatus and content, to obtain a common key, encryption information corresponding to the common key or corresponding to information used to generate the common key, and encrypted content obtained by encrypting the content with the common key, according to the functional encryption algorithm; 
     each of the one or the plurality of content servers comprises 
     a storage unit adapted to store the encryption information and the encrypted content sent from each of the one or the plurality of encryption apparatuses; and 
     a transmitter unit adapted to transmit the encrypted content and the encryption information corresponding thereto, in response to a request sent from the decryption apparatus, to the decryption apparatus; 
     each of the one or the plurality of key generation apparatuses comprises 
     a second propositional logic information acquisition unit adapted to use the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and 
     a key generation unit adapted to use the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encryption information; and 
     each of the one or the plurality of decryption apparatuses comprises 
     a browser unit adapted to perform a process of an acquisition request of the encrypted content for the content server and to display content obtained by decrypting the encrypted content; and 
     a relay unit adapted to send to the content server the acquisition request sent from the browser unit, to use the decryption key to apply a decryption process to the encryption information obtained from the content server, according to the functional encryption algorithm, and to use the common key obtained in the decryption process to perform a content acquisition process for decrypting the encrypted content obtained from the content server. 
     Item 2 
     A cryptographic system that uses functional encryption, comprising at least: 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; 
     one or a plurality of decryption apparatuses; and 
     one or a plurality of content servers; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     each of the one or the plurality of encryption apparatuses comprises 
     a first propositional logic information acquisition unit adapted to use one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and 
     an encryption unit adapted to use the first attribute information or the first logic information, together with the public key of the key generation apparatus and content, to obtain a common key, encryption information corresponding to the common key or corresponding to information used to generate the common key, and encrypted content obtained by encrypting the content with the common key, according to the functional encryption algorithm; 
     each of the one or the plurality of content servers comprises 
     a storage unit adapted to store the encryption information and the encrypted content sent from each of the one or the plurality of encryption apparatuses; and 
     a transmitter unit adapted to transmit the encrypted content and the encryption information corresponding thereto, in response to a request sent from the decryption apparatus, to the decryption apparatus; 
     each of the one or the plurality of decryption apparatuses comprises 
     a second propositional logic information acquisition unit adapted to use the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; 
     a browser unit adapted to perform a process of an acquisition request of the encrypted content for the content server and to display content obtained by decrypting the encrypted content; and 
     a relay unit adapted to send to the content server the acquisition request sent from the browser unit, to use a decryption key sent from the key generation apparatus to apply a decryption process to the encryption information obtained from the content server, according to the functional encryption algorithm, and to use the common key obtained in the decryption process to perform a content acquisition process for decrypting the encrypted content obtained from the content server; and 
     each of the one or the plurality of key generation apparatuses comprises a key generation unit adapted to use the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate the decryption key used to decrypt the encryption information. 
     Item 3 
     A cryptographic system that uses functional encryption, comprising at least: 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; 
     one or a plurality of decryption apparatuses; and 
     one or a plurality of content servers; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     each of the one or the plurality of encryption apparatuses comprises 
     a first propositional logic information acquisition unit adapted to use one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and 
     an encryption unit adapted to use the first attribute information or the first logic information, together with the public key of the key generation apparatus and content, to encrypt the content to obtain encrypted content, according to the functional encryption algorithm; 
     each of the one or the plurality of content servers comprises 
     a storage unit adapted to store the encrypted content sent from each of the one or the plurality of encryption apparatuses; and 
     a transmitter unit adapted to transmit the encrypted content, in response to a request sent from the decryption apparatus, to the decryption apparatus; 
     each of the one or the plurality of key generation apparatuses comprises 
     a second propositional logic information acquisition unit adapted to use the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; and 
     a key generation unit adapted to use the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encrypted content; and 
     each of the one or the plurality of decryption apparatuses comprises 
     a browser unit adapted to perform a process of an acquisition request of the encrypted content for the content server and to display content obtained by decrypting the encrypted content; and 
     a relay unit adapted to send to the content server the acquisition request sent from the browser unit, and to use the decryption key to apply a decryption process to the encrypted content obtained from the content server, according to the functional encryption algorithm. 
     Item 4 
     A cryptographic system that uses functional encryption, comprising at least: 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; 
     one or a plurality of decryption apparatuses; and 
     one or a plurality of content servers; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     each of the one or the plurality of encryption apparatuses comprises 
     a first propositional logic information acquisition unit adapted to use one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information; and 
     an encryption unit adapted to use the first attribute information or the first logic information, together with the public key of the key generation apparatus and content, to encrypt the content to obtain encrypted content, according to the functional encryption algorithm; 
     each of the one or the plurality of content servers comprises 
     a storage unit adapted to store the encrypted content sent from each of the one or the plurality of encryption apparatuses; and 
     a transmitter unit adapted to transmit the encrypted content, in response to a request sent from the decryption apparatus, to the decryption apparatus; 
     each of the one or the plurality of decryption apparatuses comprises 
     a second propositional logic information acquisition unit adapted to use the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus; 
     a browser unit adapted to perform a process of an acquisition request of the encrypted content for the content server and to display content obtained by decrypting the encrypted content; and 
     a relay unit adapted to send to the content server the acquisition request sent from the browser unit, and to use a decryption key sent from the key generation apparatus to apply a decryption process to the encrypted content obtained from the content server, according to the functional encryption algorithm; and 
     each of the one or the plurality of key generation apparatuses comprises a key generation unit adapted to use the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate the decryption key used to decrypt the encrypted content. 
     Item 5 
     A cryptographic system according to one of Items 1 to 4, 
     wherein the attribute designation information and/or the logical expression designation information corresponding to the user is stored in a storage medium; and 
     the decryption apparatus comprises a user information acquisition unit adapted to acquire the attribute designation information or the logical expression designation information corresponding to the user of the decryption apparatus from the storage medium. 
     Item 6 
     A cryptographic system according to one of Items 1 and 3, wherein the attribute designation information or the logical expression designation information corresponding to the user of the decryption apparatus, the information being used by the key generation apparatus, is obtained from the decryption apparatus. 
     Item 7 
     A cryptographic system according to one of Items 1 to 6, 
     wherein the cryptographic system further comprises one or a plurality of user information management apparatuses; 
     each of the one or the plurality of user information management apparatuses comprises a storage unit adapted to store the attribute designation information and/or the logical expression designation information corresponding to the user; and 
     the key generation apparatus obtains the attribute designation information or the logical expression designation information corresponding to the user of the decryption apparatus from the user information management apparatus. 
     Item 8 
     A cryptographic system according to one of Items 1 to 7, 
     wherein the one or the plurality of conversion rule information pairs are determined in advance for each of the one or the plurality of key generation apparatuses; 
     the cryptographic system further comprises one or a plurality of conversion rule information pair management apparatuses; 
     each of the one or the plurality of conversion rule information pair management apparatuses comprises a storage unit adapted to store the conversion rule information pair corresponding to each of the one or the plurality of key generation apparatuses; 
     the encryption apparatus comprises a conversion rule information pair acquisition unit adapted to acquire the conversion rule information pair from the conversion rule information pair management apparatus; and 
     the decryption apparatus comprises a conversion rule information pair acquisition unit adapted to acquire the conversion rule information pair from the conversion rule information pair management apparatus 
     Item 9 
     A cryptographic system according to one of Items 1 to 7, 
     wherein the one or the plurality of conversion rule information pairs are determined in advance for each of the one or the plurality of key generation apparatuses; 
     each of the one or the plurality of key generation apparatuses further comprises a storage unit adapted to store the conversion rule information pair corresponding to the key generation apparatus; 
     each of the one or the plurality of encryption apparatuses further comprises a storage unit adapted to store the conversion rule information pair corresponding to at least one of the one or the plurality of the key generation apparatuses; and 
     each of the one or the plurality of decryption apparatuses further comprises a storage unit adapted to store the conversion rule information pair corresponding to at least one of the one or the plurality of the key generation apparatuses. 
     Item 10 
     A cryptographic system according to one of Items 1 to 9, wherein whether the policy information identifies only the attribute conversion rule information, only the logical expression conversion rule information, or the attribute conversion rule information and the logical expression conversion rule information is determined in advance for each of the one or the plurality of key generation apparatuses. 
     Item 11 
     A cryptographic system according to one of Items 1 to 10, 
     wherein an algebraic structure K is a finite ring or a finite field; 
     the first and second attribute information and the first and second logic information are vectors having elements of K as components; and 
     the decryption process of the decryption unit performs a calculation depending on the result of the canonical inner product of the first logic information and the second attribute information, or of the canonical inner product of the first attribute information and the second logic information. 
     Item 12 
     A cryptographic system according to Item 11, 
     wherein the public key is a set of elements of a module V on K; 
     the private key is a set of elements of a module V* dual of the module V; 
     the decryption key is an element of the dual module V*; 
     the encryption unit performs calculations that include a scalar multiplication in which the elements of the public key are multiplied by the components, used as coefficients, of the first attribute information or a scalar multiplication in which the elements of the public key are multiplied by the components, used as coefficients, of the first logic information, to obtain the encryption information; 
     the key generation unit performs calculations that include a scalar multiplication in which the elements of the private key are multiplied by the components, used as coefficients, of the second logic information or a scalar multiplication in which the elements of the private key are multiplied by the components, used as coefficients, of the second attribute information, to obtain the decryption key; and 
     the calculation used in the decryption process of the decryption unit has bilinearity and the result of the calculation depends on the result of the canonical inner product of the first logic information and the second attribute information, or of the first attribute information and the second logic information, all the pieces of information being taken out from the encryption information or the encrypted content, and the decryption key according to bilinearity. 
     Item 13 
     A cryptographic communication method for a cryptographic system that uses functional encryption and includes: at least 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; 
     one or a plurality of decryption apparatuses; and 
     one or a plurality of content servers; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     the cryptographic communication method comprising: 
     a first propositional logic information acquisition step of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information, in a first propositional logic information acquisition unit of each of the one or the plurality of encryption apparatuses; 
     an encryption step of using the first attribute information or the first logic information, together with the public key of the key generation apparatus and content, to obtain a common key, encryption information corresponding to the common key or corresponding to information used to generate the common key, and encrypted content obtained by encrypting the content with the common key, according to the functional encryption algorithm in an encryption unit of the encryption apparatus; 
     a transmission step of transmitting the encrypted content and the encryption information corresponding thereto to the content server, in a transmitter unit of the encryption apparatus; 
     a storing step of storing the encryption information and the encrypted content sent from the encryption apparatus, in a storage unit of the content server; 
     an acquisition request processing step of performing a process of an acquisition request of the encrypted content for the content server, in a browser unit of the decryption apparatus; 
     a transmission step of transmitting the acquisition request sent from the browser unit, to the content server, in a relay unit of the decryption apparatus; 
     a transmission step of transmitting the encrypted content and the encryption information corresponding thereto, in response to the request sent from the decryption apparatus, to the decryption apparatus, in a transmitter unit of the content server; 
     a receiving step of receiving the encrypted content and the encryption information from the content server, in a receiving unit of the decryption apparatus; 
     a second propositional logic information acquisition step of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus, in a second propositional logic information acquisition unit of each of the one or the plurality of key generation apparatuses; 
     a key generation step of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encryption information, in a key generation unit of the key generation apparatus; and 
     a decryption key transmission step of transmitting the decryption key to the decryption apparatus, in a transmitter unit of the key generation apparatus; 
     a decryption key receiving step of receiving the decryption key from the key generation apparatus, in a receiver unit of the decryption apparatus; 
     a decryption step of using the decryption key to apply a decryption process to the encryption information obtained from the content server, according to the functional encryption algorithm, and of using the common key obtained in the decryption process to perform a content acquisition process in which the encrypted content obtained from the content server is decrypted, in a relay unit of the decryption apparatus; and 
     a displaying step of displaying content obtained by decrypting the encrypted content, in a browser unit of the decryption apparatus. 
     Item 14 
     A cryptographic communication method for a cryptographic system that uses functional encryption and includes: at least 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; 
     one or a plurality of decryption apparatuses; and 
     one or a plurality of content servers; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     the cryptographic communication method comprising: 
     a first propositional logic information acquisition step of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information, in a first propositional logic information acquisition unit of each of the one or the plurality of encryption apparatuses; 
     an encryption step of using the first attribute information or the first logic information, together with the public key of the key generation apparatus and content, to obtain a common key, encryption information corresponding to the common key or corresponding to information used to generate the common key, and encrypted content obtained by encrypting the content with the common key, according to the functional encryption algorithm in an encryption unit of the encryption apparatus; a transmission step of transmitting the encrypted content and the encryption information corresponding thereto to the content server, in a transmitter unit of the encryption apparatus; 
     a storing step of storing the encryption information and the encrypted content sent from the encryption apparatus, in a storage unit of the content server; 
     an acquisition request processing step of performing a process of an acquisition request of the encrypted content for the content server, in a browser unit of the decryption apparatus; 
     a transmission step of transmitting the acquisition request sent from the browser unit, to the content server, in a relay unit of the decryption apparatus; 
     a transmission step of transmitting the encrypted content and the encryption information corresponding thereto, in response to the request sent from the decryption apparatus, to the decryption apparatus, in a transmitter unit of the content server; 
     a receiving step of receiving the encrypted content and the encryption information from the content server, in a receiving unit of the decryption apparatus; 
     a second propositional logic information acquisition step of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus, in a second propositional logic information acquisition unit of the decryption apparatus; 
     a logic information transmission step of transmitting the second attribute information or the second logic information to the key generation apparatus, in a transmitter unit of the decryption apparatus; 
     a logic information receiving step of receiving the second attribute information or the second logic information from the decryption apparatus, in a receiver unit of the key generation apparatus; 
     a key generation step of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encryption information, in a key generation unit of the key generation apparatus; and 
     a decryption key transmission step of transmitting the decryption key to the decryption apparatus, in a transmitter unit of the key generation apparatus; 
     a decryption key receiving step of receiving the decryption key from the key generation apparatus, in a receiver unit of the decryption apparatus; 
     a decryption step of using the decryption key to apply a decryption process to the encryption information obtained from the content server, according to the functional encryption algorithm, and of using the common key obtained in the decryption process to perform a content acquisition process in which the encrypted content obtained from the content server is decrypted, in a relay unit of the decryption apparatus; and 
     a displaying step of displaying content obtained by decrypting the encrypted content, in a browser unit of the decryption apparatus. 
     Item 15 
     A cryptographic communication method for a cryptographic system that uses functional encryption and includes: at least 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; 
     one or a plurality of decryption apparatuses; and 
     one or a plurality of content servers; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     the cryptographic communication method comprising: 
     a first propositional logic information acquisition step of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information, in a first propositional logic information acquisition unit of each of the one or the plurality of encryption apparatuses; 
     an encryption step of using the first attribute information or the first logic information, together with the public key of the key generation apparatus and content, to encrypt the content to obtain encrypted content, according to the functional encryption algorithm in an encryption unit of the encryption apparatus; 
     a transmission step of transmitting the encrypted content to the content server, in a transmitter unit of the encryption apparatus; 
     a storing step of storing the encrypted content sent from the encryption apparatus, in a storage unit of the content server; 
     an acquisition request processing step of performing a process of an acquisition request of the encrypted content for the content server, in a browser unit of the decryption apparatus; 
     a transmission step of transmitting the acquisition request sent from the browser unit, to the content server, in a relay unit of the decryption apparatus; 
     a transmission step of transmitting the encrypted content, in response to the request sent from the decryption apparatus, to the decryption apparatus, in a transmitter unit of the content server; 
     a receiving step of receiving the encrypted content from the content server, in a receiving unit of the decryption apparatus; 
     a second propositional logic information acquisition step of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus, in a second propositional logic information acquisition unit of each of the one or the plurality of key generation apparatuses; 
     a key generation step of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encrypted content, in a key generation unit of the key generation apparatus; and 
     a decryption key transmission step of transmitting the decryption key to the decryption apparatus, in a transmitter unit of the key generation apparatus; 
     a decryption key receiving step of receiving the decryption key from the key generation apparatus, in a receiver unit of the decryption apparatus; 
     a decryption step of using the decryption key to apply a decryption process to the encrypted content obtained from the content server, according to the functional encryption algorithm, in a relay unit of the decryption apparatus; and 
     a displaying step of displaying content obtained by decrypting the encrypted content, in a browser unit of the decryption apparatus. 
     Item 16 
     A cryptographic communication method for a cryptographic system that uses functional encryption and includes: at least 
     one or a plurality of encryption apparatuses; 
     one or a plurality of key generation apparatuses; 
     one or a plurality of decryption apparatuses; and 
     one or a plurality of content servers; 
     wherein a private key and a public key corresponding to the private key are determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs are determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information is determined in advance; 
     the cryptographic communication method comprising: 
     a first propositional logic information acquisition step of using one kind of conversion rule information of the attribute conversion rule information and the logical expression conversion rule information included in one conversion rule information pair selected from the one or the plurality of conversion rule information pairs, the one kind of conversion rule information being selected together with the policy information according to whether input information input to the encryption apparatus is either attribute designation information or logical expression designation information, to obtain attribute information (hereafter called first attribute information) or logic information (hereafter called first logic information) from the input information, in a first propositional logic information acquisition unit of each of the one or the plurality of encryption apparatuses; 
     an encryption step of using the first attribute information or the first logic information, together with the public key of the key generation apparatus and content, to encrypt the content to obtain encrypted content according to the functional encryption algorithm in an encryption unit of the encryption apparatus; 
     a transmission step of transmitting the encrypted content and the encryption information corresponding thereto to the content server, in a transmitter unit of the encryption apparatus; 
     a storing step of storing the encryption information and the encrypted content sent from the encryption apparatus, in a storage unit of the content server; 
     an acquisition request processing step of performing a process of an acquisition request of the encrypted content for the content server, in a browser unit of the decryption apparatus; 
     a transmission step of transmitting the acquisition request sent from the browser unit, to the content server, in a relay unit of the decryption apparatus; 
     a transmission step of transmitting the encrypted content and the encryption information corresponding thereto, in response to the request sent from the decryption apparatus, to the decryption apparatus, in a transmitter unit of the content server; 
     a receiving step of receiving the encrypted content and the encryption information from the content server, in a receiving unit of the decryption apparatus; 
     a second propositional logic information acquisition step of using the conversion rule information paired with the conversion rule information identified by the policy information to obtain attribute information (hereafter called second attribute information) or logic information (hereafter called second logic information) from attribute designation information or logical expression designation information corresponding to a user of the decryption apparatus, in a second propositional logic information acquisition unit of the decryption apparatus; 
     a logic information transmission step of transmitting the second attribute information or the second logic information to the key generation apparatus, in a transmitter unit of the decryption apparatus; 
     a logic information receiving step of receiving the second attribute information or the second logic information from the decryption apparatus, in a receiver unit of the key generation apparatus; 
     a key generation step of using the second attribute information or the second logic information, together with the private key of the key generation apparatus, to generate a decryption key used to decrypt the encryption information, in a key generation unit of the key generation apparatus; and 
     a decryption key transmission step of transmitting the decryption key to the decryption apparatus, in a transmitter unit of the key generation apparatus; 
     a decryption key receiving step of receiving the decryption key from the key generation apparatus, in a receiver unit of the decryption apparatus; 
     a decryption step of using the decryption key to apply a decryption process to the encryption information obtained from the content server, according to the functional encryption algorithm, and of using the private key obtained in the decryption process to perform a content acquisition process in which the encrypted content obtained from the content server is decrypted, in a relay unit of the decryption apparatus; and 
     a displaying step of displaying content obtained by decrypting the encrypted content, in a browser unit of the decryption apparatus. 
     Item 17 
     A decryption apparatus used in a cryptographic system that uses functional encryption and includes, at least, one or a plurality of encryption apparatuses that obtain a common key, encryption information corresponding to the common key or corresponding to information used to generate the common key, and encrypted content obtained by encrypting content with the common key, according to a functional encryption algorithm; one or a plurality of key generation apparatuses; one or a plurality of decryption apparatuses; and one or a plurality of content servers that store the encrypted content and the encryption information, 
     in the cryptographic system, 
     a private key and a public key corresponding to the private key being determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs being determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in the functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information being determined in advance; 
     the decryption apparatus comprising: 
     a browser unit adapted to perform a process of an acquisition request of the encrypted content for the content server and to display content obtained by decrypting the encrypted content; and 
     a relay unit adapted to send to the content server the acquisition request sent from the browser unit, to use the decryption key to apply a decryption process to the encryption information obtained from the content server, according to the functional encryption algorithm, and to use the common key obtained in the decryption process to perform a content acquisition process for decrypting the encrypted content obtained from the content server. 
     Item 18 
     A decryption apparatus used in a cryptographic system that uses functional encryption and includes, at least, one or a plurality of encryption apparatuses that encrypt content to obtain encrypted content according to a functional encryption algorithm; one or a plurality of key generation apparatuses; one or a plurality of decryption apparatuses; and one or a plurality of content servers that store the encrypted content, 
     in the cryptographic system, 
     a private key and a public key corresponding to the private key being determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs being determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in the functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information being determined in advance; 
     the decryption apparatus comprising: 
     a browser unit adapted to perform a process of an acquisition request of the encrypted content for the content server and to display content obtained by decrypting the encrypted content; and 
     a relay unit adapted to send to the content server the acquisition request sent from the browser unit and to use the decryption key to apply a decryption process to the encrypted content obtained from the content server, according to the functional encryption algorithm. 
     Item 19 
     A content server used in a cryptographic system that uses functional encryption and includes, at least, one or a plurality of encryption apparatuses that obtain a common key, encryption information corresponding to the common key or corresponding to information used to generate the common key, and encrypted content obtained by encrypting content with the common key, according to a functional encryption algorithm; one or a plurality of key generation apparatuses; one or a plurality of decryption apparatuses; and one or a plurality of content servers; 
     in the cryptographic system, 
     a private key and a public key corresponding to the private key being determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs being determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information being determined in advance; 
     the content server comprising: 
     a storage unit adapted to store the encryption information and the encrypted content sent from each of the one or the plurality of encryption apparatuses; and 
     a transmitter unit adapted to transmit the encrypted content and the encryption information corresponding thereto, in response to a request sent from the decryption apparatus, to the decryption apparatus. 
     Item 20 
     A content server used in a cryptographic system that uses functional encryption and includes, at least, one or a plurality of encryption apparatuses that encrypt content to obtain encrypted content according to a functional encryption algorithm; one or a plurality of key generation apparatuses; one or a plurality of decryption apparatuses; and one or a plurality of content servers; 
     in the cryptographic system, 
     a private key and a public key corresponding to the private key being determined in advance for each of the one or the plurality of key generation apparatuses; 
     one or a plurality of conversion rule information pairs being determined in advance, each pair of which has information (hereafter called attribute conversion rule information) prescribing a conversion rule for converting information that designates an attribute (hereafter called attribute designation information) to attribute information used in a functional encryption algorithm and information (hereafter called logical expression conversion rule information) prescribing a conversion rule for converting information that designates a logical expression (hereafter called logical expression designation information) to logic information used in the functional encryption algorithm; and 
     policy information that identifies one of the attribute conversion rule information and the logical expression conversion rule information being determined in advance; 
     the content server comprising: 
     a storage unit adapted to store the encrypted content sent from each of the one or the plurality of encryption apparatuses; and 
     a transmitter unit adapted to transmit the encrypted content, in response to a request sent from the decryption apparatus, to the decryption apparatus. 
     Item 21 
     A program for making a computer function as a decryption apparatus according to one of Items 17 and 18. 
     Item 22 
     A program for making a computer function as a content server according to one of Items 19 and 20. 
     Item 23 
     A computer readable storage medium having stored thereon a program according to Item 21 and/or a program according to Item 22.