JPH0612232A - 整数上の乗算回路 - Google Patents
整数上の乗算回路Info
- Publication number
- JPH0612232A JPH0612232A JP4167077A JP16707792A JPH0612232A JP H0612232 A JPH0612232 A JP H0612232A JP 4167077 A JP4167077 A JP 4167077A JP 16707792 A JP16707792 A JP 16707792A JP H0612232 A JPH0612232 A JP H0612232A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- integer
- multiplier
- bits
- output
- 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.)
- Withdrawn
Links
Abstract
(57)【要約】 (修正有)
【目的】大きな桁数を小さな桁数の乗算器を用いて桁上
がりを考慮して効率的な乗算を行う。 【構成】(n×m)ビツトの整数Aと(h×m)ビツト
の整数Bとの乗算を行う整数上の乗算回路であつて、整
数Aがmビツト毎にnクロツクに分けて上位桁から入力
され、該整数Aの各mビツトに整数Bの所定のmビツト
を乗算する前記整数Aに対して並列につながれるmビツ
ト×mビツトの乗算器と、該乗算器の出力と1つ下位桁
のフルアダーの前回のクロツク時の出力と2つ下位桁の
フルアダーからのキヤリーを下位ビツトに加算する、前
記乗算器に対応して1次元状に並べられた2mビツトの
フルアダーと、前記2mビツトフルアダーの2mビツト
の出力を同時に入出力する、前記2つの2mビツトフル
アダー間につながれるレジスタとを備え、クロツクに同
期して最上位の前記2mビツトフルアダーから乗算結果
を上位桁より出力する。
がりを考慮して効率的な乗算を行う。 【構成】(n×m)ビツトの整数Aと(h×m)ビツト
の整数Bとの乗算を行う整数上の乗算回路であつて、整
数Aがmビツト毎にnクロツクに分けて上位桁から入力
され、該整数Aの各mビツトに整数Bの所定のmビツト
を乗算する前記整数Aに対して並列につながれるmビツ
ト×mビツトの乗算器と、該乗算器の出力と1つ下位桁
のフルアダーの前回のクロツク時の出力と2つ下位桁の
フルアダーからのキヤリーを下位ビツトに加算する、前
記乗算器に対応して1次元状に並べられた2mビツトの
フルアダーと、前記2mビツトフルアダーの2mビツト
の出力を同時に入出力する、前記2つの2mビツトフル
アダー間につながれるレジスタとを備え、クロツクに同
期して最上位の前記2mビツトフルアダーから乗算結果
を上位桁より出力する。
Description
【0001】
【産業上の利用分野】本発明は整数上の乗算回路に関
し、特に小さな桁数の乗算器を用いて大きな桁数の乗算
を行う回路に関するものである。本発明は、大きな桁数
の乗算を必要とするRSA暗号(池野信一,小山謙二:
“現代暗号学”,電子情報通信学会,1986,6章)
のような暗号化技術をはじめとして多くの整数演算に利
用することができる。
し、特に小さな桁数の乗算器を用いて大きな桁数の乗算
を行う回路に関するものである。本発明は、大きな桁数
の乗算を必要とするRSA暗号(池野信一,小山謙二:
“現代暗号学”,電子情報通信学会,1986,6章)
のような暗号化技術をはじめとして多くの整数演算に利
用することができる。
【0002】
【従来の技術】ゲートアレイの設計や基板設計におい
て、小さな桁数の整数上の乗算器は、セルライブラリや
TTL等が用意されているため手軽に構成することがで
きる。しかし、大きな桁数の乗算回路を実現しようとし
た場合には、セルライブラリ等がないので自分で設計し
なければならない。ところが、大きな桁数の乗算器を自
分で設計する場合、小さな桁数の乗算器の回路構成をそ
のまま拡張したのでは、回路構成が非常に複雑になり実
現が難しい。
て、小さな桁数の整数上の乗算器は、セルライブラリや
TTL等が用意されているため手軽に構成することがで
きる。しかし、大きな桁数の乗算回路を実現しようとし
た場合には、セルライブラリ等がないので自分で設計し
なければならない。ところが、大きな桁数の乗算器を自
分で設計する場合、小さな桁数の乗算器の回路構成をそ
のまま拡張したのでは、回路構成が非常に複雑になり実
現が難しい。
【0003】また、入力値を所定ビツト毎に分割して複
数クロツクで乗算を行おうとする場合、入力値を多項式
と見なすと、ガロア体(宮川洋,原島博,今井秀樹:
“情報と符号の理論”,岩波講座,1982,6章)の
ような桁上がりのない演算系では、図2のような回路に
よつて乗算が行われることが知られている。図2中、*
Bi はBi (i=0,…,n−1)を乗数としたmビツ
ト*mビツトのガロア体上の乗算器、EXはmビツトの
EXOR、rはmビツトのレジスタである。
数クロツクで乗算を行おうとする場合、入力値を多項式
と見なすと、ガロア体(宮川洋,原島博,今井秀樹:
“情報と符号の理論”,岩波講座,1982,6章)の
ような桁上がりのない演算系では、図2のような回路に
よつて乗算が行われることが知られている。図2中、*
Bi はBi (i=0,…,n−1)を乗数としたmビツ
ト*mビツトのガロア体上の乗算器、EXはmビツトの
EXOR、rはmビツトのレジスタである。
【0004】しかし、整数上の乗算では、図2のような
分割演算を行うと分割演算した桁毎に桁上がりが生じる
ため、効率的な乗算器を実現することは難しい。
分割演算を行うと分割演算した桁毎に桁上がりが生じる
ため、効率的な乗算器を実現することは難しい。
【0005】本発明は、上述の欠点を除去し、乗算回路
において大きな桁数の入力値を分割して演算する場合
に、小さな桁数の乗算器を用いて桁上がりを考慮した効
率的な整数上の乗算回路を提供することを目的とする。
において大きな桁数の入力値を分割して演算する場合
に、小さな桁数の乗算器を用いて桁上がりを考慮した効
率的な整数上の乗算回路を提供することを目的とする。
【0006】
【課題を解決するための手段】この課題を解決するため
に、本発明の整数上の乗算回路は、h,m,nを正の整
数とする場合に、(n×m)ビツトの整数Aと(h×
m)ビツトの整数Bとの乗算を行う整数上の乗算回路で
あつて、整数Aがmビツト毎にnクロツクに分けて上位
桁から入力され、該整数Aの各mビツトに整数Bの所定
のmビツトを乗算する前記整数Aに対して並列につなが
れるmビツト×mビツトの乗算器と、該乗算器の出力と
1つ下位桁のフルアダーの前回のクロツク時の出力と2
つ下位桁のフルアダーからのキヤリーを下位ビツトに加
算する、前記乗算器に対応して1次元状に並べられた2
mビツトのフルアダーと、前記2mビツトフルアダーの
2mビツトの出力を同時に入出力する、前記2つの2m
ビツトフルアダー間につながれるレジスタとを備え、ク
ロツクに同期して最上位の前記2mビツトフルアダーか
ら乗算結果を上位桁より出力する。
に、本発明の整数上の乗算回路は、h,m,nを正の整
数とする場合に、(n×m)ビツトの整数Aと(h×
m)ビツトの整数Bとの乗算を行う整数上の乗算回路で
あつて、整数Aがmビツト毎にnクロツクに分けて上位
桁から入力され、該整数Aの各mビツトに整数Bの所定
のmビツトを乗算する前記整数Aに対して並列につなが
れるmビツト×mビツトの乗算器と、該乗算器の出力と
1つ下位桁のフルアダーの前回のクロツク時の出力と2
つ下位桁のフルアダーからのキヤリーを下位ビツトに加
算する、前記乗算器に対応して1次元状に並べられた2
mビツトのフルアダーと、前記2mビツトフルアダーの
2mビツトの出力を同時に入出力する、前記2つの2m
ビツトフルアダー間につながれるレジスタとを備え、ク
ロツクに同期して最上位の前記2mビツトフルアダーか
ら乗算結果を上位桁より出力する。
【0007】ここで、整数Bの最下位桁のmビツトを乗
算する前記mビツト×mビツトの乗算器に対応する2m
ビツトフルアダーが削除されてもよい。
算する前記mビツト×mビツトの乗算器に対応する2m
ビツトフルアダーが削除されてもよい。
【0008】
【実施例】本実施例ではn・mビツトの整数Aとh・m
ビツトの整数Bとの乗算器を想定するが、簡単のために
h=nとして説明する。この限定により一般性が失われ
ることはない。すなわち、n・mビツトの2つの整数を
A,Bとし、A・B=Cの演算を実行することを考え
る。ここで、mビツトの2つの整数a,bの乗算a・b
=cを実行する乗算器は公知の構成、例えばセルライブ
ラリやTTL等によつて簡単に実現できる。
ビツトの整数Bとの乗算器を想定するが、簡単のために
h=nとして説明する。この限定により一般性が失われ
ることはない。すなわち、n・mビツトの2つの整数を
A,Bとし、A・B=Cの演算を実行することを考え
る。ここで、mビツトの2つの整数a,bの乗算a・b
=cを実行する乗算器は公知の構成、例えばセルライブ
ラリやTTL等によつて簡単に実現できる。
【0009】整数A,Bを各々mビツト毎にn分割する
と、次のように表せる。
と、次のように表せる。
【0010】A=An-1 ・Xn-1 +An-2 ・Xn-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は次のように表
すことができる。
+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は次のように表
すことができる。
【0011】
【数1】 従つて、図1のような回路で乗算器を構成できる。図1
はmビツトの乗算a・b=cを実行する乗算器n個(×
B0 〜×Bn-1 )と、2mビツトのキヤリー付き加算器
n−1個(+1 〜+n-1 ;以下フルアダーとも言う)
と、2mビツトのレジスタn−1個(R0 〜Rn-2 )
と、1つおき加算器+i と+i+2 とをつなぐキヤリー線
とから構成される。
はmビツトの乗算a・b=cを実行する乗算器n個(×
B0 〜×Bn-1 )と、2mビツトのキヤリー付き加算器
n−1個(+1 〜+n-1 ;以下フルアダーとも言う)
と、2mビツトのレジスタn−1個(R0 〜Rn-2 )
と、1つおき加算器+i と+i+2 とをつなぐキヤリー線
とから構成される。
【0012】図1において、各レジスタの初期状態は全
て“0”とする。
て“0”とする。
【0013】最初のクロツクでAn-1 が入力されると、
最上位桁X2n-2の係数であるC2n-2(=An-1 ・B
n-1 )がフルアダー(+n-1 )から出力され、各々のレ
ジスタにAn-1 ・Bi (i=n−2,…,0)が格納さ
れる。
最上位桁X2n-2の係数であるC2n-2(=An-1 ・B
n-1 )がフルアダー(+n-1 )から出力され、各々のレ
ジスタにAn-1 ・Bi (i=n−2,…,0)が格納さ
れる。
【0014】次のクロツクでAn-2 が入力されたとき、
右端のレジスタ(Rn-2 )の出力A n-1 ・Bn-2 と乗算
器×Bn-1 の出力であるAn-2 ・Bn-1 との和、C2n-3
(=An-1 ・Bn-2 +An-2 ・Bn-1 )が図1の回路の
フルアダー(+n-1 )から出力される。これは次の桁で
あるX2n-3の係数に当たる。そのとき、フルアダーのキ
ヤリーは1つおきのフルアダーにそれぞれ接続され、桁
上がりが計算される。尚、図1でキヤリーは2つ前のフ
ルアダーから最下位ビツトに加算される。これは、mビ
ツトのAi ,Bi に対して(An-1 ・Bn-2 +An-2 ・
Bn-1 )の出力は2mビツト単位、即ちX2 分に当る
が、1クロツクはX単位であるため桁上がりは1つおき
のフルアダーに対して行われる。また、各々のレジスタ
には後ろのレジスタからの出力と乗算器からの出力を加
えた(An-1 ・Bi-1 +An-2 ・B i )が格納される。
右端のレジスタ(Rn-2 )の出力A n-1 ・Bn-2 と乗算
器×Bn-1 の出力であるAn-2 ・Bn-1 との和、C2n-3
(=An-1 ・Bn-2 +An-2 ・Bn-1 )が図1の回路の
フルアダー(+n-1 )から出力される。これは次の桁で
あるX2n-3の係数に当たる。そのとき、フルアダーのキ
ヤリーは1つおきのフルアダーにそれぞれ接続され、桁
上がりが計算される。尚、図1でキヤリーは2つ前のフ
ルアダーから最下位ビツトに加算される。これは、mビ
ツトのAi ,Bi に対して(An-1 ・Bn-2 +An-2 ・
Bn-1 )の出力は2mビツト単位、即ちX2 分に当る
が、1クロツクはX単位であるため桁上がりは1つおき
のフルアダーに対して行われる。また、各々のレジスタ
には後ろのレジスタからの出力と乗算器からの出力を加
えた(An-1 ・Bi-1 +An-2 ・B i )が格納される。
【0015】以上の動作をnクロツク繰り返し、A0 ま
で入力すればXn-1 までの桁の乗算結果が出力されるこ
とが判る。以後、“0”をnクロツク入力して同じ動作
を繰り返すことによつて、各レジスタの中の値が順次出
力され乗算結果の全てが出力される。これによつて、整
数Aの値が分割入力されるとき、整数AとBとの乗算A
・Bの演算が効率的に行われる。
で入力すればXn-1 までの桁の乗算結果が出力されるこ
とが判る。以後、“0”をnクロツク入力して同じ動作
を繰り返すことによつて、各レジスタの中の値が順次出
力され乗算結果の全てが出力される。これによつて、整
数Aの値が分割入力されるとき、整数AとBとの乗算A
・Bの演算が効率的に行われる。
【0016】尚、n,mの値は乗算回路の演算速度と回
路の複雑さとの兼ね合いから決定されるものであり、m
を大きくするとクロツク数が少なくなり演算は早くなる
が、回路は複雑となる。又、図1に、乗算器(×B0 )
に対応するフルアダー(+0)と、フルアダー(+
n-1 )の出力を記憶するレジスタ(Rn-1 )とを付加す
ると、乗算器(×Bi )とフルアダー(+i )とレジス
タ(Ri )とからなるプロセツサ・エレメント(PE)
の繰り返しにより本例が実現できることが解る。
路の複雑さとの兼ね合いから決定されるものであり、m
を大きくするとクロツク数が少なくなり演算は早くなる
が、回路は複雑となる。又、図1に、乗算器(×B0 )
に対応するフルアダー(+0)と、フルアダー(+
n-1 )の出力を記憶するレジスタ(Rn-1 )とを付加す
ると、乗算器(×Bi )とフルアダー(+i )とレジス
タ(Ri )とからなるプロセツサ・エレメント(PE)
の繰り返しにより本例が実現できることが解る。
【0017】以上によつて、入力値がmビツト毎にn分
割されて入力されるとき、mビツト×mビツトの乗算器
を用いて、n・mビツトの乗算回路が効率的に実現でき
ることが示せた。h≠nの場合にも同様の回路で乗算が
実行できることは明かである。ただし、本発明からの出
力はキヤリーも入れて2m+2ビツトとなつている。そ
のキヤリーは本来その前出力と加算されるべきである
が、それ以後の回路も乗算結果を数ビツト毎に分割して
扱う場合、それを認識して本回路からの出力を扱うなら
ば問題はなく、かえつて大きな桁の数を分割して扱える
ので、以後の回路構成も小型化が図れる。
割されて入力されるとき、mビツト×mビツトの乗算器
を用いて、n・mビツトの乗算回路が効率的に実現でき
ることが示せた。h≠nの場合にも同様の回路で乗算が
実行できることは明かである。ただし、本発明からの出
力はキヤリーも入れて2m+2ビツトとなつている。そ
のキヤリーは本来その前出力と加算されるべきである
が、それ以後の回路も乗算結果を数ビツト毎に分割して
扱う場合、それを認識して本回路からの出力を扱うなら
ば問題はなく、かえつて大きな桁の数を分割して扱える
ので、以後の回路構成も小型化が図れる。
【0018】尚、本発明は、複数の機器から構成される
システムに適用しても、1つの機器から成る装置に適用
しても良い。また、本発明はシステム或は装置にプログ
ラムを供給することによつて達成される場合にも適用で
きることは言うまでもない。
システムに適用しても、1つの機器から成る装置に適用
しても良い。また、本発明はシステム或は装置にプログ
ラムを供給することによつて達成される場合にも適用で
きることは言うまでもない。
【0019】
【発明の効果】本発明により、乗算回路において大きな
桁数の入力値を分割して演算する場合に、小さな桁数の
乗算器を用いて桁上がりを考慮した効率的な整数上の乗
算回路を提供できる。
桁数の入力値を分割して演算する場合に、小さな桁数の
乗算器を用いて桁上がりを考慮した効率的な整数上の乗
算回路を提供できる。
【図1】本実施例の整数上の乗算回路を示す図である。
【図2】公知のガロア体上の多項式の乗算回路を示す図
である。
である。
R…2mビツトのレジスタ、+…2mビツトのフルアダ
ー、XBi …Bi (i=0,…,n−1)を乗数とした
mビツト×mビツトの整数上の乗算器、*Bi…Bi
(i=0,…,n−1)を乗数としたmビツト×mビツ
トのガロア体上の乗算器、EX…mビツトのEXOR、
r…mビツトのレジスタ
ー、XBi …Bi (i=0,…,n−1)を乗数とした
mビツト×mビツトの整数上の乗算器、*Bi…Bi
(i=0,…,n−1)を乗数としたmビツト×mビツ
トのガロア体上の乗算器、EX…mビツトのEXOR、
r…mビツトのレジスタ
Claims (2)
- 【請求項1】 h,m,nを正の整数とする場合に、
(n×m)ビツトの整数Aと(h×m)ビツトの整数B
との乗算を行う整数上の乗算回路であつて、 整数Aがmビツト毎にnクロツクに分けて上位桁から入
力され、該整数Aの各mビツトに整数Bの所定のmビツ
トを乗算する前記整数Aに対して並列につながれるmビ
ツト×mビツトの乗算器と、 該乗算器の出力と1つ下位桁のフルアダーの前回のクロ
ツク時の出力と2つ下位桁のフルアダーからのキヤリー
を下位ビツトに加算する、前記乗算器に対応して1次元
状に並べられた2mビツトのフルアダーと、 前記2mビツトフルアダーの2mビツトの出力を同時に
入出力する、前記2つの2mビツトフルアダー間につな
がれるレジスタとを備え、 クロツクに同期して最上位の前記2mビツトフルアダー
から乗算結果を上位桁より出力することを特徴とする整
数上の乗算回路。 - 【請求項2】 整数Bの最下位桁のmビツトを乗算する
前記mビツト×mビツトの乗算器に対応する2mビツト
フルアダーが、削除されることを特徴とする請求項1記
載の整数上の乗算回路。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4167077A JPH0612232A (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 |
|---|---|---|---|
| JP4167077A JPH0612232A (ja) | 1992-06-25 | 1992-06-25 | 整数上の乗算回路 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0612232A true JPH0612232A (ja) | 1994-01-21 |
Family
ID=15842983
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4167077A Withdrawn JPH0612232A (ja) | 1992-06-25 | 1992-06-25 | 整数上の乗算回路 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0612232A (ja) |
-
1992
- 1992-06-25 JP JP4167077A patent/JPH0612232A/ja not_active Withdrawn
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3784156B2 (ja) | モジュラ掛け算方法 | |
| JP2004501396A (ja) | 整数の計算フィールド範囲の拡張 | |
| US8862651B2 (en) | Method and apparatus for modulus reduction | |
| JPH0727458B2 (ja) | 乗算器 | |
| Liu et al. | High performance modular multiplication for SIDH | |
| US6061706A (en) | Systolic linear-array modular multiplier with pipeline processing elements | |
| 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 (2m) | |
| JP4180024B2 (ja) | 乗算剰余演算器及び情報処理装置 | |
| EP0447245A2 (en) | Bit-serial division method and apparatus | |
| CN107992283B (zh) | 一种基于降维实现有限域乘法的方法和装置 | |
| Tynymbayev et al. | Devices for multiplying modulo numbers with analysis of the lower bits of the multiplier | |
| US7607165B2 (en) | Method and apparatus for multiplication and/or modular reduction processing | |
| KR100670780B1 (ko) | 유한체 GF(2^m)에서의 하이브리드 곱셈 연산 장치및 연산 방법 | |
| EP1600852B1 (en) | Method and apparatus for calculating a modular inverse | |
| Arazi et al. | On calculating multiplicative inverses modulo $2^{m} $ | |
| JP3129525B2 (ja) | 整数上の乗算回路 | |
| JP3210420B2 (ja) | 整数上の乗算回路 | |
| EP1455270B1 (en) | Method and apparatus for basis conversion in finite field and a multiplier | |
| JPH0612232A (ja) | 整数上の乗算回路 | |
| WO2003096182A1 (en) | “emod” a fast modulus calculation for computer systems | |
| JP3129524B2 (ja) | 整数上の乗算回路及び乗算方法 | |
| JPS58137045A (ja) | 並列乗算器 | |
| JP3129526B2 (ja) | 整数上の乗算回路 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19990831 |