JP2003255831A - Method and device for calculating elliptic curve scalar multiple - Google Patents

Method and device for calculating elliptic curve scalar multiple

Info

Publication number
JP2003255831A
JP2003255831A JP2002052897A JP2002052897A JP2003255831A JP 2003255831 A JP2003255831 A JP 2003255831A JP 2002052897 A JP2002052897 A JP 2002052897A JP 2002052897 A JP2002052897 A JP 2002052897A JP 2003255831 A JP2003255831 A JP 2003255831A
Authority
JP
Japan
Prior art keywords
elliptic curve
point
scalar
value
scalar multiplication
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.)
Pending
Application number
JP2002052897A
Other languages
Japanese (ja)
Inventor
Katsuyuki Okeya
勝幸 桶屋
Hideyuki Tanaka
英幸 田中
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2002052897A priority Critical patent/JP2003255831A/en
Publication of JP2003255831A publication Critical patent/JP2003255831A/en
Pending legal-status Critical Current

Links

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

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 provide an elliptic curve scalar multiple calculating method capable of preventing a side channel attack and a fault attack. <P>SOLUTION: In this scalar multiple calculating method for calculating a scalar multiple point from a scalar value and a point on an elliptic curve, a side channel attack is prevented by randomizing a given point and performing an elliptic curve calculation independent of a bit value in each bit of the scalar value. As for a fault attack, the fault attack is prevented by restoring the Y coordinate of the scalar multiple point and determining whether the scalar multiple point satisfies a definitional equation. <P>COPYRIGHT: (C)2003,JPO

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、セキュリティ技術
に係り、特に楕円曲線演算を用いたメッセージ処理方法
に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to security technology, and more particularly to a message processing method using elliptic curve calculation.

【0002】[0002]

【従来の技術】楕円曲線暗号は、N.Koblitz, V.S.Mille
rにより提案された公開鍵暗号の一種である。公開鍵暗
号には、公開鍵と呼ばれる一般に公開してよい情報と、
秘密鍵と呼ばれる秘匿しなければならない秘密情報があ
る。与えられたメッセージの暗号化や署名の検証には公
開鍵を用い、与えられたメッセージの復号化や署名の作
成には秘密鍵を用いる。
2. Description of the Related Art Elliptic curve cryptography is based on N. Koblitz, VSMille.
It is a type of public key cryptography proposed by r. Public key cryptography includes information called public key that may be disclosed to the public,
There is secret information that must be kept secret, called the private key. A public key is used for encryption of a given message and verification of a signature, and a private key is used for decryption of a given message and creation of a signature.

【0003】楕円曲線暗号における秘密鍵は、スカラー
値が担っている。また楕円曲線暗号の安全性は楕円曲線
上の離散対数問題の求解が困難であることに由来してい
る。楕円曲線上の離散対数問題とは、楕円曲線上のある
点Pとそのスカラー倍の点dPが与えられた時、スカラー
値dを求める問題である。
A scalar value is a secret key in the elliptic curve cryptography. The security of the elliptic curve cryptosystem is derived from the difficulty of solving the discrete logarithm problem on the elliptic curve. The discrete logarithm problem on an elliptic curve is a problem of obtaining a scalar value d when a certain point P on the elliptic curve and a point dP that is a scalar multiple thereof are given.

【0004】楕円曲線上の点とは、楕円曲線の定義方程
式をみたす数の組をいい、楕円曲線上の点全体には、無
限遠点という仮想的な点を単位元とした演算、すなわち
楕円曲線上の加法(乃至は加算)が定義される。そして
同じ点同士による楕円曲線上の加法のことを、特に楕円
曲線上の2倍算という。
A point on an elliptic curve is a set of numbers satisfying the defining equation of an elliptic curve. For all points on the elliptic curve, an operation is performed with an imaginary point of infinity as the unit element, that is, an ellipse. Addition (or addition) on the curve is defined. And the addition on the elliptic curve by the same points is called doubling especially on the elliptic curve.

【0005】楕円曲線上の2点の加法は次のようにして
計算される。2点を通る直線を引くとその直線は楕円曲
線と他の点において交わる。その交わった点とx軸に関
して対称な点を、加法を行った結果の点とする。例えば
モンゴメリ型楕円曲線の場合には、点(x1,y1)と点(x2,y
2)の加算(x3,y3)=(x1,y1)+(x2,y2)は、 x3=B((y2-y1)/(x2-x1))2-A-x1-x2 (式1) y3=((y2-y1)/(x2-x1))(x1-x3)-y1 (式2) を計算することにより得られる。ここでA,Bはモンゴメ
リ型楕円曲線の定義式 By2=x3+Ax2+x (式3) の係数である。
The addition of two points on the elliptic curve is calculated as follows. If you draw a straight line that passes through two points, the line intersects the elliptic curve at another point. A point that is symmetric with respect to the intersecting point with respect to the x axis is the point that is the result of the addition. For example, in the case of Montgomery elliptic curve, the point (x 1 , y 1 ) and the point (x 2 , y
2 ) addition (x 3 , y 3 ) = (x 1 , y 1 ) + (x 2 , y 2 ), x 3 = B ((y 2 -y 1 ) / (x 2 -x 1 )) 2 -Ax 1 -x 2 (Equation 1) y 3 = ((y 2 -y 1 ) / (x 2 -x 1 )) (x 1 -x 3 ) -y 1 (Equation 2) can get. Here, A and B are the coefficients of the definition formula By 2 = x 3 + Ax 2 + x (Formula 3) of the Montgomery-form elliptic curve.

【0006】楕円曲線上の点の2倍算は次のようにして
計算される。楕円曲線上の点における接線をひくと、そ
の接線は楕円曲線上の他の点において交わる。その交わ
った点とx座標に関して対称な点を、2倍算を行った結
果の点とする。ある点に対し特定の回数だけ加法を行う
ことをスカラー倍といい、その結果をスカラー倍点、そ
の回数のことをスカラー値という。
The doubling of the points on the elliptic curve is calculated as follows. If you draw a tangent at a point on an elliptic curve, the tangent intersects at another point on the elliptic curve. A point that is symmetric with respect to the intersecting point with respect to the x-coordinate is the point that is the result of doubling. The addition of a certain number of times to a certain point is called the scalar multiplication, the result is the scalar multiplication point, and the number of times is called the scalar value.

【0007】楕円曲線上の離散対数問題の求解の困難性
が理論的に確立されてきている一方で、実際の実装にお
いては秘密鍵等の秘密情報に関連する情報(計算時間や
電力消費量など)が暗号処理において漏洩する場合があ
り、その漏洩情報をもとに秘密情報を復元するといった
サイドチャネル攻撃という攻撃法が提案されている。
While the difficulty of solving a discrete logarithm problem on an elliptic curve has been theoretically established, in actual implementation, information related to secret information such as a secret key (calculation time, power consumption, etc.). ) May be leaked in cryptographic processing, and an attack method called side channel attack is proposed in which secret information is restored based on the leaked information.

【0008】楕円曲線暗号に対するサイドチャネル攻撃
が 文献1:J.Coron, Resistance against Differential P
ower Analysis for Elliptic Curve Cryptosystems, Cr
yptographic Hardware and Embedded Systems: Proceed
ings of CHES'99, LNCS 1717, Springer-Verlag, (199
9) pp.292-302. に記載されている。
A side channel attack on elliptic curve cryptography is described in Reference 1: J. Coron, Resistance against Differential P
ower Analysis for Elliptic Curve Cryptosystems, Cr
yptographic Hardware and Embedded Systems: Proceed
ings of CHES'99, LNCS 1717, Springer-Verlag, (199
9) It is described in pp.292-302.

【0009】また暗号処理実行中にメモリ等に保持され
ている値が不正な値となることや、CPUでの計算中に
計算間違いが発生すること、乃至は悪意ある攻撃者によ
り故意にエラーを引き起こさせられることなどにより、
エラーが発生した際の出力結果から秘密情報を推定する
といったフォールト攻撃という攻撃法が提案されてい
る。
Further, the value held in the memory or the like during the execution of the cryptographic processing becomes an illegal value, the calculation error occurs during the calculation by the CPU, or the error is intentionally made by a malicious attacker. By being caused,
An attack method called a fault attack has been proposed in which secret information is estimated from the output result when an error occurs.

【0010】楕円曲線暗号に対するフォールト攻撃が 文献2:I.Biehl, B.Meyer, V.Mueller, Differential
Fault Attacks on Elliptic Curve Cryptosystems, Adv
ances in Cryptology CRYPTO 2000, LNCS 1880,Spring
er-Verlag, (2000) pp.131-146. に記載されている。
A fault attack against elliptic curve cryptography is document 2: I. Biehl, B. Meyer, V. Mueller, Differential.
Fault Attacks on Elliptic Curve Cryptosystems, Adv
ances in Cryptology CRYPTO 2000, LNCS 1880, Spring
er-Verlag, (2000) pp.131-146.

【0011】楕円曲線暗号においては、与えられたメッ
セージの暗号化、復号化、署名の作成またはその検証
は、楕円曲線演算を用いて行う必要がある。特に楕円曲
線上のスカラー倍の計算は、秘密情報であるスカラー値
を用いた暗号処理において用いられる。
In elliptic curve cryptography, it is necessary to encrypt or decrypt a given message, create a signature, or verify it by using an elliptic curve operation. In particular, the calculation of the scalar multiplication on the elliptic curve is used in the cryptographic process using the scalar value which is the secret information.

【0012】楕円曲線暗号に対するサイドチャネル攻撃
の防御法が、 文献3:K.Okeya, K.Sakurai, Power Analysis Breaks
Elliptic Curve Cryptosystems even Secure Against t
he Timing Attack, Progress in Cryptology - INDOCRY
PT 2000, LNCS 1977, Springer-Verlag, (2000), pp.17
8-190. に記載されている。
A defense method against side channel attacks against elliptic curve cryptography is described in Reference 3: K.Okeya, K. Sakurai, Power Analysis Breaks.
Elliptic Curve Cryptosystems even Secure Against t
he Timing Attack, Progress in Cryptology-INDOCRY
PT 2000, LNCS 1977, Springer-Verlag, (2000), pp.17
It is described in 8-190.

【0013】モンゴメリ型楕円曲線を用いて行う楕円曲
線上のスカラー倍計算において、与えられた楕円曲線上
の点をランダム化することにより、サイドチャネル攻撃
を防ぐという方法が提案されている。
In a scalar multiplication calculation on an elliptic curve using a Montgomery type elliptic curve, a method has been proposed in which side channel attack is prevented by randomizing given points on the elliptic curve.

【0014】[0014]

【発明が解決しようとする課題】情報通信ネットワーク
の進展と共に電子情報に対する秘匿や認証のために暗号
技術は不可欠な要素となってきている。スマートカード
上で暗号技術を実装する場合、電力は外部より供給され
るため攻撃者が電力消費量を観測することができるの
で、サイドチャネル攻撃を防ぐ必要性がある。しかしな
がら磁力や電力により攻撃者が故意にエラーを発生させ
ることが可能なスマートカードや、大量の暗号処理を扱
うため暗号処理中にエラーの発生する確率が高くなると
想定されるサーバ等においては、フォールト攻撃につい
てもその攻撃にさらされる環境下にある。それゆえにサ
イドチャネル攻撃に加えフォールト攻撃をも防ぐ必要が
ある。
With the development of information and communication networks, cryptographic technology has become an essential element for concealing and authenticating electronic information. When implementing cryptographic technology on a smart card, it is necessary to prevent side-channel attacks because the power is supplied from the outside and an attacker can observe the power consumption. However, in a smart card where an attacker can intentionally generate an error due to magnetic force or power, or in a server, etc. where it is assumed that an error will occur during the encryption process due to handling a large amount of encryption process, a fault will occur. The attack is also under the environment that is exposed to the attack. Therefore, it is necessary to prevent fault attacks in addition to side channel attacks.

【0015】上記技術は、サイドチャネル攻撃を防ぐ方
法としては有効であるが、フォールト攻撃を防ぐという
点は考慮されていない。
The above technique is effective as a method for preventing side channel attacks, but no consideration is given to preventing fault attacks.

【0016】本発明の目的は、サイドチャネル攻撃及び
フォールト攻撃を防ぐことができる楕円曲線演算方法を
提供することにある。
An object of the present invention is to provide an elliptic curve calculation method capable of preventing side channel attacks and fault attacks.

【0017】本発明の他の目的は、上記楕円曲線演算方
法を用いた暗号化処理方法、復号化処理方法、署名作成
方法、署名検証方法を提供することにある。
Another object of the present invention is to provide an encryption processing method, a decryption processing method, a signature creation method, and a signature verification method using the above elliptic curve calculation method.

【0018】[0018]

