JP2002207589A - 演算回路および演算方法 - Google Patents
演算回路および演算方法Info
- Publication number
- JP2002207589A JP2002207589A JP2000386069A JP2000386069A JP2002207589A JP 2002207589 A JP2002207589 A JP 2002207589A JP 2000386069 A JP2000386069 A JP 2000386069A JP 2000386069 A JP2000386069 A JP 2000386069A JP 2002207589 A JP2002207589 A JP 2002207589A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- register
- port
- read
- input
- 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
Links
- 238000000034 method Methods 0.000 title claims description 35
- 230000015654 memory Effects 0.000 claims abstract description 207
- 238000012545 processing Methods 0.000 claims abstract description 54
- 238000004364 calculation method Methods 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 14
- AGJBKFAPBKOEGA-UHFFFAOYSA-M 2-methoxyethylmercury(1+);acetate Chemical compound COCC[Hg]OC(C)=O AGJBKFAPBKOEGA-UHFFFAOYSA-M 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 101100190537 Homo sapiens PNN gene Proteins 0.000 description 2
- 102100038374 Pinin Human genes 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 102100033007 Carbonic anhydrase 14 Human genes 0.000 description 1
- 101000867862 Homo sapiens Carbonic anhydrase 14 Proteins 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 101150080585 memb-1 gene Proteins 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/40—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using contact-making devices, e.g. electromagnetic relay
- G06F7/44—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Electromagnetism (AREA)
- Complex Calculations (AREA)
- Memory System (AREA)
- Advance Control (AREA)
Abstract
のボトルネックを2ポートやシングルポートの汎用メモ
リを使いながら解消する。 【解決手段】 2つのメモリ7、8を設け、演算に必要
な変数のうちメモリから読み出す必要のある変数につい
ては異なるメモリに記録する。そしてパイプライン処理
の同一の読出しステージでメモリ7からレジスタ5に変
数を読出し、メモリ8からその他のレジスタに他の変数
を読み出す。
Description
算方法に関し、特に公開鍵暗号化方式等に好適な乗剰余
計算の高速化に関するものである。
保あるいは認証のために公開鍵暗号(非対称暗号)が用
いられる。公開鍵暗号は公開鍵と秘密鍵の一対の鍵を用
いて情報を伝送する暗号方式である。送信者が受信者の
公開鍵で平文を暗号化し、暗号文を受取った受信者は受
信者しか知りえない秘密鍵を用いて暗号文を復号する。
このような公開鍵暗号では共通鍵暗号(対称鍵暗号)の
ように1つの共通鍵を共有する必要がなく、また、公開
鍵暗号では公開鍵を広く公開することができるので不特
定多数の者との通信の秘密が確保できる。さらに、公開
鍵暗号を電子認証あるいは電子署名に用いて面識のない
他人との信頼関係を確立することができる。インターネ
ット等通信技術が支えるネットワーク社会あるいはその
中で営まれる商取引等において必須の技術と位置付けら
れる。
いる。RSAは非常に大きな整数の離散対数問題あるい
は素因数分解の困難性にその安全性の基礎をおく。たと
えば、公開鍵(e,n)を用いて、平文Mを C=Me(mod n) の関係式から暗号文Cを生成する(なお、Mは整数n未
満になるようブロック化されている)。この暗号文Cの
解読には離散対数計算(a、y、pからy=ax(mo
d p)となるxを見出す)が必要となり Ο(2SQRT(log n)) の計算量を必要とする(SQRTは二乗根を与える関数
である)。整数nが少なくとも512ビット長以上、好
ましくは1024ビット長以上であれば実用的な計算時
間での解読は困難になる。
n=pq、(ただしp、qは十分大きな素数) の関係にある秘密鍵(d,n)を用いれば、 M=Cd(mod n) の関係式を用いて平文Mを簡単に求めることができる
(ただし、lcm(a,b)はaとbの最小公倍数を与
える)。
算を繰り返せば、高々dのビット長の2倍の回数の乗剰
余演算で計算できる。
ても、たとえばDES(dataencryption
standard)等の対称暗号に比較すれば計算量
が多くなる。このためできるだけ効率的なアルゴリズム
とその実装が求められる。
と乗算剰余演算を高速化する手法に、たとえばPeter L.
Montgomery著、「Modular Multiplication Without Tr
ialDivision」、Mathematics of computations, Vol.4
4, No.170 April 1985, pp 519-522、に記載されている
モンゴメリ乗算手法がある。モンゴメリ乗算は乗剰余算
を、加算、乗算、シフト演算の繰り返しにより、減算を
繰り返す除算よりも少ない計算量で実現する手法であ
る。以下にモンゴメリ乗算の計算主要部 P≡XYR−1(mod n) を擬似コード1.xに示す。なお、上式において、 R=(2r)m N≡−n−1(mod 2r) とする。また、擬似コードにおいて各行の左側には行番
号を付す(以下同様)。
り返し演算は次のようになる。まず、Xをm個のブロッ
クxiに区切り(X=(xm−1,xm−2,…,
x1,x0))、Yとの部分積加算(xiY)をm回繰
り返す(行番号1.2〜1.5)。このとき、途中結果
Pの最下位ブロックp0が0となるようなnの倍数「t
・n」を毎回加算する(行番号1.4)。tは行番号
1.3において定義されている。さらに、Pをrビット
だけ右にシフト、つまり「2−r」を乗ずる(行番号
1.4)。なお、rビットのシフト演算は、m回のシフ
ト演算により2−rm=R−1となってR−1の乗算を
することになる。
を32ビット乗算器によって実行すると仮定すると、m
=512/32=16回のループを繰り返すことにな
る。上記擬似コードでは簡単のためにxi・Yや、t・
nのように32ビット×512ビットのように示した
が、実際は512ビットのYとnも16個の32ビット
ブロックに分割して計算を実行する。つまり、Pの部分
積加算は演算においてm=16の二重ループとなる。以
下に二重ループによってモンゴメリ乗算を実行する手順
の一例を擬似コード2.xに示す。
ている。つまり、 X=(xm−1,xm−2,…,x1,x0) Y=(ym−1,ym−2,…,y1,y0) n=(nm−1,nm−2,…,n1,n0) 乗算器が一つの場合を仮定すると、途中結果tmpの計
算に二回の積和演算が必要となる。変数pj,xi,y
j,t,njは全てrビット長の数、変数cは下位ブロ
ックからのキャリーである。上記擬似コード2.xの例
では、一回のjループで2rビットの数xi・yjとt
・nj、そしてr+1ビットの数pjとcの加算を行い
(行番号2.6〜2.11)、積和演算後の途中結果t
mpは2r+1ビット長を持つ。tmpの下位rビット
は変数pjに,上位r+1ビットは変数cにストアされ
る(行番号2.9、2.10)。
の別のループで行うことも可能である。この例を擬似コ
ード3.xに示す。
数tmpは2rビット長となる。
ゴメリ乗算の二重ループを抜けた後の結果Pは2n未満
となるが、n以下である保証はないので必要に応じて、
「P=P−n」とする(行番号2.14,3.18)。
て、基本的にpjは、Pをm個に分割したrビットレジ
スタで正の値をとる。しかし、擬似コード2.xの例で
は、行番号2.12の「pm−1=c」において、cは
最大r+1ビットとなる。この時、演算ビット数がrビ
ットで割り切れる場合には1ビットあふれることにな
る。よって、ループ回数をm+1にするか、ループ回数
をm回に押さえるための最上位ビットの特別な処理が必
要となる。本明細書では簡単のため上記例の両者ともj
ループは同じループ回数mであるものとする。なお両例
の行番号2.14,3.18の比較演算「if (P=
>n)」において、符号ビットの考慮などを行う必要が
ある。
x、3.xの例により、モンゴメリ乗算の計算を実行す
ることができる。しかし、本発明者らがその演算サイク
ルを詳細に検討したところ、演算のパフォーマンスは変
数のレジスタ割り付けやメモリ構成に大きく影響される
ことが判明した。以下検討結果について説明する。
の変数Nはiループ(擬似コード2.2〜2.13)内
で値が変わらずに繰り返し使用される。また、tとxi
はjループ(擬似コード2.6〜2.11)内で値が変
らずに繰り返し使用される。このため、変数N,t,x
iについては、一旦計算あるいはメモリから読み出した
後は各ループを抜けるまでレジスタに保持して繰り返し
使用することができる。またjループ内で使用する途中
変数tmpとcはレジスタに直接割り付けられる。その
他の変数は,読み出しと書き込みが独立したアドレスに
対して実行できる一般的な2ポートメモリに記録する。
またメモリ読み出し→演算→書き込みの一連の処理はパ
イプライン処理されるものとする。そうすると、演算と
書き込みは基本的に1サイクルで終了するのでメモリ読
み出しがパフォーマンスのボトルネックになる。以下、
メモリ読み出しのサイクル数を検討する。
いては、行番号2.7の演算 tmp=pj+xi・yj+c などで最初にpjを読み出すときにその値をリセットす
ればよい。このためサイクル数0である。
(p0、xi、y0)をメモリから読み出すのに3サイ
クルを要する。なお、tについては前記した通り行番号
2.3の演算結果が直接レジスタに割り付けられるので
読出しの必要はない。行番号2.5の「c=0」は、
「P=0」の処理と同様0サイクルである。
iは行番号2.3のtの計算の際に読み出されているの
でここでの読出しの必要はない。また、cについては前
記の通り直接レジスタに割り付けられるので読出しの必
要はない。
ついては前記した通り直接レジスタに割り付けられるの
で読出しの必要はない。
nj」を一旦レジスタtmpで受けずに直接pj−1と
cに書き込めばよい。よってどちらも0サイクルとな
る。
演算 pm−1=c はパイプライン処理により0サイクルとなる。
は、 3+m(2+1)=3m+3 となる。これにiループのmを乗じて m(3m+3)=3m2+3m となる。しかし、先に述べたようにi=0のときpj=
0なのでpjを読み出す必要はなく、入力を0リセット
すればよい。よってiループ全体ではこの分のmを減じ
て 3m2+3m−m=3m2+2m となる。行番号2.14の比較動作 if (P => n) では減算「P−n」によって大小を判定するのでこれに
2mサイクル、最後にパイプラインを抜けるのに2サイ
クルを要する。結局最終的なサイクル数は 3m2+4m+2 となる。これはパイプライン処理が乱れなく実行できる
場合であり、演算ビット数が乗算器のビット数に対して
あまり大きくないとき、つまりブロック数mが少ないと
きは、書き込もうとした値を直ぐに読み出す必要がある
ためメモリアクセス待ちのオーバーヘッドが加わること
になる。ただしブロック数が4〜5あれば実用上このよ
うな問題は生じない。また逆にブロック数が2〜3とい
った小さな数に対してモンゴメリ法を適用する意味はあ
まりないので、上記事情は考慮する必要がない。つま
り、二重ループによるm2項の係数「3」が大きく変わ
ることはない。また、実装形態によってはjループ前後
でパイプライン動作が乱れることがあり、前記最終的な
サイクル数が実際には若干異なることがある。しかし、
この場合であっても二重ループによるm2項の係数
「3」は変わらず、最終的なサイクル数が前記値と大き
く異なることはない。
に検討すれば、以下の通りである。行番号3.1の「P
=0」の処理は、行番号3.5の演算 tmp=pj+xi・yj+c で最初にpjを読み出すときにその値を0リセットすれ
ばよいのでサイクル数は0である。行番号3.1の「c
=0」の処理についても、擬似コード2.xと同様0サ
イクルである。
入って、行番号3.5の演算 tmp=pj+xi・yj+c では、pjとyjの読み出しで2サイクルを必要とし、
第1jループの最初にx iを読み出す必要がある。行番
号3.6の演算 pj=tmp(mod 2r) c=tmp/2r は擬似コード2.xの場合と同様にtmpを直接pj、
cに書き込むので0サイクルとなる。よって、1番目の
jループのサイクル数は、2m+1となる。
演算 pm=c; c=0; はパイプライン処理により0サイクルとなり、行番号
3.10の演算 t=p0・N(mod 2r) では、p0とNの読み出しに2サイクルを要する。
15)に入って、行番号3.12の演算 tmp=pj+t・nj+c では、pjとnjの読み出しで2サイクルを要する。な
お、tとcはレジスタに直接書込まれるので読出しの必
要はない。それに続く行番号3.13の演算 pj−1=tmp(mod 2r) c=tmp/2r は、擬似コード2.xの場合と同様0サイクルとなる。
従って、2番目のjループのサイクル数は2mとなる。
そして2番目のjループを抜けた後の行番号3.16の
演算 pm−1=pm+c では、pmの読出しに1サイクル必要である。
読み出す必要はなく、入力を0リセットすればよいの
で、iループ全体ではこの分のmを減じて 4m2+4m−m=4m2+3m となる。行番号3.18の比較動作 if (P=>n) では減算「P−n」によって大小を判定するのでこれに
2mサイクル、最後にパイプラインを抜けるのに2サイ
クルを要する。結局最終的なサイクル数は 4m2+5m+2 となる。擬似コード3.xの例でm2サイクル多いの
は、tmpへの部分積加算を一つのjループで行わない
ため、行番号3.4〜3.8のループでメモリに書き込
んだpjを行番号3.11から3.15のループで読み
出すためである。サイクル数こそ多いものの桁上がりが
1ビット少なくrビットブロックにおさまり、レジスタ
に保持すべき変数も少ないという擬似コード2.xの例
と比較したメリットがある。このため、制御と回路規模
の点では3.xの例の方が有利である。図7に擬似コー
ド3.xの場合のモンゴメリ乗算回路データパス部の概
略を、また図8にこの回路におけるブロック数m=4の
最終ループ処理近辺のタイミングチャートを示す。な
お、パイプライン処理の乱れ等により、前記最終的な読
出しサイクル数が実際には若干変化することがあるのは
擬似コード2.xの場合と同様である。
ンゴメリ乗算の高速化を考えるとするなら、二重ループ
の内側で乗算を2回行うので、単純に乗算器を2つ実装
すれば2倍の速度が得られるように思える。しかし、メ
モリ読み出しがボトルネックとなるのは前記した通りで
ある。このボトルネック解消の方法として、独立な読み
出しを行える読出しポートを2つ、書き込みポートを1
つ持つ3ポートメモリを使用することが考えられる。し
かしながら3ポートメモリにより高速化が図れるもの
の、3ポートメモリは一般的ではなく、使用できるテク
ノロジーが限定される。すなわち、回路の汎用性が損な
われてしまう。このため半導体設計における回路設計の
標準化(IPコア化)の障害になる可能性がある。さら
に、3ポートメモリは素子面積が大きくなり小型化の要
請にそぐわない。
けるメモリアクセスのボトルネックを2ポートやシング
ルポートの汎用メモリを使いながら解消することにあ
る。これにより高いパフォーマンスと素子の小型化を実
現し、暗号生成回路を低いコストで提供することが可能
になる。
ば以下の通りである。すなわち、本発明の演算回路およ
び演算方法では、1サイクルで実行する演算に必要な変
数のうちメモリから読み出す必要のある変数については
異なるメモリに記録し、1つの読出しステージでこれら
変数を同時に読み出すことを可能にしたものである。こ
れにより、読出しによる待ち時間を最小にして計算のパ
フォーマンスを向上することができる。しかも、変数を
記録するメモリには3ポートメモリ等複雑な回路、大面
積を要する回路を用いることなく、2ポートやシングル
ポートの汎用的なメモリを用いてIPコア化をし易く
し、また素子面積を最小限にすることを可能にする。
る。すなわち、本発明の演算回路は、複数のレジスタ
と、前記複数のレジスタに入力される値を入力とする演
算器と、複数のメモリとを有し、前記複数のメモリから
前記複数のレジスタへの複数の変数の読出しを、前記演
算器のパイプライン処理における同一の読出しステージ
で行うものである。また、本発明の演算方法は、複数の
入力レジスタを有する演算器と複数のメモリとを備えた
演算回路を用いた演算方法であって、前記入力レジスタ
に入力されている値に基づいて演算を行うステップと、
前記演算の結果を前記入力レジスタまたは前記メモリに
書き込むステップと、前記複数のメモリから前記複数の
入力レジスタに複数の変数を同一のパイプラインステー
ジで読み出すステップと、を含む。
レジスタ、第3レジスタ、第4レジスタの各々に入力さ
れたrビット長を有するx1、x2、x3、x4の各入
力値に基づいて、2rまたは2r+1ビット長を有する
x1+x2・x3+x4の演算結果Qを与える積和演算
器とすることができる。この場合、前記複数のメモリに
は、第1メモリおよび第2メモリを含み、前記パイプラ
イン処理の演算ステージに続く演算結果の書き込みステ
ージにおいて、前記演算結果Qの下位rビットQLが前
記第1メモリに記録され、前記演算結果Qの前記QLを
除く上位ビットQHが前記第4レジスタに入力され、前
記書き込みステージに続く前記レジスタへの変数の読出
しステージにおいて、前記第1メモリから前記第1レジ
スタに変数x1が、前記第2メモリから前記第3レジス
タに変数x3が、同一の読出しステージで読み出される
ものとすることができる。また、前記第1および第2メ
モリを、データの書き込みポートと読出しポートとを各
々1つ有する2ポートメモリとすること、あるいは、前
記第1メモリをデータの書き込みポートと読出しポート
とを各々1つ有する2ポートメモリ、前記第2メモリを
データの書き込みおよび読出しが1つのポートで行われ
る1ポートメモリとすることができる。
レジスタ、第3レジスタ、第4レジスタ、第5レジス
タ、第6レジスタの各々に入力されたrビット長を有す
るx1、x2、x3、x4、x5、x6の各入力値に基
づいて、2rまたは2r+1ビット長を有するx1+x
2・x3+x4・x5+x6の演算結果Qを与える積和演
算器とすることができる。この場合、前記複数のメモリ
には、第1メモリ、第2メモリおよび第3メモリを含
み、前記パイプライン処理の演算ステージに続く演算結
果の書き込みステージにおいて、前記演算結果Qの下位
rビットQLが前記第1メモリに記録され、前記演算結
果Qの前記QLを除く上位ビットQHが前記第6レジス
タに入力され、前記書き込みステージに続く前記レジス
タへの変数の読出しステージにおいて、前記第1メモリ
から前記第1レジスタに変数x1が、前記第2メモリか
ら前記第3レジスタに変数x3が、前記第3メモリから
前記第5レジスタに変数x5が、同一の読出しステージ
で読み出されるものとすることができる。また。前記第
1メモリをデータの書き込みポートと読出しポートとを
各々1つ有する2ポートメモリとし、前記第2および第
3メモリを、データの書き込みおよび読出しが1つのポ
ートで行われる1ポートメモリとすることができる。
に基づいて詳細に説明する。ただし、本発明は多くの異
なる態様で実施することが可能であり、本実施の形態の
記載内容に限定して解釈すべきではない。なお、実施の
形態の全体を通して同じ要素には同じ番号を付するもの
とする。
の形態であるモンゴメリ乗算回路の一例をそのデータパ
ス部について示したブロック図である。本実施の形態の
モンゴメリ乗算回路は積和演算回路1と、入力レジスタ
2〜5と、マルチプレクサ6と、2つのメモリ7(メモ
リA)およびメモリ8(メモリB)とを有する。
4の入力値(rビット長)の積に、レジスタ2とレジス
タ5の入力値(rビット長)を加算して2rビット長の
出力tmpを与える。すなわち、加算入力pj,cと積
算入力yj,xiとから出力tmp=pj+yj・xi
+cを得る。積和演算回路1は、たとえば公知の全加算
器FAと半加算器HAとを用いて構成できる。なお、図
1においてxi(0)のように示しているのは、変数xi
の括弧内の数字に相当するビットを抜き出した値に対応
する。
ら値が読み出されて入力され、あるいは積和演算回路1
からの出力が直接入力される。マルチプレクサ6は3つ
の入力に対し1つの出力を与えるスイッチである。
すなわちデータの書き込みと読出しを各々独立した1つ
のポートから行えるメモリである。メモリ7(メモリ
A)には二重ループ処理中の途中変数P(pj)が記録
され、メモリ8(メモリB)には、その他の変数X(x
i),Y(yj),n(nj),Nと最終結果P
(pj)が記録される。メモリ7,8は何れも2ポート
メモリであり、素子のIPコア化の障害、素子面積の増
大の問題を生じない。
出し、演算、書き込みが一連のパイプラインとして処理
される。すなわち、メモリからレジスタへのデータの読
出しステージと、レジスタに入力された値に基づく演算
ステージと、演算結果をレジスタまたはメモリに書き込
む書き込みステージとが並列に処理される。
3.xの処理を実行した時の処理のタイミングを示した
タイミングチャートである。図2では、m=4の場合の
処理の最終ループ近辺を示している。なお前記および以
下のタイミングチャートにおいて一連のパイプライン処
理(データの読出し、演算、結果の書き込み)を同じ背
景色で示すようにグレーまたは白に濃淡分けてして示し
ている。また、チャートの左端には、読出し先のメモリ
(MemA(read)、MemB(read))、レジスタ(pj(レジス
タ5)、yj,nj,N(レジスタ4)、c(レジスタ
2)、xi,t(レジスタ3))、書込み先のメモリ
(MemA(write)、MemB(write))を指標として示してい
る。チャートの各行には、読出しステージにおいて各メ
モリから読み出される値、演算ステージにおけるレジス
タ内の値、書込みステージにおけるメモリ書込まれる値
が記入されている。
3.4〜3.8)における処理、たとえば図2のi=3
ループ中の最初のj=0〜3の処理では、まず、j=0
のループで、メモリ7(MemA)からレジスタ5(p
j)にp0を、メモリ8(MemB)からレジスタ4
(yj,nj,N)にy0を読み出す(読出しステー
ジ)。なおこの読出しステージと同時に前サイクルの演
算ステージ(行番号3.16の計算)および前々サイク
ルの書込みステージ(メモリ7(MemA)へのp 2の
書込み、cレジスタへの上位ビットtmpHの書込み)
が行われている。
(MemA)からレジスタ5(pj)にp1を、メモリ
8(MemB)からレジスタ4(yj,nj,N)にy
1を読み出すと同時に先に読み込まれたp0、y0とレ
ジスタ2(c)に入力されている前ステップの演算結果
(tmpH)およびレジスタ3(xi,t)に入力され
ているx3に基づいて行番号3.5の演算を実行する
(演算ステージ)。なお、この時前サイクルの書込みス
テージ(メモリ7(MemA)へのp3の書込み、cレ
ジスタ(レジスタ2)への上位ビットtmpHの書込
み)が行われている。
(MemA)からレジスタ5(pj)にp2を、メモリ
8(MemB)からレジスタ4(yj,nj,N)にy
2を読み出すと同時に前サイクルでレジスタに読み出さ
れた値に基づいて演算を実行し、先の演算結果(変数p
0、x3、y0、cに基づく演算結果)の上位ビットt
mpHおよび下位ビットp0を各々cレジスタとメモリ
7(MemA)に書き込む(書込みステージ)。このよ
うにして、p0、y0の入力以降結果が記録されるまで
の一連のパイプライン処理が行われる。その他のpj、
yjについても同様である。
サイクルに1サイクルの空きを設け、j=3の演算ステ
ージの後にレジスタcの内容をp4としてメモリ7に記
録する。
では、メモリ7からp0を、メモリ8からNを同一の読
出しステージで各々レジスタ3およびレジスタ4に読出
し、演算の結果を次の書込みステージでレジスタ4に変
数tとして書き込む。
ループの処理では、第1jループの場合と同様にメモリ
7からpjが、メモリ8からnjが同一読出しステージ
で読み出され、先に入力された変数t、cを用いて行番
号3.12の演算を行う。その後、演算結果の下位ビッ
トはpj−1としてメモリ7に記録され(行番号3.1
3)、上位ビットはcレジスタに記録される(行番号
3.14)。なお、この第2jループのj=0における
処理ではcは0リセットされる。また、j=0では演算
結果の下位ビットは記録されない。
p4がレジスタ5(pj)読み出され、cレジスタの値
との和をとってp3としてメモリ7に記録される。ただ
し、最後のiループのメモリへの書込み処理では、pj
はメモリ7だけでなくメモリ8にも記録する。
リ7からpjとnjを各々レジスタに読出し、比較演算
を行う。つまり減算「P=P−n」の結果はメモリ8
(MemB)の前回の結果Pを上書きしない場所に保存
する。メモリ8(MemB)は最後のjループを抜けた
時のPと、それからnを減じたP−nを保持することに
なるが、P−nが正であればP−nを、P−nが負であ
ればPを最終結果とする。最後のjループを抜けた時に
メモリ7(MemA)にもPを書き込むのは単にP−n
の計算でメモリ8(MemB)に保持されているnと同
時に読み出すためである。
算処理を終了する。上記演算処理では、メモリからの変
数の読出しを同一の読出しステージで行う。このように
同一の読出しステージで変数の読出しが行えるのは、メ
モリを2つ設け、同時に読み出す可能性のある変数を相
違するメモリに記録できるようにしたためである。これ
により、従来の方式に比較してメモリ読出しの待ち時間
を短縮して、処理のパフォーマンスを向上できる。
数を検討すれば、以下の通りである。第1jループの処
理でm、行番号3.9,3.10の処理で2、第2jル
ープの処理でm、行番号3.16の処理で1、よってi
ループ内の処理に必要なサイクル数は2m+3となる。
これにiループのm回を乗じて2m2+3m。なおi=
0のときにpjを読み出す必要はないがそのサイクルで
yjを読み出す必要があるのでmを減じることはない。
行番号3.18の比較動作にmサイクル、パイプライン
を抜けるのに2サイクルを要する。結局最終的なサイク
ル数は 2m2+4m+2 となる。従来方式において4m2+5m+2の読出しサ
イクルを必要としたことと比較すれば、約半分のサイク
ル数に減少する。
xの場合を説明したが、擬似コード2.xのようにxi
・yjとt・njを一つのループで加算することも可能
である。擬似コード2.xの場合は、擬似コード3.x
の場合に比べ変数pjの読み出しの待ちサイクルが半分
と少ないため、全体のサイクル数が少ないというメリッ
トがあったが、前記実施の形態のようにメモリを2つ設
けてこれを使い分ける場合、両者に違いはない。これは
図2からもわかるように、本実施の形態ではp jとyj
またはpjとnjの読み出しを別のメモリから同時に行
え、余計な待ちが生じないためである。本実施の形態で
は、擬似コード2.xの場合であっても、従来方式のサ
イクル数、3m2+4m+2と比較して、そのおよそ2
/3になる。pm−1に余計な桁上がりが生じてr+1
ビットになることもないので、例外処理が不要であり、
回路構成が簡単になるメリットもある。
施の形態であるモンゴメリ乗算回路の一例をそのデータ
パス部について示したブロック図である。本実施の形態
の演算回路はメモリ8(メモリB)が1ポートメモリ、
つまりデータの読出しと書込みの双方を1つのポートで
行うメモリとすることを除き、実施の形態1と同様であ
る。このように本実施の形態ではメモリ8を1ポートメ
モリとすることにより、メモリサイズを小さくして回路
の小型化を図ることが可能になる。
3.xの処理を実行した時の処理のタイミングを示した
タイミングチャートである。図4では、m=4の場合の
処理の最終ループ近辺を示している。図示するようにi
ループが終了するまでの処理は実施の形態1と同様であ
る。P=P−nの処理において、本実施の形態ではメモ
リ8に1ポートメモリを用いているので最終的な計算結
果であるpjの書込みをメモリ8に行わず、メモリ7に
行う。そして、最後にメモリ7(MemA)からメモリ
8(MemB)にpjの転送を行う。すなわち、最終結
果Pの補正演算は、P≧nならばP−nを最終結果とす
るものであるが、P≧nかどうかは減算を一回実行する
まで判定できない。そのため実施の形態1ではPとP−
nの双方をメモリ8(MemB)に書き込んで、減算結
果の符合を見ていずれか一方を選択するようにした。本
実施の形態ではPとP−nをメモリ7(MemA)にだ
け書き込み、減算結果に応じてPかP−nのいずれか一
方をメモリ8(MemB)に書き込むようにする。この
ようにすれば、m+1サイクル増加するだけのペナルテ
ィーでメモリ8(MemB)をシングルポートメモリに
することができる。これによりメモリの小型化を図るこ
とが可能になる。なお、本実施の形態の場合のサイクル
数は 2m2+5m+3 となる。これに対して、従来のよう1つのシングルポー
トメモリで擬似コード2.xを処理した場合、 4m2+5m+2 擬似コード3.xを処理した場合、 6m2+7m+2 のサイクル数が必要になる。本発明の優位性がより顕著
となる。
他の実施の形態であるモンゴメリ乗算回路の一例をその
データパス部について示したブロック図である。本実施
の形態のモンゴメリ乗算回路は積和演算回路9と、入力
レジスタ10〜15と、3つのメモリ16(メモリ
A)、メモリ17(メモリB1)およびメモリ18(メ
モリB2)とを有する。
スタ)とレジスタ12(nj,Nレジスタ)の入力値
(rビット長)の積と、レジスタ13(xiレジスタ)
とレジスタ14(yjレジスタ)の入力値(rビット
長)の積と、レジスタ10(cレジスタ)の入力値(r
+1ビット長)と、レジスタ15(pjレジスタ)の入
力値(rビット長)を加算した2r+1ビット長の出力
tmpを与える。すなわち、積和演算回路9は2つの乗
算器を有し、加算入力pj,cと積算入力yj,x
iと、積算入力t,njとから出力tmp=pj+yj
・xi+t・nj+cを得る。
ある。また、メモリ16(MemA)は汎用的な2ポー
トメモリであり、メモリ17,18(MemB1,B
2)はシングルポートメモリである。これら汎用的なメ
モリを用いるため、素子のIPコア化の障害が生じず、
また、メモリ数の増加をシングルポートメモリを採用す
ることによる素子面積の低減で補うことができる。
2.xの処理を実行した時の処理のタイミングを示した
タイミングチャートである。図5では、m=4の場合の
処理の最終ループ近辺を示している。
ード2.3,2.4)を行う。メモリ16からp0を読
出し、メモリ17からx3を読出し、メモリ18からy
0を読み出す。これら読出しは1つの読出しステージで
行われる。これら読み出した変数を用いて行番号2.3
の演算を行い、演算結果の下位ビットtmpLをtレジ
スタに入力する。前記演算と並行してメモリ17からN
を読出し、前記tとNを用いて行番号2.4の演算を行
う。演算結果の下位ビットtmpLがtレジスタに入力
され、本ループ内を通じてこのtの値が用いられる。な
お、先に読み出したx3も本ループ内を通じて用いられ
る。
各々メモリ16,17,18からp jレジスタ、nj,
Nレジスタ、yjレジスタに同一サイクル内で読み込ま
れる。その後、c、t、x3の値を用いて演算が行わ
れ、演算結果の下位ビットはp j−1としてメモリ16
に、上位ビットはcレジスタに書込まれる(行番号2.
9,2.10)。なお、このjループのj=0における
処理ではcは0リセットされる。また、j=0では演算
結果の下位ビットは記録されない。
値がpmとしてメモリ16に記録される。その後のP=
P−n、MemA→MemBの処理は実施の形態2と同
様である。
け、さらにメモリを3つ設けたので、3変数を同時に読
み出すことが可能になり、2つの乗算器を最大限に活用
するデータの読出しを行うことが可能になる。
の通りである。iループ内のtの計算で2サイクル、j
ループでmサイクル、擬似コード2.12の処理で1サ
イクル、合計m+3サイクルがiループ内の処理で必要
である。iループのm回を乗じてm2+3mとなる。な
おi=0のときにpjを読み出す必要はないがそのサイ
クルでxi,yjを読み出す必要があるのでmを減じる
ことはない。行番号2.14の比較動作とメモリ間転送
に2mサイクル、パイプラインを抜けるのに2サイクル
を要する。結局最終的なサイクル数はm2+5m+2と
なる。従来方式はもとより、実施の形態1,2と比較し
ても大幅にサイクル数が低減される。特にmの値が大き
くなるとm2項が効いてくるので、その効果がより顕著
になる。本実施の形態を用いることにより2乗算器の場
合のメモリアクセスのボトルネックを解消でき、サイク
ル数を大幅に改善することが可能になる。
明の実施の形態に基づき具体的に説明したが、本発明は
前記実施の形態に限定されるものではなく、その要旨を
逸脱しない範囲で種々変更可能であることは言うまでも
ない。たとえば、前記実施の形態では、メモリとしてシ
ングルポートまたは2ポートのメモリを例示したが、3
ポートメモリにも適用できる。
ものによって得られる効果は、以下の通りである。すな
わち、モンゴメリ乗算回路におけるメモリアクセスのボ
トルネックを2ポートやシングルポートの汎用メモリを
使いながら解消することができる。これにより、高いパ
フォーマンスと素子の小型化を実現し、暗号生成回路を
低いコストで提供できる。
路の一例をそのデータパス部について示したブロック図
である。
実行した時の処理のタイミングを示したタイミングチャ
ートである。
回路の一例をそのデータパス部について示したブロック
図である。
実行した時の処理のタイミングを示したタイミングチャ
ートである。
リ乗算回路の一例をそのデータパス部について示したブ
ロック図である。
実行した時の処理のタイミングを示したタイミングチャ
ートである。
ンゴメリ乗算回路データパス部の概略を示すブロック図
である。
理近辺のタイミングチャートである。
スタ、6…マルチプレクサ、7,8,16〜18…メモ
リ。
Claims (16)
- 【請求項1】 複数のレジスタと、前記複数のレジスタ
に入力される値を入力とする演算器と、複数のメモリ
と、を含み、 前記複数のメモリから前記複数のレジスタへの複数の変
数の読出しを、前記演算器のパイプライン処理における
同一の読出しステージで行う演算回路。 - 【請求項2】 前記演算器は、第1レジスタ、第2レジ
スタ、第3レジスタ、第4レジスタの各々に入力された
rビット長を有するx1、x2、x3、x4の各入力値
に基づいて、2rまたは2r+1ビット長を有するx1
+x2・x3+x4の演算結果Qを与える積和演算器で
ある請求項1記載の演算回路。 - 【請求項3】 前記複数のメモリには、第1メモリおよ
び第2メモリを含み、 前記パイプライン処理の演算ステージに続く演算結果の
書き込みステージにおいて、前記演算結果Qの下位rビ
ットQLが前記第1メモリに記録され、前記演算結果Q
の前記QLを除く上位ビットQHが前記第4レジスタに
入力され、 前記書き込みステージに続く前記レジスタへの変数の読
出しステージにおいて、前記第1メモリから前記第1レ
ジスタに変数x1が、前記第2メモリから前記第3レジ
スタに変数x3が、同一の読出しステージで読み出され
る請求項2記載の演算回路。 - 【請求項4】 前記第1および第2メモリは、データの
書き込みポートと読出しポートとを各々1つ有する2ポ
ートメモリである請求項3記載の演算回路。 - 【請求項5】 前記第1メモリはデータの書き込みポー
トと読出しポートとを各々1つ有する2ポートメモリで
あり、前記第2メモリはデータの書き込みおよび読出し
が1つのポートで行われる1ポートメモリである請求項
3記載の演算回路。 - 【請求項6】 前記演算器は、第1レジスタ、第2レジ
スタ、第3レジスタ、第4レジスタ、第5レジスタ、第
6レジスタの各々に入力されたrビット長を有する
x1、x2、x3、x4、x5、x6の各入力値に基づ
いて、2rまたは2r+1ビット長を有するx1+x2
・x3+x4・x5+x6の演算結果Qを与える積和演算
器である請求項1記載の演算回路。 - 【請求項7】 前記複数のメモリには、第1メモリ、第
2メモリおよび第3メモリを含み、 前記パイプライン処理の演算ステージに続く演算結果の
書き込みステージにおいて、前記演算結果Qの下位rビ
ットQLが前記第1メモリに記録され、前記演算結果Q
の前記QLを除く上位ビットQHが前記第6レジスタに
入力され、 前記書き込みステージに続く前記レジスタへの変数の読
出しステージにおいて、前記第1メモリから前記第1レ
ジスタに変数x1が、前記第2メモリから前記第3レジ
スタに変数x3が、前記第3メモリから前記第5レジス
タに変数x5が、同一の読出しステージで読み出される
請求項6記載の演算回路。 - 【請求項8】 前記第1メモリはデータの書き込みポー
トと読出しポートとを各々1つ有する2ポートメモリで
あり、前記第2および第3メモリは、データの書き込み
および読出しが1つのポートで行われる1ポートメモリ
である請求項7記載の演算回路。 - 【請求項9】 複数の入力レジスタを有する演算器と複
数のメモリとを備えた演算回路を用いた演算方法であっ
て、 前記入力レジスタに入力されている値に基づいて演算を
行うステップと、 前記演算の結果を前記入力レジスタまたは前記メモリに
書き込むステップと、 前記複数のメモリから前記複数の入力レジスタに複数の
変数を同一のパイプラインステージで読み出すステップ
と、 を含む演算方法。 - 【請求項10】 前記演算器は、第1レジスタ、第2レ
ジスタ、第3レジスタ、第4レジスタの各々に入力され
たrビット長を有するx1、x2、x3、x 4の各入力
値に基づいて、2rまたは2r+1ビット長を有するx
1+x2・x 3+x4の演算結果Qを与える積和演算器
である請求項9記載の演算方法。 - 【請求項11】 前記複数のメモリには、第1メモリお
よび第2メモリを含み、 前記演算結果Qの下位rビットQLが前記第1メモリに
記録され、前記演算結果Qの前記QLを除く上位ビット
QHが前記第4レジスタに入力される前記演算器のパイ
プライン処理における書き込みステップと、 前記第1メモリから前記第1レジスタへの変数x1の読
出しと、前記第2メモリから前記第3レジスタへの変数
x3の読出しとが前記パイプライン処理の同一の読出し
ステージで行われる読出しステップと、 を含む請求項10記載の演算方法。 - 【請求項12】 前記第1および第2メモリは、データ
の書き込みポートと読出しポートとを各々1つ有する2
ポートメモリである請求項11記載の演算方法。 - 【請求項13】 前記第1メモリはデータの書き込みポ
ートと読出しポートとを各々1つ有する2ポートメモリ
であり、前記第2メモリはデータの書き込みおよび読出
しが1つのポートで行われる1ポートメモリである請求
項11記載の演算方法。 - 【請求項14】 前記演算器は、第1レジスタ、第2レ
ジスタ、第3レジスタ、第4レジスタ、第5レジスタ、
第6レジスタの各々に入力されたrビット長を有するx
1、x2、x3、x4、x5、x6の各入力値に基づい
て、2rまたは2r+1ビット長を有するx1+x2・
x3+x4・x5+x6の演算結果Qを与える積和演算
器である請求項9記載の演算回路。 - 【請求項15】 前記複数のメモリには、第1メモリ、
第2メモリおよび第3メモリを含み、 前記演算結果Qの下位rビットQLが前記第1メモリに
記録され、前記演算結果Qの前記QLを除く上位ビット
QHが前記第6レジスタに入力される前記演算器のパイ
プライン処理における書き込みステップと、 前記第1メモリから前記第1レジスタへの変数x1の読
出しと、前記第2メモリから前記第3レジスタへの変数
x3の読出しと、前記第3メモリから前記第5レジスタ
への変数x5の読出しとが、前記パイプライン処理の同
一の読出しステージで行われる読出しステップと、 を含む請求項14記載の演算方法。 - 【請求項16】 前記第1メモリはデータの書き込みポ
ートと読出しポートとを各々1つ有する2ポートメモリ
であり、前記第2および第3メモリはデータの書き込み
および読出しが1つのポートで行われる1ポートメモリ
である請求項15記載の演算方法。
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000386069A JP3709553B2 (ja) | 2000-12-19 | 2000-12-19 | 演算回路および演算方法 |
DE60139597T DE60139597D1 (de) | 2000-12-19 | 2001-11-27 | Arithmetische Schaltung und arithmetisches Verfahren |
AT01128119T ATE440320T1 (de) | 2000-12-19 | 2001-11-27 | Arithmetische schaltung und arithmetisches verfahren |
EP01128119A EP1217512B1 (en) | 2000-12-19 | 2001-11-27 | Arithmetic circuit and arithmetic method |
KR10-2001-0077092A KR100441036B1 (ko) | 2000-12-19 | 2001-12-06 | 연산 회로 및 연산 방법 |
TW090130566A TW530260B (en) | 2000-12-19 | 2001-12-10 | Arithmetic circuit and arithmetic method |
US10/023,147 US6772942B2 (en) | 2000-12-19 | 2001-12-18 | Arithmetic circuit to increase the speed of a modular multiplication for a public key system for encryption |
CNB011437383A CN1221891C (zh) | 2000-12-19 | 2001-12-19 | 运算电路和运算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000386069A JP3709553B2 (ja) | 2000-12-19 | 2000-12-19 | 演算回路および演算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002207589A true JP2002207589A (ja) | 2002-07-26 |
JP3709553B2 JP3709553B2 (ja) | 2005-10-26 |
Family
ID=18853225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000386069A Expired - Fee Related JP3709553B2 (ja) | 2000-12-19 | 2000-12-19 | 演算回路および演算方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US6772942B2 (ja) |
EP (1) | EP1217512B1 (ja) |
JP (1) | JP3709553B2 (ja) |
KR (1) | KR100441036B1 (ja) |
CN (1) | CN1221891C (ja) |
AT (1) | ATE440320T1 (ja) |
DE (1) | DE60139597D1 (ja) |
TW (1) | TW530260B (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007003946A (ja) * | 2005-06-24 | 2007-01-11 | Nippon Telegr & Teleph Corp <Ntt> | 離散対数演算装置、方法及びプログラム |
KR100682354B1 (ko) | 2004-01-26 | 2007-02-15 | 후지쯔 가부시끼가이샤 | 다배장 데이터 곱합 연산 처리 회로 및 몽고메리 곱합잉여 연산 회로 |
US7403965B2 (en) | 2004-01-26 | 2008-07-22 | Fujitsu Limited | Encryption/decryption system for calculating effective lower bits of a parameter for Montgomery modular multiplication |
US8291223B2 (en) | 2009-01-15 | 2012-10-16 | Sharp Kabushiki Kaisha | Arithmetic circuit for montgomery multiplication and encryption circuit |
JP2015068880A (ja) * | 2013-09-27 | 2015-04-13 | 富士通セミコンダクター株式会社 | 演算回路および演算方法 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2404487A (en) * | 2003-07-31 | 2005-02-02 | Sony Uk Ltd | Access control for digital storage medium content |
US8028015B2 (en) * | 2007-08-10 | 2011-09-27 | Inside Contactless S.A. | Method and system for large number multiplication |
CN101751242B (zh) * | 2009-12-22 | 2013-08-21 | 无锡中星微电子有限公司 | 一种数据处理方法及系统 |
TW201217993A (en) * | 2010-10-20 | 2012-05-01 | Huafan University | employing operation on decomposed matrices to reduce operation amount for single matrix per unit time for light-weighting matrix operation process in simpler operation circuit |
CN102360281B (zh) * | 2011-10-31 | 2014-04-02 | 中国人民解放军国防科学技术大学 | 用于微处理器的多功能定点乘加单元mac运算装置 |
CN102999313B (zh) * | 2012-12-24 | 2016-01-20 | 飞天诚信科技股份有限公司 | 一种基于蒙哥马利模乘的数据处理方法 |
KR101633960B1 (ko) | 2013-08-27 | 2016-06-27 | 배종훈 | 유아 세정보조기구 |
TWI549090B (zh) * | 2014-08-29 | 2016-09-11 | Portable sensing operation device | |
CN106156614B (zh) * | 2015-03-25 | 2018-12-28 | 北京南瑞智芯微电子科技有限公司 | 一种抵抗故障攻击的防护方法和装置 |
IL239880B (en) * | 2015-07-09 | 2018-08-30 | Kaluzhny Uri | Simplified montgomery multiplication |
TWI580243B (zh) * | 2015-10-06 | 2017-04-21 | 瑞昱半導體股份有限公司 | 解密裝置、方法及電路 |
TWI575924B (zh) * | 2015-10-06 | 2017-03-21 | 瑞昱半導體股份有限公司 | 解密裝置、方法及電路 |
US10534836B2 (en) * | 2016-12-06 | 2020-01-14 | Gsi Technology Inc. | Four steps associative full adder |
CN109814838B (zh) * | 2019-03-28 | 2024-04-12 | 贵州华芯半导体技术有限公司 | 获取加解密运算中的中间结果组的方法、硬件装置和系统 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3689893A (en) * | 1969-05-09 | 1972-09-05 | Olivetti & Co Spa | Accounting machine processor |
US4539635A (en) * | 1980-02-11 | 1985-09-03 | At&T Bell Laboratories | Pipelined digital processor arranged for conditional operation |
US4488252A (en) * | 1982-02-22 | 1984-12-11 | Raytheon Company | Floating point addition architecture |
JPS6198476A (ja) * | 1984-10-19 | 1986-05-16 | Casio Comput Co Ltd | カードターミナル |
US4985848A (en) * | 1987-09-14 | 1991-01-15 | Visual Information Technologies, Inc. | High speed image processing system using separate data processor and address generator |
US5146592A (en) * | 1987-09-14 | 1992-09-08 | Visual Information Technologies, Inc. | High speed image processing computer with overlapping windows-div |
US4955024A (en) * | 1987-09-14 | 1990-09-04 | Visual Information Technologies, Inc. | High speed image processing computer with error correction and logging |
US4862407A (en) * | 1987-10-05 | 1989-08-29 | Motorola, Inc. | Digital signal processing apparatus |
KR920006283B1 (ko) * | 1988-02-19 | 1992-08-03 | 미쯔비시덴끼 가부시끼가이샤 | 디지탈신호 처리방식 |
US5337395A (en) * | 1991-04-08 | 1994-08-09 | International Business Machines Corporation | SPIN: a sequential pipeline neurocomputer |
JP2906792B2 (ja) * | 1991-11-15 | 1999-06-21 | 日本電気株式会社 | ディジタルプロセッサ及びその制御方法 |
US5260898A (en) * | 1992-03-13 | 1993-11-09 | Sun Microsystems, Inc. | Result cache for complex arithmetic units |
JPH07253965A (ja) * | 1994-03-16 | 1995-10-03 | Fujitsu Ltd | 積和演算器 |
KR0138859B1 (ko) * | 1994-12-06 | 1998-06-15 | 양승택 | 다중 명령어 다중 데이타형 신경망 전용 디지탈 어레이 프로세서 및 이를 이용해 구성된 시스템 |
JPH0969061A (ja) * | 1995-08-30 | 1997-03-11 | Sony Corp | ビデオ信号用プロセツサ |
WO1997013201A1 (en) * | 1995-10-06 | 1997-04-10 | Advanced Micro Devices, Inc. | Unified multi-function operation scheduler for out-of-order execution in a superscalar processor |
EP1014270A4 (en) * | 1996-10-24 | 2004-10-06 | Mitsubishi Electric Corp | MICROCOMPUTER WITH MEMORY AND PROCESSOR ON THE SAME CHIP |
GB2318890B (en) | 1996-10-31 | 2001-01-31 | Motorola Ltd | Co-processor for performing modular multiplication |
US6026421A (en) | 1997-11-26 | 2000-02-15 | Atmel Corporation | Apparatus for multiprecision integer arithmetic |
JP3616897B2 (ja) * | 1998-01-27 | 2005-02-02 | 富士通株式会社 | モンゴメリ法による乗算剰余計算装置 |
US5939693A (en) * | 1998-02-02 | 1999-08-17 | Motorola Inc. | Polynomial calculator device, and method therefor |
JP3829504B2 (ja) * | 1998-02-16 | 2006-10-04 | 株式会社デンソー | 情報処理装置 |
EP0947914B1 (en) | 1998-03-30 | 2004-12-15 | Rainbow Technologies Inc. | Computationally efficient modular multiplication method and apparatus |
US6560754B1 (en) * | 1999-05-13 | 2003-05-06 | Arc International Plc | Method and apparatus for jump control in a pipelined processor |
-
2000
- 2000-12-19 JP JP2000386069A patent/JP3709553B2/ja not_active Expired - Fee Related
-
2001
- 2001-11-27 EP EP01128119A patent/EP1217512B1/en not_active Expired - Lifetime
- 2001-11-27 DE DE60139597T patent/DE60139597D1/de not_active Expired - Lifetime
- 2001-11-27 AT AT01128119T patent/ATE440320T1/de not_active IP Right Cessation
- 2001-12-06 KR KR10-2001-0077092A patent/KR100441036B1/ko not_active IP Right Cessation
- 2001-12-10 TW TW090130566A patent/TW530260B/zh not_active IP Right Cessation
- 2001-12-18 US US10/023,147 patent/US6772942B2/en not_active Expired - Lifetime
- 2001-12-19 CN CNB011437383A patent/CN1221891C/zh not_active Expired - Lifetime
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100682354B1 (ko) | 2004-01-26 | 2007-02-15 | 후지쯔 가부시끼가이샤 | 다배장 데이터 곱합 연산 처리 회로 및 몽고메리 곱합잉여 연산 회로 |
US7403965B2 (en) | 2004-01-26 | 2008-07-22 | Fujitsu Limited | Encryption/decryption system for calculating effective lower bits of a parameter for Montgomery modular multiplication |
US8078661B2 (en) | 2004-01-26 | 2011-12-13 | Fujitsu Semiconductor Limited | Multiple-word multiplication-accumulation circuit and montgomery modular multiplication-accumulation circuit |
JP2007003946A (ja) * | 2005-06-24 | 2007-01-11 | Nippon Telegr & Teleph Corp <Ntt> | 離散対数演算装置、方法及びプログラム |
JP4663421B2 (ja) * | 2005-06-24 | 2011-04-06 | 日本電信電話株式会社 | 離散対数演算装置、方法及びプログラム |
US8291223B2 (en) | 2009-01-15 | 2012-10-16 | Sharp Kabushiki Kaisha | Arithmetic circuit for montgomery multiplication and encryption circuit |
JP2015068880A (ja) * | 2013-09-27 | 2015-04-13 | 富士通セミコンダクター株式会社 | 演算回路および演算方法 |
Also Published As
Publication number | Publication date |
---|---|
ATE440320T1 (de) | 2009-09-15 |
EP1217512A2 (en) | 2002-06-26 |
TW530260B (en) | 2003-05-01 |
JP3709553B2 (ja) | 2005-10-26 |
CN1366234A (zh) | 2002-08-28 |
DE60139597D1 (de) | 2009-10-01 |
CN1221891C (zh) | 2005-10-05 |
US20020074391A1 (en) | 2002-06-20 |
EP1217512A3 (en) | 2008-03-05 |
KR20020050105A (ko) | 2002-06-26 |
KR100441036B1 (ko) | 2004-07-21 |
US6772942B2 (en) | 2004-08-10 |
EP1217512B1 (en) | 2009-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002207589A (ja) | 演算回路および演算方法 | |
JP3525209B2 (ja) | べき乗剰余演算回路及びべき乗剰余演算システム及びべき乗剰余演算のための演算方法 | |
WO2020172234A1 (en) | Configurable lattice cryptography processor for the quantum-secure internet of things and related techniques | |
CN110351087B (zh) | 流水线型的蒙哥马利模乘运算方法 | |
US6151393A (en) | Device and method for modular multiplication | |
JP4201980B2 (ja) | マルチプレシジョン整数演算用の装置 | |
US8862651B2 (en) | Method and apparatus for modulus reduction | |
US8532286B2 (en) | System and method for reducing the computation and storage requirements for a montgomery-style reduction | |
EP1560110A1 (en) | Multiple-word multiplication-accumulation circuit and Montgomery modular multiplication-accumulation circuit | |
CN113467750A (zh) | 用于基数为4的srt算法的大整数位宽除法电路及方法 | |
Gonda et al. | Improvements of addition algorithm on genus 3 hyperelliptic curves and their implementation | |
CN113467752B (zh) | 用于隐私计算的除法运算装置、数据处理系统及方法 | |
Ahmadi et al. | Parallel Formulations of Scalar Multiplication on Koblitz Curves. | |
CN1696894B (zh) | 大数模乘计算乘法器 | |
KR100954583B1 (ko) | 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법 | |
Kalaiarasi et al. | A parallel elliptic curve crypto-processor architecture with reduced clock cycle for FPGA platforms | |
KR100297110B1 (ko) | 모듈러곱셈기 | |
GB2318892A (en) | Co-processor for performing modular multiplication | |
KR100974624B1 (ko) | 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그장치 및 이를 기록한 기록매체 | |
KR100954579B1 (ko) | 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법 | |
Mohan et al. | RNS in Cryptography | |
Pinckney et al. | Public key cryptography | |
Ananyi | Design of a reconfigurable processor for elliptic curve cryptography over NIST prime fields | |
KR100954582B1 (ko) | GF(3) 기반의 덧셈기, GF(3) 기반의 곱셈기,GF(3) 기반의 덧셈 뺄셈 통합형 연산 장치, 및 MSBfirst GF(3^m) 직렬 곱셈 장치 | |
WO2000041068A1 (en) | Method for generating a value for a multiplicative inverse of an element of a galois field |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040818 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20041117 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20041122 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050218 |
|
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: 20050727 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20050727 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050729 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080819 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090819 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090819 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100819 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100819 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110819 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120819 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130819 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |