JPH10254683A - Remainder arithmetic device, information processor and remainder arithmetic method - Google Patents
Remainder arithmetic device, information processor and remainder arithmetic methodInfo
- Publication number
- JPH10254683A JPH10254683A JP5649597A JP5649597A JPH10254683A JP H10254683 A JPH10254683 A JP H10254683A JP 5649597 A JP5649597 A JP 5649597A JP 5649597 A JP5649597 A JP 5649597A JP H10254683 A JPH10254683 A JP H10254683A
- Authority
- JP
- Japan
- Prior art keywords
- mod
- value
- integer
- remainder
- obtaining
- 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
Links
Landscapes
- Complex Calculations (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、x2 mod n
あるいはx・u mod nの形の演算を高速に実行す
る剰余算装置、情報処理装置及び剰余算方法に関する。TECHNICAL FIELD The present invention relates to x 2 mod n
Alternatively, the present invention relates to a modular arithmetic device, an information processing device, and a modular arithmetic method that execute an operation in the form of x · u mod n at high speed.
【0002】[0002]
【従来の技術】RSA暗号は有力な公開鍵暗号の一方式
であるが、より高速な暗号化と復号が望まれる。RSA
暗号が比較的低速であるのは、巨大数のべき乗剰余算M
e mod n、Cd mod nの演算が低速なため
である。なお、RSA暗号は例えば文献1(R.Riv
est,A.Shamir and L.Adlema
n:“A Method for Obtaining
Digital Signatures and P
ublic Key Cryptosystem”,C
omm.ACM,Vol.21,No.2,pp.12
0−126,1978.)に詳しい。2. Description of the Related Art The RSA encryption is one of the powerful public key encryption systems, but higher-speed encryption and decryption are desired. RSA
The reason why the encryption is relatively slow is that the modular exponentiation of a huge number M
This is because the operations of e mod n and C d mod n are slow. The RSA encryption is described in, for example, Reference 1 (R. Riv
est, A .; Shamir and L.M. Adlema
n: “A Method for Obtaining
Digital Signatures and P
public Key Cryptosystem ", C
omm. ACM, Vol. 21, No. 2, pp. 12
0-126, 1978. ).
【0003】この高速化が望まれる点は、RSA暗号以
外の方式でも同様であり、RSA暗号と同じ構造、すな
わちck mod nの構造を持つ暗号方式でも全く同
様の問題を有している。なお、暗号方式とは、いわゆる
暗号方式の他に、署名方式あるいは鍵配送方式など、同
様のアルゴリズムを種々の目的のために用いる場合にお
ける各方式も含むものとする。[0003] The point that this high speed is desired is the same in systems other than the RSA encryption, and the same structure as the RSA encryption, that is, the encryption system having the structure of ck mod n has exactly the same problem. The encryption method includes not only a so-called encryption method but also each method in the case where a similar algorithm is used for various purposes, such as a signature method or a key distribution method.
【0004】この問題を解決するため、1つの方法とし
てck mod nの形の演算をab を求めることなし
に実現する方法がいくつか提案されている。例えば、べ
き乗算は単純な乗算の反復ではd−1回の乗算が必要で
あるが、dの2進展開に基づく平方と乗算の組合せで2
log2 d程度にまで乗算回数を減らした方法がある。
さらに加算鎖などの乗算回数を減らす方法がある。また
別の方法として、予備計算により計算の一部を表検索で
代行する方法も実用上の有力な方法である。また、例え
ばRSA暗号の復号過程のように、法の素因数分解が既
知の場合にのみ適用できる方法もある。これらの方法
は、例えば文献2(D.E.Knuth:The Ar
t of Computer Programming
Vol.2,2nd ed.,Chapter 4,
1980)、文献3(伊東利哉,佐古和恵:“有限体上
のアルゴリズムと多倍長・剰余演算の高速算法”,情報
処理,Vol.34,No.2,pp.170−17
9,1993)、文献4(森田光:“暗号技術と高速算
法”,情報処理,Vol.34,No.3,pp.33
6−342,1993)に詳しい。[0004] In order to solve this problem, several methods have been proposed as one method for realizing an operation of the form c k mod n without obtaining a b . For example, a power multiplication requires d-1 multiplications in a simple multiplication iteration, but a combination of squaring and multiplication based on the binary expansion of d gives 2
There is a method in which the number of multiplications is reduced to about log 2 d.
There is also a method of reducing the number of multiplications such as addition chains. As another method, a method of substituting a part of the calculation by table search by preliminary calculation is also a practically effective method. There is also a method that can be applied only when the prime factorization of the modulus is known, for example, in the decryption process of RSA encryption. These methods are described, for example, in Reference 2 (DE Knoth: The Ar).
t of Computer Programming
Vol. 2.2nd ed. , Chapter 4,
1980), Reference 3 (Toshiya Ito, Kazue Sako: "Algorithms on Finite Fields and High-Speed Arithmetic of Multiple-Length / Remainder Operations", Information Processing, Vol. 34, No. 2, pp. 170-17)
9, 1993), Reference 4 (Morita Morita: "Cryptography and High-Speed Algorithms", Information Processing, Vol. 34, No. 3, pp. 33)
6-342, 1993).
【0005】[0005]
【発明が解決しようとする課題】しかし従来の方法では
まだ十分な演算速度を得ることができず、さらなる演算
速度の高速化が望まれている。However, with the conventional method, a sufficient calculation speed cannot be obtained yet, and a further increase in the calculation speed is desired.
【0006】本発明は、上記事情を考慮してなされたも
ので、x2 mod nあるいはx・u mod nの
形の演算を高速に実行可能な剰余算装置、情報処理装置
及び剰余算方法を提供することを目的とする。SUMMARY OF THE INVENTION The present invention has been made in view of the above circumstances, and provides a residue arithmetic device, an information processing device, and a residue arithmetic method capable of executing an operation in the form of x 2 mod n or x · u mod n at high speed. The purpose is to provide.
【0007】また、より高速に剰余乗算を行うことによ
り復号演算を高速化した復号装置および復号方法を提供
することを目的とする。It is another object of the present invention to provide a decoding apparatus and a decoding method in which a decoding operation is speeded up by performing a remainder multiplication at a higher speed.
【0008】[0008]
【課題を解決するための手段】本発明(請求項1)に係
る剰余算装置は、法をnとする整数Xの剰余を、Xにつ
いてn以外の複数の整数をそれぞれ法として得た複数の
剰余から求める手段を備えたことを特徴とする。According to a first aspect of the present invention, there is provided a remainder calculating apparatus for calculating a remainder of an integer X whose modulus is n, a plurality of integers obtained by X using a plurality of integers other than n as a modulus. It is characterized by having means for obtaining from the remainder.
【0009】本発明(請求項2)に係る剰余算装置は、
法をnとする整数Xの剰余を、法をn以外の第1の整数
とするXの剰余と法をn以外の第2の整数とするXの剰
余とから求める手段を備えたことを特徴とする。[0009] According to the present invention (claim 2),
Means for obtaining a remainder of an integer X whose modulus is n from a remainder of X whose modulus is a first integer other than n and a remainder of X whose modulus is a second integer other than n. And
【0010】前記整数は、素因数分解が容易なもの、ま
たは複数の互いに素な整数に容易に分解可能なものが好
ましい。Preferably, the integer is one which can be easily decomposed into prime factors or one which can be easily decomposed into a plurality of relatively prime integers.
【0011】上記第1の整数と第2の整数は、例えばn
−1とn−2の組、n−1とn+1の組、n+1とn+
2の組など、任意の組が考えられる。The first integer and the second integer are, for example, n
-1 and n-2, n-1 and n + 1, n + 1 and n +
Any set, such as two sets, is possible.
【0012】本発明(請求項3)は、請求項1または2
に記載の剰余算装置において、前記整数Xは、x2 (た
だしxは0≦x<nを満たす整数)またはx・u(ただ
しxは0≦x<nを満たす整数かつuは0≦u<nを満
たす整数)であることを特徴とする。The present invention (claim 3) is based on claim 1 or 2
Wherein the integer X is x 2 (where x is an integer satisfying 0 ≦ x <n) or x · u (where x is an integer satisfying 0 ≦ x <n and u is 0 ≦ u <An integer satisfying n).
【0013】本発明(請求項4)に係る剰余算方法は、
所定の暗号方式を適用した処理装置において鍵nを法と
する整数Xの剰余を求める剰余算方法であって、法をn
以外の第1の整数とするXの剰余を求める処理と、法を
n以外の第2の整数とするXの剰余とから求める処理と
を、逐次的にまたは並行して実行し、求められた2つの
前記剰余をもとにして法をnとするXの剰余を求めるこ
とを特徴とする。[0013] The remainder calculating method according to the present invention (claim 4)
A method for calculating a remainder of an integer X modulo a key n in a processing device to which a predetermined encryption method is applied, wherein the modulus is n
The process of obtaining the remainder of X as a first integer other than n and the process of obtaining the modulus from the remainder of X as a second integer other than n are executed sequentially or in parallel. The method is characterized in that a remainder of X whose modulus is n is obtained based on the two remainders.
【0014】本発明(請求項5)は、請求項4に記載の
剰余算方法において、前記整数Xは、x2 (ただしxは
0≦x<nを満たす整数)またはx・u(ただしxは0
≦x<nを満たす整数かつuは0≦u<nを満たす整
数)であることを特徴とする。According to the present invention (claim 5), in the remainder calculation method according to claim 4, the integer X is x 2 (where x is an integer satisfying 0 ≦ x <n) or x · u (where x Is 0
≦ x <n and u is an integer satisfying 0 ≦ u <n).
【0015】本発明(請求項6)は、整数nと整数x
(0≦x<n)についてx2 modnを求める剰余算
装置であって、aを0以外の整数として、x2 mod
(n−a)を求める第1の処理手段と、bを0以外の
整数かつa≠bとして、x2mod (n−b)を求め
る第2の処理手段と、求められたx2 mod (n−
a)の値と求められたx2 mod (n−b)の値と
をもとにしてx2 mod nの値を求める第3の処理手
段とを備えたことを特徴とする。In the present invention (claim 6), an integer n and an integer x
A modulo arithmetic device for obtaining x 2 modn for (0 ≦ x <n), wherein a is an integer other than 0 and x 2 mod
First processing means for obtaining (na), second processing means for obtaining x 2 mod (n−b), where b is an integer other than 0 and a ≠ b, and x 2 mod ( n-
and a third processing means for obtaining a value of x 2 mod n based on the value of a) and the obtained value of x 2 mod (n−b).
【0016】本発明(請求項7)は、整数nと整数x
(0≦x<n)と整数u(0≦u<n)についてx・u
mod nを求める剰余算装置であって、aを0以外
の整数として、x・u mod (n−a)を求める第
1の処理手段と、bを0以外の整数かつa≠bとして、
x・u mod (n−b)を求める第2の処理手段
と、求められたx・u mod (n−a)の値と求め
られたx・u mod (n−b)の値をもとにしてx
・u mod nの値を求める第3の処理手段とを備え
たことを特徴とする。In the present invention (claim 7), an integer n and an integer x
X · u for (0 ≦ x <n) and integer u (0 ≦ u <n)
a modulo arithmetic unit for calculating mod n, wherein a is an integer other than 0, first processing means for obtaining x · u mod (na), and b is an integer other than 0 and a ≠ b,
a second processing means for calculating x · u mod (n−b), based on the calculated value of x · u mod (na) and the calculated value of x · u mod (n−b) Then x
A third processing means for obtaining a value of u mod n.
【0017】上記の(n−a)と(n−b)は、素因数
分解が容易なもの、または複数の互いに素な整数に容易
に分解可能なものが好ましい。The above (na) and (nb) are preferably those which can be easily decomposed into prime factors or those which can be easily decomposed into a plurality of relatively prime integers.
【0018】上記の(n−a)と(n−b)の組は、例
えばn−1とn−2の組、n−1とn+1の組、n+1
とn+2の組など、任意の組が考えられる。The set of (na) and (nb) is, for example, a set of n-1 and n-2, a set of n-1 and n + 1, and n + 1
An arbitrary set such as a set of and n + 2 can be considered.
【0019】本発明(請求項8)は、整数nと整数x
(0≦x<n)についてx2 modnを求める剰余算
装置であって、x2 mod (n−1)を求める第1
の処理手段と、x2 mod (n−2)を求める第2
の処理手段と、求められたx2 mod (n−1)の
値と求められたx2 mod (n−2)の値をもとに
してx2 mod nの値を求める第3の処理手段とを
備えたことを特徴とする。According to the present invention (claim 8), an integer n and an integer x
What is claimed is: 1. A residue calculating device for obtaining x 2 modn for (0 ≦ x <n), wherein a first device for obtaining x 2 mod (n−1)
Processing means for obtaining x 2 mod (n−2)
And third processing means for calculating the value of x 2 mod n based on the calculated value of x 2 mod (n-1) and the calculated value of x 2 mod (n-2) And characterized in that:
【0020】本発明(請求項9)は、整数nと整数x
(0≦x<n)と整数u(0≦u<n)についてx・u
mod nを求める剰余算装置であって、x・u m
od(n−1)を求める第1の処理手段と、x・u m
od (n−2)を求める第2の処理手段と、求められ
たx・u mod (n−1)の値と求められたx・u
mod (n−2)の値をもとにしてx・u mod
nの値を求める第3の処理手段とを備えたことを特徴
とする。According to the present invention (claim 9), an integer n and an integer x
X · u for (0 ≦ x <n) and integer u (0 ≦ u <n)
A modular arithmetic unit for calculating mod n, wherein x · um
first processing means for obtaining od (n-1); x · um
second processing means for obtaining the od (n-2), the value of the obtained x · u mod (n-1) and the obtained x · u
x · u mod based on the value of mod (n−2)
and a third processing means for obtaining the value of n.
【0021】本発明(請求項10)は、請求項6ないし
9のいずれか1項に記載の剰余算装置において、前記第
1の処理手段および前記第2の処理手段の各々は、剰余
の法とすべき値を複数の互いに素な値の積で表した場合
における当該互いに素な値それぞれを法として、与えら
れた値の剰余をそれぞれ求める手段と、同一の変数を左
辺とし、求められた剰余を右辺とし、該右辺の剰余に対
応する前記素な値を法とする連立合同式を解き、得られ
た解を求めるべき値とする手段とを備えたことを特徴と
する。According to a tenth aspect of the present invention, in the residue calculating apparatus according to any one of the sixth to ninth aspects, each of the first processing means and the second processing means is a modulo modulo. In the case where the value to be assumed is expressed as the product of a plurality of disjoint values, the means for calculating the remainder of a given value modulo each disjoint value, and the same variable as the left side, Means for solving a simultaneous congruence using the prime value corresponding to the remainder of the right side as a modulus, and obtaining the obtained solution as a value to be obtained.
【0022】本発明(請求項11)は、請求項6ないし
9のいずれか1項に記載の剰余算装置において、前記第
3の処理手段は、前記第1の処理手段において用いられ
た法の値とnとの差および前記第2の処理手段において
用いられた法の値とnとの差の組に応じて定まる、前記
第1の処理手段により求められた値および前記第2の処
理手段により求められた値を入力とする所定の関数を計
算し、得られた解を求めるべき値とする手段とを備えた
ことを特徴とする。According to the present invention (claim 11), in the modular arithmetic device according to any one of claims 6 to 9, the third processing means may be a modulo of the modulus used in the first processing means. The value obtained by the first processing means and the second processing means, which are determined according to a set of a difference between the value and n and a difference between the value of the modulus used in the second processing means and n. Means for calculating a predetermined function using the value obtained by the above as an input, and obtaining the obtained solution as a value to be obtained.
【0023】本発明(請求項12)は、所定の暗号方式
を適用した処理装置において鍵nを法として整数x(0
≦x<n)についてx2 mod nを求める剰余算方
法であって、aを0以外の整数として、x2 mod
(n−a)を求めるとともに、これと前後してまたは並
行して、bを0以外の整数かつa≠bとして、x2 mo
d (n−b)を求め、求められたx2 mod (n
−a)の値と求められたx2 mod (n−b)の値
とをもとにしてx2 mod nの値を求めることを特
徴とする。According to the present invention (claim 12), in a processing apparatus to which a predetermined encryption method is applied, an integer x (0
A ≦ x <n) remainder calculation method for obtaining the x 2 mod n for, as a non-zero integer and a, x 2 mod
(Na), and before or after or in parallel with this, b is an integer other than 0 and a ≠ b, and x 2 mo
d (n−b) is obtained, and the obtained x 2 mod (n
The method is characterized in that a value of x 2 mod n is obtained based on the value of −a) and the obtained value of x 2 mod (n−b).
【0024】好ましくは、a=1かつb=2を用いても
良い。Preferably, a = 1 and b = 2 may be used.
【0025】好ましくは、x2 mod (n−a)お
よびx2 mod (n−b)をそれぞれ求めるあたっ
ては、それぞれにおいて、剰余の法とすべき値を複数の
互いに素な値の積で表した場合における当該互いに素な
値それぞれを法として、与えられた値の剰余をそれぞれ
求め、次に、同一の変数を左辺とし、求められた剰余を
右辺とし、該右辺の剰余に対応する前記素な値を法とす
る連立合同式を解き、得られた解を求めるべき値とする
ようにしても良い。[0025] Preferably, x 2 is hit determining mod (n-a) and x 2 mod the (n-b) respectively, in each, a value to be modulo remainder by the product of a plurality of disjoint values Each of the disjoint values in the case of being expressed is modulo, the remainder of a given value is obtained, then the same variable is set as the left side, the obtained remainder is set as the right side, and the remainder corresponding to the remainder of the right side is obtained. A simultaneous congruence equation modulo a prime value may be solved and the obtained solution may be set as a value to be obtained.
【0026】また、好ましくは、x2 mod (n−
a)の値およびx2 mod (n−b)の値が求めら
れたならば、次に、aおよびbの組に応じて定まる、求
められたx2 mod (n−a)の値およびx2 m
od (n−b)の値を入力とする所定の関数を計算
し、得られた解を求めるべき値とするようにしても良
い。Preferably, x 2 mod (n−
If the value of the value and x 2 mod (n-b) of a) is obtained, then, determined according to a set of a and b, the values of the determined x 2 mod (n-a) and x 2 m
A predetermined function that receives the value of od (n−b) as an input may be calculated, and the obtained solution may be set as a value to be obtained.
【0027】本発明(請求項13)は、所定の暗号方式
を適用した処理装置において鍵nを法として整数x(0
≦x<n)と整数u(0≦u<n)についてについてx
・umod nを求める剰余算方法であって、aを0以
外の整数として、x・umod (n−a)を求めると
ともに、これと前後してまたは並行して、bを0以外の
整数かつa≠bとして、x・u mod (n−b)を
求め、求められたx・u mod (n−a)の値と求
められたx・u mod (n−b)の値とをもとにし
てx・u mod nの値を求めることを特徴とする。According to the present invention (claim 13), in a processing apparatus to which a predetermined encryption method is applied, an integer x (0
≦ x <n) and integer u (0 ≦ u <n)
A modulo calculation method for calculating umod n, wherein x is set to an integer other than 0, x · mod (na) is obtained, and b is an integer other than 0 and a X · u mod (n−b) is obtained as ≠ b, and based on the obtained value of x · u mod (na) and the obtained value of x · u mod (n−b), X · u mod n to obtain the value of x · u mod n.
【0028】好ましくは、a=1かつb=2を用いても
良い。Preferably, a = 1 and b = 2 may be used.
【0029】好ましくは、x・u mod (n−a)
およびx・u mod (n−b)をそれぞれ求めるあ
たっては、それぞれにおいて、剰余の法とすべき値を複
数の互いに素な値の積で表した場合における当該互いに
素な値それぞれを法として、与えられた値の剰余をそれ
ぞれ求め、次に、同一の変数を左辺とし、求められた剰
余を右辺とし、該右辺の剰余に対応する前記素な値を法
とする連立合同式を解き、得られた解を求めるべき値と
するようにしても良い。Preferably, x · u mod (na)
And x · u mod (n−b), respectively, in each case, when a value to be used as a remainder is expressed as a product of a plurality of disjoint values, the respective disjoint values are modulo Determine the remainder of the given value, then the same variable as the left side, the determined remainder as the right side, solve the simultaneous congruence modulo the prime value corresponding to the remainder of the right side, The obtained solution may be set to a value to be obtained.
【0030】また、好ましくは、x・u mod (n
−a)の値およびx・u mod(n−b)の値が求め
られたならば、次に、aおよびbの組に応じて定まる、
求められたx・u mod (n−a)の値およびx・
u mod (n−b)の値を入力とする所定の関数を
計算し、得られた解を求めるべき値とするようにしても
良い。Preferably, x · u mod (n
Once the value of −a) and the value of x · u mod (n−b) are determined, it is then determined according to the set of a and b.
The calculated value of x · u mod (na) and x · u mod (na)
A predetermined function that receives the value of u mod (n−b) as an input may be calculated, and the obtained solution may be set as a value to be obtained.
【0031】本発明(請求項14)は、kとnの対を鍵
としcを変換前のデータまたは該鍵に対応する鍵による
変換後のデータとして、ck mod nの値を、x2
mod n(ここで0≦x<n)の形の演算を実行す
る第1の演算手段とy・umod n(ここで0≦y<
n,0≦u<n)の形の演算を実行する第2の演算手段
とを適宜繰り返し実行させることにより求める情報処理
装置であって、前記第1の演算手段は、aを0以外の整
数として、x2 mod (n−a)を求める第1の処
理手段と、bを0以外の整数かつa≠bとして、x2
mod (n−b)を求める第2の処理手段と、求めら
れたx2 mod (n−a)の値と求められたx2
mod (n−b)の値とをもとにしてx2 mod
nの値を求める第3の処理手段とを備え、前記第2の演
算手段は、y・u mod (n−a)を求める第4の
処理手段と、y・u mod (n−b)を求める第5
の処理手段と、求められたy・u mod (n−a)
の値と求められたy・umod (n−b)の値をもと
にしてy・u mod nの値を求める第6の処理手段
とを備えたことを特徴とする。According to the present invention (claim 14), the value of c k mod n is defined as x 2 as data before conversion or data after conversion using a key corresponding to the pair of k and n as a key.
first arithmetic means for performing an operation of the form mod n (where 0 ≦ x <n) and y · mod n (where 0 ≦ y <
(n, 0 ≦ u <n). The information processing apparatus according to claim 1, wherein the second arithmetic unit executes an arithmetic operation in the form of an integer other than 0. as, x 2 mod a first processing means for obtaining an (n-a), and b is an integer and a ≠ b other than 0, x 2
second processing means for calculating mod (n-b), the value of the determined x 2 mod (na) and the determined x 2
x 2 mod based on the value of mod (n−b)
a third processing means for obtaining a value of n, wherein the second arithmetic means includes a fourth processing means for obtaining y · u mod (na), and a y · u mod (n−b) Fifth to seek
Processing means and the determined yumod (na)
And a sixth processing means for obtaining a value of yumod n based on the value of y · mod (n−b).
【0032】前記情報処理装置は、例えば、暗号化装
置、復号装置、署名装置、認証装置、鍵配送装置であ
る。The information processing device is, for example, an encryption device, a decryption device, a signature device, an authentication device, and a key distribution device.
【0033】好ましくは、a=1かつb=2を用いても
良い。Preferably, a = 1 and b = 2 may be used.
【0034】好ましくは、x2 mod (n−a)お
よびx2 mod (n−b)をそれぞれ求めるあたっ
ては、それぞれにおいて、剰余の法とすべき値を複数の
互いに素な値の積で表した場合における当該互いに素な
値それぞれを法として、与えられた値の剰余をそれぞれ
求め、次に、同一の変数を左辺とし、求められた剰余を
右辺とし、該右辺の剰余に対応する前記素な値を法とす
る連立合同式を解き、得られた解を求めるべき値とする
ようにしても良い。Preferably, each of x 2 mod (na) and x 2 mod (nb) is determined by calculating the value to be used as the remainder modulo the product of a plurality of disjoint values. Each of the disjoint values in the case of being expressed is modulo, the remainder of a given value is obtained, then the same variable is set as the left side, the obtained remainder is set as the right side, and the remainder corresponding to the remainder of the right side is obtained. A simultaneous congruence equation modulo a prime value may be solved and the obtained solution may be set as a value to be obtained.
【0035】また、好ましくは、x2 mod (n−
a)の値およびx2 mod (n−b)の値が求めら
れたならば、次に、aおよびbの組に応じて定まる、求
められたx2 mod (n−a)の値およびx2 m
od (n−b)の値を入力とする所定の関数を計算
し、得られた解を求めるべき値とするようにしても良
い。Preferably, x 2 mod (n−
If the value of the value and x 2 mod (n-b) of a) is obtained, then, determined according to a set of a and b, the values of the determined x 2 mod (n-a) and x 2 m
A predetermined function that receives the value of od (n−b) as an input may be calculated, and the obtained solution may be set as a value to be obtained.
【0036】好ましくは、y・u mod (n−a)
およびy・u mod (n−b)をそれぞれ求めるあ
たっては、それぞれにおいて、剰余の法とすべき値を複
数の互いに素な値の積で表した場合における当該互いに
素な値それぞれを法として、与えられた値の剰余をそれ
ぞれ求め、次に、同一の変数を左辺とし、求められた剰
余を右辺とし、該右辺の剰余に対応する前記素な値を法
とする連立合同式を解き、得られた解を求めるべき値と
するようにしても良い。Preferably, yumod (na)
And y · u mod (n−b), respectively, in each case, when the value to be used as the remainder is expressed as the product of a plurality of disjoint values, the respective disjoint values are modulo Determine the remainder of the given value, then the same variable as the left side, the determined remainder as the right side, solve the simultaneous congruence modulo the prime value corresponding to the remainder of the right side, The obtained solution may be set to a value to be obtained.
【0037】また、好ましくは、y・u mod (n
−a)の値およびy・u mod(n−b)の値が求め
られたならば、次に、aおよびbの組に応じて定まる、
求められたy・u mod (n−a)の値およびy・
u mod (n−b)の値を入力とする所定の関数を
計算し、得られた解を求めるべき値とするようにしても
良い。Also, preferably, yumod (n
Once the value of -a) and the value of yumod (n-b) have been determined, they are then determined according to the set of a and b,
The obtained value of y · u mod (na) and y · u mod (na)
A predetermined function that receives the value of u mod (n−b) as an input may be calculated, and the obtained solution may be set as a value to be obtained.
【0038】本発明(請求項15)は、kとnの対を鍵
としaを変換前のデータまたは該鍵に対応する鍵による
変換後のデータとして、ck mod nの値を、x2
mod n(ここで0≦x<n)の形の演算とy・u
mod n(ここで0≦y<n,0≦u<n)の形の
演算とを適宜繰り返し実行させることにより求める情報
処理装置における剰余算方法であって、前記x2 mo
d nの値を求めるにあたっては、aを0以外の整数と
して、x2 mod (n−a)を求めるとともに、こ
れと前後してまたは並行して、bを0以外の整数かつa
≠bとして、x2 mod (n−b)を求め、求めら
れたx2 mod (n−a)の値と求められたx2
mod (n−b)の値とをもとにしてx2 mod
nの値を求め、前記y・u mod nの値を求めるに
あたっては、x・u mod (n−a)を求めるとと
もに、これと前後してまたは並行して、x・u mod
(n−b)を求め、求められたx・u mod (n−
a)の値と求められたx・u mod (n−b)の値
とをもとにしてx・u mod nの値を求めることを
特徴とする。According to the present invention (claim 15), the value of c k mod n is defined as x 2 , using a pair of k and n as a key and a as data before conversion or data after conversion by a key corresponding to the key.
operation of the form mod n (where 0 ≦ x <n) and yu
mod n A (where 0 ≦ y <n, 0 ≦ u <n) modular reduction method in an information processing apparatus for determining by appropriately repeatedly executes the operation form of said x 2 mo
In obtaining the value of dn, x is assumed to be an integer other than 0, x 2 mod (na) is obtained, and b is an integer other than 0 and a
As ≠ b, x 2 mod (n -b) the calculated, the obtained x 2 mod x 2 obtained and the value of (n-a)
x 2 mod based on the value of mod (n−b)
In obtaining the value of n and the value of yumod n, x · u mod (na) is obtained, and before, in parallel with, or in parallel with this, x · u mod
(N−b) is obtained, and the obtained x · u mod (n−
The method is characterized in that the value of x · u mod n is obtained based on the value of a) and the obtained value of x · u mod (n−b).
【0039】なお、以上の各装置に係る発明は方法に係
る説明としても成立し、以上の各方法に係る発明は装置
に係る説明としても成立する。It should be noted that the above-described inventions relating to the respective devices also hold as descriptions relating to methods, and the inventions relating to the respective methods described above also hold as descriptions relating to devices.
【0040】また、上記の発明は、相当する手順あるい
は手段をコンピュータに実行させるためのプログラムを
記録した機械読取り可能な媒体としても成立する。The above-described invention is also realized as a machine-readable medium storing a program for causing a computer to execute the corresponding procedure or means.
【0041】本発明によれば、X(Xは例えばx2 ある
いはx・u) mod nの値を、Xについてn以外の
複数の整数をそれぞれ法として得た複数の剰余から求め
るようにたので、X mod nの形の演算を高速に実
行することができる。According to the present invention, the value of X (X is, for example, x 2 or x · u) mod n is obtained from a plurality of remainders obtained by modulating a plurality of integers other than n with respect to X. , X mod n can be performed at high speed.
【0042】より詳しくは、法をnとする剰余を、n以
外の複数の整数(例えばx−aとx−b)をそれぞれ法
として得たられる複数の剰余をもとにした演算で表すと
ともに、nは素因数分解困難または不可能であってもn
以外の整数は容易に素因数分解または幾つかの互いに素
な整数の積に分解できるようにnを選択してX mod
(x−a)とX mod (n−b)を中国剰余定理
の援用により高速に演算可能とすることにより、X m
od nの演算速度を高速化することができる。More specifically, the remainder whose modulus is n is represented by an operation based on a plurality of remainders obtained by modulating a plurality of integers other than n (for example, xa and xb). , N is n even if the prime factorization is difficult or impossible
Other integers can be easily factorized or factored into several relatively prime integers by choosing n and X mod
(X−a) and X mod (n−b) can be computed at high speed with the help of the Chinese Remainder Theorem, thereby obtaining X m
The operation speed of odn can be increased.
【0043】これによって、例えば、x2 mod n
とx・u mod nの繰り返しによって実現できる
「べき乗剰余乗算」を、より高速化することができる。Thus, for example, x 2 mod n
And “x · u mod n” can be realized at higher speeds.
【0044】[0044]
【発明の実施の形態】以下、図面を参照しながら発明の
実施の形態を説明する。Embodiments of the present invention will be described below with reference to the drawings.
【0045】本発明は、概略的には、X=x2 またはX
=x・u(0≦x<n、0≦u<n、x,u,nは整
数)として、X mod nをX mod (n−a)
とXmod (n−b)の簡単な関数で表すとともに
(a,bは0以外の正整数または負整数;例えばa=
1,b=2)、nは素因数分解困難または不可能であっ
てもn−aとn−bはそれぞれ容易に素因数分解または
幾つかの互いに素な整数の積に分解できるようにnを選
択してX mod (n−a)とX mod (n−
b)を中国剰余定理の援用により高速に演算可能とする
ことにより、X mod nの演算速度を高速化するよ
うにしたものである。According to the present invention, X = x 2 or X
= X · u (0 ≦ x <n, 0 ≦ u <n, x, u, and n are integers), and X mod n is X mod (na)
And a simple function of Xmod (n−b) (a and b are positive integers or negative integers other than 0; for example, a =
1, b = 2), n is chosen such that even if na is difficult or impossible, na and nb can easily be factored or decomposed into several relatively prime integer products X mod (na) and X mod (n-
By allowing b) to be operated at high speed with the help of the Chinese Remainder Theorem, the operation speed of X mod n is increased.
【0046】以下では、y =n aという表記は、n
を法としてxとaが合同であることを示す。また、y
=n aを求めるとは、nを法としてaと合同であるy
(0≦y<n)を求めることを意味するものとする。In the following, the notation y = na will be referred to as n
Indicates that x and a are congruent modulo. Also, y
= N a means congruent with a modulo n
(0 ≦ y <n).
【0047】まず、本発明の一実施形態に係る剰余算ア
ルゴリズムの一例を図2に示す。ここでは、法nでのX
の剰余y=X mod nの1つの計算法を示す。暗号
方式では、0≦x<nを満すxと0≦u<nを満すuに
対するx2 mod nやx・u mod nなどの計
算を用いるので、0≦X≦(n−1)2 であるとする。
また、y1 =X mod (n−1),y2 =X mo
d (n−2)である(x2 mod nを求める場
合、y1 =x2 mod (n−1),y2 =x2 m
od (n−2)であり、x・u mod nを求める
場合、y1 =x・u mod (n−1),y2 =x・
u mod (n−2)である)。First, FIG. 2 shows an example of a remainder calculation algorithm according to an embodiment of the present invention. Here, X in modulus n
Is shown as one calculation method of the remainder y = X mod n. In the encryption system, since x 2 mod n and x u mod n for x satisfying 0 ≦ x <n and u satisfying 0 ≦ u <n are used, 0 ≦ X ≦ (n−1) Let it be 2 .
Also, y 1 = X mod (n−1), y 2 = X mod
When obtaining (x 2 mod n) which is d (n−2), y 1 = x 2 mod (n−1), y 2 = x 2 m
od (n−2), and when obtaining x · u mod n, y 1 = x · u mod (n−1), y 2 = x ·
u mod (n-2)).
【0048】まず、Xとnを入力する(ステップS
1)。First, X and n are input (step S).
1).
【0049】ここで、0≦X≦(n−1)2 である。な
お、x2 mod nを求める場合、X=x2 であり、
x・u mod nを求める場合、X=x・uである。Here, 0 ≦ X ≦ (n−1) 2 . When x 2 mod n is obtained, X = x 2 ,
When obtaining x · u mod n, X = x · u.
【0050】次に、Xの値により条件分岐し、X<nな
らば y=Xを出力し(ステップS2)、X=
(n−1)2 ならばy=1を出力し(ステップS3)、
X=n(n−2)ならばy=0を出力する(ステップS
4)。Next, conditional branching is performed according to the value of X. If X <n, y = X is output (step S2).
If (n-1) 2 , y = 1 is output (step S3),
If X = n (n−2), y = 0 is output (Step S)
4).
【0051】また、n≦X≦n2 −2n−1ならば、ま
ず、y1 =X mod (n−1)とy2=X mod
(n−2)を求め(ステップS5)、ここでも条件分
岐し、y1 ≧y2 ならばy=n 2y1 −y2 +2を求
め、yを出力し(ステップS6)、y1 <y2 ならばy
=n 2y1 −y2 を求め、yを出力する(ステップS
7)。If n ≦ X ≦ n 2 −2n−1, first, y 1 = X mod (n−1) and y 2 = X mod
(N-2) the determined (step S5), and then conditional branch again, determine the y 1 ≧ y 2 if y = n 2y 1 -y 2 +2 , outputs y (step S6), y 1 <y 2 if y
= Seeking n 2y 1 -y 2, and outputs the y (step S
7).
【0052】ここで、図2の算法Redの適用例を図3
に示す。図3に示す一覧はn=37×61=2257の
場合に、幾つかのXの値に対するy,y1 ,y2 の値を
示している。Here, an application example of the algorithm Red of FIG. 2 is shown in FIG.
Shown in The list shown in FIG. 3 shows the values of y, y 1 , and y 2 for some values of X when n = 37 × 61 = 2257.
【0053】さて、RSA暗号を始めとする種々の暗号
方式における暗号化と復号等の演算にはべき乗剰余算が
必要となり、これは平方剰余算と乗算剰余算、すなわ
ち、 x2 mod n x・u mod n からなる。Now, arithmetic operations such as encryption and decryption in various encryption systems such as the RSA encryption require a modular exponentiation, which is a quadratic remainder and a modular multiplication, that is, x 2 mod n x. u mod n.
【0054】しかして前述の通り、y=x2 mod
nをy1 =x2 mod (n−1),y2 =x2 m
od (n−2)から簡単な計算で求めることができ、
同様にy=x・u mod nをy1 =x・u mod
(n−1),y2 =x・umod (n−2)から簡
単な計算で求めることができる。そして、詳しくは後述
するようにy1 ,y2 の計算は中国剰余定理の利用によ
り並列化が可能となり、時間計算量を減らすことができ
る。したがって、x2 mod n やx・umod n
を高速に求めることができる。However, as described above, y = x 2 mod
Let n be y 1 = x 2 mod (n−1), y 2 = x 2 m
od (n-2) can be obtained by a simple calculation,
Similarly, change y = x · u mod n to y 1 = x · u mod
(N-1), it can be determined by simple calculation from y 2 = x · umod (n -2). As will be described later in detail, the calculation of y 1 and y 2 can be parallelized by using the Chinese remainder theorem, and the amount of time calculation can be reduced. Therefore, x 2 mod n and x · mod n
Can be obtained at high speed.
【0055】なお、後述するように、x2 mod n
を求める場合、y1 =x2 mod(n−1)とy2 =
x2 mod (n−2)は、それぞれ図4と図5の手
順により、x・u mod nを求める場合、y1 =x
・u mod (n−1)とy2 =x・u mod
(n−2)は、それぞれ図8と図9の手順により高速に
求めることができる。As will be described later, x 2 mod n
, Y 1 = x 2 mod (n−1) and y 2 =
x 2 mod (n−2) is obtained when x · u mod n is obtained by the procedures of FIGS. 4 and 5, respectively, and y 1 = x
U mod (n-1) and y 2 = x u mod
(N-2) can be obtained at high speed by the procedures shown in FIGS. 8 and 9, respectively.
【0056】次に、本発明の一実施形態に係る平方剰余
算装置について説明する。Next, a description will be given of a modular-square arithmetic device according to an embodiment of the present invention.
【0057】図1に示すように、本平方剰余算装置2
は、nとx(0≦x<n)について、x2 mod n
を求めて出力する装置である。As shown in FIG. 1, the quadratic residue arithmetic device 2
Is x 2 mod n for n and x (0 ≦ x <n)
Is a device that obtains and outputs
【0058】本平方剰余算装置2は、前述した図2と、
図4および図5の手順により、x2mod nを求め
る。The quadratic residue arithmetic device 2 is different from FIG.
X 2 mod n is obtained according to the procedures shown in FIGS.
【0059】ここでは、X=x2 、y1 =x2 mod
(n−1),y2 =x2 mod(n−2)である。Here, X = x 2 , y 1 = x 2 mod
(N-1), a y 2 = x 2 mod (n -2).
【0060】まず、xとnを入力する(ステップS
1)。First, x and n are input (step S)
1).
【0061】ここで、0≦x<nである。Here, 0 ≦ x <n.
【0062】次に、x2 の値により条件分岐し、x2 <
nならば y=x2 を出力し(ステップS
2)、x2 =(n−1)2 ならばy=1を出力し(ステ
ップS3)、x2 =n(n−2)ならばy=0を出力す
る(ステップS4)。[0062] Next, conditional branch by the value of x 2, x 2 <
n If outputs y = x 2 (step S
2), x 2 = (n -1) outputs a 2 if y = 1 (step S3), and outputs a x 2 = n (n-2 ) if y = 0 (step S4).
【0063】また、n≦x2 ≦n2 −2n−1ならば、
まず、y1 =x2 mod (n−1)とy2 =x2
mod (n−2)を求め(ステップS5)、ここでも
条件分岐し、y1 ≧y2 ならばy=n 2y1 −y2 +
2を求め、yを出力し(ステップS6)、y1 <y2 な
らばy=n 2y1 −y2 を求め、yを出力する(ステ
ップS7)。If n ≦ x 2 ≦ n 2 −2n−1,
First, y 1 = x 2 mod (n−1) and y 2 = x 2
mod (n-2) the determined (step S5), and again to conditional branch, y 1 ≧ y 2 if y = n 2y 1 -y 2 +
2 calculated, outputs y (step S6), and the calculated y 1 <y 2 if y = n 2y 1 -y 2, and outputs the y (step S7).
【0064】次に、図4を参照して、上記のステップS
5においてy1 =x2 mod (n−1)を求める手
順について説明する。Next, with reference to FIG.
The procedure for obtaining y 1 = x 2 mod (n-1) in 5 will be described.
【0065】まず、予備計算として、次式のようにn−
1を互いに素な整数の積に分解する。なお、必ずしも素
因数分解でなくとも良い。この分解には、試行除算法や
2次ふるい法など、種々の方法を用いることができる。 n−1=Πi=1 h pi あるいは、nが例えばRSA暗号などにおける公開鍵で
あるとき、n−1を因数分解の形で公開して、この予備
計算を不要としても良い。First, as a preliminary calculation, n-
Decompose 1 into products of relatively prime integers. Note that it is not always necessary to perform the prime factorization. Various methods such as a trial division method and a secondary sieving method can be used for this decomposition. n-1 = Π i = 1 h p i Alternatively, when n is a public key in, for example, RSA cryptography, n-1 may be disclosed in the form of factorization to eliminate this preliminary calculation.
【0066】p1 …ph が得られたら、次に、xi =x
mod pi , i=1,…,hを計算する(ステッ
プS11)。When p 1 ... P h are obtained, then x i = x
mod p i , i = 1,..., h are calculated (step S11).
【0067】次に、ai =xi 2 , i=1,…,hを
計算する(ステップS12)。Next, a i = x i 2 , i = 1,..., H are calculated (step S12).
【0068】次に、ai =ai mod pi , i=
1,…,hを計算(ステップS13)。なお、ai =a
i mod pi は、ai mod pi をai に代入
することを意味する。Next, a i = a i mod p i , i =
, H are calculated (step S13). Note that a i = a
i mod p i means to substitute a i mod p i for a i .
【0069】そして、中国剰余定理を用いて次の連立合
同式を解く(ステップS14)。 y1 =p1 a1 y1 =p2 a2 … y1 =pn ah なお、中国剰余定理を利用した連立合同式の解法は、例
えば岩波講座、現代数学への道、山本芳彦著「数論入門
1」、岩波書店に詳しい。Then, the following simultaneous congruence equation is solved using the Chinese Remainder Theorem (step S14). y 1 = p1 a 1 y 1 = p2 a 2 ... y 1 = pn a h It should be noted that the solution of using the Chinese Remainder Theorem coalition congruence, for example Iwanami course, the road to modern mathematics, Yoshihiko Yamamoto "Number Theory Getting Started 1 ", Iwanami Shoten.
【0070】この連立合同式の解によって、y1 =x2
mod (p1 ・p2 …ph-1 ・ph )=x2 mo
d (n−1)が得られる。According to the solution of the simultaneous congruence equation, y 1 = x 2
mod (p 1 · p 2 ... ph-1 · ph ) = x 2 mo
d (n-1) is obtained.
【0071】次に、図5を参照して、y2 =x2 mo
d (n−2)を求める手順について説明する。Next, referring to FIG. 5, y 2 = x 2 mo
The procedure for obtaining d (n-2) will be described.
【0072】n−1の場合と同様に、まず、予備計算と
して、次式のようにn−2を互いに素な整数の積に分解
する。なお、必ずしも素因数分解でなくとも良い。もち
ろん、この場合も、分解には、試行除算法や2次ふるい
法など、種々の方法を用いることができる。 n−2=Πi=1 m qi なお、前述のようにn−1を因数分解の形で公開する場
合には、n−2も併せて因数分解の形で公開して、この
予備計算を不要とする。As in the case of n-1, first, as a preliminary calculation, n-2 is decomposed into a product of relatively prime integers as in the following equation. Note that it is not always necessary to perform the prime factorization. Of course, in this case as well, various methods such as a trial division method and a secondary sieving method can be used for the decomposition. n−2 = Π i = 1 m q i When n−1 is disclosed in the form of factorization as described above, n−2 is also disclosed in the form of factorization, and this preliminary calculation is performed. Is unnecessary.
【0073】q1 …qm が得られたら、次に、xi =x
mod qi , i=1,…,mを計算する(ステッ
プS21)。When q 1 ... Q m are obtained, then x i = x
Mod q i , i = 1,..., m are calculated (step S21).
【0074】次に、ai =xi 2 , i=1,…,mを
計算する(ステップS22)。Next, a i = x i 2 , i = 1,..., M are calculated (step S22).
【0075】次に、ai =ai mod qi , i=
1,…,mを計算(ステップS23)。なお、ai =a
i mod qi は、ai mod qi をai に代入
することを意味する。Next, a i = a i mod q i , i =
, M are calculated (step S23). Note that a i = a
i mod q i means to substitute a i mod q i for a i .
【0076】そして、中国剰余定理を用いて次の連立合
同式を解く(ステップS24)。 y2 =q1 a1 y2 =q2 a2 … y2 =qm am この連立合同式の解によって、y2 =x2 mod
(q1 ・q2 …qm-1 ・qm )=x2 mod (n−
2)が得られる。Then, the following simultaneous congruence equation is solved using the Chinese Remainder Theorem (step S24). y 2 = q1 a 1 y 2 = q2 a 2 ... y 2 = qm a m by the solution of the simultaneous congruence, y 2 = x 2 mod
(Q 1 · q 2 ... q m-1 · q m ) = x 2 mod (n-
2) is obtained.
【0077】ここで、n=37×61=2257の場合
についてy1 とy2 の計算例を示す。Here, a calculation example of y 1 and y 2 for the case of n = 37 × 61 = 2257 will be described.
【0078】まず、予備計算としてn−1,n−2を分
解する。 n−1=2256=24 ×3×47=47×48 n−2=2255=5×11×41=41×55 と分解して、p1 =47,p2 =48,q1 =41,q
2 =55とするものとする。First, n-1 and n-2 are decomposed as preliminary calculations. n-1 = 2256 = 2 4 × 3 × 47 = 47 × 48 n−2 = 2255 = 5 × 11 × 41 = 41 × 55, p 1 = 47, p 2 = 48, q 1 = 41 , Q
It is assumed that 2 = 55.
【0079】ここでは、x=1065のときx2 mo
d nを計算するものとする。Here, when x = 1065, x 2 mo
dn shall be calculated.
【0080】まず、y1 =x2 mod (n−1)を
計算する。First, y 1 = x 2 mod (n−1) is calculated.
【0081】ステップS11では次のような結果にな
る。 x1 =1065 mod 47=31 x2 =1065 mod 48=9 ステップS12では次のような結果になる。 a1 =312 =961 a2 =92 =81 ステップS13では次のような結果になる。 a1 =961 mod 47=21 a2 =81 mod 48=33 そして、ステップS14で、中国剰余定理を用いて次の
連立合同式を解くことにより、 y1 =47 21 y1 =48 33 y1 =x2 mod (n−1)=1713を得ること
ができる。In step S11, the following result is obtained. x 1 = 1065 mod 47 = 31 x 2 = 1065 mod 48 = 9 In step S12, the following result is obtained. a 1 = 31 2 = 961 a 2 = 9 2 = 81 In step S13, the following result is obtained. a 1 = 961 mod 47 = 21 a 2 = 81 mod 48 = 33 Then, in step S14, the following simultaneous congruence equation is solved using the Chinese remainder theorem, so that y 1 = 4721 y 1 = 48 33 y 1 = X 2 mod (n-1) = 1713.
【0082】なお、y1 は次の連立合同式の解になって
いる。Note that y 1 is a solution of the following simultaneous congruence equation.
【0083】y1 =47 ((1065mod4
7)2 )mod47=21 y1 =48 ((1065mod48)2 )mod48
=33 次に、y2 =x2 mod (n−2)を計算する。Y 1 = 47 ((1065 mod 4
7) 2 ) mod 47 = 21 y 1 = 48 ((1065 mod 48 ) 2 ) mod 48
= 33 Next, y 2 = x 2 mod (n−2) is calculated.
【0084】ステップS21では次のような結果にな
る。 x1 =1065 mod 41=40 x2 =1065 mod 55=20 ステップS22では次のような結果になる。 a1 =402 =1600 a2 =202 =400 ステップS23では次のような結果になる。 a1 =1600 mod 41=1 a2 =400 mod 55=15 そして、ステップS24で、中国剰余定理を用いて次の
連立合同式を解くことにより、 y2 =41 1 y2 =55 15 y2 =x2 mod (n−2)=2215を得ること
ができる。In step S21, the following result is obtained. x 1 = 1065 mod 41 = 40 x 2 = 1065 mod 55 = 20 In step S22, the following result is obtained. a 1 = 40 2 = 1600 a 2 = 20 2 = 400 In step S23, the following result is obtained. a 1 = 1600 mod 41 = 1 a 2 = 400 mod 55 = 15 Then, in step S24, the following simultaneous congruence equation is solved using the Chinese Remainder Theorem, so that y 2 = 41 1 y 2 = 55 15 y 2 = X 2 mod (n−2) = 2215.
【0085】なお、y2 は次の連立合同式の解になって
いる。 y2 =41 ((1065mod41)2 )mod41
=1 y2 =55 ((1065mod55)2 )mod55
=15 最後に、y1 =1713,y2 =2215であることか
ら、ステップS7において、y=2×y1 −y2 =2×
1713−2215=1211となる。Note that y 2 is a solution of the following simultaneous congruence equation. y 2 = 41 ((1065 mod 41 ) 2 ) mod 41
= 1 y 2 = 55 ((1065 mod 55 ) 2 ) mod 55
= 15 Finally, since y 1 = 1713 and y 2 = 2215, in step S7, y = 2 × y 1 −y 2 = 2 ×
1713-2215 = 1211.
【0086】すなわち、y=10652 mod 225
7=1211となる。That is, y = 1065 2 mod 225
7 = 1211.
【0087】ここで、x2 mod nをy1 =x2
mod (n−1)とy2 =x2 mod (n−2)と
から求める構成をブロック図で表すと、図6のようにな
る。Here, x 2 mod n is changed to y 1 = x 2
FIG. 6 is a block diagram illustrating a configuration obtained from mod (n−1) and y 2 = x 2 mod (n−2).
【0088】図6において、12−1〜12−hは、図
4のステップS11〜S13に相当し、14は図4のス
テップS14に相当し、16−1〜16−mは、図5の
ステップS21〜S23に相当し、18は図5のステッ
プS24に相当し、19は図2のS6およびS7に相当
する。In FIG. 6, 12-1 to 12-h correspond to steps S11 to S13 in FIG. 4, 14 corresponds to step S14 in FIG. 4, and 16-1 to 16-m correspond to FIG. Steps S21 to S23, 18 corresponds to step S24 in FIG. 5, and 19 corresponds to S6 and S7 in FIG.
【0089】p1 〜ph がそれぞれ同程度の大きさであ
るとすれば、12−1〜12−hの各計算の速度は、x
2 mod (n−1)に対して1/h2 のオーダーで
高速化される(二乗計算の所要時間は、ほぼ桁数の二乗
に比例するため)。Assuming that p 1 to p h are of substantially the same size, the speed of each calculation of 12-1 to 12-h is x
The speed is increased by an order of 1 / h 2 with respect to 2 mod (n−1) (since the time required for the square calculation is almost proportional to the square of the number of digits).
【0090】従って、1つのCPUで12−1〜12−
hの各計算を順番に実行した場合、1/h2 ×h=1/
hより、x2 mod (n−1)に対して1/hのオ
ーダーで計算速度が高速化される。Accordingly, one CPU 12-1 to 12-
When each calculation of h is executed in order, 1 / h 2 × h = 1 /
h, the calculation speed is increased in the order of 1 / h with respect to x 2 mod (n−1).
【0091】また、12−1〜12−hの各計算は並列
実行可能であるので、もしh個のCPUで12−1〜1
2−hの各計算を同時に実行した場合、1/h2 のオー
ダーで計算速度が高速化される。Also, since the calculations of 12-1 to 12-h can be executed in parallel, if h CPUs are used, the calculation of 12-1 to 12-h is performed.
If each calculation of the 2-h was executed simultaneously, computation speed is faster in the 1 / h 2 orders.
【0092】以上の点は、16−1〜16−mの各計算
についても同様であり、1/m2 〜1/mの高速化がで
きる。The above points are the same for the calculations of 16-1 to 16-m, and the speed can be increased by 1 / m 2 to 1 / m.
【0093】さらには、h+m個のCPUを用いて12
−1〜12−hの各計算と16−1〜16−mの各計算
をすべて同時に実行することもできる。この場合が最も
高速で、x2 mod (n−1)に対してmin(1
/h2 ,1/m2 )のオーダーで計算速度が高速化され
る。Further, using h + m CPUs, 12
The calculations -1 to 12-h and the calculations 16-1 to 16-m can all be executed simultaneously. This case is the fastest, and min (1) for x 2 mod (n−1).
/ H 2 , 1 / m 2 ), the calculation speed is increased.
【0094】また、1個のCPUを用いて12−1〜1
2−hの各計算と16−1〜16−mの各計算をすべて
順番に計算した場合でも、x2 mod (n−1)に
対して1/h+1/m(h=mの場合、2/h)のオー
ダーで計算速度が高速化される。Further, using a single CPU, 12-1 to 1
2-h each and every calculation of each calculation and 16-1 to 16-m of even when calculated in order, the case of x 2 mod (n-1) with respect to 1 / h + 1 / m ( h = m, 2 / H), the calculation speed is increased.
【0095】次に、14と18の合同計算式を解く計算
は、良く知られた中国剰余定理を用いることにより高速
に計算できる。14の計算と18の計算は、同時実行可
能である。Next, the calculation for solving the congruence formula of 14 and 18 can be performed at high speed by using the well-known Chinese remainder theorem. The calculation of 14 and the calculation of 18 can be performed simultaneously.
【0096】さらに、19の演算は簡単な判断と計算だ
けであり、これも高速に計算できる。Furthermore, the operation of 19 is only a simple judgment and calculation, and this can also be calculated at a high speed.
【0097】従って、図6のブロック図で示されるよう
に、x2 mod nを、直接計算せずに、y1 =x2
mod (n−1)とy2 =x2 mod (n−
2)とから求める構成にした場合、x2 mod nの
値を高速に求めることができることがわかる。Therefore, as shown in the block diagram of FIG. 6, without directly calculating x 2 mod n, y 1 = x 2
mod (n-1) and y 2 = x 2 mod (n-
2) that the value of x 2 mod n can be obtained at high speed.
【0098】次に、本発明の一実施形態に係る乗算剰余
算装置について説明する。Next, a modular multiplication unit according to an embodiment of the present invention will be described.
【0099】図7に示すように、本乗算剰余算装置4
は、nとx(0≦x<n)とu(0≦u<n)につい
て、x・u mod nを求めて出力する装置である。As shown in FIG. 7, the modular multiplication unit 4
Is a device for obtaining and outputting x · u mod n for n, x (0 ≦ x <n) and u (0 ≦ u <n).
【0100】本乗算剰余算装置4は、前述した図2と、
図8および図9の手順により、x・u mod nを求
める。This modular multiplication unit 4 is different from FIG.
X · u mod n is obtained by the procedure shown in FIGS. 8 and 9.
【0101】ここでは、X=x・u、y1 =x・u m
od (n−1),y2 =x・umod (n−2)で
ある。Here, X = x · u, y 1 = x · um
od (n-1), y 2 = x ・ mod (n-2).
【0102】まず、xとuとnを入力する(ステップS
1)。First, x, u, and n are input (step S).
1).
【0103】ここで、0≦x<n、0≦u<nである。Here, 0 ≦ x <n and 0 ≦ u <n.
【0104】次に、x・uの値により条件分岐し、x・
u<nならば y=x・uを出力し(ステップ
S2)、x・u=(n−1)2 ならばy=1を出力し
(ステップS3)、x・u=n(n−2)ならばy=0
を出力する(ステップS4)。Next, conditional branching is performed according to the value of x · u.
If u <n, y = x · u is output (step S2). If x · u = (n−1) 2 , y = 1 is output (step S3), and x · u = n (n−2). ) If y = 0
Is output (step S4).
【0105】また、n≦x・u≦n2 −2n−1なら
ば、まず、y1 =x・u mod (n−1)とy2 =
x・u mod (n−2)を求め(ステップS5)、
ここでも条件分岐し、y1 ≧y2 ならばy=n 2y1
−y2 +2を求め、yを出力し(ステップS6)、y1
<y2 ならばy=n 2y1 −y2 を求め、yを出力す
る(ステップS7)。If n ≦ x · u ≦ n 2 −2n−1, first, y 1 = x · u mod (n−1) and y 2 =
x · u mod (n−2) is obtained (step S5),
Here also, conditional branching is performed, and if y 1 ≧ y 2 , y = n 2y 1
−y 2 +2 is determined, y is output (step S6), and y 1 is calculated.
<Asking y 2 if y = n 2y 1 -y 2, and outputs the y (step S7).
【0106】次に、図8を参照して、上記のステップS
5においてy1 =x・u mod(n−1)を求める手
順について説明する。Next, with reference to FIG.
The procedure for obtaining y 1 = x · u mod (n−1) in 5 will be described.
【0107】まず、予備計算として、次式のようにn−
1を互いに素な整数の積に分解する。なお、必ずしも素
因数分解でなくとも良い。図4の場合と同様に、この分
解には、試行除算法や2次ふるい法など、種々の方法を
用いることができる。 n−1=Πi=1 h pi あるいは、図4の場合と同様に、nが例えばRSA暗号
などにおける公開鍵であるとき、n−1を因数分解の形
で公開して、この予備計算を不要としても良い。First, as a preliminary calculation, n−
Decompose 1 into products of relatively prime integers. Note that it is not always necessary to perform the prime factorization. As in the case of FIG. 4, various methods such as a trial division method and a secondary sieving method can be used for this decomposition. n-1 = Π i = 1 h p i Alternatively, as in the case of FIG. 4, when n is a public key in, for example, RSA encryption, n-1 is made public in the form of factorization, and this preliminary calculation is performed. May be unnecessary.
【0108】p1 …ph が得られたら、次に、xi =x
mod pi , i=1,…,hと、ui =u mo
d pi , i=1,…,hを計算する(ステップS3
1)。When p 1 ... Ph are obtained, then x i = x
mod p i , i = 1,..., h and u i = u mo
d p i, i = 1, ..., it calculates the h (step S3
1).
【0109】次に、ai =xi ×ui , i=1,…,
hを計算する(ステップS32)。Next, a i = x i × u i , i = 1,.
h is calculated (step S32).
【0110】次に、ai =ai mod pi , i=
1,…,hを計算(ステップS33)。なお、ai =a
i mod pi は、ai mod pi をai に代入
することを意味する。Next, a i = a i mod p i , i =
, H are calculated (step S33). Note that a i = a
i mod p i means to substitute a i mod p i for a i .
【0111】そして、中国剰余定理を用いて次の連立合
同式を解く(ステップS34)。 y1 =p1 a1 y1 =p2 a2 … y1 =pn ah この連立合同式の解によって、y1 =x・u mod
(p1 ・p2 …ph-1・ph )=x・u mod (n
−1)が得られる。Then, the following simultaneous congruence equation is solved using the Chinese remainder theorem (step S34). y 1 = p 1 a 1 y 1 = p 2 a 2 ... y 1 = pn a h By the solution of this simultaneous congruential equation, y 1 = x · u mod
(P 1 · p 2 ... ph-1 · ph ) = x · u mod (n
-1) is obtained.
【0112】次に、図9を参照して、y2 =x・u m
od (n−2)を求める手順について説明する。Next, referring to FIG. 9, y 2 = x · um
A procedure for obtaining od (n-2) will be described.
【0113】n−1の場合と同様に、まず、予備計算と
して、次式のようにn−2を互いに素な整数の積に分解
する。なお、必ずしも素因数分解でなくとも良い。もち
ろん、この場合も、試行除算法や2次ふるい法など、種
々の方法を用いることができる。 n−2=Πi=1 m qi なお、前述のようにn−1を因数分解の形で公開する場
合には、n−2も併せて因数分解の形で公開して、この
予備計算を不要とする。As in the case of n-1, first, as a preliminary calculation, n-2 is decomposed into a product of relatively prime integers as in the following equation. Note that it is not always necessary to perform the prime factorization. Of course, also in this case, various methods such as a trial division method and a secondary sieving method can be used. n−2 = Π i = 1 m q i When n−1 is disclosed in the form of factorization as described above, n−2 is also disclosed in the form of factorization, and this preliminary calculation is performed. Is unnecessary.
【0114】q1 …qm が得られたら、次に、xi =x
mod qi , i=1,…,mと、ui =u mo
d qi , i=1,…,mを計算する(ステップS4
1)。When q 1 ... Q m are obtained, then x i = x
mod q i , i = 1,..., m and u i = u mo
dq i , i = 1,..., m are calculated (step S4).
1).
【0115】次に、ai =xi ×ui , i=1,…,
mを計算する(ステップS42)。Next, a i = x i × u i , i = 1,.
m is calculated (step S42).
【0116】次に、ai =ai mod qi , i=
1,…,mを計算(ステップS23)。なお、ai =a
i mod qi は、ai mod qi をai に代入
することを意味する。Next, a i = a i mod q i , i =
, M are calculated (step S23). Note that a i = a
i mod q i means to substitute a i mod q i for a i .
【0117】そして、中国剰余定理を用いて次の連立合
同式を解く(ステップS44)。 y2 =q1 a1 y2 =q2 a2 … y2 =qm am この連立合同式の解によって、y2 =x2 mod
(q1 ・q2 …qm-1 ・qm )=x2 mod (n−
2)が得られる。Then, the following simultaneous congruence equation is solved using the Chinese Remainder Theorem (step S44). y 2 = q1 a 1 y 2 = q2 a 2 ... y 2 = qm a m by the solution of the simultaneous congruence, y 2 = x 2 mod
(Q 1 · q 2 ... q m-1 · q m ) = x 2 mod (n-
2) is obtained.
【0118】ここで、n=37×61=2257の場合
についてy1 とy2 の計算例を示す。Here, a calculation example of y 1 and y 2 for the case of n = 37 × 61 = 2257 will be described.
【0119】まず、予備計算としてn−1,n−2を分
解する。First, n-1 and n-2 are decomposed as preliminary calculations.
【0120】 n−1=2256=24 ×3×47=47×48 n−2=2255=5×11×41=41×55 と分解して、p1 =47,p2 =48,q1 =41,q
2 =55とするものとする。[0120] The substance decomposes n-1 = 2256 = 2 4 × 3 × 47 = 47 × 48 n-2 = 2255 = 5 × 11 × 41 = 41 × 55, p 1 = 47, p 2 = 48, q 1 = 41, q
It is assumed that 2 = 55.
【0121】ここでは、x=639、u=1775のと
きx・u mod nを計算するものとする。Here, it is assumed that x · u mod n is calculated when x = 639 and u = 1775.
【0122】まず、y1 =x・u mod (n−1)
を計算する。First, y 1 = x · u mod (n−1)
Is calculated.
【0123】ステップS31では次のような結果にな
る。 x1 =639 mod 47=28 x2 =639 mod 48=15 u1 =1775 mod 47=36 u2 =1775 mod 48=47 ステップS32では次のような結果になる。 a1 =28×36=1064 a2 =15×47=705 ステップS33では次のような結果になる。 a1 =1008 mod 47=21 a2 =705 mod 48=33 そして、ステップS34で、中国剰余定理を用いて次の
連立合同式を解くことにより、 y1 =47 21 y1 =48 33 y1 =x2 mod (n−1)=1713を得ること
ができる。At step S31, the following result is obtained. x 1 = 639 mod 47 = 28 x 2 = 639 mod 48 = 15 u 1 = 1775 mod 47 = 36 u 2 = 1775 mod 48 = 47 In step S32, the following result is obtained. a 1 = 28 × 36 = 11064 a 2 = 15 × 47 = 705 In step S33, the following result is obtained. a 1 = 1008 mod 47 = 21 a 2 = 705 mod 48 = 33 Then, in step S34, the following simultaneous congruence equation is solved using the Chinese remainder theorem, so that y 1 = 47 21 y 1 = 48 33 y 1 = X 2 mod (n-1) = 1713.
【0124】なお、y1 は次の連立合同式の解になって
いる。Incidentally, y 1 is a solution of the following simultaneous congruence equation.
【0125】y1 =47 ((639mod47)×
(1775mod47))mod47=21 y1 =48 ((639mod48)×(1775mo
d48))mod47=33 次に、y2 =x・u mod (n−2)を計算する。Y 1 = 47 ((639 mod 47 ) ×
(1775 mod 47)) mod 47 = 21 y 1 = 48 ((639 mod 48 ) × (1775 mod)
d48)) mod 47 = 33 Next, y 2 = x · u mod (n−2) is calculated.
【0126】ステップS41では次のような結果にな
る。 x1 =639 mod 41=24 x2 =639 mod 55=34 u1 =1775 mod 41=12 u2 =1775 mod 55=15 ステップS42では次のような結果になる。 a1 =24×12=288 a2 =34×15=510 ステップS43では次のような結果になる。 a1 =288 mod 41=1 a2 =510 mod 55=15 そして、ステップS24で、中国剰余定理を用いて次の
連立合同式を解くことにより、 y2 =41 1 y2 =55 15 y2 =x2 mod (n−2)=2215を得ること
ができる。In step S41, the following result is obtained. x 1 = 639 mod 41 = 24 x 2 = 639 mod 55 = 34 u 1 = 1775 mod 41 = 12 u 2 = 1775 mod 55 = 15 In step S42, the following result is obtained. a 1 = 24 × 12 = 288 a 2 = 34 × 15 = 510 In step S43, the following result is obtained. a 1 = 288 mod 41 = 1 a 2 = 510 mod 55 = 15 Then, in step S24, the following simultaneous congruence equation is solved using the Chinese remainder theorem, so that y 2 = 411 1 y 2 = 55 15 y 2 = X 2 mod (n−2) = 2215.
【0127】なお、y2 は次の連立合同式の解になって
いる。 y2 =41 ((639mod41)×(1775mo
d41))mod41=1 y2 =55 ((639mod55)×(1775mo
d55))mod55=15 最後に、y1 =1713,y2 =2215であることか
ら、ステップS7において、y=2×y1 −y2 =2×
1713−2215=1211となる。Incidentally, y 2 is a solution of the following simultaneous congruential equation. y 2 = 41 ((639 mod 41 ) × (1775 mo
d41)) mod41 = 1 y 2 = 55 ((639 mod 55 ) × (1775 mo)
d55)) mod55 = 15 Finally, since it is y 1 = 1713, y 2 = 2215, in step S7, y = 2 × y 1 -y 2 = 2 ×
1713-2215 = 1211.
【0128】すなわち、y=639×1775 mod
2257=1211となる。That is, y = 639 × 1775 mod
2257 = 1211.
【0129】ここで、x・u mod nをy1 =x・
u mod (n−1)とy2 =x・u mod (n
−2)とから求める構成をブロック図で表すと、図10
のようになる。Here, x · u mod n is represented by y 1 = x ·
u mod (n-1) and y 2 = x · u mod (n
-2) can be represented by a block diagram as shown in FIG.
become that way.
【0130】図10において、22−1〜22−hは、
図8のステップS31〜S33に相当し、24は図8の
ステップS34に相当し、26−1〜26−mは、図9
のステップS41〜S43に相当し、28は図9のステ
ップS44に相当し、29は図2のS6およびS7に相
当する。In FIG. 10, 22-1 to 22-h are
8 corresponds to steps S31 to S33 in FIG. 8, 24 corresponds to step S34 in FIG. 8, and 26-1 to 26-m correspond to FIG.
2 corresponds to step S44 in FIG. 9, and 29 corresponds to S6 and S7 in FIG.
【0131】この場合も、図6の場合と同様で、22−
1〜22−hの各計算と24−1〜24−mの各計算
は、個々の計算の速度自体がx・u mod (n−
1)より高速であり、また複数のCPUを用いて処理の
並列化を行うことによりさら計算速度を高速化すること
ができる。In this case as well, as in the case of FIG.
In each of the calculations 1 to 22-h and each of the calculations in 24-1 to 24-m, the speed of each calculation itself is x · u mod (n−
1) It is faster, and the processing speed can be further increased by parallelizing the processing using a plurality of CPUs.
【0132】また、前述と同様に24と28の合同計算
式を解く計算は、良く知られた中国剰余定理を用いるこ
とにより高速に計算でき、さらに14の計算と18の計
算を同時実行することもできる。As described above, the calculation for solving the congruence formula of 24 and 28 can be performed at high speed by using the well-known Chinese Remainder Theorem. Further, the calculation of 14 and the calculation of 18 can be performed simultaneously. Can also.
【0133】さらに、29の演算は簡単な判断と計算だ
けであり、これも高速に計算できる。Furthermore, the operation 29 is only a simple judgment and calculation, and this can also be calculated at a high speed.
【0134】従って、図10のブロック図で示されるよ
うに、x・u mod nを、直接計算せずに、y1 =
x・u mod (n−1)とy2 =x・u mod
(n−2)とから求める構成にした場合、x・u mo
d nの値を高速に求めることができることがわかる。Therefore, as shown in the block diagram of FIG. 10, without calculating x.u mod n directly, y 1 =
x · u mod (n−1) and y 2 = x · u mod
(N-2), x · u mo
It can be seen that the value of dn can be obtained at high speed.
【0135】次に、図11は、図2と等価な手順であ
る。Next, FIG. 11 shows a procedure equivalent to FIG.
【0136】この手順に従って図1の平方剰余算装置2
がx2 mod nを求める場合、先の場合と同様にy
1 =x2 mod (n−1)、y2 =x2 mod
(n−2)である。According to this procedure, the quadratic residue arithmetic unit 2 in FIG.
Finds x 2 mod n, y is the same as in the previous case.
1 = x 2 mod (n-1), y 2 = x 2 mod
(N-2).
【0137】まず、xとnを入力する(ステップS10
1)。First, x and n are input (step S10).
1).
【0138】ここで、0≦x<nである。Here, 0 ≦ x <n.
【0139】次に、y1 =x2 mod (n−1)と
y2 =x2 mod (n−2)を求める(ステップS
102)。Next, y 1 = x 2 mod (n−1) and y 2 = x 2 mod (n−2) are obtained (step S).
102).
【0140】y1 =x2 mod (n−1)を求める
手順は、図4の手順であり、y2 =x2 mod (n
−2)を求める手順は、図5の手順である。なお、p1
…ph 、q1 …qm の求め方は、前述と同様で、計算で
求める方式にしても良いし、外部から与える方式にして
も良い。The procedure for obtaining y 1 = x 2 mod (n−1) is the procedure of FIG. 4, and y 2 = x 2 mod (n)
The procedure for obtaining -2) is the procedure in FIG. Note that p 1
... p h, Determination of q 1 ... q m are the same as described above, may be a method of obtaining by calculation may be the manner in which externally applied.
【0141】ここで条件分岐し、y1 =2 ならばy=n
y1 となり(ステップS103)、y1 >y2 ならば
y=n 2y1 −y2 +2となり(ステップS10
4)、y1 <y2 ならばy=n 2y1 −y2 となる
(ステップS105)。Here, conditional branching is performed, and if y 1 = 2 , y = n
y 1 next (step S103), y 1> y 2 if y = n 2y 1 -y 2 +2 next (step S10
4) If y 1 <y 2 , y = n 2 y 1 −y 2 (step S 105).
【0142】ここで、x2 mod nを、直接計算せ
ずに、y1 =x2 mod (n−1)とy2 =x2
mod (n−2)とから求める構成をブロック図で表
すと、図6のようになり、前述したようにx2 mod
nの値を高速に求めることができることがわかる。Here, without directly calculating x 2 mod n, y 1 = x 2 mod (n−1) and y 2 = x 2
FIG. 6 is a block diagram showing a configuration obtained from mod (n−2) and x 2 mod as described above.
It can be seen that the value of n can be obtained at high speed.
【0143】一方、この手順に従って図7の乗算剰余算
装置4がx・u mod nを求める場合、先の場合と
同様にy1 =x・u mod (n−1)、y2 =x・
umod (n−2)である。On the other hand, when the modular multiplication unit 4 of FIG. 7 obtains x · u mod n according to this procedure, y 1 = x · u mod (n−1) and y 2 = x ·
umod (n-2).
【0144】まず、xとuとnを入力する(ステップS
101)。First, x, u and n are inputted (step S).
101).
【0145】ここで、0≦x<n、0≦u<nである。Here, 0 ≦ x <n and 0 ≦ u <n.
【0146】次に、y1 =x・u mod (n−1)
とy2 =x・u mod (n−2)を求める(ステッ
プS102)。Next, y 1 = x · u mod (n−1)
And y 2 = x · u mod (n−2) (step S102).
【0147】y1 =x2 mod (n−1)を求める
手順は、図8の手順であり、y2 =x2 mod (n
−2)を求める手順は、図9の手順である。なお、p1
…ph 、q1 …qm の求め方は、前述と同様で、計算で
求める方式にしても良いし、外部から与える方式にして
も良い。The procedure for obtaining y 1 = x 2 mod (n−1) is the procedure shown in FIG. 8, and y 2 = x 2 mod (n)
The procedure for obtaining -2) is the procedure in FIG. Note that p 1
... p h, Determination of q 1 ... q m are the same as described above, may be a method of obtaining by calculation may be the manner in which externally applied.
【0148】ここで条件分岐し、y1 =2 ならばy=n
y1 となり(ステップS103)、y1 >y2 ならば
y=n 2y1 −y2 +2となり(ステップS10
4)、y1 <y2 ならばy=n 2y1 −y2 となる
(ステップS105)。Here, conditional branching is performed, and if y 1 = 2 , y = n
y 1 next (step S103), y 1> y 2 if y = n 2y 1 -y 2 +2 next (step S10
4) If y 1 <y 2 , y = n 2 y 1 −y 2 (step S 105).
【0149】ここで、x・u mod nを、直接計算
せずに、y1 =x・u mod (n−1)とy2 =x
・u mod (n−2)とから求める構成をブロック
図で表すと、図10のようになり、前述したようにx・
u mod nの値を高速に求めることができることが
わかる。Here, without directly calculating x · u mod n, y 1 = x · u mod (n−1) and y 2 = x
A configuration obtained from u mod (n−2) is represented by a block diagram as shown in FIG. 10, and as described above, x ·
It can be seen that the value of u mod n can be obtained at high speed.
【0150】ところで、これまではnの剰余を求めるの
に、n−1の剰余とn−2の剰余を利用したが、2以上
の整数の積に容易に分解できるものであれば、n−1の
剰余とn−2の剰余でなくても、一般にn−aの剰余を
使うことができる。例えば、n−1,n+1の剰余を利
用する方法など、種々の方法が考えられる。In the above, the remainder of n has been calculated using the remainder of n-1 and the remainder of n-2. However, if the remainder can be easily decomposed into a product of two or more integers, n- Even if it is not the remainder of 1 and the remainder of n-2, the remainder of na can be generally used. For example, various methods such as a method using the remainder of n−1 and n + 1 are conceivable.
【0151】例えば、nの剰余を求めるのに、n+1の
剰余とn+2の剰余を利用しても構わない。この場合、
x2 mod nあるいはx・u mod nを、x2
mod (n+1)とx2 mod (n+2)ある
いはx・u mod (n+1)とx・u mod
(n+2)を用いて求める手順として、図12のような
手順が得られる。For example, to find the remainder of n, the remainder of n + 1 and the remainder of n + 2 may be used. in this case,
x 2 mod n or x · u mod n is expressed as x 2 mod n
mod (n + 1) and x 2 mod (n + 2) or x · u mod (n + 1) and x · u mod
A procedure as shown in FIG. 12 is obtained as a procedure using (n + 2).
【0152】図12の手順に従って図1の平方剰余算装
置2がx2 mod nを求める場合、y1 =x2 m
od (n+1)、y2 =x2 mod (n+2)と
なる。When the modulo square arithmetic unit 2 of FIG. 1 obtains x 2 mod n according to the procedure of FIG. 12, y 1 = x 2 m
od (n + 1) and y 2 = x 2 mod (n + 2).
【0153】まず、xとnを入力する(ステップS20
1)。First, x and n are input (step S20).
1).
【0154】ここで、0≦x<nである。Here, 0 ≦ x <n.
【0155】次に、y1 =x2 mod (n+1)と
y2 =x2 mod (n+2)を求める(ステップS
202)。Next, y 1 = x 2 mod (n + 1) and y 2 = x 2 mod (n + 2) are obtained (step S).
202).
【0156】y1 =x2 mod (n+1)を求める
手順は、図4の手順であり、y2 =x2 mod (n
+2)を求める手順は、図5の手順である。ただし、n
+1=Πi=1 h pi 、n+2=Πi=1 m qi である。な
お、p1 …ph 、q1 …qm の求め方は、前述と同様
で、計算で求める方式にしても良いし、外部から与える
方式にしても良い。The procedure for obtaining y 1 = x 2 mod (n + 1) is the procedure in FIG. 4, and y 2 = x 2 mod (n
The procedure for finding +2) is the procedure in FIG. Where n
+ 1 = Π i = 1 h p i, is n + 2 = Π i = 1 m q i. Incidentally, p 1 ... p h, Determination of q 1 ... q m are the same as described above, may be a method of obtaining by calculation may be the manner in which externally applied.
【0157】ここで条件分岐し、y1 =2 ならばy=n
y1 となり(ステップS203)、y1 <y2 ならば
y=n 2y1 −y2 +2となり(ステップS20
4)、y1 >y2 ならばy=n 2y1 −y2 となる
(ステップS205)。Here, conditional branching is performed, and if y 1 = 2 , y = n
y 1 next (step S203), y 1 <y 2 if y = n 2y 1 -y 2 +2 next (step S20
4), a y 1> y 2 if y = n 2y 1 -y 2 (step S205).
【0158】ここで、x2 mod nを、直接計算せ
ずに、y1 =x2 mod (n+1)とy2 =x2
mod (n+2)とから求める構成をブロック図で表
すと、図6のようになる。ただし、図6において、14
の出力がy1 =x2 mod(n+1)になり、18の
出力がy2 =x2 mod (n+2)になる。この場
合も、前述したようにx2 mod nの値を高速に求
めることができることがわかる。Here, without directly calculating x 2 mod n, y 1 = x 2 mod (n + 1) and y 2 = x 2
FIG. 6 is a block diagram showing a configuration obtained from mod (n + 2). However, in FIG.
Becomes y 1 = x 2 mod (n + 1), and the output of 18 becomes y 2 = x 2 mod (n + 2). Also in this case, as described above, it can be seen that the value of x 2 mod n can be obtained at high speed.
【0159】一方、図12の手順に従って図7の乗算剰
余算装置4がx・u mod nを求める場合、y1 =
x・u mod (n+1)、y2 =x・u mod
(n+2)となる。On the other hand, when the modular multiplication unit 4 of FIG. 7 obtains x · u mod n according to the procedure of FIG. 12, y 1 =
x · u mod (n + 1), y 2 = x · u mod
(N + 2).
【0160】まず、xとuとnを入力する(ステップS
201)。First, x, u, and n are input (step S).
201).
【0161】ここで、0≦x<n、0≦u<nである。Here, 0 ≦ x <n and 0 ≦ u <n.
【0162】次に、y1 =x2 mod (n+1)と
y2 =x2 mod (n+2)を求める(ステップS
202)。Next, y 1 = x 2 mod (n + 1) and y 2 = x 2 mod (n + 2) are obtained (step S).
202).
【0163】y1 =x・u mod (n+1)を求め
る手順は、図8の手順であり、y2=x・u mod
(n+2)を求める手順は、図9の手順である。ただ
し、n+1=Πi=1 h pi 、n+2=Πi=1 m qi であ
る。なお、p1 …ph 、q1 …qm の求め方は、前述と
同様で、計算で求める方式にしても良いし、外部から与
える方式にしても良い。The procedure for obtaining y 1 = x · u mod (n + 1) is the procedure of FIG. 8, and y 2 = x · u mod
The procedure for obtaining (n + 2) is the procedure in FIG. Here, n + 1 = Π i = 1 h p i and n + 2 = Π i = 1 m q i . Incidentally, p 1 ... p h, Determination of q 1 ... q m are the same as described above, may be a method of obtaining by calculation may be the manner in which externally applied.
【0164】ここで条件分岐し、y1 =2 ならばy=n
y1 となり(ステップS203)、y1 <y2 ならば
y=n 2y1 −y2 +2となり(ステップS20
4)、y1 >y2 ならばy=n 2y1 −y2 となる
(ステップS205)。Here, conditional branching is performed, and if y 1 = 2 , y = n
y 1 next (step S203), y 1 <y 2 if y = n 2y 1 -y 2 +2 next (step S20
4), a y 1> y 2 if y = n 2y 1 -y 2 (step S205).
【0165】ここで、x・u mod nを、直接計算
せずに、y1 =x・u mod (n+1)とy2 =x
・u mod (n+2)とから求める構成をブロック
図で表すと、図10のようになる。ただし、図10にお
いて、24の出力がy1 =x・u mod (n+1)
になり、28の出力がy2 =x・u mod (n+
2)になる。この場合も、前述したようにx・u mo
d nの値を高速に求めることができることがわかる。Here, without directly calculating x · u mod n, y 1 = x · u mod (n + 1) and y 2 = x
FIG. 10 is a block diagram showing a configuration obtained from u mod (n + 2). However, in FIG. 10, the output of 24 is y 1 = x · u mod (n + 1)
And the output of 28 is y 2 = x · u mod (n +
2) Also in this case, as described above, x · u mo
It can be seen that the value of dn can be obtained at high speed.
【0166】なお、上記の他にも、n−1,n−2,n
−3の剰余を利用する方法、n−1,n+1の剰余を利
用する方法など、種々の方法が考えられる。In addition to the above, n-1, n-2, n
Various methods are conceivable, such as a method using the remainder of −3 and a method using the remainder of n−1 and n + 1.
【0167】なお、本発明は再帰的に適用することも可
能である。例えば、以上の各実施形態において、合同連
立式の右辺を計算する際の剰余算(n−aを分解した
値、例えば前述のp1 等を法とする剰余算)に適用する
こともでき、さらなる高速化が期待できる。Note that the present invention can be applied recursively. For example, in each of the above embodiments, the present invention can also be applied to the remainder calculation (the value obtained by decomposing na, for example, the above-mentioned remainder calculation modulo p 1 ) when calculating the right side of the joint simultaneous equation, Further speedup can be expected.
【0168】以下では、平方剰余算、乗算剰余算の通常
の直接法と本方法を並列計算が可能という前提で比較す
る。乗算と除算の計算量を素朴なアルゴリズムのビット
計算量で考える。すなわち、それぞれの計算量を次の通
りとする。In the following, a comparison will be made between the ordinary direct methods of modular square calculation and modular multiplication and this method on the assumption that parallel calculation is possible. Consider the computational complexity of multiplication and division by the bit complexity of a naive algorithm. That is, each calculation amount is as follows.
【0169】M(k,j)=j(k+j)=kビット数
とjビット数の乗算のビット計算量 D(k,j)=j(k−j)=kビット数をjビット数
で割る除算のビット計算量 以下において、nはkビット,pi ,qi ,i=1,
…,h,の最大数はjビットとする。M (k, j) = j (k + j) = bit calculation amount of multiplication of k-bit number and j-bit number D (k, j) = j (k-j) = k-bit number by j-bit number In the following, n is k bits, p i , q i , i = 1,
The maximum number of..., H is j bits.
【0170】従来の通常の直接法では、kビット数同士
の乗算と、2kビット数割るkビット数の除算を要す
る。従って、その計算量は T0 =M(k,k)+D(2k,k)=3k2 である。The conventional ordinary direct method requires multiplication of k-bit numbers and division of k-bit number divided by 2k-bit number. Therefore, the calculation amount is T 0 = M (k, k) + D (2k, k) = 3k 2 .
【0171】本方法では、連立合同式の右辺の値を求め
るために、kビット数割るjビット数の除算と、jビッ
ト数同士の乗算と、2jビット数割るjビット数の除算
を要する。以上よりその計算量は、 D(k,j)+M(j,j)+D(2j,j) =j(k−j)+2j2 +j2 =j(k+2j) となる。In the present method, in order to obtain the value on the right side of the simultaneous equation, division of the number of k bits divided by the number of j bits, multiplication of the number of j bits, and division of the number of j bits divided by the number of 2j bits are required. Its computational than above, the D (k, j) + M (j, j) + D (2j, j) = j (k-j) + 2j 2 + j 2 = j (k + 2j).
【0172】連立合同式の解の計算は、jビット数とk
ビット数の乗算と、k+jビット数割るkビット数の除
算を要する。以上よりその計算量は、 M(k,j)+D(k+j,k) =j(k+j)+kj =j(2k+j) となる。The solution of the simultaneous congruence equation is calculated by j bits and k
Multiplication by the number of bits and division by the number of k bits divided by the number of k + j bits are required. From the above, the calculation amount is M (k, j) + D (k + j, k) = j (k + j) + kj = j (2k + j).
【0173】従って、本方法の計算量は、 T=3j(k+j) となる。Therefore, the calculation amount of the present method is as follows: T = 3j (k + j).
【0174】特に先の数値例のようにj=k/2のとき
は、T=9/4・k2 であり、直接法の3/4である。
さらに一般にj=k/Kの場合には、 T=3k/K・(K+1)/K・K =3(K+1)k2 /K2 =(K+1)/k2 ・T0 である。例えばK=4なら計算量を約30%にできる。In particular, when j = k / 2 as in the above numerical example, T = 9/4 · k 2, which is / of the direct method.
Further if the general j = k / K is, T = 3k / K · ( K + 1) / K · K = 3 (K + 1) k 2 / K 2 = (K + 1) is a / k 2 · T 0. For example, if K = 4, the calculation amount can be reduced to about 30%.
【0175】ところで、本方法の有効性はn−1,n−
2などが、どの程度小さな素因数に分解されるかに強く
依存する。r以下のタンダムに選んだ整数xの最大素因
数は約50%の確率でr0.6 以下である(文献2)。つ
まり、rのビット数kに対しr以下の乱数の最大素因数
は高々0.6kビットであることが半分の確率で期待で
きる。さらに数値例で示したように、3個以上の素因数
に分解するようにnを設定し計算量を減らすことができ
よう。By the way, the effectiveness of this method is n-1, n-
2 strongly depends on how small the prime factor is. maximum prime factor of integer x chosen in the following Tandamu r is r 0.6 or less at about 50% probability (Reference 2). In other words, it can be expected that the maximum prime factor of a random number less than r with respect to the number of bits k of r is at most 0.6 k bits with half the probability. Further, as shown in the numerical examples, n may be set so as to be decomposed into three or more prime factors, and the calculation amount may be reduced.
【0176】次に、本発明を暗号方式に基づく処理を行
う装置の演算に適用する場合について説明する。Next, a case will be described in which the present invention is applied to the operation of a device that performs processing based on the encryption method.
【0177】本発明は、Y=ck mod nの形で表さ
れる演算を行う装置に適用が可能であり、その典型的な
ものが暗号方式、署名方式、鍵配送方式等に基づいてY
=ck mod nの形の演算処理を行う装置である。そ
のような装置には、暗号化装置、復号装置、署名装置
(署名をする装置、署名を認証する装置)、鍵配送装置
などがある。The present invention can be applied to an apparatus that performs an operation expressed in the form of Y = c k mod n, and a typical one is based on an encryption method, a signature method, a key distribution method, and the like.
= C k mod n. Such devices include an encryption device, a decryption device, a signature device (a device that performs a signature, a device that authenticates a signature), a key distribution device, and the like.
【0178】例えば図13はRSA暗号方式による暗号
化装置101および復号装置102を示す図であり、暗
号化装置101は平文に相当するMを暗号化して暗号文
に相当するCを出力し、このCが通信媒体や記録媒体等
の所定の伝送媒体を通じて復号装置102に渡され、復
号装置102では暗号文に相当するCを復号して平文に
相当するMを出力する。For example, FIG. 13 is a diagram showing an encryption device 101 and a decryption device 102 according to the RSA encryption method. The encryption device 101 encrypts M corresponding to a plaintext and outputs C corresponding to a ciphertext. C is passed to the decryption device 102 via a predetermined transmission medium such as a communication medium or a recording medium, and the decryption device 102 decrypts C corresponding to a cipher text and outputs M corresponding to a plain text.
【0179】暗号化装置101は、鍵e,nと入力Mが
与えられると、C=Me mod nを計算する。[0179] Given the keys e and n and the input M, the encryption device 101 calculates C = Me mod n.
【0180】一方、復号装置102は、鍵d,nと入力
Cが与えられると、M=Cd mod nを計算する。On the other hand, given the keys d and n and the input C, the decryption device 102 calculates M = C d mod n.
【0181】なお、上記からわかるように、暗号化装置
101と復号装置102は、同一の構造を持っている。As can be seen from the above, the encryption device 101 and the decryption device 102 have the same structure.
【0182】さて、通常、Me mod nの形の計算を
行う場合、まずZ=Me を計算し、次にZ mod n
を計算するような方法は用いられない。[0182] Now, usually, when performing the calculation in the form of M e mod n, first to calculate the Z = M e, then Z mod n
Is not used.
【0183】ここで、mod nに関しては、mod
nは計算の途中で取っても最後に1回だけ取っても同じ
であるという性質がある。例えば、 a2 mod n=(a mod n)2 mod n あるいは a×b mod n=((a mod n)×(b m
od n)) mod n となる。Here, regarding mod n, mod
n has the property that it is the same whether it is taken during the calculation or only once at the end. For example, a 2 mod n = (a mod n) 2 mod n or a × b mod n = ((a mod n) × (b m
od n)) mod n.
【0184】この性質を利用して、Me mod nの形
の計算を行う場合、mod nを計算の途中で取って、
扱う数を大きくしないようにしあるいは演算の回数を減
らすようにして実行速度を高速化する方法が良く取られ
る。[0184] By utilizing this property, in the case of performing the calculation in the form of M e mod n, taking a mod n in the middle of a calculation,
A method of increasing the execution speed by not increasing the number of operations or reducing the number of operations is often adopted.
【0185】例えば、良く知られているように、Me m
od nは、x2 mod nとx・u mod n
(0≦x<n,0≦u<n)の2種類の演算の繰り返し
で高速に実現することができる。For example, as is well known, M em
od n are x 2 mod n and x · u mod n
(0 ≦ x <n, 0 ≦ u <n) can be realized at high speed by repeating two types of operations.
【0186】その1つの手順を図14に示す。One procedure is shown in FIG.
【0187】まず、eを2進展開し、e=(ek-1 ,e
k-2 ,…,e0 )2 とする。そして、C=1,i=kと
初期設定する(ステップS301)。First, e is binary-expanded, and e = (e k−1 , e
k-2, ..., and e 0) 2. Then, C = 1 and i = k are initialized (step S301).
【0188】以降、iから1を減じ(ステップS30
2)、C=C×C mod nを計算し(ステップS3
04)、ei =1ならばC=C×M mod nを計算
し(ステップS305,S306)、ステップS302
に戻る手順を、ステップS303でi<0となってルー
プを抜け出すまで繰り返す。Thereafter, 1 is subtracted from i (step S30).
2), C = C × C mod n is calculated (step S3)
04), if e i = 1, calculate C = C × M mod n (steps S305 and S306), and step S302
Is repeated until i <0 in step S303 and the process exits the loop.
【0189】ここで、ステップ304の平方剰余算に前
述したような本発明の平方剰余算を適用し、ステップ3
06の乗算剰余算に前述したような本発明の乗算剰余算
を適用することにより、図14の計算を高速に実行する
ことができる。Here, the above-described residue calculation of the present invention is applied to the residue calculation in step 304, and step 3 is performed.
By applying the modular multiplication of the present invention as described above to the modular multiplication of 06, the calculation of FIG. 14 can be executed at high speed.
【0190】図14は暗号装置側の手順であるが、復号
装置側の手順も図14と同様であり(MとCを入れ替え
かつeをdに代えたもの)、同様に、本発明の平方剰余
算および乗算剰余算を適用することにより、復号演算を
高速に実行することができる。FIG. 14 shows the procedure on the encryption device side, and the procedure on the decryption device side is also the same as that in FIG. 14 (M and C are exchanged and e is replaced with d). By applying the remainder calculation and the multiplication remainder calculation, the decoding operation can be executed at high speed.
【0191】また、Y=ck mod nの形の計算を、
図14とは異なる手順で行うアルゴリズムも種々存在す
るが、どのような手順の場合であっても、その手順にx
2 mod nおよび/またはx・u mod nの計算
の部分が含まれているならば、その部分に同様に本発明
を適用可能である。The calculation in the form of Y = c k mod n is
There are various algorithms that are performed in a procedure different from that in FIG. 14, but in any case, x
If a part of the calculation of 2 mod n and / or x · u mod n is included, the present invention is applicable to that part as well.
【0192】したがって本発明は、RSA暗号方式によ
る暗号化装置、復号装置だけではなく、Y=ck mod
nの形で表される演算を行う、あるいはx2 mod
nおよび/またはx・u mod nの形で表される
演算を行ういかなる装置にも適用が可能である。Therefore, the present invention is applicable not only to an encryption device and a decryption device using the RSA encryption method, but also to Y = c k mod
perform an operation expressed in the form of n, or x 2 mod
It is applicable to any device that performs operations expressed in the form n and / or x u mod n.
【0193】例えば、Rabin暗号方式あるいはES
IGN暗号方式(署名方式)による装置はいずれもY=
ck mod nの形で表される演算を行う装置であり、
本発明を適用可能である。For example, Rabin encryption or ES
All devices using the IGN encryption method (signature method) have Y =
a device for performing an operation represented in the form of ck mod n,
The present invention is applicable.
【0194】また、例えば、Elgamal暗号方式
(署名方式)、Schnorr暗号方式(署名方式)、
DSS暗号方式(署名方式)、Fiat−Shamir
暗号方式(署名方式)、DH暗号方式(鍵配送方式)、
3−pass purotocol暗号方式(鍵配送方
式)はいずれもY=ck mod nの形で表される演算
を行う装置であり、本発明を適用可能である。なお、こ
れらのものについてはnは素数であるが、nの前後の値
が容易に分解可能であるようなnを選ぶようにすれば、
本発明は何等修正することなくそのまま適用可能であ
る。Further, for example, Elgamal encryption method (signature method), Schnorr encryption method (signature method),
DSS encryption method (signature method), Fiat-Shamir
Encryption method (signature method), DH encryption method (key distribution method),
Each of the 3-pass protocol encryption systems (key distribution systems) is a device that performs an operation expressed in the form of Y = ck mod n, and the present invention can be applied. In addition, although n is a prime number for these things, if n is selected so that the values before and after n can be easily decomposed,
The present invention is applicable without any modification.
【0195】また、本発明は、他の方法と、例えばモン
ゴメリ演算法と組合せて使用することも可能である。The present invention can be used in combination with other methods, for example, with Montgomery arithmetic.
【0196】また、本発明は、従来からある手法と、例
えば文献1〜4に開示された手法と組合せて使用するこ
とも可能である。Further, the present invention can be used in combination with a conventional method and, for example, the methods disclosed in References 1 to 4.
【0197】なお、以上の各機能は、ソフトウェアとし
ても実現可能である。また、上記した各手順あるいは手
段をコンピュータに実行させるためのプログラムを記録
した機械読取り可能な媒体として実施することもでき
る。The above functions can also be realized as software. Further, the present invention can be embodied as a machine-readable medium storing a program for causing a computer to execute the above-described procedures or means.
【0198】本発明は、上述した実施の形態に限定され
るものではなく、その技術的範囲において種々変形して
実施することができる。The present invention is not limited to the above-described embodiments, but can be implemented with various modifications within the technical scope thereof.
【0199】[0199]
【発明の効果】本発明によれば、X(Xは例えばx2 あ
るいはx・u) mod nの値を、Xについてn以外
の複数の整数をそれぞれ法として得た複数の剰余から求
めるようにたので、X mod nの形の演算を高速に
実行することができる。According to the present invention, the value of X (X is, for example, x2 or x · u) mod n is obtained from a plurality of residues obtained by modulating a plurality of integers other than n with respect to X. Therefore, an operation in the form of X mod n can be executed at high speed.
【図1】本発明の実施の形態に係る平方剰余算装置を示
す図FIG. 1 is a diagram showing a modular-square arithmetic device according to an embodiment of the present invention;
【図2】本発明の実施の形態に係る剰余算アルゴリズム
の一例を示すフローチャートFIG. 2 is a flowchart illustrating an example of a remainder calculation algorithm according to the embodiment of the present invention.
【図3】図2の手順を適用して得た数値の具体例を示す
図FIG. 3 is a diagram showing a specific example of numerical values obtained by applying the procedure of FIG. 2;
【図4】x2 mod (n−1)を求める手順の一例
を示すフローチャートFIG. 4 is a flowchart showing an example of a procedure for obtaining x 2 mod (n-1).
【図5】x2 mod (n−2)を求める手順の一例
を示すフローチャートFIG. 5 is a flowchart showing an example of a procedure for obtaining x 2 mod (n-2).
【図6】x2 mod nを求める構成を示すブロック
図FIG. 6 is a block diagram showing a configuration for obtaining x 2 mod n.
【図7】本発明の実施の形態に係る乗算剰余算装置を示
す図FIG. 7 is a diagram showing a modular multiplication unit according to an embodiment of the present invention.
【図8】x・u mod (n−1)を求める手順の一
例を示すフローチャートFIG. 8 is a flowchart illustrating an example of a procedure for obtaining x · u mod (n−1).
【図9】x・u mod (n−2)を求める手順の一
例を示すフローチャートFIG. 9 is a flowchart illustrating an example of a procedure for obtaining x · u mod (n−2).
【図10】x・u mod nを求める構成を示すブロ
ック図FIG. 10 is a block diagram showing a configuration for obtaining x · u mod n;
【図11】本発明の実施の形態に係る剰余算アルゴリズ
ムの一例を示すフローチャートFIG. 11 is a flowchart illustrating an example of a remainder calculation algorithm according to the embodiment of the present invention.
【図12】本発明の実施の形態に係る剰余算アルゴリズ
ムの一例を示すフローチャートFIG. 12 is a flowchart illustrating an example of a remainder calculation algorithm according to the embodiment of the present invention.
【図13】本発明を適用する暗号化装置および復号装置
を示す図FIG. 13 is a diagram showing an encryption device and a decryption device to which the present invention is applied;
【図14】Me mod nをx2 mod nとx・u
mod nの2種類の演算の繰り返しで求める手順に
一例を示すフローチャート[14] M e mod n a x 2 mod n and x · u
A flow chart showing an example of a procedure for obtaining by repeating two kinds of operations of mod n
2…平方剰余算装置 4…乗算剰余算装置 12−1〜12−h…x2 mod pi の演算 16−1〜16−m…x2 mod qi の演算 14,18,24,28…連立合同式の解を求める演算 19…合成演算 22−1〜22−h…x・u mod pi の演算 26−1〜26−m…x・u mod qi の演算 19,29…合成演算2 ... operation Operations 16-1~16-m ... x 2 mod q i quadratic residue calculation apparatus 4 ... modular multiplication apparatus 12-1~12-h ... x 2 mod p i 14,18,24,28 ... operation 19, 29 ... synthesis calculation of the arithmetic 26-1~26-m ... x · u mod q i of operation 19 ... combining operation 22-1~22-h ... x · u mod p i for obtaining the solutions of simultaneous congruences
Claims (15)
n以外の複数の整数をそれぞれ法として得た複数の剰余
から求める手段を備えたことを特徴とする剰余算装置。1. A remainder calculating apparatus comprising: means for obtaining a remainder of an integer X whose modulus is n from a plurality of remainders obtained by using a plurality of integers other than n for X modulo.
の第1の整数とするXの剰余と法をn以外の第2の整数
とするXの剰余とから求める手段を備えたことを特徴と
する剰余算装置。2. A means for obtaining a remainder of an integer X whose modulus is n from a remainder of X whose modulus is a first integer other than n and a remainder of X whose modulus is a second integer other than n. A residue arithmetic device, comprising:
nを満たす整数)またはx・u(ただしxは0≦x<n
を満たす整数かつuは0≦u<nを満たす整数)である
ことを特徴とする請求項1または2に記載の剰余算装
置。3. The integer X is x 2 (where x is 0 ≦ x <
n) or x · u (where x is 0 ≦ x <n)
The remainder arithmetic device according to claim 1, wherein an integer satisfying and u is an integer satisfying 0 ≦ u <n).
て鍵nを法とする整数Xの剰余を求める剰余算方法であ
って、 法をn以外の第1の整数とするXの剰余を求める処理
と、法をn以外の第2の整数とするXの剰余とから求め
る処理とを、逐次的にまたは並行して実行し、 求められた2つの前記剰余をもとにして法をnとするX
の剰余を求めることを特徴とする剰余算方法。4. A method for calculating a remainder of an integer X modulo a key n in a processing apparatus to which a predetermined encryption method is applied, wherein a remainder of X having a modulus modulo a first integer other than n is determined. A process and a process of obtaining a modulus from a remainder of X that is a second integer other than n are executed sequentially or in parallel, and a modulus is defined as n based on the obtained two remainders. X to do
Residue calculation method, characterized in that the remainder is obtained.
nを満たす整数)またはx・u(ただしxは0≦x<n
を満たす整数かつuは0≦u<nを満たす整数)である
ことを特徴とする請求項4に記載の剰余算方法。5. The integer X is x 2 (where x is 0 ≦ x <
n) or x · u (where x is 0 ≦ x <n)
5. The method of claim 4, wherein u is an integer satisfying 0 ≦ u <n.
2 mod nを求める剰余算装置であって、 aを0以外の整数として、x2 mod (n−a)を
求める第1の処理手段と、 bを0以外の整数かつa≠bとして、x2 mod
(n−b)を求める第2の処理手段と、 求められたx2 mod (n−a)の値と求められた
x2 mod (n−b)の値とをもとにしてx2 m
od nの値を求める第3の処理手段とを備えたことを
特徴とする剰余算装置。6. For an integer n and an integer x (0 ≦ x <n), x
2 a remainder calculation device for determining a mod n, the integer other than 0 and a, and a first processing means for determining the x 2 mod (n-a) , and b is an integer and a ≠ b other than 0, x 2 mod
(N-b) and a second processing means for determining a, 2 a value of the obtained x 2 mod (n-a) value and the obtained x 2 mod (n-b) based on x m
and a third processing unit for obtaining a value of odn.
(0≦u<n)についてx・u mod nを求める剰
余算装置であって、 aを0以外の整数として、x・u mod (n−a)
を求める第1の処理手段と、 bを0以外の整数かつa≠bとして、x・u mod
(n−b)を求める第2の処理手段と、 求められたx・u mod (n−a)の値と求められ
たx・u mod (n−b)の値をもとにしてx・u
mod nの値を求める第3の処理手段とを備えたこ
とを特徴とする剰余算装置。7. An integer n, an integer x (0 ≦ x <n) and an integer u
A modulo arithmetic unit for calculating x · u mod n for (0 ≦ u <n), wherein a is an integer other than 0 and x · u mod (na)
X · u mod where b is an integer other than 0 and a ≠ b
Second processing means for calculating (n−b), and x · u mod (n−b) based on the calculated value of x · u mod (na) and the calculated value of x · u mod (n−b). u
and a third processing means for obtaining a value of mod n.
2 mod nを求める剰余算装置であって、 x2 mod (n−1)を求める第1の処理手段と、 x2 mod (n−2)を求める第2の処理手段と、 求められたx2 mod (n−1)の値と求められた
x2 mod (n−2)の値をもとにしてx2 mo
d nの値を求める第3の処理手段とを備えたことを特
徴とする剰余算装置。8. For integer n and integer x (0 ≦ x <n), x
A modulo arithmetic unit for determining 2 mod n, a first processing unit for determining x 2 mod (n-1), a second processing unit for determining x 2 mod (n-2), the value of 2 mod (n-1) value and the obtained x 2 mod (n-2) based on x 2 mo
and a third processing unit for obtaining a value of dn.
(0≦u<n)についてx・u mod nを求める剰
余算装置であって、 x・u mod (n−1)を求める第1の処理手段
と、 x・u mod (n−2)を求める第2の処理手段
と、 求められたx・u mod (n−1)の値と求められ
たx・u mod (n−2)の値をもとにしてx・u
mod nの値を求める第3の処理手段とを備えたこ
とを特徴とする剰余算装置。9. An integer n, an integer x (0 ≦ x <n) and an integer u
A modulo arithmetic unit for obtaining x · u mod n for (0 ≦ u <n), a first processing unit for obtaining x · u mod (n−1), and x · u mod (n−2) Second processing means for obtaining, and x · u based on the obtained value of x · u mod (n−1) and the obtained value of x · u mod (n−2)
and a third processing means for obtaining a value of mod n.
理手段の各々は、 剰余の法とすべき値を複数の互いに素な値の積で表した
場合における当該互いに素な値それぞれを法として、与
えられた値の剰余をそれぞれ求める手段と、 同一の変数を左辺とし、求められた剰余を右辺とし、該
右辺の剰余に対応する前記素な値を法とする連立合同式
を解き、得られた解を求めるべき値とする手段とを備え
たことを特徴とする請求項6ないし9のいずれか1項に
記載の剰余算装置。10. Each of said first processing means and said second processing means converts each of said disjoint values when a value to be treated as a remainder is expressed by a product of a plurality of disjoint values. As a modulus, means for respectively calculating the remainder of a given value, and solving the simultaneous congruence equation in which the same variable is defined as the left side, the determined remainder is defined as the right side, and the prime value corresponding to the remainder of the right side is modulo. 10. The remainder calculating apparatus according to claim 6, further comprising: means for setting an obtained solution to a value to be obtained.
差および前記第2の処理手段において用いられた法の値
とnとの差の組に応じて定まる、前記第1の処理手段に
より求められた値および前記第2の処理手段により求め
られた値を入力とする所定の関数を計算し、得られた解
を求めるべき値とする手段とを備えたことを特徴とする
請求項6ないし9のいずれか1項に記載の剰余算装置。11. The third processing means includes: a difference between the modulus value used in the first processing means and n; and a difference between the modulus value used in the second processing means and n. A predetermined function which receives the value obtained by the first processing means and the value obtained by the second processing means, which is determined according to the set of 10. The remainder calculating device according to claim 6, further comprising:
いて鍵nを法として整数x(0≦x<n)についてx2
mod nを求める剰余算方法であって、 aを0以外の整数として、x2 mod (n−a)を
求めるとともに、これと前後してまたは並行して、bを
0以外の整数かつa≠bとして、x2 mod(n−
b)を求め、 求められたx2 mod (n−a)の値と求められた
x2 mod (n−b)の値とをもとにしてx2 m
od nの値を求めることを特徴とする剰余算方法。12. A processing apparatus to which a predetermined encryption method is applied, wherein x 2 is used for an integer x (0 ≦ x <n) using a key n as a modulus.
A modulo calculation method for obtaining mod n, wherein a is an integer other than 0, x 2 mod (na) is obtained, and b is an integer other than 0 and a ≠ As b, x 2 mod (n−
b) the seek, the value of the obtained x 2 mod (n-a) value and the obtained x 2 mod (n-b) based on x 2 m
A residue calculation method, wherein a value of odn is obtained.
いて鍵nを法として整数x(0≦x<n)と整数u(0
≦u<n)についてについてx・u mod nを求め
る剰余算方法であって、 aを0以外の整数として、x・u mod (n−a)
を求めるとともに、これと前後してまたは並行して、b
を0以外の整数かつa≠bとして、x・u mod
(n−b)を求め、 求められたx・u mod (n−a)の値と求められ
たx・u mod (n−b)の値とをもとにしてx・
u mod nの値を求めることを特徴とする剰余算方
法。13. A processing apparatus to which a predetermined encryption method is applied, wherein an integer x (0 ≦ x <n) and an integer u (0
A method for calculating a remainder x · u mod n for ≦ u <n, where a is an integer other than 0 and x · u mod (na)
And before or after or in parallel with this, b
Is an integer other than 0 and a ≠ b, x · u mod
(N−b) is obtained, and x · u mod (n−a) is obtained based on the obtained value of x · u mod (n−a) and the obtained value of x · u mod (n−b).
A method for calculating a remainder, comprising determining a value of u mod n.
または該鍵に対応する鍵による変換後のデータとして、
ck mod nの値を、x2 mod n(ここで0
≦x<n)の形の演算を実行する第1の演算手段とy・
u mod n(ここで0≦y<n,0≦u<n)の形
の演算を実行する第2の演算手段とを適宜繰り返し実行
させることにより求める情報処理装置であって、 前記第1の演算手段は、 aを0以外の整数として、x2 mod (n−a)を
求める第1の処理手段と、 bを0以外の整数かつa≠bとして、x2 mod
(n−b)を求める第2の処理手段と、 求められたx2 mod (n−a)の値と求められた
x2 mod (n−b)の値とをもとにしてx2 m
od nの値を求める第3の処理手段とを備え、 前記第2の演算手段は、 y・u mod (n−a)を求める第4の処理手段
と、 y・u mod (n−b)を求める第5の処理手段
と、 求められたy・u mod (n−a)の値と求められ
たy・u mod (n−b)の値をもとにしてy・u
mod nの値を求める第6の処理手段とを備えたこ
とを特徴とする情報処理装置。14. A pair of k and n as a key, and c as data before conversion or data after conversion by a key corresponding to the key.
Change the value of ck mod n to x 2 mod n (where 0
≦ x <n) and a first operation means for executing an operation of y ·
an information processing apparatus for performing a calculation in a form of u mod n (where 0 ≦ y <n, 0 ≦ u <n), and by appropriately repeatedly executing the second calculation means, calculating means, as an integer other than 0 and a, and a first processing means for determining the x 2 mod (n-a) , and b is an integer and a ≠ b other than 0, x 2 mod
(N-b) and a second processing means for determining a, 2 a value of the obtained x 2 mod (n-a) value and the obtained x 2 mod (n-b) based on x m
third processing means for calculating the value of odn; fourth processing means for calculating y · u mod (na); and y · u mod (n−b). Fifth processing means for obtaining the value of y · u mod (n−a) and the value of y · u mod (n−b) based on the obtained value of y · u mod (n−b).
an information processing apparatus comprising: sixth processing means for obtaining a value of mod n.
または該鍵に対応する鍵による変換後のデータとして、
ck mod nの値を、x2 mod n(ここで0
≦x<n)の形の演算とy・u mod n(ここで0
≦y<n,0≦u<n)の形の演算とを適宜繰り返し実
行させることにより求める情報処理装置における剰余算
方法であって、 前記x2 mod nの値を求めるにあたっては、 aを0以外の整数として、x2 mod (n−a)を
求めるとともに、これと前後してまたは並行して、bを
0以外の整数かつa≠bとして、x2 mod(n−
b)を求め、 求められたx2 mod (n−a)の値と求められた
x2 mod (n−b)の値とをもとにしてx2 m
od nの値を求め、 前記y・u mod nの値を求めるにあたっては、 x・u mod (n−a)を求めるとともに、これと
前後してまたは並行して、x・u mod (n−b)
を求め、 求められたx・u mod (n−a)の値と求められ
たx・u mod (n−b)の値とをもとにしてx・
u mod nの値を求めることを特徴とする剰余算方
法。15. A pair of k and n as a key and c as data before conversion or data after conversion by a key corresponding to the key.
Change the value of ck mod n to x 2 mod n (where 0
≦ x <n) and an operation of y · u mod n (where 0
≦ y <n, 0 ≦ u <n) is a remainder calculation method in an information processing apparatus, which is obtained by appropriately and repeatedly executing an arithmetic operation in the form of ≦ y <n, 0 ≦ u <n). In obtaining the value of x 2 mod n, X 2 mod (n−a) is obtained as an integer other than x, and before or after or in parallel with this, b is an integer other than 0 and a ≠ b, and x 2 mod (n−a)
b) the seek, the value of the obtained x 2 mod (n-a) value and the obtained x 2 mod (n-b) based on x 2 m
In determining the value of odn and the value of yumodn, x · umod (na) is obtained, and before, in parallel with, or in parallel with this, x · umod (n− b)
Is calculated based on the obtained value of x · u mod (n−a) and the obtained value of x · u mod (n−b).
A method for calculating a remainder, comprising determining a value of u mod n.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05649597A JP3626315B2 (en) | 1997-03-11 | 1997-03-11 | Remainder calculation apparatus, information processing apparatus, and remainder calculation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05649597A JP3626315B2 (en) | 1997-03-11 | 1997-03-11 | Remainder calculation apparatus, information processing apparatus, and remainder calculation method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10254683A true JPH10254683A (en) | 1998-09-25 |
JP3626315B2 JP3626315B2 (en) | 2005-03-09 |
Family
ID=13028690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05649597A Expired - Fee Related JP3626315B2 (en) | 1997-03-11 | 1997-03-11 | Remainder calculation apparatus, information processing apparatus, and remainder calculation method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3626315B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007220260A (en) * | 2006-02-20 | 2007-08-30 | Toshiba Corp | Semiconductor memory device |
JP2007234086A (en) * | 2006-02-27 | 2007-09-13 | Toshiba Corp | Semiconductor memory device |
-
1997
- 1997-03-11 JP JP05649597A patent/JP3626315B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007220260A (en) * | 2006-02-20 | 2007-08-30 | Toshiba Corp | Semiconductor memory device |
US8201055B2 (en) | 2006-02-20 | 2012-06-12 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
JP2007234086A (en) * | 2006-02-27 | 2007-09-13 | Toshiba Corp | Semiconductor memory device |
Also Published As
Publication number | Publication date |
---|---|
JP3626315B2 (en) | 2005-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7904498B2 (en) | Modular multiplication processing apparatus | |
Koc et al. | Montgomery multiplication in GF (2k) | |
Knezevic et al. | Faster interleaved modular multiplication based on Barrett and Montgomery reduction methods | |
US7903811B2 (en) | Cryptographic system and method for encrypting input data | |
CN109039640B (en) | Encryption and decryption hardware system and method based on RSA cryptographic algorithm | |
EP1708081B1 (en) | Method and device for calculating a Montgomery conversion parameter | |
US8300810B2 (en) | Method for securely encrypting or decrypting a message | |
US7826612B2 (en) | System, method and apparatus for an incremental modular process including modular multiplication and modular eduction | |
KR100442218B1 (en) | Power-residue calculating unit using montgomery algorithm | |
WO2010048719A1 (en) | Method and apparatus for modulus reduction | |
JP3785044B2 (en) | Power residue calculation device, power residue calculation method, and recording medium | |
EP0952697B1 (en) | Elliptic curve encryption method and system | |
Großschädl | A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m) | |
EP1600852B1 (en) | Method and apparatus for calculating a modular inverse | |
JP3542278B2 (en) | Montgomery reduction device and recording medium | |
JP3302043B2 (en) | Encryption communication method and system | |
JP4182226B2 (en) | Remainder calculation method, apparatus and program | |
JP4423900B2 (en) | Scalar multiplication calculation method, apparatus and program for elliptic curve cryptography | |
JPH10254683A (en) | Remainder arithmetic device, information processor and remainder arithmetic method | |
Walter | Techniques for the hardware implementation of modular multiplication | |
Lou et al. | An efficient Montgomery exponentiation algorithm by using signed-digit-recoding and folding techniques | |
Mohammadi et al. | A fast and secure RSA public key cryptosystem | |
US7206799B2 (en) | Modular multiplication method and calculating device | |
Schmidt et al. | High-Speed Cryptography | |
Peng | High-speed implementation of the RSA cryptosystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040127 |
|
A131 | Notification of reasons for refusal |
Effective date: 20040210 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A521 | Written amendment |
Effective date: 20040412 Free format text: JAPANESE INTERMEDIATE CODE: A523 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040706 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040901 |
|
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: 20041130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041202 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 3 Free format text: PAYMENT UNTIL: 20071210 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 4 Free format text: PAYMENT UNTIL: 20081210 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091210 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091210 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 6 Free format text: PAYMENT UNTIL: 20101210 |
|
LAPS | Cancellation because of no payment of annual fees |