JP2017067859A - Scalar multiplication device and scalar multiplication method - Google Patents

Scalar multiplication device and scalar multiplication method Download PDF

Info

Publication number
JP2017067859A
JP2017067859A JP2015190114A JP2015190114A JP2017067859A JP 2017067859 A JP2017067859 A JP 2017067859A JP 2015190114 A JP2015190114 A JP 2015190114A JP 2015190114 A JP2015190114 A JP 2015190114A JP 2017067859 A JP2017067859 A JP 2017067859A
Authority
JP
Japan
Prior art keywords
scalar
value
calculation
digit
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.)
Granted
Application number
JP2015190114A
Other languages
Japanese (ja)
Other versions
JP6457911B2 (en
Inventor
敦郎 吉田
Atsuro Yoshida
敦郎 吉田
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.)
MegaChips Corp
Original Assignee
MegaChips Corp
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 MegaChips Corp filed Critical MegaChips Corp
Priority to JP2015190114A priority Critical patent/JP6457911B2/en
Publication of JP2017067859A publication Critical patent/JP2017067859A/en
Application granted granted Critical
Publication of JP6457911B2 publication Critical patent/JP6457911B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a scalar multiplication device that performs a scalar multiplication process strong against side channel attack and high in security and that has a relatively simple configuration.SOLUTION: If a bit value dof a digit part of a scalar value d is "1," a scalar multiplication device performs steps SP11-SP13 and thereby conducts an operational expression 1 of {Q←2Q+P}. Step SP11 is a two-multiplication process, and steps SP12 and SP13 are addition processes (first and second addition processes). On the other hand, if the bit value dof the digit part of the scalar value d is "0," the scalar multiplication device performs steps SP01-SP03 and thereby conducts an operational expression 2 of {Q←2Q}. Step SP01 is a two-multiplication process, and steps SP02 and SP03 are addition processes (the first and second addition processes).SELECTED DRAWING: Figure 1

Description

この発明は、入力座標点をスカラー倍算してスカラー倍算値を得るスカラー倍算装置及びスカラー倍算方法に関する。   The present invention relates to a scalar multiplication apparatus and a scalar multiplication method for obtaining a scalar multiplication value by scalar multiplication of input coordinate points.

楕円曲線暗号の主演算であるスカラー倍算処理は、有理点Pとスカラー(倍数)値dの乗算を行うことで、スカラー倍算値dP(スカラー倍数点)を求める演算処理である。楕円曲線暗号はスカラー倍算値dPからスカラー値dを求めるのは困難なこと(楕円曲線上の離散対数問題(ECDLP))を安全性の根拠としている。   The scalar multiplication process, which is the main operation of elliptic curve cryptography, is an arithmetic process for obtaining the scalar multiplication value dP (scalar multiple point) by multiplying the rational point P and the scalar (multiple) value d. The elliptic curve cryptosystem is based on the fact that it is difficult to obtain the scalar value d from the scalar multiplication value dP (discrete logarithm problem (ECDLP) on the elliptic curve).

楕円曲線上の有理点の演算は、無限遠点を零元とする加群を成す。一般的に直線を用いた加算、2倍算の2種類が定義される。これらの演算は、スカラー(倍数)値dをバイナリ法などの加算鎖アルゴリズムによってビット展開し、各ビットの値によって加算、2倍算を行うことで、スカラー倍算処理を実現している。しかし、処理時間はスカラー値dに依存して変化(タイミングリークが発生)するため、スカラー値dが漏洩するという問題がある。タイミングリークの回避策としては、スカラー値dのビット値が“0”の場合でもダミー演算を行うことが考えられるが、非特許文献1によってフォルト挿入によるセーフエラー攻撃によってダミー演算からスカラー値dの漏洩の可能性が指摘されている。また特許文献1〜特許文献6において様々なサイドチャネル攻撃対策が提案されているが、各種入力データ(スカラー値d、有理点P)を写像や変換を行う必要があるため、主演算であるスカラー倍算処理以外に用いる演算器や制御機構が必要なため実装コストが高くなる。   The computation of rational points on an elliptic curve forms a module with the infinity point as the zero element. In general, two types of addition and addition using a straight line are defined. In these operations, a scalar multiplication process is realized by bit-expanding a scalar (multiple) value d by an addition chain algorithm such as a binary method, and adding and doubling by the value of each bit. However, since the processing time changes depending on the scalar value d (timing leak occurs), there is a problem that the scalar value d leaks. As a measure for avoiding the timing leak, it is conceivable to perform a dummy operation even when the bit value of the scalar value d is “0”. The possibility of leakage is pointed out. Various countermeasures against side channel attacks have been proposed in Patent Documents 1 to 6, but it is necessary to perform mapping and conversion on various input data (scalar value d, rational point P). Since an arithmetic unit and a control mechanism used other than the multiplication processing are necessary, the mounting cost is increased.

特許第4783061号公報Japanese Patent No. 4783061 特許第4284320号公報Japanese Patent No. 4284320 特許第4668931号公報Japanese Patent No. 4668931 特許第5233473号公報Japanese Patent No. 5233473 特許第5488718号公報Japanese Patent No. 5488718 特許第5573964号公報Japanese Patent No. 5573964

菅原 健、鈴木 大輔,『楕円群演算において無限遠点が特別扱いされることを利用したECDSAのセーフエラー攻撃』(SCIS2015)Takeshi Sugawara, Daisuke Suzuki, “ECDSA Safe Error Attack Using Special Treatment of Infinity Points in Elliptical Group Operations” (SCIS2015)

上述したように、ダミー演算によるタイミングリーク回避策を施した従来のスカラー倍算装置は、フォルト挿入によるセーフエラー攻撃に弱いという問題点があった。また、サイドチャネル攻撃対策にスカラー倍算処理以外の種々の演算処理を余分に実行するようにしたスカラー倍算装置は実装コストが高くなるという問題点があった。   As described above, the conventional scalar multiplication apparatus that has taken the measure of avoiding the timing leak by the dummy calculation has a problem that it is vulnerable to a safe error attack due to fault insertion. In addition, the scalar multiplication apparatus in which various arithmetic processes other than the scalar multiplication process are additionally executed as a countermeasure against the side channel attack has a problem that the mounting cost becomes high.

この発明は上記問題点を解決するためになされたもので、サイドチャネル攻撃に強く、セキュリティー性が高いスカラー倍演算処理を実行するスカラー倍算装置を比較的簡単な構成で得ることを目的とする。   The present invention has been made to solve the above-described problems, and an object of the present invention is to obtain a scalar multiplication apparatus that executes a scalar multiplication operation process that is resistant to side channel attacks and has high security with a relatively simple configuration. .

この発明に係る請求項1記載のスカラー倍算装置は、入力座標点及び入力スカラー値を受け、前記入力座標点のスカラー倍算値を得るスカラー倍算装置であって、2つの入力値の加算演算を実行する加算演算部と、1つの入力値の2倍算演算を実行する2倍算演算部と、前記入力スカラー値あるいは前記入力スカラー値を変換して得られる変換スカラー値を演算用スカラー値とし、前記演算用スカラー値と前記入力座標点とを演算対象として、スカラー倍算処理を行い前記スカラー倍算値を得るスカラー倍演算機構とを備え、前記演算用スカラー値は複数の桁部を有し、前記複数の桁部はそれぞれ少なくとも1ビットの情報量を有し、前記スカラー倍算処理は、前記複数の桁部に対応して実行され各々が桁部演算結果を得る複数の桁部演算処理を含み、前記複数の桁部演算処理の実行により、隣接する桁部間で上位から下位に桁部演算結果を伝搬しつつ、最上位から最下位にかけて桁部単位に桁部演算結果を順次得て、最下位の桁部より得られる桁部演算結果を前記スカラー倍算値とし、前記複数の桁部演算処理はそれぞれ、前記加算演算部及び前記2倍算演算部を用いて実行され、桁部の値が“0”の場合はゼロ演算処理を実行して桁部演算結果を取得し、“0”以外の場合は前記ゼロ演算処理と異なる演算内容の非ゼロ演算処理を実行して桁部演算結果を取得し、前記ゼロ演算処理及び前記非ゼロ演算処理を共に、2倍算処理、第1の加算処理、及び第2の加算処理の順で行い、前記第2の加算処理の演算結果を桁部演算結果としたことを特徴としている。   The scalar multiplication apparatus according to claim 1 is a scalar multiplication apparatus that receives an input coordinate point and an input scalar value and obtains a scalar multiplication value of the input coordinate point, and adds two input values. An addition operation unit that performs an operation, a doubling operation unit that performs a doubling operation of one input value, and an input scalar value or a conversion scalar value obtained by converting the input scalar value A scalar multiplication operation mechanism that obtains the scalar multiplication value by performing a scalar multiplication process on the calculation scalar value and the input coordinate point as a calculation target, and the calculation scalar value includes a plurality of digits. And each of the plurality of digits has an information amount of at least one bit, and the scalar multiplication process is performed corresponding to the plurality of digits, and each of the digits obtains a digit calculation result. Department By executing the plurality of digit part calculation processes, the digit part calculation results are sequentially obtained from the highest order to the lowest order while propagating the digit part calculation results from the upper part to the lower part between adjacent digit parts. The digit part operation result obtained from the least significant digit part is used as the scalar multiplication value, and the plurality of digit part arithmetic processes are respectively executed using the addition arithmetic part and the doubling arithmetic part. If the value of the part is “0”, the zero calculation process is executed to obtain the digit calculation result, and if it is not “0”, the non-zero calculation process having a different calculation content from the zero calculation process is executed. Part calculation results are obtained, and both the zero calculation process and the non-zero calculation process are performed in the order of a doubling process, a first addition process, and a second addition process. The result is a digit calculation result.

請求項1記載の本願発明におけるスカラー倍算装置は、上記特徴を有することにより、ゼロ演算処理及び非ゼロ演算処理間で共通の演算処理(2倍算処理、第1及び第2の加算処理)の実行後にはじめて桁部演算結果を得ている。このため、演算用スカラー値の桁部の値が“0”か非“0”かによって演算処理時間の変化が生じない。したがって、ゼロ演算処理及び非ゼロ演算処理間における演算処理時の差異に基づくタイミングリークを確実に回避することができる。   The scalar multiplication apparatus according to claim 1 of the present invention has the above-described feature, so that the common arithmetic processing between the zero arithmetic processing and the non-zero arithmetic processing (double arithmetic processing, first and second addition processing) is performed. The digit calculation result is obtained for the first time after execution. For this reason, there is no change in the calculation processing time depending on whether the value of the digit part of the calculation scalar value is “0” or non- “0”. Therefore, it is possible to reliably avoid timing leaks based on the difference in the arithmetic processing between the zero arithmetic processing and the non-zero arithmetic processing.

さらに、ゼロ演算処理及び非ゼロ演算処理間で実行される2倍算処理、第1及び第2の加算処理は全て桁部演算結果を得るために必要な演算処理であり、演算結果が利用されないダミー演算処理ではない。したがって、ダミー演算処理に対するセーフエラー攻撃が実行されることもない。   Further, the doubling process and the first and second addition processes executed between the zero calculation process and the non-zero calculation process are all necessary for obtaining the digit part calculation result, and the calculation result is not used. It is not a dummy calculation process. Therefore, the safe error attack for the dummy calculation process is not executed.

加えて、スカラー倍算処理以外のサイドチャネル攻撃用の演算処理を特に施していないため、比較的簡単な構成で実現できる。   In addition, since the side channel attack calculation processing other than the scalar multiplication processing is not particularly performed, it can be realized with a relatively simple configuration.

その結果、タイミングリークの検知及びセーフエラー攻撃を含むサイドチャネル攻撃に強く、セキュリティー性が高いスカラー倍算処理を実行するスカラー倍算装置を得ることができる。   As a result, it is possible to obtain a scalar multiplication device that executes a scalar multiplication process that is highly resistant to side channel attacks including timing leak detection and safe error attacks and has high security.

本願発明のスカラー倍算装置のスカラー倍算アルゴリズムの概要を示す説明図である。It is explanatory drawing which shows the outline | summary of the scalar multiplication algorithm of the scalar multiplication apparatus of this invention. 実施の形態1(〜4)のスカラー倍算装置の構成を示すブロック図である。It is a block diagram which shows the structure of the scalar multiplication apparatus of Embodiment 1 (to 4). 実施の形態1のスカラー倍算アルゴリズムを模式的に示す説明図である。4 is an explanatory diagram schematically showing a scalar multiplication algorithm according to Embodiment 1. FIG. 実施の形態1のスカラー倍算アルゴリズムの実行例を模式的に示す説明図である。6 is an explanatory diagram schematically illustrating an execution example of a scalar multiplication algorithm according to Embodiment 1. FIG. Window法における変換アルゴリズムを模式的に示す説明図である。It is explanatory drawing which shows typically the conversion algorithm in Window method. Window法における従来の事前計算アルゴリズムを模式的に示す説明図である。It is explanatory drawing which shows typically the conventional prior calculation algorithm in Window method. Window法における従来の本計算アルゴリズムを模式的に示す説明図である。It is explanatory drawing which shows typically the conventional this calculation algorithm in Window method. 実施の形態2の事前計算アルゴリズムを模式的に示す説明図である。FIG. 10 is an explanatory diagram schematically showing a pre-calculation algorithm according to the second embodiment. 実施の形態2の本計算アルゴリズムを模式的に示す説明図である。FIG. 10 is an explanatory diagram schematically showing the present calculation algorithm of the second embodiment. 実施の形態2の本計算アルゴリズムの実行例を模式的に示す説明図である。FIG. 10 is an explanatory diagram schematically illustrating an execution example of the present calculation algorithm according to the second embodiment. NAF法における変換アルゴリズムを模式的に示す説明図である。It is explanatory drawing which shows typically the conversion algorithm in a NAF method. NAF法における従来の本計算アルゴリズムを模式的に示す説明図である。It is explanatory drawing which shows typically this conventional calculation algorithm in NAF method. 実施の形態3の本計算アルゴリズムを模式的に示す説明図である。FIG. 10 is an explanatory diagram schematically showing the present calculation algorithm of the third embodiment. 実施の形態3の本計算アルゴリズムの実行例を模式的に示す説明図である。FIG. 10 is an explanatory diagram schematically illustrating an execution example of the present calculation algorithm according to the third embodiment. wNAF法における従来の変換アルゴリズムを模式的に示す説明図である。It is explanatory drawing which shows typically the conventional conversion algorithm in wNAF method. wNAF法における従来の事前計算アルゴリズムを模式的に示す説明図である。It is explanatory drawing which shows the conventional prior calculation algorithm in a wNAF method typically. wNAF法における従来の本計算アルゴリズムを模式的に示す説明図である。It is explanatory drawing which shows typically this conventional calculation algorithm in wNAF method. 実施の形態4の変換アルゴリズムを模式的に示す説明図である。FIG. 10 is an explanatory diagram schematically showing a conversion algorithm according to a fourth embodiment. 実施の形態4の事前計算アルゴリズムを模式的に示す説明図である。FIG. 10 is an explanatory diagram schematically showing a pre-calculation algorithm of a fourth embodiment. 実施の形態4の本計算アルゴリズムを模式的に示す説明図である。FIG. 10 is an explanatory diagram schematically showing the present calculation algorithm of the fourth embodiment. 実施の形態4の本計算アルゴリズムの実行例を模式的に示す説明図(その1)である。FIG. 16 is an explanatory diagram (part 1) schematically showing an execution example of the present calculation algorithm of the fourth embodiment. 実施の形態4の本計算アルゴリズムの実行例を模式的に示す説明図(その2)である。FIG. 20 is an explanatory diagram (part 2) schematically illustrating an execution example of the present calculation algorithm of the fourth embodiment. 楕円曲線を示す説明図である。It is explanatory drawing which shows an elliptic curve. 従来のバイナリ法のアルゴリズムを示す説明図である。It is explanatory drawing which shows the algorithm of the conventional binary method. ダミー演算処理を実行する、従来のバイナリ法のアルゴリズムを示す説明図である。It is explanatory drawing which shows the algorithm of the conventional binary method which performs a dummy calculation process.

<発明の原理>
(楕円曲線暗号について)
公開鍵暗号としてはRSA暗号が普及しているが、近年、同じ安全性をより短い鍵長で実現できる楕円曲線暗号の普及が進んできており、デジタル家電の認証や、著作権保護に採用されている。楕円曲線暗号のもう一つ特筆すべき点は、楕円曲線上のペアリングと呼ばれる双線形写像を用いたペアリング暗号へ拡張できることである。ペアリングを利用した暗号プロトコルの研究が盛んになっており、そのような暗号としては、IDベース暗号、タイムリリース暗号、属性ベース暗号、検索可能暗号、関数型暗号などがある。
<Principle of the invention>
(About elliptic curve cryptography)
As public key cryptography, RSA cryptography is prevalent, but in recent years, elliptic curve cryptography that can achieve the same security with a shorter key length has become widespread, and it has been adopted for digital home appliance authentication and copyright protection. ing. Another notable point of elliptic curve cryptography is that it can be extended to pairing cryptography using bilinear mapping called pairing on elliptic curves. Research on cryptographic protocols using pairing is active, and examples of such ciphers include ID-based ciphers, time-release ciphers, attribute-based ciphers, searchable ciphers, and functional ciphers.

(楕円曲線の定義)
図23は楕円曲線を示す説明図である。本明細書では、Weierstrass標準形E:{y=x+ax+b}で与えられる標数p>3の有限体F上の楕円曲線の場合について記述する。楕円曲線Eに含まれる任意の2点P,Q∈E対して、{P+Q}と表記される第3の点が、図23のようなPとQとを通る直線Lを使って幾何学的に定義され、この演算{+}によってEは群を成す。
(Definition of elliptic curve)
FIG. 23 is an explanatory diagram showing an elliptic curve. In this specification, the case of an elliptic curve on a finite field F p of characteristic p> 3 given by Weierstrass standard form E: {y 2 = x 3 + ax + b} will be described. For any two points P and QεE included in the elliptic curve E, the third point represented as {P + Q} is geometrical using a straight line L passing through P and Q as shown in FIG. And E forms a group by this operation {+}.

(楕円曲線上の有理点の加法(直線による定義))
楕円曲線の重要な性質は、P,Q∈E(F)に対して第3の点{P+Q}∈E(F)が幾何学的に定義でき、無限遠点Oを零元とする加群を成すことである。Fが有限体Fの時は、E(F)は有限群となり、その位数を#E(F)と表記する。
(Addition of rational points on an elliptic curve (defined by a straight line))
An important property of elliptic curves is that a third point {P + Q} ∈E (F) can be defined geometrically with respect to P and Q∈E (F), and a module with an infinite point O as a zero element It is to make. F is when the finite field F p is, E (F p) becomes finite group is denoted the quantile and #E (F p).

この幾何学的な加法は点の座標を用いて記述することができる。P=(x,y)、Q=(x,y)とすると、P+Q=(x,y)は以下の式(1)〜式(3)で与えられる。 This geometric addition can be described using point coordinates. When P = (x 1 , y 1 ) and Q = (x 2 , y 2 ), P + Q = (x 3 , y 3 ) is given by the following formulas (1) to (3).

Figure 2017067859
Figure 2017067859

Figure 2017067859
Figure 2017067859

Figure 2017067859
Figure 2017067859

式(2)の公式は、P≠Q場合は加算、P=Qの場合は2倍算と呼ばれる。以降、アルゴリズムを表す擬似言語の図中では、加算をECADD(P,Q)、2倍算をECDBL(P)という関数形式で表す。   The formula of equation (2) is called addition when P ≠ Q and doubling when P = Q. Hereinafter, in the pseudo language diagram representing the algorithm, addition is expressed in a functional form of ECADD (P, Q), and doubling is expressed in a function format of ECDBL (P).

(スカラー倍算処理)
上述した加法の繰り返しにより、楕円曲線上の有理点と整数に対してスカラー倍数値dPは、スカラー値d個の和となる{dP=P+P+…+P}が定義される。
(Scalar multiplication)
By repeating the addition described above, {dP = P + P +... + P} is defined as the scalar multiple dP for the rational points and integers on the elliptic curve, which is the sum of d scalar values.

このような演算をスカラー倍算と呼び、楕円曲線暗号はスカラー倍算値dPからPを求めることは困難なこと(楕円曲線上の離散対数問題(ECDLP))を安全性の根拠としている。   Such an operation is called scalar multiplication, and elliptic curve cryptography is based on the fact that it is difficult to obtain P from the scalar multiplication value dP (discrete logarithm problem (ECDLP) on the elliptic curve).

実際にスカラー倍算値dPを求めるには、加算鎖アルゴリズムを用いることが一般的である。   In order to actually determine the scalar multiplication value dP, it is common to use an addition chain algorithm.

図24は代表的な加算鎖アルゴリズムである、従来のLeft to Rightバイナリ法のアルゴリズムを示す説明図である。なお、図24で示すスカラー倍算アルゴリズムAR51において、1:,2:,…7:は実行ステップ位置を示す。以下、実行ステップ位置を基準にしてステップST1〜ST7と呼ぶ。   FIG. 24 is an explanatory diagram showing a conventional Left to Right binary algorithm, which is a typical addition chain algorithm. In the scalar multiplication algorithm AR51 shown in FIG. 24, 1 :, 2 :,... 7: indicate execution step positions. Hereinafter, the steps ST1 to ST7 are referred to based on the execution step position.

図24に示すスカラー倍算アルゴリズムAR51は、スカラー値dはsビットの2進数{ds−1,ds−2,…,d,d}で表される。すなわち、スカラー値dは各々が1ビットの情報量を有するs個の桁部により表される。 In the scalar multiplication algorithm AR51 shown in FIG. 24, the scalar value d is represented by an s-bit binary number {d s−1 , d s−2 ,..., D 1 , d 0 }. That is, the scalar value d is represented by s digits each having a 1-bit information amount.

そして、スカラー値dに対し、最上位桁(s−1)から、最下位桁0にかけて、ステップST3の2倍算関数ECDBL(Q)後に、各桁部の値d(i=(s−1)〜0のいずれか)が“1”であるか否か(“0”であるか否か)に基づき、ステップST4の加算関数ECADD(P,Q)の実行の有無が分けられる桁部演算処理を実行し、最終的に最下位桁0のdの桁部演算処理によって得られる値Q(桁部演算結果)が、スカラー倍算値dPとして得られる。 Then, after the doubling function ECDBL (Q) in step ST3 from the most significant digit (s-1) to the least significant digit 0, the value d i (i = (s− 1) to 0)) is a digit part in which the presence / absence of execution of the addition function ECADD (P, Q) in step ST4 is divided based on whether or not “1” is “1”. The calculation process is executed, and finally the value Q (digit calculation result) obtained by the digit calculation process of d 0 of the least significant digit 0 is obtained as the scalar multiplication value dP.

このように、Left to Rightバイナリ法は、スカラー値dを2進数表記にしたときの各桁部(ビット)の値dによってステップST4の加算処理を行うかどうかが分岐するという特徴がある。 As described above, the Left to Right binary method has a feature that whether or not the addition process of step ST4 is performed depends on the value d i of each digit part (bit) when the scalar value d is expressed in binary notation.

(課題)
楕円曲線の演算は、一般的に楕円曲線上の点を通る直線により、有理点の加算、及び2倍算という加法が定義され、Left to Rightバイナリ法等の加算鎖アルゴリズムによって、加算(ECADD(P,Q))及び2倍算(ECDBL(Q))に展開することによってスカラー倍算処理を実現している。
(Task)
The calculation of an elliptic curve is generally defined by the addition of rational points and addition by doubling by a straight line passing through points on the elliptic curve, and the addition (ECADD ( P, Q)) and doubling (ECDBL (Q)) are expanded to realize scalar multiplication processing.

しかし、バイナリ法のアルゴリズムは秘密鍵となるスカラー(倍数)値dの各ビット値dに依存して処理時間が変化するタイミングリークが発生するため、スカラー値dが漏洩する恐れがある。 However, the binary algorithm generates a timing leak that changes the processing time depending on each bit value d i of the scalar (multiple) value d serving as a secret key, so that the scalar value d may be leaked.

図25はダミー演算処理を挿入した、従来のLeft to Rightバイナリ法のアルゴリズムを示す説明図である。なお、図25で示すスカラー倍算アルゴリズムAR52において、1:,2:,…8:は実行ステップ位置を示す。以下、実行ステップ位置を基準にしてステップST1〜ST8と呼ぶ。   FIG. 25 is an explanatory diagram showing an algorithm of a conventional Left to Right binary method in which dummy calculation processing is inserted. In the scalar multiplication algorithm AR52 shown in FIG. 25, 1 :, 2 :,... 8: indicate execution step positions. Hereinafter, steps ST1 to ST8 are referred to with the execution step position as a reference.

図25のスカラー倍算アルゴリズムAR52に示すように、一般的な対策としては、ステップST5で示すダミー演算(加算関数ECADD(Q,P))を挿入してスカラー値dのビット値dに関わらず、処理時間を一定にしている。 As shown in scalar multiplication algorithm AR52 in FIG. 25, as a general measure, regardless of the bit value d i of the scalar value d by inserting dummy operation (addition function ECADD (Q, P)) shown at step ST5 The processing time is kept constant.

このステップST5のダミー演算により得られた変数Dは、演算後破棄される。ダミー演算を挿入することにより、スカラー値dのビット値dの“0”,“1”(ゼロであるか、非ゼロであるか)に依存せず処理時間が同じになるためタイミングリークを回避することができる。 The variable D obtained by the dummy calculation in step ST5 is discarded after the calculation. By inserting a dummy operation, "0" bit value d i of the scalar value d "1" (or is zero, which is either a non-zero) timing leak since the processing time is the same without depending on It can be avoided.

しかし、このようなダミー演算がある場合、非特許文献1に開示されたように、フォルト挿入により中間結果が無限遠点Oに入った時に限り、誤りが伝播しないことを利用してスカラー倍数値を推定するセーフエラー攻撃に弱いという問題点があった。   However, when there is such a dummy operation, as disclosed in Non-Patent Document 1, a scalar multiple value is utilized by utilizing the fact that an error does not propagate only when an intermediate result enters the infinite point O by fault insertion. There is a problem that it is vulnerable to safe error attacks.

以下、セーフエラー攻撃例を説明する。スカラー倍算アルゴリズムAR52のステップST4またはステップST5で、{Q+P→O}となるようなフォルトを挿入する(例えば、Q=−Pとする)。   Hereinafter, an example of a safe error attack will be described. In step ST4 or step ST5 of the scalar multiplication algorithm AR52, a fault such as {Q + P → O} is inserted (for example, Q = −P).

すると、次に実行される(仮にi=n−1とする)ステップST3で、2Q→Oとなる場合は、d=1、そうでない場合はd=0と推定することができる。以下、この点を詳述する。 Then, in step ST3 to be executed next (assuming i = n−1), if 2Q → O, d n = 1, otherwise d n = 0 can be estimated. Hereinafter, this point will be described in detail.

ステップST4で{Q+P→O}となるようにフォルトを挿入すると、次に実行されるステップST3で“0”の倍算時に無限遠点Oであることが判明し例外処理が実行されることにより、d=1であったと予測できる。 If a fault is inserted so that {Q + P → O} is satisfied in step ST4, it is determined in step ST3 to be executed that the point at infinity O is obtained when "0" is multiplied, and exception processing is executed. , D n = 1.

一方、ステップ5で{Q+P→O}となるようにフォルトを挿入しても、D(ダミー演算結果)は破棄されるため、次に実行されるステップST3で“0”の倍算時に無限遠点Oとならず例外処理が実行されないことにより、d=0であったと予測できる。 On the other hand, even if a fault is inserted so that {Q + P → O} in step 5, D (dummy calculation result) is discarded, so that it is infinite when multiplying “0” in step ST3 to be executed next. It can be predicted that d n = 0 because point O is not reached and exception processing is not executed.

このように、ダミー演算を挿入して、d=“0”,“1”に関わらず、加算関数ECADD(P,Q)を実行するようにしても、フォルト挿入によるセーフエラー攻撃によりスカラー値dが漏洩する問題を回避することができない課題がある。 Thus, even if a dummy operation is inserted and the addition function ECADD (P, Q) is executed regardless of d i = “0”, “1”, a scalar value is generated by a safe error attack due to fault insertion. There is a problem that the problem of d leaking cannot be avoided.

以下の実施の形態1〜実施の形態4で述べる本願発明のスカラー倍算装置は、フォルト挿入によるセーフエラー攻撃によりスカラー値dが漏洩する問題を回避するという、課題の解決を図る装置である。   The scalar multiplication apparatus of the present invention described in the following first to fourth embodiments is an apparatus for solving the problem of avoiding the problem of leakage of the scalar value d due to a safe error attack due to fault insertion.

(発明の概要)
本願発明のスカラー倍算装置では、スカラー(倍数)値dに依存したタイミングリークの回避、及び無限遠点Oが特別扱いされることを利用したセーフエラー攻撃への対策として、加法公式の組み合わせによって処理時間をスカラー値のビット値に依存せず一定にしたまま、Left to Rightバイナリ法(以下、単に「バイナリ法」と略記する場合あり)に代表されるスカラー倍算アルゴリズムが成立する演算の組み合わせを提案する。
(Summary of Invention)
In the scalar multiplication apparatus of the present invention, a combination of additive formulas is used as a countermeasure against a safe error attack using the avoidance of timing leak depending on the scalar (multiple) value d and the special treatment of the infinity point O. A combination of operations that achieves a scalar multiplication algorithm typified by the Left to Right binary method (hereinafter simply abbreviated as “binary method”) while keeping the processing time constant regardless of the bit value of the scalar value. Propose.

図1は本願発明のスカラー倍算装置のスカラー倍算アルゴリズムの概要を示す説明図である。スカラー値dはそれぞれが1ビットの情報量を有する複数の桁部により構成されている。   FIG. 1 is an explanatory diagram showing an outline of a scalar multiplication algorithm of the scalar multiplication apparatus of the present invention. The scalar value d is composed of a plurality of digits each having a 1-bit information amount.

図24及び図25で示したスカラー倍算アルゴリズムAR51及びAR52で示すように、バイナリ法では、スカラー値dの桁部のビット値dが“1”の場合、{Q←2Q+P}の演算式1による桁部演算処理(非ゼロ演算処理)を行い、スカラー値dの桁部のビット値dが“0”の場合、{Q←2Q}の演算式2による桁部演算処理(ゼロ演算処理)を行って、それぞれ桁部演算結果を得る必要がある。 24 and as indicated by the scalar multiplication algorithm AR51 and AR52 shown in FIG. 25, the binary method, when the bit value d i of the digits of the scalar value d is "1", arithmetic expressions {Q ← 2Q + P} for 1 according girder processing (non-zero processing), if the bit value d i of the digits of the scalar value d is "0", {Q ← 2Q } girder arithmetic processing by the arithmetic equation 2 (zero operation It is necessary to obtain the digit calculation result for each.

このように、バイナリ法に代表されるスカラー倍算アルゴリズムは、桁部の値が“0”の場合に実行するゼロ演算処理と、“1”の場合(“0”以外の場合)に実行する非ゼロ演算処理とは演算処理内容が異なっている。   As described above, the scalar multiplication algorithm represented by the binary method is executed when the value of the digit part is “0” and when it is “1” (when it is other than “0”). The content of arithmetic processing is different from non-zero arithmetic processing.

そこで、本願発明は、スカラー値dの桁部のビット値dが“1”の場合、図1(a)に示すように、ステップSP11〜SP13を実行することにより、{Q←2Q+P}の演算式1を実現している。ステップSP11は2倍算処理であり、ステップSP12及びSP13は加算処理(第1及び第2の加算処理)である。 Therefore, in the present invention, when the bit value d i of the digit part of the scalar value d is “1”, as shown in FIG. 1A, by executing steps SP11 to SP13, {Q ← 2Q + P} Formula 1 is realized. Step SP11 is a doubling process, and steps SP12 and SP13 are addition processes (first and second addition processes).

一方、スカラー値dの桁部のビット値dが“0”の場合、図1(b)に示すように、ステップSP01〜SP03を実行することにより、{Q←2Q}の演算式2を実現している。ステップSP01は2倍算処理であり、ステップSP02及びSP03は加算処理(第1及び第2の加算処理)である。なお、ステップSP03及びステップSP13も{B←(−P)}とした加算処理に含まれる。 On the other hand, when the bit value d i of the digit part of the scalar value d is “0”, as shown in FIG. 1 (b), by executing steps SP01 to SP03, the equation 2 of {Q ← 2Q} is obtained. Realized. Step SP01 is a doubling process, and steps SP02 and SP03 are addition processes (first and second addition processes). Note that step SP03 and step SP13 are also included in the addition process of {B ← (−P)}.

このように、ゼロ演算処理(ステップSP01〜SP03)及び非ゼロ演算処理(ステップSP11〜SP13)を共に、倍算器を用いた2倍算処理(SP01,SP11)、主として加算演算部5を用いた第1の加算処理(SP02,SP12)、及び主として加算演算部5を用いた第2の加算処理(SP03,SP13)の順で行い、第2の加算処理の演算結果(ステップSP03及びSP13で得られたQ)を最終的に得られる桁部演算結果としている。   Thus, both the zero calculation process (steps SP01 to SP03) and the non-zero calculation process (steps SP11 to SP13) are doubled using a multiplier (SP01, SP11), mainly using the addition calculation unit 5. The first addition process (SP02, SP12) and the second addition process (SP03, SP13) mainly using the addition calculation unit 5 are performed in this order, and the calculation result of the second addition process (in steps SP03 and SP13) The obtained Q) is the digit part calculation result finally obtained.

ここで、ステップSP12及びSP13並びにステップSP02及びSP03においてと、「Q=A」または「Q=B」となった場合は加算処理の代わりに例外的に2倍算処理を行う。実行するアルゴリズムが変動するため、タイミングリークが発生すると考えられるが、スカラー値dの桁部の値に起因するものではないため、スカラー値dの漏洩には影響しない。また、ステップSP01〜SP03の処理は冗長ではあるが、上記演算式2を成立させるために必要な演算処理のみにより構成されているため、無限遠点Oを利用したフォルト挿入によるセーフエラー攻撃の影響も受けない。   Here, in steps SP12 and SP13 and steps SP02 and SP03, when “Q = A” or “Q = B”, the doubling process is exceptionally performed instead of the addition process. It is considered that a timing leak occurs because the algorithm to be executed fluctuates. However, since it is not caused by the digit value of the scalar value d, the leakage of the scalar value d is not affected. In addition, although the processing of steps SP01 to SP03 is redundant, it is composed only of the arithmetic processing necessary for establishing the above-described arithmetic expression 2, and therefore the influence of the safe error attack by the fault insertion using the infinity point O. I don't get it either.

以上の説明したように、図1で示したゼロ演算処理(ステップSP01〜SP03)及び非ゼロ演算処理(ステップSP11〜SP13)を採用した本願発明のスカラー倍算装置は、秘密鍵であるスカラー(倍数)値dに対する2種類のサイドチャネル攻撃(「タイミングリークによるスカラー値の漏洩」と「フォルト挿入によるセーフエラー攻撃」)を防ぐことができる。   As described above, the scalar multiplication apparatus of the present invention adopting the zero calculation process (steps SP01 to SP03) and the non-zero calculation process (steps SP11 to SP13) shown in FIG. It is possible to prevent two types of side channel attacks ("scalar value leakage due to timing leak" and "safe error attack due to fault insertion") against the value d.

<実施の形態1>
図2は実施の形態1のスカラー倍算装置の構成を示すブロック図である。同図に示すように、スカラー倍算装置は、スカラー倍算用演算部1、変換スカラー値生成部3、加算演算部5、2倍算演算部6及び記憶部8を主要構成要素として有している。
<Embodiment 1>
FIG. 2 is a block diagram showing the configuration of the scalar multiplication apparatus of the first embodiment. As shown in the figure, the scalar multiplication apparatus has a scalar multiplication calculation unit 1, a conversion scalar value generation unit 3, an addition calculation unit 5, a double calculation calculation unit 6, and a storage unit 8 as main components. ing.

加算演算部(ECADD演算部)5は直線による加法に基づく加算演算を実行すべく、加算シーケンサ、有限体加算器、有限体減算器及び有限体乗算器(以下、これらを総称して「有限体演算器」と略記する場合あり)、並びに上述した有限体演算器の選択部等を含んで構成されており、2つの入力値(I1,I2)の加算演算を実行して加算演算結果(I1+I2)を得る。   An addition operation unit (ECADD operation unit) 5 performs an addition operation based on addition using a straight line, an addition sequencer, a finite field adder, a finite field subtractor and a finite field multiplier (hereinafter collectively referred to as “finite field”). And a selection unit of the above-mentioned finite field arithmetic unit, and the addition operation result of two input values (I1, I2) is executed (I1 + I2). )

2倍算演算部(ECADD演算部)6は、直線による加法に基づく2倍算演算を実行すべく、2倍算シーケンサ、有限体加算器、有限体減算器及び有限体乗算器並びに上述した有限体演算器の選択部等を含んで構成されており、1つの入力値(I)の2倍算演算を実行して2倍算演算結果(2I)を得る。   A doubling operation unit (ECADD operation unit) 6 performs a doubling operation based on addition by a straight line, a doubling sequencer, a finite field adder, a finite field subtractor, a finite field multiplier, and the above-described finite field multiplier. It includes a selection unit of a field calculator and executes a doubling operation of one input value (I) to obtain a doubling operation result (2I).

スカラー倍算用演算部1は内部の演算部選択機能により、加算演算部5及び2倍算演算部6を選択的に使用して、楕円曲線加法アルゴリズムにおける演算内容の切り替えを行う。   The scalar multiplication calculation unit 1 uses the addition unit selection function to selectively use the addition calculation unit 5 and the doubling calculation unit 6 to switch calculation contents in the elliptic curve addition algorithm.

変換スカラー値生成部3はスカラー倍算用演算部1よりスカラー値dを受け、スカラー値dに対しスカラー値変換処理を行い、変換スカラー値b,変換スカラー値a等の変換スカラー値をスカラー倍算用演算部1に出力する。なお、実施の形態1では選択値生成部3を利用することなく、スカラー値dをそのまま演算対象としている。   The conversion scalar value generation unit 3 receives the scalar value d from the arithmetic unit 1 for scalar multiplication, performs a scalar value conversion process on the scalar value d, and converts the conversion scalar value such as the conversion scalar value b and the conversion scalar value a to the scalar multiplication. Output to the arithmetic operation unit 1. In the first embodiment, the scalar value d is directly used as a calculation target without using the selection value generation unit 3.

スカラー倍算用演算部1は、入力座標点P(x,y)及びスカラー値dを受け、さらに後述するスカラー倍算アルゴリズムAR1に沿って有限体の計算を行うスカラー倍算処理を実行して、スカラー倍算値(スカラー倍数点)を得る。スカラー倍算用演算部1はスカラー倍算アルゴリズムAR1の実行時において2倍算処理及び加算処理を行う場合、演算部選択機能により、加算演算部5あるいは2倍算演算部6を選択的に使用して、加算演算部5あるいは2倍算演算部6より得られる演算結果情報を記憶部8に出力させる。そして、スカラー倍算用演算部1は当該演算結果情報を記憶部8から取得する。   The arithmetic unit for scalar multiplication 1 receives an input coordinate point P (x, y) and a scalar value d, and further executes a scalar multiplication process for calculating a finite field according to a scalar multiplication algorithm AR1 described later. , To obtain a scalar multiplication value (scalar multiple point). When the scalar multiplication algorithm AR1 is executed, the scalar multiplication arithmetic unit 1 selectively uses the addition arithmetic unit 5 or the double arithmetic unit 6 by the arithmetic unit selection function when performing the doubling process and the adding process. Then, calculation result information obtained from the addition calculation unit 5 or the doubling calculation unit 6 is output to the storage unit 8. Then, the scalar multiplication calculation unit 1 acquires the calculation result information from the storage unit 8.

記憶部8は、上述した加算演算部5あるいは2倍算演算部6からの演算結果情報以外に、入力座標点P、スカラー値d、及び変換スカラー値b,a、並びに後述する倍数テーブル及び桁部演算結果(Q,A)等のスカラー倍算処理に必要な種々の情報をさらに格納する。   The storage unit 8 includes, in addition to the calculation result information from the addition calculation unit 5 or the doubling calculation unit 6 described above, an input coordinate point P, a scalar value d, and converted scalar values b and a, and a later-described multiple table and digit. Various information necessary for scalar multiplication processing such as partial operation results (Q, A) is further stored.

実施の形態1では、上述したスカラー倍算用演算部1のみにより、スカラー値dを演算用スカラー値とし、演算用スカラー値と入力座標点Pとを演算対象として、スカラー倍演算処理を行いスカラー倍算値dPを得るスカラー倍演算機構が構成される。   In the first embodiment, only the scalar multiplication operation unit 1 described above performs a scalar multiplication operation process using the scalar value d as the operation scalar value, and the operation scalar value and the input coordinate point P as the operation targets. A scalar multiplication operation mechanism for obtaining the multiplication value dP is configured.

図3は実施の形態1のスカラー倍算装置が実行するスカラー倍算アルゴリズムAR1を模式的に示す説明図である。なお、図3で示すスカラー倍算アルゴリズムAR1において、1:,2:,…9:は実行ステップ位置を示す。以下、実行ステップ位置をステップST1〜ST9と呼ぶ。   FIG. 3 is an explanatory diagram schematically showing a scalar multiplication algorithm AR1 executed by the scalar multiplication apparatus of the first embodiment. In the scalar multiplication algorithm AR1 shown in FIG. 3, 1 :, 2 :,... 9: indicate execution step positions. Hereinafter, the execution step positions are referred to as steps ST1 to ST9.

なお、図3において、ステップST3の2倍算関数ECDBL(Q)はQの2倍算処理を行うこと示している。したがって、ステップST3は、具体的には、スカラー倍算用演算部1は演算部選択機能により、2倍算関数ECDBL(Q)を演算入力情報として2倍算演算部6に1つの入力値Q(演算入力情報)を与え、2倍算演算部6より得られるQの2倍算演算結果2Qが演算結果情報として記憶部8に格納され、記憶部8に格納された2倍算演算結果2Qをスカラー倍算用演算部1が取得する。   In FIG. 3, the doubling function ECDBL (Q) in step ST3 indicates that Q doubling processing is performed. Therefore, specifically, in step ST3, the scalar multiplication operation unit 1 uses the operation unit selection function to input one input value Q to the doubling operation unit 6 using the doubling function ECDBL (Q) as operation input information. (Calculation input information) is given, and the doubling calculation result 2Q of Q obtained from the doubling calculation unit 6 is stored in the storage unit 8 as calculation result information, and the doubling calculation result 2Q stored in the storage unit 8 is stored. Is obtained by the scalar multiplication operation unit 1.

また、図3において、ステップST4〜ST6の加算関数ECADD(Q,A(B))は2つの入力値QとA(B)との加算処理を行うことを示している。したがって、ステップST4,ST5(ST6)は、具体的には、スカラー倍算用演算部1は演算部選択機能により、加算関数ECADD(Q,A)(あるいはECADD(Q,B))に基づく2つの入力値Q及びA(B)(演算入力情報)を加算演算部5に与え、加算演算部5により得られるQとAとの加算演算結果(Q+A)あるいはQとBとの加算演算結果(Q+B)が演算結果情報として記憶部8に格納される。そして、記憶部8に格納された加算演算結果(A+B)あるいは(Q+B)をスカラー倍算用演算部1が取得する。   Further, in FIG. 3, the addition function ECADD (Q, A (B)) in steps ST4 to ST6 indicates that the addition process of two input values Q and A (B) is performed. Therefore, in steps ST4 and ST5 (ST6), specifically, the scalar multiplication operation unit 1 is based on the addition function ECADD (Q, A) (or ECADD (Q, B)) by the operation unit selection function. Two input values Q and A (B) (calculation input information) are given to the addition calculation unit 5, and the addition calculation result (Q + A) of Q and A or the addition calculation result of Q and B obtained by the addition calculation unit 5 ( Q + B) is stored in the storage unit 8 as calculation result information. Then, the arithmetic unit for scalar multiplication 1 acquires the addition operation result (A + B) or (Q + B) stored in the storage unit 8.

ただし、加算関数ECADD(Q,A(B))おいてQ=AあるいはQ=Bの場合、演算部選択機能は例外的に、2倍算演算部6に一つの入力値Qを与え、倍算演算部6より得られるQの2倍算演算結果2Qが演算結果情報となる。   However, when Q = A or Q = B in the addition function ECADD (Q, A (B)), the operation unit selection function is exceptionally given one input value Q to the doubling operation unit 6 and multiplied by The doubling calculation result 2Q obtained from the calculation calculation unit 6 is calculation result information.

図3に示すように、スカラー倍算アルゴリズムAR1では、ステップST3で図1のステップSP11(あるいはステップSP01)を実行し、ステップST4で図1のステップSP12、ステップST5で図1のステップSP02を実行し、ステップST6で図1のステップSP13(あるいはステップSP03)を実行するようにしている。   As shown in FIG. 3, in the scalar multiplication algorithm AR1, step SP11 (or step SP01) in FIG. 1 is executed in step ST3, step SP12 in FIG. 1 is executed in step ST4, and step SP02 in FIG. 1 is executed in step ST5. In step ST6, step SP13 (or step SP03) in FIG. 1 is executed.

図4は実施の形態1のスカラー倍算装置によるスカラー倍算アルゴリズムAR1の実行例を模式的に示す説明図である。以下、スカラー倍算用演算部1が実行するスカラー倍算アルゴリズムAR1の概要を、図3及び図4を参照して説明する。   FIG. 4 is an explanatory view schematically showing an execution example of the scalar multiplication algorithm AR1 by the scalar multiplication apparatus of the first embodiment. The outline of the scalar multiplication algorithm AR1 executed by the scalar multiplication operation unit 1 will be described below with reference to FIGS.

(1)スカラー倍算装置に入力座標点Pとスカラー値dを入力し、入力座標点Pをスカラー倍算用演算部1に取り込むとともに、必要に応じて記憶部8に格納する(図3のInput:…に相当)。   (1) The input coordinate point P and the scalar value d are input to the scalar multiplication device, and the input coordinate point P is taken into the scalar multiplication operation unit 1 and stored in the storage unit 8 as required (FIG. 3). Input: Equivalent to ...

(2)上記処理(1)の際、Left to Rightバイナリ法のアルゴリズムで計算を行うため、スカラー値dに関しs個の桁部がそれぞれ1ビット情報を有する表記とする。   (2) In the case of the above process (1), since the calculation is performed by the algorithm of the Left to Right binary method, the s digits of the scalar value d are each represented by 1-bit information.

したがって、図3に示すように、スカラー値d={ds−1,ds−2,…,d,dで表される。例えば、図4(a)に示すように、s=12とした、スカラー値d“101001111011”(=(2683)10)の値を有する、d11〜dがスカラー倍算用演算部1内に取り込まれ、必要に応じて記憶部8に格納される。 Therefore, as shown in FIG. 3, it is represented by a scalar value d = {d s−1 , d s−2 ,..., D 1 , d 0 } 2 . For example, as shown in FIG. 4A, s = 12, and a scalar value d “101001111011” 2 (= (2683) 10 ), d 11 to d 0 are scalar multiplication operation units 1. And stored in the storage unit 8 as necessary.

(3)1つ上位の桁部における桁部演算結果Q(初期値は無限遠点O)の2倍算値(2倍点)2Qを計算し、記憶部8に格納する(図3のステップST3に相当)。   (3) Calculate the doubling value (double point) 2Q of the digit part calculation result Q (initial value is infinity point O) in the upper digit part and store it in the storage unit 8 (step of FIG. 3) Equivalent to ST3).

例えば、MSB(最上位(s−1))の桁部の値d11に対する演算処理P1では、桁部演算結果Qの初期値は無限遠点Oであるため、2倍算関数ECDBL(Q)の演算結果も無限遠点Oとなり、ステップST3が実行されない場合と実質的に同じになる(図4では図示せず)。 For example, MSB in the arithmetic processing P1 to the value d 11 of the column portions of the (topmost (s-1)), since the initial value of the girder operation result Q is a point at infinity O, 2 multiplication function ECDBL (Q) The result of the calculation is also an infinite point O, which is substantially the same as when step ST3 is not executed (not shown in FIG. 4).

また、MSB−1(=s−2)の桁部の値d10に対する演算処理P2(1行目)では、1つ上位の桁部の演算処理P1の桁部演算結果QがPであったため、Pの2倍算値2P(=P×2)が得られる。 Further, MSB-1 (= s- 2) In the processing P2 (1 line) for the values d 10 digit portion of, for girder operation result Q of the arithmetic processing P1 digit portion of one upper was P , P doubling value 2P (= P × 2) is obtained.

(4)d(i=(s−1)〜0のいずれか)が“1”の場合、A=2Pとして加算処理(Q+A)(第1の加算処理)を実行し(ステップST4に相当)、dが“0”の場合、A=Pとして加算処理(Q+A)(第1の加算処理)を実行する(図3のステップST5に相当)。 (4) When d i (any of i = (s−1) to 0) is “1”, addition processing (Q + A) (first addition processing) is executed with A = 2P (corresponding to step ST4). ), When d i is “0”, the addition process (Q + A) (first addition process) is executed with A = P (corresponding to step ST5 in FIG. 3).

例えば、d(=“1”)に対して行う演算処理P3(2行目)では、Q(=4P)+2Pの加算処理が実行され、d(=“0”)に対して行う演算処理P4(2行目)では、Q(=10P)+Pの加算処理が実行される。 For example, in the calculation process P3 (second row) performed on d 9 (= “1”), an addition process of Q (= 4P) + 2P is executed, and the calculation performed on d 8 (= “0”) In the process P4 (second line), an addition process of Q (= 10P) + P is executed.

(5)B=−Pとして加算処理(第2の加算処理)を実行して、i桁の桁部(d)の桁部演算結果Qを得る(ステップST6に相当)。 (5) Addition processing (second addition processing) is executed with B = −P, and a digit portion calculation result Q of the i-digit digit portion (d i ) is obtained (corresponding to step ST6).

例えば、d(=“1”)に対して行う演算処理P3(3行目)では、Q(=6P)+(−P)の加算処理が実行される。 For example, in the calculation process P3 (third line) performed for d 9 (= “1”), an addition process of Q (= 6P) + (− P) is executed.

(6)桁数iを“1”繰り下げた後(ステップST7に相当)、上記処理(3)〜(5)を繰り返す。   (6) After decrementing the number of digits i by “1” (corresponding to step ST7), the above processes (3) to (5) are repeated.

そして、スカラー倍算用演算部1は、最終的にi=0のとき、dに対する演算処理P12の第2の加算処理(処理(5))によって得られるLSB(最下位“0”)の桁部の桁部演算結果Q=2683Pが、スカラー倍算値dPとなる。 Then, the scalar multiplication calculation unit 1 finally calculates the LSB (lowest order “0”) obtained by the second addition process (process (5)) of the calculation process P12 for d 0 when i = 0. The digit part calculation result Q = 2683P of the digit part becomes the scalar multiplication value dP.

このように、演算処理P1〜P12のうち、最初の演算処理P1を除いて、dの値の“0”,“1”に関わらず、2倍算処理(図3のステップST3)→第1の加算処理(図3のステップST4あるいはST5)→第2の加算処理(図3のステップST6)の順番で11回実行するため、ダミー演算を行うことなく処理時間を一定にすることができる。 Thus, among the operation processing P1 to P12, with the exception of the first arithmetic processing P1, "0" of the value of d i, regardless of "1", doubling the processing (step ST3 in FIG. 3) → first Since the processing is executed 11 times in the order of 1 addition processing (step ST4 or ST5 in FIG. 3) → second addition processing (step ST6 in FIG. 3), the processing time can be made constant without performing dummy calculation. .

(効果等)
上述したように、実施の形態1のスカラー倍算装置において、スカラー倍算用演算部1によって行うスカラー倍演算処理は、スカラー値dを構成する複数の桁部に対応して実行され、各々が桁部演算結果を得る複数の桁部演算処理(図4(b)の演算処理P1〜P12に相当)を含んでいる。そして、複数の桁部演算処理の実行により、隣接する桁部間で上位から下位に桁部演算結果Qを記憶部8を介して伝搬しつつ、最上位(n−1)から最下位(0)にかけて桁部単位に桁部演算結果Qを順次得て、最下位の桁部に対応する桁部演算処理(図4(b)の演算処理P12に相当)より得られる桁部演算結果Qをスカラー倍算値dPとして取得している。
(Effects etc.)
As described above, in the scalar multiplication apparatus of the first embodiment, the scalar multiplication operation performed by the scalar multiplication operation unit 1 is executed corresponding to a plurality of digit parts constituting the scalar value d. A plurality of digit part calculation processes (corresponding to the calculation processes P1 to P12 in FIG. 4B) for obtaining a digit part calculation result are included. Then, by executing a plurality of digit part arithmetic processes, the digit part calculation result Q is propagated from the upper part to the lower part between the adjacent digit parts via the storage unit 8, while the highest order (n−1) to the lowest order (0 ) To obtain the digit part calculation result Q sequentially for each digit part, and the digit part calculation result Q obtained from the digit part calculation process corresponding to the lowest digit part (corresponding to the calculation process P12 in FIG. 4B). Obtained as a scalar multiplication value dP.

上述した複数の桁部演算処理はそれぞれ、加算演算部5及び2倍算演算部6を用いて実行され、桁部のdが“0”の場合はゼロ演算処理(図2のステップSP01〜SP03)を実行して桁部演算結果Qを取得し、“1”の場合(“0”以外の場合)は上記ゼロ演算処理と異なる演算内容の非ゼロ演算処理(図2のステップSP11〜SP13)を実行して桁部演算結果Qを取得している。 Each of the plurality of column portions arithmetic processing described above is performed using the addition operation unit 5 and the doubling calculation unit 6, the zero processing in the case of d i of the girder is "0" (Step of Fig. 2 SP01~ SP03) is executed to obtain the digit part calculation result Q. If “1” (other than “0”), the non-zero calculation process (steps SP11 to SP13 in FIG. 2) is different from the zero calculation process. ) To obtain the digit calculation result Q.

そして、実施の形態1のスカラー倍算装置は、上記ゼロ演算処理及び上記非ゼロ演算処理を共に、2倍算処理、第1の加算処理、及び第2の加算処理の順で行い、第2の加算処理の演算結果を桁部演算結果としたことを特徴としている。   The scalar multiplication apparatus according to the first embodiment performs both the zero calculation process and the non-zero calculation process in the order of the doubling process, the first addition process, and the second addition process. The result of the addition processing is the digit part calculation result.

実施の形態1のスカラー倍算装置は、上記特徴を有することにより、ゼロ演算処理及び非ゼロ演算処理間で共通の演算処理(2倍算処理、第1及び第2の加算処理)の実行後にはじめて桁部演算結果を得ているため、スカラー値d(演算用スカラー値)の桁部の値が“0”か非“0”かによって演算処理時間の変化が生じない。したがって、ゼロ演算処理及び非ゼロ演算処理間における演算処理時の差異に基づくタイミングリークを確実に回避することができる。   The scalar multiplication apparatus according to the first embodiment has the above-described characteristics, so that after the execution of the common arithmetic processing (double arithmetic processing, first and second addition processing) between the zero arithmetic processing and the non-zero arithmetic processing Since the digit part calculation result is obtained for the first time, the arithmetic processing time does not change depending on whether the digit part value of the scalar value d (scalar value for calculation) is “0” or non- “0”. Therefore, it is possible to reliably avoid timing leaks based on the difference in the arithmetic processing between the zero arithmetic processing and the non-zero arithmetic processing.

さらに、実施の形態1において、ゼロ演算処理及び非ゼロ演算処理間で実行される2倍算処理、第1及び第2の加算処理は全て桁部演算結果Qを得るために必要な演算処理であり、演算結果が利用されないダミー演算処理ではない。したがって、ダミー演算処理に対するセーフエラー攻撃が実行されることもない。   Further, in the first embodiment, the doubling process and the first and second addition processes executed between the zero calculation process and the non-zero calculation process are all the calculation processes necessary for obtaining the digit part calculation result Q. Yes, it is not a dummy calculation process in which the calculation result is not used. Therefore, the safe error attack for the dummy calculation process is not executed.

加えて、スカラー倍算処理以外のサイドチャネル攻撃用の演算処理を特に必要としていないため、実施の形態1のスカラー倍算装置を比較的簡単な構成で実現できる。   In addition, since the arithmetic processing for side channel attack other than the scalar multiplication processing is not particularly required, the scalar multiplication apparatus of the first embodiment can be realized with a relatively simple configuration.

その結果、タイミングリークの検知及びセーフエラー攻撃を含むサイドチャネル攻撃に強く、セキュリティー性が高いスカラー倍演算処理を実行する実施の形態1のスカラー倍算装置を比較的簡単な構成で得ることができる。   As a result, it is possible to obtain the scalar multiplication apparatus according to the first embodiment that performs scalar multiplication processing that is resistant to side channel attacks including timing leak detection and safe error attacks and has high security with a relatively simple configuration. .

なお、実施の形態1のスカラー倍算装置は、外部より入力されるスカラー値d(入力スカラー値)を、スカラー倍算用演算部1がスカラー倍算処理を行うための演算対象となる演算用スカラー値として用いている。したがって、演算用スカラー値(スカラー値d)を構成する複数の桁部はそれぞれ1ビットの情報量を有している。また、図1のステップSP01あるいはステップSP11として実行する2倍算処理は2倍算演算部6を1回用いて1回倍算値を得る処理となる。   The scalar multiplication apparatus according to the first embodiment uses a scalar value d (input scalar value) input from the outside for an operation target for the scalar multiplication operation unit 1 to perform a scalar multiplication process. Used as a scalar value. Therefore, each of the plurality of digits constituting the arithmetic scalar value (scalar value d) has an information amount of 1 bit. Further, the doubling process executed as step SP01 or step SP11 in FIG. 1 is a process for obtaining a doubling value once by using the doubling operation unit 6 once.

このように、実施の形態1のスカラー倍算装置は、スカラー値d(入力スカラー値)をそのまま演算用スカラー値として用いるバイナリ法を採用したスカラー倍演算処理をセキュリティー性を高めて実行することができる効果を奏する。   As described above, the scalar multiplication apparatus according to the first embodiment can execute the scalar multiplication operation using the binary method using the scalar value d (input scalar value) as it is as the scalar value for calculation with improved security. There is an effect that can be done.

<実施の形態2>
実施の形態2は、Window法を採用したスカラー倍算装置である。Window法とは、スカラー倍数値をMビットのウィンドウ形式に変換して得られる変換スカラー値を演算用スカラー値としてスカラー倍算処理を行う加算鎖アルゴリズムの一種である。Window法は楕円曲線演算をバイナリ法より高速に行うことができる利点を奏している。
<Embodiment 2>
The second embodiment is a scalar multiplication apparatus that employs the Window method. The Window method is a kind of addition chain algorithm that performs a scalar multiplication process using a converted scalar value obtained by converting a scalar multiple value into an M-bit window format as an arithmetic scalar value. The Window method has the advantage that the elliptic curve calculation can be performed faster than the binary method.

(Window法の概要)
Window法のアルゴリズムにおけるスカラー倍算処理は、「Window変換」(スカラー値変換処理)、「事前計算」(テーブル作成処理)、及び「本計算」(スカラー倍算本処理)の3つの処理に分類される。
(Outline of the window method)
The scalar multiplication processing in the algorithm of the Window method is classified into three processes: “Window conversion” (scalar value conversion processing), “pre-calculation” (table creation processing), and “main calculation” (scalar multiplication main processing). Is done.

図5はWindow法におけるスカラー値変換処理の(Window)変換アルゴリズムAR61を模式的に示す説明図である。なお、図5で示す変換アルゴリズムAR61において、1:,2:,…12:は実行ステップ位置を示す。以下、実行ステップ位置を基準にしてステップST1〜ST12と呼ぶ。   FIG. 5 is an explanatory view schematically showing a (Window) conversion algorithm AR61 of scalar value conversion processing in the Window method. In the conversion algorithm AR61 shown in FIG. 5, 1 :, 2 :,... 12: indicate execution step positions. Hereinafter, the steps ST1 to ST12 are referred to based on the execution step position.

図5のステップST3において、c[w−1:0]は変数cにおける最下位wビットを意味する。   In step ST3 of FIG. 5, c [w-1: 0] means the least significant w bits in the variable c.

図5で示す変換アルゴリズムAR61を実行することにより、スカラー値dから、各々がMビット(=w≧2)の情報量の複数の桁部を有する変換スカラー値bを得ることができる。   By executing the conversion algorithm AR61 shown in FIG. 5, a conversion scalar value b having a plurality of digits each having an information amount of M bits (= w ≧ 2) can be obtained from the scalar value d.

例えば、スカラー値dが“101001111011”(=(2683)であり、M=w=4の場合、スカラー値変換処理を実行することにより、スカラー値dを4ビット単位にWindow変換して、変換スカラー値b(データb=“1010”、データb=“0111”)、データb=“1011”)を得ることができる。すなわち、変換スカラー値bは、データb〜データbを有する3つの桁部から構成される。 For example, when the scalar value d is “101001111011” 2 (= (2683) and M = w = 4, the scalar value conversion process is executed to convert the scalar value d into a 4-bit unit for window conversion. A scalar value b (data b 2 = “1010”, data b 1 = “0111”), data b 0 = “1011”) can be obtained. That is, the conversion scalar value b is composed of three digits having data b 2 to data b 0 .

図6はWindow法における従来のテーブル作成処理である事前計算アルゴリズムAR62を模式的に示す説明図である。なお、図6で示す事前計算アルゴリズムAR62において、1:,2:,…5:は実行ステップ位置を示す。以下、実行ステップ位置を基準にしてステップST1〜ST5と呼ぶ。   FIG. 6 is an explanatory diagram schematically showing a pre-calculation algorithm AR62 which is a conventional table creation process in the Window method. In the pre-calculation algorithm AR62 shown in FIG. 6, 1 :, 2 :,... 5: indicate execution step positions. Hereinafter, steps ST1 to ST5 are referred to with the execution step position as a reference.

図6で示す事前計算アルゴリズムAR62を実行することにより、入力座標点Pを整数倍して得られる整数倍座標点を複数種計算し、{テーブルT〜Tβ}として記憶部8内に格納される。 By executing the pre-calculation algorithm AR62 shown in FIG. 6, a plurality of types of integer multiple coordinate points obtained by multiplying the input coordinate point P by an integer are calculated and stored in the storage unit 8 as {table T 1 to T β }. Is done.

図7はWindow法における従来のスカラー倍算本処理である本計算アルゴリズムAR63を模式的に示す説明図である。なお、図7で示す本計算アルゴリズムAR63において、1:,2:,…11:は実行ステップ位置を示す。以下、実行ステップ位置を基準にしてステップST1〜ST11と呼ぶ。   FIG. 7 is an explanatory view schematically showing a main calculation algorithm AR63 which is a conventional scalar multiplication main process in the Window method. In the calculation algorithm AR63 shown in FIG. 7, 1 :, 2 :,... 11: indicate execution step positions. Hereinafter, the steps ST1 to ST11 are referred to based on the execution step position.

このように、変換アルゴリズムAR61、事前計算アルゴリズムAR62及び本計算アルゴリズムAR63からなるスカラー倍算処理を実行するのが従来のWindow法である。   As described above, the conventional window method executes the scalar multiplication process including the conversion algorithm AR61, the pre-calculation algorithm AR62, and the main calculation algorithm AR63.

図7に示すように、従来のスカラー倍算本処理では、変換スカラー値bの桁部の値bが非“0”の場合はステップST7及びST8が実行され、値bが“0”の場合はステップST7及びST8が実行されない。 As shown in FIG. 7, in the conventional scalar multiplication main process, when the digit b i of the converted scalar value b is non- “0”, steps ST7 and ST8 are executed, and the value b i is “0”. In this case, steps ST7 and ST8 are not executed.

したがって、従来のWindow法に対するサイドチャネル攻撃については、桁部の値(Window値)であるbが“0”と非“0”の場合で処理が分岐しているため、タイミングリークを完全に隠蔽することができない問題点があった。 Therefore, the side channel attacks against traditional Window method, the processing when the value of the girder non as the (Window value) b i is "0", "0" is branched, fully timing leak There was a problem that could not be concealed.

(構成)
上記問題点の解決を図りつつ、Window法を採用したのが実施の形態2のスカラー倍算装置である。
(Constitution)
The scalar multiplication apparatus of the second embodiment adopts the window method while solving the above problems.

装置構成は図2で示した実施の形態1と同様であるが、変換スカラー値生成部3が上述したスカラー値変換処理を行い、スカラー値dから変換スカラー値bを得る点、スカラー倍算用演算部1が変換スカラー値bを演算用スカラー値として、後述するテーブル作成処理及びスカラー倍算本処理を行う点が大きく異なる。   The apparatus configuration is the same as that of the first embodiment shown in FIG. 2, except that the conversion scalar value generation unit 3 performs the above-described scalar value conversion processing and obtains the conversion scalar value b from the scalar value d. For scalar multiplication The difference is that the calculation unit 1 performs a table creation process and a scalar multiplication main process, which will be described later, using the converted scalar value b as a calculation scalar value.

そして、実施の形態2において、スカラー倍算用演算部1及び変換スカラー値生成部3により、変換スカラー値bを演算用スカラー値とし、演算用スカラー値と入力座標点Pとを演算対象として、スカラー倍演算処理を行いスカラー倍算値dPを得るスカラー倍演算機構が構成される。   In the second embodiment, the scalar multiplication calculation unit 1 and the conversion scalar value generation unit 3 set the conversion scalar value b as the calculation scalar value, and the calculation scalar value and the input coordinate point P as calculation targets. A scalar multiplication operation mechanism that performs a scalar multiplication operation process to obtain a scalar multiplication value dP is configured.

変換スカラー値生成部3はスカラー値dを受け、スカラー値dに基づき、変換アルゴリズムAR11(図5で示した変換アルゴリズムAR61と同じ)によるスカラー値変換処理を実行して変換スカラー値bを取得し、取得した変換スカラー値bをスカラー倍算用演算部1に出力する。   The conversion scalar value generation unit 3 receives the scalar value d, and executes the scalar value conversion processing by the conversion algorithm AR11 (same as the conversion algorithm AR61 shown in FIG. 5) based on the scalar value d to obtain the conversion scalar value b. The obtained converted scalar value b is output to the scalar multiplication operation unit 1.

スカラー倍算用演算部1は、後述するテーブル作成処理を実行して入力座標点Pを整数倍して得られる整数倍座標点を複数種有する倍数テーブルを作成して記憶部8に格納する。   The scalar multiplication calculation unit 1 creates a multiple table having a plurality of types of integer multiple coordinate points obtained by executing table creation processing to be described later and multiplying the input coordinate point P by an integer, and stores it in the storage unit 8.

そして、スカラー倍算用演算部1は、変換スカラー値生成部3から変換スカラー値bを受け、変換スカラー値b及び入力座標点Pを演算対象として後述するスカラー倍算本処理を実行してスカラー倍算値dPを得る。なお、変換スカラー値b及び入力座標点Pは必要に応じて記憶部8に格納される。   Then, the scalar multiplication calculation unit 1 receives the conversion scalar value b from the conversion scalar value generation unit 3 and executes a scalar multiplication main process, which will be described later, with the conversion scalar value b and the input coordinate point P as calculation targets. A multiplication value dP is obtained. The converted scalar value b and the input coordinate point P are stored in the storage unit 8 as necessary.

(アルゴリズム)
図8はWindow法における実施の形態2のテーブル作成処理である事前計算アルゴリズムAR12を模式的に示す説明図である。なお、図8で示す事前計算アルゴリズムAR12において、1:,2:,…5:は実行ステップ位置を示す。以下、実行ステップ位置を基準にしてステップST1〜ST5と呼ぶ。
(algorithm)
FIG. 8 is an explanatory diagram schematically showing a pre-calculation algorithm AR12 that is a table creation process according to the second embodiment in the Window method. In the pre-calculation algorithm AR12 shown in FIG. 8, 1 :, 2 :,... 5: indicate execution step positions. Hereinafter, steps ST1 to ST5 are referred to with the execution step position as a reference.

図8で示す事前計算アルゴリズムAR12を実行することにより、入力座標点Pを整数倍して得られる整数倍座標点を複数個計算し、倍数テーブル{T〜Tβ}として記憶部8内に格納される。 By executing the pre-calculation algorithm AR12 shown in FIG. 8, a plurality of integer multiple coordinate points obtained by multiplying the input coordinate point P by an integer is calculated and stored in the storage unit 8 as a multiple table {T 2 to T β }. Stored.

図9はWindow法における実施の形態2のスカラー倍算本処理である本計算アルゴリズムAR13を模式的に示す説明図である。なお、図9で示す本計算アルゴリズムAR13において、1:,2:,…13:は実行ステップ位置を示す。以下、実行ステップ位置を基準にしてステップST1〜ST13と呼ぶ。   FIG. 9 is an explanatory view schematically showing the present calculation algorithm AR13 which is the scalar multiplication main process of the second embodiment in the Window method. In this calculation algorithm AR13 shown in FIG. 9, 1 :, 2 :,... 13: indicate execution step positions. Hereinafter, steps ST1 to ST13 are referred to with reference to the execution step position.

図10は実施の形態2のスカラー倍算装置による本計算アルゴリズムAR13の実行例を模式的に示す説明図である。以下、スカラー倍算用演算部1が実行する本計算アルゴリズムAR13の概要を、図9及び図10を参照して説明する。なお、図10で示す例では、Window幅Mである各桁部のビット数を4ビットとしている。   FIG. 10 is an explanatory diagram schematically showing an execution example of the calculation algorithm AR13 by the scalar multiplication apparatus of the second embodiment. Hereinafter, an outline of the calculation algorithm AR13 executed by the scalar multiplication operation unit 1 will be described with reference to FIGS. In the example shown in FIG. 10, the number of bits of each digit part having the window width M is 4 bits.

(1)スカラー倍算装置に入力座標点Pとスカラー値d(入力スカラー値)を入力し、入座標点Pをスカラー倍算用演算部1に取り込むとともに、必要に応じて記憶部8に格納する。一方、変換スカラー値生成部3は変換アルゴリズムAR11を採用したスカラー値変換処理を実行することにより、スカラー値dを変換スカラー値bに変換し、変換スカラー値bをスカラー倍算用演算部1に出力する(図9のInput:…に相当)。   (1) Input coordinate point P and scalar value d (input scalar value) are input to the scalar multiplication device, and the input coordinate point P is taken into the scalar multiplication operation unit 1 and stored in the storage unit 8 as necessary. To do. On the other hand, the conversion scalar value generation unit 3 executes a scalar value conversion process employing the conversion algorithm AR11, thereby converting the scalar value d into the conversion scalar value b, and converting the conversion scalar value b into the scalar multiplication operation unit 1. Output (corresponding to Input: in FIG. 9).

(2)上記処理(1)の際、Window法のアルゴリズムで計算を行うため、変換スカラー値bに関しn個の桁部がそれぞれ4ビット(Mビット)情報を有する表記とする。   (2) At the time of the above process (1), since calculation is performed by the algorithm of the Window method, the n digits of the converted scalar value b are each represented by 4-bit (M-bit) information.

図9に示すように、変換スカラー値b={bn−1,…,b}で表される。例えば、図10(a)に示すように、n=3とした、変換スカラー値b(データb=10、データb=7、データb=11)の値を有する、b〜bとなる。 As shown in FIG. 9, the conversion scalar value is represented by b = {b n−1 ,..., B 0 }. For example, as shown in FIG. 10 (a), b 2 to b having values of conversion scalar value b (data b 2 = 10, data b 1 = 7, data b 0 = 11), where n = 3. 0 .

(3)1つ上位の桁部における桁部演算結果A(初期値“無限遠点O”)の2倍点(w回倍算値)である2Aを計算し、記憶部8に格納する(図9のステップST2〜ST4に相当)。 (3) a 2 w A a 2 w multiplied point of the girder operation result A (initial value "infinity point O ') (w Kaibai calculated value) in the girder of one higher calculated, in the storage unit 8 Store (corresponding to steps ST2 to ST4 in FIG. 9).

例えば、MSB(最上位(n−1))の桁部の値bに対する演算処理P1では、桁部演算結果Aの初期値は無限遠点Oであるため、2倍算関数ECDBL(A)の演算結果も無限遠点Oとなり、ステップST2〜ST4が実行されない場合と実質的に同じになる(図10では図示せず)。 For example, MSB in the arithmetic processing P1 for the value b 2 of the column portions of the (topmost (n-1)), since the initial value of the girder operation result A is infinity point O, 2 multiplication function ECDBL (A) The result of the calculation is also an infinite point O, which is substantially the same as when steps ST2 to ST4 are not executed (not shown in FIG. 10).

また、MSB−1(=n−2)の桁部の値bに対する演算処理P2(1〜4行目)では、1つ上位の桁部の演算処理P1の桁部演算結果Aが10Pであったため、Pの2倍算を4(=M=w)回繰り返して行う4回倍算値である倍算値160P(=10P×2×2×2×2)が得られる。 Further, MSB-1 (= n- 2) In the processing P2 (1 to 4 line) for the values b 1 digit of the digit portion the operation result A of the arithmetic processing P1 digit portion of one upper is at 10P Therefore, a multiplication value 160P (= 10P × 2 × 2 × 2 × 2), which is a four-fold multiplication value obtained by repeating P doubling 4 (= M = w) times, is obtained.

(4)b(i=(n−1)〜0のいずれか)が非“0”の場合、B=ePとして決定した(図9のステップST5及びST6に相当)後、加算処理(A+B)(第1の加算処理)を実行する(図9のステップST10に相当)。 (4) When b i (any one of i = (n−1) to 0) is non- “0”, B = eP is determined (corresponding to steps ST5 and ST6 in FIG. 9), and then addition processing (A + B ) (First addition process) is executed (corresponding to step ST10 in FIG. 9).

なお、eはbの値により選択される入力座標点Pの倍数値を意味し、e=(b+1)となる。すなわち、bが非“0”の場合、事前計算アルゴリズムAR12に沿ったテーブル作成処理によって得られた倍数テーブル{テーブルT〜Tβ}のうち、Tbi−1に合致する値が選択される。このように、第1の加算処理は非ゼロ演算処理の実行時に倍数テーブルを用いて行われる。 Note that e means a multiple value of the input coordinate point P selected by the value of b i , and e = (b i +1). That is, when b i is non- “0”, a value that matches T bi−1 is selected from the multiple tables {tables T 2 to T β } obtained by the table creation process according to the pre-calculation algorithm AR12. The Thus, the first addition process is performed using the multiple table when the non-zero calculation process is executed.

例えば、b(=“7”)に対して行う演算処理P2(5行目)では、e=b+1=8となり、A(=160P)+8Pの加算処理が実行される。 For example, in the calculation process P2 (5th line) performed for b 1 (= “7”), e = b 1 + 1 = 8, and an addition process of A (= 160P) + 8P is executed.

一方、bが“0”の場合、B=Pとして決定した(図9のステップST7及びST8に相当)後、加算処理(A+B)(第1の加算処理)を実行する(図9のステップST10に相当)。 On the other hand, if b i is "0", step B = after determined as P (corresponding to Step ST7 and ST8 in FIG. 9), to perform the addition processing (A + B) (first addition processing) (FIG. 9 Equivalent to ST10).

(5)−Pを用いた加算処理(第2の加算処理)を実行して、i桁の桁部(b)の桁部演算結果Aを得る(図9のステップST11に相当)。 (5) An addition process (second addition process) using -P is executed to obtain a digit part calculation result A of the i- digit part (b i ) (corresponding to step ST11 in FIG. 9).

例えば、bに対して行う演算処理P2(6行目)では、A(=168P)+(−P)の加算処理が実行される。 For example, the arithmetic processing P2 (6 line) performed on b 1, A (= 168P) + - addition processing (P) is executed.

(6)桁数iを“1”繰り下げた後(ステップST1及びST12に相当)、上記処理(3)〜(5)を繰り返す。   (6) After decrementing the number of digits i by “1” (corresponding to steps ST1 and ST12), the above processes (3) to (5) are repeated.

そして、スカラー倍算用演算部1は、最終的にi=0のとき、bに対する演算処理P3の第2の加算処理(処理(5))によって得られるLSB(最下位“0”)桁部の桁部演算結果A=2683Pを、スカラー倍算値dPとして出力する(図9のステップST13に相当)。 Then, the scalar multiplication operation unit 1 finally obtains the LSB (least significant “0”) digit obtained by the second addition process (process (5)) of the operation process P3 for b 0 when i = 0. The digit part arithmetic result A = 2683P of the part is output as a scalar multiplication value dP (corresponding to step ST13 in FIG. 9).

このように、実施の形態2のスカラー倍算装置は、スカラー倍算処理として、変換アルゴリズムAR11を採用したスカラー値変換処理、事前計算アルゴリズムAR12を採用したテーブル作成処理及び本計算アルゴリズムAR13を採用したスカラー倍算本処理を実行している。   As described above, the scalar multiplication apparatus according to the second embodiment employs the scalar value conversion process employing the conversion algorithm AR11, the table creation process employing the pre-calculation algorithm AR12, and the present calculation algorithm AR13 as the scalar multiplication process. Scalar multiplication main processing is executed.

したがって、図10(b)に示すように、演算処理P1〜P3のうち、最初の演算処理P1を除いて、bの値の“0”,非“0”に関わらず、M(=w)回繰り返して行う2倍算処理(図9のステップST2〜ST4)→第1の加算処理(図9のステップST5、ST6及びST10、あるいはST7、ST8及びST10)→第2の加算処理(図9のステップST11)の順番で2回実行するため、ダミー演算を行うことなく処理時間を一定にすることができる。 Accordingly, as shown in FIG. 10 (b), of the arithmetic processing P1 to P3, except the first processing P1, "0" of the value of b i, regardless of the non "0", M (= w ) Repeated doubling process (steps ST2 to ST4 in FIG. 9) → first addition process (steps ST5, ST6 and ST10, or ST7, ST8 and ST10 in FIG. 9) → second addition process (FIG. 9) Since the processing is executed twice in the order of step ST11), the processing time can be made constant without performing dummy calculations.

(効果等)
このように、実施の形態2のスカラー倍算装置において、スカラー倍算用演算部1によって行うスカラー倍演算処理は、変換スカラー値bを構成する複数の桁部に対応して実行され、各々が桁部演算結果を得る複数の桁部演算処理(図10(b)の演算処理P1〜P3に相当)を含んでいる。そして、複数の桁部演算処理の実行により、隣接する桁部間で上位から下位に桁部演算結果Aを記憶部8を介して伝搬しつつ、最上位(n−1)から最下位(0)にかけて桁部単位に桁部演算結果Aを順次得て、最下位の桁部に対応する桁部演算処理(図10(b)の演算処理P3に相当)より得られる桁部演算結果Aをスカラー倍算値dPとして取得する。
(Effects etc.)
As described above, in the scalar multiplication apparatus of the second embodiment, the scalar multiplication operation performed by the scalar multiplication operation unit 1 is executed corresponding to a plurality of digit parts constituting the converted scalar value b, and each of them is executed. A plurality of digit part calculation processes (corresponding to the calculation processes P1 to P3 in FIG. 10B) for obtaining a digit part calculation result are included. Then, by executing a plurality of digit part calculation processes, the digit part calculation result A is propagated through the storage unit 8 from the upper part to the lower part between adjacent digit parts, and from the highest (n−1) to the lowest (0 ) To obtain the digit part calculation result A sequentially for each digit part, and the digit part calculation result A obtained by the digit part calculation process corresponding to the lowest digit part (corresponding to the calculation process P3 in FIG. 10B). Obtained as a scalar multiplication value dP.

上述した複数の桁部演算処理はそれぞれ、加算演算部5及び2倍算演算部6を用いて実行され、桁部のbが“0”の場合にゼロ演算処理(図9のステップST8を固有の実行とする処理)を実行して桁部演算結果Aを取得し、非“0”の場合は上記ゼロ演算処理と異なる演算内容の非ゼロ演算処理(図9のステップST6を固有の実行とする処理)を実行して桁部演算結果Aを取得している。 The plurality of digit part arithmetic processes described above are respectively executed using the addition arithmetic part 5 and the doubling arithmetic part 6, and when the digit b i is “0”, the zero arithmetic process (step ST8 in FIG. 9 is performed). Execute the processing to be unique execution) to obtain the digit part operation result A. If it is non- “0”, the non-zero arithmetic processing having different operation content from the zero arithmetic processing (step ST6 in FIG. 9 is inherently executed) The digit part calculation result A is acquired.

そして、実施の形態2のスカラー倍算装置は、実施の形態1と同様、上記ゼロ演算処理及び上記非ゼロ演算処理を共に、(M(=w)回繰り返して行う)2倍算処理、第1の加算処理、及び第2の加算処理の順で行い、第2の加算処理の演算結果を桁部演算結果としたことを特徴としている。   Then, the scalar multiplication apparatus according to the second embodiment is similar to the first embodiment in that the zero calculation process and the non-zero calculation process are both performed twice (repeated M (= w) times). The first addition processing and the second addition processing are performed in this order, and the calculation result of the second addition processing is used as the digit portion calculation result.

実施の形態2のスカラー倍算装置は、上記特徴を有することにより、実施の形態1と同様、ゼロ演算処理及び非ゼロ演算処理間における演算処理時の差異に基づくタイミングリークを確実に回避することができる。   Since the scalar multiplication apparatus of the second embodiment has the above-described feature, it can reliably avoid the timing leak based on the difference in the arithmetic processing between the zero arithmetic processing and the non-zero arithmetic processing as in the first embodiment. Can do.

さらに、実施の形態2において、ゼロ演算処理及び非ゼロ演算処理間で実行されるM(=w)回繰り返して行う2倍算処理、第1及び第2の加算処理は全て桁部演算結果Aを得るために必要な演算処理であり、演算結果が利用されないダミー演算処理ではない。したがって、ダミー演算処理に対するセーフエラー攻撃が実行されることもない。   Further, in the second embodiment, the doubling process and the first and second addition processes that are repeated M (= w) times executed between the zero calculation process and the non-zero calculation process are all performed by the digit part calculation result A. Is not a dummy calculation process in which the calculation result is not used. Therefore, the safe error attack for the dummy calculation process is not executed.

加えて、スカラー倍算処理以外のサイドチャネル攻撃用の演算処理を特に必要としていないため、実施の形態2のスカラー倍算装置を比較的簡単な構成で実現できる。   In addition, since the arithmetic processing for side channel attack other than the scalar multiplication processing is not particularly required, the scalar multiplication apparatus of the second embodiment can be realized with a relatively simple configuration.

その結果、サイドチャネル攻撃に強く、セキュリティー性が高いスカラー倍演算処理を実行する実施の形態2のスカラー倍算装置を得ることができる。   As a result, it is possible to obtain the scalar multiplication apparatus according to the second embodiment that executes scalar multiplication processing that is resistant to side channel attacks and has high security.

なお、実施の形態2のスカラー倍算装置は、外部より入力されるスカラー値d(入力スカラー値)がスカラー値変換処理によって変換された変換スカラー値bをスカラー倍算処理の演算対象となる演算用スカラー値として用いている。したがって、演算用スカラー値(変換スカラー値b)を構成する複数の桁部はそれぞれM(=w)ビットの情報量を有している。また、図9のステップステップST2〜ST4として実行する、2倍算処理は2倍算演算部6をM回用いてM回倍算値を得る処理となる。   Note that the scalar multiplication apparatus according to the second embodiment uses the scalar value d (input scalar value) input from the outside as the scalar value conversion process and converts the converted scalar value b into the calculation target of the scalar multiplication process. It is used as a scalar value. Therefore, each of the plurality of digits constituting the arithmetic scalar value (conversion scalar value b) has an information amount of M (= w) bits. Further, the doubling process executed as steps ST2 to ST4 of FIG. 9 is a process of obtaining the M times multiplied value by using the doubling operation unit 6 M times.

また、第1の加算処理は、非ゼロ演算処理の実行時にテーブル作成処理によって作成された倍数テーブル{T〜Tβ}を用いて行っている。 The first addition process is performed using the multiple table {T 2 to T β } created by the table creation process when the non-zero calculation process is executed.

このように、実施の形態2のスカラー倍算装置は、変換スカラー値bを演算用スカラー値として用いるWindow法を採用したスカラー倍演算処理をセキュリティー性を高めて実行することができる効果を奏する。   As described above, the scalar multiplication apparatus according to the second embodiment has an effect that the scalar multiplication operation employing the window method using the converted scalar value b as the operation scalar value can be executed with improved security.

さらに、実施の形態2のスカラー倍算装置は、バイナリ法を採用した実施の形態1に比べて加算処理回数を少なくして処理速度を高めることができる効果も奏する。   Furthermore, the scalar multiplication apparatus of the second embodiment also has an effect that the processing speed can be increased by reducing the number of addition processes compared to the first embodiment employing the binary method.

<実施の形態3>
実施の形態3は、NAF法を採用したスカラー倍算装置である。NAF法とはスカラー値dをNAF(符号付の非隣接形式)に変換して得られる変換スカラー値を演算用スカラー値としてスカラー倍算処理を行うアルゴリズムの一種である。NAF法は加算鎖の計算をバイナリ法より高速に行える可能性が高い利点を奏している。
<Embodiment 3>
The third embodiment is a scalar multiplication apparatus that employs the NAF method. The NAF method is a kind of algorithm for performing scalar multiplication processing using a conversion scalar value obtained by converting a scalar value d into NAF (signed non-adjacent format) as a calculation scalar value. The NAF method has an advantage that the calculation of the addition chain is likely to be performed faster than the binary method.

(NAF法の概要)
NAF法のアルゴリズムにおけるスカラー倍算処理は、「NAF変換」(スカラー値変換処理)、及び「本計算」(スカラー倍算本処理)の2つの処理に分類される。
(Outline of the NAF method)
The scalar multiplication process in the NAF algorithm is classified into two processes: “NAF conversion” (scalar value conversion process) and “main calculation” (scalar multiplication main process).

図11はNAF法におけるスカラー値変換処理の(NAF)変換アルゴリズムAR71を模式的に示す説明図である。なお、図11で示す変換アルゴリズムAR71において、1:,2:,…16:は実行ステップ位置を示す。以下、実行ステップ位置を基準にしてステップST1〜ST16と呼ぶ。   FIG. 11 is an explanatory view schematically showing a (NAF) conversion algorithm AR71 of scalar value conversion processing in the NAF method. In the conversion algorithm AR71 shown in FIG. 11, 1 :, 2 :,... 16: indicate execution step positions. Hereinafter, steps ST1 to ST16 are referred to with reference to the execution step position.

図11のステップST3においてc[0]は変数cの最下位ビットを示し、ステップST4においてc[1:0]は変数cにおける最下位2ビットを意味する。   In step ST3 of FIG. 11, c [0] indicates the least significant bit of the variable c, and in step ST4, c [1: 0] indicates the least significant 2 bits of the variable c.

図11で示す変換アルゴリズムAR71を実行することにより、スカラー値dから、各々が1ビットの情報量の複数の桁部を有する変換スカラー値aを得ることができる。ただし、変換スカラー値aを構成する複数の桁部の値aは正負の情報を含んでいる。値aの正負決定処理は、図11のステップST4〜ST7の処理で行われる。 By executing the conversion algorithm AR71 shown in FIG. 11, a conversion scalar value a having a plurality of digits each having an information amount of 1 bit can be obtained from the scalar value d. However, the values a i of the plurality of digits constituting the conversion scalar value a include positive and negative information. The positive / negative determination process of the value a i is performed in the processes of steps ST4 to ST7 in FIG.

例えば、スカラー値dが“101001111011”(=(2683))の場合、変換アルゴリズムAR71を採用したスカラー値変換処理を実行することにより、スカラー値dを1ビット単位にNAF変換して、変換スカラー値a=“101010000(−1)0(−1)”を得ることができる。すなわち、変換スカラー値aは、データa11〜データaを有する12個の桁部から構成される。 For example, when the scalar value d is “101001111011” 2 (= (2683)), the scalar value conversion process adopting the conversion algorithm AR71 is executed to NAF-convert the scalar value d in 1-bit units, thereby converting the conversion scalar. The value a = “101010000 (−1) 0 (−1)” can be obtained. That is, the conversion scalar value a is composed of 12 digits having data a 11 to data a 0 .

図12はNAF法における従来のスカラー倍算本処理である本計算アルゴリズムAR73を模式的に示す説明図である。なお、図12で示す本計算アルゴリズムAR73において、1:,2:,…10:は実行ステップ位置を示す。以下、実行ステップ位置を基準にしてステップST1〜ST10と呼ぶ。   FIG. 12 is an explanatory diagram schematically showing the present calculation algorithm AR73, which is a conventional scalar multiplication main process in the NAF method. In this calculation algorithm AR73 shown in FIG. 12, 1 :, 2 :,... 10: indicate execution step positions. Hereinafter, steps ST1 to ST10 are referred to with reference to the execution step position.

このように、変換アルゴリズムAR71、及び本計算アルゴリズムAR73からなるスカラー倍算処理を実行するのが従来のNAF法である。   As described above, the conventional NAF method executes the scalar multiplication process including the conversion algorithm AR71 and the present calculation algorithm AR73.

図12に示すように、従来のスカラー倍算本処理では、変換スカラー値aの桁部の値aが非“0”の場合はステップST5あるいはステップST7を実行している。すなわち、a=“1”の場合はステップST5が実行され、a=“−1”の場合はステップST7が実行される。このように、NAF法では、非ゼロ演算処理として互いに異なる2つの非ゼロ演算処理(第1及び第2の非ゼロ演算処理)を有している。 As shown in FIG. 12, in the conventional scalar multiplication main processing, when the digit ai of the converted scalar value a is non- “0”, step ST5 or step ST7 is executed. That is, when a i = “1”, step ST5 is executed, and when a i = “− 1”, step ST7 is executed. As described above, the NAF method has two different non-zero arithmetic processes (first and second non-zero arithmetic processes) as non-zero arithmetic processes.

一方、値aが“0”の場合はステップST5及びST7は共に実行されない。 On the other hand, when the value a i is “0”, both steps ST5 and ST7 are not executed.

したがって、従来のNAF法に対するサイドチャネル攻撃については、桁部の値であるaが“0”と非“0”の場合で処理が分岐しているため、タイミングリークを完全に隠蔽することができない問題点があった。 Therefore, for the side channel attack against the conventional NAF method, the process branches when the digit ai is “0” and non- “0”, so that the timing leak can be completely hidden. There was a problem that could not be done.

(構成)
上記問題点の解決を図りつつ、NAF法を採用したのが実施の形態3のスカラー倍算装置である。
(Constitution)
The scalar multiplication apparatus of the third embodiment adopts the NAF method while solving the above problems.

装置構成は図2で示した実施の形態1と同様であるが、変換スカラー値生成部3が上述したスカラー値変換処理を行い、スカラー値dから変換スカラー値aを得る点、スカラー倍算用演算部1が変換スカラー値aを演算用スカラー値として、後述するスカラー倍算本処理を行う点が大きく異なる。   The apparatus configuration is the same as that of the first embodiment shown in FIG. 2, except that the conversion scalar value generation unit 3 performs the above-described scalar value conversion processing to obtain the conversion scalar value a from the scalar value d, and for scalar multiplication. The difference is that the calculation unit 1 performs a scalar multiplication main process, which will be described later, using the converted scalar value a as a calculation scalar value.

そして、実施の形態3において、スカラー倍算用演算部1及び変換スカラー値生成部3により、変換スカラー値aを演算用スカラー値とし、演算用スカラー値と入力座標点Pとを演算対象として、スカラー倍演算処理を行いスカラー倍算値dPを得るスカラー倍演算機構が構成される。   In the third embodiment, the scalar multiplication operation unit 1 and the conversion scalar value generation unit 3 use the conversion scalar value a as the operation scalar value and the operation scalar value and the input coordinate point P as the operation objects. A scalar multiplication operation mechanism that performs a scalar multiplication operation process to obtain a scalar multiplication value dP is configured.

変換スカラー値生成部3はスカラー値dを受け、スカラー値dに基づき、変換アルゴリズムAR21(図11で示した変換アルゴリズムAR71と同じ)によるスカラー値変換処理を実行して変換スカラー値aを取得し、変換スカラー値aをスカラー倍算用演算部1に出力する。   The conversion scalar value generation unit 3 receives the scalar value d, and executes the scalar value conversion processing by the conversion algorithm AR21 (same as the conversion algorithm AR71 shown in FIG. 11) based on the scalar value d to obtain the conversion scalar value a. The converted scalar value a is output to the scalar multiplication operation unit 1.

そして、スカラー倍算用演算部1は、変換スカラー値生成部3から取得した変換スカラー値aに基づき、変換スカラー値a及び入力座標点Pを演算対象として後述するスカラー倍算本処理を実行してスカラー倍算値dPを得る。なお、変換スカラー値a及び入力座標点Pは必要に応じて記憶部8に格納される。   Then, the scalar multiplication calculation unit 1 executes a scalar multiplication main process, which will be described later, based on the conversion scalar value a acquired from the conversion scalar value generation unit 3 with the conversion scalar value a and the input coordinate point P as calculation targets. To obtain a scalar multiplication value dP. The converted scalar value a and the input coordinate point P are stored in the storage unit 8 as necessary.

(アルゴリズム)
図13はNAF法における実施の形態3のスカラー倍算本処理である本計算アルゴリズムAR23を模式的に示す説明図である。なお、図13で示す本計算アルゴリズムAR23において、1:,2:,…14:は実行ステップ位置を示す。以下、実行ステップ位置を基準にしてステップST1〜ST14と呼ぶ。
(algorithm)
FIG. 13 is an explanatory view schematically showing the present calculation algorithm AR23 which is the scalar multiplication main process of the third embodiment in the NAF method. In this calculation algorithm AR23 shown in FIG. 13, 1 :, 2 :,... 14: indicate execution step positions. Hereinafter, the steps ST1 to ST14 are referred to based on the execution step position.

図14は実施の形態3のスカラー倍算装置による本計算アルゴリズムAR23の実行例を模式的に示す説明図である。以下、スカラー倍算用演算部1が実行する本計算アルゴリズムAR23の概要を、図13及び図14を参照して説明する。   FIG. 14 is an explanatory view schematically showing an execution example of the calculation algorithm AR23 by the scalar multiplication apparatus of the third embodiment. Hereinafter, an outline of the calculation algorithm AR23 executed by the scalar multiplication calculation unit 1 will be described with reference to FIGS.

(1)スカラー倍算装置に入力座標点Pとスカラー値d(入力スカラー値)を入力し、入座標点Pをスカラー倍算用演算部1内に取り込むとともに、必要に応じて記憶部8格納する。一方、変換スカラー値生成部3は変換アルゴリズムAR21を採用したスカラー値変換処理を実行することにより、スカラー値dを変換スカラー値aに変換し、変換スカラー値aをスカラー倍算用演算部1に出力する(図13のInput:…に相当)。   (1) Input coordinate point P and scalar value d (input scalar value) are input to the scalar multiplication device, and the input coordinate point P is taken into the scalar multiplication operation unit 1 and stored in the storage unit 8 as necessary. To do. On the other hand, the conversion scalar value generation unit 3 converts the scalar value d into the conversion scalar value a by executing a scalar value conversion process employing the conversion algorithm AR21, and converts the conversion scalar value a into the scalar multiplication operation unit 1. Output (corresponding to Input: in FIG. 13).

(2)上記処理(1)の際、NAF法のアルゴリズムで計算を行うため、変換スカラー値aに関しn個の桁部がそれぞれ正負を含む1ビット情報を有する表記とする。   (2) In the case of the above process (1), since calculation is performed using the NAF algorithm, it is assumed that n digits of the converted scalar value a each have 1-bit information including positive and negative.

図13に示すように、変換スカラー値a={an−1,…,a}で表される。例えば、図14(a)に示すように、n=12とした、変換スカラー値a=“101010000(−1)0(−1)”の値を有する、a11〜aがスカラー倍算用演算部1に出力される。 As shown in FIG. 13, the conversion scalar value is represented by a = {a n−1 ,..., A 0 }. For example, as shown in FIG. 14 (a), the conversion scalar value a = “101010000 (−1) 0 (−1)”, where n = 12, has a value of a 11 to a 0 for scalar multiplication. It is output to the calculation unit 1.

(3)1つ上位の桁部における桁部演算結果A(初期値“0”)の2倍算点である2Aを計算し、記憶部8に格納する(図13のステップST3に相当)。   (3) 2A which is a doubling point of the digit part calculation result A (initial value “0”) in the digit part one higher is calculated and stored in the storage unit 8 (corresponding to step ST3 in FIG. 13).

例えば、MSB(最上位(n−1))の桁部の値a11に対する演算処理P1では、桁部演算結果Aの初期値は無限遠点O”であるため、2倍算関数ECDBL(A)の演算結果も無限遠点Oとなり、ステップST3が実行されない場合と実質的に同じになる(図14では図示せず)。 For example, the arithmetic processing P1 for the value a 11 digit portion of the MSB (most significant (n-1)), since the initial value of the girder operation result A is the point at infinity O ", 2 multiplication function ECDBL (A ) Also becomes an infinite point O, which is substantially the same as when step ST3 is not executed (not shown in FIG. 14).

また、MSB−1(=n−2)の桁部の値a10に対する演算処理P2(1行目)では、1つ上位の桁部の演算処理P1の桁部演算結果AがPであったため、Pの2倍算を行って倍算値2P(=P×2)が得られる。 Further, MSB-1 in (= n-2) operation to the value a 10 digit portion of P2 (1 line), since the girder operation result A of the arithmetic processing P1 digit portion of one upper was P , P is doubled to obtain a doubled value 2P (= P × 2).

(4)a(i=(n−1)〜0のいずれか)が非“0”で正の場合は{B=2P,C=−P}に設定し(図13のステップST5)、非“0”で負の場合は{B=−2P,C=P}に設定した(図13のステップST7)後、加算処理(A+B)(第1の加算処理)を実行する(図13のステップST11に相当)。さらに、その後、加算処理(A+C)(第2の加算処理)を実行する(図13のステップST12に相当)。 (4) When a i (any one of i = (n−1) to 0) is non- “0” and positive, it is set to {B = 2P, C = −P} (step ST5 in FIG. 13). If non- "0" and negative, {B = -2P, C = P} is set (step ST7 in FIG. 13), and then the addition process (A + B) (first addition process) is executed (in FIG. 13). Equivalent to step ST11). Further, thereafter, an addition process (A + C) (second addition process) is executed (corresponding to step ST12 in FIG. 13).

例えば、a(=“1”)に対して行う演算処理P3(2行目)では、第1の加算処理として、A(=4P)+B(=2P)の加算処理が実行され、演算処理P3(3行目)では、第2の加算処理として、A(=6P)+B(=−P)の加算処理が実行される。 For example, in the calculation process P3 (second row) performed on a 9 (= “1”), an addition process of A (= 4P) + B (= 2P) is executed as the first addition process, and the calculation process In P3 (third line), an addition process of A (= 6P) + B (= −P) is executed as the second addition process.

また、a(=“−1”)に対して行う演算処理P10(2行目)では、第1の加算処理として、A(=672P)+B(=−2P)の加算処理が実行され、演算処理P10(3行目)では、第2の加算処理として、A(=670P)+B(=P)の加算処理が実行される。 In addition, in the calculation process P10 (second line) performed for a 2 (= “− 1”), an addition process of A (= 672P) + B (= −2P) is executed as the first addition process, In the calculation process P10 (third line), an addition process of A (= 670P) + B (= P) is executed as the second addition process.

一方、aが“0”の場合、{B=P,C=−P}に設定した(図13のステップST9)後、加算処理(A+B)(第1の加算処理)を実行し(図13のステップST11に相当)、さらに、その後、加算処理(A+C)(第2の加算処理)を実行する(図13のステップST12に相当)。 On the other hand, when a i is “0”, {B = P, C = −P} is set (step ST9 in FIG. 13), and then addition processing (A + B) (first addition processing) is executed (FIG. 13). 13 (corresponding to step ST11 in FIG. 13). Thereafter, addition processing (A + C) (second addition processing) is executed (corresponding to step ST12 in FIG. 13).

例えば、a10(=“0”)に対して行う演算処理P2(2行目)では、第1の加算処理として、A(=2P)+B(=P)の加算処理が実行され、演算処理P2(3行目)では、第2の加算処理として、A(=3P)+B(=−P)の加算処理が実行される。 For example, in the calculation process P2 (second row) performed on a 10 (= “0”), an addition process of A (= 2P) + B (= P) is executed as the first addition process, and the calculation process In P2 (third line), an addition process of A (= 3P) + B (= −P) is executed as the second addition process.

上述した第2の加算処理(図13のステップST11に相当)を実行した後、i桁の桁部(a)の桁部演算結果Aを得ることができる。桁部演算結果Aは適宜記憶部8に格納される。 After executing the above-described second addition processing (corresponding to step ST11 in FIG. 13), the digit portion calculation result A of the i-digit digit portion (a i ) can be obtained. The digit calculation result A is stored in the storage unit 8 as appropriate.

(5)桁数iを“1”繰り下げた後(ステップST2及びST13に相当)、上記処理(3)〜(4)を繰り返す。   (5) After decrementing the number of digits i by “1” (corresponding to steps ST2 and ST13), the above processes (3) to (4) are repeated.

そして、スカラー倍算用演算部1は、最終的にi=0のとき、aに対する演算処理P12の第2の加算処理(処理(4))によって得られるLSB(最下位“0”)桁部の桁部演算結果A=2683Pを、スカラー倍算値dPとして出力する(図13のステップST14に相当)。 Then, the scalar multiplication operation unit 1 finally obtains the LSB (lowest order “0”) digit obtained by the second addition process (process (4)) of the operation process P12 for a 0 when i = 0. Digit part calculation result A = 2683P is output as a scalar multiplication value dP (corresponding to step ST14 in FIG. 13).

このように、実施の形態3のスカラー倍算装置は、スカラー倍算処理として、変換アルゴリズムAR21を採用したスカラー値変換処理、及び本計算アルゴリズムAR23を採用したスカラー倍算本処理を実行している。   As described above, the scalar multiplication apparatus according to the third embodiment executes the scalar value conversion process using the conversion algorithm AR21 and the scalar multiplication main process using the calculation algorithm AR23 as the scalar multiplication process. .

したがって、演算処理P1〜P12のうち、最初の演算処理P1を除いて、aの値の“0”,非“0”(正,負)に関わらず、2倍算処理(図13のステップST3)→第1の加算処理(図13のステップST5及びST11、ST7及びST11あるいはST9及びST11)→第2の加算処理(図13のステップST5及びST12、ST7及びST12あるいはST9及びST12)の順番で11回実行するため、ダミー演算を行うことなく処理時間を一定にすることができる。 Therefore, of the arithmetic processes P1 to P12, except for the first arithmetic process P1, the doubling process (step of FIG. 13) is performed regardless of the value of a i being “0” or non- “0” (positive or negative). ST3) → first addition process (steps ST5 and ST11, ST7 and ST11 or ST9 and ST11 in FIG. 13) → second addition process (steps ST5 and ST12, ST7 and ST12 or ST9 and ST12 in FIG. 13) Since the process is executed 11 times, the processing time can be made constant without performing a dummy calculation.

(効果等)
このように、実施の形態3のスカラー倍算装置において、スカラー倍算用演算部1によって行うスカラー倍演算処理は、変換スカラー値aを構成する複数の桁部に対応して実行され、各々が桁部演算結果を得る複数の桁部演算処理(図14(b)の演算処理P1〜P12に相当)を含んでいる。そして、複数の桁部演算処理の実行により、隣接する桁部間で上位から下位に桁部演算結果Aを記憶部8を介して伝搬しつつ、最上位(n−1)から最下位(0)にかけて桁部単位に桁部演算結果Aを順次得て、最下位の桁部に対応する桁部演算処理(図14(b)の演算処理P12に相当)より得られる桁部演算結果Aをスカラー倍算値dPとして取得する。
(Effects etc.)
As described above, in the scalar multiplication apparatus of the third embodiment, the scalar multiplication operation performed by the scalar multiplication operation unit 1 is executed corresponding to the plurality of digit parts constituting the converted scalar value a, and each of them is executed. A plurality of digit part calculation processes (corresponding to the calculation processes P1 to P12 in FIG. 14B) for obtaining a digit part calculation result are included. Then, by executing a plurality of digit part calculation processes, the digit part calculation result A is propagated through the storage unit 8 from the upper part to the lower part between adjacent digit parts, and from the highest (n−1) to the lowest (0 ), The digit part calculation result A is sequentially obtained for each digit part, and the digit part calculation result A obtained by the digit part calculation process corresponding to the least significant digit part (corresponding to the calculation process P12 in FIG. 14B) is obtained. Obtained as a scalar multiplication value dP.

上述した複数の桁部演算処理はそれぞれ、加算演算部5及び2倍算演算部6を用いて実行され、スカラー倍算用演算部1は、桁部のaが“0”の場合にゼロ演算処理(図13のステップST9を固有の実行とする処理)を実行して桁部演算結果Aを取得し、非“0”の場合は上記ゼロ演算処理と異なる演算内容の非ゼロ演算処理(図13のステップST5あるいはST7を固有の実行とする処理)を実行して桁部演算結果Aを取得している。 The plurality of digit part arithmetic processes described above are respectively executed using the addition arithmetic part 5 and the doubling arithmetic part 6, and the scalar multiplication arithmetic part 1 is zero when the digit a i is “0”. Arithmetic processing (processing in which step ST9 in FIG. 13 is inherently executed) is executed to obtain the digit part arithmetic result A. If non- “0”, non-zero arithmetic processing (which is different from the zero arithmetic processing described above) The digit calculation result A is acquired by executing step ST5 or ST7 in FIG.

そして、実施の形態3のスカラー倍算装置は、実施の形態1と同様、上記ゼロ演算処理及び上記非ゼロ演算処理を共に、2倍算処理、第1の加算処理、及び第2の加算処理の順で行い、第2の加算処理の演算結果を桁部演算結果としたことを特徴としている。   Then, the scalar multiplication apparatus according to the third embodiment is similar to the first embodiment in that the zero calculation process and the non-zero calculation process are both doubled, first addition, and second addition. The calculation result of the second addition process is used as the digit part calculation result.

さらに、実施の形態3のスカラー倍算装置は、非ゼロ演算処理として桁部の値aが正の場合に実行される第1の非ゼロ演算処理(図13のステップST3,ST5、ST11及びST12に相当)と、桁部の値aが負の場合に実行される第2の非ゼロ演算処理(図13のステップST3,ST7,ST11及びST12に相当)とを含んでいる。 Furthermore, the scalar multiplication apparatus according to the third embodiment performs the first non-zero operation process (steps ST3, ST5, ST11 and FIG. 13) executed when the digit value a i is positive as the non-zero operation process. And a second non-zero calculation process (corresponding to steps ST3, ST7, ST11 and ST12 in FIG. 13) executed when the digit value a i is negative.

そして、実施の形態3のスカラー倍算装置は、上述した第1の非ゼロ演算処理及び第2の非ゼロ演算処理を共に、2倍算処理、第1の加算処理、及び第2の加算処理の順で行い、第2の加算処理の演算結果を桁部演算結果としている。このため、第1の非ゼロ演算処理及び第2の非ゼロ演算処理間においても、演算処理時の差異に基づくタイミングリークはなく、ダミー演算処理を含まない。   The scalar multiplication apparatus according to the third embodiment performs the above-described first non-zero calculation process and second non-zero calculation process together with a doubling process, a first addition process, and a second addition process. The calculation result of the second addition processing is used as the digit part calculation result. For this reason, there is no timing leak based on the difference in the arithmetic processing between the first non-zero arithmetic processing and the second non-zero arithmetic processing, and no dummy arithmetic processing is included.

実施の形態3のスカラー倍算装置は、上記特徴を有することにより、実施の形態1及び実施の形態2と同様、ゼロ演算処理及び非ゼロ演算処理間における演算処理時の差異に基づくタイミングリークを確実に回避することができる。   Since the scalar multiplication apparatus according to the third embodiment has the above-described feature, the timing leak based on the difference in the arithmetic processing between the zero arithmetic processing and the non-zero arithmetic processing, as in the first and second embodiments. It can be avoided reliably.

さらに、実施の形態3において、ゼロ演算処理及び非ゼロ演算処理(第1及び第2の非ゼロ演算処理を含む)間で実行される2倍算処理、第1及び第2の加算処理は全て桁部演算結果Aを得るために必要な演算処理であり、演算結果が利用されないダミー演算処理ではない。したがって、ダミー演算処理に対するセーフエラー攻撃が実行されることもない。   Further, in the third embodiment, the doubling process, the first and second addition processes executed between the zero calculation process and the non-zero calculation process (including the first and second non-zero calculation processes) are all performed. This is a calculation process necessary for obtaining the digit part calculation result A, and is not a dummy calculation process in which the calculation result is not used. Therefore, the safe error attack for the dummy calculation process is not executed.

加えて、スカラー倍算処理以外のサイドチャネル攻撃用の演算処理を特に必要としていないため、実施の形態3のスカラー倍算装置を比較的簡単な構成で実現できる。   In addition, since the arithmetic processing for side channel attack other than the scalar multiplication processing is not particularly required, the scalar multiplication apparatus of the third embodiment can be realized with a relatively simple configuration.

その結果、サイドチャネル攻撃に強く、セキュリティー性が高いスカラー倍演算処理を実行する実施の形態3のスカラー倍算装置を得ることができる。   As a result, it is possible to obtain the scalar multiplication apparatus according to the third embodiment that executes scalar multiplication processing that is resistant to side channel attacks and has high security.

なお、実施の形態3のスカラー倍算装置は、外部より入力されるスカラー値d(入力スカラー値)がスカラー値変換処理によって変換された変換スカラー値aをスカラー倍算処理の演算用スカラー値として用いている。したがって、演算用スカラー値(変換スカラー値a)を構成する複数の桁部はそれぞれ正負の情報を含む1ビットの情報量を有している。また、図1のステップSP01あるいはステップSP11として実行する2倍算処理は2倍算演算部6を1回用いて1回倍算値を得る処理となる。   The scalar multiplication apparatus according to the third embodiment uses the converted scalar value a obtained by converting the scalar value d (input scalar value) input from the outside by the scalar value conversion process as the scalar value for the operation of the scalar multiplication process. Used. Therefore, each of the plurality of digits constituting the arithmetic scalar value (conversion scalar value a) has a 1-bit information amount including positive and negative information. Further, the doubling process executed as step SP01 or step SP11 in FIG. 1 is a process for obtaining a doubling value once by using the doubling operation unit 6 once.

このように、実施の形態3のスカラー倍算装置は、変換スカラー値aを演算用スカラー値として用いるNAF法を採用したスカラー倍演算処理をセキュリティー性を高めて実行することができる効果を奏する。   As described above, the scalar multiplication apparatus according to the third embodiment has an effect that the scalar multiplication operation employing the NAF method using the converted scalar value a as the operation scalar value can be executed with improved security.

<実施の形態4>
実施の形態4は、w(Window)NAF法を採用したスカラー倍算装置である。wNAF法とはスカラー値dをwNAF(符号付ウィンドウ形式)に変換して計算を行うアルゴリズムである。wNAF法は加算鎖の計算をバイナリ法より高速に行える可能性が高い利点を奏している。
<Embodiment 4>
The fourth embodiment is a scalar multiplication apparatus that employs the w (Window) NAF method. The wNAF method is an algorithm that performs calculation by converting a scalar value d into wNAF (signed window format). The wNAF method has an advantage that the calculation of the addition chain can be performed faster than the binary method.

(wNAF法の概要)
wNAF法のアルゴリズムにおけるスカラー倍算処理は、「wNAF変換」(スカラー値変換処理)、「事前計算」(テーブル作成処理)、及び「本計算」(スカラー倍算本処理)の3つの処理に分類される。
(Outline of wNAF method)
The scalar multiplication processing in the wNAF algorithm is classified into three processes: “wNAF conversion” (scalar value conversion processing), “pre-calculation” (table creation processing), and “main calculation” (scalar multiplication main processing). Is done.

図15はwNAF法における従来のスカラー値変換処理の(wNAF)変換アルゴリズムAR81を模式的に示す説明図である。なお、図15で示す変換アルゴリズムAR81において、1:,2:,…16:は実行ステップ位置を示す。以下、実行ステップ位置を基準にしてステップST1〜ST16と呼ぶ。   FIG. 15 is an explanatory view schematically showing a (wNAF) conversion algorithm AR81 of a conventional scalar value conversion process in the wNAF method. In the conversion algorithm AR81 shown in FIG. 15, 1 :, 2 :,... 16: indicate execution step positions. Hereinafter, steps ST1 to ST16 are referred to with reference to the execution step position.

図15のステップST3においてc[0]は変数cの最下位ビットを示し、ステップST4においてc[w:0]は変数cにおける最下位(w+1)ビットを意味する。   In step ST3 of FIG. 15, c [0] indicates the least significant bit of the variable c, and in step ST4, c [w: 0] indicates the least significant (w + 1) bit in the variable c.

図15で示す変換アルゴリズムAR81を実行することにより、スカラー値dから、各々がM(=w+1)ビット以下のKビットの情報量の複数の桁部を有する変換スカラー値bを得ることができる。ただし、変換スカラー値bを構成する複数の桁部の値bは正負の情報を含んでいる。値bの正負決定処理は、図15のステップST4〜ST7の処理で行われる。 By executing the conversion algorithm AR81 shown in FIG. 15, a conversion scalar value b having a plurality of digits of information amount of K bits each of M (= w + 1) bits or less can be obtained from the scalar value d. However, the values b i of the plurality of digits constituting the conversion scalar value b include positive and negative information. Negative determination process value b i is performed by the processing of step ST4~ST7 in FIG.

例えば、スカラー値dが“101001111011”(=(2683))の場合、変換アルゴリズムAR81を採用したスカラー値変換処理を実行することにより、スカラー値dを1ビット単位にwNAF変換して、変換スカラー値b(=10005000000(−5))を得ることができる。すなわち、変換スカラー値bは、データb11〜データbを有する12個の桁部から構成される。 For example, when the scalar value d is “101001111011” 2 (= (2683)), the scalar value conversion process adopting the conversion algorithm AR81 is executed, so that the scalar value d is converted into wNAF in 1-bit units, and the conversion scalar is obtained. The value b (= 1000000000 (−5)) can be obtained. That is, the conversion scalar value b is composed of 12 digits having data b 11 to data b 0 .

図16はwNAF法における従来のテーブル作成処理である事前計算アルゴリズムAR82を模式的に示す説明図である。なお、図16で示す事前計算アルゴリズムAR82において、1:,2:,…5:は実行ステップ位置を示す。以下、実行ステップ位置を基準にしてステップST1〜ST5と呼ぶ。   FIG. 16 is an explanatory diagram schematically showing a pre-calculation algorithm AR82 which is a conventional table creation process in the wNAF method. In the pre-calculation algorithm AR82 shown in FIG. 16, 1 :, 2 :,... 5: indicate execution step positions. Hereinafter, steps ST1 to ST5 are referred to with the execution step position as a reference.

図16で示す事前計算アルゴリズムAR82を実行することにより、入力座標点Pを奇数倍して得られる奇数倍座標点を複数個計算し、{テーブルT〜Tβ}として記憶部8内に格納される。 By executing the pre-calculation algorithm AR82 shown in FIG. 16, a plurality of odd multiple coordinate points obtained by odd multiples of the input coordinate points P are calculated and stored in the storage unit 8 as {table T 1 to T β }. Is done.

図17はwNAF法における従来のスカラー倍算本処理である本計算アルゴリズムAR83を模式的に示す説明図である。なお、図17で示す本計算アルゴリズムAR83において、1:,2:,…10:は実行ステップ位置を示す。以下、実行ステップ位置を基準にしてステップST1〜ST10と呼ぶ。   FIG. 17 is an explanatory diagram schematically showing the present calculation algorithm AR83, which is a conventional scalar multiplication main process in the wNAF method. In the calculation algorithm AR83 shown in FIG. 17, 1 :, 2 :,... 10: indicate execution step positions. Hereinafter, steps ST1 to ST10 are referred to with reference to the execution step position.

このように、変換アルゴリズムAR81、事前計算アルゴリズムAR82及び本計算アルゴリズムAR83からなるスカラー倍算処理を実行するのが従来のwNAF法である。   In this way, the conventional wNAF method executes the scalar multiplication process including the conversion algorithm AR81, the pre-calculation algorithm AR82, and the main calculation algorithm AR83.

図17に示すように、wNAF法を採用した従来のスカラー倍算本処理では、変換スカラー値bの桁部の値bが非“0”の場合はステップST5あるいはステップST7が実行される。すなわち、bが正の場合はステップST5が実行され、bが負の場合はステップST7が実行される。このように、wNAF法では、非ゼロ演算処理として互いに異なる2つの非ゼロ演算処理(第1及び第2の非ゼロ演算処理)を有している。 As shown in FIG. 17, in the conventional scalar multiplication main processing employing the wNAF method, when the digit value b i of the converted scalar value b is non- “0”, step ST5 or step ST7 is executed. That is, when b i is positive, step ST5 is executed, and when b i is negative, step ST7 is executed. As described above, the wNAF method has two different non-zero arithmetic processes (first and second non-zero arithmetic processes) as non-zero arithmetic processes.

一方、値bが“0”の場合はステップST5及びST7は全てが実行されない。 On the other hand, when the value b i is “0”, all of steps ST5 and ST7 are not executed.

したがって、従来のwNAF法に対するサイドチャネル攻撃については、桁部の値であるbが“0”と非“0”との場合で処理が分岐しているため、タイミングリークを完全に隠蔽することができない問題点があった。 Therefore, for the side channel attack against the conventional wNAF method, since the processing is branched when the digit b i is “0” and non- “0”, the timing leak is completely hidden. There was a problem that could not be.

(構成)
上記問題点の解決を図りつつ、wNAF法を採用したのが実施の形態4のスカラー倍算装置である。
(Constitution)
The scalar multiplication apparatus of the fourth embodiment adopts the wNAF method while solving the above problems.

装置構成は図2で示した実施の形態1と同様であるが、変換スカラー値生成部3が後述するスカラー値変換処理を行い、スカラー値dから変換スカラー値bを得る点、スカラー倍算用演算部1が変換スカラー値bを演算用スカラー値として、後述するスカラー倍算本処理を行う点が大きく異なる。   The apparatus configuration is the same as that of the first embodiment shown in FIG. 2, except that the conversion scalar value generation unit 3 performs a scalar value conversion process to be described later to obtain a conversion scalar value b from the scalar value d. For scalar multiplication The difference is that the calculation unit 1 performs the scalar multiplication main processing described later using the converted scalar value b as the calculation scalar value.

そして、実施の形態4において、スカラー倍算用演算部1及び変換スカラー値生成部3により、変換スカラー値bを演算用スカラー値とし、演算用スカラー値と入力座標点Pとを演算対象として、スカラー倍演算処理を行いスカラー倍算値dPを得るスカラー倍演算機構が構成される。   In the fourth embodiment, the scalar multiplication calculation unit 1 and the conversion scalar value generation unit 3 set the conversion scalar value b as the calculation scalar value, and the calculation scalar value and the input coordinate point P as calculation targets. A scalar multiplication operation mechanism that performs a scalar multiplication operation process to obtain a scalar multiplication value dP is configured.

(アルゴリズム)
図18はwNAF法における実施の形態4のスカラー値変換処理の(wNAF)変換アルゴリズムAR31を模式的に示す説明図である。なお、図18で示す変換アルゴリズムAR31において、1:,2:,…21:は実行ステップ位置を示す。以下、実行ステップ位置を基準にしてステップST1〜ST21と呼ぶ。
(algorithm)
FIG. 18 is an explanatory diagram schematically showing the (wNAF) conversion algorithm AR31 of the scalar value conversion process according to the fourth embodiment in the wNAF method. In the conversion algorithm AR31 shown in FIG. 18, 1 :, 2 :,... 21: indicate execution step positions. Hereinafter, the steps ST1 to ST21 are referred to based on the execution step position.

図18のステップST3においてc[0]は変数cの最下位ビットを示し、ステップST4においてc[w:0]は変数cにおける最下位(w+1)ビットを意味する。   In step ST3 of FIG. 18, c [0] indicates the least significant bit of the variable c, and in step ST4, c [w: 0] indicates the least significant (w + 1) bit in the variable c.

図18で示す変換アルゴリズムAR31を実行することにより、スカラー値dから、各々がKビット(K=1〜M(=w+1)のいずれか)の情報量の複数の桁部を有する変換スカラー値bを得ることができる。ただし、変換スカラー値bを構成する複数の桁部の値bは正負の情報を含んでいる。値bの正負決定処理は、図18のステップST5〜ST8の処理で行われる。 By executing the conversion algorithm AR31 shown in FIG. 18, a conversion scalar value b having a plurality of digits each having an information amount of K bits (any of K = 1 to M (= w + 1)) from the scalar value d. Can be obtained. However, the values b i of the plurality of digits constituting the conversion scalar value b include positive and negative information. Negative determination process value b i is performed by the processing of step ST5~ST8 in FIG.

例えば、スカラー値dが“101001111011”(=(2683))の場合、変換アルゴリズムAR31を採用したスカラー値変換処理を実行することにより、スカラー値dをwNAF変換して、変換スカラー値b(データb=“1”(K=1ビット情報量)、データb=“5”(K=4ビット情報量)、データb=“0”(K=3ビット情報量)、データb=“−5”(K=4ビット情報量))を得ることができる。すなわち、変換スカラー値bは、データb〜データbを有する4個の桁部から構成される。 For example, when the scalar value d is “101001111011” 2 (= (2683)), the scalar value conversion process adopting the conversion algorithm AR31 is executed, so that the scalar value d is wNAF converted and the converted scalar value b (data b 3 = "1" (K = 1 bit information amount), data b 2 = "5" (K = 4 bit information amount), data b 1 = "0" (K = 3 bit information amount), data b 0 = “− 5” (K = 4 bits information amount)). That is, the conversion scalar value b is composed of four digits having data b 3 to data b 0 .

また、bが非“0”の場合のビット数Kとなるlen(Window幅)は最大のM=w+1(ビット)となり(図18のステップST9〜ST11の処理)、bが“0”の場合のビット数Kとなるlenは1〜Mビットのうちのいずれか(図18のステップST14〜ST16の処理)となる。 Also, len i (Window width), which is the number of bits K when b i is non- “0”, is the maximum M = w + 1 (bits) (processing of steps ST9 to ST11 in FIG. 18), and b i is “0”. The len i, which is the number of bits K in the case of “,” is any one of 1 to M bits (processing of steps ST14 to ST16 in FIG. 18).

例えば、スカラー値dが“101001111011”の場合、b〜bの{1,5,0,−5}に対応して、len〜len={4,4,3,4}となる。 For example, when the scalar value d is “101001111011” 2 , corresponding to {1, 5, 0 , −5} of b 3 to b 0 len 3 to len 0 = {4, 4, 3 , 4} Become.

変換スカラー値生成部3はスカラー値dを受け、スカラー値dに基づき、変換アルゴリズムAR31によるスカラー値変換処理を実行して変換スカラー値bを取得し、その後、変換スカラー値bをスカラー倍算用演算部1に出力する。この際、bのビット数Kを示すlenも併せてスカラー倍算用演算部1に出力する。 The conversion scalar value generation unit 3 receives the scalar value d, executes a scalar value conversion process by the conversion algorithm AR31 based on the scalar value d, acquires the conversion scalar value b, and then uses the conversion scalar value b for scalar multiplication. Output to the calculation unit 1. At this time, len i indicating the bit number K of b i is also output to the arithmetic unit 1 for scalar multiplication.

そして、スカラー倍算用演算部1は、変換スカラー値生成部3から変換スカラー値bのb及びビット数Kを示すlenを受け、変換スカラー値b及び入力座標点Pを演算対象として後述するスカラー倍算本処理を実行してスカラー倍算値dPを得る。なお、変換スカラー値b、入力座標点及びビット数Kを示すlenは必要に応じて記憶部8に格納される。 The scalar multiplication Arabic arithmetic unit 1 receives len i indicating a b i and the number of bits K of conversion scalar value b from the conversion scalar value generation unit 3, described later converted scalar value b and the input coordinate point P as a calculation target The scalar multiplication main process is executed to obtain a scalar multiplication value dP. The conversion scalar value b, the input coordinate point, and len i indicating the bit number K are stored in the storage unit 8 as necessary.

図19はwNAF法における実施の形態4のテーブル作成処理である事前計算アルゴリズムAR32を模式的に示す説明図である。なお、図19で示す事前計算アルゴリズムAR32において、1:,2:,…5:は実行ステップ位置を示す。以下、実行ステップ位置を基準にしてステップST1〜ST5と呼ぶ。   FIG. 19 is an explanatory diagram schematically showing a pre-calculation algorithm AR32 that is a table creation process according to the fourth embodiment in the wNAF method. In the pre-calculation algorithm AR32 shown in FIG. 19, 1 :, 2 :,... 5: indicate execution step positions. Hereinafter, steps ST1 to ST5 are referred to with the execution step position as a reference.

図19で示す事前計算アルゴリズムAR32を実行することにより、入力座標点Pを偶数倍して得られる偶数倍座標点を複数個計算し、{テーブルT,T〜Tβ}として記憶部8に格納される。この際、T(i=2〜βを満足する偶数)の値はi×Pとなる。 By executing the pre-calculation algorithm AR32 shown in FIG. 19, a plurality of even multiple coordinate points obtained by multiplying the input coordinate point P by an even number are calculated, and the storage unit 8 is stored as {table T 2 , T 4 to T β }. Stored in At this time, the value of T i (i = 2 to β satisfying an even number) is i × P.

図20はwNAF法における実施の形態4のスカラー倍算本処理である本計算アルゴリズムAR33を模式的に示す説明図である。なお、図20で示す本計算アルゴリズムAR33において、1:,2:,…18:は実行ステップ位置を示す。以下、実行ステップ位置を基準にしてステップST1〜ST18と呼ぶ。   FIG. 20 is an explanatory view schematically showing the present calculation algorithm AR33 which is the scalar multiplication main process of the fourth embodiment in the wNAF method. In the calculation algorithm AR33 shown in FIG. 20, 1 :, 2 :,... 18: indicate execution step positions. Hereinafter, steps ST1 to ST18 are referred to with the execution step position as a reference.

図21は実施の形態4のスカラー倍算装置による本計算アルゴリズムAR33の実行例を模式的に示す説明図(その1)である。図22は実施の形態4のスカラー倍算装置による本計算アルゴリズムAR33の実行例を模式的に示す説明図(その2)である。以下、スカラー倍算用演算部1が実行する本計算アルゴリズムAR33の概要を、図20〜図22を参照して説明する。   FIG. 21 is an explanatory diagram (part 1) schematically illustrating an execution example of the present calculation algorithm AR33 by the scalar multiplication apparatus of the fourth embodiment. FIG. 22 is an explanatory diagram (part 2) schematically illustrating an execution example of the present calculation algorithm AR33 by the scalar multiplication apparatus of the fourth embodiment. Hereinafter, an outline of the present calculation algorithm AR33 executed by the scalar multiplication operation unit 1 will be described with reference to FIGS.

(1)スカラー倍算装置に入力座標点Pとスカラー値d(入力スカラー値)を入力し、入力座標点Pをスカラー倍算用演算部1内に取り込まれ、必要に応じて記憶部8に格納される。さらに、変換アルゴリズムAR31を採用したスカラー値変換処理によってスカラー値dを変換して得られる変換スカラー値bが変換スカラー値生成部3によって得られる(図20のInput:…に相当)。この際、変換スカラー値bとともに、bn−1〜bのビット数Kを示すlenn−1〜lenがスカラー倍算用演算部1に出力される。 (1) An input coordinate point P and a scalar value d (input scalar value) are input to the scalar multiplication device, and the input coordinate point P is taken into the scalar multiplication operation unit 1 and stored in the storage unit 8 as necessary. Stored. Furthermore, the conversion scalar value b obtained by converting the scalar value d by the scalar value conversion process employing the conversion algorithm AR31 is obtained by the conversion scalar value generation unit 3 (corresponding to Input:... In FIG. 20). At this time, together with the conversion scalar value b, len n−1 to len 0 indicating the number of bits K of b n−1 to b 0 are output to the arithmetic unit 1 for scalar multiplication.

(2)上記処理(1)の際、wNAF法のアルゴリズムで計算を行うため、変換スカラー値bに関しn個の桁部がそれぞれ正負を含むM(=w+1)ビット以下のKビットの情報を有する表記とする。   (2) At the time of the above process (1), since the calculation is performed by the algorithm of the wNAF method, the n digits of the conversion scalar value b have M bits (= w + 1) bits or less including positive and negative information. Notation.

図20に示すように、変換スカラー値b={bn−1,…,b}で表される。例えば、図21(a)に示すように、n=4とした、変換スカラー値b=(b=“1”、b=“5”、b=“0”、データb=“−5”)の値を有する、b〜bがlen〜lenと共にスカラー倍算用演算部1に出力され、必要に応じて記憶部8に格納される。 As shown in FIG. 20, the conversion scalar value is represented by b = {b n−1 ,..., B 0 }. For example, as shown in FIG. 21A, when n = 4, the conversion scalar value b = (b 3 = "1", b 2 = "5", b 1 = "0", data b 0 = " B 3 to b 0 having a value of −5 ″) are output to the scalar multiplication operation unit 1 together with len 3 to len 0 and stored in the storage unit 8 as necessary.

(3)1つ上位の桁部における桁部演算結果A(初期値“0”)の2倍算点〜2w+1倍算点である2A〜2w+1A(1回倍算値〜M(=w+1)回倍算値)を計算し、記憶部8に格納する(図20のステップST2〜ST5に相当)。 (3) Double calculation point of digit part calculation result A (initial value “0”) in the upper digit part to 2 w + 1 double calculation point 2A to 2 w + 1 A (single multiplication value to M (= w + 1) multiplication value) is calculated and stored in the storage unit 8 (corresponding to steps ST2 to ST5 in FIG. 20).

例えば、MSB(最上位(n−1))の桁部の値bに対する演算処理P1では、桁部演算結果Aの初期値は無限遠点Oであるため、2倍算関数ECDBL(A)の演算結果も無限遠点Oとなり、ステップST2〜ST5が実行されない場合と実質的に同じになる(図21では図示せず)。すなわち、図22の加算・減算処理AS3のみが実行されることになる。 For example, MSB in the arithmetic processing P1 for the value b 3 digits of the (topmost (n-1)), since the initial value of the girder operation result A is infinity point O, 2 multiplication function ECDBL (A) The result of the calculation is also an infinite point O, which is substantially the same as when steps ST2 to ST5 are not executed (not shown in FIG. 21). That is, only the addition / subtraction process AS3 of FIG. 22 is executed.

また、MSB−1(=n−2)の桁部の値bに対する演算処理P2(1〜4行目)では、1つ上位の桁部の演算処理P1(加算・減算処理AS3)の桁部演算結果AがPであったため、Pの2倍算を1〜4(M=w+1)回繰り返して、倍算値2P,4P,8P及び16P(=P×2×2×2×2)が得られる。この際、図22に示すように、ビット数Kを示すlen=4のため、倍数選択処理LS2(図20のステップST6及びST7に相当)によって4回倍算値(=K回倍算値)である16Pが選択される。 Further, MSB-1 (= n- 2) In the processing P2 (1 to 4 line) to the value b 2 of the girder, the girder of the calculation of the girder of one upper P1 (addition and subtraction AS3) Since the partial operation result A is P, the doubling of P is repeated 1 to 4 (M = w + 1) times, and the multiplication values 2P, 4P, 8P and 16P (= P × 2 × 2 × 2 × 2) Is obtained. At this time, as shown in FIG. 22, since len 2 = 4 indicating the number of bits K, the multiplication value LS2 (corresponding to steps ST6 and ST7 in FIG. 20) is multiplied by 4 times (= K times multiplied value). 16P is selected.

(4)b(i=(n−1)〜0のいずれか)が正の場合(非“0”)は{B=Tbi+1,C=−P}に設定し(図20のステップST9に相当)、負の場合(非“0”)は{B=−T1−bi,C=P}に設定する(図20のステップST11)。その後、加算処理(A+B)(第1の加算処理)を実行し(図20のステップST15に相当)、さらに、その後、加算処理(A+C)(第2の加算処理)を実行する(図20のステップST16に相当)。 (4) b i (i = (n-1) either to 0) when the positive (non "0") is set to {B = T bi + 1, C = -P} ( step ST9 of FIG. 20 In the negative case (non- “0”), {B = −T 1−bi , C = P} is set (step ST11 in FIG. 20). Thereafter, addition processing (A + B) (first addition processing) is executed (corresponding to step ST15 in FIG. 20), and thereafter, addition processing (A + C) (second addition processing) is executed (FIG. 20). Equivalent to step ST16).

例えば、b(=“5”)に対して行う演算処理P2(5行目)では、第1の加算処理として、A(=16P)+B(=6P=T)の加算処理が実行され、演算処理P2(6行目)では、第2の加算処理として、A(=22P)+B(=−P)の加算処理が実行される。すなわち、図22の加算・減算処理AS2のように、A(=16P)に対して+5Pを加算する処理が実行されたことになる。 For example, in the calculation process P2 (5th line) performed for b 2 (= “5”), an addition process of A (= 16P) + B (= 6P = T 6 ) is executed as the first addition process. In the calculation process P2 (line 6), the addition process of A (= 22P) + B (= −P) is executed as the second addition process. That is, a process of adding + 5P to A (= 16P) is executed as in the addition / subtraction process AS2 of FIG.

また、b(=“−5”)に対して行う演算処理P4(5行目)では、第1の加算処理として、A(=2688P)+B(=−6P=−T)の加算処理が実行され、演算処理P4(6行目)では、第2の加算処理として、A(=2682P)+B(=P)の加算処理が実行される。すなわち、図22の加算・減算処理AS0のように、A(=2688P)に対して−5Pを加算(5Pを減算する)する処理が実行されたことになる。 In addition, in the calculation process P4 (5th row) performed for b 0 (= “− 5”), the first addition process is an addition process of A (= 2688P) + B (= −6P = −T 6 ). In the calculation process P4 (line 6), an addition process of A (= 2682P) + B (= P) is executed as the second addition process. That is, as in the addition / subtraction process AS0 in FIG. 22, the process of adding −5P to A (= 2688P) (subtracting 5P) is executed.

一方、bが“0”の場合、{B=P,C=−P}に設定した(図20のステップST13)後、加算処理(A+B)(第1の加算処理)を実行し(図20のステップST15に相当)、さらに、その後、加算処理(A+C)(第2の加算処理)を実行する(図20のステップST16に相当)。 On the other hand, if b i is “0”, {B = P, C = −P} is set (step ST13 in FIG. 20), and then addition processing (A + B) (first addition processing) is executed (FIG. 20). 20 is equivalent to step ST15), and thereafter, addition processing (A + C) (second addition processing) is executed (corresponding to step ST16 in FIG. 20).

例えば、b(=“0”)に対して行う演算処理P3(5行目)では、第1の加算処理として、A(=168P)+B(=P)の加算処理が実行され、演算処理P3(6行目)では、第2の加算処理として、A(=169P)+B(=−P)の加算処理が実行される。すなわち、図22の加算・減算処理AS1のように、A(=168P)に対して+0Pを加算(−0Pを減算する)する処理が実行されたことになる。 For example, in the calculation process P3 (5th row) performed on b 1 (= “0”), an addition process of A (= 168P) + B (= P) is executed as the first addition process, and the calculation process In P3 (6th line), an addition process of A (= 169P) + B (= −P) is executed as the second addition process. That is, a process of adding + 0P (subtracting −0P) to A (= 168P) is executed as in the addition / subtraction process AS1 of FIG.

上述した第2の加算処理(図20のステップST16に相当)を実行した後、i桁の桁部(b)の桁部演算結果Aを得ることができる。 After executing the above-described second addition process (corresponding to step ST16 in FIG. 20), the digit part calculation result A of the i-digit digit part (b i ) can be obtained.

(5)桁数iを“1”繰り下げた後(ステップST1及びST17に相当)、上記処理(3)〜(4)を繰り返す。   (5) After decrementing the number of digits i by “1” (corresponding to steps ST1 and ST17), the above processes (3) to (4) are repeated.

そして、スカラー倍算用演算部1は、最終的にi=0のとき、bに対する演算処理P4の第2の加算処理(処理(4))によって得られるLSB(最下位“0”)桁部の桁部演算結果A=2683Pを、スカラー倍算値dPとして出力する(図20のステップST18に相当)。 Then, the scalar multiplication operation unit 1 finally obtains the LSB (least significant “0”) digit obtained by the second addition process (process (4)) of the operation process P4 for b 0 when i = 0. Digit part calculation result A = 2683P is output as a scalar multiplication value dP (corresponding to step ST18 in FIG. 20).

このように、実施の形態4のスカラー倍算装置は、スカラー倍算処理として、変換アルゴリズムAR31を採用したスカラー値変換処理、事前計算アルゴリズムAR32を採用したテーブル作成処理及び本計算アルゴリズムAR33を採用したスカラー倍算本処理を実行している。   As described above, the scalar multiplication apparatus according to the fourth embodiment employs the scalar value conversion process employing the conversion algorithm AR31, the table creation process employing the pre-calculation algorithm AR32, and the present calculation algorithm AR33 as the scalar multiplication process. Scalar multiplication main processing is executed.

したがって、スカラー倍算用演算部1は、演算処理P1〜P4のうち、最初の演算処理P1を除いて、bの値の“0”,非“0”(正,負)に関わらず、M(=w+1)回繰り返して行う2倍算処理(図20のステップST2〜ST5)→第1の加算処理(図20のステップST9及びST15、ST11及びST15あるいはST13及びST15)→第2の加算処理(図20のステップST9及びST16、ST11及びST16あるいはST13及びST16)の順番で3回実行するため、ダミー演算を行うことなく処理時間を一定にすることができる。 Thus, scalar multiplication Arabic arithmetic unit 1, of the arithmetic processing P1 to P4, except for the first arithmetic processing P1, "0" of the value of b i, a non "0" (positive, negative) regardless, A doubling process performed repeatedly M (= w + 1) times (steps ST2 to ST5 in FIG. 20) → first addition process (steps ST9 and ST15, ST11 and ST15 or ST13 and ST15 in FIG. 20) → second addition Since the processes (steps ST9 and ST16, ST11 and ST16 or ST13 and ST16 in FIG. 20) are executed three times in order, the processing time can be made constant without performing a dummy calculation.

なお、演算処理P3ではビット数Kを示すlen=3のため、2倍算を3(=w=M−1)回繰り返して得られる3回倍算値(S)を選択している(ステップST6及びST7)。すなわち、図22に示すように、2倍算を1〜4回繰り返して得られる1回倍算値(42P)〜4回倍算値(336P)のうち、倍数選択処理LS1により3回倍算値(=K回倍算値)である2倍算処理結果168Pを選択している。 Note that in the calculation process P3, since len 1 = 3 indicating the number of bits K, the triple multiplication value (S 2 ) obtained by repeating the doubling 3 (= w = M−1) times is selected. (Steps ST6 and ST7). That is, as shown in FIG. 22, among the 1-fold multiplication value (42P) to 4-fold multiplication value (336P) obtained by repeating the doubling 1 to 4 times, the multiplication is performed 3 times by the multiple selection process LS1. The doubling process result 168P which is a value (= K times multiplied value) is selected.

一方、演算処理P2及び演算処理P4では共にビット数Kを示すlen=len=4のため、2倍算を4(=w+1=M)回繰り返して得られる4回倍算値(S)を選択している(ステップST6及びST7)。すなわち、図22に示すように、2倍算を1〜4回繰り返して得られる1回倍算値(2P,336P)〜4回倍算値(16P,2688P)のうち、倍数選択処理LS2及びLS0により4回倍算値(=K回倍算値)である2倍算処理結果16P及び2688Pを選択している。 On the other hand, since both len 2 = len 0 = 4 indicating the number of bits K in the arithmetic processing P2 and the arithmetic processing P4, a four-fold multiplication value (S 3 ) obtained by repeating the doubling four times (= w + 1 = M). ) Is selected (steps ST6 and ST7). That is, as shown in FIG. 22, the multiple selection processing LS2 among the 1-fold multiplication values (2P, 336P) to 4-fold multiplication values (16P, 2688P) obtained by repeating the doubling 1 to 4 times and The doubling process results 16P and 2688P, which are four times multiplied values (= K times multiplied values), are selected by LS0.

しかしながら、演算処理P3も演算処理P2及び演算処理P4と同様、4回繰り返した2倍算処理(ステップST2〜ST5)を実行している。すなわち、図22に示すように、倍数選択処理LS2〜LS0に先がけて、必ず4回繰り返した2倍算処理が実行されている。   However, the calculation process P3 also executes the doubling process (steps ST2 to ST5) repeated four times, like the calculation processes P2 and P4. That is, as shown in FIG. 22, a doubling process that is always repeated four times is executed prior to the multiple selection processes LS2 to LS0.

したがって、桁部のビット数Kに関わらず、常に2倍算は4回繰り返して実行されるため、桁部のビット数Kの違いによって2倍算処理間でタイミングリークが生じることはない。   Therefore, regardless of the number of bits K in the digit part, the doubling is always repeated four times, so that there is no timing leak between the doubling processes due to the difference in the number of bits K in the digit part.

(効果等)
このように、実施の形態4のスカラー倍算装置において、スカラー倍算用演算部1によって行うスカラー倍演算処理は、変換スカラー値bを構成する複数の桁部に対応して実行され、各々が桁部演算結果を得る複数の桁部演算処理(図21の演算処理P1〜P4に相当)を含んでいる。そして、複数の桁部演算処理の実行により、隣接する桁部間で上位から下位に桁部演算結果Aを記憶部8を介して伝搬しつつ、最上位(n−1)から最下位(0)にかけて桁部単位に桁部演算結果Aを順次得て、最下位の桁部に対応する桁部演算処理(図21の演算処理P4に相当)より得られる桁部演算結果Aをスカラー倍算値dPとして取得する。
(Effects etc.)
As described above, in the scalar multiplication apparatus according to the fourth embodiment, the scalar multiplication operation performed by the scalar multiplication operation unit 1 is executed corresponding to a plurality of digits constituting the converted scalar value b, and each of them is executed. A plurality of digit part calculation processes (corresponding to the calculation processes P1 to P4 in FIG. 21) for obtaining a digit part calculation result are included. Then, by executing a plurality of digit part calculation processes, the digit part calculation result A is propagated through the storage unit 8 from the upper part to the lower part between adjacent digit parts, and from the highest (n−1) to the lowest (0 ), The digit part calculation result A is sequentially obtained for each digit part, and the digit part calculation result A obtained by the digit part calculation process corresponding to the lowest digit part (corresponding to the calculation process P4 in FIG. 21) is scalar multiplied. Obtained as the value dP.

上述した複数の桁部演算処理はそれぞれ、加算演算部5及び2倍算演算部6を用いて実行され、スカラー倍算用演算部1は、桁部のbが“0”の場合にゼロ演算処理(図20のステップST13を固有の実行とする処理)を実行して桁部演算結果Aを取得し、非“0”の場合は上記ゼロ演算処理と異なる演算内容の非ゼロ演算処理(図20のステップST9あるいはST11を固有の実行とする処理)を実行して桁部演算結果Aを取得している。 The plurality of digit part arithmetic processes described above are respectively executed using the addition arithmetic part 5 and the doubling arithmetic part 6, and the scalar multiplication arithmetic part 1 is zero when the digit b i is “0”. Arithmetic processing (processing with step ST13 in FIG. 20 as a specific execution) is executed to obtain the digit part arithmetic result A. If it is non- “0”, non-zero arithmetic processing (which is different from the zero arithmetic processing described above) Step ST9 or ST11 in FIG. 20 is executed as a unique execution) to obtain the digit calculation result A.

そして、実施の形態4のスカラー倍算装置は、実施の形態1と同様、上記ゼロ演算処理及び上記非ゼロ演算処理を共に、(M(=w+1)回繰り返して行う)2倍算処理、第1の加算処理、及び第2の加算処理の順で行い、第2の加算処理の演算結果を桁部演算結果としたことを特徴としている。   Then, the scalar multiplication apparatus of the fourth embodiment, like the first embodiment, performs both the zero calculation process and the non-zero calculation process (repeated M (= w + 1) times) The first addition processing and the second addition processing are performed in this order, and the calculation result of the second addition processing is used as the digit portion calculation result.

さらに、実施の形態4のスカラー倍算装置は、非ゼロ演算処理として桁部の値bが正の場合に実行される第1の非ゼロ演算処理(図20のステップST2〜ST5,ST9、ST15及びST16に相当)と、桁部の値bが負の場合に実行される第2の非ゼロ演算処理(図20のステップST2〜ST5,ST11、ST15及びST16に相当)とを含んでいる。 Furthermore, the scalar multiplication apparatus according to the fourth embodiment performs the first non-zero calculation process (steps ST2 to ST5 and ST9 in FIG. 20) executed when the digit value b i is positive as the non-zero calculation process. ST15 and ST16) and a second non-zero calculation process (corresponding to steps ST2 to ST5, ST11, ST15 and ST16 in FIG. 20) executed when the digit value b i is negative. Yes.

そして、実施の形態4のスカラー倍算装置は、第1の非ゼロ演算処理及び第2の非ゼロ演算処理を共に、(M回繰り返して行う)2倍算処理、第1の加算処理、及び第2の加算処理の順で行い、第2の加算処理の演算結果を桁部演算結果としている。このため、第1の非ゼロ演算処理及び第2の非ゼロ演算処理間においても演算処理時の差異に基づくタイミングリークはなく、ダミー演算処理を含まない。   The scalar multiplication apparatus according to the fourth embodiment includes both the first non-zero arithmetic process and the second non-zero arithmetic process (repeated M times), a double arithmetic process, a first addition process, and The second addition process is performed in this order, and the calculation result of the second addition process is used as the digit part calculation result. For this reason, there is no timing leak based on the difference in the arithmetic processing between the first non-zero arithmetic processing and the second non-zero arithmetic processing, and no dummy arithmetic processing is included.

実施の形態4のスカラー倍算装置は、上記特徴を有することにより、実施の形態1〜実施の形態3と同様、ゼロ演算処理及び非ゼロ演算処理間における演算処理時の差異に基づくタイミングリークを確実に回避することができる。   Since the scalar multiplication apparatus according to the fourth embodiment has the above-described feature, the timing leak based on the difference in the arithmetic processing between the zero arithmetic processing and the non-zero arithmetic processing, as in the first to third embodiments. It can be avoided reliably.

さらに、実施の形態4において、ゼロ演算処理及び非ゼロ演算処理(第1及び第2の非ゼロ演算処理を含む)間で実行される(M回繰り返して行う)2倍算処理、第1及び第2の加算処理は全て桁部演算結果Aを得るために必要な演算処理であり、演算結果が利用されないダミー演算処理ではない。したがって、ダミー演算処理に対するセーフエラー攻撃が実行されることもない。   Further, in the fourth embodiment, a doubling process (repeated M times) executed between the zero calculation process and the non-zero calculation process (including the first and second non-zero calculation processes), The second addition processing is all computation processing necessary to obtain the digit part computation result A, and is not dummy computation processing in which the computation result is not used. Therefore, the safe error attack for the dummy calculation process is not executed.

加えて、スカラー倍算処理以外のサイドチャネル攻撃用の演算処理を特に必要としていないため、実施の形態4のスカラー倍算装置を比較的簡単な構成で実現できる。   In addition, since the arithmetic processing for side channel attack other than the scalar multiplication processing is not particularly required, the scalar multiplication apparatus of the fourth embodiment can be realized with a relatively simple configuration.

その結果、サイドチャネル攻撃に強く、セキュリティー性が高いスカラー倍演算処理を実行する実施の形態4のスカラー倍算装置を得ることができる。   As a result, it is possible to obtain the scalar multiplication apparatus according to the fourth embodiment that executes scalar multiplication processing that is resistant to side channel attacks and has high security.

なお、実施の形態4のスカラー倍算装置は、外部より入力されるスカラー値d(入力スカラー値)がスカラー値変換処理によって変換された変換スカラー値bをスカラー倍算処理の演算用スカラー値として用いている。したがって、演算用スカラー値(変換スカラー値b)を構成する複数の桁部はそれぞれ正負の情報を含むM(=w+1)ビット以下のKビットの情報量を有している。また、図20のステップST2〜ST5として実行する、2倍算処理は2倍算演算部6をM回用いて1回倍算値〜M回倍算値を得た後、K回倍算値を選択的に得る処理となる。   The scalar multiplication apparatus according to the fourth embodiment uses the converted scalar value b obtained by converting the scalar value d (input scalar value) input from the outside by the scalar value conversion process as the scalar value for the operation of the scalar multiplication process. Used. Therefore, each of the plurality of digits constituting the arithmetic scalar value (conversion scalar value b) has an information amount of K bits of M (= w + 1) bits or less including positive and negative information. In addition, the doubling process executed as steps ST2 to ST5 in FIG. 20 uses the doubling operation unit 6 M times to obtain the 1-fold multiplication value to the M-fold multiplication value, and then the K-fold multiplication value. This is a process for selectively obtaining.

このように、実施の形態4のスカラー倍算装置は、変換スカラー値bを演算用スカラー値として用いるwNAF法を採用したスカラー倍演算処理をセキュリティー性を高めて実行することができる効果を奏する。   As described above, the scalar multiplication apparatus of the fourth embodiment has an effect that the scalar multiplication operation employing the wNAF method using the converted scalar value b as the operation scalar value can be executed with improved security.

さらに、実施の形態4のスカラー倍算装置は、バイナリ法を採用した実施の形態1に比べて加算処理回数を少なくして処理速度を高めることができる効果も奏する。   Furthermore, the scalar multiplication apparatus of the fourth embodiment also has an effect that the processing speed can be increased by reducing the number of addition processes compared to the first embodiment employing the binary method.

<スカラー倍算方法>
実施の形態1〜実施の形態4で示したスカラー倍算装置を用いて行う、入力座標点P及びスカラー値dからスカラー倍算値dPを得るスカラー倍算方法について説明する。
<Scalar multiplication method>
A scalar multiplication method for obtaining the scalar multiplication value dP from the input coordinate point P and the scalar value d, which is performed using the scalar multiplication apparatus shown in the first to fourth embodiments, will be described.

スカラー倍算方法は、実施の形態1のようにスカラー値d(入力スカラー値)をそのまま演算用スカラー値として用いても、実施の形態2〜実施の形態4のようにスカラー値dを変換して得られる変換スカラー値b(a)を演算用スカラー値として用いてもよい。   In the scalar multiplication method, even if the scalar value d (input scalar value) is used as it is as the scalar value for calculation as in the first embodiment, the scalar value d is converted as in the second to fourth embodiments. The converted scalar value b (a) obtained in this way may be used as the arithmetic scalar value.

スカラー倍算方法は、上記演算用スカラー値と入力座標点Pとを演算対象とし、上記演算用スカラー値は複数の桁部を有し、上記複数の桁部はそれぞれ少なくとも1ビットの情報量を有している。   In the scalar multiplication method, the calculation scalar value and the input coordinate point P are calculated, and the calculation scalar value has a plurality of digits, and each of the plurality of digits has an information amount of at least one bit. Have.

スカラー倍算方法は、複数の桁部に対応して実行され、各々が桁部演算結果を得る複数の桁部演算方法を含んでおり、複数の桁部演算方法の実行により、隣接する桁部間で上位から下位に桁部演算結果を伝搬しつつ、最上位から最下位にかけて桁部単位に桁部演算結果を順次得て、最下位の桁部より得られる桁部演算結果をスカラー倍算値dPとして得る。   The scalar multiplication method is executed corresponding to a plurality of digit parts, and includes a plurality of digit part calculation methods each of which obtains a digit part calculation result. The digit calculation result is obtained sequentially from the highest to the lowest digit while the digit calculation result is propagated from upper to lower, and the scalar calculation is performed on the digit calculation result obtained from the lowest digit. Obtained as the value dP.

複数の桁部演算方法はそれぞれ以下のステップ(a)及び(b)を実行することにより実現される。   A plurality of digit part calculation methods are realized by executing the following steps (a) and (b), respectively.

(a)桁部の値が“0”の場合はゼロ演算処理を実行して桁部演算結果を取得する。   (a) When the value of the digit part is “0”, zero calculation processing is executed to obtain the digit part calculation result.

(b)桁部の値が“0”以外の場合は上記ゼロ演算処理と異なる演算内容の非ゼロ演算処理を実行して桁部演算結果を取得する。   (b) When the value of the digit part is other than “0”, a non-zero calculation process having a calculation content different from that of the zero calculation process is executed to obtain the digit part calculation result.

そして、上記ステップ(a)及びステップ(b)は共に、2倍算処理、第1の加算処理、及び第2の加算処理の順で行い、上記第2の加算処理の演算結果を桁部演算結果としたことを特徴としている。   Then, both step (a) and step (b) are performed in the order of doubling processing, first addition processing, and second addition processing, and the calculation result of the second addition processing is calculated as a digit calculation. It is characterized by the results.

このように、本願発明におけるスカラー倍算方法は、上記特徴を有することにより、ステップ(a),(b)間で共通の演算処理(2倍算処理、第1及び第2の加算処理)の実行後にはじめて桁部演算結果を得ているため、演算用スカラー値の桁部の値が“0”か非“0”かによってステップ(a),(b)間に演算処理時間の変化が生じない。したがって、ゼロ演算処理及び非ゼロ演算処理間における演算処理時の差異に基づくタイミングリークを確実に回避することができる。   As described above, the scalar multiplication method according to the present invention has the above-described characteristics, so that the common arithmetic processing (double multiplication processing, first and second addition processing) is performed between steps (a) and (b). Since the digit calculation result is obtained for the first time after execution, the calculation processing time varies between steps (a) and (b) depending on whether the digit value of the scalar value for calculation is “0” or non- “0”. Absent. Therefore, it is possible to reliably avoid timing leaks based on the difference in the arithmetic processing between the zero arithmetic processing and the non-zero arithmetic processing.

さらに、ゼロ演算処理及び非ゼロ演算処理間で実行される2倍算処理、第1及び第2の加算処理は全て桁部演算結果を得るために必要な演算処理であり、演算結果が利用されないダミー演算処理ではない。したがって、ダミー演算処理に対するセーフエラー攻撃が実行されることもない。   Further, the doubling process and the first and second addition processes executed between the zero calculation process and the non-zero calculation process are all necessary for obtaining the digit part calculation result, and the calculation result is not used. It is not a dummy calculation process. Therefore, the safe error attack for the dummy calculation process is not executed.

その結果、サイドチャネル攻撃に強く、セキュリティー性が高いスカラー倍演算処理を実行するスカラー倍算方法を得ることができる。   As a result, it is possible to obtain a scalar multiplication method that executes a scalar multiplication operation process that is resistant to side channel attacks and has high security.

<その他>
上述した実施の形態1〜実施の形態4では、スカラー倍演算機構としてスカラー倍算用演算部1及び変換スカラー値生成部3の組合せ(実施の形態1はスカラー倍算用演算部1のみ)を示したが、変換スカラー値生成部3の機能をスカラー倍算用演算部1内に含めるように構成してもよい。さらに、加算演算部5及び2倍算演算部6の機能をスカラー倍算用演算部1内に含まれる構成も考えられる。
<Others>
In the first to fourth embodiments described above, a combination of the scalar multiplication operation unit 1 and the converted scalar value generation unit 3 is used as the scalar multiplication operation mechanism (the first embodiment is only the scalar multiplication operation unit 1). Although shown, the function of the conversion scalar value generation unit 3 may be included in the scalar multiplication operation unit 1. Further, a configuration in which the functions of the addition operation unit 5 and the doubling operation unit 6 are included in the scalar multiplication operation unit 1 is also conceivable.

また、加算演算部5及び2倍算演算部6内にそれぞれ有限体加算器、有限体減算部及び有限体乗算部有する構成を説明したが、加算演算部5及び2倍算演算部6間で有限体加算器、有限体減算部及び有限体乗算部を共有するようにしても良い。   Moreover, although the structure which has a finite field adder, a finite field subtraction part, and a finite field multiplication part in the addition calculation part 5 and the doubling calculation part 6 was demonstrated, between the addition calculation part 5 and the doubling calculation part 6, respectively. You may make it share a finite field adder, a finite field subtraction part, and a finite field multiplication part.

また、図2で示したスカラー倍算用演算部1、変換スカラー値生成部3、加算演算部5及び2倍算演算部6は、例えば、ソフトウェアに基づくCPUを用いたプログラム処理によって実行される。また、記憶部8は、HDD、DVD、メモリなどによって構成される。   Further, the scalar multiplication calculation unit 1, the conversion scalar value generation unit 3, the addition calculation unit 5 and the doubling calculation unit 6 shown in FIG. 2 are executed by program processing using a CPU based on software, for example. . The storage unit 8 includes an HDD, a DVD, a memory, and the like.

なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略したりすることが可能である。   It should be noted that the present invention can be freely combined with each other within the scope of the invention, and each embodiment can be appropriately modified or omitted.

1 スカラー倍算用演算部
3 変換スカラー値生成部
5 加算演算部
6 2倍算演算部
8 記憶部
DESCRIPTION OF SYMBOLS 1 Operation part for scalar multiplication 3 Conversion scalar value generation part 5 Addition operation part 6 Double calculation operation part 8 Storage part

Claims (6)

入力座標点及び入力スカラー値を受け、前記入力座標点のスカラー倍算値を得るスカラー倍算装置であって、
2つの入力値の加算演算を実行する加算演算部と、
1つの入力値の2倍算演算を実行する2倍算演算部と、
前記入力スカラー値あるいは前記入力スカラー値を変換して得られる変換スカラー値を演算用スカラー値とし、前記演算用スカラー値と前記入力座標点とを演算対象として、スカラー倍算処理を行い前記スカラー倍算値を得るスカラー倍演算機構とを備え、
前記演算用スカラー値は複数の桁部を有し、前記複数の桁部はそれぞれ少なくとも1ビットの情報量を有し、
前記スカラー倍算処理は、前記複数の桁部に対応して実行され各々が桁部演算結果を得る複数の桁部演算処理を含み、前記複数の桁部演算処理の実行により、隣接する桁部間で上位から下位に桁部演算結果を伝搬しつつ、最上位から最下位にかけて桁部単位に桁部演算結果を順次得て、最下位の桁部より得られる桁部演算結果を前記スカラー倍算値とし、
前記複数の桁部演算処理はそれぞれ、前記加算演算部及び前記2倍算演算部を用いて実行され、桁部の値が“0”の場合はゼロ演算処理を実行して桁部演算結果を取得し、“0”以外の場合は前記ゼロ演算処理と異なる演算内容の非ゼロ演算処理を実行して桁部演算結果を取得し、
前記ゼロ演算処理及び前記非ゼロ演算処理を共に、2倍算処理、第1の加算処理、及び第2の加算処理の順で行い、前記第2の加算処理の演算結果を桁部演算結果としたことを特徴とする、
スカラー倍算装置。
A scalar multiplication device that receives an input coordinate point and an input scalar value and obtains a scalar multiplication value of the input coordinate point,
An addition operation unit for performing an addition operation of two input values;
A doubling operation unit for executing a doubling operation of one input value;
The input scalar value or a conversion scalar value obtained by converting the input scalar value is set as a calculation scalar value, and the scalar multiplication processing is performed on the calculation scalar value and the input coordinate point as the calculation target. With a scalar multiplication operation mechanism that obtains arithmetic values,
The arithmetic scalar value has a plurality of digits, each of the digits has an information amount of at least 1 bit,
The scalar multiplication process includes a plurality of digit calculation processes that are executed corresponding to the plurality of digit parts, each of which obtains a digit calculation result, and the adjacent digit parts are obtained by executing the plurality of digit part calculation processes. The digit calculation result is obtained sequentially from the most significant digit to the lowest digit while the digit calculation result is obtained from the least significant digit. Calculated value
Each of the plurality of digit part arithmetic processes is executed using the addition arithmetic part and the doubling arithmetic part, and when the digit part value is “0”, zero arithmetic process is executed and the digit part arithmetic result is obtained. If it is not “0”, a non-zero calculation process having a calculation content different from the zero calculation process is executed to obtain a digit calculation result,
Both the zero calculation process and the non-zero calculation process are performed in the order of a doubling process, a first addition process, and a second addition process, and the calculation result of the second addition process is defined as a digit part calculation result. It is characterized by
Scalar multiplication device.
請求項1記載のスカラー倍算装置であって、
前記演算用スカラー値は前記入力スカラー値であり、前記複数の桁部はそれぞれ1ビットの情報量を有し、
前記2倍算処理は前記2倍算演算部を1回用いて1回倍算値を得る処理を含む、
スカラー倍算装置。
The scalar multiplication device according to claim 1,
The arithmetic scalar value is the input scalar value, and each of the plurality of digits has an information amount of 1 bit,
The doubling process includes a process of obtaining a doubling value once using the doubling operation unit once.
Scalar multiplication device.
請求項1記載のスカラー倍算装置であって、
前記演算用スカラー値は前記変換スカラー値であり、前記複数の桁部はそれぞれM(M≧2)ビットの情報量を有し、
前記スカラー倍算処理は、
前記入力スカラー値を前記変換スカラー値に変換するスカラー値変換処理と、
前記入力座標点に基づき、前記入力座標点を整数倍して得られる整数倍座標点を複数種有する倍数テーブルを作成するテーブル作成処理と、
前記スカラー値変換処理及び前記テーブル作成処理の実行後に、前記複数の桁部演算処理を実行するスカラー倍算本処理とを含み、
前記2倍算処理は前記2倍算演算部をM回繰り返し用いてM回倍算値を得る処理を含み、
前記第1の加算処理は前記非ゼロ演算処理の実行時に前記倍数テーブルを用いて行われる、
スカラー倍算装置。
The scalar multiplication device according to claim 1,
The arithmetic scalar value is the converted scalar value, and each of the plurality of digits has an information amount of M (M ≧ 2) bits,
The scalar multiplication process is
A scalar value conversion process for converting the input scalar value into the converted scalar value;
A table creation process for creating a multiple table having a plurality of types of integer multiple coordinate points obtained by multiplying the input coordinate points by an integer based on the input coordinate points;
A scalar multiplication main process that executes the plurality of digit part calculation processes after the scalar value conversion process and the table creation process,
The doubling process includes a process of obtaining a M-fold multiplication value by repeatedly using the doubling operation unit M times,
The first addition process is performed using the multiple table when the non-zero calculation process is executed.
Scalar multiplication device.
請求項1記載のスカラー倍算装置であって、
前記演算用スカラー値は前記変換スカラー値であり、前記複数の桁部はそれぞれ正負を含む1ビットの情報量を有し
前記スカラー倍算処理は、
前記入力スカラー値を前記変換スカラー値に変換するスカラー値変換処理と、
前記スカラー値変換処理の実行後に、前記複数の桁部演算処理を実行するスカラー倍算本処理とを含み、
前記2倍算処理は前記2倍算演算部を1回用いて1回倍算値を得る処理を含み、
前記非ゼロ演算処理は、前記桁部の値が正の場合に実行される第1の非ゼロ演算処理と
前記桁部の値が負の場合に実行される第2の非ゼロ演算処理とを含み、前記第1及び第2の非ゼロ演算処理は共に前記2倍算処理、前記第1の加算処理、及び前記第2の加算処理の順で行い、前記第2の加算処理の演算結果を桁部演算結果としている、
スカラー倍算装置。
The scalar multiplication device according to claim 1,
The arithmetic scalar value is the converted scalar value, and each of the plurality of digits has a 1-bit information amount including positive and negative, and the scalar multiplication process includes:
A scalar value conversion process for converting the input scalar value into the converted scalar value;
A scalar multiplication main process that executes the plurality of digit part arithmetic processes after the scalar value conversion process is performed,
The doubling process includes a process of obtaining a doubling value once using the doubling operation unit once,
The non-zero calculation process includes a first non-zero calculation process executed when the value of the digit part is positive and a second non-zero calculation process executed when the value of the digit part is negative. And the first and second non-zero computation processes are both performed in the order of the doubling process, the first addition process, and the second addition process, and the calculation result of the second addition process is obtained. As the digit part calculation result,
Scalar multiplication device.
請求項1記載のスカラー倍算装置であって、
前記演算用スカラー値は前記変換スカラー値であり、前記複数の桁部はそれぞれM(M≧2)ビット以下のK(K=1〜Mのいずれか)ビットの情報量を有し、
前記スカラー倍算処理は、
前記入力スカラー値を前記変換スカラー値に変換するスカラー値変換処理と、
前記入力座標点に基づき、前記入力座標点を偶数倍して偶数倍座標点を複数種有する倍数テーブルを作成するテーブル作成処理と、
前記スカラー値変換処理及び前記テーブル作成処理の実行後に、前記複数の桁部演算処理を実行するスカラー倍算本処理とを含み、
前記2倍算処理は前記2倍算演算部をM回繰り返し用いて1回倍算値〜M回倍算値を得た後、K回倍算値を選択する処理を含み、
前記非ゼロ演算処理は、前記桁部の値が正の場合に実行される第1の非ゼロ演算処理と
前記桁部の値が負の場合に実行される第2の非ゼロ演算処理とを含み、前記第1及び第2の非ゼロ演算処理は共に前記2倍算処理、前記第1の加算処理、及び前記第2の加算処理の順で行い、前記第2の加算処理の演算結果を桁部演算結果としている、
スカラー倍算装置。
The scalar multiplication device according to claim 1,
The arithmetic scalar value is the converted scalar value, and each of the plurality of digits has an information amount of K (K = 1 to M) bits of M (M ≧ 2) bits or less,
The scalar multiplication process is
A scalar value conversion process for converting the input scalar value into the converted scalar value;
Based on the input coordinate point, a table creation process for creating a multiple table having multiple types of even multiple coordinate points by multiplying the input coordinate points by an even number;
A scalar multiplication main process that executes the plurality of digit part calculation processes after the scalar value conversion process and the table creation process,
The doubling process includes a process of selecting a K-fold multiplication value after obtaining a 1-fold multiplication value to an M-fold multiplication value by repeatedly using the doubling operation unit M times,
The non-zero calculation process includes a first non-zero calculation process executed when the value of the digit part is positive and a second non-zero calculation process executed when the value of the digit part is negative. And the first and second non-zero computation processes are both performed in the order of the doubling process, the first addition process, and the second addition process, and the calculation result of the second addition process is obtained. As the digit part calculation result,
Scalar multiplication device.
入力座標点及び入力スカラー値を受け、前記入力座標点のスカラー倍算値を得るスカラー倍算方法であって、
前記入力スカラー値あるいは前記入力スカラー値を変換して得られる変換スカラー値を演算用スカラー値とし、前記演算用スカラー値と前記入力座標点とを演算対象とし、前記演算用スカラー値は複数の桁部を有し、前記複数の桁部はそれぞれ少なくとも1ビットの情報量を有し、
前記スカラー倍算方法は、
前記複数の桁部に対応して実行され、各々が桁部演算結果を得る複数の桁部演算方法を含み、前記複数の桁部演算方法の実行により、隣接する桁部間で上位から下位に桁部演算結果を伝搬しつつ、最上位から最下位にかけて桁部単位に桁部演算結果を順次得て、最下位の桁部より得られる桁部演算結果を前記スカラー倍算値とし、
前記複数の桁部演算方法はそれぞれ、
(a)桁部の値が”0”の場合はゼロ演算処理を実行して桁部演算結果を取得するステッと、
(b)桁部の値が”0”以外の場合は前記ゼロ演算処理と異なる演算内容の非ゼロ演算処理を実行して桁部演算結果を取得するステップとを含み、
前記ステップ(a)及びステップ(b)は共に、2倍算処理、第1の加算処理、及び第2の加算処理の順で行い、前記第2の加算処理の演算結果を桁部演算結果としたことを特徴とする、
スカラー倍算方法。
A scalar multiplication method for receiving an input coordinate point and an input scalar value and obtaining a scalar multiplication value of the input coordinate point,
The input scalar value or a conversion scalar value obtained by converting the input scalar value is set as a calculation scalar value, the calculation scalar value and the input coordinate point are set as calculation targets, and the calculation scalar value includes a plurality of digits. Each of the plurality of digits has an information amount of at least 1 bit,
The scalar multiplication method is:
Executed in correspondence with the plurality of digit parts, each including a plurality of digit part calculation methods for obtaining a digit part calculation result, and by executing the plurality of digit part calculation methods, from the upper part to the lower order between adjacent digit parts Propagating the digit operation result, sequentially obtaining the digit operation result in digit units from the most significant to the least significant, the digit operation result obtained from the least significant digit as the scalar multiplication value,
Each of the plurality of digit part calculation methods is
(a) When the value of the digit part is “0”, the step of executing the zero calculation process to obtain the digit part calculation result,
(b) when the value of the digit part is other than “0”, performing a non-zero calculation process having a calculation content different from the zero calculation process to obtain a digit calculation result;
Steps (a) and (b) are both performed in the order of doubling processing, first addition processing, and second addition processing, and the calculation result of the second addition processing is referred to as the digit portion calculation result. It is characterized by
Scalar multiplication method.
JP2015190114A 2015-09-28 2015-09-28 Scalar multiplier Active JP6457911B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015190114A JP6457911B2 (en) 2015-09-28 2015-09-28 Scalar multiplier

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015190114A JP6457911B2 (en) 2015-09-28 2015-09-28 Scalar multiplier

Publications (2)

Publication Number Publication Date
JP2017067859A true JP2017067859A (en) 2017-04-06
JP6457911B2 JP6457911B2 (en) 2019-01-23

Family

ID=58492335

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015190114A Active JP6457911B2 (en) 2015-09-28 2015-09-28 Scalar multiplier

Country Status (1)

Country Link
JP (1) JP6457911B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11784814B2 (en) 2020-09-09 2023-10-10 Kioxia Corporation Arithmetic device and method
WO2024045665A1 (en) * 2022-08-30 2024-03-07 北京象帝先计算技术有限公司 Multiple-point multiplication operation system and method, and graphics processor, electronic apparatus and device
JP7576713B2 (en) 2021-02-26 2024-10-31 ザマ・エス・ア・エス Encrypted Scalar Multiplication

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005015526A1 (en) * 2003-08-06 2005-02-17 Fujitsu Limited Elliptic curve encrypting device, elliptic curve encryp-ting method, elliptic curve encrypting program andcomputer-readable recording medium recording that program
US20150092941A1 (en) * 2013-09-27 2015-04-02 Santosh Ghosh Fault tolerant apparatus and method for elliptic curve cryptography

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005015526A1 (en) * 2003-08-06 2005-02-17 Fujitsu Limited Elliptic curve encrypting device, elliptic curve encryp-ting method, elliptic curve encrypting program andcomputer-readable recording medium recording that program
US20150092941A1 (en) * 2013-09-27 2015-04-02 Santosh Ghosh Fault tolerant apparatus and method for elliptic curve cryptography

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BODO MOELLER: "Securing Elliptic Curve Point Multiplication against Side-Channel Attacks", ISC 2001, LNCS, vol. Vol.2200, JPN6018043898, 2001, pages 324 - 334, XP001068194 *
木藤 圭亮 ほか: "サイドチャネル攻撃耐性を持つスカラー倍算アルゴリズム", 電子情報通信学会技術研究報告, vol. Vol.114 No.489, JPN6018043897, 24 February 2015 (2015-02-24), JP, pages pp.85−90 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11784814B2 (en) 2020-09-09 2023-10-10 Kioxia Corporation Arithmetic device and method
JP7576713B2 (en) 2021-02-26 2024-10-31 ザマ・エス・ア・エス Encrypted Scalar Multiplication
WO2024045665A1 (en) * 2022-08-30 2024-03-07 北京象帝先计算技术有限公司 Multiple-point multiplication operation system and method, and graphics processor, electronic apparatus and device

Also Published As

Publication number Publication date
JP6457911B2 (en) 2019-01-23

Similar Documents

Publication Publication Date Title
JP5412274B2 (en) Protection from side channel attacks
KR102136911B1 (en) Cryptography method comprising an operation of multiplication by a scalar or an exponentiation
JP5488718B2 (en) Cryptographic processing apparatus, cryptographic processing method, and program
WO2015164996A1 (en) Elliptic domain curve operational method and elliptic domain curve operational unit
JP5365624B2 (en) Embedded device apparatus incorporating a decoding device, a program, and a recovery device having a countermeasure function against a power analysis attack
JP2008541166A (en) Randomized modular polynomial reduction method and hardware therefor
WO2006054559A1 (en) Encryption computing device
ES2604460T3 (en) Procedure to securely encode or decode a message
JP2006276786A (en) Calculating method, calculating device, and computer program
KR20100117589A (en) Countermeasure method and devices for asymmetrical cryptography with signature diagram
JP5573964B2 (en) Cryptographic processing apparatus and method
JP6457911B2 (en) Scalar multiplier
JP4351987B2 (en) Montgomery conversion device, arithmetic device, IC card, encryption device, decryption device, and program
KR100991713B1 (en) Apparatus and method for operating inversion of AES with masking method, and AES cipher system and method using thereof
TWI630545B (en) Non-modular multiplier, method for non-modular multiplication and computational device
CN102646033B (en) Provide implementation method and the device of the RSA Algorithm of encryption and signature function
WO2005013243A1 (en) Calculator, method, and program for calculating conversion parameter of montgomery multiplication remainder
Seo et al. MoTE-ECC based encryption on MSP430
JP3959076B2 (en) Finite field square computing method and square computing device
KR20090090881A (en) Method and apparatus of elliptic curve cryptography processing in sensor mote and recording medium using it
JP2010008883A (en) Arithmetic device for cipher, arithmetic method for cipher, and program
JP2004226516A (en) Power remainder computing method and program for the same
JP2006201641A (en) Nonlinear arithmetic unit, encryption processor, nonlinear arithmetic method, and nonlinear arithmetic program
Babenko et al. Comparative analysis of the scalar point multiplication algorithms in the NIST FIPS 186 elliptic curve cryptography.
Verbauwhede Efficient Finite Field Multiplication for Isogeny Based Post Quantum Cryptography

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181203

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181221

R150 Certificate of patent or registration of utility model

Ref document number: 6457911

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250