JP3129525B2 - 整数上の乗算回路 - Google Patents
整数上の乗算回路Info
- Publication number
- JP3129525B2 JP3129525B2 JP04167079A JP16707992A JP3129525B2 JP 3129525 B2 JP3129525 B2 JP 3129525B2 JP 04167079 A JP04167079 A JP 04167079A JP 16707992 A JP16707992 A JP 16707992A JP 3129525 B2 JP3129525 B2 JP 3129525B2
- Authority
- JP
- Japan
- Prior art keywords
- bit
- output
- full adder
- register
- adder
- 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.)
- Expired - Fee Related
Links
Description
し、特に小さな桁数の乗算器を用いて大きな桁数の乗算
を行う回路に関するものである。本発明は、大きな桁数
の乗算を必要とするRSA暗号(池野信一,小山謙二:
“現代暗号学”,電子情報通信学会,1986,6章)
のような暗号化技術をはじめとして多くの整数演算に利
用することができる。
て、小さな桁数の整数上の乗算器は、セルライブラリや
TTL等が用意されているため手軽に構成することがで
きる。しかし、大きな桁数の乗算回路を実現しようとし
た場合には、セルライブラリ等がないので自分で設計し
なければならない。ところが、大きな桁数の乗算器を自
分で設計する場合、小さな桁数の乗算器の回路構成をそ
のまま拡張したのでは、回路構成が非常に複雑になり実
現が難しい。
数クロツクで乗算を行おうとする場合、入力値を多項式
と見なすと、ガロア体(宮川洋,原島博,今井秀樹:
“情報と符号の理論”,岩波講座,1982,6章)の
ような桁上がりのない演算系では、図4のような回路に
よつて乗算が行われることが知られている。図4中、*
Bi はBi (i=0,…,n−1)を乗数としたmビツ
ト*mビツトのガロア体上の乗算器、EXはmビツトの
EXOR、rはmビツトのレジスタである。
分割演算を行うと分割演算した桁毎に桁上がりが生じる
ため、効率的な乗算器を実現することは難しい。
1つづつ入力するため、少なくともnクロツク以上の処
理時間を必要とした。処理クロツクnを小さくしようと
する場合はmを大きくする必要があり、大きな乗算器を
もたなければならなかつた。mを小さく分割したままで
処理クロツクをnクロツク以下にして高速化することは
難しい。
において大きな桁数の入力値を分割して演算する場合
に、小さな桁数の乗算器を用いて桁上がりを考慮した高
速で効率的な整数上の乗算回路を提供することを目的と
する。
に、本発明の整数上の乗算回路は、h,m,nを正の整
数とする場合に、(n×m)ビツトの整数Aと(h×
m)ビツトの整数Bとの乗算を行う整数上の乗算回路で
あつて、整数Aをmビツト毎に分けたAi(i=n−
1,…,0)をp個(p≧2,Apj,Apj+1,…A
pj+p-1;j=0,…,n/p−1)に分類して並列に入
力し、その各入力毎に並列につながれるBpq+k(q=
0,…,n/p−1,k=0,…,p−1)を乗数に持
つmビツト×mビツトの乗算器と、少なくとも2つの該
乗算器の出力と上位のフルアダーの出力を記憶するレジ
スタの内容とを加算するキヤリーバツフアを有する2m
ビツトの3入力のフルアダーと、該フルアダーの出力の
2mビツトを記憶し、次のクロックで下位のフルアダー
に出力する前記レジスタとを有するp列の演算列を備
え、クロツクに同期されて各演算列の最下位の前記フル
アダー又は前記レジスタからの出力を(p−1)×mビ
ツトおきの乗算出力とすることを特徴とする。
m,nを正の整数とする場合に、(n×m)ビツトの整
数Aと(h×m)ビツトの整数Bとの乗算を行う整数上
の乗算回路であつて、整数Aをmビツト毎に分けたAi
(i=n−1,…,0)を下位桁から2個(A2j,A
2j+1;j=0,…,n/2−1)ずつ同時に入力し、A
2jに対してB2q(q=0,…,(n−1)/2)を並列
に乗じるmビツト×mビツトの乗算器と、A2j+1に対し
てB2q+1を並列に乗じるmビツト×mビツトの乗算器
と、2つの前記乗算器の各々の出力と上位のフルアダー
の出力を記憶するレジスタの内容とを加算する2mビツ
トの3入力フルアダーと、該フルアダーの出力の2mビ
ツトを記憶し、次のクロックで下位のフルアダーに出力
する前記レジスタと、該フルアダーのキヤリーを蓄えて
1クロツク遅れて該フルアダーにフイードバツクするバ
ツフアとを有し、クロツクに同期させて最下位の前記フ
ルアダーまたはレジスタからA×Bの乗算結果を構成す
る2mビツト単位のC2k(k=0,…,n−1)を出力
する回路と、前記A2j,A2j+1を同時に入力し、A2jに
対してB2q+1(q=0,…,(n−1)/2)を並列に
乗じるmビツト×mビツトの乗算器と、A2j+1に対して
B2qを並列に乗じるmビツト×mビツトの乗算器と、2
つの前記乗算器の各々の出力と上位のフルアダーの出力
を記憶するレジスタの内容とを加算する2mビツトの3
入力フルアダーと、該フルアダーの出力の2mビツトを
記憶し、次のクロックで下位のフルアダーに出力する前
記レジスタと、該フルアダーのキヤリーを蓄えて1クロ
ツク遅れて該フルアダーにフイードバツクするバツフア
とを有し、クロツクに同期させて最下位の前記フルアダ
ーまたはレジスタからA×Bの乗算結果をmビツト毎に
分けた内のC2k+1(k=0,…,n−2)を出力する回
路とを備えることを特徴とする。
項式A,Bを乗算する整数上の乗算回路であつて、 A=An-1 ・Xn-1 +An-2 ・Xn-2 +…+A1 ・X+
A0 B=Bn-1 ・Xn-1 +Bn-2 ・Xn-2 +…+B1 ・X+
B0 Ai(i=n−1,…,0)をp個ずつ同時に入力し、
各入力毎にBpq+k(q=0,…,n/p−1,k=0,
…,p−1)を並列に乗じる乗算器と、2個の該乗算器
の出力と高次の加算器の出力を記憶するレジスタの内容
とを加算する3入力の加算器と、該加算器の出力を記憶
する前記レジスタとを備え、クロツクに同期させて最低
次の前記加算器またはレジスタから低次の係数より出力
する回路をp個有し、当該p個の回路がそれぞれ異なる
係数を並列に出力することを特徴とする。
ビツトの整数Bとの乗算器を想定するが、簡単のために
h=nとして説明する。この限定により一般性が失われ
ることはない。すなわち、n・mビツトの2つの整数を
A,Bとし、A・B=Cの演算を実行することを考え
る。ここで、mビツトの2つの整数a,bの乗算a・b
=cを実行する乗算器は公知の構成、例えばセルライブ
ラリやTTL等によつて簡単に実現できる。
と、上位桁から演算が行われるために下位桁からの桁上
がりを考慮することができない。更に、Ai (i=n−
1,…,0)を順次入力し演算するためには、少なくと
もnクロツク必要である。従つて、入力を下位桁から行
い、更にAi を複数個同時に入力することによつて処理
の高速化を考える。ここでは、n/2クロツクで乗算が
行える回路を実施例として説明する。
と、次のように表せる。
+A1 ・X+A0 B=Bn-1 ・Xn-1 +Bn-2 ・Xn-2 +…+B1 ・X+
B0 ここで、X=2m-1 とし、A,Bについてmビツト毎に
上位桁から分割したビツト系列を、各々Ai ,Bi (i
=n−1,…,0)とする。この場合、整数A,Bは多
項式とみなすことができるので、A・Bは次のように表
すことができる。
は2組の回路からなり、上段はCk(k=0,2,…,
2n−2)を求める回路であり、下段はCk(k=1,
3,…,2n−3)を求める回路である。図1はB
j(j=0,…,n−1)を乗数とするmビツトの乗算
a・b=cを実行する乗算器が2n個(×B0〜×Bn-1
)と、キヤリーを1クロツク遅らせるバツフア付きで
2mビツトの3入力の全加算器(フルアダー)n個(B
A0 〜BAn-1 )と、2mビツトのレジスタn−1個
(R2 〜Rn-1 )とから構成される。
の入力からA0 が入力され、下の入力からA1 が入力さ
れると、まず右端のバツフア付乗算器BA0 から最下位
桁であるC0 (=A0 ・B0 )が出力され、各々のレジ
スタにA0 ・Bj +A1 ・B j-1 (j=2,4,…,n
−1)が格納される。尚、レジスタの初期状態はオール
“0”である。
き、右端のレジスタR2 の出力(A 0 ・B2 +A1 ・B
1 )と乗算器(×B0 )の出力であるA2 ・B0 の和C
2 (=A0 ・B2 +A1 ・B1 +A2 ・B0 )がバツフ
ア付乗算器BA0 から出力される。これは式(1)のX
2 の係数に当たる。(A0 ・B2 +A1 ・B1 )のキヤ
リーはバツフア付乗算器BA0 のバツフアに蓄えられ、
桁上がりとして次のクロツクの加算において用いられ
る。また、各々のレジスタとバツフアとには前段のレジ
スタからの出力と2つの乗算器からの出力を加えた値が
格納される。
n-2 ,An-1 まで入力すれば、式(1)の乗算結果の偶
数項が演算されることが判る。以後、“0”を入力し同
じ動作を繰り返せばレジスタの中の乗算結果を全て出力
させることができるが、レジスタの内容は一括して他の
レジスタに移してもよい。従つて、実質的な処理クロツ
ク数はn/2クロツクと考えられる。
のクロツクで上の入力からA1 が入力され下の入力から
A0 が入力されると、まずバツフア付乗算器BA1 から
式(1)のX桁の係数であるC1 (=A0 ・B1 +A1
・B0 )が出力され、各々のレジスタにA0 ・Bj +A
1 ・Bj-1 (j=3,5,…,n−2)が格納される。
き、右端のレジスタR3 の出力(A 0 ・B3 +A1 ・B
2 )と乗算器(×B0 ,×B1 )の出力の和C3 (=A
0 ・B3 +A1 ・B2 +A2 ・B1 +A3・B0 )がバ
ツフア付乗算器BA1 から出力される。これは式(1)
のX3 の係数に当たる。このとき、キヤリーは、下段と
同様にバツフア付乗算器BAのバツフアに蓄えられ、桁
上がりとして次のクロツクの加算において用いられる。
が下位の桁から2つづつ同時に演算出力されることが判
る。よつて、式(1)の乗算に必要な実質的な処理クロ
ツク数はn/2クロツクである。
るときA・Bの演算が高速で効率的に行われる。また、
図1は図2のような同一の演算素子の繰り返しによつて
構成できるので、VSLI等の大規模回路を構成しやす
いという利点もある。
割されて入力されるとき、mビツト×mビツトの乗算器
を用いて、n・mビツトの乗算回路が効率的に実現でき
ることが示せた。h≠nの場合にも同様の回路によつて
乗算が実行できることは明かである。また、実施例では
2組の回路によつてn/2クロツクで乗算を実行する例
を示したが、Ai をp個同時に入力し、各々の入力に対
して乗数の系列Bj+k(j=0,p−1,…)のkをず
らした乗算器に入力させたp組の回路によつて、n/p
クロツクで乗算が実行できることも明かである。従つ
て、pの選択によつて自由に高速化できる乗算回路を構
成することができる。一例として、図3にP=4の場合
のC0 ,C4 ,C8 ,…を出力する回路の構成例を示
す。尚、BAを5入力フルアダーとすると図3の回路は
更に簡素化される。
アダーによる桁上がりがバツフアをもちいたフイードバ
ツクによつて閉じた形になるので、整数上の乗算におい
て問題になる桁上がりに関する遅延などの問題がない。
単位であるが、このバツフア付きフルアダーを用いるこ
とによつて、mビツトの出力にできることも明かであ
る。すなわち、2mビツトの上位mビツトをmビツトの
レジスタに入力して、そのレジスタの出力をmビツトの
フルアダーに入力し、2mビツトの下位mビツトは直接
該フルアダーに入力し、キヤリーは1ビツト遅延させて
該フルアダーにフイードバツクされせばよい。
がりのない演算系においても高速乗算回路として用いる
ことができる。このとき、加算器はEXORでよい。
システムに適用しても、1つの機器から成る装置に適用
しても良い。また、本発明はシステム或は装置にプログ
ラムを供給することによつて達成される場合にも適用で
きることは言うまでもない。
桁数の入力値を分割して演算する場合に、小さな桁数の
乗算器を用いて桁上がりを考慮した高速で効率的な整数
上の乗算回路を提供できる。
る。
である。
ツトのフルアダー、×Bi…Bi(i=0…n−1)を
乗数としたmビツト×mビツトの整数上の乗算器、*B
i…Bi(i=0…n−1)を乗数としたmビツト*m
ビツトのガロア体上の乗算器、EX…mビツトのEXO
R、r…mビツトのレジスタ
Claims (3)
- 【請求項1】 h,m,nを正の整数とする場合に、
(n×m)ビツトの整数Aと(h×m)ビツトの整数B
との乗算を行う整数上の乗算回路であつて、 整数Aをmビツト毎に分けたAi(i=n−1,…,
0)をp個(p≧2,Apj,Apj+1,…Apj+p-1;j=
0,…,n/p−1)に分類して並列に入力し、その各
入力毎に並列につながれるBpq+k(q=0,…,n/p
−1,k=0,…,p−1)を乗数に持つmビツト×m
ビツトの乗算器と、 少なくとも2つの該乗算器の出力と上位のフルアダーの
出力を記憶するレジスタの内容とを加算するキヤリーバ
ツフアを有する2mビツトの3入力のフルアダーと、 該フルアダーの出力の2mビツトを記憶し、次のクロッ
クで下位のフルアダーに出力する前記レジスタとを有す
るp列の演算列を備え、 クロツクに同期されて各演算列の最下位の前記フルアダ
ー又は前記レジスタからの出力を(p−1)×mビツト
おきの乗算出力とすることを特徴とする整数上の乗算回
路。 - 【請求項2】 h,m,nを正の整数とする場合に、
(n×m)ビツトの整数Aと(h×m)ビツトの整数B
との乗算を行う整数上の乗算回路であつて、 整数Aをmビツト毎に分けたAi(i=n−1,…,
0)を下位桁から2個(A2j,A2j+1;j=0,…,n
/2−1)ずつ同時に入力し、A2jに対してB2q(q=
0,…,(n−1)/2)を並列に乗じるmビツト×m
ビツトの乗算器と、A2j+1に対してB2q+1を並列に乗じ
るmビツト×mビツトの乗算器と、2つの前記乗算器の
各々の出力と上位のフルアダーの出力を記憶するレジス
タの内容とを加算する2mビツトの3入力フルアダー
と、該フルアダーの出力の2mビツトを記憶し、次のク
ロックで下位のフルアダーに出力する前記レジスタと、
該フルアダーのキヤリーを蓄えて1クロツク遅れて該フ
ルアダーにフイードバツクするバツフアとを有し、クロ
ツクに同期させて最下位の前記フルアダーまたはレジス
タからA×Bの乗算結果を構成する2mビツト単位のC
2k(k=0,…,n−1)を出力する回路と、 前記A2j,A2j+1を同時に入力し、A2jに対してB2q+1
(q=0,…,(n−1)/2)を並列に乗じるmビツ
ト×mビツトの乗算器と、A2j+1に対してB2qを並列に
乗じるmビツト×mビツトの乗算器と、2つの前記乗算
器の各々の出力と上位のフルアダーの出力を記憶するレ
ジスタの内容とを加算する2mビツトの3入力フルアダ
ーと、該フルアダーの出力の2mビツトを記憶し、次の
クロックで下位のフルアダーに出力する前記レジスタ
と、該フルアダーのキヤリーを蓄えて1クロツク遅れて
該フルアダーにフイードバツクするバツフアとを有し、
クロツクに同期させて最下位の前記フルアダーまたはレ
ジスタからA×Bの乗算結果をmビツト毎に分けた内の
C2k+1(k=0,…,n−2)を出力する回路とを備え
ることを特徴とする整数上の乗算回路。 - 【請求項3】 次の多項式A,Bを乗算する整数上の乗
算回路であつて、 A=An-1 ・Xn-1 +An-2 ・Xn-2 +…+A1 ・X+
A0 B=Bn-1 ・Xn-1 +Bn-2 ・Xn-2 +…+B1 ・X+
B0 Ai(i=n−1,…,0)をp個ずつ同時に入力し、
各入力毎にBpq+k(q=0,…,n/p−1,k=0,
…,p−1)を並列に乗じる乗算器と、2個の該乗算器
の出力と高次の加算器の出力を記憶するレジスタの内容
とを加算する3入力の加算器と、該加算器の出力を記憶
する前記レジスタとを備え、クロツクに同期させて最低
次の前記加算器またはレジスタから低次の係数より出力
する回路をp個有し、当該p個の回路がそれぞれ異なる
係数を並列に出力することを特徴とする整数上の乗算回
路。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04167079A JP3129525B2 (ja) | 1992-06-25 | 1992-06-25 | 整数上の乗算回路 |
EP93304879A EP0576262B1 (en) | 1992-06-25 | 1993-06-23 | Apparatus for multiplying integers of many figures |
DE69329260T DE69329260T2 (de) | 1992-06-25 | 1993-06-23 | Gerät zum Multiplizieren von Ganzzahlen mit vielen Ziffern |
US08/512,620 US5524090A (en) | 1992-06-25 | 1995-08-08 | Apparatus for multiplying long integers |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP04167079A JP3129525B2 (ja) | 1992-06-25 | 1992-06-25 | 整数上の乗算回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0612234A JPH0612234A (ja) | 1994-01-21 |
JP3129525B2 true JP3129525B2 (ja) | 2001-01-31 |
Family
ID=15843017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP04167079A Expired - Fee Related JP3129525B2 (ja) | 1992-06-25 | 1992-06-25 | 整数上の乗算回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3129525B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0783279A (ja) * | 1993-07-28 | 1995-03-28 | Carl Freudenberg:Fa | ほぼプレート状の機械部材を振動遮断状態で固定するための保持体 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4385962B2 (ja) | 2004-09-14 | 2009-12-16 | トヨタ自動車株式会社 | 内燃機関の制御装置 |
CN114666038B (zh) * | 2022-05-12 | 2022-09-02 | 广州万协通信息技术有限公司 | 一种大位宽数据处理方法、装置、设备及存储介质 |
-
1992
- 1992-06-25 JP JP04167079A patent/JP3129525B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0783279A (ja) * | 1993-07-28 | 1995-03-28 | Carl Freudenberg:Fa | ほぼプレート状の機械部材を振動遮断状態で固定するための保持体 |
Also Published As
Publication number | Publication date |
---|---|
JPH0612234A (ja) | 1994-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Reyhani-Masoleh et al. | Low complexity bit parallel architectures for polynomial basis multiplication over GF (2m) | |
KR100267009B1 (ko) | 고속 암호화 처리를 위한 어레이 구조를 가지는 모듈러 곱셈장치 | |
Su et al. | An improved Montgomery's algorithm for high-speed RSA public-key cryptosystem | |
US6061706A (en) | Systolic linear-array modular multiplier with pipeline processing elements | |
Liu et al. | High performance modular multiplication for SIDH | |
US5121429A (en) | Digital signal processing | |
US3805043A (en) | Serial-parallel binary multiplication using pairwise addition | |
Großschädl | A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m) | |
Hossain et al. | Efficient fpga implementation of modular arithmetic for elliptic curve cryptography | |
Abdulrahman et al. | High-speed hybrid-double multiplication architectures using new serial-out bit-level mastrovito multipliers | |
EP1600852B1 (en) | Method and apparatus for calculating a modular inverse | |
Orup et al. | A high-radix hardware algorithm for calculating the exponential ME modulo N. | |
JP3129525B2 (ja) | 整数上の乗算回路 | |
Elango et al. | Hardware implementation of residue multipliers based signed RNS processor for cryptosystems | |
US7607165B2 (en) | Method and apparatus for multiplication and/or modular reduction processing | |
O'Rourke et al. | Achieving NTRU with Montgomery multiplication | |
EP1455270B1 (en) | Method and apparatus for basis conversion in finite field and a multiplier | |
JP2002023999A (ja) | 乗算モジュール、乗法逆元演算回路、乗法逆元演算制御方式、該乗法逆元演算を用いる装置、暗号装置、誤り訂正復号器 | |
Namin et al. | A High-Speed Word Level Finite Field Multiplier in ${\BBF} _ {2^ m} $ Using Redundant Representation | |
KR20060037941A (ko) | 유한체 GF(2^m)에서의 하이브리드 곱셈 연산 장치및 연산 방법 | |
JP2000207387A (ja) | 演算装置及び暗号処理装置 | |
JP3210420B2 (ja) | 整数上の乗算回路 | |
JP3129526B2 (ja) | 整数上の乗算回路 | |
JP3129524B2 (ja) | 整数上の乗算回路及び乗算方法 | |
Nadjia et al. | High throughput parallel montgomery modular exponentiation on FPGA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20001006 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081117 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081117 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091117 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101117 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101117 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111117 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |