JP2009258437A - べき乗計算装置及びプログラム - Google Patents

べき乗計算装置及びプログラム Download PDF

Info

Publication number
JP2009258437A
JP2009258437A JP2008108150A JP2008108150A JP2009258437A JP 2009258437 A JP2009258437 A JP 2009258437A JP 2008108150 A JP2008108150 A JP 2008108150A JP 2008108150 A JP2008108150 A JP 2008108150A JP 2009258437 A JP2009258437 A JP 2009258437A
Authority
JP
Japan
Prior art keywords
calculation
result
calculation result
storage means
sending
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
JP2008108150A
Other languages
English (en)
Other versions
JP4724200B2 (ja
Inventor
Yoshihiro Fujii
吉弘 藤井
Akito Niwa
朗人 丹羽
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2008108150A priority Critical patent/JP4724200B2/ja
Publication of JP2009258437A publication Critical patent/JP2009258437A/ja
Application granted granted Critical
Publication of JP4724200B2 publication Critical patent/JP4724200B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 各多項式により有限体を拡大してなる合成数次拡大体上でべき乗計算を行う際に、最初に拡大に用いた多項式による剰余演算を高速に実行する。
【解決手段】 素体GF(p)をm次多項式F(x)及びl次多項式G(x)により順次拡大して構成された有限体である合成数次拡大体GF(pml)に関し、m次多項式F(x)のゼロ以外の項よりもゼロ以外の項が少ない多項式F’(x)に基づく、Q=Q2 mod F’(x)G(x)及びQ=P×Q mod F’(x)G(x)の計算を実行し、最後に、Q=Q mod F(x)G(x)の計算を実行する。このように、本来のF(x)よりも少ない項の多項式F’(x)に基づき、途中の剰余演算を高速に実行し、最後に、本来のF(x)に基づき、剰余演算を実行する構成により、上記課題を解決できる。
【選択図】 図5

Description

本発明は、合成数次拡大体におけるべき乗演算を高速に実行し得る べき乗計算装置及びプログラムに関する。
近年、インターネットなどのオープンなネットワークを介し、文書データや画像データなどのさまざまなデータを送受信したい要望がある。これら送受信したいデータには秘密にしたいデータが多く含まれている。そのため、第三者には分からないようにデータを暗号化した状態で送受信するための暗号化技術が普及している。
この主の暗号化技術の一つとして、有限体上の演算を用いる方法がある。暗号化技術は、一般に暗号や署名を有限体GF(pm)上で定義される演算を用いて実現する。このとき、位数pmには素数または素数のべき乗が選択されるが、本明細書では素数pのべき乗の場合、特に合成数lm次のべき乗について考える。このような有限体GF(plm)を本明細書では合成数次拡大体と呼ぶこととする。
このような合成数次拡大体における演算の高速化手法は幾つか提案されている。例えばペアリングと呼ばれる計算を行う場合、合成数次拡大体にて演算を行う。また、ペアリングの高速化手法において、特に言及されないものの、合成数次拡大体を高速化している手法も知られている(例えば、非特許文献1,2を参照。)。
また、一般的な合成数次拡大体について、2次の多項式を用いて逐次拡大して演算を高速化する手法が提案されている(例えば、特許文献1を参照。)。
ここで、これら高速化手法について考察する。
合成数次拡大体としては、素体GF(p)を、m次多項式F(x)を用いて拡大して有限体GF(pm)を構成し、この有限体GF(pm)を、l次多項式G(x)を用いて更に拡大して有限体GF(pml)を構成している場合を前提とする。
このとき、非特許文献1,2及び特許文献1に記載の高速化手法は、いずれもG(x)の演算を高速化する方式である。例えば、非特許文献2記載のアルゴリズム3(Algorithm3)において、今日一般的に求められるセキュリティを満たすためには、m=163を選択する場合が想定される。また、m=163の場合、G(x)の次数lが4となる。なお、このように、F(x)の次数mはG(x)の次数lよりも大きい場合が多い。非特許文献2では、このような次数の下でG(x)の演算の高速化が検討されている。
しかしながら、合成数次拡大体の高速化手法としては、このように小さい次数lをもつG(x)の演算の高速化に加え、大きい次数mをもつF(x)の演算を高速化することが必要である。
本明細書では説明を簡単にするため、べき乗演算、特にバイナリ(Binary)法と呼ばれる一般的なべき乗演算を用いて効果を考察する。有限体はGF(q)とし、q=plmとする。ここで、pは素数、l及びmは整数であり、mは多項式F(x)の次数、lは多項式G(x)の次数であるとする。合成数次拡大体の演算においては、GF(p)の演算及びF(x)を用いてGF(pm)上の演算を定義し、更にGF(pm)上の演算及びG(x)を用いてGF(plm)上の演算を定義しているとする。
このとき、従来のバイナリ法は、図6の左欄に示すように実行される。
始めに、べき乗演算Pkを行うため、合成数次拡大体上の値P(∈GF(q)=GF(plm))と、べき指数k(=(kt-1,kt-2,…,ki,…,k1,k02)とが入力される。なお、べき指数kを表す式k=(kt-1,kt-2,…,ki,…,k1,k02は、べき指数kの2進数表記を意味している。ここで、kiは、べき指数kのi桁目の値を表す。iは、べき指数kの桁を表し、t−1から0までの整数が用いられる。
続いて、途中の計算結果Qにべき乗対象のデータPを代入する(step 1)。さらに、For文により、最上位桁t−1から最下位桁0まで桁iを減らしながら以下の処理を実行する(step 2)。途中の計算結果QをQ2 mod F(x)G(x)の計算結果により更新する(step 3)。次に、べき指数kのi桁目の値kiが1のときには、途中の計算結果QをQ×P mod F(x)G(x)の計算結果により更新する(step 4)。計算結果Qを出力して演算を終了する(step 5)。
以上の処理のうち、step 3, 4の処理では、多項式F(x)G(x)による剰余演算を行う必要がある。剰余演算は、何もテクニックを使わない場合には多項式F(x),G(x)の形に依存して複雑になる。具体的には剰余演算は、各々の多項式F(x),G(x)における各次数の0以外の係数と、2番目に大きな次数の大きさとに依存して複雑になる。ここで、剰余演算の複雑さを検討するため、単項式A(x)=x6に対し、次の3つの多項式f1(x)〜f3(x)で剰余演算を行う場合を考える。
1(x)=x4+a33+a22+a11+a0
2(x)=x4+a33+a0
3(x)=x4+a0
このような剰余演算は、xの4乗以上の項に対し、再帰的にf1(x)、f2(x)及びf3(x)を用いてそれぞれ実行される。
Figure 2009258437
このような剰余演算によると、次の事項(i)〜(ii)が分かる。
(i)2番目の次数が3次のf1(x)及びf2(x)は、剰余演算を3回実行するのに対し、2番目の次数が0次のf3(x)は剰余演算を1回実行するだけで済む。
(ii)多項式の全ての項が存在するf1(x)と、3次の項と0次の項のみ存在するf2(x)との剰余演算結果を比較した結果、同じ回数だけ剰余演算を実行するにも関わらず、f1(x)による剰余演算結果の方が複雑な多項式になっている。
これらの事項から次の性質(I)〜(II)が分かる。
(I)剰余演算において、法となる多項式は、2番目に高い次数が低い方が良い。
(II)剰余演算において、法となる多項式は、ゼロ以外の項が少ない方が良い。
しかし、従来の剰余演算においては、これらの性質(I)〜(II)を満たす多項式F(x)を選択したに過ぎず、F(x)による剰余演算自体を高速化してはいない。
Masaaki Shirase, Tsuyoshi Takagi, Eiji Okamoto, "Some Efficient Algorithms for the Final Exponentiation of ηT Pairing", Cryptology ePrint Archive: Report 2006/431,2006, http://eprint.iacr.org/2006/431 Paulo S.L.M.Barreto, Steven Galbraith, Colm O hEigeartaigh, Michael Scott, "Efficient Pairing Computation on Supersingular Abelian Varieties", ePrint. Archive, Report 2004/375, 2004. http://eprint.iacr.org/2004/375 特開2001−51598号公報
以上説明したように、従来の合成数次拡大体の高速化手法では、有限体を2番目に拡大する際に用いるl次多項式G(x)の演算を高速化している。
しかしながら、m次多項式F(x)及びl次多項式G(x)における各次数m,lの関係は、m>lである場合が多いので、低い次数lの多項式G(x)の演算を高速化しても、全体の演算が高速化されない不都合がある。
従って、合成数次拡大体の高速化手法においては、有限体を最初に拡大する際に用いる高い次数mの多項式F(x)の演算を高速化できることが望まれる。
また、より一般的に、有限体を複数回(2回以上)拡大して構成される合成数次拡大体の場合にも、最初の方で拡大する際に用いる多項式の演算を高速化する手法が望まれる。
本発明は上記実情を考慮してなされたもので、各多項式により有限体を拡大してなる合成数次拡大体上でべき乗計算を行う際に、最初に拡大に用いた多項式による剰余演算を高速に実行し得る べき乗計算装置及びプログラムを提供することを目的とする。
本発明の一つの局面は、素体GF(p)をm次多項式F(x)及びl次多項式G(x)により順次拡大して構成された有限体である合成数次拡大体GF(pml)に関し、この合成数次拡大体GF(pml)上の値P及びべき指数kに基づき、べき乗計算を実行して得られた計算結果Pkを出力する機能を有し且つ記憶手段を備えた べき乗計算装置であって、前記値Pと、tビットの前記べき指数k=(kt-1,kt-2,…,ki,…,k1,k0)(但し、iはt−1から0までの整数)とを入力するための入力手段と、前記入力された値P及びべき指数kを前記記憶手段に書き込む手段と、前記記憶手段内の値Pを途中の計算結果Qに代入し、当該計算結果Qを当該記憶手段に書き込む手段と、前記記憶手段内のべき指数kにおける処理対象の桁iを最上位桁t−1に初期化し、当該処理対象の桁iを前記記憶手段に書き込む手段と、前記m次多項式F(x)のゼロ以外の項よりもゼロ以外の項が少ない多項式F’(x)に基づく、Q=Q2 mod F’(x)G(x)の計算命令と、前記記憶手段内の途中の計算結果Qとを送出する第1計算命令送出手段と、前記第1計算命令送出手段から受けた計算命令と、途中の計算結果Qとに基づいて、Q=Q2 mod F’(x)G(x)の計算を実行し、得られた計算結果Qを送出する第1計算実行手段と、前記第1計算実行手段から受けた計算結果Qにより前記記憶手段内の計算結果Qを更新する手段と、前記記憶手段内の処理対象のi桁目の値kiが1であるか否かを判定する第1判定手段と、前記第1判定手段による判定の結果、i桁目の値kiが1である場合、Q=P×Q mod F’(x)G(x)の計算命令と、前記記憶手段内の途中の計算結果Qと、前記記憶手段内の値Pとを送出する第2計算命令送出手段と、前記第2計算命令送出手段から受けた計算命令と、途中の計算結果Qと、値Pとに基づいて、Q=P×Q mod F’(x)G(x)の計算を実行し、得られた計算結果Qを送出する第2計算実行手段と、前記第2計算実行手段から受けた計算結果Qにより前記記憶手段内の計算結果Qを更新する手段と、前記第1判定手段による判定結果が否の場合、又は前記第2計算実行手段による計算結果Qを更新した場合、前記記憶手段内の処理対象の桁iが0であるか否かを判定する第2判定手段と、前記第2判定手段による判定結果が否の場合、前記記憶手段内の処理対象の桁iを−1だけ更新し、前記第1計算命令送出手段を再度実行する手段と、前記第2判定手段による判定の結果、処理対象の桁iが0である場合、Q=Q mod F(x)G(x)の計算命令と、前記記憶手段内の途中の計算結果Qとを送出する第3計算命令送出手段と、前記第3計算命令送出手段から受けた計算命令と、途中の計算結果Qと、値Pとに基づいて、Q=Q mod F(x)G(x)の計算を実行し、得られた計算結果Qを送出する第3計算実行手段と、前記第3計算実行手段による計算結果Qにより前記記憶手段内の計算結果Qを更新し、更新後の計算結果Qを前記べき乗計算の計算結果Pkとして出力する手段とを備えた べき乗計算装置である。
なお、上記一つの局面は、装置として表現したが、装置に限らず、方法、プログラム、プログラムを記憶したコンピュータ読取り可能な記憶媒体、として表現してもよい。
(作用)
本発明の一つの局面によれば、素体GF(p)をm次多項式F(x)及びl次多項式G(x)により順次拡大して構成された有限体である合成数次拡大体GF(pml)に関し、m次多項式F(x)のゼロ以外の項よりもゼロ以外の項が少ない多項式F’(x)に基づく、Q=Q2 mod F’(x)G(x)及びQ=P×Q mod F’(x)G(x)の計算を実行し、最後に、Q=Q mod F(x)G(x)の計算を実行する。
このように、本来のF(x)よりも少ない項の多項式F’(x)に基づき、途中の剰余演算を高速に実行し、最後に、本来のF(x)に基づき、剰余演算を実行する構成により、各多項式により有限体を拡大してなる合成数次拡大体上でべき乗計算を行う際に、最初に拡大に用いた多項式による剰余演算を高速に実行することができる。
以上説明したように本発明によれば、各多項式により有限体を拡大してなる合成数次拡大体上でべき乗計算を行う際に、最初に拡大に用いた多項式による剰余演算を高速に実行できる。
以下、本発明の各実施形態について図面を用いて説明するが、その前に各実施形態の概要を述べる。
(第1の実施形態の概要)
第1の実施形態では、合成数次拡大体において、AOP(All One Polynomial)と呼ばれる多項式をF(x)に用いることにより、剰余演算の高速化を図っている。
AOPは、次式に示すように、m+1個の項を有し、当該各項の全ての係数が1であるm次多項式である。
f(x)=xm+xm-1+…+x+1
この多項式f(x)に(x−1)を乗じると、次に示す多項式xm+1−1が得られる。
(x−1)f(x)=xm+1−1
これにより、m+1次の項を式(x−1)f(x)で剰余演算した場合、次式に示すように、m+1次の項が1に置換されることになる。
m+1 mod (x−1)f(x)=1
従って、剰余演算を非常に高速に実行可能である。
例えば、バイナリ法のように途中計算が多く含まれる場合に、以下に示すように、剰余演算を高速に実行可能である。
素体GF(P)を、m次多項式F(x)を用いて拡大して有限体GF(Pm)を構成し、さらに有限体GF(Pm)を、l次多項式G(x)を用いてさらに拡大して有限体GF(Pml)を構成しているが、本実施形態においてGF(Pm)上の演算はm次多項式F(x)だけではなく、(x−1)F(x)を用いた演算も定義しているとする。
このとき、第1の実施形態のバイナリ法は図6の中央欄に示すように実行される。
始めに、前述した通り、合成数次拡大体上の値P(∈GF(q)=GF(plm))と、べき指数k(=(kt-1,kt-2,…,ki,…,k1,k02)とが入力される。
また同様に、途中の計算結果Qにべき乗対象のデータPを代入する(step 1)。さらに、For文により、最上位桁t−1から最下位桁0まで桁iを減らしながら以下の処理を実行する(step 2)。途中の計算結果QをQ2 mod (x−1)F(x)G(x)の計算結果により更新する(step 3)。ここで、GF(pm)上の演算としては、(x−1)F(x)を用いて定義された演算を用いる。従って、step 3の処理の出力は(x−1)F(x)G(x)を用いて定義された計算結果となる。
次に、べき指数kのi桁目の値kiが1のときには、途中の計算結果QをQ×P mod (x−1)F(x)G(x)の計算結果により更新する(step 4)。ここで、GF(plm)上の演算としては、(x−1)F(x)を用いて定義された演算を用いる。従って、step 4の処理の出力も(x−1)F(x)G(x)を用いて定義された計算結果となる。
For文による計算結果QをQ mod F(x)G(x)の計算結果により更新する(step 5)。ここでは、For文で計算された環の出力結果に対し、F(x)を用いて定義された演算を用いて剰余演算を行い、計算結果を求めている。更新後の計算結果Qを出力して演算を終了する(step 6)。
ここで、実際の値を用い、第1の実施形態の効果の概要を述べる。
従来法及び第1の実施形態において、べき指数kを200ビットとし(t=200)、200ビットのべき指数kのうち、1を示すビット(step4の処理を行う回数)が確率的に100個あるとする。
従来法において、有限体GF(pm)上でF(x)に基づく剰余演算(式の置き換え)の回数を3回と仮定する。なお、この仮定は[背景技術]で述べた事項(i)に対応している。また、多項式G(x)の次数lを4とし、多項式F(x)G(x)により200次元の体を構成したとする(従って、F(x)の次数mは50となる。)。
一方、第1の実施形態も同様に次数m,lを設定し、また、有限体GF(pm)上で(x−1)F(x)に基づく剰余演算の回数を1回とする。
また、従来法及び第1の実施形態において、多項式G(x)に基づく剰余演算の回数をT回とする。なお、従来法及び第1の本実施形態において、回数Tは同一であるとする。
第1の実施形態において、step5のF(x)G(x)に基づく剰余演算は、(x−1)の乗算によって1次元高くなった多項式(x−1)F(x)G(x)に対し、1次元低い本来の多項式F(x)G(x)で剰余をとるので、剰余演算回数を1回とする。
以上のとき、従来法と第1の実施形態の剰余演算の回数は次のようになる。次式中、200はstep 3のQ2の実行回数であり、100はstep 4のQ×Pの実行回数である。
従来法…200*T*3+100*T*3=900T回
本実施形態…200*T*1+100*T*1+1=300T+1回
以上のように第1の実施形態によれば、AOP(All One Polynomial)と呼ばれる多項式をF(x)に用い、途中の剰余演算をmod (x−1)F(x)により実行し、最後の剰余演算をmod F(x)により実行する構成により、GF(pm)上の剰余演算回数を大幅に削減可能であることが分かる。
また、第1の実施形態は、バイナリ法に適用した場合を例に挙げて説明したが、これに限らず、一般的なべき乗計算方法に適用しても、同様に剰余演算回数を大幅に削減でき、剰余演算を高速に実行することができる。
(第2の実施形態の概要)
第2の実施形態では、第1の実施形態をより一般的に構成したものであり、第1の実施形態のAOP(=f(x)=F(x))及び(x−1)F(x)に代えて、より一般的な多項式F(x)及びF’(x)を用いている。換言すると、第2の実施形態の一つの具体例が第1の実施形態となっている。
第2の実施形態の多項式F(x),F’(x)としては、例えば、ある多項式f(x)に基づいてF’(x)=F(x)f(x)と表したとき、多項式F’(x)のゼロ以外の項が、F(x)のゼロ以外の項よりも少ないという関係があればよい。なお、この関係に伴い、多項式F’(x)に基づく剰余演算mod F’(x)は、多項式F(x)に基づく剰余演算mod F(x)よりも高速に実行可能となっている。
また、第2の実施形態のバイナリ法は図6の右欄に示すように実行される。すなわち、第2の実施形態は、第1の実施形態の多項式F(x)(=AOP)及び(x−1)F(x)に代えて、より一般的な多項式F(x)及びF’(x)を用いて実行される。
具体的には、値P及びべき指数kの入力からstep 1の処理までは前述同様に実行される。続いて、For文により、最上位桁t−1から最下位桁0まで桁iを減らしながら以下の処理を実行する(step 2)。途中の計算結果QをQ2 mod F’(x)G(x)の計算結果により更新する(step 3)。ここで、GF(pm)上の演算としては、F’(x)を用いて定義された演算を用いる。従って、step 3の処理の出力はF’(x)G(x)を用いて定義された計算結果となる。
次に、べき指数kのi桁目の値kiが1のときには、途中の計算結果QをQ×P mod F’(x)G(x)の計算結果により更新する(step 4)。ここで、GF(plm)上の演算としては、F’(x)を用いて定義された演算を用いる。従って、step 4の処理の出力もF’(x)G(x)を用いて定義された計算結果となる。
For文による計算結果QをQ mod F(x)G(x)の計算結果により更新する(step 5)。ここでは、For文で計算された環の出力結果に対し、F(x)を用いて定義された演算を用いて剰余演算を行い、計算結果を求めている。更新後の計算結果Qを出力して演算を終了する(step 6)。
以上のように第2の実施形態によれば、より一般的な多項式F(x)について、この多項式F(x)よりも少ない項の多項式F’(x)を用い、途中の剰余演算をmod F’(x)により実行し、最後の剰余演算をmod F(x)により実行する構成により、第1の実施形態と同様に、GF(pm)上の剰余演算回数を大幅に削減でき、剰余演算を高速に実行することができる。
また、第2の実施形態は、バイナリ法に適用した場合を例に挙げて説明したが、これに限らず、一般的なべき乗計算方法に適用しても、同様に剰余演算回数を大幅に削減でき、剰余演算を高速に実行することができる。
以上が各実施形態の概要である。次に、本発明の各実施形態を具体的に説明する。
(第1の実施形態の具体的な構成)
図1は本発明の第1の実施形態に係るべき乗計算装置の構成を示す模式図であり、図2は同装置が演算可能な有限体を示す模式図である。このべき乗計算装置100は、入出力部10、べき乗計算制御部20、メモリ30、GF(plm)計算部40、GF(pm)計算部50及びGF(p)計算部60を備えている。なお、各計算部40〜60は、図2に示す如き、各有限体GF(plm),GF(pm),GF(p)上の計算を担当している。
ここで、入出力部10は、合成数次拡大体上の値P(∈GF(q)=GF(plm))と、べき指数k(=(kt-1,kt-2,…,k1,k02)とが入力されると、値P及びべき指数kをべき乗計算制御部20に送出する機能と、べき乗計算制御部20から受けた計算結果Pkを出力する機能とをもっている。
べき乗計算制御部20は、入出力部10から入力された値P及びべき指数kをメモリ30に書き込む機能と、メモリ30内の値Pを途中の計算結果Qに代入し、当該計算結果Qをメモリ30に書き込む機能と、メモリ30内のべき指数kの最上位桁t−1から最下位桁0までの各桁iに対し、Q=Q2 mod (x−1)F(x)G(x)の計算命令と、メモリ30内の途中の計算結果QとをGF(plm)計算部40に送出し、折り返し、GF(plm)計算部40から受けた計算結果Qによりメモリ30内の計算結果Qを更新する機能と、メモリ30内のべき指数kのi桁目の値kiが1のときには、Q=Q×P mod (x−1)F(x)G(x)の計算命令と、メモリ30内の途中の計算結果Q及び入力された値PとをGF(plm)計算部40に送出し、折り返し、GF(plm)計算部40から受けた計算結果Qによりメモリ30内の計算結果Qを更新する機能と、メモリ30内のべき指数kの最下位桁0に対する計算の終了後、Q=Q mod F(x)G(x)の計算命令と、メモリ30内の途中の計算結果QとをGF(plm)計算部40に送出し、折り返し、GF(plm)計算部40から受けた計算結果Qによりメモリ30内の計算結果Qを更新する機能と、更新後の計算結果Qを入出力部10に出力して処理を終了する機能とをもっている。
メモリ30は、各部20,40〜60から読出/書込可能な記憶装置である。
GF(plm)計算部40は、GF(plm)演算制御部41、GF(plm)基本演算実行部42及びG(x)剰余演算実行部43を備えている。
GF(plm)演算制御部41は、べき乗計算制御部20から受けた計算命令及び途中の計算結果Qに基づいて、各演算実行部42,43及びGF(pm)計算部50を制御する機能と、この制御により得られた新たな計算結果Qをべき乗計算制御部20に送出する機能とをもっている。
GF(plm)基本演算実行部42は、GF(plm)演算制御部41に制御され、適宜メモリ30を参照しつつ、有限体GF(plm)上の基本演算を実行し、実行結果をGF(plm)演算制御部41に送出する機能をもっている。
G(x)剰余演算実行部43は、GF(plm)演算制御部41に制御され、適宜メモリ30を参照しつつ、有限体GF(plm)上で多項式G(x)による剰余演算を実行し、実行結果をGF(plm)演算制御部41に送出する機能をもっている。
GF(pm)計算部50は、GF(pm)演算制御部51、GF(pm)基本演算実行部52、F(x)剰余演算実行部53及び(x−1)F(x)剰余演算実行部54を備えている。
GF(pm)演算制御部51は、GF(plm)演算制御部41に制御され、各演算実行部52〜54及びGF(p)計算部60を制御する機能と、この制御により得られた計算結果をGF(plm)演算制御部41に送出する機能とをもっている。
GF(pm)基本演算実行部52は、GF(pm)演算制御部51に制御され、適宜メモリ30を参照しつつ、有限体GF(pm)上の基本演算を実行し、実行結果をGF(pm)演算制御部51に送出する機能をもっている。
F(x)剰余演算実行部53は、GF(pm)演算制御部51に制御され、適宜メモリ30を参照しつつ、有限体GF(pm)上で多項式F(x)による剰余演算を実行し、実行結果をGF(pm)演算制御部51に送出する機能をもっている。
(x−1)F(x)剰余演算実行部54は、GF(pm)演算制御部51に制御され、適宜メモリ30を参照しつつ、有限体GF(pm)上で多項式(x−1)F(x)による剰余演算を実行し、実行結果をGF(pm)演算制御部51に送出する機能をもっている。
GF(p)計算部60は、GF(p)演算制御部61、GF(p)基本演算実行部62及びp剰余演算実行部63を備えている。
GF(p)演算制御部61は、GF(pm)演算制御部51に制御され、各演算実行部62,63を制御する機能と、この制御により得られた計算結果をGF(pm)演算制御部51に送出する機能とをもっている。
GF(p)基本演算実行部52は、GF(p)演算制御部61に制御され、適宜メモリ30を参照しつつ、有限体GF(p)上の基本演算を実行し、実行結果をGF(p)演算制御部61に送出する機能をもっている。
p剰余演算実行部53は、GF(p)演算制御部61に制御され、適宜メモリ30を参照しつつ、有限体GF(p)上で素数pによる剰余演算を実行し、実行結果をGF(p)演算制御部61に送出する機能をもっている。
なお、以上のような べき乗計算装置100は、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体からべき乗計算装置のコンピュータにインストールされ、べき乗計算装置の機能を実現させるためのプログラムが用いられる。このようにべき乗計算装置100がハードウェア構成又はプログラムを用いた構成で実施可能なことは、以下の各実施形態でも同様である。
次に、以上のように構成された べき乗計算装置の動作について図3のフローチャートを用いて説明する。
(ST11) べき乗計算装置100においては、入出力部10により、合成数次拡大体上の値Pと、べき指数kとがべき乗計算制御部20に入力される。べき乗計算制御部20は、この値P及びべき指数kをメモリ30に書き込む。
(ST12) べき乗計算制御部20は、メモリ30内の値Pを途中の計算結果Qに代入し、当該計算結果Qをメモリ30に書き込む。
(ST13) べき乗計算制御部20は、メモリ30内のべき指数kにおける処理対象の桁iを最上位桁t−1に初期化し、当該処理対象の桁i(=t−1)をメモリ30に書き込む。
(ST14) べき乗計算制御部20は、Q=Q2 mod (x−1)F(x)G(x)の計算命令と、メモリ30内の途中の計算結果QとをGF(plm)計算部40に送出する。GF(plm)計算部40では、計算命令と、途中の計算結果Qとに基づいて、他の計算部50,60を用いつつ、Q=Q2 mod (x−1)F(x)G(x)の計算を実行し、得られた計算結果Qをべき乗計算制御部20に送出する。
べき乗計算制御部20は、GF(plm)計算部40から受けた計算結果Qによりメモリ30内の計算結果Qを更新する。
(ST15) べき乗計算制御部20は、処理対象のi桁目の値kiが1であるか否かを判定する。
(ST16) べき乗計算制御部20は、ステップST15の判定の結果、i桁目の値kiが1である場合(ki=1)、Q=P×Q mod (x−1)F(x)G(x)の計算命令と、メモリ30内の途中の計算結果Qと、メモリ30内の値PとをGF(plm)計算部40に送出する。GF(plm)計算部40では、計算命令と、途中の計算結果Qと、値Pとに基づいて、他の計算部50,60を用いつつ、Q=P×Q mod (x−1)F(x)G(x)の計算を実行し、得られた計算結果Qをべき乗計算制御部20に送出する。
べき乗計算制御部20は、GF(plm)計算部40から受けた計算結果Qによりメモリ30内の計算結果Qを更新する。
(ST17) べき乗計算制御部20は、ステップST15の判定結果が否の場合(ki≠1、すなわちki=0の場合)、又はステップST16を終了した場合、メモリ30内の処理対象の桁iが0であるか否かを判定する。
(ST18) べき乗計算制御部20は、ステップST17の判定結果が否の場合(i≠0)、メモリ30内の処理対象の桁iを−1だけ更新し、ステップST14に戻ってST14を再度実行する。
(ST19) べき乗計算制御部20は、ステップST17の判定の結果、処理対象の桁iが0である場合(i=0)、Q=Q mod F(x)G(x)の計算命令と、メモリ30内の途中の計算結果QとをGF(plm)計算部40に送出する。GF(plm)計算部40では、計算命令と、途中の計算結果Qと、値Pとに基づいて、他の計算部50,60を用いつつ、Q=Q mod F(x)G(x)の計算を実行し、得られた計算結果Qをべき乗計算制御部20に送出する。なお、このQ=Q mod F(x)G(x)の計算結果Qは、Pkの計算結果に相当している。すなわち、この計算結果はQ=Pkである。
べき乗計算制御部20は、この計算結果Qによりメモリ30内の計算結果Qを更新し、更新後の計算結果Qを入出力部20に送出する。
(ST20) べき乗計算装置100は、この計算結果Q(=Pk)を入出力部20により出力し、処理を終了する。
上述したように本実施形態によれば、素体GF(p)をm次多項式F(x)及びl次多項式G(x)により順次拡大して構成された有限体である合成数次拡大体GF(pml)に関し、m次多項式F(x)(=xm+xm-1+…+x+1)のゼロ以外の項よりもゼロ以外の項が少ない多項式(x−1)F(x)(=xm+1+1)に基づく、Q=Q2 mod (x−1)F(x)G(x)及びQ=P×Q mod (x−1)F(x)G(x)の計算を実行し、最後に、Q=Q mod F(x)G(x)の計算を実行する。
このように、本来のF(x)よりも少ない項の多項式(x−1)F(x)に基づき、途中の剰余演算を高速に実行し、最後に、本来のF(x)に基づき、剰余演算を実行する構成により、各多項式により有限体を拡大してなる合成数次拡大体上でべき乗計算を行う際に、最初に拡大に用いた多項式による剰余演算を高速に実行することができる。
(第2の実施形態の具体的な構成)
図4は本発明の第2の実施形態に係る べき乗計算装置の構成を示す模式図であり、図1と同一機能部については同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。
すなわち、第2の実施形態は、前述したように、第1の実施形態のAOP(=f(x)=F(x))及び(x−1)F(x)に代えて、より一般的な多項式F(x)及びF’(x)を用いている。
これに伴い、べき乗計算装置100は、図1に示したF(x)剰余演算実行部53及び(x−1)F(x)剰余演算実行部54に代えて、図4に示すように、F(x)剰余演算実行部53’及びF’(x)剰余演算実行部54’を備えた構成となっている。
F(x)剰余演算実行部53’は、GF(pm)演算制御部51に制御され、適宜メモリ30を参照しつつ、有限体GF(pm)上で、より一般的な多項式F(x)による剰余演算を実行し、実行結果をGF(pm)演算制御部51に送出する機能をもっている。
F’(x)剰余演算実行部54は、GF(pm)演算制御部51に制御され、適宜メモリ30を参照しつつ、有限体GF(pm)上で、より一般的な多項式F’(x)による剰余演算を実行し、実行結果をGF(pm)演算制御部51に送出する機能をもっている。
次に、以上のように構成された べき乗計算装置の動作について図5のフローチャートを用いて説明する。
(ST11〜ST13) べき乗計算装置100は、前述した通り、ステップST11〜ST13を実行する。
(ST14’) べき乗計算制御部20は、Q=Q2 mod F’(x)G(x)の計算命令と、メモリ30内の途中の計算結果QとをGF(plm)計算部40に送出する。GF(plm)計算部40では、計算命令と、途中の計算結果Qとに基づいて、他の計算部50,60を用いつつ、Q=Q2 mod F’(x)G(x)の計算を実行し、得られた計算結果Qをべき乗計算制御部20に送出する。
べき乗計算制御部20は、GF(plm)計算部40から受けた計算結果Qによりメモリ30内の計算結果Qを更新する。
(ST15) べき乗計算制御部20は、前述した通り、ステップST15を実行する。
(ST16’) べき乗計算制御部20は、ステップST15の判定の結果、i桁目の値kiが1である場合(ki=1)、Q=P×Q mod F’(x)G(x)の計算命令と、メモリ30内の途中の計算結果Qと、メモリ30内の値PとをGF(plm)計算部40に送出する。GF(plm)計算部40では、計算命令と、途中の計算結果Qと、値Pとに基づいて、他の計算部50,60を用いつつ、Q=P×Q mod F’(x)G(x)の計算を実行し、得られた計算結果Qをべき乗計算制御部20に送出する。
べき乗計算制御部20は、GF(plm)計算部40から受けた計算結果Qによりメモリ30内の計算結果Qを更新する。
(ST17〜ST18) べき乗計算制御部20は、前述した通り、ステップST17〜ST18を実行する。
(ST19) べき乗計算制御部20は、ステップST17の判定の結果、処理対象の桁iが0である場合(i=0)、Q=Q mod F(x)G(x)の計算命令と、メモリ30内の途中の計算結果QとをGF(plm)計算部40に送出する。GF(plm)計算部40では、計算命令と、途中の計算結果Qと、値Pとに基づいて、他の計算部50,60を用いつつ、Q=Q mod F(x)G(x)の計算を実行し、得られた計算結果Qをべき乗計算制御部20に送出する。この計算結果QはPkに相当する(Q=Pk)。
べき乗計算制御部20は、この計算結果Qによりメモリ30内の計算結果Qを更新し、更新後の計算結果Qを入出力部20に送出する。
(ST20) べき乗計算装置100は、前述した通り、ステップST20を実行し、処理を終了する。
上述したように本実施形態によれば、素体GF(p)をm次多項式F(x)及びl次多項式G(x)により順次拡大して構成された有限体である合成数次拡大体GF(pml)に関し、m次多項式F(x)のゼロ以外の項よりもゼロ以外の項が少ない多項式F’(x)に基づく、Q=Q2 mod F’(x)G(x)及びQ=P×Q mod F’(x)G(x)の計算を実行し、最後に、Q=Q mod F(x)G(x)の計算を実行する。
このように、本来のF(x)よりも少ない項の多項式F’(x)に基づき、途中の剰余演算を高速に実行し、最後に、本来のF(x)に基づき、剰余演算を実行する構成により、各多項式により有限体を拡大してなる合成数次拡大体上でべき乗計算を行う際に、最初に拡大に用いた多項式による剰余演算を高速に実行することができる。
すなわち、第2の実施形態によれば、第1の実施形態をより一般的に構成し、F(x)よりも高速に剰余演算を実行できるF’(x)を用いて途中計算を行うことにより、全体の計算を高速化することができる。
なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
本発明の第1の実施形態に係るべき乗計算装置の全体構成を示すブロック図である。 同実施形態における有限体を示す模式図である。 同実施形態における動作を説明するためのフローチャートである。 本発明の第2の実施形態に係るべき乗計算装置の全体構成を示すブロック図である。 同実施形態における動作を説明するためのフローチャートである。 各実施形態のアルゴリズムを従来と比較して示す図である。
符号の説明
100…べき乗計算装置、10…入出力部、20…べき乗計算制御部、30…メモリ、40…GF(plm)計算部、41…GF(plm)演算制御部、42…GF(plm)基本演算実行部、43…G(x)剰余演算実行部、50…GF(pm)計算部、51…GF(pm)演算制御部、52…GF(pm)基本演算実行部、53,53’…F(x)剰余演算実行部、54…(x−1)F(x)剰余演算実行部、54’…F’(x)剰余演算実行部、60…GF(p)計算部、61…GF(p)演算制御部、62…GF(p)基本演算実行部、63…p剰余演算実行部。

Claims (4)

  1. 素体GF(p)をm次多項式F(x)及びl次多項式G(x)により順次拡大して構成された有限体である合成数次拡大体GF(pml)に関し、この合成数次拡大体GF(pml)上の値P及びべき指数kに基づき、べき乗計算を実行して得られた計算結果Pkを出力する機能を有し且つ記憶手段を備えた べき乗計算装置であって、
    前記値Pと、tビットの前記べき指数k=(kt-1,kt-2,…,ki,…,k1,k0)(但し、iはt−1から0までの整数)とを入力するための入力手段と、
    前記入力された値P及びべき指数kを前記記憶手段に書き込む手段と、
    前記記憶手段内の値Pを途中の計算結果Qに代入し、当該計算結果Qを当該記憶手段に書き込む手段と、
    前記記憶手段内のべき指数kにおける処理対象の桁iを最上位桁t−1に初期化し、当該処理対象の桁iを前記記憶手段に書き込む手段と、
    前記m次多項式F(x)のゼロ以外の項よりもゼロ以外の項が少ない多項式F’(x)に基づく、Q=Q2 mod F’(x)G(x)の計算命令と、前記記憶手段内の途中の計算結果Qとを送出する第1計算命令送出手段と、
    前記第1計算命令送出手段から受けた計算命令と、途中の計算結果Qとに基づいて、Q=Q2 mod F’(x)G(x)の計算を実行し、得られた計算結果Qを送出する第1計算実行手段と、
    前記第1計算実行手段から受けた計算結果Qにより前記記憶手段内の計算結果Qを更新する手段と、
    前記記憶手段内の処理対象のi桁目の値kiが1であるか否かを判定する第1判定手段と、
    前記第1判定手段による判定の結果、i桁目の値kiが1である場合、Q=P×Q mod F’(x)G(x)の計算命令と、前記記憶手段内の途中の計算結果Qと、前記記憶手段内の値Pとを送出する第2計算命令送出手段と、
    前記第2計算命令送出手段から受けた計算命令と、途中の計算結果Qと、値Pとに基づいて、Q=P×Q mod F’(x)G(x)の計算を実行し、得られた計算結果Qを送出する第2計算実行手段と、
    前記第2計算実行手段から受けた計算結果Qにより前記記憶手段内の計算結果Qを更新する手段と、
    前記第1判定手段による判定結果が否の場合、又は前記第2計算実行手段による計算結果Qを更新した場合、前記記憶手段内の処理対象の桁iが0であるか否かを判定する第2判定手段と、
    前記第2判定手段による判定結果が否の場合、前記記憶手段内の処理対象の桁iを−1だけ更新し、前記第1計算命令送出手段を再度実行する手段と、
    前記第2判定手段による判定の結果、処理対象の桁iが0である場合、Q=Q mod F(x)G(x)の計算命令と、前記記憶手段内の途中の計算結果Qとを送出する第3計算命令送出手段と、
    前記第3計算命令送出手段から受けた計算命令と、途中の計算結果Qと、値Pとに基づいて、Q=Q mod F(x)G(x)の計算を実行し、得られた計算結果Qを送出する第3計算実行手段と、
    前記第3計算実行手段による計算結果Qにより前記記憶手段内の計算結果Qを更新し、更新後の計算結果Qを前記べき乗計算の計算結果Pkとして出力する手段と、
    を備えたことを特徴とする べき乗計算装置。
  2. 請求項1に記載のべき乗計算装置において、
    前記m次多項式F(x)は、m+1個の項を有し、当該各項の全ての係数が1であるm次多項式F(x)=xm+xm-1+…+x+1であり、
    前記多項式F’(x)は、前記m次多項式F(x)に(x−1)を乗じて得られる多項式F’(x)=xm+1−1であることを特徴とする べき乗計算装置。
  3. 素体GF(p)をm次多項式F(x)及びl次多項式G(x)により順次拡大して構成された有限体である合成数次拡大体GF(pml)に関し、この合成数次拡大体GF(pml)上の値P及びべき指数kに基づき、べき乗計算を実行して得られた計算結果Pkを出力する機能を有し且つ記憶手段を備えた べき乗計算装置に用いられるプログラムであって、
    前記べき乗計算装置を、
    前記値Pと、tビットの前記べき指数k=(kt-1,kt-2,…,ki,…,k1,k0)(但し、iはt−1から0までの整数)とを入力する入力手段、
    前記入力された値P及びべき指数kを前記記憶手段に書き込む手段、
    前記記憶手段内の値Pを途中の計算結果Qに代入し、当該計算結果Qを当該記憶手段に書き込む手段、
    前記記憶手段内のべき指数kにおける処理対象の桁iを最上位桁t−1に初期化し、当該処理対象の桁iを前記記憶手段に書き込む手段、
    前記m次多項式F(x)のゼロ以外の項よりもゼロ以外の項が少ない多項式F’(x)に基づく、Q=Q2 mod F’(x)G(x)の計算命令と、前記記憶手段内の途中の計算結果Qとを送出する第1計算命令送出手段、
    前記第1計算命令送出手段から受けた計算命令と、途中の計算結果Qとに基づいて、Q=Q2 mod F’(x)G(x)の計算を実行し、得られた計算結果Qを送出する第1計算実行手段、
    前記第1計算実行手段から受けた計算結果Qにより前記記憶手段内の計算結果Qを更新する手段、
    前記記憶手段内の処理対象のi桁目の値kiが1であるか否かを判定する第1判定手段、
    前記第1判定手段による判定の結果、i桁目の値kiが1である場合、Q=P×Q mod F’(x)G(x)の計算命令と、前記記憶手段内の途中の計算結果Qと、前記記憶手段内の値Pとを送出する第2計算命令送出手段、
    前記第2計算命令送出手段から受けた計算命令と、途中の計算結果Qと、値Pとに基づいて、Q=P×Q mod F’(x)G(x)の計算を実行し、得られた計算結果Qを送出する第2計算実行手段、
    前記第2計算実行手段から受けた計算結果Qにより前記記憶手段内の計算結果Qを更新する手段、
    前記第1判定手段による判定結果が否の場合、又は前記第2計算実行手段による計算結果Qを更新した場合、前記記憶手段内の処理対象の桁iが0であるか否かを判定する第2判定手段、
    前記第2判定手段による判定結果が否の場合、前記記憶手段内の処理対象の桁iを−1だけ更新し、前記第1計算命令送出手段を再度実行する手段、
    前記第2判定手段による判定の結果、処理対象の桁iが0である場合、Q=Q mod F(x)G(x)の計算命令と、前記記憶手段内の途中の計算結果Qとを送出する第3計算命令送出手段、
    前記第3計算命令送出手段から受けた計算命令と、途中の計算結果Qと、値Pとに基づいて、Q=Q mod F(x)G(x)の計算を実行し、得られた計算結果Qを送出する第3計算実行手段、
    前記第3計算実行手段による計算結果Qにより前記記憶手段内の計算結果Qを更新し、更新後の計算結果Qを前記べき乗計算の計算結果Pkとして出力する手段、
    として機能させるためのプログラム。
  4. 請求項3に記載のプログラムにおいて、
    前記m次多項式F(x)は、m+1個の項を有し、当該各項の全ての係数が1であるm次多項式F(x)=xm+xm-1+…+x+1であり、
    前記多項式F’(x)は、前記m次多項式F(x)に(x−1)を乗じて得られる多項式F’(x)=xm+1−1であることを特徴とするプログラム。
JP2008108150A 2008-04-17 2008-04-17 べき乗計算装置及びプログラム Active JP4724200B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008108150A JP4724200B2 (ja) 2008-04-17 2008-04-17 べき乗計算装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008108150A JP4724200B2 (ja) 2008-04-17 2008-04-17 べき乗計算装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2009258437A true JP2009258437A (ja) 2009-11-05
JP4724200B2 JP4724200B2 (ja) 2011-07-13

Family

ID=41385945

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008108150A Active JP4724200B2 (ja) 2008-04-17 2008-04-17 べき乗計算装置及びプログラム

Country Status (1)

Country Link
JP (1) JP4724200B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000148013A (ja) * 1998-11-16 2000-05-26 Fujitsu Ltd 有限体の定義多項式を用いた剰余演算装置
JP2001051598A (ja) * 1999-08-16 2001-02-23 Nippon Telegr & Teleph Corp <Ntt> 逐次拡大を用いた楕円曲線演算装置及びプログラム記録媒体
JP2002040937A (ja) * 2000-07-24 2002-02-08 Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd 暗号回路および制御方法
JP2004102071A (ja) * 2002-09-11 2004-04-02 Toshiba Corp 多項式剰余系演算装置、方法及びプログラム
JP2006201719A (ja) * 2005-01-24 2006-08-03 Nippon Telegr & Teleph Corp <Ntt> 多項式べき乗演算装置、多項式べき乗演算方法、そのプログラム及びその記録媒体

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000148013A (ja) * 1998-11-16 2000-05-26 Fujitsu Ltd 有限体の定義多項式を用いた剰余演算装置
JP2001051598A (ja) * 1999-08-16 2001-02-23 Nippon Telegr & Teleph Corp <Ntt> 逐次拡大を用いた楕円曲線演算装置及びプログラム記録媒体
JP2002040937A (ja) * 2000-07-24 2002-02-08 Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd 暗号回路および制御方法
JP2004102071A (ja) * 2002-09-11 2004-04-02 Toshiba Corp 多項式剰余系演算装置、方法及びプログラム
JP2006201719A (ja) * 2005-01-24 2006-08-03 Nippon Telegr & Teleph Corp <Ntt> 多項式べき乗演算装置、多項式べき乗演算方法、そのプログラム及びその記録媒体

Also Published As

Publication number Publication date
JP4724200B2 (ja) 2011-07-13

Similar Documents

Publication Publication Date Title
JP4304215B2 (ja) 秘密分散装置、方法及びプログラム
JP2009010531A (ja) 秘密分散装置、方法及びプログラム
JP6629466B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、プログラム
JP6079433B2 (ja) 移動平均処理プログラム、及びプロセッサ
US20080010332A1 (en) EFFICIENT COMPUTATION OF THE MODULO OPERATION BASED ON DIVISOR (2n-1)
JP4351987B2 (ja) モンゴメリ変換装置、演算装置、icカード、暗号装置、復号装置及びプログラム
JP5147085B2 (ja) 演算方法及び演算装置
JPWO2006030496A1 (ja) 楕円曲線暗号演算装置、楕円曲線を用いた演算装置の演算方法および楕円曲線上の点のスカラー倍演算をコンピュータに実行させるプログラム
JP6337133B2 (ja) 非減少列判定装置、非減少列判定方法及びプログラム
JP4724200B2 (ja) べき乗計算装置及びプログラム
JP5752337B1 (ja) 情報処理システム、情報処理方法およびプログラム
KR102541388B1 (ko) Mdf 기반 ntt를 이용한 링-lwe 암호프로세서 장치 및 방법
KR20100139072A (ko) 다항식 데이터 처리연산
JPWO2011036746A1 (ja) 演算装置
JP4202701B2 (ja) 多項式剰余系演算装置、方法及びプログラム
JP6825119B2 (ja) 秘密読み込み装置、秘密書き込み装置、それらの方法、およびプログラム
JP4663421B2 (ja) 離散対数演算装置、方法及びプログラム
JP2021081591A (ja) 安全性評価装置、安全性評価方法及び安全性評価プログラム
JP4970291B2 (ja) ペアリング計算装置及びプログラム
JP2007218997A (ja) 素数生成装置、プログラム及び方法
JP5791562B2 (ja) 圧縮関数演算装置、圧縮関数演算方法、およびプログラム
JP2015026005A (ja) プログラム変換装置、プログラム変換方法及びプログラム
JP7191804B2 (ja) 安全性評価装置、安全性評価方法及び安全性評価プログラム
JP5554357B2 (ja) 演算装置
JP2009258502A (ja) 乗算装置及びプログラム

Legal Events

Date Code Title Description
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: 20110315

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110408

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140415

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4724200

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350