JPH0778726B2 - 分割整数剰余計算機 - Google Patents

分割整数剰余計算機

Info

Publication number
JPH0778726B2
JPH0778726B2 JP61194055A JP19405586A JPH0778726B2 JP H0778726 B2 JPH0778726 B2 JP H0778726B2 JP 61194055 A JP61194055 A JP 61194055A JP 19405586 A JP19405586 A JP 19405586A JP H0778726 B2 JPH0778726 B2 JP H0778726B2
Authority
JP
Japan
Prior art keywords
remainder
divisor
digit
dividend
divided
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 - Lifetime
Application number
JP61194055A
Other languages
English (en)
Other versions
JPS6350883A (ja
Inventor
良太 秋山
直哉 鳥居
充宏 東
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP61194055A priority Critical patent/JPH0778726B2/ja
Publication of JPS6350883A publication Critical patent/JPS6350883A/ja
Publication of JPH0778726B2 publication Critical patent/JPH0778726B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔概 要〕 分割整数剰余計算機であって、剰余テーブルと加算器と
を並列接続することにより多数桁の整数の剰余を高速演
算処理により求めようとするものである。
〔産業上の利用分野〕
本発明は、多数桁の整数値の剰余を分割処理して求める
分割整数剰余計算機に関する。
より具体的には、整理形式の暗号処理分野で利用され
る,べき乗剰余計算アルゴリズムを高速処理するため
に、剰余テーブルと加算器を使って並列の剰余計算を行
い高速の剰余計算を実現するようにした分割整数剰余計
算機に関する。
即ち、商用通信の分野では、機密情報を通信する場合、
第三者による盗聴行為を防止するために、暗号処理技術
が多用されている。最近の商用暗号通信では、情報を暗
号化するための鍵と暗号化情報を復号化するための鍵が
異る公開鍵暗号系が出現した。
この暗号系では、受信者(データを復号化する者)は予
め、送信者(データを暗号化する者)へ公開鍵を送り、
この鍵によって送信情報を暗号化して送ってもらい、受
信者はこの情報を公開鍵と対になる秘密の復号鍵によっ
て復号化する。このためのアルゴリズムとしていわゆる
RSA法が公知である。このRSA法は、R≡Xα(modp)
(RはメッセージXの暗号文、αは暗号化の鍵、pは合
成数)なるべき乗剰余計算によって暗号処理が達成され
る。即ち、送信者がXαなる被除数をPなる除数で割っ
た剰余Rを暗号文とする。これを受信者はR≡Rd(mod
p)によってメッセージXを復号化する(dは暗号文R
の秘密の暗号鍵)。かかる暗号系では除数pが100桁程
度の大きな値の場合、剰余Rをいかに高速で算出するか
が問題となる。
〔従来の技術〕
従来の剰余計算では、被除数Xを除数Pと商との積で引
き算し、この結果が除数Pより小さくなればこれをXを
Pで割ったときの剰余Rとしている。また引き算結果が
除数Pより大きい場合には、商の値を増大させ、Pより
小さくなるように商を選ぶ。一例を示すと (1)式で剰余Rが51以下となる商は2となり、従って
このときのRは11となる。
〔発明が解決しようとする問題点〕
上記(1)式によるアルゴリズムはX,Pが小さな値のと
きはRを求めることは簡単である。しかし、数百桁のX,
Pのときの剰余Rを求めることは数百桁の割り算器を用
いなければならず、実現することはむづかしい。このた
め一案のデータ通信の暗号化への適用が困難であった。
このような数百桁の割り算器を用いる代わりに割り算を
減算器で実現する方法があるが、Pを商の数の回数だけ
減算するため、商が数百桁の場合には、以上に莫大な処
理時間を要するという問題点がある。
〔問題点を解決するための手段〕
本発明の目的は、上記問題点を解決し多数桁の整数の剰
余を高速演算処理により求めることにある。
そのための手段は、第1図に示すように、被除数Xの分
解すべき桁ごとに、除数Pに対応した除数を格納した剰
余テーブル1,…を設け、 先ず入力した被除数Xを各桁に分解して、レジスタ1に
格納する。次いで、分解した各桁の数値をアドレスとし
て上記剰余テーブル2を索引し、更に牽引した各テーブ
ル内容を加算器3によりすべて加算すると共にその加算
結果を比較器4により所定の除数Pと比較し、 該加算結果が該除数Pより大であれば再度桁分解をして
上記と同じ操作を行い、 該加算結果が該除数Pより小であればその加算結果を剰
余Rとして出力することを特徴とする分割整数剰余計算
機である。
〔作 用〕
上記のとおり、本発明によれば、被除数の分解した桁ご
とに剰余テーブルを設けた。
従って、それぞれの加算結果が除数より大であれば再度
桁分解して同じ操作を行い、除数より小であればその加
算結果を剰余することができる。
即ち、被除数Xを桁分解し、分解された各値を除数Pで
割ったときの剰余の総和がXをPで割ったときの剰余に
等しいことに着眼したものであり、この算法を利用すれ
ば、桁分解処理から剰余和の計算まで完全に並列処理が
可能となる。
このなめ、被除数、除数共に桁数が多くなったとして
も、従来より高速な剰余演算処理が実現できるようにな
った。
〔実施例〕
以下、本発明の実施例を図面を参照しつつ詳細に説明す
る。
まず、第2図により本発明の動作原理を説明する。
第2図は被除数X=25391501(10進数)を除数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で割った時
の剰余が格納されている。
従ってこの分解した各桁の数値をアドレスにして剰余テ
ーブルを参照することにより剰余を索引することができ
る()。20000000から9000までは、これにより剰余20
9,1312,2699,4337が得られる。1000から1までの各桁は
除数P(=5039)より小であるのでそのままシフトダウ
ンする。
これらを加算器により加算して、10058を得るが
()、比較器により比較した結果は除数5039よりも大
であるので、再び初めと同じ操作を行う(,)。2
回目の剰余の加算結果は5019となり、除数5039より小さ
い()、従って5019が答となり、求める剰余Rであ
る。
以上の原理に基づいて構成された分割剰余計算機の一実
施例を第1図に示す。第2図の説明においては、説明の
簡略のため、10進数で説明したが、第1図は被除数Xを
nビットの2進データ、除数Pをmビットの2進データ
とした場合の構成図である。被除数Xはi個のn1ビット
レジスタR1〜Riにn1桁ずつ順列を保存する。つまり、Ri
には1〜n1,Ri-1にはn1+i〜2n1,…R1にはn−n1〜nビ
ット目のデータが格納される。各レジスタR1〜Riに格納
されたデータをアドレスとして、それぞれ対応する剰余
テーブル21,22,…2iを索引し、除数Pで割った剰余をそ
れぞれ読出す。この場合、各剰余テーブルには、2n通り
の剰余が格納されていることは、第2図で説明した通り
である。
ここで各剰余テーブル21,22,…2iから読出されるデータ
はそれぞれ少なくともmビット、即ち除数Pのビット数
以下である。そして、各剰余テーブルから読出されたデ
ータは、加算器3により加算される。加算されたデータ
は、比較器4において、除数Pと大小比較され、加算さ
れたデータがPより大きい場合は、再びレジスタR1〜Ri
に格納され、同様の処理を行う。加算器3の出力が除数
Pより小さくなったとき、この値を剰余Rとして出力す
る。
第3図は、剰余テーブル2の具体的構成をさらに詳細に
説明するための図である。同図において、第1図と同一
部分は、同一番号を付してある。
被除数Xを1024ビットのデータとし、除数Pを500ビッ
トのデータとする。なおレジスタ1の各ます目は4ビッ
トのデータ(16進表示)を表わしている。この場合、下
496ビットは必然的に除数Pより小さくなるため、剰余
テーブルを参照せず、そのまま加算器3に入力する。
剰余テーブル2は、32×132個の16ビットメモリで構成
されている。即ち、最上位4ビット(E)をアドレスと
してメモリ(1,1)(1,2)…(1,32)をアクセスする。
これらのメモリには下位1020ビットが0で、上位4ビッ
トが0001〜1111の15通りの2進データに対し、除数Pに
より剰余がそれぞれ横一列に格納されており、第3図の
メモリ(1,1)(1,2)…(1,32)においては、1110.0…
0(1024ビット)をPで割った際の剰余を読出してい
る。従って読み出された剰余は16×32=512ビットデー
タとなる。
メモリ(2,1)…(2,32)…(132,1)…(132,32)につ
いても同様である。
同一列のメモリから読出されたデータは、パラレルに列
対応の加算器301…332に、下位496ビットとともに入力
され加算される。この場合、下位496ビットのデータは
下桁から16ビットづつ332,331,…301の加算器に入力さ
れる。各加算器の桁上げ出力CYは、シフトされて隣の加
算器に入力される。
そして、各加算器301…332の出力データは、対応する比
較器401,402,…432に入力され、それぞれ除数Pと大小
比較される。比較結果に基づき、剰余Rとして出力する
か又は、再び剰余テーブルを索引する同様の処理を除数
Pより小さい値が得られるまで繰り返す。
〔発明の効果〕
上記のとおり、本発明によれば、被除数の分解した桁ご
とに剰余テーブルと加算器と比較器を設けた。
従って、それぞれの加算結果が除数より大であれば再度
桁分解して同じ操作を行い、除数より小であればその加
算結果を剰余とすることができる。
このため、被除数、除数共に桁数が多くなったとして
も、従来より高速な剰余演算処理が実現できるようにな
った。
【図面の簡単な説明】
第1図は本発明の原理ブロック図、第2図は本発明の動
作原理を示す図、第3図は剰余テーブルの詳細図であ
る。 1……レジスタ、2……剰余テーブル、 3……加算器、4……比較器、 5……セレクタ、X……被除数、 P……除数、R……剰余。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】被除数の分解すべき桁ごとに、所定の除数
    に対応した剰余テーブルを設け、 先ず入力した被除数を各桁に分解し、 次いで、分解した各桁の数値をアドレスとして上記剰余
    テーブルを索引し、 更に索引した各テーブル内容を上記加算器によりすべて
    加算すると共にその加算結果を上記比較器により所定の
    除数と比較し、 該加算結果が該除数より大であれば再度桁分解をして上
    記と同じ操作を行い、 該加算結果が該除数より小であればその加算結果を剰余
    として出力することを特徴とする分割整数剰余計算機。
JP61194055A 1986-08-21 1986-08-21 分割整数剰余計算機 Expired - Lifetime JPH0778726B2 (ja)

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 JPS6350883A (ja) 1988-03-03
JPH0778726B2 true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0720778A (ja) * 1993-07-02 1995-01-24 Fujitsu Ltd 剰余計算装置、テーブル作成装置および乗算剰余計算装置
KR950015177B1 (ko) * 1993-12-06 1995-12-23 한국전기통신공사 사전 계산 테이블을 이용한 모듈로 리덕션 방법
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
JPS6350883A (ja) 1988-03-03

Similar Documents

Publication Publication Date Title
US5499299A (en) Modular arithmetic operation system
US7079651B2 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
JP2001510912A (ja) 直接埋め込み方式による高速楕円曲線暗号化の方法と装置
RU2124814C1 (ru) Способ шифрования блоков цифровых данных
US20030016823A1 (en) Method and apparatus of using irrational numbers in random number generators for cryptography
JPH11109859A (ja) 擬似乱数発生方法および装置
KR100508092B1 (ko) 저전력 모듈로 곱셈을 수행하는 연산장치
JPH0778726B2 (ja) 分割整数剰余計算機
EP1366596B1 (en) Circuit and method for squaring long integers
Wardlaw The RSA public key cryptosystem
RU2188513C2 (ru) Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки
JP3591857B2 (ja) 擬似乱数生成方法及び装置、通信方法及び装置
CN1258051A (zh) 一种公开密钥加密体制和装置
JPS63200183A (ja) 分割整数剰余計算機
KR102522393B1 (ko) 동형암호로 암호화된 데이터 연산 방법
JPH1152850A (ja) 暗号変換方法および装置
JPH06282227A (ja) 公開鍵暗号化装置及び公開鍵復号装置
JP3242231B2 (ja) 暗号化装置
JP3013774B2 (ja) 循環演算にもとづく暗号化装置
JP3024549B2 (ja) 循環演算にもとづく暗号文の復号化方法および装置
RU2024209C1 (ru) Устройство шифрования двоичной информации "албер"
JPS63200233A (ja) 高速並列乗除計算機
JPH11161164A (ja) 公開鍵暗号方式と暗号化装置および復号装置
Siqing Implementation and Improvement Optimization of RSA Encryption Algorithm