JP2006276786A - 計算方法、計算装置及びコンピュータプログラム - Google Patents
計算方法、計算装置及びコンピュータプログラム Download PDFInfo
- Publication number
- JP2006276786A JP2006276786A JP2005099980A JP2005099980A JP2006276786A JP 2006276786 A JP2006276786 A JP 2006276786A JP 2005099980 A JP2005099980 A JP 2005099980A JP 2005099980 A JP2005099980 A JP 2005099980A JP 2006276786 A JP2006276786 A JP 2006276786A
- Authority
- JP
- Japan
- Prior art keywords
- register
- value
- calculation
- modulus
- montgomery
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/728—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using Montgomery reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Algebra (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Abstract
【解決手段】 計算装置は、2m*k+1 の法nに関する同値H0 ≡2m*k+1(mod n)を計算し(ステップA)、REDC演算により、H0 から2E(p,m,k)(mod n)の同値H≡2E(p,m,k)(mod n)を計算し(ステップB)、2p >m×kの場合に、g=2k*G(p,m,k)について、H=REDC(H,G)n による補正演算を行う(ステップC)。
【選択図】 図4
Description
ただし、n:剰余の法を示す整数
a,b:0≦a,b<nとなる整数
R:2m*k にて示される定数
k:1ワードあたりのビット長
m:nを表現するために必要なワードの最小個数
モンゴメリ逆変換:x=Mont-1(x’)=x’×R-1(mod n)
ただし、H=R2 (mod n)
モンゴメリ逆変換:x=REDC(x’,1)n =x’×1×R-1=x’×R-1(mod n)
図16は、従来法1におけるモンゴメリ変換パラメータの計算方法を示すフローチャートである。図16に示す従来法1では、剰余の法nを入力し、R2 (mod n)を出力するものとする。ただし、R=2m*k (mod n)である。従来法1は、主にステップA1及びステップB1にて構成される。ステップA1は、シフト算及び減算を用いて、H0 =2v ×R(mod n)を計算するステップである。ただし、vは自然数である。ステップB1は、REDC演算を用いてH0 からH=R2 (mod n)を計算するステップである。
例1−1.1024ビットのRSA暗号の計算に適用
上記条件より、nは1024ビットである。1ワード=32ビットとするとk=32であり、nの有効ワード長m=32となる。1ワードあたりのビット長kとnの有効ワード長mとを乗算したk×mとnの全ビット数とが一致することから、nの最上位ビット=1となりq=0となる。またm×k=1024であるので、v=1,2,4,…,1024を選択することが可能である。v=1の場合、SFTが0×5+1=1回、SUBが0.5×(0+1)+1=1.5回、CMPが0+1=1回、そしてREDCがp=log2 ((32×32)/1)=10回となる。
上記条件より、nは163ビットである。1ワード=8ビットとするとk=8であり、nの有効ワード長m=21となる。nをビット長=8、有効ワード長m=21とすると、最上位に位置するm×k−163=21×8−163=5ビットが0となり、q=5となる。またm×k=168であるので、v=21,42,84,168を選択することが可能である。v=21の場合、SFTが4×5+21=41回、SUBが0.5×(5+21)+1=14回、CMPが5+21=26回、そしてREDCがp=log2 ((21×8)/21)=3回となる。
図18は、従来法2におけるモンゴメリ変換パラメータの計算方法を示すフローチャートである。図18に示す従来法2では、剰余の法nを入力し、R2 (mod n)を出力するものとする。ただし、R=2m*k (mod n)である。従来法2は、主にステップA2及びステップB2にて構成される。ステップA2は、例えば従来法1に示した処理と同様の処理により、シフト算及び減算を用いてH0 =2v ×R(mod n)を計算するステップである。ただし、vは自然数である。ステップB2は、REDC演算を用いてH0 からH=R2 (mod n)を計算するステップである。
例2−1.1024ビットのRSA暗号の計算に適用
上記条件より、nは1024ビットである。1ワード=32ビットとするとk=32であり、nの有効ワード長m=32となる。1ワードあたりのビット長kとnの有効ワード長mとを乗算したk+mとnの全ビット数とが一致することから、nの最上位ビット=1となりq=0となる。またm×k=1024であるので、vは1024の任意の因数(factor)から選択することが可能である。V=1の場合、SFTが1回、SUBが0.5×(1)+1=1.5回、CMPが1回、そしてREDCがp=log2 ((32×32)/1)=10回となる。
上記条件より、nは163ビットである。1ワード=8ビットとするとk=8であり、nの有効ワード長m=21となる。nをビット長=8、有効ワード長m=21とすると、最上位に位置するm×k−163=21×8−163=5ビットが0となり、q=5となる。またm×k=168であるので、vは168の任意の因数(factor)から選択することが可能である。v=21の場合、SFTが4×5+21=41回、SUBが0.5×(5+21)+1=14回、CMPが5+21=26回、そしてREDCが(m×k)/v=(1000)2 からp’−1+W((m×k)/v)=4−1+0=3回となる。
図20は、従来法3におけるモンゴメリ変換パラメータの計算方法を示すフローチャートである。図20に示す従来法3では、剰余の法nを入力し、R2 (mod n)を出力するものとする。ただし、R=2m*k (mod n)である。従来法3は、主にステップA3、ステップB3及びステップC3にて構成される。ステップA3は、シフト算及び減算を用いてH0=2m*k+v を満たすH0 を計算するステップである。ただし、vは自然数であり、かつ(m×k)/vが自然数であることを満たす。ステップB3は、REDC演算を用いてH0 からH=2E(p",m,k) (mod n)を計算するステップである。ただし、p”は、2p"-1<(m×k)/v≦2p"を満たす整数であり、E(p”,m,k)=m×k+v×2p"である。ステップC3は、2p”>(m×k)/vの場合に、g=2k*G(p",m,k) について、H=REDC(H,G)n による補正演算を行うステップである。ただし、Gは、G(p”,m,k)=2×m−(v×2p”)/kと表され、1≦G(p”,m,k)≦m−1の範囲を満たす整数である。
例3−1.1024ビットのRSA暗号の計算に適用
上記条件より、nは1024ビットである。1ワード=32ビットとするとk=32であり、nの有効ワード長m=32となる。m×k=1024であるので、vは1024の任意の因数(factor)から選択することが可能である。V=1の場合、SFTが32+1=33回、SUBが0.5×(32+1)=16.5回、CMPが32+1=33回、そしてREDCがp=log2 ((32×32)/1)=10回となる。
上記条件より、nは163ビットである。1ワード=8ビットとするとk=8であり、nの有効ワード長m=21となる。m×k=168であるので、vは168の任意の因数(foctor)から選択することが可能である。v=21の場合、SFTが8+21=29回、SUBが0.5×(8+21)=14.5回、CMPが8+21=29回、そしてREDCが(m×k)/v=(1000)2 からp’−1+W((m×k)/v)=4−1+0=3回となる。
従来法1として示した計算方法は、ステップA1の処理において、第1レジスタREG1に格納した「n」のビット列中で上位から連続する「0」の個数を以降の計算に要するパラメータであるqとして用いるため、データ値の最上位有効ビット(Most Significant Bit;以下MSBという)を算出しなければならない。MSBの算出には、ソフトウェア実装における処理効率が悪いビット単位の演算処理が必要となるという問題がある。しかも図17に示した図表から明らかな様にシフト演算、減算及び比較演算の回数は、qの値に依存しており、qが大きい程、処理負荷が大きくなるという問題がある。このようにqに関する処理負荷の増大という問題がある。
さらに従来法1として示した計算方法は、ステップB1の処理において、REDC演算をp回繰り返すことでH=22*m*k (mod n)=R2 (mod n)を計算する。このときpは、p=log2 ((m×k)/v)を満たす整数、即ち(m×x)/vの値が2のべき乗となる値でなければならないという制約となる。この制約を満たすため、m,k,vは、nのビット長及び1ワードあたりのビット長からm及びkを決定し、決定されたm及びkに対し、(m×k)/vが2のべき乗の値となるようにvの値を設定するという手順で決定される。即ち(m×k)/vが2のべき乗の値になるようにvの値を設定しなければならないという制約のため、vの値は大きな値をとる可能性がある。図17に示した図表から明らかな様に、シフト演算、減算及び比較演算の回数は、vの値に依存しており、vが大きい程、処理負荷が大きくなるという問題がある。このように(m×k)/vが2のべき乗の値との制約に関する処理負荷の増大という問題がある。
従来法2として示した計算方法は、ステップA2の処理が、従来法1のステップA1の処理と同様であるため、従来法1と同様のqに関する処理負荷の増大という問題がある。
さらに従来法2として示した計算方法は、ステップB2の処理において、REDC演算をp’−1回繰り返すために、(m×k)/vのi番目のビット値を検出するので、ソフトウェア実装における処理効率が悪いビット単位の演算処理が必要となるという問題がある。このようにREDC演算を繰り返すために、(m×k)/vの各ビット値の検出に関する問題がある。
従来法3として示した計算方法は、従来法1及び従来法2に示す様にMSBの算出及びqの値に依存する処理がないという点で優れている。しかしステップA3の処理において、2倍剰余演算をk+v回繰り返すため、図21に示した図表から明らかな様に、シフト演算、減算及び比較演算の回数は、kの値に依存しており、kが大きい程、処理負荷が大きくなる。
ただし、n:剰余の法を示す整数
a,b:0≦a,b<nとなる整数
R:2m*k にて示される定数
k:1ワードあたりのビット長
m:nを表現するために必要なワードの最小個数
(性質2)値a,bが、両方ともm個のワード値での表現が可能な場合で、a×b≦R×nの条件が満たされるとき、y=a×b×R-1(mod n)の計算が行われる。このとき0≦y<nを満足する。
(性質3)値a,bが、両方ともm個のワード値での表現が可能な場合で、a×b≦R×nの条件が満たされないとき、y≡a×b×R-1(mod n)の計算が行われる。このとき0≦y<nを満足するとは限らない。
モンゴメリ逆変換:x=Mont-1(x’)=x’×R-1(mod n)
ただし、H≡R2 (mod n)
モンゴメリ逆変換:x=REDC(x’,1)n =x’×1×R-1=x’×R-1(mod n)
1024ビットの法nとして、n=21023+1の場合の実施例について説明する。RSA暗号で用いられる数値は、nが2つの素数p,qの積であるという条件があり、実施例1におけるnはこの条件を満たさない。しかし本発明の計算方法は、法nが任意の奇数値である場合に、22*m*k の法nに関する同値H≡22*m*k (mod n)を計算する方法であり、nが素数の積であることに限定しない。よって本実施例のnはRSA暗号の条件は満たさないが、本発明の計算方法に係る条件は満たすものであり、しかも非常に簡単な形で表現できる値であるので、本発明の実施例1の理解を容易にするものと考えられる。以上を踏まえた上で、1024ビットのnとして、n=21023+1の場合の実施例について説明する。
REG1:=n=(100…01)2,1024
REG2:=0
第1レジスタ13a及び第2レジスタ13bを初期化する。ただし、a=(b)2,c は、数値aをcビットの2進数表現した結果がbであることを示す。
REG2:=0−n=(0111…11)2,1024
なおREG2:=(REG1の2の補数)とすることによっても同じ結果を得ることが可能である。またREG1の全ビットを反転し、更にその最下位ビットに1をセットする様にしてもよい。
REG2=(0111…11)2,1024を左1ビットシフト演算し、REG2=(111…110)2,1024とする。そしてあふれた値が「0」であると判定し、ステップS4へ進む。なおこのときREG2(mod n)=(111…110)2,1024(mod n)=(011…1100)2,1024及び21025(mod n)=(011…1100)2,1024より、演算結果の正しさが実証される。
REG2:=REDC(REG2,REG2)
上記処理を29 <m×k=1024≦210より決定されるp=10回繰り返す。
1回目 REG2:=REDC(REG2,REG2)
≡21024+1×21024+1×2-1024 ≡21024+2(mod n)
2回目 REG2:=REDC(REG2,REG2)
≡21024+2×21024+2×2-1024 ≡21024+4(mod n)
3回目 REG2:=REDC(REG2,REG2)
≡21024+2×21024+2×2-1024 ≡21024+8(mod n)
: :
9回目 REG2:=REDC(REG2,REG2)
≡21024+256×21024+256×2-1024 ≡21024+512(mod n)
10回目 REG2:=REDC(REG2,REG2)
≡21024+512×21024+512×2-1024 ≡21024+1024 (mod n)
上記計算よりREG2≡22048(mod n)を得る。
2p (=210)>m×k(=1024)が偽であるので、補正演算は実行しない。
REG2≡H0 ≡22048(mod n)を出力し、処理を終了する。
163ビットの法nとして、n=0x7,0263d95a,880adfbc,e3c1648d,44ce22fa,813980fbの場合の実施例について説明する。ただし上記の0x…は、16進数で表現された数値を示す。1ワードが8ビットであることから、163ビットは21ワードで示されるのでm=21となる。H0 ≡22*m*k (mod n)≡2326 (mod n)を計算する場合、必要な計算量は、図10より、SFTが6回、SUB(CPL)が1回、BITCHKが6回、そしてREDCが8回となる。具体的な計算を以下に示す。
REG1:=n=0x7,0263d95a,880adfbc,e3c1648d,44ce22fa,813980fb
REG2:=0
REG2:=0−n=0xf8,fd9c26a5,77f52043,1c3e9b72,bb31dd05,7ec67f05
なおREG2:=(REG1の2の補数)も同様である。
REG2=0xf8,fd9c26a5,77f52043,1c3e9b72,bb31dd05,7ec67f05 を左1ビットシフト演算し、REG2=0xf1,fb384d4a,efea4086,387d36e5,7663ba0a,fd8cfe0a とする。このときあふれた値が「1」であると判定し、同様の処理を繰り返す。即ち2回目の処理として、
REG2=0xf1,fb384d4a,efea4086,387d36e5,7663ba0a,fd8cfe0a を左1ビットシフト演算し、REG2=0xe3,f6709a95,dfd4810c,70fa6dca,ecc77415,fb19fc14 とする。このときあふれた値が「1」であると判定し、同様の処理を繰り返す。即ち3回目の処理として、
REG2=0xe3,f6709a95,dfd4810c,70fa6dca,ecc77415,fb19fc14 を左1ビットシフト演算し、REG2=0xc7,ece1352b,bfa90218,e1f4db95,d98ee82b,f633f828 とする。このときあふれた値が「1」であると判定し、同様の処理を繰り返す。即ち4回目の処理として、
REG2=0xc7,ece1352b,bfa90218,e1f4db95,d98ee82b,f633f828 を左1ビットシフト演算し、REG2=0x8f,d9c26a57,7f520431,c3e9b72b,b31dd057,ec67f050 とする。このときあふれた値が「1」であると判定し、同様の処理を繰り返す。即ち5回目の処理として、
REG2=0x8f,d9c26a57,7f520431,c3e9b72b,b31dd057,ec67f050 を左1ビットシフト演算し、REG2=0x1f,b384d4ae,fea40863,87d36e57,663ba0af,d8cfe0a0 とする。このときあふれた値が「1」であると判定し、同様の処理を繰り返す。即ち6回目の処理として、
REG2=0x1f,b384d4ae,fea40863,87d36e57,663ba0af,d8cfe0a0 を左1ビットシフト演算し、REG2=0x3f,6709a95d,fd4810c7,0fa6dcae,cc77415f,b19fc140 とする。このときあふれた値が「0」であると判定し、ステップS4へ進む。なおこのときREG2(mod n)=2169 (mod n)=0x5187052f,34e63323,0dda53b7,61380691,269a386dより、演算結果の正しさが実証される。
REG2:=REDC(REG2,REG2)
上記処理を27 <m×k=1024≦28 より決定されるp=8回繰り返す。
1回目 REG2:=REDC(REG2,REG2)
≡2168+1 ×2168+1 ×2-168≡2168+2 (mod n)
2回目 REG2:=REDC(REG2,REG2)
≡2168+2 ×2168+2 ×2-168≡2168+4 (mod n)
3回目 REG2:=REDC(REG2,REG2)
≡2168+4 ×2168+4 ×2-168≡2168+8(mod n)
: :
7回目 REG2:=REDC(REG2,REG2)
≡2168+64×2168+64×2-168≡2168+128 (mod n)
8回目 REG2:=REDC(REG2,REG2)
≡2168+128 ×2168+128 ×2-168≡2168+256 (mod n)
上記計算よりREG2≡2424 (mod n)
2p (=28 )>m×k(=168)が真であるので、補正演算を実行する。
補正演算
REG2:=REDC(REG2,g)≡2424 ×280×2-168≡2336
なお上記の計算において、
G(p,m,k)=2×m−(2p /k)
G(8,21,8)=2×21−(28 /8)=10
さらに、
g=2k*G(p,m,k)=28*10=280
以上により決定されるg=280を用いて補正演算が実行される。
REG2≡H≡2336 (mod n)を出力し、処理を終了する。
160ビットの法nとして、n=0x89381a5a,0ff02e5e,42d13b94,b6e022e6,96f53721の場合の実施例について説明する。ただし上記の0x…は、16進数で表現された数値を示す。1ワードが32ビットであることから、160ビットは5ワードで示されるのでm=5となる。そしてH≡22*m*k (mod n)≡2320 (mod n)を計算する場合、必要な計算量は、図10より、SFTが1回、SUB(CPL)が1回、BITCHKが1回、そしてREDCが8回となる。具体的な計算を以下に示す。
REG1:=n=0x89381a5a,0ff02e5e,42d13b94,b6e022e6,96f53721
REG2:=0
REG2:=0−n=0x76c7e5a5,f00fd1a1,bd2ec46b,491fdd19,690ac8df
なおREG2:=(REG1の2の補数)も同様である。
REG2=0x76c7e5a5,f00fd1a1,bd2ec46b,491fdd19,690ac8dfを左1ビットシフト演算子、REG2=0xed8fcb4b,e01fa343,7a5d88d6,923fba32,d21591beとする。そしてあふれた値が「0」であると判定し、ステップS4へ進む。なおこのときREG2(mod n)=2161 (mod n)=0x6457b0f1,d02f74e5,378c4d41,db5f974c,3b205a9dより、演算結果の正しさが実証される。
REG2:=REDC(REG2,REG2)
上記処理を27 <m×k=1024≦28 より決定されるp=8回繰り返す。
1回目 REG2:=REDC(REG2,REG2)
≡2160+1 ×2160+1 ×2-160≡2160+2 (mod n)
2回目 REG2:=REDC(REG2,REG2)
≡2160+2 ×2160+2 ×2-160≡2160+4 (mod n)
3回目 REG2:=REDC(REG2,REG2)
≡2160+4 ×2160+4 ×2-160≡2160+8 (mod n)
: :
7回目 REG2:=REDC(REG2,REG2)
≡2160+64×2160+64×2-160≡2160+128 (mod n)
8回目 REG2:=REDC(REG2,REG2)
≡2160+128 ×2160+128 ×2-160≡2160+256 (mod n)
上記計算よりREG2≡2416 (mod n)
2p (=28 )>m×k(=160)が真であるので、補正演算を実行する。
補正演算
REG2:=REDC(REG2,g)≡2416 ×264×2-160≡2320
なお上記の計算において、
G(p,m,k)=2×m−(2p /k)
G(8,5,32)=2×5−(28 /32)=2
さらに、
g=2k*G(p,m,k)=232*2=264
以上により決定されるg=264を用いて補正演算が実行される。
REG2≡H≡2320 (mod n)を出力し、処理を終了する。
=(5.5q+2.5v+1)×LC−((q+2)×LC+(q+1)×SC)
=(4.5q+2.5v−1)×LC−(q+1)×SC
=(3.5q+2.5v−2)×LC+(q+1)×(LC―SC)
=(2.5k+2.5v+1)×LC−((q+2)×LC+(q+1)×SC)
=(2.5k+2.5v−q−1)×LC−(q+1)×SC
=(2.5k+2.5v−2q−2)×LC+(q+1)×(LC−SC)
1ワードが32ビットの場合、1024ビットは32ワードで示される。従ってk=32,m=32となる。また最上位から連続する「0」の個数を示すq=0である。
m×k=1024より、(m×k)/vが2のべき乗値となるためのvの最小値は1であるので、v=1を選択する。
ステップA1.
(5.5q+2.5v+1)×LC=3.5×LC
ステップB1.
p×REDC=log2 ((m×k)/v)×REDC=10×REDC
合計
3.5×LC+10×REDC=13.5×LC
(m×k)/vが2のべき乗値である必要はないので、v=1を選択する。
ステップA2.
(5.5q+2.5v+1)×LC=3.5×LC
ステップB2.
p’−1+W((m×k)/v)×REDC=(11−1+W((10000000000)2,11))×REDC=10×REDC
合計
3.5×LC+10×REDC=13.5×LC
(m×k)/vが2のべき乗値である必要はないので、v=1を選択する。
ステップA3.
(2.5k+2.5v)×LC=82.5×LC
ステップB3及びステップC3
p”×REDC=log2 ((m×k)/v)×REDC=10×REDC
なお(m×k)/vが2のべき乗値をとるため、補正演算は行わない。
合計
82.5×LC+10×REDC=92.5×LC
ステップA
(q+1)×LC+(q+1)×SC=LC+SC
ステップB及びステップC
p×REDC=log2 (m×k)×REDC=10×REDC
なおm×kが2のべき乗値をとるため、補正演算は行わない。
合計
LC+SC+10×REDC=11×LC+SC
1ワードが8ビットの場合、163ビットは21ワードで示される。従ってk=8,m=21となる。また最上位から連続する「0」の個数を示すq=5である。
m×k=168より、(m×k)/vが2のべき乗値となるためのvの最小値は21であるので、v=21を選択する。
ステップA1.
(5.5q+2.5v+1)×LC=(27.5+52.5+1)×LC=81×LC
ステップB1
p×REDC=log2 ((m×k)/v)×REDC=3×REDC
合計
81×LC+3×REDC=84×LC
(m×k)/vが2のべき乗値である必要はないので、v=1を選択する。
ステップA2.
(5.5q+2.5v+1)×LC=(27.5+52.5+1)×LC=31×LC
ステップB2.
p’−1+W((m×k)/v)×REDC=(8−1+W((10101000)2,8 ))×REDC=9×REDC
合計
31×LC+9×REDC=40×LC
(m×k)/vが2のべき乗値である必要はないので、v=1を選択する。
ステップA3.
(2.5k+2.5v)×LC=22.5×LC
ステップB3及びステップC3
(p”+1)×REDC=(log2 ((m×k)/v)+1)×REDC=(8+1)×REDC=9×REDC
なお(m×k)/vが2のべき乗値ではないため、補正演算を行う。
合計
23.5×LC+9×REDC=32.5×LC
ステップA
(q+1)×LC+(q+1)×SC=6×LC+6×SC
ステップB及びステップC
(p+1)×REDC=(log2 (m×k)+1)×REDC=(8+1)×REDC=9×REDC
なおm×kが2のべき乗値ではないため、補正演算を行う。
合計
6×LC+6×SC+9×REDC=15×LC+6×SC
1ワードが32ビットの場合、160ビットは5ワードで示される。従ってk=32,m=5となる。また最上位から連続する「0」の個数を示すq=0である。
m×k=160より、(m×k)/vが2のべき乗値となるためのvの最小値は5であるので、v=5を選択する。
ステップA1.
(5.5q+2.5v+1)×LC=(12.5+1)×LC=13.5×LC
ステップB1
p×REDC=log2 ((m×k)/v)×REDC=5×REDC
合計
13.5×LC+5×REDC=18.5×LC
(m×k)/vが2のべき乗値である必要はないので、v=1を選択する。
ステップA2.
(5.5q+2.5v+1)×LC=(2.5+1)×LC=3.5×LC
ステップB2.
p’−1+W((m×k)/v)×REDC=(8−1+W((10100000)2,8 ))×REDC=8×REDC
合計
3.5×LC+8×REDC=11.5×LC
(m×k)/vが2のべき乗値である必要はないので、v=1を選択する。
ステップA3.
(2.5k+2.5v)×LC=82.5×LC
ステップB3及びステップC3
(p”+1)×REDC=(log2 ((m×k)/v)+1)×REDC=(8+1)×REDC=9×REDC
なお(m×k)/vが2のべき乗値ではないため、補正演算を行う。
合計
82.5×LC+9×REDC=91.5×LC
ステップA
(q+1)×LC+(q+1)×SC=LC+SC
ステップB及びステップC
(p+1)×REDC=(log2 (m×k)+1)×REDC=(8+1)×REDC=9×REDC
なおm×kが2のべき乗値ではないため、補正演算を行う。
合計
LC+SC+9×REDC=10×LC+SC
モンゴメリ乗算剰余演算にて用いられ、剰余の法nに関する剰余値であるモンゴメリ変換パラメータに関する値を、1ワードあたりのビット長がkで、少なくともm個のワードを有するレジスタを用いて計算する計算方法において、
2m*k の法nに関する同値として、nの負数を求めてレジスタに格納するステップと、
レジスタに格納されている値を桁上がり方向へ1ビットシフトして、レジスタからあふれる最上位ビットを破棄する処理を、破棄する最上位ビットが0になるまで繰り返すことで、2m*k+1 の法nに関する同値を求めてレジスタに格納するステップと、
レジスタに格納されている値に基づくモンゴメリ乗算剰余演算により、モンゴメリ変換パラメータと、法nに関する剰余値が同じである同値を計算するステップと
を含むことを特徴とする計算方法。
モンゴメリ乗算剰余演算にて用いられ、剰余の法nに関する剰余値であるモンゴメリ変換パラメータに関する値を、1ワードあたりのビット長がkで、少なくともm個のワードを有するレジスタと、値A及びB、並びに有効ワード長がmである剰余の法nに対し、2-m*k×A×B(mod n)として定義されるモンゴメリ乗算剰余演算REDC(A,B)n を実行する演算手段とを用いて計算する計算方法において、
剰余の法nの負数をレジスタに格納するステップと、
レジスタに格納されている値を桁上がり方向へ1ビットシフトするシフト処理を、レジスタからあふれる最上位ビットが0になるまで繰り返すステップと、
前記演算手段により、レジスタに格納されている値REGに対し、モンゴメリ乗算剰余演算REDC(REG,REG)n を実行して、その結果をレジスタに格納する処理を、2p-1 <m×k≦2p を満たす整数であるp回繰り返すステップと、
2p >m×kである場合に、前記演算手段により、レジスタに格納されている値REGに対し、モンゴメリ乗算剰余演算REDC(REG,g)n を実行して、その結果をレジスタに格納するステップと(ただしg=2k*G(p,m,k)、かつG(p,m,k)=2×m−2p /k)、
レジスタに格納されている値を、モンゴメリ変換パラメータと、法nに関する剰余値が同じである同値として出力するステップと
を含むことを特徴とする計算方法。
計算した同値を用いて、べき乗剰余処理を実行することを特徴とする付記1に記載の計算方法。
モンゴメリ乗算剰余演算にて用いられ、剰余の法nに関する剰余値であるモンゴメリ変換パラメータに関する値を計算する計算装置において、
レジスタと、
剰余の法nの負数を前記レジスタに格納する手段と、
レジスタに格納されている値を桁上がり方向へ1ビットシフトする処理を、レジスタからあふれる最上位ビットが0になるまで繰り返す手段と、
レジスタに格納されている値に基づくモンゴメリ乗算剰余演算により、モンゴメリ変換パラメータと、法nに関する剰余値が同じである同値を計算する手段と
を備えることを特徴とする計算装置。
モンゴメリ乗算剰余演算にて用いられ、剰余の法nに関する剰余値であるモンゴメリ変換パラメータに関する値を計算する計算装置において、
1ワードあたりのビット長がkで、少なくともm個のワードを有するレジスタと、
値A及びB、並びに有効ワード長がmである剰余の法nに対し、2-m*k×A×B(mod n)として定義されるモンゴメリ乗算剰余演算REDC(A,B)n を実行する演算手段と、
剰余の法nの負数をレジスタに格納する手段と、
レジスタに格納されている値を桁上がり方向へ1ビットシフトするシフト処理を、レジスタからあふれる最上位ビットが0になるまで繰り返す手段と、
前記演算手段により、レジスタに格納されている値REGに対し、モンゴメリ乗算剰余演算REDC(REG,REG)n を実行して、その結果をレジスタに格納する処理を、2p-1 <m×k≦2p を満たす整数であるp回繰り返す手段と、
2p >m×kである場合に、前記演算手段により、レジスタに格納されている値REGに対し、モンゴメリ乗算剰余演算REDC(REG,g)n を実行して、その結果をレジスタに格納する手段と(ただしg=2k*G(p,m,k)、かつG(p,m,k)=2×m−2p /k)、
レジスタに格納されている値を、モンゴメリ変換パラメータと、法nに関する剰余値が同じである同値として出力する手段と
を備えることを特徴とする計算装置。
複数のレジスタと、
m個のワードを有する第1のレジスタ及びm個以上のワードを有する第2のレジスタに、夫々n及び0を格納する手段と、
第2のレジスタに格納されている値から、第1のレジスタに格納されている値を減じて、剰余の法nの負数を計算する手段と
を更に備えることを特徴とする付記5に記載の計算装置。
レジスタに剰余の法nを格納する手段と、
レジスタに格納されている値の補数を、剰余の法nの負数として計算する手段と
を更に備えることを特徴とする付記5に記載の計算装置。
レジスタに剰余の法nを格納する手段と、
レジスタに格納されている値を反転させる手段と、
レジスタに格納されている値の最下位ビットを1として、剰余の法nの負数を計算する手段と
を更に備えることを特徴とする付記5に記載の計算装置。
前記シフト処理は、レジスタに格納されている値に該値を加算する加算処理であり、
前記シフト処理によりレジスタからあふれる最上位ビットは、前記加算処理により発生したキャリー値として検出する
ことを特徴とする付記5乃至付記8のいずれかに記載の計算装置。
1ワードあたりのビット長がkで、少なくともm個のワードを有するレジスタを備えるコンピュータに、モンゴメリ乗算剰余演算にて用いられ、剰余の法nに関する剰余値であるモンゴメリ変換パラメータに関する値を計算させるコンピュータプログラムにおいて、
コンピュータに、2m*k の法nに関する同値として、nの負数を求めてレジスタに格納させる手順と、
コンピュータに、レジスタに格納されている値を桁上がり方向へ1ビットシフトして、レジスタからあふれる最上位ビットを破棄する処理を、破棄する最上位ビットが0になるまで繰り返すことで、2m*k+1 の法nに関する同値を求めてレジスタに格納させる手順と、
コンピュータに、レジスタに格納されている値に基づくモンゴメリ乗算剰余演算により、モンゴメリ変換パラメータと、法nに関する剰余値が同じである同値を計算させる手順と
を実行させることを特徴とするコンピュータプログラム。
1ワードあたりのビット長がkで、少なくともm個のワードを有するレジスタと、値A及びB、並びに有効ワード長がmである剰余の法nに対し、2-m*k×A×B(mod n)として定義されるモンゴメリ乗算剰余演算REDC(A,B)n を実行する演算手段とを備えるコンピュータに、モンゴメリ乗算剰余演算にて用いられ、剰余の法nに関する剰余値であるモンゴメリ変換パラメータに関する値を計算させるコンピュータプログラムにおいて、
コンピュータに、剰余の法nの負数をレジスタに格納させる手順と、
コンピュータに、レジスタに格納されている値を桁上がり方向へ1ビットシフトするシフト処理を、レジスタからあふれる最上位ビットが0になるまで繰り返させる手順と、
コンピュータに、前記演算手段により、レジスタに格納されている値REGに対し、モンゴメリ乗算剰余演算REDC(REG,REG)n を実行して、その結果をレジスタに格納する処理を、2p-1 <m×k≦2p を満たす整数であるp回繰り返させる手順と、
コンピュータに、2p >m×kである場合に、前記演算手段により、レジスタに格納されている値REGに対し、モンゴメリ乗算剰余演算REDC(REG,g)n を実行して、その結果をレジスタに格納させる手順と(ただしg=2k*G(p,m,k)、かつG(p,m,k)=2×m−2p /k)、
コンピュータに、レジスタに格納されている値を、モンゴメリ変換パラメータと、法nに関する剰余値が同じである同値として出力させる手順と
を実行させることを特徴とするコンピュータプログラム。
11 制御手段
12 記録手段
13a 第1レジスタ
13b 第2レジスタ
14 演算手段
15 接続手段
2 通信措置
3 コンピュータプログラム
200 コンピュータプログラム
Claims (9)
- モンゴメリ乗算剰余演算にて用いられ、剰余の法nに関する剰余値であるモンゴメリ変換パラメータに関する値を、1ワードあたりのビット長がkで、少なくともm個のワードを有するレジスタを用いて計算する計算方法において、
2m*k の法nに関する同値として、nの負数を求めてレジスタに格納するステップと、
レジスタに格納されている値を桁上がり方向へ1ビットシフトして、レジスタからあふれる最上位ビットを破棄する処理を、破棄する最上位ビットが0になるまで繰り返すことで、2m*k+1 の法nに関する同値を求めてレジスタに格納するステップと、
レジスタに格納されている値に基づくモンゴメリ乗算剰余演算により、モンゴメリ変換パラメータと、法nに関する剰余値が同じである同値を計算するステップと
を含むことを特徴とする計算方法。 - 計算した同値を用いて、べき乗剰余処理を実行することを特徴とする請求項1に記載の計算方法。
- モンゴメリ乗算剰余演算にて用いられ、剰余の法nに関する剰余値であるモンゴメリ変換パラメータに関する値を計算する計算装置において、
レジスタと、
剰余の法nの負数を前記レジスタに格納する手段と、
レジスタに格納されている値を桁上がり方向へ1ビットシフトする処理を、レジスタからあふれる最上位ビットが0になるまで繰り返す手段と、
レジスタに格納されている値に基づくモンゴメリ乗算剰余演算により、モンゴメリ変換パラメータと、法nに関する剰余値が同じである同値を計算する手段と
を備えることを特徴とする計算装置。 - モンゴメリ乗算剰余演算にて用いられ、剰余の法nに関する剰余値であるモンゴメリ変換パラメータに関する値を計算する計算装置において、
1ワードあたりのビット長がkで、少なくともm個のワードを有するレジスタと、
値A及びB、並びに有効ワード長がmである剰余の法nに対し、2-m*k×A×B(mod n)として定義されるモンゴメリ乗算剰余演算REDC(A,B)n を実行する演算手段と、
剰余の法nの負数をレジスタに格納する手段と、
レジスタに格納されている値を桁上がり方向へ1ビットシフトするシフト処理を、レジスタからあふれる最上位ビットが0になるまで繰り返す手段と、
前記演算手段により、レジスタに格納されている値REGに対し、モンゴメリ乗算剰余演算REDC(REG,REG)n を実行して、その結果をレジスタに格納する処理を、2p-1 <m×k≦2p を満たす整数であるp回繰り返す手段と、
2p >m×kである場合に、前記演算手段により、レジスタに格納されている値REGに対し、モンゴメリ乗算剰余演算REDC(REG,g)n を実行して、その結果をレジスタに格納する手段と(ただしg=2k*G(p,m,k)、かつG(p,m,k)=2×m−2p /k)、
レジスタに格納されている値を、モンゴメリ変換パラメータと、法nに関する剰余値が同じである同値として出力する手段と
を備えることを特徴とする計算装置。 - 複数のレジスタと、
m個のワードを有する第1のレジスタ及びm個以上のワードを有する第2のレジスタに、夫々n及び0を格納する手段と、
第2のレジスタに格納されている値から、第1のレジスタに格納されている値を減じて、剰余の法nの負数を計算する手段と
を更に備えることを特徴とする請求項4に記載の計算装置。 - レジスタに剰余の法nを格納する手段と、
レジスタに格納されている値の補数を、剰余の法nの負数として計算する手段と
を更に備えることを特徴とする請求項4に記載の計算装置。 - レジスタに剰余の法nを格納する手段と、
レジスタに格納されている値を反転させる手段と、
レジスタに格納されている値の最下位ビットを1として、剰余の法nの負数を計算する手段と
を更に備えることを特徴とする請求項4に記載の計算装置。 - 前記シフト処理は、レジスタに格納されている値に該値を加算する加算処理であり、
前記シフト処理によりレジスタからあふれる最上位ビットは、前記加算処理により発生したキャリー値として検出する
ことを特徴とする請求項4乃至請求項7のいずれかに記載の計算装置。 - 1ワードあたりのビット長がkで、少なくともm個のワードを有するレジスタを備えるコンピュータに、モンゴメリ乗算剰余演算にて用いられ、剰余の法nに関する剰余値であるモンゴメリ変換パラメータに関する値を計算させるコンピュータプログラムにおいて、
コンピュータに、2m*k の法nに関する同値として、nの負数を求めてレジスタに格納させる手順と、
コンピュータに、レジスタに格納されている値を桁上がり方向へ1ビットシフトして、レジスタからあふれる最上位ビットを破棄する処理を、破棄する最上位ビットが0になるまで繰り返すことで、2m*k+1 の法nに関する同値を求めてレジスタに格納させる手順と、
コンピュータに、レジスタに格納されている値に基づくモンゴメリ乗算剰余演算により、モンゴメリ変換パラメータと、法nに関する剰余値が同じである同値を計算させる手順と
を実行させることを特徴とするコンピュータプログラム。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005099980A JP4662802B2 (ja) | 2005-03-30 | 2005-03-30 | 計算方法、計算装置及びコンピュータプログラム |
DE602005018442T DE602005018442D1 (de) | 2005-03-30 | 2005-07-21 | Verfahren und Vorrichtung zur Berechnung eines Montgomery-Konvertierungsparameters |
KR1020050066279A KR100723996B1 (ko) | 2005-03-30 | 2005-07-21 | 계산 방법, 계산 장치 및 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 |
EP05254555A EP1708081B1 (en) | 2005-03-30 | 2005-07-21 | Method and device for calculating a Montgomery conversion parameter |
US11/192,138 US8085931B2 (en) | 2005-03-30 | 2005-07-29 | Computation method, computing device and computer program |
CN2005100890451A CN1841443B (zh) | 2005-03-30 | 2005-08-03 | 计算方法和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005099980A JP4662802B2 (ja) | 2005-03-30 | 2005-03-30 | 計算方法、計算装置及びコンピュータプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006276786A true JP2006276786A (ja) | 2006-10-12 |
JP4662802B2 JP4662802B2 (ja) | 2011-03-30 |
Family
ID=36674874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005099980A Expired - Fee Related JP4662802B2 (ja) | 2005-03-30 | 2005-03-30 | 計算方法、計算装置及びコンピュータプログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US8085931B2 (ja) |
EP (1) | EP1708081B1 (ja) |
JP (1) | JP4662802B2 (ja) |
KR (1) | KR100723996B1 (ja) |
CN (1) | CN1841443B (ja) |
DE (1) | DE602005018442D1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009258460A (ja) * | 2008-04-18 | 2009-11-05 | Renesas Technology Corp | データ処理装置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100555939C (zh) * | 2006-09-20 | 2009-10-28 | 北京飞天诚信科技有限公司 | 一种基于网络的软件保护方法 |
US8243919B2 (en) * | 2007-03-07 | 2012-08-14 | Research In Motion Limited | Method and apparatus for performing elliptic curve scalar multiplication in a manner that counters power analysis attacks |
US8626811B2 (en) * | 2010-04-30 | 2014-01-07 | Certicom Corp. | Method and apparatus for providing flexible bit-length moduli on a block Montgomery machine |
FR2977952A1 (fr) * | 2011-07-13 | 2013-01-18 | St Microelectronics Rousset | Protection d'un calcul d'exponentiation modulaire par multiplication par une quantite aleatoire |
US8799343B2 (en) * | 2011-09-22 | 2014-08-05 | Intel Corporation | Modular exponentiation with partitioned and scattered storage of Montgomery Multiplication results |
DE102011117219A1 (de) * | 2011-10-28 | 2013-05-02 | Giesecke & Devrient Gmbh | Bestimmen eines Divisionsrests und Ermitteln von Primzahlkandidaten für eine kryptographische Anwendung |
US10678709B2 (en) | 2013-07-15 | 2020-06-09 | Infineon Technologies Ag | Apparatus and method for memory address encryption |
US10176121B2 (en) * | 2013-07-15 | 2019-01-08 | Infineon Technologies Ag | Apparatus and method for memory address encryption |
EP3776305B1 (en) | 2018-03-28 | 2024-09-18 | Cryptography Research, Inc. | Using cryptographic blinding for efficient use of montgomery multiplication |
CN109361510B (zh) * | 2018-11-07 | 2021-06-11 | 西安电子科技大学 | 一种支持溢出检测和大整数运算的信息处理方法及应用 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1021057A (ja) * | 1996-06-28 | 1998-01-23 | Hitachi Ltd | データ処理装置及びマイクロコンピュータ |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2726667B1 (fr) | 1994-11-08 | 1997-01-17 | Sgs Thomson Microelectronics | Procede de mise en oeuvre de multiplication modulaire selon la methode montgomery |
FR2726666B1 (fr) | 1994-11-08 | 1997-01-17 | Sgs Thomson Microelectronics | Procede de production d'un parametre de correction d'erreur associe a la mise en oeuvre d'operations modulaires selon la methode de montgomery |
FR2743908B1 (fr) | 1996-01-18 | 1998-02-27 | Sgs Thomson Microelectronics | Procede de production d'un parametre de correction d'erreur associe a la mise en oeuvre d'operation modulaire selon la methode de montgomery |
JP3525209B2 (ja) * | 1996-04-05 | 2004-05-10 | 株式会社 沖マイクロデザイン | べき乗剰余演算回路及びべき乗剰余演算システム及びべき乗剰余演算のための演算方法 |
TW419925B (en) * | 1998-01-27 | 2001-01-21 | Mitsubishi Electric Corp | Method and apparatus for arithmetic operation and recording medium thereof |
US6240436B1 (en) | 1998-03-30 | 2001-05-29 | Rainbow Technologies, Inc. | High speed montgomery value calculation |
US6978016B2 (en) * | 2000-12-19 | 2005-12-20 | International Business Machines Corporation | Circuits for calculating modular multiplicative inverse |
US7194088B2 (en) * | 2001-06-08 | 2007-03-20 | Corrent Corporation | Method and system for a full-adder post processor for modulo arithmetic |
WO2005013243A1 (ja) * | 2003-07-31 | 2005-02-10 | Fujitsu Limited | モンゴメリ乗算剰余における変換パラメータの計算装置、方法およびそのプログラム |
JP3734489B2 (ja) * | 2004-10-18 | 2006-01-11 | 良 渡部 | 四輪駆動型の農用トラクタ |
-
2005
- 2005-03-30 JP JP2005099980A patent/JP4662802B2/ja not_active Expired - Fee Related
- 2005-07-21 KR KR1020050066279A patent/KR100723996B1/ko not_active IP Right Cessation
- 2005-07-21 DE DE602005018442T patent/DE602005018442D1/de active Active
- 2005-07-21 EP EP05254555A patent/EP1708081B1/en not_active Ceased
- 2005-07-29 US US11/192,138 patent/US8085931B2/en not_active Expired - Fee Related
- 2005-08-03 CN CN2005100890451A patent/CN1841443B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1021057A (ja) * | 1996-06-28 | 1998-01-23 | Hitachi Ltd | データ処理装置及びマイクロコンピュータ |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009258460A (ja) * | 2008-04-18 | 2009-11-05 | Renesas Technology Corp | データ処理装置 |
Also Published As
Publication number | Publication date |
---|---|
CN1841443A (zh) | 2006-10-04 |
CN1841443B (zh) | 2011-04-20 |
EP1708081B1 (en) | 2009-12-23 |
US8085931B2 (en) | 2011-12-27 |
EP1708081A1 (en) | 2006-10-04 |
JP4662802B2 (ja) | 2011-03-30 |
KR100723996B1 (ko) | 2007-06-04 |
US20060222175A1 (en) | 2006-10-05 |
KR20060106565A (ko) | 2006-10-12 |
DE602005018442D1 (de) | 2010-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4662802B2 (ja) | 計算方法、計算装置及びコンピュータプログラム | |
US8504602B2 (en) | Modular multiplication processing apparatus | |
CN109039640B (zh) | 一种基于rsa密码算法的加解密硬件系统及方法 | |
EP1457875A2 (en) | Apparatus and method for performing montgomery type modular multiplication | |
JP5365624B2 (ja) | 電力解析攻撃への対策機能を備えた復号装置、プログラム、及び復装置を組み込んだ組込機器装置 | |
JP2008252299A (ja) | 暗号処理システム及び暗号処理方法 | |
EP0952697B1 (en) | Elliptic curve encryption method and system | |
JP4977300B2 (ja) | 暗号法及び装置 | |
JP3854226B2 (ja) | 鍵ペア決定およびrsa鍵生成のための方法並びに装置 | |
TW200413954A (en) | Information processing method | |
JP4177526B2 (ja) | 乗算剰余演算方法および乗算剰余回路 | |
JP4616169B2 (ja) | モンゴメリ乗算剰余における変換パラメータの計算装置、方法およびそのプログラム | |
Marouf et al. | Comparative study of efficient modular exponentiation algorithms | |
JP4423900B2 (ja) | 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム | |
US10318245B2 (en) | Device and method for determining an inverse of a value related to a modulus | |
Schinianakis et al. | RNS-Based Public-Key Cryptography (RSA and ECC) | |
Knezevic et al. | Modular reduction without precomputational phase | |
KR20070049823A (ko) | 전력공격에 안전한 모듈라 지수승 연산 및 상수배 곱셈연산방법 | |
JP3626315B2 (ja) | 剰余算装置、情報処理装置及び剰余算方法 | |
Abd Ghafar et al. | A Survey of Partial Key Exposure Attacks on RSA Cryptosystem | |
Mohammadi et al. | A fast and secure RSA public key cryptosystem | |
Yin | Curve selection in elliptic curve cryptography | |
JP3999554B2 (ja) | 乗算剰余演算方法及び演算装置 | |
Gueron et al. | Applications of the Montgomery exponent | |
CN117544297A (zh) | 数据加密方法、装置、系统、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071219 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101001 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101012 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101208 |
|
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: 20110104 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110104 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140114 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |