WO2011033642A1 - 署名生成装置及び署名検証装置 - Google Patents

署名生成装置及び署名検証装置 Download PDF

Info

Publication number
WO2011033642A1
WO2011033642A1 PCT/JP2009/066302 JP2009066302W WO2011033642A1 WO 2011033642 A1 WO2011033642 A1 WO 2011033642A1 JP 2009066302 W JP2009066302 W JP 2009066302W WO 2011033642 A1 WO2011033642 A1 WO 2011033642A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
random number
hash value
signature
solution
Prior art date
Application number
PCT/JP2009/066302
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 PCT/JP2009/066302 priority Critical patent/WO2011033642A1/ja
Publication of WO2011033642A1 publication Critical patent/WO2011033642A1/ja

Links

Images

Classifications

    • 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/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Definitions

  • the present invention relates to a digital signature.
  • Digital signing technology is used for the purpose of guaranteeing the legitimacy of communication contents and preventing spoofing.
  • the RSA signature and the elliptic curve signature which are typical digital signature techniques, are secured based on the difficulty of calculation of the prime factorization problem and the discrete logarithm problem, respectively.
  • An object of the present invention is to provide a signature generation device and a signature verification device that can ensure safety even when a quantum computer appears.
  • One aspect of the present invention is a signature generation device, a storage unit storing a polynomial of a public key and a secret key corresponding to the public key, an input unit that receives a signature target document, and one or more random numbers.
  • a random number generation unit to generate, a conversion formula generation unit to generate one or more conversion formulas, a first calculation unit to calculate each solution that associates each conversion formula and each random number with the secret key, and each conversion formula
  • a first creation unit that creates a first partial data including any one of the conversion formulas and random numbers when the bit value of the hash value is a first value, and the hash When the bit value of the value is the second value, And a digital signature including the first or second partial data corresponding to the signature target document, each converted expression, and the bit value.
  • FIG. 1 is a schematic diagram of a signature generation apparatus according to the first embodiment.
  • FIG. 2 is a schematic diagram of the signature verification apparatus according to the embodiment.
  • FIG. 3 is a schematic diagram of a signature generation apparatus according to the second embodiment.
  • FIG. 4 is a schematic diagram of the signature verification apparatus according to the embodiment.
  • FIG. 5 is a schematic diagram of a signature generation apparatus according to the fifth embodiment.
  • the cut and choose method is executed through dialogue between the prover and the verifier.
  • the prover is a user of electronic cash.
  • the verifier is a recipient of electronic cash.
  • the prover creates partial information for restoring the user identification information when an unauthorized detection is detected.
  • the prover calculates a plurality of data in which the partial information is embedded, and transmits each data to the verifier.
  • the verifier selects some of the data at random, and confirms the validity of the partial information through dialogue with the prover.
  • the verifier accepts the remaining data as electronic cash if the validity is confirmed, and refuses to accept the electronic cash in other cases.
  • each of the embodiments can be implemented by either a hardware configuration or a combination configuration of hardware resources and software for each of the devices 100, 200, and 300.
  • FIG. 1 is a schematic diagram of a signature generation apparatus according to the first embodiment of the present invention
  • FIG. 2 is a schematic diagram of a signature verification apparatus according to the first embodiment.
  • the signature generation device 100 includes a storage unit 101, an input unit 102, a random number generation unit 103, a conversion formula generation unit 104, a first calculation unit 105, a conversion unit 106, a second calculation unit 107, a first generation unit 108, and a second generation.
  • Unit 109, signature generation unit 110, and output unit 111 includes a storage unit 101, an input unit 102, a random number generation unit 103, a conversion formula generation unit 104, a first calculation unit 105, a conversion unit 106, a second calculation unit 107, a first generation unit 108, and a second generation.
  • Unit 109, signature generation unit 110, and output unit 111 includes a signature generation unit 110, and output unit 111.
  • the storage unit 101 is a storage device that can be read / written from each of the units 102 to 111, and includes a public key polynomial, a secret key corresponding to the public key, security parameters k, m, n, and a hash function.
  • Information for calculating G is stored.
  • the information for calculating the safety parameters k, m, n and the hash function G may be omitted from the storage unit 101 by the units 103 to 109 holding in advance.
  • m represents the number of equations of the public key.
  • n represents the number of variables in the equation.
  • the secret key is the solution s 1 , ..., s n of the public key equation system.
  • the public key and the private key may be input in advance from the external device to the signature generation device 100 and written in the storage unit 101, and are calculated by a key generation unit (not shown) in the signature generation device 100 and stored in the storage unit 101. May be written.
  • the parameter k and the function G are as follows, for example.
  • the total number k is preferably 160 or more, for example, from the viewpoint of properly executing the cut and choose method.
  • G Collision-resistant one-way hash function that converts data of arbitrary length into k-bit data.
  • the input unit 102 has a function of accepting input of a signature target document msg.
  • the random number generation unit 103 has a function of generating one or more random numbers r i, 1 ,..., R i, n .
  • the conversion formula generation unit 104 has a function of generating one or more conversion formulas g i (x 1 ,..., X n , r i, 1 ,..., R i, n ).
  • the conversion expression g i (x 1 , ..., x n , r i, 1 , ..., r i, n ) is expressed by 2n data or variables (x 1 , ..., x n , r i, 1 , ..., r i, n ) is an expression for converting n data or variables.
  • a polynomial that performs subtraction, addition, or arbitrary calculation between data or variables can be used as appropriate.
  • the first calculation unit 105 has a function of calculating each solution z i, 1 ,..., Z i, n that associates each generated conversion formula and each
  • the conversion unit 106 converts the public key polynomial f j (x 1 ,..., X n ) based on each generated conversion expression and each random number, and converts each converted expression f 1 to j ( x 1 , ..., x n ).
  • the “transformed expression” is also called “polynomial”.
  • the second calculation unit 107 has a function of calculating a hash value d based on the signature target document msg that has received the input and each converted expression obtained by the conversion unit 106.
  • the first creation unit 108 includes any one of the generated conversion expressions and random numbers. It has a function of creating the first partial data ⁇ i .
  • the first value is not limited to “0” but may be “1”.
  • the “first partial data” is also simply referred to as “partial data”.
  • the second creating unit 109 creates the second partial data ⁇ i including any one of the solutions when the bit value d i of the hash value d is the second value (eg, “1”).
  • the second value is not limited to “1” and may be “0” as long as it is different from the first value.
  • the “second partial data” is also simply referred to as “partial data”.
  • the signature generation unit 110 has a function of generating a digital signature “sign” including the first or second partial data ⁇ i corresponding to the signature target document msg, each converted expression, and the bit value d i .
  • the output unit 111 has a function of outputting the generated digital signature.
  • the signature verification apparatus 200 includes a storage unit 201, an input unit 202, a calculation unit 203, a restoration unit 204, a first determination unit 205, a second determination unit 206, and an output unit 207.
  • the storage unit 201 is a storage device that can be read / written from each of the units 202 to 206, and has information for calculating the public key, the security parameters k, m, n, and the hash function G described above. It is remembered. Note that the information for calculating the safety parameters k, m, n and the hash function G may be omitted from the storage unit 201 by the units 203 to 206 being held in advance.
  • the input unit 202 has a function of accepting input of a digital signature sign.
  • the calculation unit 203 has a function of calculating a hash value d based on the signature target document msg in the digital signature sign that has received the input and each converted expression.
  • the restoration unit 204 has a function of restoring the “conversion formula and random number” or “solution” from each partial data ⁇ i in the digital signature sign according to the bit value d i of the hash value d.
  • the first determination unit 205 converts the public key polynomial based on the restored conversion formula and the random number, and the transformed formula obtained from the conversion result And a function for determining whether or not the converted expression in the digital signature sign is equal.
  • the second determination unit 206 determines whether or not the value obtained by substituting the restored solution into the converted expression in the digital signature sign is equal to zero. Has function.
  • the output unit 207 has a function of outputting acceptance of the digital signature sign when all the determination results in the first and second determination units 205 and 206 indicate “equal”.
  • Each set ⁇ f , ⁇ f ⁇ , ⁇ g can be used from the conversion formula generation unit 104 or the like based on the parameters k, m, n in the storage unit 101.
  • a public key set ⁇ f in which a public key exists is expressed by the following equation.
  • deg f represents the upper limit of the order.
  • x n , y 1 , ..., y n (a 1,1 x 1 ⁇ 2 + a 1,2 x + y 1 , ..., a n, 3 x 3 -a n, n-1 x n- 1 ⁇ 3 + a n, n x n + b n, 2 r 2 + b n, n r n ) etc.
  • a set of converted expressions ⁇ f ⁇ in which converted expressions f ⁇ exist after conversion is expressed by the following expression.
  • operations of the signature generation apparatus and signature verification apparatus configured as described above will be sequentially described.
  • the input unit 102 receives the signature target document msg as an input.
  • the transformation g i, j (x 1 , ..., r i, j, n ⁇ R generated in [STEP 20] the transformation g i, j (x 1 , ...
  • x n , r i, j, 1 , ..., r i, j, n (x 1 ⁇ r i, j, 1 , ..., x n ⁇ r i, j, n ) Also good.
  • the set of secret keys (s 1 , ..., s n ) g i, j (z i, j, 1 , ..., z i, j, n , r i, j , 1 , ..., r i, j, n )
  • a set of solutions z i, j, 1 , ..., z i, j, n ) is calculated.
  • the description of this empty set ⁇ is the same in the following embodiments.
  • the generated digital signature “sign” is output from the output unit 111.
  • a digital signature sign ⁇ msg, f ⁇ 1,1 (x 1, ..., x n), ..., f ⁇ 1, m (x 1 , ..., x n ), f to 2,1 (x 1 , ..., x n ), ..., f to 2, m (x 1 , ..., x n ), ...
  • f to k 1 (x 1 , ..., x n ), ..., f to k, m (x 1 , ..., x n ), ⁇ 1,1 , ..., ⁇ 1 , m , ⁇ 2,1 , ..., ⁇ 2, m , ⁇ k, 1 , ..., ⁇ k, m ⁇ .
  • [STEP120] calculation unit 203, the parameter k in the storage unit 201, m, based on the n hash function G, a hash value d G (msg, f ⁇ 1,1 (x 1, ..., x n) , ..., f to 1, m (x 1 , ..., x n ), f to 2,1 (x 1 , ..., x n ), ..., f to 2, m (x 1 , ..., x n ), ..., f to k, 1 (x 1 , ..., x n ), ..., f to k, m (x 1 , ..., x n )) Is calculated.
  • the restoration unit 204 converts the partial data ⁇ i, j to (g i, j (x 1 , ..., x n , y 1 , ..., y n ), r i, j, 1 , ..., r i, j, n ).
  • the restoration unit 204 restores the solution ( ⁇ , z i, j, 1 , ..., z i, j, n ) from the partial data ⁇ i, j .
  • the hash value d is calculated from msg and the converted expression, and the partial data ⁇ including the conversion data (conversion expression and random number) related to the public key or the conversion data (solution) related to the private key according to the bit value d i of the hash value d i is generated, and a digital signature “sign” including a document to be signed, a converted expression, and partial data is generated.
  • the partial data ⁇ i in the digital signature “sign” is verified by different equations according to the bit value d i of the hash value d.
  • a digital signature can be provided based on the difficulty of calculating an equation system solving problem as a basis of security, so that security can be ensured even if a quantum computer appears.
  • the transformed expressions f to j (x 1 , ..., x n ) are correctly calculated, and the partial data ⁇ i is calculated using the secret keys s 1 , ..., s n Can be confirmed.
  • the secret key s 1, ... is forgery attack to create a digital signature sign to pass verification to explain that it is difficult.
  • the attacker needs to output the polynomials f 1 to i, j (x 1 ,..., X n ) that are the inputs of the hash function G.
  • f i, j (x 1 , ..., x n ) is assumed in expectation that the i-th bit of the hash value is 0.
  • f ⁇ i, j (x 1 , ..., x n) or converted to, I hope that predetermined solutions z i that the i th bit of the hash value is 1, j, 1, .. It is conceivable to derive equations f to i, j (x 1 , ..., x n ) with., z i, j, n .
  • the solution of m n-variable equations is used.
  • the present invention is not limited to this.
  • the digital signature sign is as follows, the processing amount and the data amount can be reduced as compared with the first embodiment.
  • FIG. 3 is a schematic diagram of a signature generation apparatus according to the second embodiment of the present invention
  • FIG. 4 is a schematic diagram of a signature verification apparatus according to the same embodiment. Therefore, the detailed explanation is omitted, and different parts are mainly described here. In the following embodiments, the same description is omitted.
  • the second embodiment is a modification of the first embodiment and is intended to improve the security of a digital signature.
  • the signature generation apparatus 100 is a second modification compared to the configuration shown in FIG.
  • a random number generator 112, a third calculator 113, and a fourth calculator 114 are further provided.
  • the second random number generator 112 has a function of generating each random number S i, j different from each random number r i, 1 ,..., R i, n .
  • the “random hash value” is also called “element value”.
  • the “solution hash value” is also simply referred to as “hash value”.
  • the storage unit 101 stores parameters k 1 and k 2 and hash functions H 1 and H 2 in addition to the public key, secret key, parameter k, and hash function G described above.
  • the parameters k 1 and k 2 and the functions H 1 and H 2 are as follows.
  • bit length k 1 bit length of the input of the hash function H 1 Bit length k 1, as a difficult to predict the input of the H 1, for example, preferably 160 or more.
  • bit length k 2 bit length of the output of the hash function H 1
  • the bit length k 2 is preferably, for example, 160 or more so that H 2 satisfies the collision resistance.
  • H 1 Collision-resistant one-way function that associates k 1- bit data with one of the equations in the transformed set ⁇ f ⁇ .
  • H 2 A collision-resistant one-way function that converts data of arbitrary length (coefficients of multiple equations) into k 2 -bit data.
  • the conversion unit 106 adds one random number hash value f ′ i, j (x 1 ,..., X n ) of each random number hash value to the conversion result, The conversion formula is obtained.
  • the second calculation unit 107 is based on the converted expressions obtained by adding the random hash values and the solution hash values v 1,1 ,..., V k, m in the function described above. Calculate the hash value d.
  • the first creation unit 108 creates the first partial data ⁇ i including any one of the random numbers S i, j among the other random numbers in the above-described function.
  • the signature generation unit 110 generates a digital signature sign including each solution hash value v 1,1 ,..., V k, m in the above-described function.
  • the signature verification apparatus 300 includes a storage unit 301, an input unit 302, a calculation unit 303, a restoration unit 304, a first determination unit 305, a second determination unit 306, and an output unit 307.
  • the storage unit 301 is a storage device that can be read / written from each of the units 302 to 306.
  • the parameters k 1 , k 2 and hash Functions H 1 and H 2 are stored.
  • the parameters k 1 and k 2 and the functions H 1 and H 2 are as described above.
  • the information for calculating the parameters k, k 1 , k 2 , m, n and the hash functions G, H 1 , H 2 is omitted from the storage unit 301 by the respective units 303 to 306 being held in advance. May be.
  • the input unit 302 has a function of accepting input of a digital signature sign.
  • the calculation unit 303 has a function of calculating a hash value d based on the signature target document msg, each converted expression, and each solution hash value v 1,1 ,..., V k, m in the digital signature sign.
  • the restoration unit 304 has a function of restoring “another random number, conversion formula and random number” or “solution” from each partial data ⁇ i in the digital signature sign according to the bit value d i of the hash value d.
  • the first determination unit 305 calculates a random number hash value from the different random number when the restoration unit 304 restores another random number, a conversion formula, and a random number, and calculates a public key polynomial based on the conversion formula and the random number.
  • the converted expression f i, j (g i, j (x 1 , ..., x n , r i, j, 1 ,7) Obtained by converting and adding the random hash value to the conversion result.
  • the second determination unit 306 calculates a solution hash value H 2 (f calculated from a value obtained by substituting the restored solution into the converted expression in the digital signature sign.
  • H 2 a solution hash value (f calculated from a value obtained by substituting the restored solution into the converted expression in the digital signature sign.
  • ⁇ I, j (z i, j, 1 , ..., z i, j, n )) has a function to determine whether or not the solution hash value v i, j in the digital signature sign is equal .
  • the output unit 307 has a function of outputting acceptance of the digital signature sign when all the determination results in the first and second determination units 305 and 306 indicate “equal”.
  • a polynomial defined on the commutative ring R is used as in the first embodiment.
  • the public key set ⁇ f , the transformation formula set ⁇ g , and the transformed formula set ⁇ f ⁇ are used in the same meaning as in the first embodiment, and the description is omitted.
  • [STEP 60 '] second calculation unit 107, the parameter k in the storage unit 101, m, based on the n hash function G, a hash value d G (msg, f ⁇ 1,1 (x 1, ..., x n ), ..., f to 1, m (x 1 , ..., x n ), f to 2,1 (x 1 , ..., x n ), ..., f to 2, m (x 1 , ..., x n ), ..., f to k, 1 (x 1 , ..., x n ), ..., f to k, m (x 1 , ... , x n ), v 1,1 , ..., v 1, m , v 2,1 , ..., v 2, m , v k, 1 , ..., v k, m ) .
  • [STEP120 '] calculation unit 303, the parameter k in the storage unit 301, m, based on the n hash function G, a hash value d G (msg, f ⁇ 1,1 (x 1, ..., x n ), ..., f to 1, m (x 1 , ..., x n ), f to 2,1 (x 1 , ..., x n ), ..., f to 2, m ( x 1 , ..., x n ), ..., f to k, 1 (x 1 , ..., x n ), ..., f to k, m (x 1 , ..., x n ), v 1,1 , ..., v 1, m , v 2,1 , ..., v 2, m , v k, 1 , ..., v k, m ).
  • the restoration unit 304 converts the partial data ⁇ i, j to (S i, j , g i, j (x 1 , ..., x n , y 1 , ..., y n ), r i, j, 1 , ..., r i, j, n ) are restored.
  • the configuration using the element values f ′ i, j (x 1 ,..., X n ) increases the safety in addition to the effects of the first embodiment. Can be improved.
  • the element value f ′ i, j (x 1 ) is calculated in the process of calculating the transformed expressions f 1 to i, j (x 1 ,..., X n ) of [STEP 50 ′]. ,..., x n ) is different from that of the first embodiment.
  • the signature of the partial data f ⁇ i, j (x 1 , ..., x n) and are distributed uniformly on the set of polynomials having the same section and ⁇ the conversion formula set gamma f is Not exclusively.
  • the conversion formula g i, j (x 1 , ..., x n , y 1 , ...) used when calculating the converted expressions f to i, j (x 1 , ..., x n ). ., y n ) and random numbers r i, j, 1 , ..., r i, j, n may leak.
  • the partial data f to i, j (x 1 ,%) Of the signature is obtained by adding the element values f ′ i, j (x 1 ,..., X n ). ., x n ) are uniformly distributed over a set of polynomials with the same terms as ⁇ f ⁇ . Therefore, the possibility of the leakage described above can be avoided, and sufficient safety can be ensured as compared with the first embodiment.
  • the third embodiment is based on the difficulty of calculating the section finding problem on the algebraic surface based on the safety.
  • An algebraic surface on a commutative ring R is a set of zeros represented by a three-variable polynomial X (x, y, t) ⁇ R [x, y, t] of x, y, t.
  • u x (t) and u y (t) are polynomials on the commutative ring R with t as a variable.
  • the section (u x A method for obtaining (t), u y (t), t) is not known, and calculation is difficult. This is called the difficulty of calculating the section problem on an algebraic surface.
  • Parameter k and function G are the same as in the first embodiment.
  • Each random number is a random polynomial (r i, 1 (t), r i, 2 (t), r i, 3 (t)) having a random number as a coefficient.
  • Each solution is a solution polynomial (z i, 1 (t), z i, 2 (t), z i, 3 (t)).
  • a polynomial defined on the commutative ring R is used.
  • Each set ⁇ X , ⁇ X to, ⁇ g can be used from the random number generation unit 103 or the like based on the parameter k in the storage unit 101.
  • a public key set ⁇ X in which a public key exists is expressed by the following equation.
  • deg X represents the upper limit of the order.
  • operations of the signature generation apparatus and signature verification apparatus configured as described above will be sequentially described.
  • ⁇ X ⁇ ⁇ X (g (x, y, t, r i, 1 (t), r i, 2 (t), r i, 3 (t)))
  • the transformation equation is g i (x, y, t, r i, 1 (t), r i, 2 (t), r i, 3 (t)))
  • Key set (u x (t), u y (t), t) g i (z i, 1 (t), z i, 2 (t), z i, 3 (t), r i, 1 set of solutions satisfying (t), r i, 2 (t), r i, 3 (t)) (z i, 1 (t), z i, 2 (t), z i, 3 (t))
  • a digital signature sign ⁇ msg, X ⁇ 1 (x, y, t), ..., X ⁇ k (x, y, t), ⁇ 1, ... , ⁇ k ⁇ .
  • the generated digital signature “sign” is output from the output unit 111.
  • the digital signature based on the calculation difficulty of the algebraic curved section finding problem can be realized, and the same effect as that of the first embodiment can be obtained.
  • the third embodiment can be modified to a configuration using m algebraic surfaces having the same section or a configuration using m algebraic surfaces having different sections. Since these modifications can be realized by combining the first embodiment with the third embodiment, detailed description thereof will be omitted.
  • the element of ⁇ T is selected as the random polynomial r i, 3 (t).
  • the third parameter of the section is t, and the conversion for the parameter t is not performed.
  • safety is not impaired.
  • ⁇ X ⁇ ⁇ X (g (x, y, t, r i, 1 (t), r i, 2 (t), r i, 3 (t)))
  • the fourth embodiment is based on the difficulty of calculating the section finding problem on the algebraic surface in the third embodiment as the basis of safety.
  • X ⁇ i (x, y, t) X (g i ( x, y, t, r i , 1 (t), r i, 2 (t), r i, 3 (t)) + X '(x, y, by t), the conversion formula X ⁇ i (x, y, t) are calculated.
  • the equations are limited to equations relating to algebraic surfaces as follows.
  • Parameters k, k 1 , k 2 and functions G, H 1 , H 2 are the same as those in the second embodiment.
  • the function H 1 is the k 1 bits of data, point to use a crashworthiness one-way function (the conversion equation set gamma X-associating to one of equations of the conversion formula set gamma X in ⁇ is the 2).
  • Each random number is a random polynomial (r i, 1 (t), r i, 2 (t), r i, 3 (t)) having a random number as a coefficient.
  • Each solution is a solution polynomial (z i, 1 (t), z i, 2 (t), z i, 3 (t)).
  • Each solution hash value v i is a hash value H 2 (X ′ i (z i, 1 (t), z i, 2 (t), z i, 3 (t))) for the solution polynomial.
  • Each of the conversion formula hash value d, the hash over polynomial algebraic surface value G (msg, X ⁇ 1 ( x, y, t), ..., X ⁇ k (x, y, t), v 1, ..., v k ⁇ ).
  • the fourth embodiment also uses a polynomial defined on the commutative ring R as in the third embodiment.
  • ⁇ X , ⁇ T , ⁇ X ⁇ are used in the same meaning as in the third embodiment, and description thereof is omitted.
  • K polynomials X to i X (g i (x, y, t, r i, 1 (t), r i, 2 (t), r i, 3 (t))) + X ' i ( x, y, t) is calculated.
  • X ′ i (z i, 1 (t), z i, 2 (t), z i, 3 (t))) is calculated.
  • i 1, Depending on the value of:
  • a digital signature sign ⁇ msg, X ⁇ 1 (x, y, t), ..., X ⁇ k (x, y, t), ⁇ 1, .. ., ⁇ k , v 1 , ..., v k ⁇ .
  • the generated digital signature “sign” is output from the output unit 111.
  • a digital signature sign ⁇ msg, X ⁇ 1 (x, y, t), ..., X ⁇ k (x, y, t), ⁇ 1 , ..., ⁇ k , v 1 , ..., v k ⁇ are accepted.
  • the restoration unit 304 calculates (S i , g i (x, y, t, w 1 , w 2 , w 3 ), r from the partial data ⁇ i. i, 1 (t), r i, 2 (t), r i, 3 (t)) are restored.
  • the configuration using the element values X ′ i (x, y, t) as in the second embodiment, in addition to the effects of the third embodiment, Can be improved.
  • the fourth embodiment is modified to a configuration using m algebraic surfaces having the same section or a configuration using m algebraic surfaces having different sections. it can.
  • FIG. 5 is a schematic diagram of a signature generation apparatus according to the fifth embodiment of the present invention, and the conversion formula generation unit 104 is omitted compared to FIG. 3 described above.
  • the fifth embodiment is a specific example of the fourth embodiment.
  • the polynomial r i, x (t), r i, y (t) ⁇ T has the same form as the section u x (t), u y (t) (u x (t), u y (t ))).
  • This polynomial r i, x (t), r i, y (t) ⁇ T is a random polynomial having random numbers as coefficients.
  • the signature generation apparatus 100 omits the conversion formula generation unit 104 as shown in FIG.
  • the conversion formula generation unit 104 can be omitted by setting the conversion formula in advance.
  • the signature generation apparatus 100 includes a conversion formula generation unit 104 as shown in FIG.
  • the signature verification apparatus 300 is configured as shown in FIG.
  • the polynomials r i, x (t), r i, y (t) are polynomials of the same format as the sections u x (t), u y (t).
  • the k polynomials X to i X (x ⁇ r i, x (t), y ⁇ r i, y (t), t) + X ′ i (x, y, t) as variables are calculated.
  • hash value d G (msg, X to 1 (x, y, t), ..., X to k (x, y, t), v 1 , ... , v k ) is calculated.
  • i 1, Depending on the value of:
  • digital signature sign ⁇ msg, X to 1 (x, y, t), ..., X to k (x, y, t), ⁇ 1 , ..., ⁇ k , v 1 , ..., v k ⁇ are output.
  • digital signature sign ⁇ msg, X ⁇ 1 (x, y, t), ..., X ⁇ k (x, y, t), ⁇ 1 , ..., ⁇ k , v 1 , ..., v k ⁇ are accepted.
  • hash value d G (msg, X to 1 (x, y, t), ..., X to k (x, y, t), v 1 , ... , v k ) is calculated.
  • the specific example of the fourth embodiment can be executed, and the same effect as that of the fourth embodiment can be obtained.
  • the fifth embodiment is modified to a configuration using m algebraic surfaces having the same section or a configuration using m algebraic surfaces having different sections. it can.
  • the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage.
  • various inventions can be formed by appropriately combining a plurality of components disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment.
  • constituent elements over different embodiments may be appropriately combined.
  • DESCRIPTION OF SYMBOLS 100 ... Signature generation apparatus 101, 201, 301 ... Memory

Abstract

 署名生成装置(100)は、公開鍵の多項式及び秘密鍵を記憶した記憶部(101)と、署名対象文書の入力を受け付ける入力部(102)と、一つ以上の乱数を生成する乱数生成部(103)と、一つ以上の変換式を生成する変換式生成部(104)と、各変換式及び各乱数を秘密鍵に対応付ける各解を計算する第1計算部(105)と、各変換式及び各乱数に基づいて公開鍵の多項式を変換して各被変換式を得る変換部(106)と、署名対象文書及び各被変換式からハッシュ値を計算する第2計算部(107)と、ハッシュ値のビット値に応じて「変換式及び乱数」又は「解」を含む各部分データを作成する第1及び第2作成部(108,109)と、署名対象文書、各被変換式、各部分データを含むディジタル署名を生成する署名生成部(110)と、を備えている。

Description

署名生成装置及び署名検証装置
 本発明は、ディジタル署名に関する。
 通信内容の正当性の保証や、なりすまし防止を目的としてディジタル署名の技術が用いられる。代表的なディジタル署名の技術であるRSA署名及び楕円曲線署名は、それぞれ素因数分解問題及び離散対数問題の計算困難性を根拠として、安全性が確保されている。
D. Chaum, A. Fiat, and M. Naor. Untraceable Electronic Cash, CRYPTO’88, Springer-Verlag, 1989.
 しかしながら、上述した技術では、素因数分解問題や離散対数問題を効率的に解くことができる量子計算機が出現すると、安全性を確保できない。
 本発明の目的は、量子計算機が出現しても安全性を確保し得る署名生成装置及び署名検証装置を提供することである。
 本発明の一つの局面は、署名生成装置であって、公開鍵の多項式及び前記公開鍵に対応する秘密鍵を記憶した記憶部と、署名対象文書を受け付ける入力部と、一つ以上の乱数を生成する乱数生成部と、一つ以上の変換式を生成する変換式生成部と、前記各変換式及び各乱数を前記秘密鍵に対応付ける各解を計算する第1計算部と、前記各変換式及び各乱数に基づいて前記公開鍵の多項式を変換し、当該変換された各被変換式を得る変換部と、前記署名対象文書及び前記各被変換式に基づいてハッシュ値を計算する第2計算部と、前記ハッシュ値のビット値が第1値のとき、前記各変換式及び各乱数のうちのいずれかの変換式及び乱数を含む第1部分データを作成する第1作成部と、前記ハッシュ値のビット値が第2値のとき、前記各解のうちのいずれかの解を含む第2部分データを作成する第2作成部と、前記署名対象文書、前記各被変換式、及び前記ビット値に応じた前記第1又は第2部分データを含むディジタル署名を生成する署名生成部と、を備えた署名生成装置である。
 本発明によれば、量子計算機が出現しても安全性を確保できる。
図1は第1の実施形態に係る署名生成装置の概略図である。 図2は同実施形態における署名検証装置の概略図である。 図3は第2の実施形態に係る署名生成装置の概略図である。 図4は同実施形態における署名検証装置の概略図である。 図5は第5の実施形態に係る署名生成装置の概略図である。
 以下、本発明の各実施形態について図面を参照して説明する。但し、その前に、各実施形態が用いるカット&チューズ(Cut&Choose)法の概要について電子現金システムを例に挙げて述べる。カット&チューズ法は、例えば、電子現金システムなどの応用プロトコルを安全に構成するために用いられる(例えば、非特許文献1参照)。電子現金システムでは、不正行為がない場合、プライバシを保護するために利用者識別情報を秘匿し、不正行為がある場合、利用者を特定するために利用者識別情報を露見させる必要がある。
 係る電子現金システムでは、カット&チューズ法が証明者と検証者の対話により実行される。ここで、証明者は電子現金の利用者である。検証者は電子現金の受取者である。
 証明者は、利用者識別情報を不正発覚時に復元するための部分情報を作成する。証明者は、部分情報を埋め込んだ複数のデータを計算し、各データを検証者に送信する。検証者は、各データのうちのいくつかのデータをランダムに選択し、部分情報の正当性を証明者との対話により確認する。検証者は、正当性を確認できた場合には残りのデータを電子現金として受理し、他の場合には電子現金の受け取りを拒絶する。
 以上がカット&チューズ法の概要である。但し、各実施形態では、ハッシュ値を用いた非対話型のカット&チューズ法を用いる。各実施形態は、カット&チューズ法の下で、方程式系の求解問題の計算困難性を安全性の根拠としている。第1及び第2の実施形態は、方程式系としてランダム多項式を用いる。第3乃至第5の実施形態は、方程式系の求解問題として代数曲面上の求セクション問題を用いる。また、各実施形態は、図1乃至図4に示すように、装置100,200,300毎に、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体1,2,3から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。続いて、各実施形態の詳細を順次説明する。
 (第1の実施形態)
 図1は本発明の第1の実施形態に係る署名生成装置の概略図であり、図2は同実施形態における署名検証装置の概略図である。
 署名生成装置100は、記憶部101、入力部102、乱数生成部103、変換式生成部104、第1計算部105、変換部106、第2計算部107、第1作成部108、第2作成部109、署名生成部110及び出力部111を備えている。
 ここで、記憶部101は、各部102~111から読出/書込可能な記憶装置であり、公開鍵の多項式、公開鍵に対応する秘密鍵、安全性のパラメータk,m,n、およびハッシュ関数Gを計算するための情報が記憶されている。なお、安全性のパラメータk,m,n、およびハッシュ関数Gを計算するための情報は、予め各部103~109が保持することにより、記憶部101から省略してもよい。
 公開鍵は、可換環R上のm本のn変数方程式f1(x1,...,xn)=0,..., fm(x1,...,xn)=0である。mは公開鍵の方程式の本数を表す。nは方程式の変数の個数を表す。
 秘密鍵は、公開鍵の方程式系の解s1,...,snである。
 公開鍵と秘密鍵は、外部装置から予め署名生成装置100に入力されて記憶部101に書き込まれてもよく、署名生成装置100内の鍵生成部(図示せず)で計算されて記憶部101に書き込まれてもよい。
 パラメータkと関数Gは、例えば、以下の通りである。
 k:カット&チューズ法で用いるデータの総数。総数kは、カット&チューズ法を適正に実行する観点から、例えば160以上の値が好ましい。
 G:任意の長さのデータをkビットのデータに変換する耐衝突一方向性ハッシュ関数。
 入力部102は、署名対象文書msgの入力を受け付ける機能をもっている。
 乱数生成部103は、1つ以上の乱数ri,1,..., ri,nを生成する機能をもっている。
 変換式生成部104は、1つ以上の変換式gi(x1,...,xn,ri,1,..., ri,n)を生成する機能をもっている。
 ここで、変換式gi(x1,...,xn, ri,1,...,ri,n)は、2n個のデータあるいは変数(x1,...,xn, ri,1,...,ri,n)をn個のデータあるいは変数に変換するための式である。具体的には例えば、以下に示すように、データあるいは変数間で減算、加算又は任意の演算を行う多項式が適宜使用可能となっている。
gi(x1,...,xn, ri,1,...,ri,n)=(x1-ri,1,...,xn-ri,n)、
gi(x1,...,xn, ri,1,...,ri,n)=(x1*ri,1,...,xn+ri,n)又は、
gi(x1,...,xn, ri,1,...,ri,n)=(x1^2+ri,1,...,2xn-1+xn-ri,n)
 第1計算部105は、生成された各変換式及び各乱数を秘密鍵に対応付ける各解zi,1,..., zi,nを計算する機能をもっている。
 変換部106は、生成された各変換式及び各乱数に基づいて公開鍵の多項式fj(x1,...,xn)を変換し、当該変換された各被変換式f j(x1,...,xn)を得る機能をもっている。ここで、jは方程式番号である(j=1,...,m)。なお、「被変換式」は「多項式」とも呼ぶ。
 第2計算部107は、入力を受け付けた署名対象文書msg及び変換部106により得られた各被変換式に基づいてハッシュ値dを計算する機能をもっている。ハッシュ値dはkビットであり、各ビット値diを並べて構成される(i=1,...,k)。
 第1作成部108は、ハッシュ値dのビット値diが第1値(例、“0”)のとき、生成された各変換式及び各乱数のうちのいずれかの変換式及び乱数を含む第1部分データσiを作成する機能をもっている。なお、第1値は“0”に限らず、“1”でもよい。また、「第1部分データ」は、単に「部分データ」とも呼ぶ。
 第2作成部109は、ハッシュ値dのビット値diが第2値(例、“1”)のとき、各解のうちのいずれかの解を含む第2部分データσiを作成する機能をもっている。なお、第2値は、第1値とは異なる値であればよいので、“1”に限らず、“0”でもよい。また、「第2部分データ」は、単に「部分データ」とも呼ぶ。
 署名生成部110は、署名対象文書msg、各被変換式、及びビット値diに応じた第1又は第2部分データσiを含むディジタル署名signを生成する機能をもっている。
 出力部111は、生成されたディジタル署名を出力する機能をもっている。
 一方、署名検証装置200は、記憶部201、入力部202、計算部203、復元部204、第1判定部205、第2判定部206及び出力部207を備えている。
 ここで、記憶部201は、各部202~206から読出/書込可能な記憶装置であり、前述した公開鍵、安全性のパラメータk,m,n、およびハッシュ関数Gを計算するための情報が記憶されている。なお、安全性のパラメータk,m,n、およびハッシュ関数Gを計算するための情報は、予め各部203~206が保持することにより、記憶部201から省略してもよい。
 入力部202は、ディジタル署名signの入力を受け付ける機能をもっている。
 計算部203は、入力を受け付けたディジタル署名sign内の署名対象文書msg及び各被変換式に基づいてハッシュ値dを計算する機能をもっている。
 復元部204は、ハッシュ値dのビット値diに応じて、ディジタル署名sign内の各部分データσiから「変換式及び乱数」又は「解」を復元する機能をもっている。
 第1判定部205は、復元部204により変換式及び乱数が復元されたとき、当該復元された変換式及び乱数に基づいて公開鍵の多項式を変換し、当該変換結果から得られた被変換式と、ディジタル署名sign内の被変換式とが等しいか否かを判定する機能をもっている。
 第2判定部206は、復元部204により解が復元されたとき、当該復元された解をディジタル署名sign内の被変換式に代入して得られた値が零に等しいか否かを判定する機能をもっている。
 出力部207は、第1及び第2判定部205,206における全ての判定結果が「等しい」旨を示す場合、ディジタル署名signの受理を出力する機能をもっている。
 続いて、第1の実施形態における可換環R上で定義される多項式の集合について述べる。なお、各集合Γff~,Γgは、記憶部101内のパラメータk,m,nに基づいて、変換式生成部104等から利用可能となっている。
 公開鍵が存在する公開鍵集合Γfを次式で表す。degfは次数の上限を表す。
Figure JPOXMLDOC01-appb-M000001
 変換式集合Γgとしては、g(x1,...,xn, y1,...,yn)=(x1-y1, ..., xn-yn)や、g(x1,...,xn, y1,...,yn)=(2x1-y1, ..., 3xn-2yn)や、g(x1,...,xn, y1,...,yn)=(a1,1x1^2+a1,2x+y1, ..., an,33-an,n-1xn-1^3+an,nxn+bn,2r2+bn,nrn)などを含む集合とする。
 変換後の被変換式fが存在する被変換式集合Γf~を次式で表す。
 Γf~={f(x1,...,xn)=f(g(x1,...,xn, r1,...,rn))| 
f(x1,...,xn)∈Γf, g(x1,...,xn, y1,...,yn)∈Γg, r1,...,r∈R}
 次に、以上のように構成された署名生成装置及び署名検証装置の動作を順次説明する。
 [STEP10] 署名生成装置100では、入力部102が、署名対象文書msgを入力として受け付ける。
 [STEP20] 乱数生成部103は、記憶部101内のパラメータk,m,nに基づき、i=1,...,k, j=1,...,mについて、乱数ri,j,1,...,ri,j,n∈Rをランダムに生成する。
 [STEP30] 変換式生成部104は、記憶部101内のパラメータk,m,nに基づき、i=1,...,k, j=1,...,mについて、各変換式gi,j(x1,...,xn, y1,...,yn)∈Γgをランダムに生成する。
 例えば、変換式集合Γg={g(x1,...,xn,y1,...,yn)=(x1-r1,...,yn-yn)}}の場合には、[STEP20]で生成された乱数ri,j,1,...,ri,j,n∈Rに対して、変換式gi,j(x1,...,xn, ri,j,1,...,ri,j,n)=(x1-ri,j,1,...,xn-ri,j,n)などとしてもよい。
 [STEP40] 第1計算部105は、記憶部101内のパラメータk,m,nと秘密鍵s1,...,snに基づき、i=1,...,k, j=1,...,mについて、秘密鍵の集合(s1,...,sn)=gi,j(zi,j,1, ..., zi,j,n, ri,j,1, ..., ri,j,n)を満たす解の集合(zi,j,1, ..., zi,j,n)を計算する。
 例えば、上述の例では、i=1,...,k, j=1,...,m, L=1,...,nについて、解zi,j,L=sL+ri,j,Lとする。
 [STEP50] 変換部106は、記憶部101内のパラメータk,m,nと公開鍵f(x1,...,xn),f(x1,...,xn)に基づき、i=1,...,k, j=1,...,mについて、x1,...,xnを変数とするk*m本の多項式f i,j=fi,j(gi,j(x1,...,xn, ri,j,1,...,ri,j,n))∈Γf~を計算する。
 ここで、Γf~は被変換式集合Γf~={f(g(x1,...,xn,r1,...,rn))|f∈Γf,g∈Γg,r1, ..., rn∈R}をあらわす。
 [STEP60] 第2計算部107は、記憶部101内のパラメータk,m,nとハッシュ関数Gに基づき、kビットのハッシュ値d=G(msg,f 1,1(x1,...,xn),...,f 1,m(x1,...,xn),f 2,1(x1,...,xn),...,f 2,m(x1,...,xn),...,f k,1(x1,...,xn),...,f k,m(x1,...,xn))を計算する。ハッシュ値dの各ビットdiを(d1...dk)で表す。この各ビットdiの表記は以下の各実施形態でも同様である。
 第1及び第2作成部108,109は、記憶部101内のパラメータk,m,nに基づき、i=1,...,k, j=1,...,mについて、[STEP60]で計算したハッシュ値dの各ビットdiの値に応じて以下を実行する。
 [STEP70A] ビットdi=0のとき、第1作成部108は、部分データσi,j=(gi,j(x1,...,xn, y1,...,yn), ri,j,1,...,ri,j,n)を作成する。
 [STEP70B] ビットdi=1のとき、第2作成部109は、部分データσi,j=(φ, zi,j,1,..., zi,j,n)を作成する。ここで、φは空集合を表し、ビットdi=0の場合と、ビットdi=1の場合での要素数を揃える目的で用いる。この空集合φの説明は、以下の各実施形態でも同様である。部分データσi,jは、k*m個ある。
 [STEP80] 署名生成部110は、ディジタル署名sign={msg, f 1,1(x1,...,xn), ..., f 1,m(x1,...,xn), f 2,1(x1,...,xn), ..., f 2,m(x1,...,xn), ..., f k,1(x1,...,xn), ..., f k,m(x1,...,xn), σ1,1, ..., σ1,m, σ2,1, ..., σ2,m, σk,1, ..., σk,m}を生成する。生成されたディジタル署名signは出力部111から出力される。
 以上が署名生成装置100の動作である。次に、署名検証装置200の動作を述べる。
 [STEP110] 署名検証装置200では、入力部202が、ディジタル署名sign={msg, f 1,1(x1,..., xn), ..., f 1,m(x1,...,xn), f 2,1(x1,...,xn), ..., f 2,m(x1,...,xn), ..., f k,1(x1,...,xn), ..., f k,m(x1,...,xn), σ1,1, ..., σ1,m, σ2,1, ..., σ2,m, σk,1, ..., σk,m}を受け付ける。
 [STEP120] 計算部203は、記憶部201内のパラメータk,m,nとハッシュ関数Gに基づき、ハッシュ値d=G(msg, f 1,1(x1,...,xn), ..., f 1,m(x1,...,xn),f 2,1(x1,...,xn), ..., f 2,m(x1,...,xn), ..., f k,1(x1,...,xn), ..., f k,m(x1,...,xn))を計算する。
 [STEP130] 復元部204、第1及び第2判定部205,206は、記憶部201内のパラメータk,m,nに基づき、i=1,...,k, j=1,...,mについて、[STEP120]で計算したハッシュ値dの各ビットdiの値に応じて以下を実行する。
 [STEP130A-1] ビットdi=0のとき、復元部204は、部分データσi,jから(gi,j(x1,...,xn, y1,...,yn), ri,j,1, ..., ri,j,n)を復元する。
 [STEP130A-2] 第1判定部205は、i=1,...,k, j=1,...,mについて、f i,j(x1,...,xn)=fj(gi,j(x1,...,xn, ri,j,1,...,ri,j,n))が成り立つことを確認する。
 [STEP130B-1] ビットdi=1のとき、復元部204は、部分データσi,jから解(φ, zi,j,1,...,zi,j,n)を復元する。
 [STEP130B-2] 第2判定部206は、i=1,...,k, j=1,...,mについて、f i,j(zi,j,1,...,zi,j,n)=0が成り立つことを確認する。
 [STEP140] 出力部207は、i=1,...,k, j=1,...,mについて、[STEP130A-2]又は[STEP130A-2]で等式が成り立つ場合には「受理」を出力し、一つでも等式が成り立たない場合には「棄却」を出力する。
 上述したように第1の実施形態によれば、公開鍵の多項式と、秘密鍵とをそれぞれ変換して被変換式f i,j,解zi,j,Lを計算し、署名対象文書msgと被変換式からハッシュ値dを計算し、ハッシュ値dのビット値diに応じて、公開鍵に関する変換データ(変換式と乱数)又は秘密鍵に関する変換データ(解)を含む部分データσiを作成し、署名対象文書、被変換式及び部分データを含むディジタル署名signを生成する。また、ディジタル署名sign内の部分データσiを、ハッシュ値dのビット値diに応じて別々の等式で検証する。これにより、方程式系の求解問題の計算困難性を安全性の根拠とするディジタル署名を提供できるので、量子計算機が出現しても、安全性を確保できる。
 また、ディジタル署名の検証により、被変換式f j(x1,...,xn)が正しく計算され、部分データσiが秘密鍵s1,...,snを用いて計算されたことを確認できる。
 また、カット&チューズ法の観点から、秘密鍵s1,...,snを用いずに、検証に合格するディジタル署名signを作り出す偽造攻撃が困難であることを説明する。攻撃者は、ハッシュ関数Gの入力である多項式f i,j(x1,...,xn)を出力する必要がある。さらに攻撃者は、ハッシュ値dのビットがdi=0のとき、fi,j(x1,...,xn)をf i,j(x1,...,xn)に変換するための情報を部分データσ1,1,...,σ1,mとして出力し、di=1のときf i,j(x1,...,xn)の解zi,j,1,...,zi,j,nをσ1,1,...,σ1,mとして出力しなければならない。秘密鍵s1,...,snを用いない場合には、ハッシュ値のi番目のビットが0であることを期待してfi,j(x1,...,xn)をf i,j(x1,...,xn)に変換したり、ハッシュ値のi番目のビットが1であることを期待して予め定めた解zi,j,1,...,zi,j,nをもつ方程式f i,j(x1,...,xn)を導いたりすることが考えられる。しかしながら、導いたf i,j(x1,...,xn)を入力とするハッシュ関数Gの出力のビット値が期待通りになる確率は無視できるほど小さい(Gがランダムな値を出力する場合には1/2k程度)。そのため、秘密鍵s1,...,snを用いずに、検証に合格するディジタル署名signを作り出す偽造攻撃は困難である。
 <第1の実施形態の変形例>
 第1の実施形態では、m本のn変数方程式の解を利用したが、これに限らず、第1の実施形態において、方程式の総数m=1とし、方程式番号を表す添字jを削除するように変形することが可能である。この変形例では、ディジタル署名signが以下のようになるので、第1の実施形態に比べ、処理量やデータ量を削減できる。
sign={msg,f 1(x1,...,xn),...,f k(x1,...,xn),σ1,...,σk}、
但し、di=0のときのσi=(gi(x1,...,xn,y1,...,yn),ri,1,...,ri,n)、
di=1のときのσi=(φ,zi,1,...,zi,n)
 (第2の実施形態)
 図3は本発明の第2の実施形態に係る署名生成装置の概略図であり、図4は同実施形態における署名検証装置の概略図であって、図1と同一部分には同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。なお、以下の各実施形態も同様にして重複した説明を省略する。
 第2の実施形態は、第1の実施形態の変形例であり、ディジタル署名の安全性の向上を図るものであって、署名生成装置100においては、図1に示した構成に比べ、第2乱数生成部112、第3計算部113及び第4計算部114を更に備えている。
 ここで、第2乱数生成部112は、各乱数ri,1,..., ri,nとは別の各乱数Si,jを生成する機能をもっている。
 第3計算部113は、別の各乱数に基づき、各乱数ハッシュ値f’i,j(x1,...,xn)=H1(Si,j)を計算する機能をもっている。なお、「乱数ハッシュ値」は、「要素値」とも呼ぶ。
 第4計算部114は、各解に基づき、各解ハッシュ値vi,j=H2(f’i,j(zi,j,1,...,zi,j,n))を計算する機能をもっている。なお、「解ハッシュ値」は、単に「ハッシュ値」とも呼ぶ。
 これに伴い、記憶部101は、前述した公開鍵、秘密鍵、パラメータk及びハッシュ関数Gの他に、パラメータk1,k2及びハッシュ関数H1,H2が記憶されている。ここで、パラメータk1,k2と関数H1,H2は以下の通りである。
 k1:ハッシュ関数H1の入力のビット長。ビット長k1は、H1の入力を予測困難とするように、例えば160以上の値が好ましい。
 k2:ハッシュ関数H1の出力のビット長。ビット長k2は、H2が耐衝突性を満たすように、例えば160以上の値が好ましい。
 H1:k1ビットのデータを、被変換式集合Γf~内の方程式の一つに対応付ける耐衝突一方向性関数。
 H2:任意の長さのデータ(複数の方程式の係数)を、k2ビットのデータに変換する耐衝突一方向性関数。
 また、変換部106は、前述した機能において、変換結果に各乱数ハッシュ値のうちのいずれかの乱数ハッシュ値f’i,j(x1,...,xn)を加算して各被変換式を得ている。
 第2計算部107は、前述した機能において、乱数ハッシュ値を加算して得られた各被変換式と、各解ハッシュ値v1,1,...,vk,mとにも基づいてハッシュ値dを計算する。
 第1作成部108は、前述した機能において、別の各乱数のうちのいずれかの乱数Si,jをも含む第1部分データσiを作成する。
 署名生成部110は、前述した機能において、各解ハッシュ値v1,1,...,vk,mをも含むディジタル署名signを生成する。
 一方、署名検証装置300は、記憶部301、入力部302、計算部303、復元部304、第1判定部305、第2判定部306及び出力部307を備えている。
 記憶部301は、各部302~306から読出/書込可能な記憶装置であり、記憶部201が記憶していた公開鍵、パラメータk及びハッシュ関数Gの他に、パラメータk1,k2及びハッシュ関数H1,H2が記憶されている。ここで、パラメータk1,k2と関数H1,H2は前述した通りである。また、パラメータk, k1,k2,m,n、およびハッシュ関数G, H1,H2を計算するための情報は、予め各部303~306が保持することにより、記憶部301から省略してもよい。
 入力部302は、ディジタル署名signの入力を受け付ける機能をもっている。
 計算部303は、ディジタル署名sign内の署名対象文書msg、各被変換式及び各解ハッシュ値v1,1,...,vk,mに基づいてハッシュ値dを計算する機能をもっている。
 復元部304は、このハッシュ値dのビット値diに応じて、ディジタル署名sign内の各部分データσiから「別の乱数、変換式及び乱数」又は「解」を復元する機能をもっている。
 第1判定部305は、復元部304により別の乱数、変換式及び乱数が復元されたとき、当該別の乱数から乱数ハッシュ値を計算し、当該変換式及び乱数に基づいて公開鍵の多項式を変換し、当該変換結果に当該乱数ハッシュ値を加算して得られた被変換式fi,j(gi,j(x1,...,xn, ri,j,1,...,ri,j,n))+f’i,j(x1,...,xn)と、ディジタル署名sign内の被変換式f i,j(x1,...,xn)とが等しいか否かを判定する機能をもっている。
 第2判定部306は、復元部304により解が復元されたとき、当該復元された解をディジタル署名sign内の被変換式に代入して得られた値から計算した解ハッシュ値H2(f i,j(zi,j,1, ..., zi,j,n))と、ディジタル署名sign内の解ハッシュ値vi,jとが等しいか否かを判定する機能をもっている。
 出力部307は、第1及び第2判定部305,306における全ての判定結果が「等しい」旨を示す場合、ディジタル署名signの受理を出力する機能をもっている。
 また、第2の実施形態においては、第1の実施形態と同様に、可換環R上で定義される多項式を利用する。公開鍵集合Γf,変換式集合Γg,被変換式集合Γf~を第1の実施形態と同じ意味で用い、説明は省略する。
 次に、以上のように構成された署名生成装置及び署名検証装置の動作を順次説明する。
 [STEP10] 前述同様に、署名対象文書msgの入力が受け付けられる。
 [STEP11] 署名生成装置100では、第2乱数生成部112が、記憶部101内のパラメータk,k1,mに基づき、i=1,...,k, j=1,...,mについて、k1ビットのデータSi,jをランダムに生成する。
 [STEP12] 第3計算部113は、記憶部101内のパラメータk,mとハッシュ関数H1に基づき、i=1,...,k, j=1,...,mについて、被変換式集合Γf~の要素値f’i,j(x1,...,xn)=H1(Si,j)を計算する。
 [STEP20] 前述同様に、各乱数ri,j,1,...,ri,j,nが生成される。
 [STEP30] 前述同様に、各変換式gi,j(x1,...,xn,y1,...,yn)が生成される。
 [STEP40] 前述同様に、解の集合(zi,j,1,...,zi,j,n)が計算される。
 [STEP50’] 変換部106は、記憶部101内のパラメータk,m,nと公開鍵f(x1,...,xn),...,f(x1,...,xn)に基づき、i=1,...,k, j=1,...,mについて、x1,...,xnを変数とするk*m本の多項式f i,j=fi,j(gi,j(x1,...,xn, ri,j,1,...,ri,j,n))+f’i,j(x1,...,xn)を計算する。
 [STEP51] 第4計算部114は、記憶部101内のパラメータk,k2,m,nとハッシュ関数H2に基づき、i=1,…,kj=1,…,mについて、ハッシュ値vi,j=H2(f’i,j(zi,j,1,...,zi,j,n))を計算する。
 [STEP60’] 第2計算部107は、記憶部101内のパラメータk,m,nとハッシュ関数Gに基づき、ハッシュ値d=G(msg, f 1,1(x1,...,xn), ..., f 1,m(x1,...,xn), f 2,1(x1,...,xn), ..., f 2,m(x1,...,xn), ..., f k,1(x1,...,xn), ..., f k,m(x1,...,xn), v1,1, ..., v1,m, v2,1, ..., v2,m, vk,1, ..., vk,m)を計算する。
 第1及び第2作成部108,109は、記憶部101内のパラメータk,m,nに基づき、i=1,...,k, j=1,...,mについて、[STEP60’]で計算したハッシュ値dの各ビットdiの値に応じて以下を実行する。
 [STEP70A’] ビットdi=0のとき、第1作成部108は、部分データσi,j=(Si,j, gi,j(x1,...,xn, y1,...,yn), ri,j,1,...,ri,j,n)を作成する。
 [STEP70B’] ビットdi=1のとき、第2作成部109は、部分データσi,j=(φ, φ, zi,j,1,...,zi,j,n)を作成する。
 [STEP80’] 署名生成部110は、ディジタル署名sign={msg, f 1,1(x1,...,xn), ..., f 1,m(x1,...,xn), f 2,1(x1,...,xn), ..., f 2,m(x1,...,xn), ..., f k,1(x1,...,xn), ..., f k,m(x1,...,xn), σ1,1, ..., σ1,m, σ2,1, ..., σ2,m, σk,1, ..., σk,m, v1,1, ..., v1,m, v2,1, ..., v2,m, vk,1, ..., vk,m}を生成する。生成されたディジタル署名signは、出力部111から出力される。
 以上が署名生成装置100の動作である。次に、署名検証装置300の動作を述べる。
 [STEP110’] 署名検証装置300では、入力部302が、ディジタル署名sign={msg, f 1,1(x1,...,xn), ..., f 1,m(x1,...,xn), f 2,1(x1,...,xn), ..., f 2,m(x1,...,xn), ..., f k,1(x1,...,xn), ..., f k,m(x1,...,xn), σ1,1, ..., σ1,m, σ2,1, ..., σ2,m, σk,1, ..., σk,m, v1,1, ..., v1,m, v2,1, ..., v2,m, vk,1, ..., vk,m}の入力を受け付ける。
 [STEP120’] 計算部303は、記憶部301内のパラメータk,m,nとハッシュ関数Gに基づき、ハッシュ値d=G(msg, f 1,1(x1,...,xn), ..., f 1,m(x1,...,xn), f 2,1(x1,...,xn), ..., f 2,m(x1,...,xn), ..., f k,1(x1,...,xn), ..., f k,m(x1,...,xn), v1,1, ..., v1,m, v2,1, ..., v2,m, vk,1,...,vk,m)を計算する。
 [STEP130’] 復元部304、第1及び第2判定部305,306は、記憶部301内のパラメータk,m,nとハッシュ関数H1,H2に基づき、i=1,...,k, j=1,...,mについて、[STEP120’]で計算したハッシュ値dの各ビットdiの値に応じて以下を実行する。
 [STEP130A-1’] ビットdi=0のとき、復元部304は、部分データσi,jから(Si,j, gi,j(x1,...,xn, y1,...,yn), ri,j,1,...,ri,j,n)を復元する。次に、第1判定部305は、要素値f’i,j(x1,...,xn)=H1(Si,j)を計算する。
 [STEP130A-2’] 第1判定部305は、i=1,...,k, j=1,...,mについて、被変換式f i,j(x1,...,xn)=fi,j(gi,j(x1,...,xn, ri,j,1,...,ri,j,n))+f’i,j(x1,...,xn)が成り立つことを確認する。
 [STEP130B-1’] ビットdi=1のとき、復元部304は、部分データσi,jから解(φ,φ,zi,j,1,...,zi,j,n)を復元する。
 [STEP130B-2’] 第2判定部306は、i=1,...,k, j=1,...,mについて、H2(f i,j(zi,j,1, ..., zi,j,n))=vi,jが成り立つことを確認する。
 [STEP140’] 出力部307は、i=1,...,k, j=1,...,mについて、[STEP130A-2’]又は[STEP130A-2’]で等式が成り立つ場合には「受理」を出力し、一つでも等式が成り立たない場合には「棄却」を出力する。
 上述したように第2の実施形態によれば、要素値f’i,j(x1,...,xn)を用いた構成により、第1の実施形態の効果に加え、安全性を向上させることができる。
 補足すると、第2の実施形態では、[STEP50’]の被変換式f i,j(x1,...,xn)を計算する処理において、要素値f’i,j(x1,...,xn)を加算する処理を含むことが第1の実施形態と異なる。第1の実施形態では、署名の部分データf i,j(x1,...,xn)が被変換式集合Γf~と同じ項をもつ多項式の集合に一様に分布するとは限らない。そのため、被変換式f i,j(x1,...,xn)を計算するときに用いた変換式gi,j(x1,...,xn, y1,...,yn)と乱数ri,j,1,...,ri,j,nに関する情報が漏洩する可能性がある。
 仮に、変換式gi,j(x1,...,xn, y1,...,yn)と乱数ri,j,1,...,ri,j,nに関する情報が漏洩した場合、di=1に対応する署名に含まれる解zi,j,1,...,zi,j,nに基づき、(s1,...,sn)=gi,j(zi,j,1,...,zi,j,n, ri,j,1,...,ri,j,n)の計算により、秘密鍵s1,...,snが漏洩してしまう。
 しかしながら、第2の実施形態によれば、要素値f’i,j(x1,...,xn)を加算する処理により、署名の部分データf i,j(x1,...,xn)がΓf~と同じ項をもつ多項式の集合に一様に分布する。従って、上述した漏洩の可能性を回避でき、第1の実施形態に比べて十分な安全性を保証することができる。
 <第2の実施形態の変形例>
 第2の実施形態は、第1の実施形態の変形例と同様に、m=1とし、添字jを削除するように変形でき、処理量やデータ量を削減できる。
 (第3の実施形態)
 次に、本発明の第3の実施形態について図1及び図2を参照して説明する。
 第3の実施形態は、第1の実施形態の構成において、代数曲面上の求セクション問題の計算困難性を安全性の根拠としたものである。
 可換環R上の代数曲面とは、x,y,tの3変数多項式X(x,y,t)∈R[x,y,t]で表される零点の集合である。X(ux(t),uy(t),t)=0を満たす(ux(t),uy(t),t)を代数曲面X(x,y,t)=0のセクション又はセクション多項式という。補足すると、(x,y,t)=(ux(t),uy(t),t)のように、tでパラメタライズされたX上の代数曲線がセクションと呼ばれる。ここで、ux(t),uy(t)はtを変数とする可換環R上の多項式である。(ux(t),uy(t),t)が与えられたときに、(ux(t),uy(t),t)をセクションにもつような代数曲面X(x,y,t)=0を構成する方法は知られている。しかし、代数曲面X(x,y,t)=0が与えられたときに、特定のX(x,y,t)を除けば、X(x,y,t)=0のセクション(ux(t),uy(t),t)を求める方法は知られておらず、計算が困難である。これは代数曲面上の求セクション問題の計算困難性と呼ばれる。
 ここで、公開鍵の多項式は、x,y,tを変数とする可換環R上の代数曲面の定義式X(x,y,t)=0である。
 秘密鍵は、X(x,y,t)=0のセクション多項式(ux(t),uy(t),t)である。
 パラメータkと関数Gは、第1の実施形態と同様である。
 各乱数は、乱数を係数にもつランダム多項式(ri,1(t),ri,2(t),ri,3(t))である。
 各解は、解多項式(zi,1(t),zi,2(t),zi,3(t))である。
 第3の実施形態では、可換環R上で定義される多項式を利用する。なお、各集合ΓXX~,Γgは、記憶部101内のパラメータkに基づいて、乱数生成部103等から利用可能となっている。
 公開鍵が存在する公開鍵集合ΓXを次式で表す。degは次数の上限を表す。
Figure JPOXMLDOC01-appb-M000002
 変換式集合Γgは、g(x,y,t,w1,w2,w3)=(x-w1,y-w2,t-w3)や、g(x,y,t,w1,w2,w3)=(a1,12+a1,2x+y, a2,1x+a3,1t2+b2,2w2, a3,3x-a3,2y3+a3,3t+b3,3w3)等を含む集合とする。
 続いて、変換後のXが存在する被変換式集合ΓX~を次式で表す。
 ΓX~={X(x,y,t)=X(g(x,y,t,w1,w2,w3))| X(x,y,t)∈ΓX, g(x, y, t, ri,1(t), ri,2(t), ri,3(t))∈Γg, ri,1(t),ri,2(t),ri,3(t)∈ΓT
 次に、以上のように構成された署名生成装置及び署名検証装置の動作を順次説明する。
 [STEP10] 前述同様に、署名対象文書msgの入力が受け付けられる。
 [STEP20’’] 署名生成装置100では、乱数生成部103が、記憶部101内のパラメータkに基づき、i=1,...,kについて、多項式ri,1(t),ri,2(t),ri,3(t)∈ΓTをランダムに生成する。
 [STEP30’’] 署名生成装置100では、変換式生成部104が、記憶部101内のパラメータkに基づき、i=1,...,kについて、変換式gi(x,y,t,w1,w2,w3)∈Γg~をランダムに生成する。
 例えば、ΓX~={X(g(x,y,t,ri,1(t),ri,2(t),ri,3(t)))|X∈ΓX, Γg={g(x,y,t,w1,w2,w3) = (x-ri,1(t), y-ri,2(t), t-ri,3(t))}, ri,1(t), ri,2(t), ri,3(t)∈ΓT}の場合には、[STEP20’’]でランダムに生成した乱数ri,1(t), ri,2(t), ri,3(t)∈ΓTに対して、変換式をgi(x, y, t, ri,1(t), ri,2(t), ri,3(t))=(x-ri,1(t), y-ri,2(t), t-ri,3(t))などとしてもよい。
 [STEP40’’] 第1計算部105は、記憶部101内のパラメータkと秘密鍵ux(t),uy(t),tに基づき、i=1,...,kについて、秘密鍵の集合(ux(t),uy(t),t)=gi(zi,1(t), zi,2(t), zi,3(t), ri,1(t), ri,2(t), ri,3(t))を満たす解の集合(zi,1(t), zi,2(t), zi,3(t))を計算する。例えば、前述した変換式の例の場合、i=1,...,kについて、解をzi,1(t)=ux(t)+ri,1(t)、zi,2(t)=uy(t)+ri,2(t)及びzi,3(t)=t+ri,3(t)と計算する。
 [STEP50’’] 変換部106は、記憶部101内のパラメータkと公開鍵X(x,y,t)に基づき、i=1,...,kについて、x,y,tを変数とするk本の多項式X i=X(gi(x, y, t, ri,1(t), ri,2(t), ri,3(t)))を計算する。
 [STEP60’’] 第2計算部107は、記憶部101内のパラメータkとハッシュ関数Gに基づき、ハッシュ値d=G(msg,X 1(x,y,t),...,X k(x,y,t))を計算する。
 署名生成装置100では、第1及び第2作成部108,109が、記憶部101内のパラメータkに基づき、i=1,...,kについて、[STEP60’’]で計算したハッシュ値dの各ビットdiの値に応じて以下を実行する。
 [STEP70A’’] ビットdi=0のとき、第1作成部108は、部分データσi=(gi(x, y, t, w1, w2, w3), ri,1(t), ri,2(t), ri,3(t))を作成する。
 [STEP70B’’] ビットdi=1のとき、第2作成部109は、部分データσi=(φ, zi,1(t),zi,2(t),zi,3(t))を作成する。
 [STEP80’’] 署名生成部110は、ディジタル署名sign={msg,X 1(x,y,t),...,X k(x,y,t),σ1,...,σk}を生成する。生成されたディジタル署名signは、出力部111から出力される。
 以上が署名生成装置100の動作である。次に、署名検証装置200の動作を述べる。
 [STEP110’’] 署名検証装置200では、入力部202が、ディジタル署名sign={msg, X 1(x,y,t),...,X k(x,y,t),σ1,...,σk}の入力を受け付ける。
 [STEP120’’] 計算部203は、記憶部201内のパラメータkとハッシュ関数Gに基づき、ハッシュ値d=G(msg,X 1(x,y,t),...,X k(x,y,t))を計算する。
 [STEP130’’] 復元部204、第1及び第2判定部205,206は、記憶部201内のパラメータkに基づき、i=1,...,kについて、[STEP120’’]で計算したハッシュ値dの各ビットdiの値に応じて以下を実行する。
 [STEP130A-1’’] ビットdi=0のとき、復元部204は、部分データσiから(gi(x, y, t, w1, w2, w3), ri,1(t), ri,2(t), ri,3(t))を復元する。
 [STEP130A-2’’] 第1判定部205は、i=1,...,kについて、X i(x,y,t)=X(gi(x,y,t, ri,1(t), ri,2(t), ri,3(t)))が成り立つことを確認する。
 [STEP130B-1’’] ビットdi=1のとき、復元部204は、部分データσiから(φ, zi,1(t), zi,2(t), zi,3(t))を復元する。
 [STEP130B-2’’] 第2判定部206は、i=1,...,kについて、X i(zi,1(t), zi,2(t), zi,3(t))=0が成り立つことを確認する。
 [STEP140’’] 出力部207は、i=1,...,kについて、[STEP130A-2’’]又は[STEP130B-2’’]で等式が成り立つ場合には「受理」を出力し、一つでも等式が成り立たない場合には「棄却」を出力する。
 上述したように第3の実施形態によれば、代数曲面の求セクション問題の計算困難性に基づくディジタル署名を実現でき、第1の実施形態と同様の効果を得ることができる。
 <第3の実施形態の変形例>
 第3の実施形態は、第1の実施形態と同様に、同一のセクションをもつm個の代数曲面を利用した構成や、異なるセクションをもつm個の代数曲面を利用した構成に変形できる。これらの変形例は、第3の実施形態に第1の実施形態を組み合わせて実現できるので、詳しい説明を省略する。
 また、第3の実施形態において、ランダム多項式ri,3(t)としてΓTの元を選んだが、セクションの第三パラメータはtであることは公知であり、パラメータtに関する変換を行わなくても安全性は損なわれない。そのため、例えばΓX~={X(g(x, y, t, ri,1(t), ri,2(t), ri,3(t)))|X∈ΓX, Γg={g(x, y, t, w1, w2, w3)=(x-ri,1(t), y-ri,2(t), t-ri,3(t))},ri,1(t),ri,2(t),ri,3(t)∈ΓT}の場合には、ri,3(t)=0としてもよい。
 (第4の実施形態)
 次に、本発明の第4の実施形態について図3及び図4を参照して説明する。
 第4の実施形態は、第2の実施形態の構成において、第3の実施形態における代数曲面上の求セクション問題の計算困難性を安全性の根拠としたものである。例えば、第4の実施形態では、第3の実施形態とは異なり、ある多項式X’(x, y, t)にも基づいて、X i(x, y, t)=X(gi(x, y, t, ri,1(t), ri,2(t), ri,3(t))+X’(x, y, t)により、被変換式X i(x, y, t)を計算している。
 これに伴い、第4の実施形態では、第2の実施形態の構成において、以下のように方程式が代数曲面に関する式に限定されている。
 公開鍵の多項式は、x,y,tを変数とする可換環R上の代数曲面の定義式X(x,y,t)=0である。秘密鍵は、X(x,y,t)=0のセクション多項式(ux(t),uy(t),t)である。
 パラメータk,k1,k2と関数G,H1,H2は、第2の実施形態と同様である。但し、関数H1は、k1ビットのデータを、被変換式集合ΓX~内の方程式の一つに対応付ける耐衝突一方向性関数である(被変換式集合ΓX~を用いる点が第2の実施形態と異なる。)。
 各乱数は、乱数を係数にもつランダム多項式(ri,1(t),ri,2(t),ri,3(t))である。
 各解は、解多項式(zi,1(t),zi,2(t),zi,3(t))である。
 各解ハッシュ値vは、解多項式に対するハッシュ値H2(X’i(zi,1(t), zi,2(t), zi,3(t)))である。
 各被変換式は、代数曲面の多項式X i=X(gi(x, y, t, ri,1(t), ri,2(t), ri,3(t)))+X’i(x,y,t)である。
 各被変換式ハッシュ値dは、この代数曲面の多項式に対するハッシュ値G(msg,X 1(x,y,t),...,X k(x,y,t),v1,...,vk})である。
 第4の実施形態も、第3の実施形態と同様に可換環R上で定義される多項式を利用する。ΓX,ΓT,ΓX~を第3の実施形態と同じ意味で用い、説明は省略する。
 次に、以上のように構成された署名生成装置及び署名検証装置の動作を順次説明する。
 [STEP10] 前述同様に、署名対象文書msgの入力が受け付けられる。
 [STEP11’’’] 署名生成装置100では、第2乱数生成部112が、記憶部101内のパラメータk,k1に基づき、i=1,...,kについて、kビットのデータSiをランダムに生成する。
 [STEP12’’’] 第2計算部113は、記憶部101内のパラメータkとハッシュ関数H1に基づき、i=1,...,kについて、ΓX~の要素X’i(x,y,t)=H1(Si)を計算する。
 [STEP20’’] 前述同様に、多項式ri,1(t),ri,2(t),ri,3(t)∈ΓTが生成される。
 [STEP30’’] 前述同様に、変換式gi(x,y,t,w1,w2,w3)∈Γg~が生成される。
 [STEP40’’] 前述同様に、解の集合(zi,1(t),zi,2(t),zi,3(t))が計算される。
 [STEP50’’’] 変換部106は、記憶部101内のパラメータkと公開鍵X(x,y,t)に基づき、i=1,...,kについて、x,y,tを変数とするk本の多項式X i=X(gi(x, y, t, ri,1(t), ri,2(t), ri,3(t)))+X’i(x,y,t)を計算する。
 [STEP51’’’] 第4計算部114は、記憶部101内のパラメータk,k2とハッシュ関数H2に基づき、i=1,...,kについて、ハッシュ値v=H2(X’i(zi,1(t), zi,2(t), zi,3(t)))を計算する。
 [STEP60’’’] 第2計算部107は、記憶部101内のパラメータkとハッシュ関数Gに基づき、ハッシュ値d=G(msg,X 1(x,y,t),...,X k(x,y,t),v1,...,vk})を計算する。第1及び第2作成部108,109は、記憶部101内のパラメータkに基づき、i=1,...,kについて、[STEP60’’’]で計算したハッシュ値dの各ビットdiの値に応じて以下を実行する。
 [STEP70A’’’] ビットdi=0のとき、第1作成部108は、部分データσi=(Si, gi(x,y,t,w1,w2,w3), ri,1(t), ri,2(t), ri,3(t))を作成する。
 [STEP70B’’’] ビットdi=1のとき、第2作成部109は、部分データσi=(φ,φ,zi,1(t), zi,2(t), zi,3(t))を作成する。
 [STEP80’’’] 署名生成部110は、ディジタル署名sign={msg,X 1(x,y,t),...,X k(x,y,t),σ1,...,σk,v1,...,vk}を生成する。生成されたディジタル署名signは、出力部111から出力される。
 以上が署名生成装置100の動作である。次に、署名検証装置300の動作を述べる。
 [STEP110’’’] 署名検証装置300では、入力部302が、ディジタル署名sign={msg,X 1(x,y,t),...,X k(x,y,t),σ1,...,σk,v1,...,vk}の入力を受け付ける。
 [STEP120’’’] 計算部303は、記憶部301内のパラメータkとハッシュ関数Gに基づき、ハッシュ値d=G(msg,X 1(x,y,t),...,X k(x,y,t),v1,...,vk)を計算する。
 [STEP130’’’] 復元部304、第1及び第2判定部305,306は、記憶部301内のパラメータkに基づき、i=1,...,kについて、[STEP120’’’]で計算したハッシュ値dの各ビットdiの値に応じて以下を実行する。
 [STEP130A-1’’’] ビットdi=0のとき、復元部304は、部分データσiから(Si, gi(x, y, t, w1, w2, w3), ri,1(t), ri,2(t), ri,3(t))を復元する。次に、第1判定部305は、要素値X’i(x,y,t)=H1(Si)を計算する。
 [STEP130A-2’’’] 第1判定部305は、i=1,...,kについて、X i(x,y,t)=X(gi(x, y, t, ri,1(t), ri,2(t), ri,3(t)))+X’i(x,y,t)が成り立つことを確認する。
 [STEP130B-1’’’] ビットdi=1のとき、復元部304は、部分データσiから(φ, φ, zi,1(t), zi,2(t), zi,3(t))を復元する。
 [STEP130B-2’’’] 第2判定部306は、i=1,...,kについて、H2(X i(zi,1(t), zi,2(t), zi,3(t)))=viが成り立つことを確認する。
 [STEP140’’’] 出力部307は、i=1,...,kについて、[STEP130A-2’’’]又は[STEP130B-2’’’]で等式が成り立つ場合には「受理」を出力し、一つでも等式が成り立たない場合には「棄却」を出力する。
 上述したように第4の実施形態によれば、第2の実施形態と同様に要素値X’i(x,y,t)を用いた構成により、第3の実施形態の効果に加え、安全性を向上させることができる。
 <第4の実施形態の変形例>
 第4の実施形態は、第3の実施形態の変形例と同様に、同一のセクションをもつm個の代数曲面を利用した構成や、異なるセクションをもつm個の代数曲面を利用した構成に変形できる。また、第3の実施形態の変形例と同様に、第3パラメータtに関するランダム多項式ri,3(t)は、ri,3(t)=0としてもよい。
 (第5の実施形態)
 次に、本発明の第5の実施形態について図5及び図4を参照して説明する。図5は本発明の第5の実施形態に係る署名生成装置の概略図であり、前述した図3に比べ、変換式生成部104が省略されている。
 第5の実施形態は、第4の実施形態の具体例であり、変換式gi(x,y,t,w1,w2,w3)∈Γg~として、gi(x, y, t, ri,x(t), ri,y(t), t)=(x-ri,x(t), y-ri,y(t), t)を用いている。ここで、多項式ri,x(t),ri,y(t)∈ΓTは、セクションux(t),uy(t)と同じ形式(ux(t),uy(t)の同類項を含む形式)の多項式としている。この多項式ri,x(t),ri,y(t)∈ΓTは、乱数を係数にもつランダム多項式である。このように、用いる変換式を予め定めたことに伴い、署名生成装置100は、図5に示したように、変換式生成部104が省略されている。なお、前述した各実施形態においても変換式を予め定めることにより、変換式生成部104を省略できる。但し、変換式生成部104を省略せず、[STEP50’’’’]にて変換式生成部104が変換式(x-ri,x(t), y-ri,y(t), t)を生成し、この変換式を第1計算部105が多項式X i=X(x-ri,x(t), y-ri,y(t), t)+X’i(x,y,t)の計算に用いるようにしてもよい。この場合、署名生成装置100は、図3に示したように、変換式生成部104を備えて構成される。なお、いずれにしても、署名検証装置300は、図4に示したように構成される。
 次に、以上のように構成された署名生成装置及び署名検証装置の動作を順次説明する。
 [STEP10] 前述同様に、署名対象文書msgの入力が受け付けられる。
 [STEP11’’’] 前述同様に、kビットのデータSiが生成される。
 [STEP12’’’] 前述同様に、ΓX~の要素X’i(x,y,t)=H1(Si)が計算される。
 [STEP20’’’’] 署名生成装置100では、乱数生成部103が、記憶部101内のパラメータkに基づき、i=1,...,kについて、多項式ri,x(t),ri,y(t)∈ΓTをランダムに生成する。但し、多項式ri,x(t),ri,y(t)は、セクションux(t),uy(t)と同じ形式の多項式である。
 [STEP40’’’’] 第1計算部105は、記憶部101内のパラメータkと秘密鍵ux(t),uy(t),tに基づき、i=1,...,kについて、解をzi,x(t)=ux(t)+ri,x(t)、zi,y(t)=uy(t)+ri,y(t)を計算する。
 [STEP50’’’’] 変換部106は、記憶部101内のパラメータkと公開鍵X(x,y,t)に基づき、i=1,...,kについて、x,y,tを変数とするk本の多項式X i=X(x-ri,x(t), y-ri,y(t), t)+X’i(x,y,t)を計算する。
 [STEP51’’’’] 第4計算部114は、記憶部101内のパラメータk,k2とハッシュ関数H2に基づき、i=1,…,kについて、ハッシュ値v=H2(X’i(zi,x(t), zi,y(t), t), zi,x(t), zi,y(t))を計算する。
 [STEP60’’’] 前述同様に、ハッシュ値d=G(msg,X 1(x,y,t),...,X k(x,y,t),v1,...,vk)が計算される。第1及び第2作成部108,109は、記憶部101内のパラメータkに基づき、i=1,...,kについて、[STEP60’’’]で計算したハッシュ値dの各ビットdiの値に応じて以下を実行する。
 [STEP70A’’’’] ビットdi=0のとき、第1作成部108は、部分データσi=(Si, ri,x(t), ri,y(t))を作成する。
 [STEP70B’’’’] ビットdi=1のとき、第2作成部109は、部分データσi=(φ, zi,x(t), zi,y(t))を作成する。
 [STEP80’’’] 前述同様に、ディジタル署名sign={msg,X 1(x,y,t),...,X k(x,y,t),σ1,...,σk,v1,...,vk}が出力される。
 以上が署名生成装置100の動作である。次に、署名検証装置300の動作を述べる。
 [STEP110’’’] 前述同様に、ディジタル署名sign={msg,X 1(x,y,t),...,X k(x,y,t),σ1,...,σk,v1,...,vk}を受け付ける。
 [STEP120’’’] 前述同様に、ハッシュ値d=G(msg,X 1(x,y,t),...,X k(x,y,t),v1,...,vk)が計算される。
 [STEP130’’’] 復元部304、第1及び第2判定部305,306は、記憶部301内のパラメータkに基づき、i=1,...,kについて、[STEP120’’’]で計算したハッシュ値dの各ビットdiの値に応じて以下を実行する。
 [STEP130A-1’’’’] ビットdi=0のとき、復元部304は、部分データσiから(Si, ri,x(t), ri,y(t))を復元する。次に、第1判定部305は、X’i(x,y,t)=H1(Si)を計算する。
 [STEP130A-2’’’’] 第1判定部305は、i=1,...,kについて、X i(x,y,t)=X(x-ri,x(t), y-ri,y(t)), t)+X’i(x,y,t)が成り立つことを確認する。
 [STEP130B-1’’’’] ビットdi=1のとき、復元部304は、部分データσiから(φ, zi,x(t), zi,y(t))を復元する。
 [STEP130B-2’’’’] 第2判定部306は、i=1,...,kについて、H2 (X i(zi,x(t), zi,y(t), t), zi,x(t), zi,y(t))=viが成り立つことを確認する。
 [STEP140’’’’] 出力部307は、i=1,...,kについて、[STEP130A-2’’’’]又は[STEP130B-2’’’’]で等式が成り立つ場合には「受理」を出力し、一つでも等式が成り立たない場合には「棄却」を出力する。
 上述したように第5の実施形態によれば、第4の実施形態の具体例を実行し、第4の実施形態と同様の効果を得ることができる。
 <第5の実施形態の変形例>
 第5の実施形態は、第4の実施形態の変形例と同様に、同一のセクションをもつm個の代数曲面を利用した構成や、異なるセクションをもつm個の代数曲面を利用した構成に変形できる。
 なお、本願発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
 量子計算機が出現しても安全性を確保できるディジタル署名を提供できる。
 100…署名生成装置、101,201,301…記憶部、102,202,302…入力部、103…乱数生成部、104…変換式生成部、105…第1計算部、106…変換部、107…第2計算部、108…第1作成部、109…第2作成部、110…署名生成部、111,207,307…出力部、112…第2乱数生成部、113…第3計算部、114…第4計算部、200…署名検証装置、203,303…計算部、204,304…復元部、205,305…第1判定部、206,306…第2判定部。

Claims (5)

  1.  署名生成装置(100)であって、
     公開鍵の多項式及び前記公開鍵に対応する秘密鍵を記憶した記憶部(101)と、
     署名対象文書を受け付ける入力部(102)と、
     一つ以上の乱数を生成する乱数生成部(103)と、
     一つ以上の変換式を生成する変換式生成部(104)と、
     前記各変換式及び各乱数を前記秘密鍵に対応付ける各解を計算する第1計算部(105)と、
     前記各変換式及び各乱数に基づいて前記公開鍵の多項式を変換し、当該変換された各被変換式を得る変換部(106)と、
     前記署名対象文書及び前記各被変換式に基づいてハッシュ値を計算する第2計算部(107)と、
     前記ハッシュ値のビット値が第1値のとき、前記各変換式及び各乱数のうちのいずれかの変換式及び乱数を含む第1部分データを作成する第1作成部(108)と、
     前記ハッシュ値のビット値が第2値のとき、前記各解のうちのいずれかの解を含む第2部分データを作成する第2作成部(109)と、
     前記署名対象文書、前記各被変換式、及び前記ビット値に応じた前記第1又は第2部分データを含むディジタル署名を生成する署名生成部(110)と、
     を備えたことを特徴とする署名生成装置。
  2.  請求項1に記載の署名生成装置において、
     前記各乱数とは別の各乱数を生成する第2乱数生成部(112)と、
     前記別の各乱数に基づき、各乱数ハッシュ値を計算する第3計算部(113)と、
     前記各解に基づき、各解ハッシュ値を計算する第4計算部(114)と、
     を更に備えており、
     前記変換部(106)は、前記変換結果に前記各乱数ハッシュ値のうちのいずれかの乱数ハッシュ値を加算して前記各被変換式を得ており、
     前記第2計算部(107)は、前記乱数ハッシュ値を加算して得られた各被変換式と、前記各解ハッシュ値とにも基づいて前記ハッシュ値を計算し、
     前記第1作成部(108)は、前記別の各乱数のうちのいずれかの乱数をも含む前記第1部分データを作成し、
     前記署名生成部(110)は、前記各解ハッシュ値をも含む前記ディジタル署名を生成することを特徴とする署名生成装置。
  3.  請求項2に記載の署名生成装置において、
     前記公開鍵の多項式は、代数曲面の定義式であり、
     前記秘密鍵は、前記代数曲面のセクション多項式であり、
     前記各乱数は、乱数を係数にもつランダム多項式であって当該ランダム多項式が前記セクション多項式と同じ形式を有しており、
     前記各解は、解多項式であり、
     前記各解ハッシュ値は、前記解多項式に対するハッシュ値であり、
     前記各被変換式は、代数曲面の多項式であり、
     前記各被変換式ハッシュ値は、前記代数曲面の多項式に対するハッシュ値であることを特徴とする署名生成装置。
  4.  請求項1に記載の署名生成装置により生成されたディジタル署名を検証する署名検証装置(200)であって、
     前記公開鍵を記憶した記憶部(201)と、
     前記ディジタル署名の入力を受け付ける入力部(202)と、
     前記ディジタル署名内の署名対象文書及び各被変換式に基づいてハッシュ値を計算する計算部(203)と、
     前記ハッシュ値のビット値に応じて、前記ディジタル署名内の各部分データから「変換式及び乱数」又は「解」を復元する復元部(204)と、
     前記復元部により変換式及び乱数が復元されたとき、当該復元された変換式及び乱数に基づいて前記公開鍵の多項式を変換し、当該変換結果から得られた被変換式と、前記ディジタル署名内の被変換式とが等しいか否かを判定する第1判定部(205)と、
     前記復元部により解が復元されたとき、当該復元された解を前記ディジタル署名内の被変換式に代入して得られた値が零に等しいか否かを判定する第2判定部(206)と、
     前記第1及び第2判定部における全ての判定結果が「等しい」旨を示す場合、前記ディジタル署名の受理を出力する出力部(207)と、
     を備えたことを特徴とする署名検証装置。
  5.  請求項2に記載の署名生成装置により生成されたディジタル署名を検証する署名検証装置(300)であって、
     前記公開鍵を記憶した記憶部(301)と、
     前記ディジタル署名の入力を受け付ける入力部(302)と、
     前記ディジタル署名内の署名対象文書、各被変換式及び各解ハッシュ値に基づいてハッシュ値を計算する計算部(303)と、
     このハッシュ値のビット値に応じて、前記ディジタル署名内の各部分データから「別の乱数、変換式及び乱数」又は「解」を復元する復元部(304)と、
     前記復元部により別の乱数、変換式及び乱数が復元されたとき、当該別の乱数から乱数ハッシュ値を計算し、当該変換式及び乱数に基づいて前記公開鍵の多項式を変換し、当該変換結果に当該乱数ハッシュ値を加算して得られた被変換式と、前記ディジタル署名内の被変換式とが等しいか否かを判定する第1判定部(305)と、
     前記復元部により解が復元されたとき、当該復元された解を前記ディジタル署名内の被変換式に代入して得られた値から計算した解ハッシュ値と、前記ディジタル署名内の解ハッシュ値とが等しいか否かを判定する第2判定部(306)と、
     前記第1及び第2判定部における全ての判定結果が「等しい」旨を示す場合、前記ディジタル署名の受理を出力する出力部(307)と、
     を備えたことを特徴とする署名検証装置。
PCT/JP2009/066302 2009-09-17 2009-09-17 署名生成装置及び署名検証装置 WO2011033642A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/066302 WO2011033642A1 (ja) 2009-09-17 2009-09-17 署名生成装置及び署名検証装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/066302 WO2011033642A1 (ja) 2009-09-17 2009-09-17 署名生成装置及び署名検証装置

Publications (1)

Publication Number Publication Date
WO2011033642A1 true WO2011033642A1 (ja) 2011-03-24

Family

ID=43758268

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/066302 WO2011033642A1 (ja) 2009-09-17 2009-09-17 署名生成装置及び署名検証装置

Country Status (1)

Country Link
WO (1) WO2011033642A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107888380A (zh) * 2017-10-30 2018-04-06 武汉大学 一种两方分布式基于身份的rsa数字签名生成方法与系统
JP7322763B2 (ja) 2020-03-13 2023-08-08 日本電信電話株式会社 鍵生成装置、鍵生成方法及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002543478A (ja) * 1999-04-29 2002-12-17 ブル・セー・ペー・8 公開鍵を署名する方法とシステム
JP2007036493A (ja) * 2005-07-25 2007-02-08 Toshiba Corp デジタル署名生成装置、デジタル署名検証装置、鍵生成装置、デジタル署名生成方法、デジタル署名検証方法、鍵生成方法、デジタル署名生成プログラム、デジタル署名検証プログラム及び鍵生成プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002543478A (ja) * 1999-04-29 2002-12-17 ブル・セー・ペー・8 公開鍵を署名する方法とシステム
JP2007036493A (ja) * 2005-07-25 2007-02-08 Toshiba Corp デジタル署名生成装置、デジタル署名検証装置、鍵生成装置、デジタル署名生成方法、デジタル署名検証方法、鍵生成方法、デジタル署名生成プログラム、デジタル署名検証プログラム及び鍵生成プログラム

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
ALBRECHT PETZOLDT ET AL.: "A Multivariate Signature Scheme with an almost cyclic public key", CRYPTOLOGY EPRINT ARCHIVE, 13 September 2009 (2009-09-13) *
JINTAI DING ET AL.: "Rainbow, a New Multivariable Polynomial Signature Scheme", LECTURE NOTES IN COMPUTER SCIENCE, vol. 3531, 2005, pages 164 - 175 *
KOICHIRO AKIYAMA ET AL.: "An Algebraic Surface Public-key Cryptosystem", IEICE TECHNICAL REPORT, vol. 104, no. 421, 1 November 2004 (2004-11-01), pages 13 - 20 *
KOICHIRO AKIYAMA ET AL.: "An improvement of the algebraic surface public-key cryptosystem", PROCEEDINGS OF THE 2008 SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY (SCIS2008), vol. 1F1-2, - 22 January 2008 (2008-01-22) *
SHIGEO TSUJII ET AL.: "Proposal of PPS Multivariate Public Key Cryptosystems", CRYPTOLOGY EPRINT ARCHIVE, 9 June 2009 (2009-06-09) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107888380A (zh) * 2017-10-30 2018-04-06 武汉大学 一种两方分布式基于身份的rsa数字签名生成方法与系统
JP7322763B2 (ja) 2020-03-13 2023-08-08 日本電信電話株式会社 鍵生成装置、鍵生成方法及びプログラム

Similar Documents

Publication Publication Date Title
Li et al. Privacy preserving cloud data auditing with efficient key update
US10326753B2 (en) Authentication via revocable signatures
JP5468157B2 (ja) 公開鍵を検証可能に生成する方法及び装置
JP5697180B2 (ja) ホワイトボックス攻撃から暗号化資産を保護するためのシステムと方法
US8661240B2 (en) Joint encryption of data
US8583932B2 (en) Signature device, signature verification device, anonymous authetication system, signing method, signature authentication method, and programs therefor
US9882890B2 (en) Reissue of cryptographic credentials
US8958560B2 (en) Efficient multivariate signature generation
JP2008512060A (ja) 仮署名スキーム
CN109818752B (zh) 信用评分生成方法、装置、计算机设备和存储介质
CN112887081B (zh) 基于sm2的签名验签方法、装置及系统
WO2007105749A1 (ja) グループ署名システムおよび情報処理方法
CN116346328A (zh) 一种数字签名方法、系统、设备及计算机可读存储介质
WO2008026345A1 (fr) Système de signature électronique et procédé de vérification de signature électronique
WO2011033642A1 (ja) 署名生成装置及び署名検証装置
JP5058654B2 (ja) 電子署名装置、方法、およびプログラム
WO2019174404A1 (zh) 一种群组数字签名、验证方法及其设备和装置
JP5314449B2 (ja) 電子署名検証システム、電子署名装置、検証装置、電子署名検証方法、電子署名方法、検証方法、電子署名プログラム、検証プログラム
JP5227816B2 (ja) 匿名署名生成装置、匿名署名検証装置、匿名署名追跡判定装置、追跡機能付き匿名署名システム、それらの方法及びプログラム
JP2009290698A (ja) ブラインド署名装置、部分ブラインド署名装置、受信装置、システム、方法、及びプログラム
JP2010164876A (ja) ビットコミットメントシステム、ビットコミットメント方法、ビットコミットメント送信装置、ビットコミットメント受信装置、ビットコミットメント送信方法、ビットコミットメント受信方法、ビットコミットメントプログラム
JPWO2006057171A1 (ja) 署名および検証方法ならびに署名および検証装置
JP3484069B2 (ja) 秘密情報認証方法及び合同多項式認証方法並びに当該認証プログラムを記録した記録媒体
Wu et al. A novel probabilistic signature based on bilinear square Diffie–Hellman problem and its extension
JP6216688B2 (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: 09849501

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09849501

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP