Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3315087B2 - 逆元計算装置及びそのプログラム記録媒体 - Google Patents
[go: Go Back, main page]

JP3315087B2 - 逆元計算装置及びそのプログラム記録媒体 - Google Patents

逆元計算装置及びそのプログラム記録媒体

Info

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
Application number
JP01078899A
Other languages
English (en)
Other versions
JP2000206881A (ja
Inventor
和麻呂 青木
広樹 植田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to JP01078899A priority Critical patent/JP3315087B2/ja
Priority to US09/487,597 priority patent/US6578061B1/en
Publication of JP2000206881A publication Critical patent/JP2000206881A/ja
Application granted granted Critical
Publication of JP3315087B2 publication Critical patent/JP3315087B2/ja
Priority to US10/419,241 priority patent/US6850960B2/en
Priority to US10/419,244 priority patent/US6859818B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、符号理論や情報
セキュリティ技術に用いられる整数の剰余環の逆元計算
装置及びそのプログラム記録媒体に関するものである。
【0002】
【従来の技術】データを秘匿するためには暗号化技術が
有効である。暗号化の方法は共通鍵暗号と公開鍵暗号が
ある。共通鍵暗号では、暗号化側と復号化側で同一の鍵
を用い、この鍵は秘密に管理されている。一方、公開鍵
暗号では暗号化鍵と復号化鍵は異なっており、暗号化鍵
は公開しても、復号化鍵は現実的な時間内に求まらない
と広く信じられている。
【0003】公開鍵暗号の方式として代表的なRSA暗
号の構成は、例えば「岡本、太田共編:“暗号・ゼロ知
識証明・数論,”共立出版,1995」(以下、文献O
Oと略す)のp.220に示されている。RSA暗号は
Nを自然数としてZ/NZ上の冪乗演算、いわゆる冪乗
剰余演算を必要とする。この冪乗剰余演算を高速に実行
するためには、文献OOのpp.179−181に紹介
されているMontgomery法が有効である。Mo
ntgomery法を実行するためにはmを自然数とし
てmod2m での逆元演算を必要とする。
【0004】一般的にmodNでの逆元演算を実行する
ためには、文献OOのpp.120−121にある拡張
Euclidの互除法を使うことができるが、ここでは
法が2m という特別な形であるので、Hensel l
ifting(多項式の根をmod bm からmod
m+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」)が有効で
ある。
【0005】Zassenhausの方法は入力をx、
出力をy、補助変数をaとbとおき、[x]をガウス記
号(xを越えない最大の整数)とすると、m=2n (n
≧1)の場合は以下の通りである。また、ビット位置は
最下位を0とおき、x、y、a、bのビット長はmとす
る。 Step1: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 ビットをはめ込む。
【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ビット目にデータ
を配置することを「はめ込む」と表現している。
【0008】
【発明が解決しようとする課題】上記Zassenha
usの方法は、下位2i ビットの取出し、はめ込みなど
ビット単位の処理が多く、ソフトウェアで実装する場合
にはマスク処理が多くなり効率があまりよくない。この
発明では、このマスク処理を削減することを目的とす
る。
【0009】
【課題を解決するための手段】上記Zassenhau
sの方法において、Step3の2.で、aをyにはめ
込む際にそのまま、はめ込むのではなく、この発明では
加算ではめ込む(足し込む)。このようにすると、St
ep3の1.でマスクせずとも符号を反転させれば結果
が正しくなる性質を利用する。
【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として記憶
手段に記憶する。
【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乗を表わす。
【0012】次にyを読み出して逆元演算結果として出
力する。
【0013】
【発明の実施の形態】以下ではこの発明の実施例につい
て説明する。図1は処理手順を示す。入力をx、出力を
y、補助変数をaとbとおき、[x]をガウス記号(x
を越えない最大の整数)とし、m=2n (n≧1)の場
合は以下の通りである。ここでx、y、a、bのビット
長は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に対し以下を繰り
返す。
【0015】 1.a:=−by 2.b:=[(b+ax)/(2^(2i ))] 3.y:=y+a×2^(2i )(S5) 4.i:=i+1(S6) Step4:yを出力する。
【0016】・Step2において、1,2,3はこの
順序で実行する。4と5は任意のタイミングで実行して
よい。 ・Step3において、1→2→3の順に実行しても、
1→3→2の順に実行してもよいが、最近の計算機では
データ依存性から1→2→3の順で実行するのがよい。
また、i=n−1のときは、bは不要なので2を実行し
なくてよい。さらに4は任意のタイミングで実行してよ
い。
【0017】・アルゴリズムのループを予め展開してお
いてもよい(展開数は逆元対象のビット数のlogのオ
ーダでしか効いてこない)。ループ展開することによ
り、iに依存する定数を事前に計算しておき、より高速
に逆元を求めることができる。 ・2の冪での割算、かけ算は、通常のプロセッサではシ
フト演算を使うとより高速に計算できる。
【0018】図2にこの発明の装置の機能構成を示す。
入力手段11によりxが記憶装置12のx格納領域13
に格納され、演算装置10内のb初期化第1手段14に
よりxが記憶装置12から読み出され、[x/2]が演
算され、その演算結果がbとして記憶装置12のb格納
領域15に格納される。
【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がセットされる。
【0020】a更新手段24により記憶装置12から
b、yが読み出され、−byが演算され、その演算結果
によりa格納領域17に記憶されているaが更新され
る。b更新手段25により記憶装置12からa、b、
x、iが読み出され、[(b+ax)/2^(2i )]
が演算され、その演算結果によりb格納領域15に記憶
されているbが更新される。
【0021】y更新手段26により記憶装置12から
a、y、iが読み出され、y+a×2^(2i )が演算
され、その演算結果により、y格納領域21に格納され
ているyが更新される。i更新手段27により記憶装置
12からiが読み出され、i+1が演算され、その演算
結果によりi格納領域23に格納されているiが更新さ
れる。
【0022】制御手段28により記憶装置12からi、
nが読み出され、i=nになるまでa更新手段24、b
更新手段25、y更新手段26、i更新手段27が順次
動作させられ、i=nになると出力手段29により、記
憶装置12からyが読み出され、外部へ出力される。こ
の発明の装置はその各機能を、コンピュータによりプロ
グラムを解析実行させることにより、行わせることもで
きる。
【0023】
【発明の効果】この発明によれば、Step3の1、
2、3から理解されるようにビットはめ込み処理がなく
なり、それだけZassenhausの方法をソフトウ
ェアで実装する上で問題となったビット処理が軽減さ
れ、mod2m で高速に逆元が計算できるようになっ
た。
【0024】・汎用のワークステーション上でn=5
(すなわち32ビット)の場合に“Zassenhau
sの方法”及びこの発明の逆元演算方法をC言語で実装
して処理速度を比較した。入力xは乱数を発生させて決
定し、繰り返し実行することでOSのオーバーヘッドを
除去して比較したところ、この発明の逆元演算方法は
“Zassenhausの方法”に比べて10%以上高
速に逆元を計算できることを確認した。
【図面の簡単な説明】
【図1】この発明の実施例の処理手順を示す流れ図。
【図2】この発明の実施例の機能構成を示すブロック
図。
【図3】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)

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 入力されたxを記憶手段に記憶する入力
    手段と、 整数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を出力する出力手段と、 を有することを特徴とする逆元演算装置。
  2. 【請求項2】 入力された2n ビットの整数(nは1以
    上の整数)xを記憶手段に記憶する処理と、 記憶手段のxを読み出し、[x/2](ただし[x]は
    xを越えない最大の整数)を演算し、その演算結果を2
    n ビットの整数bとして記憶手段に記憶する処理と、 記憶手段のbを読み出し、bの最下位ビットを2n ビッ
    トの整数aとして記憶手段に記憶する処理と、 記憶手段のa、x、bを読み出し、[(ax+b)/
    2]を演算し、その演算結果をbとして記憶手段に記憶
    する処理と、 記憶手段のxを読み出し、xの下位2ビットを取得して
    n ビットの整数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を読み出して出力する処理と、 を逆元演算装置のコンピュータに実行させるプログラム
    を記録した記録媒体。
JP01078899A 1999-01-19 1999-01-19 逆元計算装置及びそのプログラム記録媒体 Expired - Lifetime JP3315087B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP01078899A JP3315087B2 (ja) 1999-01-19 1999-01-19 逆元計算装置及びそのプログラム記録媒体
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 (ja) 1999-01-19 1999-01-19 逆元計算装置及びそのプログラム記録媒体

Publications (2)

Publication Number Publication Date
JP2000206881A JP2000206881A (ja) 2000-07-28
JP3315087B2 true JP3315087B2 (ja) 2002-08-19

Family

ID=11760091

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01078899A Expired - Lifetime JP3315087B2 (ja) 1999-01-19 1999-01-19 逆元計算装置及びそのプログラム記録媒体

Country Status (1)

Country Link
JP (1) JP3315087B2 (ja)

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
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 (ja) 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
JP2008293034A (ja) タイミング攻撃を阻止する標準化されたモジュラべき乗を計算することにより復号メカニズムを実行する方法と装置
CN113141255B (zh) 用于在处理设备、对应的处理设备和计算机程序产品中对数据执行密码运算的方法
WO2010048719A1 (en) Method and apparatus for modulus reduction
US12524578B2 (en) Processor architecture and related techniques
CN111385092B (zh) 使用信息盲化的密码装置及其密码处理方法
CN108418687B (zh) 一种适合sm2算法的快速模约减方法和介质
JP3315087B2 (ja) 逆元計算装置及びそのプログラム記録媒体
Kim et al. High-speed division architecture for GF (2 m)
Bernstein Optimizing linear maps modulo 2
CN118713820A (zh) 一种基于比特切片的aes高阶掩码s盒快速实现方法
CN111339546B (zh) 用于生成数据标签的方法、电子设备及计算机存储介质
Kuramoto et al. Improved Constant-Time Modular Inversion
Jin et al. Short-iteration constant-time GCD and modular inversion
Dutta et al. Polynomial Inversion Algorithms in Constant Time for Post-Quantum Cryptography
Ilkhom et al. A novel approach to integer factorization: a paradigm in cryptography
KR100194769B1 (ko) 메모리를 사용하여 유한체상에서 역원을 구하는 방법
Inoue et al. A faster variant of cgl hash function via efficient backtracking checks
KR100377185B1 (ko) 암호시스템의 연산속도 개선 방법
Cao et al. EHNP strikes back: analyzing SM2 implementations
JP2004102071A (ja) 多項式剰余系演算装置、方法及びプログラム
JP3110110B2 (ja) 暗号復号装置
US20040081317A1 (en) Encryption circuit achieving higher operation speed

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