JPH1196030A - 有限体上の乗算方法及び乗算回路 - Google Patents
有限体上の乗算方法及び乗算回路Info
- Publication number
- JPH1196030A JPH1196030A JP9275321A JP27532197A JPH1196030A JP H1196030 A JPH1196030 A JP H1196030A JP 9275321 A JP9275321 A JP 9275321A JP 27532197 A JP27532197 A JP 27532197A JP H1196030 A JPH1196030 A JP H1196030A
- Authority
- JP
- Japan
- Prior art keywords
- multiplication
- exclusive
- shift register
- stage
- storage means
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
(57)【要約】
【課題】 高速、且つ、回路規模が小さい有限体上の乗
算方法及び乗算回路を提供することを目的とする。 【解決手段】 ガロア体GF(2m)の任意の二つの元a=(a0,
a1,...am-1)とb=(b0,b1,...,bm-1)との乗算に於いて,G
F(2)上の多項式f=xm+xm-1+...x+1が既約である拡大次数
であって前記GF(2m)の生成多項式として前記fを用いる
とき、前記ガロア体の一方の元を初期値とする第1のm段
シフトレジスタと、前記ガロア体の他方の元と該第1の
シフトレジスタの最終m段目の出力信号とが入力するm個
の論理積ゲートと,第1段から第m段までの各入力側に第
1の排他論理和ゲートを配置した第2のm+1段シフトレジ
スタと、該第2のシフトレジスタにおける最終m+1段出力
信号と第1段から第m段までの各出力信号とを入力する第
2のm個の排他論理和ゲートとを備える有限体上の乗算回
路である。
算方法及び乗算回路を提供することを目的とする。 【解決手段】 ガロア体GF(2m)の任意の二つの元a=(a0,
a1,...am-1)とb=(b0,b1,...,bm-1)との乗算に於いて,G
F(2)上の多項式f=xm+xm-1+...x+1が既約である拡大次数
であって前記GF(2m)の生成多項式として前記fを用いる
とき、前記ガロア体の一方の元を初期値とする第1のm段
シフトレジスタと、前記ガロア体の他方の元と該第1の
シフトレジスタの最終m段目の出力信号とが入力するm個
の論理積ゲートと,第1段から第m段までの各入力側に第
1の排他論理和ゲートを配置した第2のm+1段シフトレジ
スタと、該第2のシフトレジスタにおける最終m+1段出力
信号と第1段から第m段までの各出力信号とを入力する第
2のm個の排他論理和ゲートとを備える有限体上の乗算回
路である。
Description
【0001】
【発明の属する技術分野】本発明は誤り訂正符号等の符
号化器及び復号化器に用いる有限体上の乗算方法及び乗
算回路に関する。
号化器及び復号化器に用いる有限体上の乗算方法及び乗
算回路に関する。
【0002】
【従来の技術】近年の技術進歩に伴って、通信はアナロ
グからデジタルへと移行しつつある。デジタル通信は、
0と1との2値情報を伝送するものであるから信号の冗長
度が小さく、そのため伝送途中において符号誤りが発生
すると、その復元が困難となる。そこで、受信側におい
て符号誤りを検出しその訂正を行う誤り訂正符号が実用
化されている。誤り訂正符号としては巡回符号が広く用
いられており、この符号生成にガロア体上の乗算を用い
る方法が提案されている。
グからデジタルへと移行しつつある。デジタル通信は、
0と1との2値情報を伝送するものであるから信号の冗長
度が小さく、そのため伝送途中において符号誤りが発生
すると、その復元が困難となる。そこで、受信側におい
て符号誤りを検出しその訂正を行う誤り訂正符号が実用
化されている。誤り訂正符号としては巡回符号が広く用
いられており、この符号生成にガロア体上の乗算を用い
る方法が提案されている。
【0003】有限体GF(2m)は,2m個の元からなる集合であ
り,各々の元は指数表現またはベクトル表現で表現され
る.GF(2m)に於いて位数2m-1である元を原始元と呼ぶ.
指数表現は,原始元αと正整数iとを用いて任意の元aが
a=αiとなることを利用し,各元をαの指数iで表現する
ものである.ベクトル表現は,GF(2m)をGF(2)のm次元ベ
クトル空間とみなし,任意の元aをm次元数ベクトル(a0,
a1,...,am-1)と表現するものである.ここで,ベクトル
の各要素aiはGF(2)の元,即ち0または1である.ベクト
ル表現に於いて,ベクトル空間の基底は一通りには決ま
らず,元の表現は用いる基底によって異なる.基底に
は,正規基底と多項式基底とがある.正規基底は,
り,各々の元は指数表現またはベクトル表現で表現され
る.GF(2m)に於いて位数2m-1である元を原始元と呼ぶ.
指数表現は,原始元αと正整数iとを用いて任意の元aが
a=αiとなることを利用し,各元をαの指数iで表現する
ものである.ベクトル表現は,GF(2m)をGF(2)のm次元ベ
クトル空間とみなし,任意の元aをm次元数ベクトル(a0,
a1,...,am-1)と表現するものである.ここで,ベクトル
の各要素aiはGF(2)の元,即ち0または1である.ベクト
ル表現に於いて,ベクトル空間の基底は一通りには決ま
らず,元の表現は用いる基底によって異なる.基底に
は,正規基底と多項式基底とがある.正規基底は,
【数1】 が一次独立である原始元αを用いて
【数2】 を基底とするものである.多項式基底は,GF(2)上m次モ
ニック既約多項式fを生成多項式とし,fの根である元z
を用いて,(1,z,z2,...,zm-1)を基底とする.また,こ
のときxを変数として,a=(a0,a1,...,am-1)をGF(2)[x]
の元とみなし、a=am-1xm-1+...+a1x+a0と表現する.こ
の表現を多項式表現と言う.
ニック既約多項式fを生成多項式とし,fの根である元z
を用いて,(1,z,z2,...,zm-1)を基底とする.また,こ
のときxを変数として,a=(a0,a1,...,am-1)をGF(2)[x]
の元とみなし、a=am-1xm-1+...+a1x+a0と表現する.こ
の表現を多項式表現と言う.
【0004】GF(2m)上の2元a,bの加算は,元が基底表現され
ていればa+b=(a0+b0,a1+b1,...,am-1+bm-1)であり,即
ち2元を要素毎にGF(2)上で加算すれば良い.GF(2)上の
加算は排他論理和で実現される.しかし,指数表現され
ている場合,加算方法を一意に定めることが困難であ
る。従って,一般的に元の表現にはベクトル表現を用い
る.
ていればa+b=(a0+b0,a1+b1,...,am-1+bm-1)であり,即
ち2元を要素毎にGF(2)上で加算すれば良い.GF(2)上の
加算は排他論理和で実現される.しかし,指数表現され
ている場合,加算方法を一意に定めることが困難であ
る。従って,一般的に元の表現にはベクトル表現を用い
る.
【0005】GF(2m)上の2元a,bの乗算は,従来,指数表現を
用いる方法,正規基底を用いる方法,多項式基底を用い
る方法が発明されている.指数表現を用いる方法は,a=
αi,b=αjとして,c=abをab=αi+jからc=α
i+j(mod 2m-1)と整数環上の剰余算を用いて求める方法
である.また、正規基底を用いる方法は,U.S. patent
No.4,587,627 "Computational Method and Apparatus f
or Finite Field Arithmetic"及びU.S Patent No.4,74
5,568 "Computational Method and Apparatus for Fini
te Field Multiplication"に示されており、特に、正規
基底を用いた乗算についてはKluwer Academic Pub.出版
A.J.Menezes,Ed. "Applications of Finite Fields"に
詳細に記載されている。さらに、多項式基底を用いる方
法は,被乗数a=(a0,a1,...,am-1)と乗数b=(b0,b1,...,b
m-1)を各々GF(2)上の多項式a=am-1xm-1+...+a1x+a0,b=b
m-1xm-1+...+b1x+b0とみなし,GF(2)で該多項式表現a,b
を多項式乗算した結果d=d2m-2x2m-3+...+d1x+d0を生成
多項式f=xm+fm-1xm-1+...+f1x+f0で除算した余りc=cm-1
xm-1+...+c1x+c0から導かれるc=(c0,c1,...,cm-1)をc=a
bの結果とするものである.
用いる方法,正規基底を用いる方法,多項式基底を用い
る方法が発明されている.指数表現を用いる方法は,a=
αi,b=αjとして,c=abをab=αi+jからc=α
i+j(mod 2m-1)と整数環上の剰余算を用いて求める方法
である.また、正規基底を用いる方法は,U.S. patent
No.4,587,627 "Computational Method and Apparatus f
or Finite Field Arithmetic"及びU.S Patent No.4,74
5,568 "Computational Method and Apparatus for Fini
te Field Multiplication"に示されており、特に、正規
基底を用いた乗算についてはKluwer Academic Pub.出版
A.J.Menezes,Ed. "Applications of Finite Fields"に
詳細に記載されている。さらに、多項式基底を用いる方
法は,被乗数a=(a0,a1,...,am-1)と乗数b=(b0,b1,...,b
m-1)を各々GF(2)上の多項式a=am-1xm-1+...+a1x+a0,b=b
m-1xm-1+...+b1x+b0とみなし,GF(2)で該多項式表現a,b
を多項式乗算した結果d=d2m-2x2m-3+...+d1x+d0を生成
多項式f=xm+fm-1xm-1+...+f1x+f0で除算した余りc=cm-1
xm-1+...+c1x+c0から導かれるc=(c0,c1,...,cm-1)をc=a
bの結果とするものである.
【0006】
【発明が解決しようとする課題】しかしながら上述した
ような従来の有限体GF(2m)上の2元a,bの乗算方法及び乗
算回路については以下に示すような欠点があった。つま
り、指数表現を用いる方法は,ベクトル表現された元を
指数表現に変換する必要があり,変換に用いるテーブル
は指数関数的な大きさとなり,従って、この方法を実現
する回路規模が非常に大きくなるという欠点を有する.
また、正規基底を用いる方法は、何れも回路実現時のゲ
ート数がm2以上必要であり,mが大きいとき回路規模は
非常に大きくなるという欠点を有する.さらに、多項式
基底を用いる方法は,GF(2)上の2m-1次多項式とm次多項
式の除算が必要であり,この除算に多大の計算時間を要
し、しかもこの方法を実現する回路規模が大きくなると
いう欠点を有する.本発明は上述した如き従来の有限体
上の乗算方法及び乗算回路が有する欠点を除去する為に
なされたものであって、演算時間が短いので処理が高速
であり、且つ、回路規模が小さい有限体上の乗算方法及
び乗算回路を提供することを目的とする。
ような従来の有限体GF(2m)上の2元a,bの乗算方法及び乗
算回路については以下に示すような欠点があった。つま
り、指数表現を用いる方法は,ベクトル表現された元を
指数表現に変換する必要があり,変換に用いるテーブル
は指数関数的な大きさとなり,従って、この方法を実現
する回路規模が非常に大きくなるという欠点を有する.
また、正規基底を用いる方法は、何れも回路実現時のゲ
ート数がm2以上必要であり,mが大きいとき回路規模は
非常に大きくなるという欠点を有する.さらに、多項式
基底を用いる方法は,GF(2)上の2m-1次多項式とm次多項
式の除算が必要であり,この除算に多大の計算時間を要
し、しかもこの方法を実現する回路規模が大きくなると
いう欠点を有する.本発明は上述した如き従来の有限体
上の乗算方法及び乗算回路が有する欠点を除去する為に
なされたものであって、演算時間が短いので処理が高速
であり、且つ、回路規模が小さい有限体上の乗算方法及
び乗算回路を提供することを目的とする。
【0007】
【課題を解決するための手段】上記目的を達成するため
に、本発明に係わる有限体上の乗算方法及び乗算回路の
請求項1記載の発明は、有限体上の乗算回路を、ガロア
体GF(2m)の任意の二つの元a=(a0,a1,...am-1)とb=(b0,b
1,...,bm-1)との乗算に於いて,GF(2)上の多項式f=xm+x
m-1+...x+1が既約である拡大次数であって前記GF(2m)の
生成多項式として前記fを用いるとき、 前記ガロア体
の一方の元を初期値とする第1のm段シフトレジスタと、
前記ガロア体の他方の元と該第1のシフトレジスタの最
終m段目の出力信号とが入力するm個の論理積ゲートと,
第1段から第m段までの各入力側に第1の排他論理和ゲー
トを配置した第2のm+1段シフトレジスタと、該第2のシ
フトレジスタにおける最終m+1段出力信号と第1段から第
m段までの各出力信号とを入力する第2のm個の排他論理
和ゲートとを備え、前記論理積ゲートの各出力信号を前
記第1の各排他論理和ゲートに入力すると共に前記第2の
シフトレジスタの最終段出力信号を前記第2のシフトレ
ジスタにおける第1段の入力側に配置した前記第1の排他
論理和ゲートの一つにフィードバックし、前記第1のシ
フトレジスタを前記ガロア体の一方の元の値に初期値化
すると共に前記第2のシフトレジスタを0値に初期値化し
た後,前記第1及び第2のシフトレジスタを同時にm+1回
シフト動作して、前記第2の排他論理和ゲートの出力か
ら前記ガロア体の二つの元aとbとの乗算結果を得るよう
に構成する。本発明に係わる有限体上の乗算方法及び乗
算回路の請求項2記載の発明は、請求項1記載の有限体上
の乗算回路において、前記第2の排他論理和ゲートに前
記第2のシフトレジスタの最終m+1段出力信号と前記第1
の排他論理和ゲートの出力信号とを入力するように構成
し、前記第1と第2のシフトレジスタをm回シフト動作し
て、前記第2の排他論理和ゲートの出力から前記ガロア
体の二つの元aとbとの乗算結果を得るように構成する。
本発明に係わる有限体上の乗算方法及び乗算回路の請
求項3記載の発明は、有限体上の乗算方法であって、ガ
ロア体GF(2m)の任意の二つの元a=(a0,a1,...am-1)とb=
(b0,b1,...,bm-1)との乗算に於いて,GF(2)上の多項式f
=xm+xm-1+...x+1が既約である拡大次数であって前記GF
(2m)の生成多項式として前記fを用いるとき、前記乗算
の結果をc=(c0,c1,...,cm)として,前記ガロア体の一方
の元aを記憶する第1のmビット記憶手段raと,前記ガロア
体の他方の元bを記憶する第2のmビット記憶手段rbと,前
記乗算結果cを記憶する第3のm+1ビット記憶手段rcとを
用いて, 前記第3の記憶手段rcを0値に初期化した後,
前記第2の記憶手段rbと前記第3の記憶手段rcとをシフト
し,シフト毎に前記第2の記憶手段rbの桁あふれを検出
し、前記第2の記憶手段rbに桁あふれがあれば、i=0~m-1
ビットに対して前記第3の記憶手段rcの値rciと前記第2
の記憶手段raの値raiとの排他論理和をとり、この結果
を前記rciに代入し,さらにシフトをm回繰り返した後に
前記第3の記憶手段rcにおけるi=0~m-1ビットの値rciとm
ビット目の値rcmとの排他論理和をとることにより、前
記ガロア体の二つの元aとbとの乗算結果を得るようにす
る。
に、本発明に係わる有限体上の乗算方法及び乗算回路の
請求項1記載の発明は、有限体上の乗算回路を、ガロア
体GF(2m)の任意の二つの元a=(a0,a1,...am-1)とb=(b0,b
1,...,bm-1)との乗算に於いて,GF(2)上の多項式f=xm+x
m-1+...x+1が既約である拡大次数であって前記GF(2m)の
生成多項式として前記fを用いるとき、 前記ガロア体
の一方の元を初期値とする第1のm段シフトレジスタと、
前記ガロア体の他方の元と該第1のシフトレジスタの最
終m段目の出力信号とが入力するm個の論理積ゲートと,
第1段から第m段までの各入力側に第1の排他論理和ゲー
トを配置した第2のm+1段シフトレジスタと、該第2のシ
フトレジスタにおける最終m+1段出力信号と第1段から第
m段までの各出力信号とを入力する第2のm個の排他論理
和ゲートとを備え、前記論理積ゲートの各出力信号を前
記第1の各排他論理和ゲートに入力すると共に前記第2の
シフトレジスタの最終段出力信号を前記第2のシフトレ
ジスタにおける第1段の入力側に配置した前記第1の排他
論理和ゲートの一つにフィードバックし、前記第1のシ
フトレジスタを前記ガロア体の一方の元の値に初期値化
すると共に前記第2のシフトレジスタを0値に初期値化し
た後,前記第1及び第2のシフトレジスタを同時にm+1回
シフト動作して、前記第2の排他論理和ゲートの出力か
ら前記ガロア体の二つの元aとbとの乗算結果を得るよう
に構成する。本発明に係わる有限体上の乗算方法及び乗
算回路の請求項2記載の発明は、請求項1記載の有限体上
の乗算回路において、前記第2の排他論理和ゲートに前
記第2のシフトレジスタの最終m+1段出力信号と前記第1
の排他論理和ゲートの出力信号とを入力するように構成
し、前記第1と第2のシフトレジスタをm回シフト動作し
て、前記第2の排他論理和ゲートの出力から前記ガロア
体の二つの元aとbとの乗算結果を得るように構成する。
本発明に係わる有限体上の乗算方法及び乗算回路の請
求項3記載の発明は、有限体上の乗算方法であって、ガ
ロア体GF(2m)の任意の二つの元a=(a0,a1,...am-1)とb=
(b0,b1,...,bm-1)との乗算に於いて,GF(2)上の多項式f
=xm+xm-1+...x+1が既約である拡大次数であって前記GF
(2m)の生成多項式として前記fを用いるとき、前記乗算
の結果をc=(c0,c1,...,cm)として,前記ガロア体の一方
の元aを記憶する第1のmビット記憶手段raと,前記ガロア
体の他方の元bを記憶する第2のmビット記憶手段rbと,前
記乗算結果cを記憶する第3のm+1ビット記憶手段rcとを
用いて, 前記第3の記憶手段rcを0値に初期化した後,
前記第2の記憶手段rbと前記第3の記憶手段rcとをシフト
し,シフト毎に前記第2の記憶手段rbの桁あふれを検出
し、前記第2の記憶手段rbに桁あふれがあれば、i=0~m-1
ビットに対して前記第3の記憶手段rcの値rciと前記第2
の記憶手段raの値raiとの排他論理和をとり、この結果
を前記rciに代入し,さらにシフトをm回繰り返した後に
前記第3の記憶手段rcにおけるi=0~m-1ビットの値rciとm
ビット目の値rcmとの排他論理和をとることにより、前
記ガロア体の二つの元aとbとの乗算結果を得るようにす
る。
【0008】
【発明の実施の形態】以下、有限体上の乗算方法の原理
と図示した実施の形態例に基づいて本発明を詳細に説明
する。まず、本発明に係わる有限体上の原理について説
明する。GF(2m)の生成多項式をf=xm+fm-1xm-1+...+f1x+
f0とし,被乗数a,乗数bの多項式基底を用いたベクトル
表現及び対応するGF(2)上の多項式表現が上述したよう
に与えられているとする.aとbとの乗算は ab=(am-1xm-1+...+a1x+a0)(bm-1xm-1+...+b1x+b0)(mod
f) で与えられる.ここで(mod f)はfによる剰余を取ること
を表す.上述した式は以下のように変形できる. ab=a(bm-1xm-1+...+b1x+b0)(mod f) =((...((bm-1ax+bm-1a)x+bm-2a)x+...)x+b1a)x+b0a (mo
d f) =((((...(((bm-1ax (mod f))+bm-1a)x (mod f))+...)x
(mod f))+b1a)x (mod f))+b0a この式から, d=dm-1xm-1+...+d1x+d0 として,aとbとの乗算が(dx (mod f))+biaの繰り返しで
実現されることが分かる。ここで,bia=(bia0,bia
1,...,biam-1)であり,各々のGF(2)の元の乗算biajはbi
とajの論理積で実現される.
と図示した実施の形態例に基づいて本発明を詳細に説明
する。まず、本発明に係わる有限体上の原理について説
明する。GF(2m)の生成多項式をf=xm+fm-1xm-1+...+f1x+
f0とし,被乗数a,乗数bの多項式基底を用いたベクトル
表現及び対応するGF(2)上の多項式表現が上述したよう
に与えられているとする.aとbとの乗算は ab=(am-1xm-1+...+a1x+a0)(bm-1xm-1+...+b1x+b0)(mod
f) で与えられる.ここで(mod f)はfによる剰余を取ること
を表す.上述した式は以下のように変形できる. ab=a(bm-1xm-1+...+b1x+b0)(mod f) =((...((bm-1ax+bm-1a)x+bm-2a)x+...)x+b1a)x+b0a (mo
d f) =((((...(((bm-1ax (mod f))+bm-1a)x (mod f))+...)x
(mod f))+b1a)x (mod f))+b0a この式から, d=dm-1xm-1+...+d1x+d0 として,aとbとの乗算が(dx (mod f))+biaの繰り返しで
実現されることが分かる。ここで,bia=(bia0,bia
1,...,biam-1)であり,各々のGF(2)の元の乗算biajはbi
とajの論理積で実現される.
【0009】また, dx=dm-1xm+dm-2xm-1+...+d1x2+d0x と,fによる剰余の性質から得られる xm=fm-1xm-1+...+f1x+f0 から, dx=(fm-1dm-1+dm-2)xm-1+...+(f2dm-1+d1)x2+(f1dm-1+d
0)x+ f0dm-1 を得る.
0)x+ f0dm-1 を得る.
【0010】以上の手順をfの代わりにn=m+1次多項式g=hfを
用いて行い.その結果に対し,fによる剰余をとることで
も,GF(2m)上の乗算を行うことができる.ここで, f=xm+x
m-1+...x+1,g=xn+1とすると,g=(x+1)fであるので,上述
のd=dn-1xn-1+...+d1x+d0は,dx=dn-1xn+dn-2xn-1+...+d
1x2+d0xと, xn=1から, dx=dn-2xn-1+...+d1x2+d0x+dn-1 となる.この式を用いて,上述の手順を施した結果を s=smxm+...+s1x+s0 とすれば,このsのfによる剰余がabであるので, ab= (sm+sm-1)xm-1+...+(sm+s1)x+sm+s0 を得る.
用いて行い.その結果に対し,fによる剰余をとることで
も,GF(2m)上の乗算を行うことができる.ここで, f=xm+x
m-1+...x+1,g=xn+1とすると,g=(x+1)fであるので,上述
のd=dn-1xn-1+...+d1x+d0は,dx=dn-1xn+dn-2xn-1+...+d
1x2+d0xと, xn=1から, dx=dn-2xn-1+...+d1x2+d0x+dn-1 となる.この式を用いて,上述の手順を施した結果を s=smxm+...+s1x+s0 とすれば,このsのfによる剰余がabであるので, ab= (sm+sm-1)xm-1+...+(sm+s1)x+sm+s0 を得る.
【0011】要するに、本発明に係わる有限体上の乗算方法
は、 Intput : a=(a0,a1,...,am-1),b=(b0,b1,...,bm-1),cf=
(f0,f1,...,fm-1); Output : ab=c=(c0,c1,...,cm-1); step1.: a→ra,b→rb,rc=0,i=0; step2.: If i>=m-1 then goto step6.; step3.: rb<<1,rc<<1; step4.:
は、 Intput : a=(a0,a1,...,am-1),b=(b0,b1,...,bm-1),cf=
(f0,f1,...,fm-1); Output : ab=c=(c0,c1,...,cm-1); step1.: a→ra,b→rb,rc=0,i=0; step2.: If i>=m-1 then goto step6.; step3.: rb<<1,rc<<1; step4.:
【数3】 step5.: i=i+1 and goto step2.; step6.:
【数4】 の手順により処理すればよい。
【0012】ここで,ra,rcはm+1ビットの2進数値であり,r
bはmビットの2進数値である.a→raはra=am-1am-2...a1a
0とすることを表し,b→rbはrb=bm-1bm-2...b1b0とする
ことを表す.rb<<1はrbを1ビット左シフトすることを表
す.例えば,rb=bm-1bm-2...b1b0として,rb<<1を実行
すると,rb=bm-2bm-3...b1b00となり,このときキャリ
ーフラグcbにはbm-1が入力される.また,rc<<1はrcを1
ビット左巡回シフトすることを表す.例えば,rc=cmcm-
1... c1c0として,rc<<1を実行すると,rc=cm-1cm-2...
c1c0cmとなる.また,記号
bはmビットの2進数値である.a→raはra=am-1am-2...a1a
0とすることを表し,b→rbはrb=bm-1bm-2...b1b0とする
ことを表す.rb<<1はrbを1ビット左シフトすることを表
す.例えば,rb=bm-1bm-2...b1b0として,rb<<1を実行
すると,rb=bm-2bm-3...b1b00となり,このときキャリ
ーフラグcbにはbm-1が入力される.また,rc<<1はrcを1
ビット左巡回シフトすることを表す.例えば,rc=cmcm-
1... c1c0として,rc<<1を実行すると,rc=cm-1cm-2...
c1c0cmとなる.また,記号
【数5】 は排他的論理和を表す.以上から,GF(2m)の乗算回路を
後述する図1のように実現でき、該回路にm+1回クロック
を入力することで,GF(2m)の2元a,bの乗算結果をcとし
て得ることができる。
後述する図1のように実現でき、該回路にm+1回クロック
を入力することで,GF(2m)の2元a,bの乗算結果をcとし
て得ることができる。
【0013】次に、上述した本発明の原理に基づく実例(計
算例)について詳細に説明する.なお、GFはGF(24)即ちm
=4として説明する.また,生成多項式fは,f=x4+x3+x2+
x+1とする.まず,乗算方法を説明する例として,a=(1,
0,1,1)とb=(0,1,0,1)との乗算を上述した方法に従って
計算する.step1.にしたがって,ra=01101,rb=1010,rc=
00000,i=0とする.そして,step3.,step4.を4回繰り返
す.以下に繰り返しの様子を示す. i=0: step3.:rb=0100,cb=1,rc=00000. step4.:rc=01101. i=1: step3.:rb=1000,cb=0,rc=11010. step5.:rc=11010. i=2: step3.:rb=0000,cb=1,rc=10101. step4.:rc=11000. i=3: step3.:rb=0000,cb=0,rc=10001. step4.:rc=10001. 更に,step6.から,aとbとの乗算結果cとして
算例)について詳細に説明する.なお、GFはGF(24)即ちm
=4として説明する.また,生成多項式fは,f=x4+x3+x2+
x+1とする.まず,乗算方法を説明する例として,a=(1,
0,1,1)とb=(0,1,0,1)との乗算を上述した方法に従って
計算する.step1.にしたがって,ra=01101,rb=1010,rc=
00000,i=0とする.そして,step3.,step4.を4回繰り返
す.以下に繰り返しの様子を示す. i=0: step3.:rb=0100,cb=1,rc=00000. step4.:rc=01101. i=1: step3.:rb=1000,cb=0,rc=11010. step5.:rc=11010. i=2: step3.:rb=0000,cb=1,rc=10101. step4.:rc=11000. i=3: step3.:rb=0000,cb=0,rc=10001. step4.:rc=10001. 更に,step6.から,aとbとの乗算結果cとして
【数6】 が計算される.
【0014】また、他の計算例として、a=(0,1,0,1),b=(1,
1,0,1)の場合の乗算について説明すれば、上述と同一手
順により、 step1.:ra=01010,rb=1011,rc=00000,i=0. i=0: step3.:rb=0110,cb=1,rc=00000. step4.:rc=01010. i=1: step3.:rb=1100,cb=0,rc=10100. step4.:rc=10100. i=2: step3.:rb=1000,cb=1,rc=01001. step4.:rc=00011. i=3: step3.:rb=0000,cb=1,rc=00110. step4.:rc=01100. step6.:c=(0,0,1,1) の乗算結果を得ることができる。
1,0,1)の場合の乗算について説明すれば、上述と同一手
順により、 step1.:ra=01010,rb=1011,rc=00000,i=0. i=0: step3.:rb=0110,cb=1,rc=00000. step4.:rc=01010. i=1: step3.:rb=1100,cb=0,rc=10100. step4.:rc=10100. i=2: step3.:rb=1000,cb=1,rc=01001. step4.:rc=00011. i=3: step3.:rb=0000,cb=1,rc=00110. step4.:rc=01100. step6.:c=(0,0,1,1) の乗算結果を得ることができる。
【0015】次に、上述した乗算方法を実施する乗算回路に
ついて説明する.図1は本発明に係わるGF(2m)を用いた
有限体上の乗算方法を実施する場合の一般的な乗算回路
の回路構成を示す図である。また、図2は本発明に係わ
るGF(2m)を用いた有限体上の乗算方法を実施する場合の
乗算回路の実施の形態例を示す回路構成図であり、図1
においてm=4の場合のc=abを計算する乗算回路である。
図2に示した有限体上の乗算回路は、被乗数a=(a0,a1,a
2,a3)1と乗数b=(b0,b1,b2,a3)2とから演算結果c=(c0,c
1,c2,c3)3〜6を得るものであり、4個の1ビット記憶素子
24〜27から構成される第1の4段シフトレジスタ50と、該
第1のシフトレジスタ50の最終段27出力信号と前記被乗
数a=(a0,a1,a2,a3)1の各信号とを入力する論理積ゲート
15〜18と、第1段19から第4段22までの各入力側に第1の
排他論理和ゲート11〜14を配置した5個の1ビット記憶素
子19〜23から構成される第2の5段シフトレジスタ60と、
該第2のシフトレジスタの最終段23の出力信号と第1段19
から第4段22までの各出力信号とが入力する第2の排他論
理和ゲート7〜10とを備え、前記論理積ゲート15〜18の
各出力信号を前記第1の各排他論理和ゲート11〜14に入
力すると共に、前記第2のシフトレジスタの最終段23出
力信号を第1段19の入力側に配置した第1の排他論理和ゲ
ートの一つ11にフィードバック接続し、前記第2の排他
論理和ゲート7〜10の出力から前記aとbとの乗算結果cを
得るように構成する。
ついて説明する.図1は本発明に係わるGF(2m)を用いた
有限体上の乗算方法を実施する場合の一般的な乗算回路
の回路構成を示す図である。また、図2は本発明に係わ
るGF(2m)を用いた有限体上の乗算方法を実施する場合の
乗算回路の実施の形態例を示す回路構成図であり、図1
においてm=4の場合のc=abを計算する乗算回路である。
図2に示した有限体上の乗算回路は、被乗数a=(a0,a1,a
2,a3)1と乗数b=(b0,b1,b2,a3)2とから演算結果c=(c0,c
1,c2,c3)3〜6を得るものであり、4個の1ビット記憶素子
24〜27から構成される第1の4段シフトレジスタ50と、該
第1のシフトレジスタ50の最終段27出力信号と前記被乗
数a=(a0,a1,a2,a3)1の各信号とを入力する論理積ゲート
15〜18と、第1段19から第4段22までの各入力側に第1の
排他論理和ゲート11〜14を配置した5個の1ビット記憶素
子19〜23から構成される第2の5段シフトレジスタ60と、
該第2のシフトレジスタの最終段23の出力信号と第1段19
から第4段22までの各出力信号とが入力する第2の排他論
理和ゲート7〜10とを備え、前記論理積ゲート15〜18の
各出力信号を前記第1の各排他論理和ゲート11〜14に入
力すると共に、前記第2のシフトレジスタの最終段23出
力信号を第1段19の入力側に配置した第1の排他論理和ゲ
ートの一つ11にフィードバック接続し、前記第2の排他
論理和ゲート7〜10の出力から前記aとbとの乗算結果cを
得るように構成する。
【0016】ここで、第1及び第2のシフトレジスタの各段を
構成する1ビット記憶素子4a〜4d及び6a〜6gにおいて、D
は入力端子,Qは出力端子,Sはプリセット入力端子を表
している。また,これらの1ビット記憶素子は図示して
いないクロック信号tにより同期動作する。
構成する1ビット記憶素子4a〜4d及び6a〜6gにおいて、D
は入力端子,Qは出力端子,Sはプリセット入力端子を表
している。また,これらの1ビット記憶素子は図示して
いないクロック信号tにより同期動作する。
【0017】図3は、上述した乗算回路の動作を説明するた
めのタイムチャートである。以下、図3を参照しつつ図2
に示した本発明に係わる乗算回路を説明すると、上述し
た計算例と同様にa=(1,0,1,1),b=(0,1,0,1)とした場
合、シフトレジスタ50は上述した計算例におけるrb,シ
フトレジスタ60はrcに各々対応する。まず、第2のシフ
トレジスタ60を構成する1ビット記憶素子19〜23を0に初
期値化すると共に第1のシフトレジスタ50を構成する1ビ
ット記憶素子の24をb0,25をb1,26をb2,27をb3にそれ
ぞれ初期値化した後、1ビット記憶素子19〜27にクロッ
ク信号を一回入力するとシフトレジスタ50,60がシフト
する.これは上述した計算例におけるstep3の動作に相当
し、次に、論理積ゲート15〜18によって計算例のstep4
の条件分岐が,また、第1の排他論理和ゲート11〜14によ
ってstep4の計算が実現され、さらに、第2の排他論理和
ゲート7〜10によってstep6の計算が実施される。従っ
て,シフトレジスタ50,60にm+1回、即ち5回クロック信号
を1ビット記憶素子19〜23に入力すると,第2の排他論理
和ゲート7〜10の出力3〜6にa,bの乗算結果c=(c0,c1,c2,
c3)の各要素が出力される.以上のように図2に示した乗
算回路は上述した乗算方法を論理回路を用いて実現した
ものであり,GF(24)の乗算を正しく計算する.
めのタイムチャートである。以下、図3を参照しつつ図2
に示した本発明に係わる乗算回路を説明すると、上述し
た計算例と同様にa=(1,0,1,1),b=(0,1,0,1)とした場
合、シフトレジスタ50は上述した計算例におけるrb,シ
フトレジスタ60はrcに各々対応する。まず、第2のシフ
トレジスタ60を構成する1ビット記憶素子19〜23を0に初
期値化すると共に第1のシフトレジスタ50を構成する1ビ
ット記憶素子の24をb0,25をb1,26をb2,27をb3にそれ
ぞれ初期値化した後、1ビット記憶素子19〜27にクロッ
ク信号を一回入力するとシフトレジスタ50,60がシフト
する.これは上述した計算例におけるstep3の動作に相当
し、次に、論理積ゲート15〜18によって計算例のstep4
の条件分岐が,また、第1の排他論理和ゲート11〜14によ
ってstep4の計算が実現され、さらに、第2の排他論理和
ゲート7〜10によってstep6の計算が実施される。従っ
て,シフトレジスタ50,60にm+1回、即ち5回クロック信号
を1ビット記憶素子19〜23に入力すると,第2の排他論理
和ゲート7〜10の出力3〜6にa,bの乗算結果c=(c0,c1,c2,
c3)の各要素が出力される.以上のように図2に示した乗
算回路は上述した乗算方法を論理回路を用いて実現した
ものであり,GF(24)の乗算を正しく計算する.
【0018】以上説明したように本発明に係わるガロア体上
の乗算回路は動作するので、最大でも(m+1)段のシフト
レジスタを用意すればよく、従来のように指数表示用変
換テーブルやm2個の論理素子が不要であるので回路を小
型化でき、また、従来のように除算演算が不要であるの
で演算時間を短くでき、従って、高速処理が可能とな
る。
の乗算回路は動作するので、最大でも(m+1)段のシフト
レジスタを用意すればよく、従来のように指数表示用変
換テーブルやm2個の論理素子が不要であるので回路を小
型化でき、また、従来のように除算演算が不要であるの
で演算時間を短くでき、従って、高速処理が可能とな
る。
【0019】以上説明した実施の形態例においては、第2の
シフトレジスタ60を構成する1ビット記憶素子19~22の出
力信号を第2の排他論理和ゲート7~10に入力して,m+1回
のクロック信号を第1及び第2のシフトレジスタに入力す
ることにより乗算結果を得るように構成したが,本発明
においてはこの実施例に限定されず、例えば、1ビット
記憶素子19〜22の出力信号の代わりに第1の排他論理和
ゲート11~14の出力信号を第2の排他論理和ゲート7~10に
入力して,m回のクロック信号を第1及び第2のシフトレ
ジスタに入力することにより乗算結果を得るように構成
することも可能である.尚、以上本発明を拡大次数m=4
に適用したものを例として説明したが、本発明はこれの
みに限定されるものではなく、fが既約である任意の拡
大次数mに対して適用できる。
シフトレジスタ60を構成する1ビット記憶素子19~22の出
力信号を第2の排他論理和ゲート7~10に入力して,m+1回
のクロック信号を第1及び第2のシフトレジスタに入力す
ることにより乗算結果を得るように構成したが,本発明
においてはこの実施例に限定されず、例えば、1ビット
記憶素子19〜22の出力信号の代わりに第1の排他論理和
ゲート11~14の出力信号を第2の排他論理和ゲート7~10に
入力して,m回のクロック信号を第1及び第2のシフトレ
ジスタに入力することにより乗算結果を得るように構成
することも可能である.尚、以上本発明を拡大次数m=4
に適用したものを例として説明したが、本発明はこれの
みに限定されるものではなく、fが既約である任意の拡
大次数mに対して適用できる。
【0020】
【発明の効果】本発明は以上説明したようにガロア体GF
(2m)を生成多項式として構成するものであるから、処理
が高速で、且つ、回路規模が小さい有限体上の乗算方法
及び乗算回路を実現する上で著しい効果を発揮する。
(2m)を生成多項式として構成するものであるから、処理
が高速で、且つ、回路規模が小さい有限体上の乗算方法
及び乗算回路を実現する上で著しい効果を発揮する。
【図1】本発明に係わる一般的な有限体上の乗算回路を
示す構成図
示す構成図
【図2】本発明に係わる有限体上の乗算回路の実施の形
態例を示す回路構成図
態例を示す回路構成図
【図3】本発明に係わる有限体上の乗算回路の動作を説
明するタイムチャート図
明するタイムチャート図
1・・被乗数a=(a0,a1,a2,a3) 2・・乗数b=(b0,b1,b2,a3) 3〜6・・乗算結果c=(c0,c1,c2,c3) 7〜14・・排他的論理和ゲート 15〜18・・論理積ゲート 19〜27・・1ビット記憶素子 50・・第1のシフトレジスタ 60・・第2のシフトレジスタ
Claims (3)
- 【請求項1】 ガロア体GF(2m)の任意の二つの元a=(a0,a
1,...am-1)とb=(b0,b1,...,bm-1)との乗算に於いて,GF
(2)上の多項式f=xm+xm-1+...x+1が既約である拡大次数
であって前記GF(2m)の生成多項式として前記fを用いる
とき、 前記ガロア体の一方の元を初期値とする第1のm段シフト
レジスタと、前記ガロア体の他方の元と該第1のシフト
レジスタの最終m段目の出力信号とが入力するm個の論理
積ゲートと,第1段から第m段までの各入力側に第1の排
他論理和ゲートを配置した第2のm+1段シフトレジスタ
と、該第2のシフトレジスタにおける最終m+1段出力信号
と第1段から第m段までの各出力信号とを入力する第2のm
個の排他論理和ゲートとを備え、 前記論理積ゲートの各出力信号を前記第1の各排他論理
和ゲートに入力すると共に前記第2のシフトレジスタの
最終段出力信号を前記第2のシフトレジスタにおける第1
段の入力側に配置した前記第1の排他論理和ゲートの一
つにフィードバックし、 前記第1のシフトレジスタを前記ガロア体の一方の元の
値に初期値化すると共に前記第2のシフトレジスタを0値
に初期値化した後,前記第1及び第2のシフトレジスタを
同時にm+1回シフト動作して、前記第2の排他論理和ゲー
トの出力から前記ガロア体の二つの元aとbとの乗算結果
を得るように構成した有限体上の乗算回路。 - 【請求項2】 請求項1記載の乗算回路に於いて,前記
第2の排他論理和ゲートに前記第2のシフトレジスタの最
終m+1段出力信号と前記第1の排他論理和ゲートの出力信
号とを入力するように構成し、前記第1と第2のシフトレ
ジスタをm回シフト動作して、前記第2の排他論理和ゲー
トの出力から前記ガロア体の二つの元aとbとの乗算結果
を得るように構成したガロア体上の乗算回路。 - 【請求項3】 ガロア体GF(2m)の任意の二つの元a=(a0,a
1,...am-1)とb=(b0,b1,...,bm-1)との乗算に於いて,GF
(2)上の多項式f=xm+xm-1+...x+1が既約である拡大次数
であって前記GF(2m)の生成多項式として前記fを用いる
とき、 前記乗算の結果をc=(c0,c1,...,cm)として,前記ガロア
体の一方の元aを記憶する第1のmビット記憶手段raと,前
記ガロア体の他方の元bを記憶する第2のmビット記憶手
段rbと,前記乗算結果cを記憶する第3のm+1ビット記憶手
段rcとを用いて, 前記第3の記憶手段rcを0値に初期化
した後,前記第2の記憶手段rbと前記第3の記憶手段rcと
をシフトし,シフト毎に前記第2の記憶手段rbの桁あふ
れを検出し、前記第2の記憶手段rbに桁あふれがあれ
ば、i=0~m-1ビットに対して前記第3の記憶手段rcの値rc
iと前記第2の記憶手段raの値raiとの排他論理和をと
り、この結果を前記rciに代入し,さらにシフトをm回繰
り返した後に前記第3の記憶手段rcにおけるi=0~m-1ビッ
トの値rciとmビット目の値rcmとの排他論理和をとるこ
とにより、前記ガロア体の二つの元aとbとの乗算結果を
得る有限体上の乗算方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9275321A JPH1196030A (ja) | 1997-09-22 | 1997-09-22 | 有限体上の乗算方法及び乗算回路 |
US09/157,635 US6138134A (en) | 1997-09-22 | 1998-09-21 | Computational method and apparatus for finite field multiplication |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9275321A JPH1196030A (ja) | 1997-09-22 | 1997-09-22 | 有限体上の乗算方法及び乗算回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1196030A true JPH1196030A (ja) | 1999-04-09 |
Family
ID=17553829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9275321A Pending JPH1196030A (ja) | 1997-09-22 | 1997-09-22 | 有限体上の乗算方法及び乗算回路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6138134A (ja) |
JP (1) | JPH1196030A (ja) |
Cited By (2)
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 | 演算回路および演算プロセッサ |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2788616B1 (fr) * | 1999-01-15 | 2001-04-20 | St Microelectronics Sa | Circuit de multiplication dans un corps de galois |
FR2853424B1 (fr) * | 2003-04-04 | 2005-10-21 | Atmel Corp | Architecture de multiplicateurs polynomial et naturel combines |
KR100606437B1 (ko) | 2004-12-16 | 2006-08-01 | 고려대학교 산학협력단 | 확장체에서 다항식 곱셈장치 및 방법 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS55149551A (en) * | 1979-05-10 | 1980-11-20 | Toshiba Corp | Data correcting circuit |
EP0096165B1 (en) * | 1982-06-15 | 1988-06-08 | Kabushiki Kaisha Toshiba | Apparatus for dividing the elements of a galois field |
IL94449A (en) * | 1990-05-20 | 1994-06-24 | Fortress U & T 2000 Ltd | Method and apparatus for exponentiation over gf(2") |
US5987056A (en) * | 1997-11-13 | 1999-11-16 | Lsi Logic Corporation | PN sequence hopping method and system |
-
1997
- 1997-09-22 JP JP9275321A patent/JPH1196030A/ja active Pending
-
1998
- 1998-09-21 US US09/157,635 patent/US6138134A/en not_active Expired - Fee Related
Cited By (2)
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 | 演算回路および演算プロセッサ |
Also Published As
Publication number | Publication date |
---|---|
US6138134A (en) | 2000-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lee | High-speed VLSI architecture for parallel Reed-Solomon decoder | |
US6928602B2 (en) | Encoding method and encoder | |
JP3238128B2 (ja) | リードソロモン符号化装置および方法 | |
KR100659265B1 (ko) | 패리티비트가 역순으로 부가된 씨.알.씨. 코드의에러검출장치 및 방법 | |
WO2007132656A1 (ja) | 誤り訂正符号化方法及び装置 | |
US20150160922A1 (en) | N-Valued Shift Registers with Inverter Reduced Feedback Logic Functions | |
KR100322739B1 (ko) | 유한체연산방법및그장치 | |
US6263471B1 (en) | Method and apparatus for decoding an error correction code | |
JPH1196030A (ja) | 有限体上の乗算方法及び乗算回路 | |
US6219816B1 (en) | Device and method for carrying out Reed-Solomon encoding | |
US6880121B2 (en) | Parallel processing syndrome calculating circuit and reed-solomon decoding circuit | |
JPH03219725A (ja) | 誤り検査コード生成装置および伝送誤り検出装置 | |
KR100486726B1 (ko) | 유한 체에서의 기저 변환 방법 및 기저 변환 장치 | |
KR100552694B1 (ko) | 유한 체에서 곱셈 연산 방법 및 장치 | |
JP4045872B2 (ja) | 符号化方法および符号化装置 | |
JPH11110241A (ja) | ガロア体上の乗算方法及び乗算回路 | |
JPH0476540B2 (ja) | ||
US6859905B2 (en) | Parallel processing Reed-Solomon encoding circuit and method | |
KR100893695B1 (ko) | 유한체 상의 고속 직렬 곱셈기 구조 | |
JP2591611B2 (ja) | t重誤り訂正符号の符号化復号化回路 | |
JPH08139612A (ja) | リード・ソロモン誤り訂正符号復号化回路 | |
US7287207B2 (en) | Method and apparatus for computing parity characters for a codeword of a cyclic code | |
Lee | An ultra high-speed Reed-Solomon decoder | |
JPH1065553A (ja) | リードソロモン復号化器用多項式評価装置 | |
KR19980015799A (ko) | 조합 논리 회로에 의한 갈로아체 곱셈기 |