WO2009125537A1 - 署名及び検証方法、署名生成装置並びに署名検証装置 - Google Patents

署名及び検証方法、署名生成装置並びに署名検証装置 Download PDF

Info

Publication number
WO2009125537A1
WO2009125537A1 PCT/JP2009/000923 JP2009000923W WO2009125537A1 WO 2009125537 A1 WO2009125537 A1 WO 2009125537A1 JP 2009000923 W JP2009000923 W JP 2009000923W WO 2009125537 A1 WO2009125537 A1 WO 2009125537A1
Authority
WO
WIPO (PCT)
Prior art keywords
vector
signature
data
secret
size
Prior art date
Application number
PCT/JP2009/000923
Other languages
English (en)
French (fr)
Inventor
布田裕一
静谷啓樹
磯辺秀司
長谷川真吾
Original Assignee
パナソニック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック株式会社 filed Critical パナソニック株式会社
Priority to EP09730374A priority Critical patent/EP2264941A1/en
Priority to US12/921,507 priority patent/US8452975B2/en
Priority to JP2010507130A priority patent/JP5341878B2/ja
Priority to CN200980108247.2A priority patent/CN101965711B/zh
Publication of WO2009125537A1 publication Critical patent/WO2009125537A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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

  • the present invention relates to a cryptographic technique as an information security technique, and more particularly to a digital signature and its verification.
  • a digital signature method which is a kind of public key cryptography, is used to identify a sender and to detect or prevent falsification of data.
  • the digital signature method means that the transmission device creates signature data for the data to be transmitted using the private key (secret key) of the transmission device, transmits the signature data together with the data to be transmitted to the reception device,
  • the receiving device is a method for verifying signature data using the public key of the transmitting device and determining whether or not the data has been tampered with.
  • refer nonpatent literature 1 since it is difficult to calculate the value of the private key from the public key, it is impossible for an unauthorized person to impersonate a transmission device and create forged signature data.
  • a public key cryptosystem that allows a key that is comparable to the key length of the key cryptosystem to be selected from a large set of vectors almost randomly and with an appropriate security level.
  • NTRU registered trademark of NTR Cryptosystems Incorporated
  • This NTRU cipher is encrypted and decrypted using a polynomial operation capable of high-speed operation, compared to an RSA cipher that performs exponentiation and a elliptic multiplication that performs scalar multiplication of points on an elliptic curve under a certain method. Therefore, processing can be performed at a speed higher than that of conventional public key cryptography, and processing can be performed in a practical time by software processing. Therefore, the cryptographic communication system using the NTRU cipher for the public key cryptography has an advantage that the processing of the transmitting device and the receiving device can be performed at a higher speed than the conventional cryptographic communication system using the public key cryptography.
  • the NTRU cipher is not only capable of high-speed processing, but also has a computationally difficult problem that is the basis of its security, which differs from the RSA cipher and the elliptic curve cipher.
  • the RSA cipher uses the prime factorization problem as a base for security
  • the elliptic curve cipher uses the discrete logarithm problem on the elliptic curve as a base for security.
  • the NTRU encryption is based on the minimum vector problem or the nearest neighbor problem for a set of vectors called a lattice.
  • the NTRUSign signature scheme is a digital signature scheme that performs signature generation and signature verification through polynomial operations. Parameter N determines the degree of the polynomial handled in the NTRUSign signature scheme.
  • the polynomial handled in the NTRUSign signature scheme is an integer coefficient polynomial of order N-1 or less with respect to the parameter N.
  • N 5
  • X ⁇ a means X to the power of a.
  • the public key h and the signature s used in the NTRUSign signature scheme are both expressed as polynomials of the (N ⁇ 1) th order or lower.
  • the secret key is four (N ⁇ 1) th order polynomial pairs (f, g, F, G). That is, f, g, F, and G are all polynomials of order N ⁇ 1 or less.
  • the quadruple (f, g, F, G) is regarded as a further pair of two pairs (f, g), (F, G), and ⁇ (f, g), (F, G ) ⁇ .
  • N 5
  • the product of the polynomial X ⁇ 4 + X ⁇ 2 + 1 and the polynomial X ⁇ 3 + X is “ ⁇ ” for the product of the polynomial and the polynomial, and “ ⁇ ” for the product of the integer and the polynomial (or the product of the integer and the integer).
  • an N ⁇ 1 order polynomial a a — 0 + a — 1 ⁇ X + a — 2 ⁇ X ⁇ 2 +... + A_ (N ⁇ 1) ⁇ X ⁇ (N ⁇ 1) (N-1)).
  • a — 0, a — 1, a — 2,..., A — (N ⁇ 1) are coefficients of the polynomial a and are integers.
  • the polynomial f is selected such that, among the N coefficients, df coefficients each have the value “1” and the other coefficients each have the value “0”. That is, the polynomial f is a polynomial of N ⁇ 1 order or less, and has N coefficients from the 0th order (constant term) to the N ⁇ 1 order. Of these N coefficients, df coefficients are selected to have a value “1”, and (N ⁇ df) coefficients are selected to have a value “0”.
  • the polynomial g is a polynomial of order N-1 or less, and for the polynomial g, among the N coefficients, dg coefficients are each value “1”, and the other coefficients are values respectively. It is chosen to be “0”.
  • a signature is created for the hash value of message data.
  • the hash value of the message data is an N-order polynomial pair and is expressed as a 2 ⁇ N-dimensional vector.
  • a hash function for obtaining a hash value from message data is described in detail in Non-Patent Document 1.
  • the NTRUSign signature scheme uses vector distance for signature verification. The definition is shown below.
  • of the pair (a, b) of the polynomials a and b is defined as follows.
  • ⁇ (f, g), (F, G) ⁇ is a secret key
  • h is a public key.
  • the secret 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.
  • Signature generation of NTRUSign signature scheme a hash value vector of message data to be transmitted is calculated, and its nearest lattice point is used as a signature vector. By rounding the coefficient in the Lsec coordinate system to an integer, the nearest lattice point can be easily obtained.
  • the signature s of the message data m to be signed is calculated as follows.
  • a 2 ⁇ N-dimensional vector (m1, m2) (m1 and m2 are N-th order polynomials), which is a hash value for the message data m, is calculated.
  • the coefficients of A and a are remainders when divided by the modulus q so as to be within the range of ⁇ q / 2> +1 to ⁇ q / 2>. That is, when the remainder when divided by the modulus q is q ⁇ 1 from ⁇ q / 2>, q is subtracted and adjusted so as to be within the above range.
  • s and t are calculated from the following formula, and s is output as a signature.
  • a 2.N-dimensional vector (m1, m2) that is a hash value for the message data m is calculated.
  • the distance between the 2 ⁇ N-dimensional vector (s, t) and the 2 ⁇ N-dimensional vector (m1, m2) is obtained, and it is checked whether the distance is less than Normbound. If it is less than Normbound, it is determined that the signature s is correct and the signature s is accepted. If it is equal to or higher than Normbound, the signature s is determined to be invalid and the signature s is rejected.
  • the signature vector is sufficiently close to the hash value vector, it is determined as a correct signature.
  • the NTRUSign signature scheme is based on the grid problem for security. This will be described below.
  • FIG. 20A shows an Lsec coordinate system when the entire 2 ⁇ N-dimensional vector is regarded as a lattice (lattice Lsec).
  • a distance between a 2 ⁇ N-dimensional vector (s, t) 822 that is a signature vector and a 2 ⁇ N-dimensional vector (m1, m2) 821 that is a hash value vector obtained from message data is obtained, and Normbound Check whether it is less than.
  • a 2 ⁇ N-dimensional vector (m1, m2) 821 exists in a hypersphere 823 having a radius Normbound centered on a 2 ⁇ N-dimensional vector (s, t) 822. Check whether you are doing. If it exists in the hypersphere 823, it is determined that the signature verification is successful. If it does not exist in the hypersphere 823, it is determined that signature verification has failed.
  • the lattice Lsec and the lattice Lpub indicate the same entire vector.
  • the norm of the basis vector (referred to as a secret key basis vector) for constructing the lattice Lsec is much smaller than the norm of the basis vector (referred to as a public key basis vector) for constructing the lattice Lpub.
  • a basis vector having the smallest norm from a basis vector having a large norm (referred to as a minimum basis vector problem). Therefore, it is also difficult to obtain a secret key basis vector from a public key basis vector, and this is the basis of security for the key. With such a base, it is considered difficult to obtain a public key from a secret key.
  • the vector 800 (s, t) is used.
  • a vector having the closest distance by projecting to the base is calculated, thereby obtaining the vector of the closest lattice point. ing.
  • the signature vector (s, t) is a vector of lattice points closest to the hash value vector (m1, m2) of the message data.
  • the problem of calculating the lattice vector with the closest distance is called a lattice nearest neighbor problem
  • the security for the signature of the NTRUSign signature scheme is based on the nearest neighbor problem of this lattice.
  • the GGH signature scheme is known as a signature scheme based on the minimum basis vector problem of a lattice for a key and the nearest neighbor problem of a lattice for a signature, such as the NTRUSign signature scheme.
  • NTRUSign signature scheme See Non-Patent Document 6).
  • NRUSign Digital Signatures Using the NTRU Lattice
  • CT-RSA'03 LNCS, Vol. 2612, pp. 122-140, Springer-Verlag
  • EESS # 1 Implementation Aspects of NTRU Encryption and NTRU Sign”, Ver2.0, June 20th, 2003 O. Goldreich, S.M. Goldwasher and S.M. Halevi “Public-key cryptography from lattice reduction programs,” In Proc. CRYPTO '97, LNCS, Vol. 1294, pp. 112-131, Springer-Verlag, 1997
  • the transcription attack is an attack for obtaining a secret key from a plurality of signature sentences (a pair of message data and signature).
  • the transcription attack will be briefly described below (for details, see Non-Patent Document 4).
  • the average of the second moments of m1-s is almost equal to k1 ⁇ f ⁇ + k2 ⁇ F ⁇ . Furthermore, even with the average of the fourth-order moments, information related to f and F can be obtained in the same manner, and f can be obtained from both information.
  • Non-Patent Document 4 the number of signature sentences necessary to obtain information on the secret key from the average of the second moment and the fourth moment is 10 ⁇ 4 and 10 ⁇ 8, respectively. Therefore, it is considered that 10 ⁇ 8 or more signature sentences are necessary for a successful NTRUSign signature transcription attack. It should be noted that the transcription attack can occur in the same manner even in other signature schemes (for example, GGH signature scheme) based on the lattice problem.
  • the present invention provides a signature and verification method, a signature generation device, a signature verification device, a signature generation method, and a computer program for signature generation that can counter the above-described transcription attack.
  • a recording medium for recording is provided.
  • the method divides data into a plurality of dimensions and expresses them as multidimensional vectors, and uses the minimum vector problem or the approximate minimum vector problem as the basis of security, and the target data.
  • the signature vector is restored using the vector and the signature data, and the vector based on the target data is restored.
  • an output step of outputting is
  • the signature data is stored in the target data using a secret disturbance vector smaller than the first size. Since it is generated with respect to a conversion vector generated by converting data, a person who performs a transcription attack has an excellent effect that it is difficult to calculate the secret key used for the signature in terms of calculation amount. . Further, in the verification of the signature data, it is verified whether the distance between the vector based on the target data and the signature vector is equal to or smaller than a second size larger than the first size. Can be verified, so the signature data can be verified.
  • This signature and verification method can prevent transcription attacks and has great value.
  • FIG. 1 is a block diagram showing a configuration of a digital signature system 10 as one embodiment according to the present invention. It is a figure which shows an example of uniform distribution. The data structure of the distribution table 410 is shown. It is a figure which shows an example of non-uniform distribution. The data structure of the distribution table 450 is shown. It is a figure which shows the signature production
  • FIG. 3 is a block diagram illustrating a configuration of a signature generation unit 104.
  • FIG. 2 is a block diagram showing a configuration of a signature verification apparatus 200.
  • FIG. The data recorded in the CA public key storage unit 202, the signature data set storage unit 203, and the system parameter storage unit 205 of the signature verification apparatus 200 are shown.
  • 3 is a block diagram illustrating a configuration of a signature verification unit 204.
  • FIG. 3 is a block diagram showing a configuration of a key generation device 300.
  • FIG. The data recorded in the certificate generation key storage unit 304 and the system parameter storage unit 306 included in the key generation device 300 are shown.
  • 4 is a flowchart showing the operation of the digital signature system 10.
  • 4 is a flowchart showing the operation of the signature generation apparatus 100.
  • FIG. 4 is a flowchart showing an operation of signature verification in the signature verification apparatus 200.
  • 12 is a flowchart showing the operation of the key generation device 1300. It is a figure which shows the conventional NTRUSign signature system.
  • A illustrates an Lsec coordinate system when the entire 2 ⁇ N-dimensional vector is regarded as a lattice (lattice Lsec).
  • B illustrates an Lpub coordinate system when the entire 2 ⁇ N-dimensional vector is regarded as a lattice (lattice Lpub).
  • the data structure of the distribution table 610 is shown.
  • the data structure of the distribution table 650 is shown.
  • a signature point for the transformation vector is generated by obtaining a lattice point closest to the transformation vector, a signature step using a part of the signature vector as signature data, a public key vector, and the signature data, Using the restoration of the signature vector, the vector based on the target data and the restored signature vector
  • the signature generation apparatus divides the data into a plurality of data and expresses the data as a multidimensional vector, and uses the minimum vector problem or the approximate minimum vector problem as a basis of security to sign data for the target data.
  • a signature generation device that generates target data using an acquisition unit that acquires target data, a secret storage unit that secretly stores a secret key vector, and a secret disturbance vector that is smaller than the first size.
  • Data conversion means for converting data and generating a conversion vector; and a grid determined based on a secret key vector as a basis, and generating a signature vector for the conversion vector by obtaining a lattice point closest to the conversion vector, and the signature vector Generating means for using a part of the signature data as a signature data, and outputting means for outputting the target data and the generated signature data Characterized in that it comprises and.
  • the signature data is stored using the secret disturbance vector smaller than the first size. Since it is generated with respect to a conversion vector generated by converting data, a person who performs a transcription attack has an excellent effect that it is difficult to calculate the secret key used for the signature in terms of calculation amount. .
  • the signature generation apparatus wherein the secret storage unit further stores a distribution indicating a range to which a plurality of candidate vectors smaller than the first size belong, and the data conversion unit Is characterized in that one candidate vector is selected from the candidate vectors belonging to the range indicated by the distribution as the disturbance vector.
  • each time a signature is generated one candidate vector is selected from a plurality of candidate vectors to be a disturbance vector, so that the range of disturbance vectors that can be used is widened, and a secret is protected against an attacker. Finding the key can be made more difficult.
  • the signature generation apparatus wherein the secret storage means has tamper resistance, and the secret key and the distribution are secretly protected so as not to be known from the outside. It is characterized by being.
  • This configuration makes it difficult to obtain a secret key because the selected disturbance vector is kept secret.
  • a plurality of candidate vectors are selected so that the probability of being selected is not uniform.
  • the data conversion means selects one candidate data as the disturbance vector according to the probability.
  • the range of possible disturbance vectors can be expanded, and it can be made more difficult for an attacker to obtain a secret key.
  • the range indicated by the distribution has a plurality of regions, and the selection probability of the region is predetermined for each region, and the plurality of regions A plurality of candidate vectors are arranged, and the data conversion unit selects one region based on the selection probability, and selects one candidate vector from the selected region as the disturbance vector. It is characterized by.
  • the signature generation apparatus selects one candidate vector from the candidate vectors belonging to the range indicated by the distribution, and sets the vector as the disturbance vector. It includes a generation unit and an addition unit that generates the conversion vector by adding the disturbance vector to a vector based on the target data.
  • the signature generation device wherein the vector generation unit generates the disturbance vector by randomly selecting from a plurality of candidate vectors selected in advance based on the distribution. It is characterized by.
  • the distribution is included in a hypersphere having a radius of the first size.
  • the signature generation apparatus further includes a public storage unit storing a second size larger than the first size, and the data conversion unit further includes the target data.
  • the distance between the vector and the conversion vector is calculated and the calculated distance is not less than or equal to the second size, the obtained target data is converted using another secret disturbance vector smaller than the first size, It is characterized by generating another transformation vector.
  • the secret key vector includes a ring R that is a set of N-dimensional arrays in which a norm indicating an original size is defined as addition, subtraction, and multiplication.
  • a norm indicating an original size is defined as addition, subtraction, and multiplication.
  • the public key vector is obtained from the element h that is congruent with the product of the positive integer q and the element g and the element Fq and mod q. It is characterized by.
  • the signature verification apparatus divides the data into a plurality of data and represents the data as a multidimensional vector, and the signature generation apparatus uses the minimum vector problem or the approximate minimum vector problem as a basis of security, A part of a signature vector which is a lattice point closest to the conversion vector in a lattice in which the conversion vector is generated from the target data by conversion using a secret disturbance vector smaller than the first size and the secret key vector is determined as a base.
  • a signature verification apparatus for verifying the signature data generated as follows: an acquisition means for acquiring the target data and signature data; a storage means for storing a public key vector; a public key vector and the signature data; The signature vector is restored using the vector of the target data and the restored signature vector. Verification means for verifying whether the separation is equal to or smaller than the second size larger than the first size, and output means for outputting success information indicating that the verification is successful when the separation is equal to or smaller than the second size. It is characterized by that.
  • the signature data in the verification of the signature data, it is verified whether the distance between the vector based on the target data and the signature vector is equal to or smaller than the second size larger than the first size, and is equal to or smaller than the second size. Since the verification is considered successful, the signature data can be verified.
  • the data is divided into a plurality of data and expressed as a multidimensional vector
  • the signature data for the target data is based on the minimum vector problem or the approximate minimum vector problem as the basis of security.
  • the signature generation method used in the signature generation apparatus for generating the target data includes: an acquisition step of acquiring the target data; and converting the acquired target data using a secret disturbance vector smaller than the first size, A data conversion step to be generated; and in a lattice determined by using a secret key vector as a basis, a signature vector for the conversion vector is generated by obtaining a lattice point closest to the conversion vector, and a signature having a part of the signature vector as signature data Generating step, and outputting step for outputting the target data and the generated signature data Characterized in that it comprises a.
  • the recording medium divides the data into a plurality of data and expresses the data as a multidimensional vector, and uses the minimum vector problem or the approximate minimum vector problem as a basis of security
  • a computer-readable recording medium recording a computer program for signature generation used in a computer for generation, wherein the computer has an acquisition step of acquiring target data, and a secret disturbance vector smaller than a first size.
  • a data conversion step of converting the acquired target data and generating a conversion vector; and a lattice determined closest to the conversion vector in a lattice determined based on the secret key vector, and obtaining a signature vector for the conversion vector Generate a portion of the signature vector
  • the system divides the data into a plurality of data and expresses the data as a multidimensional vector, and uses the minimum vector problem or the approximate minimum vector problem as the basis of security and the signature generation apparatus and the verification
  • the signature generation apparatus includes: an acquisition unit that acquires target data; a secret storage unit that secretly stores a secret key vector; and a secret smaller than a first size.
  • a data conversion unit that converts the acquired target data using a disturbance vector to generate a conversion vector, and a lattice point determined based on the secret key vector as a basis, finds a lattice point closest to the conversion vector, and Signature generation means for generating a signature vector and using a part of the signature vector as signature data, and generation of the target data Output means for outputting the signature data
  • the signature verification device includes an acquisition means for acquiring the target data and signature data, a storage means for storing a public key vector, a public key vector, and the signature.
  • Verification means for restoring the signature vector using data and verifying whether a distance between the vector of the target data and the restored signature vector is equal to or smaller than a second size larger than the first size
  • output means for outputting success information indicating that the verification is successful when the size is equal to or smaller than the second size.
  • the digital signature system 10 includes a message generation device 30, a signature generation device 100, a signature verification device 200, a key generation device 300, and a message reception device 40, and the signature generation device 100 and the signature verification device 200.
  • a communication path 20 typified by the Internet
  • the signature generation apparatus 100 and the key generation apparatus 300 are connected by a communication path that guarantees safety, or has other safety. Information is communicated to each other by guaranteed means.
  • the message generation device 30 In the digital signature system 10, the message generation device 30 generates message data m to be transmitted (also referred to as signature target data), and outputs the generated message data m to the signature generation device 100.
  • the key generation device 300 uses the improved NTRUSign signature method improved from the NTRUSign signature method, the key generation device 300 generates a key, and the signature generation device 100 generates the signature data SD for the message data m, via the communication path 20.
  • the signature data set SS including the message data m and the signature data SD is transmitted to the signature verification apparatus 200, and the signature verification apparatus 200 receives the signature data set SS, verifies the received signature data set SS,
  • the message data m is output to the message receiving device 40.
  • the message receiving device 40 receives the verification result and the message data m, and determines whether to accept the received message data m based on the received verification result.
  • the improved NTRUSign signature scheme is based on the minimum vector problem or the approximate minimum vector problem for security.
  • the shortest vector problem is a problem of obtaining the “minimum vector” included in the lattice from one basis vector.
  • Approximate Shortest Vector Problem is a problem for obtaining an approximate minimum vector (not a minimum vector but a vector having a size close to that).
  • 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 in the improved NTRUSign signature scheme is determined by the parameter N.
  • the polynomial handled in the improved NTRUSign signature scheme is an integer coefficient polynomial of order N ⁇ 1 or less with respect to the parameter N.
  • N 5
  • both the public key h and the signature s are expressed as polynomials of order N-1 or lower.
  • the secret key is four (N ⁇ 1) th order polynomial pairs (f, g, F, G). That is, f, g, F, and G are all polynomials of order N ⁇ 1 or less.
  • the quadruple (f, g, F, G) is regarded as a further pair of two pairs (f, g), (F, G), and ⁇ (f, g), (F, G ) ⁇ .
  • the vector that is the secret key is the element f of the ring R with respect to the ring R and the positive integer q, which is a set of N-dimensional arrays in which the norm indicating the original size is defined.
  • a vector that is a public key is obtained from an element h that is congruent with the product of the positive integer q and the element g and the element Fq and mod q.
  • an N ⁇ 1 order polynomial a a — 0 + a — 1 ⁇ X + a — 2 ⁇ X ⁇ 2 +... + A_ (N ⁇ 1) ⁇ X ⁇ (N ⁇ 1) a_ (N-1)).
  • a_0, a_1, a_2,..., a_ (N ⁇ 1) are coefficients of the respective terms of the polynomial a, and are integers.
  • the improved NTRUSign signature scheme uses a parameter q that is an integer greater than or equal to two. Each coefficient of the polynomial appearing in the improved NTRUSign signature scheme is calculated so as to take a remainder modulo q.
  • the polynomial f is selected so that df coefficients among the N coefficients are “1” and the other coefficients are “0”. That is, the polynomial f is a polynomial of order N ⁇ 1 or less, and there is one coefficient for each of the N terms from the 0th order (constant term) to the N ⁇ 1th order, and a total of N pieces of coefficients. Among these N coefficients, df coefficients are “1” and (N ⁇ df) coefficients are selected to be “0”.
  • the polynomial g is selected such that dg coefficients are “1” and the other coefficients are “0”.
  • Parameter L (distance) Parameter L (also referred to as first size) is the radius of the hypersphere in the 2 ⁇ N-dimensional vector space.
  • a random vector also referred to as a disturbance vector
  • a hash value vector 2 ⁇ N-dimensional vector that is a hash value of message data for conversion.
  • the distribution ⁇ is set so as to be included in a hypersphere of radius L, and a random vector is randomly selected from a plurality of vectors (also referred to as candidate vectors) existing in the distribution ⁇ with equal probability. Therefore, the norm of the selected vector is L or less.
  • FIG. 2 schematically represents a 2 ⁇ N-dimensional vector space on a two-dimensional paper surface, and represents a hypersphere 401 having a center 406 and a radius L (distance 402).
  • a distribution 400 exists inside the hypersphere 401.
  • Distribution 400 is completely contained within hypersphere 401.
  • a vector 403 is randomly selected from a plurality of vectors present in the distribution 400.
  • the vector 404 may be selected, and the vector 405 may be selected.
  • the data structure of the distribution 400 is shown in the distribution table 410 of FIG.
  • the distribution table 410 defines a spatial structure occupied by the distribution 400 in the 2 ⁇ N-dimensional vector space, and includes 2 ⁇ N limit value pairs.
  • the 2 ⁇ N limit value pairs correspond to 2 ⁇ N elements of the 2 ⁇ N-dimensional vector, respectively.
  • 2 ⁇ N limit value pairs are composed of a first group and a second group, the first group includes N limit value pairs, and the second group includes the remaining N limit value pairs. .
  • Each limit value pair includes a lower limit value and an upper limit value.
  • each limit value pair In the 2 ⁇ N-dimensional vector space, the space above and below the lower limit value and below the upper limit value included in each limit value pair is the space occupied by the distribution 400 corresponding to 2 ⁇ N elements of the 2 ⁇ N-dimensional vector. . Each limit value pair is set so that this space is included in the supersphere 401.
  • the lower limit value V1_0_min 411 and the upper limit value V1_0_max 412 in the 0th limit value pair included in the first group of the distribution table 410 are “3” and “8”, respectively, and are included in the first group.
  • the lower limit value V1_ (N-1) _min 413 and the upper limit value V1_ (N-1) _max 414 in the N-1th limit value pair are “2” and “5”, respectively.
  • the lower limit value V2_0_min 415 and the upper limit value V2_0_max 416 in the 0th limit value pair included in the second group of the distribution table 410 are “1” and “6”, respectively, as an example, and are included in the second group.
  • the lower limit value V2_ (N-1) _min 417 and the upper limit value V2_ (N-1) _max 418 in the (N-1) th limit value pair are, for example, “4” and “7”, respectively.
  • a value that is greater than or equal to the lower limit value and less than or equal to the upper limit value included in each limit value pair is selected at random in a random manner, that is, uniformly.
  • 2 ⁇ N random values V1_0, V1_1, V1_2, ..., V1_ (N-1), V2_0, V2_1, V2_2, ..., V2_ (N-1) are selected and selected.
  • a set of 2 ⁇ N random values is defined as the above-mentioned randomly selected vector V (V1, V2).
  • FIG. 2 shows that a vector from the origin to any point in the distribution range is selected.
  • the distribution range is uniform (equal probability) and randomly. Select a vector.
  • Parameter L is released as a system parameter.
  • FIG. 4 is a schematic representation of a 2 ⁇ N-dimensional vector space on a two-dimensional paper surface as in FIG. 2, and has a center 441 and a hypersphere 431 having a radius L (distance 442). Is expressed.
  • a distribution 432 exists inside the hypersphere 431. Distribution 432 is completely contained within hypersphere 431.
  • the range of the distribution 432 is divided into three, and is composed of a partial area A (433), a partial area B (434), and a partial area C (435).
  • the probability of selecting the partial area is determined.
  • the probability of selecting the partial area A (433) is 1/6
  • the probability of selecting the partial area B (434) is 1/2
  • the probability of selecting the partial area C (435) is 1 / 3.
  • the plurality of candidate vectors are arranged so that the probability of being selected is not uniform.
  • the data structure of the distribution 432 is shown in the distribution table 450 of FIG.
  • the distribution table 450 defines a spatial structure occupied by the distribution 432 in the 2 ⁇ N-dimensional vector space, and includes a plurality of sets of partial tables and occurrence probabilities. Specifically, distribution table 450 includes a set of partial table 451 and occurrence probability 454, a set of partial table 452 and occurrence probability 455, and a set of partial table 453 and occurrence probability 456.
  • the three partial tables 451, 452, and 453 correspond to the partial area A (433), the partial area B (434), and the partial area C (435) in FIG. 4, respectively.
  • the occurrence probability corresponding to each partial table is the probability of selecting a partial region of the distribution 432 shown in FIG.
  • Each partial table section has a structure similar to that of the distribution table 410 shown in FIG. 3, and each of the partial table sections includes 2 ⁇ N limit value pairs.
  • one partial table is selected, and a vector is selected at random within the range indicated by the selected partial table.
  • (V) Parameter L ′ (distance) In the improved NTRUSign signature method, as will be described later, the distance between a 2 ⁇ N-dimensional vector (called a signature vector) created from the signature s and a hash value vector is calculated, and whether or not the signature is correct is determined based on this distance. To do.
  • the parameter L ′ (second size) is a threshold value used in this determination. That is, if the calculated distance is equal to or less than L ′, it is accepted as a correct signature, and if it is greater than L ′, it is rejected as an incorrect signature.
  • the same example parameter may be used in the improved NTRUSign signature scheme.
  • the improved NTRUSign signature scheme when a vector in a hypersphere of distance L is selected, the distance between the hash value vector and the correctly generated signature vector is adjusted to be almost L ′.
  • Normbound is 300 to 310, and in this case, the distance between the hash value vector and the correctly generated signature vector is approximately within Normbound.
  • the distance between the converted hash value vector and the signature vector is approximately within Normbound. Since the difference between the converted hash value vector and the hash value vector is a random vector and the distance is within L, L ′ may be set to about Normbound + L. Therefore, if L is 200, L ′ may be set to 500 to 510. Thus, L ′ is made larger than L.
  • L ′ is made larger than L.
  • N 251.
  • of the pair (a, b) of the polynomials a and b is defined as follows.
  • x y (mod q) is the i-th order coefficient (0 ⁇ i ⁇ N ⁇ 1) of the polynomial y, and the remainder falls within the range of 0 to q ⁇ 1.
  • the remainder when divided by the modulo q is the i-th coefficient of the polynomial x. That is, a polynomial obtained by performing a mod q calculation so that each coefficient of y falls within the range of 0 to (q ⁇ 1) is a polynomial x.
  • the distribution ⁇ is arbitrarily set so that the distribution ⁇ is included in the hypersphere of the distance L.
  • Information to be set includes a distribution range and a selection probability in the distribution range. For example, a distribution as shown in FIGS. 2 and 4 is set.
  • the secret key is ⁇ (f, g), (F, G) ⁇ and the distribution ⁇ , and the public key is h.
  • the secret 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 distribution ⁇ is included in the secret key, it is natural that it is kept secret. Although all of the distribution ⁇ may be kept secret, for example, the range of the distribution 400 shown in FIG. 2 is kept secret, but based on the distribution 400, it is disclosed that a vector is uniformly selected at random. May be. Further, in the distribution 432 shown in FIG. 4, both the range of the distribution 432 and the probability of selecting each partial region may be kept secret, or the range of the distribution 432 is disclosed and the probability of selecting each partial region is kept secret. It is good also as. (4) Signature Generation with Improved NTRUSign Signature Scheme Signature generation with the improved NTRUSign signature scheme will be described with reference to FIGS. 6 and 17.
  • FIG. 6 is a diagram illustrating a signature generation process, and illustrates an Lsec coordinate system when the entire 2 ⁇ N-dimensional vector is regarded as a lattice (lattice Lsec).
  • FIG. 17 is a flowchart illustrating a procedure of signature generation processing.
  • a 2 ⁇ N-dimensional vector H (m1, m2) (m1 and m2 are Nth order polynomials), which is a hash value for the message data m, is calculated (step SG1).
  • H is referred to as a hash value vector.
  • the hash value vector H is indicated by reference numeral 501.
  • the converted hash value vector H ′ is indicated by reference numeral 502.
  • the vector S (s, t) of the lattice point closest to the transformed hash value vector H ′ is calculated by the same method as the conventional NTRUSign signature method (step SG3).
  • the vector S is indicated by reference numeral 503.
  • the coefficients of A and a are obtained by taking the remainder when dividing by the modulus q so that it falls within the range of ⁇ q / 2> +1 to ⁇ q / 2>. That is, when the remainder when divided by the modulus q is q ⁇ 1 from ⁇ q / 2>, q is subtracted and adjusted so as to be within the above range.
  • step SG4 f ⁇ B + F ⁇ b (mod q)
  • t g ⁇ B + G ⁇ b (mod q)
  • FIG. 7 is a diagram illustrating a signature verification process, and illustrates an Lpub coordinate system when the entire 2 ⁇ N-dimensional vector is regarded as a lattice (lattice Lpub).
  • FIG. 18 is a flowchart illustrating a procedure of signature generation processing.
  • a 2 ⁇ N-dimensional vector H (m1, m2) that is a hash value for the message data m is calculated (step SV1).
  • the vector H is indicated by reference numeral 531.
  • the signature vector S is indicated by reference numeral 532.
  • the signature generation device 100 generates a signature data set SS for message data m to be transmitted to the other party. As shown in FIG. 8, the signature generation apparatus 100 includes a transmission unit 101, a private key storage unit 102, a public key certificate storage unit 103, a signature generation unit 104, a signature data set generation unit 105, and a system parameter storage unit 106. .
  • the secret key storage unit 102 has tamper resistance, and stores a secret key ⁇ (f, g), (F, G) ⁇ and a distribution ⁇ that is a secret key in advance as shown in FIG. .
  • the secret key and distribution are secretly protected so as not to be known from the outside.
  • the system parameter storage unit 106 stores a parameter N, a parameter q, and a parameter L ′ (distance) as system parameters in advance.
  • the public key certificate storage unit 103 stores a certificate CP of the public key h in advance.
  • the certificate CP includes a public key h and signature data SP for the public key h by the key generation device 300.
  • the signature data SP is also generated using the improved NTRUSign signature scheme. Further, it is assumed that the certificate CP is given in advance.
  • the certificate CP may include, for example, data such as a user identifier and a certificate expiration date in addition to the public key h and the signature data SP.
  • the signature generation unit 104 uses the secret key ⁇ (f, g), (F, G) ⁇ and the distribution ⁇ stored in the secret key storage unit 102 based on the improved NTRUSign signature scheme.
  • the signature data SD for the message data m is generated.
  • the signature data set generation unit 105 receives the certificate CP from the public key certificate storage unit 103, receives the signature data SD from the signature generation unit 104, and includes message data m, certificate CP, and signature data SD.
  • a signature data set SS is generated.
  • the transmission unit 101 transmits the generated signature data set SS to the signature verification apparatus 200 via the communication path 20.
  • the signature generation unit 104 includes a hash value calculation unit 111, a vector generation unit 112, a hash value conversion unit 113, a signature generation unit 114, a signature confirmation unit 115, and a vector group selection storage unit 116. Yes.
  • the hash value calculation unit 111 performs the process of step SG1 in the signature generation process of the improved NTRUSign signature method, and calculates the hash value vector H for the message data m.
  • the vector generation unit 112 generates the vector V used in step SG2 in the signature generation process of the improved NTRUSign signature method.
  • the signature verification device 200 includes a reception unit 201, a CA public key storage unit 202, a signature data set storage unit 203, a signature verification unit 204, and a system parameter storage unit 205. Is provided.
  • the system parameter storage unit 205 stores a parameter N, a parameter q, and a parameter L ′ (distance) as system parameters in advance.
  • the CA public key storage unit 202 stores the public key KCP of the key generation apparatus 300 for verifying the certificate CP in advance as shown in FIG.
  • the receiving unit 201 receives the signature data set SS transmitted from the signature generation apparatus 100 via the communication path 20 and writes the received signature data set SS in the signature data set storage unit 203.
  • the signature data set storage unit 203 stores the received signature data set SS as shown in FIG.
  • the signature data set SS includes message data m, signature data SD, and certificate CP.
  • the certificate CP includes a public key H and signature data SP.
  • the signature verification unit 204 verifies the signature data SD included in the signature data set SS and verifies the signature data SP included in the certificate CP. (Configuration of signature verification unit 204) As shown in FIG. 13, the signature verification unit 204 includes a hash value calculation unit 211, a signature vector generation unit 212, and a distance determination unit 213.
  • the signature verification unit 204 verifies the signature data SD and verifies the signature data SP included in the certificate CP.
  • signature verification for the signature data SD will be described. Since the signature data SP can be verified in the same manner by replacing the message data m with the public key h and the signature data SD with the SP, detailed description thereof is omitted.
  • the hash value calculation unit 211 performs the process of step SV1 in the signature verification process of the improved NTRUSign signature method, and calculates a hash value vector H for the message data m.
  • the signature vector generation unit 212 performs the process of step SV2 in the signature verification process of the improved NTRUSign signature method, and generates the signature vector S from the signature data SD.
  • the distance determination unit 213 performs the process of step SV3 in the signature verification process of the improved NTRUSign signature method, and calculates the distance between the hash value vector H and the signature vector S. If the distance is within L ′, it is determined that the signature data is correct. If it is larger than L ′, it is determined that the signature data is invalid.
  • the key generation device 300 includes a distribution generation unit 301, a key generation unit 302, a certificate generation unit 303, a certificate generation key storage unit 304, and a key setting unit 305. And a system parameter storage unit 306.
  • the system parameter storage unit 306 stores a parameter N, a parameter q and a parameter L ′ (distance), a parameter L (distance), and parameters df and dg in advance as system parameters.
  • the certificate generation key storage unit 304 stores a certificate generation key KCS that is a secret key of the key generation device 300 in advance.
  • the distribution generation unit 301 generates, for example, the distribution table 410 illustrated in FIG. 3 or the distribution table 450 illustrated in FIG. 5 to generate the distribution ⁇ in the key generation processing of the improved NTRUSign signature, and generates the generated distribution ⁇ as a key.
  • the unit 302. generates, for example, the distribution table 410 illustrated in FIG. 3 or the distribution table 450 illustrated in FIG. 5 to generate the distribution ⁇ in the key generation processing of the improved NTRUSign signature, and generates the generated distribution ⁇ as a key.
  • the distribution generation unit 301 generates the distribution table 410 as follows.
  • the distribution generation unit 301 reads the parameter N and the parameter L from the system parameter storage unit 306, and generates a distribution table including an area for storing 2 ⁇ N limit value pairs. Next, for each limit value pair, a random number is generated to randomly determine the lower limit value included in the limit value pair. Next, random numbers are generated to randomly determine an upper limit value that is greater than the lower limit value. The lower limit value and the upper limit value are determined for all limit value pairs. The determined lower limit value and upper limit value are stored in the distribution table. In this way, the distribution table 410 is generated. Each lower limit value and each upper limit value are determined so that the norm of the vector in the distribution is L or less.
  • the distribution generation unit 301 generates the distribution table 450 as follows.
  • the distribution generation unit 301 reads the parameter N and the parameter L from the system parameter storage unit 306, generates random numbers, and determines the number of partial tables included in the distribution table 450. As an example, assume that “3” is generated as a random number. In this case, three partial tables are generated so that each partial table has an area for storing 2 ⁇ N limit value pairs. Next, three occurrence probabilities (each occurrence probability is larger than “0” and smaller than “1”) are randomly determined. Here, the total of the three occurrence probabilities is set to “1”.
  • each partial table similarly to the distribution table 410 described above, the lower limit value and the upper limit value included in each limit value pair are determined and stored in each partial table.
  • the key generation unit 302 reads the parameter N, the parameter q, the parameter df, dg, and the parameter L from the system parameter storage unit 306 and, as described above, uses the improved NTRUSign signature method key generation processing method to generate the secret key ⁇ (f , G), (F, G) ⁇ and a public key h. In addition, the key generation unit 302 receives the distribution ⁇ from the distribution generation unit 301. Next, the key generation unit 302 outputs the secret key ⁇ (f, g), (F, G) ⁇ , the public key h, and the distribution ⁇ to the key setting unit 305. Also, the public key h is output to the certificate generation unit 303.
  • the certificate generation unit 303 reads the certificate generation key KCS from the certificate generation key storage unit 304, receives the public key h from the key generation unit 302, and uses the read certificate generation key KCS to certify the public key h
  • a document CP is generated.
  • the certificate CP includes a public key h and signature data SP using the certificate generation key KCS of the public key h.
  • the signature data SP is generated using the same signature generation method as the signature generation method by the signature generation unit 104 of the signature generation apparatus 100.
  • the key setting unit 305 writes the secret key ⁇ (f, g), (F, G) ⁇ and the distribution ⁇ that is the secret key into the secret key storage unit 102 of the signature generation device 100. Also, the certificate CP is written into the public key certificate storage unit 103 of the signature generation apparatus 100. 3. Operation of Digital Signature System 10 (1) Outline Operation of Digital Signature System 10 The outline operation of the digital signature system 10 will be described with reference to the flowchart shown in FIG.
  • the signature generation apparatus 100 generates signature data (step S101), generates a signature data set SS (step S102), and transmits the generated signature data set SS to the signature verification apparatus 200 via the communication path 20 (step S102). Step S103).
  • the receiving unit 201 of the signature verification apparatus 200 receives the signature data set SS transmitted from the signature generation apparatus 100 via the communication path 20, and stores the received signature data set SS in the signature data set storage unit 203 ( Step S201).
  • the signature verification unit 204 determines whether the signature data SP is the correct signature of the public key h with respect to the public key h and the signature data SP included in the certificate CP in the signature data set SS. Verification is performed using the public key KCP of the key generation apparatus 300 stored in 202 (step S202). If the signature data SP is not correct (step S203), NG is output (step S107) and the process ends.
  • the signature verification unit 204 determines whether the signature data SD is the correct signature of the message data m with respect to the message data m and the signature data SD in the signature data set SS. Verification is performed using the public key h (step S204). If the signature data SD is not correct (step S205), NG is output (step S207) and the process ends. If the signature data SD is correct (step S205), OK is output (step S206) and the process ends.
  • the hash value calculation unit 111 calculates a hash value vector H for the message data m (step SG1).
  • (3) Operation of Signature Verification Unit 204 of Signature Verification Device 200 The operation of signature verification by the signature verification unit 204 of the signature verification device 200 will be described with reference to the flowchart shown in FIG.
  • step SV5 If it is larger than L ′ (No in step SV3), it is determined that the signature s is invalid, the signature s is rejected, and NG is output (step SV5).
  • the key generation device 300 sets the secret key ⁇ (f, g), (F, G) ⁇ , the distribution ⁇ , and the certificate CP in the signature generation device 100. The operation will be described below using the flowchart shown in FIG.
  • the key generation unit 302 of the key generation device 300 generates a secret key ⁇ (f, g), (F, G) ⁇ and a public key h (step S401), and the distribution generation unit 301 generates a distribution ⁇ (
  • the certificate generation unit 303 generates a certificate CP for the public key h using the certificate generation key KCS stored in the certificate generation key storage unit 304 (step S403), and the key setting unit 305 stores the private key ⁇ (f, g), (F, G) ⁇ , the distribution ⁇ , and the certificate CP in the private key storage unit 102 and the public key certificate storage unit 103 of the signature generation apparatus 100 ( Step S404). 4).
  • the converted hash value vector H ′ having the signature vector S as the nearest lattice vector is concealed. Not sent to. Therefore, if an attacker intercepts the communication path when sending to the verifier, or if the verifier itself is an attacker, even if the attacker tries to perform a transcription attack, the vector and its nearest neighbor Since it is impossible to know the distribution of the difference from the vector of the lattice, the transcription attack becomes difficult.
  • the transcription attack utilizes the fact that the difference between each signature vector and the hash value is a uniform distribution excluding the relevance of the secret key. After that, collect multiple signature data and use the information on the distribution of the difference (distribution range and occurrence probability) to extract only the part of the secret key by statistically removing the part of the uniform distribution. is doing. Even when this transcription attack is developed and an attack using the distribution of the difference between the signature vector and the hash value vector is performed, the distribution range is secret and the condition that the distribution range is known cannot be satisfied. For this reason, an attack whose distribution is predicted cannot be performed, and such an attack becomes difficult. In the following, this will be described in a little more detail.
  • the signature vector is a vector of lattice points nearest to the converted hash value vector obtained by converting the hash value vector using the distribution ⁇ .
  • the distribution range of the distribution ⁇ is secret, the attacker does not know the distribution range of the difference between the signature vector and the hash value vector. Therefore, the above attack becomes difficult.
  • the present invention provides a digital signature system based on the NTRUSign signature scheme, which can prevent the above-described transcription attack and is based on the security of the lattice problem. Objective.
  • One aspect of the present invention is a signature generation apparatus that generates signature data for message data using a signature scheme, wherein the signature scheme uses a lattice nearest neighbor problem that is a set of vectors as a security base.
  • a secret key including information for constructing a secret key basis vector which is a basis vector of a secret lattice, and a public key basis vector which is a public basis vector expressing the same lattice as the secret key basis vector
  • a key generation step of generating a public key including information for performing, a signature generation step of generating the signature data consisting of one or more elements of the lattice for the message data using the secret key, and the public key Verifying the signature data using a signature verification step, wherein the signature generation device is used before generating the signature data.
  • a secret key storage unit that stores a secret key; and a signature generation unit that generates the signature data that is an element of the lattice for the message data, using the secret key stored in the secret key storage unit,
  • the secret key includes a predetermined vector distribution, and the signature generation unit generates vector data based on the distribution, and generates converted message data by converting the message data based on the vector.
  • a message conversion unit; and a signature generation unit configured to generate the signature data by using the converted message data as the message data.
  • the distribution may not be uniform.
  • the range of the distribution may be secret.
  • the range of the distribution is divided into a plurality of regions, the selection probability of each region is determined in advance, and the vector generation unit selects the region based on the selection probability, and based on the selected region A vector may be generated.
  • the vector generation unit generates a vector selected at random based on the distribution
  • the message conversion unit may generate the converted message data by adding the vector to the message data. Good.
  • the vector generation means may generate a vector by randomly selecting from a plurality of vectors selected in advance based on the distribution.
  • the distribution may be included in a hypersphere having a predetermined distance L.
  • the public key includes a distance L ′ related to the distance L
  • the signature generation unit stores the converted message data when the distance between the message data and the signature data is not within L ′. It may be recalculated.
  • the public key may include the distance L ′.
  • the distance L ′ may be a system parameter of the signature scheme.
  • the secret key basis vector is obtained by adding an element f of the ring R to a ring R and a positive integer q, which are sets of N-dimensional arrays in which norms indicating addition, subtraction, multiplication, and the original magnitude are defined.
  • the public key basis vector may be obtained from an element h that is congruent with the product of the positive integer q and the element g and the element Fq and mod q.
  • the secret key storage unit may take measures against a tamper attack.
  • a signature verification apparatus that verifies signature data for message data by using a signature scheme, and the signature scheme secures a nearest neighbor problem of a lattice that is a set of vectors.
  • a secret key including information for constructing a secret key basis vector, which is a basis vector of a secret lattice, and a public key that is a public basis vector expressing the same lattice as the secret key basis vector
  • a public key storage unit that stores the public key to be used, and a signature verification unit that verifies the signature data that is an element of the lattice for the message data, using the public key stored in the public key storage unit;
  • the secret key includes a distribution of a pre
  • an authentication data generation device that generates authentication data that is response data to challenge data using a signature method, wherein the signature method uses a lattice nearest neighbor problem that is a set of vectors as a security base.
  • a secret key including information for constructing a secret key basis vector which is a basis vector of a secret lattice, and a public key basis vector which is a public basis vector expressing the same lattice as the secret key basis vector
  • a key generation step of generating a public key including information for performing, a signature generation step of generating the signature data consisting of one or more elements of the lattice for the message data using the secret key, and the public key And verifying the signature data using the authentication data generating device, wherein the authentication data generating device generates the authentication data.
  • a secret key storage unit that stores the secret key used for the authentication, and an authentication data generation unit that generates the authentication data for the challenge data using the secret key stored in the secret key storage unit.
  • the secret key includes a distribution of a predetermined vector, and the authentication data generation unit generates vector data based on the distribution, and message data that generates the message data that is a hash value for the challenge data.
  • Generating means message converting means for converting the message data based on the vector to generate conversion challenge data, and generating the signature data as the authentication data when the converted message data is used as the message data Authentication data generation means.
  • Another aspect of the present invention is a signature generation method for generating signature data for message data using a signature scheme based on a security nearest neighbor problem of a lattice that is a set of vectors,
  • a secret key including information for constructing a secret key basis vector that is a basis vector of a secret lattice, and a public key basis vector that is a public basis vector expressing the same lattice as the secret key basis vector
  • a key generation step of generating a public key including the information of the signature a signature generation step of generating the signature data consisting of one or more elements of the lattice for the message data using the secret key, and using the public key
  • the distribution may not be uniform.
  • the range of the distribution may be secret.
  • the distribution range is divided into a plurality of regions, and the selection probability of each region is determined in advance, and the signature generation step selects the region based on the selection probability, and based on the selected region
  • the generated vector may be used.
  • the converted message data may be generated by adding a vector randomly selected based on the distribution to the message data.
  • the distribution may be included in a hypersphere having a predetermined distance L.
  • a program that is executed by a signature generation device that generates signature data for message data, using a signature scheme based on the nearest neighbor problem of a lattice that is a set of vectors.
  • a secret key including information for constructing a secret key basis vector which is a basis vector of a secret lattice, and a public key basis vector which is a public basis vector expressing the same lattice as the secret key basis vector
  • a signature verification step of verifying the signature data using a public key, and executing the signature generation apparatus, and the secret key is a predetermined vector
  • the signature generation step includes converting the message data, which is obtained by converting the message data using a vector based on the distribution, to the signature data that is an element of the lattice using the secret key basis vector.
  • the program may be recorded on a recording medium.
  • Another aspect of the present invention is an integrated circuit of a signature generation apparatus that generates signature data for message data using a signature scheme, and the signature scheme is the nearest neighbor of a lattice that is a set of vectors.
  • the problem is based on security, a secret key including information for constructing a secret key basis vector that is a basis vector of a secret lattice, and a public basis vector expressing the same lattice as the secret key basis vector.
  • a key generation step of generating a public key including information for constructing a certain public key basis vector, and a signature for generating the signature data composed of one or more elements of the lattice for the message data using the secret key A signature verification step of verifying the signature data using the public key, wherein the signature generation device generates the signature data A signature that generates the signature data that is the source of the grid for the message data, using the secret key storage unit that stores the secret key used for the purpose and the secret key stored in the secret key storage unit A generation unit, wherein the secret key includes a distribution of a predetermined vector, the signature generation unit converts the message data based on the vector, vector generation means for generating a vector based on the distribution Message conversion means for generating conversion message data; and signature generation means for generating the signature data using the conversion message data as the message data.
  • a digital signature system including a signature generation apparatus that generates signature data for message data and a signature verification apparatus that verifies the signature data using a signature scheme
  • the method uses the nearest neighbor problem of a lattice that is a set of vectors as a security base, and includes a secret key including information for constructing a secret key basis vector that is a basis vector of a secret lattice, and the secret key basis vector Generating a public key including information for constructing a public key basis vector, which is a public basis vector representing the same lattice as, and one or more of the message data for the message data using the secret key
  • a signature generation step for generating the signature data comprising a lattice element, and a signature verification step for verifying the signature data using the public key.
  • the signature generation apparatus uses the secret key stored in the secret key storage unit to store the secret key used to generate the signature data, and the secret key stored in the secret key storage unit.
  • a signature generation unit that generates the signature data that is an element of the lattice for message data, and the signature verification device includes a public key storage unit that stores the public key used to verify the signature data;
  • the signature generation unit includes vector generation means for generating a vector based on the distribution, and converts the message data based on the vector to convert the converted message data.
  • a message conversion unit configured to generate the signature data using the converted message data as the message data, and the signature verification unit determines a distance between the message data and the signature data. It is characterized by that. 6).
  • the embodiment described above is an example of the implementation of the present invention, and the present invention is not limited to this embodiment, and can be implemented in various modes without departing from the scope of the present invention. Is.
  • the present invention includes the following cases. (1) In the digital signature system 10 according to the first embodiment, a random vector is selected based on a distribution. However, a vector based on a distribution is obtained in advance and stored, and the stored vector is used. Also good.
  • a plurality of vectors based on a plurality of distributions may be obtained and stored in advance, and one vector may be selected from the plurality of stored vectors.
  • the vector V is added to generate the converted hash value vector, but the present invention is not limited to this.
  • the converted hash value vector may be generated by adding the vectors V multiplied by n (n is an integer other than 0).
  • the vector V may be subtracted to generate a converted hash value.
  • L and L ′ are about the same as the normbound of the conventional NTRUSign signature scheme, but it may be smaller than the normbound.
  • L ′ may be any value as long as the distance between most hash value vectors and correctly generated signature vectors falls within that value.
  • the distance L is disclosed as a system parameter, but it may be different for each user who generates a signature. In that case, L ′ may be included in the public key to notify the user who verifies the signature. The distance L may be kept secret.
  • distributions 400 and 432 shown in FIG. 2 and FIG. 4 are used as the distribution ⁇ , but the present invention is not limited to this.
  • an element of a certain dimension may be limited to a predetermined range (for example, 2 to 5).
  • (f, g) and (F, G) in the secret key are obtained from the lattice basis vector (secret key basis vector), h in the public key and q as the system parameter (1, h), (0, q) are lattice basis vectors (public key basis vectors), the lattice points obtained from the respective basis vectors are the same. It is called a signature scheme based on it.
  • the improved NTRUSign signature scheme also has similar secret key basis vectors and public key basis vectors.
  • the improved NTRUSign signature scheme based on the NTRUSign signature scheme is used as the signature scheme, but the present invention is not limited to this.
  • the transcription attack can also be applied to a signature scheme based on other lattice problems, for example, a GGH signature scheme.
  • a signature method a signature method based on a lattice problem to which a transcription attack can be applied, for example, a GGH signature method may be used.
  • the GGH signature method is described in detail in Non-Patent Document 6. It may be based on a signature scheme in which the nearest neighbor problem of another lattice is based on the security of the signature. (7) Another example of the distribution table having the data structure of the distribution ⁇ will be described.
  • distribution information i includes a lower limit value C_i_min, an upper limit value C_i_max, a polynomial Base1_i, and a polynomial Base2_i.
  • C_3 that is equal to or higher than the lower limit C_3_min and equal to or lower than the upper limit C_3_max is uniformly selected.
  • V1_max c_1_max ⁇ Base1_1 + c_2_min ⁇ Base1_2 + c_3_max ⁇ Base1_3
  • V2_max c_1_max ⁇ Base2_1 + c_2_min ⁇ Base2_2 + c_3_max ⁇ Base2_3
  • its norm is 194.9 ⁇ 200.
  • the number may be two or four or more.
  • the number of polynomials is three for each of Base1_i and Base2_i. It may be more than one.
  • Still another example of the distribution table having the data structure of the distribution ⁇ will be described.
  • the distribution information i includes first sub-distribution information and second sub-distribution information.
  • the distribution information includes a lower limit value C_1_i_min, an upper limit value C_1_i_max, and a polynomial Base1_i.
  • the second sub-distribution information includes a lower limit value C_2_i_min, an upper limit value C_2_i_max, and a polynomial Base2_i.
  • C_1_1 that is not less than the lower limit C_1_1_min and not more than the upper limit C_1_1_max is uniformly selected
  • C_2_1 that is not less than the lower limit C_2_1_min and not more than the upper limit C_2_1_max is uniformly selected
  • C_1_2 that is not less than the lower limit C_1_2_min and not more than the upper limit C_1_2_max is randomly selected, and C_2_2 that is not less than the lower limit C_2_2_min and not more than the upper limit C_2_2_max is uniformly selected To do.
  • C_1_3 that is not less than the lower limit C_1_3_min and not more than the upper limit C_1_3_max is uniformly selected
  • C_2_3 that is not less than the lower limit C_2_3_min and is not more than the upper limit C_2_3_max is uniformly selected To do.
  • V1 C_1_1 * Base1_1 + C_1_2 * Base1_2 + C_1_1 * 3 * Base1_3 is calculated
  • V1_max c_1_1_max ⁇ Base1_1 + c_1_2_max ⁇ Base1_2 + c_1_3_max ⁇ Base1_3
  • V2_max c_2_1_max ⁇ Base2_1 + c_2_2_min ⁇ Base2_2 + c_2_3_min ⁇ Base2_3
  • its norm is 199.1 ⁇ 200.
  • c_1_i and c_2_i are selected (generated) uniformly and randomly between min and max, but this is not restrictive. For example, it may be selected randomly according to a Gaussian distribution. In that case, an average value and a variance are determined in advance and are generated according to a Gaussian distribution.
  • Authentication is verification that message data has been sent by a person who is self-proclaimed and that the message data has not been tampered with. Further, the embodiment and the modification are applied in the identification. The proof of identity is, for example, a proof that the user has an access right to data, an access right to a facility (room entry right), or a proof that he is as claimed. Furthermore, the embodiment and the modification are applied in non-repudiation prevention. Non-repudiation refers to, for example, combating a person who claims that he has agreed to something but has not agreed. (11) Each of the above devices is specifically a computer system including a microprocessor, ROM, RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is stored in the RAM or hard disk unit. Each device achieves its functions by the microprocessor operating according to the computer program.
  • the computer program is configured by combining a plurality of instruction codes indicating instructions for the computer in order to achieve a predetermined function.
  • the system LSI is an ultra-multifunctional LSI manufactured by integrating a plurality of components on a single chip, and specifically, a computer system including a microprocessor, ROM, RAM, and the like. .
  • a computer program is stored in the RAM.
  • the system LSI achieves its functions by the microprocessor operating according to the computer program.
  • each of the above devices may be constituted by an IC card that can be attached to and detached from each device or a single module.
  • 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 super multifunctional LSI described above.
  • the IC card or the module achieves its function by the microprocessor operating according to the computer program. This IC card or this module may have tamper resistance.
  • 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-readable recording medium such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blu-ray Disc). ), Recorded in a semiconductor memory or the like.
  • the digital signal may be recorded on these recording media.
  • the computer program or the digital signal may be transmitted via an electric communication line, a wireless or wired communication line, a network represented by the Internet, a data broadcast, or the like.
  • the present invention may be a computer system including a microprocessor and a memory, the memory storing the computer program, and the microprocessor operating according to the computer program.
  • the program or the digital signal is recorded on the recording medium and transferred, or the program or the digital signal is transferred via the network or the like, and executed by another independent computer system. It is good. (12) The above embodiment and the above modifications may be combined.
  • Each device that constitutes the present invention is used in various industrial fields that require processing such as authentication, identification, and prevention of repudiation when performing processing such as authentication, identification, and prevention of repudiation.
  • it can be used and manufactured continuously and repeatedly.

Landscapes

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

Abstract

 NTRUSign方式において、複数の署名文(メッセージデータと署名の対)を解析することにより秘密鍵を求める転写攻撃(tanscript attack)に対抗することができる署名生成装置及び署名検証装置を提供する。署名生成装置は、メッセージデータのハッシュ値ベクトルHを算出し、メッセージデータのハッシュ値ベクトルHに、秘密の分布に基づくベクトルを加算して、変換ハッシュ値ベクトルH’を算出し、秘密鍵基底ベクトルにより定まる格子において、変換ハッシュ値ベクトルH’に最近接する格子点を求めて、署名ベクトルSとする。署名検証装置は、メッセージデータのハッシュ値ベクトルHと署名ベクトルSとの距離がL’以内か判断し、L’以内のとき、メッセージデータを正当と認める。

Description

署名及び検証方法、署名生成装置並びに署名検証装置
 本発明は、情報セキュリティ技術としての暗号技術に関し、特に、デジタル署名及びその検証に関する。
 送信装置から受信装置へデータを送信する際に、送信者を特定し、またデータの改ざんを検出又は防止するため、公開鍵暗号の一種であるデジタル署名方式が用いられる。
 ここで、デジタル署名方式とは、送信装置が、送信したいデータに対し、送信装置の私有鍵(秘密鍵)を用いて署名データを作成し、送信したいデータと共に署名データを受信装置へ送信し、受信装置は、送信装置の公開鍵を用いて署名データを検証し、改ざんされているか否かを判定する方法である。(例えば、非特許文献1参照)。ここで、公開鍵から私有鍵の値を計算することは困難であるので、不正者が送信装置になりすまして、偽造した署名データを作成することはできない。
 このような公開鍵暗号システムとしては、比較的短く容易に作成される鍵を比較的高速の暗号化プロセスおよび復号プロセスと組み合わせることが望ましく、特許文献1は、鍵長が他の一般的な公開鍵暗号システムの鍵長に匹敵する鍵を、ベクトルの大きな集合からほぼ無作為に選択することを可能にし、適切なセキュリティ・レベルを備える公開鍵暗号システムを開示している。
 また、高速処理が可能な公開鍵暗号として、NTRU(エヌティーアールユー・クリプトシステムズ・インコーポレーテッドの登録商標)暗号が提案されている(例えば、非特許文献2参照)。このNTRU暗号は、ある法の下でべき乗剰余演算を行うRSA暗号や楕円曲線上の点のスカラ倍演算を行う楕円曲線暗号に比べ、高速な演算が可能な多項式演算を用いて暗号化と復号化を行うので、従来の公開鍵暗号よりも高速に処理することが可能で、ソフトウェアによる処理によっても、実用的な時間で処理可能である。従って、公開鍵暗号にNTRU暗号を用いた暗号通信システムでは、従来の公開鍵暗号を用いた暗号通信システムよりも、送信装置及び受信装置の処理が高速に行えるという利点がある。
 なお、NTRU暗号は高速処理が可能であるだけでなく、その安全性のベースとなる計算量的に困難な問題も、RSA暗号や楕円曲線暗号とは異なる。RSA暗号は、素因数分解問題を安全性のベースにしており、楕円曲線暗号は、楕円曲線上の離散対数問題を安全性のベースにしている。一方、NTRU暗号は、格子と呼ばれるベクトルの集合に対する最小ベクトル問題または最近傍問題を安全性のベースにしている。
 上記で提案されたNTRU暗号は、データを秘密にするために、データを暗号化する守秘暗号方式であるが、その後、NTRU暗号のデジタル署名方式が提案されている(非特許文献3参照)。このデジタル署名方式については解読法の出現などで、方式が幾度か変更された。以下では、NTRUSignと呼ばれるデジタル署名方式について簡単に説明する(詳細については、特許文献2及び非特許文献4参照)。
