WO2006077820A1 - 署名生成装置、鍵生成装置及び署名生成方法 - Google Patents

署名生成装置、鍵生成装置及び署名生成方法 Download PDF

Info

Publication number
WO2006077820A1
WO2006077820A1 PCT/JP2006/300508 JP2006300508W WO2006077820A1 WO 2006077820 A1 WO2006077820 A1 WO 2006077820A1 JP 2006300508 W JP2006300508 W JP 2006300508W WO 2006077820 A1 WO2006077820 A1 WO 2006077820A1
Authority
WO
WIPO (PCT)
Prior art keywords
signature
key
secret
generation
public key
Prior art date
Application number
PCT/JP2006/300508
Other languages
English (en)
French (fr)
Inventor
Yuichi Futa
Shingo Hasegawa
Shuji Isobe
Motoji Ohmori
Hiroki Shizuya
Original Assignee
Matsushita Electric Industrial Co., Ltd.
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 Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to JP2006552394A priority Critical patent/JP4544538B2/ja
Priority to EP06711788A priority patent/EP1843512B1/en
Priority to DE602006012935T priority patent/DE602006012935D1/de
Priority to US11/795,256 priority patent/US7664260B2/en
Publication of WO2006077820A1 publication Critical patent/WO2006077820A1/ja

Links

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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Definitions

  • NTRUSign signature scheme uses non-negative integer parameters, N, q, df, dg, and Normbound. The meaning of these parameters will be described below.
  • N 5
  • the product of the polynomial X 4 + X 2 + l and the polynomial: T3 + X is the product of the polynomial and the polynomial X
  • the product of the integer and the polynomial (or the product of the integer and the integer)
  • X "5 1, (X" 4 + X "2 + l) X (X" 3 + X)
  • N_ first-order polynomial a a_0 + a_l 'X + a_2'X' 2 + to + a_ (N_l) ⁇ ⁇ (N_l) is vector (a_0, a_l, a_2, ..., A_ (N_l)).
  • a— 0, a— 1, a— 2,..., a— (N— 1) are the coefficients of the polynomial a and are integers.
  • the method of selecting the polynomial f used as a part of the secret key handled in the NTRUSign signature scheme and the polynomial f used in generating the polynomial h as the public key is determined by the parameters df and dg, respectively.
  • the polynomial f is chosen so that df coefficients are 1 and the other coefficients are 0. That is, the polynomial f is an N—first-order or lower polynomial, and there are N coefficients from the 0th order (constant term) to the N—first order. Of these N coefficients, df Select so that the coefficient is 1 and (N_df) coefficients are 0.
  • Normbound is a threshold value used for this determination. That is, if the distance is less than Normbound, it is accepted as a correct signature, and if it is greater than No rmbound, it is rejected as a correct signature and signature.
  • sqrt (x) is the square root of x.
  • I I (a, b) I I sqrt (
  • the integer coefficient polynomial of order N or less obtained by performing the (mod X N_1) operation is the N-dimensional layout IJ that defines the norm indicating the addition, subtraction, multiplication, and the original magnitude.
  • the polynomial ring R can be regarded as a set of N-dimensional arrays.
  • the polynomial Fq is called the inverse of the polynomial f.
  • polynomials F and G with small norms that satisfy the following equations are obtained.
  • ⁇ (f, g), (F, G) ⁇ be the private key and h be the public key.
  • the private key is a key for generating a signature and is also called a signature generation key.
  • the public key is a key for verifying the signature, and is also called a signature verification key.
  • the signature s of the message m to be signed is calculated.
  • a 2 ⁇ ⁇ -dimensional vector (ml, m2) (ml and m2 are Nth order polynomials) that is a hash value for the message m is calculated.
  • the coefficients of A and a are taken as the remainder when dividing by the modulus q so that it falls within the range of _q / 2> +1 to qZ2>. That is, if the remainder when divided by the modulus q is q / 2> force q_1, q is subtracted and adjusted so that it falls within the above range.
  • the signature generation of the NTRUSign signature method it is verified whether the signature s is a correct signature of the message m to be signed. First, a 2 ⁇ N-dimensional vector (ml, m2) that is a hash value for the message m is calculated.
  • the polynomial t is calculated from the following equation.
  • Patent Document 1 Japanese Translation of Special Publication 2000-516733
  • Patent Document 2 International Publication Number WO2003Z050998
  • Non-patent literature 1 Tatsuaki Okamoto, Hiroshi Yamamoto, “Modern cryptography”, industrial books (1997)
  • Non-Patent Document 2 J. Hoffstein, J. Pipher, and J. H. Silverman, "NTRU: A ring based public key cryptosystem, Lecture Notes in Computer Science, 1423, pp. 267-288, Springer- Verlag, 1998.
  • Non-Patent Document 3 J. Hoffstein, J. Pipher and J. Silverman, "NSS: An NT RU Lattice— Based Signature Scheme,” Advances in Cryptoplogy— Eurocrypt '01, LNCS, Vol. 2045, pp. 123— 137, Springer— Verla g, 2001
  • Non-Patent Document 4 J. Hoffstein, N. Graham, J. Pipher, J. Silverman and W. Whyte, "NTRUSign: Digital Signatures Using the NTRU Lattice," CT-RSA '03, LNCS, Vol. 2612, pp. 122- 140, Springer— Ver lag, 2003
  • Non-Patent Document 5 J. Hoffstein, N. Graham, J. Pipher, JH Silverman, W. Whyte, "NTRUSign: Digital Signatures Using the NTRU Lattice Prel iminary Draft 2——April 2, 2002", [2005 1 Search on the 20th of May], Internet URL: http: / Z www. Ntru. Com / cryptolab / pdd / NTRUSign ⁇ pre V 2. pdf> Disclosure of the invention
  • the NTRUSign signature method described above includes an attack called Transcript attack.
  • Transcript attack is an attack that seeks a secret key from multiple signature texts (message and signature pairs). The details of the Transcript attack are described in Non-Patent Document 4 and will be briefly described below.
  • Transcript attack is the difference between multiple signatures s and part of the hash value (ml, m2) of the message ml ml s force S
  • el and e2 are polynomials whose coefficients fall within the range of 1Z2 to 1/2
  • the product of a ⁇ aXa *.
  • Non-Patent Document 4 the number of signature texts required to obtain information about the secret key from the second moment and the average of the fourth moment is 10 "4 and 1CT8, respectively. In order to succeed in the Transcript attack, it is considered that more than 10'8 signatures are required.
  • the present invention can generate a signature that can prevent a Transcript attack on signature data.
  • An object is to provide a device, a key generation device, a signature system, a signature generation method, a signature verification program, a signature verification method, a key generation program, an integrated circuit for signature generation, and an integrated circuit for key generation.
  • the present invention provides a signature generation apparatus for generating signature data for message data, wherein the key generation is performed using a signature scheme in which a plurality of private keys correspond to one public key.
  • a secret key acquisition means for acquiring, by a predetermined acquisition method, one other secret key different from the secret key used for the previous signature among the plurality of secret keys generated using the method, and the acquired other key
  • signature generating means for generating signature data by applying the signature by the signature method of the signature scheme to the message data using the secret key of No. 1 above.
  • the signature generation apparatus obtains one other private key different from the private key used for the previous signature among a plurality of private keys corresponding to one public key .
  • the obtained signature data uses the private key used for the previous signature and the private key used for the current signature. Since it is not known in which direction the signature was signed, the signature generation device can prevent a Transcript attack on the signature data.
  • the predetermined acquisition method is to randomly acquire one of the plurality of secret keys
  • the secret key acquisition means is a previous one of the plurality of secret keys.
  • the other one private key different from the private key used for signature may be obtained at random.
  • the signature generation device has a plurality of private key strengths. What is the private key used for the previous signature? Since another different private key is obtained at random, even if an attacker who performs a Transcript attack obtains the signature data and tries the Transcript attack, the obtained signature data is generated with which private key. Since it is unknown, the signature generation device can prevent a Transcript attack on the signature data.
  • the secret key acquisition means stores the plurality of secret keys, and stores them.
  • the other secret key may be acquired from the plurality of secret keys by the predetermined acquisition method.
  • the signature generation apparatus acquires the other one private key from the plurality of stored private keys, it is possible to reliably acquire the private key corresponding to the one public key.
  • the signature scheme is a signature scheme using a lattice
  • the secret key acquisition means records the plurality of secret keys generated by the signature scheme key generation method using the lattice. You may remember.
  • a signature method that generates a key using a lattice and a signature can generate a plurality of secret keys for one public key due to the nature of the lattice.
  • the signature generation apparatus can store a plurality of secret keys for one public key.
  • the signature scheme is an NTRU signature scheme, and a ring R that is a set of N-dimensional arrays in which norms indicating addition, subtraction, multiplication, and original size are defined, and an ideal of the ring R
  • the signature scheme uses the ring R and the ideal q to generate a public key and a plurality of secret keys corresponding to the public key, and 1 of the generated plurality of secret keys. Since the signature generation apparatus uses the signature scheme, the signature generation apparatus can reliably perform the signature using the secret key corresponding to the public key.
  • the signature generation apparatus may include a key generation apparatus that generates the public key and the plurality of secret keys using the signature scheme.
  • the signature generation device can generate the public key and the plurality of secret keys using a key generation device included in the device.
  • the predetermined acquisition method is to randomly acquire one private key out of a plurality of private keys, and the key obtaining means obtains a previous signature from the plurality of stored private keys.
  • the other private key different from the used private key may be obtained at random.
  • the signature generation apparatus randomly obtains the other one secret key different from the secret key used for the previous signature from the plurality of secret keys stored and recorded. You can increase the defense against ipt attack.
  • the predetermined acquisition method is to acquire one of the plurality of secret keys based on the stored order, and the key acquisition means acquires the plurality of secret keys. You may obtain the other private key, which is different from the private key used for the previous signature, based on the order in which it is stored.
  • the signature generation apparatus uses the secret key used for the signature for each signature data, so that the defense against the Transcript attack can be enhanced.
  • the predetermined acquisition method is to generate and acquire one other private key different from the private key used for the previous signature among a plurality of private keys by the key generation method
  • the key obtaining means stores the first secret key generated by the signature method corresponding to the public key of 1, and uses the first secret key, and then uses the key generation method to store the first secret key.
  • a second secret key corresponding to the public key of the first, and the stored first secret key is updated to the generated second secret key, and stored when the signature data is generated
  • the second secret key may be acquired as the first secret key.
  • the signature generation apparatus since the signature generation apparatus updates the first secret key to the second secret key after using the first secret key, when generating the signature data, A second secret key different from the first secret key can be used reliably.
  • the present invention also provides a key used for generating and verifying signature data for message data.
  • a key generation device that generates a public key of the one by a signature scheme in which a plurality of secret keys correspond to a public key of the key, and a public key of the first by the signature scheme.
  • a secret key generating means for generating a plurality of corresponding secret keys.
  • the key generation device generates one public key and a plurality of secret keys corresponding to the public key.
  • the signing device uses one of the plurality of secret keys for signing, the attacker who executes the Transcript attack obtains the signed data and obtains the Transcript Even if an attack is attempted, it is not known with which secret key the signed data obtained was generated. Therefore, the key generation device can prevent a Transcript attack on the signature data.
  • the signature scheme is a scheme using a lattice
  • the public key generation means generates the public key by the signature scheme
  • the secret key generation means uses the signature scheme.
  • the plurality of secret keys may be generated.
  • the key generation device generates a key by a signature method using a lattice. Therefore, due to the nature of the lattice, the key generation device generates one public key and a plurality of secret keys corresponding to the public key. You can.
  • the signature scheme is an NTRU signature scheme, and a ring R that is a set of N-dimensional arrays in which norms indicating addition, subtraction, multiplication, and original size are defined, and an ideal of the ring R
  • the key generation device includes the public key generation step and the secret included in the signature scheme.
  • the secret key generation step By using the secret key generation step, a public key and a plurality of secret keys corresponding to the public key can be generated.
  • the present invention is a signature system comprising a signature generation device that generates signature data for message data, and a signature verification device that performs signature verification, wherein the signature generation device includes a plurality of public keys for one public key. Acquire one other private key that is different from the private key used for the previous signature from the multiple private keys generated using the signature method key generation method supported by the private key by a predetermined acquisition method. And a signature generating means for applying the signature by the signature method of the signature scheme to generate the signature data using the acquired one other secret key, and generating the signature data.
  • the verification apparatus includes verification means for verifying the signature data using the public key.
  • the signature system obtains one secret key different from the secret key used for the previous signature among a plurality of secret keys corresponding to one public key at the signature generation device. ing.
  • the obtained signature data uses the private key used for the previous signature and the secret key used for the current signature. Since it is not known where the signature was signed, the signature generation device can prevent a Transcript attack on the signature data.
  • the signature verification apparatus uses the public key as the signature data generated using one of the plurality of secret keys. And can be verified.
  • FIG. 1 is a block diagram showing a configuration of a digital signature system 1.
  • FIG. 2 is a flowchart showing an operation of signature generation processing performed in signature generation apparatus 10.
  • FIG. 3 is a flowchart showing an operation of signature verification processing performed in signature verification apparatus 20.
  • FIG. 4 is a flowchart showing the operation of key generation processing performed by the key generation device 30.
  • FIG. 5 is a flowchart showing an operation of secret key group generation processing performed in the key generation device 30.
  • FIG. 6 is a block diagram showing a configuration of a digital signature system 1000.
  • FIG. 7 is a flowchart showing an operation of a secret key update process performed in the signature generation apparatus 1010
  • FIG. 8 is a flowchart showing the operation of signature generation processing performed in signature generation apparatus 1010.
  • a digital signature system 1 as a first embodiment according to the present invention will be described below with reference to the drawings.
  • the signature generation device 10 generates a signature data set SS for the message data m using one of the plurality of secret keys generated by the key generation device 30 and the improved NTRUSign signature method.
  • the generated signature data set SS is transmitted to the signature verification apparatus 20 via the communication path 50.
  • the configuration of the signature data set SS will be described later.
  • a public key of 1 is obtained by modulo the polynomial X'N_1 and using multiple elements belonging to the ring R of the polynomial having integer coefficients and the ideal of the ring R. And a plurality of secret keys corresponding to the public key.
  • the signature for a message in the improved NTRUSign signature scheme uses a private key of 1 and a 2 ⁇ N-dimensional vector that is the hash value of the message.
  • the signature verification in the improved NTRUSign signature scheme uses a public key, a signature for the message, and a 2 ⁇ N-dimensional vector that is the hash value of the message. It should be noted that non-patent document 4 and non-patent document 5 describe the ring used in the NTRUSign signature method and the ideal of the ring, and thus the description thereof is omitted here.
  • the improved NTRUSign signature scheme has non-negative integer parameters: N, q, df, dg, Normboun d.
  • N non-negative integer parameters
  • q integer parameters
  • df integer parameters
  • dg integer parameters
  • Normboun d the definition of these parameters is the same as the conventional NTRUSign signature method. The meaning of these parameters will be described below.
  • the improved NTRUSign signature scheme is a digital signature scheme that performs signature generation and signature verification through polynomial operations.
  • the order of the polynomial handled by the improved NTRUSign signature method is determined by the above parameter N.
  • N— first-order polynomial a a— 0 + a— 1 ⁇ X + a_2-X "2H—— ha— (N—1) ⁇ ⁇ '(N— 1) is identified with the vector (a— 0, a— 1, a— 2,..., A — (N—l)) a— 0, a— 1, a— 2,.
  • a— (N— 1) is a coefficient of the polynomial a and is an integer.
  • the integer coefficient polynomial of order N or less obtained by performing the (mod X N_1) operation is the N-dimensional layout IJ that defines the norm indicating the addition, subtraction, multiplication, and the original magnitude.
  • the polynomial ring R can be regarded as a set of N-dimensional arrays.
  • the public key certificate CP includes a public key h and signature data SP of the public key h, and is generated by the key generation device 30.
  • the signature data SP is generated using the certificate generation key KCS stored in the key generation device 30 and the improved NTRUSign signature method. In the following description, it is assumed that the public key certificate CP is stored in advance by the key generation device 30.
  • the public key certificate CP contains other data in addition to the public key h and signature data SP. You may go out. For example, a user identifier or a certificate expiration date may be included.
  • the secret key selection unit 103 Upon receiving a selection instruction from the signature generation unit 104 to select one secret key from the secret key group, the secret key selection unit 103 randomly selects one secret key from a plurality of secret keys included in the secret key group GSK. select.
  • the private key selection unit 103 outputs the selected private key to the signature generation unit 104.
  • the signature generation unit 104 When the signature generation unit 104 receives a signature generation instruction indicating an instruction to generate signature data of the message data m from the signature data set generation unit 105, the signature generation unit 104 outputs a selection instruction to the secret key selection unit 103.
  • the signature data S is generated based on the improved NTRUSign signature method.
  • the signature data set generation unit 105 reads the public key certificate CP from the public key certificate storage unit 102 when the message data m is received by a user operation.
  • the signature data set generation unit 105 When the signature data set generation unit 105 outputs a signature generation instruction to the signature generation unit 104 and then receives a generation completion notification from the signature generation unit 104, the signature data set generation unit 105 generates the message data m and the signature generation unit 104 A signature data set SS including the signature data S of the message data m and the read public key certificate CP is generated.
  • the transmission unit 106 transmits the signature data set SS to the signature verification apparatus 20 via the communication path 50. I believe.
  • the signature verification apparatus 20 includes a CA public key storage unit 201, a signature data set storage unit 202, a signature verification unit 203, a reception unit 204, and a display unit 205.
  • CA public key storage unit 201 (1) CA public key storage unit 201
  • the CA public key storage unit 201 stores the public key KCP for verifying the public key certificate CP corresponding to the certificate generation key KCS stored in the key generation device 30.
  • the signature data set storage unit 202 has an area for storing the signature data set SS.
  • the signature verification unit 203 receives a verification start instruction to start verification from the reception unit 204.
  • the signature verification unit 203 stores in the CA public key storage unit whether the signature data SP is the correct signature of the public key h. Verify using the CA public key KPC.
  • the signature verification unit 203 verifies whether the signature data S is the correct signature of the message data m by using the public key h.
  • the receiving unit 204 transmits the signature data set SS transmitted from the signature generation apparatus 10 to the communication path 50. Receive via.
  • the display unit 205 When the display unit 205 receives a message related to the verification result of the signature verification from the signature verification unit 203, the display unit 205 displays the received message.
  • the key generation device 30 includes a certificate generation key storage unit 301, a key generation unit 302, a secret key group generation unit 303, a certificate generation unit 304, and a key setting unit 305. Is done.
  • Certificate generation key storage unit 301 (1) Certificate generation key storage unit 301
  • the certificate generation key storage unit 301 stores a certificate generation key KCS for generating the signature data SP included in the public key certificate CP, corresponding to the public key KCP.
  • the key generation unit 302 generates a secret key ⁇ (f, g), (F, G) ⁇ and a public key h using a conventional key generation method of the NTRUSign signature method. Note that key generation by the conventional NTRUSign signature method is a known technique, and thus description thereof is omitted here.
  • the key generation unit 302 outputs a key group generation instruction for instructing generation of a secret key group to the secret key group generation unit 303, and issues a certificate generation instruction for instructing generation of the public key certificate CP. Output to generation unit 04.
  • the secret key group generation unit 303 stores a predetermined value Keybound and vMAX indicating an upper limit value of the number of searches for the secret key in advance.
  • vMAX is 1000, for example.
  • the secret key group generation unit 303 determines the norm
  • the secret key group generation unit 303 When the generation of the secret key group GSK is completed, the secret key group generation unit 303 outputs to the key setting unit 305 a first storage instruction to store the generated secret key group GSK in the signature generation device 10.
  • the certificate generation unit 304 Upon receiving the certificate generation instruction from the key generation unit 302, the certificate generation unit 304 reads the certificate generation key KCS stored in the certificate generation key storage unit 301.
  • the key setting unit 305 Upon receiving the first storage instruction from the secret key group generation unit 303, the key setting unit 305 sends the secret key group GSK generated by the secret key group generation unit 303 to the secret key group storage unit 101 of the signature generation apparatus 10. Write.
  • the key setting unit 305 Upon receiving the second storage instruction from the certificate generation unit 304, the key setting unit 305 transmits the public key certificate CP generated by the certificate generation unit 304 to the public key certificate storage unit 102 of the signature generation device 10. Write.
  • the signature generation device 10 generates a signature data set SS for the message data m and transmits it to the signature verification device 20 via the communication path 50.
  • the operation of the signature generation process performed in the signature generation apparatus 10 will be described with reference to the flowchart shown in FIG.
  • the signature data set generation unit 105 receives the message data m by a user operation (step S5).
  • Signature data set generation unit 105 reads public key certificate CP from public key certificate storage unit 102 and outputs a signature generation instruction to signature generation unit 104.
  • the signature generation unit 104 When a signature generation instruction is received from the name data set generation unit 105, the selection instruction is output to the secret key selection unit 103.
  • the secret key selection unit 103 Upon receiving the selection instruction from the signature generation unit 104, the secret key selection unit 103 randomly selects one secret key from the plurality of secret keys included in the secret key group GSK (Step S10).
  • the secret key selection unit 103 outputs the selected secret key to the signature generation unit 104.
  • the signature generation unit 104 receives the one secret key selected from the secret key selection unit 103, the signature generation unit 104 generates signature data S for the message data m using the received secret key (step S15).
  • the signature data S is generated based on the improved NTRUSign signature method.
  • the signature generation unit 104 When the generation of the signature data S is completed, the signature generation unit 104 outputs a generation completion notification indicating that to the signature data set generation unit 105. Upon receiving the generation completion notification from the signature generation unit 104, the signature data set generation unit 105 receives the message data m, the signature data S of the message data m generated by the signature generation unit 104, and the read public key certificate CP. A signature data set SS is generated (step S20).
  • the transmission unit 106 transmits the signature data set SS generated by the signature data set generation unit 105 to the signature verification apparatus 20 via the communication path 50 (step S25).
  • the signature verification apparatus 20 receives the signature data set SS from the signature generation apparatus 10 via the communication path 50, and verifies the signature data set SS.
  • the signature verification process performed by the signature verification apparatus 20 will be described with reference to the flowchart shown in FIG.
  • the receiving unit 204 receives the signature data set SS transmitted from the signature generation apparatus 10 via the communication path 50 (step S 100).
  • the receiving unit 204 stores the received signature data set SS in the signature data set storage unit 202 (step S105).
  • the receiving unit 204 outputs a verification start instruction to the signature verification unit 203.
  • the signature verification unit 203 receives a verification start instruction to start verification from the reception unit 204.
  • the signature verification unit 203 verifies whether the signature data SP is correct and the signature of the public key h using the CA public key KPC stored in the CA public key storage unit (step S 110). .
  • the signature verification unit 203 displays the message “ ⁇ ” via the display unit 205 (step S120).
  • the signature The verification unit 203 displays the message “NG” via the display unit 205 (step S 125).
  • the signature verification unit 203 verifies each signature data using the improved NTRUSign signature method.
  • the key generation device 30 generates a private key group GKS and a certificate CP, and sets the generated private key group GKS and certificate CP in the signature generation device 10.
  • the operation of the key generation process performed by the key generation device 30 will be described with reference to the flowchart shown in FIG.
  • the key generation unit 302 generates a secret key ⁇ (f, g), (F, G) ⁇ and a public key h using a conventional NTRUSign signature key generation method (step S200).
  • the key generation unit 302 outputs a key group generation instruction for instructing generation of a secret key group to the secret key group generation unit 303, and issues a certificate generation instruction for instructing generation of the public key certificate CP. Output to generation unit 04.
  • the secret key group generation unit 303 Upon receiving the key group generation instruction from the key generation unit 302, the secret key group generation unit 303 performs ⁇ (f, g), (F_l, G_l) ⁇ , ⁇ (f, g), A secret key group GKS consisting of (F_2, G_2) ⁇ ,,..., ⁇ (F, g), (F_u, G_u) ⁇ is generated (step S205).
  • u is the number of secret keys included in the secret key group.
  • the certificate generation unit 304 When receiving the certificate generation instruction from the key generation unit 302, the certificate generation unit 304 reads the certificate generation key KCS stored in the certificate generation key storage unit 301. The certificate generation unit 304 uses the read certificate generation key KCS to generate a public key certificate CP for the public key h generated by the key generation unit 302 (step S210).
  • the secret key group generation unit 303 When the generation of the secret key group GSK is completed, the secret key group generation unit 303 generates the generated secret key group A first storage instruction for storing the GSK in the signature generation apparatus 10 is output to the key setting unit 305.
  • the certificate generation unit 304 When the generation of the public key certificate CP is completed, the certificate generation unit 304 outputs a second storage instruction to the key setting unit 305 to store the generated public key certificate CP in the signature generation device 10.
  • the key setting unit 305 Upon receiving the first storage instruction from the secret key group generation unit 303, the key setting unit 305 sends the secret key group GSK generated by the secret key group generation unit 303 to the secret key group storage unit 101 of the signature generation apparatus 10.
  • the public key certificate CP generated by the certificate generation unit 304 is written to the public key certificate storage unit 102 of the signature generation apparatus 10 (step S215). ).
  • the method for generating the secret key group GSK using the improved NTRUSign signature method performed by the secret key group generation unit 303 that is, the operation of the secret key group generation process shown in FIG. It explains using.
  • the secret key group generation unit 303 uses the secret key ⁇ (f, g), (F, G) ⁇ generated by the key generation unit 302 as a secret key ⁇ (f, g), (F_l, G_l) ⁇ Add to key group GKS (step S300).
  • the secret key group generation unit 303 sets u 2, v—0, F ′ ⁇ F, G, —G (step S305).
  • the secret key group generation unit 303 sets F′ ⁇ F ′ + X′vXf and G′ ⁇ G ′ + X′vXg (step S310).
  • the secret key group generation unit 303 determines whether or not I I (F ′, G ′) I I> Keybound (step S315).
  • the secret key group generation unit 303 sets (F ,, 0 ′) as the secret key.
  • (F—u, G_u) ⁇ step S320
  • u ⁇ u + l is set (step S325).
  • the secret key group generation unit 303 sets V—v + 1 (step S330), and determines the force and the power of v> vMAX by half IJ (step S335).
  • step S335 If it is determined that v> vMAX (“YES” in step S335), the process is terminated. If it is determined that v> vMAX is not satisfied (“NO” in step S335), the process returns to step S310.
  • step S315) If it is determined that II> Keybound (in step S315) "YES"), the secret key group generation unit 303 performs step S325 and subsequent steps.
  • fXG_ (i + l) -gXF_ (i + l) fX (G_i + wXg) -gX (F_i + wXf)
  • the key generation device 30 of the digital signature system 1 generates a public key and a secret key group of the signature generation device 10 and sets them in the signature generation device 10.
  • the signature generation device 10 generates a signature data set SS for the message data m, and transmits the generated signature data set SS to the signature verification device 20 via the communication path 50.
  • the signature verification device 20 receives the signature data set SS from the signature generation device 10 via the communication path 50 and verifies it.
  • the public signature for verifying the signature is used.
  • the signature generation device 10 generates a signature data by selecting one secret key from a plurality of secret keys included in the secret key group.
  • the number of secret keys included in the secret key group is 2, and each secret key is ⁇ (f, g), (F_l, G_l) ⁇ , ⁇ (f, g), (F_2, G_2) ⁇ Think.
  • the attacker who performs the transscript attack obtains the signature data set flowing in the communication path 50 and tries the Transcript attack.
  • the digital signature system 1 can prevent a Transcript attack and is safe.
  • the number of secret keys included in the secret key group is 2. However, if this is an integer larger than 3 or 3, the secret key information is further separated from the average of the second and fourth moments. It becomes more difficult because it becomes difficult.
  • the digital signature system 1000 includes a signature generation device 1010, a signature verification device 1020, and a communication path 1050.
  • Signature generation apparatus 1010 generates a signature data set SS for message data m using the NTRUSign signature method, and transmits signature data set SS to signature verification apparatus 1020 via communication path 1050.
  • the signature verification apparatus 1020 described later receives the signature data set SS from the signature generation apparatus 1010, and Verifies whether the received signature data set SS is the correct signature of the message data m
  • the signature verification apparatus 1020 accepts the signature data set SS when determining that the signature data set SS is correct, and rejects the signature data set SS when determining that the signature data set SS is invalid.
  • the signature generation device 1010 includes a private key storage unit 1101, a public key certificate storage unit 1102, a private key update unit 1103, a signature generation unit 1104, a signature data set generation unit 1105, A transmission unit 1106 and a display unit 1107 are included.
  • the signature generation device 1010 receives the signature data set S for the input message data m.
  • the secret key storage unit 1101 has an area for storing a secret key ⁇ (f, g), (F, G) ⁇ .
  • secret key storage section 1101 stores and stores secret keys ⁇ (f, g), (F, G) ⁇ in advance.
  • Public key certificate storage section 1102 has an area for storing public key certificate CP of public key h corresponding to private key ⁇ (f, g), (F, G) ⁇ .
  • the public key certificate CP includes a public key h and signature data SP of the public key h.
  • the signature data SP is generated based on the improved NTRUSign signature scheme.
  • public key certificate storage section 1102 stores public key certificate CP in advance.
  • the public key certificate CP may contain other data in addition to the public key h and the signature data SP. For example, a user identifier or a certificate expiration date may be included.
  • the secret key update unit 1103 indicates the predetermined value Keybound and the upper limit value of the number of searches for the secret key.
  • VMAX is stored in advance.
  • vMAX is 1000, for example.
  • the secret key update unit 1103 updates the secret key stored in the secret key storage unit 1101 periodically, for example, every month by the following operation.
  • the secret key update timing is
  • the secret key update unit 1103 uses the improved NTRUSign signature method to search for a pair whose norm I
  • Secret key update unit 1103 overwrites and renews the newly generated ⁇ (f, g), (F ,, G ') ⁇ on the secret key stored in secret key storage unit 1101.
  • the secret key update unit 1103 indicates that the pair (F ′, G ′) cannot be generated at a predetermined value vMAX or less, and in this case, the secret key cannot be updated.
  • a non-updatable message is displayed via the display unit 1107.
  • the signature generation unit 1104 When the signature generation unit 1104 receives a signature generation instruction indicating the generation of signature data of the message data m from the signature data set generation unit 1105, the signature generation unit 1104 reads the secret key from the secret key storage unit 1101.
  • the signature generation unit 1104 generates signature data S for the message data m using the read secret key, and generates signature data S by signing the message data m. When the generation of the signature data S is completed, the signature generation unit 1104 outputs a generation completion notification indicating that to the signature data set generation unit 1105.
  • the signature data S is generated based on the improved NTRUSign signature method.
  • Display unit 1107 displays the message received from secret key update unit 1103.
  • the signature verification apparatus 1020 includes a CA public key storage unit 1201, a signature data set storage unit 1202, a signature verification unit 1203, a reception unit 1204, and a display unit 1205. Is done.
  • the CA public key storage unit 1201, the signature data set storage unit 1202, the signature verification unit 1203, the reception unit 1204, and the display unit 1205 that constitute the signature verification apparatus 1020 are each in the first embodiment.
  • the operations are the same as those of the CA public key storage unit 201, signature data set storage unit 202, signature verification unit 203, reception unit 204, and display unit 205 shown in FIG.
  • secret key update method secret key update process
  • the secret key update unit 1103 reads ⁇ (f, g), (F, 0) ⁇ from the secret key storage unit 1101 as secret keys ⁇ g), (F_l, G_l) ⁇ (step S400).
  • the secret key update unit 1103 sets v-0, F'-F, G'-G for the variables V, F ', G' (step S405).
  • the secret key update unit 1103 sets F ′ F ′ + X′vXf, G, G, + X′v X g for the variables F ′ and G ′ (step S410).
  • Secret key update unit 1103 determines whether norm I
  • secret key update unit 1103 determines that variable v V ⁇ v + l (step S420), and it is determined whether or not the variable V exceeds the predetermined value vMAX (step S425).
  • step S425 If it is determined that the variable V exceeds the predetermined value vMAX (“YES” in step S425), the secret key update unit 1103 displays a non-updateable message via the display unit 1107 (step S430). If it is determined that the variable V does not exceed the predetermined value vMAX (“NO” in step S425), the secret key update unit 1103 returns to step S410.
  • secret key update unit 1103 uses secret key storage unit Overwrite and update the generated private key ⁇ (f, g), (F ', G') ⁇ to the private key stored in 1101 Thus, a new secret key ⁇ (f, g), (F, G) ⁇ is set (step S435).
  • the operation of the signature generation device 1010 is to generate a signature data set SS for the message data m, send it to the signature verification device 1020 via the communication path 1050, and “secret key update processing” to update the private key. ”Operation. The operation of each process is described below.
  • the signature data set generation unit 1105 receives the message data m by a user operation (step S500).
  • the signature data set generation unit 1105 reads the public key certificate CP from the public key certificate storage unit 1102 and outputs a signature generation instruction to the signature generation unit 1104.
  • the signature generation unit 1104 receives a signature generation instruction from the signature data set generation unit 105, the signature generation unit 1104 reads the secret key from the secret key storage unit 1101.
  • Signature generation section 1104 generates signature data S for message data m using the read secret key (step S505).
  • signature generation section 1104 When the generation of signature data S is completed, signature generation section 1104 outputs a generation completion notification indicating that to signature data set generation section 1105.
  • the signature data set generation unit 1105 Upon receiving the generation completion notification from the signature generation unit 1104, the signature data set generation unit 1105 receives the message data m, the signature data S of the message data m generated by the signature generation unit 1104, and the read public key certificate.
  • a signature data set SS composed of CP is generated (step S510).
  • Transmitter 1106 transmits signature data set SS generated by signature data set generator 1105 to signature verification apparatus 1020 via communication path 1050 (step S515).
  • the secret key update unit 1103 stores the secret key ⁇ (f, g), (F , G) ⁇ to generate a new secret key ⁇ (f, g), (F ,, G ') ⁇ and overwrite the new secret key with the secret key stored in the secret key storage unit 1101 And update.
  • the signature verification apparatus 1020 receives the signature data set SS from the signature generation apparatus 1010 via the communication path 1050, and verifies the signature data set SS. Note that the signature verification processing performed by the signature verification apparatus 1020 is the same operation as the flowchart shown in FIG. 3 in the first embodiment, and thus the description thereof is omitted here.
  • the signature generation apparatus 1010 of the digital signature system 1000 generates a signature data set SS for the input message data m and transmits it to the signature verification apparatus 1020.
  • the signature verification device 1020 receives the signature data set SS from the signature generation device 1010, verifies the received signature data set, and determines whether to accept or reject the signature data set SS based on the verification result. To do.
  • the signature generation apparatus 1010 updates the secret key.
  • the digital signature system 1000 there is one public key for signature verification, but the corresponding private key is updated.
  • This update timing is unknown to the attacker who obtains the signature data set from channel 1050 and executes the Transcript attack.
  • the private key is updated only once. Since the attacker does not know the update timing of the private key used to generate the obtained signature data set, strictly classify the obtained signature data set by the used private key and attack using each It is not possible. Therefore, taking the difference between the signature and hash value from all the obtained signature data sets and calculating the average of them, the attack is performed because two types of secret keys are used after a certain period of time. Unless the signed data set can be correctly classified by the private key, the signature data set has two types of secrets. Secret key information is entered.
  • the digital signature system 1000 is safe because it can prevent a Transcript attack in the same manner as the digital signature system 1 in the first embodiment.
  • each value of the pair (f, g) is fixed and each value of the pair (G, F) is changed.
  • each value of the pair (f, g) may be variable and each value of the pair (F, G) may be fixed.
  • the secret key may be updated with each value of the pair (f, g) being variable.
  • each value of the pair (f, g) may be variable and each value of the pair (F, G) may be fixed.
  • vMAX indicating the number of searches for the secret key in the secret key group generation unit in the first embodiment and the secret key update unit in the second embodiment is not limited to 1000. Other values such as 10000 are acceptable.
  • the secret key may be selected according to a predetermined rule instead of being randomly selected.
  • the signature generation device counts the number of times the signature data set is generated and uses the same secret key until the first predetermined number of times (for example, 1 ( ⁇ 7 times, etc.) is reached. You may use different private keys until the second predetermined number of times (for example, 10 8 times) is reached, at which time the signature generator identifies the private key that is currently used by the pointer. Thus, the same secret key can be used until the first predetermined number of times is reached. Even in such a case, since the attacker does not know the timing of switching the secret key to be used, it is safe against the Transcript attack. Note that the target of counting can be the number of times signature data is generated.
  • the signature generation device may select a plurality of secret keys in the order in which they are stored. At this time, the signature generation device stores a plurality of secret keys by specifying the secret key currently used by using the pointer and changing the position of the pointer to the secret key to be used next. You can select in order. Thereby, the signature generation apparatus can acquire a secret key different from the secret key used for the previous signature when generating the signature, and generate the signature data using the acquired other secret key.
  • the timing for updating the secret key may depend on the number of times the signature data set is generated.
  • the private key may be updated when the signature data set is generated a predetermined number of times (for example, 1 ( ⁇ 7 times, etc.) using the private key. Since attackers do not know the timing of switching, they are safe against Transcript attacks.
  • the power of using the NTRUSign signature scheme or an improved scheme based on the scheme as the signature scheme is not limited to this. Any signature method may be used as long as a plurality of private keys can correspond to one public key.
  • the key generation device and the signature generation device are separate devices, but are not limited thereto.
  • the digital signature system 1 may be configured by a device including a key generation device and a signature generation device, and a signature verification device.
  • the signature generation apparatus accepts message data by a user operation.
  • the present invention is not limited to this.
  • the signature generation device may receive message data from an external device.
  • the signature generation apparatus may receive message data from an external apparatus.
  • Each of the above devices is specifically a computer system that also includes a microprocessor, ROM, RAM, hard disk unit, display unit, keyboard, mouse, and the like.
  • a computer program is stored in the RAM or the hard disk unit.
  • Microprocessor power Each device achieves its functions by operating according to the computer program.
  • the computer program is configured by combining a plurality of instruction codes indicating instructions to the computer in order to achieve a predetermined function.
  • the system SI is an ultra-multifunctional LSI manufactured by integrating multiple components on a single chip. Specifically, it includes a microprocessor, ROM, RAM, etc. It is a computer system. A computer program is stored in the RAM. The microphone processor power By operating according to the computer program, the system LSI achieves its functions.
  • a part or all of the constituent elements constituting each of the above devices may be configured as an IC card or a single module that can be attached to and detached from each device.
  • the IC card or the module is a computer system including a microprocessor, a ROM, a RAM, and the like.
  • the IC card or the module may include the above-mentioned super multifunctional LSI.
  • Microprocessor power The IC card or the module achieves its functions by operating according to a computer program. This IC card or this module may be tamper resistant.
  • the present invention may be the method described above. Further, the present invention may be a computer program that realizes these methods by a computer, or may be a digital signal composed of the computer program.
  • the present invention also provides a computer program or the digital signal that is combined. Data recorded on a readable recording medium such as a flexible disk, hard disk, CD-ROM, M0, DVD, DVD-ROM, DVD-RAM, BD (Blu-ray Disc), semiconductor memory, etc. Good. Further, the present invention may be the computer program or the digital signal recorded on these recording media.
  • a readable recording medium such as a flexible disk, hard disk, CD-ROM, M0, DVD, DVD-ROM, DVD-RAM, BD (Blu-ray Disc), semiconductor memory, etc. Good.
  • the present invention may be the computer program or the digital signal recorded on these recording media.
  • the present invention may transmit the computer program or the digital signal via an electric communication line, a wireless or wired communication line, a network typified by the Internet, a data broadcast, or the like.
  • the present invention may also be a computer system including a microprocessor and a memory.
  • the memory may store the computer program, and the microprocessor may operate according to the computer program.
  • the present invention is a signature generation apparatus that generates signature data for message data using a signature scheme in which a plurality of secret keys can correspond to one public key, and a plurality of the secret keys
  • a secret key group storage unit for storing a secret key group consisting of keys
  • a public key certificate storage unit for storing either the public key or the certificate of the public key, and a plurality of keys included in the secret key group
  • a secret key selection unit that selects one of the secret keys from the secret key
  • a signature generation unit that generates the signature data for the message data using the selected secret key.
  • the signature scheme includes a ring R that is a set of N-dimensional arrays in which norms indicating addition, subtraction, multiplication, and the original size are defined, and an ideal q of the ring R.
  • An element Fq that is the reciprocal of the elements f, g and f (mod q) of R is generated, and an element h that is congruent with the product of the element g and the element Fq and mod q is generated as the public key.
  • the secret key selection unit may randomly select one secret key from the plurality of secret keys included in the secret key group.
  • the present invention is a key generation device that generates the public key and the secret key using a signature scheme in which a plurality of secret keys can correspond to one public key
  • the signature scheme is a ring that is a set of N-dimensional arrays in which norms indicating the size of addition, subtraction, and multiplication are defined, and an ideal q of the ring R.
  • a key generation step including: a generation step; a signature generation step for generating the signature data for the message data using the secret key; and a signature verification step for verifying the signature data using the public key. And generating the public key and a plurality
  • the present invention uses a signature scheme that can correspond to a plurality of private keys with respect to one public key, and generates a signature data for message data.
  • a secret key storing unit for storing the secret key a public key certificate storing unit for storing any of the public key or the certificate of the public key, and the secret key, and the message.
  • the signature scheme includes a ring R that is a set of N-dimensional arrays in which norms indicating addition, subtraction, multiplication, and original size are defined, and an ideal q of the ring R.
  • the present invention uses a signature scheme that allows a plurality of private keys to correspond to one public key, and generates a signature data for message data.
  • a signature verification device that verifies the signature data
  • the signature generation device includes a secret key group storage unit that stores a secret key group consisting of a plurality of the secret keys, and the public key or A public key certificate storage unit that stores one of the certificates of the public key, a secret key selection unit that selects one of the secret keys from the plurality of secret keys included in the secret key group, and a selection And a signature generation unit that generates the signature data for the message data using the secret key.
  • the present invention uses a signature scheme in which a plurality of secret keys can correspond to one public key, and generates a signature data for message data.
  • a secret key selecting step of selecting one secret key from a plurality of the secret keys included in a secret key group and a signature generating step of generating the signature data for the message data using the selected secret key
  • a secret key group storing step for storing a secret key group composed of a plurality of the secret keys
  • a secret key selecting step of selecting one secret key from a plurality of the secret keys included in a secret key group and a signature generating step of generating the signature data for the message data using the selected secret key
  • the present invention uses a signature scheme in which a plurality of private keys can correspond to one public key, and generates a signature data for message data.
  • a secret key storing step for storing the secret key and the public key or the previous key
  • a public key certificate storing step for storing the strength of the certificate of the public key
  • a signature generation step for generating the signature data for the message data using the private key
  • the public key And a secret key update step of updating the secret key.
  • the present invention uses a signature scheme that can correspond to a plurality of secret keys with respect to one public key, and generates a signature data for message data.
  • a secret key group storing step for storing a secret key group composed of a plurality of the secret keys, and a public key certificate for storing either the public key or the certificate of the public key.
  • the signature generation apparatus is caused to execute a signature generation step to be generated.
  • the signature scheme is based on ring R, which is a set of N-dimensional arrays in which norms indicating addition, subtraction, multiplication, and original size are defined, and an ideal q of the ring R.
  • ring R which is a set of N-dimensional arrays in which norms indicating addition, subtraction, multiplication, and original size are defined, and an ideal q of the ring R.
  • the secret key selecting step may select one secret key at random from a plurality of secret key strengths included in the secret key group.
  • the present invention uses a signature scheme that allows a plurality of private keys to correspond to a single public key, and causes a signature generation device that generates signature data for message data to execute the signature scheme.
  • the signature generation apparatus is caused to execute a secret key update step of updating the secret key so as to correspond to
  • the signature scheme is based on the ring R, which is a set of N-dimensional arrays in which norms indicating the original size are added, subtracted, multiplied, and the ideal q of the ring R.
  • a signature verification step for verifying the signature data by using the signature data.
  • the present invention uses a signature scheme that allows a plurality of private keys to correspond to a single public key, and generates a signature data for message data.
  • a secret key group storage unit that stores a secret key group including a plurality of secret keys, and a public key certificate storage unit that stores either the public key or the certificate of the public key
  • a secret key selection unit that selects one of the secret keys included in the secret key group, and a signature that generates the signature data for the message data using the selected secret key
  • a generation unit that uses a signature scheme that allows a plurality of private keys to correspond to a single public key, and generates a signature data for message data.
  • the present invention uses a signature scheme that can correspond to a plurality of private keys for one public key, and generates a signature data for message data.
  • a secret key storage unit that stores the secret key
  • a public key certificate storage unit that stores either the public key or the certificate of the public key
  • the secret key And a signature generation unit that generates the signature data for the message data, and a secret key update unit that updates the secret key so as to correspond to the public key.
  • each device constituting the digital signature system described above can be manufactured and sold in the electrical appliance manufacturing industry in a management manner, continuously and repeatedly.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

 署名データに対するTranscript attackを防ぐことのできる署名生成装置を提供する。  メッセージデータに対する署名データを生成する署名生成装置は、1の公開鍵に複数の秘密鍵が対応している署名方式の鍵生成方法を用いて生成される前記複数の秘密鍵のうち前回署名に利用した秘密鍵とは異なる他の1の秘密鍵を、所定の取得方法により取得し、取得した前記他の1の秘密鍵を用いて、前記メッセージデータに、前記署名方式の署名方法による署名を施して署名データを生成する。

Description

明 細 書
署名生成装置、鍵生成装置及び署名生成方法
技術分野
[0001] 本発明は、情報セキュリティ技術としての暗号技術に関し、特に、ディジタル署名の 技術に関する。
背景技術
[0002] 受信装置から送信装置へデータを送信する際の送信者の特定及びデータの改ざ んを防止するための技術として、公開鍵暗号の一種であるディジタル署名方式があ る。これを簡単に説明すると、送信装置が、送信したいデータに対し、送信装置の秘 密鍵を用いて署名データを作成し、送信したレ、データと共に署名データを受信装置 へ送信し、受信装置は、送信装置の秘密鍵に対応する公開鍵を用いて署名データ を検証し、改ざんされているか否かを判定する方法である(例えば、非特許文献 1参 照)。ここで、公開鍵力 秘密鍵の値は計算困難である。
[0003] 最近、高速処理が可能な公開鍵暗号として、 NTRU暗号が提案されている(例え ば、非特許文献 2参照)。この NTRU暗号は、ある法の下でべき乗剰余演算を行う R SA暗号や楕円曲線上の点のスカラ倍演算を行う楕円曲線暗号に比べ、高速に演算 可能な多項式演算により暗号化と複号化を行うので、従来の公開鍵喑号よりも高速 に処理することが可能で、ソフトウェアの処理でも実用的な時間で処理可能である。
[0004] 従って、公開鍵暗号に NTRU暗号を用いた暗号通信システムでは、従来の公開鍵 暗号を用いた暗号通信システムよりも、送信装置及び受信装置の処理が高速に行え るという利点がある。
上記で提案された方式は、データを暗号化する守秘喑号方式であつたが、その後 、 NTRU暗号のディジタル署名方式が提案されている(非特許文献 3参照)。デイジ タル署名方式については解読法の出現などで、方式が幾度か変更された。以下では 、 NTRUSignと呼ばれるディジタル署名方式について簡単に説明する(詳細につい ては、特許文献 2及び非特許文献 4参照)。
[0005] NTRUSign署名方式の鍵生成において、多項式: N— 1を法とし、整数係数を有 する多項式の環 Rに属する複数の元と、環 Rのイデアルとを用いることにより、秘密鍵 及び公開鍵が生成される。ここで、 「X' a」は Xの a乗を意味することとする。 NTRUSi gn署名方式におけるメッセージに対する署名では、生成した秘密鍵と、メッセージの ハッシュ値である 2 · Ν次元のベクトルとが用いられる。 NTRUSign署名方式におけ る署名検証では、公開鍵と、メッセージに対する署名と、メッセージのハッシュ値であ る 2 · Ν次元のベクトルとが用いられる。なお、非特許文献 4及び非特許文献 5に、 NT RUSign署名方式にて用いられる環及び環のイデアルにっレ、て記載がなされてレ、る ので、ここでの説明は省略する。
[0006] < NTRUSign署名方式 >
( 1 ) NTRUSign署名方式のパラメータ
NTRUSign署名方式は、非負整数のパラメータ、 N, q, df, dg, Normboundを 用いる。以下に、これらのパラメータの意味を説明する。
( 1 1 )パラメータ N
NTRUSign署名方式は、多項式の演算により署名生成及び署名検証を行うディジ タル署名方式である。 NTRUSign署名方式で扱う多項式の次数は、上記パラメータ Nにより決まる。
[0007] NTRUSign署名方式で扱う多項式は、上記パラメータ Nに対し、 N—1次以下の 整数係数多項式であり、例えば N = 5のとき、 X"4 + X 3 + l等の多項式である。な お、多項式に対しては、(mod X"N— 1 )演算を施し、常に、 N— 1次以下からなる 整数係数多項式を算出する。なぜなら、 (mod X"N— 1 )演算を施すことにより、 X' N = lという関係式が成り立つため、 N次以上の変数に対しては、常に N— 1次以下 の変数へと変換することができるからである。ここで、多項式に対して、 (mod X"N 一 1 )演算を施すことにより得られる整数係数多項式は、多項式環 Rの元となることが わ力る。
[0008] また、公開鍵 h、署名 sはいずれも、 N—1次以下の多項式として表現される。また、 秘密鍵は 4つの N _ l次以下の多項式対(f, g, F, G)である。すなわち、 f, g, F, G はいずれも N— 1次以下の多項式であり、多項式環 Rの元である。なお、以下では、 4 つ組 (f, g, F, G)を 2つの対(f, g), (F, G)のさらなる対と捉えて、 { (f, g) , (F, G) }と表記する場合もある。
[0009] そして、多項式演算は、上記パラメータ Nに対し、 X'N = 1という関係式を用いて、 演算結果が常に N— 1次以下の多項式になるように演算される。例えば、 N = 5の場 合、多項式 X 4 + X 2 + lと多項式: T3 + Xの積は、多項式と多項式の積を X、整 数と多項式の積 (あるいは整数と整数の積)を ·とすると、 X" 5 = 1という関係から、 (X"4 + X"2+l) X (X"3 + X)
=Χ"7 + 2·Χ"5 + 2·Χ"3 + Χ
=Χ"2·1 + 2·1 + 2·Χ"3 + Χ
= 2·Χ"3 + Χ"2 + Χ+2
というように、常に Ν_1次以下の多項式になるように演算される。
[0010] なお、 NTRUSign署名方式では、 N_ 1次の多項式 a = a_0 + a_l 'X + a_2'X '2 +〜+a_(N_l) ·Χ (N_l)はべクトノレ(a_0, a_l, a_2,…, a_(N_l)) と同一視する。 a— 0, a— 1, a— 2, ···, a— (N— 1)は多項式 aの係数であり、整数で ある。
(1 2)パラメータ q
NTRUSign署名方式では、 2以上の整数であり、多項式環 Rのイデアルであるパラ メータ qを用いる。 NTRUSign署名方式で出現する多項式の係数は、 qを法とした剰 余を取る。
[0011] (1 3)パラメータ df, dg
NTRUSign署名方式で扱う秘密鍵の一部である多項式 f及び、公開鍵である多項 式 hを生成するときに多項式 fと共に用いる多項式 gの選び方は、それぞれパラメータ df, dgにより決まる。
まず、多項式 fは、 df個の係数が 1であり、かつ他の係数は 0となるように選ぶ。すな わち、多項式 fは N— 1次以下の多項式であり、 0次(定数項)から N— 1次まで、 N個 の係数があるが、この N個の係数のうち、 df個の係数が 1であり、かつ(N_df)個の 係数が 0となるように選ぶ。
[0012] そして、多項式 gは、 dg個の係数が 1であり、かつ他の係数は 0となるように選ぶ。
(1—4)ノヽ0ラメータ Normbound NTRUSign署名方式では、後述するが署名 sから作られる 2 · N次元のベクトノレとメ ッセージのハッシュ値である 2·Ν次元のベクトルの距離を計算し、この距離により正し い署名であるかを判定する。 Normboundは、この判定の際に使用するしきい値であ る。すなわち、上記距離が Normbound未満であれば、正しい署名として受理し、 No rmbound以上であれば、正しくなレ、署名とし拒否する。
[0013] 非特許文献 4には、 NTRUSign署名方式のパラメータの例として、(N, q, df, dg, Normbound) = (251, 128, 73, 71, 310)の ί列カ挙げ、られてレヽる。
(2)メッセージのハッシュ値、ノルム及びベクトル間の距離
NTRUSign署名方式では、メッセージ mのハッシュ値に対する署名を作成する。メ ッセージ mのハッシュ値は、 N次の多項式の対(ml, m2)であり、 2 ·Ν次元のベタト ルと同一視される。メッセージからハッシュ値を求めるハッシュ関数については、非特 許文献 1が詳しい。
[0014] NTRUSign署名方式では、署名検証にベクトルの距離を用いる。以下でその定義 を示す。
多項式 a = a— 0 + a— l'X + a— —— ha— (N— 1) ·Χ'(Ν— 1)のノルム | I a I Iを以下のように定義する。
I I a I I =sqrt((a_0- /i)"2+(a_l- i)"2H——ト(a— (N— 1) / i )'2) μ = (1/Ν) · (a— 0 + a— 1+a— 2Η—— ha— (N—l))
ここで、 sqrt(x)は xの平方根を示す。
[0015] 多項式 a, bの対(a, b)の力レム | | (a, b) | |を以下のように定義する。
I I (a, b) I I =sqrt( | | a | | "2+ | | b | | "2)
多項式 a, bの対(a, b)と c, dの対(c, d)との距離は、 I I (c_a, d_b) | |で定 義される。
これにより、 (mod X N_1)演算を施すことにより得られた N_l次以下の整数係 数多項式は、加算、減算、乗算、及び元の大きさを示すノルムが定義された N次元配 歹 IJとみなすことができ、多項式環 Rは、 N次元配列の集合とみなすことができる。
[0016] (3) NTRUSign署名方式の鍵生成
NTRUSign署名方式では、上述したように、パラメータ df, dgを用いてランダムに 多項式 f,多項式 gを生成する。そして非特許文献 4に記載の通り、 FqXf=l(mod q)となる多項式 Fqを用いて、
h=FqXg(moa q)
により、多項式 hを生成する。ここで、多項式 Fqは、多項式 fの逆元と呼ばれる。さらに 、以下の式を満たすようなノルムが小さい多項式 F, Gを求める。
[0017] f XG-gXF = q
秘密鍵を {(f, g), (F, G)}、公開鍵を hとする。秘密鍵は、署名を生成するための 鍵であり、署名生成鍵とも呼ばれる。また、公開鍵は、署名を検証するための鍵であ り、署名検証鍵とも呼ばれる。
ここで、 x=y(mod q)は、多項式 yの第 i次の係数を、剰余が 0から q_ 1の範囲に 収まるように法 qで割ったときの剰余を、多項式 Xの第 i次の係数とする演算である(0 ≤i≤N_l)。すなわち、多項式 yの各係数を、 0から(q_l)の範囲に収まるように m od q演算した多項式を、多項式 Xとする演算である。
[0018] (4)NTRUSign署名方式の署名生成
NTRUSign署名方式の署名生成では、署名対象であるメッセージ mの署名 sを計 算する。まず、メッセージ mに対するハッシュ値である 2·Ν次元のベクトル(ml, m2) (ml及び m2は N次多項式)を計算する。
この 2·Ν次元のベクトル (ml, m2)と秘密鍵 {(f, g) , (F, G)}を用いて、以下の式 を満たす多項式 a, b, A, Bを計算する。
[0019] GXml-FXm2=A + qXB
-gXml+f Xm2=a+qXb
ここで、 A, aの係数はく _q/2〉 +1からく qZ2〉の範囲に収まるように法 qで割った ときの剰余を取ったものとする。すなわち、法 qで割ったときの剰余がく q/2〉力 q_ 1である場合は、 q減算して、上記範囲に収まるよう調整する。ここで、〈x〉は、 X以下 の数の中で最も大きい数を示す。例えば、〈_1/2〉 = _1である。
[0020] 次に以下の式より、 s, tを計算し、 sを署名として出力する。
s = f XB + FXb (mod q)
t = gXB + GXb (mod q) (5) NTRUSign署名方式の署名検証
NTRUSign署名方式の署名生成では、署名 sが署名対象であるメッセージ mの正 しい署名であるかを検証する。まず、メッセージ mに対するハッシュ値である 2 · N次元 のベクトル(ml , m2)を計算する。
公開鍵 hを用いて、以下の式より、多項式 tを計算する。
t = s X h 、mod q)
2 ·Ν次元べクトノレ(s, t)と(ml , m2)の距離を求め、 Normbound未満であるかを チェックする。 Normbound未満であれば、署名 sが正しいと判定して署名 sを受理す る。 Normbound以上であれば、署名 sが不正と判定して署名 sを拒否する。
特許文献 1 :特表 2000— 516733号公報
特許文献 2 :国際公開番号 WO2003Z050998号
非特許文献 1 :岡本龍明、山本博資、「現代暗号」、産業図書(1997年)
非特許文献 2 :J. Hoffstein, J. Pipher, and J. H. Silverman, "NTRU : A ring based public key cryptosystem , Lecture Notes in Comput er Science, 1423, pp. 267— 288, Springer— Verlag, 1998.
非特許文献 3 :J. Hoffstein, J. Pipher and J. Silverman, "NSS : An NT RU Lattice— Based Signature Scheme, " Advances in Cryptoplogy— Eurocrypt ' 01 , LNCS, Vol. 2045, pp. 123— 137, Springer— Verla g, 2001
非特許文献 4 : J. Hoffstein, N. Graham, J. Pipher, J. Silverman and W . Whyte, "NTRUSign : Digital Signatures Using the NTRU Lattice , " CT-RSA' 03, LNCS, Vol. 2612, pp. 122- 140, Springer— Ver lag, 2003
非特許文献 5 :J. Hoffstein, N. Graham, J. Pipher, J. H. Silverman, W. W hyte, "NTRUSign : Digital Signatures Using the NTRU Lattice Prel iminary Draft 2—— April 2, 2002", [2005年 1月 20日検索]、インターネット く URL : http : / Z www. ntru. com/ cryptolab/ pdd/ NTRUSign― pre V 2. pdf > 発明の開示
発明が解決しょうとする課題
[0022] 上述した NTRUSign署名方式には、 Transcript attackと呼ばれる攻撃がある。
Transcript attackは、複数の署名文(メッセージと署名の対)から秘密鍵を求める 攻撃である。 Transcript attackの詳細は、非特許文献 4に記載されているので、こ こでは、以下で簡単に説明する。
Transcript attackは、複数の署名 sとメッセージのハッシュ値(ml, m2)の一部 mlとの差分 ml— s力 S
ml-s = elXf + e2XF
el, e2は係数が— 1Z2から 1/2の範囲に入る多項式
となることを利用しており、差分 ml _sの 2次モーメント及び 4次モーメントの平均値を 取ることで、秘密鍵の一部である f, Fを求める。ここで、多項式 aの 2次モーメント a〜2 とは、 a = a_0 + a_l'X + a_2'X'2 + "-+a_(N_2) ·Χ'(Ν_2) +a_(N_l ) ·Χ'(Ν_1)と aの相反 a* =a_0 + a_(N_l) -X + a_(N-2) .X'2 +…十 a_ 2·Χ"(Ν-2) +a_l'X'(N_l)との積 a〜 = aXa*である。また、 4次モーメント a 〜4は、 a〜2の 2乗、すなわち、 a〜4 = a〜2Xa〜2である。
[0023] (ml_sの 2次モーメント) = (elXf + e2XF) X (el* Xf*+e2* XF*)
= el〜Xf〜 + e2〜XF〜 + el Xf Xe2* XF*+e2XFXel* Xf* 署名文の個数が増大すると、 ml— sの 2次モーメントの平均に含まれる e:!〜, e2〜 はある一定値 kl, k2に収束し、上記の式の elXfXe2* ?*と62 ? 61* Xf *は 0に近づく。したがって、署名文の個数が大きい場合、 ml— sの 2次モーメントの 平均は、 klXf〜 + k2XF〜にほぼ等しくなる。さらに 4次モーメントの平均でも、同 様に f及び Fに関連する情報を得られ、両方の情報から fを求めることが可能になる。 非特許文献 4によると、 2次モーメント及び 4次モーメントの平均から秘密鍵に関する 情報が得られるために必要な署名文の個数はそれぞれ 10"4、 1CT8である。したが つて、 NTRUSign署名方式の Transcript attackを成功させるためには、 10'8個 以上の署名文が必要と考えられている。
[0024] 本発明は、署名データに対する Transcript attackを防ぐことのできる署名生成 装置、鍵生成装置、署名システム、署名生成方法、署名検証プログラム、署名検証 方法、鍵生成プログラム、署名生成用の集積回路及び鍵生成用の集積回路を提供 することを目的とする。
課題を解決するための手段
[0025] 上記目的を達成するために、本発明は、メッセージデータに対する署名データを生 成する署名生成装置であって、 1の公開鍵に複数の秘密鍵が対応している署名方式 の鍵生成方法を用いて生成される前記複数の秘密鍵のうち前回署名に利用した秘 密鍵とは異なる他の 1の秘密鍵を、所定の取得方法により取得する秘密鍵取得手段 と、取得した前記他の 1の秘密鍵を用いて、前記メッセージデータに、前記署名方式 の署名方法による署名を施して署名データを生成する署名生成手段とを備えること を特徴とする。
発明の効果
[0026] 上記に示した構成によると、署名生成装置は、 1の公開鍵に対応する複数の秘密 鍵のうち前回署名に利用した秘密鍵とは異なる他の 1の秘密鍵を取得している。これ により、 Transcript attackを実行する攻撃者は、署名データを入手して、 Transcri pt attackを試みても、入手した署名データが前回署名に利用した秘密鍵、及び今 回の署名に用いた秘密鍵のどちらにて署名されたかが分からないため、署名生成装 置は、署名データに対する Transcript attackを防ぐことができる。
[0027] ここで、前記所定の取得方法とは、複数の秘密鍵のうちの 1の秘密鍵をランダムに 取得することであり、前記秘密鍵取得手段は、前記複数の秘密鍵のうちの前回署名 に利用した秘密鍵とは異なる前記他の 1の秘密鍵をランダムに取得するとしてもよい この構成によると、署名生成装置は、複数の秘密鍵力 前回の署名に利用した秘 密鍵とは異なる他の 1の秘密鍵をランダムに取得するので、 Transcript attackを実 行する攻撃者は、署名データを入手して、 Transcript attackを試みても、入手した 署名データがどの秘密鍵にて生成されたかがわからないため、署名生成装置は、署 名データに対する Transcript attackを防ぐことができる。
[0028] ここで、前記秘密鍵取得手段は、前記複数の秘密鍵を記憶しており、記憶してレ、る 前記複数の秘密鍵から前記他の 1の秘密鍵を、前記所定の取得方法により取得する としてもよレ、。
この構成によると、署名生成装置は、記憶している複数の秘密鍵から前記他の 1の 秘密鍵を取得するので、前記 1の公開鍵に対応する秘密鍵を確実に取得することが できる。
[0029] ここで、前記署名方式は、格子を用いた署名方式であり、前記秘密鍵取得手段は、 前記格子を用いた署名方式の鍵生成方法にて生成された前記複数の秘密鍵を記 憶しているとしてもよい。
この構成によると、格子を用いた鍵生成及び署名生成行う署名方式は、格子の性 質上、 1の公開鍵に対して、複数の秘密鍵を生成することができる。これにより、署名 生成装置は、 1の公開鍵に対する複数の秘密鍵を記憶することができる。
[0030] ここで、前記署名方式は、 NTRU署名方式であり、加算、減算、乗算と元の大きさ を示すノルムが定義された N次元配列の集合である環 Rと、前記環 Rのイデアル qと に対し、前記環 Rの元 f, gおよび、 f (mod q)の逆数である元 Fqを生成し、前記元 g および前記元 Fqの積と mod qで合同である元 hを前記公開鍵として生成する公開 鍵生成ステップと、 f X G— g X F = qを満たし、かつ、ノルムが予め与えられた所定値 より小さい前記環 Rの元の対である複数の解(F, G) = (F— 1, G— 1) , (F— 2, G— 2) , · · · , (F_u, G_u) (uは 1より大きい正整数)を生成し、複数の前記元の 4つ組 (f, g, F— 1 , G— 1) , (f, g, F— 2, G— 2) , · · ·, (f, g, F— u, G— u)のそれぞれを 前記秘密鍵として生成する秘密鍵生成ステップと、生成した前記複数の秘密鍵のう ち 1の秘密鍵を用いて、署名データを生成する署名生成ステップとを含み、前記秘密 鍵取得手段が記憶してレ、る前記複数の秘密鍵は、前記秘密鍵ステップにより生成さ れ、前記署名生成手段は、前記署名生成ステップにより前記署名データを生成する としてもよレ、。
[0031] この構成によると、署名方式は、環 Rとイデアル qとを用いて、公開鍵、及び前記公 開鍵に対応する複数の秘密鍵を生成し、生成した複数の秘密鍵のうち 1の秘密鍵を 用いて署名を行うので、前記署名生成装置は、前記署名方式を用いることにより、公 開鍵に対応している秘密鍵を用いて確実に署名を行うことができる。 ここで、前記署名生成装置は、前記署名方式を用いて前記公開鍵及び前記複数 の秘密鍵を生成する鍵生成装置を含むとしてもよレ、。
[0032] この構成によると、署名生成装置は、当該装置に含まれる鍵生成装置を用いて前 記公開鍵、及び前記複数の秘密鍵を生成することができる。
ここで、前記所定の取得方法とは、複数の秘密鍵のうちの 1の秘密鍵をランダムに 取得することであり、前記鍵取得手段は、記憶している前記複数の秘密鍵から前回 署名に利用した秘密鍵とは異なる前記他の 1の秘密鍵をランダムに取得するとしても よい。
[0033] この構成によると、署名生成装置は、記憶してレ、る複数の秘密鍵から前回の署名に 利用した秘密鍵とは異なる前記他の 1の秘密鍵をランダムに取得するので、 Transcr ipt attackに対する防御を高めることができる。
ここで、前記所定の取得方法とは、記憶している順序に基づいて、複数の秘密鍵の うちの 1の秘密鍵を取得することであり、前記鍵取得手段は、前記複数の秘密鍵を記 憶している順序に基づいて、前回署名に利用した秘密鍵とは異なる前記他の 1の秘 密鍵を取得するとしてもよレ、。
[0034] この構成によると、署名生成装置は、署名データ毎に、署名に用いる秘密鍵を使い 分けるので、 Transcript attackに対する防御を高めることができる。
ここで、前記所定の取得方法とは、複数の秘密鍵のうち前回署名に利用した秘密 鍵とは異なる他の 1の秘密鍵を、前記鍵生成方法により生成して取得することであり、 前記鍵取得手段は、前記 1の公開鍵に対応し、前記署名方式にて生成された第 1秘 密鍵を記憶しており、前記第 1秘密鍵を利用した後、前記鍵生成方法により前記 1の 公開鍵に対応する第 2秘密鍵を生成し、記憶している前記第 1秘密鍵を、生成した前 記第 2秘密鍵へと更新し、前記署名データの生成時に、記憶している前記第 2秘密 鍵を前記 1の秘密鍵として取得するとしてもよい。
[0035] この構成によると、署名生成装置は、第 1秘密鍵の利用後、前記第 1秘密鍵を前記 第 2秘密鍵へと更新しているので、前記署名データを生成する際には、前記第 1秘密 鍵とは異なる第 2秘密鍵を確実に用いることができる。
また、本発明は、メッセージデータに対する署名データの生成及び検証に用いる鍵 を生成する鍵生成装置であって、 1の公開鍵に複数の秘密鍵が対応する署名方式 により前記 1の公開鍵を生成する公開鍵生成手段と、前記署名方式により前記 1の公 開鍵に対応する複数の秘密鍵を生成する秘密鍵生成手段とを備えることを特徴とす る。
[0036] この構成によると、鍵生成装置は、 1の公開鍵と、前記公開鍵に対応する複数の秘 密鍵とを生成する。このとき、署名を行う装置が、署名の際に前記複数の秘密鍵のう ち 1の秘密鍵を用いると、 Transcript attackを実行する攻撃者は、署名されたデ ータを入手して、 Transcript attackを試みても、入手した署名されたデータが前記 複数の秘密鍵うちどの秘密鍵にて生成されたかがわからない。そのため、鍵生成装 置は、署名データに対する Transcript attackを防ぐことができる。
[0037] ここで、前記署名方式は、格子を用いた方式であり、前記公開鍵生成手段は、前記 署名方式により、前記公開鍵を生成し、前記秘密鍵生成手段は、前記署名方式によ り、前記複数の秘密鍵を生成するとしてもよい。
この構成によると、鍵生成装置は、格子を用いた署名方式にて鍵生成を行うので、 格子の性質上、 1の公開鍵と、前記公開鍵に対応する複数の秘密鍵とを生成するこ とができる。
[0038] ここで、前記署名方式は、 NTRU署名方式であり、加算、減算、乗算と元の大きさ を示すノルムが定義された N次元配列の集合である環 Rと、前記環 Rのイデアル qと に対し、前記環 Rの元 f, gおよび、 f (mod q)の逆数である元 Fqを生成し、前記元 g および前記元 Fqの積と mod qで合同である元 hを前記公開鍵として生成する公開 鍵生成ステップと、 f X G— g X F = qを満たし、かつ、ノルムが予め与えられた所定値 より小さい前記環 Rの元の対である複数の解(F, G) = (F_1, G_l) , (F_2, G_ 2) ,■· - , (F_u, G_u) (uは 1より大きい正整数)を生成し、複数の前記元の 4つ組 (f, g, F_l , G_l) , (f, g, F_2, G_2) , ·■·, (f, g, F_u, G_u)のそれぞれを 前記秘密鍵として生成する秘密鍵生成ステップとを含み、前記公開鍵生成手段は、 前記公開鍵生成ステップにより前記公開鍵を生成し、前記秘密鍵生成手段は、前記 秘密鍵生成ステップにより前記複数の秘密鍵を生成するとしてもよい。
[0039] この構成によると、鍵生成装置は、署名方式に含まれる公開鍵生成ステップ及び秘 密鍵生成ステップを用いることにより、公開鍵、及び前記公開鍵に対応する複数の秘 密鍵を生成することができる。
また、本発明は、メッセージデータに対する署名データを生成する署名生成装置と 、署名の検証を行う署名検証装置とからなる署名システムであって、前記署名生成装 置は、 1の公開鍵に複数の秘密鍵が対応している署名方式の鍵生成方法を用いて 生成される前記複数の秘密鍵のうち前回署名に利用した秘密鍵とは異なる他の 1の 秘密鍵を、所定の取得方法により取得する秘密鍵取得手段と、取得した前記他の 1 の秘密鍵を用いて、前記メッセージデータに、前記署名方式の署名方法による署名 を施して署名データを生成する署名生成手段とを備え、前記署名検証装置は、前記 公開鍵を用いて、前記署名データを検証する検証手段を備えることを特徴とする。
[0040] この構成によると、署名システムは、署名生成装置にて、 1の公開鍵に対応する複 数の秘密鍵のうち前回の署名に利用した秘密鍵とは異なる 1の秘密鍵を取得してい る。これにより、 Transcript attackを実行する攻撃者は、署名データを入手して、 T ranscript attackを試みても、入手した署名データが前回署名に利用した秘密鍵、 及び今回の署名に用いた秘密鍵のどちらにて署名されたかが分からないため、署名 生成装置は、署名データに対する Transcript attackを防ぐことができる。また、公 開鍵は、前記複数の秘密鍵それぞれに対応しているので、署名検証装置は、前記 複数の秘密鍵のうち 1の秘密鍵を用いて生成された署名データを、前記公開鍵を用 いて検証することができる。
図面の簡単な説明
[0041] [図 1]ディジタル署名システム 1の構成を示すブロック図である。
[図 2]署名生成装置 10にて行われる署名生成処理の動作を示す流れ図である。
[図 3]署名検証装置 20にて行われる署名検証処理の動作を示す流れ図である。
[図 4]鍵生成装置 30にて行われる鍵生成処理の動作を示す流れ図である。
[図 5]鍵生成装置 30にて行われる秘密鍵群生成処理の動作を示す流れ図である。
[図 6]ディジタル署名システム 1000の構成を示すブロック図である。
[図 7]署名生成装置 1010にて行われる秘密鍵更新処理の動作を示す流れ図である [図 8]署名生成装置 1010にて行われる署名生成処理の動作を示す流れ図である。 符号の説明
1 ディジタル署名システム
10 署名生成装置
20 署名検証装置
30 鍵生成装置
50 通信路
101 秘密鍵群格納部
102 公開鍵証明書格納部
103 秘密鍵選択部
104 署名生成部
105 署名データセット生成部
106 送信部
201 CA公開鍵格納部
202 署名データセット格納部
203 署名検証部
204 受信部
205 表示部
301 証明書生成鍵格納部
302 鍵生成部
303 秘密鍵群生成部
304 証明書生成部
305 鍵設定部
1000 ディジタノレ署名システ
1010 署名生成装置
1020 署名検証装置
1050 通信路
1101 秘密鍵格納部 1102 公開鍵証明書格納部
1103 秘密鍵更新部
1104 署名生成部
1105 署名データセット生成部
1106 送信部
1107 表示部
1201 CA公開鍵格納部
1202 署名データセット格納部
1203 署名検証部
1204 受信部
1205 表示部
発明を実施するための最良の形態
[0043] 1.第 1の実施の形態
以下、本発明に係る第 1の実施の形態としてのディジタル署名システム 1について、 図面を参照して説明する。
1. 1 ディジタル署名システム 1の概要
ディジタル署名システム 1は、図 1に示すように、署名生成装置 10と、署名検証装置 20と、鍵生成装置 30と、通信路 50とから構成されている。
[0044] 鍵生成装置 30は、従来の NTRUSign署名方式を改良した改良 NTRUSign署名 方式用いて、鍵生成を行い、複数の秘密鍵 { (f, g) , (F_l , G_l) }, { (f, g), (F _2, G_2) } , · · ·及び 1の公開鍵 hを生成する。なお、改良 NTRUSign署名方式 用いた鍵生成については後述する。また、公開鍵 hは、複数の秘密鍵 { (f, g) , (F_ 1 , G_l) }, { (f, g) , (F_2, G_2) }, · · ·の全てに対応する公開鍵である。
[0045] 署名生成装置 10は、鍵生成装置 30にて生成された複数の秘密鍵のうち 1の秘密 鍵と、改良 NTRUSign署名方式とを用いて、メッセージデータ mに対する署名デー タセット SSを生成し、通信路 50を介して署名検証装置 20に、生成した署名データセ ット SSを送信する。なお、署名データセット SSの構成については、後述する。
署名検証装置 20は、署名生成装置 10から、署名データセット SSを受信し、受信し た署名データセット SSがメッセージデータ mの正しい署名であるかを、改良 NTRUS ign署名方式を用いて検証する。署名検証装置 20は、署名データセット SSが正しい と判定する場合には、署名データセット SSを受理し、署名データセット SSが不正と判 定する場合には、署名データセット SSを拒否する。
[0046] 改良 NTRUSign署名方式の鍵生成では、多項式 X'N_ 1を法とし、整数係数を 有する多項式の環 Rに属する複数の元と、環 Rのイデアルとを用いることにより、 1の 公開鍵及び公開鍵に対応する複数の秘密鍵が生成される。改良 NTRUSign署名 方式におけるメッセージに対する署名では、 1の秘密鍵と、メッセージのハッシュ値で ある 2 · N次元のベクトルとが用いられる。改良 NTRUSign署名方式における署名検 証では、公開鍵と、メッセージに対する署名と、メッセージのハッシュ値である 2 · N次 元のベクトルとを用いる。なお、非特許文献 4及び非特許文献 5に、 NTRUSign署名 方式にて用いられる環及び環のイデアルにっレ、て記載がなされてレ、るので、ここでの 説明は省略する。
[0047] 以下において、改良 NTRUSign署名方式について説明する。
<改良 NTRUSign署名方式 >
(1)改良 NTRUSign署名方式のパラメータ
改良 NTRUSign署名方式は、非負整数のパラメータ、 N, q, df, dg, Normboun dを持つ。これらのパラメータの定義は、従来の NTRUSign署名方式と同様である。 以下に、これらのパラメータの意味を説明する。
[0048] (1 1)パラメータ N
改良 NTRUSign署名方式は、多項式の演算により署名生成及び署名検証を行う ディジタル署名方式である。改良 NTRUSign署名方式で扱う多項式の次数は、上 記パラメータ Nにより決まる。
改良 NTRUSign署名方式で扱う多項式は、上記パラメータ Nに対し、 N—1次以 下の整数係数多項式であり、例えば N = 5のとき、 X 4 + X 3 + l等の多項式である 。ここで、「: Ta」は Xの a乗を意味することとする。なお、多項式に対しては、 (mod X ~N_ 1)演算を施し、常に、 N—1次以下からなる整数係数多項式を算出する。なぜ なら、 (mod X N_ 1)演算を施すことにより、X N= 1という関係式が成り立つため 、 N次以上の変数に対しては、常に N— 1次以下の変数へと変換することができるか らである。ここで、多項式に対して、(mod X"N— 1)演算を施すことにより得られる 整数係数多項式は、多項式環 Rの元となることがわかる。
[0049] また、公開鍵 h、署名 sはいずれも、 N—1次以下の多項式として表現される。また、 秘密鍵は 4つの N_l次以下の多項式対(f, g, F, G)である。すなわち、 f, g, F, G はいずれも N— 1次以下の多項式であり、多項式環 Rの元である。なお、以下では、 4 つ組 (f, g, F, G)を 2つの対(f, g), (F, G)のさらなる対と捉えて、 {(f, g), (F, G) }と表記する場合もある。
[0050] そして、多項式演算は、上記パラメータ Nに対し、 X N = 1という関係式を用いて、 演算結果が常に N_l次以下の多項式になるように演算される。例えば、 N = 5の場 合、多項式 X 4 + X 2 + lと多項式: T3 + Xの積は、多項式と多項式の積を X、整 数と多項式の積 (あるいは整数と整数の積)を ·とすると、 X" 5 = 1という関係から、 (X'4 + X"2+l) X (Χ'3 + Χ)
=Χ"7 + 2·Χ"5 + 2·Χ"3 + Χ
=Χ'2·1 + 2·1 + 2·Χ"3+Χ
= 2·Χ'3+Χ"2+Χ+2
というように、常に Ν— 1次以下の多項式になるように演算される。
[0051] なお、改良 NTRUSign署名方式においても、 N— 1次の多項式 a = a— 0 + a— 1 · X + a_2-X"2H—— ha— (N—1) ·Χ' (N—1)はベクトル(a— 0, a— 1, a— 2, ···, a — (N—l))と同一視する。 a— 0, a— 1, a— 2, ···, a— (N— 1)は多項式 aの係数で あり、整数である。
(1— 2)パラメータ q
改良 NTRUSign署名方式では、 2以上の整数であり、多項式環 Rのイデアルであ るパラメータ qを用いる。改良 NTRUSign署名方式で出現する多項式の係数は、 qを 法とした剰余を取る。
[0052] (1_3)パラメータ0^, dg
改良 NTRUSign署名方式で扱う秘密鍵の一部である多項式 f及び、公開鍵である 多項式 hを生成するときに多項式 fと共に用いる多項式 gの選び方は、それぞれパラメ ータ df, dgにより決まる。
まず、多項式 fは、 df個の係数が 1であり、かつ他の係数は 0となるように選ぶ。すな わち、多項式 fは N— 1次以下の多項式であり、 0次(定数項)から N— 1次まで、 N個 の係数があるが、この N個の係数のうち、 df個の係数が 1であり、かつ(N_df)個の 係数が 0となるように選ぶ。
[0053] そして、多項式 gは、 dg個の係数が 1であり、かつ他の係数は 0となるように選ぶ。
(1—4)ノヽ0ラメータ Normbound
改良 NTRUSign署名方式では、後述するが署名 sから作られる 2· N次元のベタト ルとメッセージのハッシュ値である 2· N次元のベクトルの距離を計算し、この距離によ り正しい署名であるかを判定する。 Normboundは、この判定の際に使用するしきい 値である。すなわち、上記距離が Normbound未満であれば、正しい署名として受理 し、 Normbound以上であれば、正しくない署名とし拒否する。
[0054] 非特許文献 4には、 NTRUSign署名方式のパラメータの例として、(N, q, df, dg, Normbound) = (251, 128, 73, 71, 310)の ί歹 (J力 S挙げ、られてレヽる。改良 NTRUSi gn署名方式においても、同様のパラメータ例を使用してもよい。
(2)メッセージのハッシュ値、ノルム及びベクトル間の距離
改良 NTRUSign署名方式においても、メッセージ mのハッシュ値に対する署名を 作成する。メッセージ mのハッシュ値は、 N次の多項式の対(ml, m2)であり、 2·Ν 次元のベクトルと同一視される。メッセージからハッシュ値を求めるハッシュ関数につ いては、非特許文献 1が詳しい。
[0055] 改良 NTRUSign署名方式においても、従来の NTRUSign署名方式と同様のベタ トルの距離を用いる。以下でその定義を示す。
多項式 a = a_0 + a_l'X + a_2'X'2H—— ha_(N— 1) ·Χ'(Ν— 1)のノルム | I a I Iを以下のように定義する。
I I a I I =sqrt((a_0-1 )"2+(a_l- x)"2H—— h (a_(N_ 1) _ μ ) 2) μ = (1/Ν) · (a_0 + a_l+a_2H—— ha_(N_l))
ここで、 sqrt(x)は xの平方根を示す。
[0056] 多項式 a, bの対(a, b)のノルム | | (a, b) | |を以下のように定義する。 I I (a, b) I I =sqrt( | | a | | "2+ | | b | | "2)
多項式 a, bの対(a, b)と c, dの対(c, d)との距離は、 I I (c— a, d— b) | |で定 義される。
これにより、 (mod X N_1)演算を施すことにより得られた N_l次以下の整数係 数多項式は、加算、減算、乗算、及び元の大きさを示すノルムが定義された N次元配 歹 IJとみなすことができ、多項式環 Rは、 N次元配列の集合とみなすことができる。
[0057] (3)改良 NTRUSign署名方式の鍵生成
改良 NTRUSign署名方式では、上述したように、パラメータ df, dgを用いてランダ ムに多項式 f,多項式 gを生成する。そして、 FqXf=l(mod q)となる多項式 Fqを 用いて、
h = FqXg(mod q
により、多項式 hを生成する。ここで、多項式 Fqは、多項式 fの逆元と呼ばれる。さらに 、以下の式を満たすようなノルムが所定値 Keyboundより小さい多項式 F, Gの対(F , G)を求める。
[0058] f XG-gXF = q (*)
次に、 Kf, g), (F, 0)}を秘密鍵{ g), (F— 1, G_l) }t {(i, g), (F— 1, G— 1) }を用いて式(*)を満たし、かつノルムが所定値 Keyboundより小さい他の対 (F, G)を複数個求め、(F_2, G_2), (F_3, G_3),…とする。ここで、 { (f, g), (F— 1, G— 1)}、 {(f, g), (F— 2, G— 2)}、…のそれぞれを秘密鍵とし、それらの 秘密鍵を含めたものを秘密鍵群と呼ぶ。また、多項式 hを公開鍵とする。ここで、従来 の NTRUSign署名方式では、公開鍵及び秘密鍵は一つであり、 1対 1対応している が、改良 NTRUSign署名方式では公開鍵は一つであるが、その公開鍵に対応する 秘密鍵は複数存在することに注意しておく。なお、 NTRUSign署名方式では、一つ の公開鍵に対し、上記(*)及びノルムが所定値 Keyboundより小さい多項式 F, Gの 対 (F, G)は存在すれば、複数存在する可能性がある。実施の形態 1及び後述する 実施の形態 2では、この性質を利用している。
[0059] なお、所定値 Keyboundは、正しい署名と検証される署名データを生成できうる秘 密鍵となる(F, G)のノノレムであり、(N, q, df, dg, Normbound) = (251, 128, 73 , 71, 310)の例の場合、例えば Keybound = 45である。これは、非特許文献 5によ ると、秘密鍵を用いて生成した署名が不正と検証されてしまう検証失敗確率を、 10" ( — 12)以下とするための(F, G)のノルムの限界値である。このノルムの限界値はパラ メータ(N, q, df, dg, Normbound)に依存して変わるものであるため、上記例以外 の場合は、 Keyboundを変えてもよレ、。具体的には、例えば、所定値 Keyboundは、 検証失敗確率を 10 (_ 12)以下とするための(F, G)のノルムの限界値としてもょレヽ 。また、この検証失敗確率を 10 (_ 15)など他の値としてもよい。
[0060] (4)改良 NTRUSign署名方式の署名生成
改良 NTRUSign署名方式の署名生成では、署名対象であるメッセージ mの署名 s を計算する。まず、秘密鍵群に含まれる複数の秘密鍵から一つの秘密鍵 { (f, g), (F S, GS)}を選択する。
次に、メッセージ mに対するハッシュ値である 2 ·Ν次元のベクトル(ml, m2) (ml 及び m2は N次多項式)を計算する。
[0061] この 2·Ν次元のベクトル(ml, m2)と秘密鍵 {(f, g), (FS, GS) }を用いて、以下 の式を満たす多項式 a, b, A, Bを計算する。
GSXml-FSXm2=A+qXB
-gXml+f Xm2=a+qXb
ここで、 A, aの係数は〈一 q/2〉 +1から〈q/2〉の範囲に収まるように法 qで割った ときの剰余を取ったものとする。すなわち、法 qで割ったときの剰余が〈q/2〉力 q— 1である場合は、 q減算して、上記範囲に収まるよう調整する。ここで、〈x〉は、 X以下 の数の中で最も大きい数を示す。例えば、〈一 1/2〉 =一 1である。
[0062] 次に以下の式より、 s, tを計算し、 sを署名として出力する。
s = f XB + FSXb (mod q)
t = gXB + GSXb (mod q)
(5)改良 NTRUSign署名方式の署名検証
改良 NTRUSign署名方式の署名生成方法は、従来の NTRUSign署名方式と同 様である。まず、メッセージ mに対するハッシュ値である 2·Ν次元のベクトル(ml, m 2)を計算する。 [0063] 公開鍵 hを用いて、以下の式より、多項式 tを計算する。
t = s X h (mod q)
2 ·Ν次元ベクトル(s, t)と(ml , m2)の距離を求め、 Normbound未満であるかを チェックする。 Normbound未満であれば、署名 sが正しいと判定して署名 sを受理す る。 Normbound以上であれば、署名 sが不正と判定して署名 sを拒否する。
[0064] 1. 2 署名生成装置 10の構成
署名生成装置 10は、図 1に示すように、秘密鍵群格納部 101と、公開鍵証明書格 納部 102と、秘密鍵選択部 103と、署名生成部 104と、署名データセット生成部 105 と、送信部 106とから構成される。
署名生成装置 10は、上述した改良 NTRUSign署名方式により鍵生成装置 30に て、生成された複数の秘密鍵力 なる秘密鍵群と、公開鍵に対応する公開鍵証明書 とを格納しており、秘密鍵群に含まれる 1の秘密鍵を用いて、入力であるメッセージデ ータ mに対する署名データ Sを生成する。
[0065] ( 1 )秘密鍵群格納部 101
秘密鍵群格納部 101は、鍵生成装置 30にて生成された複数の秘密鍵からなる秘 密鍵群を格納するための領域を有してレ、る。
なお、以降の説明において、秘密鍵群格納部 101は、複数の秘密鍵 { (f, g), (F —1 , G_l) }, { (f, g) , (F_2, G_2) }, · · ·, { (f, g) , (F_u, G_u) }からなる秘 密鍵群 GKSを格納しているものとする。ここで、 uは秘密鍵群に含まれる秘密鍵の個 数である。
[0066] (2)公開鍵証明書格納部 102
公開鍵証明書格納部 102は、公開鍵 hの公開鍵証明書 CPを格納するための領域 を有している。
公開鍵証明書 CPは、公開鍵 hと、公開鍵 hの署名データ SPとからなり、鍵生成装 置 30にて生成される。署名データ SPは、鍵生成装置 30にて格納されている証明書 生成鍵 KCSと改良 NTRUSign署名方式とを用いて生成される。また、以降の説明 において、公開鍵証明書 CPは鍵生成装置 30により予め格納されているものとする。 なお、公開鍵証明書 CPには、公開鍵 hと署名データ SPに加えて他のデータを含ん でいてもよい。例えば、ユーザの識別子や証明書の期限などを含んでもよい。
[0067] (3)秘密鍵選択部 103
秘密鍵選択部 103は、署名生成部 104から秘密鍵群から 1の秘密鍵を選択する旨 の選択指示を受け取ると、秘密鍵群 GSKに含まれる複数の秘密鍵から 1の秘密鍵を ランダムに選択する。
秘密鍵選択部 103は、選択した秘密鍵を署名生成部 104へ出力する。
[0068] なお、選択はランダムでなぐ外部からの入力に基づくとしてもよい。
(4)署名生成部 104
署名生成部 104は、署名データセット生成部 105から、メッセージデータ mの署名 データの生成の指示を示す署名生成指示を受け取ると、選択指示を秘密鍵選択部 1 03へ出力する。
[0069] 署名生成部 104は、秘密鍵選択部 103から選択された 1の秘密鍵を受け取ると、受 け取った秘密鍵を用いて、メッセージデータ mに対する署名データ Sを生成、つまりメ ッセージデータ mに署名を施して署名データ Sを生成する。
署名生成部 104は、署名データ Sの生成が完了すると、その旨を示す生成完了通 知を署名データセット生成部 105へ出力する。
[0070] なお、署名データ Sは、改良 NTRUSign署名方式に基づいて生成される。
(5)署名データセット生成部 105
署名データセット生成部 105は、ユーザによる操作によりメッセージデータ mを受け 付けると、公開鍵証明書格納部 102から公開鍵証明書 CPを読み出す。
署名データセット生成部 105は、署名生成指示を署名生成部 104へ出力し、その 後、署名生成部 104から生成完了通知を受け取ると、メッセージデータ mと、署名生 成部 104にて生成されたメッセージデータ mの署名データ Sと、読み出した公開鍵証 明書 CPとからなる署名データセット SSを生成する。
[0071] 署名データセット生成部 105は、送信部 106を介して、生成した署名データセット S Sを署名検証装置 20へ送信する。
(6)送信部 106
送信部 106は、署名データセット SSを、通信路 50を介して署名検証装置 20へ送 信する。
[0072] 1. 3 署名検証装置 20の構成
署名検証装置 20は、図 1に示すように、 CA公開鍵格納部 201と、署名データセット 格納部 202と、署名検証部 203と、受信部 204と、表示部 205とから構成される。
(1) CA公開鍵格納部 201
CA公開鍵格納部 201は、鍵生成装置 30にて格納されている証明書生成鍵 KCS に対応し、公開鍵証明書 CPを検証するための公開鍵 KCPを格納している。
[0073] (2)署名データセット格納部 202
署名データセット格納部 202は、署名データセット SSを格納するための領域を有し ている。
(3)署名検証部 203
署名検証部 203は、署名データセット SSに含まれる署名データ S、及び公開鍵証 明書 CPに含まれる署名データ SPを検証する。なお、署名検証部 203は、改良 NTR USign署名方式を用いて、各署名データの検証を行う。
[0074] 以下に、検証の動作を示す。
署名検証部 203は、受信部 204から検証を開始する旨の検証開始指示を受け取る 署名検証部 203は、署名データ SPが公開鍵 hの正しい署名であるかを、 CA公開 鍵格納部に格納されている CA公開鍵 KPCを用いて検証する。
署名データ SPが正しい署名であると判断する場合には、署名検証部 203は、署名 データ Sがメッセージデータ mの正しい署名であるかを、公開鍵 hを用いて検証する。
[0075] 署名データ Sが正しい署名であると判断する場合には、署名検証部 203は、受信し た署名データセット SSを受理する旨のメッセージ「〇K」を表示部 205へ出力する。 各署名検証のうち何れかの署名検証にぉレ、て、署名データが正しくなレ、署名であ ると判断する場合には、署名検証部 203は、受信した署名データセット SSを拒否す る旨のメッセージ「NG」を表示部 205へ出力する。
[0076] (4)受信部 204
受信部 204は、署名生成装置 10から送信された署名データセット SSを、通信路 50 を介して受信する。
受信部 204は、受信した署名データセット SSを署名データセット格納部 202へ格 納し、その後、検証開始指示を署名検証部 203へ出力する。
[0077] (5)表示部 205
表示部 205は、署名検証部 203から署名検証の検証結果に係るメッセージを受け 取ると、受け取ったメッセージを表示する。
1. 4 鍵生成装置 30の構成
鍵生成装置 30は、図 1に示すように、証明書生成鍵格納部 301と、鍵生成部 302と 、秘密鍵群生成部 303と、証明書生成部 304と、鍵設定部 305とから構成される。
[0078] (1)証明書生成鍵格納部 301
証明書生成鍵格納部 301は、公開鍵 KCPに対応し、公開鍵証明書 CPに含まれる 署名データ SPを生成するための証明書生成鍵 KCSを格納している。
(2)鍵生成部 302
鍵生成部 302は、従来の NTRUSign署名方式の鍵生成方法を用いて、秘密鍵 { ( f, g) , (F, G) }と公開鍵 hを生成する。なお、従来の NTRUSign署名方式による鍵 生成は、公知の技術であるため、ここでの説明は省略する。
[0079] 鍵生成部 302は、秘密鍵群の生成を指示する鍵群生成指示を秘密鍵群生成部 30 3へ出力し、公開鍵証明書 CPの生成を指示する証明書生成指示を証明書生成部 3 04へ出力する。
(3)秘密鍵群生成部 303
秘密鍵群生成部 303は、所定値 Keybound及び秘密鍵の検索回数の上限値を示 す vMAXを予め格納している。ここで、 vMAXは、例えば 1000である。
[0080] 秘密鍵群生成部 303は、所定値 vMAX以下の検索回数にて、ノルム | | (a, b)
I I力 所定値 Keybound以下となる多項式 a, bの対(a, b)を複数個生成すること により、複数の秘密鍵を生成する。
秘密鍵群生成部 303は、鍵生成部 302から鍵群生成指示を受け取ると、鍵生成部 302にて生成された秘密鍵 { (f, g) , (F, G) }と、改良 NTRUSign署名方式の鍵生 成方法とを用いて、 Kf, g) , (F_l, G_l) }, { (f, g), (F_2, G_2) }, ·■·, { (f , g) , (F— u, G— u) }からなる秘密鍵群 GKSを生成する。ここで、 uは秘密鍵群に含 まれる秘密鍵の個数である。
[0081] 秘密鍵群生成部 303は、秘密鍵群 GSKの生成が完了すると、生成した秘密鍵群 GSKを署名生成装置 10へ格納する旨の第 1格納指示を鍵設定部 305へ出力する。
(4)証明書生成部 304
証明書生成部 304は、鍵生成部 302から証明書生成指示を受け取ると、証明書生 成鍵格納部 301に格納されている証明書生成鍵 KCSを読み出す。
[0082] 証明書生成部 304は、読み出した証明書生成鍵 KCSを用いて、鍵生成部 302に て生成された公開鍵 hに対する公開鍵証明書 CPを生成する。ここで、公開鍵証明書 CPは公開鍵 hと、公開鍵 hの証明書生成鍵 KCSを用いた署名データ SPとからなる。 証明書生成部 304は、公開鍵証明書 CPの生成が完了すると、生成した公開鍵証 明書 CPを署名生成装置 10へ格納する旨の第 2格納指示を鍵設定部 305へ出力す る。
[0083] (5)鍵設定部 305
鍵設定部 305は、秘密鍵群生成部 303から第 1格納指示を受け取ると、秘密鍵群 生成部 303にて生成された秘密鍵群 GSKを、署名生成装置 10の秘密鍵群格納部 101へ書き込む。
鍵設定部 305は、証明書生成部 304から第 2格納指示を受け取ると、証明書生成 部 304にて生成された公開鍵証明書 CPを、署名生成装置 10の公開鍵証明書格納 部 102へ書き込む。
[0084] 1. 5 署名生成装置 10の動作
署名生成装置 10は、メッセージデータ mに対する署名データセット SSを生成し、通 信路 50を介して署名検証装置 20へ送信する。以下に、署名生成装置 10にて行わ れる署名生成処理の動作について、図 2にて示す流れ図を用いて説明する。
署名データセット生成部 105は、ユーザによる操作によりメッセージデータ mを受け 付ける (ステップ S5)。
[0085] 署名データセット生成部 105は、公開鍵証明書格納部 102から公開鍵証明書 CP を読み出し、署名生成指示を署名生成部 104へ出力する。署名生成部 104は、署 名データセット生成部 105から、署名生成指示を受け取ると、選択指示を秘密鍵選 択部 103へ出力する。秘密鍵選択部 103は、署名生成部 104から選択指示を受け 取ると、秘密鍵群 GSKに含まれる複数の秘密鍵から 1の秘密鍵をランダムに選択す る(ステップ S 10)。
[0086] 秘密鍵選択部 103は、選択した秘密鍵を署名生成部 104へ出力する。署名生成 部 104は、秘密鍵選択部 103から選択された 1の秘密鍵を受け取ると、受け取った秘 密鍵を用いて、メッセージデータ mに対する署名データ Sを生成する(ステップ S 15) 。なお、署名データ Sは、改良 NTRUSign署名方式に基づいて生成される。
署名生成部 104は、署名データ Sの生成が完了すると、その旨を示す生成完了通 知を署名データセット生成部 105へ出力する。署名データセット生成部 105は、署名 生成部 104から生成完了通知を受け取ると、メッセージデータ mと、署名生成部 104 にて生成されたメッセージデータ mの署名データ Sと、読み出した公開鍵証明書 CP とからなる署名データセット SSを生成する(ステップ S20)。
[0087] 送信部 106は、署名データセット生成部 105にて生成された署名データセット SSを 、通信路 50を介して署名検証装置 20へ送信する(ステップ S25)。
1. 6 署名検証装置 20の動作
署名検証装置 20は、署名生成装置 10より署名データセット SSを通信路 50を介し て受信し、その署名データセット SSを検証する。以下において、署名検証装置 20に て行われる署名検証処理について、図 3にて示す流れ図を用いて説明する。
[0088] 受信部 204は、署名生成装置 10から送信された署名データセット SSを、通信路 50 を介して受信する (ステップ S 100)。
受信部 204は、受信した署名データセット SSを署名データセット格納部 202に格納 する(ステップ S 105)。
受信部 204は、検証開始指示を署名検証部 203へ出力する。署名検証部 203は、 受信部 204から検証を開始する旨の検証開始指示を受け取る。署名検証部 203は、 署名データ SPが公開鍵 hの正しレ、署名であるかを、 CA公開鍵格納部に格納されて レ、る CA公開鍵 KPCを用いて検証する(ステップ S 110)。
[0089] 署名データ SPが正しい署名であると判断する場合には (ステップ S110における「0 K」)、署名検証部 203は、署名データ Sがメッセージデータ mの正しい署名であるか を、公開鍵 hを用いて検証する(ステップ S 115)。
署名データ Sが正しい署名であると判断する場合には (ステップ S115における「0 K」)、署名検証部 203は、表示部 205を介して、メッセージ「ΟΚ」を表示する(ステツ プ S120)。
[0090] 署名データ SPが正しい署名でないと判断する場合 (ステップ S110における「NG」 )、及び署名データ Sが正しい署名でないと判断する場合には (ステップ SI 15におけ る「NG」 )、署名検証部 203は、表示部 205を介して、メッセージ「NG」を表示する( ステップ S 125)。
なお、署名検証部 203は、改良 NTRUSign署名方式を用いて、各署名データの 検証を行う。
[0091] 1. 7 鍵生成装置 30の動作
鍵生成装置 30は、秘密鍵群 GKSと証明書 CPとを生成し、生成した秘密鍵群 GKS と証明書 CPとを署名生成装置 10に設定する。以下において、鍵生成装置 30にて行 われる鍵生成処理の動作について、図 4にて示す流れ図を用いて説明する。
鍵生成部 302は、従来の NTRUSign署名方式の鍵生成方法を用いて、秘密鍵 { ( f, g) , (F, G) }と公開鍵 hを生成する(ステップ S200)。
[0092] 鍵生成部 302は、秘密鍵群の生成を指示する鍵群生成指示を秘密鍵群生成部 30 3へ出力し、公開鍵証明書 CPの生成を指示する証明書生成指示を証明書生成部 3 04へ出力する。秘密鍵群生成部 303は、鍵生成部 302から鍵群生成指示を受け取 ると、秘密鍵群生成処理により、 { (f, g) , (F_l, G_l) }, { (f, g), (F_2, G_2) } ,■· - , { (f, g), (F_u, G_u) }からなる秘密鍵群 GKSを生成する(ステップ S205) 。ここで、 uは秘密鍵群に含まれる秘密鍵の個数である。
[0093] 証明書生成部 304は、鍵生成部 302から証明書生成指示を受け取ると、証明書生 成鍵格納部 301に格納されている証明書生成鍵 KCSを読み出す。証明書生成部 3 04は、読み出した証明書生成鍵 KCSを用いて、鍵生成部 302にて生成された公開 鍵 hに対する公開鍵証明書 CPを生成する (ステップ S210)。
秘密鍵群生成部 303は、秘密鍵群 GSKの生成が完了すると、生成した秘密鍵群 GSKを署名生成装置 10へ格納する旨の第 1格納指示を鍵設定部 305へ出力する。 証明書生成部 304は、公開鍵証明書 CPの生成が完了すると、生成した公開鍵証明 書 CPを署名生成装置 10へ格納する旨の第 2格納指示を鍵設定部 305へ出力する 。鍵設定部 305は、秘密鍵群生成部 303から第 1格納指示を受け取ると、秘密鍵群 生成部 303にて生成された秘密鍵群 GSKを、署名生成装置 10の秘密鍵群格納部 101へ書き込み、証明書生成部 304から第 2格納指示を受け取ると、証明書生成部 304にて生成された公開鍵証明書 CPを、署名生成装置 10の公開鍵証明書格納部 102へ書き込む(ステップ S215)。
[0094] 1.8 秘密鍵群の生成方法
ここでは、秘密鍵群生成部 303にて行われる改良 NTRUSign署名方式を用いた 秘密鍵群 GSKの生成方法、つまり図 4にて示す秘密鍵群生成処理の動作について 、図 5にて示す流れ図を用いて説明する。
秘密鍵群生成部 303は、鍵生成部 302にて生成された秘密鍵 {(f, g), (F, G)}を 秘密鍵 {(f, g), (F_l, G_l) }として秘密鍵群 GKSに加える(ステップ S300)。
[0095] 秘密鍵群生成部 303は、 u 2, v— 0, F'^F, G,—Gとする(ステップ S305)。
次に、秘密鍵群生成部 303は、 F'—F'+X'vXf, G'—G'+X'vXgとする(ステ ップ S310)。
秘密鍵群生成部 303は、 I I (F', G') I I >Keyboundであるか否かを判定す る(ステップ S315)。
[0096] I I (F', G') I I >Keyboundでないと判定する場合には(ステップ S315にお ける「NO」)、秘密鍵群生成部 303は、 (F,, 0')を秘密鍵{ g), (F— u, G_u) } として秘密鍵群 GKSに加え(ステップ S320)、 u—u+lとする(ステップ S325)。秘 密鍵群生成部 303は、 V— v+1とし(ステップ S330)、 v>vMAXである力、否力を半 IJ 定する(ステップ S335)。
[0097] v>vMAXであると判断する場合には(ステップ S335における「YES」 )、処理を終 了する。 v>vMAXでないと判断する場合には(ステップ S335における「NO」)、ステ ップ S310へ戻る。
I I (F', G') I I >Keyboundであると判定する場合には(ステップ S315にお ける「YES」)、秘密鍵群生成部 303は、ステップ S325以降を行う。
[0098] なお、上記の方法により生成した秘密鍵 { (f, g) , (F— 1, G— 1) }, { (f, g), (F 2, G 2)},…ίま、それぞれfXG l—gXF l = q, f X G 2— g X F 2 = q, …を満たすことに注意する。 {(f, g), (F_l, G_l)}は、従来の NTRUSign署名 方式の鍵生成方法を用いて生成するため、 f XG_l_gXF_l = qが成り立つ。次 に、ある正整数 iに対して {(f, g), (F_i, G_i)}に対してfXG_i— gXF_i = qが 成り立つとき、 {(f, g), (F_(i+1), G_(i+1))}に対して fXG_(i+l)_gXF _(i+l) =qが成り立つことを示す。上記のフローチャートのステップ S310より、
F_(i+l)=F_i+wXf, G_(i+1) =G_i+wXg
を満たす多項式 wが存在する。ゆえに、
fXG_(i+l)-gXF_(i+l)=fX (G_i+wXg)-gX (F_i+wXf)
=f XG_i+wXf Xg-gXF_i+wXf Xg
=f XG_i-gXF_i = q
が成り立つ。したがって、上記の方法により生成した秘密鍵 {(f, g), (F— 1, G— 1) }, {(f, g), (F— 2, G— 2)},…は、それぞれ f XG— 1— gXF— l = q, fXG— 2 -gXF_2 = q,…を満たす。
[0099] 秘密鍵群の生成方法は上記に限らず、 fXG'— gXF'=qを満たし、かつ I | (F' , G,) I Iが Keybound以下であるような秘密鍵 { (f, g) , (F,, G')}からなる秘密 鍵群を生成する方法であればょレ、。
1.9 第 1の実施の形態の全体の動作
第 1の実施の形態におけるディジタル署名システム 1の全体の動作を以下に示す。
[0100] ディジタル署名システム 1の鍵生成装置 30では、署名生成装置 10の公開鍵及び 秘密鍵群を生成し、署名生成装置 10に設定する。署名生成装置 10は、メッセージ データ mに対する署名データセット SSを生成し、通信路 50を介して署名検証装置 2 0へ、生成した署名データセット SSを送信する。署名検証装置 20は、通信路 50を介 して署名生成装置 10から、署名データセット SSを受信し検証する。
[0101] 1. 10 第 1の実施の形態の効果
第 1の実施の形態におけるディジタル署名システム 1では、署名検証するための公 開鍵は一つであるが、それに対応する秘密鍵が複数存在している。署名生成装置 1 0では、秘密鍵群に含まれる複数の秘密鍵から一つの秘密鍵を選択し、署名データ を生成している。秘密鍵群に含まれる秘密鍵の個数を 2とし、それぞれの秘密鍵を { ( f, g), (F_l , G_l) }, { (f, g), (F_2, G_2) }とする場合を考える。このとき、 Tr anscript attackを実行する攻撃者は、通信路 50に流れる署名データセットを入手 して、 Transcript attackを試みる。攻撃者には、入手した署名データセットがどち らの秘密鍵により生成されたかがわからないため、入手した署名データセットを使用 された秘密鍵により分類して、それぞれを用いて攻撃することはできなレ、。そこで、入 手したすべての署名データセットから署名とハッシュ値の差分を取り、その平均を求 めることで攻撃をすると、 2種類の秘密鍵を用いているため、署名データセットに 2種 類の秘密鍵の情報が入ってしまう。その結果、 Transcript attackを実行しても、 2 次モーメント及び 4次モーメントの平均から 2種類の秘密鍵の情報が混ざった状態で 入手できるが、これを一つ一つの秘密鍵の情報に分離することができなレ、。したがつ て、ディジタル署名システム 1は、 Transcript attackを防ぐことができ、安全である 。なお、上記では秘密鍵群に含まれる秘密鍵の個数を 2としたが、これを 3や 3より大 きい整数とすると、さらに 2次モーメント及び 4次モーメントの平均から秘密鍵の情報を 分離することが困難になるため、さらに高い安全性をもつ。
[0102] 2. 第 2の実施の形態
以下、本発明に係る第 2の実施の形態としてのディジタル署名システム 1000につ いて、図面を参照して説明する。
2. 1 ディジタル署名システム 1000の概要
ディジタル署名システム 1000は、署名生成装置 1010と、署名検証装置 1020と、 通信路 1050とから構成される。
[0103] 署名生成装置 1010は、 NTRUSign署名方式を用いて、メッセージデータ mに対 する署名データセット SSを生成し、通信路 1050を介して署名検証装置 1020に署名 データセット SSを送信する。なお、署名データセット SSの構成については、後述する 署名検証装置 1020は、署名生成装置 1010から、署名データセット SSを受信し、 受信した署名データセット SSがメッセージデータ mの正しい署名であるかを検証する
。署名検証装置 1020は、署名データセット SSが正しいと判定する場合には、署名デ ータセット SSを受理し、署名データセット SSが不正と判定する場合には、署名データ セット SSを拒否する。
[0104] 2. 2 署名生成装置 1010の構成
署名生成装置 1010は、図 6に示すように、秘密鍵格納部 1101と、公開鍵証明書 格納部 1102と、秘密鍵更新部 1103と、署名生成部 1104と、署名データセット生成 部 1105と、送信部 1106と、表示部 1107とから構成される。
署名生成装置 1010は、入力であるメッセージデータ mに対する署名データセット S
Sを生成し、生成した署名データセット SSを署名検証装置 1020へ送信する。
[0105] 署名生成装置 1010を構成する署名データセット生成部 1105及び送信部 1106は
、それぞれ、第 1の実施の形態にて示す署名データセット生成部 105及び送信部 10
6と同様の動作を行うため、ここでの説明は省略する。
(1)秘密鍵格納部 1101
秘密鍵格納部 1101は、秘密鍵 { (f, g) , (F, G) }を格納するための領域を有して いる。
[0106] なお、ここでは、秘密鍵格納部 1101は、秘密鍵 { (f, g) , (F, G) }を予め格納して レ、るものとする。
(2)公開鍵証明書格納部 1102
公開鍵証明書格納部 1102は、秘密鍵 { (f, g) , (F, G) }に対応する公開鍵 hの公 開鍵証明書 CPを格納するための領域を有している。
[0107] 公開鍵証明書 CPは、公開鍵 hと、公開鍵 hの署名データ SPとからなる。署名デー タ SPは、改良 NTRUSign署名方式に基づいて生成される。また、ここでは、公開鍵 証明書格納部 1102は、公開鍵証明書 CPは予め格納しているものとする。なお、公 開鍵証明書 CPには、公開鍵 hと署名データ SPに加えて他のデータを含んでいても よい。例えば、ユーザの識別子や証明書の期限などを含んでもよい。
[0108] (3)秘密鍵更新部 1103
秘密鍵更新部 1103は、所定値 Keybound及び秘密鍵の検索回数の上限値を示 す vMAXを予め格納している。ここで、 vMAXは、例えば 1000である。 秘密鍵更新部 1103は、定期的、例えば、 1ヶ月ごとに、以下の動作により秘密鍵格 納部 1101に格納されている秘密鍵を更新する。なお、秘密鍵の更新のタイミングは
、月単位でもよいし、 日単位でもよいし、時間単位でもよい。
[0109] 秘密鍵更新部 1103は、改良 NTRUSign署名方式を用いて、所定値 vMAX以下 の検索回数にて、ノルム I | (F', G' ) | I力 S、所定値 Keybound以下となる対 (F'
, G' )を生成することにより、公開鍵 hに対応し、且つ秘密鍵格納部 1101に格納され ている秘密鍵 { (f, g), (F, 0) }とは異なる秘密鍵{ g) , (F,, G' ) }を生成する。
[0110] 秘密鍵更新部 1103は、秘密鍵格納部 1101に格納されている秘密鍵に新たに生 成した { (f, g), (F,, G' ) }を上書きして更新する。
秘密鍵更新部 1103は、所定値 vMAX以下にて、対 (F', G' )を生成することがで きなレ、場合には、秘密鍵を更新することができなレ、旨を示す更新不可メッセージを、 表示部 1107を介して表示する。
[0111] なお、秘密鍵の更新方法の詳細については、後述する。
(4)署名生成部 1104
署名生成部 1104は、署名データセット生成部 1105から、メッセージデータ mの署 名データの生成の指示を示す署名生成指示を受け取ると、秘密鍵格納部 1101から 秘密鍵を読み出す。
[0112] 署名生成部 1104は、読み出した秘密鍵を用いて、メッセージデータ mに対する署 名データ Sを生成、メッセージデータ mに署名を施して署名データ Sを生成する。 署名生成部 1104は、署名データ Sの生成が完了すると、その旨を示す生成完了 通知を署名データセット生成部 1105へ出力する。
なお、署名データ Sは、改良 NTRUSign署名方式に基づいて生成される。
[0113] (5)表示部 1107
表示部 1107は、秘密鍵更新部 1103から受け取つたメッセージを表示する。
2. 3 署名検証装置 1020
署名検証装置 1020は、図 6に示すように、 CA公開鍵格納部 1201と、署名データ セット格納部 1202と、署名検証部 1203と、受信部 1204と、表示部 1205とから構成 される。
[0114] 署名検証装置 1020を構成する CA公開鍵格納部 1201、署名データセット格納部 1202、署名検証部 1203、受信部 1204、及び表示部 1205は、それぞれ、第 1の実 施の形態にて示す CA公開鍵格納部 201、署名データセット格納部 202、署名検証 部 203、受信部 204、及び表示部 205と同様の動作を行うため、ここでの説明は省略 する。
[0115] 2.4 秘密鍵の更新方法
ここでは、秘密鍵更新部 1103にて行われる秘密鍵の更新方法 (秘密鍵更新処理) について、図 7に示す流れ図を用いて説明する。
秘密鍵更新部 1103は、 {(f, g), (F, 0)}を秘密鍵{ g), (F_l, G_l)}とし て秘密鍵格納部 1101から読み出す (ステップ S400)。
[0116] 秘密鍵更新部 1103は、変数 V, F', G'に対して、 v— 0, F'— F, G'— Gを設定す る(ステップ S405)。
秘密鍵更新部 1103は、変数 F', G'に対して、 F' F'+X'vXf, G, G,+X'v X gを設定する(ステップ S410)。
秘密鍵更新部 1103は、ノルム I | (F', G') | Iが所定値 Keyboundを超えてい るか否かを判定する(ステップ S415)。
[0117] ノルム I | (F', G') | Iが所定値 Keyboundを超えていると判定する場合には( ステップ S415における「YES」)、秘密鍵更新部 1103は、変数 vに対して、 v—v+l とし (ステップ S420)、変数 Vが所定値 vMAXを超えてレヽるか否かを判定する(ステツ プ S425)。
変数 Vが所定値 vMAXを超えていると判定する場合には (ステップ S425における「 YES」)、秘密鍵更新部 1103は、更新不可メッセージを表示部 1107を介して表示 する(ステップ S430)。変数 Vが所定値 vMAXを超えていないと判定する場合には( ステップ S425における「NO」)、秘密鍵更新部 1103は、ステップ S410へ戻る。
[0118] ノルム I | (F', G') | Iが所定値 Keyboundを超えていないと判定する場合に は (ステップ S415における「N〇」)、秘密鍵更新部 1103は、秘密鍵格納部 1101に 格納されている秘密鍵に生成した秘密鍵 { (f, g), (F', G')}を上書きして更新する ことにより、新たな秘密鍵 { (f, g), (F, G) }とする(ステップ S435)。
[0119] なお、上記の方法により生成した秘密鍵 { (f, g) , (F', G' ) }は、それぞれ f x G'— g X F' =qを満たすことに注意する。なお、秘密鍵の更新方法は上記に限らず、 f X G'— g X F' =qを満たし、かつ I | (F',G' ) | |が Keybound以下の秘密鍵 { (f, g) , (F,, G' ) }に更新する方法であればよい。
2. 5 署名生成装置 1010の動作
署名生成装置 1010の動作は、メッセージデータ mに対する署名データセット SSを 生成し、通信路 1050を介して署名検証装置 1020へ送信する「署名生成処理」と、 秘密鍵を更新する「秘密鍵更新処理」の動作からなる。以下に、各処理の動作につ いて、説明する。
[0120] (1)署名生成処理
ここでは、署名生成処理の動作について、図 8に示す流れ図を用いて説明する。 署名データセット生成部 1105は、ユーザによる操作によりメッセージデータ mを受 け付ける(ステップ S500)。
署名データセット生成部 1105は、公開鍵証明書格納部 1102から公開鍵証明書 C Pを読み出し、署名生成指示を署名生成部 1104へ出力する。署名生成部 1104は、 署名データセット生成部 105から、署名生成指示を受け取ると、秘密鍵格納部 1101 から秘密鍵を読み出す。署名生成部 1104は、読み出した秘密鍵を用いて、メッセ一 ジデータ mに対する署名データ Sを生成する(ステップ S505)。
[0121] 署名生成部 1104は、署名データ Sの生成が完了すると、その旨を示す生成完了 通知を署名データセット生成部 1105へ出力する。署名データセット生成部 1105は 、署名生成部 1104から生成完了通知を受け取ると、メッセージデータ mと、署名生 成部 1104にて生成されたメッセージデータ mの署名データ Sと、読み出した公開鍵 証明書 CPとからなる署名データセット SSを生成する(ステップ S510)。
[0122] 送信部 1106は、署名データセット生成部 1105にて生成された署名データセット S Sを、通信路 1050を介して署名検証装置 1020へ送信する(ステップ S515)。
(2)秘密鍵更新処理
秘密鍵更新部 1103は、秘密鍵格納部 1101に格納されている秘密鍵 { (f, g) , (F , G) }を用いて、新たな秘密鍵 { (f, g), (F,, G' ) }を生成し、秘密鍵格納部 1101に 格納されている秘密鍵に新たな秘密鍵を上書きして更新する。
[0123] なお、詳細な動作は、図 7にて示しているため、ここでの説明は省略する。
2. 6 署名検証装置 1020の動作
署名検証装置 1020は、署名生成装置 1010より署名データセット SSを通信路 105 0を介して受信し、その署名データセット SSを検証する。なお、署名検証装置 1020 にて行われる署名検証処理は、第 1の実施の形態における図 3にて示す流れ図と同 様の動作であるため、ここでの説明は省略する。
[0124] 2. 7 実施の形態 2の全体の動作
第 2の実施の形態におけるディジタル署名システム 1000の全体の動作を以下に示 す。
ディジタル署名システム 1000の署名生成装置 1010は、「署名生成処理」にて、入 力であるメッセージデータ mに対して、署名データセット SSを生成し、署名検証装置 1020へ送信する。署名検証装置 1020は、署名生成装置 1010から、署名データセ ット SSを受信し、受信した署名データセットを検証し、その検証結果により、署名デー タセット SSを受理する、または、拒否するかを決定する。また、「鍵更新処理」にて、 署名生成装置 1010は、秘密鍵を更新する。
[0125] 2. 8 第 2の実施の形態の効果
第 2の実施の形態におけるディジタル署名システム 1000では、署名検証するため の公開鍵は一つであるが、それに対応する秘密鍵が更新されていく。この更新タイミ ングは、通信路 1050力ら署名データセットを入手して、 Transcript attackを実行 する攻撃者にはわからない。ここで、一回のみ秘密鍵が更新された場合について考 える。攻撃者には入手した署名データセットを生成するために使用した秘密鍵の更 新タイミングがわからないため、入手した署名データセットを使用された秘密鍵により 厳密に分類して、それぞれを用いて攻撃することはできない。そこで、入手したすべ ての署名データセットから署名とハッシュ値の差分を取り、その平均を求めることで攻 撃をすると、ある時期を境にして、 2種類の秘密鍵を用いているため、入手した署名 データセットを秘密鍵により正しく分類できない限り、署名データセットに 2種類の秘 密鍵の情報が入ってしまう。その結果、 Transcript attackを実行しても、 2次モーメ ント及び 4次モーメントの平均から 2種類の秘密鍵の情報が混ざった状態で入手でき る力 これを一つ一つの秘密鍵の情報に分離することができない。したがって、デイジ タル署名システム 1000では第 1の実施の形態におけるディジタル署名システム 1と 同様に、 Transcript attackを防ぐことができ、安全である。
[0126] 3.変形例
上記に説明した第 1及び第 2の実施の形態は、本発明の実施の一例であり、本発 明はこれら実施の形態に何ら限定されるものではなぐその旨を逸脱しない範囲にお レ、て種々なる態様で実施し得るものである。例えば、以下のような場合も本発明に含 まれる。
(1)第 1の実施の形態では、対 (f, g)の各値はそれぞれ固定し、対 (G, F)の各値 を変更したが、これに限定されない。対 (f, g)の値も可変として複数の秘密鍵を設定 してもよレ、。この場合、 NTRUSign署名方式の鍵の条件である f X G— g X F = qは 満たすものとする。または、対 (f, g)の各値を可変とし、対 (F, G)の各値は固定とし てもよい。
[0127] また、第 2の実施の形態も同様に、対 (f, g)の各値も可変として秘密鍵の更新を行 つてもよレ、。または、対 (f, g)の各値を可変とし、対(F, G)の各値は固定としてもよい
(2)第 1の実施の形態の秘密鍵群生成部及び第 2の実施の形態における秘密鍵更 新部における、秘密鍵の探索回数を示す vMAXの値は 1000に限らない。他の値、 例えば、 10000でもよレヽ。
[0128] (3)第 1の実施の形態において、ランダムに秘密鍵を選択するではなぐ定められ たルールにしたがって選択してもよい。
例えば、署名生成装置は、署名データセットを生成した回数をカウントして、第 1の 所定回数 (例えば、 1(Τ 7回など)に達するまで、同じ秘密鍵を使用し、その後、先と は異なる秘密鍵を第 2の所定回数 (例えば、 10 8回など)に達するまで使用するとし てもよレ、。このとき、署名生成装置は、ポインタにより現在使用している秘密鍵を特定 することにより、第 1の所定回数に達するまで、同じ秘密鍵を使用することができる。こ のような場合においても、使用する秘密鍵の切り替えのタイミングを攻撃者がわから ないため、 Transcript attackに対して安全である。なお、カウントの対象は、署名 データを生成した回数でもよレ、。
[0129] または、署名生成装置は、複数の秘密鍵が格納されてレ、る順に選択してもよレ、。こ のとき、署名生成装置は、ポインタを用いて現在使用している秘密鍵を特定し、次に 使用する秘密鍵へとポインタの位置を変更することにより、複数の秘密鍵が格納され ている順に選択することができる。これにより、署名生成装置は、署名生成時には、 前回署名に使用した秘密鍵とは別の秘密鍵を取得し、取得した別の秘密鍵を用いて 、署名データを生成することができる。
[0130] (4)第 2の実施の形態において、秘密鍵を更新するタイミングを署名データセットを 生成した回数に依存させてもよい。例えば、秘密鍵を用いて、署名データセットを所 定回数 (例えば、 1(Τ 7回など)生成したときに秘密鍵を更新するとしてもよい。このよ うな場合においても、使用する秘密鍵の切り替えのタイミングを攻撃者がわからない ため、 Transcript attackに対して安全である。
[0131] (5)第 1及び第 2実施の形態では、署名方式として NTRUSign署名方式またはそ の方式をベースとした改良方式を用いている力 これに限らない。一つの公開鍵に対 して、複数の秘密鍵が対応することが可能である署名方式であればよい。
例えば、 NTRUSign署名方式とは異なり、且つ格子を用いた署名方式である。 (6)第 1の実施の形態において、鍵生成装置と署名生成装置とは、個別の装置とし たが、これに限定されない。ディジタル署名システム 1は、鍵生成装置と署名生成装 置からなる装置、及び署名検証装置力 構成されるとしてもよい。
[0132] (7)第 1の実施の形態において、署名生成装置は、ユーザの操作によりメッセージ データを受け付けるとしたが、これに限定されない。
署名生成装置は、メッセージデータを外部の装置から受け取ってもよい。 また、第 2の実施の形態においても同様に、署名生成装置は、メッセージデータを 外部の装置から受け取ってもよい。
[0133] (8)これらの実施の形態及び変形例の組合せであってもよい。
<その他の変形例 > なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の 実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれ る。
(1)上記の各装置は、具体的には、マイクロプロセッサ、 ROM、 RAM,ハードディ スクユニット、ディスプレイユニット、キーボード、マウスなど力も構成されるコンピュータ システムである。前記 RAM又は前記ハードディスクユニットには、コンピュータプログ ラムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムに従つ て動作することにより、各装置は、その機能を達成する。ここで、コンピュータプロダラ ムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが 複数個組み合わされて構成されたものである。
[0134] (2)上記の各装置を構成する構成要素の一部又は全部は、 1個のシステム LSI (La rge Scale Integration :大規模集積回路)から構成されているとしてもよレ、。システムし SIは、複数の構成部を 1個のチップ上に集積して製造された超多機能 LSIであり、具 体的には、マイクロプロセッサ、 R〇M、 RAMなどを含んで構成されるコンピュータシ ステムである。前記 RAMには、コンピュータプログラムが記憶されている。前記マイク 口プロセッサ力 前記コンピュータプログラムに従って動作することにより、システム LS Iは、その機能を達成する。
[0135] (3)上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能な I Cカード又は単体のモジュールから構成されているとしてもよい。前記 ICカード又は 前記モジュールは、マイクロプロセッサ、 ROM、 RAM,など力ら構成されるコンビュ ータシステムである。前記 ICカード又は前記モジュールは、上記の超多機能 LSIを 含むとしてもよレ、。マイクロプロセッサ力 コンピュータプログラムに従って動作するこ とにより、前記 ICカード又は前記モジュールは、その機能を達成する。この ICカード 又はこのモジュールは、耐タンパ性を有するとしてもよレ、。
[0136] (4)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンビュ ータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプ ログラムからなるディジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記ディジタル信号をコンビユー タ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、 CD— R OM、 M〇、 DVD, DVD-ROM, DVD -RAM, BD (Blu— ray Disc)、半導体 メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前 記コンピュータプログラム又は前記ディジタル信号であるとしてもよい。
[0137] また、本発明は、前記コンピュータプログラム又は前記ディジタル信号を、電気通信 回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送 等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって 、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサ は、前記コンピュータプログラムに従って動作するとしてもよい。
[0138] また、前記プログラム又は前記ディジタル信号を前記記録媒体に記録して移送する ことにより、又は前記プログラム又は前記ディジタル信号を前記ネットワーク等を経由 して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよ レ、。
(5)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
4.まとめ
本発明は、一つの公開鍵に対して、複数の秘密鍵が対応することが可能である署 名方式を用いて、メッセージデータに対する署名データを生成する署名生成装置で あって、複数の前記秘密鍵からなる秘密鍵群を格納する秘密鍵群格納部と、前記公 開鍵または、前記公開鍵の証明書のいずれかを格納する公開鍵証明書格納部と、 前記秘密鍵群に含まれる複数の前記秘密鍵から一つの前記秘密鍵を選択する秘密 鍵選択部と、選択した前記秘密鍵を用いて、前記メッセージデータに対する前記署 名データを生成する署名生成部とを備えることを特徴とする。
[0139] ここで、前記署名方式は、加算、減算、乗算と元の大きさを示すノルムが定義された N次元配列の集合である環 Rと、前記環 Rのイデアル qに対し、前記環 Rの元 f, gおよ び、 f (mod q)の逆数である元 Fqを生成し、前記元 gおよび前記元 Fqの積と mod q で合同である元 hを前記公開鍵として生成し、 f X G_g X F = qを満たし、かつ、ノノレ ムが予め与えられた所定値より小さい前記環 Rの元の対である複数の解 (F, G) = ( F— 1 , G_l) , (F_2, G_2) , · · ·, (F_u, G_u) (uは 1より大きい正整数)を生 成し、複数の前記元の 4つ組 (f, g, F— 1 , G— 1) , (f, g, F— 2, G— 2) , · · ·, (f, g , F— u, G—u)を前記秘密鍵として生成する鍵生成ステップと、前記秘密鍵を用い て前記メッセージデータに対する前記署名データを生成する署名生成ステップと、前 記公開鍵を用いて前記署名データを検証する署名検証ステップとを、含むとしてもよ レ、。
[0140] ここで、前記秘密鍵選択部は、前記秘密鍵群に含まれる複数の前記秘密鍵からラ ンダムに一つの前記秘密鍵を選択するとしてもよい。
また、本発明は、一つの公開鍵に対して、複数の秘密鍵が対応することが可能であ る署名方式を用いて、前記公開鍵と前記秘密鍵を生成する鍵生成装置であって、前 記署名方式は、加算、減算、乗算と元の大きさを示すノルムが定義された N次元配 列の集合である環 と、前記環 Rのイデアル qに対し、前記環 Rの元 f, gおよび、 f (m od q)の逆数である元 Fqを生成し、前記元 gおよび前記元 Fqの積と mod qで合同 である元 hを前記公開鍵として生成し、 f X G— g X F = qを満たし、かつ、ノルムが予 め与えられた所定値より小さい前記環 Rの元の対である複数の解 (F, G) = (F— 1 , G_l) , (F_2, G_2) , · · · , (F_u, G_u) (uは 1より大きい正整数)を生成し、 複数の前記元の 4つ組 (f, g, F_l , G_l) , (f, g, F_2, G_2) , · · ·, (f, g, F_u , G—u)を前記秘密鍵として生成する鍵生成ステップと、前記秘密鍵を用いて前記メ ッセージデータに対する前記署名データを生成する署名生成ステップと、前記公開 鍵を用いて前記署名データを検証する署名検証ステップとを含み、前記鍵生成ステ ップを用いて、前記公開鍵と複数の前記秘密鍵を生成することを特徴とする。
[0141] また、本発明は、一つの公開鍵に対して、複数の秘密鍵が対応することが可能であ る署名方式を用レ、て、メッセージデータに対する署名データを生成する署名生成装 置であって、前記秘密鍵を格納する秘密鍵格納部と、前記公開鍵または、前記公開 鍵の証明書のいずれ力を格納する公開鍵証明書格納部と、前記秘密鍵を用いて、 前記メッセージデータに対する前記署名データを生成する署名生成部と、前記公開 鍵と対応するように前記秘密鍵を更新する秘密鍵更新部とを備えることを特徴とする [0142] ここで、前記署名方式は、加算、減算、乗算と元の大きさを示すノルムが定義された N次元配列の集合である環 Rと、前記環 Rのイデアル qに対し、前記環 Rの元 f, gおよ び、 f (mod q)の逆数である元 Fqを生成し、前記元 gおよび前記元 Fqの積と mod q で合同である元 hを公開鍵として生成し、 f X G_g X F = qを満たし、かつ、ノルムが 予め与えられた所定値より小さい前記環 Rの元の対 (F, G)を生成し、前記元の 4つ 組 (f, g, F, G)を前記秘密鍵として生成し、前記秘密鍵を秘密鍵とする鍵生成ステツ プと、前記秘密鍵を用いて前記メッセージデータに対する前記署名データを生成す る署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ス テツプとを、含むとしてもよい。
[0143] また、本発明は、一つの公開鍵に対して、複数の秘密鍵が対応することが可能であ る署名方式を用レ、て、メッセージデータに対する署名データを生成する署名生成装 置と前記署名データを検証する署名検証装置とからなるディジタル署名システムであ つて、前記署名生成装置は、複数の前記秘密鍵からなる秘密鍵群を格納する秘密 鍵群格納部と、前記公開鍵または、前記公開鍵の証明書のいずれかを格納する公 開鍵証明書格納部と、前記秘密鍵群に含まれる複数の前記秘密鍵から一つの前記 秘密鍵を選択する秘密鍵選択部と、選択した前記秘密鍵を用いて、前記メッセージ データに対する前記署名データを生成する署名生成部とを備えることを特徴とする。
[0144] また、本発明は、一つの公開鍵に対して、複数の秘密鍵が対応することが可能であ る署名方式を用レ、て、メッセージデータに対する署名データを生成する署名生成方 法であって、複数の前記秘密鍵からなる秘密鍵群を格納する秘密鍵群格納ステップ と、前記公開鍵または、前記公開鍵の証明書のいずれかを格納する公開鍵証明書 格納ステップと、前記秘密鍵群に含まれる複数の前記秘密鍵から一つの前記秘密鍵 を選択する秘密鍵選択ステップと、選択した前記秘密鍵を用いて、前記メッセージデ ータに対する前記署名データを生成する署名生成ステップとを含むことを特徴とする
[0145] また、本発明は、一つの公開鍵に対して、複数の秘密鍵が対応することが可能であ る署名方式を用レ、て、メッセージデータに対する署名データを生成する署名生成方 法であって、前記秘密鍵を格納する秘密鍵格納ステップと、前記公開鍵または、前 記公開鍵の証明書のいずれ力を格納する公開鍵証明書格納ステップと、前記秘密 鍵を用いて、前記メッセージデータに対する前記署名データを生成する署名生成ス テツプと、前記公開鍵と対応するように前記秘密鍵を更新する秘密鍵更新ステップと を含むことを特徴とする。
[0146] また、本発明は、一つの公開鍵に対して、複数の秘密鍵が対応することが可能であ る署名方式を用レ、て、メッセージデータに対する署名データを生成する署名生成装 置に実行させるプログラムであって、複数の前記秘密鍵からなる秘密鍵群を格納す る秘密鍵群格納ステップと、前記公開鍵または、前記公開鍵の証明書のいずれかを 格納する公開鍵証明書格納ステップと、前記秘密鍵群に含まれる複数の前記秘密 鍵から一つの前記秘密鍵を選択する秘密鍵選択ステップと、選択した前記秘密鍵を 用レ、て、前記メッセージデータに対する前記署名データを生成する署名生成ステツ プとを前記署名生成装置に実行させることを特徴とする。
[0147] ここで、前記署名方式は、加算、減算、乗算と元の大きさを示すノルムが定義された N次元配列の集合である環 Rと、前記環 Rのイデアル qに対し、前記環 Rの元 f, gおよ び、 f (mod q)の逆数である元 Fqを生成し、前記元 gおよび前記元 Fqの積と mod q で合同である元 hを前記公開鍵として生成し、 f X G— g X F = qを満たし、かつ、カレ ムが予め与えられた所定値より小さい前記環 Rの元の対である複数の解(F, G) = ( F— 1 , G_l ) , (F_2, G_2) ,…, (F_u, G_u) (uは 1より大きい正整数)を生 成し、複数の前記元の 4つ組 (f, g, F— 1 , G— 1) , (f, g, F— 2, G— 2) , · · ·, (f, g , F— u, G—u)を前記秘密鍵として生成する鍵生成ステップと、前記秘密鍵を用い て前記メッセージデータに対する前記署名データを生成する署名生成ステップと、前 記公開鍵を用いて前記署名データを検証する署名検証ステップとを含むとしてもよ レ、。
[0148] ここで、前記秘密鍵選択ステップは、前記秘密鍵群に含まれる複数の前記秘密鍵 力 ランダムに一つの前記秘密鍵を選択するとしてもよい。
また、本発明は、一つの公開鍵に対して、複数の秘密鍵が対応することが可能であ る署名方式を用レ、て、メッセージデータに対する署名データを生成する署名生成装 置に実行させるプログラムであって、前記秘密鍵を格納する秘密鍵格納ステップと、 前記公開鍵または、前記公開鍵の証明書のいずれかを格納する公開鍵証明書格納 ステップと、前記秘密鍵を用いて、前記メッセージデータに対する前記署名データを 生成する署名生成ステップと、前記公開鍵と対応するように前記秘密鍵を更新する 秘密鍵更新ステップとを前記署名生成装置に実行させることを特徴とする。
[0149] ここで、前記署名方式は、加算、減算、乗算と元の大きさを示すノルムが定義された N次元配列の集合である環 Rと、前記環 Rのイデアル qに対し、前記環 Rの元 f, gおよ び、 f (mod q)の逆数である元 Fqを生成し、前記元 gおよび前記元 Fqの積と mod q で合同である元 hを公開鍵として生成し、 f X G_g X F = qを満たし、かつ、ノルムが 予め与えられた所定値より小さい前記環 Rの元の対 (F, G)を生成し、前記元の 4つ 組 (f, g, F, G)を前記秘密鍵として生成し、前記秘密鍵を秘密鍵とする鍵生成ステツ プと、前記秘密鍵を用いて前記メッセージデータに対する前記署名データを生成す る署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ス テツプとを、含むとしてもよい。
[0150] また、本発明は、一つの公開鍵に対して、複数の秘密鍵が対応することが可能であ る署名方式を用レ、て、メッセージデータに対する署名データを生成する署名生成装 置の集積回路であって、複数の前記秘密鍵からなる秘密鍵群を格納する秘密鍵群 格納部と、前記公開鍵または、前記公開鍵の証明書のいずれかを格納する公開鍵 証明書格納部と、前記秘密鍵群に含まれる複数の前記秘密鍵から一つの前記秘密 鍵を選択する秘密鍵選択部と、選択した前記秘密鍵を用いて、前記メッセージデー タに対する前記署名データを生成する署名生成部とを備えることを特徴とする。
[0151] また、本発明は、一つの公開鍵に対して、複数の秘密鍵が対応することが可能であ る署名方式を用レ、て、メッセージデータに対する署名データを生成する署名生成装 置の集積回路であって、前記秘密鍵を格納する秘密鍵格納部と、前記公開鍵または 、前記公開鍵の証明書のいずれかを格納する公開鍵証明書格納部と、前記秘密鍵 を用いて、前記メッセージデータに対する前記署名データを生成する署名生成部と、 前記公開鍵と対応するように前記秘密鍵を更新する秘密鍵更新部とを備えることを 特徴とする。
産業上の利用可能性 上記の示したディジタル署名システムの構成によると、 Transcript attackを防ぐ こと力 Sできる。
また、上記にて示したディジタル署名システムを構成する各装置は、電器機器製造 産業において、経営的に、また継続的及び反復的に、製造し、販売することができる

Claims

請求の範囲
[1] メッセージデータに対する署名データを生成する署名生成装置であって、
1の公開鍵に複数の秘密鍵が対応している署名方式の鍵生成方法を用いて生成さ れる前記複数の秘密鍵のうち前回署名に利用した秘密鍵とは異なる他の 1の秘密鍵 を、所定の取得方法により取得する秘密鍵取得手段と、
取得した前記他の 1の秘密鍵を用いて、前記メッセージデータに、前記署名方式の 署名方法による署名を施して署名データを生成する署名生成手段と
を備えることを特徴とする署名生成装置。
[2] 前記所定の取得方法とは、複数の秘密鍵のうちの 1の秘密鍵をランダムに取得する ことであり、
前記秘密鍵取得手段は、
前記複数の秘密鍵のうちの前回署名に利用した秘密鍵とは異なる前記他の 1の秘 密鍵をランダムに取得する
ことを特徴とする請求項 1に記載の署名生成装置。
[3] 前記秘密鍵取得手段は、
前記複数の秘密鍵を記憶しており、記憶してレ、る前記複数の秘密鍵から前記他の 1の秘密鍵を、前記所定の取得方法により取得する
ことを特徴とする請求項 1に記載の署名生成装置。
[4] 前記署名方式は、格子を用いた署名方式であり、
前記秘密鍵取得手段は、前記格子を用いた署名方式の鍵生成方法にて生成され た前記複数の秘密鍵を記憶してレ、る
ことを特徴とする請求項 3に記載の署名生成装置。
[5] 前記署名方式は、 NTRU署名方式であり、
加算、減算、乗算と元の大きさを示すノルムが定義された N次元配列の集合である 環 Rと、前記環 Rのイデアル qとに対し、前記環 Rの元 f, gおよび、 f (mod q)の逆数 である元 Fqを生成し、前記元 gおよび前記元 Fqの積と mod qで合同である元 hを前 記公開鍵として生成する公開鍵生成ステップと、
f X G— g X F = qを満たし、かつ、ノルムが予め与えられた所定値より小さい前記環 Rの元の対である複数の解(F, G) = (F_1 , G_l) , (F_2, G_2) , · · ·, (F_u, G_u) (uは 1より大きい正整数)を生成し、複数の前記元の 4つ組(f, g, F— 1 , G —1) , (f, g, F— 2, G— 2) , · · ·, (f, g, F— u, G—u)のそれぞれを前記秘密鍵とし て生成する秘密鍵生成ステップと、
生成した前記複数の秘密鍵のうち 1の秘密鍵を用いて、署名データを生成する署 名生成ステップとを含み、
前記秘密鍵取得手段が記憶してレ、る前記複数の秘密鍵は、前記秘密鍵ステップ により生成され、
前記署名生成手段は、前記署名生成ステップにより前記署名データを生成する ことを特徴とする請求項 4に記載の署名生成装置。
[6] 前記署名生成装置は、
前記署名方式を用いて前記公開鍵及び前記複数の秘密鍵を生成する鍵生成装 置
を含むことを特徴とする請求項 5に記載の署名生成装置。
[7] 前記所定の取得方法とは、複数の秘密鍵のうちの 1の秘密鍵をランダムに取得する ことであり、
前記鍵取得手段は、
記憶している前記複数の秘密鍵から前回署名に利用した秘密鍵とは異なる前記他 の 1の秘密鍵をランダムに取得する
ことを特徴とする請求項 3に記載の署名生成装置。
[8] 前記所定の取得方法とは、記憶している順序に基づいて、複数の秘密鍵のうちの 1 の秘密鍵を取得することであり、
前記鍵取得手段は、
前記複数の秘密鍵を記憶している順序に基づいて、前回署名に利用した秘密鍵と は異なる前記他の 1の秘密鍵を取得する
ことを特徴とする請求項 3に記載の署名生成装置。
[9] 前記所定の取得方法とは、複数の秘密鍵のうち前回署名に利用した秘密鍵とは異 なる他の 1の秘密鍵を、前記鍵生成方法により生成して取得することであり、 前記鍵取得手段は、
前記 1の公開鍵に対応し、前記署名方式にて生成された第 1秘密鍵を記憶しており 、前記第 1秘密鍵を利用した後、前記鍵生成方法により前記 1の公開鍵に対応する 第 2秘密鍵を生成し、記憶している前記第 1秘密鍵を、生成した前記第 2秘密鍵へと 更新し、前記署名データの生成時に、記憶している前記第 2秘密鍵を前記 1の秘密 鍵として取得する
ことを特徴とする請求項 1に記載の署名生成装置。
[10] メッセージデータに対する署名データの生成及び検証に用いる鍵を生成する鍵生 成装置であって、
1の公開鍵に複数の秘密鍵が対応する署名方式により前記 1の公開鍵を生成する 公開鍵生成手段と、
前記署名方式により前記 1の公開鍵に対応する複数の秘密鍵を生成する秘密鍵生 成手段と
を備えることを特徴とする鍵生成装置。
[11] 前記署名方式は、格子を用いた方式であり、
前記公開鍵生成手段は、
前記署名方式により、前記公開鍵を生成し、
前記秘密鍵生成手段は、
前記署名方式により、前記複数の秘密鍵を生成する
ことを特徴する請求項 10に記載の鍵生成装置。
[12] 前記署名方式は、 NTRU署名方式であり、
加算、減算、乗算と元の大きさを示すノルムが定義された N次元配列の集合である 環 と、前記環 Rのイデアル qとに対し、前記環 Rの元 f, gおよび、 f (mod q)の逆数 である元 Fqを生成し、前記元 gおよび前記元 Fqの積と mod qで合同である元 hを前 記公開鍵として生成する公開鍵生成ステップと、
f X G_g X F = qを満たし、かつ、ノルムが予め与えられた所定値より小さい前記環 Rの元の対である複数の解(F, G) = (F_1 , G_l), (F_2, G_2) ,…, (F_u, G_u) (uは 1より大きい正整数)を生成し、複数の前記元の 4つ組(f, g, F_l , G —1) , (f, g, F— 2, G— 2) , · · ·, (f, g, F— u, G—u)のそれぞれを前記秘密鍵とし て生成する秘密鍵生成ステップとを含み、
前記公開鍵生成手段は、前記公開鍵生成ステップにより前記公開鍵を生成し、 前記秘密鍵生成手段は、前記秘密鍵生成ステップにより前記複数の秘密鍵を生成 する
ことを特徴とする請求項 11に記載の鍵生成装置。
[13] メッセージデータに対する署名データを生成する署名生成装置と、署名の検証を 行う署名検証装置とからなる署名システムであって、
前記署名生成装置は、
1の公開鍵に複数の秘密鍵が対応している署名方式の鍵生成方法を用いて生成さ れる前記複数の秘密鍵のうち前回署名に利用した秘密鍵とは異なる他の 1の秘密鍵 を、所定の取得方法により取得する秘密鍵取得手段と、
取得した前記他の 1の秘密鍵を用いて、前記メッセージデータに、前記署名方式の 署名方法による署名を施して署名データを生成する署名生成手段とを備え、 前記署名検証装置は、
前記公開鍵を用レ、て、前記署名データを検証する検証手段
を備えることを特徴とする署名システム。
[14] メッセージデータに対する署名データを生成する署名生成装置で用いられる署名 生成方法であって、
1の公開鍵に複数の秘密鍵が対応している署名方式の鍵生成方法を用いて生成さ れる前記複数の秘密鍵のうち前回署名に利用した秘密鍵とは異なる他の 1の秘密鍵 を、所定の取得方法により取得する秘密鍵取得ステップと、
取得した前記他の 1の秘密鍵を用いて、前記メッセージデータに、前記署名方式の 署名方法による署名を施して署名データを生成する署名生成ステップと
を含むことを特徴とする署名生成方法。
[15] メッセージデータに対する署名データを生成する署名生成装置で用いられる署名 生成プログラムであって、
1の公開鍵に複数の秘密鍵が対応している署名方式の鍵生成方法を用いて生成さ れる前記複数の秘密鍵のうち前回署名に利用した秘密鍵とは異なる他の 1の秘密鍵 を、所定の取得方法により取得する秘密鍵取得ステップと、
取得した前記他の 1の秘密鍵を用いて、前記メッセージデータに、前記署名方式の 署名方法による署名を施して署名データを生成する署名生成ステップと
を含むことを特徴とする署名生成プログラム。
[16] 前記署名生成プログラムは、
コンピュータ読み取り可能な記録媒体に記録されている
ことを特徴とする請求項 15に記載の署名生成プログラム。
[17] メッセージデータに対する署名データの生成及び検証に用いる鍵を生成する鍵生 成装置で用いられる鍵生成方法であって、
1の公開鍵に複数の秘密鍵が対応する署名方式により前記 1の公開鍵を生成する 公開鍵生成ステップと、
前記署名方式により前記 1の公開鍵に対応する複数の秘密鍵を生成する秘密鍵生 成ステップと
を含むことを特徴とする鍵生成方法。
[18] メッセージデータに対する署名データの生成及び検証に用いる鍵を生成する鍵生 成装置で用いられる鍵生成プログラムであって、
1の公開鍵に複数の秘密鍵が対応する署名方式により前記 1の公開鍵を生成する 公開鍵生成ステップと、
前記署名方式により前記 1の公開鍵に対応する複数の秘密鍵を生成する秘密鍵生 成ステップと
を含むことを特徴とする鍵生成プログラム。
[19] 前記鍵生成プログラムは、
コンピュータ読み取り可能な記録媒体に記録されている
ことを特徴とする請求項 18に記載の鍵生成プログラム。
[20] メッセージデータに対する署名データを生成する署名生成装置の集積回路であつ て、
1の公開鍵に複数の秘密鍵が対応している署名方式の鍵生成方法を用いて生成さ れる前記複数の秘密鍵のうち前回署名に利用した秘密鍵とは異なる他の 1の秘密鍵 を、所定の取得方法により取得する秘密鍵取得手段と、
取得した前記他の 1の秘密鍵を用いて、前記メッセージデータに、前記署名方式の 署名方法による署名を施して署名データを生成する署名生成手段と
を備えることを特徴とする集積回路。
メッセージデータに対する署名データの生成及び検証に用いる鍵を生成する鍵生 成装置の集積回路であって、
1の公開鍵に複数の秘密鍵が対応する署名方式により前記 1の公開鍵を生成する 公開鍵生成手段と、
前記署名方式により前記 1の公開鍵に対応する複数の秘密鍵を生成する秘密鍵生 成手段と
を備えることを特徴とする集積回路。
PCT/JP2006/300508 2005-01-24 2006-01-17 署名生成装置、鍵生成装置及び署名生成方法 WO2006077820A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2006552394A JP4544538B2 (ja) 2005-01-24 2006-01-17 署名生成装置、鍵生成装置及び署名生成方法
EP06711788A EP1843512B1 (en) 2005-01-24 2006-01-17 Signature generation device, key generation device, and signature generation method
DE602006012935T DE602006012935D1 (de) 2005-01-24 2006-01-17 Vorrichtung zur signaturgenerierung, vorrichtung zur schlüsselgenerierung und verfahren zur signaturgenerierung
US11/795,256 US7664260B2 (en) 2005-01-24 2006-01-17 Signature generation device, key generation device, and signature generation method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005-015161 2005-01-24
JP2005015161 2005-01-24

Publications (1)

Publication Number Publication Date
WO2006077820A1 true WO2006077820A1 (ja) 2006-07-27

Family

ID=36692209

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/300508 WO2006077820A1 (ja) 2005-01-24 2006-01-17 署名生成装置、鍵生成装置及び署名生成方法

Country Status (6)

Country Link
US (1) US7664260B2 (ja)
EP (1) EP1843512B1 (ja)
JP (1) JP4544538B2 (ja)
CN (1) CN101107809A (ja)
DE (1) DE602006012935D1 (ja)
WO (1) WO2006077820A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010262109A (ja) * 2009-05-01 2010-11-18 Sony Corp 情報処理装置、鍵更新方法、及びプログラム
CN109787765A (zh) * 2019-02-27 2019-05-21 东南大学 一种用于水质在线监测的远程数据网关加密方法

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007004461A (ja) * 2005-06-23 2007-01-11 Nec Corp サービス提供システム、アウトソーシング業者装置、サービス提供方法およびプログラム
US8250664B2 (en) * 2007-02-23 2012-08-21 Panasonic Corporation Copyright protection data processing system and reproduction device
FR2937484B1 (fr) * 2008-10-22 2011-06-17 Paycool Int Ltd Procede de signature numerique en deux etapes
KR101347001B1 (ko) 2009-09-29 2014-01-02 잼텍 리미티드 제한된 암호 키 검색을 갖는 커뮤니케이션 시스템, 방법 및 장치
US8677135B2 (en) 2010-12-17 2014-03-18 Microsoft Corporation Digital signatures with error polynomials
CN102571339B (zh) * 2010-12-31 2014-12-17 上海格尔软件股份有限公司 基于智能密钥和数字签名的虚拟资产保护方法
US8954735B2 (en) * 2012-09-28 2015-02-10 Intel Corporation Device, method, and system for secure trust anchor provisioning and protection using tamper-resistant hardware
CN103326861B (zh) * 2013-06-04 2016-12-28 北京华大信安科技有限公司 一种对数据进行rsa安全签名的方法、装置及安全芯片
US9607159B2 (en) * 2014-12-10 2017-03-28 International Business Machines Corporation Intelligent key selection and generation
CN104780047A (zh) * 2015-04-03 2015-07-15 南京邮电大学 前向安全的无证书可验证加密签名方法
TWI581599B (zh) * 2015-04-30 2017-05-01 鴻海精密工業股份有限公司 金鑰生成系統、資料簽章與加密系統和方法
CN106533675A (zh) * 2016-12-19 2017-03-22 北京洋浦伟业科技发展有限公司 数字签名方法及系统
CN107231367B (zh) * 2017-06-21 2021-03-19 北京奇虎科技有限公司 签名消息的自动通知方法、装置以及服务器
EP3598689B1 (en) 2018-07-17 2022-01-05 Assa Abloy AB Managing central secret keys of a plurality of user devices associated with a single public key
CN110266472B (zh) * 2019-04-09 2021-06-08 武汉理工大学 支持混合秘密共享的sm9数字签名协同生成方法及系统
JP2021048518A (ja) 2019-09-19 2021-03-25 株式会社東芝 情報処理装置、情報処理システム及び情報処理装置の制御方法
AU2020267271A1 (en) * 2019-11-16 2021-06-03 Wildfi Pty Ltd System and method for secure storage and distribution of encryption keys
CN111600708A (zh) * 2020-05-15 2020-08-28 北京海泰方圆科技股份有限公司 一种信息处理方法、证书生成方法、装置、设备及介质
US11770263B1 (en) * 2022-12-06 2023-09-26 Citibank, N.A. Systems and methods for enforcing cryptographically secure actions in public, non-permissioned blockchains using bifurcated self-executing programs comprising shared digital signature requirements
US11658833B1 (en) 2022-12-06 2023-05-23 Citibank, N.A. Systems and methods for conducting cryptographically secure actions in public, non-permissioned blockchains using bifurcated self-executing programs

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003050998A1 (en) * 2001-12-07 2003-06-19 Ntru Cryptosystems, Inc. Digital signature and authentication method and apparatus

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2263588C (en) 1996-08-19 2005-01-18 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
WO2004032413A1 (en) * 2002-09-24 2004-04-15 Laboratories For Information Technology A method of generating private keys

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003050998A1 (en) * 2001-12-07 2003-06-19 Ntru Cryptosystems, Inc. Digital signature and authentication method and apparatus

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
BELLARE M. AND MINER S.K.: "A Forware-Secure Digital Signature Scheme", LECTURE NOTES IN COMPUTER SCIENCE, vol. 1666, August 1999 (1999-08-01), pages 431 - 448, XP001194957 *
DODIS Y. ET AL.: "Strong Key-Insulated Signature Schemes", LECTURE NOTES IN COMPUTER SCIENCE, vol. 2567, January 2003 (2003-01-01), pages 130 - 144, XP003004050 *
HASEGAWA S. ET AL.: "Tensha Kogeki ni Taisuru NTRUSign no Kariyo ni Tsuite", 2005 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY YOKOSHU, vol. II OF IV, 25 January 2005 (2005-01-25), pages 943 - 947, XP003004056 *
See also references of EP1843512A4 *
Y- DODIS ET AL.: "Strong Key-Insulated Signature Schemes", 6TH INTERNATIONAL WORKSHOP ON PRACTICE AND THEORY IN PUBLIC KEY CRYPTOGRAPHY, 2003

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010262109A (ja) * 2009-05-01 2010-11-18 Sony Corp 情報処理装置、鍵更新方法、及びプログラム
CN109787765A (zh) * 2019-02-27 2019-05-21 东南大学 一种用于水质在线监测的远程数据网关加密方法
CN109787765B (zh) * 2019-02-27 2022-02-15 东南大学 一种用于水质在线监测的远程数据网关加密方法

Also Published As

Publication number Publication date
EP1843512A4 (en) 2008-12-10
US20080089514A1 (en) 2008-04-17
JPWO2006077820A1 (ja) 2008-06-19
DE602006012935D1 (de) 2010-04-29
JP4544538B2 (ja) 2010-09-15
US7664260B2 (en) 2010-02-16
EP1843512B1 (en) 2010-03-17
CN101107809A (zh) 2008-01-16
EP1843512A1 (en) 2007-10-10

Similar Documents

Publication Publication Date Title
WO2006077820A1 (ja) 署名生成装置、鍵生成装置及び署名生成方法
JP4548737B2 (ja) 署名生成装置及び署名検証装置
JP5341878B2 (ja) 署名及び検証方法、署名生成装置並びに署名検証装置
US5146500A (en) Public key cryptographic system using elliptic curves over rings
CN104011781B (zh) 信息处理设备、信息处理方法
JP4899867B2 (ja) グループ署名方式
WO2011148902A1 (ja) 匿名認証システム、ユーザ装置、検証装置、匿名認証方法および匿名認証プログラム
WO2009143713A1 (zh) 双因子组合公钥生成和认证方法
GB2401462A (en) Security method using biometric and non-biometric data
JP2008103975A (ja) 署名システム及び署名方法
EP2503729A1 (en) Information processing device, key generating device, signature verifying device, information processing method, signature generating method, and program
WO2006115021A1 (ja) 署名生成装置及び署名検証装置
CN103931136A (zh) 信息处理设备、签名生成设备、信息处理方法、签名生成方法以及程序
CN112149156B (zh) 用于公开记录的属性和数据条目的系统和选择器及其方法
WO2006114948A1 (ja) 署名生成装置および署名検証装置
CN103718501B (zh) 信息处理设备和信息处理方法
CN103748830B (zh) 信息处理设备、签名提供方法和设备、签名验证方法和设备
JPWO2007010903A1 (ja) 鍵発行方法、グループ署名システム
Schartner et al. Unique user-generated digital pseudonyms
EP2417726B1 (en) Private key compression
JP4625703B2 (ja) 電子署名システム、電子署名方法及びプログラム
Rückert et al. Generic constructions for verifiably encrypted signatures without random oracles or NIZKs
CN103733562A (zh) 信息处理设备和信息处理方法
JP2003141385A (ja) 電子入札方法、その装置、そのプログラム及び記録媒体
JP2003143129A (ja) 匿名通信方法、その装置処理方法、そのプログラムおよびその記録媒体

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006552394

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2006711788

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 11795256

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 200680003040.5

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2006711788

Country of ref document: EP