JP5261088B2 - Unauthorized operation detection circuit, device provided with unauthorized operation detection circuit, and unauthorized operation detection method - Google Patents
Unauthorized operation detection circuit, device provided with unauthorized operation detection circuit, and unauthorized operation detection method Download PDFInfo
- Publication number
- JP5261088B2 JP5261088B2 JP2008231269A JP2008231269A JP5261088B2 JP 5261088 B2 JP5261088 B2 JP 5261088B2 JP 2008231269 A JP2008231269 A JP 2008231269A JP 2008231269 A JP2008231269 A JP 2008231269A JP 5261088 B2 JP5261088 B2 JP 5261088B2
- Authority
- JP
- Japan
- Prior art keywords
- state value
- change condition
- state
- transition
- fault
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
Description
本発明は、不正操作検知回路、不正操作検知回路を備えた装置、及び不正操作検知方法に係り、特にアルゴリズムの実行状態を状態(ステート)値により管理する装置への不正操作を検知する不正操作検知回路、不正操作検知回路を備えた装置、及び不正操作検知方法に関する。 The present invention relates to an unauthorized operation detection circuit, an apparatus provided with an unauthorized operation detection circuit, and an unauthorized operation detection method, and more particularly, an unauthorized operation for detecting an unauthorized operation on a device that manages an execution state of an algorithm by a state value. The present invention relates to a detection circuit, an apparatus including an unauthorized operation detection circuit, and an unauthorized operation detection method.
例えばアルゴリズムの実行状態を状態(ステート)値により管理する装置の一例としては任意の暗号機能を搭載したスマートカード(ICカード)がある。従来の暗号機能を搭載したスマートカードには、暗号プロセッサ内部の秘密鍵に対するフォールト攻撃と呼ばれる攻撃を防ぐための耐タンパ技術が用いられているものがある。 For example, an example of a device that manages the execution state of an algorithm by a state value is a smart card (IC card) equipped with an arbitrary encryption function. Some smart cards equipped with a conventional encryption function use a tamper resistant technique for preventing an attack called a fault attack against a secret key inside a cryptographic processor.
暗号方式は共通鍵暗号方式と公開鍵暗号方式とに大別される。共通鍵暗号方式は暗号化と復号とで同一の鍵(秘密鍵)を用いる方式であり、この秘密鍵を送信者及び受信者以外の第三者にわからない情報とすることで安全性を保つものである。公開鍵暗号方式は暗号化と復号とで異なる鍵を用いる方式であり、暗号化を行うための鍵(公開鍵)を一般に公開する代わりに、暗号文を復号するための鍵(秘密鍵)を受信者のみの秘密情報とすることで安全性を保つものである。 Encryption methods are roughly classified into common key encryption methods and public key encryption methods. The common key cryptosystem uses the same key (secret key) for encryption and decryption, and keeps the security by making this secret key information unknown to a third party other than the sender and receiver. It is. Public key cryptography is a scheme that uses different keys for encryption and decryption, and instead of publicly disclosing the key for encryption (public key), the key (secret key) for decrypting the ciphertext is used. Security is kept by using confidential information only for the recipient.
暗号の分野における技術の一つには、攻撃技術とよばれるものがある。攻撃技術とは秘密鍵を暗号文等の入手可能な情報から推定する技術のことであり、様々な手法が存在している。これらの攻撃技術は2種類に大別される。 One technology in the field of cryptography is called attack technology. The attack technique is a technique for estimating a secret key from available information such as ciphertext, and there are various techniques. These attack techniques are roughly classified into two types.
一つの攻撃技術は、理論攻撃と呼ばれるものであり、暗号アルゴリズムの入力データと出力データとの関係から秘密鍵を求める攻撃法である。この攻撃法は、攻撃対象となる暗号アルゴリズムの実装の形態に依存せず、成功することが特徴である。 One attack technique is called a theoretical attack, and is an attack method for obtaining a secret key from the relationship between input data and output data of a cryptographic algorithm. This attack method is characterized by success without depending on the implementation form of the cryptographic algorithm to be attacked.
もう一つの攻撃技術は、実装攻撃と呼ばれるものであり、暗号アルゴリズムを実装した装置に対して、入力データ、出力データの関係のみならず、装置に対して物理的なストレスを加えることで得られるエラー情報や、入出力データ以外に装置から観測される情報を利用することで秘密鍵を推定する技術のことである。この攻撃法の成功の可否は、暗号アルゴリズムの実装形態に依存する。 Another attack technique is called an implementation attack, which can be obtained by applying physical stress to a device that implements a cryptographic algorithm, not just the relationship between input data and output data. This is a technique for estimating a secret key by using information observed from a device other than error information and input / output data. The success or failure of this attack method depends on the implementation form of the cryptographic algorithm.
暗号アルゴリズムが理論攻撃に安全であっても、実装攻撃に対して脆弱である事例が多数知られており、実装攻撃に対して安全性を実現する対策技術は大きな課題である。実装攻撃への対策技術は、耐タンパ(Tamper-proof)技術と呼ばれる。 Even if a cryptographic algorithm is safe against a theoretical attack, many cases are known to be vulnerable to an implementation attack, and countermeasure technology that realizes the security against the implementation attack is a big issue. The countermeasure technique against the mounting attack is called a tamper-proof technique.
実装攻撃は、フォールト攻撃とサイドチャネル攻撃との2種類に大別される。フォールト攻撃とは、スマートカードなどに搭載された暗号プロセッサ(暗号装置)の回路の内部データ値に対して、意図的に異常を発生させた場合の暗号処理の出力結果と、正常な暗号処理の出力結果との差分情報を用いて回路の内部に格納されている秘密鍵を推定する方法である。 Implementation attacks are roughly classified into two types: fault attacks and side channel attacks. A fault attack is an output of cryptographic processing when an error occurs intentionally with respect to the internal data value of a cryptographic processor (cryptographic device) circuit installed in a smart card, etc., and normal cryptographic processing. This is a method for estimating a secret key stored in the circuit using difference information from the output result.
サイドチャネル攻撃とは、消費電力、電磁波、処理時間など、装置から漏洩する情報を用いて秘密鍵を推定する方法である。これらの中でも、サイドチャネル攻撃では消費電力を用いた方法が最もよく知られており、電力解析攻撃(Power Analysis Attack)と呼ばれている。電力解析攻撃は、消費電力波形から秘密鍵を推定することができる。 The side channel attack is a method for estimating a secret key using information leaked from a device such as power consumption, electromagnetic waves, and processing time. Among these, the method using power consumption is the most well-known side channel attack and is called a power analysis attack. The power analysis attack can estimate the secret key from the power consumption waveform.
次に、RSA暗号の演算方法について説明する。RSA暗号の復号処理では、指数剰余演算処理と呼ばれる処理が行われる。指数剰余演算は、秘密鍵d,暗号文a,法nに対して、v=ad (mod n)により平文vを計算する処理である。一般的に、RSA暗号における秘密鍵dのビット長は1024bit以上が用いられている。このため、d乗演算は単純な方法で実行すると、およそ21024回の乗算が必要となり、現実的な時間内に計算することが不可能となる。 Next, an RSA encryption calculation method will be described. In the RSA cipher decryption process, a process called exponential residue calculation process is performed. The exponent remainder operation is a process of calculating plaintext v by v = a d (mod n) for secret key d, ciphertext a, and modulus n. In general, the bit length of the secret key d in RSA encryption is 1024 bits or more. For this reason, when the d-th power operation is executed by a simple method, approximately 2 1024 multiplications are required, and it is impossible to calculate within a realistic time.
このd乗演算を効率的に行うためのアルゴリズムとしてはバイナリ法が従来から知られている(例えば非特許文献1参照)。このバイナリ法を用いることで、d乗に必要な演算回数は、21024回から1024の定数倍(この定数は1.5以下の値)になり、効率的な演算を実現することができる。 A binary method is conventionally known as an algorithm for efficiently performing this d-power operation (see, for example, Non-Patent Document 1). By using this binary method, the number of operations required for d-th power is from 2 1024 times to a constant multiple of 1024 (this constant is a value of 1.5 or less), and an efficient operation can be realized.
秘密鍵dをu-bit値とし、その2進表現をd=(du-1,du-2,...,d0)2と表記する。ただし、diはdの個々のビット値を表す。図1はバイナリ法を用いた指数剰余演算のアルゴリズムを示す説明図である。図2は、バイナリ法の処理概要を示す説明図である。図1のアルゴリズムでは、dのビット値diを、i=u-1からi=0の順番にチェックする。このチェックの結果がdi=1ならば、2乗算と乗算の両方が実行される。チェックの結果がdi=0ならば、2乗算のみが実行される。この処理をi=u-1からi=0まで繰り返すことにより、バイナリ法はv=ad(mod n)を計算する。つまり、バイナリ法は、鍵ビットdiの値と、2乗算、乗算の実行パターンが、直接的に連動していることが特徴である。
The secret key d is a u-bit value, and its binary representation is expressed as d = (d u−1 , d u−2 ,..., D 0 ) 2 . Here, d i represents an individual bit value of d. FIG. 1 is an explanatory diagram showing an algorithm for exponential residue calculation using a binary method. FIG. 2 is an explanatory diagram showing an outline of the binary method processing. In the algorithm of FIG. 1, the bit value d i of d is checked in the order of i = u−1 to i = 0. If the result of this check is d i = 1, both two multiplications and multiplications are performed. If the result of the check is d i = 0, only two multiplications are performed. By repeating this process from i = u−1 to i = 0, the binary method calculates v = a d (mod n). That is, the binary method, the value of the
フォールト攻撃とは、半導体に対して、過電圧、異常クロック、高温度、レーザーなどのストレスを与えることで、暗号装置内部のデータ値に異常(Fault)を発生させ、その結果出力される異常な出力値を利用することで、暗号装置内部に格納されている秘密鍵を解読する攻撃である。図3はフォールト攻撃の概要を示す説明図である。 A fault attack is an abnormal output that is generated as a result of causing a fault in the data value inside the cryptographic device by applying stress such as overvoltage, abnormal clock, high temperature, laser, etc. to the semiconductor. This is an attack that uses the value to decrypt the secret key stored in the encryption device. FIG. 3 is an explanatory diagram showing an outline of the fault attack.
特にレーザーを用いたストレス印加法は、1-bit単位で正確にフォールトを発生させることができ、攻撃者が意図した通りのフォールトを発生させることのできる精度の高い方法として知られている。 In particular, a stress application method using a laser is known as a highly accurate method capable of generating a fault accurately in 1-bit units and generating a fault as intended by an attacker.
代表的なフォールト攻撃は、例えば非特許文献2に記載されている。ここでは、RSA暗号に対するフォールト攻撃の概略について説明する。
A typical fault attack is described in
RSA暗号は、素数p,qに対しn=p×qを満たす合成数nを用いる暗号である。RSA暗号の安全性は、素因数分解によりnから素数p,qを得ることが困難である、という仮定に基づいている。ただし、p,qは512-bit以上、nは1024-bit以上の大きな整数である。つまり、攻撃者が合成数nから素数p,qを得ることに成功すれば、RSA暗号は解読することができる。 The RSA cipher is a cipher that uses a composite number n that satisfies n = p × q for prime numbers p and q. The security of the RSA cipher is based on the assumption that it is difficult to obtain primes p and q from n by prime factorization. However, p and q are large integers of 512-bit or more and n is 1024-bit or more. That is, if the attacker succeeds in obtaining the prime numbers p and q from the composite number n, the RSA cipher can be decrypted.
RSA暗号に対するフォールト攻撃の目的は、素数pを得ることである。素数pを得ることができれば、割り算によりqも簡単に求めることができるので、p,qのいずれかを攻撃者が得ることができれば、RSA暗号は解読できる。 The purpose of the fault attack on the RSA cipher is to obtain a prime number p. If the prime number p can be obtained, q can also be easily obtained by division. Therefore, if the attacker can obtain either p or q, the RSA cipher can be deciphered.
RSA暗号に対するフォールト攻撃は、正常な出力値と、フォールトを発生させた場合の異常な出力値との2つを用いることで、pを解読する。攻撃者は、正常な出力値を得た後、後述の(mod q)のべき乗剰余計算における計算処理を実行している最中にフォールトを発生させる。 In the fault attack on the RSA cipher, p is deciphered by using two of a normal output value and an abnormal output value when a fault is generated. After obtaining a normal output value, the attacker generates a fault during the execution of the calculation process in the power-residue calculation of (mod q) described later.
この結果、正常な処理の場合 mq=cq dq (mod q)を得るのに対し、フォールト発生の場合は計算値が異常な値となり、m'q≠mqを満たすm'qを得る(m'qの値は、mqと等しくなければどのような値でも攻撃が成功する)。このm'qを用いて最終的に計算された結果、攻撃者は出力m'を得る。攻撃者は、正常な出力mとフォールト発生時の出力m'を用いて、GCD(m' - n, n)を計算することで、p=GCD(m' - m, n)を得る。ただし、GCD(a,b)は整数a,bの最大公約数を計算する関数である。 As a result, while obtaining a case of normal processing m q = c q dq (mod q), in the case of fault occurrence calculated value is an abnormal value, obtaining a q 'm satisfy q ≠ m q' for m (If m ' q is not equal to m q , the attack succeeds at any value.) As a result of the final calculation using m'q , the attacker obtains an output m '. The attacker obtains p = GCD (m′−m, n) by calculating GCD (m′−n, n) using the normal output m and the output m ′ when the fault occurs. GCD (a, b) is a function for calculating the greatest common divisor of integers a and b.
この攻撃が成立する理由は、異常なm'qを用いて後述するm'の計算を行うことで、正しいmの値とm'の値との差分がpの整数倍となる、つまり整数kに対してm' -m = kpとなるからであり、その結果、CD(m' - m, n)=GCD(kp, pq) = pを得ることができる。 The reason for this attack is that the difference between the correct value of m and the value of m 'is an integer multiple of p by calculating m', which will be described later, using an abnormal m ' q. This is because m′−m = kp, and as a result, CD (m′−m, n) = GCD (kp, pq) = p can be obtained.
入力:c (暗号文)
dp (秘密鍵dに対し、dp=d mod (p-1)を満たす秘密鍵)
dq (秘密鍵dに対し、dq=d mod (q-1)を満たす秘密鍵)
p (n=p×qを満たす素数p)
q (n=p×qを満たす素数q)
u (u= q-1 (mod p)を満たす整数)
出力:m (平文)
ただし、eは暗号化用の公開鍵, dは復号用秘密鍵であり、ed=1 mod (p-1)(q-1)を満たす。
Input: c (ciphertext)
dp (secret key satisfying dp = d mod (p-1) for secret key d)
dq (secret key satisfying dq = d mod (q-1) for secret key d)
p (prime number p satisfying n = p × q)
q (prime number q satisfying n = p × q)
u (integer that satisfies u = q -1 (mod p))
Output: m (plain text)
Here, e is a public key for encryption, d is a decryption private key, and satisfies ed = 1 mod (p−1) (q−1).
*正常な処理
1. cp= c mod p, cq = c mod q
2. mp=cp dp (mod p)を計算。
* Normal processing
1.c p = c mod p, c q = c mod q
2. Calculate m p = c p dp (mod p).
3. mq=cq dq (mod q)を計算。 3. Calculate m q = c q dq (mod q).
4. m = ( (mq - mp)×u (mod q) )×p + mp を計算
5. mを出力
*Fault発生時の処理
1. cp= c mod p, cq = c mod q
2. mp=cp dp (mod p)
3. mq=cq dq (mod q)計算中にfault発生、mqの代わりにm'q出力(mq'≠mq)
4. m = ( (m'q - mp)×u (mod q) )×p + mp を計算
5. m'を出力
前述したフォールト攻撃は、正常な出力値とフォールト発生時の出力値とを比較することにより、RSA暗号を解読するための秘密鍵である素数pを得る攻撃である。ここではフォールト発生時の電力波形を観察することで秘密鍵dを得ることができるフォールト攻撃について説明する(例えば非特許文献3参照)。
4.Calculate m = ((m q -m p ) × u (mod q)) × p + m p
5. Output m * Processing when a fault occurs
1.c p = c mod p, c q = c mod q
2.m p = c p dp (mod p)
3. m q = c q dq ( mod q) fault occurs during computation, instead m 'q output (m q' of m q ≠ m q)
4.Calculate m = ((m ' q -m p ) × u (mod q)) × p + m p
5. Output m ′ The fault attack described above is an attack in which a prime number p, which is a secret key for decrypting the RSA cipher, is obtained by comparing a normal output value with an output value when the fault occurs. Here, a fault attack that can obtain the secret key d by observing the power waveform at the time of fault occurrence will be described (for example, see Non-Patent Document 3).
図4はバイナリ法を用いるRSA暗号をベースとした電力解析への耐タンパ性を有するRSA暗号アルゴリズムを示す説明図である。図4の左側に記してある4ビット値1はRSA暗号アルゴリズムの実行状態を表す値であり、以下では「状態値」と呼ぶ。図4のRSA暗号アルゴリズムにおいては、(0000)2, (0001)2, ...., (1001)2が状態値である。図4のRSA暗号処理に限らず、全ての暗号処理を実行する装置において、状態値は演算の実行状態を管理するために用いられる値である。
FIG. 4 is an explanatory diagram showing an RSA encryption algorithm having tamper resistance to power analysis based on RSA encryption using the binary method. A 4-
図4のRSA暗号アルゴリズムは、入力された暗号文c, 秘密鍵d=(du-1,du-2,...,d0)2、法nから、平文m=cd (mod n)を計算するアルゴリズムであり、電力解析により秘密鍵dが漏洩することを防ぐ耐タンパ機能(耐タンパ性)を有する。ここでは、この耐タンパ機能について図5を用いて説明する。 The RSA encryption algorithm shown in FIG. 4 has an input ciphertext c, a secret key d = (d u−1 , d u−2 ,..., D 0 ) 2 and a modulus n, and plaintext m = c d (mod This algorithm calculates n) and has a tamper resistance function (tamper resistance) that prevents the secret key d from being leaked by power analysis. Here, the tamper resistance function will be described with reference to FIG.
図5は、図4のRSA暗号アルゴリズムを実装した装置におけるd=(10100...)2の場合の消費電力波形を表したイメージ図である。図5は、d=(du-1,du-2,...,d0)2に対して、以下の処理をi=u-1,...,1,0それぞれについて繰り替えし実行した場合の波形である。 FIG. 5 is an image diagram showing a power consumption waveform in the case of d = (10100...) 2 in the apparatus in which the RSA encryption algorithm of FIG. 4 is implemented. In FIG. 5, for d = (d u-1 , d u-2 , ..., d 0 ) 2 , the following processing is repeated for each of i = u-1, ..., 1,0. This is the waveform when executed.
di=1: R0=R0×R0で示される2乗算の後に、R0=R0×R1で示される乗算が実行される。 d i = 1: After two multiplications indicated by R 0 = R 0 × R 0 , a multiplication indicated by R 0 = R 0 × R 1 is executed.
di=0: R0=R0×R0で示される2乗算が実行される。 d i = 0: A double multiplication represented by R 0 = R 0 × R 0 is executed.
つまり、図5はdiのビット値に応じて、R0=R0×R0とR0=R0×R1との2種類の乗算が実行されている。もし、これらの乗算の種類を消費電力波形により識別することが可能であるならば、diのビット値を判別でき、秘密鍵dは解読できる。しかし、図4のRSA暗号アルゴリズムに対しては、上記のような識別は困難である。なぜなら、R0,R1は図4の状態値(0001)2,(0010)2に記されている通り、初期値を乱数r1, r2により与えられ更新される常にランダムな値であるからである。
That is, FIG. 5 according to the bit value of
つまり、R0=R0×R0とR0=R0×R1との2種類の乗算は、いずれも(乱数)×(乱数)の乗算であり、このような乱数データ同士の乗算は、図5に示すように、消費電力波形で識別するのは困難である。すなわち、図4のRSA暗号アルゴリズムに対する電力解析は困難である。このように、図4のRSA暗号アルゴリズムを実行する装置は、電力解析に対して安全である。 In other words, the two types of multiplication of R 0 = R 0 × R 0 and R 0 = R 0 × R 1 are both (random number) × (random number) multiplications. As shown in FIG. 5, it is difficult to identify with the power consumption waveform. That is, the power analysis for the RSA encryption algorithm of FIG. 4 is difficult. Thus, the device that executes the RSA encryption algorithm of FIG. 4 is safe for power analysis.
図4のRSA暗号アルゴリズムに対して、フォールト攻撃を行うことで、電力解析に対する耐性を無効化できる攻撃法は、従来から存在している(例えば非特許文献3参照)。RSA暗号アルゴリズムに対して、フォールト攻撃を行うことで、電力解析に対する耐性を無効化できる攻撃法の基本アイデアは、フォールト攻撃を行うことで、状態値の一部を強制的に変更し、電力解析への対策機能に必要となる処理をスキップし、対策機能を無効化させることである。 Conventionally, there is an attack method that can invalidate the resistance to power analysis by performing a fault attack on the RSA encryption algorithm of FIG. 4 (see, for example, Non-Patent Document 3). The basic idea of an attack method that can invalidate the resistance to power analysis by performing a fault attack against the RSA encryption algorithm is to force a partial change of the state value by performing a fault attack, and to perform power analysis. The processing necessary for the countermeasure function is skipped and the countermeasure function is invalidated.
図6は、フォールト攻撃による電力解析の対策機能を無効化する方法を表した説明図である。図6に示すように、実行状態は基本的に状態値の遷移により管理される。正常な処理においては、この状態値は(0000)2→(0001)2→(0010)2→(0011)2...のように、1つずつ増加しながら遷移するので、図6に示した順番によるRSA暗号アルゴリズムの処理が行われる。 FIG. 6 is an explanatory diagram showing a method for invalidating the power analysis countermeasure function by the fault attack. As shown in FIG. 6, the execution state is basically managed by transition of state values. In normal processing, this state value transitions while increasing one by one as (0000) 2 → (0001) 2 → (0010) 2 → (0011) 2 . The RSA encryption algorithm is processed according to the order.
図6に示したRSA暗号アルゴリズムの処理に対し、フォールト攻撃は状態値の値を強制的に変更することで、(0000)2→ (0010)2→(0011)2...のように、一部の状態値(図6の例では(0001)2)を強制的にスキップさせることが可能である。なお、このような精度の高いフォールト発生は、レーザーを用いたストレス印加方法により実現できる。このように図6のRSA暗号アルゴリズムの処理に対し、フォールト攻撃により状態値(0001)2を強制的にスキップすることで、R0への乱数の書き込み処理がスキップされるため、R0の値は初期値0となる。 In contrast to the processing of the RSA encryption algorithm shown in FIG. 6, the fault attack forcibly changes the value of the state value so that (0000) 2 → (0010) 2 → (0011) 2 . Some state values ((0001) 2 in the example of FIG. 6) can be forcibly skipped. Such highly accurate fault generation can be realized by a stress application method using a laser. Thus to process the RSA encryption algorithm of FIG. 6, the state value by fault attack (0001) 2 to force it to skip, since the write processing of the random number to the R 0 is skipped, the value of R 0 The initial value is 0.
図4、図6のRSA暗号アルゴリズムにおいては、R0への乱数書き込みが耐タンパ機能を保障する重要な条件であり、この処理がスキップされることで耐タンパ機能が無効化される。このスキップの結果、R0の値が0となった場合の消費電力波形を図7に示す。図7は図6の状態値(0001)2をスキップしたRSA暗号アルゴリズムを実装した装置におけるd=(10100...)2の場合の消費電力波形を表したイメージ図である。 In the RSA encryption algorithm of FIG. 4 and FIG. 6, writing random numbers to R 0 is an important condition for ensuring the tamper resistance function, and the tamper resistance function is invalidated by skipping this process. FIG. 7 shows the power consumption waveform when the value of R 0 becomes 0 as a result of this skip. FIG. 7 is an image diagram showing a power consumption waveform in the case of d = (10100...) 2 in an apparatus that implements the RSA encryption algorithm with the state value (0001) 2 skipped in FIG.
図7においては、R0=R0×R0とR0=R0×R1の2種類の乗算が発生している。図5の消費電力波形においては、これら2種類の乗算は共に(乱数)×(乱数)であった。しかし、図7の消費電力波形においては、フォールト発生によりR0の値がゼロであるので、それぞれ以下の乗算となる。 In FIG. 7, two types of multiplications R 0 = R 0 × R 0 and R 0 = R 0 × R 1 occur. In the power consumption waveform of FIG. 5, these two types of multiplication are both (random number) × (random number). However, in the power consumption waveform of FIG. 7, since the value of R 0 is zero due to the occurrence of a fault, the following multiplications are respectively performed.
R0×R0:0×0
R0×R1:0×(乱数)
つまり、R0×R0は入力の両方がゼロである乗算である。R0×R1は入力の片方がゼロである乗算である。乗算の性質上、0を入力とする乗算の消費電力波形は、特殊な形状になることが知られている。このような特殊な波形は、0の入力が1個か、2個かに応じてさらに変化する場合がある。つまり、0の入力が1個である波形と、2個である波形はそれぞれに特徴がある。したがって、図7に示すようにR0×R0の乗算とR0×R1の乗算とは消費電力波形の形状によって識別できる。これらの消費電力波形を識別することで、そのままdのビット値を識別できるので、図7の消費電力波形からは秘密鍵dをd=(10100..)2と解読できる。
R 0 × R 0 : 0 × 0
R 0 × R 1 : 0 × (random number)
That is, R 0 × R 0 is a multiplication in which both inputs are zero. R 0 × R 1 is a multiplication in which one of the inputs is zero. Due to the nature of multiplication, it is known that the power consumption waveform of multiplication with 0 as an input has a special shape. Such a special waveform may further change depending on whether one or two zeros are input. That is, a waveform with one input of 0 and a waveform with two inputs are characteristic. Therefore, as shown in FIG. 7, the multiplication of R 0 × R 0 and the multiplication of R 0 × R 1 can be distinguished by the shape of the power consumption waveform. By identifying these power consumption waveforms, the bit value of d can be identified as it is, so that the secret key d can be deciphered as d = (10100 ..) 2 from the power consumption waveform of FIG.
前述した、RSA暗号アルゴリズムに対してフォールト攻撃を行うことで電力解析に対する耐性を無効化できる攻撃法を防ぐための対策技術は、従来から存在している(例えば特許文献1参照)この対策技術は、回路の内部状態をチェックし、フォールト発生の有無の検知を行う「フォールト検知」による対策法である。 The countermeasure technique for preventing the attack method which can invalidate the tolerance with respect to an electric power analysis by performing a fault attack with respect to the RSA encryption algorithm mentioned above conventionally exists (for example, refer patent document 1). This is a countermeasure method based on “fault detection” that checks the internal state of the circuit and detects the occurrence of a fault.
フォールト検知を用いることで、フォールトが発生した場合でも、暗号装置の処理停止やデータ出力停止など、適切な防御方法を実施することができるので、フォールト検知技術はフォールト対策において重要な技術である。 By using fault detection, even when a fault occurs, it is possible to implement an appropriate defense method such as stopping the processing of the encryption device or stopping data output. Therefore, the fault detection technique is an important technique for countermeasures against faults.
従来のフォール検知の基本アイデアは、暗号装置の外側に状態値の外付けのカウンタを設置し、状態値の遷移が進むごとに、このカウンタを増加させ、このカウンタの値が期待通りの値であるかのチェックを定期的に行うことで、状態値の遷移が正しいかどうかのチェックを行う。つまり、従来のフォール検知の基本アイデアは状態値の遷移が正しく行われているかどうかを、外付けのカウンタを用いて間接的にチェックするものある。 The basic idea of conventional fall detection is to install an external counter of the state value outside the cryptographic device, and increase this counter each time the state value transitions. By checking periodically whether or not there is a correct transition of the state value, it is checked. In other words, the basic idea of conventional fall detection is to indirectly check whether or not the state value transition is performed correctly using an external counter.
図8はフォールト検知法を表した説明図である。図8は、装置内部の個々の処理を実現する単位を「被制御セクション」と記している。個々の被制御セクションには一つの状態値が対応する。この状態値の遷移をチェックするために、図8のフォールト検知法では外付けのカウンタZZが備えられている。 FIG. 8 is an explanatory diagram showing the fault detection method. In FIG. 8, a unit that realizes individual processing in the apparatus is described as a “controlled section”. One status value corresponds to each controlled section. In order to check the transition of the state value, the fault detection method of FIG. 8 is provided with an external counter ZZ.
最初の「開始セクション」において、カウンタZZはZZ=0に初期化される。このZZの値は、被制御セクションを一つ完了するごとに1つ増加する(ZZ=ZZ+1)。N個の被制御セクションから構成されるので、条件分岐なしにN個全ての被制御セクションを実行する実行経路が、フォールト攻撃による状態スキップ無しに正常に実行された場合、カウンタZZの値はNとなっていることが期待される。 In the first “starting section”, the counter ZZ is initialized to ZZ = 0. The value of ZZ increases by 1 for each controlled section completed (ZZ = ZZ + 1). Since it consists of N controlled sections, if the execution path that executes all N controlled sections without conditional branching is executed normally without skipping a state due to a fault attack, the value of the counter ZZ is N It is expected that
また、条件分岐により、全ての被制御セクションが実行されない場合でも、条件分岐によって実行されなかった被制御セクションの個数をZZに加算するので、フォールト攻撃による状態スキップ無しに正常に実行された場合、カウンタZZの値はNとなることが期待される。 Also, even if not all controlled sections are executed due to conditional branching, the number of controlled sections that were not executed due to conditional branching is added to ZZ, so when executed normally without skipping a state due to a fault attack, The value of counter ZZ is expected to be N.
例えば被制御セクション1の処理終了後に条件分岐を行う場合、残りのN−1個の被制御セクションが実行されないことになる。この場合は条件分岐時にZZに対してN−1が加算される。他の被制御セクション終了時の条件分岐についても同様に扱う。
For example, when the conditional branch is performed after the process of the controlled
これにより、全ての実行経路においてフォールト攻撃による状態スキップ無しに正常に実行された場合、カウンタZZの最終的な値はNとなることが期待される。つまり、図8のフォールト検知法では、このカウンタZZの値がNとなるかどうかを、最後にチェックすることで、フォールト発生の有無を検知することができる。この検知処理は、最後の状態sm+1に対応する「Fault検知:ZZ=N?」の処理において行われる。ZZの値がNであるならば、図8のフォールト検知法ではフォールト発生が無い正常処理と判定され、ZZの値がN以外であるならば、フォールトが発生したと判断する。 As a result, the final value of the counter ZZ is expected to be N when the execution is normally performed without skipping the state due to the fault attack in all execution paths. That is, in the fault detection method of FIG. 8, it is possible to detect whether or not a fault has occurred by finally checking whether or not the value of the counter ZZ is N. This detection process is performed in the “Fault detection: ZZ = N?” Process corresponding to the last state sm + 1 . If the value of ZZ is N, it is determined that the fault detection method of FIG. 8 is a normal process in which no fault is generated. If the value of ZZ is other than N, it is determined that a fault has occurred.
例えば図8のプログラムの「実行経路4」に示すように、「被制御セクション1」がフォールト攻撃によりスキップされた場合は、ZZ=ZZ+1の処理が一つスキップされることになるのでフォールト検知処理におけるZZの最終的な値がZZ=N−1となり、本来期待される値であるNではなくなるので、フォールトが発生したことを検知できる。
図8の公知技術を用いることで、フォールト攻撃は検知できる。しかし、このフォールト検知法は、基本的なフォールト攻撃を検知できるものの、より高度なフォールト攻撃を行った場合、フォールト検知機能が無効化されるという問題点があった。以下では従来のフォールト検知法の問題点について説明を行う。 A fault attack can be detected by using the known technique of FIG. However, although this fault detection method can detect a basic fault attack, there is a problem that the fault detection function is invalidated when a more advanced fault attack is performed. In the following, problems of the conventional fault detection method will be described.
図9はフォールト検知法の基本的な問題点を表した説明図である。従来のフォールト検知法は前述したとおり、暗号装置の外側に状態値の外付けカウンタを追加し、このカウンタ値の整合性をチェックすることでフォールト発生の有無を検知する。この基本的なメカニズムにより、従来のフォールト検知法は、以下の(P1)〜(P3)に示す3つの性質を備える。 FIG. 9 is an explanatory diagram showing basic problems of the fault detection method. As described above, in the conventional fault detection method, an external counter of the state value is added outside the encryption device, and the presence or absence of the fault is detected by checking the consistency of the counter value. Due to this basic mechanism, the conventional fault detection method has the following three properties (P1) to (P3).
(P1)従来のフォールト検知法はフォールト検知のメカニズムとして、カウンタを増加させる仕組みとカウンタをチェックする仕組みとの2つが必要であり、カウンタのチェックを行うことで初めてフォールト検知に成功する。つまり、従来のフォールト検知法はフォールト検知可能なタイミングが限定される。 (P1) The conventional fault detection method requires two mechanisms, a mechanism for increasing the counter and a mechanism for checking the counter, as the mechanism for detecting the fault, and the fault detection is successful only after the counter is checked. That is, in the conventional fault detection method, the timing at which fault detection is possible is limited.
(P2)従来のフォールト検知法は、カウンタのチェックを行っている状態において、初めてフォールト検知が実行されるため、それ以外の状態でフォールト検知が実行できない。 (P2) In the conventional fault detection method, fault detection cannot be executed in other states because fault detection is executed for the first time while the counter is being checked.
(P3)従来のフォールト検知法は全ての状態遷移についてフォールト検知を実行することはできない。 (P3) The conventional fault detection method cannot execute fault detection for all state transitions.
(P3)に示す性質により、従来のフォールト検知法は高度なフォールト攻撃に対してフォールト検知を行うことができない。図9に示すとおり、フォールト検知可能な状態は最後の「Fault検知:ZZ=N?」、つまり状態sm+1のみである。そして、それ以外の状態ではフォールト検知できない。よって、従来のフォールト検知法はフォールト検知のリアルタイム性が失われるという問題を有している。この問題により、従来のフォールト検知法はフォールト検知のメカニズムが高度なフォールト攻撃に対しては無効化される。 Due to the property shown in (P3), the conventional fault detection method cannot perform fault detection for advanced fault attacks. As shown in FIG. 9, the state where fault detection is possible is only the last “Fault detection: ZZ = N?”, That is, the state sm + 1 . In other states, fault detection cannot be performed. Therefore, the conventional fault detection method has a problem that the real-time property of the fault detection is lost. Due to this problem, the conventional fault detection method is invalidated against a fault attack in which the fault detection mechanism is advanced.
また、前述した通り、従来のフォールト検知法は、フォールト検知にリアルタイム性がないため、フォールト検知可能な状態と不可能な状態とに2分される。フォールト検知可能な状態と不可能な状態とに2分されるという性質を考慮して、フォールト検知を無効化するメカニズムは図10のようになる。 Further, as described above, the conventional fault detection method is divided into a state where the fault can be detected and a state where it cannot be detected because the fault detection does not have real-time characteristics. Considering the property of being divided into two states, that is, a state where fault detection is possible and a state where it is impossible, a mechanism for invalidating fault detection is as shown in FIG.
図10はフォールト検知を無効化するフォールト攻撃を表した説明図である。攻撃者はフォールトを発生させて状態s1をスキップすることで、秘密鍵を得るためのスキップを実行する。しかし、このままではカウンタZZの整合性が失われ、フォールト発生が検知される。そこで、これを回避するために図10のフォールト攻撃はフォールト検知状態である状態sm+1を再度スキップすることで、フォールト発生が検知されることを回避する。 FIG. 10 is an explanatory diagram showing a fault attack that invalidates fault detection. The attacker generates a fault and skips state s 1 to perform a skip to obtain a secret key. However, in this state, the consistency of the counter ZZ is lost and the occurrence of a fault is detected. Therefore, in order to avoid this, the fault attack of FIG. 10 avoids the detection of the fault occurrence by skipping the state sm + 1 that is the fault detection state again.
よって、図10のフォールト攻撃は秘密鍵を得るために発生させるスキップとフォールト検知を回避させるためのスキップとの2回のフォールトを発生させる高度なフォールト攻撃を行うことで、従来のフォールト検知法を無効化できる。つまり、従来のフォールト検知法は図8に示すフォールト発生を1回行うフォールトに有効であるが、図10に示すフォールト発生を2回行うフォールト攻撃には無効である。 Therefore, the fault attack of FIG. 10 performs the advanced fault attack that generates two faults, a skip that is generated to obtain a secret key and a skip that is used to avoid fault detection. Can be disabled. That is, the conventional fault detection method is effective for a fault in which the fault generation shown in FIG. 8 is performed once, but is ineffective in a fault attack in which the fault generation shown in FIG. 10 is performed twice.
以上、従来のフォールト検知法はフォールト検知にリアルタイム性がない為、フォールトを1回発生させるフォールト攻撃に有効であるがフォールトを2回発生させるフォールト攻撃に無効である。 As described above, since the conventional fault detection method has no real-time fault detection, it is effective for a fault attack that generates a fault once, but is ineffective for a fault attack that generates a fault twice.
本発明の一実施形態は、上記の点に鑑みなされたもので、アルゴリズムの実行状態を状態値により管理する装置への不正操作を高精度に検知し、セキュリティの強化が可能な不正操作検知回路、不正操作検知回路を備えた装置、及び不正操作検知方法を提供することを目的とする。 One embodiment of the present invention has been made in view of the above points. An unauthorized operation detection circuit capable of highly accurately detecting an unauthorized operation on an apparatus that manages an execution state of an algorithm by a state value and enhancing security. An object of the present invention is to provide an apparatus including an unauthorized operation detection circuit and an unauthorized operation detection method.
上記課題を解決するため、本発明の一実施形態は、アルゴリズムの実行状態を状態値により管理する装置への不正操作を検知する不正操作検知回路であって、正常な処理における状態値の変化条件ルールを出力する変化条件ルール出力手段と、前記変化条件ルール出力手段から出力される前記変化条件ルールに基づき、前記状態値を順次生成する状態値生成手段と、前記状態値生成手段が生成した前記状態値を格納する状態値格納手段と、前記状態値格納手段が格納している前記状態値を遷移前の状態値、前記状態値生成手段が生成した前記状態値を遷移後の状態値として比較し、前記状態値の遷移が前記変化条件ルール出力手段から出力される前記変化条件ルールに従っていなければ異常な処理であると判定する状態値比較判定手段とを有する。 In order to solve the above-described problem, an embodiment of the present invention is an unauthorized operation detection circuit that detects an unauthorized operation to a device that manages the execution state of an algorithm by a state value, and the condition value change condition in normal processing A change condition rule output means for outputting a rule, a state value generation means for sequentially generating the state values based on the change condition rule output from the change condition rule output means, and the state value generation means generated by the state value generation means Compare the state value storage means for storing the state value with the state value stored in the state value storage means as the state value before transition, and the state value generated by the state value generation means as the state value after transition And a state value comparison / determination unit that determines that the process is abnormal if the transition of the state value does not conform to the change condition rule output from the change condition rule output unit. That.
なお、本発明の一実施形態の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。 In addition, what applied the component, the expression, or arbitrary combinations of the component of one Embodiment of this invention to a method, an apparatus, a system, a computer program, a recording medium, a data structure, etc. is also effective as an aspect of this invention. .
上述の如く、本発明の一実施形態によれば、アルゴリズムの実行状態を状態値により管理する装置への不正操作を高精度に検知し、セキュリティの強化が可能な不正操作検知回路、不正操作検知回路を備えた装置、及び不正操作検知方法を提供できる。 As described above, according to an embodiment of the present invention, an unauthorized operation detection circuit and an unauthorized operation detection that can detect an unauthorized operation on a device that manages the execution state of an algorithm based on a state value with high accuracy and can enhance security. An apparatus including a circuit and an unauthorized operation detection method can be provided.
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、本実施例ではアルゴリズムの実行状態を状態(ステート)値により管理する装置の一例として任意の暗号機能を搭載したスマートカード(ICカード)を例に説明するが、他の装置であってもよい。 Next, the best mode for carrying out the present invention will be described based on the following embodiments with reference to the drawings. In this embodiment, a smart card (IC card) equipped with an arbitrary encryption function will be described as an example of an apparatus that manages the execution state of an algorithm based on a state value. Good.
まず、従来のフォールト検知法の問題点の原因はフォールト検知にリアルタイム性がないことにある。そのため、従来のフォールト検知法はフォールト検知の状態そのものをスキップすることでフォールト検知を無効化できることであった。また、従来のフォールト検知にリアルタイム性がない原因は、全ての状態遷移についてフォールト検知をできないことにあった。 First, the cause of the problem of the conventional fault detection method is that the fault detection does not have real-time characteristics. Therefore, the conventional fault detection method is that the fault detection can be invalidated by skipping the fault detection state itself. In addition, the reason that conventional fault detection does not have real-time characteristics is that fault detection cannot be performed for all state transitions.
本実施例では、従来のフォールト検知法における前述の問題を解消するために、全ての状態遷移についてフォールト検知を行う手段を提供する。従来のフォールト検知法の問題は状態値の遷移とフォールト検知のカウンタとが別々であったため、状態値のフォールト発生を直接的に検知することができず、フォールト検知のリアルタイム性が失われていたことにあると考えられる。 In this embodiment, in order to solve the above-described problem in the conventional fault detection method, a means for performing fault detection for all state transitions is provided. The problem of the conventional fault detection method was that the state value transition and the fault detection counter were separate, so it was not possible to directly detect the occurrence of the fault of the state value, and the real-time property of the fault detection was lost. It seems that there is.
この問題を解決するために、本実施例においては、状態値の遷移とフォールト検知とを一体化する。状態値の遷移とフォールト検知とを一体化することで、本実施例は全ての状態遷移に関してフォールト検知を有効とし、フォールト検知のリアルタイム性を保障する手段を提供する。 In order to solve this problem, in this embodiment, state value transition and fault detection are integrated. By integrating state value transitions and fault detection, this embodiment enables fault detection for all state transitions and provides means for ensuring real-time fault detection.
ここでは、本実施例の基本的なアイデアを説明する。図11はフォールト攻撃に脆弱な従来の状態値の遷移を表した説明図である。図12は本実施例の状態値の遷移を表した説明図である。 Here, the basic idea of the present embodiment will be described. FIG. 11 is an explanatory diagram showing transition of a conventional state value that is vulnerable to a fault attack. FIG. 12 is an explanatory diagram showing the transition of state values in this embodiment.
図11に示すフォールト検知法は、状態値の変化に制約を設けていないため、任意の値から任意の値に状態値が変化可能である。よって、(0000)2→(0010)2のような、本来ありえない状態値の遷移が発生した場合でも、従来のフォールト検知法はフォールト発生を検知することができない。 Since the fault detection method shown in FIG. 11 does not place restrictions on the change of the state value, the state value can be changed from an arbitrary value to an arbitrary value. Therefore, even when a state value transition that is not possible such as (0000) 2 → (0010) 2 occurs, the conventional fault detection method cannot detect the occurrence of the fault.
これに対し、図12に示す本実施例のフォールト検知法は、正常な状態値の遷移に対して常に一定の制約条件を設ける。図12は、正常な状態値遷移により状態値のビット値が常に1-bitのみ変化するという制約条件を設けた例である。よって、(0000)2→(0011)2のような、制約条件を満たさない2-bitの状態値の遷移が発生すれば、本実施例のフォールト検知法はフォールト発生を検知できる。 On the other hand, the fault detection method of this embodiment shown in FIG. 12 always provides a certain constraint condition for the transition of normal state values. FIG. 12 is an example in which a constraint condition that the bit value of the state value always changes only 1-bit by normal state value transition is provided. Therefore, if a transition of a 2-bit state value that does not satisfy the constraint condition (0000) 2 → (0011) 2 occurs, the fault detection method of this embodiment can detect the fault occurrence.
図13は、フォールト発生が無い正常な場合の従来の状態値の遷移と本実施例の状態値の遷移とを表した説明図である。図13の上段は従来の状態値の遷移を表している。図13の下段は本実施例の状態値の遷移を表している。 FIG. 13 is an explanatory diagram illustrating a conventional state value transition and a state value transition according to the present embodiment in a normal case where no fault occurs. The upper part of FIG. 13 represents a conventional state value transition. The lower part of FIG. 13 shows the transition of the state value of this embodiment.
図13の上部に示すように、従来の状態値の遷移は分岐がない場合+1ずつ増加し、分岐がある場合、戻った状態数だけ減少する。つまり、フォールト無しの正常な場合における状態値の遷移の法則は一定していないため、状態値の遷移が正常であるか、異常であるかの判断を単純な方法で行うことは困難である。 As shown in the upper part of FIG. 13, the transition of the conventional state value increases by +1 when there is no branch, and decreases by the number of returned states when there is a branch. That is, since the law of state value transition in a normal case without a fault is not constant, it is difficult to determine whether the state value transition is normal or abnormal by a simple method.
これに対し、図13下部に示すように、本実施例の状態値の遷移は分岐の有無に関係なく常に1-bit値だけ状態値が変化するという共通の法則を有する。よって、この法則に従う状態遷移であれば、フォールト無しの正常な遷移と判断でき、この法則に従わない状態遷移であれば、フォールト有りの異常な遷移と判断できる。よって、本実施例のフォールト検知法は、状態値の遷移が常に1-bit値の変化であるか、そうでないかという単純な検査回路(チェック機能回路)を用いることで、フォールト検知を行うことができる。 On the other hand, as shown in the lower part of FIG. 13, the transition of the state value of this embodiment has a common rule that the state value always changes by 1-bit value regardless of the presence or absence of branching. Therefore, if it is a state transition according to this rule, it can be determined as a normal transition without a fault, and if it is a state transition not following this rule, it can be determined as an abnormal transition with a fault. Therefore, the fault detection method of this embodiment performs fault detection by using a simple inspection circuit (check function circuit) that states whether the transition of the state value is always a 1-bit value change or not. Can do.
図14は本実施例によるフォールト検知回路の一例の構成図である。図14のフォールト検知回路10は例えばステートマシンとして利用される。図14のフォールト検知回路10は、状態値生成回路11,状態値レジスタ12,変化条件ルール回路13,状態値比較回路14を有する構成である。
FIG. 14 is a block diagram of an example of a fault detection circuit according to this embodiment. The
状態値生成回路11は、遷移後の状態値を決定する。状態値レジスタ12は現在の状態値を格納する。変化条件ルール回路13は、フォールト攻撃無しの正常な処理における状態値の変化条件ルールを定める。状態値比較回路14は状態値の遷移が正常であるかどうかを判断する。
The state value generation circuit 11 determines the state value after the transition. The state value register 12 stores the current state value. The change condition rule circuit 13 determines a change condition rule for state values in normal processing without a fault attack. The state
状態値生成回路11,状態値レジスタ12は一般的に用いられる回路である。変化条件ルール回路13,状態値比較回路14はチェック機能回路である。状態値レジスタ12の出力は、現在の状態値を表している。状態値レジスタ12の入力は、次の状態値を表している。
The state value generation circuit 11 and the state value register 12 are commonly used circuits. The change condition rule circuit 13 and the state
つまり、状態値レジスタ12の入力と出力とを比較することで、遷移前及び遷移後の状態値の比較を行うことができる。変化条件ルール回路13,状態値比較回路14は遷移前及び遷移後の状態値の比較によるフォールト検知のチェック機能回路として動作する。状態値比較回路14は状態値レジスタ12の入力と出力とを比較することで、フォールト発生の有無の検知を行う。
That is, by comparing the input and output of the
状態値比較回路14が行うフォールト発生の有無の検知は状態値レジスタ12の入力と出力との関係が、変化条件ルール回路13の与える変化条件ルールに従っているか否かにより行われる。状態値比較回路14は、状態値レジスタ12の入力と出力との関係が変化条件ルール回路13の与える変化条件ルールに従っている場合、フォールト発生の無い正常な処理であると判断し、変化条件ルールに従っていない場合、フォールトの発生した異常な処理であると判断する。
Whether or not a fault has occurred is detected by the state
変化条件ルール回路13の与える変化条件ルールが「1-bit値変化」である場合、図12や図13の下段に示したフォールト検知回路となる。もし、フォールトの発生した異常な処理であると判断される場合、状態値比較回路14はフォールト検知出力によりフォールト発生を検知したことを外部の回路(例えばCPU)に通知する。
When the change condition rule given by the change condition rule circuit 13 is “1-bit value change”, the fault detection circuit shown in the lower part of FIG. 12 or FIG. 13 is obtained. If it is determined that the process is an abnormal process in which a fault has occurred, the state
ここではフォールト検知機能を実現するために必要となる回路の比較のために、従来のフォールト検知回路の構成を図15に示す。図15は従来のフォールト検知回路の一例の構成図である。図15のフォールト検知回路は、状態値生成回路21,状態値レジスタ22,フォールト検知用カウンタ制御回路23,フォールト検知用カウンタ24,フォールト検知用カウンタチェック回路25を有する構成である。状態値生成回路21は遷移後の状態値を決定する。状態値レジスタ22は現在の状態値を格納する。
Here, a configuration of a conventional fault detection circuit is shown in FIG. 15 for comparison of circuits necessary for realizing the fault detection function. FIG. 15 is a block diagram of an example of a conventional fault detection circuit. The fault detection circuit of FIG. 15 includes a state
状態値生成回路21,状態値レジスタ22は一般的に用いられる回路である。フォールト検知用カウンタ制御回路23,フォールト検知用カウンタ24はカウンタ機能回路である。フォールト検知用カウンタチェック回路25は、チェック機能回路である。
The state
状態値生成回路21により状態値の遷移が決定されるのを受けて、フォールト検知用カウンタ制御回路23はフォールト検知用カウンタ24の値の操作を行う。フォールト検知用カウンタ24の値は、図8〜図10におけるカウンタZZの値に相当する。
When the state value transition is determined by the state
フォールト検知用カウンタ制御回路23は図8〜図10のカウンタZZと同様に、状態値の分岐の有無、および分岐のタイミングに応じて、フォールト検知用カウンタ24に対する様々な操作を行う。フォールト検知用カウンタ制御回路23は、状態値の遷移に応じてフォールト検知用カウンタ24の操作を決定する。
Similarly to the counter ZZ in FIGS. 8 to 10, the fault detection counter control circuit 23 performs various operations on the
フォールト検知用カウンタチェック回路25はフォールト検知を行う。フォールト検知用カウンタチェック回路25は、フォールト検知用カウンタ制御回路23によるフォールト検知用カウンタ24に対する操作が何回か繰り返されたあと、フォールト検知用カウンタ24の値が期待値どおりの値であるかをチェックすることで、フォールト発生の有無を判断する。
The fault detection
なお、フォールト検知用カウンタ24の値が期待値どおりの値であるかをチェックするフォールト検知用カウンタチェック回路25の処理は、図8〜図10において、カウンタZZについてZZ=Nであるかどうかの判定を行う処理に対応する。
Note that the processing of the fault detection
フォールト検知用カウンタ24の値が期待値どおりの正常な値であるならば、フォールト検知用カウンタチェック回路25はフォールト発生の無い正常な処理と判断し、期待値通りの正常な値でなければフォールト発生の有る異常な処理と判断する。フォールトが発生していると判断された場合、フォールト検知用カウンタチェック回路25はフォールト検知出力によりフォールト発生を検知したことを外部の回路に通知する。
If the value of the
従来のフォールト検知回路は状態値の遷移とフォールト検知とを一体化せず、間接的にフォールト検知を行うので、状態値の遷移をカウントするカウンタ機能回路と、その状態値の遷移のカウント値が期待値どおりの値であるかをチェックするチェック機能回路との両方が必要である。 The conventional fault detection circuit does not integrate state value transition and fault detection, but indirectly detects the fault. Therefore, the counter function circuit that counts the state value transition and the count value of the state value transition are Both a check function circuit and a check function circuit that check whether the value is as expected are required.
これに対し、本発明のフォールト検知回路10は、状態値の遷移とフォールト検知とを一体化しているため、図14に示す通り、チェック機能回路のみの追加でよい為、従来のフォールト検知回路より小さな回路によるフォールト検知機能を実現できる。
On the other hand, since the
図14のフォールト検知回路10は改良を加えることで、更にセキュリティを向上させることができる。ここでは、図14のフォールト検知回路10のセキュリティを向上させる改良について説明する。図16は、図14のフォールト検知回路により検知できない状態値のスキップを表した説明図である。
The
図14のフォールト検知回路10は変化条件ルールが「1-bit値変化」である場合における状態値の遷移例を表している。図6に示すRSA暗号アルゴリズムを実装した暗号装置は秘密鍵を得るための状態値のスキップとして、(0000)2→(0011)2...のフォールト攻撃を行われてもフォールト発生を検知できるので安全である。しかし、図14のフォールト検知回路10は一部の状態値のスキップを検知できない。なぜなら、図14のフォールト検知回路10は変化条件ルール(制約条件)の範囲内の状態値の遷移であれば、フォールト発生と判定しないからである。
The
図16は変化条件ルールが「1-bit値変化」の例である為、状態値が1-bit値だけ変化する(0000)2→(0010)2及び(0000)2→(0100)2のフォールト攻撃を検知できないことを表している。このように、本実施例のフォールト検知回路10は一部の状態値のスキップに関して検知できない、フォールト検知漏れを有する。このフォールト検知漏れを有していても図6に示すRSA暗号アルゴリズムを実装した暗号装置はフォールト攻撃による秘密鍵の解読を防ぐことができる。
Since FIG. 16 is an example in which the change condition rule is “1-bit value change”, the state value changes by 1-bit value (0000) 2 → (0010) 2 and (0000) 2 → (0100) 2 This means that a fault attack cannot be detected. As described above, the
図6に示すRSA暗号アルゴリズムを実装した暗号装置から秘密鍵を得る為にはR0への乱数書き込みに対してはスキップを行うがR1への乱数書き込みに対してはスキップを行わないことが必要である。なぜなら、R0,R1の両方の乱数書き込みをスキップすることでR0×R0, R0×R1の両方が0×0となるため、これらは完全に同一の演算となり、消費電力波形による識別が不可能となるからである。つまり、図6に示すRSA暗号アルゴリズムを実装した装置に対して秘密鍵を得るための状態値のスキップは、(0000)2→(0011)2に限定される。 In order to obtain a secret key from an encryption device that implements the RSA encryption algorithm shown in FIG. 6, the random number write to R 0 is skipped, but the random number write to R 1 is not skipped. is necessary. Because R 0 × R 0 , R 0 × R 1 both become 0 × 0 by skipping random number writing of both R 0 and R 1 , these are completely the same operation, and the power consumption waveform This is because it becomes impossible to identify by means of. In other words, the skip of the state value for obtaining the secret key for the device in which the RSA encryption algorithm shown in FIG. 6 is implemented is limited to (0000) 2 → (0011) 2 .
よって、図14に示す本実施例のフォールト検知回路10はフォールト検知漏れを有するが、図6に示すRSA暗号アルゴリズムを実装した暗号装置に適用した場合、フォールト発生に成功しても秘密鍵を解読することができないため、安全である。
Therefore, the
ゆえに、本実施例のフォールト検知回路10は、暗号装置を開発する段階で既知の攻撃法(Known Attack)の調査を行い、秘密鍵を解読できる状態値のスキップのパターンを事前に網羅し、このようなフォールト検知漏れに関する秘密鍵の漏洩の可能性について検証を行うことで、秘密鍵の解読が不可能である状態値の遷移を構築することができる。
Therefore, the
既知の攻撃法(Known Attack)に対しては図14に示す本実施例のフォールト検知回路10を用いることでフォールト攻撃による秘密鍵の解読を防止できる。ただし、図14に示す本実施例のフォールト検知回路10のフォールト検知漏れは既知の攻撃法に対する防御を実現できるが、未知の攻撃法(Unknown Attack)に対して秘密鍵が解読できる可能性を残す。
For a known attack method (Known Attack), the use of the
例えば図16に示した例では、(0000)2→(0010)2及び(0000)2→(0100)2のスキップが可能であり、将来的に攻撃手法が進化した場合、これらのスキップを用いた秘密鍵の解読が成功する可能性が残されているからである。そこで、図14のフォールト検知回路10は改良を加えることで、既知の攻撃のみならず、将来的に発生しうる未知の攻撃に対する防御を実現できるようにする。
For example, in the example shown in FIG. 16, (0000) 2 → (0010) 2 and (0000) 2 → (0100) 2 can be skipped. If the attack technique evolves in the future, these skips are used. This is because there is still a possibility of successful decryption of the secret key. Therefore, the
図17は、図14に示す本実施例のフォールト検知回路が有するフォールト検知漏れの解決方法を表した説明図である。図17の上段は図14に示す本実施例のフォールト検知回路10において変化条件ルールを「1-bit値変化」とした場合における状態値の遷移例を表している。図17の下段は図14に示す本実施例のフォールト検知回路10において変化条件ルールを「3-bit値変化」とした場合における状態値の遷移例を表している。
FIG. 17 is an explanatory diagram showing a solution to the fault detection omission that the fault detection circuit of this embodiment shown in FIG. 14 has. The upper part of FIG. 17 represents an example of transition of state values when the change condition rule is “1-bit value change” in the
図17の上段、下段いずれの場合についても、図6に示すアルゴリズムを実装した暗号装置から秘密鍵を得るための状態値のスキップとして、(0000)2→(0011)2(上段)もしくは(0000)2→(1010)2(下段)のフォールト攻撃を行おうとすると、フォールト発生を検知できるので安全である。 In both the upper and lower stages of FIG. 17, (0000) 2 → (0011) 2 (upper stage) or (0000) is used as a skip of the state value for obtaining the secret key from the encryption device in which the algorithm shown in FIG. ) 2 → (1010) 2 If you try to perform a fault attack (bottom), it is safe because the fault can be detected.
しかし、図14のフォールト検知回路10は、全ての状態値のスキップに関して検知できる完全な方法ではなく、一部の状態値のスキップに関しては検知できない。図14に示すフォールト検知回路10は、制約条件の範囲内の状態値の遷移であれば、フォールト発生と判断しないからである。
However, the
例えば図17上段では、(0000)2→(0010)2および(0000)2→(0100)2のスキップが1-bit値変化であるためフォールト発生を検知できない。図17下段では、(0000)2→(1110)2のスキップおよび(0000)2→(1011)2が3-bit値変化であるためフォールト発生を検知できない。 For example, in the upper part of FIG. 17, since the skip of (0000) 2 → (0010) 2 and (0000) 2 → (0100) 2 is a 1-bit value change, the occurrence of a fault cannot be detected. In the lower part of FIG. 17, the occurrence of a fault cannot be detected because (0000) 2 → (1110) 2 is skipped and (0000) 2 → (1011) 2 is a 3-bit value change.
このように、図14に示す本実施例の方式は一部の状態値の遷移についてスキップ可能であり、図16に示すように状態値の変化条件ルールに応じて、固定のパターンによる状態値のスキップが可能である。 As described above, the method of the present embodiment shown in FIG. 14 can skip a part of state value transitions, and the state value of a fixed pattern is changed according to the state value change condition rule as shown in FIG. Skipping is possible.
例えば図17上段では(0000)2→(0010)2および(0000)2→(0100)2、つまり2パターンのスキップが可能である。同様に、図17下段では(0000)2→(1110)2および(0000)2→(1011)2の2パターンのスキップが可能である。 For example, in the upper part of FIG. 17, (0000) 2 → (0010) 2 and (0000) 2 → (0100) 2 , that is, two patterns can be skipped. Similarly, two patterns (0000) 2 → (1110) 2 and (0000) 2 → (1011) 2 can be skipped in the lower part of FIG.
つまり、ある状態値の変化条件ルールにおいて可能であった状態値のスキップは、もう片方の状態値の変化条件ルールにおいて不可能であることが分かる。よって、状態値の変化条件ルールを複数準備し、どの変化条件ルールを用いるかをフォールト検知回路10の内部で発生させた乱数によって選択することで、フォールト検知回路10はフォールト検知漏れとなる状態値のスキップのパターンを攻撃者が特定できなくなり、安全性を向上することができる。
In other words, it is understood that the skipping of the state value that was possible in the change condition rule for one state value is impossible in the change condition rule for the other state value. Therefore, by preparing a plurality of state value change condition rules and selecting which change condition rule to use based on a random number generated inside the
図18は本実施例によるフォールト検知回路の他の例の構成図である。図18に示したフォールト検知回路10Aは、状態値生成回路11A〜11C,状態値レジスタ12,変化条件ルール回路13A〜13C,状態値比較回路14,セレクタ15及びセレクタ16を有する構成である。
FIG. 18 is a configuration diagram of another example of the fault detection circuit according to this embodiment. The
状態値生成回路11A〜11Cは、遷移後の状態値を決定する。状態値レジスタ12は現在の状態値を格納する。変化条件ルール回路13A〜13Cは、フォールト攻撃無しの正常な処理における状態値の変化条件ルールを定める。状態値比較回路14は状態値の遷移が正常であるかどうかを判断する。セレクタ15は乱数に基づいて、状態値生成回路11A〜11Cの出力の何れか一つを、状態値レジスタ12及び状態値比較回路14に入力する。また、セレクタ16は乱数に基づいて変化条件ルール回路13A〜13Cの出力の何れか一つを、状態値比較回路14に入力する。
The state value generation circuits 11A to 11C determine the state value after the transition. The state value register 12 stores the current state value. The change condition rule circuits 13 </ b> A to 13 </ b> C define a change condition rule for state values in normal processing without a fault attack. The state
セレクタ15及びセレクタ16は乱数に基づいて連動し、状態値生成回路11Aの出力が選択されるとき変化条件ルール回路13Aの出力が選択され、状態値生成回路11Bの出力が選択されるとき変化条件ルール回路13Bの出力が選択され、状態値生成回路11Cの出力が選択されるとき変化条件ルール回路13Cの出力が選択される。
The selector 15 and the
状態値比較回路14は状態値レジスタ12の入力と出力とを比較することで、フォールト発生の有無の検知を行う。状態値比較回路14が行うフォールト発生の有無の検知は状態値レジスタ12の入力と出力との関係が、変化条件ルール回路13A〜13Cの何れか一つにより与えられる変化条件ルールに従っているか否かにより行われる。
The state
状態値比較回路14は、状態値レジスタ12の入力と出力との関係が、セレクタ16を介して変化条件ルール回路13A〜13Cの何れか一つにより与えられる変化条件ルールに従っている場合、フォールト発生の無い正常な処理であると判断し、変化条件ルールに従っていない場合、フォールトの発生した異常な処理であると判断する。
The state
なお、セレクタ15による状態値生成回路11A〜11Cの出力の何れか一つを選択する処理と、セレクタ16による変化条件ルール回路13A〜13Cの出力の何れか一つを選択する処理とは、フォールト検知回路10Aが動作する最初のサイクルの初期化処理として実行される。
The process of selecting any one of the outputs of the state value generation circuits 11A to 11C by the selector 15 and the process of selecting any one of the outputs of the change condition rule circuits 13A to 13C by the
図18のフォールト検知回路10Aは、変化条件ルール回路13Aの与える変化条件ルールが「1-bit値変化」であり、変化条件ルール回路13Bの与える変化条件ルールが「2-bit値変化」であり、変化条件ルール回路13Cの与える変化条件ルールが「3-bit値変化」である例を表している。また、図18のフォールト検知回路10Aは、状態値生成回路11Aが変化条件ルール「1-bit値変化」に基づいて遷移後の状態値を決定し、状態値生成回路11Bが変化条件ルール「2-bit値変化」に基づいて遷移後の状態値を決定し、状態値生成回路11Cが変化条件ルール「3-bit値変化」に基づいて遷移後の状態値を決定する。
In the
図14のフォールト検知回路10と比較すると、フォールト検知回路10Aは乱数の入力と、3つの状態値生成回路11A〜11Cと、3つの変化条件ルール回路13A〜13Cと、セレクタ15と、セレクタ16とを更に必要とするが、3つの中から乱数により一つの変化条件ルールを選択することで、図14のフォールト回路10におけるフォールト検知漏れの確率「1」を「1/3」に下げることができる。
Compared with the
なお、フォールト検知漏れの確率が「1/3」ということは、フォールト検知できる確率が「1」から「1/3」であることを意味する。一般的に、フォールト検知回路を備えた暗号装置は、フォールト検知に1回でも成功したら、秘密鍵データ消去処理、暗号装置の利用停止処理などにより、攻撃者が2度とフォールト攻撃できないような適切な対処を実行する。 The probability of fault detection omission being “1/3” means that the probability of fault detection is “1” to “1/3”. In general, an encryption device equipped with a fault detection circuit is suitable so that an attacker cannot perform a fault attack again by a secret key data erasure process, an encryption device usage stop process, etc., once fault detection has succeeded. Take corrective action.
したがって、攻撃者は何回もフォールト攻撃を繰り返し試すことにより秘密鍵を解読することが不可能である。図18のフォールト検知回路10Aは、既知の攻撃を確率「1」で防御を行い、さらに未知の攻撃に対しても確率「1」−「1/3」で防御することができる。この確率は変化条件ルールの数を多くするほど「1」に近づけることができ、より安全となる。なお、図18のフォールト検知回路10Aでは変化条件ルールが3つの例を示したが複数であれば他の数値でもよい。
Therefore, the attacker cannot decrypt the secret key by repeatedly trying the fault attack many times. The
フォールト検知なしの回路、従来のフォールト検知回路,図14のフォールト検知回路10,図18のフォールト検知回路の特徴は図19のようになる。図19はフォールト検知なしの回路、従来のフォールト検知回路,図14のフォールト検知回路10,図18のフォールト検知回路10Aの特徴を比較した比較図である。
The characteristics of the circuit without fault detection, the conventional fault detection circuit, the
本実施例の図14に示したフォールト検知回路10,図18に示したフォールト検知回路10Aは、従来のフォールト検知回路が備えていなかった、フォールト検知のリアルタイム性を備えているというメリットを有する。
The
また、本実施例の図14に示したフォールト検知回路10,図18に示したフォールト検知回路10Aは、既知の攻撃に対してフォールト発生を1回実施する、2回実施する方法の両方に対して秘密鍵の漏洩を防止することができる。また、本実施例の図18に示したフォールト検知回路10Aは、将来的に攻撃手法が進化し、未知の攻撃が発見された場合でも、秘密鍵の漏洩を防止することができる。
Further, the
また、従来のフォールト検知回路は、フォールト検知を実現するため、カウンタ機能とチェック機能の両方が必要であった。一方、本実施例の図14に示したフォールト検知回路10,図18に示したフォールト検知回路10Aは、チェック機能のみによりフォールト検知を実現することができる。
Also, the conventional fault detection circuit needs both a counter function and a check function in order to realize fault detection. On the other hand, the
図20はフォールト攻撃対策ハードウェアを搭載したスマートカードチップの一例の構成図である。スマートカードチップ100は、CPU101,ROM102,通信回路103,外部インターフェース104,フォールト攻撃対策ハードウェア105,RAM106,クロック生成回路107,電源回路108を有する構成である。
FIG. 20 is a block diagram of an example of a smart card chip equipped with fault attack countermeasure hardware. The
図20中、フォールト攻撃対策ハードウェア105は、本実施例のフォールト検知回路10又は10Aに相当する。フォールト攻撃対策ハードウェア105は、上記したようにフォールト発生を検知すると、バス経由でCPU101にフォールト検知信号(割り込み信号)を出力する。CPU101はフォールト検知信号を受信すると、秘密鍵データ消去処理、暗号装置の利用停止処理などにより、攻撃者が2度とフォールト攻撃できないような適切な対処を実行する。
In FIG. 20, fault
本実施例のフォールト検知回路10又は10Aは、RSA暗号アルゴリズム,AES暗号アルゴリズムなど、任意の暗号アルゴリズムに対するフォールト攻撃により秘密鍵の推定が行われることを防ぐための対策技術である。本実施例のフォールト検知回路10又は10Aを適用することで、暗号装置は高い耐タンパ性を持つことができる。
The
図21は共通鍵暗号方式への本実施例の適用を表した一例の説明図である。代表的な共通鍵暗号アルゴリズムは、Advanced Encryption Standard(AES)が、米国連邦標準Federal Information Standards (FIPS) FIPS 197として公開している(文献:http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf)。 FIG. 21 is an explanatory diagram showing an example of application of the present embodiment to the common key cryptosystem. A typical common key encryption algorithm is published by Advanced Encryption Standard (AES) as Federal Information Standards (FIPS) FIPS 197 (reference: http://csrc.nist.gov/publications/fips/ fips197 / fips-197.pdf).
図21は、この文献の15ページ、Figure5に記されているAES暗号化処理に対して図14に示したフォールト検知回路10を用いた場合の状態値の遷移を表している。図21では13個の状態値を4-bitで表現している。状態値の変化条件ルールは、1-bit値変化である。正常な遷移である限り、状態値は常に1-bit変化を行う。
FIG. 21 shows the transition of state values when the
本実施例のフォールト検知回路10の状態値比較回路14は、状態値の遷移前と遷移後の値を比較し、1-bit値の変化であればフォールト発生が無いと判定し、それ以外の変化であればフォールトが発生したと判定する。
The state
図22は共通鍵暗号方式への本実施例の適用を表した他の例の説明図である。図22では状態値の変化条件ルールが2つ以上必要となる。図22では第1の変化条件ルールとして「1-bit値変化」、第2の変化条件ルールとして「3-bit値変化」を利用している。図22の共通鍵暗号アルゴリズムを実行する前の初期化処理として、本実施例のフォールト検知回路10Aは乱数により第1の変化条件ルール又は第2の変化条件ルールを選択する。
FIG. 22 is an explanatory diagram of another example showing the application of this embodiment to the common key cryptosystem. In FIG. 22, two or more condition value change condition rules are required. In FIG. 22, “1-bit value change” is used as the first change condition rule, and “3-bit value change” is used as the second change condition rule. As an initialization process before executing the common key encryption algorithm of FIG. 22, the
本実施例のフォールト検知回路10Aの状態値比較回路14は、選択された第1又は第2の変化条件ルールに応じて、状態値の遷移前と遷移後との比較を行う。フォールト検知回路10Aの状態値比較回路14は、第1の変化条件ルールが選択された場合、1-bit値の変化であればフォールト発生が無いと判定し、それ以外の変化であればフォールトが発生したと判定する。
The state
フォールト検知回路10Aの状態値比較回路14は、第2の変化条件ルールが選択された場合、3-bit値の変化であればフォールト発生が無いと判定し、それ以外の変化であればフォールトが発生したと判定する。
When the second change condition rule is selected, the state
図23は公開鍵暗号方式への本実施例の適用を表した一例の説明図である。代表的な公開鍵暗号アルゴリズムとしては、RSA暗号方式が知られている。RSA暗号は乗算剰余演算を繰り返すことで処理を行う公開鍵暗号である。 FIG. 23 is an explanatory diagram showing an example of application of this embodiment to the public key cryptosystem. An RSA encryption method is known as a typical public key encryption algorithm. The RSA cipher is a public key cipher that performs processing by repeating a modular multiplication operation.
RSA暗号は乗算剰余を効率的に実行するための方法として、整数A,B, 法Nに対してREDC(A,B,N)=A×B×R-1 (mod N)を計算するMontgomery乗算剰余という方法が一般的に知られている。ただし、RはNのビット長xに対して、R=2xで与えられる定数である。 The RSA cipher uses Montgomery to calculate REDC (A, B, N) = A × B × R -1 (mod N) for integers A, B, and modulus N as a method for efficiently executing the modular multiplication. A method called modular multiplication is generally known. Here, R is a constant with respect to the bit length x of N, is given by R = 2 x.
Montgomery乗算剰余の処理アルゴリズムは、様々な方法が知られているが、その一つに文献:Kouichi Itoh, Masahiko Takenaka, Naoya Torii, Syouji Temma, and Yasushi Kurihara, "Fast Implementation of Public-Key Cryptography on a DSP TMS320C6201", CHES '99, LNCS 1717, page 61-72の方法が知られている。 Various methods are known for processing Montgomery modular multiplication, one of which is literature: Kouichi Itoh, Masahiko Takenaka, Naoya Torii, Syouji Temma, and Yasushi Kurihara, "Fast Implementation of Public-Key Cryptography on a The method of DSP TMS320C6201 ", CHES '99, LNCS 1717, pages 61-72 is known.
図23は、この文献のpage65, Algorithm4に記されたMontgomery乗算剰余に対して図14に示したフォールト検知回路10を用いた場合の状態値の遷移を表している。図23では、w-bit単位の変数をg個並べることで、RSA暗号で用いられる1024-bit以上の数値を表現している。wは、一般的にw=16,32,64など、1024より小さな値である。w-bitの部分乗算を繰り返すことで、1024-bit以上の乗算剰余演算を行う。
FIG. 23 shows transition of state values when the
図23では17個の状態値を5-bitで表現している。状態値の変化条件ルールは、1-bit値変化である。いずれの状態遷移についても正常な遷移である限り、状態値は常に1-bit変化を行う。本実施例のフォールト検知回路10の状態値比較回路14は、状態値の遷移前と遷移後の値を比較し、1-bit値の変化であればフォールト発生が無いと判定し、それ以外の変化であればフォールトが発生したと判定する。
In FIG. 23, 17 state values are expressed by 5-bits. The state value change condition rule is a 1-bit value change. As long as any state transition is a normal transition, the state value always changes 1-bit. The state
実施例1,2は、共通鍵暗号方式の実施例であり、条件分岐のパターンは、for文による1重ループと非常に簡潔な構造であった。これに対し、図23の示す公開鍵暗号方式の実施例においては条件分岐のパターンがもっと複雑となり、for文による2重ループと、if文による条件分岐とが組み合わさっている。条件分岐のパターンが複雑化することで、状態値の遷移パターンの構築は、より困難となる。 Examples 1 and 2 are examples of the common key cryptosystem, and the pattern of conditional branching is a simple loop of a for statement and a very simple structure. On the other hand, in the embodiment of the public key cryptosystem shown in FIG. 23, the pattern of conditional branching is more complicated, and a double loop based on a for statement and a conditional branch based on an if statement are combined. As the conditional branch pattern becomes complicated, it becomes more difficult to construct a state value transition pattern.
この困難さを解決するためには、補助的な手段が必要となるが、その一つである"NOP"状態の挿入を図23の条件分岐((11001)2-(10001)2の状態値)において用いている。"NOP"とは、何も処理を行わない状態を指す。"NOP"は何も処理を行わないため、冗長な処理であるが、状態値の遷移条件の制約下において、遷移パターンを構築するために用いることができる補助的な手段である。 In order to solve this difficulty, an auxiliary means is required. One of them is insertion of the “NOP” state, which is the condition value of (11001) 2- (10001) 2 in FIG. ). “NOP” indicates a state in which no processing is performed. “NOP” is a redundant process because it does not perform any process, but is an auxiliary means that can be used to construct a transition pattern under the restriction of the transition condition of the state value.
図24は状態値の遷移条件が1-bit値変化である場合において、この"NOP"挿入が必要な例を示す説明図である。状態値の変化条件ルールが1-bit値変化の場合は、図22に示すように、状態値A,B,Cを用いて以下の処理を行う場合、状態値BとCとの間にNOPを挿入する必要がある。 FIG. 24 is an explanatory diagram showing an example in which “NOP” insertion is necessary when the transition condition of the state value is a 1-bit value change. When the change condition rule of the state value is 1-bit value change, as shown in FIG. 22, when the following processing is performed using the state values A, B, and C, a NOP is set between the state values B and C. Need to be inserted.
A if (cond) then {
B 処理1}
C 処理2
変化条件ルールを1-bit値変化とした場合には、状態値A→B→Cの遷移を行うことを考える。状態値Aに含まれる'1'の個数をkと表記すると、状態変化ルールの制約により、状態値Bでは'1'の個数が1つ増えるか、もしくは減るかのいずれであるので、k-1もしくはk+1となる。同様に、状態値Bから状態値Cに遷移する場合は、'1'の個数はk-2、kもしくはk+2となる。
A if (cond) then {
B treatment 1}
When the change condition rule is a 1-bit value change, it is considered that the state value A → B → C is changed. If the number of '1' included in state value A is expressed as k, the number of '1' in state value B will either increase or decrease by one due to the restrictions of the state change rule. 1 or k + 1. Similarly, when the state value B transits to the state value C, the number of “1” is k−2, k, or k + 2.
以上により、変化条件ルールを1-bit値変化とした場合には、状態値A→B→Cの遷移を実現することができる。しかし、A→Cの遷移を行う場合は、'1'の個数がk個からk-2, k, k+2となる。つまり、A→Cの遷移を行う場合はkの値に関係なく、状態値が2-bit値変化するか、0-bit値変化するかのいずれかでしかなく、1-bit値変化を実現できない。この問題を解決するために、変化条件ルールを1-bit値変化とした場合には、状態値BとCとの間にNOPを挿入した以下の処理を行う。
As described above, when the change condition rule is a 1-bit value change, the transition of the state value A → B → C can be realized. However, when the A → C transition is performed, the number of “1” is changed from k to k−2, k,
A if (cond) then {
B 処理1
C NOP }
D 処理2
状態値BとCとの間にNOPを挿入したことで、変化条件ルールを1-bit値変化とした場合には、状態値A→B→C→Dの遷移において、状態値CからDに遷移したときの'1'の個数を、k-1もしくはk+1とすることができる。このとき、状態値A→Dの遷移は1-bit値変化となる。つまり、状態値A→B→C→Dの遷移と、状態値A→Dの遷移とは、両方とも1-bit値変化という制約において実現することができる。ここでは、NOPの挿入を含めた、状態値の遷移パターンの構築に利用できる補助的な手段を以下に列挙する。
A if (cond) then {
C NOP}
When NOP is inserted between state values B and C, and the change condition rule is 1-bit value change, state value C changes to D in the transition of state value A → B → C → D The number of '1's at the time of transition can be set to k-1 or k + 1. At this time, the transition of the state value A → D is a 1-bit value change. That is, both the transition of the state value A → B → C → D and the transition of the state value A → D can be realized under the restriction of 1-bit value change. Here, auxiliary means that can be used to construct a transition pattern of state values including insertion of NOP are listed below.
・NOPの挿入
図24では条件分岐に関する例を示したが、ループ分岐に対しても応用可能である。
-Insertion of NOP FIG. 24 shows an example of conditional branching, but it can also be applied to loop branching.
・状態値のビット長の拡大
状態値のビット長を拡大することで、状態値の選択の自由度が広がり、状態値の遷移パターンの構築が容易となる。例えば15個の状態値が与えられている場合、それを表現するための最小のビット長は4-bitであるが、この4-bitより大きなビット長で15個の状態値を表現することで、状態値の遷移パターンの構築が容易となる。
-Increasing the bit length of the state value By expanding the bit length of the state value, the degree of freedom of selection of the state value is widened, and the construction of the transition pattern of the state value becomes easy. For example, when 15 state values are given, the minimum bit length for expressing it is 4-bit. By expressing 15 state values with a bit length larger than 4-bit, It is easy to construct a transition pattern of state values.
・テンプレートの作成
1重ループ、2重ループ、条件分岐など、基本的なフロー制御の種類に応じて、状態値の構築のためのテンプレートを事前計算しておき、そのテンプレートを利用して、状態値の構築を行う。ループ中の状態数、条件分岐の状態数に応じて多様なテンプレートを作成することで、様々な処理に対応できる。
・ Creation of templates Pre-calculate templates for constructing state values according to basic flow control types such as single loop, double loop, conditional branch, etc. Build the value. By creating various templates according to the number of states in the loop and the number of states of conditional branches, it is possible to deal with various processes.
図25は公開鍵暗号方式への本実施例の適用を表した他の例の説明図である。図25では状態値の変化条件ルールが2つ以上必要となる。図25では第1の変化条件ルールとして「1-bit値変化」、第2の変化条件ルールとして「3-bit値変化」を利用している。図25の公開鍵暗号アルゴリズムを実行する前の初期化処理として、本実施例のフォールト検知回路10Aは乱数により第1の変化条件ルール又は第2の変化条件ルールを選択する。
FIG. 25 is an explanatory diagram of another example showing application of this embodiment to the public key cryptosystem. In FIG. 25, two or more condition value change condition rules are required. In FIG. 25, “1-bit value change” is used as the first change condition rule, and “3-bit value change” is used as the second change condition rule. As an initialization process before executing the public key encryption algorithm of FIG. 25, the
本実施例のフォールト検知回路10Aの状態値比較回路14は、選択された第1又は第2の変化条件ルールに応じて、状態値の遷移前と遷移後との比較を行う。フォールト検知回路10Aの状態値比較回路14は、第1の変化条件ルールが選択された場合、1-bit値の変化であればフォールト発生が無いと判定し、それ以外の変化であればフォールトが発生したと判定する。
The state
フォールト検知回路10Aの状態値比較回路14は、第2の変化条件ルールが選択された場合、3-bit値の変化であればフォールト発生が無いと判定し、それ以外の変化であればフォールトが発生したと判定する。
When the second change condition rule is selected, the state
(効果)
本実施例の効果は図19の比較図に示される通りである。本実施例は、従来のフォールト検知回路が備えていなかった、フォールト検知のリアルタイム性を備えている。既知の攻撃に対しては、フォールト発生を1回実施する、2回実施する方法の両方に対して秘密鍵の漏洩を防止することができる。将来的に攻撃手法が進化し、未知の攻撃が発見された場合でも、図18のフォールト検知回路10Aは秘密鍵の漏洩を防止できる。
(effect)
The effect of the present embodiment is as shown in the comparison diagram of FIG. The present embodiment has a real-time property of fault detection that the conventional fault detection circuit does not have. For known attacks, it is possible to prevent leakage of the secret key for both the method of executing the fault occurrence once and the method of executing the fault twice. Even if an attack technique evolves in the future and an unknown attack is discovered, the
また、従来のフォールト検知回路は、フォールト検知を実現するため、カウンタ機能とチェック機能の両方が必要であった。一方、本実施例の図14に示したフォールト検知回路10,図18に示したフォールト検知回路10Aは、チェック機能のみによりフォールト検知を実現できる。
Also, the conventional fault detection circuit needs both a counter function and a check function in order to realize fault detection. On the other hand, the
本発明は、以下に記載する付記のような構成が考えられる。
(付記1)
アルゴリズムの実行状態を状態値により管理する装置への不正操作を検知する不正操作検知回路であって、
正常な処理における状態値の変化条件ルールを出力する変化条件ルール出力手段と、
前記変化条件ルール出力手段から出力される前記変化条件ルールに基づき、前記状態値を順次生成する状態値生成手段と、
前記状態値生成手段が生成した前記状態値を格納する状態値格納手段と、
前記状態値格納手段が格納している前記状態値を遷移前の状態値、前記状態値生成手段が生成した前記状態値を遷移後の状態値として比較し、前記状態値の遷移が前記変化条件ルール出力手段から出力される前記変化条件ルールに従っていなければ異常な処理であると判定する状態値比較判定手段と
を有する不正操作検知回路。
(付記2)
前記変化条件ルール出力手段は正常な処理における状態値の複数種類の変化条件ルールから一つの前記変化条件ルールを出力する付記1記載の不正操作検知回路。
(付記3)
前記変化条件ルール出力手段は正常な処理における状態値の変化条件ルールとして前記遷移前の状態値と前記遷移後の状態値とで変化すべきビット数を出力する付記1又は2記載の不正操作検知回路。
(付記4)
前記変化条件ルール出力手段は正常な処理における状態値の複数種類の変化条件ルールとして、前記複数種類の変化条件ルールごとに前記遷移前の状態値と前記遷移後の状態値とで変化すべきビット数を異ならせて出力する付記2記載の不正操作検知回路。
(付記5)
アルゴリズムの実行状態を状態値により管理する装置への不正操作を検知する不正操作検知回路を備えた装置であって、
正常な処理における状態値の変化条件ルールを出力する変化条件ルール出力手段と、
前記変化条件ルール出力手段から出力される前記変化条件ルールに基づき、前記状態値を順次生成する状態値生成手段と、
前記状態値生成手段が生成した前記状態値を格納する状態値格納手段と、
前記状態値格納手段が格納している前記状態値を遷移前の状態値、前記状態値生成手段が生成した前記状態値を遷移後の状態値として比較し、前記状態値の遷移が前記変化条件ルール出力手段から出力される前記変化条件ルールに従っていなければ異常な処理であると判定する状態値比較判定手段と
を有する装置。
(付記6)
アルゴリズムの実行状態を状態値により管理する装置への不正操作を検知する不正操作検知回路の不正操作検知方法であって、
変化条件ルール出力手段が、正常な処理における状態値の変化条件ルールを出力する変化条件ルール出力ステップと、
状態値生成手段が、前記変化条件ルール出力手段から出力される前記変化条件ルールに基づき、前記状態値を順次生成する状態値生成ステップと、
状態値格納手段が、前記状態値生成手段の生成した前記状態値を格納する状態値格納ステップと、
状態値比較判定手段が、前記状態値格納手段が格納している前記状態値を遷移前の状態値、前記状態値生成手段が生成した前記状態値を遷移後の状態値として比較し、前記状態値の遷移が前記変化条件ルール出力手段から出力される前記変化条件ルールに従っていなければ異常な処理であると判定する状態値比較判定ステップと
を有する不正操作検知方法。
The present invention may have the following configurations as described below.
(Appendix 1)
An unauthorized operation detection circuit that detects an unauthorized operation on a device that manages an execution state of an algorithm by a state value,
Change condition rule output means for outputting a change condition rule of state values in normal processing;
State value generation means for sequentially generating the state values based on the change condition rules output from the change condition rule output means;
State value storage means for storing the state value generated by the state value generation means;
The state value stored in the state value storage means is compared as the state value before transition, the state value generated by the state value generation means is compared as the state value after transition, and the transition of the state value is the change condition. An unauthorized operation detection circuit comprising: a state value comparison determination unit that determines that the process is abnormal if the change condition rule output from the rule output unit is not followed.
(Appendix 2)
The unauthorized operation detection circuit according to
(Appendix 3)
The change condition rule output means outputs the number of bits to be changed between the state value before the transition and the state value after the transition as the change condition rule of the state value in normal processing. circuit.
(Appendix 4)
The change condition rule output means is a bit to be changed between the state value before transition and the state value after transition for each of the plurality of types of change condition rules as a plurality of types of change condition rules of the state value in normal processing. The unauthorized operation detection circuit according to
(Appendix 5)
A device including an unauthorized operation detection circuit that detects an unauthorized operation to a device that manages an execution state of an algorithm by a state value,
Change condition rule output means for outputting a change condition rule of state values in normal processing;
State value generation means for sequentially generating the state values based on the change condition rules output from the change condition rule output means;
State value storage means for storing the state value generated by the state value generation means;
The state value stored in the state value storage means is compared as the state value before transition, the state value generated by the state value generation means is compared as the state value after transition, and the transition of the state value is the change condition. An apparatus having state value comparison and determination means for determining that the process is abnormal if the change condition rule output from the rule output means is not followed.
(Appendix 6)
An unauthorized operation detection method of an unauthorized operation detection circuit that detects an unauthorized operation on a device that manages an execution state of an algorithm by a state value,
A change condition rule output means for outputting a change condition rule for a state value in normal processing;
A state value generating unit that sequentially generates the state value based on the change condition rule output from the change condition rule output unit;
A state value storing means for storing the state value generated by the state value generating means;
The state value comparison / determination unit compares the state value stored in the state value storage unit as the state value before the transition, and compares the state value generated by the state value generation unit as the state value after the transition. A fraudulent operation detection method comprising: a state value comparison determination step that determines that the value transition is an abnormal process if it does not conform to the change condition rule output from the change condition rule output means.
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。 The present invention is not limited to the specifically disclosed embodiments, and various modifications and changes can be made without departing from the scope of the claims.
1 4ビット値(状態値)
10,10A フォールト検知回路
11,11A〜11C,21 状態値生成回路
12,22 状態値レジスタ
13,13A〜13C 変化条件ルール回路
14 状態値比較回路
15,16 セレクタ
23 フォールト検知用カウンタ制御回路
24 フォールト検知用カウンタ
25 フォールト検知用カウンタチェック回路
100 スマートカードチップ
101 CPU
102 ROM
103 通信回路
104 外部インターフェース
105 フォールト攻撃対策ハードウェア
106 RAM
107 クロック生成回路
108 電源回路
1 4-bit value (status value)
10, 10A Fault detection circuit 11, 11A to 11C, 21 State
102 ROM
103
107
Claims (6)
正常な処理における状態値の変化条件ルールを出力する変化条件ルール出力手段と、
前記変化条件ルール出力手段から出力される前記変化条件ルールに基づき、前記状態値を順次生成する状態値生成手段と、
前記状態値生成手段が生成した前記状態値を格納する状態値格納手段と、
前記状態値格納手段が格納している前記状態値を遷移前の状態値、前記状態値生成手段が生成した前記状態値を遷移後の状態値として比較し、前記状態値の遷移が前記変化条件ルール出力手段から出力される前記変化条件ルールに従っていなければ異常な処理であると判定する状態値比較判定手段と
を有する不正操作検知回路。 An unauthorized operation detection circuit that detects an unauthorized operation on a device that manages an execution state of an algorithm by a state value,
Change condition rule output means for outputting a change condition rule of state values in normal processing;
State value generation means for sequentially generating the state values based on the change condition rules output from the change condition rule output means;
State value storage means for storing the state value generated by the state value generation means;
The state value stored in the state value storage means is compared as the state value before transition, the state value generated by the state value generation means is compared as the state value after transition, and the transition of the state value is the change condition. An unauthorized operation detection circuit comprising: a state value comparison determination unit that determines that the process is abnormal if the change condition rule output from the rule output unit is not followed.
正常な処理における状態値の変化条件ルールを出力する変化条件ルール出力手段と、
前記変化条件ルール出力手段から出力される前記変化条件ルールに基づき、前記状態値を順次生成する状態値生成手段と、
前記状態値生成手段が生成した前記状態値を格納する状態値格納手段と、
前記状態値格納手段が格納している前記状態値を遷移前の状態値、前記状態値生成手段が生成した前記状態値を遷移後の状態値として比較し、前記状態値の遷移が前記変化条件ルール出力手段から出力される前記変化条件ルールに従っていなければ異常な処理であると判定する状態値比較判定手段と
を有する装置。 A device including an unauthorized operation detection circuit that detects an unauthorized operation to a device that manages an execution state of an algorithm by a state value,
Change condition rule output means for outputting a change condition rule of state values in normal processing;
State value generation means for sequentially generating the state values based on the change condition rules output from the change condition rule output means;
State value storage means for storing the state value generated by the state value generation means;
The state value stored in the state value storage means is compared as the state value before transition, the state value generated by the state value generation means is compared as the state value after transition, and the transition of the state value is the change condition. An apparatus having state value comparison and determination means for determining that the process is abnormal if the change condition rule output from the rule output means is not followed.
変化条件ルール出力手段が、正常な処理における状態値の変化条件ルールを出力する変化条件ルール出力ステップと、
状態値生成手段が、前記変化条件ルール出力手段から出力される前記変化条件ルールに基づき、前記状態値を順次生成する状態値生成ステップと、
状態値格納手段が、前記状態値生成手段の生成した前記状態値を格納する状態値格納ステップと、
状態値比較判定手段が、前記状態値格納手段が格納している前記状態値を遷移前の状態値、前記状態値生成手段が生成した前記状態値を遷移後の状態値として比較し、前記状態値の遷移が前記変化条件ルール出力手段から出力される前記変化条件ルールに従っていなければ異常な処理であると判定する状態値比較判定ステップと
を有する不正操作検知方法。 An unauthorized operation detection method of an unauthorized operation detection circuit that detects an unauthorized operation on a device that manages an execution state of an algorithm by a state value,
A change condition rule output means for outputting a change condition rule for a state value in normal processing;
A state value generating unit that sequentially generates the state value based on the change condition rule output from the change condition rule output unit;
A state value storing means for storing the state value generated by the state value generating means;
The state value comparison / determination unit compares the state value stored in the state value storage unit as the state value before the transition, and compares the state value generated by the state value generation unit as the state value after the transition. A fraudulent operation detection method comprising: a state value comparison determination step that determines that the value transition is an abnormal process if it does not conform to the change condition rule output from the change condition rule output means.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008231269A JP5261088B2 (en) | 2008-09-09 | 2008-09-09 | Unauthorized operation detection circuit, device provided with unauthorized operation detection circuit, and unauthorized operation detection method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008231269A JP5261088B2 (en) | 2008-09-09 | 2008-09-09 | Unauthorized operation detection circuit, device provided with unauthorized operation detection circuit, and unauthorized operation detection method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010068135A JP2010068135A (en) | 2010-03-25 |
JP5261088B2 true JP5261088B2 (en) | 2013-08-14 |
Family
ID=42193341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008231269A Expired - Fee Related JP5261088B2 (en) | 2008-09-09 | 2008-09-09 | Unauthorized operation detection circuit, device provided with unauthorized operation detection circuit, and unauthorized operation detection method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5261088B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10335069B2 (en) | 2012-05-03 | 2019-07-02 | Vioptix, Inc. | Oximeter probe with light wavelengths to avoid surgical dyes |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5387144B2 (en) * | 2009-06-01 | 2014-01-15 | ソニー株式会社 | Malfunction occurrence attack detection circuit and integrated circuit |
JP5756412B2 (en) * | 2012-01-12 | 2015-07-29 | 株式会社日立製作所 | Monitoring method and monitoring system |
JP5861018B1 (en) * | 2012-12-21 | 2016-02-16 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | Computing device configured by table network |
JP6354376B2 (en) * | 2014-06-23 | 2018-07-11 | 大日本印刷株式会社 | Power residue calculation device, IC card, power residue calculation method, and power residue calculation program |
NL2015745B1 (en) * | 2015-11-09 | 2017-05-26 | Koninklijke Philips Nv | A cryptographic device arranged to compute a target block cipher. |
CN111095257A (en) | 2017-09-25 | 2020-05-01 | 索尼公司 | Authentication device, information processing method, and program |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10154976A (en) * | 1996-11-22 | 1998-06-09 | Toshiba Corp | Tamper-free system |
JP2005340892A (en) * | 2004-05-24 | 2005-12-08 | Matsushita Electric Ind Co Ltd | Encryption circuit |
FR2889005A1 (en) * | 2005-07-19 | 2007-01-26 | Gemplus Sa | PERMANENT MATERIAL INTEGRITY OF DATA |
JP4926665B2 (en) * | 2006-11-14 | 2012-05-09 | 富士重工業株式会社 | Failure diagnosis device for transmission range position detection device |
-
2008
- 2008-09-09 JP JP2008231269A patent/JP5261088B2/en not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10335069B2 (en) | 2012-05-03 | 2019-07-02 | Vioptix, Inc. | Oximeter probe with light wavelengths to avoid surgical dyes |
US10456066B2 (en) | 2012-05-03 | 2019-10-29 | Vioptix, Inc. | Wireless, handheld tissue oximetry device |
US10524705B2 (en) | 2012-05-03 | 2020-01-07 | Vioptix, Inc. | Tissue oximetry probe with tissue marking feature |
US11058333B2 (en) | 2012-05-03 | 2021-07-13 | Vioptix, Inc. | Wireless, handheld tissue oximetry device |
US11478170B2 (en) | 2012-05-03 | 2022-10-25 | Vioptix, Inc. | Oximeter probe with light wavelengths to avoid surgical dyes |
US11771348B2 (en) | 2012-05-03 | 2023-10-03 | Vioptix, Inc. | Wireless, handheld tissue oximetry device |
US11786152B2 (en) | 2012-05-03 | 2023-10-17 | Vioptix, Inc. | Tissue oximetry probe with tissue marking feature |
US11890095B2 (en) | 2012-05-03 | 2024-02-06 | Vioptix, Inc. | Tissue oximetry probe geometry for robust calibration and self-correction |
Also Published As
Publication number | Publication date |
---|---|
JP2010068135A (en) | 2010-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yarom et al. | Recovering OpenSSL ECDSA nonces using the FLUSH+ RELOAD cache side-channel attack | |
JP4671571B2 (en) | Secret information processing device and memory for storing secret information processing program | |
US9571289B2 (en) | Methods and systems for glitch-resistant cryptographic signing | |
Hess et al. | Information leakage attacks against smart card implementations of cryptographic algorithms and countermeasures–a survey | |
JP5261088B2 (en) | Unauthorized operation detection circuit, device provided with unauthorized operation detection circuit, and unauthorized operation detection method | |
JP7123959B2 (en) | Elliptic curve point multiplication device and method | |
EP2332040B1 (en) | Countermeasure securing exponentiation based cryptography | |
US20130279692A1 (en) | Protecting modular exponentiation in cryptographic operations | |
JP2001337599A (en) | Scalar-fold calculating method and device for elliptic curve cipher, and storage medium | |
KR20090006176A (en) | Secure decryption method | |
EP2211265B1 (en) | Elliptic curve arithmetic processing unit and elliptic curve arithmetic processing program and method | |
WO2009122461A1 (en) | Encrypting method having countermeasure function against power analyzing attacks | |
US11824986B2 (en) | Device and method for protecting execution of a cryptographic operation | |
US20110170685A1 (en) | Countermeasure method and devices for asymmetric encryption with signature scheme | |
US20110274271A1 (en) | Countermeasure method and devices for asymmetric encryption | |
JP2004304800A (en) | Protection of side channel for prevention of attack in data processing device | |
JP2009500710A (en) | Apparatus and method for protecting a data processing device against attack or analysis | |
EP1443699A1 (en) | Information processing means and IC card | |
WO2011061263A1 (en) | Countermeasures against power attacks for the randomization of the exponent | |
JP4386766B2 (en) | Error detection in data processing equipment. | |
Blömer et al. | Wagner’s Attack on a secure CRT-RSA Algorithm Reconsidered | |
Fouque et al. | Defeating countermeasures based on randomized BSD representations | |
JP6228354B2 (en) | Unauthorized operation detection circuit, device provided with unauthorized operation detection circuit, and unauthorized operation detection method | |
KR100953716B1 (en) | Method and Apparatus of digital signature using bit arithmetic based on CRT-RSA and Recording medium using by the same | |
Yen et al. | Improvement on Ha-Moon randomized exponentiation algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110328 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130416 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130426 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160502 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |