JP3315087B2 - Inverse calculation device and program recording medium for the same - Google Patents
Inverse calculation device and program recording medium for the sameInfo
- Publication number
- JP3315087B2 JP3315087B2 JP01078899A JP1078899A JP3315087B2 JP 3315087 B2 JP3315087 B2 JP 3315087B2 JP 01078899 A JP01078899 A JP 01078899A JP 1078899 A JP1078899 A JP 1078899A JP 3315087 B2 JP3315087 B2 JP 3315087B2
- Authority
- JP
- Japan
- Prior art keywords
- storage means
- stored
- updating
- storage
- storing
- 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.)
- Expired - Lifetime
Links
Landscapes
- Complex Calculations (AREA)
Description
【0001】[0001]
【発明の属する技術分野】この発明は、符号理論や情報
セキュリティ技術に用いられる整数の剰余環の逆元計算
装置及びそのプログラム記録媒体に関するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a device for calculating an inverse element of a remainder ring of an integer used in coding theory and information security technology, and a program recording medium therefor.
【0002】[0002]
【従来の技術】データを秘匿するためには暗号化技術が
有効である。暗号化の方法は共通鍵暗号と公開鍵暗号が
ある。共通鍵暗号では、暗号化側と復号化側で同一の鍵
を用い、この鍵は秘密に管理されている。一方、公開鍵
暗号では暗号化鍵と復号化鍵は異なっており、暗号化鍵
は公開しても、復号化鍵は現実的な時間内に求まらない
と広く信じられている。2. Description of the Related Art An encryption technique is effective for concealing data. Encryption methods include symmetric key encryption and public key encryption. In common key cryptography, the same key is used on the encryption side and the decryption side, and this key is managed secretly. On the other hand, in public key cryptography, the encryption key and the decryption key are different, and it is widely believed that even if the encryption key is made public, the decryption key cannot be obtained in a realistic time.
【0003】公開鍵暗号の方式として代表的なRSA暗
号の構成は、例えば「岡本、太田共編:“暗号・ゼロ知
識証明・数論,”共立出版,1995」(以下、文献O
Oと略す)のp.220に示されている。RSA暗号は
Nを自然数としてZ/NZ上の冪乗演算、いわゆる冪乗
剰余演算を必要とする。この冪乗剰余演算を高速に実行
するためには、文献OOのpp.179−181に紹介
されているMontgomery法が有効である。Mo
ntgomery法を実行するためにはmを自然数とし
てmod2m での逆元演算を必要とする。[0003] A typical RSA cryptosystem as a public key cryptosystem is described in, for example, "Okamoto and Ota Co-editor:" Cryptography / Zero Knowledge Proof / Number Theory, "Kyoritsu Shuppan, 1995" (hereinafter referred to as Document O).
O). At 220 is shown. The RSA encryption requires a power operation on Z / NZ, where N is a natural number, a so-called modular exponentiation operation. In order to execute this modular exponentiation operation at high speed, it is necessary to refer to pp. The Montgomery method introduced in 179-181 is effective. Mo
To perform the ntgomery method requires the inverse operation in mod2 m where m is a natural number.
【0004】一般的にmodNでの逆元演算を実行する
ためには、文献OOのpp.120−121にある拡張
Euclidの互除法を使うことができるが、ここでは
法が2m という特別な形であるので、Hensel l
ifting(多項式の根をmod bm からmod
bm+1 に持ち上げる自然な方法)を用い効率的に求める
ことができる。さらに、逆元計算をソフトウェアで実行
する場合には近年のCPUにおいてワード乗算は比較的
高速であるのでmがワード長程度の場合Hensel
liftingの2次版であるZassenhausの
方法(文献「H.Zassenhaus:“On He
nsel Factorization,I,”Jou
rnal of number theory,vo
l.1,pp.291−311,1969」)が有効で
ある。[0004] In general, in order to execute the inverse operation in modN, it is necessary to refer to pp. The extended Euclid algorithm in 120-121 can be used, but here the modulus is a special form of 2 m , so Hensell
ifting (polynomial roots from mod b m to mod
b m + 1 ), and can be obtained efficiently. Further, when the inverse element calculation is performed by software, word multiplication is relatively fast in recent CPUs, so that when m is about the word length, Hensel
The method of Zassenhaus, which is the second version of lifting (see "H. Zassenhaus:" On He "
nsel Factorization, I, "Jou
rnal of number theory, vo
l. 1, pp. 291-311, 1969 ").
【0005】Zassenhausの方法は入力をx、
出力をy、補助変数をaとbとおき、[x]をガウス記
号(xを越えない最大の整数)とすると、m=2n (n
≧1)の場合は以下の通りである。また、ビット位置は
最下位を0とおき、x、y、a、bのビット長はmとす
る。 Step1:xを入力する。In the method of Zassenhaus, the input is x,
If the output is y, the auxiliary variables are a and b, and [x] is a Gaussian symbol (the largest integer not exceeding x), then m = 2 n (n
The case of ≧ 1) is as follows. In the bit position, the least significant bit is set to 0, and the bit lengths of x, y, a, and b are set to m. Step 1: Input x.
【0006】Step2:初期値としてy:=1、b:
=[x/2]とする。 Step3:i=0,1,…,n−1について以下を繰
り返す。 1.aを(y×(2^(2i )−(bの下位2i ビッ
ト)))の下位2i ビットとする。ただし、p^qはp
のq乗を表わす。 2.yの2i ビット目から2i+1 −1ビット目にaの下
位2i ビットをはめ込む。Step 2: y: = 1, b: as initial values
= [X / 2]. Step 3: The following is repeated for i = 0, 1,..., N−1. 1. The a (y × (2 ^ ( 2 i) - ( lower 2 i bits of b))) and the lower 2 i bits. Where p ^ q is p
To the q-th power. 2. fitting the lower 2 i bits of a from 2 i bit of y in 2 i + 1 -1-th bit.
【0007】3.bにxa+bの2i ビット目から2n
−2i −1ビット目を代入する。 Step4:yを出力する。 この場合のビット処理は、iの状態変化に対する出力y
を格納したレジスタの内容を2進数で表わすと図3に示
すようになる。「1」は常に1、「.」は求まったビッ
ト、「?」は未知のビットである。ここでi=1の結果
からi=2の結果を作るところを見ると、新たに4〜7
ビット目が求まっている。この4〜7ビット目にデータ
を配置することを「はめ込む」と表現している。[0007] 3. b is 2 n from the 2 i bit of xa + b
-2 i The first bit is substituted. Step 4: Output y. The bit processing in this case is based on the output y corresponding to the state change of i.
FIG. 3 shows the contents of the register in which is stored in binary notation. "1" is always 1, "." Is a determined bit, and "?" Is an unknown bit. Here, when the result of i = 2 is made from the result of i = 1, new
A bit has been found. Arranging data in the 4th to 7th bits is expressed as "fitting".
【0008】[0008]
【発明が解決しようとする課題】上記Zassenha
usの方法は、下位2i ビットの取出し、はめ込みなど
ビット単位の処理が多く、ソフトウェアで実装する場合
にはマスク処理が多くなり効率があまりよくない。この
発明では、このマスク処理を削減することを目的とす
る。The above-mentioned Zassenha
The us method has many bit-by-bit processes such as taking out and fitting the lower 2 i bits and, when implemented by software, increases the mask processing and is not very efficient. An object of the present invention is to reduce the mask processing.
【0009】[0009]
【課題を解決するための手段】上記Zassenhau
sの方法において、Step3の2.で、aをyにはめ
込む際にそのまま、はめ込むのではなく、この発明では
加算ではめ込む(足し込む)。このようにすると、St
ep3の1.でマスクせずとも符号を反転させれば結果
が正しくなる性質を利用する。Means for Solving the Problems The above-mentioned Zassenhau
In the method of Step s, 2. of Step 3. Thus, when a is inserted into y, it is not inserted as it is, but is added (added) in the present invention. In this case, St
Ep3 1. Utilizing the property that the result is correct if the sign is inverted without masking with.
【0010】つまり入力xのmodmでの逆元yを求め
たもので、a、bを補助変数とし、m=2n (n≧1)
であり、x、y、a、bのビット長はmであって、この
発明によれば、xを入力し、記憶手段に記憶し、初期処
理として、xを読み出し、[x/2]を演算し、この結
果をbとして記憶手段に記憶し、bの最下位ビットをa
として記憶手段に記憶し、a、x、bを読み出し、
[(ax+b)/2]を演算し、その結果によりbを更
新し、xを読み出し、その下位2ビットをyとして記憶
手段に記憶する。That is, the inverse y of the input x in the modm is obtained, where a and b are auxiliary variables, and m = 2 n (n ≧ 1)
And the bit length of x, y, a, and b is m. According to the present invention, x is input, stored in the storage means, x is read out as an initial process, and [x / 2] is converted to [x / 2]. The result is stored in the storage means as b, and the least significant bit of b is set to a
And a, x, and b are read out,
[(Ax + b) / 2] is calculated, b is updated with the result, x is read, and the lower two bits are stored in the storage means as y.
【0011】次にi=1,2,…,n−1に対して、
b、yを読み出して−byを演算し、その結果で記憶手
段内のaを更新し、またb、a、xを読み出して[(b
+ax)/(2^(2i ))]を演算し、その結果で記
憶手段内のbを更新し、y、aを読み出し、y+a×2
^(2i )を演算し、その結果で記憶手段内のyを更新
する。ただしp^qはpのq乗を表わす。Next, for i = 1, 2,..., N−1,
b, y are read to calculate -by, a is updated in the storage means with the result, and b, a, x is read, and [(b
+ Ax) / (2 ^ (2 i ))], b is updated in the storage means with the result, y and a are read, and y + a × 2
^ (2 i ) is calculated, and the result is used to update y in the storage means. Here, p ^ q represents p raised to the power q.
【0012】次にyを読み出して逆元演算結果として出
力する。Next, y is read and output as an inverse operation result.
【0013】[0013]
【発明の実施の形態】以下ではこの発明の実施例につい
て説明する。図1は処理手順を示す。入力をx、出力を
y、補助変数をaとbとおき、[x]をガウス記号(x
を越えない最大の整数)とし、m=2n (n≧1)の場
合は以下の通りである。ここでx、y、a、bのビット
長はmとする。Embodiments of the present invention will be described below. FIG. 1 shows the processing procedure. Input is x, output is y, auxiliary variables are a and b, and [x] is Gaussian symbol (x
, And the following is the case where m = 2 n (n ≧ 1). Here, the bit length of x, y, a, and b is m.
【0014】Step1:xを入力する(S1)。 Step2:初期処理として以下の計算を行なう。 1.b:=[x/2] 2.a:=bの最下位ビット(S2) 3.b:=[(ax+b)/2] 4.y:=xの下位2ビット(S3) 5.i:=1(S4) Step3:i=1,2,…,n−1に対し以下を繰り
返す。Step 1: x is input (S1). Step 2: The following calculation is performed as initial processing. 1. b: = [x / 2] 2. a: = least significant bit of b (S2) 3. b: = [(ax + b) / 2] 4. 4. Lower 2 bits of y: = x (S3) i: = 1 (S4) Step3: The following is repeated for i = 1, 2,..., n−1.
【0015】 1.a:=−by 2.b:=[(b+ax)/(2^(2i ))] 3.y:=y+a×2^(2i )(S5) 4.i:=i+1(S6) Step4:yを出力する。[0015] 1. a: = − by2. b: = [(b + ax) / (2 ^ (2 i ))] 3. y: = y + a × 2 ^ (2 i ) (S5) i: = i + 1 (S6) Step 4: Output y.
【0016】・Step2において、1,2,3はこの
順序で実行する。4と5は任意のタイミングで実行して
よい。 ・Step3において、1→2→3の順に実行しても、
1→3→2の順に実行してもよいが、最近の計算機では
データ依存性から1→2→3の順で実行するのがよい。
また、i=n−1のときは、bは不要なので2を実行し
なくてよい。さらに4は任意のタイミングで実行してよ
い。In Step 2, 1, 2, and 3 are executed in this order. Steps 4 and 5 may be executed at any timing. -In Step 3, even if executed in the order of 1 → 2 → 3,
Although it may be executed in the order of 1 → 3 → 2, it is better to execute the order in the order of 1 → 2 → 3 in recent computers due to data dependence.
Also, when i = n-1, b is not necessary and 2 need not be executed. Further, step 4 may be executed at an arbitrary timing.
【0017】・アルゴリズムのループを予め展開してお
いてもよい(展開数は逆元対象のビット数のlogのオ
ーダでしか効いてこない)。ループ展開することによ
り、iに依存する定数を事前に計算しておき、より高速
に逆元を求めることができる。 ・2の冪での割算、かけ算は、通常のプロセッサではシ
フト演算を使うとより高速に計算できる。The loop of the algorithm may be expanded in advance (the number of expansions is effective only in the order of the log of the number of bits to be inversed). By performing loop expansion, a constant depending on i can be calculated in advance, and the inverse element can be obtained at higher speed. Division and multiplication by a power of 2 can be performed at a higher speed by using a shift operation in an ordinary processor.
【0018】図2にこの発明の装置の機能構成を示す。
入力手段11によりxが記憶装置12のx格納領域13
に格納され、演算装置10内のb初期化第1手段14に
よりxが記憶装置12から読み出され、[x/2]が演
算され、その演算結果がbとして記憶装置12のb格納
領域15に格納される。FIG. 2 shows a functional configuration of the apparatus of the present invention.
X is stored in the x storage area 13 of the storage device 12 by the input means 11
And x is read from the storage device 12 by the b initialization first means 14 in the arithmetic device 10, and [x / 2] is calculated, and the calculation result is set as b in the b storage area 15 of the storage device 12 Is stored in
【0019】a初期化手段16により記憶装置12から
bが読み出され、その最下位ビットがaとして記憶装置
12のa格納領域17に記憶される。b初期化第2手段
18により、記憶装置12からa、x、bが読み出さ
れ、[(ax+b)/2]が演算され、その演算結果が
bとしてb格納領域15の記憶内容が更新される。y初
期化手段19により記憶装置12からxが読み出され、
その下位2ビットがyとして記憶装置12のy格納領域
21に格納される。i初期化手段22により記憶装置1
2のi格納領域23にiとして1がセットされる。The b is read from the storage device 12 by the a initialization means 16 and the least significant bit is stored in the a storage area 17 of the storage device 12 as a. The a, x, and b are read from the storage device 12 by the b initialization second means 18, and [(ax + b) / 2] is calculated, and the calculation result is updated to b to update the storage content of the b storage area 15. You. x is read from the storage device 12 by the y initialization means 19,
The lower two bits are stored in the y storage area 21 of the storage device 12 as y. storage device 1 by i initialization means 22
1 is set as i in the 2 i storage area 23.
【0020】a更新手段24により記憶装置12から
b、yが読み出され、−byが演算され、その演算結果
によりa格納領域17に記憶されているaが更新され
る。b更新手段25により記憶装置12からa、b、
x、iが読み出され、[(b+ax)/2^(2i )]
が演算され、その演算結果によりb格納領域15に記憶
されているbが更新される。The b and y are read from the storage device 12 by the a updating means 24, and -by is calculated, and a stored in the a storage area 17 is updated based on the calculation result. b, a, b,
x and i are read and [(b + ax) / 2 / (2 i )]
Is calculated, and b stored in the b storage area 15 is updated based on the calculation result.
【0021】y更新手段26により記憶装置12から
a、y、iが読み出され、y+a×2^(2i )が演算
され、その演算結果により、y格納領域21に格納され
ているyが更新される。i更新手段27により記憶装置
12からiが読み出され、i+1が演算され、その演算
結果によりi格納領域23に格納されているiが更新さ
れる。The a, y, and i are read from the storage device 12 by the y updating means 26, and y + a × 2 ^ (2 i ) is calculated. According to the calculation result, y stored in the y storage area 21 is calculated. Be updated. The i updating means 27 reads i from the storage device 12, calculates i + 1, and updates i stored in the i storage area 23 according to the calculation result.
【0022】制御手段28により記憶装置12からi、
nが読み出され、i=nになるまでa更新手段24、b
更新手段25、y更新手段26、i更新手段27が順次
動作させられ、i=nになると出力手段29により、記
憶装置12からyが読み出され、外部へ出力される。こ
の発明の装置はその各機能を、コンピュータによりプロ
グラムを解析実行させることにより、行わせることもで
きる。The control means 28 sends i,
a updating means 24, b until n is read and i = n
The updating means 25, the y updating means 26, and the i updating means 27 are sequentially operated, and when i = n, y is read from the storage device 12 by the output means 29 and output to the outside. The apparatus of the present invention can also perform each function by causing a computer to analyze and execute a program.
【0023】[0023]
【発明の効果】この発明によれば、Step3の1、
2、3から理解されるようにビットはめ込み処理がなく
なり、それだけZassenhausの方法をソフトウ
ェアで実装する上で問題となったビット処理が軽減さ
れ、mod2m で高速に逆元が計算できるようになっ
た。According to the present invention, 1 of Step 3,
As will be understood from a few cases, the bit inset processing is eliminated, and the bit processing which is a problem in implementing the method of Zassenhaus in software is reduced accordingly, and the inverse element can be calculated at high speed by mod2 m . .
【0024】・汎用のワークステーション上でn=5
(すなわち32ビット)の場合に“Zassenhau
sの方法”及びこの発明の逆元演算方法をC言語で実装
して処理速度を比較した。入力xは乱数を発生させて決
定し、繰り返し実行することでOSのオーバーヘッドを
除去して比較したところ、この発明の逆元演算方法は
“Zassenhausの方法”に比べて10%以上高
速に逆元を計算できることを確認した。N = 5 on a general-purpose workstation
(I.e., 32 bits), "Zassenhau
s method ”and the inverse operation method of the present invention were implemented in C language and the processing speed was compared. The input x was determined by generating a random number and repeatedly executed to remove the OS overhead and compared. However, it has been confirmed that the inverse operation method of the present invention can calculate the inverse at least 10% faster than the “Zassenhaus method”.
【図1】この発明の実施例の処理手順を示す流れ図。FIG. 1 is a flowchart showing a processing procedure according to an embodiment of the present invention.
【図2】この発明の実施例の機能構成を示すブロック
図。FIG. 2 is a block diagram showing a functional configuration of the embodiment of the present invention.
【図3】Zassenhausの方法のビット処理の例
を示す図。FIG. 3 is a diagram showing an example of bit processing in the method of Zassenhaus.
フロントページの続き (56)参考文献 特開 平10−207689(JP,A) GF(2m)における逆元の高速算法 について,電子情報通信学会技術研究報 告,1987年 7月18日,Vol.87,N o.120,IT87−24 有限体GF(2m)の逆元の効率的再 帰アルゴリズム,昭和63年電子情報通信 学会春季全国大会講演論文集,1988年 3月15日,1−299 素数べきを法とする逆元計算アルゴリ ズム,1997年暗号と情報セキュリティ・ シンポジウム講演論文集,1997年 1月 29日,14A (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 650 G06F 7/72 JICSTファイル(JOIS)Continuation of the front page (56) References JP-A-10-207689 (JP, A) About the high-speed algorithm of the inverse in GF (2m), IEICE Technical Report, July 18, 1987, Vol. 87, No. 120, IT87-24 Efficient recursive algorithm for inverse of finite field GF (2m), Proc. Of the 1988 IEICE Spring Conference, March 15, 1988, 1-299 Inverse computation algorithm, Proceedings of the 1997 Symposium on Cryptography and Information Security, January 29, 1997, 14A (58) Fields investigated (Int. Cl. 7 , DB name) G09C 1/00 650 G06F 7 / 72 JICST file (JOIS)
Claims (2)
手段と、 整数n、i(nは1以上)および2n ビットの整数x、
y、a、bを記憶する記憶手段と、 記憶手段に記憶されたxを用いて[x/2](ただし
[x]はxを越えない最大の整数)を演算し、演算結果
をbとして記憶手段に記憶するb初期化第1手段と、 記憶手段に記憶されたbの最下位ビットをaとして記憶
手段に記憶するa初期化手段と、 記憶手段に記憶されたa、x、bを用いて[(ax+
b)/2]を演算し、その演算結果により、記憶手段に
記憶されたbを更新するb初期化第2手段と、 記憶手段に記憶されたxの下位2ビットを取得してyと
して記憶手段に記憶するy初期化手段と、 記憶手段に記憶されたiを1にセットするi初期化手段
と、 記憶手段に記憶されたb、yを用いて−byを演算し、
その演算結果により、記憶手段に記憶されたaを更新す
るa更新手段と、 記憶手段に記憶されたa、b、x、iを用いて[(b+
ax)/(2^(2i))]を演算し、その演算結果に
より、記憶手段に記憶されたbを更新するb更新手段と
(但しp^qはpのq乗を表わす)、 記憶手段に記憶されたa、y、iを用いてy+a×2^
(2i )を演算し、その演算結果により、記憶手段に記
憶されたyを更新するy更新手段と、 記憶手段に記憶されたiをi+1に更新するi更新手段
と、 記憶手段に記憶されたi、nを読み出し、i=nになる
まで上記a更新手段、 上記b更新手段、上記y更新手段、上記i更新手段を順
次動作させる制御手段と、 記憶手段に記憶されたyを出力する出力手段と、 を有することを特徴とする逆元演算装置。An input means for storing the input x in a storage means; integers n and i (n is 1 or more) and an integer x of 2 n bits;
Using storage means for storing y, a, and b, and x stored in the storage means, calculate [x / 2] (where [x] is the largest integer not exceeding x), and set the calculation result as b B initialization first means stored in the storage means, a initialization means stored in the storage means as the least significant bit of b stored in the storage means, a, x, b stored in the storage means Using [(ax +
b) / 2], b-initializing second means for updating b stored in the storage means based on the calculation result, and the lower 2 bits of x stored in the storage means are acquired and stored as y Y initialization means for storing in the means, i initialization means for setting i stored in the storage means to 1, and -by using b and y stored in the storage means,
Using (a + b) updating means for updating a stored in the storage means and a, b, x, and i stored in the storage means based on the calculation result, [(b +
ax) / (2 ^ (2 i ))], and b updating means for updating b stored in the storage means according to the calculation result (where p ^ q represents p raised to the qth power). Y + a × 2 ^ using a, y, i stored in the means
(2 i ) is calculated, and the result of the calculation is used to update y stored in the storage means, y update means updating i stored in the storage means to i + 1, and i storage means stored in the storage means Control means for sequentially operating the a updating means, the b updating means, the y updating means, and the i updating means until i = n, and outputting y stored in the storage means. An inverse operation device, comprising: output means.
上の整数)xを記憶手段に記憶する処理と、 記憶手段のxを読み出し、[x/2](ただし[x]は
xを越えない最大の整数)を演算し、その演算結果を2
n ビットの整数bとして記憶手段に記憶する処理と、 記憶手段のbを読み出し、bの最下位ビットを2n ビッ
トの整数aとして記憶手段に記憶する処理と、 記憶手段のa、x、bを読み出し、[(ax+b)/
2]を演算し、その演算結果をbとして記憶手段に記憶
する処理と、 記憶手段のxを読み出し、xの下位2ビットを取得して
2n ビットの整数yとして記憶する処理と、 整数iを、lに初期化して記憶手段に記憶する処理と、 記憶手段からb及びyを読み出し、−byを演算し、そ
の演算結果により記憶手段に記憶されているaを更新す
るa更新処理と、 記憶手段からa、b、x、iを読み出し、[(b+a
x)/(2^(2i ))]を演算し、その演算結果によ
り記憶手段に記憶されているbを更新するb更新処理と
(ただしp^qはpのq乗を表わす)、 記憶手段からa、y、iを読み出し、y+a×2^(2
i )を演算し、その演算結果により、記憶手段に記憶さ
れているyを更新するy更新処理と、 記憶手段からiを読み出し、iをi+1に更新するi更
新処理と、 記憶手段からi、nを読み出し、i=nになるまで、上
記a更新処理、上記b更新処理、上記y更新処理、上記
i更新処理を順次繰返し動作させる処理と、 記憶手段のyを読み出して出力する処理と、 を逆元演算装置のコンピュータに実行させるプログラム
を記録した記録媒体。2. A process of storing an input 2 n- bit integer (n is an integer of 1 or more) x in a storage means, reading x of the storage means, and [x / 2] (where [x] is x Is calculated, and the result of the calculation is 2
a process of storing in the storage unit as an n- bit integer b; a process of reading out b of the storage unit and storing the least significant bit of b in the storage unit as a 2 n- bit integer a; a, x, and b of the storage unit And [(ax + b) /
2], a process of storing the calculation result in the storage means as b, a process of reading out x from the storage means, obtaining the lower 2 bits of x, and storing the result as an integer y of 2 n bits; Is initialized to 1 and stored in the storage means; b and y are read from the storage means, -by is calculated, and a stored in the storage means is updated by the calculation result; A, b, x, i are read from the storage means, and [(b + a
x) / (2 ^ (2 i ))], and b update processing for updating b stored in the storage means with the result of the operation (where p ^ q represents p raised to the qth power). A, y, i are read from the means, and y + a × 2 ^ (2
i ) is calculated, and based on the calculation result, y update processing for updating y stored in the storage means, i update processing for reading i from the storage means and updating i to i + 1, a process for sequentially and repeatedly performing the a updating process, the b updating process, the y updating process, and the i updating process until i = n; a process for reading and outputting y in the storage unit; Recording a program for causing a computer of an inverse operation device to execute the program.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01078899A JP3315087B2 (en) | 1999-01-19 | 1999-01-19 | Inverse calculation device and program recording medium for the same |
US09/487,597 US6578061B1 (en) | 1999-01-19 | 2000-01-19 | Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon |
US10/419,241 US6850960B2 (en) | 1999-01-19 | 2003-04-21 | Inverse calculation apparatus and recording medium having stored thereon a program for executing inverse calculation |
US10/419,244 US6859818B2 (en) | 1999-01-19 | 2003-04-21 | Method and apparatus for permuting input data and recording medium having stored thereon a program for executing permutation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01078899A JP3315087B2 (en) | 1999-01-19 | 1999-01-19 | Inverse calculation device and program recording medium for the same |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000206881A JP2000206881A (en) | 2000-07-28 |
JP3315087B2 true JP3315087B2 (en) | 2002-08-19 |
Family
ID=11760091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01078899A Expired - Lifetime JP3315087B2 (en) | 1999-01-19 | 1999-01-19 | Inverse calculation device and program recording medium for the same |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3315087B2 (en) |
-
1999
- 1999-01-19 JP JP01078899A patent/JP3315087B2/en not_active Expired - Lifetime
Non-Patent Citations (3)
Title |
---|
GF(2m)における逆元の高速算法について,電子情報通信学会技術研究報告,1987年 7月18日,Vol.87,No.120,IT87−24 |
有限体GF(2m)の逆元の効率的再帰アルゴリズム,昭和63年電子情報通信学会春季全国大会講演論文集,1988年 3月15日,1−299 |
素数べきを法とする逆元計算アルゴリズム,1997年暗号と情報セキュリティ・シンポジウム講演論文集,1997年 1月29日,14A |
Also Published As
Publication number | Publication date |
---|---|
JP2000206881A (en) | 2000-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Comba | Exponentiation cryptosystems on the IBM PC | |
US6859818B2 (en) | Method and apparatus for permuting input data and recording medium having stored thereon a program for executing permutation | |
EP0917047B1 (en) | Apparatus for modular inversion for information security | |
US7945784B1 (en) | Method and system to perform secret sharing | |
JP2008293034A (en) | Method and device for executing decrypting mechanism through calculating standardized modular exponentiation for thwarting timing attack | |
US8862651B2 (en) | Method and apparatus for modulus reduction | |
US11502836B2 (en) | Method for performing cryptographic operations on data in a processing device, corresponding processing device and computer program product | |
CN102396010B (en) | Finite field calculation apparatus, finite filed calculation method, program, and recording medium | |
JP3315087B2 (en) | Inverse calculation device and program recording medium for the same | |
Kim et al. | High-speed division architecture for GF (2^ sup m^) | |
CN108418687B (en) | Rapid modular reduction method and medium suitable for SM2 algorithm | |
JP4202701B2 (en) | Polynomial residue arithmetic unit, method and program | |
KR100564764B1 (en) | Finite field polynomial multiplier and Method thereof | |
KR100194769B1 (en) | Using memory to find inverses on finite fields | |
CN111339546B (en) | Method for generating data tag, electronic device and computer storage medium | |
US20230195943A1 (en) | Processor architecture and related techniques | |
Jin et al. | Short-iteration constant-time GCD and modular inversion | |
Erdem | Fast software multiplication in F_2 [x] for embedded processors | |
JP3110110B2 (en) | Encryption / decryption device | |
Ferradi et al. | Recovering Secrets From Prefix-Dependent Leakage | |
Cao et al. | EHNP Strikes Back: Analyzing SM2 Implementations | |
Cryptosystem et al. | Wen Wang¹ (), Jakub Szefer¹ (), and Ruben Niederhagen2 () 1 Yale University, New Haven, CT, USA {wen. wang. ww349, jakub. szefer}@ yale. edu 2 Fraunhofer SIT, Darmstadt, Germany ruben@ polycephaly. org | |
Parimaladevi et al. | Analysis of Power Efficient Modulo 2n+ 1 Adder Architectures | |
KR20010062971A (en) | Method for improving operation speed in cryptography | |
Verma et al. | XP 2: A New Compact Representation for Manipulating Arithmetic Circuits |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090607 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090607 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100607 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100607 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110607 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120607 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130607 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140607 Year of fee payment: 12 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |