JP2010148036A - Device, method and program for arithmetically operating elliptic curve - Google Patents

Device, method and program for arithmetically operating elliptic curve Download PDF

Info

Publication number
JP2010148036A
JP2010148036A JP2008326100A JP2008326100A JP2010148036A JP 2010148036 A JP2010148036 A JP 2010148036A JP 2008326100 A JP2008326100 A JP 2008326100A JP 2008326100 A JP2008326100 A JP 2008326100A JP 2010148036 A JP2010148036 A JP 2010148036A
Authority
JP
Japan
Prior art keywords
elliptic curve
point
pairing
failure
attack
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
JP2008326100A
Other languages
Japanese (ja)
Other versions
JP5272710B2 (en
Inventor
Masaya Yasuda
雅哉 安田
Tetsuya Izu
哲也 伊豆
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
Original Assignee
Fujitsu 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 filed Critical Fujitsu Ltd
Priority to JP2008326100A priority Critical patent/JP5272710B2/en
Publication of JP2010148036A publication Critical patent/JP2010148036A/en
Application granted granted Critical
Publication of JP5272710B2 publication Critical patent/JP5272710B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7271Fault verification, e.g. comparing two values which should be the same, unless a computational fault occurred

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To properly detect a failure-use attack while considering a detection rate to the failure-use attack and the quantity of an operation for the detection rate. <P>SOLUTION: A method for detecting the failure-use attack includes a scalar-multiplication arithmetic step of: computing a scalar-multiplication point [d]C<SB>1</SB>on the elliptic curve E on the basis of the elliptic curve E on a finite field, a point C<SB>1</SB>on the elliptic curve E and a scalar (d); and storing the scalar-multiplication point in a storage device. The method for detecting the failure-use attack further includes a failure-use attack detecting step of: computing pairing on the elliptic curve E by using the point C<SB>1</SB>and the scalar-multiplication point [d]C<SB>1</SB>; and deciding the presence of the failure-use attack when the result of computation of the pairing is not 1. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本技術は、楕円曲線演算処理を行う装置に対する故障利用攻撃の検知技術に関する。   The present technology relates to failure detection attack detection technology for an apparatus that performs elliptic curve calculation processing.

従来より、暗号方式として公開鍵暗号方式と共通鍵暗号方式とが知られている。公開鍵暗号方式は、暗号化と復号化とで一対の異なる鍵を用いる方式である。典型的な公開鍵暗号方式では、暗号化に用いる公開鍵は予め公開され、復号化に用いる秘密鍵は秘密情報として保持される。例えば、送信者は受信者の公開鍵を用いて平文を暗号化し、暗号文を送信する。受信者は受信者の秘密鍵を用いて暗号文を復号化し、平文を得る。   Conventionally, public key cryptosystems and common key cryptosystems are known as cryptosystems. The public key cryptosystem uses a pair of different keys for encryption and decryption. In a typical public key cryptosystem, a public key used for encryption is disclosed in advance, and a secret key used for decryption is held as secret information. For example, the sender encrypts the plaintext using the recipient's public key and sends the ciphertext. The recipient decrypts the ciphertext using the recipient's private key to obtain plaintext.

公開鍵暗号方式として知られている暗号方式の一つに、楕円曲線暗号がある。楕円曲線暗号は、楕円曲線上の点の間の演算規則を利用した暗号方式の総称である。pを素数、mを自然数とすると、要素数q=pの有限体GF(q)上の楕円曲線Eとは、
E:y+axy+ay=x+a+ax+a
を満たす点(x,y)の集合に、無限遠点と呼ばれる点∞を加えた集合のことである。無限遠点∞を0と表すこともある。ここで、a、a、a、a、a、x、yは有限体GF(q)の要素である。楕円曲線上の点は(x,y)のような座標形式(アファイン座標という)で表現できるが、無限遠点∞は(x,y)のような座標形式で表現できない唯一の点である。このように、アファイン座標では、無限遠点以外の点は有限体GF(q)の2つの要素の組として表される。
One of the encryption methods known as public key cryptosystems is elliptic curve cryptography. Elliptic curve cryptography is a general term for cryptosystems that use computation rules between points on an elliptic curve. prime number p, when the a natural number m, the finite GF (q) on the elliptic curve E number of elements q = p m,
E: y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6
This is a set obtained by adding a point ∞ called a point at infinity to a set of points (x, y) satisfying. The infinity point ∞ may be expressed as 0. Here, a 1 , a 2 , a 3 , a 4 , a 6 , x, and y are elements of the finite field GF (q). A point on an elliptic curve can be expressed in a coordinate format such as (x, y) (referred to as affine coordinates), but an infinite point ∞ is the only point that cannot be expressed in a coordinate format such as (x, y). Thus, in affine coordinates, points other than the point at infinity are represented as a set of two elements of the finite field GF (q).

楕円曲線E上の点の間には、以下のように点の加算が定義できる。まず、点Pを有限体GF(q)上の楕円曲線E上の点とする。そして、以下のように点Pの逆元−Pを定義する。
(a)P=∞のとき、−P=∞
(b)上記(a)以外のとき、P=(x,y)とすると、−P=(x,−y)
また、P及びPをGF(q)上の楕円曲線E上の点とする。そして、PとPの和Pを以下のように定義する。
(a)P=∞のとき、P=P
(b)P=∞のとき、P=P
(c)P=−Pのとき、P=∞
(d)上記(a)乃至(c)以外のとき、P=(x,y)、P=(x,y)、P=(x,y)とすると、
=λ+aλ−a−x−x
=(x−x)λ−y+a−a
ただし、
≠Pのとき、λ=(y−y)/(x−x
=Pのとき、λ=(3x +2a+a−a)/(2y+a+a
≠PのときにP+Pを計算することを楕円加算、P=PのときにP+P=[2]Pを計算することを楕円2倍算という。
Between the points on the elliptic curve E, addition of points can be defined as follows. First, let point P be a point on elliptic curve E on finite field GF (q). Then, the inverse element -P of the point P is defined as follows.
(A) When P = ∞, −P = ∞
(B) In cases other than (a) above, if P = (x, y), -P = (x, -y)
Further, the P 1 or P 2 and the point on the elliptic curve E over GF (q). Then, defined as follows sum P 3 P 1 and P 2.
(A) When P 1 = ∞, P 3 = P 2
(B) When P 2 = ∞, P 3 = P 1
(C) When P 1 = −P 2 , P 3 = ∞
(D) When P 1 = (x 1 , y 1 ), P 2 = (x 2 , y 2 ), and P 3 = (x 3 , y 3 ) in cases other than (a) to (c) above,
x 3 = λ 2 + a 1 λ-a 2 -x 1 -x 2
y 3 = (x 1 −x 2 ) λ−y 1 + a 1 x 3 −a 3
However,
When P 1 ≠ P 2 λ = (y 2 −y 1 ) / (x 2 −x 1 )
When P 1 = P 2 , λ = (3 × 1 2 + 2a 2 x 1 + a 4 −a 1 y 1 ) / (2y 1 + a 1 x 1 + a 3 )
P 1 ≠ elliptic curve addition calculating the P 1 + P 2 when P 2, P 1 = the time of the P 2 P 1 + P 2 = [2] to compute the P 1 of elliptic curve doubling.

楕円曲線Eとその上の点Pと、あるスカラー(ここでは整数スカラー)dが与えられているとき、点[d]P=P+P+・・・+P(d個のPの和)を計算することをスカラー倍算という。このとき点Pをベースポイントと呼ぶ。また、楕円曲線Eとその上のベースポイントPと、そのスカラー倍点[d]Pが与えられているとき、スカラーdを求める問題を楕円曲線離散対数問題という。楕円曲線暗号の安全性は、スカラー倍算は容易に計算可能だが、楕円曲線離散対数問題を解くことは困難であるという事実に依存している。このため楕円暗号方式は、スカラーdを秘密鍵、スカラー倍点[d]Pを公開鍵の一部として使用することが多い。   Given an elliptic curve E, a point P above it, and a scalar (here an integer scalar) d, calculate the point [d] P = P + P +... + P (sum of d Ps) Is called scalar multiplication. At this time, the point P is called a base point. A problem of obtaining a scalar d when an elliptic curve E, a base point P thereon, and a scalar multiple [d] P thereof are given is called an elliptic curve discrete logarithm problem. The security of elliptic curve cryptography depends on the fact that scalar multiplication can be easily calculated, but it is difficult to solve the elliptic curve discrete logarithm problem. For this reason, the elliptic cryptosystem often uses the scalar d as the secret key and the scalar multiple [d] P as part of the public key.

次に、楕円曲線暗号の一つである楕円エルガマル(ElGamal)暗号を例に説明する。ここで、有限体GF(p)、その上の楕円曲線E及びベースポイントPは予め設定されているものとする。また、受信者の秘密鍵をd、公開鍵をY=[d]Pとする。 Next, an elliptic Elgamal cipher that is one of elliptic curve ciphers will be described as an example. Here, it is assumed that the finite field GF (p m ), the elliptic curve E and the base point P thereon are set in advance. Further, it is assumed that the receiver's private key is d and the public key is Y = [d] P.

受信者にメッセージMを送る場合、受信者の公開鍵Yを用いて以下のような暗号化処理を行う。ここで、メッセージMは楕円曲線E上の点として表されているものとする。
(1)乱数rを生成する
(2)点[r]Pを計算し、Cとして保持する
(3)点M+[r]Yを計算し、Cとして保持する
(4)CとCを暗号文C(C,C)として受信者に送信する
When the message M is sent to the recipient, the following encryption processing is performed using the recipient's public key Y. Here, it is assumed that the message M is represented as a point on the elliptic curve E.
(1) generates a random number r (2) points to calculate the [r] P, held as C 1 (3) to calculate the point M + [r] Y, holds as C 2 (4) C 1 and C 2 is sent to the recipient as ciphertext C (C 1 , C 2 )

一方、暗号文Cを受け取った受信者は、受信者の秘密鍵dを用いて、以下のような復号化処理を行う。
(1)点[d]Cを計算し、Kとして保持する
(2)点C−Kを計算して、復号化されたメッセージM’を取得する
On the other hand, the recipient who has received the ciphertext C performs the following decryption process using the recipient's private key d.
(1) Calculate the point [d] C 1 and hold it as K (2) Calculate the point C 2 -K to obtain the decrypted message M ′

これに対し、上記通信を傍受した攻撃者が、暗号文の解読を試みたとする。まず、攻撃者は公開鍵Y=[d]P及びベースポイントPを入手できる。しかし、公開鍵Yから秘密鍵dを算出することは楕円曲線離散対数問題を解くことを意味し、困難である。また、攻撃者は暗号文C(C,C)=([r]P,M+[r]Y)を入手(すなわち傍受)できる。しかし、C=[r]PとベースポイントPから乱数rを算出することは楕円曲線離散対数問題を解くことを意味し、困難である。従って、d及びrは入手できないと言え、そのスカラー倍点[r]Y=[r][d]Pを算出することも、C=M+[r]YからメッセージMを得ることも困難である。 On the other hand, it is assumed that the attacker who intercepted the communication tried to decrypt the ciphertext. First, the attacker can obtain the public key Y = [d] P and the base point P. However, calculating the secret key d from the public key Y means solving the elliptic curve discrete logarithm problem and is difficult. In addition, the attacker can obtain (that is, intercept) the ciphertext C (C 1 , C 2 ) = ([r] P, M + [r] Y). However, calculating the random number r from C 1 = [r] P and the base point P means solving the elliptic curve discrete logarithm problem, which is difficult. Therefore, it can be said that d and r cannot be obtained, and it is difficult to calculate the scalar multiple [r] Y = [r] [d] P or to obtain the message M from C 2 = M + [r] Y. is there.

楕円曲線暗号は、同じく公開鍵暗号方式の一つであるRSA暗号方式と比べ、より短い鍵長で同程度のセキュリティレベルを確保できるという特徴を有する。例えば鍵長160ビットの楕円曲線暗号と、鍵長1024ビットのRSA暗号のセキュリティレベルがほぼ同じと考えられている。そのため、楕円曲線暗号は、メモリや処理能力の小さいICカード、携帯電話機などの小型デバイスで使用されることが多い。   Elliptic curve cryptography has a feature that a similar security level can be secured with a shorter key length as compared with the RSA cryptosystem which is also one of public key cryptosystems. For example, it is considered that the security level of elliptic curve cryptography with a key length of 160 bits is almost the same as that of RSA cryptography with a key length of 1024 bits. For this reason, elliptic curve cryptography is often used in small devices such as a memory, an IC card having a small processing capability, and a mobile phone.

一方、暗号文等の入手可能情報から秘密鍵等の秘密情報を特定する、様々な解読技術が存在する。暗号装置を対象とした解読技術としては、暗号装置の動作状況やその変化を物理的に観測することで秘密情報を特定するものが知られている。解析攻撃の一つである故障利用攻撃は、供給電圧を急激に変化させる等、暗号装置の処理中に環境を著しく変化させることで、意図的に処理結果を誤らせる。そして、攻撃者はその誤り方に基づき秘密情報の特定を試みる。   On the other hand, there are various decryption techniques for identifying secret information such as a secret key from available information such as ciphertext. As a decryption technique for an encryption device, one that identifies secret information by physically observing the operation state of the encryption device or a change thereof is known. A failure use attack, which is one of analysis attacks, intentionally misleads the processing result by changing the environment significantly during the processing of the cryptographic device, such as by rapidly changing the supply voltage. Then, the attacker tries to specify confidential information based on the error.

次に、楕円エルガマル暗号を利用した認証システムを攻撃対象とする故障利用攻撃の例を説明する。例えば、認証システムはICカードと認証装置を有し、ICカードと認証装置の間では以下のような認証処理が行われる。ここで、有限体GF(p)、その上の楕円曲線E及びベースポイントPは予め設定されているものとする。また、ICカードの秘密鍵をd、ICカードの公開鍵をY=[d]Pとする。さらに、秘密鍵dはICカード内に秘密情報として保持されているものとする。 Next, an example of a failure use attack that targets an authentication system using the elliptic El Gamal encryption will be described. For example, the authentication system includes an IC card and an authentication device, and the following authentication processing is performed between the IC card and the authentication device. Here, it is assumed that the finite field GF (p m ), the elliptic curve E and the base point P thereon are set in advance. Further, it is assumed that the IC card private key is d and the IC card public key is Y = [d] P. Further, it is assumed that the secret key d is held as secret information in the IC card.

(1)認証装置は、ランダムに、メッセージM及び乱数rを生成する。ここで、メッセージMは楕円曲線E上の点として表されているものとする。
(2)認証装置は、C=[r]P及びC=M+[r]Yを計算し、暗号文C=(C,C)をICカードに送信する。
(3)ICカードは、暗号文C=(C,C)及び秘密鍵dを用いて、K=[d]C及びM’=C−Kを計算し、メッセージM’を認証装置に送信する。
(4)認証装置は、(1)で生成したメッセージMと受信したメッセージM’を比較し、一致した場合にはユーザ認証成功とする。
(1) The authentication device randomly generates a message M and a random number r. Here, it is assumed that the message M is represented as a point on the elliptic curve E.
(2) The authentication device calculates C 1 = [r] P and C 2 = M + [r] Y, and transmits the ciphertext C = (C 1 , C 2 ) to the IC card.
(3) The IC card calculates K = [d] C 1 and M ′ = C 2 −K using the ciphertext C = (C 1 , C 2 ) and the secret key d, and authenticates the message M ′. Send to device.
(4) The authentication device compares the message M generated in (1) with the received message M ′, and if they match, the authentication is successful.

上記の認証システムに対して、攻撃者は次のように秘密鍵dを特定する。まず、上記(3)において攻撃者は高電圧等の物理的攻撃をICカードに与える。これにより、ICカードはK=[d]Cの計算を誤り、結果として誤ったM’=C−Kを認証装置に送信する。攻撃者は、ICカードの秘密鍵dを特定するために、この誤った出力を取得し解析する。 For the above authentication system, the attacker specifies the secret key d as follows. First, in the above (3), the attacker gives a physical attack such as a high voltage to the IC card. As a result, the IC card miscalculates K = [d] C 1 and, as a result, sends an incorrect M ′ = C 2 −K to the authentication device. The attacker acquires and analyzes this erroneous output in order to specify the secret key d of the IC card.

このように、故障利用攻撃によって攻撃者に秘密鍵dを特定される可能性がある。従って、ICカードは、故障利用攻撃を検知し、計算結果を認証装置に送信しないようにする必要がある。   Thus, there is a possibility that the secret key d is specified by the attacker by the failure use attack. Therefore, the IC card needs to detect a failure use attack and prevent the calculation result from being transmitted to the authentication device.

次に、ICカードが故障利用攻撃を検知する手法を説明する。一般的に、ICカードはC,K及びM’に基づき故障利用攻撃を受けたか判定する。そして、故障利用攻撃を受けたと判定した場合、ICカードはメッセージM’を認証装置に送信しない。具体的な例としては、故障利用攻撃を受けた場合にKの計算結果が楕円曲線E上の点にならないことがあるという性質を利用した手法がある。すなわち、ICカードは、Kを楕円曲線Eの方程式に代入することで、楕円曲線E上の点か判断し、楕円曲線E上の点でない場合には故障利用攻撃を受けたと判定する。さらに具体的には、以下のような手順で表せる。 Next, a method for detecting a failure use attack by the IC card will be described. In general, it is determined whether the IC card has been subjected to a failure use attack based on C 1 , K, and M ′. And when it determines with having received the failure use attack, IC card does not transmit message M 'to an authentication apparatus. As a specific example, there is a method using the property that the calculation result of K may not be a point on the elliptic curve E when a failure use attack is received. That is, the IC card determines whether the point is on the elliptic curve E by substituting K into the equation of the elliptic curve E. If it is not a point on the elliptic curve E, the IC card determines that a failure use attack has occurred. More specifically, it can be expressed by the following procedure.

(1)楕円曲線Eが
E:y+axy+ay=x+a+ax+a
という方程式で表されるとき、関数f(x,y)を
f(x,y)=x+a+ax+a−(y+axy+ay)
と定める。そして、Kが(a,b)と表されるとき、f(a,b)を計算する。
(2)f(a,b)≠0(ゼロ)のとき、ICカードは故障利用攻撃を受けたと判定する。一方、f(a,b)=0(ゼロ)のとき、ICカードは故障利用攻撃を受けていないと判定する。
(1) The elliptic curve E is E: y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6
When expressed by an equation, function f (x, y) f (x, y) = x 3 + a 2 x 2 + a 4 x + a 6 - (y 2 + a 1 xy + a 3 y)
It is determined. Then, when K is expressed as (a, b), f (a, b) is calculated.
(2) When f (a, b) ≠ 0 (zero), it is determined that the IC card has been subjected to a failure use attack. On the other hand, when f (a, b) = 0 (zero), it is determined that the IC card is not subjected to a failure use attack.

しかし、この手法では、故障利用攻撃を受けた場合でもKが楕円曲線E上の点になるときは、故障利用攻撃を検知することができない。実際には、故障利用攻撃を受けた場合でも2回に1回程度の割合で楕円曲線E上の点になることが知られており、2分の1程度の確率で故障利用攻撃の検知漏れが生じることになる。
特開2004−252433号公報
However, in this method, even when a failure use attack is received, if K becomes a point on the elliptic curve E, the failure use attack cannot be detected. Actually, it is known that even when a failure use attack is received, it becomes a point on the elliptic curve E at a rate of about once every two times. Will occur.
JP 2004-252433 A

以上のように、ICカード等で楕円曲線演算処理を行う場合は故障利用攻撃への対策が必要である。しかし、従来の方法では、故障利用攻撃の検知漏れが多いという問題がある。また、ICカードの演算処理能力は一般的に低く、演算量が増えると計算時間が長くなってしまうという問題もある。   As described above, when the elliptic curve calculation process is performed with an IC card or the like, it is necessary to take measures against a failure use attack. However, the conventional method has a problem in that there are many detection failures of failure use attacks. In addition, the calculation processing capability of the IC card is generally low, and there is a problem that the calculation time becomes longer as the calculation amount increases.

従って、本技術の目的は、故障利用攻撃に対する検知率とそのための演算量とを考慮しつつ故障利用攻撃を適切に検知するための新規な技術を提供することである。   Accordingly, an object of the present technology is to provide a new technique for appropriately detecting a failure use attack while taking into consideration the detection rate for the failure use attack and the amount of calculation for the detection rate.

本楕円曲線演算装置は、有限体上の楕円曲線Eと、楕円曲線E上の点Cと、スカラーdとに基づき、楕円曲線E上のスカラー倍点[d]Cを算出するスカラー倍演算手段と、点Cとスカラー倍点[d]Cとを用いて楕円曲線E上のペアリングを計算し、ペアリングの計算結果が1でない場合には故障利用攻撃を受けたと判定する第1の故障利用攻撃検知手段とを有する。 The elliptic curve calculation device calculates a scalar multiple [d] C 1 on the elliptic curve E based on the elliptic curve E on the finite field, the point C 1 on the elliptic curve E, and the scalar d. The pairing on the elliptic curve E is calculated using the arithmetic means, the point C 1 and the scalar multiple [d] C 1, and when the calculation result of the pairing is not 1, it is determined that a failure use attack has been received. First failure utilization attack detection means.

故障利用攻撃に対する検知率とそのための演算量とを考慮しつつ故障利用攻撃を適切に検知できる。   It is possible to appropriately detect a failure use attack while taking into consideration the detection rate for the failure use attack and the amount of computation for that purpose.

[ペアリングの説明]
本技術では、故障利用攻撃を検知するために、楕円曲線上のペアリングと呼ばれる関数を利用する。ここで、前提となるペアリングについて説明しておく。なお、本ペアリングの説明と後に述べる実施の形態において、同じ記号又は文字を別の意味で使用する場合がある。
[Description of pairing]
In this technology, a function called pairing on an elliptic curve is used to detect a failure use attack. Here, the premise pairing will be described. In the description of this pairing and the embodiment described later, the same symbol or character may be used in a different meaning.

ペアリングとは、有限体上に定義された楕円曲線上の2点(ここではP及びQとおく)を入力値として計算すると、以下の性質を有する関数である。
(a)(P+P,Q)=(P,Q)・(P,Q)
ここで、P=P+Pである
(b)(P,Q)=(Q,P)
(c)(P,P)=1
Pairing is a function having the following properties when two points on an elliptic curve defined on a finite field (here, P and Q) are calculated as input values.
(A) (P 1 + P 2 , Q) = (P 1 , Q) · (P 2 , Q)
Here, P = P 1 + P 2 (b) (P, Q) = (Q, P)
(C) (P, P) = 1

以上の性質より、C及び[d]Cをペアリング関数に入力したとき、以下のように変形できる。
(C,[d]C
=(C,[d−1]C)・(C,C
=(C,[d−1]C)・1
これをdが1になるまで繰り返すと出力値は1になる。よって、入力値となる2点がスカラー倍の関係にあるとき、出力値は1になることがわかる。
Due to the above properties, when C 1 and [d] C 1 are input to the pairing function, they can be modified as follows.
(C 1 , [d] C 1 )
= (C 1 , [d−1] C 1 ) · (C 1 , C 1 )
= (C 1 , [d−1] C 1 ) · 1
If this is repeated until d becomes 1, the output value becomes 1. Therefore, it can be seen that the output value becomes 1 when the two points as the input value have a scalar multiplication relationship.

さらに、本実施の形態においては、ベイユペアリング(Weil Pairing)が採用されているものとする。ベイユペアリングは、以下のような関数eとして定義される。
(S,T)=f(Q+S)/f(Q)・f(P)/f(P+T)・・・・・・(1)
ここで、rは自然数とし、E[r]は、[r]P=∞を満たす楕円曲線E上の点Pの集合とする。また、eの入力値である点S、Tは、集合E[r]の要素である。さらに、f、fは、それぞれ点S、Tから導出される関数で、求め方は後に詳しく述べる。また、点P、Qは、それぞれP+T及びQ+Sが無限遠点∞にならない楕円曲線E上の任意の点である。また、f、fは、それぞれ特に点S、Tにおいてのみr−位の零点をもつ関数である。
なお、ペアリングの出力値は、1の原始r乗根のなす群と同一視された値であり、上記e(S,T)を{(q−1)/r}乗した値になる。
Further, in the present embodiment, it is assumed that Weil Pairing is employed. Baye pairing is defined as a function er as follows.
e r (S, T) = f S (Q + S) / f S (Q) · f T (P) / f T (P + T) ······ (1)
Here, r is a natural number, and E [r] is a set of points P on the elliptic curve E that satisfies [r] P = ∞. The point S, T is an input value of e r is an element of the set E [r]. Further, f S, f T are each point S, a function derived from the T, Determination is described later in detail. Points P and Q are arbitrary points on the elliptic curve E in which P + T and Q + S do not become the infinity point ∞, respectively. Further, f S and f T are functions having a zero in the r-position only at points S and T, respectively.
Note that the output value of pairing is a value identified with a group of 1's roots of the original r, and is a value obtained by raising the above e r (S, T) to the power of {(q−1) / r}. .

次に、関数fを導出するアルゴリズムを説明する。まず、f=gとする。ここで、点S=(x,y)、g=1、g=x−xとおくと、以下のように、gi+jを求めることができる。
i+j=g・g・l(x,y)/v(x,y)・・・・・・(2)
なお、方程式l(x,y)=0は以下のような直線である
i≠jのとき、楕円曲線E上の2点[i]S及び[j]Sを通る直線
i=jのとき、楕円曲線E上の点[i]Sを通り楕円曲線Eに接する直線
また、方程式v(x,y)=0は、[i+j]S及び無限遠点∞を通る直線である
そして、上記gi+jから、gを求める。すなわち、rを2進展開等によりi+jの繰り返しに分解し、gi+jを繰り返し計算することでgを求める。例えばr=13のとき、r=1+2+2であるから、g、g、g(=g2+2)及びg(=g4+4)を求め、g=g1+4、g13=g5+8と求めることができる。
Next, an algorithm for deriving the function f S will be described. First, f S = g r is set. Here, when the point S = (x S , y S ), g 1 = 1, and g 2 = x−x S , g i + j can be obtained as follows.
g i + j = g i · g j · l (x, y) / v (x, y) ······ (2)
The equation l (x, y) = 0 is a straight line as follows: i ≠ j, and when the straight line i = j passing through two points [i] S and [j] S on the elliptic curve E, A straight line passing through the point [i] S on the elliptic curve E and tangent to the elliptic curve E. Also, the equation v (x, y) = 0 is a straight line passing through [i + j] S and the infinity point ∞, and the above g i + j from, determine the g r. That is, r is decomposed into i + j iterations by binary expansion or the like, and g i + j is repeatedly calculated to obtain g r . For example, when r = 13, since r = 1 + 2 2 +2 3 , g 1 , g 2 , g 4 (= g 2 + 2 ) and g 8 (= g 4 + 4 ) are obtained, and g 5 = g 1 + 4 , g 13 = g 5 + 8 .

さらに、ベイユペアリングの具体的な計算例について説明する。まず、有限体GF(13)上の楕円曲線Eを以下のように定める。
E:y=x+x
r=2とし、E[2]に含まれる楕円曲線上の点S=(0,0)、T=(5,0)を入力値としてベイユペアリングe(S,T)を計算する。P=(0,0)、Q=(5,0)としたとき、
Q+Sのx座標=λ+aλ−a−x−x=0+0・0−0−5−0=−5=8(mod 13)
Q+Sのy座標=(x−x)・λ−y−a−a=(5−0)・0−0−0・(−5)−0=0(mod 13)
であるから、Q+S=(8,0)、同様に、P+T=(8,0)と算出できる。また、
=x−0=x
=x−5
と求めることができ、e(S,T)は以下のようになる。
(S,T)=8/5・(−5)/3=12(mod 13)/2(mod 13)=6(mod 13)
これを1の原始2乗根のなす群と同一視すると、ペアリングの出力値は以下のようになる。
(S,T)=6(13−1)/2=−1
Further, a specific calculation example of Bayeux pairing will be described. First, an elliptic curve E on the finite field GF (13) is determined as follows.
E: y 2 = x 3 + x
With r = 2, a Bayeux pairing e 2 (S, T) is calculated using the points S = (0, 0) and T = (5, 0) on the elliptic curve included in E [2] as input values. When P = (0, 0) and Q = (5, 0),
X coordinate of Q + S = λ 2 + a 1 λ−a 2 −x 1 −x 2 = 0 2 + 0 · 0−0−5−0 = −5 = 8 (mod 13)
Y coordinate of Q + S = (x 1 −x 2 ) · λ−y 1 −a 1 x 3 −a 3 = (5-0) · 0-0-0 · (−5) −0 = 0 (mod 13)
Therefore, it is possible to calculate Q + S = (8, 0), and similarly P + T = (8, 0). Also,
f S = x-0 = x
f T = x-5
E 2 (S, T) is as follows.
e 2 (S, T) = 8/5 · (−5) / 3 = 12 (mod 13) / 2 (mod 13) = 6 (mod 13)
If this is equated with the group of 1 primitive roots, the output value of pairing is as follows.
e 2 (S, T) = 6 (13-1) / 2 = −1

[実施の形態]
本技術の実施の形態に係る、ICカードと認証装置の機能ブロック図を図1に示す。本実施の形態では、複数のICカード1(但し図1では1つのみ示されている)と認証装置3が、所定の方式(例えばICカード1が接触型ICカードであれば、接触型ICカードのための通信方式。非接触型ICカードであれば、非接触型ICカードのための通信方式)で通信を行い、ICカードを持つユーザの認証処理を行うものである。なお、認証処理において利用する暗号方式としては、楕円エルガマル暗号が採用されているものとして説明する。ただし、本技術は、楕円エルガマル暗号に限らず、他の楕円曲線暗号についても適用可能である。
[Embodiment]
A functional block diagram of an IC card and an authentication device according to an embodiment of the present technology is shown in FIG. In the present embodiment, a plurality of IC cards 1 (only one is shown in FIG. 1) and the authentication device 3 are connected to a predetermined type (for example, if the IC card 1 is a contact IC card) A communication method for a card, or a communication method for a non-contact type IC card (a communication method for a non-contact type IC card), and authenticating a user who has the IC card. Note that, as an encryption method used in the authentication process, an elliptic El Gamal encryption is adopted. However, the present technology can be applied not only to the elliptical Elgamal encryption but also to other elliptic curve encryptions.

図1に示したICカード1は、記憶装置101と、公開情報記憶部103と、秘密鍵記憶部105と、故障利用攻撃検知部107と、復号化処理部109と、制御部111と、通信部113とを有する。なお、本実施の形態では、公開情報記憶部103は、有限体GF(q)上の楕円曲線Eの方程式、ベースポイントP及びユーザの公開鍵Y=[d]Pをすでに格納し、秘密鍵記憶部105は、ユーザの秘密鍵dをすでに格納しているものとして説明する。   The IC card 1 shown in FIG. 1 includes a storage device 101, a public information storage unit 103, a secret key storage unit 105, a failure use attack detection unit 107, a decryption processing unit 109, a control unit 111, a communication Part 113. In the present embodiment, the public information storage unit 103 already stores the equation of the elliptic curve E on the finite field GF (q), the base point P, and the user's public key Y = [d] P, and stores the secret key. The storage unit 105 will be described assuming that the user's private key d is already stored.

通信部113は、制御部111と連携し、認証装置3から受信した暗号文を記憶装置101に格納すると共に、記憶装置101に格納されたメッセージを認証装置3へ送信する。復号化処理部109は、制御部111と連携し、記憶装置101、公開情報記憶部103及び秘密鍵記憶部105に格納されたデータを用いて暗号文を復号化し、記憶装置101に格納する。故障利用攻撃検知部107は、制御部111と連携し、記憶装置101及び公開情報記憶部103に格納されたデータを用いて故障利用攻撃の有無を判定する。   The communication unit 113 cooperates with the control unit 111 to store the ciphertext received from the authentication device 3 in the storage device 101 and transmit the message stored in the storage device 101 to the authentication device 3. The decryption processing unit 109 cooperates with the control unit 111 to decrypt the ciphertext using data stored in the storage device 101, the public information storage unit 103, and the secret key storage unit 105, and stores the decrypted ciphertext in the storage device 101. The failure use attack detection unit 107 cooperates with the control unit 111 to determine whether there is a failure use attack using data stored in the storage device 101 and the public information storage unit 103.

また、認証装置3は、記憶装置301と、公開情報記憶部303と、乱数生成部305と、認証処理部307と、暗号化処理部309と、制御部311と、通信部313とを有する。なお、本実施の形態では、公開情報記憶部303は、有限体GF(q)上の楕円曲線Eの方程式、ベースポイントP及びユーザの公開鍵Y=[d]Pをすでに格納しているものとして説明する。   The authentication device 3 includes a storage device 301, a public information storage unit 303, a random number generation unit 305, an authentication processing unit 307, an encryption processing unit 309, a control unit 311, and a communication unit 313. In the present embodiment, the public information storage unit 303 already stores the equation of the elliptic curve E on the finite field GF (q), the base point P, and the user's public key Y = [d] P. Will be described.

通信部313は、制御部311と連携し、記憶装置301に格納された暗号文をICカード1へ送信すると共に、ICカード1から受信したメッセージを記憶装置301に格納する。乱数生成部305は、制御部311と連携して、ランダムなデータを生成し、記憶装置301に格納する。暗号化処理部309は、制御部311と連携して、記憶装置301及び公開情報記憶部303に格納されたデータを用いて暗号文を生成し、記憶装置301に格納する。認証処理部307は、制御部311と連携し、記憶装置301に格納されたデータを用いてユーザ認証処理を行う。   The communication unit 313 cooperates with the control unit 311 to transmit the ciphertext stored in the storage device 301 to the IC card 1 and store the message received from the IC card 1 in the storage device 301. The random number generation unit 305 generates random data in cooperation with the control unit 311 and stores it in the storage device 301. The encryption processing unit 309 generates a ciphertext using data stored in the storage device 301 and the public information storage unit 303 in cooperation with the control unit 311, and stores the ciphertext in the storage device 301. The authentication processing unit 307 performs user authentication processing using data stored in the storage device 301 in cooperation with the control unit 311.

次に、図2乃至図5を用いて、認証処理の内容について説明する。ICカード1と認証装置3の間で認証処理が開始された場合、認証装置3の制御部311は、乱数生成部305に、乱数r及び楕円曲線E上のランダムな点として表されるメッセージMを生成させ、記憶装置301に格納させる。次に、制御部311は、暗号化処理部309に、記憶装置301に格納された乱数r及びメッセージM並びに公開情報記憶部303に格納されたベースポイントPを用いてC=[r]P及びC=M+[r]Pを算出させ、暗号文C(C,C)として記憶装置301に格納させる(ステップS1)。そして、制御部311は、通信部313に、記憶装置301に格納された暗号文CをICカード1へ送信させる(ステップS3)。 Next, the contents of the authentication process will be described with reference to FIGS. When the authentication process is started between the IC card 1 and the authentication device 3, the control unit 311 of the authentication device 3 displays a message M represented as a random point on the random number r and the elliptic curve E in the random number generation unit 305. Is generated and stored in the storage device 301. Next, the control unit 311 causes the encryption processing unit 309 to use C 1 = [r] P using the random number r and the message M stored in the storage device 301 and the base point P stored in the public information storage unit 303. and C 2 = M + [r] is calculated P, it is stored in the storage device 301 as a ciphertext C (C 1, C 2) ( step S1). Then, the control unit 311 causes the communication unit 313 to transmit the ciphertext C stored in the storage device 301 to the IC card 1 (step S3).

一方、ICカード1の通信部113が暗号文Cを受信すると、ICカード1の制御部111は、通信部113に、暗号文Cを記憶装置101に格納させる(ステップS5)。そして、制御部111は、復号化処理部109に、記憶装置101に格納されたC及び秘密鍵記憶部105に格納されている秘密鍵dを用いて、K=[d]Cを算出させ、記憶装置101に格納させる(ステップS7)。 On the other hand, when the communication unit 113 of the IC card 1 receives the ciphertext C, the control unit 111 of the IC card 1 causes the communication unit 113 to store the ciphertext C in the storage device 101 (step S5). Then, the control unit 111 calculates K = [d] C 1 in the decryption processing unit 109 using the C 1 stored in the storage device 101 and the secret key d stored in the secret key storage unit 105. And stored in the storage device 101 (step S7).

次に、ICカード1の制御部111は、故障利用攻撃検知部107に、K=[d]Cの算出において故障利用攻撃を受けたか判定する攻撃有無判定処理を実行させる(ステップS9)。攻撃有無判定処理の詳細については後に説明するが、当該処理の中で、攻撃判定フラグが、記憶装置101においてON又はOFFに設定される。そして、制御部111は、故障利用攻撃検知部107を介して、記憶装置101に格納された攻撃判定フラグを取得し、攻撃判定フラグがONである場合は(ステップS11:Yesルート)、故障利用攻撃を受けたと判定し、必要に応じて所定の異常系処理を行う(ステップS13)。一方、攻撃判定フラグがOFFである場合は(ステップS11:Noルート)、制御部111は故障利用攻撃を受けていないと判定し、復号化処理を続ける。制御部111は、復号化処理部109に、記憶装置101に格納されたC及びKを用いてメッセージM’=C−Kを算出させ、記憶装置101に格納させる(ステップS15)。そして、制御部111は、通信部113に、記憶装置101に格納されたメッセージM’を認証装置3へ送信させる(ステップS17)。 Next, the control unit 111 of the IC card 1, the failure to use the attack detecting section 107, K = [d] to execute a determining attack existence determining process or underwent fault attack in the calculation of C 1 (step S9). The details of the attack presence / absence determination process will be described later. During the process, the attack determination flag is set to ON or OFF in the storage device 101. And the control part 111 acquires the attack determination flag stored in the memory | storage device 101 via the failure utilization attack detection part 107, and when the attack determination flag is ON (step S11: Yes route), failure utilization is acquired. It is determined that an attack has been received, and predetermined abnormal processing is performed as necessary (step S13). On the other hand, when the attack determination flag is OFF (step S11: No route), the control unit 111 determines that a failure use attack has not been received, and continues the decoding process. The control unit 111 causes the decryption processing unit 109 to calculate the message M ′ = C 2 −K using C 2 and K stored in the storage device 101 and store the message M ′ = C 2 −K in the storage device 101 (step S15). Then, the control unit 111 causes the communication unit 113 to transmit the message M ′ stored in the storage device 101 to the authentication device 3 (step S17).

認証装置3の通信部313がメッセージM’を受信すると、認証装置3の制御部311は、通信部313に、メッセージM’を記憶装置301に格納させる(ステップS19)。そして、制御部311は、認証処理部307に、記憶装置301に格納されたメッセージMとメッセージM’が同一であるか比較させ、結果を制御部311に通知させる。MとM’が同一であれば、制御部311は、認証成功と判断する(ステップS21)。なお、認証成功時に行われる所定の正常系処理及び認証失敗時に行われる所定の異常系処理については、従来と同様であるため、これ以上は述べない。   When the communication unit 313 of the authentication device 3 receives the message M ′, the control unit 311 of the authentication device 3 causes the communication unit 313 to store the message M ′ in the storage device 301 (Step S <b> 19). Then, the control unit 311 causes the authentication processing unit 307 to compare whether the message M and the message M ′ stored in the storage device 301 are the same, and notifies the control unit 311 of the result. If M and M ′ are the same, the control unit 311 determines that the authentication is successful (step S21). Note that the predetermined normal processing performed when authentication is successful and the predetermined abnormal processing performed when authentication fails are the same as those in the related art, and will not be described further.

[攻撃有無判定処理]
次に、ベイユペアリングを用いた攻撃有無判定処理を図3乃至図5を用いて説明する。本実施の形態では、C及びK(=[d]C)を入力値としてペアリングを行い、スカラー倍の関係であるか判断することで、故障利用攻撃を受けたか判定する。なお、本実施の形態では予め公開情報記憶部103に、有限体GF(q)の要素数q(=p)が格納されているものとして説明する。また、本攻撃有無判定処理において算出した値又は変数等に代入した値は、すべて記憶装置101に格納するものとする。
[Attack presence / absence judgment processing]
Next, an attack presence / absence determination process using Baye pairing will be described with reference to FIGS. In the present embodiment, pairing is performed using C 1 and K (= [d] C 1 ) as input values, and it is determined whether or not a failure-use attack has occurred by determining whether the relationship is a scalar multiple. In the present embodiment, description will be made assuming that the public information storage unit 103 stores the number of elements q (= p m ) of the finite field GF (q) in advance. Further, it is assumed that all values or variables substituted in the attack presence / absence determination process are stored in the storage device 101.

まず、ICカード1の故障利用攻撃検知部107は、公開情報記憶部103に格納されたqを、変数nに代入する(ステップS31)。次に、故障利用攻撃検知部107は、関数f導出処理を実行し、関数fC1、関数fを求める。関数fC1、関数fは、ペアリングの計算において必要となる関数であり、それぞれ点C、点K(=[d]C)から求められる。そして、故障利用攻撃検知部107は、記憶装置101に格納された暗号文Cの点Cを、変数である点Sに代入する(ステップS33)。さらに、故障利用攻撃検知部107は、関数f導出処理を行う(ステップS35)。 First, the failure use attack detection unit 107 of the IC card 1 substitutes q stored in the public information storage unit 103 for a variable n (step S31). Next, the failure use attack detection unit 107 executes a function f S derivation process to obtain a function f C1 and a function f K. The function f C1 and the function f K are functions required in the pairing calculation, and are obtained from the point C 1 and the point K (= [d] C 1 ), respectively. The fault attack detection section 107, a point C 1 of the ciphertext C stored in the storage device 101, and assigned to the S point is variable (step S33). Further, the failure use attack detection unit 107 performs a function f S derivation process (step S35).

ここで、関数f導出処理を図4を用いて説明する。まず、故障利用攻撃検知部107は、繰り返し処理のためのカウンタであるiに初期値2を代入する(ステップS51)。次に、故障利用攻撃検知部107は、関数gに1、関数gにx−xを代入する(ステップS53)。ここで、xは点Sのx座標である。そして、故障利用攻撃検知部107は、記憶装置101に格納された変数nを2進展開し、関数gを求めるのに必要な、全てのg2^z(2^zは2のべき乗を表すものとする)を特定する(ステップS55)。例えば、n=13の場合、13=2+2+2と2進展開され、必要なg2^zは、g、g及びgであると特定される。 Here, the function f S derivation processing will be described with reference to FIG. First, the failure use attack detection unit 107 substitutes an initial value 2 for i which is a counter for repeated processing (step S51). Then, fault attack detection section 107 substitutes the x-x S to the function g 1 1, the function g 2 (step S53). Here, x S is the x-coordinate of the point S. The fault attack detection section 107, the variable n stored in the storage device 101 to expand binary, necessary for obtaining the functions g n, all g 2 ^ z (2 ^ z a is a power of 2 Is specified (step S55). For example, when n = 13, binary expansion is performed as 13 = 2 0 +2 2 +2 3, and the necessary g 2z is specified as g 1 , g 4, and g 8 .

ここで、gの算出に必要なg2^zが全て算出されていない場合(ステップS57:Noルート)、故障利用攻撃検知部107は、先に述べた(2)式に従いg2iを求める。まず、故障利用攻撃検知部107は、[i]Sを通りEに接する直線l(x,y)=0を算出する(ステップS59)。次に、故障利用攻撃検知部107は、[2i]S及び無限遠点∞を通る直線v(x,y)=0を算出する(ステップS61)。そして、故障利用攻撃検知部107は、g2i=g・g・l(x,y)/v(x,y)を算出する(ステップS63)。さらに、故障利用攻撃検知部107は、変数iに2iを代入し(ステップS65)、ステップS57の処理に戻る。 Here, if g 2 ^ z required for calculating the g n is not calculated all (step S57: No route), fault attack detection section 107 calculates the g 2i accordance previously described (2) . First, the failure use attack detection unit 107 calculates a straight line l (x, y) = 0 that passes through [i] S and touches E (step S59). Next, the failure use attack detection unit 107 calculates [2i] S and a straight line v (x, y) = 0 passing through S and the infinity point ∞ (step S61). Then, the failure use attack detection unit 107 calculates g 2i = g i · g i · l (x, y) / v (x, y) (step S63). Further, the failure use attack detection unit 107 substitutes 2i for the variable i (step S65), and returns to the process of step S57.

一方、gの算出に必要なg2^zが全て算出されている場合(ステップS57:Yesルート)、故障利用攻撃検知部107は、2進展開で特定されたg2^zから、gを算出する(ステップS67)。例えば、n=13の場合、先に述べた(2)式に従い、g=g1+4=g・g・l(x,y)/v(x,y)、g13=g5+8=g・g・l(x,y)/v(x,y)のように算出される。そして、算出されたgを関数fに代入し(ステップS69)、元の処理に戻る。このようにして関数f導出処理が行われる。この処理により、ペアリングの計算に必要なfC1及びfを求めることができる。 On the other hand, if g 2 ^ z required for calculating the g n is calculated all (step S57: Yes route), fault attack detection section 107, the g 2 ^ z identified by binary expansion, g n is calculated (step S67). For example, when n = 13, g 5 = g 1 + 4 = g 1 · g 4 · l (x, y) / v (x, y), g 13 = g 5 + 8 = g 5 · g 8 · l ( x, y) / v is calculated as (x, y). Then, by substituting the calculated g n to the function f S (step S69), the processing returns to the original processing. In this way, the function f S derivation process is performed. By this processing, f C1 and f K necessary for pairing calculation can be obtained.

図3の処理の説明に戻って、故障利用攻撃検知部107は、導出された関数fを、関数fC1に代入する(ステップS37)。次に、故障利用攻撃検知部107は、点K(=[d]C)を点Sに代入し(ステップS39)、関数f導出処理を実行する(ステップS41)。関数f導出処理ついては、図4を用いてすでに説明したので説明を省略する。そして、故障利用攻撃検知部107は、導出された関数fを、関数fに代入し(ステップS43)、処理は端子Aを介して図5の処理に移行する。 Returning to the description of the processing in FIG. 3, the failure use attack detection unit 107 substitutes the derived function f S for the function f C1 (step S37). Next, fault attack detection section 107, point K (= [d] C 1 ) was substituted for the point S (step S39), and executes a function f S deriving process (step S41). The function f S derivation process has already been described with reference to FIG. Then, the failure use attack detection unit 107 substitutes the derived function f S for the function f K (step S43), and the processing shifts to the processing of FIG.

次に、故障利用攻撃検知部107は、楕円曲線E上の点U及びVをランダムに選択し(ステップS71)、V+C及びU+Kを算出する(ステップS73)。ここで、V+C=∞又はU+K=∞の場合(ステップS75:Noルート)、ステップS71へ戻り、点U及びVを選択し直す。一方、V+C≠∞かつU+K≠∞の場合(ステップS75:Yesルート)、ステップS77へ移行する。 Then, fault attack detection section 107, a point U and V on the elliptic curve E is randomly selected (step S71), it calculates a V + C 1 and U + K (step S73). Here, when V + C 1 = ∞ or U + K = ∞ (step S75: No route), the process returns to step S71, and the points U and V are selected again. On the other hand, when V + C 1 ≠ ∞ and U + K ≠ ∞ (step S75: Yes route), the process proceeds to step S77.

そして、故障利用攻撃検知部107は、記憶装置101に格納されている、関数fC1、f、点U、V、V+C及びU+Kを用いて、ペアリングe(C,K)の計算を行う(ステップS77)。ペアリングの計算式については、先に述べた(1)式に従い、e(C,K)=fC1(V+C1)/fC1(V)・f(U)/f(U+K)となり、この計算結果を{(q−1)/n}乗したものが出力値となる。 The fault attack detection section 107 is stored in the storage device 101, the function f C1, f K, using a point U, V, V + C 1 and U + K, pairing e n of (C 1, K) Calculation is performed (step S77). The formula for the pairing, as described above in accordance with equation (1), e n (C 1, K ) = f C1 (V + C1) / f C1 (V) · f K (U) / f K (U + K) The output value is obtained by multiplying the calculation result by {(q-1) / n}.

そして、故障利用攻撃検知部107は、ペアリングの出力値が1であるか判断し、出力値が1である場合(ステップS79:Yesルート)、記憶装置101の攻撃判定フラグをOFFに設定し(ステップS81)、元の処理に戻る。一方、ペアリングの出力値が1でない場合(ステップS79:Noルート)、故障利用攻撃検知部107は、記憶装置101の攻撃判定フラグをONに設定し(ステップS83)、元の処理に戻る。   Then, the failure use attack detection unit 107 determines whether the pairing output value is 1, and when the output value is 1 (step S79: Yes route), sets the attack determination flag of the storage device 101 to OFF. (Step S81), the process returns to the original process. On the other hand, when the output value of pairing is not 1 (step S79: No route), the failure use attack detection unit 107 sets the attack determination flag of the storage device 101 to ON (step S83), and returns to the original process.

このようにして攻撃有無判定処理が行われる。ICカード1の制御部111は、当該処理で設定された攻撃判定フラグを取得して、ONの場合は故障利用攻撃を受けたと判定し、OFFの場合は故障利用攻撃を受けていないと判定することができる。   In this way, the attack presence / absence determination process is performed. The control unit 111 of the IC card 1 acquires the attack determination flag set in the process, and determines that it has been subjected to a failure use attack when ON, and determines that it has not been subjected to a failure use attack when OFF. be able to.

[攻撃有無判定処理の変形例1]
攻撃有無判定処理の変形例である第2攻撃有無判定処理を図6に示す。本変形例では、図3乃至図5を用いて説明した攻撃有無判定処理の代わりに、第2攻撃有無判定処理を実施する。図3乃至図5の攻撃有無判定処理では、変数nに有限体GF(q)の要素数q(=p)を代入していたが、第2攻撃有無判定処理では、予め設定された任意の自然数nを代入する。これにより、ペアリングに必要な関数を求める処理の演算量をn/qにすることができる。なお、これに伴いペアリング関数の入力値を変換する必要があり、後に述べるとおり、点C、K(=[d]C)をそれぞれC~、K~に変換する。なお、第2攻撃有無判定処理では、公開情報記憶部103に、有限体GF(q)の要素数q(=p)及び予め設定された任意の自然数がすでに格納されているものとして説明する。また、第2攻撃有無判定処理において算出した値又は変数等に代入した値は、すべて記憶装置101に格納するものとする。
[Variation 1 of attack existence determination processing]
FIG. 6 shows a second attack presence / absence determination process that is a modification of the attack presence / absence determination process. In this modification, a second attack presence / absence determination process is performed instead of the attack presence / absence determination process described with reference to FIGS. In the attack presence / absence determination processing of FIGS. 3 to 5, the number of elements q (= p m ) of the finite field GF (q) is substituted for the variable n. substituting natural number n 1 of. As a result, the amount of processing for obtaining a function necessary for pairing can be reduced to n 1 / q. Along with this, it is necessary to convert the input value of the pairing function, and as will be described later, the points C 1 and K (= [d] C 1 ) are converted to C 1 to and K to, respectively. In a second attack existence determining process, the public information memory unit 103 will be described assuming that the number of elements q (= p m) and pre arbitrary natural number set of a finite field GF (q) has been stored . In addition, it is assumed that all values or variables substituted in the second attack presence / absence determination process are stored in the storage device 101.

まず、故障利用攻撃検知部107は、公開情報記憶部103に格納されている任意の自然数nを、変数nに代入し(ステップS91)、変形ペアリング処理を行う(ステップS93)。 First, the failure use attack detection unit 107 substitutes an arbitrary natural number n 1 stored in the public information storage unit 103 for a variable n (step S91), and performs a modified pairing process (step S93).

ここで、変形ペアリング処理を図7及び図8を用いて説明する。まず、ICカード1の故障利用攻撃検知部107は、繰り返し処理のためのカウンタであるjに初期値として1を代入する(ステップS101)。そして、故障利用攻撃検知部107は、公開情報記憶部103に格納されたqを用いて、q−1がnで割り切れるか判断し、割り切れない場合(ステップS103:Noルート)、jにj+1を代入して(ステップS105)、ステップS103に戻る。一方、q−1がnで割り切れる場合(ステップS103:Yesルート)、変数lにqを代入する(ステップS107)。 Here, the modified pairing process will be described with reference to FIGS. First, the failure use attack detection unit 107 of the IC card 1 substitutes 1 as an initial value for j which is a counter for repeated processing (step S101). Then, the failure use attack detection unit 107 uses q stored in the public information storage unit 103 to determine whether q j −1 is divisible by n, and when it is not divisible (step S103: No route), j is j + 1. Is substituted (step S105), and the process returns to step S103. On the other hand, when q j −1 is divisible by n (step S103: Yes route), q j is substituted into variable l (step S107).

次に、故障利用攻撃検知部107は、記憶装置101に格納されているC、K(=[d]C)及びnを用いて、点C’=[1/n]C及び点K’=[1/n]Kを算出する(ステップS109)。ここで、楕円曲線上の除算については既存技術であり説明を省略する。そして、C’=(xC1’,yC1’)、K’=(xK’,yK’)とすると、故障利用攻撃検知部107は、C’及びK’のx座標及びy座標をそれぞれl乗した点σ(C)=(xC1’ ,yC1’ )及びσ(K’)=(xK’ ,yK’ )を算出する(ステップS111)。ここで、ある点の各座標をq乗した点はフロベニウス写像と呼ばれる写像であり、各座標をl(=q)乗した点はフロベニウス写像をj回適用した点である。さらに、故障利用攻撃検知部107は、C~=σ(C’)−C’及びK~=σ(K’)−K’を算出する(ステップS113)。変形ペアリング処理では、このように算出したC~及びK~を入力値とすることで、予め設定された任意の自然数nを用いてペアリングの計算を行うことができる。なお、変形ペアリング処理においては、nを小さくすると、関数f導出処理においてステップS59乃至S65(図4)を繰り返す回数が減り、演算量を減らすことができる。但し、nを用いることでペアリングの出力値はn個に縮退し、故障利用攻撃の検知率が下がる。 Then, fault attack detection section 107 uses the C 1, K (= [d ] C 1) and n stored in the storage device 101, the point C 1 '= [1 / n ] C 1 and A point K ′ = [1 / n] K is calculated (step S109). Here, the division on the elliptic curve is an existing technique and will not be described. Then, assuming that C 1 ′ = (x C1 ′ , y C1 ′ ) and K ′ = (x K ′ , y K ′ ), the failure use attack detection unit 107 determines the x coordinates and y of C 1 ′ and K ′. Points σ (C 1 ) = (x C1 ′ l , y C1 ′ l ) and σ (K ′) = (x K ′ l , y K ′ l ) obtained by raising the coordinates to the power of 1 are calculated (step S111). Here, each coordinate of a point q raised to the power points are mapped called Frobenius map, the coordinates l (= q j) raised to the power point is the point of application j times the Frobenius map. Further, the failure use attack detection unit 107 calculates C 1 ~ = σ (C 1 ′) −C 1 ′ and K˜ = σ (K ′) − K ′ (step S113). In the modified pairing process, pairing can be calculated using an arbitrary natural number n 1 set in advance by using C 1 ~ and K ~ thus calculated as input values. In the modified pairing process, if n 1 is reduced, the number of repetitions of steps S59 to S65 (FIG. 4) in the function f S derivation process is reduced, and the amount of calculation can be reduced. However, when n 1 is used, the output value of pairing is reduced to n 1 and the failure detection attack detection rate is reduced.

次に、故障利用攻撃検知部107は、記憶装置101に格納された点C~、点K~を用いて、それぞれ関数f導出処理を実行し、関数fC1~、関数fK~を求める。まず、故障利用攻撃検知部107は、記憶装置101に格納された点C~を、変数である点Sに代入し(ステップS115)、関数f導出処理を行う(ステップS117)。関数f導出処理については、図4を用いて既に説明したので説明を省略する。次に、処理は端子Bを介して図8の処理に移行し、故障利用攻撃検知部107は、導出された関数fを、関数fC1~に代入する(ステップS121)。 Next, the failure use attack detection unit 107 executes the function f S derivation processing using the points C 1 to K and the points K to stored in the storage device 101, and obtains the functions f C1 to and the functions f K to , respectively. Ask. First, fault attack detection section 107, C 1 ~ point stored in the storage device 101 are substituted into S point is variable (step S115), it performs the function f S deriving process (step S117). Since the function f S derivation processing has already been described with reference to FIG. Then, the process proceeds to the process in FIG. 8 via the terminal B, fault attack detection section 107, the derived function f S, substituted-function f C1 (step S121).

次に、故障利用攻撃検知部107は、点K~を点Sに代入し(ステップS123)、関数f導出処理を実行する(ステップS125)。関数f導出処理については、図4を用いて既に説明したので説明を省略する。そして、故障利用攻撃検知部107は、導出された関数fを、関数fK~に代入する(ステップS127)。 Next, the failure use attack detection unit 107 substitutes the point K˜ for the point S (step S123), and executes a function f S derivation process (step S125). Since the function f S derivation processing has already been described with reference to FIG. The fault attack detection section 107, the derived function f S, the function f K Substituting ~ (step S127).

次に、故障利用攻撃検知部107は、楕円曲線E上の点U及びVをランダムに選択し(ステップS129)、V+C~及びU+K~を算出する(ステップS131)。ここで、V+C~=∞又はU+K~=∞の場合(ステップS133:Noルート)、ステップS129へ戻り、点U及びVを選択し直す。一方、V+C~≠∞かつU+K~≠∞の場合(ステップS133:Yesルート)、ステップS135へ移行する。 Next, the failure use attack detection unit 107 randomly selects points U and V on the elliptic curve E (step S129), and calculates V + C 1 to and U + K to (step S131). Here, if V + C 1 ~ = ∞ or U + K ~ = ∞ (step S133: No route), the process returns to step S129, and the points U and V are selected again. On the other hand, if V + C 1 ~ ≠ ∞ and U + K˜ ≠ ∞ (step S133: Yes route), the process proceeds to step S135.

そして、故障利用攻撃検知部107は、記憶装置101に格納されている、関数fC1~、関数fK~、点U、V、V+C~及びU+K~を用いて、ペアリングe(C~,K~)の計算を行い(ステップS135)、元の処理に戻る。ペアリングの計算式については、先に述べた(1)式に従い、e(C~,K~)=fC1~(V+C~)/fC1~(V)・fK~(U)/fK~(U+K~)となり、この計算結果を{(q−1)/n}乗したものが出力値となる。このようにして変形ペアリング処理が行われる。 The fault attack detection section 107 is stored in the storage device 101, ~ function f C1, the function f K ~, the points U, V, using a ~ V + C 1 ~ and U + K, pairing e n (C 1 ~, K ~) is calculated (step S135), and the process returns to the original process. The formula for pairing according previously described (1), e n (C 1 ~, K ~) = f C1 ~ (V + C 1 ~) / f C1 ~ (V) · f K ~ (U ) / F K ~ (U + K ~), and the result obtained by multiplying the calculation result by {(q-1) / n} is the output value. In this way, the modified pairing process is performed.

図6の処理の説明に戻って、故障利用攻撃検知部107は、ペアリングの出力値が1であるか判断する。ペアリングの出力値が1である場合(ステップS95:Yesルート)、故障利用攻撃検知部107は、記憶装置101の攻撃判定フラグをOFFに設定し(ステップS97)、元の処理に戻る。一方、ペアリングの出力値が1でない場合(ステップS95:Noルート)、故障利用攻撃検知部107は、記憶装置101の攻撃判定フラグをONに設定し(ステップS99)、元の処理に戻る。   Returning to the description of the processing in FIG. 6, the failure use attack detection unit 107 determines whether the output value of pairing is “1”. When the output value of pairing is 1 (step S95: Yes route), the failure use attack detection unit 107 sets the attack determination flag of the storage device 101 to OFF (step S97), and returns to the original process. On the other hand, when the output value of pairing is not 1 (step S95: No route), the failure use attack detection unit 107 sets the attack determination flag of the storage device 101 to ON (step S99), and returns to the original process.

このようにして、ICカード1の制御部111は、当該処理で設定された攻撃判定フラグを取得して、ONの場合は故障利用攻撃を受けたと判定し、OFFの場合は故障利用攻撃を受けていないと判定することができる。また、先にも述べたとおり、予め設定するnを小さくすると、演算量を削減することができるが、同時にペアリングの出力値が縮退するため故障利用攻撃の検知率が下がる。よって、第2攻撃有無判定処理においては演算量と検知率を考慮して、適切なnを設定する必要がある。なお、有限体GF(q)の要素数q=2160として通常のベイユペアリングを行う場合に対して、n=2と設定して第2攻撃有無判定処理を行う場合は、ペアリングに必要な関数を求める部分の演算量が2/2160となり、故障利用攻撃の検知率が1/2となる。 In this way, the control unit 111 of the IC card 1 acquires the attack determination flag set in the processing, determines that it has been subjected to a failure use attack if it is ON, and receives a failure use attack if it is OFF. It can be determined that it is not. Further, as described above, if n 1 set in advance is reduced, the amount of calculation can be reduced, but at the same time, the output value of pairing is degenerated, so the detection rate of failure use attacks is lowered. Therefore, in the second attack presence / absence determination process, it is necessary to set an appropriate n 1 in consideration of the calculation amount and the detection rate. In the case where the normal Bayeux pairing is performed with the number of elements q = 2 160 of the finite field GF (q), when the second attack presence / absence determination processing is performed with n 1 = 2 set, pairing is performed. The amount of calculation for obtaining the necessary function is 2/2 160 , and the failure detection attack detection rate is ½.

[攻撃有無判定処理の変形例2]
攻撃有無判定処理の別の変形例である第3攻撃有無判定処理を図9に示す。本変形例では、図6を用いて説明した第2攻撃有無判定処理の代わりに、第3攻撃有無判定処理を実施する。そして、第3攻撃有無判定処理は、複数の自然数を予め設定し、当該自然数の各々に対し第2攻撃有無判定処理を行うことで、故障利用攻撃の検知率を上げることができる。なお、第3攻撃有無判定処理では、公開情報記憶部103に、有限体GF(q)の要素数q(=p)及び予め設定された任意の自然数の集合N(={n、n、・・・、n}とする)がすでに格納されているものとして説明する。また、第3攻撃有無判定処理において算出した値又は変数等に代入した値は、すべて記憶装置101に格納するものとする。
[Variation 2 of attack presence / absence determination processing]
FIG. 9 shows a third attack presence / absence determination process which is another modification of the attack presence / absence determination process. In the present modification, a third attack presence / absence determination process is performed instead of the second attack presence / absence determination process described with reference to FIG. In the third attack presence / absence determination process, a plurality of natural numbers are set in advance, and the second attack presence / absence determination process is performed on each of the natural numbers, thereby increasing the detection rate of the failure use attack. In the third attack presence / absence determination process, the public information storage unit 103 stores the number of elements q (= p m ) of the finite field GF (q) and a set N of arbitrary natural numbers set in advance (= {n 1 , n 2 ,..., N t }) is already stored. In addition, it is assumed that all the values calculated in the third attack presence / absence determination process or the values assigned to the variables are stored in the storage device 101.

まず、故障利用攻撃検知部107は、繰り返し処理のためのカウンタであるsに初期値1を代入し、公開情報記憶部103に格納されている任意の自然数の集合N={n、n、・・・、n}のnを、変数nに代入し(ステップS141)、変形ペアリング処理を行う(ステップS143)。変形ペアリング処理については、図7及び図8を用いて既に説明したので説明を省略する。 First, the failure use attack detection unit 107 assigns an initial value 1 to s, which is a counter for repeated processing, and an arbitrary set of natural numbers N = {n 1 , n 2 stored in the public information storage unit 103. , ..., a n s of n t}, into the variable n (step S141), performs the deformation pairing process (step S143). Since the modified pairing process has already been described with reference to FIGS. 7 and 8, the description thereof will be omitted.

次に、故障利用攻撃検知部107は、ペアリングの出力値が1であるか判断する。ペアリングの出力値が1でない場合(ステップS145:Noルート)、故障利用攻撃検知部107は、記憶装置101の攻撃判定フラグをONに設定し(ステップS147)、元の処理に戻る。一方、ペアリングの出力値が1である場合(ステップS145:Yesルート)、集合Nの全ての要素に対してペアリングの計算が行われたか判断する。n=nでない場合、すなわちNの全ての要素に対してペアリングの計算が行われていない場合(ステップS149:Noルート)、故障利用攻撃検知部107は、sにs+1を代入し、nにnを代入し(ステップS151)、ステップS143に戻る。一方、n=nである場合、すなわちNの全ての要素に対してペアリングの計算が行われた場合(ステップS149:Yesルート)、故障利用攻撃検知部107は、記憶装置101の攻撃判定フラグをOFFに設定し(ステップS153)、元の処理に戻る。 Next, the failure use attack detection unit 107 determines whether the output value of pairing is 1. When the output value of pairing is not 1 (step S145: No route), the failure use attack detection unit 107 sets the attack determination flag of the storage device 101 to ON (step S147), and returns to the original process. On the other hand, when the output value of pairing is 1 (step S145: Yes route), it is determined whether pairing calculation has been performed for all elements of the set N. If not n s = nt , that is, if pairing calculation has not been performed for all elements of N (step S149: No route), the failure use attack detection unit 107 substitutes s + 1 for s, n s is substituted for n (step S151), and the process returns to step S143. On the other hand, when n s = nt, that is, when the pairing calculation is performed for all the elements of N (step S149: Yes route), the failure use attack detection unit 107 detects the attack of the storage device 101. The determination flag is set to OFF (step S153), and the process returns to the original process.

このようにして、ICカード1の制御部111は、当該処理で設定された攻撃判定フラグを取得して、ONの場合は故障利用攻撃を受けたと判定し、OFFの場合は故障利用攻撃を受けていないと判定することができる。また、第3攻撃有無判定処理では予め設定された自然数の集合Nにより、Nに含まれる各自然数の値を小さくすることで演算量を削減できると共に、Nに含まれる自然数の各々についてペアリングの計算を行うことで故障利用攻撃の検知率を上げることができる。例えば、有限体GF(q)の要素数q=2160として通常のベイユペアリングを行う場合に対し、N={2,3}と設定して第3攻撃有無判定処理を行う場合は、ペアリングに必要な関数を求める部分の演算量が5/2160となり、故障利用攻撃の検知率が5/6となる。また、Nに含まれる各自然数の値は、素数が好ましい。 In this way, the control unit 111 of the IC card 1 acquires the attack determination flag set in the processing, determines that it has been subjected to a failure use attack if it is ON, and receives a failure use attack if it is OFF. It can be determined that it is not. Further, in the third attack presence / absence determination process, the amount of computation can be reduced by reducing the value of each natural number included in the set N of natural numbers set in advance, and each natural number included in N can be paired. By performing the calculation, it is possible to increase the detection rate of failure use attacks. For example, in the case where the normal Bayeux pairing is performed with the number of elements q = 2 160 of the finite field GF (q), when the third attack existence determination process is performed with N = {2, 3}, the pair The amount of calculation for obtaining the function necessary for the ring is 5/2 160 , and the failure utilization attack detection rate is 5/6. The value of each natural number included in N is preferably a prime number.

[攻撃有無判定処理の変形例3]
攻撃有無判定処理のさらに別の変形例である第4攻撃有無判定処理を図10に示す。本変形例では、図9を用いて説明した第3攻撃有無判定処理の代わりに、第4攻撃有無判定処理を実施する。そして、第4攻撃有無判定処理では、ペアリングによる攻撃有無判定処理を行う前に、点Kが楕円曲線E上の点であるか判断することで、故障利用攻撃を受けたか判定する。なお、第4攻撃有無判定処理では、公開情報記憶部103に、有限体GF(q)の要素数q(=p)、楕円曲線Eの方程式及び予め設定された任意の自然数の集合N(={n、n、・・・、n}とする)がすでに格納されているものとして説明する。また、第4攻撃有無判定処理において算出した値又は変数等に代入した値は、すべて記憶装置101に格納するものとする。
[Variation 3 of attack presence / absence determination processing]
FIG. 10 shows a fourth attack presence / absence determination process which is still another modified example of the attack presence / absence determination process. In the present modification, a fourth attack presence / absence determination process is performed instead of the third attack presence / absence determination process described with reference to FIG. Then, in the fourth attack presence / absence determination process, it is determined whether or not a failure use attack has been received by determining whether the point K is a point on the elliptic curve E before performing the attack presence / absence determination process by pairing. In the fourth attack presence / absence determination process, the public information storage unit 103 stores the number of elements q (= p m ) of the finite field GF (q), the equation of the elliptic curve E, and a set N of arbitrary natural numbers set in advance ( = {N 1 , n 2 ,..., N t }) is assumed to be already stored. In addition, it is assumed that all values or variables substituted in the fourth attack presence / absence determination process are stored in the storage device 101.

まず、ICカード1の故障利用攻撃検知部107は、公開情報記憶部103に格納された楕円曲線Eの方程式及び記憶装置101に格納された点K(=[d]C)を取得して、Eの方程式にKを代入し(ステップS161)、方程式が成立するか否かによってKがE上の点であるか否かを判断する。例えば、楕円曲線Eの方程式が
E:y+axy+ay=x+a+ax+a
と定義されているとき、関数f(x,y)を
f(x,y)=x+a+ax+a−(y+axy+ay)
と定める。そして、K=(x,y)としたとき、Kを関数f(x,y)に代入した値f(x,y)を計算する。この結果、f(x,y)=0であれば、KはE上の点である。そして、KがE上の点でない場合(ステップS163:Noルート)、故障利用攻撃検知部107は、記憶装置101の攻撃判定フラグをONに設定し(ステップS165)、元の処理に戻る。一方、KがE上の点である場合(ステップS163:Yesルート)、故障利用攻撃検知部107は、図9の第3攻撃有無判定処理を実行し(ステップS167)、元の処理に戻る。
First, the failure use attack detection unit 107 of the IC card 1 acquires the equation of the elliptic curve E stored in the public information storage unit 103 and the point K (= [d] C 1 ) stored in the storage device 101. Then, K is substituted into the equation of E (step S161), and it is determined whether or not K is a point on E depending on whether or not the equation is established. For example, the equation of the elliptic curve E is E: y 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6
Is defined as f (x, y) = x 3 + a 2 x 2 + a 4 x + a 6 − (y 2 + a 1 xy + a 3 y)
It is determined. Then, when K = (x K , y K ), a value f (x K , y K ) obtained by substituting K into the function f (x, y) is calculated. As a result, if f (x K , y K ) = 0, K is a point on E. If K is not a point on E (step S163: No route), the failure use attack detection unit 107 sets the attack determination flag of the storage device 101 to ON (step S165), and returns to the original process. On the other hand, when K is a point on E (step S163: Yes route), the failure use attack detection unit 107 executes the third attack presence / absence determination process of FIG. 9 (step S167) and returns to the original process.

このようにして、ICカード1の制御部111は、当該処理で設定された攻撃判定フラグを取得して、ONの場合は故障利用攻撃を受けたと判定し、OFFの場合は故障利用攻撃を受けていないと判定することができる。また、点Kが楕円曲線E上にあるか判断することで故障利用攻撃を検知した場合には、ペアリングによる攻撃有無判定処理を行う必要がなくなり、処理の効率が上がる。同時に、点Kが楕円曲線E上にあるかという検知手法と、ペアリングによる検知手法とを組み合わせることで、検知率を上げることができる。なお、本変形例の中ではステップS167(図10)において第3攻撃有無判定処理を行ったが、代わりに第2攻撃有無判定処理を実施してもよい。   In this way, the control unit 111 of the IC card 1 acquires the attack determination flag set in the processing, determines that it has been subjected to a failure use attack if it is ON, and receives a failure use attack if it is OFF. It can be determined that it is not. Further, when a failure use attack is detected by determining whether the point K is on the elliptic curve E, it is not necessary to perform an attack presence / absence determination process by pairing, and the processing efficiency is increased. At the same time, the detection rate can be increased by combining the detection method of whether the point K is on the elliptic curve E and the detection method by pairing. In the present modification, the third attack presence / absence determination process is performed in step S167 (FIG. 10), but the second attack presence / absence determination process may be performed instead.

[攻撃有無判定処理の変形例4]
攻撃有無判定処理のさらに別の変形例である第5攻撃有無判定処理を図11に示す。本変形例では、図6を用いて説明した第2攻撃有無判定処理の代わりに、第5攻撃有無判定処理を実施する。そして、第5攻撃有無判定処理では、ポイントハービング(Point Halving)アルゴリズムを利用して、変形ペアリング処理に必要な点の算出を行う。これにより、演算量をさらに削減することができる。但し、本変形例に用いられる有限体の要素数は2のべき乗個であり、かつ変数nに代入する自然数は2である必要がある。なお、本変形例では、公開情報記憶部103に、有限体GF(q)の要素数q(=2)がすでに格納されているものとして説明する。また、本変形例において算出した値又は変数等に代入した値は、すべて記憶装置101に格納するものとする。
[Variation 4 of attack presence / absence determination processing]
FIG. 11 shows a fifth attack presence / absence determination process which is still another modified example of the attack presence / absence determination process. In the present modification, a fifth attack presence / absence determination process is performed instead of the second attack presence / absence determination process described with reference to FIG. Then, in the fifth attack presence / absence determination process, a point necessary for the modified pairing process is calculated using a Point Harving algorithm. Thereby, the amount of calculation can be further reduced. However, the number of elements of the finite field used in this modification must be a power of 2 and the natural number to be substituted for the variable n needs to be 2. In this modification, the public information storage unit 103 will be described assuming that the number of elements q (= 2 m ) of the finite field GF (q) has already been stored. In addition, it is assumed that all the values calculated in the present modification example or the values substituted for the variables are stored in the storage device 101.

まず、ICカード1の故障利用攻撃検知部107は、固定値である2を変数nに代入し(ステップS171)、第2変形ペアリング処理を行う(ステップS173)。   First, the failure use attack detection unit 107 of the IC card 1 substitutes 2 which is a fixed value for a variable n (step S171), and performs a second modified pairing process (step S173).

ここで、第2変形ペアリング処理を図12及び図13を用いて説明する。まず、故障利用攻撃検知部107は、繰り返し処理のためのカウンタであるjに初期値として1を代入する(ステップS181)。そして、故障利用攻撃検知部107は、公開情報記憶部103に格納されたqを用いて、q−1がn(=2)で割り切れるか判断し、割り切れない場合(ステップS183:Noルート)、jにj+1を代入して(ステップS185)、ステップS183に戻る。一方、q−1がn(=2)で割り切れる場合(ステップS183:Yesルート)、変数lにqを代入する(ステップS187)。 Here, the second modified pairing process will be described with reference to FIGS. First, the failure use attack detection unit 107 assigns 1 as an initial value to j which is a counter for repeated processing (step S181). Then, the failure use attack detection unit 107 determines whether q j −1 is divisible by n (= 2) using q stored in the public information storage unit 103, and when it is not divisible (step S183: No route) , J is substituted for j + 1 (step S185), and the process returns to step S183. On the other hand, when q j −1 is divisible by n (= 2) (step S183: Yes route), q j is substituted into variable l (step S187).

次に、故障利用攻撃検知部107は、記憶装置101に格納されているC、K(=[d]C)及びn(=2)を用いて、点C’=[1/n]C=[1/2]C及び点K’=[1/n]K=[1/2]Kを算出する(ステップS189)。この計算に、ポイントハービングアルゴリズムを利用する。 Then, fault attack detection unit 107 uses a C 1 stored in the storage device 101, K (= [d] C 1) and n (= 2), the point C 1 '= [1 / n ] C 1 = [1/2] C 1 and point K ′ = [1 / n] K = [1/2] K are calculated (step S189). A point harvesting algorithm is used for this calculation.

ポイントハービングとは、要素数が2である有限体上に定義された楕円曲線上のある点Pに対して、P=[2]Q(つまりQ=[1/2]P)となる点Qを効率よく求める技術である。例えば、有限体GF(2)上の楕円曲線Eを以下のように定めたとき、
E:y+xy=x+ax+b(但し、b≠0)
E上の点P=(x、y)から、点Q=[1/2]P=(x,y)を求めるアルゴリズムは、以下のようになる。
(1)方程式x+x=x+aを解き、解をkとする
(2)t=y+xkを算出する
(3)Tr(t)=0のとき、x=(t+x(1/2)、Tr(t)≠0のとき、x=t(1/2)を算出する
なお、Tr(t)=t+t+t(2^2)+・・・+t{2^(m−1)}とする
(4)y=x +λxを算出する
なお、Tr(t)=0のとき、λ=kとし、Tr(t)≠0のとき、λ=k+1とする
以上のような処理を実施することで、Q(x,y)を、より少ない演算量で求めることができる。
The point hard Bing for point P number of elements is on the elliptic curve defined on a finite field is a 2 m, the P = [2] Q (i.e. Q = [1/2] P) This is a technique for efficiently obtaining the point Q. For example, when the elliptic curve E on the finite field GF (2 m ) is defined as follows,
E: y 2 + xy = x 3 + ax + b (where b ≠ 0)
An algorithm for obtaining the point Q = [1/2] P = (x Q , y Q ) from the point P = (x P , y P ) on E is as follows.
(1) Solve the equation x 2 + x = x P + a and set the solution to k (2) Calculate t = y P + x P k (3) When Tr (t) = 0, x Q = (t + x P ) (1/2) , when Tr (t) ≠ 0, x Q = t (1/2) is calculated. Tr (t) = t + t 2 + t (2 ^ 2) +... + T {2 ^ (m-1)} to (4) Note that to calculate the y Q = x Q 2 + λx Q, when Tr (t) = 0, and lambda = k, when Tr (t) ≠ 0, λ = By performing the processing as described above for k + 1, Q (x Q , y Q ) can be obtained with a smaller amount of calculation.

次に、C’=(xC1’,yC1’)、K’=(xK’,yK’)とすると、故障利用攻撃検知部107は、C’及びK’のx座標及びy座標をそれぞれl乗した点σ(C)=(xC1’ ,yC1’ )及びσ(K’)=(xK’ ,yK’ )を算出する(ステップS191)。そして、故障利用攻撃検知部107は、C~=σ(C’)−C’及びK~=σ(K’)−K’を算出する(ステップS193)。本変形例では、このように算出したC~及びK~を入力値とすることで、予め設定された自然数2を用いてペアリングの計算を行うことができる。 Next, assuming that C 1 ′ = (x C1 ′ , y C1 ′ ) and K ′ = (x K ′ , y K ′ ), the failure use attack detection unit 107 determines the x coordinate of C 1 ′ and K ′ and Points σ (C 1 ) = (x C1 ′ l , y C1 ′ l ) and σ (K ′) = (x K ′ l , y K ′ l ) obtained by raising the y coordinate to the power of 1 are calculated (step S191). . The fault attack detection section 107, C 1 ~ = σ (C 1 ') -C 1' and K ~ = σ (K ') - to calculate the K' (step S193). In this modification, thus calculated C 1 ~ and K ~ for by the input value, it is possible to calculate the pairing with preset natural number 2.

次に、故障利用攻撃検知部107は、記憶装置101に格納された点C~、点K~を用いて、それぞれ関数f導出処理を実行し、関数fC1~、関数fK~を求める。まず、故障利用攻撃検知部107は、記憶装置101に格納された点C~を、変数である点Sに代入し(ステップS195)、関数f導出処理を行う(ステップS197)。関数f導出処理については、図4を用いて既に説明したので説明を省略する。次に、処理は端子Cを介して図13の処理に移行し、故障利用攻撃検知部107は、導出された関数fを、関数fC1~に代入する(ステップS201)。 Next, the failure use attack detection unit 107 executes the function f S derivation processing using the points C 1 to K and the points K to stored in the storage device 101, and obtains the functions f C1 to and the functions f K to , respectively. Ask. First, the failure use attack detection unit 107 substitutes the points C 1 to C stored in the storage device 101 for the variable point S (step S195), and performs a function f S derivation process (step S197). Since the function f S derivation processing has already been described with reference to FIG. Next, the processing shifts to the processing in FIG. 13 through the terminal C, and the failure use attack detection unit 107 substitutes the derived function f S for the function f C1˜ (step S201).

次に、故障利用攻撃検知部107は、点K~を点Sに代入し(ステップS203)、関数f導出処理を実行する(ステップS205)。関数f導出処理については、図4を用いて既に説明したので説明を省略する。そして、故障利用攻撃検知部107は、導出された関数fを、関数fK~に代入する(ステップS207)。 Next, the failure use attack detection unit 107 substitutes the point K˜ for the point S (step S203), and executes a function f S derivation process (step S205). Since the function f S derivation processing has already been described with reference to FIG. The fault attack detection section 107, the derived function f S, the function f K Substituting ~ (step S207).

次に、故障利用攻撃検知部107は、楕円曲線E上の点U及びVをランダムに選択し(ステップS209)、V+C~及びU+K~を算出する(ステップS211)。ここで、V+C~=∞又はU+K~=∞の場合(ステップS213:Noルート)、ステップS209へ戻り、点U及びVを選択し直す。一方、V+C~≠∞かつU+K~≠∞の場合(ステップS213:Yesルート)、ステップS215へ移行する。 Next, the failure use attack detection unit 107 randomly selects points U and V on the elliptic curve E (step S209), and calculates V + C 1 to and U + K to (step S211). Here, if V + C 1 ~ = ∞ or U + K ~ = ∞ (step S213: No route), the process returns to step S209, and the points U and V are selected again. On the other hand, when V + C 1 ~ ≠ ∞ and U + K˜ ≠ ∞ (step S213: Yes route), the process proceeds to step S215.

そして、故障利用攻撃検知部107は、記憶装置101に格納されている、関数fC1~、関数fK~、点U、V、V+C~及びU+K~を用いて、ペアリングe(C~,K~)の計算を行い(ステップS215)、元の処理に戻る。ペアリングの計算式については、先に述べた(1)式に従い、e(C~,K~)=fC1~(V+C~)/fC1~(V)・fK~(U)/fK~(U+K~)となり、この計算結果を{(q−1)/n}乗したものが出力値となる。このようにして第2変形ペアリング処理が行われる。 The fault attack detection section 107 is stored in the storage device 101, ~ function f C1, the function f K ~, the points U, V, using a ~ V + C 1 ~ and U + K, pairing e n (C 1 ~, K ~) is calculated (step S215), and the process returns to the original process. The formula for pairing according previously described (1), e n (C 1 ~, K ~) = f C1 ~ (V + C 1 ~) / f C1 ~ (V) · f K ~ (U ) / F K ~ (U + K ~), and the result obtained by multiplying the calculation result by {(q-1) / n} is the output value. In this way, the second modified pairing process is performed.

図11の処理の説明に戻って、故障利用攻撃検知部107は、ペアリングの出力値が1であるか判断する。ペアリングの出力値が1である場合(ステップS175:Yesルート)、故障利用攻撃検知部107は、記憶装置101の攻撃判定フラグをOFFに設定し(ステップS177)、元の処理に戻る。一方、ペアリングの出力値が1でない場合(ステップS175:Noルート)、故障利用攻撃検知部107は、記憶装置101の攻撃判定フラグをONに設定し(ステップS179)、元の処理に戻る。   Returning to the description of the processing in FIG. 11, the failure use attack detection unit 107 determines whether the output value of pairing is “1”. When the output value of pairing is 1 (step S175: Yes route), the failure use attack detection unit 107 sets the attack determination flag of the storage device 101 to OFF (step S177), and returns to the original process. On the other hand, when the output value of pairing is not 1 (step S175: No route), the failure use attack detection unit 107 sets the attack determination flag of the storage device 101 to ON (step S179), and returns to the original process.

このようにして、ICカード1の制御部111は、当該処理で設定された攻撃判定フラグを取得して、ONの場合は故障利用攻撃を受けたと判定し、OFFの場合は故障利用攻撃を受けていないと判定することができる。また、ポイントハービングアルゴリズムを利用することにより、変形ペアリング処理に必要な点を求める処理の演算量が削減できる。   In this way, the control unit 111 of the IC card 1 acquires the attack determination flag set in the processing, determines that it has been subjected to a failure use attack if it is ON, and receives a failure use attack if it is OFF. It can be determined that it is not. In addition, by using the point herving algorithm, it is possible to reduce the amount of calculation for obtaining points necessary for the deformation pairing process.

[その他の変形例]
以上、本技術の実施の形態について説明したが、本技術はこれに限定されるものではない。例えば、ICカード及び認証装置におけるデータ管理方法は、図1のようなものに限定されない。また、ICカード及び認証装置における機能構成も、図1に限定されず、全ての機能がICチップにより実施される場合と、プロセッサ及びプログラムモジュールにより実施される場合がある。
[Other variations]
As mentioned above, although embodiment of this technique was described, this technique is not limited to this. For example, the data management method in the IC card and the authentication device is not limited to that shown in FIG. Further, the functional configuration of the IC card and the authentication device is not limited to that shown in FIG. 1, and all functions may be implemented by an IC chip, or may be implemented by a processor and a program module.

また、処理フローについても処理結果が同じであれば、異なる順番で実施したり、並列に実行するように変形しても良い。   Further, as long as the processing result is the same for the processing flow, the processing flow may be performed in a different order or may be modified to be executed in parallel.

また、本技術は、楕円曲線上のスカラー倍算に対する故障利用攻撃一般に適用できる。本技術の実施の形態では楕円エルガマル暗号を例に説明したが、他の楕円曲線暗号方式においてもスカラー倍算を行うため、本技術は、楕円エルガマル暗号以外の楕円曲線暗号方式を利用しても良い。同様に、楕円曲線上のスカラー倍算を行う処理であれば、認証処理や暗号処理に限らず、電子署名等に適用しても良い。   In addition, the present technology can be applied to failure use attacks in general against scalar multiplication on an elliptic curve. In the embodiment of the present technology, the elliptical Elgamal encryption has been described as an example. However, in order to perform scalar multiplication in other elliptical curve cryptosystems, the present technology can also use an elliptical curve cryptosystem other than the elliptical Elgarmal cryptosystem. good. Similarly, any processing that performs scalar multiplication on an elliptic curve is not limited to authentication processing and encryption processing, and may be applied to electronic signatures and the like.

また、本技術の実施の形態ではベイユペアリングを例に説明したが、先にも述べたとおり、スカラー倍の関係にある楕円曲線上の2点を入力値として計算したとき1が出力されるのはペアリング一般の性質であるため、本技術はベイユペアリング以外のペアリングを利用しても良い。   Further, in the embodiment of the present technology, description has been made by taking Baye pairing as an example, but as described above, 1 is output when two points on the elliptic curve having a scalar multiplication relationship are calculated as input values. Since this is a general property of pairing, the present technology may use pairing other than Baye pairing.

さらに、本実施の形態において楕円曲線E上の点U及びVをランダムに選択した後、再度U及びVを選び直すか否かの判断(ステップS75(図5)、ステップS133(図8)、ステップS213(図13))の条件は、選択したU及びVを用いてペアリング関数e(C,K)又はe(C~,K~)を計算し、結果がゼロ又は値を得られない場合としても良い。 Furthermore, in this embodiment, after randomly selecting the points U and V on the elliptic curve E, it is determined whether or not to select U and V again (step S75 (FIG. 5), step S133 (FIG. 8), step S213 condition (FIG. 13)) is selected by using the U and V pairing function e n (C 1, K) or e n (C 1 ~, to calculate the K ~), the result is zero or a value It is good even if you cannot get it.

[実施の形態のまとめ]
本実施の形態をまとめると以下のようになる。
[Summary of embodiment]
This embodiment is summarized as follows.

本故障利用攻撃検知方法は、有限体上の楕円曲線Eと、楕円曲線E上の点Cと、スカラーdとに基づき、楕円曲線E上のスカラー倍点[d]Cを算出し、記憶装置に格納するスカラー倍演算ステップと、点Cとスカラー倍点[d]Cとを用いて楕円曲線E上のペアリングを計算し、ペアリングの計算結果が1でない場合には故障利用攻撃を受けたと判定する第1の故障利用攻撃検知ステップとを含む。 This failure-use attack detection method calculates a scalar multiple [d] C 1 on the elliptic curve E based on the elliptic curve E on the finite field, the point C 1 on the elliptic curve E, and the scalar d. a scalar multiplication step of storing in a storage device, the pairing on the elliptic curve E is calculated using the point C 1 and the scalar multiplied point [d] C 1, the failure in the case the calculation result of the pairing is not 1 A first failure use attack detection step for determining that a use attack has been received.

まず、スカラー倍演算ステップにおいて故障利用攻撃を受けた場合、スカラー倍点[d]Cの算出を誤り、Cと[d]Cがスカラー倍の関係にならない可能性がある。一方、ペアリング関数の性質である(a)(P1+P2,Q)=(P1,Q)・(P2,Q)、(b)(P,Q)=(Q,P)、(c)(P,P)=1より、スカラー倍の関係にある2点を入力値としてペアリングの計算を行うと、出力値は1になることが導き出せる。この性質に基づき、C1と[d]C1を用いてペアリングを計算し、その計算結果が1であるか否かを判断することで、C1と[d]C1がスカラー倍の関係にあるか否かを確認できる。これにより、より厳密に故障利用攻撃の有無を判定することができる。 First, when a failure use attack is received in the scalar multiplication operation step, the calculation of the scalar multiple [d] C 1 may be wrong, and C 1 and [d] C 1 may not have a scalar multiplication relationship. On the other hand, (a) (P1 + P2, Q) = (P1, Q). (P2, Q), (b) (P, Q) = (Q, P), (c) (P) , P) = 1, it can be derived that when the pairing calculation is performed using two points having a scalar multiplication relationship as input values, the output value becomes 1. Based on this property, pairing is calculated using C 1 and [d] C 1, and it is determined whether or not the calculation result is 1, so that C 1 and [d] C 1 are multiplied by a scalar. You can check if they are in a relationship. Thereby, the presence or absence of a failure use attack can be determined more strictly.

なお、ペアリングの計算については、C1と[d]C1とを入力としてペアリングの計算を行う手法や、C1及び[d]C1を変換した後にペアリングの計算を行う手法が採用可能である。前者であれば、検知率を高めることができる。 As for the calculation of pairing, there are a method of calculating pairing with C 1 and [d] C 1 as inputs, and a method of calculating pairing after converting C 1 and [d] C 1. It can be adopted. If it is the former, a detection rate can be raised.

そして、第1の故障利用攻撃検知ステップは、点C’=[1/n]C(nは任意の自然数)=(xC1’,yC1’)及び点[d]C’=[1/n][d]C=(x[d]C1’,y[d]C1’)を算出するステップと、点σ(C’)=(xC1’ ,yC1’ )(l=q。qは有限体の要素数。mはq−1がnで割り切れる最小の数)及び点σ([d]C’)=(x[d]C1’ ,y[d]C1’ )を算出するステップと、点C~=σ(C’)−C’及び点[d]C~=σ([d]C’)−[d]C’を算出するステップと、点C~と点[d]C~とを入力値として楕円曲線E上のペアリングを計算するステップとを含むようにしても良い。このようにペアリングの入力値となる点を変換することで、点C及び[d]Cを入力値とした場合よりも、ペアリングの計算に必要な演算量を削減することができる。 Then, the first failure utilization attack detection step includes the point C 1 ′ = [1 / n] C 1 (n is an arbitrary natural number) = (x C1 ′ , y C1 ′ ) and the point [d] C 1 ′ = Calculating [1 / n] [d] C 1 = (x [d] C1 ′ , y [d] C1 ′ ) and the point σ (C 1 ′) = (x C1 ′ l , y C1 ′ l ) (L = q m, q is the number of elements of the finite field, m is the smallest number that q m −1 is divisible by n) and point σ ([d] C 1 ′) = (x [d] C 1 ′ l , y [d] C1 ′ l ), points C 1 ~ = σ (C 1 ′) −C 1 ′ and points [d] C 1 ~ = σ ([d] C 1 ′) − [d ] A step of calculating C 1 ′ and a step of calculating pairing on the elliptic curve E using the points C 1 to C and the point [d] C 1 to as input values. By thus converting the point at which the input values of the pairing, than when the input value points C 1 and [d] C 1, it is possible to reduce the calculation amount required for the calculation of the pairing .

さらに、第1の故障利用攻撃検知ステップは、複数の自然数nに対しそれぞれペアリングを計算し、複数のペアリングの計算結果に1でないものが含まれる場合には故障利用攻撃を受けたと判定するステップを含むようにしても良い。このように複数回ペアリングの計算を行うことで、検知率を上げることができる。   Further, the first failure use attack detection step calculates pairing for each of a plurality of natural numbers n, and determines that a failure use attack has been received if a plurality of pairing calculation results include a value other than 1. A step may be included. Thus, the detection rate can be increased by performing the pairing calculation a plurality of times.

また、本故障利用攻撃検知方法は、第1の故障利用攻撃検知ステップを行う前に、点[d]Cが楕円曲線E上にあるかを判断し、楕円曲線E上にないと判断された場合には故障利用攻撃を受けたと判定する第2の故障利用攻撃検知ステップをさらに含むようにしても良い。より演算量の少ない第2の故障利用攻撃検知ステップで検知できる場合は、第1の故障利用攻撃検知ステップを行う必要がなくなり、処理効率を上げることができる。 In addition, this failure use attack detection method determines whether the point [d] C 1 is on the elliptic curve E before performing the first failure use attack detection step, and is determined not to be on the elliptic curve E. In such a case, a second failure use attack detection step for determining that a failure use attack has been received may be further included. If the second failure utilization attack detection step with a smaller amount of computation can be detected, it is not necessary to perform the first failure utilization attack detection step, and the processing efficiency can be increased.

さらに、第1の故障利用攻撃検知ステップは、qが2のべき乗であり、かつ任意の自然数nが2であるときに、ポイントハービングアルゴリズムで、点C’=[1/n]C=(xC1’,yC1’)及び点[d]C’=[1/n][d]C=(x[d]C1’,y[d]C1’)を算出するステップを含むようにしても良い。これにより、点C’及び点[d]C’の算出に必要な演算量を削減することができる。 Further, in the first failure utilization attack detection step, when q is a power of 2 and an arbitrary natural number n is 2, a point C 1 ′ = [1 / n] C 1 = (X C1 ′ , y C1 ′ ) and calculating the point [d] C 1 ′ = [1 / n] [d] C 1 = (x [d] C 1 ′ , y [d] C 1 ′ ) It may be included. Thereby, the amount of calculation required for calculation of the point C 1 ′ and the point [d] C 1 ′ can be reduced.

以上の実施例及び変形例を含む実施形態に関し、更に以下の付記を開示する。   The following additional notes are further disclosed with respect to the embodiments including the above examples and modifications.

(付記1)
有限体上の楕円曲線Eと、当該楕円曲線E上の点Cと、スカラーdとに基づき、前記楕円曲線E上のスカラー倍点[d]Cを算出するスカラー倍演算手段と、
前記点Cと前記スカラー倍点[d]Cとを用いて前記楕円曲線E上のペアリングを計算し、当該ペアリングの計算結果が1でない場合には故障利用攻撃を受けたと判定する第1の故障利用攻撃検知手段と、
を有する楕円曲線演算装置。
(Appendix 1)
Scalar multiplication means for calculating a scalar multiple [d] C 1 on the elliptic curve E based on the elliptic curve E on the finite field, the point C 1 on the elliptic curve E, and the scalar d;
Pairing on the elliptic curve E is calculated using the point C 1 and the scalar multiple [d] C 1, and if the calculation result of the pairing is not 1, it is determined that a failure use attack has been received. First failure-use attack detection means;
An elliptic curve calculation device.

(付記2)
前記第1の故障利用攻撃検知手段は、
点C’=[1/n]C(nは任意の自然数)=(xC1’,yC1’
及び点[d]C’=[1/n][d]C=(x[d]C1’,y[d]C1’)を算出し、
点σ(C’)=(xC1’ ,yC1’ )(l=q。qは有限体の要素数。mはq−1がnで割り切れる最小の数)
及び点σ([d]C’)=(x[d]C1’ ,y[d]C1’ )を算出し、
点C~=σ(C’)−C
及び点[d]C~=σ([d]C’)−[d]C’を算出し、
前記点C~と前記点[d]C~とを入力として前記楕円曲線E上のペアリングを計算する
ことを特徴とする付記1記載の楕円曲線演算装置。
(Appendix 2)
The first failure use attack detection means includes:
Point C 1 ′ = [1 / n] C 1 (n is an arbitrary natural number) = (x C1 ′ , y C1 ′ )
And the point [d] C 1 ′ = [1 / n] [d] C 1 = (x [d] C 1 ′ , y [d] C 1 ′ )
Point σ (C 1 ′) = (x C1 ′ l , y C1 ′ l ) (l = q m, q is the number of elements of a finite field, m is the smallest number that q m −1 is divisible by n)
And the point σ ([d] C 1 ' ) = (x [d] C1' l, y [d] C1 'l) is calculated,
Point C 1 ~ = σ (C 1 ′) −C 1
And the point [d] C 1 ~ = σ ([d] C 1 ′) − [d] C 1 ′,
The elliptic curve calculation device according to appendix 1, wherein pairing on the elliptic curve E is calculated with the points C 1 to and the points [d] C 1 to be input.

(付記3)
前記第1の故障利用攻撃検知手段は、
複数の前記自然数nに対しそれぞれ前記ペアリングを計算し、
当該複数のペアリングの計算結果に1でないものが含まれる場合には故障利用攻撃を受けたと判定する
ことを特徴とする付記2記載の楕円曲線演算装置。
(Appendix 3)
The first failure use attack detection means includes:
Calculating the pairing for each of the plurality of natural numbers n;
The elliptic curve calculation device according to appendix 2, wherein the calculation result of the pairing includes that which is not 1 is determined to have been subjected to a failure use attack.

(付記4)
前記第1の故障利用攻撃検知手段が処理を行う前に、前記点[d]Cが前記楕円曲線E上にあるかを判断し、当該楕円曲線E上にないと判断された場合には故障利用攻撃を受けたと判定する第2の故障利用攻撃検知手段
をさらに有する付記1乃至3のいずれか1つ記載の楕円曲線演算装置。
(Appendix 4)
Before the first failure utilization attack detection means performs processing, it is determined whether the point [d] C 1 is on the elliptic curve E, and if it is determined that the point [d] C 1 is not on the elliptic curve E The elliptic curve calculation device according to any one of supplementary notes 1 to 3, further comprising: a second failure use attack detection unit that determines that a failure use attack has been received.

(付記5)
前記第1の故障利用攻撃検知手段は、
前記qが2のべき乗であり、かつ前記任意の自然数nが2であるときに、
ポイントハービングアルゴリズムで、点C’=[1/n]C=(xC1’,yC1’)及び点[d]C’=[1/n][d]C=(x[d]C1’,y[d]C1’)を算出する
ことを特徴とする付記2記載の楕円曲線演算装置。
(Appendix 5)
The first failure use attack detection means includes:
When q is a power of 2 and the arbitrary natural number n is 2,
In the point harvesting algorithm, the point C 1 ′ = [1 / n] C 1 = (x C1 ′ , y C1 ′ ) and the point [d] C 1 ′ = [1 / n] [d] C 1 = (x [d] C1 ', y [ d] C1') elliptic curve calculation device according to note 2, wherein the calculating the.

(付記6)
コンピュータが、有限体上の楕円曲線Eと、前記楕円曲線E上の点Cと、スカラーdとに基づき、前記楕円曲線E上のスカラー倍点[d]Cを算出し、記憶装置に格納するスカラー倍演算ステップと、
前記コンピュータが、前記点Cと前記スカラー倍点[d]Cとを用いて前記楕円曲線E上のペアリングを計算し、当該ペアリングの計算結果が1でない場合には故障利用攻撃を受けたと判定する故障利用攻撃検知ステップと、
を含む楕円曲線演算方法。
(Appendix 6)
The computer calculates a scalar multiple [d] C 1 on the elliptic curve E based on the elliptic curve E on the finite field, the point C 1 on the elliptic curve E, and the scalar d, and stores it in the storage device. A scalar multiplication step to store;
The computer calculates a pairing on the elliptic curve E using the point C 1 and the scalar multiple [d] C 1, and if the calculation result of the pairing is not 1, a failure use attack is performed. A failure-use attack detection step for determining that it has been received;
Elliptic curve calculation method.

(付記7)
有限体上の楕円曲線Eと、前記楕円曲線E上の点Cと、スカラーdとに基づき、前記楕円曲線E上のスカラー倍点[d]Cを算出し、記憶装置に格納するスカラー倍演算ステップと、
前記点Cと前記スカラー倍点[d]Cとを用いて前記楕円曲線E上のペアリングを計算し、当該ペアリングの計算結果が1でない場合には故障利用攻撃を受けたと判定する故障利用攻撃検知ステップと、
をコンピュータに実行させる楕円曲線演算プログラム。
(Appendix 7)
A scalar multiple [d] C 1 on the elliptic curve E is calculated based on the elliptic curve E on the finite field, the point C 1 on the elliptic curve E, and the scalar d, and stored in the storage device. A doubling step,
Pairing on the elliptic curve E is calculated using the point C 1 and the scalar multiple [d] C 1, and if the calculation result of the pairing is not 1, it is determined that a failure use attack has been received. A failure-use attack detection step;
Elliptic curve calculation program that makes the computer execute.

本技術の実施の形態におけるシステム概要図である。It is a system outline figure in an embodiment of this art. 本技術の実施の形態の処理フローを示す図である。It is a figure showing a processing flow of an embodiment of this art. 本技術の攻撃有無判定処理に係る処理フローを示す図である。It is a figure which shows the process flow which concerns on the attack presence determination process of this technique. 本技術の関数f導出処理に係る処理フローを示す図である。It is a diagram depicting a processing flow relating to the function f S deriving process of the present technology. 本技術の攻撃有無判定処理に係る処理フローを示す図である。It is a figure which shows the process flow which concerns on the attack presence determination process of this technique. 本技術の第2攻撃有無判定処理に係る処理フローを示す図である。It is a figure showing the processing flow concerning the 2nd attack existence judging processing of this art. 本技術の変形ペアリング処理に係る処理フローを示す図である。It is a figure which shows the process flow which concerns on the deformation | transformation pairing process of this technique. 本技術の変形ペアリング処理に係る処理フローを示す図である。It is a figure which shows the process flow which concerns on the deformation | transformation pairing process of this technique. 本技術の第3攻撃有無判定処理に係る処理フローを示す図である。It is a figure showing the processing flow concerning the 3rd attack existence judging processing of this art. 本技術の第4攻撃有無判定処理に係る処理フローを示す図である。It is a figure showing the processing flow concerning the 4th attack existence judging processing of this art. 本技術の第5攻撃有無判定処理に係る処理フローを示す図である。It is a figure showing the processing flow concerning the 5th attack existence judging processing of this art. 本技術の第2変形ペアリング処理に係る処理フローを示す図である。It is a figure showing the processing flow concerning the 2nd modification pairing processing of this art. 本技術の第2変形ペアリング処理に係る処理フローを示す図である。It is a figure showing the processing flow concerning the 2nd modification pairing processing of this art.

符号の説明Explanation of symbols

1 ICカード 3 認証装置
101 記憶装置 103 公開情報記憶部
105 秘密鍵記憶部 107 故障利用攻撃検知部
109 復号化処理部 111制御部
113 通信部
301 記憶装置 303 公開情報記憶部
305 乱数生成部 307 認証処理部
309 暗号化処理部 311 制御部
313 通信部
1 IC Card 3 Authentication Device 101 Storage Device 103 Public Information Storage Unit 105 Secret Key Storage Unit 107 Failure Utilization Attack Detection Unit 109 Decryption Processing Unit 111 Control Unit 113 Communication Unit 301 Storage Device 303 Public Information Storage Unit 305 Random Number Generation Unit 307 Authentication Processing unit 309 Encryption processing unit 311 Control unit 313 Communication unit

Claims (7)

有限体上の楕円曲線Eと、当該楕円曲線E上の点Cと、スカラーdとに基づき、前記楕円曲線E上のスカラー倍点[d]Cを算出するスカラー倍演算手段と、
前記点Cと前記スカラー倍点[d]Cとを用いて前記楕円曲線E上のペアリングを計算し、当該ペアリングの計算結果が1でない場合には故障利用攻撃を受けたと判定する第1の故障利用攻撃検知手段と、
を有する楕円曲線演算装置。
Scalar multiplication means for calculating a scalar multiple [d] C 1 on the elliptic curve E based on the elliptic curve E on the finite field, the point C 1 on the elliptic curve E, and the scalar d;
Pairing on the elliptic curve E is calculated using the point C 1 and the scalar multiple [d] C 1, and if the calculation result of the pairing is not 1, it is determined that a failure use attack has been received. First failure-use attack detection means;
An elliptic curve calculation device.
前記第1の故障利用攻撃検知手段は、
点C’=[1/n]C(nは任意の自然数)=(xC1’,yC1’
及び点[d]C’=[1/n][d]C=(x[d]C1’,y[d]C1’)を算出し、
点σ(C’)=(xC1’ ,yC1’ )(l=q。qは有限体の要素数。mはq−1がnで割り切れる最小の数)
及び点σ([d]C’)=(x[d]C1’ ,y[d]C1’ )を算出し、
点C~=σ(C’)−C
及び点[d]C~=σ([d]C’)−[d]C’を算出し、
前記点C~と前記点[d]C~とを入力として前記楕円曲線E上のペアリングを計算する
ことを特徴とする請求項1記載の楕円曲線演算装置。
The first failure use attack detection means includes:
Point C 1 ′ = [1 / n] C 1 (n is an arbitrary natural number) = (x C1 ′ , y C1 ′ )
And the point [d] C 1 ′ = [1 / n] [d] C 1 = (x [d] C 1 ′ , y [d] C 1 ′ )
Point σ (C 1 ′) = (x C1 ′ l , y C1 ′ l ) (l = q m, q is the number of elements of a finite field, m is the smallest number that q m −1 is divisible by n)
And the point σ ([d] C 1 ′) = (x [d] C1 ′ l , y [d] C1 ′ l ),
Point C 1 ~ = σ (C 1 ′) −C 1
And the point [d] C 1 ~ = σ ([d] C 1 ′) − [d] C 1 ′,
The elliptic curve calculation device according to claim 1, wherein pairing on the elliptic curve E is calculated by using the points C 1 ~ and the points [d] C 1 ~ as inputs.
前記第1の故障利用攻撃検知手段は、
複数の前記自然数nに対しそれぞれ前記ペアリングを計算し、
当該複数のペアリングの計算結果に1でないものが含まれる場合には故障利用攻撃を受けたと判定する
ことを特徴とする請求項2記載の楕円曲線演算装置。
The first failure use attack detection means includes:
Calculating the pairing for each of the plurality of natural numbers n;
The elliptic curve calculation device according to claim 2, wherein if the calculation result of the plurality of pairings includes a value other than 1, it is determined that a failure use attack has been received.
前記第1の故障利用攻撃検知手段が処理を行う前に、前記点[d]Cが前記楕円曲線E上にあるかを判断し、当該楕円曲線E上にないと判断された場合には故障利用攻撃を受けたと判定する第2の故障利用攻撃検知手段
をさらに有する請求項1乃至3のいずれか1つ記載の楕円曲線演算装置。
Before the first failure utilization attack detection means performs processing, it is determined whether the point [d] C 1 is on the elliptic curve E, and if it is determined that the point [d] C 1 is not on the elliptic curve E The elliptic curve calculation device according to any one of claims 1 to 3, further comprising second failure use attack detection means for determining that a failure use attack has been received.
前記第1の故障利用攻撃検知手段は、
前記qが2のべき乗であり、かつ前記任意の自然数nが2であるときに、
ポイントハービング(Point Halving)アルゴリズムで、点C’=[1/n]C=(xC1’,yC1’)及び点[d]C’=[1/n][d]C=(x[d]C1’,y[d]C1’)を算出する
ことを特徴とする請求項2記載の楕円曲線演算装置。
The first failure use attack detection means includes:
When q is a power of 2 and the arbitrary natural number n is 2,
In the Point Halving algorithm, the point C 1 ′ = [1 / n] C 1 = (x C1 ′ , y C1 ′ ) and the point [d] C 1 ′ = [1 / n] [d] C The elliptic curve calculation device according to claim 2, wherein 1 = (x [d] C1 ′ , y [d] C1 ′ ) is calculated.
コンピュータが、有限体上の楕円曲線Eと、前記楕円曲線E上の点Cと、スカラーdとに基づき、前記楕円曲線E上のスカラー倍点[d]Cを算出し、記憶装置に格納するスカラー倍演算ステップと、
前記コンピュータが、前記点Cと前記スカラー倍点[d]Cとを用いて前記楕円曲線E上のペアリングを計算し、当該ペアリングの計算結果が1でない場合には故障利用攻撃を受けたと判定する故障利用攻撃検知ステップと、
を含む楕円曲線演算方法。
The computer calculates a scalar multiple [d] C 1 on the elliptic curve E based on the elliptic curve E on the finite field, the point C 1 on the elliptic curve E, and the scalar d, and stores it in the storage device. A scalar multiplication step to store;
The computer calculates a pairing on the elliptic curve E using the point C 1 and the scalar multiple [d] C 1, and if the calculation result of the pairing is not 1, a failure use attack is performed. A failure-use attack detection step for determining that it has been received;
Elliptic curve calculation method.
有限体上の楕円曲線Eと、前記楕円曲線E上の点Cと、スカラーdとに基づき、前記楕円曲線E上のスカラー倍点[d]Cを算出し、記憶装置に格納するスカラー倍演算ステップと、
前記点Cと前記スカラー倍点[d]Cとを用いて前記楕円曲線E上のペアリングを計算し、当該ペアリングの計算結果が1でない場合には故障利用攻撃を受けたと判定する故障利用攻撃検知ステップと、
をコンピュータに実行させる楕円曲線演算プログラム。
A scalar multiple [d] C 1 on the elliptic curve E is calculated based on the elliptic curve E on the finite field, the point C 1 on the elliptic curve E, and the scalar d, and stored in the storage device. A doubling step,
Pairing on the elliptic curve E is calculated using the point C 1 and the scalar multiple [d] C 1, and if the calculation result of the pairing is not 1, it is determined that a failure use attack has been received. A failure-use attack detection step;
Elliptic curve calculation program that makes the computer execute.
JP2008326100A 2008-12-22 2008-12-22 Elliptic curve calculation device, method and program Expired - Fee Related JP5272710B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008326100A JP5272710B2 (en) 2008-12-22 2008-12-22 Elliptic curve calculation device, method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008326100A JP5272710B2 (en) 2008-12-22 2008-12-22 Elliptic curve calculation device, method and program

Publications (2)

Publication Number Publication Date
JP2010148036A true JP2010148036A (en) 2010-07-01
JP5272710B2 JP5272710B2 (en) 2013-08-28

Family

ID=42567945

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008326100A Expired - Fee Related JP5272710B2 (en) 2008-12-22 2008-12-22 Elliptic curve calculation device, method and program

Country Status (1)

Country Link
JP (1) JP5272710B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010226402A (en) * 2009-03-24 2010-10-07 Fujitsu Ltd Authentication medium for detection of fault attack to authentication processing using elliptic curve cryptosystem

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003255831A (en) * 2002-02-28 2003-09-10 Hitachi Ltd Method and device for calculating elliptic curve scalar multiple
JP2004252433A (en) * 2003-01-28 2004-09-09 Matsushita Electric Ind Co Ltd Elliptic curve exponentiation apparatus and information security apparatus that can counter fault utilization attack
JP2010136066A (en) * 2008-12-04 2010-06-17 Sony Corp Apparatus and method of processing information, and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003255831A (en) * 2002-02-28 2003-09-10 Hitachi Ltd Method and device for calculating elliptic curve scalar multiple
JP2004252433A (en) * 2003-01-28 2004-09-09 Matsushita Electric Ind Co Ltd Elliptic curve exponentiation apparatus and information security apparatus that can counter fault utilization attack
JP2010136066A (en) * 2008-12-04 2010-06-17 Sony Corp Apparatus and method of processing information, and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010226402A (en) * 2009-03-24 2010-10-07 Fujitsu Ltd Authentication medium for detection of fault attack to authentication processing using elliptic curve cryptosystem

Also Published As

Publication number Publication date
JP5272710B2 (en) 2013-08-28

Similar Documents

Publication Publication Date Title
Genkin et al. May the fourth be with you: A microarchitectural side channel attack on several real-world applications of curve25519
Mahto et al. Performance analysis of RSA and elliptic curve cryptography.
US8472621B2 (en) Protection of a prime number generation for an RSA algorithm
Boyd et al. Elliptic curve based password authenticated key exchange protocols
EP1050133A4 (en) Leak-resistant cryptographic method and apparatus
JP2008252299A (en) Encryption processing system and encryption processing method
EP1898382B1 (en) Pseudo-random function calculating device and method, and number limited anonymous authentication system and method
CN106464501B (en) Authentication device and method
US9847879B2 (en) Protection against passive sniffing
JP2004304800A (en) Protection of side channel for prevention of attack in data processing device
CN105337734B (en) Elliptic curve encryption method including error detection
KR20110013334A (en) Method of processing data protected against fault injection attacks and associated device
Scott A note on the calculation of some functions in finite fields: Tricks of the trade
Chande et al. An improvement of a elliptic curve digital signature algorithm
JP5272710B2 (en) Elliptic curve calculation device, method and program
Rahnama et al. Countering RSA vulnerabilities and its replacement by ECC: elliptic curve cryptographic scheme for key generation
Zhang et al. Side‐Channel Attacks and Countermeasures for Identity‐Based Cryptographic Algorithm SM9
Ulla et al. implementation of elliptic curve cryptosystem with bitcoin curves on SECP256k1, NIST256p, NIST521p, and LLL
Stebila Classical authenticated key exchange and quantum cryptography
US20230044442A1 (en) Information leakage mitigation associated with elliptic curve operations
Abdurahmonov et al. Improving Smart Card Security Using Elliptic Curve Cryptography over Prime Field (F p)
JP5326715B2 (en) An authentication medium for detecting failure-use attacks on authentication processing using elliptic curve cryptography
Prakash et al. Digital Signatures and El Gamal Scheme Integration for Secure Data Transmission in Digital Transaction Survey
Jyotiyana et al. Fault attack for scalar multiplication over finite field (E (F q)) on Elliptic Curve Digital Signature Algorithm
JP2010166526A (en) Authentication method, authentication system, program, and shared key creation method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130410

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: 20130429

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