JPH07200267A - Power residue operation method/circuit - Google Patents

Power residue operation method/circuit

Info

Publication number
JPH07200267A
JPH07200267A JP5351453A JP35145393A JPH07200267A JP H07200267 A JPH07200267 A JP H07200267A JP 5351453 A JP5351453 A JP 5351453A JP 35145393 A JP35145393 A JP 35145393A JP H07200267 A JPH07200267 A JP H07200267A
Authority
JP
Japan
Prior art keywords
output
circuit
modp
power
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5351453A
Other languages
Japanese (ja)
Inventor
Keiichi Iwamura
恵市 岩村
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP5351453A priority Critical patent/JPH07200267A/en
Publication of JPH07200267A publication Critical patent/JPH07200267A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To provide a power residue operation method by which the power residue operation of Y=alpha**x modp when a base alpha is a constant is efficiently executed. CONSTITUTION:In the power residue operation method for executing the power residue operation of Y=alpha**x modp ((p), (a) and X are integers and **a power exponent), the number of bits where '1' is given to X is counted in a judgment step. Thus, it is judged whether or not the count concerned is larger than k/2 ((k) is the number of bits of X), and the value of alpha**m and alpha**-m (m=2**i, i=0, 1...k-1) is calculated in accordance with (i) in advance and either alpha**m or alpha**-m is sequentially outputted corresponding to (i) in accordance with the judged result of the judgment step in an output step. Then, C=C.Ai modp is calculated in accordance with the binary code Xi of X with output in the output step as Ai in an operation step.

Description

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

【0001】[0001]

【産業上の利用分野】本発明は、底αが定数の場合にY
=α**x modp(p、α、Xは整数,**はべき
指数とする)の演算を行うべき乗剰余演算方法と該演算
を行うべき乗剰余演算回路に関する。
The present invention relates to the case where Y is a constant when the base α is a constant.
= Α ** x modp (p, α, X are integers, ** is a power exponent), and a modular exponentiation calculation circuit for performing the calculation.

【0002】[0002]

【従来の技術】Y=α**x modpの演算を行うべ
き乗剰余演算は、暗号技術の分野でよく利用され、暗号
技術の分野ではαが変数の場合とαが定数の場合とがあ
り、代表的な公開鍵暗号であるRSA暗号の場合はαが
変数として取り扱われ、よく知られているDiffie
とHellmanによる公開鍵配送方式ではαが定数と
して取り扱われる。
2. Description of the Related Art A modular exponentiation operation for performing an operation of Y = α ** x modp is often used in the field of cryptography. In the field of cryptography, α is a variable and α is a constant. In the case of the RSA cryptosystem, which is a typical public key cryptosystem, α is handled as a variable, and the well-known Diffie
In the public key distribution method by and Hellman, α is treated as a constant.

【0003】ところでDiffieとHellmanに
よる公開鍵配送方式では、通信網の利用者が公開鍵を使
用して秘密鍵を共有する方法が取られ、この方式では、
有限体GF(p)上での離散的対数問題の解法が難しい
ことに安全性の根拠を置いている。この公開鍵配送方式
では、次の手順によって通信網の利用者Aから利用者B
に鍵が配送される。 手順1)素数pと有限体GF(p)のある固定された原
始根αとを定め、公開鍵として通信網の利用者全員に知
らせる。 手順2)利用者Aは、0<XA<pの整数XAをランダ
ムに選び秘密に保持し、数式1を計算しYAを利用者B
に送る。
By the way, in the public key distribution system by Diffie and Hellman, a method is adopted in which users of a communication network share a secret key by using a public key. In this system,
The security is based on the difficulty of solving the discrete logarithm problem on the finite field GF (p). In this public key distribution system, users A to B of the communication network are:
The key is delivered to. Procedure 1) Define a prime number p and a fixed primitive root α with a finite field GF (p), and notify all users of the communication network as a public key. Procedure 2) User A randomly selects an integer XA of 0 <XA <p and keeps it secret, calculates Formula 1, and calculates YA as User B.
Send to.

【数1】YA=α**XA modp また、利用者Bは0<XB<pの整数XBをランダムに
選び秘密に保持し、数式2を計算しYBを利用者Aに送
る。
YA = α ** XA modp User B randomly selects an integer XB of 0 <XB <p and holds it secretly, calculates Equation 2 and sends YB to user A.

【数2】YB=α**XB modp 手順3)YAとYBとの交換後に、利用者Aは共有鍵K
を数式3に基づいて計算する。
[Formula 2] YB = α ** XB modp Procedure 3) After exchanging YA and YB, user A shares key K
Is calculated based on Equation 3.

【数3】 K=YB**XA modp=α**XAXB modp また、利用者BはYAとYBの交換後に、共有鍵Kを数
式4に基づいて計算する。
## EQU00003 ## K = YB ** XA modp = .alpha. ** XAXB modp User B calculates the shared key K based on Equation 4 after the exchange of YA and YB.

【数4】 K=YAXB modp=α**XAXB modp このようにして、鍵K=α**XAXB modpを利用者
A、Bが秘密に共有することができる。この場合、べき
乗剰余演算において底αは固定され定数として扱うこと
ができる。
## EQU00004 ## K = YAXB modp = .alpha. ** XAXB modp In this manner, the keys K = .alpha. ** XAXB modp can be secretly shared by the users A and B. In this case, the base α is fixed in the modular exponentiation operation and can be treated as a constant.

【0004】この場合、pを素数ではなく2のべき数と
することも実用上しばしば行われる。ところで、Y=α
**x modpの演算において、p=2**kとすれば
0<X<pとなるXのビツト数は高々kであり、手順2
のべき乗剰余演算は、次のようなアルゴリズムによって
表現できることが知られている。但し、X=[Xk、Xk-
1・・X1]とする。
In this case, it is often practiced that p is a power of 2 instead of a prime number. By the way, Y = α
In the calculation of ** x modp, if p = 2 ** k, the number of bits of X for 0 <X <p is k at most, and the procedure 2
It is known that the power-residue calculation of can be expressed by the following algorithm. However, X = [Xk, Xk-
1 ... X1]

【0005】 INPUT α、X、p (入力) C=1 (初期設定) FOR i=k TO 1 IF Xi=1 THEN C=C・α modp (演算1) IF i>1 THEN C=C・C modp (演算2) NEXT Y=C この場合、演算1、演算2ともk回演算を行う必要があ
り、合計で2k回の剰余乗算が行われる。
INPUT α, X, p (input) C = 1 (initial setting) FOR i = k TO 1 IF Xi = 1 THEN C = C · α modp (Operation 1) IF i> 1 THEN C = C · C modp (Operation 2) NEXT Y = C In this case, it is necessary to execute the operation 1 and the operation 2 k times, and a total of 2k modular multiplication is performed.

【0006】また、αはGF(2**k)の原始根なの
で、α**2のk乗は1となり、α**X=1/α**-x
=1/α**u(但しu=2**k−X)となり、これが
(1/α)のu乗となることを利用して、次のような高
速演算法が知られている。
Since α is a primitive root of GF (2 ** k), α ** 2 is the k-th power of 1, and α ** X = 1 / α **-x
= 1 / α ** u (where u = 2 ** k−X), and the fact that this is (1 / α) raised to the u-th power is known as the following high-speed arithmetic method.

【0007】 INPUT α、X、p (入力) C=1 (初期設定) IF HW(X)>k/2 THEN X=2**k−X (判定1) IF HW(X)>k/2 THEN α=α**-1 (判定2) FOR i=k T0 1 IF Xi=1 THEN C=C・α modp (演算1) IF i>1 THEN C=C・C modp (演算2) NEXT Y=C 但し、HW(X)はビット系列Xのハミング重み(1が
立っているビットの数)である。
INPUT α, X, p (input) C = 1 (initial setting) IF HW (X)> k / 2 THEN X = 2 ** k−X (judgment 1) IF HW (X)> k / 2 THEN α = α **-1 (judgment 2) FOR i = k T0 1 IF Xi = 1 THEN C = C · α modp (Calculation 1) IF i> 1 THEN C = C · C modp (Calculation 2) NEXT Y = C where HW (X) is the Hamming weight of the bit sequence X (the number of bits for which 1 is set).

【0008】このアルゴリズムでは、HW(X)〉k/
2の時に、X←2k−X、α←α**-1の変換を行う
が、α**X=1/α**u(但しu=2**k−X)と
なり、これが(1/α)のu乗となるので、元のα**
Xと変換後のα**Xとは一致することになり、変換後の
α**Xを求めればよいことになる。この場合、2**k
=[1,0・・・0]で0の個数がk個あることに注意
すると、X=[Xk,Xk-1・・・X1]に対して2**k−X
=[|Xk|,|Xk-1|・・・|X1|](|Xi|はXi
の反転)であり、Xi=0→|Xi|=1,Xi=1→|
Xi|=0であるので、HW(X)〉k/2の場合に変
換(X←2**k−X)により、HW(X)<k/2と
なる。
In this algorithm, HW (X)> k /
When 2, the conversion of X ← 2k−X and α ← α **-1 is performed, but α ** X = 1 / α ** u (however, u = 2 ** k−X), which is (1 / Α) to the u-th power, so the original α **
Since X and the converted α ** X are the same, it is only necessary to obtain the converted α ** X. In this case, 2 ** k
= [1,0 ... 0], the number of 0's is k, and 2 ** k-X for X = [Xk, Xk-1 ... X1]
= [| Xk |, | Xk-1 | ... | X1 |] (| Xi | is Xi
Xi = 0 → | Xi | = 1, Xi = 1 → |
Since Xi | = 0, HW (X) <k / 2 due to conversion (X ← 2 ** k−X) when HW (X)> k / 2.

【0009】[0009]

【発明が解決しようとする課題】前述の従来の高速演算
法によると、Xi=1となるのはk/2以下であるの
で、演算1は最高k/2回となり、合計で1.5k回の
剰余乗算でよい。しかし、ここではαが定数として扱え
ることを利用していないので、余り効率的な方法とは言
えない。即ち、Xを2進表現するコードで表すと2**
k-1、2**k-2・・・2**0の因数の項が出てくるの
で、繰り返し同一の演算を行うことになって、余り効率
的ではない。
According to the above-mentioned conventional high-speed arithmetic method, since Xi = 1 is k / 2 or less, the maximum number of arithmetic operations is k / 2, which is 1.5k in total. The remainder multiplication of is sufficient. However, since the fact that α can be treated as a constant is not used here, it cannot be said to be a very efficient method. In other words, if X is expressed by a code that represents binary, 2 **
Since a factor term of k-1, 2 ** k-2 ... 2 ** 0 appears, the same operation is repeatedly performed, which is not very efficient.

【0010】本発明は、前述の従来の乗剰余演算の現状
に鑑みてなされたものであり、その第1の目的は、底α
が定数の場合のY=α**x modpのべき乗剰余演
算を効率的に行うべき乗剰余演算方法を提供することに
ある。
The present invention has been made in view of the current state of the conventional modular exponentiation operation described above, and its first object is to obtain a base α.
It is to provide a method of modular exponentiation for efficiently performing modular exponentiation of Y = α ** x modp when is a constant.

【0011】また、本発明の第2の目的は、底αが定数
の場合のY=α**x modpのべき乗剰余演算を効
率的に行うべき乗剰余演算回路を提供することにある。
A second object of the present invention is to provide a power-residue calculation circuit that efficiently performs a power-residue calculation of Y = α ** x modp when the base α is a constant.

【0012】[0012]

【課題を解決するための手段】前記第1の目的を達成す
るために、請求項1に記載の第1の発明は、Y=α**
x modp(p、α、Xは整数)のべき乗剰余演算を
行うべき乗剰余演算方法において、Xの1が立っている
ビット数をカウントすることにより、該カウント値がk
/2(kはXのビット数)より大きいか否かを判定する
判定ステップと、α**mとα**-m(m=2**i、i
=0、1・・・k−1)の値をiに対応して予め演算
し、前記判定ステップでの判定結果に応じて、α**m
またはα**-mの何れかをiに応じて順次出力する出力
ステップと、該出力ステップでの出力をAiとして、X
の2進コードXiに応じて、C=C・Ai modpを演
算する演算ステップとを有することを特徴とするもので
ある。
In order to achieve the first object, the first invention according to claim 1 provides: Y = α **
In a power-residue calculation method for performing a power-residue calculation of x modp (p, α, X is an integer), the count value is set to k by counting the number of bits in which 1 of X is set.
/ 2 (k is the number of bits of X) and a determination step for determining whether or not α ** m and α **-m (m = 2 ** i, i)
= 0, 1 ... k-1) is calculated in advance corresponding to i, and α ** m is calculated according to the result of the determination in the determination step.
Or an output step of sequentially outputting any one of α **-m according to i, and an output at the output step is Ai, X
And a calculation step for calculating C = C · Ai modp according to the binary code Xi.

【0013】同様に前記第1の目的を達成するために、
請求項2に記載の第2の発明は、Y=α**x mod
p(p、α、Xは整数)のべき乗剰余演算を行うべき乗
剰余演算方法において、Xの1が立っているビット数を
カウントすることにより、該カウント値がk/2(kは
Xのビット数)より大きいか否かを判定する判定ステッ
プと、α**mとα**-m(m=2**i、i=0、1・
・・k−1)の値をiに対応して予め演算し、前記判定
ステップでの判定結果とXの2進コードXiとに応じ
て、α**m、α**-mまたは1の何れかをiに応じて
順次出力する出力ステップと、該出力ステップでの出力
をAiとして、Xの2進コードXiに応じて、C=C・A
i modpを演算する演算ステップとを有することを
特徴とするものである。
Similarly, in order to achieve the first object,
The second invention according to claim 2 is Y = α ** x mod
In a modular exponentiation method for performing a modular exponentiation operation of p (p, α, X is an integer), the number of bits for which 1 of X is set is counted, so that the count value is k / 2 (k is the bit of X). Number) and a determination step for determining whether or not it is larger than α ** m and α **-m (m = 2 ** i, i = 0, 1 ·
.. The value of k-1) is calculated in advance corresponding to i, and α ** m, α **-m or 1 of α ** m, α **-m or 1 is calculated according to the determination result in the determination step and the binary code Xi of X. An output step of sequentially outputting any one of i and an output at the output step is Ai, and C = C · A according to the binary code Xi of X.
and a calculation step for calculating i modp.

【0014】また、前記第2の目的を達成するために、
請求項3に記載の第3の発明は、Y=α**x mod
p(p、α、Xは整数)のべき乗剰余演算を行うべき乗
剰余演算回路において、Xの1が立っているビット数を
カウントすることにより、該カウント値がk/2(kは
Xのビット数)より大きいか否かを判定する判定手段
と、α**mとα**-m(m=2**i、i=0、1・・
・k−1)の値をiに対応して予め演算格納し、前記判
定手段での判定結果に応じて、α**mまたはα**-m
の何れかをiに応じて順次出力する出力手段と、該出力
手段での出力をAiとして、Xの2進コードXiに応じ
て、C=C・Ai modpを演算する演算手段とを有
することを特徴とするものである。
Further, in order to achieve the second object,
A third invention according to claim 3 is Y = α ** x mod
In a power-residue arithmetic circuit that performs a power-residue calculation of p (p, α, X is an integer), by counting the number of bits for which 1 of X is raised, the count value is k / 2 (k is the bit of X). And a determination means for determining whether or not it is larger than (number), and α ** m and α **-m (m = 2 ** i, i = 0, 1 ...
The value of k-1) is calculated and stored in advance corresponding to i, and α ** m or α **-m depending on the judgment result by the judgment means.
And output means for sequentially outputting any of the above in accordance with i, and arithmetic means for calculating C = C · Ai modp according to the binary code Xi of X, with the output from the output means as Ai. It is characterized by.

【0015】同様に前記第2の目的を達成するために、
請求項4に記載の第4の発明は、Y=α**x mod
p(p、α、Xは整数)のべき乗剰余演算を行うべき乗
剰余演算回路において、Xの1が立っているビット数を
カウントすることにより、該カウント値がk/2(kは
Xのビット数)より大きいか否かを判定する判定手段
と、α**mとα**-m(m=2**i、i=0、1・・
・k−1)の値をiに対応して予め演算格納し、前記判
定手段での判定結果とXの2進コードXiとに応じて、
α**m、α**-mまたは1の何れかをiに応じて順次
出力する出力手段と、該出力手段での出力をAiとし
て、Xの2進コードxiに応じて、C=C・Ai mod
pを演算する演算手段とを有することを特徴とするもの
である。
Similarly, in order to achieve the second object,
A fourth invention according to claim 4 is Y = α ** x mod.
In a power-residue arithmetic circuit that performs a power-residue calculation of p (p, α, X is an integer), by counting the number of bits in which X is 1, the count value is k / 2 (k is the bit of X). And a determination means for determining whether or not it is larger than (number), and α ** m and α **-m (m = 2 ** i, i = 0, 1 ...
The value of (k-1) is calculated and stored in advance corresponding to i, and according to the judgment result of the judgment means and the binary code Xi of X,
C = C according to the binary code xi of X, with an output means for sequentially outputting any one of α ** m, α **-m or 1 according to i, and an output by the output means as Ai.・ Ai mod
and a calculation means for calculating p.

【0016】[0016]

【作用】第1の発明によると、Y=α**x modp
(p、α、Xは整数)のべき乗剰余演算を行うべき乗剰
余演算方法において、判定ステップにおいて、Xの1が
立っているビット数をカウントすることにより、該カウ
ント値がk/2(kはXのビット数)より大きいか否か
が判定され、出力ステップにおいて、α**mとα**-
m(m=2**i、i=0、1・・・k−1)の値をiに
対応して予め演算してあり、判定ステップでの判定結果
に応じて、α**mまたはα**-mの何れかがiに応じ
て順次出力され、演算ステップにおいて、出力ステップ
での出力をAiとして、Xの2進コードXiに応じて、C
=C・Ai modpが演算される。
According to the first invention, Y = α ** x modp
(P, α, X are integers) In a modular exponentiation method for performing modular exponentiation, the count value is counted as k / 2 (k is It is determined whether or not it is larger than the number of bits of X), and in the output step, α ** m and α **-
The value of m (m = 2 ** i, i = 0, 1 ... k-1) is calculated in advance in correspondence with i, and α ** m or One of α **-m is sequentially output according to i, and in the calculation step, the output at the output step is Ai, and C is calculated according to the binary code Xi of X.
= C · Ai modp is calculated.

【0017】第2の発明によると、Y=α**x mo
dp(p、α、Xは整数)のべき乗剰余演算を行うべき
乗剰余演算方法において、判定ステップにおいて、Xの
1が立っているビット数をカウントすることにより、該
カウント値がk/2(kはXのビット数)より大きいか
否かが判定され、出力ステップにおいて、α**mとα
**-m(m=2**i、i=0、1・・・k−1)の値
をiに対応して予め演算してあり、判定ステップでの判
定結果とXの2進コードXiとに応じて、α**m、α*
*-mまたは1の何れかがiに応じて順次出力され、演算
ステップにおいて、出力ステップでの出力をAiとし
て、Xの2進コードXiに応じて、C=C・Ai mod
pが演算される。
According to the second invention, Y = α ** x mo
In a modular exponentiation calculation method for performing modular exponentiation of dp (p, α, X is an integer), the count value is counted as k / 2 (k Is greater than the number of bits of X), and in the output step, α ** m and α
The value of **-m (m = 2 ** i, i = 0, 1 ... k-1) is calculated in advance corresponding to i, and the judgment result at the judgment step and the binary code of X Α ** m, α * depending on Xi
Either * -m or 1 is sequentially output according to i, and in the calculation step, C = C · Ai mod is set according to the binary code Xi of X, where the output at the output step is Ai.
p is calculated.

【0018】第3の発明によると、Y=α**x mo
dp(p、α、Xは整数)のべき乗剰余演算を行うべき
乗剰余演算回路において、判定手段によって、Xの1が
立っているビット数をカウントすることにより、該カウ
ント値がk/2(kはXのビット数)より大きいか否か
が判定され、出力手段によって、α**mとα**-m
(m=2**i、i=0、1・・・k−1)の値をiに
対応して予め演算格納し、判定手段での判定結果に応じ
て、α**mまたはα**-mの何れかがiに応じて順次
出力され、演算手段によって、出力手段での出力をAi
として、Xの2進コードXiに応じて、C=C・Ai m
odpが演算される。
According to the third invention, Y = α ** x mo
In a modular exponentiation operation circuit that performs a modular exponentiation operation of dp (p, α, X is an integer), the number of bits in which 1 of X is set is counted by the determination means, and the count value is k / 2 (k Is larger than the number of bits of X), and the output means determines α ** m and α **-m.
The value of (m = 2 ** i, i = 0, 1 ... k-1) is calculated and stored in advance corresponding to i, and α ** m or α * is determined according to the determination result by the determination means. One of * -m is sequentially output according to i, and the output of the output means is Ai by the arithmetic means.
As C = C · Ai m according to the binary code Xi of X
odp is calculated.

【0019】第4の発明によると、Y=α**x mo
dp(p、α、Xは整数)のべき乗剰余演算を行うべき
乗剰余演算回路において、判定手段により、Xの1が立
っているビット数をカウントすることにより、該カウン
ト値がk/2(kはXのビット数)より大きいか否かが
判定され、出力手段によって、α**mとα**-m(m
=2**i、i=0、1・・・k−1)の値をiに対応
して予め演算格納し、判定手段での判定結果とXの2進
コードXiとに応じて、α**m、α**-mまたは1の何
れかがiに応じて順次出力され、演算手段によって、出
力手段での出力をAiとして、Xの2進コードXiに応じ
て、C=C・Ai modpが演算される。
According to the fourth invention, Y = α ** x mo
In a modular exponentiation operation circuit that performs a modular exponentiation operation of dp (p, α, X is an integer), the determination unit counts the number of bits for which 1 of X is set, and the count value is k / 2 (k Is larger than the number of bits of X), and the output means determines α ** m and α **-m (m
= 2 ** i, i = 0, 1 ... k-1) is calculated and stored in advance in correspondence with i, and α is set in accordance with the result of the judgment by the judging means and the binary code Xi of X. Any one of ** m, α **-m or 1 is sequentially output according to i, and the output of the output means is Ai by the computing means, and C = C.multidot.C according to the binary code Xi of X. Ai modp is calculated.

【0020】[0020]

【実施例】以下、本発明の実施例を図1ないし図3を参
照して説明する。図1は本発明の第1の実施例に係るべ
き乗剰余演算方法の実行に使用するべき乗剰余演算回路
の構成を示すブロック図、図2は第2の実施例に係るべ
き乗剰余演算方法の実行に使用するべき乗剰余演算回路
の構成を示すブロック図、図3は図2の回路に使用され
る論理回路の構成を示すブロック図である。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described below with reference to FIGS. FIG. 1 is a block diagram showing the configuration of a modular exponentiation calculation circuit used for executing the modular exponentiation calculation method according to the first embodiment of the present invention, and FIG. 2 is a block diagram showing the modular exponentiation calculation method according to the second embodiment. FIG. 3 is a block diagram showing the configuration of the modular exponentiation operation circuit used, and FIG. 3 is a block diagram showing the configuration of the logic circuit used in the circuit of FIG.

【0021】[第1の実施例]底αが定数の場合のY=
α**x modpのべき乗剰余演算を行う過程におい
て、α**m或いはα**-m(m=2**i、i=0、1
・・・k−1)の演算が繰り返して実行される。そこ
で、α**m=ALiとα**-m=BLi(m=2**i、
i=0、1・・・k−1)の値を予めiに応じて演算し
格納して置き、iに応じて出力するようにすれば、演算
を効率的に実行することができる。本実施例では、次の
ようなアルゴリズムによって、Y=α**x modp
のべき乗剰余演算を実行する。
[First Embodiment] Y = when the base α is a constant
In the process of performing modular exponentiation of α ** x modp, α ** m or α **-m (m = 2 ** i, i = 0, 1,
The calculation of k-1) is repeatedly executed. Therefore, α ** m = ALi and α **-m = BLi (m = 2 ** i,
If the values of i = 0, 1, ..., K−1) are calculated and stored in advance according to i and are output according to i, the calculation can be executed efficiently. In this embodiment, Y = α ** x modp is calculated by the following algorithm.
Performs modular exponentiation of.

【0022】 INPUT α、X、p (入力) C=1 (初期設定) IF HW(X)>k/2 THEN X=2**k−X (判定1) FOR i=k−1 TO 0 IF HW(X)〉k/2 THEN Ai=BLi ELSE Ai=ALi (判定2) IF Xi=1 THEN C=C・Ai modp (演算) NEXT Y=CINPUT α, X, p (input) C = 1 (initial setting) IF HW (X)> k / 2 THEN X = 2 ** k−X (judgment 1) FOR i = k−1 TO 0 IF HW (X)> k / 2 THEN Ai = BLi ELSE Ai = ALi (judgment 2) IF Xi = 1 THEN C = C · Ai modp (calculation) NEXT Y = C

【0023】このようにして、本実施例によると、AL
i、BLiを予め計算して記憶して置き、これらの既計算
値を選択使用し、剰余乗算の演算の回数をk/2以下に
抑えて、べき乗剰余演算を効率的に実行することが可能
になる。
Thus, according to this embodiment, the AL
It is possible to calculate i and BLi in advance and store them, select and use these calculated values, suppress the number of modulo multiplication operations to k / 2 or less, and efficiently execute the modular exponentiation operation. become.

【0024】図1は本実施例のアルゴリズムを実行する
べき乗剰余演算回路で、同図で1はXを入力して格納し
論理回路3に順次ビット単位で出力する格納回路でバッ
ファやシフトレジスタで構成され、この格納回路1に、
カウンタまたはデコーダとコンパレータで構成され、X
の1が立っているビットがk/2より大きいか否かを判
定する判定回路2が接続されている。この判定回路2
は、格納回路1から出力されるXの1が立っているビッ
トの数がk/2より大きい場合{HW(X)>k/2}
には1を出力し、Xの1が立っているビットの数がk/
2より小さい場合{HW(X)>k/2}には0を出力
する機能を有する。判定回路2と格納回路1とには、排
他的論理和回路で構成される論理回路3が接続され、こ
の論理回路3は、判定回路2の出力が1の時には、格納
回路1から出力されるXiを反転して出力し、判定回路
2の出力が0の時には、格納回路1からの出力をそのま
ま出力する機能を有している。
FIG. 1 shows a modular exponentiation operation circuit for executing the algorithm of the present embodiment. In FIG. 1, reference numeral 1 is a storage circuit for inputting and storing X and sequentially outputting it to the logic circuit 3 in bit units, such as a buffer or a shift register. It is configured, and in this storage circuit 1,
Comprised of a counter or decoder and a comparator, X
The determination circuit 2 for determining whether the bit for which 1 is set is larger than k / 2 is connected. This determination circuit 2
Is greater than the number of 1-bits of X output from the storage circuit 1 is larger than k / 2 {HW (X)> k / 2}
1 is output to and the number of bits for which 1 of X is set is k /
When it is smaller than 2, {HW (X)> k / 2} has a function of outputting 0. A logic circuit 3 formed of an exclusive OR circuit is connected to the determination circuit 2 and the storage circuit 1. The logic circuit 3 is output from the storage circuit 1 when the output of the determination circuit 2 is 1. It has a function of inverting and outputting Xi, and when the output of the determination circuit 2 is 0, the output from the storage circuit 1 is output as it is.

【0025】また、判定回路2には出力回路4が接続さ
れ、この出力回路4は、ROMを備えこのROMには予
め演算されたALi、BLiが格納されていて、出力回路
4は、アドレスiに応じて判定回路2の出力が0の時に
ALiをROMから読出して出力し、判定回路2の出力
が1の時にBLiをROMから読出して出力する機能を
有している。出力回路4と論理回路3とには剰余乗算回
路5が接続され、この剰余乗算回路5は、最初C=1に
セットされ論理回路3からの出力が1の時に、出力回路
4から出力されるALi或いはBLiに基づいて、C=C
・Ai modpの乗剰余演算を実行し、その結果を記
憶する機能を有している。
An output circuit 4 is connected to the judging circuit 2, and the output circuit 4 has a ROM which stores precalculated ALi and BLi. The output circuit 4 has an address i. In accordance with the above, when the output of the determination circuit 2 is 0, ALi is read from the ROM and output, and when the output of the determination circuit 2 is 1, BLi is read from the ROM and output. A remainder multiplication circuit 5 is connected to the output circuit 4 and the logic circuit 3. The remainder multiplication circuit 5 is output from the output circuit 4 when C = 1 is initially set and the output from the logic circuit 3 is 1. C = C based on ALi or BLi
It has a function of executing the modular exponentiation of Ai modp and storing the result.

【0026】このような構成のべき乗剰余演算回路で
は、格納回路1から出力されるXに対して、判定回路2
はHW(X)>k/2か否かの判定を行い、HW(X)
>k/2であると判定されると判定回路2からは1が出
力される。この出力に基づいて論理回路3では、格納回
路1から出力されるXiを反転して剰余乗算回路5に入
力する。この時、出力回路4はiに対応してBLiを剰
余乗算回路5に出力し、剰余乗算回路5では、反転され
たXi即ち|Xi|が1の時に、出力回路4から入力され
る。BLiに基づいて、C=C・Ai modpの乗剰余
演算を実行する。また、判定回路2により格納回路1か
ら出力されるXに対して、HW(X)>k/2でないと
判定されると判定回路2からは0が出力される。この出
力に基づいて論理回路3では、格納回路1から出力され
るXiをそのまま剰余乗算回路5に入力する。この時、
出力回路4はiに対応してALiを剰余乗算回路5に出
力し、剰余乗算回路5では、Xiが1の時に、出力回路
4から入力されるALiに基づいて、C=C・Ai mo
dpの乗剰余演算を実行する。
In the modular exponentiation operation circuit having such a configuration, the determination circuit 2 is applied to the X output from the storage circuit 1.
Determines whether HW (X)> k / 2, and then HW (X)
When it is determined that> k / 2, 1 is output from the determination circuit 2. Based on this output, the logic circuit 3 inverts Xi output from the storage circuit 1 and inputs it to the remainder multiplication circuit 5. At this time, the output circuit 4 outputs BLi to the remainder multiplication circuit 5 corresponding to i. In the remainder multiplication circuit 5, when the inverted Xi, that is, | Xi | is 1, it is input from the output circuit 4. Based on BLi, a modular exponentiation of C = C · Ai modp is executed. When the determination circuit 2 determines that X output from the storage circuit 1 is not HW (X)> k / 2, the determination circuit 2 outputs 0. Based on this output, the logic circuit 3 inputs the Xi output from the storage circuit 1 to the remainder multiplication circuit 5 as it is. This time,
The output circuit 4 outputs ALi corresponding to i to the remainder multiplication circuit 5, and when Xi is 1, the remainder multiplication circuit 5 outputs Ci = C · Ai mo based on ALi input from the output circuit 4.
Executes the modular exponentiation of dp.

【0027】図1のべき乗剰余演算によると、演算に使
用するALiとBLiを予め計算して出力回路4のR0M
に格納して置き、判定回路2のHW(X)>k/2か否
かの判定に基づいて、ALiかBLiを選択して出力回路
4から取込んでC=C・Aimodpの剰余乗算を行
い、剰余乗算の演算は最高でk/2回以下に抑えられ、
べき乗剰余演算を効率的に実行することができる。
According to the modular exponentiation operation of FIG. 1, ALi and BLi used for the operation are calculated in advance and R0M of the output circuit 4 is calculated.
Stored in the output circuit 4, based on the determination of the determination circuit 2 whether HW (X)> k / 2, ALi or BLi is selected and fetched from the output circuit 4, and the remainder multiplication of C = C · Aimodp is performed. And the calculation of the remainder multiplication is suppressed to k / 2 times or less at the maximum,
The modular exponentiation operation can be efficiently executed.

【0028】[第2の実施例]第1の実施例の場合と同
様に、底aが定数の場合のY=α**x modpのべ
き乗剰余演算を行う過程において、α**m或いはα*
*-m(m=2**i、i=0、1・・・k−1)の演算
が繰り返して実行される。そこで、α**m=LAiとα
**-m=BLi(m=2**i、i=0、1・・・k−
1)の値を予め演算して格納して置き、iに応じて出力
するようにすれば、演算を効率的に実行することができ
る。本実施例では、次のようなアルゴリズムによって、
Y=α**x modpのべき乗剰余演算を実行する。
[Second Embodiment] Similar to the first embodiment, in the process of performing modular exponentiation of Y = α ** x modp when the base a is a constant, α ** m or α *
The calculation of * -m (m = 2 ** i, i = 0, 1 ... k-1) is repeatedly executed. Therefore, α ** m = LAi and α
**-m = BLi (m = 2 ** i, i = 0, 1 ... k-
If the value of 1) is calculated and stored in advance and is output according to i, the calculation can be executed efficiently. In this embodiment, the following algorithm is used.
Perform a modular exponentiation operation of Y = α ** x modp.

【0029】 INPUT a、X、p (入力) C=1 (初期設定) IF HW(X)>k/2 THEN X=2**k−X(判定1) FOR i=k−1 TO 0 IF HW(X)〉k/2 THEN Ai=BLi ELSE Ai=ALi (判定2) IF Xi=0 THEN Ai=1 (判定3) C=C・Ai modp (演算) NEXT Y=CINPUT a, X, p (input) C = 1 (initial setting) IF HW (X)> k / 2 THEN X = 2 ** k−X (judgment 1) FOR i = k−1 TO 0 IF HW (X)> k / 2 THEN Ai = BLi ELSE Ai = ALi (judgment 2) IF Xi = 0 THEN Ai = 1 (judgment 3) C = C · Ai modp (calculation) NEXT Y = C

【0030】本実施例でも、ALi、BLiを予め計算し
て記憶して置き、これらの既計算値を選択使用し、剰余
乗算の演算の回数をk/2以下に抑えて、乗剰余演算を
効率的に実行することが可能になる。
Also in this embodiment, ALi and BLi are calculated and stored in advance, these calculated values are selectively used, the number of modulo multiplication operations is suppressed to k / 2 or less, and the modular exponentiation is performed. It becomes possible to execute it efficiently.

【0031】図2は本実施例のアルゴリズムを実行する
べき乗剰余演算回路で、同図で1はXを入力して格納し
論理回路3Aに順次ビット単位で出力する格納回路でバ
ッファやシフトレジスタで構成され、この格納回路1
に、カウンタまたはデコーダとコンパレータで構成さ
れ、Xの1が立っているビットがk/2より大きいか否
かを判定する判定回路2が接続されている。この判定回
路2は、格納回路1から出力されるXの1が立っている
ビットの数がk/2より大きい場合{HW(X)>k/
2}には1を出力し、Xの1が立っているビットの数が
k/2より小さい場合{HW(X)>k/2}には0を
出力する機能を有する。格納回路1と判定回路2とに
は、図3に示すようにNAND回路6、反転回路7及び
NAND回路8を備えた論理回路3Aが接続されてい
る。
FIG. 2 shows a modular exponentiation operation circuit for executing the algorithm of this embodiment. In FIG. 2, reference numeral 1 is a storage circuit which inputs and stores X and sequentially outputs it to the logic circuit 3A bit by bit in a buffer or a shift register. Configured, this storage circuit 1
Further, a judgment circuit 2 which is composed of a counter or a decoder and a comparator and judges whether or not the bit in which 1 of X is set is larger than k / 2 is connected. When the number of 1-bits of X output from the storage circuit 1 is larger than k / 2, the determination circuit 2 {HW (X)> k /
It has a function of outputting 1 to 2} and outputting 0 to {HW (X)> k / 2} when the number of bits in which 1 of X is set is smaller than k / 2. As shown in FIG. 3, a logic circuit 3A including a NAND circuit 6, an inverting circuit 7 and a NAND circuit 8 is connected to the storage circuit 1 and the determination circuit 2.

【0032】この論理回路3Aは、NAND回路6の入
力端子に、格納回路1の出力端子と判定回路2の出力端
子とが接続され、NAND回路8の入力端子に、格納回
路1の出力端子と反転回路7の出力端子とが接続され、
反転回路7の入力端子には判定回路2の出力端子が接続
された構成になっている。そして、論理回路3Aは格納
回路1からの出力XiがXi=0の時に[00]、格納回
路1からの出力XiがXi=1で、判定回路2の出力が0
の時に[01]、格納回路1からの出力XiがXi=1
で、判定回路2の出力が1の時に[10]を出力する機
能を有している。
In this logic circuit 3A, the input terminal of the NAND circuit 6 is connected to the output terminal of the storage circuit 1 and the output terminal of the determination circuit 2, and the input terminal of the NAND circuit 8 is connected to the output terminal of the storage circuit 1. The output terminal of the inverting circuit 7 is connected,
The output terminal of the determination circuit 2 is connected to the input terminal of the inverting circuit 7. The logic circuit 3A outputs [00] when the output Xi from the storage circuit 1 is Xi = 0, the output Xi from the storage circuit 1 is Xi = 1, and the output from the determination circuit 2 is 0.
At the time of [01], the output Xi from the storage circuit 1 is Xi = 1
Then, it has a function of outputting [10] when the output of the determination circuit 2 is 1.

【0033】この論理回路3Aには出力回路4が接続さ
れ、出力回路4はROMを備え、このROMには予め演
算されたALi、BLiが格納されていて、出力回路4
は、論理回路3の出力が[00]の時に1、[01]ま
たは[10]の時にiに応じてALiまたはBLiを出力
する機能を有している。そして、出力回路4には、最初
C=1にセットされ出力回路4から出力されるALi或
いはBLiに基づいて、C=C・Ai modpの乗剰余
演算を実行し、その結果を記憶する剰余乗算回路5が接
続されている。
An output circuit 4 is connected to the logic circuit 3A, and the output circuit 4 is provided with a ROM. The ROM stores precomputed ALi and BLi.
Has a function of outputting 1 when the output of the logic circuit 3 is [00] and ALi or BLi according to i when the output is [01] or [10]. Then, the output circuit 4 is first set to C = 1 and based on ALi or BLi output from the output circuit 4, performs a modular multiplication operation of C = C · Ai modp and stores the result. The circuit 5 is connected.

【0034】このような構成の乗剰余演算回路では、格
納回路1から出力されるXに対して、判定回路2はHW
(X)>k/2か否かの判定を行い、HW(X)>k/
2であると判定されると判定回路2からは1が出力され
る。判定回路2から1が出力された場合には、論理回路
3Aからは、格納回路1から出力されるXiが1である
と、[10]が出力される。また、判定回路2が格納回
路1から出力されるXに対して、HW(X)>k/2で
ないと判定すると、判定回路2からは0が出力される。
判定回路2から0が出力された場合には、論理回路3A
からは、格納回路1から出力されるXiが1であると、
[01]が出力される。そして、格納回路1から出力さ
れるXiが0であると、論理回路2Aからは[00]が
出力される。
In the modular exponentiation circuit having such a configuration, for the X output from the storage circuit 1, the determination circuit 2 outputs HW.
It is determined whether or not (X)> k / 2, and HW (X)> k /
When it is determined that the value is 2, the determination circuit 2 outputs 1. When 1 is output from the determination circuit 2, if the Xi output from the storage circuit 1 is 1, the logic circuit 3A outputs [10]. When the determination circuit 2 determines that X output from the storage circuit 1 does not satisfy HW (X)> k / 2, the determination circuit 2 outputs 0.
When the determination circuit 2 outputs 0, the logic circuit 3A
From that, if Xi output from the storage circuit 1 is 1,
[01] is output. When Xi output from the storage circuit 1 is 0, [00] is output from the logic circuit 2A.

【0035】出力回路4は、論理回路3Aの出力が[0
0]の時には1を、剰余乗算回路5に出力し、論理回路
3Aの出力が[01]または[10]の時には、iに対
応してALiまたはBLiを剰余乗算回路5に出力する。
そして、剰余乗算回路5では出力回路4から入力される
1、ALiまたはBLiに基づいて、C=C・Ai mo
dpの乗剰余演算を実行する。
In the output circuit 4, the output of the logic circuit 3A is [0
When the output of the logic circuit 3A is [01] or [10], ALi or BLi corresponding to i is output to the remainder multiplication circuit 5 when 0].
Then, in the remainder multiplication circuit 5, C = C · Ai mo based on 1, ALi or BLi input from the output circuit 4.
Executes the modular exponentiation of dp.

【0036】図2の乗剰余演算によると、演算に使用す
るALiとBLiを予め計算して出力回路4のR0Mに格
納して置き、判定回路2のHW(X)>k/2か否かの
判定と、格納回路1から出力されるXiが1か0かに基
づいて、論理回路3Aから出力される信号により、出力
回路4はALi、BLi或いは1を剰余乗算回路5に出力
し、剰余乗算回路5でC=C・Ai modpの剰余乗
算が行われ、剰余乗算の演算は最高でk/2回以下に抑
えられ、べき乗剰余演算を効率的に実行することができ
る。
According to the modular exponentiation operation of FIG. 2, ALi and BLi used in the operation are calculated in advance and stored in R0M of the output circuit 4, and whether or not HW (X)> k / 2 of the determination circuit 2 is satisfied. The output circuit 4 outputs ALi, BLi or 1 to the remainder multiplication circuit 5 according to the signal output from the logic circuit 3A based on the determination of the above and whether Xi output from the storage circuit 1 is 1 or 0. The multiplication circuit 5 performs modulo multiplication of C = C · Ai modp, and the modulo multiplication operation can be suppressed to k / 2 times or less at maximum, and the exponentiation modulo operation can be efficiently executed.

【0037】[0037]

【発明の効果】第1の発明に係るべき乗剰余演算方法に
よると、Y=α**x modp(p、a、xは整数)
のべき乗剰余演算に際して、α**mとα**-m(m=
2**i、i=0、1・・・k−1)の値をiに対応し
て予め演算し、Xの1が立っているビット数がk/2
(kはXのビット数)より大きいか否かの判定に基づい
て、α**mまたはα**-mの何れかがiに応じて順次
出力され、この出力をAiとして、Xの2進コードXiに
応じて、C=C・Ai modpが演算されるので、剰
余乗算の演算の回数をk/2以下に抑えて、Y=α**
x modpの乗剰余演算を効率的に実行することが可
能になる。
According to the modular exponentiation calculation method of the first invention, Y = α ** x modp (p, a, x are integers)
When calculating the modular exponentiation of α ** m and α **-m (m =
2 ** i, i = 0, 1 ... k-1) is calculated in advance corresponding to i, and the number of bits in which 1 of X is set is k / 2.
Based on the determination as to whether or not (k is the number of bits of X), either α ** m or α **-m is sequentially output according to i. Since C = C · Ai modp is calculated according to the decimal code Xi, the number of modulo multiplication operations is suppressed to k / 2 or less, and Y = α **
It is possible to efficiently execute the modular multiplication operation of x modp.

【0038】第2の発明に係るべき乗剰余演算方法によ
ると、Y=α**x modp(p、a、xは整数)の
べき乗剰余演算に際して、α**mとα**-m(m=2
**i、i=0、1・・・k−1)の値をiに対応して
予め演算し、Xの1が立っているビット数がk/2(k
はXのビット数)より大きいか否かの判定結果とXの2
進コードXiとに応じて、α**m、α**-mまたは1の
何れかがiに応じて順次出力され、この出力に応じて、
C=C・Ai modpが演算されるので、剰余乗算の
演算の回数をk/2以下に抑えて、Y=α**x mo
dpの乗剰余演算を効率的に実行することが可能にな
る。
According to the modular exponentiation method according to the second aspect of the present invention, in the modular exponentiation operation of Y = α ** x modp (p, a, x is an integer), α ** m and α **-m (m = 2
The value of ** i, i = 0, 1 ... k-1) is calculated in advance corresponding to i, and the number of bits in which 1 of X is set is k / 2 (k
Is greater than the number of bits of X) and X is 2
Depending on the decimal code Xi, either α ** m, α **-m or 1 is sequentially output according to i, and according to this output,
Since C = C · Ai modp is calculated, the number of modulo multiplication operations is suppressed to k / 2 or less, and Y = α ** x mod
It is possible to efficiently execute the modular exponentiation of dp.

【0039】第3の発明に係るべき乗剰余演算回路によ
ると、Y=α**x modp(p、a、xは整数)の
べき乗剰余演算に際して、α**mとα**-m(m=2
**i、i=0、1・・・k−1)の値をiに対応して
予め演算し、Xの1が立っているビット数がk/2(k
はXのビット数)より大きいか否かの判定に基づいて、
α**mまたはα**-mの何れかがiに応じて順次出力
され、この出力をAiとして、Xの2進コードXiに応じ
て、C=C・Ai modpが演算されるので、剰余乗
算の演算の回数をk/2以下に抑えて、Y=α**x
modpの乗剰余演算を効率的に実行することが可能に
なる。
According to the modular exponentiation operation circuit of the third invention, when the modular exponentiation operation of Y = α ** x modp (p, a, x is an integer) is performed, α ** m and α **-m (m = 2
The value of ** i, i = 0, 1 ... k-1) is calculated in advance corresponding to i, and the number of bits in which 1 of X is set is k / 2 (k
Is larger than the number of bits of X),
Either α ** m or α **-m is sequentially output according to i, and C = C · Ai modp is calculated according to the binary code Xi of X with this output as Ai. The number of modular multiplication operations is suppressed to k / 2 or less, and Y = α ** x
It becomes possible to efficiently execute modulo modular exponentiation.

【0040】第4の発明に係るべき乗剰余演算回路によ
ると、Y=α**x modp(p、a、xは整数)の
べき乗剰余演算を行う場合に、α**mとα**-m(m
=2**i、i=0、1・・・k−1)の値をiに対応
して予め演算し、Xの1が立っているビット数がk/2
(kはXのビット数)より大きいか否かの判定結果とX
の2進コードXiとに応じて、α**m、α**-mまたは
1の何れかがiに応じて順次出力され、この出力に応じ
て、C=C・Ai modpが演算されるので、剰余乗
算の演算の回数をk/2以下に抑えて、Y=α**x
modpのべき乗剰余演算を効率的に実行することが可
能になる。
According to the modular exponentiation operation circuit of the fourth invention, when performing modular exponentiation operation of Y = α ** x modp (p, a, x is an integer), α ** m and α **- m (m
= 2 ** i, i = 0, 1 ... k-1) is calculated in advance corresponding to i, and the number of bits in which 1 of X stands is k / 2.
(K is the number of bits of X)
Either α ** m, α **-m or 1 is sequentially output according to i according to the binary code Xi of C and C = C · Ai modp is calculated according to this output. Therefore, the number of modulo multiplication operations is suppressed to k / 2 or less, and Y = α ** x
It becomes possible to efficiently execute the modular exponentiation operation of modp.

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

【図1】本発明の第1の実施例に使用される乗剰余演算
回路の構成を示すブロック図である。
FIG. 1 is a block diagram showing a configuration of a modular multiplication calculation circuit used in a first embodiment of the present invention.

【図2】本発明の第2の実施例に使用される乗剰余演算
回路の構成を示すブロック図である。
FIG. 2 is a block diagram showing a configuration of a modular multiplication calculation circuit used in the second embodiment of the present invention.

【図3】図2の論理回路の構成を示すブロック図であ
る。
3 is a block diagram showing a configuration of a logic circuit of FIG.

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

1 格納回路 2 判定回路 3、3A 論理回路 4 出力回路 5 剰余乗算回路 6、8 NAND回路 7 反転回路 1 Storage Circuit 2 Judgment Circuit 3, 3A Logic Circuit 4 Output Circuit 5 Residue Multiplication Circuit 6, 8 NAND Circuit 7 Inversion Circuit

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 Y=α**x modp(p、α、Xは
整数,**はべき指数とする)のべき乗剰余演算を行う
べき乗剰余演算方法において、 Xの1が立っているビット数をカウントすることによ
り、該カウント値がk/2(kはXのビット数)より大
きいか否かを判定する判定ステップと、 α**mとα**-m(m=2**i、i=0、1・・・k
−1)の値をiに対応して予め演算しておき、前記判定
ステップでの判定結果に応じて、α**mまたはα**-
mの何れかをiに応じて順次出力する出力ステップと、 該出力ステップでの出力をAiとして、Xの2進コード
Xiに応じて、C=C・Ai modpを演算する演算ス
テップとを有することを特徴とするべき乗剰余演算方
法。
1. A power-residue calculation method for performing a power-residue calculation of Y = α ** x modp (p, α, X are integers, and ** is a power exponent). By determining whether the count value is larger than k / 2 (k is the number of bits of X), and α ** m and α **-m (m = 2 ** i , I = 0, 1 ... k
The value of -1) is calculated in advance corresponding to i, and α ** m or α **-depending on the determination result in the determination step.
It has an output step of sequentially outputting any of m according to i, and an operation step of calculating C = C · Ai modp according to the binary code Xi of X, with the output at the output step as Ai. A modular exponentiation method characterized by the following.
【請求項2】 Y=α**x modp(p、α、Xは
整数,**はべき指数とする)のべき乗剰余演算を行う
べき乗剰余演算方法において、 Xの1が立っているビット数をカウントすることによ
り、該カウント値がk/2(kはXのビット数)より大
きいか否かを判定する判定ステップと、 α**mとα**-m(m=2**i、i=0、1・・・
k−1)の値をiに対応して予め演算しておき、前記判
定ステップでの判定結果とXの2進コードXiとに応じ
て、α**m、α**-mまたは1の何れかをiに応じて
順次出力する出力ステップと、 該出力ステップでの出力をAiとして、Xの2進コード
Xiに応じて、C=C・Ai modpを演算する演算ス
テップとを有することを特徴とするべき乗剰余演算方
法。
2. A power-residue calculation method for performing a power-residue calculation of Y = α ** x modp (p, α, X are integers, and ** is a power exponent). A determination step of determining whether or not the count value is larger than k / 2 (k is the number of bits of X), and α ** m and α **-m (m = 2 ** i , I = 0, 1 ...
The value of k-1) is calculated in advance in correspondence with i, and α ** m, α **-m or 1 of α ** m, α **-m or 1 is calculated according to the determination result in the determination step and the binary code Xi of X. It has an output step of sequentially outputting any of them in accordance with i, and an arithmetic step of computing C = C · Ai modp in accordance with the binary code Xi of X, with the output in the output step being Ai. A characteristic modular exponentiation method.
【請求項3】 Y=α**x modp(p、α、Xは
整数,**はべき指数とする)のべき乗剰余演算を行う
べき乗剰余演算回路において、 Xの1が立っているビット数をカウントすることによ
り、該カウント値がk/2(kはXのビット数)より大
きいか否かを判定する判定手段と、 α**mとα**-m(m=2**i、i=0、1・・・
k−1)の値をiに対応して予め演算格納し、前記判定
手段での判定結果に応じて、α**mまたはα**-mの
何れかをiに応じて順次出力する出力手段と、 該出力手段での出力をAiとして、Xの2進コードXiに
応じて、C=C・Aimodpを演算する演算手段とを
有することを特徴とするべき乗剰余演算回路。
3. A number of bits for which 1 of X is set in a power-residue arithmetic circuit for performing a power-residue arithmetic operation of Y = α ** x modp (p, α, X are integers, and ** is a power exponent). By determining whether the count value is greater than k / 2 (k is the number of bits of X), α ** m and α **-m (m = 2 ** i). , I = 0, 1 ...
An output that stores in advance the value of k-1) corresponding to i, and sequentially outputs either α ** m or α **-m according to i according to the determination result by the determination means. A modular exponentiation operation circuit comprising: means and an operation means for calculating C = C · Aimodp in accordance with a binary code Xi of X, with an output from the output means being Ai.
【請求項4】 Y=α**x modp(p、α、Xは
整数,**はべき指数とする)のべき乗剰余演算を行う
べき乗剰余演算回路において、 Xの1が立っているビット数をカウントすることによ
り、該カウント値がk/2(kはXのビット数)より大
きいか否かを判定する判定手段と、 α**mとα**-m(m=2**i、i=0、1・・・k
−1)の値をiに対応して予め演算格納し、前記判定手
段での判定結果とXの2進コードXiとに応じて、α*
*m、α**-mまたは1の何れかをiに応じて順次出力
する出力手段と、 該出力手段での出力をAiとして、Xの2進コードxiに
応じて、C=C・Aimodpを演算する演算手段とを
有することを特徴とするべき乗剰余演算回路。
4. A number of bits for which 1 of X is set in a power-residue arithmetic circuit for performing a power-residue arithmetic operation of Y = α ** x modp (p, α, X are integers, and ** is a power exponent). By determining whether or not the count value is larger than k / 2 (k is the number of bits of X), α ** m and α **-m (m = 2 ** i , I = 0, 1 ... k
The value of -1) is calculated and stored in advance corresponding to i, and α * is determined according to the result of the determination by the determination means and the binary code Xi of X.
Output means for sequentially outputting either * m, α **-m or 1 according to i, and C = C · Aimodp according to the binary code xi of X, where Ai is the output from the output means. A modular exponentiation operation circuit, comprising:
JP5351453A 1993-12-28 1993-12-28 Power residue operation method/circuit Pending JPH07200267A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5351453A JPH07200267A (en) 1993-12-28 1993-12-28 Power residue operation method/circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5351453A JPH07200267A (en) 1993-12-28 1993-12-28 Power residue operation method/circuit

Publications (1)

Publication Number Publication Date
JPH07200267A true JPH07200267A (en) 1995-08-04

Family

ID=18417390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5351453A Pending JPH07200267A (en) 1993-12-28 1993-12-28 Power residue operation method/circuit

Country Status (1)

Country Link
JP (1) JPH07200267A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009258502A (en) * 2008-04-18 2009-11-05 Toshiba Corp Multiplication device and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009258502A (en) * 2008-04-18 2009-11-05 Toshiba Corp Multiplication device and program

Similar Documents

Publication Publication Date Title
JP4875700B2 (en) Randomized modular polynomial reduction method and hardware therefor
JP3525209B2 (en) Power-residue operation circuit, power-residue operation system, and operation method for power-residue operation
US7831650B2 (en) Method for modular multiplication
US6795553B1 (en) Method and apparatus for modular inversion for information security and recording medium with a program for implementing the method
JP4783382B2 (en) Montgomery method multiplication remainder calculator
US6480606B1 (en) Elliptic curve encryption method and system
US7050579B1 (en) Cryptographic methods and apparatus using word-wise montgomery multiplication
JP3302043B2 (en) Encryption communication method and system
Moon et al. Fast VLSI arithmetic algorithms for high-security elliptic curve cryptographic applications
JP2004258141A (en) Arithmetic unit for multiple length arithmetic of montgomery multiplication residues
JP3616897B2 (en) Montgomery method multiplication remainder calculator
JP2001051832A (en) Multiplication residue arithmetic method and multiplication residue circuit
JPH07200267A (en) Power residue operation method/circuit
US20020114449A1 (en) Modular multiplier and an encryption/decryption processor using the modular multiplier
US10318245B2 (en) Device and method for determining an inverse of a value related to a modulus
KR100486697B1 (en) Modular arithmetic apparatus and method thereof
US7403965B2 (en) Encryption/decryption system for calculating effective lower bits of a parameter for Montgomery modular multiplication
KR20010000048A (en) Efficient and fast multiple points scalar multiplication method over elliptic curve using m-ary method
JPH0326114A (en) Multiplication remainder computing element
JP4541485B2 (en) Exponentiation arithmetic unit, exponentiation remainder arithmetic unit, elliptic power multiple arithmetic unit, arrangement of those methods, and recording medium
JP7406108B2 (en) Encryption/decryption system, encryption/decryption method, and encryption/decryption program
US20030128842A1 (en) Modular squaring circuit, modular squaring method, and modular squaring program
Al-Tuwaijry et al. A high speed RSA processor
KR100406138B1 (en) apparatus for NTRU Cryptosystem
KR20000008153A (en) Modular processing device and method