【課題を解決するための手段】本発明は、楕円曲線演算
において、スカラー値と楕円曲線上の点からスカラー倍
点を計算するスカラー倍計算方法であって、楕円曲線上
の点が所定の定義方程式を満たすか否かを判定する第1
のステップと、楕円曲線上の点をランダム化する第2の
ステップと、スカラー値のビットの値を判定する第3の
ステップと、スカラー値のビットごとにそのビット値に
よらない同一種別の演算を行う第4のステップと、スカ
ラー値のすべてのビットについて第3のステップ及び第
4のステップを終了したとき、その演算の結果に基づい
て楕円曲線上の点の座標値を計算する第5のステップ
と、計算された座標値が上記の所定の定義方程式を満た
すか否かを判定する第6のステップとを有するスカラー
倍計算方法を特徴とする。
The present invention is a scalar multiplication calculation method for calculating a scalar multiplication point from a scalar value and a point on an elliptic curve in an elliptic curve calculation, and a point on the elliptic curve is defined by a predetermined definition. First to determine whether the equation is satisfied
, A second step of randomizing points on an elliptic curve, a third step of determining the value of a bit of a scalar value, and an operation of the same type that does not depend on the bit value for each bit of the scalar value And a fifth step of calculating the coordinate value of the point on the elliptic curve based on the result of the operation when the fourth step of performing the above and the third step and the fourth step for all bits of the scalar value are completed. It is characterized by a scalar multiplication calculation method having a step and a sixth step of judging whether or not the calculated coordinate value satisfies the above-mentioned predetermined defining equation.

【0019】[0019]

【発明の実施の形態】以下、本発明の実施例について図
面により説明する。
BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described below with reference to the drawings.

【0020】図1は、ネットワーク142によって接続さ
れた本発明による楕円曲線演算方法を適用したコンピュ
ータA101、コンピュータB121がネットワーク142によ
り接続されたシステム構成を示すものである。
FIG. 1 shows a system configuration in which a computer A101 and a computer B121, which are connected by a network 142 and to which the elliptic curve calculation method according to the present invention is applied, are connected by a network 142.

【0021】図1の暗号通信システムにおけるコンピュ
ータA101でメッセ―ジの暗号化を行うには、Pm+k(aQ)
及びkQを計算して出力し、コンピュータB121で暗号文
の復号化を行うには、秘密鍵a及びkQより-a(kQ)を計算
し、 (Pm+k(aQ))-a(kQ) (式4) を計算して出力すればよい。ここでPmはメッセージ、k
は乱数(整数)、aは秘密鍵を示す定数(整数)、Qは定
点、aQは公開鍵を示す点である。
To encrypt a message in the computer A101 in the encrypted communication system shown in FIG. 1, P m + k (aQ)
And kQ are calculated and output, and in order to decrypt the ciphertext by the computer B121, -a (kQ) is calculated from the secret keys a and kQ, and (P m + k (aQ))-a (kQ ) (Equation 4) should be calculated and output. Where P m is the message, k
Is a random number (integer), a is a constant (integer) indicating a secret key, Q is a fixed point, and aQ is a point indicating a public key.

【0022】ネットワーク142には、Pm+k(aQ),kQのみ送
信され、メッセージPmを復元するためには、kaQ、すな
わちkQのa倍を計算する必要がある。ところが秘密鍵aは
ネットワーク142には送信されないため、秘密鍵aを保持
しているものだけが、Pmを復元できることになる。
Only P m + k (aQ), kQ is transmitted to the network 142, and in order to recover the message P m , it is necessary to calculate kaQ, that is, a times kQ. However, since the private key a is not transmitted to the network 142, only the person holding the private key a can restore P m .

【0023】図1において、コンピュータA101は、C
PU113やコプロセッサ114などの演算装置、RAM10
3、ROM106や外部記憶装置107などの記憶装置、コン
ピュータ外部とのデータ入出力を行う入出力インタフェ
ース110を装備しており、外部にはコンピュータA101を
ユーザが操作するためのディスプレイ108、キーボード1
09、可搬型記憶媒体の読み書き装置などが接続されてい
る。
In FIG. 1, the computer A 101 is a C
Arithmetic unit such as PU113 or coprocessor 114, RAM10
3, a storage device such as the ROM 106 and the external storage device 107, and an input / output interface 110 for inputting / outputting data to / from the outside of the computer are provided, and a display 108 for operating the computer A 101 by the user and a keyboard 1 are provided outside.
09, portable storage media reading and writing device, etc. are connected.

【0024】更にコンピュータA101は、RAM103、R
OM106や外部記憶装置107などの記憶装置によって記憶
部102を実現し、CPU113やコプロセッサ114などの演
算装置が記憶部102に格納されたプログラムを実行する
ことによりデータ処理部112及びスカラー倍計算部115を
実現する。データ処理部112は、本実施形態においては
暗号化処理部として機能し、入力されたメッセージの暗
号化を行う。スカラー倍計算部115は、データ処理部112
で暗号化を行うのに必要なパラメタを計算する。記憶部
102は、定数103(例えば楕円曲線の定義式や楕円曲線上
の定点である)、秘密情報105(例えば秘密鍵である)
などを記憶している。
Further, the computer A101 has a RAM 103, R
The storage unit 102 is realized by a storage device such as the OM 106 or the external storage device 107, and the arithmetic unit such as the CPU 113 or the coprocessor 114 executes the program stored in the storage unit 102 so that the data processing unit 112 and the scalar multiplication unit. Achieve 115. The data processing unit 112 functions as an encryption processing unit in the present embodiment, and encrypts the input message. The scalar multiplication unit 115 includes a data processing unit 112.
Calculate the parameters required for encryption in. Memory
102 is a constant 103 (for example, a defining equation of an elliptic curve or a fixed point on the elliptic curve), secret information 105 (for example, a secret key)
Etc. are remembered.

【0025】コンピュータB121は、コンピュータA101
と同様のハードウェア構成を備える。更にコンピュータ
B121は、RAM103、ROM106や外部記憶装置107など
の記憶装置によって記憶部122を実現し、CPU113やコ
プロセッサ114などの演算装置が記憶部122に格納された
プログラムを実行することにより、データ処理部132及
びスカラー倍計算部135を実現する。
The computer B121 is the computer A101.
It has the same hardware configuration as. Further, the computer B121 realizes the storage unit 122 by a storage device such as the RAM103, the ROM106, or the external storage device 107, and the arithmetic unit such as the CPU 113 or the coprocessor 114 executes the program stored in the storage unit 122, thereby the data is stored. The processing unit 132 and the scalar multiplication unit 135 are realized.

【0026】データ処理部132は、本実施形態において
は復号化処理部として機能し、暗号化されたメッセージ
である暗号文141の復号化を行う。スカラー倍計算部135
は、データ処理部132で復号化を行うのに必要なパラメ
ータを計算する。記憶部122は、定数124(例えば楕円曲
線の定義式や楕円曲線上の定点である)、秘密情報125
(例えば秘密鍵である)などを記憶している。
The data processing unit 132 functions as a decryption processing unit in the present embodiment, and decrypts the ciphertext 141 which is an encrypted message. Scalar multiplication calculator 135
Calculates the parameters necessary for the data processing unit 132 to perform decoding. The storage unit 122 stores a constant 124 (for example, a defining equation of an elliptic curve or a fixed point on the elliptic curve) and secret information 125.
(For example, a secret key) is stored.

【0027】図2は、コンピュータA101の各処理部及
び記憶部が行う情報の受け渡しの様子を示したものであ
る。まずコンピュータA101が、入力されたメッセージ
を暗号化する場合の動作について説明する。メッセージ
はディジタル化されたデータであれば良く、テキスト、
画像、映像、音などの種類は問わない。データ処理部11
2は、入出力インタフェース110を介して平文の入力メッ
セージ204を受け取ると、入力された平文メッセージの
ビット長が予め定めたビット長か否かを判断する。予め
定めたビット長より長い場合には、予め定めたビット長
となるように平文メッセージを区切る。以下、所定のビ
ット長に区切られている部分メッセージ(単にメッセー
ジともいう)について説明する。
FIG. 2 shows how information is transferred between the processing units and the storage unit of the computer A101. First, the operation when the computer A 101 encrypts the input message will be described. The message may be digital data, text,
The type of image, video, sound, etc. does not matter. Data processing unit 11
When receiving the plaintext input message 204 via the input / output interface 110, the second device 2 judges whether the bit length of the input plaintext message is a predetermined bit length. When the bit length is longer than the predetermined bit length, the plaintext message is divided so as to have the predetermined bit length. Hereinafter, a partial message (also simply referred to as a message) divided into predetermined bit lengths will be described.

【0028】次にデータ処理部112は、メッセージのビ
ット列によって表される数値をx座標(x1)にもつ楕円曲
線上の点Pmのy座標の値(y1)を計算する。例えばモンゴ
メリ型楕円曲線は、B,Aはそれぞれ定数とするとき、 By1 2=x1 3+Ax1 2+x1 (式5) で表されるので、これよりy座標の値を求めることがで
きる。次にデータ処理部112は、乱数kを生成する。そし
て記憶部102に格納されている定数104から読み出した
(図2の205)公開鍵aQとQのx座標と、求めたy座標の値と
乱数kとをスカラー倍計算部115へ送る(図2の206)。
Next, the data processing unit 112 calculates the value (y 1 ) of the y coordinate of the point P m on the elliptic curve having the numerical value represented by the bit string of the message as the x coordinate (x 1 ). For example, a Montgomery-type elliptic curve is expressed by By 1 2 = x 1 3 + Ax 1 2 + x 1 (Equation 5), where B and A are constants, so obtain the y-coordinate value from this. You can Next, the data processing unit 112 generates a random number k. And read from the constant 104 stored in the storage unit 102
(205 in FIG. 2) The x-coordinates of the public keys aQ and Q, the calculated y-coordinate value, and the random number k are sent to the scalar multiplication unit 115 (206 in FIG. 2).

【0029】スカラー倍計算部115は、Qのx座標、y座標
の値、乱数kによるスカラー倍点(xd 1,yd1)=kQと、公開
鍵aQのx座標、y座標の値、乱数kによるスカラー倍点(x
d2,yd2)=k(aQ)とを計算し、計算されたスカラー倍点を
データ処理部112へ送る(図2の208)。もし計算中にエラ
ーが発生した場合は、「不正」を示す信号をデータ処理
部112へ送る(図2の207)。データ処理部112は、スカラ
ー倍計算部115より「不正」信号が送られてきた場合、
必要であれば記憶部102に格納されている定数104を再び
読み出し、再度公開鍵aQとQのx座標、y座標の値と乱数k
とをスカラー倍計算部115へ送る(図2の206)。
The scalar multiplication calculator 115 calculates the x-coordinate value and the y-coordinate value of Q, the scalar multiplication point (x d 1 , y d1 ) = kQ by the random number k, the x-coordinate value and the y-coordinate value of the public key aQ, Scalar double point (x
d2 , y d2 ) = k (aQ) is calculated, and the calculated scalar multiplication point is sent to the data processing unit 112 (208 in FIG. 2). If an error occurs during the calculation, a signal indicating "incorrect" is sent to the data processing unit 112 (207 in FIG. 2). When the data processing unit 112 receives the “illegal” signal from the scalar multiplication unit 115,
If necessary, the constant 104 stored in the storage unit 102 is read again, and the x-coordinate and y-coordinate values of the public keys aQ and Q and the random number k are read again.
And are sent to the scalar multiplication unit 115 (206 in FIG. 2).

【0030】データ処理部112は、スカラー倍計算部115
よりスカラー倍点が送られてきた場合、送られたスカラ
ー倍点を用いて暗号化処理を行う。例えばモンゴメリ型
の楕円曲線については、Pm+k(aQ)とkQを計算する。すな
わち、 xe1=B((yd1-y1)/(xd1-x1))2-A-x1-xd1, (式6) xe2=xd2 (式7) を計算し、暗号化されたメッセージxe1,xe2を得る。
The data processing unit 112 is a scalar multiplication calculation unit 115.
When more scalar multiples are sent, encryption processing is performed using the sent scalar multiples. For example, for a Montgomery elliptic curve, P m + k (aQ) and kQ are calculated. That is, x e1 = B ((y d1 -y 1 ) / (x d1 -x 1 )) 2 -Ax 1 -x d1 , (Equation 6) x e2 = x d2 (Equation 7) is calculated and encrypted. The received messages x e1 and x e2 .

【0031】コンピュータA101は、データ処理部112で
暗号化された1つ以上の部分メッセージから暗号化され
た出力メッセージ209を組み立てる。コンピュータA101
は、暗号化された出力メッセージ209をデータ141として
入出力インタフェース110より出力し、ネットワーク142
を介してコンピュータB121へ転送する。
The computer A 101 assembles the encrypted output message 209 from the one or more partial messages encrypted by the data processing unit 112. Computer A101
Outputs the encrypted output message 209 as data 141 from the input / output interface 110, and the network 142
To computer B121.

【0032】なお図2の記憶部102からの情報読み出し
は、スカラー計算部115へこの情報を送る前であれば入
力メッセージを受け付ける前であっても良い。
Information may be read from the storage unit 102 in FIG. 2 before the input message is received as long as the information is sent to the scalar calculation unit 115.

【0033】次にコンピュータB121が暗号化されたメ
ッセージ141を復号化する場合の動作について、図2を
参照しつつ説明する。ただしデータ処理部112をデータ
処理部132、スカラー計算部115をスカラー倍計算部13
5、記憶部102を記憶部122と読み替えるものとする。ま
た符号205では公開鍵の代わりに秘密鍵を読み出すもの
とする。
Next, the operation when the computer B 121 decrypts the encrypted message 141 will be described with reference to FIG. However, the data processing unit 112 is the data processing unit 132, and the scalar calculation unit 115 is the scalar multiplication calculation unit 13.
5, the storage unit 102 is read as the storage unit 122. Further, at 205, the secret key is read out instead of the public key.

【0034】データ処理部132は、入出力インタフェー
ス110を介して暗号化されたデータ141(図2の入力メッ
セージ204)が入力されると、入力された暗号化された
データ141のビット長が予め定めたビット長か否かを判
断する。予め定めたビット長より長い場合には、予め定
めたビット長となるように暗号化されたデータを区切
る。以下、所定のビット長に区切られている部分データ
(単にデータともいう)について説明する。
When the encrypted data 141 (input message 204 in FIG. 2) is input via the input / output interface 110, the data processing unit 132 determines the bit length of the input encrypted data 141 in advance. It is determined whether the bit length is the specified one. If the bit length is longer than the predetermined bit length, the encrypted data is divided so as to have the predetermined bit length. Hereinafter, partial data (also simply referred to as data) divided into predetermined bit lengths will be described.

【0035】データ141のビット列によって表される数
値をx座標にもつ楕円曲線上のy座標の値を計算する。暗
号化されたメッセージがxe1,xe2のビット列であり、モ
ンゴメリ型楕円曲線の場合、y座標の値(ye1)は Bye1 2=xe1 3+Axe1 2+xe1 (式8) から得ることができる(ただし、B,Aはそれぞれ定数で
ある)。
The value of the y coordinate on the elliptic curve having the numerical value represented by the bit string of the data 141 as the x coordinate is calculated. When the encrypted message is a bit string of x e1 , x e2 and is a Montgomery elliptic curve, the value of y coordinate (y e1 ) is By e1 2 = x e1 3 + Ax e1 2 + x e1 (Equation 8) (B and A are constants, respectively).

【0036】データ処理部132は、記憶部122に格納され
ている秘密情報125から読み出した(図2の205)秘密鍵a
と、x座標、y座標の値(xe1,ye1)を、スカラー倍計算部1
35へ送る(図2の206)。
The data processing unit 132 reads the secret key a read from the secret information 125 stored in the storage unit 122 (205 in FIG. 2).
And the x-coordinate and y-coordinate values (x e1 , y e1 ), scalar multiplication unit 1
Send to 35 (206 in FIG. 2).

【0037】スカラー倍計算部135は、x座標、y座標の
値、秘密情報125からスカラー倍点(x d3,yd3)=a(xe2,
ye2)を計算する。スカラー倍計算部135は、計算された
スカラー倍点をデータ処理部132へ送る(図2の207)。デ
ータ処理部132は、送られたスカラー倍点を用いて復号
化処理を行う。
The scalar multiplication calculator 135 calculates the x coordinate and the y coordinate.
Value, secret information 125 to scalar multiple ((x d3, yd3) = a (xe2,
ye2) Is calculated. Scalar multiple calculator 135 calculated
The scalar multiplication point is sent to the data processing unit 132 (207 in FIG. 2). De
The data processing unit 132 decodes using the sent scalar multiplication point.
Process.

【0038】例えば暗号化されたメッセージがxe1,xe2
のビット列であり、モンゴメリ型の楕円曲線の場合は、 (Pm+k(aQ))-a(kQ)=(xe1,ye1)-(xd3,yd3) を計算することにより達成する。すなわち、 xf1=B((ye1+yd3)/(xe1-xd3))2-A-xe1-xd3 (式9) を計算し、暗号化される前の部分メッセージx1に相当す
るxf1を得る。
For example, if the encrypted message is x e1 , x e2
For a Montgomery-form elliptic curve, it is achieved by calculating (P m + k (aQ))-a (kQ) = (x e1 , y e1 )-(x d3 , y d3 ). To do. That is, x f1 = B ((y e1 + y d3 ) / (x e1 -x d3 )) 2 -Ax e1 -x d3 (Equation 9) is calculated, and it is equivalent to the partial message x 1 before being encrypted. To get x f1 .

【0039】コンピュータB121は、データ処理部132で
復号化された部分メッセージから平文メッセージを組み
立て、入出力インタフェース110を介してディスプレイ1
08などへ出力する。
The computer B 121 assembles a plain text message from the partial messages decrypted by the data processing unit 132, and displays it via the input / output interface 110 on the display 1.
Output to 08 etc.

【0040】次にコンピュータB121が復号化処理を行
う場合のスカラー倍計算部135の処理を詳細に説明す
る。図3は、スカラー倍計算部135の機能ブロックを示
したものである。スカラー倍計算部135は、ランダム化
部302、加算部303、2倍算部304、ビット値判定部305、
繰り返し判定部306、定義方程式判定部307およびY座標
復元部308からなる。
Next, the processing of the scalar multiplication calculator 135 when the computer B121 performs the decoding processing will be described in detail. FIG. 3 shows functional blocks of the scalar multiplication unit 135. The scalar multiplication calculation unit 135 includes a randomization unit 302, an addition unit 303, a multiplication unit 304, a bit value determination unit 305,
It comprises an iterative determination section 306, a definition equation determination section 307, and a Y coordinate restoration section 308.

【0041】図4及び図5を用いてスカラー倍計算部13
5がスカラー値d及びモンゴメリ型楕円曲線上の点Pから
モンゴメリ型楕円曲線におけるスカラー倍点dPを計算す
る方法(第1の計算方法という)を説明する。スカラー倍
計算部135がデータ処理部132からスカラー値dと楕円曲
線上の点Pを受け取ると、定義方程式判定部307は、入力
された点Pが楕円曲線上にあるか否かを判定する。これ
は入力された点Pが楕円曲線の定義式(式3)を満たすか
どうかで判定する。満たす場合はステップ402へ、満た
さない場合はステップ524へ行く(401)。
Scalar multiplication calculator 13 using FIG. 4 and FIG.
5 describes a method (referred to as a first calculation method) of calculating the scalar multiplication point dP on the Montgomery-form elliptic curve from the scalar value d and the point P on the Montgomery-form elliptic curve. When the scalar multiplication unit 135 receives the scalar value d and the point P on the elliptic curve from the data processing unit 132, the defining equation determination unit 307 determines whether or not the input point P is on the elliptic curve. This is determined by whether or not the input point P satisfies the definition formula (formula 3) of the elliptic curve. If satisfied, go to step 402, and if not satisfied, go to step 524 (401).

【0042】ステップ401で満たす場合、ランダム化部3
02は、入力された楕円曲線上の点Pのランダム化を行
う。これはランダム化部302が次のような処理を行うこ
とにより達成される。乱数rを生成し(402)、点P=(x,
y)を射影座標においてランダム化された点をP=(rx,ry,
r)と表す(403)。次に変数Iに初期値1を代入する(40
4)。
If step 401 is satisfied, the randomizing unit 3
02 randomizes the input point P on the elliptic curve. This is achieved by the randomizing unit 302 performing the following processing. Generate a random number r (402), point P = (x,
y) is a randomized point in projective coordinates, P = (rx, ry,
r) (403). Next, assign the initial value 1 to the variable I (40
Four).

【0043】2倍算部304は、ランダム化された点Pの2
倍点2Pを、モンゴメリ型楕円曲線の射影座標における2
倍算の公式を用いて計算する(405)。モンゴメリ型楕
円曲線の射影座標における2倍算の公式は、 4X1Z1=(X1+Z1)2-(X1-Z1)2 (式10) X2=(X1+Z1)2(X1-Z1)2 (式11) Z2=(4X1Z1)((X1-Z1)2+((A+2)/4)(4X1Z1)) (式12) であり、Aは定数、X1,Z1,X2,Z2はそれぞれ点PのX座標、
Z座標、点2PのX座標、Z座標である。ランダム化された
点Pとステップ405で求めた点2Pからなる点の組(P,2P)を
m=1の点の組(mP,(m+1)P)として(mは自然数)、記憶部122
に一時的に格納する(406)。
The doubling unit 304 outputs 2 of the randomized points P.
The double point 2P is 2 in the projective coordinates of the Montgomery elliptic curve.
Calculate using the multiplication formula (405). The formula for doubling the projective coordinates of a Montgomery elliptic curve is 4X 1 Z 1 = (X 1 + Z 1 ) 2- (X 1 -Z 1 ) 2 (Equation 10) X 2 = (X 1 + Z 1 ) 2 (X 1 -Z 1 ) 2 (Equation 11) Z 2 = (4X 1 Z 1 ) ((X 1 -Z 1 ) 2 + ((A + 2) / 4) (4X 1 Z 1 )) ( Equation 12), where A is a constant, X 1 , Z 1 , X 2 and Z 2 are the X coordinates of the point P, respectively.
Z coordinate, X coordinate of point 2P, Z coordinate. Set the point pair (P, 2P) consisting of the randomized point P and the point 2P obtained in step 405.
As a set of points (mP, (m + 1) P) where m = 1 (m is a natural number), the storage unit 122
It is temporarily stored in (406).

【0044】繰り返し判定部306は、変数Iと記憶部122
から読み出したスカラー値dのビット長とが一致するか
どうかを判定する(411)。一致すればステップ521へ行
く。一致しなければステップ412へ行く。ステップ411で
一致しなかった場合は、変数Iを1増加させる(412)。
ビット値判定部305は、スカラー値dのI番目のビットの
値が0であるか1であるかを判定し、0であればステップ4
14へ、1であればステップ417へ行く(413)。
The repeat determination unit 306 is configured to store the variable I and the storage unit 122.
It is determined whether or not the bit length of the scalar value d read from is in agreement (411). If they match, go to step 521. If they do not match, go to step 412. If they do not match in step 411, the variable I is incremented by 1 (412).
The bit value determination unit 305 determines whether the value of the I-th bit of the scalar value d is 0 or 1, and if it is 0, the step 4
If it is 14 or 1, go to step 417 (413).

【0045】ステップ413でビットの値が0であった場
合、加算部303は、射影座標により表された点の組(mP,
(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pを、ランダ
ム化されていない点P=(x,y)を利用して行い、点(2m+1)P
を計算する(414)。これは、 X2m+1=[(Xm-Zm)(Xm+1+Zm+1)+(Xm+Zm)(Xm+1-Zm+1)]2, (式13) Z2m+1=x[(Xm-Zm)(Xm+1+Zm+1)-(Xm+Zm)(Xm+1-Zm+1)]2 (式14) を計算することにより達成される。ここでXm,Zm,Xm+1,Z
m+1,X2m+1,Z2m+1はそれぞれ点mPのX座標、Z座標、点(m+
1)PのX座標、Z座標、点(2m+1)PのX座標、Z座標である。
If the bit value is 0 in step 413, the adding unit 303 determines that the set of points (mP,
(m + 1) P), the addition of point mP and point (m + 1) P mP + (m + 1) P is performed using the non-randomized point P = (x, y). 2m + 1) P
Calculate (414). This is X 2m + 1 = [(X m -Z m ) (X m + 1 + Z m + 1 ) + (X m + Z m ) (X m + 1 -Z m + 1 )] 2 , ( Formula 13) Z 2m + 1 = x [(X m -Z m ) (X m + 1 + Z m + 1 )-(X m + Z m ) (X m + 1 -Z m + 1 )] 2 ( This is accomplished by calculating equation 14). Where X m , Z m , X m + 1 , Z
m + 1 , X 2m + 1 , Z 2m + 1 are the X coordinate, Z coordinate, point (m +
1) The X coordinate and Z coordinate of P, and the X coordinate and Z coordinate of the point (2m + 1) P.

【0046】2倍算部304は、射影座標で表された点の
組(mP,(m+1)P)から点mPの2倍算2(mP)を行い、点2mPを計
算する(415)。これは、 4XmZm=(Xm+Zm)2-(Xm-Zm)2 (式15) X2m=(Xm+Zm)2(Xm-Zm)2 (式16) Z2m=(4XmZm)((Xm-Zm)2+((A+2)/4)(4XmZm)) (式17) を計算することにより達成される。ここでAは定数、Xm,
Zm,X2m,Z2mはそれぞれ点mPのX座標、Z座標、点2mPのX座
標、Z座標である。ステップ415で求めた点2mPとステッ
プ414で求めた点(2m+1)Pからなる点の組(2mP,(2m+1)P)
を点の組(mP,(m+1)P)と置き換え、mに2mを代入し、ステ
ップ411へ戻る(416)。
The doubling unit 304 performs the doubling 2 (mP) of the point mP from the set of points (mP, (m + 1) P) represented by the projective coordinates to calculate the point 2mP (415 ). This is 4X m Z m = (X m + Z m ) 2- (X m -Z m ) 2 (Equation 15) X 2m = (X m + Z m ) 2 (X m -Z m ) 2 (Equation 16) Z 2m = (4X m Z m ) ((X m -Z m ) 2 + ((A + 2) / 4) (4X m Z m )) (Equation 17). Where A is a constant, X m ,
Z m , X 2m , Z 2m are the X coordinate and Z coordinate of the point mP, and the X coordinate and Z coordinate of the point 2mP, respectively. A set of points consisting of the point 2mP obtained in step 415 and the point (2m + 1) P obtained in step 414 (2mP, (2m + 1) P)
Is replaced with a set of points (mP, (m + 1) P), 2m is substituted for m, and the process returns to step 411 (416).

【0047】ステップ413でビットの値が1であった場
合、加算部303は、射影座標により表された点の組(mP,
(m+1)P)から点mPと点(m+1)Pの加算mP+(m+1)Pをランダム
化されていない点P=(x,y)を利用して行い、点(2m+1)Pを
計算する(417)。
If the bit value is 1 in step 413, the addition unit 303 determines that the set of points (mP,
(m + 1) P) from point mP and point (m + 1) P addition mP + (m + 1) P using non-randomized point P = (x, y). Calculate +1) P (417).

【0048】これは、 X2m+1=[(Xm-Zm)(Xm+1+Zm+1)+(Xm+Zm)(Xm+1-Zm+1)]2, (式18) Z2m+1=x[(Xm-Zm)(Xm+1+Zm+1)-(Xm+Zm)(Xm+1-Zm+1)]2 (式19) を計算することにより達成される。This is X 2m + 1 = [(X m -Z m ) (X m + 1 + Z m + 1 ) + (X m + Z m ) (X m + 1 -Z m + 1 )] 2 , (Formula 18) Z 2m + 1 = x [(X m -Z m ) (X m + 1 + Z m + 1 )-(X m + Z m ) (X m + 1 -Z m + 1 ) ] 2 (Equation 19) is achieved.

【0049】2倍算部304は、射影座標で表された点の
組(mP,(m+1)P)から点(m+1)Pの2倍算2((m+1)P)を行い、
点(2m+2)Pを計算する(418)。これは、 4Xm+1Zm+1=(Xm+1+Zm+1)2-(Xm+1-Zm+1)2 (式20) X2m+2=(Xm+1+Zm+1)2(Xm+1-Zm+1)2 (式21) Z2m+2=(4Xm+1Zm+1)((Xm+1-Zm+1)2+((A+2)/4)(4Xm+1Zm+1)) (式22) を計算することにより達成される。ここでAは定数、X
m+1,Zm+1,X2m+2,Z2m+2はそれぞれ点(m+1)PのX座標、Z座
標、点(2m+2)PのX座標、Z座標である。ステップ417で求
めた点(2m+1)Pとステップ418で求めた点(2m+2)Pからな
る点の組((2m+1)P,(2m+2)P)を、点の組(mP,(m+1)P)と置
き換え、mに2m+1を代入し、ステップ411へ戻る(41
9)。ここでステップ417〜419は、通常のアルゴリズム
とは異なり、ステップ414〜416と同一種別の演算を行っ
ている。
The doubling unit 304 doubles the point (m + 1) P from the set of points (mP, (m + 1) P) represented by projective coordinates to 2 ((m + 1) P). And then
The point (2m + 2) P is calculated (418). This is 4X m + 1 Z m + 1 = (X m + 1 + Z m + 1 ) 2- (X m + 1 -Z m + 1 ) 2 (Equation 20) X 2m + 2 = (X m + 1 + Z m + 1 ) 2 (X m + 1 -Z m + 1 ) 2 (Equation 21) Z 2m + 2 = (4X m + 1 Z m + 1 ) ((X m + 1 -Z m + 1 ) 2 + ((A + 2) / 4) (4X m + 1 Z m + 1 )) (Equation 22). Where A is a constant, X
m + 1 , Z m + 1 , X 2m + 2 , and Z 2m + 2 are the X coordinate and Z coordinate of the point (m + 1) P, and the X coordinate and Z coordinate of the point (2m + 2) P, respectively. A point set ((2m + 1) P, (2m + 2) P) consisting of the point (2m + 1) P obtained in step 417 and the point (2m + 2) P obtained in step 418 Replace with (mP, (m + 1) P), substitute 2m + 1 for m, and return to step 411 (41
9). Here, unlike the normal algorithm, steps 417 to 419 perform the same type of calculation as steps 414 to 416.

【0050】ステップ411で変数Iとスカラー値dのビッ
ト長とが一致した場合、Y座標復元部308は、点mPのY座
標Ymを復元する(521)。Y座標復元方法については、 文献4:K.Okeya, K.Sakurai, Efficient Elliptic Cur
ve Cryptosystems from a Scalar Multiplication Algo
rithm with Recovery of the y-Coordinate ona Montgo
mery-Form Elliptic Curve, Cryptographic Hardware a
nd Embedded Systems: Proceedings of CHES 2001, LNC
S 2162, Springer-Verlag, (2001) pp.126-141. に記載されている。
When the variable I and the bit length of the scalar value d match in step 411, the Y coordinate restoration unit 308 restores the Y coordinate Y m of the point mP (521). Regarding the Y coordinate restoration method, refer to Reference 4: K.Okeya, K. Sakurai, Efficient Elliptic Cur
ve Cryptosystems from a Scalar Multiplication Algo
rithm with Recovery of the y-Coordinate on a Montgo
mery-Form Elliptic Curve, Cryptographic Hardware a
nd Embedded Systems: Proceedings of CHES 2001, LNC
S 2162, Springer-Verlag, (2001) pp.126-141.

【0051】定義方程式判定部307は、点mPが楕円曲線
上にあるかを判定する。これは点mPが楕円曲線の定義式
(式3)を満たすかどうかで判定する。満たす場合はステ
ップ523へ、満たさない場合はステップ524へ行く(52
2)。ステップ522で満たす場合、射影座標で表された点
の組(mP,(m+1)P)から射影座標で表された点mP=(Xm,Ym,
Zm)をスカラー倍点dPとして復号化処理部132へ出力する
(523)。
The definition equation determination unit 307 determines whether the point mP is on the elliptic curve. This is the definition formula of the point mP of the elliptic curve
It is determined whether or not (Equation 3) is satisfied. If satisfied, go to step 523, and if not satisfied, go to step 524 (52
2). If the condition is satisfied in step 522, the point set in projective coordinates (mP, (m + 1) P) represents a point in projective coordinates mP = (X m , Y m ,
Z m ) is output as a scalar multiple dP to the decoding processing unit 132 (523).

【0052】ステップ401で満たさない場合、もしくは
ステップ522でみたさない場合、「不正」を示す信号を
復号化処理部132へ出力する(524)。
When the condition is not satisfied in step 401 or the condition is not satisfied in step 522, a signal indicating "incorrect" is output to the decoding processing unit 132 (524).

【0053】ここでスカラー倍点dPをアフィン座標等へ
座標を変換して出力してもよい。またワイエルシュトラ
ス型楕円曲線における座標に変換して出力してもよい。
Here, the scalar-multiplied point dP may be converted into affine coordinates or the like and output. Alternatively, the coordinates may be converted to the Weierstrass-form elliptic curve and output.

【0054】また上記手順により、mとスカラー値dはビ
ット長が等しくさらにそのビットのパターンも同じとな
るため等しくなる。そのため上記手順によりスカラー倍
dPが計算できていることになる。
According to the above procedure, m and the scalar value d are equal because the bit length is the same and the bit pattern is the same. Therefore, by the above procedure, the scalar multiplication
This means that dP can be calculated.

【0055】なおスカラー倍計算部135に入力される楕
円曲線上の点をモンゴメリ型楕円曲線上の点としたが、
ワイエルシュトラス型楕円曲線上の点であってもよい。
この場合は、ワイエルシュトラス型楕円曲線上の点をモ
ンゴメリ型楕円曲線上の点に変換して用いればよい。
The points on the elliptic curve input to the scalar multiplication calculator 135 are the points on the Montgomery type elliptic curve.
It may be a point on a Weierstrass-form elliptic curve.
In this case, points on the Weierstrass-form elliptic curve may be converted into points on the Montgomery-form elliptic curve before use.

【0056】上記方法は、サイドチャネル攻撃に対する
防御に関しても有効である。この理由は次の通りであ
る。ステップ403においてランダム化した点Pをそれ以降
のステップで用いている。ステップ414及びステップ417
はランダム化されていない点Pを用いるが、ステップ414
及びステップ417では、ランダム化された点Pから導出さ
れた点mP及び(m+1)Pと、ランダム化されていない点Pと
を用いて、演算を行い点(2m+1)Pを計算する。ステップ4
02の乱数生成で別の値が生成され、ステップ403でラン
ダム化された点Pの座標の値が異なれば、ステップ414及
びステップ417での点mP及び点(m+1)Pの座標の値が異な
り、それらの値を用いて計算される点(2m+1)Pの座標の
値も異なる。すなわち、同じスカラー値d及び点Pを与え
ても、その都度点(2m+1)Pの座標の値が変化する。
The above method is also effective for protection against side channel attacks. The reason for this is as follows. The point P randomized in step 403 is used in the subsequent steps. Step 414 and step 417
Uses the non-randomized point P, but step 414
And in step 417, the points mP and (m + 1) P derived from the randomized point P and the non-randomized point P are used to calculate the point (2m + 1) P. To do. Step 4
If another value is generated by the random number generation of 02 and the coordinate value of the point P randomized in step 403 is different, the coordinate value of the point mP and the point (m + 1) P in step 414 and step 417. , And the coordinate value of the point (2m + 1) P calculated using these values is also different. That is, even if the same scalar value d and point P are given, the coordinate value of the point (2m + 1) P changes each time.

【0057】さらにステップ413でのビットの値の判定
結果にかかわらず同一の計算手順を踏むため、計算の実
行順序とビットの値との間に依存関係がないことが分か
る。
Further, since the same calculation procedure is performed regardless of the result of determination of the bit value in step 413, it can be seen that there is no dependency between the execution order of calculation and the bit value.

【0058】この計算方法を実装する際には、ステップ
413以降の処理について同じプログラムまたは処理回路
をビット値に係わらず共有するように作成しても構わな
い。
When implementing this calculation method, the steps are:
It is also possible to create the same program or processing circuit for processing after 413 regardless of the bit value.

【0059】以上の通り、上記第1の計算方法は、サイ
ドチャネル攻撃に有用な情報を与えないので、サイドチ
ャネル攻撃に対して耐性がある。また用いている楕円曲
線の性質により、高速に計算できるという特徴がある。
As described above, the first calculation method does not give useful information to the side channel attack, and is therefore resistant to the side channel attack. Also, there is a feature that it can be calculated at high speed depending on the property of the elliptic curve used.

【0060】また上記方法は、フォールト攻撃に対する
防御に関しても有効である。この理由は次の通りであ
る。まずスカラー倍計算部202に入力される楕円曲線上
の点Pとして不正な値が与えられたとすると、ステップ4
01において点Pが楕円曲線の定義式(式3)をみたさない
と判定され、その結果ステップ524で「不正」を出力す
る。次に計算途中に楕円曲線上の任意の点の値が不正な
値となった場合、ステップ524で「不正」を出力する。
このことを示す。
The above method is also effective for protection against a fault attack. The reason for this is as follows. First, if an incorrect value is given as the point P on the elliptic curve input to the scalar multiplication unit 202, step 4
In 01, it is determined that the point P does not satisfy the definition formula (formula 3) of the elliptic curve, and as a result, "illegal" is output in step 524. Next, if the value of any point on the elliptic curve becomes an incorrect value during the calculation, "incorrect" is output in step 524.
This is shown.

【0061】ステップ402-419で点mPもしくは(m+1)Pの
値が不正な値になったとする。その場合、次にくるステ
ップ411で点mPもしくは点(m+1)Pの値が不正となる。ス
テップ411で点mPもしくは点(m+1)Pの値が不正であり、I
とスカラー値のビット長が等しくないと判定される場
合、その次にくるステップ411でも点mPもしくは点(m+1)
Pの値も不正となる。ステップ411で点mPの値が不正であ
り、Iとスカラー値のビット長が等しいと判定される場
合、ステップ522で点mPは定義方程式(式3)を満たさな
いと判定され、ステップ524で「不正」を出力する。今
度はステップ411で点mPの値が正しく、点(m+1)Pの値が
不正であり、Iとスカラー値のビット長が等しいと判定
される場合について考察する。ステップ521で点mPのY座
標復元を行う。その際点(m+1)Pの値を用いるので、復元
されたY座標の値は不正な値となる。したがってステッ
プ522で点mPは定義方程式(式3)を満たさないと判定さ
れ、ステップ524で「不正」を出力する。
It is assumed that the value of the point mP or (m + 1) P becomes an incorrect value in steps 402-419. In that case, the value of the point mP or the point (m + 1) P is incorrect in the next step 411. In step 411, the value of point mP or point (m + 1) P is invalid, and I
If it is determined that the bit lengths of the scalar value are not equal to the point mP or the point (m + 1) in the next step 411.
The value of P is also invalid. When the value of the point mP is incorrect in step 411 and it is determined that the bit lengths of I and the scalar value are equal, it is determined in step 522 that the point mP does not satisfy the defining equation (Equation 3), and in step 524, “ Illegal "is output. Now, consider the case where it is determined in step 411 that the value of the point mP is correct, the value of the point (m + 1) P is incorrect, and the bit lengths of I and the scalar value are equal. In step 521, the Y coordinate of the point mP is restored. At that time, since the value of the point (m + 1) P is used, the restored Y coordinate value becomes an incorrect value. Therefore, in step 522, it is determined that the point mP does not satisfy the defining equation (Equation 3), and in step 524, "incorrect" is output.

【0062】最後に点Pとして正しい値が入力され、計
算途中で不正な値となることが起こらなかった場合、す
なわち常に正しい値であった場合、ステップ522で点mP
は定義方程式(式3)を満たす。
Finally, when a correct value is input as the point P and an incorrect value does not occur during the calculation, that is, when it is always a correct value, the point mP is determined in step 522.
Satisfies the defining equation (Equation 3).

【0063】以上の通り、上記第1の計算方法は、フォ
ールト攻撃に有用な情報を与えないので、フォールト攻
撃に対して耐性がある。
As described above, the first calculation method does not give useful information to the fault attack, and is therefore resistant to the fault attack.

【0064】なお第1の計算方法では楕円曲線として、
モンゴメリ型楕円曲線を用いたが、標数2の有限体上定
義された楕円曲線を用いてもよいし、OEF(Optimal E
xtension Field)上で定義された楕円曲線を用いてもよ
い。OEFについては、 文献5:D.V.Bailey, C.Paar, Optimal Extension Fiel
ds for Fast Arithmeticin Public-Key Algorithms, Ad
vances in Cryptology CRYPTO '98, LNCS 1462, Sprin
ger-Verlag, (1998), pp.472-485. に記載されている。
In the first calculation method, as an elliptic curve,
Although the Montgomery type elliptic curve is used, an elliptic curve defined on a finite field with characteristic 2 may be used, or OEF (Optimal E
The elliptic curve defined in (xtension Field) may be used. Regarding OEF, Reference 5: DVBailey, C.Paar, Optimal Extension Fiel
ds for Fast Arithmeticin Public-Key Algorithms, Ad
vances in Cryptology CRYPTO '98, LNCS 1462, Sprin
ger-Verlag, (1998), pp.472-485.

【0065】以上、コンピュータB121が暗号化された
データ141を復号化する場合のスカラー倍計算部135の動
作を説明したが、コンピュータA101が入力メッセージ
を暗号化する場合も同様である。
The operation of the scalar multiplication unit 135 when the computer B 121 decrypts the encrypted data 141 has been described above, but the same applies when the computer A 101 encrypts the input message.

【0066】その場合には、コンピュータA101のスカ
ラー倍計算部115は、既に説明した楕円曲線上の点Q、乱
数kによるスカラー倍点kQと、公開鍵aQと乱数kによるス
カラー倍点k(aQ)を出力する。このとき第1の計算方法
で説明したスカラー値dを乱数k、楕円曲線上の点Pを楕
円曲線上の点Q、公開鍵aQとして同様の処理を行うこと
により、それぞれのスカラー倍点を求めることができ
る。
In this case, the scalar multiplication unit 115 of the computer A 101 uses the point Q on the elliptic curve, the scalar multiplication point kQ based on the random number k, and the scalar multiplication point k (aQ based on the public key aQ and the random number k as described above. ) Is output. At this time, the scalar value d described in the first calculation method is used as the random number k, the point P on the elliptic curve is the point Q on the elliptic curve, and the same process is performed using the public key aQ to obtain the respective scalar multiplication points. be able to.

【0067】次に図6を用いて、スカラー倍計算部135
が実ビット長Lのスカラー値d及びモンゴメリ型楕円曲線
上の点Pから、モンゴメリ型楕円曲線におけるスカラー
倍点dPを計算する方法(第2の計算方法という)を説明す
る。ここで実ビット長とは、スカラー値dの格納されて
いる領域(メモリ、レジスタなど)のビット数であり、実
ビット長≧スカラー値のビット長である。そのため最上
位ビットは1でなくてもよい。
Next, referring to FIG. 6, the scalar multiplication unit 135
A method for calculating a scalar multiple point dP on a Montgomery-form elliptic curve from a scalar value d having a real bit length L and a point P on the Montgomery-form elliptic curve (referred to as a second calculation method) will be described. Here, the actual bit length is the number of bits in the area (memory, register, etc.) in which the scalar value d is stored, and the actual bit length ≧ the scalar value bit length. Therefore, the most significant bit does not have to be 1.

【0068】この方法では、計算ステップと掛かる時間
とがスカラー値dにかかわらず一定になるように構成し
ている。これにより上記攻撃法に対して有用な情報を与
えず、耐性を備えるようにしている。
In this method, the calculation step and the time required are constant regardless of the scalar value d. As a result, useful information is not given to the above-mentioned attack method and resistance is provided.

【0069】スカラー倍計算部135がデータ処理部132か
ら楕円曲線上の点Pとスカラー値dを受け取ると、スカラ
ー値dが0であるかどうかを判定し、0であれば無限遠点
を出力し終了する。スカラー値dが0でなければ、処理を
続ける(601)。定義方程式判定部307は、入力された点
Pが楕円曲線上にあるかを判定する。これは入力された
点Pが楕円曲線の定義式(式3)を満たすかどうかで判定
する。満たす場合はステップ603へ、満たさない場合は
ステップ617へ行く(602)。ランダム化部302は、入力
された楕円曲線上の点Pのランダム化を行う。すなわち
乱数rを生成し(603)、ランダム化した点Pを射影座標
において、(rx,ry,r)と表す(604)。
When the scalar multiplication calculator 135 receives the point P on the elliptic curve and the scalar value d from the data processor 132, it determines whether the scalar value d is 0, and outputs an infinity point if 0. And finish. If the scalar value d is not 0, the processing is continued (601). The definition equation determination unit 307 determines the input point
Determine if P is on an elliptic curve. This is determined by whether or not the input point P satisfies the definition formula (formula 3) of the elliptic curve. If satisfied, go to step 603, and if not satisfied, go to step 617 (602). The randomizing unit 302 randomizes the input point P on the elliptic curve. That is, a random number r is generated (603), and the randomized point P is represented as (rx, ry, r) in projective coordinates (604).

【0070】次に楕円曲線上の不定点T0,0,T0,1,T1,0,T
1,1の初期化を行う。T0,0にはステップ604でランダム化
された点Pを、T1,0にはT0,0を、T0,1にはステップ604で
ランダム化された点Pの2倍点2Pを、T1,1にはT0,1を、
それぞれ代入する。ランダム化された点Pの2倍点2Pの
計算には、モンゴメリ型楕円曲線の射影座標における2
倍算の公式(式10、式11、式12)を用いて計算す
る(605)。
Next, indefinite points T 0,0 , T 0,1 , T 1,0 , T on the elliptic curve
Initialize 1,1 . T 0,0 is the point P randomized in step 604, T 1,0 is T 0,0 , and T 0,1 is the double point 2P of the point P randomized in step 604. , T 1,1 is T 0,1 ,
Substitute each. To calculate the double point 2P of the randomized point P, 2 in the projective coordinates of the Montgomery elliptic curve is used.
Calculation is performed using the multiplication formula (Equation 10, Equation 11, Equation 12) (605).

【0071】次に変数sに初期値0を代入する(606)。
変数iに初期値L-1を代入する(607)。繰り返し判定部3
06は、変数iが0以上であるかどうかを判定する。0以上
のときはステップ609へ、0未満のときはステップ614へ
行く(608)。楕円曲線上の不定点Tに点Ts,diを代入す
る(609)。diは、スカラー値dをd=Σdj2j,dj∈d{0,1},j
は0からL-1を動く、と表した時の、j=iの時のビットdi
である。2倍算部304は、射影座標で表された点Tの2倍
算2(T)を行い、点2Tを点Ts,diに格納する(610)。加算
部303は射影座標により表された点Tと射影座標により表
された点Ts,1-diとの加算をランダム化されていない点T
=(x,y)を用いて行い、その結果を点Ts,1-diに格納する
(611)。次にsとdiとの論理和をとり、その結果をsに
格納する(612)。次に変数iを1減少させる(613)。
Next, the initial value 0 is assigned to the variable s (606).
The initial value L-1 is assigned to the variable i (607). Repeat determination unit 3
06 determines whether the variable i is 0 or more. If it is 0 or more, go to step 609, and if it is less than 0, go to step 614 (608). Substitute the point T s, di for the indefinite point T on the elliptic curve (609). d i is the scalar value d d = Σd j 2 j , d j ∈ d {0,1}, j
Bit d i when j = i when expressing that moves from 0 to L-1
Is. The doubling unit 304 performs doubling 2 (T) on the point T represented by the projective coordinates, and stores the point 2T in the point T s, di (610). The addition unit 303 adds a point T represented by projective coordinates and a point T s, 1-di represented by projective coordinates to a point T that is not randomized.
= (x, y) and store the result at the point T s, 1-di (611). Next, the logical sum of s and d i is taken and the result is stored in s (612). Next, the variable i is decreased by 1 (613).

【0072】ステップ608でi<0の場合、Y座標復元部308
は、点T0,0及び点T1,0のY座標を復元する(614)。Y座
標復元方法については、文献4に記載されている。定義
方程式判定部307は、点T0,0及び点T1,0が楕円曲線上に
あるかを判定する。これは点T 0,0及び点T1,0が楕円曲線
上の定義式(式3)を満たすかどうかで判定する。ともに
満たす場合はステップ616へ、いずれか一方が満たさな
い場合はステップ617へ行く(615)。ステップ615でと
もに満たす場合、射影座標で表された点T1,0をスカラー
倍点dPとして復号化処理部132へ出力する(616)。ここ
でアフィン座標等へ座標を変換して出力してもよい。ま
たワイエルシュトラス型楕円曲線における座標に変換し
て出力してもよい。ステップ602で満たさない場合、も
しくはステップ615でいずれか一方が満たさない場合、
「不正」を示す信号をデータ処理部132へ出力する(61
7)。
If i <0 in step 608, the Y coordinate restoration unit 308
Is the point T0,0And point T1,0Restore the Y coordinate of (614). Y seat
The standard restoration method is described in Reference 4. Definition
The equation determination unit 307 determines that the point T0,0And point T1,0On the elliptic curve
Determine if there is. This is point T 0,0And point T1,0Is an elliptic curve
Judgment is made based on whether or not the above defined expression (Expression 3) is satisfied. Together
If yes, go to step 616, either one does not
If not, go to step 617 (615). In step 615 and
The point T in projective coordinates if1,0A scalar
It is output to the decoding processing unit 132 as the double point dP (616). here
The coordinates may be converted into affine coordinates or the like and output. Well
Converted to coordinates on a Weierstrass-form elliptic curve
May be output. If step 602 is not met,
Or, if either one is not met in step 615,
A signal indicating “illegal” is output to the data processing unit 132 (61
7).

【0073】なおスカラー倍計算部202に入力される楕
円曲線上の点をモンゴメリ型楕円曲線上の点としたが、
ワイエルシュトラス型楕円曲線上の点であってもよい。
この場合は、ワイエルシュトラス型楕円曲線上の点をモ
ンゴメリ型楕円曲線上の点に変換して用いればよい。
The points on the elliptic curve input to the scalar multiplication unit 202 are the points on the Montgomery type elliptic curve.
It may be a point on a Weierstrass-form elliptic curve.
In this case, points on the Weierstrass-form elliptic curve may be converted into points on the Montgomery-form elliptic curve before use.

【0074】上記第2の計算方法も、サイドチャネル攻
撃に対する防御に関して有効である。この理由は次の通
りである。ステップ604においてランダム化した点Pをそ
れ以降のステップで用いている。ステップ611はランダ
ム化されていない点Pを用いるが、ステップ611では、ラ
ンダム化された点Pから導出された点T及び点Ts,1-di
ランダム化されてない点Pを用いてT+Ts,1-diを計算す
る。ステップ603の乱数生成で別の値が生成され、ステ
ップ604でランダム化された点Pの座標の値が異なれば、
ステップ611でのT及びTs,1-diの座標の値が異なり、そ
れらの値を用いて計算されるT+Ts,1-diの座標の値も異
なる。すなわち同じスカラー値d及び点Pを与えても、そ
のつどT+Ts,1-diの座標の値が変化する。さらに各ビッ
トdiの値にかかわらず、同一の計算手順を踏むため、計
算の実行順序とビットの値との間に依存関係がない。そ
のうえステップ608〜ステップ613の繰り返し回数はdの
ビット長に依存せずに、必ずL回となるため、dのビット
長にも依存しない。
The above second calculation method is also effective for protection against side channel attacks. The reason for this is as follows. The point P randomized in step 604 is used in the subsequent steps. In step 611, the non-randomized point P is used, but in step 611, the point T and the point T s, 1-di derived from the randomized point P and the non-randomized point P are used. Calculate + T s, 1-di . If another value is generated by the random number generation in step 603 and the coordinate value of the point P randomized in step 604 is different,
The coordinate values of T and T s, 1-di in step 611 are different, and the coordinate values of T + T s, 1-di calculated using these values are also different. That is, even if the same scalar value d and point P are given, the coordinate value of T + T s, 1-di changes each time. Further, since the same calculation procedure is performed regardless of the value of each bit di, there is no dependency between the execution order of calculation and the value of the bit. Moreover, the number of repetitions of steps 608 to 613 does not depend on the bit length of d, and is always L times, and therefore does not depend on the bit length of d.

【0075】なおステップ606において、sにビットdL-1
を代入し、ステップ607において、IにL-2を代入しても
よい。これによりスカラー値dの最上位ビットdL-1が1で
ある場合にダミー演算が発生しない。すなわち、s=0, i
=L-1 の時に行っていたステップ608〜613の最初の繰り
返しを行わなくてもよくなり、さらなる高速化が可能に
なる。
In step 606, bit d L-1 is added to s.
May be substituted, and in step 607, L-2 may be substituted for I. As a result, the dummy operation does not occur when the most significant bit d L-1 of the scalar value d is 1. That is, s = 0, i
Since it is not necessary to perform the first iteration of steps 608 to 613 that was performed when = L-1, further speedup is possible.

【0076】以上の通り、上記の第2の計算方法は、サ
イドチャネル攻撃に有用な情報を与えないので、サイド
チャネル攻撃に対して耐性がある。
As described above, the above second calculation method does not give useful information to the side channel attack, and is therefore resistant to the side channel attack.

【0077】また上記第2の計算方法も、フォールト攻
撃に対する防御に関しても有効である。この理由は次の
通りである。まずスカラー倍計算部202に入力される楕
円曲線上の点Pとして不正な値が与えられたとすると、
ステップ602において点Pが楕円曲線の定義式(式3)を満
たさないと判定され、その結果ステップ617で「不正」
を出力する。
The second calculation method described above is also effective for protection against a fault attack. The reason for this is as follows. First, if an incorrect value is given as the point P on the elliptic curve input to the scalar multiplication unit 202,
In step 602, it is determined that the point P does not satisfy the definition formula (formula 3) of the elliptic curve, and as a result, in step 617, “illegal”
Is output.

【0078】次に計算途中に楕円曲線上の任意の点の値
が不正な値となった場合、ステップ617で「不正」を出
力する。このことを示す。ステップ603-613で点T0,0, T
0,1,T1,0, T1,1のいずれかの値が不正な値になったとす
る。その場合、次にくるステップ608で点T0,0, T0,1, T
1,0, T1,1のいずれかの値が不正となる。ステップ608で
点T0,0, T0,1, T1,0, T1,1のいずれかの値が不正であ
り、Iとスカラー値のビット長が等しくないと判定され
る場合、その次にくるステップ608でも点T0,0, T 0,1, T
1,0, T1,1のいずれかの値も不正となる。ステップ608で
点T0,0乃至は点T1 ,0の値が不正であり、Iとスカラー値
のビット長が等しいと判定される場合、ステップ615で
点T0,0乃至は点T1,0は定義方程式(式3)を満たさないと
判定され、ステップ617で「不正」を出力する。今度は
ステップ608で点T0,0, T1,0, T1,1の値が正しく、点T
0,1の値が不正であり、Iとスカラー値のビット長が等し
いと判定される場合について考察する。ステップ614で
点T0,0のY座標復元を行う。その際点T0,1の値を用いる
ので、復元されたY座標の値は不正な値となる。したが
ってステップ615で点T0,0は定義方程式(式3)をみたさ
ないと判定され、ステップ617で「不正」を出力する。
ステップ608で点T0,0, T0,1, T1,0の値が正しく、点T
1,1の値が不正であり、Iとスカラー値のビット長が等し
いと判定される場合についても同様である。
Next, the value of an arbitrary point on the elliptic curve is calculated during calculation.
If is an illegal value, “Illegal” is output in step 617.
Force This is shown. Point T at steps 603-6130,0, T
0,1, T1,0, T1,1If any of the values of
It In that case, point T at the next step 608.0,0, T0,1, T
1,0, T1,1Either value of is invalid. In step 608
Point T0,0, T0,1, T1,0, T1,1One of the values is incorrect
It is determined that the bit lengths of I and the scalar value are not equal.
If it does, the point T is also applied in the next step 608.0,0, T 0,1, T
1,0, T1,1Any value of is also invalid. In step 608
Point T0,0Or point T1 , 0The value of is incorrect and I and a scalar value
If it is determined that the bit lengths of
Point T0,0Or point T1,0Must satisfy the defining equation (Equation 3)
The determination is made, and “illegal” is output in step 617. Next time
Point T at step 6080,0, T1,0, T1,1Is correct, the point T
0,1The value of is invalid and the bit lengths of I and the scalar value are equal.
Consider the case where it is determined to be no. In step 614
Point T0,0Restore Y coordinate of. At that point T0,1Use the value of
Therefore, the restored Y-coordinate value is incorrect. But
So point T in step 6150,0Is the definition equation (Equation 3)
It is determined that there is no such error, and "illegal" is output in step 617.
Point T at step 6080,0, T0,1, T1,0Is correct, the point T
1,1The value of is invalid and the bit lengths of I and the scalar value are equal.
The same is true when it is determined to be yes.

【0079】最後に点Pとして正しい値が入力され、計
算途中で不正な値となることが起こらなかった場合、す
なわち常に正しい値であった場合、ステップ615で点T
0,0及び点T1,0は定義方程式(式3)を満たす。
Finally, if a correct value is input as the point P and it does not become an incorrect value during the calculation, that is, if it is always a correct value, the point T is calculated in step 615.
The 0,0 and the point T 1,0 satisfy the defining equation (Equation 3).

【0080】以上の通り、上記第2の計算方法は、フォ
ールト攻撃に有用な情報を与えないので、フォールト攻
撃に対して耐性がある。
As described above, since the second calculation method does not give useful information to the fault attack, it is resistant to the fault attack.

【0081】なお第2の計算方法では楕円曲線として、
モンゴメリ型楕円曲線を用いたが、標数2の有限体上定
義された楕円曲線を用いてもよいし、OEF(Optimal E
xtension Field)上定義された楕円曲線を用いてもよ
い。OEFについては、文献5に記載されている。
In the second calculation method, as an elliptic curve,
Although the Montgomery type elliptic curve is used, an elliptic curve defined on a finite field with characteristic 2 may be used, or OEF (Optimal E
An elliptic curve defined in (xtension Field) may be used. OEF is described in Reference 5.

【0082】次に本発明を署名検証システムに適用する
例について図7と図2を用いて説明する。図7の署名検
証システムは、スマートカード701と署名検証処理を行
うコンピュータ721とから成る。
Next, an example in which the present invention is applied to a signature verification system will be described with reference to FIGS. 7 and 2. The signature verification system of FIG. 7 includes a smart card 701 and a computer 721 that performs signature verification processing.

【0083】スマートカード701は、機能としてはコン
ピュータA101と類似の構成を備え、CPU713やコプロ
セッサ714などの演算装置を備えているが、記憶部702に
格納されているプログラムによってデータ処理部112で
はなく署名生成処理部712を実現する。また外部記憶装
置、ディスプレイおよびキーボードを備えない。
The smart card 701 has a configuration similar to that of the computer A 101 in function, and includes arithmetic units such as a CPU 713 and a coprocessor 714. However, the data processing unit 112 uses a program stored in the storage unit 702. And implements the signature generation processing unit 712. It also has no external storage, display or keyboard.

【0084】コンピュータ721は、コンピュータB121と
同様の構成を備えるが、記憶部722に格納されるプログ
ラムによってデータ処理部112ではなく署名検証処理部7
32を実現する。
The computer 721 has the same configuration as that of the computer B121, but the signature verification processing unit 7 is used instead of the data processing unit 112 by the program stored in the storage unit 722.
Achieve 32.

【0085】スカラー倍計算部715と735は、各々図1に
示すスカラー倍計算部115または135と同様の機能を備え
る。図6の署名検証システムにおける署名作成と署名検
証動作について図2を参照して説明する。ただしデータ
処理部112を署名生成処理部712、スカラー計算部115を
スカラー倍計算部715、記憶部102を記憶部702と読み替
えるものとする。また符号205では公開鍵はない。また
コンピュータ721にあっては、データ処理部112を署名検
証処理部732、スカラー計算部115をスカラー倍計算部73
5、記憶部102を記憶部722と読み替えるものとする。
The scalar multiplication calculators 715 and 735 have the same functions as the scalar multiplication calculator 115 or 135 shown in FIG. 1, respectively. The signature creation and signature verification operation in the signature verification system of FIG. 6 will be described with reference to FIG. However, the data processing unit 112 is replaced with the signature generation processing unit 712, the scalar calculation unit 115 is replaced with the scalar multiplication calculation unit 715, and the storage unit 102 is replaced with the storage unit 702. Also, at 205, there is no public key. Further, in the computer 721, the data processing unit 112 is a signature verification processing unit 732, and the scalar calculation unit 115 is a scalar multiplication calculation unit 73.
5, the storage unit 102 is replaced with the storage unit 722.

【0086】コンピュータ721は、ランダムに選んだ数
値をチャレンジコード743として、インタフェース742を
介してスマートカード701に転送する。署名生成処理部7
12は、チャレンジコード743を入力メッセージ204として
受け付け、チャレンジコード743のハッシュ値をとり、
所定のビット長の数値fに変換する。次に署名生成処理
部712は、乱数uを生成し、記憶部702(図2の203)に格納
されている定数704から読み出した(図2の205)楕円曲線
上の定点Qとともにスカラー倍計算部715(図2の202)へ
送る(図2の206)。
The computer 721 transfers a randomly selected numerical value as a challenge code 743 to the smart card 701 via the interface 742. Signature generation processing unit 7
12 accepts the challenge code 743 as the input message 204, takes the hash value of the challenge code 743,
Convert to a numerical value f with a predetermined bit length. Next, the signature generation processing unit 712 generates a random number u and reads it from the constant 704 stored in the storage unit 702 (203 in FIG. 2) (205 in FIG. 2) and the scalar multiplication with the fixed point Q on the elliptic curve. It is sent to the unit 715 (202 in FIG. 2) (206 in FIG. 2).

【0087】スカラー倍計算部715は、定点Q、乱数uに
よるスカラー倍点(xu,yu)を計算し、計算されたスカラ
ー倍点を署名生成処理部712へ送る(図2の208)。署名生
成処理部712は、送られたスカラー倍点を用いて署名の
生成を行う。例えばECDSA署名であれば、 s = xu mod q (式23) t = u-1(f+ds) mod q (式24) を計算することによりチャレンジコード743に対応する
署名(s,t)を得る。
The scalar multiplication unit 715 calculates a scalar multiplication point (x u , y u ) based on the fixed point Q and the random number u, and sends the calculated scalar multiplication point to the signature generation processing unit 712 (208 in FIG. 2). . The signature generation processing unit 712 generates a signature using the sent scalar multiple points. For example, in the case of an ECDSA signature, the signature (s, t) corresponding to the challenge code 743 is calculated by calculating s = x u mod q (Equation 23) t = u -1 (f + ds) mod q (Equation 24). To get

【0088】ここでqは定点Qの位数、すなわち定点Qのq
倍点qQが無限遠点になり、qより小さな数値mに対する定
点Qのm倍点mQは無限遠点にはならない、というような数
値のことである。またu-1は法qにおける逆数、すなわち
uu-1 =1mod qとなる数である。またdは秘密鍵を示す定
数である。
Here, q is the order of the fixed point Q, that is, q of the fixed point Q.
The double point qQ becomes the point at infinity, and the m times point mQ of the fixed point Q for the value m smaller than q does not become the point at infinity. U -1 is the reciprocal of modulus q, that is,
uu -1 = 1 mod q. Also, d is a constant indicating a secret key.

【0089】ECDSA署名については、 文献6:ANSI X9.62 Public Key Cryptography for the
Financial Services Industry, The Elliptic Curve D
igital Signature Algorithm (ECDSA), (1998) に記載されている。
Regarding ECDSA signature, Reference 6: ANSI X9.62 Public Key Cryptography for the
Financial Services Industry, The Elliptic Curve D
igital Signature Algorithm (ECDSA), (1998).

【0090】スマートカード701は、署名生成処理部712
で作成した署名741を入出力インタフェース710より出力
メッセージ209として出力し、インタフェース742を介し
てコンピュータ721へ転送する。コンピュータ721の署名
検証処理部732は、署名741が入力される(図2の204)
と、署名741の数値s,tが適切な範囲内すなわち1≦s, t<
qであるかを調べる。数値s, tが上記範囲内になければ
チャレンジコード743に対する署名の検証結果として
「無効」を出力し、スマートカード701を拒絶する。数
値s, tが上記範囲内にあれば、署名検証処理部732は、 h = t-1 mod q (式25) h1 = fh mod q (式26) h2 = sh mod q (式27) を計算する。そして記憶部722に格納されている定数724
から読み出した(図2の205)公開鍵aQ及び定点Qと計算し
たh1,h2をスカラー倍計算部735へ送る(図2の206)。
The smart card 701 has a signature generation processing unit 712.
The signature 741 created in (1) is output from the input / output interface 710 as an output message 209 and transferred to the computer 721 via the interface 742. The signature verification processing unit 732 of the computer 721 receives the signature 741 (204 in FIG. 2).
And the number s, t of the signature 741 is within an appropriate range, that is, 1 ≦ s, t <
Check if it is q. If the numerical values s and t are not within the above range, "invalid" is output as the verification result of the signature for the challenge code 743, and the smart card 701 is rejected. If the numerical values s and t are within the above range, the signature verification processing unit 732 determines that h = t -1 mod q (equation 25) h 1 = fh mod q (equation 26) h 2 = sh mod q (equation 27). To calculate. The constant 724 stored in the storage unit 722
The public key aQ and fixed point Q read out (205 in FIG. 2) and h 1 and h 2 calculated are sent to the scalar multiplication unit 735 (206 in FIG. 2).

【0091】スカラー倍計算部735は、定点Qとh1による
スカラー倍点h1Qと、公開鍵aQとh2によるスカラー倍点h
2aQとを計算し、計算されたスカラー倍点を署名検証処
理部732へ送る(図2の208)。
The scalar multiplication unit 735 calculates the scalar multiplication point h 1 Q based on the fixed points Q and h 1 and the scalar multiplication point h based on the public keys aQ and h 2.
2 aQ is calculated, and the calculated scalar multiplication point is sent to the signature verification processing unit 732 (208 in FIG. 2).

【0092】署名検証処理部732は、送られたスカラー
倍点を用いて署名検証処理を行う。例えば点R R=h1Q+h2aQ (式28) を計算し、そのx座標をxRとしたとき、 s' = xR mod q (式29) を計算し、s'=sであればチャレンジコード743に対する
署名の検証結果として「有効」を出力し、スマートカー
ド701を認証し、受け入れる。s'=sでなければ「無効」
を出力し、スマートカードを拒絶する。
The signature verification processing unit 732 performs signature verification processing using the sent scalar multiplication points. For example to calculate the point R R = h 1 Q + h 2 aQ ( Equation 28), when the x-coordinate was x R, s '= x R mod q (Formula 29) was calculated, s' there in = s For example, "valid" is output as the verification result of the signature for the challenge code 743, and the smart card 701 is authenticated and accepted. Not valid unless s' = s
Is output and the smart card is rejected.

【0093】上記実施形態のスカラー倍計算部715、735
は、図1のスカラー倍計算部115または135と同様の機能
を備えるので、サイドチャネル攻撃及びフォールト攻撃
を防ぐスカラー倍計算を実行できる。そのためスマート
カード701は署名作成処理を行う際に、コンピュータ721
は署名検証処理を行う際に、サイドチャネル攻撃及びフ
ォールト攻撃を防いだ実行ができる。
The scalar multiplication units 715 and 735 of the above embodiment.
Has a function similar to that of the scalar multiplication unit 115 or 135 of FIG. 1, so that it can execute scalar multiplication calculation for preventing side channel attacks and fault attacks. Therefore, the smart card 701 uses the computer 721 when performing the signature creation process.
Can perform side-channel attacks and fault attacks while performing signature verification processing.

【0094】次に本発明を鍵交換システムに適用する例
を説明する。本実施形態においては、図1のシステム構
成が応用できる。図1のデータ処理部112、132は、本実
施形態においては、それぞれ鍵交換処理部として機能す
る。鍵交換システムのコンピュータA101が入力された
データ143から共有情報の導出を行う場合の動作につい
て図1、図2を参照して説明する。ただしコンピュータ
B121にあってはデータ処理部112をデータ処理部132、
スカラー計算部115をスカラー倍計算部135、記憶部102
を記憶部122と読み替えるものとする。また両コンピュ
ータA101、コンピュータB121において符号205では公
開鍵の代わりに秘密鍵を読み出すものとする。
Next, an example in which the present invention is applied to a key exchange system will be described. In the present embodiment, the system configuration of FIG. 1 can be applied. In the present embodiment, the data processing units 112 and 132 in FIG. 1 each function as a key exchange processing unit. The operation when the computer A 101 of the key exchange system derives the shared information from the input data 143 will be described with reference to FIGS. 1 and 2. However, in the computer B121, the data processing unit 112 is replaced by the data processing unit 132,
The scalar calculation unit 115 is replaced by the scalar multiplication unit 135 and the storage unit 102.
Should be read as the storage unit 122. In both computers A101 and B121, at 205, the secret key is read instead of the public key.

【0095】コンピュータB121のデータ処理部132は、
記憶部122の秘密情報125から秘密鍵bを読み出しコンピ
ュータB121の公開鍵bQを計算する。そしてネットワー
ク142を介して公開鍵bQをデータ143としてコンピュータ
A101に転送する。
The data processing unit 132 of the computer B121
The secret key b is read from the secret information 125 in the storage unit 122 and the public key bQ of the computer B121 is calculated. Then, the public key bQ is transferred as data 143 to the computer A 101 via the network 142.

【0096】コンピュータA101のデータ処理部112は、
コンピュータB121の公開鍵bQの入力を入力メッセージ2
04として受け付けると、データ処理部112は、記憶部102
から読み出した(図2の205)秘密情報105であるコンピュ
ータA101の秘密鍵aと、コンピュータB121の公開鍵bQ
とをスカラー倍計算部115へ送る(図2の206)。
The data processing unit 112 of the computer A 101 is
Enter the public key bQ of computer B121 Message 2
When accepted as 04, the data processing unit 112 causes the storage unit 102 to
The secret key a of the computer A 101 and the public key bQ of the computer B 121, which are the secret information 105 read out from the (205 of FIG. 2).
And are sent to the scalar multiplication unit 115 (206 in FIG. 2).

【0097】スカラー倍計算部115は、秘密鍵aと公開鍵
bQによるスカラー倍点abQを計算し、計算されたスカラ
ー倍点をデータ処理部112へ送る(図2の208)。データ処
理部112は、送られたスカラー倍点を用いて共有情報の
導出を行い、記憶部102に秘密情報105として格納する。
例えばスカラー倍点abQのx座標を、共有情報とする。
The scalar multiplication unit 115 calculates the secret key a and the public key.
The scalar multiplication point abQ by bQ is calculated, and the calculated scalar multiplication point is sent to the data processing unit 112 (208 in FIG. 2). The data processing unit 112 derives the shared information using the sent scalar multiplication points and stores it in the storage unit 102 as the secret information 105.
For example, the x coordinate of the scalar multiplication point abQ is set as shared information.

【0098】次にコンピュータ121が、入力されたデー
タ141から共有情報の導出を行う場合の動作について説
明する。コンピュータA101のデータ処理部112は、記憶
部102の秘密情報105から秘密鍵aを読み出しコンピュー
タA101の公開鍵aQを計算する。そしてネットワーク142
を介して公開鍵aQをデータ141としてコンピュータB121
に転送する。
Next, the operation when the computer 121 derives shared information from the input data 141 will be described. The data processing unit 112 of the computer A101 reads the secret key a from the secret information 105 of the storage unit 102 and calculates the public key aQ of the computer A101. And network 142
Via public key aQ as data 141 to computer B121
Transfer to.

【0099】コンピュータB121のデータ処理部132はコ
ンピュータA101の公開鍵aQの入力を入力メッセージ204
として受け付けると、データ処理部132は、記憶部122の
秘密情報125から読み出したコンピュータB121の秘密鍵
bと、コンピュータA101の公開鍵aQとをスカラー倍計算
部135へ送る(図2の206)。
The data processing unit 132 of the computer B121 inputs the input of the public key aQ of the computer A101 to the input message 204.
When received as, the data processing unit 132 causes the secret key of the computer B 121 read from the secret information 125 of the storage unit 122.
b and the public key aQ of the computer A 101 are sent to the scalar multiplication unit 135 (206 in FIG. 2).

【0100】スカラー倍計算部135は、秘密鍵bと公開鍵
aQによるスカラー倍点baQを計算し、計算されたスカラ
ー倍点をデータ処理部132へ送る(図2の208)。
The scalar multiplication unit 135 calculates the secret key b and the public key
The scalar multiple point baQ by aQ is calculated, and the calculated scalar multiple point is sent to the data processing unit 132 (208 in FIG. 2).

【0101】データ処理部132は、送られたスカラー倍
点を用いて共有情報の導出を行い、記憶部122に秘密情
報125として格納する。例えばスカラー倍点baQのx座標
を共有情報とする。ここで数abと数baは数値として同じ
なので点abQと点baQは同じ点となり、同じ情報が導出さ
れたことになる。
The data processing unit 132 derives the shared information using the sent scalar multiplication points and stores it in the storage unit 122 as the secret information 125. For example, the x coordinate of the scalar multiple baQ is used as shared information. Here, since the numbers ab and ba are numerically the same, the points abQ and baQ are the same points, and the same information is derived.

【0102】ネットワーク142には、点aQと点bQが送信
されるが、点abQ(もしくは点baQ)を計算するには秘密鍵
aもしくは秘密鍵bを用いなければならない。すなわち秘
密鍵aもしくは秘密鍵bを知らなければ、共有情報を得る
ことができない。このようにして得られた共有情報は、
共通鍵暗号の秘密鍵として利用できる。
The point aQ and the point bQ are transmitted to the network 142, but the secret key is used to calculate the point abQ (or the point baQ).
You must use a or private key b. That is, shared information cannot be obtained without knowing the secret key a or the secret key b. The shared information obtained in this way is
It can be used as a secret key for common key cryptography.

【0103】本実施形態においても、スカラー倍計算部
115、135は上述の特徴を備えるので、サイドチャネル攻
撃及びフォールト攻撃を防ぐ鍵交換処理が可能になる。
Also in the present embodiment, the scalar multiplication unit
Since 115 and 135 have the above-described characteristics, it is possible to perform a key exchange process that prevents side channel attacks and fault attacks.

【0104】また上記説明における暗号化処理部、復号
化処理部、署名作成部、署名検証部および鍵交換処理部
は、専用のハードウェアを用いて行ってもよい。またス
カラー倍計算部をコプロセッサまたはそれ以外の専用ハ
ードウェアで実現しても良い。
Further, the encryption processing unit, the decryption processing unit, the signature creating unit, the signature verification unit and the key exchange processing unit in the above description may be performed by using dedicated hardware. Further, the scalar multiplication unit may be realized by a coprocessor or other dedicated hardware.

【0105】またデータ処理部は、上記暗号化処理、復
号化処理、署名作成処理、署名検証処理、鍵交換処理の
うち、任意の一つ以上の処理を行えるように構成しても
よい。
Further, the data processing unit may be configured to be able to perform any one or more of the above-mentioned encryption processing, decryption processing, signature creation processing, signature verification processing, and key exchange processing.

【0106】[0106]

【発明の効果】以上述べたように本発明によれば、サイ
ドチャネル攻撃及びフォールト攻撃に対してより安全な
楕円曲線演算を用いたメッセージ処理が可能になる
As described above, according to the present invention, it is possible to perform message processing using elliptic curve arithmetic, which is safer against side channel attacks and fault attacks.

【図面の簡単な説明】[Brief description of drawings]

【図1】実施形態におけるシステム構成図である。FIG. 1 is a system configuration diagram in an embodiment.

【図2】各実施形態における情報の受け渡しを示すシー
ケンス図である。
FIG. 2 is a sequence diagram showing the transfer of information in each embodiment.

【図3】実施形態におけるスカラー倍計算部の構成図で
ある。
FIG. 3 is a configuration diagram of a scalar multiplication unit in the embodiment.

【図4】第1実施例のスカラー倍計算方法を示すフロー
チャート図である。
FIG. 4 is a flowchart showing a scalar multiplication calculation method according to the first embodiment.

【図5】第1実施例のスカラー倍計算方法を示すフロー
チャート図(続き)である。
FIG. 5 is a flowchart diagram (continuation) showing the scalar multiplication calculation method of the first embodiment.

【図6】第2実施例のスカラー倍計算方法を示すフロー
チャート図である。
FIG. 6 is a flowchart showing a scalar multiplication calculation method according to the second embodiment.

【図7】実施形態における署名検証システムの構成図で
ある。
FIG. 7 is a configuration diagram of a signature verification system in the embodiment.

【符号の説明】[Explanation of symbols]

101,121,721:コンピュータ、701:スマートカード、
115,135,715,735:スカラー倍計算部、112:データ
処理部、132:復号化処理部、712:署名生成処理部、73
2:署名検証処理部、104,124,704,724:定数、105,
125,705,725:秘密情報、301:スカラー倍計算装置
101, 121, 721: Computer, 701: Smart card,
115, 135, 715, 735: Scalar multiplication unit, 112: Data processing unit, 132: Decryption processing unit, 712: Signature generation processing unit, 73
2: Signature verification processing unit, 104, 124, 704, 724: Constant, 105,
125, 705, 725: Confidential information, 301: Scalar multiplication device

Claims (20)

【特許請求の範囲】[Claims] 【請求項1】楕円曲線暗号における楕円曲線についてス
カラー値及び楕円曲線上の点からスカラー倍点を計算す
る方法であって、 前記楕円曲線上の点が所定の定義方程式を満たすか否か
を判定する第1のステップと、 前記楕円曲線上の点をランダム化する第2のステップ
と、 前記スカラー値のビットの値を判定する第3のステップ
と、 前記スカラー値のビットごとにそのビット値によらない
同一種別の演算を行う第4のステップと、 前記スカラー値のすべてのビットについて前記第3のス
テップ及び前記第4のステップを終了したとき、前記演
算の結果に基づいて前記楕円曲線上の点の座標値を計算
する第5のステップと、 計算された前記座標値が前記所定の定義方程式を満たす
か否かを判定する第6のステップとを有することを特徴
とするスカラー倍計算方法。
1. A method of calculating a scalar multiplication point from a scalar value and a point on an elliptic curve for an elliptic curve in elliptic curve cryptography, wherein it is determined whether or not the point on the elliptic curve satisfies a predetermined defining equation. A second step of randomizing points on the elliptic curve, a third step of determining a bit value of the scalar value, and a bit value for each bit of the scalar value. A fourth step of performing the same type of calculation that does not depend on the elliptic curve, and when the third step and the fourth step are completed for all bits of the scalar value, the elliptic curve on the elliptic curve is calculated based on the result of the calculation. A fifth step of calculating coordinate values of points; and a sixth step of determining whether or not the calculated coordinate values satisfy the predetermined defining equation. Scalar multiplication calculation method that.
【請求項2】前記第4のステップは、前記ランダム化し
た点より導出された値と前記楕円曲線上の点をランダム
化せずに導出された値との演算を実行するステップを含
むことを特徴とする請求項1記載のスカラー倍計算方
法。
2. The fourth step includes the step of performing an operation of a value derived from the randomized points and a value derived without randomizing the points on the elliptic curve. The scalar multiplication method according to claim 1, characterized in that
【請求項3】前記スカラー値のすべてのビットについて
前記第3のステップ及び前記第4のステップを実行する
代わりに、前記スカラー値を格納し前記スカラー値のビ
ット数より大きいビット数を備える記憶領域のすべての
ビットについて前記第3のステップ及び前記第4のステ
ップを実行することを特徴とする請求項1記載のスカラ
ー倍計算方法。
3. A storage area for storing the scalar value and having a number of bits greater than the number of bits of the scalar value, instead of performing the third step and the fourth step for all bits of the scalar value. 2. The scalar multiplication method according to claim 1, wherein the third step and the fourth step are executed for all the bits of.
【請求項4】前記楕円曲線としてモンゴメリ型楕円曲線
を用いることを特徴とする請求項1記載のスカラー倍計
算方法。
4. The scalar multiplication calculation method according to claim 1, wherein a Montgomery type elliptic curve is used as the elliptic curve.
【請求項5】前記楕円曲線としてワイエルシュトラス型
楕円曲線を用いることを特徴とする請求項1記載のスカ
ラー倍計算方法。
5. The scalar multiplication calculation method according to claim 1, wherein a Weierstrass-form elliptic curve is used as the elliptic curve.
【請求項6】前記楕円曲線として標数2の有限体上に定
義された楕円曲線を用いることを特徴とする請求項1記
載のスカラー倍計算方法。
6. The scalar multiplication method according to claim 1, wherein an elliptic curve defined on a finite field of characteristic 2 is used as the elliptic curve.
【請求項7】前記楕円曲線としてOEF上に定義された
楕円曲線を用いることを特徴とする請求項1記載のスカ
ラー倍計算方法。
7. The scalar multiplication method according to claim 1, wherein an elliptic curve defined on OEF is used as the elliptic curve.
【請求項8】暗号化されたデータから復号データを生成
する復号化方法であって、請求項1記載のスカラー倍計
算方法を用いるステップを有することを特徴とする復号
化方法。
8. A decryption method for producing decrypted data from encrypted data, comprising the step of using the scalar multiplication calculation method according to claim 1.
【請求項9】署名データの正当性を検証する署名検証方
法であって、請求項1記載のスカラー倍計算方法を用い
るステップを有することを特徴とする署名検証方法。
9. A signature verification method for verifying the validity of signature data, comprising the step of using the scalar multiplication calculation method according to claim 1.
【請求項10】前記スカラー値は秘密鍵を示し、前記楕
円曲線上の点は公開鍵を示すことを特徴とする請求項1
記載のスカラー倍計算方法。
10. The scalar value represents a private key, and the point on the elliptic curve represents a public key.
The scalar multiplication method described.
【請求項11】楕円曲線暗号における楕円曲線について
スカラー値及び楕円曲線上の点からスカラー倍点を計算
する装置であって、 前記楕円曲線上の点が所定の定義方程式を満たすか否か
を判定する第1の処理手段と、 前記楕円曲線上の点をランダム化する第2の処理手段
と、 前記スカラー値のビットの値を判定する第3の処理手段
と、 前記スカラー値のビットごとにそのビット値によらない
同一種別の演算を行う第4の処理手段と、 前記スカラー値のすべてのビットについて前記第3の処
理手段及び前記第4の処理手段による処理を終了したと
き、前記演算の結果に基づいて前記楕円曲線上の点の座
標値を計算する第5の処理手段と、 計算された前記座標値が前記所定の定義方程式を満たす
か否かを判定する第6の処理手段とを有することを特徴
とするスカラー倍計算装置。
11. An apparatus for calculating a scalar multiplication point from a scalar value and a point on an elliptic curve in elliptic curve cryptography in elliptic curve cryptography, and determining whether or not the point on the elliptic curve satisfies a predetermined defining equation. First processing means, second processing means for randomizing points on the elliptic curve, third processing means for determining the value of the bit of the scalar value, and the third processing means for each bit of the scalar value. A fourth processing unit that performs the same type of calculation that does not depend on the bit value; and a result of the calculation when the processing by the third processing unit and the fourth processing unit is completed for all bits of the scalar value. A fifth processing means for calculating the coordinate value of the point on the elliptic curve based on the above, and a sixth processing means for determining whether or not the calculated coordinate value satisfies the predetermined defining equation. Scalar multiplication unit, wherein the door.
【請求項12】前記第4の処理手段は、前記ランダム化
した点より導出された値と前記楕円曲線上の点をランダ
ム化せずに導出された値との演算を実行する処理手段を
含むことを特徴とする請求項11記載のスカラー倍計算
装置。
12. The fourth processing means includes processing means for performing a calculation of a value derived from the randomized points and a value derived without randomizing the points on the elliptic curve. The scalar multiplication device according to claim 11, wherein
【請求項13】前記スカラー値のすべてのビットについ
て前記第3の処理手段及び前記第4の処理手段を実行す
る代わりに、前記スカラー値を格納し前記スカラー値の
ビット数より大きいビット数を備える記憶領域のすべて
のビットについて前記第3の処理手段及び前記第4の処
理手段を実行することを特徴とする請求項11記載のス
カラー倍計算装置。
13. Instead of executing said third processing means and said fourth processing means for all bits of said scalar value, said scalar value is stored and the number of bits is greater than the number of bits of said scalar value. 12. The scalar multiplication unit according to claim 11, wherein the third processing means and the fourth processing means are executed for all the bits of the storage area.
【請求項14】前記楕円曲線としてモンゴメリ型楕円曲
線を用いることを特徴とする請求項11記載のスカラー
倍計算装置。
14. The scalar multiplication apparatus according to claim 11, wherein a Montgomery type elliptic curve is used as the elliptic curve.
【請求項15】前記楕円曲線としてワイエルシュトラス
型楕円曲線を用いることを特徴とする請求項11記載の
スカラー倍計算装置。
15. The scalar multiplication apparatus according to claim 11, wherein a Weierstrass-form elliptic curve is used as the elliptic curve.
【請求項16】前記楕円曲線として標数2の有限体上に
定義された楕円曲線を用いることを特徴とする請求項1
1記載のスカラー倍計算装置。
16. An elliptic curve defined on a finite field of characteristic 2 is used as the elliptic curve.
1. The scalar multiplication device described in 1.
【請求項17】前記楕円曲線としてOEF上に定義され
た楕円曲線を用いることを特徴とする請求項11記載の
スカラー倍計算装置。
17. The scalar multiplication apparatus according to claim 11, wherein an elliptic curve defined on OEF is used as the elliptic curve.
【請求項18】暗号化されたデータから復号データを生
成する復号化装置であって、請求項11記載のスカラー
倍計算装置を含むことを特徴とする復号化装置。
18. A decryption device for producing decrypted data from encrypted data, comprising the scalar multiplication device according to claim 11. Description:
【請求項19】請求項11記載のスカラー倍計算装置を
含むことを特徴とするICカード。
19. An IC card comprising the scalar multiplication unit according to claim 11.
【請求項20】署名データの正当性を検証する署名検証
装置であって、請求項11記載のスカラー倍計算装置を
含むことを特徴とする署名検証装置。
20. A signature verification device for verifying the validity of signature data, comprising the scalar multiplication device according to claim 11.
JP2002052897A 2002-02-28 2002-02-28 Method and device for calculating elliptic curve scalar multiple Pending JP2003255831A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002052897A JP2003255831A (en) 2002-02-28 2002-02-28 Method and device for calculating elliptic curve scalar multiple

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002052897A JP2003255831A (en) 2002-02-28 2002-02-28 Method and device for calculating elliptic curve scalar multiple

Publications (1)

Publication Number Publication Date
JP2003255831A true JP2003255831A (en) 2003-09-10

Family

ID=28664468

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002052897A Pending JP2003255831A (en) 2002-02-28 2002-02-28 Method and device for calculating elliptic curve scalar multiple

Country Status (1)

Country Link
JP (1) JP2003255831A (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2008042908A (en) * 2006-08-04 2008-02-21 Samsung Electronics Co Ltd Point adding method in binary finite field for embodying fault detection operation using fast montgomery power ladder algorithm, and addition operation apparatus
US7388957B2 (en) 2003-01-28 2008-06-17 Matsushita Electric Industrial Co., Ltd. Elliptic curve exponentiation apparatus that can counter differential fault attack, and information security apparatus
JP2009531726A (en) * 2006-03-23 2009-09-03 シーメンス アクチエンゲゼルシヤフト Encryption method using elliptic curve
JP2010148036A (en) * 2008-12-22 2010-07-01 Fujitsu Ltd Device, method and program for arithmetically operating elliptic curve
JP2010226402A (en) * 2009-03-24 2010-10-07 Fujitsu Ltd Authentication medium for detection of fault attack to authentication processing using elliptic curve cryptosystem
US7916860B2 (en) 2005-03-19 2011-03-29 Samsung Electronics Co. Ltd. Scalar multiplication apparatus and method
US8379842B2 (en) 2006-03-04 2013-02-19 Samsung Electronics Co., Ltd. Cryptographic methods including Montgomery power ladder algorithms
WO2018168251A1 (en) 2017-03-16 2018-09-20 株式会社デンソー Control device

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7388957B2 (en) 2003-01-28 2008-06-17 Matsushita Electric Industrial Co., Ltd. Elliptic curve exponentiation apparatus that can counter differential fault attack, and information security apparatus
JP4634046B2 (en) * 2003-01-28 2011-02-16 パナソニック株式会社 Elliptical power multiplication device and information security device capable of countering failure use attacks
US7916860B2 (en) 2005-03-19 2011-03-29 Samsung Electronics Co. Ltd. Scalar multiplication apparatus and method
US8379842B2 (en) 2006-03-04 2013-02-19 Samsung Electronics Co., Ltd. Cryptographic methods including Montgomery power ladder algorithms
JP2009531726A (en) * 2006-03-23 2009-09-03 シーメンス アクチエンゲゼルシヤフト Encryption method using elliptic curve
US8582761B2 (en) 2006-03-23 2013-11-12 Siemens Aktiengesellschaft Cryptographic method with elliptical curves
JP2008042908A (en) * 2006-08-04 2008-02-21 Samsung Electronics Co Ltd Point adding method in binary finite field for embodying fault detection operation using fast montgomery power ladder algorithm, and addition operation apparatus
JP2010148036A (en) * 2008-12-22 2010-07-01 Fujitsu Ltd Device, method and program for arithmetically operating elliptic curve
JP2010226402A (en) * 2009-03-24 2010-10-07 Fujitsu Ltd Authentication medium for detection of fault attack to authentication processing using elliptic curve cryptosystem
WO2018168251A1 (en) 2017-03-16 2018-09-20 株式会社デンソー Control device
US11036846B2 (en) 2017-03-16 2021-06-15 Denso Corporation Control device

Similar Documents

Publication Publication Date Title
US7308096B2 (en) Elliptic scalar multiplication system
US7961873B2 (en) Password protocols using XZ-elliptic curve cryptography
US7961874B2 (en) XZ-elliptic curve cryptography with secret key embedding
US7864951B2 (en) Scalar multiplication method with inherent countermeasures
EP1729442B1 (en) An authentication system executing an elliptic curve digital signature cryptographic process
JP4671571B2 (en) Secret information processing device and memory for storing secret information processing program
US7856101B2 (en) Method for elliptic curve scalar multiplication
JP3821631B2 (en) Method and apparatus for scalar multiplication in elliptic curve cryptography, and storage medium
US7764785B2 (en) Method for communicating securely over an insecure communication channel
US7483533B2 (en) Elliptic polynomial cryptography with multi x-coordinates embedding
JP2008252299A (en) Encryption processing system and encryption processing method
US20050195973A1 (en) Method for XZ-elliptic curve cryptography
US8102998B2 (en) Method for elliptic curve scalar multiplication using parameterized projective coordinates
US20060029221A1 (en) Elliptic polynomial cryptography with multi y-coordinates embedding
US20080273695A1 (en) Method for elliptic curve scalar multiplication using parameterized projective coordinates
EP1296224B1 (en) Elliptic scalar multiplication system
JP2010164904A (en) Elliptic curve arithmetic processing unit and elliptic curve arithmetic processing program and method
JP2004304800A (en) Protection of side channel for prevention of attack in data processing device
EP0952697B1 (en) Elliptic curve encryption method and system
KR100699836B1 (en) Apparatus and method to counter Different Faults AnalysisDFA in scalar multiplication
US11824986B2 (en) Device and method for protecting execution of a cryptographic operation
JP2003255831A (en) Method and device for calculating elliptic curve scalar multiple
US7983415B2 (en) Method for performing iterative scalar multiplication which is protected against address bit attack
JP4423900B2 (en) Scalar multiplication calculation method, apparatus and program for elliptic curve cryptography
JP2005020735A (en) Side channel attack prevention in data processor