[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JPH08147266A - Method and device for calculating power remainder - Google Patents

Method and device for calculating power remainder

Info

Publication number
JPH08147266A
JPH08147266A JP28685394A JP28685394A JPH08147266A JP H08147266 A JPH08147266 A JP H08147266A JP 28685394 A JP28685394 A JP 28685394A JP 28685394 A JP28685394 A JP 28685394A JP H08147266 A JPH08147266 A JP H08147266A
Authority
JP
Japan
Prior art keywords
data
storage means
bits
data storage
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP28685394A
Other languages
Japanese (ja)
Other versions
JP3555091B2 (en
Inventor
Shinji Ishii
晋司 石井
Kiyoshi Yamanaka
喜義 山中
Katsuichi Oyama
勝一 大山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
N T T ELECTRON TECHNOL KK
Nippon Telegraph and Telephone Corp
NTT ElectronicsTechno Corp
Original Assignee
N T T ELECTRON TECHNOL KK
Nippon Telegraph and Telephone Corp
NTT ElectronicsTechno Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by N T T ELECTRON TECHNOL KK, Nippon Telegraph and Telephone Corp, NTT ElectronicsTechno Corp filed Critical N T T ELECTRON TECHNOL KK
Priority to JP28685394A priority Critical patent/JP3555091B2/en
Publication of JPH08147266A publication Critical patent/JPH08147266A/en
Application granted granted Critical
Publication of JP3555091B2 publication Critical patent/JP3555091B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

PURPOSE: To provide the method and device for enabling the arithmetic of a power remainder due to a redundant binary arithmetic method even when the most significant bit of a normal is not '1'. CONSTITUTION: When a normal N is inputted, the leading position of a bit '1' in the normal N is detected by a first octet leading '1' detecting part 8, that position is shifted to high order by a bit shift amount deciding part 9 and a bit shift part 11 for input and stored in a normal N register 21 so that the most significant bit can be '1' and when outputting a remainder R, the remainder R stored in a remainder R register 24 is shifted to low order just for the same number of bits as the input time of the normal N and outputted by the bit shift amount deciding part 9 and a bit shift part 16 for output.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、冗長2進演算方法を利
用して桁数の多い羃乗剰余演算を高速に行う方法及びそ
の装置に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method and apparatus for performing a high-order modular exponentiation operation with a large number of digits at high speed by utilizing a redundant binary operation method.

【0002】[0002]

【従来の技術】羃乗剰余演算は乗算及び剰余算の繰返し
により実行できるが、桁数の多い乗算及び剰余算を高速
に行おうとすると、桁上がり・桁借りのキャリーの伝搬
遅延の問題が顕著になる。そこで、従来より、キャリー
の伝搬を防ぐ工夫をなした演算方法が種々提案されてい
るが、そのうちの一つに冗長2進演算方法がある(例え
ば、IEEE JOURNAL OF SOLID-STATE CIRCUITS, Vol.25,
No.3, June, 1990, A.Vandemeulebroecke, E.Vanzieleg
hem, T.Denayer and P.G.A.Jespers“A New Carry-Free
Division Algorithm and its Application to a Singl
e-Chip 1024-b RSA Processor ”参照)。
2. Description of the Related Art A power-residue calculation can be executed by repeating multiplication and residue calculation. However, when performing multiplication and residue calculation with a large number of digits at high speed, the problem of carry propagation delay for carry / borrow carry becomes remarkable. become. Therefore, conventionally, various calculation methods have been proposed which are designed to prevent carry propagation. One of them is a redundant binary calculation method (for example, IEEE JOURNAL OF SOLID-STATE CIRCUITS, Vol.25). ,
No.3, June, 1990, A.Vandemeulebroecke, E.Vanzieleg
hem, T. Denayer and PGAJespers “A New Carry-Free
Division Algorithm and its Application to a Singl
e-Chip 1024-b RSA Processor ”).

【0003】[0003]

【発明が解決しようとする課題】ところが、この冗長2
進演算方法では、除算や剰余算を行う場合、法の最上位
ビットが常に“1”でなければならないという制約があ
り、その結果、法のビット数が限定されてしまうという
問題があった。
However, this redundancy 2
In the base operation method, there is a constraint that the most significant bit of the modulus must always be "1" when performing division or remainder calculation, and as a result, the number of bits of the modulus is limited.

【0004】本発明の目的は、法の最上位ビットが
“1”でなくても冗長2進演算方法による羃乗剰余演算
を可能とする方法及びその装置を提供することにある。
It is an object of the present invention to provide a method and apparatus for enabling a power-residue operation by a redundant binary operation method even if the most significant bit of the modulus is not "1".

【0005】[0005]

【課題を解決するための手段】本発明では、前記目的を
達成するため、法Nと該法N以下の自然数からなる数A
及び羃指数Bとを入力し、法Nがdビットに限定される
冗長2進演算方法を利用して羃乗剰余演算R=AB mod
Nを行い、少なくとも演算結果の剰余Rを出力する羃乗
剰余演算方法及び装置において、法Nのデータを上位か
らmビット毎に入力用前段データ記憶手段に取り込むと
ともに該法Nのデータが何mビット入力されたかをデー
タカウント手段で計測し、入力用前段データ記憶手段に
最初に取り込まれたデータの先頭から何ビット目に最初
に“1”が現れたかを検出し、該検出したビット数をビ
ットシフト量として決定し、入力用前段データ記憶手段
内のデータを入力用後段データ記憶手段に順次転送し、
入力用前段データ記憶手段内のデータを下位mビットと
し入力用後段データ記憶手段内のデータを上位mビット
として、その2mビットを前記ビットシフト量だけ上位
にシフトし、該シフトした後の2mビットのデータの上
位mビットをmビットシフトデータ記憶手段に格納し、
法Nのデータ入力完了後、データカウント手段の値とm
ビットシフトデータ記憶手段の容量/mとの差分をシフ
ト量としてシフト量記憶手段に記憶し、mビットシフト
データ記憶手段のデータをシフト量記憶手段の値だけ上
位にmビット単位にシフトして法記憶手段に記憶し、数
Aのデータを上位からmビット毎に入力用前段データ記
憶手段に取り込むとともに該数Aのデータが何mビット
入力されたかをデータカウント手段で計測し、入力用前
段データ記憶手段内のデータを入力用後段データ記憶手
段に順次転送し、入力用前段データ記憶手段内のデータ
を下位mビットとし入力用後段データ記憶手段内のデー
タを上位mビットとして、その2mビットを前記ビット
シフト量だけ上位にシフトし、該シフトした後の2mビ
ットのデータの上位mビットをmビットシフトデータ記
憶手段に格納し、数Aのデータ入力完了後、mビットシ
フトデータ記憶手段のデータをシフト量記憶手段の値だ
け上位にmビット単位にシフトして数記憶手段に記憶
し、羃指数Bのデータを羃指数記憶手段に直接取り込ん
で記憶するとともに該羃指数Bのデータが何ビット入力
されたかをデータカウント手段で計測して記憶し、記憶
された法N、数A及び羃指数Bのデータを使用して冗長
2進演算手段に羃乗剰余演算を行わせ、演算結果の剰余
Rを剰余記憶手段に記憶し、剰余記憶手段より剰余Rの
データを上位からmビット毎に出力用前段データ記憶手
段に取り込み、出力用前段データ記憶手段内のデータを
出力用後段データ記憶手段に順次転送し、出力用前段デ
ータ記憶手段内のデータを下位mビットとし出力用後段
データ記憶手段内のデータを上位mビットとして、その
2mビットを前記ビットシフト量だけ下位にシフトして
出力することを特徴とする。
In the present invention, in order to achieve the above object, a number A consisting of a modulus N and a natural number equal to or less than the modulus N is used.
, And a power exponent B, and a modulo exponentiation operation R = A B mod using the redundant binary operation method in which the modulus N is limited to d bits.
In a power-and-residue calculation method and apparatus for performing N and outputting at least the remainder R of the calculation result, the data of the modulus N is fetched into the input front stage data storage means for every m bits from the higher order, and the data of the modulus N is calculated by Whether or not a bit is input is measured by the data count means, and it is detected at which bit from the beginning of the data first fetched in the input front stage data storage means, "1" first appears, and the detected number of bits is determined. Determined as a bit shift amount, sequentially transferring the data in the input front stage data storage means to the input rear stage data storage means,
The data in the input front stage data storage means is the lower m bits, the data in the input rear stage data storage means is the upper m bits, and the 2 m bits are shifted to the upper side by the bit shift amount, and 2 m bits after the shift. Storing the upper m bits of the data of m in the m-bit shift data storage means,
After the completion of the data input of the law N, the value of the data counting means and m
The difference from the capacity / m of the bit shift data storage means is stored in the shift amount storage means as a shift amount, and the data of the m bit shift data storage means is shifted upward by the value of the shift amount storage means in units of m bits to obtain the modulus. The data of the number A is stored in the storage means, and the data of the number A is fetched into the input front-stage data storage means every m bits, and the number of m bits of the data of the number A is input is measured by the data count means to obtain the input front-stage data. The data in the storage means is sequentially transferred to the input rear stage data storage means, the data in the input front stage data storage means is the lower m bits, the data in the input rear stage data storage means is the upper m bits, and the 2 m bits are Shifting to the upper part by the bit shift amount, and storing the upper m bits of the shifted 2m-bit data in the m-bit shift data storage means, After the data input of A is completed, the data of the m-bit shift data storage means is shifted upward by the value of the shift amount storage means in units of m bits and stored in the number storage means, and the data of the power exponent B is stored in the power exponent storage means. The number of bits of the data of the power exponent B is directly fetched and stored, measured and stored by the data counting means, and the stored binary data of the modulus N, the number A, and the power exponent B is used for the redundant binary. The arithmetic means is caused to perform a power-residue operation, the remainder R of the operation result is stored in the remainder storage means, and the data of the remainder R is fetched from the remainder storage means into the output preceding stage data storage means for every m bits from the higher order and output. The data in the front stage data storage means is sequentially transferred to the output rear stage data storage means, and the data in the output front stage data storage means is set to the lower m bits, and the data in the output rear stage data storage means is set to the upper m bits. As bets, and outputs shifted to lower its 2m bits only the bit shift amount.

【0006】[0006]

【作用】従来の冗長2進演算方法を利用した演算器では
法の最上位ビットを“1”に制限している。そのため、
法のビット数も一意に限定されてしまう。一方、本発明
の羃乗剰余演算方法及び装置によれば、法を任意にシフ
トして入力する手段を有し、これを利用することにより
法を格納する時は最上位ビットが必ず“1”になるよう
にすることができる。従って、法レジスタのビット長以
下であればいかなるビット長でも羃乗剰余演算を実行す
ることが可能になり、冗長2進数を利用した羃乗剰余演
算を法におけるビット長を限定することなく行うことが
できるようになる。
In the arithmetic unit using the conventional redundant binary arithmetic method, the most significant bit of the modulus is limited to "1". for that reason,
The number of modal bits is also uniquely limited. On the other hand, according to the modular exponentiation operation method and apparatus of the present invention, it has means for arbitrarily shifting and inputting the modulus, and by using this, the most significant bit is always "1" when storing the modulus. Can be. Therefore, it is possible to execute a power-residue operation with any bit length as long as it is equal to or less than the bit length of the modulus register, and to perform a power-residue operation using a redundant binary number without limiting the bit length in the modulus. Will be able to.

【0007】[0007]

【実施例】従来から多数ビット長で高速処理が必要な四
則演算に用いられてきた冗長2進演算器に、本発明のパ
ラメタの入出力補正部を加えることにより、法レジスタ
以下のビット長であれば、法のビット長に制限のない羃
乗剰余演算を行うことができる。
DESCRIPTION OF THE PREFERRED EMBODIMENTS By adding a parameter input / output correction unit of the present invention to a redundant binary arithmetic unit which has been conventionally used for four arithmetic operations having a large number of bits and requiring high-speed processing, a bit length equal to or smaller than a modulus register can be obtained. If so, it is possible to perform a modular exponentiation operation with no limit on the bit length of the modulus.

【0008】まず、乗算及び剰余算を組み合わせること
により、法を任意のビット長とした羃乗剰余演算が実行
可能であることを示す。
First, it is shown that the modular exponentiation operation with a modulo arbitrary bit length can be executed by combining multiplication and remainder calculation.

【0009】羃乗剰余演算R=AB mod Nは、kビット
の羃指数Bのデータが入力された時、k≧i≧1なるi
を用いて、 B=bk ×2k-1 +bk-1 ×2k-2 +……+bi ×2i-1 +…… +b2 ×21 +b1 ×20 とし、 で求めることができる。即ち、羃乗剰余演算は乗算及び
剰余算の繰り返しにより求めることができる。
The power-residue calculation R = A B mod N is such that k ≧ i ≧ 1 when k-bit power exponent B data is input.
Using, and B = b k × 2 k- 1 + b k-1 × 2 k-2 + ...... + b i × 2 i-1 + ...... + b 2 × 2 1 + b 1 × 2 0, Can be obtained by That is, the power-residue calculation can be obtained by repeating multiplication and remainder calculation.

【0010】この演算処理を冗長2進演算方法により実
行するには、法Nのビット長が冗長2進演算器のビット
長と等しくなければならないことは前述した通りである
が、法Nのビット長が冗長2進演算器のビット長より短
い時、N・2j が冗長2進演算器のビット長と等しくな
るようにjを決定し、 を実行すれば、目的のR=AB mod Nの演算を実行する
ことができる。
As described above, the bit length of the modulus N must be equal to the bit length of the redundant binary arithmetic unit in order to execute this arithmetic processing by the redundant binary arithmetic method. When the length is shorter than the bit length of the redundant binary arithmetic unit, j is determined so that N · 2 j is equal to the bit length of the redundant binary arithmetic unit, By executing, the target operation of R = A B mod N can be executed.

【0011】羃乗剰余演算としてAB mod Nの演算を行
い、演算結果の剰余Rを出力する例について述べる。こ
の例は以下のフェーズに分けることができる。 (1)演算に必要な3つのパラメタのパラメタレジスタ
への入力 (2)冗長2進演算部へ各パラメタを入力するためのパ
ラメタ変換 (3)冗長2進演算部での羃乗剰余演算 (4)演算結果の出力 以下、各フェーズ毎に説明する。
[0011] performs an operation of A B mod N as羃乗remainder operation, describes an example of outputting the remainder R of the calculation result. This example can be divided into the following phases: (1) Input of three parameters required for operation to parameter register (2) Parameter conversion for inputting each parameter to redundant binary operation unit (3) Power-residue operation in redundant binary operation unit (4 ) Output of Calculation Result Hereinafter, each phase will be described.

【0012】図1は本発明の一実施例を示すもので、図
中、1はパラメタ入出力補正部、2はパラメタレジスタ
部、3はパラメタ変換部、4は改良型冗長2進演算部、
5は状態遷移制御部である。
FIG. 1 shows an embodiment of the present invention, in which 1 is a parameter input / output correction unit, 2 is a parameter register unit, 3 is a parameter conversion unit, 4 is an improved redundant binary arithmetic unit,
Reference numeral 5 is a state transition control unit.

【0013】図2はパラメタ入出力補正部1及びパラメ
タレジスタ部2の詳細を示すもので、ここではデータの
入出力を8ビットのデータバスで行う例を示す。
FIG. 2 shows the details of the parameter input / output correction unit 1 and the parameter register unit 2. Here, an example is shown in which data input / output is performed by an 8-bit data bus.

【0014】カウンタ部6は入力される8ビットのデー
タをカウントアップする。入力用前段バッファ部7は8
ビットのデータを蓄積するレジスタである。第1オクテ
ット先頭“1”検出部8は8ビットのデータの先頭から
何ビット目に“1”があるかを検出する。ビットシフト
量決定部9は第1オクテット先頭“1”検出部8の値か
らビットシフト量を決定する。入力用後段バッファ部1
0は8ビットのデータを蓄積するレジスタである。
The counter section 6 counts up the input 8-bit data. The input front stage buffer unit 7 has 8
This is a register that stores bit data. The first "1" octet detecting unit 8 detects which bit from the beginning of 8-bit data has "1". The bit shift amount determination unit 9 determines the bit shift amount from the value of the first octet head “1” detection unit 8. Input post-stage buffer unit 1
0 is a register that stores 8-bit data.

【0015】入力用ビットシフト部11は16ビット入
力で上位8ビット出力のバレルレジスタであり、シフト
量はビットシフト量決定部9で決まる。バイトシフト部
12は8ビットデータを上位に1バイト単位で任意にシ
フトさせることができるレジスタである。バイトシフト
量記憶部13は法N及び数A入力時のバイトシフト量を
記憶しておく。
The input bit shift unit 11 is a barrel register having a 16-bit input and an upper 8-bit output, and the shift amount is determined by the bit shift amount determining unit 9. The byte shift unit 12 is a register capable of arbitrarily shifting 8-bit data to the higher order in 1-byte units. The byte shift amount storage unit 13 stores the byte shift amount when the modulus N and the number A are input.

【0016】出力用前段バッファ部14は8ビットのデ
ータを蓄積するレジスタである。出力用後段バッファ部
15は8ビットのデータを蓄積するレジスタである。出
力用ビットシフト部16は16ビット入力で上位8ビッ
ト出力のバレルレジスタであり、シフト量はビットシフ
ト量決定部9で決まる。
The output front-stage buffer section 14 is a register for accumulating 8-bit data. The output post-stage buffer unit 15 is a register that stores 8-bit data. The output bit shift unit 16 is a barrel register with 16-bit input and upper 8-bit output, and the shift amount is determined by the bit shift amount determination unit 9.

【0017】法Nレジスタ21は法Nを格納しておくレ
ジスタである。数Aレジスタ22は数Aを格納しておく
レジスタである。羃指数Bレジスタ23は羃指数Bを格
納しておくレジスタである。剰余Rレジスタ24は演算
結果の剰余Rを格納しておくレジスタである。
The modulus N register 21 is a register for storing the modulus N. The number A register 22 is a register for storing the number A. The power index B register 23 is a register for storing the power index B. The remainder R register 24 is a register for storing the remainder R of the calculation result.

【0018】また、図3はパラメタ変換部3及び改良型
冗長2進演算部4の詳細を示すものである。
FIG. 3 shows details of the parameter conversion unit 3 and the improved redundant binary arithmetic unit 4.

【0019】冗長2進表現の法Nレジスタ31は冗長2
進表現の法Nを格納しておくレジスタである。冗長2進
表現の数Aレジスタ32は冗長2進表現の数Aを格納し
ておくレジスタである。冗長2進表現の剰余Rレジスタ
33は冗長2進表現の剰余Rを格納しておくレジスタで
ある。初期化回路34は剰余Rレジスタ24を初期化す
る。レジスタ35は羃指数Bのビット長を格納する。レ
ジスタ36は法Nのビット長(n)を格納する。
Redundant binary representation modulo N register 31 is redundant 2
This is a register for storing the modulo N of the decimal notation. The redundant binary representation number A register 32 is a register for storing the redundant binary representation number A. The redundant binary representation remainder R register 33 is a register for storing the redundant binary representation remainder R. The initialization circuit 34 initializes the remainder R register 24. The register 35 stores the bit length of the power index B. The register 36 stores the modulo N bit length (n).

【0020】改良型冗長2進演算部4は従来から用いら
れている冗長2進演算回路のパラメタ入力を改良したも
のである。冗長2進数乗算部41は冗長2進数による乗
算を実行する。冗長2進数除算部42は冗長2進数によ
る除算を実行する。冗長2進数乗算パラメタ入力部43
は冗長2進表現の剰余Rもしくは数Aを乗数として冗長
2進数乗算部41に入力する。被乗数レジスタ44は冗
長2進表現の剰余Rを被乗数として冗長2進数乗算部4
1に入力する。被除数レジスタ45は冗長2進表現の法
Nを被除数として冗長2進数除算部42に入力する。冗
長2進数演算途中結果レジスタ46は冗長2進表現の演
算途中結果を格納する。演算途中結果レジスタ47は通
常の2進数による演算途中結果を格納する。
The improved redundant binary operation unit 4 is an improvement of the parameter input of the redundant binary operation circuit which has been conventionally used. The redundant binary number multiplication unit 41 executes multiplication by the redundant binary number. The redundant binary number division unit 42 executes division by the redundant binary number. Redundant binary multiplication parameter input unit 43
Is input to the redundant binary number multiplication unit 41 by using the remainder R or the number A of the redundant binary representation as a multiplier. The multiplicand register 44 uses the remainder R of the redundant binary representation as the multiplicand to generate the redundant binary number multiplication unit 4
Enter 1. The dividend register 45 inputs the modulus N of the redundant binary representation as the dividend to the redundant binary number division unit 42. The redundant binary number intermediate calculation result register 46 stores the intermediate calculation result in the redundant binary representation. The intermediate calculation result register 47 stores the intermediate calculation result in a normal binary number.

【0021】図4は本実施例の全体的な動作フローチャ
ートを、また、図5は羃乗剰余演算時の詳細な動作フロ
ーチャートを示すもので、以下、これらに従って動作を
説明する。
FIG. 4 shows an overall operation flowchart of the present embodiment, and FIG. 5 shows a detailed operation flowchart at the time of modular exponentiation calculation. The operation will be described below according to these.

【0022】(1)演算に必要な3つのパラメタのパラ
メタレジスタへの入力 まず、演算の前にパラメタの入力を開始する(S1)。
ここで、状態遷移制御部5は入力バイト数を数えるカウ
ンタ部6の初期化を指示する。状態遷移制御部5は入力
パラメタが法Nあるいは羃指数Bの入力か否か(S2)
及び法Nか否か(S3)によって指示内容が異なるが、
最初は法Nの入力を行うものと仮定する。また、以降、
状態遷移制御部5はパラメタの入力が終了するまでカウ
ンタ部6にカウントアップを指示する。
(1) Input of Three Parameters Required for Calculation into Parameter Register First, input of parameters is started before the calculation (S1).
Here, the state transition control unit 5 instructs the initialization of the counter unit 6 that counts the number of input bytes. The state transition control unit 5 determines whether the input parameter is the input of the modulus N or the power index B (S2).
And the instruction content differs depending on whether it is law N or not (S3),
Initially assume that a mod N input is made. Also, after that,
The state transition control unit 5 instructs the counter unit 6 to count up until the input of parameters is completed.

【0023】状態遷移制御部5は法Nの入力であれば、
ビットシフト量決定部9の初期化を指示する(S4)。
なお、数Aあるいは羃指数Bの入力の場合はビットシフ
ト量決定部9はそのままの状態を保つ。
If the state transition control unit 5 is a mod N input,
The initialization of the bit shift amount determination unit 9 is instructed (S4).
When the number A or the power exponent B is input, the bit shift amount determination unit 9 maintains the same state.

【0024】状態遷移制御部5は8ビットのデータバス
を介して最初に入力用前段バッファ部7に入力された1
バイトデータのみを第1オクテット先頭“1”検出部8
に取り込むように指示し、第1オクテット先頭“1”検
出部8は取り込んだ8ビットのデータの先頭から何ビッ
ト目に最初の“1”があるかを検出する。この際、検出
された値(0〜7)はビットシフト量決定部9で用いら
れ、該ビットシフト量決定部9では第1オクテット先頭
“1”検出部8からの値が「0」であればビットシフト
量を「0」、「1」であればビットシフト量を「1」、
……と決定する(S5)。
The state transition control unit 5 inputs the first 1 input to the input front stage buffer unit 7 via the 8-bit data bus.
Byte data only 1st octet “1” detection unit 8
, And the first octet head “1” detection unit 8 detects which bit from the head of the fetched 8-bit data is the first “1”. At this time, the detected value (0 to 7) is used in the bit shift amount determination unit 9, and in the bit shift amount determination unit 9, the value from the first octet head “1” detection unit 8 is “0”. If the bit shift amount is "0", if "1", the bit shift amount is "1",
Is determined (S5).

【0025】入力用前段バッファ部7に格納された1バ
イトのデータは次の1バイトのデータが入力される前に
入力用後段バッファ部10に転送される。状態遷移制御
部5は転送が終了した後に2バイト目以降のデータの入
力を指示する。次のデータがある場合は第2オクテット
が入力用前段バッファ部7に入力される。
The 1-byte data stored in the input front-stage buffer section 7 is transferred to the input rear-stage buffer section 10 before the next 1-byte data is input. The state transition control unit 5 gives an instruction to input the data of the second and subsequent bytes after the transfer is completed. If there is the next data, the second octet is input to the input front stage buffer unit 7.

【0026】入力用後段バッファ部10及び入力用前段
バッファ部7の2バイトのデータが揃うと、入力用後段
バッファ部10の8ビットを上位8ビット(第1オクテ
ット)とし、入力用前段バッファ部7の8ビットを下位
8ビット(第2オクテット)とした計16ビットのデー
タを入力用ビットシフト部11に転送する。入力用ビッ
トシフト部11ではビットシフト量決定部9で決めたビ
ットシフト量だけ上位にずらしたデータを出力する。
When 2 bytes of data in the input rear stage buffer unit 10 and the input front stage buffer unit 7 are prepared, the 8 bits of the input rear stage buffer unit 10 are set to the upper 8 bits (first octet), and the input front stage buffer unit is set. A total of 16 bits of data in which 8 bits of 7 are lower 8 bits (second octet) are transferred to the input bit shift unit 11. The input bit shift unit 11 outputs the data shifted upward by the bit shift amount determined by the bit shift amount determination unit 9.

【0027】前記出力はバイトシフト部12のLSB側
から入力される。そして、入力用ビットシフト部11の
出力の上位8ビットのみがバイトシフト部12に入力さ
れる。これにより、入力された第1オクテットが10進
数で「1〜255」のどのような値であってもバイトシ
フト部12に入力される値は10進数で「128〜25
5」となり、先頭ビットは必ず“1”になる。
The output is input from the LSB side of the byte shift unit 12. Then, only the upper 8 bits of the output of the input bit shift unit 11 are input to the byte shift unit 12. As a result, even if the input first octet is a decimal number "1 to 255", the value input to the byte shift unit 12 is a decimal number "128 to 25".
5 ", and the first bit is always" 1 ".

【0028】第3オクテット目以降は、第2オクテット
の後を追うように、カウンタ部6、入力用前段バッファ
部7、入力用後段バッファ部10、入力用ビットシフト
部11を経てバイトシフト部12に入力される。以降、
全データが入力されるまでこの動作を続け、状態遷移制
御部5が最後のデータの入力終了を検出する。
From the third octet onward, the byte shift unit 12 is passed through the counter unit 6, the input front stage buffer unit 7, the input rear stage buffer unit 10, the input bit shift unit 11 so as to follow the second octet. Entered in. Or later,
This operation is continued until all data is input, and the state transition control unit 5 detects the end of input of the last data.

【0029】法Nのデータ入力の場合、バイトシフト部
12に入力された第1オクテットが最上位に移動するよ
うに1バイトづつシフトし、空いたところに“0”を補
いながらパラメタの補正シフトが行われる(S8)。こ
のようにして、パラメタ長が計測され(S6)、状態遷
移制御部5からパラメタ長が格納される(S7)。この
パラメタ長はバイトシフト量記憶部13に記憶される。
In the case of data input of modulo N, the first octet input to the byte shift unit 12 is shifted by one byte so that the first octet is moved to the uppermost position, and the correction shift of the parameter is made by supplementing "0" in the vacant place. Is performed (S8). In this way, the parameter length is measured (S6), and the state transition control unit 5 stores the parameter length (S7). This parameter length is stored in the byte shift amount storage unit 13.

【0030】法Nのデータ入力時には法Nレジスタ21
へ、数Aのデータ入力時は数Aレジスタ22へパラメタ
の格納が行われる(S9)。法N入力時にはその後に数
Aを入力することがあるので、さらに続けて数Aを入力
する場合にはステップS2に戻り、そうでない場合は終
了する(S10)。
At the time of data input of modulus N, modulus N register 21
When data of the number A is input, parameters are stored in the number A register 22 (S9). Since the number A may be input after the modal N is input, the process returns to step S2 when the number A is further input, and ends otherwise (S10).

【0031】法Nのパラメタが入力された後に数Aのパ
ラメタの入力が行われるが、その工程は法Nの場合とほ
ぼ同じである。唯一、法Nの場合と異なる点は、入力用
ビットシフト部11でのビットシフト量とバイトシフト
部12でのバイトシフト量の決定方法であり、数Aの場
合のビットシフト量は法Nの場合に決定した値をそのま
ま用いる。従って、第1オクテット先頭“1”検出部8
は動作しない。数Aのデータは入力後、入力用ビットシ
フト部11でビットシフト量決定部9の値の分、ビット
シフトされ(S11)、バイトシフト部12でバイトシ
フト量記憶部13の値の分、パラメタの補正シフトが行
われる(S8)。
The parameters of the number A are inputted after the parameters of the modulus N are inputted, and the process is almost the same as that of the case of the modulus N. The only difference from the case of the modulus N is the method of determining the bit shift amount in the input bit shift unit 11 and the byte shift amount in the byte shift unit 12, and the bit shift amount in the case of the number A is the modulus N. The value determined in that case is used as it is. Therefore, the first "1" octet detection unit 8
Does not work. After inputting the data of the number A, the input bit shift unit 11 bit-shifts by the value of the bit shift amount determination unit 9 (S11), and the byte shift unit 12 performs the bit shift by the value of the byte shift amount storage unit 13. The correction shift is performed (S8).

【0032】羃指数Bの入力に関しては、法Nや数Aの
ようにシフトさせて入力する必要はないので、カウンタ
部6の出力から直接、羃指数Bレジスタ23にパラメタ
格納が行われる(S9)。以上のようにして3つのパラ
メタの入力が完了する。
With respect to the input of the power index B, it is not necessary to shift and input such as the modulus N and the number A, and therefore, the output of the counter unit 6 directly stores the parameters in the power index B register 23 (S9). ). Input of the three parameters is completed as described above.

【0033】(2)冗長2進演算部へパラメタを入力す
るためのパラメタ変換 冗長2進演算は、通常、使用する2進表現とは異なり、
2ビットで通常の1ビット分のデータを示す。そこで、
通常の2進表現を冗長2進表現に変換する必要がある。
法Nレジスタ21及び数Aレジスタ22に格納されたパ
ラメタは冗長2進表現に変換されて、冗長2進表現の法
Nレジスタ31及び冗長2進表現の数Aレジスタ32に
格納される。
(2) Parameter conversion for inputting parameters to the redundant binary operation unit The redundant binary operation is different from the binary representation normally used.
Two bits represent normal one bit data. Therefore,
It is necessary to convert the normal binary representation to the redundant binary representation.
The parameters stored in the modulus N register 21 and the number A register 22 are converted into redundant binary representations and stored in the redundant binary representation modulo N register 31 and the redundant binary representation number A register 32.

【0034】(3)冗長2進演算部での羃乗剰余演算 冗長2進乗算部41の被乗数レジスタ44には常に冗長
2進表現の剰余Rレジスタ33のデータが入力される。
冗長2進除算部42の被除数レジスタ45には常に冗長
2進表現の法Nレジスタ31のデータが入力される。ま
た、冗長2進除算部42の除数として、常に冗長2進乗
算部41での乗算結果が入力される。
(3) Powered Residue Calculation in Redundant Binary Operation Unit The multiplicand register 44 of the redundant binary multiplication unit 41 is always input with the data of the redundant R-residue R register 33.
The data of the modulo N register 31 in the redundant binary representation is always input to the dividend register 45 of the redundant binary divider 42. The multiplication result of the redundant binary multiplication unit 41 is always input as the divisor of the redundant binary division unit 42.

【0035】演算が開始される(S121)と、まず、
初期化回路34により剰余Rレジスタ24及び冗長2進
表現の剰余Rレジスタ33が“1”に初期化される(R
=1,i=k)(S122)。
When the calculation is started (S121), first,
The remainder R register 24 and the remainder R register 33 in the redundant binary representation are initialized to "1" by the initialization circuit 34 (R
= 1, i = k) (S122).

【0036】冗長2進表現の剰余Rレジスタ33のデ
ータを冗長2進乗算部41の冗長2進乗算数パラメタ入
力部43に入力する。入力後、冗長2進乗算部41及び
冗長2進除算部42において乗算及び除算が行われ(S
123)、冗長2進演算途中結果レジスタ46に途中結
果が出力される。
The data of the remainder R register 33 in the redundant binary representation is input to the redundant binary multiplication parameter input unit 43 of the redundant binary multiplication unit 41. After the input, multiplication and division are performed in the redundant binary multiplication unit 41 and the redundant binary division unit 42 (S
123), the intermediate result is output to the redundant binary operation intermediate result register 46.

【0037】この演算(Ri+1 ={Ri ・(Ri
j )}mod (N・2j ):但し、j=バイトシフト量
記憶部13の値+ビットシフト量決定部9の値)の結果
が冗長2進数演算途中結果レジスタ46に出力され、通
常の2進数表現に戻した結果が演算途中結果レジスタ4
7に出力される。この値が次の剰余Rレジスタ24のデ
ータとなる。剰余Rレジスタ24のデータは再び冗長2
進表現に変換され、冗長2進表現の剰余Rレジスタ33
に格納される。
This operation (R i + 1 = {R i · (R i ·
2 j )} mod (N · 2 j ): where j = value of byte shift amount storage unit 13 + value of bit shift amount determination unit 9) is output to the redundant binary number arithmetic intermediate result register 46, The result returned to the binary representation of is the mid-operation result register 4
7 is output. This value becomes the data of the next remainder R register 24. The data in the remainder R register 24 is redundant 2 again
Converted to a binary representation, the redundant binary representation of the remainder R register 33
Stored in.

【0038】羃指数Bレジスタ23のデータの先頭ビ
ットを見て“1”(bi =1)でなければ(S12
4)、この作業は飛ばす。
Looking at the first bit of the data in the power index B register 23, if it is not "1" (b i = 1) (S12
4) Skip this work.

【0039】冗長2進数乗算パラメタ入力部43に冗長
2進表現の数Aレジスタ32のデータを入力し、乗算・
除算を行い(S125)、その演算(Ri+1 ={A・
(Ri・2j )}mod (N・2j ))の結果が冗長2進
数演算途中結果レジスタ46に出力され、通常の2進数
表現に戻した結果が演算途中結果レジスタ47に出力さ
れる。
The data of the number A register 32 in the redundant binary representation is input to the redundant binary number multiplication parameter input unit 43, and the multiplication / multiplication
Division is performed (S125), and the calculation (R i + 1 = {A ·
The result of (R i · 2 j )} mod (N · 2 j )) is output to the redundant binary number intermediate processing result register 46, and the result returned to the normal binary number representation is output to the intermediate processing result register 47. .

【0040】羃指数Bレジスタ23のデータの先頭ビ
ットの値を破棄し、次のビットを先頭ビットとする。同
時に羃指数Bビット長レジスタ35の値が0(i=0)
でなければ1減らし(i=i−1)、に戻る。i=0
になれば、このフェーズを終了する(S126,S12
7,S128)。
The value of the leading bit of the data in the power index B register 23 is discarded, and the next bit is set as the leading bit. At the same time, the value of the power index B bit length register 35 is 0 (i = 0).
Otherwise, decrement by 1 (i = i-1) and return to. i = 0
If so, this phase ends (S126, S12).
7, S128).

【0041】(4)演算結果の出力 剰余Rレジスタ24の値が求める演算結果である。但
し、この値は2j 倍されているので、パラメタ出力時に
以下のようにして逆補正する。
(4) Output of calculation result The value of the remainder R register 24 is the calculation result obtained. However, since this value is multiplied by 2j, reverse correction is performed as follows when outputting parameters.

【0042】状態遷移制御部5の指示により、剰余Rレ
ジスタ24内の演算結果の第1オクテットが出力用前段
バッファ部14に取り込まれる。次に、出力用前段バッ
ファ部14に取り込まれた第1オクテットが出力用後段
バッファ部15に移され、第2オクテットが出力用前段
バッファ部14に取り込まれる。
According to an instruction from the state transition control unit 5, the first octet of the operation result in the remainder R register 24 is fetched into the output front stage buffer unit 14. Next, the first octet captured in the output front stage buffer unit 14 is transferred to the output rear stage buffer unit 15, and the second octet is captured in the output front stage buffer unit 14.

【0043】出力用後段バッファ部15の8ビットを上
位8ビット(第1オクテット)とし、出力用前段バッフ
ァ部14の8ビットを下位8ビット(第2オクテット)
とした計16ビットのデータは、出力用ビットシフト部
16にて、法Nの入力時に決定したビットシフト量決定
部9からの値により下位にシフトする。そして、出力用
ビットシフト部16の出力の上位8ビットのみが8ビッ
トのデータとして出力される。出力すべきデータのオク
テット数は、法Nの入力時のカウンタ部6の値を減少さ
せて0になるまで出力する(S13〜S17)。
The 8 bits of the output rear-stage buffer section 15 are the upper 8 bits (first octet), and the 8 bits of the output front-stage buffer section 14 are the lower 8 bits (second octet).
The total 16-bit data is shifted to the lower order by the output bit shift unit 16 according to the value from the bit shift amount determination unit 9 determined when the modulus N is input. Then, only the upper 8 bits of the output of the output bit shift unit 16 are output as 8-bit data. As for the number of octets of data to be output, the value of the counter unit 6 when the modulus N is input is decreased and output until it becomes 0 (S13 to S17).

【0044】なお、演算結果以外の法N、数Aのパラメ
タ出力は剰余Rレジスタ24からの出力の場合と全く同
じである。また、羃指数Bの出力はビットシフトやバイ
トシフトは行われていないので、羃指数レジスタ23か
ら直接出力する。
The parameter outputs of modulo N and number A other than the calculation result are exactly the same as the case of the output from the remainder R register 24. Further, since the power of the power index B is not bit-shifted or byte-shifted, it is directly output from the power index register 23.

【0045】[0045]

【発明の効果】以上説明したように本発明によれば、冗
長2進演算方法の長所である多倍長の高速演算性を生か
しつつ、短所である羃乗剰余演算の際の法の最上位ビッ
トが“1”に限定される、即ちビット長が一定値に限定
されるという制約を解決することができる。
As described above, according to the present invention, while utilizing the advantage of the redundant binary arithmetic method, that is, the multiple-speed high-speed arithmetic operation, the disadvantage is the highest method of the modular exponentiation operation. It is possible to solve the constraint that the bits are limited to “1”, that is, the bit length is limited to a fixed value.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の一実施例を示す構成図FIG. 1 is a configuration diagram showing an embodiment of the present invention.

【図2】パラメタ入出力補正部及びパラメタレジスタ部
の詳細を示す構成図
FIG. 2 is a configuration diagram showing details of a parameter input / output correction unit and a parameter register unit.

【図3】パラメタ変換部及び改良型冗長2進演算部の詳
細を示す構成図
FIG. 3 is a configuration diagram showing details of a parameter conversion unit and an improved redundant binary arithmetic unit.

【図4】全体的な動作フローチャート[Fig. 4] Overall operation flowchart

【図5】羃乗剰余演算時の詳細な動作フローチャートFIG. 5 is a detailed operation flowchart at the time of modular exponentiation calculation.

【符号の説明】[Explanation of symbols]

1…パラメタ入出力補正部、2…パラメタレジスタ部、
3…パラメタ変換部、4…改良型冗長2進演算部、5…
状態遷移制御部。
1 ... Parameter input / output correction unit, 2 ... Parameter register unit,
3 ... Parameter conversion unit, 4 ... Improved redundant binary operation unit, 5 ...
State transition control unit.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 山中 喜義 東京都千代田区内幸町1丁目1番6号 日 本電信電話株式会社内 (72)発明者 大山 勝一 東京都武蔵野市吉祥寺本町1丁目14番5号 エヌティティエレクトロニクステクノロ ジー株式会社内 ─────────────────────────────────────────────────── ─── Continuation of front page (72) Yoshiyoshi Yamanaka 1-1-6 Uchisaiwaicho, Chiyoda-ku, Tokyo Nihon Telegraph and Telephone Corporation (72) Inventor Shoichi Oyama 1-14-5 Kichijojihonmachi, Musashino-shi, Tokyo No. NTT Electronics Technology Co., Ltd.

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 法Nと該法N以下の自然数からなる数A
及び羃指数Bとを入力し、法Nがdビットに限定される
冗長2進演算方法を利用して羃乗剰余演算R=AB mod
Nを行い、少なくとも演算結果の剰余Rを出力する羃乗
剰余演算方法において、 法Nのデータを上位からmビット毎に入力用前段データ
記憶手段に取り込むとともに該法Nのデータが何mビッ
ト入力されたかをデータカウント手段で計測し、 入力用前段データ記憶手段に最初に取り込まれたデータ
の先頭から何ビット目に最初に“1”が現れたかを検出
し、 該検出したビット数をビットシフト量として決定し、 入力用前段データ記憶手段内のデータを入力用後段デー
タ記憶手段に順次転送し、 入力用前段データ記憶手段内のデータを下位mビットと
し入力用後段データ記憶手段内のデータを上位mビット
として、その2mビットを前記ビットシフト量だけ上位
にシフトし、 該シフトした後の2mビットのデータの上位mビットを
mビットシフトデータ記憶手段に格納し、 法Nのデータ入力完了後、データカウント手段の値とm
ビットシフトデータ記憶手段の容量/mとの差分をシフ
ト量としてシフト量記憶手段に記憶し、 mビットシフトデータ記憶手段のデータをシフト量記憶
手段の値だけ上位にmビット単位にシフトして法記憶手
段に記憶し、 数Aのデータを上位からmビット毎に入力用前段データ
記憶手段に取り込むとともに該数Aのデータが何mビッ
ト入力されたかをデータカウント手段で計測し、 入力用前段データ記憶手段内のデータを入力用後段デー
タ記憶手段に順次転送し、 入力用前段データ記憶手段内のデータを下位mビットと
し入力用後段データ記憶手段内のデータを上位mビット
として、その2mビットを前記ビットシフト量だけ上位
にシフトし、 該シフトした後の2mビットのデータの上位mビットを
mビットシフトデータ記憶手段に格納し、 数Aのデータ入力完了後、mビットシフトデータ記憶手
段のデータをシフト量記憶手段の値だけ上位にmビット
単位にシフトして数記憶手段に記憶し、 羃指数Bのデータを羃指数記憶手段に直接取り込んで記
憶するとともに該羃指数Bのデータが何ビット入力され
たかをデータカウント手段で計測して記憶し、 記憶された法N、数A及び羃指数Bのデータを使用して
冗長2進演算手段に羃乗剰余演算を行わせ、 演算結果の剰余Rを剰余記憶手段に記憶し、 剰余記憶手段より剰余Rのデータを上位からmビット毎
に出力用前段データ記憶手段に取り込み、 出力用前段データ記憶手段内のデータを出力用後段デー
タ記憶手段に順次転送し、 出力用前段データ記憶手段内のデータを下位mビットと
し出力用後段データ記憶手段内のデータを上位mビット
として、その2mビットを前記ビットシフト量だけ下位
にシフトして出力することを特徴とする羃乗剰余演算方
法。
1. A number A consisting of a modulus N and a natural number less than or equal to the modulus N.
, And a power exponent B, and a modulo exponentiation operation R = A B mod using the redundant binary operation method in which the modulus N is limited to d bits.
In the power-of-residue calculation method of performing N and outputting at least the remainder R of the calculation result, the data of the modulus N is taken into the input front-stage data storage means for every m bits from the higher order and the number of m bits of the data of the modulus N is input. It is detected by the data count means, and it is detected at which bit from the beginning of the data first fetched in the input front data storage means, "1" first appears, and the detected number of bits is bit-shifted. The data in the input front stage data storage means is sequentially transferred to the input rear stage data storage means, and the data in the input front stage data storage means is set to the lower m bits and the data in the input rear stage data storage means is set. As the upper m bits, the 2m bits are shifted to the upper side by the bit shift amount, and the upper m bits of the 2m-bit data after the shift are m bits. Stored in Futodeta storage means, after data input completion law N, the value of the data counter means and m
The difference from the capacity / m of the bit shift data storage means is stored in the shift amount storage means as a shift amount, and the data of the m bit shift data storage means is shifted upward by the value of the shift amount storage means in units of m bits to obtain the modulus. The data of the number A is stored in the storage means, and the data of the number A is fetched into the input front stage data storage means for every m bits, and the number of m bits of the data of the number A is input is measured by the data counting means. The data in the storage means is sequentially transferred to the input rear stage data storage means, the data in the input front stage data storage means is the lower m bits, and the data in the input rear stage data storage means is the upper m bits. The bit shift amount is shifted upward, and the upper m bits of the shifted 2m-bit data are stored in the m-bit shift data storage means. After completion of inputting the data of the number A, the data of the m-bit shift data storage means is shifted to the upper part by the value of the shift amount storage means in units of m bits and stored in the number storage means, and the data of the power exponent B is stored as the power exponent. The number of bits of the data of the power of the exponent B is measured and stored by the data counting means, and the stored data of the modulus N, the number A, and the power of the power B are used for redundancy. The binary operation means is caused to perform a power-residue operation, the remainder R of the operation result is stored in the remainder storage means, and the data of the remainder R is fetched from the remainder storage means into the output front-stage data storage means for every m bits from the higher order, The data in the output front stage data storage means is sequentially transferred to the output rear stage data storage means, and the data in the output front stage data storage means is set to the lower m bits, and the data in the output rear stage data storage means is set. Position as m bits, 羃乗 remainder operation method and outputting shifted to lower its 2m bits only the bit shift amount.
【請求項2】 法記憶手段より法Nのデータを上位から
mビット毎に出力用前段データ記憶手段に取り込み、 出力用前段データ記憶手段内のデータを出力用後段デー
タ記憶手段に順次転送し、 出力用前段データ記憶手段内のデータを下位mビットと
し出力用後段データ記憶手段内のデータを上位mビット
として、その2mビットをデータ入力時に決定したビッ
トシフト量だけ下位にシフトして出力することを特徴と
する請求項1記載の羃乗剰余演算方法。
2. The data of modulus N is fetched from the higher order by m bits into the output front stage data storage unit from the higher order storage unit, and the data in the output front stage data storage unit is sequentially transferred to the output rear stage data storage unit, The data in the output front stage data storage means is the lower m bits, and the data in the output rear stage data storage means is the upper m bits, and the 2 m bits are shifted to the lower side by the bit shift amount determined at the time of data input and output. The power-residue calculation method according to claim 1, wherein
【請求項3】 数記憶手段より数Aのデータを上位から
mビット毎に出力用前段データ記憶手段に取り込み、 出力用前段データ記憶手段内のデータを出力用後段デー
タ記憶手段に順次転送し、 出力用前段データ記憶手段内のデータを下位mビットと
し出力用後段データ記憶手段内のデータを上位mビット
として、その2mビットを法Nのデータ入力時に決定し
たビットシフト量だけ下位にシフトして出力することを
特徴とする請求項1記載の羃乗剰余演算方法。
3. A number A of data from the number storage means is taken into the output front stage data storage means every m bits from the higher order, and the data in the output front stage data storage means is sequentially transferred to the output rear stage data storage means, The data in the output front stage data storage means is set to the lower m bits, and the data in the output rear stage data storage means is set to the upper m bits, and 2 m bits thereof are shifted to the lower side by the bit shift amount determined at the time of the data input of the modulus N. The power-residue calculation method according to claim 1, wherein the power-residue calculation is performed.
【請求項4】 羃指数記憶手段より羃指数Bのデータを
上位からmビット毎に出力用前段データ記憶手段に取り
込み、 出力用前段データ記憶手段内のデータを出力用後段デー
タ記憶手段に順次転送し、 出力用前段データ記憶手段内のデータを下位mビットと
し出力用後段データ記憶手段内のデータを上位mビット
としてそのまま出力することを特徴とする請求項1記載
の羃乗剰余演算方法。
4. The power of the power index B from the power index storage means is fetched into the output front stage data storage means every m bits from the higher order, and the data in the output front stage data storage means is sequentially transferred to the output rear stage data storage means. 2. The power-residue calculation method according to claim 1, wherein the data in the output front-stage data storage means is output as the lower m bits and the data in the output rear-stage data storage means is output as the upper m bits as they are.
【請求項5】 法Nと該法N以下の自然数からなる数A
及び羃指数Bとを入力し、法Nがdビットに限定される
冗長2進演算方法を利用して羃乗剰余演算R=AB mod
Nを行い、少なくとも演算結果の剰余Rを出力する羃乗
剰余演算装置において、 法Nもしくは数Aのデータを上位からmビット毎に取り
込む入力用前段データ記憶手段と、 法Nもしくは数Aのデータが何mビット入力されたか及
び羃指数Bのデータが何ビット入力されたかを計測する
データカウント手段と、 入力用前段データ記憶手段に最初に取り込まれた法Nの
データの先頭から何ビット目に最初に“1”が現れたか
を検出する先頭“1”ビット検出手段と、 前記先頭“1”ビット検出手段で検出したビット数をビ
ットシフト量として決定するビットシフト量決定手段
と、 入力用前段データ記憶手段のデータを次に受け取る入力
用後段データ記憶手段と、 入力用前段データ記憶手段内のデータを下位mビットと
し入力用後段データ記憶手段内のデータを上位mビット
として、ビットシフト量決定手段で決定したシフト量だ
け上位にシフトする2mビット上位シフト手段と、 法N、数A及び羃指数Bのデータを使用して冗長2進演
算方法により羃乗剰余演算を行う冗長2進演算手段と、 2mビット上位シフト手段によりシフトした後の2mビ
ットのデータ又は冗長2進演算手段より得られる剰余R
あるいはこれに加えて法Nもしくは数Aもしくは羃指数
Bのデータの上位mビットを格納するmビットシフトデ
ータ記憶手段と、 法Nのデータ入力完了後、データカウント手段の値とm
ビットシフトデータ記憶手段の容量/mとの差分をシフ
ト量として記憶するシフト量記憶手段と、 mビットデータシフト記憶手段より演算結果の剰余Rあ
るいはこれに加えて法Nもしくは数Aもしくは羃指数B
のデータを上位からmビット毎に取り込む出力用前段デ
ータ記憶手段と、 出力用前段データ記憶手段のデータを次に受け取る出力
用後段データ記憶手段と、 出力用前段データ記憶手段内のデータを下位mビットと
し出力用後段データ記憶手段内のデータを上位mビット
として、演算結果の剰余R、法N及び数Aのみビットシ
フト量決定手段で決定したビットシフト量だけ下位にシ
フトする2mビット下位シフト手段とを備えたことを特
徴とする羃乗剰余演算装置。
5. A number A consisting of a modulus N and a natural number less than or equal to the modulus N.
, And a power exponent B, and a modulo exponentiation operation R = A B mod using the redundant binary operation method in which the modulus N is limited to d bits.
In a power-of-residue arithmetic unit that performs N and outputs at least the remainder R of the operation result, input pre-stage data storage means for taking in data of modulus N or number A for every m bits from the higher order, and data of modulus N or number A Data counting means for measuring how many m bits have been input and how many bits of power of the exponent B have been input, and at what bit from the beginning of the data of the modulus N that has been initially stored in the input front data storage means. First "1" bit detecting means for detecting whether "1" first appears, bit shift amount determining means for determining the number of bits detected by the first "1" bit detecting means as a bit shift amount, and input front stage Input rear stage data storage means for receiving the data in the data storage means next, and input rear stage data storage in which the data in the input front stage data storage means is the lower m bits Redundant binary using 2m-bit upper shift means that shifts the data in the stage to the upper m bits by the shift amount determined by the bit shift amount determining means, and data of modulus N, number A, and exponent B Redundant binary operation means for performing a power-residue operation according to the operation method, and 2m-bit data after being shifted by the 2m-bit higher-order shift means or a residue R obtained from the redundant binary operation means.
Alternatively, in addition to this, an m-bit shift data storage means for storing the upper m bits of the data of the modulus N or the number A or the power of the exponent B, and the value of the data count means and m
A shift amount storage means for storing a difference from the capacity / m of the bit shift data storage means as a shift amount, and a remainder R of an operation result from the m bit data shift storage means, or a modulus N or a number A or a power exponent B
Output front stage data storage means for fetching the data of the above from every m bits, output rear stage data storage means for receiving the data of the output front stage data storage means next, and data in the output front stage data storage means for the lower order m. 2 m-bit lower shift means for shifting only the remainder R, the modulus N, and the number A of the operation result to the lower bit by the bit shift amount determined by the bit shift amount determination means, with the data in the output rear stage data storage means as the upper m bits. And a modular exponentiation calculation device comprising:
【請求項6】 法Nを冗長2進表現に変換する法N−冗
長2進変換手段と、 数Aを冗長2進表現に変換する数A−冗長2進変換手段
と、 剰余Rを冗長2進表現に変換する数A−冗長2進変換手
段と、 演算結果の剰余Rを格納する演算結果格納手段と、 演算結果格納手段の内容を“1”に初期化する初期化手
段と、 kビットの羃指数Bのデータが入力された時、k≧i≧
1なるiを用いて B=bk ×2k-1 +bk-1 ×2k-2 +……+bi ×2i-1 +…… +b2 ×21 +b1 ×20 とし、i=kとして、演算結果の剰余R及び法Nを冗長
2進表現にして法Nの格納ビット数と同一ビット数だけ
上位ビットからR×2d-k =(R×R×2d-k )mod
(N×2d-k )の演算を行い、また、bi =1であれ
ば、R×2d-k =(A×R×2d-k )mod (N×
d-k )の演算を行い、iを1つずつ減じて0になるま
で前記演算を繰り返し行うN×2d-k ビット冗長2進羃
乗剰余手段と、 冗長2進数を通常の2進数に戻す全加算手段と、 演算結果格納手段の上位d−kを求める羃乗剰余演算結
果として出力する演算結果出力手段とからなる冗長2進
演算手段を備えたことを特徴とする請求項5記載の羃乗
剰余演算装置。
6. A modulus N-redundant binary conversion means for converting a modulus N into a redundant binary representation, a number A-redundant binary conversion means for converting a number A into a redundant binary representation, and a remainder R to a redundant 2 Number A-redundant binary conversion means for converting into a binary representation, operation result storage means for storing the remainder R of the operation result, initialization means for initializing the content of the operation result storage means to "1", and k bits When the power of the power of B is input, k ≧ i ≧
Using i which is 1, B = b k × 2 k-1 + b k-1 × 2 k-2 + ... + b i × 2 i-1 + ... + b 2 × 2 1 + b 1 × 2 0, and i = K, the remainder R and the modulus N of the operation result are made into a redundant binary representation, and the same number of bits as the number of bits stored in the modulus N is changed from the upper bits to R × 2 dk = (R × R × 2 dk ) mod
(N × 2 dk ), and if b i = 1, R × 2 dk = (A × R × 2 dk ) mod (N ×
2 dk ), subtracting i by 1 and repeating the above calculation until it becomes 0. N × 2 dk bits redundant binary exponentiation remainder means, and full addition for returning redundant binary numbers to normal binary numbers 6. The modular exponentiation means according to claim 5, further comprising redundant binary arithmetic means including means and an arithmetic result output means for outputting as a modular exponentiation arithmetic operation result for obtaining a higher order dk of the arithmetic result storage means. Arithmetic unit.
JP28685394A 1994-11-21 1994-11-21 Method and apparatus for modular exponentiation operation Expired - Lifetime JP3555091B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28685394A JP3555091B2 (en) 1994-11-21 1994-11-21 Method and apparatus for modular exponentiation operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28685394A JP3555091B2 (en) 1994-11-21 1994-11-21 Method and apparatus for modular exponentiation operation

Publications (2)

Publication Number Publication Date
JPH08147266A true JPH08147266A (en) 1996-06-07
JP3555091B2 JP3555091B2 (en) 2004-08-18

Family

ID=17709881

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28685394A Expired - Lifetime JP3555091B2 (en) 1994-11-21 1994-11-21 Method and apparatus for modular exponentiation operation

Country Status (1)

Country Link
JP (1) JP3555091B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6175850B1 (en) 1997-02-03 2001-01-16 Nippon Telegraph And Telephone Corporation Scheme for carrying out modular calculations based on redundant binary calculation
WO2011036746A1 (en) * 2009-09-24 2011-03-31 株式会社東芝 Calculation device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6175850B1 (en) 1997-02-03 2001-01-16 Nippon Telegraph And Telephone Corporation Scheme for carrying out modular calculations based on redundant binary calculation
WO2011036746A1 (en) * 2009-09-24 2011-03-31 株式会社東芝 Calculation device
JP5175983B2 (en) * 2009-09-24 2013-04-03 株式会社東芝 Arithmetic unit
US8909689B2 (en) 2009-09-24 2014-12-09 Kabushiki Kaisha Toshiba Arithmetic device

Also Published As

Publication number Publication date
JP3555091B2 (en) 2004-08-18

Similar Documents

Publication Publication Date Title
JP4955182B2 (en) Integer calculation field range extension
US4893268A (en) Circuit and method for accumulating partial products of a single, double or mixed precision multiplication
JP2835153B2 (en) High radix divider
EP1094401A1 (en) Data calculating device
CA2329104C (en) Method and apparatus for calculating a reciprocal
US6523054B1 (en) Galois field arithmetic processor
JP3551113B2 (en) Divider
US7539720B2 (en) Low latency integer divider and integration with floating point divider and method
JPH08147266A (en) Method and device for calculating power remainder
JP2502836B2 (en) Preprocessing device for division circuit
JP3003467B2 (en) Arithmetic unit
JP3271120B2 (en) Device for fast multiplication of binary numbers
JPH1195982A (en) Circuit, method and system for arithmetic processing
JPH09146924A (en) Method and device for arithmetic, and microprocessor
JP3422001B2 (en) Division / residue calculation method and apparatus
JPH10283164A (en) Division circuit
US7403966B2 (en) Hardware for performing an arithmetic function
EP1504338A1 (en) "emod" a fast modulus calculation for computer systems
JPH086766A (en) Sine and cosine arithmetic device
JP2003216419A (en) Calculator and calculating method
CN118245017B (en) Binary floating-point multiplication device in memory and operation method thereof
KR100252766B1 (en) Sticky signal generator operating at high-speed
JP3912958B2 (en) Data-driven processing apparatus and data processing method in data-driven processing apparatus
JP2000010763A (en) Division circuit
US5729487A (en) Electronic component capable, in particular, of performing a division of two numbers to the base 4.

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040427

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20040430

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040430

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090521

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090521

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100521

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100521

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110521

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110521

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120521

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120521

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140521

Year of fee payment: 10

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term