WO2013129084A1 - 情報処理装置、情報処理方法、及びプログラム - Google Patents
情報処理装置、情報処理方法、及びプログラム Download PDFInfo
- Publication number
- WO2013129084A1 WO2013129084A1 PCT/JP2013/053081 JP2013053081W WO2013129084A1 WO 2013129084 A1 WO2013129084 A1 WO 2013129084A1 JP 2013053081 W JP2013053081 W JP 2013053081W WO 2013129084 A1 WO2013129084 A1 WO 2013129084A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information
- algorithm
- polynomial
- message
- verifier
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 61
- 238000003672 processing method Methods 0.000 title claims description 6
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 420
- 238000004364 calculation method Methods 0.000 claims abstract description 59
- 238000012545 processing Methods 0.000 claims abstract description 59
- 239000000470 constituent Substances 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 260
- 238000012795 verification Methods 0.000 claims description 103
- 230000008569 process Effects 0.000 claims description 96
- 239000013598 vector Substances 0.000 claims description 64
- 230000004044 response Effects 0.000 claims description 36
- 230000002452 interceptive effect Effects 0.000 description 31
- 230000006870 function Effects 0.000 description 24
- 238000005516 engineering process Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 14
- 230000004048 modification Effects 0.000 description 11
- 238000012986 modification Methods 0.000 description 11
- 230000014509 gene expression Effects 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000006467 substitution reaction Methods 0.000 description 5
- 230000001131 transforming effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 101000650775 Boana raniceps Raniseptin-1 Proteins 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- OCKGFTQIICXDQW-ZEQRLZLVSA-N 5-[(1r)-1-hydroxy-2-[4-[(2r)-2-hydroxy-2-(4-methyl-1-oxo-3h-2-benzofuran-5-yl)ethyl]piperazin-1-yl]ethyl]-4-methyl-3h-2-benzofuran-1-one Chemical compound C1=C2C(=O)OCC2=C(C)C([C@@H](O)CN2CCN(CC2)C[C@H](O)C2=CC=C3C(=O)OCC3=C2C)=C1 OCKGFTQIICXDQW-ZEQRLZLVSA-N 0.000 description 2
- 101150012579 ADSL gene Proteins 0.000 description 2
- 102100020775 Adenylosuccinate lyase Human genes 0.000 description 2
- 108700040193 Adenylosuccinate lyases Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- LDXJRKWFNNFDSA-UHFFFAOYSA-N 2-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)-1-[4-[2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidin-5-yl]piperazin-1-yl]ethanone Chemical compound C1CN(CC2=NNN=C21)CC(=O)N3CCN(CC3)C4=CN=C(N=C4)NCC5=CC(=CC=C5)OC(F)(F)F LDXJRKWFNNFDSA-UHFFFAOYSA-N 0.000 description 1
- YLZOPXRUQYQQID-UHFFFAOYSA-N 3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)-1-[4-[2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidin-5-yl]piperazin-1-yl]propan-1-one Chemical compound N1N=NC=2CN(CCC=21)CCC(=O)N1CCN(CC1)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F YLZOPXRUQYQQID-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005405 multipole Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 239000000052 vinegar Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3093—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Definitions
- the present technology relates to an information processing apparatus, an information processing method, and a program.
- the electronic signature is used to specify the creator of the electronic document. For this reason, 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, the third party can impersonate the creator of the electronic document. That is, an electronic document is forged by a malicious third party. In order to prevent such forgery, various discussions have been made on the security of electronic signatures. As an electronic signature method that is currently widely used, for example, an RSA signature method and a DSA signature method are known.
- the RSA signature method uses “difficulty of prime factorization for large composite numbers (hereinafter referred to as prime factorization problem)” as the basis of security.
- prime factorization problem large composite numbers
- DSA signature scheme uses “difficulty in derivation of a solution to the discrete logarithm problem” as the basis of security.
- Examples of digital signature schemes that base security on multivariable polynomial problems include MI (Matsumoto-Imai cryptography), HFE (Hidden Field Equivalence cryptography), and OV (Oil-Vinegar signatureMetermetmTM). ) Based method is known.
- MI Matsumoto-Imai cryptography
- HFE Hidden Field Equivalence cryptography
- OV Olet-Vinegar signatureMetermetmTM
- non-patent documents 1 and 2 disclose a digital signature scheme based on HFE.
- the multivariate polynomial problem is an example of a problem called an NP difficulty problem that is difficult to solve even using a quantum computer.
- a public key authentication method using a multivariate polynomial problem typified by HFE or the like uses a multi-order multivariable simultaneous equation in which a special trap door is charged.
- the multi-order multivariable simultaneous equations F and the linear transformations A and B serve as trapdoors.
- a public key authentication scheme and a digital signature scheme based on the difficulty of solving multi-order multivariable simultaneous equations as the basis of security are realized.
- the inventor of the present invention uses an efficient public key authentication method having high security using a multi-order multivariable simultaneous equation whose means for efficiently solving (trap door) is not known, and Invented an electronic signature method (Koi Sakumoto, Taizo Shirai and Harunaga Hiwatari, 'Public-Key Identification Schems 3, MultiPol.
- the multivariable polynomial used in this public key authentication method and digital signature method has a large number of coefficients, and in order to use it as a public key, a method for efficiently assigning coefficients between the prover and the verifier is determined. It was necessary to keep.
- the present technology has been devised with the intention of providing a new and improved information processing apparatus, information processing method, and program capable of calculating a multivariate polynomial more efficiently.
- a number acquisition unit for acquiring a number to be used for a coefficient of each term constituting the set F of the multi-order multivariable polynomials generated from information shared among them using a predetermined function; and the number acquisition A polynomial calculation unit that assigns the number obtained by the unit to a multi-order multi-variable coefficient including the set of the multi-order multi-variable polynomial F as a constituent element and calculates the multi-order multi-variable polynomial for the input value of the variable;
- the polynomial calculation unit is provided with an information processing apparatus that skips calculation processing for a term in which an input value of at least one variable is 0.
- an algorithm of a public key authentication scheme or an electronic signature scheme using a public key including a multi-order multivariate polynomial set F (f 1 ,..., F m ) is executed.
- An information processing method is provided in which calculation processing is skipped for a term in which an input value of at least one variable is zero.
- a number acquisition function for acquiring a number used for a coefficient of each term constituting the set F of the multi-order multivariate polynomial, which is generated from information shared between entities using a predetermined function;
- a polynomial calculation function for assigning the number acquired by the acquisition unit to a multi-order multi-variable coefficient including a set of the multi-order multi-variable polynomial F as a constituent element, and calculating the multi-order multi-variable polynomial with respect to an input value of the variable;
- the polynomial calculation function provides a program that skips the calculation process for a term in which the input value of at least one variable is 0.
- a computer-readable recording medium on which the above program is recorded is provided.
- a multivariable polynomial can be calculated more efficiently.
- FIG. 26 is an explanatory diagram for describing a hardware configuration example of an information processing apparatus capable of executing an algorithm according to each embodiment of the present technology.
- the present embodiment relates to a public key authentication scheme and a digital signature scheme that base security on the difficulty of solving problems for multi-order multivariable simultaneous equations.
- this embodiment relates to a public key authentication method and an electronic signature method that use a multi-order multivariable simultaneous equation that does not have means for efficiently solving (trap door), unlike conventional methods such as the HFE electronic signature method.
- the outline of the algorithm of the public key authentication method, the algorithm of the electronic signature method, and the n-pass public key authentication method will be briefly described.
- FIG. 1 is an explanatory diagram for explaining an outline of an algorithm of a public key authentication method.
- Public key authentication is used for a certain person (certifier) to convince another person (verifier) that he / she is the person using the public key pk and the secret key sk.
- the prover A's public key pk A is disclosed to the verifier B.
- the prover A's private key sk A is secretly managed by the prover A.
- a person who knows the secret key sk A corresponding to the public key pk A is regarded as the prover A himself.
- the prover A uses the secret key sk corresponding to the public key pk A via the interactive protocol. Evidence that A is known may be presented to verifier B. Then, when the prover A knows the secret key sk A is presented to the verifier B and the verifier B has confirmed the evidence, the validity of the prover A (identity) It will be proved.
- the first condition is “to minimize the probability that a perjury will be established by a fake person who does not have the secret key sk when the interactive protocol is executed”.
- the fact that this first condition is satisfied is called “soundness”. In other words, soundness can be paraphrased as “a perjury who does not have a secret key sk does not have a falsification with a probability that cannot be ignored during the execution of the dialogue protocol”.
- the second condition is that “the information of the secret key sk A possessed by the prover A is never leaked to the verifier B even if the interactive protocol is executed”. The fact that this second condition is satisfied is called “zero knowledge”.
- model In the public key authentication model, there are two entities, a prover and a verifier, as shown in FIG.
- the prover uses a key generation algorithm Gen to generate a pair of a secret key sk and a public key pk unique to the prover.
- the prover executes an interactive 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 uses the prover algorithm P to execute the interactive protocol.
- the prover uses the prover algorithm P to present evidence that the secret key sk is held in the interactive protocol to the verifier.
- the verifier executes the interactive protocol by using the verifier algorithm V, and verifies whether or not the prover has a secret key corresponding to the public key published by the prover. That is, the verifier is an entity that verifies whether the prover has a secret key corresponding to the public key.
- the public key authentication method model includes two entities, a prover and a verifier, and three algorithms, a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V.
- the expressions “prover” and “verifier” are used, but these expressions only mean entities. 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 “certifier”. 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, and the like.
- the key generation algorithm Gen is used by the prover.
- the key generation algorithm Gen is an algorithm for generating a set of a secret key sk and a public key pk unique to the prover.
- the public key pk generated by the key generation algorithm Gen is made public.
- the public key pk that is made public is used by the verifier.
- the prover secretly manages the secret key sk generated by the key generation algorithm Gen.
- the secret key sk managed secretly 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 that inputs a security parameter 1 ⁇ ( ⁇ is an integer of 0 or more) and outputs a secret key sk and a public key pk.
- the prover algorithm P is used by the prover.
- the prover algorithm P is an algorithm for proving to the verifier that the prover has the secret key sk corresponding to the public key pk. That is, the prover algorithm P is an algorithm that executes the interactive protocol with the secret key sk and the public key pk as inputs.
- the verifier algorithm V is used by the verifier.
- the verifier algorithm V is an algorithm for verifying whether or not the prover has a secret key sk corresponding to the public key pk in the interactive protocol.
- the verifier algorithm V is an algorithm that takes the public key pk as an input and outputs 0 or 1 (1 bit) according to the execution result of the interactive protocol.
- the verifier determines that the prover is illegal 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 depending on the secret key sk, notifies the verifier of the result, and then includes the notification contents. It is necessary to make the verifier perform the verification based on it.
- the execution of the procedure depending on the secret key sk is necessary to ensure soundness.
- FIG. 2 is an explanatory diagram for explaining the outline of the algorithm of the electronic signature method.
- the electronic signature refers to a mechanism in which signature data known only to the creator of the data is provided to the recipient in association with the data, and the signature data is verified on the recipient side.
- the digital signature scheme model has 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 uses a key generation algorithm Gen to generate a pair of a signer-specific signature key sk and a verification key pk. Further, the signer generates an electronic signature ⁇ to be given to the document M using the signature generation algorithm Sig. That is, the signer is an entity that gives an electronic signature to the document M.
- 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 electronic signature ⁇ in order to confirm whether or not the creator of the document M is a signer.
- the expressions “signer” and “verifier” are used, but these expressions only mean entities. Accordingly, the subject that executes the key generation algorithm Gen and the signature generation algorithm Sig is an information processing apparatus corresponding to the entity of the “signer”. Similarly, the subject 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, and the like.
- the key generation algorithm Gen is used by the signer.
- the key generation algorithm Gen is an algorithm for generating a set of a signer-specific signature key sk and a verification key pk.
- the verification key pk generated by the key generation algorithm Gen is made public.
- 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 an electronic signature ⁇ given to the document M.
- the key generation algorithm Gen receives the security parameter 1 ⁇ ( ⁇ is an integer greater than or equal to 0), and outputs the signature key sk and the 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 an electronic 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 an electronic signature ⁇ .
- This signature generation algorithm Sig can be formally expressed as the following formula (4).
- the signature verification algorithm Ver is used by a verifier.
- the signature verification algorithm Ver is an algorithm for verifying whether or not the electronic signature ⁇ is a valid electronic signature for the document M.
- the signature verification algorithm Ver is an algorithm that inputs the verification key pk of the signer, the document M, and the electronic signature ⁇ , and outputs 0 or 1 (1 bit).
- This signature verification algorithm Ver can be formally expressed as the following formula (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 ( When 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 explaining an n-pass public-key authentication scheme.
- the public key authentication scheme is an authentication scheme that proves to the verifier that the prover has the secret key sk corresponding to the public key pk in the interactive protocol.
- the dialogue protocol needs to satisfy two conditions of soundness and zero knowledge. Therefore, in the interactive protocol, as shown in FIG. 3, both the prover and the verifier exchange information n times while executing processes.
- FIG. 4 is an explanatory diagram for describing a specific algorithm configuration related to the 3-pass scheme.
- the second-order polynomial f i (x) is assumed to be expressed as the following equation (6).
- a vector (x 1 ,..., X n ) is expressed as x
- a set of quadratic polynomials f 1 (x),..., F m (x)
- F (x) is expressed as a multivariable polynomial F (x).
- a set of quadratic polynomials (f 1 (x),..., F m (x)) can be expressed as the following equation (7).
- a 1 ,..., Am are n ⁇ n matrices.
- b 1 ,..., B m are n ⁇ 1 vectors, respectively.
- the multivariate polynomial F can be expressed as shown in the following expressions (8) and (9). It can be easily confirmed from the following formula (10) that this expression holds.
- G (x, y) corresponding to is bilinear with respect to x and y.
- G (x, y) may be referred to as a bilinear term. If this property is used, an efficient algorithm can be constructed.
- the sum of the multivariate polynomial F (x + r 0 ) and G (x) is expressed as the following equation (11).
- the three-pass algorithm described here includes a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V as follows.
- the key generation algorithm Gen (f 1 (x 1, ..., x n), ..., f m (x 1, ..., x n), y) is set to public key pk, and the s in the secret key Set.
- Process # 1 As shown in FIG. 4, first, the prover algorithm P generates vectors r 0 , t 0 ⁇ K n and e 0 ⁇ K m at random. Next, the prover algorithm P calculates r 1 ⁇ s ⁇ r 0 . This calculation corresponds to an operation to mask by the vector r 0 a secret key s. Further, the prover algorithm P calculates t 1 ⁇ r 0 -t 0 . Next, the prover algorithm P calculates e 1 ⁇ -F (r 0 ) ⁇ e 0 .
- Step # 1 (continued): Next, the prover algorithm P calculates c 0 ⁇ -H (r 1 , G (t 0 , r 1 ) + e 0 ). Next, the prover algorithm P calculates c 1 ⁇ -H (t 0 , e 0 ). Next, the prover algorithm P calculates c 2 ⁇ -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 has received the message (c 0 , c 1 , c 2 ) selects which verification pattern to use from among the three verification patterns. 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 # 3 The prover algorithm P that has received the request Ch generates a response Rsp to be sent to the verifier algorithm V in accordance with the received request Ch.
- the response Rsp generated in step # 3 is sent to the verifier algorithm V.
- Process # 4 The verifier algorithm V that has received the response Rsp executes the following verification processing using the received response Rsp.
- a serial method that sequentially exchanges a message, a request, and a response a plurality of times, and a message, a request, and a response for a plurality of times in a single exchange
- a parallel method is considered.
- a hybrid method combining a serial method and a parallel method is also conceivable.
- an algorithm hereinafter referred to as a parallelization algorithm for executing the above interactive protocol related to the 3-pass scheme in parallel will be described with reference to FIG.
- 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 message (c 01 , c 11 , c 21 ,..., C 0N , c 1N , c 2N ) is converted into a hash value and then sent to the verifier algorithm V, thereby reducing the amount of communication. It becomes 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.
- the responses Rsp 1 ,..., Rsp N generated in step # 3 are sent to the verifier algorithm V.
- ⁇ 3 Algorithm structure for a 5-pass public-key authentication scheme> Next, an algorithm related to a 5-pass public key authentication scheme will be described. In the following description, a 5-pass public-key authentication scheme may be referred to as a “5-pass scheme”.
- the false verification probability per interactive protocol was 2/3, but in the case of the 5-pass scheme, the false verification probability per interactive protocol is 1/2 + 1 / q. Where q is the order of the ring used. Therefore, when the order of the ring is sufficiently large, the 5-pass scheme can reduce the false perception probability per time, and the false authentication probability can be sufficiently reduced with a small number of interactive protocol executions. it can.
- FIG. 6 is an explanatory diagram for explaining a specific algorithm configuration related to the 5-pass scheme.
- the quadratic polynomial f i (x) is assumed to be expressed as in the above equation (6).
- a vector (x 1 ,..., X n ) is expressed as x
- a set of quadratic polynomials f 1 (x),..., F m (x)
- F (x) is expressed as a multivariable polynomial F (x).
- the multivariate polynomial F 1 (x) used to mask the multivariate polynomial F (x + r 0 ) using the two vectors t 0 ⁇ K n and e 0 ⁇ K m. Is expressed as F 1 (x) G (x, t 0 ) + e 0 .
- F 1 (x) G (x, t 0 ) + e 0 .
- the 5-pass algorithm described here includes a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V as follows.
- 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 ⁇ s ⁇ r 0 . This calculation corresponds to an operation to mask by the vector r 0 a secret key s. Next, the prover algorithm P generates a hash value c 0 of the vectors r 0 , t 0 , e 0 . That is, the prover algorithm P calculates c 0 ⁇ -H (r 0 , t 0 , e 0 ).
- the prover algorithm P generates G (t 0 , r 1 ) + e 0 and a hash value c 1 of r 1 . That is, the prover algorithm P calculates c 0 ⁇ -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 ) selects one number Ch A at random 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 . Further, the prover algorithm P calculates e 1 ⁇ -Ch 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 receiving t 1 and e 1 selects which verification pattern to use from the two verification patterns. For example, the verifier algorithm V selects one numerical value from two numerical values ⁇ 0, 1 ⁇ representing the type of verification pattern, and sets the selected numerical value in the request Ch B. This request Ch B is sent to the prover algorithm P.
- Process # 5 Request Ch prover algorithm P that B has received the generates a response Rsp to send to the verifier algorithm V in response to the received challenge Ch B.
- the response Rsp generated in step # 5 is sent to the verifier algorithm V.
- Process # 6 The verifier algorithm V that has received the response Rsp executes the following verification processing using the received response Rsp.
- Ch B 1
- a serial method that sequentially exchanges a message, a request, and a response a plurality of times, and a message, a request, and a response for a plurality of times in a single exchange
- a parallel method is considered.
- a hybrid method combining a serial method and a parallel method is also conceivable.
- an algorithm for executing the above interactive protocol related to the 5-pass scheme in parallel hereinafter referred to as a parallel algorithm
- Process (1) The prover algorithm P randomly generates vectors r 0i , t 0i ⁇ K n and e 0i ⁇ K m .
- an efficient algorithm (see, for example, FIG. 5) related to the 3-pass scheme is expressed by three dialogs 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 includes a process of selecting Ch 1 ,..., Ch N. Ch 1 ,..., Ch N selected by the verifier algorithm V in 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 ⁇ Select (Ch i , a i ). Rsp 1 ,..., Rsp N generated by the prover algorithm P in step # 3 are sent to the verifier algorithm V.
- the algorithm of the public key authentication method expressed in the above steps # 1 to # 4 is transformed into a signature generation algorithm Sig and a signature verification algorithm Ver as shown in FIG.
- the signature generation algorithm Sig includes 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 attached.
- the signature verification algorithm Ver includes the following processes (1) to (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 To do. Process (3): The signature verification algorithm Ver uses the regenerated c 01 , c 11 , c 21 ,..., C 0N , c 1N , c 2N and Cmt H (c 01 , c 11 , c 21 ,. c 0N , c 1N , c 2N ).
- the public key authentication method algorithm can be transformed into an electronic signature method algorithm.
- an efficient algorithm (for example, see FIG. 7) according to the 5-pass scheme is expressed by 5 dialogs and 6 steps # 1 to # 6.
- the Cmt generated by the prover algorithm P in step # 1 is sent to the verifier algorithm V.
- Step # 2 includes processing for selecting Ch A1 ,..., Ch AN .
- Ch A1 ,..., Ch AN selected by the verifier algorithm V in step # 2 is sent to the prover algorithm P.
- Step # 4 includes processing for selecting Ch B1 ,..., Ch BN .
- Ch B1 ,..., Ch BN selected by the verifier algorithm V in step # 4 is 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 ⁇ Select (Ch Bi , a i , b i ). Rsp 1 ,..., Rsp N generated by the prover algorithm P in step # 5 are sent to the verifier algorithm V.
- the algorithm of the public key authentication method 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 includes the following processes (1) to (7).
- Process (6) The signature generation algorithm Sig calculates Rsp i ⁇ -Select (Ch Bi , a i , b i ).
- the signature verification algorithm Ver includes the following processes (1) to (4).
- Process (1) The signature verification algorithm Ver calculates (Ch A1 ,..., Ch AN ) ⁇ H (M, Cmt).
- Process (2) The signature verification algorithm Ver calculates (Ch B1 ,..., Ch BN ) ⁇ H (M, Cmt, Ch A1 ,..., Ch AN , d).
- the signature verification algorithm Ver executes (Ch B1, ..., Ch BN ) ⁇ H (Ch A1, ..., Ch aN, d) is calculated.
- Process (3) The signature verification algorithm Ver uses Ch A1 ,..., Ch AN , Ch B1 ,..., Ch BN , Rsp 1 , ..., Rsp N to t 11 , e 11 , ..., t 1N , e 1N. , C 01 , c 11 ,..., C 0N , c 1N are generated.
- the public key authentication method algorithm can be transformed into an electronic signature method algorithm.
- ⁇ 5 Method for efficiently substituting coefficients of a multivariate polynomial> So far, there has been no specific description of how to share a multivariate polynomial between a prover (or signer) and a verifier.
- a method of sharing a multivariate polynomial a method of sharing a seed used when generating a coefficient (random number) of the multivariate polynomial can be considered.
- the multivariate polynomial is not shared unless the order in which the random numbers generated using the shared seed are applied to the coefficients is shared.
- the structuring method # 1 is a method in which the coefficients of the same type of terms constituting the multivariable polynomial F are collected as one data structure.
- the coefficients a 1IJ to a MIJ are collected as a data structure A
- the coefficients b 1I to b MI are collected as a data structure B.
- the same method can be applied to the multivariable polynomial G. In this case, the coefficients (a 1IJ + a 1JI ) to (a MIJ + a MJI ) are collected as a data structure.
- the coefficient substitution algorithm is as shown in (Example 2).
- a (1 to M) IJ is generated at each loop timing.
- an algorithm for calculating the multivariable polynomial G is expressed as follows (Example 1 ').
- the inputs x and y are each assumed to be N bits.
- an algorithm for calculating the multivariate polynomial G corresponds to the above (Example 3) (Example 3 ′) below. become that way.
- Example 3 the only need to perform XOR operation of M bits ( ⁇ ) (N / k) 2 times. However, compared to the algorithm of (Example 2 ′), the required memory amount is 2 2k / k 2 times.
- Example 2 (About the further efficiency improvement of the method according to (Example 2) and (Example 2 '))
- the above algorithm (Example 2) is referred to again.
- the algorithm of the above (Example 2) includes double loop processing for indexes I and J. Therefore, a technique for reducing the number of operations while obtaining the same result is proposed by devising the contents of the processing steps executed in this loop processing portion. A method of applying the same method to (Example 2 ′) is also introduced.
- the first to third methods can be similarly applied to the algorithm of the above (Example 2 ′) relating to the multivariable polynomial G.
- the algorithm is modified as described below (Example 2′A).
- the input x includes a large number of 0s and the input x includes a small number of zeros. There will be a difference in processing time. Therefore, information regarding the input x can be obtained by measuring the processing time. That is, if an algorithm that skips processing is applied, there is a risk that information on random numbers used for signature generation or the like is leaked.
- a range of “percentage of 0 in input x” (for example, 10% or less, 90% or more, etc.) allowed in advance is set.
- a process for reacquiring random numbers is executed when 0 is larger or smaller than the set range.
- the total calculation time of F (r 0 ) and G (t 0 , r 1 ) can be made uniform even when an algorithm that skips processing is applied.
- the algorithms of the above (Example 2C) and (Example 2′C) are applied.
- the calculation of the multivariable polynomial F is executed by the algorithm of (Example 2C)
- the calculation of the multivariable polynomial G is executed by the algorithm of (Example 2′C). Both algorithms are listed below.
- the input x r 0 .
- the input x r 1 .
- the number of bits that become 0 falls within the range of 0.5N to 1.5N. Therefore, processing is skipped in the conditional branch described in the third line of the algorithm of the following (Example 2C) and the conditional branch described in the third line of the algorithm of the following (Example 2′C).
- the number of times is also in the range of 0.5N to 1.5N. Therefore, it is difficult to leak information related to the input from the total processing time of the multivariate polynomials F and G.
- the calculation of the multivariable polynomials F and G is repeatedly executed N times while updating the argument in step # 1. Therefore, such a calculation part is configured to repeatedly perform calculations using the same coefficient.
- FIG. 12 Hardware configuration example (FIG. 12)>
- Each of the above algorithms can be executed using, for example, the hardware configuration of the information processing apparatus shown in FIG. That is, the processing of each algorithm is realized by controlling the hardware shown in FIG. 12 using a computer program.
- the form of this hardware is arbitrary.
- personal computers, mobile phones, PHS, PDA and other portable information terminals, game machines, contact type or non-contact type IC chips, contact type or non-contact type ICs This includes cards or various information appliances.
- PHS is an abbreviation for Personal Handy-phone System.
- the PDA is an abbreviation for 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, this 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.
- the CPU is an abbreviation for Central Processing Unit.
- the ROM is an abbreviation for Read Only Memory.
- the RAM is an abbreviation for Random Access Memory.
- the CPU 902 functions as, for example, an arithmetic processing unit or a control unit, and controls the overall operation or a part of each component 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 calculation, and the like.
- a program read by the CPU 902 various parameters that change as appropriate when the program is executed, and the like are temporarily or permanently stored.
- a host bus 908 capable of high-speed data transmission.
- the host bus 908 is connected to an external bus 912 having a relatively low data transmission speed via a bridge 910, for example.
- a 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 CRT is an abbreviation for Cathode Ray Tube.
- the LCD is an abbreviation for Liquid Crystal Display.
- the PDP is an abbreviation for Plasma Display Panel.
- the above ELD is an abbreviation for 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 for Hard Disk Drive.
- the drive 922 is a device that reads information recorded on a removable recording medium 928 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory, or writes information to the removable recording medium 928.
- the removable recording medium 928 is, for example, DVD media, Blu-ray media, HD DVD media, various semiconductor storage media, and the like.
- the removable recording medium 928 may be, for example, an IC card on which a non-contact IC chip is mounted, 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, or an IC recorder.
- the USB is an abbreviation for Universal Serial Bus.
- the SCSI is an abbreviation for Small Computer System Interface.
- the communication unit 926 is a communication device for connecting to the network 932.
- a wired or wireless LAN for example, a wired or wireless LAN, Bluetooth (registered trademark), or a WUSB communication card, an optical communication router, an ADSL router, or a contact Or a device for non-contact communication.
- the network 932 connected to the communication unit 926 is configured by a wired or wireless network, such as the Internet, home LAN, infrared communication, visible light communication, broadcast, or satellite communication.
- the above LAN is an abbreviation for Local Area Network.
- the WUSB is an abbreviation for Wireless USB.
- the above ADSL is an abbreviation for 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 electronic signature scheme algorithm based on the security of the difficulty of solving multi-order multivariable simultaneous equations. .
- the input value of the variable is a value generated so that the ratio of the input value that is 0 among all the input values is within a predetermined range.
- the input value of the variable is a value generated using a random number generator, and when the ratio of input values that are 0 among all input values is not within a predetermined range, the random number generator is Regenerated using The information processing apparatus according to (2) above.
- the input value of the variable is expressed by different first or second bit values, and the number of input values taking the first bit value and the input taking the second bit value among all input values.
- the number of values is approximately equal, The information processing apparatus according to (1) above.
- the polynomial calculation unit groups coefficients of terms having the same variable combination type among coefficients of a multi-order multi-variable polynomial that includes the set F of the multi-order multi-variable polynomial as a constituent element, and calculates in units of groups. Run the The information processing apparatus according to any one of (1) to (4) above.
- the polynomial calculation unit groups coefficient matrices when a multi-order multivariate polynomial including the multi-order multivariate polynomial set F as a constituent element is expressed in a quadratic form for each row or column. Perform calculations, The information processing apparatus according to any one of (1) to (4) above.
- the number acquisition unit acquires the number generated by the number of coefficients belonging to the one group when the polynomial calculation unit executes an assignment process for one group.
- the number acquisition unit rotates the one number generated when generating the number by the number of coefficients belonging to the one group bit by bit to acquire a required number.
- a table holding unit that holds the value assigned to the term corresponding to each group as a table, and assigns an arbitrary number to the variable of the term;
- the information is a seed of random numbers;
- the predetermined function is a random number generator that generates a random number using the seed.
- the information processing apparatus according to any one of (1) to (9) above.
- a providing department an answer providing unit for providing the verifier with answer information corresponding to the verification pattern selected by the verifier from k verification patterns (k ⁇ 3);
- the vector s is a secret key;
- the multi-order multivariate polynomial set F and the vector y are public keys;
- the answer information is information selected according to the verification pattern from the set of random numbers and the message,
- the message is information obtained by executing a calculation prepared in advance for a verification pattern corresponding to the answer information, using the public key and the answer information
- a message acquisition unit for acquiring a message generated based on the set F of the multi-order multivariate polynomial and the vector s ⁇ K n ;
- a pattern information providing unit that provides information on one verification pattern randomly selected from k verification patterns (k ⁇ 3) to the prover who provided the message;
- a response acquisition unit that acquires response information corresponding to the selected verification pattern from the prover;
- a verification unit that verifies whether the prover holds the vector s based on the message, the set F of the multi-order multivariate polynomial, the vector y, and the answer information;
- the vector s is a secret key;
- the multi-order multivariate polynomial set F and the vector y are public keys;
- a providing department An intermediate information generating unit that generates third information using first information randomly selected by the verifier and second information obtained when generating the message;
- An intermediate information providing unit for providing the third information to the verifier; an answer providing unit for providing the verifier with answer information corresponding to the verification pattern selected by the verifier from k (k ⁇ 2) verification patterns;
- the vector s is a secret key;
- the multi-order multivariate polynomial set F and the vector y are public keys;
- the answer information is information selected according to the verification
- a message acquisition unit for acquiring a message generated based on the set F of the multi-order multivariate polynomial and the vector s ⁇ K n ;
- An information providing unit for providing first information randomly selected to the prover who provided the message;
- An intermediate information acquisition unit for acquiring third information generated by the prover using the first information and second information obtained when generating the message; a pattern information providing unit that provides information of one verification pattern randomly selected from k (k ⁇ 3) verification patterns to the prover;
- a response acquisition unit that acquires response information corresponding to the selected verification pattern from the prover; Verification that verifies whether the prover holds the vector s based on the message, the first information, the third information, the multi-order multivariate polynomial set F
- the number acquisition unit acquires the number generated only once, and the polynomial calculation unit performs the assignment process only once, The polynomial calculation unit repeatedly uses the assigned coefficient,
- the information processing apparatus according to any one of (1) to (10) above.
- the above prover algorithm P, verifier algorithm V, signature generation algorithm Sig, and signature verification algorithm Ver are examples of a number generation unit, a polynomial calculation unit, and a table holding unit.
- the above prover algorithm P is an example of a message generating unit, a message providing unit, an answer providing unit, an intermediate information generating unit, and an intermediate information providing unit.
- the verifier algorithm V is an example of an information holding unit, a message acquisition unit, a pattern information providing unit, an answer acquisition unit, a verification unit, and an intermediate information acquisition unit.
- the commitment function COM is a function that takes a character string S and a random number ⁇ as arguments.
- the commitment function there is a method announced at the international conference CRYPTO 1996 by Shai Halevi and Silvio Micali.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
Abstract
Description
ここで、以下に記載する本技術の実施形態に関する説明の流れについて簡単に述べる。まず、図1を参照しながら、公開鍵認証方式のアルゴリズム構成について説明する。次いで、図2を参照しながら、電子署名方式のアルゴリズム構成について説明する。次いで、図3を参照しながら、nパスの公開鍵認証方式について説明する。
1:はじめに
1-1:公開鍵認証方式のアルゴリズム
1-2:電子署名方式のアルゴリズム
1-3:nパスの公開鍵認証方式
2:3パスの公開鍵認証方式に係るアルゴリズムの構成
2-1:具体的なアルゴリズムの構成例
2-2:並列化アルゴリズムの構成例
3:5パスの公開鍵認証方式に係るアルゴリズムの構成
3-1:具体的なアルゴリズムの構成例
3-2:並列化アルゴリズムの構成例
4:電子署名方式への変形
4-1:3パスの公開鍵認証方式から電子署名方式への変形
4-2:5パスの公開鍵認証方式から電子署名方式への変形
5:多変数多項式の係数を効率的に代入する方法について
5-1:基本的な取り決め
5-2:データの構造化
5-2-1:構造化手法#1
5-2-2:構造化手法#2
6:ハードウェア構成例
7:まとめ
本実施形態は、多次多変数連立方程式に対する求解問題の困難性に安全性の根拠をおく公開鍵認証方式及び電子署名方式に関する。但し、本実施形態は、HFE電子署名方式などの従来手法とは異なり、効率的に解く手段(トラップドア)を持たない多次多変数連立方程式を利用する公開鍵認証方式及び電子署名方式に関する。まず、公開鍵認証方式のアルゴリズム、電子署名方式のアルゴリズム、及びnパスの公開鍵認証方式について、その概要を簡単に説明する。
まず、図1を参照しながら、公開鍵認証方式のアルゴリズムについて概要を説明する。図1は、公開鍵認証方式のアルゴリズムについて概要を説明するための説明図である。
公開鍵認証方式のモデルには、図1に示すように、証明者と検証者という2つのエンティティが存在する。証明者は、鍵生成アルゴリズムGenを用いて、証明者固有の秘密鍵skと公開鍵pkの組を生成する。次いで、証明者は、鍵生成アルゴリズムGenを用いて生成した秘密鍵skと公開鍵pkの組を利用して検証者と対話プロトコルを実行する。このとき、証明者は、証明者アルゴリズムPを利用して対話プロトコルを実行する。上記の通り、証明者は、証明者アルゴリズムPを利用し、対話プロトコルの中で秘密鍵skを保有している証拠を検証者に提示する。
鍵生成アルゴリズムGenは、証明者により利用される。鍵生成アルゴリズムGenは、証明者に固有の秘密鍵skと公開鍵pkとの組を生成するアルゴリズムである。鍵生成アルゴリズムGenにより生成された公開鍵pkは公開される。そして、公開された公開鍵pkは、検証者により利用される。一方、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者が秘密に管理する。そして、証明者により秘密に管理される秘密鍵skは、公開鍵pkに対応する秘密鍵skを証明者が保有していることを検証者に対して証明するために利用される。形式的に、鍵生成アルゴリズムGenは、セキュリティパラメータ1λ(λは0以上の整数)を入力とし、秘密鍵skと公開鍵pkを出力するアルゴリズムとして、下記の式(1)のように表現される。
証明者アルゴリズムPは、証明者により利用される。証明者アルゴリズムPは、公開鍵pkに対応する秘密鍵skを証明者が保有していることを検証者に対して証明するためのアルゴリズムである。つまり、証明者アルゴリズムPは、秘密鍵skと公開鍵pkとを入力とし、対話プロトコルを実行するアルゴリズムである。
検証者アルゴリズムVは、検証者により利用される。検証者アルゴリズムVは、対話プロトコルの中で、公開鍵pkに対応する秘密鍵skを証明者が保有しているか否かを検証するアルゴリズムである。検証者アルゴリズムVは、公開鍵pkを入力とし、対話プロトコルの実行結果に応じて0又は1(1bit)を出力するアルゴリズムである。なお、検証者は、検証者アルゴリズムVが0を出力した場合には証明者が不正なものであると判断し、1を出力した場合には証明者が正当なものであると判断する。形式的に、検証者アルゴリズムVは、下記の式(2)のように表現される。
次に、図2を参照しながら、電子署名方式のアルゴリズムについて概要を説明する。図2は、電子署名方式のアルゴリズムについて概要を説明するための説明図である。
電子署名方式のモデルには、図2に示すように、署名者及び検証者という2つのエンティティが存在する。そして、電子署名方式のモデルは、鍵生成アルゴリズムGen、署名生成アルゴリズムSig、署名検証アルゴリズムVerという3つのアルゴリズムにより構成される。
鍵生成アルゴリズムGenは、署名者により利用される。鍵生成アルゴリズムGenは、署名者固有の署名鍵skと検証鍵pkとの組を生成するアルゴリズムである。鍵生成アルゴリズムGenにより生成された検証鍵pkは公開される。一方、鍵生成アルゴリズムGenにより生成された署名鍵skは、署名者により秘密に管理される。そして、署名鍵skは、文書Mに付与される電子署名σの生成に利用される。例えば、鍵生成アルゴリズムGenは、セキュリティパラメータ1λ(λは0以上の整数)を入力とし、署名鍵sk及び公開鍵pkを出力する。この場合、鍵生成アルゴリズムGenは、形式的に、下記の式(3)のように表現することができる。
署名生成アルゴリズムSigは、署名者により利用される。署名生成アルゴリズムSigは、文書Mに付与される電子署名σを生成するアルゴリズムである。署名生成アルゴリズムSigは、署名鍵skと文書Mとを入力とし、電子署名σを出力するアルゴリズムである。この署名生成アルゴリズムSigは、形式的に、下記の式(4)のように表現することができる。
署名検証アルゴリズムVerは、検証者により利用される。署名検証アルゴリズムVerは、電子署名σが文書Mに対する正当な電子署名であるか否かを検証するアルゴリズムである。署名検証アルゴリズムVerは、署名者の検証鍵pk、文書M、電子署名σを入力とし、0又は1(1bit)を出力するアルゴリズムである。この署名検証アルゴリズムVerは、形式的に、下記の式(5)のように表現することができる。なお、検証者は、署名検証アルゴリズムVerが0を出力した場合(公開鍵pkが文書Mと電子署名σを拒否する場合)に電子署名σが不当であると判断し、1を出力した場合(公開鍵pkが文書Mと電子署名σを受理する場合)に電子署名σが正当であると判断する。
次に、図3を参照しながら、nパスの公開鍵認証方式について説明する。図3は、nパスの公開鍵認証方式について説明するための説明図である。
以下、3パスの公開鍵認証方式に係るアルゴリズムについて説明する。なお、以下の説明において、3パスの公開鍵認証方式のことを「3パス方式」と呼ぶ場合がある。
まず、図4を参照しながら、3パス方式に係る具体的なアルゴリズムの構成例について紹介する。図4は、3パス方式に係る具体的なアルゴリズムの構成について説明するための説明図である。ここでは、公開鍵pkの一部として2次多項式の組(f1(x),…,fm(x))を利用する場合について考える。但し、2次多項式fi(x)は、下記の式(6)のように表現されるものとする。また、ベクトル(x1,…,xn)をxと表記し、2次多項式の組(f1(x),…,fm(x))を多変数多項式F(x)と表記することにする。
鍵生成アルゴリズムGenは、環K上で定義されるm本の多変数多項式f1(x1,…,xn),…,fm(x1,…,xn)、及びベクトルs=(s1,…,sn)∈Knを生成する。次に、鍵生成アルゴリズムGenは、y=(y1,…,ym)←(f1(s),…,fm(s))を計算する。そして、鍵生成アルゴリズムGenは、(f1(x1,…,xn),…,fm(x1,…,xn),y)を公開鍵pkに設定し、sを秘密鍵に設定する。
以下、図4を参照しながら、対話プロトコルの中で証明者アルゴリズムPが実行する処理及び検証者アルゴリズムVが実行する処理について説明する。この対話プロトコルの中で、証明者は、秘密鍵sの情報を検証者に一切漏らさずに、「自身がy=F(s)を満たすsを知っていること」を検証者に示す。一方、検証者は、証明者がy=F(s)を満たすsを知っているか否かを検証する。なお、公開鍵pkは、検証者に公開されているものとする。また、秘密鍵sは、証明者により秘密に管理されているものとする。以下、図4に示したフローチャートに沿って説明を進める。
図4に示すように、まず、証明者アルゴリズムPは、ランダムにベクトルr0,t0∈Kn及びe0∈Kmを生成する。次いで、証明者アルゴリズムPは、r1←s-r0を計算する。この計算は、秘密鍵sをベクトルr0によりマスクする操作に相当する。さらに、証明者アルゴリズムPは、t1←r0-t0を計算する。次いで、証明者アルゴリズムPは、e1←F(r0)-e0を計算する。
次いで、証明者アルゴリズムPは、c0←H(r1,G(t0,r1)+e0)を計算する。次いで、証明者アルゴリズムPは、c1←H(t0,e0)を計算する。次いで、証明者アルゴリズムPは、c2←H(t1,e1)を計算する。工程#1で生成されたメッセージ(c0,c1,c2)は、検証者アルゴリズムVに送られる。
メッセージ(c0,c1,c2)を受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す3つの数値{0,1,2}の中から1つの数値を選択し、選択した数値を要求Chに設定する。この要求Chは証明者アルゴリズムPに送られる。
要求Chを受け取った証明者アルゴリズムPは、受け取った要求Chに応じて検証者アルゴリズムVに送る返答Rspを生成する。Ch=0の場合、証明者アルゴリズムPは、返答Rsp=(r0,t1,e1)を生成する。Ch=1の場合、証明者アルゴリズムPは、返答Rsp=(r1,t0,e0)を生成する。Ch=2の場合、証明者アルゴリズムPは、返答Rsp=(r1,t1,e1)を生成する。工程#3で生成された返答Rspは、検証者アルゴリズムVに送られる。
返答Rspを受け取った検証者アルゴリズムVは、受け取った返答Rspを利用して以下の検証処理を実行する。
次に、図5を参照しながら、図4に示した3パス方式のアルゴリズムを並列化する方法について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図5に示すように、まず、証明者アルゴリズムPは、i=1~Nについて以下の処理(1)~処理(6)を実行する。
処理(1):証明者アルゴリズムPは、ランダムにベクトルr0i,t0i∈Kn及びe0i∈Kmを生成する。
処理(2):証明者アルゴリズムPは、r1i←s-r0iを計算する。この計算は、秘密鍵sをベクトルr0iによりマスクする操作に相当する。さらに、証明者アルゴリズムPは、t1i←r0i+t0iを計算する。
処理(3):証明者アルゴリズムPは、e1i←F(r0i)-e0iを計算する。
処理(4):証明者アルゴリズムPは、c0i←H(r1i,G(r1i,t0i)+e0i)を計算する。
処理(5):証明者アルゴリズムPは、c1i←H(t0i,e0i)を計算する。
処理(6):証明者アルゴリズムPは、c2i←H(t1i,e1i)を計算する。
i=1~Nについて上記の処理(1)~処理(6)を実行した後、証明者アルゴリズムPは、Cmt←H(c01,c11,c21,…,c0N,c1N,c2N)を計算する。工程#1で生成されたハッシュ値Cmtは、検証者アルゴリズムVに送られる。このように、メッセージ(c01,c11,c21,…,c0N,c1N,c2N)をハッシュ値に変換してから検証者アルゴリズムVに送ることで、通信量を削減することが可能になる。
ハッシュ値Cmtを受け取った検証者アルゴリズムVは、i=1~Nのそれぞれについて、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、i=1~Nのそれぞれについて、検証パターンの種類を表す3つの数値{0,1,2}の中から1つの数値を選択し、選択した数値を要求Chiに設定する。要求Ch1,…,ChNは、証明者アルゴリズムPに送られる。
要求Ch1,…,ChNを受け取った証明者アルゴリズムPは、受け取った要求Ch1,…,ChNのそれぞれ応じて検証者アルゴリズムVに送る返答Rsp1,…,RspNを生成する。Chi=0の場合、証明者アルゴリズムPは、Rspi=(r0i,t1i,e1i,c0i)を生成する。Chi=1の場合、証明者アルゴリズムPは、Rspi=(r1i,t0i,e0i,c2i)を生成する。Chi=2の場合、証明者アルゴリズムPは、Rspi=(r1i,t1i,e1i,c1i)を生成する。
返答Rsp1,…,RspNを受け取った検証者アルゴリズムVは、受け取った返答Rsp1,…,RspNを利用して以下の処理(1)~処理(3)をi=1~Nについて実行する。但し、検証者アルゴリズムVは、Chi=0の場合に処理(1)を実行し、Chi=1の場合に処理(2)を実行し、Chi=2の場合に処理(3)を実行する。
次に、5パスの公開鍵認証方式に係るアルゴリズムについて説明する。なお、以下の説明において、5パスの公開鍵認証方式のことを「5パス方式」と呼ぶ場合がある。
まず、図6を参照しながら、5パス方式に係る具体的なアルゴリズムの構成例について紹介する。図6は、5パス方式に係る具体的なアルゴリズムの構成について説明するための説明図である。ここでは、公開鍵pkの一部として2次多項式の組(f1(x),…,fm(x))を利用する場合について考える。但し、2次多項式fi(x)は、上記の式(6)のように表現されるものとする。また、ベクトル(x1,…,xn)をxと表記し、2次多項式の組(f1(x),…,fm(x))を多変数多項式F(x)と表記することにする。
鍵生成アルゴリズムGenは、環K上で定義される多変数多項式f1(x1,…,xn),…,fm(x1,…,xn)、及びベクトルs=(s1,…,sn)∈Knを生成する。次に、鍵生成アルゴリズムGenは、y=(y1,…,ym)←(f1(s),…,fm(s))を計算する。そして、鍵生成アルゴリズムGenは、(f1,…,fm,y)を公開鍵pkに設定し、sを秘密鍵に設定する。なお、以下では、ベクトル(x1,…,xn)をxと表記し、多変数多項式の組(f1(x),…,fm(x))をF(x)と表記する。
以下、図6を参照しながら、対話プロトコルの中で証明者アルゴリズムP及び検証者アルゴリズムVにより実行される処理について説明する。この対話プロトコルの中で、証明者は、秘密鍵sの情報を検証者に一切漏らさずに、「自身がy=F(s)を満たすsを知っていること」を検証者に示す。一方、検証者は、証明者がy=F(s)を満たすsを知っているか否かを検証する。なお、公開鍵pkは、検証者に公開されているものとする。また、秘密鍵sは、証明者により秘密に管理されているものとする。以下、図6に示したフローチャートに沿って説明を進める。
図6に示すように、まず、証明者アルゴリズムPは、ランダムにベクトルr0∈Kn、t0∈Kn、e0∈Kmを生成する。次いで、証明者アルゴリズムPは、r1←s-r0を計算する。この計算は、秘密鍵sをベクトルr0によりマスクする操作に相当する。次いで、証明者アルゴリズムPは、ベクトルr0,t0,e0のハッシュ値c0を生成する。つまり、証明者アルゴリズムPは、c0←H(r0,t0,e0)を計算する。次いで、証明者アルゴリズムPは、G(t0,r1)+e0及びr1のハッシュ値c1を生成する。つまり、証明者アルゴリズムPは、c0←H(r1,G(t0,r1)+e0)を計算する。工程#1で生成されたメッセージ(c0,c1)は、検証者アルゴリズムVに送られる。
メッセージ(c0,c1)を受け取った検証者アルゴリズムVは、q通り存在する環Kの元からランダムに1つの数ChAを選択し、選択した数ChAを証明者アルゴリズムPに送る。
数ChAを受け取った証明者アルゴリズムPは、t1←ChA・r0-t0を計算する。さらに、証明者アルゴリズムPは、e1←ChA・F(r0)-e0を計算する。そして、証明者アルゴリズムPは、t1及びe1を検証者アルゴリズムVに送る。
t1及びe1を受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す2つの数値{0,1}の中から1つの数値を選択し、選択した数値を要求ChBに設定する。この要求ChBは証明者アルゴリズムPに送られる。
要求ChBを受け取った証明者アルゴリズムPは、受け取った要求ChBに応じて検証者アルゴリズムVに送り返す返答Rspを生成する。ChB=0の場合、証明者アルゴリズムPは、返答Rsp=r0を生成する。ChB=1の場合、証明者アルゴリズムPは、返答Rsp=r1を生成する。工程#5で生成された返答Rspは、検証者アルゴリズムVに送られる。
返答Rspを受け取った検証者アルゴリズムVは、受け取った返答Rspを利用して以下の検証処理を実行する。
次に、図7を参照しながら、図6に示した5パス方式のアルゴリズムを並列化する方法について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図7に示すように、まず、証明者アルゴリズムPは、i=1~Nについて処理(1)~処理(4)を実行する。
処理(1):証明者アルゴリズムPは、ランダムにベクトルr0i,t0i∈Kn及びe0i∈Kmを生成する。
処理(2):証明者アルゴリズムPは、r1i←s-r0iを計算する。この計算は、秘密鍵sをベクトルr0iによりマスクする操作に相当する。
処理(3):証明者アルゴリズムPは、c0i←H(r0i,t0i,e0i)を計算する。
処理(4):証明者アルゴリズムPは、c1i←H(r1i,G(t0i,r1i)+e0i)を計算する。
i=1~Nについて処理(1)~処理(4)を実行した後、証明者アルゴリズムPは、ハッシュ値Cmt←H(c01,c11,…,c0N,c1N)を実行する。そして、工程#1で生成されたハッシュ値Cmtは、検証者アルゴリズムVに送られる。
ハッシュ値Cmtを受け取った検証者アルゴリズムVは、i=1~Nのそれぞれについて、q通り存在する環Kの元からランダムに1つの数ChAiを選択し、選択した数ChAi(i=1~N)を証明者アルゴリズムPに送る。
数ChAi(i=1~N)を受け取った証明者アルゴリズムPは、i=1~Nのそれぞれについて、t1i←ChAi・r0i-t0iを計算する。さらに、証明者アルゴリズムPは、i=1~Nのそれぞれについて、e1i←ChAi・F(r0i)-e0iを計算する。次いで、証明者アルゴリズムPは、ハッシュ値d←H(t11,e11,…,t1N,e1N)を計算する。そして、証明者アルゴリズムPは、ハッシュ値dを検証者アルゴリズムVに送る。
ハッシュ値dを受け取った検証者アルゴリズムVは、i=1~Nのそれぞれについて、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す2つの数値{0,1}の中から1つの数値を選択し、選択した数値を要求ChBiに設定する。要求ChBi(i=1~N)は証明者アルゴリズムPに送られる。
要求ChBi(i=1~N)を受け取った証明者アルゴリズムPは、i=1~Nについて、受け取った要求ChBiに応じて検証者アルゴリズムVに送り返す返答Rspiを生成する。ChBi=0の場合、証明者アルゴリズムPは、返答Rspi=(r0i,t0i,e0i,c1i)を生成する。ChBi=1の場合、証明者アルゴリズムPは、返答Rspi=(r1i,t1i,e1i,c0i)を生成する。工程#5で生成された返答Rspi(i=1~N)は、検証者アルゴリズムVに送られる。
返答Rspi(i=1~N)を受け取った検証者アルゴリズムVは、受け取った返答Rspi(i=1~N)を利用して以下の処理(1)及び処理(2)を実行する。
次に、上記の公開鍵認証方式を電子署名方式へと変形する方法を紹介する。
まず、3パスの公開鍵認証方式から電子署名方式への変形について説明する。
まず、署名生成アルゴリズムSigの構成について述べる。署名生成アルゴリズムSigは、以下の処理(1)~処理(5)で構成される。
処理(2):署名生成アルゴリズムSigは、Cmt←H(c01,c11,c21,…,c0N,c1N,c2N)を計算する。
処理(3):署名生成アルゴリズムSigは、(Ch1,…,ChN)←H(M,Cmt)を計算する。このMは、署名を付与する文書である。
処理(4):署名生成アルゴリズムSigは、Rspi←Select(Chi,ai)を計算する。
処理(5):署名生成アルゴリズムSigは、(Cmt,Rsp1,…,RspN)を署名に設定する。
次に、署名検証アルゴリズムVerの構成について述べる。署名検証アルゴリズムVerは、以下の処理(1)~処理(3)で構成される。
処理(2):署名検証アルゴリズムVerは、Ch1,…,ChN及びRsp1,…,RspNを用いてc01,c11,c21,…,c0N,c1N,c2Nを生成する。
処理(3):署名検証アルゴリズムVerは、再生したc01,c11,c21,…,c0N,c1N,c2Nを用いてCmt=H(c01,c11,c21,…,c0N,c1N,c2N)を検証する。
次に、5パスの公開鍵認証方式から電子署名方式への変形について説明する。
まず、署名生成アルゴリズムSigの構成について述べる。署名生成アルゴリズムSigは、以下の処理(1)~処理(7)で構成される。
処理(2):署名生成アルゴリズムSigは、Cmt←H(c01,c11,…,c0N,c1N)を計算する。
処理(3):署名生成アルゴリズムSigは、(ChA1,…,ChAN)←H(M,Cmt)を計算する。このMは、署名を付与する文書である。
処理(4):署名生成アルゴリズムSigは、i=1~Nについて、bi=(t1i,e1i)を生成する。さらに、署名生成アルゴリズム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は、Rspi←Select(ChBi,ai,bi)を計算する。
処理(7):署名生成アルゴリズムSigは、(Cmt,d,Rsp1,…,RspN)を電子署名に設定する。
次に、署名検証アルゴリズムVerの構成について述べる。署名検証アルゴリズムVerは、以下の処理(1)~処理(4)で構成される。
処理(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,Rsp1,…,RspNを用いて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,)を検証する。
さて、これまでは多変数多項式を証明者(又は署名者)と検証者との間で共有する方法について具体的に明示してこなかった。多変数多項式を共有する方法としては、多変数多項式の係数(乱数)を生成する際に用いるシードを両者で共有する方法が考えられる。しかしながら、共有しているシードを利用して生成した乱数を係数に当てはめる順序を両者で共有しない限り、多変数多項式を共有したことにはならない。
そこで、証明者(又は署名者)と検証者との間で、共有しているシードを用いて生成した乱数列を、どの順序で多変数多項式に当てはめるかについて基本的な取り決めを行う。そして、多変数多項式を利用する際に、この基本的な取り決めに従って乱数列を多変数多項式に当てはめる。このような方法を用いれば、証明者(又は署名者)と検証者との間で多変数多項式を共有したことになる。
但し、多変数多項式を構成する係数の数は膨大である。1つの係数が1ビット単位で表現されている場合、多変数多項式を表現するのに最低でも数万ビット以上のデータが必要になる。そのため、数を多変数多項式の係数に代入する処理の負荷は非常に高い。そこで、本件発明者は、多変数多項式の係数を所定の単位で構造化し、係数への代入処理を効率化する手法(構造化手法#1)を考案した。さらに、本件発明者は、同じ多変数多項式の係数に対して複数回の代入処理を実行する場合に、その処理効率を向上させる手法(構造化手法#2)を考案した。以下、これらの手法について詳細に説明する。
まず、構造化手法#1について説明する。構造化手法#1は、図10に示すように、多変数多項式Fを構成する同じ種類の項の係数を1つのデータ構造として纏める手法である。図10の例では、係数a1IJ~aMIJがデータ構造Aとして纏められ、係数b1I~bMIがデータ構造Bとして纏められている。また、図11に示すように、多変数多項式Gについても同様の手法が適用可能である。この場合、係数(a1IJ+a1JI)~(aMIJ+aMJI)がデータ構造として纏められる。
input x;
for L=1 to M
for I=1 to N
for J=I to N
[yのLビット目]^=[aLIJ]&[xのIビット目]&[xのJビット目];
end for
end for
end for
output y;
input x;
for I=1 to N
for J=I to N
[yの1~Mビット目]^=[a(1~M)IJ]&[xのIビット目]&[xのJビット目];
end for
end for
output y;
input x;
for I=1 to N/k
for J=I to N/k
[yの1~Mビット目]^=a(1~M)IJ[xのk(I-1)+1~kビット目][xのk(J-1)+1~kビット目];
end for
end for
output y;
ここまで、図10を参照しながら、構造化手法#1を適用して多変数多項式Fを計算するアルゴリズムについて説明してきた。一方で、多変数多項式Gの各要素も二次形式で表現されることから、図11に示すように、同様にして上記の構造化手法#1を多変数多項式Gの計算にそのまま適用することも可能である。
input x,y;
for L=1 to M
for I=1 to N
for J=1 to N
[zのLビット目]^=[aLIJ+aLJI]&[xのIビット目]&[yのJビット目];
end for
end for
end for
output z;
input x,y;
for I=1 to N
for J=1 to N
[zの1~Mビット目]^=[a(1~M)IJ+a(1~M)JI]&[xのIビット目]&[yのJビット目];
end for
end for
output z;
input x,y;
for I=1 to N/k
for J=1 to N/k
[zの1~Mビット目]^=a(1~M)IJ[xのk(I-1)+1~kビット目][yのk(J-1)+1~kビット目];
end for
end for
output z;
ここで、上記(例2)のアルゴリズムを再び参照する。上記(例2)のアルゴリズムは、インデックスI及びJについて二重のループ処理を含んでいる。そこで、このループ処理の部分で実行される処理ステップの内容に工夫を加え、同じ結果を得つつ、演算の回数を低減させる手法を提案する。また、同様の手法を(例2’)に適用する方法についても紹介する。
第1の手法として、例えば、インデックスJに依らない[xのIビット目]の項を内側のループ(Jのループ)から取り出し、下記の(例2A)のように変形する手法を提案する。なお、tmpは、一時的に値を格納するための変数である。このように変形すると、演算の内容は、MビットのAND演算(&)を1×N×(N+1)/2回、MビットのXOR演算(^)をN×(N+1)/2回実行するだけで済むものとなる。
input x;
for I=1 to N
for J=I to N
tmp^=[a(1~M)IJ]&[xのJビット目];
end for
[yの1~Mビット目]^=tmp&[xのIビット目];
end for
output y;
また、第2の手法として、[xのIビット目]の項が0の場合に、出力に影響が及ばないことを考慮し、例えば、[xのIビット目]=1の場合にだけ内側のループ処理が実行されるように、条件分岐を用いて下記の(例2B)のように変形する手法を提案する。このように変形すると、演算の内容は、MビットのAND演算(&)を1×N×(N+3)/2×p回、MビットのXOR演算(^)をN×(N+1)/2×p回実行するだけで済むものとなる。但し、pは、[xのIビット目]=0となる割合を表す。
input x;
for I=1 to N
if [xのIビット目]=1 then
for J=I to N
tmp^=[a(1~M)IJ]&[xのJビット目];
end for
[yの1~Mビット目]^=tmp;
end if
end for
output y;
また、第3の手法として、[xのJビット目]の項が0の場合に、出力に影響が及ばないことを考慮し、例えば、[xのJビット目]=1の場合にだけ内側のループ処理が実行されるように、条件分岐を用いて下記の(例2C)のように変形する手法を提案する。このように変形すると、演算の回数をさらに低減させることが可能になる。
input x;
for I=1 to N
if [xのIビット目]=1 then
for J=I to N
if [xのJビット目]=1 then
tmp^=[a(1~M)IJ];
end if
end for
[yの1~Mビット目]^=tmp;
end if
end for
output y;
上記第1~第3の手法は、多変数多項式Gに関する上記(例2’)のアルゴリズムに対しても同様に適用可能である。例えば、上記(例2’)のアルゴリズムに上述した第1の手法を適用すると、下記(例2’A)のようにアルゴリズムが変形される。
input x,y;
for I=1 to N
for J=1 to N
tmp^=[a(1~M)IJ+a(1~M)JI]&[yのJビット目];
end for
[zの1~Mビット目]^=tmp&[xのIビット目];
end for
output z;
また、上記(例2’)のアルゴリズムに上述した第2の手法を適用する。上記(例2’)のアルゴリズムも、[xのIビット目]の項が0の場合に、出力に影響が及ばない。そこで、[xのIビット目]=1の場合にだけ内側のループ処理が実行されるように、条件分岐を用いて下記の(例2’B)のように変形すると、演算回数を低減することが可能になる。
input x,y;
for I=1 to N
if [xのIビット目]=1 then
for J=1 to N
tmp^=[a(1~M)IJ+a(1~M)JI]&[yのJビット目];
end for
[zの1~Mビット目]^=tmp;
end if
end for
output z;
また、上記(例2’)のアルゴリズムに上述した第3の手法を適用する。上記(例2’)のアルゴリズムも、[yのJビット目]の項が0の場合に、出力に影響が及ばない。そこで、[yのJビット目]=1の場合にだけ内側のループ処理が実行されるように、条件分岐を用いて下記の(例2’C)のように変形すると、演算回数を低減することが可能になる。
input x,y;
for I=1 to N
if [xのIビット目]=1 then
for J=I+1 to N
if [yのJビット目]=1 then
tmp^=a(1~M)IJ;
end if
end for
for J=1 to I-1
if [yのJビット目]=1 then
tmp^=a(1~M)JI;
end if
end for
[zの1~Mビット目]^=tmp;
end if
end for
output z;
ところで、上記の第2の手法や第3の手法のように、処理をスキップさせるアルゴリズムに変形すると、入力xに0が多く含まれる場合と、入力xに含まれる0の数が少ない場合とで処理時間に差が生じてしまう。そのため、処理時間を計測することにより、入力xに関する情報が得られる。つまり、処理をスキップさせるアルゴリズムを適用すると、署名生成などに利用する乱数の情報が漏洩してしまう危険性が生じる。
1: input x;
2: for I=1 to N
3: if [xのIビット目]=1 then
4: for J=I to N
5: if [xのJビット目]=1 then
6: tmp^=[a(1~M)IJ];
7: end if
8: end for
9: [yの1~Mビット目]^=tmp;
10: end if
11: end for
12: output y;
1: input x,y;
2: for I=1 to N
3: if [xのIビット目]=1 then
4: for J=I+1 to N
5: if [yのJビット目]=1 then
6: tmp^=a(1~M)IJ;
7: end if
8: end for
9: for J=1 to I-1
10: if [yのJビット目]=1 then
11: tmp^=a(1~M)JI;
12: end if
13: end for
14: [zの1~Mビット目]^=tmp;
15: end if
16: end for
17: output z;
次に、構造化手法#2について説明する。構造化手法#2は、同じ多変数多項式にN回(N≧2)代入処理を行なう場合に、乱数から多項式をN回生成して代入処理を行うのではなく、「係数を一部生成し、その部分に関するN回分の処理を行なう」部分を単位とする逐次的な処理をN回分並列して行なうという手法である。この手法を適用すると、乱数生成のコストが無視できない場合にN回分の処理全体でのスループットが改善される。
上記の各アルゴリズムは、例えば、図12に示す情報処理装置のハードウェア構成を用いて実行することが可能である。つまり、当該各アルゴリズムの処理は、コンピュータプログラムを用いて図12に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、PHS、PDA等の携帯情報端末、ゲーム機、接触式又は非接触式のICチップ、接触式又は非接触式のICカード、又は種々の情報家電がこれに含まれる。但し、上記のPHSは、Personal Handy-phone Systemの略である。また、上記のPDAは、Personal Digital Assistantの略である。
最後に、本技術の実施形態に係る技術内容について簡単に纏める。ここで述べる技術内容は、例えば、PC、携帯電話、ゲーム機、情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置に対して適用することができる。なお、以下で述べる情報処理装置の機能は、1台の情報処理装置を利用して実現することも可能であるし、複数台の情報処理装置を利用して実現することも可能である。また、以下で述べる情報処理装置が処理を実行する際に用いるデータ記憶手段及び演算処理手段は、当該情報処理装置に設けられたものであってもよいし、ネットワークを介して接続された機器に設けられたものであってもよい。
多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて生成された、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を取得する数取得部と、
前記数取得部が取得した数を、前記多次多変数多項式Fの組を構成要素に含む多次多変数の係数に割り当て、変数の入力値について当該多次多変数多項式を計算する多項式計算部と、
を備え、
前記多項式計算部は、少なくとも1つの変数の入力値が0の項について計算処理をスキップする、
情報処理装置。
前記変数の入力値は、全ての入力値の中で0となる入力値の割合が所定の範囲内となるように生成された値である、
請求項1に記載の情報処理装置。
前記変数の入力値は、乱数生成器を利用して生成される値であり、全ての入力値の中で0となる入力値の割合が所定の範囲内とならない場合に、当該乱数生成器を利用して生成しなおされる、
上記(2)に記載の情報処理装置。
前記変数の入力値は、互いに異なる第1又は第2のビット値で表現され、全ての入力値の中で前記第1のビット値をとる入力値の数と前記第2のビット値をとる入力値の数とが略等しい、
上記(1)に記載の情報処理装置。
前記多項式計算部は、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数のうち、変数の組み合わせの種類が同じ項の係数をグループ化しておき、グループ単位で計算を実行する、
上記(1)~(4)のいずれか1項に記載の情報処理装置。
前記多項式計算部は、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式を2次形式で表現した場合の係数行列を行又は列毎にグループ化しておき、グループ単位で計算を実行する、
上記(1)~(4)のいずれか1項に記載の情報処理装置。
前記数取得部は、前記多項式計算部が1つのグループに対する割り当て処理を実行する際に、当該1つのグループに属する係数の分だけ生成された前記数を取得する、
上記(1)に記載の情報処理装置。
前記数取得部は、前記1つのグループに属する係数の分だけ前記数を生成する際に生成された1つの数を1ビットずつローテーションして所要数の数を取得する、
上記(7)に記載の情報処理装置。
前記各グループに対応する種類の項に前記係数を割り当て、当該項の変数に任意の数を代入した値をテーブルとして保持するテーブル保持部をさらに備える、
上記(1)~(6)のいずれか1項に記載の情報処理装置。
前記情報は、乱数のシードであり、
前記所定の関数は、前記シードを利用して乱数を生成する乱数生成器である、
上記(1)~(9)のいずれか1項に記載の情報処理装置。
環K上で定義される多次多変数多項式の組F=(f1,…,fm)、及びベクトルs∈Knに基づいてメッセージを生成するメッセージ生成部と、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するメッセージ提供部と、
k通り(k≧3)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する回答提供部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記回答情報は、前記乱数の組及び前記メッセージの中から前記検証パターンに応じて選択される情報であり、
前記メッセージは、前記公開鍵及び前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報である、
上記(1)~(10)のいずれか1項に記載の情報処理装置。
環K上で定義される多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報保持部と、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するメッセージ取得部と、
前記メッセージを提供した証明者に対し、k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を提供するパターン情報提供部と、
前記選択した検証パターンに対応する回答情報を前記証明者から取得する回答取得部と、
前記メッセージ、前記多次多変数多項式の組F、前記ベクトルy、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証する検証部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵及び前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報である、
上記(1)~(10)のいずれか1項に記載の情報処理装置。
環K上で定義される多次多変数多項式の組F=(f1,…,fm)、及びベクトルs∈Knに基づいてメッセージを生成するメッセージ生成部と、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するメッセージ提供部と、
前記検証者がランダムに選択した第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて第3の情報を生成する中間情報生成部と、
前記検証者に前記第3の情報を提供する中間情報提供部と、
k通り(k≧2)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する回答提供部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記回答情報は、前記メッセージの中から前記検証パターンに応じて選択される情報であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報である、
上記(1)~(10)のいずれか1項に記載の情報処理装置。
環K上で定義される多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報保持部と、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するメッセージ取得部と、
前記メッセージを提供した証明者に対し、ランダムに選択した第1の情報を提供する情報提供部と、
前記第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて前記証明者が生成した第3の情報を取得する中間情報取得部と、
k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を前記証明者に提供するパターン情報提供部と、
前記選択した検証パターンに対応する回答情報を前記証明者から取得する回答取得部と、
前記メッセージ、前記第1の情報、前記第3の情報、前記多次多変数多項式の組F、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証する検証部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報である、
上記(1)~(10)のいずれか1項に記載の情報処理装置。
アルゴリズムが複数回繰り返し実行される場合において、前記数取得部は1回だけ生成された前記数を取得し、前記多項式計算部は1回だけ前記割り当て処理を実行し、
前記多項式計算部は、割り当てた係数を繰り返し利用する、
上記(1)~(10)のいずれか1項に記載の情報処理装置。
環K上で定義される多次多変数多項式の組F=(f1,…,fm)、及び署名鍵s∈Knを用いて文書Mに対する電子署名を生成する署名生成部と、
前記多次多変数多項式の組F及びベクトルy=(f1(s),…,fm(s))を保持する検証者へと前記電子署名を提供する署名提供部と、
を備える、
上記(1)~(10)のいずれか1項に記載の情報処理装置。
多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて生成された、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を取得するステップと、
取得した数を、前記多次多変数多項式Fの組を構成要素に含む多次多変数の係数に割り当て、変数の入力値について当該多次多変数多項式を計算するステップと、
を含み、
前記計算するステップでは、少なくとも1つの変数の入力値が0の項について計算処理がスキップされる、
情報処理方法。
多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて生成された、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を取得する数取得機能と、
前記数取得部が取得した数を、前記多次多変数多項式Fの組を構成要素に含む多次多変数の係数に割り当て、変数の入力値について当該多次多変数多項式を計算する多項式計算機能と、
をコンピュータに実現させるためのプログラムであり、
前記多項式計算機能は、少なくとも1つの変数の入力値が0の項について計算処理をスキップする、
プログラム。
上記の(18)に記載のプログラムが記録された、コンピュータにより読み取り可能な記録媒体。
上記の証明者アルゴリズムP、検証者アルゴリズムV、署名生成アルゴリズムSig、署名検証アルゴリズムVerは、数生成部、多項式計算部、テーブル保持部の一例である。上記の証明者アルゴリズムPは、メッセージ生成部、メッセージ提供部、回答提供部、中間情報生成部、中間情報提供部の一例である。また、上記の検証者アルゴリズムVは、情報保持部、メッセージ取得部、パターン情報提供部、回答取得部、検証部、中間情報取得部の一例である。
P 証明者アルゴリズム
V 検証者アルゴリズム
Sig 署名生成アルゴリズム
Ver 署名検証アルゴリズム
Claims (18)
- 多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて生成された、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を取得する数取得部と、
前記数取得部が取得した数を、前記多次多変数多項式Fの組を構成要素に含む多次多変数の係数に割り当て、変数の入力値について当該多次多変数多項式を計算する多項式計算部と、
を備え、
前記多項式計算部は、少なくとも1つの変数の入力値が0の項について計算処理をスキップする、
情報処理装置。 - 前記変数の入力値は、全ての入力値の中で0となる入力値の割合が所定の範囲内となるように生成された値である、
請求項1に記載の情報処理装置。 - 前記変数の入力値は、乱数生成器を利用して生成される値であり、全ての入力値の中で0となる入力値の割合が所定の範囲内とならない場合に、当該乱数生成器を利用して生成しなおされる、
請求項2に記載の情報処理装置。 - 前記変数の入力値は、互いに異なる第1又は第2のビット値で表現され、全ての入力値の中で前記第1のビット値をとる入力値の数と前記第2のビット値をとる入力値の数とが略等しい、
請求項1に記載の情報処理装置。 - 前記多項式計算部は、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数のうち、変数の組み合わせの種類が同じ項の係数をグループ化しておき、グループ単位で計算を実行する、
請求項1に記載の情報処理装置。 - 前記多項式計算部は、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式を2次形式で表現した場合の係数行列を行又は列毎にグループ化しておき、グループ単位で計算を実行する、
請求項1に記載の情報処理装置。 - 前記数取得部は、前記多項式計算部が1つのグループに対する割り当て処理を実行する際に、当該1つのグループに属する係数の分だけ生成された前記数を取得する、
請求項1に記載の情報処理装置。 - 前記数取得部は、前記1つのグループに属する係数の分だけ前記数を生成する際に生成された1つの数を1ビットずつローテーションして所要数の数を取得する、
請求項7に記載の情報処理装置。 - 前記各グループに対応する種類の項に前記係数を割り当て、当該項の変数に任意の数を代入した値をテーブルとして保持するテーブル保持部をさらに備える、
請求項1に記載の情報処理装置。 - 前記情報は、乱数のシードであり、
前記所定の関数は、前記シードを利用して乱数を生成する乱数生成器である、
請求項1に記載の情報処理装置。 - 環K上で定義される多次多変数多項式の組F=(f1,…,fm)、及びベクトルs∈Knに基づいてメッセージを生成するメッセージ生成部と、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するメッセージ提供部と、
k通り(k≧3)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する回答提供部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記回答情報は、前記乱数の組及び前記メッセージの中から前記検証パターンに応じて選択される情報であり、
前記メッセージは、前記公開鍵及び前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報である、
請求項1に記載の情報処理装置。 - 環K上で定義される多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報保持部と、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するメッセージ取得部と、
前記メッセージを提供した証明者に対し、k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を提供するパターン情報提供部と、
前記選択した検証パターンに対応する回答情報を前記証明者から取得する回答取得部と、
前記メッセージ、前記多次多変数多項式の組F、前記ベクトルy、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証する検証部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵及び前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報である、
請求項1に記載の情報処理装置。 - 環K上で定義される多次多変数多項式の組F=(f1,…,fm)、及びベクトルs∈Knに基づいてメッセージを生成するメッセージ生成部と、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するメッセージ提供部と、
前記検証者がランダムに選択した第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて第3の情報を生成する中間情報生成部と、
前記検証者に前記第3の情報を提供する中間情報提供部と、
k通り(k≧2)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する回答提供部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記回答情報は、前記メッセージの中から前記検証パターンに応じて選択される情報であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報である、
請求項1に記載の情報処理装置。 - 環K上で定義される多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報保持部と、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するメッセージ取得部と、
前記メッセージを提供した証明者に対し、ランダムに選択した第1の情報を提供する情報提供部と、
前記第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて前記証明者が生成した第3の情報を取得する中間情報取得部と、
k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を前記証明者に提供するパターン情報提供部と、
前記選択した検証パターンに対応する回答情報を前記証明者から取得する回答取得部と、
前記メッセージ、前記第1の情報、前記第3の情報、前記多次多変数多項式の組F、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証する検証部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報である、
請求項1に記載の情報処理装置。 - アルゴリズムが複数回繰り返し実行される場合において、前記数取得部は1回だけ生成された前記数を取得し、前記多項式計算部は1回だけ前記割り当て処理を実行し、
前記多項式計算部は、割り当てた係数を繰り返し利用する、
請求項1に記載の情報処理装置。 - 環K上で定義される多次多変数多項式の組F=(f1,…,fm)、及び署名鍵s∈Knを用いて文書Mに対する電子署名を生成する署名生成部と、
前記多次多変数多項式の組F及びベクトルy=(f1(s),…,fm(s))を保持する検証者へと前記電子署名を提供する署名提供部と、
を備える、
請求項1に記載の情報処理装置。 - 多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて生成された、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を取得するステップと、
取得した数を、前記多次多変数多項式Fの組を構成要素に含む多次多変数の係数に割り当て、変数の入力値について当該多次多変数多項式を計算するステップと、
を含み、
前記計算するステップでは、少なくとも1つの変数の入力値が0の項について計算処理がスキップされる、
情報処理方法。 - 多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて生成された、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を取得する数取得機能と、
前記数取得部が取得した数を、前記多次多変数多項式Fの組を構成要素に含む多次多変数の係数に割り当て、変数の入力値について当該多次多変数多項式を計算する多項式計算機能と、
をコンピュータに実現させるためのプログラムであり、
前記多項式計算機能は、少なくとも1つの変数の入力値が0の項について計算処理をスキップする、
プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP13754371.6A EP2822217A4 (en) | 2012-03-02 | 2013-02-08 | INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD, AND PROGRAM |
US14/379,652 US20150010144A1 (en) | 2012-03-02 | 2013-02-08 | Information processing apparatus, image processing method, and program |
CN201380010945.5A CN104137471A (zh) | 2012-03-02 | 2013-02-08 | 信息处理设备、信息处理方法以及程序 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012046685 | 2012-03-02 | ||
JP2012-046685 | 2012-03-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013129084A1 true WO2013129084A1 (ja) | 2013-09-06 |
Family
ID=49082286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2013/053081 WO2013129084A1 (ja) | 2012-03-02 | 2013-02-08 | 情報処理装置、情報処理方法、及びプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US20150010144A1 (ja) |
EP (1) | EP2822217A4 (ja) |
JP (1) | JPWO2013129084A1 (ja) |
CN (1) | CN104137471A (ja) |
WO (1) | WO2013129084A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5790288B2 (ja) * | 2011-08-12 | 2015-10-07 | ソニー株式会社 | 情報処理装置、及び情報処理方法 |
JP5790319B2 (ja) * | 2011-08-29 | 2015-10-07 | ソニー株式会社 | 署名検証装置、署名検証方法、プログラム、及び記録媒体 |
CN103490897B (zh) * | 2013-09-17 | 2017-04-05 | 华南理工大学 | 一种多变量公钥签名/验证系统及签名/验证方法 |
CN110622232B (zh) * | 2017-05-25 | 2023-01-13 | 日本电信电话株式会社 | 秘密篡改探测系统、秘密篡改探测装置、秘密篡改探测方法以及程序 |
CN114092242A (zh) * | 2021-11-03 | 2022-02-25 | 支付宝(杭州)信息技术有限公司 | 基于范围证明实现隐私交易的方法和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005124537A1 (ja) * | 2004-06-18 | 2005-12-29 | Fujitsu Limited | 乱数生成装置,生成方法,生成器評価方法、および乱数使用方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4141773B2 (ja) * | 2002-09-12 | 2008-08-27 | 村田機械株式会社 | 復号処理装置 |
US8019079B2 (en) * | 2007-07-08 | 2011-09-13 | Georgia Tech Research Corporation | Asymmetric cryptosystem employing paraunitary matrices |
-
2013
- 2013-02-08 JP JP2014502108A patent/JPWO2013129084A1/ja active Pending
- 2013-02-08 EP EP13754371.6A patent/EP2822217A4/en not_active Withdrawn
- 2013-02-08 WO PCT/JP2013/053081 patent/WO2013129084A1/ja active Application Filing
- 2013-02-08 CN CN201380010945.5A patent/CN104137471A/zh active Pending
- 2013-02-08 US US14/379,652 patent/US20150010144A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005124537A1 (ja) * | 2004-06-18 | 2005-12-29 | Fujitsu Limited | 乱数生成装置,生成方法,生成器評価方法、および乱数使用方法 |
Non-Patent Citations (6)
Title |
---|
COME BERBAIN ET AL.XP019098542: "Efficient Implementations of Multivariate Quadratic Systems", SELECTED AREAS IN CRYPTOGRAPHY13TH INTERNATIONAL WORKSHOP, SAC 2006, vol. 4356, 17 August 2007 (2007-08-17), MONTREAL, CANADA, pages 174 - 187, XP019098542 * |
JACQUES PATARIN: "Asymmetric Cryptography with a Hidden Monomial", CRYPTO, 1996, pages 45 - 60, XP019194414 |
KOICHI SAKUMOTO ET AL.: "Public-Key Identification Schemes Based on Multivariate Quadratic Polynomials", ADVANCES IN CRYPTOLOGY- CRYPTO 2011 31ST ANNUAL CRYPTOLOGY CONFERENCE, vol. 6841, 6 August 2011 (2011-08-06), SANTA BARBARA, CA, USA, pages 706 - 723, XP019161037 * |
KOICHI SAKUMOTO; TAIZO SHIRAI; HARUNAGA HIWATARI: "Public-Key Identification Schemes Based on Multivariate Quadratic Polynomials", CRYPTO 2011, LNCS, vol. 6841, 2011, pages 706 - 723, XP019161037 |
PATARIN, J.; COURTOIS, N.; GOUBIN, L.: "Topics in Cryptology - CT-RSA 2001", vol. 2020, April 2001, SPRINGER-VERLAG., article "QUARTZ, 128-Bit Long Digital Signatures", pages: 282 - 297 |
TSUGIO NAKAMURA ET AL.: "Pasokon de Jisshu Shinagara Manaberu Ango no Shikumi to Jisso, first edition", KABUSHIKI KAISHA NIPPON RIKO SHUPPANKAI, 30 June 2009 (2009-06-30), pages 208 - 212, XP008174533 * |
Also Published As
Publication number | Publication date |
---|---|
EP2822217A4 (en) | 2015-11-11 |
EP2822217A1 (en) | 2015-01-07 |
JPWO2013129084A1 (ja) | 2015-07-30 |
CN104137471A (zh) | 2014-11-05 |
US20150010144A1 (en) | 2015-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5790319B2 (ja) | 署名検証装置、署名検証方法、プログラム、及び記録媒体 | |
JP6069852B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP5736816B2 (ja) | 認証装置、認証方法、プログラム、及び署名生成装置 | |
JP5593850B2 (ja) | 認証装置、認証方法、プログラム、及び署名生成装置 | |
JP5790318B2 (ja) | 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム | |
WO2013129084A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP5790289B2 (ja) | 情報処理装置、情報処理方法、プログラム、及び記録媒体 | |
JP5594034B2 (ja) | 認証装置、認証方法、及びプログラム | |
TWI511517B (zh) | Information processing apparatus, information processing method, program and recording medium | |
WO2013129119A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
WO2013024697A1 (ja) | 情報処理装置、署名提供方法、署名検証方法、プログラム、及び記録媒体 | |
WO2013031420A1 (ja) | 情報処理装置、署名生成装置、署名検証装置、情報処理方法、署名生成方法、及び署名検証方法 | |
JP5790286B2 (ja) | 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム | |
WO2013024633A1 (ja) | 情報処理装置、及び情報処理方法 | |
WO2013031413A1 (ja) | 情報処理装置、情報処理方法、プログラム、及び記録媒体 | |
EP2743902B1 (en) | Information processing device and information processing method |
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: 13754371 Country of ref document: EP Kind code of ref document: A1 |
|
REEP | Request for entry into the european phase |
Ref document number: 2013754371 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2013754371 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2014502108 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |