WO2001024439A1 - Dispositif, programme ou systeme de traitement d'informations secretes - Google Patents

Dispositif, programme ou systeme de traitement d'informations secretes Download PDF

Info

Publication number
WO2001024439A1
WO2001024439A1 PCT/JP1999/005353 JP9905353W WO0124439A1 WO 2001024439 A1 WO2001024439 A1 WO 2001024439A1 JP 9905353 W JP9905353 W JP 9905353W WO 0124439 A1 WO0124439 A1 WO 0124439A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
processing
secret information
secret
program
Prior art date
Application number
PCT/JP1999/005353
Other languages
English (en)
French (fr)
Inventor
Kunihiko Miyazaki
Kazuo Takaragi
Yasuko Fukuzawa
Original Assignee
Hitachi, 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 Hitachi, Ltd. filed Critical Hitachi, Ltd.
Priority to KR10-2000-7009164A priority Critical patent/KR100373669B1/ko
Priority to US09/622,371 priority patent/US6873706B1/en
Priority to JP2001527499A priority patent/JP4671571B2/ja
Priority to EP99973813A priority patent/EP1217783B9/en
Priority to DE69940372T priority patent/DE69940372D1/de
Priority to PCT/JP1999/005353 priority patent/WO2001024439A1/ja
Priority to AU59992/99A priority patent/AU762650B2/en
Publication of WO2001024439A1 publication Critical patent/WO2001024439A1/ja
Priority to AU2003252789A priority patent/AU2003252789B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/005Countermeasures against attacks on cryptographic mechanisms for timing attacks
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • 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
    • 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

Definitions

  • the present invention provides a secret information processing device comprising an arithmetic processing circuit, a storage circuit, and a signal line connecting the secretory information and a data to be processed.
  • a secret information processing method configured to obtain the same processing result as the processing result processed based on the processing method, wherein the secret information generation information is different from the secret information, and the secret information generation information is different from the secret information generation information.
  • a secret information generation information processing means for outputting the same processing result using the data to be processed.
  • the secret information generation information processing means of the present invention comprises: The present invention is characterized in that processing is performed without causing information to appear in the arithmetic processing circuit, the storage circuit, or the signal line.
  • the storage circuit of the present invention is characterized in that the secret information generation information is configured as a plurality of pieces of secret information partial information having a plurality of combinations thereof, and is stored in the storage circuit. is there.
  • the confidential information itself is transmitted when it is held in the internal storage means or between the storage means and the arithmetic means via a signal line (internal bus) inside the device.
  • a signal line internal bus
  • the processing means in the arithmetic means it does not appear in any case. Therefore, it becomes difficult to obtain the secret information itself.
  • the desired result can be obtained by the secret information generation information processing means used in combination with the secret information generation information, obtaining the information alone does not mean that the secret information is obtained.
  • the secret information generation information processing means even if an attacker trying to obtain secret information fraudulently knows the secret information generation information processing means, the number of attempts required by the attacker increases when there are multiple types of data that can be taken as secret information generation information. Therefore, it is more difficult to obtain confidential information.
  • the information to be kept secret stored in the storage device by a certain expression method is determined each time an operation using the information is performed, at a predetermined time, or randomly. At a different time, convert it to another expression and rewrite the original expression with the new converted expression
  • the storage circuit of the present invention further includes a conversion unit for converting the secret information generation information into another secret information generation information, wherein the other secret information generation information is stored in the secret information generation information processing unit. It is characterized in that it is information for outputting the same processing result as the above processing result.
  • the present invention is a secret information processing system for transmitting and receiving a processing result using the secret information by using the secret information processing device described above.
  • ECES Elliptic Curve Encryption Scheme
  • the program storage unit 1005 contains a representation conversion program 1010 and an elliptic curve A decryption program 1011 and a common key decryption program 1012 are stored, and are read and executed by the arithmetic processing unit 1002, respectively.
  • the common key decoding process by the common key decoding program 1012 is performed in the IC card 1001, but this process is performed by an external device capable of exchanging information with the IC card 1001. This may be performed by a device such as a PC that can exchange information through an IC card 1001 and an IC reader / writer.
  • the input to the IC card 1001 is the decryption point R1013, and the output from the IC card 1001 is the decryption common key that is the output of the elliptic curve II decryption program.
  • the encrypted message m can be decrypted. Since the encrypted message m can be decrypted without the secret key d appearing in the data storage unit 1004, the bus 1003, and the arithmetic processing unit 1002, the TA (Timing Attack) and the DPA (Differential Power Analysis), SPAC Simple Power Analysis), etc., makes it difficult to estimate the secret key value.
  • the child run the representation conversion program 1010 via the secret key partial data d 1007 and the secret key partial data d the value of B 1008 is switched-out 3 ⁇ 4 to another value, the bus 1003 from the de Isseki storage unit 1004 Starring ⁇
  • the data flowing to the processing unit 1002, the time when the elliptic curve ⁇ decoding program 1011 is executed by the arithmetic processing unit 1002, the intensity of the generated electromagnetic wave, the current consumption, etc. are different. This makes it more difficult to estimate the value of the secret key by TA (Timing Attack), DPA (Differential Power Analysis), SPA (Simple Power Analysis), and so on.
  • Step 2005 Write d., 'And d B ' where the secret key portion information d A 1007 and secret key portion information d B 1008 were written in the data storage portion 1004, respectively.
  • the information to be kept secret is given.
  • the fact that one bit of the value is leaked means that the information about the information to be kept secret is lost.
  • the information to be kept confidential rather than the information itself, is to be kept by a certain expression, even if the information to be kept secret d
  • Information that should be kept secret even if the value of d A , which is half of the set of d A and d B , which is the data actually stored in the data storage unit 1004 is completely leaked. d As for things, no information has been leaked.
  • the information to be kept secret is re-stored in a different manner at an appropriate time, so that even if an attacker later learns the value of at another time, d A at a different time is used. Since no relation can be found again between d and B , no information about d is leaked.
  • Step 4002 Decryption common key c and decrypted message! Enter 111 0 14.
  • the decryption common key c is the decryption common key xQ output in step 3011 of the elliptic curve ⁇ signal decryption program 1011.
  • Step 4004 The exclusive OR ( ⁇ XOR ⁇ ) of the encrypted message ml O and the mask sequence M is calculated, and the result is obtained as a decrypted message 1015. Output to outside of IC card 1001
  • ECES Elliptic Curve Encryption Scheme
  • the elliptic curve ⁇ decoding program 101 1 may be modified as follows.
  • the table data calculation program 5001 receives the decoding point R1013 given from outside the IC card 1001 as input, calculates the table data used in the table reference type elliptic curve decoding program 5002, and converts the result to data.
  • This is a program that writes to the table 5003 area in the storage unit 1004.
  • This program data representing the secret key d in the data storage unit 1004, namely the secret key partial data d A 1007 and the secret key partial data d B 1008 which definitive present embodiment, in order to perform a process that is independent. Therefore, this program
  • Step 6002 Read the decoding point R1013 from outside the IC card 1001.
  • Step 6003 Calculate the points 3R, 2R, R, R, -2R, -3R on the elliptic curve.
  • Step 7005 If
  • is even, i
  • is odd, i
  • ECES Elliptic Curve Encryption Scheme
  • Step 9009 ] ⁇ If ⁇ 11 (binary notation), go to step 9005
  • a plurality of data representing the same point for example, T [10] [00] and T [ll] [01] are different. Since the same data T [i] [j] is stored in a different representation depending on the timing of referring to it, it includes operations that refer to table data 5003 The processing is different, even if the input is the same each time. Therefore, the processing time, the intensity of the generated electromagnetic waves, and the current consumption during processing are not constant. This means that the time required for the operation using the secret key and the table data 5003 and the execution of the table reference type elliptic curve encryption / decryption program 5002, the intensity of the generated electromagnetic waves, and the current consumption are not constant. Therefore, attacks such as TAdiming Attack and Differential Power Analysis (DPA) make it difficult to estimate the secret key value.
  • DPA Differential Power Analysis
  • Step 10002 Read the secret key information d_rep from the data storage unit 1004.
  • Step 10003 Generate random numbers K and L (here, let K ⁇ L ⁇
  • I d_rep I is the bit of d_rep G)
  • Step 13002 Read the decoding point R1013 from outside the IC card 1001.
  • Step 13003 Read dm A and dm B from the data storage unit 1004.
  • Step 13004: Calculate Q dm A R
  • the digital signature 14003 can be generated without the secret key d appearing in the data storage unit 1004, the bus 1003, and the arithmetic processing unit 1002, so that TACTiming Attack), DPA (Differential Power Analysis), SPA (Simple
  • the expression conversion program 1010 is used as in the first embodiment. That is, by executing the representation conversion program 1010, the value of the secret key partial data d A 1007 and the secret key partial data d B 1008 is rewritten to a different value, the arithmetic processing from the data storage unit 1004 via the bus 1003
  • the data flowing to the section 1002, the time when the ECDSA signature generation program 14001 is executed by the arithmetic processing section 1002, the intensity of the generated electromagnetic waves, the current consumption, and the like also differ. This makes it more difficult to estimate the value of the secret key by TA (Timing Attack), DPAC Differential Power Analysis (SPA), SPA (Simple Power Analysis), or the like.
  • FIG. 11 shows a front view of the ECDSA signature generation program 14001 in FIG.
  • the ECDSA signature generation is performed by changing the set of the secret key partial information d A 1007 and the secret key partial information d B 1008, which are expressions of the secret key d, by the expression conversion program 1010.
  • the homomorphic mapping is a mapping from group to group, and is a mapping that keeps the operation.
  • FIG. 12 is a system configuration diagram in the present embodiment.
  • a network 16001 is connected to a computer 16002 of a cardholder that is a general consumer, a computer 16003 of a dealer that is a dealer, and a certification authority 16004.
  • a certificate authority is an organization that issues certificates that guarantee the validity of public keys.
  • the public key 16015 is stored in the memory 16006 of the computer 16002 of the card holder, and the information related to the private key paired with the public key 16015 is stored in the memory of the signature IC card 16010 owned by the force holder.
  • This information is stored by the card issuer, for example, a credit company, in the form of an IC card on which information and programs related to the private key have been written in advance, and on an FD or CD ROM containing public key information.
  • the medium is set by being sent.
  • the public key information may be sent via a transmission medium such as a wired or wireless network.
  • the key generation function may be built into the IC card sent from the card issuer, and the key generation function may be set by executing the key generation function.
  • a key generation program executable by the card issuer on the computer of the card holder is provided on an FD or CD-ROM. It may be set to the transmitted IC force by being transmitted by a recording medium such as or the like or a transmission medium such as a wired wireless communication, and being executed by the force holder. In the case of a method using an IC card with a key generation function, this method is the most desirable from a security point of view because the information about the private key does not leak outside the IC card.
  • the card holder computer 16002 creates a purchase request message 16017 and stores it in the memory 16006.
  • the purchase request message 16017 is sent to the signature IC card 16010 through the IC card reader / writer 16009, and a digital signature 16020 is generated in accordance with the method according to the present invention, which is also stored in the memory 16006.

Landscapes

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

Description

明 細 秘密情報の処理装置, プログラムまたはシステム 技術分野
本発明は, 情報のセキュリティを確保する技術に関する。 背景技術
I Cカー ドは, その構造上, 内部に対する情報の読み書きが I Cカー ド自 身が持つ演算処理部の制御の下で行われるため, 磁気カー ド等と比較し て安全に情報を管理することができ, それゆえ, 秘密にすべき情報を安 全に管理するための手段としての利用が注目されている。 今後, 例えば, 暗号文を復号する機能およびそのために必要な鍵情報をもつた I Cカー ド や, 電子的なデータに対するディ ジタル署名を生成する機能およびその ために必要な鍵情報をもつた I Cカー ドなどの利用がさらに広がることが 期待されている。
公開鍵やディジタル署名といった誰もが知ることができる情報から, 計算によって, 秘密鍵を知ることは, 計算量的に, 非常に困難であり, 実際上不可能であることが知られている。
その一方で, I Cカー ドなどの上記暗号化, 復号化, 署名作成などの機 能を持った装置、 secure cryptographic device といつリに対する新たな 脅威として, 内部にある重要な情報(例えば秘密鍵)を, 物理的に直接解 析をすることなく, 通常の使用方法における処理時間, 消費電流, 発生 する電磁波等を deviceの外部から解析することによって, 推定しょう と "5 ¾ TA( Timing Attack) , DPA(Diff erential Power Analysis;, SPACSimple Power Analysis)などの攻撃法の可能性が示唆されるようになつている。 たとえば, これらの攻撃により, 署名作成のための秘密鍵が解析される と, 悪意のある人が正当な所有者になりすますことが可能になるなど影 響が大き く, 対策が求められている。
IC力一 ドについては,
文献 [Handbook] Rankl Effing, "Smart Card Handbook", John Wiley & Sons, 1997
に開示されている。
secure cryptographic deviceにっしヽては,
文献 [IS013491] IS013491- 1 "Banking Secure cryptographic devices (retail) -- Part 1: Concepts, requirements and evaluation methods" ,
First edition 1998 06 15
に開示されている。
また, rA(Timing Attack), DPA(Dif f erential Power Analysis),
SPACSimple Power Analysis)などのアタ ックについては, 前記文献
[Handbook]の他,
文献 [DPA」 Paul Kocher, Joshua Jaf fe and Benjamin Jun, introduction to Differential Power Analysis and Related Attacks", 1998 文献 [TA] Paul Kocher, "Timing Attacks on Implementations of Dif - fie-Hellman, RSA, DSS, and Other Systems", CRYPTO' 96, 1996 に開示されている。
上記各攻撃法は, 間接的に得られる測定結果と内部情報とが相関を持 つことを根拠とするものである。
RSA暗号の復号化機能をもつ IC力一 ドへの Timing Attack に対する対 策として, 上記文献 [TA]には, ブライン ド署名という技術を応用した対 策案が示されている。 これは, Timing Attack を実行する際に必要とな るサンプルデータを採りにく くするために, 入力として与えられる暗号 文を直接復号するのではなく, 暗号文に乱数情報を加えたものを復号し, 最後に再び乱数による影響を取り払う ことにより, 復号文を得る手法で ある。 しかしながら依然として, あるデータを秘密鍵乗するという処理 が含まれている点で充分でない。 発明の開示
本発明は, 上記課題に鑑みてなされたものであり, I Cカー ド等の se cure cryptographic device内の秘密情報を推定できないようにする手段, 技術を提供することを目的とする
すなわ 本発明(3>, I C力一 卜寺の secure cryptographic device に Μτ ·¾ TA (Timing Attack) , DPA ( Di f f erent ial Power Ana lys is ) ,
SPACSimpl e Power Analys i s )等の攻撃法を無効とする手段, 技術を提供 することを目的とする。
さらに, これらの手段, 技術を利用した I Cカー ド, セキュ リティモ ジュール, 半導体チップ, システム, コンピュータ, プログラムを提供 することを目的としている。
上記目的を達成するために, 本発明は, 演算処理回路と記憶回路とそ れらを接続する信号線とで構成した秘密情報の処理装置において, 秘密 情報と処理対象となるデータとを既知の処理方法に基づいて処理した処 理結果と同一の処理結果を得るように構成された秘密情報の処理方法で あって, 上記秘密情報とは異なる秘密情報生成情報と, 上記秘密情報生 成情報と上記処理対象となるデータとを用い同一の上記処理結果を出力 する秘密情報生成情報処理手段とを用いることを特徴とするものである ( さらに, 本発明の秘密情報生成情報処理手段は, 上記秘密情報を上記 演算処理回路や上記記憶回路や上記信号線に出現させることなく処理を 行うことを特徴とするものである。 具体的な一例としては, 秘密情報は, 暗号文の復号ゃ署名生成のため の秘密鍵であり, 秘密情報処理手段は, 暗号化または署名生成の既知ァ ルゴリズムを実現する手段であり, 処理結果は, 復号化された平文や生 成された署名である。 秘密鍵とは異なる秘密情報生成情報と, それを用 いて, 平文や署名を処理結果として出力する秘密情報生成情報処理手段 とを用いることにより, 秘密情報を外部から知ることが困難になる。 さらに, 本発明は, 同一の秘密情報生成情報処理手段が処理する秘密 情報生成情報は, 取りう る値が複数あるように構成する。
具体的には, 本発明の上記記憶回路は, 上記秘密情報生成情報を, そ の組み合わせが複数ある, 複数の秘密情報部分情報として構成し, 上記 記憶回路に保持することを特徴とするものである。
これらの手段を採用するこ とにより, 秘密情報そのものは, 内部の記 憶手段に保持されているときや, 記憶手段と演算手段との間を装置内部 の信号線(内部バス)を介して送られるとき, 演算手段において, 上記処 理手段によって処理されるとき, いずれの場合においても, 出現するこ とが無い。 したがって秘密情報をそのものを得ることが困難になる。 さ らに, 秘密情報生成情報は, それと組み合わせて用いる秘密情報生成情 報処理手段によって所望の結果を得ることができるので, 当該情報だけ を得たとしても秘密情報を得たことにはならない。 さらに, 不正に秘密 情報を入手しょう とする攻撃者が秘密情報生成情報処理手段を知ったと しても, 秘密情報生成情報として取りうるデータが複数通りある時には, 攻撃者にとって必要な試行回数が増加するため, 秘密情報を得ることが さらに困難になる。
したがって, かかる時間, 発生する電磁波の強さおよび消費電流等か ら秘密情報そのものを得るこ とが困難になる。
また, 上記目的を達成するために, 間接的に得られる測定結果と内部 情報との相関関係を少なくする手段を設ける。
より具体的には, 本発明では次の手段を用いる。
( 1 )秘密裏に保持すべき情報を利用した演算において,前記情報を表す複 数の表現を演算ごとに使い分ける
( 2 )ある表現方法で記憶装置内に保持された秘密にすべき情報を,その情 報を利用した演算が行われる度に, あるいは, あらかじめ決められた時 期に, あるいは, ランダムに決められた時期に, 別の表現に変換し, 変 換された新たな表現により元の表現を書き換える
( 3 )秘密裏に保持すべき情報 Aとそれとは異なる情報 Bを利用した演算に おいて, 前記情報 Bを表す複数の表現を演算ごとに使い分ける
(4 )秘密にすべき情報 Aを利用した演算に使われる情報であって, ある表 現方法で記憶装置内に保持された前記秘密にすべき情報 Aとは異なる情 報 Bを, 前記秘密にすべき情報 Aを利用した演算が行われる度に, あるい は, あらかじめ決められた時期に, あるいは, ランダムに決められた時 期に, 別の表現に変換し, 変換された新たな表現により元の表現を書き 換える
すなわち, 本発明の上記記憶回路は, 上記秘密情報生成情報を他の秘 密情報生成情報へ変換する変換手段をさらに備え, 上記他の秘密情報生 成情報は, 上記秘密情報生成情報処理手段が上記処理結果と同一の処理 結果を出力させる情報であることを特徴とするものである。
さらに, 本発明の上記演算処理回路は, 上記変換手段を, 所定の時期 に実行することを特徴とするものである。
上記手段を採用することにより,前記秘密にすべき情報 Aを利用する演 算が実行される際にかかる時間, 発生する電磁波の強さおよび消費電流 等が, 一定にならないようにし, 結果として, 前記前記秘密にすべき情 報 Aと, 情報 Aを利用する演算にかかる時問, 発生する電磁波の強さおよ び消費電流との間の関連(相関関係)を少なくする。
なお, 上記秘密情報生成情報処理手段や変換手段は, 具体的な一例と しては, プログラムであり, ディ ジタル信号処理プロセッサ(DSPという ) , 中央演算処理回路(CPUという)などの演算手段によつて実行されるもの である。
また, 本発明は, 上述の秘密情報の処理装置を用いて, 上記秘密情報 を用いた処理結果を送受信する秘密情報の処理システムであって, 上記 処理結果の受信者側装置は, 上記秘密情報生成情報処理手段と上記秘密 情報生成情報とを, 上記処理装置の上記記憶回路に設定する手段を備え, 処理装置の使用者側装置は, 上記処理装置に処理対象となるデータを入 力する手段と, 上記処理装置から上記処理結果を受け取る手段と, 上記 受け取った処理結果を上記受信者側装置へ送信する手段とを備えること を特徴とするものである。 図面の簡単な説明
第 1図は, 本発明の一実施例における I Cカー ド構成図であり, 第 2図 は, 第 1 図の ICカー ド構成のうち表現変換プログラムのフローであり, 第 3図は, 第 1図の IC力一 ド構成のうち楕円曲線暗号復号プログラムの フローであり, 第 4図は, 第 1 図の ICカー ド構成のうち共通鍵暗号復号 プログラムのフローであり,第 5図は,本発明の一実施例における IC力一 ド構成図であり, 第 6図は, 第 5図の I Cカー ド構成のうちテーブルデー 夕計算プログラムのフローであり, 第 7図は, 第 5図の ICカー ド構成の うちテーブル参照型楕円曲線喑号復号プログラムのフローであり, 第 8 図は, 本発明の一実施例における I Cカー ド構成図であり, 第 9図は, 第 8図の I Cカー ド構成のうち点表現変換プログラムのフローであり, 第 1 0図は, 本発明の一実施例における ICカー ド構成図, 第 1 1 図は, 第 1 0図の IC力一 ド構成のうち ECDSA署名生成プログラムのフローである。 発明を実施するための最良の形態
• 第 1の実施例
本発明を, 楕円曲線暗号の一種である Elliptic Curve Encryption Scheme (ECES) の復号化機能を持った ICカー ドに適用した一実施例を, 以下, 図を用いて説明する。 Elliptic Curve Encryption Scheme につい ては, 文献 [X9.63]に述べられている。
楕円曲線暗号については,
文献 [X9.63] "Working Draft: AMERICAN NATIONAL STANDARD X9.63 199x Public Key Cryptography For The Financial Services Industry: Key Agreement and Key Transport Using Elliptic Curve Cryptography", American National Standards Institute, January 9, 1999
文献 [IEEEP1363] "Standard Specifications For Public Key
Cryptography (Draft Version 9)" IEEE P1363 Standard, IEEE, Febrary 8, 1999
に開示されている。
なお, 本実施例において, 上記秘密裏に保存すべき情報(秘密情報)に 該当する情報は, 楕円曲線暗号の復号に利用される秘密鍵である。 また 本実施例では, 素数位数の有限体上の楕円曲線を利用するものとする。 第 1図は, 本実施例における IC力一 ドのハ一 ドウエア構成図である。 ICカー ド 1001は, CPU等で構成する演算処理部 1002, 記憶回路(メモリ) で構成するデータ格納部 1004とプログラム格納部 1005, イ ンタ一フヱイ ス回路で構成する I/O1006,およびこれら各構成要素を内部で接続するバ ス 1003とからなる。
プログラム格納部 1005には, 表現変換プログラム 1010と, 楕円曲線喑 号復号プログラム 1011と, 共通鍵喑号復号プログラム 1012が保存されて おり, それぞれ, 演算処理部 1002に読み出され, 実行される。
データ格納部 1004には, 楕円曲線暗号におけるシステム鍵 1009が保存 されている。 システム鍵は, 楕円曲線暗号で利用する楕円曲線を決める ためのデータであり, あらかじめ, 暗号化されたメ ッセージのやり取り に携わるシステム全体に対し, 共通な値として, 公開されている。 シス テム鍵は次のような値を含む。 すなわち, 楕円曲線の定義式 y2 = X3 a x ÷ b の係数 aおよび b, 前記楕円曲線の定義される有限体の位数 p, ベー スポイン トと呼ばれる前記楕円曲線上の固定された点 Pの座標,前記べ一 スポィ ン ト Pの位数 ri, rixhが前記楕円曲線上の有理点の個数と等しくな るようなコファクタ一と呼ばれる数 h, を含む。
またデータ格納部 1004には, さらに, 楕円曲線暗号の復号に利用され る秘密鍵 dを表すデータ(秘密情報生成情報)が保存されている。ここで特 徴的なことは,秘密鍵 dそのものがデータ格納部に保存されているわけで はない, ということである。 本実施例においては, 秘密情報生成部分情 報である秘密鍵部分情報 dA1007と秘密鍵部分情報 dB1008の組により, 秘 密情報生成情報が表現されている。 より具体的には, dA1007と dB1008の 法 nにおける差が秘密鍵 dの値と等しくなるようになっていて, さらに秘 密情報生成情報処理手段に相当する楕円曲線暗号復号プログラム 1011は, これらを正しく処理できるように構成されている。 dA1007と dB1008の組 み合わせは複数あり, 例えば, dA1007の値を秘密鍵 dそのものの値とし, dB1008の値を 0(ゼロ)とすれば, この dA1007と dB1008の組は, 秘密鍵 dの表 現の一例となる。 また, dA1007の値を 0(ゼロ)とし, dB1008の値を n d (mod n) とすれば, これも秘密鍵 dの前記とは異なる表現の一例となる。 以下, 各プログラムの動作の概略を説明する。
まず, 楕円曲線暗号復号プログラム 1011による, 楕円曲線暗号の復号 処理について説明する。 楕円曲線喑号復号プログラム 1011は, データ格 納部 1004に保存されたシステム鍵 1009によって決定される楕円曲線上の 演算を含むプログラムであり, IC力一 ド 1001の外部から入力として与え られた復号用点 R1013, および, データ格納部 1004に保存された秘密鍵を 表す情報, すなわち本実施例においては, 秘密鍵 dを求めることなく, 秘 密鍵情報の一表現である秘密鍵部分情報 dA1007と秘密鍵部分情報 dB1008 から, 楕円曲線上の点 dR を計算し, 暗号化されたメ ッセージ ml 014を共 通鍵喑号復号プログラム 1012で復号するために必要となる復号用共通鍵 を計算するプログラムである。 このプログラムの出力として得られた復 号用共通鍵は, 共通鍵喑号復号プログラム 1012の入力の一部となる。 次に, 共通鍵喑号復号プログラム 1012による, 暗号メ ッセージの復号 処理について説明する。 共通鍵喑号復号プログラム 1012は, 楕円曲線暗 号復号プログラム 1011の出力として得られた復号用共通鍵および I Cカー ド 1001の外部から入力として与えられた暗号化されたメ ッセージ ml 014 を入力とし, 暗号化されたメ ッセージ ml 014を復号し, その結果を I Cカー ド 1001の外部へ, 復号化されたメ ッセージ m' 1015として出力するプログ ラムである。
なお, 本実施例においては, 共通鍵喑号復号プログラム 1012による共 通鍵喑号復号処理は I Cカー ド 1001内で行う ものとしたが, この処理は IC カー ド 1001と情報のやり取りができる外部の装置,例えば, I Cカー ド 1001 と IC力一 ドリーダライタを通じて情報のやり取りができる PC等で行つて もよい。 この場合は, ICカー ド 1001に対する入力は, 復号用点 R1013とな り, ICカー ド 1001からの出力は, 楕円曲線喑号復号プログラムの出力で ある復号用共通鍵となる。
I C力一 ド 1001を使った時の暗号化されたメ ッセージ ml 014を復号する 時の, 上記の 3つのプログラムによる基本的な動作の流れをまとめると 次のようになる。
まず, 楕円曲線喑号復号プログラム 1011が, ICカー ド 1001の外部から の入力である復号用点 R1013と,データ格納部 1004に保存された秘密鍵部 分情報 dA1007と秘密鍵部分情報 dB1008から, 秘密鍵情報 dを求めることな く復号用共通鍵を計算する。 次に共通鍵喑号復号プログラム 1012が, 楕 円曲線喑号復号プログラム 1011によって計算された復号用共通鍵を使つ て, ICカー ド 1001の外部からの入力である暗号化されたメ ッセージ ml014 を復号し, 復号化されたメ ッセージ π 1015として出力する。
これにより, 暗号化されたメ ッセージ mを復号することができる。 このように秘密鍵 dがデータ格納部 1004, バス 1003, 演算処理部 1002 に出現することなく暗号化されたメ ッセージ mを復号することができる ので, TA(Timing Attack) , DPA(Diff erential Power Analysis), SPACSimple Power Analysis)等によって秘密鍵の値を推定することが困難になって いる。
この例では, データ格納部 1004に保存された秘密鍵部分情報 dA1007と 秘密鍵部分情報 dB1008の値が固定されている。 したがって, 復号を行う たびに, 固定値である秘密鍵部分情報 dA1007と秘密鍵部分情報 dB1008が データ格納部 1004からバス 1003を介して演算処理部 1002に毎回流れるこ とになり, また, 楕円曲線喑号復号プログラム 1011は, 毎回同じ計算を 行うことになるため, この間の計算時間や発生する電磁波の強さや消費 電流等も同じになる。 このことは TA(TimingAttack), DPA(Diff erential Power Analysis), SPACSimple Power Analysis)等によつて秘密鍵部分情 報の値を推定される可能性があるこ とを意味する。
本発明では, これらの攻撃に対するさらなる対策として, 表現変換プ ログラム 1010を利用する。
表現変換プログラム 1010による, 秘密鍵情報の表現の変換処理につい て説明する。 表現変換プログラム 1010は, データ格納部 1004から読み出 された秘密鍵情報の一表現を, 別表現に変換し, この新たな表現を, デー 夕格納部 1004中の元の表現と置き換える(書き換える)プログラムである c 本実施例においては, 表現変換プログラム 1010は, データ格納部 1004か ら読み出された秘密鍵情報の一表現である秘密鍵部分情報 dA1007と秘密 鍵部分情報 dB1008の組から, あらたに別の表現, 秘密鍵部分情報 dA' と秘 密鍵部分情報 dB'の組を生成し, データ格納部 1004中にある元の表現 dA1007と dB1008を, 新しい表現 dA' と 'で書き換えるプログラムとなる。 表現変換プログラム 1010を実行するこ とにより, 秘密鍵部分情報 d 1007と秘密鍵部分情報 dB1008の値が別の値に ¾き換わるため, デ一夕 格納部 1004からバス 1003を介して演^処理部 1002へ流れるデータ, 楕円 曲線喑号復号プログラム 1011を演算処理部 1002で実行した時の時問, 発 生する電磁波の強さや消費電流等が異なつたものとなる。 これにより, TA(Timing Attack), DPA(Dif f erential Power Analysis), SPA(Simple Power Analysis)等による秘密鍵の値の推定をさらに困難にすることが 可能となる。
表現変換プログラム 1010は, 楕円曲線喑号復号プログラム 1011が実行 される直前に毎回実行されてもよいし, 楕円曲線喑号復号プログラム
1011が実行された直後に毎回実行されてもよい。 あるいは楕円曲線暗号 復号プログラム 1011が何回か実行される毎に実行されてもよい。 あるい はまた楕円曲線暗号復号プログラム 1011の実行とは無関係に, ランダム なタイ ミ ングに実行されてもよい。 楕円曲線喑号復号プログラム 1011に 対する TA(Timing Attack)や DPA(Diff erential Power Analysis)への対策 としては, 表現変換プログラム 1010の実行頻度が多いほうが望ましい。 次に各プログラムの動作の詳細を説明する。
第 2図は, 第 1 図における表現変換プログラム 1010のフローを示す。 ステツプ 2001 : はじめ
ステツプ 2002: 0以上 n未満の乱数 kを生成する
ステツプ 2003: データ格納部 1004から秘密鍵部分情報 dA1007および秘密 鍵部分情報 dB1008を読み込む
ステップ 2004: dA, = dA 丄 k (mod n) および dB, = dB + k (mod n) を 計算する
ステツプ 2005 : d.,'および dB'をそれぞれデータ格納部 1004中の秘密鍵部 分情報 dA1007および秘密鍵部分情報 dB1008が書かれていたところに書き 込む
ステツプ 2006 : おわり
第 3図は, 第 1図における楕円曲線喑号復号プログラム 1011のフロー を示す。
ステツプ 3001 : はじめ
ステツプ 3002 : Q = 0(無限遠点)とする
ステップ 3003 : ICカー ド 1001の外部から復号用点 R1013を読み込む ステツプ 3004: データ格納部 1004から秘密鍵部分情報 dA1007および秘密 鍵部分情報 dB1008を読み込む
ステップ 3005 : i = |n| とする( | n |はべ一スポイン ト Pの位数 nのビッ ト 長)
ステップ 3006: (dA1007の第 iビッ ト目, dB1008の第 iビッ ト目) = (1, 0) ならステツプ 3008へ(ここで第 iビッ ト目とは, 最下位ビッ トを第 1 ビッ ト目とし, 上位に向かうほど大き くなるように数えるものとする) ステップ 3007: (dA1007の第 iビッ ト目, dB1008の第 iビッ ト目) = (0, 1) ならステップ 3010へ, そうでなければステップ 3009へ(ここで第 iビッ 卜 目とは, 最下位ビッ トを第 1 ビッ ト目とし, 上位に向かうほど大き くな るように数えるものとする) ステツプ 3008: Q = Q † R としてステツプ 3010へ(ここで ÷ は楕円曲線 上の点の加算を示す)
ステップ 3009: Q = Q - R としてステップ 3010へ(ここで は楕円曲線 上の点の減算を示す)
ステツプ 3010: i = i 1 とする
ステツプ 301 1 : i 〉 0 なら Q = 2Q としてステツプ 3006へ(ここで 2Q は 楕円曲線上の点 Qの 2倍算を示す)
ステツプ 3012 : Qの X座標 xQを復号用共通鍵として出力する
ステツプ 3013: おわり
なお,上記ステツプ 3009における楕円曲線上の点の加算,ステツプ 3010 における楕円曲線上の点の減算, および, ステップ 3012における楕円曲 線上の点の 2倍算の詳細については,文献 [ I EEEP1363 ]に詳しく述べられ ている。
楕円曲線喑号復号プログラム 101 1の手順は, 秘密鍵 dの表現, 秘密鍵部 分情報 dA1007および秘密鍵部分情報 dB1008がそれぞれ dA = d, dB = 0 と なっている時には, バイナリ法と呼ばれる楕円曲線上の点のスカラー倍 dRを求めるために広く使われている方法と同じ手順となる。 また, 秘密 鍵 dの表現, 秘密鍵部分情報 dA 1007および秘密鍵部分情報 dB 1008が, (dA1007の第 iビッ ト目, dB1008の第 iビッ ト目) = ( 1, 0 )または(0, 1 )と なるようなビッ トの組が最も少なくなる表現となっている時には, 楕円 曲線上の点のスカラー倍 dRを高速に求める手法として知られている, 最 適な addi tion- subtract ion chain を使った楕円曲線上の点のスカラー 倍演算方法による演算, と同じ手順となる。
このように, 秘密鍵 dの複数の表現方法を使い分けることは, 楕円曲線 上の点のスカラー倍演算 dR を求める演算方法として, 知られている 様々な演算方法を使い分けて演算することを意味している。 結果的に, この楕円曲線喑号復号プログラム 1011の実行時間や発生する電磁波の強 さや消費電流等はその表現方法毎に異なることになる。 平均的には, バ イナリ法を使つた場合と同程度の処理時間となることが期待される。 addi t ion- subtraction chainを使つた楕円曲線上の演算方法について は,
文献 [ ADD- SUB ] F. Mora m and J . Ol ivas "Speeding up the computat ions on an el l ipt ic curve us ing addi t ion - sub tract ion chains" Theoret ical I nformat ics and Appl icat ions vol. 24, no. 6, 1990
に述べられている。
本実施例においては秘密鍵, それ 身を適当な機会に異なる表現方法 によって保持し直すことにより, I Cカー ド内には前記秘密にすべき情報 そのものや, それに関する情報の固定された値は存在しないことになる。 したがつて例えば, 攻撃者がデータ格納部 1004に保存されたデータが演 算処理部 1002へうけわたされる時に情報が流れるバス 1003の部分を解析 できたとしても, 流れる情報から秘密にすべき情報を推定することは困 難になる。
さらに, もし何らかの手段によって, データ格納部 1004に保存された データの一部が攻撃者によって解析されたとしても, 必ずしも, 秘密に すべき情報をもらしたことにはならない。 すなわち, 秘密にすべき情報 それ自身が固定された値としてデータ格納部 1004に保存されている場合 には, その値の 1 ビッ 卜の情報が漏れたというのは秘密にすべき情報に 関する情報の一部が漏れたことにほかならないが, 本発明にしたがって, 秘密にすべき情報それ自身ではなく, それを表すある表現によって保持 しておく場合には, たとえ, 秘密にすべき情報 dの表現であって, 実際に データ格納部 1004に保存されているデータである dAと dBの組のうち, そ の半分にあたる dAの値が完全に漏れたとしても, 秘密にすべき情報 dその ものに関しては, 情報を漏らしていないことになる。
なぜなら, dをどのような部分情報で, どのように表現しているかとい うことを知らないからであるし, たとえ dAと dBの組で dを表していること を知っているとしても, dBの値や dAと dBの組でどのように dを表すかを知 らないものにとっては, dと との間には何の関係も見出すことができな い力、らである。
加えて, 本発明では秘密にすべき情報を適切な時期に異なる表現方法 によって保持し直しているので, 攻撃者が後に, 別の時点における の 値を知ったとしても, 互いに異なる時点における dAと dBとの間にはやは り何の関係も見出すことができないので, dに関する情報は漏れることは ない。
第 4図は, 第 1 図における共通鍵喑号復号プログラム 1012のフローを 示す。
ステツプ 4001 : はじめ
ステツプ 4002 : 復号用共通鍵 cおよび喑号化されたメ ッセージ! 111 0 14を入 力する。 ここで復号用共通鍵 cとは, 楕円曲線喑号復号プログラム 1011 のステツプ 3011で出力された復号用共通鍵 xQのこ とである
ステツプ 4003: 復号用共通鍵 cと, 暗号化されたメ ッセージ ml 014のビッ 卜長 Lを, ' key derivation function' への入力とし, 出力として, 長さ Lのマスク列 Mを得る。 ここで, ' key derivation function' とは, 復号 用共通鍵 cと出力されるマスク列の長さ Lを入力として指定すると,長さ L のマスク列を出力するような関数であり, 共通鍵喑号復号プログラム 1012の一部として実装されているものとする。 ' key derivation func tion' の詳細については, 文献 [ X9. 63 ]に述べられている
ステップ 4004 : 暗号化されたメ ッセージ ml O とマスク列 Mの排他的論理 和 (πΓ XOR Μ) を計算し, 結果を復号化されたメ ッセージ 1015として ICカー ド 1001の外部に出力する
ステツプ 4005: おわり
本実施例においては, 楕円曲線暗号の一種である El l iptic Curve Encryption Scheme (ECES) の復号化機能を持った I Cカー ドに適用した例 を示したが, 本発明は, これ以外にも広く適用可能である。
例んば, E l l ipt ic Curve tncryption Scheme (ECES) ではなく, El l ipt ic Curve Augmented Encrypt ion Scheme (ECAES) の復号化機能を 持った I Cカー ドに適用してもよい。 この場合, 本実施例の処理に加えて, あらかじめ暗号化されたデータと共に送られてきた MACと呼ばれるメ ッ セージ検証用のデータを使って, 復号されたデータが正しいものである かどうかを検証する処现が加わる。 El l i pt ic Curve Augmented Encryp t ion Scheme (ECAES) についての詳細は, 文献 [ X9. 63 ]に述べられている c あるいはまた, 本実施例では, 素数位数の有限体上の楕円曲線を利用 していたが, 標数 2の有限体上の楕円曲線であってもよい。 あるいはこ れ以外の任意の有限体上の楕円曲線であってもよい。 また, 本実施例で は, 式 y2 = X3 † a X + b で定義された楕円曲線を利用していたが, こ れ以外の式, 例えば b y2 = X3 a X2 τ b X で定義された楕円曲線を利 用してもよい。 また, 本実施例では, 楕円曲線上の有理点が生成する群 の上の, 離散対数問題の困難性を利用した暗号を使っていたが, これ以 外の群, 例えば, 有限体の乗法群, 超楕円曲線上の因子類群, Cab曲線上 の因子類群などの群の上の離散対数問題の困難性を利用した暗号であつ てもよい。 これらの暗号を利用する場合には, 上記の楕円曲線喑号復号 プログラム 101 1中の楕円曲線上の点の秘密情報に基づく演算を, それぞ れの群での秘密情報に基づく演算に置きかえればよい。
さらには, これら離散対数問題の困難性を利用した暗号以外の暗号で あっても, より一般的には, 暗号以外であっても, ある秘密にすべき数 があって, 群演算をその秘密にすべき数だけ繰り返し行うような演算を 含む機能を持った IC力一 ドに対しても本発明は本実施例と同様にして適 用可能である。 すなわち, 上記の楕円曲線喑号復号プログラム 101 1では, Kを足すという演算を秘密にすべき数(秘密鍵 d)回だけ行った結果である dRを求めていたが, これと同様にして秘密にすべき数をある表現によつ て表しておき, 楕円曲線暗号復号プログラム 101 1に相当するプログラム によって, 演算を行えばよい。 このような暗号の例としては, 上記の離 散対数問題の困難性を利用した暗号以外に, 例えば, RSA暗号などがある。 暗号以外の機能の例としては, RSA署名などがある。 なお, ここで, 群と は, 集合であって, その集合に属する各元の間にある演算が定義されて いるようなもののことである。
RSA暗号 ·署名については,
文献 [ APPU ED ] Bruce Schneier, " Appl ied Cryptography" , John Wi ley & Sons, Inc, 1996
に開示されている。
本実施例では, I Cカー ドに適用した例を示したが, 秘密にすべき情報 をより安全に保存する技術として I Cカー ド以外にも広く適用可能である c 例; ば同じ機能を持 , I Cカー 卜'以外の secure cryptographic device や, 半導体チップや, PCやワークステーショ ンに対しても適用可能であ る。
•第 2の実施例
第 1の実施例において, 楕円曲線喑号復号プログラム 101 1を次のよう に変形してもよい。
第 5図は, 本実施例における I Cカー ドの構成図である。 この実施例に おいては, 第 1の実施例における楕円曲線喑号復号プログラム 101 1に該 当するプログラムは, 次の 2つのプログラム, テーブルデータ計算プロ グラム 5001, テーブル参照型楕円曲線暗号復号プログラム 5002からなる。 以下, 各プログラムの動作の概略を説明する。
テーブルデータ計算プログラム 5001は, ICカー ド 1001の外部から与え られる復号用点 R1013を入力とし,テーブル参照型楕円曲線喑号復号プロ グラム 5002で利用されるテーブルのデータを計算し, その結果をデータ 格納部 1004内のテ一ブルデー夕 5003領域に書き込むプログラムである。 このプログラムは, データ格納部 1004に含まれる秘密鍵 dを表すデータ, すなわち本実施例おける秘密鍵部分情報 dA 1007と秘密鍵部分情報 dB1008, には依存しない処理をおこなう。 したがって, このプログラムが
TAi Timing Attack) , DPA(Dif f erential Power Analys i s ) , SPAiSimple Power Ana lys i s )などにより攻撃されても秘密鍵 dに関するデータが漏れ る心配はない。
テーブル参照型楕円曲線暗号復号プログラム 5002は, データ格納部 1004に保存されている秘密鍵部分情報 dA1007および秘密鍵部分情報 dB1008と, テーブルデータ計算プログラム 5001によって計算されたテ一 ブルデータ 5003から,暗号化されたメ ッセージ m l O を共通鍵暗号復号プ 口グラム 1012で復号するために必要となる復号用共通鍵を計算するプロ グラムである。
次に各プログラムの動作の詳細を説明する。
第 6図は, 第 5図におけるテーブルデータ計算プログラム 5001のフ 口一を示す。
ステツプ 6001 : はじめ
ステップ 6002 : ICカー ド 1001の外部から復号用点 R1013を読み込む ステップ 6003: 楕円曲線上の点 3R, 2R, R, R, - 2R, - 3R を計算する ステツプ 6004: テーブルデータ 5003を, T[00][00]= o(無限遠点),
T[00][01]= -R,
T[00][10]=-2R,
T[00][11]="3R,
T[01][00]= R,
T[01][01]= 0(無限遠点),
T[01][10]= R,
T[01][11]=-2R,
T[10][00]= 2R,
T[10][01]= R,
Τ[10][10]= 0(無限遠点),
T[10][ll]= - R,
T[11][00]= 3R,
T[ll][01]= 2R,
T[ll][10]= R,
Τ[11][11]= ο(無限遠点),
とし, データ格納部に保存する
ステツプ 6005: おわり
第 7図は, 第 5図におけるテーブル参照型楕円曲線喑号復号プログラ ム 5002のフローを示す。
ステツプ 7001: はじめ
ステップ 7002 : Q = 0(無限遠点)とする
ステツプ 7003: ICカー ド 1001の外部から復号用点 R1013を読み込む ステップ 7004: データ格納部 1004から秘密鍵部分情報 dA1007および秘密 鍵部分情報 dB1008を読み込む
ステップ 7005 : |n|が偶数なら i = |n|, |n|が奇数なら i = |n| とす る(| n |はべ一スポィン ト Pの位数 nのビッ ト長)
ステツプ 7006: データ格納部 1004中のテーブルデータ 5003を参照し, S 一- T[ dA1007の第 iビッ ト目, dA1007の第(i - 1 )ビッ ト目 ] [dB1008の第 iビッ ト 目, dB1008の第(i - 1 )ビッ ト目 ] とする(ここで第 iビッ ト目とは, 最下位 ビッ トを第 1 ビッ ト目とし, 上位に向かうほど大き くなるように数える ものとする)
ステツプ 7007: Q = Q s を計算する(ここで は楕円曲線上の点の加 算を示す)
ステツプ 7008: i = i - 2 とする
ステツプ 7009: i 〉 0 なら Q = 4Q としてステツプ 7006へ(ここで 4Q は 楕円曲線上の点 Qの 2倍算を 2回繰り返すことによって求めることがで きる)
ステツプ 7010: Qの X座標 xQを復号用共通鍵として出力する
ステツプ 7011 : おわり
なお, 上記ステップ 7007における楕円曲線上の点の加算, および, ステツ プ 7009における楕円曲線上の点の 2倍算の詳細については, 文献
[ IEEEP1363 ]に詳しく述べられている。
本実施例においては, 秘密鍵部分情報の連続する 2 ビッ 卜ずつに対し て演算を行ったが, これとは異なるやり方でもよい。 例えば, 連続する 3 ビッ 卜ずつに対して演算を行ってもよいし,一般に連続する tビッ 卜ず つを対象としてよい。あるいは,互いに]'ビッ トはなれた( I n I / j )個のビッ トを対象としてもよい。 なおテーブルデータ計算プログラム 5001はこれ らの秘密鍵部分情報のビッ 卜の見方に応じて適切な値を計算するプログ ラムに変更する必要がある。
本実施例においても, dR を求める演算中に, d 自身の値は現れない。 これにより dR を求める演算にかかる時間や発生する電磁波の強さや消 費電流は d そのものの値には依存しなくなる。 したがって TA(Timing Attack) , DPACDifferential Power Analysis)などにより攻撃によって, 秘密鍵 dの値を推定することが困難になる。
本実施例においては, 楕円曲線暗号の一種である El l iptic Curve Encryption Scheme (ECES) の復号化機能を持った ICカー ドに適用した例 を示したが, 本発明は, 第 1の実施例と同様, これ以外にも広く適用可 能である。 特に, あるあらかじめ決まった元に対する群演算を秘密にす べき数だけ繰り返し行う ような演算を含む処理を行う装置に適用する場 合には, テーブルデータ計算プログラム 5001を毎回実行する必要はなく, 一度だけ実行すればよいため, 毎回の処理が高速に実行可能となり一層 有効である。 この場合には, さらに, テーブルデータの計算を装 ¾ (本実 施例の場合で言えば I Cカー ド 1001 )の外部で行う ことも可能である。この ような処理を含む装置の例としては, 例えば, 楕円曲線暗号における鍵 生成処理を行う ICカー ドが挙げられる。 この場合, 乱数として生成した 秘密鍵情報 dと, 固定点であるベースポイン ト Pから楕円曲線上の点 dP を求める処理が含まれる。 したがって, テーブルデータは, 例えば, IC カー ドの外部で計算しておき, システム鍵情報の一部として IC力一 ド内 にあらかじめ保存しておく ことが可能である。 · 第 3の実施例
第 2の実施例において, テーブルデータ 5003領域へのテーブルデータ の保存方法を次のようにしてもよい。
楕円曲線上の点は通常 2次元 aff ine座標を用いて, x座標および y座標 の 2つの値の組によって表現されるが, 点の加算や点の 2倍算を行う場 合に, 主として高速に演算を行う 目的で, X座標, y座標および z座標の 3 つの値の組によって表現することも可能である。 このような表現および この表現を使った場合の楕円曲線上の点の演算方法の一例が文献
[IEEEP1363]に projective coordinate として述べられている。 2次元 affine座標による表現と projective coordinate による表現との間の 相互変換は次のように行うことができる。
[ 2次元 affine座標カヽら projective coordinate へ」 (x, y) -〉 [x,y, l] [ rojective coordinate カヽら 2次元 af f inei 標へ」 [X, Y, Z] - >
(X/Z2, Y/Z3)
ここで注意すべき事は, projective coordinate による表現では, 同じ 点を表す表現は一通りではないというこ とである。 すなわち, tを 0く t < p (p は楕円曲線の定義される有限体の位数)となる数とすると, 点
[X, Y, Z]と点 [t2 X, t3 Y, t Ζ]は, 共に同じ点(X/Z2, Y/Z3)を表している。 第 2の実施例におけるテーブルデータ 5003領域へのテーブルデータの 保存方法として, この projective coordinate による表現で保存してお く ことができる。 この場合, 同じ点を表すデータであっても, 異なる表 現によつて保存しておく ことが可能となる。 例えば T[10][00]と
Τ[ 11] [01]は共に点 2Rを表すデータが保存されているカ ,これら 2つをそ れぞれ異なる表現, すなわち, Τ[10][00] = [Χ,Υ,Ζ],
Τ[11][01] = [Χ,, Υ,, Ζ'] (ここで X/Z2 = X'/Z'2, Y/Z3 = Y'/Z'3 を満たすも のとする)を使って保存しておく ことにより,テーブル参照型楕円曲線喑 号復号プログラム 5002の実行中に T[10][00]が参照された場合と
T[ll][01]が参照された場合とで, 演算処理が異なることになり, その結 果, 実行にかかる時間, 発生する電磁波の強さおよび消費電流等も異な ることになる。
第 8図は, 本実施例における ICカー ドの構成図である。 本実施例では, 第 2の実施例に点表現変換プログラム 8001が追加されている。
以下, 点表現変換プログラム 8001の概略を説明する。 点表現変換プログラム 8001はデータ格納部 1004に保存されているテー ブルデータ 5003中の点の表現を変換し, 変換した値によってテーブル データ 5003を書き換える。 なお, テーブルデータ 5003は, テーブルデー 夕計算プログラム 5001によって, projective coordinate で表された x 座標, y座標および z座標の 3つの値の組によって表現され保存されてい るものとする。 すなわち, 例えば, 2次元 affine座標によって(x, y)と表 現されているものを [X, y, 1]に変換して保存してもよいし, あるいは, テーブルデータ計算プログラム 5001のステップ 6003でテーブルデータ 5003を計算する際に, projective coordinate を使って計算を行い, そ の結果を projective coordinate のままテーブルデ一夕 5003に保存し てもよい。 点表現変換プログラム 8001はテ一ブルデータ計算プログラ厶 5001の実行後から, 最後にテーブルデータ 5003が参照されるまでの間の 任意の時点に実行されてよい。 また, この間に何度実行されてもよい。 例えば, テーブル参照型楕円曲線暗号復号プログラム 5002が実行される 直前に実行されてもよいし, あるいは, テーブルが参照される機会が一 度でものこっているのならテーブル参照型楕円曲線喑号復号プログラム 5002の実行中に割り込む形で実行されてもよい。
次に, 点表現変換プログラム 8001の詳細を説明する。
第 9図は, 第 8図における点表現変換プログラム 8001のフローを示す c ステツプ 9001 : はじめ
ステツプ 9002: i = 00 とする
ステツプ 9003: ]' = 00 とする
ステップ 9004: [x,y, z] = T[i][j] を読み込む
ステップ 9005 : 乱数 kを生成する( 0 < k 〈 p とする。 p は楕円曲線の定 義される有限体の位数)
ステツプ 9006 : [x, y, z] = [lr x ι mod p), k3 v imod p), k z (mod p.)」 とする(p は楕円曲線の定義される有限体の位数)
ステップ 9007: T[i][j] = [x, y, z] とする
ステップ 9008: j = 」 f 1 とする(ただし j は 2進法で表記されている とする)
ステップ 9009 : ]· ≤ 11( 2進法表記)ならステップ 9005へ
ステツプ 9010: j = 00 とする
ステップ 9011 : i = i - 1 とする(ただし i は 2進法で表記されている とする)
ステップ 9012 : i ≤ 1K 2進法表記)ならステップ 9005へ
ステツプ 9013: おわり
本実施例においては, 適当なタイ ミ ングで点表現変換プログラム 8001 を実行することにより, 同じ点を表す複数のデータ, 例えば T[10][00] と T[ll][01]は, 異なる表現によって保存されることになり, また, 同じ データ T[i][j]であっても,それを参照するタイ ミ ングによって異なる表 現になつているため, テーブルデータ 5003を参照する演算を含む処理は, たとえ入力が毎回同じであっても, 異なるものとなる。 したがって, 処 理時間や発生する電磁波の強さや処理中の消費電流等も一定ではない。 これはすなわち, 秘密鍵とテーブルデータ 5003を使った演算, テーブル 参照型楕円曲線暗号復号プログラム 5002の実行にかかる時間や発生する 電磁波の強さや, 消費電流が一定ではないこ とを意味する。 したがって TAdiming Attack), DPA(Dif f erential Power Analysis)などの攻撃に よって, 秘密鍵の値を推定することが困難になる。
本実施例においては, 点表現変換プログラム 8001によって, テーブル データ 5003に含まれるすべての点情報の変換を行ったが, すべての点で はなく, ランダムに選んだ 1つまたは複数の点のデータだけを変換して もよい。 テーブル参照型楕円曲線喑号復号プログラム 5002に対する TACTiming Attack)や DPA(Differential Power Analysis)への対策として は, 多くの点データの表現を変換したほうが望ましく, また, 点表現変 換プログラム 8001の実行頻度が多いほうが望ましい。
本実施例においては, 楕円曲線暗号の一種である Elliptic Curve Encryption Scheme (ECES) の復号化機能を持った ICカー ドに適用した例 を示したが, 本発明は, 第 2の実施例と同様, これ以外にも広く適用可 である
• 第 4の実施例
第 1の実施例において, 秘密にすべき情報, すなわち秘密鍵 dは, 秘密 鍵部分情報 d A 1007と秘密鍵部分情報 d B 1008の組によって表現されていた。 より具体的には, dA1007と dB1008の法 nにおける差が秘密鍵 dの値と等し くなるように表現されていた。 また, 第 1の実施例においては, , dA1007 と dB1008は, 0以上 n未満の数として表現されていた。 しかしながらこれ 以外の方法で表現されていてもよい。 例えば dA1007は, 0以上 2n未満の数 として表現されていてもよい。 あるいは, 和や差が秘密鍵 dの値と等しく なるような 3つ以上の数の組として表現されていてもよい。
あるいは, 別の表現として, 例えば, 次のように, 1 0 - 1 の並びとし て d の値が表現されていてもよい。 すなわち表現(Βπ, Β^, Βい Β。)は, 数 2Π Βη + 2""1 Bn_, 21 + 2。 BQ を表すものとする。 ここで, Biは, 1 0 -1 のいずれかであるとする。 この表現は通常の 2進表現の拡 張になっている。 すなわち, この表現方法で, を 0 力、 1 のどちらか だけであるように制限したものが通常の 2進表現である。 なお, 1 0 -1 をメモリ上で表現するためには, 2 ビッ ト分を使って, 00なら 0, 01なら 1, 11なら- 1を表す, といった方法が考えられる。
この表現を使った時には, 第 1の実施例における表現変換プログラム 1010は, 例えば, 次のように変更される。 なお, データ格納部 1004には, 秘密鍵部分情報 dA1007と秘密鍵部分情報 dB1008の組の代わりに, 1, 0, 1 の並びとして表現された秘密鍵情報 d_repが保存されているものとする。 表現変換プログラム(拡張 2進表現)
ステツプ 10001 : はじめ
ステップ 10002 : データ格納部 1004から秘密鍵情報 d_repを読み込む ステップ 10003: 乱数 K, Lを生成する(ここで 0 く K < L 〈 |d— rep| とす る。 ただし I d_rep Iは d_repのビッ ト長)
ステップ 10004: 秘密鍵情報 d— repの第い 1ビッ ト目の値 BLilを Bい , =BL— ): 1 とする
ステップ 10005 : K < i ≤L なるすべての i に対し, 秘密鍵情報 d_rep の第 iビッ ト目の値 を B, = B】 , とする
ステップ 10006: 秘密鍵情報 d— repの第 Kビッ ト目の値 Βκを BK = Βκ - 2 と する
ステップ 10007: 秘密鍵情報 d— repの各ビッ トが 1, 0, -1 のいずれかであ ればステツプ 10013へ
ステップ 10008 : j = Id— rep I とする
ステツプ 10009: d— repの第 jビッ ト目の値 Β·が 2であつたら Bj÷1 = B il + 1, Β3 = 0 とする
ステップ 10010: d_repの第; jビッ ト目の値 が- 2であったら Bj + 1 -- BJtl - 1, Β: = 0 とする
ステツプ 10011 : j = j - 1 とする
ステツプ 10012: j 〉 0 ならステツプ 10007へ
ステツプ 10013: データ格納部 1004に更新された秘密鍵情報 d_repを書き 込む
ステツプ 10014: おわり また, 第 1の実施例における楕円曲線喑号復号プログラム 101 1は, 次 のように変更される。
楕円曲線喑号復号プログラム(拡張 2進表現)
[ステツプ 3004 ]を次のように変更
ステツプ 1 1004: データ格納部 1004から秘密鍵情報 d— repを読み込む [ステツプ 3006 ]を次のように変更
ステップ 1 1006: d_replの第 iビッ ト目 B,が 1 ならステップ 3009へ
[ステップ 3007 ]を次のように変更
ステップ 1 1007: d_replの第 iビッ 卜 力、' - 1 ならステップ 3010へ 本実施例では, 1, 0, 1 の並びとして d の値が表現されていたが, 同 様に 2進表現の拡張を使って, 例えば, 2, 1, 0, 1 の並びとして d の値 を表現してもよい。 また, t, t - l,,, 0, - 1,,, - s ( s, t ≥ 0 )の並びと して d の値を表現してもよい。 さらには, あらゆる d の値を表現でき るのであれば,必ずしも連続していないいくつかの数の並びとして d の 値を表現してもよい。
あるいはまた, 秘密鍵情報 dの値の別の表現として, 積が dと等しくな るような 2つの数の組として表現されていてもよい。 すなわち, 第 1 の 実施例における秘密鍵部分情報 dA 1007と秘密鍵部分情報 dB1008の組の代 わりに, dmA X dmB (mod n) が秘密鍵情報 dの値と等しくなるような 2 つの数の組 dmAと dmBがデータ格納部 1004に保存されているようにしても よい。 あるいは, 積が dと等しくなるような 3つ以上の数の組によって表 現されていてもよい。 さらには, 積とは限らず, あらかじめ決められた 演算結果が秘密鍵情報 dとなるような複数の数の組によって表現されて いてもよい。 なお, これら様々な秘密情報生成情報による表現方法を用 いる場合には, それらを正しく処理できる秘密情報生成情報処理手段を 併せて用いることで所望の結果を得られる。 積が dと等しくなるような 2つの数の組による表現を使った時には,第 1の実施例における表現変換プログラム 1010は, 例えば, 次のように変 更される。
表現変換プログラム(積表現)
ステツプ 12001 : はじめ
ステツプ 12002 : 0より大きく n未満の乱数 kを生成する
ステツプ 12003: データ格納部 1004から dmAおよび dmBを読み込む ステップ 12004 : dm/ = k dmA (mod n) および dmB' = k— 1 dmB (mod n) を 計算する
ステツプ 12005:dmA,および dmB'をそれぞれデータ格納部 1004中の dm,およ び dmBが書かれていたところに書き込む
ステップ 12006 : おわり
また, 第 1の実施例における楕円曲線喑号復号プログラム 1011は, 次 のように変更される。
楕円曲線喑号復号プログラム(積表現)(概略)
ステツプ 13001 : はじめ
ステツプ 13002 : ICカー ド 1001の外部から復号用点 R1013を読み込む ステツプ 13003: データ格納部 1004から dmAおよび dmBを読み込む ステツプ 13004 : Q = dmA R を計算する
ステップ 13005 : Q = dmB Q を計算する
ステツプ 13006 : Qの X座標 xQを復号用共通鍵として出力する
ステツプ 13007: おわり
なお, 上記ステツプ 13004および 13005における楕円曲線上の点のスカ ラー倍演算は, 任意の方法で行ってよい。 例えば, バイナリ法を使って 演算してもよいし, あるいは, dmAや dmBを秘密鍵の値そのものと見なし て他の実施例に示した方法を利用して演算してもよい。 以上, 秘密情報を表す表現方法の例をいくつか示したが, これらを組 み合わせてもよい。 例えば, 異なる, あるいは, 同じ表現方法による複 数の表現をデータ格納部 1004に持っておき, 実際に秘密情報を利用する 演算を行う時に, これらのうちのひとつまたは複数をランダムに選び演 算をおこなってもよい。 また, これらの表現を処理する複数の処理手段 を持っておき, 実際に秘密情報を利用する演算を行う時に, これらのう ちのひとつまたは複数をランダムに選び演算をおこなってもよい。
あるいは, 秘密分散と呼ばれる手法により, あらかじめ秘密情報を n 個中の k 個がそろった時に元の情報が復元できるような n 個に分散し ておき, これら n 個の情報を秘密情報の表現としてもよい。
秘密分散については,
文献 [Shamir] Adi Shamir, How to Share a Secret , Communications of the ACM vol.22, no.11, p.612-613, 1979
に開示されている。
これらの手段により, 秘密裏に保存すべき情報を利用する演算を行つ た時に要する時間や発生する電磁波の強さや消費電流を一定ではないよ うにすることが可能となり, TACTiming Attack), DPACDif ferential Power Analysis), SPACSimple Power Analysis)等によつて秘密鍵の値を推定す ることが困難になる。
本実施例においては, 楕円曲線暗号の一種である Elliptic Curve
Encryption Scheme (ECES) の復号化機能を持った ICカー ドに適用した例 を示したが, 本発明は, 第 1の実施例と同様, これ以外にも広く適用可 能である。 · 第 5の実施例
第 1から第 4までの実施例においては, 主として, 本発明を, 秘密鍵 d と与えられた楕円曲線上の点 Rに対し, dRを計算する処理に適用した例を 示したが, 本発明は, これ以外の処理に対しても有効である。
本発明を,楕円曲線を利用したディ ジタル署名方式である ECDSA 署名 の署名生成機能を持った ICカー ドに適用した一実施例を, 以下, 図を用 いて説明する。 ECDSA署名については, 前記文献 [ I EEEP1363 ]の他, 文献 [X9. 62 ] " Working Draft AMER I CAN NATIONAL STANDARD X9. 62 1998 Publ ic Key Cryptography For The Financial Services Industry: The El liptic Curve Digi tal Signature Algorithm (ECDSA) " , American National Standards Inst i tute, September 20, 1998
に開示されている。
なお, 本実施例において, 秘密裏に保存すべき情報に該当する情報は, ECDSA署名の生成に必要とされる秘密鍵である。 また本実施例では, 素数 位数の有限体上の楕円曲線を利用するものとする。
第 1 0図は, 本実施例における IC力一 ドの構成図である。 第 1の実施 例における ICカー ドの構成図である第 1 図との相違点は, 第 1 0図には 楕円曲線暗号復号プログラム 1011と共通鍵喑号復号プログラム 1012がな いこと,第 1 0図には ECDSA署名生成プログラム 14001があること, IC力一 ド 1001に対する入出力が異なること, および, 第 1 0図では秘密鍵部分 情報 dA1007と秘密鍵部分情報 dB1008の組が表す情報が楕円曲線喑号復号 用秘密鍵ではなく ECDSA署名生成用秘密鍵を意味すること, である。第 1 図と共通の要素については同じ番号が振ってある。
ECDSA署名生成プログラム 14001について説明する。
ECDSA署名生成プログラム 14001は, ICカー ド 1001の外部から署名対象 メ ッセージ 14002を入力し, また, データ格納部 1004から秘密鍵部分情報 dA 1007および秘密鍵部分情報 dB1008を入力し, ディ ジタル署名 14003を計 算し, ICカー ド 1001の外部に出力する。 電子的な署名対象メ ッセージに 対するディ ジタル署名は, 紙の書類に対する印影に相当するもので, 署 名対象メ ッセージの内容を, 署名者すなわち秘密鍵の所有者が保証した ことを示す証拠になる。 ECDSA署名の詳細については, 文献 [ X9. 62 ]に詳 しく述べられている。
I C力一 ド 1001を使った時の署名対象メ ッセージ 14002に対する署名生 成を行う時の表現変換プログラム 1011および ECDSA署名生成プログラム
14001による基本的な動作の流れをまとめると次のようになる。
まず, ECDSA署名生成プログラム 14001が, ICカー ド 1001の外部からの 入力である署名対象メ ッセージ 14002と,データ格納部 1004に保存された 秘密鍵部分情報 dA1007と秘密鍵部分情報 dB1008から, 秘密鍵 dを求めるこ となくディ ジタル署名 14003を計算し, I Cカー ド 1001の外部に出力する。 これにより, ディ ジタル署名を生成することができる。
このように秘密鍵 dがデータ格納部 1004, バス 1003, 演算処理部 1002 に出現することなくディ ジタル署名 14003を生成することができるので, TACTiming Attack) , DPA(Dif f erential Power Analysis ) , SPA(Simple
Power Analysis)等によって秘密鍵の値を推定することが困難になって いる。
この例では, データ格納部 1004に保存された秘密鍵部分情報 dA1007と 秘密鍵部分情報 dB1008の値が固定されている。 したがって, 署名生成を 行うたびに, 固定値である秘密鍵部分情報 dA1007と秘密鍵部分情報 dB1008がデータ格納部 1004からバス 1003を介して演算処理部 1002に毎回 流れることになり, また, ECDSA署名生成プログラム 14001は, 毎回同じ 値を使って計算を行う ことになるため, この間の計算時間や発生する電 磁波の強さや消費電流等もこの固定された値に依存する。 このことは TACTiming Attack) , DPACDiff erential Power Analysis ) , SPA(Simple Power Analys is )等によって秘密鍵部分情報の値を推定される可能性が あることを意味する。
本発明では, これらの攻撃に対するさらなる対策として, 第 1の実施 例と同様に, 表現変換プログラム 1010を利用する。 すなわち, 表現変換 プログラム 1010を実行することにより, 秘密鍵部分情報 dA1007と秘密鍵 部分情報 dB1008の値が別の値に書き換わるため, データ格納部 1004から バス 1003を介して演算処理部 1002へ流れるデータ, ECDSA署名生成プログ ラム 14001を演算処理部 1002で実行した時の時間や発生する電磁波の強 さや消費電流等も異なったものとなる。 これにより, TA(Timing Attack) , DPACDif ferent ial Power Analysi s ) , SPA(Simple Power Analysis )等に よる秘密鍵の値の推定をさらに困難にすることが可能となる。
表現変換プログラム 1010は, ECDSA署名生成プログラム 14001が実行さ れる直前に毎回実行されてもよいし, ECDSA署名生成プログラム 14001が 実行された直後に毎回実行されてもよい。あるいは ECDSA署名生成プログ ラム 14001が何回か実行される毎に実行されてもよい。 あるいはまた ECDSA署名生成プログラム 14001の実行とは無関係に, ランダムな夕イ ミ ングに実行されてもよい。 ECDSA署名生成プログラム 14001に対する TACTiming Attack)や DPA(Dif ferential Power Analys is )への対策として は, 表現変換プログラム 1010の実行頻度が多いほうが望ましい。
次に ECDSA署名生成プログラム 14001の詳細について説明する。
第 1 1図は, 第 1 0図における ECDSA署名生成プログラム 14001のフ 口一を示す。
ステツプ 15001 : はじめ
ステツプ 15002 : I C力一 ド 1001の外部から署名対象メ ッセージ 14002を読 み込む
ステップ 15003 : 署名対象メ ッセージ 14002をハツシュ関数の入力とし メ ッセ一ジのノヽッシュ値 hを得る ステツプ 15004 :データ格納部 1004から秘密鍵部分情報 dA 1007および秘密 鍵部分情報 dB1008を読み込む
ステツプ 15005: 乱数 k を生成する(0 く k く n とする)
ステツプ 15006 : ( X , y ) = k P を計算する
スァップ 15007 : r = X (mod n) とする
ステツプ 15008 : sA = k— 1 (dA r + h) (mod n) を計算する
ステ プ 15009 : sB = k— 1 (dB r I h) (mod n) を計算する
スァップ 15010 : s = sA - sB (mod n) を計算する
ステツプ 1501 1 : ( r, s ) をディ ジタル署名として出力する
ステツプ 15012 : おわり
ここで特徴的な事は, 秘密鍵 dの値それ自身, すなわち, dA - dB (mod n) はこの ECDSA署名生成プログラム 14001中に一度も現れないが,結果と して得られた s は,
s = sA - S D mod n)
= k— 1 (dA r i h) - k— 1 (dB r I h) (mod n)
= k" 1 (d r ! h) (mod n)
を満たすため,秘密鍵 dをつかって計算したのと同じ結果が得られている ということである。
このように, 本実施例においても, dAと dBにわけて保存していること を活かした処理を行うことで, 上記実施例と同様の効果が得られる。 な せなら, せっかく秘密鍵を, 秘密鍵部分情報に分けて保存しておいても, 例えば, 一旦 d = dA - dBという計算によって求めた dの値を使って ECDSA署名 生成を行ってしまつては, 効果が減少してしまうからである。
さらに, 第 1の実施例と同様に, 表現変換プログラム 1010によって, 秘密鍵 dの表現である秘密鍵部分情報 dA1007および秘密鍵部分情報 dB1008の組を変更することにより, ECDSA署名生成プログラム 14001, よ り詳しくは, ECDSA署名生成プログラム 14001のステツプ 15008中の掛け算 dA rおよびステップ 15009中の掛け算 dB rの, 実行にかかる時間や発生す る電磁波の強さや消費電流は秘密鍵 dそのものの値には依存しなくなる。 したがって TA(Timing Attack) , DPA(Dif ferential Power Analysis )など により攻撃によって, 秘密鍵の値を推定することがさらに困難になると いう効果が得られる。
本実施例では, 署名対象メ ッセージのメ ッセージダイジヱス トである ハッシュ値を IC力一 ド 1001の内部で, ECDSA署名生成プログラム 14001の ステップ 15003で求めた力 この処理は I Cカー ド 1001と情報のやり取りが できる外部の装置, 例えば, I Cカー ド 1001と I Cカー ドリーダライタを通 じて情報のやり取りができる PC等で行ってもよい。 この場合, ICカー ド に対する入力は, 署名対象メ ッセージのハツシュ値となる。
本実施例において, ECDSA署名生成プログラム 14001のステツプ 15005 で生成される乱数 k も秘密に保持すべき値である。 なぜなら, ディ ジタ ル署名(r, s ), 秘密鍵 d, 乱数 k, ハッシュ値 hらの間には, s = k—1 (d r 十 h) (mod n) という関係があり, これらのうち, r, s, hは誰もが知ること ができる値であるため, もし, 乱数 kの値が分かれば, 秘密鍵 dの値も計 算によって分かってしまうからである。
ただし, 秘密鍵 dの値が一定であるのに対し, 乱数 kは署名を生成する たびごとにランダムに生成される点で異なるため, TACTiming Attack) , DPACDifferential Power Analysis)などの攻撃によって値が推定される 可能性は秘密鍵に比べて低い。 なお, ここで, 秘密鍵 dの値が一定である というのは, 具体的な表現のことではなく, 本来持っている情報の内容 のことである。
なお, より安全性を高める目的で, 乱数 kに対しても, 本発明を適用す ることは可能である。 例えば, 第 2の実施例と同様にして次のように行 う ことができる。 すなわち, まず, 第 2の実施例におけるテーブルデー 夕計算プログラム 5001により, テーブルデータを計算しておく。 本実施 例においては,固定された点であるベースポィン ト Pに関するテーブルな ので, 第 2の実施例中の説明中で述べたように, テーブルデータは事前 に, 例えば I Cカー ド 1001の外部で, 計算しておく ことが可能である。
ECDSA署名生成プログラム 14001のステツプ 15005で乱数 kを生成した後, これを kAと kBの組として表現してデータ格納部 1004に保存し, さらに表 現変換プログラムにより変換する。 その後 ECDSA署名生成プログラム 14001のステップ 15006における(X , y)を,第 2の実施例におけるテーブル 参照型楕円曲線喑号復号プログラム 5002と同様にして計算する。 ECDSA 署名生成プログラム 14001のステツプ 15008およびステツプ 15009で使う 値 1 は, 例えば, 次のようにして計算すればよい。 まず, t = kB ' - kA- 1 (mod n) を計算する。 次に t- 1 k— 1 - 1 (mod n) を計算する。 これ^ k 1 と等しくなる。
ここで特徴的な事は, この 1 を求める演算中に, k 自身の値は現れ ないことである。 これにより k— 1 を求める演算にかかる時間や発生する 電磁波の強さや消費電流は k そのものの値には依存しなくなる。 した がって TA(Timing Attack) , DPA(Dif f erential Power Analysis )などによ り攻撃によって, 乱数 kの値を推定することが困難になる。
本実施例においては, ディ ジタル署名の一種である ECDSA署名の署名 生成機能を持った ICカー ドに適用した例を示したが, 本発明は, これ以 外にも広く適用可能である。
例えば, 利用する楕円曲線は, 第 1の実施例で述べた他の楕円曲線で もよい。 また, 楕円曲線上の離散対数問題の困難性を利用したディ ジ夕 ル署名にかぎらず, 第 1の実施例で述べた他の群の上の離散対数問題の 困難性を利用したディ ジタル署名であつてもよい。 あるいは, ディ ジタル署名でなくても, より一般に, 群 G1から群 G2へ の準同型写像 fがあって, 秘密裏に保持すべき群 G1の元 gから群 G2の元 f(g)を計算する装置がある時, この装置に対する TA(Timing Attack), DPA(Dif f erential Power Analysis ), SPA(Simple Power Analysis)等に より gが推定される可能性は, 本発明によれば, 例えば, 次のようにして 減らすことができる。
まず g = gl · g2 ( · は群 G1の演算を表す)となる glと g2 の組により g を表現し, データ保存部に保存しておく。
次に, ランダムに選んだ G1の元 hについて, gl' =h' gl, g2, =h— 1 · g2 (h 1 は群 Glの演算 · に関する hの逆元を表す)を計算し, glを gl'で g2を g2'で おきかえるプログラムを実行する。 これを表現変換プログラムと呼ぶ。 最後に, f(g)の値を得るために, f(gl) f(g2) (#は群 G2の演算を表す) を計算する。 fは準同型写像だから, f(gl)#:f(g2)は f(g)に等しい。
このように適宜,表現変換プログラムを実行するたびに,その後の f(g) の値を求める処理に要する時間や発生する電磁波の強さや消費電流は異 なるものになる。 これにより, TA(Timing Attack), DPACDiff erential Power Analysis), SPACSimple Power Analysis)等によって秘密鍵の値を 推定することが困難になる。 なお, ここで, 準同型写像とは, 群から群 への写像であって, 演算を保つような写像のことである。
• 第 6の実施例
本発明を, 電子商取引におけるメ ッセージの送受に適用した一実施例 を, 以下, 図を用いて説明する。
以下の実施例では, 一般消費者であるカー ドホルダが, 販売店である マーチャン トに対し, 商品の購入要求を行う時の処理について説明する。 図 1 2は, 本実施例におけるシステム構成図である。 図 1 2において, ネッ トワーク 16001に, 一般消費者であるカー ドホルダのコンピュー夕 16002, 販売店であるマ一チャン トのコンピュータ 16003, および, 認証 局 16004が接続されている。 ここで, 認証局とは, 公開鍵の正当性を保証 する証明書を発行する機関である。
カー ドホルダのコンピュータ 16002は, CPU16005, メモリ 16006からな り, ディスプレイ 16007, キーボー ド 16008, および, IC力一 ドリ一ダラ イタ 16009が接続されており, また, ネッ トワーク 16001に接続されてい る。 カー ドホルダはまた署名用 ICカー ド 16010を所有しており, 署名用 IC カー ド 16010とコンピュー夕 16002とは, I Cカー ドリ一ダライ夕 16009を通 して, 情報のやり取りが可能となっている。 この署名用 ICカー ド 16010 は, 第 5の実施例に示した ICカー ドと同じものである。
マ一チャン トのコンピュータ 16003は, CPU16011 , メモリ 16012からな り, ディスプレイ 16013, および, キーボー ド 16014が接続されており, また, ネッ トワーク 16001に接続されている。
カー ドホルダのコンピュー夕 16002のメモリ 16006内には公開鍵 16015 が, また, 力一 ドホルダの所有する署名用 ICカー ド 16010のメモリ内には, 公開鍵 16015とペアになる秘密鍵に係わる情報やプログラム力 本発明を 適用した形で保存されている。 これらの情報は, カー ド発行者, 例えば クレジッ ト会社, によって, あらかじめ秘密鍵に係わる情報やプログラ ムが書き込まれた I C力一 ドと, 公開鍵情報が入った FDや CD ROMなどの記 録媒体が, 送られてく ることにより設定されるものである。 あるいは, 公開鍵情報は有線無線などの伝送媒体によって送られてく るものとして もよい。 あるいは, カー ド発行者から送られてきた ICカー ドに鍵生成機 能が組み込まれていて, それをカー ドホルダが実行することによって設 定されるものとしてもよい。 あるいはまた, カー ド発行者から, カー ド ホルダのコンピュー夕上で実行可能な鍵生成プログラムが, FDや CD-ROM などの記録媒体や有線無線などの伝送媒体によって送られてきて, それ を力一 ドホルダが実行することによって, 送られてく る I C力一 ドに設定 されるものとしてもよい。 鍵生成機能付きの I Cカー ドを利用する方法の 場合は, 秘密鍵に関する情報が, I Cカー ドの外部に漏れることがないた め, セキュ リティ上の観点からはこの方法が一番望ましい。なお, I Cカー ド内の秘密鍵は, 第 5の実施例と同様に, 本発明を適用した保存方法に よって保存されているものとする。 また, 上記実施例を適用した秘密情 報生成情報による秘密情報の表現方法やその秘密情報生成情報を処理す るプログラムは, 個々の I Cカー ドによって異ならせても良いし同じで あっても良い。 異ならせる方がより安全性が高まる。
マーチャン トのコンピュー夕 16003のメモリ 16012内には, あらかじめ, 署名検証プログラム 16018, および, システム鍵 16019が設定されている c これらは,カー ドホルダの所有する署名用 I Cカー ド 16010に対応するよう に設定されているものとする。署名検証プログラム 16018の詳細について は, 文献 [ X9. 62 ]に述べられている。
次に, カー ドホルダの行う処理について説明する。
はじめに力一 ドホルダは, 認証局 16004に公開鍵証明書 16016を発行し てもらうため, 公開鍵 16015を送る。 認証局 16004はカー ドホルダからの 要求に応じ, 周知の方法で, 公開鍵証明書 16016を発行してカー ドホルダ のコンピュー夕 16002に送る。この処理は一つの公開鍵に対し一度だけ必 要な処理である。 言い換えると, 購入要求メ ッセージを送信する処理を 行うたびに必要なわけではない。 また, 認証局が公開鍵証明書を発行す る手順中には, ディ ジタル署名を生成する過程が含まれるため, この過 程に対しても本発明を適用することは可能である。
次に, カー ドホルダが購入要求メ ッセージをマーチャン トに送信する 際の処理について, 説明する。 カー ドホルダのコンピュー夕 16002は, 購入要求メ ッセージ 16017を作 成し,メモリ 16006内に保存する。この購入要求メ ッセージ 16017を ICカー ドリーダライタ 16009を通じて, 署名用 ICカー ド 16010に送り, 本発明に よる方法に従ってディ ジタル署名 16020を生成させ, これもメモリ 16006 内に保存する。
このディ ジタル署名 16020が, 購入要求メ ッセージ 16017の内容が確か にカー ドホルダによつて確認されたことを示す証拠となり, 通常の紙の 書類における印影に相当する。 すなわち, 通常の紙の書類に対する印鑑 に相当するのが, 署名用 ICカー ド 16010内に保存された秘密鍵になる。 し たがって, もし, 署名用 ICカー ド 16010内に保存された秘密鍵を, 悪意の ある人が知ってしまう と, 正当な所有者である力一 ドホルダになりすま して, 購入要求を行う ことができるようになってしまう。
本実施例によれば, 今まで述べてきたように署名用 ICカー ドに対する これらの攻撃法により秘密鍵を推定することが困難になる。
カー ドホルダのコンピュータ 16002は, ディ ジタル署名 16020を生成し た後, 購入要求メ ッセージ 16017, 公開鍵 16015, 公開鍵証明書 16016, お よび, ディ ジタル署名 16020をまとめて送信文 16021として, ネッ トヮ一 ク 16001を通じて, マ一チャン トに送る。
マーチャン トは, 送信文 16021を受け取ると, まず, 周知の方法により, 公開鍵証明書 16016を使って公開鍵 16015が正当なものであることを確認 した後, 署名検証プログラム 16018を実行することにより, 購入要求メ ッ セ一ジ 16017が確かにカー ドホルダによって作成されたものかどうかを, ディ ジタル署名 16020 ,公開鍵 16015およびシステム鍵 16019などを利用 して調べる。 その結果, ディ ジタル署名 16020の正当性が確認されれば, 購入要求メ ッセージ 16017の内容は信頼できるものであるとし,取引を継 続する。 一方, もしディ ジタル署名 16020の正当性が確認されなければ, ネッ トワーク 16001中で改ざんされた, あるいは, 正しい力一 ドホルダで ない人によって購入要求メ ッセージ 16017が作成された等,何らかの不正 があったものとし, 取引は中止する。 産業上の利用可能性
本発明により, 各種攻撃法に対して安全な, 演算方法および情報の保 持方法およびこれらの方法を利用した I Cカー ド, セキュ リティ モジユ ー ル, 半導体チップ, システム, コンピュータ, プログラムを提供するこ とができる。

Claims

請 求 の 範 囲
1 .
演算処理回路と記憶回路とそれらを接続する信号線とで構成した秘密 情報の処理装置において,
秘密情報と処理対象となるデータとを既知の処理方法に甚づいて処理 した処理結果と同一の処理結果を得るように構成された秘密情報の処理 装置であって,
前記記憶回路は,
前記秘密情報とは異なる秘密情報生成情報と,
前記秘密情報^成情報と前記処理対象となるデータとを用い, 前記秘 密情報を前記演算処理回路や前記記憶回路や前記信号線に出現させるこ となく, 前記処理結果を出力する秘密情報生成情報処理手段とを保持し, 前記演算処理回路は, 前記秘密情報生成情報処理手段を実行すること を特徴とする秘密情報の処理装置。
2 .
請求項 1記載の秘密情報の処理装置において,
前記記憶回路は, 前記秘密情報生成情報を複数の秘密情報部分情報と して保持することを特徴とする秘密情報の処理装置。
3 .
請求項 1 または 2記載の秘密情報の処理装置において,
前記記憶回路は, 前記秘密情報生成情報を他の秘密情報生成情報へ変 換する変換手段をさらに備え,
前記他の秘密情報生成情報は, 前記秘密情報生成情報処理手段が前記 処理結果と同一の処理結果を出力させる情報であることを特徴とする秘 密情報の処理装置。 4 .
請求項 1ないし 3いずれか一に記載の秘密情報の処理装置において, 前記秘密情報は, 公開鍵暗号技術における, 復号化またはディ ジタル 署名を生成するための秘密鍵であることを特徴とする秘密情報の処理装
0 .
請求項 1ないし 4いずれか一に記載の秘密情報の処理装置において, 前記演算処理回路は, 前記変換手段を, 所定の時期に実行するこ とを 特徴とする秘密情報の処理装置。
6 .
演算処理回路と記憶回路とそれらを接続する信号線とで構成した処理 装置における秘密情報の処理プログラムにおいて,
秘密情報と処理対象となるデー夕とを既知の処理方法に基づいて処理 した処理結果と同一の処理結果を得るように構成された秘密情報の処理 プログラムであって,
前記秘密情報とは異なる秘密情報生成情報と前記処理対象となるデー 夕とを用い,
前記秘密情報を前記演算処理回路や前記記憶回路や前記信号線に出現 させることなく,
前記演算処理回路に, 前記処理結果を出力させるように構成したこと を特徴とする秘密情報の処理プログラム。
7 .
請求項 6記載の秘密情報の処理プログラムにおいて,
前記秘密情報の処理プログラムは, 前記秘密情報生成情報として複数 の秘密情報部分情報を処理することを特徴とする秘密情報の処理プログ ラム。
8 .
請求項 6または 7記載の秘密情報の処理プログラムにおいて, 前記秘密情報生成情報を他の秘密情報生成情報へ変換する変換手段を さらに備え,
前記秘密情報の処理プログラムは, 他の秘密情報生成情報を用いて, 前記処理結果と同一の処理結果を出力することを特徴とする秘密情報の 処理プログラム。 9 .
請求項 1ないし 5いずれかに記載の秘密情報の処理装置を用いて, 前 記秘密情報を用いた処理結果を送受信する秘密情報の処理システムで あっ こ,
前記処理結果の受信者側装置は, 前記秘密情報生成情報処理手段と前 記秘密情報生成情報とを, 前記処理装置の前記記憶回路に設定する手段 を備え,
処理装置の使用者側装置は, 前記処理装置に処理対象となるデータを 入力する手段と, 前記処理装置から前記処理結果を受け取る手段と, 前 記受け取った処理結果を前記受信者側装置へ送信する手段と
を備えることを特徴とする秘密情報の処理システム。
PCT/JP1999/005353 1999-09-29 1999-09-29 Dispositif, programme ou systeme de traitement d'informations secretes WO2001024439A1 (fr)

Priority Applications (8)

Application Number Priority Date Filing Date Title
KR10-2000-7009164A KR100373669B1 (ko) 1999-09-29 1999-09-29 비밀 정보의 처리 장치, 비밀 정보의 처리 프로그램을 기록한 기록 매체 및 처리 시스템
US09/622,371 US6873706B1 (en) 1999-09-29 1999-09-29 Processing apparatus, program, or system of secret information
JP2001527499A JP4671571B2 (ja) 1999-09-29 1999-09-29 秘密情報の処理装置および秘密情報の処理プログラムを格納するメモリ
EP99973813A EP1217783B9 (en) 1999-09-29 1999-09-29 Device, program or system for processing secret information
DE69940372T DE69940372D1 (de) 1999-09-29 1999-09-29 Vorrichtung, programm oder system zur verarbeitung geheimer informationen
PCT/JP1999/005353 WO2001024439A1 (fr) 1999-09-29 1999-09-29 Dispositif, programme ou systeme de traitement d'informations secretes
AU59992/99A AU762650B2 (en) 1999-09-29 1999-09-29 Device, program or system for processing secret information
AU2003252789A AU2003252789B2 (en) 1999-09-29 2003-10-03 Processing apparatus, program, or system of secret information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP1999/005353 WO2001024439A1 (fr) 1999-09-29 1999-09-29 Dispositif, programme ou systeme de traitement d'informations secretes

Publications (1)

Publication Number Publication Date
WO2001024439A1 true WO2001024439A1 (fr) 2001-04-05

Family

ID=14236839

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1999/005353 WO2001024439A1 (fr) 1999-09-29 1999-09-29 Dispositif, programme ou systeme de traitement d'informations secretes

Country Status (7)

Country Link
US (1) US6873706B1 (ja)
EP (1) EP1217783B9 (ja)
JP (1) JP4671571B2 (ja)
KR (1) KR100373669B1 (ja)
AU (1) AU762650B2 (ja)
DE (1) DE69940372D1 (ja)
WO (1) WO2001024439A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003518872A (ja) * 1999-12-28 2003-06-10 ギーゼッケ ウント デフリエント ゲーエムベーハー 鍵の細分化によってアクセスを防止する携帯可能なデータ記憶媒体
WO2005008955A1 (ja) * 2003-07-22 2005-01-27 Fujitsu Limited 個人鍵を用いた耐タンパ暗号処理
WO2007074836A1 (ja) * 2005-12-28 2007-07-05 Matsushita Electric Industrial Co., Ltd. 署名生成装置、署名生成方法及び署名生成プログラム
JP2008233941A (ja) * 2005-04-28 2008-10-02 Matsushita Electric Ind Co Ltd 暗号処理装置および暗号処理方法
JP2010034682A (ja) * 2008-07-25 2010-02-12 Dainippon Printing Co Ltd 暗号処理装置
JP2013524263A (ja) * 2010-03-31 2013-06-17 イルデト カナダ コーポレーション ホワイトボックス攻撃から暗号化資産を保護するためのシステムと方法
CN103679008A (zh) * 2012-09-03 2014-03-26 江苏东大集成电路系统工程技术有限公司 一种高效的安全芯片功耗攻击测试方法
JP2016012931A (ja) * 2015-08-28 2016-01-21 ルネサスエレクトロニクス株式会社 半導体装置

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7092523B2 (en) * 1999-01-11 2006-08-15 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
US7599491B2 (en) * 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
EP1217783B9 (en) 1999-09-29 2009-07-15 Hitachi, Ltd. Device, program or system for processing secret information
ATE366443T1 (de) * 2000-05-22 2007-07-15 Infineon Technologies Ag Sicherheits-datenverarbeitungseinheit sowie dazugehöriges verfahren
US7308096B2 (en) * 2000-05-30 2007-12-11 Hitachi, Ltd. Elliptic scalar multiplication system
US9323955B2 (en) * 2000-12-21 2016-04-26 Gemalto Sa Method for protecting a logic or mathematical operator installed in an electronic module with a microprocessor as well as the associated embedded electronic module and the system
FR2820914A1 (fr) * 2001-02-15 2002-08-16 Bull Cp8 Procede de securisation d'un ensemble electronique mettant en oeuvre en algorithme cryptographique utilisant des operations booleennes et des operations arithmetiques, et systeme embarque correspondant
JP4596686B2 (ja) * 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
DE10148415C2 (de) * 2001-09-29 2003-07-31 Univ Braunschweig Tech Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
JP4045777B2 (ja) * 2001-10-30 2008-02-13 株式会社日立製作所 情報処理装置
CN1640051B (zh) * 2002-03-07 2011-05-18 艾斯奥托公司 使具有秘密密钥的电子密码装置安全的方法
US7549059B2 (en) * 2002-06-26 2009-06-16 Arm Limited Transferring data values via a data bus or storing data values using a selectable representation
JP3881942B2 (ja) * 2002-09-04 2007-02-14 松下電器産業株式会社 暗号化部を有する半導体装置
KR100451570B1 (ko) * 2002-10-29 2004-10-08 (주)미래스멕스 에스피에이에 견디는 타원 곡선 암호화 알고리즘을구현하는 방법 및 장치
KR100453230B1 (ko) * 2002-11-08 2004-10-15 한국전자통신연구원 초타원곡선 암호화 프로세싱 장치
DE10253285B4 (de) * 2002-11-15 2018-11-15 Giesecke+Devrient Mobile Security Gmbh Verschleierung eines geheimen Wertes
US7587051B2 (en) 2003-01-13 2009-09-08 Denis Bisson System and method for securing information, including a system and method for setting up a correspondent pairing
DE10308092A1 (de) * 2003-02-24 2004-09-02 Schenck Process Gmbh Verfahren und Vorrichtung zur digitalen Sicherung von Meßwerten
DE502004006338D1 (de) * 2003-09-30 2008-04-10 Siemens Ag Einräumung eines zugriffs auf ein computerbasiertes objekt
US7711957B2 (en) * 2003-09-30 2010-05-04 Siemens Aktiengesellschaft Granting access to a computer-based object
JP4428036B2 (ja) * 2003-12-02 2010-03-10 ソニー株式会社 情報処理装置および方法、プログラム、並びに、情報処理システムおよび方法
FR2873523B1 (fr) * 2004-07-22 2007-08-10 Sagem Procede et dispositif d'execution d'un calcul cryptographique
JPWO2006030496A1 (ja) * 2004-09-15 2008-05-08 三菱電機株式会社 楕円曲線暗号演算装置、楕円曲線を用いた演算装置の演算方法および楕円曲線上の点のスカラー倍演算をコンピュータに実行させるプログラム
KR20060081847A (ko) * 2005-01-10 2006-07-13 삼성전자주식회사 비밀키를 보호하는 스마트 카드 및 그것의 방법
CA2592875C (en) 2005-01-18 2016-09-06 Certicom Corp. Accelerated verification of digital signatures and public keys
US8467535B2 (en) * 2005-01-18 2013-06-18 Certicom Corp. Accelerated verification of digital signatures and public keys
WO2006077651A1 (ja) * 2005-01-24 2006-07-27 Fujitsu Limited 電力解析攻撃に対する耐タンパ性を持った暗号化処理装置
US7610628B2 (en) * 2005-03-01 2009-10-27 Infineon Technologies Ag Apparatus and method for calculating a representation of a result operand
KR101194837B1 (ko) * 2005-07-12 2012-10-25 삼성전자주식회사 멱지수를 숨기는 dpa 대책의 고속 계산을 위한 암호화장치 및 방법
WO2007045258A1 (en) 2005-10-18 2007-04-26 Telecom Italia S.P.A. A method for scalar multiplication in elliptic curve groups over prime fields for side-channel attack resistant cryptosystems
ATE466329T1 (de) 2005-10-28 2010-05-15 Telecom Italia Spa Verfahren zur skalarmultiplikation in gruppen elliptischer kurven über binäre polynomische körper für nebenkanalattacken-beständige kryptosysteme
WO2007088796A1 (en) * 2006-01-31 2007-08-09 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
US8997255B2 (en) 2006-07-31 2015-03-31 Inside Secure Verifying data integrity in a data storage device
US8301890B2 (en) * 2006-08-10 2012-10-30 Inside Secure Software execution randomization
US7613907B2 (en) * 2006-08-11 2009-11-03 Atmel Corporation Embedded software camouflage against code reverse engineering
US8352752B2 (en) 2006-09-01 2013-01-08 Inside Secure Detecting radiation-based attacks
US7554865B2 (en) * 2006-09-21 2009-06-30 Atmel Corporation Randomizing current consumption in memory devices
US7860244B2 (en) * 2006-12-18 2010-12-28 Sap Ag Secure computation of private values
US8559625B2 (en) * 2007-08-07 2013-10-15 Inside Secure Elliptic curve point transformations
US7991162B2 (en) * 2007-09-14 2011-08-02 University Of Ottawa Accelerating scalar multiplication on elliptic curve cryptosystems over prime fields
US8233615B2 (en) * 2008-01-15 2012-07-31 Inside Secure Modular reduction using a special form of the modulus
US8619977B2 (en) * 2008-01-15 2013-12-31 Inside Secure Representation change of a point on an elliptic curve
FR2926652B1 (fr) * 2008-01-23 2010-06-18 Inside Contactless Procede et dispositifs de contre-mesure pour cryptographie asymetrique a schema de signature
US8139765B2 (en) * 2008-12-29 2012-03-20 King Fahd University Of Petroleum & Minerals Elliptical polynomial-based message authentication code
US8964988B2 (en) * 2010-07-23 2015-02-24 Nippon Telegraph And Telephone Corporation Secret sharing system, sharing apparatus, share management apparatus, acquisition apparatus, secret sharing method, program and recording medium
US8705730B2 (en) * 2010-12-23 2014-04-22 Morega Systems Inc. Elliptic curve cryptography with fragmented key processing and methods for use therewith
CN102110206B (zh) * 2010-12-27 2013-01-16 北京握奇数据系统有限公司 防御攻击的方法和具有攻击防御功能的装置
US8624624B1 (en) 2011-08-26 2014-01-07 Lockheed Martin Corporation Power isolation during sensitive operations
US8525545B1 (en) 2011-08-26 2013-09-03 Lockheed Martin Corporation Power isolation during sensitive operations
US8745376B2 (en) 2011-10-14 2014-06-03 Certicom Corp. Verifying implicit certificates and digital signatures
US8334705B1 (en) 2011-10-27 2012-12-18 Certicom Corp. Analog circuitry to conceal activity of logic circuitry
US8635467B2 (en) 2011-10-27 2014-01-21 Certicom Corp. Integrated circuit with logic circuitry and multiple concealing circuits
CN104811445B (zh) * 2015-04-20 2018-03-27 深圳市文鼎创数据科技有限公司 一种时间攻击安全性评估的方法及系统
KR20200046481A (ko) * 2018-10-24 2020-05-07 삼성전자주식회사 난수 생성기, 이를 포함하는 암호화 장치 및 이의 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0376447A (ja) * 1989-08-18 1991-04-02 Sharp Corp 秘話装置
JPH10282881A (ja) * 1997-04-04 1998-10-23 Nippon Telegr & Teleph Corp <Ntt> 秘密鍵分散管理方法
JPH11316542A (ja) * 1998-03-05 1999-11-16 Matsushita Electric Ind Co Ltd 楕円曲線変換装置、利用装置及び利用システム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5825880A (en) * 1994-01-13 1998-10-20 Sudia; Frank W. Multi-step digital signature method and system
US5768389A (en) * 1995-06-21 1998-06-16 Nippon Telegraph And Telephone Corporation Method and system for generation and management of secret key of public key cryptosystem
US5937066A (en) * 1996-10-02 1999-08-10 International Business Machines Corporation Two-phase cryptographic key recovery system
WO1998036520A1 (en) 1997-02-13 1998-08-20 Secure Transaction Solutions, Llc Cryptographic key split combiner
US7212632B2 (en) * 1998-02-13 2007-05-01 Tecsec, Inc. Cryptographic key split combiner
US6411715B1 (en) * 1997-11-10 2002-06-25 Rsa Security, Inc. Methods and apparatus for verifying the cryptographic security of a selected private and public key pair without knowing the private key
EP0936776B1 (en) * 1998-02-13 2004-05-19 Hitachi, Ltd. A network system using a threshold secret sharing method
EP1217783B9 (en) 1999-09-29 2009-07-15 Hitachi, Ltd. Device, program or system for processing secret information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0376447A (ja) * 1989-08-18 1991-04-02 Sharp Corp 秘話装置
JPH10282881A (ja) * 1997-04-04 1998-10-23 Nippon Telegr & Teleph Corp <Ntt> 秘密鍵分散管理方法
JPH11316542A (ja) * 1998-03-05 1999-11-16 Matsushita Electric Ind Co Ltd 楕円曲線変換装置、利用装置及び利用システム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BRUCE SCHNEIER: "applied cryptography, 3.7 secret sharing", 1996, JOHN WILEY & SONS, XP002945863 *
KAJI,Y.ET AL.: "Password Jizen Sengen ni yoru Kojin Ninshouhou; Jiki Card wo mochiita Anzenna Kojin Ninshouhou", TECHNICAL RESEARCH REPORT OF THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS (ISEC95-39-44), vol. 95, no. 423, 15 December 1995 (1995-12-15), pages 21 - 28, XP002945865 *
KAZOU TAKARAGI ET AL.: "Sosetsu Shou Tokushuu 'Card', Card Shakai to Seculity Gijutsu", NIPPON INSTASU GAKKAISHI, vol. 29, no. 3, 31 May 1992 (1992-05-31), pages 288 - 295, XP002945864 *
See also references of EP1217783A4 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003518872A (ja) * 1999-12-28 2003-06-10 ギーゼッケ ウント デフリエント ゲーエムベーハー 鍵の細分化によってアクセスを防止する携帯可能なデータ記憶媒体
JP4841785B2 (ja) * 1999-12-28 2011-12-21 ギーゼッケ ウント デフリエント ゲーエムベーハー 鍵の細分化によってアクセスを防止する携帯可能なデータ記憶媒体
JP4632950B2 (ja) * 2003-07-22 2011-02-16 富士通株式会社 個人鍵を用いた耐タンパ暗号処理
WO2005008955A1 (ja) * 2003-07-22 2005-01-27 Fujitsu Limited 個人鍵を用いた耐タンパ暗号処理
JPWO2005008955A1 (ja) * 2003-07-22 2006-09-07 富士通株式会社 個人鍵を用いた耐タンパ暗号処理
US8184805B2 (en) 2005-04-28 2012-05-22 Panasonic Corporation Program converter, encrypting device, and encrypting method
US7724897B2 (en) 2005-04-28 2010-05-25 Panasonic Corporation Program converter, encrypting device, and encrypting method
JP2008233941A (ja) * 2005-04-28 2008-10-02 Matsushita Electric Ind Co Ltd 暗号処理装置および暗号処理方法
WO2007074836A1 (ja) * 2005-12-28 2007-07-05 Matsushita Electric Industrial Co., Ltd. 署名生成装置、署名生成方法及び署名生成プログラム
US8280039B2 (en) 2005-12-28 2012-10-02 Panasonic Corporation Signature generating device, signature generating method and signature generating program
JP2010034682A (ja) * 2008-07-25 2010-02-12 Dainippon Printing Co Ltd 暗号処理装置
JP2013524263A (ja) * 2010-03-31 2013-06-17 イルデト カナダ コーポレーション ホワイトボックス攻撃から暗号化資産を保護するためのシステムと方法
US9009481B2 (en) 2010-03-31 2015-04-14 Irdeto Canada Corporation System and method for protecting cryptographic assets from a white-box attack
CN103679008A (zh) * 2012-09-03 2014-03-26 江苏东大集成电路系统工程技术有限公司 一种高效的安全芯片功耗攻击测试方法
JP2016012931A (ja) * 2015-08-28 2016-01-21 ルネサスエレクトロニクス株式会社 半導体装置

Also Published As

Publication number Publication date
KR100373669B1 (ko) 2003-02-26
AU762650B2 (en) 2003-07-03
DE69940372D1 (de) 2009-03-19
JP4671571B2 (ja) 2011-04-20
EP1217783A4 (en) 2004-05-12
US6873706B1 (en) 2005-03-29
EP1217783B9 (en) 2009-07-15
KR20020025630A (ko) 2002-04-04
EP1217783B1 (en) 2009-01-28
AU5999299A (en) 2001-04-30
EP1217783A1 (en) 2002-06-26

Similar Documents

Publication Publication Date Title
WO2001024439A1 (fr) Dispositif, programme ou systeme de traitement d&#39;informations secretes
US7308096B2 (en) Elliptic scalar multiplication system
US7940927B2 (en) Information security device and elliptic curve operating device
US7961874B2 (en) XZ-elliptic curve cryptography with secret key embedding
US7764785B2 (en) Method for communicating securely over an insecure communication channel
US20080063193A1 (en) Crypto-communication method, recipient-side device, key management center-side device and program
CN110663215B (zh) 在白盒场景中的椭圆曲线点乘设备和方法
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
US20050157872A1 (en) RSA public key generation apparatus, RSA decryption apparatus, and RSA signature apparatus
US20100322422A1 (en) Method for elliptic curve scalar multiplication using parameterized projective coordinates
EP1296224B1 (en) Elliptic scalar multiplication system
JP2004304800A (ja) データ処理装置におけるサイドチャネル攻撃防止
US11336425B1 (en) Cryptographic machines characterized by a Finite Lab-Transform (FLT)
JP2003255831A (ja) 楕円曲線スカラー倍計算方法及び装置
US7146006B1 (en) Method for improving a random number generator to make it more resistant against attacks by current measuring
US20210352054A1 (en) Methods and devices for generating a symmetric session key for encrypted communication
JP3878853B2 (ja) 公開鍵暗号アルゴリズムを用いる電子構成品におけるモジュラべき乗演算アルゴリズム
US20050220298A1 (en) Cryptographic method for distributing load among several entities and devices therefor
KR100564599B1 (ko) 역원 계산 회로, 역원계산 방법 및 상기 역원계산 방법을실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수있는 기록매체
KR100953715B1 (ko) Crt-rsa 모듈라 지수승 알고리즘을 이용한 디지털서명 방법, 그 장치 및 이를 기록한 컴퓨터 판독가능 저장매체
US7760884B2 (en) Cryptographic method and devices for facilitating calculations during transactions
AU2003252789B2 (en) Processing apparatus, program, or system of secret information
Ghadi Improving the Robustness of RSA Encryption Through Input-Based Key Generation.
WO2004070681A2 (ja) 楕円曲線スカラー倍計算方法および装置
Mohanta et al. and Vishnu Narayan Mishra

Legal Events

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

Ref document number: 1999973813

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 59992/99

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 1020007009164

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 09622371

Country of ref document: US

AK Designated states

Kind code of ref document: A1

Designated state(s): AU CA CN JP KR SG US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref country code: JP

Ref document number: 2001 527499

Kind code of ref document: A

Format of ref document f/p: F

WWP Wipo information: published in national office

Ref document number: 1020007009164

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 1999973813

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1020007009164

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: 59992/99

Country of ref document: AU