JPH09114645A - 有限体上の乗算回路 - Google Patents

有限体上の乗算回路

Info

Publication number
JPH09114645A
JPH09114645A JP7266639A JP26663995A JPH09114645A JP H09114645 A JPH09114645 A JP H09114645A JP 7266639 A JP7266639 A JP 7266639A JP 26663995 A JP26663995 A JP 26663995A JP H09114645 A JPH09114645 A JP H09114645A
Authority
JP
Japan
Prior art keywords
multiplication
circuit
bits
addition
unit
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
JP7266639A
Other languages
English (en)
Inventor
Masahito Kashima
雅人 鹿島
Fukiyou Ri
富強 李
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co 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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP7266639A priority Critical patent/JPH09114645A/ja
Publication of JPH09114645A publication Critical patent/JPH09114645A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】従来の順序動作方式の回路がもつ乗算速度が遅
い問題点を克服して拡張ガロア体等の有限体上の元の乗
算に要する時間を短縮する。 【解決手段】例えば拡張ガロア体上の8ビット構成の2
個の元を法多項式により定義される算法に従って乗算す
るため、乗算段回路10により被乗算元Aのビットai(i=0
〜7)および被乗算元Bのビットbj(j=0〜7)のすべてのビ
ット間の積aibjを作り、加算段回路20により元AとBの
積の元Pを構成する各ビットp0〜p7ごとに乗算段回路10
による64個のビット間積aibjから法多項式で定義された
乗算方式に適合する積aibjの組み合わせを図示のように
抽出してすべて加算することにより元AとBを乗算した
積の元Pの例えばビットp1を求める。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデータに付与された
エラーコードを用いてデータに生じ得るエラーを検出な
いし訂正する際のいわゆるシンドロームの計算などに必
要な乗算を行なうための回路,より正確には複数ビット
構成の元の四則演算に対し閉じられた群を形成する有限
体の上で2個の元を法多項式で規定される所定の演算方
式に従って乗算するための回路に関する。
【0002】
【従来の技術】上述のデータのエラーを検出ないし訂正
するためにエラーコードを含めた複数ビットからなるデ
ータ単位を1個の数ないし符号語と見做してそれに四則
演算を施す算法がかなり前から開発されており、周知の
ようにこの算法では複数ビット構成の符号語を1個の元
として扱い、その四則演算を演算結果が有限個の元から
構成される群から食み出すことがないように定義し、こ
の演算に対し閉じられた群である有限個の元からなるガ
ロア群が有限体と呼ばれている。本発明はかかる有限体
の上で2個の元を乗算するための回路に関する。
【0003】この有限体上の四則演算はそれを構成する
元の個数である位数q等をいわゆる法ないし modとして
定義され、四則演算の結果が有限体を食み出す場合はそ
れを法で除算した剰余を演算結果とする。以下、よく知
られていることではあるが、本発明に関する説明の理解
を容易にするために必要な範囲に限定して有限体上のか
かる算法の概要を説明する。
【0004】位数qが2の最も簡単な有限体 GF(2)では
元Aは0か1かであって、2を法とするmod2の加算は 0
+0=0, 0+1=1+0=1, 1+1=0で, つまりイクスクルーシブオ
アの論理で定義され、減算は加算と同じになる。また、
乗算はアンドの論理と同じく0x0=0, 0x1=1x0=0, 1x1=1
で定義され、0を除く1による除算の結果はもちろん除
算前と同じである。これに次いで簡単な位数qが3の有
限体 GF(3)では元Aは0か1か2であり、mod3の加算と
乗算は演算結果が3以内のとき通常のとおりとするが、
3を越えるときは 1+2=2+1=0, 2+2=1, 2x2=1とする。減
算は結果が負になるときに例えば 1-2=-1=-1+3=2のよう
にする。また、0を除く元による除算は元が1のとき除
算結果を演算前と同じとし, 2のときは数の場合の逆数
に当たるその逆元を1としてその乗算と同じとする。
【0005】位数qが素数である有限体 GF(q)では上述
の要領で四則演算を定義できるが、実用面から見て重要
な位数qが素数でない場合は有限体 GF(q)として最も簡
単な有限体 GF(2)を基礎体としてそれを位数qが2のべ
き乗の2m の場合に拡張したいわゆる拡張ガロア体を用
いて、q個の元を0, 1, α, α2,・・・のようなべ表示
や, 符号語に対応したm個のビットからなるベクトル表
示や, 各ベクトルを多項式で表現した多項式表示で表す
ようにする。例えば、m=3の場合の8個の元に対する
これらの表示は次のようになる。
【0006】 0 = (000)= 0 1 = (001)= 1 α = (010)= x α2 = (100)=x2 α3 = (011)= x+1 α4 = (110)=x2 +x α5 = (111)=x2 +x+1 α6 = (101)=x2 +1 ただし、べき表示用のαは基礎体 GF(2)の法である2に
対応する原始元であり、もちろんα0 =1で, かつα7
=1である。ベクトル表示ではそれぞれ0か1である3
個のビットa0〜a2を用いて元Aを(a2,a1,a0)により表
し、多項式表示ではベクトルを見せかけの変数xを用い
てa2x2 +a1x+a0で表す。
【0007】元の加算はベクトル表示の対応ビット間に
mod2の加算を施して行ない、多項式表示では各項の係数
にmod2の加算を施すことによって行なう。例えば、ベク
トル表示では (011)+(110)=(101)であって、多項式表示
ではx+1+x2+x=x2+1となこのように加算がmod2なので減
算は加算と同じになる。元の乗算は多項式表示の乗算に
より行なうが、その際の法としてm次の多項式中の因数
分解できない既約多項式であるいわゆる原始多項式を用
いる。mが3の場合はこの法多項式としてふつうx3
x+1が用いられる。従って、多項式の乗算結果をこの
法多項式で除算した剰余を乗算の結果とする。例えば
(x+1)(x2+x+1)=x3+1=(x3+x+1あるから剰余のxが乗算
結果である。次に、ある元による除算はその元の逆元の
乗算により行ない、前述のようにα7=1 であるから例え
ばα2=(100)=x2の逆α5=(111)=x2+x+1になる。
【0008】なお、以上の説明における元の多項式表示
は法多項式による除算の剰余をとるためにべき表示と異
なってくるが、多項式表示の変数xはべき表示の原始元
αと本来は同じものであり、表示上の混乱を避けるため
別の符号を用いるようにしたものである。本発明は以上
のように四則演算が定義された有限体上,とくに拡張ガ
ロア体上の元の乗算に関する。
【0009】図4にm=8の場合について2個の元Aと
Bを拡張ガロア体である有限体上で乗算する代表的な従
来回路の例を示す。この有限体を構成する2m =256個の
元は0,1,α〜α254 のべき表示で示され、ベクトル表示
では各8ビットのベクトルで示される。原始元αはベク
トル表示では(00000010)であって、通常の2進法上の2
に相当する。図4(a) は元AとBの乗算用の全体回路で
あり、同図(b) はその一部をなす原始元αの乗算単位回
路である。以下、元の乗算用の法多項式としてm次の原
始多項式であるFx=x8+x4+x3+x2+1 を用いるものとす
る。
【0010】図4(a) に示すように全体回路は8個の乗
算回路1と7個の単位乗算回路2と7個の加算回路3と
からなる。各乗算回路1は図の左側部分に示す元Aの8
個のビットa7〜a0と, 元Bの8個のビットb7〜b0中の1
ビット分とを受けて、元Aの8個のビットのそれぞれに
対して元B中の1ビットを乗算した8個の乗算結果を同
時に出力するもので、例えば8個のアンドゲートをこれ
に組み込んでそれぞれビット間の乗算を行なわせるよう
にする。
【0011】いま、元Aを a7x7+a6x6〜+a1x+a0 なる多
項式で表すと、元Bからビットb7受ける先頭の乗算回路
1の8ビットの出力は a7b7x7+a6b7x6〜+a1b7x+a0b7 な
多項式で表されるから、便宜上この多項式を簡略にAb7
で表すこととする。図の先頭の単位乗算回路2は先頭の
乗算回路1からこの出力Ab7を読み込み、それに原始元
αを乗算した上で多項式Ab7αで表される8ビットの乗
算結果を出力するものであり、その具体回路例が図4
(b) に示されている。
【0012】図示の単位乗算回路2は線形フィードバッ
クシフトレジスタ(LFSR)と呼ばれているもので、便宜上
7〜0が付されたシフトレジスタの8個の段2aに加算器
2bを法多項式に応じて組み込んだ構成になっており、そ
の各段2aに元の多項式表示のx7〜1の係数であるビット
を数字7〜0に対応して記憶し、図4(a) のクロッパル
スCPにより各段の記憶内容を矢印Sで示すよう左側に向
けてシフトさせる。また、その際に法多項式Fx=x8+x4+
x3+x2+1 に合わせて数字7の段の記憶数字0の段にフィ
ードバックし, かつ数字2と3と4の段に付随する加算
器2bであるイクスクルーシブオアゲートに与えて前段の
記憶内容に加算した結果をその段に記憶させるようにな
っている。
【0013】いま、数字7の段のシフト前の記憶内容が
0であるとすると、どの加算器2bも加算をしないから乗
算単位回路2としてのシフトレジスタの各段内の記憶内
容が単に1段ずつ循環することになり、シフトにより2
進法上の2である原始元αがシフトレジスタの記憶内容
に乗算されたことになる。これからわかるように単位乗
算回路2はその記憶内容のシフトにより原始元αを乗算
するが、数字7の段の記憶内容が1であった場合は、こ
の乗算と同時に法多項式Fxの中のx8以外の項対応する段
に1が加算される。
【0014】さて、このmod2の加算は前述のように減算
と同じであるから、加算により乗算結果を表す多項式か
ら法多項式Fxが減算された, つまり乗算結果を法多項式
Fxで除算した剰余の元が演算されたことになる。このよ
うにして、図4(a) の先頭の単位乗算回路2は読取パル
スRPに応じ先頭の乗算回路1からその乗算結果Ab7を読
み込んだ後、クロックパルスCPに応じそれに原始元αを
乗算した結果の前述の多項式Aαb7を法多項式Fxにより
除算した剰余の形で演算した上で、その下側に示された
加算回路3に対して出力する。
【0015】各加算回路3は8個のイクスクルーシブオ
アゲートで構成されており、先頭の加算回路3は上述の
先頭の単位乗算回路2から受ける多項式Ab7αで表示さ
れる元に対し上から2番目の乗算回路1による元Aと元
Bのビットb6との乗算結果の多項式Ab6で表示される元
を加算して、多項式A(b7α+b6)で表される加算結果の元
を出力する。これを受ける2番目の単位乗算回路2は前
述と同様に原始元αをそれに乗算し, さらに法多項式Fx
で除算した剰余の形で多項式A(b7α2+b6α) 表される元
を出力する。2番目の加算回路3はこれに3番目の乗算
回路1の乗算結果Ab5を加算して多項式A(b7α2+b6α+b
5)で表される元を出力する。
【0016】以下、同様に動作を順次繰り返して最後の
加算回路3の動作が終わったとき、最終演算結果として
多項式A(b7α7+b6α6 〜 +b1α+b0)が法多項式Fxで除算
剰余の形で得られる。原始元αは前述のように多項式表
示用のxと同じなので、これが元A=a7x7+a6x6 〜+a1x
+a0 と元B=b7x7+b6x6 〜+b1x+b0 の乗算結ある積の元
P=p7x7+p6x6 〜+p1x+p0 にほかならない。従って、こ
の最後の加回路3から積の元Pを構成する各ビットp7〜
p0を取り出せばよい。
【0017】
【発明が解決しようとする課題】以上説明したように従
来技術では、2個の元の一方に対し他方の構成ビットを
1個ずつ複数回に分割して乗算することにより、演算の
定義に忠実な乗算回路を容易に構成することができ、さ
らに単位乗算回路として前述のLFSR方式のシフトレジス
タを用いることにより、各ビットの乗算結果を法多項式
で除算した剰余の形で非常に効率的に得ることができ
る。
【0018】しかし、8ビット構成の元の乗算には図4
(a) に示したように7個の単位乗算回路が必要であり、
このため全体回路の動作が7段階に分割されるだけでな
く、その各段階ごとに単位乗算回路に読取パルスを与え
てまず元を読み込ませた上でクロックパルスを与えて乗
算動作をさせ, さらにそれから乗算結果を受ける加算回
路の動作を待って次の段階の動作に移る必要があるの
で、かかる一連の動作にかなりの時間を要する問題があ
る。このほか、各単位乗算回路にはふつうはD形フリッ
プフロップである段が8個必要であり、全体では56個も
の段が必要になるので、集積回路装置に作り込む際にか
なり広いチップ面積をそれらのために割り当てねばなら
ない問題がある。
【0019】かかる問題点を解決するため、本発明の目
的は回路全体の動作に必要な時間を短縮できる有限体上
の乗算回路を極力簡単な回路で構成することにある。
【0020】
【課題を解決するための手段】冒頭に記載のように複数
ビット構成の元の四則演算に対し閉じた群を形成する有
限体上で2個の元を法多項式で規定される演算方式に従
って乗算するに際し、本発明による第1の乗算回路では
両元のビット間の乗算をそれぞれ行なう複数の乗算単位
からなる乗算段回路と,両元のビット間の加算をそれぞ
れ行なう複数の加算単位からなる加算段回路を用い、第
2の乗算回路では各元の複数ビット中の一部の複数ビッ
トに対して乗算と加算の内の一方の演算を両元のビット
間に施す複数の演算単位とそれらの演算結果に対して他
方の演算を施す演算単位とを含む複数の単位演算回路
と,その演算結果に対して他方の演算を施す複数の演算
単位からなる出力演算段回路を用い、第1の乗算回路で
は乗算段回路と加算段回路の一方による複数個の演算結
果を他方に与え,第2の乗算回路では単位演算回路によ
る複数個の演算結果を出力演算段回路に与えて、いずれ
の場合もこれらの演算結果中から乗算方式に応じ抽出さ
れる組み合わせに対し他方の演算を施して乗算結果とし
ての積の元をその構成ビットごとに求めることにより目
的を達成する。なお、第1と第2の乗算回路における乗
算方式を規定する法多項式にはいわゆる原始多項式を利
用するのがもちろん望ましい。
【0021】さらに、第1の乗算回路では乗算段回路に
よる演算結果を加算段回路に与えるようにし、第2の乗
算回路では一方の演算を乗算とし,他方の演算を加算と
するのが合理的である。第1と第2の乗算回路のいずれ
でも乗算単位としてはアンドゲートやノアゲートやナン
ドゲートを,加算単位としてはイクスクルーシブオアゲ
ートやイクスクルーシブノアゲートをそれぞれ場合ない
しは必要に応じ適宜に選択して利用することができる。
【0022】被乗算元が通常のように8ビット構成であ
る場合は、第2の乗算回路における単位演算回路として
は元の各2ビット分に対する16個の単位演算回路と,そ
れを4個ずつ内包する元の各4ビット分に対する4個の
単位演算回路とを用いるのが最も合理的であり、この場
合は後者の方の単位演算回路による複数の演算結果を出
力演算段手段に与えることでよい。
【0023】図4を参照して説明した従来技術では2個
の元を乗算するための演算を複数の段に分け,各段ごと
に原始元の乗算と同時に法多項式で除算した剰余を求め
かつそれに加算を行なう過程を順次進めるようにしてい
たが、本発明では2個の元を乗算しかつ法多項式で除算
した剰余である乗算結果としての積の元の各ビットが被
乗算元のビット間の積の和の形,すなわち乗算と加算の
2段だけで表現できることに着目して演算の段数を減少
させることにより目的を達成する。
【0024】図2にかかる乗算結果としての積の元の各
ビットを被乗算元のビット間の積の和の形で表す展開式
を元が8ビット構成で法多項式が前述のFx=x8+x4+x3+x
である場合について示す。この図中のaとbの列の0〜
7の数字は被乗算元Aのビットai(i=0〜7)と被乗算元B
のビットbj(j=0〜7)の積aibjを作る組み合わせを示し、
p0〜p7の各列に付けられた小丸は積の元Pのビットp0〜
p7を表す展開式がそれに対応する元Aと元Bのビットの
積aibjの和の形で表現されることを示す。例えば、積の
元Pのビットp1は次式で表される。
【0025】 pl=a0b1+a1b0 +a2b7+a3b6+a4b5+a5b4+a6b3+a7b2 +a6b7+a7b6 +a7b7 なお、上式では実施例の項での説明と対応させるために
4行に分けて示す。積の元Pの他のビットも同様に複数
の積aibjの複数の和の形で表現できる。
【0026】本発明の第1の乗算回路では、被乗算元A
とBのビット間の積aibjを作る乗算単位として例えばア
ンドゲートを複数個備える乗算段回路と,積aibjの和を
作る加算単位として例えばイクスクルーシブノアゲート
を複数個備える加算段回路を用い、乗算段回路から複数
の積aibjを加算段回路に与えてそれらの内から上述の展
開式に応じて抽出した積aibjの組み合わせにつき加算を
施すことにより積Pの元の各ビットを得る。従って、第
1の乗算回路は乗算段回路と加算段回路だけの2段構成
で従来回路より演算段数が少なくなり、かつ両者とも論
理ゲートだけで構成されるので読取パルスやクロックパ
ルスによる順序制御の必要もなくなり、元の乗算に要す
る時間を従来の数分の1以下に短縮できる。
【0027】本発明の第2の乗算回路では、前述の積の
和の形の展開式を各被乗算元の複数ビット中の一部のブ
ロックごとに整理できることを利用して、各ブロックご
との演算を同構成の単位演算回路にまとめてそれに乗算
単位と加算単位を組み込む。さらに、この単位演算回路
に出力演算段回路を組み合わせて、前者による複数の演
算結果を後者に与えて第1の乗算回路と同様にそれらの
中から乗算方式に応じ抽出した組み合わせにつき加算を
施して積の元の各ビットを求める。この第2の乗算回路
でも演算段数を従来より減少させて元の乗算に要する時
間を第1の乗算回路と同程度に短縮することができる。
【0028】なお、以上の第1と第2の乗算回路では乗
算結果である積の元Pの各ビットを被乗算元AとBのビ
ット間の積の和で表現した展開式に基づいて回路を構成
するとしたが、展開式を被乗算元のビット間の和の積で
表現してそれに基づいて回路構成をすることもできる。
この場合、回路構成は若干複雑になるがmod2の加算によ
る和のかわりに通常の論理和を用いるのが便利である。
【0029】
【発明の実施の形態】以下、図面を参照しながら本発明
の実施例を説明する。図1に本発明の第1の乗算回路の
構成例を, 図2に乗算結果である積の元のビットを被乗
算元のビット間の積の和で表現する展開式の例を, 図3
に本発明の第2の乗算回路の構成例をそれぞれ示す。た
だし、図2の説明は作用の項の記載と重複するので省略
する。なお、以下に説明する実施例では有限体は位数q
が28 の拡張ガロア体であり、元は8ビットの構成であ
り、法多項式としてFx=x8+x4+x3+x2+1 を用いるする。
また、いずれの実施例でも乗算結果としての積の元Pの
各ビットp0〜p7を表現する被乗算元AとBのビットai(i
=0〜7)とbj(j=0〜7)間の積aibjの和の形の展開式に立脚
して乗算回路が構成されるものとする。
【0030】図1の上部に乗算段回路10を, 下部に加算
段回路20をそれぞれ一点鎖線により囲んで示す。ただ
し、図の煩雑化を避けるために両回路10と20ともその内
部には積の元Pのビットp1に関連する部分のみを示す。
乗算段回路10はそれを構成する乗算単位11としてアンド
ゲートを図の一点鎖線の枠の上辺に並んだ被乗算元Aの
ビットa0〜a7と左辺に並んだ被乗算元Bのビットb0〜b7
をそれぞれ1ビットずつ受けるように合計では64個配列
してなる。
【0031】いま、2個の被乗算元AとBを多項式によ
りそれぞれ a0+a1x+a2x2〜+a7x7 b0+b1x+b2x2〜+b7x7
で表すと、両元AとBを乗算した多項式はx14を最高次
項として含む次式で表すことができる。 AB=ΣSkxk で表すことができる。ここで、Σは変数kにつき0〜14
の範囲で加算することを示し、Skは k=i+jの条件を満た
す元Aのビットaiと元Bのビットbjとの積aibjのすべて
を加算した和である。例えば、kが12のときS12=a5b7+a
6b6+a7b5であり、もちろんkが0のとき S0=a0b0で, k
が14のときS14=a7b7である。
【0032】上の14次の多項式はもちろんそのままでは
積P=ABの多項式表示に不適格であり、それを法多項
式Fxで除算した剰余である7次の多項式とする必要があ
る。このため上述の14次の多項式ΣSkxk から同じく14
次の多項式であるS14x6Fx 減算, すなわち前者に後者を
加算すると14次の項が消えて13次の多項式になる。多項
式ΣSkxk に法多項式を用いる同様な演算過程を繰り返
して高次項を順次に消すことによって7次の多項式とす
れば、それが多項式ΣSkxk を法多項式Fxで除算した剰
余である積の元Pの多項式 p0+p1x 〜+p7x7 である。こ
のようにして得られる積の元Pの各ビットを次に示す。
【0033】 p0=S0+S8 +S12+S13+S14 p1=S1+S9 +S13+S14 p2=S2+S8 +S12+S13 p3=S3+S8 +S9 +S11+S12 p4=S4+S8 +S9 +S10+S14 p5=S5+S9 +S10+S11 p6=S6+S10+S11+S12 p7=S7+S11+S12+S13 上述中の積の元Pのビットp1を被乗算元AとBのビット
間の積aibjの和として表示すると作用の項で示した前述
の展開式となり、その4個の行が上から順番に上式のS1
とS9とS13 とS14 とにそれぞれ対応する。これからわか
るように、積の元Pのビットp1に関しては乗算段回路10
の64個の乗算単位11の内の図1に斜めの方形で囲んで示
した合計11個を用いることでよい。
【0034】加算段回路20はmod2の加算単位21である例
えばイクスクルーシブオアゲートにより構成され、積の
元Pのビットp1は乗算段回路10内の乗算単位11による上
述の11個のビット間の積をすべて加算して作ればよい。
加算単位21が2入力の場合はこの加算には図のようにビ
ット間の積より1個少ない10個が必要である。なお、加
算段回路20をまず前述のS0〜S14 を作った上でそれらの
加算により積の元Pの各ビットp0〜p7を作るように構成
すれば、加算単位21の必要個数はS0〜S14 用に42個, そ
れらの加算用に27個になり、合計で69個の加算単位21で
加算段回路20を構成できる。さらに、例えばビットp3,p
6,p7を表す前述の式にS11+S12 が共通に含まれている点
に着目してこの加算結果を利用すれば、加算単位21の必
要個数は乗算段回路10内の乗算単位11の64個と同程度か
それ以下に減少する。
【0035】以上のように構成された本発明の第1の乗
算回路は、説明上は乗算段回路10と加算段回路20の2段
構成としたがすべて論理ゲートで構成されているから実
際の動作は1段構成と同じであり、もちろん図4の従来
回路のように読取パルスRPやクロックパルスCPにより順
序制御をする必要がなく、論理ゲートの動作段数から見
ても数段で済むから元の乗算に要する全体時間を従来回
路の数分の1ないしはそれ以下に短縮することができ
る。また、実際の回路の全体構成の点から見ても従来回
路よりかなり簡単になる。
【0036】図3に示す本発明の第2の乗算回路は同図
(a) の中央の単位演算回路30とその右側の出力演算段回
路40から構成され、前者の中に同図(b) の単位演算回路
31が組み込まれる。図3(a) の左側部に示す被乗算元A
とBの乗算結果が図の右側部に示す積の元Pであるが、
出力演算段回路40については図の錯綜を避けるために図
1と同様に積の元Pのビットp1に関連する部分のみを示
す。
【0037】単位演算回路30は被乗算元AやBを構成す
る各8ビット中の一部, 図の例では4ビット分ずつを受
けるよう4個設けられ、図ではこれらを区別するため元
Aの4ビット分a0〜a3を, 元Bから4ビット分b0〜b3を
受けるものを符号P40により表し, 同様にa4〜a7とb0〜
b3を受けるものを符号P41, a0〜a3とb4〜b7を受けるも
のを符号P42, a4〜a7とb4〜b7を受けるものを符号P43
によりそれぞれ表している。これらの単位演算回路30は
すべて同構成のものであり、図では符号P40の単位演算
回路30についてその内部構成が示されている。
【0038】各単位演算回路30には図のように4個の単
位演算回路31と3個の加算回路32が含まれている。単位
演算回路31は元AとBの各2ビット分に対するものであ
り、図には4個を互いに区別するため符号P20〜P23が
付けられている。符号P20のものは元Aの2ビットa0,
a1と元Bの2ビットb0, b1を受け、同様に符号P21のも
のは元Aのa2, a3と元Bのb0, b1を,符号P22のものは
元Aのa0, a1と元Bのb2, b3を, 符号P23のものは元A
のa2, a3と元Bのb2, b3をそれぞれ受けるが、4個の単
位演算回路31はすべて同じ回路構成のものである。
【0039】図3(b) は各単位演算回路31の内部回路を
符号P20のものについて示すものである。図示のように
元Aの2ビットa0, a1と元Bの2ビットb0, b1の間の4
個のビット間の組み合わせに対応してアンドゲートの乗
算単位31aが4個設けられ、その内のビットa1, b0とa
0, b1を受ける2個の乗算単位31aにはそれらの出力を
受けるイクスクルーシブオアゲートである加算単位31b
が設けられる。この加算単位31bと他の2個の乗算単位
31aからこの単位演算回路31の3個の出力が取り出さ
れ、図ではこれらに0〜2の数字が付けられている。い
ま、この符号P20の単位演算回路31の3個の出力にp20
0, p201, p202の符号を付けると、 p200=a0b0 p201=a0b1+a1b0 p202=a1b1 でそれぞれ表現できる。他の3個の単位演算回路31の出
力については符号P21の場合は上式の a0,a1を a2,a3
で, 符号P22の場合は b0,b1を b2,b3で, 符号23の場合
は a0,a1と b0,b1を a2,a3と b2,b3でそれぞれ置き換え
ればよい。それらの各3個の出力を前述と同じ要領で符
号 p21, p22, p23にそれぞれ0〜2の数字を付して例え
ばp210のように表すこととする。
【0040】図3(a) に示すよう符号P40の単位演算回
路30内の3個の加算回路32は上側のものがp202,p210,p2
20を, 中央のものがp211とp221を, 下側のものがp212,p
222,p230をそれぞれ受けるように4個の単位演算回路31
と接続され、これらの3個の加算回路32の各出力と, 符
号P20の単位演算回路31の2個の出力p200, p201と,符
号P23の単位演算回路31の2個の出力p231, p232とがこ
の単位演算回路30から導出され、図ではこれら7個の出
力に0〜6の数字が付けられている。
【0041】いま、符号P40の単位演算回路30のかかる
7個の出力を符号p400〜p406で表すこととすると、これ
らは次のように表現される。 p400=a0b0 p401=a0b1+a1b0 p402=a0b2+a1b1+a2b0 p403=a0b3+a1b2+a2b1+a3b0 p404=a1b3+a2b2+a3b1 p405=a2b3+a3b2 p406=a3b3 他の3個の単位演算回路30の各7個の出力は符号P41の
ものでは上式のa0〜a3をa4〜a7で, 符号P42のものでは
b0〜b3をb4〜b7で, 符号P43のものではa0〜a3とb0〜b3
をa4〜a7とb4〜b7でそれぞれ置き換えた式で表現でき
る。以下、これらのP41とP42とP43の符号をもつ単位
演算回路30の出力を符号 p41,p42,p43に対し0〜6の数
字を付して例えばp410のように表すこととする。
【0042】元AとBの乗算結果としての積の元Pの各
ビットp0〜p7は上述のP40〜P43の符号をもつ4個の単
位演算回路30の各7個の出力中から法多項式Fxで定義さ
れた乗算方式に基づいて抽出された出力の加算によって
得られる。これをビットp1について説明する。作用の項
に示したビットp1の展開式は若干の整理により、 pl=a0b1+a1b0 +a6b3+a7b2 +a2b7+a3b6 +a4b5+a5b4 +a6b7+a7b6 +a7b7 と書くことができ、第1項は4個の単位演算回路30の内
の符号P40を, 第2項は符号P41を, 第3項は符号P42
を, 第4項以降は符号P43をそれぞれもつものに関連す
る。上式の各行を前述の符号 p40〜p43 に数字を付した
単位演算回路30の出力で表すと次式が得られる。
【0043】pl=p401+p415+p425+p431+p435+p436 図3(a) に示す出力演算段回路40は上式に応じて4個の
単位演算回路30からの6個の出力を加算して積の元Pの
ビットplを作るもので、図示の例では4入力の加算回路
41と3入力の加算回路42がこのために用いられている。
この出力演算段回路40を2入力のイクスクルーシブオア
ゲートで構成すれば、ビットplの場合は上述の6個の出
力を加算すればよいから5個のゲートで構成できる。
【0044】積の元Pの他のビットについても同様であ
って、煩雑になるので詳細は省くが例えばビットp0はp4
00+p414+p424+p430+p434+p435+p436により, すなわち7
個の出力の加算で作ることができる。出力演算段回路40
を2入力のイクスクルーシブオアゲートで構成する場合
は59個で積の元Pのビットp0〜p7を作ることができ、例
えば上述のビットp0とplに共通な2個の出力 p435+p436
の加算結果をこれらのビットを作る際に利用すれば必要
個数をさらに減らすことができる。
【0045】以上説明した第2の乗算回路では、それぞ
れ同じ回路構成をもつ4ビット分の単位演算回路30や2
ビット分の単位演算回路31を利用することにより、集積
回路装置に乗算回路を作り込む際の回路要素や相互間配
線のレイアウトを容易にかつ簡単化してチップ面積を節
約できる。また、論理ゲートだけで回路を構成でき,そ
の動作段数の点でも8段以下にできるので、元の乗算時
間を従来より短縮して第1の乗算回路と同程度の短時間
にすることができる。
【0046】本発明は以上の実施例に限らず種々の態様
で実施することができる。例えば、実施例では乗算単位
としてアンドゲート,加算単位としてイクスクルーシブ
オアゲートをそれぞれ用いたが、論理ゲートであるから
には場合や必要に応じ前者をノアゲートやナンドゲート
等で置き換え,後者をイクスクルーシブノアゲートで置
き換えることができる。また、乗算方式を規定する法多
項式Fxには原始多項式x8+x4+x3+x2+1 を用いたが、mが
3以上の拡張ガロア体にはm次の既約多複数個存在する
ので法多項式をそれらから適宜選択して使用することが
できる。実施例と異なる法多項式を用いる場合は、第1
の乗算回路では加算段回路20の, 第2の乗算回路では出
力演算段回路40の内部構成をそれに合わせることでよ
い。さらに、積の元Pの各ビットを表す展開式を積の和
の形としたが、前述のように和の積の形で表現してそれ
に基づいて回路構成することも可能である。本発明はも
ちろんm=8以外の有限体上の乗算にも適用できる。
【0047】
【発明の効果】以上説明したように本発明では複数ビッ
トの元の四則演算に対して閉じた群を形成する有限体上
で2個の元を法多項式で規定される演算方式に従って乗
算するに際し、乗算結果を法多項式で除算した剰余の形
での積の元が被乗算元のビット相互間の積の和や和の積
の形の展開式により,すなわち乗算と加算の組み合わせ
だけで表現できることに着目して、第1の乗算回路で
は、被乗算元の各ビット間の乗算を行なう乗算段回路と
加算を行なう加算段回路を用いて両回路の一方による演
算結果を他方に与え、第2の乗算回路では被乗算元の複
数ビット中の一部のビットに乗算と加算の内の一方の演
算を施してその結果に他方の演算を施す単位演算回路と
その演算結果に他方の演算を施す出力演算段回路を用い
て前者による演算結果を後者に与え、いずれの乗算回路
でも演算結果中から乗算方式に基づいて抽出した組み合
わせに対し他方の演算を施して積の元の各構成ビットを
求めることにより、次の効果を挙げることができる。
【0048】(a) 第1の乗算回路は乗算段回路と加算段
回路の2段構成、第2の乗算回路も単位演算回路と出力
演算段回路の2段構成で、従来の多段構成の順序動作回
路と比べると動作が実質的に1段構成と同じであり、論
理ゲートの動作段数の点から見ても第1の乗算回路では
5段以内,第2の乗算回路では8段以内なので、演算段
数ないしはステップ数を従来よりも格段に減少させて元
の乗算に要する時間を従来の乗算回路の場合の数分の1
以下に短縮することができる。
【0049】(b) 従来のように乗算用に線形フィードバ
ックシフトレジスタを用いる必要がなくなり、論理ゲー
トの個数も従来の 120個に対し本発明の第1の乗算回路
では133個以内, 第2の乗算回路では 153個以内で, 従
来と比べて10〜30%の増加で済むから、乗算回路の全体
構成を簡易化して集積回路装置への作り込みに要するチ
ップ面積を縮小することができる。
【0050】(c) 元の乗算回路を論理ゲートだけで構成
できるので、順序動作が必要な従来回路のように演算途
中の内容を一時記憶する必要がなく, ノイズ侵入等の不
測の事態の発生に際しても誤動作を起こすおそれがな
く、回路動作の信頼性を高めて常に正確な乗算結果を取
り出すことができる。 このほか、第2の乗算回路は同じ構成の単位演算回路を
複数個利用することによって集積回路装置に作り込む際
の回路要素や相互配線のレイアウトを簡単かつ容易する
効果を有する。この第2の乗算回路において実施例のよ
うに8ビットの元を乗算する場合に2ビット分の単位演
算回路と4ビット分の単位演算回路とを利用する実施態
様は、乗算回路を整然とした階層構造にしてこの効果を
一層高め得る利点を有する。
【0051】なお、第1の乗算回路において乗算段回路
による演算結果を加算段回路に対し与える態様, および
第2の乗算回路において単位演算回路には乗算および加
算を行なわせて出力演算段回路には加算だけを行なわせ
る態様は、論理ゲートの必要個数を減少させて乗算回路
の全体構成を簡易化できる利点を有する。第1の乗算回
路においてその加算段回路に実施例で述べたS0〜S14 の
ようなビット間の乗算結果の部分和をまず作らせた上で
それらを組み合わせて加算することにより積の元の各ビ
ットを作らせる実施態様は、論理ゲートの必要個数を減
少させる効果と法多項式で規定される乗算方式が変わっ
た場合にも部分和の組み合わせを変えるだけで対応でき
る利点がある。第2の乗算回路も出力演算段回路を変え
るだけで対応できる利点がある。また、第1と第2の乗
算回路の法多項式に原始多項式を用いる実施態様は乗算
結果を一義的に決定できる利点を有する。
【図面の簡単な説明】
【図1】本発明による第1の乗算回路の実施例を示す回
路図である。
【図2】乗算結果としての積の元の各ビットを被乗算元
のビット間の積の和で表現する展開式の例を模式的に示
す表である。
【図3】本発明による第2の乗算回路の実施例を示し、
同図(a) はこの乗算回路の全体回路図、同図(b) はその
中の2ビット分の単位演算回路の回路図である。
【図4】従来技術による乗算回路を示し、同図(a) はそ
の全体回路図、同図(b) はその一部をなす単位乗算回路
の回路図である。
【符号の説明】
10 乗算段回路 11 乗算単位としてのアンドゲート 20 加算段回路 21 加算単位としてのイクスクルーシブオアゲート 30 4ビット分の単位演算回路 31 2ビット分の単位演算回路 32 加算回路 40 出力演算段回路 41,42 加算回路 A 被乗算元 a0〜a7 被乗算元Aを構成するビット B 被乗算元 b0〜b7 被乗算元Bを構成するビット P 乗算結果としての積の元 p0〜p7 積の元Pを構成するビット

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】複数ビット構成の元の四則演算に対し閉じ
    られた群を形成する有限体の上で2個の元を法多項式で
    規定される所定の演算方式に従って乗算する回路であっ
    て、ビット間の乗算をそれぞれ行なう複数の乗算単位か
    ら構成される乗算段回路と,ビット間の加算をそれぞれ
    行なう複数の加算単位から構成される加算段回路とを用
    い、乗算段回路と加算段回路の一方による被乗算元の相
    互間の複数のビット演算結果を他方に与えてそれらの内
    から乗算方式に応じ抽出される演算結果の組み合わせに
    対し他方の演算を施して乗算結果としての積の元をその
    構成ビットごとに求めるようにしたことを特徴とする有
    限体上の乗算回路。
  2. 【請求項2】請求項1に記載の回路において、乗算段回
    路による被乗算元の相互間の複数のビット演算結果を加
    算段回路に与え,それらの内から乗算方式に応じ抽出さ
    れた演算結果に対し加算を施すことにより積の元の各ビ
    ットを求めるようにしたことを特徴とする有限体上の乗
    算回路。
  3. 【請求項3】請求項1に記載の回路において、乗算単位
    としてアンドゲートないしノアゲートないしナンドゲー
    トが,加算単位としてイクスクルーシブオアゲートない
    しはイクスクルーシブノアゲートがそれぞれ用いられる
    ことを特徴とする有限体上の乗算回路。
  4. 【請求項4】複数ビット構成の元の四則演算に対し閉じ
    られた群を形成する有限体の上で2個の元を法多項式で
    規定される所定の演算方式に従って乗算する回路であっ
    て、各元の複数ビット中の一部の複数のビットに対して
    乗算と加算の内の一方の演算を元の相互間でビットごと
    に施す複数の演算単位とそれらの演算結果に対し他方の
    演算を施す演算単位とを含む複数の単位演算回路と,そ
    の演算結果に対し他方の演算を施す複数の演算単位から
    なる出力演算段回路とを用い、単位演算回路による複数
    の演算結果を出力演算段回路に与えて,それらの内から
    乗算方式に基づいて抽出される演算結果の組み合わせに
    対し他方の演算を施して乗算結果としての積の元をその
    構成ビットごとに求めるようにしたことを特徴とする有
    限体上の乗算回路。
  5. 【請求項5】請求項4に記載の回路において、元が8ビ
    ットの構成であり、被乗算元の2ビット分に対する16個
    の単位演算回路と,その4個ずつを内包する被乗算元の
    4ビット分に対する4個の単位演算回路とを用い、後者
    による複数の演算結果を出力演算段手段に与えて積の元
    の構成ビットを演算させるようにしたことを特徴とする
    有限体上の乗算回路。
  6. 【請求項6】請求項4に記載の回路において、一方の演
    算が乗算で,他方の演算が加算であることを特徴とする
    有限体上の乗算回路。
  7. 【請求項7】請求項1または4に記載の回路において、
    法多項式として原始多項式が用いられることを特徴とす
    る有限体上の乗算回路。
JP7266639A 1995-10-16 1995-10-16 有限体上の乗算回路 Pending JPH09114645A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7266639A JPH09114645A (ja) 1995-10-16 1995-10-16 有限体上の乗算回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7266639A JPH09114645A (ja) 1995-10-16 1995-10-16 有限体上の乗算回路

Publications (1)

Publication Number Publication Date
JPH09114645A true JPH09114645A (ja) 1997-05-02

Family

ID=17433630

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7266639A Pending JPH09114645A (ja) 1995-10-16 1995-10-16 有限体上の乗算回路

Country Status (1)

Country Link
JP (1) JPH09114645A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001056640A (ja) * 1999-08-19 2001-02-27 Toyo Commun Equip Co Ltd 積和演算装置及びこれを用いた暗号・復号装置
JP2001109376A (ja) * 1999-10-04 2001-04-20 Toyo Commun Equip Co Ltd 演算回路および演算プロセッサ
JP2009282992A (ja) * 2001-02-21 2009-12-03 Mips Technologies Inc 多項式演算オペレーション

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001056640A (ja) * 1999-08-19 2001-02-27 Toyo Commun Equip Co Ltd 積和演算装置及びこれを用いた暗号・復号装置
JP2001109376A (ja) * 1999-10-04 2001-04-20 Toyo Commun Equip Co Ltd 演算回路および演算プロセッサ
JP2009282992A (ja) * 2001-02-21 2009-12-03 Mips Technologies Inc 多項式演算オペレーション

Similar Documents

Publication Publication Date Title
EP0448367B1 (en) High speed digital parallel multiplier
EP2283417B1 (en) Implementation of arbitrary galois field arithmetic on a programmable processor
US7277540B1 (en) Arithmetic method and apparatus and crypto processing apparatus for performing multiple types of cryptography
KR102399200B1 (ko) 연상 메모리 내의 장비트 가산 및 장비트 승산을 위한 시스템 및 방법
JPH11346157A (ja) リードソロモン符号化装置および方法
US20200394017A1 (en) Fast binary counters based on symmetric stacking and methods for same
JPH11296347A (ja) ガロワ体乗算器及びガロワ体乗算の方法
JP4282193B2 (ja) 乗算装置
JPH09114645A (ja) 有限体上の乗算回路
US20050228845A1 (en) Shift and recode multiplier
TWI802095B (zh) 模數乘法電路與對應之計算模數乘法之方法
US4032764A (en) Means and method for generating permutations of a square
CN1666173A (zh) 快速乘法电路
JP3660075B2 (ja) 除算装置
CN114675804A (zh) 用于低延时模块化乘法的系统和方法
JPH0448255B2 (ja)
JP4595055B2 (ja) ガロア体のα乗算回路および演算回路
JP3417286B2 (ja) 乗算器
Shukla LFSR based versatile divider architectures for BCH and RS error correction encoders
JPS63221426A (ja) GF(2▲上m▼)のガロア体に属する元の乗算装置
Sahoo et al. A high speed FIR filter architecture based on novel higher radix algorithm
JP3702475B2 (ja) 回路自動生成装置
JPS63221425A (ja) GF(2↑m)のガロア体の原始根のべき乗演算装置
CN118312133A (zh) 基于Karatsuba的超高阶二进制多项式乘法器
JP4954019B2 (ja) 演算装置