JP2002358010A - べき乗剰余演算器 - Google Patents
べき乗剰余演算器Info
- Publication number
- JP2002358010A JP2002358010A JP2001163719A JP2001163719A JP2002358010A JP 2002358010 A JP2002358010 A JP 2002358010A JP 2001163719 A JP2001163719 A JP 2001163719A JP 2001163719 A JP2001163719 A JP 2001163719A JP 2002358010 A JP2002358010 A JP 2002358010A
- Authority
- JP
- Japan
- Prior art keywords
- register
- remainder
- montgomery
- bit
- execution means
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/728—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using Montgomery reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/723—Modular exponentiation
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
剰余演算器を提供する。 【解決手段】 べき乗剰余演算器は、鍵eを保持するe
レジスタ102およびモンゴメリ変換をする乗数Yを保
持するYレジスタ103間でデータのやり取りを行なう
内部バス115と、鍵Nを保持するNレジスタ104、
モンゴメリ変換の演算時に行なう2B+Nの値を保持す
るB2Nレジスタ105、平文Xを保持するXレジスタ
106、暗号化および復号化のための演算を行なう演算
回路107および演算結果Pを保持するPレジスタ10
8間でデータのやり取りを行なうための内部バス116
と、べき乗剰余演算実行時のステートマシンとしての役
割を果たすべき乗剰余制御回路109と、モンゴメリ乗
算剰余演算と剰余演算との実行時のステートマシンとし
ての役割を果たすモンゴメリ乗算剰余・剰余制御回路1
10とを含む。
Description
ーク、交通、金融、医療、流通等の分野において使用さ
れる情報の暗号化技術および復号化技術で使用されるべ
き乗剰余演算器に関し、特に、モンゴメリ(Montgomer
y)のアルゴリズムを用いてべき乗剰余演算を行なうべ
き乗剰余演算器に関する。
ワーク上のセキュリティの確保(データの盗用や破壊を
防止すること)が重要視されるようになってきている。
そのため、情報の暗号化技術および復号化技術が採用さ
れることが多く、その適用分野は単なる情報通信分野に
留まらず、交通、金融、医療、流通等の身近な分野にま
で広がりつつある。この種の暗号化技術および復号化技
術には、高度なセキュリティを単純な原理によって実現
できることが要求される。
め、情報の暗号化・復号化についての概略を説明する。
暗号の世界においては、“非対称暗号アルゴリズム”が
質的に優れている。非対称暗号アルゴリズムとは、暗号
化鍵と復号化鍵とが異なっており、そのいずれか一方か
ら他方が“容易に計算できない”暗号アルゴリズムをい
う。この非対称暗号アルゴリズムの代表的なものに、べ
き乗剰余演算(ある数Xを何回も乗算してNで割った余
りをとる計算)を用いるタイプのRSA(Rivest-Shami
r-Adleman scheme)暗号がある。
べき乗剰余演算の形式が基本として使用される。式
(1)は、XYをNで割ったときの余りを求めることを
意味する。また、式(1)において、Xは暗号化(復号
化)の対象となる平文、YおよびNは暗号化(復号化)
のための鍵(キー)である。
および復号化が容易に実行され、かつX、Y、Nのオペ
ランドビット長を長くすることで、各鍵の解読を困難に
することができる。
と、べき乗剰余演算に長時間を要することになる。そこ
で、オペランドビット長が長いべき乗剰余演算をいかに
短時間に終了させるかがポイントとなる。
演算を使用した暗号化処理および復号化処理について説
明する。
て]RSA暗号の暗号化には、次式(2)が用いられ
る。
た平文すなわち暗号文である。また、式(2)における
eおよびNは暗号化鍵、式(3)におけるdおよびNは
復号化鍵である。また、以下の式(4)および式(5)
の関係が予め与えられている。
味し、「LCM」は、最小公倍数を意味する。またpと
qとは互いに素な整数である。なお、eおよびNは公開
鍵であり、d、pおよびqは秘密鍵である。
ルゴリズムにおけるべき乗剰余演算の数値の条件を定義
している。式(4)は、Nは互いに素な大きな素数pお
よびqの積であることを示している。pおよびqはとも
に奇数なので、当然Nは奇数でなければならない。式
(5)は、式(4)で示したpおよびqからそれぞれ1
を減じた値同士の最小公倍数で、eおよびdの積e・d
を当該最小公倍数で割ったときの余りが1になることを
示している。
平文Mは式(2)を用いて暗号化され、また暗号化され
た平文M(暗号文C)は式(3)を用いて復号化され
る。
に暗号化・復号化で使用される、べき乗剰余演算の演算
方法を説明する。A=MemodNのべき乗剰余演算は、整
数eの2進数展開をe=ek-1…e1e0として、以下の
フロー1に示す反復平方積法を用いることにより実行さ
れる。
る。
び式(7)に示すように乗算と除算(mod算)である。
乗算は、初期値を1とするAの値に対してA×Aまたは
A×Mを行なう部分である。除算は、各々の乗算で得ら
れた値に対してmodN(Nで割ったときの余りを求める
演算)を行なう部分である。この“乗算と除算”(A×
AmodN、A×MmodN)を1対の演算として、“e”の
ビット値に従って繰返し演算が行なわれる。すなわち、
“e”の最上位ビットから最下位ビットまでの各ビット
の内容によって“乗算と除算”が行なわれる。
(mod算)を繰返し行なうことで解が得られることを示
したが、この繰返し回数自体は、たかだか数百〜数千回
であるので、ソフトウェアによる処理でも十分に対応で
きる。しかし、この剰余演算自体すなわち除算をハード
ウェアによって実行するためには、大規模な演算回路と
複雑な処理手順とが必要とされる。このため改善が望ま
れていた。通常、e,d,M,Nなどは1024ビット
程度の大きな整数が用いられているので、高速指数計算
法を使用しても1回のRSA演算で平均1500回程度
の多重精度乗算と剰余算とを行なわなければならない。
特に剰余算は、近似法、剰余テーブル方式、モンゴメリ
のアルゴリズム等、多くの高速化手法が提案されてい
る。
鍵暗号の多くで利用される、べき乗剰余演算を高速に処
理するためには、1回当りの剰余算の高速化が要求され
る。モンゴメリのアルゴリズムは、剰余算を高速処理す
るアルゴリズムである。特に、乗算剰余演算において
は、除算をビットシフトなどで簡略化できるため、公開
鍵暗号(RSA暗号等)で用いられるべき乗剰余演算を
高速処理することができるという特徴がある。
法とする演算は合成数を構成する互いに素な因数を法と
する演算から計算できる。これを1024ビット長RS
A暗号処理に適用すると、実際に必要なハードウェアと
しては、1024ビット長の法Nによるべき乗剰余演算
器ではなく、512ビット長の整数(ここではpおよび
qに相当する)を法とする演算回路のみでよい。このた
めハードウェアの小型化に繋がる。
(mod算)を実行する手順が非常に複雑であるため、演
算回路が大規模化してしまうことを上述した。そこで、
モンゴメリは、剰余演算(mod算)を先のような一般的
な方法で行なわずに、“乗算”と簡単なビット列処理と
で行なうことによって解を得る仕組みを提案している。
以下にモンゴメリが提案している手法について簡単に説
明する。
高速化を実現する一手法であるモンゴメリのアルゴリズ
ムについて説明する。
(N>1)と、剰余の法Nと互いに素である基数R(R
>N)とを用いると、被剰余数をTとした場合、TR-1
modNの計算が基数Rによる除算のみで行なえる性質を
利用している。これにより、Nによる除算を用いること
なく剰余計算を行なうことができる。ここで、N,R,
R-1およびTは整数である。被剰余数Tは0≦T<R・
Nを満たす数である。R-1は剰余の法Nの上での基数R
の逆数である。またここでさらに、R・R-1−N・N′
=1(0≦R-1<N、0≦N′<R)の関係を満たす整
数N′を考えることができる。さらに、この基数Rに2
のべき乗数を使用した場合、基数Rによる除算をシフト
操作に置き換えることができる。このため、T→TR-1
modN(被剰余数をTとした場合のTR-1modN)の計算
の高速処理が可能となる。
dNのアルゴリズムMR(T)を示す。ただし、アルゴ
リズム1において(T+m・N)/Rは必ず割り切れる
ことが証明されている。
ルゴリズムY=MR(T)は次のように表わされる。
められるだけである。よって、剰余TmodNを求めるた
めには、次に示すようにMR(T)と予め求めておいた
R2modNとの積で、再びMR演算を行なえばよい。
算剰余演算を使用して、これをべき乗剰余演算の反復平
方積法(繰返し2乗法)で実現するアルゴリズムを下記
に示す。鍵eの上位ビットから検索し、鍵のビットの値
が1の場合には、MR(X・Y)のモンゴメリ乗算剰余
演算を行なう。
ejは鍵eのjビット目を表わす。512ビット長の整
数の場合k=512となり、512ビットのべき乗剰余
演算は514ビットのモンゴメリ乗算剰余演算と512
ビット剰余演算とにより実現できる。
適な基数Wの逐次計算でモンゴメリ乗算剰余演算結果P
=MR(B・A)を求めると、以下のようになる。
このようにして、モンゴメリ乗算剰余演算結果Pを求め
ることができる。d=1の基数2の逐次計算で514ビ
ットモンゴメリ乗算剰余演算結果P=MR(B・A)を
求めると、以下のようになる。
ドウェアで512ビット長のべき乗剰余演算にモンゴメ
リ法を使用し、ソフトウェアで中国人の剰余定理を利用
した処理を使用することが従来採用されている。ハード
ウェアへの実装方式は複数通りあり、実際に様々な方式
が採用されていると思われる。その一例を以下に示す。
用したべき乗剰余演算器は、外部バスとのインタフェー
ス回路101と、鍵eを保持するeレジスタ102と、
モンゴメリ変換をする乗数Yを保持するYレジスタ10
3と、鍵Nを保持するNレジスタ104と、モンゴメリ
変換の演算時に行なう2B+Nの値を保持するB2Nレ
ジスタ105と、平文Xを保持するXレジスタ106
と、暗号化および復号化のための演算を行なう演算回路
107と、演算結果Pを保持するPレジスタ108と、
べき乗剰余演算実行時のステートマシンとしての役割を
果たすべき乗剰余制御回路109と含む。
メリ乗算剰余演算と剰余演算との実行時のステートマシ
ンとしての役割を果たすモンゴメリ乗算剰余・剰余制御
回路110と、加算および減算の演算制御を行なう加算
・減算制御回路111と、各種モードを保持するモード
レジスタ112と、コマンドを保持するコマンドレジス
タ113と、ステータスを保持するステータスレジスタ
114と、各種レジスタと演算回路107間でのデータ
のやり取りを行なうための内部バス115と、eレジス
タ102、べき乗剰余制御回路109およびモンゴメリ
乗算剰余・剰余制御回路110に接続され、鍵eを一時
的に保持する一時保持レジスタ119とを含む。
小さくするために、各レジスタ間を共通の内部バス11
5で接続している。
ejを使用する際に、一時保持レジスタ119に予め保
持された鍵eのjビット目を読込んで使用していた。こ
れにより、式(12)のY=MR(X・Y)で必要とさ
れる値のレジスタからの読込みと、鍵eのjビット目の
読込みとを同時に行うことができる。よって、高速に演
算を行うことが可能となる。
剰余演算器では、高速に演算を行うことができる反面、
余分な配線領域やレジスタ領域が必要となり、回路規模
が大きくなってしまう。
や、式(10)〜式(14)に示すモンゴメリ剰余演算
の場合にも生ずる。すなわち、Yレジスタ103に保持
された値と、Nレジスタ104、B2Nレジスタ105
またはXレジスタ106に保持された値とを交互に読み
出すこととすると、演算時間が長くなるという問題があ
る。一方、どちらか一方の値を予め一時保持レジスタ1
19に保持し、演算を行うようにした場合には、高速演
算が可能となるが、余分な配線領域やレジスタ領域が必
要となるため、回路規模が大きくなってしまう。
れたもので、その目的は、回路規模が小さく、高速処理
が可能なべき乗剰余演算器を提供することである。
べき乗剰余演算器は、第1の種類のデータを保持する第
1のレジスタ群と、第1のレジスタ群に保持されたデー
タと並行して参照可能な種類のデータを保持する第2の
レジスタ群と、第1のレジスタ群に接続された第1の内
部バスと、第2のレジスタ群に接続された第2の内部バ
スと、第1および第2の内部バスに接続され、第1およ
び第2のレジスタ群に保持された値を並行して参照し、
モンゴメリ乗算剰余演算を実行するためのモンゴメリ乗
算剰余演算実行手段と、第1および第2の内部バス、な
らびにモンゴメリ乗算剰余演算実行手段に接続され、第
1および第2のレジスタ群に保持された値を並行して参
照し、モンゴメリ乗算剰余演算実行手段との間でデータ
のやり取りを行ない、べき乗剰余演算を実行するための
べき乗剰余演算実行手段とを含む。
2のレジスタ群に分けて保持し、モンゴメリ乗算剰余演
算またはべき乗剰余演算を実行する際に、第1および第
2のレジスタ群に保持されたデータを並行して参照す
る。このため、データの読み出しを高速に行なうことが
でき、高速処理が可能となる。また、従来のように一時
保持レジスタを必要としない。このため、回路規模を小
さくすることができる。
る第1の種類のデータは、1ビットごとに参照されるデ
ータであり、べき乗剰余演算器は、さらに、第1の内部
バス、モンゴメリ乗算剰余演算実行手段およびべき乗剰
余演算実行手段に接続され、モンゴメリ乗算剰余演算実
行手段またはべき乗剰余演算実行手段から供給される信
号に基づいて定められるビットのデータを第1の内部バ
ス上より取得し、モンゴメリ乗算剰余演算実行手段また
はべき乗剰余演算実行手段に供給する1ビット選択回路
を含む。
を読み出すのではなく、第1の内部バス上に存在するデ
ータから1ビットごとにデータを読み出すことができる
ようになる。このため、第1のレジスタ群に複数のレジ
スタが含まれており、かつ1ビット選択回路がない状態
では、各レジスタごとに1ビットずつデータを取得する
ための回路を設けなければならないが、1ビット選択回
路を設けることにより、各レジスタごとに設けられてい
る1ビットのデータを取得するための回路を共通化する
ことができる。よって、回路規模の小さいべき乗剰余演
算器を提供することが可能になる。
算実行手段は、外部より供給されるモード信号に基づい
て、カウント回数を変更可能なカウンタを有する。
回数を変更することができる。このため、テスト時には
カウンタのカウント回数を減らすことにより、モンゴメ
リ乗算剰余演算実行手段のテスト時間を短縮することが
できる。
段は、外部より供給されるモード信号に基づいて、カウ
ント回数を変更可能なカウンタを有する。
回数を変更することができる。このため、テスト時には
カウンタのカウント回数を減らすことにより、べき乗剰
余演算実行手段のテスト時間を短縮することができる。
続された複数のフリップフロップを含み、モード信号に
応じて複数のフリップフロップの一部の動作を停止させ
る。
ることにより、カウント回数を変更することが可能にな
る。
て、本発明の実施の形態1に係るべき乗剰余演算器は、
外部バスとのインタフェースであるI/F(インタフェ
ース)回路101と、鍵eを保持するeレジスタ102
と、モンゴメリ変換をする乗数Yを保持するYレジスタ
103と、鍵Nを保持するNレジスタ104と、モンゴ
メリ変換の演算時に行なう2B+Nの値を保持するB2
Nレジスタ105と、平文Xを保持するXレジスタ10
6と、暗号化および復号化のための演算を行なう演算回
路107と、演算結果Pを保持するPレジスタ108
と、べき乗剰余演算実行時のステートマシンとしての役
割を果たすべき乗剰余制御回路109とを含む。
リ乗算剰余演算と剰余演算との実行時のステートマシン
としての役割を果たすモンゴメリ乗算剰余・剰余制御回
路110と、加算および減算の演算制御を行なう加算・
減算制御回路111と、各種モードを保持するモードレ
ジスタ112と、コマンドを保持するコマンドレジスタ
113と、ステータスを保持するステータスレジスタ1
14と、インタフェース回路101、eレジスタ102
およびYレジスタ103に接続され、各種レジスタ間で
データのやり取りを行なう内部バス115と、Nレジス
タ104、B2Nレジスタ105、Xレジスタ106、
演算回路107およびPレジスタ108に接続され、各
種レジスタと演算回路107間でデータのやり取りを行
なうための内部バス116と、内部バス115および1
16に接続され、内部バス115および116の間でデ
ータの受け渡しの制御を行なうバス分割回路117とを
含む。
演算を行なうにあたり、高速化を実現するためにモンゴ
メリ法による乗算剰余演算と剰余演算とを使用している
が、そのうち、式(12)の条件付モンゴメリ演算[if
ej==1 then Y=MR(X・Y)]の演算方法
について説明する。
ジスタ104から鍵Nが読み出され、内部バス116お
よび演算回路107を経由して、Pレジスタ108に保
持される。それと同時に、eレジスタ102から鍵eが
読み出され、内部バス115を経由してべき乗剰余制御
回路109にejが保持される。
が実行され、演算結果がB2Nレジスタ105に書込ま
れる。それと同時に、Yレジスタ103に保持された乗
数Yが読み出され内部バス115を経由してモンゴメリ
乗算剰余・剰余制御回路110にY0(乗数Yの0ビッ
ト目の値)が保持される。Y0を利用するのは、式(1
2)のMR(X・Y)を実現する式(19)〜(21)
のループにおいて、Yに相当するAについての[Amo
d2]が、Aの0ビット目、すなわちYの0ビット目の
値に相当するからである。
110に保持されたY0とP0(演算結果Pの0ビット
目の値)とに基づいて、Xレジスタ106、Nレジスタ
104およびB2Nレジスタ105に保持された値のい
ずれかが読込まれ、式(20)の演算が実行される。そ
れと同時に、Yレジスタ103に保持された乗数Yが読
込まれ、内部バス115を経由してモンゴメリ乗算剰余
・剰余制御回路110にY1が保持される。以下、同様
に式(19)〜(21)の演算が繰り返し実行される。
このとき、Yレジスタ103から読み出されるデータ
は、モンゴメリ演算P=MR(B・A)のAに相当す
る。このため、式(20)内の[Amod2]および式
(21)の[A=A/2]より、Yjが使用されること
となる。実際には、式(19)ではP0(N0´=1の
場合)が必要とされ、式(21)では1ビットのYjだ
けが必要とされる。
われる。 [演算制御用カウンタ]図1に示したべき乗剰余制御回
路109内には、カウンタが設けられている。このカウ
ンタは、式(12)および(13)を実行する際に変数
jを変化させるために用いられる。
(以下、/記号は反転を示す。)がD端子に接続されて
いるD(Delay)フリップフロップ201と、Dフ
リップフロップ201のQ端子がCLK(クロック)端
子に接続され、かつ/Q端子がD端子に接続されている
Dフリップフロップ202と、Dフリップフロップ20
2のQ端子がCLK端子に接続され、かつ/Q端子がD
端子に接続されているDフリップフロップ203と、D
フリップフロップ203のQ端子から出力される信号お
よびモード信号を入力として受けるNANDゲート20
4と、NANDゲート204の出力を入力として受ける
インバータ205とを含む。
出力がCLK端子に接続され、かつ/Q端子がD端子に
接続されているDフリップフロップ206と、Dフリッ
プフロップ206のQ端子から出力される信号およびモ
ード信号を入力として受けるNANDゲート207と、
NANDゲート207の出力を入力として受けるインバ
ータ208と、Dフリップフロップ201のQ端子、D
フリップフロップ202のQ端子、インバータ205の
出力およびインバータ208の出力を入力として受ける
NORゲート209とを含む。
力される信号、Dフリップフロップ202のQ端子より
出力される信号、インバータ205の出力信号およびイ
ンバータ208の出力信号をそれぞれ信号A、信号B、
信号Cおよび信号Dと定義する。また、NORゲート2
09の出力を信号ENDと定義する。
ミングチャートは、図3(A)に示すようになる。すな
わち、クロック信号が16回入力されると、信号END
がLowからHighに変化する。このため、式(1
2)および(13)のループでk=16としたときのモ
ンゴメリ乗算剰余演算が実現できる。
Cおよび信号Dが常にLowとなる。このため、各信号
のタイミングチャートは、図3(B)のようになり、ク
ロック信号が8回入力されると、信号ENDがLowか
らHighに変化する。このため、式(12)および
(13)のループでk=8としたときのモンゴメリ乗算
剰余演算が実現できる。
数を変化させることができる。また、上述したカウンタ
と同様のカウンタが、モンゴメリ乗算剰余・剰余制御回
路110内にも設けられている。これにより、式(1
9)〜(21)に示すループの回数もモード信号の値に
より変化させることができるようになる。
ジスタ103とeレジスタ102とが使用する内部バス
(内部バス115)と、その他のレジスタ(Nレジスタ
104、B2Nレジスタ105、Xレジスタ106)が
使用する内部バス(内部バス116)とを分離した。こ
のため、Yレジスタ103またはeレジスタ102と、
Nレジスタ104、B2Nレジスタ105またはXレジ
スタ106とから同時にデータを読み出すことができ
る。よって、モンゴメリ乗算剰余演算を高速に実行する
ことができる。
要としない。このため、回路規模を小さくすることがで
きる。
の回数を減らすことができる。このため、ループ処理の
回数を減らしたテストを行なうことが可能となり、テス
ト時間の短縮を図ることができる。
て、本発明の実施の形態2に係るべき乗剰余演算器は、
図1を参照して説明した実施の形態1に係るべき乗剰余
演算器のハードウェア構成において、内部バス115と
べき乗剰余制御回路109およびモンゴメリ乗算剰余・
剰余制御回路110との間に1ビット選択回路118を
設けたものである。その他の部品は、実施の形態1と同
様である。このため、その詳細な説明はここでは繰り返
さない。
ンゴメリ乗算剰余・剰余制御回路110内にはカウンタ
がそれぞれ設けられている。これらのカウンタは、実施
の形態1に示したものと同様である。このため、その詳
細な説明はここでは繰り返さない。
態におけるべき乗剰余演算の演算方法と実施の形態1に
おけるそれとの違いを以下に説明する。
する際には、eレジスタ102に保持された鍵eが内部
バス115上に読み出される。それとともに、べき乗剰
余制御回路109は、自身の有するカウンタの状態に従
い、鍵eの読み出すべきビットjを1ビット選択回路1
18に指示する。1ビット選択回路118は、内部バス
115上に読み出された鍵eのjビット目の値ejを読
込み、べき乗剰余制御回路109に与える。
際には、Yレジスタ103に保持された乗数Y(式(1
9)〜(21)では乗数A)は、式(21)により1ビ
ットずつ右シフトされる。このため、乗数Yのjビット
目の値Yj(Aj)は、式(20)におけるAmod2
に相当する。よって、式(19)〜(21)のループを
実行する際には、Yレジスタ103に保持された乗数Y
が内部バス115に読み出される。それとともに、モン
ゴメリ乗算剰余・剰余制御回路110は、自身の有する
カウンタの状態に従い、乗数Yの読み出すべきビットj
を1ビット選択回路118に指示する。1ビット選択回
路118は、内部バス115上に読み出された乗数Yの
jビット目の値Yjを読込み、モンゴメリ乗算剰余・剰
余制御回路110に与える。
と、内部バス115はeレジスタ102およびYレジス
タ103のみについて用いられる。このため、eレジス
タ102に保持された鍵eまたはYレジスタ103に保
持された乗数Yを内部バス115に読み出したままの状
態で、べき乗剰余制御回路109またはモンゴメリ乗算
剰余・剰余制御回路110がビットを指定する。する
と、1ビット選択回路118が対応するビットのデータ
を内部バス115より読み出し、べき乗剰余制御回路1
09またはモンゴメリ乗算剰余・剰余制御回路110に
供給することができるようになる。
はモンゴメリ乗算剰余・剰余制御回路110は、ビット
ごとにeレジスタ102またはYレジスタ103に保持
されたデータの読み出しを制御する必要がない。このた
め、べき剰余演算回路のハードウェア構成を簡略化で
き、回路規模を小さくすることが可能となる。
例示であって制限的なものではないと考えられるべきで
ある。本発明の範囲は上記した説明ではなくて特許請求
の範囲によって示され、特許請求の範囲と均等の意味お
よび範囲内でのすべての変更が含まれることが意図され
る。
速処理が可能なべき乗剰余演算器を提供することが可能
となる。
器のハードウェア構成を示すブロック図である。
る。
る。
器のハードウェア構成を示すブロック図である。
算器のハードウェア構成を示すブロック図である。
03 Yレジスタ、104 Nレジスタ、105 B2
Nレジスタ、106 Xレジスタ、107 演算回路、
108 Pレジスタ、109 べき乗剰余制御回路、1
10 モンゴメリ乗算剰余・剰余制御回路、111 加
算・減算制御回路、112 モードレジスタ、113
コマンドレジスタ、114 ステータスレジスタ、11
5,116 内部バス、117 バス分割回路、118
1ビット選択回路、119 一時保持レジスタ、20
1,202,203,206 Dフリップフロップ、2
04,207 NANDゲート、204,205,20
8 インバータ、209NORゲート。
Claims (5)
- 【請求項1】 第1の種類のデータを保持する第1のレ
ジスタ群と、 前記第1のレジスタ群に保持されたデータと並行して参
照可能な種類のデータを保持する第2のレジスタ群と、 前記第1のレジスタ群に接続された第1の内部バスと、 前記第2のレジスタ群に接続された第2の内部バスと、 前記第1および第2の内部バスに接続され、前記第1お
よび第2のレジスタ群に保持された値を並行して参照
し、モンゴメリ乗算剰余演算を実行するためのモンゴメ
リ乗算剰余演算実行手段と、 前記第1および第2の内部バス、ならびに前記モンゴメ
リ乗算剰余演算実行手段に接続され、前記第1および第
2のレジスタ群に保持された値を並行して参照し、前記
モンゴメリ乗算剰余演算実行手段との間でデータのやり
取りを行ない、べき乗剰余演算を実行するためのべき乗
剰余演算実行手段とを含む、べき乗剰余演算器。 - 【請求項2】 前記第1のレジスタ群に保持される第1
の種類のデータは、1ビットごとに参照されるデータで
あり、 さらに、前記第1の内部バス、前記モンゴメリ乗算剰余
演算実行手段およびべき乗剰余演算実行手段に接続さ
れ、前記モンゴメリ乗算剰余演算実行手段または前記べ
き乗剰余演算実行手段から供給される信号に基づいて定
められるビットのデータを前記第1の内部バス上より取
得し、前記モンゴメリ乗算剰余演算実行手段または前記
べき乗剰余演算実行手段に供給する1ビット選択回路を
含む、請求項1に記載のべき乗剰余演算器。 - 【請求項3】 前記モンゴメリ乗算剰余演算実行手段
は、外部より供給されるモード信号に基づいて、カウン
ト回数を変更可能なカウンタを有する、請求項1または
2に記載のべき乗剰余演算器。 - 【請求項4】 前記べき乗剰余演算実行手段は、外部よ
り供給されるモード信号に基づいて、カウント回数を変
更可能なカウンタを有する、請求項1〜3のいずれかに
記載のべき乗剰余演算器。 - 【請求項5】 前記カウンタは、直列に接続された複数
のフリップフロップを含み、前記モード信号に応じて前
記複数のフリップフロップの一部の動作を停止させる、
請求項3または4に記載のべき乗剰余演算器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001163719A JP2002358010A (ja) | 2001-05-31 | 2001-05-31 | べき乗剰余演算器 |
US10/096,883 US20030033340A1 (en) | 2001-05-31 | 2002-03-14 | Power-residue calculating unit concurrently referring to data for concurrent reference |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001163719A JP2002358010A (ja) | 2001-05-31 | 2001-05-31 | べき乗剰余演算器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002358010A true JP2002358010A (ja) | 2002-12-13 |
Family
ID=19006631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001163719A Pending JP2002358010A (ja) | 2001-05-31 | 2001-05-31 | べき乗剰余演算器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20030033340A1 (ja) |
JP (1) | JP2002358010A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007212701A (ja) * | 2006-02-09 | 2007-08-23 | Renesas Technology Corp | 剰余演算処理装置 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3732450B2 (ja) * | 2002-03-19 | 2006-01-05 | 沖電気工業株式会社 | 剰余演算器 |
US7187770B1 (en) * | 2002-07-16 | 2007-03-06 | Cisco Technology, Inc. | Method and apparatus for accelerating preliminary operations for cryptographic processing |
JP4360792B2 (ja) | 2002-09-30 | 2009-11-11 | 株式会社ルネサステクノロジ | べき乗剰余演算器 |
JP2004145010A (ja) * | 2002-10-24 | 2004-05-20 | Renesas Technology Corp | 暗号回路 |
JP3576155B2 (ja) * | 2002-11-11 | 2004-10-13 | 沖電気工業株式会社 | 乗算剰余演算器 |
EP1899803A2 (en) * | 2005-06-29 | 2008-03-19 | Koninklijke Philips Electronics N.V. | Arrangement for and method of protecting a data processing device against an attack or analysis |
CN101213513B (zh) * | 2005-06-29 | 2013-06-12 | 爱迪德艾恩德霍芬公司 | 保护数据处理装置免受密码攻击或分析的设备和方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000353077A (ja) * | 1999-04-07 | 2000-12-19 | Matsushita Electric Ind Co Ltd | 多倍長演算装置 |
JP2002229445A (ja) * | 2001-01-30 | 2002-08-14 | Mitsubishi Electric Corp | べき乗剰余演算器 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5513133A (en) * | 1992-11-30 | 1996-04-30 | Fortress U&T Ltd. | Compact microelectronic device for performing modular multiplication and exponentiation over large numbers |
JP3615622B2 (ja) * | 1996-06-28 | 2005-02-02 | 株式会社ルネサステクノロジ | マイクロコンピュータ |
US6088453A (en) * | 1997-01-27 | 2000-07-11 | Kabushiki Kaisha Toshiba | Scheme for computing Montgomery division and Montgomery inverse realizing fast implementation |
KR100308205B1 (ko) * | 1998-09-29 | 2001-11-30 | 윤종용 | 저전력소모카운터 |
US6691143B2 (en) * | 2000-05-11 | 2004-02-10 | Cyberguard Corporation | Accelerated montgomery multiplication using plural multipliers |
JP2002108691A (ja) * | 2000-09-29 | 2002-04-12 | Mitsubishi Electric Corp | 半導体記憶装置および半導体記憶装置の制御方法 |
-
2001
- 2001-05-31 JP JP2001163719A patent/JP2002358010A/ja active Pending
-
2002
- 2002-03-14 US US10/096,883 patent/US20030033340A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000353077A (ja) * | 1999-04-07 | 2000-12-19 | Matsushita Electric Ind Co Ltd | 多倍長演算装置 |
JP2002229445A (ja) * | 2001-01-30 | 2002-08-14 | Mitsubishi Electric Corp | べき乗剰余演算器 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007212701A (ja) * | 2006-02-09 | 2007-08-23 | Renesas Technology Corp | 剰余演算処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US20030033340A1 (en) | 2003-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Öztürk et al. | Low-power elliptic curve cryptography using scaled modular arithmetic | |
CN109039640B (zh) | 一种基于rsa密码算法的加解密硬件系统及方法 | |
US20110161390A1 (en) | Modular multiplication processing apparatus | |
US7024560B2 (en) | Power-residue calculating unit using Montgomery algorithm | |
Karakoyunlu et al. | Efficient and side-channel-aware implementations of elliptic curve cryptosystems over prime fields | |
JP4180024B2 (ja) | 乗算剰余演算器及び情報処理装置 | |
KR100508092B1 (ko) | 저전력 모듈로 곱셈을 수행하는 연산장치 | |
JP2002358010A (ja) | べき乗剰余演算器 | |
EP3352411B1 (en) | Method of generating cryptographic key pairs | |
Moon et al. | Fast VLSI arithmetic algorithms for high-security elliptic curve cryptographic applications | |
KR100478974B1 (ko) | 직렬 유한체 승산기 | |
US7319750B1 (en) | Digital circuit apparatus and method for accelerating preliminary operations for cryptographic processing | |
JP2006023647A (ja) | 乗算剰余演算器及び情報処理装置 | |
JP4360792B2 (ja) | べき乗剰余演算器 | |
CN115270155A (zh) | 一种获取大数拓展最大公约数的方法及硬件架构 | |
US20020114449A1 (en) | Modular multiplier and an encryption/decryption processor using the modular multiplier | |
EP1480119A1 (en) | Montgomery modular multiplier and method thereof | |
KR20100062565A (ko) | 모듈러스의 음의 역원을 구하는 방법 | |
KR100974624B1 (ko) | 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그장치 및 이를 기록한 기록매체 | |
JP2003216411A (ja) | 多倍長演算処理装置およびicデバイス | |
CN114513306B (zh) | 数据加密传输方法、系统 | |
Pinckney et al. | Public key cryptography | |
US7471789B2 (en) | Encryption circuit achieving higher operation speed | |
KR20000009759A (ko) | 모듈러 곱셈기 | |
Thomas | 16 Very-Large-Scale |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080402 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20100609 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101201 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101207 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110405 |