JP6293681B2 - マルチスカラー倍算演算装置、マルチスカラー倍算演算方法、プログラム - Google Patents

マルチスカラー倍算演算装置、マルチスカラー倍算演算方法、プログラム Download PDF

Info

Publication number
JP6293681B2
JP6293681B2 JP2015007719A JP2015007719A JP6293681B2 JP 6293681 B2 JP6293681 B2 JP 6293681B2 JP 2015007719 A JP2015007719 A JP 2015007719A JP 2015007719 A JP2015007719 A JP 2015007719A JP 6293681 B2 JP6293681 B2 JP 6293681B2
Authority
JP
Japan
Prior art keywords
digit
scalar multiplication
expression
calculation
integers
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.)
Active
Application number
JP2015007719A
Other languages
English (en)
Other versions
JP2016133601A (ja
Inventor
祐人 川原
祐人 川原
鉄太郎 小林
鉄太郎 小林
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015007719A priority Critical patent/JP6293681B2/ja
Publication of JP2016133601A publication Critical patent/JP2016133601A/ja
Application granted granted Critical
Publication of JP6293681B2 publication Critical patent/JP6293681B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、楕円曲線暗号やペアリング暗号における鍵生成、暗号化、復号装置に関し、特に情報セキュリティ技術を実現するためのマルチスカラー倍算演算装置、マルチスカラー倍算演算方法、プログラムに関する。
事前計算および表現変換を伴わない最も基本的なマルチスカラー倍算の計算は、既に一般的な技術として広まっており、例えば、非特許文献1に掲載されている。非特許文献2において、表現変換を用いず事前計算とマルチスカラー倍算計算により効率的にマルチスカラー倍算を計算する方式が提案されている。またHedabouらの非特許文献3では、本発明とは異なったやり方で、事前計算と表現変換のペアを用いて効率化した手法が示されている。非特許文献3は、固定点スカラー倍算の高速化という文脈で記述されているが、これらはマルチスカラー倍算の計算と捉えることができる。
D. Hankerson, A. Menezes, and S. Vanstone, "Guide to Elliptic Curve Cryptography," Springer Professional Computing, Springer-Verlag, pp. 109-113, 2004. C.H. Lim, and P.J. Lee, "More Flexible Exponentiation with Precomputation," CRYPT0 '94, LNCS 839, pp. 95-107, 1994. M. Hedabou, P. Pinel, and L. Bebeteau, "Countermeasures for Preventing Comb Method Against SCA Attacks," ISPEC 2005, LNCS 3439, pp. 85-96, 2005.
楕円曲線暗号では、RSA暗号等と比較して短い鍵長で高い安全性を実現することが可能である。またペアリング暗号では、双線型性と呼ばれる性質を用いることで、任意の文字列を公開鍵として設定可能なIDベース暗号(参考非特許文献1)や、属性/条件式を秘密鍵/暗号文に設定し、柔軟な復号制御が可能な関数型暗号(参考非特許文献2)など、利便性の高い暗号方式が構築可能である。これらはどちらも安全性や利便性の観点で重要な暗号技術である。
(参考非特許文献1:D. Boneh, and M. Franklin, ”Identity-based Encryption from the Weil Pairing,” SIAM Journal on Computing, vol. 32, no. 3, pp. 586-615, 2003.)
(参考非特許文献2:T. Okamoto, and K. Takashima, ”Fully Secure Functional Encryption with General Relations from the Decisional Linear Assumption,” CRYPTO2010, LNCS 6223, pp.191-208, 2010.)
これらを実際のシステムとして実現する際には、楕円曲線上のマルチスカラー倍算が必要となることが多い。例えば、関数型暗号では、鍵生成や暗号化においてマルチスカラー倍算が支配的な計算コストとなる。従って、楕円曲線上のマルチスカラー倍算の効率化は重要な課題である。マルチスカラー倍算の処理における計算コストは、そのほとんどが楕円加算P+Q、楕円2倍算2Pであるため、楕円加算/楕円2倍算を使用する回数を減らすことが効率化する上で必要となる。
そこで本発明では、マルチスカラー倍算計算の際の楕円加算/楕円2倍算の使用回数を削減することができるマルチスカラー倍算演算装置を提供することを目的とする。
本発明のマルチスカラー倍算演算装置は、事前計算部と、表現変換部と、マルチスカラー倍算計算部を含む。
素数p、正整数e、q=pe、有限体
Figure 0006293681
、楕円曲線E上のFq-有理点群をE(Fq)とする。
事前計算部は、整数m≧2とし、m個の点P0,...,Pm-1および0以上の整数k0,...,km-1に対して、マルチスカラー倍算をΣi=0 m-1kiPiを計算しE(Fq)上の点を出力する関数としたとき、m-1個のビット{0,1}の組(e1,...,em-1)の全ての組合せに対して、点P0i=1 m-1eiPiを計算し、計算した2m-1個の点を、事前計算テーブルに保存する。
表現変換部は、正整数かつ奇数k0、0以上の整数k1,...,km-1を入力として、k'0,...,k'm-1の各桁が{0,±1}で表現され、全てのk'iに対してj桁目が0、または、k'0のj桁目が{±1}かつk'0以外のk'iのj桁目が0またはk'0のj桁目と同値、という条件を満たすk'0,...,k'm-1に表現変換する。
マルチスカラー倍算計算部は、事前計算テーブルと表現変換されたk'0,...,k'm-1を用いてマルチスカラー倍算Σi=0 m-1kiPiと同値の点を計算する。
本発明のマルチスカラー倍算演算装置によれば、マルチスカラー倍算計算の際の楕円加算/楕円2倍算の使用回数を削減することができる。
実施例1のマルチスカラー倍算演算装置の構成を示すブロック図。 実施例1のマルチスカラー倍算演算装置の動作を示すフローチャート。 Binary法を用いたマルチスカラー倍算の計算アルゴリズムを例示する図。 実施例1の表現変換部で実行されるアルゴリズムを例示する図。 実施例1のマルチスカラー倍算計算部で実行されるアルゴリズムを例示する図。 実施例1の表現変換部で実行されるアルゴリズム内において使用されるアルゴリズムを説明する図。
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
<準備>
実施例1の説明に先立ち、本明細書で用いる記号や、従来手法の説明などを行う。素数p、拡大次数e(正整数)に対してq=peとし、有限体
Figure 0006293681
とする。また楕円曲線Eに対して楕円曲線上のFq-有理点の集合(有理点群)を
E(Fq)={(x,y)∈E|x,y∈Fq}∪O
と定義する。このときE(Fq)は加法群をなす。E(Fq)では、入力P,Q∈E(Fq)に対して、楕円加算R=P+Q(ただし、P≠±Q)と楕円2倍算R=2Pの計算ができる。またOは、任意の点P∈E(Fq)に対してP+O=Pとなる点であり、無限遠点と呼ばれる。以下、楕円加算およびその演算量(計算コスト)をECADD、楕円2倍算およびその演算量(計算コスト)をECDBLと表す。
<マルチスカラー倍算>
楕円曲線上のスカラー倍算とは、楕円曲線上の点P∈E(Fq)と0以上の整数kに対して、
Figure 0006293681
を求める計算である。スカラー倍算の拡張として、m個の楕円曲線上の点Pi(i=0,...,m-1),0以上の整数kiを入力としたとき、Σi=0 m-1kiPi=k0P0+…+km-1Pm-1を計算するのがマルチスカラー倍算である。
なお、スカラー値kiは、nビットの2進数
ki=(ki (n-1),…,ki (0))=Σj=0 n-1ki (j)2j
(ただしki (j)∈{0,1}、j=0,...,n-1)
で表現されるものとする。
最も基本的なマルチスカラー倍算の計算としてBinary法を用いた方式がある。図3に計算アルゴリズム(Algorithm1)を示す。本アルゴリズム(Algorithm1)は、
Figure 0006293681
すなわち、前述のm個の楕円曲線上の点Pi(i=0,...,m-1)、およびnビットの2進数であるスカラー値kiを入力とする。本アルゴリズム(Algorithm1)は、
Figure 0006293681
すなわち、マルチスカラー倍算の計算結果Rを出力するアルゴリズムである。まず、無限遠点Oを用いて
Figure 0006293681
すなわち、Rを無限遠点で初期化する。なお、アルゴリズム内で記号「←」は代入を意味するものとする。次に、
Figure 0006293681
すなわち、j=n-1からj=0まで、jの値をデクリメントしてアルゴリズムの3行目から9行目までを繰り返し演算する。次に、
Figure 0006293681
すなわち、Rに2Rを代入する。次に、
Figure 0006293681
すなわち、i=0からi=m-1まで、iの値をインクリメントしてアルゴリズムの5行目から8行目までを繰り返し演算する。
Figure 0006293681
すなわち、ki (j)=1となるとき、楕円曲線上の点Piを用いて、
Figure 0006293681
すなわち、RにR+Piを代入する。アルゴリズムの7〜9行目は、繰り返し演算の終了を示す。そしてアルゴリズムの10行目
Figure 0006293681
すなわち、マルチスカラー倍算の計算結果Rが出力される。スカラー値の各ビットで{0,1}の取る確率が一様である場合、Algorithm1の計算コストは、mn/2ECADD+nECDBL回となる。
[Lim-Lee方式(非特許文献2)]
以下、非特許文献2記載のLim-Lee方式の詳細を説明する。
<事前計算>
m個のビットの組(e0,...,em-1)(ei∈{0,1})の全ての組合せに対して、点Σi=0 m-1eiPiを計算する。
<表現変換>
この方式では、各kiに対して、表現変換は行わない。
[HPB05方式(非特許文献3)]
次に、非特許文献3記載のHPB05方式の詳細を説明する。
<事前計算>
m-1個のビットの組(e1,...,em-1)(ei∈{0,1})の全ての組合せに対して、点P0i=1 m-1eiPiを計算する。
<表現変換>
正整数かつ奇数k0、0以上の整数k1,...,km-1を入力として、k'0は全ての桁が{±1}で表現され、他のk'i(すなわちi≠0)は、k'iのj桁目であるk'i (j)が{0,k'0 (j)}となるようなk'0,...,k'm-1を出力する。kiの上位桁が0の隣り合う2桁、例えばj桁目、j-1桁目であるki (j),ki (j-1)は、(ki (j),ki (j-1))=(0,1)→(1,-1)と表現することができることを利用して、上述の表現変換を行うことができる。結果として、k'0,...,k'm-1の任意のj桁目に対して、i=1,...,m-1で、
Figure 0006293681
となり、全てのj桁目に対して(k'0 (j),k'i (j))は(1,0),(1,1),(-1,0),(-1,-1)のいずれかの値を取る。
以下、図1、図2を参照して実施例1のマルチスカラー倍算演算装置について説明する。図1は、本実施例のマルチスカラー倍算演算装置1の構成を示すブロック図である。図2は、本実施例のマルチスカラー倍算演算装置1の動作を示すフローチャートである。図1に示すように、本実施例のマルチスカラー倍算演算装置1は、事前計算部11と、事前計算結果保存部12と、表現変換部13と、マルチスカラー倍算計算部14を含む構成である。
<事前計算部11、ステップS11>
事前計算部11は、基準となる点P0と、i=1,...,m-1(m≧2を充たす整数とする)のPiに対して、事前計算を行い、計算された2m-1個の点を事前計算結果保存部12の事前計算テーブルへ保存する。このとき、{0,1}をとるm-1個の値の組(e1,...,em-1)とする。全ての(e1,...,em-1)の組合せは2m-1個となる。P0,...,Pm-1に対して、tのマッピング方法の一例として、次のような事前計算テーブルTbl[t]を構成する。ここで、0≦t<2m-1とする。
Tbl[Σj=1 m-1ej2j-1]=P0j=1 m-1ejPj
ステップS11は、HPB05方式における事前計算と同様である。
<表現変換部13、ステップS13>
以下、本実施例で用いられるスカラー値の変換方法について説明する。正整数かつ奇数k0、0以上の整数k1,...,km-1を入力として、本実施例では、k'0,...,k'm-1の各桁が{0,±1}で表現され、以下(1),(2)のどちらかの条件を満たす。
(1)全てのi=0,...,m-1に対して、k'i (j)=0である。
(2)k'0のj桁目が{±1}かつk'0以外のk'i(すなわちi≠0)のj桁目が0またはk'0のj桁目と同値である。
入力である正整数かつ奇数k0、0以上の整数k1,...,km-1に対して、上記の条件を満たす表現へ変換する際には、0桁目から変換していき、(k'0,...,k'm-1)のあるj桁目で、
Figure 0006293681
という表現に変換すれば、整数s≧0に対してj桁目からj+s+1桁目までの間にs個のゼロ桁を作りつつ、j+s+1桁目以降の変換において発明手法の表現を満たさない桁が現れない変換を継続する事ができる。あるj桁目において上述の変換ができた場合、次はj+s+1桁目をj桁目とみて、繰り返し上述の変換を行う。
表現変換部13の動作(ステップS13)について、図4に示すアルゴリズムの例(Algorithm2)、図6に示すアルゴリズムの例(Algorithm4,5,6)を参照して詳細に説明する。図4に示すように、表現変換部13への入力は、
Figure 0006293681
すなわち、前述した正整数かつ奇数k0、0以上の整数k1,...,km-1を入力とする。表現変換部13は、
Figure 0006293681
すなわち、表現変換されたスカラー値であるk'0,...,k'm-1を出力する。まず、表現変換部13は、
Figure 0006293681
すなわち、iの初期値を0とする。次に表現変換部13は、
Figure 0006293681
すなわち、i<nを継続条件としてこのアルゴリズムの3行目から28行目を実行する。次に表現変換部13は、k0のi+1桁目を用いて、
Figure 0006293681
とする。次に表現変換部13は、図6に示すcountアルゴリズム(Algorithm5)を用いて
Figure 0006293681
とする。図6に示すように、count(k,i,b)は、まずs←0とし、i<nを継続条件として、kのi桁目がbでない場合、すなわちk(i)≠bとなる場合にはsを出力する処理を実行し、i,sをインクリメントしてk(i)≠bとなる場合にはsを出力する処理を繰り返すアルゴリズムである。次に表現変換部13は、図6に示すcheckアルゴリズム(Algorithm6)を用いて
Figure 0006293681
すなわち、check(kj,i,s,b)の結果がj=1,...,m-1の全てにおいて真であるならば、このアルゴリズムの6行目から15行目を実行し、そうでなければこのアルゴリズムの17行目から27行目を実行する。図6に示すようにcheck(k,i,s,b)は、s=0ならば偽(false)を出力し、j=1からsまで、k(i+j)≠k(i)bならば偽(false)を出力する処理を繰り返し実行し、それ以外の場合に真(true)を出力するアルゴリズムである。Algorithm2の5行目のcheckの結果が真である場合に、表現変換部13は、
Figure 0006293681
すなわち、k0のi桁目に(-1)b、k0のi+s+1桁目に1、k0のi+t桁目(ただし、t=1,...,s)に0を、代入する。次に表現変換部13は、
Figure 0006293681
すなわち、j=1からj=m-1まで、jの値をインクリメントしながらアルゴリズムの9行目から14行目までを繰り返し演算する。次に表現変換部13は、
Figure 0006293681
すなわち、kjのi桁目に(-1)b・kj (i)、kjのi+t桁目(ただし、t=1,...,s)に0を、代入する。次に、表現変換部13は、
Figure 0006293681
すなわち、kjのi行目が-1である場合に、kjにcarry_addアルゴリズム(Algorithm4)の実行結果を代入する。図6に示すようにcarry_add(k,i)は、kのi行目が0でないこと、すなわちk(i)≠0を継続条件として、kのi行目に0を代入(k(i)←0)して、iをインクリメントする処理を繰り返し実行し、それ以外のkのi行目に対して1を代入(k(i)←1)し、kを出力するアルゴリズムである。Algorithm2の13行目は、11行目から始まる分岐処理の終了を示す。同14行目は、8行目から始まる繰り返し処理の終了を示す。15行目は、checkが真である場合に実行される処理の最後に、i←i+s+1とすることを示す。
Algorithm2の16行目以降は、check(kj,i,s,b)の結果がj=1,...,m-1のいずれかにおいて真でない場合の処理である。具体的には表現変換部13は、check(kj,i,s,b)の結果がj=1,...,m-1において真でない場合、
Figure 0006293681
すなわち、k0 (i+1)=0である場合にアルゴリズムの18行目から25行目までを実行する。表現変換部13は、
Figure 0006293681
すなわち、k0のi桁目に-1を代入し、k0のi+1桁目に1を代入する。次に表現変換部13は、
Figure 0006293681
すなわち、j=1からj=m-1まで、jの値をインクリメントしながらアルゴリズムの20行目から24行目までを繰り返し演算する。次に表現変換部13は、
Figure 0006293681
すなわち、kjのi桁目が0でない場合に、kjのi桁目に-1を代入し、kjにcarry_add(kj,i+1)の実行結果を代入する。23行目は、20行目から始まる分岐処理の終了を、24行目は、19行目から始まる繰り返し処理の終了を、25行目は、17行目から始まる繰り返し処理の終了を示す。26行目は、checkが真でない場合に実行される処理の最後に、表現変換部13がiをインクリメントすることを示す。最後に、表現変換部13は
Figure 0006293681
すなわち、表現変換結果である(k'0,...,k'm-1)を出力する(上記アルゴリズムでは、k0,...,km-1に上書きする形で表現変換結果k'0,...,k'm-1を得る)。
<マルチスカラー倍算計算部14、ステップS14>
マルチスカラー倍算計算部14は、上記表現変換されたk'0,...,k'm-1と、事前計算テーブルTbl[t]を用いて、マルチスカラー倍算Σi=0 m-1kiPiと同値の点を、例えば図5に示すAlgorithm3によって計算する。マルチスカラー倍算計算部14は、
Figure 0006293681
すなわち、事前計算テーブルTbl[t]と、表現変換結果である(k'0,...,k'm-1)を入力とする。マルチスカラー倍算計算部14は、
Figure 0006293681
すなわち、マルチスカラー倍算の計算結果Rを出力する。マルチスカラー倍算計算部14は、無限遠点Oを用いて
Figure 0006293681
とする。次にマルチスカラー倍算計算部14は、
Figure 0006293681
すなわち、i=n+1からi=0まで、iの値をデクリメントしてアルゴリズムの3行目から10行目までを繰り返し演算する。次にマルチスカラー倍算計算部14は、
Figure 0006293681
とする。次にマルチスカラー倍算計算部14は、
Figure 0006293681
すなわち、cにk'0のi桁目を代入し、tにΣd=1 m-1k'd (i)2d-1を代入する。次にマルチスカラー倍算計算部14は、
Figure 0006293681
すなわち、c=1である場合に、RにR+Tbl[t]を代入する。次にマルチスカラー倍算計算部14は、
Figure 0006293681
すなわち、c=-1である場合に、RにR-Tbl[-t]を代入する。9行目は、5行目から始まる繰り返し処理の終了を示す。10行目は、2行目から始まる分岐処理の終了を示す。マルチスカラー倍算計算部14は、
Figure 0006293681
すなわち、マルチスカラー倍算の計算結果Rを出力する。
<変形例1>
上述の実施例1においては、マルチスカラー倍算演算装置1に事前計算部11を含む構成としたが、これに限らず、マルチスカラー倍算演算装置から事前計算部11を省略することができる。この場合外部装置などに事前計算部11にあたる構成が存在するものとする。この場合外部装置が予め事前計算を実行しておき、事前計算の結果は、事前計算結果保存部12が事前計算テーブルとして予め保存しておくものとする。この場合、予め計算された2m-1個の点は固定点である。なお、実施例1においては、都度事前計算部が計算を実行するため、計算される点は可変点である。
<実施例1のマルチスカラー倍算演算装置の効果>
本実施例のマルチスカラー倍算演算装置によれば、全てのkiに対するj桁目が0であるゼロ桁が、Lim-Lee方式と同程度の確率で出現するような変換手法を実現し、Lim-Lee方式と同程度の計算コストで、かつ事前計算テーブルのサイズを半分にすることを実現した。また変形例1で述べたように、入力される点Piがシステムとして固定である場合は、事前計算部12における計算コストがゼロであるため効果が得られる。
Lim-Lee方式における固定点スカラー倍算では、事前計算テーブルのサイズが2m-1となり、計算コストはn(1-1/2m)ECADD+nECDBLとなる。またHPB05方式では、基準としたk'0では全ての桁が必ず非ゼロであることから楕円加算を削減することが出来ないため、計算コストは(n+1)ECADD+(n+1)ECDBLとなる。また事前計算テーブルのサイズは2m-1となる。本実施例では、新たにkiの表現を変換する手法および事前計算テーブルの作成方法を提案した。これにより、事前計算テーブルは2m-1となり、計算コストはn(1-1/2m)ECADD+(n+1)ECDBLとすることが出来た。計算コストの面では、Lim-Lee方式と同程度であり、HPB05方式からn/2m回の楕円加算を削減できた。また事前計算テーブルのサイズの面では、Lim-Lee方式から約半分、HPB05方式と同様となる。つまり本実施例では、Lim-Lee方式とHPB05方式の両方の良い部分を満たす事前計算方式と表現変換方式を実現することが出来た。
<実施例1の要点>
楕円曲線上のマルチスカラー倍算では、楕円加算を削減するために、全てのi=0,...,m-1でki (j)=0となる確率が大きい場合に楕円加算を省略することができる。本実施例のマルチスカラー倍算演算装置によれば、事前計算テーブルをHPB05と同じにしながら、新たな表現方法を用いてゼロ濃度を増加させることが出来たため、結果として、マルチスカラー倍算を小さなテーブルサイズでより高速に計算することができるようになった。
<補記>
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD−ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。
ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成要件)を実現する。
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (5)

  1. 素数p、正整数e、q=pe、有限体
    Figure 0006293681

    、楕円曲線E上のFq-有理点群をE(Fq)としたとき、
    整数m≧2とし、m個の点P0,...,Pm-1および0以上の整数k0,...,km-1に対して、マルチスカラー倍算をΣi=0 m-1kiPiを計算しE(Fq)上の点を出力する関数としたとき、m-1個のビット{0,1}の組(e1,...,em-1)の全ての組合せに対して、点P0i=1 m-1eiPiを計算し、前記
    計算した2m-1個の点を、事前計算テーブルに保存する事前計算部と、
    正整数かつ奇数k0、0以上の整数k1,...,km-1を入力として、k'0,...,k'm-1の各桁が{0,±1}で表現され、全てのk'iに対してj桁目が0、または、k'0のj桁目が{±1}かつk'0以外
    のk'iのj桁目が0またはk'0のj桁目と同値、という条件を満たすk'0,...,k'm-1に表現変換する表現変換部と、
    前記事前計算テーブルと前記表現変換されたk'0,...,k'm-1を用いてマルチスカラー倍
    算Σi=0 m-1kiPiと同値の点を計算するマルチスカラー倍算計算部を含む
    マルチスカラー倍算演算装置。
  2. 素数p、正整数e、q=pe、有限体
    Figure 0006293681

    、楕円曲線E上のFq-有理点群をE(Fq)としたとき、
    整数m≧2とし、m個の点P0,...,Pm-1および0以上の整数k0,...,km-1に対して、マルチスカラー倍算をΣi=0 m-1kiPiを計算しE(Fq)上の点を出力する関数としたとき、m-1個のビット{0,1}の組(e1,...,em-1)の全ての組合せに対して予め計算された2m-1個の点P0i=1 m-1eiPiを、事前計算テーブルとして保存する事前計算結果保存部と、
    正整数かつ奇数k0、0以上の整数k1,...,km-1を入力として、k'0,...,k'm-1の各桁が{0,±1}で表現され、全てのk'iに対してj桁目が0、または、k'0のj桁目が{±1}かつk'0以外
    のk'iのj桁目が0またはk'0のj桁目と同値、という条件を満たすk'0,...,k'm-1に表現変換する表現変換部と、
    前記事前計算テーブルと前記表現変換されたk'0,...,k'm-1を用いてマルチスカラー倍
    算Σi=0 m-1kiPiと同値の点を計算するマルチスカラー倍算計算部を含む
    マルチスカラー倍算演算装置。
  3. マルチスカラー倍算演算装置が実行するマルチスカラー倍算演算方法であって、
    素数p、正整数e、q=pe、有限体
    Figure 0006293681

    、楕円曲線E上のFq-有理点群をE(Fq)としたとき、
    整数m≧2とし、m個の点P0,...,Pm-1および0以上の整数k0,...,km-1に対して、マルチスカラー倍算をΣi=0 m-1kiPiを計算しE(Fq)上の点を出力する関数としたとき、m-1個のビット{0,1}の組(e1,...,em-1)の全ての組合せに対して、点P0i=1 m-1eiPiを計算し、前記計算した2m-1個の点を、事前計算テーブルに保存する事前計算ステップと、
    正整数かつ奇数k0、0以上の整数k1,...,km-1を入力として、k'0,...,k'm-1の各桁が{0,±1}で表現され、全てのk'iに対してj桁目が0、または、k'0のj桁目が{±1}かつk'0以外
    のk'iのj桁目が0またはk'0のj桁目と同値、という条件を満たすk'0,...,k'm-1に表現変換する表現変換ステップと、
    前記事前計算テーブルと前記表現変換されたk'0,...,k'm-1を用いてマルチスカラー倍
    算Σi=0 m-1kiPiと同値の点を計算するマルチスカラー倍算計算ステップを含む
    マルチスカラー倍算演算方法。
  4. マルチスカラー倍算演算装置が実行するマルチスカラー倍算演算方法であって、
    素数p、正整数e、q=pe、有限体
    Figure 0006293681

    、楕円曲線E上のFq-有理点群をE(Fq)としたとき、
    整数m≧2とし、m個の点P0,...,Pm-1および0以上の整数k0,...,km-1に対して、マルチスカラー倍算をΣi=0 m-1kiPiを計算しE(Fq)上の点を出力する関数としたとき、m-1個のビット{0,1}の組(e1,...,em-1)の全ての組合せに対して予め計算された2m-1個の点P0i=1 m-1eiPiを、事前計算テーブルとして保存する事前計算結果保存ステップと、
    正整数かつ奇数k0、0以上の整数k1,...,km-1を入力として、k'0,...,k'm-1の各桁が{0,±1}で表現され、全てのk'iに対してj桁目が0、または、k'0のj桁目が{±1}かつk'0以外
    のk'iのj桁目が0またはk'0のj桁目と同値、という条件を満たすk'0,...,k'm-1に表現変換する表現変換ステップと、
    前記事前計算テーブルと前記表現変換されたk'0,...,k'm-1を用いてマルチスカラー倍
    算Σi=0 m-1kiPiと同値の点を計算するマルチスカラー倍算計算ステップを含む
    マルチスカラー倍算演算方法。
  5. コンピュータを、請求項1または2に記載のマルチスカラー倍算演算装置として機能させるためのプログラム。
JP2015007719A 2015-01-19 2015-01-19 マルチスカラー倍算演算装置、マルチスカラー倍算演算方法、プログラム Active JP6293681B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015007719A JP6293681B2 (ja) 2015-01-19 2015-01-19 マルチスカラー倍算演算装置、マルチスカラー倍算演算方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015007719A JP6293681B2 (ja) 2015-01-19 2015-01-19 マルチスカラー倍算演算装置、マルチスカラー倍算演算方法、プログラム

Publications (2)

Publication Number Publication Date
JP2016133601A JP2016133601A (ja) 2016-07-25
JP6293681B2 true JP6293681B2 (ja) 2018-03-14

Family

ID=56426129

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015007719A Active JP6293681B2 (ja) 2015-01-19 2015-01-19 マルチスカラー倍算演算装置、マルチスカラー倍算演算方法、プログラム

Country Status (1)

Country Link
JP (1) JP6293681B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999627A (en) * 1995-01-07 1999-12-07 Samsung Electronics Co., Ltd. Method for exponentiation in a public-key cryptosystem
JP2006309201A (ja) * 2005-03-29 2006-11-09 Hitachi Ltd 楕円曲線暗号における多重スカラー倍計算装置、署名検証装置、及び、それらのプログラム。
US7602907B2 (en) * 2005-07-01 2009-10-13 Microsoft Corporation Elliptic curve point multiplication

Also Published As

Publication number Publication date
JP2016133601A (ja) 2016-07-25

Similar Documents

Publication Publication Date Title
US8111826B2 (en) Apparatus for generating elliptic curve cryptographic parameter, apparatus for processing elliptic curve cryptograph, program for generating elliptic curve cryptographic parameter, and program for processing elliptic cyptograph
Fan et al. Attacking OpenSSL implementation of ECDSA with a few signatures
Xiong et al. Tinypairing: A fast and lightweight pairing-based cryptographic library for wireless sensor networks
JP4842276B2 (ja) 楕円曲線上の新しいトラップドア1方向性関数と、その、より短い署名及び非対称暗号化への応用
US8504602B2 (en) Modular multiplication processing apparatus
JP2023063430A (ja) 暗号システム、鍵生成装置、暗号化装置、復号装置、方法及びプログラム
JP4690819B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
Mounica et al. Implementation of 5-Qubit approach-based Shor's Algorithm in IBM Qiskit
US8014520B2 (en) Exponentiation ladder for cryptography
JP2007187908A (ja) サイドチャネル攻撃に耐性を有するモジュラーべき乗算計算装置及びモジュラーべき乗算計算方法
JP4423900B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム
CN108418687B (zh) 一种适合sm2算法的快速模约减方法和介质
JP4616169B2 (ja) モンゴメリ乗算剰余における変換パラメータの計算装置、方法およびそのプログラム
JP6293681B2 (ja) マルチスカラー倍算演算装置、マルチスカラー倍算演算方法、プログラム
KR101548174B1 (ko) 모듈러스의 음의 역원을 구하는 방법
Anagreh et al. Parallel method for computing elliptic curve scalar multiplication based on MOF.
Realpe-Muñoz et al. High-performance elliptic curve cryptoprocessors over GF (2^ m) GF (2 m) on Koblitz curves
JP4692022B2 (ja) 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム
Razali et al. Improved point 5P formula for twisted edwards curve in projective coordinate over prime field
WO2023228408A1 (ja) パラメータ生成システム、パラメータ生成方法、及びパラメータ生成プログラム
KR102507861B1 (ko) 부채널 공격에 안전한 연산 장치 및 방법
Kwon et al. An efficient implementation of pairing-based cryptography on MSP430 processor
JP6777569B2 (ja) ペアリング演算装置、ペアリング演算方法、およびプログラム
KR20090090881A (ko) 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그장치 및 이를 기록한 기록매체
Kultinov Software Implementations and Applications of Elliptic Curve Cryptography

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180119

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180214

R150 Certificate of patent or registration of utility model

Ref document number: 6293681

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150