JP2790327B2 - 剰余乗算回路および剰余乗算方法 - Google Patents
剰余乗算回路および剰余乗算方法Info
- Publication number
- JP2790327B2 JP2790327B2 JP20697389A JP20697389A JP2790327B2 JP 2790327 B2 JP2790327 B2 JP 2790327B2 JP 20697389 A JP20697389 A JP 20697389A JP 20697389 A JP20697389 A JP 20697389A JP 2790327 B2 JP2790327 B2 JP 2790327B2
- Authority
- JP
- Japan
- Prior art keywords
- remainder
- value
- partial
- divisor
- circuit
- 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
【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明はA×BmodNなる剰余乗算を高速に処理するた
めの剰余乗算回路および剰余乗算方法に関するものであ
る。剰余乗算により暗号演算処理にとって有用なMemodN
なるべき乗剰余を組み立てることができ、特に暗号処理
に利用可能なものである。
めの剰余乗算回路および剰余乗算方法に関するものであ
る。剰余乗算により暗号演算処理にとって有用なMemodN
なるべき乗剰余を組み立てることができ、特に暗号処理
に利用可能なものである。
(従来の技術) (イ)従来の伝統的な手法、この伝統的な手法におけ
る問題を改善するようにした(ロ)剰余テーブルを用い
る手法及び(ハ)乗算用加算に除算用減算を挟み込む専
用回路を用いる手法の順に説明する。
る問題を改善するようにした(ロ)剰余テーブルを用い
る手法及び(ハ)乗算用加算に除算用減算を挟み込む専
用回路を用いる手法の順に説明する。
(イ)伝統的な手法 従来の剰余乗算A×BmodNは、一般に、第6図に示さ
れるように、A×Bを計算した後、Nで除算し、その剰
余(余り)をもって結果とする。この図では、乗算を実
行するのに2を基数として1桁ずつシフトしつつ加算
し、除算も同様に減算しつつ実行する。従って、この剰
余乗算の例では、A、B、Nの2進数における桁数を偶
数nとすると、乗算用に最大n回の部分積Aの加算と、
除算用に最大n回の除数Nの加減算が必要となる。な
お、第6図は2進8桁の場合を示し、同図においてA/0
等はA又は0であることを示している。
れるように、A×Bを計算した後、Nで除算し、その剰
余(余り)をもって結果とする。この図では、乗算を実
行するのに2を基数として1桁ずつシフトしつつ加算
し、除算も同様に減算しつつ実行する。従って、この剰
余乗算の例では、A、B、Nの2進数における桁数を偶
数nとすると、乗算用に最大n回の部分積Aの加算と、
除算用に最大n回の除数Nの加減算が必要となる。な
お、第6図は2進8桁の場合を示し、同図においてA/0
等はA又は0であることを示している。
除算処理の非効率性:上記の処理では、除算用に減算を
繰り返すが、その減算量は予め決定されてないので、決
定するのに部分剰余と除数Nとの比較を毎回行う必要が
あり、除算処理が非効率的であった。
繰り返すが、その減算量は予め決定されてないので、決
定するのに部分剰余と除数Nとの比較を毎回行う必要が
あり、除算処理が非効率的であった。
汎用計算機を用いる場合の困難性:上記の方法を汎用計
算機上で実行する場合、32ビット等の単位に分割して加
減算を繰返すため加減算の回数は増大する。この結果、
桁数nが増大すると分割された途中結果をメモリ上に頻
繁に退避させる処理が増大し、高速処理が出来なかっ
た。ただし、乗算は、汎用計算機に備わる乗算器の処理
単位に分割して実行することで、加速する方法がある
が、同様にメモリアクセス回数が大きく、高速処理がで
きなかった。
算機上で実行する場合、32ビット等の単位に分割して加
減算を繰返すため加減算の回数は増大する。この結果、
桁数nが増大すると分割された途中結果をメモリ上に頻
繁に退避させる処理が増大し、高速処理が出来なかっ
た。ただし、乗算は、汎用計算機に備わる乗算器の処理
単位に分割して実行することで、加速する方法がある
が、同様にメモリアクセス回数が大きく、高速処理がで
きなかった。
多ビット幅の専用回路を用いる場合の困難性:そこで、
多ビット幅の専用回路が必要となる。しかし上記の手法
を用いるとき、専用回路で加減算処理はnビット幅しか
必要ないが、ハード量は2nビット幅を要するなどの非効
率的な点があった。
多ビット幅の専用回路が必要となる。しかし上記の手法
を用いるとき、専用回路で加減算処理はnビット幅しか
必要ないが、ハード量は2nビット幅を要するなどの非効
率的な点があった。
(ロ)剰余テーブルを用いる方法 そこで、上記の伝統的な手法における除算処理の非効
率性を改善するため、除算は剰余テーブルを参照し除算
にかかわる加減算の回数を減らすなどの対策が取られて
きた((1)鳥居他:“RSA高速並列乗除LSIの構成",信
学総全大,1388(1987)。(2)川村他:“RSA暗号方式
における剰余計算の高速化",信学部門大,14(198
7)。)。
率性を改善するため、除算は剰余テーブルを参照し除算
にかかわる加減算の回数を減らすなどの対策が取られて
きた((1)鳥居他:“RSA高速並列乗除LSIの構成",信
学総全大,1388(1987)。(2)川村他:“RSA暗号方式
における剰余計算の高速化",信学部門大,14(198
7)。)。
この剰余テーブルを用い手法は、2nビットの乗算結果
が得られたあと、その上位数ビットを下位桁の剰余に変
換する方法である。例えば、4桁単位の場合、0001×
2n、0010×2n、…、1111×2nの値の除数Nによる剰余を
予め剰余テーブルとして用意し、乗算結果を上位から4
桁を除いた値と、上位4桁から決まる剰余の加算とを加
算することで順次桁数を減らし、nビットとなったとこ
ろで処理を打ち切る。
が得られたあと、その上位数ビットを下位桁の剰余に変
換する方法である。例えば、4桁単位の場合、0001×
2n、0010×2n、…、1111×2nの値の除数Nによる剰余を
予め剰余テーブルとして用意し、乗算結果を上位から4
桁を除いた値と、上位4桁から決まる剰余の加算とを加
算することで順次桁数を減らし、nビットとなったとこ
ろで処理を打ち切る。
この手法の問題点:しかし、この手法は乗算処理につい
てはなんら解決策を与えて無い。また、剰余テーブルの
対策は、テーブルのメモリ量を大きくするばかりでな
く、nビット幅の剰余テーブルのデータを演算器に対し
出し入れするなど、速度ならびに回路量の点で効率的で
なく、制御も複雑であった。従って、速度、ハード量、
回路設計の複雑さの点で大きな問題が残っていた。
てはなんら解決策を与えて無い。また、剰余テーブルの
対策は、テーブルのメモリ量を大きくするばかりでな
く、nビット幅の剰余テーブルのデータを演算器に対し
出し入れするなど、速度ならびに回路量の点で効率的で
なく、制御も複雑であった。従って、速度、ハード量、
回路設計の複雑さの点で大きな問題が残っていた。
(ハ)乗算用加算に除算用減算を挟み込む専用回路を用
いる手法 前記伝統的な手法における多ビット幅の専用回路を用
いる場合の困難性を解決するためには、乗算用加算に除
算用減算を挟み込んでnビット幅の専用回路だけで処理
できることを特徴とするBaker法が提案されている(P.
W.Baker:“Fast Computation of A*B Modulo
N",Electron.Lett.,23−15,pp.794−795(1987))。
いる手法 前記伝統的な手法における多ビット幅の専用回路を用
いる場合の困難性を解決するためには、乗算用加算に除
算用減算を挟み込んでnビット幅の専用回路だけで処理
できることを特徴とするBaker法が提案されている(P.
W.Baker:“Fast Computation of A*B Modulo
N",Electron.Lett.,23−15,pp.794−795(1987))。
この手法は、第7図に示すように、上位から順に、部
分乗数と部分除数を約nビット幅について加減算する。
部分乗数は、乗数Bを上位から1桁づつとりその値によ
りA又は0を部分剰余に加算する。部分剰余の値により
−2N、−N、0、N、又は2Nの部分除数が決定され、部
分剰余に加算する。部分剰余を1桁シフトし、同様のこ
とを繰り返す。この手法は、乗算は基数2とし1桁毎に
行われるが、部分剰余がn桁からオーバフローするのを
抑制するために−2N〜2Nの範囲をもつ基数4の部分除数
を利用している。
分乗数と部分除数を約nビット幅について加減算する。
部分乗数は、乗数Bを上位から1桁づつとりその値によ
りA又は0を部分剰余に加算する。部分剰余の値により
−2N、−N、0、N、又は2Nの部分除数が決定され、部
分剰余に加算する。部分剰余を1桁シフトし、同様のこ
とを繰り返す。この手法は、乗算は基数2とし1桁毎に
行われるが、部分剰余がn桁からオーバフローするのを
抑制するために−2N〜2Nの範囲をもつ基数4の部分除数
を利用している。
この手法の問題点:この手法は専用回路としては解決を
与えているが、速度性向上については、加減算回数を削
減していないので上記各手法と本質的に変わらない。
与えているが、速度性向上については、加減算回数を削
減していないので上記各手法と本質的に変わらない。
(発明が解決しようとする課題) 従来の各技術は、高速処理が困難であり、またハード
量及び回路設計の複雑さの点で問題があった。
量及び回路設計の複雑さの点で問題があった。
そこで、本発明は、上記問題点の解決を図り、速度性
能に優れ、回路規模が僅かで回路構成が単純であり、設
計が容易な剰余乗算回路および剰余乗算方法を提供する
ことを目的としている。
能に優れ、回路規模が僅かで回路構成が単純であり、設
計が容易な剰余乗算回路および剰余乗算方法を提供する
ことを目的としている。
[発明の構成] (課題を解決するための手段) 上記課題を解決するために、本発明の剰余乗算回路
は、A、B、Nを入力変数とするA×BmodNなる剰余乗
算を基数r(r=2r′とし、r′≧1でr′は整数)
により実行する剰余乗算回路であって、前記被乗数Aの
値を|A|≦N/2又は|A|≒N/2なる整数の範囲に変形を加え
る変形手段と、前記乗数Bの値から、部分乗数値b(b
∈{[−r/2、r/2]の整数})から各桁が構成できるr
進の数に展開する乗数生成手段と、前記除数Nから比較
指標値を生成する指標生成手段と、前記部分乗数値bに
より参照される前記比較指標値と剰余Rの値を大小比較
することにより部分除数値c(c∈{[−r/2、r/2]の
整数})を決定する除数生成手段と、r×(R−cN)+
bAを処理しその処理結果で前記剰余Rを更新する演算手
段とを有することを要旨とする。
は、A、B、Nを入力変数とするA×BmodNなる剰余乗
算を基数r(r=2r′とし、r′≧1でr′は整数)
により実行する剰余乗算回路であって、前記被乗数Aの
値を|A|≦N/2又は|A|≒N/2なる整数の範囲に変形を加え
る変形手段と、前記乗数Bの値から、部分乗数値b(b
∈{[−r/2、r/2]の整数})から各桁が構成できるr
進の数に展開する乗数生成手段と、前記除数Nから比較
指標値を生成する指標生成手段と、前記部分乗数値bに
より参照される前記比較指標値と剰余Rの値を大小比較
することにより部分除数値c(c∈{[−r/2、r/2]の
整数})を決定する除数生成手段と、r×(R−cN)+
bAを処理しその処理結果で前記剰余Rを更新する演算手
段とを有することを要旨とする。
また、本発明の剰余乗算方法は、上記の剰余乗算回路
を用いた剰余乗算方法であって、前記被乗数Aが前記整
数の範囲に無いとき、前記変形手段により前記被乗数A
を変形処理し、r進の上位桁から下位桁へ順番に、前記
乗数生成手段により生成される部分乗数値bと、該部分
乗数値bと前記剰余Rにより前記除数生成手段が決定す
る部分除数値cとを求め、前記演算手段による前記剰余
Rの更新処理を行い、一連の処理を繰返し実行すること
で、最終結果の前記剰余RをA×BmodNなる結果とする
ことを要旨とする。
を用いた剰余乗算方法であって、前記被乗数Aが前記整
数の範囲に無いとき、前記変形手段により前記被乗数A
を変形処理し、r進の上位桁から下位桁へ順番に、前記
乗数生成手段により生成される部分乗数値bと、該部分
乗数値bと前記剰余Rにより前記除数生成手段が決定す
る部分除数値cとを求め、前記演算手段による前記剰余
Rの更新処理を行い、一連の処理を繰返し実行すること
で、最終結果の前記剰余RをA×BmodNなる結果とする
ことを要旨とする。
(作用) 本発明では、従来法における加減算の回数を、高次の
基数rにより演算を展開する。つまり、第7図で示され
るBaker法と同様に、本発明は乗算に用いられる部分積
の加減算の間に除数Nの倍数の加減算を適宜挟み込む。
しかし、本発明では計算している過程の剰余を、任意の
基数r(r≡2r′)に対して一定の範囲に抑えつつ展
開するため、Baker法の1桁毎でなく、任意のr′桁毎
に処理することが可能となる。このため、乗算用加算と
除算用減算を1/r′倍に削減でき、従来法よりr′倍だ
けの高速処理を達成できる。また、回路構造も単純な繰
返し性のあるセルにより構成することができ、設計の容
易化が図られる。
基数rにより演算を展開する。つまり、第7図で示され
るBaker法と同様に、本発明は乗算に用いられる部分積
の加減算の間に除数Nの倍数の加減算を適宜挟み込む。
しかし、本発明では計算している過程の剰余を、任意の
基数r(r≡2r′)に対して一定の範囲に抑えつつ展
開するため、Baker法の1桁毎でなく、任意のr′桁毎
に処理することが可能となる。このため、乗算用加算と
除算用減算を1/r′倍に削減でき、従来法よりr′倍だ
けの高速処理を達成できる。また、回路構造も単純な繰
返し性のあるセルにより構成することができ、設計の容
易化が図られる。
(実施例) 以下、本発明の実施例を図面に基づいて説明する。
まず、第1図及び第2図を用いて、本実施例の基本構
成及び基本方法から説明する。
成及び基本方法から説明する。
本実施例は基本的に以下の式を繰返し実行すること
で、最終的に剰余を得るものである。
で、最終的に剰余を得るものである。
←r×(R−cN)+bA …(1) ここに、Rは逐次求めていく部分剰余であり値が更新
されてとなり、←は代入を示し、bは乗数Bをr進法
展開したとき対応する桁の値を現わし、cはbにより決
まる比較指標値とRとを比較して決定されてた値を示
す。
されてとなり、←は代入を示し、bは乗数Bをr進法
展開したとき対応する桁の値を現わし、cはbにより決
まる比較指標値とRとを比較して決定されてた値を示
す。
ここで、前後を区別する為に^を用いた。
第1図は、上記(1)式をオーバフローなしに実行で
きる部分除数値cを決定する方法を説明する変形ロバー
トソン図である(元のロバートソン図は参考文献、K.Hw
ang:“コンピュータの高速演算方式,"近代科学社訳版
(1980)に詳しい。元のロバートソン図は除法のみを対
象としたため、b=0の場合に相当する)。
きる部分除数値cを決定する方法を説明する変形ロバー
トソン図である(元のロバートソン図は参考文献、K.Hw
ang:“コンピュータの高速演算方式,"近代科学社訳版
(1980)に詳しい。元のロバートソン図は除法のみを対
象としたため、b=0の場合に相当する)。
第1図では、横軸で[−rd、rd]の範囲、縦軸で[−
d−A/(rN)、d−A/(rN)]の範囲で決められる
窓中にあるとびとびの45度の線分がの−r/2からr/2内
の各整数に対応するグラフを示す。l1などは比較指標値
であり、互いに隣接する線分が重なり合う領域を示す。
次の部分乗数値により上記窓が上下に変動するので、
比較指標値は左右に変動することになる。ただし、部分
乗数値は[−r/2、r/2]の範囲の整数に限られ、に
関するl−iなる負の領域の比較指標値は、−に関す
る−liに相当するので予め求める比較指標値の種類は限
定される。
d−A/(rN)、d−A/(rN)]の範囲で決められる
窓中にあるとびとびの45度の線分がの−r/2からr/2内
の各整数に対応するグラフを示す。l1などは比較指標値
であり、互いに隣接する線分が重なり合う領域を示す。
次の部分乗数値により上記窓が上下に変動するので、
比較指標値は左右に変動することになる。ただし、部分
乗数値は[−r/2、r/2]の範囲の整数に限られ、に
関するl−iなる負の領域の比較指標値は、−に関す
る−liに相当するので予め求める比較指標値の種類は限
定される。
現在の←(r(R−cN)+bA)/Nを求めこれを横軸
にプロットし、その値をもつ線分が部分除数値を示
す。これは、/Nと比較指標値とを大小比較することで
どの線分cに属するかを決める。
にプロットし、その値をもつ線分が部分除数値を示
す。これは、/Nと比較指標値とを大小比較することで
どの線分cに属するかを決める。
なお、境界指標値dは、後述の付記で示されるよう
に、 d=1/2+1/{4(r−1)} を選ぶ。
に、 d=1/2+1/{4(r−1)} を選ぶ。
第2図は基数4の場合を示し、同図(a)は変形ロバ
ートソン図を、同図(b)は8ビットデータを対象とす
る加減算の並びを示す。
ートソン図を、同図(b)は8ビットデータを対象とす
る加減算の並びを示す。
第1の実施例 この実施例は、第3図で示される剰余乗算回路により
実行される。まず、この剰余乗算回路の構成から説明す
る。
実行される。まず、この剰余乗算回路の構成から説明す
る。
剰余乗算回路は、入力変数A、B、N及び剰余Rに対
応する各レジスタを有するレジスタブロック1、被乗数
Aの変形、制御パラメータ生成、順次制御機能を有する
制御ブロック2及びレジスタブロック1に蓄積された変
数A、N及びRの値を入力に加算する加算手段としての
演算ブロック3で構成されている。
応する各レジスタを有するレジスタブロック1、被乗数
Aの変形、制御パラメータ生成、順次制御機能を有する
制御ブロック2及びレジスタブロック1に蓄積された変
数A、N及びRの値を入力に加算する加算手段としての
演算ブロック3で構成されている。
レジスタブロック1は、入力ポートから入力されるA
×BmodNなる剰余乗算を行うための入力変数A、B及び
Nをそれぞれ保持するAレジスタ11、Bレジスタ13及び
Nレジスタ15と、剰余Rを保持するRレジスタ17とを有
している。
×BmodNなる剰余乗算を行うための入力変数A、B及び
Nをそれぞれ保持するAレジスタ11、Bレジスタ13及び
Nレジスタ15と、剰余Rを保持するRレジスタ17とを有
している。
制御ブロック2は、被乗数Aの値を|A|≦N/2又は|A|
≒N/2なる整数の範囲に変形を加える変形手段としての
A変形回路21、制御パラメータ生成回路23及びシーケン
ス制御回路25で構成されている。制御パラメータ生成回
路23により、乗数Bの値から、部分乗数値bから各桁が
構成できるr進の数に展開する乗数生成手段と、除数N
から比較指標値を生成する指標生成手段と、前記部分乗
数値bにより参照される前記比較指標値と剰余Rの値を
大小比較することにより部分除数値cを決定する除数生
成手段とが実現されている。
≒N/2なる整数の範囲に変形を加える変形手段としての
A変形回路21、制御パラメータ生成回路23及びシーケン
ス制御回路25で構成されている。制御パラメータ生成回
路23により、乗数Bの値から、部分乗数値bから各桁が
構成できるr進の数に展開する乗数生成手段と、除数N
から比較指標値を生成する指標生成手段と、前記部分乗
数値bにより参照される前記比較指標値と剰余Rの値を
大小比較することにより部分除数値cを決定する除数生
成手段とが実現されている。
また、演算ブロック3は、部分乗数値bにより部分積
bAを生成するA変形回路31、部分除数値cにより部分除
数cNを生成するN変形回路33、Rをr倍するR変形回路
35及び加算回路37で構成されている。
bAを生成するA変形回路31、部分除数値cにより部分除
数cNを生成するN変形回路33、Rをr倍するR変形回路
35及び加算回路37で構成されている。
次に、上述のように構成された剰余乗算回路で実行さ
れる剰余乗算の手順を説明する。
れる剰余乗算の手順を説明する。
ステップ1:初期化 N<2Aなら、A←A−N n←log2(N)」+1 k←n/r′」+1 R(k-1)←0 c(k+1)←0 ステップ2:n/r′」+1回繰返す R(k-1)←r×{R(k)−c(k+1)N}+b(k)A c(k)←fc(R(k-1)、b(k−1)) k←k−1 ステップ3:後処理 R(0)←R(0)−c(1)N ここで、関数fcは以下の様に実行される。
関数fc(R、b): ここで、比較指標値は第1図における横軸方向で線分
同士が重なり合う領域の中点とし、li≡i−1/2−bA/
(rN)、l−i≡−i+1/2−bA/(rN)で、bに関して
−r/2からr/2の間の整数の範囲とiは1からr/2の整数
の範囲に対して、予め求めておく。
同士が重なり合う領域の中点とし、li≡i−1/2−bA/
(rN)、l−i≡−i+1/2−bA/(rN)で、bに関して
−r/2からr/2の間の整数の範囲とiは1からr/2の整数
の範囲に対して、予め求めておく。
上述したように、この実施例によれば、比較指標値を
簡単に設定できる。
簡単に設定できる。
第2の実施例 この実施例は、関数fcの比較処理を近似処理化するも
のである。
のである。
A、B、N等のビット長nが増大する場合、それに伴
い関数fcの値を決めるために行われるRと比較指標との
比較ビット長が増大する。そこで、上位の数ビットの比
較でこれを置き換える。つまり、関数fcは以下の様にす
る。
い関数fcの値を決めるために行われるRと比較指標との
比較ビット長が増大する。そこで、上位の数ビットの比
較でこれを置き換える。つまり、関数fcは以下の様にす
る。
関数fc(R、b): ここで、Li≡i−1/2−bAtop/(rNtop)、L−i≡−
i+1/2−bAtop/(rNtop)で、bは−r/2からr/2の間の
整数の範囲とiは1からr/2の整数の範囲に対して、予
め求めておく。また、Ntop=Nの上位のxビットとし、
AtopとRtopはNtopの生成に使われる桁以上の桁にあるA
およびRをそれぞれ採る。AとRは符号付であるのでAt
op、Rtopとも符号付とする。
i+1/2−bAtop/(rNtop)で、bは−r/2からr/2の間の
整数の範囲とiは1からr/2の整数の範囲に対して、予
め求めておく。また、Ntop=Nの上位のxビットとし、
AtopとRtopはNtopの生成に使われる桁以上の桁にあるA
およびRをそれぞれ採る。AとRは符号付であるのでAt
op、Rtopとも符号付とする。
xは後述の付記に導かれるように決定され、 x=「log2{(r−1)(rd+2)}+3 を得る。
上述の第2の実施例を使えば、比較指標値と部分剰余
の大小比較を上位数ビットだけの僅かな比較による方
法で済む。
の大小比較を上位数ビットだけの僅かな比較による方
法で済む。
第3の実施例 この実施例は、Aの正規化を近似処理化するものであ
る。
る。
前記第1の実施例のステップ1のにおけるNと2Aの
大小比較も全ビットを対象とすると、nの増大に伴い速
度抑制要因またはハード量増大要因となることがある。
大小比較も全ビットを対象とすると、nの増大に伴い速
度抑制要因またはハード量増大要因となることがある。
その場合、Nと2Aの大小比較もNtopと2Atopの大小比
較で置き換える。関数fcの時と同様にNtop=Nの上位の
yビットとし、AtopはNtopの生成に使われるNの領域以
上のAをそれぞれ採る。また、Aは符号付であるのでAt
opも符号付とする。
較で置き換える。関数fcの時と同様にNtop=Nの上位の
yビットとし、AtopはNtopの生成に使われるNの領域以
上のAをそれぞれ採る。また、Aは符号付であるのでAt
opも符号付とする。
このとき、|Atop/Ntop−A/N|<2/Ntopより、 2AtopとNtopの大小比較と、大と判定された場合A←
A−Nを実行することにより、 |A/N|<|Atop/Ntop| +2/Ntop<1/2+2/Ntop となる。したがって、 d=1/2+(1−4/Ntop) /{4(r−1)} ここで、Nの最上位桁は1であるので、 d=1/2+(1−23-y)/{4(r−1)} を選択する。
A−Nを実行することにより、 |A/N|<|Atop/Ntop| +2/Ntop<1/2+2/Ntop となる。したがって、 d=1/2+(1−4/Ntop) /{4(r−1)} ここで、Nの最上位桁は1であるので、 d=1/2+(1−23-y)/{4(r−1)} を選択する。
この結果、元のdより若干小さくなるので、実施例2
と併用する場合、 x=「log2{(r−1)(rd+2) /(1−23-y)}+3 に導かれる関係で、xとyを選択する。
と併用する場合、 x=「log2{(r−1)(rd+2) /(1−23-y)}+3 に導かれる関係で、xとyを選択する。
この第3の実施例によれば、Aの変形につかう2A>N
の比較も僅かなビットの比較で済む。
の比較も僅かなビットの比較で済む。
第4の実施例 この実施例は、キャリーセーブ加算器の適用を行うも
のである。
のである。
桁上がり伝搬を抑制するため、伝統的なキャリーセー
ブ加算器に使われる冗長表現を適用した場合の加算器の
基数4の実施例を示す。第4図に示すセル回路をアレイ
状にn+r′個配置することで、加算器が実現できる。
ブ加算器に使われる冗長表現を適用した場合の加算器の
基数4の実施例を示す。第4図に示すセル回路をアレイ
状にn+r′個配置することで、加算器が実現できる。
ここで、R≡2Rc+Rsなる関係でRを冗長表現すると
き、R+Xの加算を、 Rs←Rs(2Rc)X Rc←(Rs∧(2Rc))∨{X∧(Rs∨(2Rc))} なる処理に置き換えるという原理に基づく。
き、R+Xの加算を、 Rs←Rs(2Rc)X Rc←(Rs∧(2Rc))∨{X∧(Rs∨(2Rc))} なる処理に置き換えるという原理に基づく。
さらに高次の基数でも、全加算器FAを拡張すること
で、容易に実現できる。
で、容易に実現できる。
この第4の実施例によれば、前記(1)式の演算処理
を実行する演算回路を、桁上がり伝搬時間を削減できる
キャリーセーブ加算を使って構築できる。
を実行する演算回路を、桁上がり伝搬時間を削減できる
キャリーセーブ加算を使って構築できる。
第5の実施例 この実施例は、冗長表現繰返し実行要請を満すもので
ある。
ある。
べき乗剰余計算をする場合、乗剰乗算結果を次の剰余
乗算の被乗数とする。高速にべき乗剰余計算する場合、
冗長表現の剰余乗算結果を桁上がり伝搬させずに次の剰
余乗算の被乗数とする要請がある。第5図に示すセル回
路をアレイ状にn+r′個配置することで、加算器が実
現でき、この要請を満たす。
乗算の被乗数とする。高速にべき乗剰余計算する場合、
冗長表現の剰余乗算結果を桁上がり伝搬させずに次の剰
余乗算の被乗数とする要請がある。第5図に示すセル回
路をアレイ状にn+r′個配置することで、加算器が実
現でき、この要請を満たす。
As←Rs Ac←Rc 本実施例は、基数4の場合である。
この実施例によれば、剰余乗算を繰返し実行するべき
乗剰余では剰余乗算結果を再び被乗数とできる演算回路
を構築できる。
乗剰余では剰余乗算結果を再び被乗数とできる演算回路
を構築できる。
付記 前記基本構成等の説明における比較指標値dの導出及
び前記第2の実施例における比較用のN、Rの上位桁の
桁数xの導出を付記として説明する。
び前記第2の実施例における比較用のN、Rの上位桁の
桁数xの導出を付記として説明する。
比較指標値dの導出 (基数4の場合) 第2図における縦軸の比較指標値7/12としてdと置
く。
く。
最初に、グラフが横軸に対して連続と成るための必要
条件は次式となる。
条件は次式となる。
d>1/2 ……(2) (4R+bA)/Nが[−4d、4d]の横軸の範囲に収まる条
件は、 4d≦2+d−|bA|/(4N) …(3) このとき、|b|≦2と|A|≦N/2の条件をつかって、式
(2)、(3)は次式に変形される。
件は、 4d≦2+d−|bA|/(4N) …(3) このとき、|b|≦2と|A|≦N/2の条件をつかって、式
(2)、(3)は次式に変形される。
1/2<d≦7/12 …(4) この結果、 d=7/12 …(5) が得られる。
(基数rに対する一般の場合) 一般的に基数rに対して、式(3)と同様に、 rd≦r/2+d−|bA|/(rN) …(6) これに対し、|b|≦r/2、|c|≦r/2、|A|≦N/2の条件を
使い、 d=1/2+1/4・(r−1) …(7) を得る。
使い、 d=1/2+1/4・(r−1) …(7) を得る。
比較用のN、Rの上位桁の桁数xの導出 (定義) ≡rR+bA Ntop≡{Nの上位xビット} Atop≡{Aの上位xビット} Rtop≡{の上位(x+log2(r)ビット} 但し、xは正の整数とし、b≡b(k)とする。
(基数4の場合) 第2図において、c=0とc=+1の間にある指標値
l1は、 l1≡1/2−・A/4N …(8) ここで、≡b(k−1)とした。
l1は、 l1≡1/2−・A/4N …(8) ここで、≡b(k−1)とした。
境界指標l1の近似値として次式でL1を定義する。
L1≡1/2−(Atop)/4Ntop …(9) 次式が満足されるならば、境界指標l1ととのnビッ
ト長比較を、RtopとL1とを使う低精度の比較に置き換え
ることができる。
ト長比較を、RtopとL1とを使う低精度の比較に置き換え
ることができる。
ε≦δ−δ′ …(10) 但し、 ε≡|/N−Rtop/Ntop| …(11) δ≡d−1/2=1/12 …(12) δ′≡|L1−l1| …(13) とする。
/N≦rd=7/3を用いれば、式(11)は次式に変形さ
れる。
れる。
ε≦|(Rtop+1)/Ntop−Rtop /(Ntop+1)|<10/(3Ntop) …(14) |b|≦2を用いれば、式(13)は δ′<2|b|/4Ntop≦1/Ntop …(15) 式(10)、(12)、(14)、(15)より Ntop≧52 …(16) Ntopの最上位桁は常に1であるから、 Ntop≧2x-1 …(17) この結果、式(16)、(17)条件下を満たす、xの最
小値を選択して、 x=7 …(18) を得る。
小値を選択して、 x=7 …(18) を得る。
l2、l−1、l−2についても同様に式(18)で十分
となる。
となる。
(基数rに対する一般の場合) 上記の場合と同様の方法で、次式を得る。
Ntop≧4(r−1)(rd+2) …(19) 故に、最小値xは次式のようになる。
x=「log2{(r−1)(rd+2)}+3…(20) [発明の効果] 以上説明したように、本発明の剰余乗算回路および剰
余乗算方法によれば、従来よりr′倍だけ高速な回路を
実現することができる。また、回路構造も単純な繰返し
性のあるセルにより構成することができて設計の容易化
を実現することができる。除算用の減算量は部分剰余の
加算の度に比較する必要があるが、上位数ビットの比較
だけで済み、比較回路も1/r′に削減されるので、比較
の回路及び比較用のデータを蓄積するメモリも僅かで済
み、これとともにメモリアクセス回数が少なくなって高
速処理を達成することができる。
余乗算方法によれば、従来よりr′倍だけ高速な回路を
実現することができる。また、回路構造も単純な繰返し
性のあるセルにより構成することができて設計の容易化
を実現することができる。除算用の減算量は部分剰余の
加算の度に比較する必要があるが、上位数ビットの比較
だけで済み、比較回路も1/r′に削減されるので、比較
の回路及び比較用のデータを蓄積するメモリも僅かで済
み、これとともにメモリアクセス回数が少なくなって高
速処理を達成することができる。
第1図及び第2図は本発明に係る剰余乗算回路および剰
余乗算方法の基本構成及び作用を説明するためのもの
で、第1図は部分剰余から次の部分剰余を生成するのに
必要な部分減算量cNを決定する方法を説明するための変
形ロバートソン図、第2図は基数4の場合の変形ロバー
トソン図及び計算対象が8ビット例における加減算を説
明するための図、第3図は本発明の第1の実施例に適用
される剰余乗算回路を示すブロック図、第4図は本発明
の第4の実施例に適用されるセルの回路構成を示すブロ
ック図、第5図は本発明の第5の実施例に適用されるセ
ルの回路構成を示すブロック図、第6図は従来の剰余乗
算法を説明するための図、第7図は他の従来例であるBa
ker法を説明するための図である。 3:演算ブロック(演算手段) 21:A変形回路(変形手段)、 23:乗数生成手段、指標生成手段及び除数生成手段とな
る制御パラメータ生成回路。
余乗算方法の基本構成及び作用を説明するためのもの
で、第1図は部分剰余から次の部分剰余を生成するのに
必要な部分減算量cNを決定する方法を説明するための変
形ロバートソン図、第2図は基数4の場合の変形ロバー
トソン図及び計算対象が8ビット例における加減算を説
明するための図、第3図は本発明の第1の実施例に適用
される剰余乗算回路を示すブロック図、第4図は本発明
の第4の実施例に適用されるセルの回路構成を示すブロ
ック図、第5図は本発明の第5の実施例に適用されるセ
ルの回路構成を示すブロック図、第6図は従来の剰余乗
算法を説明するための図、第7図は他の従来例であるBa
ker法を説明するための図である。 3:演算ブロック(演算手段) 21:A変形回路(変形手段)、 23:乗数生成手段、指標生成手段及び除数生成手段とな
る制御パラメータ生成回路。
Claims (2)
- 【請求項1】A、B、Nを入力変数とするA×BmodNな
る剰余乗算を基数r(r=2r′とし、r′≧1でr′
は整数)により実行する剰余乗算回路であって、 前記被乗数Aの値を|A|≦N/2又は|A|≒N/2なる整数の範
囲に変形を加える変形手段と、前記乗数Bの値から、部
分乗数値b(b∈{[−r/2、r/2]の整数})から各桁
が構成できるr進の数に展開する乗数生成手段と、前記
除数Nから比較指標値を生成する指標生成手段と、前記
部分乗数値bにより参照される前記比較指標値と剰余R
の値を大小比較することにより部分除数値c(c∈
{[−r/2、r/2]の整数})を決定する除数生成手段
と、r×(R−cN)+bAを処理しその処理結果で前記剰
余Rを更新する演算手段とを有することを特徴とする剰
余乗算回路。 - 【請求項2】請求項1記載の剰余乗算回路を用いた剰余
乗算方法であって、 前記被乗数Aが前記整数の範囲に無いとき、前記変形手
段により前記被乗数Aを変形処理し、r進の上位桁から
下位桁へ順番に、前記乗数生成手段により生成される部
分乗数値bと、該部分乗数値bと前記剰余Rにより前記
除数生成手段が決定する部分除数値cとを求め、前記演
算手段による前記剰余Rの更新処理を行い、一連の処理
を繰返し実行することで、最終結果の前記剰余RをA×
BmodNなる結果とすることを特徴とする剰余乗算方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20697389A JP2790327B2 (ja) | 1989-08-11 | 1989-08-11 | 剰余乗算回路および剰余乗算方法 |
US07/471,787 US5073870A (en) | 1989-01-30 | 1990-01-29 | Modular multiplication method and the system for processing data |
CA002008774A CA2008774C (en) | 1989-01-30 | 1990-01-29 | Modular multiplication method and the system for processing data |
EP90101842A EP0381161B1 (en) | 1989-01-30 | 1990-01-30 | Modular multipication method and the system |
DE69032811T DE69032811T2 (de) | 1989-01-30 | 1990-01-30 | Verfahren und System zur modularen Multiplikation |
US07/730,602 US5144574A (en) | 1989-01-30 | 1991-07-16 | Modular multiplication method and the system for processing data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20697389A JP2790327B2 (ja) | 1989-08-11 | 1989-08-11 | 剰余乗算回路および剰余乗算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0371332A JPH0371332A (ja) | 1991-03-27 |
JP2790327B2 true JP2790327B2 (ja) | 1998-08-27 |
Family
ID=16532070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20697389A Expired - Fee Related JP2790327B2 (ja) | 1989-01-30 | 1989-08-11 | 剰余乗算回路および剰余乗算方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2790327B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5842057A (en) * | 1996-01-26 | 1998-11-24 | Asahi Kogaki Kogo Kabushiki Kaisha | Camera with lens barrier apparatus |
US5999748A (en) * | 1996-01-26 | 1999-12-07 | Asahi Kogaku Kogyo Kabushiki Kaisha | Camera with lens barrier apparatus |
-
1989
- 1989-08-11 JP JP20697389A patent/JP2790327B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0371332A (ja) | 1991-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7424504B2 (en) | Arithmetic processor for accomodating different field sizes | |
US6847985B1 (en) | Floating point divide and square root processor | |
US9268564B2 (en) | Vector and scalar based modular exponentiation | |
Vassiliadis et al. | A general proof for overlapped multiple-bit scanning multiplications | |
JPH0368416B2 (ja) | ||
JP4273071B2 (ja) | 除算・開平演算器 | |
EP0436905B1 (en) | High performance adder using carry predictions | |
US5910910A (en) | Circuit and method for rapid calculation of quotients and square roots | |
JP3598096B2 (ja) | ニュートンラフソン法を用いた演算方式 | |
JP2003271056A (ja) | 剰余演算器 | |
JP2790327B2 (ja) | 剰余乗算回路および剰余乗算方法 | |
JPH0628155A (ja) | 除算方法および除算装置 | |
JP3660075B2 (ja) | 除算装置 | |
US7167885B2 (en) | Emod a fast modulus calculation for computer systems | |
Ercegovac et al. | Design of a complex divider | |
JP4223819B2 (ja) | べき乗剰余演算装置及びそのプログラム | |
Schwarz et al. | Cost-efficient high-radix division | |
Böttcher et al. | Resource Optimal Squarers for FPGAs | |
JP3514566B2 (ja) | 除算/開平回路 | |
Kaihara et al. | A hardware algorithm for modular multiplication/division based on the extended Euclidean algorithm | |
US20170199723A1 (en) | Circuitry and method for performing division | |
Huai et al. | Efficient architecture for long integer modular multiplication over Solinas prime | |
JP4850884B2 (ja) | べき乗剰余演算器 | |
Fenwick | High-radix division with approximate quotient-digit estimation | |
JP2518532B2 (ja) | 減算シフト型除算器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |