WO2007074836A1 - 署名生成装置、署名生成方法及び署名生成プログラム - Google Patents

署名生成装置、署名生成方法及び署名生成プログラム Download PDF

Info

Publication number
WO2007074836A1
WO2007074836A1 PCT/JP2006/325945 JP2006325945W WO2007074836A1 WO 2007074836 A1 WO2007074836 A1 WO 2007074836A1 JP 2006325945 W JP2006325945 W JP 2006325945W WO 2007074836 A1 WO2007074836 A1 WO 2007074836A1
Authority
WO
WIPO (PCT)
Prior art keywords
decomposition
group
value
signature
signature generation
Prior art date
Application number
PCT/JP2006/325945
Other languages
English (en)
French (fr)
Inventor
Yuichi Futa
Motoji Ohmori
Masahiro Mambo
Original Assignee
Matsushita Electric Industrial Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to CN200680049826.0A priority Critical patent/CN101351988B/zh
Priority to US12/158,033 priority patent/US8280039B2/en
Priority to JP2007551991A priority patent/JP5001176B2/ja
Publication of WO2007074836A1 publication Critical patent/WO2007074836A1/ja

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • 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/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Definitions

  • Signature generation apparatus signature generation method, and signature generation program
  • the present invention relates to a software obfuscation method as an information security technique, and particularly to a digital signature method obfuscation method.
  • Patent Document 1 describes a method for making it difficult to perform a software analysis by converting an operation and an operation area to make it difficult to estimate an operation area before conversion.
  • conversion is performed by primary conversion or the like.
  • the key and data are converted, the converted data is added in the converted area, and the result of the key and data addition is performed by performing an inverse conversion on the result. Get.
  • X indicates multiplication.
  • the output module outputs the operation result c.
  • the conversion module and the inverse conversion module are realized so as to be difficult to analyze, only the ta, tb, and tab can be analyzed by a third party (analyst). Since it is difficult to guess, it becomes possible to hide a and b.
  • Patent Document 1 data is converted by primary conversion, and the data itself is analyzed.
  • the type of operation that is, “addition” is “addition” even at the conversion destination. It's running and you can even hide the type of operation.
  • Step SI Hash (m) is calculated.
  • Hash (m) is the hash value of m.
  • a hash function for obtaining a hash value from a message is, for example, SHA-1. Noh For details on the cache function, see pages 192 to 195 of Non-Patent Document 1.
  • x (R) represents the x coordinate of R.
  • Step S4 (h + r X ks) / k mod q is calculated.
  • the digital signature S is verified in the following steps, and the verification result (OK or NG) is output.
  • Patent Document 1 U.S. Pat.No. 6,594,761
  • Patent Document 2 International Publication No. 2005-098795 Pamphlet
  • Patent Document 3 Patent No. 3,402,441
  • Non-patent document 1 Tatsuaki Okamoto, Hiroshi Yamamoto, “Modern cryptography”, industrial books (1997)
  • Non-Patent Document 2 Henri Cohen, A Course in Computational Algebraic Number Theory ", GTM 138, Springer— Verlag, 1993, pp. 16— 19
  • Non-Patent Document 3 1. Blake, G. Seroussi and N. Smart," Elliptic Curve s in Cryptography ", CAMBRIDGE UNIVERSITY PRESS, 1999
  • Non-Patent Document 4 N. Kunihiro and K. Koyama," Two Discrete Log Algorithms for Super— Anomalous Elliptic Curves ", SCIS '99, 1999, pp.
  • the above-mentioned conventional method converts the operation (addition), and it is possible to make it difficult to analyze the part that uses the operation.
  • the present invention provides a signature generation device, a signature generation method, a signature generation program, a recording medium, and an integrated circuit that can make it difficult to analyze a value used for signature generation processing.
  • the purpose is to provide.
  • the present invention uses the discrete logarithm problem on the group G and the group Ga as the basis of security, and the basic element P on the group G! /, And on the group Ga.
  • This is a signature generator that generates a digital signature for a message by performing a ⁇ operation that repeats the basic operation multiple times.
  • Each decomposition pair includes a plurality of decomposition pairs, each decomposition pair includes a first decomposition value and a second decomposition value, and each first decomposition value is an arbitrary positive integer for the base element P.
  • each second decomposition value is used in the first decomposition value corresponding to the second decomposition value for the basic element Pa.
  • the two or more first decomposition values are subjected to a basic operation of the group G to generate a first power element, which is included in the selected decomposition set, and the two or more first decomposition values
  • the second decomposition value corresponding to each of the decomposition values is subjected to basic operation of the group Ga to generate a second power element, and the generated first power is generated.
  • the element and the message are converted into elements on the group Ga, and the converted first power element, the converted message, and the second power element are subjected to the operation on the group Ga, and the first The discrete logarithm and the second discrete logarithm are calculated, and the first and second discrete logarithms are used to calculate the message log.
  • the signature generation apparatus can conceal the calculation itself other than concealment of the value used for the digital signature.
  • each of the plurality of numbers is a number expressed by a bit string having a predetermined strength having a length of 2 or more, and a decomposition pair is associated with each bit value of the bit string having the predetermined strength.
  • the selection means converts the selected number u into a bit representation consisting of the bit string of the predetermined length
  • the decomposition value storage means converts the decomposition set consisting of a decomposition pair corresponding to the value of each bit. You might choose the power, too.
  • the signature generation apparatus can easily select a hidden value to be used.
  • the generation means performs the basic operation in the group G on the two or more first decomposition values included in the decomposition set including the decomposition pairs selected for each bit value. For each second decomposition value that generates a power of 1 and is included in the decomposition set consisting of decomposition pairs selected for each bit value and that corresponds to each of the two or more first decomposition values Then, the basic operation in the group Ga may be performed to generate the second power element.
  • the first power element includes two or more values
  • the signing means takes a noise value for the message as a power, and the power in the group Ga with respect to the basic element Pa.
  • the first data is converted using a conversion unit that converts the hash value into a converted hash value belonging to the group Ga and one value included in the first power element.
  • the signature generation apparatus can conceal the values and operations to be used in the signature means.
  • the signature generation device further performs basic calculation of the group Ga on the basic element Pa using the secret key as a trap, stores the converted secret key belonging to the group Ga, and And a second secret key storage means, wherein the second calculation unit is an element on the group Ga obtained by performing a key operation of the group Ga on the converted secret key as the key of the first data.
  • the third power element may be calculated by applying a basic operation on the group Ga to a certain calculation result and the converted hash value.
  • the signature generation apparatus can conceal the value to be used and the calculation in the second calculation unit.
  • the group G and the group Ga are multiplicative groups of a remainder integer ring, and the basic operation in each of the group G and the group Ga is a multiplication operation that performs multiplication on each element.
  • the power calculation in each of the group G and the group Ga may be a power calculation with a positive integer as a power.
  • the signature generation apparatus conceals the operation because the operation used to generate the first, second, and third power elements is a multiplicative operation and is different from the power operation.
  • the group G is a group of elliptic curves
  • the subgroup Sa is a group of Anomalous elliptic curves
  • the basic operation in each of the groups G and Ga is in each element.
  • it is an operation that performs addition on the elliptic curve
  • the ⁇ operation in each of the group G and the group Ga may be an operation that performs multiplication on the positive integer on the elliptic curve.
  • the group G is a group of elliptic curves
  • the group Ga is a direct product of two anomalous elliptic curves
  • the basic operation in each of the group G and the group Ga is an elliptic for each element. It is an operation that performs addition on a circular curve
  • the ⁇ operation in each of the group G and the group Ga may be an operation that performs multiplication on a positive integer on an elliptic curve.
  • the calculation used to generate the first, second, and third power elements is an addition calculation on an elliptic curve, which is different from an integer addition calculation. So you can hide the calculation.
  • the present invention uses the discrete logarithm problem on group G and group Ga as the basis of security, and uses basic element P on group G! And basic element Pa on group Ga! /
  • a signature generation device that generates a digital signature for a message by performing an operation that repeats the operation a plurality of times.
  • Each of the plurality of numbers is associated with a decomposition set in advance, and each decomposition set includes a plurality of combinations.
  • Each decomposition pair includes a first decomposition value and a second decomposition value, and each first decomposition value is subjected to a ⁇ operation with respect to the base element P as an arbitrary positive integer.
  • the second decomposition value is an element on the group G calculated by the above, and each second decomposition value is a ⁇ operation with a positive integer used in the first decomposition value corresponding to the second decomposition value as the base element Pa.
  • An element on the group Ga calculated by being applied, and the signature generation apparatus includes a decomposition value storage unit that stores the plurality of decomposition sets; A selection means for randomly selecting a number u from a plurality of numbers, and selecting a decomposition pair corresponding to the selected number u from the decomposition value storage means, and a first decomposition value included in the selected decomposition pair And the message on the group Ga, and the operation on the group Ga is performed on the converted first decomposition pair, the converted message, and the second decomposition value included in the selected decomposition pair.
  • signing means for calculating the first and second discrete logarithms by solving the discrete logarithm problem and generating a digital signature for the message using the calculated first and second discrete logarithms.
  • the signature generation apparatus can conceal the value used for the digital signature.
  • FIG. 1 is a block diagram showing an outline of a signature generation system 1.
  • FIG. 2 is a block diagram showing a configuration of signature generation apparatus 10.
  • FIG. 3 is a diagram showing an example of the data structure of each table stored in the table memory unit 102.
  • FIG. 3 is a diagram showing an example of the data structure of each table stored in the table memory unit 102.
  • FIG. 4 is a diagram showing modules included in a signature generation program 110.
  • FIG. 5 is a block diagram showing a configuration of the table generation device 20.
  • FIG. 6 is a flowchart showing the operation of signature generation processing. Continue to Figure 7.
  • FIG. 7 is a flowchart showing the operation of signature generation processing. Continue from Figure 6.
  • FIG. 8 is a flowchart showing the operation of the table generation device 20.
  • x3 ⁇ (y2 -yl) / (x2—xl) ⁇ 2— xl— x2
  • y3 ⁇ (y2— yl) / (x2— xl) ⁇ (xl— x3) — yl
  • the calculation is a calculation on a finite field in which an elliptic curve is defined.
  • a signature generation system 1 as an embodiment related to the present invention will be described.
  • the signature generation system 1 includes a signature generation device 10, a table generation device 20, a message reception device 30, a signature data transmission device 40, and a signature data reception device 50.
  • the message accepting device 30 accepts the message m by a user operation and outputs the accepted message m to the signature generating device 10.
  • the table generation device 20 generates a plurality of element pairs used in signature generation of the elliptical DSA signature method (hereinafter simply referred to as the "elliptical DSA signature method") in the present invention and the converted secret key.
  • the generated plurality of pairs and the converted private key are stored in the signature generation apparatus 10.
  • the element pair is a set of a group element on the first elliptic curve and a group element on the second elliptic curve.
  • the converted secret key is a calculation result obtained by subjecting the secret key to an elliptic power multiplication operation on the second elliptic curve.
  • the signature generation device 10 outputs the generated signature data S and the message m received from the message reception device 30 to the signature data transmission device 40.
  • the signature data transmitting device 40 is connected to the signature data receiving device 50 via the Internet 60, for example.
  • the signature data transmitting apparatus 40 receives the message m and the signature data S for the message m from the signature generating apparatus 10
  • the signature data receiving apparatus 50 receives the received message m and signature data S via the Internet 60. Send to.
  • the signature data receiving device 50 is sent from the signature data transmitting device 40 via the Internet 60. , When message m and signature data S for message m are received, signature verification is performed.
  • the signature generation apparatus 10 includes a processor 101, a table memory unit 102, a secret parameter memory unit 103, a public parameter memory unit 104, a converted secret key memory unit 105, and a program memory unit. It consists of 106.
  • the processor 101 constitutes a computer system, reads the signature generation program 110 stored in the program memory unit 106, and achieves the function by the cooperation of the read signature generation program 110 and hardware resources.
  • the processor 101 reads out and interprets computer instructions one by one from the signature generation program 110 stored in the program memory unit 106, and operates according to the interpretation result.
  • the table memory unit 102 stores a plurality of element pairs that are pairs of elements belonging to the first group G and elements belonging to the second group Ga.
  • the original pair is generated by the table generation device 20.
  • the first group G is a group based on the points of the elliptic curve E used in the elliptic DS A signature scheme.
  • the group consisting of the points of the elliptic curve on the field GF (p) with the equation of the elliptic curve E is E (GF ( p)), the first group G is E (GF (p)).
  • Ea (GF (pl)) X Ea (GF (p 2 )) be the direct product of the group Ea (GF (p 2 )) consisting of the points of the elliptic curve Ea on GF (p2).
  • ZZnZ is not a ring in the body, it is mathematically not an "elliptic curve on ZZnZ", but here for convenience,
  • the direct product is called a group of elliptic curves on ZZnZ.
  • Z is an integer ring
  • ZZnZ is a remainder integer ring modulo the number n.
  • the prime numbers pi and p2 are different from the base point order q of the elliptic curve E, and are generated and managed in such a way that they cannot be known by a third party.
  • the point Pa (xa, ya) mod n of GF (pl))
  • the elliptic curve Ea is assumed to be the order of the elliptic curve at mod pi, that is, the number of points is pi.
  • Such an elliptic curve on the body GF (pi) is called an Anomalous elliptic curve.
  • the order of the elliptic curve at mod p2 is p2, that is, an anomalous elliptic curve on GF (p2).
  • the elliptic curve on ZZnZ is called the Super-Anomalous elliptic curve.
  • Non-patent document 4 provides details on Superanomalas elliptic curves.
  • the number of bits of the prime number pi is 2Xlen + l bits. Note that the number of bits of pi may be larger than 2Xlen + l. For example, len is 160.
  • the table memory unit 102 stores 2 ⁇ ! 1 element pairs 1 ⁇ — (1, j).
  • i 0 or l
  • j is a value from 0 to len—1, “—” indicates a subscript
  • i and j are PP indices.
  • PP (i, j) (v (i, j) * P mod p, v (i, j) * Pa mod n) It is. * Indicates scalar multiplication on elliptic curve E for P, and scalar multiplication on elliptic curve Ea for Pa.
  • V— (i, j) is a value of len bits. Note that the two points in PP— (i, j) are equal.
  • the table memory unit 102 has an area for storing a plurality of original pairs. As shown in FIG. 3, the tape memory 101, ⁇ 102,..., T103 are stored. That is, the table memory unit 102 has len tables.
  • the table T101 has a table name T110 (here, “table 0”), binary items T12 0, T121 (here, “0”, “1”) and elements in each of the binary items ⁇ 120, 121. Consists of 130 and 131. Since two element pairs are stored in one table, the table memory unit 102 stores 2 X len element pairs by storing len tables.
  • Each element pair is associated with a binary number. Specifically, when the binary value is 0, the original pair in the binary item “0” is associated, and when the binary value is 1, the binary item is “1”. The original pair is associated.
  • the secret parameter memory unit 103 has tamper resistance and stores a prime number pi.
  • storing a point means storing the coordinates of the point.
  • P and q are len-bit prime numbers.
  • the converted private key KST is generated by the table generating device 20.
  • the program memory unit 106 stores the signature generation program 110.
  • the signature generation program 110 includes a hash value generation module 121, a tongue L number generation module 122, a selection module 123, a random element generation module 124, a conversion module 125, a main operation module 126,
  • the module includes an inverse conversion module 127, a multiplication module 128, a division module 129, and a signature data generation module 130.
  • Each module is a computer program configured by combining a plurality of instruction codes in machine language format.
  • the machine language format is a format that is decoded and executed by the processor 101.
  • the hash value generation module 121 receives the input message m from the message receiving device 30, applies a hash function to the received message m, and calculates the hash value h of the message m.
  • the no-shush function is, for example, SHA-1.
  • the hash value generation module 121 outputs the hash value h to the conversion module 125.
  • the random number generation module 122 generates a len-bit random positive integer (L number) u, and outputs the generated random number u to the selection module 123. (6 3) Selection module 123
  • the selection module 123 receives the random number u from the random number generation module 122 and converts the received random number u into a bit representation.
  • the selection module 123 selects the selected PP— (u— 0, 0), PP_ (u_l, 1), PP_ (u_2, 2), ..., PP— (u— (len— 1), len— 1) Is output to the random element generation module 124.
  • P— (u— i, i) is stored in the public parameter memory unit 104 using the parameters & of the elliptic curve E, b, prime p, and the base point P on the elliptic curve E, and the elliptic curve
  • * Pk (v— (u— 0, 0)
  • Pak Pak mod n
  • the random element generation module 124 outputs the calculated Pk to the main arithmetic module 126 and outputs the calculated Pak to the inverse conversion module 127.
  • the conversion module 125 outputs the calculated hPa to the main calculation module 126.
  • the main calculation module 126 receives Pk from the random element generation module 124 and receives hPa from the conversion module 125.
  • x (Pk) represents the X coordinate of P k.
  • the main arithmetic module 126 outputs the calculated r to the signature data generation module 130 and outputs the calculated Qa to the inverse conversion module 127.
  • the inverse conversion module 127 receives Pak from the random element generation module 124 and Qa from the main arithmetic module 126.
  • the inverse transform module 127 uses the prime number pi stored in the secret parameter memory unit 103 to calculate the discrete logarithm cQ of Qa with respect to Pa mod pi and the distributed logarithm ck of Pak with respect to Pa mod pi.
  • the inverse transform module 127 outputs the calculated discrete logarithm cQ, ck to the multiplication module 128. First, the processing for obtaining the discrete logarithm cQ of Qa is shown.
  • the discrete logarithms cQ and ck calculated in steps S21 and S31 are solutions of the discrete logarithm problem on the Anomalous elliptic curve.
  • the inverse conversion module 127 is executed in an area having tamper resistance by hardware measures or software measures in order to make it difficult to analyze the processing contents.
  • the multiplication module 128 When receiving the discrete logarithm cQ, ck from the inverse transform module 127, the multiplication module 128 generates a random number ⁇ 8.
  • the multiplication module 128 uses the order q of the base point P on the elliptic curve E stored in the public parameter memory unit 104 to multiply the discrete logarithm cQ and ck generated by
  • the multiplication module 128 outputs the calculated cQ, ck to the division module 129.
  • the multiplication module 128 is executed in an area having tamper resistance by hardware countermeasures and software countermeasures in order to make it difficult to analyze the processing contents.
  • the division module 129 receives cQ, ck from the multiplication module 128.
  • the division module 129 calculates cki which is an inverse element of ck, mod q.
  • Non-patent document 2 provides details on the calculation of the inverse element.
  • the division module 129 outputs the calculated s to the signature data generation module 130. (6-10) Signature data generation module 130
  • the signature data generation module 130 receives r from the main calculation module 126 and receives s from the division module 129.
  • the signature data generation module 130 The message m received by the hash value generation module 121 and the generated signature data S are output to the signature data transmitting apparatus 40.
  • the table generation device 20 includes a public parameter memory unit 201, a random number generation unit 202, a group calculation unit 203, and a storage processing unit 204.
  • the random number generation unit 202 generates one len-bit random number ks (however, 0 to ks to q).
  • the random number ks generated by the random number generation unit 202 serves as a secret key.
  • the group calculation unit 203 uses the generated scalar multiples V— (i, j) * P and scalar multiples v— (i, j) * Pa to generate the tables ⁇ 101, ⁇ 102, ⁇ ⁇ ⁇ ⁇ Generates T103. As a result, the group operation unit 203 generates 2 X len element pairs.
  • the table memory unit 102 stores in advance len—one table ⁇ 101, ⁇ 102,..., T103 by the table generation device 20, and the converted secret key memory unit 105 stores the converted secret key KST in advance. It is assumed that it is stored by the table generator 20.
  • the signature generation device 10 reads and interprets computer instructions one by one from the signature generation program 110 stored in the program memory unit 106 by the processor 101, and interprets the table memory unit 102 and the secret parameter according to the interpretation result.
  • the signature data S for the message m is generated while reading out the memory unit 103, the public parameter memory unit 104, and the converted private key memory unit 105. For specific operation of the generation process of signature data S, It will be described later.
  • the hash value generation module 121 also accepts the message m as an input and the message acceptance device 30 (step S100), and calculates the hash value h of the accepted message m (step S105).
  • the random number generation module 122 generates u as a positive integer of len bits (L number) (step S 11 0).
  • the random element generation module 124 selects the PP— (u—i, i) selected by the selection module 123.
  • P_ (u_i, i), Pa_ (u_i, i)) (i 0, 1, 2, ..., len— 1)
  • Pk (v_ (u_0, 0) * P + v_ (u_l, 1) * PH hv_ (u_l en-1, len ⁇ l) * P) is calculated (step SI 20).
  • x (Pk) indicates the X coordinate of Pk.
  • the main operation module 126 includes the converted secret key KST stored in the converted secret key memory unit 105, the parameters aa and bb of the elliptic curve Ea stored in the public parameter memory unit 104, the number of composites Using n, r * KST is calculated on the elliptic curve Ea (step S140).
  • the inverse transform module 127 calculates a discrete logarithm cQ of Qa with respect to Pa mod pi using the prime number pi stored in the secret parameter memory unit 103 (step S150).
  • the inverse transform module 127 calculates the discrete logarithm ck of Pak with respect to Pa mod pi using the prime number pi stored in the secret parameter memory unit 103 (step S155).
  • the multiplication module 128 generates a random number ⁇ (step S160).
  • the division module 129 calculates cki which is the inverse element of mod ck of ck calculated in step S170 (step S175).
  • the signature data generation module 130 outputs the message m received by the hash value generation module 121 and the generated signature data S to the signature data transmitting apparatus 40. 1. 6 Operation of table generator 20
  • the random number generation unit 202 generates one len-bit random number (secret key) ks (step S 205).
  • ks is a number satisfying 0 and ks ⁇ q.
  • the group operation unit 203 uses the generated scalar multiples V— (i, j) * P and scalar multiples v— (i, j) * Pa to generate len tables ⁇ 101, ⁇ 102, ⁇ T103 is generated (Step S220
  • the group calculation unit 203 uses the parameters aa and bb of the elliptic curve Ea stored in the public parameter memory unit 201, the composite number n, and the point Pa on the elliptic curve Ea to multiply the random number ks by a scalar multiple.
  • Point (translated secret key) KST ks * Pa is calculated (step S225).
  • the signature generation program 110 in the above embodiment generates the same signature as the signature generated in the conventional elliptical DSA signature scheme signature generation.
  • the random element generation module 124 calculates a random point Pk. Further, in the signature generation program 110, the random element generation module 124 calculates Pak in the superanomalous elliptic curve Ea.
  • the point on the elliptic curve E and the point on the Superanomas elliptic curve Ea included in the original pair of the table memory unit 102 have the same discrete logarithm with respect to the point P and the point Pa, respectively.
  • the source module is selected by the selection module 123 and the points included in the selected source pair are added on the elliptic curves E and Ea by the random element generation module 124, so that the discrete logarithm of Pk with respect to P and Pa
  • the discrete logarithm of Pak with respect to is the same value (here, v_ (u _0, 0) + v_ (u_l, 1) +... + ⁇ one (u_len— 1, len— 1)).
  • the division module 129 calculates the value s obtained in step S4 of signature generation of the conventional elliptical DSA signature scheme. That is to be calculated.
  • the value r calculated by the main arithmetic module 126 of the signature generation program 110 is k times the point P as in the case of signature generation of the conventional elliptical DSA signature scheme.
  • a set of the value r calculated by the main arithmetic module 126 and the value s calculated by the division module 129 is generated by signature generation of the conventional elliptic DS A signature scheme. Same as S.
  • the signature generation program 110 in the embodiment can generate a signature correctly.
  • the analyst does not know pl and p2 which are factors of n, so in the superanomalous elliptic curve Cannot solve discrete logarithm problem.
  • the analyst can analyze the private key KST and Pak after conversion, but cannot solve the discrete logarithm problem in the superanomalous elliptic curve, so the secret key ks and the discrete logarithm k of Pak are obtained from them. Absent.
  • the present invention makes it difficult for the analyst to analyze in steps S 2 and 4 in which the random number k and the secret key ks are used.
  • step S4 in order to make the analysis of step S4 difficult, a homomorphic transformation using a superanomalous ellipse is used to convert a secret key ks and a random number k into a superomalous oval.
  • the point is converted to a point so that the analyst cannot analyze it. Therefore, since the analyst cannot know the secret key ks, the signature generation system in the embodiment is secure.
  • FIG. 9 shows an operation part corresponding to step S4 in the signature generation of the conventional elliptical DSA signature method among the operations of the elliptical DSA signature method of the present invention.
  • a processing group 310 surrounded by a broken line in FIG. 9 corresponds to step S140 shown in FIG.
  • the processing group 310 is composed of the converted secret key memory unit 105 and the processing group 301 for calculating r * KST.
  • the processing group 311 corresponds to step S 130.
  • the processing group 311 includes a public parameter memory unit 104 and a processing group 302 for calculating hPa.
  • a processing group 303 that adds the results of the processing group 310 and the processing group 311 corresponds to step S145.
  • the processing group 304 for calculating the discrete logarithm cQ corresponds to step S150
  • the processing group 305 for calculating the discrete logarithm ck corresponds to step S155.
  • a processing group 306 that multiplies the calculation results of the processing groups 304 and 305 by ⁇ corresponds to steps S160 force and S170.
  • the processing group 320 is executed in an area that can be analyzed, and as described above, the processing group 321 is executed in an area having tamper resistance by hardware countermeasures and software countermeasures in order to make it difficult to analyze the processing contents. .
  • k * P in the anomalous ellipse Ea is required instead of the random number k. Furthermore, in order to calculate k, the ellipse D The k * Pk of the ellipse E that performs the signature by the SA signature method and the k * Pa of the anomalous ellipse Ea are required.
  • the present invention uses the table memory unit 102, the random number generation module 122, the selection module 123, and the random element generation module 124 to generate k and calculate k * P and k * Pa without using them.
  • the random number k appears.
  • step S2 and step S4 it is necessary to take a hardware measure in the execution of step S2 and step S4.
  • a hardware measure may be taken so that the discrete logarithm problem is solved, and the operation part (processing groups 304, 305, and 306) using the solution becomes difficult to analyze.
  • the parts to which hardware measures are applied are limited, so that it is easier to implement the signature generation device than before.
  • FIG. 10 shows the correspondence between each step by signature generation of the conventional elliptic DSA signature method and the operation by the components of the signature generation device 10 of the present invention. Note that the connection lines between the components are shown in FIGS. 2 and 4, and are omitted in FIG.
  • step S 2 The same value as step S 1 can be realized by the no-shake value generation module 121.
  • step S2 an operation equivalent to that in step S2 can be realized by the configuration group 401 including the table memory unit 102, the random number generation module 122, the selection module 123, and the random source generation module 124.
  • step S3 By calculating the value r performed by the main arithmetic module 126, an operation equivalent to step S3 can be realized.
  • the signature data generation module 130 can realize the same operation as step S5.
  • the secret parameter memory unit 103, the public parameter memory unit 104, and the converted secret key memory unit 105 are used according to the operation of each module.
  • configuration group 402 including the inverse transform module 127 and the multiplication module 128 is a part that requires hardware measures to make analysis difficult as described above.
  • the present invention includes the following cases.
  • the force of setting the number of bits len of p, q, u to 160 is not limited to this. It may be greater than 160, for example 192 or 224. Also, the power to hit n as 1024 bits. /. Greater than 1024! /, F column, 2048 or 4096!
  • the force using the group on the elliptic curve Ea as the second group is not limited to this.
  • the second group may be a multiplicative group of remainder integer rings or other groups.
  • the scalar multiplication operation of the elliptic curve is performed to convert the integer, but the present invention is not limited to this.
  • Group arithmetic operations may be used as arithmetic operations for converting integers.
  • the ⁇ operation is a group basic operation, that is, an operation for obtaining a result obtained by performing an integer number of times of multiplication for a remainder integer ring and addition of an elliptic curve for a group on an elliptic curve. Therefore, the power operation of the multiplication group of the remainder integer ring is the power operation, and the power operation of the group on the elliptic curve is the scalar multiplication of the elliptic curve.
  • the second group Ga is Ea (GF (pl)) X Ea (GF (p2)), The distributed logarithm problem is solved by this “subgroup”, Ea (GF (pl)). The answer is okay.
  • the second group may be a multiplicative group of the remainder integer ring in Patent Document 3.
  • the second group Ga is It may be a multiplicative group on ZZnZ for ⁇ 2). However, m is an integer greater than or equal to 1. At this time, the subgroup of the second group may be a multiplicative group on Z / pl "mZ.
  • the signature generation apparatus 10 generates two random elements (Pk, Pak) using the random element generation module 124, but the present invention is not limited to this.
  • the random element generation module 124 may generate only one random element (for example, Pk).
  • the signature generation apparatus 10 calculates the element Pk of the first group G using the generated random number u. Since the calculation method is the same as the method described in the above embodiment, a description thereof is omitted here. Thereby, the signature generation apparatus 10 can calculate the element Pk of the first group G so that the random number k is not known to a third party.
  • the random element generation module 124 may generate two or more random elements (Pk, Pakl, Pak 2, ..., Pakn) (n is an integer of 1 or more).
  • the selection module 123 in the signature generation apparatus 10 converts the positive integer u generated by the random number generation module 122 into a bit representation consisting of len bits and corresponds to each bit. Although the original pair was selected, it is not limited to this.
  • the selection module 123 may obtain a direct element pair from the positive integer u generated by the random number generation module 122. At this time, the table memory unit 102 applies the element pairs (V—1 * P, v_l * Pa), (v_2 * P, v_2 * Pa), (v_3 *) to positive integers 1, 2, 3, and “”. P, v_3 * Pa), remember ...!
  • the table memory unit 102 stores the element pair (V—u * P, V—u * Pa) corresponding to the positive integer u generated by the random number generation module 122! Select from the table to be used.
  • the table memory unit 102 can store the original pair (V—1 * P, V—l * Pa), (v—2 * P, v_2
  • t is an integer greater than or equal to 1.
  • the selection module 123 selects one or more element pairs as follows.
  • the selection module 123 has a positive integer less than or equal to 11 3 ⁇ 4, the element pair (V—u * P, v_u
  • p is an integer of 2 or more, and each of tl, t2, ..., tp is a number of t or less.
  • the selection module 123 uses the source pairs (v—tl * P, V—tl * Pa), (v—t2 * P, v—t2 * Pa) corresponding to the acquired tl, t2,. .., (V—tp * P, v—tp * Pa) are selected from the table stored in the table memory unit 102.
  • E Pk is calculated by calorie calculation, and Pak is calculated by adding V-11 * Pa, v_t2 * Pa, ..., v_tp * Pa on the elliptic curve Ea.
  • the random element generation module 124 is not limited to the force that calculates Pk and Pak using all len element pairs selected by the selection module 123.
  • the random element generation module 124 may select w element pairs from the selected len element pairs, and calculate Pk and Pak using the selected w element pairs.
  • w is a number from 2 to 1 en.
  • the number w is given in advance, and the random element generation module 124 randomly selects w element pairs from the selected len element pairs.
  • the random element generation module 124 may select only w element pairs corresponding to the bit value “1” from the selected len element pairs, or may select the bit value “0”. You can select only the corresponding w original pairs! /.
  • the random source generation module 124 compares the number of bits having a bit value of 1 with the number of bits having a bit value of "0", and w bits corresponding to the bit value having the larger number You may choose only the source pair.
  • the number w is given in advance, and the random element generation module 124 selects element pairs for w upper bits from the selected len element pairs.
  • the random source generation module 124 may select w pairs of lower bits from the selected len element pairs.
  • the force w which is a number not less than 2 and not more than len, may be a number not less than 1 and not more than len.
  • the disassembly set in the present invention may be stored contents of the table memory unit 102 shown in the above embodiment, or a plurality of disassembly pairs (that is, original pairs) for each positive integer u, that is, It can also be a combination of decomposition pairs selected for each bit of a positive integer u.
  • the signature generation is performed by the signature generation program. However, it is not limited to this.
  • each module included in the signature generation program may serve as a means to achieve the functions described above.
  • each of the above devices is 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.
  • Microprocessor power Each device achieves its functions by operating according to the computer program.
  • the computer program is configured by combining a plurality of instruction codes indicating instructions to the computer in order to achieve a predetermined function.
  • a system LSI is an ultra-multifunctional LSI that is manufactured by integrating multiple components on a single chip. Specifically, it is a computer system that includes a microprocessor, ROM, RAM, and so on. is there. A computer program is stored in the RAM. Microprocessor power The system LSI achieves its functions by operating according to the computer program.
  • each of the above devices may be configured as an IC card that can be attached to and detached from each device or a single module force.
  • the IC card or the module is a computer system composed of a microprocessor, ROM, 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 functions by the microprocessor operating according to the computer program. This IC card or module may be tamper resistant! /.
  • the present invention may be the method described above. Further, the present invention may be a computer program that realizes these methods by a computer, or may be a digital signal that is a power of the computer program.
  • the present invention also provides a computer-readable recording medium capable of reading the computer program or the digital signal, such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD-DVD-ROM, a DVD-RAM, a BD (Blu- ray disc), semiconductor memory, or the like. Further, the present invention may be the computer program or the digital signal recorded on these recording media.
  • the present invention may transmit the computer program or the digital signal via an electric communication line, a wireless or wired communication line, a network typified by the Internet, a data broadcast, or the like.
  • the present invention may be a computer system including a microprocessor and a memory, wherein the memory stores the computer program, and the microprocessor operates according to the computer program.
  • the program or the digital signal may be recorded on the recording medium and transferred, or the program or the digital signal may be transferred via the network or the like. As if implemented by a computer system.
  • the present invention is a source that makes it difficult for an attacker to analyze a program that implements a signature method (for example, DSA signature method or ECDSA signature method) based on the discrete logarithm problem on a finite field or elliptic curve. It aims to provide a code obfuscation method.
  • a signature method for example, DSA signature method or ECDSA signature method
  • the present invention is a signature generation program that is executed by a signature generation device that generates a digital signature for a message using a secret key, and the signature generation device includes a first group G belonging to a first group G. A plurality of element pairs that are pairs of elements and second elements belonging to the second group Ga, a table memory unit that stores the signature generation program, a program memory unit that stores the signature generation program, and the program A processor that reads computer instructions one by one from the signature generation program stored in the memory unit, interprets them, and operates in accordance with the interpretation results.
  • the signature generation program generates a first integer.
  • the first element P and the second element are respectively the first basic element P that is a predetermined element belonging to the first group G and the second element that is a predetermined element belonging to the second group Ga.
  • the power is obtained by performing a power operation in the first group G of the first base element P with the power as a power.
  • the selection module may select one pair for each bit value of the first integer.
  • the third element includes the elements belonging to the first group G included in each of the pairs selected by the selection module.
  • the fourth element is the second group included in each of the pairs selected by the selection module. It may be an element of the second group Ga obtained as a result of performing the basic operation of the second group Ga on all elements belonging to Ga.
  • the signature generation program further performs an arithmetic operation on the second group Ga, thereby calculating the integer A conversion module for converting into elements belonging to the second group, a main operation module for performing basic operations on the second group Ga, and the second group Ga or the second group Ga
  • the second group Ga subgroup Sa includes a reverse conversion module that performs reverse conversion of the conversion performed by the conversion module in Sa.
  • the signature generation device further includes the second key generated from the secret key and the second basic element.
  • a post-conversion private key memory unit that stores a post-conversion private key that belongs to a group, and the signature generation program is further stored in the post-conversion private key memory unit.
  • secret A post-conversion secret key calculation module that performs a key operation of the second group Ga using a key.
  • the first group G and the second group Ga may be a multiplicative group of a residue integer ring.
  • It may be a multiplicative group of Z.
  • the positive integer m may be 2.
  • the first group G is an elliptic curve group
  • the subgroup Sa is an Anomalous elliptic curve group. It may be a group.
  • the second group Ga may be a direct product of a group of two Anomalous elliptic curves.
  • the inverse conversion module uses the element belonging to the second group Ga as the element. Even if there is a reduction means to reduce to the elements belonging to the subgroup Sa.
  • the present invention is an arithmetic program to be executed by an arithmetic device that performs group operations, and the arithmetic device includes a first element belonging to the first group G and a second group Ga. Storing a plurality of pairs with the second element to which it belongs, storing the table memory unit, storing the signature generation program, storing the signature generation program, and storing the signature generation program stored in the program memory unit; A processor that reads out computer instructions one by one from the program, interprets them, and operates in accordance with the interpretation results, and the arithmetic program generates an integer generator module that generates a first integer and the first integer.
  • a selection module for selecting the plurality of pairs from the plurality of pairs stored in the table memory unit, and using the plurality of pairs selected by the selection module. Belongs to group G of 1 3 yuan and the second group of A group operation module for calculating a fourth element belonging to Ga, wherein the first element and the second element are each a first basic element that belongs to the first group G given in advance.
  • the power is the power of the power
  • the element obtained by performing the ⁇ operation in the first group G of the first basic element P and the ⁇ operation in the second group Ga of the second basic element Pa taking the power of ⁇ as the power It is characterized by being an element obtained by performing.
  • the present invention is a signature generation apparatus that generates a digital signature for a message using a secret key, and belongs to the first element belonging to the first group G and the second group Ga.
  • a table memory unit storing a plurality of pairs with the second element; an integer generation unit generating a first integer; and a plurality of units stored in the table memory unit based on the first integer A plurality of pairs selected by the selection unit and a plurality of the pairs selected by the selection unit, and a third element belonging to the first group G and the second
  • the selection unit may select one pair for each bit value of the first integer.
  • the third element is an element belonging to the first group G included in each of the pairs selected by the selection unit.
  • the fourth group is an element of the first group G obtained as a result of performing the basic operation of the first group G for all, and the fourth element is an individual of the pair selected by the selection unit.
  • the element may be an element of the second group Ga obtained as a result of performing the basic operation of the second group Ga on all the elements belonging to the second group Ga included.
  • the signature scheme in the signature generation program shown above is a finite field or elliptic curve. Since the discrete logarithm problem on the line is the basis of security, attackers can make it difficult to analyze and its value is great.
  • the signature generation device shown above since the signature generation device shown above generates signatures using a signature method based on the discrete logarithm problem on a finite field or elliptic curve, the attacker can make analysis difficult. Its value is great.
  • the present invention is an arithmetic device that performs a ⁇ operation that repeats a basic operation a plurality of times for a basic element P on a group G, using the discrete logarithm problem on the group G as a basis for safety.
  • Each of the plurality of numbers is associated with a decomposition set in advance, each decomposition set includes a plurality of decomposition values, and each decomposition value is subjected to a ⁇ operation with respect to a base element P as an arbitrary positive integer.
  • the calculation unit is an element on the calculated group G, and the computing device selects a number u randomly from the plurality of decomposition pairs, a decomposition pair storage means for storing the plurality of decomposition sets, and sets the selected number u to Selecting means for selecting a corresponding decomposition set from the decomposition value storage means; and generating means for generating a power element by performing the basic operation of the group G on all decomposition values included in the selected decomposition set. It is characterized by providing.
  • the operation itself can be concealed only by concealing the value used for the operation.
  • Each apparatus, each method, and computer program constituting the present invention can be used in a management, continuous, and repetitive manner in any industry where information needs to be handled safely and reliably.
  • each apparatus, each method, and each computer program constituting the present invention can be manufactured and sold in the electrical appliance manufacturing industry in a management manner, continuously and repeatedly.

Landscapes

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

Abstract

 署名生成の処理に用いられる値を解析困難にすることのできる署名生成装置を提供する。  署名生成装置は、乱数生成モジュールにより、lenビットからなる乱数uを生成し、選択モジュールにより、生成した乱数uをビット表現に変換し、各ビット値に対応する元対をテーブルメモリ部から取得する。署名生成装置は、ランダム元生成モジュールにより、取得したすべての元対に対して、第1の群G及び第2の群の基本演算を施して、第1の群G上の元Pk及び第2の群Ga上の元Pakを算出する。署名生成装置は、メッセージmのハッシュ値h、第1の群G上の元Pk及び第2の群Ga上の元Pak、変換モジュール、主要演算モジュール、逆変換モジュール、乗算モジュール、除算モジュール及び署名データ生成モジュールを用いて、メッセージmに対する署名データSを生成する。

Description

明 細 書
署名生成装置、署名生成方法及び署名生成プログラム
技術分野
[0001] 本発明は、情報セキュリティ技術としてのソフトウェアの難読ィ匕方法、特にディジタ ル署名方法の難読ィ匕の技術に関する。
背景技術
[0002] 暗号ソフトを実装する場合、鍵や暗号アルゴリズムをそのまま実装すると、ソフトを解 析された場合に、簡単に不正使用できる。そのため、ソフト解析を困難にする耐タン パーソフト技術が要望されている。耐タンパ一ソフト技術として、特許文献 1において 、演算及び演算領域を変換して、変換前の演算領域を推測困難にすることにより、ソ フト解析困難とする方式が記載されている。
[0003] その方式は、一次変換などにより変換を行う。例えば、鍵とデータの加算を変換す る場合、鍵とデータを変換し、変換後のデータを変換後の領域における加算を行い、 その結果に逆変換を実行することにより鍵とデータの加算結果を得る。このような難 読化された加算方法を、共通鍵暗号を用いた暗号ィ匕プログラムや復号ィ匕プログラム に適用することにより、プログラムを解析して鍵を得る攻撃に対する安全性を向上さ せることが可能になる。
[0004] 以下に、特許文献 1にて開示された技術の具体例を説明する。
ここで、入力 a、 bに対し、演算結果 a + bを出力するプログラムであり、主要演算モジ ユール、逆変換モジュール、及び出力モジュール力 構成される加算プログラムにつ いて説明する。
変換モジュールは、整数 kl、 k2を保持し、入力値 a、 bを受け付けると、保持してい る整数 kl、 k2を用いて、入力値 a、 bをそれぞれ ta = kl X a + k2、 tb = kl X b + k2 に変換する。ただし、 Xは乗算を示す。次に、主要演算モジュールは、値 ta、 tbに対 して、 tab =ta+tbを計算する。逆変換モジュールは、 tabに対して、 c= (tab— 2 X k 2) Zklを計算する。出力モジュールは、演算結果 cを出力する。
[0005] 上記のように処理すると、 tab =ta+tb =kl X a+k2+kl X b+k2=kl X (a+b) + 2 X k2より、(tab— 2 X k2) /kl = a + b力 S成り立つ。した力 Sつて、 c = a + bとなり、 加算プログラムは、入力値 a、 bから aと bの加算結果を算出することができる。
ここで、変換モジュール及び逆変換モジュールを解析困難なように実現した場合、 第三者 (解析者)が解析可能なものは、 ta、 tb、 tabのみであり、これらの値力 a、 bを 推測するのが難しいため、 a、 bを隠蔽することが可能になる。
[0006] 特許文献 1では、データを一次変換することで変換しており、データ自体を解析し に《しているが、演算の種類、すなわち、「加算」は変換先においても「加算」を実行 しており、演算の種類を隠蔽することまではできて 、な 、。
特許文献 2では、ある情報 (落し戸)を持って!/、れば容易に解ける落し戸付の離散 対数問題に基づいて、「加算」を「乗算」もしくは、「楕円曲線上の群の加算」に変換 することで、演算の種類の隠蔽を行っている。
[0007] また、ここで、従来用いられている楕円 DSA(Digital Signature Algorithm)署 名方式 (以下、「従来型の楕円 DSA署名方式」という。)について説明する。従来型 の楕円 DSA署名方式については、非特許文献 3の 4ページに記載されているので、 ここでは簡単に説明する。
(1)パラメータ
従来型の楕円 DS A署名方式では、楕円曲線 Eの方程式 y "2 = x"3 + a X x + bの 変数 a、 b、楕円曲線 Eの定義体 GF (p)、ベース点 P及びベース点の位数 qをパラメ一 タとして持つ。ここで、 x'yは Xの y乗を示し、 qと Pは q * P = 0を満たす。 Oは楕円曲 線の群の零元であり、 *は楕円曲線のスカラ倍演算を示し、 q * Pは q個の Pを加算し たものを表す。
[0008] (2)秘密鍵及び公開鍵
秘密鍵を ks (0<ks< q)とし、 KP = ks * Pを公開鍵とする。
(3)署名生成
従来型の楕円 DSA署名方式の署名生成では、以下のステップで署名の対象とな るメッセージ mのディジタル署名 Sを生成する。
[0009] (ステップ SI) h=Hash (m)を計算する。ここで、 Hash(m)は mのハッシュ値であ る。メッセージからハッシュ値を求めるハッシュ関数は、例えば、 SHA—1である。ノヽ ッシュ関数については、非特許文献 1の 192〜 195ページが詳しい。
(ステップ S2) 乱数 kを選択し、楕円曲線上の点 R=k* Pを計算する。
(ステップ S3) r=x (R) mod qを計算する。ここで、 x(R)は Rの x座標を示す。
[0010] (ステップ S4) s= (h+r X ks) /k mod qを計算する。
(ステップ S5) S = (r, s)を出力し終了。
(4)署名検証
従来型の楕円 DSA署名方式の署名検証では、以下のステップでディジタル署名 S を検証し、検証結果 (OKまたは NG)を出力する。
[0011] (ステップ S 10) h=Hash (m)を計算する。
(ステップ Sl l) R' = (h/s mod q) * P+ (r/s mod q) *KPを計算し、 r, =x (R' )とする。
(ステップ S12) r=r'であるかをチェック。成り立つ場合は、 OK、成り立たない場 合は、 NGを出力し終了。
特許文献 1 :米国特許第 6, 594, 761号明細書
特許文献 2:国際公開第 2005Ζ098795号パンフレット
特許文献 3 :特許第 3, 402, 441号明細書
非特許文献 1 :岡本龍明、山本博資、「現代暗号」、産業図書 (1997年)
非特許文献 2 : Henri Cohen, A Course in Computational Algebraic Number Theory", GTM 138, Springer— Verlag, 1993, pp. 16— 19 非特許文献 3 :1. Blake, G. Seroussi and N. Smart, "Elliptic Curve s in Cryptography", CAMBRIDGE UNIVERSITY PRESS, 1999 非特許文献 4: N. Kunihiro and K. Koyama, "Two Discrete Log Alg orithms for Super— Anomalous Elliptic Curves", SCIS' 99, 1999, pp. 869-874
発明の開示
発明が解決しょうとする課題
[0012] 従来型の楕円 DSA署名方式の署名生成においては、秘密鍵 ksだけでなぐ乱数 k をも秘密にする必要がある。なぜなら、乱数 kが第三者に知られると、ステップ S4の式 を使って ksを逆算することが可能であるからである。
し力しながら、上記従来例の方式は、演算 (加算)の変換を行っており、その演算を 使用する部分については、解析困難にすることが可能である力 従来型の楕円 DSA 署名方式の署名生成にお!ヽて、乱数 kを解析困難にすることはできな ヽ。
[0013] そこで、本発明は、上記課題に鑑みて、署名生成の処理に用いられる値を解析困 難にすることのできる署名生成装置、署名生成方法、署名生成プログラム、記録媒体 及び集積回路を提供することを目的とする。
課題を解決するための手段
[0014] 上記目的を達成するために、本発明は、群 G及び群 Ga上の離散対数問題を安全 性の根拠として、群 G上の基本元 Pにつ!/、て並びに群 Ga上の基本元 Paにつ!/、て基 本演算を複数回繰り返す冪演算を施すことにより、メッセージに対するディジタル署 名を生成する署名生成装置であって、複数の数の各々に分解組が予め対応付けら れており、各分解組は複数の分解対を含み、各分解対は第 1の分解値と第 2の分解 値とを含み、各第 1の分解値は基本元 Pについて任意の正整数を冪とする冪演算が 施されて算出された群 G上の元であり、各第 2の分解値は基本元 Paについて当該第 2の分解値に対応する第 1の分解値において用いられた正整数を冪とする冪演算が 施されて算出された群 Ga上の元であり、前記署名生成装置は、前記複数の分解組 を記憶する分解値記憶手段と、前記複数の数力 ランダムに数 uを選択し、選択した 数 uに対応する分解組を前記分解値記憶手段から選択する選択手段と、選択された 分解組に含まれる 2つ以上の第 1の分解値について、前記群 Gの基本演算を施して 、第 1の冪乗元を生成し、選択された分解組に含まれ、且つ前記 2つ以上の第 1の分 解値のそれぞれに対応する第 2の分解値につ 、て、前記群 Gaの基本演算を施して 、第 2の冪乗元を生成する生成手段と、生成された前記第 1の冪乗元及びメッセージ それぞれを群 Ga上の元に変換し、変換された第 1の冪乗元、変換されたメッセージ 及び前記第 2の冪乗元に対して前記群 Ga上の演算を施し、第 1の離散対数及び第 2の離散対数を算出し、算出した第 1及び第 2の離散対数を用いて、メッセージに対 するディジタル署名を生成する署名手段とを備えることを特徴とする。
発明の効果 [0015] 上記に示した構成によると、署名生成装置は、ディジタル署名に用いる値の隠蔽だ けでなぐ演算そのものを隠蔽することができる。
ここで、前記複数の数の各々は、長さが 2以上の所定長力 なるビット列で表現され る数であり、前記所定長力 なるビット列の各ビット値に応じて分解対が対応付けられ ており、前記選択手段は、選択した前記数 uを前記所定長のビット列からなるビット表 現へと変換し、各ビットそれぞれの値に応じた分解対からなる前記分解組を前記分 解値記憶手段力も選択するとしてもよ 、。
[0016] この構成〖こよると、署名生成装置は、使用する隠蔽された値を容易に選択すること ができる。
ここで、前記生成手段は、ビット値ごとに選択された分解対からなる前記分解組に 含まれる 2つ以上の第 1の分解値に対して、前記群 Gにおける基本演算を施して前 記第 1の冪乗元を生成し、ビット値ごとに選択された分解対からなる前記分解組に含 まれ、且つ前記 2つ以上の第 1の分解値のそれぞれに対応する第 2の分解値に対し て、前記群 Gaにおける前記基本演算を施して前記第 2の冪乗元を生成するとしても よい。
[0017] この構成によると、群 G及び群 Gaにおける基本演算において、使用する値及び演 算を隠匿することができる。
ここで、前記第 1の冪乗元は、 2つ以上の値を含み、前記署名手段は、前記メッセ ージに対するノ、ッシュ値を冪とし、前記基本元 Paに対して群 Gaにおける前記冪演算 を施すことにより、前記ハッシュ値を前記群 Gaに属する変換後ハッシュ値へと変換す る変換部と、前記第 1の冪乗元に含まれる 1つの値を用いて、第 1のデータを算出す る第 1演算部と、前記変換後ハッシュ値に、前記群 Ga上の基本演算を施し、前記群 Gaに属する第 3の冪乗元を算出する第 2演算部と、前記群 Ga又は前記群 Gaに真に 含まれる部分群 Saにお 、て、前記第 2の冪乗元及び前記第 3の冪乗元それぞれに 対して、前記変換部にて行われる変換の冪演算の逆算を施すことにより、第 1及び第 2の離散対数を求める逆変換部と、前記第 1及び前記第 2の離散対数を用いて、第 2 のデータを算出する第 3演算部と、前記第 1のデータと前記第 2のデータとの糸且から なるディジタル署名を生成するデータ生成部とを含むとしてもよ ヽ。 [0018] この構成〖こよると、署名生成装置は、署名手段において、使用する値及び演算を 隠蔽することができる。
ここで、前記署名生成装置は、さらに、秘密鍵を冪として前記基本元 Paに対して前 記群 Gaの基本演算を施して、前記群 Gaに属する変換後秘密鍵を記憶して 、る変換 後秘密鍵記憶手段を備え、前記第 2演算部は、前記変換後秘密鍵に対して前記第 1 のデータを冪とする前記群 Gaの冪演算を施して得られる前記群 Ga上の元である演 算結果と、前記変換後ハッシュ値とに対して前記群 Ga上の基本演算を施して前記第 3の冪乗元を算出するとしてもよい。
[0019] この構成によると、署名生成装置は、第 2演算部において、使用する値及び演算を 隠蔽することができる。
ここで、前記群 G及び前記群 Gaは、剰余整数環の乗法群であり、前記群 G及び前 記群 Gaのそれぞれにおける基本演算とは、各元に対して乗算を施す乗法演算であ り、前記群 G及び前記群 Gaのそれぞれにおける冪演算とは、正整数を冪数とする冪 乗演算であるとしてもよい。
[0020] この構成によると、署名生成装置は、第 1、第 2及び第 3の冪乗元の生成に用いら れる演算は乗法演算であり、冪乗演算とは異なるので、演算を隠蔽することができる ここで、前記群 Gは、楕円曲線の群であり、前記部分群 Saは、ァノマラス楕円曲線 の群であり、前記群 G及び前記群 Gaのそれぞれにおける基本演算とは、各元に対し て楕円曲線上の加算を施す演算であり、前記群 G及び前記群 Gaのそれぞれにおけ る冪演算とは、前記正整数に楕円曲線上の乗算を施す演算であるとしてもよい。また 、前記群 Gは、楕円曲線の群であり、前記群 Gaは、 2つのァノマラス楕円曲線の直積 であり、前記群 G及び前記群 Gaのそれぞれにおける基本演算とは、各元に対して楕 円曲線上の加算を施す演算であり、前記群 G及び前記群 Gaのそれぞれにおける冪 演算とは、正整数に楕円曲線上の乗算を施す演算であるとしてもよい。
[0021] これらの構成によると、署名生成装置は、第 1、第 2及び第 3の冪乗元の生成に用 いられる演算は楕円曲線上の加算演算であり、整数の加算演算とは異なるので、演 算を隠蔽することができる。 また、本発明は、群 G及び群 Ga上の離散対数問題を安全性の根拠として、群 G上 の基本元 Pにつ!、て並びに群 Ga上の基本元 Paにつ!/、て基本演算を複数回繰り返 す冪演算を施すことにより、メッセージに対するディジタル署名を生成する署名生成 装置であって、複数の数の各々に分解組が予め対応付けられており、各分解組は複 数の分解対を含み、各分解対は第 1の分解値と第 2の分解値とを含み、各第 1の分 解値は基本元 Pについて任意の正整数を冪とする冪演算が施されて算出された群 G 上の元であり、各第 2の分解値は基本元 Paについて当該第 2の分解値に対応する第 1の分解値において用いられた正整数を冪とする冪演算が施されて算出された群 Ga 上の元であり、前記署名生成装置は、前記複数の分解組を記憶する分解値記憶手 段と、前記複数の数カゝらランダムに数 uを選択し、選択した数 uに対応する分解対を 前記分解値記憶手段から選択する選択手段と、選択された分解対に含まれる第 1の 分解値及びメッセージそれぞれを群 Ga上の元に変換し、変換された第 1の分解対、 変換されたメッセージ及び選択された分解対に含まれる第 2の分解値に対して前記 群 Ga上の演算を施し、離散対数問題を解いて第 1及び第 2の離散対数を算出し、算 出した第 1及び第 2の離散対数を用いて、メッセージに対するディジタル署名を生成 する署名手段とを備えることを特徴とする。
[0022] この構成〖こよると、署名生成装置は、ディジタル署名に使用する値を隠匿すること ができる。
図面の簡単な説明
[0023] [図 1]署名生成システム 1の概要を示すブロック図である。
[図 2]署名生成装置 10の構成を示すブロック図である。
[図 3]テーブルメモリ部 102に格納している各テーブルのデータ構造の一例を示す図 である。
[図 4]署名生成プログラム 110に含まれる各モジュールを示す図である。
[図 5]テーブル生成装置 20の構成を示すブロック図である。
[図 6]署名生成処理の動作を示す流れ図である。図 7へ続く。
[図 7]署名生成処理の動作を示す流れ図である。図 6から続く。
[図 8]テーブル生成装置 20の動作を示す流れ図である。 [図 9]本発明において、値 r、 hから値 s ( = (r X ks+h) Zk mod q)を生成する際の 動作の概要を示す図である。
圆 10]本発明の DSA楕円署名方式の特徴部分を示す図である。
符号の説明
1 署名生成システム
10 署名生成装置
20 テーブル生成装置
30 メッセージ受付装置
40 署名データ送信装置
50 署名データ受信装置
60 インターネット
101 プロセッサ
102 テーブルメモリ部
103 秘密パラメータメモリ部
104 公開パラメータメモリ部
105 変換後秘密鍵メモリ部
106 プログラムメモリ部
110 署名生成プログラム
121 ハッシュ値生成モジュ
122 乱数生成モジュール
123 選択モジユーノレ
124 ランダム元生成モジュ
125 変換モジユーノレ
126 主要演算モジュール
127 逆変換モジュール
128 乗算モジュール
129 除算モジュール
130 署名データ生成モジュ 201 公開パラメータメモリ部
202 乱数生成部
203 群演算部
204 格納処理部
発明を実施するための最良の形態
[0025] 以下、発明を実施するための最良の実施形態を、図面を参照しながら説明する。
1.第 1の実施の形態
1. 1 準備
ここでは、本発明にかかる実施の形態を説明する上で、必要となる"楕円曲線上の 楕円べき倍演算"について説明する。
[0026] 一例として、 100 *Pの計算について説明する。
100 * P = 2 (2 (P + 2 (2 (2 (P + 2P) ) ) ) )と表すと、 100 * Pは、楕円曲線上の点 による 6回の 2倍算と 2回の加算により計算される。
このように、楕円べき倍演算は、楕円曲線上の 2倍算及び加算による演算に帰着す る。
ここで、楕円曲線 Eの方程式を y"2 = x"3 +aXx+b とし、楕円曲線上の任 意の点 Pの座標を (xl, yl)とし、任意の点 Qの座標を (x2, y2)とする。ここで、 R=P + Qで定まる点 Rの座標を (x3, y3)とする。
[0027] P≠Qの場合、 R=P + Qは、楕円曲線上の加算の演算となる。加算の公式を以下 に示す。
x3 ={(y2 -yl)/(x2—xl)厂 2— xl— x2
y3 = { (y2— yl ) / (x2— xl) } (xl— x3)— yl
P = Qの場合、 R=P + Q = P + P = 2XPとなり、 R=P + Qは、楕円曲線上の 2倍 算の演算となる。 2倍算の公式を以下に示す。
[0028] χ3 +a)/(2Xyl) 厂 2—(2Xxl)
y3
Figure imgf000011_0001
+a)/(2Xyl) } (xl— x3)— yl
ここで、上記演算は、楕円曲線が定義される有限体上での演算である。
なお、楕円曲線の演算公式については、" Efficient elliptic curve exponent! ation" (Miyaji, Ono, and Cohen著, Advances in cryptology— proceedin gs of ICICS ' 97, Lecture notes in computer science, 1997, Springer -verlag, 282— 290.;)【こ詳しく説明されて ヽる。
1. 2 署名生成システム 1の構成
本発明にカゝかる実施の形態としての署名生成システム 1につ ヽて説明する。
[0029] 署名生成システム 1は、図 1にて示すように、署名生成装置 10、テーブル生成装置 20、メッセージ受付装置 30、署名データ送信装置 40、及び署名データ受信装置 50 から構成されている。
メッセージ受付装置 30は、ユーザ操作によりメッセージ mを受け付け、受け付けたメ ッセージ mを署名生成装置 10へ出力する。
[0030] テーブル生成装置 20は、本発明における楕円 DSA署名方式 (以下、単に「楕円 D SA署名方式」という。)の署名生成にて使用する複数の元対と、変換後秘密鍵とを生 成し、生成した複数の元対と、変換後秘密鍵とを署名生成装置 10へ格納する。ここ で、元対とは、第 1の楕円曲線上の群の元と、第 2の楕円曲線上の群の元との組であ る。また、変換後秘密鍵とは、秘密鍵に第 2の楕円曲線上の楕円べき倍演算を施し た演算結果である。
[0031] なお、元対、変換後秘密鍵の詳細については、後述する。
署名生成装置 10は、メッセージ mをメッセージ受付装置 30から受け付け、受け付 けたメッセージ mに対し、楕円 DSA署名方式の署名生成により署名データ S (= (r, s) )を生成する。
署名生成装置 10は、生成した署名データ Sと、メッセージ受付装置 30から受け付 けたメッセージ mを署名データ送信装置 40へ出力する。
[0032] 署名データ送信装置 40は、例えば、インターネット 60により署名データ受信装置 5 0とネットワーク接続されている。署名データ送信装置 40は、署名生成装置 10からメ ッセージ mと、メッセージ mに対する署名データ Sとを受け取ると、受け取ったメッセ一 ジ m及び署名データ Sを、インターネット 60を介して署名データ受信装置 50へ送信 する。
[0033] 署名データ受信装置 50は、署名データ送信装置 40からインターネット 60を介して 、メッセージ mと、メッセージ mに対する署名データ Sとを受信すると、署名検証を行う
1. 3 署名生成装置 10の構成
ここでは、署名生成装置 10の構成について説明する。
[0034] 署名生成装置 10は、図 2にて示すように、プロセッサ 101、テーブルメモリ部 102、 秘密パラメータメモリ部 103、公開パラメータメモリ部 104、変換後秘密鍵メモリ部 10 5、及びプログラムメモリ部 106から構成されている。
(1)プロセッサ 101
プロセッサ 101は、コンピュータシステムを構成しており、プログラムメモリ部 106に 格納された署名生成プログラム 110を読み込み、読み込んだ署名生成プログラム 11 0とハードウェア資源とが協働することにより機能を達成する。
[0035] プロセッサ 101は、プログラムメモリ部 106に記憶されている署名生成プログラム 11 0から 1個ずつコンピュータ命令を読み出し、解釈し、その解釈結果に応じて動作す る。
なお、署名生成プログラム 110の詳細にっ 、ては後述する。
(2)テーブルメモリ部 102
テーブルメモリ部 102は、第 1の群 Gに属する元と、第 2の群 Gaに属する元の対で ある元対を複数個記憶している。なお、元対は、テーブル生成装置 20で生成される
[0036] (2— 1)第 1の群 G及び第 2の群 Gaについて
第 1の群 Gは、楕円 DS A署名方式で使用する楕円曲線 Eの点を元とする群である 。ここで、楕円曲線 Eの方程式 ¾T2 = x"3 + a X x + bとする。楕円曲線 Eの方程式 をもつ体 GF (p)上の楕円曲線の点から構成される群を E (GF (p) )とするとき、第 1の 群 Gは、 E (GF (p) )となる。
[0037] 第 2の群 Gaは、 n=pl X p2 (pl、 p2は素数)に対し、 GF (pi)上の楕円曲線 Eaの 点から構成される群 Ea (GF (pl) )と、 GF (p2)上の楕円曲線 Eaの点カゝら構成される 群 Ea (GF (p2) )の直積 Ea (GF (pl) ) X Ea (GF (p2) )とする。 ZZnZは体ではなぐ 環であるため、数学的には「ZZnZ上の楕円曲線」とはよベないが、ここでは便宜上、 その直積を ZZnZ上の楕円曲線の群とよぶ。なお、 Zは整数環であり、 ZZnZは、数 nを法とする剰余整数環である。
[0038] ここで、楕円曲線 Eaの方程式を y"2 = x"3 + aaXx + baとする。また、素数 pi及び p2は、楕円曲線 Eのベース点の位数 qとは異なる数であり、第三者が知ることができ な 、ように生成及び管理がなされて 、るものとする。
Ea(GF(pl))上の点 Pal=(xal, yal) mod piと、 Ea(GF(p2))上の点 Pa2 = (xa2, ya2) mod p2に対応する ZZnZ上の楕円曲線 Ea(GF(pl)) XEa(GF( p2))の点 Pa= (xa, ya) mod nは、以下のように定義する。 xaを xa mod pl=x al, xa mod p2 = xa2を満 7こす ;、 yaを ya mod pl=yal, ya mod p2=ya2 を満たす数とする。
[0039] この定義より、 Ea(GF(pl)) XEa(GF(p2))上の点 Pa=(xa, ya) mod nに対 応する Ea(GF(pl))上の点 Palを Pal=(xal, yal) mod piとし、 Ea(GF(p2)) 上の点 Pa2を Pa2=(xa2, ya2) mod p2とすることで、 Ea(GF(pl)) , Ea(GF(p 2) )を Ea (GF (pi) ) X Ea (GF (p2) )の部分群とみなす。
[0040] 楕円曲線 Eaは mod piでの楕円曲線の位数、すなわち、点の個数が piであると する。このような体 GF (pi)上の楕円曲線をァノマラス (Anomalous)楕円曲線とよぶ 。さらに、 mod p2での楕円曲線の位数が p2である、すなわち、 GF(p2)上でもァノ マラス楕円曲線であるとする。このとき、 ZZnZ上の楕円曲線は、スーパーァノマラス (Super— Anomalous)楕円曲線とよぶ。スーパーァノマラス楕円曲線については 非特許文献 4が詳しい。このとき、 ZZnZ上の楕円曲線の群は Ea(GF(pl)) XEa( GF (p2) )であるので、楕円曲線の位数は n (=plXp2)となる。
[0041] 素数 piのビット数を 2Xlen+lビットとする。なお、 piのビット数は 2Xlen+lより大 きくてもよい。 lenは例えば、 160である。 p2は、例えば、 n=pl Xp2のビット数が 102 4となるような大きさの素数である。
(2-2)テーブルメモリ部 102に格納する元対にっ ヽて
テーブルメモリ部 102は、 2 ^!1個の元対1^—(1, j)を格納する。ここで、 iは 0また は l、jは 0から len— 1の値のいずれかであり、「―」は下付き文字を示し、 i, jは PPの インデックスである。 PP (i, j) = (v (i, j) *P mod p, v (i, j) *Pa mod n) である。 *は、 Pに対しては、楕円曲線 E上のスカラ倍演算、 Paに対しては、楕円曲 線 Ea上のスカラ倍演算を示す。 V— (i, j)は、 lenビットの値である。ここで、 PP— (i, j )に含まれる 2点のスカラは等しいことに注意する。
[0042] ここで、元対の格納方法の一例を以下に示す。
テーブルメモリ部 102は、複数の元対を格納するための領域を有している。 テープノレメモリ咅 102ίま、図 3にて示すように、テープノレ Τ101、 Τ102、 . - .、 T103 を格納している。つまり、テーブルメモリ部 102は、 len個のテーブルを有している。
[0043] テーブル T101は、テーブル名称 T110 (ここでは、「テーブル 0」)と、 2値項目 T12 0、 T121 (ここでは、「0」、「1」)と各 2値項目 Τ120、Τ121における元対 Τ130、Τ13 1とから構成されている。 1つのテーブルにおいて、 2つの元対が格納されているので 、テーブルメモリ部 102は、テーブルを len個格納することにより、 2 X len個の元対を 格納することになる。
[0044] テーブル名称 T110は、値 jと対応付けがされている。つまり、テーブル名称 T110 ( テーブル 0)は、 j = 0と対応付けされており、テーブル名称 Ti l l (ここではテーブル 1 )は、 j = 1と対応付けされて 、る。これにより、 j = 0、 · · ·、 len— 1のそれぞれに対して テーブル名称が対応付けされて!、る。
また、元対 T130【こお!ヽて、 P一(0, 0) ίま、 V一(0, 0)水 P mod pであり、 Pa一(0 , 0) ί¾、ν—(0, 0) * Pa mod nである。元対 T130【こお!/、て、 P一(1, 0) ί¾、ν—( 1, 0)水 P mod pであり、 Pa一(1, 0) ίま、 V一(1, 0)水 Pa mod nである。 PP一(i , j) = (P_(i, j) , Pa_(i, j) )であることに注意する。
[0045] 元対のそれぞれは、 2進数と対応付けがされている。具体的には、 2進数の値が 0 である場合には、 2値項目「0」における元対が対応付けされ、 2進数の値が 1である 場合には、 2値項目「1」における元対が対応付けされている。
(3)秘密パラメータメモリ部 103
秘密パラメータメモリ部 103は、耐タンパ性を有しており、素数 piを記憶している。
[0046] (4)公開パラメータメモリ部 104
公開パラメータメモリ部 104は、楕円曲線 Eの方程式 y"2 = x"3 + a X x + bにおけ る変数 a、 b、素数 p、楕円曲線 E上のベース点 P、及びその位数 qと、楕円曲線 Eaの 方程式 y' 2=x' 3 + aa X x+baにおける変数 aa、 ba、合成数 n ( =pl X p2)、及び楕 円曲線 Ea上の点 Paをそれぞれパラメータとして記憶している。ここで、点を記憶する とは、点の座標を記憶することを意味する。また、 p、 qは lenビットの素数とする。
[0047] (5)変換後秘密鍵メモリ部 105
変換後秘密鍵メモリ部 105は、秘密鍵 ksに第 2の楕円曲線 Ea上の楕円べき倍演算 を施すことにより、秘密鍵 ksを変換した変換後秘密鍵 KST( = ks * Pa)を格納してい る。変換後秘密鍵 KSTは、テーブル生成装置 20で生成される。
(6)プログラムメモリ部 106
プログラムメモリ部 106は、署名生成プログラム 110を記憶して 、る。
[0048] 署名生成プログラム 110は、図 4にて示すように、ハッシュ値生成モジュール 121、 舌 L数生成モジュール 122、選択モジュール 123、ランダム元生成モジュール 124、変 換モジュール 125、主要演算モジュール 126、逆変換モジュール 127、乗算モジュ ール 128、除算モジュール 129、及び署名データ生成モジュール 130から構成され ている。
[0049] 本プログラムは、入力であるメッセージ mに対し、 mの署名データ S ( = (r, s) )を出 力するものである。
各モジュールは、機械語形式の複数の命令コードを組み合わせて構成されるコン ピュータプログラムである。前記機械語形式は、プロセッサ 101により解読され実行さ れる形式である。
[0050] (6— 1)ハッシュ値生成モジュール 121
ハッシュ値生成モジュール 121は、入力であるメッセージ mを、メッセージ受付装置 30から受け付け、受け付けたメッセージ mにハッシュ関数を施して、メッセージ mのハ ッシュ値 hを計算する。ノ、ッシュ関数は、例えば、 SHA— 1である。
ハッシュ値生成モジュール 121は、ハッシュ値 hを変換モジュール 125へ出力する
[0051] (6— 2)乱数生成モジュール 122
乱数生成モジュール 122は、 lenビットのランダムな正整数ほ L数) uを生成し、生成 した乱数 uを選択モジュール 123へ出力する。 (6 3)選択モジュール 123
選択モジュール 123は、乱数生成モジュール 122から乱数 uを受け取り、受け取つ た乱数 uをビット表現に変換する。
[0052] 選択モジュール 123は、ビット表現に変換された乱数 u=u— O+u— 1 X 2+u_2
X2"2 + ---+u_ (len- 1) X2" (len- 1)に対し、テーブルメモリ部 102から PP— ( u_0, 0), PP_(u_l, 1), PP_(u_2, 2), ···, PP— (u— (len— 1) , len— 1) を選択する(ここで、 i=0, 1, 2, ···, len— 1に対し u— i=0または 1)。
[0053] ここでは、 u— kにおける添え字 k(k=0, 1, · · ·, len— 1)の値がテーブルメモリ部 102に格納されているテーブルのテーブル名称と対応付けされている。つまり、 u— 0 はテーブル 0と、 u— 1はテーブル 1と、 · · ·、 u— len— 1はテーブル len— 1と対応付 けがされている。
選択モジュール 123は、選択した PP— (u— 0, 0), PP_(u_l, 1), PP_(u_2 , 2), ···, PP— (u— (len— 1), len— 1)をランダム元生成モジュール 124へ出力す る。
[0054] (6— 4)ランダム元生成モジュール 124
ランダム元生成モジュール 124は、選択モジュール 123から len個の元対 PP—(u _i, i) = (P_(u_i, i), Pa_(u_i, i))を受け取り、受け取った元対それぞれに含 まれる P— (u— i, i)を公開パラメータメモリ部 104で記憶している楕円曲線 Eのパラメ 一タ&、 b、素数 p、楕円曲線 E上のベース点 Pを用いて、楕円曲線 E上で加算すること により、 Pk(=(v— (u— 0, 0) *P+v— (u— 1, 1) *PH hv— (u— len— 1, le n— 1) *P)を算出する(ここで、 i=0, 1, 2, ···, len— 1)。なお、 Pk=(v— (u— 0, 0)+v_(u_l, l) + ---+v_(u_(len-l), len— 1)) *Pであることに注意する
[0055] ランダム元生成モジュール 124は、公開パラメータメモリ部 104で記憶している楕円 曲線 Eaのパラメータ aa、 ba、合成数 nを用いて、 Pa— (u— i, i) mod n(i=0, 1, 2 , ···, len— 1)を楕円曲線 Ea上でカ卩算して Pak mod n(=(v_(u_0, 0)*Pa + v_(u_l, 1) *PaH hv— (u— len— 1, len— 1) * Pa))とする。ここで、 Pak
=(v (u 0, 0) +v (u 1, 1)H hv (u (len—l), len—l)) *Paであ ることに注意する。
[0056] ランダム元生成モジュール 124は、算出した Pkを主要演算モジュール 126へ出力 し、算出した Pakを逆変換モジュール 127へ出力する。
(6— 5)変換モジュール 125
変換モジュール 125は、ハッシュ値生成モジュール 121からハッシュ値 hを受け取る と、公開パラメータメモリ部 104で記憶している楕円曲線 Eaのパラメータ aa、 ba、合成 数 nと楕円曲線 Ea上の点 Paと、受け取ったハッシュ値 hとを用いて、 hPa = h * Pa mod nを計算する。
[0057] 変換モジュール 125は、算出した hPaを主要演算モジュール 126へ出力する。
(6 6)主要演算モジュール 126
主要演算モジュール 126は、ランダム元生成モジュール 124から Pkを受け取り、変 換モジュール 125から hPaを受け取る。
主要演算モジュール 126は、 r=x (Pk) mod qを計算する。ここで、 x (Pk)は、 P kの X座標を示す。
[0058] 主要演算モジュール 126は、変換後秘密鍵メモリ部 105で記憶している変換後秘 密鍵 KSTと、公開パラメータメモリ部 104で記憶している楕円曲線 Eaのパラメータ aa 、 bb、合成数 nを用いて、楕円曲線 Ea上で r * KSTを計算し、 hPaと楕円曲線 Ea上 の加算を行い、 Qa=r * KST+hPaとする。
主要演算モジュール 126は、算出した rを署名データ生成モジュール 130へ出力し 、算出した Qaを逆変換モジュール 127へ出力する。
[0059] (6— 7)逆変換モジュール 127
逆変換モジュール 127は、ランダム元生成モジュール 124から Pakを受け取り、主 要演算モジュール 126から Qaを受け取る。
逆変換モジュール 127は、秘密パラメータメモリ部 103で記憶している素数 piを用 いて、 Pa mod piに対する Qaの離散対数 cQと、 Pa mod piに対する Pakの離 散対数 ckを計算する。
[0060] 逆変換モジュール 127は、算出した離散対数 cQ、 ckを乗算モジュール 128へ出力 する。 まず、 Qaの離散対数 cQを求める際の処理を示す。
(ステップ S 20) Qal = Qa mod pi, Pal = Pa mod piを計算。
[0061] (ステップ S21) Palに対する Qalの離散対数 cQ (すなわち、 Qal = cQ * Palを 満たす cQ)を計算する。
次に、 Pakの離散対数 ckを求める際の処理を示す。
(ステップ S 30) ckl = Pak mod pi, Pal = Pa mod piを計算。
[0062] (ステップ S31) Palに対する cklの離散対数 ck (すなわち、 ckl = ck * Palを満 たす ck)を計算する。
ここで、ステップ S21及び S31で計算している離散対数 cQ及び ckは、ァノマラス楕 円曲線上の離散対数問題の解である。
ァノマラス楕円曲線上の離散対数問題を解く方法は、非特許文献 3の 88〜91ベー ジが詳しい。計算方法はこの文献に記載されているため、ここでは説明を省略する。
[0063] なお、逆変換モジュール 127は、処理内容の解析を困難にするために、ハード対 策やソフトウェア対策により耐タンパ性を有する領域で実行されるものとする。
(6 8)乗算モジュール 128
乗算モジュール 128は、逆変換モジュール 127から離散対数 cQ、 ckを受け取ると 、乱数 ι8を生成する。
[0064] 乗算モジュール 128は、公開パラメータメモリ部 104で記憶している楕円曲線 E上 のベース点 Pの位数 qを用いて、離散対数 cQ及び ckに対し生成した |8を乗じ、 cQ, = cQ X β mod q, ck' =ck X β mod qを計算する。
乗算モジュール 128は、算出した cQ,、 ck,を除算モジュール 129へ出力する。
[0065] なお、乗算モジュール 128は、処理内容の解析を困難にするために、ハード対策 やソフトウェア対策により耐タンパ性を有する領域で実行されるものとする。
(6— 9)除算モジュール 129
除算モジュール 129は、乗算モジュール 128から cQ,、 ck,を受け取る。 除算モジュール 129は、 ck,の mod qでの逆元である ckiを計算する。ここで、 cki X ck,= l mod qを満たす。
[0066] 除算モジュール 129は、 ckiと cQ,を乗じ mod qをして、 s = cki X cQ, mod qを 求める。逆元の計算については、非特許文献 2が詳しい。
除算モジュール 129は、算出した sを署名データ生成モジュール 130へ出力する。 (6- 10)署名データ生成モジュール 130
署名データ生成モジュール 130は、主要演算モジュール 126から rを受け取り、除 算モジュール 129から sを受け取る。
[0067] 署名データ生成モジュール 130は、主要演算モジュール 126から受け取った rと、 除算モジュール 129から受け取った sを 1対として、署名データ S= (r, s)を生成する 署名データ生成モジュール 130は、ノ、ッシュ値生成モジュール 121が受け付けたメ ッセージ mと、生成した署名データ Sを署名データ送信装置 40へ出力する。
1. 4 テーブル生成装置 20の構成
ここでは、テーブル生成装置 20の構成について説明する。
[0068] テーブル生成装置 20は、図 5にて示すように、公開パラメータメモリ部 201、乱数生 成部 202、群演算部 203、及び格納処理部 204から構成されている。
(1)公開パラメータメモリ部 201
公開パラメータメモリ部 201は、楕円曲線 Eの方程式 y"2 = x"3 + a X x + bの変数 a 、 b、素数 p、楕円曲線 E上のベース点 P、その位数 q、楕円曲線 Eaの方程式 y"2 = x '3 + aa X x+baの aa、 ba、合成数 n、楕円曲線 Ea上の点 Paのそれぞれをパラメータ として記憶している。ここで、点を記憶するとは、点の座標を記憶することを意味する。
[0069] (2)乱数生成部 202
乱数生成部 202は、乱数生成部 202は、 2 X len個の lenビットの乱数 V— (i, j) (i =0または l、j = 0, 1, · ··, len— 1)を生成する。
乱数生成部 202は、 1個の lenビットの乱数 ksを生成する(ただし、 0く ksく q)。
[0070] なお、乱数生成部 202が生成した乱数 ksが秘密鍵となることに注意する。
(3)群演算部 203
群演算部 203は、公開パラメータメモリ部 201に記憶している楕円曲線 Eのパラメ一 タ&、 b、素数 p、ベース点 Pを用いて、乱数 V— (i, j) (i=0または 1、 j = 0, 1, · ··, le n— 1)に対応するスカラ倍点 v— (i, j) * Pを計算する。 [0071] 群演算部 203は、公開パラメータメモリ部 201に記憶している楕円曲線 Eaのパラメ ータ aa、 bb、合成数 n、楕円曲線 Ea上の点 Paを用いて、乱数 v— (i, j) (i=0または 1、 j = 0, 1, · ··, len—l)に対応するスカラ倍点 v— (i, j) * Paを計算する。
群演算部 203は、生成した各スカラ倍点 V— (i, j) * Pと、スカラ倍点 v— (i, j) * Pa とを用いて、図 3にて示すテーブル Τ101、 Τ102、 · · ·、 T103を生成する。これによ り、群演算部 203は、 2 X len個の元対を生成することになる。
[0072] 群演算部 203は、公開パラメータメモリ部 201に記憶している楕円曲線 Eaのパラメ ータ aa、 bb、合成数 n、楕円曲線 Ea上の点 Paを用いて、乱数 ksに対するスカラ倍点 KST=ks * Paを計算する。
なお、算出されたスカラ倍点 KSTが変換後秘密鍵となることに注意する。 (4)格納処理部 204
格納処理部 204は、群演算部 203にて生成されたテーブル Τ101、 Τ102、 · · ·、 Τ 103を署名生成装置 10のテーブルメモリ部 102に格納する。これにより、格納処理 部 204は、元対 (V— (i, j) * P, v— (i, j) * Pa) (i=0または 1、 j = 0, 1, · ··, len — 1)を署名生成装置 10のテーブルメモリ部 102に格納することができる。
[0073] 格納処理部 204は、群演算部 203にて算出された KST(=ks * Pa)を署名生成装 置 10の変換後秘密鍵メモリ部 105に格納する。
1. 5 署名生成装置 10の動作
ここでは、署名生成装置 10にて行われる署名データの生成の動作について説明 する。なお、テーブルメモリ部 102には予め len— 1個のテーブル Τ101、 Τ102、 · · · 、 T103がテーブル生成装置 20により格納され、変換後秘密鍵メモリ部 105には予 め変換後秘密鍵 KSTがテーブル生成装置 20により格納されているものとする。
[0074] (1)動作概要
署名生成装置 10は、プロセッサ 101により、プログラムメモリ部 106に記憶している 署名生成プログラム 110から 1個ずつコンピュータ命令を読み出し、解釈し、その解 釈結果に応じて、テーブルメモリ部 102、秘密パラメータメモリ部 103、公開パラメ一 タメモリ部 104及び変換後秘密鍵メモリ部 105を読み出しながら、メッセージ mに対す る署名データ Sを生成する。署名データ Sの生成処理の具体的な動作については、 後述する。
[0075] (2)署名生成処理の動作
ここでは、署名データ Sを生成する署名生成処理の動作について図 6及び図 7にて 示す流れ図を用いて説明する。
ハッシュ値生成モジュール 121は、入力であるメッセージ mをメッセージ受付装置 3 0力も受け付け (ステップ S100)、受け付けたメッセージ mのハッシュ値 hを計算する( ステップ S 105)。
[0076] 乱数生成モジュール 122は、 lenビットの正整数ほ L数) uを生成する(ステップ S 11 0)。
選択モジュール 123は、乱数 uのビット表現(u = u— 0 + u— 1 X 2 + u_2 X2"2 + •••+u_(len-l) X2"(len-1) (i=0, 1, 2, ···, len— 1に対し u— i=0または 1 ))に基づいて、テーブルメモリ部 102に記憶している元対 PP— (u— 0, 0), PP_(u —1, 1), PP_(u_2, 2), ···, PP— (u— (len—l), len— 1)を選択する(ステップ S115)。
[0077] ランダム元生成モジュール 124は、選択モジュール 123で選択した PP—(u—i, i)
= (P_(u_i, i), Pa_(u_i, i)) (i=0, 1, 2, ···, len— 1)に対し、 P_(u_i, i) (i=0, 1, 2, ···, len— 1)を公開パラメータメモリ部 104で記憶している楕円曲線 E のパラメータ a、 b、素数 p、楕円曲線 E上のベース点 Pを用いて、楕円曲線 E上でカロ 算することにより、 Pk(= (v_(u_0, 0) *P+v_(u_l, 1) *PH hv_(u_l en-1, len—l) *P)を算出する(ステップ SI 20)。
[0078] ランダム元生成モジュール 124は、公開パラメータメモリ部 104で記憶している楕円 曲線 Eaのパラメータ aa、 ba、合成数 nを用いて、 Pa— (u— i, i) mod n(i=l, 2, ···, len— 1)を楕円曲線 Ea上で加算することにより、 Pak(= (v_(u_0, 0) *Pa + v_(u_l, 1) *PaH hv— (u— len— 1, len—l) * Pa)を計算する(ステップ S
125)。
[0079] 変換モジュール 125は、公開パラメータメモリ部 104で記憶している楕円曲線 Eaの パラメータ aa、 ba、合成数 nと楕円曲線 Ea上の点 Paとハッシュ値 hとを用いて、 hPa =h*Pa mod nを計算する(ステップ SI 30)。 主要演算モジュール 126は、 r=x (Pk) mod qを計算する(ステップ SI 35)。ここ で、 x(Pk)は、 Pkの X座標を示す。
[0080] 主要演算モジュール 126は、変換後秘密鍵メモリ部 105で記憶している変換後秘 密鍵 KSTと、公開パラメータメモリ部 104で記憶している楕円曲線 Eaのパラメータ aa 、 bb、合成数 nを用いて、楕円曲線 Ea上で r *KSTを計算する(ステップ S140)。 主要演算モジュール 126は、 hPaと楕円曲線 Ea上の加算を行うことにより、 Qa=r *KST+hPaを計算する(ステップ S145)。
[0081] 逆変換モジュール 127は、秘密パラメータメモリ部 103で記憶している素数 piを用 いて、 Pa mod piに対する Qaの離散対数 cQを算出する(ステップ S150)。
逆変換モジュール 127は、秘密パラメータメモリ部 103で記憶している素数 piを用 いて、 Pa mod piに対する Pakの離散対数 ckを算出する(ステップ S155)。
[0082] 乗算モジュール 128は、乱数 βを生成する(ステップ S160)。
乗算モジュール 128は、公開パラメータメモリ部 104で記憶している楕円曲線 E上 のベース点 Pの位数 qと、ステップ S150にて算出された離散対数 cQと、乱数 j8とを 用いて、 cQ,=cQ X j8 mod qを計算する(ステップ S165)。
乗算モジュール 128は、公開パラメータメモリ部 104で記憶している楕円曲線 E上 のベース点 Pの位数 qと、ステップ S 155にて算出された離散対数 ckと、乱数 j8とを用 いて、 ck,=ck X j8 mod qを計算する(ステップ SI 70)。
[0083] 除算モジュール 129は、ステップ S170にて算出された ck,の mod qでの逆元であ る ckiを計算する(ステップ S 175)。ここで、 ckiは、 cki X ck' = 1 mod qを満たす値 である。
除算モジュール 129は、公開パラメータメモリ部 104で記憶している楕円曲線 E上 のベース点 Pの位数 qと、ステップ S 175にて算出された ckiと、ステップ S 165にて算 出された cQ 'とを用いて、 s = cki X cQ, mod qを算出する(ステップ SI 80)。
[0084] 署名データ生成モジュール 130は、ステップ S 135にて生成された rと、ステップ S1 80にて生成された sを 1対とする署名データ S= (r, s)を生成する (ステップ S185)。 署名データ生成モジュール 130は、ノ、ッシュ値生成モジュール 121が受け付けたメ ッセージ mと、生成した署名データ Sを署名データ送信装置 40へ出力する。 1. 6 テーブル生成装置 20の動作
ここでは、テーブル生成装置 20にて行われるテーブル及び変換後秘密鍵の生成 の動作にっ 、て図 8にて示す流れ図を用いて説明する。
[0085] 乱数生成部 202は、 lenビットの乱数 V— (i, j) (i=0, l、j = 0, 1, · ··, len— 1)を 2 X len個生成する(ステップ S 200)。
乱数生成部 202は、 1個の lenビットの乱数 (秘密鍵) ksを生成する(ステップ S 205) 。ただし、 ksは、 0く ks< qを満たす数である。
群演算部 203は、公開パラメータメモリ部 201に記憶している楕円曲線 Eのパラメ一 タ a、b、素数 p、ベース点 Pを用いて、乱数 V— (i, j) (i=0, l、j = 0, 1, · ··, len- 1 )に対応するスカラ倍点 v_(i, j) * Pを計算する (ステップ S210)。
[0086] 群演算部 203は、公開パラメータメモリ部 201に記憶している楕円曲線 Eaのパラメ ータ aa、 bb、合成数 n、楕円曲線 Ea上の点 Paを用いて、乱数 v— (i, j) (i=0, 1、 j =0, 1, · ··, len— 1)に対応するスカラ倍点 v— (i, j) * Paを計算する (ステップ S21 5)。
群演算部 203は、生成した各スカラ倍点 V— (i, j) * Pと、スカラ倍点 v— (i, j) * Pa とを用いて、 len個のテーブル Τ101、 Τ102、 · · ·、 T103を生成する(ステップ S220
) ο
[0087] 群演算部 203は、公開パラメータメモリ部 201に記憶している楕円曲線 Eaのパラメ ータ aa、 bb、合成数 n、楕円曲線 Ea上の点 Paを用いて、乱数 ksに対するスカラ倍点 (変換後秘密鍵) KST=ks * Paを計算する (ステップ S225)。
格納処理部 204は、ステップ S220にて生成されたテーブル Τ101、 Τ102、 · · ·、 Τ 103を署名生成装置 10のテーブルメモリ部 102に格納し、ステップ S225にて算出さ れた KST( = ks * Pa)を署名生成装置 10の変換後秘密鍵メモリ部 105に格納する( ステップ S230)。
[0088] これにより、格納処理部 204は、元対 (V— (i, j) * P, v— (i, j) * Pa) (i=0また は l、j = 0, 1, · ··, len— 1)を署名生成装置 10のテーブルメモリ部 102に格納するこ とがでさる。
1. 7 実施の形態の動作検証 ここでは、上記実施の形態における署名生成プログラム 110が、従来型の楕円 DS A署名方式の署名生成にて生成される署名と同一の署名を生成することを以下に示 す。
[0089] 署名生成プログラム 110では、ランダム元生成モジュール 124において、ランダム な点 Pkを計算している。さらに署名生成プログラム 110では、ランダム元生成モジュ ール 124において、スーパーァノマラス楕円曲線 Eaにおける Pakを計算している。 ここで、テーブルメモリ部 102の元対に含まれる楕円曲線 E上の点とスーパーァノマ ラス楕円曲線 Ea上の点はそれぞれ、点 P、点 Paに対する離散対数が同じ値となって いる。すなわち、選択モジュール 123で元対を選択し、ランダム元生成モジュール 12 4では選択した元対に含まれる点をそれぞれの楕円曲線 E、 Ea上で加算するため、 Pに対する Pkの離散対数と、 Paに対する Pakの離散対数は同じ値 (ここでは、 v_(u _0, 0)+v_(u_l, 1) + ···+ν一 (u_len— 1, len— 1)である。)となる。この離 散対数を従来型の楕円 DS A署名方式のステップ S 2にて生成される乱数 kとみなす ことで、署名生成プログラム 110が生成する S= (r, s)は、従来型の楕円 DSA署名 方式の署名生成にて生成される署名 Sと同じとなる。
[0090] 以下、署名生成プログラム 110が生成する S= (r, s)と、従来型の楕円 DSA署名 方式の署名生成にて生成される署名 Sとが同一となることを示す。
点 Paに対する点 Qaの離散対数 cQについて考える。上述したように、 Qa=r*KS T+hPaであり、 KST=ks*Pa, hPa = h*Paである。これにより、 Qa=(rXks + h) * Paとなることが分かる。したがって、点 Paに対する点 Qaの離散対数は cQは、 cQ = rXks + hとなる。また、点 Paに対する点 Pakの離散対数は ckは、 ck=kとなる。
[0091] 以下、この理由を示す。
上記【こて示すステップ S30【こより ckl = Pak mod pi, Pal = Pa mod piであり 、上記にて示すステップ S31により ckl = ck*Palであることから、 ckl = Pak mod pi =ck*Pa mod pi となる。一方、 Pakの算出方法により、 Pak=k* Pa m od nである。ここで、 n=plXp2であることから、(Pak mod n) mod pi =Pa k mod piとなり、 ckl = Pak mod pi =k*Pa mod piである。したがって、 この式より、 ckl = ck*Pal= ck*Pa mod pi =k*Pa mod piとなり、この 式より ck = kとなることが分かる。
[0092] 上記(6— 9)にて示すょぅに、5 =。 。<3, mod q =cQ ' /ck' mod q =c
Q X β / ick X β ) mod q = (r X ks+h) /k mod q となるので、除算モジュ ール 129は、従来型の楕円 DSA署名方式の署名生成のステップ S4で求める値 sを 算出していることになる。
また、署名生成プログラム 110の主要演算モジュール 126にて算出される値 rは、 従来型の楕円 DS A署名方式の署名生成と同じく点 Pの k倍点である。
[0093] したがって、主要演算モジュール 126にて算出される値 rと、除算モジュール 129に て算出される値 sとの組が、従来型の楕円 DS A署名方式の署名生成にて生成される 署名 Sと同一になる。
以上より、実施の形態における署名生成プログラム 110は正しく署名生成できること が分かる。
1. 8 実施の形態の効果
秘密パラメータメモリ部 103、署名生成プログラム 110の逆変換モジュール 127と乗 算モジュール 128が解析困難な場合に、解析者は nの因数である pl、 p2を知らない ため、スーパーァノマラス楕円曲線における離散対数問題を解くことができない。解 析者は、変換後秘密鍵 KSTと Pakを解析可能であるが、スーパーァノマラス楕円曲 線における離散対数問題を解けな 、ため、これらから秘密鍵 ks及び Pakの離散対数 kを求められない。
[0094] ここで、 Pakの離散対数 kを求められな 、ようシステムを設計した理由につ 、て、以 下で説明する。もし、解析者力 を知ることができれば、 r、 s、 h及び qは解析者が知る ことができるため、 s = (r X ks + h)Zk mod qから、解析者が秘密鍵 ksを求めること ができてしまう。したがって、 Pakの離散対数 kは求められないようシステムを設計する 必要がある。
[0095] また、従来の楕円 DS A署名方式の署名生成において、秘密鍵 ksだけでなぐ乱数 kをも秘密にする必要がある。
なぜなら、値 h、 r、 sは、解析者 (攻撃者)が知ることができる。さらに、乱数 kが知ら れると、ステップ S4により秘密鍵 ksを求めることが可能である力もである。 そこで、本発明は、乱数 k及び秘密鍵 ksが用いられるステップ S 2及び 4において、 解析者による解析を困難にして 、る。
[0096] 本発明では、上述したように、ステップ S4の解析を困難にするために、スーパーァ ノマラス楕円を用いた準同型変換を利用することにより、秘密鍵 ksと乱数 kとをスーパ ーァノマラス楕円上に点に変換して、解析者が解析できないようにしている。したがつ て、解析者は秘密鍵 ksを知ることができなくなるため、実施の形態における署名生成 システムは安全である。
[0097] ここで、従来型の楕円 DSA署名方式と本発明の楕円 DSA署名方式との対応につ いて図 9を用いて説明する。
図 9は、本発明の楕円 DSA署名方式の動作のうち、従来型の楕円 DSA署名方式 の署名生成におけるステップ S4に対応する動作部分を示す。
図 9において破線で囲んだ処理群 310は、図 6にて示すステップ S140に対応して いる。ここで、処理群 310は、変換後秘密鍵メモリ部 105と、 r *KSTを算出する処理 群 301と力 構成されて 、る。
[0098] 処理群 311は、ステップ S 130に対応している。ここで、処理群 311は、公開パラメ 一タメモリ部 104と、 hPaを算出する処理群 302とから構成されて 、る。
処理群 310及び処理群 311による結果を加算する処理群 303は、ステップ S 145に 対応している。
離散対数問題 cQを算出する処理群 304はステップ S 150に対応し、離散対数 ckを 算出する処理群 305は、ステップ S 155に対応して 、る。
[0099] 処理群 304及び 305の算出結果それぞれに βを乗算する処理群 306は、ステップ S160力ら S170に対応して!/ヽる。
さらには、署名データ S= (r, s)に含まれるデータ sを算出する処理群 307は、ステ ップ S175、 S 180【こ対応して!/ヽる。
処理群 320は解析可能な領域にて実行され、処理群 321は、上述したように、処理 内容の解析を困難にするために、ハード対策やソフトウェア対策により耐タンパ性を 有する領域で実行される。
[0100] ここで、上述したように、秘密鍵 ksは、 KST( = ks * Pa)に予め変換され記憶されて おり、秘密鍵 ks自体は署名生成を行う際には現れることはないので、解析者は秘密 鍵 ksを知ることができない。また、乱数 kは、そのままの値で、解析可能な領域にて現 れることはない。乱数 kは、解析可能な領域では、スーパーァノマラス楕円上に点に 変換されているので、解析が困難となる。
[0101] また、スーパーァノマラス楕円を用いた準同型変換を用いると、乱数 kの代わりに、 ァノマラス楕円 Eaにおける k * Pが必要になり、さらには、 kを算出するために、楕円 D SA署名方式による署名を行う楕円 Eの k * Pkと、ァノマラス楕円 Eaにおける k * Paと が必要になる。
そこで、本発明は、テーブルメモリ部 102、乱数生成モジュール 122、選択モジユー ル 123及びランダム元生成モジュール 124を用いて、 kを生成し使用することなく k* P及び k * Paを算出している。これにより、従来型の楕円 DS A署名方式のステップ S 2により R ( = k* P)を求める際には、乱数 kが現れている力 本発明では、乱数 kを出 現させることなく Pk(=k * P)を算出しているので、 Pkの算出時には kを求めることが できない。また、算出結果力も kを求めることも困難にしている。
[0102] 従来、秘密鍵 ks及び乱数 kを解析困難にするためには、ステップ S 2及びステップ S 4の実行において、ハード対策を施す必要がある。し力しながら、本発明では、離散 対数問題を解き、解を用いる動作部分 (処理群 304、 305、及び 306)に対して解析 が困難になるようにハード対策を施せばよい。これにより、ハード対策を施す部分が 限定されるので、署名生成装置の実装が従来より容易となる。
[0103] また、図 10において、従来の楕円 DSA署名方式の署名生成による各ステップと、 本発明の署名生成装置 10の構成要素による動作との対応を示す。なお、各構成要 素間における接続線は、図 2及び図 4に示しているので、図 10では省略している。
ノ、ッシュ値生成モジュール 121により、ステップ S 1と同等の動作が実現できる。 ステップ S2には、テーブルメモリ部 102、乱数生成モジュール 122、選択モジユー ル 123及びランダム元生成モジュール 124からなる構成群 401により、ステップ S2と 同等の動作が実現できる。
[0104] 主要演算モジュール 126にて行われる値 rの算出により、ステップ S3と同等の動作 が実現できる。 変換モジュール 125、主要演算モジュール 126、逆変換モジュール 127、乗算モジ ユール 128及び除算モジュール 129からなる構成群 402により、ステップ S4と同等の 動作が実現できる。
[0105] 署名データ生成モジュール 130により、ステップ S5と同等の動作が実現できる。
また、秘密パラメータメモリ部 103、公開パラメータメモリ部 104、変換後秘密鍵メモ リ部 105は、各モジュールの動作に応じて利用される。
また、逆変換モジュール 127及び乗算モジュール 128からなる構成群 402は、上述 したように、解析困難にするためにハード対策を施す必要がある部分である。
[0106] なお、解析困難にするためにハード対策を施すとしたが、これに限定されない。解 析を困難にする対策であれば、ハード対策に限らず他の対策でもよい。
1. 9 変形例
上記に説明した実施の形態は、本発明の実施の一例であり、本発明はこの実施の 形態に何ら限定されるものではなぐその旨を逸脱しな 、範囲にぉ 、て種々なる態様 で実施し得るものである。例えば、以下のような場合も本発明に含まれる。
[0107] (1)実施の形態において、 p、 q、 uのビット数 lenを 160としている力 これに限らな い。 160より大きい、例えば 192や 224としてもよい。また、 nのビット数を 1024として ヽる力 これに限らな!/、。 1024より大き!/、、 f列えば、 2048や 4096としてもよ!/、。
(2)実施の形態では、署名生成プログラムの形態であるが、これを暗号化プロダラ ムゃ復号ィ匕プログラムの形態としてもょ 、。
[0108] (3)実施の形態においては、第 2の群として楕円曲線 Ea上の群を使用した力 これ に限定されない。第 2の群として剰余整数環の乗法群や、その他の群を利用するとし てもよい。
また、実施の形態では楕円曲線のスカラ倍演算を行って、整数を変換したが、これ に限定されない。整数を変換する演算として、群の冪演算を用いてもよい。ここで、冪 演算とは、群の基本演算、すなわち、剰余整数環では乗算、楕円曲線上の群では楕 円曲線加算を、整数回行った結果を求める演算である。したがって、剰余整数環の 乗法群の冪演算は冪乗演算、楕円曲線上の群の冪演算は楕円曲線のスカラ倍演算 である。実施の形態では、第 2の群 Gaは、 Ea (GF (pl) ) X Ea (GF (p2) )であり、離 散対数問題はこの「部分群」である、 Ea (GF (pl) )で解いているが、剰余整数環 ZZ nZの乗法群やその他の群の「部分群」にお 、て離散対数問題を解 、てもよ 、。また 、第 2の群を特許文献 3における剰余整数環の乗法群としてもよい。
[0109] (4)上記実施の形態において、第 2の群 Gaは、合成数 n (=pl X p2)に対する ZZ nZ上の楕円曲線上の群とした力 これに限定されない。なお、 pi, p2は互いに異な るに素数である。
第 2の群 Gaは、合成数 n (=pl "m X p2)に対する対する ZZnZ上の楕円曲線上の 群であってもよい。だたし、 mは 1以上の整数である。ここで、 pl 'mは piの m乗を示 す。
[0110] または、第 2の群 Gaは、
Figure imgf000030_0001
Χ ρ2)に対する対する ZZnZ上の乗法 群であってもよい。だたし、 mは 1以上の整数である。このとき、第 2の群の部分群は、 Z/pl "m Z上の乗法群としてもよい。
(5)上記実施の形態において、署名生成装置 10は、ランダム元生成モジュール 12 4にて 2つのランダム元(Pk、 Pak)を生成したが、これに限定されない。
[0111] ランダム元生成モジュール 124は、 1つのランダム元(例えば、 Pk)のみを生成して もよい。この場合、署名生成装置 10は、 2 X len個の元対の代わりに 2 X len個の P— (i, j)を格納している(i=0, l、j = 0, 1, · · · , len— 1)。署名生成装置 10は、 lenビ ットの乱数 uを生成すると、生成した乱数 uを用いて第 1の群 Gの元 Pkを算出する。算 出方法は、上記実施の形態にて示す方法と同様であるため、ここでの説明は省略す る。これにより、署名生成装置 10は、乱数 kを第三者に知られることがないように第 1 の群 Gの元 Pkを算出することができる。
[0112] または、ランダム元生成モジュール 124は、 2個以上のランダム元(Pk、 Pakl、 Pak 2、 · · ·、 Pakn)を生成してもよい(nは、 1以上の整数)。
(6)上記実施の形態において、署名生成装置 10における選択モジュール 123は、 乱数生成モジュール 122にて生成された正整数 uをビット数が lenビットからなるビット 表現に変換し、各ビットに対応する元対を選択したが、これに限定されない。
[0113] 選択モジュール 123は、乱数生成モジュール 122にて生成された正整数 uから直 接元対を求めてもよい。 このとき、テーブルメモリ部 102は、正整数 1、 2、 3、 '"に対して、元対 (V— 1*P, v_l * Pa)、 (v_2 * P, v_2 * Pa)、 (v_3 * P, v_3 * Pa)、 · · ·を記憶して!/、る
[0114] 選択モジュール 123は、乱数生成モジュール 122にて生成された正整数 uに対応 する元対 (V— u * P, V— u * Pa)をテーブルメモリ部 102が記憶して!/、るテーブルか ら選択する。
ランダム元生成モジュール 124は、選択された元対 (V— u*P, V— u*Pa)に対し て、 Pk=v_u*P、 Pak=v_u*Paとする。
[0115] 以降の動作は、実施の形態と同様であるので、ここでの説明は省略する。
以下、別の例を説明する。
または、テーブルメモリ部 102は、元対(V— 1*P, V— l*Pa)、(v— 2*P, v_2
* Pa)、(v— 3 * P, v— 3 * Pa)、 · · ·、 (v_t * P, v_t * Pa)を記憶して!/、る。 tは 1 以上の整数である。
[0116] 選択モジュール 123は、以下のようにして 1個以上の元対を選択する。
選択モジュール 123は、正整数 11カ¾以下である場合には、元対 (V— u*P, v_u
* Pa)をテーブルメモリ部 102が記憶して 、るテーブル力も選択する。
選択モジュール 123は、正整数 11カ¾より大きい場合には、 u=tl+t2+ · · · +tpと なる tl、 t2、 · · ·、 tpを取得する。ここで、 pは、 2以上の整数であり、 tl、 t2、 · · ·、 tp のそれぞれは、 t以下の数である。選択モジュール 123は、取得した tl、 t2、 · · ·、 tp それぞれに対応する元対(v— tl*P, V— tl*Pa)、 (v— t2*P, v— t2*Pa)、 ··· 、(v— tp*P, v—tp* Pa)をテーブルメモリ部 102が記憶しているテーブルから選 択する。
[0117] ランダム元生成モジュール 124は、選択された元対が 1個である場合には、選択さ れた元対(V一 u*P, V一 u*Pa)に対して、 Pk=v_u*Pゝ Pak=v一 u* Paとする ランダム元生成モジュール 124は、選択された元対が 2個以上である場合には、選 択された元対(V一 tl*P, V一 tl*Pa)、(V一 t2*P, v_t2*Pa)、 ···、(v一 tp* P, v tp*Pa)に対して、 v tl*P、v t2*P、 '.'、v tp*Pを楕円曲線 E上で カロ算することにより、 Pkを算出し、 V— 11 * Pa、 v_t2 * Pa、 · · ·、 v_tp * Paを楕円 曲線 Ea上で加算することにより、 Pakを計算する。
[0118] 以降の動作は、実施の形態と同様であるので、ここでの説明は省略する。
(7)上記実施の形態において、ランダム元生成モジュール 124は、選択モジュール 123にて選択された len個全ての元対を用いて、 Pk及び Pakを算出した力 これに限 定されない。
ランダム元生成モジュール 124は、選択された len個の元対から w個の元対を選択 し、選択した w個の元対を用いて Pk及び Pakを算出してもよい。ここで、 wは、 2以上 1 en以下の数である。
[0119] 例えば、数 wは予め与えられており、ランダム元生成モジュール 124は、選択された len個の元対からランダムに w個の元対を選択する。
また別の例として、ランダム元生成モジュール 124は、選択された len個の元対から ビット値「1」に対応する w個の元対のみを選択してもよいし、ビット値「0」に対応する w個の元対のみを選択してもよ!/、。
[0120] または、ランダム元生成モジュール 124は、ビット値が 1であるビットの個数とビット値 が「0」であるビットの個数とを比較し、個数が多いほうのビット値に対応する w個の元 対のみを選択してもよい。
または、数 wは予め与えられており、ランダム元生成モジュール 124は、選択された len個の元対から、上位ビット w個分の元対を選択する。なお、ランダム元生成モジュ ール 124は、選択された len個の元対から、下位ビット w個分の元対を選択してもよい
[0121] ここでは、 wは、 2以上 len以下の数であるとした力 wは、 1以上 len以下の数であつ てもよい。 w= lの場合、ランダム元生成モジュール 124は、選択された元対 (V— u* P, v_u* Pa)に対して、 Pk=v_u * P、 Pak=v_u * Paとする。
(8)本発明における分解組とは、上記実施の形態にて示すテーブルメモリ部 102の 記憶内容としてもよいし、正整数 u毎に対する複数の分解対 (つまり、元対)、すなわ ち、正整数 uの各ビットに対して選択された分解対の組み合わせとしてもよ 、。
[0122] (9)上記実施の形態において、署名生成は、署名生成プログラムにて生成されると したが、これに限定されない。
署名生成は、署名を生成するハードウェアにより生成されるとしてもょ 、。 つまり、署名生成プログラムに含まれる各モジュールは、上記にて説明した機能を 達成する手段力もなるとしてもよ 、。
[0123] (10)上記の各装置は、具体的には、マイクロプロセッサ、 ROM, RAM,ハードデ イスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュー タシステムである。前記 RAMまたはハードディスクユニットには、コンピュータプロダラ ムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムにしたが つて動作することにより、各装置は、その機能を達成する。ここでコンピュータプロダラ ムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが 複数個組み合わされて構成されたものである。
[0124] (11)上記の各装置を構成する構成要素の一部または全部は、 1個のシステム LSI
(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。 システム LSIは、複数の構成部を 1個のチップ上に集積して製造された超多機能 LSI であり、具体的には、マイクロプロセッサ、 ROM、 RAMなどを含んで構成されるコン ピュータシステムである。前記 RAMには、コンピュータプログラムが記憶されている。 前記マイクロプロセッサ力 前記コンピュータプログラムにしたがって動作することによ り、システム LSIは、その機能を達成する。
[0125] (12)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能 な ICカードまたは単体のモジュール力も構成されて 、るとしてもよ 、。前記 ICカード または前記モジュールは、マイクロプロセッサ、 ROM, RAMなどから構成されるコン ピュータシステムである。前記 ICカードまたは前記モジュールは、上記の超多機能 L SIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動 作することにより、前記 ICカードまたは前記モジュールは、その機能を達成する。この ICカードまたはこのモジュールは、耐タンパ性を有するとしてもよ!/、。
[0126] (13)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンビュ ータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプ ログラム力 なるディジタル信号であるとしてもよい。 また、本発明は、前記コンピュータプログラムまたは前記ディジタノレ信号をコンビュ ータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、 CD -ROM, MO、 DVDゝ DVD-ROM, DVD -RAM, BD (Blu—ray Disc)、半 導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されてい る前記コンピュータプログラムまたは前記ディジタル信号であるとしてもよい。
[0127] また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号を、電気通 信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ 放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、 前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは 、前記コンピュータプログラムにしたがって動作するとしてもよい。
[0128] また、前記プログラムまたは前記ディジタル信号を前記記録媒体に記録して移送す ることにより、または前記プログラムまたは前記ディジタノレ信号を前記ネットワーク等を 経由して移送すること〖こより、独立した他のコンピュータシステムにより実施するとして ちょい。
(14)これらの実施の形態及び変形例の組合せであってもよ!/、。
2.まとめ
本発明は、有限体上や楕円曲線上における離散対数問題を安全性の根拠とする 署名方式 (例えば、 DSA署名方式や ECDSA署名方式)を実装したプログラムを、攻 撃者が解析困難にするソースコード難読ィ匕方法を提供することを目的とする。
[0129] 以下に、本発明における特徴を以下に示す。
(1)本発明は、秘密鍵を用いて、メッセージに対するディジタル署名を生成する署 名生成装置に実行させる署名生成プログラムであって、前記署名生成装置は、第 1 の群 Gに属する第 1の元と第 2の群 Gaに属する第 2の元との対である元対を複数個 記憶して 、るテーブルメモリ部と、前記署名生成プログラムを記憶して 、るプログラム メモリ部と、前記プログラムメモリ部に記憶されている前記署名生成プログラムから 1 個ずつコンピュータ命令を読み出し、解釈し、その解釈結果に応じて動作するプロセ ッサとを備え、前記署名生成プログラムは、第 1の整数を生成する整数生成モジユー ルと、前記第 1の整数に基づいて、前記テーブルメモリ部で記憶している複数の前記 元対の中から、複数の前記元対を選択し、出力する選択モジュールと、前記選択モ ジュールが出力した複数の前記対を使用して、前記第 1の群 Gに属する第 3の元と前 記第 2の群 Gaに属する第 4の元を計算する群演算モジュールとを含み、前記第 1の 元と前記第 2の元はそれぞれ、前記第 1の群 Gに属する予め与えられた元である第 1 の基本元 Pと、前記第 2の群 Gaに属する予め与えられた元である第 2の基本元 Paと、 予め与えられた正整数である冪数に対して、前記冪数を冪とした前記第 1の基本元 P の前記第 1の群 Gにおける冪演算を行うことで得られる元と、前記冪数を冪とした前 記第 2の基本元 Paの前記第 2の群 Gaにおける冪演算を行うことで得られる元である ことを特徴とする。
[0130] (2)上記(1)の署名生成プログラムにおいて、前記選択モジュールは、前記第 1の 整数のビット値ごとに一つの前記対を選択するとしてもよい。
(3)上記(2)の署名生成プログラムにおいて、前記第 3の元は、前記選択モジユー ルが選択した前記対の個々に含まれる前記第 1の群 Gに属する元のすべてに対して 、前記第 1の群 Gの基本演算を行った結果得られる前記第 1の群 Gの元であり、前記 第 4の元は、前記選択モジュールが選択した前記対の個々に含まれる前記第 2の群 Gaに属する元のすべてに対して、前記第 2の群 Gaの基本演算を行った結果得られ る前記第 2の群 Gaの元であるとしてもよ 、。
[0131] (4)上記(1)から(3)のいずれかに記載の署名生成プログラムにおいて、前記署名 生成プログラムはさらに、前記第 2の群 Ga上の冪演算を行うことにより、整数を前記 第 2の群に属する元に変換する変換モジュールと、前記第 2の群 Ga上の基本演算を 行う主要演算モジュールと、前記第 2の群 Gaまたは、前記第 2の群 Gaが真に含む前 記第 2の群 Gaの部分群 Saにおける前記変換モジュールで行う変換の逆変換を行う 逆変換モジュールとを含むとしても 、ょ 、。
[0132] (5)上記(1)から (4)のいずれかに記載の署名生成プログラムにおいて、前記署名 生成装置はさらに、前記秘密鍵と前記第 2の基本元から生成される前記第 2の群に 属する元である変換後秘密鍵を記憶して!/、る変換後秘密鍵メモリ部を備え、前記署 名生成プログラムはさらに、前記変換後秘密鍵メモリ部に記憶されて ヽる変換後秘密 鍵を用いて、前記第 2の群 Gaの冪演算を行う変換後秘密鍵演算モジュールとを含む としてちよい。
[0133] (6)上記(1)から(5)のいずれかに記載の署名生成プログラムにおいて、前記第 1 の群 G及び前記第 2の群 Gaは、剰余整数環の乗法群であるとしてもよ!、。
(7)上記(1)に記載の署名生成プログラムにおいて、前記第 2の群 Gaは、 2つの素 数 p、 qと正整数 mを用いて表される n=p"m X qに対し、 Z/nZの乗法群であるとし てもよい (ただし、 x'yは Xの y乗を示す)。
[0134] (8)上記(7)に記載の署名生成プログラムにおいて、前記部分群 Saは、 Z/p"m
Zの乗法群であるとしてもよい。
(9)上記(8)に記載の署名生成プログラムにおいて、前記正整数 mは 2であるとし てもよい。
(10)上記(1)から(5)の 、ずれかに記載の署名生成プログラムにお 、て、前記第 1 の群 Gは楕円曲線の群であり、前記部分群 Saは、ァノマラス楕円曲線の群であるとし てもよい。
[0135] (11)上記(1)から(5)のいずれかに記載の署名生成プログラムにおいて、前記第 2 の群 Gaは、二つのァノマラス楕円曲線の群の直積であるとしてもよい。
( 12)上記( 1)から(5)、 ( 11)及び( 12)の 、ずれかに記載の署名生成プログラムに おいて、前記逆変換モジュールは、前記第 2の群 Gaに属する元を前記部分群 Saに 属する元に還元する還元手段を備えるとしてもよ 、。
[0136] (13)本発明は、群の演算を行う演算装置に実行させる演算プログラムであって、前 記演算装置は、第 1の群 Gに属する第 1の元と第 2の群 Gaに属する第 2の元との対を 複数個記憶して 、るテーブルメモリ部と、前記署名生成プログラムを記憶して 、るプ ログラムメモリ部と、前記プログラムメモリ部に記憶されて 、る前記署名生成プログラム から 1個ずつコンピュータ命令を読み出し、解釈し、その解釈結果に応じて動作する プロセッサとを備え、前記演算プログラムは、第 1の整数を生成する整数生成モジュ ールと、前記第 1の整数に基づいて、前記テーブルメモリ部で記憶している複数の前 記対の中から、複数の前記対を選択する選択モジュールと、前記選択モジュールが 選択した複数の前記対を使用して、前記第 1の群 Gに属する第 3の元と前記第 2の群 Gaに属する第 4の元を計算する群演算モジュールとを含み、前記第 1の元と前記第 2の元はそれぞれ、予め与えられた前記第 1の群 Gに属する元である第 1の基本元 P と、予め与えられた前記第 2の群 Gaに属する元である第 2の基本元 Paと、予め与えら れた正整数である冪数に対して、前記冪数を冪とした前記第 1の基本元 Pの前記第 1 の群 Gにおける冪演算を行うことで得られる元と、前記冪数を冪とした前記第 2の基 本元 Paの前記第 2の群 Gaにおける冪演算を行うことで得られる元であることを特徴と する。
[0137] (14)本発明は、秘密鍵を用いて、メッセージに対するディジタル署名を生成する署 名生成装置であって、第 1の群 Gに属する第 1の元と第 2の群 Gaに属する第 2の元と の対を複数個記憶しているテーブルメモリ部と、第 1の整数を生成する整数生成部と 、前記第 1の整数に基づいて、前記テーブルメモリ部で記憶している複数の前記対 の中から、複数の前記対を選択する選択部と、前記選択部が選択した複数の前記対 を使用して、前記第 1の群 Gに属する第 3の元と前記第 2の群 Gaに属する第 4の元を 計算する群演算部とを備え、前記第 1の元と前記第 2の元はそれぞれ、予め与えられ た前記第 1の群 Gに属する元である第 1の基本元 Pと、予め与えられた前記第 2の群 Gaに属する元である第 2の基本元 Paと、予め与えられた正整数である冪数に対して 、前記冪数を冪とした前記第 1の基本元 Pの前記第 1の群 Gにおける冪演算を行うこ とで得られる元と、前記冪数を冪とした前記第 2の基本元 Paの前記第 2の群 Gaにお ける冪演算を行うことで得られる元であることを特徴とする。
[0138] (15)上記(14)に記載の署名生成装置において、前記選択部は、前記第 1の整数 のビット値ごとに一つの前記対を選択するとしてもよい。
(16)上記(14)または(15)に記載の署名生成装置において、前記第 3の元は、前 記選択部が選択した前記対の個々に含まれる前記第 1の群 Gに属する元のすべて に対して、前記第 1の群 Gの基本演算を行つた結果得られる前記第 1の群 Gの元であ り、前記第 4の元は、前記選択部が選択した前記対の個々に含まれる前記第 2の群 Gaに属する元のすべてに対して、前記第 2の群 Gaの基本演算を行った結果得られ る前記第 2の群 Gaの元であるとしてもよ 、。
[0139] (17)上記にて示す署名生成プログラムにおける署名方式は、有限体上や楕円曲 線上における離散対数問題を安全性の根拠としているので、攻撃者が解析困難に することができ、その価値は大きい。
また、上記にて示す署名生成装置は、有限体上や楕円曲線上における離散対数 問題を安全性の根拠とする署名方式にて署名生成を行うので、攻撃者が解析困難 にすることができ、その価値は大きい。
[0140] (18)また、本発明は、群 G上の離散対数問題を安全性の根拠として、群 G上の基 本元 Pについて基本演算を複数回繰り返す冪演算を施す演算装置であって、複数 の数の各々に分解組が予め対応付けられており、各分解組は複数の分解値を含み 、各分解値は基本元 Pについて任意の正整数を冪とする冪演算が施されて算出され た群 G上の元であり、前記演算装置は、前記複数の分解組を記憶する分解対記憶 手段と、前記複数の数カゝらランダムに数 uを選択し、選択した数 uに対応する分解組 を前記分解値記憶手段から選択する選択手段と、選択された分解組に含まれる全て の分解値について、前記群 Gの基本演算を施して、冪乗元を生成する生成手段とを 備えることを特徴とする。
[0141] (19)以上説明したように、本発明によると、演算に使用する値の隠蔽だけでなぐ 演算そのものを隠蔽することができる。
産業上の利用可能性
[0142] 本発明を構成する各装置、各方法及びコンピュータプログラムは、情報を安全かつ 確実に扱う必要があるあらゆる産業において、経営的に、また継続的及び反復的に 使用することができる。また、本発明を構成する各装置、各方法及び各コンピュータ プログラムは、電器機器製造産業において、経営的に、また継続的及び反復的に、 製造し、販売することができる。

Claims

請求の範囲
[1] 群 G及び群 Ga上の離散対数問題を安全性の根拠として、群 G上の基本元 Pについ て並びに群 Ga上の基本元 Paについて基本演算を複数回繰り返す冪演算を施すこと により、メッセージに対するディジタル署名を生成する署名生成装置であって、 複数の数の各々に分解組が予め対応付けられており、各分解組は複数の分解対 を含み、各分解対は第 1の分解値と第 2の分解値とを含み、各第 1の分解値は基本 元 Pについて任意の正整数を冪とする冪演算が施されて算出された群 G上の元であ り、各第 2の分解値は基本元 Paについて当該第 2の分解値に対応する第 1の分解値 において用いられた正整数を冪とする冪演算が施されて算出された群 Ga上の元で あり、
前記署名生成装置は、
前記複数の分解組を記憶する分解値記憶手段と、
前記複数の数カゝらランダムに数 uを選択し、選択した数 uに対応する分解組を前記 分解値記憶手段から選択する選択手段と、
選択された分解組に含まれる 2つ以上の第 1の分解値について、前記群 Gの基本 演算を施して、第 1の冪乗元を生成し、選択された分解組に含まれ、且つ前記 2っ以 上の第 1の分解値のそれぞれに対応する第 2の分解値について、前記群 Gaの基本 演算を施して、第 2の冪乗元を生成する生成手段と、
生成された前記第 1の冪乗元及びメッセージそれぞれを群 Ga上の元に変換し、変 換された第 1の冪乗元、変換されたメッセージ及び前記第 2の冪乗元に対して前記群 Ga上の演算を施し、第 1の離散対数及び第 2の離散対数を算出し、算出した第 1及 び第 2の離散対数を用いて、メッセージに対するディジタル署名を生成する署名手段 と
を備えることを特徴とする署名生成装置。
[2] 前記複数の数の各々は、長さが 2以上の所定長力もなるビット列で表現される数で あり、
前記所定長力もなるビット列の各ビット値に応じて分解対が対応付けられており、 前記選択手段は、 選択した前記数 Uを前記所定長のビット列力 なるビット表現へと変換し、各ビットそ れぞれの値に応じた分解対からなる前記分解組を前記分解値記憶手段から選択す る
ことを特徴とする請求項 1に記載の署名生成装置。
[3] 前記生成手段は、
ビット値ごとに選択された分解対からなる前記分解組に含まれる 2つ以上の第 1の 分解値に対して、前記群 Gにおける基本演算を施して前記第 1の冪乗元を生成し、 ビット値ごとに選択された分解対からなる前記分解組に含まれ、且つ前記 2つ以上 の第 1の分解値のそれぞれに対応する第 2の分解値に対して、前記群 Gaにおける前 記基本演算を施して前記第 2の冪乗元を生成する
ことを特徴とする請求項 2に記載の署名生成装置。
[4] 前記第 1の冪乗元は、 2つ以上の値を含み、
前記署名手段は、
前記メッセージに対するハッシュ値を冪とし、前記基本元 Paに対して群 Gaにおける 前記冪演算を施すことにより、前記ハッシュ値を前記群 Gaに属する変換後ハッシュ 値へと変換する変換部と、
前記第 1の冪乗元に含まれる 1つの値を用いて、第 1のデータを算出する第 1演算 部と、
前記変換後ハッシュ値に、前記群 Ga上の基本演算を施し、前記群 Gaに属する第 3 の冪乗元を算出する第 2演算部と、
前記群 Ga又は前記群 Gaに真に含まれる部分群 Saにお 、て、前記第 2の冪乗元 及び前記第 3の冪乗元それぞれに対して、前記変換部にて行われる変換の冪演算 の逆算を施すことにより、第 1及び第 2の離散対数を求める逆変換部と、
前記第 1及び前記第 2の離散対数を用いて、第 2のデータを算出する第 3演算部と 前記第 1のデータと前記第 2のデータとの組からなるディジタル署名を生成するデ ータ生成部と
を含むことを特徴とする請求項 1に記載の署名生成装置。 [5] 前記署名生成装置は、さらに、
秘密鍵を冪として前記基本元 Paに対して前記群 Gaの基本演算を施して、前記群 Gaに属する変換後秘密鍵を記憶している変換後秘密鍵記憶手段を備え、
前記第 2演算部は、
前記変換後秘密鍵に対して前記第 1のデータを冪とする前記群 Gaの冪演算を施し て得られる前記群 Ga上の元である演算結果と、前記変換後ハッシュ値とに対して前 記群 Ga上の基本演算を施して前記第 3の冪乗元を算出する
ことを特徴とする請求項 4に記載の署名生成装置。
[6] 前記群 G及び前記群 Gaは、剰余整数環の乗法群であり、
前記群 G及び前記群 Gaのそれぞれにおける基本演算とは、各元に対して乗算を 施す乗法演算であり、
前記群 G及び前記群 Gaのそれぞれにおける冪演算とは、正整数を冪数とする冪乗 演算である
ことを特徴とする請求項 5に記載の署名生成装置。
[7] 前記群 Gaは、 2つの素数 p、 qと、正整数 mとを用いて表される n = p"m X qに対し、 ZZnZの乗法群であり、 Ίま冪乗算を示す演算子であり、 Xは、乗算を示す演算子で あり、 Zは整数環であり、 ZZnZは剰余整数環である
ことを特徴とする請求項 6に記載の署名生成装置。
[8] 前記部分群 Saは、 ZZp"m Zの乗法群である
ことを特徴とする請求項 7に記載の署名生成装置。
[9] 前記正整数 mは 2である
ことを特徴とする請求項 8に記載の署名生成装置。
[10] 前記群 Gは、楕円曲線の群であり、
前記部分群 Saは、ァノマラス楕円曲線の群であり、
前記群 G及び前記群 Gaのそれぞれにおける基本演算とは、各元に対して楕円曲 線上の加算を施す演算であり、
前記群 G及び前記群 Gaのそれぞれにおける冪演算とは、前記正整数に楕円曲線 上の乗算を施す演算である ことを特徴とする請求項 4に記載の署名生成装置。
[11] 前記群 Gは、楕円曲線の群であり、
前記群 Gaは、 2つのァノマラス楕円曲線の直積であり、
前記群 G及び前記群 Gaのそれぞれにおける基本演算とは、各元に対して楕円曲 線上の加算を施す演算であり、
前記群 G及び前記群 Gaのそれぞれにおける冪演算とは、正整数に楕円曲線上の 乗算を施す演算である
ことを特徴とする請求項 4に記載の署名生成装置。
[12] 前記逆変換部は、前記群 Gaに属する元を、前記部分群 Saに属する元に還元する 還元部を含み、
前記逆変換部は、前記還元部を用いて前記第 2の冪乗元及び前記第 3の冪乗元 それぞれを、前記部分群 Saに属する元に還元し、還元した元それぞれに対して、前 記逆算を施すことにより、前記第 1の離散対数及び前記第 2の離散対数を求める ことを特徴とする請求項 4に記載の署名生成装置。
[13] 群 G及び群 Ga上の離散対数問題を安全性の根拠として、群 G上の基本元 Pについ て並びに群 Ga上の基本元 Paについて基本演算を複数回繰り返す冪演算を施すこと により、メッセージに対するディジタル署名を生成する署名生成装置であって、 複数の数の各々に分解組が予め対応付けられており、各分解組は複数の分解対 を含み、各分解対は第 1の分解値と第 2の分解値とを含み、各第 1の分解値は基本 元 Pについて任意の正整数を冪とする冪演算が施されて算出された群 G上の元であ り、各第 2の分解値は基本元 Paについて当該第 2の分解値に対応する第 1の分解値 において用いられた正整数を冪とする冪演算が施されて算出された群 Ga上の元で あり、
前記署名生成装置は、
前記複数の分解組を記憶する分解値記憶手段と、
前記複数の数カゝらランダムに数 uを選択し、選択した数 uに対応する分解対を前記 分解値記憶手段から選択する選択手段と、
選択された分解対に含まれる第 1の分解値及びメッセージそれぞれを群 Ga上の元 に変換し、変換された第 1の分解対、変換されたメッセージ及び選択された分解対に 含まれる第 2の分解値に対して前記群 Ga上の演算を施し、離散対数問題を解!ヽて 第 1及び第 2の離散対数を算出し、算出した第 1及び第 2の離散対数を用いて、メッ セージに対するディジタル署名を生成する署名手段と
を備えることを特徴とする署名生成装置。
群 G及び群 Ga上の離散対数問題を安全性の根拠として、群 G上の基本元 Pにつ ヽ て並びに群 Ga上の基本元 Paについて基本演算を複数回繰り返す冪演算を施すこと により、メッセージに対するディジタル署名を生成する署名生成装置で用いられる署 名生成方法であって、
複数の数の各々に分解組が予め対応付けられており、各分解組は複数の分解対 を含み、各分解対は第 1の分解値と第 2の分解値とを含み、各第 1の分解値は基本 元 Pについて任意の正整数を冪とする冪演算が施されて算出された群 G上の元であ り、各第 2の分解値は基本元 Paについて当該第 2の分解値に対応する第 1の分解値 において用いられた正整数を冪とする冪演算が施されて算出された群 Ga上の元で あり、
前記署名生成装置は、
前記複数の分解組を記憶する分解値記憶手段を備え、
前記署名生成方法は、
前記複数の数カゝらランダムに数 uを選択し、選択した数 uに対応する分解組を前記 分解値記憶手段から選択する選択ステップと、
選択された分解組に含まれる 2つ以上の第 1の分解値について、前記群 Gの基本 演算を施して、第 1の冪乗元を生成し、選択された分解組に含まれ、且つ前記 2っ以 上の第 1の分解値のそれぞれに対応する第 2の分解値について、前記群 Gaの基本 演算を施して、第 2の冪乗元を生成する生成ステップと、
生成された前記第 1の冪乗元及びメッセージそれぞれを群 Ga上の元に変換し、変 換された第 1の冪乗元、変換されたメッセージ及び前記第 2の冪乗元に対して前記群 Ga上の演算を施し、第 1の離散対数及び第 2の離散対数を算出し、算出した第 1及 び第 2の離散対数を用いて、メッセージに対するディジタル署名を生成する署名ステ ップと
を含むことを特徴とする署名生成方法。
[15] 群 G及び群 Ga上の離散対数問題を安全性の根拠として、群 G上の基本元 Pについ て並びに群 Ga上の基本元 Paについて基本演算を複数回繰り返す冪演算を施すこと により、メッセージに対するディジタル署名を生成する署名生成装置で用いられる署 名生成プログラムであって、
複数の数の各々に分解組が予め対応付けられており、各分解組は複数の分解対 を含み、各分解対は第 1の分解値と第 2の分解値とを含み、各第 1の分解値は基本 元 Pについて任意の正整数を冪とする冪演算が施されて算出された群 G上の元であ り、各第 2の分解値は基本元 Paについて当該第 2の分解値に対応する第 1の分解値 において用いられた正整数を冪とする冪演算が施されて算出された群 Ga上の元で あり、
前記署名生成装置は、
前記複数の分解組を記憶する分解値記憶手段を備え、
前記署名生成プログラムは、
前記複数の数カゝらランダムに数 uを選択し、選択した数 uに対応する分解組を前記 分解値記憶手段から選択する選択ステップと、
選択された分解組に含まれる 2つ以上の第 1の分解値について、前記群 Gの基本 演算を施して、第 1の冪乗元を生成し、選択された分解組に含まれ、且つ前記 2っ以 上の第 1の分解値のそれぞれに対応する第 2の分解値について、前記群 Gaの基本 演算を施して、第 2の冪乗元を生成する生成ステップと、
生成された前記第 1の冪乗元及びメッセージそれぞれを群 Ga上の元に変換し、変 換された第 1の冪乗元、変換されたメッセージ及び前記第 2の冪乗元に対して前記群 Ga上の演算を施し、第 1の離散対数及び第 2の離散対数を算出し、算出した第 1及 び第 2の離散対数を用いて、メッセージに対するディジタル署名を生成する署名ステ ップと
を含むことを特徴とする署名生成プログラム。
[16] 前記複数の数の各々は、長さが 2以上の所定長力 なるビット列で表現される数で あり、
前記所定長力もなるビット列の各ビット値に応じて分解対が対応付けられており、 前記選択ステップは、
選択した前記数 Uを前記所定長のビット列力 なるビット表現へと変換し、各ビットそ れぞれの値に応じた分解対からなる前記分解組を前記分解値記憶手段から選択す る
ことを特徴とする請求項 15に記載の署名生成プログラム。
[17] 前記生成ステップは、
ビット値ごとに選択された分解対からなる前記分解組に含まれる 2つ以上の第 1の 分解値に対して、前記群 Gにおける基本演算を施して前記第 1の冪乗元を生成し、 ビット値ごとに選択された分解対からなる前記分解組に含まれ、且つ前記 2つ以上 の第 1の分解値のそれぞれに対応する第 2の分解値に対して、前記群 Gaにおける前 記基本演算を施して前記第 2の冪乗元を生成する
ことを特徴とする請求項 16に記載の署名生成プログラム。
[18] 前記署名生成プログラムは、コンピュータ読み取り可能な記録媒体に記録されて 、 ることを特徴とする請求項 15に記載の署名生成プログラム。
[19] 群 G及び群 Ga上の離散対数問題を安全性の根拠として、群 G上の基本元 Pについ て並びに群 Ga上の基本元 Paについて基本演算を複数回繰り返す冪演算を施すこと により、メッセージに対するディジタル署名を生成する署名生成装置の集積回路であ つて、
複数の数の各々に分解組が予め対応付けられており、各分解組は複数の分解対 を含み、各分解対は第 1の分解値と第 2の分解値とを含み、各第 1の分解値は基本 元 Pについて任意の正整数を冪とする冪演算が施されて算出された群 G上の元であ り、各第 2の分解値は基本元 Paについて当該第 2の分解値に対応する第 1の分解値 において用いられた正整数を冪とする冪演算が施されて算出された群 Ga上の元で あり、
前記集積回路は、
前記複数の分解組を記憶する分解値記憶手段と、 前記複数の数カゝらランダムに数 uを選択し、選択した数 Uに対応する分解組を前記 分解値記憶手段から選択する選択手段と、
選択された分解組に含まれる 2つ以上の第 1の分解値について、前記群 Gの基本 演算を施して、第 1の冪乗元を生成し、選択された分解組に含まれ、且つ前記 2っ以 上の第 1の分解値のそれぞれに対応する第 2の分解値について、前記群 Gaの基本 演算を施して、第 2の冪乗元を生成する生成手段と、
生成された前記第 1の冪乗元及びメッセージそれぞれを群 Ga上の元に変換し、変 換された第 1の冪乗元、変換されたメッセージ及び前記第 2の冪乗元に対して前記群 Ga上の演算を施し、第 1の離散対数及び第 2の離散対数を算出し、算出した第 1及 び第 2の離散対数を用いて、メッセージに対するディジタル署名を生成する署名手段 と
を備えることを特徴とする集積回路。
群 G及び群 Ga上の離散対数問題を安全性の根拠として、群 G上の基本元 Pにつ ヽ て並びに群 Ga上の基本元 Paについて基本演算を複数回繰り返す冪演算を施す演 算装置であって、
複数の数の各々に分解組が予め対応付けられており、各分解組は複数の分解対 を含み、各分解対は第 1の分解値と第 2の分解値とを含み、各第 1の分解値は基本 元 Pについて任意の正整数を冪とする冪演算が施されて算出された群 G上の元であ り、各第 2の分解値は基本元 Paについて当該第 2の分解値に対応する第 1の分解値 において用いられた正整数を冪とする冪演算が施されて算出された群 Ga上の元で あり、
前記演算装置は、
前記複数の分解組を記憶する分解値記憶手段と、
前記複数の数カゝらランダムに数 uを選択し、選択した数 uに対応する分解組を前記 分解値記憶手段から選択する選択手段と、
選択された分解組に含まれる 2つ以上の第 1の分解値について、前記群 Gの基本 演算を施して、第 1の冪乗元を生成し、選択された分解組に含まれ、且つ前記 2っ以 上の第 1の分解値のそれぞれに対応する第 2の分解値について、前記群 Gaの基本 演算を施して、第 2の冪乗元を生成する生成手段と を備えることを特徴とする演算装置。
PCT/JP2006/325945 2005-12-28 2006-12-26 署名生成装置、署名生成方法及び署名生成プログラム WO2007074836A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN200680049826.0A CN101351988B (zh) 2005-12-28 2006-12-26 签名生成装置、签名生成方法
US12/158,033 US8280039B2 (en) 2005-12-28 2006-12-26 Signature generating device, signature generating method and signature generating program
JP2007551991A JP5001176B2 (ja) 2005-12-28 2006-12-26 署名生成装置、署名生成方法及び署名生成プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005-379129 2005-12-28
JP2005379129 2005-12-28

Publications (1)

Publication Number Publication Date
WO2007074836A1 true WO2007074836A1 (ja) 2007-07-05

Family

ID=38218057

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/325945 WO2007074836A1 (ja) 2005-12-28 2006-12-26 署名生成装置、署名生成方法及び署名生成プログラム

Country Status (4)

Country Link
US (1) US8280039B2 (ja)
JP (1) JP5001176B2 (ja)
CN (1) CN101351988B (ja)
WO (1) WO2007074836A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010033081A2 (en) * 2008-09-22 2010-03-25 Embeyond Pte Ltd Secure server system for online transactions
JP2013524263A (ja) * 2010-03-31 2013-06-17 イルデト カナダ コーポレーション ホワイトボックス攻撃から暗号化資産を保護するためのシステムと方法
JP2013172178A (ja) * 2012-02-17 2013-09-02 Nippon Telegr & Teleph Corp <Ntt> 署名鍵難読化システム、署名鍵難読化方法、難読化された署名鍵を用いた暗号化署名システム、難読化された署名鍵を用いた暗号化署名方法、装置とプログラム
WO2020065958A1 (ja) * 2018-09-28 2020-04-02 日本電気株式会社 署名生成装置、署名プログラム生成装置、署名生成方法、署名プログラム生成方法、署名プログラム、及び署名生成プログラムの生成プログラム

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8189771B2 (en) * 2009-01-12 2012-05-29 King Fahd University Of Petroleum & Minerals Hash functions with elliptic polynomial hopping
JP4802274B2 (ja) * 2009-10-30 2011-10-26 インターナショナル・ビジネス・マシーンズ・コーポレーション メッセージ送信および受信方法
US8386803B2 (en) 2009-11-18 2013-02-26 Apple Inc. System and method for data obfuscation based on discrete logarithm properties
IT1401937B1 (it) * 2010-09-16 2013-08-28 St Microelectronics Srl Metodo di generazione di una firma digitale
US8705730B2 (en) * 2010-12-23 2014-04-22 Morega Systems Inc. Elliptic curve cryptography with fragmented key processing and methods for use therewith
JP5606344B2 (ja) * 2011-01-25 2014-10-15 三菱電機株式会社 署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム
US8667288B2 (en) * 2012-05-29 2014-03-04 Robert Bosch Gmbh System and method for message verification in broadcast and multicast networks
US10068070B2 (en) * 2015-05-05 2018-09-04 Nxp B.V. White-box elliptic curve point multiplication
US20160328539A1 (en) * 2015-05-05 2016-11-10 Nxp B.V. Obscuring Software Code With Split Variables
FR3066845B1 (fr) * 2017-05-24 2019-06-14 Idemia Identity And Security Procede de signature electronique d'un document avec une cle secrete predeterminee
CN107395370B (zh) * 2017-09-05 2020-07-14 深圳奥联信息安全技术有限公司 基于标识的数字签名方法和装置
US11012435B2 (en) * 2017-12-19 2021-05-18 International Business Machines Corporation Multi factor authentication
CN108933650B (zh) * 2018-06-28 2020-02-14 阿里巴巴集团控股有限公司 数据加解密的方法及装置
CN109145644B (zh) * 2018-08-28 2021-03-19 北京云测信息技术有限公司 私钥混淆及数字签名生成方法、装置、智能设备
EP3758279A1 (en) * 2019-06-27 2020-12-30 Koninklijke Philips N.V. Selective disclosure of attributes and data entries of a record
CN112468983B (zh) * 2020-12-18 2022-05-10 国网河北省电力有限公司电力科学研究院 一种低功耗的电力物联网智能设备接入认证方法及其辅助装置
US11791988B2 (en) * 2021-11-22 2023-10-17 Theon Technology Llc Use of random entropy in cryptography

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001024439A1 (fr) * 1999-09-29 2001-04-05 Hitachi, Ltd. Dispositif, programme ou systeme de traitement d'informations secretes
WO2005098795A1 (ja) * 2004-03-31 2005-10-20 Matsushita Electric Industrial Co., Ltd. 整数を加算するコンピュータシステム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999626A (en) * 1996-04-16 1999-12-07 Certicom Corp. Digital signatures on a smartcard
DE69840959D1 (de) 1997-12-17 2009-08-20 Nippon Telegraph & Telephone Verschlüsselungs- und Entschlüsselungsvorrichtungen für Kryptosysteme mit öffentlichem Schlüssel und Aufzeichnungsmedium mit darauf gespeicherten zugehörigen Verarbeitungsprogrammen.
JP3402441B2 (ja) 1997-12-17 2003-05-06 日本電信電話株式会社 公開鍵暗号化装置、公開鍵暗号復号装置及び復号プログラム記録媒体
US6594761B1 (en) 1999-06-09 2003-07-15 Cloakware Corporation Tamper resistant software encoding
CN1108041C (zh) * 1999-12-01 2003-05-07 陈永川 运用椭圆曲线加密算法的数字签名方法
CN1259634C (zh) * 2001-12-30 2006-06-14 北京兆日科技有限责任公司 一种基于物质特性的加密防伪方法
CN1645789A (zh) * 2005-02-04 2005-07-27 张亚武 一种带智能卡的电子邮件系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001024439A1 (fr) * 1999-09-29 2001-04-05 Hitachi, Ltd. Dispositif, programme ou systeme de traitement d'informations secretes
WO2005098795A1 (ja) * 2004-03-31 2005-10-20 Matsushita Electric Industrial Co., Ltd. 整数を加算するコンピュータシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BELLARE M., GOLDWASSER S., MICCIANCIO D.: ""Peusdo-Random" Number Generation within Cryptographic Algorithms: The DSS Case", ADVANCES IN CRYPTOLOGY - CRYPTO '97, LNCS, vol. 1294, 1997, pages 277 - 291, XP003015026 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010033081A2 (en) * 2008-09-22 2010-03-25 Embeyond Pte Ltd Secure server system for online transactions
WO2010033081A3 (en) * 2008-09-22 2011-03-31 Embeyond Pte Ltd Secure server system for online transactions
JP2013524263A (ja) * 2010-03-31 2013-06-17 イルデト カナダ コーポレーション ホワイトボックス攻撃から暗号化資産を保護するためのシステムと方法
JP2013172178A (ja) * 2012-02-17 2013-09-02 Nippon Telegr & Teleph Corp <Ntt> 署名鍵難読化システム、署名鍵難読化方法、難読化された署名鍵を用いた暗号化署名システム、難読化された署名鍵を用いた暗号化署名方法、装置とプログラム
WO2020065958A1 (ja) * 2018-09-28 2020-04-02 日本電気株式会社 署名生成装置、署名プログラム生成装置、署名生成方法、署名プログラム生成方法、署名プログラム、及び署名生成プログラムの生成プログラム
JPWO2020065958A1 (ja) * 2018-09-28 2021-08-30 日本電気株式会社 署名生成装置、署名プログラム生成装置、署名生成方法、署名プログラム生成方法、署名プログラム、及び署名生成プログラムの生成プログラム
JP7364241B2 (ja) 2018-09-28 2023-10-18 日本電気株式会社 署名生成装置、署名生成方法及び署名プログラム

Also Published As

Publication number Publication date
CN101351988B (zh) 2011-06-29
JP5001176B2 (ja) 2012-08-15
US8280039B2 (en) 2012-10-02
US20090094464A1 (en) 2009-04-09
CN101351988A (zh) 2009-01-21
JPWO2007074836A1 (ja) 2009-06-04

Similar Documents

Publication Publication Date Title
WO2007074836A1 (ja) 署名生成装置、署名生成方法及び署名生成プログラム
US7908641B2 (en) Modular exponentiation with randomized exponent
US20100166174A1 (en) Hash functions using elliptic curve cryptography
US6898284B2 (en) Cryptographic identification and digital signature method using efficient elliptic curve
JPWO2006085430A1 (ja) メンバー証明書獲得装置、メンバー証明書発行装置、グループ署名装置、グループ署名検証装置
Boruah et al. Implementation of ElGamal Elliptic Curve Cryptography over prime field using C
CN111865555B (zh) 一种基于k-Lin假设的同态加密方法
US6480606B1 (en) Elliptic curve encryption method and system
US20100046745A1 (en) Encrypting apparatus, decrypting apparatus, cryptocommunication system, and methods and computer program products therefor
Muhammad et al. Loop-based RSA key generation algorithm using string identity
Sarath et al. A survey on elliptic curve digital signature algorithm and its variants
Granger On the static Diffie-Hellman problem on elliptic curves over extension fields
Shankar et al. Improved Multisignature Scheme for Authenticity of Digital Document in Digital Forensics Using Edward-Curve Digital Signature Algorithm
US9419789B2 (en) Method and apparatus for scalar multiplication secure against differential power attacks
Ajeena et al. The integer sub-decomposition method to improve the elliptic elgamal digital signature algorithm
US8924448B2 (en) Arithmetic device, method, and program product
KR101440680B1 (ko) 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치
WO2020174515A1 (ja) 暗号システム、鍵生成装置、鍵生成方法、鍵生成プログラム、および準同型演算装置
JP3278790B2 (ja) 公開鍵暗号方法及び公開鍵暗号システム
Bashir Analysis and Improvement of Some Signcryption Schemes Based on Elliptic Curve
JP2003218858A (ja) 署名生成方法及び署名検証方法及び署名生成装置及び署名検証装置及び署名生成プログラム及び署名検証プログラム及び署名生成プログラムを格納した記憶媒体及び署名検証プログラムを格納した記憶媒体
JP4914377B2 (ja) 署名生成装置、署名検証装置、署名生成検証システム、それらの方法及びプログラム
KR102019369B1 (ko) 단일파형공격을 차단하기 위한 타원곡선 암호화 장치 및 방법
Gayoso Martínez et al. A Java implementation of the Elliptic Curve Integrated Encryption Scheme
Martınez et al. A Java implementation of the Elliptic Curve Integrated Encryption Scheme

Legal Events

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

Ref document number: 200680049826.0

Country of ref document: CN

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

Ref document number: 2007551991

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 12158033

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06843329

Country of ref document: EP

Kind code of ref document: A1