WO2006118092A1 - 情報セキュリティ装置及び楕円曲線演算装置 - Google Patents

情報セキュリティ装置及び楕円曲線演算装置 Download PDF

Info

Publication number
WO2006118092A1
WO2006118092A1 PCT/JP2006/308598 JP2006308598W WO2006118092A1 WO 2006118092 A1 WO2006118092 A1 WO 2006118092A1 JP 2006308598 W JP2006308598 W JP 2006308598W WO 2006118092 A1 WO2006118092 A1 WO 2006118092A1
Authority
WO
WIPO (PCT)
Prior art keywords
elliptic curve
point
digit
doubling
multiplication
Prior art date
Application number
PCT/JP2006/308598
Other languages
English (en)
French (fr)
Inventor
Yuichi Futa
Natsume Matsuzaki
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 US11/912,112 priority Critical patent/US7940927B2/en
Priority to EP06732308A priority patent/EP1879164A1/en
Priority to JP2007514728A priority patent/JP4825199B2/ja
Publication of WO2006118092A1 publication Critical patent/WO2006118092A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7261Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • 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/60Digital content management, e.g. content distribution

Definitions

  • the present invention relates to an information security technique that can counter a power analysis attack by measuring power consumption and can handle information safely and reliably.
  • timing attack For example, in a decryption method called timing attack, the time required for cryptographic processing in the cryptographic module is slightly different depending on the value of the cryptographic key used in the cryptographic processing, and the cryptographic module is used. Decrypt the key. In the decryption method called Simple Power Analysis or Differential Power Analysis, the power consumption in the cryptographic module when performing cryptographic processing is used as sub information.
  • the change in the power consumption of the cryptographic module during the cryptographic processing as described above, that is, the decryption method for analyzing the cryptographic key using the power waveform as a clue is collectively referred to as “power analysis attack”.
  • the timing attack is described in detail in Non-Patent Document 1
  • the power analysis attack is described in detail in Non-Patent Document 2.
  • the scalar key ks * C of the secret key ks that is a positive integer and the point C on the elliptic curve that is part of the ciphertext is calculated.
  • ks * C represents a point on the elliptic curve obtained by adding ks points C.
  • the signed window method on page 69 of Non-Patent Document 5 is known.
  • the signed window method is described below. In the following, the window width is 3 bits.
  • Step S8022 v—force determination with c> 2′2. v— If c> 2'2, go to step S8023. Otherwise, go to step S8024.
  • Step S8023 w—c ⁇ v—c— 2'3, v_ (c + l) ⁇ v_ (c + l) +1, go to step S80 25.
  • Step S8024 w_c ⁇ v_c
  • Step S8025 c c + 1
  • Step S8026 Judge whether c> b + 1. If c> b + l, go to step S803. Otherwise, go to step S8022.
  • Step S803 In the following steps S8031 to S8035, a table ⁇ P_i ⁇ is generated.
  • Step S8031 P—0 O, P—2 Dob (C).
  • O is the zero element of the elliptic curve
  • Dob indicates the doubling of the elliptic curve
  • Dob (C) is the double point of C.
  • Step S8033 P— c P— (c— 1) + C
  • Step S8034 c c + 1
  • Step S804 In the following steps S8041 and S8047, a scalar multiple R is calculated.
  • Step S8043 R P— (w c)
  • Step S8044 c—c 1
  • Step S8045 c is a force determination of 0. If c is 0, go to step S805.
  • Step S8046 R ⁇ Dob (Dob (Dob (P_ (w_c)))
  • Step S805 Output R and finish.
  • w — c 0, the processing is different from that when it is not.
  • Step S9022 v—c> 2 ”2 force determination. V—c> 2—2, if step S902 3 otherwise step S9024
  • Step S9023 w— c ⁇ v— c— 2'3 v_ (c + l) ⁇ v_ (c + l) +1, step S90 25
  • Step S9024 w_c ⁇ v_c
  • Step S9025 c c + 1
  • Step S9026 Judge whether c b + 1 or not. If c> b + l, step S903 otherwise step S9022
  • Step S903 In the following steps S9031 and S9035, a table ⁇ P—i ⁇ is generated.
  • Step S9031 P— 0 O, P— 2—Dob (C
  • Step S9033 P— c P— (c— 1) + C
  • Step S9034 c c + 1
  • Step S904 In the following steps, the scalar multiple R is
  • Step S 9041 c b + 1
  • Step S9043 R—P— (w c)
  • Step S 9044 c ⁇ c one 1
  • Step S9045 Determine whether c is zero. If c ⁇ 0, step S905 [0022] Step S 9046: R— Dob (Dob (Dob (P_ (w_c))))
  • Add is the addition of elliptic curves
  • Add (R, P— (w—c)) is the result of the addition of elliptic curves to R and P— (w—c).
  • Step S905 Output R and finish.
  • Non-Patent Literature 1 Paul C. Kocher, Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and Other Systems ", In Neal Koblitz, editor, CRYPTO '96, LNCS 1109, Springer— Verlag, 199b, pp. 104-113.
  • Non-Patent Document 2 P. Kocher J. Jaffe'and B. Jun, Differential Power Analysis, Advance s in Cryptology -CRYPTO '99, LNCS, 1666 'Springer- Verlag, 1999, pp.388-397. Tatsuaki Okamoto, Hiroshi Yamamoto, “Contemporary Cryptography", Industrial Books (1997)
  • Non-patent document 4 A. iyaji.T. Ono and H. and ohen, Efticient elliptic curve exponentiatio n ", ICICS '97, Springer-Verlag, 1999, pp.282-291.
  • Non-Patent Document 5 I. Blake, G. Seroussi and N. Smart, “Elliptic Curves in Cryptography", London Mathematical Society Lecture Note Series 265. CAMBRIDGE UNIVERSITY P RESS. 1999
  • An object of the present invention is to provide an information security device, an elliptic curve calculation device, a method, and a computer program that can reduce the amount of tables to be used while maintaining resistance to a simple power analysis attack. Means for solving the problem
  • the present invention provides a point C on the elliptic curve E based on the discrete logarithm problem on the elliptic curve E defined on the remainder field F modulo the prime p.
  • An information security device that safely or reliably handles information using an elliptic curve calculation that multiplies a coefficient k that is a positive integer less than a prime number p to calculate a point k * C, and stores the point C on the elliptic curve E It is expressed by the point storage means, the digit storage means for storing the value of all digits of the coefficient k, the acquisition means for acquiring the value w of one digit from the digit storage means, and the acquired digits.
  • the same number of multiplication means as the number of types of possible values, a selection means for selecting the multiplication means corresponding to the acquired value w of the digits, and for all the digits of the coefficient k, the acquisition means, the selection means, and the For the multiplication means, the acquisition of a single digit value w and the selection of the multiplication means corresponding to the obtained digit value w And a repetition control means for controlling the multiplication by the selected multiplication means to repeat.
  • Each multiplication means is obtained by multiplying the point C on the elliptic curve E by the digit value w obtained.
  • the multiplication means corresponding to w performs an operation on the elliptic curve E including addition of a point obtained by multiplying point Q by wZ or subtraction of a point obtained by multiplying point Q by I w / ⁇ I. It is characterized by that.
  • the point storage unit corresponds to the operand value storage unit 224 of the embodiment
  • the digit storage unit corresponds to the division information storage unit 223
  • the acquisition unit corresponds to the acquisition unit 241.
  • the selection unit corresponds to the selection unit 242
  • the plurality of multiplication units correspond to the window calculation units 251 to 258, respectively
  • the repetition control unit corresponds to the repetition control unit 243.
  • the window in the embodiment is expressed as a digit here.
  • the multiplication means corresponding to the value w of the digit adds the point obtained by multiplying the point Q by w / on the elliptic curve E, or multiplies the point Q by IWI. Since operations including subtraction of the obtained points are performed, for example, when the bit length of each digit is 3, the points used for addition or subtraction are only 3 * C, excluding C, and each digit When the bit length of 4 is 4, only 3 * C, 5 * and 7 * except for C are used for addition or subtraction.
  • the point used for addition or subtraction is 2 * C, 3 * and 4 * except for C.
  • the points used for addition or subtraction are 2 * C, 3 * C, 4 * C, 5 * C, 6 * C, 7 except for point C. * C and 8 * C.
  • the multiplication unit corresponding to the digit value w sequentially performs (sw + 1) operations.
  • the (sw ⁇ + 1) th operation of the plurality of operations is the addition or subtraction on the elliptic curve E, and the other operation is a doubling operation on the elliptic curve E. Good.
  • the information security apparatus further sets the point Q as an initial addition point
  • It includes a table generation means that generates 2 SW_1 additional points excluding point Q by repeatedly adding Q and obtaining a new addition point, and when there is a non-negative integer t,
  • the multiplication means corresponding to the value w may use the addition point generated by the table generation means as a point obtained by multiplying the point Q by wZ ⁇ or I wZ ⁇ I.
  • the corresponding multiplication means is doubling, doubling, adding and doubling on the elliptic curve E. Perform the calculations in this order
  • the addition is an operation of adding the point C, and when the digit value w is 4, the corresponding multiplication means is doubling, adding, doubling and doubling on the elliptic curve E.
  • the addition is an operation for adding the point C, and when the digit value w is ⁇ 2, the corresponding multiplication means is doubling on the elliptic curve E, doubling Arithmetic, subtraction, and doubling may be performed in this order, and the subtraction may be an operation that subtracts the point C.
  • the corresponding multiplication means is doubling, doubling, doubling on the elliptic curve E
  • Addition and doubling are performed in this order, and the addition is an operation to add the point C.
  • the corresponding multiplication means is a doubling on the elliptic curve E.
  • Arithmetic, doubling, adding, doubling and doubling are performed in this order, and the addition is an operation for adding the point C
  • the corresponding multiplication means Is the doubling, doubling, doubling, addition, and doubling in this order on the elliptic curve E.
  • the addition is the operation of adding the point 3 * C, and the value w Is equal to 8, the corresponding multiplication means performs doubling, addition, doubling, doubling and doubling on the elliptic curve E in this order, and the addition adds the point C.
  • Arithmetic When the digit value w is -6, the corresponding multiplication means performs doubling, doubling, doubling, subtracting and doubling on the elliptic curve E in this order.
  • the digit value w is -4, the corresponding multiplication means is doubling, doubling, subtracting, doubling and 2 on the elliptic curve E.
  • the multiplication is performed in this order, and the subtraction is an operation of subtracting the point C.
  • the corresponding multiplication means performs the double operation on the elliptic curve E, the double operation. Arithmetic, doubling, subtracting, and doubling are performed in this order, and the subtraction may be an operation that subtracts point C.
  • addition or subtraction and the doubling may each include a dummy operation so as to perform the same type of operation in the same order.
  • addition, subtraction, and doubling each perform the same type of operations in the same order. Therefore, even if you try to analyze using the power waveform as a clue, in addition, subtraction, or doubling A similar power waveform is output, making it difficult to clearly distinguish between the two. In this way, the power analysis attack can be countered.
  • the multiplication unit corresponding to the digit value w performs (a + 1) operations.
  • the (a— + 1) th operation is the addition or subtraction on the elliptic curve E
  • the other operation is a doubling operation on the elliptic curve E.
  • the multiplication unit corresponding to the digit value w sequentially performs (b + 1) operations
  • the (b ⁇ + 1) -th operation among the plurality of operations may be the addition or subtraction on the elliptic curve E, and the other operation may be a doubling operation on the elliptic curve E.
  • the information security device may be an encryption device, and may encrypt information using an elliptic curve calculation for calculating a point k * C.
  • the information security apparatus may be a decryption apparatus, and decrypts the encrypted information using an elliptic curve calculation for calculating the point k * C.
  • the information security device may be a digital signature generation device, and may apply a digital signature to information using an elliptic curve calculation for calculating a point k * C.
  • the information security device may be a digital signature verification device, and may verify the digital signature using an elliptic curve calculation for calculating the point k * C! /.
  • the information security device may be a key sharing device, and may generate a key shared with another key sharing device using an elliptic curve calculation for calculating the point k * C.
  • the present invention is based on the discrete logarithm problem on the elliptic curve E defined on the remainder field F modulo the prime p, and the point C on the elliptic curve E is a positive integer less than the prime p.
  • An elliptic curve calculation device that multiplies a coefficient k to calculate a point k * C, which stores point C on the elliptic curve E and stores all the digits of the coefficient k Digit storage means, acquisition means for acquiring the value w of one digit from the digit storage means, multiplication means equal in number to the types of values that can be expressed by the acquired digits, and the acquired value w of the digits
  • a selecting means for selecting a multiplying means corresponding to, and for all the digits of the coefficient k, for the obtaining means, the selecting means and the multiplying means, obtaining a single digit value w and obtaining the digit Repetitive control means for controlling to repeat the selection of the multiplication means corresponding to the value w
  • Each multiplication means adds the multiplication result obtained by multiplying the point C on the elliptic curve E by the value w of the digit obtained at the position corresponding to the digit, and obtains the value of the digit obtained.
  • the multiplication means corresponding to the digit value w multiplies the point Q on the elliptic curve E by w /. It is characterized by performing operations including adding points obtained by subtracting or subtracting points obtained by multiplying points Q ⁇ I wZ ⁇ I.
  • the information security device and the elliptic curve calculation device of the present invention it is possible to reduce the amount of tape used as compared with the prior art while maintaining the resistance to the simple power analysis attack. Excellent effect.
  • FIG. 1 is a system configuration diagram showing a configuration of a point issuing system 10 as one embodiment according to the present invention.
  • FIG. 2 is a block diagram showing a configuration of an elliptic curve calculation unit 208.
  • FIG. 4 is a flowchart showing an addition operation by the elliptic curve addition unit 226 and a doubling operation by the elliptic curve doubling unit 227. Continue to Figure 5.
  • FIG. 5 is a flowchart showing an addition operation by the elliptic curve addition unit 226 and a doubling operation by the elliptic curve doubling unit 227. Continue from Figure 4.
  • FIG. 6 is a flowchart showing an operation of generating a table ⁇ P-i ⁇ by the table generating unit 225.
  • FIG. 11 is a flowchart showing a calculation procedure by the scalar multiplication unit 229. Continued from Figure 10.
  • FIG. 13 is a flowchart showing the operation of the elliptic curve calculation unit 208.
  • FIG. 14 is a flowchart showing the operation of the point issuing system 10.
  • FIG. 15 is a flowchart showing the operation of the digital signature system.
  • FIG. 16 is a flowchart showing the operation of the key sharing system.
  • FIG. 18 is a block diagram showing a configuration of a scalar multiplication unit 229.
  • a point issuing system 10 as one embodiment according to the present invention will be described.
  • the point issuing system 10 includes an IC card 100 and a point issuing device 200 as shown in FIG.
  • the IC card 100 is inserted into the point issuing device 200 by the operator of the point issuing device 200, and the point issuing device 200 generates a point and applies an encryption algorithm to the generated point to obtain an encryption point. Generate and send the generated encryption point to the IC card 100.
  • the points are privilege information received by the seller or service provider when a user purchases a product or receives a service. Next, the user purchases the product or provides a service. It is used as part or all of the payment of consideration to sellers and service providers.
  • the IC card 100 receives the encryption key point, applies a decryption algorithm corresponding to the encryption to the received encryption key point, generates a decryption point, and stores the generated decryption point inside .
  • the point issuing device 200 and the IC card 100 each have a point on the elliptic curve E based on the discrete logarithm problem on the elliptic curve E defined on the remainder field F modulo the prime p.
  • safe handling of information means, for example, when information is communicated between two parties, so that the information is not disclosed to a third party. Also called secret communication.
  • the above encryption algorithm and decryption algorithm are based on a public key cryptosystem that uses an operation on an elliptic curve.
  • the encryption key and the decryption key are different, and the decryption key is secret.
  • the encryption key is made public.
  • the discrete logarithm problem defined on the elliptic curve is used as the basis for the security of this public key cryptosystem. The discrete logarithm problem is described in detail in Nile Koblitz, ⁇ A Course in Number theory and Cryptography, Springer—Verlag, 1987.
  • E (GF (p)) be an elliptic curve defined on the finite field GF (p), and if the order of the elliptic curve E is divisible by a large prime, the element G included in the elliptic curve E is the base point. And At this time, for a given element Y included in the elliptic curve E,
  • is a prime number
  • GF (p) is a finite field having p elements.
  • the symbol * indicates an operation for adding a plurality of elements included in the elliptic curve
  • x * G indicates that X elements G included in the elliptic curve are added as shown in the following equation. It means to do.
  • the point issuing device 200 includes a public key storage unit 201, an encryption processing unit 202, a communication unit 203, a control unit 204, an information storage unit 205, an input reception unit 206, a display unit 207, and an elliptic curve calculation. It consists of 208 parts.
  • the elliptic curve calculation unit 208 includes an input unit 230, a power multiplication factor storage unit 221, a division information generation unit 222, a division information storage unit 223, an operand value storage unit 224, and a table generation unit 225.
  • the point issuing device 200 is a device that generates points, encrypts the generated points and writes them to the IC card 100, and calculates the sales amount when the product is sold. It is also a cash register device that displays the sales amount, prints a receipt, stores the generated points inside, and stores the price paid by the user.
  • the point issuing device 200 is a computer system including a microprocessor, ROM, RAM, a hard disk unit, a display unit, a keyboard, and the like.
  • a computer program is stored in the RAM or the hard disk unit.
  • Microprocessor power The point issuing device 200 achieves a part of its functions by operating according to the computer program.
  • the information storage unit 205 stores the prime point p and the coefficients of the base point B and the elliptic curve E (Fp) on the elliptic curve E (Fp) defined on the remainder field Fp modulo the prime number p. It also has an area for storing the generated point Pm.
  • the public key storage unit 201 stores a public key Kp generated corresponding to a secret key (private key) ks described later.
  • the public key ⁇ is calculated by the following formula by the IC card 100 or the key management device.
  • the control unit 204 generates a point Pm as the privilege information, and writes the generated point Pm in the information storage unit 205. Next, an instruction indicating that the point Pm is encrypted and transmitted to the IC card 100 is output to the encryption processing unit 202.
  • Communication unit 203 input reception unit 206, and display unit 207
  • the communication unit 203 transmits / receives information to / from the IC card 100 under the control of the encryption processing unit 202 or the control unit 204.
  • the input reception unit 206 receives input of information or instructions from the operator of the point issuing device 200 and outputs the information or instructions received from the input to the control unit 204.
  • the display unit 207 displays various information under the control of the control unit 204.
  • the encryption processing unit 202 receives an instruction from the control unit 204 indicating that the point Pm is encrypted and transmitted to the IC card 100.
  • the cryptographic processing unit 202 reads the public key Kp from the public key storage unit 201, and then outputs the generated random number r as a power multiplication factor k to the input unit 230, where the read public key kp is output to the input unit 230 as the multiplication point C.
  • the encryption processing unit 202 reads the point Pm from the information storage unit 205, performs an exclusive OR on the read point Pm and the X coordinate value of the multiple point r * Kp to be received, and outputs the second ciphertext.
  • s2 Generate point Pm xor (power x r * Kp x coordinate value).
  • x orj is an operator indicating an exclusive OR.
  • the cryptographic processing unit 202 transmits the generated first cipher text si and second cipher text s 2 to the IC card 100 via the communication unit 203.
  • the elliptic curve calculation unit 208 includes the input unit 230, the power multiplication factor storage unit 221, the division information generation unit 222, the division information storage unit 223, the operation value storage unit 224, the table generation unit 225, the elliptic curve An adder 226, an elliptic curve doubling unit 227, a table storage unit 228, a scalar multiplication unit 229, and an output unit 231 are included.
  • the power multiplication factor storage unit 221 has an area for storing only one power multiplication factor k.
  • the power multiplication factor k is a scalar, and the number of bits of the power multiplication factor k is len.
  • the operand value storage unit 224 has an area for storing only one power multiplier G.
  • the power double point G is a point on the elliptic curve.
  • Input unit 230 and output unit 231 The input unit 230 receives the power multiplication factor k from the cryptographic processing unit 202, and when the power multiplication factor storage unit 222 already stores the power multiplication factor k, the input multiplication factor k is the power multiplication factor storage unit. In 221, the power multiplication factor storage unit 221 stores the power multiplication factor, and in this case, the received power multiplication factor k is written to the power multiplication factor storage unit 221.
  • the input unit 230 receives the power multiplier C from the encryption processing unit 202, and when the power multiplier is already stored in the operand storage unit 224, the received power double If C is overwritten in the operand value storage unit 224 and the exponent to be stored is stored in the operand value storage unit 224, the received multiplier point C is stored in the operand value. Write to part 224.
  • the output unit 231 receives the power multiple k * C from the scalar multiplication unit 229 and outputs the received power k * C to the encryption processing unit 202.
  • w—i is a sw-bit signed integer value.
  • sw is the width of the window according to the signed window method.
  • sw 3.
  • w—i takes one of the values “ ⁇ 3”, “ ⁇ 2”, “— 1”, “0”, “1”, “2”, “3” and “4”.
  • b is “(the smallest integer greater than or equal to len / sw) 1”
  • len is the number of bits of the variable V, which will be described later
  • X is an operator indicating multiplication of integers
  • x Is an operation that indicates X to the power of y.
  • v_ (b + l) 0 is set (step S131).
  • the division information generation unit 222 substitutes 0 for the counter variable c (c 0) (step S13 2).
  • the division information generation unit 222 determines whether v_c> 2 ”(sw—1), and when v_c> 2” (sw ⁇ 1) (YES in step S133) w_c ⁇ v_c—2 ′ 3 and v 1 (c + 1) 1 (c + 1) +1 are calculated (step S134). If v_c ⁇ 2 '(sw-1) (NO in step SI 33) Assign v_c to w_c (w_c ⁇ v_c) (step SI 35).
  • the division information generation unit 222 calculates c c + 1 (step S136).
  • the division information generation unit 222 determines whether or not c> b + l. If c> b + l (YES in step S137), the division information generation unit 222 divides the integer sequence ⁇ w ⁇ i ⁇ . Information is stored in the division information storage unit 223 (step S138), and the generation of the division information is terminated. If c ⁇ b + l (NO in step S137), return to step SI33 and repeat the process.
  • Pl (XI, Yl, Zl)
  • the dummy calculation is indicated by the variable D in order to clearly distribute the dummy calculation as “dummy calculation”.
  • the elliptic curve addition and elliptic curve doubling used in this embodiment are for Jacobian coordinates.
  • the Jacobian coordinates are described in detail in Non-Patent Document 4.
  • the elliptic curve addition unit 226 performs addition according to the following steps.
  • the elliptic curve addition unit 226 performs doubling according to the following steps.
  • the elliptic curve addition unit 226 and the elliptic curve doubling unit 227 perform the same operation in the same order.
  • Table storage section 228 The table storage unit 228 includes an area for storing one or more points on the elliptic curve generated by the table generation unit 225.
  • the table generation unit 225 generates a table ⁇ P_i ⁇ that is a point on the elliptic curve, and stores the generated table ⁇ P_i ⁇ in the table storage unit 228.
  • the table generation unit 225 reads the power multiple C from the operand value storage unit 224, and the table generator 225 calculates P-1C and Q ECD (C) (step S141).
  • ECD indicates doubling on the elliptic curve and indicates that calculation is performed using the elliptic curve doubling unit 227.
  • ECD (A) indicates the result of doubling calculated for point A on the elliptic curve
  • ECD (A) 2 * A.
  • the table generation unit 225 outputs an elliptic curve point C and a doubling instruction to the elliptic curve doubling unit 227, and receives the doubling calculation result from the elliptic curve doubling unit 227. .
  • table generation unit 225 calculates i 1 for counter variable i (step S 142).
  • the table generation unit 225 calculates i ⁇ i + 1 (step S143), calculates 2 SW ⁇ 2 , and determines whether or not i> 2. If i> 2 s (step S144), the table generation process ends.
  • ECA indicates addition on an elliptic curve, and indicates that calculation is performed using the elliptic curve addition unit 226.
  • ECA (A, B) indicates the result of addition calculated for points A and B on the elliptic curve
  • ECD (A) A + B.
  • the table generation unit 225 instructs the elliptic curve addition unit 226 to instruct points A and B on the elliptic curve and addition. The result of the addition is received from the elliptic curve addition unit 226.
  • the table generating unit 225 stores Pi in the table storage unit 228 (step S146), returns to step S143, and repeats the process.
  • table 311 ⁇ P_i ⁇ ⁇ 3C ⁇ .
  • table 312 ⁇ P ⁇ i ⁇ ⁇ 3C, 5C, 7C ⁇ .
  • table 313 ⁇ Pi ⁇ ⁇ 3C, 5C, 7C, 9C, 11C, 13C, 15C ⁇ .
  • the scalar multiplication unit 229 uses the integer sequence ⁇ w—i ⁇ stored in the partition information storage unit 223 and the table ⁇ P—i ⁇ stored in the table storage unit 228 as shown below. Then, a point k * C obtained by multiplying the power multiplication factor k by k is calculated.
  • the scalar multiplication unit 229 includes an acquisition unit 241, a selection unit 242, and a repetition control unit.
  • ECA is addition by the elliptic curve addition unit 226.
  • the scalar multiplication unit 229 When performing addition, the scalar multiplication unit 229 outputs two points on the elliptic curve and an instruction for addition to the elliptic curve addition unit 226, and receives the calculation result of addition from the elliptic curve addition unit 226.
  • ECD is doubling by the elliptic curve doubling unit 227.
  • the scalar multiplication unit 229 When performing the doubling, the scalar multiplication unit 229 outputs an instruction for one point and doubling on the elliptic curve to the elliptic curve doubling unit 227, and the elliptic curve doubling unit 227 Receives the result of doubling.
  • the initial operation unit 244 of the scalar multiplication unit 229 calculates c ⁇ b + ((step S151).
  • c is a counter variable for counting the number of times of processing, and is constituted by a register included in the register unit 245.
  • b is “(the smallest integer greater than or equal to lenZsw) ⁇
  • the register unit 245 also configures a variable D and a variable R, which will be described later, respectively.
  • the acquisition unit 241 acquires P— (w—c), and the initial calculation unit 24 of the scalar multiplication unit 229.
  • step S154 calculates RP— (w ⁇ c) (step S154), and the repetition control unit 243 calculates c c ⁇ 1 (step S155).
  • the repetition control unit 243 of the scalar multiplication unit 229 determines whether c is 0, and c ⁇
  • step S156 When it is 0 (step S156), the calculation value output unit 246 outputs R to the output unit 231 (step S158), and ends the calculation process.
  • step S 156 When c ⁇ 0 (step S 156), the acquisition unit 241 acquires P— (w—c), and the selection unit 242 of the scalar multiplication unit 229 selects (step S156) according to the value of w—c. S 157), the following processing is performed.
  • the selection unit 242 selects the window calculation unit 251, and the window calculation unit 251 selects R ECD (R), R ⁇ ECD (R), R ⁇ ECD (R), R EC
  • a (R, —P— 2) is calculated (step SI 61).
  • the selection unit 242 selects the window calculation unit 252.
  • the window calculation unit 252 selects R ECD (R), R ⁇ ECD (R), R ECA (R, — P— 1),
  • the selection unit 242 selects the window calculation unit 253, and the window calculation unit 253 selects R ⁇ ECD (R), R ⁇ ECD (R), R ⁇ ECD ( R), R EC
  • the selection unit 242 selects the window calculation unit 254,
  • Window calculation unit 254 is R ⁇ ECD (R), R ⁇ ECD (R), R ⁇ ECD (R), D ⁇ ECA (R
  • step S164 P ⁇ l
  • the selection unit 242 selects the window operation unit 256, and the window operation unit 256 uses R ECD (R), R ⁇ ECD (R), R ECA (R, P—1), R ⁇ E CD (R) is calculated (step S166).
  • the selection unit 242 selects the window calculation unit 258, and the window calculation unit 258 selects R ECD (R), R ECA (R, P—l), R ECD ( R), R ⁇ E CD (R) is calculated (step S168).
  • step SI 55 the process returns to step SI 55 to repeat the process.
  • a plurality of operations performed according to the value of w ⁇ c are referred to as a window operation.
  • R and D ECA (R, P—l) are one window operation, and R ⁇ ECD (R), R ⁇ ECD (R), R ECD (R) and R R ECA (R, P—l) 1S One window operation.
  • EC A and ECD included in the window operation are called basic operations.
  • the basic operation order that indicates the operation order of basic operations A relationship with the number of basic operations indicating the number of basic operations is shown.
  • w ⁇ c has eight values “0”, “1”, “2”, “3”, “4”, “ Take either “1”, “1” or “1”.
  • R 2 3 R is as described above.
  • D R + C is a dummy addition.
  • the type and number of basic operations included in the window operation in the case of w ⁇ c 0, and in other cases (that is, w ⁇ c ⁇ 0 In this case, the number of basic operations included in the basic window operation is the same as the number.
  • R 2 3 R is R ⁇ 2 XR R ⁇ 2 XR R 2 in the scalar multiplication unit 229.
  • R 2 3 R + C is calculated in the scalar multiplication unit 229 by R ⁇ 2XR, R ⁇ 2XR, R 2XR, R ⁇ R + C.
  • 3 ⁇ 4 2 (2 2 1 ⁇ +) is calculated by 1 ⁇ 2 1 ⁇ 2 1 ⁇ , R ⁇ R + C, R ⁇ 2XR in the scalar multiplication unit 229 (Refer to Step S166)
  • the addition is an addition of points obtained by multiplying the point C by w-cZ ⁇ .
  • R ⁇ 2 3 R + 3CJ is calculated by the scalar multiplication unit 229! /, R 2 XR, R 2 XR, R ⁇ 2XR, R ⁇ R + 3C (Step S167). reference)
  • a plurality of basic operations are performed in the order of doubling, doubling, doubling, and addition.
  • R 2 2 (2R + C) is calculated in the scalar multiplication unit 229 by R ⁇ 2XR, R R + C, R ⁇ 2XR, and R ⁇ 2XR. (Refer to step S168)
  • the addition is an addition of points obtained by multiplying the point C by w ⁇ cZ ⁇ .
  • R ⁇ 2 3 R—3CJ is calculated by the scalar multiplication unit 229! /, R 2 XRR 2 XRR ⁇ 2 XR R ⁇ R + (—3C) (see step S161). )
  • the subtraction is a subtraction of points obtained by multiplying the point Iw-c / 2tI.
  • R 2 3 R—C is calculated in the scalar multiplication unit 229 by R ⁇ 2XR, R ⁇ 2XR, R 2XR ⁇ R ⁇ R + (— C).
  • the input unit 230 receives the power multiplication factor k from the cryptographic processing unit 202, and receives the power multiplier.
  • the number k is written in the power multiplication factor storage unit 221 (step S121)
  • the power multiplication point C is received from the cryptographic processing unit 202
  • the received power multiplication point C is written in the operation value storage unit 224 (step S 122). .
  • the division information generation unit 222 generates an integer sequence ⁇ w_i ⁇ that is division information from the power multiplication factor k, and stores the generated integer sequence ⁇ w_i ⁇ in the division information storage unit 223 (step S 123).
  • the table generation unit 225 generates a table ⁇ P-i ⁇ using the multiplication point C, and stores the table ⁇ P_i ⁇ in the table storage unit 228 (step S124).
  • the scalar multiplication unit 229 uses the integer sequence ⁇ w ⁇ i ⁇ stored in the partition information storage unit 223 and the table ⁇ P_i ⁇ stored in the table storage unit 228 to multiply the power.
  • the point k * C is calculated (step S 125).
  • the output unit 231 receives the power multiple k * C from the scalar multiplication unit 229 and outputs the received power k * C to the encryption processing unit 202 (step S 126).
  • the IC card 100 includes a secret key storage unit 101, a decryption processing unit 102, a communication unit 103, a control unit 104, an information storage unit 105, and an elliptic curve calculation unit 108.
  • the IC card 100 is a computer system including a microprocessor, ROM, RAM, and the like. A computer program is stored in the RAM. Microprocessor power The IC card 100 achieves a part of its functions by operating according to the computer program.
  • the information storage unit 105 stores a prime number p, a coefficient of an elliptic curve E (Fp), and a base point B. In addition, an area for storing the generated decoding point Pm ′ is provided.
  • the private key storage unit 101 stores the private key ks.
  • the communication unit 103 receives the first ciphertext si and the second ciphertext s2 from the point issuing device 200.
  • the control unit 104 is notified of the reception.
  • the received first ciphertext si and second ciphertext s2 Is output to the decoding processing unit 102.
  • the control unit 104 receives notification from the communication unit 103 that the first ciphertext si and the second ciphertext s2 have been received.
  • the decryption processing unit 102 outputs an instruction indicating that the first ciphertext si and the second ciphertext s2 are decrypted to generate a decryption point.
  • the decryption processing unit 102 receives from the control unit 104 an instruction indicating that the first ciphertext si and the second ciphertext s2 are decrypted to generate a decryption point. Also, the first ciphertext si and the second ciphertext s2 are received from the communication unit 103.
  • the decoding processing unit 102 writes the generated decoding point Pm ′ into the information storage unit 105.
  • the elliptic curve calculation unit 108 has the same configuration as the elliptic curve calculation unit 208 included in the point issuing device 200, detailed description thereof is omitted.
  • the elliptic curve calculation unit 108 receives the power multiple k and the power multiple coefficient C from the decoding processing unit 102, calculates the power multiple k * C, and decodes the calculated power multiple k * C Go to part 102 To help.
  • the decryption processing unit 102 of the IC card 100 generates a secret key ks and writes the generated secret key ks into the secret key storage unit 101 (step S101).
  • the elliptic power multiplication is performed by the elliptic curve calculation unit 108 (step S102).
  • the decryption processing unit 102 transmits the generated public key Kp to the point issuing device 200 via the communication unit 103 (step S 103).
  • the encryption processing unit 202 of the point issuing device 200 receives the public key Kp from the IC card 100 via the communication unit 203, and writes the received public key Kp into the public key storage unit 201 (step S104).
  • the IC card 100 generates a secret key ks, generates a public key Kp based on the generated secret key ks, and transmits the generated public key Kp to the point issuing device 200. You may make it show.
  • the point issuing system 10 further includes a key management device (public key generation device).
  • a key management device public key generation device
  • the IC card 100 generates a secret key ks and stores the generated secret key ks inside.
  • the key management device securely acquires the secret key ks from the IC card 100, stores the acquired secret key ks, the secret key storage unit, stores the base point B, the base point storage unit, and the secret key storage
  • the secret key ks is read from the base point
  • the base point B is read from the base point storage unit
  • the elliptic curve calculation unit included in the key management device is the same as the elliptic curve calculation unit included in the IC card 100.
  • the control unit 204 of the point issuing device 200 generates a point Pm, writes the generated point Pm into the information storage unit 205, and then encrypts the point Pm and transmits it to the IC card 100 to the encryption processing unit 202.
  • An instruction indicating that it is to be output is output (step S111).
  • the cryptographic processing unit 202 transmits the generated first ciphertext si and second ciphertext s2 to the IC card 100 via the communication unit 203 (step S115).
  • the decryption processing unit 102 receives the first ciphertext si and the second ciphertext s2 from the point issuing device 200 via the communication unit 103 (step S115).
  • the decryption processing unit 102 reads the secret key ks from the secret key storage unit 101, outputs the received first ciphertext si as an exponent to the elliptic curve calculation unit 108, and reads the secret key Output ks as a power multiplication factor to the elliptic curve calculation unit 108.
  • the elliptic curve calculation unit 108 calculates ks * si
  • the decryption processing unit 102 receives the calculation result ks * s 1 from the elliptic curve calculation unit 108
  • the decryption point Pm ′ second ciphertext s2 xor (calculation result ks * Calculates the x coordinate value of si (step S116).
  • the decoding processing unit 102 uses the information storage unit 105 to calculate the decoding point Pm ′ obtained by the calculation. (Step S117).
  • a digital signature system (an ⁇ ⁇ shown in the figure) as another embodiment according to the present invention will be described.
  • the digital signature system includes a user A device (also referred to as a signature generation device), a user B device (also referred to as a signature verification device), and a management center device (also referred to as a management device).
  • the user A device, the user B device, and the management center device are each connected via the Internet.
  • Each of the user A device, the user B device, and the management center device is specifically a computer system that includes power such as a microprocessor, ROM, RAM, a hard disk unit, a display unit, a keyboard, and a mouse.
  • a computer program is stored in the RAM or the hard disk unit.
  • Each device achieves a part of its functions by the microprocessor being operated according to the computer program.
  • the user A device, the user B device, and the management center device each point on the elliptic curve E based on the discrete logarithm problem on the elliptic curve E defined on the remainder field F modulo the prime p. It is an information security device that reliably handles information by using elliptic curve calculation that calculates the point k * C by multiplying C by a coefficient k that is a positive integer less than a prime number p.
  • to reliably handle information means, for example, that when information is communicated between two parties, the information transmitted by the sender reaches the receiver without being altered.
  • the user A device transmits a message together with the digital signature data to the user B device, and the user B device receives the message together with the digital signature data, and performs signature verification based on the received digital signature data.
  • the user A device stores a secret key generation unit that generates a secret key xA, a secret key transmission unit that securely transmits the generated secret key xA to the management center device, and a message m to be transmitted.
  • the management center device acquires from the user A device an acquisition unit that securely acquires the secret key xA, a parameter storage unit that stores the prime p, the coefficient of the elliptic curve E, and the base point B.
  • a transmission unit that transmits YA to the user B device and an elliptic curve calculation unit that performs an elliptic power multiplication of points on the elliptic curve according to an instruction from the public key calculation unit.
  • the user B device stores the prime number p, the coefficient of the elliptic curve E, and the base point G from the management center device, and stores the acquired prime number p, the coefficient of the elliptic curve E, and the base point G.
  • the signature data receiving unit, the message receiving unit that receives the message m from the user A device, and the user B device calculate 3 * scale 1 and 1!
  • the elliptic curve calculation unit included in each of the user A device, the user B device, and the management center device is the same as the elliptic curve calculation unit 208 shown in the first embodiment.
  • the user A device generates a secret key xA (step S201).
  • the management center device discloses the prime number p, the coefficient of the elliptic curve E, and the base point B.
  • Step S204 the public key YA is transmitted to the user B device via the Internet (Step S205).
  • User B device acquires prime p, coefficient of elliptic curve E and base point B (step S204), receives public key YA (step S205), and stores received public key YA internally. (Step S206).
  • the user A apparatus also acquires the prime p, the coefficient of the elliptic curve E, and the base point G (step S207).
  • user A apparatus transmits the obtained signature data (Rl, s) and message m to user B apparatus (step S214).
  • User B device receives signature data (Rl, s) and message m from user A device (step S214).
  • a key sharing system (which should be illustrated) as another embodiment according to the present invention will be described.
  • the key sharing system consists of user A device (also called key using device), user B device (key using device). And the management center device (also referred to as management devices) (each device is not shown), and the user A device, the user B device, and the management center device each use the Internet. Connected through.
  • Each of the user A device, the user B device, and the management center device is specifically a computer system including a microprocessor, a ROM, a RAM, and the like. Each device achieves its functions through the microprocessor's operation according to the computer program.
  • User A device and User B device are less than prime p at point C on elliptic curve E based on the discrete logarithm problem on elliptic curve E defined on remainder field F modulo prime p It is an information security device that handles information safely using elliptic curve calculation that multiplies the coefficient k, which is a positive integer, to calculate the point k * C.
  • the safe handling of information means that, for example, when information is communicated between two parties, the information is not known to a third party as described above.
  • user A device and user B device acquire the same shared key without being known to a third party.
  • the management center device includes a selection unit that selects the coefficient of the elliptic curve E (Fp) and the base point B, a parameter storage unit that stores the coefficient, base point B, and prime number p of the selected elliptic curve E, and a prime number.
  • the user B device has the same configuration as the user A device.
  • the user B device has a parameter acquisition unit that acquires the prime p, the coefficient of the elliptic curve E, and the base point B from the management center device, a secret key setting unit that sets the secret key xB using random numbers, and a public key YB.
  • the elliptic curve calculation unit included in each of the user A device and the user B device is the same as the elliptic curve calculation unit included in the point issuing device 200 according to the first embodiment.
  • the management center device selects the coefficient of the elliptic curve E and the base point B (step S311), and discloses the prime P, the coefficient of the elliptic curve E, and the base point B (step S312).
  • the user A device and the user B device can acquire the same shared key that is not known to a third party.
  • the attacker who analyzes the power waveform must It is not possible to distinguish whether the wave force is executing elliptic curve addition or elliptic curve doubling
  • the sum of the number of operations of elliptic curve addition and elliptic curve doubling is the same as 4 times regardless of the value of w ⁇ c for the counter c. Regardless of the value of, the total number of operations for elliptic curve addition and elliptic curve doubling is the same. Therefore, even when the attacker knows the number of operations, information on the power multiplication factor does not leak to the attacker. Therefore, Embodiment 1 is safe against a simple power analysis attack.
  • the table size is reduced to 1Z3 compared to the conventional method.
  • the total number of calculations is made constant for each sw bit division information.
  • the total number of calculations may be made constant for the entire calculation for one power factor. Good.
  • the calculation process is performed while measuring the number of calculations.
  • the total number of calculations is made constant for each sw bit, and control without having to pay attention to the number of calculations for one power multiplication factor as a whole becomes easier. There is a further effect.
  • the table generation unit 225 uses the elliptic curve addition unit 226 and the elliptic curve doubling unit 227 to calculate elliptic curve addition and elliptic curve doubling.
  • the force table generation unit 225 may execute normal elliptic curve addition and elliptic curve doubling in which the dummy calculation in the elliptic curve addition unit 226 and the elliptic curve doubling unit 227 is removed.
  • the window calculation corresponding to the value of w ⁇ c (step S157 in FIG. 10 to FIG. 11, step S161 to S168) is as follows.
  • sgn (w_c) is the sign of w_c.
  • Abs (w ⁇ c) is the absolute value of w ⁇ c.
  • w ⁇ c is 16 values “0”, “1”, “2”, “3”, “4”, “5”, “6” ”,“ 7 ”,“ 8 ”,“ 1 7 ”,“ 1 6 ”,“ 1 5 ”“ 1 4 ”,“ 1 3 ”,“ 1 2 ”and“ 1 ”.
  • “R 2 4 R” is as described above.
  • “D R + C” is a dummy addition.
  • the type and number of basic operations included in the window operation in the case of w ⁇ c 0, and in other cases (that is, w ⁇ c ⁇ 0 In this case, the number of basic operations included in the basic window operation is the same as the number.
  • R 2 4 R is R ⁇ 2 XR, R ⁇ 2 XR, R 2 in the scalar multiplication unit 229.
  • each window operation by the scalar multiplication unit 229 in this case a plurality of basic operations are performed in the order of doubling, doubling, doubling, doubling, and addition.
  • the number of basic operations included in the window operation by the scalar multiplication unit 229 in this case is “5”.
  • R 2 4 R + 2C indicates that the value of variable R is shifted upward by the bit indicating the width of the window (here, 4 bits), and then 2C is added to variable R. ing. The same applies to other operations.
  • R ⁇ 2 (2 3 R + C) “ R 2 2 (2 2 R + C), R2 (2 3 R + 3C), R—2 3 (2R + C), R 2 (2 3 R-3C), R — 2 2 (2 2 R—C) ”,“ R 2 (2 3 R—C) ”.
  • all power multiplication factors are divided for each constant bit string of sw bits.
  • the power of generating sw-bit split information is not limited to this.
  • the number of bits does not have to be constant.
  • the arithmetic processing of the scalar multiplication unit using the division information may not be a fixed number of times. In this case, the number of operations for each piece of division information may depend on the bit length of the division information, but does not depend on any other blue information other than the bit length of the division information.
  • the window operation unit corresponding to the value of the division information sequentially performs (a + 1) operations.
  • the (a ⁇ + 1) th operation among the plurality of operations is the addition on the elliptic curve E, and the other operation is a doubling on the elliptic curve E.
  • the window calculation unit corresponding to the value of the division information sequentially performs (b + 1) times of calculation.
  • the (b— + 1) -th operation among the plurality of operations is the addition on the elliptic curve E, and the other operation is a doubling operation on the elliptic curve E.
  • power multiplication is performed using an elliptic curve, but power multiplication of a Jacobian group of a hyperelliptic curve or other algebraic curve may be performed. .
  • the elliptic curve calculation unit of each embodiment may be applied to encryption methods on elliptic ElGamal encryption, PSEC-KEM, other elliptic curves, or other algebraic curves.
  • the elliptic curve calculation unit of each embodiment is applied to the multiplication operation using the secret key in the encryption scheme's encryption key algorithm as the power factor, and the secret key in the decryption algorithm in the encryption method is defined as the power factor.
  • the elliptic curve calculation unit according to each embodiment may be applied to the calculation of the fold multiplication.
  • the signature method on the elliptic curve such as the elliptical DSA signature method, the elliptical ElGamal signature method, the elliptical NR signature method, the elliptical MR signature method, the elliptical PV signature method, the elliptical AO signature method, or on the algebraic curve
  • the elliptic curve calculation unit of each embodiment may be applied to this signature method.
  • the elliptic curve calculation unit may be applied to a multiplication operation that uses a random number in the signature generation algorithm of the signature scheme on the elliptic curve as a multiplication factor.
  • Non-patent document 3 is detailed regarding the elliptic ElGamal encryption and the elliptical DSA signature scheme.
  • the point issuance system 10 of Embodiment 1 is privilege information received from the seller or service provider when a user purchases a product or receives a service, and is used next. Points that are used as part or all of the payment of consideration to sellers and service providers when a consumer purchases goods or receives services are subject to confidential communications.
  • the generated point is encrypted and the encrypted key point is transmitted to the IC card 100.
  • the IC card 100 decrypts the encrypted point to generate a decrypted point, and stores the generated decrypted point. ing.
  • the target of secret communication is not limited to the above points.
  • the present invention can also be applied to a money settlement system as shown below.
  • electronic money that can be used in place of currency is subject to confidential communication, and the IC card stores electronic money.
  • the IC card uses the purchase price of the product.
  • the electronic money corresponding to is encrypted and transmitted, and the amount transmitted from the electronic money stored inside is reduced.
  • a register device having the same configuration instead of the point issuing device 200 receives the encrypted electronic money, decrypts the received encrypted electronic money, reproduces and stores the electronic money.
  • an IC card type electronic ticket for using various facilities stores information corresponding to electronic money as described above. It may be.
  • the entrance management device provided at the entrance of various facilities requests electronic money corresponding to the usage fee of the various facilities, and the electronic ticket encrypts and transmits the requested amount of electronic money for entry.
  • the management device may receive the encrypted electronic money, decrypt the received encrypted electronic money, generate electronic money, and store it.
  • the entrance management device provided at the entrance of the transportation station transmits identification information for identifying the station, and the IC card ticket receives and stores the identification information.
  • the participation management device provided at the exit of the transportation station receives the identification information as well as the IC card ticket power, and uses the received identification information and the station where the participation management device is installed, Calculate the car fee, request electronic money equivalent to the calculated boarding fee, IC card board ticket transmits the requested amount of electronic money encrypted, and the entry management device encrypts Receives electronic money, decrypts the received encrypted electronic money, generates electronic money, and then breathes.
  • each device that performs the elliptic power multiplication operation includes an elliptic curve calculation unit that is the same as the elliptic curve calculation unit 208.
  • Each of the above devices is based on the discrete logarithm problem on the elliptic curve E defined on the remainder field F modulo the prime p, and at the point C on the elliptic curve E is a coefficient that is a positive integer less than the prime p It is an information security device that safely handles information using an elliptic curve calculation that multiplies k to calculate a point k * C.
  • Each device that performs the elliptic power multiplication includes an elliptic curve calculation unit that is the same as the elliptic curve calculation unit 208.
  • Each of the above devices is a discrete on elliptic curve E defined on the remainder field F modulo prime p Based on the logarithm problem, information security that handles information reliably using elliptic curve calculation that calculates point k * C by multiplying point C on elliptic curve E by a coefficient k that is a positive integer less than prime p. Device.
  • the target of secret communication is not limited to the above points or electronic money.
  • the present invention is applied to a content distribution system composed of a content encryption device and a content playback device.
  • digital information such as movies, moving images, audio, music, novels, and databases is secretly communicated. It is good also as an object of.
  • contents are provided by selling or renting a recording medium that records these contents from the content supplier to the user. It is also provided to users from content suppliers via digital broadcasting and the Internet.
  • the content encryption device owned by the content provider encrypts a digital work movie and records it on a DVD.
  • the content playback device possessed by the user reads the encrypted digital work from the DVD, decrypts it, generates a movie, plays back the generated movie as audio and video, and displays and outputs it.
  • the discrete logarithm problem on the elliptic curve is used as the basis of security, and the elliptic power multiplication is performed.
  • the content encryption apparatus and the content playback apparatus that perform the elliptic power multiplication operation include the same elliptic curve calculation unit as the elliptic curve calculation unit 208.
  • the content key for encrypting and decrypting the content may be the target of the secret communication shown in the first embodiment.
  • the content key is encrypted and decrypted in the same manner as in the method described in the first embodiment.
  • the content is encrypted and decrypted with the content key using a common key cryptosystem described later.
  • Each of the above devices is a positive integer less than prime p at point C on elliptic curve E, based on the discrete logarithm problem on elliptic curve E defined on remainder field F modulo prime p. It is an information security device that safely handles information using elliptic curve calculation that multiplies the coefficient k to calculate the point k * C.
  • DES Data Encryption Standard
  • AES Advanced Encryption Standard
  • Encryption technologies such as DES and AES are called so-called common key cryptosystems (or secret key cryptosystems).
  • the key sharing system shown in Embodiment 3 provides means for solving this problem.
  • a secret key that is known to a third party is shared, and then a cryptographic key algorithm based on a shared key cryptosystem is applied, and the content encryption device uses the secret key to share the digital work.
  • the encrypted digital work is generated by encrypting the object, and then the encrypted digital work is decrypted by using the shared secret key in the content reproduction apparatus.
  • the discrete logarithm problem on the elliptic curve is used as the basis of security, and the elliptic power multiplication is performed.
  • the content encryption device and the content playback device that perform the elliptic power multiplication operation include the same elliptic curve calculation unit as the elliptic curve calculation unit 208.
  • Each embodiment and modification is applied to authentication. Authentication is verification that a message has been sent by a person who is self-proclaimed and that the message has been tampered with. Further, each embodiment and modification are applied in identification. Proof of identity is, for example, the right to access data or the right to access facilities ( Proof that you have the right) or that you are the person you claim. Furthermore, each embodiment and modification are applied in non-repudiation prevention. Non-repudiation, for example, is to counter a person who claims that he has agreed to something but has not.
  • Key exchange is, for example, that two people agree on a secret key for use with a secret key cryptosystem using broadcast radio waves. In the above, it demonstrated as key sharing.
  • Coin throwing also called bit commitment.
  • Coin throwing means that two chess players who live in different baskets decide who has white by email.
  • Secret sharing for example, means that certain secret information is available to k people working with it, but not available to k—one person.
  • Zero-knowledge proof means, for example, that one person has succeeded in solving a number theoretic or combinatorial problem, and that this is convincing another person to give even a little information about what the solution is. Say.
  • 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 the hard disk unit.
  • the computer program is configured by combining a plurality of instruction codes indicating instructions for the computer in order to achieve a predetermined function.
  • Microprocessor power Each device achieves its functions by operating according to the computer program. In other words, the microprocessor reads each instruction included in the computer program one by one, decodes the read instruction, and operates according to the decoding result.
  • System L SI is an ultra-multifunctional LSI manufactured by integrating multiple components on a single chip. Specifically, it is a computer system that includes a microprocessor, ROM, RAM, and so on. A computer program is stored in the RAM. The microphone processor power By operating according to the computer program, the system LSI achieves its functions.
  • each part of the constituent elements constituting each of the above-described devices may be individually made into one chip, or may be made into one chip so as to include a part or all of them. Also, here, it is also called IC, system LSI, super LSI, or ultra LSI, depending on the difference in power integration as LSI.
  • the method of circuit integration is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor. It is also possible to use an FPGA (Field Programmable Gate Array) that can be programmed after LSI manufacture and a reconfigurable processor that can reconfigure the connection and settings of circuit cells inside the LSI!
  • FPGA Field Programmable Gate Array
  • a part or all of the constituent elements constituting 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 including 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 function 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 also has the computer program power.
  • the present invention also provides a computer-readable recording medium such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blu-ray). Disc), semiconductor memory, etc. may be recorded. Further, the present invention may be the computer program or the digital signal recorded on these recording media.
  • the present invention provides the computer program or the digital signal for telecommunications. It may be transmitted via a line, a wireless or wired communication line, a network represented by the Internet, a data broadcast, or the like.
  • the present invention may also be a computer system including a microprocessor and a memory.
  • the memory may store the computer program, and the microprocessor may operate according to the computer program.
  • the present invention is an elliptic curve calculation device that performs scalar multiplication on an elliptic curve for secret information given in advance and a point on the elliptic curve that is an input.
  • a division information generation unit that divides information to generate division information
  • an elliptic curve addition unit that generates points obtained as a result of addition in the group of elliptic curves to the two points on the elliptic curve, and 1
  • the elliptic curve doubling unit for generating a point obtained by doubling the points on the elliptic curve group in the group of elliptic curves, the points on the first elliptic curve, and the division information
  • a scalar multiplication unit that generates a point on the second elliptic curve using the elliptic curve addition unit and the elliptic curve doubling unit, and the scalar multiplication unit includes the scalar multiplication unit The total number of times the elliptic curve addition part and the elliptic curve doubling part are used
  • the scalar multiplication unit has a value obtained by summing the number of times the elliptic curve addition unit and the elliptic curve doubling unit are used as the division information. It can be controlled to be constant regardless of information other than the bit length.
  • the elliptic curve calculation device further calculates a positive integer of 1 or more.
  • a scalar generating point of a point on the elliptic curve having the positive integer as a scalar, and a table generation unit for storing each of the results in a table, the two elliptical curve adding units used At least one of the points on the elliptic curve may be the scalar multiple stored in the table.
  • the division information generation unit may divide the secret information into a plurality of pieces of the division information having a predetermined number of bits.
  • the elliptic curve doubling unit may further include dummy multiplication means for executing the multiplication that becomes a dummy that does not affect the calculation result.
  • the elliptic curve doubling unit may further include a double multiplication alternative means for obtaining a result obtained by multiplying the original of the definition field by two using the original and the original multiplication.
  • the positive integer may be an odd number.
  • the division information generation unit generates the division information of a plurality of sw bits
  • the scalar multiplication unit executes (sw + 1) times of calculation processing
  • the division information w is other than 0 and
  • the (sw- + 1) -th arithmetic processing uses the elliptic curve addition unit.
  • the other arithmetic processing may use the elliptic curve doubling unit.
  • the present invention is an elliptic curve calculation method for performing scalar multiplication on an elliptic curve for secret information given in advance and a point on the elliptic curve as an input, and dividing the secret information
  • a division information generation step for generating division information
  • an elliptic curve addition step for generating a point obtained as a result of adding the two points on the elliptic curve in the group of the elliptic curves
  • Based on the elliptic curve doubling step for generating a point obtained as a result of doubling the point on the elliptic curve in the group of elliptic curves, based on the first point on the elliptic curve and the division information
  • An elliptic curve addition step and a scalar multiplication step for generating a second point on the elliptic curve using the elliptic curve doubling step, wherein the scalar multiplication step includes the elliptic curve addition step and the elliptic curve addition step.
  • Each of the definition means is a multiplication means for executing multiplication in a definition body of an elliptic curve
  • the elliptic curve adding step and the elliptic curve doubling step include the multiplication, the double multiplication, and the elliptic curve addition step that perform addition in the definition body. The order of the addition is the same.
  • a value obtained by summing the number of times the elliptic curve addition unit and the elliptic curve doubling unit are used is stored in the secret information. Even if it is controlled so as to be constant, it is not.
  • the elliptic curve calculation method further calculates a scalar multiple of points on the elliptic curve having the positive integer as a scalar for one or more predetermined positive integers, and calculates each of the results.
  • the division information generation step may divide the secret information into a plurality of pieces of the division information having a predetermined number of bits.
  • the positive integer may be an odd number.
  • the division information generation step generates the division information of a plurality of sw bits
  • the scalar multiplication operation step executes (sw + 1) times of calculation processing, and the division information w is other than 0, and
  • the division information w is divisible by 2 "t (t is a non-negative integer) and not divisible by 2" (t + l)
  • the (sw-t + 1) -th arithmetic processing uses the elliptic curve addition step.
  • the other arithmetic processing may use the elliptic curve doubling step.
  • the present invention provides a program that is executed by an elliptic curve calculation device that executes scalar multiplication on an elliptic curve for secret information given in advance and an input point on the elliptic curve.
  • a division information generation step for generating division information by dividing secret information; an elliptic curve addition step for generating a point obtained as a result of addition in the group of elliptic curves to the two points on the elliptic curve;
  • An elliptic curve doubling step for generating a point obtained as a result of doubling in the elliptic curve group for one point on the elliptic curve, and a point on the first elliptic curve and the division information
  • a second point on the elliptic curve is generated.
  • the elliptic curve calculation device is caused to execute a la-fold calculation step, and the scalar multiplication calculation step is a sum of the number of times the elliptic curve addition step and the elliptic curve doubling step are used.
  • the elliptic curve adding step and the elliptic curve doubling step are each a multiplication means for performing multiplication in the definition field of the elliptic curve, and in the definition field. 2 multiplication means for performing multiplication, and addition means for performing addition in the definition body, wherein the elliptic curve addition step and the elliptic curve doubling step include the multiplication to be executed, the 2 multiplication, and the addition. Are in the same order.
  • a value obtained by totaling the number of times the elliptic curve addition unit and the elliptic curve doubling unit are used is stored in the secret information. Even if it is controlled so as to be constant, it is not.
  • the elliptic curve calculation method further calculates a scalar multiple of points on the elliptic curve having the positive integer as a scalar for one or more predetermined positive integers, and calculates each of the results.
  • the division information generation step may divide the secret information into a plurality of pieces of the division information having a predetermined number of bits.
  • the positive integer may be an odd number.
  • the division information generation step generates the division information of a plurality of sw bits
  • the scalar multiplication operation step executes (sw + 1) times of calculation processing, and the division information w is other than 0, and
  • the division information w is divisible by 2 "t (t is a non-negative integer) and not divisible by 2" (t + l)
  • the (sw-t + 1) -th arithmetic processing uses the elliptic curve addition step.
  • the other arithmetic processing may use the elliptic curve doubling step.
  • the present invention is an integrated circuit of an elliptic curve calculation device that performs scalar multiplication on an elliptic curve with respect to secret information given in advance and a point on the elliptic curve as an input, A division information generation unit that divides information to generate division information, and the two elliptic curves An elliptic curve addition unit that generates a point obtained as a result of addition in the elliptic curve group with respect to the upper point, and a result obtained by doubling in the elliptic curve group with respect to one point on the elliptic curve Based on the elliptic curve doubling unit for generating the obtained points, the points on the first elliptic curve and the division information, the elliptic curve adding unit and the elliptic curve doubling unit are used to A scalar multiplication unit that generates a point on the elliptic curve, and the scalar multiplication unit has a value obtained by summing the number of times the elliptic curve addition unit and
  • each of the elliptic curve addition unit and the elliptic curve doubling unit is a multiplication unit that performs multiplication in a definition field of the elliptic curve, A double multiplying means for performing double multiplication in the definition field.
  • An adding means for performing the kick addition, the said elliptical curve doubling unit and the elliptic curve addition unit, the multiplication, the order of the squaring and the addition is characterized that it is an equivalent to execute.
  • the scalar multiplication unit based on one piece of the division information, has a value obtained by totaling the number of times the elliptic curve addition unit and the elliptic curve doubling unit are used as the secret information. It may be controlled so that it remains constant.
  • Each apparatus, each method, and each computer program constituting the present invention can be used in a management, continuous, and repetitive manner in any industry that needs to handle information safely and reliably.
  • each device constituting the present invention can be manufactured and sold in the electric appliance manufacturing industry in a management manner, continuously and repeatedly.

Abstract

 単純電力解析攻撃の耐性は保持しつつ、使用するテーブル量を削減する。ICカード100は、楕円曲線E上の点Cに、素数p未満の正整数である係数kを乗じて点k*Cを算出する楕円曲線演算を用いて、暗号化された情報を復号する。点k*Cの演算は、前記点Cに取得した係数kの桁(Window)の値wを乗じて得られた乗算結果を、当該桁に相応する位置において加算し、これを全桁に対して行う。取得した前記桁の値が2t で割り切れ、2t+1 で割り切れない条件を満たす非負整数tが存在する場合に、各桁の乗算は、楕円曲線E上において、点Qにw/2t を乗じて得られる点の加算を含む。

Description

明 細 書
情報セキュリティ装置及び楕円曲線演算装置
技術分野
[0001] 本発明は、電力消費量の計測による電力解析攻撃に対抗でき、情報を安全、確実 に扱うことができる情報セキュリティ技術に関する。
背景技術
[0002] 近年、ハードウェアあるいはソフトウェアにより実装された暗号モジュールにおいて 暗号処理が行われる際に、当該暗号処理における様々な副情報を手がかりにして、 当該暗号処理にぉ 、て用いられて 、る暗号鍵の解析を行う各種の解読法が考案さ れている。
例えば、タイミング攻撃と呼ばれる解読方法では、暗号モジュールにおいて暗号処 理に要する時間が、当該暗号処理において用いられている暗号鍵の値により、わず かではあるが異なることを利用して、当該暗号鍵の解読を行う。また、 Simple Power A nalysis (単純電力解析攻撃)、や Differential Power Analysis (差分電力解析攻撃)と 呼ばれる解読方法では、暗号処理を行う際の暗号モジュールにおける電力消費量を 副情報として用いる。
[0003] これらの解読方法は、近年、高性能な計測機器が安価で手に入るようになった背景 もあって、 ICカードのような暗号モジュールが実装された実際の製品に対しても解析 が可能であることが報告されて 、る。
以下の記述では、上記のような暗号処理時における暗号モジュールの電力消費量 の変化、すなわち、電力波形を手がかりにして、暗号鍵を解析する解読方法を総称 して、「電力解析攻撃」と呼ぶ。なお、タイミング攻撃については、非特許文献 1に、電 力解析攻撃については、非特許文献 2に詳しく述べられている。
[0004] 次に、楕円曲線暗号への単純電力解析攻撃について説明する。なお、楕円曲線 暗号については、非特許文献 5に詳しく述べられており、また、楕円 ElGamal暗号や 楕円 DSA署名方式に関しては、非特許文献 3に詳しく述べられている。
(楕円曲線暗号の単純電力解析攻撃) 楕円曲線暗号の復号ィ匕処理において、正整数である秘密鍵 ksと暗号文の一部で ある楕円曲線上の点 Cのスカラ倍点 ks*Cを計算する。ここで、 ks*Cは、 ks個の点 Cを加算することにより得られる楕円曲線上の点を表す。この計算方法として例えば、 非特許文献 5の 69ページにおける符号付 Window法が知られている。以下では、符 号付 Window法について説明する。なお、以下では、 Windowの幅を 3ビットとする。
[0005] ステップ S801: v^ksとし、 v=v— O+v— 1 X 2"3+v_2X2"6H hv_bX2
'(bX3)となるょぅにv—0, v— 1, v_2, · · ·, v— bをとる。さらに、 v— (b+1) 0と する。ここで、 bは(lenZ3以上の最も小さい整数)— 1、 lenは vのビット数、「X」は整 数の乗算、 x"yは Xの y乗を示している。例えば、 len=52の場合は、 b=18— 1 = 17 である。
[0006] ステップ S802:以下のステップ S8021〜S8026で、整数列 {w— i}(i=l, 2, . . , b + 1)を生成する。
ステップ S8021:c 0
ステップ S8022:v— c>2'2である力判定。 v— c>2'2である場合、ステップ S802 3へ。それ以外は、ステップ S8024へ。
[0007] ステップ S8023:w— c^v— c— 2'3, v_(c + l)^v_(c+l) +1,ステップ S80 25へ。
ステップ S8024: w_c^v_c
ステップ S8025:c c+1
ステップ S8026:c>b + 1であるか判定。 c>b+lである場合、ステップ S803へ。 それ以外は、ステップ S8022へ。
[0008] ステップ S803:以下のステップ S8031〜S8035で、テーブル {P_i}を生成する。
ステップ S8031:P— 0 O, P— 2 Dob(C)。ここで、 Oは楕円曲線の零元であり 、 Dobは楕円曲線の 2倍算を示し、 Dob(C)は Cの 2倍点である。
ステップ S8032:c 3
ステップ S8033:P— c P— (c— 1)+C
ステップ S8034: c c + 1
ステップ S8035:c>2'2=4である力判定。 c>2'2である場合、ステップ S804へ 。それ以外は、ステップ S8033
[0009] ステップ S804:以下のステップ S8041 S8047で、スカラ倍点 Rを計算する。
ステップ S8041:c b +1
ステップ S8042:w— c = 0である力判定。 w— c = 0である場合は、 c c— 1
[0010] ステップ S8043:R P— (w c)
ステップ S8044: c— c 1
ステップ S8045:cく 0である力判定。 cく 0である場合は、ステップ S805へ。
ステップ S8046: R^Dob (Dob (Dob (P_ (w_c) ) ) )
ステップ S8047:w— c力正、負または 0であるか判定する。 w— c<0である場合は Add (R, - P_ (-w_c) ) w_c > 0である場合は、 R^Add (R, P_ (w_c ))、 w— c = 0の場合は何もしない。ステップ S8044 ここで、 Addは、楕円曲線の 加算であり、 Add (R, P— (w_c) )は、 Rと P— (w_c)とに対する楕円曲線の加算の 結果である。
[0011] ステップ S805:Rを出力し終了。
上記方法では、スカラ倍点を整数列 {w— i}とテーブル {P— i}を用いて計算して!/ヽ る。ステップ S8047では w— c = 0の場合は、楕円曲線の演算を実行していない。ま た、ステップ S8042では、 w— c = 0である場合は、楕円曲線の演算を行わず、 cをデ クリメントするため、その分、楕円曲線の演算を実行しないことになる。このように、 w — c = 0の場合は、そうでない場合と処理が異なる。
[0012] (楕円曲線の 2倍算と楕円曲線の加算の公式)
以下に、楕円曲線の 2倍算と楕円曲線の加算の公式を示す。この公式について非 特許文献 4に詳しく述べられている。ここでは、点の座標を Jacobian座標として、楕 円曲線の演算 (加算及び 2倍算)を行う。
(a)楕円曲線の加算公式
P1=(X1, Yl, Zl), P2=(X2, Y2, Ζ2)〖こ対して、 Ρ3 = Ρ1 + Ρ2= (Χ3, Υ3, Ζ3)とする。
[0013] X3=-H"3-2XUlXH"2+r"2
Y3=-SlXH"3+rX (U1XH'2— Χ3) Z3 = Z1XZ2XH
ただし、 U1=X1XZ2'2, U2=X2XZ1"2, S1=Y1XZ2"3, S2=Y2XZ1"3 、 H=U1-U2, r=S2— SIである。
[0014] (b)楕円曲線の 2倍算公式
P1=(X1, Yl, Zl)に対して、 P4 = 2*P1=(X4, Y4, Z4)とする。
X4=T
Y4=— 8ΧΥΓ4 + ΜΧ (S-T)
Z4 = 2XY1XZ1
ただし、
Figure imgf000006_0001
M = 3XXl"2 + aXZl"4, T=— 2S + M'2である。
[0015] 上記より、楕円曲線加算において、 2乗算が 4回実行され、乗算が 12回実行される 。それに比べて、楕円曲線 2倍算では、 2乗算が 6回実行され、乗算が 4回実行され る。
このように、楕円曲線加算と楕円曲線 2倍算とは、 2乗算及び乗算の回数が異なる ため、暗号モジュールにおける消費電力の波形が異なる。したがって、電力波形を観 測することにより、楕円曲線の 2倍算、加算の演算の順序を解析することが可能にな る。その解析結果から、 w—c = 0の場合の有無を攻撃者が知ることができる。さらに、 攻撃者は、 w—c = 0である力否かの情報力 秘密鍵 ksの探索空間を狭めることが可 會 になる。
[0016] (従来の楕円曲線暗号の単純電力解析攻撃に対する対策方法)
上記の単純電力解析攻撃では、 w_c = 0の場合に計算処理が異なることを利用し ている。そこで、この攻撃から防御するためには、 w— c = 0の場合にダミーの計算処 理を追加することにより、 w—c = 0の場合とそうでない場合の計算処理を同じにすれ ばよい。具体的には、以下のアルゴリズムで計算する。
[0017] ステップ S901: V ks、 v=v— O+v— 1 X 2"3+v_2 X 2"6H—— hv_b X 2" (b
X3)となるように v_0, v_l, v_2, ···, v_bをとる。さらに v_(b+l) 0とする。こ こで、 bは(lenZ3以上の最も小さい整数)— 1、 lenは vのビット数、 "X"は整数の乗 算、 x"yは Xの y乗を示している。例えば、 len=52の場合は、 b = 18— 1 = 17である [0018] ステップ S902:以下のステップ S9021 S9026で、 列 {w— i}(i=l, 2, .. , b + 1)を生成する。
ステップ S9021:c 0
ステップ S9022:v— c>2"2である力判定。 v— c>2— 2である場合、ステップ S902 3 それ以外は、ステップ S9024
[0019] ステップ S9023:w— c^v— c— 2'3 v_(c + l)^v_(c+l) +1,ステップ S90 25
ステップ S9024: w_c^v_c
ステップ S9025:c c+1
ステップ S9026:c b + 1であるか判定。 c>b+lである場合、ステップ S903 それ以外は、ステップ S9022
[0020] ステップ S903:以下のステップ S9031 S9035で、テーブル {P—i}を生成する。
ステップ S9031:P— 0 O, P— 2—Dob(C
ステップ S9032:c 3
ステップ S9033:P— c P— (c— 1)+C
ステップ S9034: c c + 1
ステップ S9035:c>2"2=4である力判定。 c>2"2である場合、ステップ S904へ 。それ以外は、ステップ S9033
[0021] ステップ S904:以下のステップで、スカラ倍点 Rを
ステップ S 9041: c b + 1
ステップ S9042:w— c = 0である力判定。 w— c = 0である場合は、 D^Dob(Dob( Dob(C))), D Add(R, C), c c一 1
ステップ S9043 :R—P— (w一 c)
ステップ S 9044: c^c一 1
ステップ S9045:cく 0であるか判定。 c<0である場合は、ステップ S905 [0022] ステップ S 9046 :R— Dob (Dob (Dob (P_(w_c) ) ) )
ステップ S9047:w— cが正、負または 0であるか判定する。 w— c<0である場合は Add (R, - P_ (— w_c) ) w_c > 0である場合は、 Add (R, P_ (w_c ) )、 w— c = 0の場合は、 D^Add (R, C)。ステップ S9044へ。ここで、 Addは、楕円 曲線の加算であり、 Add (R, P— (w— c) )は、 Rと P— (w— c)とに対する楕円曲線の 加算の結果である。
[0023] ステップ S905 :Rを出力し終了。
上記単純電力攻撃に対する対策方法では、 Dは計算結果に関係しないダミーの点 であり、ステップ S9042及びステップ S9047で実行する Qの演算はダミー演算となる 。ステップ S9042では w— c = 0の場合は、 3回のダミーの楕円曲線 2倍算と 1回のダ ミーの楕円曲線加算を実行する。 w—c = 0でない場合においても、ステップ S9046 の 3回の楕円曲線 2倍算、ステップ S9047で 1回の楕円曲線加算を実行するため、 w — c = 0の場合と、 w—c≠0の場合で同じ演算を実行していることになる。また、ステツ プ S9047において w— c = 0の場合はダミーの加算を実行しており、 w— c≠ 0の場合 と同じ演算を実行していることになる。
[0024] したがって、上記単純電力攻撃に対する対策方法では、 w— c = 0の場合も、 w_c ≠0の場合と同じ演算を実行するため、電力波形が同じになり、攻撃者が w— c = 0で ある力否かの情報を電力波形力 知ることができなくなる。
非特干文献 1: Paul C. Kocher, Timing attacks on implementations of Diffie- Hellma n,RSA,DSS,and Other Systems " ,In Neal Koblitz, editor, CRYPTO '96, LNCS 1109, Springer— Verlag ,199b, pp.104-113.
非特許文献 2 : P. KocherJ. Jaffe'and B. Jun, Differential Power Analysis , Advance s in Cryptology -CRYPTO '99,LNCS,1666 'Springer- Verlag,1999,pp.388- 397. 非特許文献 3 :岡本龍明、山本博資、「現代暗号」、産業図書 (1997年)
非特干文献 4 : A. iyaji.T. Ono and H.し ohen, Efticient elliptic curve exponentiatio n",ICICS'97,Springer-Verlag,1999,pp.282-291.
非特許文献 5 : I.Blake,G.Seroussi and N. Smart, "Elliptic Curves in Cryptography", Lo ndon Mathematical Society Lecture Note Series 265.CAMBRIDGE UNIVERSITY P RESS.1999
発明の開示
発明が解決しょうとする課題 [0025] 上述した単純電力攻撃に対する対策方法では、 P— 1 =P以外に P— 2, P— 3, P
—4の 3点をテーブルに格納している。しかしながら、 ICカードなどのリソースが限ら れて 、る状況では、テーブル量を小さくした 、との要望がある。
本発明は、単純電力解析攻撃に対する耐性は保持しつつ、使用するテーブル量を 削減することができる情報セキュリティ装置、楕円曲線演算装置、方法及びコンビュ ータプログラムを提供することを目的とする。 課題を解決するための手段
[0026] 上記目的を達成するために、本発明は、素数 pを法とする剰余体 F上で定義された 楕円曲線 E上の離散対数問題を根拠として、楕円曲線 E上の点 Cに、素数 p未満の 正整数である係数 kを乗じて点 k* Cを算出する楕円曲線演算を用いて、情報を安全 又は確実に扱う情報セキュリティ装置であって、楕円曲線 E上の点 Cを記憶している 点記憶手段と、係数 kの全桁の値を記憶している桁記憶手段と、桁記憶手段から 1個 の桁の値 wを取得する取得手段と、取得した前記桁により表現しうる値の種類の数と 同数の乗算手段と、取得した前記桁の値 wに対応する乗算手段を選択する選択手 段と、係数 kの全ての桁について、前記取得手段、前記選択手段及び前記乗算手段 に対して、 1個の桁の値 wの取得と、取得した桁の値 wに対応する乗算手段の選択と 、選択された乗算手段による乗算とを繰り返すように制御する繰返制御手段とを備え 、各乗算手段は、楕円曲線 E上において、前記点 Cに取得した前記桁の値 wを乗じ て得られた乗算結果を、当該桁に相応する位置において加算し、取得した前記桁の 値 wが で割り切れ、 2t+1で割り切れない条件を満たす非負整数 tが存在する場合 に、当該桁の値 wに対応する前記乗算手段は、楕円曲線 E上において、点 Qに wZ を乗じて得られる点の加算又は点 Qに I w/^ Iを乗じて得られる点の減算を含 む演算を行うことを特徴とする。
[0027] ここで、点記憶手段は、実施の形態の被演算値格納部 224に相当し、桁記憶手段 は、分割情報格納部 223に相当し、取得手段は、取得部 241に相当し、選択手段は 、選択部 242に相当し、複数の乗算手段は、それぞれ、 Window演算部 251〜258 に相当し、繰返制御手段は、繰返制御部 243に相当する。また、実施の形態におけ る Windowを、ここでは、桁と表現している。 発明の効果
[0028] この構成によると、当該桁の値 wに対応する前記乗算手段は、楕円曲線 E上にお いて、点 Qに w/ を乗じて得られる点の加算又は点 Qに I W Iを乗じて得られ る点の減算を含む演算を行うので、例えば、各桁のビット長が 3である場合に、加算 又は減算で用いられる点は、 Cを除いて、 3 * Cのみであり、各桁のビット長が 4である 場合に、加算又は減算で用いられる点は、 Cを除いて、 3 * C、 5 *じ及び7 *じのみ である。
[0029] 従来技術によると、例えば、各桁のビット長が 3である場合に、加算又は減算で用い られる点は、 Cを除いて、 2 * C、 3 *じ及び4 *じでぁり、各桁のビット長が 4である場 合に、加算又は減算で用いられる点は、点 Cを除いて、 2 * C、3 * C、4 * C、5 * C 、 6 * C、 7 * C及び 8 * Cである。
このように、本発明によると、従来技術と比較して、加算又は減算において用いられ る点を少なくすることができ、使用するテーブル量を削減することができる。
[0030] ここで、取得した前記桁は、 swビット長であり、前記非負整数 tが存在する場合に、 前記桁の値 wに対応する前記乗算手段は、(sw+ 1)回の演算を順次行い、前記複 数の演算のうち(sw— + 1)番目の演算は、楕円曲線 E上の前記加算又は前記減算 であり、他の演算は、楕円曲線 E上の 2倍算であるとしてもよい。
この構成によると、従来技術における場合と同じ演算結果が得られ、かつ、加算又 は減算にお 、て用いる点の数を少なくすることができる。
[0031] ここで、前記情報セキュリティ装置は、さらに、点 Qを初期の加算点とし、加算点へ 2
* Qを加算して新たな加算点を得ることを繰り返すことにより、点 Qを除く 2SW_1個の加 算点を生成するテーブル生成手段を含み、非負整数 tが存在する場合に、当該桁の 値 wに対応する前記乗算手段は、点 Qに wZ^又は I wZ^ Iを乗じて得られる点 として、前記テーブル生成手段により生成された前記加算点を用いるとしてもよい。
[0032] この構成によると、テーブル生成手段により 2s""1個の加算点が算出されているので 、乗算手段における演算回数を減らすことができる。
ここで、取得した前記桁は、 3ビット長であり、前記桁の値 wが 2である場合に、対応 する乗算手段は、楕円曲線 E上の 2倍算、 2倍算、加算及び 2倍算をこの順序で行い 、前記加算は、前記点 Cを加える演算であり、前記桁の値 wが 4である場合に、対応 する乗算手段は、楕円曲線 E上の 2倍算、加算、 2倍算及び 2倍算をこの順序で行い 、前記加算は、前記点 Cを加える演算であり、前記桁の値 wが— 2である場合に、対 応する乗算手段は、楕円曲線 E上の 2倍算、 2倍算、減算及び 2倍算をこの順序で行 い、前記減算は、前記点 Cを減ずる演算であるとしてもよい。
[0033] この構成によると、加算又は減算で用いられる点は、 Cを除いて、 3 * Cのみであり、 従来技術と比較して、使用するテーブル量を削減することができる。
ここで、取得した前記桁は、 4ビット長であり、前記桁の値 wが 2である場合に、対応 する乗算手段は、楕円曲線 E上の 2倍算、 2倍算、 2倍算、加算及び 2倍算をこの順 序で行い、前記加算は、前記点 Cを加える演算であり、前記桁の値 wが 4である場合 に、対応する乗算手段は、楕円曲線 E上の 2倍算、 2倍算、加算、 2倍算及び 2倍算 をこの順序で行い、前記加算は、前記点 Cを加える演算であり、前記桁の値 wが 6で ある場合に、対応する乗算手段は、楕円曲線 E上の 2倍算、 2倍算、 2倍算、加算及 び 2倍算をこの順序で行い、前記加算は、点 3 * Cを加える演算であり、前記桁の値 wが 8である場合に、対応する乗算手段は、楕円曲線 E上の 2倍算、加算、 2倍算、 2 倍算及び 2倍算をこの順序で行い、前記加算は、前記点 Cを加える演算であり、前記 桁の値 wがー 6である場合に、対応する乗算手段は、楕円曲線 E上の 2倍算、 2倍算 、 2倍算、減算及び 2倍算をこの順序で行い、前記減算は、点 3 * Cを減ずる演算で あり、前記桁の値 wがー 4である場合に、対応する乗算手段は、楕円曲線 E上の 2倍 算、 2倍算、減算、 2倍算及び 2倍算をこの順序で行い、前記減算は、点 Cを減ずる 演算であり、前記桁の値 wがー 2である場合に、対応する乗算手段は、楕円曲線 E上 の 2倍算、 2倍算、 2倍算、減算及び 2倍算をこの順序で行い、前記減算は、点 Cを減 ずる演算であるとしてもよ 、。
[0034] この構成によると、加算又は減算で用いられる点は、 Cを除いて、 3 * C、 5 * C及び 7 * Cのみであり、従来技術と比較して、使用するテーブル量を削減することができる ここで、前記加算又は前記減算及び前記 2倍算は、それぞれ、同じ順序で同じ種 類の演算を実行するように、ダミーの演算を含むとしてもよ 、。 この構成〖こよると、加算又は減算及び 2倍算は、それぞれ、同じ順序で同じ種類の 演算を実行するので、電力波形を手がかりにして、解析しょうとしても、加算又は減算 及び 2倍算において、同様の電力波形が出力され、 2者を明確に区別することが困 難となる。こうして、電力解析攻撃に対抗することができる。
[0035] ここで、取得した前記桁が aビット長である場合に、前記非負整数 tが存在するときに 、前記桁の値 wに対応する前記乗算手段は、(a+ 1)回の演算を順次行い、前記複 数の演算のうち(a— + 1)番目の演算は、楕円曲線 E上の前記加算又は前記減算 であり、他の演算は、楕円曲線 E上の 2倍算であり、取得した前記桁力 ¾ビット長であ る場合に、前記非負整数 tが存在するときに、前記桁の値 wに対応する前記乗算手 段は、(b + 1)回の演算を順次行い、前記複数の演算のうち (b— + 1)番目の演算 は、楕円曲線 E上の前記加算又は前記減算であり、他の演算は、楕円曲線 E上の 2 倍算であるとしてもよい。
[0036] この構成によると、異なるビット長の桁が混在すると想定する場合においても演算を 行うことができる。
ここで、前記情報セキュリティ装置は、暗号化装置であって、点 k* Cを算出する楕 円曲線演算を用いて、情報を暗号化するとしてもよい。
この構成によると、情報の暗号ィ匕の際の電力解析攻撃に対抗することができる。
[0037] ここで、前記情報セキュリティ装置は、復号装置であって、点 k* Cを算出する楕円 曲線演算を用いて、暗号化された情報を復号するとしてもよい。
この構成〖こよると、暗号化された情報を復号する際の電力解析攻撃に対抗すること ができる。
ここで、前記情報セキュリティ装置は、デジタル署名生成装置であって、点 k * Cを 算出する楕円曲線演算を用いて、情報にデジタル署名を施すとしてもよ 、。
[0038] この構成によると、デジタル署名の生成の際の電力解析攻撃に対抗することができ る。
ここで、前記情報セキュリティ装置は、デジタル署名検証装置であって、点 k * Cを 算出する楕円曲線演算を用いて、デジタル署名の検証を行うとしてもよ!/、。
この構成によると、デジタル署名の検証の際の電力解析攻撃に対抗することができ る。
ここで、前記情報セキュリティ装置は、鍵共有装置であって、点 k* Cを算出する楕 円曲線演算を用いて、他の鍵共有装置との間で、共有する鍵を生成するとしてもよい
[0039] この構成によると、鍵共有の際の電力解析攻撃に対抗することができる。
また、本発明は、素数 pを法とする剰余体 F上で定義された楕円曲線 E上の離散対 数問題を根拠として、楕円曲線 E上の点 Cに、素数 p未満の正整数である係数 kを乗 じて点 k * Cを算出する楕円曲線演算装置であって、楕円曲線 E上の点 Cを記憶して いる点記憶手段と、係数 kの全桁の値を記憶している桁記憶手段と、桁記憶手段から 1個の桁の値 wを取得する取得手段と、取得した前記桁により表現しうる値の種類の 数と同数の乗算手段と、取得した前記桁の値 wに対応する乗算手段を選択する選択 手段と、係数 kの全ての桁について、前記取得手段、前記選択手段及び前記乗算手 段に対して、 1個の桁の値 wの取得と、取得した桁の値 wに対応する乗算手段の選 択と、選択された乗算手段による乗算とを繰り返すように制御する繰返制御手段とを 備え、各乗算手段は、楕円曲線 E上において、前記点 Cに取得した前記桁の値 wを 乗じて得られた乗算結果を、当該桁に相応する位置において加算し、取得した前記 桁の値 wが で割り切れ、 2t+1で割り切れない条件を満たす非負整数 tが存在する 場合に、当該桁の値 wに対応する前記乗算手段は、楕円曲線 E上において、点 Qに w/ を乗じて得られる点の加算又は点 Q〖こ I wZ^ Iを乗じて得られる点の減算 を含む演算を行うことを特徴とする。
[0040] この構成によると、従来技術と比較して、加算において用いられる点を少なくするこ とができ、使用するテーブル量を削減することができる。
以上説明したように、本発明の情報セキュリティ装置及び楕円曲線演算装置による と、単純電力解析攻撃の耐性を保持しつつ、従来技術と比較して、使用するテープ ル量を削減することができるという優れた効果を奏する。
図面の簡単な説明
[0041] [図 1]本発明に係る 1の実施の形態としてのポイント発行システム 10の構成を示すシ ステム構成図である。 [図 2]楕円曲線演算部 208の構成を示すブロック図である。
圆 3]分割情報生成部 222の動作を示すフローチャートである。
[図 4]楕円曲線加算部 226による加算の動作及び楕円曲線 2倍算部 227による 2倍 算の動作示すフローチャートである。図 5へ続く。
[図 5]楕円曲線加算部 226による加算の動作及び楕円曲線 2倍算部 227による 2倍 算の動作示すフローチャートである。図 4から続く。
[図 6]テーブル生成部 225によるテーブル {P—i}の生成の動作を示すフローチャート である。
[図 7]sw= 3の場合において、テーブル生成部 225により生成されるテーブル {P_i} の一例を示す。
[図 8]sw=4の場合において、テーブル生成部 225により生成されるテーブル {P_i} の一例を示す。
[図 9]sw= 5の場合において、テーブル生成部 225により生成されるテーブル {P_i} の一例を示す。
圆 10]スカラ倍演算部 229による演算の手順を示すフローチャートである。図 11へ続 く。
[図 11]スカラ倍演算部 229による演算の手順を示すフローチャートである。図 10から 続く。
[図 12]図 11のステップ S 161〜S168における各演算の意味を説明するための sw= 3の場合の演算変換表 320である。
[図 13]楕円曲線演算部 208の動作を示すフローチャートである。
[図 14]ポイント発行システム 10の動作を示すフローチャートである。
[図 15]デジタル署名システムの動作を示すフローチャートである。
[図 16]鍵共有システムの動作を示すフローチャートである。
[図 17]sw=4の場合の演算変換表 330を示す。
[図 18]スカラ倍演算部 229の構成を示すブロック図である。
符号の説明
10 ポイント発行システム 100 ICカード
101 秘密鍵記憶部
102 復号処理部
103 通信部
104 制御部
105 情報記憶部
108 楕円曲線演算部
200 ポイント発行装置
201 公開鍵記憶部
202 暗号処理部
203 通信部
204 制御部
205 情報記憶部
206 入力受付部
207 表示部
208 楕円曲線演算部
221 べき倍係数格納部
222 分割情報生成部
223 分割情報格納部
224 被演算値格納部
225 テーブル生成部
226 楕円曲線加算部
227 楕円曲線 2倍算部
228 テーブル格納部
229 スカラ倍演算部
230 入力部
231 出力部
発明を実施するための最良の形態 [0043] 1.実施の形態 1
本発明に係る 1の実施の形態としてのポイント発行システム 10について説明する。
1. 1 ポイント発行システム 10の構成
ポイント発行システム 10は、図 1に示すように、 ICカード 100及びポイント発行装置 200から構成されている。
[0044] ポイント発行装置 200の操作者により ICカード 100がポイント発行装置 200に装着 され、ポイント発行装置 200は、ポイントを生成し、生成したポイントに暗号ィ匕アルゴリ ズムを施して暗号化ポイントを生成し、生成した暗号化ポイントを ICカード 100へ送 信する。
ここで、ポイントは、利用者が商品を購入したりサービスの提供を受けた場合に、販 売者やサービス提供者力 受け取る特典情報であり、次に利用者が商品を購入した りサービスの提供を受ける際に、販売者やサービス提供者への対価の支払いの一部 又は全部として利用される。
[0045] ICカード 100は、暗号ィ匕ポイントを受け取り、受け取った暗号ィ匕ポイントに前記暗号 化に対応する復号アルゴリズムを施して、復号ポイントを生成し、生成した復号ポイン トを内部に記憶する。
ポイント発行装置 200及び ICカード 100は、それぞれ、素数 pを法とする剰余体 F 上で定義された楕円曲線 E上の離散対数問題を根拠として、楕円曲線 E上の点 こ
、素数 P未満の正整数である係数 kを乗じて点 k* Cを算出する楕円曲線演算を用い て、情報を安全に扱う情報セキュリティ装置である。
[0046] ここで、情報を安全に扱うとは、例えば、情報を二者間で通信する場合にぉ 、て、 当該情報が第三者に知られないようにすることを言い、この通信は、秘密の通信とも 呼ばれる。
1. 2 公開鍵暗号方式と離散対数問題
本実施の形態では、上記の暗号アルゴリズム及び復号アルゴリズムは、楕円曲線 上の演算を用いる公開鍵暗号方式によるものである。
[0047] 公開鍵暗号方式を用いる秘密通信では、暗号化鍵と復号化鍵とが異なり、復号ィ匕 鍵は秘密にする力 暗号ィ匕鍵は公開する。 この公開鍵暗号方式の安全性の根拠として、楕円曲線上において定義される離散 対数問題が用いられる。なお、離散対数問題については、ニイルコブリッツ著 "ァ コウス イン ナンバァ セォリイ アンド タリプトグラヒィ "(Neal Koblitz ,〃 A Course i n Number theory and Cryptography", Springer— Verlag, 1987)に詳しく述べられてい
[0048] 次に、楕円曲線上の離散対数問題について、以下に述べる。
楕円曲線上の離散対数問題とは、
E (GF (p) )を有限体 GF (p)上で定義された楕円曲線とし、楕円曲線 Eの位数が大 きな素数で割り切れる場合に、楕円曲線 Eに含まれる元 Gをベースポイントとする。こ のとき、楕円曲線 Eに含まれる与えられた元 Yに対して、
Y=x水 G
となる整数 Xが存在するならば、 Xを求めよ、という問題である。
[0049] ここで、 ρは素数、 GF (p)は p個の元を持つ有限体である。また、この明細書におい て、記号 *は、楕円曲線に含まれる元を複数個加算する演算を示し、 x * Gは、次式 に示すように、楕円曲線に含まれる元 Gを X個加算することを意味する。
X水 G = G + G + GH hG
離散対数問題を公開鍵暗号の安全性の根拠とするのは、多くの元を有する有限体 GF (p)に対して、上記問題は極めて難しいからである。
[0050] 1. 3 ポイント発行装置 200の構成
ポイント発行装置 200は、図 1に示すように、公開鍵記憶部 201、暗号処理部 202、 通信部 203、制御部 204、情報記憶部 205、入力受付部 206、表示部 207及び楕 円曲線演算部 208から構成されて 、る。
また、楕円曲線演算部 208は、図 2に示すように、入力部 230、べき倍係数格納部 221、分割情報生成部 222、分割情報格納部 223、被演算値格納部 224、テーブル 生成部 225、楕円曲線加算部 226、楕円曲線 2倍算部 227、テーブル格納部 228、 スカラ倍演算部 229及び出力部 231から構成されている。
[0051] ポイント発行装置 200は、ポイントを生成し、生成したポイントを暗号ィ匕して ICカード 100に書き込む装置であるとともに、商品の販売の際に、販売額を計算し、計算した 販売額を表示し、レシートを印刷し、生成した前記ポイントを内部に記憶し、利用者か ら支払われる代金の保管などを行う金銭レジスタ装置でもある。
ポイント発行装置 200は、具体的には、マイクロプロセッサ、 ROM、 RAM,ハード ディスクユニット、ディスプレイユニット、キーボードなどから構成されるコンピュータシ ステムである。前記 RAM又は前記ハードディスクユニットには、コンピュータプロダラ ムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムに従つ て動作することにより、ポイント発行装置 200は、その一部の機能を達成する。
[0052] (1)情報記憶部 205及び公開鍵記憶部 201
情報記憶部 205は、素数 p、素数 pを法とする剰余体 Fp上で定義された楕円曲線 E (Fp)上のベースポイント B及び楕円曲線 E (Fp)の係数を記憶している。また、生成さ れたポイント Pmを記憶するための領域を備えている。
前記楕円曲線 E (Fp)は、一例として、 y =x3 + a X x + bであり、前記係数は、 a及 び bである。
[0053] 公開鍵記憶部 201は、後述する秘密鍵 (私有鍵) ksに対応して生成された公開鍵 Kpを記憶している。ここで、公開鍵 Κρは、 ICカード 100又は鍵管理装置により、以 下に示す式により算出されたものである。
公開鍵 Kp =秘密鍵 ks *ベースポイント B
(2)制御部 204
制御部 204は、前記特典情報としてのポイント Pmを生成し、生成したポイント Pmを 情報記憶部 205に書き込む。次に、暗号処理部 202に対して、ポイント Pmを暗号ィ匕 して ICカード 100へ送信することを示す指示を出力する。
[0054] (3)通信部 203、入力受付部 206及び表示部 207
通信部 203は、暗号処理部 202又は制御部 204の制御の基に、 ICカード 100との 間で、情報の送受信を行う。
入力受付部 206は、ポイント発行装置 200の操作者力もの情報又は指示の入力を 受け付け、入力を受け付けた情報又は指示を制御部 204へ出力する。
[0055] 表示部 207は、制御部 204の制御により、様々な情報を表示する。
(4)暗号処理部 202 暗号処理部 202は、制御部 204から、ポイント Pmを暗号化して ICカード 100へ送 信することを示す指示を受け取る。
前記指示を受け取ると、暗号処理部 202は、乱数 rを生成し、ベースポイント Bを情 報記憶部 205から読み出し、次に、生成した乱数 rをべき倍係数 kとして、楕円曲線 演算部 208の入力部 230へ出力し、読み出したベースポイント Bを被べき倍点 Cとし て、入力部 230へ出力する。次に、楕円曲線演算部 208の出力部 231から、演算結 果としてべき倍点 k * C =r * Bを受け取り、第 1暗号文 s 1 =べき倍点 r * Bとする。
[0056] 次に、暗号処理部 202は、公開鍵記憶部 201から公開鍵 Kpを読み出し、次に、生 成した乱数 rをべき倍係数 kとして、入力部 230へ出力し、読み出した公開鍵 kpを被 べき倍点 Cとして、入力部 230へ出力する。次に、出力部 231から、演算結果として べき倍点 k * C =r * Kpを受け取る。
次に、暗号処理部 202は、情報記憶部 205からポイント Pmを読み出し、読み出し たポイント Pmと受け取つたべき倍点 r * Kpの X座標値とに排他的論理和を施して、第 2暗号文 s2 =ポイント Pm xor (べき倍点 r *Kpの x座標値)を生成する。ここで、「x orjは、排他的論理和を示す演算子である。
[0057] 次に、暗号処理部 202は、生成した第 1暗号文 si及び第 2暗号文 s2を通信部 203 を介して、 ICカード 100へ送信する。
(5)楕円曲線演算部 208
楕円曲線演算部 208は、上述したように、入力部 230、べき倍係数格納部 221、分 割情報生成部 222、分割情報格納部 223、被演算値格納部 224、テーブル生成部 225、楕円曲線加算部 226、楕円曲線 2倍算部 227、テーブル格納部 228、スカラ 倍演算部 229及び出力部 231から構成されている。
[0058] (5- 1)べき倍係数格納部 221及び被演算値格納部 224
べき倍係数格納部 221は、ただ 1個のべき倍係数 kを記憶するための領域を備えて いる。べき倍係数 kは、スカラであり、べき倍係数 kのビット数は、 lenであるとする。 また、被演算値格納部 224は、ただ 1個の被べき倍点 Gを記憶するための領域を備 えている。被べき倍点 Gは、楕円曲線上の点である。
[0059] (5— 2)入力部 230及び出力部 231 入力部 230は、暗号処理部 202からべき倍係数 kを受け取り、べき倍係数格納部 2 21に既にべき倍係数が記憶されている場合には、受け取つたべき倍係数 kをべき倍 係数格納部 221にお 、て上書きし、べき倍係数格納部 221にべき倍係数が記憶さ れて 、な 、場合には、受け取つたべき倍係数 kをべき倍係数格納部 221に書き込む
[0060] また、入力部 230は、暗号処理部 202から被べき倍点 Cを受け取り、被演算値格納 部 224に既に被べき倍点が記憶されている場合には、受け取った被べき倍点 Cを被 演算値格納部 224にお 、て上書きし、被演算値格納部 224に被べき倍点が記憶さ れて ヽな 、場合には、受け取った被べき倍点 Cを被演算値格納部 224に書き込む。 出力部 231は、スカラ倍演算部 229からべき倍点 k * Cを受け取り、受け取つたべき 倍点 k * Cを暗号処理部 202へ出力する。
[0061] (5- 3)分割情報格納部 223
分割情報格納部 223は、後述する(b + 1)個の整数 w— i (i= l、 2、 3、 · · ·、 b+ 1) 力 なる整数列 { w— i}を記憶するための領域を備えて 、る。
(5— 4)分割情報生成部 222
分割情報生成部 222は、べき倍係数格納部 221からべき倍係数 kを読み出し、以 下に示すようにして、読み出したべき倍係数 k力も分割情報である整数 w— i (i= l、 2 、 3、…、 b + 1)力 なる整数列 {w_i}を生成する。
[0062] ここで、 w— iは、 swビットの符号付整数値である。 swは、符号付 Window法による Windowの幅であり、一例として、 sw= 3である。この場合、 w— iは「― 3」、 「― 2」、 「 — 1」、 「0」、 「1」、 「2」、 「3」及び「4」のいずれかの値を取る。 bは、「(len/sw以上の 最も小さい整数) 1」であり、 lenは、後述する変数 Vのビット数であり、「 X」は、整数 の乗算を示す演算子であり、「x 」は、 Xの y乗を示す演算である。
[0063] 例えば、 len= 52の場合は、 b = 18— 1 = 17である。なお、以下では、一例として、 sw= 3としているが、 swは、「2」でもよいし、「4」以上でもよい。
分割情報生成部 222の動作について、図 3に示すフローチャートを用いて説明す る。
分割情報生成部 222は、べき倍係数 kを変数 Vに代入し (V^ks)、 v=v— 0+v— 1 X 2"sw+v_2 X2"(2Xsw)H hv一 b X2"(bX sw)となるように、 v一 0, v一 1
, ν_2, · ··, v_bをとる。さらに v_(b + l) 0とする(ステップ S131)。ここで、 v_i (i=0 1 2 · · · b)は、 swビットである。
[0064] 次に、分割情報生成部 222は、カウンタ変数 cに 0を代入する(c 0) (ステップ S13 2)。
次に、分割情報生成部 222は、 v_c>2" (sw—1)であるか判定し、 v_c>2" (sw - 1)である場合 (ステップ S 133で YES) w_c^v_c— 2' 3及び v一 (c + 1) 一 (c + 1) + 1を算出する(ステップ S 134)。 v_c≤ 2' (sw- 1)である場合 (ステップ SI 33で NO) w_cへ v_cを代入する(w_c^v_c) (ステップ SI 35)。
[0065] 次に、分割情報生成部 222は、 c c+1を算出する (ステップ S136)。
次に、分割情報生成部 222は、 c>b+lであるか否かを判定し、 c>b + lである場 合 (ステップ S 137で YES)、整数列 {w—i}を分割情報として分割情報格納部 223に 格納し (ステップ S 138)、分割情報の生成の処理を終了する。 c≤b + lである場合( ステップ S 137で NO)、ステップ SI 33へ戻って処理を繰り返す。
[0066] (5— 5)楕円曲線加算部 226及び楕円曲線 2倍算部 227
楕円曲線加算部 226は、テーブル生成部 225又はスカラ倍演算部 229から、楕円 曲線上の 2点 P1=(X1, Yl, Z1)及び P2=(X2, Y2, Z2)並びにこれらの点の加 算の指示を受け取り、受け取った Pl= (XI, Yl, Zl)及び P2= (X2, Y2, Z2)に対 して、以下に示すようにして、 P1と P2とを楕円曲線上で加算して点 P3 = P1 + P2= ( X3, Y3, Z3)を計算し、次に、計算した点 P3をテーブル生成部 225又はスカラ倍演 算部 229へ出力する。
[0067] また、楕円曲線 2倍算部 227は、テーブル生成部 225又はスカラ倍演算部 229から 、楕円曲線上の点 Pl= (XI, Yl, Zl)及び点 PIの 2倍算の指示を受け取り、受け 取った点 Pl= (XI, Yl, Zl)に対して、以下に示すようにして、楕円曲線上で点 P1 に 2倍算を施して、点131の2倍点でぁる点134 = 2*?1=( 4, Y4, Z4)を計算し、 次に、計算した点 P4をテーブル生成部 225又はスカラ倍演算部 229へ出力する。
[0068] (楕円曲線加算部 226による加算の詳細及び楕円曲線 2倍算部 227による 2倍算 の詳細) 本実施の形態では、楕円曲線加算部 226及び楕円曲線 2倍算部 227において使 用される演算及びその順序が同じになるように、ダミー演算が追加される。
以下では、ダミー演算が「ダミー演算である」と明確に分力るようにするため、ダミー 演算を結果の代入先を変数 Dにより示す。なお、本実施の形態で使用する楕円曲線 加算及び楕円曲線 2倍算は Jacobian座標に対するものである。 Jacobian座標につい ては非特許文献 4に詳しく述べられて 、る。
[0069] 楕円曲線加算部 226及び楕円曲線 2倍算部 227の詳細の演算について説明する 前に、使用される演算関数を以下に定義する。
•Sqr(X) :Xの 2乗算を示す。
•Mul (X, Y) :Xと Yの乗算を示す。なお、 X=Yの場合においても、 Mul(X,Y)と 記載している場合は、 Sqr (X)を用いて 2乗算を行うのではなぐ同じ Xの乗算として 計算を行う。
[0070] · Mul2 (X): Xと 2との乗算を示す。
•Mul3 (X) :Xと 3との乗算を示す。
•Mul4 (X) :Xと 4との乗算を示す。
•Mul8 (X) :Xと 8との乗算を示す。
•Sub (X, Y)Xから Yを引く減算を示す。
[0071] (楕円曲線加算部 226による加算の動作)
以下に、楕円曲線加算部 226による加算の動作を、図 4及び図 5に示すフローチヤ ートを用いて説明する。
楕円曲線加算部 226は、以下に示すステップに従って、加算を行う。
Z22^Sqr (Z2) (ステップ S401)、
D^Mul4 (Xl) (ステップ S402)
Ul^MuKXl, Z22) (ステップ S403)
Z12 Sqr (Zl) (ステップ S404)
D^Mul2 (Y1) (ステップ S405)
Z13^Mul (Z22, Z1) (ステップ S406)
Z23^Mul (Z22, Z2) (ステップ S407) U2^Mul (X2, Z12) (ステップ S408)、
Sl^Mul(Yl, Z23) (ステップ S409)、
S2 Mul(Y2, Z13) (ステップ S410)、
D^Mul3 (Z12) (ステップ S411)、
H^Sub (U2, Ul) (ステップ S412)、
H2 Sqr(H) (ステップ S413)、
UlH^MuKUl, H2) (ステップ S414)、
U2H^Mul2 (UlH) (ステップ S415)、
r Sub (S2, SI) (ステップ S416)、
r2^Sqr (r) (ステップ S417)、
D^Mul8 (r) (ステップ S418)、
UHX^Sub (U1H, X3) (ステップ S419)、
H3^Mul (H2, H) (ステップ S420)、
S1H3 Mul(Sl, H3) (ステップ S421)、
rH Sub (r2, H3) (ステップ S422)、
X3 Sub (rH, U2H) (ステップ S423)、
ZlZ2^Mul(Zl, Z2) (ステップ S424)、
Z3 Mul (ZlZ2, H) (ステップ S425)、
rU^MuKr, UHX) (ステップ S426)、
Y3 Sub (rU, S1H3) (ステップ S427)。
(楕円曲線 2倍算部 227による 2倍算の動作)
以下に、楕円曲線 2倍算部 227による 2倍算の動作を、図 4及び図 5に示すフロ チャートを用いて説明する。
楕円曲線加算部 226は、以下に示すステップに従って、 2倍算を行う。
Y12 Sqr(Yl) (ステップ S501)、
X41 Mul4 (XI) (ステップ S502)、
S Mul (X41, Y12) (ステップ S503)、
X12 Sqr (Xl) (ステップ S504)、 Y21^Mul2 (Yl) (ステップ S 505)、
Z4^Mul (Y21, Zl) (ステップ S 506)、
Z12^Mul (Zl, Zl) (ステップ S507)、
Z14^Mul (Z12, Z12) (ステップ S 508)、
D^MuKYl, Z12) (ステップ S509)、
aZ14^Mul( (-a) , Z14) (ステップ S510)、
X32^Mul3 (XI 2) (ステップ S 511)、
M Sub (X32, aZ14) (ステップ S 512)、
M2 Sqr(M) (ステップ S 513)、
D^Mul(S, M2) (ステップ S514)、
S2^Mul2 (S) (ステップ S 515)、
X4 Sub (M2, S2) (ステップ S 516)、
Y14 Sqr(Y12) (ステップ S 517)、
Y814 Mul8 (Y14) (ステップ S 518)、
ST Sub (S, X4) (ステップ S 519)、
MST Mul (M, ST) (ステップ S 520)、
D^Mul(D, MST) (ステップ S521)、
Y4 Sub (MST, Y814) (ステップ S522)、
D Sub (Y4, S2) (ステップ S523)、
D^MuKZl, Z12) (ステップ S 524)、
D^Mul(D, M) (ステップ S525)、
D Mul(X4, ST) (ステップ S526)、
D Sub (D, Y4) (ステップ S527)。
なお、ステップ S 510で現れる( a)は、楕円曲線の方程式を y "2=x"3 + a X x+b としたときのパラメータ aの負の値であり、予め計算しておく。
図 4及び図 5に示すように、楕円曲線加算部 226と楕円曲線 2倍算部 227とは、同 じ順序で同じ演算を実行して 、ることがわかる。
(5— 6)テーブル格納部 228 テーブル格納部 228は、テーブル生成部 225により生成された楕円曲線上の点を 1個以上格納するための領域を備えている。
[0074] (5— 7)テーブル生成部 225
テーブル生成部 225は、以下に説明するように、楕円曲線上の点力 なるテーブル {P_i}を生成し、生成したテーブル {P_i}をテーブル格納部 228へ格納する。 ここで、テーブル {P— i}は、 1個以上の楕円曲線上の点 P— i (i= l 2 3、 · · ·)を 含む。
[0075] テーブル生成部 225によるテーブル {P—i}の生成の動作について、図 6に示すフ ローチャートを用いて、説明する。 テーブル生成部 225は、被演算値格納部 224から、被べき倍点 Cを読み出し、テ 一ブル生成部 225は、 P— 1 C及び Q ECD (C)を演算する(ステップ S141)。
[0076] ここで、 ECDは、楕円曲線上の 2倍算を示し、楕円曲線 2倍算部 227を用いて計算 することを示している。例えば、 ECD (A)は、楕円曲線上の点 Aに対して算出された 2倍算の演算結果を示し、 ECD (A) = 2 *Aである。テーブル生成部 225は、楕円 曲線 2倍算部 227に対して、楕円曲線上の点 C及び 2倍算の指示を出力し、楕円曲 線 2倍算部 227から 2倍算の演算結果を受け取る。
[0077] 次に、テーブル生成部 225は、カウンタ変数 iに対して、 i 1を算出する (ステップ S 142)。
次に、テーブル生成部 225は、 i— i+ 1を算出し (ステップ S143)、 2SW2を算出し、 i > 2 である力否かを判断する。 i> 2s である場合には (ステップ S144)、テープ ル生成の処理を終了する。
[0078] i> 2SW2でな!/ヽ場合には(ステップ S144)、テーブル生成部 225は、 P— i ECA ( P_(i— 1) , Q)を算出する。つまり、 ECA(P_(i— 1) , Q) =P_(i— 1) +Qを算出 する(ステップ S 145)。
ここで、 ECAは、楕円曲線上の加算を示し、楕円曲線加算部 226を用いて計算す ることを示している。例えば、 ECA (A, B)は、楕円曲線上の点 A及び点 Bに対して算 出された加算の演算結果を示し、 ECD (A) =A+Bである。テーブル生成部 225は 、楕円曲線加算部 226に対して、楕円曲線上の点 A及び点 B並びに加算の指示を 出力し、楕円曲線加算部 226から加算の演算結果を受け取る。
[0079] 次に、テーブル生成部 225は、 P—iをテーブル格納部 228に格納し (ステップ S 14 6)、ステップ S 143へ戻って処理を繰り返す。
上記の処理より、 P_i= (2 X 1- 1) * Cとなっていることがわ力る。
sw= 3、 4及び 5の場合において、テーブル生成部 225により生成されるテーブル { P— i}の一例を、それぞれ、図 7、図 8及び図 9に示す。
[0080] sw= 3の場合には、図 7に示すように、テーブル 311 {P_i} = {3C}である。また、 s w=4の場合には、図 8に示すように、テーブル 312{P— i} = {3C、 5C、 7C}である。 さらに、 sw= 5の場合には、図 9に示すように、テーブル 313{P— i} = {3C、 5C、 7C 、 9C、 11C、 13C、 15C}である。
(5-8)スカラ倍演算部 229
スカラ倍演算部 229は、分割情報格納部 223に格納されている整数列 {w—i}とテ 一ブル格納部 228に格納されているテーブル {P—i}を用いて、以下に示すようにし て、べき倍係数 kに対して、 k倍した点 k * Cを計算する。
[0081] スカラ倍演算部 229は、図 18に示すように、取得部 241、選択部 242、繰返制御部
243、 Window演算部 251、 252、 253、 254、 255、 256、 257、 258、初期演算部
244、レジスタ部 245及び演算値出力部 246から構成されて 、る。
スカラ倍演算部 229による演算の手順にっ 、て、図 10〜図 11に示すフローチヤ一 トを用いて説明する。
[0082] なお、下記の説明において、 ECAは、楕円曲線加算部 226による加算である。スカ ラ倍演算部 229は、加算を行う際に、楕円曲線加算部 226に対して、楕円曲線上の 2点及び加算の指示を出力し、楕円曲線加算部 226から加算の演算結果を受け取る 。また、 ECDは、楕円曲線 2倍算部 227による 2倍算である。スカラ倍演算部 229は、 2倍算を行う際に、楕円曲線 2倍算部 227に対して、楕円曲線上の 1点及び 2倍算の 指示を出力し、楕円曲線 2倍算部 227から 2倍算の演算結果を受け取る。
[0083] また、下記にお!、ては、一例として Windowの幅が「3ビット」であるものとして、つま り、 sw= 3であるとして、説明している。
スカラ倍演算部 229の初期演算部 244は、 c^b + Ιを算出する (ステップ S151)。 ここで、 cは、処理回数を計数するカウンタ変数であり、レジスタ部 245が有するレジス タにより構成されている。 bは、上述したように、「(lenZsw以上の最も小さい整数)―
1」である。レジスタ部 245は、また、後述する変数 D及び変数 Rをそれぞれ構成する
2個のレジスタを有して!/、る。
[0084] 次に、スカラ倍演算部 229の初期演算部 244は、 w— c = 0である力否かを判定す る。 w— c = 0である場合 (ステップ S152)、 D ECD (C) , D ECD (D) , D^ECD
(D) , D ECA(R, C) , c^c— 1を演算する(ステップ S153)。
次に、取得部 241は、 P— (w— c)を取得し、スカラ倍演算部 229の初期演算部 24
4は、 R P— (w— c)を演算し (ステップ S154)、繰返制御部 243は、 c c— 1を演 算する(ステップ S 155)。
[0085] 次に、スカラ倍演算部 229の繰返制御部 243は、 cく 0であるか否かを判定し、 c<
0である場合は (ステップ S156)、演算値出力部 246は、 Rを出力部 231へ出力し (ス テツプ S158)、演算処理を終了する。
c≥0である場合は(ステップ S 156)、取得部 241は、 P— (w— c)を取得し、スカラ 倍演算部 229の選択部 242は、 w—cの値に応じて (ステップ S 157)、以下の処理を 行う。
[0086] w— c=— 3の場合(ステップ3157)、選択部 242は、 Window演算部 251を選択 し、 Window演算部 251は、 R ECD (R) , R^ECD (R) , R^ECD (R) , R EC
A (R, —P— 2)を演算する(ステップ SI 61)。
w— c =— 2の場合 (ステップ S157)、選択部 242は、 Window演算部 252を選択 し、 Window演算部 252は、 R ECD (R) , R^ECD (R) , R ECA (R, — P— 1) ,
R^ECD (R)を演算する(ステップ S 162)。
[0087] w_c= 1の場合 (ステップ S157)、選択部 242は、 Window演算部 253を選択 し、 Window演算部 253は、 R^ECD (R) , R^ECD (R) , R^ECD (R) , R EC
D (R, P— 1)を演算する(ステップ S163)。
w_c = 0の場合 (ステップ SI 57)、選択部 242は、 Window演算部 254を選択し、
Window演算部 254は、 R^ECD (R) , R^ECD (R) , R^ECD (R) , D^ECA (R
, P—l)を演算する(ステップ S 164)。 [0088] w— c= 1の場合 (ステップ S157)、選択部 242は、 Window演算部 255を選択し、 Window演算部 255は、 R ECD (R) , R^ECD (R) , R^ECD (R) , R ECA(R , P—l)を演算する(ステップ S 165)。
w—c = 2の場合 (ステップ SI 57)、選択部 242は、 Window演算部 256を選択し、 Window演算部 256は、 R ECD (R) , R^ECD (R) , R ECA(R, P— 1) , R^E CD (R)を演算する(ステップ S 166)。
[0089] w—c = 3の場合 (ステップ SI 57)、選択部 242は、 Window演算部 257を選択し、 Window演算部 257は、 R ECD (R) , R^ECD (R) , R^ECD (R) , R ECA(R , P— 2)を演算する(ステップ SI 67)。
w— c=4の場合 (ステップ S157)、選択部 242は、 Window演算部 258を選択し、 Window演算部 258は、 R ECD (R) , R ECA(R, P—l) , R ECD (R) , R^E CD (R)を演算する(ステップ S 168)。
[0090] 次に、ステップ SI 55へ戻って処理を繰り返す。
(ステップ S161〜S168における各演算について)
ここで、図 11のステップ S161〜S168における各演算の意味について、図 12に示 す演算変換表 320を用いて説明する。
ここで、 w— cの値に応じて、なされる複数の演算を、便宜上、 Window演算と呼ぶ こととする。
[0091] 例えば、ステップ S164において、なされる R ECD (R) , R^ECD (R) , R^ECD
(R)及び D ECA (R, P—l)が、 1個の Window演算であり、ステップ S165におい て、なされる R^ECD (R) , R^ECD (R) , R ECD (R)及び R ECA (R, P—l) 1S 1個の Window演算である。
また、 Window演算に含まれる EC A及び ECDを、便宜上、基本演算と呼ぶ。
[0092] 演算変換表 320は、一例として Windowの幅が「3ビット」である場合にぉ 、て、つま り、 sw= 3である場合において、取り得る w— cの値毎に、当該 w— cの値と、これに対 応する従来の Window演算と、これに対応するスカラ倍演算部 229による Window 演算(本発明に関連する Window演算)と、スカラ倍演算部 229による Window演算 に含まれる基本演算の演算順序を示す基本演算順序と、 Window演算に含まれる 基本演算の個数を示す基本演算回数との関係を示している。
[0093] ここで、一例として Windowの幅は「3ビット」であるので、 w— cは、 8個の値「0」、「1 」、「2」、「3」、「4」、「一 3」、「一 2」及び「一 1」のいずれかをとる。
次に、 w—cが各値をとる場合について、従来の Window演算、スカラ倍演算部 22 9による Window演算、基本演算順序及び基本演算回数について説明する。
[0094] (a)w_c = 0の場合
w—c = 0に対する従来の Window演算は、「R^23 R」である。「R 23 R」は、変数 Rの値を、 Windowの幅の示すビット(ここでは、 3ビット)だけ、上位にシフトすることを 示している。
一方、 w—c = 0に対するスカラ倍演算部 229による Window演算は、「R 23R」及 び「D R+C」である。ここで、「R 23 R」については、上述した通りである。また、「 D R+C」は、ダミーの加算であり、 w—c = 0の場合における Window演算に含ま れる基本演算の種類とその数と、他の場合における(つまり、 w— c≠0の場合におけ る) Window演算基本に含まれる基本演算の種類とその数とを一致させるためのもの である。
[0095] ここで、「R 23R」は、スカラ倍演算部 229において、 R^2 XR R^2 XR R 2
XR、により、演算される。
これは、 23 R= 2 X (2 X (2 XR) )であることによる。
従って、 w—c = 0に対するスカラ倍演算部 229による Window演算では、 2倍算、 2 倍算、 2倍算、ダミーの加算の順序で、複数の基本演算が行われる。(ステップ S164 参照)
このように、 w_c = 0に対するスカラ倍演算部 229による Window演算に含まれる 基本演算の個数は、「4」である。
[0096] (b)w_c = lの場合
w—c= lに対する従来の Window演算は、「R^23 R+C」である。「R^23 R+C」 は、変数 Rの値を、 Windowの幅の示すビット(ここでは、 3ビット)だけ、上位にシフト し、その後、変数 Rに Cを加算することを示している。
また、 w c = lに対するスカラ倍演算部 229による Window演算は、「R^23 R+C 」である。
[0097] このように、 w—c=lに対する従来の Window演算と、スカラ倍演算部 229による Window演算とは、同一である。
ここで、「R 23R+C」は、スカラ倍演算部 229において、 R^2XR、 R^2XR、 R 2XR、 R^R+Cにより、演算される。(ステップ S165参照)
従って、 w—c=lに対するスカラ倍演算部 229による Window演算では、 2倍算、 2 倍算、 2倍算、加算の順序で、複数の基本演算が行われる。
[0098] このように、 w—c=lに対するスカラ倍演算部 229による Window演算に含まれる 基本演算の個数は、「4」である。
(c) w_c = 2の場合
w—c = 2に対する従来の Window演算は、「R^23R+2C」である。「R^23R+2 C」は、変数 Rの値を、 Windowの幅の示すビット(ここでは、 3ビット)だけ、上位にシ フトし、その後、変数 Rに 2Cを加算することを示している。
[0099] 一方、 w—c = 2に対するスカラ倍演算部 229による Window演算は、「R 2(22R
+ C)」である。
2(22R+C) =23R+2Cであることにより、 w—c = 2に対する従来の Window演算 による結果と、スカラ倍演算部 229による Window演算による結果とは、同一であるこ とが分かる。
[0100] ここで、 ¾ 2(221^+ 」は、スカラ倍演算部229にぉぃて、1^ 2 1^ 2 1^ 、 R^R+C、 R^2XRにより、演算される。(ステップ S166参照)
これは、 2(22R+C) =2X (2X (2XR) +C)であることによる。
従って、 w—c = 2に対するスカラ倍演算部 229による Window演算では、 2倍算、 2 倍算、加算、 2倍算の順序で、複数の基本演算が行われる。
[0101] ここで、前記加算は、点 Cに w— cZ^を乗じて得られる点の加算である。
このように、 w_c = 2に対するスカラ倍演算部 229による Window演算に含まれる 基本演算の個数は、「4」である。
(d) w_c = 3の場合
w c = 3に対する従来の Window演算は、「R^23R+3C」である。「R^23R+3 C」は、変数 Rの値を、 Windowの幅の示すビット(ここでは、 3ビット)だけ、上位にシ フトし、その後、変数 Rに 3Cを加算することを示している。
[0102] また、 w—c = 3に対するスカラ倍演算部 229による Window演算は、「R^23R+3 C」である。
このように、 w—c = 3に対する従来の Window演算と、スカラ倍演算部 229による Window演算とは、同一である。
ここで、「R^23 R+ 3CJは、スカラ倍演算部 229にお!/、て、 R 2 X R、 R 2 X R、 R^2XR、R^R+3C、により演算される。(ステップ S167参照)
これは、 23R+3C = 2X (2X (2XR)) +3Cであることによる。
[0103] 従って、 w—c = 3に対するスカラ倍演算部 229による Window演算では、 2倍算、 2 倍算、 2倍算、加算の順序で、複数の基本演算が行われる。
このように、 w_c = 3に対するスカラ倍演算部 229による Window演算に含まれる 基本演算の個数は、「4」である。
(e)w_c = 4の場合
w—c =4に対する従来の Window演算は、「R^23R+4C」である。「R^23R+4 C」は、変数 Rの値を、 Windowの幅の示すビット(ここでは、 3ビット)だけ、上位にシ フトし、その後、変数 Rに 4Cを加算することを示している。
[0104] 一方、 w—c=4に対するスカラ倍演算部 229による Window演算は、「R^22 (2R
+ C)」である。
22 (2R+C) =23R+4Cであることにより、 w—c =4に対する従来の Window演算 による結果と、スカラ倍演算部 229による Window演算による結果とは、同一であるこ とが分かる。
[0105] ここで、「R 22 (2R+C)」は、スカラ倍演算部 229において、 R^2XR、 R R+ C、 R^2XR、 R^2XRにより、演算される。(ステップ S168参照)
これは、 22 (2R+C)=2X2X ((2XR)+C))であることによる。
従って、 w—c=4に対するスカラ倍演算部 229による Window演算では、 2倍算、 加算、 2倍算、 2倍算の順序で、複数の基本演算が行われる。
[0106] ここで、前記加算は、点 Cに w— cZ^を乗じて得られる点の加算である。 このように、 w_c = 4に対するスカラ倍演算部 229による Window演算に含まれる 基本演算の個数は、「4」である。
(f) w_c=— 3の場合
w—c=— 3に対する従来の Window演算は、「R^23 R— 3C」である。「R^23 R 3C」は、変数 Rの値を、 Windowの幅の示すビット(ここでは、 3ビット)だけ、上位に シフトし、その後、変数 Rに— 3Cを加算する(つまり、変数 Rから 3Cを減算する)ことを 示している。
[0107] また、 w—c=— 3に対するスカラ倍演算部 229による Window演算は、「R^23 R
+ 3C」である。
このように、 w—c=— 3に対する従来の Window演算と、スカラ倍演算部 229によ る Window演算とは、同一である。
ここで、「R^23 R— 3CJは、スカラ倍演算部 229にお!/、て、 R 2 X R R 2 X R R^2 XR R^R+ (— 3C)、により演算される。(ステップ S161参照)
これは、 23 R— 3C = 2 X (2 X (2 XR) ) + (— 3C)であることによる。
[0108] 従って、 w—c =— 3に対するスカラ倍演算部 229による Window演算では、 2倍算
2倍算、 2倍算、加算 (ここでは減算)の順序で、複数の基本演算が行われる。
このように、 w—c =— 3に対するスカラ倍演算部 229による Window演算に含まれ る基本演算の個数は、「4」である。
(g) w— c=— 2の場合
w—c=— 2に対する従来の Window演算は、「R^23 R— 2C」である。「R^23 R 2C」は、変数 Rの値を、 Windowの幅の示すビット(ここでは、 3ビット)だけ、上位に シフトし、その後、変数 Rに— 2Cを加算する(つまり、変数 Rから 2Cを減算する)ことを 示している。
[0109] 一方、 w—c=— 2に対するスカラ倍演算部 229による Window演算は、「R 2 (22 R—C)」である。
2 (22R-C) = 23R—2Cであることにより、 w—c=— 2に対する従来の Window演 算による結果と、スカラ倍演算部 229による Window演算による結果とは、同一であ ることが分力ゝる。 [0110] ここで、 ¾ 2(221^— 」は、スカラ倍演算部229にぉぃて、1^ 2 1^ 2 1^ 、 R R+ (— C)、 R 2XRにより、演算される。(ステップ S162参照)
これは、 2(22R— C) =2X (2X (2XR) + (— C))であることによる。
従って、 w—c=— 2に対するスカラ倍演算部 229による Window演算では、 2倍算 、 2倍算、加算 (ここでは減算)、 2倍算の順序で、複数の基本演算が行われる。
[0111] ここで、前記減算は、点 こ I w— c/2t Iを乗じて得られる点の減算である。
このように、 w—c=— 2に対するスカラ倍演算部 229による Window演算に含まれ る基本演算の個数は、「4」である。
(h)w_c=— lの場合
w—c=— lに対する従来の Window演算は、「R^23R— C」である。「R^23R— C」は、変数 Rの値を、 Windowの幅の示すビット(ここでは、 3ビット)だけ、上位にシ フトし、その後、変数 Rに— Cを加算する(つまり、変数 Rから Cを減算する)ことを示し ている。
[0112] また、 w—c=— lに対するスカラ倍演算部 229による Window演算は、「R^23R
C」である。
このように、 w—c=— 1に対する従来の Window演算と、スカラ倍演算部 229によ る Window演算とは、同一である。
ここで、「R 23R—C」は、スカラ倍演算部 229において、 R^2XR、 R^2XR、 R 2XRゝ R^R+(— C)、により演算される。(ステップ S163参照)
これは、 23R— 3C = 2X (2X (2XR)) + (— C)であることによる。
[0113] 従って、 w— c=— 1に対するスカラ倍演算部 229による Window演算では、 2倍算 、 2倍算、 2倍算、加算 (ここでは、減算)の順序で、複数の基本演算が行われる。 このように、 w_c =— 1に対するスカラ倍演算部 229による Window演算に含まれ る基本演算の個数は、「4」である。
1.4 楕円曲線演算部 208の動作
楕円曲線演算部 208の動作について、図 13に示すフローチャートを用いて説明す る。
[0114] 入力部 230は、暗号処理部 202からべき倍係数 kを受け取り、受け取つたべき倍係 数 kをべき倍係数格納部 221に書き込み (ステップ S121)、暗号処理部 202から被 べき倍点 Cを受け取り、受け取った被べき倍点 Cを被演算値格納部 224に書き込む( ステップ S 122)。
次に、分割情報生成部 222は、べき倍係数 kから分割情報である整数列 {w_i}を 生成し、生成した整数列 {w_i}を分割情報格納部 223に格納する (ステップ S 123)
[0115] 次に、テーブル生成部 225は、被べき倍点 Cを用いてテーブル {P—i}を生成し、テ 一ブル { P_i}をテーブル格納部 228に格納する(ステップ S 124)。
次に、スカラ倍演算部 229は、分割情報格納部 223に格納されている整数列 {w— i}とテーブル格納部 228に格納されて 、るテーブル {P_i}とを使用して、べき倍点 k * Cを計算する(ステップ S 125)。
[0116] 次に、出力部 231は、スカラ倍演算部 229からべき倍点 k* Cを受け取り、受け取つ たべき倍点 k * Cを暗号処理部 202へ出力する(ステップ S 126)。
1. 5 ICカード 100の構成
ICカード 100は、図 1に示すように、秘密鍵記憶部 101、復号処理部 102、通信部 103、制御部 104、情報記憶部 105及び楕円曲線演算部 108から構成されている。
[0117] ICカード 100は、具体的には、マイクロプロセッサ、 ROM, RAMなどから構成され るコンピュータシステムである。前記 RAMには、コンピュータプログラムが記憶されて いる。前記マイクロプロセッサ力 前記コンピュータプログラムに従って動作することに より、 ICカード 100は、その一部の機能を達成する。
(1)情報記憶部 105及び秘密鍵記憶部 101
情報記憶部 105は、素数 p、楕円曲線 E (Fp)の係数及びベースポイント Bを記憶し ている。また、生成された復号ポイント Pm'を記憶するための領域を備えている。
[0118] 秘密鍵記憶部 101は、秘密鍵 ksを記憶している。
(2)通信部 103
通信部 103は、ポイント発行装置 200から第 1暗号文 si及び第 2暗号文 s2を受信 する。第 1暗号文 si及び第 2暗号文 s2を受信すると、制御部 104に対して、受信した 旨を制御部 104に対して通知する。また、受信した第 1暗号文 si及び第 2暗号文 s2 を復号処理部 102へ出力する。
[0119] (3)制御部 104
制御部 104は、通信部 103から第 1暗号文 si及び第 2暗号文 s2を受信した旨の通 知を受け取る。前記通知を受け取ると、復号処理部 102に対して、第 1暗号文 si及 び第 2暗号文 s2を復号して復号ポイントを生成することを示す指示を出力する。
(4)復号処理部 102
復号処理部 102は、制御部 104から、第 1暗号文 si及び第 2暗号文 s2を復号して 復号ポイントを生成することを示す指示を受け取る。また、通信部 103から第 1暗号文 si及び第 2暗号文 s2を受け取る。
[0120] 前記指示を受け取ると、復号処理部 102は、秘密鍵記憶部 101から秘密鍵 ksを読 み出し、次に、受け取った第 1暗号文 siを被べき倍点 kとして、楕円曲線演算部 108 へ出力し、読み出した秘密鍵 ksをべき倍係数 Cとして、楕円曲線演算部 108へ出力 する。次に、楕円曲線演算部 108から演算結果 ks * siを受け取り、復号ポイント Pm ,=第 2暗号文 s2 xor (演算結果 ks * siの x座標値)を計算する。
[0121] ここで、
Pm,= s2 xor (1^ * 51の 座標値)
= (Pm xor 0:* 1¾)の 座標値))
xor (!^ 水 の 座標値)
=Pm 01" (1:'1^ * 8の 座標値) xor '1^ * 8の 座標値)
=Pm
従って、復号ポイント Pm'は、ポイント Pmに一致することが分かる。
[0122] 次に、復号処理部 102は、生成した復号ポイント Pm'を情報記憶部 105へ書き込 む。
(5)楕円曲線演算部 108
楕円曲線演算部 108は、ポイント発行装置 200が有する楕円曲線演算部 208と同 一の構成を有して 、るので、詳細な説明を省略する。
[0123] 楕円曲線演算部 108は、復号処理部 102から、被べき倍点 k及びべき倍係数 Cを 受け取り、べき倍点 k * Cを算出し、算出したべき倍点 k * Cを復号処理部 102へ出 力する。
1. 6 ポイント発行システム 10の動作
ポイント発行システム 10の動作について、図 14に示すフローチャートを用いて説明 する。
[0124] (1)秘密鍵 ks及び公開鍵 Kpの生成の動作
以下に示す動作は、ポイント発行装置 200がポイントを発行する前に行われる。 ICカード 100の復号処理部 102は、秘密鍵 ksを生成し、生成した秘密鍵 ksを秘密 鍵記憶部 101へ書き込む (ステップ S101)。次に、復号処理部 102は、情報記憶部 105からベースポイント Bを読み出し、生成した前記秘密鍵 ksと読み出したベースポ イント Bに楕円べき倍演算を施して、公開鍵 Kp=ks * Bを生成する。この際、楕円べ き倍演算は、楕円曲線演算部 108により行われる (ステップ S102)。次に、復号処理 部 102は、生成した公開鍵 Kpを通信部 103を介して、ポイント発行装置 200へ送信 する(ステップ S 103)。
[0125] ポイント発行装置 200の暗号処理部 202は、 ICカード 100から通信部 203を介して 、公開鍵 Kpを受信し、受信した公開鍵 Kpを公開鍵記憶部 201へ書き込む (ステップ S104)。
ここでは、 ICカード 100が秘密鍵 ksを生成し、生成した秘密鍵 ksを基にして公開鍵 Kpを生成し、生成した公開鍵 Kpをポイント発行装置 200へ送信するとして 、るが、 次に示すようにしてもよい。
[0126] つまり、ポイント発行システム 10は、さらに、鍵管理装置 (公開鍵生成装置)を含む。
ICカード 100は、秘密鍵 ksを生成し、生成した秘密鍵 ksを内部に記憶する。
鍵管理装置は、 ICカード 100から秘密鍵 ksを安全に取得し、取得した秘密鍵 ksを 記憶する秘密鍵記憶部と、ベースポイント Bを記憶して 、るベースポイント記憶部と、 秘密鍵記憶部から秘密鍵 ksを読み出し、ベースポイント記憶部からベースポイント B を読み出し、秘密鍵 ksとベースポイント Bとを用いて、公開鍵 Kp = ks * Bを生成する 楕円曲線演算部と、生成した公開鍵 Kpをポイント発行装置 200へ送信する送信部と を備える。ここで、鍵管理装置が有する楕円曲線演算部は、 ICカード 100が有する 楕円曲線演算部と同一である。 [0127] (2)ポイントの発行の動作
ポイント発行装置 200の制御部 204は、ポイント Pmを生成し、生成したポイント Pm を情報記憶部 205に書き込み、次に、暗号処理部 202に対して、ポイント Pmを暗号 化して ICカード 100へ送信することを示す指示を出力する (ステップ S111)。
[0128] 暗号処理部 202は、制御部 204から、ポイント Pmを暗号化して ICカード 100へ送 信することを示す指示を受け取ると、乱数 rを生成し (ステップ S 112)、ベースポイント Bを情報記憶部 205から読み出し、生成した乱数 rをべき倍係数として、楕円曲線演 算部 208へ出力し、読み出したベースポイント Bを被べき倍点として、楕円曲線演算 部 208へ出力し、楕円曲線演算部 208から、演算結果としてべき倍点 r * Bを受け取 り、第 1暗号文 s 1 =べき倍点 r * Bとする (ステップ S 113)。
[0129] 次に、暗号処理部 202は、公開鍵記憶部 201から公開鍵 Kpを読み出し、生成した 乱数 rをべき倍係数として、楕円曲線演算部 208へ出力し、読み出した公開鍵 Kpを 被べき倍点として、楕円曲線演算部 208へ出力し、楕円曲線演算部 208から、演算 結果としてべき倍点 r *Kpを受け取り、暗号処理部 202は、情報記憶部 205からボイ ント Pmを読み出し、読み出したポイント Pmと受け取つたべき倍点 r *Kpとを加算して 、第 2暗号文 s2 =ポイント Pm xor (べき倍点 r * Kpの x座標値)を生成する(ステツ プ S114)。
[0130] 次に、暗号処理部 202は、生成した第 1暗号文 si及び第 2暗号文 s2を通信部 203 を介して、 ICカード 100へ送信する(ステップ S115)。
復号処理部 102は、ポイント発行装置 200から通信部 103を介して、第 1暗号文 si 及び第 2暗号文 s2を受け取る (ステップ S 115)。
次に、復号処理部 102は、秘密鍵記憶部 101から秘密鍵 ksを読み出し、受け取つ た第 1暗号文 siを被べき倍点として、楕円曲線演算部 108へ出力し、読み出した秘 密鍵 ksをべき倍係数として、楕円曲線演算部 108へ出力する。楕円曲線演算部 108 は、 ks * siを演算し、復号処理部 102は、楕円曲線演算部 108から演算結果 ks * s 1を受け取り、復号ポイント Pm' =第 2暗号文 s2 xor (演算結果 ks * siの x座標値) を計算する (ステップ S 116)。
[0131] 次に、復号処理部 102は、計算して得られた復号ポイント Pm'を情報記憶部 105 へ書き込む(ステップ S 117)。
2.実施の形態 2
本発明に係る別の実施の形態としてのデジタル署名システム(図示して ヽな ヽ)に ついて説明する。
[0132] デジタル署名システムは、ユーザ A装置 (署名生成装置とも呼ぶ)、ユーザ B装置( 署名検証装置とも呼ぶ)及び管理センタ装置 (管理装置とも呼ぶ)から構成されてお り(それぞれの装置を図示していない)、ユーザ A装置、ユーザ B装置及び管理セン タ装置は、それぞれ、インターネットを介して接続されている。
ユーザ A装置、ユーザ B装置及び管理センタ装置は、それぞれ、具体的には、マイ クロプロセッサ、 ROM、 RAM、ハードディスクユニット、ディスプレイユニット、キーボ ード、マウスなど力も構成されるコンピュータシステムである。前記 RAM又は前記ハ ードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプ 口セッサが、前記コンピュータプログラムに従って動作することにより、各装置は、その 一部の機能を達成する。
[0133] ユーザ A装置、ユーザ B装置及び管理センタ装置は、それぞれ、素数 pを法とする 剰余体 F上で定義された楕円曲線 E上の離散対数問題を根拠として、楕円曲線 E上 の点 Cに、素数 p未満の正整数である係数 kを乗じて点 k* Cを算出する楕円曲線演 算を用いて、情報を確実に扱う情報セキュリティ装置である。
ここで、情報を確実に扱うとは、例えば、情報を二者間で通信する場合において、 送信者が送信した情報が、改変されることなぐ受信者に届くようにすることを言う。
[0134] ユーザ A装置は、デジタル署名データとともにメッセージをユーザ B装置へ送信し、 ユーザ B装置は、デジタル署名データとともにメッセージを受け取り、受け取ったデジ タル署名データにより、署名検証を行う。
ここで、素数 pを法とする剰余体 Fp上で定義された楕円曲線 E (Fp)を想定し、 Eの 位数を qとする。また、 Bは、楕円曲線 E上のベースポイントである。
[0135] ユーザ A装置は、秘密鍵 xAを生成する秘密鍵生成部と、生成した秘密鍵 xAを安 全に管理センタ装置へ送信する秘密鍵送信部と、送信すべきメッセージ mを記憶し ているメッセージ記憶部と、素数 p、楕円曲線 Eの係数、ベースポイント Bを管理センタ 装置力も受信するパラメタ受信部と、受信した素数 p、楕円曲線 Eの係数、ベースボイ ント Bを記憶するパラメタ記憶部と、乱数 rを生成する乱数生成部と、第 1署名データ R l = (rx, ry) =r * Bを生成し、 s Xr=m+rx XXA (mod q) から第 2署名データ sを計算する署名生成部と、得られた署名データ (Rl、 s)とメッセージ mとをユーザ B 装置へ送信する送信部と、署名生成部の指示により、楕円曲線上の点の楕円べき倍 演算を行う楕円曲線演算部とを備える。
[0136] 管理センタ装置は、ユーザ A装置から、秘密鍵 xAを安全に取得する取得部と、素 数 p、楕円曲線 Eの係数、ベースポイント Bを記憶しているパラメタ記憶部と、取得した 秘密鍵 xAを用いて、公開鍵 YA=xA* Gを算出する公開鍵算出部と、素数 p、楕円 曲線 Eの係数及びベースポイント Gを公開する公開部と、インターネットを介して、公 開鍵 YAをユーザ B装置へ送信する送信部と、公開鍵算出部の指示により、楕円曲 線上の点の楕円べき倍演算を行う楕円曲線演算部とを備える。
[0137] ユーザ B装置は、管理センタ装置から、素数 p、楕円曲線 Eの係数及びベースボイ ント Gを受信するパラメタ受信部と、取得した素数 p、楕円曲線 Eの係数及びベースポ イント Gを記憶するパラメタ記憶部と、管理センタ装置から、公開鍵 YAを受信する公 開鍵受信部と、受信した公開鍵 YAを記憶する公開鍵記憶部と、ユーザ A装置から 署名データ (Rl、 S)を受信する署名データ受信部と、ユーザ A装置からメッセージ m を受信するメッセージ受信部と、ユーザ B装置は、 3 *尺1及び1!1* 0+ *¥八を計 算し、 S *Rl =m * G+rx*YAが成立するかどうか判定し、成立する場合には、検 証の成功を示す成功情報を出力し、検証に失敗した場合に、検証の失敗を示す失 敗情報を出力する検証部と、検証部の指示により、楕円曲線上の点の楕円べき倍演 算を行う楕円曲線演算部とを備える。
[0138] ユーザ A装置、ユーザ B装置及び管理センタ装置がそれぞれ、有する楕円曲線演 算部は、実施の形態 1に示す楕円曲線演算部 208と同一である。
以下において、デジタル署名システムの動作について図 15に示すフローチャート を用いて説明する。
(秘密鍵 xA及び公開鍵 YAの生成)
ユーザ A装置は、秘密鍵 xAを生成する (ステップ S201)。 [0139] 管理センタ装置は、ユーザ A装置から、秘密鍵 xAを安全に取得し、取得した秘密 鍵 xAを用いて、公開鍵 YA=xA * Bを算出する (ステップ S 202)。
次に、管理センタ装置は、素数 p、楕円曲線 Eの係数及びベースポイント Bを公開し
(ステップ S204、ステップ S207)、インターネットを介して、公開鍵 YAをユーザ B装 置へ送信する (ステップ S 205)。
[0140] ユーザ B装置は、素数 p、楕円曲線 Eの係数及びベースポイント Bを取得し (ステツ プ S204)、公開鍵 YAを受信し (ステップ S205)、受信した公開鍵 YAを内部に記憶 する(ステップ S 206)。
ユーザ A装置も、素数 p、楕円曲線 Eの係数及びベースポイント Gを取得する (ステ ップ S 207)。
[0141] (デジタル署名データの生成と署名検証)
ユーザ A装置は、乱数 rを生成し (ステップ S211)、第 1署名データ Rl = (rx, ry) =r * Bを生成し (ステップ S 212)、
S Xr=m+rx X xA (mod q) 力 第 2署名データ sを計算する(ステップ S213) 。ここで、 mは、ユーザ A装置からユーザ B装置へ送信するメッセージである。
[0142] 次に、ユーザ A装置は、得られた署名データ (Rl、 s)とメッセージ mとをユーザ B装 置へ送信する (ステップ S 214)。
ユーザ B装置は、ユーザ A装置から署名データ (Rl、 s)とメッセージ mとを受信する (ステップ S214)。
次に、ユーザ B装置は、 s *Rl及び m* G+rx *YAを計算し (ステップ S215)、 S * Rl =m * G+rx * YAが成立するかどうか判定し (ステップ S216)、成立する場合 には (ステップ S216で YES)、検証に成功し、ユーザ A装置の身元の確認ができた こととなる。成立しない場合には (ステップ S216で NO)、検証に失敗し、ユーザ A装 置の身元が確認できな力つたこととなる。
[0143] 5.実施の形態 3
本発明に係るまた別の実施の形態としての鍵共有システム(図示して ヽな 、)につ いて説明する。
鍵共有システムは、ユーザ A装置 (鍵利用装置とも呼ぶ)、ユーザ B装置 (鍵利用装 置とも呼ぶ)及び管理センタ装置 (管理装置とも呼ぶ)から構成されており(それぞれ の装置を図示していない)、ユーザ A装置、ユーザ B装置及び管理センタ装置は、そ れぞれ、インターネットを介して接続されている。ユーザ A装置、ユーザ B装置及び管 理センタ装置は、それぞれ、具体的には、マイクロプロセッサ、 ROM、 RAMなどを含 んで構成されるコンピュータシステムである。マイクロプロセッサが、コンピュータプロ グラムに従って動作することにより、各装置は、その機能を達成する。
[0144] ユーザ A装置及びユーザ B装置は、素数 pを法とする剰余体 F上で定義された楕円 曲線 E上の離散対数問題を根拠として、楕円曲線 E上の点 Cに、素数 p未満の正整 数である係数 kを乗じて点 k* Cを算出する楕円曲線演算を用いて、情報を安全に扱 う情報セキュリティ装置である。
ここで、情報を安全に扱うとは、上述したように、例えば、情報を二者間で通信する 場合にお 、て、当該情報が第三者に知られな 、ようにすることを言う。
[0145] ユーザ A装置とユーザ B装置とは、以下に示すようにして、第三者に知られることな く、同一の共有鍵を取得する。
管理センタ装置は、楕円曲線 E (Fp)の係数及びベースポイント Bを選択する選択 部と、選択した楕円曲線 Eの係数、ベースポイント B及び素数 pを記憶しているパラメ タ記憶部と、素数 p、楕円曲線 E (Fp)及びベースポイント Gを公開する公開部とを備 えている。
[0146] ここで、素数 pを法とする剰余体 Fp上で定義された前記楕円曲線 Eを想定し、 Bは、 楕円曲線 E上のベースポイントである。
ユーザ A装置は、管理センタ装置から、素数 p、楕円曲線 Eの係数及びベースボイ ント Bを取得するパラメタ取得部と、乱数を用いて、秘密鍵 xAを設定する秘密鍵設定 部と、公開鍵 YA=xA* Bを算出する公開鍵算出部と、算出した公開鍵 YAをユー ザ B装置へ送信する送信する公開鍵送信部と、ユーザ B装置から、公開鍵 YBを受信 する公開鍵受信部と、共有鍵 xA*YB= (xAX xB) * Bを算出する共有鍵算出部と 、公開鍵算出部及び共有鍵算出部の指示により、楕円曲線上の点の楕円べき倍演 算を行う楕円曲線演算部とを備える。
[0147] ユーザ B装置もユーザ A装置と同様の構成を有して 、る。 ユーザ B装置は、管理センタ装置から、素数 p、楕円曲線 Eの係数及びベースボイ ント Bを取得するパラメタ取得部と、乱数を用いて、秘密鍵 xBを設定する秘密鍵設定 部と、公開鍵 YB = xB * Bを算出する公開鍵算出部と、算出した公開鍵 YBをユーザ A装置へ送信する送信する公開鍵送信部と、ユーザ A装置から、公開鍵 YAを受信 する公開鍵受信部と、共有鍵 xB *YA= (xB X xA) * Bを算出する共有鍵算出部と 、公開鍵算出部及び共有鍵算出部の指示により、楕円曲線上の点の楕円べき倍演 算を行う楕円曲線演算部とを備える。
[0148] ユーザ A装置及びユーザ B装置がそれぞれ有する楕円曲線演算部は、実施の形 態 1のポイント発行装置 200が有する楕円曲線演算部と同一である。
以下にお 、て、鍵共有システムの動作につ!、て図 16に示すフローチャートを用い て説明する。
管理センタ装置は、楕円曲線 Eの係数及びベースポイント Bを選択し (ステップ S31 1)、素数 P、楕円曲線 Eの係数及びベースポイント Bを公開する(ステップ S312)。
[0149] ユーザ A装置は、秘密鍵 xAを設定し (ステップ S301)、公開鍵 YA=xA* Bを算 出し (ステップ S302)、公開鍵 YAをユーザ B装置へ送信する (ステップ S303)。 一方、ユーザ B装置は、秘密鍵 xBを設定し (ステップ S321)、公開鍵 YB = xB * B を算出し (ステップ S322)、公開鍵 YBをユーザ A装置へ送信する (ステップ S323)。
[0150] ユーザ A装置は、共有鍵 xA *YB= (xAX xB) * Bを算出する(ステップ S304)。
一方、ユーザ B装置は、共有鍵 xB *YA= (xB X xA) * Bを算出する(ステップ S3 24)。
ここで、共有鍵 xB *YA= (xB X xA) * B
= (xAX xB) * B
=共有鍵 xA*YB
である。
[0151] こうして、ユーザ A装置とユーザ B装置とは、第三者に知られることなぐ同一の共有 鍵を取得することができる。
6.実施の形態 1の効果
実施の形態 1におけるポイント発行装置 200が有する楕円曲線演算部 208におい て、楕円曲線加算部 226及び楕円曲線 2倍算部 227は、それぞれ同じ順序で同じ演 算を実行しているため(図 4〜図 5を参照)、電力波形を解析する攻撃者は、電力波 形力も楕円曲線加算及び楕円曲線 2倍算のどちらを実行しているかが区別できない
[0152] また、スカラ倍演算部 229では、カウンタ cに対する w—cの値によらず、楕円曲線 加算と楕円曲線 2倍算の演算回数の合計が 4回と同じであるため、べき倍係数の値 によらず、楕円曲線加算と楕円曲線 2倍算の演算回数の合計は同じになっている。し たがって、攻撃者が演算回数を知った場合においても、べき倍係数に関する情報が 攻撃者に漏れない。そのため、実施の形態 1は、単純電力解析攻撃に対して安全で ある。
[0153] また、 Windowの幅 sw= 3の場合、テーブル格納部 228のテーブルに格納される 点は、 P— 1 =Cを除いて、 P— 2 = 3 * Cのみの 1点である。従来の単純電力解析攻 撃対策方法では、テーブルに格納される点は、 P— 1 =Cを除いて、 P— 2, P— 3, P —4の 3点であり、本実施の形態 1では、従来方法より、テーブルサイズを 1Z3に削 減している。
[0154] 実施の形態 1では、 swビットの分割情報ごとに演算回数の合計を一定にしているが 、 1個のべき倍係数についての演算全体で演算回数の合計を一定になるようにしても よい。この場合、 1個のべき倍係数についての演算全体で演算回数を調整するため には、演算回数を計測しながら、演算処理を行う。この場合に比べて、実施の形態 1 では、 swビットごとに演算回数の合計を一定にしており、 1個のべき倍係数について の演算全体でも演算回数に注意する必要がなぐ制御が容易になるというさらなる効 果がある。
[0155] 上記の効果は、実施の形態 2及び 3についても同様である。
7.その他の変形例
上記に説明した各実施の形態は、本発明の実施の一例であり、本発明はこれらの 実施の形態に何ら限定されるものではなぐその主旨を逸脱しない範囲において種 々なる態様で実施し得るものである。例えば、以下のような場合も本発明に含まれる [0156] (1)実施の形態 1において、テーブル生成部 225は、楕円曲線加算部 226及び楕 円曲線 2倍算部 227を使用して、楕円曲線加算及び楕円曲線 2倍算を計算して 、る 力 テーブル生成部 225が、楕円曲線加算部 226及び楕円曲線 2倍算部 227にお けるダミー演算を除去した通常の楕円曲線加算及び楕円曲線 2倍算を実行するとし てもよい。
(2)実施の形態では、 sw=3とした力 swを 2や 4以上の値としてもよい。このとき、 スカラ倍演算部 229において、 w—cの値に応じた window演算(図 10〜図 11のステ ップ S157、ステップ S161〜S168にネ目当)は、以下のようになる。
[0157] w—cの値に応じた window演算では、(sw+ 1)回の基本演算が行われる。
(i) w— cが 0以外の場合で、かつ、 w— cが 2"tで割り切れて、 2" (t+1)で割り切れ ないことを満たす非負整数 tが存在する場合、(sw+1)回の基本演算のうち、最初か ら(sw— +1)番目の基本演算を R^ECA(R, sgn(w_c) *P_((abs(w_c/2" t) + 1) /2) )とし、(sw+ 1)回の基本演算のうち、その他の sw回の基本演算を ECD(R)とする。
[0158] ここで、 sgn(w_c)は、 w_cの符号である。 w_c>0の場合、 sgn(w_c) = 1、 w — cく 0の場合、 sgn(w— c) =— 1である。
また、 abs(w— c)は w—cの絶対値である。
(ii) w_c = 0の場合は、 R^ECD(R)の基本演算を sw回行う、その後、 D^ECA( R,P— 1)を実行する。例えば、 sw=5, w— c=— 12の場合、 R ECD(R), R E CD (R) , R^ECD (R) , R^ECA (R, - P_2) , R^ECD (R) , R^ECD (R)とな る。
[0159] sw=2の場合は、 P— 1を除いて、テーブルに含まれる点は存在しないので、新た に点を計算してテーブルの要素を求める必要はない。このため、テーブル生成部 22 5による処理を含めてテーブル生成部 225及びテーブル格納部 228は、無くてもよい 。この場合は、テーブルサイズは、 P—1以外の点がないため、 0となり、テーブル削 減度合の効果が顕著となる。
[0160] (3) sw=3の場合の演算変換表 320を図 12に示している。ここでは、 sw=4の場合 の演算変換表 330を図 17に示す。 ここで、 Windowの幅は「4ビット」であるので、 w—cは、 16個の値「0」、「1」、「2」、「 3」、「4」、「5」、「6」、「7」、「8」、「一 7」、「一 6」、「一 5」「一 4」、「一 3」、「一 2」及び「 1」のいずれかをとる。
[0161] 次に、 w—cが各値をとる場合について、従来の Window演算、スカラ倍演算部 22 9による Window演算、基本演算順序及び基本演算回数について説明する。
(a) w_c = 0の場合
w—c = 0に対する従来の Window演算は、「R^24R」である。「R 24R」は、変数 Rの値を、 Windowの幅の示すビット(ここでは、 4ビット)だけ、上位にシフトすることを 示している。
[0162] 一方、 w—c = 0に対するスカラ倍演算部 229による Window演算は、「R 24R」及 び「D R+C」である。ここで、「R 24R」については、上述した通りである。また、「 D R+C」は、ダミーの加算であり、 w—c = 0の場合における Window演算に含ま れる基本演算の種類とその数と、他の場合における(つまり、 w— c≠0の場合におけ る) Window演算基本に含まれる基本演算の種類とその数とを一致させるためのもの である。
[0163] ここで、「R 24R」は、スカラ倍演算部 229において、 R^2 XR、 R^2 XR、 R 2
XR、 R 2 XR、により、演算される。
これは、 24R= 2 X (2 X (2 X (2 XR) ) )であることによる。
従って、 w—c = 0に対するスカラ倍演算部 229による Window演算では、 2倍算、 2 倍算、 2倍算、 2倍算、ダミーの加算の順序で、複数の基本演算が行われる。
[0164] このように、 w—c = 0に対するスカラ倍演算部 229による Window演算に含まれる 基本演算の個数は、「5」である。
(b) w— c = l、 3、 5、 7、—7、—5、—3、— 1の場合
w— c= l、 3、 5、 7、—7、—5、—3、— 1の場合、それぞれ、従来の Window演算 は、「R 24R+C」、「R 24R+ 3C」、「R 24 R+5C R24R+ 7C」、「R 24R - 7C 」、「R 24R— 5C」、「R 24R— 3C」、「R 24R— 1C」である。
[0165] 「R^24R+C」は、変数 Rの値を、 Windowの幅の示すビット(ここでは、 4ビット)だ け、上位にシフトし、その後、変数 Rに Cを加算することを示している。その他の演算 についても同様である。
また、 w一 c = l 3 5 7、 一 7、 一 5、 一 3、 一 1の場合におけるスカラ倍演算咅 229 による Window演算は、従来の Window演算と同一である。
[0166] この場合におけるスカラ倍演算部 229による各 Window演算では、 2倍算、 2倍算、 2倍算、 2倍算、加算の順序で、複数の基本演算が行われる。
このように、この場合におけるスカラ倍演算部 229による Window演算に含まれる基 本演算の個数は、「5」である。
(c)w— c = 2 4 6 8 —6 —4 —2の場合
w— c = 2 4 6 8 —6 —4 —2の場合、それぞれ、従来の Window演算は、「 R 24R+ 2C 「R^24R+4C 「R 24R+6C 「R 24R+8C 「R 24R— 6C 「R^24R—4C 「R 24R—2C」である。
[0167] 「R 24R+ 2C」は、変数 Rの値を、 Windowの幅の示すビット(ここでは、 4ビット) だけ、上位にシフトし、その後、変数 Rに 2Cを加算することを示している。その他の演 算についても同様である。
また、 w一 c = 2 4 6 8、 一 6、 一 4、 一 2の場合におけるスカラ倍演算咅 229によ る Window演算は、それぞれ、「R^2 (23 R+C)」、 「R 22 (22 R+C)」、 「R^2 (2 3 R+ 3C)」、 「R— 23 (2R+C)」、 「R 2 (23 R - 3C)」、 「R— 22 (22 R— C)」、 「R 2 (23 R—C)」である。これらの演算結果は、従来の Window演算による結果と、同一 である。
[0168] ここで、例えば、 w— c = 2の場合における「R 2 (23 R+C)」は、スカラ倍演算部 2 29において、 R 2 XR R 2 XR R 2 XR R R+C R 2 XRにより、演算さ れる。
従って、 w—c = 2に対するスカラ倍演算部 229による Window演算では、 2倍算、 2 倍算、 2倍算、加算、 2倍算の順序で、複数の基本演算が行われる。
[0169] このように、 w—c = 2に対するスカラ倍演算部 229による Window演算に含まれる 基本演算の個数は、「5」である。
w_c=4 6 8、 一 6、 一 4、 一 2の場合【こつ!ヽても、図 17【こ示す通りである。
(4)各実施の形態では、べき倍係数をすベて swビットの一定ビット列ごとに分割し て、 swビットの分割情報を生成している力 これに限らない。ビット数が一定でなくて もよい。分割情報のビット数が一定でない場合、分割情報を用いたスカラ倍演算部の 演算処理も一定回数でなくてもよい。この場合は、分割情報ごとの演算処理の回数 は、分割情報のビット長に依存してもよいが、それ以外の分割情報のビット長以外の †青報には依存しない。
[0170] 分割情報のビット数力 ビット長である場合に、分割情報の値に対応する window 演算部は、(a+ 1)回の演算を順次行う。ここで、前記複数の演算のうち(a— + 1) 番目の演算は、楕円曲線 E上の前記加算であり、他の演算は、楕円曲線 E上の 2倍 算である。
また、分割情報のビット数カ¾ビット長である場合に (ここで、 a≠b)、分割情報の値 に対応する window演算部は、(b + 1)回の演算を順次行う。ここで、前記複数の演 算のうち(b— + 1)番目の演算は、楕円曲線 E上の前記加算であり、他の演算は、 楕円曲線 E上の 2倍算である。
[0171] (5)各実施の形態では、 w— c = 0の場合は、 sw回の R^ECD (R)の基本演算の 後、 D^ECA (R,P— 1)を実行している力 ダミーの演算処理は他の点との加算であ つてもよいし、楕円曲線 2倍算であってもよい。
(6)各実施の形態では、方程式は y" 2 = x" 3 + a X x + bの形をしたワイヤーシュトラ ス型の楕円曲線を使用しており、 Jacobian座標を使用しているが、これだけには限ら ない。例えば、他の座標(Projective座標)を使用してもよい。その場合においてもダミ 一演算を付加して、楕円曲線加算と楕円曲線 2倍算の区別をできなくしてもよい。ま た、楕円曲線 2倍算を楕円曲線加算に置き換えて演算可能な Hessian楕円(ヘッセ型 楕円)や Jacobian楕円(ヤコビ型楕円)を使用してもよい。その場合は、楕円曲線加算 及び楕円曲線 2倍算の内部の演算にダミー演算はなくてもよい。
[0172] (7)各実施の形態では、楕円曲線を使用してべき倍演算を実行しているが、超楕 円曲線またはその他の代数曲線のヤコビアン群のべき倍演算を実行してもよい。
(8)本発明は、各実施の形態の楕円曲線演算部を楕円 ElGamal暗号、 PSEC— KEMやその他の楕円曲線またはその他の代数曲線上の暗号方式に適用してもよい 例えば、暗号方式の暗号ィ匕アルゴリズムにおける秘密鍵をべき倍係数としたへぎ倍 演算に、各実施の形態の楕円曲線演算部を適用し、暗号方式の復号化アルゴリズム における秘密鍵をべき倍係数としたへぎ倍演算に、各実施の形態の楕円曲線演算 部を適用してもよい。
[0173] また、楕円 DSA署名方式、楕円 ElGamal署名方式、楕円 NR署名方式、楕円 MR 署名方式、楕円 PV署名方式、楕円 AO署名方式などの楕円曲線上の署名方式、も しくは、代数曲線上の署名方式に、各実施の形態の楕円曲線演算部を適用してもよ い。
上述したように、楕円曲線上の署名方式の署名生成アルゴリズムにおける乱数をべ き倍係数としたべき倍演算に楕円曲線演算部を適用してもよい。
[0174] 楕円 ElGamal暗号や楕円 DSA署名方式に関しては、非特許文献 3が詳しい。
(9)実施の形態 1のポイント発行システム 10では、利用者が商品を購入したりサー ビスの提供を受けた場合に、販売者やサービス提供者カゝら受け取る特典情報であり 、次に利用者が商品を購入したりサービスの提供を受ける際に、販売者やサービス 提供者への対価の支払いの一部又は全部として利用されるポイントを秘密通信の対 象とし、ポイント発行装置 200は、生成したポイントを暗号ィ匕し、暗号ィ匕ポイントを IC力 ード 100へ送信し、 ICカード 100は、暗号化ポイントを復号して復号ポイントを生成し 、生成した復号ポイントを記憶するようにしている。
[0175] しかし、秘密通信の対象は、上記のポイントには限定されない。
次に示すような金銭の決済システムに適用することもできる。
例えば、通貨の代わりに用いることができる電子マネーを秘密通信の対象とし、 IC カードは、電子マネーを記憶しており、利用者が、商品を購入する際に、 ICカードは 、商品の購入額に相当する電子マネーを暗号ィ匕して送信し、また、内部に記憶して V、る電子マネーから送信した分を減じる。ポイント発行装置 200に代えて同様の構成 を有するレジスタ装置は、暗号ィ匕電子マネーを受信し、受信した暗号化電子マネー を復号して電子マネーを再生し、記憶する。
[0176] また、上記の ICカードに代えて、美術館や博物館などの各種施設を利用のための I Cカードタイプの電子チケットが、上記のように、電子マネーに相当する情報を記憶し ているとしてもよい。各種施設の入り口に設けられた入場管理装置は、各種施設の利 用料金に相当する額の電子マネーを要求し、前記電子チケットは、要求された額の 電子マネーを暗号化して送信し、入場管理装置は、暗号化電子マネーを受信し、受 信した暗号化電子マネーを復号して電子マネーを生成し、記憶するとしてもよ ヽ。
[0177] また、鉄道、ノ スなどの交通機関を利用する際に用いられる ICカードタイプの IC力 ード乗車券が、上記のように、電子マネーに相当する情報を記憶しているとしてもよ い。交通機関の駅の入り口に設けられた入場管理装置は、当該駅を識別する識別情 報を送信し、 ICカード乗車券は、前記識別情報を受信し、記憶する。交通機関の駅 の出口に設けられた出場管理装置は、前記識別情報を ICカード乗車券力も受信し、 受信した識別情報と当該出場管理装置が設けられた駅とを用いて、料金表により乗 車料金を算出し、算出した乗車料金に相当する額の電子マネーを要求し、 ICカード 乗車券は、要求された額の電子マネーを暗号ィ匕して送信し、出場管理装置は、暗号 化電子マネーを受信し、受信した暗号化電子マネーを復号して電子マネーを生成し 、,じ' I息 る。
[0178] 上記における暗号ィ匕及び復号ィ匕において、楕円曲線上の離散対数問題が安全性 の根拠として用いられ、楕円べき倍演算が行われる。この楕円べき倍演算を行う各装 置は、楕円曲線演算部 208と同一の楕円曲線演算部を備えている。
上記の各装置は、素数 pを法とする剰余体 F上で定義された楕円曲線 E上の離散 対数問題を根拠として、楕円曲線 E上の点 Cに、素数 p未満の正整数である係数 kを 乗じて点 k * Cを算出する楕円曲線演算を用いて、情報を安全に扱う情報セキユリテ ィ装置である。
[0179] (10)上記のような金銭の決済システムにおいて、送信される金銭の額、送信元、送 信先などについては、その正当性の証明が要求される場合がある。このような場合に ぉ 、て、実施の形態 2に示すデジタル署名や署名検証が適用される。
このようなデジタル署名や署名検証において、楕円曲線上の離散対数問題が安全 性の根拠として用いれ、楕円べき倍演算が行われる。この楕円べき倍演算を行う各 装置は、楕円曲線演算部 208と同一の楕円曲線演算部を備えている。
[0180] 上記の各装置は、素数 pを法とする剰余体 F上で定義された楕円曲線 E上の離散 対数問題を根拠として、楕円曲線 E上の点 Cに、素数 p未満の正整数である係数 kを 乗じて点 k * Cを算出する楕円曲線演算を用いて、情報を確実に扱う情報セキユリテ ィ装置である。
(11)秘密通信の対象は、上記のようなポイントや電子マネーなどには限定されな い。
[0181] 本発明は、コンテンツ暗号ィ匕装置とコンテンツ再生装置とから構成されるコンテンツ 配信システムにおいて適用され、例えば、映画、動画像、音声、音楽、小説、データ ベースなどのデジタル情報を秘密通信の対象としてもよい。これらのコンテンツは、コ ンテンッ供給者から利用者に対して、これらのコンテンツを記録して ヽる記録媒体を 販売したり、レンタルすることにより、提供される。また、デジタル放送やインターネット を介して、コンテンツ供給者から利用者に提供される。
[0182] コンテンツ供給者の有するコンテンツ暗号ィ匕装置は、デジタル著作物である映画を 暗号ィ匕して DVDに記録する。利用者の有するコンテンツ再生装置は、 DVDから暗 号化デジタル著作物を読み出し、復号して、映画を生成し、生成した映画を音声及 び映像として再生して、表示及び出力する。
上記における暗号ィ匕及び復号ィ匕において、楕円曲線上の離散対数問題が安全性 の根拠として用いられ、楕円べき倍演算が行われる。この楕円べき倍演算を行うコン テンッ暗号ィ匕装置とコンテンツ再生装置は、楕円曲線演算部 208と同一の楕円曲線 演算部を備えている。
[0183] 上記の例において、コンテンツを暗号化及び復号するためのコンテンツ鍵を、実施 の形態 1に示す秘密通信の対象としてもよい。この場合、コンテンツ鍵は、実施の形 態 1に示す方法と同様にして、暗号化され、また復号される。
この場合に、コンテンツは、コンテンツ鍵により、後述する共通鍵暗号方式を用いて 、暗号化され、復号される。
[0184] 上記の各装置は、素数 pを法とする剰余体 F上で定義された楕円曲線 E上の離散 対数問題を根拠として、楕円曲線 E上の点 Cに、素数 p未満の正整数である係数 kを 乗じて点 k * Cを算出する楕円曲線演算を用いて、情報を安全に扱う情報セキユリテ ィ装置である。 (12)上記のコンテンツ配信システムにおいて、デジタル著作物を暗号ィ匕する際に 用いる暗号化技術として、例えば、 DES (Data Encryption Standard)又は AES (Adv anced Encryption Standard)を用いるとしてもよい。 DES及び AESなどの暗号化技術 は、いわゆる共通鍵暗号方式 (又は秘密鍵暗号方式)と呼ばれる。
[0185] 上記のコンテンツ配信システムにおいて、このような共通鍵暗号方式を採用する場 合に、コンテンツ配信システムを構成する暗号ィ匕装置と再生装置との間で、いかにし て安全に同一の秘密鍵を共有するかが課題となる。
実施の形態 3に示す鍵共有システムは、この課題を解消するための手段を提供す る。
実施の形態 3に示す鍵共有システムにより、コンテンツ暗号化装置(実施の形態 3 のユーザ A装置に相当する)とコンテンツ再生装置(実施の形態 3のユーザ B装置に 相当する)との間で、第三者に知られることなぐ秘密鍵を共有し、その後は、共有鍵 暗号方式による暗号ィ匕アルゴリズムを適用し、コンテンツ暗号ィ匕装置において、共有 して 、る秘密鍵を用いて、デジタル著作物を暗号ィ匕して暗号ィ匕デジタル著作物を生 成し、次に、コンテンツ再生装置において、共有している秘密鍵を用いて、暗号化デ ジタル著作物を復号する。
[0186] 上記における鍵共有において、楕円曲線上の離散対数問題が安全性の根拠とし て用いられ、楕円べき倍演算が行われる。この楕円べき倍演算を行うコンテンツ暗号 化装置及びコンテンツ再生装置は、楕円曲線演算部 208と同一の楕円曲線演算部 を備えている。
(13)上記の各実施の形態及び変形例は、次に示すような場合において適用され る。
(a)各実施の形態及び変形例は、秘密のメッセージ伝送において適用される。これ については、上記において、秘密通信として説明をした。
[0187] (b)各実施の形態及び変形例は、認証にぉ 、て適用される。認証とは、メッセージ が自称どおりの人物によって送られたこと、またメッセージが改竄されな力つたというこ との検証である。また、各実施の形態及び変形例は、身分の証明において適用され る。身分の証明とは、例えば、データへのアクセス権、又は施設へのアクセス権 (入室 権)を持つことの証明、又は自分が主張どおりの人物であることの証明である。さらに 、各実施の形態及び変形例は、否認防止において適用される。否認防止とは、例え ば、実は何かに同意したのに、同意していないと主張する者に対抗することをいう。
[0188] (c)各実施の形態及び変形例は、鍵交換にぉ 、て適用される。鍵交換とは、例え ば、 2人の人が放送電波を使ってある秘密鍵暗号方式で使うための秘密鍵に同意す ることである。上記において、鍵共有として説明をした。
(d)各実施の形態及び変形例は、硬貨投げ (ビットコミットメントとも呼ばれる)にお いて適用される。硬貨投げとは、例えば、別々の巿に住む 2人のチェスプレーヤが、 電子メールで、誰が白を持つのかを決めることである。
[0189] (e)各実施の形態及び変形例は、秘密分散において適用される。秘密分散とは、 例えば、ある秘密の情報が、共に働く k人の人によって利用可能であるが、 k— 1人の 人では、利用できないようにすることを言う。
(f)各実施の形態及び変形例は、零知識証明において適用される。零知識証明と は、例えば、ある人が、数論的あるいは組合せ論的問題を解くことに成功したことを、 解が何であるかのわずかの情報さえ与えることなぐ他人にこのことを納得させること を言う。
[0190] (14)上記の各装置は、具体的には、マイクロプロセッサ、 ROM, RAM,ハードデ イスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュー タシステムである。前記 RAM又は前記ハードディスクユニットには、コンピュータプロ グラムが記憶されている。ここで、コンピュータプログラムは、所定の機能を達成する ために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成さ れたものである。前記マイクロプロセッサ力 前記コンピュータプログラムに従って動 作することにより、各装置は、その機能を達成する。つまり、前記マイクロプロセッサは 、前記コンピュータプログラムに含まれる各命令を 1個ずつ読み出し、読み出した命 令を解読し、解読結果に従って動作する。
[0191] (15)上記の各装置を構成する構成要素の一部又は全部は、 1個のシステム LSI (L arge Scale Integration:大規模集積回路)から構成されているとしてもよい。システム L SIは、複数の構成部を 1個のチップ上に集積して製造された超多機能 LSIであり、具 体的には、マイクロプロセッサ、 ROM, RAMなどを含んで構成されるコンピュータシ ステムである。前記 RAMには、コンピュータプログラムが記憶されている。前記マイク 口プロセッサ力 前記コンピュータプログラムに従って動作することにより、システム LS Iは、その機能を達成する。
[0192] また、上記の各装置を構成する構成要素の各部は、個別に 1チップィ匕されても良い し、一部又は全てを含むように 1チップ化されてもよい。また、ここでは、 LSIとした力 集積度の違いにより、 IC、システム LSI、スーパー LSI、ウルトラ LSIと呼称されること もめる。
また、集積回路化の手法は LSIに限るものではなぐ専用回路又は汎用プロセッサ で実現してもよい。 LSI製造後に、プログラムすることが可能な FPGA (Field Program mable Gate Array)や LSI内部の回路セルの接続や設定を再構成可能なリコンフィギ ュラブノレ ·プロセッサを利用しても良!、。
[0193] (16)上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能な ICカード又は単体のモジュール力も構成されて 、るとしてもよ 、。前記 ICカード又は 前記モジュールは、マイクロプロセッサ、 ROM, RAM,などから構成されるコンビュ ータシステムである。前記 ICカード又は前記モジュールは、上記の超多機能 LSIを 含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作するこ とにより、前記 ICカード又は前記モジュールは、その機能を達成する。この ICカード 又はこのモジュールは、耐タンパ性を有するとしてもよ!/、。
[0194] (17)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンビュ ータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプ ログラム力もなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ 読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、 CD— RO M、 MO、 DVD, DVD-ROM, DVD -RAM, BD (Blu— ray Disc)、半導体メ モリなど、〖こ記録したものとしてもよい。また、これらの記録媒体に記録されている前 記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
[0195] また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信 回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送 等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって 、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサ は、前記コンピュータプログラムに従って動作するとしてもよい。
[0196] また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送する ことにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由し て移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい
(18)上述したように、本発明は、予め与えられる秘密情報と入力である楕円曲線上 の点に対し、楕円曲線上のスカラ倍演算を実行する楕円曲線演算装置であって、前 記秘密情報を分割して分割情報を生成する分割情報生成部と、 2個の前記楕円曲 線上の点に対し、前記楕円曲線の群において加算した結果得られる点を生成する 楕円曲線加算部と、 1個の前記楕円曲線上の点に対し、前記楕円曲線の群におい て 2倍した結果得られる点を生成する楕円曲線 2倍算部と、第 1の前記楕円曲線上の 点と前記分割情報に基づいて、前記楕円曲線加算部と前記楕円曲線 2倍算部を使 用して第 2の前記楕円曲線上の点を生成するスカラ倍演算部と、を備え、前記スカラ 倍演算部は、前記楕円曲線加算部と前記楕円曲線 2倍算部を使用する回数を合計 した値が前記秘密情報のビット長以外の情報に依らず一定になるように制御し、前記 楕円曲線加算部と前記楕円曲線 2倍算部の各々は、楕円曲線の定義体における乗 算を実行する乗算手段、前記定義体における 2乗算を実行する 2乗算手段、前記定 義体における加算を実行する加算手段を有し、前記楕円曲線加算部と前記楕円曲 線 2倍算部は、実行する前記乗算、前記 2乗算及び前記加算の順序が同じであるこ とを特徴とする。
[0197] ここで、前記スカラ倍演算部は、一つの前記分割情報に基づ 、て、前記楕円曲線 加算部と前記楕円曲線 2倍算部を使用する回数を合計した値が前記分割情報のビ ット長以外の情報に依らず一定になるように制御してもよ 、。
ここで、前記楕円曲線演算装置は、さらに 1以上の予め与えられた正整数に対して 、前記正整数をスカラとする前記楕円曲線上の点のスカラ倍点を計算し、その結果の それぞれをテーブルに格納するテーブル生成部を備え、前記楕円曲線加算部で使 用する 2個の前記楕円曲線上の点の内、少なくとも一つは前記テーブルに格納され て 、る前記スカラ倍点であるとしてもよ 、。
[0198] ここで、前記分割情報生成部は、前記秘密情報を予め与えられたビット数をもつ複 数の前記分割情報に分割してもよ ヽ。
ここで、前記楕円曲線 2倍算部は、さらに計算結果に影響のないダミーとなる前記 乗算を実行するダミー乗算手段を有するとしてもよ 、。
ここで、前記楕円曲線 2倍算部は、さらに定義体の元の 2乗算した結果を、前記元と 前記元の乗算を使用して得る 2乗算代替手段を有するとしてもよい。
[0199] ここで、前記正整数は奇数であるとしてもよい。
ここで、前記分割情報生成部は、複数の swビットの前記分割情報を生成し、前記ス カラ倍演算部は、(sw+ 1)回の演算処理を実行し、前記分割情報 wが 0以外かつ、 前記分割情報 wが 2"t (tは非負整数)で割り切れて、 2" (t+ 1)で割り切れない場合 に、(sw— + 1)番目の前記演算処理は前記楕円曲線加算部を使用し、その他の前 記演算処理は前記楕円曲線 2倍算部を使用するとしてもよい。
[0200] また、本発明は、予め与えられる秘密情報と入力である楕円曲線上の点に対し、楕 円曲線上のスカラ倍演算を実行する楕円曲線演算方法であって、前記秘密情報を 分割して分割情報を生成する分割情報生成ステップと、 2個の前記楕円曲線上の点 に対し、前記楕円曲線の群において加算した結果得られる点を生成する楕円曲線 加算ステップと、 1個の前記楕円曲線上の点に対し、前記楕円曲線の群において 2 倍した結果得られる点を生成する楕円曲線 2倍算ステップと、第 1の前記楕円曲線上 の点と前記分割情報に基づいて、前記楕円曲線加算ステップと前記楕円曲線 2倍算 ステップを使用して第 2の前記楕円曲線上の点を生成するスカラ倍演算ステップとを 含み、前記スカラ倍演算ステップは、前記楕円曲線加算ステップと前記楕円曲線 2倍 算ステップを使用する回数を合計した値が前記秘密情報のビット長以外の情報に依 らず一定になるように制御し、前記楕円曲線加算ステップと前記楕円曲線 2倍算ステ ップの各々は、楕円曲線の定義体における乗算を実行する乗算手段、前記定義体 における 2乗算を実行する 2乗算手段、前記定義体における加算を実行する加算手 段を有し、前記楕円曲線加算ステップと前記楕円曲線 2倍算ステップは、実行する前 記乗算、前記 2乗算及び前記加算の順序が同じであることを特徴とする。
[0201] ここで、前記スカラ倍演算ステップは、一つの前記分割情報に基づ 、て、前記楕円 曲線加算部と前記楕円曲線 2倍算部を使用する回数を合計した値が前記秘密情報 に依らず一定になるように制御するとしてもよ 、。
ここで、前記楕円曲線演算方法は、さらに 1以上の予め与えられた正整数に対して 、前記正整数をスカラとする前記楕円曲線上の点のスカラ倍点を計算し、その結果の それぞれをテーブルに格納するテーブル生成ステップを含み、前記楕円曲線加算ス テツプで使用する 2個の前記楕円曲線上の点の内、少なくとも一つは前記テーブル に格納されて 、る前記スカラ倍点であるとしてもよ!/、。
[0202] ここで、前記分割情報生成ステップは、前記秘密情報を予め与えられたビット数をも つ複数の前記分割情報に分割するとしてもよ ヽ。
ここで、前記正整数は奇数であるとしてもよい。
ここで、前記分割情報生成ステップは、複数の swビットの前記分割情報を生成し、 前記スカラ倍演算ステップは、(sw+ 1)回の演算処理を実行し、前記分割情報 wが 0以外かつ、前記分割情報 wが 2"t (tは非負整数)で割り切れて、 2" (t+ l)で割り切 れない場合に、 (sw-t+ 1)番目の前記演算処理は前記楕円曲線加算ステップを使 用し、その他の前記演算処理は前記楕円曲線 2倍算ステップを使用するとしてもよい
[0203] また、本発明は、予め与えられる秘密情報と入力である楕円曲線上の点に対し、楕 円曲線上のスカラ倍演算を実行する楕円曲線演算装置に実行させるプログラムであ つて、前記秘密情報を分割して分割情報を生成する分割情報生成ステップと、 2個の 前記楕円曲線上の点に対し、前記楕円曲線の群において加算した結果得られる点 を生成する楕円曲線加算ステップと、 1個の前記楕円曲線上の点に対し、前記楕円 曲線の群において 2倍した結果得られる点を生成する楕円曲線 2倍算ステップと、第 1の前記楕円曲線上の点と前記分割情報に基づいて、前記楕円曲線加算ステップと 前記楕円曲線 2倍算ステップを使用して第 2の前記楕円曲線上の点を生成するスカ ラ倍演算ステップとを前記楕円曲線演算装置に実行させ、前記スカラ倍演算ステップ は、前記楕円曲線加算ステップと前記楕円曲線 2倍算ステップを使用する回数を合 計した値が前記秘密情報のビット長以外の情報に依らず一定になるように制御し、前 記楕円曲線加算ステップと前記楕円曲線 2倍算ステップの各々は、楕円曲線の定義 体における乗算を実行する乗算手段、前記定義体における 2乗算を実行する 2乗算 手段、前記定義体における加算を実行する加算手段を有し、前記楕円曲線加算ス テツプと前記楕円曲線 2倍算ステップは、実行する前記乗算、前記 2乗算及び前記 加算の順序が同じであることを特徴とする。
[0204] ここで、前記スカラ倍演算ステップは、一つの前記分割情報に基づ 、て、前記楕円 曲線加算部と前記楕円曲線 2倍算部を使用する回数を合計した値が前記秘密情報 に依らず一定になるように制御するとしてもよ 、。
ここで、前記楕円曲線演算方法は、さらに 1以上の予め与えられた正整数に対して 、前記正整数をスカラとする前記楕円曲線上の点のスカラ倍点を計算し、その結果の それぞれをテーブルに格納するテーブル生成ステップを含み、前記楕円曲線加算ス テツプで使用する 2個の前記楕円曲線上の点の内、少なくとも一つは前記テーブル に格納されて 、る前記スカラ倍点であるとしてもよ!/、。
[0205] ここで、前記分割情報生成ステップは、前記秘密情報を予め与えられたビット数をも つ複数の前記分割情報に分割するとしてもよ ヽ。
ここで、前記正整数は奇数であるとしてもよい。
ここで、前記分割情報生成ステップは、複数の swビットの前記分割情報を生成し、 前記スカラ倍演算ステップは、(sw+ 1)回の演算処理を実行し、前記分割情報 wが 0以外かつ、前記分割情報 wが 2"t (tは非負整数)で割り切れて、 2" (t+ l)で割り切 れない場合に、 (sw-t+ 1)番目の前記演算処理は前記楕円曲線加算ステップを使 用し、その他の前記演算処理は前記楕円曲線 2倍算ステップを使用するとしてもよい
[0206] また、本発明は、予め与えられる秘密情報と入力である楕円曲線上の点に対し、楕 円曲線上のスカラ倍演算を実行する楕円曲線演算装置の集積回路であって、前記 秘密情報を分割して分割情報を生成する分割情報生成部と、 2個の前記楕円曲線 上の点に対し、前記楕円曲線の群において加算した結果得られる点を生成する楕 円曲線加算部と、 1個の前記楕円曲線上の点に対し、前記楕円曲線の群において 2 倍した結果得られる点を生成する楕円曲線 2倍算部と、第 1の前記楕円曲線上の点 と前記分割情報に基づいて、前記楕円曲線加算部と前記楕円曲線 2倍算部を使用 して第 2の前記楕円曲線上の点を生成するスカラ倍演算部と、を備え、前記スカラ倍 演算部は、前記楕円曲線加算部と前記楕円曲線 2倍算部を使用する回数を合計し た値が前記秘密情報のビット長以外の情報に依らず一定になるように制御し、前記 楕円曲線加算部と前記楕円曲線 2倍算部の各々は、楕円曲線の定義体における乗 算を実行する乗算手段、前記定義体における 2乗算を実行する 2乗算手段、前記定 義体における加算を実行する加算手段を有し、前記楕円曲線加算部と前記楕円曲 線 2倍算部は、実行する前記乗算、前記 2乗算及び前記加算の順序が同じであるこ とを特徴とする。
[0207] ここで、前記スカラ倍演算部は、一つの前記分割情報に基づ 、て、前記楕円曲線 加算部と前記楕円曲線 2倍算部を使用する回数を合計した値が前記秘密情報に依 らず一定になるように制御するとしてもよ 、。
(19)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよ!/、。 産業上の利用可能性
[0208] 以上説明したように、本発明によると、単純電力解析攻撃により安全性を低下する ことを防ぐことができる。
本発明を構成する各装置、各方法及び各コンピュータプログラムは、情報を安全に 確実に扱う必要があるあらゆる産業において、経営的に、また継続的及び反復的に 使用することができる。また、本発明を構成する各装置は、電器機器製造産業にお いて、経営的に、また継続的及び反復的に、製造し、販売することができる。

Claims

請求の範囲
[1] 素数 pを法とする剰余体 F上で定義された楕円曲線 E上の離散対数問題を根拠とし て、楕円曲線 E上の点 Cに、素数 p未満の正整数である係数 kを乗じて点 k * Cを算 出する楕円曲線演算を用いて、情報を安全又は確実に扱う情報セキュリティ装置で あって、
楕円曲線 E上の点 Cを記憶して 、る点記憶手段と、
係数 kの全桁の値を記憶して 、る桁記憶手段と、
桁記憶手段から 1個の桁の値 wを取得する取得手段と、
取得した前記桁により表現しうる値の種類の数と同数の乗算手段と、
取得した前記桁の値 wに対応する乗算手段を選択する選択手段と、
係数 kの全ての桁について、前記取得手段、前記選択手段及び前記乗算手段に 対して、 1個の桁の値 wの取得と、取得した桁の値 wに対応する乗算手段の選択と、 選択された乗算手段による乗算とを繰り返すように制御する繰返制御手段とを備え、 各乗算手段は、楕円曲線 E上において、前記点 Cに取得した前記桁の値 wを乗じ て得られた乗算結果を、当該桁に相応する位置にぉ 、て加算し、
取得した前記桁の値 wが で割り切れ、 2t+1で割り切れない条件を満たす非負整 数 tが存在する場合に、当該桁の値 wに対応する前記乗算手段は、楕円曲線 E上に おいて、点 Qに wZ^を乗じて得られる点の加算又は点 Qに I W Iを乗じて得ら れる点の減算を含む演算を行う
ことを特徴とする情報セキュリティ装置。
[2] 取得した前記桁は、 swビット長であり、
前記非負整数 tが存在する場合に、前記桁の値 wに対応する前記乗算手段は、 (s w+ 1)回の演算を順次行い、前記複数の演算のうち(sw— + 1)番目の演算は、楕 円曲線 E上の前記加算又は前記減算であり、他の演算は、楕円曲線 E上の 2倍算で ある
ことを特徴とする請求項 1に記載の情報セキュリティ装置。
[3] 前記情報セキュリティ装置は、さらに、点 Qを初期の加算点とし、加算点へ 2 * Qを 加算して新たな加算点を得ることを繰り返すことにより、点 Qを除く 2SW1個の加算点を 生成するテーブル生成手段を含み、
非負整数 tが存在する場合に、当該桁の値 wに対応する前記乗算手段は、点 Qに w/ 又は I W Iを乗じて得られる点として、前記テーブル生成手段により生成 された前記加算点を用いる
ことを特徴とする請求項 2に記載の情報セキュリティ装置。
[4] 取得した前記桁は、 3ビット長であり、
前記桁の値 wが 2である場合に、対応する乗算手段は、楕円曲線 E上の 2倍算、 2 倍算、加算及び 2倍算をこの順序で行い、前記加算は、前記点 Cを加える演算であり 前記桁の値 wが 4である場合に、対応する乗算手段は、楕円曲線 E上の 2倍算、加 算、 2倍算及び 2倍算をこの順序で行い、前記加算は、前記点 Cを加える演算であり 前記桁の値 wがー 2である場合に、対応する乗算手段は、楕円曲線 E上の 2倍算、 2倍算、減算及び 2倍算をこの順序で行い、前記減算は、前記点 Cを減ずる演算であ る
ことを特徴とする請求項 2に記載の情報セキュリティ装置。
[5] 取得した前記桁は、 4ビット長であり、
前記桁の値 wが 2である場合に、対応する乗算手段は、楕円曲線 E上の 2倍算、 2 倍算、 2倍算、加算及び 2倍算をこの順序で行い、前記加算は、前記点 Cを加える演 算であり、
前記桁の値 wが 4である場合に、対応する乗算手段は、楕円曲線 E上の 2倍算、 2 倍算、加算、 2倍算及び 2倍算をこの順序で行い、前記加算は、前記点 Cを加える演 算であり、
前記桁の値 wが 6である場合に、対応する乗算手段は、楕円曲線 E上の 2倍算、 2 倍算、 2倍算、加算及び 2倍算をこの順序で行い、前記加算は、点 3 * Cを加える演 算であり、
前記桁の値 wが 8である場合に、対応する乗算手段は、楕円曲線 E上の 2倍算、加 算、 2倍算、 2倍算及び 2倍算をこの順序で行い、前記加算は、前記点 Cを加える演 算であり、
前記桁の値 wがー 6である場合に、対応する乗算手段は、楕円曲線 E上の 2倍算、 2倍算、 2倍算、減算及び 2倍算をこの順序で行い、前記減算は、点 3 * Cを減ずる 演算であり、
前記桁の値 wがー 4である場合に、対応する乗算手段は、楕円曲線 E上の 2倍算、 2倍算、減算、 2倍算及び 2倍算をこの順序で行い、前記減算は、点 Cを減ずる演算 であり、
前記桁の値 wがー 2である場合に、対応する乗算手段は、楕円曲線 E上の 2倍算、 2倍算、 2倍算、減算及び 2倍算をこの順序で行い、前記減算は、点 Cを減ずる演算 である
ことを特徴とする請求項 2に記載の情報セキュリティ装置。
[6] 前記加算又は前記減算及び前記 2倍算は、それぞれ、同じ順序で同じ種類の演算 を実行するように、ダミーの演算を含む
ことを特徴とする請求項 2に記載の情報セキュリティ装置。
[7] 取得した前記桁が aビット長である場合に、前記非負整数 tが存在するときに、前記 桁の値 wに対応する前記乗算手段は、(a+ 1)回の演算を順次行い、前記複数の演 算のうち(a— + 1)番目の演算は、楕円曲線 E上の前記加算又は前記減算であり、 他の演算は、楕円曲線 E上の 2倍算であり、
取得した前記桁が bビット長である場合に、前記非負整数 tが存在するときに、前記 桁の値 wに対応する前記乗算手段は、(b+ 1)回の演算を順次行い、前記複数の演 算のうち(b— + 1)番目の演算は、楕円曲線 E上の前記加算又は前記減算であり、 他の演算は、楕円曲線 E上の 2倍算である
ことを特徴とする請求項 1に記載の情報セキュリティ装置。
[8] 前記情報セキュリティ装置は、暗号化装置であって、
点 k* Cを算出する楕円曲線演算を用いて、情報を暗号ィ匕する
ことを特徴とする請求項 1に記載の情報セキュリティ装置。
[9] 前記情報セキュリティ装置は、復号装置であって、
点 k* Cを算出する楕円曲線演算を用いて、暗号化された情報を復号する ことを特徴とする請求項 1に記載の情報セキュリティ装置。
[10] 前記情報セキュリティ装置は、デジタル署名生成装置であって、
点 k* Cを算出する楕円曲線演算を用いて、情報にデジタル署名を施す ことを特徴とする請求項 1に記載の情報セキュリティ装置。
[11] 前記情報セキュリティ装置は、デジタル署名検証装置であって、
点 k * Cを算出する楕円曲線演算を用 Vヽて、デジタル署名の検証を行う ことを特徴とする請求項 1に記載の情報セキュリティ装置。
[12] 前記情報セキュリティ装置は、鍵共有装置であって、
点 k* Cを算出する楕円曲線演算を用いて、他の鍵共有装置との間で、共有する 鍵を生成する
ことを特徴とする請求項 1に記載の情報セキュリティ装置。
[13] 素数 pを法とする剰余体 F上で定義された楕円曲線 E上の離散対数問題を根拠とし て、楕円曲線 E上の点 Cに、素数 p未満の正整数である係数 kを乗じて点 k * Cを算 出する楕円曲線演算装置であって、
楕円曲線 E上の点 Cを記憶して 、る点記憶手段と、
係数 kの全桁の値を記憶して 、る桁記憶手段と、
桁記憶手段から 1個の桁の値 wを取得する取得手段と、
取得した前記桁により表現しうる値の種類の数と同数の乗算手段と、
取得した前記桁の値 wに対応する乗算手段を選択する選択手段と、
係数 kの全ての桁について、前記取得手段、前記選択手段及び前記乗算手段に 対して、 1個の桁の値 wの取得と、取得した桁の値 wに対応する乗算手段の選択と、 選択された乗算手段による乗算とを繰り返すように制御する繰返制御手段とを備え、 各乗算手段は、楕円曲線 E上において、前記点 Cに取得した前記桁の値 wを乗じ て得られた乗算結果を、当該桁に相応する位置にぉ 、て加算し、
取得した前記桁の値 wが で割り切れ、 2t+1で割り切れない条件を満たす非負整 数 tが存在する場合に、当該桁の値 wに対応する前記乗算手段は、楕円曲線 E上に おいて、点 Qに w/ を乗じて得られる点の加算又は点 Qに I W Iを乗じて得ら れる点の減算を含む演算を行う ことを特徴とする楕円曲線演算装置。
[14] 素数 pを法とする剰余体 F上で定義された楕円曲線 E上の離散対数問題を根拠とし て、楕円曲線 E上の点 Cに、素数 p未満の正整数である係数 kを乗じて点 k * Cを算 出する楕円曲線演算のための集積回路であって、
楕円曲線 E上の点 Cを記憶して 、る点記憶手段と、
係数 kの全桁の値を記憶して 、る桁記憶手段と、
桁記憶手段から 1個の桁の値 wを取得する取得手段と、
取得した前記桁により表現しうる値の種類の数と同数の乗算手段と、
取得した前記桁の値 wに対応する乗算手段を選択する選択手段と、
係数 kの全ての桁について、前記取得手段、前記選択手段及び前記乗算手段に 対して、 1個の桁の値 wの取得と、取得した桁の値 wに対応する乗算手段の選択と、 選択された乗算手段による乗算とを繰り返すように制御する繰返制御手段とを備え、 各乗算手段は、楕円曲線 E上において、前記点 Cに取得した前記桁の値 wを乗じ て得られた乗算結果を、当該桁に相応する位置にぉ 、て加算し、
取得した前記桁の値 wが で割り切れ、 2t+1で割り切れない条件を満たす非負整 数 tが存在する場合に、当該桁の値 wに対応する前記乗算手段は、楕円曲線 E上に おいて、点 Qに w/ を乗じて得られる点の加算又は点 Qに I W Iを乗じて得ら れる点の減算を含む演算を行う
ことを特徴とする集積回路。
[15] 素数 pを法とする剰余体 F上で定義された楕円曲線 E上の離散対数問題を根拠とし て、楕円曲線 E上の点 Cに、素数 p未満の正整数である係数 kを乗じて点 k * Cを算 出する楕円曲線演算を用いて、情報を安全又は確実に扱う情報セキュリティ装置で 用いられる方法であって、
前記情報セキュリティ装置は、楕円曲線 E上の点 Cを記憶している点記憶手段と、 係数 kの全桁の値を記憶している桁記憶手段とを備え、
前記方法は、
桁記憶手段から 1個の桁の値 wを取得する取得ステップと、
取得した前記桁により表現しうる値の種類の数と同数の乗算ステップと、 取得した前記桁の値 wに対応する乗算ステップを選択する選択ステップと、 係数 kの全ての桁について、前記取得ステップ、前記選択ステップ及び前記乗算ス テツプに対して、 1個の桁の値 wの取得と、取得した桁の値 wに対応する乗算ステツ プの選択と、選択された乗算ステップによる乗算とを繰り返すように制御する繰返制 御ステップとを含み、
各乗算ステップは、楕円曲線 E上において、前記点 Cに取得した前記桁の値 wを乗 じて得られた乗算結果を、当該桁に相応する位置にぉ 、て加算し、
取得した前記桁の値 wが で割り切れ、 2t+1で割り切れない条件を満たす非負整 数 tが存在する場合に、当該桁の値 wに対応する前記乗算ステップは、楕円曲線 E 上において、点 Qに wZ^を乗じて得られる点の加算又は点 Qに I W Iを乗じ て得られる点の減算を含む演算を行う
ことを特徴とする方法。
素数 Pを法とする剰余体 F上で定義された楕円曲線 E上の離散対数問題を根拠とし て、楕円曲線 E上の点 Cに、素数 p未満の正整数である係数 kを乗じて点 k * Cを算 出する楕円曲線演算を用いて、情報を安全又は確実に扱う情報セキュリティ装置で 用いられるコンピュータプログラムであって、
前記情報セキュリティ装置は、楕円曲線 E上の点 Cを記憶している点記憶手段と、 係数 kの全桁の値を記憶している桁記憶手段とを備え、
前記コンピュータプログラムは、
桁記憶手段から 1個の桁の値 wを取得する取得ステップと、
取得した前記桁により表現しうる値の種類の数と同数の乗算ステップと、 取得した前記桁の値 wに対応する乗算ステップを選択する選択ステップと、 係数 kの全ての桁について、前記取得ステップ、前記選択ステップ及び前記乗算ス テツプに対して、 1個の桁の値 wの取得と、取得した桁の値 wに対応する乗算ステツ プの選択と、選択された乗算ステップによる乗算とを繰り返すように制御する繰返制 御ステップとを含み、
各乗算ステップは、楕円曲線 E上において、前記点 Cに取得した前記桁の値 wを乗 じて得られた乗算結果を、当該桁に相応する位置にぉ 、て加算し、 取得した前記桁の値 wが で割り切れ、 2t+1で割り切れない条件を満たす非負整 数 tが存在する場合に、当該桁の値 wに対応する前記乗算ステップは、楕円曲線 E 上において、点 Qに wZ^を乗じて得られる点の加算又は点 Qに I W Iを乗じ て得られる点の減算を含む演算を行う
ことを特徴とするコンピュータプログラム。
前記コンピュータプログラムは、コンピュータ読み取り可能な記録媒体に記録されて いる
ことを特徴とする請求項 16に記載のコンピュータプログラム。
PCT/JP2006/308598 2005-04-27 2006-04-25 情報セキュリティ装置及び楕円曲線演算装置 WO2006118092A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US11/912,112 US7940927B2 (en) 2005-04-27 2006-04-25 Information security device and elliptic curve operating device
EP06732308A EP1879164A1 (en) 2005-04-27 2006-04-25 Information security device and elliptic curve operating device
JP2007514728A JP4825199B2 (ja) 2005-04-27 2006-04-25 情報セキュリティ装置及び楕円曲線演算装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005129273 2005-04-27
JP2005-129273 2005-04-27

Publications (1)

Publication Number Publication Date
WO2006118092A1 true WO2006118092A1 (ja) 2006-11-09

Family

ID=37307892

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/308598 WO2006118092A1 (ja) 2005-04-27 2006-04-25 情報セキュリティ装置及び楕円曲線演算装置

Country Status (5)

Country Link
US (1) US7940927B2 (ja)
EP (1) EP1879164A1 (ja)
JP (1) JP4825199B2 (ja)
CN (1) CN101198998A (ja)
WO (1) WO2006118092A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5327380B2 (ja) * 2010-03-31 2013-10-30 富士通株式会社 暗号処理装置および暗号処理方法

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2056275A4 (en) * 2006-07-25 2011-05-04 Nec Corp PSEUDOZUFALLSZAHLENGENERATOR, STREAM ENCRYPTION DEVICE AND PROGRAM
US8625784B2 (en) * 2006-12-22 2014-01-07 Samsung Electronics Co., Ltd. Broadcast encryption method and broadcast decryption method thereof
US8050403B2 (en) 2007-03-06 2011-11-01 Research In Motion Limited Method and apparatus for generating a public key in a manner that counters power analysis attacks
US8160245B2 (en) * 2007-03-07 2012-04-17 Research In Motion Limited Methods and apparatus for performing an elliptic curve scalar multiplication operation using splitting
MX2009012432A (es) * 2007-06-11 2010-02-24 Nxp Bv Metodo para generar una clave publica para un dispositivo electronico, y dispositivo electronico.
US8559625B2 (en) * 2007-08-07 2013-10-15 Inside Secure Elliptic curve point transformations
US8619977B2 (en) * 2008-01-15 2013-12-31 Inside Secure Representation change of a point on an elliptic curve
US8233615B2 (en) * 2008-01-15 2012-07-31 Inside Secure Modular reduction using a special form of the modulus
JP2010049213A (ja) * 2008-08-25 2010-03-04 Toshiba Corp 暗号化装置、復号装置、暗号通信システム、方法及びプログラム
JP5337238B2 (ja) * 2009-04-24 2013-11-06 日本電信電話株式会社 秘密分散システム、分散装置、分散管理装置、取得装置、それらの処理方法、秘密分散方法、プログラム及び記録媒体
WO2012090288A1 (ja) 2010-12-27 2012-07-05 富士通株式会社 暗号処理装置、暗号処理方法、およびプログラム
WO2012126085A1 (en) * 2011-03-18 2012-09-27 Certicom Corp. Keyed pv signatures
US9645794B2 (en) 2014-09-23 2017-05-09 Texas Instruments Incorporated Homogeneous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography
US10361844B2 (en) * 2015-04-20 2019-07-23 Certicom Corp. Generating cryptographic function parameters based on an observed astronomical event
US9531531B2 (en) * 2015-05-06 2016-12-27 Qualcomm Incorporated Methods and devices for fixed execution flow multiplier recoding and scalar multiplication
US10194829B2 (en) 2015-07-07 2019-02-05 Q Bio, Inc. Fast scanning based on magnetic resonance history
WO2017007663A1 (en) 2015-07-07 2017-01-12 Tesla Health, Inc Field-invariant quantitative magnetic-resonance signatures
EP3320358A4 (en) * 2015-07-07 2019-07-03 Q Bio, Inc. QUANTITATIVE MAGNETIC RESONANCE SIGNATURES OF INVARIABLE FIELD
US9958521B2 (en) 2015-07-07 2018-05-01 Q Bio, Inc. Field-invariant quantitative magnetic-resonance signatures
WO2017044919A1 (en) 2015-09-12 2017-03-16 Q Bio, Inc Uniform-frequency records with obscured context
US10964412B2 (en) 2015-10-20 2021-03-30 Q Bio, Inc. Population-based medical rules via anonymous sharing
CN108781161B (zh) 2016-02-23 2021-08-20 区块链控股有限公司 用于控制和分发数字内容的区块链实现的方法
AU2017222471B2 (en) 2016-02-23 2022-09-01 nChain Holdings Limited A method and system for securing computer software using a distributed hash table and a blockchain
JP6528008B2 (ja) * 2016-02-23 2019-06-12 エヌチェーン ホールディングス リミテッドNchain Holdings Limited 秘密共有のための楕円曲線暗号化を利用したパーソナルデバイスセキュリティ
CN116934328A (zh) 2016-02-23 2023-10-24 区块链控股有限公司 用于经由区块链控制资产有关的动作的系统及方法
US11727501B2 (en) 2016-02-23 2023-08-15 Nchain Licensing Ag Cryptographic method and system for secure extraction of data from a blockchain
SG10202112185TA (en) 2016-02-23 2021-12-30 Nchain Holdings Ltd Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
PT3268914T (pt) 2016-02-23 2018-10-11 Nchain Holdings Ltd Determinar um segredo comum para a troca segura de informação e chaves criptográficas determinísticas, hierárquicas
US11347838B2 (en) 2016-02-23 2022-05-31 Nchain Holdings Ltd. Blockchain implemented counting system and method for use in secure voting and distribution
KR20180114915A (ko) 2016-02-23 2018-10-19 엔체인 홀딩스 리미티드 토큰화를 이용한 블록체인 기반 교환 방법
US10359486B2 (en) 2016-04-03 2019-07-23 Q Bio, Inc. Rapid determination of a relaxation time
US10222441B2 (en) 2016-04-03 2019-03-05 Q Bio, Inc. Tensor field mapping
FR3055444B1 (fr) * 2016-08-23 2022-02-04 Maxim Integrated Products Dispositif et procedes de commande de dispositif de cryptage sur courbe elliptique securises
US11650195B2 (en) 2017-02-03 2023-05-16 Q Bio, Inc. Iterative medical testing of biological samples
US10936180B2 (en) 2017-03-16 2021-03-02 Q Bio, Inc. User interface for medical information
US11075763B2 (en) 2019-02-15 2021-07-27 International Business Machines Corporation Compute digital signature authentication sign with encrypted key instruction
US11360166B2 (en) 2019-02-15 2022-06-14 Q Bio, Inc Tensor field mapping with magnetostatic constraint
US11108567B2 (en) 2019-02-15 2021-08-31 International Business Machines Corporation Compute digital signature authentication verify instruction
US11303456B2 (en) 2019-02-15 2022-04-12 International Business Machines Corporation Compute digital signature authentication sign instruction
US11354586B2 (en) 2019-02-15 2022-06-07 Q Bio, Inc. Model parameter determination using a predictive model
US11131735B2 (en) 2019-09-27 2021-09-28 Q Bio, Inc. Maxwell parallel imaging
US11614509B2 (en) 2019-09-27 2023-03-28 Q Bio, Inc. Maxwell parallel imaging
CN111538480B (zh) * 2020-03-26 2022-02-11 郑州信大捷安信息技术股份有限公司 一种用于椭圆曲线密码的倍点运算方法及系统
US11614508B1 (en) 2021-10-25 2023-03-28 Q Bio, Inc. Sparse representation of measurements
CN116132049B (zh) * 2023-01-04 2023-09-08 声龙(新加坡)私人有限公司 数据加密的方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001337599A (ja) * 2000-05-30 2001-12-07 Hitachi Ltd 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体
JP2002528771A (ja) * 1998-10-28 2002-09-03 サーティコム コーポレーション 耐パワーシグニチャーアタック暗号法
JP2003233307A (ja) * 2001-12-04 2003-08-22 Fujitsu Ltd 秘密鍵を用いた耐タンパ暗号処理
JP2005020735A (ja) * 2003-06-26 2005-01-20 Sharp Corp データ処理装置におけるサイドチャネル攻撃防止

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3796993B2 (ja) 1998-12-22 2006-07-12 株式会社日立製作所 楕円曲線暗号実行方法及び装置並びに記録媒体
US7418099B2 (en) * 2002-05-03 2008-08-26 Certicom Corp. Method and apparatus for performing elliptic curve arithmetic

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002528771A (ja) * 1998-10-28 2002-09-03 サーティコム コーポレーション 耐パワーシグニチャーアタック暗号法
JP2001337599A (ja) * 2000-05-30 2001-12-07 Hitachi Ltd 楕円曲線暗号におけるスカラー倍計算方法及び装置、並びに記憶媒体
JP2003233307A (ja) * 2001-12-04 2003-08-22 Fujitsu Ltd 秘密鍵を用いた耐タンパ暗号処理
JP2005020735A (ja) * 2003-06-26 2005-01-20 Sharp Corp データ処理装置におけるサイドチャネル攻撃防止

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
A. MIYAJI; T. ONO; H. COHEN: "ICICS' 97", 1999, SPRINGER-VERLAG, article "Efficient elliptic curve Exponentiation", pages: 282 - 291
BLAKE, G. SEROUSSI; N. SMART: "Elliptic Curves in Cryptography", 1999, CAMBRIDGE UNIVERSITY PRESS, pages: 265
P. KOCHER; J. JAFFE; B. JUN: "Advances in Cryptology -CRYPTO '99, LNCS", 1999, SPRINGER-VERLAG, article "Differential Power Analysis", pages: 388 - 397
PAUL C. KOCHER: "Neal Koblitz", 1996, SPRINGER-VERLAG, article "Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and Other Systems", pages: 104 - 113
R. OKAMOTO; H. YAMAMOTO: "Modern Cryptology", 1997, SANGYO TOSHO, article "Gendai Ango"

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5327380B2 (ja) * 2010-03-31 2013-10-30 富士通株式会社 暗号処理装置および暗号処理方法

Also Published As

Publication number Publication date
JP4825199B2 (ja) 2011-11-30
CN101198998A (zh) 2008-06-11
JPWO2006118092A1 (ja) 2008-12-18
US20090074179A1 (en) 2009-03-19
EP1879164A1 (en) 2008-01-16
US7940927B2 (en) 2011-05-10

Similar Documents

Publication Publication Date Title
JP4825199B2 (ja) 情報セキュリティ装置及び楕円曲線演算装置
CN101061526B (zh) 密码处理运算装置
RU2376651C2 (ru) Использование изогений для разработки криптосистем
JP4137385B2 (ja) 公開鍵および秘密鍵による暗号化方法
JP4906733B2 (ja) 情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体及び集積回路
JP2007510947A (ja) 多数当事者の効率的な乗算のための方法及び装置
CN101268654B (zh) 用于对消息可靠加密或者解密的方法
US7043015B2 (en) Methods for point compression for Jacobians of hyperelliptic curves
EP1443393B1 (en) Elliptic curve exponentiation that can counter a differential fault attack
US7248692B2 (en) Method of and apparatus for determining a key pair and for generating RSA keys
Pietiläinen Elliptic curve cryptography on smart cards
Gutub et al. Implementation of a pipelined modular multiplier architecture for GF (p) elliptic curve cryptography computation
Gutub Preference of efficient architectures for GF (p) elliptic curve crypto operations using multiple parallel multipliers
JP2008042908A (ja) 高速モンゴメリパワーラダーアルゴリズムを利用する欠陥検出動作を具現するための二進有限領域におけるポイント加算方法及び加算演算装置
Gutub Efficient utilization of scalable multipliers in parallel to compute GF (p) elliptic curve cryptographic operations
JP2003216026A (ja) 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにコンピュータ・プログラム
Fan et al. Asymmetric cryptosystem and software design based on two-step phase-shifting interferometry and elliptic curve algorithm
JP2003241659A (ja) 情報処理方法
JP4634046B2 (ja) 故障利用攻撃に対抗できる楕円べき倍演算装置及び情報セキュリティ装置
Goo et al. Reconfigurable real number field elliptic curve cryptography to improve the security
JP2005165290A (ja) Rsa公開鍵生成装置、rsa復号装置及びrsa署名装置
Cohen Architectures for cryptography accelerators
FI112707B (fi) Menetelmä salaisen avaimen käsittelemiseksi
Kocabas et al. Hardware implementations of ECC over a binary Edwards curve
Muhaya et al. Applying hessian curves in parallel to improve elliptic curve scalar multiplication hardware

Legal Events

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

Ref document number: 200680021856.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: 2007514728

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 11912112

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU

WWE Wipo information: entry into national phase

Ref document number: 2006732308

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2006732308

Country of ref document: EP