JPS63229531A - 剰余演算装置 - Google Patents
剰余演算装置Info
- Publication number
- JPS63229531A JPS63229531A JP62064532A JP6453287A JPS63229531A JP S63229531 A JPS63229531 A JP S63229531A JP 62064532 A JP62064532 A JP 62064532A JP 6453287 A JP6453287 A JP 6453287A JP S63229531 A JPS63229531 A JP S63229531A
- Authority
- JP
- Japan
- Prior art keywords
- bits
- register
- memory
- output
- remainder
- 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
Landscapes
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
産業上の利用分野
本発明は、暗号理論や符号理論の演算に用いられる剰余
演算を実行する剰余演算装置に関するものである。
演算を実行する剰余演算装置に関するものである。
従来の技術
暗号理論や符号理論における演算では剰余系の演算がし
ばしば用いられる。例えば公開鍵暗号として知られてい
るR8A暗号においてはべき乗剰余演算が用いられる。
ばしば用いられる。例えば公開鍵暗号として知られてい
るR8A暗号においてはべき乗剰余演算が用いられる。
べき乗剰余演算は剰余乗算を基本とする演算である。こ
こで剰余乗算は1語長の大きな3つの正の整数a、bお
よびnに対して、積a−bを整数nで割った剰余を求め
ることである。そして剰余乗算のような演算を高速に行
なうためには以下のような演算が基本となり、この演算
を繰り返して行なうことが求められる。
こで剰余乗算は1語長の大きな3つの正の整数a、bお
よびnに対して、積a−bを整数nで割った剰余を求め
ることである。そして剰余乗算のような演算を高速に行
なうためには以下のような演算が基本となり、この演算
を繰り返して行なうことが求められる。
即ち
:1−X −a MOD n ・ ・ ・ ・
(1)ここで、a、1はそれぞれ512ビツトで表わさ
れる正の整数とし、整数aを整数nで割った剰余をa
MOD n’で表わす、また法となる整数nは 2 <=n<2 ・・・・(2)に正規
化されており、整数aは予め a<n ・・・・(3)とされて
いるものとする。
(1)ここで、a、1はそれぞれ512ビツトで表わさ
れる正の整数とし、整数aを整数nで割った剰余をa
MOD n’で表わす、また法となる整数nは 2 <=n<2 ・・・・(2)に正規
化されており、整数aは予め a<n ・・・・(3)とされて
いるものとする。
(1)式のような演算を行なう場合に、”X・a”の値
がn以上の大きな数となった場合にX・aからnを繰り
返し減算することが必要となり。
がn以上の大きな数となった場合にX・aからnを繰り
返し減算することが必要となり。
この演算が高速に実行できないという問題があった。そ
こで従来、x”aのうち2511以上の部分の剰余を予
め計算しておいてメモリに格納しておき、このメモリに
格納された剰余とx”aのうち2611より小さい部分
の加算を行なう方法が提案されている。この加算結果が
n以上となった場合はその結果から1回だけnを減算す
ればよい。
こで従来、x”aのうち2511以上の部分の剰余を予
め計算しておいてメモリに格納しておき、このメモリに
格納された剰余とx”aのうち2611より小さい部分
の加算を行なう方法が提案されている。この加算結果が
n以上となった場合はその結果から1回だけnを減算す
ればよい。
以下に図面を参照してこの従来の剰余演算装置を説明す
る。ここではx=20で表わされるものとする。
る。ここではx=20で表わされるものとする。
第6図はこの従来の、C=2の場合の剰余演算を実現す
る剰余演算装置を示すブロック図である・第6図におい
て、1は被演算数aもしくは演算の途中結果a1を格納
する513ビツトのレジスタ、2はレジスタ1の内容a
lを4倍、即ち2ビツト左シフトする左シフタ、3は左
シフタ2の出力515ビツトのうち上位4ビツトを上位
から順にj3+ tg、tl+ toとするとき、この
4ビツトをアドレスとして t= t3.2””t+a、2””t+、2”””to
、2”’・・・・(4) をnで割った剰余rを格納しておくメモリ、4は左シフ
タ2の下位511ビツトa8とメモリ3の内容rを加算
する加算器、5は法とする整数nを保持する法レジスタ
、6はレジスタ1の内容alから法レジスタの内容nを
減算する減算器、7は減算器の出力”al n″が正
またはOのときは減算器7の出力を選択し、減算器の出
力”al−n”が負のときはレジスタ1の内容a+を選
択して出力するマルチプレクサ、8はマルチプレクサ7
の出力を保持するレジスタである。
る剰余演算装置を示すブロック図である・第6図におい
て、1は被演算数aもしくは演算の途中結果a1を格納
する513ビツトのレジスタ、2はレジスタ1の内容a
lを4倍、即ち2ビツト左シフトする左シフタ、3は左
シフタ2の出力515ビツトのうち上位4ビツトを上位
から順にj3+ tg、tl+ toとするとき、この
4ビツトをアドレスとして t= t3.2””t+a、2””t+、2”””to
、2”’・・・・(4) をnで割った剰余rを格納しておくメモリ、4は左シフ
タ2の下位511ビツトa8とメモリ3の内容rを加算
する加算器、5は法とする整数nを保持する法レジスタ
、6はレジスタ1の内容alから法レジスタの内容nを
減算する減算器、7は減算器の出力”al n″が正
またはOのときは減算器7の出力を選択し、減算器の出
力”al−n”が負のときはレジスタ1の内容a+を選
択して出力するマルチプレクサ、8はマルチプレクサ7
の出力を保持するレジスタである。
以上のように構成された従来の剰余演算装置においては
、まず512ビツトで表わされる被演算数aを513ビ
ツトのレジスタ1に格納し、512ビツトで表わされる
法nを法レジスタ5に格納する。左シフタ2においては
レジスタ1の内容aを2ビツト左にシフトし4aを得る
。左シフタ2の出力515ビツトのうちの上位4ビツト
をアドレスとしてメモリ3をアクセスしくこの時最上位
ビットはOである)(4)式の値tをnで割った剰余r
を得る。また左シフタ2の出力515ビツトのうちの下
位511ビツトasはそのまま加算器4に出力する。加
算器4においてはメモリ3の内容rと左シフタ2の出力
の下位511ビツトasを加算し加算結果をレジスタ1
に出力する。
、まず512ビツトで表わされる被演算数aを513ビ
ツトのレジスタ1に格納し、512ビツトで表わされる
法nを法レジスタ5に格納する。左シフタ2においては
レジスタ1の内容aを2ビツト左にシフトし4aを得る
。左シフタ2の出力515ビツトのうちの上位4ビツト
をアドレスとしてメモリ3をアクセスしくこの時最上位
ビットはOである)(4)式の値tをnで割った剰余r
を得る。また左シフタ2の出力515ビツトのうちの下
位511ビツトasはそのまま加算器4に出力する。加
算器4においてはメモリ3の内容rと左シフタ2の出力
の下位511ビツトasを加算し加算結果をレジスタ1
に出力する。
ここで、メモリ3の内容rは26目以上の値を法nで割
った剰余であるから r<n ・・・・(5)であり、n
は(2)式のように正規化されているから左シフタ2の
出力の下位511ビツトa8はa8くn
e・・・ (6)を満たす。したがってレジス
タ1に出力された加算器4の加算結果a1は a+=r+a@<2n * a a # (
7)となり、この結果は2 aをnで割った剰余系の数
であって513ビツトで表わされる数となる。
った剰余であるから r<n ・・・・(5)であり、n
は(2)式のように正規化されているから左シフタ2の
出力の下位511ビツトa8はa8くn
e・・・ (6)を満たす。したがってレジス
タ1に出力された加算器4の加算結果a1は a+=r+a@<2n * a a # (
7)となり、この結果は2 aをnで割った剰余系の数
であって513ビツトで表わされる数となる。
なお、最終的な剰余
22a MOD n <n
を得るために以下の補正を行なう。即ち、減算器6でレ
ジスタ1の値a!から法レジスタ5の内容nを減算し”
al n”を求める。マルチプレクサ7においては、
その結果が正またはOならばその減算結果を選択し、負
ならばレジスタ1の内容a+を選択してレジスタ8に出
力する。このようにしてレジスタ8には a=22a MOD n の最終結果が得られる。
ジスタ1の値a!から法レジスタ5の内容nを減算し”
al n”を求める。マルチプレクサ7においては、
その結果が正またはOならばその減算結果を選択し、負
ならばレジスタ1の内容a+を選択してレジスタ8に出
力する。このようにしてレジスタ8には a=22a MOD n の最終結果が得られる。
さらに(1)式を繰り返して行なうためには第6図の回
路が繰り返し用いられる。即ち、(7)式で与えられた
513ビツトのレジスタ1の内容a1は再び左シフタ2
に出力される。左シフタ2においてはレジスタ1の内容
atを2ビツト左にシフトし4a+を得、その出力51
5ビツトのうちの上位4ビツトをアドレスとしてメモリ
3をアクセスする。メモリ3によって値tをnで割った
剰余rが与えられ、また左シフタ2の出力515ビツト
のうちの下位511ビツトa8はそのまま加算器4に入
力される。加算器4においてはメモリ3の内容rと左シ
フタ2の出力の下位511ビツトa8を加算しその加算
結果をレジスタ1に出力する。従って、ここでレジスタ
1の値を再びalとおけば、上記した議論と同様にレジ
スタ1の内容a+は a+<2n を満たし、かつ24aをnで割った剰余系の数となって
いる。
路が繰り返し用いられる。即ち、(7)式で与えられた
513ビツトのレジスタ1の内容a1は再び左シフタ2
に出力される。左シフタ2においてはレジスタ1の内容
atを2ビツト左にシフトし4a+を得、その出力51
5ビツトのうちの上位4ビツトをアドレスとしてメモリ
3をアクセスする。メモリ3によって値tをnで割った
剰余rが与えられ、また左シフタ2の出力515ビツト
のうちの下位511ビツトa8はそのまま加算器4に入
力される。加算器4においてはメモリ3の内容rと左シ
フタ2の出力の下位511ビツトa8を加算しその加算
結果をレジスタ1に出力する。従って、ここでレジスタ
1の値を再びalとおけば、上記した議論と同様にレジ
スタ1の内容a+は a+<2n を満たし、かつ24aをnで割った剰余系の数となって
いる。
このようにしてこの回路を繰り返し用いることにより(
1)式を繰り返して実行することができる。そして最終
段階に当たってのみ減算rA6及びマルチプレクサ7を
用いて上記した補正を行ない、最終の剰余はレジスタ8
に与えられろ。
1)式を繰り返して実行することができる。そして最終
段階に当たってのみ減算rA6及びマルチプレクサ7を
用いて上記した補正を行ない、最終の剰余はレジスタ8
に与えられろ。
発明が解決しようとする問題点
しかしながら上記のような構成では、メモリ3において
、4ビツトのアドレスに対して、(4)式で与えられる
値tを法nで割った剰余rとして最大15通り必要であ
り、また各ワードは512ビツトという長語長なためメ
モリ容量が大きくなってしまうという問題点を有してい
た。
、4ビツトのアドレスに対して、(4)式で与えられる
値tを法nで割った剰余rとして最大15通り必要であ
り、また各ワードは512ビツトという長語長なためメ
モリ容量が大きくなってしまうという問題点を有してい
た。
本発明はかかる点に鑑み。
a=x−a MOD n
を繰り返して行なう剰余演算を高速に、かつ使用するメ
モリを従来の半分程度もしくはそれ以上に減することの
できる剰余演算装置を提供することを目的とする。
モリを従来の半分程度もしくはそれ以上に減することの
できる剰余演算装置を提供することを目的とする。
問題点を解決するための手段
本発明は、与えられた被演算数aを定数X倍した値a”
xを予め定められた整数nで割った剰余を与える剰余演
算装置であって、上記被演算数を入力するレジスタと、
上記レジスタの値を定数X倍する倍数器と、上記倍数器
の出力のうち上記整数nの桁数以上の桁の部分の値を上
記整数nで割った商に関する情報を予め保持するメモリ
と。
xを予め定められた整数nで割った剰余を与える剰余演
算装置であって、上記被演算数を入力するレジスタと、
上記レジスタの値を定数X倍する倍数器と、上記倍数器
の出力のうち上記整数nの桁数以上の桁の部分の値を上
記整数nで割った商に関する情報を予め保持するメモリ
と。
上記メモリに保持された情報を用いて上記倍数器の出力
から上記の商と上記整数の法との積を減算した値を出力
する演算器とを備えた剰余演算装置である。
から上記の商と上記整数の法との積を減算した値を出力
する演算器とを備えた剰余演算装置である。
作用
本発明は上記した構成により、上記レジスタに被演算数
aが代入されると上記倍数器はその値を定数X倍し、上
記メモリは上記倍数器の出力のうち整数nの桁数以上の
桁の部分の値を整数nで割った商に関する情報を予め保
持しておき、上記演算器は上記メモリに保持された情報
を用いて。
aが代入されると上記倍数器はその値を定数X倍し、上
記メモリは上記倍数器の出力のうち整数nの桁数以上の
桁の部分の値を整数nで割った商に関する情報を予め保
持しておき、上記演算器は上記メモリに保持された情報
を用いて。
上記倍数器の出力から上記の商と整数nの積を減じた値
を求め、必要であればその値を再び上記レジスタに出力
する。本発明は上記倍数器の出力のうち整数nの桁数以
上の桁の部分の値の剰余を得るに当たり、メモリが剰余
を直接持つのではな(商に関する情報を保持しておくこ
とでメモリの有効活用を図るものである。
を求め、必要であればその値を再び上記レジスタに出力
する。本発明は上記倍数器の出力のうち整数nの桁数以
上の桁の部分の値の剰余を得るに当たり、メモリが剰余
を直接持つのではな(商に関する情報を保持しておくこ
とでメモリの有効活用を図るものである。
実施例
第1図は本発明の第1の実施例におけるC=2の場合の
(1)式を実行する剰余演算装置のブロック図である。
(1)式を実行する剰余演算装置のブロック図である。
第1図において、1は被演算数aもしくは演算の途中結
果a1を格納する513ビツトのレジスタ、2はレジス
タ1の内容を4倍、即ち2ビツト左シフトする左シフタ
、3は左シフタ2の出力の上位4ビツトをj3r t、
、t++toとしたときに t = t3・2””t2・2””t+・2””to・
2”’・・・・(4) をnで割った商をqとすると、この4ビツトをアドレス
として商qと法nのfItq−nを格納するメモリ、4
は左シフタ2の515ビツト出力からメモリ3の内容q
’nを減算する減算器、5は法とする整数nを保持する
法レジスタ、6はレジスタ1の内容a1から法レジスタ
5の内容nを減算する減算器、7は減算器の出力”a+
n’が正または0のときは減算297の出力を選択
し、減算器の出力”a+ n”が負のときはレジ、ス
タ1の内容a1を選択して出力するマルチプレクサ、8
はマルチプレクサ7の出力を保持するレジスタである。
果a1を格納する513ビツトのレジスタ、2はレジス
タ1の内容を4倍、即ち2ビツト左シフトする左シフタ
、3は左シフタ2の出力の上位4ビツトをj3r t、
、t++toとしたときに t = t3・2””t2・2””t+・2””to・
2”’・・・・(4) をnで割った商をqとすると、この4ビツトをアドレス
として商qと法nのfItq−nを格納するメモリ、4
は左シフタ2の515ビツト出力からメモリ3の内容q
’nを減算する減算器、5は法とする整数nを保持する
法レジスタ、6はレジスタ1の内容a1から法レジスタ
5の内容nを減算する減算器、7は減算器の出力”a+
n’が正または0のときは減算297の出力を選択
し、減算器の出力”a+ n”が負のときはレジ、ス
タ1の内容a1を選択して出力するマルチプレクサ、8
はマルチプレクサ7の出力を保持するレジスタである。
以上のように構成された本実施例の剰余演算装置につい
て以下その動作を説明する。
て以下その動作を説明する。
まず512ビツトで表わされる被演算数aを513ビツ
トのレジスタ1に格納し、512ビツトで表わされる法
nを法レジスタ5に格納する。左シフタ2においてはレ
ジスタ1の内容aを2ビツト左にシフトし4aを得る。
トのレジスタ1に格納し、512ビツトで表わされる法
nを法レジスタ5に格納する。左シフタ2においてはレ
ジスタ1の内容aを2ビツト左にシフトし4aを得る。
左シフタ2の出力515ビツトのうちの上位4ビツトを
アドレスとしてメモリ3をアクセスしくこの時最上位ビ
ットは0である)メモリ3は(4)式の値tをnで割っ
た商qと法nとの積q’nを出力する。また左、シフタ
2の出力4aはそのまま減算器4に出力する。減算器4
においては左シフタ2の出力4aからメモリ3の出力Q
”nを減算しその結果”4a−q’n”をレジスタ1に
出力する。
アドレスとしてメモリ3をアクセスしくこの時最上位ビ
ットは0である)メモリ3は(4)式の値tをnで割っ
た商qと法nとの積q’nを出力する。また左、シフタ
2の出力4aはそのまま減算器4に出力する。減算器4
においては左シフタ2の出力4aからメモリ3の出力Q
”nを減算しその結果”4a−q’n”をレジスタ1に
出力する。
ここで、左シフタ2の出力4aの下位511ビツトをa
sとおき、(4)式のtをnで割った剰余をrとお(と
、以下の式が成り立つ。即ち。
sとおき、(4)式のtをnで割った剰余をrとお(と
、以下の式が成り立つ。即ち。
4a=t+a ・・・・(8)t=q@n+r
・・−−(9) (8)(9)式より 4a=q−n+r+a8 、’、4a−q mn=r+as ・・・(10)r
及びasは上記従来例で示した物と同一であるから(6
)式によりレジスタ1に格納された減算器4の出力al
は a+=4a−q an= r+aa<2n ・・(11
)この結果は22aをnで割った剰余系の数であって5
13ビツトで表わされる数となる。
・・−−(9) (8)(9)式より 4a=q−n+r+a8 、’、4a−q mn=r+as ・・・(10)r
及びasは上記従来例で示した物と同一であるから(6
)式によりレジスタ1に格納された減算器4の出力al
は a+=4a−q an= r+aa<2n ・・(11
)この結果は22aをnで割った剰余系の数であって5
13ビツトで表わされる数となる。
なお、最終的な剰余
22a MOD n <n
を得るためには以下の補正を行なう。即ち、減算器6で
レジスタlの値a+から法レジスタ5の内容nを減算し
”a+n”を求める。マルチプレクサ7においては、そ
の結果が正またはOならばその減算結果を選択し、負な
らばレジスタ1の内容a1を選択してレジスタ8に出力
する。このようにしてレジスタ8には a=2”a MOD n の最終結果が得られる。
レジスタlの値a+から法レジスタ5の内容nを減算し
”a+n”を求める。マルチプレクサ7においては、そ
の結果が正またはOならばその減算結果を選択し、負な
らばレジスタ1の内容a1を選択してレジスタ8に出力
する。このようにしてレジスタ8には a=2”a MOD n の最終結果が得られる。
さらに(1)式を繰り返して行なうことを考える。(1
1)式で与えられた513ビツトのレジスタ1の内容a
t<2nは再び左シフタ2に出力される。左シフタ2に
おいてはレジスタ1の内容a+を2ビツト左にシフトし
4a+が得られる。ここで4a+は(11)式より t<4a+<8n<2 ・・・・(12)であること
に注意しなければならない。その出力4a+の515ビ
ツトのうちの上位4ビツトをアドレスとしてメモリ3を
アクセスする。メモリ3によって値tをnで割った商q
と法nの積q’nが与えられる。ところが(12)式よ
り。
1)式で与えられた513ビツトのレジスタ1の内容a
t<2nは再び左シフタ2に出力される。左シフタ2に
おいてはレジスタ1の内容a+を2ビツト左にシフトし
4a+が得られる。ここで4a+は(11)式より t<4a+<8n<2 ・・・・(12)であること
に注意しなければならない。その出力4a+の515ビ
ツトのうちの上位4ビツトをアドレスとしてメモリ3を
アクセスする。メモリ3によって値tをnで割った商q
と法nの積q’nが与えられる。ところが(12)式よ
り。
t=qIIn+rく8n ・・・5(13)であるから
メモリ3はn=0〜7の8ワードが必要なだけである。
メモリ3はn=0〜7の8ワードが必要なだけである。
左シフタ2の出力515ビツトはそのまま減算&+に与
えられる。減算器4においては左シフタ2の出力4a+
からメモリ3の内容q”nを減算しその結果”4a+−
q−n”をレジスタ1に出力する。従って、ここでレジ
スタ1の値を再びalとおけば上記した議論と同様にレ
ジスタ1の内容a1は a+=4a+ qn<2n を満たし、かつ22aをnで割った剰余系の数となって
いる。
えられる。減算器4においては左シフタ2の出力4a+
からメモリ3の内容q”nを減算しその結果”4a+−
q−n”をレジスタ1に出力する。従って、ここでレジ
スタ1の値を再びalとおけば上記した議論と同様にレ
ジスタ1の内容a1は a+=4a+ qn<2n を満たし、かつ22aをnで割った剰余系の数となって
いる。
このようにしてこの回路を繰り返し用いることにより(
1)式を繰り返して実行することができる。そして最終
段階に当たってのみ減算器6及びマルチプレクサ7を用
いて上記した補正を行ない、最終の剰余はレジスタ8に
与えられる。
1)式を繰り返して実行することができる。そして最終
段階に当たってのみ減算器6及びマルチプレクサ7を用
いて上記した補正を行ない、最終の剰余はレジスタ8に
与えられる。
以上のように本実施例によれば、左シフタ2の上位4ビ
ットt3.jg+ j++ jo+に対し、(4)式の
値tをnで割った。商をqとすると、この4ビツトをア
ドレスとしてメモリ3に積q’nを格納し、また減算器
4において左シフタ2の値がらメモリ3の出力を減じる
ようにしたことにより、メモリ3の容量は8ワード×5
15ビツト=4120ビツトとなり、上記従来例におけ
るメモリに必要な容量15ワード×512ピッl−=
7680ビツトと比べてほぼ半分とすることができる。
ットt3.jg+ j++ jo+に対し、(4)式の
値tをnで割った。商をqとすると、この4ビツトをア
ドレスとしてメモリ3に積q’nを格納し、また減算器
4において左シフタ2の値がらメモリ3の出力を減じる
ようにしたことにより、メモリ3の容量は8ワード×5
15ビツト=4120ビツトとなり、上記従来例におけ
るメモリに必要な容量15ワード×512ピッl−=
7680ビツトと比べてほぼ半分とすることができる。
以下にメモリ二3の内容を明らかにするために適当なビ
ット数を用いて本発明を説明する。第2図は被演算数a
及び法nをそれぞれ8ビツトとしたときの本発明の第2
の実施例におけるC=2の場合のく1)式を実行する剰
余演算装置のブロック図である。第2図においては各ブ
ロックのビット数を除いて、構成、動作とも第1図と全
(同一である。第3図は第2図における法レジスタ5.
レジスタ1.2ビット左シフタ2.メモリ3.減算器4
のビットの対応関係を示すビット対応説明図である。本
実施例において左シフタ2の出力の11ビツトのうち上
位4ビツトを上位から順にtj。
ット数を用いて本発明を説明する。第2図は被演算数a
及び法nをそれぞれ8ビツトとしたときの本発明の第2
の実施例におけるC=2の場合のく1)式を実行する剰
余演算装置のブロック図である。第2図においては各ブ
ロックのビット数を除いて、構成、動作とも第1図と全
(同一である。第3図は第2図における法レジスタ5.
レジスタ1.2ビット左シフタ2.メモリ3.減算器4
のビットの対応関係を示すビット対応説明図である。本
実施例において左シフタ2の出力の11ビツトのうち上
位4ビツトを上位から順にtj。
j2+ jl+ jQ+とするとき、この4ビツト
をアドレスとしてメモリ3がアクセスされる。
をアドレスとしてメモリ3がアクセスされる。
t−t 3・26+t2・25+t+・2’+ to・
23・ ・ ・ ・ (14) に対して、tを法nで割った商をqとすると、メモリ3
には、ff1q−nが8ワード格納されている。
23・ ・ ・ ・ (14) に対して、tを法nで割った商をqとすると、メモリ3
には、ff1q−nが8ワード格納されている。
第4図は、第3図におけるアドレスt3r tZ+t+
、toに対して、(14)式で与えられる値tと、tを
法n (n=255とn=221とする)で割った商q
と、剰余r及び積q’nを示したメモリ3のアドレス−
データ対応図である。第4図を参照すると、従来例のよ
うに、アドレスt3.tp、、t+、toに対してtを
nで割った剰余rを持つ方式では、剰余rがアドレスに
対応して最大15通り必要であるのに対して1本実施例
のようにメモリ3がtをnで割った商qに対応してfa
q・nを持つ方式では商qが各アドレスに対して重複
することがあるため4ビツトのアドレスに対しても最大
8通りの値を持つだけでよい。このことは(13)式で
しめしたようにt=q−n+rが8nより小さいことに
起因するものである。
、toに対して、(14)式で与えられる値tと、tを
法n (n=255とn=221とする)で割った商q
と、剰余r及び積q’nを示したメモリ3のアドレス−
データ対応図である。第4図を参照すると、従来例のよ
うに、アドレスt3.tp、、t+、toに対してtを
nで割った剰余rを持つ方式では、剰余rがアドレスに
対応して最大15通り必要であるのに対して1本実施例
のようにメモリ3がtをnで割った商qに対応してfa
q・nを持つ方式では商qが各アドレスに対して重複
することがあるため4ビツトのアドレスに対しても最大
8通りの値を持つだけでよい。このことは(13)式で
しめしたようにt=q−n+rが8nより小さいことに
起因するものである。
以上のように本実施例では、従来例のように値tを法n
で割った剰余rを持つ方式では15ワード×8ビツト=
120ビツト必要だったメモリ容量を、8ワード×11
ビット−88ビツトとすることができる。
で割った剰余rを持つ方式では15ワード×8ビツト=
120ビツト必要だったメモリ容量を、8ワード×11
ビット−88ビツトとすることができる。
一般に、被演算数a及び法nをそれぞれにビットとした
とき本実施例における剰余演算装置においては、従来例
のようにtをnで割った剰余rを持つ方式では(2”2
−1 )ワード×にビット必要だったメモリ容量を 2
c + 1ワード×(k+3)ビットとすることがで
きる。
とき本実施例における剰余演算装置においては、従来例
のようにtをnで割った剰余rを持つ方式では(2”2
−1 )ワード×にビット必要だったメモリ容量を 2
c + 1ワード×(k+3)ビットとすることがで
きる。
なお、第1の実施例の説明において商qがOのときにメ
モリ3内にq−n−0・nとして515ビツトを格納す
るとしているが、このときには減算84において減算を
しないようにするなど例外処理をすることによりq−n
−O−nなる515ビツトを削減することができる。
モリ3内にq−n−0・nとして515ビツトを格納す
るとしているが、このときには減算84において減算を
しないようにするなど例外処理をすることによりq−n
−O−nなる515ビツトを削減することができる。
また、第1の実施例の説明において商qが1のときにも
メモリ3内にq−n=1・nとして515ビツトを使用
するとしているが、このときには減算器4においてメモ
リ3からの出力ではなく法レジスタ5の値を減じるよう
−にするなど例外処理をすることによりq−n=1・n
なる515ビツトを削減することができる。
メモリ3内にq−n=1・nとして515ビツトを使用
するとしているが、このときには減算器4においてメモ
リ3からの出力ではなく法レジスタ5の値を減じるよう
−にするなど例外処理をすることによりq−n=1・n
なる515ビツトを削減することができる。
また、第1の実施例の説明において商qが2゜4のとき
にもメモリ3内にq’nとして515ビツトを使用する
としているが、このときには減算器4においてメモリ3
からの出力ではな(法レジスタ5を1ビツトもしくは2
ビツト左にシフトした値を減じるようにするなど例外処
理をすることによりq−n=2・n、4・n、なる10
30ビツトを削減することができる。
にもメモリ3内にq’nとして515ビツトを使用する
としているが、このときには減算器4においてメモリ3
からの出力ではな(法レジスタ5を1ビツトもしくは2
ビツト左にシフトした値を減じるようにするなど例外処
理をすることによりq−n=2・n、4・n、なる10
30ビツトを削減することができる。
このような簡単な例外処理を行なうことにより、第1の
実施例のメモリ3の容量は4ワード×515ビット−2
060ビツトとすることができ、上記従来例で必要であ
ったメモリ容量7680ビツトに比べ半分以下と著しく
減少させることができる。
実施例のメモリ3の容量は4ワード×515ビット−2
060ビツトとすることができ、上記従来例で必要であ
ったメモリ容量7680ビツトに比べ半分以下と著しく
減少させることができる。
さらに、第1の実施例においてメモリ3は、アドレスt
3+ jz+ j++ toに対して値tをnで割った
商qに従ってq”nを保持するとしたが。
3+ jz+ j++ toに対して値tをnで割った
商qに従ってq”nを保持するとしたが。
そのかわりに商qのみを保持するようにし1乗算器を用
いてその出力qと法nを乗算し積q”nを求めるように
してもよい。
いてその出力qと法nを乗算し積q”nを求めるように
してもよい。
第5図は本発明の第3の実施例におけるC=2の場合の
(1)式を実行する剰余演算装置のブロック図である。
(1)式を実行する剰余演算装置のブロック図である。
第5図においてはブロック番号lから8の同一番号のブ
ロックについては構成。
ロックについては構成。
動作とも第1図と同一である。9は左シフタ2の出力の
上位4ビツトをアドレスとして(4)式で与えられる値
tを!1で割った商qを格納するメモリ、10はメモリ
9の出力である商q(3ビツト)と法レジスタ5の内容
n (512ビツト)を乗算して積q”nを出力する3
ビツト×512ビツトの乗算器である。このようにする
と、商qは高々7までの値なので9乗算器10(一般に
3ビツト×にビットを実行する乗算器)が必要となるも
のの、メモリ9のメモリ容量は8ワード×3ビツト=2
4ビツトを持つだけでよい。
上位4ビツトをアドレスとして(4)式で与えられる値
tを!1で割った商qを格納するメモリ、10はメモリ
9の出力である商q(3ビツト)と法レジスタ5の内容
n (512ビツト)を乗算して積q”nを出力する3
ビツト×512ビツトの乗算器である。このようにする
と、商qは高々7までの値なので9乗算器10(一般に
3ビツト×にビットを実行する乗算器)が必要となるも
のの、メモリ9のメモリ容量は8ワード×3ビツト=2
4ビツトを持つだけでよい。
このように1本第3の実施例においては極めて少ないメ
モリ容量で(1)式の剰余演算を実行することができる
。またこのようにメモリ容量が少なくなると、従来必要
であったような数にビットにわたる大量のデータを予め
外部から本装置内のメモリに転送・格納する手順を小さ
くすることができ、従って法となる整数nが変更された
場合にも柔軟に対応することができる。このような効果
は、メモリに、左シフタ2の出力の上位4ビツトをアド
レスとして(4)式で与えられる値tをnで割った剰余
rを格納するのではな(商qを格納する本発明の主旨に
起因するものである。
モリ容量で(1)式の剰余演算を実行することができる
。またこのようにメモリ容量が少なくなると、従来必要
であったような数にビットにわたる大量のデータを予め
外部から本装置内のメモリに転送・格納する手順を小さ
くすることができ、従って法となる整数nが変更された
場合にも柔軟に対応することができる。このような効果
は、メモリに、左シフタ2の出力の上位4ビツトをアド
レスとして(4)式で与えられる値tをnで割った剰余
rを格納するのではな(商qを格納する本発明の主旨に
起因するものである。
発明の詳細
な説明したように2本発明によれば。
a=xaa MOD n
を繰り返して行なう剰余演算を、高速に、かつ使用する
メモリを従来の半分程度もしくはそれ以上に著しく減す
ることのできる剰余演算装置を提供することができ、そ
の実用的効果はきわめて大きいものである。
メモリを従来の半分程度もしくはそれ以上に著しく減す
ることのできる剰余演算装置を提供することができ、そ
の実用的効果はきわめて大きいものである。
第1図は本発明における第1の実施例の剰余演算装置の
ブロック図、第2図は本発明における第2の実施例の剰
余演算装置のブロック図、第3図は第2の実施例の剰余
演算装置におけるレジスタのビット対応説明図、第4図
は第2の実施例の剰余演算装置のメモリ3におけるアド
レス−データ対応図、第5図は本発明における第3の実
施例の剰余演算装置のブロック図、第6図は従来の剰余
演算装置のブロック図である。 1・・・レジスタ、2・・・左シフタ、3,9・・・メ
モリ、4・・・減算器、10・・・乗算器。 代理人の氏名 弁理士 中尾敏男ほか1名第1rlA 第2図 第3図 レジスフ1 口========コ(h < 2
71第4図 tへ8・7(tr<1J71 第5図
ブロック図、第2図は本発明における第2の実施例の剰
余演算装置のブロック図、第3図は第2の実施例の剰余
演算装置におけるレジスタのビット対応説明図、第4図
は第2の実施例の剰余演算装置のメモリ3におけるアド
レス−データ対応図、第5図は本発明における第3の実
施例の剰余演算装置のブロック図、第6図は従来の剰余
演算装置のブロック図である。 1・・・レジスタ、2・・・左シフタ、3,9・・・メ
モリ、4・・・減算器、10・・・乗算器。 代理人の氏名 弁理士 中尾敏男ほか1名第1rlA 第2図 第3図 レジスフ1 口========コ(h < 2
71第4図 tへ8・7(tr<1J71 第5図
Claims (2)
- (1)与えられた被演算数aを定数x倍した値a・xを
予め定められた整数nで割った剰余を得る剰余演算装置
であって、上記被演算数aを保持するレジスタと、上記
レジスタの値を定数x倍する倍数器と、上記倍数器の出
力のうち上記整数nの桁数以上の桁の値を上記整数nで
割った商と上記整数nの積を格納するメモリと、上記倍
数器の出力から上記メモリに格納された積を減算する演
算器とを備えたことを特徴とする剰余演算装置。 - (2)与えられた被演算数aを定数x倍した値a・xを
予め定められた整数nで割った剰余を得る剰余演算装置
であって、上記被演算数aを保持するレジスタと、上記
レジスタの値を定数x倍する倍数器と、上記倍数器の出
力のうち上記整数nの桁数以上の桁の値を上記整数nで
割った商を格納するメモリと、上記メモリの内容と上記
整数nの積を与える乗算器と、上記倍数器の出力から上
記乗算器の出力を減算する演算器とを備えたことを特徴
とする剰余演算装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62064532A JPS63229531A (ja) | 1987-03-19 | 1987-03-19 | 剰余演算装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62064532A JPS63229531A (ja) | 1987-03-19 | 1987-03-19 | 剰余演算装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS63229531A true JPS63229531A (ja) | 1988-09-26 |
Family
ID=13260926
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62064532A Pending JPS63229531A (ja) | 1987-03-19 | 1987-03-19 | 剰余演算装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS63229531A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04352518A (ja) * | 1991-05-30 | 1992-12-07 | Matsushita Electric Ind Co Ltd | 演算装置 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6188334A (ja) * | 1984-10-06 | 1986-05-06 | Nec Corp | 除算回路 |
-
1987
- 1987-03-19 JP JP62064532A patent/JPS63229531A/ja active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6188334A (ja) * | 1984-10-06 | 1986-05-06 | Nec Corp | 除算回路 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04352518A (ja) * | 1991-05-30 | 1992-12-07 | Matsushita Electric Ind Co Ltd | 演算装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5448639A (en) | Digital signature device | |
| US5261001A (en) | Microcircuit for the implementation of RSA algorithm and ordinary and modular arithmetic, in particular exponentiation, with large operands | |
| JPH09274560A (ja) | べき乗剰余演算回路及びべき乗剰余演算システム及びべき乗剰余演算のための演算方法 | |
| CN113032848B (zh) | 一种数据处理方法和用于数据处理的芯片 | |
| US7296049B2 (en) | Fast multiplication circuits | |
| JPS63229531A (ja) | 剰余演算装置 | |
| JP2000503146A (ja) | 整数除算回路を有するモジュラ算術演算コプロセッサ | |
| JP3024156B2 (ja) | 可変長データメモリインタフェース回路 | |
| JPH0326114A (ja) | 乗算剰余演算器 | |
| JPH0778726B2 (ja) | 分割整数剰余計算機 | |
| Gamberger | Incompletely specified numbers in the residue number system-definition and applications | |
| US6275837B1 (en) | Method for the implementation of an elementary modular operation according to the Montgomery method | |
| JPH0784762A (ja) | 乗算回路 | |
| JPS5946076B2 (ja) | 磁気バブルメモリ装置 | |
| JPS63200233A (ja) | 高速並列乗除計算機 | |
| SU1767497A1 (ru) | Устройство дл делени | |
| JPH06103032A (ja) | 除算装置 | |
| JPS63200183A (ja) | 分割整数剰余計算機 | |
| JPH04362988A (ja) | 剰余乗算計算装置 | |
| JPH03250314A (ja) | 乗算剰余演算装置 | |
| JPH03142527A (ja) | 十進乗算器 | |
| JP2000098888A (ja) | 演算装置、演算方法及び記録媒体 | |
| JPS59141844A (ja) | インタ−リ−バ− | |
| JPH0211929B2 (ja) | ||
| GB2311632A (en) | Multiplication modulo N of two binary numbers and computation of exponential functions |