JPS63282777A - Modulo computation processor chip - Google Patents
Modulo computation processor chipInfo
- Publication number
- JPS63282777A JPS63282777A JP5230088A JP5230088A JPS63282777A JP S63282777 A JPS63282777 A JP S63282777A JP 5230088 A JP5230088 A JP 5230088A JP 5230088 A JP5230088 A JP 5230088A JP S63282777 A JPS63282777 A JP S63282777A
- Authority
- JP
- Japan
- Prior art keywords
- integer
- bit
- radix
- carry
- register
- 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
- 230000004044 response Effects 0.000 claims description 34
- 238000004364 calculation method Methods 0.000 claims description 32
- 238000006243 chemical reaction Methods 0.000 claims description 25
- 230000000295 complement effect Effects 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 4
- 238000007792 addition Methods 0.000 description 16
- 239000000047 product Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000009466 transformation Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000000844 transformation Methods 0.000 description 4
- 238000000034 method Methods 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。(57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.
Description
【発明の詳細な説明】
[産業上の利用分野]
本発明は素数を法とする整数の剰余にてなるガロア体に
関する加算、乗算及び指数計算を行うためのモジュロ演
算プロセッサチップに関する。DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a modulo arithmetic processor chip for performing addition, multiplication, and exponent calculation regarding a Galois field consisting of remainders of integers modulo a prime number.
[従来の技術及び発明が解決しようとする問題点]送信
機によって送信される公知のメツセージの変換文から発
生される計算可能な機密保持暗号を送信する暗号システ
ムが、ヘルマンほかによる米国特許第4.200.77
0号、レベストほかによる米国特許第4.405.82
9号、ヘルマンほかによる米国特許4,218.582
号、ヘルマンほかによる米国特許第4,424.414
号を含むいくつかの特許において記述されている。[Prior Art and Problems to be Solved by the Invention] A cryptographic system for transmitting a computable security code generated from a transformed text of a known message transmitted by a transmitter is disclosed in U.S. Pat. .200.77
No. 0, U.S. Patent No. 4.405.82 to Levest et al.
No. 9, U.S. Pat. No. 4,218.582 to Hellman et al.
No. 4,424.414 to Hellman et al.
It has been described in several patents, including No.
これらの特許は、一般に、機密保持サイファ暗号鍵を用
いた広い概念について開示しており、この機密保持サイ
ファ暗号鍵は、1組のコンバータによって交換された変
換信号の変換文から発生される。1組のコンバータはそ
れぞれ秘密信号を処理し、上記秘密信号の最初の公開変
換文を他のコンバータと交換する。他のコンバータの秘
密信号の受信された公開変換文は、再び、機密保持サイ
ファ暗号鍵を発生するための受信する他のコンバータの
秘密信号に変換される。上記変換は、変換を容易に実行
できるが逆変換することが極めて難しい公知の演算を用
いている。コンバータの秘密信号又は後者の変換文の複
写文のうちいずれかを得た後、機密保持サイファ暗号鍵
を得るために、最初の公開変換文を盗聴装置によって逆
変換することは、実行不可能である。These patents generally disclose the broad concept of using a secure cipher encryption key, which is generated from a transformed text of transformed signals exchanged by a set of converters. Each converter in a set processes a secret signal and exchanges a first public translation of the secret signal with the other converters. The received public transformation of the other converter's private signal is again transformed into the receiving other converter's private signal to generate a security cipher encryption key. The above conversion uses known operations that are easy to perform but extremely difficult to reverse. After obtaining either the secret signal of the converter or a copy of the latter transformed text, it is not practicable to reverse transform the first public transformed text by an eavesdropping device in order to obtain the confidentiality cipher encryption key. be.
これらの特許は、それらの広い特許性のある概念を備え
るために必要な特別な手段又は装置を開示していない。These patents do not disclose the special means or devices necessary to implement their broad patentable concepts.
特に、これらの特許は、機密保持鍵を通過させるために
必要な変換を実行するプロセッサチップをどのように構
成するかということを開示していない。In particular, these patents do not disclose how to configure the processor chip to perform the necessary transformations to pass the security key.
さらに、これらの特許は、プロセッサチップ上で高速な
方法でこれらの変換をどのように備えるかということを
開示又は提案していない。Furthermore, these patents do not disclose or suggest how to implement these transformations in a fast manner on a processor chip.
本発明の目的は、素数を法とする整数の剰余にてなるガ
ロア体に関する加算、乗算、及び指数計算を行うための
プロセッサチップを提供することにある。An object of the present invention is to provide a processor chip for performing addition, multiplication, and exponent calculation regarding a Galois field consisting of remainders of integers modulo a prime number.
本発明のもう1つの目的は、高速な方法で指数計算を実
行するためのプロセッサチップを提供することにある。Another object of the invention is to provide a processor chip for performing exponent calculations in a fast manner.
[課題を解決するための手段及び作用]本発明によれば
、詳細後述されるように、nビットの第1の整数をnビ
ットの第2の整数に加算するためのプロセッサチップが
提供される。ここで、上記第1の整数と上記第2の整数
の加算結果のデータに関するnビットの第4の整数を法
とする剰余がnビットの第3の整数に等しく、上記プロ
セッサチップは、上記第1の整数を格納するための第1
のレジスタ手段と、上記第2の整数を格納するための第
2のレジスタ手段と、帰還数を発生し格納するための帰
還手段とを備える。上記帰還数は、上記第4の整数の2
の補数である。本発明は、上記第1のレジスタ手段と上
記第2のレジスタ手段に接続される演算手段を含む。上
記演算手段は、上記第1の整数を上記第2の整数に加算
し、これによって上記第3の整数を発生する。このとき
、上記第3の整数は、上記演算手段に接続されるアキュ
ムレータ手段に格納される。本発明はさらに、上記アキ
ュムレータ手段に接続され、上記第3の整数からオーバ
ーフローするオーバーフロー整数を格納するためのオー
バーフロー手段を含む。さらに、上記帰還数を上記第2
のレジスタにフェッチして上記演算手段を用いて上記帰
還数を上記アキュムレータ手段に格納された上記第3の
整数に加算するための手段が供給される。また、上記ア
キュムレータ手段に接続され上記第4の整数よりも大き
い上記第3の整数に応答して、上記第4の整数を法とす
る上記第3の整数の剰余に変換する手段が供給される。[Means and operations for solving the problem] According to the present invention, as will be described in detail later, a processor chip is provided for adding an n-bit first integer to an n-bit second integer. . Here, the remainder modulo the n-bit fourth integer regarding the data of the addition result of the first integer and the second integer is equal to the n-bit third integer, and the processor chip the first to store an integer of 1
, second register means for storing the second integer, and feedback means for generating and storing a feedback number. The number of feedbacks is 2 of the fourth integer.
is the complement of The present invention includes arithmetic means connected to the first register means and the second register means. The calculation means adds the first integer to the second integer, thereby generating the third integer. At this time, the third integer is stored in accumulator means connected to the arithmetic means. The invention further includes overflow means connected to said accumulator means for storing an overflow integer overflowing from said third integer. Furthermore, the above feedback number is
Means are provided for fetching the returned number into a register and using the arithmetic means to add the returned number to the third integer stored in the accumulator means. Also provided are means connected to the accumulator means for responsive to the third integer being greater than the fourth integer and converting the third integer into a remainder modulo the fourth integer. .
本発明の第2の概念は、nビットの第1の整数をnビッ
トの第2の整数で乗算するためのモジュロ演算プロセッ
サチップを含む。ここで、上記第1の整数と上記第2の
整数の加算結果のデータに関するnビットの第4の整数
を法とする剰余がnビットの第3の整数に等しい。乗算
のためのモジュロ演算プロセッサチップは、上記第1の
整数を格納するための第1のレジスタ手段と、上記第2
の整数を格納するための第2のレジスタ手段と、帰還数
を発生するための帰還手段とを含む。ここで、上記帰還
数は上記第4の整数の2の補数であり、上記第1のレジ
スタ手段と上記第2のレジスタ手段に接続され上記第1
のレジスタ手段から右側にけた移動された上記第1の整
数の最下位に応答して上記第2の整数を上記第3の整数
に加算するための演算手段を含む。上記演算手段に接続
され上記第3の整数を格納するためのアキュムレータ手
段が提供される。また、本発明は、上記アキュムレータ
手段に接続されオーバーフロービットを計数しオーバー
フロー整数として格納するためのオーバーフロー手段と
、上記オーバーフロー手段ト上記帰還手段と上記第1の
レジスタ手段と上記第2のレジスタ手段に接続され上記
第1の整数と上記第2の整数の乗算の終了に応答して上
記オーバーフロー整数を上記第1のレジスタ手段に転送
し上記帰還数を上記第2のレジスタ手段に転送し積を発
生するために上記帰還数を上記オーバーフロー整数で乗
算し上記積を上記アキュムレータレジスタ手段に格納さ
れた上記第3の整数に加算するための第2の一部変換手
段とを含む。上記アキュムレータ手段に接続され上記第
4の整数よりも大きい上記第3の整数に応答して上記第
4の整数を法とする上記第3の整数の剰余に変換するた
めの手段が供給される。また、本発明は、上記第2のレ
ジスタ手段に接続され上記第2のレジスタ手段から左側
にけた移動された上記第2の整数の最上位に応答して上
記帰還数を上記第2の整数に加算しこれによって上記第
2の整数の一部を変換するための第1の一部変換手段を
含む。A second concept of the invention includes a modulo arithmetic processor chip for multiplying an n-bit first integer by an n-bit second integer. Here, the remainder modulo the n-bit fourth integer regarding the data of the addition result of the first integer and the second integer is equal to the n-bit third integer. The modulo arithmetic processor chip for multiplication includes a first register means for storing the first integer and a second register means for storing the first integer.
and feedback means for generating a feedback number. Here, the feedback number is a two's complement of the fourth integer, and the feedback number is connected to the first register means and the second register means.
calculation means for adding the second integer to the third integer in response to the lowest digit of the first integer being shifted to the right from the register means. Accumulator means are provided connected to the arithmetic means for storing the third integer. The present invention also provides overflow means connected to the accumulator means for counting and storing overflow bits as an overflow integer, the overflow means, the feedback means, the first register means, and the second register means. and transmitting the overflow integer to the first register means and transmitting the feedback number to the second register means in response to completion of the multiplication of the first integer and the second integer to generate a product. and second partial conversion means for multiplying said feedback number by said overflow integer and adding said product to said third integer stored in said accumulator register means. Means are provided connected to said accumulator means for responsive to said third integer being greater than said fourth integer for converting said third integer to a remainder modulo said fourth integer. The present invention also provides a method for changing the feedback number to the second integer in response to the most significant part of the second integer being connected to the second register means and moved by a left digit from the second register means. and first partial conversion means for adding and thereby converting a portion of said second integer.
本発明の別の目的及び利点は以下に示され、その一部分
は以下の記述から明らかになるであろう。Other objects and advantages of the invention will be set forth below, or will be apparent in part from the description that follows.
もしくは、本発明の別の目的及び利点の一部分は本発明
の実際の使用かられかるかもしれない。Alternatively, other objects and advantages of the invention may be obtained in part from actual use of the invention.
[発明の効果]
以上説明したように本発明によれば、第1と第2の整数
を格納する2個のレジスタ手段と、帰還数を発生して格
納する帰還手段と、第1と第2の整数を加算又は乗算し
て第3の整数を発生する演算手段と、上記第3の整数を
格納するアキュムレータ手段と、オーバーフロー整数を
格納するオーバーフロー手段と、上記帰還数を上記第2
のレジスタにフェッチし上記帰還数を上記アキュムレー
タ手段の上記第3の整数に加算する手段と、第4の整数
pを法とする上記第3の整数の剰余に変換する手段とを
備えたので、素数に対する整数の剰余にてなるガロア体
に関する加算、乗算、及び指数計算を高速で行うための
プロセッサチップを実現できる。[Effects of the Invention] As explained above, according to the present invention, there are two register means for storing the first and second integers, a feedback means for generating and storing the feedback number, and the first and second register means for storing the first and second integers. an arithmetic means for adding or multiplying integers to generate a third integer; accumulator means for storing the third integer; overflow means for storing an overflow integer;
means for fetching the feedback number into the register of and adding the feedback number to the third integer of the accumulator means, and means for converting it into a remainder of the third integer modulo a fourth integer p, It is possible to realize a processor chip that can perform addition, multiplication, and exponent calculation regarding a Galois field consisting of remainders of integers to prime numbers at high speed.
[実施例]
以下、本発明の好ましい実施例について、添付した図面
を参照して詳細に説明する。[Embodiments] Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the attached drawings.
本発明の好ましい実施例は、Nビットの整数Xを格納す
るためのLビットのメモリを有するXレジスタと、Nビ
ットの整数Yを格納するためのLビットのメモリを有す
るXレジスタと、それぞれLビットを格納するための第
1と第2のAレジスタとを含む。本発明は°、Xレジス
タに格納されているNビットの整数Xを、それぞれLビ
ットを有する第1と第2の別の整数に変換し、第1と第
2の別の整数を上記第1と第2のレジスタAに格納する
手段を含む。また、本発明は、上記第1と第2のレジス
タに接続され制御信号を発生するための制御手段を含む
。A preferred embodiment of the invention provides an X register with L bits of memory for storing an N-bit integer It includes first and second A registers for storing bits. The present invention converts an N-bit integer X stored in an X register into first and second separate integers each having L bits, and converts the first and second separate integers into and means for storing in the second register A. The invention also includes control means connected to the first and second registers for generating control signals.
それぞれLビットを格納するための第1と第2のBレジ
スタと、それぞれLビットを格納するための第1と第2
のCレジスタは、全加算器に接続される。制御論理回路
はまた全加算器に接続され、上記全加算器は、制御論理
回路から出力される”1”のビットの制御信号に応答し
て、第1と第20Bレジスタに格納されたデータを左側
にけた移動させた後、第1と第2のCレジスタに格納さ
れているデータに加算する。上記全加算器は、”0”の
ビットの制御論理信号に応答して、第1と第2のBレジ
スタのデータを左側にけた移動させる。first and second B registers for storing L bits, respectively; and first and second B registers for storing L bits, respectively.
The C register of is connected to the full adder. The control logic circuit is also connected to a full adder, and the full adder inputs the data stored in the first and 20B registers in response to a "1" bit control signal output from the control logic circuit. After moving the digit to the left, it is added to the data stored in the first and second C registers. The full adder shifts the data in the first and second B registers to the left in response to a "0" bit control logic signal.
Nビットの帰還数を格納するためのLビットのメモリを
有する帰還レジスタが、Nビットの素数pから帰還数を
発生し、上記帰還数を上記帰還レジスタに格納するため
の手段とともに含まれる。モジ二ロ手段は、帰還レジス
タ及び第1と第2のCレジスタに接続され、素数pを法
とする上記第1と第2のCレジスタに格納されたデータ
ビットの剰余に変換し、上記第1と第2のCレジスタに
格納されたデータビットをLビットの整数に変換した後
、Lビットの整数をXレジスタに格納するための手段で
ある。A feedback register having L bits of memory for storing an N-bit feedback number is included along with means for generating a feedback number from an N-bit prime number p and storing said feedback number in said feedback register. modulus means are connected to the feedback register and the first and second C registers and convert into a remainder of the data bits stored in the first and second C registers modulo a prime number p; This is means for converting the data bits stored in the 1 and second C registers into L-bit integers and then storing the L-bit integers in the X register.
本発明のプロセッサチップは、素数pを法とする整数の
剰余にてなるガロア体GF (p)に関する加算、乗算
、及び指数計算を行う。大きな素数に対して、い(つか
のチップをともに、動作が等価な1個のより大きなチッ
プとして機能させるために、カスケード接続することが
できる。また、これらのチップを、合成数を法とする整
数の剰余にてなる環に関する指数計算を行うために用い
ることができる。ここで、この合成数の因数分解は、例
えばR3A公開鍵暗号方式のように、秘密が保持される
。以下の議論においては、ガロア体GF(p)について
焦点をあてる。ここで、pは素数である。The processor chip of the present invention performs addition, multiplication, and exponent calculation regarding the Galois field GF (p) consisting of the remainder of an integer modulo a prime number p. For large prime numbers, (several chips can be cascaded together to function as one larger chip with operational equivalents. They can also be connected modulo the composite number.) It can be used to perform index calculations on a ring consisting of remainders of integers. Here, the factorization of this composite number is kept secret, for example in R3A public key cryptography. In the following discussion, focuses on the Galois field GF(p), where p is a prime number.
上記素数pは、次式のように、2の基数表示を用いて表
される(通常は2進数表示である。)nビットの数であ
る。The prime number p is an n-bit number expressed using a base 2 representation (usually a binary representation) as shown in the following equation.
p=P[n−1+B2[n−3+P[n−2]2m−!
+・・・十P[1]2.+PC
0]ここで、+P[il) は2進数の記号である。p=P[n-1+B2[n-3+P[n-2]2m-!
+...10P[1]2. +PC 0] Here, +P[il) is a binary symbol.
また、次式のように、pに対する2の補数表示を用いる
と便利である。Furthermore, it is convenient to use two's complement representation for p as shown in the following equation.
p=2°−F[n−1]2°−’−F [n−2]2°
−1−・・・・F[ll2−F[Ol
ここで、(F[ill は2進数の記号である。p=2°-F[n-1]2°-'-F[n-2]2°
-1-...F[ll2-F[Ol Here, (F[ill is a binary symbol.
pはガロア体GF (p)におけるOに等価であるので
、次式を得る。Since p is equivalent to O in the Galois field GF (p), the following equation is obtained.
2n mod p=F[n−1]2m−3+F[n−
2+B2[n−”+・・・十F[1]2+F[Ol
・・・(1)従って、2mは、ビット (F[il)
を有する2の基数表示で表されたnビットの2進数に等
価である。この事実は、すべての整数をnビy)の表現
に変換させるのに広(用いられる。ここで、(F[il
) は”帰還ビット”と呼ばれる。2n mod p=F[n-1]2m-3+F[n-
2+B2[n-”+...10F[1]2+F[Ol
...(1) Therefore, 2m is bit (F[il)
is equivalent to an n-bit binary number expressed in base-2 representation with . This fact is widely used to convert all integers into their representation in nbyy, where (F[il
) are called "feedback bits".
次いで、ガロア体GF (p)の指数計算について説明
する。Xをガロア体GF (p)の元とすると、mビッ
トの整数Zは次式で表される。Next, the exponent calculation of the Galois field GF (p) will be explained. When X is an element of the Galois field GF (p), the m-bit integer Z is expressed by the following equation.
Z = Z [m −1]2n−3+ Z [m −2
]2−−”+・・・+ZEIコ2+Z[Ol
また、Xのような任意のガロア体GF (p)の元はま
た、次式によって表される。Z = Z [m -1]2n-3+ Z [m -2
]2--"+...+ZEIko2+Z[Ol Furthermore, an element of any Galois field GF (p) such as X is also expressed by the following equation.
X=X[n−1+B2[n−3+X[n−2+B2[n
−”、+・・・+X[1]2+X[0]ここで、tZc
i〕)及び毫X[iコ)は2進数の記号である。次いで
、次式の計算について説明する。X=X[n-1+B2[n-3+X[n-2+B2[n
−”, +...+X[1]2+X[0]Here, tZc
i]) and 毫X[iKO) are binary symbols. Next, calculation of the following equation will be explained.
Y=X”modp
ここで、Yはもちろんガロア体GF (p)の元である
。このプロセッサチップのための指数計算の基礎演算は
、次式によって得られる。Y=X'' modp Here, Y is of course an element of the Galois field GF (p). The basic operation of exponent calculation for this processor chip is obtained by the following equation.
xz:xZ[0]+22[1]+2nZ[21”2n−
’Zcm−1]=XZ[0](x2)Z[1](x2n
)Z[2]1、、(x2−−’) Z[m−,1]=
xZ[0] (xZ[1] (X2)Z[2]1、、(
X2np Z[m−1]) t= x’Z[o] (x
Z[1] (XZ[2]1、、 (x2n−3)Z[+
a−1]) !+ 1ここで、次式のように定義する。xz:xZ[0]+22[1]+2nZ[21”2n-
'Zcm-1]=XZ[0](x2)Z[1](x2n
) Z[2]1,, (x2--') Z[m-,1]=
xZ[0] (xZ[1] (X2)Z[2]1,,(
X2np Z[m-1]) t= x'Z[o] (x
Z[1] (XZ[2]1,, (x2n-3)Z[+
a-1])! + 1 Here, it is defined as in the following formula.
E 、 、:XZ[m−にコ(x2)Z[ll1−k
”ll1、、(X2n−3)Z[m−1]k=1. 2
.・・・2m
次いで、次式のように、指数計算のアルゴリズムの式を
おく。E , , :XZ[m-niko(x2)Z[ll1-k
"ll1,, (X2n-3)Z[m-1]k=1.2
.. ...2m Next, the formula for the index calculation algorithm is set as shown in the following formula.
E、 = Xz [m−t ]
E 4= xZ[m−k] E・、−1に=2.2、F
3、 ・・・2m
ここで、
XZ=E。E, = Xz [m-t] E 4 = xZ [m-k] E, -1 = 2.2, F
3, ...2m Here, XZ=E.
並びに、
Y=Emmodp
指数計算は、素数pを法とする剰余の一連の乗算を備え
る。任意の2個の整数A及びBに対して、AB sod
p=(A mod p)(B nod p)mod
p従って、素数pを法とする整数の剰余の多積を、必ず
しも、指数計算を形成するすべての積の演算が終了する
まで変換する必要がない。さらに、各ステージにおける
一部の変換を(1)式の関係を用いて実行することがで
きる。この一部の変換は、すべての整数をn個の2進数
の記号で表すことができる。and Y=Emmodp The index calculation comprises a series of multiplications of the remainder modulo the prime p. For any two integers A and B, AB sod
p = (A mod p) (B nod p) mod
p Therefore, it is not necessary to convert the multiproduct of integer remainders modulo the prime number p until all product operations forming the exponent calculation are completed. Furthermore, some transformations at each stage can be performed using the relationship in equation (1). This partial conversion allows all integers to be represented by n binary symbols.
乗算アルゴリズム
プロセッサチップの中心は、ガロア体GF (p)の乗
算演算である。ガロア体GF (p)に属する2個のn
ビットの整数A及びBについて考える。Multiplication Algorithm The heart of the processor chip is the Galois field GF (p) multiplication operation. Two n belonging to Galois field GF (p)
Consider bit integers A and B.
これらは、素数pよりも小さい任意の2個の整数である
。必要とされる次式の乗算演算について考える。These are any two integers smaller than the prime number p. Consider the required multiplication operation of the following equation.
C=AB mod p
A、B、及びCはそれぞれ、7乗数”、”被乗数”、及
び”積”と呼ばれる。C=AB mod p A, B, and C are called the 7 power, the multiplicand, and the product, respectively.
A、別の表示
上述したように、ガロア体GF (p)における元Aを
次式のように、n個の2進数の記号IA[i])によっ
て一義的に表すことができる。A. Another Representation As mentioned above, the element A in the Galois field GF (p) can be uniquely represented by n binary symbols IA[i]) as shown in the following equation.
A=A[n−1]2n−3+A[n−2]2n−”+・
・・+A[1]2+A[0]
例えば2個のnビットの整数が加算されたときのような
キャリーの伝搬を避けるために、次式の一義的でない別
の表現について考える。A=A[n-1]2n-3+A[n-2]2n-"+・
...+A[1]2+A[0] To avoid carry propagation, for example when two n-bit integers are added, consider another non-unique representation of the following equation.
A = A 、 + A t 2
=A1[n−1]2n−3+A1[n 2]2n−”
十・・・+A1[1]2+A1[1]
2+P[0]+A2[n−3]2n−3+・・・+B2
[1]2+B2[n132°+A2[n−3]2n−3
+・・・+B2[1]2+B2[n 2.]2n−3
+・・・+A1[1]2n+A1[1]2+P[0]2
ここで、 IA1[i] l及び{A、[+])は2進
数の記号である。この表現においては、同一の整数を表
すnビットの多(の組が存在する。A。A = A, + A t 2 = A1[n-1]2n-3+A1[n2]2n-"
10...+A1[1]2+A1[1] 2+P[0]+A2[n-3]2n-3+...+B2
[1]2+B2[n132°+A2[n-3]2n-3
+...+B2[1]2+B2[n 2. ]2n-3
+...+A1[1]2n+A1[1]2+P[0]2
Here, IA1[i] l and {A, [+]) are binary symbols. In this representation, there are many sets of n bits representing the same integer.A.
及びAtのi番目の成分A1[iコ及びA2[n−3]
2n−3+・・・+B2[1]2+B2[j]は、次式
のi番目の整数成分を定義する。and the i-th component A1[i and A2[n-3] of At.
2n-3+...+B2[1]2+B2[j] defines the i-th integer component of the following equation.
A [i] −A1[i] +A1[i] 2このi番
目の整数成分は、0. 1. 2.又は3の値を有する
2ビツトの整数である。B及びCは同一の表現で表され
る。ここで、Bは次式で表される。A [i] −A1[i] +A1[i] 2This i-th integer component is 0. 1. 2. or a 2-bit integer with a value of 3. B and C are represented by the same expression. Here, B is expressed by the following formula.
13 = B I+ B t 2
=B1[n 1]2n−3+B1[n 2]2n−
”+・・・十B 1[112+ B 1[1]2+P[
0]+B2[n−3]2n−3+・・・+B2[1]2
+B2[n 1]2°+B2[n−3]2n−3+・
・・+B2[1]2+B2[n 2]2n−3+・・
・十B1[1]2n+B1[0] 2B1[i]及びB
1[iコで与えられるB、及びBtのi番目の成分は、
次式のように、Bのi番目の整数成分を形成する。13 = B I+ B t 2 = B1[n 1] 2n-3+B1[n 2] 2n-
”+...10 B 1[112+ B 1[1]2+P[
0]+B2[n-3]2n-3+...+B2[1]2
+B2[n 1]2°+B2[n-3]2n-3+・
・・+B2[1]2+B2[n 2]2n-3+・・
・10B1[1]2n+B1[0] 2B1[i] and B
The i-th component of B and Bt given by 1[i is
Form the i-th integer component of B as shown in the following equation.
B[iコ =B+ [i] +Bt [i] 2この
Bのi番目の整数成分はまた3よりも小さいか又は等し
い値を有する2ビツトの整数である。B[i = B+ [i] +Bt [i] 2 The i-th integer component of B is also a 2-bit integer having a value less than or equal to 3.
この一義的でない表現において、整数A、B、及びCは
n個の2ビツトの整数成分で表される。In this unambiguous representation, the integers A, B, and C are represented by n 2-bit integer components.
A、B、及びCに対する上記別の表現は一義的でないた
め、実行することが容易である表現を選択するためのい
くらかの自由度がある。乗数A1被乗数B1及び積Cの
ための2個のnビットのレジスタがあるという仮定した
特定の形式について、以下に述べる。Since the above alternative representations for A, B, and C are not unambiguous, there is some freedom to choose the representation that is easy to implement. The specific format is described below assuming there are two n-bit registers for the multiplier A1, the multiplicand B1, and the product C.
89乗数
”けた移動されて加算される”乗数は、2個のnビット
のレジスタにおいて格納される”乗数”A = A I
+ A t 2を有し、゛該乗数Aは、右側にけた移動
された後(より次数の高いビットは左側にある。)、”
和”と”キャリー”を計算する制御論理回路に出力され
る。”和”のビットは、けた移動された”被乗数”B
= B r + B * 2の整数を、C=C,+C,
2によって与えられる”積”のアキュムレータに加算す
るための制御に用いられる。乗算のための制御論理回路
は、A、とA、のnビットのレジスタの右側端部にある
。2進数の変数r2、rt、及びAt+が最初にゼロに
セットされる。この論理回路は、次式の整数を計算する
。89 Multiplier The "digit shifted and added" multiplier is stored in two n-bit registers "Multiplier" A = A I
+ A t 2, ``After the multiplier A is shifted a digit to the right (the higher order bits are on the left)''
The bits of the “sum” are output to the control logic circuit that calculates the “sum” and “carry”.
= B r + B * 2 integer as C=C, +C,
It is used to control the addition to the accumulator of the "product" given by 2. The control logic for the multiplication is at the right end of the n-bit registers of A and A. The binary variables r2, rt, and At+ are initially set to zero. This logic circuit calculates the following integer:
△
r = r z+At++As [0] 並びに、A
tlすA1[0]
△
ここで、rは、次式に示すように2の基数表示のr=r
l+r*2
乗数レジスタA1及びA、のデータをそれぞれ右Δ
る。△ r = r z + At++ As [0] and A
tlS A1 [0] △ Here, r is r=r in base 2 representation as shown in the following formula.
l+r*2 Data of multiplier registers A1 and A are respectively set to the right Δ.
A、レジスタ及びA、レジスタの右側端部に位置する乗
算論理回路は、一義的でないnビットの2の基数表示に
単に変換する。ここで、演算結果のへ
ビット (r、)は、けた移動された被乗数レジスタB
、及びB、のデータを積アキュムレータレジスタC0及
びC3に加算する演算を制御するために用いられる。The multiplication logic located at the right end of the A, register and the A, register simply converts to an ununique n-bit radix-2 representation. Here, the bit (r,) of the operation result is the shifted multiplicand register B
, and B to the product accumulator registers C0 and C3.
C1被乗数 被乗数が2個のnビットのレジスタB、及びB。C1 multiplicand n-bit registers B and B with two multiplicands;
に格納され、左側にけた移動される(2によって乗算さ
れる)。B、及びB、のレジスタのデータを左側にそれ
ぞれけた移動させる前に、これらのレジスタのビットは
、上記乗算論理回路の出カビ。is stored and shifted a digit to the left (multiplied by 2). Before moving the data in the registers B and B, respectively, one digit to the left, the bits in these registers are output from the multiplication logic circuit.
△
トrlに依存して積アキュムレータレジスタC1及びC
8に加算され、又は加算されない。△ Product accumulator registers C1 and C depending on trl
8 or not.
被乗数Bは、次式で表される。The multiplicand B is expressed by the following formula.
i=0
また、被乗数Bは、変換した項を有する次式で表される
。i=0 Moreover, the multiplicand B is expressed by the following equation having the converted term.
i=0
さらに、上記式の両辺に2を乗算することによって、次
式を得る。i=0 Furthermore, by multiplying both sides of the above equation by 2, the following equation is obtained.
i;1
+ (2B 2[n−3]2n−3+・・・+B2[1
]2+B2[n−1]+ B 1[n−t]+ B 2
[n−3]2n−3+・・・+B2[1]2+B2[n
−2]) 2 ″各2mの項を、(1)式を用いて帰還
項によって置き換えることができるということを用いて
、上記2nの項の数は次式で与えられ、
5=2B2[n−3]2n−3+・・・+B2[1]2
+B2[n 1]+81[n 1]+B2[n−3
]2n−3+・・・+B2[1]2+B2[n 2]
帰還のnビットのシーケンスは、次式で与えられる。i;1 + (2B 2[n-3]2n-3+...+B2[1
]2+B2[n-1]+B 1[nt]+B2
[n-3]2n-3+...+B2[1]2+B2[n
-2]) 2'' Using the fact that each 2m term can be replaced by a feedback term using equation (1), the number of 2n terms above is given by the following equation, 5=2B2[n -3]2n-3+...+B2[1]2
+B2[n 1]+81[n 1]+B2[n-3
]2n-3+...+B2[1]2+B2[n 2]
The feedback n-bit sequence is given by:
F n= 32 ″mod p
4個の可能なOでない帰還項は、F1、F1、F、及び
F4として定義される。いま、整数Bのけた移動演算は
次式によって与えられる。F n= 32 ″mod p The four possible non-O feedback terms are defined as F1, F1, F, and F4. Now, the shift operation of the integer B is given by the following equation.
初期状態:Bをロードし次式をセットする。Initial state: Load B and set the following formula.
5=2B2[n−3]2n−3+・・・+B2[1]2
+B2[n−1]+B1[n−1]+B1[n−2]次
式に従ってけた移動演算する。5=2B2[n-3]2n-3+...+B2[1]2
+B2[n-1]+B1[n-1]+B1[n-2] Perform digit shift calculation according to the following equation.
i=1
△ △ △ △S −
2B 2[n−3]2n−3+・・・+B2[1]2+
B2[n−1]+ B 1[:n−1]+ B 2[n
−3]2n−3+・・・+B2[1]2+B2[n−1
]△ここで、Bは最初のレジスタの整数であり、B=2
Bは、けた移動されたレジスタの整数である。i=1 △ △ △ △S −
2B 2[n-3]2n-3+...+B2[1]2+
B2[n-1]+B1[:n-1]+B2[n
-3]2n-3+...+B2[1]2+B2[n-1
]△Here, B is the integer of the first register, and B=2
B is the integer of the shifted register.
第1図は、全加算器を用いたこのけた移動演算を示して
いる。FIG. 1 shows this digit shift operation using a full adder.
任意の与えられた時刻において、Bは次式で与えられる
。At any given time, B is given by the following equation.
i:0
もし、r+=1であるとき、Bが2個のnビットのレジ
スタから構成される整数Cに加算される。i:0 If r+=1, B is added to an integer C consisting of two n-bit registers.
オーバーフローの項を取り扱う問題は、(1)式を用い
て処理される。Cレジスタのデータをけた移動すること
が含まれないので、すべてのオーバーフローの項は、す
べてのけた移動及び加算演算が終了するまで、蓄積され
る。けた移動と加算演算の終了時においては、最後の答
えを得るために、すべての蓄積されたオーバーフローの
項がCレジスタに加算され
る。Problems dealing with overflow terms are handled using equation (1). Since no shifting of the data in the C register is involved, all overflow terms accumulate until all shifting and addition operations are completed. At the end of the shift and add operation, all accumulated overflow terms are added to the C register to obtain the final answer.
△
r+=1と仮定すると、それぞれ2組の全加算器につい
て、BをCに加算する各加算演算が第2図に示されてい
る。すべてのけた移動及び加算が終了した後、カウンタ
は整数Iを含み、最後の積ABmodpは、12r′を
2個のnビットレジスタにおいて含まれる整数Cに加算
することによって得られる。これは、■で置き換たAと
F、で置き換えたBを用いてけた移動と加算演算を再び
開始させ、現在のCレジスタの値を用いて開始させ、2
mをFt=2mmodpで置き換えIF、をアキュムレ
ータレジスタに加算することによって、行うことができ
る。再び、第2図に示された演算が用いられる。この演
算は、けた移動及び加算のサイクルが終了しI=Oにな
るまで繰り返される。Assuming Δr+=1, each addition operation for adding B to C is shown in FIG. 2 for each of the two sets of full adders. After all digit moves and additions have been completed, the counter contains the integer I and the final product ABmodp is obtained by adding 12r' to the integer C contained in the two n-bit registers. This restarts the digit movement and addition operation using A and F replaced by ■, B replaced by F, and starts using the current value of the C register.
This can be done by replacing m with Ft=2mm mod p and adding IF to the accumulator register. Again, the operations shown in FIG. 2 are used. This operation is repeated until the cycle of digit movement and addition is completed and I=O.
もし最初の整数A及びBがそれぞれnビットから構成さ
れているならば、そのとき、Bに対する任意のけた移動
によって、2個の2mの項よりも小さい項がn回よりも
少ない回数だけCに加算される。従って、カウンタは2
nよりも太き(ない整数Iを計数する。n=5oooの
場合、14ビツトのカウンタが必要とされる。従って、
カウンタの計数値Iは、最大14ビツトの整数を有し、
IF、をアキュムレータに加算する演算と関連するけた
移動及び加算のサイクルは、最初のけた移動及び加算の
サイクルに比べて短い。If the initial integers A and B each consist of n bits, then any digit shift in B causes a term smaller than two 2m terms to enter C fewer than n times. will be added. Therefore, the counter is 2
Count the integer I that is not thicker than n. If n = 5ooo, a 14-bit counter is required. Therefore,
The count value I of the counter has a maximum integer of 14 bits,
The shift and add cycle associated with the operation of adding IF to the accumulator is short compared to the initial shift and add cycle.
積の変換
乗算演算が終了したとき、指数計算のアルゴリズムを継
続させるために、2個のnビットのレジスタCI及びC
1に格納されているデータを、2個のnビットのレジス
タAX、A1、及び/又はB I{B、に転送する。指
数計算のアルゴリズムが終了したとき、2個のnビット
のレジスタに格納されている整数Cを、次式の1個の2
進数表示に変換することが望ましい。Product Conversion When the multiplication operation is finished, two n-bit registers CI and C are used to continue the exponent calculation algorithm.
Transfer the data stored in 1 to two n-bit registers AX, A1, and/or B I{B. When the exponent calculation algorithm is completed, the integer C stored in the two n-bit registers is converted into one 2 of the following formula.
It is desirable to convert to a base number representation.
ここで、すべてのi=O,1,・・・、n−1に対して
、C2[i] =0である。Here, C2[i] = 0 for all i=O, 1, . . . , n-1.
2個のnビット表示において、整数Cは次式を満足する
。In two n-bit representations, the integer C satisfies the following equation.
C=C1[n−1+B2[n−1+c2[n−3]2n
−3+・・・+B2[1]2+B2[n−2+B2[n
1+1、、+C1[0]+ 1]2n−2] 2n−’
+ C1[n−3] 2 ”−’ 十・・・+ Ct
[−1]< 2−1ここで、C2[−tコニ、0であ
り、1]2n−1]= Oである。2 ″+ 2 =
2 ”’であるので、通常のnビットの表示におけるC
においては、1gAの2r″の項が最大となる。この1
個のnビット表示への変換は、次式によって与えられる
。C=C1[n-1+B2[n-1+c2[n-3]2n
-3+...+B2[1]2+B2[n-2+B2[n
1+1,, +C1[0]+ 1]2n-2] 2n-'
+ C1[n-3] 2 ”-' 10...+ Ct
[-1]<2-1 where C2[-tconi, 0 and 1]2n-1]=O. 2″+2=
2 "', so C in the normal n-bit representation
, the term 2r'' of 1gA is the maximum.
The conversion to n-bit representation is given by:
ステップ1:セットN4−n ステップ + 1 4−0 ステ、プ2:セットC4−C+O N 4−N−1 ステップ3:チェックN=0 もしN=Oであれば、ステップ4に進む。Step 1: Set N4-n Step + 1 4-0 Step 2: Set C4-C+O N 4-N-1 Step 3: Check N=0 If N=O, proceed to step 4.
もしN≠0であれば、ステップ2に進む。If N≠0, proceed to step 2.
ステ・ノブ4:チz 7り カウンタIもしI=0であ
れば、停止する。Step Knob 4: Check z 7 Counter I If I=0, stop.
もし■≠0であれば、セットC4−C+F。If ■≠0, set C4-C+F.
の後、ステップ1に進む。After that, proceed to step 1.
以上の演算操作は、B=0として第2図を検査すること
によって行われる。最下位の次数のビットからスタート
して、第1の(C+Q)の演算によってC2[0] =
Oを求め、第2の(C+O)の演算によってC2[11
=Oを求める。以下、同様である。The above calculation operations are performed by examining FIG. 2 with B=0. Starting from the lowest order bit, the first (C+Q) operation yields C2[0] =
Find C2[11
Find =O. The same applies hereafter.
モジュロpの変換 Cの1個のnビットの表示は次式で表わされる。Modulo p conversion The representation of one n bit of C is expressed by the following equation.
素数pの最上位の次数のビットが1であると仮定すると
、次式を得る。Assuming that the most significant bit of the prime number p is 1, we obtain the following equation.
i=0
ここで、P[n−1]=1である。このことは、制限条
件ではない。なぜならば、nが素数pを表すために必要
なビット数を定義することによって存在するからである
。従って、
p≧2m1
又は
2p≧2m
であり、
c<2p
である。i=0 Here, P[n-1]=1. This is not a limiting condition. This is because n exists by defining the number of bits required to represent the prime number p. Therefore, p≧2m1 or 2p≧2m and c<2p.
もし、Cの表示が素数pよりも大きいならば、すなわち
、
ap
であるとき、次のステップを実行することによって、C
をC−pに変換することが望ましい。If the representation of C is greater than the prime number p, i.e. ap , then by performing the following steps, C
It is desirable to convert C-p to C-p.
ステップ1: セットY4−C ステップ2: セットC4−C+F。Step 1: Set Y4-C Step 2: Set C4-C+F.
ステップ3: セットN+O 1← 0 ステップ′4= セットC4−C+O N 4−N−1 ステップ5: チェックN=0 もしN=Oであれば、ステップ6に進む。Step 3: Set N+O 1← 0 Step '4 = Set C4-C+O N 4-N-1 Step 5: Check N=0 If N=O, proceed to step 6.
もしN≠0であれば、ステップ4に進む。If N≠0, proceed to step 4.
ステップ6: チェック カウンタI もしI=Oであれば、停止する。Step 6: Check counter I If I=O, stop.
もし■≠0であれば、セットY4−Cの後に、停止する
。If ■≠0, stop after set Y4-C.
以上の手順が正しいことを示すために、最後の答えは次
式を満足する1個のnビットの表現か、0≦C<2p
もしくは、もしこの最後の答えが素数pよりも犬きいな
らば、1個のnビットの表現は次式を満足するC−pで
ある。To show that the above procedure is correct, the final answer must be an n-bit representation satisfying , one n-bit representation is C-p that satisfies the following equation.
0≦C−p<p
ここで、
p=2n F+
であるので、
C+ F1= 2 n+(Cp )
である。もし、C+F、を1個のnビットの表現に変換
した後において、■≠0であるならば、このとき、C−
p≧0又はC≧pであり、Cルジスタの最後のデータが
、答えとして受は入れられる。もしそうでなければ、す
なわち、もしI=Qであるならば、(F、の加算の後の
)最初のCルジスタのデータ値は所望の答えである。0≦C−p<p Here, since p=2n F+, C+ F1=2 n+(Cp). If ■≠0 after converting C+F into one n-bit representation, then C−
If p≧0 or C≧p, the last data of the C register is accepted as the answer. If not, ie, if I=Q, then the data value of the first C register (after the addition of F,) is the desired answer.
プロセッサチップ
次式は、計算を行うガロア体GF (p)のプロセッサ
チップの一般的な特徴を示している。Processor chip The following equation shows the general characteristics of a Galois field GF (p) processor chip that performs calculations.
Y=X2modp
Y=XZ nod I)
並びに、
Y=X+Z mod p
A、基礎構造
このプロセッサチップは、第3図に示すように、12個
のしピントのレジスタと、L個の全加算器と、制御及び
帰還論理回路を備えた基礎構造を有する。素数帰還項F
3及びF4は入力F1から計算され、一方、F、は単に
Flのけた移動によって得られる。このチップへの入力
は整数X及びZである。すべてのこれらの整数がnビッ
トで表現され、素数pがnビットの整数であると仮定さ
れる。最後の指数計算は、nビットのレジスタYにおい
て行われるであろう。F1、Z及びXレジスタにロード
した後の任意の時刻において、スタートコマンドによっ
て、加算、乗算又は指数計算を初期化することができる
。計算中において、これらのレジスタへのロードは許可
されない。Y=X2 mod p Y=XZ nod I) and Y=X+Z mod p A, basic structure This processor chip has 12 pinto registers and L full adders, as shown in FIG. It has a basic structure with control and feedback logic. Prime feedback term F
3 and F4 are calculated from the input F1, while F is obtained simply by shifting Fl. The inputs to this chip are the integers X and Z. It is assumed that all these integers are represented in n bits and the prime number p is an n-bit integer. The final exponent calculation will be performed in the n-bit register Y. At any time after loading the F1, Z, and X registers, a start command can initialize addition, multiplication, or exponentiation. Loading these registers is not allowed during calculations.
指数計算は、一連の乗算演算C=ABから構成されてい
るので、第3図の基礎構造は、主としてガロア体GF
(p)の乗算器である。最後の答えが、nビットのレジ
スタCIにおいて得られたとき、その最後の答えがYレ
ジスタにロードされる。Since the index calculation consists of a series of multiplication operations C=AB, the basic structure in Figure 3 is mainly based on the Galois field GF.
(p) multiplier. When the last answer is obtained in the n-bit register CI, the last answer is loaded into the Y register.
すべての計算が実行された後に、Yレジスタから上記最
後の答えのみを読み出すことができる。Only the last answer above can be read from the Y register after all calculations have been performed.
上記基礎構造の大部分が、12個のnビットのレジスタ
とL個の全加算器の組から構成される。Most of the above basic structure consists of a set of 12 n-bit registers and L full adders.
この基礎構造についての縦断面が第4図の基礎セルとし
て示されている。第3図の基礎構造の大部分は、1組の
レジスタセルのように、L回だけカスケード接続された
第4図に示された基礎セルの同一のコピーを含む。A longitudinal section of this foundation structure is shown as a foundation cell in FIG. Most of the infrastructure of FIG. 3 includes identical copies of the foundation cells shown in FIG. 4 cascaded L times, such as a set of register cells.
基礎セルは、第1図と第2図に示された演算を行うため
に、12個のレジスタと、時分割して動作する1個の全
加算器から構成される。第4図において、ロードライン
と通信ラインが示され、ここで、基礎セルは右側に隣接
する2個のセルから入力を受信し、左側に隣接する2個
のセルへ出てのセルに入力される3個の帰還ピッ)S。The basic cell is composed of 12 registers and one full adder that operates in a time-division manner to perform the operations shown in FIGS. 1 and 2. In FIG. 4, load lines and communication lines are shown, where the base cell receives input from the two adjacent cells on the right and the outgoing cell receives input from the two adjacent cells on the left. 3 feedback pings)S.
+ SL+ ssが存在する。+SL+ss exists.
B、不一致
これまでにおいて、プロセッサチップはL個の基礎セル
を含む。従って、興味あるすべての整数はnビットの整
数である。素数pをまた、nビットの素数の整数である
と仮定した。B. Mismatch So far, a processor chip includes L basic cells. Therefore, all integers of interest are n-bit integers. The prime number p was also assumed to be an n-bit prime integer.
いま、素数がnビットで表示される場合において、上記
プロセッサチップがL個の基礎セルを有すると考えられ
る。ここで、n≦してあり、Zはmビットで表される。Now, when a prime number is represented by n bits, it is considered that the processor chip has L basic cells. Here, n≦, and Z is expressed by m bits.
L個の基礎セルのチップ構造を、所望の指数計算を行う
ために用いることができる。A chip structure of L basic cells can be used to perform the desired index calculations.
nビットの素数のとき、整数Xはnビットの整数であり
、また加算、乗算及び指数計算の結果はnビットの整数
である。Lとnとの不一致を許容するために、nビット
の整数X及びFが、X及びFレジスタの最上位のnビッ
トのレジスタの位置にロードされる。Zレジスタの最上
位mビットの位置のデータは、mピントの整数Zにロー
ドされる。このことが第5図に示されている。本質的に
は、L個のセルチップの上位n個のセルのみか用いられ
る。ここで要求されるただ1つの修正は以下の通りであ
る。すなわち、各乗算の最初において、A1及びA、レ
ジスタのデータが、右側端部の論理回路が正確に同期す
るように、q=L=nステップだけ右側にけた移動され
る。When an n-bit prime number, the integer X is an n-bit integer, and the results of addition, multiplication, and exponent calculation are n-bit integers. To allow for a mismatch between L and n, the n-bit integers X and F are loaded into the most significant n-bit register locations of the X and F registers. The data in the most significant m bit positions of the Z register is loaded into the integer Z of m pintos. This is illustrated in FIG. Essentially, only the top n cells of the L cell chips are used. The only modification required here is as follows. That is, at the beginning of each multiplication, the data in the A1 and A registers are shifted to the right by q=L=n steps so that the rightmost logic circuits are accurately synchronized.
C,モジュラ−・チップ
大きな素数の場合、1個のチップにすべての基礎セルを
載置するのは実用的でない。従って、L個の基礎セルが
1個のチップ上に載置される、いわゆるモジュラ−設計
が用いられる。従って、1個のチップは、n≦してある
ときの任意のnビットの素数pに対する指数計算を行う
ことができる。C. Modular Chips For large prime numbers, it is impractical to put all the basic cells on one chip. Therefore, a so-called modular design is used, in which L basic cells are mounted on one chip. Therefore, one chip can perform exponent calculation for any n-bit prime number p when n≦.
モジュラ−チップの設計において、カスケード接続され
た2個のチップが、2L個の基礎セルを備えた1個のチ
ップと同様に動作し、n≦2Lのときの素数を取り扱う
ことができる。このモジュラ−設計においては、n≦K
Lであってpがnビットの素数であるとき、カスケード
接続されたに個のモジュラ−チップが、ガロア体GF
(p)に関する指数計算を行うことができるKL個の基
礎セルからなる1個のチップのように動作する。In a modular chip design, two cascaded chips behave like one chip with 2L basic cells and can handle prime numbers when n≦2L. In this modular design, n≦K
When L and p is an n-bit prime number, the cascaded modular chips form a Galois field GF.
It operates like a single chip consisting of KL basic cells capable of performing index calculations on (p).
このモジュラ−設計を行うためには、モジュラ−チップ
を示す第3図の構造について考える。このモジュラ−チ
ップにおいて、左側端部の論理回路が入力制御ピンの信
号によって非動作状態されるとともに、右側端部の論理
回路がもう1つの入力制御ピンの信号によって非動作状
態とされる。To implement this modular design, consider the structure of FIG. 3, which shows a modular chip. In this modular chip, the logic circuit at the left end is disabled by a signal on an input control pin, and the logic circuit at the right end is disabled by a signal at another input control pin.
一連の基礎セルが1個のチップから次のチップへ連続す
るように、2個のチップをともに接続するために、入力
ピン及び出力ピンは各チップ上に位置する。従って、す
べてのチップは、第3図に示すように、L個の基礎セル
と、すべての端部の論理回路を有する。第1の変形例と
しては、上記端部の論理回路を非動作状態とし、上記チ
ップを基礎セルのカスケード接続を連続させて接続こと
ができる。Input and output pins are located on each chip to connect the two chips together so that the series of basic cells continues from one chip to the next. Therefore, every chip has L base cells and all edge logic circuits, as shown in FIG. As a first variant, the logic circuit at the end can be rendered inactive and the chips can be connected in a continuous cascade of basic cells.
このとき、カスケード接続されたに個のモジュラ−チッ
プは、動作状態される左側の論理回路と非動作状態とさ
れる右側の論理回路を備えた最も左側の1個のチップを
有する。(K−2)個の中間のチップは、非動作状態と
されるすべての端部の論理回路を有し、一方、最も左側
のチップは、非動作状態とされる左側の論理回路と動作
状態とされる右側の論理回路を有する。上記端部の論理
回路は、各モジュラ−チップにおいて小さな面積だけ占
有するだけなので、使用されない端部の論理回路に対し
て、浪費された全体のチップ面積は非常に小さい。第1
図に示された上記端部の論理回路に加えて、チップ全体
のコントローラが、カスケード接続されたモジュラ−チ
ップにおいて最も左側のチップ上においてのみ用いられ
るにもかかわらず、各チップ上にまた複製されるチップ
全体のコントローラが存在する。このチップコントロー
ラは、後述するように、はとんどチップの面積を占有し
ない。The cascaded modular chips then have the left-most chip with the left-hand logic circuitry activated and the right-hand logic circuitry deactivated. The (K-2) middle chips have all the edge logic circuitry inactive, while the leftmost chip has the left logic circuitry inactive and active. It has a logic circuit on the right side that is assumed to be . Since the edge logic occupies only a small area on each modular chip, the overall wasted chip area is very small for unused edge logic. 1st
In addition to the above edge logic shown in the figure, the chip-wide controller is also replicated on each chip, although it is only used on the left-most chip in the cascaded modular chips. There is a whole-chip controller. This chip controller occupies almost no chip area, as will be described later.
チップコントローラ
KL個の基礎セルを形成するために、カスケード接続さ
れたに個のモジュラ−チップが存在することを仮定する
。nを素数pの表示におけるビ。It is assumed that there are 2 modular chips connected in cascade to form the chip controller KL basic cells. Bi in the representation of n as a prime number p.
ト数とすると、
1=0
関係する制御パラメータはn、m、及びqであり、ここ
で、
n=pを表示するビット数、
m=zを表示するビット数、
q=KL−n
である。If the number of bits is 1=0, the relevant control parameters are n, m, and q, where n=number of bits representing p, m=number of bits representing z, and q=KL−n. .
これらのパラメータが制御レジスタに入力されるとき、
それぞれの計算の前に、nビットの入力X及びFl並び
に、mビットの入力Zが入力される。When these parameters are entered into the control register,
Before each calculation, n-bit inputs X and Fl and m-bit input Z are input.
A、基礎サブルーチン
以下のフローチャートにおいて、乗算を次のように表す
。A. Basic subroutine In the flowchart below, multiplication is expressed as follows.
PY オーバーフローの補償を次のように表す。P.Y. The overflow compensation is expressed as follows.
OVF補償
また、2個のnビットから1個のnビットへの変換を次
のように表す。OVF Compensation Also, the conversion from two n bits to one n bit is expressed as follows.
2→1変換
これらの3個のサブルーチンをそれぞれ第6図、第7図
、及び第8図に示す。第2図のカウンタは、■で示され
た整数の計数値を有し、該計数値はこれらのサブルーチ
ンにおいて用いられるオーバーフロー指数である。乗算
は、指数計算において用いられる最も共通するサブルー
チンである。オーバーフロー補償は、第2図に示すよう
に、カウンタにおける2m個の項をチェックするために
用いられ、もしオーバーフローが生じているならば、(
1)式を用いて帰還項を加える。2個のnビットから1
個のnビットへの変換は、OをCにn回加算することに
よって行う。2→1 Conversion These three subroutines are shown in FIGS. 6, 7, and 8, respectively. The counters in FIG. 2 have an integer count indicated by a square symbol, which is the overflow index used in these subroutines. Multiplication is the most common subroutine used in index calculations. Overflow compensation is used to check the 2m terms in the counter, as shown in Figure 2, and if an overflow has occurred, then (
1) Add a feedback term using equation. 1 from 2 n bits
The conversion to n bits is performed by adding O to C n times.
B、帰還項の計算 上述のように、帰還項は次式で与えられる。B. Calculation of feedback term As mentioned above, the feedback term is given by:
F3=S2mmodl)
又は
i=0
i=1
F3=F、+F、 mod p
並びに、
F4= F 3+ F + ll1od p素数は最上
位の次数のビットP [n−1] =1を有するので、
F[n−1]=Oを得る。従って、F、は、Flに対す
る簡単なげた移動によって得ることができる。なぜなら
ば、それが2mの項を有する数に帰着しないからである
。しかしながら、F、及びF4は、素数pを法とする剰
余への変換を必要としないかもしれない。ただ単にFl
+F3+及びF4がそれぞれレジスタに格納される。F
3及びF4は第9図のフローを用いて計算される。F3=S2mmodl) or i=0 i=1 F3=F,+F, mod p and F4=F3+F+ll1od pSince the prime number has the most significant order bit P[n-1] =1,
Obtain F[n-1]=O. Therefore, F can be obtained by a simple cursor movement with respect to Fl. Because it does not result in a number with 2m terms. However, F and F4 may not require conversion to a remainder modulo the prime p. Simply Fl
+F3+ and F4 are respectively stored in registers. F
3 and F4 are calculated using the flow shown in FIG.
C,オーバーフロー制御プログラム
上述のサブルーチンを用いた全体の制御フローチャート
が第10図に示される。この全体の制御フローチャート
は、指数計算、乗算、及び加算の3個の独立な関数と、
それに続く共通部分から苦せいされる。この共通部分は
、先ず最初にCI及びC1のレジスタにおける答えをC
1における1個のnビットの表示に変換した後、最後の
mod pの変換を行う。C. Overflow Control Program An overall control flowchart using the above-mentioned subroutines is shown in FIG. This overall control flowchart consists of three independent functions: exponential calculation, multiplication, and addition.
It suffers from the common parts that follow. This common part first stores the answers in the CI and C1 registers as C
After converting to one n-bit representation in 1, a final mod p conversion is performed.
本発明の範囲及び概念からはずれることなく、本発明の
ガロア体プロセッサチップに対して、種々の変換を行う
ことできることが当業者に明らかになるであろう。また
、本発明が、上述の特許請求の範囲及びそれに等価な事
項によって供給されるガロア体プロセッサチップの他の
実施例及び変形例を包括することを意図している。さら
に、本発明は、暗号化及びメツセージ認証のためのIC
カード公開鍵管理方式を含むガロア体プロセッサの現在
のアプリケーション及び新しいアプリケーションを包含
することを意図している。It will be apparent to those skilled in the art that various transformations can be made to the Galois field processor chip of the present invention without departing from the scope and concept of the invention. It is also intended that the invention cover other embodiments and variations of Galois field processor chips as provided by the following claims and their equivalents. Furthermore, the present invention provides an IC for encryption and message authentication.
It is intended to encompass current and new applications of Galois field processors, including card public key management schemes.
第1図は本発明によるプロセッサチップのけた移動演算
を示すブロック図、
第2図は本発明のプロセッサのアキュムレータ演算を示
すブロック図、
第3図は本発明によるプロセッサチップの基礎構造を示
すブロック図、
第4図は本発明のプロセッサチップの基礎セル示す回路
図、
第5図は本発明のレジスタの構成を示すブロック図、
第6図は本発明の乗算サブルーチンのフローチャーと、
第7図は本発明のオーバーフロー補償サブルーチンのフ
ローチャーと、
第8図は2個のNビットから1個のNビットに変換する
サブルーチンのフローチャーと、第9図は本発明のF3
及びF4の設定を示すフローチャーと、
第10図は本発明のプロセッサチップを示す全体のフロ
ーチャートである。
A1、A1、B1、B!+ C,、C,、X、Y、Z
。
F1、F2、F3、F、・・・レジスタ、p・・・素数
、
GF (p)・・・ガロア体。
第1FIG. 1 is a block diagram showing the digit movement operation of the processor chip according to the invention. FIG. 2 is a block diagram showing the accumulator operation of the processor according to the invention. FIG. 3 is a block diagram showing the basic structure of the processor chip according to the invention. , FIG. 4 is a circuit diagram showing the basic cell of the processor chip of the present invention, FIG. 5 is a block diagram showing the configuration of the register of the present invention, FIG. 6 is a flowchart of the multiplication subroutine of the present invention, and FIG. 7 is a diagram showing the structure of the register of the present invention. FIG. 8 is a flowchart of an overflow compensation subroutine of the present invention; FIG. 8 is a flowchart of a subroutine for converting two N bits into one N bit; FIG.
and a flowchart showing the settings of F4. FIG. 10 is an overall flowchart showing the processor chip of the present invention. A1, A1, B1, B! + C,,C,,X,Y,Z
. F1, F2, F3, F, ... register, p ... prime number, GF (p) ... Galois field. 1st
Claims (1)
するXレジスタと、 nビットの整数Yを格納するためのLビットを有するY
レジスタと、 それぞれLビットを有する第1と第2のAレジスタと、 nビットの整数XをXレジスタからそれぞれLビットの
第1と第2の別の整数に変換し上記第1と第2の別の整
数を上記第1と第2のAレジスタに格納するための手段
と、 上記第1と第2のAレジスタに接続され制御信号を発生
するための制御手段と、 それぞれLビットを格納するための第1と第2のBレジ
スタと、 それぞれLビットを格納するための第1と第2のCレジ
スタと、 上記第1と第2のBレジスタと上記第1と第2のCレジ
スタと上記制御手段に接続され“1”のビットの制御信
号に応答して上記第1と第2のBレジスタに格納された
データを左側にけた移動しそれぞれ上記第1と第2のC
レジスタに格納されたデータに加算するとともに、“0
”のビットの制御信号に応答して上記第1と第2のBレ
ジスタに格納されたデータを左側にけた移動するための
全加算器と、 nビットの帰還数を格納するためのLビットを有する帰
還レジスタと、 nビットの整数pから帰還数を発生し上記帰還レジスタ
に上記帰還数を格納するための手段と、上記帰還レジス
タと上記第1と第2のCレジスタに接続され上記第1と
第2のCレジスタに格納されたデータビットを整数pを
法とする剰余に変換するためのモジュロ手段と、 上記第1と第2のCレジスタに格納されたデータビット
をLビットの整数に変換し上記Lビットの整数を上記Y
レジスタに格納するための手段とを備えたことを特徴と
する整数pを法とする整数の剰余にてなる環に関する乗
算を行う装置。 (2)nビットの整数Xを格納するためのLビットを有
するXレジスタと、 nビットの整数Yを格納するためのLビットを有するY
レジスタと、 それぞれLビットを有する第1と第2のAレジスタと、 nビットの整数XをXレジスタからそれぞれLビットの
第1と第2の別の整数に変換し上記第1と第2の別の整
数を上記第1と第2のレジスタAに格納するための手段
と、 上記第1と第2のAレジスタに接続され制御信号を発生
するための制御手段と、 それぞれLビットを格納するための第1と第2のBレジ
スタと、 それぞれLビットを格納するための第1と第2のCレジ
スタと、 上記第1と第2のBレジスタと上記第1と第2のCレジ
スタと上記制御手段に接続され“1”のビットの制御信
号に応答して上記第1と第2のBレジスタに格納された
データをそれぞれ上記第1と第2のCレジスタに格納さ
れたデータに加算するための全加算器と、 上記第1と第2のCレジスタに格納されたデータビット
をLビットの整数に変換し上記Lビットの整数を上記Y
レジスタに格納するための手段とを備えたことを特徴と
する整数pを法とする整数の剰余にてなる環に関する加
算を行う装置。 (3)上記装置がさらに、 nビットの帰還数を格納するためのLビットの帰還レジ
スタと、 nビットの整数pから帰還数を発生し上記帰還数を上記
帰還レジスタに格納するための手段と、上記帰還レジス
タと上記第1と第2のCレジスタに接続され第1と第2
のCレジスタに格納されたデータビットを整数pを法と
する剰余に変換するためのモジュロ手段とを備えたこと
を特徴とする請求項第2項記載の装置。 (4)上記装置がさらに、 次式に従う整数pを法とする剰余に関する一連の乗算か
ら整数pを法とする整数の剰余にてなる環に関する指数
計算を行うための手段を備えたことを特徴とする請求項
第1項記載の整数pを法とする整数の剰余にてなる環に
関する乗算を行うための装置。 X^Z=X^Z^[^0^](X^Z^[^1^]{X
^Z^[^2^]・・・(X^2^^m^^−^^3)
^Z^[^m^−^1^]}^2}^2(5)上記装置
がさらに、 上記全加算器に接続され上記カウンタから出力されるオ
ーバーフロー値Iを計数するためのオーバーフローカウ
ンタを備え、 上記全加算器が2^nを上記帰還数F_1によって置き
換えた後IF_1をアキュムレータレジスタに加算する
ことによってI2^nを上記第1と第2のCレジスタに
加算することを特徴とする請求項第1項記載の装置。 (6)上記装置がさらに、 上記全加算器に接続され上記全加算器から出力されるオ
ーバーフロー値Iを計数するためのオーバーフローカウ
ンタを備え、 上記全加算器が2^nを上記帰還数F_1によって置き
換えた後IF_1をアキュムレータレジスタに加算する
ことによってI2^nを上記第1と第2のCレジスタに
加算することを特徴とする請求項第2項記載の装置。 (7)上記装置がさらに、 上記全加算器に接続され上記全加算器から出力されるオ
ーバーフロー値Iを計数するためのオーバーフローカウ
ンタを備え、 上記全加算器が2^nを上記帰還数F_1によって置き
換えた後IF_1をアキュムレータレジスタに加算する
ことによってI2^nを上記第1と第2のCレジスタに
加算することを特徴とする請求項第3項記載の装置。 (8)nビットの第1の整数Aをnビットのnビットの
第2の整数Bに加算するためのモジュロ演算プロセッサ
チップであって、 上記第1の整数Aに上記第2の整数Bを加算したデータ
に関するnビットの第4の整数pを法とする剰余が第3
の整数Cに等しく、上記第1の整数Aが、 A=A[n−1]2^n^−^1+A[n−2]2^n
^−^2+A[n−3]2^n^−^3+・・・+A[
1]2+A[0] なる表示における2進数{A[i]}によって表され、
上記第2の整数Bが、 B=B[n−1]2^n^−^1+B[n−2]2^n
^−^2+B[n−3]2^n^−^3+・・・+B[
1]2+B[0] なる表示における2進数{B[i]}によって表され、
上記第3の整数Cが、 C=C[n−1]2^n^−^1+C[n−2]2^n
^−^2+C[n−3]2^n^−^3+・・・+C[
1]2+C[0] なる表示における2進数{C[i]}によって表され、
上記第4の整数pが、 p=P[n−1]2^n^−^1+P[n−2]2^n
^−^2+P[n−3]2^n^−^3+・・・+P[
1]2+P[0] なる表示における2進数{P[i]}によって表され、
これによって、C=(A+B)mod pであり、上記
モジュロ演算プロセッサチップが、上記第1の整数Aを
格納するための第1のレジスタ手段と、 上記第2の整数Bを格納するための第2のレジスタ手段
と、 帰還数Fを発生し格納するための帰還手段とを備え、上
記帰還数Fが上記第4の整数pの2の補数であり、これ
によって、F=2^n−pであり、上記第1のレジスタ
手段と上記第2のレジスタ手段に接続され上記第1の整
数Aを上記第2の整数Bに加算することによって第3の
整数Cを発生するための演算手段と、 上記演算手段に接続され上記第3の整数Cを格納するた
めのアキュムレータ手段と、 上記アキュムレータ手段に接続され、オーバーフロー整
数を格納するためのオーバーフロー手段と、 上記オーバーフロー手段及び上記第2のレジスタ手段に
接続され上記オーバーフローの整数に応答して上記帰還
数Fを上記第2のレジスタBにフェッチし上記演算手段
を用いて帰還数Fを上記アキュムレータ手段に格納され
た第3の整数Cに加算するための手段と、 上記アキュムレータ手段に接続され上記第4の整数pよ
りも大きい上記第3の整数Cに応答して上記第4の整数
pを法とする第3の整数Cの剰余に変換するための手段
とを備えたモジュロ演算プロセッサチップ。 (9)上記演算手段が、上記第1のレジスタと上記第2
のレジスタに接続され上記第1の整数Aを上記第2の整
数Bに加算するための複数の全加算器を含むことを特徴
とする請求項第8項記載のモジュロ演算プロセッサチッ
プ。 (10)上記演算手段が、上記第1のレジスタ手段と上
記第2のレジスタ手段に接続され上記第1の整数Aを上
記第2の整数Bに加算するための複数の半加算器を含む
ことを特徴とする請求項第8項記載のモジュロ演算プロ
セッサチップ。 (11)nビットの第1の整数Aをnビットの第2の整
数Bに加算するためのモジュロ演算プロセッサチップで
あって、 上記第1の整数Aに上記第2の整数Bを加算したデータ
に関するnビットの第4の整数pを法とする剰余がnビ
ットの第3の整数Cに等しく、上記第1の整数Aの基数
ビットが、 A_1=A_1[n−1]2^n^−^1+A_1[n
−2]2^n^−^2+A_1[n−3]2^n^−^
3+・・・+A_1[1]2+A_1[0]にてなる表
示における2進数{A_1[i]}によって表され、上
記第1の整数Aのキャリービットが、A_2=A_2[
n−1]2^n^−^1+A_2[n−2]2^n^−
^2+A_2[n−3]2^n^−^3+・・・+A_
2[1]2+A_2[0]にてなる表示における2進数
{A_2[i]}によって表され、上記第2の整数Bの
基数ビットが、B_1=B_1[n−1]2^n^−^
1+B_1[n−2]2^n^−^2+B_1[n−3
]2^n^−^3+・・・+B_1[1]2+B_1[
0]にてなる表示における2進数{B、[i]}によっ
て表され、上記第2の整数Bのキャリービットが、B_
2=B_2[n−1]2^n^−^1+B_2[n−2
]2^n^−^2+B_2[n−3]2^n^−^3+
・・・+B_2[1]2+B_2[0]にてなる表示に
おける2進数{B_2[i]}によって表され、上記第
3の整数Cの基数ビットが、C_1=C_1[n−1]
2^n^−^1+C_1[n−2]2^n^−^2+C
_1[n−3]2^n^−^3+・・・+C_1[1]
2+C_1[0]にてなる表示における2進数{C_1
[i]}によって表され、上記第3の整数Cのキャリー
ビットが、C_2=C_2[n−1]2^n^−^1+
C_2[n−2]2^n^−^2+C_2[n−3]2
^n^−^3+・・・+C_2[1]2+C_2[0]
にてなる表示における2進数{C_2[i]}によって
表され、上記第4の整数pが、 p=P[n−1]2^n^−^1+P[n−2]2^n
^−^2+P[n−3]2^n^−^3+・・・+P[
1]2+P[0]にてなる表示における2進数{P[i
]}によって表され、これによってC=(A+B)mo
d pであり、上記モジュロ演算プロセッサチップが、
上記第1の整数Aの基数ビットを格納するための第1の
基数レジスタ手段と、 上記第1の整数Aのキャリービットを格納するための第
1のキャリーレジスタ手段と、 上記第2の整数Bの基数ビットを格納するための第2の
基数レジスタ手段と、 上記第2の整数Bのキャリービットを格納するための第
2のキャリーレジスタ手段と、 第1の帰還数F_1、第2の帰還数F_2、第3の帰還
数F_3及び第4の帰還数F_4を発生するための帰還
手段とを備え、上記第1の帰還数F_1が上記第4の整
数pの2の補数であり、これによってF_1=2^n−
pであり、上記第2の帰還数F_2が上記第1の帰還数
F_1の2倍に等しく、これによってF_2=2F_1
mod pであり、上記第3の帰還数F_3が上記第
1の帰還数F_1の3倍に等しく、これによってF_3
=3F_1 mod pであり、上記第4の帰還数F_
4が上記第1の帰還数F_1の4倍であり、これによっ
てF_4=4F_1 mod pであり、上記第1の基
数レジスタ手段と上記第1のキャリーレジスタ手段と上
記第2の基数レジスタ手段と上記第2のキャリーレジス
タ手段に接続される複数の全加算器を有し、基数ビット
とキャリービットを有する第1の和を発生するために上
記複数の全加算器を用いて上記第1の整数Aの基数ビッ
トとキャリービットを上記第2の整数Bの各基数ビット
に同時に加算した後、上記第3の整数Cの基数ビットと
キャリービットを発生するために上記複数の全加算器を
用いてそれぞれ上記第1の和の基数ビットとキャリービ
ットを上記第2の整数Bの各キャリービットに加算する
ための演算手段と、上記演算手段に接続され上記第3の
整数Cの基数ビットを格納するためのアキュムレータ基
数手段と、 上記演算手段に接続され上記第3の整数Cのキャリービ
ットを格納するためのアキュムレータキャリー手段と、 上記アキュムレータ基数手段と上記アキュムレータキャ
リー手段に接続されオーバーフロービットを計数しオー
バーフロー整数Iとして格納するためのオーバーフロー
手段と、 上記オーバーフロー手段と上記第2の基数レジスタ手段
と上記帰還手段に接続され上記オーバーフロー整数I=
1、2、3、又は4に応答して上記帰還手段から出力さ
れる帰還数F_1、F_2、F_3、又はF_4を上記
第2の基数レジスタ手段にフェッチした後、上記演算手
段を用いて上記帰還数F_1、F_2、F_3、又はF
_4をそれぞれ上記アキュムレータ基数手段と上記アキ
ュムレータキャリー手段に格納されている第3の整数C
に加算するための手段と、 上記アキュムレータ基数手段に接続され上記第4の整数
pよりも大きい第3の整数Cに応答して上記第4の整数
pを法とする上記第3の整数Cの剰余に変換するための
手段とを備えたことを特徴とするモジュロ演算プロセッ
サチップ。 (12)nビットの第1の整数をnビットの第2の整数
Bに加算するためのモジュロ演算プロセッサチップであ
って、 上記第1の整数Aに上記第2の整数Bを加算したデータ
に関するnビットの第4の整数pを法とする剰余がnビ
ットの第3の整数Cに等しく、上記第1の整数Aの基数
ビットが、 A_1=A、_1[n−1]2^n^−^1+A_1[
n−2]2^n^−^2+A_1[n−3]2^n^−
^3+・・・+A_1[1]2+A_1[0]にてなる
表示における2進数{A_1[i]}によって表され、
上記第1の整数Aのキャリービットが、A_2=A_2
[n−1]2^n^−^1+A_2[n−2]2^n^
−^2+A_2[n−3]2^n^−^3+・・・+A
_2[1]2+A_2[0]にてなる表示における2進
数{A_2[i]}によって表され、上記第2の整数B
の基数ビットが、B_1=B_1[n−1]2^n^−
^1+B_1[n−2]2^n^−^2+B_1[n−
3]2^n^−^3+・・・+B_1[1]2+B_1
[0]にてなる表示における2進数{B_1[i]}に
よって表され、上記第2の整数Bのキャリービットが、
B_2=B_2[n−1]2^n^−^1+B_2[n
−2]2^n^−^2+B_2[n−3]2^n^−^
3+・・・+B_2[1]2+B_2[0]にてなる表
示における2進数{B_2[i]}によって表され、上
記第3の整数Cの基数ビットが、C_1=C_1[n−
1]2^n^−^1+C_1[n−2]2^n^−^2
+C_1[n−3]2^n^−^3+・・・+C_1[
1]2+C_1[0]にてなる表示における2進数{C
_1[i]}によって表され、上記第3の整数Cのキャ
リービットが、C_2=C_2[n−1]2^n^−^
1+C_2[n−2]2^n^−^2+C_2[n−3
]2^n^−^3+・・・+C_2[1]2+C_2[
0]にてなる表示における2進数{C_2[i]}によ
って表され、上記第4の整数pが、 p=P[n−1]2^n^−^1+P[n−2]2^n
^−^2+P[n−3]2^n^−^3+・・・+P[
1]2+P[0]にてなる表示における2進数{P[i
]}によって表され、これによってC=(A+B)mo
d pであり、上記モジュロ演算プロセッサチップが、
上記第1の整数Aの基数ビットを格納するための第1の
基数レジスタ手段と、 上記第1の整数Aのキャリービットを格納するための第
1のキャリーレジスタ手段と、 上記第2の整数Bの基数ビットを格納するための第2の
基数レジスタ手段と、 上記第2の整数Bのキャリービットを格納するための第
2のキャリーレジスタ手段と、 帰還数Fを、発生するための帰還手段とを備え、ここで
、上記帰還数Fが上記第4の整数pの2の補数であり、
これによってF=2^n−pであり、上記第1の基数レ
ジスタ手段と上記第1のキャリーレジスタ手段と上記第
2の基数レジスタ手段と上記第2のキャリーレジスタ手
段に接続され基数ビットとキャリービットを有する第1
の和を発生するために上記第1の整数Aの基数ビットと
キャリービットを同時に上記第2の整数Bの各基数ビッ
トに加算した後、上記第3の整数Cの基数ビットとキャ
リービットを発生するために上記第1の和の基数ビット
とキャリービットを上記第2の整数Bの各キャリービッ
トにそれぞれ加算するための演算手段と、 上記演算手段に接続され上記第3の整数Cの基数ビット
を格納するためのアキュムレータ基数手段と、 上記演算手段に接続され上記第3の整数Cのキャリービ
ットを格納するためのアキュムレータキャリー手段と、 上記アキュムレータ基数手段と上記アキュムレータキャ
リー手段に接続されオーバーフロービットを計数しオー
バーフロー整数Iとして格納するためのオーバーフロー
手段と、 上記オーバーフロー手段と上記第2の基数手段と上記帰
還手段に接続され上記オーバーフロー整数に応答して上
記帰還手段から出力される帰還数Fをフェッチした後、
上記帰還数Fを上記第3の整数Cに加算するための手段
と、 上記アキュムレータ基数手段に接続され上記第4の整数
pよりも大きい第3の整数Cに応答して上記第4の整数
pを法とする第3の整数Cの剰余に変換するための手段
を備えたことを特徴とするモジュロ演算プロセッサチッ
プ。 (13)上記演算手段が、上記第1の基数レジスタ手段
と上記第1のキャリーレジスタ手段と上記第2の基数レ
ジスタ手段と上記第2のキャリーレジスタ手段に接続さ
れ基数ビットとキャリービットを有する第1の和を発生
するために上記第1の整数Aの基数ビットとキャリービ
ットを同時に上記第2の整数Bの各基数ビットに加算し
た後、上記第1の和の基数ビットとキャリービットを上
記基数アキュムレータ手段と上記キャリーアキュムレー
タ手段にそれぞれ格納するための複数の全加算器を含む
ことを特徴とする請求項第12項記載のモジュロ演算プ
ロセッサチップ。 (14)上記モジュロ演算プロセッサチップがさらに、 上記複数の全加算器と上記第1の基数レジスタ手段と上
記第1のキャリーレジスタ手段と上記第2の基数レジス
タ手段と上記第2のキャリーレジスタ手段と上記基数ア
キュムレータ手段と上記キャリーアキュムレータ手段に
接続され、上記第3の整数Cを発生するために上記基数
アキュムレータ手段と上記キャリーアキュムレータ手段
に格納された第1の和の基数ビットとキャリービットを
同時に上記第2の整数Bのキャリービットに加算した後
、上記第3の整数Cの基数ビットとキャリービットをそ
れぞれ上記基数アキュムレータ手段及び上記キャリーア
キュムレータ手段に格納するために複数の全加算器を切
り換えるためのマルチプレクサ手段を含むことを特徴と
する請求項第13項記載のモジュロ演算プロセッサチッ
プ。 (15)nビットの第1の整数をnビットの第2の整数
Bで乗算するためのモジュロ演算プロセッサチップであ
って、 上記第1の整数Aと上記第2の整数Bの乗算結果のデー
タに関するnビットの第4の整数pを法とする剰余がn
ビットの第3の整数Cに等しく、上記第1の整数Aが A=A[n−1]2^n^−^1+A[n−2]2^n
^−^2+A[n−3]2^n^−^3+・・・+A[
1]2+A[0]にてなる表示における2進数{A[i
]}によって表され、上記第2の整数Bが、 B=B[n−1]2^n^−^1+B[n−2]2^n
^−^2+B[n−3]2^n^−^3+・・・+B[
1]2+B[0]にてなる表示における2進数{B[i
]}によって表され、上記第3の整数Cが、 C=C[n−1]2^n^−^1+C[n−2]2^n
^−^2+C[n−3]2^n^−^3+・・・+C[
1]2+C[0]にてなる表示における2進数{C[i
]}によって表され、上記第4の整数pが、 p=P[n−1]2^n^−^1+P[n−2]2^n
^−^2+P[n−3]2^n^−^3+・・・+P[
1]2+P[0]にてなる表示における2進数{P[i
]}によって表され、これによってC=A・B mod
pであり、上記モジュロ演算プロセッサチップが、 上記第1の整数Aを格納するための第1のレジスタ手段
と、 上記第2の整数Bを格納するための第2のレジスタと、 帰還数Fを発生するための帰還手段とを備え、ここで上
記帰還数Fが第4の整数pの2の補数であり、これによ
ってF=2^n−pであり、上記第2のレジスタ手段に
接続され上記第2のレジスタ手段から左側にけた移動さ
れた上記第2の整数Bの最上位に応答して上記帰還数F
を上記第2の整数Bに加算しこれによって上記第2の整
数Bの一部を変換するための第1の一部変換手段と、 上記第1のレジスタ手段と上記第2のレジスタ手段に接
続され上記第1のレジスタ手段から右側にけた移動され
た第1の整数Aの最下位に応答して上記第2の整数Bを
上記第3の整数Cに加算するための演算手段と、 上記演算手段に接続され上記第3の整数Cを格納するた
めのアキュムレータ手段と、 上記アキュムレータ手段に接続されオーバーフロービッ
トを計数しオーバーフロー整数Iとして格納するための
オーバーフロー手段と、 上記第1のレジスタ手段と上記第2のレジスタ手段と上
記オーバーフロー手段と上記演算手段に接続され、上記
第1の整数Aと上記第2の整数Bとの乗算の終了に応答
して上記オーバーフロー整数Iを上記第1のレジスタ手
段に転送し、上記帰還数Fを上記第2のレジスタ手段に
転送し、積を発生するために上記帰還数Fをオーバーフ
ロー整数Iで乗算し上記積を上記アキュムレータ手段に
格納された上記第3の整数Cに加算するための第2の一
部変換手段と、 上記アキュムレータ手段に接続され上記第4の整数pよ
りも大きい上記第3の整数Cに応答して上記第4の整数
pを法とする上記第3の整数Cの剰余に変換するための
手段とを備えたことを特徴するモジュロ演算プロセッサ
チップ。 (16)nビットの第1の整数Aをnビットの第2の整
数Bで乗算するためのモジュロ演算プロセッサチップで
あって、 上記第1の整数Aと上記第2の整数Bの乗算結果のデー
タに関するnビットの第4の整数pを法とする剰余がn
ビットの第3の整数Cに等しく、上記第1の整数Aが A=A[n−1]2^n^−^1+A[n−2]2^n
^−^2+A[n−3]2^n^−^3+・・・+A[
1]2+A[0]にてなる表示における2進数{A[i
]}によって表され、上記第2の整数Bが、 B=B[n−1]2^n^−^1+B[n−2]2^n
^−^2+B[n−3]2^n^−^3+・・・+B[
1]2+B[0]にてなる表示における2進数{B[i
]}によって表され、上記第3の整数Cが、 C=C[n−1]2^n^−^1+C[n−2]2^n
^−^2+C[n−3]2^n^−^3+・・・+C[
1]2+C[0]にてなる表示における2進数{C[i
]}によって表され、上記第4の整数pが、 p=P[n−1]2^n^−^1+P[n−2]2^n
^−^2+P[n−3]2^n^−^3+・・・+P[
1]2+P[0]にてなる表示における2進数{P[i
]}によって表され、これによってC=A・B mod
pであり、上記モジュロ演算プロセッサチップが、 上記第1の整数Aを格納するための第1のレジスタ手段
と、 上記第2の整数Bを格納するための第2のレジスタと、 帰還数Fを発生するための帰還手段とを備え、ここで上
記帰還数Fが第4の整数pの2の補数であり、これによ
ってF=2^n−pであり、上記第1のレジスタ手段と
上記第2のレジスタ手段に接続され上記第1のレジスタ
手段から右側にけた移動された上記第1の整数Aの最下
位に応答して上記第2の整数Bを上記第3の整数Cに加
算するための演算手段と、 上記演算手段に接続され上記第3の整数Cを格納するた
めのアキュムレータ手段と、 上記アキュムレータ手段に接続されオーバーフロービッ
トを計数しオーバーフロー整数として格納するためのオ
ーバーフロー手段と、 上記オーバーフロー手段と上記帰還手段と上記第1のレ
ジスタ手段と上記第2のレジスタ手段に接続され上記第
1の整数Aと上記第2の整数Bの乗算の終了時に応答し
て上記オーバーフロー整数Iを上記第1のレジスタ手段
に転送し上記帰還数Fを上記第2のレジスタ手段に転送
し、積を発生するために帰還数Fを上記オーバーフロー
整数Iで乗算し、上記積を上記アキュムレータ手段に格
納された第3の整数Cに加算するための第2の一部変換
手段と、 上記アキュムレータ手段に接続され第4の整数pよりも
大きい第3の整数Cに応答して上記第4の整数pを法と
する上記第3の整数Cの剰余に変換するための手段とを
備えたことを特徴とするモジュロ演算プロセッサチップ
。 (17)上記演算手段が、上記第2のレジスタ手段に接
続され上記第2の整数Bを上記第3の整数Cに同時に加
算するための複数の全加算器を含むことを特徴とする請
求項第16項記載のモジュロ演算プロセッサチップ。 (18)上記演算手段が、上記第2のレジスタ手段に接
続され上記第2の整数Bを上記第3の整数Cに同時に加
算するための複数の半加算器を含むことを特徴とする請
求項第16項記載のモジュロ演算プロセッサチップ。 (19)nビットの第1の整数Aをnビットの第2の整
数Bで乗算するためのモジュロ演算プロセッサチップで
あって、 上記第1の整数Aと上記第2の整数Bの乗算結果のデー
タに関するnビットの第4の整数pを法とする剰余がn
ビットの第3の整数Cに等しく、上記第1の整数Aが A=A[n−1]2^n^−^1+A[n−2]2^n
^−^2+A[n−3]2^n^−^3+・・・+A[
1]2+A[0]にてなる表示における2進数{A[i
]}によって表され、上記第2の整数Bが、 B=B[n−1]2^n^−^1+B[n−2]2^n
^−^2+B[n−3]2^n^−^3+・・・+B[
1]2+B[0]にてなる表示における2進数{B[i
]}によって表され、上記第3の整数Cが、 C=C[n−1]2^n^−^1+C[n−2]2^n
^−^2+C[n−3]2^n^−^3+・・・+C[
1]2+C[0]にてなる表示における2進数{C[i
]}によって表され、上記第4の整数pが、 p=P[n−1]2^n^−^1+P[n−2]2^n
^−^2+P[n−3]2^n^−^3+・・・+P[
1]2+P[0]にてなる表示における2進数{P[i
]}によって表され、これによってC=A・B mod
pであり、上記モジュロ演算プロセッサチップが、 上記第1の整数Aを格納するための第1のレジスタ手段
と、 上記第2の整数Bを格納するための第2のレジスタと、 帰還数Fを発生するための帰還手段とを備え、ここで上
記帰還数Fが第4の整数pの2の補数であり、これによ
ってF=2^n−pであり、上記第2のレジスタ手段に
接続され、上記第2のレジスタ手段から左側にけた移動
された第2の整数Bの最上位に応答して上記帰還数Fを
上記第2の整数Bに加算し、これによって上記第2の整
数Bの一部を変換するための第1の一部変換手段と、 上記第1のレジスタ手段と上記第2のレジスタ手段に接
続され上記第1のレジスタ手段から右側にけた移動され
た第1の整数Aの最下位に応答して上記第2の整数Bを
上記第3の整数Cに加算するための演算手段と、 上記演算手段に接続され上記第3の整数Cを格納するた
めのアキュムレータ手段と、 上記アキュムレータ手段に接続され第4の整数pよりも
大きい第3の整数Cに応答して上記第4の整数pを法と
する上記第3の整数Cの剰余に変換するための手段とを
備えたことを特徴とするモジュロ演算プロセッサチップ
。 (20)上記演算手段が、上記第2のレジスタ手段に接
続され上記第2の整数Bを上記第3の整数Cに同時に加
算するための複数の全加算器を含むことを特徴とする請
求項第19項記載のモジュロ演算プロセッサチップ。 (21)上記演算手段が、上記第2のレジスタ手段に接
続され上記第2の整数Bを上記第3の整数Cに同時に加
算するための複数の半加算器を含むことを特徴とする請
求項第19項記載のモジュロ演算プロセッサチップ。 (22)nビットの第1の整数Aをnビットの第2の整
数Bで乗算するためのモジュロ演算プロセッサチップで
あって、 上記第1の整数Aと上記第2の整数Bの乗算結果のデー
タに関するnビットの第4の整数pを法とする剰余がn
ビットの第3の整数Cに等しく、上記第1の整数Aの基
数ビットが、 A_1=A_1[n−1]2^n^−^1+A_1[n
−2]2^n^−^2+A_1[n−3]2^n^−^
3+・・・+A_1[1]2+A_1[0]にてなる表
示における2進数{A、[i]}によって表され、上記
第1の整数Aのキャリービットが、A_2=A_2[n
−1]2^n^−^1+A_2[n−2]2^n^−^
2+A_2[n−3]2^n^−^3+・・・+A_2
[1]2+A_2[0]にてなる表示における2進数{
A_2[i]}によって表され、上記第2の整数Bの基
数ビットが、B_1=B_1[n−1]2^n^−^1
+B_1[n−2]2^n^−^2+B_1[n−3]
2^n^−^3+・・・+B_1[1]2+B_1[0
]にてなる表示における2進数{B_1[i]}によっ
て表され、上記第2の整数Bのキャリービットが、B_
2=B_2[n−1]2^n^−^1+B_2[n−2
]2^n^−^2+B_2[n−3]2^n^−^3+
・・・+B_2[1]2+B_2[0]にてなる表示に
おける2進数{B_2[i]}によって表され、上記第
3の整数Cの基数ビットが、C_1=C_1[n−1]
2^n^−^1+C_1[n−2]2^n^−^2+C
_1[n−3]2^n^−^3+・・・+C_1[1]
2+C_1[0]にてなる表示における2進数{C_1
[i]}によって表され、上記第3の整数Cのキャリー
ビットが、C_2=C_2[n−1]2^n^−^1+
C_2[n−2]2^n^−^2+C_2[n−3]2
^n^−^3+・・・+C_2[1]2+C_2[0]
にてなる表示における2進数{C_2[i]}によって
表され、上記第4の整数pが、 p=P[n−1]2^n^−^1+P[n−2]2^n
^−^2+P[n−3]2^n^−^3+・・・+P[
1]2+P[0]にてなる表示における2進数{P[i
]}によって表され、これによってC=A・B mod
pであり、上記モジュロ演算プロセッサチップが、 上記第1の整数Aの基数ビットを格納するための第1の
基数レジスタ手段と、 上記第1の整数Aのキャリービットを格納するための第
1のキャリーレジスタ手段と、 上記第2の整数Bの基数ビットを格納するための第2の
基数レジスタ手段と、 上記第2の整数Bのキャリービットを格納するための第
2のキャリーレジスタ手段と、 第1の帰還数F_1、第2の帰還数F_2、第3の帰還
数F_4及び第4の帰還数F_4を発生するための帰還
手段とを備え、上記第1の帰還数F_1が上記第4の整
数pの2の補数であり、これによってF_1=2^n−
pであり、上記第2の帰還数F_2が上記第1の帰還数
F_1の2倍に等しく、これによってF_2=2F_1
mod pであり、上記第3の帰還数F_3が上記第
1の帰還数F_1の3倍に等しく、これによってF_3
=3F_1 mod pであり、上記第4の帰還数F_
4が上記第1の帰還数F_1の4倍であり、これによっ
てF_4=4F_1 mod pであり、上記第2の基
数レジスタ手段と上記第2のキャリーレジスタ手段と上
記帰還手段に接続され、上記第2の基数レジスタ手段と
上記第2のキャリーレジスタ手段から左側にけた移動さ
れた上記第2の整数Bの最上位の基数ビットとキャリー
ビットに応答して上記第2の整数Bの左側にけた移動さ
れた基数ビットとキャリービットのうちの予め選択され
た選択に従って上記第1、第2、第3、又は第4の帰還
数を上記第2の整数Bに加算し、これによって上記第2
の整数Bの一部を変換するための第1の一部変換手段と
、 上記第1の基数レジスタ手段と上記第1のキャリーレジ
スタ手段と上記第2の基数レジスタ手段と上記第2のキ
ャリーレジスタ手段に接続される複数の全加算器を有し
、上記第1のレジスタ手段から右側にけた移動された第
1の整数Aの最下位に応答して、基数ビットとキャリー
ビットを有する第1の和を発生するために上記複数の全
加算器を用いて上記第2の整数Bの基数ビットとキャリ
ービットを同時に上記第3の整数Cの各基数ビットに加
算した後、上記複数の全加算器を用いて上記第1の和の
基数ビットとキャリービットを上記第3の整数Cの各キ
ャリービットに加算するための演算手段と、 上記演算手段に接続され上記第3の整数Cの基数ビット
を格納するためのアキュムレータ基数手段と、 上記演算手段に接続され上記第3の整数Cのキャリービ
ットを格納するためのアキュムレータキャリー手段と、 上記アキュムレータ手段に接続されオーバーフロー整数
Iを格納するためのオーバーフロー手段と、 上記オーバーフロー手段と上記帰還手段と上記第1の基
数レジスタ手段と上記第2の基数レジスタ手段に接続さ
れ、上記オーバーフロー整数I=1、2、3、又は4に
応答してそれぞれ上記帰還手段から出力される第1、第
2、第3、又は第4の帰還数を上記第2の基数レジスタ
手段にフェッチしそれぞれ、上記第1、第2、第3、又
は第4の帰還数をそれぞれ上記演算手段を用いて上記ア
キュムレータ基数手段と上記アキュムレータキャリー手
段に格納された第3の整数Cに加算するための第2の一
部変換手段と、 上記アキュムレータ基数手段に接続され上記第4の整数
pよりも大きい第3の整数Cに応答して上記第4の整数
pを法とする上記第3の整数Cの剰余に変換するための
手段を備えたことを特徴とするモジュロ演算プロッセサ
チップ。 (23)nビットの第1の整数Aをnビットの第2の整
数Bで乗算するためのモジュロ演算プロセッサチップで
あって、 上記第1の整数Aと上記第2の整数Bの乗算結果のデー
タに関するnビットの第4の整数pを法とする剰余がn
ビットの第3の整数Cに等しく、これによってC=A・
B mod pであり、上記モジュロ演算プロセッサチ
ップが、 上記第1の整数Aの基数ビットを格納するための第1の
基数レジスタ手段と、 上記第1の整数Aのキャリービットを格納するための第
1のキャリーレジスタ手段と、 上記第2の整数Bの基数ビットを格納するための第2の
基数レジスタ手段と、 上記第2の整数Bのキャリービットを格納するための第
2のキャリーレジスタ手段と、 第1の帰還数F_1、第2の帰還数F_2、第3の帰還
数F_3及び第4の帰還数F_4を発生するための帰還
手段とを備え、上記第1の帰還数F_1が上記第4の整
数pの2の補数であり、これによってF_1=2^n−
pであり、上記第2の帰還数F_2が上記第1の帰還数
F_1の2倍に等しく、これによってF_2=2F_1
mod pであり、上記第3の帰還数F_3が上記第
1の帰還数F_1の3倍に等しく、これによってF_3
=3F_1 mod pであり、上記第4の帰還数F_
4が上記第1の帰還数F_1の4倍であり、これによっ
てF_4=4F_1 mod pであり、上記第1の基
数レジスタ手段と上記第1のキャリーレジスタ手段と上
記第2の基数レジスタ手段と上記第2のキャリーレジス
タ手段に接続され、上記第1のレジスタ手段から右側に
けた移動された上記第1の整数Aの最下位に応答して基
数ビットとキャリービットを有する第1の和を発生する
ために上記第2の整数Bの基数ビットとキャリービット
を上記第3の整数Cの各基数ビットに加算した後、上記
第1の和の基数ビットとキャリービットに上記第3の整
数Cの各キャリービットに加算するための演算手段と、 上記演算手段に接続され上記第3の整数Cの基数ビット
を格納するためのアキュムレータ基数手段と、 上記演算手段に接続され上記第3の整数Cのキャリービ
ットを格納するためのアキュムレータキャリー手段と、 上記演算手段に接続されオーバーフロー整数Iを格納す
るためのオーバーフロー手段と、 上記オーバーフロー手段と上記帰還手段と上記第1の基
数レジスタ手段と上記第2の基数レジスタ手段に接続さ
れ、上記オーバーフロー整数I=1、2、3、又は4に
応答してそれぞれ上記帰還手段から出力される第1、第
2、第3、又は第4の帰還数を上記第2の基数レジスタ
手段にフェッチしそれぞれ、上記第1、第2、第3、又
は第4の帰還数をそれぞれ上記演算手段を用いて上記ア
キュムレータ基数手段と上記アキュムレータキャリー手
段に格納された第3の整数Cに加算するための第2の一
部変換手段と、 上記アキュムレータ基数手段に接続され上記第4の整数
pよりも大きい第3の整数Cに応答して上記第4の整数
pを法とする上記第3の整数Cの剰余に変換するための
手段とを備えたことを特徴とするモジュロ演算プロセッ
サチップ。 (24)上記演算手段が、上記第2の基数レジスタ手段
と上記第2のキャリーレジスタ手段に接続され基数ビッ
トとキャリービットを有する第1の和を発生するために
上記第2の整数Bの基数ビットとキャリービットを上記
第3の整数Cの基数ビットに同時に加算するための複数
の全加算器を含むことを特徴とする請求項第23項記載
のモジュロ演算プロセッサチップ。 (25)上記モジュロ演算プロセッサチップがさらに、 上記第1の和の基数ビットとキャリービットを上記第3
の整数Cのキャリービットに加算するために上記複数の
全加算器を制御するためのマルチプレクサ手段を備えた
ことを特徴とする請求項第24項記載のモジュロ演算プ
ロセッサチップ。 (26)nビットの第1の整数Aをnビットの第2の整
数Bで乗算するためのモジュロ演算プロセッサチップで
あって、 上記第1の整数Aと上記第2の整数Bの乗算結果のデー
タに関するnビットの第4の整数pを法とする剰余がn
ビットの第3の整数Cに等しく、これによってC=A・
B mod pであり、上記モジュロ演算プロセッサチ
ップが、 上記第1の整数Aの基数ビットを格納するための第1の
基数レジスタ手段と、 上記第1の整数Aのキャリービットを格納するための第
1のキャリーレジスタ手段と、 上記第2の整数Bの基数ビットを格納するための第2の
基数レジスタ手段と、 上記第2の整数Bのキャリービットを格納するための第
2のキャリーレジスタ手段と、 第1の帰還数F_1、第2の帰還数F_2、第3の帰還
数F_3及び第4の帰還数F_4を発生するための帰還
手段とを備え、上記第1の帰還数F_1が上記第4の整
数pの2の補数であり、これによってF_1=2^n−
pであり、上記第2の帰還数F_2が上記第1の帰還数
F_1の2倍に等しく、これによってFを=2F_1
mod pであり、上記第3の帰還数F_3が上記第1
の帰還数F_1の3倍に等しく、これによってF_3=
3F_1 mod pであり、上記第4の帰還数F_4
が上記第1の帰還数F_1の4倍であり、これによって
F_4=4F_1 mod pであり、上記第2の基数
レジスタ手段と上記第2のキャリーレジスタ手段と上記
帰還手段に接続され、上記第2の基数レジスタ手段と上
記第2のキャリーレジスタ手段から左側にけた移動され
た上記第2の整数Bの最上位の基数ビットとキャリービ
ットに応答して上記第2の整数Bの左側にけた移動され
た基数ビットとキャリービットのうちの予め選択された
選択に従って上記第1、第2、第3、又は第4の帰還数
を上記第2の整数Bに加算し、これによって上記第2の
整数Bの一部を変換するための第1の一部変換手段と、 上記第1の基数レジスタ手段と上記第1のキャリーレジ
スタ手段と上記第2の基数レジスタ手段と上記第2のキ
ャリーレジスタ手段に接続され、上記第1のレジスタ手
段から右側にけた移動された上記第1の整数Aの最下位
に応答して基数ビットとキャリービットを有する第1の
和を発生するために上記第2の整数Bの基数ビットとキ
ャリービットを上記第3の整数Cの各基数ビットに加算
した後、上記第1の和の基数ビットとキャリービットを
上記第3の整数Cの各キャリービットに加算するための
演算手段と、 上記アキュムレータ手段に接続され上記第3の整数Cの
基数ビットを格納するためのアキュムレータ基数手段と
、 上記アキュムレータ手段に接続され上記第3の整数Cの
キャリービットを格納するためのアキュムレータキャリ
ー手段と、 上記アキュムレータ手段に接続されオーバーフロー整数
Iを格納するためのオーバーフロー手段と、 上記アキュムレータ基数手段に接続され上記第4の整数
pよりも大きい第3の整数Cに応答して上記第4の整数
pを法とする上記第3の整数Cの剰余に変換するための
手段とを備えたモジュロ演算プロセッサチップ。 (27)上記演算手段が、上記第2の基数レジスタ手段
と上記第2のキャリーレジスタ手段に接続され、基数ビ
ットとキャリービットを有する第1の和を発生するため
に上記第2の整数Bの基数ビットとキャリービットを上
記第3の整数Cの基数ビットに同時に加算するための複
数の全加算器を含むことを特徴とする請求項第26項記
載のモジュロ演算プロセッサチップ。 (28)上記モジュロ演算プロセッサチップがさらに、 上記第1の和の基数ビットとキャリービットを上記第3
の整数Cのキャリービットに加算するために上記複数の
全加算器を制御するためのマルチプレクサ手段を含むこ
とを特徴とする請求項第27項記載のモジュロ演算プロ
セッサチップ。 (29)nビットの第1の整数Aをnビットの第2の整
数Bで乗算するためのモジュロ演算プロセッサチップで
あって、 上記第1の整数Aと上記第2の整数Bの乗算結果のデー
タに関するnビットの第4の整数pを法とする剰余がn
ビットの第3の整数Cに等しく、これによってC=A・
B mod pであり、上記モジュロ演算プロセッサチ
ップが、 上記第1の整数Aの基数ビットを格納するための第1の
基数レジスタ手段と、 上記第1の整数Aのキャリービットを格納するための第
1のキャリーレジスタ手段と、 上記第2の整数Bの基数ビットを格納するための第2の
基数レジスタ手段と、 上記第2の整数Bのキャリービットを格納するための第
2のキャリーレジスタ手段と、 第1の帰還数F_1を発生するための帰還手段を備え、
ここで、上記第1の帰還数F_が上記第4の整数pの2
の補数であり、これによってF_1=2^n−pであり
、 上記第1の基数レジスタ手段と上記第1のキャリーレジ
スタ手段と上記第2の基数レジスタ手段と上記第2のキ
ャリーレジスタ手段に接続され、上記第1のレジスタ手
段から右側にけた移動された上記第1の整数Aの最下位
に応答して基数ビットとキャリービットを有する第1の
和を発生するために上記第2の整数Bの基数ビットとキ
ャリービットを上記第3の整数Cの各基数ビットに加算
した後、上記第1の和の基数ビットとキャリービットを
上記第3の整数Cの各キャリービットに加算するための
演算手段と、 上記演算手段に接続され上記第3の整数Cの基数ビット
を格納するためのアキュムレータ基数手段と、 上記演算手段に接続され上記第3の整数キャリービット
を格納するためのアキュムレータキャリー手段と、 上記アキュムレータ手段に接続されオーバーフロー整数
Iを格納するためのオーバーフロー手段と、 上記アキュムレータ基数手段に接続され上記第4の整数
pよりも大きい第3の整数Cに応答して上記第4の整数
pを法とする上記第3の整数Cの剰余に変換するための
手段とを備えたことを特徴とするモジュロ演算プロセッ
サチップ。 (30)上記演算手段が、上記第2の基数レジスタ手段
と上記第2のキャリーレジスタ手段に接続され基数ビッ
トとキャリービットを有する第1の和を発生するために
上記第2の整数Bの基数ビットとキャリービットを上記
第3の整数Cの基数ビットに同時に加算するための複数
の全加算器を含むことを特徴とする請求項第29項記載
のモジュロ演算プロセッサチップ。 (31)上記モジュロ演算プロセッサチップがさらに、 上記第1の和の基数ビットとキャリービットを上記第3
の整数Cのキャリービットに加算するために複数の全加
算器を制御するためのマルチプレクサ手段を含むことを
特徴とする請求項第30項記載のモジュロ演算プロセッ
サチップ。 (32)nビットの第1の整数Aをnビットの第2の整
数Bで乗算するためのモジュロ演算プロセッサチップで
あって、 上記第1の整数Aと上記第2の整数Bの乗算結果のデー
タに関するnビットの第4の整数pを法とする剰余がn
ビットの第3の整数Cに等しく、上記第1の整数Aの基
数ビットが、 A_1=A_1[n−1]2^n^−^1+A1[n−
2]2^n^−^2+A_1[n−3]2^n^−^3
+・・・+A_1[1]2+A_1[0]にてなる表示
における2進数{A_1[i]}によって表され、上記
第1の整数Aのキャリービットが、A_2=A_2[n
−1]2^n^−^1+A_2[n−2]2^n^−^
2+A_2[n−3]2^n^−^3+・・・+A_2
[1]2+A_2[0]にてなる表示における2進数{
A_2[i]}によって表され、上記第2の整数Bの基
数ビットが、B_1=B_1[n−1]2^n^−^1
+B_1[n−2]2^n^−^2+B_1[n−3]
2^n^−^3+・・・+B_1[1]2+B_1[0
]にてなる表示における2進数{B_1[i]}によっ
て表され、上記第2の整数Bのキャリービットが、B_
2=B_2[n−1]2^n^−^1+B_2[n−2
]2^n^−^2+B_2[n−3]2^n^−^3+
・・・+B_2[1]2+B_2[0]にてなる表示に
おける2進数{B_2[i]}によって表され、上記第
3の整数Cの基数ビットが、C_1=C_1[n−1]
2^n^−^1+C_1[n−2]2^n^−^2+C
_1[n−3]2^n^−^3+・・・+C_1[1]
2+C_1[0]にてなる表示における2進数{C_1
[i]}によって表され、上記第3の整数Cのキャリー
ビットが、C_2=C_2[n−1]2^n^−^1+
C_2[n−2]2^n^−^2+C_2[n−3]2
^n^−^3+・・・+C_2[1]2+C_2[0]
にてなる表示における2進数{C_2[i]}によって
表され、上記第4の整数pが、 p=P[n−1]2^n^−^1+P[n−2]2^n
^−^2+P[n−3]2^n^−^3+・・・+P[
1]2+P[0]にてなる表示における2進数{P[i
]}によって表され、これによってC=A・B mod
pであり、上記モジュロ演算プロセッサチップが、 上記第1の整数Aの基数ビットを格納するための第1の
基数レジスタ手段と、 上記第1の整数Aのキャリービットを格納するための第
1のキャリーレジスタ手段と、 上記第2の整数Bの基数ビットを格納するための第2の
基数レジスタ手段と、 上記第2の整数Bのキャリービットを格納するための第
2のキャリーレジスタ手段と、 第1の帰還数F_1、第2の帰還数F_2、第3の帰還
数F_3及び第4の帰還数F_4を発生するための帰還
手段とを備え、上記第1の帰還数F_1が上記第4の整
数pの2の補数であり、これによってF_1=2^n−
pであり、上記第2の帰還数F_2が上記第1の帰還数
F_1の2倍に等しく、これによってF_2=2F_1
mod pであり、上記第3の帰還数F_3が上記第
1の帰還数F_1の3倍に等しく、これによってF_3
=3F_1 mod pであり、上記第4の帰還数F_
4が上記第1の帰還数F_1の4倍であり、これによっ
てF_4=4F_1 mod pであり、上記第2の基
数レジスタ手段と上記第2のキャリーレジスタ手段と上
記帰還手段に接続され、上記第2の基数レジスタ手段と
上記第2のキャリーレジスタ手段から左側にけた移動さ
れた上記第2の整数Bの最上位の基数ビットとキャリー
ビットに応答して上記第2の整数Bの左側にけた移動さ
れた基数ビットとキャリービットのうちの予め選択され
た選択に従って上記第1、第2、第3、又は第4の帰還
数を上記第2の整数Bに加算してこれによって上記第2
の整数Bの一部を変換するための第1の一部変換手段と
、 上記第1の基数レジスタ手段と上記第1のキャリーレジ
スタ手段と上記第2の基数レジスタ手段と上記第2のキ
ャリーレジスタ手段に接続される複数の全加算器を有し
、上記第1のレジスタ手段から右側にけた移動された第
1の整数Aの最下位に応答して、基数ビットとキャリー
ビットを有する第1の和を発生するために上記複数の全
加算器を用いて上記第2の整数Bの基数ビットとキャリ
ービットを同時に上記第3の整数Cの各基数ビットに加
算した後、上記複数の全加算器を用いて上記第1の和の
基数ビットとキャリービットを上記第3の整数Cの各キ
ャリービットに加算するための演算手段と、 上記演算手段に接続され上記第3の整数Cの基数ビット
を格納するためのアキュムレータ基数手段と、 上記演算手段に接続され上記第3の整数Cのキャリービ
ットを格納するためのアキュムレータキャリー手段と、 上記アキュムレータ手段に接続されオーバーフロー整数
Iを格納するためのオーバーフロー手段と、 上記オーバーフロー手段と上記帰還手段と上記第1の基
数レジスタ手段と上記第2の基数レジスタ手段に接続さ
れ、上記第1の整数Aと上記第2の整数Bとの乗算の終
了に応答して上記オーバーフロー整数Iを上記第1のレ
ジスタ手段に転送し上記第1の帰還数F_1を上記第2
のレジスタ手段に転送し、積を発生するために上記第1
の帰還数F_1を上記オーバーフロー整数Iで乗算し上
記積を上記アキュムレータ基数手段と上記アキュムレー
タキャリー手段に格納された上記第3の整数Cに加算す
るための第2の一部変換手段と、 上記アキュムレータ基数手段に接続され上記第4の整数
pよりも大きい上記第3の整数Cに応答して上記第4の
整数pを法とする上記第3の整数Cの剰余に変換するた
めの手段とを備えたことを特徴とするモジュロ演算プロ
セッサチップ。 (33)nビットの第1の整数Aをnビットの第2の整
数Bで乗算するためのモジュロ演算プロセッサチップで
あって、 上記第1の整数Aと上記第2の整数Bの乗算結果のデー
タに関するnビットの第4の整数pを法とする剰余がn
ビットの第3の整数Cに等しく、これによってC=A・
B mod pであり、上記モジュロ演算プロセッサチ
ップが、 上記第1の整数Aの基数ビットを格納するための第1の
基数レジスタ手段と、 上記第1の整数Aのキャリービットを格納するための第
1のキャリーレジスタ手段と、 上記第2の整数Bの基数ビットを格納するための第2の
基数レジスタ手段と、 上記第2の整数Bのキャリービットを格納するための第
2のキャリーレジスタ手段と、 第1の帰還数F_1、第2の帰還数F_2、第3の帰還
数F_3及び第4の帰還数F_4を発生するための帰還
手段とを備え、上記第1の帰還数F_1が上記第4の整
数pの2の補数であり、これによってF_1=2^n−
pであり、上記第2の帰還数F_2が上記第1の帰還数
F_1の2倍に等しく、これによってF_2=2F_1
mod pであり、上記第3の帰還数F_3が上記第
1の帰還数F_1の3倍に等しく、これによってF_3
=3F_1 mod pであり、上記第4の帰還数F_
4が上記第1の帰還数F_1の4倍であり、これによっ
てF_4=4F_1 mod pであり、上記第1の基
数レジスタ手段と上記第1のキャリーレジスタ手段と上
記第2の基数レジスタ手段と上記第2のキャリーレジス
タ手段に接続され上記第1のレジスタ手段から右側にけ
た移動された上記第1の整数Aの最下位に応答して基数
ビットとキャリービットを有する第1の和を発生するた
めに上記第2の整数Bの基数ビットとキャリービットを
上記第3の整数Cの各基数ビットに加算した後、上記第
1の和の基数ビットとキャリービットを上記第3の整数
Cの各キャリービットに加算するための演算手段と、 上記演算手段に接続され上記第3の整数Cの基数ビット
を格納するためのアキュムレータ基数手段と、 上記演算手段に接続され上記第3の整数Cのキャリービ
ットを格納するためのアキュムレータキャリー手段と、 上記アキュムレータ手段に接続されオーバーフロー整数
Iを格納するためのオーバーフロー手段と、 上記オーバーフロー手段と上記帰還手段と上記第1の基
数レジスタ手段と上記第2の基数レジスタ手段に接続さ
れ、上記第1の整数Aと上記第2の整数Bの乗算の終了
に応答して上記オーバーフロー整数Iを上記第1のレジ
スタ手段に転送し上記第1の帰還数F_1を上記第2の
レジスタ手段に転送し、積を発生するために上記第1の
帰還数F_1を上記オーバーフロー整数Iで乗算し上記
積を上記アキュムレータ基数手段と上記アキュムレータ
キャリー手段に格納された第3の整数Cに加算するため
の第2の一部変換手段と、 上記アキュムレータ基数手段に接続され上記第4の整数
pよりも大きい第3の整数Cに応答して上記第4の整数
pを法とする上記第3の整数Cに変換するための手段を
備えたことを特徴とするモジュロ演算プロセッサチップ
。 (34)上記演算手段が、上記第2の基数レジスタ手段
と上記第2のキャリーレジスタ手段に接続され、基数ビ
ットとキャリービットを有する第1の和を発生するため
に上記第2の整数Bの基数ビットとキャリービットを上
記第3の整数Cの基数ビットに加算するための複数の全
加算器を含むことを特徴とする請求項第33項記載のモ
ジュロ演算プロセッサチップ。 (35)上記モジュロ演算プロセッサチップがさらに、 上記第1の和の基数ビットとキャリービットを上記第3
の整数Cのキャリービットに加算するために複数の全加
算器を制御するためのマルチプレクサ手段を含むことを
特徴とする請求項第34項記載のモジュロ演算プロセッ
サチップ。[Claims] (1) An X register having L bits for storing an n-bit integer X, and a Y register having L bits for storing an n-bit integer Y.
a register, first and second A registers each having L bits, converting an n-bit integer means for storing another integer in said first and second A registers; and control means connected to said first and second A registers for generating a control signal, each storing L bits. first and second B registers for storing L bits, respectively; first and second B registers and first and second C registers for storing L bits, respectively; The data stored in the first and second B registers are shifted to the left in response to a control signal of a "1" bit connected to the control means.
Adds to the data stored in the register and adds “0” to the data stored in the register.
a full adder for shifting the data stored in the first and second B registers to the left in response to a control signal of the `` bit; and an L bit for storing an n-bit feedback number; means for generating a feedback number from an n-bit integer p and storing the feedback number in the feedback register; and a modulo means for converting the data bits stored in the first and second C registers to a remainder modulo an integer p, and the data bits stored in the first and second C registers to an L-bit integer. Convert the above L-bit integer to the above Y
and means for storing in a register. (2) An X register with L bits to store an n-bit integer X, and a Y register with L bits to store an n-bit integer Y.
a register, first and second A registers each having L bits, converting an n-bit integer means for storing another integer in said first and second registers A; and control means connected to said first and second A registers for generating a control signal, each storing L bits. first and second B registers for storing L bits, respectively; first and second B registers and first and second C registers for storing L bits, respectively; In response to a "1" bit control signal connected to the control means, the data stored in the first and second B registers are added to the data stored in the first and second C registers, respectively. a full adder for converting the data bits stored in the first and second C registers into an L-bit integer, and converting the L-bit integer into the Y-bit integer.
and means for storing in a register. (3) The device further comprises an L-bit feedback register for storing an n-bit feedback number, and means for generating a feedback number from an n-bit integer p and storing the feedback number in the feedback register. , connected to the feedback register and the first and second C registers;
3. Apparatus as claimed in claim 2, further comprising modulo means for converting the data bits stored in the C register of the register into a remainder modulo an integer p. (4) The device further comprises means for performing index calculation on a ring consisting of remainders of integers modulo an integer p from a series of multiplications of remainders modulo an integer p according to the following formula: An apparatus for performing multiplication on a ring consisting of remainders of integers modulo an integer p according to claim 1. X^Z=X^Z^[^0^](X^Z^[^1^]{X
^^Z^[^2^]...(X^2^^m^^-^^3)
^Z^ [^m^-^1^]}^2}^2 (5) The above device further includes an overflow counter connected to the full adder and for counting the overflow value I output from the counter. and wherein the full adder adds I2^n to the first and second C registers by replacing 2^n with the feedback number F_1 and then adding IF_1 to an accumulator register. The device according to item 1. (6) The device further includes an overflow counter connected to the full adder for counting an overflow value I output from the full adder, and the full adder calculates 2^n by the feedback number F_1. 3. Apparatus according to claim 2, characterized in that I2^n is added to said first and second C registers by adding IF_1 to an accumulator register after replacement. (7) The device further includes an overflow counter connected to the full adder for counting an overflow value I output from the full adder, and the full adder calculates 2^n by the feedback number F_1. 4. The apparatus of claim 3, wherein I2^n is added to said first and second C registers by adding IF_1 to an accumulator register after replacement. (8) A modulo arithmetic processor chip for adding an n-bit first integer A to an n-bit second integer B, wherein the second integer B is added to the first integer A. The remainder modulo the n-bit fourth integer p regarding the added data is the third
is equal to the integer C, and the above first integer A is A=A[n-1]2^n^-^1+A[n-2]2^n
^-^2+A[n-3]2^n^-^3+...+A[
1]2+A[0] It is represented by the binary number {A[i]} in the representation,
The above second integer B is B=B[n-1]2^n^-^1+B[n-2]2^n
^-^2+B[n-3]2^n^-^3+...+B[
1]2+B[0] Represented by the binary number {B[i]} in the representation,
The third integer C above is C=C[n-1]2^n^-^1+C[n-2]2^n
^-^2+C[n-3]2^n^-^3+...+C[
1]2+C[0] Represented by the binary number {C[i]} in the representation,
The above fourth integer p is p=P[n-1]2^n^-^1+P[n-2]2^n
^-^2+P[n-3]2^n^-^3+...+P[
1]2+P[0] It is represented by the binary number {P[i]} in the representation,
Thereby, C=(A+B) mod p, and the modulo arithmetic processor chip has a first register means for storing the first integer A and a second register means for storing the second integer B. 2 register means, and feedback means for generating and storing a feedback number F, said feedback number F being the two's complement of said fourth integer p, whereby F=2^n-p. and an arithmetic means connected to the first register means and the second register means for generating a third integer C by adding the first integer A to the second integer B; , an accumulator means connected to the arithmetic means and for storing the third integer C, an overflow means connected to the accumulator means and for storing an overflow integer, and the overflow means and the second register means. is connected to, in response to the overflow integer, fetches the feedback number F into the second register B, and uses the arithmetic means to add the feedback number F to the third integer C stored in the accumulator means. means connected to the accumulator means for converting the third integer C modulo the fourth integer p into a remainder of the third integer C modulo the fourth integer p in response to the third integer C being greater than the fourth integer p; A modulo arithmetic processor chip comprising means for and. (9) The calculation means includes the first register and the second register.
9. The modulo arithmetic processor chip according to claim 8, further comprising a plurality of full adders connected to the register for adding the first integer A to the second integer B. (10) The calculation means includes a plurality of half adders connected to the first register means and the second register means for adding the first integer A to the second integer B. The modulo arithmetic processor chip according to claim 8, characterized in that: (11) A modulo arithmetic processor chip for adding an n-bit first integer A to an n-bit second integer B, the data obtained by adding the second integer B to the first integer A. The remainder of the n-bit fourth integer p modulo is equal to the n-bit third integer C, and the base bit of the first integer A is A_1=A_1[n-1]2^n^- ^1+A_1[n
-2]2^n^-^2+A_1[n-3]2^n^-^
It is represented by a binary number {A_1[i]} in the representation of 3+...+A_1[1]2+A_1[0], and the carry bit of the first integer A is A_2=A_2[
n-1]2^n^-^1+A_2[n-2]2^n^-
^2+A_2[n-3]2^n^-^3+...+A_
It is represented by a binary number {A_2[i]} in the representation of 2[1]2+A_2[0], and the radix bit of the second integer B is B_1=B_1[n-1]2^n^-^
1+B_1[n-2]2^n^-^2+B_1[n-3
]2^n^-^3+...+B_1[1]2+B_1[
0], and the carry bit of the second integer B is B_
2=B_2[n-1]2^n^-^1+B_2[n-2
]2^n^-^2+B_2[n-3]2^n^-^3+
...+B_2[1]2+B_2[0], represented by the binary number {B_2[i]}, and the radix bit of the third integer C is C_1=C_1[n-1]
2^n^-^1+C_1[n-2]2^n^-^2+C
_1[n-3]2^n^-^3+...+C_1[1]
Binary number in the representation consisting of 2+C_1[0] {C_1
[i]}, and the carry bit of the third integer C is C_2=C_2[n-1]2^n^-^1+
C_2[n-2]2^n^-^2+C_2[n-3]2
^n^-^3+...+C_2[1]2+C_2[0]
It is represented by a binary number {C_2[i]} in the representation, and the fourth integer p is expressed as p=P[n-1]2^n^-^1+P[n-2]2^n
^-^2+P[n-3]2^n^-^3+...+P[
1] Binary number in the representation consisting of 2+P[0] {P[i
]}, thereby C=(A+B)mo
d p, and the modulo arithmetic processor chip is
first radix register means for storing a radix bit of said first integer A; first carry register means for storing a carry bit of said first integer A; and said second integer B. second radix register means for storing the radix bit of the second integer B; second carry register means for storing the carry bit of the second integer B; a first feedback number F_1, a second feedback number F_2, feedback means for generating a third feedback number F_3 and a fourth feedback number F_4, wherein the first feedback number F_1 is a two's complement of the fourth integer p, whereby F_1 =2^n-
p, and the second feedback number F_2 is equal to twice the first feedback number F_1, so that F_2=2F_1
mod p, and the third feedback number F_3 is equal to three times the first feedback number F_1, so that F_3
=3F_1 mod p, and the fourth feedback number F_
4 is four times said first feedback number F_1, thereby F_4=4F_1 mod p, said first radix register means, said first carry register means, said second radix register means and said a plurality of full adders connected to a second carry register means; using the plurality of full adders to generate a first sum having a radix bit and a carry bit; after simultaneously adding the radix bit and carry bit of the second integer B to each radix bit of the second integer B, using the plurality of full adders to generate the radix bit and carry bit of the third integer C, respectively. arithmetic means for adding the radix bit and carry bit of the first sum to each carry bit of the second integer B, and a means connected to the arithmetic means for storing the radix bit of the third integer C; an accumulator radix means for counting overflow bits, an accumulator carry means connected to the arithmetic means for storing a carry bit of the third integer C; overflow means connected to said overflow means, said second radix register means and said feedback means for storing said overflow integer I=I;
After fetching the feedback number F_1, F_2, F_3, or F_4 outputted from the feedback means in response to 1, 2, 3, or 4 into the second radix register means, the feedback number F_1, F_2, F_3, or F_4 output from the feedback means in response to number F_1, F_2, F_3, or F
_4 to the third integer C stored in the accumulator base means and the accumulator carry means, respectively.
means for adding to said third integer C modulo said fourth integer p connected to said accumulator base means and responsive to a third integer C greater than said fourth integer p; A modulo arithmetic processor chip, comprising: means for converting into a remainder. (12) A modulo arithmetic processor chip for adding an n-bit first integer to an n-bit second integer B, which relates to data obtained by adding the second integer B to the first integer A. The remainder modulo the n-bit fourth integer p is equal to the n-bit third integer C, and the base bit of the first integer A is A_1=A,_1[n-1]2^n^ -^1+A_1[
n-2] 2^n^-^2+A_1[n-3]2^n^-
It is represented by a binary number {A_1[i]} in the representation of ^3+...+A_1[1]2+A_1[0],
The carry bit of the first integer A is A_2=A_2
[n-1]2^n^-^1+A_2[n-2]2^n^
-^2+A_2[n-3]2^n^-^3+...+A
It is represented by the binary number {A_2[i]} in the representation consisting of _2[1]2+A_2[0], and the second integer B is
The radix bit of B_1=B_1[n-1]2^n^-
^1+B_1[n-2]2^n^-^2+B_1[n-
3] 2^n^-^3+...+B_1[1]2+B_1
It is represented by the binary number {B_1[i]} in the representation of [0], and the carry bit of the second integer B is
B_2=B_2[n-1]2^n^-^1+B_2[n
-2]2^n^-^2+B_2[n-3]2^n^-^
It is represented by a binary number {B_2[i]} in the representation consisting of 3+...+B_2[1]2+B_2[0], and the radix bit of the third integer C is C_1=C_1[n-
1] 2^n^-^1+C_1[n-2]2^n^-^2
+C_1[n-3]2^n^-^3+...+C_1[
1] Binary number in the representation consisting of 2+C_1[0] {C
_1[i]}, and the carry bit of the third integer C is C_2=C_2[n-1]2^n^-^
1+C_2[n-2]2^n^-^2+C_2[n-3
]2^n^-^3+...+C_2[1]2+C_2[
0], and the fourth integer p is expressed as p=P[n-1]2^n^-^1+P[n-2]2^n
^-^2+P[n-3]2^n^-^3+...+P[
1] Binary number in the representation consisting of 2+P[0] {P[i
]}, thereby C=(A+B)mo
d p, and the modulo arithmetic processor chip is
first radix register means for storing a radix bit of said first integer A; first carry register means for storing a carry bit of said first integer A; and said second integer B. second radix register means for storing a radix bit of said second integer B; second carry register means for storing a carry bit of said second integer B; and feedback means for generating a feedback number F. , where the feedback number F is the two's complement of the fourth integer p,
As a result, F=2^n-p, which is connected to the first radix register means, the first carry register means, the second radix register means, and the second carry register means, and is connected to the radix bit and the carry register means. the first with bits
After simultaneously adding the radix bit and carry bit of the first integer A to each radix bit of the second integer B to generate the sum of , the radix bit and carry bit of the third integer C are generated. arithmetic means for adding the radix bit and carry bit of the first sum to each carry bit of the second integer B, respectively, and a radix bit of the third integer C connected to the arithmetic means; accumulator radix means for storing a carry bit of the third integer C; accumulator carry means connected to the arithmetic means for storing a carry bit of the third integer C; overflow means for counting and storing as an overflow integer I; and an overflow means connected to the overflow means, the second radix means and the feedback means for fetching a feedback number F output from the feedback means in response to the overflow integer. After that,
means for adding the feedback number F to the third integer C; A modulo arithmetic processor chip characterized by comprising means for converting into a remainder of a third integer C modulo C. (13) The calculation means is connected to the first radix register means, the first carry register means, the second radix register means, and the second carry register means and has a radix bit and a carry bit. After simultaneously adding the radix bit and carry bit of said first integer A to each radix bit of said second integer B to generate a sum of 1, the radix bit and carry bit of said first sum are 13. The modulo arithmetic processor chip of claim 12, further comprising a plurality of full adders for storing in the radix accumulator means and said carry accumulator means, respectively. (14) The modulo arithmetic processor chip further includes the plurality of full adders, the first radix register means, the first carry register means, the second radix register means, and the second carry register means. said radix accumulator means and said carry accumulator means, said radix and carry bits of a first sum stored in said radix accumulator means and said carry accumulator means for generating said third integer C simultaneously. after adding to the carry bit of the second integer B, switching the plurality of full adders to store the radix bit and the carry bit of the third integer C in the radix accumulator means and the carry accumulator means, respectively; 14. The modulo arithmetic processor chip of claim 13, further comprising multiplexer means. (15) A modulo arithmetic processor chip for multiplying an n-bit first integer by an n-bit second integer B, the data of the multiplication result of the first integer A and the second integer B. The remainder modulo the n-bit fourth integer p is n
equal to the third integer C of bits, and the first integer A above is A=A[n-1]2^n^-^1+A[n-2]2^n
^-^2+A[n-3]2^n^-^3+...+A[
1] Binary number in the representation consisting of 2+A[0] {A[i
]}, and the second integer B is expressed as B=B[n-1]2^n^-^1+B[n-2]2^n
^-^2+B[n-3]2^n^-^3+...+B[
1] Binary number in the representation consisting of 2+B[0] {B[i
]}, and the third integer C is expressed as C=C[n-1]2^n^-^1+C[n-2]2^n
^-^2+C[n-3]2^n^-^3+...+C[
1] Binary number in the representation consisting of 2+C[0] {C[i
]}, and the fourth integer p is expressed as p=P[n-1]2^n^-^1+P[n-2]2^n
^-^2+P[n-3]2^n^-^3+...+P[
1] Binary number in the representation consisting of 2+P[0] {P[i
]}, thereby C=A・B mod
p, and the modulo arithmetic processor chip has a first register means for storing the first integer A, a second register for storing the second integer B, and a feedback number F. feedback means for generating a feedback number F, wherein said feedback number F is the two's complement of a fourth integer p, such that F=2^n-p, and is connected to said second register means. said feedback number F in response to the most significant of said second integer B being shifted to the left from said second register means;
a first partial conversion means for adding to said second integer B and thereby converting a portion of said second integer B; and connected to said first register means and said second register means; arithmetic means for adding the second integer B to the third integer C in response to the lowest digit of the first integer A that has been shifted to the right from the first register means; accumulator means connected to the means for storing said third integer C; overflow means connected to said accumulator means for counting and storing overflow bits as an overflow integer I; said first register means and said a second register means, the overflow means and the arithmetic means; the overflow integer I is connected to the first register means in response to the completion of the multiplication of the first integer A and the second integer B; transfer said feedback number F to said second register means, multiply said feedback number F by an overflow integer I to generate a product, and said product is transferred to said third register means stored in said accumulator means. second partial conversion means for adding to an integer C; and second partial conversion means connected to said accumulator means and responsive to said third integer C being greater than said fourth integer p to modulo said fourth integer p. and means for converting the third integer C into a remainder. (16) A modulo arithmetic processor chip for multiplying an n-bit first integer A by an n-bit second integer B, the chip comprising: a multiplication result of the first integer A and the second integer B; The remainder modulo the n-bit fourth integer p regarding the data is n
equal to the third integer C of bits, and the first integer A above is A=A[n-1]2^n^-^1+A[n-2]2^n
^-^2+A[n-3]2^n^-^3+...+A[
1] Binary number in the representation consisting of 2+A[0] {A[i
]}, and the second integer B is expressed as B=B[n-1]2^n^-^1+B[n-2]2^n
^-^2+B[n-3]2^n^-^3+...+B[
1] Binary number in the representation consisting of 2+B[0] {B[i
]}, and the third integer C is expressed as C=C[n-1]2^n^-^1+C[n-2]2^n
^-^2+C[n-3]2^n^-^3+...+C[
1] Binary number in the representation consisting of 2+C[0] {C[i
]}, and the fourth integer p is expressed as p=P[n-1]2^n^-^1+P[n-2]2^n
^-^2+P[n-3]2^n^-^3+...+P[
1] Binary number in the representation consisting of 2+P[0] {P[i
]}, thereby C=A・B mod
p, and the modulo arithmetic processor chip has a first register means for storing the first integer A, a second register for storing the second integer B, and a feedback number F. feedback means for generating, wherein said feedback number F is the two's complement of a fourth integer p, such that F=2^n-p; 2 register means for adding said second integer B to said third integer C in response to the lowest order of said first integer A being shifted to the right from said first register means; arithmetic means connected to the arithmetic means and for storing the third integer C; overflow means connected to the accumulator means for counting and storing overflow bits as an overflow integer; means connected to said feedback means, said first register means, and said second register means for transmitting said overflow integer I to said first integer I in response to the completion of the multiplication of said first integer A and said second integer B; transferring said feedback number F to said second register means, multiplying said feedback number F by said overflow integer I to generate a product, and said product being stored in said accumulator means. a second partial conversion means for adding to a third integer C; and a second partial conversion means connected to the accumulator means to modulate the fourth integer p in response to a third integer C greater than the fourth integer p. a modulo arithmetic processor chip, comprising means for converting the third integer C into a remainder. (17) Claim characterized in that the arithmetic means includes a plurality of full adders connected to the second register means for simultaneously adding the second integer B to the third integer C. 17. The modulo arithmetic processor chip according to item 16. (18) Claim characterized in that the arithmetic means includes a plurality of half adders connected to the second register means for simultaneously adding the second integer B to the third integer C. 17. The modulo arithmetic processor chip according to item 16. (19) A modulo arithmetic processor chip for multiplying an n-bit first integer A by an n-bit second integer B, wherein the multiplication result of the first integer A and the second integer B is The remainder modulo the n-bit fourth integer p regarding the data is n
equal to the third integer C of bits, and the first integer A above is A=A[n-1]2^n^-^1+A[n-2]2^n
^-^2+A[n-3]2^n^-^3+...+A[
1] Binary number in the representation consisting of 2+A[0] {A[i
]}, and the second integer B is expressed as B=B[n-1]2^n^-^1+B[n-2]2^n
^-^2+B[n-3]2^n^-^3+...+B[
1] Binary number in the representation consisting of 2+B[0] {B[i
]}, and the third integer C is expressed as C=C[n-1]2^n^-^1+C[n-2]2^n
^-^2+C[n-3]2^n^-^3+...+C[
1] Binary number in the representation consisting of 2+C[0] {C[i
]}, and the fourth integer p is expressed as p=P[n-1]2^n^-^1+P[n-2]2^n
^-^2+P[n-3]2^n^-^3+...+P[
1] Binary number in the representation consisting of 2+P[0] {P[i
]}, thereby C=A・B mod
p, and the modulo arithmetic processor chip has a first register means for storing the first integer A, a second register for storing the second integer B, and a feedback number F. feedback means for generating a feedback number F, wherein said feedback number F is the two's complement of a fourth integer p, such that F=2^n-p, and is connected to said second register means. , adds the feedback number F to the second integer B in response to the most significant second integer B being shifted to the left from the second register means, thereby increasing the number of the second integer B. a first partial conversion means for converting a portion; and a first integer A shifted to the right from said first register means and connected to said first register means and said second register means. arithmetic means for adding the second integer B to the third integer C in response to the lowest integer; and accumulator means connected to the arithmetic means for storing the third integer C; means connected to the accumulator means and responsive to a third integer C greater than the fourth integer p for converting it into a remainder of the third integer C modulo the fourth integer p. A modulo arithmetic processor chip. (20) Claim characterized in that the arithmetic means includes a plurality of full adders connected to the second register means for simultaneously adding the second integer B to the third integer C. 20. The modulo arithmetic processor chip according to item 19. (21) Claim characterized in that the arithmetic means includes a plurality of half adders connected to the second register means for simultaneously adding the second integer B to the third integer C. 20. The modulo arithmetic processor chip according to item 19. (22) A modulo arithmetic processor chip for multiplying an n-bit first integer A by an n-bit second integer B, the chip comprising: a multiplication result of the first integer A and the second integer B; The remainder modulo the n-bit fourth integer p regarding the data is n
is equal to the third integer C of bits, and the base bit of the first integer A is: A_1=A_1[n-1]2^n^-^1+A_1[n
-2]2^n^-^2+A_1[n-3]2^n^-^
It is represented by a binary number {A, [i]} in the representation consisting of 3+...+A_1[1]2+A_1[0], and the carry bit of the first integer A is A_2=A_2[n
-1]2^n^-^1+A_2[n-2]2^n^-^
2+A_2[n-3]2^n^-^3+...+A_2
[1] Binary number expressed as 2+A_2[0] {
A_2[i]}, and the radix bit of the second integer B is B_1=B_1[n-1]2^n^-^1
+B_1[n-2]2^n^-^2+B_1[n-3]
2^n^-^3+...+B_1[1]2+B_1[0
], and the carry bit of the second integer B is B_
2=B_2[n-1]2^n^-^1+B_2[n-2
]2^n^-^2+B_2[n-3]2^n^-^3+
...+B_2[1]2+B_2[0], represented by the binary number {B_2[i]}, and the radix bit of the third integer C is C_1=C_1[n-1]
2^n^-^1+C_1[n-2]2^n^-^2+C
_1[n-3]2^n^-^3+...+C_1[1]
Binary number in the representation consisting of 2+C_1[0] {C_1
[i]}, and the carry bit of the third integer C is C_2=C_2[n-1]2^n^-^1+
C_2[n-2]2^n^-^2+C_2[n-3]2
^n^-^3+...+C_2[1]2+C_2[0]
It is represented by a binary number {C_2[i]} in the representation, and the fourth integer p is expressed as p=P[n-1]2^n^-^1+P[n-2]2^n
^-^2+P[n-3]2^n^-^3+...+P[
1] Binary number in the representation consisting of 2+P[0] {P[i
]}, thereby C=A・B mod
p, and the modulo arithmetic processor chip comprises a first radix register means for storing a radix bit of the first integer A, and a first radix register means for storing a carry bit of the first integer A. carry register means; second radix register means for storing a radix bit of said second integer B; second carry register means for storing a carry bit of said second integer B; 1 feedback number F_1, a second feedback number F_2, a third feedback number F_4, and a fourth feedback number F_4, wherein the first feedback number F_1 is the fourth integer. It is the two's complement of p, which makes F_1=2^n-
p, and the second feedback number F_2 is equal to twice the first feedback number F_1, so that F_2=2F_1
mod p, and the third feedback number F_3 is equal to three times the first feedback number F_1, so that F_3
=3F_1 mod p, and the fourth feedback number F_
4 is four times the first feedback number F_1, so that F_4=4F_1 mod p, and is connected to the second radix register means, the second carry register means and the feedback means, moving the second integer B to the left in response to the most significant radix bit and carry bit of the second integer B being moved leftward from the radix register means of 2 and the second carry register means; adding said first, second, third, or fourth feedback number to said second integer B according to a preselected selection of said radix bit and carry bit, thereby said second integer number B;
a first partial conversion means for converting a part of the integer B; the first radix register means, the first carry register means, the second radix register means and the second carry register; a plurality of full adders connected to said first register means, responsive to the least significant of said first integer A being shifted to the right from said first register means; After simultaneously adding the radix bit and carry bit of the second integer B to each radix bit of the third integer C using the plurality of full adders to generate a sum, the plurality of full adders arithmetic means for adding the radix bit and carry bit of the first sum to each carry bit of the third integer C using accumulator radix means for storing; accumulator carry means connected to said arithmetic means for storing a carry bit of said third integer C; and overflow means connected to said accumulator means for storing an overflow integer I. and said feedback means connected to said overflow means, said feedback means, said first radix register means and said second radix register means, respectively in response to said overflow integer I=1, 2, 3, or 4. fetches the first, second, third, or fourth feedback number outputted from the first, second, third, or fourth feedback number into the second radix register means, and respectively fetches the first, second, third, or fourth feedback number from a second partial conversion means for adding the third integer C stored in the accumulator radix means and the accumulator carry means using the arithmetic means; A modulo arithmetic processor chip characterized by comprising means for converting a third integer C larger than p into a remainder of the third integer C modulo the fourth integer p. . (23) A modulo arithmetic processor chip for multiplying an n-bit first integer A by an n-bit second integer B, the chip comprising: a multiplication result of the first integer A and the second integer B; The remainder modulo the n-bit fourth integer p regarding the data is n
equal to the third integer number C of bits, thereby making C=A・
B mod p, and the modulo arithmetic processor chip includes a first radix register means for storing a radix bit of the first integer A, and a first radix register means for storing a carry bit of the first integer A. 1 carry register means; second radix register means for storing the radix bits of the second integer B; and second carry register means for storing the carry bits of the second integer B. , feedback means for generating a first feedback number F_1, a second feedback number F_2, a third feedback number F_3, and a fourth feedback number F_4, wherein the first feedback number F_1 is the fourth feedback number F_4. is the two's complement of the integer p, which makes F_1=2^n-
p, and the second feedback number F_2 is equal to twice the first feedback number F_1, so that F_2=2F_1
mod p, and the third feedback number F_3 is equal to three times the first feedback number F_1, so that F_3
=3F_1 mod p, and the fourth feedback number F_
4 is four times said first feedback number F_1, thereby F_4=4F_1 mod p, said first radix register means, said first carry register means, said second radix register means and said a second carry register means for generating a first sum having a radix bit and a carry bit in response to the least significant of said first integer A shifted to the right from said first register means; After adding the radix bit and carry bit of the second integer B to each radix bit of the third integer C, add each radix bit and carry bit of the third integer C to the radix bit and carry bit of the first sum. an arithmetic means for adding to a carry bit; an accumulator radix means connected to the arithmetic means and for storing the radix bit of the third integer C; and an accumulator radix means connected to the arithmetic means and a carry of the third integer C. an accumulator carry means for storing bits; an overflow means connected to the arithmetic means and for storing an overflow integer I; the overflow means, the feedback means, the first radix register means and the second radix. said first, second, third, or fourth feedback number connected to said register means and output from said feedback means in response to said overflow integer I=1, 2, 3, or 4, respectively; a third integer stored in the accumulator radix means and the accumulator carry means by respectively fetching the first, second, third, or fourth feedback number into the radix register means using the arithmetic means. second partial conversion means for adding to C modulo said fourth integer p in response to a third integer C connected to said accumulator base means and greater than said fourth integer p; and means for converting the third integer C into a remainder. (24) The arithmetic means is connected to the second radix register means and the second carry register means to calculate the radix of the second integer B for generating a first sum having a radix bit and a carry bit. 24. The modulo arithmetic processor chip of claim 23, further comprising a plurality of full adders for simultaneously adding bits and carry bits to the radix bits of the third integer C. (25) The modulo arithmetic processor chip further converts the radix bit and carry bit of the first sum into the third
25. The modulo arithmetic processor chip of claim 24, further comprising multiplexer means for controlling said plurality of full adders to add to the carry bit of an integer C. (26) A modulo arithmetic processor chip for multiplying an n-bit first integer A by an n-bit second integer B, the chip comprising: a multiplication result of the first integer A and the second integer B; The remainder modulo the n-bit fourth integer p regarding the data is n
equal to the third integer number C of bits, thereby making C=A・
B mod p, and the modulo arithmetic processor chip includes a first radix register means for storing a radix bit of the first integer A, and a first radix register means for storing a carry bit of the first integer A. 1 carry register means; second radix register means for storing the radix bits of the second integer B; and second carry register means for storing the carry bits of the second integer B. , feedback means for generating a first feedback number F_1, a second feedback number F_2, a third feedback number F_3, and a fourth feedback number F_4, wherein the first feedback number F_1 is the fourth feedback number F_4. is the two's complement of the integer p, which makes F_1=2^n-
p, and said second feedback number F_2 is equal to twice said first feedback number F_1, thereby making F=2F_1
mod p, and the third feedback number F_3 is the first feedback number F_3.
is equal to three times the feedback number F_1, which makes F_3=
3F_1 mod p, and the fourth feedback number F_4 is
is four times said first feedback number F_1, thereby F_4=4F_1 mod p, and is connected to said second radix register means, said second carry register means and said feedback means, said second and said second integer B is shifted to the left in response to the most significant radix bit and carry bit of said second integer B that is shifted to the left from said radix register means and said second carry register means. adding said first, second, third, or fourth feedback number to said second integer B according to a preselected selection of a base bit and a carry bit, thereby adding said second integer B to said second integer B; a first partial conversion means for converting a portion of the digits; and connected to the first radix register means, the first carry register means, the second radix register means and the second carry register means. said second integer B to generate a first sum having a radix bit and a carry bit in response to the least significant of said first integer A being shifted to the right from said first register means. an operation for adding the radix bit and carry bit of the first sum to each radix bit of the third integer C, and then adding the radix bit and carry bit of the first sum to each carry bit of the third integer C; means, an accumulator radix means connected to said accumulator means for storing a radix bit of said third integer C; and an accumulator carry connected to said accumulator means for storing a carry bit of said third integer C. overflow means connected to said accumulator means for storing an overflow integer I; and overflow means connected to said accumulator radix means for storing said fourth integer C greater than said fourth integer p. and means for converting the third integer C into a remainder modulo the integer p. (27) said arithmetic means is connected to said second radix register means and said second carry register means and said second integer B for generating a first sum having a radix bit and a carry bit; 27. The modulo arithmetic processor chip of claim 26, further comprising a plurality of full adders for simultaneously adding a radix bit and a carry bit to the radix bit of the third integer C. (28) The modulo arithmetic processor chip further converts the radix bit and carry bit of the first sum into the third
28. The modulo arithmetic processor chip of claim 27, further comprising multiplexer means for controlling said plurality of full adders to add to a carry bit of an integer C. (29) A modulo arithmetic processor chip for multiplying an n-bit first integer A by an n-bit second integer B, the chip comprising: a multiplication result of the first integer A and the second integer B; The remainder modulo the n-bit fourth integer p regarding the data is n
equal to the third integer number C of bits, thereby making C=A・
B mod p, and the modulo arithmetic processor chip includes a first radix register means for storing a radix bit of the first integer A, and a first radix register means for storing a carry bit of the first integer A. 1 carry register means; second radix register means for storing the radix bits of the second integer B; and second carry register means for storing the carry bits of the second integer B. , comprising feedback means for generating a first feedback number F_1,
Here, the first feedback number F_ is 2 of the fourth integer p.
, thereby F_1=2^n-p, and is connected to the first radix register means, the first carry register means, the second radix register means, and the second carry register means. said second integer B to generate a first sum having a radix bit and a carry bit in response to the least significant of said first integer A being shifted to the right from said first register means. an operation for adding the radix bit and carry bit of the first sum to each radix bit of the third integer C, and then adding the radix bit and carry bit of the first sum to each carry bit of the third integer C; means; accumulator radix means connected to said arithmetic means for storing the radix bits of said third integer C; and accumulator carry means connected to said arithmetic means for storing said third integer carry bits. , overflow means connected to said accumulator means for storing an overflow integer I; and said fourth integer p connected to said accumulator radix means in response to a third integer C greater than said fourth integer p. and means for converting the third integer C into a remainder modulo C. (30) The arithmetic means is connected to the second radix register means and the second carry register means to calculate the radix of the second integer B for generating a first sum having a radix bit and a carry bit. 30. The modulo arithmetic processor chip of claim 29, further comprising a plurality of full adders for simultaneously adding bits and carry bits to the radix bits of the third integer C. (31) The modulo arithmetic processor chip further converts the radix bit and carry bit of the first sum into the third
31. The modulo arithmetic processor chip of claim 30, further comprising multiplexer means for controlling a plurality of full adders to add to the carry bit of the integer C. (32) A modulo arithmetic processor chip for multiplying an n-bit first integer A by an n-bit second integer B, the chip comprising: a multiplication result of the first integer A and the second integer B; The remainder modulo the n-bit fourth integer p regarding the data is n
is equal to the third integer C of bits, and the base bit of the first integer A is: A_1=A_1[n-1]2^n^-^1+A1[n-
2] 2^n^-^2+A_1[n-3]2^n^-^3
+...+A_1[1]2+A_1[0], represented by the binary number {A_1[i]}, and the carry bit of the first integer A is A_2=A_2[n
-1]2^n^-^1+A_2[n-2]2^n^-^
2+A_2[n-3]2^n^-^3+...+A_2
[1] Binary number expressed as 2+A_2[0] {
A_2[i]}, and the radix bit of the second integer B is B_1=B_1[n-1]2^n^-^1
+B_1[n-2]2^n^-^2+B_1[n-3]
2^n^-^3+...+B_1[1]2+B_1[0
], and the carry bit of the second integer B is B_
2=B_2[n-1]2^n^-^1+B_2[n-2
]2^n^-^2+B_2[n-3]2^n^-^3+
...+B_2[1]2+B_2[0], represented by the binary number {B_2[i]}, and the radix bit of the third integer C is C_1=C_1[n-1]
2^n^-^1+C_1[n-2]2^n^-^2+C
_1[n-3]2^n^-^3+...+C_1[1]
Binary number in the representation consisting of 2+C_1[0] {C_1
[i]}, and the carry bit of the third integer C is C_2=C_2[n-1]2^n^-^1+
C_2[n-2]2^n^-^2+C_2[n-3]2
^n^-^3+...+C_2[1]2+C_2[0]
It is represented by a binary number {C_2[i]} in the representation, and the fourth integer p is expressed as p=P[n-1]2^n^-^1+P[n-2]2^n
^-^2+P[n-3]2^n^-^3+...+P[
1] Binary number in the representation consisting of 2+P[0] {P[i
]}, thereby C=A・B mod
p, and the modulo arithmetic processor chip comprises a first radix register means for storing a radix bit of the first integer A, and a first radix register means for storing a carry bit of the first integer A. carry register means; second radix register means for storing a radix bit of said second integer B; second carry register means for storing a carry bit of said second integer B; a feedback means for generating a feedback number F_1, a second feedback number F_2, a third feedback number F_3, and a fourth feedback number F_4, wherein the first feedback number F_1 is the fourth integer. It is the two's complement of p, which makes F_1=2^n-
p, and the second feedback number F_2 is equal to twice the first feedback number F_1, so that F_2=2F_1
mod p, and the third feedback number F_3 is equal to three times the first feedback number F_1, so that F_3
=3F_1 mod p, and the fourth feedback number F_
4 is four times the first feedback number F_1, so that F_4=4F_1 mod p, and is connected to the second radix register means, the second carry register means and the feedback means, moving the second integer B to the left in response to the most significant radix bit and carry bit of the second integer B being moved leftward from the radix register means of 2 and the second carry register means; adding the first, second, third, or fourth feedback number to the second integer B according to a preselected selection of the radix bit and carry bit, thereby
a first partial conversion means for converting a part of the integer B; the first radix register means, the first carry register means, the second radix register means and the second carry register; a plurality of full adders connected to said first register means, responsive to the least significant of said first integer A being shifted to the right from said first register means; After simultaneously adding the radix bit and carry bit of the second integer B to each radix bit of the third integer C using the plurality of full adders to generate a sum, the plurality of full adders arithmetic means for adding the radix bit and carry bit of the first sum to each carry bit of the third integer C using accumulator radix means for storing; accumulator carry means connected to said arithmetic means for storing a carry bit of said third integer C; and overflow means connected to said accumulator means for storing an overflow integer I. and is connected to the overflow means, the feedback means, the first radix register means, and the second radix register means, and is responsive to completion of the multiplication of the first integer A and the second integer B. transfers the overflow integer I to the first register means and transfers the first feedback number F_1 to the second register means.
the first register means for generating the product.
a second partial conversion means for multiplying the feedback number F_1 of by the overflow integer I and adding the product to the third integer C stored in the accumulator base means and the accumulator carry means; means connected to the radix means for converting the third integer C, which is larger than the fourth integer p, into a remainder of the third integer C modulo the fourth integer p; A modulo arithmetic processor chip. (33) A modulo arithmetic processor chip for multiplying an n-bit first integer A by an n-bit second integer B, the chip comprising: a multiplication result of the first integer A and the second integer B; The remainder modulo the n-bit fourth integer p regarding the data is n
equal to the third integer number C of bits, thereby making C=A・
B mod p, and the modulo arithmetic processor chip includes a first radix register means for storing a radix bit of the first integer A, and a first radix register means for storing a carry bit of the first integer A. 1 carry register means; second radix register means for storing the radix bits of the second integer B; and second carry register means for storing the carry bits of the second integer B. , feedback means for generating a first feedback number F_1, a second feedback number F_2, a third feedback number F_3, and a fourth feedback number F_4, wherein the first feedback number F_1 is the fourth feedback number F_4. is the two's complement of the integer p, which makes F_1=2^n-
p, and the second feedback number F_2 is equal to twice the first feedback number F_1, so that F_2=2F_1
mod p, and the third feedback number F_3 is equal to three times the first feedback number F_1, so that F_3
=3F_1 mod p, and the fourth feedback number F_
4 is four times said first feedback number F_1, thereby F_4=4F_1 mod p, said first radix register means, said first carry register means, said second radix register means and said for generating a first sum having a radix bit and a carry bit in response to the least significant of said first integer A being shifted to the right from said first register means connected to a second carry register means; After adding the radix bit and carry bit of the second integer B to each radix bit of the third integer C, the radix bit and carry bit of the first sum are added to each carry bit of the third integer C. arithmetic means for adding to bits; accumulator radix means connected to said arithmetic means for storing radix bits of said third integer C; and carry bits of said third integer C connected to said arithmetic means. accumulator carry means for storing an overflow integer I; overflow means connected to the accumulator means for storing an overflow integer I; the overflow means, the feedback means, the first radix register means and the second radix register. means for transferring said overflow integer I to said first register means in response to completion of the multiplication of said first integer A and said second integer B; 2, the first feedback number F_1 is multiplied by the overflow integer I to generate a product, and the product is transferred to a third integer C stored in the accumulator base means and the accumulator carry means. second partial conversion means connected to said accumulator base means for adding to said fourth integer p modulo said fourth integer p in response to a third integer C greater than said fourth integer p; A modulo arithmetic processor chip, characterized in that it comprises means for converting into a third integer C. (34) said arithmetic means is connected to said second radix register means and said second carry register means and said second integer B for generating a first sum having a radix bit and a carry bit; 34. The modulo arithmetic processor chip of claim 33, further comprising a plurality of full adders for adding a radix bit and a carry bit to the radix bit of the third integer C. (35) The modulo arithmetic processor chip further converts the radix bit and carry bit of the first sum into the third
35. The modulo arithmetic processor chip of claim 34, including multiplexer means for controlling a plurality of full adders to add to the carry bit of the integer C.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US2166087A | 1987-03-04 | 1987-03-04 | |
US021,660 | 1987-03-04 | ||
US14232888A | 1988-01-04 | 1988-01-04 | |
US142,328 | 1988-01-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS63282777A true JPS63282777A (en) | 1988-11-18 |
Family
ID=26694972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5230088A Pending JPS63282777A (en) | 1987-03-04 | 1988-03-03 | Modulo computation processor chip |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS63282777A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999030250A1 (en) * | 1997-12-10 | 1999-06-17 | Seiko Epson Corporation | Information processing system, enciphering/deciphering system, system lsi, and electronic apparatus |
JP2010102351A (en) * | 2003-05-16 | 2010-05-06 | Analog Devices Inc | Compound galois field engine and galois field divider and square root engine and method |
JP2011146052A (en) * | 2001-11-30 | 2011-07-28 | Analog Devices Inc | Galois field multiply/multiply-add/multiply-accumulate operation device |
-
1988
- 1988-03-03 JP JP5230088A patent/JPS63282777A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999030250A1 (en) * | 1997-12-10 | 1999-06-17 | Seiko Epson Corporation | Information processing system, enciphering/deciphering system, system lsi, and electronic apparatus |
US7117237B2 (en) | 1997-12-10 | 2006-10-03 | Seiko Epson Corporation | Information processing system, encryption/decryption system, system LSI, and electronic equipment |
JP2011146052A (en) * | 2001-11-30 | 2011-07-28 | Analog Devices Inc | Galois field multiply/multiply-add/multiply-accumulate operation device |
JP2010102351A (en) * | 2003-05-16 | 2010-05-06 | Analog Devices Inc | Compound galois field engine and galois field divider and square root engine and method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4891781A (en) | Modulo arithmetic processor chip | |
US6356636B1 (en) | Circuit and method for fast modular multiplication | |
US6182104B1 (en) | Circuit and method of modulo multiplication | |
US5210710A (en) | Modulo arithmetic processor chip | |
US8793300B2 (en) | Montgomery multiplication circuit | |
CN100527072C (en) | Device and method for carrying out montgomery mode multiply | |
JP2005250481A (en) | Extended montgomery modular multiplier supporting multiple precision | |
Ding et al. | A low-latency and low-cost Montgomery modular multiplier based on NLP multiplication | |
US20060008081A1 (en) | Modular-multiplication computing unit and information-processing unit | |
Dimitrov et al. | Area-efficient multipliers based on multiple-radix representations | |
Liu et al. | High performance modular multiplication for SIDH | |
Abd-Elkader et al. | Efficient implementation of Montgomery modular multiplier on FPGA | |
JP4180024B2 (en) | Multiplication remainder calculator and information processing apparatus | |
Tian et al. | Fast modular multipliers for supersingular isogeny-based post-quantum cryptography | |
KR100508092B1 (en) | Modular multiplication circuit with low power | |
Abdulrahman et al. | High-speed hybrid-double multiplication architectures using new serial-out bit-level mastrovito multipliers | |
TW448376B (en) | Circuit and method cryptographic multiplication for computing the RSA and ECC algorithms | |
JPH05324277A (en) | Code communication method | |
US20110270902A1 (en) | Efficient Multipliers Based on Multiple-Radix Representations | |
JPS63282777A (en) | Modulo computation processor chip | |
KR100478974B1 (en) | Serial finite-field multiplier | |
JP3823107B2 (en) | Basis transformation method and basis transformation device in finite field | |
EP0281303A2 (en) | Modulo arithmetic processor chip | |
Lu et al. | A programmable VLSI architecture for computing multiplication and polynomial evaluation modulo a positive integer | |
JPH03661B2 (en) |