JP3210420B2 - 整数上の乗算回路 - Google Patents
整数上の乗算回路Info
- Publication number
- JP3210420B2 JP3210420B2 JP16708392A JP16708392A JP3210420B2 JP 3210420 B2 JP3210420 B2 JP 3210420B2 JP 16708392 A JP16708392 A JP 16708392A JP 16708392 A JP16708392 A JP 16708392A JP 3210420 B2 JP3210420 B2 JP 3210420B2
- Authority
- JP
- Japan
- Prior art keywords
- bit
- bits
- integer
- full adder
- 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.)
- Expired - Fee Related
Links
Description
し、特に小さな桁数の乗算器を用いて大きな桁数の乗算
を行う回路に関するものである。本発明は、大きな桁数
の乗算を必要とするRSA暗号(池野信一,小山謙二:
“現代暗号学”,電子情報通信学会,1986,6章)
のような暗号化技術をはじめとして多くの整数演算に利
用することができる。
て、小さな桁数の整数上の乗算器は、セルライブラリや
TTL等が用意されているため手軽に構成することがで
きる。しかし、大きな桁数の乗算回路を実現しようとし
た場合には、セルライブラリ等がないので自分で設計し
なければならない。ところが、大きな桁数の乗算器を自
分で設計する場合、小さな桁数の乗算器の回路構成をそ
のまま拡張したのでは、回路構成が非常に複雑になり実
現が難しい。
数クロツクで乗算を行おうとする場合、入力値を多項式
と見なすと、ガロア体(宮川洋,岩垂好裕,今井秀樹:
“符号理論”,昭晃堂,1973,4章)のような桁上
がりのない演算系では、図2のような回路によつて乗算
が行われることが知られている。図2中、*Bi はB i
(i=0,…,n−1)を乗数としたmビツト*mビツ
トのガロア体上の乗算器、EXはmビツトのEXOR、
rはmビツトのレジスタである。
分割演算を行うと分割演算した桁毎に桁上がりが生じる
ため、効率的な乗算器を実現することは難しい。
欠点を除去し、大きな整数の乗算を、桁上がりを考慮し
ながら小さな桁数の乗算器を用いて、回路規模が小さく
構成の簡単な整数上の乗算回路を提供することを目的と
する。
に、本発明の整数上の乗算回路は、h,m,nを正の整
数とする場合に、nビツトの整数Aと(h×m)ビツト
の整数Bとの乗算を行う整数上の乗算回路であつて、1
ビツト毎にnクロツクに分けて上位桁から入力される整
数Aの各1ビツトに対して、各々が整数Bのそれぞれ異
なるmビツトを並列に乗算するh個の1ビツト×mビツ
トの乗算器と、h個の2ビツトキヤリー付きmビツトフ
ルアダーであって、各々が、前記乗算器の1つの出力
と、1つ下位桁の2ビツトキヤリー付きmビツトフルア
ダーの前回のクロツク時の出力の下位からm+1ビット
目以上の部分を1ビット上位にシフトした値と、自分自
身の前回のクロツク時の出力の下位mビツトを1ビット
上位にシフトしたフイードバツク値とを加算する、h個
の2ビツトキヤリー付きmビツトフルアダーと、各々
が、前記2ビツトキヤリー付きmビツトフルアダーの1
つのm+2ビツトの出力を格納し、次のクロックで当該
フルアダーに下位mビツトをフィードバックし、下位か
らm+1ビット目以上の部分を上位の前記2ビツトキヤ
リー付きmビツトフルアダーに出力する、h個のm+2
ビツトのレジスタとを備え、最上桁の前記m+2ビツト
のレジスタから乗算結果A・Bを上位桁より順次出力す
ることを特徴とする。
nビツトの整数Aと(h×m)ビツトの整数Bとの乗算
を行う整数上の乗算回路であつて、1ビツト×mビツト
の乗算器と2ビツトキヤリー付きmビツトフルアダーと
m+2ビツトのレジスタとを有する演算エレメントを整
数Bの所定のmビツトに対応してh個備え、前記乗算器
には整数Aが1ビツト毎にnクロツクに分けて上位桁か
ら並列に入力され、該整数Aの各1ビツトに整数Bの所
定のmビツトが乗算されて、前記mビツトフルアダーに
出力され、前記mビツトフルアダーでは、前記各乗算器
の出力と、下位桁の前記レジスタからの前回のクロツク
時の下位桁の前記mビツトフルアダーの下位からm+1
ビット目以上の部分を1ビット上位にシフトした値と、
同じ演算エレメント内の前記レジスタからの前回のクロ
ツク時の前記mビツトフルアダーでの加算結果の下位m
ビツトを1ビット上位にシフトしたフイードバツク値と
を加算し、前記レジスタは、前記mビツトフルアダーの
m+2ビツトの出力を同時に保持し、下位mビツトを同
じ演算エレメント内の前記mビツトフルアダーにフイー
ドバツクし、下位からm+1ビット目以上の部分を上位
桁の前記mビツトフルアダーに提供し、最上桁の前記演
算エレメント内の前記m+2ビツトのレジスタから乗算
結果A・Bを上位桁より順次出力することを特徴とす
る。
トフルアダーは、複数の2入力フルアダーまたはハーフ
アダーによつて実現される。
トの整数Bとの乗算器を想定するが、簡単のためにh=
nとして説明する。この限定により一般性が失われるこ
とはない。すなわち、nビツトの整数Aとn・mビツト
の整数Bとし、A・B=Cの演算を実行することを考え
る。ここで、mビツトの2つの整数a,bの乗算a・b
=cを実行する乗算器は公知の構成、例えばセルライブ
ラリやTTL等によつて簡単に実現できる。
毎にn分割すると、次のように表せる。
割したビツト系列を、各々Ai ,Bi (i=n−1,
…,0)とする。この場合、整数A,Bは多項式とみな
すことができるので、A・Bは次のように表すことがで
きる。
場合を考える。
Ai (i=n−1,…,0)が1ビツト単位、Bi がm
ビツト単位のときの乗算回路である。図1は1×mビツ
トの乗算器4個(×B0 〜×B3 )と、2ビツトキヤリ
ー付きmビツトフルアダー4個(+0 〜+3 )と、m+
2ビツトのレジスタ4個(R0 〜R4 )から構成され
る。図1において各レジスタの初期状態はオール“0”
とする。
式の各項の係数A3 ・Bi (i=3,…,0)が各乗算
器から出力され、各フルアダーを通して各々のレジスタ
に格納される。
式の各項の係数A2 ・Bi (i=3,…,0)が各乗算
器から出力される。式は式に対して2進数で1桁大
きいので、レジスタ内に格納された値は1ビツト上位に
シフトされて、式の係数を表す各乗算器からの出力と
加算される。従つて、各レジスタの下位mビツトは1ビ
ツト上位にシフトされた状態で加算器にフイードバツク
入力され、各レジスタのm+1ビツト目以上は1ビツト
上位にシフトされた状態で、右隣の加算器に入力され
る。従つて、加算器では1ビットずれたmビツト同士の
加算が行われ、桁上がりがあればm+2ビツトの出力が
行われて再びレジスタに格納される。
A2 が入力されたときと同様の演算が行われる。すなわ
ち、各レジスタのm+1ビツト目の桁上がりビツトがキ
ヤリーとして右隣の加算器の下位から2ビット目に入力
され、各レジスタのm+2ビツト目の桁上がりビツトが
キヤリーとして右隣の加算器の下位から3ビット目に入
力される。すなわち、各レジスタのm+1ビツト目は右
隣のレジスタの最下位ビツトと同じビット位置を表すの
で、加算器においては最下位のキヤリービツトではなく
下位から2ビット目のキヤリービツトとして扱い、各レ
ジスタのm+2ビツト目は右隣のレジスタの下位から2
ビツト目と同じビット位置を表すので、加算器において
は下位から3ビット目のキヤリービツトとして扱う必要
がある。従つて、加算器からはm+2ビツトの出力が行
われ再びレジスタに格納される。これによつて、上の
〜式までの各項の係数の加算が行われたことになる。
たとき、同様の演算によつて〜式の各項の係数の加
算が行われ、A・Bの乗算が行われたことになる。後は
引続きクロツクわ入力し、最上位桁のレジスタの上位ビ
ツトから乗算結果A・Bを上位桁から出力しても良い
し、各レジスタの内容を読み出して最終乗算結果A・B
を作成しても良い。これによつてAの値が分割入力され
るときA・Bの演算が効率的に行われる。
n=4として説明したが、一般性を失うことなく、整数
Aをmビツトに分割されたn・mビツトの数とし、nと
hとが異なる任意の整数の乗算にまで拡張される。この
場合には、mビツト×mビツトの乗算器が使用される。
ダーは、複数の2入力フルアダーとハーフアダーの組合
せによつて実現できることも明かである。また、図1に
おいて右端のレジスタを省いたり、更にフルアダーとレ
ジスタを付け加えても同様の乗算器が構成できるのは明
かである。
ルアダー(+j)とレジスタ(Rj)とからなる同一の演
算素子(エレメント)の繰り返しによる構成は、VLS
I等の大規模回路を構成しやすいという利点もある。ま
た、複数の領域Rj を有するメモリを使用して、ソフト
ウエアにより上記演算素子に対応する演算を順にあるい
は並列に行うことにより、同様の演算結果が得られるこ
とは明らかである。尚、本発明は、複数の機器から構成
されるシステムに適用しても、1つの機器から成る装置
に適用しても良い。また、本発明はシステム或は装置に
プログラムを供給することによつて達成される場合にも
適用できることは言うまでもない。
桁上がりを考慮しながら小さな桁数の乗算器を用いて、
回路規模が小さく構成の簡単な整数上の乗算回路を提供
することができる。
である。
2mビツトフルアダー、×Bi …Bi (i=0,…,n
−1)を乗数とした1ビツト×mビツトの整数上の乗算
器、*Bi …Bi (i=0,…,n−1)を乗数とした
1ビツト*mビツトのガロア体上の乗算器、EX…mビ
ツトのEXOR、r…mビツトレジスタ
Claims (3)
- 【請求項1】 h,m,nを正の整数とする場合に、n
ビツトの整数Aと(h×m)ビツトの整数Bとの乗算を
行う整数上の乗算回路であつて、 1ビツト毎にnクロツクに分けて上位桁から入力される
整数Aの各1ビツトに対して、各々が整数Bのそれぞれ
異なるmビツトを並列に乗算するh個の1ビツト×mビ
ツトの乗算器と、 h個の2ビツトキヤリー付きmビツトフルアダーであっ
て、各々が、前記乗算器の1つの出力と、1つ下位桁の
2ビツトキヤリー付きmビツトフルアダーの前回のクロ
ツク時の出力の下位からm+1ビット目以上の部分を1
ビット上位にシフトした値と、自分自身の前回のクロツ
ク時の出力の下位mビツトを1ビット上位にシフトした
フイードバツク値とを加算する、h個の2ビツトキヤリ
ー付きmビツトフルアダーと、 各々が、前記2ビツトキヤリー付きmビツトフルアダー
の1つのm+2ビツトの出力を格納し、次のクロックで
当該フルアダーに下位mビツトをフィードバックし、下
位からm+1ビット目以上の部分を上位の前記2ビツト
キヤリー付きmビツトフルアダーに出力する、h個のm
+2ビツトのレジスタとを備え、 最上桁の前記m+2ビツトのレジスタから乗算結果A・
Bを上位桁より順次出力することを特徴とする整数上の
乗算回路。 - 【請求項2】 h,m,nを正の整数とする場合に、n
ビツトの整数Aと(h×m)ビツトの整数Bとの乗算を
行う整数上の乗算回路であつて、 1ビツト×mビツトの乗算器と2ビツトキヤリー付きm
ビツトフルアダーとm+2ビツトのレジスタとを有する
演算エレメントを整数Bの所定のmビツトに対応してh
個備え、 前記乗算器には整数Aが1ビツト毎にnクロツクに分け
て上位桁から並列に入力され、該整数Aの各1ビツトに
整数Bの所定のmビツトが乗算されて、前記mビツトフ
ルアダーに出力され、 前記mビツトフルアダーでは、前記各乗算器の出力と、
下位桁の前記レジスタからの前回のクロツク時の下位桁
の前記mビツトフルアダーの下位からm+1ビット目以
上の部分を1ビット上位にシフトした値と、同じ演算エ
レメント内の前記レジスタからの前回のクロツク時の前
記mビツトフルアダーでの加算結果の下位mビツトを1
ビット上位にシフトしたフイードバツク値とを加算し、 前記レジスタは、前記mビツトフルアダーのm+2ビツ
トの出力を同時に保持し、下位mビツトを同じ演算エレ
メント内の前記mビツトフルアダーにフイードバツク
し、下位からm+1ビット目以上の部分を上位桁の前記
mビツトフルアダーに提供し、 最上桁の前記演算エレメント内の前記m+2ビツトのレ
ジスタから乗算結果A・Bを上位桁より順次出力するこ
とを特徴とする整数上の乗算回路。 - 【請求項3】 前記2ビツトキヤリー付きmビツトフル
アダーは、複数の2入力フルアダーまたはハーフアダー
によつて実現されることを特徴とする請求項1または2
記載の整数上の乗算回路。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP16708392A JP3210420B2 (ja) | 1992-06-25 | 1992-06-25 | 整数上の乗算回路 |
| DE69329260T DE69329260T2 (de) | 1992-06-25 | 1993-06-23 | Gerät zum Multiplizieren von Ganzzahlen mit vielen Ziffern |
| EP93304879A EP0576262B1 (en) | 1992-06-25 | 1993-06-23 | Apparatus for multiplying integers of many figures |
| 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 |
|---|---|---|---|
| JP16708392A JP3210420B2 (ja) | 1992-06-25 | 1992-06-25 | 整数上の乗算回路 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0612236A JPH0612236A (ja) | 1994-01-21 |
| JP3210420B2 true JP3210420B2 (ja) | 2001-09-17 |
Family
ID=15843097
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP16708392A Expired - Fee Related JP3210420B2 (ja) | 1992-06-25 | 1992-06-25 | 整数上の乗算回路 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3210420B2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7806832B2 (en) | 2007-04-30 | 2010-10-05 | The General Electric Company | False positive reduction in SPO2 atrial fibrillation detection using average heart rate and NIBP |
| US12327179B2 (en) | 2021-02-08 | 2025-06-10 | Samsung Electronics Co., Ltd. | Processor, method of operating the processor, and electronic device including the same |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| MX9801571A (es) * | 1995-08-31 | 1998-05-31 | Intel Corp | Aparato para realizar operaciones de multiplica-suma en datos empacados. |
-
1992
- 1992-06-25 JP JP16708392A patent/JP3210420B2/ja not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7806832B2 (en) | 2007-04-30 | 2010-10-05 | The General Electric Company | False positive reduction in SPO2 atrial fibrillation detection using average heart rate and NIBP |
| US12327179B2 (en) | 2021-02-08 | 2025-06-10 | Samsung Electronics Co., Ltd. | Processor, method of operating the processor, and electronic device including the same |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0612236A (ja) | 1994-01-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1293891B2 (en) | Arithmetic processor accomodating different finite field size | |
| US5764554A (en) | Method for the implementation of modular reduction according to the Montgomery method | |
| US6209016B1 (en) | Co-processor for performing modular multiplication | |
| CA2225899A1 (en) | A method and apparatus for finite field multiplication | |
| JP2744091B2 (ja) | 有限体の乗法的逆数元を計算するデータ処理方法及び装置 | |
| US6009450A (en) | Finite field inverse circuit | |
| US6061706A (en) | Systolic linear-array modular multiplier with pipeline processing elements | |
| US6917956B2 (en) | Apparatus and method for efficient modular exponentiation | |
| JP3213628B2 (ja) | Mを法として長い整数を乗算するための算術ユニット及びそのような乗算デバイスを具えるr.s.a.変換器 | |
| US8244790B2 (en) | Multiplier and cipher circuit | |
| JP3210420B2 (ja) | 整数上の乗算回路 | |
| US20030182343A1 (en) | Fast multiplication circuits | |
| US5912904A (en) | Method for the production of an error correction parameter associated with the implementation of modular operations according to the Montgomery method | |
| EP1504338B1 (en) | "emod" a fast modulus calculation for computer systems | |
| KR100480997B1 (ko) | GF(p)와 GF(2^m)의 유한체 곱셈 연산 장치 | |
| JP2000207387A (ja) | 演算装置及び暗号処理装置 | |
| EP1455270A2 (en) | Method and apparatus for basis conversion in finite field and a multiplier | |
| JP3129525B2 (ja) | 整数上の乗算回路 | |
| JPH03661B2 (ja) | ||
| JPH05197525A (ja) | オペランドを否定するための否定方法及び否定回路 | |
| KR100946256B1 (ko) | 다정도 캐리 세이브 가산기를 이용한 듀얼필드상의확장성있는 몽고매리 곱셈기 | |
| JP3129524B2 (ja) | 整数上の乗算回路及び乗算方法 | |
| JP3129526B2 (ja) | 整数上の乗算回路 | |
| EP0281303A3 (en) | Modulo arithmetic processor chip | |
| JPH0612237A (ja) | 整数上の乗算回路 |
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: 20010615 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080713 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080713 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090713 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090713 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100713 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100713 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110713 Year of fee payment: 10 |
|
| LAPS | Cancellation because of no payment of annual fees |