説明

スカラー倍演算装置、スカラー倍演算方法、スカラー倍演算プログラム、記録媒体

【課題】符号付き二進法に適用できる同時スカラー倍演算法を実現する。
【解決手段】本発明のスカラー倍演算装置は、中間値計算部、元計算部、スカラー倍値計算部を備える。中間値計算部は、中間値ed(1),…,d(M)(n)をすべてのd(1),…,d(M)の組合せについて求める。元計算部は、中間値計算部で求めたd(1),…,d(M)の組合せのすべてについて、Ed(1),…,d(M)Gを求める。スカラー倍値計算部は、d(m)の値が1であるすべてのEd(1),…,d(M)Gの和から、d(m)の値が−1であるすべてのEd(1),…,d(M)Gの和を減算した値をスカラー倍値EGとする処理を、m=1からMに対して行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを暗号化する装置や認証する装置にかかわり、特に情報セキュリティを効率よく実現するためのスカラー倍演算装置、スカラー倍演算方法、スカラー倍演算プログラム、記録媒体に関する。
【背景技術】
【0002】
楕円曲線暗号や署名の演算コストにおいて、群の元Gをスカラー倍する演算は大きな割合を占める。本明細書では、複数のスカラー倍を同時に行う場合に効率良く演算する方法について述べる。乗法群のべき乗でも同じ議論を適用できるが、本明細書では記述をスカラー倍に統一する。群の元Gに対して入力されたM個の整数E,…,EについてEG,…,EGを求める演算を同時スカラー倍という。同時スカラー倍を効率良く実行するためには、2種類の戦略が考えられる。一つは、事前にGに関する事前演算を行いストレージに保存しておく方法がある。十分な量のストレージがある場合にはこの方法の効果が高い。もう一つは、事前の計算を必要としない方法である。本明細書では後者の方式について検討を行う。
【0003】
事前演算なしでスカラー倍を行う方式としては、スカラー値を二進展開して2倍演算と加算を行う方法(二進演算法)や、非特許文献1のNAF法や、非特許文献2のBooth法がある。これに対して複数のスカラー倍を同時に行うことで効率を向上した方式(非特許文献3,4,5など)が提案されてきた。
図1は、二進演算法の処理フローを示す図である。この処理フローでは、Mを2以上の整数、mを1以上M以下の整数、Nを正の整数、nを0以上N以下の整数、Gを群の元、E,…,E
【0004】
【数1】

【0005】
のように表現されるスカラーとし、元Gをスカラー倍した値EG,…,EGを求める。二進演算法では、Eがランダムな値の場合、二進演算法のコストは2倍演算がMN回、加算演算が(1/2)MN回である。
【0006】
また、楕円曲線上の点など、−1倍を行うのが容易な群でスカラー倍演算を行う場合、符号つき二進法(NAF法:非特許文献1)が用いられることが多い。二進演算法は、2倍演算N回と加算演算N/2回で1つのスカラー倍演算を行うのに対し、符号つき二進法では、2倍演算N回と加算演算N/3回で1つのスカラー倍演算が行える。したがって、M個のスカラー倍演算では、2倍演算がMN回、加算演算がMN/3回である。
【0007】
次に、非特許文献3の鶴岡法について説明する。最初に、入力されるスカラー値の数が2つの場合について説明する。Nを正の整数、nを0以上N以下の整数、E,E
【0008】
【数2】

【0009】
と表現されるスカラー、Gを群の元とする。そして、
1,1=E∧E
1,0=E−E1,1
0,1=E−E1,1
のように中間値H1,1、H1,0、H0,1を求める。ただし、E∧Eは、二進表現のEとEを各桁のビットごとに論理積を行うことをあらわす。E、Eのnビット目は、上記のようにh(n)、h(n)のように表現できる。H1,1、H1,0、H0,1のnビット目をh1,1(n)、h1,0(n)、h0,1(n)と表現すると、h(n)、h(n)とh1,1(n)、h1,0(n)、h0,1(n)の関係は、図2のようになる。
【0010】
とEが無相関であれば、H1,1、H1,0、H0,1のハミング重みは平均N/4であり、H1,1G、H1,0G、H0,1Gを、二進演算法を用いて同時に求める計算量は2倍演算がN回、加算が平均(3/4)N回となる。これらを用いてEG、EGを以下のように求める。
G=H1,0G+H1,1
G=H0,1G+H1,1
この方法でEG、EGを求めれば(M=2の場合)、加算回数は(3/4)N+2回となり、二進演算法の加算回数N回よりも少ない。したがって、鶴岡法の方が二進演算法よりも高速である。
【0011】
図3に、鶴岡法でM個の同時スカラー倍を行なう場合の処理フローを示す。アルゴリズム中では記述の簡略化のため、中間値Hd(1),…,d(M)をB、中間値Hd(1),…,d(M)のnビット目hd(1),…,d(M)(n)をb(n)(ただし、1≦k≦2−1)と表しており、
【0012】
【数3】

【0013】
の関係がある。例えば、M=2の場合は、b(n)=h1,0(n)、b(n)=h0,1(n)、b(n)=h1,1(n)である。なお、n=1〜Nのb(n)を求めることはBを求めることなので、b(n)も中間値と呼ぶこととする。
【0014】
鶴岡法の場合、2倍演算がMN回、加算演算が(1−(1/2))N+α回である。なお、図3の方法をそのまま行うとα=m・2M−1であるが、非特許文献5の方法を用いることで、α=2M+1−2M−2回にできる。
【先行技術文献】
【非特許文献】
【0015】
【非特許文献1】A. J. Menezes, P. C. van Oorschot and S. A. Vanstone, Handbook of Applied Cryptography. CRC Pres, 1996.
【非特許文献2】Andrew D. Booth, ”A Signed Binary Multiplication Technique”, The Quarterly Journal of Mechanics and Applied Mathematics 1951 4(2),p.236-240, 1951.
【非特許文献3】鶴岡行雄, ”高速な多垂べき乗計算アルゴリズム”, Extended Abstract for JW-ISC’93, 電子情報通信学会技術研究報告. ISEC, 情報セキュリティ93(295), pp.103-111, 1993.
【非特許文献4】David M'Ra:ichi and David Naccache, ”Batch Exponentiation: A Fast DLP-based Signature Generation Strategy”, CCS ’96, Proceedings of the 3rd ACM Conference on Computer and Communications Security, March 14-16 1996, New Delhi, India, ACM, 1996.
【非特許文献5】Byungchun Chung, Junbeom Hur, Heeyoul Kim, Seong-Min Hong and Hyunsoo Yoon, ”Improved batch exponentiation”, Information Processing Letters 109 (2009) 832-837.
【発明の概要】
【発明が解決しようとする課題】
【0016】
非特許文献3,4,5の方式も二進法に基づくもので、M=2の場合にはNAF法(非特許文献1)よりも効率が悪いという欠点があった。本発明の目的は、非特許文献3の鶴岡法の概念を拡張し、符号付き二進法に適用できる同時スカラー倍演算法を実現することである。
【課題を解決するための手段】
【0017】
本発明のスカラー倍演算装置は、Mを2以上の整数、mを1以上M以下の整数、Nを正の整数、nを0以上N以下の整数、E,…,E
【0018】
【数4】

【0019】
と表現されるスカラー、Gを群の元とし、元Gに対してスカラーE,…,Eをそれぞれ乗算した値であるスカラー倍値EG,…,EGを求める。本発明のスカラー倍演算装置は、中間値計算部、元計算部、スカラー倍値計算部を備える。中間値計算部は、d(m)∈{0,1,−1}として、
すべてのmについてd(m)=e(n)のときは
d(1),…,d(M)(n)=1
すべてのmについてd(m)=−e(n)のときは
d(1),…,d(M)(n)=−1
その他のときは
d(1),…,d(M)(n)=0
である中間値ed(1),…,d(M)(n)を、d(1)=0,…,d(M)=0以外のすべてのd(1),…,d(M)の組合せ(ただし、d’(1)=(−1)×d(1),…,d’(M)=(−1)×d(M)が成り立つed(1),…,d(M)(n)とed’(1),…,d’(M)(n)はいずれか一方のみ)について求める。d(1)=0,…,d(M)=0の場合を求める必要がないのは、以降の計算で利用しないからである。また、ただし書きの理由は、d’(1)=(−1)×d(1),…,d’(M)=(−1)×d(M)が成り立つときは、ed(1),…,d(M)(n)=(−1)×ed’(1),…,d’(M)(n)の関係が成り立つため、両方を求める必要がないからである。元計算部は、中間値計算部で求めたd(1),…,d(M)の組合せのすべてについて、
【0020】
【数5】

【0021】
を求める。スカラー倍値計算部は、d(m)の値が1であるすべてのEd(1),…,d(M)Gの和から、d(m)の値が−1であるすべてのEd(1),…,d(M)Gの和を減算した値をスカラー倍値EGとする処理を、m=1からMに対して行う。
【発明の効果】
【0022】
本発明のスカラー倍演算装置によれば、符号付き二進法に同時スカラー倍演算の考え方を適用できるので、群の元に複数のスカラー値をそれぞれ乗算するような場合に、従来技術に比べ演算量を少なくできる。
【図面の簡単な説明】
【0023】
【図1】二進演算法の処理フローを示す図。
【図2】鶴岡法でのnビット目の変換を示す図。
【図3】鶴岡法でM個の同時スカラー倍を行なう場合の処理フローを示す図。
【図4】本発明のスカラー倍演算装置の機能構成例を示す図。
【図5】本発明のスカラー倍演算装置の処理フローを示す図。
【図6】M=2の場合のスカラーE、Eのnビット目e(n)、e(n)と、求めなければならない中間値ed(1),d(2)(n)の関係を示す図。
【図7】M=2の場合のスカラーE、Eのnビット目e(n)、e(n)と、中間値ed(1),d(2)(n)の関係を示す図。
【図8】M=3の場合のスカラーE、E、Eのnビット目e(n)、e(n)、e(n)と、求めなければならない中間値ed(1),d(2),d(3)(n)の関係を示す図。
【図9】M=3の場合のスカラーE、E、Eのnビット目e(n)、e(n)、e(n)と、中間値ed(1),d(2),d(3)(n)の関係を示す1つ目の図。
【図10】M=3の場合のスカラーE、E、Eのnビット目e(n)、e(n)、e(n)と、中間値ed(1),d(2),d(3)(n)の関係を示す2つ目の図。
【図11】本発明のスカラー倍演算装置の詳細な処理フローの例を示す図。
【図12】NAF法によって二進法表現のスカラーEを符号つき二進法表現のスカラーEに変換するフローを示す図。
【図13】二進法表現された0〜8とNAF法によって符号つき二進法表現に変換された0〜8を示す図。
【図14】Booth法によって二進法表現のスカラーEを符号つき二進法表現のスカラーEに変換するフローを示す図。
【図15】二進法表現された2n−2桁〜2n桁と、Booth法によって符号つき二進法表現に変換された2n−1桁、2n桁との関係を示す図。
【図16】M個のN桁のスカラーを群の元に乗算する場合の各方式の演算量を比較するための図。
【発明を実施するための形態】
【0024】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【実施例1】
【0025】
装置構成、処理フロー
図4に本発明のスカラー倍演算装置の機能構成例を、図5に本発明のスカラー倍演算装置の処理フローを示す。本発明のスカラー倍演算装置100は、Mを2以上の整数、mを1以上M以下の整数、Nを正の整数、nを0以上N以下の整数、E,…,E
【0026】
【数6】

【0027】
と表現されるスカラー、Gを群の元とし、元Gに対してスカラーE,…,Eをそれぞれ乗算した値であるスカラー倍値EG,…,EGを求める。スカラー倍演算装置100は、中間値計算部120、元計算部130、スカラー倍値計算部140、記録部190を備える。中間値計算部120は、d(m)∈{0,1,−1}として、
すべてのmについてd(m)=e(n)のときは
d(1),…,d(M)(n)=1
すべてのmについてd(m)=−e(n)のときは
d(1),…,d(M)(n)=−1
その他のときは
d(1),…,d(M)(n)=0
である中間値ed(1),…,d(M)(n)を、d(1)=0,…,d(M)=0以外のすべてのd(1),…,d(M)の組合せ(ただし、d’(1)=(−1)×d(1),…,d’(M)=(−1)×d(M)が成り立つed(1),…,d(M)(n)とed’(1),…,d’(M)(n)はいずれか一方のみ)について求める(S120)。d(1)=0,…,d(M)=0の場合を求める必要がないのは、以降の計算で利用しないからである。また、ただし書きの理由は、d’(1)=(−1)×d(1),…,d’(M)=(−1)×d(M)が成り立つときは、ed(1),…,d(M)(n)=(−1)×ed’(1),…,d’(M)(n)の関係が成り立つため、両方を求める必要がないからである。したがって、中間値の数は(3−1)/2個となる。また、d’(1)=(−1)×d(1),…,d’(M)=(−1)×d(M)が成り立つ組合せのうちどちらを求めてもかまわない。
【0028】
元計算部130は、中間値計算部120で求めたd(1),…,d(M)の組合せのすべてについて、
【0029】
【数7】

【0030】
を求める(S130)。スカラー倍値計算部140は、d(m)の値が1であるすべてのEd(1),…,d(M)Gの和から、d(m)の値が−1であるすべてのEd(1),…,d(M)Gの和を減算した値をスカラー倍値EGとする処理を、m=1からMに対して行う(S140)。式で表現すると、
【0031】
【数8】

【0032】
のようになる。記録部190は、元G、スカラーE、中間値ed(1),…,d(M)(n)、Ed(1),…,d(M)G、スカラー倍値EGなどを記録する。
また、スカラー倍演算装置100は、スカラー倍演算装置100に入力されるスカラーが二進法表現の場合には表現変換部110を備えればよい。表現変換部110は、
【0033】
【数9】

【0034】
のように表現されるスカラーE,…,E(二進法表現のスカラー)を、
【0035】
【数10】

【0036】
のように表現されるスカラーE,…,E(符号つき二進法表現のスカラー)に変換する(S110)。具体的な変換方法としては、NAF法やBooth法などがある。
原理の説明
まず、M=2の場合について説明する。図6にM=2の場合のスカラーE、Eのnビット目e(n)、e(n)と、求めなければならない中間値ed(1),d(2)(n)の関係を示す。また、図7にM=2の場合のスカラーE、Eのnビット目e(n)、e(n)と、中間値ed(1),d(2)(n)の関係を示す。
【0037】
スカラーE、Eのnビット目e(n)、e(n)の値が0の場合、どんな乗算を行っても結果は0である。したがって、e(n)、e(n)の値が0以外の場合について考慮すればスカラー倍演算を実行できる。二進法の場合であれば0以外の値は1のみである。したがって、鶴岡法ではh1,0(n)、h0,1(n)、h1,1(n)について考慮すればよかった。一方、本発明が採用した符号つき二進法の場合、0以外の値には1と−1がある。そこで、図6に示すように、e(n)、e(n)の値が1または−1の場合について中間値を求める。中間値として考えられる組合せは、e1,1(n)、e1,0(n)、e1,−1(n)、e0,1(n)、e0,0(n)、e0,−1(n)、e−1,1(n)、e−1,0(n)、e−1,−1(n)である。しかし、e0,0(n)はe(n)=0、e(n)=0なので乗算で考慮する必要がない。また、e1,1(n)=−e−1,−1(n)、e1,0(n)=e−1,0(n)、e1,−1(n)=e−1,1(n)、e0,1(n)=e0,−1(n)の関係が成り立つので、一方を求めれば他方を求める必要はない。したがって、図6にしめした4つの中間値を求めれば十分である。なお、図6では、e1,1(n)、e1,0(n)、e1,−1(n)、e0,1(n)の4つを選択しているが、d’(1)=(−1)×d(1)かつd’(2)=(−1)×d(2)が成り立つ他方を選択してもよい。
【0038】
(n)、e(n)と中間値ed(1),d(2)(n)との関係は図7に示したとおり、
d(1)=e(n)かつd(2)=e(n)のときは
d(1),d(2)(n)=1
d(1)=−e(n)かつd(2)=−e(n)のときは
d(1),d(2)(n)=−1
その他のときは
d(1),d(2)(n)=0
である。
【0039】
図7から分かるように、e(n)とe(n)の列では2/3が0以外である。一方、e1,1(n)、e1,0(n)、e1,−1(n)、e0,1(n)の列では、それぞれ2つのみ(2/9のみ)が0以外である。したがって、実際に乗算を行わなければならない部分が少なくなる。これらのことから、M=2の場合には、NAF法の加算回数は平均2/3N回なのに対し、NAF法に本発明を適用した場合は加算回数は平均(5/9)N+4回であり、(1/9)N−4回の加算を削減ができる。
【0040】
図8にM=3の場合のスカラーE、E、Eのnビット目e(n)、e(n)、e(n)と、求めなければならない中間値ed(1),d(2),d(3)(n)の関係を示す。上述のように、求めなければならない中間値ed(1),d(2),d(3)(n)の数は(3−1)/2個なので、M=3の場合には13個である。図9、10にM=3の場合のスカラーE、E、Eのnビット目e(n)、e(n)、e(n)と、中間値ed(1),d(2),d(3)(n)の関係を示す。この例でも、e(n)、e(n)、e(n)の列では2/3が0以外である。一方、中間値ed(1),d(2),d(3)(n)の列では、それぞれ2つのみ(2/27のみ)が0以外である。したがって、計算回数を削減できる。同様にM>3の場合にも中間値ed(1),…,d(M)(n)を利用することで、計算回数を削減できる。
【0041】
詳細な処理フロー(アルゴリズムの具体例)
本発明のスカラー倍演算装置の詳細な処理フローの例を図11に示す。図11のStep1、Step2は前処理であり、各変数を初期値に設定している。Step3は図5のS120に、Step4はS130に、Step5はS140に相当する。Step6は結果を出力する処理である。
【0042】
Step3、Step4、Step5では、記述の簡略化のため、中間値Ed(1),…,d(M)をB、中間値Ed(1),…,d(M)のnビット目ed(1),…,d(M)(n)をb(n)(ただし、1≦k≦2−1)と表しており、
【0043】
【数11】

【0044】
の関係がある。例えば、M=2の場合は、b(n)=e1,0(n)、b−1(n)=e−1,0(n)、b(n)=e0,1(n)、b−3(n)=e0,−1(n)、b(n)=h1,1(n)、b−2(n)=h1,−1(n)、b(n)=h−1,1(n)、b−4(n)=h−1,−1(n)である。なお、n=1〜Nのb(n)を求めることはBを求めることなので、b(n)も中間値と呼ぶ。このようにkとd(1),…,d(M)の関係を決めているので、kを1から(3−1)/2まで変化させれば、d(1)=0,…,d(M)=0以外のすべてのd(1),…,d(M)の組合せ(ただし、d’(1)=(−1)×d(1),…,d’(M)=(−1)×d(M)が成り立つed(1),…,d(M)(n)とed’(1),…,d’(M)(n)はいずれか一方のみ)について演算したことになる。
【0045】
図12はNAF法によって二進法表現のスカラーEを符号つき二進法表現のスカラーEに変換するフローを、図13は二進法表現された0〜8とNAF法によって符号つき二進法表現に変換された0〜8を示す。また、図14はBooth法によって二進法表現のスカラーEを符号つき二進法表現のスカラーEに変換するフローを、図15は二進法表現された2n−2桁〜2n桁と、Booth法によって符号つき二進法表現に変換された2n−1桁、2n桁との関係を示す。NAF法は、符号付き二進法表現のスカラーの各桁の0の確率を2/3、1または−1の確率を1/3にする方法である。また、Booth法は、符号付き二進法表現のスカラーの各桁の0の確率を5/8、1または−1の確率を3/8(奇数桁は0の確率が1/2、偶数桁は0の確率が3/4)にする方法である。本発明はNAF法やBooth法以外にも任意の符号つき二進法と組み合わせることができる。
【0046】
演算量の比較
図16は、M個のN桁のスカラーを群の元に乗算する場合の各方式の演算量を比較するための図である。どの方式も2倍演算はMN回なので、図16では加算回数のみを比較している。ただし、α=2M+1−2M−2、β=3−2M−1である。なお、符号付き二進法によって1つのスカラー倍を計算する場合にはNAF法のほうがBooth法よりも効率が良いが、同時スカラー倍の場合は逆転する場合がある。具体的には、M≧5の場合にはBooth法の方がNAF法よりも効率がよい。この例と同じように、単独での効率にかかわらず本発明と組み合わせることで効率がよくなる場合もあるので、適宜符号つき二進法を選定すればよい。
【0047】
例えば、M=2の場合、本発明+NAF法は、従来のNAF法(NAF法単独)に比べ11%の高速化が図れる。このように、本発明は、非特許文献3の鶴岡法の概念を拡張し、符号付き二進法に適用できる同時スカラー倍演算法を実現している。そして、M=2の場合も含め、演算回数を削減できている。
【0048】
プログラム、記録媒体
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0049】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0050】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0051】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【産業上の利用可能性】
【0052】
本発明は、群の元に対して複数のスカラー倍を同時に行うようなデータを暗号化する装置や認証する装置に利用できる。
【符号の説明】
【0053】
100 スカラー倍演算装置
110 表現変換部
120 中間値計算部
130 元計算部
140 スカラー倍値計算部
190 記録部

【特許請求の範囲】
【請求項1】
Mを2以上の整数、mを1以上M以下の整数、Nを正の整数、nを0以上N以下の整数、E,…,E
【数12】


と表現されるスカラー、Gを群の元とし、元Gに対してスカラーE,…,Eをそれぞれ乗算した値であるスカラー倍値EG,…,EGを求めるスカラー倍演算装置であって、
d(m)∈{0,1,−1}として、
すべてのmについてd(m)=e(n)のときは
d(1),…,d(M)(n)=1
すべてのmについてd(m)=−e(n)のときは
d(1),…,d(M)(n)=−1
その他のときは
d(1),…,d(M)(n)=0
である中間値ed(1),…,d(M)(n)を、
d(1)=0,…,d(M)=0以外のすべてのd(1),…,d(M)の組合せ(ただし、d’(1)=(−1)×d(1),…,d’(M)=(−1)×d(M)が成り立つed(1),…,d(M)(n)とed’(1),…,d’(M)(n)はいずれか一方のみ)について求める中間値計算部と、
前記中間値計算部で求めたd(1),…,d(M)の組合せのすべてについて、
【数13】


を求める元計算部と、
d(m)の値が1であるすべてのEd(1),…,d(M)Gの和から、d(m)の値が−1であるすべてのEd(1),…,d(M)Gの和を減算した値をスカラー倍値EGとする処理を、m=1からMに対して行うスカラー倍値計算部と、
を備えるスカラー倍演算装置。
【請求項2】
Nを正の整数、nを0以上N以下の整数、E,E
【数14】


と表現されるスカラー、Gを群の元とし、元Gに対してスカラーE,Eをそれぞれ乗算した値であるスカラー倍値EG,EGを求めるスカラー倍演算装置であって、
d(1)∈{0,1,−1}、d(2)∈{0,1,−1}として、
d(1)=e(n)かつd(2)=e(n)のときは
d(1),d(2)(n)=1
d(1)=−e(n)かつd(2)=−e(n)のときは
d(1),d(2)(n)=−1
その他のときは
d(1),d(2)(n)=0
である中間値ed(1),d(2)(n)を、
d(1)=0,d(2)=0以外のすべてのd(1),d(2)の組合せ(ただし、d’(1)=(−1)×d(1)かつd’(2)=(−1)×d(2)が成り立つed(1),…,d(M)(n)とed’(1),…,d’(M)(n)はいずれか一方のみ)について求める中間値計算部と、
前記中間値計算部で求めたd(1),d(2)の組合せのすべてについて、
【数15】


を求める元計算部と、
d(m)の値が1であるすべてのEd(1),d(2)Gの和から、d(m)の値が−1であるすべてのEd(1),d(2)Gの和を減算した値をスカラー倍値EGとする処理を、m=1からMに対して行うスカラー倍値計算部と、
を備えるスカラー倍演算装置。
【請求項3】
請求項1記載のスカラー倍演算装置であって、
【数16】


のように表現されるスカラーE,…,Eを、NAF法を用いて
【数17】


のように表現されるスカラーE,…,Eに変換する表現変換部
も備えることを特徴とするスカラー倍演算装置。
【請求項4】
請求項1記載のスカラー倍演算装置であって、
【数18】


のように表現されるスカラーE,…,Eを、Booth法を用いて
【数19】


のように表現されるスカラーE,…,Eに変換する表現変換部
も備えることを特徴とするスカラー倍演算装置。
【請求項5】
Mを2以上の整数、mを1以上M以下の整数、Nを正の整数、nを0以上N以下の整数、E,…,E
【数20】


と表現されるスカラー、Gを群の元とし、元Gに対してスカラーE,…,Eをそれぞれ乗算した値であるスカラー倍値EG,…,EGを求めるスカラー倍演算方法であって、
中間値計算部が、d(m)∈{0,1,−1}として、
すべてのmについてd(m)=e(n)のときは
d(1),…,d(M)(n)=1
すべてのmについてd(m)=−e(n)のときは
d(1),…,d(M)(n)=−1
その他のときは
d(1),…,d(M)(n)=0
である中間値ed(1),…,d(M)(n)を、
d(1)=0,…,d(M)=0以外のすべてのd(1),…,d(M)の組合せ(ただし、d’(1)=(−1)×d(1),…,d’(M)=(−1)×d(M)が成り立つed(1),…,d(M)(n)とed’(1),…,d’(M)(n)はいずれか一方のみ)について求める中間値計算ステップと、
元計算部が、前記中間値計算ステップで求めたd(1),…,d(M)の組合せのすべてについて、
【数21】


を求める元計算ステップと、
スカラー倍値計算部が、d(m)の値が1であるすべてのEd(1),…,d(M)Gの和から、d(m)の値が−1であるすべてのEd(1),…,d(M)Gの和を減算した値をスカラー倍値EGとする処理を、m=1からMに対して行うスカラー倍値計算ステップと、
を有するスカラー倍演算方法。
【請求項6】
Nを正の整数、nを0以上N以下の整数、E,E
【数22】


と表現されるスカラー、Gを群の元とし、元Gに対してスカラーE,Eをそれぞれ乗算した値であるスカラー倍値EG,EGを求めるスカラー倍演算方法であって、
中間値計算部が、d(1)∈{0,1,−1}、d(2)∈{0,1,−1}として、
d(1)=e(n)かつd(2)=e(n)のときは
d(1),d(2)(n)=1
d(1)=−e(n)かつd(2)=−e(n)のときは
d(1),d(2)(n)=−1
その他のときは
d(1),d(2)(n)=0
である中間値ed(1),d(2)(n)を、
d(1)=0,d(2)=0以外のすべてのd(1),d(2)の組合せ(ただし、d’(1)=(−1)×d(1)かつd’(2)=(−1)×d(2)が成り立つed(1),…,d(M)(n)とed’(1),…,d’(M)(n)はいずれか一方のみ)について求める中間値計算ステップと、
元計算部が、前記中間値計算ステップで求めたd(1),d(2)の組合せのすべてについて、
【数23】


を求める元計算部と、
スカラー倍値計算部が、d(m)の値が1であるすべてのEd(1),d(2)Gの和から、d(m)の値が−1であるすべてのEd(1),d(2)Gの和を減算した値をスカラー倍値EGとする処理を、m=1からMに対して行うスカラー倍値計算ステップと、
を有するスカラー倍演算方法。
【請求項7】
請求項5記載のスカラー倍演算方法であって、
表現変換部が、
【数24】


のように表現されるスカラーE,…,Eを、NAF法を用いて
【数25】


のように表現されるスカラーE,…,Eに変換する表現変換ステップ
も有することを特徴とするスカラー倍演算方法。
【請求項8】
請求項5記載のスカラー倍演算方法であって、
表現変換部が、
【数26】


のように表現されるスカラーE,…,Eを、Booth法を用いて
【数27】


のように表現されるスカラーE,…,Eに変換する表現変換ステップ
も有することを特徴とするスカラー倍演算方法。
【請求項9】
請求項1から4のいずれかに記載のスカラー倍演算装置としてコンピュータを動作させるためのスカラー倍演算プログラム。
【請求項10】
請求項9記載のスカラー倍演算プログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate