JPH03103922A - 多数桁乗算装置 - Google Patents

多数桁乗算装置

Info

Publication number
JPH03103922A
JPH03103922A JP24059989A JP24059989A JPH03103922A JP H03103922 A JPH03103922 A JP H03103922A JP 24059989 A JP24059989 A JP 24059989A JP 24059989 A JP24059989 A JP 24059989A JP H03103922 A JPH03103922 A JP H03103922A
Authority
JP
Japan
Prior art keywords
multiplication
input
multiplier
output
timing
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
Application number
JP24059989A
Other languages
English (en)
Inventor
Takayuki Hasebe
高行 長谷部
Naoya Torii
直哉 鳥居
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP24059989A priority Critical patent/JPH03103922A/ja
Publication of JPH03103922A publication Critical patent/JPH03103922A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔概  要〕 多数桁同士の乗算を実行する拡張型の多数桁乗算器に関
し、 1 2 ハードウエア規模が小さく、制御が簡単で、乗算桁数の
拡張性に冨む多数桁乗算器を実現することを目的とし、 第1の入力値と第2の入力値を乗算し乗算結果を得る多
数桁乗算装置において、乗算手段と該乗算手段の出力を
第1の入力とする加算手段と該加算乎段の出力を1乗算
タイミング分遅延さ・ける遅延手段とからなる乗算ユニ
ットを、上位の乗算ユニットの遅延手段の出力を下位の
乗算ユニットの加算手段の第2の入力とすることにより
、所定段数分縦続接続した構造を有し、各乗算ユニット
の各乗算手段の下位から上位の各第2の入力には、第2
の入力を所定段数で等分して得られる下位から上位の各
第2の部分入力を前記各乗算タイミングにかかわらず固
定的に入力さーU・、第1の入力を所定段数で等分して
得られる各第1の部分入力を、各乗算タイミング毎に下
位から順次、各乗算ユニットの各乗算手段の各第1の入
力に共通に入力させることにより、乗算結果を最下位の
乗算ユニットの遅延手段の出力として順次出力させるデ
ータ制御手段を有するように構或する。
〔産業上の利用分野〕
本発明は、多数桁同士の乗算を実行する拡張型の多数桁
乗算器に関する。
〔従来の技術〕
近年、通信データの暗号化及び認証アルゴリズムとして
、便利な公開鍵暗号がある。これは通信データを暗号化
する場合、送信者は相手受信者が予め公開している鍵を
用いて電文を暗号化し、方受信者は公開鍵と異なる秘密
の鍵により受信電文を復号化する。公開鍵暗号はこのよ
うに送信者、受信者間で同一の鍵を管理する慣用暗号と
異なり、受信者のみが1個の鍵を管理すればよく安全性
が高い暗号である。公開鍵暗号で特に優れた方式の1つ
にRSA暗号があるが、アルゴルズムは多数桁の乗算及
び剰余演算を数百回繰り返す操作を基本とするため、多
数桁の乗算をハードウエア規模を小さく、かつ高速処理
で実行する乗算回路が望3 4 まれている。
従来の多数桁乗算器の構或例として、被乗数l28×乗
数128ビッ1・で乗算重位32X32ビットの多数桁
乗算を行う多数桁乗算器の構或を第7図に示す。同図の
多数桁乗算器は、乗数を格納するレジスタファイルRF
5、被乗数を格納する巡回型シフトレジスタR E G
 1 o −R E G 1 3、32ビット×32ビ
ットの乗算器M U L 2 o〜MUL23、64ビ
ットの加算器ADD3o〜ADD33、乗算結果格納用
の64ビットレジスクRE G 4 o = R E 
G 4 2及び256ビットの全加算器A D D ’
6により構或されている。
被乗数Bは巡回型シフトレジスタR E G 1 o〜
R E G 1 3に格納されており、乗算器MUL2
0〜M U L 2 3で32ビット×32ビントの乗
算が終了する毎に、各レジスタの内容がREGI。一R
EGII−+REG1。→REG13→REG1oとい
うよう゛に巡回シフトされる。
乗数AはRF5に格納されており、後述するAO、A1
、A2、A3の順にRF5から引き出されて乗算器MU
L2o =MUL23に入力される。
乗算器MUL20の各出力は加算器A D D 3 o
〜A D D 3 :lで累積加算され部分積が求めら
れる。
上記構或の従来例の動作を以下に説明する。
まず、乗数Aと被乗数Bの構戒を第8図に示す。
同図に示される如く、乗数Aは下位ビットから上位ビッ
トに向けて、各々32ビットずつの部分データAO, 
AI、A2、A3の計128ビットで構成される。被乗
数Bも同様に、各々32ビットずつの部分データBO、
B1、B2、B3の計128ビットで構威される。そし
て、被乗数Bに乗数Aを乗算して得られる乗算結果Mは
、下位から上位に向けて、各々32ビットずつの部分デ
ータMO〜M7の計256ビットの値を有するが、始め
に、第7図の従来例がこの乗算を実現するための基本原
理について以下に示す。
まず、乗算結果Mの最下位の32ビッ1・MOは、第8
図の関係より第9図のように、部分積AO X BO(
以下、部分積のと呼ぶ)の下位32ビッ1・として定ま
る。
5 6 乗算結果Mの次の32ビットのM1は、第8図の関係よ
り第9図のように、部分積AOxB1+ΔIXBO(以
下、部分積■と呼ぶ)に上記部分積■の上位32ビット
を加算して得た値の下位32ビットとして定まる。
同様に、乗算結果Mの次の32ビッ1・のM2は、第9
図のように、部分積AOxB2+A1xB1+A2xB
O(以下、部分積■と呼ぶ)に上記部分積■の上位32
ビットを加算して得た値の下位32ビントとして定まる
M3は、第9図のように、部分積AOxl33−t−A
1xB2+A2XB1+A3XBO (以下、部分積■
と呼ぶ)に上記部分積■の上位32ビットを加算して得
た値の下位32ビ・ノトとして定まる。
M4は、第9図のように、部分積A1xB3+A2xB
2+A3XB1 (以下、部分積■と呼ぶ)に上記部分
積■の上位32ビッ1・を加算して得た値の下位32ビ
ソ1・とじて定まる。
M5は、第9図のように、部分積^2XB3−+−^3
×■2(以下、部分積■と呼ぶ)に上記部分積■の上位
32ビットを加算して得た値の下位32ビットとして定
まる。
M6は、第9図のように、部分積A3XB3(以下、部
分積■と呼ぷ)に上記部分積■の上位32ビットを加算
して得た値の下位32ビットとして定まる。
そして、M7は、第9図のように、上記部分積■の上位
32ビットとして定まる。
以」二の部分積の演3γと力II算の各動作を実現する
ために、第7図の従来例は以下に示す動作を行う。
第7図の多数桁乗算器では、32ビット×32ピントの
乗算を行う乗算器M U L 2 o〜M U L 2
 3の4回の乗算動作により、第9図の各部分積■〜■
を/iii′c7′ずる。
そして、第1回目の乗算動作時には、巡回型シフ1・レ
ジスタREG1o〜I3より各M U L 2 o〜2
3に、各々、被乗数Bの各部分データBO、B1、B2
及びB3を入力させる。また、RF5から各MUL 2
 .〜23に乗数Aの部分データAOを共通に入力させ
る。また、 7 8 第2回目の乗算動作時には、M U L 2 o〜23
に、REG1o〜13の内容を左に1レジスタ分シフト
した各内容B3、BO、B1及びB2を入力させ、RF
5からAlを共通に入力させる。
第3回目の乗算動作時には、M U L 2 o〜23
に、R E G 1 a〜13を更に左に1レジスタ分
シフトした各内容B2、B3、BO及びB1を入力させ
、RF5からA2を共通に入力させる。
同様に、第4回目の乗算動作時には、M U L 2 
o〜23に、REGI。〜13を1レジスタ分シフトし
た各内容B1、B2、B3及びBOを入力させ、RF5
からA3を共通に入力させる。
上記データ入力動作に基づいて、まず、第9図の部分積
■は、M U L 2 oでの第1回目の乗算動作で得
られる乗算結果を、A D D 3 oを介し(単に通
過させ)てR E G 4 oに格納することにより求
められる。
部分積■は、MUL2+での第1回目及び第2回目の各
乗算動作で得られる各乗算結果を、ADD3で加算し、
その加算結果をR E G 4 +に格納するこ?によ
り求められる。
部分積■は、M U L 2 2での第l回目〜第3回
目の各乗算動作で得られる各乗算結果を、ADD3■で
加算し、その加算結果をREG4■に格納することによ
り求められる。
更に、部分積■は、M U L 2 3での第1回目〜
第4回目の各乗算動作で得られる各乗算結果を、A D
 D 3 3で加算することにより求められる。
一方、部分積■は、M U L 2 oでの第1回目の
乗算動作の後、A D D 3 oをリセッ1・シ、M
UL2oでの第2回目〜第4回目の各乗算動作で得られ
る各乗算結果を、上記A D D 3 oで加算するこ
とにより求められる。
部分積■は、M U L 2 +での第2回目の乗算動
作の後、A D D 3 I をリセットし、M U 
L 2 + での第3回目及び第4回目の各乗算動作で
得られる各乗算結果を、上記A D D 3 +で加算
することにより求められる。
そして、 部分積■は、M U L 2 2での第3回
目の乗算動作の後、ADD3■をリセットし、M9 l0 UL22での第4回目の乗算動作で得られる乗算結果を
、上記A D D 3 2で加算することにより求めら
れる。
以上の動作により、第4回目の乗算動作の終了時点で、
REG4o ,4+ 、42 、ADD33、30、3
+及び32の各出力として求まる各部分積■〜■を、2
56ビットの全加算器ADD6に入力させることにより
、前述の如《隣り合う部分積同士で32ビッ1・ずつ重
なり合うように加算動作が行われる。なお、各累算動作
で生しるキャリービット(第9図斜線部)も加算時に考
慮される。
〔発明が解決しようとする課題〕
上記従来例では、各乗算器MUL2o、2+及び22に
おいて、2つずつの部分積■と■、■と■及び■と■を
演算している。また、同一桁位置の部分積を同一の乗算
器で得るために、各乗算器M U L 2 o〜23に
おいて、乗数Aが下位から上位に向かう方向で部分デー
タを入力させるのに対し、被乗数Bは逆に上位から下位
に向かう方向で入力させる必要があり、更に、各乗算器
M U L 2 o〜23で計算すべき部分積の桁位置
をずらす必要もある。そのために、第7図の従来例では
、巡回型シフトレジスタR E G 1 o = R 
E G 1 3を設ける必要があり、ハードウエア規模
が増大していしまうという問題点を有している。
一方、第9図の如く、部分積■〜■より乗算結果Mを得
るために、第7図の256ビットの全加算器ADD6が
必要となり、この加算回路として、入力する乗数Aと被
乗数Bの桁数が異なると、それに応じたビット数のもの
を用意する必要がある。
従って、ビルディングブロック的に回路を拡張すること
ができず、乗算桁数を変更するのが困難で、拡張性に乏
しいという問題点を有している。
本発明は、ハードウエア規模が小さく、制御が簡単で、
乗算桁数の拡張性に冨む多数桁乗算器を実現することを
目的とする。
〔課題を解決するための手段〕
第1図は、本発明のブロック図である。本発明11 】 2 ?、第1の入力値Aと第2の入力値Bを乗算し乗算結果
Mを得る多数桁乗算装置を前提とする。
まず、乗算手段8(図中8。〜8.1)と、該乗算手段
の出力を第1の入力とする加算手段9(図中90〜9■
1)と、該加算手段の出力を1乗算タイミング分遅延さ
せる遅延手段10(図中100〜10■I)とからなる
乗算ユニット7(図中70〜7■l)を有する。そして
、これらの乗算ユニットは、上位の乗算ユニット7の遅
延手段10の出力を下位の乗算ユニット7の加算千段9
の第2の入力とすることにより、所定段数例えばm段分
、同図70〜7m−1の如く縦続接続した構造を有する
例えば乗算ユニット7Iの遅延手段10.の出力は、乗
算ユニット7。の加算手段9。に入力する。
そして、乗算ユニット7。〜7■1の各乗算手段の下位
から上位すなわち80〜8■−1の各第2の入力には、
第2の入力Bを所定段数mで等分して得られる下位から
上位の各第2の部分入力B。−しを固定的に入力させる
。つまり、乗算手段8oには第2の部分入力B0が入力
し、乗算手段81には?2の部分入力B2が入力し、乗
算手段8。−2には第2の部分入力B.−2が入力し、
乗算手段8■一獣には第2の部分入力B.−1が入力す
る。
そして、第1の入力Aを所定段数mで等分して得られる
各第1の部分入力A0〜Am−+を、各乗算タイミング
毎に下位すなわち八〇から順次、各乗算ユニット70〜
7m−1の各乗算千段8。〜8■1の各第1の入力に共
通に入力させることにより、乗算結果Mを最下位の乗算
ユニット7。の遅延千段10oの出力として順次出力さ
せるデータ制御手段l1を有する。
なお、上記各乗算ユニット7。〜70−Iの乗算手段8
。〜am−1は、該手段からの乗算出力のうちあふれ桁
部分を次回の乗算タイ稟ングの乗算出力に加算する加算
手段を有するように構威される。
〔作   用〕
本発明では、第1の入力Aをm等分して第1の部分デー
タA0〜Am−1とし、第2の入力Bをm等分して第2
の部分データ80〜B.−1として、各部分デ13 l4 ?単位で乗算を行い、順次累算を行って乗算結果Mを求
める。
この場合、縦続接続した各乗算ユニット7。〜7■−1
の各乗算手段8。〜8■4での乗算出力は、加算手段9
0〜9■引及び遅延千段10o〜10■を介して、1乗
算タイミングずつ遅れて順次下位の乗算ユニットに伝達
される。
槌って、各乗算ユニッI・70〜7■−1の各乗箕手段
8。〜8、一。の第2の入力として、桁位置が1単位ず
つずれた第2の部分データB。−Bm−1を固定的に入
力させ、一方、各第1の入力には、データ制御手段11
によって、共通の第1の部分データA。
〜A.−1を各乗算タイミング毎に順次入力させること
により、各乗算ユニット7。〜70−1の各加算手段8
。〜8■−,において、桁位置が一致した各乗算出力を
累算することができ、最終的に爪下位の乗算ユニッI・
7oの加算千段9。において、桁位置が一致した乗算出
力の総和を求めることができる。
これにより、遅延千段10oからの出力として、各桁位
置毎の乗算結果Mを順次求められる。
以上の如く、各乗算手段8。〜8、一,へ入力する第2
の部分データB。−Bm−1は、各乗算タイミングづσ
に順次桁位置をずらす必要がなくなり、従来例のような
巡回型シフl・レジスタを設けなくてよい。
また、従来例では、各乗算出力を最終的に累算するため
の加算器の桁数を第1の入力A及び第2の入力Bの桁数
に応して変更する必要があったが、本発明では、乗算ユ
ニソト7をビルディングブロック的に縦続接続し、デー
タ制御千段11から与える第1の部分デークA。,A1
.・・・の深さを変更するだけで、任意の多数桁の乗算
を実行する乗算装置を構或することができる。
〔実  力缶  例〕
以下、図面を参照しながら本発明の実施例を説明する。
第2図(a)は、本発明の実施例の全体ブロック図であ
る。
本実施例による多数桁乗算器は、第2図(b)に示され
る乗算部MUL14及び加算部である加算器15 16 ?DD15とレジスタREG16より構威された乗算ユ
ニットl7を基本としている。そして、第2図(a)の
如く、上記乗算ユニット17を17o〜173として示
されるように、直列に接続(縦続接続)することにより
多数桁乗算器が構威されている。
同図の例では、前述の第8図と同様、128ビッ}X1
28ビッ1・の乗数Aと被乗数Bの乗算を行う。そして
、各乗算ユニ、ット17o〜173の乗算器MUL 1
 4o 〜MUL 1 4:!は、32ビット×32ビ
ットの乗ゴγを行うため、乗算ユニット17は17o〜
173の4個(128÷32)が縦続接続される。この
場合、上位の乗算ユニッl・17のレジスタREG16
の出力は下位の乗算ユニット17の加算器ADD15に
入力することにより、乗算ユニット17同士が縦続接続
される。
すなわち、乗算ユニット173のREG16ffの出力
は、乗算ユニット172のADD152に入力し、乗算
ユニット172のREGI6■の出力は、乗算ユニソト
17,のADD15+ に入力し、?算ユニッt・] 
7 +のREGI6+の出力は、乗算ユニット17Gの
ADD15oに入力する。なお、最上位の乗算ユニット
173のADD 1 52の一方の入力は常にOであり
、ここでは実質的に加算は行われない。
第2図(a)において、乗算器MUL14oの第1の入
力としては、REG2 1。から被乗数Bの最下位32
ビットの部分データBOが固定的に入力する。同様にし
て、MUL14+ の第1の入力には、REC.21+
 から次の32ビットの部分データBlが、MUL 1
 4■の第lの入力にはREG21zからB2が、そし
てMUL143の第1の入力にはREG2 13からB
3が各々固定的に入力する。
一方、MUL1 4o 〜MUL 1 43の各第2の
入力としては、RF18から乗数Aの最下位の部分デー
タAOから順に、各乗算タイミング毎に、AO、A1、
A2及びA3が共通に入力する。
次に、第3図は、第2図(a)の乗算ユニット17o及
び17+ の詳細構或図である。乗算ユニット172及
び173も同様の構或である。なお、以下17 18 の説明では、特には言及しない限り各番号の添え字は除
いて説明する。例えば「乗算部14」というときは、乗
算部14o〜143を共通に指すとする。
第3図において、乗算部14は、32ビット×32ビッ
トの乗算器19、32ビット加算器ADD20及びAD
D21、32ビッ1・レジスタREG22及び23、並
びにキャリー用1ビットレジスタREG2 4とから構
成される。
乗算器l9における32ビット×32ビットの乗算出力
は、同乗算器から出力されると、上位32ビットと下位
32ビットが各々32ビット加算器ADD21及び20
に入力される。
下位32ビットの加算器ADD20では、今回の乗算出
力の下位32ビットが、REG23に格納されている前
回の乗算出力の上位32ビットと加算され、REG22
に格納されて乗算部14の出力となる。各R E G 
2 2 o〜223からの各乗算部出力をPMO〜PM
3とする。
上位32ビットの加算器ADD21では、今回の乗算出
力の上位32ビットが、REG2 4に格納されている
前回の加算で生じたキャリーCarry及び下位ビット
加算器ADD20で生じたキャリーと加算され、REG
23に格納される。このとき加算器ADD21で生じた
キャリーは、上述のようにREG2 4に格納される。
次に、第3図において、加算部は、32ビットの加算器
ADD15、この加算結果を1乗算タイミング分遅延す
る32ビットのレジスタREC;16及びキャリー用の
1ビットのレジスタREG25から構威される。
前記乗算部14のレジスタREG22の出力は、32ビ
ットの加算器ADDl5に入力し、前段の乗算ユニット
17の加算部のREG16(同図ではREG16+ )
の出力及びREG25に格納されている前回の加算で生
じたキャリーCarryと加算される。そして、ADD
 1 5の出力はREC;16に格納される。
上記構成の実施例の動作を以下に説明する。
まず、各乗算ユニット17o〜17:I内の各乗19 20 算部14o〜143の動作につき、乗算部14oを例に
とって、第4図の原理動作図に基づいて説明する。
まず、第1のタイミング1.では、乗算部14oの乗算
器19oに、32ビットの乗数AO及び被乗数BOが入
力し、乗算器19oではAO X BOが演算される。
そして、AO X BOの下位32ビットはADD20
oを介してR E G 2 0 oにセットされ、第4
図の如く乗算タイ稟ング1.における乗算部出力P M
 O oとなる。このときREG2 3oの出力はOで
ある。一方、AOxBOの上位32ビットはADD2i
oを介して、次の乗算タイえング1,の立ち上がりでR
EG23oにセットされる。このとき、R E G 2
 4 oからのキャリーCarryは0である。
第2のタイミングtlでは、乗算部14oの乗算器19
oに、乗数AI及び被乗数BOが入力し、乗算器19o
ではAIXBOが演算される。そして、AIXBOの下
位32ビットはADD20oにおいて、第4図の如く、
し,の立ち上がりでREC;23。
にセットされた前回の乗算タイミングt。でのAO×R
Oの−1二位32ビットと加算され、乗算タイミングt
1における乗算部出力P M O r となる。一方,
、AIXBOの上位32ビットは、ADD21oにおい
てA D D 2 0 oからのキャリーCarryと
加算され、次の乗算タイミングt2の立ち上がりでRE
G23oにセットされる。また、このとき生じたキャリ
ーCarryは、t2の立ち上がりでREG2 4oに
セットされる。
箪3のタイミングし、で&.i ,乗算部14oの乗算
器19oに、乗数A2及び被乗数BOが入力し、乗算器
19oではA2XBOが演算される。そして、A2XB
Oの下位32ビットはADD20oにおいて、第4図の
如く、t2の立ち上がりでREG23oにセットされた
前回の乗算タイミング1.でのAIXBOの上位32ビ
ット(キャリーCarryを含む)と加算され、乗算タ
イミングt2における乗算部出力P M 0 2となる
。一方、A2 X BOの上位32ビットは、ADD2
1oにおいてA D D 2 0 oからのキャリーC
arry及びR E G 2 4 oに格納されて2■ 22 いる前回のキャリーCarryと加算され、次の乗算タ
イ呉ングL3の立ち上がりでRIEC23oにセソトさ
れる。このとき生じたキャリーCar+yは、t3の立
ち」二がりでR B G 2 4 oにセ・ントされる
第4のタイミングL3では、乗算部14oの乗算器19
oに、乗数A3及び被乗数BOが入力し、乗II器19
oでは^3Xl30が演算される。そして、A3XBO
の下位32ビッ1・はADD20oにおいて、第4図の
如く、t3の立ち上がりでREG23oにセン1・され
たIll IL!lの東算夕・fミング12でのA2X
BOの上位32ビット(キャリーCarryを含む)と
加算され、乗算タイ旦ングL3における乗算部出力P 
M O 3となる。一方、A3 X BOの上位32ビ
ットは、A D D 2 1 oにおいてADD20o
からのキャリーCarry及びREG24oに格納され
ている前回のキャリーCarryと加算され、次の乗算
タイくングt4の立ち上がりでREG23oにセットさ
れる。このとき生したキャリーCarryは、t4の立
ち」二かりでREG240 にセントされる。
そして、第5のタイ美ングt4では、乗算部14oの乗
算器190には入力がなく、その出力は0となる。従っ
て、A D D 2 0 oの出ノノは、第4図の如く
、t4の立ち上がりでREG23oにセットされた前回
の乗算タイくングt3におげるA3xnoの41二拉3
2ビ・ンl・( ’1’ +りー(arryを含む)と
なり、これが乗算タイミングt4における乗算部出力P
 M O A となる。
以上、LO〜し4の5クイξングで、乗算ユニット17
oの乗算部14oから、32ビントずつの5つの乗算部
出力P M O o = P M O s 、計160
ビットが出力される。
」二述の動作は、他の乗算ユニント17,〜173の各
乗算部141〜143においても全く同様であり、第4
図のBOが各々B1、B2又はB3に置き代わるだけで
ある。従って、クイくングLo−Laにおける各乗算部
141〜143における各乗算部出力P MOo ”P
 MOa 、P M I. o〜P M 1 4、P 
M 2 o = P M 2 a及びP M 3 o 
〜P M 3 4は、第5図に示される如くとなる。な
お、同図では、キャリーCarryは省略してある。
23 24 以上の各乗算部14o〜143の動作に基づく第2図(
a)の各乗算ユニン1’l7o〜173の全体的な動作
を、各加算部(第2図(b)参照)での動作を含めて以
下に説明する。
第6図は、各乗算ユニッl]7o〜171の各加算部の
原理動作図である。同図において、同一点線上の加算記
号「+」は、同図の如く対応ずる各乗算ユニット17o
、17+及び17。内の各加算器ADD 1 5o ,
 1 5+及び152において、各点線に対応する同一
のクイ硯ングt。−t7で実行される加算動作を示す。
なお、最上位の乗算ユニッhl13の加算器A. D 
D 1 5 3は、一方の入力が常に0のため、乗算部
143からの乗算部出力P M 3 o = P M 
3 4をそのままR E G 1 6 3から下位の乗
算ユニット17。の加算器ADD 152に出力する。
まず、第2図(a)の乗算ユニット17oのREG16
oから出力される乗算結果Mの最下位の32ビッI−M
Oは、第8図及び第5図の関係より第6図のように、乗
算部出力P M O oとして定まる。乗算部出力P 
M O oばタイ旦ングjoで加算器ADD15oを介
して求まるが(なお、このタイミングでのREC.16
1の出力はOである)、その出力はREG16oで1乗
算タイミング分遅延されるため、結局、乗算結果MOぱ
、クイくングLOの1タイミング後のタイミングt1に
おいてREG16oから求まる。
乗算結果Mの次の32ビットM1は、第8図及び第5図
の関係より第6図のように、乗算部出力PM 1 oと
P M O Lを加算して得た値として求まる。
ここで、乗算部出力P M i oはタイミングtoで
加算器ADD151 を介して求まり(なお、このタイ
ミングでのREC]f3zの出力はOである)、1乗算
タイミング後のt. I においてREG161から出
力され、加算器ADD15oに入力ずる。
そして、このタイミングで加算器A D D 1 5 
oに乗算部出力P M O +が入力するため、タイピ
ングt1において加算器ADD15oからPM1o十P
 M O +が得られる。この出力はREG16oで1
乗算タイミング分遅延されるため、結局、乗算25 26 ?果M1は、タイミングt1の1タイミング後のタイミ
ングt2においてREG16oから求まる。
乗算結果M2は、第8図及び第5図の関係より第6図の
ように、乗算部出力PM2o ,PM1+及びPMO■
を加算した値として求まる。ここで、乗算部出力P M
 2 oはタイくングL。で加算器ADD15■を介し
て求まり(なお、このタイミングでのREG163の出
力は0である)、1乗算タイミング後のt1においてR
EG162から出力され、加算器A D D 1 5 
lに入力する。そして、このタイミングで加算器ADD
15+に乗算部出力P M 1 +が入力するため、タ
イミング1+において加算器ADD15+からP M 
2 o + P M 1 +が得られる。この出力は、
1乗算タイミング後のt2においてREG16+から出
力され、加算器ADD15。に入力する。そして、この
タイミングで加算器ADD1 5oに乗算部出力P M
 O 2が入力するため、タイミングt2において加算
器AD D 1 5 oからP M 2 o + P 
M 1 + + P M O 2が得られる。この出力
はREC;16oで1乗算タイ?ング分遅延されるため
、結局、乗算結果M2は、タイくングL2の1タイミン
グ後のタイミングt3においてREG16oから求まる
乗算結果M3は、第8図及び第5図の関係より第6図の
ように、乗算部出力PM3o 、’ PM2+、PMI
■及びP M O 3を加算した値として求まる。
そして、P M 3 oはタイ逅ングtoにおいて乗算
部143から求まり、PM2+ は1.において乗算部
142から、P M 1 2はL2において乗算部14
+から、P M O 3はt3において乗算部14oか
ら各々求まり、各出ノ) &:t: J: h″I.の
乗算ユニソ1・に関する出力から順次、REG163〜
REG16+によって1乗算タイミングずつ遅延されな
がら、第6図の如<ADD 1 52 〜ADD1 5
oにおいて累算され、タイミングt4において、REG
I6。から乗算結果M3として求まる。
乗算結果M4についても同様に、乗算部出力PM3+ 
、PM22 、PM13及びP M O aを加算した
値として、タイミングL5においてREG1G。
から求まる。
27 28 乗算結果M5についても同様であるが、最下位の乗算ユ
ニット17oの乗算部14oには入力がなくなる(0と
なる)ため、そこからの乗算部出力は0となる。従って
、貼は、乗算部143〜14,からの各乗算部出力PM
3。、PM2:+及びPM1−を加算した値として、タ
イ短ングL6においてREG16oから求まる。
乗算結果M6については、乗算ユニットl7o及び17
+の各乗算部14o及び14+に入力がなくなるため、
乗算部143及び142からの各乗算部出力P M 3
 3及びP M 2 aを加算した埴として、タイミン
グt7においてREG16。から求まる。
そして、乗算結果Mの最上位の32ビットである乗算結
果M7については、乗算ユニット17o〜172の各乗
算部14a〜142に入ノjがなくなるため、乗算部1
43からの乗算部出力P M 3 aが順次下位の乗算
ユニット172〜17oに伝達され、タイミングt。に
おいてREC;16oから求まる。
?上のように、同一桁位置の32ビットの乗算結果MO
−M7の各々を求めるために累算されるべき各乗算部出
力は、各乗算ユニット17o〜173におい゛(、」一
位の束算ユニン1・になるほどl乗算クイくングずつ早
いタイミングで計算され、それらが順次下位の乗算ユニ
ットに1乗算クイくングずつ遅延されながら伝達され、
各乗算ユニットの加算器ADD15■〜15。で累算さ
れる。この結果、最下位の加算器ADD15。の出力と
して、各乗算ユニットからの全ての乗算部出力PM3〜
PMOが累算されたものが得られ、1組の32ビットの
乗算結果(MO〜M7の何れか)を求めることができる
なお、上記動作において、各乗算ユニットl7o〜17
2内の加算器ADD 1 5o ”−ADD 1 52
でキャリーCarryが発生した場合、それらは各レジ
スタREG25o〜REG252 (第3図参照)に格
納され、次のタイミングで第6図の矢印「一」の如く加
算器ADD15o〜152で加算される。
以上の実施例では、128ビット×128ビッ2 9ー 30 トの乗数八と被乗数Bの乗算を行う場合を例に説明した
が、より桁数の多い演算を行いたい場合には、第2図(
b)の構威の乗算ユニット17を更に縦続接続すればよ
い。これにより、32しソl・単位で乗算を行う桁数を
容易に設定できる。
なお、各乗算ユニット17の乗算ビット数は、勿論32
ビットに限られるものではない。
〔発明の効果〕
本発明によれは、各乗算ユニットの各乗算手段の第2の
入力として、桁位置が1単位ずつずれた第2の部分デー
タを固定的に入力させ、一方、各第1の入力には、デー
タ制御手段によって、共通の第1の部分データを各乗算
タイミング毎に順次入力させる構或とすることができる
。従って、各乗算手段へ入力する第2の部分データは、
各乗算タイミング毎に順次桁位置をずらす必要がなくな
り、従来例のような巡回型シフ1・レジスタを設ける必
要がなくなる。これにより、ハードウエア規模の縮小と
制御の簡略化を図ることが可能となる。
また、乗算ユニットをビルディングブロック的に縦続接
続し、データ制御手段から与える第1の部分データの深
さを変更するだけで、任意の多数+fjの妹りtを火行
ずる乗冥[装置を+ill戊することができ、拡張性に
冨む多数桁乗算装置を実現することが可能となる。
【図面の簡単な説明】
第1図は、本発明のブロック図、 第2図(a)、(b)は、本発明の実施例のブロック図
、第3図ぱ、乗算ユニッI・の詳細構成図、第4図は、
乗算部の原理動作図、 第5図は、各乗算部出力を示した図、 第6図は、加算部の原理動作図、 第7図は、従来例の構或図、 第8図は、乗算例を示した図、 第9図は、従来例の計算原理動作図である。 7o〜7■−1 ・・・乗算ユニット、80〜8■−S
 ・・・乗算手段、 9 o 〜9■1  ・   ・ ノ川q丁段、31 32 10o〜10l1=宜 ・・・遅延手段、1l・・・デ
ータ制御手段、 A・・・第1の入力、 B・・・第2の入力、

Claims (1)

  1. 【特許請求の範囲】 1)第1の入力値(A)と第2の入力値(B)を乗算し
    乗算結果(M)を得る多数桁乗算装置において、乗算手
    段(8)と該乗算手段の出力を第1の入力とする加算手
    段(9)と該加算手段の出力を1乗算タイミング分遅延
    させる遅延手段(10)とからなる乗算ユニット(7)
    を、上位の前記乗算ユニットの遅延手段の出力を下位の
    前記乗算ユニットの加算手段の第2の入力とすることに
    より、所定段数(m)分縦続接続(7_0、7_1、・
    ・・、7_m_−_2、7_m_−_1)した構造を有
    し、 前記各乗算ユニットの各乗算手段(8_0、8_1、・
    ・・、8_m_−_2、8_m_−_1)の下位から上
    位の各第2の入力には、前記第2の入力(B)を前記所
    定段数(m)で等分して得られる下位から上位の各第2
    の部分入力(B_0、B_1、・・・、B_m_−_2
    、B_m_−_1)を前記乗算タイミングにかかわらず
    固定的に入力させ、 前記第1の入力(A)を前記所定段数(m)で等分して
    得られる各第1の部分入力を、前記各乗算タイミング毎
    に下位から順次(A_0、A_1、・・・、A_m_−
    _2、A_m_−_1)、前記各乗算ユニットの各乗算
    手段(8_0、8_1、・・・、8_m_−_2、8_
    m_−_1)の各第1の入力に共通に入力させることに
    より、前記乗算結果(M)を最下位の前記乗算ユニット
    (7_0)の遅延手段(10_0)の出力として順次出
    力させるデータ制御手段(11)を有することを特徴と
    する多数桁乗算装置。 2)前記各乗算ユニットの乗算手段は、該手段からの乗
    算出力のうちあふれ桁部分を次回の乗算タイミングの乗
    算出力に加算する加算手段を有することを特徴とする請
    求項1記載の多数桁乗算装置。
JP24059989A 1989-09-19 1989-09-19 多数桁乗算装置 Pending JPH03103922A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24059989A JPH03103922A (ja) 1989-09-19 1989-09-19 多数桁乗算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24059989A JPH03103922A (ja) 1989-09-19 1989-09-19 多数桁乗算装置

Publications (1)

Publication Number Publication Date
JPH03103922A true JPH03103922A (ja) 1991-04-30

Family

ID=17061891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24059989A Pending JPH03103922A (ja) 1989-09-19 1989-09-19 多数桁乗算装置

Country Status (1)

Country Link
JP (1) JPH03103922A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0421026A (ja) * 1990-05-14 1992-01-24 Nec Corp 高桁乗算装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0421026A (ja) * 1990-05-14 1992-01-24 Nec Corp 高桁乗算装置

Similar Documents

Publication Publication Date Title
EP0801345B1 (en) Circuit for modulo multiplication and exponentiation arithmetic
US6151393A (en) Device and method for modular multiplication
US5764554A (en) Method for the implementation of modular reduction according to the Montgomery method
Kwon et al. Two implementation methods of a 1024-bit RSA cryptoprocessor based on modified Montgomery algorithm
US7206410B2 (en) Circuit for the inner or scalar product computation in Galois fields
EP1560110A1 (en) Multiple-word multiplication-accumulation circuit and Montgomery modular multiplication-accumulation circuit
Broscius et al. Exploiting parallelism in hardware implementation of the DES
Großschädl A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m)
JP3302043B2 (ja) 暗号通信方法及びそのシステム
Kim et al. A new hardware architecture for operations in GF (2/sup n/)
US6957243B2 (en) Block-serial finite field multipliers
KR20040060445A (ko) 4-2 컴프레서를 이용한 몽고메리 모듈러 승산기 및 그승산 방법
JPH08339310A (ja) モンゴメリ法によるモジュラ操作の実行に伴うエラー訂正パラメータの算出方法
Daneshbeh et al. A class of unidirectional bit serial systolic architectures for multiplicative inversion and division over GF (2/sup m/)
JP2001051832A (ja) 乗算剰余演算方法および乗算剰余回路
JPH03103922A (ja) 多数桁乗算装置
Srinivasan et al. VLSI implementation of low power high speed ECC processor using versatile bit serial multiplier
Wang et al. A unified architecture for a public key cryptographic coprocessor
Lu et al. A programmable VLSI architecture for computing multiplication and polynomial evaluation modulo a positive integer
EP1455270A2 (en) Method and apparatus for basis conversion in finite field and a multiplier
KR20060037941A (ko) 유한체 GF(2^m)에서의 하이브리드 곱셈 연산 장치및 연산 방법
US5948051A (en) Device improving the processing speed of a modular arithmetic coprocessor
Kalaiarasi et al. A parallel elliptic curve crypto-processor architecture with reduced clock cycle for FPGA platforms
JP2004334212A (ja) モンゴメリ掛け算器及び掛け算方法
JP3129525B2 (ja) 整数上の乗算回路