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

分割整数剰余計算機

Info

Publication number
JPS63200183A
JPS63200183A JP62033919A JP3391987A JPS63200183A JP S63200183 A JPS63200183 A JP S63200183A JP 62033919 A JP62033919 A JP 62033919A JP 3391987 A JP3391987 A JP 3391987A JP S63200183 A JPS63200183 A JP S63200183A
Authority
JP
Japan
Prior art keywords
remainder
digit
divisor
result
dividend
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
Application number
JP62033919A
Other languages
English (en)
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 JP62033919A priority Critical patent/JPS63200183A/ja
Publication of JPS63200183A publication Critical patent/JPS63200183A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔目次〕 概要 産業上の利用分野 従来の技術 (第4図、第5図) 発明が解決しようとする問題点 問題点を解決するための手段 (第1図)作用 (第2
図) 実施例 (第3図) 発明の効果 〔概要〕 本発明は分割整数剰余計算機において、剰余テーブルと
加算器および引算器を並列接続することにより、多数桁
の整数の剰余を高速演算処理により求めようとするもの
である。
〔産業上の利用分野〕
本発明は多数桁の整数値の剰余を分割処理して求める分
割整数剰余計算機に関し、特に数理形式の暗号処理分野
で利用されるべき乗剰余計算アルゴリズムを高速処理す
るために、剰余テーブルと加算器を使用して並列の剰余
計算を行い高速で正確な剰余計算を実現するようにした
分割整数剰余計算機に関する。
例えば商用通信の分野では、機密情報を通信する場合、
第三者による盗聴行為を防止するために、暗号処理技術
が多用されている。最近の商用暗号通信では、情報を暗
号化するための鍵と暗号化情報を復号化するための鍵が
異なる公開鍵暗号系が出現した。
この暗号系では、受信者(データを復号化する者)は予
め送信者(データを暗号化する者)へ公開鍵を送り、こ
の鍵によって送信情報を暗号化して送ってもらい、受信
者はこの情報を公開鍵と対になる秘密の復号鍵によって
復号化する。このためのアルゴリズムとしていわゆるR
3A法が公知である。
このR5A法は、Rm X”  (sod’ p )(
RはメツセージXの暗号文、αは暗号化の鍵、pは合成
数) なる乗剰余針算によって暗号処理が達成される。
即ち送信者がXCX−なる被除数をPなる除数で割った
剰余Rを暗号文とする。
これを受信者はX=Rd  (sod p )によって
メツセージXを復号化する(ここでdは暗号文Rの秘密
の暗号鍵である)。
かかる暗号系では解読を困難とするためには除数Pが1
0進150桁程度の大きな値の場合、剰余Rをいかに高
速で算出するかということが問題となる。
〔従来の技術〕
従来、この剰余Rを算出するため、第4図に示す如く、
被除数X(第4図では例えば1024bit)を分割す
べき桁ごとに設けられた剰余テーブルト1.1・2−・
・1・33:2・1.2・2−・−・2・33;128
・1.128・2−128・33が記入されるメモリ1
.2.3・−32と、加算器34.35・・・・・66
及び比較器67.6B、69−・99を設ける。
先ずレジスタ100に入力した被除数Xを各桁に分解し
、次いで分解した各桁の数値をアドレスとして上記剰余
テーブルト1〜128・32を索引し、更に索引した各
テーブル内容を上記加算器34.35・−・66により
すべて加算する。また比較器67.68−・−・99に
は所定の除数Pが付加されているので、この比較器67
、・・−・99により前記加算器34.35・−・66
における加算結果と比較する。
このとき該加算結果が除数Pよりも小であればその加算
結果を剰余Rとして出力する。しかし加算結果が該除数
Pより大であれば、その加算結果で再びメモリ1,2・
・−・33内の剰余テーブルを索引し、この加算結果が
除数Pより小になるまでこのような処理を行う、このよ
うにして高速で剰余計算を行うことができる。
なお、剰余テーブルを索引する前記剰余計算をわかり易
<10進で説明すれば、第5図の如くなる。いま例えば
被除数r25396501Jを除数r5039Jで除算
したときの剰余Rを求める場合、剰余テーブルとして1
000万桁のテーブルと、100万桁のテーブルと、1
0万桁のテーブルと、1万桁のテーブルと、干拓のテー
ブルを用意し、そのアドレス1〜9にそれぞれの数値を
除数r5039Jで除算したときの剰余を記入しておく
。例えば1000万桁のテーブルの2の領域には、20
00万つまり2X107を5039で除算したときの剰
余r0209Jを記入し、100万桁のテーブルの5の
領域には5X10Gを同じ<5039で除算したときの
剰余rl 312」を記入しておく。
そして前記被除数をそれぞれ1000万の桁〜1の桁に
分解し、1000万の桁「2」で1000万桁のテーブ
ルをアクセスしてro 209Jを得、以下同様に、1
00万桁のテープルー千桁のテーブルをアクセスしてr
l 312J、「2699」、r4337J、ro 9
81Jを得る。そしてこれらの数と、剰余テーブルをア
クセスしない下3桁の501を加算して10039を得
る。これは除数5039より大きいのでこれを更に各桁
に分解して前記剰余テーブルを索引して5000を得、
これが求める剰余となる。
なお、第4図において剰余テーブル(1・1)〜剰余テ
ーブル(1・32)は、最上位桁をo。
01とし残り下位をすべて0とするデータから、最上位
桁を1111とし下位桁すべて0とする2進データまで
の値(1024ビツト)を所定の除数(1・512ビツ
ト)で割ったときの剰余が横一列に書き込んであり、(
2・1)〜(2・32)から(128・1)〜(128
・32)についても同様に各桁の剰余が書き込まれてお
り、上位512ビツトのすべての剰余が索引できるよう
になっているものである。
〔発明が解決しようとする問題点〕
ところで第4図に示す如き分割整数計算機では、再び剰
余テーブルト1〜128・32を引くかどうかを各加算
器34〜66の出力を比較器67〜99で除数Pと比較
するだけで決めているため、加算器34〜66の出力(
被除数X)の桁数が除数Pと同じであり、かつX>Pの
とき、下記の如く剰余計算が終了せず、剰余テーブルを
引き続けるという問題点を有していた。
これを10進の状態で説明すると、例えば被除数X−5
060で除数P−5039の場合、子桁のテーブルを索
引しても5000が出力され、また除数より桁数の小さ
い下3桁はそのままシフトダウンされ、これらが加算さ
れて再び5060となり、これが繰返されるのみであり
剰余計算が終了しないものとなる。
したがって本発明の目的は、このような問題点を改善し
た、被除数がいかなる場合でも剰余Rを求めることがで
きる分割整数剰余計算機を提供することである。
〔問題点を解決するための手段〕
前記目的を達成するため、本発明では、第1図に示す如
(、剰余テーブルト1〜128・32が設けられたメモ
リ1.2・−・32と加算器34.35−・65と、減
算器101.102−・−・132と、判定部140を
設ける。この判定部140は減算結果の正負を判定する
ものである。
なお剰余テーブルト1〜128・32及び加算器34.
35・−・65は前記第4図について説明したものと同
一である。
なお、第1図においてアドレス発生部141は各メモリ
1.2−・−32の剰余テーブルの横の列(1・1)〜
(1・32)、(2・1)〜(2・32)−・・・、(
128・1)〜(128・32)のいずれかを選択する
アドレスを発生するものであり、例えばアドレス発生部
141が剰余テーブルト1.1・2・−1・32を選択
するアドレスを出力するときセレクタ142は被除数X
の最上位4ビツト(この例ではE)を出力し、剰余テー
ブル2・12・2、・−・2・32を選択するアドレス
を出力するとき被除数の最上位の次の4ビツト(この例
ではO)を出力し、剰余テーブル128・1.128・
2・−・128・32を選択するアドレスを出力すると
き剰余テーブルをアクセスする桁の最下位の4ビツト(
この例ではF)を出力する。
〔作用〕
まず入力した被剰数Xを各桁に分解し、次いで分解した
各桁の数値をアドレスとしてその桁に対応した上記剰余
テーブルを索引する。そしてこの索引した各剰余テーブ
ルの内容を上記加算器34.35.36・・・−・65
により、シフトダウンした各桁の値とともにすべて加算
する。この加算結果を上記減算器101.102.10
3・−・−・132によりこれらに付与されている所定
の除数Pを減算する。
この減算結果が判定部140にて判定される。減算結果
が正であれば、この減算結果を再度各桁に分解し、前記
と同じ操作を行って剰余テーブルト32を索引し、各テ
ーブルの内容を再び加算し、この加算結果から再度除数
を減算する。これを減算結果が負になるまで繰返す、も
し減算が負であればその減算直前の加算結果を剰余Rと
して出力する。
これをわかり易く、10進数で説明すれば、第2図のよ
うになる0例えば被除数X−25396501を除数P
−5039で除算したときの剰余Rを求める場合、除数
の最上位と同じ桁(この場合は千の桁)までを各桁に分
解する。これにより子桁までは2X107.5X106
.3X105.9X10”、6X10”に分解される。
そして前記第5図と同様に107つまり1000万桁の
剰余テーブルを2で索引して209を得、10B桁の剰
余テーブルを5で索引して1312を得、105桁の剰
余テーブルを3で索引して2699を得、10”桁の剰
余テーブルを9で索引して4337を得、103桁の剰
余テーブルを6で索引して980を得、これらの各剰余
と、剰余テーブルをアクセスせずにシフトダウンした5
01を加算器で加算して剰余10039を得る。そして
減算器でこの剰余10039−5039の減算を行い、
その結果の5000の正負を判定部140で判定する。
この判定結果が正なので、その最上位桁の数値5により
103桁の剰余テーブルを索引して5000を得、シフ
トダウンした000を加算した5000より再び503
9を減算する。この結果は負になるので、この負の減算
のときの被除数5000を求める剰余Rとして出力する
ことになる。なお判定部140の出力は、図示省略した
、CPUのような制御部に送出される。
このようにして本発明によれば、減算器における減算結
果を用いて剰余テーブルを索引するため、剰余Pと同じ
桁でx>pとなる加算結果はX−P−X ’としてテー
ブル索引されることになるが、このような減算の繰返し
によりX′が負となり、必ず剰余を算出することができ
る。
〔実施例〕
本発明の一実施例を第3図により説明する。
図中、他国と同符号部分は同一部分を示す。
被除数Xは1024ビツトであり、除数Pは512ビツ
トとする。入力したデータである被除数Xを上位より1
6ビツト毎に分割して、レジスタREGI、REG2−
・・REG64に入力する。
メモリ1.2・−32は、第1図に示す如く、剰余テー
ブル(l・1〜128・1)、(1・2〜128・2)
・・・・・(1・32〜128・32)を格納するメモ
リである。これらのメモリ1.2・−・32は読出し、
書込み共に可能であり、各メモリ1.2−・32に格納
されている前記剰余テーブル(1・1〜128・1)、
(1・2〜128・2)・−・(1・32〜128・3
2)は、4ビツトがアドレスで16ビツトがデータのも
のである。
これらの剰余テーブル(1・1〜128・1)、(1・
2〜128・2)−・(1・32〜128・32)は予
めの準備しておくが、この場合、最上位桁分解に対する
テーブル内容は最上位桁を0001とし残り下位をすべ
てOとするデータから最、 上位相を1111とし下位
桁すべてOとする2進データまでの値(1024ビツト
)を所定の除数P(512ビツト)で割った剰余が剰余
テーブル(1・1.1・2.1・3・−・1・32)、
(2・1.2・2.2・3・−・2・32)・−・(1
2B・1.128・2.128・3・−・128・32
)にわたって第1図の状態で横一列に書込んであり、す
べて索引できるようになっている。
加算器34.35・−・−・65は索引結果の剰余テー
ブルの内容とレジスタREG33〜REG64のデータ
を加算するものである。レジスタREG33〜REG6
4に格納されている各桁数は被除数のD1G23〜Do
ビットのうち下位のD495〜D4δ0・−・DI5〜
Doまでのビットであり、除数Pよりも小さい数である
ため、剰余テーブルを索引することなくそのままシフト
ダウンされて直接加算器34.35・−・65へ入力さ
れる。
減算器101.102・−・132は上記加算器34.
35・−・65における加算結果と除数Pとの引算を行
うものである。
判定部140は前記引算結果が正か負かを判別してこれ
を制御部に出力し、正ならばこの引算の結果を再びレジ
スタREG32〜REG64に入力し、レジスタREG
32の桁については剰余テーブルを索引してその内容と
レジスタREG33〜REG64を加算器34〜65に
て加算し、この加算結果と除数Pとの引算を行わせる。
しかし負ならばそのとき加算器34〜65から出力され
たデータを剰余Rとして出力する。このとき判定部14
0は判定結果が負であることを制御部に出力し、制御部
は剰余Rの出力を行うことを報知する。
アドレス発生部141は各メモリ1.2−・・32に設
けられた128個の剰余テーブルを選択するためのアド
レスを出力するものであり、またセレクタ142はレジ
スタREGI〜REG32から、前記剰余テーブルの選
択アドレスに対応した被除数Xの桁を選択出力するもの
である。
第3図の動作を、わかり易く、第2図の10進数表示と
して、被除数X−25396501を除数P−5039
で割った剰余Rを求める例について説明する。
■ まず入力された上記被除数X−25396501を
レジスタREG1、RE G 2−RE G 64に格
納する。
■ この格納により被除数X=25396501を1の
位から子方の位までに桁分解する。
■ このようにして分解した各桁の数値をアドレスにし
て剰余テーブルト1〜128・32を参照して剰余を索
引する。このとき2X107から6X103まではこれ
により剰余が求められる。しかし500から1までの各
桁は除数Pの最上位の桁より小さいのでそのままシフト
ダウンする。
■ このようにして得られた各桁の剰余およびシフトダ
ウンした501を加算器34.35・−・65により加
算して10039を得る。これを減算器101.102
−・132により除数P−5039を引算して5ooo
を得る0判定部140はこの引算結果が正であることを
!!!識する。
■ この引算結果が正であることにより、この引算結果
の5000をレジスタREG32〜REG64に入力す
る。これによりこの引算結果を各桁に分解する。
■ このうち5X103は、上記の場合と同様に剰余テ
ーブルを索引するが、この結果5000が得られる。ま
た下位3桁の000は、これまた上記の場合と同様にシ
フトダウンされる。そしてこれら剰余テーブルの索引結
果とシフトダウンされたデータが加算器34.35−・
65により加算され、この結果の5000が減算器10
1.102−・132により除数P=5039と引算さ
れる。
■ この引算の結果は−39となり、判定部140はこ
れが負であることを判定し、このとき加算器34.35
−・65の出力データ5000を剰余Rとして出力させ
、また剰余Rの得られたことを報知する。
なお前記説明の被除数、除数はあくまでも一例にすぎず
またこれらのビット長もこれまた一例にすぎないもので
あり、本発明は勿論これらにのみ限定されるものではな
い。
〔発明の効果〕
本発明によれば被除数の分解した桁毎に剰余テーブルと
加算器と減算器を設け、減算器で除数Pを減算するよう
に処理するようにしたので、被除数Xの値により結果の
得られない場合がなくなり、しかも従来のものに比較し
て、例えば1024ビツトの被除数を512ビツトの除
数で剰余を求める回数が最大4回から3回になるなど、
剰余計算をより高速に実行することができる。
【図面の簡単な説明】
第1図は本発明の原理図、 第2図は本発明の動作説明図、 第3図は本発明の一実施例構成図、 第4図は従来例説明図、 第5図は剰余テーブル説明図である。 1.2.3〜32− メモリ

Claims (1)

  1. 【特許請求の範囲】 被除数を分解すべき桁毎に除数に対する剰余の記入され
    た剰余テーブルと、剰余テーブルより得られた剰余が入
    力される加算手段(34〜65)を具備した分割整数剰
    余計算機において、 減算手段(101〜132)と、 判定手段(140)を設け、 上記加算手段(34〜65)より得られる剰余に係る加
    算値から除数を減算し、その減算結果が正の場合に減算
    結果を再度桁分解して剰余テーブルへのアクセス処理を
    行いそのアクセス結果を減算するように処理したことを
    特徴とする分割整数剰余計算機。
JP62033919A 1987-02-17 1987-02-17 分割整数剰余計算機 Pending JPS63200183A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62033919A JPS63200183A (ja) 1987-02-17 1987-02-17 分割整数剰余計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62033919A JPS63200183A (ja) 1987-02-17 1987-02-17 分割整数剰余計算機

Publications (1)

Publication Number Publication Date
JPS63200183A true JPS63200183A (ja) 1988-08-18

Family

ID=12399925

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62033919A Pending JPS63200183A (ja) 1987-02-17 1987-02-17 分割整数剰余計算機

Country Status (1)

Country Link
JP (1) JPS63200183A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5499299A (en) * 1993-07-02 1996-03-12 Fujitsu Limited Modular arithmetic operation system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59173843A (ja) * 1983-03-23 1984-10-02 Hitachi Ltd 除算装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59173843A (ja) * 1983-03-23 1984-10-02 Hitachi Ltd 除算装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5499299A (en) * 1993-07-02 1996-03-12 Fujitsu Limited Modular arithmetic operation system

Similar Documents

Publication Publication Date Title
US5499299A (en) Modular arithmetic operation system
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
CN114124343A (zh) 保护隐私的风险评分信息查询方法、装置、系统及设备
US7024560B2 (en) Power-residue calculating unit using Montgomery algorithm
CN115333741A (zh) 数据处理方法、片上系统和计算设备
US7050579B1 (en) Cryptographic methods and apparatus using word-wise montgomery multiplication
JPH11109859A (ja) 擬似乱数発生方法および装置
KR100508092B1 (ko) 저전력 모듈로 곱셈을 수행하는 연산장치
JP2000010479A (ja) モンゴメリ・リダクション装置及び記録媒体
US7113593B2 (en) Recursive cryptoaccelerator and recursive VHDL design of logic circuits
EP3352411B1 (en) Method of generating cryptographic key pairs
WO2020152831A1 (ja) 情報処理装置、秘密計算方法及びプログラム
JPS63200183A (ja) 分割整数剰余計算機
JP2001066987A (ja) 代数曲線暗号における安全なパラメータの生成装置、生成方法、および記録媒体
JPH0778726B2 (ja) 分割整数剰余計算機
JP2948605B2 (ja) 暗号鍵共通の暗号通信用端末
CN116226874A (zh) 一种数据处理方法、解密终端、加密终端及存储介质
US7480380B2 (en) Method for efficient generation of modulo inverse for public key cryptosystems
JPH06282227A (ja) 公開鍵暗号化装置及び公開鍵復号装置
KR102348797B1 (ko) Rsa 암호화 시스템의 rsa 회로 모듈
CN117234457B (zh) 一种用于隐私计算的数据相减运算方法
JPH11163850A (ja) 暗号鍵の生成方式および生成装置および暗号鍵生成用記録媒体
JPS6329743B2 (ja)
JPS63200233A (ja) 高速並列乗除計算機