JP2010148036A - Device, method and program for arithmetically operating elliptic curve - Google Patents
Device, method and program for arithmetically operating elliptic curve Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures against side channel or fault attacks
- G06F2207/7271—Fault 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
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=pmの有限体GF(q)上の楕円曲線Eとは、
E:y2+a1xy+a3y=x3+a2x2+a4x+a6
を満たす点(x,y)の集合に、無限遠点と呼ばれる点∞を加えた集合のことである。無限遠点∞を0と表すこともある。ここで、a1、a2、a3、a4、a6、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)
また、P1及びP2をGF(q)上の楕円曲線E上の点とする。そして、P1とP2の和P3を以下のように定義する。
(a)P1=∞のとき、P3=P2
(b)P2=∞のとき、P3=P1
(c)P1=−P2のとき、P3=∞
(d)上記(a)乃至(c)以外のとき、P1=(x1,y1)、P2=(x2,y2)、P3=(x3,y3)とすると、
x3=λ2+a1λ−a2−x1−x2
y3=(x1−x2)λ−y1+a1x3−a3
ただし、
P1≠P2のとき、λ=(y2−y1)/(x2−x1)
P1=P2のとき、λ=(3x1 2+2a2x1+a4−a1y1)/(2y1+a1x1+a3)
P1≠P2のときにP1+P2を計算することを楕円加算、P1=P2のときにP1+P2=[2]P1を計算することを楕円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,
楕円曲線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(pm)、その上の楕円曲線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を計算し、C1として保持する
(3)点M+[r]Yを計算し、C2として保持する
(4)C1とC2を暗号文C(C1,C2)として受信者に送信する
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]C1を計算し、Kとして保持する
(2)点C2−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(C1,C2)=([r]P,M+[r]Y)を入手(すなわち傍受)できる。しかし、C1=[r]PとベースポイントPから乱数rを算出することは楕円曲線離散対数問題を解くことを意味し、困難である。従って、d及びrは入手できないと言え、そのスカラー倍点[r]Y=[r][d]Pを算出することも、C2=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(pm)、その上の楕円曲線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)認証装置は、C1=[r]P及びC2=M+[r]Yを計算し、暗号文C=(C1,C2)をICカードに送信する。
(3)ICカードは、暗号文C=(C1,C2)及び秘密鍵dを用いて、K=[d]C1及びM’=C2−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]C1の計算を誤り、結果として誤ったM’=C2−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カードはC1,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:y2+a1xy+a3y=x3+a2x2+a4x+a6
という方程式で表されるとき、関数f(x,y)を
f(x,y)=x3+a2x2+a4x+a6−(y2+a1xy+a3y)
と定める。そして、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 - (
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程度の確率で故障利用攻撃の検知漏れが生じることになる。
以上のように、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上の点C1と、スカラーdとに基づき、楕円曲線E上のスカラー倍点[d]C1を算出するスカラー倍演算手段と、点C1とスカラー倍点[d]C1とを用いて楕円曲線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)(P1+P2,Q)=(P1,Q)・(P2,Q)
ここで、P=P1+P2である
(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
以上の性質より、C1及び[d]C1をペアリング関数に入力したとき、以下のように変形できる。
(C1,[d]C1)
=(C1,[d−1]C1)・(C1,C1)
=(C1,[d−1]C1)・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)が採用されているものとする。ベイユペアリングは、以下のような関数erとして定義される。
er(S,T)=fS(Q+S)/fS(Q)・fT(P)/fT(P+T)・・・・・・(1)
ここで、rは自然数とし、E[r]は、[r]P=∞を満たす楕円曲線E上の点Pの集合とする。また、erの入力値である点S、Tは、集合E[r]の要素である。さらに、fS、fTは、それぞれ点S、Tから導出される関数で、求め方は後に詳しく述べる。また、点P、Qは、それぞれP+T及びQ+Sが無限遠点∞にならない楕円曲線E上の任意の点である。また、fS、fTは、それぞれ特に点S、Tにおいてのみr−位の零点をもつ関数である。
なお、ペアリングの出力値は、1の原始r乗根のなす群と同一視された値であり、上記er(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}. .
次に、関数fSを導出するアルゴリズムを説明する。まず、fS=grとする。ここで、点S=(xS,yS)、g1=1、g2=x−xSとおくと、以下のように、gi+jを求めることができる。
gi+j=gi・gj・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から、grを求める。すなわち、rを2進展開等によりi+jの繰り返しに分解し、gi+jを繰り返し計算することでgrを求める。例えばr=13のとき、r=1+22+23であるから、g1、g2、g4(=g2+2)及びg8(=g4+4)を求め、g5=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:y2=x3+x
r=2とし、E[2]に含まれる楕円曲線上の点S=(0,0)、T=(5,0)を入力値としてベイユペアリングe2(S,T)を計算する。P=(0,0)、Q=(5,0)としたとき、
Q+Sのx座標=λ2+a1λ−a2−x1−x2=02+0・0−0−5−0=−5=8(mod 13)
Q+Sのy座標=(x1−x2)・λ−y1−a1x3−a3=(5−0)・0−0−0・(−5)−0=0(mod 13)
であるから、Q+S=(8,0)、同様に、P+T=(8,0)と算出できる。また、
fS=x−0=x
fT=x−5
と求めることができ、e2(S,T)は以下のようになる。
e2(S,T)=8/5・(−5)/3=12(mod 13)/2(mod 13)=6(mod 13)
これを1の原始2乗根のなす群と同一視すると、ペアリングの出力値は以下のようになる。
e2(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
図1に示したICカード1は、記憶装置101と、公開情報記憶部103と、秘密鍵記憶部105と、故障利用攻撃検知部107と、復号化処理部109と、制御部111と、通信部113とを有する。なお、本実施の形態では、公開情報記憶部103は、有限体GF(q)上の楕円曲線Eの方程式、ベースポイントP及びユーザの公開鍵Y=[d]Pをすでに格納し、秘密鍵記憶部105は、ユーザの秘密鍵dをすでに格納しているものとして説明する。
The
通信部113は、制御部111と連携し、認証装置3から受信した暗号文を記憶装置101に格納すると共に、記憶装置101に格納されたメッセージを認証装置3へ送信する。復号化処理部109は、制御部111と連携し、記憶装置101、公開情報記憶部103及び秘密鍵記憶部105に格納されたデータを用いて暗号文を復号化し、記憶装置101に格納する。故障利用攻撃検知部107は、制御部111と連携し、記憶装置101及び公開情報記憶部103に格納されたデータを用いて故障利用攻撃の有無を判定する。
The
また、認証装置3は、記憶装置301と、公開情報記憶部303と、乱数生成部305と、認証処理部307と、暗号化処理部309と、制御部311と、通信部313とを有する。なお、本実施の形態では、公開情報記憶部303は、有限体GF(q)上の楕円曲線Eの方程式、ベースポイントP及びユーザの公開鍵Y=[d]Pをすでに格納しているものとして説明する。
The authentication device 3 includes a
通信部313は、制御部311と連携し、記憶装置301に格納された暗号文をICカード1へ送信すると共に、ICカード1から受信したメッセージを記憶装置301に格納する。乱数生成部305は、制御部311と連携して、ランダムなデータを生成し、記憶装置301に格納する。暗号化処理部309は、制御部311と連携して、記憶装置301及び公開情報記憶部303に格納されたデータを用いて暗号文を生成し、記憶装置301に格納する。認証処理部307は、制御部311と連携し、記憶装置301に格納されたデータを用いてユーザ認証処理を行う。
The
次に、図2乃至図5を用いて、認証処理の内容について説明する。ICカード1と認証装置3の間で認証処理が開始された場合、認証装置3の制御部311は、乱数生成部305に、乱数r及び楕円曲線E上のランダムな点として表されるメッセージMを生成させ、記憶装置301に格納させる。次に、制御部311は、暗号化処理部309に、記憶装置301に格納された乱数r及びメッセージM並びに公開情報記憶部303に格納されたベースポイントPを用いてC1=[r]P及びC2=M+[r]Pを算出させ、暗号文C(C1,C2)として記憶装置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カード1の通信部113が暗号文Cを受信すると、ICカード1の制御部111は、通信部113に、暗号文Cを記憶装置101に格納させる(ステップS5)。そして、制御部111は、復号化処理部109に、記憶装置101に格納されたC1及び秘密鍵記憶部105に格納されている秘密鍵dを用いて、K=[d]C1を算出させ、記憶装置101に格納させる(ステップS7)。
On the other hand, when the
次に、ICカード1の制御部111は、故障利用攻撃検知部107に、K=[d]C1の算出において故障利用攻撃を受けたか判定する攻撃有無判定処理を実行させる(ステップS9)。攻撃有無判定処理の詳細については後に説明するが、当該処理の中で、攻撃判定フラグが、記憶装置101においてON又はOFFに設定される。そして、制御部111は、故障利用攻撃検知部107を介して、記憶装置101に格納された攻撃判定フラグを取得し、攻撃判定フラグがONである場合は(ステップS11:Yesルート)、故障利用攻撃を受けたと判定し、必要に応じて所定の異常系処理を行う(ステップS13)。一方、攻撃判定フラグがOFFである場合は(ステップS11:Noルート)、制御部111は故障利用攻撃を受けていないと判定し、復号化処理を続ける。制御部111は、復号化処理部109に、記憶装置101に格納されたC2及びKを用いてメッセージM’=C2−Kを算出させ、記憶装置101に格納させる(ステップS15)。そして、制御部111は、通信部113に、記憶装置101に格納されたメッセージM’を認証装置3へ送信させる(ステップS17)。
Next, the
認証装置3の通信部313がメッセージM’を受信すると、認証装置3の制御部311は、通信部313に、メッセージM’を記憶装置301に格納させる(ステップS19)。そして、制御部311は、認証処理部307に、記憶装置301に格納されたメッセージMとメッセージM’が同一であるか比較させ、結果を制御部311に通知させる。MとM’が同一であれば、制御部311は、認証成功と判断する(ステップS21)。なお、認証成功時に行われる所定の正常系処理及び認証失敗時に行われる所定の異常系処理については、従来と同様であるため、これ以上は述べない。
When the
[攻撃有無判定処理]
次に、ベイユペアリングを用いた攻撃有無判定処理を図3乃至図5を用いて説明する。本実施の形態では、C1及びK(=[d]C1)を入力値としてペアリングを行い、スカラー倍の関係であるか判断することで、故障利用攻撃を受けたか判定する。なお、本実施の形態では予め公開情報記憶部103に、有限体GF(q)の要素数q(=pm)が格納されているものとして説明する。また、本攻撃有無判定処理において算出した値又は変数等に代入した値は、すべて記憶装置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
まず、ICカード1の故障利用攻撃検知部107は、公開情報記憶部103に格納されたqを、変数nに代入する(ステップS31)。次に、故障利用攻撃検知部107は、関数fS導出処理を実行し、関数fC1、関数fKを求める。関数fC1、関数fKは、ペアリングの計算において必要となる関数であり、それぞれ点C1、点K(=[d]C1)から求められる。そして、故障利用攻撃検知部107は、記憶装置101に格納された暗号文Cの点C1を、変数である点Sに代入する(ステップS33)。さらに、故障利用攻撃検知部107は、関数fS導出処理を行う(ステップS35)。
First, the failure use
ここで、関数fS導出処理を図4を用いて説明する。まず、故障利用攻撃検知部107は、繰り返し処理のためのカウンタであるiに初期値2を代入する(ステップS51)。次に、故障利用攻撃検知部107は、関数g1に1、関数g2にx−xSを代入する(ステップS53)。ここで、xSは点Sのx座標である。そして、故障利用攻撃検知部107は、記憶装置101に格納された変数nを2進展開し、関数gnを求めるのに必要な、全てのg2^z(2^zは2のべき乗を表すものとする)を特定する(ステップS55)。例えば、n=13の場合、13=20+22+23と2進展開され、必要なg2^zは、g1、g4及びg8であると特定される。
Here, the function f S derivation processing will be described with reference to FIG. First, the failure use
ここで、gnの算出に必要な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=gi・gi・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
一方、gnの算出に必要なg2^zが全て算出されている場合(ステップS57:Yesルート)、故障利用攻撃検知部107は、2進展開で特定されたg2^zから、gnを算出する(ステップS67)。例えば、n=13の場合、先に述べた(2)式に従い、g5=g1+4=g1・g4・l(x,y)/v(x,y)、g13=g5+8=g5・g8・l(x,y)/v(x,y)のように算出される。そして、算出されたgnを関数fSに代入し(ステップS69)、元の処理に戻る。このようにして関数fS導出処理が行われる。この処理により、ペアリングの計算に必要なfC1及びfKを求めることができる。
On the other hand, if g 2 ^ z required for calculating the g n is calculated all (step S57: Yes route), fault
図3の処理の説明に戻って、故障利用攻撃検知部107は、導出された関数fSを、関数fC1に代入する(ステップS37)。次に、故障利用攻撃検知部107は、点K(=[d]C1)を点Sに代入し(ステップS39)、関数fS導出処理を実行する(ステップS41)。関数fS導出処理ついては、図4を用いてすでに説明したので説明を省略する。そして、故障利用攻撃検知部107は、導出された関数fSを、関数fKに代入し(ステップS43)、処理は端子Aを介して図5の処理に移行する。
Returning to the description of the processing in FIG. 3, the failure use
次に、故障利用攻撃検知部107は、楕円曲線E上の点U及びVをランダムに選択し(ステップS71)、V+C1及びU+Kを算出する(ステップS73)。ここで、V+C1=∞又はU+K=∞の場合(ステップS75:Noルート)、ステップS71へ戻り、点U及びVを選択し直す。一方、V+C1≠∞かつU+K≠∞の場合(ステップS75:Yesルート)、ステップS77へ移行する。
Then, fault
そして、故障利用攻撃検知部107は、記憶装置101に格納されている、関数fC1、fK、点U、V、V+C1及びU+Kを用いて、ペアリングen(C1,K)の計算を行う(ステップS77)。ペアリングの計算式については、先に述べた(1)式に従い、en(C1,K)=fC1(V+C1)/fC1(V)・fK(U)/fK(U+K)となり、この計算結果を{(q−1)/n}乗したものが出力値となる。
The fault
そして、故障利用攻撃検知部107は、ペアリングの出力値が1であるか判断し、出力値が1である場合(ステップS79:Yesルート)、記憶装置101の攻撃判定フラグをOFFに設定し(ステップS81)、元の処理に戻る。一方、ペアリングの出力値が1でない場合(ステップS79:Noルート)、故障利用攻撃検知部107は、記憶装置101の攻撃判定フラグをONに設定し(ステップS83)、元の処理に戻る。
Then, the failure use
このようにして攻撃有無判定処理が行われる。ICカード1の制御部111は、当該処理で設定された攻撃判定フラグを取得して、ONの場合は故障利用攻撃を受けたと判定し、OFFの場合は故障利用攻撃を受けていないと判定することができる。
In this way, the attack presence / absence determination process is performed. The
[攻撃有無判定処理の変形例1]
攻撃有無判定処理の変形例である第2攻撃有無判定処理を図6に示す。本変形例では、図3乃至図5を用いて説明した攻撃有無判定処理の代わりに、第2攻撃有無判定処理を実施する。図3乃至図5の攻撃有無判定処理では、変数nに有限体GF(q)の要素数q(=pm)を代入していたが、第2攻撃有無判定処理では、予め設定された任意の自然数n1を代入する。これにより、ペアリングに必要な関数を求める処理の演算量をn1/qにすることができる。なお、これに伴いペアリング関数の入力値を変換する必要があり、後に述べるとおり、点C1、K(=[d]C1)をそれぞれC1~、K~に変換する。なお、第2攻撃有無判定処理では、公開情報記憶部103に、有限体GF(q)の要素数q(=pm)及び予め設定された任意の自然数がすでに格納されているものとして説明する。また、第2攻撃有無判定処理において算出した値又は変数等に代入した値は、すべて記憶装置101に格納するものとする。
[
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
まず、故障利用攻撃検知部107は、公開情報記憶部103に格納されている任意の自然数n1を、変数nに代入し(ステップS91)、変形ペアリング処理を行う(ステップS93)。
First, the failure use
ここで、変形ペアリング処理を図7及び図8を用いて説明する。まず、ICカード1の故障利用攻撃検知部107は、繰り返し処理のためのカウンタであるjに初期値として1を代入する(ステップS101)。そして、故障利用攻撃検知部107は、公開情報記憶部103に格納されたqを用いて、qj−1がnで割り切れるか判断し、割り切れない場合(ステップS103:Noルート)、jにj+1を代入して(ステップS105)、ステップS103に戻る。一方、qj−1がnで割り切れる場合(ステップS103:Yesルート)、変数lにqjを代入する(ステップS107)。
Here, the modified pairing process will be described with reference to FIGS. First, the failure use
次に、故障利用攻撃検知部107は、記憶装置101に格納されているC1、K(=[d]C1)及びnを用いて、点C1’=[1/n]C1及び点K’=[1/n]Kを算出する(ステップS109)。ここで、楕円曲線上の除算については既存技術であり説明を省略する。そして、C1’=(xC1’,yC1’)、K’=(xK’,yK’)とすると、故障利用攻撃検知部107は、C1’及びK’のx座標及びy座標をそれぞれl乗した点σ(C1)=(xC1’ l,yC1’ l)及びσ(K’)=(xK’ l,yK’ l)を算出する(ステップS111)。ここで、ある点の各座標をq乗した点はフロベニウス写像と呼ばれる写像であり、各座標をl(=qj)乗した点はフロベニウス写像をj回適用した点である。さらに、故障利用攻撃検知部107は、C1~=σ(C1’)−C1’及びK~=σ(K’)−K’を算出する(ステップS113)。変形ペアリング処理では、このように算出したC1~及びK~を入力値とすることで、予め設定された任意の自然数n1を用いてペアリングの計算を行うことができる。なお、変形ペアリング処理においては、n1を小さくすると、関数fS導出処理においてステップS59乃至S65(図4)を繰り返す回数が減り、演算量を減らすことができる。但し、n1を用いることでペアリングの出力値はn1個に縮退し、故障利用攻撃の検知率が下がる。
Then, fault
次に、故障利用攻撃検知部107は、記憶装置101に格納された点C1~、点K~を用いて、それぞれ関数fS導出処理を実行し、関数fC1~、関数fK~を求める。まず、故障利用攻撃検知部107は、記憶装置101に格納された点C1~を、変数である点Sに代入し(ステップS115)、関数fS導出処理を行う(ステップS117)。関数fS導出処理については、図4を用いて既に説明したので説明を省略する。次に、処理は端子Bを介して図8の処理に移行し、故障利用攻撃検知部107は、導出された関数fSを、関数fC1~に代入する(ステップS121)。
Next, the failure use
次に、故障利用攻撃検知部107は、点K~を点Sに代入し(ステップS123)、関数fS導出処理を実行する(ステップS125)。関数fS導出処理については、図4を用いて既に説明したので説明を省略する。そして、故障利用攻撃検知部107は、導出された関数fSを、関数fK~に代入する(ステップS127)。
Next, the failure use
次に、故障利用攻撃検知部107は、楕円曲線E上の点U及びVをランダムに選択し(ステップS129)、V+C1~及びU+K~を算出する(ステップS131)。ここで、V+C1~=∞又はU+K~=∞の場合(ステップS133:Noルート)、ステップS129へ戻り、点U及びVを選択し直す。一方、V+C1~≠∞かつU+K~≠∞の場合(ステップS133:Yesルート)、ステップS135へ移行する。
Next, the failure use
そして、故障利用攻撃検知部107は、記憶装置101に格納されている、関数fC1~、関数fK~、点U、V、V+C1~及びU+K~を用いて、ペアリングen(C1~,K~)の計算を行い(ステップS135)、元の処理に戻る。ペアリングの計算式については、先に述べた(1)式に従い、en(C1~,K~)=fC1~(V+C1~)/fC1~(V)・fK~(U)/fK~(U+K~)となり、この計算結果を{(q−1)/n}乗したものが出力値となる。このようにして変形ペアリング処理が行われる。
The fault
図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
このようにして、ICカード1の制御部111は、当該処理で設定された攻撃判定フラグを取得して、ONの場合は故障利用攻撃を受けたと判定し、OFFの場合は故障利用攻撃を受けていないと判定することができる。また、先にも述べたとおり、予め設定するn1を小さくすると、演算量を削減することができるが、同時にペアリングの出力値が縮退するため故障利用攻撃の検知率が下がる。よって、第2攻撃有無判定処理においては演算量と検知率を考慮して、適切なn1を設定する必要がある。なお、有限体GF(q)の要素数q=2160として通常のベイユペアリングを行う場合に対して、n1=2と設定して第2攻撃有無判定処理を行う場合は、ペアリングに必要な関数を求める部分の演算量が2/2160となり、故障利用攻撃の検知率が1/2となる。
In this way, the
[攻撃有無判定処理の変形例2]
攻撃有無判定処理の別の変形例である第3攻撃有無判定処理を図9に示す。本変形例では、図6を用いて説明した第2攻撃有無判定処理の代わりに、第3攻撃有無判定処理を実施する。そして、第3攻撃有無判定処理は、複数の自然数を予め設定し、当該自然数の各々に対し第2攻撃有無判定処理を行うことで、故障利用攻撃の検知率を上げることができる。なお、第3攻撃有無判定処理では、公開情報記憶部103に、有限体GF(q)の要素数q(=pm)及び予め設定された任意の自然数の集合N(={n1、n2、・・・、nt}とする)がすでに格納されているものとして説明する。また、第3攻撃有無判定処理において算出した値又は変数等に代入した値は、すべて記憶装置101に格納するものとする。
[
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
まず、故障利用攻撃検知部107は、繰り返し処理のためのカウンタであるsに初期値1を代入し、公開情報記憶部103に格納されている任意の自然数の集合N={n1、n2、・・・、nt}のnsを、変数nに代入し(ステップS141)、変形ペアリング処理を行う(ステップS143)。変形ペアリング処理については、図7及び図8を用いて既に説明したので説明を省略する。
First, the failure use
次に、故障利用攻撃検知部107は、ペアリングの出力値が1であるか判断する。ペアリングの出力値が1でない場合(ステップS145:Noルート)、故障利用攻撃検知部107は、記憶装置101の攻撃判定フラグをONに設定し(ステップS147)、元の処理に戻る。一方、ペアリングの出力値が1である場合(ステップS145:Yesルート)、集合Nの全ての要素に対してペアリングの計算が行われたか判断する。ns=ntでない場合、すなわちNの全ての要素に対してペアリングの計算が行われていない場合(ステップS149:Noルート)、故障利用攻撃検知部107は、sにs+1を代入し、nにnsを代入し(ステップS151)、ステップS143に戻る。一方、ns=ntである場合、すなわちNの全ての要素に対してペアリングの計算が行われた場合(ステップS149:Yesルート)、故障利用攻撃検知部107は、記憶装置101の攻撃判定フラグをOFFに設定し(ステップS153)、元の処理に戻る。
Next, the failure use
このようにして、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
[攻撃有無判定処理の変形例3]
攻撃有無判定処理のさらに別の変形例である第4攻撃有無判定処理を図10に示す。本変形例では、図9を用いて説明した第3攻撃有無判定処理の代わりに、第4攻撃有無判定処理を実施する。そして、第4攻撃有無判定処理では、ペアリングによる攻撃有無判定処理を行う前に、点Kが楕円曲線E上の点であるか判断することで、故障利用攻撃を受けたか判定する。なお、第4攻撃有無判定処理では、公開情報記憶部103に、有限体GF(q)の要素数q(=pm)、楕円曲線Eの方程式及び予め設定された任意の自然数の集合N(={n1、n2、・・・、nt}とする)がすでに格納されているものとして説明する。また、第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
まず、ICカード1の故障利用攻撃検知部107は、公開情報記憶部103に格納された楕円曲線Eの方程式及び記憶装置101に格納された点K(=[d]C1)を取得して、Eの方程式にKを代入し(ステップS161)、方程式が成立するか否かによってKがE上の点であるか否かを判断する。例えば、楕円曲線Eの方程式が
E:y2+a1xy+a3y=x3+a2x2+a4x+a6
と定義されているとき、関数f(x,y)を
f(x,y)=x3+a2x2+a4x+a6−(y2+a1xy+a3y)
と定める。そして、K=(xK,yK)としたとき、Kを関数f(x,y)に代入した値f(xK,yK)を計算する。この結果、f(xK,yK)=0であれば、KはE上の点である。そして、KがE上の点でない場合(ステップS163:Noルート)、故障利用攻撃検知部107は、記憶装置101の攻撃判定フラグをONに設定し(ステップS165)、元の処理に戻る。一方、KがE上の点である場合(ステップS163:Yesルート)、故障利用攻撃検知部107は、図9の第3攻撃有無判定処理を実行し(ステップS167)、元の処理に戻る。
First, the failure use
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
このようにして、ICカード1の制御部111は、当該処理で設定された攻撃判定フラグを取得して、ONの場合は故障利用攻撃を受けたと判定し、OFFの場合は故障利用攻撃を受けていないと判定することができる。また、点Kが楕円曲線E上にあるか判断することで故障利用攻撃を検知した場合には、ペアリングによる攻撃有無判定処理を行う必要がなくなり、処理の効率が上がる。同時に、点Kが楕円曲線E上にあるかという検知手法と、ペアリングによる検知手法とを組み合わせることで、検知率を上げることができる。なお、本変形例の中ではステップS167(図10)において第3攻撃有無判定処理を行ったが、代わりに第2攻撃有無判定処理を実施してもよい。
In this way, the
[攻撃有無判定処理の変形例4]
攻撃有無判定処理のさらに別の変形例である第5攻撃有無判定処理を図11に示す。本変形例では、図6を用いて説明した第2攻撃有無判定処理の代わりに、第5攻撃有無判定処理を実施する。そして、第5攻撃有無判定処理では、ポイントハービング(Point Halving)アルゴリズムを利用して、変形ペアリング処理に必要な点の算出を行う。これにより、演算量をさらに削減することができる。但し、本変形例に用いられる有限体の要素数は2のべき乗個であり、かつ変数nに代入する自然数は2である必要がある。なお、本変形例では、公開情報記憶部103に、有限体GF(q)の要素数q(=2m)がすでに格納されているものとして説明する。また、本変形例において算出した値又は変数等に代入した値は、すべて記憶装置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
まず、ICカード1の故障利用攻撃検知部107は、固定値である2を変数nに代入し(ステップS171)、第2変形ペアリング処理を行う(ステップS173)。
First, the failure use
ここで、第2変形ペアリング処理を図12及び図13を用いて説明する。まず、故障利用攻撃検知部107は、繰り返し処理のためのカウンタであるjに初期値として1を代入する(ステップS181)。そして、故障利用攻撃検知部107は、公開情報記憶部103に格納されたqを用いて、qj−1がn(=2)で割り切れるか判断し、割り切れない場合(ステップS183:Noルート)、jにj+1を代入して(ステップS185)、ステップS183に戻る。一方、qj−1がn(=2)で割り切れる場合(ステップS183:Yesルート)、変数lにqjを代入する(ステップS187)。
Here, the second modified pairing process will be described with reference to FIGS. First, the failure use
次に、故障利用攻撃検知部107は、記憶装置101に格納されているC1、K(=[d]C1)及びn(=2)を用いて、点C1’=[1/n]C1=[1/2]C1及び点K’=[1/n]K=[1/2]Kを算出する(ステップS189)。この計算に、ポイントハービングアルゴリズムを利用する。
Then, fault
ポイントハービングとは、要素数が2mである有限体上に定義された楕円曲線上のある点Pに対して、P=[2]Q(つまりQ=[1/2]P)となる点Qを効率よく求める技術である。例えば、有限体GF(2m)上の楕円曲線Eを以下のように定めたとき、
E:y2+xy=x3+ax+b(但し、b≠0)
E上の点P=(xP、yP)から、点Q=[1/2]P=(xQ,yQ)を求めるアルゴリズムは、以下のようになる。
(1)方程式x2+x=xP+aを解き、解をkとする
(2)t=yP+xPkを算出する
(3)Tr(t)=0のとき、xQ=(t+xP)(1/2)、Tr(t)≠0のとき、xQ=t(1/2)を算出する
なお、Tr(t)=t+t2+t(2^2)+・・・+t{2^(m−1)}とする
(4)yQ=xQ 2+λxQを算出する
なお、Tr(t)=0のとき、λ=kとし、Tr(t)≠0のとき、λ=k+1とする
以上のような処理を実施することで、Q(xQ,yQ)を、より少ない演算量で求めることができる。
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.
次に、C1’=(xC1’,yC1’)、K’=(xK’,yK’)とすると、故障利用攻撃検知部107は、C1’及びK’のx座標及びy座標をそれぞれl乗した点σ(C1)=(xC1’ l,yC1’ l)及びσ(K’)=(xK’ l,yK’ l)を算出する(ステップS191)。そして、故障利用攻撃検知部107は、C1~=σ(C1’)−C1’及びK~=σ(K’)−K’を算出する(ステップS193)。本変形例では、このように算出したC1~及びK~を入力値とすることで、予め設定された自然数2を用いてペアリングの計算を行うことができる。
Next, assuming that C 1 ′ = (x C1 ′ , y C1 ′ ) and K ′ = (x K ′ , y K ′ ), the failure use
次に、故障利用攻撃検知部107は、記憶装置101に格納された点C1~、点K~を用いて、それぞれ関数fS導出処理を実行し、関数fC1~、関数fK~を求める。まず、故障利用攻撃検知部107は、記憶装置101に格納された点C1~を、変数である点Sに代入し(ステップS195)、関数fS導出処理を行う(ステップS197)。関数fS導出処理については、図4を用いて既に説明したので説明を省略する。次に、処理は端子Cを介して図13の処理に移行し、故障利用攻撃検知部107は、導出された関数fSを、関数fC1~に代入する(ステップS201)。
Next, the failure use
次に、故障利用攻撃検知部107は、点K~を点Sに代入し(ステップS203)、関数fS導出処理を実行する(ステップS205)。関数fS導出処理については、図4を用いて既に説明したので説明を省略する。そして、故障利用攻撃検知部107は、導出された関数fSを、関数fK~に代入する(ステップS207)。
Next, the failure use
次に、故障利用攻撃検知部107は、楕円曲線E上の点U及びVをランダムに選択し(ステップS209)、V+C1~及びU+K~を算出する(ステップS211)。ここで、V+C1~=∞又はU+K~=∞の場合(ステップS213:Noルート)、ステップS209へ戻り、点U及びVを選択し直す。一方、V+C1~≠∞かつU+K~≠∞の場合(ステップS213:Yesルート)、ステップS215へ移行する。
Next, the failure use
そして、故障利用攻撃検知部107は、記憶装置101に格納されている、関数fC1~、関数fK~、点U、V、V+C1~及びU+K~を用いて、ペアリングen(C1~,K~)の計算を行い(ステップS215)、元の処理に戻る。ペアリングの計算式については、先に述べた(1)式に従い、en(C1~,K~)=fC1~(V+C1~)/fC1~(V)・fK~(U)/fK~(U+K~)となり、この計算結果を{(q−1)/n}乗したものが出力値となる。このようにして第2変形ペアリング処理が行われる。
The fault
図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
このようにして、ICカード1の制御部111は、当該処理で設定された攻撃判定フラグを取得して、ONの場合は故障利用攻撃を受けたと判定し、OFFの場合は故障利用攻撃を受けていないと判定することができる。また、ポイントハービングアルゴリズムを利用することにより、変形ペアリング処理に必要な点を求める処理の演算量が削減できる。
In this way, the
[その他の変形例]
以上、本技術の実施の形態について説明したが、本技術はこれに限定されるものではない。例えば、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を用いてペアリング関数en(C1,K)又はen(C1~,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上の点C1と、スカラーdとに基づき、楕円曲線E上のスカラー倍点[d]C1を算出し、記憶装置に格納するスカラー倍演算ステップと、点C1とスカラー倍点[d]C1とを用いて楕円曲線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]C1の算出を誤り、C1と[d]C1がスカラー倍の関係にならない可能性がある。一方、ペアリング関数の性質である(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の故障利用攻撃検知ステップは、点C1’=[1/n]C1(nは任意の自然数)=(xC1’,yC1’)及び点[d]C1’=[1/n][d]C1=(x[d]C1’,y[d]C1’)を算出するステップと、点σ(C1’)=(xC1’ l,yC1’ l)(l=qm。qは有限体の要素数。mはqm−1がnで割り切れる最小の数)及び点σ([d]C1’)=(x[d]C1’ l,y[d]C1’ l)を算出するステップと、点C1~=σ(C1’)−C1’及び点[d]C1~=σ([d]C1’)−[d]C1’を算出するステップと、点C1~と点[d]C1~とを入力値として楕円曲線E上のペアリングを計算するステップとを含むようにしても良い。このようにペアリングの入力値となる点を変換することで、点C1及び[d]C1を入力値とした場合よりも、ペアリングの計算に必要な演算量を削減することができる。 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]C1が楕円曲線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であるときに、ポイントハービングアルゴリズムで、点C1’=[1/n]C1=(xC1’,yC1’)及び点[d]C1’=[1/n][d]C1=(x[d]C1’,y[d]C1’)を算出するステップを含むようにしても良い。これにより、点C1’及び点[d]C1’の算出に必要な演算量を削減することができる。 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上の点C1と、スカラーdとに基づき、前記楕円曲線E上のスカラー倍点[d]C1を算出するスカラー倍演算手段と、
前記点C1と前記スカラー倍点[d]C1とを用いて前記楕円曲線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の故障利用攻撃検知手段は、
点C1’=[1/n]C1(nは任意の自然数)=(xC1’,yC1’)
及び点[d]C1’=[1/n][d]C1=(x[d]C1’,y[d]C1’)を算出し、
点σ(C1’)=(xC1’ l,yC1’ l)(l=qm。qは有限体の要素数。mはqm−1がnで割り切れる最小の数)
及び点σ([d]C1’)=(x[d]C1’ l,y[d]C1’ l)を算出し、
点C1~=σ(C1’)−C1’
及び点[d]C1~=σ([d]C1’)−[d]C1’を算出し、
前記点C1~と前記点[d]C1~とを入力として前記楕円曲線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
(付記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
(付記4)
前記第1の故障利用攻撃検知手段が処理を行う前に、前記点[d]C1が前記楕円曲線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
(付記5)
前記第1の故障利用攻撃検知手段は、
前記qが2のべき乗であり、かつ前記任意の自然数nが2であるときに、
ポイントハービングアルゴリズムで、点C1’=[1/n]C1=(xC1’,yC1’)及び点[d]C1’=[1/n][d]C1=(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
(付記6)
コンピュータが、有限体上の楕円曲線Eと、前記楕円曲線E上の点C1と、スカラーdとに基づき、前記楕円曲線E上のスカラー倍点[d]C1を算出し、記憶装置に格納するスカラー倍演算ステップと、
前記コンピュータが、前記点C1と前記スカラー倍点[d]C1とを用いて前記楕円曲線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上の点C1と、スカラーdとに基づき、前記楕円曲線E上のスカラー倍点[d]C1を算出し、記憶装置に格納するスカラー倍演算ステップと、
前記点C1と前記スカラー倍点[d]C1とを用いて前記楕円曲線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.
1 ICカード 3 認証装置
101 記憶装置 103 公開情報記憶部
105 秘密鍵記憶部 107 故障利用攻撃検知部
109 復号化処理部 111制御部
113 通信部
301 記憶装置 303 公開情報記憶部
305 乱数生成部 307 認証処理部
309 暗号化処理部 311 制御部
313 通信部
1 IC Card 3
Claims (7)
前記点C1と前記スカラー倍点[d]C1とを用いて前記楕円曲線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.
点C1’=[1/n]C1(nは任意の自然数)=(xC1’,yC1’)
及び点[d]C1’=[1/n][d]C1=(x[d]C1’,y[d]C1’)を算出し、
点σ(C1’)=(xC1’ l,yC1’ l)(l=qm。qは有限体の要素数。mはqm−1がnで割り切れる最小の数)
及び点σ([d]C1’)=(x[d]C1’ l,y[d]C1’ l)を算出し、
点C1~=σ(C1’)−C1’
及び点[d]C1~=σ([d]C1’)−[d]C1’を算出し、
前記点C1~と前記点[d]C1~とを入力として前記楕円曲線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.
複数の前記自然数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乃至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.
前記qが2のべき乗であり、かつ前記任意の自然数nが2であるときに、
ポイントハービング(Point Halving)アルゴリズムで、点C1’=[1/n]C1=(xC1’,yC1’)及び点[d]C1’=[1/n][d]C1=(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.
前記コンピュータが、前記点C1と前記スカラー倍点[d]C1とを用いて前記楕円曲線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.
前記点C1と前記スカラー倍点[d]C1とを用いて前記楕円曲線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.
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)
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)
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 |
-
2008
- 2008-12-22 JP JP2008326100A patent/JP5272710B2/en not_active Expired - Fee Related
Patent Citations (3)
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)
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 |