JP2003029630A - べき乗剰余演算装置 - Google Patents

べき乗剰余演算装置

Info

Publication number
JP2003029630A
JP2003029630A JP2001212589A JP2001212589A JP2003029630A JP 2003029630 A JP2003029630 A JP 2003029630A JP 2001212589 A JP2001212589 A JP 2001212589A JP 2001212589 A JP2001212589 A JP 2001212589A JP 2003029630 A JP2003029630 A JP 2003029630A
Authority
JP
Japan
Prior art keywords
power
exponent
calculation
modular exponentiation
elements
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001212589A
Other languages
English (en)
Inventor
Hideo Shimizu
秀夫 清水
Atsushi Shinpo
淳 新保
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
Original Assignee
Toshiba 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 filed Critical Toshiba Corp
Priority to JP2001212589A priority Critical patent/JP2003029630A/ja
Publication of JP2003029630A publication Critical patent/JP2003029630A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】Mmod Nを高速に並列計算するべき乗剰
余演算装置を提供する。 【解決手段】整数M,N及びべき指数eを入力し、この
べき指数eを複数のべき指数要素に分解する分解手段
と、分解された複数のべき指数要素のそれぞれについて
のべき乗剰余計算を並列に実行する複数のべき乗剰余計
算手段と、複数のべき乗剰余計算手段による計算結果を
剰余乗算してMmod Nを得る剰余乗算手段とを具
備する。分解手段は、複数のべき乗剰余計算手段の各々
の計算時間が互いに等しくなるようにべき指数eを分解
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は情報セキュリティ技
術等に好適なべき乗剰余計算装置に関し、特に、べき乗
剰余の並列計算における効率化に関する。
【0002】
【従来の技術】公開鍵暗号の方式として広く用いられて
いるRSA(Rivest-Shamir-AdlemanScheme)暗号で
は、情報の暗号化/復号化の際にべき乗剰余演算を行
う。このRSA暗号では、大きな整数を素因数分解する
ことの難しさを安全性の根拠としている。このようなR
SA暗号に加え、公開鍵暗号を用いるデジタル署名(D
SA署名:Digital Signature Algorithm)や公開鍵配
送法(DH法:Diffie-Hellman法)のような情報セキュ
リティ技術についても、有限体上のべき乗剰余を利用す
る。最近では、楕円曲線上の有理点のべき和を利用した
公開鍵暗号系が、効率の良さから注目されている。
【0003】これらの情報セキュリティ技術に多用され
るべき乗剰余演算は、比較的時間のかかる演算とされて
おり、これを高速化する試みが様々な観点から数多くな
されている。べき乗剰余演算の高速化は、おおまかに、
多倍長の剰余乗算を高速化するものと、べき乗するとき
の順番を工夫するものとに分けることができる。前者の
代表的なものとしてモンゴメリ(Montgomery)法が公知
である。また、後者の代表的なものとしてバイナリ法
や、バイナリ法を改良した窓法が公知である。
【0004】最近ではべき乗剰余演算を並列化して行う
方法も提案されている。
【0005】
【発明が解決しようとする課題】従来、様々な観点から
べき乗剰余演算を高速化する方法が提案されているが、
本発明では、新たな観点から高速化に取り組むことを技
術的課題とする。すなわち、本発明は、既存のべき乗剰
余演算チップを容易に利用でき、べき乗剰余演算(M
mod N)を高速に並列計算するべき乗剰余演算装
置を提供することを目的とする。
【0006】
【課題を解決するための手段】上記課題を解決し目的を
達成するために本発明は次のように構成されている。
【0007】本発明の請求項1に係るべき乗剰余演算装
置は、整数M,N及びべき指数eを入力してM^e m
od Nを計算するべき乗剰余演算装置において、前記
べき指数eを複数のべき指数要素に分解する分解手段
と、前記分解手段により分解された複数のべき指数要素
のそれぞれについてのべき乗剰余計算を並列に実行する
複数のべき乗剰余計算手段と、前記複数のべき乗剰余計
算手段による計算結果を剰余乗算する少なくとも1つの
剰余乗算手段とを具備し、前記分解手段は、前記複数の
べき乗剰余計算手段の各々の計算時間が互いに等しくな
るよう、前記複数のべき指数要素を分解するようにした
ことを特徴とする。
【0008】本発明の請求項6に係るべき乗剰余演算方
法は、整数M,N及びべき指数eを入力してM^e m
od Nを計算するべき乗剰余演算方法において、前記
べき指数eを複数のべき指数要素に分解する分解ステッ
プと、前記分解ステップにおいて分解された複数のべき
指数要素のそれぞれについてのべき乗剰余計算を、複数
のべき乗剰余計算手段により並列に実行する計算ステッ
プと、前記計算ステップにおける計算結果を剰余乗算す
る剰余乗算ステップとを具備し、前記分解ステップは、
前記複数のべき乗剰余計算手段の各々の計算時間が互い
に等しくなるよう、前記複数のべき指数要素を分解する
ことを特徴とする。
【0009】本発明の請求項7に係るプログラムは、コ
ンピュータに、整数M,N及びべき指数eを入力し、M
^e mod Nを計算させるにあたり、前記べき指数e
を複数のべき指数要素に分解する分解機能と、前記分解
機能において分解された複数のべき指数要素のそれぞれ
についてのべき乗剰余計算を並列に実行する計算機能
と、前記計算機能における計算結果を剰余乗算する剰余
乗算機能と、を実行させるべき乗剰余演算プログラムで
あって、前記分解機能は、前記複数のべき指数要素のそ
れぞれについてのべき乗剰余計算の各々の計算時間が互
いに等しくなるよう、前記複数のべき指数要素を分解す
るよう実行させることを特徴とする。
【0010】
【発明の実施の形態】以下、図面を参照しながら本発明
の実施形態を説明する。 「第1実施形態」図1は、本発明の第1実施形態に係る
べき乗剰余演算装置の概略構成を示すブロック図であ
る。同図に示すように、本実施形態に係るべき乗剰余演
算装置は、多倍長の整数M,e,Nを入力する入力部1
2と、この入力部12に接続され、M mod Nを計
算するべき乗剰余演算装置の主部11と、この主部11
により計算されたM mod Nを出力する出力部13
とにより構成されている。整数eはべき(冪)指数であ
り、以下、本明細書では「Me」を「M^e」と表記す
る。べき乗剰余演算装置の主部11は、べき指数eを複
数のべき指数(要素)に分解する分解部14と、この分
解部14に接続され、べき乗剰余計算を並列に実行する
複数のべき乗剰余計算部U1〜Unと、これら複数のべ
き乗剰余計算部U1〜Unに接続された1台の剰余乗算
器17とを備えている。べき乗剰余計算部U1〜Unの
台数は、少なくとも2以上の任意の台数としてよい。べ
き乗剰余計算部U1〜Unの各々には、べき指数eの分
解に加え、入力部12に入力された整数MおよびNが分
解部14から与えられる。また、べき乗剰余計算部U1
〜Unの各々は既存のべき乗剰余計算チップを用いて構
成してよい。
【0011】図2は、第1実施形態の概略動作を示すフ
ローチャートである。本実施形態に係るべき乗剰余演算
装置が起動されると、先ずステップにおいて、入力部1
2は多倍長整数M,e,Nを入力し、主部11内の分解
部14に送出する。
【0012】次にステップにおいて、分解部14は入力
部12に入力されたべき指数eを複数のべき指数に分解
する。即ち、べき指数eをe=e1,e2,e
3,...,enに分解する。但し、e1,e2,e
3,...,enの各々は整数であり、nは自然数であ
る。そして分解部14は上記ステップS2で求めたべき指
数eの分解を、それぞれべき乗剰余計算部U1〜Unに
送出する。べき指数eの分解の仕方については後述す
る。
【0013】次にステップS3において、べき乗剰余計算
部U1〜Unは、分解部14から与えられたべき指数の
分解についてのべき乗剰余計算、すなわちM^e1 m
odN,M^e2 mod N,...,M^en mo
d Nを並列に計算する。べき乗剰余計算部U1〜Un
は、各々で得られた計算結果を剰余乗算器17に送出す
る。
【0014】次にステップS4において、剰余乗算器17
はべき乗剰余計算部U1〜Unから送られてきた計算結
果をもとに剰余乗算を行なって、以下のようにM^e
mod Nを得る。
【0015】 (M^e1 mod N)×(M^e2 mod N)×…×(M^en mod N)mod N =M^(e1+e2+…+en) mod N =M^e mod N つまり、M^ei mod Nをn個のべき乗剰余計算部
U1〜Unにより並列計算した後に剰余乗算する場合
と、かかる並列計算を行なわない場合とで計算結果とし
ては同じものが得られる。
【0016】そしてステップS5において、得られたM^
e mod Nを外部出力する。ここで、べき乗剰余計算
部U1〜Unにおけるべき乗剰余計算、即ち、M^e1
mod N,M^e2 mod N,...,M^en
mod Nのそれぞれの計算時間をT(e1),T(e
2),...,T(en)と表すとき、本実施形態はT
(e1)=T(e2)=...=T(en)、およびT
(ei)<T(e)を必要条件とする。つまり、べき乗
剰余計算部U1〜Unにおけるべき乗剰余計算に要する
計算時間が互いに等しくなるようにし、また、並列計算
を行なわないで1回でべき乗剰余計算を行なった場合の
計算時間よりも、べき乗剰余計算部U1〜Unの単体で
の計算時間が短くなるようにする。この条件を満たすよ
うに、分解部14はステップS2においてべき指数eを分
解する。
【0017】したがって、本実施形態ではべき乗剰余計
算部U1〜Unの各々に計算の空き時間が生じることが
なく並列計算を効率化でき、べき乗剰余演算を高速化で
きる。
【0018】以下、べき指数eの分解の仕方について詳
細に説明する。図3は、べき指数eの分解を説明するた
めの図である。ここではべき乗計算にバイナリ法を適用
することとし、べき指数eを2分割する場合について説
明する。つまり、べき乗剰余計算部U1およびU2が並
列計算に使用される。同図の21は、ビット長がmビッ
トの(多倍長)整数であるべき指数eを示している。
【0019】まず、同図の22に示すように、べき指数
eから奇数番目のビットの内容を抽出し、偶数番目のビ
ットには0を埋めて、べき指数eの第1の分解(要素)
としての整数e1を得る。
【0020】次に、同図の23に示すように、べき指数
eから偶数番目のビットの内容を抽出し、奇数番目のビ
ットには0を埋めて、べき指数eの第2の分解(要素)
としての整数e2を得る。このとき、e=e1+e2で
ある。バイナリ法における計算所要時間は、べき乗演算
に含まれる剰余乗算の回数として算出でき、2乗剰余演
算の回数nと、べき指数のハミング重みの和となる。
【0021】即ち、 T(e)=|e|+w(e) 但し|e|はeのビット数、w(e)はeの各ビットで値
が1であるものの数、即ちハミング重みである。
【0022】図3の例では、e,e1,e2乗するとき
の剰余乗算の回数は以下のようになる。
【0023】T(e)=n+0.5n=1.5n T(e1)=n+0.25n=1.25n T(e2)=n+0.25n=1.25n 但し、べき指数eの各ビットの約半分が1であるとし、
これによりハミング重みを0.5nとしている。
【0024】また、べき指数eの分解e1とe2は、べ
き指数eのビットの奇数番目と偶数番目をそれぞれ抽出
したものであるから、1となるビットの数はさらに半分
となりハミング重みは0.25nとなる。
【0025】まず、上記のとおりT(e1)=T(e
2)=1.25nである。また、e1とe2の剰余乗算
の回数は合わせて2.5n回であり、T(e)の1.5
nよりも大きい。しかしながら、本実施形態ではe1の
計算とe2の計算を複数のべき乗剰余計算部U1および
U2により並列に行う。したがって、M^e mod N
を計算するために1.25n+1回の計算で済むことか
ら高速化を実現できる。
【0026】複数のべき乗剰余計算部U1〜Unの並列
計算によるべき乗剰余演算の効率は、いかにべき指数e
を分解するかによって決まる。
【0027】ここで、2台以上の複数のべき乗剰余計算
部U1〜Unを使用して並列計算を行なう場合に、べき
指数eを効率良く分解することについて説明する。
【0028】一般にバイナリ法や窓法を使ったべき乗剰
余計算では次のような場合に計算時間が短くなる。 (1)べき指数のビット数が小さい (2)べき指数のハミング重みが小さい 以上を考慮しつつ、ここでは各eiのハミング重みが小
さくなり、eiのiが大きくなるほどビット数が少なく
なるようにする。またe1の方がe2よりもビット数が
大きいので、その分ハミング重みが小さくなるようにk
1<k2とし、かつT(e1)=T(e2)となるよう
な分解を得る。なお、eiのiが大きくなっても同様の
関係を保持するようにk1<k2<…<knとする。
【0029】図4は以上の分解方法を説明するための図
である。同図の31は、べき指数eの第1の分解要素で
あるe1を示している。このe1は、べき指数eの上位
k1ビットを抽出した後に0を連接(k1ビット以外の
全てのビットに0を埋めたもの;マスク)して構成した
整数である。このe1のビット長はeと同じにする。
【0030】次に、32は、べき指数eの第2の分解要
素であるe2を示している。このe2は、べき指数eの
k1ビットに後続するk2ビットを抽出し、0を連接し
て構成した整数である。このe2のビット長はe1のビ
ット長よりもk1ビット分だけ少ない。
【0031】そして、33はべき指数eの最後の分解要
素であるenを示している。このenは、べき指数eの
最下位knビットのみにより構成した整数である。
【0032】上述したように、べき乗剰余演算に要する
計算時間(速度)は、べき指数のビット長とハミング重
みで決まる。そこで、この図4の例では、ビット長が大
きい上位の分解要素ei(iがより小さい)ほど、ハミ
ング重みが小さくなるようにkiのビット長を小さくす
ることで、各べき乗剰余計算の計算時間T(ei)を等
しくする。
【0033】このような分解の仕方に則り、べき指数e
を2分割する場合を図5を参照して説明する。なお、こ
こでも上述と同様にべき乗剰余演算にはバイナリ法が適
用されているものとする。
【0034】図5に示す41はべき指数eであり、16
ビットのビット長を有する。このべき指数eを2分割
(n=2)する。
【0035】まず、同図の42は、べき指数eの第1の
分解要素であるe1を示している。このe1は、べき指
数eの上位4ビット(k1=4)を抽出した後に12ビ
ット分の0を連接して構成した整数である。このe1の
ビット長はべき指数eと同じく16ビットである。
【0036】次に、43はべき指数eの第2の分解要素
であるe2を示している。このe2は、べき指数eの下
位12ビット(k2=12;k1<k2)を抽出して構
成した整数である。
【0037】べき指数e、第1の分解要素e1、および
第2の分解要素e2の各々についてのべき乗剰余計算に
要する剰余乗算の回数は以下のようになる。 T(e)=16+0.5×16=24 T(e1)=16+0.5×4=18 T(e2)=12+0.5×12=18 ここで、T(e1)=T(e2)=18であり、最後の
剰余乗算を考慮して19としても、19<24=T
(e)となり、24/19=1.26となることから2
6%の高速化が実現されることがわかる。
【0038】次に、図6を参照して3分割の場合を説明
する。ここでも上述と同様にべき乗剰余演算にはバイナ
リ法が適用されているものとする。
【0039】図6に示す51はべき指数eであり、52
ビットのビット長を有する。このべき指数eを3分割
(n=3)する。
【0040】まず、同図の52は、べき指数eの第1の
分解要素であるe1を示している。このe1は、べき指
数eの上位4ビット(k1=4)を抽出した後に48ビ
ット分の0を連接して構成した整数である。このe1の
ビット長はべき指数eと同じく52ビットである。
【0041】次に、53は、べき指数eの第2の分解要
素であるe2を示している。このe2は、上位k1ビッ
トに後続するべき指数eの中位12ビット(k2=1
2;k1<k2)を抽出し、36ビット分の0を連接し
て構成した整数である。このe2のビット長は48ビッ
トであり、これはべき指数eの52ビットから上位4ビ
ット(k1=4)を除いたものに等しい。
【0042】そして、54は、べき指数eの第3の分解
要素であるe3を示している。このe3は、下位36ビ
ット(k3=36;k2<k3)を抽出して構成した整
数である。 べき指数e、第1の分解要素e1、第2の
分解要素e2、および第3の分解要素e2の各々につい
てのべき乗剰余計算に要する剰余乗算の回数は以下のよ
うになる。 T(e)=52+0.5×52=78 T(e1)=52+0.5×4=54 T(e2)=48+0.5×12=54 T(e3)=36+0.5×36=54 ここで、T(e1)=T(e2)=T(e3)=54で
あり、最後の剰余乗算2回を考慮して56としても、5
6<78=T(e)となり、78/56=1.39とな
ることから39%の高速化が実現されることがわかる。
【0043】ここで、以上説明したべき指数eの分解方
法の一般形を説明する。ここではまず2分割(図5)お
よび3分割(図6)の分解について述べた後、一般形を
述べる。
【0044】バイナリ法を使って2分割した場合の各々
のべき乗剰余計算の実行時間は以下の2式で表される。 T(e1)=1.5×k1+k2 T(e2)=1.5×k2 ここで、T(e1)=T(e2)であるからk2につい
て解くとk2=3×k1となり、k2にはk1の3倍の
ビット数を割り当てればよいことが分かる。
【0045】同様に、3分割の場合(図6)では、 T(e1)=1.5×k1+k2+k3 T(e2)=1.5×k2+k3 T(e3)=1.5×k3 となり、T(e1)=T(e2)=T(e3)からk2
およびk3について解くと、 k2=3×k1 k3=9×k1 となる、つまり、k1,k2,k3の比を1:3:9と
すればよいことが分かる。
【0046】バイナリ法以外の場合を考慮するために、
ハミング重みの係数0.5をα(0<α<1)という変
数で表すことにする。
【0047】一般に、n分割の場合 k2=r×k1 k3=r^2×k1 ・・・ kn=r^(n−1)×k1 のように表現できる。但し、r=1十1/αである。
【0048】このとき、最後の剰余乗算を無視して考え
ることにすると、計算に要する実行時間は分割しないで
場合の
【数1】
【0049】なお、上式はn→∞のとき1/(1+α)
に収束する。
【0050】以上説明したように第1実施形態によれ
ば、並列計算によるべき乗剰余計算(Mmod Nの
計算)を高速化できる。また、べき乗剰余計算部U1〜
Unに既存のべき乗剰余計算チップをそのまま利用可能
であることから実用的である。
【0051】上述した第1実施形態は、図7に示すよう
に変形してもよい。すなわち、剰余乗算器17に代えて
楕円加算器72を設け、スカラー倍計算装置を構成す
る。かかる変形例は楕円曲線暗号に適用可能である。上
述したべき乗剰余演算では、M mod Nを計算する
が、スカラー倍計算では、eM=(e1+e2+...
+en)Mを計算する。
【0052】「第2実施形態」次に、本発明の第2実施
形態を説明する。
【0053】図8は、本発明の第2実施形態に係るべき
乗剰余演算装置の概略構成を示すブロック図である。こ
の装置は、複数のべき乗剰余計算の要求を処理できるよ
うに拡張した装置であって、計算要求受付部61、要求
待ちキュー62、分配器63、スケジューラ64、べき
乗剰余計算部V1〜Vn、出力待ちキュー66、および
出力部67により構成されている。
【0054】計算要求受付部61への要求が多いとき
は、n個のべき乗剰余計算部V1〜Vnを各々単独のべ
き乗剰余計算のために使用する。一方、要求が少なくべ
き乗剰余計算に余裕があるときは、余っているべき乗剰
余計算を複数使って第1実施形態で述べた高速化を行う
ことにより、処理の効率化、高速化を図るものである。
【0055】複数のべき乗剰余計算の要求を計算要求受
付部61が受け付けると、該要求は要求待ちキュー62
に蓄えられる。スケジューラ64は、複数のべき乗剰余
計算部V1〜Vnのどれを使って作業を行うかを決定す
る。分配器63はスケジューラ64によりなされた決定
に従って要求待ちキュー62から要求を取り出し、該当
するべき乗剰余計算部V1〜Vnに分配する。
【0056】べき乗剰余計算部V1〜Vnからの計算結
果は出力待ちキュー66に出力される。このとき、べき
乗剰余計算部V1〜Vnは計算処理の終了をスケジュー
ラ64に通知する(通知信号68)。出力待ちキュー6
6に蓄えられた計算結果は出力部67を介して出力され
る。
【0057】スケジューラ64は通知信号68等に基づ
いてどのべき乗剰余計算部がビジーであるかを常時把握
しており、要求に対して計算能力に余裕があるときは1
つの要求に対して複数のべき乗剰余計算を割り当てる。
このとき、上述した第1実施形態と同様の処理を行なっ
てべき乗剰余演算を高速に計算する。
【0058】例えばべき乗剰余計算部が10個(V1〜
V10)である場合、計算要求が10個であるときは、
1つの計算について1つのべき乗剰余計算を行う。要求
がより少なく例えば2個しかないときは、残っている8
個のべき乗剰余計算部をアイドルにしない。つまり、各
々1個の要求につき5個のべき乗剰余計算を割り当て
る。
【0059】なお、以上説明した各機能の一部又は全部
をソフトウェアとして実現してもよい。また本発明は上
述した実施形態に限定されず種々変形して実施可能であ
る。
【0060】
【発明の効果】以上説明したように、本発明によれば、
modNを高速に並列計算するべき乗剰余演算装置
を提供できる。
【図面の簡単な説明】
【図1】本発明の第1実施形態に係るべき乗剰余演算装
置の概略構成を示すブロック図
【図2】図1に示した第1実施形態のべき乗剰余演算装
置の概略動作を示すフローチャート
【図3】図1に示した第1実施形態のべき乗剰余演算装
置におけるべき指数eの分解を説明するための図
【図4】べき指数eの効率的な分解を説明するための図
【図5】べき指数eの2分割例を説明するための図
【図6】べき指数eの3分割例を説明するための図
【図7】第1実施形態の変形例に係るスカラー倍計算装
置の概略構成を示すブロック図
【図8】本発明の第2実施形態に係るべき乗剰余演算装
置の概略構成を示すブロック図
【符号の説明】
11…べき乗剰余演算装置の主部 12…M,e,Nの入力部 13…MmodNの出力部 14…分解部 U1〜Un…べき乗剰余計算部 17…剰余乗算器

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 整数M,N及びべき指数eを入力してM
    ^e mod Nを計算するべき乗剰余演算装置におい
    て、 前記べき指数eを複数のべき指数要素に分解する分解手
    段と、 前記分解手段により分解された複数のべき指数要素のそ
    れぞれについてのべき乗剰余計算を並列に実行する複数
    のべき乗剰余計算手段と、 前記複数のべき乗剰余計算手段による計算結果を剰余乗
    算する少なくとも1つの剰余乗算手段とを具備し、 前記分解手段は、前記複数のべき乗剰余計算手段の各々
    の計算時間が互いに等しくなるよう、前記複数のべき指
    数要素を分解するようにしたことを特徴とするべき乗剰
    余演算装置。
  2. 【請求項2】 前記分解手段は、前記べき指数eの奇数
    ビットを抽出して第1の前記べき指数要素を生成し、前
    記べき指数eの偶数ビットを抽出して第2の前記べき指
    数要素を生成することを特徴とする請求項1に記載のべ
    き乗剰余演算装置。
  3. 【請求項3】 前記分解手段は、k1<k2を満たすよ
    うに、前記べき指数eの上位k1ビットを抽出すると共
    に該k1ビットの下位をマスクして第1の前記べき指数
    要素を生成し、前記k1ビットに続くk2ビットを前記
    べき指数eから抽出すると共に該k2ビットの下位をマ
    スクして第2の前記べき指数要素を生成することを特徴
    とする請求項1に記載のべき乗剰余演算装置。
  4. 【請求項4】 前記分割手段は、前記べき指数要素のハ
    ミング重みに基づいて、前記複数のべき乗剰余計算手段
    の各々の計算時間が互いに等しくなるように前記べき指
    数eを分解することを特徴とする請求項1乃至4のいず
    れか一項に記載のべき乗剰余演算装置。
  5. 【請求項5】 べき乗剰余演算要求を受け付ける受付手
    段と、 前記複数のべき乗剰余計算手段の空き状況に応じて、前
    記受付手段が受け付けたべき乗剰余演算要求を前記複数
    のべき乗剰余計算手段の少なくとも一部を使用した並列
    演算に割り当てるスケジューラと、 をさらに具備することを特徴とする請求項1乃至4のい
    ずれか一項に記載のべき乗剰余演算装置。
  6. 【請求項6】 整数M,N及びべき指数eを入力してM
    ^e mod Nを計算するべき乗剰余演算方法におい
    て、 前記べき指数eを複数のべき指数要素に分解する分解ス
    テップと、 前記分解ステップにおいて分解された複数のべき指数要
    素のそれぞれについてのべき乗剰余計算を、複数のべき
    乗剰余計算手段により並列に実行する計算ステップと、 前記計算ステップにおける計算結果を剰余乗算する剰余
    乗算ステップとを具備し、 前記分解ステップは、前記複数のべき乗剰余計算手段の
    各々の計算時間が互いに等しくなるよう、前記複数のべ
    き指数要素を分解することを特徴とするべき乗剰余演算
    方法。
  7. 【請求項7】 コンピュータに、整数M,N及びべき指
    数eを入力し、M^e mod Nを計算させるにあた
    り、 前記べき指数eを複数のべき指数要素に分解する分解機
    能と、 前記分解機能において分解された複数のべき指数要素の
    それぞれについてのべき乗剰余計算を並列に実行する計
    算機能と、 前記計算機能における計算結果を剰余乗算する剰余乗算
    機能と、を実行させるべき乗剰余演算プログラムであっ
    て、 前記分解機能は、前記複数のべき指数要素のそれぞれに
    ついてのべき乗剰余計算の各々の計算時間が互いに等し
    くなるよう、前記複数のべき指数要素を分解するよう実
    行させることを特徴とするべき乗剰余演算プログラム。
JP2001212589A 2001-07-12 2001-07-12 べき乗剰余演算装置 Pending JP2003029630A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001212589A JP2003029630A (ja) 2001-07-12 2001-07-12 べき乗剰余演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001212589A JP2003029630A (ja) 2001-07-12 2001-07-12 べき乗剰余演算装置

Publications (1)

Publication Number Publication Date
JP2003029630A true JP2003029630A (ja) 2003-01-31

Family

ID=19047725

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001212589A Pending JP2003029630A (ja) 2001-07-12 2001-07-12 べき乗剰余演算装置

Country Status (1)

Country Link
JP (1) JP2003029630A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009003479A (ja) * 2008-10-02 2009-01-08 Hitachi Ltd べき乗剰余演算方法
JP2010008883A (ja) * 2008-06-30 2010-01-14 Toshiba Corp 暗号用演算装置、暗号用演算方法及びプログラム
CN117312733A (zh) * 2023-11-07 2023-12-29 灿芯半导体(上海)股份有限公司 一种动态调整计算速度的fft实现方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010008883A (ja) * 2008-06-30 2010-01-14 Toshiba Corp 暗号用演算装置、暗号用演算方法及びプログラム
JP2009003479A (ja) * 2008-10-02 2009-01-08 Hitachi Ltd べき乗剰余演算方法
CN117312733A (zh) * 2023-11-07 2023-12-29 灿芯半导体(上海)股份有限公司 一种动态调整计算速度的fft实现方法
CN117312733B (zh) * 2023-11-07 2024-04-16 灿芯半导体(上海)股份有限公司 一种动态调整计算速度的fft实现方法

Similar Documents

Publication Publication Date Title
Joye et al. Optimal left-to-right binary signed-digit recoding
Ansari et al. High-performance architecture of elliptic curve scalar multiplication
Ding et al. High-speed ECC processor over NIST prime fields applied with Toom–Cook multiplication
US7904498B2 (en) Modular multiplication processing apparatus
Roy et al. Theoretical modeling of elliptic curve scalar multiplier on LUT-based FPGAs for area and speed
Migliore et al. Hardware/software co-design of an accelerator for FV homomorphic encryption scheme using Karatsuba algorithm
Grossschadl The Chinese remainder theorem and its application in a high-speed RSA crypto chip
Giorgi et al. Parallel modular multiplication on multi-core processors
CN104184578B (zh) 一种基于fpga的椭圆曲线标量乘法加速电路及其算法
CN113032848B (zh) 一种数据处理方法和用于数据处理的芯片
JP2002215385A (ja) 剰余系表現を利用した演算装置及び方法及びプログラム
Moon et al. Fast VLSI arithmetic algorithms for high-security elliptic curve cryptographic applications
Ding et al. A reconfigurable high-speed ECC processor over NIST primes
Walter Improved linear systolic array for fast modular exponentiation
JP2003029630A (ja) べき乗剰余演算装置
US7607165B2 (en) Method and apparatus for multiplication and/or modular reduction processing
Lee et al. Linear systolic multiplier/squarer for fast exponentiation
Giorgi et al. Multipartite modular multiplication
McLoone et al. Coarsely integrated operand scanning (CIOS) architecture for high-speed Montgomery modular multiplication
KR20080050054A (ko) 성긴 w-NAF 키 생성방법,이를 이용한 연산 방법 및암호화 방법
Arazi et al. On calculating multiplicative inverses modulo $2^{m} $
Al-Khaleel et al. An elliptic curve cryptosystem design based on FPGA pipeline folding
Bos et al. Efficient modular multiplication
JP2007526513A (ja) 要素の累乗またはスカラー乗算の方法
JP3626315B2 (ja) 剰余算装置、情報処理装置及び剰余算方法