<NTRUSign署名方式>
(1)NTRUSign署名方式のシステムパラメタ
 NTRUSign署名方式では、非負整数のパラメタであるN,q,df,dg,Normboundが存在する。以下に、これらのパラメタの意味を説明する。
 (i)パラメタN
 NTRUSign署名方式は、多項式の演算により署名生成及び署名検証を行うデジタル署名方式である。パラメタNは、NTRUSign署名方式で扱う多項式の次数を決める。
 NTRUSign署名方式で扱う多項式は、パラメタNに対し、N-1次以下の整数係数多項式である。N=5のとき、例えば、多項式X^4+X^3+1である。なお、本明細書において、「X^a」は、Xのa乗を意味することとする。また、NTRUSign署名方式において用いられる公開鍵h及び署名sは、いずれも、N-1次以下の多項式として表現される。また、秘密鍵は、4つのN-1次以下の多項式対(f,g,F,G)である。すなわち、f,g,F,Gは、いずれもN-1次以下の多項式である。なお、以下では、4つ組(f,g,F,G)を2つの対(f,g),(F,G)のさらなる対と捉えて、{(f,g),(F,G)}と表記する場合もある。
 次に、NTRUSign署名方式における多項式演算では、パラメタNに対し、X^N=1という関係式を用いて、演算結果が常にN-1次以下の多項式になるように演算される。例えば、N=5の場合、多項式X^4+X^2+1と多項式X^3+Xの積は、多項式と多項式の積を「×」、整数と多項式の積(あるいは整数と整数の積)を「・」を用いて表現すると、X^5=1という関係があるので、
  (X^4+X^2+1)×(X^3+X)
   =X^7+2・X^5+2・X^3+X
   =X^2・1+2・1+2・X^3+X
   =2・X^3+X^2+X+2
のように、常にN-1次以下の多項式になるように演算される。
 なお、NTRUSign署名方式では、N-1次の多項式a=a_0+a_1・X+a_2・X^2+…+a_(N-1)・X^(N-1)を、ベクトル(a_0,a_1,a_2,…,a_(N-1))と同一視して表現する。ここで、a_0,a_1,a_2,…,a_(N-1)は、それぞれ、多項式aの係数であり、整数である。
 (ii)パラメタq
 NTRUSign署名方式では、値「2」以上の整数であるパラメタqを用いる。NTRUSign署名方式で出現する多項式の係数については、qを法とした剰余を取るように演算する。
 (iii)パラメタdf,dg
 NTRUSign署名方式で扱う秘密鍵の一部である多項式f及び多項式gの選び方は、それぞれパラメタdf,dgにより決まる。ここで、多項式gは、公開鍵である多項式hを生成するときに、多項式fと共に用いられる。
 多項式fについては、そのN個の係数のうち、df個の係数がそれぞれ値「1」であり、かつ他の係数がそれぞれ値「0」となるように選ばれる。すなわち、多項式fは、N-1次以下の多項式であり、0次(定数項)からN-1次まで、N個の係数を有する。このN個の係数のうち、df個の係数が値「1」であり、かつ(N-df)個の係数が値「0」となるように選ばれる。
 同様に、多項式gは、N-1次以下の多項式であり、多項式gについては、そのN個の係数のうち、dg個の係数がそれぞれ値「1」であり、かつ他の係数がそれぞれ値「0」となるように選ばれる。
 (iv)パラメタNormbound
 NTRUSign署名方式では、後述するが、「署名sから作られる2・N次元のベクトル」と「メッセージデータに対するハッシュ値である2・N次元のベクトル」との距離を計算し、計算された距離により、正しい署名であるかを判定する。Normboundは、この判定の際に使用されるしきい値である。すなわち、計算された距離がNormbound未満(距離<Normbound)であれば、正しい署名として受理する。一方、計算された距離がNormbound以上(距離≧Normbound)であれば、正しくない署名とし拒否する。
 非特許文献4には、NTRUSign署名方式のパラメタの例として、(N,q,df,dg,Normbound)=(251,128,73,71,310)が挙げられている。
(2)メッセージデータのハッシュ値、ノルム及びベクトル間の距離
 NTRUSign署名方式では、メッセージデータのハッシュ値に対する署名を作成する。メッセージデータのハッシュ値は、N次の多項式の対であり、2・N次元のベクトルとして表現される。メッセージデータからハッシュ値を求めるハッシュ関数については、非特許文献1に詳しく説明されている。
 NTRUSign署名方式では、署名検証にベクトルの距離を用いる。以下にその定義を示す。
 多項式a=a_0+a_1・X+a_2・X^2+…+a_(N-1)・X^(N-1)のノルム||a||を以下のように定義する。
 ||a||=sqrt((a_0-μ)^2+(a_1-μ)^2+…+(a_(N-1)-μ)^2)
 μ=(1/N)・(a_0+a_1+a_2+…+a_(N-1))
 ここで、sqrt(x)はxの平方根を示す。
 また、多項式a,bの対(a,b)のノルム||(a,b)||を以下のように定義する。
 ||(a,b)||=sqrt(||a||^2+||b||^2)
 多項式a,bの対(a,b)とc,dの対(c,d)との距離は、||(c-a,d-b)||で定義される。
(3)NTRUSign署名方式の鍵生成
 NTRUSign署名方式では、上述したように、パラメタdf,dgを用いてランダムに多項式f,多項式gを生成する。そして非特許文献4に記載の通り、Fq×f=1(mod q)となる多項式Fqを用いて、
   h=Fq×g(mod q)
により、多項式hを生成する。さらに、以下の式を満たすようなノルムが小さい多項式F,Gを求める。
 f×G-g×F=q
 ここで、{(f,g),(F,G)}は、秘密鍵であり、hは、公開鍵である。秘密鍵は、署名を生成するための鍵であり、署名生成鍵とも呼ばれる。また、公開鍵は、署名を検証するための鍵であり、署名検証鍵とも呼ばれる。
 ここで、x=y(mod q)においては、次のような演算を行う。つまり、i(i=0、1、2、・・・、N-1)について、多項式yの第i次の係数を、剰余が0からq-1の範囲に収まるように、法qで割り、剰余を求め、求められた剰余を、多項式xの第i次の係数とする。すなわち、多項式yの各係数を、0から(q-1)の範囲に収まるようにmod q演算し、得られた多項式を、多項式xとする。
(4)NTRUSign署名方式の署名生成
 NTRUSign署名方式の署名生成においては、送信すべきメッセージデータのハッシュ値ベクトルを算出し、その最近傍格子点を署名ベクトルとする。Lsec座標系での係数を整数に丸めることにより、容易に最近傍格子点が得られる。
 以下に、NTRUSign署名方式の署名生成の詳細について説明する。
 NTRUSign署名方式の署名生成では、以下に示すようにして、署名対象であるメッセージデータmの署名sを計算する。
 まず、メッセージデータmに対するハッシュ値である2・N次元のベクトル(m1,m2)(m1及びm2は、それぞれ、N次多項式)を計算する。
 次に、この2・N次元のベクトル(m1,m2)と秘密鍵{(f,g),(F,G)}とを用いて、以下の式を満たす多項式a,b,A,Bを計算する。
 G×m1-F×m2=A+q×B
 -g×m1+f×m2=a+q×b
 ここで、A,aの係数は、〈-q/2〉+1から〈q/2〉の範囲に収まるように法qで割ったときの剰余である。すなわち、法qで割ったときの剰余が〈q/2〉からq-1である場合は、qだけ減算して、上記範囲に収まるよう調整する。ここで、〈x〉は、x以下の数の中で最も大きい数を示す。例えば、〈-1/2〉=-1である。
 次に、以下の式より、s,tを計算し、sを署名として出力する。
 s=f×B+F×b (mod q)
 t=g×B+G×b (mod q)
(5)NTRUSign署名方式の署名検証
 NTRUSign署名方式の署名検証では、以下に示すようにして、署名sが署名対象であるメッセージデータmに対して正しいかどうかを検証する。
 まず、メッセージデータmに対するハッシュ値である2・N次元のベクトル(m1,m2)を計算する。
 次に、公開鍵hを用いて、以下の式より、多項式tを計算する。
 t=s×h (mod q)
 さらに、2・N次元ベクトル(s,t)と2・N次元ベクトル(m1,m2)との距離を求め、Normbound未満であるかをチェックする。Normbound未満であれば、署名sは正しいと判定して署名sを受理する。Normbound以上であれば、署名sは不正と判定して署名sを拒否する。
 このように、NTRUSign署名方式の署名検証では、署名ベクトルがハッシュ値ベクトルに十分近ければ、正しい署名と決定する。
<安全性のベースとしての格子の問題>
 NTRUSign署名方式は、格子の問題を安全性のベースとしている。以下では、それについて説明する。
 NTRUSign署名方式では、秘密鍵{(f,g),(F,G)}から得られる
   (f×α,g×α)+(F×β,G×β)
の2・N次元ベクトル全体を格子(格子Lsec)として捉える。ここで、α,βは任意の多項式である。そのとき、秘密鍵における(f,g),(F,G)を格子の基底(ベクトル)と呼ぶ。図20(a)には、この2・N次元ベクトル全体を格子(格子Lsec)として捉える場合におけるLsec座標系を図示している。
 一方、公開鍵hと「1」とからなる(1,h),「0」とqとからなる(0,q)を基底としたときの
   (1×α’,h×α’)+(0,q×β’)
の2・N次元ベクトル全体も格子(格子Lpub)として捉える。ここで、α’,β’は任意の多項式である。図20(b)には、この2・N次元ベクトル全体を格子(格子Lpub)として捉える場合におけるLpub座標系を図示している。
 署名検証では、署名ベクトルである2・N次元ベクトル(s,t)822と、メッセージデータから得られたハッシュ値ベクトルである2・N次元ベクトル(m1,m2)821との距離を求め、Normbound未満であるかをチェックしている。言い換えると、図20(b)に示すように、2・N次元ベクトル(s,t)822を中心とする半径Normboundの超球823内に、2・N次元ベクトル(m1,m2)821が存在しているかどうかをチェックしている。超球823内に存在する場合には、署名検証に成功したと決定する。超球823内に存在しない場合には、署名検証に失敗したと決定する。
 ここで、格子Lsecと格子Lpubは、同じベクトル全体を示している。しかし、格子Lsecを構成するための基底ベクトル(秘密鍵基底ベクトルと呼ぶ)のノルムは、格子Lpubを構成するための基底ベクトル(公開鍵基底ベクトルと呼ぶ)のノルムより、非常に小さい。一般に大きいノルムを持つ基底ベクトルから、最も小さいノルムを持つ基底ベクトルを求める問題(最小基底ベクトル問題と呼ぶ)は、困難である。したがって、公開鍵基底ベクトルから秘密鍵基底ベクトルを求めることも困難であり、これが鍵に対する安全性のベースとなる。このようなベースにより、秘密鍵から公開鍵を取得することは、困難であると考えられている。
 図20(a)に示すように、NTRUSign署名方式の署名生成において、メッセージデータのハッシュ値ベクトル801 H(m)=(m1,m2)に近い格子点のベクトル(最近傍格子点)を、署名ベクトル800(s,t)としている。このとき、秘密鍵基底802(f,g)及び秘密鍵基底803(F,G)を用いて、その基底に射影して距離が近いものを計算することで、最も近い格子点のベクトルを求めている。
 このように、NTRUSign署名方式では、署名ベクトル(s,t)は、メッセージデータのハッシュ値ベクトル(m1,m2)に最も近い格子点のベクトルとなっている。
 一方、図20(b)に示すように、Lpub座標系の公開鍵基底ベクトル812(1,h),公開鍵基底ベクトル811(0,q)では、基底ベクトルのノルムが大きすぎるため、距離が近いものを計算することが困難になる。
 一般に、距離が最も近い格子ベクトルを計算する問題を、格子の最近傍問題と呼び、NTRUSign署名方式の署名に対する安全性は、この格子の最近傍問題をベースとしている。
 この他に、NTRUSign署名方式のように、鍵に対しては格子の最小基底ベクトル問題、署名に対しては格子の最近傍問題を安全性のベースとする署名方式として、GGH署名方式が知られている(非特許文献6参照)。
特表2000-516733、“公開鍵暗号システム方法および装置” WO2003050998、“Signing and verifying digital document using NTRU or convolution modular lattic vector crypotgraphic system” 岡本龍明、山本博資、「現代暗号」、産業図書(1997年) 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. J.Hoffstein, J.Pipher and J.Silverman, "NSS: An NTRU Lattice-Based Signature Scheme," Advances in Cryptoplogy-Eurocrypt ’01, LNCS, Vol.2045, pp.123-137, Springer-Verlag, 2001 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-Verlag, 2003 "Efficient Embedded Security Standards (EESS) EESS #1: Implementation Aspects of NTRUEncrypt and NTRUSign", Ver2.0, June 20th, 2003 O.Goldreich, S.Goldwasser and S.Halevi "Public-key cryptography from lattice reduction problems," In Proc. CRYPTO ’97, LNCS, Vol.1294, pp.112-131, Springer-Verlag, 1997
 上述したNTRUSign署名方式に対しては、転写攻撃(Transcript attack)と呼ばれる攻撃がある。転写攻撃は、複数の署名文(メッセージデータと署名の対)から秘密鍵を求める攻撃である。以下に、転写攻撃について、簡単に説明する(詳細は、非特許文献4を参照)。
 転写攻撃は、複数の署名sと、メッセージデータのハッシュ値(m1,m2)の一部m1との差分m1-sが
  m1-s=e1×f+e2×F
(ここで、e1,e2は、それぞれ、その係数が-1/2から1/2の範囲に入る多項式である)
となることを利用しており、差分m1-sの2次モーメント及び4次モーメントの平均値を算出することにより、秘密鍵の一部であるf,Fを求める。
 ここで、多項式aの2次モーメントa~2とは、
 a=a_0+a_1・X+a_2・X^2+…+a_(N-2)・X^(N-2)+a_(N-1)・X^(N-1)と
 aの相反a*=a_0+a_(N-1)・X+a_(N-2)・X^2+…+a_2・X^(N-2)+a_1・X^(N-1)と
 の積a~2=a×a*である。
 また、4次モーメントa~4は、a~2の2乗、すなわち、a~4=a~2×a~2である。
 (m1-sの2次モーメント)=(e1×f+e2×F)×(e1*×f*+e2*×F*)=e1~×f~+e2~×F~+e1×f×e2*×F*+e2×F×e1*×f* 
 署名文の個数が増大すると、m1-sの2次モーメントの平均に含まれるe1~,e2~はある一定値k1,k2に収束し、上記の式のe1×f×e2*×F*とe2×F×e1*×f*は0に近づく。したがって、署名文の個数が大きい場合、m1-sの2次モーメントの平均は、k1×f~+k2×F~にほぼ等しくなる。さらに4次モーメントの平均でも、同様にf及びFに関連する情報を得られ、両方の情報からfを求めることが可能になる。
 非特許文献4によると、2次モーメント及び4次モーメントの平均から秘密鍵に関する情報が得られるために必要な署名文の個数はそれぞれ10^4、10^8である。したがって、NTRUSign署名方式の転写攻撃を成功させるためには、10^8個以上の署名文が必要と考えられている。なお、転写攻撃は、格子の問題を安全性のベースとする他の署名方式(例えば、GGH署名方式)でも同様に起こりうる。
 上記の問題を解決するために、本発明は、上述した転写攻撃に対抗することができる署名及び検証方法、署名生成装置、署名検証装置、署名生成方法、並びに、署名生成のためのコンピュータプログラムを記録している記録媒体を提供する。
 上記目的を達成するために、本発明の一実施態様である方法は、データを複数に分割して多次元のベクトルとして表わし、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠として、対象データに署名し、検証する方法であって、対象データを取得する取得ステップと、第1サイズより小さい秘密の攪乱ベクトルを用いて、取得した対象データを変換して、変換ベクトルを生成する変換ステップと、秘密鍵ベクトルを基底ベクトルとして定まる格子において、前記変換ベクトルに最近接する格子点を求めて前記変換ベクトルに対する署名ベクトルを生成し、前記署名ベクトルの一部を署名データとする署名ステップと、公開鍵ベクトルと前記署名データとを用いて、前記署名ベクトルを復元し、前記対象データによるベクトルと復元された前記署名ベクトルとの距離が、前記第1サイズより大きい第2サイズ以下であるか否かを検証する検証ステップと、第2サイズ以下であるとき、検証が成功したことを示す成功情報を出力する出力ステップとを含むことを特徴とする。
 この方法によると、転写攻撃をする者が、送信される対象データ及び署名データの対を収集して解析しても、署名データは、第1サイズより小さい秘密の攪乱ベクトルを用いて、前記対象データを変換して生成された変換ベクトルに対して生成されているので、転写攻撃をする者は、署名の際に用いた秘密鍵を求めることが計算量上困難であるという優れた効果を奏する。また、署名データの検証において、前記対象データによるベクトルと前記署名ベクトルとの距離が、前記第1サイズより大きい第2サイズ以下であるか否かを検証し、第2サイズ以下であるとき、検証が成功したとみなすので、署名データの検証を行うことができる。
 この署名及び検証方法によると、転写攻撃を防ぐことができ、その価値は大きい。
本発明に係る1個の実施の形態としてのデジタル署名システム10の構成を示すブロック図である。 一様な分布の一例を示す図である。 分布テーブル410のデータ構造を示す。 一様でない分布の一例を示す図である。 分布テーブル450のデータ構造を示す。 改良NTRUSign署名方式の署名生成処理を示す図である。 改良NTRUSign署名方式の署名検証処理を示す図である。 署名生成装置100の構成を示すブロック図である。 署名生成装置100が有する公開鍵証明書格納部103、秘密鍵格納部102及びシステムパラメタ格納部106に記録されているデータを示す。 署名生成部104の構成を示すブロック図である。 署名検証装置200の構成を示すブロック図である。 署名検証装置200が有するCA公開鍵格納部202、署名データセット格納部203及びシステムパラメタ格納部205に記録されているデータを示す。 署名検証部204の構成を示すブロック図である。 鍵生成装置300の構成を示すブロック図である。 鍵生成装置300が有する証明書生成鍵格納部304及びシステムパラメタ格納部306に記録されているデータを示す。 デジタル署名システム10の動作を示すフローチャートである。 署名生成装置100の動作を示すフローチャートである。 署名検証装置200における署名検証の動作を示すフローチャートである。 鍵生成装置1300の動作を示すフローチャートである。 従来のNTRUSign署名方式を示す図である。(a)は、2・N次元ベクトル全体を格子(格子Lsec)として捉える場合におけるLsec座標系を図示している。(b)は、2・N次元ベクトル全体を格子(格子Lpub)として捉える場合におけるLpub座標系を図示している。 分布テーブル610のデータ構造を示す。 分布テーブル650のデータ構造を示す。
符号の説明
  10     デジタル署名システム
  20     通信路
  100    署名生成装置
  200    署名検証装置
  300    鍵生成装置
  101    送信部
  102    秘密鍵格納部
  103    公開鍵証明書格納部
  104    署名生成部
  105    署名データセット生成部
  106    システムパラメタ格納部
  111    ハッシュ値計算部
  112    ベクトル生成部
  113    ハッシュ値変換部
  114    署名生成部
  115    署名確認部
  116    ベクトル群選択格納部
  201    受信部
  202    CA公開鍵格納部
  203    署名データセット格納部
  204    署名検証部
  205    システムパラメタ格納部
  211    ハッシュ値計算部
  212    署名ベクトル生成部
  213    距離判定部
  301    分布生成部
  302    鍵生成部
  303    証明書生成部
  304    証明書生成鍵格納部
  305    鍵設定部
  306    システムパラメタ格納部
 請求項1に記載の態様である方法は、データを複数に分割して多次元のベクトルとして表わし、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠として、対象データに署名し、検証する方法であって、対象データを取得する取得ステップと、第1サイズより小さい秘密の攪乱ベクトルを用いて、取得した対象データを変換して、変換ベクトルを生成する変換ステップと、秘密鍵ベクトルを基底ベクトルとして定まる格子において、前記変換ベクトルに最近接する格子点を求めて前記変換ベクトルに対する署名ベクトルを生成し、前記署名ベクトルの一部を署名データとする署名ステップと、公開鍵ベクトルと前記署名データとを用いて、前記署名ベクトルを復元し、前記対象データによるベクトルと復元された前記署名ベクトルとの距離が、前記第1サイズより大きい第2サイズ以下であるか否かを検証する検証ステップと、第2サイズ以下であるとき、検証が成功したことを示す成功情報を出力する出力ステップとを含むことを特徴とする。
 また、請求項2に記載の態様である署名生成装置は、データを複数に分割して多次元のベクトルとして表わし、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠として、対象データに対する署名データを生成する署名生成装置であって、対象データを取得する取得手段と、秘密鍵ベクトルを秘密に記憶している秘密記憶手段と、第1サイズより小さい秘密の攪乱ベクトルを用いて、取得した対象データを変換して、変換ベクトルを生成するデータ変換手段と、秘密鍵ベクトルを基底として定まる格子において、前記変換ベクトルに最近接する格子点を求めて前記変換ベクトルに対する署名ベクトルを生成し、前記署名ベクトルの一部を署名データとする署名生成手段と、前記対象データと生成した署名データとを出力する出力手段とを備えることを特徴とする。
 この構成によると、転写攻撃をする者が、送信される対象データ及び署名データの対を収集して解析しても、署名データは、第1サイズより小さい秘密の攪乱ベクトルを用いて、前記対象データを変換して生成された変換ベクトルに対して生成されているので、転写攻撃をする者は、署名の際に用いた秘密鍵を求めることが計算量上困難であるという優れた効果を奏する。
 また、請求項3に記載の態様である署名生成装置において、前記秘密記憶手段は、さらに、前記第1サイズより小さい複数の候補ベクトルが属する範囲を示す分布を記憶しており、前記データ変換手段は、前記分布により示される範囲に属する前記候補ベクトルから、1の候補ベクトルを選択して前記攪乱ベクトルとすることを特徴とする。
 この構成によると、署名生成の都度、複数の候補ベクトルから1の候補ベクトルが選択されて攪乱ベクトルとされるので、用いられる攪乱ベクトルの取り得る範囲が広がり、攻撃をする者に対して、秘密鍵を求めることをさらに困難にすることができる。
 また、請求項4に記載の態様である署名生成装置において、前記秘密記憶手段は、耐タンパ性を有し、前記秘密鍵及び前記分布は、外部から知られないように、秘密に保護されていることを特徴とする。
 この構成によると、選択される攪乱ベクトルが秘密に保持されているので、秘密鍵を求めることを困難にすることができる。
 また、請求項5に記載の態様である署名生成装置において、前記秘密記憶手段に記憶されている前記分布により示される範囲において、複数の候補ベクトルは、選択される確率が一様でないように、配置されており、前記データ変換手段は、前記確率に従って、1の前記候補データを選択して前記攪乱ベクトルとするを特徴とする。
 この構成によると、署名生成の都度、用いられる攪乱ベクトルの取り得る範囲が広がり、攻撃をする者に対して、秘密鍵を求めることをさらに困難にすることができる。
 また、請求項6に記載の態様である署名生成装置において、前記分布により示される範囲は、複数の領域を有し、各領域に対して当該領域の選択確率が予め定められ、前記複数の領域のそれぞれにおいて、複数の候補ベクトルが配置され、前記データ変換手段は、前記選択確率に基づいて1の領域を選択し、選択した前記領域から1の前記候補ベクトルを選択して前記攪乱ベクトルとするを特徴とする。
 また、請求項7に記載の態様である署名生成装置において、前記データ変換手段は、前記分布により示される範囲に属する前記候補ベクトルから、1の候補ベクトルを選択して、前記攪乱ベクトルとするベクトル生成部と、前記対象データに基づくベクトルに、前記攪乱ベクトルを加えることにより、前記変換ベクトルを生成する加算部とを含むことを特徴とする。
 また、請求項8に記載の態様である署名生成装置において、前記ベクトル生成部は、前記分布に基づいて予め選択した複数の候補ベクトルから、ランダムに選択することにより、前記攪乱ベクトルを生成することを特徴とする。
 また、請求項9に記載の態様である署名生成装置において、前記分布は、前記第1サイズを半径とする超球内に含まれることを特徴とする。
 また、請求項10に記載の態様である署名生成装置は、さらに、前記第1サイズより大きい第2サイズを記憶している公開記憶手段を含み、前記データ変換手段は、さらに、前記対象データによるベクトルと、前記変換ベクトルとの距離を算出し、算出した距離が前記第2サイズ以下でない場合に、第1サイズより小さい秘密の別の攪乱ベクトルを用いて、取得した対象データを変換して、別の変換ベクトルを生成するを特徴とする。
 また、請求項11に記載の態様である署名生成装置において、前記秘密鍵ベクトルは、加算、減算、乗算と、元のサイズを示すノルムが定義されたN次元配列の集合である環Rと正整数qに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqと、f×G-g×F=qを満たす(F,G)とに基づく、前記元の4つ組(f,g,F,G)から得られ、前記公開鍵ベクトルは、前記正整数qと前記元gおよび前記元Fqの積とmod qで合同である元hから得られることを特徴とする。
 また、請求項12に記載の態様である署名検証装置は、データを複数に分割して多次元のベクトルとして表わし、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠として、署名生成装置により、第1サイズより小さい秘密の攪乱ベクトルを用いて、対象データから変換により前記変換ベクトルが生成され、秘密鍵ベクトルを基底として定まる格子において、前記変換ベクトルに最近接する格子点である署名ベクトルの一部として生成された署名データを検証する署名検証装置であって、前記対象データ及び署名データを取得する取得手段と、公開鍵ベクトルを記憶している記憶手段と、公開鍵ベクトルと前記署名データとを用いて、前記署名ベクトルを復元し、前記対象データによるベクトルと復元された前記署名ベクトルとの距離が、前記第1サイズより大きい第2サイズ以下であるか否かを検証する検証手段と、第2サイズ以下であるとき、検証が成功したことを示す成功情報を出力する出力手段とを備えることを特徴とする。
 この構成によると、署名データの検証において、前記対象データによるベクトルと前記署名ベクトルとの距離が、前記第1サイズより大きい第2サイズ以下であるか否かを検証し、第2サイズ以下であるとき、検証が成功したとみなすので、署名データの検証を行うことができる。
 また、請求項13に記載の態様である署名生成方法は、データを複数に分割して多次元のベクトルとして表わし、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠として、対象データに対する署名データを生成する署名生成装置において用いられる署名生成方法であって、対象データを取得する取得ステップと、第1サイズより小さい秘密の攪乱ベクトルを用いて、取得した対象データを変換して、変換ベクトルを生成するデータ変換ステップと、秘密鍵ベクトルを基底として定まる格子において、前記変換ベクトルに最近接する格子点を求めて前記変換ベクトルに対する署名ベクトルを生成し、前記署名ベクトルの一部を署名データとする署名生成ステップと、前記対象データと生成した署名データとを出力する出力ステップとを含むことを特徴とする。
 また、請求項14に記載の態様である記録媒体は、データを複数に分割して多次元のベクトルとして表わし、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠として、対象データに対する署名データを生成するコンピュータにおいて用いられる署名生成用のコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、前記コンピュータに、対象データを取得する取得ステップと、第1サイズより小さい秘密の攪乱ベクトルを用いて、取得した対象データを変換して、変換ベクトルを生成するデータ変換ステップと、秘密鍵ベクトルを基底として定まる格子において、前記変換ベクトルに最近接する格子点を求めて前記変換ベクトルに対する署名ベクトルを生成し、前記署名ベクトルの一部を署名データとする署名生成ステップと、前記対象データと生成した署名データとを出力する出力ステップとを実行させる前記コンピュータプログラムを記録している。
 また、請求項15に記載の態様であるシステムは、データを複数に分割して多次元のベクトルとして表わし、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠として、署名する署名生成装置及び検証する署名検証装置から構成されるシステムであって、前記署名生成装置は、対象データを取得する取得手段と、秘密鍵ベクトルを秘密に記憶している秘密記憶手段と、第1サイズより小さい秘密の攪乱ベクトルを用いて、取得した対象データを変換して、変換ベクトルを生成するデータ変換手段と、秘密鍵ベクトルを基底として定まる格子において、前記変換ベクトルに最近接する格子点を求めて前記変換ベクトルに対する署名ベクトルを生成し、前記署名ベクトルの一部を署名データとする署名生成手段と、前記対象データと生成した署名データとを出力する出力手段とを備え、前記署名検証装置は、 前記対象データ及び署名データを取得する取得手段と、公開鍵ベクトルを記憶している記憶手段と、公開鍵ベクトルと前記署名データとを用いて、前記署名ベクトルを復元し、前記対象データによるベクトルと復元された前記署名ベクトルとの距離が、前記第1サイズより大きい第2サイズ以下であるか否かを検証する検証手段と、第2サイズ以下であるとき、検証が成功したことを示す成功情報を出力する出力手段とを備えることを特徴とする。
〔実施の形態1〕
 本発明に係る1の実施の形態としてのデジタル署名システム10について説明する。
 デジタル署名システム10は、図1に示すように、メッセージ生成装置30、署名生成装置100、署名検証装置200、鍵生成装置300及びメッセージ受信装置40から構成され、署名生成装置100と署名検証装置200とは、インターネットを代表とする通信路20を介して接続され、署名生成装置100と鍵生成装置300とは、安全性が保証された通信路により接続されることにより、又は他の安全性が保証された手段により、相互に情報が伝達される。
 デジタル署名システム10においては、メッセージ生成装置30は、送信すべきメッセージデータm(署名の対象データとも呼ぶ。)を生成し、生成したメッセージデータmを署名生成装置100へ出力する。次に、NTRUSign署名方式を改良した改良NTRUSign署名方式を用いて、鍵生成装置300は、鍵生成を行い、署名生成装置100は、メッセージデータmに対する署名データSDを生成し、通信路20を介して署名検証装置200にメッセージデータm及び署名データSDを含む署名データセットSSを送信し、署名検証装置200は、署名データセットSSを受信し、受信した署名データセットSSを検証し、検証結果及びメッセージデータmをメッセージ受信装置40へ出力する。メッセージ受信装置40は、検証結果及びメッセージデータmを受け取り、受信した検証結果により、受信したメッセージデータmの採否を決定する。
1.改良NTRUSign署名方式
 改良NTRUSign署名方式は、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠としている。最小ベクトル問題(Shortest Vector Problem)は、1の基底ベクトルからその格子に含まれる「最小のベクトル」を求める問題である。近似最小ベクトル問題(Approximate Shortest Vector Problem)は、近似的に最小のベクトル(最小ベクトルではないが、それに近い大きさのベクトル)を求める問題である。
(1)改良NTRUSign署名方式のシステムパラメタ
 改良NTRUSign署名方式においては、従来のNTRUSign署名方式と同じ非負整数のパラメタN,q,df,dgの他に距離L及びL’が存在する。従来のNTRUSign署名方式では、検証時にNormboundを使用する。これに対して、改良NTRUSign署名方式では、後で説明するように、検証時には、Normboundの代わりに、距離L’を使用する。
 以下に、これらのパラメタの意味を説明する。
 (i)パラメタN
 改良NTRUSign署名方式は、多項式の演算により署名生成及び署名検証を行うデジタル署名方式である。改良NTRUSign署名方式で扱う多項式の次数は、パラメタNにより決まる。
 改良NTRUSign署名方式で扱う多項式は、パラメタNに対し、N-1次以下の整数係数多項式であり、N=5のとき、例えば、多項式X^4+X^3+1である。
 また、公開鍵h、署名sは、いずれも、N-1次以下の多項式として表現される。また、秘密鍵は、4つのN-1次以下の多項式対(f,g,F,G)である。すなわち、f,g,F,Gは、いずれもN-1次以下の多項式である。なお、以下では、4つ組(f,g,F,G)を2つの対(f,g),(F,G)のさらなる対と捉えて、{(f,g),(F,G)}と表記する場合もある。
 このように、秘密鍵であるベクトルは、加算、減算、乗算と、元のサイズを示すノルムが定義されたN次元配列の集合である環Rと正整数qに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqと、f×G-g×F=qを満たす(F,G)とに基づく、前記元の4つ組(f,g,F,G)から得られる。また、公開鍵であるベクトルは、前記正整数qと前記元gおよび前記元Fqの積とmod qで合同である元hから得られる。
 さらに、改良NTRUSign署名方式における多項式演算は、パラメタNに対し、X^N=1という関係式を用いて、演算結果が常にN-1次以下の多項式になるように演算される。
 なお、改良NTRUSign署名方式では、N-1次の多項式a=a_0+a_1・X+a_2・X^2+…+a_(N-1)・X^(N-1)を、ベクトル(a_0,a_1,a_2,…,a_(N-1))と同一視して表現する。a_0,a_1,a_2,…,a_(N-1)は、それぞれ、多項式aの各項の係数であり、整数である。
 (ii)パラメタq
 改良NTRUSign署名方式では、2以上の整数であるパラメタqを用いる。改良NTRUSign署名方式で出現する多項式の各係数は、qを法とした剰余を取るように演算する。
 (iii)パラメタdf,dg
 改良NTRUSign署名方式で扱う秘密鍵の一部である多項式f及び多項式gの選び方は、それぞれパラメタdf,dgにより決まる。多項式gは、公開鍵である多項式hを生成するときに、多項式fと共に用いられる。
 多項式fは、N個の係数のうち、df個の係数が「1」であり、かつ他の係数が「0」となるように選ばれる。すなわち、多項式fは、N-1次以下の多項式であり、0次(定数項)からN-1次までのN個の項について、それぞれ、1個の係数が存在し、合計でN個の係数があるが、これらのN個の係数のうち、df個の係数が「1」であり、かつ(N-df)個の係数が「0」となるように選ばれる。
 また、同様に、多項式gは、dg個の係数が「1」であり、かつ他の係数が「0」となるように選ばれる。
 (iv)パラメタL(距離)
 パラメタL(第1サイズとも呼ぶ。)は、2・N次元ベクトル空間における超球の半径である。以下において、改良NTRUSign署名方式において加算されるランダムなベクトルの選択と、超球及び分布ηとの関係について説明する。
 改良NTRUSign署名方式では、後述するように、メッセージデータのハッシュ値である2・N次元のベクトル(ハッシュ値ベクトルと呼ぶ)に対し、ランダムなベクトル(攪乱ベクトルとも呼ぶ。)を加算して、変換ハッシュ値ベクトルを生成する。
 分布ηは、半径Lの超球内に含まれるように設定され、ランダムなベクトルは、分布η内に存在する複数のベクトル(候補ベクトルとも呼ぶ。)から等確率でランダムに選択される。したがって、選択されたベクトルのノルムは、L以下である。
 分布ηの一例を図2に示す。図2は、2・N次元ベクトル空間を、2次元の紙面上に、模式的に表現したものであり、中心406を有し、半径L(距離402)の超球401を表現している。超球401の内部に、分布400が存在する。分布400は、超球401内に完全に含まれている。分布400内に存在する複数のベクトルから、例えば、ベクトル403がランダムに選択される。なお、ベクトル404が選択されることもあり、ベクトル405が選択されることもある。
 分布400のデータ構造を、図3の分布テーブル410に示す。
 分布テーブル410は、2・N次元ベクトル空間において、分布400が占める空間構造を定めるものであり、2・N個の限界値ペアを含んで構成されている。2・N個の限界値ペアは、それぞれ、2・N次元ベクトルの2・N個のエレメントに対応している。2・N個の限界値ペアは、第1グループ及び第2グループから構成され、第1グループは、N個の限界値ペアを含み、第2グループは、残りのN個の限界値ペアを含む。各限界値ペアは、下限値及び上限値を含む。
 2・N次元ベクトル空間において、2・N次元ベクトルの2・N個のエレメントに対応して、各限界値ペアに含まれる下限値以上及び上限値以下の空間が、分布400が占める空間である。この空間が、超球401の内部に含まれるように、各限界値ペアが設定されている。
 分布テーブル410の第1グループに含まれる第0番目の限界値ペア内の下限値V1_0_min411及び上限値V1_0_max412は、それぞれ、一例として、「3」及び「8」であり、第1グループに含まれる第N-1番目の限界値ペア内の下限値V1_(N-1)_min413及び上限値V1_(N-1)_max414は、それぞれ、一例として、「2」及び「5」である。また、分布テーブル410の第2グループに含まれる第0番目の限界値ペア内の下限値V2_0_min415及び上限値V2_0_max416は、それぞれ、一例として、「1」及び「6」であり、第2グループに含まれる第N-1番目の限界値ペア内の下限値V2_(N-1)_min417及び上限値V2_(N-1)_max418は、それぞれ、一例として、「4」及び「7」である。
 分布テーブル410の2・N個の限界値ペアを用いて、各限界値ペアに含まれる下限値以上かつ上限値以下の値を、確率的に均等に、つまり、一様に、ランダムに選択する。こうして、2・N個のランダムな値V1_0、V1_1、V1_2、・・・、V1_(N-1)、V2_0、V2_1、V2_2、・・・、V2_(N-1)が選択され、選択された2・N個のランダムな値の組を上記のランダムに選択されたベクトルV(V1、V2)とする。
 ここで、V1=(V1_0、V1_1、V1_2、・・・、V1_(N-1))
 V2=(V2_0、V2_1、V2_2、・・・、V2_(N-1))
 このように、図2は、原点から分布の範囲のいずれかの点に向かうベクトルを選択することを示しており、この分布の例では、分布の範囲で一様で(等確率で)ランダムにベクトルを選択する。
 パラメタLは、システムパラメタとして公開される。パラメタLは、一例としてし、L=200である。
 次に、分布ηの別の一例を図4に示す。図4は、図2と同様に、2・N次元ベクトル空間を、2次元の紙面上に、模式的に表現したものであり、中心441を有し、半径L(距離442)の超球431を表現している。超球431の内部に、分布432が存在する。分布432は、超球431内に完全に含まれている。
 分布432は、図4に示すように、その範囲が3分割されており、部分領域A(433)、部分領域B(434)及び部分領域C(435)から構成されている。各部分領域に対して、当該部分領域を選択する確率が定められている。部分領域A(433)を選択する確率は、1/6であり、部分領域B(434)を選択する確率は、1/2であり、部分領域C(435)を選択する確率は、1/3である。この分布432を用いる場合には、まず、部分領域A(433)、部分領域B(434)及び部分領域C(435)のいずれかをこれらの確率に依存して選択し、その後、選択した部分領域の範囲でランダムに候補ベクトルからベクトルを選択する。なお、これらの確率の合計は、「1」である。
 1/6+1/2+1/3=1
 このように、分布432では、複数の候補ベクトルは、選択される確率が一様でないように、配置されている。
 分布432のデータ構造を、図5の分布テーブル450に示す。
 分布テーブル450は、2・N次元ベクトル空間において、分布432が占める空間構造を定めるものであり、部分テーブルと発生確率との組を複数個含んで構成されている。具体的には、分布テーブル450は、部分テーブル451と発生確率454との組と、部分テーブル452と発生確率455との組と、部分テーブル453と発生確率456との組とを含む。3個の部分テーブル451、452及び453は、それぞれ、図4の部分領域A(433)、部分領域B(434)及び部分領域C(435)に対応している。各部分テーブルに対応する発生確率は、図4に示す分布432の部分領域を選択する確率である。各部分テーブル部は、図3に示す分布テーブル410と同様の構造を有しており、それぞれは、2・N個の限界値ペアを含んで構成されている。
 分布テーブル450に含まれる3個の発生確率454、455及び456に依存して、一つの部分テーブルが選択され、選択された部分テーブルが示す範囲内で、ランダムにベクトルを選択する。
 (v)パラメタL’(距離)
 改良NTRUSign署名方式では、後述するように、署名sから作られる2・N次元のベクトル(署名ベクトルと呼ぶ)と、ハッシュ値ベクトルとの距離を計算し、この距離により正しい署名であるかを判定する。パラメタL’(第2サイズ)は、この判定の際に使用するしきい値である。すなわち、計算された上記距離がL’以下であれば、正しい署名として受理し、L’より大きければ、正しくない署名として拒否する。
 非特許文献4には、従来のNTRUSign署名方式のパラメタの例として、(N,q,df,dg)=(251,128,73,71)の例が挙げられている。
 改良NTRUSign署名方式においても、同様のパラメタ例を使用してもよい。改良NTRUSign署名方式においては、距離Lの超球内のベクトルを選択したときに、ハッシュ値ベクトルと正しく生成した署名ベクトルとの距離がほとんどL’となるように調節する。
 例えば、パラメタL,L’は、例えば、(L,L’)=(200,500)である。上記の従来のNTRUSigin署名方式のパラメタの例では、Normboundが300~310であり、この場合にハッシュ値ベクトルと正しく生成した署名ベクトルの距離がほぼNormbound以内になっている。
 これに対して、改良NTRUSign署名方式では、変換ハッシュ値ベクトルと署名ベクトルとの距離がほぼNormbound以内になっている。変換ハッシュ値ベクトルとハッシュ値ベクトルとの差は、ランダムベクトルであり、その距離がL以内であるため、L’をNormbound+L程度に設定すればよい。したがって、Lを200とすると、L’を500~510に設定すればよい。このように、L’は、Lより大きくする。
(2)メッセージデータのハッシュ値、ノルム及びベクトル間の距離
 改良NTRUSign署名方式においても、メッセージデータのハッシュ値に対する署名を作成する。メッセージデータのハッシュ値は、N次の多項式の対であり、2・N次元のベクトルと同一視される。ハッシュ関数については、非特許文献1に詳しく説明されている。
 一例として、メッセージデータmから、3514ビット(=1757ビット×2=7ビット×251×2)のハッシュ値が生成されるとする。ここで、N=251とする。生成された3514ビットのハッシュ値を先頭から、7ビットずつに区切ると、合計で、251×2=502個のビット列ができ、これらの502個ビット列を、N(=251)次の多項式の対の各係数とする。
 ここで、3514ビットのハッシュ値を(Bit1-1,Bit1-2,Bit1-3,・・・Bit1-251),(Bit2-1,Bit2-2,Bit2-3,・・・Bit2-251)とし、メッセージデータmに対するハッシュ値である2・N次元のベクトルH=(m1,m2)(m1及びm2はN次多項式)とすると、N次多項式m1の係数は、(Bit1-1,Bit1-2,Bit1-3,・・・Bit1-251)であり、N次多項式m2の係数は、(Bit2-1,Bit2-2,Bit2-3,・・・Bit2-251)である。ここで、Biti-j(i=1,2、j=1,2,3,・・・,251)は、7ビットの長さである。
 改良NTRUSign署名方式においても、従来のNTRUSign署名方式と同様のベクトルの距離を用いる。以下にその定義を示す。
 多項式a=a_0+a_1・X+a_2・X^2+…+a_(N-1)・X^(N-1)のノルム||a||を以下のように定義する。
 ||a||=sqrt((a_0-μ)^2+(a_1-μ)^2+…+(a_
(N-1)-μ)^2)
 μ=(1/N)・(a_0+a_1+a_2+…+a_(N-1))
 ここで、sqrt(x)はxの平方根を示す。
 多項式a,bの対(a,b)のノルム||(a,b)||を以下のように定義する。
 ||(a,b)||=sqrt(||a||^2+||b||^2)
 多項式a,bの対(a,b)とc,dの対(c,d)との距離は、||(c-a,d-b)||で定義される。
(3)改良NTRUSign署名方式の鍵生成
 改良NTRUSign署名方式では、上述したように、パラメタdf,dgを用いてランダムに多項式f,多項式gを生成する。そして非特許文献4に記載の通り、Fq×f=1(mod q)となる多項式Fqを用いて、
   h=Fq×g(mod q)
により、多項式hを生成する。さらに、以下の式を満たすようなノルムが小さい多項式F,Gを求める。
 f×G-g×F=q
 ここで、x=y(mod q)は、多項式yの第i次(0≦i≦N-1)の係数について、当該第i次の係数を、剰余が0からq-1の範囲に収まるように法qで割ったときの剰余を、多項式xの第i次の係数とする演算である。すなわち、yの各係数を、0から(q-1)の範囲に収まるようにmod q演算して得られる多項式を、多項式xとする演算である。
 さらに、分布ηが距離Lの超球に含まれるように、当該分布ηを任意に設定する。設定する情報としては、分布の範囲、分布の範囲における選択する確率である。例えば、図2や図4に示すような分布を設定する。
 秘密鍵を{(f,g),(F,G)}と分布ηとし、公開鍵をhとする。秘密鍵は、署名を生成するための鍵であり、署名生成鍵とも呼ばれる。また、公開鍵は、署名を検証するための鍵であり、署名検証鍵とも呼ばれる。
 分布ηは、秘密鍵に含めているため、当然であるが、秘密に保持しておく。なお、分布ηのすべてを秘密にしてもよいが、例えば、図2に示す分布400の範囲を秘密にするが、分布400に基づいて、ベクトルを一様ランダムに選択することを公開しておいてもよい。また、図4に示す分布432では、分布432の範囲及び各部分領域を選択する確率の両方を秘密としておいてもよいし、分布432の範囲を公開し、各部分領域を選択する確率を秘密とするとしてもよい。
(4)改良NTRUSign署名方式の署名生成
 改良NTRUSign署名方式の署名生成について、図6及び図17を用いて、説明する。
 改良NTRUSign署名方式の署名生成では、署名対象であるメッセージデータmの署名sを計算する。図6は、署名生成の処理を示した図であり、2・N次元ベクトル全体を格子(格子Lsec)として捉える場合におけるLsec座標系を図示している。図17は、署名生成の処理の手順を示すフローチャートである。
 まず、メッセージデータmに対するハッシュ値である2・N次元のベクトルH=(m1,m2)(m1及びm2はN次多項式)を計算する(ステップSG1)。以下で、Hをハッシュ値ベクトルと呼ぶ。また、図6において、ハッシュ値ベクトルHを参照符号501で示す。
 次に、分布の範囲でランダムにベクトルVを選択し、変換ハッシュ値ベクトルH’=H+Vを計算する(ステップSG2)。ここで、m1’,m2’をH’=(m1’,m2’)を満たす多項式とする。図6において、変換ハッシュ値ベクトルH’を参照符号502で示す。
 従来のNTRUSign署名方式と同様の方法で、変換ハッシュ値ベクトルH’に最も近い格子点のベクトルS=(s,t)を計算する(ステップSG3)。図6において、ベクトルSを参照符号503で示す。
 この2・N次元のベクトル(m1’,m2’)と秘密鍵{(f,g),(F,G)}とを用いて、以下の式を満たす多項式a,b,A,Bを計算する。
 G×m1’-F×m2’=A+q×B
 -g×m1’+f×m2’=a+q×b
 ここで、A,aの係数は、〈-q/2〉+1から〈q/2〉の範囲に収まるように法qで割ったときの剰余を取ったものとする。すなわち、法qで割ったときの剰余が〈q/2〉からq-1である場合は、qだけ減算して、上記範囲に収まるよう調整する。ここで、〈x〉は、x以下の数の中で最も大きい数を示す。例えば、〈-1/2〉=-1である。
 次に、以下の式より、s,tを計算する。
 s=f×B+F×b (mod q)
 t=g×B+G×b (mod q)
 次に、ハッシュ値ベクトルHとSの距離を算出し、HとSの距離がL’以内であるかを判定する(ステップSG4)。L’以内であれば(ステップSG4でYes)、sを署名とする(ステップSG5)。L’以内でなければ(ステップSG4でNo)、ステップSG2からやり直す。
 L及びL’を上記例のように、(L,L’)=(200,500)に設定した場合、ステップSG4では、ハッシュ値ベクトルHとSの距離はほとんどL’以内に納まるため、ステップSG2に戻る回数はあまり多くない。
(5)改良NTRUSign署名方式の署名検証
 改良NTRUSign署名方式の署名検証について、図7及び図18を用いて、説明する。
 改良NTRUSign署名方式の署名生成では、署名sが署名対象であるメッセージデータmの正しい署名であるかを検証する。図7は署名検証の処理を示した図であり、2・N次元ベクトル全体を格子(格子Lpub)として捉える場合におけるLpub座標系を図示している。図18は、署名生成の処理の手順を示すフローチャートである。
 まず、メッセージデータmに対するハッシュ値である2・N次元のベクトルH=(m1,m2)を計算する(ステップSV1)。図7において、ベクトルHを参照符号531で示す。
 次に、公開鍵hを用いて、以下の式より、多項式tを計算し、署名ベクトルS=(s,t)を復元する(ステップSV2)。図7において、署名ベクトルSを参照符号532で示す。
  t=s×h (mod q)
 HとSの距離を求め、求めた距離がL’以下であるかをチェックする(ステップSV3)。L’以下であれば(ステップSV3でYes)、署名sが正しいと判定して署名sを受理し、OKを出力する(ステップSV4)。L’より大きければ(ステップSV3でNo)、署名sが不正と判定して署名sを拒否し、NGを出力する(ステップSV5)。
2.各装置の構成
(1)署名生成装置100の構成
 署名生成装置100は、相手に送信すべきメッセージデータmに対する署名データセットSSを生成する。署名生成装置100は、図8に示すように、送信部101、秘密鍵格納部102、公開鍵証明書格納部103、署名生成部104、署名データセット生成部105及びシステムパラメタ格納部106を備える。
 秘密鍵格納部102は、耐タンパ性を有し、図9に示すように、予め、秘密鍵{(f,g),(F,G)}及び秘密鍵である分布ηを格納している。秘密鍵及び分布は、外部から知られないように、秘密に保護されている。
 システムパラメタ格納部106は、図9に示すように、予めシステムパラメタとして、パラメタN、パラメタq及びパラメタL’(距離)を格納している。
 公開鍵証明書格納部103は、図9に示すように、予め、公開鍵hの証明書CPを格納している。証明書CPは、公開鍵hと、公開鍵hに対する鍵生成装置300による署名データSPとからなる。署名データSPも、改良NTRUSign署名方式を使用して生成する。また、証明書CPは予め与えられているものとする。なお、証明書CPは、公開鍵h及び署名データSPの他に、例えば、ユーザの識別子や証明書の期限などのデータを含んでいてもよい。
 署名生成部104は、上述したように、改良NTRUSign署名方式に基づいて、秘密鍵格納部102に格納されている秘密鍵{(f,g),(F,G)}及び分布ηを用いて、メッセージデータmに対する署名データSDを生成する。
 署名データセット生成部105は、公開鍵証明書格納部103から証明書CPを受り取り、署名生成部104から署名データSDを受け取り、メッセージデータm、証明書CP及び署名データSDから構成される署名データセットSSを生成する。
 送信部101は、生成された署名データセットSSを、通信路20を介して署名検証装置200へ送信する。
(署名生成部104の構成)
 署名生成部104は、図10に示すように、ハッシュ値計算部111、ベクトル生成部112、ハッシュ値変換部113、署名生成部114、署名確認部115及びベクトル群選択格納部116から構成されている。
 ハッシュ値計算部111は、改良NTRUSign署名方式の署名生成処理におけるステップSG1の処理を行い、メッセージデータmに対するハッシュ値ベクトルHを計算する。
 ベクトル生成部112は、改良NTRUSign署名方式の署名生成処理におけるステップSG2で使用するベクトルVを生成する。
 ハッシュ値変換部113は、ベクトル生成部112で生成したベクトルVを用いて、改良NTRUSign署名方式の署名生成処理におけるステップSG2の処理を行い、変換ハッシュ値ベクトルH’=H+Vを生成する。
 署名生成部114は、改良NTRUSign署名方式の署名生成処理におけるステップSG3の処理を行い、署名ベクトルS=(s,t)を生成する。
 署名確認部115は、改良NTRUSign署名方式の署名生成処理におけるステップSG4の処理を行い、署名ベクトルを確認する。確認した結果、ハッシュ値ベクトルと署名ベクトルが距離L’以内でない場合は、ベクトル生成部112の処理からやり直す。距離L’以内である場合は、署名ベクトルS=(s,t)のsを署名データSDとする。
(2)署名検証装置200の構成
 署名検証装置200は、図11に示すように、受信部201、CA公開鍵格納部202、署名データセット格納部203、署名検証部204及びシステムパラメタ格納部205を備える。
 システムパラメタ格納部205は、図12に示すように、予めシステムパラメタとして、パラメタN、パラメタq及びパラメタL’(距離)を格納している。
 CA公開鍵格納部202は、図12に示すように、予め、証明書CPを検証するための鍵生成装置300の公開鍵KCPを格納している。
 受信部201は、署名生成装置100から送信された署名データセットSSを、通信路20を介して受信し、受信した署名データセットSSを署名データセット格納部203に書き込む。
 署名データセット格納部203は、図12に示すように、受信した署名データセットSSを格納する。署名データセットSSは、メッセージデータm、署名データSD及び証明書CPから構成される。証明書CPは、公開鍵H及び署名データSPを含む。
 署名検証部204は、署名データセットSSに含まれる署名データSDを検証し、また、証明書CPに含まれる署名データSPを検証する。
(署名検証部204の構成)
 署名検証部204は、図13に示すように、ハッシュ値計算部211、署名ベクトル生成部212及び距離判定部213から構成されている。
 署名検証部204は、署名データSDを検証し、証明書CPに含まれる署名データSPを検証する。以下では、署名データSDに対する署名検証について説明する。署名データSPについては、メッセージデータmを公開鍵h、署名データSDをSPと代えて、同様に検証できるので、詳細の説明を省略する。
 ハッシュ値計算部211は、改良NTRUSign署名方式の署名検証処理におけるステップSV1の処理を行い、メッセージデータmに対するハッシュ値ベクトルHを計算する。
 署名ベクトル生成部212は、改良NTRUSign署名方式の署名検証処理におけるステップSV2の処理を行い、署名データSDから署名ベクトルSを生成する。
 距離判定部213は、改良NTRUSign署名方式の署名検証処理におけるステップSV3の処理を行い、ハッシュ値ベクトルHと署名ベクトルSの距離を計算する。その距離がL’以内である場合は、署名データは正しいと判定する。L’より大きければ、署名データは不正と判定する。
(3)鍵生成装置300の構成
 鍵生成装置300は、図14に示すように、分布生成部301、鍵生成部302、証明書生成部303、証明書生成鍵格納部304、鍵設定部305及びシステムパラメタ格納部306を備えている。
 システムパラメタ格納部306は、図15に示すように、予めシステムパラメタとして、パラメタN、パラメタq及びパラメタL’(距離)、パラメタL(距離)及びパラメタdf,dgを記憶している。
 証明書生成鍵格納部304は、図15に示すように、予め、鍵生成装置300の秘密鍵である証明書生成鍵KCSを記憶している。
 分布生成部301は、例えば、図3に示す分布テーブル410又は図5に示す分布テーブル450を生成することにより、改良NTRUSign署名の鍵生成処理における分布ηを生成し、生成した分布ηを鍵生成部302へ出力する。
 具体的には、次のようにして、分布生成部301は、分布テーブル410を生成する。
う。分布生成部301は、システムパラメタ格納部306からパラメタN及びパラメタLを読み出し、2・N個の限界値ペアを格納するため領域を備える分布テーブルを生成する。次に、各限界値ペアについて、乱数を発生させて当該限界値ペアに含まれる下限値をランダムに決定する。次に、乱数を発生させて当該下限値より大きい上限値をランダムに決定する。下限値の決定と上限値の決定を全ての限界値ペアについて行う。決定した下限値及び上限値を前記の分布テーブルに格納する。こうして分布テーブル410が生成される。なお、各下限値及び各上限値は、分布内のベクトルのノルムがL以下となるように決定する。
 また、別の例として、次のようにして、分布生成部301は、分布テーブル450を生成する。
 分布生成部301は、システムパラメタ格納部306からパラメタN及びパラメタLを読み出し、乱数を発生させて、分布テーブル450に含まれる部分テーブルの数を決定する。一例として、乱数として「3」が生成されたとする。この場合には、各部分テーブルが2・N個の限界値ペアを格納するため領域を備えるように、3個の部分テーブルを生成する。次に、3個の発生確率(各発生確率は、「0」より大きく、「1」より小さい)をランダムに決定する。ここで、3個の発生確率の合計が「1」となるようにする。
 次に、各部分テーブルについて、上記の分布テーブル410と同様にして、各限界値ペアに含まれる下限値及び上限値を決定して各部分テーブルに格納する。
 鍵生成部302は、システムパラメタ格納部306から、パラメタN、パラメタq、パラメタdf、dg及びパラメタLを読み出し、上述したように、改良NTRUSign署名方式の鍵生成処理方法により、秘密鍵{(f,g),(F,G)}及び公開鍵hを生成する。また、鍵生成部302は、分布生成部301から分布ηを受け取る。次に、鍵生成部302は、秘密鍵{(f,g),(F,G)}、公開鍵h及び分布ηを鍵設定部305へ出力する。また、公開鍵hを証明書生成部303へ出力する。
 証明書生成部303は、証明書生成鍵格納部304から証明書生成鍵KCSを読み出し、鍵生成部302から公開鍵hを受け取り、読み出した証明書生成鍵KCSを用いて、公開鍵hに対する証明書CPを生成する。ここで、証明書CPは公開鍵hと、公開鍵hの証明書生成鍵KCSを用いた署名データSPとからなる。なお、署名データSPの生成は、署名生成装置100の署名生成部104による署名生成方法と同じ署名生成方法を用いて行う。
 鍵設定部305は、秘密鍵{(f,g),(F,G)}及び秘密鍵である分布ηをを署名生成装置100の秘密鍵格納部102へ書き込む。また、証明書CPを署名生成装置100の公開鍵証明書格納部103へ書き込む。
3.デジタル署名システム10の動作
(1)デジタル署名システム10の概要の動作
 デジタル署名システム10の概要の動作について、図16に示すフローチャートを用いて説明する。
 署名生成装置100は、署名データを生成し(ステップS101)、署名データセットSSを生成し(ステップS102)、生成した署名データセットSSを通信路20を介して、署名検証装置200へ送信する(ステップS103)。
 署名検証装置200の受信部201は、署名生成装置100から送信された署名データセットSSを、通信路20を介して受信し、受信した署名データセットSSを署名データセット格納部203に格納する(ステップS201)。
 署名検証部204は、署名データセットSSの中の証明書CPに含まれる公開鍵hとその署名データSPに対し、署名データSPが公開鍵hの正しい署名であるかを、CA公開鍵格納部202に格納されている鍵生成装置300の公開鍵KCPを用いて検証する(ステップS202)。署名データSPが正しくない場合(ステップS203)、NGを出力し(ステップS107)、終了する。
 署名データSPが正しい場合(ステップS203)、署名検証部204は、署名データセットSSの中のメッセージデータmとその署名データSDに対し、署名データSDがメッセージデータmの正しい署名であるかを、公開鍵hを用いて検証する(ステップS204)。署名データSDが正しくない場合(ステップS205)、NGを出力し(ステップS207)、終了する。署名データSDが正しい場合(ステップS205)、OKを出力し(ステップS206)、終了する。
(2)署名生成装置100の動作
 署名生成装置100の動作について、図17に示すフローチャートを用いて説明する。
 ハッシュ値計算部111は、メッセージデータmに対するハッシュ値ベクトルHを計算する(ステップSG1)。
 ベクトル生成部112は、ベクトルVを生成し、ハッシュ値変換部113は、変換ハッシュ値ベクトルH’=H+Vを生成する(ステップSG2)。
 署名生成部114は、署名ベクトルS=(s,t)を生成する(ステップSG3)。
 署名確認部115は、署名ベクトルを確認する(ステップSG4)。確認した結果、ハッシュ値ベクトルと署名ベクトルが距離L’以内でない場合は(ステップSG4でNo)、ステップSG2に戻って、ベクトル生成部112の処理からやり直す。距離L’以内である場合は(ステップSG4でYes)、署名ベクトルS=(s,t)のsを署名データSDとする(ステップSG5)。
(3)署名検証装置200の署名検証部204の動作
 署名検証装置200の署名検証部204による署名検証の動作について、図18に示すフローチャートを用いて説明する。
 署名検証部204は、メッセージデータmに対するハッシュ値である2・N次元のベクトルH=(m1,m2)を計算し(ステップSV1)、公開鍵hを用いて、t=s×h (mod q)により、多項式tを計算し、署名ベクトルS=(s,t)を復元し(ステップSV2)、HとSの距離を求め、求めた距離がL’以下であるかをチェックし(ステップSV3)、L’以下であれば(ステップSV3でYes)、署名sが正しいと判定して署名sを受理し、OKを出力する(ステップSV4)。L’より大きければ(ステップSV3でNo)、署名sが不正と判定して署名sを拒否し、NGを出力する(ステップSV5)。
(4)鍵生成装置300の動作
 鍵生成装置300は、秘密鍵{(f,g),(F,G)}、分布ηと証明書CPを署名生成装置100に設定する。以下で、図19に示すフローチャートを用いて、その動作について説明する。
  鍵生成装置300の鍵生成部302は、秘密鍵{(f,g),(F,G)}と公開鍵hを生成し(ステップS401)、分布生成部301は、分布ηを生成し(ステップS402)、証明書生成部303は、証明書生成鍵格納部304に格納されている証明書生成鍵KCSを用いて、公開鍵hに対する証明書CPを生成し(ステップS403)、鍵設定部305は、秘密鍵{(f,g),(F,G)}、分布ηと証明書CPを、それぞれ署名生成装置100の秘密鍵格納部102と公開鍵証明書格納部103に格納する(ステップS404)。
4.実施の形態1の効果
 実施の形態1におけるデジタル署名システム10では、図7に示すように、署名ベクトルSを最近傍の格子のベクトルとする変換ハッシュ値ベクトルH’を隠蔽しており、検証者に送信していない。そのため、検証者に送信する際の通信路での攻撃者の傍受が発生した場合や、検証者自身が攻撃者である場合に、攻撃者が転写攻撃を試みようとしても、ベクトルとその最近傍の格子のベクトルとの差分の分布を知ることができないため、転写攻撃が困難になる。
 転写攻撃は、個々の署名ベクトルとハッシュ値との差が秘密鍵の関連性を除いて一様分布であることを利用している。その上で、複数の署名データを収集して、差分の分布に関する情報(分布の範囲や発生確率)を用いて、統計的に一様分布の部分を取り去ることで、秘密鍵の部分のみを抽出している。この転写攻撃を発展させて、署名ベクトルとハッシュ値ベクトルとの差分の分布を用いた攻撃を行う場合においても、分布の範囲が秘密であり、分布の範囲が既知である条件を満たすことができないため、分布を予想した攻撃ができなくなり、このような攻撃が困難になる。以下で、このことについてもう少し詳しく述べる。
 署名ベクトルは、分布ηを用いてハッシュ値ベクトルを変換して得られた変換ハッシュ値ベクトルの最近傍の格子点のベクトルである。ここで、分布ηは、分布の範囲が秘密であるため、攻撃者は署名ベクトルとハッシュ値ベクトルとの差分の分布の範囲がわからない。そのため、上記のような攻撃が困難になる。
 また、攻撃者が分布の範囲が既知であっても、分布が一様でなく、図4のように各部分領域の発生確率が既知でない場合は、同様に、転写攻撃が困難になる。
 なお、攻撃者にとって、分布の範囲が既知であり、発生確率も既知である場合であっても、ランダムなベクトルVをハッシュ値ベクトルに加算することにより、分布の範囲が広がる。転写攻撃では、一様分布の部分を取り去るためには、その分布の大きさに依存した署名のサンプル数が必要になる。したがって、ランダムなベクトルVを加算することで、分布の範囲が広がり、転写攻撃に要する署名のサンプル数が多くなるため、攻撃が困難になるという効果がある。
5.以上説明したように、本発明は、上述した転写攻撃を防ぐことができ、格子の問題を安全性のベースとする署名方式、特に、NTRUSign署名方式をベースにしたデジタル署名システムを提供することを目的とする。
 本発明の1の態様は、署名方式を用いて、メッセージデータに対する署名データを生成する署名生成装置であって、前記署名方式は、ベクトルの集合である格子の最近傍問題を安全性のベースとしており、秘密の格子の基底ベクトルである秘密鍵基底ベクトルを構成するための情報を含む秘密鍵と、前記秘密鍵基底ベクトルと同じ前記格子を表現する公開の基底ベクトルである公開鍵基底ベクトルを構成するための情報を含む公開鍵を生成する鍵生成ステップと、前記秘密鍵を用いて前記メッセージデータに対する、1以上の前記格子の元からなる前記署名データを生成する署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ステップとを含み、前記署名生成装置は、前記署名データを生成するために使用する前記秘密鍵を格納する秘密鍵格納部と、前記秘密鍵格納部に格納された前記秘密鍵を用いて、前記メッセージデータに対する前記格子の元である前記署名データを生成する署名生成部とを備え、前記秘密鍵は、所定のベクトルの分布を含み、前記署名生成部は、前記分布に基づくベクトルを生成するベクトル生成手段と、前記メッセージデータを前記ベクトルに基づいて変換して変換メッセージデータを生成するメッセージ変換手段と、前記変換メッセージデータを前記メッセージデータとして用いて前記署名データを生成する署名生成手段と、を含むことを特徴とする。
 ここで、前記分布は一様でないとしてもよい。
 ここで、前記分布の範囲は秘密であるとしてもよい。
 ここで、前記分布の範囲は、複数の領域に分割され、各領域の選択確率が予め定められ、前記ベクトル生成手段は、前記選択確率に基づいて前記領域を選択し、選択した前記領域に基づいてベクトル生成してもよい。
 ここで、前記ベクトル生成手段は、前記分布に基づいてランダムに選択したベクトルを生成し、前記メッセージ変換手段は、前記メッセージデータに対して前記ベクトルを加算して前記変換メッセージデータを生成してもよい。
 ここで、前記ベクトル生成手段は、前記分布に基づいて予め選択した複数のベクトルから、ランダムに選択することでベクトルを生成してもよい。
 ここで、前記分布は、所定の距離Lの超球に含まれるとしてもよい。
 ここで、前記公開鍵は、前記距離Lに関連する距離L’を含み、前記署名生成部は、前記メッセージデータとの前記署名データとの距離がL’以内でない場合に、前記変換メッセージデータを計算しなおすとしてもよい。
 ここで、前記公開鍵は前記距離L’を含むとしてもよい。
 ここで、前記距離L’は、前記署名方式のシステムパラメタであるとしてもよい。
 ここで、前記秘密鍵基底ベクトルは、加算、減算、乗算と元の大きさを示すノルムが定義されたN次元配列の集合である環Rと正整数qに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqと、f×G-g×F=qを満たす(F,G)とに基づく、前記元の4つ組(f,g,F,G)から得られ、前記公開鍵基底ベクトルは、前記正整数qと前記元gおよび前記元Fqの積とmod qで合同である元hから得られるとしてもよい。
 ここで、前記秘密鍵格納部は、タンパー攻撃の対策をしているとしてもよい。
 また、本発明の別の1の態様は、署名方式を用いて、メッセージデータに対する署名データを検証する署名検証装置であって、前記署名方式は、ベクトルの集合である格子の最近傍問題を安全性のベースとしており、秘密の格子の基底ベクトルである秘密鍵基底ベクトルを構成するための情報を含む秘密鍵と、前記秘密鍵基底ベクトルと同じ前記格子を表現する公開の基底ベクトルである公開鍵基底ベクトルを構成するための情報を含む公開鍵を生成する鍵生成ステップと、前記秘密鍵を用いて前記メッセージデータに対する、1以上の前記格子の元からなる前記署名データを生成する署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ステップとを含み、前記署名検証装置は、前記署名データを検証するために使用する前記公開鍵を格納する公開鍵格納部と、前記公開鍵格納部に格納された前記公開鍵を用いて、前記メッセージデータに対する前記格子の元である前記署名データを検証する署名検証部とを備え、前記秘密鍵は、所定の距離Lの超球に含まれる所定のベクトルの分布を含み、前記公開鍵は、前記距離Lに関連する距離L’を含み、前記署名検証部は、前記メッセージデータと前記署名データの距離がL’以内であるか否かを判定することを特徴とする。
 ここで、署名方式を用いて、チャレンジデータに対するレスポンスデータである認証データを生成する認証データ生成装置であって、前記署名方式は、ベクトルの集合である格子の最近傍問題を安全性のベースとしており、秘密の格子の基底ベクトルである秘密鍵基底ベクトルを構成するための情報を含む秘密鍵と、前記秘密鍵基底ベクトルと同じ前記格子を表現する公開の基底ベクトルである公開鍵基底ベクトルを構成するための情報を含む公開鍵を生成する鍵生成ステップと、前記秘密鍵を用いて前記メッセージデータに対する、1以上の前記格子の元からなる前記署名データを生成する署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ステップとを含み、前記認証データ生成装置は、前記認証データを生成するために使用する前記秘密鍵を格納する秘密鍵格納部と、前記秘密鍵格納部に格納された前記秘密鍵を用いて、前記チャレンジデータに対する前記認証データを生成する認証データ生成部とを備え、前記秘密鍵は、所定のベクトルの分布を含み、前記認証データ生成部は、前記分布に基づくベクトルを生成するベクトル生成手段と、前記チャレンジデータに対するハッシュ値である前記メッセージデータを生成するメッセージデータ生成手段と、前記メッセージデータを前記ベクトルに基づいて変換して変換チャレンジデータを生成するメッセージ変換手段と、前記変換メッセージデータを前記メッセージデータとして用いたときの前記署名データを前記認証データとして生成する認証データ生成手段と、を含むとしてもよい。
 また、本発明の別の1の態様は、ベクトルの集合である格子の最近傍問題を安全性のベースとする署名方式を用いて、メッセージデータに対する署名データを生成する署名生成方法であって、秘密の格子の基底ベクトルである秘密鍵基底ベクトルを構成するための情報を含む秘密鍵と、前記秘密鍵基底ベクトルと同じ前記格子を表現する公開の基底ベクトルである公開鍵基底ベクトルを構成するための情報を含む公開鍵を生成する鍵生成ステップと、前記秘密鍵を用いて前記メッセージデータに対する、1以上の前記格子の元からなる前記署名データを生成する署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ステップとを含み、前記秘密鍵は、所定のベクトルの分布を含み、前記署名生成ステップは、前記メッセージデータを、前記分布に基づくベクトルを用いて変換した変換メッセージデータに対して、前記秘密鍵基底ベクトルを用いて前記格子の元である前記署名データを生成することを特徴とする。
 ここで、前記分布は一様でないとしてもよい。
 ここで、前記分布の範囲は秘密であるとしてもよい。
 ここで、前記分布の範囲は、複数の領域に分割され、各領域の選択確率が予め定められ、前記署名生成ステップは、前記選択確率に基づいて前記領域を選択し、選択した前記領域に基づいて生成したベクトルを用いるとしてもよい。
 ここで、前記署名生成ステップは、前記メッセージデータに対して、前記分布に基づいてランダムに選択したベクトルを加算して前記変換メッセージデータを生成してもよい。
 ここで、前記分布は、所定の距離Lの超球に含まれるとしてもよい。
 また、本発明の別の1の態様は、ベクトルの集合である格子の最近傍問題を安全性のベースとする署名方式を用いて、メッセージデータに対する署名データを生成する署名生成装置に実行させるプログラムであって、秘密の格子の基底ベクトルである秘密鍵基底ベクトルを構成するための情報を含む秘密鍵と、前記秘密鍵基底ベクトルと同じ前記格子を表現する公開の基底ベクトルである公開鍵基底ベクトルを構成するための情報を含む公開鍵を生成する鍵生成ステップと、前記秘密鍵を用いて前記メッセージデータに対する、1以上の前記格子の元からなる前記署名データを生成する署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ステップとを前記署名生成装置に実行させ、前記秘密鍵は、所定のベクトルの分布を含み、前記署名生成ステップは、前記メッセージデータを、前記分布に基づくベクトルを用いて変換した変換メッセージデータに対して、前記秘密鍵基底ベクトルを用いて前記格子の元である前記署名データを生成することを特徴とする。
 ここで、前記プログラムは、記録媒体に記録されているとしてもよい。
 また、本発明の別の1の態様は、署名方式を用いて、メッセージデータに対する署名データを生成する署名生成装置の集積回路であって、前記署名方式は、ベクトルの集合である格子の最近傍問題を安全性のベースとしており、秘密の格子の基底ベクトルである秘密鍵基底ベクトルを構成するための情報を含む秘密鍵と、前記秘密鍵基底ベクトルと同じ前記格子を表現する公開の基底ベクトルである公開鍵基底ベクトルを構成するための情報を含む公開鍵を生成する鍵生成ステップと、前記秘密鍵を用いて前記メッセージデータに対する、1以上の前記格子の元からなる前記署名データを生成する署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ステップとを含み、前記署名生成装置は、前記署名データを生成するために使用する前記秘密鍵を格納する秘密鍵格納部と、前記秘密鍵格納部に格納された前記秘密鍵を用いて、前記メッセージデータに対する前記格子の元である前記署名データを生成する署名生成部とを備え、前記秘密鍵は、所定のベクトルの分布を含み、前記署名生成部は、前記分布に基づくベクトルを生成するベクトル生成手段と、前記メッセージデータを前記ベクトルに基づいて変換して変換メッセージデータを生成するメッセージ変換手段と、前記変換メッセージデータを前記メッセージデータとして用いて前記署名データを生成する署名生成手段と、を含むことを特徴とする。
 また、本発明の別の1の態様は、署名方式を用いて、メッセージデータに対する署名データを生成する署名生成装置と前記署名データを検証する署名検証装置からなるデジタル署名システムであって、前記署名方式は、ベクトルの集合である格子の最近傍問題を安全性のベースとしており、秘密の格子の基底ベクトルである秘密鍵基底ベクトルを構成するための情報を含む秘密鍵と、前記秘密鍵基底ベクトルと同じ前記格子を表現する公開の基底ベクトルである公開鍵基底ベクトルを構成するための情報を含む公開鍵を生成する鍵生成ステップと、前記秘密鍵を用いて前記メッセージデータに対する、1以上の前記格子の元からなる前記署名データを生成する署名生成ステップと、前記公開鍵を用いて前記署名データを検証する署名検証ステップとを含み、前記署名生成装置は、前記署名データを生成するために使用する前記秘密鍵を格納する秘密鍵格納部と、前記秘密鍵格納部に格納された前記秘密鍵を用いて、前記メッセージデータに対する前記格子の元である前記署名データを生成する署名生成部とを備え、前記署名検証装置は、前記署名データを検証するために使用する前記公開鍵を格納する公開鍵格納部と、前記公開鍵格納部に格納された前記公開鍵を用いて、前記メッセージデータに対する前記格子の元である前記署名データを検証する署名検証部とを備え、前記秘密鍵は、所定のベクトルの分布を含み、前記署名生成部は、前記分布に基づくベクトルを生成するベクトル生成手段と、前記メッセージデータを前記ベクトルに基づいて変換して変換メッセージデータを生成するメッセージ変換手段と、前記変換メッセージデータを前記メッセージデータとして用いて前記署名データを生成する署名生成手段と、を含み、前記署名検証部は、前記メッセージデータと前記署名データの距離を判定することを特徴とする。
6.変形例
 上記に説明した実施の形態は、本発明の実施の一例であり、本発明はこの実施の形態に何ら限定されるものではなく、その旨を逸脱しない範囲において種々なる態様で実施し得るものである。例えば、以下のような場合も本発明に含まれる。
(1)実施の形態1におけるデジタル署名システム10では、ランダムなベクトルを分布に基づいて選択していたが、予め分布に基づくベクトルを求めて記憶しておき、記憶しているそのベクトルを用いるとしてもよい。また、予め複数の分布に基づくベクトルを複数個求めて記憶しておき、記憶している複数のベクトルから1個のベクトルを選択するとしてもよい。
(2)デジタル署名システム10では、ベクトルVを加算して変換ハッシュ値ベクトルを生成していたが、これに限らない。例えば、ベクトルVをn倍(nは0以外の整数)したものを加算して変換ハッシュ値ベクトルを生成するとしてもよい。また、ベクトルVを減算して変換ハッシュ値を生成するとしてもよい。
(3)改良NTRUSign署名方式におけるLとL‘は、(L,L’)=(200,500)としていたが、他の値でもよい。例えば、(L,L’)=(50,350)であってもよい。また、LとL’の差は、従来のNTRUSign署名方式のNormboundと程度としていたが、Normboundより小さくてもよい。L’は、ほとんどのハッシュ値ベクトルと正しく生成した署名ベクトルの距離がその値以下に納まる値であれば何でもよい。
(4)改良NTRUSign署名方式において、距離Lをシステムパラメタとして公開していたが、署名を生成するユーザごとに異なる値としてもよい。その場合は、L’を公開鍵に含めて署名を検証するユーザに知らせるとしてもよい。また、距離Lを秘密にするとしてもよい。
(5)改良NTRUSign署名方式において、分布ηとして図2や図4に示す分布400、432を使用するとしているが、これに限らない。例えば、ある次元(例えばi番目、すなわち、i-1次の項)の要素を所定の範囲(例えば、2以上5以下)に制限するとしてもよい。
(6)NTRUSign署名方式では、秘密鍵における(f,g),(F,G)を格子の基底ベクトル(秘密鍵基底ベクトル)、公開鍵におけるhとシステムパラメタであるqから得られる(1,h),(0,q)を格子の基底ベクトル(公開鍵基底ベクトル)としたとき、それぞれの基底ベクトルから得られる格子点が同一であることから、格子の問題(格子の最近傍問題)をベースにした署名方式と呼ばれる。改良NTRUSign署名方式も同様の秘密鍵基底ベクトルと公開鍵基底ベクトルを持つ。
 本発明では、署名方式としてNTRUSign署名方式をベースとした改良NTRUSign署名方式を使用しているが、これに限らない。転写攻撃は他の格子の問題をベースとした署名方式、例えば、GGH署名方式でも適用できる。署名方式として、転写攻撃が適用できる、格子の問題をベースとした署名方式、例えば、GGH署名方式をベースとするとしてもよい。GGH署名方式は、非特許文献6に詳細に述べられている。他の格子の最近傍問題を署名の安全性のベースとする署名方式をベースとするとしてもよい。
(7)分布ηのデータ構造である分布テーブルの他の一例について説明する。
 図21に示す分布テーブル610は、3個の分布情報i(i=1、2、3)から構成され、分布情報iは、下限値C_i_min、上限値C_i_max、多項式Base1_i、及び多項式Base2_iを含む。
 i=1とするときに、下限値C_1_min以上であり、上限値C_1_max以下であるC_1を一様ランダムに選択し、i=2とするときに、下限値C_2_min以上であり、上限値C_2_max以下であるC_2を一様ランダムに選択し、i=3とするときに、下限値C_3_min以上であり、上限値C_3_max以下であるC_3を一様ランダムに選択する。
 次に、V1=C_1×Base1_1+C_2×Base1_2+C_3×Base1_3を算出し、V2=C_1×Base2_1+C_2×Base2_2+C_3×Base2_3を算出し、V=(V1、V2)とする。
 上記の分布の中で最もノルムが大きくなるベクトルV_max(=(V1_max, V2_max))は、
V1_max=c_1_max×Base1_1+c_2_min×Base1_2+c_3_max×Base1_3
V2_max=c_1_max×Base2_1+c_2_min×Base2_2+c_3_max×Base2_3
であり、そのノルムは 194.9 < 200である。
 分布テーブル610において、ベースの多項式Base1_i, Base2_i(i=1, 2, 3)は、係数(重み)を3個有しているが、これに限らない。例えば、2個であってもよいし、4個以上であってもよい
 また、分布テーブル610において、Base1_i及びBase2_iのそれぞれについて、多項式の数は3個であるが、2個でもよいし、4個以上でもよい。
(8)分布ηのデータ構造である分布テーブルのさらに他の一例について説明する。
 図22に示す分布テーブル650は、3個の分布情報i(i=1、2、3)から構成され、分布情報iは、第1サブ分布情報及び第2サブ分布情報を含み、第1サブ分布情報は、下限値C_1_i_min、上限値C_1_i_max及び多項式Base1_iを含み、
第2サブ分布情報は、下限値C_2_i_min、上限値C_2_i_max及び多項式Base2_iを含む。
 i=1とするときに、下限値C_1_1_min以上であり、上限値C_1_1_max以下であるC_1_1を一様ランダムに選択し、下限値C_2_1_min以上であり、上限値C_2_1_max以下であるC_2_1を一様ランダムに選択する。i=2とするときに、下限値C_1_2_min以上であり、上限値C_1_2_max以下であるC_1_2を一様ランダムに選択し、下限値C_2_2_min以上であり、上限値C_2_2_max以下であるC_2_2を一様ランダムに選択する。i=3とするときに、下限値C_1_3_min以上であり、上限値C_1_3_max以下であるC_1_3を一様ランダムに選択し、下限値C_2_3_min以上であり、上限値C_2_3_max以下であるC_2_3を一様ランダムに選択する。
 次に、V1=C_1_1×Base1_1+C_1_2×Base1_2+C_1_3×Base1_3を算出し、V2=C_2_1×Base2_1+C_2_2×Base2_2+C_2_3×Base2_3を算出し、V=(V1、V2)とする。
 上記の分布の中で最もノルムが大きくなるベクトルV_max(=(V1_max, V2_max))は、
V1_max=c_1_1_max×Base1_1+c_1_2_max×Base1_2+c_1_3_max×Base1_3
V2_max=c_2_1_max×Base2_1+c_2_2_min×Base2_2+c_2_3_min×Base2_3
であり、そのノルムは 199.1 < 200である。
 ここで、c_1_iやc_2_iは、minからmaxの間で一様ランダムに選択(生成)するとしているが、これに限らない。例えば、ガウス分布に従ってランダムに選択するとしてもよい。その場合は、平均値と分散を予め決めておき、ガウス分布にしたがって発生させる。
 なお、ガウス分布の発生方法については、以下の文献に詳しく記載されている。
D.E. Knuth, “THE ART OF COMPUTER PROGRAMMING, 2nd ed., 
vol.2:Seminumerical Algorithms”, ADDISON-WESLEY, 1981, pp. 129-130
(9)上記の実施の形態では、署名検証時に、「L以内」で正しいと判定するとしているが、これには限定されず、「L未満」で正しいと判定するとしてもよい。その場合は、「Lより大きい」ときに不正と判定するのではなく、「L以上」のときに不正と判定する。
(10)上記の実施の形態及び変形例は、認証において適用される。認証とは、メッセージデータが自称どおりの人物によって送られたこと、またメッセージデータが改竄されなかったということの検証である。また、実施の形態及び変形例は、身分の証明において適用される。身分の証明とは、例えば、データへのアクセス権、又は施設へのアクセス権(入室権)を持つことの証明、又は自分が主張どおりの人物であることの証明である。さらに、実施の形態及び変形例は、否認防止において適用される。否認防止とは、例えば、実は何かに同意したのに、同意していないと主張する者に対抗することをいう。
(11)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
 上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
 上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
 本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
 また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
 また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
 また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
 また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(12)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
 本発明を構成する各装置は、認証、身分の証明、否認の防止などの処理を必要とする様々な産業分野において、認証、身分の証明、否認の防止などの処理を行う際に、経営的に、また継続的及び反復的に使用し、また製造することができる。

Claims (15)

  1.  データを複数に分割して多次元のベクトルとして表わし、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠として、対象データに署名し、検証する方法であって、
     対象データを取得する取得ステップと、
     第1サイズより小さい秘密の攪乱ベクトルを用いて、取得した対象データを変換して、変換ベクトルを生成する変換ステップと、
     秘密鍵ベクトルを基底ベクトルとして定まる格子において、前記変換ベクトルに最近接する格子点を求めて前記変換ベクトルに対する署名ベクトルを生成し、前記署名ベクトルの一部を署名データとする署名ステップと、
     公開鍵ベクトルと前記署名データとを用いて、前記署名ベクトルを復元し、前記対象データによるベクトルと復元された前記署名ベクトルとの距離が、前記第1サイズより大きい第2サイズ以下であるか否かを検証する検証ステップと、
     第2サイズ以下であるとき、検証が成功したことを示す成功情報を出力する出力ステップと
     を含むことを特徴とする方法。
  2.  データを複数に分割して多次元のベクトルとして表わし、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠として、対象データに対する署名データを生成する署名生成装置であって、
     対象データを取得する取得手段と、
     秘密鍵ベクトルを秘密に記憶している秘密記憶手段と、
     第1サイズより小さい秘密の攪乱ベクトルを用いて、取得した対象データを変換して、変換ベクトルを生成するデータ変換手段と、
     秘密鍵ベクトルを基底として定まる格子において、前記変換ベクトルに最近接する格子点を求めて前記変換ベクトルに対する署名ベクトルを生成し、前記署名ベクトルの一部を署名データとする署名生成手段と、
     前記対象データと生成した署名データとを出力する出力手段と
     を備えることを特徴とする署名生成装置。
  3.  前記秘密記憶手段は、さらに、前記第1サイズより小さい複数の候補ベクトルが属する範囲を示す分布を記憶しており、
     前記データ変換手段は、前記分布により示される範囲に属する前記候補ベクトルから、1の候補ベクトルを選択して前記攪乱ベクトルとする
     ことを特徴とする請求項2に記載の署名生成装置。
  4.  前記秘密記憶手段は、耐タンパ性を有し、前記秘密鍵及び前記分布は、外部から知られないように、秘密に保護されている
     ことを特徴とする請求項3記載の署名生成装置。
  5.  前記秘密記憶手段に記憶されている前記分布により示される範囲において、複数の候補ベクトルは、選択される確率が一様でないように、配置されており、
     前記データ変換手段は、前記確率に従って、1の前記候補データを選択して前記攪乱ベクトルとする
     を特徴とする請求項4記載の署名生成装置。
  6.  前記分布により示される範囲は、複数の領域を有し、各領域に対して当該領域の選択確率が予め定められ、前記複数の領域のそれぞれにおいて、複数の候補ベクトルが配置され、
     前記データ変換手段は、前記選択確率に基づいて1の領域を選択し、選択した前記領域から1の前記候補ベクトルを選択して前記攪乱ベクトルとする
     を特徴とする請求項4記載の署名生成装置。
  7.  前記データ変換手段は、
     前記分布により示される範囲に属する前記候補ベクトルから、1の候補ベクトルを選択して、前記攪乱ベクトルとするベクトル生成部と、
     前記対象データに基づくベクトルに、前記攪乱ベクトルを加えることにより、前記変換ベクトルを生成する加算部と
     を含むことを特徴とする請求項4に記載の署名生成装置。
  8.  前記ベクトル生成部は、前記分布に基づいて予め選択した複数の候補ベクトルから、ランダムに選択することにより、前記攪乱ベクトルを生成する
     ことを特徴とする請求項7に記載の署名生成装置。
  9.  前記分布は、前記第1サイズを半径とする超球内に含まれる
     ことを特徴とする請求項4に記載の署名生成装置。
  10.  前記署名生成装置は、さらに、前記第1サイズより大きい第2サイズを記憶している公開記憶手段を含み、
     前記データ変換手段は、さらに、前記対象データによるベクトルと、前記変換ベクトルとの距離を算出し、算出した距離が前記第2サイズ以下でない場合に、第1サイズより小さい秘密の別の攪乱ベクトルを用いて、取得した対象データを変換して、別の変換ベクトルを生成する
     を特徴とする請求項4記載の署名生成装置。
  11.  前記秘密鍵ベクトルは、加算、減算、乗算と、元のサイズを示すノルムが定義されたN次元配列の集合である環Rと正整数qに対し、前記環Rの元f,gおよび、f(mod q)の逆数である元Fqと、f×G-g×F=qを満たす(F,G)とに基づく、前記元の4つ組(f,g,F,G)から得られ、
     前記公開鍵ベクトルは、前記正整数qと前記元gおよび前記元Fqの積とmod qで合同である元hから得られる
     ことを特徴とする請求項4に記載の署名生成装置。
  12.  データを複数に分割して多次元のベクトルとして表わし、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠として、署名生成装置により、第1サイズより小さい秘密の攪乱ベクトルを用いて、対象データから変換により前記変換ベクトルが生成され、秘密鍵ベクトルを基底として定まる格子において、前記変換ベクトルに最近接する格子点である署名ベクトルの一部として生成された署名データを検証する署名検証装置であって、
     前記対象データ及び署名データを取得する取得手段と、
     公開鍵ベクトルを記憶している記憶手段と、
     公開鍵ベクトルと前記署名データとを用いて、前記署名ベクトルを復元し、前記対象データによるベクトルと復元された前記署名ベクトルとの距離が、前記第1サイズより大きい第2サイズ以下であるか否かを検証する検証手段と、
     第2サイズ以下であるとき、検証が成功したことを示す成功情報を出力する出力手段と
     を備えることを特徴とする署名検証装置。
  13.  データを複数に分割して多次元のベクトルとして表わし、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠として、対象データに対する署名データを生成する署名生成装置において用いられる署名生成方法であって、
     対象データを取得する取得ステップと、
     第1サイズより小さい秘密の攪乱ベクトルを用いて、取得した対象データを変換して、変換ベクトルを生成するデータ変換ステップと、
     秘密鍵ベクトルを基底として定まる格子において、前記変換ベクトルに最近接する格子点を求めて前記変換ベクトルに対する署名ベクトルを生成し、前記署名ベクトルの一部を署名データとする署名生成ステップと、
     前記対象データと生成した署名データとを出力する出力ステップと
     を含むことを特徴とする署名生成方法。
  14.  データを複数に分割して多次元のベクトルとして表わし、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠として、対象データに対する署名データを生成するコンピュータにおいて用いられる署名生成用のコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
     前記コンピュータに、
     対象データを取得する取得ステップと、
     第1サイズより小さい秘密の攪乱ベクトルを用いて、取得した対象データを変換して、変換ベクトルを生成するデータ変換ステップと、
     秘密鍵ベクトルを基底として定まる格子において、前記変換ベクトルに最近接する格子点を求めて前記変換ベクトルに対する署名ベクトルを生成し、前記署名ベクトルの一部を署名データとする署名生成ステップと、
     前記対象データと生成した署名データとを出力する出力ステップと
     を実行させる前記コンピュータプログラムを記録している記録媒体。
  15.  データを複数に分割して多次元のベクトルとして表わし、最小ベクトル問題又は近似最小ベクトル問題を安全性の根拠として、署名する署名生成装置及び検証する署名検証装置から構成されるシステムであって、
     前記署名生成装置は、
     対象データを取得する取得手段と、
     秘密鍵ベクトルを秘密に記憶している秘密記憶手段と、
     第1サイズより小さい秘密の攪乱ベクトルを用いて、取得した対象データを変換して、変換ベクトルを生成するデータ変換手段と、
     秘密鍵ベクトルを基底として定まる格子において、前記変換ベクトルに最近接する格子点を求めて前記変換ベクトルに対する署名ベクトルを生成し、前記署名ベクトルの一部を署名データとする署名生成手段と、
     前記対象データと生成した署名データとを出力する出力手段とを備え、
     前記署名検証装置は、
     前記対象データ及び署名データを取得する取得手段と、
     公開鍵ベクトルを記憶している記憶手段と、
     公開鍵ベクトルと前記署名データとを用いて、前記署名ベクトルを復元し、前記対象データによるベクトルと復元された前記署名ベクトルとの距離が、前記第1サイズより大きい第2サイズ以下であるか否かを検証する検証手段と、
     第2サイズ以下であるとき、検証が成功したことを示す成功情報を出力する出力手段と
     を備えることを特徴とするシステム。
PCT/JP2009/000923 2008-04-09 2009-03-02 署名及び検証方法、署名生成装置並びに署名検証装置 WO2009125537A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP09730374A EP2264941A1 (en) 2008-04-09 2009-03-02 Signature and verification method, signature generation device, and signature verification device
US12/921,507 US8452975B2 (en) 2008-04-09 2009-03-02 Signature and verification method, signature generation device, and signature verification device
JP2010507130A JP5341878B2 (ja) 2008-04-09 2009-03-02 署名及び検証方法、署名生成装置並びに署名検証装置
CN200980108247.2A CN101965711B (zh) 2008-04-09 2009-03-02 签名及验证方法、签名生成装置及签名验证装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008101281 2008-04-09
JP2008-101281 2008-04-09

Publications (1)

Publication Number Publication Date
WO2009125537A1 true WO2009125537A1 (ja) 2009-10-15

Family

ID=41161675

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/000923 WO2009125537A1 (ja) 2008-04-09 2009-03-02 署名及び検証方法、署名生成装置並びに署名検証装置

Country Status (5)

Country Link
US (1) US8452975B2 (ja)
EP (1) EP2264941A1 (ja)
JP (1) JP5341878B2 (ja)
CN (1) CN101965711B (ja)
WO (1) WO2009125537A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101026021B1 (ko) * 2009-09-16 2011-03-30 포항공과대학교 산학협력단 시공간 블록 부호의 검출 방법 및 장치
IL205803A0 (en) * 2010-05-16 2010-12-30 Yaron Sella Collision-based signature scheme
US20120291096A1 (en) * 2011-05-12 2012-11-15 Nokia Corporation Method and apparatus for secure signing and utilization of distributed computations
JP5790286B2 (ja) * 2011-08-12 2015-10-07 ソニー株式会社 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
JP5790318B2 (ja) * 2011-08-29 2015-10-07 ソニー株式会社 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
CN103780382B (zh) * 2014-01-13 2017-01-18 华南理工大学 一种基于超球面的多变量公钥加密/解密系统及方法
JP2016116134A (ja) * 2014-12-16 2016-06-23 パナソニックIpマネジメント株式会社 署名検証装置、署名生成装置、署名処理システム、署名検証方法及び署名生成方法
US10728227B2 (en) 2016-08-02 2020-07-28 X-Logos, LLC Methods and systems for enhanced data-centric encryption systems using geometric algebra
US9698986B1 (en) * 2016-09-23 2017-07-04 ISARA Corporation Generating shared secrets for lattice-based cryptographic protocols
WO2018187604A1 (en) * 2017-04-07 2018-10-11 X-Logos, LLC Methods and systems for enhanced data-centric scalar multiplicative homomorphic encryption systems using geometric algebra
US11080365B2 (en) * 2018-10-31 2021-08-03 Fujitsu Limited Solving lattice problems using annealing
CN110351097B (zh) * 2019-07-01 2020-08-14 中国科学院数学与系统科学研究院 一种基于格的数字签名方法
DE102020119569B3 (de) * 2020-07-24 2021-12-09 Infineon Technologies Ag Bereitstellen einer kryptografischen Information
WO2022035909A1 (en) 2020-08-10 2022-02-17 X-Logos, LLC Methods for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger technology
CN112003707A (zh) * 2020-08-25 2020-11-27 湖南宸瀚信息科技有限责任公司 一种抗量子计算攻击的区块链数字签名加密方法及系统
US11683151B2 (en) 2020-09-17 2023-06-20 Algemetric, Inc. Methods and systems for distributed computation within a fully homomorphic encryption scheme using p-adic numbers
KR102474894B1 (ko) * 2022-09-01 2022-12-06 (주)노르마 양자 내성 암호화 알고리즘에 기초한 서명과 인증을 수행함으로써 가상 사설 네트워크를 제공하는 가상 사설 네트워크 형성 방법 및 이를 수행하는 가상 사설 네트워크 운용 시스템

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000516733A (ja) 1996-08-19 2000-12-12 エヌティーアールユー クリプトシステムズ,インコーポレーテッド 公開鍵暗号システム方法および装置
JP2002230202A (ja) * 2001-01-31 2002-08-16 Ricoh Co Ltd 電子データ化方法及び装置
WO2003050998A1 (en) 2001-12-07 2003-06-19 Ntru Cryptosystems, Inc. Digital signature and authentication method and apparatus
JP2005072917A (ja) * 2003-08-22 2005-03-17 National Institute Of Information & Communication Technology 暗号化データ作成装置および方法ならびにそのプログラム
JP2006053715A (ja) * 2004-08-11 2006-02-23 Kddi Corp 擬似乱数生成装置および方法
WO2006114948A1 (ja) * 2005-04-18 2006-11-02 Matsushita Electric Industrial Co., Ltd. 署名生成装置および署名検証装置
JP2007288230A (ja) * 2006-03-24 2007-11-01 Tatsuomi Sakata コンピュータ通信装置、複号情報生成装置、プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6959085B1 (en) * 1999-05-03 2005-10-25 Ntru Cryptosystems, Inc. Secure user identification based on ring homomorphisms
WO2002091664A1 (en) 2001-05-04 2002-11-14 Docomo Communications Laboratories Usa, Inc. Ring-based signature scheme
US20040151309A1 (en) 2002-05-03 2004-08-05 Gentry Craig B Ring-based signature scheme

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000516733A (ja) 1996-08-19 2000-12-12 エヌティーアールユー クリプトシステムズ,インコーポレーテッド 公開鍵暗号システム方法および装置
JP2002230202A (ja) * 2001-01-31 2002-08-16 Ricoh Co Ltd 電子データ化方法及び装置
WO2003050998A1 (en) 2001-12-07 2003-06-19 Ntru Cryptosystems, Inc. Digital signature and authentication method and apparatus
JP2005072917A (ja) * 2003-08-22 2005-03-17 National Institute Of Information & Communication Technology 暗号化データ作成装置および方法ならびにそのプログラム
JP2006053715A (ja) * 2004-08-11 2006-02-23 Kddi Corp 擬似乱数生成装置および方法
WO2006114948A1 (ja) * 2005-04-18 2006-11-02 Matsushita Electric Industrial Co., Ltd. 署名生成装置および署名検証装置
JP2007288230A (ja) * 2006-03-24 2007-11-01 Tatsuomi Sakata コンピュータ通信装置、複号情報生成装置、プログラム

Non-Patent Citations (9)

* Cited by examiner, † Cited by third party
Title
D.E. KNUTH: "Seminumerical Algorithms", vol. 2, 1981, ADDISON-WESLEY, article "THE ART OF COMPUTER PROGRAMMING", pages: 129 - 130
EFFICIENT EMBEDDED SECURITY STANDARDS (EESS) EESS #1: IMPLEMENTATION ASPECTS OFNTRUENCRYPT AND NTRUSIGN", VER. 2.0, 20 June 2003 (2003-06-20)
J. HOFFSTEIN; J. PIPHER; J. SILVERMAN: "Advances in Cryptology-Eurocrypt '01, LNCS", vol. 2045, 2001, SPRINGER-VERLAG, article "NSS: An NTRU Lattice-Based Signature Scheme", pages: 123 - 137
J. HOFFSTEIN; J. PIPHER; J.H. SILVERMAN: "Lecture Notes in Computer Science", vol. 1423, 1998, SPRINGER-VERLAG, article "NTRU: A ring based public key cryptosystem", pages: 267 - 288
J. HOFFSTEIN; N. GRAHAM; J. PIPHER; J. SILVERMAN; W. WHYTE: "CT-RSA'03, LNCS", vol. 2612, 2003, SPRINGER-VERLAG, article "NTRUSign: Digital Signatures Using the NTRU Lattice", pages: 122 - 140
JEFFREY HOFFSTEIN: "NTRUSign: Digital Signatures Using the NTRU Lattice", ASIACRYPT, vol. 2001, 2001, pages 1 - 31, XP008140131, Retrieved from the Internet <URL:http://www.ntru.com/cryptolab/introntrusign.htm> [retrieved on 20090319] *
JEFFREY HOFFSTEIN: "NTRUSign: Digital Signatures Using the NTRU Lattice", CT-RSA, vol. 2003, 2003, pages 1 - 18, XP008140135, Retrieved from the Internet <URL:http://www. ntru.com/cryptolab/pdf/NTRUSign_RSA.pdf> [retrieved on 20090319] *
O. GOLDREICH; S. GOLDWASSER; S. HALEVI: "Proc. CRYPTO '97, LNCS", vol. 1294, 1997, SPRINGER-VERLAG, article "Public-key cryptography from lattice reduction problems", pages: 112 - 131
TATSUAKI OKAMOTO; HIROSUKE YAMAMOTO: "Gendai Angoka", 1997, SANGYO TOSHO

Also Published As

Publication number Publication date
US20110016325A1 (en) 2011-01-20
EP2264941A1 (en) 2010-12-22
CN101965711B (zh) 2014-12-03
JPWO2009125537A1 (ja) 2011-07-28
JP5341878B2 (ja) 2013-11-13
US8452975B2 (en) 2013-05-28
CN101965711A (zh) 2011-02-02

Similar Documents

Publication Publication Date Title
JP5341878B2 (ja) 署名及び検証方法、署名生成装置並びに署名検証装置
CN104539423B (zh) 一种无双线性对运算的无证书公钥密码体制的实现方法
JP4620669B2 (ja) 署名生成装置、署名検証装置、それらの方法、および集積回路
JP4548737B2 (ja) 署名生成装置及び署名検証装置
JP4899867B2 (ja) グループ署名方式
JP4544538B2 (ja) 署名生成装置、鍵生成装置及び署名生成方法
JP4830860B2 (ja) 署名装置、検証装置、証明装置、暗号化装置、及び復号化装置
JP4546231B2 (ja) Idベース署名及び暗号化システムおよび方法
JP4776906B2 (ja) 署名生成方法及び情報処理装置
JP2009171521A (ja) 電子署名方式、電子署名プログラムおよび電子署名装置
US20130073857A1 (en) One way authentication
CN106936584B (zh) 一种无证书公钥密码系统的构造方法
EP2061178A1 (en) Electronic signature system and electronic signature verifying method
TWI511517B (zh) Information processing apparatus, information processing method, program and recording medium
WO2006114948A1 (ja) 署名生成装置および署名検証装置
JP2000502196A (ja) 制御自写像公開鍵システム
JP5058654B2 (ja) 電子署名装置、方法、およびプログラム
Tahat et al. A new digital signature scheme with message recovery using hybrid problems
Gentry How to compress Rabin ciphertexts and signatures (and more)
Andreevich et al. On Using Mersenne Primes in Designing Cryptoschemes
Prasad et al. Digital signatures
Qi A zero-knowledge proof of digital signature scheme based on the elliptic curve cryptosystem
JP2007151073A (ja) 鍵生成プログラム
JP2007329889A (ja) 公開鍵認証プログラム及び電子署名プログラム
JP6528560B2 (ja) 指標算出システム、指標算出方法、指標算出プログラム、及び、照合システム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980108247.2

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09730374

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010507130

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2009730374

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 12921507

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE