JP2010068135A - Fraudulent operation detection circuit, apparatus having the same, and fraudulent operation detection method - Google Patents

Fraudulent operation detection circuit, apparatus having the same, and fraudulent operation detection method Download PDF

Info

Publication number
JP2010068135A
JP2010068135A JP2008231269A JP2008231269A JP2010068135A JP 2010068135 A JP2010068135 A JP 2010068135A JP 2008231269 A JP2008231269 A JP 2008231269A JP 2008231269 A JP2008231269 A JP 2008231269A JP 2010068135 A JP2010068135 A JP 2010068135A
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.)
Granted
Application number
JP2008231269A
Other languages
Japanese (ja)
Other versions
JP5261088B2 (en
Inventor
Koichi Ito
孝一 伊藤
Akio Shioda
昭雄 塩田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Fujitsu Advanced Engineering Ltd
Original Assignee
Fujitsu Ltd
Fujitsu Advanced Engineering 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 Fujitsu Ltd, Fujitsu Advanced Engineering Ltd filed Critical Fujitsu Ltd
Priority to JP2008231269A priority Critical patent/JP5261088B2/en
Publication of JP2010068135A publication Critical patent/JP2010068135A/en
Application granted granted Critical
Publication of JP5261088B2 publication Critical patent/JP5261088B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a fraudulent operation detection circuit capable of highly accurately detecting a fraudulent operation to an apparatus which controls the performance state of an algorithm by a state value and strengthening security, to provide an apparatus having the fraudulent operation detection circuit, and to provide a fraudulent operation detection method. <P>SOLUTION: The fraudulent operation detection circuit 10 includes a change condition rule output means 13 for outputting the change condition rule of the state value, a state value generation means 11 for successively generating the state value on the basis of the change condition rule, a state value storage means 12 for storing the state value, and a state value comparison and determination means 14 for comparing the state values before transition of the state value and after the transition and determining abnormal processing when the transition of the state value is not according to the change condition rule. <P>COPYRIGHT: (C)2010,JPO&INPIT

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 key bit d i, 2 multiplications, execution pattern multiplication, is characterized in that are directly linked.

フォールト攻撃とは、半導体に対して、過電圧、異常クロック、高温度、レーザーなどのストレスを与えることで、暗号装置内部のデータ値に異常(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 Non-Patent Document 2, for example. Here, an outline of a fault attack against the RSA cipher will be described.

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. m = ((m q - m p) × u (mod q)) calculate × 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-bit value 1 shown on the left side of FIG. 4 is a value representing an execution state of the RSA encryption algorithm, and is hereinafter referred to as a “state value”. In the RSA encryption algorithm of FIG. 4, (0000) 2 , (0001) 2 ,..., (1001) 2 are state values. The state value is a value used for managing the execution state of the calculation in an apparatus that executes not only the RSA encryption process of FIG. 4 but also all the encryption processes.

図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. 5, d = (d u-1 , d u-2, ..., d 0) with respect to 2, processes the i = u-1 below, ..., 1,0 Shi Kurikae each 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 d i, 2 types of multiplication with R 0 = R 0 × R 0 and R 0 = R 0 × R 1 is running. If it can be identified by the power consumption waveform types of these multiplications, it can determine the bit value of d i, the secret key d can be decoded. However, the above identification is difficult for the RSA encryption algorithm of FIG. This is because R 0 and R 1 are always random values that are updated by the initial values given by the random numbers r 1 and r 2 as described in the state values (0001) 2 and (0010) 2 in FIG. Because.

つまり、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 . (in the example of FIG. 6 (0001) 2) part of the state value can be forcibly skip. Such highly accurate fault generation can be realized by a stress application method using a laser. In this way, by forcibly skipping the state value (0001) 2 by a fault attack with respect to the processing of the RSA encryption algorithm of FIG. 6, the process of writing a random number to R 0 is skipped, so 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. The result of this skipping, indicating the power consumption waveform when the value of R 0 becomes 0 in Fig. 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 multiplication one input 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 section 1 is completed, the remaining N−1 controlled sections are not executed. In this case, N−1 is added to ZZ at the time of conditional branching. The same applies to conditional branches at the end of other controlled sections.

これにより、全ての実行経路においてフォールト攻撃による状態スキップ無しに正常に実行された場合、カウンタ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ではなくなるので、フォールトが発生したことを検知できる。
特表2005−509936号公報 Alfred J.Menezesほか著"HANDBOOK OF APPLIED CRYPTOGRAPHY"(CRC press)の615ページ, アルゴリズム14.79 (http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf) D. Boneh, R. A. DeMillo, R. J. Lipton, "On the Importance of Checking Cryptographic Protocols for Faults", Eurocrypt'97, pp.37-51, 1997. Benoit Feix and Louis Marcel, "Passive and Active Combined Attacks", 2007 Workshop on Fault Diagnosis and Tolerance in Cryptography, FDTC 2007)
For example, as shown in “Execution path 4” of the program in FIG. 8, if “controlled section 1” is skipped due to a fault attack, one processing of ZZ = ZZ + 1 is skipped. Since the final value of ZZ in the detection process is ZZ = N−1, which is not the originally expected value of N, it can be detected that a fault has occurred.
JP 2005-509936 A Alfred J. Menezes et al. "HANDBOOK OF APPLIED CRYPTOGRAPHY" (CRC press), page 615, algorithm 14.79 (http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf) D. Boneh, RA DeMillo, RJ Lipton, "On the Importance of Checking Cryptographic Protocols for Faults", Eurocrypt'97, pp.37-51, 1997. (Benoit Feix and Louis Marcel, "Passive and Active Combined Attacks", 2007 Workshop on Fault Diagnosis and Tolerance in Cryptography, FDTC 2007)

図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. An attacker able to skip the state s 1 to generate a fault, to perform the skip in order to obtain the 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 fault detection circuit 10 in FIG. 14 is used as a state machine, for example. The fault detection circuit 10 in FIG. 14 includes a state value generation circuit 11, a state value register 12, a change condition rule circuit 13, and a state value comparison circuit 14.

状態値生成回路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 value comparison circuit 14 determines whether or not the state value transition is normal.

状態値生成回路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 value comparison circuit 14 are check function circuits. The output of the state value register 12 represents the current state value. The input of the state value register 12 represents the next state value.

つまり、状態値レジスタ12の入力と出力とを比較することで、遷移前及び遷移後の状態値の比較を行うことができる。変化条件ルール回路13,状態値比較回路14は遷移前及び遷移後の状態値の比較によるフォールト検知のチェック機能回路として動作する。状態値比較回路14は状態値レジスタ12の入力と出力とを比較することで、フォールト発生の有無の検知を行う。   That is, by comparing the input and output of the state value register 12, it is possible to compare the state values before and after the transition. The change condition rule circuit 13 and the state value comparison circuit 14 operate as a fault detection check function circuit by comparing the state values before and after the transition. The state value comparison circuit 14 compares the input and output of the state value register 12 to detect whether or not a fault has occurred.

状態値比較回路14が行うフォールト発生の有無の検知は状態値レジスタ12の入力と出力との関係が、変化条件ルール回路13の与える変化条件ルールに従っているか否かにより行われる。状態値比較回路14は、状態値レジスタ12の入力と出力との関係が変化条件ルール回路13の与える変化条件ルールに従っている場合、フォールト発生の無い正常な処理であると判断し、変化条件ルールに従っていない場合、フォールトの発生した異常な処理であると判断する。   Whether or not a fault has occurred is detected by the state value comparison circuit 14 based on whether or not the relationship between the input and output of the state value register 12 is in accordance with the change condition rule given by the change condition rule circuit 13. When the relationship between the input and output of the state value register 12 is in accordance with the change condition rule given by the change condition rule circuit 13, the state value comparison circuit 14 determines that the process is normal with no fault occurrence, and follows the change condition rule. If not, it is determined that the fault is an abnormal process.

変化条件ルール回路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 value comparison circuit 14 notifies an external circuit (for example, a CPU) that the fault has been detected by a fault detection output.

ここではフォールト検知機能を実現するために必要となる回路の比較のために、従来のフォールト検知回路の構成を図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 value generation circuit 21, a state value register 22, a fault detection counter control circuit 23, a fault detection counter 24, and a fault detection counter check circuit 25. The state value generation circuit 21 determines the state value after the transition. The state value register 22 stores the current state value.

状態値生成回路21,状態値レジスタ22は一般的に用いられる回路である。フォールト検知用カウンタ制御回路23,フォールト検知用カウンタ24はカウンタ機能回路である。フォールト検知用カウンタチェック回路25は、チェック機能回路である。   The state value generation circuit 21 and the state value register 22 are commonly used circuits. The fault detection counter control circuit 23 and the fault detection counter 24 are counter function circuits. The fault detection counter check circuit 25 is a check function circuit.

状態値生成回路21により状態値の遷移が決定されるのを受けて、フォールト検知用カウンタ制御回路23はフォールト検知用カウンタ24の値の操作を行う。フォールト検知用カウンタ24の値は、図8〜図10におけるカウンタZZの値に相当する。   When the state value transition is determined by the state value generation circuit 21, the fault detection counter control circuit 23 operates the value of the fault detection counter 24. The value of the fault detection counter 24 corresponds to the value of the counter ZZ in FIGS.

フォールト検知用カウンタ制御回路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 fault detection counter 24 according to the presence / absence of the branch of the state value and the branch timing. The fault detection counter control circuit 23 determines the operation of the fault detection counter 24 according to the transition of the state value.

フォールト検知用カウンタチェック回路25はフォールト検知を行う。フォールト検知用カウンタチェック回路25は、フォールト検知用カウンタ制御回路23によるフォールト検知用カウンタ24に対する操作が何回か繰り返されたあと、フォールト検知用カウンタ24の値が期待値どおりの値であるかをチェックすることで、フォールト発生の有無を判断する。   The fault detection counter check circuit 25 performs fault detection. The fault detection counter check circuit 25 checks whether the value of the fault detection counter 24 is the expected value after the operation of the fault detection counter control circuit 23 by the fault detection counter control circuit 23 is repeated several times. By checking, it is determined whether or not a fault has occurred.

なお、フォールト検知用カウンタ24の値が期待値どおりの値であるかをチェックするフォールト検知用カウンタチェック回路25の処理は、図8〜図10において、カウンタZZについてZZ=Nであるかどうかの判定を行う処理に対応する。   Note that the processing of the fault detection counter check circuit 25 for checking whether the value of the fault detection counter 24 is the expected value or not is whether or not ZZ = N for the counter ZZ in FIGS. This corresponds to the process of making a determination.

フォールト検知用カウンタ24の値が期待値どおりの正常な値であるならば、フォールト検知用カウンタチェック回路25はフォールト発生の無い正常な処理と判断し、期待値通りの正常な値でなければフォールト発生の有る異常な処理と判断する。フォールトが発生していると判断された場合、フォールト検知用カウンタチェック回路25はフォールト検知出力によりフォールト発生を検知したことを外部の回路に通知する。   If the value of the fault detection counter 24 is a normal value as expected, the fault detection counter check circuit 25 determines that the process is normal without occurrence of a fault. If the value is not normal as expected, the fault is detected. Judged as abnormal processing that occurred. When it is determined that a fault has occurred, the fault detection counter check circuit 25 notifies an external circuit that the occurrence of the fault has been detected by a fault detection output.

従来のフォールト検知回路は状態値の遷移とフォールト検知とを一体化せず、間接的にフォールト検知を行うので、状態値の遷移をカウントするカウンタ機能回路と、その状態値の遷移のカウント値が期待値どおりの値であるかをチェックするチェック機能回路との両方が必要である。   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 fault detection circuit 10 of the present invention integrates state value transition and fault detection, as shown in FIG. 14, only the check function circuit may be added. A fault detection function with a small circuit can be realized.

図14のフォールト検知回路10は改良を加えることで、更にセキュリティを向上させることができる。ここでは、図14のフォールト検知回路10のセキュリティを向上させる改良について説明する。図16は、図14のフォールト検知回路により検知できない状態値のスキップを表した説明図である。   The fault detection circuit 10 of FIG. 14 can be further improved in security by adding improvements. Here, the improvement which improves the security of the fault detection circuit 10 of FIG. 14 is demonstrated. FIG. 16 is an explanatory diagram showing skipping of state values that cannot be detected by the fault detection circuit of FIG.

図14のフォールト検知回路10は変化条件ルールが「1-bit値変化」である場合における状態値の遷移例を表している。図6に示すRSA暗号アルゴリズムを実装した暗号装置は秘密鍵を得るための状態値のスキップとして、(0000)2→(0011)2...のフォールト攻撃を行われてもフォールト発生を検知できるので安全である。しかし、図14のフォールト検知回路10は一部の状態値のスキップを検知できない。なぜなら、図14のフォールト検知回路10は変化条件ルール(制約条件)の範囲内の状態値の遷移であれば、フォールト発生と判定しないからである。 The fault detection circuit 10 of FIG. 14 represents an example of state value transition when the change condition rule is “1-bit value change”. Cryptographic device implementing the RSA encryption algorithm shown in FIG. 6 as the skip state value in order to obtain the secret key, it can detect the fault occurrence be performed (0000) 2 → (0011) 2 ... fault attack So it is safe. However, the fault detection circuit 10 of FIG. 14 cannot detect skipping of some state values. This is because the fault detection circuit 10 in FIG. 14 does not determine that a fault has occurred if the state value transitions within the range of the change condition rule (constraint condition).

図16は変化条件ルールが「1-bit値変化」の例である為、状態値が1-bit値だけ変化する(0000)2→(0010)2及び(0000)2→(0100)2のフォールト攻撃を検知できないことを表している。このように、本実施例のフォールト検知回路10は一部の状態値のスキップに関して検知できない、フォールト検知漏れを有する。このフォールト検知漏れを有していても図6に示すRSA暗号アルゴリズムを実装した暗号装置はフォールト攻撃による秘密鍵の解読を防ぐことができる。 Figure 16 is changed condition rule for an example of "1-bit value change", the state value is changed by 1-bit value (0000) 2 → (0010) 2 and (0000) 2 → (0100) 2 of This means that a fault attack cannot be detected. As described above, the fault detection circuit 10 of this embodiment has a fault detection omission that cannot be detected with respect to the skipping of some state values. Even if this fault detection omission is present, the cryptographic apparatus in which the RSA cryptographic algorithm shown in FIG. 6 is implemented can prevent the secret key from being decrypted by the fault attack.

図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 fault detection circuit 10 of this embodiment shown in FIG. 14 has a fault detection omission, but when applied to an encryption device that implements the RSA encryption algorithm shown in FIG. 6, the secret key is decrypted even if the fault occurs successfully. It is safe because you can't.

ゆえに、本実施例のフォールト検知回路10は、暗号装置を開発する段階で既知の攻撃法(Known Attack)の調査を行い、秘密鍵を解読できる状態値のスキップのパターンを事前に網羅し、このようなフォールト検知漏れに関する秘密鍵の漏洩の可能性について検証を行うことで、秘密鍵の解読が不可能である状態値の遷移を構築することができる。   Therefore, the fault detection circuit 10 of the present embodiment investigates a known attack method (Known Attack) at the stage of developing a cryptographic device, covers in advance the skip patterns of state values that can decrypt the secret key, and this By verifying the possibility of leakage of the secret key related to such fault detection leakage, it is possible to construct a state value transition in which the secret key cannot be decrypted.

既知の攻撃法(Known Attack)に対しては図14に示す本実施例のフォールト検知回路10を用いることでフォールト攻撃による秘密鍵の解読を防止できる。ただし、図14に示す本実施例のフォールト検知回路10のフォールト検知漏れは既知の攻撃法に対する防御を実現できるが、未知の攻撃法(Unknown Attack)に対して秘密鍵が解読できる可能性を残す。   For a known attack method (Known Attack), the use of the fault detection circuit 10 of this embodiment shown in FIG. 14 can prevent the secret key from being decrypted by the fault attack. However, the fault detection failure of the fault detection circuit 10 of this embodiment shown in FIG. 14 can realize protection against a known attack method, but leaves a possibility that the secret key can be decrypted against an unknown attack method (Unknown Attack). .

例えば図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 fault detection circuit 10 of FIG. 14 is improved so that not only a known attack but also an unknown attack that may occur in the future can be realized.

図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 fault detection circuit 10 of the present embodiment shown in FIG. The lower part of FIG. 17 represents a transition example of state values when the change condition rule is “3-bit value change” in the fault detection circuit 10 of the present embodiment shown in FIG.

図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 that implements 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 fault detection circuit 10 of FIG. 14 is not a complete method that can detect all skips of state values, and cannot detect skips of some state values. This is because the fault detection circuit 10 shown in FIG. 14 does not determine that a fault has occurred if the state value transitions within the range of the constraint condition.

例えば図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 fault detection circuit 10, the fault detection circuit 10 is a state value that causes fault detection omission. This makes it possible for an attacker to identify the skip pattern and improve safety.

図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 fault detection circuit 10A shown in FIG. 18 has a configuration including state value generation circuits 11A to 11C, a state value register 12, change condition rule circuits 13A to 13C, a state value comparison circuit 14, a selector 15, and a selector 16.

状態値生成回路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 13A to 13C determine a change condition rule for state values in normal processing without a fault attack. The state value comparison circuit 14 determines whether or not the state value transition is normal. The selector 15 inputs any one of the outputs of the state value generation circuits 11A to 11C to the state value register 12 and the state value comparison circuit 14 based on the random number. Further, the selector 16 inputs any one of the outputs of the change condition rule circuits 13A to 13C to the state value comparison circuit 14 based on the random number.

セレクタ15及びセレクタ16は乱数に基づいて連動し、状態値生成回路11Aの出力が選択されるとき変化条件ルール回路13Aの出力が選択され、状態値生成回路11Bの出力が選択されるとき変化条件ルール回路13Bの出力が選択され、状態値生成回路11Cの出力が選択されるとき変化条件ルール回路13Cの出力が選択される。   The selector 15 and the selector 16 work together based on random numbers, and when the output of the state value generation circuit 11A is selected, the output of the change condition rule circuit 13A is selected, and when the output of the state value generation circuit 11B is selected, the change condition When the output of the rule circuit 13B is selected and the output of the state value generation circuit 11C is selected, the output of the change condition rule circuit 13C is selected.

状態値比較回路14は状態値レジスタ12の入力と出力とを比較することで、フォールト発生の有無の検知を行う。状態値比較回路14が行うフォールト発生の有無の検知は状態値レジスタ12の入力と出力との関係が、変化条件ルール回路13A〜13Cの何れか一つにより与えられる変化条件ルールに従っているか否かにより行われる。   The state value comparison circuit 14 compares the input and output of the state value register 12 to detect whether or not a fault has occurred. Whether the state value comparison circuit 14 detects the occurrence of a fault depends on whether the relationship between the input and the output of the state value register 12 is in accordance with a change condition rule given by any one of the change condition rule circuits 13A to 13C. Done.

状態値比較回路14は、状態値レジスタ12の入力と出力との関係が、セレクタ16を介して変化条件ルール回路13A〜13Cの何れか一つにより与えられる変化条件ルールに従っている場合、フォールト発生の無い正常な処理であると判断し、変化条件ルールに従っていない場合、フォールトの発生した異常な処理であると判断する。   The state value comparison circuit 14 generates a fault when the relationship between the input and output of the state value register 12 is in accordance with a change condition rule given by any one of the change condition rule circuits 13A to 13C via the selector 16. It is determined that there is no normal process, and if the change condition rule is not followed, it is determined that the process is an abnormal process in which a fault has occurred.

なお、セレクタ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 selector 16 are faults. This is executed as an initialization process of the first cycle in which the detection circuit 10A operates.

図18のフォールト検知回路10Aは、変化条件ルール回路13Aの与える変化条件ルールが「1-bit値変化」であり、変化条件ルール回路13Bの与える変化条件ルールが「2-bit値変化」であり、変化条件ルール回路13Cの与える変化条件ルールが「3-bit値変化」である例を表している。また、図18のフォールト検知回路10Aは、状態値生成回路11Aが変化条件ルール「1-bit値変化」に基づいて遷移後の状態値を決定し、状態値生成回路11Bが変化条件ルール「2-bit値変化」に基づいて遷移後の状態値を決定し、状態値生成回路11Cが変化条件ルール「3-bit値変化」に基づいて遷移後の状態値を決定する。   In the fault detection circuit 10A of FIG. 18, the change condition rule given by the change condition rule circuit 13A is “1-bit value change”, and the change condition rule given by the change condition rule circuit 13B is “2-bit value change”. In this example, the change condition rule given by the change condition rule circuit 13C is “3-bit value change”. Further, in the fault detection circuit 10A of FIG. 18, the state value generation circuit 11A determines the state value after the transition based on the change condition rule “1-bit value change”, and the state value generation circuit 11B has the change condition rule “2”. The state value after transition is determined based on “-bit value change”, and the state value generation circuit 11C determines the state value after transition based on the change condition rule “3-bit value change”.

図14のフォールト検知回路10と比較すると、フォールト検知回路10Aは乱数の入力と、3つの状態値生成回路11A〜11Cと、3つの変化条件ルール回路13A〜13Cと、セレクタ15と、セレクタ16とを更に必要とするが、3つの中から乱数により一つの変化条件ルールを選択することで、図14のフォールト回路10におけるフォールト検知漏れの確率「1」を「1/3」に下げることができる。   Compared with the fault detection circuit 10 of FIG. 14, the fault detection circuit 10A includes a random number input, three state value generation circuits 11A to 11C, three change condition rule circuits 13A to 13C, a selector 15, and a selector 16. However, by selecting one change condition rule from among three random numbers, the fault detection failure probability “1” in the fault circuit 10 of FIG. 14 can be reduced to “1/3”. .

なお、フォールト検知漏れの確率が「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 fault detection circuit 10A of FIG. 18 can protect a known attack with a probability “1”, and can also protect against an unknown attack with a probability “1” − “1/3”. This probability can be closer to “1” as the number of change condition rules is increased, and is more secure. In the fault detection circuit 10A of FIG. 18, three examples of change condition rules are shown, but other numerical values may be used as long as they are plural.

フォールト検知なしの回路、従来のフォールト検知回路,図14のフォールト検知回路10,図18のフォールト検知回路の特徴は図19のようになる。図19はフォールト検知なしの回路、従来のフォールト検知回路,図14のフォールト検知回路10,図18のフォールト検知回路10Aの特徴を比較した比較図である。   The characteristics of the circuit without fault detection, the conventional fault detection circuit, the fault detection circuit 10 of FIG. 14, and the fault detection circuit of FIG. 18 are as shown in FIG. FIG. 19 is a comparative diagram comparing the features of a circuit without fault detection, a conventional fault detection circuit, the fault detection circuit 10 of FIG. 14, and the fault detection circuit 10A of FIG.

本実施例の図14に示したフォールト検知回路10,図18に示したフォールト検知回路10Aは、従来のフォールト検知回路が備えていなかった、フォールト検知のリアルタイム性を備えているというメリットを有する。   The fault detection circuit 10 shown in FIG. 14 of this embodiment and the fault detection circuit 10A shown in FIG. 18 have the merit that they have the real-time property of fault detection that the conventional fault detection circuit does not have.

また、本実施例の図14に示したフォールト検知回路10,図18に示したフォールト検知回路10Aは、既知の攻撃に対してフォールト発生を1回実施する、2回実施する方法の両方に対して秘密鍵の漏洩を防止することができる。また、本実施例の図18に示したフォールト検知回路10Aは、将来的に攻撃手法が進化し、未知の攻撃が発見された場合でも、秘密鍵の漏洩を防止することができる。   Further, the fault detection circuit 10 shown in FIG. 14 of the present embodiment and the fault detection circuit 10A shown in FIG. 18 perform the fault generation once for a known attack, and both the two-time execution methods. Thus, leakage of the secret key can be prevented. Further, the fault detection circuit 10A shown in FIG. 18 of the present embodiment can prevent the secret key from leaking even when an attack technique evolves in the future and an unknown attack is discovered.

また、従来のフォールト検知回路は、フォールト検知を実現するため、カウンタ機能とチェック機能の両方が必要であった。一方、本実施例の図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 fault detection circuit 10 shown in FIG. 14 of this embodiment and the fault detection circuit 10A shown in FIG. 18 can realize fault detection only by the check function.

図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 smart card chip 100 includes a CPU 101, a ROM 102, a communication circuit 103, an external interface 104, fault attack countermeasure hardware 105, a RAM 106, a clock generation circuit 107, and a power supply circuit 108.

図20中、フォールト攻撃対策ハードウェア105は、本実施例のフォールト検知回路10又は10Aに相当する。フォールト攻撃対策ハードウェア105は、上記したようにフォールト発生を検知すると、バス経由でCPU101にフォールト検知信号(割り込み信号)を出力する。CPU101はフォールト検知信号を受信すると、秘密鍵データ消去処理、暗号装置の利用停止処理などにより、攻撃者が2度とフォールト攻撃できないような適切な対処を実行する。   In FIG. 20, fault attack countermeasure hardware 105 corresponds to the fault detection circuit 10 or 10A of the present embodiment. When detecting the occurrence of a fault as described above, the fault attack countermeasure hardware 105 outputs a fault detection signal (interrupt signal) to the CPU 101 via the bus. When the CPU 101 receives the fault detection signal, the CPU 101 executes appropriate countermeasures such that the attacker cannot make a fault attack again by the secret key data erasure processing, the encryption device use stop processing, and the like.

本実施例のフォールト検知回路10又は10Aは、RSA暗号アルゴリズム,AES暗号アルゴリズムなど、任意の暗号アルゴリズムに対するフォールト攻撃により秘密鍵の推定が行われることを防ぐための対策技術である。本実施例のフォールト検知回路10又は10Aを適用することで、暗号装置は高い耐タンパ性を持つことができる。   The fault detection circuit 10 or 10A according to the present embodiment is a countermeasure technique for preventing a secret key from being estimated by a fault attack on an arbitrary encryption algorithm such as an RSA encryption algorithm or an AES encryption algorithm. By applying the fault detection circuit 10 or 10A of the present embodiment, the cryptographic device can have high tamper resistance.

図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 fault detection circuit 10 shown in FIG. 14 is used for the AES encryption processing described in FIG. 5 on page 15 of this document. In FIG. 21, 13 state values are expressed in 4-bit. The state value change condition rule is a 1-bit value change. As long as the transition is normal, the state value always changes 1-bit.

本実施例のフォールト検知回路10の状態値比較回路14は、状態値の遷移前と遷移後の値を比較し、1-bit値の変化であればフォールト発生が無いと判定し、それ以外の変化であればフォールトが発生したと判定する。   The state value comparison circuit 14 of the fault detection circuit 10 of the present embodiment compares values before and after the transition of the state value, and determines that no fault has occurred if the 1-bit value changes, and otherwise If it is a change, it is determined that a fault has occurred.

図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 fault detection circuit 10A of the present embodiment selects the first change condition rule or the second change condition rule by a random number.

本実施例のフォールト検知回路10Aの状態値比較回路14は、選択された第1又は第2の変化条件ルールに応じて、状態値の遷移前と遷移後との比較を行う。フォールト検知回路10Aの状態値比較回路14は、第1の変化条件ルールが選択された場合、1-bit値の変化であればフォールト発生が無いと判定し、それ以外の変化であればフォールトが発生したと判定する。   The state value comparison circuit 14 of the fault detection circuit 10A of the present embodiment compares the state value before and after the transition according to the selected first or second change condition rule. When the first change condition rule is selected, the state value comparison circuit 14 of the fault detection circuit 10A determines that no fault has occurred if the 1-bit value changes, and if the change is not the case, the fault is detected. It is determined that it has occurred.

フォールト検知回路10Aの状態値比較回路14は、第2の変化条件ルールが選択された場合、3-bit値の変化であればフォールト発生が無いと判定し、それ以外の変化であればフォールトが発生したと判定する。   When the second change condition rule is selected, the state value comparison circuit 14 of the fault detection circuit 10A determines that no fault has occurred if the 3-bit value is changed, and if the change is other than that, the fault is detected. It is determined that it has occurred.

図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 fault detection circuit 10 shown in FIG. 14 is used for the Montgomery multiplication remainder described in page 65 and Algorithm 4 of this document. In FIG. 23, a numerical value of 1024-bit or more used in RSA encryption is expressed by arranging g variables in w-bit units. w is generally a value smaller than 1024, such as w = 16, 32, 64. By repeating w-bit partial multiplication, a modular multiplication operation of 1024-bit or more is performed.

図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 value comparison circuit 14 of the fault detection circuit 10 of the present embodiment compares values before and after the transition of the state value, and determines that no fault has occurred if the 1-bit value changes, and otherwise If it is a change, it is determined that a fault has occurred.

実施例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"は何も処理を行わないため、冗長な処理であるが、状態値の遷移条件の制約下において、遷移パターンを構築するために用いることができる補助的な手段である。 To solve the difficulty, the auxiliary means but is required, the insertion of which is one "NOP" state conditional branch 23 ((11001) 2 - (10001) 2 of state values ). “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}
C treatment 2
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, k + 2. In other words, when the transition from A to C is performed, regardless of the value of k, the state value only changes 2-bit value or 0-bit value, and realizes 1-bit value change. Can not. In order to solve this problem, when the change condition rule is a 1-bit value change, the following processing in which NOP is inserted between the state values B and C is performed.

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 {
B Treatment 1
C NOP}
D Processing 2
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 handle 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 fault detection circuit 10A of the present embodiment selects the first change condition rule or the second change condition rule by a random number.

本実施例のフォールト検知回路10Aの状態値比較回路14は、選択された第1又は第2の変化条件ルールに応じて、状態値の遷移前と遷移後との比較を行う。フォールト検知回路10Aの状態値比較回路14は、第1の変化条件ルールが選択された場合、1-bit値の変化であればフォールト発生が無いと判定し、それ以外の変化であればフォールトが発生したと判定する。   The state value comparison circuit 14 of the fault detection circuit 10A of the present embodiment compares the state value before and after the transition according to the selected first or second change condition rule. When the first change condition rule is selected, the state value comparison circuit 14 of the fault detection circuit 10A determines that no fault has occurred if the 1-bit value changes, and if the change is not the case, the fault is detected. It is determined that it has occurred.

フォールト検知回路10Aの状態値比較回路14は、第2の変化条件ルールが選択された場合、3-bit値の変化であればフォールト発生が無いと判定し、それ以外の変化であればフォールトが発生したと判定する。   When the second change condition rule is selected, the state value comparison circuit 14 of the fault detection circuit 10A determines that no fault has occurred if the 3-bit value is changed, and if the change is other than that, the fault is detected. It is determined that it has occurred.

(効果)
本実施例の効果は図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 fault detection circuit 10A of FIG. 18 can prevent leakage of the secret key.

また、従来のフォールト検知回路は、フォールト検知を実現するため、カウンタ機能とチェック機能の両方が必要であった。一方、本実施例の図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 fault detection circuit 10 shown in FIG. 14 of this embodiment and the fault detection circuit 10A shown in FIG. 18 can realize fault detection only by the check function.

本発明は、以下に記載する付記のような構成が考えられる。
(付記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 1, wherein the change condition rule output means outputs one change condition rule from a plurality of types of change condition rules of state values in normal processing.
(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 2, which outputs a different number.
(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.

バイナリ法を用いた指数剰余演算のアルゴリズムを示す説明図である。It is explanatory drawing which shows the algorithm of the exponent remainder operation using the binary method. バイナリ法の処理概要を示す説明図である。It is explanatory drawing which shows the process outline | summary of a binary method. フォールト攻撃の概要を示す説明図である。It is explanatory drawing which shows the outline | summary of a fault attack. バイナリ法を用いるRSA暗号をベースとした電力解析への耐タンパ性を有するRSA暗号アルゴリズムを示す説明図である。It is explanatory drawing which shows the RSA encryption algorithm which has the tamper resistance to the power analysis based on the RSA encryption using a binary method. 図4のRSA暗号アルゴリズムを実装した装置におけるd=(10100...)2の場合の消費電力波形を表したイメージ図である。FIG. 5 is an image diagram showing a power consumption waveform in a case where d = (10100...) 2 in the apparatus in which the RSA encryption algorithm of FIG. 4 is implemented. フォールト攻撃による電力解析の対策機能を無効化する方法を表した説明図である。It is explanatory drawing showing the method of invalidating the countermeasure function of the power analysis by fault attack. 図6の状態値(0001)2をスキップしたRSA暗号アルゴリズムを実装した装置におけるd=(10100...)2の場合の消費電力波形を表したイメージ図である。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 that skips state value (0001) 2 in FIG. フォールト検知法を表した説明図である。It is explanatory drawing showing the fault detection method. フォールト検知法の基本的な問題点を表した説明図である。It is explanatory drawing showing the basic problem of the fault detection method. フォールト検知を無効化するフォールト攻撃を表した説明図である。It is explanatory drawing showing the fault attack which invalidates fault detection. フォールト攻撃に脆弱な従来の状態値の遷移を表した説明図である。It is explanatory drawing showing the transition of the conventional state value vulnerable to a fault attack. 本実施例の状態値の遷移を表した説明図である。It is explanatory drawing showing the transition of the state value of a present Example. フォールト発生が無い正常な場合の従来の状態値の遷移と本実施例の状態値の遷移とを表した説明図である。It is explanatory drawing showing the transition of the conventional state value in the case of normal without a fault occurrence, and the transition of the state value of a present Example. 本実施例によるフォールト検知回路の一例の構成図である。It is a block diagram of an example of the fault detection circuit by a present Example. 従来のフォールト検知回路の一例の構成図である。It is a block diagram of an example of the conventional fault detection circuit. 図14のフォールト検知回路により検知できない状態値のスキップを表した説明図である。It is explanatory drawing showing the skip of the state value which cannot be detected by the fault detection circuit of FIG. 図14に示す本実施例のフォールト検知回路が有するフォールト検知漏れの解決方法を表した説明図である。It is explanatory drawing showing the solution method of the fault detection omission which the fault detection circuit of a present Example shown in FIG. 14 has. 本実施例によるフォールト検知回路の他の例の構成図である。It is a block diagram of the other example of the fault detection circuit by a present Example. フォールト検知なしの回路、従来のフォールト検知回路,図14のフォールト検知回路10,図18のフォールト検知回路10Aの特徴を比較した比較図である。FIG. 19 is a comparison diagram comparing features of a circuit without fault detection, a conventional fault detection circuit, the fault detection circuit 10 of FIG. 14, and the fault detection circuit 10 </ b> A of FIG. 18. フォールト攻撃対策ハードウェアを搭載したスマートカードチップの一例の構成図である。It is a block diagram of an example of the smart card chip which mounts fault attack countermeasure hardware. 共通鍵暗号方式への本実施例の適用を表した一例の説明図である。It is explanatory drawing of an example showing application of the present Example to a common key encryption system. 共通鍵暗号方式への本実施例の適用を表した他の例の説明図である。It is explanatory drawing of the other example showing application of the present Example to a common key encryption system. 公開鍵暗号方式への本実施例の適用を表した一例の説明図である。It is explanatory drawing of an example showing application of the present Example to a public key encryption system. 状態値の遷移条件が1-bit値変化である場合において、この"NOP"挿入が必要な例を示す説明図である。FIG. 10 is an explanatory diagram showing an example in which this “NOP” insertion is necessary when the transition condition of the state value is a 1-bit value change. 公開鍵暗号方式への本実施例の適用を表した他の例の説明図である。It is explanatory drawing of the other example showing application of the present Example to a public key encryption system.

符号の説明Explanation of symbols

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 value generation circuit 12, 22 State value register 13, 13A to 13C Change condition rule circuit 14 State value comparison circuit 15, 16 Selector 23 Fault detection counter control circuit 24 Fault Counter for detection 25 Counter check circuit for fault detection 100 Smart card chip 101 CPU
102 ROM
103 Communication Circuit 104 External Interface 105 Fault Attack Countermeasure Hardware 106 RAM
107 clock generation circuit 108 power supply circuit

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.
前記変化条件ルール出力手段は正常な処理における状態値の複数種類の変化条件ルールから一つの前記変化条件ルールを出力する請求項1記載の不正操作検知回路。   2. The unauthorized operation detection circuit according to claim 1, wherein the change condition rule output means outputs one change condition rule from a plurality of types of change condition rules of state values in normal processing. 前記変化条件ルール出力手段は正常な処理における状態値の変化条件ルールとして前記遷移前の状態値と前記遷移後の状態値とで変化すべきビット数を出力する請求項1又は2記載の不正操作検知回路。   The unauthorized operation according to claim 1 or 2, wherein 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 a state value change condition rule in normal processing. Detection circuit. 前記変化条件ルール出力手段は正常な処理における状態値の複数種類の変化条件ルールとして、前記複数種類の変化条件ルールごとに前記遷移前の状態値と前記遷移後の状態値とで変化すべきビット数を異ならせて出力する請求項2記載の不正操作検知回路。   The change condition rule output means is a bit that should 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 state values in normal processing. The unauthorized operation detection circuit according to claim 2, wherein the number is different and output. アルゴリズムの実行状態を状態値により管理する装置への不正操作を検知する不正操作検知回路を備えた装置であって、
正常な処理における状態値の変化条件ルールを出力する変化条件ルール出力手段と、
前記変化条件ルール出力手段から出力される前記変化条件ルールに基づき、前記状態値を順次生成する状態値生成手段と、
前記状態値生成手段が生成した前記状態値を格納する状態値格納手段と、
前記状態値格納手段が格納している前記状態値を遷移前の状態値、前記状態値生成手段が生成した前記状態値を遷移後の状態値として比較し、前記状態値の遷移が前記変化条件ルール出力手段から出力される前記変化条件ルールに従っていなければ異常な処理であると判定する状態値比較判定手段と
を有する装置。
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.
JP2008231269A 2008-09-09 2008-09-09 Unauthorized operation detection circuit, device provided with unauthorized operation detection circuit, and unauthorized operation detection method Expired - Fee Related JP5261088B2 (en)

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 true JP2010068135A (en) 2010-03-25
JP5261088B2 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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010279003A (en) * 2009-06-01 2010-12-09 Sony Corp Malfunction occurrence attack detection circuit and integrated circuit
JP2013143077A (en) * 2012-01-12 2013-07-22 Hitachi Ltd Monitoring method for control device and control device monitoring system
JP2016008994A (en) * 2014-06-23 2016-01-18 大日本印刷株式会社 Modular exponentiation arithmetic unit, ic card, modular exponentiation arithmetic method, and modular exponentiation arithmetic program
JP5861018B1 (en) * 2012-12-21 2016-02-16 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. Computing device configured by table network
JP2018533312A (en) * 2015-11-09 2018-11-08 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. Crypto device that calculates the target block cipher
JPWO2019058684A1 (en) * 2017-09-25 2020-10-22 ソニー株式会社 Verification device, information processing method, and program

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104411241B (en) 2012-05-03 2017-09-08 维奥普蒂克斯公司 The probe geometry based on the tissue oxygenation of robust calibration and self-correcting

Citations (4)

* Cited by examiner, † Cited by third party
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
WO2007010009A2 (en) * 2005-07-19 2007-01-25 Gemplus Permanent data hardware integrity
JP2008121835A (en) * 2006-11-14 2008-05-29 Fuji Heavy Ind Ltd Failure diagnosis device of range position detection device for transmission

Patent Citations (4)

* Cited by examiner, † Cited by third party
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
WO2007010009A2 (en) * 2005-07-19 2007-01-25 Gemplus Permanent data hardware integrity
JP2008121835A (en) * 2006-11-14 2008-05-29 Fuji Heavy Ind Ltd Failure diagnosis device of range position detection device for transmission

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010279003A (en) * 2009-06-01 2010-12-09 Sony Corp Malfunction occurrence attack detection circuit and integrated circuit
JP2013143077A (en) * 2012-01-12 2013-07-22 Hitachi Ltd Monitoring method for control device and control device monitoring system
JP5861018B1 (en) * 2012-12-21 2016-02-16 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. Computing device configured by table network
JP2016507940A (en) * 2012-12-21 2016-03-10 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. Computing device configured by table network
JP2016008994A (en) * 2014-06-23 2016-01-18 大日本印刷株式会社 Modular exponentiation arithmetic unit, ic card, modular exponentiation arithmetic method, and modular exponentiation arithmetic program
JP2018533312A (en) * 2015-11-09 2018-11-08 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. Crypto device that calculates the target block cipher
JPWO2019058684A1 (en) * 2017-09-25 2020-10-22 ソニー株式会社 Verification device, information processing method, and program
US11546347B2 (en) 2017-09-25 2023-01-03 Sony Corporation Verification apparatus, information processing method, and program

Also Published As

Publication number Publication date
JP5261088B2 (en) 2013-08-14

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
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
JP5365624B2 (en) Embedded device apparatus incorporating a decoding device, a program, and a recovery device having a countermeasure function against a power analysis attack
US20130279692A1 (en) Protecting modular exponentiation in cryptographic operations
EP2211265B1 (en) Elliptic curve arithmetic processing unit and elliptic curve arithmetic processing program and method
KR20090006176A (en) Secure decryption method
JP5407352B2 (en) Decoding processing device, decoding processing program, and decoding processing method
KR20100113130A (en) Countermeasure method and devices for asymmetric cryptography
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
US20110170685A1 (en) Countermeasure method and devices for asymmetric encryption with signature scheme
US11824986B2 (en) Device and method for protecting execution of a cryptographic operation
EP1443699A1 (en) Information processing means and IC card
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
WO2011061263A1 (en) Countermeasures against power attacks for the randomization of the exponent
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
KR20130054591A (en) Method for protecting information against pa and fa using crt-rsa

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