WO2013024629A1 - 情報処理装置、情報処理方法、プログラム、及び記録媒体 - Google Patents
情報処理装置、情報処理方法、プログラム、及び記録媒体 Download PDFInfo
- Publication number
- WO2013024629A1 WO2013024629A1 PCT/JP2012/066125 JP2012066125W WO2013024629A1 WO 2013024629 A1 WO2013024629 A1 WO 2013024629A1 JP 2012066125 W JP2012066125 W JP 2012066125W WO 2013024629 A1 WO2013024629 A1 WO 2013024629A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information
- algorithm
- verifier
- message
- prover
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3093—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
Definitions
- the present technology relates to an information processing apparatus, an information processing method, a program, and a recording medium.
- Electronic signatures are used to identify the creator of an electronic document. Therefore, the electronic signature should be generated only by the creator of the electronic document. If a malicious third party can generate the same electronic signature, that third party can impersonate the creator of the electronic document. That is, a malicious third party may forge the electronic document.
- a digital signature system widely used at present, for example, an RSA signature system, a DSA signature system, etc. are known.
- the RSA signature scheme is based on "the difficulty of prime factorization for large composite numbers (hereinafter, prime factorization problem)" as the basis of security.
- DSA signature scheme is based on "difficulty of deriving solution for discrete logarithm problem” as the basis of security.
- MI Magnetic-Imai cryptography
- HFE Hidden Field Equation cryptography
- OV Olet-Vinegar signature scheme
- TTM Treatment Method cryptography
- the multivariate polynomial problem is an example of a problem called the NP hard problem which is difficult to solve even using a quantum computer.
- a public key authentication method using a multivariate polynomial problem represented by HFE or the like utilizes a multiorder multivariate simultaneous equation in which a special trap door is installed.
- multiorder multivariate simultaneous equations F and linear transformations A and B become trap doors.
- a public key authentication method or a digital signature method can be realized, which is based on the difficulty of solution of multi-order multivariable simultaneous equations.
- the present technology provides an efficient public key authentication method and electronic signature method having high security by using multi-order multivariate simultaneous equations for which means (trap door) to be solved efficiently is not known. It is intended to provide a new and improved information processing apparatus, information processing method, program, and recording medium capable of realizing the present invention.
- An intermediate information generation unit that generates third information using the first information randomly selected by the verifier and the second information obtained when generating the message; and the third information for the verifier
- the vector s is a secret key
- the set F of polynomials and the vector y are public keys
- the message is a verification pattern
- the set F of multi-order multivariate polynomials is information obtained by executing an operation prepared in advance for the polynomial f 1 ,... Defined on the ring R of the characteristic q and the order q k .
- An information processing apparatus is provided, configured to be configured with terms proportional to k).
- An intermediate information acquiring unit for acquiring the third information, and a pattern information providing unit for providing information of one verification pattern randomly selected from k (k ⁇ 3) verification patterns to the prover; Answer information corresponding to the selected verification pattern
- the prover performs the vector s based on an answer acquiring unit acquired from the prover, the message, the first information, the third information, a set F of the multi-order multivariate polynomials, and the answer information.
- the vector s is a secret key
- the multi-order multivariate polynomial set F and the vector y are public keys
- the message is Information obtained by executing an operation prepared in advance for a verification pattern corresponding to the answer information using a public key, the first information, the third information, and the answer information
- the verifier And providing the verifier with response information corresponding to the verification pattern selected by the verifier from k (k ⁇ 2) verification patterns, and the vector s is a secret key,
- the set F of the multi-order multivariate polynomials and the vector y are public keys
- the message is obtained by executing an operation prepared in advance for a verification pattern corresponding to the response information using the public key, the first information, the third information, and the response information.
- An intermediate information generation function of generating third information using the first information randomly selected by the verifier and the second information obtained when generating the message;
- the vector s is a secret key
- the set F of the multi-order multivariate polynomials and the vector y are public keys
- the message is the public key
- the third Information which is information obtained by executing an operation prepared in advance for a verification pattern corresponding to the answer information using the information and the answer information
- the set F of multi-order multivariate polynomials has a characteristic number q
- X 2 ) F (x 1 + x 2 ) -F (x 1 ) -F (x 2 )
- the prover generates the prover using the information providing function of providing randomly selected first information to the prover, and the second information obtained when generating the first information and the message.
- the prover obtains the answer information from the prover, the prover based on the message, the first information, the third information, the set F of the multi-order multivariate polynomials, and the answer information.
- An intermediate information generation function of generating third information using the first information randomly selected by the verifier and the second information obtained when generating the message;
- the vector s is a secret key
- the multi-order multivariate polynomial set F and the vector y are public keys
- the message is the public key Information obtained by executing an operation prepared in advance for a verification pattern corresponding to the answer information using the key, the first information, the third information, and the answer information
- the prover generates the prover using the information providing function of providing randomly selected first information to the prover, and the second information obtained when generating the first information and the message.
- the prover obtains the answer information from the prover, the prover based on the message, the first information, the third information, the set F of the multi-order multivariate polynomials, and the answer information.
- a computer readable recording medium having recorded thereon a program for causing a computer to realize a verification function of verifying whether the vector s is held, the vector s being a secret key
- the set F of multi-order multivariate polynomials and the vector y are public keys, and the message corresponds to the response information using the public key, the first information, the third information, and the response information.
- G (x 1, x 2) F (x 1 + x 2) -F (x 1
- a recording medium is provided, which is configured to consist of terms proportional to ⁇ k).
- composition of an algorithm concerning a public key attestation system It is an explanatory view for explaining composition of an algorithm concerning a digital signature method. It is explanatory drawing for demonstrating the structure of the algorithm which concerns on the public key authentication system of n path
- FIG. 5 is an explanatory diagram for describing an example of an algorithm of a public key authentication scheme (scheme # 1) using a 5-pass high-order multivariate polynomial.
- FIG. 18 is an explanatory diagram for describing an example of an algorithm of a public key authentication scheme (scheme # 2) using a 5-pass high-order multivariate polynomial. It is explanatory drawing for demonstrating an example of the parallelization algorithm of the public key authentication system (scheme # 2) using 5 path
- 18 is an explanatory diagram for describing an example of a more efficient parallelization algorithm of a public key authentication scheme (scheme # 2) using a 5-pass high-order multivariate polynomial. It is an explanatory view for explaining a method of transforming an efficient algorithm concerning a 3-pass public key authentication method into an algorithm of a digital signature method. It is an explanatory view for explaining a method of transforming an efficient algorithm concerning a 3-pass public key authentication scheme into an algorithm of a more efficient digital signature scheme. It is an explanatory view for explaining a method of transforming an efficient algorithm concerning a 5-pass public key authentication scheme into an algorithm of a digital signature scheme.
- FIG. 18 is an explanatory diagram for describing a parallel-serial configuration (parallel-serial configuration # 1) of an efficient algorithm related to a 5-pass public key authentication scheme.
- FIG. 18 is an explanatory diagram for describing a parallel-serial configuration (parallel-serial configuration # 2) of an efficient algorithm related to a 5-pass public key authentication scheme.
- the present embodiment relates to a public key authentication scheme and a digital signature scheme that base security on the difficulty of solving a multi-order multivariate simultaneous equation.
- the present embodiment relates to a public key authentication method and an electronic signature method using multi-order multivariate simultaneous equations which do not have means (trap door) to be solved efficiently unlike the conventional methods such as the HFE electronic signature method.
- FIG. 1 is an explanatory diagram for describing an outline of an algorithm of the public key authentication scheme.
- Public key authentication is used to convince a person (certifier) to be another person (verifier) that the person is the person using the public key pk and the secret key sk.
- the public key pk A of the prover A is disclosed to the verifier B.
- the prover A's secret key sk A is secretly managed by the prover A.
- the person who knows the secret key sk A corresponding to the public key pk A is considered to be the prover A himself.
- the secret key sk corresponding to the public key pk A by the certifier A through the dialogue protocol
- the verifier B should be presented with evidence that he knows A. Then, if evidence that the prover A knows the secret key sk A is presented to the verifier B and the examiner B confirms the evidence, the legitimacy (identity) of the prover A is It will be proved.
- the first condition is to “make the probability of false proof established by a false witness who does not have the secret key sk when executing the dialogue protocol as small as possible”. It is called “soundness” that this first condition holds. In other words, soundness can be reworded as "a false witness that does not have the secret key sk can not establish false evidence with a probability that can not be ignored during execution of the dialogue protocol.”
- the second condition is, "even if you perform an interactive protocol, information of the secret key sk A of the prover A has there is no leak at all to the verifier B" that is. It is called “zero knowledge" that this second condition holds.
- model In the model of the public key authentication scheme, as shown in FIG. 1, there are two entities, a prover and a verifier.
- the prover uses the key generation algorithm Gen to generate a set of a prover's unique secret key sk and a public key pk.
- the prover executes the dialogue protocol with the verifier using the set of the secret key sk and the public key pk generated using the key generation algorithm Gen.
- the prover executes the dialogue protocol using the prover algorithm P.
- the prover uses the prover algorithm P to present to the verifier the evidence of holding the secret key sk in the dialogue protocol.
- the verifier executes the dialogue protocol using the verifier algorithm V, and verifies whether or not the prover holds the private key corresponding to the public key published by the prover. That is, the verifier is an entity that verifies whether the prover holds the private key corresponding to the public key.
- the model of the public key authentication scheme is composed of three entities of a prover and a verifier, and three algorithms of a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V.
- the expressions “prover” and “verifier” are used, these expressions mean entity to the last. Therefore, the subject that executes the key generation algorithm Gen and the prover algorithm P is an information processing apparatus corresponding to the entity of the "prover”. Similarly, the subject that executes the verifier algorithm V is an information processing apparatus.
- the hardware configuration of these information processing apparatuses is, for example, as shown in FIG. That is, the key generation algorithm Gen, the prover algorithm P, and the verifier algorithm V are executed by the CPU 902 or the like based on programs recorded in the ROM 904, the RAM 906, the storage unit 920, the removable recording medium 928 or the like.
- the key generation algorithm Gen is used by the prover.
- the key generation algorithm Gen is an algorithm that generates a pair of a secret key sk unique to the prover and a public key pk.
- the public key pk generated by the key generation algorithm Gen is released. Then, the public key pk released is used by the verifier.
- the prover manages the secret key sk generated by the key generation algorithm Gen in a secret.
- the secret key sk secretly managed by the prover is used to prove to the verifier that the prover holds the secret key sk corresponding to the public key pk.
- the key generation algorithm Gen is expressed as the following equation (1) as an algorithm which receives the security parameter 1 ⁇ ( ⁇ is an integer of 0 or more) and outputs the secret key sk and the public key pk. Ru.
- the prover algorithm P is used by the prover.
- the prover algorithm P is an algorithm for proving to the verifier that the prover holds the secret key sk corresponding to the public key pk. That is, the prover algorithm P is an algorithm that receives the secret key sk and the public key pk as input, and executes the dialogue protocol.
- the verifier algorithm V is used by the verifier.
- the verifier algorithm V is an algorithm for verifying whether the prover holds the secret key sk corresponding to the public key pk in the dialogue protocol.
- the verifier algorithm V is an algorithm that receives the public key pk and outputs 0 or 1 (1 bit) according to the result of execution of the interaction protocol.
- the verifier determines that the prover is invalid when the verifier algorithm V outputs 0, and determines that the prover is valid when 1 is output.
- the verifier algorithm V is expressed as the following equation (2).
- the dialogue protocol needs to satisfy the two conditions of soundness and zero knowledge.
- the prover executes a procedure dependent on the secret key sk, notifies the verifier of the result, and It is necessary to have the verifier perform verification based on Performing procedures dependent on the secret key sk is necessary to ensure soundness.
- FIG. 2 is an explanatory diagram for explaining an outline of an algorithm of the digital signature scheme.
- the electronic signature refers to a mechanism for providing the recipient with signature data that is known only to the creator of the data and providing it to the recipient, and verifying the signature data on the recipient side.
- model In the model of the electronic signature scheme, as shown in FIG. 2, there are two entities, a signer and a verifier.
- the model of the electronic signature scheme is composed of three algorithms: a key generation algorithm Gen, a signature generation algorithm Sig, and a signature verification algorithm Ver.
- the signer generates a pair of a signer's unique signature key sk and a verification key pk using the key generation algorithm Gen. Further, the signer generates a digital signature ⁇ to be attached to the document M using the signature generation algorithm Sig. That is, the signer is an entity that gives the document M a digital signature.
- the verifier verifies the electronic signature ⁇ attached to the document M using the signature verification algorithm Ver. That is, the verifier is an entity that verifies the digital signature ⁇ in order to confirm whether the creator of the document M is a signer.
- the expressions “signer” and “verifier” mean the entities to the last. Therefore, the subject that executes the key generation algorithm Gen and the signature generation algorithm Sig is an information processing apparatus corresponding to the “signer” entity. Similarly, an entity that executes the signature verification algorithm Ver is an information processing apparatus.
- the hardware configuration of these information processing apparatuses is, for example, as shown in FIG. That is, the key generation algorithm Gen, the signature generation algorithm Sig, and the signature verification algorithm Ver are executed by the CPU 902 or the like based on programs recorded in the ROM 904, the RAM 906, the storage unit 920, the removable recording medium 928 or the like.
- the key generation algorithm Gen is used by the signer.
- the key generation algorithm Gen is an algorithm that generates a pair of a signer-specific signature key sk and a verification key pk.
- the verification key pk generated by the key generation algorithm Gen is released.
- the signature key sk generated by the key generation algorithm Gen is secretly managed by the signer.
- the signature key sk is used to generate the electronic signature ⁇ given to the document M.
- the key generation algorithm Gen takes a security parameter 1 ⁇ ( ⁇ is an integer of 0 or more) as an input, and outputs a signature key sk and a public key pk.
- the key generation algorithm Gen can be formally expressed as the following equation (3).
- the signature generation algorithm Sig is used by the signer.
- the signature generation algorithm Sig is an algorithm for generating a digital signature ⁇ given to the document M.
- the signature generation algorithm Sig is an algorithm that receives the signature key sk and the document M and outputs a digital signature ⁇ .
- This signature generation algorithm Sig can be formally expressed as the following equation (4).
- the signature verification algorithm Ver is used by the verifier.
- the signature verification algorithm Ver is an algorithm for verifying whether the digital signature ⁇ is a valid electronic signature for the document M.
- the signature verification algorithm Ver is an algorithm that receives a signer's verification key pk, a document M, and a digital signature ⁇ as input, and outputs 0 or 1 (1 bit).
- This signature verification algorithm Ver can be formally expressed as the following equation (5).
- the verifier determines that the electronic signature ⁇ is invalid when the signature verification algorithm Ver outputs 0 (when the public key pk rejects the document M and the electronic signature ⁇ ), and outputs 1 ( If the public key pk accepts the document M and the electronic signature ⁇ ), it is determined that the electronic signature ⁇ is valid.
- FIG. 3 is an explanatory diagram for describing an n-pass public key authentication scheme.
- the public key authentication method is an authentication method that proves to the verifier that the prover holds the secret key sk corresponding to the public key pk in the dialogue protocol.
- the dialogue protocol needs to satisfy two conditions of soundness and zero knowledge. Therefore, in the dialogue protocol, as shown in FIG. 3, both the prover and the verifier exchange information n times while executing processing.
- an "n-pass" public key authentication scheme a scheme in which information is transmitted and received n times.
- the 3-pass public key authentication scheme may be referred to as a “3-pass scheme”.
- FIG. 4 is an explanatory diagram for describing a specific algorithm configuration related to the 3-pass scheme.
- the 3-pass algorithm is configured by a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V. The configuration of each algorithm will be described below.
- the key generation algorithm Gen sets (f 1 (x 1 ,..., X n ),..., F m (x 1 ,..., X n ), y) as the public key pk and s as the secret key Set
- the vector (x 1 ,..., X n ) is represented as x
- the set of multivariate polynomials (f 1 (x),..., F m (x)) is represented as F (x) make it
- the public key pk is assumed to be public to the verifier. Also, it is assumed that the secret key s is secretly managed by the prover. Hereinafter, the description will be made along the flowchart shown in FIG.
- Process # 1 (cont.): Next, the prover algorithm P calculates r 1 ss ⁇ r 0 . This calculation corresponds to an operation of masking the secret key s by the vector r 0 . Furthermore, the prover algorithm P calculates F 2 (x) ⁇ F (x + r 0 ) + F 1 (x). This calculation corresponds to an operation of masking the multivariate polynomial F (x + r 0 ) with respect to x by the multivariate polynomial F 1 (x).
- Process # 1 (cont.): Then, the prover algorithm P generates a hash value c 0 of F 1 (r 1 ) and r 1 . That is, the prover algorithm P calculates c 0 H H (F 1 (r 1 ), r 1 ). Also, the prover algorithm P generates a hash value c 1 of the number seed 1 . That is, the prover algorithm P calculates c 1 ⁇ H (seed 1 ). Furthermore, the prover algorithm P generates a hash value c 2 of the multivariable polynomial F 2 . That is, the prover algorithm P calculates c 2 H H (F 2 ).
- This hash value (c 0 , c 1 , c 2 ) is sent as a message to the verifier algorithm V.
- the information on s, the information on r 0 and the information on r 1 do not leak to the verifier.
- Process # 2 The verifier algorithm V that receives the message (c 0 , c 1 , c 2 ) selects which one of the three verification patterns to use. For example, the verifier algorithm V selects one numerical value from three numerical values ⁇ 0, 1, 2 ⁇ representing the type of verification pattern, and sets the selected numerical value in the request Ch. This request Ch is sent to the prover algorithm P.
- Process # 4 The verifier algorithm V that has received the response Rsp executes the following verification process using the received response Rsp.
- the commitment function COM is a function that takes a string S and a random number ⁇ as arguments.
- An example of the commitment function is the method presented by Shai Halevi and Silvio Micali at the international conference CRYPTO1996.
- the multivariate polynomial F can be expressed as the following Expression (10) and Expression (11). It can be easily confirmed from the following equation (12) that this expression holds.
- the sum of the multivariate polynomial F (x + r 0 ) and G (x) is expressed as the following equation (13).
- Process # 1 As shown in FIG. 5, the prover algorithm P randomly generates vectors r 0 , t 0 ⁇ K n and e 0 ⁇ K m . Next, the prover algorithm P calculates r 1 ss ⁇ r 0 . This calculation corresponds to an operation of masking the secret key s by the vector r 0 . Furthermore, the prover algorithm P calculates t 1 rr 0 ⁇ t 0 . Next, the prover algorithm P calculates e 1 ⁇ F (r 0 ) ⁇ e 0 .
- Process # 1 (cont.): Next, the prover algorithm P calculates c 0 HH (r 1 , G (t 0 , r 1 ) + e 0 ). Next, the prover algorithm P calculates c 1 H H (t 0 , e 0 ). Next, the prover algorithm P calculates c 2 H H (t 1 , e 1 ). The message (c 0 , c 1 , c 2 ) generated in step # 1 is sent to the verifier algorithm V.
- Process # 2 The verifier algorithm V that receives the message (c 0 , c 1 , c 2 ) selects which one of the three verification patterns to use. For example, the verifier algorithm V selects one numerical value from three numerical values ⁇ 0, 1, 2 ⁇ representing the type of verification pattern, and sets the selected numerical value in the request Ch. This request Ch is sent to the prover algorithm P.
- Process # 4 The verifier algorithm V that has received the response Rsp executes the following verification process using the received response Rsp.
- a serial method in which the exchange of messages, requests, and replies is sequentially repeated plural times and the exchange of messages, requests, and answers for plural times in one exchange are performed.
- a parallel method can be considered.
- an algorithm hereinafter, parallelization algorithm that executes the above-mentioned dialogue protocol according to the 3-pass scheme in parallel will be described.
- Process (1) The prover algorithm P randomly generates vectors r 0i , t 0i ⁇ K n and e 0i ⁇ K m .
- Process (3) The prover algorithm P calculates e 1i ⁇ F (r 0i ) ⁇ e 0i .
- the hash value Cmt generated in step # 1 is sent to the verifier algorithm V.
- the amount of communication can be reduced by converting the messages (c 01 , c 11 , c 21 ,..., C 0 N , c 1 N , c 2 N ) into hash values and sending them to the verifier algorithm V. It will be possible.
- Process # 3 Request Ch 1, ..., a prover algorithm P that received Ch N, requested Ch 1 received, ..., reply Rsp 1 to send to the verifier algorithm V in accordance respective Ch N, ..., to produce a Rsp N.
- Ch i 2i
- the prover algorithm P, Rsp i (r 1i, t 1i, e 1i, c 1i) to produce a.
- the responses Rsp 1 ,..., Rsp N generated in step # 3 are sent to the verifier algorithm V.
- Ch i 1, the verifier algorithm V from Rsp i (r 1i, t 0i , e 0i, c 2i) taken out.
- the verifier algorithm V holds (c 0i , c 1i , c 2i ).
- the configuration example of the efficient parallelization algorithm according to the 3-pass scheme has been described above.
- the parallelization algorithm shown in FIG. 6 incorporates a device for converting a message into a hash value and then transmitting it. Communication efficiency improves by this device.
- request Ch 1, ..., Ch N and responses Rsp 1, ... it may be modified configuration to transmit after converting the Rsp N to the hash value. By modifying the configuration in this manner, further improvement in communication efficiency can be expected.
- the following formulas (14) to (16) have a first portion reproducible by (r 0 , t 1 , e 1 ) and a second portion reproducible by (r 1 , t 0 , e 0 ) It can be divided into a part and a third part reproducible by (r 1 , t 1 , e 1 ).
- “r 0 , t 1 ” included in the following formula (15) and “F (r 0 ), e 1 ” included in the following formula (16) are the first part.
- “e 0 , G (t 0 , r 1 )” included in the following equation (14), “t 0 ” included in the following equation (15), “e in the following equation (16) 0 is the second part.
- “e 1 , F (r 1 ), G (t 1 , r 1 )” included in the following formula (14) is a third part.
- the following formula (14) is composed of the second and third parts
- the following formula (15) is composed of the first and second parts
- the following formula (16) is composed of the first and the second parts. It consists of two parts.
- the following formulas (14) to (16) are each composed of two types of parts. Also, from the definition of the secret key s and the relationships of the following equations (14) to (16), (r 0 , t 1 , e 1 ), (r 1 , t 0 , e 0 ), (r 1 , t It is ensured that the secret key s can not be obtained even if any one of 1 , 1 and e 1 ) is used. Using these properties, for example, an efficient algorithm according to the 3-pass scheme shown in FIG. 5 can be constructed.
- g xl and g yl are respectively as in the following formula (19) and formula (20) Can be deployed.
- the second term on the right side of the g xl are the primary For any x and y, it may be included in the g yl.
- G x (x, y) and G y (x, y) are additively homomorphic to x and y. Therefore, new variables r 0 , r 1 , t 0 , u 0 and e 0 are introduced and released in the same manner as the efficient algorithm construction method using the second-order polynomial f i using these properties. Divide the key F (s).
- the following equation (21) is composed of the third and fourth parts
- the following equation (22) and the following equation (23) are composed of the first and fourth parts
- 24) is composed of first and second parts.
- the following formulas (21) to (24) are each composed of two types of parts.
- the basic point about the design of the extended algorithm is to send the message expressed by the following equation (25) to the equation (27) to the verifier, and perform the verification on any of the first to fourth parts. 2 points.
- this verification alone can not verify whether “r 1 ” included in the third part is equal to “r 1 ” included in the fourth part.
- "r 0 " included in the first part is equal to "r 0 " included in the second part, or "t 0 , e 0 " included in the first part and the third part
- It can not be verified that "t 0 , e 0 " included in is equal.
- it can not be verified whether "u 1 , e 1 " included in the second part is equal to "u 1 , e 1 " included in the fourth part. So, below, the example of composition which enabled these verifications is introduced.
- Process # 1 As shown in FIG. 7, the prover algorithm P randomly generates vectors r 0 , t 0 , u 0 ⁇ K n and e 0 ⁇ K m . Next, the prover algorithm P calculates r 1 ss ⁇ r 0 . This calculation corresponds to an operation of masking the secret key s by the vector r 0 . Next, the prover algorithm P calculates t 1 rr 0 ⁇ t 0 . Then, the prover algorithm P calculates u 1 rr 1 ⁇ u 0 . Next, the prover algorithm P calculates e 1 ⁇ F (r 0 ) ⁇ e 0 .
- Process # 1 (cont.): Next, the prover algorithm P calculates c 0 H H (r 1 , G x (t 0 , r 1 ) + e 0 ). Next, the prover algorithm P calculates c 1 HH (r 0 ⁇ t 0 , u 0 ). Next, the prover algorithm P calculates c 2 H H (r 0 , e 1 -G y (r 0 , u 1 )). Next, the prover algorithm P calculates c 3 H H (t 0 , e 0 ). Then, the prover algorithm P calculates c 4 H H (u 1 , e 1 ). The messages (c 0 , c 1 , c 2 , c 3 , c 4 ) generated in step # 1 are sent to the verifier algorithm V.
- Process # 2 The verifier algorithm V that receives the message (c 0 , c 1 , c 2 , c 3 , c 4 ) selects which of the four verification patterns is to be used. For example, the verifier algorithm V selects one numerical value from four numerical values ⁇ 0, 1, 2, 3 ⁇ representing the type of verification pattern, and sets the selected numerical value in the request Ch. This request Ch is sent to the prover algorithm P.
- Process # 3 The prover algorithm P that has received the request Ch generates a response Rsp to be sent to the verifier algorithm V according to the received request Ch.
- the response Rsp generated in step # 3 is sent to the verifier algorithm V.
- Process # 4 The verifier algorithm V that has received the response Rsp executes the following verification process using the received response Rsp.
- the verifier algorithm V outputs the value 1 indicating the authentication success when all the verifications are successful, and outputs the value 0 indicating the authentication failure when the verification fails.
- the prover algorithm P randomly generates vectors r 0i , t 0i , u 0i ⁇ K n and e 0i ⁇ K m .
- the prover algorithm P calculates r 1i ⁇ s ⁇ r 0i . This calculation corresponds to an operation of masking the secret key s with the vector r 0i .
- the prover algorithm P calculates t 1i ⁇ r 0i -t 0i .
- the prover algorithm P calculates u 1i ⁇ r 1i -u 0i .
- the prover algorithm P calculates e 1i ⁇ F (r 0i ) ⁇ e 0i .
- Process # 1 (cont.): Next, the prover algorithm P calculates c 0i ⁇ H (r 1i , G x (t 0i , r 1i ) + e 0i ). Next, the prover algorithm P calculates c 1i ⁇ H (r 0i ⁇ t 0i , u 0i ). Next, the prover algorithm P calculates c 2i ⁇ H (r 0i , e 1i -G y (r 0i , u 1i )). Next, the prover algorithm P calculates c 3i ⁇ H (t 0i , e 0i ).
- the prover algorithm P calculates c 4i ⁇ H (u 1i , e 1i ). (C 01, c 11, c 21, c 31, c 41, ..., c 0N, c 1N, c 2N, c 3N, c 4N) after generating, prover algorithm P, the hash value Cmt ⁇ H ( Calculate c 01 , c 11 , c 21 , c 31 , c 41 ,..., c 0 N , c 1 N , c 2 N , c 3 N , c 4 N ).
- the hash value Cmt generated in step # 1 is sent to the verifier algorithm V.
- Ch i 1
- Ch i 1
- the verifier algorithm V holds (c 0i , c 1i , c 2i , c 3i , c 4i ).
- Ch i 2
- the verifier algorithm V holds (c 0i , c 1i , c 2i , c 3i , c 4i ).
- the verifier algorithm V outputs the value 1 indicating the authentication success when the verification is successful, and outputs the value 0 indicating the authentication failure when the verification fails.
- the false evidence rate per interaction protocol is 2/3, but in the case of the 5-pass scheme, the false evidence probability per interactive protocol is 1/2 + 1 / q. Where q is the order of the ring to be used. Therefore, if the order of the ring is sufficiently large, the 5-pass scheme can reduce the perjudging probability per time, and can reduce the perjudacy probability sufficiently with a small number of executions of the dialogue protocol. it can.
- FIG. 9 is an explanatory diagram for describing a specific algorithm configuration related to the 5-pass scheme.
- the 5-pass algorithm is composed of a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V. The configuration of each algorithm will be described below.
- the key generation algorithm Gen sets (f 1 ,..., F m , y) as the public key pk and sets s as the secret key.
- the vector (x 1 ,..., X n ) is represented as x
- the set of multivariable polynomials (f 1 (x),..., F m (x)) is represented as F (x).
- Process # 1 As shown in FIG. 9, the prover algorithm P randomly selects the number seed 0 .
- the prover algorithm P calculates r 1 ss ⁇ r 0 . This calculation corresponds to an operation of masking the secret key s by the vector r 0 .
- Process # 1 (cont.): Then, the prover algorithm P generates a hash value c 0 of F 1 (r 1 ) and r 1 . That is, the prover algorithm P calculates c 0 H H (F 1 (r 1 ), r 1 ). Also, the prover algorithm P generates a hash value c 1 of several seeds 0 . That is, the prover algorithm P calculates c 1 ⁇ H (seed 0 ). The message (c 0 , c 1 ) generated in step # 1 is sent to the verifier algorithm V.
- Process # 2 The verifier algorithm V that has received the message (c 0 , c 1 ) randomly selects one number Ch A from the elements of the ring K existing in q ways, and sends the selected number Ch A to the prover algorithm P.
- Process # 3 The prover algorithm P that has received the number Ch A calculates F 2 (x) ⁇ Ch A ⁇ F (x + r 0 ) + F 1 (x). This calculation corresponds to an operation of masking the multivariate polynomial F (x + r 0 ) with respect to x by the multivariate polynomial F 1 (x).
- the multivariable polynomial F 2 generated in step # 3 is sent to the verifier algorithm V.
- Process # 4 The verifier algorithm V that has received the multivariable polynomial F 2 selects which one of the two verification patterns to use. For example, the verifier algorithm V selects one numerical value from among two numbers representing verification patterns ⁇ 0, 1 ⁇ , and set the selected numerical value in the request Ch B. This request Ch B is sent to the prover algorithm P.
- Process # 6 The verifier algorithm V that has received the response Rsp executes the following verification process using the received response Rsp.
- the false witness can not succeed in false proof with a probability higher than 1/2 + 1 / q. Note that by executing the above dialogue protocol a sufficient number of times, it is possible to make the probability of success in perjury small enough to ignore.
- the commitment function COM is a function that takes a string S and a random number ⁇ as arguments.
- An example of the commitment function is the method presented by Shai Halevi and Silvio Micali at the international conference CRYPTO1996.
- F 1 (x) G (x, t 0 ) + e 0 .
- the above-mentioned modification does not leak any information related to r 0 from F 2 (or F 1 ).
- F 2 or F 1
- the information on r 0 can not be known at all unless the e 0 and t 0 (or e 1 and t 1 ) are known. Therefore, zero knowledge is secured.
- the efficient algorithm according to the 5-pass scheme will be described below with reference to FIGS. 10 and 11.
- Process # 1 As shown in FIG. 10, the prover algorithm P randomly generates vectors r 0 ⁇ K n , t 0 ⁇ K n and e 0 ⁇ K m . Next, the prover algorithm P calculates r 1 ss ⁇ r 0 . This calculation corresponds to an operation of masking the secret key s by the vector r 0 . Next, the prover algorithm P generates a hash value c 0 of the vectors r 0 , t 0 and e 0 . That is, the prover algorithm P calculates c 0 ⁇ H (r 0 , t 0 , e 0 ).
- the prover algorithm P generates a hash value c 1 of G (t 0 , r 1 ) + e 0 and r 1 . That is, the prover algorithm P calculates c 0 H H (r 1 , G (t 0 , r 1 ) + e 0 ).
- the message (c 0 , c 1 ) generated in step # 1 is sent to the verifier algorithm V.
- Process # 2 The verifier algorithm V that has received the message (c 0 , c 1 ) randomly selects one number Ch A from the elements of the ring K existing in q ways, and sends the selected number Ch A to the prover algorithm P.
- Process # 3 The prover algorithm P that has received the number Ch A calculates t 1 ⁇ Ch A ⁇ r 0 -t 0 . Furthermore, the prover algorithm P calculates e 1 ChCh A ⁇ F (r 0 ) ⁇ e 0 . Then, the prover algorithm P sends t 1 and e 1 to the verifier algorithm V.
- Process # 4 The verifier algorithm V that has received t 1 and e 1 selects which one of two verification patterns to use. For example, the verifier algorithm V selects one numerical value from among two numbers representing verification patterns ⁇ 0, 1 ⁇ , and set the selected numerical value in the request Ch B. This request Ch B is sent to the prover algorithm P.
- Process # 6 The verifier algorithm V that has received the response Rsp executes the following verification process using the received response Rsp.
- Ch B 1
- a serial method in which the exchange of messages, requests, and replies is sequentially repeated plural times and the exchange of messages, requests, and answers for plural times in one exchange are performed.
- a parallel method can be considered.
- an algorithm hereinafter, parallelization algorithm that executes the above-mentioned dialogue protocol according to the 5-pass scheme in parallel will be described.
- Process (1) The prover algorithm P randomly generates vectors r 0i , t 0i ⁇ K n and e 0i ⁇ K m .
- the configuration example of the efficient parallelization algorithm according to the 5-pass scheme has been described above.
- the parallelization algorithm shown in FIG. 11 incorporates a device for converting a message into a hash value and then transmitting it. Communication efficiency improves by this device.
- requests Ch A1, ..., Ch AN, Ch B1, ..., Ch BN and responses Rsp 1, ... may be modified configuration to transmit after converting a hash value and Rsp N. By modifying the configuration in this manner, further improvement in communication efficiency can be expected.
- Equation (36) Equation 317
- Equation (37) Equation 317
- Process # 1 As shown in FIG. 12, the prover algorithm P randomly generates vectors r 0 , t 0 , u 0 ⁇ K n and e 0 ⁇ K m . Next, the prover algorithm P calculates r 1 ss ⁇ r 0 . This calculation corresponds to an operation of masking the secret key s by the vector r 0 . Next, the prover algorithm P calculates c 0 HH (r 0 , t 0 , e 0 -G y (r 0 , u 0 )).
- the prover algorithm P calculates c 1 H H (r 1 , u 0 , G x (t 0 , r 1 ) + e 0 ).
- the message (c 0 , c 1 ) generated in step # 1 is sent to the verifier algorithm V.
- Process # 2 The verifier algorithm V that has received the message (c 0 , c 1 ) randomly selects the number Ch A. This number Ch A is sent to the prover algorithm P.
- Process # 3 The prover algorithm P that has received the number Ch A calculates t 1 ⁇ Ch A ⁇ r 0 -t 0 . Then, the prover algorithm P calculates u 1 ChCh A ⁇ r 1 -u 0 . Next, the prover algorithm P calculates e 1 ChCh A ⁇ F (r 0 ) + Ch A ⁇ G y (r 0 , r 1 ) ⁇ e 0 . The (t 1 , u 1 , e 1 ) generated in step # 3 is sent to the verifier algorithm V.
- Process # 4 The verifier algorithm V that has received (t 1 , u 1 , e 1 ) selects which one of the two verification patterns to use. For example, the verifier algorithm V selects one numerical value from among two numbers representing verification patterns ⁇ 0, 1 ⁇ , and set the selected numerical value in the request Ch B. This request Ch B is sent to the prover algorithm P.
- Process # 6 The verifier algorithm V that has received the response Rsp executes the following verification process using the received response Rsp.
- the verifier algorithm V outputs the value 1 indicating the authentication success when the verification is successful, and outputs the value 0 indicating the authentication failure when the verification fails.
- the verifier algorithm V outputs the value 1 indicating the authentication success when the verification is successful, and outputs the value 0 indicating the authentication failure when the verification fails.
- the prover algorithm P randomly generates vectors r 0i , t 0i , u 0i ⁇ K n and e 0i ⁇ K m .
- the prover algorithm P calculates r 1i ⁇ s ⁇ r 0i . This calculation corresponds to an operation of masking the secret key s with the vector r 0i .
- the prover algorithm P calculates c 0i ⁇ H (r 0i , t 0i , e 0i -G y (r 0i , u 0i )).
- the prover algorithm P calculates c 1i ⁇ H (r 1i , u 0i , G x (t 0i , r 1i ) + e 0i ).
- Process # 1 (cont.): After calculating (c 01 , c 11 ,..., C 0N , c 1N ), the prover algorithm P calculates a hash value Cmt H H (c 01 , c 11 ,..., C 0N , c 1N ). The hash value Cmt generated in step # 1 is sent to the verifier algorithm V.
- Process # 2 The verifier algorithm V that has received the hash value Cmt randomly selects the numbers Ch A1 ,..., Ch AN .
- the numbers Ch A1 ,..., Ch AN are sent to the prover algorithm P.
- step # 3 (T 11 , u 11 , e 11 ,..., T 1N , u 1N , e 1N ) generated in step # 3 are sent to the verifier algorithm V.
- Ch Bi 0
- Ch Bi 1
- the response Rsp i generated in step # 5 is sent to the verifier algorithm V.
- the verifier algorithm V outputs the value 1 indicating the authentication success when the verification is successful, and outputs the value 0 indicating the authentication failure when the verification fails.
- the relationship shown in the following equation (40) holds for Ch A ⁇ R. Furthermore, the relationship shown in the following equation (41) also holds. Therefore, using these properties (hereinafter referred to as quasi-linearity), new variables r 0 , r 1 , t 0 z and e 0 are introduced, and a term obtained by multiplying the public key F (s) by Ch A Divide the Since the polynomial G has quasi-linearity, the relationships of the following equations (42) to (44) hold, using the variables r 0 , r 1 , t 0z and e 0 . Further, the following equation (42) to (44) can be divided and a first part that is dependent on Ch A, and a second portion that does not depend on Ch A. However, the first part can be reproduced by (r 1 , t 1z , e 1 ). Also, the second part can be reproduced by (r 0 , t 1z , e 1 ).
- any one of (r 1 , t 1z , e 1 ) and (r 0 , t 1z , e 1 ) is It is guaranteed that the secret key s can not be obtained even if it is used. Utilizing these properties, for example, can be constructed efficient algorithm related to the 5-pass method using a high-order polynomial f l on the ring R (hereinafter, high-order extended algorithm) a.
- Process # 1 As shown in FIG. 14, the prover algorithm P randomly generates vectors r 0 , t 01 ,..., T 0k ⁇ K n and e 0 ⁇ K m . Next, the prover algorithm P calculates r 1 ss ⁇ r 0 . This calculation corresponds to an operation of masking the secret key s by the vector r 0 . Next, the prover algorithm P calculates c 0 ⁇ H (r 0 , t 01 ,..., T 0k , e 0 ).
- step # 1 the prover algorithm P, c 1 ⁇ H (r 1 , ⁇ z G z (t 0z, r 1) + e 0) ( where, sigma z represents.
- the sum of z 1 ⁇ k) calculate Do.
- the message (c 0 , c 1 ) generated in step # 1 is sent to the verifier algorithm V.
- Process # 2 The verifier algorithm V that has received the message (c 0 , c 1 ) randomly selects the number Ch A. This number Ch A is sent to the prover algorithm P.
- Process # 4 The verifier algorithm V that has received (t 11 ,..., T 1k , e 1 ) selects which one of the two verification patterns to use. For example, the verifier algorithm V selects one numerical value from among two numbers representing verification patterns ⁇ 0, 1 ⁇ , and set the selected numerical value in the request Ch B. This request Ch B is sent to the prover algorithm P.
- Process # 6 The verifier algorithm V that has received the response Rsp executes the following verification process using the received response Rsp.
- the verifier algorithm V outputs the value 1 indicating the authentication success when the verification is successful, and outputs the value 0 indicating the authentication failure when the verification fails.
- the verifier algorithm V outputs the value 1 indicating the authentication success when the verification is successful, and outputs the value 0 indicating the authentication failure when the verification fails.
- the prover algorithm P randomly generates vectors r 0i , t 01i ,..., T 0ki ⁇ K n and e 0i ⁇ K m .
- the prover algorithm P calculates r 1i ⁇ s ⁇ r 0i . This calculation corresponds to an operation of masking the secret key s with the vector r 0i .
- the prover algorithm P calculates c 0i ⁇ H (r 0i , t 01i ,..., T 0ki , e 0i ).
- Ch Bi 0
- the verifier algorithm V outputs a value 1 indicating authentication success when all the verifications are successful, and outputs a value 0 indicating authentication failure when the verification fails.
- the prover algorithm P calculates the hash value Cmt A H H (c 01 , c 11 ,..., C 0N , c 1N ) at step # 1.
- the prover algorithm P calculates the hash value Cmt B ⁇ H (t 111 ,..., T 1kN , e 11 ,..., E 1N ) in step # 3.
- the size of the public key is 80 bits
- the size of the secret key is 84 bits
- the size of the communication data is 27,814 bits. That is, by applying the high-order extension algorithm, it is possible to significantly reduce the size of the public key and the size of the secret key while maintaining the communication data size to the same extent.
- the size of the public key is 81 bits
- the size of the secret key is 84 bits
- the size of the communication data is 27145 bits.
- the size of the public key is 80 bits
- the size of the secret key is 84 bits
- the size of the communication data is 28392 bits. Under both conditions, significant efficiency has been achieved.
- the prover in the model of the public key authentication scheme corresponds to the signer in the digital signature scheme, it is easily understood that it is similar to the model of the digital signature scheme in that only the prover can convince the verifier. It will be done. Based on such an idea, a method of transforming the above-described public key authentication scheme into a digital signature scheme will be described.
- the Cmt generated by the prover algorithm P in step # 1 is sent to the verifier algorithm V.
- Step # 2 is configured by a process of selecting Ch 1 ,..., Ch N.
- Ch 1 ,..., Ch N selected by the verifier algorithm V at step # 2 are sent to the prover algorithm P.
- Step # 3 Ch 1, ..., Ch N and a 1, ..., Rsp 1 with a N, ..., consisting of the process of generating Rsp N. This process is expressed as Rsp i SelectSelect (Ch i , a i ).
- the Rsp 1 ,..., Rsp N generated by the prover algorithm P at step # 3 are sent to the verifier algorithm V.
- the algorithm of the public key authentication scheme expressed in the above steps # 1 to # 4 is transformed into a signature generation algorithm Sig and a signature verification algorithm Ver as shown in FIG.
- the signature generation algorithm Sig is composed of the following processes (1) to (5).
- Process (3): The signature generation algorithm Sig calculates (Ch 1 ,..., Ch N ) ⁇ H (M, Cmt). This M is a document to which a signature is given.
- the signature verification algorithm Ver is composed of the following processing (1) to processing (3).
- Process (1): The signature verification algorithm Ver calculates (Ch 1 ,..., Ch N ) ⁇ -H (M, Cmt). Processing (2): The signature verification algorithm Ver, Ch 1, ..., Ch N and Rsp 1, ..., c 01, c 11, c 21 using Rsp N, generate ..., c 0N, c 1N, c 2N Do. Process (3): The signature verification algorithm Ver uses the reproduced c 01 , c 11 , c 21 ,..., C 0 N , c 1 N , c 2 N to use Cmt H (c 01 , c 11 , c 21 ,. Verify c 0N , c 1N , c 2N ).
- the signature generation algorithm Sig is composed of the following processing (1) to processing (4).
- the signature verification algorithm Ver is configured by the following processing (1) and processing (2).
- Treatment (1) The signature verification algorithm Ver, Ch 1, ..., Ch N and Rsp 1, ..., c 01, c 11, c 21 using Rsp N, generate ..., c 0N, c 1N, c 2N Do.
- Process (2): The signature verification algorithm Ver uses the reproduced c 01 , c 11 , c 21 ,..., C 0 N , c 1 N , c 2 N and uses (Ch 1 ,..., Ch N ) H (c 01 , Verify c 11 , c 21 ,..., c 0N , c 1N , c 2N ).
- FIG. 20 An efficient algorithm according to the 5-pass scheme (see, for example, FIGS. 11, 13 and 16) is represented by five dialogues and six steps # 1 to # 6. .
- the Cmt generated by the prover algorithm P in step # 1 is sent to the verifier algorithm V.
- the process # 2 is configured by a process of selecting Ch A1 to Ch AN .
- Ch A1 ,..., Ch AN selected by the verifier algorithm V at step # 2 are sent to the prover algorithm P.
- the b 1 ,..., B N generated by the prover algorithm P at step # 3 are sent to the verifier algorithm V.
- Process # 4 is comprised of a process of selecting Ch B1 ,..., Ch BN .
- the Ch B1 ,..., Ch BN selected by the verifier algorithm V at step # 4 are sent to the prover algorithm P.
- Step # 5 Ch B1, ..., Ch BN , a 1, ..., a N, b 1, ..., Rsp 1 with b N, ..., consisting of the process of generating Rsp N. This process is expressed as Rsp i SelectSelect (Ch Bi , a i , b i ).
- the Rsp 1 ,..., Rsp N generated by the prover algorithm P at step # 5 are sent to the verifier algorithm V.
- the algorithm of the public key authentication scheme expressed in the above steps # 1 to # 6 is transformed into a signature generation algorithm Sig and a signature verification algorithm Ver as shown in FIG.
- the signature generation algorithm Sig is composed of the following processing (1) to processing (7).
- the signature verification algorithm Ver is composed of the following processing (1) to processing (4).
- Process (1) The signature verification algorithm Ver calculates (Ch A1 ,..., Ch AN ) ⁇ H (M, Cmt).
- Process (2) The signature verification algorithm Ver calculates (Ch B1 ,..., Ch BN ) H H (M, C mt, Ch A1 ,..., Ch AN , b 1 ,..., B N ).
- Process (5) executed by the signature verification algorithm Ver, if (Ch B1 ,..., Ch BN ) ⁇ H (Ch A1 ,..., Ch AN , b 1 ,..., B N ), the signature verification is performed.
- the algorithm Ver calculates (Ch B1 ,..., Ch BN ) (H (Ch A1 ,..., Ch AN , b 1 ,..., B N ).
- FIG. 21 (4-2-2: Electronic Signature Algorithm (Configuration Example 2: High Efficiency) (FIG. 21)) As shown in FIG. 21, a more efficient algorithm according to the 5-pass scheme (see, eg, FIG. 17) is represented by 5 interactions and 6 steps # 1 to # 6.
- Cmt A generated by the prover algorithm P at step # 1 is sent to the verifier algorithm V.
- the process # 2 is configured by a process of selecting Ch A1 to Ch AN .
- Ch A1 ,..., Ch AN selected by the verifier algorithm V at step # 2 are sent to the prover algorithm P.
- the Cmt B generated by the prover algorithm P in step # 3 is sent to the verifier algorithm V.
- Process # 4 is comprised of a process of selecting Ch B1 ,..., Ch BN .
- the Ch B1 ,..., Ch BN selected by the verifier algorithm V at step # 4 are sent to the prover algorithm P.
- Step # 5 Ch B1, ..., Ch BN , a 1, ..., a N, b 1, ..., Rsp 1 with b N, ..., consisting of the process of generating Rsp N. This process is expressed as Rsp i SelectSelect (Ch Bi , a i , b i ).
- the Rsp 1 ,..., Rsp N generated by the prover algorithm P at step # 5 are sent to the verifier algorithm V.
- the algorithm of the public key authentication scheme expressed in the above steps # 1 to # 6 is transformed into a signature generation algorithm Sig and a signature verification algorithm Ver as shown in FIG.
- the signature generation algorithm Sig is composed of the following processes (1) to (8).
- Process (1): The signature generation algorithm Sig generates ai ( r0i , t0i , e0i , r1i , t1i , e1i , c0i , c1i ).
- the signature verification algorithm Ver is composed of the following processing (1) to processing (5).
- the signature verification algorithm Ver is changed to (Ch B1 ,..., Ch BN ) ⁇ H (Ch A1 ,..., Ch AN , Cmt B ).
- Process (3) The signature verification algorithm Ver, Ch A1, ..., Ch AN , Ch B1, ..., Ch BN, Rsp 1, ..., c 01, c 11 using Rsp N, ..., c 0N, c 1N , B 1 ,..., B N are generated.
- Processing (4): The signature verification algorithm Ver, c 01, c 11 regenerated, ..., c 0N, Cmt A H with c 1N (c 01, c 11 , ..., c 0N, c 1N) verifies Do.
- Processing (5): The signature verification algorithm Ver, b 1 was regenerated, ..., Cmt B H ( b 1, ..., b N) with b N verifying.
- Hybrid algorithm> The need to run the dialogue protocol multiple times to reduce the probability of false evidence to a negligible extent has already been described.
- a serial method and a parallel method were introduced as a method of executing the dialogue protocol multiple times.
- the parallel method has been described by showing a specific parallelization algorithm.
- FIG. 22 shows an algorithm of basic configuration and an algorithm of parallel serial configuration.
- the message Cmt is sent from the prover to the verifier in the first pass.
- a request Ch is sent from the verifier to the prover.
- the prover sends a reply Rsp to the verifier.
- N messages (Cmt 1 ,..., Cmt N ) are sent from the prover to the verifier in the first pass.
- a single request Ch 1 is sent from the verifier to the prover.
- the prover sends a single response Rsp 1 to the verifier. Thereafter, exchanges of requests Ch 2 ,..., Ch N and responses R sp 2 ,..., R sp N are sequentially performed between the prover and the verifier.
- FIG. 23 shows an algorithm of the basic configuration and an algorithm of the serial-parallel configuration.
- the message Cmt is sent from the prover to the verifier in the first pass.
- a request Ch is sent from the verifier to the prover.
- the prover sends a reply Rsp to the verifier.
- one message Cmt 1 is sent from the prover to the verifier in the first pass.
- a single request Ch 1 is sent from the verifier to the prover.
- messages Cmt 2 ,..., Cmt N and requests Ch 2 ,..., Ch N are sequentially exchanged between the prover and the verifier.
- the prover sends N responses Rsp 2 ,..., Rsp N to the verifier.
- FIG. 24 shows the algorithm of the basic configuration and the algorithm of parallel serial configuration # 1.
- the message Cmt A is sent from the prover to the verifier in the first pass.
- the number Ch A is sent from the verifier to the prover.
- the vector Cmt B is sent from the prover to the verifier.
- a request Ch B is sent from the verifier to the prover.
- the prover sends a reply Rsp to the verifier.
- N messages (Cmt A1 ,..., Cmt AN ) are sent from the prover to the verifier in the first pass.
- one pass Ch A1 is sent from the verifier to the prover.
- one vector Cmt B1 is sent from the prover to the verifier.
- a single request Ch B1 is sent from the verifier to the prover.
- one test response Rsp 1 is sent from the prover to the verifier.
- FIG. 25 shows the algorithm of the basic configuration and the algorithm of parallel serial configuration # 2.
- N messages (Cmt A1 ,..., Cmt AN ) are sent from the prover to the verifier in the first pass.
- N numbers (Ch A1 ,..., Ch AN ) are sent from the verifier to the prover.
- N vectors (Cmt B1 ,..., Cmt BN ) are sent from the prover to the verifier.
- a single request Ch B1 is sent from the verifier to the prover.
- one test response Rsp 1 is sent from the prover to the verifier.
- exchanges of Ch B2 ,..., Ch BN , Rsp 2 ,..., Rsp N are sequentially performed between the prover and the verifier.
- FIG. 26 shows an algorithm of the basic configuration and an algorithm of serial-parallel configuration # 1.
- one message Cmt A1 for the first pass is sent from the prover to the verifier.
- one pass Ch A1 is sent from the verifier to the prover.
- one vector Cmt B1 is sent from the prover to the verifier.
- a single request Ch B1 is sent from the verifier to the prover.
- exchange of Cmt A2 , ..., Cmt AN , Ch A2 , ..., Ch AN , Cmt B2 , ..., Cmt BN , Ch B2 , ..., Ch BN between the prover and the verifier is sequentially performed. It will be.
- the prover sends N responses (Rsp 1 ..., Rsp N ) to the verifier.
- FIG. 27 shows an algorithm of the basic configuration and an algorithm of serial-parallel configuration # 2.
- the coefficients of the multivariate polynomial may be parameters common to the system, or may be parameters different for each user.
- the inventor of the present invention has devised a mechanism for generating coefficients of a multivariate polynomial by using a character string or the like selected by each user as a seed of a pseudorandom number generator. For example, a method of using a user's e-mail address as a seed or using a character string obtained by combining an e-mail address and an update date and time as a seed may be considered. If such a method is used, even if vulnerability is found in a multivariate polynomial having a coefficient generated from a certain character string, the influence is limited to only users using the multivariate polynomial having that coefficient. Be done. In addition, since the multivariate polynomial is changed only by changing the character string, the vulnerability can be easily eliminated.
- the setting method of the system parameter was demonstrated.
- the character string is taken as an example, but a string of numbers or a string of symbols different for each user may be used.
- the inventor of the present invention examined a method of preventing the verifier from knowing the information that "the prover used s in the dialogue" even when the dialogue accepted in the verification was performed. Then, the inventor of the present invention has devised a method that makes it possible to guarantee the security against active attacks even when repeatedly executing the above dialogue protocol in parallel.
- the prover may misunderstand that the bit of the request Ch transmitted in the second pass has become another bit due to a communication error.
- the inventor ends the dialogue when the prover requests a response corresponding to two or more request Ch for one message, or Alternatively, I devised a method to restart the dialogue from the first pass using a new random number. If this method is applied, even if the verifier falsely requests a response corresponding to two or more requests Ch, the secret key will not be leaked.
- the prover may request the verifier to resend the request Ch because the request Ch is lost.
- the verifier may think that the previously transmitted request has been lost due to a communication error, and may resend the request Ch at the request of the prover. If the retransmitted request Ch is different from the previously transmitted request Ch, the falsification is successful.
- the request Ch being randomly selected provides the prover with an opportunity of false evidence. Therefore, in order that the inventor of the present invention does not give an opportunity for persuasion, if the prover requests the transmission of the request Ch again for one message, the verifier ends the dialogue or We devised a method to improve the dialogue protocol to retransmit the same request Ch as the previous one without generating a random number. By applying this method, it is possible to eliminate the opportunity of falsification using the request Ch's retransmission request.
- ⁇ 7 Hardware configuration example>
- Each of the above algorithms can be executed using, for example, the hardware configuration of the information processing apparatus shown in FIG. That is, the processing of each algorithm is realized by controlling the hardware shown in FIG. 28 using a computer program.
- the form of this hardware is arbitrary and, for example, personal computer, portable telephone, portable information terminal such as PHS, PDA, game machine, contact or non-contact IC chip, contact or non-contact IC This includes cards, or various home information appliances.
- PHS is an abbreviation for Personal Handy-phone System.
- the above PDA is an abbreviation of Personal Digital Assistant.
- the hardware mainly includes a CPU 902, a ROM 904, a RAM 906, a host bus 908, and a bridge 910. Further, the hardware includes an external bus 912, an interface 914, an input unit 916, an output unit 918, a storage unit 920, a drive 922, a connection port 924, and a communication unit 926.
- said CPU is the abbreviation for Central Processing Unit.
- the above ROM is an abbreviation of Read Only Memory.
- the above RAM is an abbreviation of Random Access Memory.
- the CPU 902 functions as, for example, an arithmetic processing unit or a control unit, and controls the entire operation of each component or a part thereof based on various programs recorded in the ROM 904, the RAM 906, the storage unit 920, or the removable recording medium 928.
- the ROM 904 is a means for storing a program read by the CPU 902, data used for an operation, and the like.
- the RAM 906 temporarily or permanently stores, for example, a program read by the CPU 902, various parameters that appropriately change when the program is executed, and the like.
- a host bus 908 capable of high-speed data transmission.
- the host bus 908 is connected to the external bus 912, which has a relatively low data transmission speed, via the bridge 910, for example.
- the input unit 916 for example, a mouse, a keyboard, a touch panel, a button, a switch, a lever, or the like is used.
- a remote controller capable of transmitting a control signal using infrared rays or other radio waves may be used.
- a display device such as a CRT, LCD, PDP, or ELD
- an audio output device such as a speaker or a headphone, a printer, a mobile phone, or a facsimile etc.
- the above-mentioned CRT is an abbreviation of Cathode Ray Tube.
- the above LCD is an abbreviation of Liquid Crystal Display.
- the above-mentioned PDP is an abbreviation of Plasma Display Panel.
- the above ELD is an abbreviation of Electro-Luminescence Display.
- the storage unit 920 is a device for storing various data.
- a magnetic storage device such as a hard disk drive (HDD), a semiconductor storage device, an optical storage device, a magneto-optical storage device, or the like is used.
- HDD hard disk drive
- the above HDD is an abbreviation of Hard Disk Drive.
- the drive 922 is a device that reads information recorded in a removable recording medium 928 such as, for example, a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory, or writes information in the removable recording medium 928.
- the removable recording medium 928 is, for example, a DVD medium, a Blu-ray medium, an HD DVD medium, various semiconductor storage media, and the like.
- the removable recording medium 928 may be, for example, an IC card equipped with a noncontact IC chip, an electronic device, or the like.
- the above IC is an abbreviation for Integrated Circuit.
- the connection port 924 is a port for connecting an external connection device 930 such as a USB port, an IEEE 1394 port, a SCSI, an RS-232C port, or an optical audio terminal.
- the external connection device 930 is, for example, a printer, a portable music player, a digital camera, a digital video camera, an IC recorder, or the like.
- USB is an abbreviation of Universal Serial Bus.
- SCSI is an abbreviation of Small Computer System Interface.
- the communication unit 926 is a communication device for connecting to the network 932, and for example, a wired or wireless LAN, a communication card for Bluetooth (registered trademark) or WUSB, a router for optical communication, a router for ADSL, or a contact Or a device for contactless communication.
- a network 932 connected to the communication unit 926 is configured by a wired or wirelessly connected network, and is, for example, the Internet, a home LAN, infrared communication, visible light communication, broadcasting, satellite communication, or the like.
- the above-mentioned LAN is an abbreviation of Local Area Network.
- WUSB is an abbreviation of Wireless USB.
- the above-mentioned ADSL is an abbreviation of Asymmetric Digital Subscriber Line.
- the functional configuration of the above information processing apparatus is expressed as follows.
- the information processing apparatus described in the following (1) has a function of executing an algorithm related to an efficient public key authentication scheme that bases security on the difficulty of solving multi-order multivariate simultaneous equations.
- a message generator for generating a message based on a set of multi-order multivariate polynomials F (f 1 ,..., F m ) and a vector s ⁇ K n ;
- An intermediate information generation unit that generates third information using the first information randomly selected by the verifier and the second information obtained when generating the message;
- the set F of multi-order multivariate polynomials and the vector y are public keys,
- the message can be obtained by executing an operation prepared in advance for a verification
- the message generator generates N number of messages (N22),
- the message providing unit provides the verifier with N messages for one time.
- the intermediate information generation unit performs N times using the first information selected by the verifier for each of the N times of the messages and the N second times of information obtained when generating the message.
- Generating the third information The intermediate information providing unit provides the verifier with N pieces of the third information in one dialogue;
- the answer provision unit provides the verifier with N pieces of the answer information corresponding to the verification pattern selected by the verifier for each of the N pieces of the message in one dialogue.
- the message generator generates N times (NN2) of messages and generates one hash value from the N times of messages.
- the message providing unit provides the hash value to the verifier.
- the intermediate information generation unit performs N times using the first information selected by the verifier for each of the N times of the messages and the N second times of information obtained when generating the message.
- Generating the third information The intermediate information providing unit provides the verifier with N pieces of the third information in one dialogue;
- the answer provider corresponds to the answer information using N times of the answer information corresponding to the verification pattern selected by the verifier for each of the N times of messages, and the public key and the answer information. Provide the verifier with a part of messages which can not be obtained by executing the operation prepared in advance for the verification pattern.
- the information processing apparatus according to (2).
- a message acquisition unit for acquiring a message generated based on the set F of multi-order multivariate polynomials and a vector s ⁇ K n ;
- An information providing unit for providing randomly selected first information to a prover who provided the message;
- An intermediate information acquisition unit that acquires third information generated by the prover using the first information and second information obtained when generating the message;
- a pattern information providing unit that provides information of one verification pattern randomly selected from k (k ⁇ 3) verification patterns to the prover;
- An answer acquiring unit that acquires answer information corresponding to the selected verification pattern from the prover; Verification to verify whether the prover holds the vector s based on the message, the first information, the third information, the set F of the multi-order multivariate polynom
- the message acquisition unit acquires N times (N ⁇ 2) of the messages in one dialogue;
- the information providing unit randomly selects the first information for each of the N times of the messages, and provides the selected N times of the first information to the prover in one dialogue.
- the intermediate information acquisition unit uses the first information generated for N times and the second information for N times obtained when generating the message for N times.
- Get 3 information The pattern information providing unit selects a verification pattern for each of the N messages, and provides information of the selected N verification patterns to the prover in a single dialog.
- the answer acquiring unit acquires N pieces of the answer information corresponding to the selected N verification patterns from the prover in a single dialogue;
- the verification unit determines that the prover holds the vector s when verification is successful for all the N messages.
- the information processing apparatus according to (4).
- the message acquisition unit acquires one hash value generated from the N messages (N ⁇ 2).
- the information providing unit randomly selects the first information for each of the N times of the messages, and provides the selected N times of the first information to the prover in one dialogue.
- the intermediate information acquisition unit uses the first information generated for N times and the second information for N times obtained when generating the message for N times. Get 3 information,
- the pattern information providing unit selects a verification pattern for each of the N messages, and provides information of the selected N verification patterns to the prover in a single dialog.
- the answer acquiring unit uses the answer information corresponding to the selected verification pattern, the public key, the first information, the third information, and the verification pattern corresponding to the answer information using the answer information.
- the verification unit verifies whether the prover holds the vector s based on the hash value, the partial message, the public key, and the answer information, and performs N times of the messages If the verification is successful for all, it is determined that the prover holds the vector s, The information processing apparatus according to (5).
- the information processing apparatus Obtaining a message generated based on the set F of multi-order multivariate polynomials and a vector s ⁇ K n ; Providing randomly selected first information to the prover who provided the message; Obtaining third information generated by the prover using the first information and second information obtained when generating the message; Providing the prover with information of one verification pattern randomly selected from k (k ⁇ 3) verification patterns; Obtaining response information corresponding to the selected verification pattern from the certifier; Whether or not the prover holds the vector s based on the message, the first information, the third information, the set F of the multi-order multivariate polynomials, and the response information When, Including The vector s is a secret key, The set F of multi-
- the vector s is a secret key
- the set F of multi-order multivariate polynomials and the vector y are public keys,
- the message can be obtained by executing an operation
- An answer acquiring unit that acquires answer information corresponding to the selected verification pattern from the prover; Verification to verify whether the prover holds the vector s based on the message, the first information, the third information, the set F of the multi-order multivariate polynomi
- a message generation function for generating a message based on a set of multi-order multivariate polynomials F (f 1 ,..., F m ) and a vector s ⁇ K n ,
- the vector s is a secret key
- the set F of multi-order multivariate polynomials and the vector y are public
- An answer acquiring unit that acquires answer information corresponding to the selected verification pattern from the prover; Verification to verify whether the prover holds the vector s based on the message, the first information, the third information, the set F of the multi-order multivariate polynomi
- the m and n have a relation of m ⁇ n, The device according to any one of the above (1) to (6).
- the prover algorithm P described above is an example of a message generation unit, a message provision unit, an answer provision unit, an intermediate information generation unit, and an intermediate information provision unit.
- the above verifier algorithm V is an example of an information storage unit, a message acquisition unit, a pattern information provision unit, an answer acquisition unit, a verification unit, and an intermediate information acquisition unit.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
Abstract
Description
ここで、以下に記載する本技術の実施形態に関する説明の流れについて簡単に述べる。まず、図1を参照しながら、公開鍵認証方式のアルゴリズム構成について説明する。次いで、図2を参照しながら、電子署名方式のアルゴリズム構成について説明する。次いで、図3を参照しながら、nパスの公開鍵認証方式について説明する。
1:はじめに
1-1:公開鍵認証方式のアルゴリズム
1-2:電子署名方式のアルゴリズム
1-3:nパスの公開鍵認証方式
2:3パスの公開鍵認証方式に係るアルゴリズムの構成
2-1:具体的なアルゴリズムの構成例
2-2:2次多変数多項式に基づく効率的なアルゴリズム
2-2-1:基本構成
2-2-2:並列化アルゴリズム
2-3:高次多変数多項式に基づく効率的なアルゴリズム(方式#1)
2-3-1:基本構成
2-3-2:並列化アルゴリズム
3:5パスの公開鍵認証方式に係るアルゴリズムの構成
3-1:具体的なアルゴリズムの構成例
3-2:2次多変数多項式に基づく効率的なアルゴリズム
3-2-1:基本構成
3-2-2:並列化アルゴリズム
3-3:高次多変数多項式に基づく効率的なアルゴリズム(実施例1)
3-3-1:基本構成
3-3-2:並列化アルゴリズム
3-4:高次多変数多項式に基づく効率的なアルゴリズム(実施例2)
3-4-1:基本構成
3-4-2:並列化アルゴリズム(構成例1)
3-4-3:並列化アルゴリズム(構成例2:高効率)
3-4-4:並列化アルゴリズム(構成例2:更に高効率)
4:電子署名方式への変形
4-1:3パスの公開鍵認証方式から電子署名方式への変形
4-1-1:電子署名アルゴリズム(構成例1)
4-1-2:電子署名アルゴリズム(構成例2:高効率)
4-2:5パスの公開鍵認証方式から電子署名方式への変形
4-2-1:電子署名アルゴリズム(構成例1)
4-2-2:電子署名アルゴリズム(構成例2:高効率)
5:ハイブリッド型アルゴリズム
5-1:3パスの公開鍵認証方式に係るハイブリッド型アルゴリズム
5-1-1:並直列アルゴリズム
5-1-2:直並列アルゴリズム
5-2:5パスの公開鍵認証方式に係るハイブリッド型アルゴリズム
5-2-1:並直列アルゴリズム(構成例#1)
5-2-2:並直列アルゴリズム(構成例#2)
5-2-3:直並列アルゴリズム(構成例#1)
5-2-4:直並列アルゴリズム(構成例#2)
6:補遺
6-1:システムパラメータの設定方法
6-2:イレギュラーな要求に対する応答方法
6-2-1:証明者による応答方法について
6-2-2:検証者による応答方法について
7:ハードウェア構成例
8:まとめ
本実施形態は、多次多変数連立方程式に対する求解問題の困難性に安全性の根拠をおく公開鍵認証方式及び電子署名方式に関する。但し、本実施形態は、HFE電子署名方式などの従来手法とは異なり、効率的に解く手段(トラップドア)を持たない多次多変数連立方程式を利用する公開鍵認証方式及び電子署名方式に関する。まず、公開鍵認証方式のアルゴリズム、電子署名方式のアルゴリズム、及びnパスの公開鍵認証方式について、その概要を簡単に説明する。
まず、図1を参照しながら、公開鍵認証方式のアルゴリズムについて概要を説明する。図1は、公開鍵認証方式のアルゴリズムについて概要を説明するための説明図である。
公開鍵認証方式のモデルには、図1に示すように、証明者と検証者という2つのエンティティが存在する。証明者は、鍵生成アルゴリズムGenを用いて、証明者固有の秘密鍵skと公開鍵pkの組を生成する。次いで、証明者は、鍵生成アルゴリズムGenを用いて生成した秘密鍵skと公開鍵pkの組を利用して検証者と対話プロトコルを実行する。このとき、証明者は、証明者アルゴリズムPを利用して対話プロトコルを実行する。上記の通り、証明者は、証明者アルゴリズムPを利用し、対話プロトコルの中で秘密鍵skを保有している証拠を検証者に提示する。
鍵生成アルゴリズムGenは、証明者により利用される。鍵生成アルゴリズムGenは、証明者に固有の秘密鍵skと公開鍵pkとの組を生成するアルゴリズムである。鍵生成アルゴリズムGenにより生成された公開鍵pkは公開される。そして、公開された公開鍵pkは、検証者により利用される。一方、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者が秘密に管理する。そして、証明者により秘密に管理される秘密鍵skは、公開鍵pkに対応する秘密鍵skを証明者が保有していることを検証者に対して証明するために利用される。形式的に、鍵生成アルゴリズムGenは、セキュリティパラメータ1λ(λは0以上の整数)を入力とし、秘密鍵skと公開鍵pkを出力するアルゴリズムとして、下記の式(1)のように表現される。
証明者アルゴリズムPは、証明者により利用される。証明者アルゴリズムPは、公開鍵pkに対応する秘密鍵skを証明者が保有していることを検証者に対して証明するためのアルゴリズムである。つまり、証明者アルゴリズムPは、秘密鍵skと公開鍵pkとを入力とし、対話プロトコルを実行するアルゴリズムである。
検証者アルゴリズムVは、検証者により利用される。検証者アルゴリズムVは、対話プロトコルの中で、公開鍵pkに対応する秘密鍵skを証明者が保有しているか否かを検証するアルゴリズムである。検証者アルゴリズムVは、公開鍵pkを入力とし、対話プロトコルの実行結果に応じて0又は1(1bit)を出力するアルゴリズムである。なお、検証者は、検証者アルゴリズムVが0を出力した場合には証明者が不正なものであると判断し、1を出力した場合には証明者が正当なものであると判断する。形式的に、検証者アルゴリズムVは、下記の式(2)のように表現される。
次に、図2を参照しながら、電子署名方式のアルゴリズムについて概要を説明する。図2は、電子署名方式のアルゴリズムについて概要を説明するための説明図である。
電子署名方式のモデルには、図2に示すように、署名者及び検証者という2つのエンティティが存在する。そして、電子署名方式のモデルは、鍵生成アルゴリズムGen、署名生成アルゴリズムSig、署名検証アルゴリズムVerという3つのアルゴリズムにより構成される。
鍵生成アルゴリズムGenは、署名者により利用される。鍵生成アルゴリズムGenは、署名者固有の署名鍵skと検証鍵pkとの組を生成するアルゴリズムである。鍵生成アルゴリズムGenにより生成された検証鍵pkは公開される。一方、鍵生成アルゴリズムGenにより生成された署名鍵skは、署名者により秘密に管理される。そして、署名鍵skは、文書Mに付与される電子署名σの生成に利用される。例えば、鍵生成アルゴリズムGenは、セキュリティパラメータ1λ(λは0以上の整数)を入力とし、署名鍵sk及び公開鍵pkを出力する。この場合、鍵生成アルゴリズムGenは、形式的に、下記の式(3)のように表現することができる。
署名生成アルゴリズムSigは、署名者により利用される。署名生成アルゴリズムSigは、文書Mに付与される電子署名σを生成するアルゴリズムである。署名生成アルゴリズムSigは、署名鍵skと文書Mとを入力とし、電子署名σを出力するアルゴリズムである。この署名生成アルゴリズムSigは、形式的に、下記の式(4)のように表現することができる。
署名検証アルゴリズムVerは、検証者により利用される。署名検証アルゴリズムVerは、電子署名σが文書Mに対する正当な電子署名であるか否かを検証するアルゴリズムである。署名検証アルゴリズムVerは、署名者の検証鍵pk、文書M、電子署名σを入力とし、0又は1(1bit)を出力するアルゴリズムである。この署名検証アルゴリズムVerは、形式的に、下記の式(5)のように表現することができる。なお、検証者は、署名検証アルゴリズムVerが0を出力した場合(公開鍵pkが文書Mと電子署名σを拒否する場合)に電子署名σが不当であると判断し、1を出力した場合(公開鍵pkが文書Mと電子署名σを受理する場合)に電子署名σが正当であると判断する。
次に、図3を参照しながら、nパスの公開鍵認証方式について説明する。図3は、nパスの公開鍵認証方式について説明するための説明図である。
以下、3パスの公開鍵認証方式に係るアルゴリズムについて説明する。なお、以下の説明において、3パスの公開鍵認証方式のことを「3パス方式」と呼ぶ場合がある。
まず、図4を参照しながら、3パス方式に係る具体的なアルゴリズムの構成例について紹介する。図4は、3パス方式に係る具体的なアルゴリズムの構成について説明するための説明図である。なお、3パス方式のアルゴリズムは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの構成について説明する。
鍵生成アルゴリズムGenは、環K上で定義されるm本の多変数多項式f1(x1,…,xn),…,fm(x1,…,xn)、及びベクトルs=(s1,…,sn)∈Knを生成する。次に、鍵生成アルゴリズムGenは、y=(y1,…,ym)←(f1(s),…,fm(s))を計算する。そして、鍵生成アルゴリズムGenは、(f1(x1,…,xn),…,fm(x1,…,xn),y)を公開鍵pkに設定し、sを秘密鍵に設定する。なお、以下では、ベクトル(x1,…,xn)をxと表記し、多変数多項式の組(f1(x),…,fm(x))をF(x)と表記することにする。
次に、図4を参照しながら、対話プロトコルの中で証明者アルゴリズムPが実行する処理及び検証者アルゴリズムVが実行する処理について説明する。
まず、証明者アルゴリズムPは、任意に数seed0を選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器PRNGに数seed0を適用してベクトルr0∈Kn及び数seed1を生成する。つまり、証明者アルゴリズムPは、(r0,seed1)←PRNG(seed0)を計算する。次いで、証明者アルゴリズムPは、擬似乱数生成器PRNGに数seed1を適用して多変数多項式F1(x)=(f11(x),…,f1m(x))を生成する。つまり、証明者アルゴリズムPは、F1←PRNG(seed1)を計算する。
次いで、証明者アルゴリズムPは、r1←s-r0を計算する。この計算は、秘密鍵sをベクトルr0によりマスクする操作に相当する。さらに、証明者アルゴリズムPは、F2(x)←F(x+r0)+F1(x)を計算する。この計算は、xに関して多変数多項式F(x+r0)を多変数多項式F1(x)によりマスクする操作に相当する。
次いで、証明者アルゴリズムPは、F1(r1)及びr1のハッシュ値c0を生成する。つまり、証明者アルゴリズムPは、c0←H(F1(r1),r1)を計算する。また、証明者アルゴリズムPは、数seed1のハッシュ値c1を生成する。つまり、証明者アルゴリズムPは、c1←H(seed1)を計算する。さらに、証明者アルゴリズムPは、多変数多項式F2のハッシュ値c2を生成する。つまり、証明者アルゴリズムPは、c2←H(F2)を計算する。このハッシュ値(c0,c1,c2)は、メッセージとして検証者アルゴリズムVに送られる。このとき、sに関する情報、r0に関する情報、r1に関する情報が検証者に一切漏れない点に注意されたい。
メッセージ(c0,c1,c2)を受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す3つの数値{0,1,2}の中から1つの数値を選択し、選択した数値を要求Chに設定する。この要求Chは証明者アルゴリズムPに送られる。
要求Chを受け取った証明者アルゴリズムPは、受け取った要求Chに応じて検証者アルゴリズムVに送る返答Rspを生成する。Ch=0の場合、証明者アルゴリズムPは、返答Rsp=seed0を生成する。Ch=1の場合、証明者アルゴリズムPは、返答Rsp=(seed1,r1)を生成する。Ch=2の場合、証明者アルゴリズムPは、返答Rsp=(F2,r1)を生成する。工程#3で生成された返答Rspは、検証者アルゴリズムVに送られる。このとき、Ch=0の場合にはr1に関する情報が検証者に一切漏れておらず、Ch=1又は2の場合にはr0に関する情報が検証者に一切漏れない点に注意されたい。
返答Rspを受け取った検証者アルゴリズムVは、受け取った返答Rspを利用して以下の検証処理を実行する。
ここで、3パス方式に係るアルゴリズムの健全性について説明を補足する。3パス方式に係るアルゴリズムの健全性は、「検証者アルゴリズムVが選択可能な要求Ch=0,1,2の全てについて、証明者アルゴリズムPが正しい返答Rspを返したならば、下記の式(6)及び式(7)を満たすF2、F1、r0、r1が計算可能になる」という論理に基づいて保証されている。
ここで、ハッシュ関数Hについて説明を補足する。上記のアルゴリズムでは、ハッシュ関数Hを用いてc0,c1,c2などを計算しているが、ハッシュ関数Hの代わりにコミットメント関数COMを用いてもよい。コミットメント関数COMは、文字列S及び乱数ρを引数にとる関数である。コミットメント関数の例としては、Shai HaleviとSilvio Micaliによって国際会議CRYPTO1996で発表された方式などがある。
次に、3パス方式に係るアルゴリズムを効率化する方法について述べる。ここでは、多変数多項式Fとして2次多項式の組(f1(x),…,fm(x))を利用する場合について説明する。但し、2次多項式fi(x)は、下記の式(8)のように表現されるものとする。
まず、図5を参照しながら、3パス方式に係る効率的なアルゴリズムの基本構成について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図5に示すように、証明者アルゴリズムPは、ランダムにベクトルr0,t0∈Kn及びe0∈Kmを生成する。次いで、証明者アルゴリズムPは、r1←s-r0を計算する。この計算は、秘密鍵sをベクトルr0によりマスクする操作に相当する。さらに、証明者アルゴリズムPは、t1←r0-t0を計算する。次いで、証明者アルゴリズムPは、e1←F(r0)-e0を計算する。
次いで、証明者アルゴリズムPは、c0←H(r1,G(t0,r1)+e0)を計算する。次いで、証明者アルゴリズムPは、c1←H(t0,e0)を計算する。次いで、証明者アルゴリズムPは、c2←H(t1,e1)を計算する。工程#1で生成されたメッセージ(c0,c1,c2)は、検証者アルゴリズムVに送られる。
メッセージ(c0,c1,c2)を受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す3つの数値{0,1,2}の中から1つの数値を選択し、選択した数値を要求Chに設定する。この要求Chは証明者アルゴリズムPに送られる。
要求Chを受け取った証明者アルゴリズムPは、受け取った要求Chに応じて検証者アルゴリズムVに送る返答Rspを生成する。Ch=0の場合、証明者アルゴリズムPは、返答Rsp=(r0,t1,e1)を生成する。Ch=1の場合、証明者アルゴリズムPは、返答Rsp=(r1,t0,e0)を生成する。Ch=2の場合、証明者アルゴリズムPは、返答Rsp=(r1,t1,e1)を生成する。工程#3で生成された返答Rspは、検証者アルゴリズムVに送られる。
返答Rspを受け取った検証者アルゴリズムVは、受け取った返答Rspを利用して以下の検証処理を実行する。
次に、図6を参照しながら、図5に示した効率的なアルゴリズムを並列化する方法について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
証明者アルゴリズムPは、i=1~Nについて以下の処理(1)~処理(6)を実行する。
処理(1):証明者アルゴリズムPは、ランダムにベクトルr0i,t0i∈Kn及びe0i∈Kmを生成する。
処理(2):証明者アルゴリズムPは、r1i←s-r0iを計算する。この計算は、秘密鍵sをベクトルr0iによりマスクする操作に相当する。さらに、証明者アルゴリズムPは、t1i←r0i+t0iを計算する。
処理(3):証明者アルゴリズムPは、e1i←F(r0i)-e0iを計算する。
処理(4):証明者アルゴリズムPは、c0i←H(r1i,G(r1i,t0i)+e0i)を計算する。
処理(5):証明者アルゴリズムPは、c1i←H(t0i,e0i)を計算する。
処理(6):証明者アルゴリズムPは、c2i←H(t1i,e1i)を計算する。
i=1~Nについて上記の処理(1)~処理(6)を実行した後、証明者アルゴリズムPは、Cmt←H(c01,c11,c21,…,c0N,c1N,c2N)を計算する。工程#1で生成されたハッシュ値Cmtは、検証者アルゴリズムVに送られる。このように、メッセージ(c01,c11,c21,…,c0N,c1N,c2N)をハッシュ値に変換してから検証者アルゴリズムVに送ることで、通信量を削減することが可能になる。
ハッシュ値Cmtを受け取った検証者アルゴリズムVは、i=1~Nのそれぞれについて、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、i=1~Nのそれぞれについて、検証パターンの種類を表す3つの数値{0,1,2}の中から1つの数値を選択し、選択した数値を要求Chiに設定する。要求Ch1,…,ChNは、証明者アルゴリズムPに送られる。
要求Ch1,…,ChNを受け取った証明者アルゴリズムPは、受け取った要求Ch1,…,ChNのそれぞれ応じて検証者アルゴリズムVに送る返答Rsp1,…,RspNを生成する。Chi=0の場合、証明者アルゴリズムPは、Rspi=(r0i,t1i,e1i,c0i)を生成する。Chi=1の場合、証明者アルゴリズムPは、Rspi=(r1i,t0i,e0i,c2i)を生成する。Chi=2の場合、証明者アルゴリズムPは、Rspi=(r1i,t1i,e1i,c1i)を生成する。
返答Rsp1,…,RspNを受け取った検証者アルゴリズムVは、受け取った返答Rsp1,…,RspNを利用して以下の処理(1)~処理(3)をi=1~Nについて実行する。但し、検証者アルゴリズムVは、Chi=0の場合に処理(1)を実行し、Chi=1の場合に処理(2)を実行し、Chi=2の場合に処理(3)を実行する。
上記の効率的なアルゴリズムは、上記の式(8)で定義される2次多項式fiの組で多変数多項式Fを表現することにより、上記の式(10)で定義される多項式Gが双線形になるという性質を利用していた。しかし、多項式Gが加法準同型であれば、多項式Gが双線形でなくとも、同様に効率的なアルゴリズムを構築することが可能である。
多項式Gが加法準同型の場合、変数r0,r1,t0,e0を用いて、下記の式(14)~式(16)の関係が成り立つ。なお、下記の式(14)は、秘密鍵sをs=r0+r1と分割し、公開鍵F(s)を展開したものである。下記の式(14)~式(16)は、(r0,t1,e1)で再現可能な第1の部分と、(r1,t0,e0)で再現可能な第2の部分と、(r1,t1,e1)で再現可能な第3の部分とに分けることができる。
2次多項式fiを利用する場合に関する上記の考察を発展させ、下記の式(17)で表現される環R上の3次多項式flを利用した効率的なアルゴリズムの構築方法について検討してみたい。3次多項式flの組で表現される多変数多項式F=(f1,…,fm)は、下記の式(18)の関係を満たす。但し、Gx(x,y)は、xに関して1次となる項を表す。また、Gy(x,y)は、yに関して1次となる項を表す。Gx=(gx1,…,gxm)、Gy=(gy1,…,gym)と表現すると、gxl及びgylは、それぞれ下記の式(19)及び式(20)のように展開することができる。但し、gxlの右辺第2項は、x及びyのいずれに関しても1次であるため、gylに含めてもよい。
まず、図7を参照しながら、3パス方式に係る拡張アルゴリズムの基本構成について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図7に示すように、証明者アルゴリズムPは、ランダムにベクトルr0,t0,u0∈Kn及びe0∈Kmを生成する。次いで、証明者アルゴリズムPは、r1←s-r0を計算する。この計算は、秘密鍵sをベクトルr0によりマスクする操作に相当する。次いで、証明者アルゴリズムPは、t1←r0-t0を計算する。次いで、証明者アルゴリズムPは、u1←r1-u0を計算する。次いで、証明者アルゴリズムPは、e1←F(r0)-e0を計算する。
次いで、証明者アルゴリズムPは、c0←H(r1,Gx(t0,r1)+e0)を計算する。次いで、証明者アルゴリズムPは、c1←H(r0-t0,u0)を計算する。次いで、証明者アルゴリズムPは、c2←H(r0,e1-Gy(r0,u1))を計算する。次いで、証明者アルゴリズムPは、c3←H(t0,e0)を計算する。次いで、証明者アルゴリズムPは、c4←H(u1,e1)を計算する。工程#1で生成されたメッセージ(c0,c1,c2,c3,c4)は、検証者アルゴリズムVに送られる。
メッセージ(c0,c1,c2,c3,c4)を受け取った検証者アルゴリズムVは、4つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す4つの数値{0,1,2,3}の中から1つの数値を選択し、選択した数値を要求Chに設定する。この要求Chは証明者アルゴリズムPに送られる。
要求Chを受け取った証明者アルゴリズムPは、受け取った要求Chに応じて検証者アルゴリズムVに送る返答Rspを生成する。Ch=0の場合、証明者アルゴリズムPは、返答Rsp=(r0,t0,u0,e0)を生成する。Ch=1の場合、証明者アルゴリズムPは、返答Rsp=(r0,u1,e1)を生成する。Ch=2の場合、証明者アルゴリズムPは、返答Rsp=(r1,t0,e0)を生成する。Ch=3の場合、証明者アルゴリズムPは、返答Rsp=(r1,t1,u1,e1)を生成する。工程#3で生成された返答Rspは、検証者アルゴリズムVに送られる。
返答Rspを受け取った検証者アルゴリズムVは、受け取った返答Rspを利用して以下の検証処理を実行する。
次に、図8を参照しながら、3パス方式に係る拡張アルゴリズムの並列化について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図8に示すように、証明者アルゴリズムPは、i=1~Nについて、以下の処理を実行する。まず、証明者アルゴリズムPは、ランダムにベクトルr0i,t0i,u0i∈Kn及びe0i∈Kmを生成する。次いで、証明者アルゴリズムPは、r1i←s-r0iを計算する。この計算は、秘密鍵sをベクトルr0iによりマスクする操作に相当する。次いで、証明者アルゴリズムPは、t1i←r0i-t0iを計算する。次いで、証明者アルゴリズムPは、u1i←r1i-u0iを計算する。次いで、証明者アルゴリズムPは、e1i←F(r0i)-e0iを計算する。
次いで、証明者アルゴリズムPは、c0i←H(r1i,Gx(t0i,r1i)+e0i)を計算する。次いで、証明者アルゴリズムPは、c1i←H(r0i-t0i,u0i)を計算する。次いで、証明者アルゴリズムPは、c2i←H(r0i,e1i-Gy(r0i,u1i))を計算する。次いで、証明者アルゴリズムPは、c3i←H(t0i,e0i)を計算する。次いで、証明者アルゴリズムPは、c4i←H(u1i,e1i)を計算する。(c01,c11,c21,c31,c41,…,c0N,c1N,c2N,c3N,c4N)を生成した後、証明者アルゴリズムPは、ハッシュ値Cmt←H(c01,c11,c21,c31,c41,…,c0N,c1N,c2N,c3N,c4N)を計算する。
ハッシュ値Cmtを受け取った検証者アルゴリズムVは、i=1~Nのそれぞれについて、4つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、i=1~Nのそれぞれについて、検証パターンの種類を表す4つの数値{0,1,2,3}の中から1つの数値を選択し、選択した数値を要求Chiに設定する。要求Chi(i=1~N)は証明者アルゴリズムPに送られる。
要求Chi(i=1~N)を受け取った証明者アルゴリズムPは、i=1~Nについて、受け取った要求Chiに応じて検証者アルゴリズムVに送る返答Rspiを生成する。Chi=0の場合、証明者アルゴリズムPは、返答Rspi=(r0i,t0i,u0i,e0i,c0i,c4i)を生成する。Chi=1の場合、証明者アルゴリズムPは、返答Rspi=(r0i,u1i,e1i,c0i,c1i,c3i)を生成する。Chi=2の場合、証明者アルゴリズムPは、返答Rspi=(r1i,t0i,e0i,c1i,c2i,c4i)を生成する。Chi=3の場合、証明者アルゴリズムPは、返答Rspi=(r1i,t1i,u1i,e1i,c2i,c3i)を生成する。工程#3で生成された返答Rspi(i=1~N)は、検証者アルゴリズムVに送られる。
返答Rspi(i=1~N)を受け取った検証者アルゴリズムVは、受け取った返答Rspiを利用し、i=1~Nについて以下の処理を実行する。
以下、5パスの公開鍵認証方式に係るアルゴリズムについて説明する。なお、以下の説明において、5パスの公開鍵認証方式のことを「5パス方式」と呼ぶ場合がある。
まず、図9を参照しながら、5パス方式に係る具体的なアルゴリズムの構成例について紹介する。図9は、5パス方式に係る具体的なアルゴリズムの構成について説明するための説明図である。なお、5パス方式のアルゴリズムは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの構成について説明する。
鍵生成アルゴリズムGenは、環K上で定義される多変数多項式f1(x1,…,xn),…,fm(x1,…,xn)、及びベクトルs=(s1,…,sn)∈Knを生成する。次に、鍵生成アルゴリズムGenは、y=(y1,…,ym)←(f1(s),…,fm(s))を計算する。そして、鍵生成アルゴリズムGenは、(f1,…,fm,y)を公開鍵pkに設定し、sを秘密鍵に設定する。なお、以下では、ベクトル(x1,…,xn)をxと表記し、多変数多項式の組(f1(x),…,fm(x))をF(x)と表記する。
次に、図9を参照しながら、対話プロトコルの中で証明者アルゴリズムP及び検証者アルゴリズムVにより実行される処理について説明する。
図9に示すように、証明者アルゴリズムPは、ランダムに数seed0を選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器PRNGに数seed0を適用してベクトルr0∈Kn、及び多変数多項式の組F1(x)=(f11(x),…,f1m(x))を生成する。つまり、証明者アルゴリズムPは、(r0,F1)←G(seed0)を計算する。次いで、証明者アルゴリズムPは、r1←s-r0を計算する。この計算は、秘密鍵sをベクトルr0によりマスクする操作に相当する。
次いで、証明者アルゴリズムPは、F1(r1)及びr1のハッシュ値c0を生成する。つまり、証明者アルゴリズムPは、c0←H(F1(r1),r1)を計算する。また、証明者アルゴリズムPは、数seed0のハッシュ値c1を生成する。つまり、証明者アルゴリズムPは、c1←H(seed0)を計算する。工程#1で生成されたメッセージ(c0,c1)は、検証者アルゴリズムVに送られる。
メッセージ(c0,c1)を受け取った検証者アルゴリズムVは、q通り存在する環Kの元からランダムに1つの数ChAを選択し、選択した数ChAを証明者アルゴリズムPに送る。
数ChAを受け取った証明者アルゴリズムPは、F2(x)←ChA・F(x+r0)+F1(x)を計算する。この計算は、xに関して多変数多項式F(x+r0)を多変数多項式F1(x)によりマスクする操作に相当する。工程#3で生成された多変数多項式F2は、検証者アルゴリズムVに送られる。
多変数多項式F2を受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す2つの数値{0,1}の中から1つの数値を選択し、選択した数値を要求ChBに設定する。この要求ChBは証明者アルゴリズムPに送られる。
要求ChBを受け取った証明者アルゴリズムPは、受け取った要求ChBに応じて検証者アルゴリズムVに送り返す返答Rspを生成する。ChB=0の場合、証明者アルゴリズムPは、返答Rsp=seed0を生成する。ChB=1の場合、証明者アルゴリズムPは、返答Rsp=r1を生成する。工程#5で生成された返答Rspは、検証者アルゴリズムVに送られる。
返答Rspを受け取った検証者アルゴリズムVは、受け取った返答Rspを利用して以下の検証処理を実行する。
5パス方式の健全性は、証明者アルゴリズムPが(c0,c1)、及び、検証者アルゴリズムVが選択する2通りの(ChA,ChA’)について、要求ChB=0及び1に正しく回答した場合に、その回答内容から下記の式(28)~式(30)を満たすF1、F2、F2’、r0、r1を計算できるということから保証されている。
ここで、ハッシュ関数Hについて説明を補足する。上記のアルゴリズムでは、ハッシュ関数Hを用いてc0,c1などを計算しているが、ハッシュ関数Hの代わりにコミットメント関数COMを用いてもよい。コミットメント関数COMは、文字列S及び乱数ρを引数にとる関数である。コミットメント関数の例としては、Shai HaleviとSilvio Micaliによって国際会議CRYPTO1996で発表された方式などがある。
次に、5パス方式に係るアルゴリズムを効率化する方法について述べる。ここでは、多変数多項式Fとして2次多項式の組(f1(x),…,fm(x))を利用する場合について説明する。
まず、図10を参照しながら、5パス方式に係る効率的なアルゴリズムの基本構成について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図10に示すように、証明者アルゴリズムPは、ランダムにベクトルr0∈Kn、t0∈Kn、e0∈Kmを生成する。次いで、証明者アルゴリズムPは、r1←s-r0を計算する。この計算は、秘密鍵sをベクトルr0によりマスクする操作に相当する。次いで、証明者アルゴリズムPは、ベクトルr0,t0,e0のハッシュ値c0を生成する。つまり、証明者アルゴリズムPは、c0←H(r0,t0,e0)を計算する。次いで、証明者アルゴリズムPは、G(t0,r1)+e0及びr1のハッシュ値c1を生成する。つまり、証明者アルゴリズムPは、c0←H(r1,G(t0,r1)+e0)を計算する。工程#1で生成されたメッセージ(c0,c1)は、検証者アルゴリズムVに送られる。
メッセージ(c0,c1)を受け取った検証者アルゴリズムVは、q通り存在する環Kの元からランダムに1つの数ChAを選択し、選択した数ChAを証明者アルゴリズムPに送る。
数ChAを受け取った証明者アルゴリズムPは、t1←ChA・r0-t0を計算する。さらに、証明者アルゴリズムPは、e1←ChA・F(r0)-e0を計算する。そして、証明者アルゴリズムPは、t1及びe1を検証者アルゴリズムVに送る。
t1及びe1を受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す2つの数値{0,1}の中から1つの数値を選択し、選択した数値を要求ChBに設定する。この要求ChBは証明者アルゴリズムPに送られる。
要求ChBを受け取った証明者アルゴリズムPは、受け取った要求ChBに応じて検証者アルゴリズムVに送り返す返答Rspを生成する。ChB=0の場合、証明者アルゴリズムPは、返答Rsp=r0を生成する。ChB=1の場合、証明者アルゴリズムPは、返答Rsp=r1を生成する。工程#5で生成された返答Rspは、検証者アルゴリズムVに送られる。
返答Rspを受け取った検証者アルゴリズムVは、受け取った返答Rspを利用して以下の検証処理を実行する。
次に、図11を参照しながら、図10に示した効率的なアルゴリズムを並列化する方法について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
証明者アルゴリズムPは、i=1~Nについて処理(1)~処理(4)を実行する。
処理(1):証明者アルゴリズムPは、ランダムにベクトルr0i,t0i∈Kn及びe0i∈Kmを生成する。
処理(2):証明者アルゴリズムPは、r1i←s-r0iを計算する。この計算は、秘密鍵sをベクトルr0iによりマスクする操作に相当する。
処理(3):証明者アルゴリズムPは、c0i←H(r0i,t0i,e0i)を計算する。
処理(4):証明者アルゴリズムPは、c1i←H(r1i,G(t0i,r1i)+e0i)を計算する。
i=1~Nについて処理(1)~処理(4)を実行した後、証明者アルゴリズムPは、ハッシュ値Cmt←H(c01,c11,…,c0N,c1N)を実行する。そして、工程#1で生成されたハッシュ値Cmtは、検証者アルゴリズムVに送られる。
ハッシュ値Cmtを受け取った検証者アルゴリズムVは、i=1~Nのそれぞれについて、q通り存在する環Kの元からランダムに1つの数ChAiを選択し、選択した数ChAi(i=1~N)を証明者アルゴリズムPに送る。
数ChAi(i=1~N)を受け取った証明者アルゴリズムPは、i=1~Nのそれぞれについて、t1i←ChAi・r0i-t0iを計算する。さらに、証明者アルゴリズムPは、i=1~Nのそれぞれについて、e1i←ChAi・F(r0i)-e0iを計算する。そして、証明者アルゴリズムPは、t11,…,t1N及びe11,…,e1Nを検証者アルゴリズムVに送る。
t11,…,t1N及びe11,…,e1Nを受け取った検証者アルゴリズムVは、i=1~Nのそれぞれについて、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す2つの数値{0,1}の中から1つの数値を選択し、選択した数値を要求ChBiに設定する。要求ChBi(i=1~N)は証明者アルゴリズムPに送られる。
要求ChBi(i=1~N)を受け取った証明者アルゴリズムPは、i=1~Nについて、受け取った要求ChBiに応じて検証者アルゴリズムVに送り返す返答Rspiを生成する。ChBi=0の場合、証明者アルゴリズムPは、返答Rspi=(r0i,c1i)を生成する。ChBi=1の場合、証明者アルゴリズムPは、返答Rspi=(r1i,c0i)を生成する。工程#5で生成された返答Rspi(i=1~N)は、検証者アルゴリズムVに送られる。
返答Rspi(i=1~N)を受け取った検証者アルゴリズムVは、受け取った返答Rspi(i=1~N)を利用して以下の処理(1)及び処理(2)を実行する。
上記の効率的なアルゴリズムは、上記の式(8)で定義される2次多項式fiの組で多変数多項式Fを表現することにより、上記の式(10)で定義される多項式Gが双線形になるという性質を利用していた。但し、図10に示した効率的なアルゴリズムは、公開鍵F(s)をChA倍した項がChAに依存する部分と、それ以外の部分とに分割できることを利用している。しかし、5パス方式の場合も多項式Gがxかyの少なくとも片方について線形であれば、多項式Gが双線形でなくとも、同様に効率的なアルゴリズムを構築することが可能である。
3パス方式の場合と同様、環R上の3次多項式flを利用した効率的なアルゴリズムの構築方法について検討してみたい。3次多項式flを上記の式(17)のように表現した場合に、Gx(x,y)及びGy(x,y)がx及びyについて線形になることについては式(19)と式(20)より分かる。
まず、図12を参照しながら、5パス方式に係る拡張アルゴリズムの基本構成について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図12に示すように、証明者アルゴリズムPは、ランダムにベクトルr0,t0,u0∈Kn及びe0∈Kmを生成する。次いで、証明者アルゴリズムPは、r1←s-r0を計算する。この計算は、秘密鍵sをベクトルr0によりマスクする操作に相当する。次いで、証明者アルゴリズムPは、c0←H(r0,t0,e0-Gy(r0,u0))を計算する。次いで、証明者アルゴリズムPは、c1←H(r1,u0,Gx(t0,r1)+e0)を計算する。工程#1で生成されたメッセージ(c0,c1)は、検証者アルゴリズムVに送られる。
メッセージ(c0,c1)を受け取った検証者アルゴリズムVは、ランダムに数ChAを選択する。この数ChAは証明者アルゴリズムPに送られる。
数ChAを受け取った証明者アルゴリズムPは、t1←ChA・r0-t0を計算する。次いで、証明者アルゴリズムPは、u1←ChA・r1-u0を計算する。次いで、証明者アルゴリズムPは、e1←ChA・F(r0)+ChA・Gy(r0,r1)-e0を計算する。工程#3で生成された(t1,u1,e1)は、検証者アルゴリズムVに送られる。
(t1,u1,e1)を受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す2つの数値{0,1}の中から1つの数値を選択し、選択した数値を要求ChBに設定する。この要求ChBは証明者アルゴリズムPに送られる。
要求ChBを受け取った証明者アルゴリズムPは、受け取った要求ChBに応じて検証者アルゴリズムVに送る返答Rspを生成する。ChB=0の場合、証明者アルゴリズムPは、返答Rsp=r0を生成する。ChB=1の場合、証明者アルゴリズムPは、返答Rsp=r1を生成する。工程#5で生成された返答Rspは、検証者アルゴリズムVに送られる。
返答Rspを受け取った検証者アルゴリズムVは、受け取った返答Rspを利用して以下の検証処理を実行する。
次に、図13を参照しながら、5パス方式に係る拡張アルゴリズムの並列化について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図13に示すように、証明者アルゴリズムPは、i=1~Nについて、次の処理を実行する。まず、証明者アルゴリズムPは、ランダムにベクトルr0i,t0i,u0i∈Kn及びe0i∈Kmを生成する。次いで、証明者アルゴリズムPは、r1i←s-r0iを計算する。この計算は、秘密鍵sをベクトルr0iによりマスクする操作に相当する。次いで、証明者アルゴリズムPは、c0i←H(r0i,t0i,e0i-Gy(r0i,u0i))を計算する。次いで、証明者アルゴリズムPは、c1i←H(r1i,u0i,Gx(t0i,r1i)+e0i)を計算する。
(c01,c11,…,c0N,c1N)を計算した後、証明者アルゴリズムPは、ハッシュ値Cmt←H(c01,c11,…,c0N,c1N)を計算する。工程#1で生成されたハッシュ値Cmtは、検証者アルゴリズムVに送られる。
ハッシュ値Cmtを受け取った検証者アルゴリズムVは、ランダムに数ChA1,…,ChANを選択する。数ChA1,…,ChANは証明者アルゴリズムPに送られる。
数ChA1,…,ChANを受け取った証明者アルゴリズムPは、i=1~Nについて、次の処理を実行する。まず、証明者アルゴリズムPは、t1i←ChAi・r0i-t0iを計算する。次いで、証明者アルゴリズムPは、u1i←ChAi・r1i-u0iを計算する。次いで、証明者アルゴリズムPは、e1i←ChAi・F(r0i)+ChAi・Gy(r0i,r1i)-e0iを計算する。
(t11,u11,e11,…,t1N,u1N,e1N)を受け取った検証者アルゴリズムVは、i=1~Nのそれぞれについて、2つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、i=1~Nのそれぞれについて、検証パターンの種類を表す2つの数値{0,1}の中から1つの数値を選択し、選択した数値を要求ChBiに設定する。要求ChB1,…,ChBNは証明者アルゴリズムPに送られる。
要求ChB1,…,ChBNを受け取った証明者アルゴリズムPは、i=1~Nのそれぞれについて、受け取った要求ChBiに応じて検証者アルゴリズムVに送る返答Rspiを生成する。ChBi=0の場合、証明者アルゴリズムPは、返答Rspi=(r0i,c1i)を生成する。ChBi=1の場合、証明者アルゴリズムPは、返答Rspi=(r1i,c0i)を生成する。工程#5で生成された返答Rspiは、検証者アルゴリズムVに送られる。
返答Rspi(i=1~N)を受け取った検証者アルゴリズムVは、受け取った返答Rspiを利用し、i=1~Nについて次の処理を実行する。
これまで、環R上の3次多項式flを利用した効率的なアルゴリズムの構築方法について説明してきた。ここでは標数q及び位数qkの環R上で定義される高次多項式flを利用した拡張アルゴリズムの構築方法について考える。この高次多項式flは、例えば、下記の式(38)のように表現される。この高次多項式flを用いる場合、G(x,y)=F(x+y)-F(x)-F(y)=(g1,…,gm)で定義される多項式Gの成分glは、下記の式(39)のように表現される。
まず、図14を参照しながら、5パス方式に係る高次拡張アルゴリズムの基本構成について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図14に示すように、証明者アルゴリズムPは、ランダムにベクトルr0,t01,…,t0k∈Kn及びe0∈Kmを生成する。次いで、証明者アルゴリズムPは、r1←s-r0を計算する。この計算は、秘密鍵sをベクトルr0によりマスクする操作に相当する。次いで、証明者アルゴリズムPは、c0←H(r0,t01,…,t0k,e0)を計算する。次いで、証明者アルゴリズムPは、c1←H(r1,ΣzGz(t0z,r1)+e0)(但し、Σzはz=1~kについての和を表す。)を計算する。工程#1で生成されたメッセージ(c0,c1)は、検証者アルゴリズムVに送られる。
メッセージ(c0,c1)を受け取った検証者アルゴリズムVは、ランダムに数ChAを選択する。この数ChAは証明者アルゴリズムPに送られる。
数ChAを受け取った証明者アルゴリズムPは、z=1~kについて、t1z←(ChA)q(z-1)・r0-t0zを計算する。次いで、証明者アルゴリズムPは、e1←ChA・F(r0)-e0を計算する。工程#3で生成された(t11,…,t1k,e1)は、検証者アルゴリズムVに送られる。
(t11,…,t1k,e1)を受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す2つの数値{0,1}の中から1つの数値を選択し、選択した数値を要求ChBに設定する。この要求ChBは証明者アルゴリズムPに送られる。
要求ChBを受け取った証明者アルゴリズムPは、受け取った要求ChBに応じて検証者アルゴリズムVに送る返答Rspを生成する。ChB=0の場合、証明者アルゴリズムPは、返答Rsp=r0を生成する。ChB=1の場合、証明者アルゴリズムPは、返答Rsp=r1を生成する。工程#5で生成された返答Rspは、検証者アルゴリズムVに送られる。
返答Rspを受け取った検証者アルゴリズムVは、受け取った返答Rspを利用して以下の検証処理を実行する。
次に、図15を参照しながら、5パス方式に係る高次拡張アルゴリズムの並列化について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図15に示すように、証明者アルゴリズムPは、i=1~Nについて、次の処理を実行する。まず、証明者アルゴリズムPは、ランダムにベクトルr0i,t01i,…,t0ki∈Kn及びe0i∈Kmを生成する。次いで、証明者アルゴリズムPは、r1i←s-r0iを計算する。この計算は、秘密鍵sをベクトルr0iによりマスクする操作に相当する。次いで、証明者アルゴリズムPは、c0i←H(r0i,t01i,…,t0ki,e0i)を計算する。次いで、証明者アルゴリズムPは、c1i←H(r1i,ΣzGz(t0zi,r1i)+e0i)(但し、Σzはz=1~kについての和を表す。)を計算する。工程#1で生成されたメッセージ(c0i,c1i)(i=1~N)は、検証者アルゴリズムVに送られる。
メッセージ(c0i,c1i)(i=1~N)を受け取った検証者アルゴリズムVは、ランダムに数ChA1,…,ChANを選択する。この数ChA1,…,ChANは証明者アルゴリズムPに送られる。
数ChA1,…,ChANを受け取った証明者アルゴリズムPは、i=1~N及びz=1~kについて、t1zi←(ChAi)q(z-1)・r0i-t0ziを計算する。次いで、証明者アルゴリズムPは、e1i←ChAi・F(r0i)-e0iを計算する。工程#3で生成された(t11i,…,t1ki,e1i)(i=1~N)は、検証者アルゴリズムVに送られる。
(t11i,…,t1ki,e1i)(i=1~N)を受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す2つの数値{0,1}の中から1つの数値を選択し、選択した数値を要求ChBiに設定する。要求ChBi(i=1~N)は証明者アルゴリズムPに送られる。
要求ChBi(i=1~N)を受け取った証明者アルゴリズムPは、i=1~Nのそれぞれについて、受け取った要求ChBiに応じて検証者アルゴリズムVに送る返答Rspiを生成する。ChBi=0の場合、証明者アルゴリズムPは、返答Rspi=r0iを生成する。ChBi=1の場合、証明者アルゴリズムPは、返答Rspi=r1iを生成する。工程#5で生成された返答Rspi(i=1~N)は、検証者アルゴリズムVに送られる。
返答Rspi(i=1~N)を受け取った検証者アルゴリズムVは、受け取った返答Rspiを利用し、i=1~Nについて次の認証処理を実行する。
さて、図15に示した高次拡張アルゴリズムの並列化構成において、1パス目にメッセージ(c0i,c1i)(i=1~N)をそのまま送っていた。しかし、通信効率を考えると、メッセージ(c0i,c1i)(i=1~N)を1つのハッシュ値に纏めて送る方が好ましい。1パス目でメッセージ(c0i,c1i)(i=1~N)を1つのハッシュ値に纏めて送るには、図16に示すようにアルゴリズムの構成を変形すればよい。
さて、図15に示した高次拡張アルゴリズムの並列化構成において、1パス目にメッセージ(c0i,c1i)(i=1~N)をそのまま送っていた。さらに、3パス目に(t11i,…,t1ki,e1i)(i=1~N)をそのまま送っていた。しかし、通信効率を考えると、メッセージ(c0i,c1i)(i=1~N)を1つのハッシュ値に纏めて送る方が好ましい。さらに、(t11i,…,t1ki,e1i)(i=1~N)を1つのハッシュ値に纏めて送る方が好ましい。1パス目でメッセージ(c0i,c1i)(i=1~N)を1つのハッシュ値に纏めて送り、3パス目で(t11i,…,t1ki,e1i)(i=1~N)を1つのハッシュ値に纏めて送るには、図17に示すようにアルゴリズムの構成を変形すればよい。
ここで、上記の公開鍵認証方式を電子署名方式へと変形する方法を紹介する。
まず、3パスの公開鍵認証方式から電子署名方式への変形について説明する。
図18に示すように、3パス方式に係る効率的なアルゴリズム(例えば、図6及び図8を参照)は、3回の対話及び4つの工程#1~工程#4で表現される。
まず、署名生成アルゴリズムSigの構成について述べる。署名生成アルゴリズムSigは、以下の処理(1)~処理(5)で構成される。
処理(2):署名生成アルゴリズムSigは、Cmt←H(c01,c11,c21,…,c0N,c1N,c2N)を計算する。
処理(3):署名生成アルゴリズムSigは、(Ch1,…,ChN)←H(M,Cmt)を計算する。このMは、署名を付与する文書である。
処理(4):署名生成アルゴリズムSigは、Rspi←Select(Chi,ai)を計算する。
処理(5):署名生成アルゴリズムSigは、(Cmt,Rsp1,…,RspN)を署名に設定する。
次に、署名検証アルゴリズムVerの構成について述べる。署名検証アルゴリズムVerは、以下の処理(1)~処理(3)で構成される。
処理(2):署名検証アルゴリズムVerは、Ch1,…,ChN及びRsp1,…,RspNを用いてc01,c11,c21,…,c0N,c1N,c2Nを生成する。
処理(3):署名検証アルゴリズムVerは、再生したc01,c11,c21,…,c0N,c1N,c2Nを用いてCmt=H(c01,c11,c21,…,c0N,c1N,c2N)を検証する。
ところで、図18に示した署名生成アルゴリズムSigの構成に注目すると、処理(2)及び処理(3)でハッシュ値の計算を行っていることに気づくであろう。また、署名検証アルゴリズムVerの構成に注目すると、処理(1)において、署名生成アルゴリズムSigの処理(3)と同じハッシュ値の計算を行っていることに気づくであろう。これらの処理に注目し、図19に示すように署名生成アルゴリズムSig及び署名検証アルゴリズムVerの構成を改良すると、さらに計算効率を向上させることができる。
まず、図19を参照しながら、改良後の署名生成アルゴリズムSigの構成について説明する。署名生成アルゴリズムSigは、以下の処理(1)~処理(4)で構成される。
処理(2):署名生成アルゴリズムSigは、(Ch1,…,ChN)←H(M,c01,c11,c21,…,c0N,c1N,c2N)を計算する。このMは、署名を付与する文書である。
処理(3):署名生成アルゴリズムSigは、Rspi←Select(Chi,ai)を計算する。
処理(4):署名生成アルゴリズムSigは、(Ch1,…,ChN,Rsp1,…,RspN)を署名に設定する。
次に、改良後の署名検証アルゴリズムVerの構成について説明する。署名検証アルゴリズムVerは、以下の処理(1)及び処理(2)で構成される。
処理(2):署名検証アルゴリズムVerは、再生したc01,c11,c21,…,c0N,c1N,c2Nを用いて(Ch1,…,ChN)=H(c01,c11,c21,…,c0N,c1N,c2N)を検証する。
次に、5パスの公開鍵認証方式から電子署名方式への変形について説明する。
図20に示すように、5パス方式に係る効率的なアルゴリズム(例えば、図11、図13及び図16を参照)は、5回の対話及び6つの工程#1~工程#6で表現される。
まず、署名生成アルゴリズムSigの構成について述べる。署名生成アルゴリズムSigは、以下の処理(1)~処理(7)で構成される。
処理(2):署名生成アルゴリズムSigは、Cmt←H(c01,c11,…,c0N,c1N)を計算する。
処理(3):署名生成アルゴリズムSigは、(ChA1,…,ChAN)←H(M,Cmt)を計算する。このMは、署名を付与する文書である。
処理(4):署名生成アルゴリズムSigは、i=1~Nについて、bi=(t1i,e1i)を生成する。
処理(5):署名生成アルゴリズムSigは、(ChB1,…,ChBN)←H(M,Cmt,ChA1,…,ChAN,b1,…,bN)を計算する。なお、(ChB1,…,ChBN)←H(ChA1,…,ChAN,b1,…,bN)と変形してもよい。
処理(6):署名生成アルゴリズムSigは、Rspi←Select(ChBi,ai,bi)を計算する。
処理(7):署名生成アルゴリズムSigは、(Cmt,b1,…,bN,Rsp1,…,RspN)を電子署名に設定する。
次に、署名検証アルゴリズムVerの構成について述べる。署名検証アルゴリズムVerは、以下の処理(1)~処理(4)で構成される。
処理(2):署名検証アルゴリズムVerは、(ChB1,…,ChBN)←H(M,Cmt,ChA1,…,ChAN,b1,…,bN)を計算する。なお、署名検証アルゴリズムVerが実行する処理(5)において、(ChB1,…,ChBN)←H(ChA1,…,ChAN,b1,…,bN)と変形した場合、署名検証アルゴリズムVerは、(ChB1,…,ChBN)←H(ChA1,…,ChAN,b1,…,bN)を計算する。
処理(3):署名検証アルゴリズムVerは、ChA1,…,ChAN,ChB1,…,ChBN,Rsp1,…,RspNを用いてc01,c11,…,c0N,c1Nを生成する。
処理(4):署名検証アルゴリズムVerは、再生したc01,c11,…,c0N,c1Nを用いてCmt=H(c01,c11,…,c0N,c1N)を検証する。
図21に示すように、5パス方式に係る更に効率的なアルゴリズム(例えば、図17を参照)は、5回の対話及び6つの工程#1~工程#6で表現される。
まず、署名生成アルゴリズムSigの構成について述べる。署名生成アルゴリズムSigは、以下の処理(1)~処理(8)で構成される。
処理(2):署名生成アルゴリズムSigは、CmtA←H(c01,c11,…,c0N,c1N)を計算する。
処理(3):署名生成アルゴリズムSigは、(ChA1,…,ChAN)←H(M,CmtA)を計算する。このMは、署名を付与する文書である。
処理(4):署名生成アルゴリズムSigは、i=1~Nについて、bi=(t1i,e1i)を生成する。
処理(5):署名生成アルゴリズムSigは、CmtB←H(b1,…,bN)を計算する。
処理(6):署名生成アルゴリズムSigは、(ChB1,…,ChBN)←H(M,Cmt,ChA1,…,ChAN,CmtB)を計算する。なお、(ChB1,…,ChBN)←H(ChA1,…,ChAN,CmtB)と変形してもよい。
処理(7):署名生成アルゴリズムSigは、Rspi←Select(ChBi,ai,bi)を計算する。
処理(8):署名生成アルゴリズムSigは、(CmtA,CmtB,Rsp1,…,RspN)を電子署名に設定する。
次に、署名検証アルゴリズムVerの構成について述べる。署名検証アルゴリズムVerは、以下の処理(1)~処理(5)で構成される。
処理(2):署名検証アルゴリズムVerは、(ChB1,…,ChBN)←H(M,CmtA,ChA1,…,ChAN,CmtB)を計算する。なお、署名検証アルゴリズムVerが実行する処理(6)において、(ChB1,…,ChBN)←H(ChA1,…,ChAN,CmtB)と変形した場合、署名検証アルゴリズムVerは、(ChB1,…,ChBN)←H(ChA1,…,ChAN,CmtB)を計算する。
処理(3):署名検証アルゴリズムVerは、ChA1,…,ChAN,ChB1,…,ChBN,Rsp1,…,RspNを用いてc01,c11,…,c0N,c1N,b1,…,bNを生成する。
処理(4):署名検証アルゴリズムVerは、再生したc01,c11,…,c0N,c1Nを用いてCmtA=H(c01,c11,…,c0N,c1N)を検証する。
処理(5):署名検証アルゴリズムVerは、再生したb1,…,bNを用いてCmtB=H(b1,…,bN)を検証する。
偽証が成功する確率を無視できる程度にまで小さくするために、対話プロトコルを複数回実行する必要性については既に説明した通りである。また、対話プロトコルを複数回実行する方法として、直列的な方法と並列的な方法とを紹介した。特に、並列的な方法については、具体的な並列化アルゴリズムを示して説明した。ここでは、直列的な方法と並列的な方法とを組み合わせたハイブリッド型のアルゴリズムを紹介する。
まず、3パスの公開鍵認証方式に係るハイブリッド型アルゴリズムについて説明する。
図22を参照しながら、ハイブリッド型の一構成例(以下、並直列構成)について説明する。図22には、基本構成のアルゴリズム及び並直列構成のアルゴリズムを示した。
図23を参照しながら、ハイブリッド型の他の一構成例(以下、直並列構成)について説明する。図23には、基本構成のアルゴリズム及び直並列構成のアルゴリズムを示した。
次に、5パスの公開鍵認証方式に係るハイブリッド型アルゴリズムについて説明する。
まず、図24を参照しながら、ハイブリッド型の一構成例(以下、並直列構成#1)について説明する。図24には、基本構成のアルゴリズム及び並直列構成#1のアルゴリズムを示した。
次に、図25を参照しながら、ハイブリッド型の他の一構成例(以下、並直列構成#2)について説明する。図25には、基本構成のアルゴリズム及び並直列構成#2のアルゴリズムを示した。
次に、図26を参照しながら、ハイブリッド型の他の一構成例(以下、直並列構成#1)について説明する。図26には、基本構成のアルゴリズム及び直並列構成#1のアルゴリズムを示した。
次に、図27を参照しながら、ハイブリッド型の他の一構成例(以下、直並列構成#2)について説明する。図27には、基本構成のアルゴリズム及び直並列構成#2のアルゴリズムを示した。
ここで、上記の公開鍵認証方式に関する説明の補足を行う。
ここで、パラメータの設定方法について説明を補足する。
これまで、多変数多項式の係数又はその係数の生成に利用する乱数シード(以下、多変数多項式の係数など)をどのように設定するかについては詳しく言及してこなかった。多変数多項式の係数などは、システムに共通のパラメータとしてもよいし、ユーザ毎に異なるパラメータとしてもよい。
ところで、これまで説明してきた対話プロトコルは、受動的攻撃に対する安全性が保証されている。しかし、この対話プロトコルを並列的に繰り返し実行する場合、能動的攻撃に対する安全性が確実に保証されることを証明できるようにするには、以下で述べる条件が必要になる。
ここで、イレギュラーな要求に対する応答方法について考察する。
対話プロトコルの中で検証者が偽りの要求を投げかけてくる可能性について考えてみよう。例えば、3パス方式の場合、証明者が検証者へとメッセージ(c0,c1,c2)を送り、検証者が証明者へと要求Ch=0を送った後、証明者から検証者へと要求Ch=0に対応する返答Rspが送られる。ここまでは正常な対話である。
次に、証明者が偽って要求Chの再送を要求してくる可能性について考えてみよう。例えば、3パス方式において、証明者が検証者へとメッセージ(c0,c1,c2)を送り、検証者が証明者へと要求Ch=0を送った後、証明者が要求Chの再送を要求してきたとしよう。この要求に応じて、検証者が再びランダムに要求Chを選択すると、先に送った要求Ch=0とは異なる要求Ch=1が選択される可能性がある。この場合、検証者から証明者へと要求Ch=1が送られる。仮に、証明者が要求Ch=1に対応する返答Rspを検証者に送ることができたとしよう。
上記の各アルゴリズムは、例えば、図28に示す情報処理装置のハードウェア構成を用いて実行することが可能である。つまり、当該各アルゴリズムの処理は、コンピュータプログラムを用いて図28に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、PHS、PDA等の携帯情報端末、ゲーム機、接触式又は非接触式のICチップ、接触式又は非接触式のICカード、又は種々の情報家電がこれに含まれる。但し、上記のPHSは、Personal Handy-phone Systemの略である。また、上記のPDAは、Personal Digital Assistantの略である。
最後に、本技術の実施形態に係る技術内容について簡単に纏める。ここで述べる技術内容は、例えば、PC、携帯電話、ゲーム機、情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置に対して適用することができる。なお、以下で述べる情報処理装置の機能は、1台の情報処理装置を利用して実現することも可能であるし、複数台の情報処理装置を利用して実現することも可能である。また、以下で述べる情報処理装置が処理を実行する際に用いるデータ記憶手段及び演算処理手段は、当該情報処理装置に設けられたものであってもよいし、ネットワークを介して接続された機器に設けられたものであってもよい。
多次多変数多項式の組F=(f1,…,fm)及びベクトルs∈Knに基づいてメッセージを生成するメッセージ生成部と、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するメッセージ提供部と、
前記検証者がランダムに選択した第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて第3の情報を生成する中間情報生成部と、
前記検証者に前記第3の情報を提供する中間情報提供部と、
k通り(k≧2)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する回答提供部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)-F(x1)-F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
情報処理装置。
前記メッセージ生成部は、N回分(N≧2)のメッセージを生成し、
前記メッセージ提供部は、N回分の前記メッセージを1回の対話で前記検証者に提供し、
前記中間情報生成部は、N回分の前記メッセージのそれぞれについて前記検証者が選択した前記第1の情報及び前記メッセージを生成する際に得られるN回分の前記第2の情報を用いてN回分の前記第3の情報を生成し、
前記中間情報提供部は、N回分の前記第3の情報を1回の対話で検証者に提供し、
前記回答提供部は、N回分の前記メッセージのそれぞれについて前記検証者が選択した検証パターンに対応するN回分の前記回答情報を1回の対話で前記検証者に提供する、
上記(1)に記載の情報処理装置。
前記メッセージ生成部は、N回分(N≧2)のメッセージを生成すると共に、N回分の前記メッセージから1つのハッシュ値を生成し、
前記メッセージ提供部は、前記ハッシュ値を前記検証者に提供し、
前記中間情報生成部は、N回分の前記メッセージのそれぞれについて前記検証者が選択した前記第1の情報及び前記メッセージを生成する際に得られるN回分の前記第2の情報を用いてN回分の前記第3の情報を生成し、
前記中間情報提供部は、N回分の前記第3の情報を1回の対話で検証者に提供し、
前記回答提供部は、N回分の前記メッセージのそれぞれについて前記検証者が選択した検証パターンに対応するN回分の前記回答情報、及び、前記公開鍵及び前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行しても得られない一部のメッセージを1回の対話で前記検証者に提供する、
上記(2)に記載の情報処理装置。
多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報保持部と、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するメッセージ取得部と、
前記メッセージを提供した証明者に対し、ランダムに選択した第1の情報を提供する情報提供部と、
前記第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて前記証明者が生成した第3の情報を取得する中間情報取得部と、
k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を前記証明者に提供するパターン情報提供部と、
前記選択した検証パターンに対応する回答情報を前記証明者から取得する回答取得部と、
前記メッセージ、前記第1の情報、前記第3の情報、前記多次多変数多項式の組F、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証する検証部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)-F(x1)-F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
情報処理装置。
前記メッセージ取得部は、N回分(N≧2)の前記メッセージを1回の対話で取得し、
前記情報提供部は、N回分の前記メッセージのそれぞれについて前記第1の情報をランダムに選択し、選択したN回分の前記第1の情報を1回の対話で前記証明者に提供し、
前記中間情報取得部は、N回分の前記第1の情報及びN回分の前記メッセージを生成する際に得られるN回分の前記第2の情報を用いて前記証明者が生成したN回分の前記第3の情報を取得し、
前記パターン情報提供部は、N回分の前記メッセージのそれぞれについて検証パターンを選択し、選択したN回分の検証パターンの情報を1回の対話で前記証明者に提供し、
前記回答取得部は、前記選択したN回分の検証パターンに対応するN回分の前記回答情報を1回の対話で前記証明者から取得し、
前記検証部は、N回分の前記メッセージの全てについて検証が成功した場合に、前記証明者が前記ベクトルsを保持していると判定する、
上記(4)に記載の情報処理装置。
前記メッセージ取得部は、N回分(N≧2)の前記メッセージから生成された1つのハッシュ値を取得し、
前記情報提供部は、N回分の前記メッセージのそれぞれについて前記第1の情報をランダムに選択し、選択したN回分の前記第1の情報を1回の対話で前記証明者に提供し、
前記中間情報取得部は、N回分の前記第1の情報及びN回分の前記メッセージを生成する際に得られるN回分の前記第2の情報を用いて前記証明者が生成したN回分の前記第3の情報を取得し、
前記パターン情報提供部は、N回分の前記メッセージのそれぞれについて検証パターンを選択し、選択したN回分の検証パターンの情報を1回の対話で前記証明者に提供し、
前記回答取得部は、前記選択した検証パターンに対応する回答情報、及び、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行しても得られない一部のメッセージを前記証明者から取得し、
前記検証部は、前記ハッシュ値、前記一部のメッセージ、前記公開鍵、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証し、N回分の前記メッセージの全てについて検証が成功した場合に、前記証明者が前記ベクトルsを保持していると判定する、
上記(5)に記載の情報処理装置。
多次多変数多項式の組F=(f1,…,fm)及びベクトルs∈Knに基づいてメッセージを生成することと、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供することと、
前記検証者がランダムに選択した第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて第3の情報を生成することと、
前記検証者に前記第3の情報を提供することと、
k通り(k≧2)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供することと、
を含み、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)-F(x1)-F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
情報処理方法。
多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報処理装置が、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得することと、
前記メッセージを提供した証明者に対し、ランダムに選択した第1の情報を提供することと、
前記第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて前記証明者が生成した第3の情報を取得することと、
k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を前記証明者に提供することと、
前記選択した検証パターンに対応する回答情報を前記証明者から取得することと、
前記メッセージ、前記第1の情報、前記第3の情報、前記多次多変数多項式の組F、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証することと、
を含み、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)-F(x1)-F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
情報処理方法。
多次多変数多項式の組F=(f1,…,fm)及びベクトルs∈Knに基づいてメッセージを生成するメッセージ生成機能と、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するメッセージ提供機能と、
前記検証者がランダムに選択した第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて第3の情報を生成する中間情報生成機能と、
前記検証者に前記第3の情報を提供する中間情報提供機能と、
k通り(k≧2)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する回答提供機能と、
をコンピュータに実現させるためのプログラムであり、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)-F(x1)-F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
プログラム。
多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報保持機能と、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するメッセージ取得機能と、
前記メッセージを提供した証明者に対し、ランダムに選択した第1の情報を提供する情報提供機能と、
前記第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて前記証明者が生成した第3の情報を取得する中間情報取得機能と、
k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を前記証明者に提供するパターン情報提供機能と、
前記選択した検証パターンに対応する回答情報を前記証明者から取得する回答取得部と、
前記メッセージ、前記第1の情報、前記第3の情報、前記多次多変数多項式の組F、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証する検証機能と、
をコンピュータに実現させるためのプログラムであり、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)-F(x1)-F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
プログラム。
多次多変数多項式の組F=(f1,…,fm)及びベクトルs∈Knに基づいてメッセージを生成するメッセージ生成機能と、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するメッセージ提供機能と、
前記検証者がランダムに選択した第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて第3の情報を生成する中間情報生成機能と、
前記検証者に前記第3の情報を提供する中間情報提供機能と、
k通り(k≧2)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する回答提供機能と、
をコンピュータに実現させるためのプログラムが記録された、コンピュータにより読み取り可能な記録媒体であり、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)-F(x1)-F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
記録媒体。
多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報保持機能と、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するメッセージ取得機能と、
前記メッセージを提供した証明者に対し、ランダムに選択した第1の情報を提供する情報提供機能と、
前記第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて前記証明者が生成した第3の情報を取得する中間情報取得機能と、
k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を前記証明者に提供するパターン情報提供機能と、
前記選択した検証パターンに対応する回答情報を前記証明者から取得する回答取得部と、
前記メッセージ、前記第1の情報、前記第3の情報、前記多次多変数多項式の組F、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証する検証機能と、
をコンピュータに実現させるためのプログラムが記録された、コンピュータにより読み取り可能な記録媒体であり、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)-F(x1)-F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
記録媒体。
前記m及びnは、m<nの関係を有する、
上記(1)~(6)のいずれか1項に記載の装置。
前記m及びnは、2m-n≪1の関係を有する、
上記(13)に記載の装置。
上記の証明者アルゴリズムPは、メッセージ生成部、メッセージ提供部、回答提供部、中間情報生成部、中間情報提供部の一例である。また、上記の検証者アルゴリズムVは、情報保持部、メッセージ取得部、パターン情報提供部、回答取得部、検証部、中間情報取得部の一例である。
P 証明者アルゴリズム
V 検証者アルゴリズム
Sig 署名生成アルゴリズム
Ver 署名検証アルゴリズム
Claims (12)
- 多次多変数多項式の組F=(f1,…,fm)及びベクトルs∈Knに基づいてメッセージを生成するメッセージ生成部と、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するメッセージ提供部と、
前記検証者がランダムに選択した第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて第3の情報を生成する中間情報生成部と、
前記検証者に前記第3の情報を提供する中間情報提供部と、
k通り(k≧2)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する回答提供部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)-F(x1)-F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
情報処理装置。 - 前記メッセージ生成部は、N回分(N≧2)のメッセージを生成し、
前記メッセージ提供部は、N回分の前記メッセージを1回の対話で前記検証者に提供し、
前記中間情報生成部は、N回分の前記メッセージのそれぞれについて前記検証者が選択した前記第1の情報及び前記メッセージを生成する際に得られるN回分の前記第2の情報を用いてN回分の前記第3の情報を生成し、
前記中間情報提供部は、N回分の前記第3の情報を1回の対話で検証者に提供し、
前記回答提供部は、N回分の前記メッセージのそれぞれについて前記検証者が選択した検証パターンに対応するN回分の前記回答情報を1回の対話で前記検証者に提供する、
請求項1に記載の情報処理装置。 - 前記メッセージ生成部は、N回分(N≧2)のメッセージを生成すると共に、N回分の前記メッセージから1つのハッシュ値を生成し、
前記メッセージ提供部は、前記ハッシュ値を前記検証者に提供し、
前記中間情報生成部は、N回分の前記メッセージのそれぞれについて前記検証者が選択した前記第1の情報及び前記メッセージを生成する際に得られるN回分の前記第2の情報を用いてN回分の前記第3の情報を生成し、
前記中間情報提供部は、N回分の前記第3の情報を1回の対話で検証者に提供し、
前記回答提供部は、N回分の前記メッセージのそれぞれについて前記検証者が選択した検証パターンに対応するN回分の前記回答情報、及び、前記公開鍵及び前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行しても得られない一部のメッセージを1回の対話で前記検証者に提供する、
請求項2に記載の情報処理装置。 - 多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報保持部と、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するメッセージ取得部と、
前記メッセージを提供した証明者に対し、ランダムに選択した第1の情報を提供する情報提供部と、
前記第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて前記証明者が生成した第3の情報を取得する中間情報取得部と、
k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を前記証明者に提供するパターン情報提供部と、
前記選択した検証パターンに対応する回答情報を前記証明者から取得する回答取得部と、
前記メッセージ、前記第1の情報、前記第3の情報、前記多次多変数多項式の組F、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証する検証部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)-F(x1)-F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
情報処理装置。 - 前記メッセージ取得部は、N回分(N≧2)の前記メッセージを1回の対話で取得し、
前記情報提供部は、N回分の前記メッセージのそれぞれについて前記第1の情報をランダムに選択し、選択したN回分の前記第1の情報を1回の対話で前記証明者に提供し、
前記中間情報取得部は、N回分の前記第1の情報及びN回分の前記メッセージを生成する際に得られるN回分の前記第2の情報を用いて前記証明者が生成したN回分の前記第3の情報を取得し、
前記パターン情報提供部は、N回分の前記メッセージのそれぞれについて検証パターンを選択し、選択したN回分の検証パターンの情報を1回の対話で前記証明者に提供し、
前記回答取得部は、前記選択したN回分の検証パターンに対応するN回分の前記回答情報を1回の対話で前記証明者から取得し、
前記検証部は、N回分の前記メッセージの全てについて検証が成功した場合に、前記証明者が前記ベクトルsを保持していると判定する、
請求項4に記載の情報処理装置。 - 前記メッセージ取得部は、N回分(N≧2)の前記メッセージから生成された1つのハッシュ値を取得し、
前記情報提供部は、N回分の前記メッセージのそれぞれについて前記第1の情報をランダムに選択し、選択したN回分の前記第1の情報を1回の対話で前記証明者に提供し、
前記中間情報取得部は、N回分の前記第1の情報及びN回分の前記メッセージを生成する際に得られるN回分の前記第2の情報を用いて前記証明者が生成したN回分の前記第3の情報を取得し、
前記パターン情報提供部は、N回分の前記メッセージのそれぞれについて検証パターンを選択し、選択したN回分の検証パターンの情報を1回の対話で前記証明者に提供し、
前記回答取得部は、前記選択した検証パターンに対応する回答情報、及び、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行しても得られない一部のメッセージを前記証明者から取得し、
前記検証部は、前記ハッシュ値、前記一部のメッセージ、前記公開鍵、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証し、N回分の前記メッセージの全てについて検証が成功した場合に、前記証明者が前記ベクトルsを保持していると判定する、
請求項5に記載の情報処理装置。 - 多次多変数多項式の組F=(f1,…,fm)及びベクトルs∈Knに基づいてメッセージを生成することと、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供することと、
前記検証者がランダムに選択した第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて第3の情報を生成することと、
前記検証者に前記第3の情報を提供することと、
k通り(k≧2)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供することと、
を含み、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)-F(x1)-F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
情報処理方法。 - 多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報処理装置が、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得することと、
前記メッセージを提供した証明者に対し、ランダムに選択した第1の情報を提供することと、
前記第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて前記証明者が生成した第3の情報を取得することと、
k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を前記証明者に提供することと、
前記選択した検証パターンに対応する回答情報を前記証明者から取得することと、
前記メッセージ、前記第1の情報、前記第3の情報、前記多次多変数多項式の組F、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証することと、
を含み、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)-F(x1)-F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
情報処理方法。 - 多次多変数多項式の組F=(f1,…,fm)及びベクトルs∈Knに基づいてメッセージを生成するメッセージ生成機能と、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するメッセージ提供機能と、
前記検証者がランダムに選択した第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて第3の情報を生成する中間情報生成機能と、
前記検証者に前記第3の情報を提供する中間情報提供機能と、
k通り(k≧2)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する回答提供機能と、
をコンピュータに実現させるためのプログラムであり、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)-F(x1)-F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
プログラム。 - 多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報保持機能と、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するメッセージ取得機能と、
前記メッセージを提供した証明者に対し、ランダムに選択した第1の情報を提供する情報提供機能と、
前記第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて前記証明者が生成した第3の情報を取得する中間情報取得機能と、
k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を前記証明者に提供するパターン情報提供機能と、
前記選択した検証パターンに対応する回答情報を前記証明者から取得する回答取得部と、
前記メッセージ、前記第1の情報、前記第3の情報、前記多次多変数多項式の組F、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証する検証機能と、
をコンピュータに実現させるためのプログラムであり、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)-F(x1)-F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
プログラム。 - 多次多変数多項式の組F=(f1,…,fm)及びベクトルs∈Knに基づいてメッセージを生成するメッセージ生成機能と、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するメッセージ提供機能と、
前記検証者がランダムに選択した第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて第3の情報を生成する中間情報生成機能と、
前記検証者に前記第3の情報を提供する中間情報提供機能と、
k通り(k≧2)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する回答提供機能と、
をコンピュータに実現させるためのプログラムが記録された、コンピュータにより読み取り可能な記録媒体であり、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)-F(x1)-F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
記録媒体。 - 多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報保持機能と、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するメッセージ取得機能と、
前記メッセージを提供した証明者に対し、ランダムに選択した第1の情報を提供する情報提供機能と、
前記第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて前記証明者が生成した第3の情報を取得する中間情報取得機能と、
k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を前記証明者に提供するパターン情報提供機能と、
前記選択した検証パターンに対応する回答情報を前記証明者から取得する回答取得部と、
前記メッセージ、前記第1の情報、前記第3の情報、前記多次多変数多項式の組F、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証する検証機能と、
をコンピュータに実現させるためのプログラムが記録された、コンピュータにより読み取り可能な記録媒体であり、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)-F(x1)-F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
記録媒体。
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201280038070.5A CN103718502B (zh) | 2011-08-12 | 2012-06-25 | 信息处理设备和信息处理方法 |
CA 2839690 CA2839690A1 (en) | 2011-08-12 | 2012-06-25 | Information processing apparatus, information processing method, program, and recording medium |
MX2014001451A MX338025B (es) | 2011-08-12 | 2012-06-25 | Dispositivo para el procesamiento de informacion, metodo, programa y medio de registro para el procesamiento de informacion. |
BR112014002854A BR112014002854A2 (pt) | 2011-08-12 | 2012-06-25 | aparelho e método de processamento de informação, programa, e, mídia de gravação legível por computador |
EP12823703.9A EP2744146A4 (en) | 2011-08-12 | 2012-06-25 | DATA PROCESSING DEVICE, DATA PROCESSING METHOD, PROGRAM, AND RECORDING MEDIUM |
KR1020147002640A KR101986392B1 (ko) | 2011-08-12 | 2012-06-25 | 정보 처리 장치, 정보 처리 방법, 및 기록 매체 |
RU2014104084/08A RU2603551C2 (ru) | 2011-08-12 | 2012-06-25 | Устройство обработки информации, способ обработки информации, программа и носитель информации |
AU2012296044A AU2012296044B2 (en) | 2011-08-12 | 2012-06-25 | Information processing device, information processing method, program, and recording medium |
US14/235,240 US9178700B2 (en) | 2011-08-12 | 2012-06-25 | Information processing apparatus, information processing method, program, and recording medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011-177071 | 2011-08-12 | ||
JP2011177071A JP5790287B2 (ja) | 2011-08-12 | 2011-08-12 | 情報処理装置、情報処理方法、プログラム、及び記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013024629A1 true WO2013024629A1 (ja) | 2013-02-21 |
Family
ID=47714958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/066125 WO2013024629A1 (ja) | 2011-08-12 | 2012-06-25 | 情報処理装置、情報処理方法、プログラム、及び記録媒体 |
Country Status (12)
Country | Link |
---|---|
US (1) | US9178700B2 (ja) |
EP (1) | EP2744146A4 (ja) |
JP (1) | JP5790287B2 (ja) |
KR (1) | KR101986392B1 (ja) |
CN (1) | CN103718502B (ja) |
AU (1) | AU2012296044B2 (ja) |
BR (1) | BR112014002854A2 (ja) |
CA (1) | CA2839690A1 (ja) |
MX (1) | MX338025B (ja) |
RU (1) | RU2603551C2 (ja) |
TW (1) | TWI511517B (ja) |
WO (1) | WO2013024629A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014090372A (ja) * | 2012-10-31 | 2014-05-15 | Sony Corp | 情報処理装置、情報処理システム、情報処理方法及びコンピュータプログラム |
CN103490897B (zh) * | 2013-09-17 | 2017-04-05 | 华南理工大学 | 一种多变量公钥签名/验证系统及签名/验证方法 |
JP2017169147A (ja) * | 2016-03-17 | 2017-09-21 | 株式会社東芝 | 検証装置、電子機器、プログラムおよび検証システム |
US10484186B2 (en) * | 2016-09-30 | 2019-11-19 | Intel Corporation | Cascading multivariate quadratic identification schemes for chain of trust |
CN110995438B (zh) * | 2019-10-24 | 2022-07-12 | 南京可信区块链与算法经济研究院有限公司 | 一种非交互零知识证明方法、系统及存储介质 |
CN111090842B (zh) * | 2019-12-23 | 2022-04-26 | 上海源庐加佳信息科技有限公司 | 一种基于零知识证明的供应链金融客户贷款信息保护方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011254155A (ja) * | 2010-05-31 | 2011-12-15 | Sony Corp | 認証装置、認証方法、プログラム、及び署名生成装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19513898B4 (de) * | 1995-04-12 | 2006-11-30 | Deutsche Telekom Ag | Public-Key-Verfahren zur Verschlüsselung von Daten |
DE69737097T2 (de) * | 1996-08-19 | 2007-07-12 | Ntru Cryptosystems, Inc. | Kryptographisches verfahren und vorrichtung mit öffentlichem schlüssel |
US6076163A (en) * | 1997-10-20 | 2000-06-13 | Rsa Security Inc. | Secure user identification based on constrained polynomials |
EP1049289B1 (en) * | 1999-04-29 | 2004-10-06 | Bull Cp8 | Public-key signature methods and systems |
WO2001026279A1 (fr) * | 1999-10-01 | 2001-04-12 | France Telecom | Procede, systeme, dispositif a prouver l'authenticite d'une entite ou l'integrite d'un message |
US7814320B2 (en) * | 2005-07-19 | 2010-10-12 | Ntt Docomo, Inc. | Cryptographic authentication, and/or establishment of shared cryptographic keys, using a signing key encrypted with a non-one-time-pad encryption, including (but not limited to) techniques with improved security against malleability attacks |
JP4575283B2 (ja) * | 2005-11-15 | 2010-11-04 | 株式会社東芝 | 暗号装置、復号装置、プログラム及び方法 |
KR101367101B1 (ko) * | 2006-08-30 | 2014-02-25 | 삼성전자주식회사 | 다항식환을 이용한 키 합의 방법 및 이를 위한 장치 |
US9059838B2 (en) * | 2007-03-30 | 2015-06-16 | Verizon Patent And Licensing Inc. | Encryption algorithm with randomized buffer |
CN101321058B (zh) * | 2007-06-07 | 2010-12-15 | 管海明 | 一种用于编码和译码数字消息的方法和系统 |
US8019079B2 (en) * | 2007-07-08 | 2011-09-13 | Georgia Tech Research Corporation | Asymmetric cryptosystem employing paraunitary matrices |
JP4612027B2 (ja) * | 2007-09-03 | 2011-01-12 | 村田機械株式会社 | 署名システム |
WO2009128010A1 (en) * | 2008-04-14 | 2009-10-22 | Philips Intellectual Property & Standards Gmbh | A method for distributing encryption means |
JP5594034B2 (ja) | 2010-07-30 | 2014-09-24 | ソニー株式会社 | 認証装置、認証方法、及びプログラム |
US8532289B2 (en) * | 2010-08-16 | 2013-09-10 | International Business Machines Corporation | Fast computation of a single coefficient in an inverse polynomial |
WO2012149395A1 (en) * | 2011-04-29 | 2012-11-01 | International Business Machines Corporation | Fully homomorphic encryption |
-
2011
- 2011-08-12 JP JP2011177071A patent/JP5790287B2/ja active Active
-
2012
- 2012-06-25 CA CA 2839690 patent/CA2839690A1/en not_active Abandoned
- 2012-06-25 RU RU2014104084/08A patent/RU2603551C2/ru not_active IP Right Cessation
- 2012-06-25 US US14/235,240 patent/US9178700B2/en active Active
- 2012-06-25 WO PCT/JP2012/066125 patent/WO2013024629A1/ja active Application Filing
- 2012-06-25 AU AU2012296044A patent/AU2012296044B2/en not_active Ceased
- 2012-06-25 MX MX2014001451A patent/MX338025B/es active IP Right Grant
- 2012-06-25 KR KR1020147002640A patent/KR101986392B1/ko active IP Right Grant
- 2012-06-25 EP EP12823703.9A patent/EP2744146A4/en not_active Withdrawn
- 2012-06-25 CN CN201280038070.5A patent/CN103718502B/zh active Active
- 2012-06-25 BR BR112014002854A patent/BR112014002854A2/pt not_active Application Discontinuation
- 2012-07-18 TW TW101125907A patent/TWI511517B/zh not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011254155A (ja) * | 2010-05-31 | 2011-12-15 | Sony Corp | 認証装置、認証方法、プログラム、及び署名生成装置 |
Non-Patent Citations (6)
Title |
---|
KOICHI SAKUMOTO ET AL.: "Provable Security of HFE and UOV Signature Schemes against Chosen- Message Attack", 2011 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY YOKOSHU CD-ROM, 25 January 2011 (2011-01-25), XP019170355 * |
KOICHI SAKUMOTO ET AL.: "Public-Key Identification Schemes based on Multivariate Quadratic Polynomials", 18 August 2011 (2011-08-18), XP019161037, Retrieved from the Internet <URL:http://www.iacr.org/cryptodb/archive/2011/CRYPTO/presentation/13-1-Sakumoto.pdf> [retrieved on 20120705] * |
KOICHI SAKUMOTO ET AL.: "Public-Key Identification Schemes Based on Multivariate Quadratic Polynomials", ADVANCES IN CRYPTOLOGY- CRYPTO 2011 31ST ANNUAL CRYPTOLOGY CONFERENCE, vol. 6841, 6 August 2011 (2011-08-06), SANTA BARBARA, CA, USA, pages 706 - 723, XP019161037 * |
MASAHIRO YAGISAWA: "Zero-Knowledge Interactive Proof Systems Based on Linear Indeterminate Equation", TRANSACTIONS OF INFORMATION PROCESSING SOCIETY OF JAPAN, vol. 35, no. 3, 15 March 1994 (1994-03-15), pages 359 - 363, XP008172538 * |
See also references of EP2744146A4 * |
YUICHI KOMANO ET AL.: "ASS-CC: Provably Secure Algebraic Surface Signature Scheme", 2010 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY YOKOSHU CD-ROM, 19 January 2010 (2010-01-19), XP008173860 * |
Also Published As
Publication number | Publication date |
---|---|
JP5790287B2 (ja) | 2015-10-07 |
MX338025B (es) | 2016-03-31 |
AU2012296044A1 (en) | 2014-01-30 |
MX2014001451A (es) | 2014-02-27 |
CA2839690A1 (en) | 2013-02-21 |
EP2744146A1 (en) | 2014-06-18 |
TWI511517B (zh) | 2015-12-01 |
CN103718502B (zh) | 2017-02-22 |
BR112014002854A2 (pt) | 2017-03-01 |
EP2744146A4 (en) | 2015-06-17 |
JP2013042295A (ja) | 2013-02-28 |
RU2603551C2 (ru) | 2016-11-27 |
US9178700B2 (en) | 2015-11-03 |
RU2014104084A (ru) | 2015-08-10 |
TW201308969A (zh) | 2013-02-16 |
CN103718502A (zh) | 2014-04-09 |
AU2012296044B2 (en) | 2016-02-25 |
KR101986392B1 (ko) | 2019-06-05 |
KR20140046455A (ko) | 2014-04-18 |
US20140153717A1 (en) | 2014-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5736816B2 (ja) | 認証装置、認証方法、プログラム、及び署名生成装置 | |
WO2013031414A1 (ja) | 署名検証装置、署名検証方法、プログラム、及び記録媒体 | |
WO2013031533A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP2013042315A (ja) | 情報処理装置、及び情報処理方法 | |
WO2013031555A1 (ja) | 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム | |
WO2013024629A1 (ja) | 情報処理装置、情報処理方法、プログラム、及び記録媒体 | |
JP5790289B2 (ja) | 情報処理装置、情報処理方法、プログラム、及び記録媒体 | |
WO2013024697A1 (ja) | 情報処理装置、署名提供方法、署名検証方法、プログラム、及び記録媒体 | |
JPWO2013129084A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
WO2013024627A1 (ja) | 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム | |
JP5790290B2 (ja) | 情報処理装置、情報処理方法、プログラム、及びプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
WO2013031420A1 (ja) | 情報処理装置、署名生成装置、署名検証装置、情報処理方法、署名生成方法、及び署名検証方法 | |
JP5790288B2 (ja) | 情報処理装置、及び情報処理方法 | |
WO2013024628A1 (ja) | 情報処理装置、及び情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12823703 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2839690 Country of ref document: CA |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14235240 Country of ref document: US |
|
ENP | Entry into the national phase |
Ref document number: 20147002640 Country of ref document: KR Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 2012296044 Country of ref document: AU Date of ref document: 20120625 Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 2014104084 Country of ref document: RU Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: MX/A/2014/001451 Country of ref document: MX |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
REG | Reference to national code |
Ref country code: BR Ref legal event code: B01A Ref document number: 112014002854 Country of ref document: BR |
|
ENP | Entry into the national phase |
Ref document number: 112014002854 Country of ref document: BR Kind code of ref document: A2 Effective date: 20140205 |