JPS6350883A - 分割整数剰余計算機 - Google Patents
分割整数剰余計算機Info
- Publication number
- JPS6350883A JPS6350883A JP61194055A JP19405586A JPS6350883A JP S6350883 A JPS6350883 A JP S6350883A JP 61194055 A JP61194055 A JP 61194055A JP 19405586 A JP19405586 A JP 19405586A JP S6350883 A JPS6350883 A JP S6350883A
- Authority
- JP
- Japan
- Prior art keywords
- remainder
- divisor
- digit
- dividend
- integer
- 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.)
- Granted
Links
- 238000005192 partition Methods 0.000 title 1
- 238000000354 decomposition reaction Methods 0.000 claims description 5
- 230000015654 memory Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 229920001817 Agar Polymers 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔1既 要〕
分割整数剰余計算機であって、剰余テーブルと加算器と
を並列接続することにより多数桁の整数の剰余を高速演
算処理により求めようとするものである。
を並列接続することにより多数桁の整数の剰余を高速演
算処理により求めようとするものである。
本発明は、多数桁の整数値の剰余を分割処理して求める
分割整数剰余計算機に関する。
分割整数剰余計算機に関する。
より具体的には、数理形式の暗号処理分野で利用される
。べき乗剰余計算アルゴリズムを高速処理するために、
剰余テーブルと加算器を使って並列の剰余計算を行い高
速の剰余計算を実現するようにした分割整数剰余計算機
に関する。
。べき乗剰余計算アルゴリズムを高速処理するために、
剰余テーブルと加算器を使って並列の剰余計算を行い高
速の剰余計算を実現するようにした分割整数剰余計算機
に関する。
即ち、商用通信の分野では、機密情報を通信する場合、
第三者による盗聴行為を防止するために、暗号処理技術
が多用されている。最近の商用暗号通信では、情報を暗
号化するための鍵と暗号化情報を復号化するための鍵が
異る公開鍵暗号系が出現した。
第三者による盗聴行為を防止するために、暗号処理技術
が多用されている。最近の商用暗号通信では、情報を暗
号化するための鍵と暗号化情報を復号化するための鍵が
異る公開鍵暗号系が出現した。
この暗号系では、受信者(データを復号化する者)は予
め、送信者(データを暗号化する者)へ公開鍵を送り、
この鍵によって送信情報を暗号化して送ってもらい、受
信者はこの情報を公開鍵と対になる秘密の復号鍵によっ
て復号化する。このためのアルゴリズムとしていわゆる
R3A法が公知である。このR3A法は、R= X
(mod p )(RはメツセージXの暗号文、αは暗
号化の鍵、pは合成数)なるべき乗剰余計算によって暗
号処理が達成される。即ち、送信者がX なる被除数を
Pなる除数で割った剰余Rを暗号文とする。これを受信
者はXミR’ (mod p )によってメツセージX
を復号化する(dは暗号文Rの秘密の暗号鍵)。
め、送信者(データを暗号化する者)へ公開鍵を送り、
この鍵によって送信情報を暗号化して送ってもらい、受
信者はこの情報を公開鍵と対になる秘密の復号鍵によっ
て復号化する。このためのアルゴリズムとしていわゆる
R3A法が公知である。このR3A法は、R= X
(mod p )(RはメツセージXの暗号文、αは暗
号化の鍵、pは合成数)なるべき乗剰余計算によって暗
号処理が達成される。即ち、送信者がX なる被除数を
Pなる除数で割った剰余Rを暗号文とする。これを受信
者はXミR’ (mod p )によってメツセージX
を復号化する(dは暗号文Rの秘密の暗号鍵)。
かかる暗号系では除数pが100桁程度の大きな値の場
合、剰余Rをいかに高速で算出するかが問題となる。
合、剰余Rをいかに高速で算出するかが問題となる。
従来の剰余計算では、被除数Xを除数Pと商との積で引
き算し、この結果が除数Pより小さくなればこれをXを
Pで割ったときの剰余Rとしている。また引き算結果が
除数Pより大きい場合には、商の値を増大させ、Pより
小さくなるように商を選ぶ。−例を示すと P 113−51X商= R(R= X mod p )
−−−−−(11(1)式で剰余Rが51以下となる商
は2となり、従ってこのときのRは11となる。
き算し、この結果が除数Pより小さくなればこれをXを
Pで割ったときの剰余Rとしている。また引き算結果が
除数Pより大きい場合には、商の値を増大させ、Pより
小さくなるように商を選ぶ。−例を示すと P 113−51X商= R(R= X mod p )
−−−−−(11(1)式で剰余Rが51以下となる商
は2となり、従ってこのときのRは11となる。
上記(11式によるアルゴリズムはX、Pが小さな値の
ときはRを求めることは簡単である。しかし、数百桁の
X、Pのときの剰余Rを求めることは数百桁の割り算器
を用いなければならず、実現することはむつかしい。こ
のため一般のデータ1IlIQの暗号化への適用が困難
であった。
ときはRを求めることは簡単である。しかし、数百桁の
X、Pのときの剰余Rを求めることは数百桁の割り算器
を用いなければならず、実現することはむつかしい。こ
のため一般のデータ1IlIQの暗号化への適用が困難
であった。
このような数百桁の割り算器を用いる代わりに割り算を
減算器で実現する方法があるが、Pを商の数の回数だけ
減算するため、商が数百桁の場合には、非常に莫大な処
理時間を要するという問題点がある。
減算器で実現する方法があるが、Pを商の数の回数だけ
減算するため、商が数百桁の場合には、非常に莫大な処
理時間を要するという問題点がある。
本発明の目的は、上記問題点を解決し多数桁の整数の剰
余を高速演算処理により求めることにある。
余を高速演算処理により求めることにある。
そのための手段は、第1図に示すように、被除数Xの分
解すべき桁ごとに、除数Pに対応した除余を格納した剰
余テーブル1.・・・を設け、先ず入力した被除数Xを
各桁に分解して、レジスタ1に格納する。次いで、分解
した各桁の数値をアドレスとして上記剰余テーブル2を
、索引し、更に牽引した各テーブル内容を加算器3によ
りすべて加算すると共にその加算結果を比較器4により
所定の除数Pと比較し、 該加算結果が該除数Pより大であれば再度桁分解をして
上記と同じ操作を行い、 該加算結果が該除数Pより小であればその加算結果を剰
余Rとして出力することを特徴とする分割整数剰余計算
機である。
解すべき桁ごとに、除数Pに対応した除余を格納した剰
余テーブル1.・・・を設け、先ず入力した被除数Xを
各桁に分解して、レジスタ1に格納する。次いで、分解
した各桁の数値をアドレスとして上記剰余テーブル2を
、索引し、更に牽引した各テーブル内容を加算器3によ
りすべて加算すると共にその加算結果を比較器4により
所定の除数Pと比較し、 該加算結果が該除数Pより大であれば再度桁分解をして
上記と同じ操作を行い、 該加算結果が該除数Pより小であればその加算結果を剰
余Rとして出力することを特徴とする分割整数剰余計算
機である。
上記のとおり、本発明によれば、被除数の分解した桁ご
とに剰余テーブルを設けた。
とに剰余テーブルを設けた。
従って、それぞれの加算結果が除数より大であれば再度
桁分解して同じ操作を行い、除数より小であればその加
算結果を剰余とすることができる。
桁分解して同じ操作を行い、除数より小であればその加
算結果を剰余とすることができる。
即ち、被除数Xを桁分解し、分解された各値を除数Pで
割ったときの剰余の総和がXをPで割ったときの剰余に
等しいことに着眼したものであり、この算法を利用すれ
ば、桁分解処理から剰余和の計算まで完全に並列処理が
可能となる。
割ったときの剰余の総和がXをPで割ったときの剰余に
等しいことに着眼したものであり、この算法を利用すれ
ば、桁分解処理から剰余和の計算まで完全に並列処理が
可能となる。
このため、被除数、除数共に桁数が多くなったとしても
、従来より高速な剰余演算処理が実現できるようになっ
た。
、従来より高速な剰余演算処理が実現できるようになっ
た。
以下、本発明の実施例を図面を参照しつつ詳細に説明す
る。
る。
まず、第2図により本発明の動作原理を説明する。
第2図は被除数X =25391501 (l O進数
)を除数P =5039 (10進数)で割った時の剰
余Rを求める場合を示している。
)を除数P =5039 (10進数)で割った時の剰
余Rを求める場合を示している。
先ず被除数X(■)を、−の位から干天の位までに桁分
解する(■)。
解する(■)。
各桁対応に剰余テーブルが設けられている。この場合の
剰余テーブルは除数5039に対して9通りの剰余が格
納されている。即ち剰余テーブルaには、1,2.3・
・・9千万のそれぞれを5039で割った時の剰余、剰
余テーブルbには1.2.3・・・9百万のそれぞれを
5039で割った時の剰余、剰余テーブルCには1.
2. 3・・・9+万を5039で割った時の剰余、剰
余テーブルdには1.2.3・・・9万を5039で割
った時の剰余が格納されている。
剰余テーブルは除数5039に対して9通りの剰余が格
納されている。即ち剰余テーブルaには、1,2.3・
・・9千万のそれぞれを5039で割った時の剰余、剰
余テーブルbには1.2.3・・・9百万のそれぞれを
5039で割った時の剰余、剰余テーブルCには1.
2. 3・・・9+万を5039で割った時の剰余、剰
余テーブルdには1.2.3・・・9万を5039で割
った時の剰余が格納されている。
従ってこの分解した各桁の数値をアドレスにして剰余テ
ーブルを参照することにより剰余を索引することができ
る(■”) 、 20000000から9000までは
、これにより剰余209.1312.2699.433
7が得られる。1000から1までの各桁は除数P (
=5039)より小であるのでそのままシフトダウンす
る。
ーブルを参照することにより剰余を索引することができ
る(■”) 、 20000000から9000までは
、これにより剰余209.1312.2699.433
7が得られる。1000から1までの各桁は除数P (
=5039)より小であるのでそのままシフトダウンす
る。
これらを加算器によりして10058を得るが(■)、
比較器により比較した結果は除数5039よりも大であ
るので、再び初めと同じ操作を行う(■、■)。
比較器により比較した結果は除数5039よりも大であ
るので、再び初めと同じ操作を行う(■、■)。
2回目の剰余の加算結果は5019となり、除数503
9より小さい(■)、従って5019が答となり、求め
る剰余Rである。
9より小さい(■)、従って5019が答となり、求め
る剰余Rである。
以上の原理に基づいて構成された分割剰余計算機の一実
施例を第1図に示す。第2図の説明においては、説明の
簡略のため、10進数で説明したが、第1図は被除数X
をnビットの2進データ、除数Pをmビットの2進デー
タとした場合の構成図である。被除数Xはi個のn、ピ
ントレジスタR3〜R3にn1桁ずつ順列を保存しつつ
つまり、R,には1〜n + + R、−+にはn H
+i 〜2 n ++ ”’R+にはn−nl”’nビ
ット目のデータが格納される。各レジスタR1〜R4に
格納されたデータをアドレスとして、それぞれ対応する
剰余テーブル21.22.・・・21を索引し、除数P
で割った剰余をそれぞれ読出す。この場合、各剰余テー
ブルには、27通りの剰余が格納されていることは、第
2図で説明した通りである。
施例を第1図に示す。第2図の説明においては、説明の
簡略のため、10進数で説明したが、第1図は被除数X
をnビットの2進データ、除数Pをmビットの2進デー
タとした場合の構成図である。被除数Xはi個のn、ピ
ントレジスタR3〜R3にn1桁ずつ順列を保存しつつ
つまり、R,には1〜n + + R、−+にはn H
+i 〜2 n ++ ”’R+にはn−nl”’nビ
ット目のデータが格納される。各レジスタR1〜R4に
格納されたデータをアドレスとして、それぞれ対応する
剰余テーブル21.22.・・・21を索引し、除数P
で割った剰余をそれぞれ読出す。この場合、各剰余テー
ブルには、27通りの剰余が格納されていることは、第
2図で説明した通りである。
ここで各剰余テーブル21.22.・・・21から読出
されるデータはそれぞれ少なくともmビット、即ち除数
Pのピント数以下である。そして、各剰余テーブルから
読出されたデータは、加算器3により加算される。加算
されたデータは、比較器4において、除数Pと大小比較
され、加算されたデータがPより大きい場合は、再びレ
ジスタR,〜R8に格納され、同様の処理を行う、加算
器3の出力が除数Pより小さくなったとき、この値を剰
余Rとして出力する。
されるデータはそれぞれ少なくともmビット、即ち除数
Pのピント数以下である。そして、各剰余テーブルから
読出されたデータは、加算器3により加算される。加算
されたデータは、比較器4において、除数Pと大小比較
され、加算されたデータがPより大きい場合は、再びレ
ジスタR,〜R8に格納され、同様の処理を行う、加算
器3の出力が除数Pより小さくなったとき、この値を剰
余Rとして出力する。
第3図は、剰余テーブル2の具体的構成をさらに詳細に
説明するための図である。同図において、第1図と同一
部分は、同一番号を付しである。
説明するための図である。同図において、第1図と同一
部分は、同一番号を付しである。
被除数Xを1024ビツトのデータとし、除数Pを50
0ビツトのデータとする。なおレジスタ1の各ま′す目
は4ビツトのデータ(16通表示)を表わしている。こ
の場合、下496ビツトは必然的に除数Pより小さくな
るため、剰余テーブルを参照せず、そのまま加算器3に
入力する。
0ビツトのデータとする。なおレジスタ1の各ま′す目
は4ビツトのデータ(16通表示)を表わしている。こ
の場合、下496ビツトは必然的に除数Pより小さくな
るため、剰余テーブルを参照せず、そのまま加算器3に
入力する。
剰余テーブル2は、32x132個の16ビツトメモリ
で構成されている。卯ち、最上位4ビツト(E)をアド
レスとしてメモリ (1,1)(1,2)・・・(1,
33)をアクセスする。
で構成されている。卯ち、最上位4ビツト(E)をアド
レスとしてメモリ (1,1)(1,2)・・・(1,
33)をアクセスする。
これらのメモリには下位1020ビツトが0で、上位4
ビツトが0001〜1111の15通りの2進データに
対し、除数Pにより剰余がそれぞれ横一列に格納されて
おり、第3図のメモリ (1,1)(1,2)・・・(
1,3)においては、1110.0・・・0(1024
ビツト)をPで割った際の剰余を読出している。従って
読み出された剰余は16 X 32 =512ビットデ
ータとなる。
ビツトが0001〜1111の15通りの2進データに
対し、除数Pにより剰余がそれぞれ横一列に格納されて
おり、第3図のメモリ (1,1)(1,2)・・・(
1,3)においては、1110.0・・・0(1024
ビツト)をPで割った際の剰余を読出している。従って
読み出された剰余は16 X 32 =512ビットデ
ータとなる。
メモリ(2,l)・・・(2,32)・・・(132,
1)・・・(132,32)についても同様である。
1)・・・(132,32)についても同様である。
同一列のメモリから読出されたデータは、パラレルに列
対窓の加算器301・・・332に、下位496ビツト
とともに人力され加算される。この場合、下位496ビ
ントのデータは下桁がら16ビソトブフ332、331
.・・・301の加算器に入力される。各加算器の桁上
げ出力CYは、シフトされて猜の加算器に入力される。
対窓の加算器301・・・332に、下位496ビツト
とともに人力され加算される。この場合、下位496ビ
ントのデータは下桁がら16ビソトブフ332、331
.・・・301の加算器に入力される。各加算器の桁上
げ出力CYは、シフトされて猜の加算器に入力される。
そして、各加算器301・・・332の出力データは、
対応する比較器401.402.・・・432に入力さ
れ、それぞれ除数Pと大小比較される。比較結果に基づ
き、剰余Rとして出力するか又は、再び剰余テーブルを
索引する同様の処理を除数Pより小さい値が得られるま
で繰り返す。
対応する比較器401.402.・・・432に入力さ
れ、それぞれ除数Pと大小比較される。比較結果に基づ
き、剰余Rとして出力するか又は、再び剰余テーブルを
索引する同様の処理を除数Pより小さい値が得られるま
で繰り返す。
上記のとおり、本発明によれば、被除数の分解した桁ご
とに剰余テーブルと加算器と比較器を設けた。
とに剰余テーブルと加算器と比較器を設けた。
従って、それぞれの加算結果が除数より大であれば再度
桁分解して同じ操作を行い、除数より小であればその加
算結果を剰余とすることができる。
桁分解して同じ操作を行い、除数より小であればその加
算結果を剰余とすることができる。
このため、被除数、除数共に桁数が多くなったとしても
、従来より高速な剰余演算処理が実現できるようになっ
た。
、従来より高速な剰余演算処理が実現できるようになっ
た。
第1図は本発明の原理ブロック図、第2図は本発明の動
作原理を示す図、第3図は剰余テーブルの詳細図である
。 1・−レジスタ、 2−・剰余テーブル、3−加
算器、 4−・比較器、 5−セレクタ、 X・−・被除数、P −除数、
R−・剰余。
作原理を示す図、第3図は剰余テーブルの詳細図である
。 1・−レジスタ、 2−・剰余テーブル、3−加
算器、 4−・比較器、 5−セレクタ、 X・−・被除数、P −除数、
R−・剰余。
Claims (1)
- 【特許請求の範囲】 被除数の分解すべき桁ごとに、所定の除数に対応した
剰余テーブルを設け、 先ず入力した被除数を各桁に分解し、 次いで、分解した各桁の数値をアドレスとして上記剰余
テーブルを索引し、 更に索引した各テーブル内容を上記加算器によりすべて
加算すると共にその加算結果を上記比較器により所定の
除数と比較し、 該加算結果が該除数より大であれば再度桁分解をして上
記と同じ操作を行い、 該加算結果が該除数より小であればその加算結果を剰余
として出力することを特徴とする分割整数剰余計算機。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61194055A JPH0778726B2 (ja) | 1986-08-21 | 1986-08-21 | 分割整数剰余計算機 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61194055A JPH0778726B2 (ja) | 1986-08-21 | 1986-08-21 | 分割整数剰余計算機 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6350883A true JPS6350883A (ja) | 1988-03-03 |
JPH0778726B2 JPH0778726B2 (ja) | 1995-08-23 |
Family
ID=16318195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61194055A Expired - Lifetime JPH0778726B2 (ja) | 1986-08-21 | 1986-08-21 | 分割整数剰余計算機 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0778726B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07200262A (ja) * | 1993-12-06 | 1995-08-04 | Korea Telecommun | 事前計算テーブルを利用したモジューロリダクション方法 |
US5499299A (en) * | 1993-07-02 | 1996-03-12 | Fujitsu Limited | Modular arithmetic operation system |
US6193912B1 (en) | 1998-03-03 | 2001-02-27 | Gentex Corporation | Near infrared-absorbing electrochromic compounds and devices comprising same |
-
1986
- 1986-08-21 JP JP61194055A patent/JPH0778726B2/ja not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5499299A (en) * | 1993-07-02 | 1996-03-12 | Fujitsu Limited | Modular arithmetic operation system |
JPH07200262A (ja) * | 1993-12-06 | 1995-08-04 | Korea Telecommun | 事前計算テーブルを利用したモジューロリダクション方法 |
JP3432315B2 (ja) * | 1993-12-06 | 2003-08-04 | 韓國電氣通信公社 | 事前計算テーブルを利用したモジューロリダクション装置 |
US6193912B1 (en) | 1998-03-03 | 2001-02-27 | Gentex Corporation | Near infrared-absorbing electrochromic compounds and devices comprising same |
Also Published As
Publication number | Publication date |
---|---|
JPH0778726B2 (ja) | 1995-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100392688C (zh) | 数据变换装置和数据变换方法 | |
US5499299A (en) | Modular arithmetic operation system | |
US7801307B2 (en) | Method of symmetric key data encryption | |
CN109039640B (zh) | 一种基于rsa密码算法的加解密硬件系统及方法 | |
CN110912674B (zh) | 图像加密方法、装置、电子设备及可读存储介质 | |
KR20060134992A (ko) | 정수를 가산하는 컴퓨터 시스템 | |
CN107154851A (zh) | 一种数据加密和解密的方法及装置 | |
US10326596B2 (en) | Techniques for secure authentication | |
JPH11109859A (ja) | 擬似乱数発生方法および装置 | |
JPS6350883A (ja) | 分割整数剰余計算機 | |
Wardlaw | The RSA public key cryptosystem | |
US20030016822A1 (en) | Recursive cryptoaccelerator and recursive VHDL design of logic circuits | |
Babenko et al. | Euclidean division method for the homomorphic scheme ckks | |
JP2002358010A (ja) | べき乗剰余演算器 | |
RU2188513C2 (ru) | Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки | |
JP3389210B2 (ja) | 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体 | |
CN112910626A (zh) | 一种基于幂次运算的数据加密及解密方法 | |
EP1043863B1 (en) | Method for the cryptographic conversion of L-bit input blocks of digital data info into L-bit output blocks | |
KR102522393B1 (ko) | 동형암호로 암호화된 데이터 연산 방법 | |
JPH1152850A (ja) | 暗号変換方法および装置 | |
JP3242231B2 (ja) | 暗号化装置 | |
JPS63200183A (ja) | 分割整数剰余計算機 | |
US20240187209A1 (en) | Data encryption and decryption using screens and lfsr-generated logic blocks | |
RU2140709C1 (ru) | Способ криптографического преобразования блоков цифровых данных | |
JP3024549B2 (ja) | 循環演算にもとづく暗号文の復号化方法および装置 |