WO2013031414A1 - 署名検証装置、署名検証方法、プログラム、及び記録媒体 - Google Patents

署名検証装置、署名検証方法、プログラム、及び記録媒体 Download PDF

Info

Publication number
WO2013031414A1
WO2013031414A1 PCT/JP2012/068324 JP2012068324W WO2013031414A1 WO 2013031414 A1 WO2013031414 A1 WO 2013031414A1 JP 2012068324 W JP2012068324 W JP 2012068324W WO 2013031414 A1 WO2013031414 A1 WO 2013031414A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
signature
algorithm
signature verification
document
Prior art date
Application number
PCT/JP2012/068324
Other languages
English (en)
French (fr)
Inventor
紘一 作本
白井 太三
玄良 樋渡
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to US14/239,926 priority Critical patent/US9129122B2/en
Priority to CN201280040711.0A priority patent/CN103748832A/zh
Priority to RU2014106488/08A priority patent/RU2014106488A/ru
Priority to BR112014004191A priority patent/BR112014004191A2/pt
Priority to EP12828377.7A priority patent/EP2753018B1/en
Publication of WO2013031414A1 publication Critical patent/WO2013031414A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • H04L9/3252Cryptographic 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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes

Definitions

  • the present technology relates to a signature verification apparatus, a signature verification 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 reduces the signature verification of an efficient electronic signature scheme having high security by using multi-order multivariate simultaneous equations for which a means (trap door) to be solved efficiently is not known. It is intended to provide a new and improved signature verification device, a signature verification method, a program, and a recording medium that can be realized by a memory.
  • a signature acquisition unit for acquiring an electronic signature including a plurality of pieces of second information necessary to verify that it has been generated using the signature key s; and a plurality of pieces of second information included in the electronic signature
  • a signature verification unit that verifies the legitimacy of the document M by confirming whether the first information can be restored or not, and the set of multivariate polynomials F and the vector y are public keys.
  • the signature acquisition unit acquires the second information in a predetermined number, and the signature verification unit acquires the predetermined number.
  • a signature verification apparatus is provided, which sequentially restores the first information using the second information and erases the second information unnecessary for the restoration process when it is no longer necessary.
  • a set of multi-order multivariate polynomials F (f 1 ,..., F m ) defined on a ring K, a signature key s ⁇ K n , and a document M .
  • the document M, the set F of the multi-order multivariate polynomials, and the vector y (f 1 (s),..., F m (s)).
  • Acquiring an electronic signature including a plurality of second information necessary to verify that the information is generated using the signature key s; and a plurality of second information included in the electronic signature Verifying the legitimacy of the document M by confirming whether the first information can be restored using a set of multivariate polynomials F and the vector y are public keys.
  • the acquiring step a predetermined number of pieces of the second information are acquired, and in the verifying step: A signature verification method, wherein the first information is sequentially restored using the second information acquired by a predetermined number, and the second information unnecessary for the restoration process is deleted when it becomes unnecessary Provided.
  • a set of multi-order multivariate polynomials F (f 1 ,..., F m ) defined on a ring K, a signature key s ⁇ K n , and a document M .
  • the document M, the set F of the multi-order multivariate polynomials, and the vector y (f 1 (s),..., F m (s)).
  • the set F of the multivariate polynomials and the vector y are public keys, and the signature acquisition function acquires the second information each by a predetermined number, and the signature verification function acquires the predetermined information by the predetermined number.
  • a program is provided, which sequentially restores the first information using the information of (1) and erases the second information unnecessary for the restoration process when it is no longer necessary.
  • a set of multi-order multivariate polynomials F (f 1 ,..., F m ) defined on a ring K, a signature key s ⁇ K n , and a document M .
  • the document M, the set F of the multi-order multivariate polynomials, and the vector y (f 1 (s),..., F m (s)).
  • a recording medium which restores one information and erases the second information unnecessary for the restoration process when it is no longer necessary.
  • FIGS. 4 and 5 a configuration example of an algorithm related to the 3-pass public key authentication scheme will be described with reference to FIGS. 4 and 5.
  • an exemplary configuration of an algorithm related to the 5-pass public key authentication scheme will be described with reference to FIGS. 6 and 7.
  • FIGS. 8 and 9 a method of transforming an efficient algorithm related to a 3-pass and 5-pass public key authentication scheme into an algorithm of a digital signature scheme will be described.
  • 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.
  • a case where a pair of quadratic polynomials (f 1 (x),..., F m (x)) is used as part of the public key pk will be considered.
  • the quadratic polynomial f i (x) is expressed as the following equation (6).
  • a set of quadratic polynomials (f 1 (x),..., F m (x)) can be expressed as the following equation (7).
  • a 1 ,..., A m are n ⁇ n matrices.
  • b 1 ,..., B m are n ⁇ 1 vectors respectively.
  • the multivariate polynomial F can be expressed as the following Expression (8) and Expression (9). It can be easily confirmed from the following formula (10) that this expression holds.
  • G (x, y) corresponding to x is bilinear with respect to x and y.
  • G (x, y) may be called a bilinear term.
  • the sum of the multivariate polynomial F (x + r 0 ) and G (x) is expressed as the following equation (11).
  • 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
  • Process # 1 As shown in FIG. 4, first, 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.
  • a hybrid method combining a serial method and a parallel method is also conceivable.
  • an algorithm hereinafter, parallelization algorithm
  • 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 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. 6 is an explanatory diagram for describing a specific algorithm configuration related to the 5-pass scheme.
  • a case where a pair of quadratic polynomials (f 1 (x),..., F m (x)) is used as part of the public key pk will be considered.
  • the quadratic polynomial f i (x) is assumed to be expressed as the above equation (6).
  • the multivariate polynomial F 1 (x) used to mask the multivariate polynomial F (x + r 0 ) using two vectors t 0 nK n and e 0 ⁇ K m as in the algorithm related to the 3-pass scheme Is expressed as F 1 (x) G (x, t 0 ) + e 0 .
  • F 1 (x) G (x, t 0 ) + e 0 .
  • 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. 6, first, 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.
  • a hybrid method combining a serial method and a parallel method is also conceivable.
  • an algorithm hereinafter, parallelization algorithm
  • Process (1) The prover algorithm P randomly generates vectors r 0i , t 0i ⁇ K n and e 0i ⁇ K m .
  • 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.
  • an efficient algorithm according to the 3-pass scheme (see, eg, FIG. 5) is represented by three interactions and four steps # 1 to # 4.
  • 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-mentioned 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 ).
  • an efficient algorithm according to the 5-pass scheme is represented by 5 interactions and 6 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.
  • 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).
  • the signature verification algorithm Ver executes (Ch B1 ,..., Ch BN ) ⁇ H (Ch A1 ,..., Ch AN , d) is modified, the signature verification algorithm Ver is (Ch B1 ,..., Ch BN ) ⁇ H (Ch A1 ,..., Ch AN , d) are calculated.
  • Process (3) The signature verification algorithm Ver, Ch A1, ..., Ch AN , Ch B1, ..., Ch BN, Rsp 1, ..., t 11, e 11 with Rsp N, ..., t 1N, e 1N , C 01 , c 11 ,..., C 0 N and c 1 N are generated.
  • the signature verification algorithm Ver has executed the processing of signature verification after receiving the entire electronic signature.
  • the data size of the electronic signature is relatively large. Therefore, when performing authentication using a device having only a small memory capacity, such as RFID (Radio Frequency IDentification), it was necessary to pay attention to the free space of the memory, the memory usage rate during the authentication process, and the like.
  • RFID Radio Frequency IDentification
  • the hash function has a structure in which input is divided into blocks and processing is sequentially performed block by block.
  • the hash function has a structure as shown in FIG. Figure hash function shown is 10, Z blocks m 1 inputs M already padded, ..., separated into m Z, while incrementing the index j, sequentially, the initial block m j value IV or the intermediate value CV
  • the hash value is generated by acting on a predetermined function CF together with j . Therefore, when the intermediate value CV j is obtained, the previously used block becomes unnecessary. Therefore, we have devised a mechanism (hereinafter, memory reduction method) that effectively reduces the amount of memory required to execute the algorithm using this characteristic.
  • memory reduction method a mechanism for applying this mechanism to the above-described electronic signature method will be described.
  • the signature verification algorithm Ver (Normal mounting method: Fig. 11) Usually, as shown in FIG. 11, the signature verification algorithm Ver according to the above-described electronic signature method constructs an electronic signature (Cmt, Rsp 1 ,..., Rsp N ) at one time (S101). Next, the signature verification algorithm Ver executes (Ch 1 ,..., Ch N ) ⁇ -H (M, Cmt) (S 102). Next, the signature verification algorithm Ver executes (c 01 , c 11 , c 21 ,..., C 0 N , c 1 N , c 2 N ) Re Reproduce (Ch 1 ,..., Ch N ; Rsp 1 ,..., Rsp N ) (S103).
  • step S101 of FIG. 11 when the electronic signature is received at one time , the memory for holding (Rsp 1 ,..., Rsp N ) is complete until the process of step S103 is completed. It will be necessary. However, as can be seen from the algorithm configuration of FIG. 5, information other than (Ch i ; Rsp i ) is not used in the reproduction of (c 0i , c 1i , c 2i ) executed in step S103. Also, in view of the structure of the hash function shown in FIG. 10, it can be understood that the calculation of the hash function executed in step S104 can be divided and executed in block units. Therefore, the configuration of processing relating to signature verification is improved to a configuration as shown in FIG.
  • step S113 the signature verification algorithm Ver receives Rsp i (S113). Then, the signature verification algorithm Ver using Rsp i received, (c 0i, c 1i, c 2i) ⁇ Reproduce; executes (Ch i Rsp i) (S114 ). After executing the process of step S114, Ch i and Rsp i becomes unnecessary. Therefore, the signature verification algorithm Ver erases Ch i and Rsp i from the memory the process of step S114 after the execution.
  • the function H i is a function that outputs an intermediate value generated when c 0i , c 1i , c 2i are calculated inside the hash function H.
  • an appropriate input length correction such as adding a bit is performed as necessary.
  • the hash function H is expressed by an algorithm configured by the following processing (1) to processing (3).
  • tmp N is the final output (hash value) of the hash function H.
  • padding is added in the final process according to the specification of the hash function.
  • the signature verification algorithm Ver erases, from the memory, the information that has become unnecessary in the process of repeatedly executing the processing of steps S113 to S115. Therefore, the amount of memory required for signature verification can be minimized. As a result, the above-described signature verification can be performed even with a device having a small memory capacity.
  • the signature verification algorithm Ver (Normal mounting method: Fig. 13) Usually, as shown in FIG. 13, the signature verification algorithm Ver according to the above-described electronic signature method constructs an electronic signature (Cmt, d, Rsp 1 ,..., Rsp N ) at one time (S121). Next, the signature verification algorithm Ver executes (Ch A1 ,..., Ch AN ) ⁇ H (M, Cmt) (S122). Next, the signature verification algorithm Ver executes (Ch B1 ,..., Ch BN ) H H (M, C mt, Ch A1 ,..., Ch AN , d) (S123).
  • the signature verification algorithm Ver is (c 01 , c 11 ,..., C 0 N , c 1 N , d 11 , e 11 ,..., D 1 N , e 1 N ) ⁇ Reproduce (Ch A1 ,..., Ch AN , Ch B1 , ..., Ch BN ; Rsp 1 , ..., Rsp N ) are executed (S 124).
  • the signature verification algorithm Ver first receives only Cmt included in the electronic signature (S131). Next, the signature verification algorithm Ver executes (Ch A1 ,..., Ch AN ) ⁇ H (M, Cmt) (S132).
  • the signature verification algorithm Ver receives d (S133).
  • the signature verification algorithm Ver executes (Ch B1 ,..., Ch BN ) ⁇ -H (M, C mt, Ch A1 ,..., Ch AN , d) using the received d (S 134).
  • d becomes unnecessary. Therefore, the signature verification algorithm Ver erases d from the memory after executing the process of step S134.
  • step S135 the signature verification algorithm Ver receives Rsp i (S135). Then, the signature verification algorithm Ver using Rsp i received, executes (c 0i, c 1i, t 1i, e 1i) ⁇ Reproduce (Ch Ai, Ch Bi, Rsp i) (S136). After the process of step S136 is performed, Ch Ai , Ch Bi and Rsp i become unnecessary. Therefore, the signature verification algorithm Ver erases Ch Ai , Ch Bi and Rsp i from the memory after executing the process of step S136.
  • the signature verification algorithm Ver executes tmp i H H i (tmp i-1 ; c 0i , c 1i ) and tmp i ′ ⁇ H i (tmp i-1 ′; t 1i , e 1i ) (S 137) ).
  • the signature verification algorithm Ver erases, from the memory, information that has become unnecessary in the process of repeatedly executing the processing of steps S135 to S137. Therefore, the amount of memory required for signature verification can be minimized. As a result, the above-described signature verification can be performed even with a device having a small memory capacity.
  • extraction method # 1 (2-bit division) (FIG. 15)
  • M / 2 two-bit random numbers can be obtained by dividing the random number sequence in binary representation by two bits. For example, if “00” is associated with a ternary “0”, “01” with a ternary “1”, and “10” with a ternary “2”, the random number sequence of binary representation of 2-bit unit 3 You can get a random number sequence of base numbers. However, the 2-bit value "11" is excluded.
  • the extraction method # 1 from the number of 2 two types represented by binary 2 symbols, a method of extracting a number of 3 1 types represented by 3 binary one symbol. Therefore, the probability P 1 for which N or more ternary numbers can not be extracted is expressed by the following equation (13).
  • the above extraction method # 1 is a method of dividing a random number sequence of binary expression in the smallest dividing unit.
  • the above-mentioned extraction method # 2 is a method of dividing a random number sequence of binary expression in the maximum division unit (because it is considered as an M bit division).
  • the probability that N or more ternary numbers can not be extracted differs depending on the division length.
  • the probability P 3 where N or more ternary can not be extracted is as the following equation (15).
  • This method is a method of extracting a symbol string of ternary expression using the bit string not extracted in step S204 of FIG.
  • X 2k> 3 L become bit sequence pairs (e.g., when a set of bit strings representing the y 1 y 2 ... y N ' , each The bit string y i of 3 L is extracted as 3 L ⁇ y i ⁇ 2 k ) (S211).
  • bit string extracted in step S213 is output in ternary representation (S214), and the series of processing ends.
  • L 'ternary numbers with probability 3 L' / (2 k- 3 L ).
  • more ternary numbers can be extracted. That is, a ternary number can be extracted similarly from the bit string in which the bit string X becomes X ⁇ 3 L ′ in step S213.
  • the structuring method # 1 is a method in which, as shown in FIG. 20, the coefficients of the same kind of terms constituting the multivariate polynomial are put together as one data structure.
  • the coefficients a 1IJ to amIJ are collected as a data structure A
  • the coefficients b 1I to b mI are collected as a data structure B.
  • the algorithm for substituting the coefficients is as shown in (Example 2).
  • the L-bit AND operation (&) is performed 2 ⁇ N ⁇ (N ⁇ 1) / 2 times
  • the M-bit XOR operation ( ⁇ ) is performed N ⁇ (N ⁇ 1) / 2 times. It's over.
  • a IJ (1 to M) is generated at the timing of each loop.
  • coefficients may be used repeatedly.
  • [a IJ (1 to M) ] may be generated only once in L times, without generating each time.
  • [a IJ (1 to M) ] may be used while being rotated by one bit in M times of loop.
  • the coefficients may be structured, and intermediate results obtained by applying the coefficients of the multivariate polynomial may be held in a table.
  • the coefficient substitution algorithm is as shown in (Example 3).
  • Example 3 ⁇ (a (k (I-1) + k) (k (J-1) + 1) & x k & z 1 ) ⁇ ... ⁇ (a (k (I-1) + k) (k (k (I (1)) + k) J-1) + k) & x k & z k ) is stored.
  • the required memory amount is 22 k / k 2 times.
  • the structuring method # 2 is a method of expressing a multivariate polynomial in a quadratic form as shown in FIG. 21 and putting together a row or a column of a quadratic form as one data structure. In the example of FIG. 21, the data structure is organized in the row direction.
  • coefficients may be structured, and intermediate results obtained by applying coefficients of multivariate polynomials may be held in a table.
  • the coefficient substitution algorithm is as shown in (Example 5).
  • a I [x 1 ,..., X k ] (A (k (I-1) +1) & x 1 ) ⁇ .
  • ⁇ (A (k (I-1) + k) & x k ) is stored.
  • the required memory size is 2 k / k times.
  • the calculations of the multivariate polynomials F and G are repeatedly executed N times while updating the arguments in step # 1. Therefore, such calculation part is configured to repeatedly perform calculation using the same coefficient.
  • FIG. 22 Hardware Configuration Example
  • Each of the above algorithms can be executed, for example, using 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. 22 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.
  • this 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.
  • 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 efficient public key authentication scheme or an electronic signature scheme algorithm based on security on the difficulty of solving multi-order multivariate simultaneous equations .
  • a set of multi-order multivariate polynomials F (f 1 ,..., F m ) defined on a ring K, a signature key s ⁇ K n , and first information generated based on a document M, and the document
  • a plurality of pieces of second information necessary to verify that, and a signature acquisition unit for acquiring an electronic signature A signature verification unit that verifies the legitimacy of the document M by confirming whether the first information can be restored using a plurality of pieces of second information included in the electronic signature; Equipped with The set F of multivariate polynomials and the vector y are public keys,
  • the signature acquisition unit acquires a predetermined number of the second information
  • the signature verification unit sequentially restores the first information using the second information acquired by a predetermined number, and deletes the second
  • the first information is generated using a one-way function that divides and processes input information into blocks and
  • the signature verification unit generates an intermediate value output by the one-way function in the block unit processing using the second information acquired by the predetermined number, the intermediate value and the next acquired Repeatedly generating the next intermediate value using a predetermined number of the second information to restore the first information;
  • the signature verification device according to (1) above.
  • the predetermined number is one,
  • the size of the information included in the second information and used when generating the intermediate value from the one-way function is equal to or larger than the data size of the block unit.
  • a set of multi-order multivariate polynomials F (f 1 ,..., F m ) defined on a ring K, a signature key s ⁇ K n , and first information generated based on a document M, and the document
  • Including The set F of multivariate polynomials and the vector y are public keys,
  • the acquiring step a predetermined number of pieces of the second information are acquired
  • the verifying step the first information is sequentially restored using the second information acquired by a predetermined number, and the second information unnecessary for the restoration process is erased
  • a set of multi-order multivariate polynomials F (f 1 ,..., F m ) defined on a ring K, a signature key s ⁇ K n , and first information generated based on a document M, and the document
  • a plurality of second information items necessary to verify that, and a signature acquisition function of acquiring a digital signature A signature verification function of verifying the legitimacy of the document M by confirming whether or not the first information can be restored using a plurality of pieces of second information included in the electronic signature; Is a program to make computer
  • the set F of multivariate polynomials and the vector y are public keys,
  • the signature acquisition function acquires a predetermined number of the second information,
  • the signature verification function sequentially restores the first information using the second information acquired by
  • a set of multi-order multivariate polynomials F (f 1 ,..., F m ) defined on a ring K, a signature key s ⁇ K n , and first information generated based on a document M, and the document
  • a plurality of second information items necessary to verify that, and a signature acquisition function of acquiring a digital signature A signature verification function of verifying the legitimacy of the document M by confirming whether or not the first information can be restored using a plurality of pieces of second information included in the electronic signature;
  • the set F of multivariate polynomials and the vector y are public keys,
  • the signature acquisition function acquires a predetermined number of the second information,
  • the signature verification function sequential
  • Ver is an example of a signature acquisition unit and a signature verification unit.
  • the commitment function COM may be used instead of the hash function H.
  • 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.

Abstract

 多次多変数多項式の組F=(f,…,f)、署名鍵s、及び文書Mに基づいて生成された第1の情報と、前記文書M、前記多次多変数多項式の組F、及びベクトルyに基づいて前記第1の情報が前記署名鍵sを用いて生成されたことを検証するために必要な複数の第2の情報と、を含む電子署名を取得する署名取得部と、前記電子署名に含まれる複数の第2の情報を用いて前記第1の情報を復元可能か否かを確認することで前記文書Mの正当性を検証する署名検証部と、を備える署名検証装置が提供される。前記署名検証部は、所定数ずつ取得される前記第2の情報を用いて逐次的に前記第1の情報を復元し、復元処理に不要な前記第2の情報を不要になった段階で消去する。

Description

署名検証装置、署名検証方法、プログラム、及び記録媒体
 本技術は、署名検証装置、署名検証方法、プログラム、及び記録媒体に関する。
 情報処理技術や通信技術の急速な発展に伴い、公文書、私文書を問わず、文書の電子化が急速に進んでいる。これに伴い、多くの個人や企業は、電子文書の安全管理に大きな関心を寄せている。こうした関心の高まりを受け、各方面で電子文書の盗聴や偽造等のタンパリング行為に対する対抗策が盛んに研究されるようになってきた。電子文書の盗聴に対しては、例えば、電子文書を暗号化することにより安全性が確保される。また、電子文書の偽造に対しては、例えば、電子署名を利用することにより安全性が確保される。但し、利用する暗号や電子署名が高いタンパリング耐性を有していなければ、十分な安全性が保証されない。
 電子署名は、電子文書の作成者を特定するために利用される。そのため、電子署名は、電子文書の作成者しか生成できないようにすべきである。仮に、悪意ある第三者が同じ電子署名を生成できてしまうと、その第三者が電子文書の作成者に成りすますことができてしまう。つまり、悪意ある第三者により電子文書が偽造されてしまう。こうした偽造を防止するため、電子署名の安全性については様々な議論が交わされてきた。現在広く利用されている電子署名方式としては、例えば、RSA署名方式やDSA署名方式などが知られている。
 RSA署名方式は、「大きな合成数に対する素因数分解の困難性(以下、素因数分解問題)」を安全性の根拠とする。また、DSA署名方式は、「離散対数問題に対する解の導出の困難性」を安全性の根拠とする。これらの根拠は、古典的なコンピュータを利用して素因数分解問題や離散対数問題を効率的に解くアルゴリズムが存在しないことに起因する。つまり、上記の困難性は、古典的なコンピュータにおける計算量的な困難性を意味する。しかしながら、量子コンピュータを用いると、素因数分解問題や離散対数問題に対する解答が効率的に算出されてしまうと言われている。
 現在利用されている電子署名方式や公開鍵認証方式の多くは、RSA署名方式やDSA署名方式と同様、素因数分解問題や離散対数問題の困難性に安全性の根拠をおいている。そのため、こうした電子署名方式や公開鍵認証方式は、量子コンピュータが実用化された場合に、その安全性が確保されないことになる。そこで、素因数分解問題や離散対数問題など、量子コンピュータにより容易に解かれてしまう問題とは異なる問題に安全性の根拠をおく新たな電子署名方式及び公開鍵認証方式の実現が求められている。量子コンピュータにより容易に解くことが難しい問題としては、例えば、多変数多項式問題がある。
 多変数多項式問題に安全性の根拠をおく電子署名方式としては、例えば、MI(Matsumoto-Imai cryptography)、HFE(Hidden Field Equation cryptography)、OV(Oil-Vinegar signature scheme)、TTM(Tamed Transformation Method cryptography)に基づく方式が知られている。例えば、下記の非特許文献1、2には、HFEに基づく電子署名方式が開示されている。
Jacques Patarin Asymmetric Cryptography with a Hidden Monomial. CRYPTO 1996, pp.45-60. Patarin, J., Courtois, N., and Goubin, L. QUARTZ, 128-Bit Long Digital Signatures. In Naccache,D., Ed. Topics in Cryptology - CT-RSA 2001 (San Francisco, CA, USA, April 2001), vol. 2020 of Lecture Notes in Computer Science, Springer-Verlag., pp.282-297.
 上記の通り、多変数多項式問題は、量子コンピュータを用いても解くことが困難なNP困難問題と呼ばれる問題の一例である。通常、HFEなどに代表される多変数多項式問題を利用した公開鍵認証方式は、特殊なトラップドアが仕込まれた多次多変数連立方程式を利用している。例えば、x,…,xに関する多次多変数連立方程式F(x,…,x)=yと線形変換A及びBが用意され、線形変換A及びBが秘密に管理される。この場合、多次多変数連立方程式F、線形変換A及びBがトラップドアとなる。
 トラップドアF,A,Bを知っているエンティティは、x,…,xに関する方程式B(F(A(x,…,x)))=y'を解くことができる。一方、トラップドアF,A,Bを知らないエンティティは、x,…,xに関する方程式B(F(A(x,…,x)))=y'を解くことができない。この仕組みを利用することにより、多次多変数連立方程式の解答困難性を安全性の根拠とする公開鍵認証方式や電子署名方式が実現される。
 上記の通り、こうした公開鍵認証方式や電子署名方式を実現するには、B(F(A(x,…,x)))=yを満たすような特殊な多次多変数連立方程式を用意する必要がある。また、署名生成時に多次多変数連立方程式Fを解く必要がある。そのため、利用可能な多次多変数連立方程式Fは、比較的容易に解けるものに限られていた。すなわち、これまでの方式においては、比較的容易に解ける3つの関数(トラップドア)B、F、Aを合成した形の多次多変数連立方程式B(F(A(x,…,x)))=yしか用いることができず、十分な安全性を確保することが難しかった。
 本技術は、上記の事情に鑑みて、効率的に解く手段(トラップドア)が知られていない多次多変数連立方程式を用いて高い安全性を有する効率的な電子署名方式の署名検証を少ないメモリで実現することが可能な、新規かつ改良された署名検証装置、署名検証方法、プログラム、及び記録媒体の提供を意図して考案されたものである。
 本技術のある観点によれば、環K上で定義される多次多変数多項式の組F=(f,…,f)、署名鍵s∈K、及び文書Mに基づいて生成された第1の情報と、前記文書M、前記多次多変数多項式の組F、及びベクトルy=(f(s),…,f(s))に基づいて前記第1の情報が前記署名鍵sを用いて生成されたことを検証するために必要な複数の第2の情報と、を含む電子署名を取得する署名取得部と、前記電子署名に含まれる複数の第2の情報を用いて前記第1の情報を復元可能か否かを確認することで前記文書Mの正当性を検証する署名検証部と、を備え、前記多変数多項式の組F及び前記ベクトルyは公開鍵であり、前記署名取得部は、前記第2の情報を所定数ずつ取得し、前記署名検証部は、所定数ずつ取得される前記第2の情報を用いて逐次的に前記第1の情報を復元し、復元処理に不要な前記第2の情報を不要になった段階で消去する、署名検証装置が提供される。
 また、本技術の別の観点によれば、環K上で定義される多次多変数多項式の組F=(f,…,f)、署名鍵s∈K、及び文書Mに基づいて生成された第1の情報と、前記文書M、前記多次多変数多項式の組F、及びベクトルy=(f(s),…,f(s))に基づいて前記第1の情報が前記署名鍵sを用いて生成されたことを検証するために必要な複数の第2の情報と、を含む電子署名を取得するステップと、前記電子署名に含まれる複数の第2の情報を用いて前記第1の情報を復元可能か否かを確認することで前記文書Mの正当性を検証するステップと、を含み、前記多変数多項式の組F及び前記ベクトルyは公開鍵であり、前記取得するステップでは、前記第2の情報を所定数ずつ取得し、前記検証するステップでは、所定数ずつ取得される前記第2の情報を用いて逐次的に前記第1の情報を復元し、復元処理に不要な前記第2の情報を不要になった段階で消去する、署名検証方法が提供される。
 また、本技術の別の観点によれば、環K上で定義される多次多変数多項式の組F=(f,…,f)、署名鍵s∈K、及び文書Mに基づいて生成された第1の情報と、前記文書M、前記多次多変数多項式の組F、及びベクトルy=(f(s),…,f(s))に基づいて前記第1の情報が前記署名鍵sを用いて生成されたことを検証するために必要な複数の第2の情報と、を含む電子署名を取得する署名取得機能と、前記電子署名に含まれる複数の第2の情報を用いて前記第1の情報を復元可能か否かを確認することで前記文書Mの正当性を検証する署名検証機能と、をコンピュータに実現させるためのプログラムであり、
 前記多変数多項式の組F及び前記ベクトルyは公開鍵であり、前記署名取得機能は、前記第2の情報を所定数ずつ取得し、前記署名検証機能は、所定数ずつ取得される前記第2の情報を用いて逐次的に前記第1の情報を復元し、復元処理に不要な前記第2の情報を不要になった段階で消去する、プログラムが提供される。
 また、本技術の別の観点によれば、環K上で定義される多次多変数多項式の組F=(f,…,f)、署名鍵s∈K、及び文書Mに基づいて生成された第1の情報と、前記文書M、前記多次多変数多項式の組F、及びベクトルy=(f(s),…,f(s))に基づいて前記第1の情報が前記署名鍵sを用いて生成されたことを検証するために必要な複数の第2の情報と、を含む電子署名を取得する署名取得機能と、前記電子署名に含まれる複数の第2の情報を用いて前記第1の情報を復元可能か否かを確認することで前記文書Mの正当性を検証する署名検証機能と、をコンピュータに実現させるためのプログラムが記録された、コンピュータにより読み取り可能な記録媒体であり、前記多変数多項式の組F及び前記ベクトルyは公開鍵であり、前記署名取得機能は、前記第2の情報を所定数ずつ取得し、前記署名検証機能は、所定数ずつ取得される前記第2の情報を用いて逐次的に前記第1の情報を復元し、復元処理に不要な前記第2の情報を不要になった段階で消去する、記録媒体が提供される。
 以上説明したように本技術によれば、効率的に解く手段(トラップドア)が知られていない多次多変数連立方程式を用いて高い安全性を有する効率的な電子署名方式の署名検証を少ないメモリで実現することが可能になる。
公開鍵認証方式に係るアルゴリズムの構成について説明するための説明図である。 電子署名方式に係るアルゴリズムの構成について説明するための説明図である。 nパスの公開鍵認証方式に係るアルゴリズムの構成について説明するための説明図である。 3パスの公開鍵認証方式に係る効率的なアルゴリズムについて説明するための説明図である。 3パスの公開鍵認証方式に係る効率的なアルゴリズムの並列化について説明するための説明図である。 5パスの公開鍵認証方式に係る効率的なアルゴリズムの構成例について説明するための説明図である。 5パスの公開鍵認証方式に係る効率的なアルゴリズムの並列化について説明するための説明図である。 3パスの公開鍵認証方式に係る効率的なアルゴリズムを電子署名方式のアルゴリズムに変形する方法について説明するための説明図である。 5パスの公開鍵認証方式に係る効率的なアルゴリズムを電子署名方式のアルゴリズムに変形する方法について説明するための説明図である。 ハッシュ関数の構造例について説明するための説明図である。 3パス方式に基づく電子署名方式に係る署名検証方法(通常の実装方法)について説明するための説明図である。 3パス方式に基づく電子署名方式に係る署名検証方法(メモリ削減方法)について説明するための説明図である。 5パス方式に基づく電子署名方式に係る署名検証方法(通常の実装方法)について説明するための説明図である。 5パス方式に基づく電子署名方式に係る署名検証方法(メモリ削減方法)について説明するための説明図である。 2進乱数から3進乱数を抽出する方法(抽出方法#1)について説明するための説明図である。 2進乱数から3進乱数を抽出する方法(抽出方法#2)について説明するための説明図である。 2進乱数から3進乱数を抽出する方法(抽出方法#3)について説明するための説明図である。 2進乱数から3進乱数を抽出する方法(抽出方法#3)について説明するための説明図である。 2進乱数から3進乱数を抽出する方法(抽出方法#3)について説明するための説明図である。 多変数多項式の係数を効率的に代入するためのデータ構造化手法(構造化手法#1)について説明するための説明図である。 多変数多項式の係数を効率的に代入するためのデータ構造化手法(構造化手法#2)について説明するための説明図である。 本技術の各実施形態に係るアルゴリズムを実行することが可能な情報処理装置のハードウェア構成例について説明するための説明図である。
 以下に添付図面を参照しながら、本技術の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
 [説明の流れについて]
 ここで、以下に記載する本技術の実施形態に関する説明の流れについて簡単に述べる。まず、図1を参照しながら、公開鍵認証方式のアルゴリズム構成について説明する。次いで、図2を参照しながら、電子署名方式のアルゴリズム構成について説明する。次いで、図3を参照しながら、nパスの公開鍵認証方式について説明する。
 次いで、図4及び図5を参照しながら、3パスの公開鍵認証方式に係るアルゴリズムの構成例について説明する。次いで、図6及び図7を参照しながら、5パスの公開鍵認証方式に係るアルゴリズムの構成例について説明する。次いで、図8及び図9を参照しながら、3パス及び5パスの公開鍵認証方式に係る効率的なアルゴリズムを電子署名方式のアルゴリズムに変形する方法について説明する。
 次いで、図10~図14を参照しながら、本実施形態に係る電子署名方式のアルゴリズムを実行する際に署名検証に要するメモリ量を削減する方法について説明する。次いで、図15~図19を参照しながら、2進乱数から3進乱数を効率的に抽出する方法について説明する。次いで、図20及び図21を参照しながら、多変数多項式の係数を効率的に代入する方法について説明する。次いで、図22を参照しながら、本技術の実施形態に係る各アルゴリズムを実現することが可能な情報処理装置のハードウェア構成例について説明する。最後に、本実施形態の技術的思想について纏め、当該技術的思想から得られる作用効果について簡単に説明する。
 (説明項目)
 1:はじめに
   1-1:公開鍵認証方式のアルゴリズム
   1-2:電子署名方式のアルゴリズム
   1-3:nパスの公開鍵認証方式
 2:3パスの公開鍵認証方式に係るアルゴリズムの構成
   2-1:具体的なアルゴリズムの構成例
   2-2:並列化アルゴリズムの構成例
 3:5パスの公開鍵認証方式に係るアルゴリズムの構成
   3-1:具体的なアルゴリズムの構成例
   3-2:並列化アルゴリズムの構成例
 4:電子署名方式への変形
   4-1:3パスの公開鍵認証方式から電子署名方式への変形
   4-2:5パスの公開鍵認証方式から電子署名方式への変形
 5:署名検証に要するメモリ量の削減方法について
   5-1:ハッシュ関数の構造について
   5-2:3パス方式に基づく電子署名方式への適用例
   5-3:5パス方式に基づく電子署名方式への適用例
 6:2進数の乱数列から3進数の乱数列を抽出する方法について
   6-1:抽出方法#1(2ビット区切り)
   6-2:抽出方法#2(区切りなし)
   6-3:抽出方法#3(kビット区切り)
     6-3-1:基本構成
     6-3-2:追加抽出方法
 7:多変数多項式の係数を効率的に代入する方法について
   7-1:基本的な取り決め
   7-2:データの構造化
     7-2-1:構造化手法#1
     7-2-2:構造化手法#2
     7-2-3:構造化手法#3
 8:ハードウェア構成例
 9:まとめ
 <1:はじめに>
 本実施形態は、多次多変数連立方程式に対する求解問題の困難性に安全性の根拠をおく公開鍵認証方式及び電子署名方式に関する。但し、本実施形態は、HFE電子署名方式などの従来手法とは異なり、効率的に解く手段(トラップドア)を持たない多次多変数連立方程式を利用する公開鍵認証方式及び電子署名方式に関する。まず、公開鍵認証方式のアルゴリズム、電子署名方式のアルゴリズム、及びnパスの公開鍵認証方式について、その概要を簡単に説明する。
 [1-1:公開鍵認証方式のアルゴリズム]
 まず、図1を参照しながら、公開鍵認証方式のアルゴリズムについて概要を説明する。図1は、公開鍵認証方式のアルゴリズムについて概要を説明するための説明図である。
 公開鍵認証は、ある人(証明者)が、公開鍵pk及び秘密鍵skを利用して、他の人(検証者)に本人であることを納得させるために利用される。例えば、証明者Aの公開鍵pkは、検証者Bに公開される。一方、証明者Aの秘密鍵skは、証明者Aにより秘密に管理される。公開鍵認証の仕組みにおいては、公開鍵pkに対応する秘密鍵skを知る者が証明者A本人であるとみなされる。
 公開鍵認証の仕組みを利用して証明者Aが証明者A本人であることを検証者Bに証明するには、対話プロトコルを介して、証明者Aが公開鍵pkに対応する秘密鍵skを知っているという証拠を検証者Bに提示すればよい。そして、証明者Aが秘密鍵skを知っているという証拠が検証者Bに提示され、その証拠を検証者Bが確認し終えた場合、証明者Aの正当性(本人であること)が証明されたことになる。
 但し、公開鍵認証の仕組みには、安全性を担保するために以下の条件が求められる。
 1つ目の条件は、「対話プロトコルを実行した際に秘密鍵skを持たない偽証者により偽証が成立してしまう確率を限りなく小さくする」ことである。この1つ目の条件が成り立つことを「健全性」と呼ぶ。つまり、健全性とは、「秘密鍵skを持たない偽証者により、対話プロトコルの実行中に無視できない確率で偽証が成立することはないこと」と言い換えられる。2つ目の条件は、「対話プロトコルを実行したとしても、証明者Aが有する秘密鍵skの情報が検証者Bに一切漏れることがない」ことである。この2つ目の条件が成り立つことを「零知識性」と呼ぶ。
 安全に公開鍵認証を行うには、健全性及び零知識性を有する対話プロトコルを利用する必要がある。仮に、健全性及び零知識性を有しない対話プロトコルを用いて認証処理を行った場合には、偽証された可能性及び秘密鍵の情報が漏れてしまった可能性が否定できないため、処理自体が成功裡に完了しても証明者の正当性を証明したことにはならない。従って、対話プロトコルの健全性及び零知識性を如何に保証するかが重要になる。
 (モデル)
 公開鍵認証方式のモデルには、図1に示すように、証明者と検証者という2つのエンティティが存在する。証明者は、鍵生成アルゴリズムGenを用いて、証明者固有の秘密鍵skと公開鍵pkの組を生成する。次いで、証明者は、鍵生成アルゴリズムGenを用いて生成した秘密鍵skと公開鍵pkの組を利用して検証者と対話プロトコルを実行する。このとき、証明者は、証明者アルゴリズムPを利用して対話プロトコルを実行する。上記の通り、証明者は、証明者アルゴリズムPを利用し、対話プロトコルの中で秘密鍵skを保有している証拠を検証者に提示する。
 一方、検証者は、検証者アルゴリズムVを利用して対話プロトコルを実行し、証明者が公開している公開鍵に対応する秘密鍵を、その証明者が保有しているか否かを検証する。つまり、検証者は、証明者が公開鍵に対応する秘密鍵を保有しているか否かを検証するエンティティである。このように、公開鍵認証方式のモデルは、証明者と検証者という2つのエンティティ、及び、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVという3つのアルゴリズムにより構成される。
 なお、以下の説明において、「証明者」「検証者」という表現を用いるが、これらの表現はあくまでもエンティティを意味するものである。従って、鍵生成アルゴリズムGen、証明者アルゴリズムPを実行する主体は、「証明者」のエンティティに対応する情報処理装置である。同様に、検証者アルゴリズムVを実行する主体は、情報処理装置である。これら情報処理装置のハードウェア構成は、例えば、図10に示した通りである。つまり、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVは、ROM904、RAM906、記憶部920、リムーバブル記録媒体928などに記録されたプログラムに基づいてCPU902などにより実行される。
 (鍵生成アルゴリズムGen)
 鍵生成アルゴリズムGenは、証明者により利用される。鍵生成アルゴリズムGenは、証明者に固有の秘密鍵skと公開鍵pkとの組を生成するアルゴリズムである。鍵生成アルゴリズムGenにより生成された公開鍵pkは公開される。そして、公開された公開鍵pkは、検証者により利用される。一方、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者が秘密に管理する。そして、証明者により秘密に管理される秘密鍵skは、公開鍵pkに対応する秘密鍵skを証明者が保有していることを検証者に対して証明するために利用される。形式的に、鍵生成アルゴリズムGenは、セキュリティパラメータ1λ(λは0以上の整数)を入力とし、秘密鍵skと公開鍵pkを出力するアルゴリズムとして、下記の式(1)のように表現される。
Figure JPOXMLDOC01-appb-M000001
   (1)
 (証明者アルゴリズムP)
 証明者アルゴリズムPは、証明者により利用される。証明者アルゴリズムPは、公開鍵pkに対応する秘密鍵skを証明者が保有していることを検証者に対して証明するためのアルゴリズムである。つまり、証明者アルゴリズムPは、秘密鍵skと公開鍵pkとを入力とし、対話プロトコルを実行するアルゴリズムである。
 (検証者アルゴリズムV)
 検証者アルゴリズムVは、検証者により利用される。検証者アルゴリズムVは、対話プロトコルの中で、公開鍵pkに対応する秘密鍵skを証明者が保有しているか否かを検証するアルゴリズムである。検証者アルゴリズムVは、公開鍵pkを入力とし、対話プロトコルの実行結果に応じて0又は1(1bit)を出力するアルゴリズムである。なお、検証者は、検証者アルゴリズムVが0を出力した場合には証明者が不正なものであると判断し、1を出力した場合には証明者が正当なものであると判断する。形式的に、検証者アルゴリズムVは、下記の式(2)のように表現される。
Figure JPOXMLDOC01-appb-M000002
 …(2)
 上記の通り、意味のある公開鍵認証を実現するには、対話プロトコルが健全性及び零知識性という2つの条件を満たしている必要がある。しかし、証明者が秘密鍵skを保有していることを証明するためには、証明者が秘密鍵skに依存した手続きを実行し、その結果を検証者に通知した上で、その通知内容に基づく検証を検証者に実行させる必要がある。秘密鍵skに依存した手続きを実行するのは、健全性を担保するために必要である。一方で、秘密鍵skの情報が一切検証者に漏れないようにする必要がある。そのため、これらの要件を満たすように、上記の鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVを巧妙に設計する必要がある。
 以上、公開鍵認証方式のアルゴリズムについて、その概要を説明した。
 [1-2:電子署名方式のアルゴリズム]
 次に、図2を参照しながら、電子署名方式のアルゴリズムについて概要を説明する。図2は、電子署名方式のアルゴリズムについて概要を説明するための説明図である。
 紙文書とは異なり、ある電子化されたデータに対して押印したり署名を記載したりすることはできない。そのため、電子化されたデータの作成者を証明するためには、紙文書に押印したり署名を記載したりするのと同等の効果が得られる電子的な仕組みを必要とする。この仕組みが電子署名である。電子署名とは、データの作成者しか知らない署名データをデータに関連付けて受領者に提供し、その署名データを受領者側で検証する仕組みのことを言う。
 (モデル)
 電子署名方式のモデルには、図2に示すように、署名者及び検証者という2つのエンティティが存在する。そして、電子署名方式のモデルは、鍵生成アルゴリズムGen、署名生成アルゴリズムSig、署名検証アルゴリズムVerという3つのアルゴリズムにより構成される。
 署名者は、鍵生成アルゴリズムGenを利用して署名者固有の署名鍵skと検証鍵pkとの組を生成する。また、署名者は、署名生成アルゴリズムSigを利用して文書Mに付与する電子署名σを生成する。つまり、署名者は、文書Mに電子署名を付与するエンティティである。一方、検証者は、署名検証アルゴリズムVerを利用して文書Mに付与された電子署名σを検証する。つまり、検証者は、文書Mの作成者が署名者であるか否かを確認するために、電子署名σを検証するエンティティである。
 なお、以下の説明において、「署名者」「検証者」という表現を用いるが、これらの表現はあくまでもエンティティを意味するものである。従って、鍵生成アルゴリズムGen、署名生成アルゴリズムSigを実行する主体は、「署名者」のエンティティに対応する情報処理装置である。同様に、署名検証アルゴリズムVerを実行する主体は、情報処理装置である。これら情報処理装置のハードウェア構成は、例えば、図10に示した通りである。つまり、鍵生成アルゴリズムGen、署名生成アルゴリズムSig、署名検証アルゴリズムVerは、ROM904、RAM906、記憶部920、リムーバブル記録媒体928などに記録されたプログラムに基づいてCPU902などにより実行される。
 (鍵生成アルゴリズムGen)
 鍵生成アルゴリズムGenは、署名者により利用される。鍵生成アルゴリズムGenは、署名者固有の署名鍵skと検証鍵pkとの組を生成するアルゴリズムである。鍵生成アルゴリズムGenにより生成された検証鍵pkは公開される。一方、鍵生成アルゴリズムGenにより生成された署名鍵skは、署名者により秘密に管理される。そして、署名鍵skは、文書Mに付与される電子署名σの生成に利用される。例えば、鍵生成アルゴリズムGenは、セキュリティパラメータ1λ(λは0以上の整数)を入力とし、署名鍵sk及び公開鍵pkを出力する。この場合、鍵生成アルゴリズムGenは、形式的に、下記の式(3)のように表現することができる。
Figure JPOXMLDOC01-appb-M000003
 …(3)
 
 (署名生成アルゴリズムSig)
 署名生成アルゴリズムSigは、署名者により利用される。署名生成アルゴリズムSigは、文書Mに付与される電子署名σを生成するアルゴリズムである。署名生成アルゴリズムSigは、署名鍵skと文書Mとを入力とし、電子署名σを出力するアルゴリズムである。この署名生成アルゴリズムSigは、形式的に、下記の式(4)のように表現することができる。
Figure JPOXMLDOC01-appb-M000004
 …(4)
 
 (署名検証アルゴリズムVer)
 署名検証アルゴリズムVerは、検証者により利用される。署名検証アルゴリズムVerは、電子署名σが文書Mに対する正当な電子署名であるか否かを検証するアルゴリズムである。署名検証アルゴリズムVerは、署名者の検証鍵pk、文書M、電子署名σを入力とし、0又は1(1bit)を出力するアルゴリズムである。この署名検証アルゴリズムVerは、形式的に、下記の式(5)のように表現することができる。なお、検証者は、署名検証アルゴリズムVerが0を出力した場合(公開鍵pkが文書Mと電子署名σを拒否する場合)に電子署名σが不当であると判断し、1を出力した場合(公開鍵pkが文書Mと電子署名σを受理する場合)に電子署名σが正当であると判断する。
Figure JPOXMLDOC01-appb-M000005
 …(5)
 
 以上、電子署名方式のアルゴリズムについて、その概要を説明した。
 [1-3:nパスの公開鍵認証方式]
 次に、図3を参照しながら、nパスの公開鍵認証方式について説明する。図3は、nパスの公開鍵認証方式について説明するための説明図である。
 上記の通り、公開鍵認証方式は、対話プロトコルの中で、証明者が公開鍵pkに対応する秘密鍵skを保有していることを検証者に証明する認証方式である。また、対話プロトコルは、健全性及び零知識性という2つの条件を満たす必要がある。そのため、対話プロトコルの中では、図3に示すように、証明者及び検証者の双方がそれぞれ処理を実行しながらn回の情報交換を行う。
 nパスの公開鍵認証方式の場合、証明者アルゴリズムPを用いて証明者により処理(工程#1)が実行され、情報Tが検証者に送信される。次いで、検証者アルゴリズムVを用いて検証者により処理(工程#2)が実行され、情報Tが証明者に送信される。さらに、k=3~nについて処理の実行及び情報Tの送信が順次行われ、最後に処理(工程#n+1)が実行される。このように、情報がn回送受信される方式のことを「nパス」の公開鍵認証方式と呼ぶ。
 以上、nパスの公開鍵認証方式について説明した。
 <2:3パスの公開鍵認証方式に係るアルゴリズムの構成>
 以下、3パスの公開鍵認証方式に係るアルゴリズムについて説明する。なお、以下の説明において、3パスの公開鍵認証方式のことを「3パス方式」と呼ぶ場合がある。
 [2-1:具体的なアルゴリズムの構成例(図4)]
 まず、図4を参照しながら、3パス方式に係る具体的なアルゴリズムの構成例について紹介する。図4は、3パス方式に係る具体的なアルゴリズムの構成について説明するための説明図である。ここでは、公開鍵pkの一部として2次多項式の組(f(x),…,f(x))を利用する場合について考える。但し、2次多項式f(x)は、下記の式(6)のように表現されるものとする。また、ベクトル(x,…,x)をxと表記し、2次多項式の組(f(x),…,f(x))を多変数多項式F(x)と表記することにする。
Figure JPOXMLDOC01-appb-M000006
 …(6)
 また、2次多項式の組(f(x),…,f(x))は、下記の式(7)のように表現することができる。また、A,…,Aは、n×n行列である。さらに、b,…,bはそれぞれn×1ベクトルである。
Figure JPOXMLDOC01-appb-M000007
 …(7)
 
 この表現を用いると、多変数多項式Fは、下記の式(8)及び式(9)のように表現することができる。この表現が成り立つことは、下記の式(10)から容易に確認することができる。
Figure JPOXMLDOC01-appb-M000008
 …(8)
 
Figure JPOXMLDOC01-appb-I000009
 …(9)
 
Figure JPOXMLDOC01-appb-I000010
 …(10)
 
 このようにF(x+y)をxに依存する第1の部分と、yに依存する第2の部分と、x及びyの両方に依存する第3の部分とに分けたとき、第3の部分に対応する項G(x,y)は、x及びyについて双線形になる。以下、項G(x,y)を双線形項と呼ぶ場合がある。この性質を利用すると、効率的なアルゴリズムを構築することが可能になる。
 例えば、ベクトルt∈K、e∈Kを用いて、多変数多項式F(x+r)のマスクに利用する多変数多項式F(x)をF(x)=G(x,t)+eと表現する。この場合、多変数多項式F(x+r)とG(x)との和は、下記の式(11)のように表現される。ここで、t=r+t、e=F(r)+eとおけば、多変数多項式F(x)=F(x+r)+F(x)は、ベクトルt∈K、e∈Kにより表現することができる。そのため、F(x)=G(x,t)+eに設定すれば、K上のベクトル及びK上のベクトルを用いてF及びFを表現できるようになり、通信に必要なデータサイズの少ない効率的なアルゴリズムを実現することが可能になる。
Figure JPOXMLDOC01-appb-M000011
 …(11)
 
 なお、F(或いはF)からrに関する情報が一切漏れることはない。例えば、e及びt(或いはe及びt)を与えられても、e及びt(或いはe及びt)を知らない限り、rの情報を一切知ることはできない。従って、零知識性が担保される。以下、上記の論理に基づいて構築された3パス方式のアルゴリズムについて説明する。ここで説明する3パス方式のアルゴリズムは、以下のような鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。
 (鍵生成アルゴリズムGen)
 鍵生成アルゴリズムGenは、環K上で定義されるm本の多変数多項式f(x,…,x),…,f(x,…,x)、及びベクトルs=(s,…,s)∈Kを生成する。次に、鍵生成アルゴリズムGenは、y=(y,…,y)←(f(s),…,f(s))を計算する。そして、鍵生成アルゴリズムGenは、(f(x,…,x),…,f(x,…,x),y)を公開鍵pkに設定し、sを秘密鍵に設定する。
 (証明者アルゴリズムP、検証者アルゴリズムV)
 以下、図4を参照しながら、対話プロトコルの中で証明者アルゴリズムPが実行する処理及び検証者アルゴリズムVが実行する処理について説明する。この対話プロトコルの中で、証明者は、秘密鍵sの情報を検証者に一切漏らさずに、「自身がy=F(s)を満たすsを知っていること」を検証者に示す。一方、検証者は、証明者がy=F(s)を満たすsを知っているか否かを検証する。なお、公開鍵pkは、検証者に公開されているものとする。また、秘密鍵sは、証明者により秘密に管理されているものとする。以下、図4に示したフローチャートに沿って説明を進める。
 工程#1:
 図4に示すように、まず、証明者アルゴリズムPは、ランダムにベクトルr,t∈K及びe∈Kを生成する。次いで、証明者アルゴリズムPは、r←s-rを計算する。この計算は、秘密鍵sをベクトルrによりマスクする操作に相当する。さらに、証明者アルゴリズムPは、t←r-tを計算する。次いで、証明者アルゴリズムPは、e←F(r)-eを計算する。
 工程#1(続き):
 次いで、証明者アルゴリズムPは、c←H(r,G(t,r)+e)を計算する。次いで、証明者アルゴリズムPは、c←H(t,e)を計算する。次いで、証明者アルゴリズムPは、c←H(t,e)を計算する。工程#1で生成されたメッセージ(c,c,c)は、検証者アルゴリズムVに送られる。
 工程#2:
 メッセージ(c,c,c)を受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す3つの数値{0,1,2}の中から1つの数値を選択し、選択した数値を要求Chに設定する。この要求Chは証明者アルゴリズムPに送られる。
 工程#3:
 要求Chを受け取った証明者アルゴリズムPは、受け取った要求Chに応じて検証者アルゴリズムVに送る返答Rspを生成する。Ch=0の場合、証明者アルゴリズムPは、返答Rsp=(r,t,e)を生成する。Ch=1の場合、証明者アルゴリズムPは、返答Rsp=(r,t,e)を生成する。Ch=2の場合、証明者アルゴリズムPは、返答Rsp=(r,t,e)を生成する。工程#3で生成された返答Rspは、検証者アルゴリズムVに送られる。
 工程#4:
 返答Rspを受け取った検証者アルゴリズムVは、受け取った返答Rspを利用して以下の検証処理を実行する。
 Ch=0の場合、検証者アルゴリズムVは、c=H(r-t,F(r)-e)の等号が成り立つか否かを検証する。さらに、検証者アルゴリズムVは、c=H(t,e)の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
 Ch=1の場合、検証者アルゴリズムVは、c=H(r,G(t,r)+e)の等号が成り立つか否かを検証する。さらに、検証者アルゴリズムVは、c=H(t,e)の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
 Ch=2の場合、検証者アルゴリズムVは、c=H(r,y-F(r)-G(t,r)-e)の等号が成り立つか否かを検証する。さらに、検証者アルゴリズムVは、c=H(t,e)の等号が成り立つか否かを検証する。検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
 以上、3パス方式に係る効率的なアルゴリズムの構成例について説明した。
 [2-2:並列化アルゴリズムの構成例(図5)]
 次に、図5を参照しながら、図4に示した3パス方式のアルゴリズムを並列化する方法について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
 さて、上記の対話プロトコルを適用すれば、偽証が成功する確率を2/3以下に抑制することができる。従って、この対話プロトコルを2回実行すれば、偽証が成功する確率を(2/3)以下に抑制することができる。さらに、この対話プロトコルをN回実行すると、偽証が成功する確率は(2/3)となり、Nを十分に大きい数(例えば、N=140)にすれば、偽証が成功する確率は無視できる程度に小さくなる。
 対話プロトコルを複数回実行する方法としては、例えば、メッセージ、要求、返答のやり取りを逐次的に複数回繰り返す直列的な方法と、1回分のやり取りで複数回分のメッセージ、要求、返答のやり取りを行う並列的な方法とが考えられる。さらに、直列的な方法と並列的な方法とを組み合わせたハイブリッド型の方法も考えられる。ここでは、図5を参照しながら、3パス方式に係る上記の対話プロトコルを並列的に実行するアルゴリズム(以下、並列化アルゴリズム)について説明する。
 工程#1:
 図5に示すように、まず、証明者アルゴリズムPは、i=1~Nについて以下の処理(1)~処理(6)を実行する。
 処理(1):証明者アルゴリズムPは、ランダムにベクトルr0i,t0i∈K及びe0i∈Kを生成する。
 処理(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)を計算する。
 工程#1(続き)
 i=1~Nについて上記の処理(1)~処理(6)を実行した後、証明者アルゴリズムPは、Cmt←H(c01,c11,c21,…,c0N,c1N,c2N)を計算する。工程#1で生成されたハッシュ値Cmtは、検証者アルゴリズムVに送られる。このように、メッセージ(c01,c11,c21,…,c0N,c1N,c2N)をハッシュ値に変換してから検証者アルゴリズムVに送ることで、通信量を削減することが可能になる。
 工程#2:
 ハッシュ値Cmtを受け取った検証者アルゴリズムVは、i=1~Nのそれぞれについて、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、i=1~Nのそれぞれについて、検証パターンの種類を表す3つの数値{0,1,2}の中から1つの数値を選択し、選択した数値を要求Chに設定する。要求Ch,…,Chは、証明者アルゴリズムPに送られる。
 工程#3:
 要求Ch,…,Chを受け取った証明者アルゴリズムPは、受け取った要求Ch,…,Chのそれぞれ応じて検証者アルゴリズムVに送る返答Rsp,…,Rspを生成する。Ch=0の場合、証明者アルゴリズムPは、Rsp=(r0i,t1i,e1i,c0i)を生成する。Ch=1の場合、証明者アルゴリズムPは、Rsp=(r1i,t0i,e0i,c2i)を生成する。Ch=2の場合、証明者アルゴリズムPは、Rsp=(r1i,t1i,e1i,c1i)を生成する。
 工程#3で生成された返答Rsp,…,Rspは、検証者アルゴリズムVに送られる。
 工程#4:
 返答Rsp,…,Rspを受け取った検証者アルゴリズムVは、受け取った返答Rsp,…,Rspを利用して以下の処理(1)~処理(3)をi=1~Nについて実行する。但し、検証者アルゴリズムVは、Ch=0の場合に処理(1)を実行し、Ch=1の場合に処理(2)を実行し、Ch=2の場合に処理(3)を実行する。
 処理(1):Ch=0の場合、検証者アルゴリズムVは、Rspから(r0i,t1i,e1i,c0i)を取り出す。次いで、検証者アルゴリズムVは、c1i=H(r0i-t1i,F(r0i)-e1i)を計算する。さらに、検証者アルゴリズムVは、c2i=H(t1i,e1i)を計算する。そして、検証者アルゴリズムVは、(c0i,c1i,c2i)を保持する。
 処理(2):Ch=1の場合、検証者アルゴリズムVは、Rspから(r1i,t0i,e0i,c2i)を取り出す。次いで、検証者アルゴリズムVは、c0i=H(r1i,G(t0i,r1i)+e0i)を計算する。さらに、検証者アルゴリズムVは、c1i=H(t0i,e0i)を計算する。そして、検証者アルゴリズムVは、(c0i,c1i,c2i)を保持する。
 処理(3):Ch=2の場合、検証者アルゴリズムVは、Rspから(r1i,t1i,e1i,c1i)を取り出す。次いで、検証者アルゴリズムVは、c0i=H(r1i,y-F(r1i)-G(t1i,r1i)-e1i)を計算する。さらに、検証者アルゴリズムVは、c2i=H(t1i,e1i)を計算する。そして、検証者アルゴリズムVは、(c0i,c1i,c2i)を保持する。
 処理(1)~処理(3)をi=1~Nについて実行した後、検証者アルゴリズムVは、Cmt=H(c01,c11,c21,…,c0N,c1N,c2N)の等号が成り立つか否かを検証する。検証者アルゴリズムVは、この検証が成功した場合に認証成功を示す値1を出力し、検証に失敗した場合に認証失敗を示す値0を出力する。
 以上、3パス方式に係る効率的な並列化アルゴリズムの構成例について説明した。
 <3:5パスの公開鍵認証方式に係るアルゴリズムの構成>
 次に、5パスの公開鍵認証方式に係るアルゴリズムについて説明する。なお、以下の説明において、5パスの公開鍵認証方式のことを「5パス方式」と呼ぶ場合がある。
 3パス方式の場合には対話プロトコル1回当たりの偽証確率が2/3であったが、5パス方式の場合には対話プロトコル1回当たりの偽証確率が1/2+1/qとなる。但し、qは、利用する環の位数である。従って、環の位数が十分に大きい場合、5パス方式の方が1回当たりの偽証確率を低減することが可能になり、少ない対話プロトコルの実行回数で、偽証確率を十分に小さくすることができる。
 例えば、偽証確率を1/2以下にしたい場合、3パス方式においては、n/(log3-1)=1.701n回以上、対話プロトコルを実行する必要がある。一方、偽証確率を1/2以下にしたい場合、5パス方式においては、n/(1-log(1+1/q))回以上、対話プロトコルを実行する必要がある。従って、q=24にすれば、同じセキュリティレベルを実現するのに必要な通信量は、3パス方式に比べ、5パス方式の方が少なくなるのである。
 [3-1:具体的なアルゴリズムの構成例(図6)]
 まず、図6を参照しながら、5パス方式に係る具体的なアルゴリズムの構成例について紹介する。図6は、5パス方式に係る具体的なアルゴリズムの構成について説明するための説明図である。ここでは、公開鍵pkの一部として2次多項式の組(f(x),…,f(x))を利用する場合について考える。但し、2次多項式f(x)は、上記の式(6)のように表現されるものとする。また、ベクトル(x,…,x)をxと表記し、2次多項式の組(f(x),…,f(x))を多変数多項式F(x)と表記することにする。
 3パス方式に係るアルゴリズムと同様、2つのベクトルt∈K、e∈Kを用いて、多変数多項式F(x+r)をマスクするために用いた多変数多項式F(x)をF(x)=G(x、t)+eのように表現する。この表現を用いると、多変数多項式F(x+r)について、下記の式(12)で表現される関係が得られる。
Figure JPOXMLDOC01-appb-M000012
 …(12)
 
 そのため、t=Ch・r+t、e=Ch・F(r)+eとすれば、マスク後の多変数多項式F(x)=Ch・F(x+r)+F(x)も、2つのベクトルt∈K、e∈Kにより表現することができる。これらの理由から、F(x)=G(x,t)+eと設定すれば、K上のベクトル及びK上のベクトルを用いてF及びFを表現できるようになり、通信に必要なデータサイズが少ない効率的なアルゴリズムを実現することが可能になる。
 なお、F(或いはF)からrに関する情報が一切漏れることはない。例えば、e及びt(或いはe及びt)を与えられても、e及びt(或いはe及びt)を知らない限り、rの情報を一切知ることはできない。従って、零知識性は担保される。以下、上記の論理に基づいて構築された5パス方式のアルゴリズムについて説明する。ここで説明する5パス方式のアルゴリズムは、以下のような鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。
 (鍵生成アルゴリズムGen)
 鍵生成アルゴリズムGenは、環K上で定義される多変数多項式f(x,…,x),…,f(x,…,x)、及びベクトルs=(s,…,s)∈Kを生成する。次に、鍵生成アルゴリズムGenは、y=(y,…,y)←(f(s),…,f(s))を計算する。そして、鍵生成アルゴリズムGenは、(f,…,f,y)を公開鍵pkに設定し、sを秘密鍵に設定する。なお、以下では、ベクトル(x,…,x)をxと表記し、多変数多項式の組(f(x),…,f(x))をF(x)と表記する。
 (証明者アルゴリズムP、検証者アルゴリズムV)
 以下、図6を参照しながら、対話プロトコルの中で証明者アルゴリズムP及び検証者アルゴリズムVにより実行される処理について説明する。この対話プロトコルの中で、証明者は、秘密鍵sの情報を検証者に一切漏らさずに、「自身がy=F(s)を満たすsを知っていること」を検証者に示す。一方、検証者は、証明者がy=F(s)を満たすsを知っているか否かを検証する。なお、公開鍵pkは、検証者に公開されているものとする。また、秘密鍵sは、証明者により秘密に管理されているものとする。以下、図6に示したフローチャートに沿って説明を進める。
 工程#1:
 図6に示すように、まず、証明者アルゴリズムPは、ランダムにベクトルr∈K、t∈K、e∈Kを生成する。次いで、証明者アルゴリズムPは、r←s-rを計算する。この計算は、秘密鍵sをベクトルrによりマスクする操作に相当する。次いで、証明者アルゴリズムPは、ベクトルr,t,eのハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(r,t,e)を計算する。次いで、証明者アルゴリズムPは、G(t,r)+e及びrのハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(r,G(t,r)+e)を計算する。工程#1で生成されたメッセージ(c,c)は、検証者アルゴリズムVに送られる。
 工程#2:
 メッセージ(c,c)を受け取った検証者アルゴリズムVは、q通り存在する環Kの元からランダムに1つの数Chを選択し、選択した数Chを証明者アルゴリズムPに送る。
 工程#3:
 数Chを受け取った証明者アルゴリズムPは、t←Ch・r-tを計算する。さらに、証明者アルゴリズムPは、e←Ch・F(r)-eを計算する。そして、証明者アルゴリズムPは、t及びeを検証者アルゴリズムVに送る。
 工程#4:
 t及びeを受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す2つの数値{0,1}の中から1つの数値を選択し、選択した数値を要求Chに設定する。この要求Chは証明者アルゴリズムPに送られる。
 工程#5:
 要求Chを受け取った証明者アルゴリズムPは、受け取った要求Chに応じて検証者アルゴリズムVに送り返す返答Rspを生成する。Ch=0の場合、証明者アルゴリズムPは、返答Rsp=rを生成する。Ch=1の場合、証明者アルゴリズムPは、返答Rsp=rを生成する。工程#5で生成された返答Rspは、検証者アルゴリズムVに送られる。
 工程#6:
 返答Rspを受け取った検証者アルゴリズムVは、受け取った返答Rspを利用して以下の検証処理を実行する。
 Ch=0の場合、検証者アルゴリズムVは、r←Rspを実行する。そして、検証者アルゴリズムVは、c=H(r,Ch・r-t,Ch・F(r)-e)の等号が成り立つか否かを検証する。検証者アルゴリズムVは、この検証が成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
 Ch=1の場合、検証者アルゴリズムVは、r←Rspを実行する。そして、検証者アルゴリズムVは、c=H(r,Ch・(y-F(r))-G(t,r)-e)の等号が成り立つか否かを検証する。検証者アルゴリズムVは、この検証が成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
 以上、5パス方式に係る効率的なアルゴリズムの構成例について説明した。
 [3-2:並列化アルゴリズムの構成例(図7)]
 次に、図7を参照しながら、図6に示した5パス方式のアルゴリズムを並列化する方法について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
 先に述べた通り、5パス方式に係る対話プロトコルを適用すれば、偽証が成功する確率を(1/2+1/q)以下に抑制することができる。従って、この対話プロトコルを2回実行すれば、偽証が成功する確率を(1/2+1/q)以下に抑制することができる。さらに、この対話プロトコルをN回実行すると、偽証が成功する確率は(1/2+1/q)となり、Nを十分に大きい数(例えば、N=80)にすれば、偽証が成功する確率は無視できる程度に小さくなる。
 対話プロトコルを複数回実行する方法としては、例えば、メッセージ、要求、返答のやり取りを逐次的に複数回繰り返す直列的な方法と、1回分のやり取りで複数回分のメッセージ、要求、返答のやり取りを行う並列的な方法とが考えられる。さらに、直列的な方法と並列的な方法とを組み合わせたハイブリッド型の方法も考えられる。ここでは、5パス方式に係る上記の対話プロトコルを並列的に実行するアルゴリズム(以下、並列化アルゴリズム)について説明する。
 工程#1:
 図7に示すように、まず、証明者アルゴリズムPは、i=1~Nについて処理(1)~処理(4)を実行する。
 処理(1):証明者アルゴリズムPは、ランダムにベクトルr0i,t0i∈K及びe0i∈Kを生成する。
 処理(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に送られる。
 工程#2:
 ハッシュ値Cmtを受け取った検証者アルゴリズムVは、i=1~Nのそれぞれについて、q通り存在する環Kの元からランダムに1つの数ChAiを選択し、選択した数ChAi(i=1~N)を証明者アルゴリズムPに送る。
 工程#3:
 数ChAi(i=1~N)を受け取った証明者アルゴリズムPは、i=1~Nのそれぞれについて、t1i←ChAi・r0i-t0iを計算する。さらに、証明者アルゴリズムPは、i=1~Nのそれぞれについて、e1i←ChAi・F(r0i)-e0iを計算する。次いで、証明者アルゴリズムPは、ハッシュ値d←H(t11,e11,…,t1N,e1N)を計算する。そして、証明者アルゴリズムPは、ハッシュ値dを検証者アルゴリズムVに送る。
 工程#4:
 ハッシュ値dを受け取った検証者アルゴリズムVは、i=1~Nのそれぞれについて、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す2つの数値{0,1}の中から1つの数値を選択し、選択した数値を要求ChBiに設定する。要求ChBi(i=1~N)は証明者アルゴリズムPに送られる。
 工程#5:
 要求ChBi(i=1~N)を受け取った証明者アルゴリズムPは、i=1~Nについて、受け取った要求ChBiに応じて検証者アルゴリズムVに送り返す返答Rspを生成する。ChBi=0の場合、証明者アルゴリズムPは、返答Rsp=(r0i,t0i,e0i,c1i)を生成する。ChBi=1の場合、証明者アルゴリズムPは、返答Rsp=(r1i,t1i,e1i,c0i)を生成する。工程#5で生成された返答Rsp(i=1~N)は、検証者アルゴリズムVに送られる。
 工程#6:
 返答Rsp(i=1~N)を受け取った検証者アルゴリズムVは、受け取った返答Rsp(i=1~N)を利用して以下の処理(1)及び処理(2)を実行する。
 処理(1):ChBi=0の場合、検証者アルゴリズムVは、(r0i,t0i,e0i,c1i)←Rspを実行する。そして、検証者アルゴリズムVは、c0i=H(r0i,t0i,e0i)を計算する。さらに、検証者アルゴリズムVは、t1i←ChAi・r0i+t0i、及びe1i←ChAi・F(r0i)-e0iを計算する。そして、検証者アルゴリズムVは、(c0i,c1i,t1i,e1i)を保持する。
 処理(2):ChBi=1の場合、検証者アルゴリズムVは、(r1i,t1i,e1i,c0i)←Rspを実行する。そして、検証者アルゴリズムVは、c1i=H(r1i,ChAi・(y-F(r1i))-G(t1i,r1i)-e1i)を計算する。そして、検証者アルゴリズムVは、(c0i,c1i,t1i,e1i)を保持する。
 i=1~Nについて処理(1)及び処理(2)を実行した後、検証者アルゴリズムVは、Cmt=H(c01,c11,…,c0N,c1N)の等号が成り立つか否かを検証する。さらに、検証者アルゴリズムVは、d=H(t11,e11,…,t1N,e1N)の等号が成り立つか否かを検証する。そして、検証者アルゴリズムVは、これらの検証が全て成功した場合に認証成功を示す値1を出力し、検証に失敗があった場合に認証失敗を示す値0を出力する。
 以上、5パス方式に係る効率的な並列化アルゴリズムの構成例について説明した。
 <4:電子署名方式への変形>
 次に、上記の公開鍵認証方式を電子署名方式へと変形する方法を紹介する。
 公開鍵認証方式のモデルにおける証明者を電子署名方式における署名者に対応させると、証明者のみが検証者を納得させられるという点において、電子署名方式のモデルと近似していることが容易に理解されよう。こうした考えに基づき、上述した公開鍵認証方式を電子署名方式へと変形する方法について説明する。
 [4-1:3パスの公開鍵認証方式から電子署名方式への変形(図8)]
 まず、3パスの公開鍵認証方式から電子署名方式への変形について説明する。
 図8に示すように、3パス方式に係る効率的なアルゴリズム(例えば、図5を参照)は、3回の対話及び4つの工程#1~工程#4で表現される。
 工程#1は、i=1~Nについて、a=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i,c2i)を生成する処理(1)と、Cmt←H(c01,c11,c21,…,c0N,c1N,c2N)を計算する処理(2)とで構成される。工程#1で証明者アルゴリズムPにより生成されたCmtは、検証者アルゴリズムVへと送られる。
 工程#2は、Ch,…,Chを選択する処理で構成される。工程#2で検証者アルゴリズムVにより選択されたCh,…,Chは、証明者アルゴリズムPへと送られる。
 工程#3は、Ch,…,Ch及びa,…,aを用いてRsp,…,Rspを生成する処理で構成される。この処理をRsp←Select(Ch,a)と表現する。工程#3で証明者アルゴリズムPにより生成されたRsp,…,Rspは、検証者アルゴリズムVへと送られる。
 工程#4は、Ch,…,Ch及びRsp,…,Rspを用いてc01,c11,c21,…,c0N,c1N,c2Nを再生する処理(1)と、再生したc01,c11,c21,…,c0N,c1N,c2Nを用いてCmt=H(c01,c11,c21,…,c0N,c1N,c2N)を検証する処理(2)とで構成される。
 上記の工程#1~工程#4で表現される公開鍵認証方式のアルゴリズムは、図8に示すような署名生成アルゴリズムSig及び署名検証アルゴリズムVerに変形される。
 (署名生成アルゴリズムSig)
 まず、署名生成アルゴリズムSigの構成について述べる。署名生成アルゴリズムSigは、以下の処理(1)~処理(5)で構成される。
 処理(1):署名生成アルゴリズムSigは、a=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i,c2i)を生成する。
 処理(2):署名生成アルゴリズムSigは、Cmt←H(c01,c11,c21,…,c0N,c1N,c2N)を計算する。
 処理(3):署名生成アルゴリズムSigは、(Ch,…,Ch)←H(M,Cmt)を計算する。このMは、署名を付与する文書である。
 処理(4):署名生成アルゴリズムSigは、Rsp←Select(Chi,)を計算する。
 処理(5):署名生成アルゴリズムSigは、(Cmt,Rsp,…,Rsp)を署名に設定する。
 (署名検証アルゴリズムVer)
 次に、署名検証アルゴリズムVerの構成について述べる。署名検証アルゴリズムVerは、以下の処理(1)~処理(3)で構成される。
 処理(1):署名検証アルゴリズムVerは、(Ch,…,Ch)←H(M,Cmt)を計算する。
 処理(2):署名検証アルゴリズムVerは、Ch,…,Ch及びRsp,…,Rspを用いてc01,c11,c21,…,c0N,c1N,c2Nを生成する。
 処理(3):署名検証アルゴリズムVerは、再生したc01,c11,c21,…,c0N,c1N,c2Nを用いてCmt=H(c01,c11,c21,…,c0N,c1N,c2N)を検証する。
 以上説明したように、公開鍵認証方式のモデルにおける証明者を電子署名方式における署名者に対応させることで、公開鍵認証方式のアルゴリズムを電子署名方式のアルゴリズムへと変形することが可能になる。
 [4-2:5パスの公開鍵認証方式から電子署名方式への変形(図9)]
 次に、5パスの公開鍵認証方式から電子署名方式への変形について説明する。
 図9に示すように、5パス方式に係る効率的なアルゴリズム(例えば、図7を参照)は、5回の対話及び6つの工程#1~工程#6で表現される。
 工程#1は、i=1~Nについて、a=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i)を生成する処理(1)と、Cmt←H(c01,c11,…,c0N,c1N)を計算する処理(2)とで構成される。工程#1で証明者アルゴリズムPにより生成されたCmtは、検証者アルゴリズムVへと送られる。
 工程#2は、ChA1,…,ChANを選択する処理で構成される。工程#2で検証者アルゴリズムVにより選択されたChA1,…,ChANは、証明者アルゴリズムPへと送られる。
 工程#3は、i=1~Nについて、b=(t1i,e1i)を生成する処理、及びd=H(t11,e11,…,t1N,e1N)を生成する処理で構成される。工程#3で証明者アルゴリズムPにより生成されたdは、検証者アルゴリズムVへと送られる。
 工程#4は、ChB1,…,ChBNを選択する処理で構成される。工程#4で検証者アルゴリズムVにより選択されたChB1,…,ChBNは、証明者アルゴリズムPへと送られる。
 工程#5は、ChB1,…,ChBN,a,…,a,b,…,bを用いてRsp,…,Rspを生成する処理で構成される。この処理をRsp←Select(ChBi,a,b)と表現する。工程#5で証明者アルゴリズムPにより生成されたRsp,…,Rspは、検証者アルゴリズムVへと送られる。
 工程#6は、ChA1,…,ChAN,ChB1,…,ChBN,Rsp,…,Rspを用いてc01,c11,…,c0N,c1N,t11,e11,…,t1N,e1Nを再生する処理と、再生したc01,c11,…,c0N,c1Nを用いてCmt=H(c01,c11,…,c0N,c1N)を検証する処理と、d=H(t11,e11,…,t1N,e1N)を検証する処理とで構成される。
 上記の工程#1~工程#6で表現される公開鍵認証方式のアルゴリズムは、図9に示すような署名生成アルゴリズムSig及び署名検証アルゴリズムVerに変形される。
 (署名生成アルゴリズムSig)
 まず、署名生成アルゴリズムSigの構成について述べる。署名生成アルゴリズムSigは、以下の処理(1)~処理(7)で構成される。
 処理(1):署名生成アルゴリズムSigは、a=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i)を生成する。
 処理(2):署名生成アルゴリズムSigは、Cmt←H(c01,c11,…,c0N,c1N)を計算する。
 処理(3):署名生成アルゴリズムSigは、(ChA1,…,ChAN)←H(M,Cmt)を計算する。このMは、署名を付与する文書である。
 処理(4):署名生成アルゴリズムSigは、i=1~Nについて、b=(t1i,e1i)を生成する。さらに、署名生成アルゴリズムSigは、d=H(t11,e11,…,t1N,e1N)を算出する。
 処理(5):署名生成アルゴリズムSigは、(ChB1,…,ChBN)←H(M,Cmt,ChA1,…,ChAN,d)を計算する。なお、(ChB1,…,ChBN)←H(ChA1,…,ChAN,d)と変形してもよい。
 処理(6):署名生成アルゴリズムSigは、Rsp←Select(ChBi,a,b)を計算する。
 処理(7):署名生成アルゴリズムSigは、(Cmt,d,Rsp,…,Rsp)を電子署名に設定する。
 (署名検証アルゴリズムVer)
 次に、署名検証アルゴリズムVerの構成について述べる。署名検証アルゴリズムVerは、以下の処理(1)~処理(4)で構成される。
 処理(1):署名検証アルゴリズムVerは、(ChA1,…,ChAN)←H(M,Cmt)を計算する。
 処理(2):署名検証アルゴリズムVerは、(ChB1,…,ChBN)←H(M,Cmt,ChA1,…,ChAN,d)を計算する。なお、署名検証アルゴリズムVerが実行する処理(5)において、(ChB1,…,ChBN)←H(ChA1,…,ChAN,d)と変形した場合、署名検証アルゴリズムVerは、(ChB1,…,ChBN)←H(ChA1,…,ChAN,d)を計算する。
 処理(3):署名検証アルゴリズムVerは、ChA1,…,ChAN,ChB1,…,ChBN,Rsp,…,Rspを用いてt11,e11,…,t1N,e1N,c01,c11,…,c0N,c1Nを生成する。
 処理(4):署名検証アルゴリズムVerは、再生したc01,c11,…,c0N,c1Nを用いてCmt=H(c01,c11,…,c0N,c1N)及びd=H(t11,e11,…,t1N,e1N,)を検証する。
 以上説明したように、公開鍵認証方式のモデルにおける証明者を電子署名方式における署名者に対応させることで、公開鍵認証方式のアルゴリズムを電子署名方式のアルゴリズムへと変形することが可能になる。
 <5:署名検証に要するメモリ量の削減方法について>
 ところで、上述した電子署名方式のアルゴリズムにおいては、署名検証アルゴリズムVerが電子署名全体を受信した後で署名検証の処理を実行していた。しかし、上述した電子署名方式の場合、電子署名のデータサイズが比較的大きい。そのため、RFID(Radio Frequency IDentification)など、少ないメモリ容量しか持たないデバイスを用いて認証を行う場合には、メモリの空き容量や認証処理中のメモリ使用率などに気を配る必要があった。また、十分なメモリ容量を持たないデバイスを利用する場合、認証を行うことができない場合も想定される。そこで、本件発明者は、署名検証に要するメモリ量の削減方法を考案した。
 [5-1:ハッシュ関数の構造について(図10)]
 まず、本件発明者は、ハッシュ関数の構造に注目した。多くの場合、ハッシュ関数は、入力をブロック単位に区切り、ブロック単位で順次処理を進める構造を有している。例えば、SHA-1の場合、ハッシュ関数は、図10に示すような構造を有している。図10に示すハッシュ関数は、パディング済みの入力MをZ個のブロックm,…,mに区切り、インデックスjをインクリメントしながら、逐次的に、ブロックmを初期値IV又は中間値CVと共に所定の関数CFに作用させてハッシュ値を生成する。従って、中間値CVが得られた時点で、それ以前に利用したブロックは不要になる。そこで、この特性を利用し、アルゴリズムの実行に必要なメモリ量を効果的に削減する仕組み(以下、メモリ削減方法)を考案した。以下、この仕組みを上述した電子署名方式に適用する方法について説明する。
 [5-2:3パス方式に基づく電子署名方式への適用例(図12)]
 まず、図8に示した3パス方式に基づく電子署名方式のアルゴリズムに上記のメモリ削減方法を適用する方法について説明する。
 (通常の実装方法:図11)
 通常、上述した電子署名方式に係る署名検証アルゴリズムVerは、図11に示すように、電子署名を構成する(Cmt,Rsp,…,Rsp)を1度に受信する(S101)。次いで、署名検証アルゴリズムVerは、(Ch,…,Ch)←H(M,Cmt)を実行する(S102)。次いで、署名検証アルゴリズムVerは、(c01,c11,c21,…,c0N,c1N,c2N)←Reproduce(Ch,…,Ch;Rsp,…,Rsp)を実行する(S103)。次いで、署名検証アルゴリズムVerは、Cmt=H(c01,c11,c21,…,c0N,c1N,c2N)を検証し(S104)、署名検証に係る一連の処理を終了する。
 (メモリ削減方法:図12)
 通常の実装方法の場合、図11のステップS101のように、一度に電子署名を受信すると、ステップS103の処理が完了するまで(Rsp,…,Rsp)を保持しておくためのメモリが必要になる。しかし、図5のアルゴリズム構成から分かるように、ステップS103で実行する(c0i,c1i,c2i)の再生には(Ch;Rsp)以外の情報を利用しない。また、図10に示したハッシュ関数の構造を考慮すると、ステップS104において実行されるハッシュ関数の計算はブロック単位で分割して実行できることが分かる。そこで、署名検証に係る処理の構成を図12に示すような構成に改良する。
 図12に示す構成の場合、署名検証アルゴリズムVerは、まず、電子署名に含まれるCmtだけを受信する(S111)。次いで、署名検証アルゴリズムVerは、(Ch,…,Ch)←H(M,Cmt)を実行する(S112)。次いで、署名検証アルゴリズムVerは、i=1~Nについて、iをインクリメントさせながら逐次的にステップS113~S115の処理を実行する。
 ステップS113において、署名検証アルゴリズムVerは、Rspを受信する(S113)。次いで、署名検証アルゴリズムVerは、受信したRspを用いて、(c0i,c1i,c2i)←Reproduce(Ch;Rsp)を実行する(S114)。ステップS114の処理を実行した後、Ch及びRspは不要になる。そこで、署名検証アルゴリズムVerは、ステップS114の処理を実行後にCh及びRspをメモリから消去する。
 次いで、署名検証アルゴリズムVerは、tmp←H(tmpi-1;c0i,c1i,c2i)を実行する(S115)。なお、関数Hは、ハッシュ関数Hの内部でc0i,c1i,c2iまで計算した際に生成される中間値を出力する関数である。実際には選択したハッシュ関数に応じて関数Hの入力サイズは異なるため必要に応じて、ビットを付加するなどの適切な入力長の補正が行われる。関数Hを用いると、ハッシュ関数Hは、以下に示す処理(1)~処理(3)で構成されたアルゴリズムにより表現される。そして、tmpがハッシュ関数Hの最終的な出力(ハッシュ値)となる。実際にはハッシュ関数の仕様に応じて、最終処理においてパディングの追加処理を行う。
 処理(1):tmp←空文字列
 処理(2):
 for i=1 to N
   tmp←H(tmpi-1;c0i,c1i,c2i
 end for
 処理(3):output tmp
 i=1~Nについて、ステップS113~S115の処理を実行した後、署名検証アルゴリズムVerは、Cmt=tmpが成り立つか否かを検証し(S116)、署名検証に係る一連の処理を終了する。上記のように、署名検証アルゴリズムVerは、ステップS113~S115の処理を繰り返し実行する過程で不要になった情報をメモリかた消去する。そのため、署名検証に要するメモリ量は最小限に抑えられる。その結果、少ないメモリ容量しか持たないデバイスでも、上記の署名検証が可能になる。
 [5-3:5パス方式に基づく電子署名方式への適用例(図14)]
 次に、図9に示した5パス方式に基づく電子署名方式のアルゴリズムに上記のメモリ削減方法を適用する方法について説明する。
 (通常の実装方法:図13)
 通常、上述した電子署名方式に係る署名検証アルゴリズムVerは、図13に示すように、電子署名を構成する(Cmt,d,Rsp,…,Rsp)を1度に受信する(S121)。次いで、署名検証アルゴリズムVerは、(ChA1,…,ChAN)←H(M,Cmt)を実行する(S122)。次いで、署名検証アルゴリズムVerは、(ChB1,…,ChBN)←H(M,Cmt,ChA1,…,ChAN,d)を実行する(S123)。次いで、署名検証アルゴリズムVerは、(c01,c11,…,c0N,c1N,d11,e11,…,d1N,e1N)←Reproduce(ChA1,…,ChAN,ChB1,…,ChBN;Rsp,…,Rsp)を実行する(S124)。次いで、署名検証アルゴリズムVerは、Cmt=H(c01,c11,…,c0N,c1N)とd=H(d11,e11,…,d1N,e1N)を検証し(S125)、署名検証に係る一連の処理を終了する。
 (メモリ削減方法:図14)
 図13のステップS121のように、一度に電子署名を受信すると、ステップS124の処理が完了するまで(Rsp,…,Rsp)を保持しておくためのメモリが必要になる。しかしながら、図7のアルゴリズム構成から分かるように、ステップS124で実行する(c0i,c1i,d1i,e1i)の再生には(ChAi,ChBi;Rsp)以外の情報を利用しない。また、図10に示したハッシュ関数の構造を考慮すると、ステップS125において実行されるハッシュ関数の計算はブロック単位で分割して実行できることが分かる。そこで、署名検証に係る処理の構成を図14に示すような構成に改良する。
 図14に示す構成の場合、署名検証アルゴリズムVerは、まず、電子署名に含まれるCmtだけを受信する(S131)。次いで、署名検証アルゴリズムVerは、(ChA1,…,ChAN)←H(M,Cmt)を実行する(S132)。
 次いで、署名検証アルゴリズムVerは、dを受信する(S133)。次いで、署名検証アルゴリズムVerは、受信したdを用いて、(ChB1,…,ChBN)←H(M,Cmt,ChA1,…,ChAN,d)を実行する(S134)。ステップS134の処理を実行した後、dは不要になる。そこで、署名検証アルゴリズムVerは、ステップS134の処理を実行後にdをメモリから消去する。次いで、署名検証アルゴリズムVerは、i=1~Nについて、iをインクリメントさせながら逐次的にステップS135~S137の処理を実行する。
 ステップS135において、署名検証アルゴリズムVerは、Rspを受信する(S135)。次いで、署名検証アルゴリズムVerは、受信したRspを用いて、(c0i,c1i,t1i,e1i)←Reproduce(ChAi,ChBi,Rsp)を実行する(S136)。ステップS136の処理を実行した後、ChAi、ChBi及びRspは不要になる。そこで、署名検証アルゴリズムVerは、ステップS136の処理を実行後にChAi、ChBi及びRspをメモリから消去する。
 次いで、署名検証アルゴリズムVerは、tmp←H(tmpi-1;c0i,c1i)とtmp'←H(tmpi-1';t1i,e1i)を実行する(S137)。i=1~Nについて、ステップS135~S137の処理を実行した後、署名検証アルゴリズムVerは、Cmt=tmpとd=tmp'が成り立つか否かを検証し(S138)、署名検証に係る一連の処理を終了する。上記のように、署名検証アルゴリズムVerは、ステップS135~S137の処理を繰り返し実行する過程で不要になった情報をメモリから消去する。そのため、署名検証に要するメモリ量は最小限に抑えられる。その結果、少ないメモリ容量しか持たないデバイスでも、上記の署名検証が可能になる。
 以上、署名検証に要するメモリ量の削減方法について説明した。
 <6:2進数の乱数列から3進数の乱数列を抽出する方法について>
 ところで、3パス方式に基づく公開鍵認証方式のアルゴリズムにおいて、3進数の一様乱数をN個以上生成する場面が存在する。しかし、3進数の一様乱数を生成する優れた乱数生成器は一般的ではない。そのため、2進数の一様乱数を生成する優れた乱数生成器を用いて3進数の一様乱数を生成する方法を考える必要がある。そこで、本件発明者は、2進数の一様乱数から3進数の一様乱数を効率的に生成する方法を考案した。以下、この方法について詳細に説明する。なお、以下の説明において、l進表現(lは2又は3)で表された1つの数を1シンボルと数えることにする。
 [6-1:抽出方法#1(2ビット区切り)(図15)]
 まず、図15を参照しながら、Mビットの2進数を2ビットずつ区切って3進数を抽出する方法(以下、抽出方法#1)を紹介する。図15に示すように、2進表現の乱数列を2ビットずつ区切ると、M/2個の2ビットの乱数が得られる。例えば、「00」を3進数の「0」、「01」を3進数の「1」、「10」を3進数の「2」に対応付けると、2ビット単位の2進表現の乱数列から3進数の乱数列を得ることができる。但し、2ビットの値「11」は除外する。つまり、抽出方法#1は、2進数2シンボルで表現される2通りの数の中から、3進数1シンボルで表現される3通りの数を抽出する方法である。従って、N個以上の3進数が抽出できない確率Pは、下記の式(13)のようになる。
Figure JPOXMLDOC01-appb-M000013
 …(13)
 
 [6-2:抽出方法#2(区切りなし)(図16)]
 次に、図16を参照しながら、2進数Mシンボルの乱数を区切らずに利用して3進数Lシンボルの乱数を抽出する方法(以下、抽出方法#2)を紹介する。但し、Lは、3≦2となる最大の整数である。2進数Mシンボルで表現可能な数は、2通り存在する。一方、3進数Lシンボルで表現可能な数は、3通りしか存在しない。そのため、2進数Mシンボルで表現される2通りの数のうち、2-3通りの数は、3進表現の乱数として利用されない。従って、N個以上の3進数が抽出できない確率Pは、下記の式(14)のようになる。
Figure JPOXMLDOC01-appb-M000014
 …(14)
 
 [6-3:抽出方法#3(kビット区切り)(図17)]
 上記の抽出方法#1は、最小の区切り単位で2進表現の乱数列を区切る方法である。一方、上記の抽出方法#2は、(Mビット区切りと考えられるため)最大の区切り単位で2進表現の乱数列を区切る方法である。上記の式(13)及び式(14)から分かるように、区切る長さに応じて、N個以上の3進数が抽出できない確率は異なる。因みに、図17に示すように、kビット単位で2進Mシンボルの乱数列を区切った場合、N個以上の3進数が抽出できない確率Pは、下記の式(15)のようになる。
Figure JPOXMLDOC01-appb-M000015
 …(15)
 
 N個以上の3進数が抽出できない確率Pを最小化することができれば、最も効率よく3進表現の乱数列を抽出できることになる。例えば、M=512、N=140の場合、k=8のときに確率Pが最小となる。
 (6-3-1:基本構成(図18))
 ここで、図18を参照しながら、2進Mシンボルの乱数列から3進Lシンボルの乱数列を抽出する処理の流れについて説明する。図18に示すように、まず、2進Mシンボルの乱数列が生成される(S201)。次いで、2進Mシンボルの乱数列が、kビット単位に区切られる(S202)。次いで、kビット単位で区切られたビット列X2kのうち、X2k≦3となるビット列が抽出される(S203)。次いで、抽出されたビット列が、3進数表現で出力され(S204)、一連の処理が終了する。
 (6-3-2:追加抽出方法(図19))
 上記の式(15)で表現される確率Pが最小となる区切りの長さkを算出し、図18に示したアルゴリズムを実行することにより、2進表現の乱数列から3進表現の乱数列を効率的に抽出することが可能になる。しかし、本件発明者は、図18のステップS204においてX2k>3となるビット列が利用されない点に注目し、3進表現の乱数列をより効率的に抽出する方法を考案した。以下、この方法について、図19を参照しながら説明する。
 この方法は、図18のステップS204で抽出されなかったビット列を利用して、3進表現のシンボル列を抽出する方法である。図19に示すように、まず、図18のステップS204で抽出されなかった、X2k>3となるビット列の組(例えば、ビット列の組をy…yN'と表現すると、個々のビット列yは3≦y<2)が抽出される(S211)。次いで、抽出したビット列yからそれぞれ3が減算され、新たなビット列の組(例えば、新たなビット列の組をz…zN'と表現すると、個々のビット列z=y-3は0≦z<2-3)が算出される(S212)。
 次いで、新たなビット列の組から、ビット列XがX<3L'となるものが抽出される(S213)。但し、L'は、3L'≦2-3となる最大の整数である。次いで、ステップS213で抽出されたビット列が3進表現で出力され(S214)、一連の処理が終了する。このアルゴリズムを適用することにより、確率3L'/(2-3)で新たにL'個の3進数を抽出することが可能になる。なお、この方法を再帰的に用いることで、さらに多くの3進数を抽出することができる。つまり、ステップS213でビット列XがX≧3L'となったビット列から同様にして3進数を抽出することができる。
 以上、2進数の一様乱数から3進数の一様乱数を効率的に生成する方法について説明した。
 <7:多変数多項式の係数を効率的に代入する方法について>
 さて、これまでは多変数多項式を証明者(又は署名者)と検証者との間で共有する方法について具体的に明示してこなかった。多変数多項式を共有する方法としては、多変数多項式の係数(乱数)を生成する際に用いるシードを両者で共有する方法が考えられる。しかしながら、共有しているシードを利用して生成した乱数を係数に当てはめる順序を両者で共有しない限り、多変数多項式を共有したことにはならない。
 [7-1:基本的な取り決め]
 そこで、証明者(又は署名者)と検証者との間で、共有しているシードを用いて生成した乱数列を、どの順序で多変数多項式に当てはめるかについて基本的な取り決めを行う。そして、多変数多項式を利用する際に、この基本的な取り決めに従って乱数列を多変数多項式に当てはめる。このような方法を用いれば、証明者(又は署名者)と検証者との間で多変数多項式を共有したことになる。
 [7-2:データの構造化]
 但し、多変数多項式を構成する係数の数は膨大である。1つの係数が1ビット単位で表現されている場合、多変数多項式を表現するのに最低でも数万ビット以上のデータが必要になる。そのため、数を多変数多項式の係数に代入する処理の負荷は非常に高い。そこで、本件発明者は、多変数多項式の係数を所定の単位で構造化し、係数への代入処理を効率化する手法(構造化手法#1及び#2)を考案した。さらに、本件発明者は、同じ多変数多項式の係数に対して複数回の代入処理を実行する場合に、その処理効率を向上させる手法(構造化手法#3)を考案した。以下、これらの手法について詳細に説明する。
 (7-2-1:構造化手法#1(図20))
 まず、構造化手法#1について説明する。構造化手法#1は、図20に示すように、多変数多項式を構成する同じ種類の項の係数を1つのデータ構造として纏める手法である。図20の例では、係数a1IJ~amIJがデータ構造Aとして纏められ、係数b1I~bmIがデータ構造Bとして纏められている。
 構造化手法#1を適用しない場合、m本のn変数多項式に対する係数の代入は、次のようなアルゴリズム(例1)により行われる。例1の場合、1ビットのAND演算(&)を2×N×(N-1)×M/2回実行する必要がある。さらに、1ビットのXOR演算(^)をN×(N-1)×M/2回実行する必要がある。
 (例1)
 for L=1 to M
  for I=1 to N
   for J=I to N
    [fのLビット目]^=[aIJL]&[xのIビット目]&[xのJビット目];
   end for
  end for
 end for
 output f;
 一方、図20に示すように係数を構造化し、生成した乱数を多変数多項式の係数として一部ずつ逐次適用していく場合、係数の代入アルゴリズムは(例2)のようになる。例2の場合、LビットのAND演算(&)を2×N×(N-1)/2回、MビットのXOR演算(^)をN×(N-1)/2回実行するだけで済む。なお、aIJ(1~M)は、それぞれループのタイミングで生成される。また、係数を使い回してもよい。例えば、N(N-1)/2回のループを実行する際、[aIJ(1~M)]を毎回生成せず、L回に1回だけ生成するようにしてもよい。また、M回のループ中、[aIJ(1~M)]を1ビットずつローテーションしながら利用してもよい。
 (例2)
 for I=1 to N
  for J=I to N
    [fの1~Mビット目]^=[aIJ(1~M)]&[xのIビット目]&[xのJビット目];
   end for
  end for
 output f;
 また、図20に示すように係数を構造化し、多変数多項式の係数を適用した中間の結果をテーブルに保持するようにしてもよい。この場合、係数の代入アルゴリズムは(例3)のようになる。なお、配列aIJ[0][0]~aIJ[2-1][2-1]には、それぞれ、aIJ[x,…,x][z,…,z]=(a(k(I-1)+1)(k(J-1)+1)&x&z)^…^(a(k(I-1)+1)(k(J-1)+k)&x&z)^…^(a(k(I-1)+k)(k(J-1)+1)&x&z)^…^(a(k(I-1)+k)(k(J-1)+k)&x&z)が格納されている。例3の場合、LビットのXOR演算(^)を(N/k)(N/k-1)/2回実行するだけで済む。但し、(例2)のアルゴリズムに比べると、必要なメモリ量は、22k/k倍となる。
 例えば、k=1のとき、LビットXOR演算が120*119/2=7140回、必要なメモリ量が(例2)の2=4倍、ループ回数は変化なしとなる。また、k=2のとき、LビットXOR演算が60*59/2=1770回、必要なメモリ量が2/4=4倍、ループ回数が1/4となる。k=4のとき、LビットXOR演算が30*29/2=435回、必要なメモリ量が2/4=16倍、ループ回数が1/16.4となる。k=6のとき、LビットXOR演算が20*19/2=190回、必要なメモリ量が212/6=114倍、ループ回数が1/37.6となる。k=8のとき、LビットXOR演算が15*14/2=135回、必要なメモリが216/8=1024倍、ループ回数が1/52.9となる。
 (例3)
 for I=1 to N/k
  for J=I to N/k
   [fの1~Mビット目]^=aIJ(1~M)[xのk(I-1)+1~kビット目][xのk(J-1)+1~kビット目];
   end for
  end for
 output f;
 以上、構造化手法#1に係る具体的な係数の代入アルゴリズムについて説明した。かかる構成により、アルゴリズムを実行する際に処理の高速化が期待できる。
 (7-2-2:構造化手法#2(図21))
 次に、構造化手法#2について説明する。構造化手法#2は、図21に示すように、多変数多項式を2次形式で表現し、2次形式の行又は列を1つのデータ構造として纏める手法である。図21の例では、行方向にデータ構造が纏められている。
 図21に示すように係数を構造化し、生成した乱数を多変数多項式の係数として一部ずつ逐次適用していく場合、係数の代入アルゴリズムは(例4)のようになる。例4の場合、NビットのAND演算(&)を(N+1)×M回、NビットのXOR演算(^)をN×M回、関数Qの演算をM回実行するだけで済む。
 (例4)
 for I=1 to N
  T^=A&[xのIビット目];
 end for
 T&=x;
 output Q(T);
 Q(z){
  z=z^(z>>1);
  z=z^(z>>2);
  z=z^(z>>4);
  z=z^(z>>8);
  ・・・
  z=z^(z>>2Log(N));
  return z&1;
 }
 また、図21に示すように係数を構造化し、多変数多項式の係数を適用した中間の結果をテーブルに保持するようにしてもよい。この場合、係数の代入アルゴリズムは(例5)のようになる。なお、配列A[0]~A[2-1]には、それぞれ、A[x,…,x]=(A(k(I-1)+1)&x)^…^(A(k(I-1)+k)&x)が格納されている。例5の場合、NビットのXOR演算(^)を(N/k)×M、Nビットの関数Qの演算をM回実行するだけで済む。但し、(例4)のアルゴリズムに比べると、必要なメモリ量は、2/k倍となる。
 例えば、k=1のとき、NビットXOR演算が120回、必要なメモリ量が(例4)の2倍、ループ回数は変化なしとなる。また、k=4のとき、NビットXOR演算が30回、必要なメモリ量が2/4=4倍、ループ回数が1/4となる。k=8のとき、NビットXOR演算が15回、必要なメモリが2/8=32倍、ループ回数が1/8となる。k=16のとき、NビットXOR演算が8回、必要なメモリが216/16=4096倍、ループ回数が1/15となる。
 (例5)
 for I=1 to N/k
  T^=A[xのk(I-1)+1~k(I-1)+kビット目];
 end for
 T&=x;
 output Q(T);
 以上、構造化手法#2に係る具体的な係数の代入アルゴリズムについて説明した。かかる構成により、アルゴリズムを実行する際に処理の高速化が期待できる。
 (7-2-3:構造化手法#3)
 次に、構造化手法#3について説明する。構造化手法#3は、同じ多変数多項式にN回(N≧2)代入処理を行なう場合に、乱数から多項式をN回生成して代入処理を行うのではなく、「係数を一部生成し、その部分に関するN回分の処理を行なう」部分を単位とする逐次的な処理をN回分並列して行なうという手法である。この手法を適用すると、乱数生成のコストが無視できない場合にN回分の処理全体でのスループットが改善される。
 例えば、図5に示したアルゴリズムでは、工程#1において引数を更新しながら多変数多項式F及びGの計算をN回繰り返し実行している。そこで、このような計算部分について、同じ係数を利用して繰り返し演算を行うように構成する。上記(例2)のアルゴリズムを用いて多変数多項式F(r0i)(i=1~N)を計算する場合、一度生成した[aIJL]について、N個のr0iを全て適用した後で、次の[aIJL]に関する処理を実行するように構成する。このように構成すると、同じ係数[aIJL]をN回生成せずに済むようになる。
 以上、構造化手法#3に係る具体的な係数の代入アルゴリズムについて説明した。かかる構成により、N回分の処理におけるトータルでのスループットが改善される。
 <8:ハードウェア構成例(図22)>
 上記の各アルゴリズムは、例えば、図22に示す情報処理装置のハードウェア構成を用いて実行することが可能である。つまり、当該各アルゴリズムの処理は、コンピュータプログラムを用いて図22に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、PHS、PDA等の携帯情報端末、ゲーム機、接触式又は非接触式のICチップ、接触式又は非接触式のICカード、又は種々の情報家電がこれに含まれる。但し、上記のPHSは、Personal Handy-phone Systemの略である。また、上記のPDAは、Personal Digital Assistantの略である。
 図22に示すように、このハードウェアは、主に、CPU902と、ROM904と、RAM906と、ホストバス908と、ブリッジ910と、を有する。さらに、このハードウェアは、外部バス912と、インターフェース914と、入力部916と、出力部918と、記憶部920と、ドライブ922と、接続ポート924と、通信部926と、を有する。但し、上記のCPUは、Central Processing Unitの略である。また、上記のROMは、Read Only Memoryの略である。そして、上記のRAMは、Random Access Memoryの略である。
 CPU902は、例えば、演算処理装置又は制御装置として機能し、ROM904、RAM906、記憶部920、又はリムーバブル記録媒体928に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ROM904は、CPU902に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。RAM906には、例えば、CPU902に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
 これらの構成要素は、例えば、高速なデータ伝送が可能なホストバス908を介して相互に接続される。一方、ホストバス908は、例えば、ブリッジ910を介して比較的データ伝送速度が低速な外部バス912に接続される。また、入力部916としては、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力部916としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ(以下、リモコン)が用いられることもある。
 出力部918としては、例えば、CRT、LCD、PDP、又はELD等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。但し、上記のCRTは、Cathode Ray Tubeの略である。また、上記のLCDは、Liquid Crystal Displayの略である。そして、上記のPDPは、Plasma DisplayPanelの略である。さらに、上記のELDは、Electro-Luminescence Displayの略である。
 記憶部920は、各種のデータを格納するための装置である。記憶部920としては、例えば、ハードディスクドライブ(HDD)等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。但し、上記のHDDは、Hard Disk Driveの略である。
 ドライブ922は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体928に記録された情報を読み出し、又はリムーバブル記録媒体928に情報を書き込む装置である。リムーバブル記録媒体928は、例えば、DVDメディア、Blu-rayメディア、HD DVDメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体928は、例えば、非接触型ICチップを搭載したICカード、又は電子機器等であってもよい。但し、上記のICは、Integrated Circuitの略である。
 接続ポート924は、例えば、USBポート、IEEE1394ポート、SCSI、RS-232Cポート、又は光オーディオ端子等のような外部接続機器930を接続するためのポートである。外部接続機器930は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はICレコーダ等である。但し、上記のUSBは、Universal Serial Busの略である。また、上記のSCSIは、Small Computer System Interfaceの略である。
 通信部926は、ネットワーク932に接続するための通信デバイスであり、例えば、有線又は無線LAN、Bluetooth(登録商標)、又はWUSB用の通信カード、光通信用のルータ、ADSL用のルータ、又は接触又は非接触通信用のデバイス等である。また、通信部926に接続されるネットワーク932は、有線又は無線により接続されたネットワークにより構成され、例えば、インターネット、家庭内LAN、赤外線通信、可視光通信、放送、又は衛星通信等である。但し、上記のLANは、Local Area Networkの略である。また、上記のWUSBは、Wireless USBの略である。そして、上記のADSLは、Asymmetric Digital Subscriber Lineの略である。
 <9:まとめ>
 最後に、本技術の実施形態に係る技術内容について簡単に纏める。ここで述べる技術内容は、例えば、PC、携帯電話、ゲーム機、情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置に対して適用することができる。なお、以下で述べる情報処理装置の機能は、1台の情報処理装置を利用して実現することも可能であるし、複数台の情報処理装置を利用して実現することも可能である。また、以下で述べる情報処理装置が処理を実行する際に用いるデータ記憶手段及び演算処理手段は、当該情報処理装置に設けられたものであってもよいし、ネットワークを介して接続された機器に設けられたものであってもよい。
 上記の情報処理装置の機能構成は以下のように表現される。例えば、下記(1)に記載の情報処理装置は、多次多変数連立方程式の求解困難性に安全性の根拠を置く効率的な公開鍵認証方式又は電子署名方式のアルゴリズムを実行する機能を有する。
 (1)
 環K上で定義される多次多変数多項式の組F=(f,…,f)、署名鍵s∈K、及び文書Mに基づいて生成された第1の情報と、前記文書M、前記多次多変数多項式の組F、及びベクトルy=(f(s),…,f(s))に基づいて前記第1の情報が前記署名鍵sを用いて生成されたことを検証するために必要な複数の第2の情報と、を含む電子署名を取得する署名取得部と、
 前記電子署名に含まれる複数の第2の情報を用いて前記第1の情報を復元可能か否かを確認することで前記文書Mの正当性を検証する署名検証部と、
を備え、
 前記多変数多項式の組F及び前記ベクトルyは公開鍵であり、
 前記署名取得部は、前記第2の情報を所定数ずつ取得し、
 前記署名検証部は、所定数ずつ取得される前記第2の情報を用いて逐次的に前記第1の情報を復元し、復元処理に不要な前記第2の情報を不要になった段階で消去する、
 署名検証装置。
 (2)
 前記第1の情報は、入力される情報をブロック単位に区切って処理する一方向性関数を用いて生成されており、
 前記署名検証部は、前記所定数ずつ取得される前記第2の情報を用いて前記ブロック単位の処理で前記一方向性関数が出力する中間値を生成する処理、当該中間値及び次に取得される所定数の前記第2の情報を用いて次の中間値を生成する処理を繰り返し実行して前記第1の情報を復元する、
 上記(1)に記載の署名検証装置。
 (3)
 所定数の前記第2の情報は、前記中間値の生成が完了した段階で消去される、
 上記(2)に記載の署名検証装置。
 (4)
 前記所定数は1であり、
 前記第2の情報に含まれ、かつ、前記一方向性関数から前記中間値を生成する際に用いる情報のサイズは、前記ブロック単位のデータサイズ以上である、
 上記(2)又は(3)に記載の署名検証装置。
 (5)
 環K上で定義される多次多変数多項式の組F=(f,…,f)、署名鍵s∈K、及び文書Mに基づいて生成された第1の情報と、前記文書M、前記多次多変数多項式の組F、及びベクトルy=(f(s),…,f(s))に基づいて前記第1の情報が前記署名鍵sを用いて生成されたことを検証するために必要な複数の第2の情報と、を含む電子署名を取得するステップと、
 前記電子署名に含まれる複数の第2の情報を用いて前記第1の情報を復元可能か否かを確認することで前記文書Mの正当性を検証するステップと、
を含み、
 前記多変数多項式の組F及び前記ベクトルyは公開鍵であり、
 前記取得するステップでは、前記第2の情報を所定数ずつ取得し、
 前記検証するステップでは、所定数ずつ取得される前記第2の情報を用いて逐次的に前記第1の情報を復元し、復元処理に不要な前記第2の情報を不要になった段階で消去する、
 署名検証方法。
 (6)
 環K上で定義される多次多変数多項式の組F=(f,…,f)、署名鍵s∈K、及び文書Mに基づいて生成された第1の情報と、前記文書M、前記多次多変数多項式の組F、及びベクトルy=(f(s),…,f(s))に基づいて前記第1の情報が前記署名鍵sを用いて生成されたことを検証するために必要な複数の第2の情報と、を含む電子署名を取得する署名取得機能と、
 前記電子署名に含まれる複数の第2の情報を用いて前記第1の情報を復元可能か否かを確認することで前記文書Mの正当性を検証する署名検証機能と、
をコンピュータに実現させるためのプログラムであり、
 前記多変数多項式の組F及び前記ベクトルyは公開鍵であり、
 前記署名取得機能は、前記第2の情報を所定数ずつ取得し、
 前記署名検証機能は、所定数ずつ取得される前記第2の情報を用いて逐次的に前記第1の情報を復元し、復元処理に不要な前記第2の情報を不要になった段階で消去する、
 プログラム。
 (7)
 環K上で定義される多次多変数多項式の組F=(f,…,f)、署名鍵s∈K、及び文書Mに基づいて生成された第1の情報と、前記文書M、前記多次多変数多項式の組F、及びベクトルy=(f(s),…,f(s))に基づいて前記第1の情報が前記署名鍵sを用いて生成されたことを検証するために必要な複数の第2の情報と、を含む電子署名を取得する署名取得機能と、
 前記電子署名に含まれる複数の第2の情報を用いて前記第1の情報を復元可能か否かを確認することで前記文書Mの正当性を検証する署名検証機能と、
をコンピュータに実現させるためのプログラムが記録された、コンピュータにより読み取り可能な記録媒体であり、
 前記多変数多項式の組F及び前記ベクトルyは公開鍵であり、
 前記署名取得機能は、前記第2の情報を所定数ずつ取得し、
 前記署名検証機能は、所定数ずつ取得される前記第2の情報を用いて逐次的に前記第1の情報を復元し、復元処理に不要な前記第2の情報を不要になった段階で消去する、
 記録媒体。
 (備考)
 上記の署名検証アルゴリズムVerは、署名取得部、署名検証部の一例である。
 以上、添付図面を参照しながら本技術の好適な実施形態について説明したが、本技術は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本技術の技術的範囲に属するものと了解される。
 上記の説明において、ハッシュ関数Hを用いるアルゴリズムを紹介したが、ハッシュ関数Hの代わりにコミットメント関数COMを用いてもよい。コミットメント関数COMは、文字列S及び乱数ρを引数にとる関数である。コミットメント関数の例としては、Shai HaleviとSilvio Micaliによって国際会議CRYPTO1996で発表された方式などがある。
 Gen  鍵生成アルゴリズム
 P    証明者アルゴリズム
 V    検証者アルゴリズム
 Sig  署名生成アルゴリズム
 Ver  署名検証アルゴリズム
 

Claims (7)

  1.  環K上で定義される多次多変数多項式の組F=(f,…,f)、署名鍵s∈K、及び文書Mに基づいて生成された第1の情報と、前記文書M、前記多次多変数多項式の組F、及びベクトルy=(f(s),…,f(s))に基づいて前記第1の情報が前記署名鍵sを用いて生成されたことを検証するために必要な複数の第2の情報と、を含む電子署名を取得する署名取得部と、
     前記電子署名に含まれる複数の第2の情報を用いて前記第1の情報を復元可能か否かを確認することで前記文書Mの正当性を検証する署名検証部と、
    を備え、
     前記多変数多項式の組F及び前記ベクトルyは公開鍵であり、
     前記署名取得部は、前記第2の情報を所定数ずつ取得し、
     前記署名検証部は、所定数ずつ取得される前記第2の情報を用いて逐次的に前記第1の情報を復元し、復元処理に不要な前記第2の情報を不要になった段階で消去する、
     署名検証装置。
  2.  前記第1の情報は、入力される情報をブロック単位に区切って処理する一方向性関数を用いて生成されており、
     前記署名検証部は、前記所定数ずつ取得される前記第2の情報を用いて前記ブロック単位の処理で前記一方向性関数が出力する中間値を生成する処理、当該中間値及び次に取得される所定数の前記第2の情報を用いて次の中間値を生成する処理を繰り返し実行して前記第1の情報を復元する、
     請求項1に記載の署名検証装置。
  3.  所定数の前記第2の情報は、前記中間値の生成が完了した段階で消去される、
     請求項2に記載の署名検証装置。
  4.  前記所定数は1であり、
     前記第2の情報に含まれ、かつ、前記一方向性関数から前記中間値を生成する際に用いる情報のサイズは、前記ブロック単位のデータサイズ以上である、
     請求項2に記載の署名検証装置。
  5.  環K上で定義される多次多変数多項式の組F=(f,…,f)、署名鍵s∈K、及び文書Mに基づいて生成された第1の情報と、前記文書M、前記多次多変数多項式の組F、及びベクトルy=(f(s),…,f(s))に基づいて前記第1の情報が前記署名鍵sを用いて生成されたことを検証するために必要な複数の第2の情報と、を含む電子署名を取得するステップと、
     前記電子署名に含まれる複数の第2の情報を用いて前記第1の情報を復元可能か否かを確認することで前記文書Mの正当性を検証するステップと、
    を含み、
     前記多変数多項式の組F及び前記ベクトルyは公開鍵であり、
     前記取得するステップでは、前記第2の情報を所定数ずつ取得し、
     前記検証するステップでは、所定数ずつ取得される前記第2の情報を用いて逐次的に前記第1の情報を復元し、復元処理に不要な前記第2の情報を不要になった段階で消去する、
     署名検証方法。
  6.  環K上で定義される多次多変数多項式の組F=(f,…,f)、署名鍵s∈K、及び文書Mに基づいて生成された第1の情報と、前記文書M、前記多次多変数多項式の組F、及びベクトルy=(f(s),…,f(s))に基づいて前記第1の情報が前記署名鍵sを用いて生成されたことを検証するために必要な複数の第2の情報と、を含む電子署名を取得する署名取得機能と、
     前記電子署名に含まれる複数の第2の情報を用いて前記第1の情報を復元可能か否かを確認することで前記文書Mの正当性を検証する署名検証機能と、
    をコンピュータに実現させるためのプログラムであり、
     前記多変数多項式の組F及び前記ベクトルyは公開鍵であり、
     前記署名取得機能は、前記第2の情報を所定数ずつ取得し、
     前記署名検証機能は、所定数ずつ取得される前記第2の情報を用いて逐次的に前記第1の情報を復元し、復元処理に不要な前記第2の情報を不要になった段階で消去する、
     プログラム。
  7.  環K上で定義される多次多変数多項式の組F=(f,…,f)、署名鍵s∈K、及び文書Mに基づいて生成された第1の情報と、前記文書M、前記多次多変数多項式の組F、及びベクトルy=(f(s),…,f(s))に基づいて前記第1の情報が前記署名鍵sを用いて生成されたことを検証するために必要な複数の第2の情報と、を含む電子署名を取得する署名取得機能と、
     前記電子署名に含まれる複数の第2の情報を用いて前記第1の情報を復元可能か否かを確認することで前記文書Mの正当性を検証する署名検証機能と、
    をコンピュータに実現させるためのプログラムが記録された、コンピュータにより読み取り可能な記録媒体であり、
     前記多変数多項式の組F及び前記ベクトルyは公開鍵であり、
     前記署名取得機能は、前記第2の情報を所定数ずつ取得し、
     前記署名検証機能は、所定数ずつ取得される前記第2の情報を用いて逐次的に前記第1の情報を復元し、復元処理に不要な前記第2の情報を不要になった段階で消去する、
     記録媒体。
     
PCT/JP2012/068324 2011-08-29 2012-07-19 署名検証装置、署名検証方法、プログラム、及び記録媒体 WO2013031414A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US14/239,926 US9129122B2 (en) 2011-08-29 2012-07-19 Signature verification apparatus, signature verification method, program, and recording medium
CN201280040711.0A CN103748832A (zh) 2011-08-29 2012-07-19 签名验证设备、签名验证方法、程序和记录介质
RU2014106488/08A RU2014106488A (ru) 2011-08-29 2012-07-19 Устройство проверки подписи, способ проверки подписи, программа и носитель записи
BR112014004191A BR112014004191A2 (pt) 2011-08-29 2012-07-19 aparelho e método de verificação de assinatura, programa, e, mídia de gravação legível por computador
EP12828377.7A EP2753018B1 (en) 2011-08-29 2012-07-19 Signature verification device, signature verification method, program, and recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011185946A JP5790319B2 (ja) 2011-08-29 2011-08-29 署名検証装置、署名検証方法、プログラム、及び記録媒体
JP2011-185946 2011-08-29

Publications (1)

Publication Number Publication Date
WO2013031414A1 true WO2013031414A1 (ja) 2013-03-07

Family

ID=47755922

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/068324 WO2013031414A1 (ja) 2011-08-29 2012-07-19 署名検証装置、署名検証方法、プログラム、及び記録媒体

Country Status (8)

Country Link
US (1) US9129122B2 (ja)
EP (1) EP2753018B1 (ja)
JP (1) JP5790319B2 (ja)
CN (1) CN103748832A (ja)
BR (1) BR112014004191A2 (ja)
RU (1) RU2014106488A (ja)
TW (1) TW201320700A (ja)
WO (1) WO2013031414A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5790291B2 (ja) * 2011-08-12 2015-10-07 ソニー株式会社 情報処理装置、署名提供方法、署名検証方法、プログラム、及び記録媒体
JP5790288B2 (ja) * 2011-08-12 2015-10-07 ソニー株式会社 情報処理装置、及び情報処理方法
JP2013047727A (ja) * 2011-08-29 2013-03-07 Sony Corp 情報処理装置、情報処理方法、プログラム、及び記録媒体
JP2014068140A (ja) * 2012-09-25 2014-04-17 Sony Corp 情報処理装置、情報処理方法及びプログラム
CN103490897B (zh) * 2013-09-17 2017-04-05 华南理工大学 一种多变量公钥签名/验证系统及签名/验证方法
KR101753721B1 (ko) 2017-03-31 2017-07-19 기초과학연구원 고속 다변수 이차 서명 방법과 그 시스템
KR101768641B1 (ko) 2017-04-04 2017-08-30 기초과학연구원 짧은 키 길이를 갖는 다변수 이차 서명 스킴을 수행하는 전자 장치와 그 방법
US10833858B2 (en) 2017-05-11 2020-11-10 Microsoft Technology Licensing, Llc Secure cryptlet tunnel
US10740455B2 (en) 2017-05-11 2020-08-11 Microsoft Technology Licensing, Llc Encave pool management
US10528722B2 (en) 2017-05-11 2020-01-07 Microsoft Technology Licensing, Llc Enclave pool shared key
US10664591B2 (en) 2017-05-11 2020-05-26 Microsoft Technology Licensing, Llc Enclave pools
US11488121B2 (en) 2017-05-11 2022-11-01 Microsoft Technology Licensing, Llc Cryptlet smart contract
US10637645B2 (en) 2017-05-11 2020-04-28 Microsoft Technology Licensing, Llc Cryptlet identity
US10747905B2 (en) * 2017-05-11 2020-08-18 Microsoft Technology Licensing, Llc Enclave ring and pair topologies
US10796070B2 (en) * 2018-07-19 2020-10-06 Mentor Graphics Corporation Layout pattern similarity determination based on binary turning function signatures
US11303456B2 (en) * 2019-02-15 2022-04-12 International Business Machines Corporation Compute digital signature authentication sign instruction
US11483139B2 (en) 2020-08-07 2022-10-25 Bank Of America Corporation System for secure data transmission using fully homomorphic encryption

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2737370B1 (fr) * 1995-07-27 1997-08-22 Bull Cp8 Procede de communication cryptographique
WO2002091664A1 (en) * 2001-05-04 2002-11-14 Docomo Communications Laboratories Usa, Inc. Ring-based signature scheme
US7961876B2 (en) * 2005-01-11 2011-06-14 Jintai Ding Method to produce new multivariate public key cryptosystems
CN1870499B (zh) * 2005-01-11 2012-01-04 丁津泰 产生新的多变量公钥密码系统的方法
JP4827468B2 (ja) * 2005-07-25 2011-11-30 キヤノン株式会社 情報処理装置及び情報処理装置の制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
FR2918525A1 (fr) * 2007-07-06 2009-01-09 France Telecom Procede asymetrique de chiffrement ou de verification de signature.
US8200616B2 (en) * 2008-12-31 2012-06-12 Nokia Corporation Method, apparatus, and computer program product for polynomial-based data transformation and utilization
US8515058B1 (en) * 2009-11-10 2013-08-20 The Board Of Trustees Of The Leland Stanford Junior University Bootstrappable homomorphic encryption method, computer program and apparatus
IL205803A0 (en) * 2010-05-16 2010-12-30 Yaron Sella Collision-based signature scheme
IL206139A0 (en) * 2010-06-02 2010-12-30 Yaron Sella Efficient multivariate signature generation
IL207918A0 (en) * 2010-09-01 2011-01-31 Aviad Kipnis Attack-resistant multivariate signature scheme
CN102006165B (zh) * 2010-11-11 2012-11-07 西安理工大学 基于多变量公钥密码对消息匿名环签名的方法
JP6069852B2 (ja) * 2011-08-29 2017-02-01 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
US20150010144A1 (en) * 2012-03-02 2015-01-08 Sony Corporation Information processing apparatus, image processing method, and program

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
FUMIKO SATO: "Trends of Web Services Security (1) : WS-Security and WS-SX (WS-SecureExchange) Specifications", JOHO SHORI, vol. 48, no. 6, June 2007 (2007-06-01), pages 646 - 652, XP008173105 *
JACQUES PATARIN: "Asymmetric Cryptography with a Hidden Monomial", CRYPTO, 1996, pages 45 - 60, XP019194414
KAORU KUROSAWA ET AL., GENDAI ANGO NO KISO RIRON, 31 March 2004 (2004-03-31), pages 98 - 100, XP008174250 *
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 20120808] *
KOICHI SAKUMOTO ET AL.: "Public-Key Identification Schemes Based on Multivariate Quadratic Polynomials, Advances in Cryptology-CRYPTO 2011 31st Annual Cryptology Conference", PROCEEDINGS(LNCS 6841), vol. 6841, 6 August 2011 (2011-08-06), SANTA BARBARA, CA, USA, pages 706 - 723, XP019161037 *
M. ABDALLA ET AL.: "From identification to signatures via the Fiat-Shamir transform: Minimizing assumptions for security and forward-security", 2002, XP001090360, Retrieved from the Internet <URL:http:// citeseer.ist.psu.edu/viewdoc/summary?doi=10.1. 1.128.5015> [retrieved on 20120808] *
PATARIN, J.; COURTOIS, N.; GOUBIN, L.: "Topics in Cryptology - CT-RSA", vol. 2020, April 2001, SPRINGER-VERLAG, article "QUARTZ, 128-Bit Long Digital Signatures", pages: 282 - 297
See also references of EP2753018A4

Also Published As

Publication number Publication date
BR112014004191A2 (pt) 2017-03-07
RU2014106488A (ru) 2015-08-27
CN103748832A (zh) 2014-04-23
JP2013048351A (ja) 2013-03-07
JP5790319B2 (ja) 2015-10-07
EP2753018A1 (en) 2014-07-09
US20140223193A1 (en) 2014-08-07
US9129122B2 (en) 2015-09-08
EP2753018A4 (en) 2015-11-04
TW201320700A (zh) 2013-05-16
EP2753018B1 (en) 2017-01-11

Similar Documents

Publication Publication Date Title
WO2013031414A1 (ja) 署名検証装置、署名検証方法、プログラム、及び記録媒体
JP6069852B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP5736816B2 (ja) 認証装置、認証方法、プログラム、及び署名生成装置
JP5790318B2 (ja) 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
JP5790287B2 (ja) 情報処理装置、情報処理方法、プログラム、及び記録媒体
WO2013024699A1 (ja) 情報処理装置、情報処理方法、プログラム、及び記録媒体
WO2013129084A1 (ja) 情報処理装置、情報処理方法、及びプログラム
WO2013024697A1 (ja) 情報処理装置、署名提供方法、署名検証方法、プログラム、及び記録媒体
WO2013129119A1 (ja) 情報処理装置、情報処理方法、及びプログラム
JP5790286B2 (ja) 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
WO2013031420A1 (ja) 情報処理装置、署名生成装置、署名検証装置、情報処理方法、署名生成方法、及び署名検証方法
WO2013031413A1 (ja) 情報処理装置、情報処理方法、プログラム、及び記録媒体
WO2013024633A1 (ja) 情報処理装置、及び情報処理方法
WO2013024630A1 (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: 12828377

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2012828377

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2012828377

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2014106488

Country of ref document: RU

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14239926

Country of ref document: US

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

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 112014004191

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20140221