JP4554239B2 - モンゴメリー類型のモジュラー乗算装置及び方法 - Google Patents
モンゴメリー類型のモジュラー乗算装置及び方法 Download PDFInfo
- Publication number
- JP4554239B2 JP4554239B2 JP2004069540A JP2004069540A JP4554239B2 JP 4554239 B2 JP4554239 B2 JP 4554239B2 JP 2004069540 A JP2004069540 A JP 2004069540A JP 2004069540 A JP2004069540 A JP 2004069540A JP 4554239 B2 JP4554239 B2 JP 4554239B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- carry
- multiplicand
- bit
- bits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 45
- 238000006243 chemical reaction Methods 0.000 claims description 62
- 230000000295 complement effect Effects 0.000 claims description 19
- 238000012937 correction Methods 0.000 claims description 18
- 230000009467 reduction Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 11
- 238000003672 processing method Methods 0.000 claims description 5
- MYWUZJCMWCOHBA-VIFPVBQESA-N methamphetamine Chemical compound CN[C@@H](C)CC1=CC=CC=C1 MYWUZJCMWCOHBA-VIFPVBQESA-N 0.000 claims 1
- 238000010295 mobile communication Methods 0.000 abstract 1
- 241001442055 Vipera berus Species 0.000 description 176
- 101100222017 Candida albicans (strain SC5314 / ATCC MYA-2876) CSA2 gene Proteins 0.000 description 33
- 101150042828 csa1 gene Proteins 0.000 description 32
- 238000004364 calculation method Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 229910052757 nitrogen Inorganic materials 0.000 description 13
- 230000015654 memory Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 4
- 238000000844 transformation Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 229910052698 phosphorus Inorganic materials 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- OQCFWECOQNPQCG-UHFFFAOYSA-N 1,3,4,8-tetrahydropyrimido[4,5-c]oxazin-7-one Chemical compound C1CONC2=C1C=NC(=O)N2 OQCFWECOQNPQCG-UHFFFAOYSA-N 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
-
- 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
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5332—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by skipping over strings of zeroes or ones, e.g. using the Booth Algorithm
Description
また、本発明による信号処理システムで用いられるモジュラー乗算を遂行する信号処理方法は、モジュラー乗算で乗数のブース変換結果によって被乗数に対して1の補数演算を選択的に遂行して符号化された被乗数を出力する過程と、以前クロックの補正用桁上げ値(cin)から決定された現在クロックの桁上げ入力値(Carry-in)を求める過程と、前記桁上げ入力値と前記被乗数の符号ビットを基盤に前記モジュラー乗算で符号化されたモジュラスを出力する過程と、前記符号化された被乗数と前記符号化されたモジュラスの入力を受けて、前記以前クロックで求められた全加算演算の桁上げ値(C)と和値(S)に対して前記全加算演算を反復遂行して前記モジュラー乗算の結果値を計算する過程と、を含むことを特徴とする。
以下に説明される本発明はそれぞれnビットの、A = an-1・2n-1 + ・・・ +a1・2+a0、B = bn-1・2n-1 + ・・・ +b1・2+b0、N = nn-1・2n-1 + ・・・ +n1・2+n0についてモンゴメリー(Montgomery)アルゴリズムを利用してモジュラー乗算を行うための装置及びそれによる方法を提案している。この時、Aは乗数、Bは被乗数、Nはモジュラー数を表し、これらのビット大きさは512あるいは1024のように大きな数になり得る。
B−1.発明の構成
図1は、本発明の第1実施例に係るモジュラー乗算装置の構成を示す図である。
図1を参照すれば、前記モジュラー乗算装置は、変換ロジック(Recoding Logic)110、第1桁上げ保存加算器(Carrier save Adder;以下“CSA”と称する)120、商ロジック(Quotient Logic)130、選択器140、第2CSA150、全加算器(FA;Full Adder)160から構成される。前記モジュラー乗算装置は、モンゴメリーアルゴリズムに基づいてそれぞれnビットのA、B、N(ここで、-N≦A,B<N)を入力として受けてm+2(ここで、m=n/2)クロック内にA・B・R-1modN(ここで、R=4m+2)を計算するモジュラー乗算装置に対するハードウェア的な構成である。つまり、このモジュラー乗算装置はA・B・2-(n+4)modNを計算するための構成を持つ。以下、Aを乗数、Bを被乗数、Nをモジュロと称することにする。
図2に示すように、前記変換ロジック110は、乗数Aのビットが順次的にシフトされながら前記乗数Aの下位2ビット(ai+1、ai)と参照ビット(ai−1)をブース変換(Booth recoding)し、前記ブース変換された結果値(zi+1)によって被乗数Bを多重化して、(n+4)ビットの符号付き二進数を出力する。図1で、前記ブース変換された結果値(zi+1)は、各出力ビット別に、例えば、zi+1[2]、zi+1[1]、zi+1[0]に区分して図示した。ここで、被乗数Bは、zi+1[1]、zi+1[0]によって多重化され、多重化器114の出力は、1の補数化器116に入力されるzi+1[2]によって選択的に符号化される。したがって、前記zi+1[2]を符号ビットと称する。前記変換ロジック110の前段には前記乗数Aのビットを順次的にシフトさせて前記シフトされたビット列を生成するシフトレジスタ102と、前記被乗数を格納するためのレジスタ104が備えられる。前記変換ロジック110は、変換回路112と、多重化器(MUX)114と、1の補数化器116とから構成される。前記変換回路112は、前記生成されたビット列の下位2ビットai+1、ai と参照ビット(ai−1)をブース変換(Booth recoding)して、例えば、三つのビットで構成された結果値(zi+1[2]、zi+1[1]、zi+1[0];zi+1)を出力する。前記多重化器114は、前記ブース変換された結果(zi+1)によって前記被乗数Bを多重化し、多重化結果として0、B、2Bを出力する。また、前記1の補数化器116は前記生成されたビット列の下位2ビットを入力とする前記多重化器114の出力を選択的に1の補数化し、前記(n+4)ビットの符号付き二進数を出力する。前述した前記変換ロジック110は乗数Aを基盤にして変形されたブース変換(modified Booth recoding)を具現した回路であり、(n+4)ビットの符号付き拡張(signed extension)ビットを出力するが、この値は0、±B、±2B値のうち一つである。
図3を参照すれば、前記CSA1 120は、(n+4)個の全加算器121〜125を備えており、(n+2)ビットの第1信号(S2,2 〜S2,n+3)と、(n+3)ビットの第2信号(C2,1〜C2,n+3)と、前記変換ロジック110からの(n+4)ビットの前記二進数を第3信号(B0〜Bn+3)として入力し、前記(n+4)個の全加算器121〜125により全加算して(n+4)ビットの桁上げ値(C1,0〜C1,n+3)と和値(S1,0〜S1,n+3)を出力する。この時、前記第1信号の上位(n+2)番目のビットS2,n+3は、前記全加算器のうち上位3個の全加算器123〜125に入力され、前記第2信号の上位(n+3)番目のビットC2,n+3は前記全加算器のうち上位2個の全加算器124、125に入力される。
図4を参照すれば、前記商ロジック130は、前記CSA1 120からの前記(n+4)ビットの桁上げ値と和値の中から選択された下位2個の全加算器から出力される和値(S1,0、S1,1)と下位1個の全加算器から出力される桁上げ値(C1,0)を入力し、モジュラー減少の倍数を決定するための3ビットの決定値q2q1q0を出力する。前記商ロジック130は、ディー(D)フリップフロップ132と、全加算器134と、排他的論理和(XOR)器136と、組合回路138から構成される。前記Dフリップフロップ132は、図1の全加算器160から提供される桁上げ入力値Carry-inを入力して一時的に格納する。前記全加算器134は、 前記Dフリップフロップ132に格納された桁上げ入力値Carry-inと前記CSA1 120の最下位全加算器121から出力される和値(S1,0)を全加算する。前記排他的論理和器136は、前記CSA1 120の最下位全加算器121から出力される桁上げ値(C1,0)と前記CSA1の下位2番目の全加算器122から出力される和値(S1,1)を排他的論理和する。前記全加算器134は補正用桁上げ値(cin)を生成し、また、前記全加算器134には図示されなかったが、被乗数Bの符号ビット(B sign)が提供される。本発明は、上述したように全加算器134から現在クロックに出力された補正用桁上げ値(cin)は図1の全加算器160に入力され、全加算器160は補正用桁上げ値(cin)を基盤に次のクロックに商ロジック130で使用される桁上げ入力値(carry-in)を決定する。前記組合回路138は、前記全加算器134の出力(SO)と前記排他的論理和器136の出力(S1)とあらかじめ設定された入力ビット(n1)を組合わせてモジュラー減少(modular reduction)の倍数を決定するための値である3ビットの決定値(q2q1q0)として出力する。
図5を参照すれば、前記CSA2 150は、(n+4)個の全加算器151〜156を備えている。前記CSA2 150は前記選択器140から選択された(n+4)ビットのモジュラスN(N0 - Nn+3)を第1信号として入力し、前記CSA1 120からの(n+4)ビットの桁上げ値のうち最上位桁上げ値を除外した残りの(n+3)ビットの桁上げ値(C1,0〜C1,n+3)を第2信号として入力し、前記(n+4)ビットの和値の中で最下位和値を除外した残りの(n+3)ビットの和値(S1,1〜S1,n+3)を第3信号として入力し、前記(n+4)個の全加算器151〜156により(n+4)ビットの桁上げ値(C2,0〜C2,n+3)と和値(S2,0〜S2,n+3)を出力する。この時、前記第1信号の(n+4)ビットは前記モジュラスN(N0 - Nn+3)の(n+4)ビットがそれぞれ入力され、前記第2信号の(n+3)ビットの桁上げ値(C1,0〜C1,n+2)は前記全加算器のうち下位2番目の全加算器152から順次入力され、前記第3信号の(n+3)ビットの和値(S1,1〜S1,n+3)は前記全加算器の下位2番目の全加算器152から順次入力される。前記全加算器のうち最下位全加算器151には前記商ロジック130の全加算器134からの出力(S0)と、組合回路138の二番目の出力ビットであるq1,2と、モジュロ数(N)を表す最下位ビット(N0)が入力される。
図6を参照すれば、前記全加算器160は、前記CSA2 150の最下位全加算器151から出力される桁上げ値(C2,0)と下位2番目の全加算器152から出力される和値 (S2,1)を全加算して桁上げ入力値(Carry-in)として出力する。また、前記全加算器160は全加算動作のためにあらかじめ設定された補正用桁上げ値(cin)を受け、その全加算結果として桁上げ入力値(Carry-in)を出力する。この桁上げ入力値(Carry-in)は前記商ロジック130に提供される。
本発明は、それぞれnビットのA、B、N(ここで、-N≦A,B<N)を入力として受けてm+2(ここで、m=n/2)クロック内にA・B・R-1modN (ここで、R=4m+2)を計算する装置に関するものである。このような本発明の具現に適用される次の三つの原理が説明される。第一に、モジュラー乗算のための乗数(A)及び被乗数(B)を表現する原理が説明される。第二に、モジュラー乗算のための乗数(A)の2ビットを用いた1の補数基盤部分積計算原理が説明される。第三に、ブース変換と本発明の1の補数基盤部分積の原理を利用したモンゴメリーアルゴリズムに対する原理が説明される。
本発明ではモジュラー乗算のために乗数(A)と被乗数(B)を符号付き二進数で表現(Signed binary representation)する。すなわち、それぞれnビットのA、Bは符号付き動作(signed operation)のためにそれぞれ(n+4)ビットに変換されるが、このような変換過程中に値が負数である場合には1の補数形態に変換される。
本発明では、本発明が出願される前に当該分野で通常の知識を持つ者に周知されたブース変換(Booth Recoding)方式を変形して変形されたブース変換(Modified Booth Recoding)方式を使用することを特徴とする。このような本発明の特徴は、モジュラー乗算がより速い速度に行われるようにする効果を持つ。乗数Aは前記変形されたブース変換方式により2ビットずつzi(ここで、0≦i≦m+1)として変換される。この時、an+4 = an+3, a-1 = 0と仮定する。下記表1に、本発明による変形されたブース変換の規則を示す。そして、図2のように、zi+1[1]、zi+1[0]の二つのビット値によって被乗数0、B、または2B値が多重化器114を通じて出力される。図2のように、符号付き部分積(−Bまたは−2B)を求めるために、ブース変換(Booth Recoding)された結果値のうち、符号ビットzi+1[2]を基盤に多重化器の出力に対して1の補数演算を選択的に遂行する。
下記のアルゴリズムは、本発明がradix-4 モンゴメリーモジュラー乗算のために前記変形されたブース変換方式と1の補数演算を利用していることを示している。元来モンゴメリーアルゴリズムでは、結果値とmodulus Nと比較して結果値がmodulus Nより大きければ一度減算をしなければならないが、下記に示すアルゴリズムではその手続きがないことがわかる。
本発明はそれぞれnビットのA、B、N(ここで、-N≦A,B<N)を入力として受けてm+2 (ここで、m=n/2)クロック内にA・B・R-1modN(ここで、R=4m+2)を計算するためのものであり、図1に示すような装置によりその計算動作が行われる。
2)本発明の装置を利用してC=A・B・2-(n+4)modNを計算する。
3)P・C・2-(n+4)modN = A・BmodNを計算する。
その後、前述したような本発明の装置による演算結果値を利用してRSA演算に必要なモジュラー累乗memodNを計算する手続きを説明する。
2)レジスタにmodulus Nを格納する。
3)臨時レジスタCとSを0に初期化する。
4)モンゴメリーモジュラー乗算m’=fm(m,P,N)=m・P・R-1modNを行う。但し、累乗演算の基数Pは上記モジュラー乗算演算1)段階で定義したあらかじめ計算された値を表し、R=2n+4である。
5)m’をレジスタBにローディングする。
6)レジスタBにローディングした値を利用してモジュラー自乗演算を行う。この時、モンゴメリーモジュラー乗算に必要な乗数AはレジスタBからローディングし、変形されたブース変換回路を利用して値を得る。
7)指数eを左にシフトする。
8)指数eのMSB(Most Significant Bit)1を無視し、次のビットから次の9)〜10)段階を行う。
9)指数eの毎ビットが0または1に関らず段階4)〜5)を行いモジュラー自乗演算を行う。この時、自乗演算に必要な乗数はレジスタA、被乗数はレジスタBに格納される。
10)指数eの現在ビットが1の場合には段階9)を行った後、段階4)〜5)を行いモジュラー乗算を行う。この時、被乗数はレジスタBの内容であり、乗数は累乗演算の基数m'である。
11)指数eの全てのビットに対して段階8)〜10)を行った後、段階4)を利用してモジュラー乗算をもう一度行う。この時、被乗数はレジスタBの内容であり、乗数は1である。
前述した如く、本発明は、A・B・2-(n+4)modNを計算する回路を記述したものであり、記述された回路を利用して上述した一般のモジュラー乗算であるA・BmodNを計算できる。このような本発明に基づいて計算されたA・BmodNは、デジタル署名を生成及び検証するための機器に使用されるハードウェア的な装置に使用することができる。また、本発明は、ICカードに基づく電子署名、認証、暗/復号化のハードウェア装置に使用することができる。また、本発明は、モジュラー乗算を行う電子署名機器によって暗号及び復号化する機器を提供することができる。また、本発明は、電子署名機器に基づいて、NIST-DSS、RSA、ElGamal、Schnorr電子署名など既存の公開キー暗号システムを具現する上で利用することができる。
C−1.発明の構成
図7は本発明の第2実施例に係るモジュラー乗算装置の構成を示す図である。
図7を参照すれば、前記モジュラー乗算装置は、変換ロジック(Recoding Logic)210、第1桁上げ保存加算器(Carrier save Adder;以下“CSA”と称する)220、商ロジック(Quotient Logic)230、選択器240、第2CSA250、論理積算器(AND)260から構成される。前記モジュラー乗算装置は、モンゴメリーアルゴリズムに基づいてそれぞれnビットのA、B、N(ここで、-N≦A,B<N)を入力として受けてm+2(ここで、m=n/2)クロック内にA・B・R-1modN(ここで、R=4m+2)を計算するモジュラー乗算装置に対するハードウェア的な構成である。つまり、このモジュラー乗算装置はA・B・2-(n+4)modNを計算するための構成を持つ。
図8に示すように、前記変換ロジック210は、乗数(A)のビットが順次的にシフトされて生成されたビット列の下位2ビットをブース変換(Booth recoding)し、前記ブース変換された結果と被乗数(B)を多重化して(n+3)ビットの二進数を出力する。すなわち、前記変換ロジック210の前段には前記乗数のビットを順次的にシフトさせて前記シフトされたビット列を生成するシフトレジスタ202と、前記被乗数を格納するためのレジスタ204が備えられる。前記変換ロジック210は、多重化器(MUX)212から構成される。前記多重化器212は、前記生成されたビット列の下位2ビット(ai+1,ai)と前記被乗数を多重化し、多重化結果として0、B、2B、3Bを出力する。前述した前記変換ロジック210は乗数Aを基盤にして変形されたブース変換(modified Booth recoding)を具現した回路であり、(n+3)ビットの0、B、2B、3B値のうち一つを選択して出力する。
図9を参照すれば、前記CSA1 220は、(n+4)個の全加算器221〜225を備えており、(n+1)ビットの第1信号(S2,2 〜S2,n+2)と、(n+2)ビットの第2信号(C2,1〜C2,n+2)と、前記変換ロジック210からの(n+3)ビットの前記二進数を第3信号(B0〜Bn+2)として入力し、前記(n+3)個の全加算器221〜225により全加算して(n+3)ビットの桁上げ値(C1,0〜C1,n+2)と和値(S1,0〜S1,n+2)を出力する。前記第1信号及び第2信号は、前記CSA2 250から提供される信号であり、第3信号は、前記変換ロジック210から提供される信号である。この時、前記第1信号の最上位ビットS2,n+2は、前記全加算器のうち上位3番目の全加算器223に入力され、前記第2信号の最上位ビットC2,n+2は前記全加算器のうち上位2番目の全加算器224に入力される。前記全加算器のうち最上位全加算器225には第1信号及び第2信号として“0”が提供され、2番目の全加算器224には第1信号として“0”が提供される。すなわち、前記CSA1 220を構成する最下位の全加算器221から(n+1)番目の全加算器223まで(n+1)ビットの第1信号Sが順次入力され、(n+2)番目の全加算器224及び(n+3)番目の全加算器225には“0”の第1信号が入力される。また、前記CSA1 220を構成する最下位の全加算器221から(n+2)番目の全加算器224まで(n+2)ビットの第2信号(C2,1〜C2,n+2)が順次入力され、(n+3)番目の全加算器225には“0”の第2信号が入力される。また、前記CSA1 220を構成する最下位の全加算器221から(n+1)番目の全加算器223まで(n+3)ビットの第3信号(B0〜Bn+2)が順次入力される。
図10を参照すれば、前記商ロジック230は、前記CSA1 220からの前記(n+3)ビットの桁上げ値と和値の中から選択された下位2個の全加算器から出力される和値(S1,0、S1,1)と下位1個の全加算器から出力される桁上げ値(C1,0)を入力し、モジュラー減少の倍数を決定するための2ビットの決定値q1q0を出力する。前記商ロジック230は、ディー(D)フリップフロップ232と、半加算器(HA:Half Adder)234と、排他的論理和(XOR)器236と、組合回路238から構成される。前記Dフリップフロップ232は論理積(AND)演算器260から桁上げ入力値Carry-inを入力して一時的に格納する。前記半加算器234は、前記Dフリップフロップ232に格納された桁上げ入力値Carry-inと前記CSA1 220の最下位全加算器221から出力される和値(S1,0)を半全加算する。前記排他的論理和器236は、前記CSA1 220の最下位全加算器221から出力される桁上げ値(C1,0)と2番目の全加算器222から出力される和値(S1,1)を排他的論理和する。前記組合回路238は、前記半加算器234の出力(SO)と前記排他的論理和器236の出力(S1)とあらかじめ設定された入力ビット(n1)を組合わせて2ビットの決定値(q1q0)として出力する。
図11を参照すれば、前記CSA2 250は、(n+3)個の全加算器251〜256を備えている。前記CSA2 250は前記選択器240から選択された(n+3)ビットのモジュロ数N(N0 - Nn+2)を第1信号として入力し、前記CSA1 220からの(n+3)ビットの桁上げ値のうち最上位桁上げ値を除外した残りの(n+2)ビットの桁上げ値(C1,0〜C1,n+2)を第2信号として入力し、前記(n+3)ビットの和値の中で最下位桁上げ値を除外した残りの(n+2)ビットの和値(S1,1〜S1,n+2)を第3信号として入力し、前記(n+3)個の全加算器251〜256により(n+3)ビットの桁上げ値(C2,0〜C2,n+2)と和値(S2,0〜S2,n+2)を出力する。この時、前記第1信号の(n+3)ビットは前記全加算器の最下位全加算器251から順次入力され、前記第2信号の(n+2)ビットは前記全加算器のうち下位2番目の全加算器252から順次入力され、前記第3信号の(n+2)ビットは前記全加算器の下位2番目の全加算器252から順次入力される。前記全加算器のうち最下位全加算器251には前記商ロジック230の半加算器234からの出力(S0)と、論理積(AND)演算器260からの桁上げ入力値Carry-inが入力される。
図12を参照すれば、前記論理積演算器260は、前記CSA2 250の最下位全加算器251から出力される桁上げ値(C2,0)と下位2番目の全加算器252から出力される和値(S2,1)を全加算して桁上げ入力値(Carry-in)として出力する。この桁上げ入力値(Carry-in)は前記商ロジック230に提供される。
本発明は、それぞれnビットのA、B、N(ここで、-N≦A,B<N)を入力として受けてm+2(ここで、m=n/2)クロック内にA・B・R-1modN (ここで、R=4m+2)を計算する装置に関するものである。このような本発明の具現に適用される次の2つの原理が説明される。第一に、モジュラー乗算のための乗数(A)及び被乗数(B)を表現する原理が説明される。第二に、本発明の変換原理を利用したモンゴメリーアルゴリズムに対する原理が説明される。
本発明では乗数(A)を各クロックにLSBから2ビットずつスキャニング(scanning)(あるいはシフティング(shifting))して被乗数(B)とかけ、このような乗算結果をモンゴメリーアルゴリズムに利用する。したがって、毎ループから発生するaiは{0、1、2、3}の元素の中で一つであり、これを被乗数(B)とかけてCSA1 220の入力として利用する。
下記の式(11)〜(17)に示すようなアルゴリズムは、本発明がradix-4モンゴメリーモジュラー乗算を利用することを示す。元来モンゴメリーアルゴリズムでは結果値とmodulus Nと比較し、結果値がmodulus Nより大きいと一度減算をしなければならないが、下記に示すアルゴリズムではその手続きがないことがわかる。
本発明はそれぞれnビットのA、B、N(ここで、-N≦A,B<N)を入力として受けてm+2 (ここで、m=n/2)クロック内にA・B・R-1modN(ここで、R=4m+2)を計算するためのものであり、図7に示すような装置によりその計算動作が行われる。
FinalResult:0111.1100.0111(0x7C7)+0010.1000.0000(0x280)+1=1010.0100.1000(0xA448)
2)本発明の装置を利用してC=A・B・2-(n+4)modNを計算する。
3)P・C・2-(n+4)modN = A・BmodNを計算する。
1)指数eをレジスタ(あるいはメモリ)に格納する。
2)レジスタCにmodulus Nを格納する。
3)臨時レジスタCとSを0に初期化する。
4)モンゴメリーモジュラー乗算m’=fm(m,P,N)= m・P・R-1modNを行う。但し、累乗演算の基数Pは上の手続きで定義したあらかじめ計算された値を表し、R=2n+4である。
5)m’をレジスタBにローディングする。
6)レジスタBにローディングした値を利用してモジュラー自乗演算を行う。この時、モンゴメリーモジュラー乗算に必要な乗数AはレジスタBからローディングし、radix-4 Recoding回路を利用して値を得る。
8)指数eのMSB(Most Significant Bit)1を無視し、次のビットから次の9)〜10)段階を行う。
9)指数eの毎ビットが0または1に関らず段階4)〜5)を行いモジュラー自乗演算を行う。この時、自乗演算に必要な乗数はレジスタA、被乗数はレジスタBに格納される。
10)指数eの現在ビットが1の場合には段階9)を行った後、段階4)〜5)を行いモジュラー乗算を行う。この時、被乗数はレジスタBの内容であり、乗数は累乗演算の基数m'である。
11)指数eの全てのビットに対して段階8)〜10)を行った後、段階4)を利用してモジュラー乗算をもう一度行う。この時、被乗数はレジスタBの内容であり、乗数は1である。
前記段階1)〜11)を行った後、レジスタCとSに残っている値に対してCPA(Carry Propagation Adder)を行った値が最終的な累乗値memodNとなる。
前述した如く、本発明は、A・B・2-(n+4)modNを計算する回路を記述したものであり、記述された回路を利用して上述した一般のモジュラー乗算であるA・BmodNを計算できる。このような本発明に基づいて計算されたA・BmodNは、デジタル署名を生成及び検証するための機器に使用されるハードウェア的な装置に使用することができる。また、本発明は、ICカードに基づく電子署名、認証、暗/復号化のハードウェア装置に使用することができる。また、本発明は、モジュラー乗算を行う電子署名機器によって暗号及び復号化する機器を提供することができる。また、本発明は、電子署名機器に基づいて、NIST-DSS、RSA、ElGamal、Schnorr電子署名など既存の公開キー暗号システムを具現する上で利用することができる。
図13は、本発明で具現した暗号補助装置を利用して暗号化及び電子署名ができるICカードのブロック構成を表す図面である。
図13において、中央処理処置(CPU:Central Processing Unit)310は、暗号、認証及び電子署名を可能にする命令語を解読し、モジュラー演算プロセッサー(modular arithmetic coprocessor)330に必要な制御信号とデータを提供する。ROM(Read Only Memory)350の内部には暗号化及び電子署名などに必要なキー(key)のように保護しなければならないデータのための保安モジュラー(security module)が存在する。
104 レジスタ
110 変換ロジック
112 変換回路
114 多重化器(MUX)
116 補数化器
120 第1桁上げ保存加算器(CSA)
130 商ロジック
140 選択器
150 第2CSA
160 全加算器
Claims (6)
- 信号処理システムで用いられるモジュラー乗算を遂行する信号処理装置であって、
モジュラー乗算で乗数のブース変換結果によって被乗数に対して1の補数演算を選択的に遂行して符号付きの被乗数を出力する第1ロジックと、
桁上げ入力値(Carry-in)と前記被乗数の符号ビット(Bsign)と第1の全加算演算により求められる和値(S)の最下位ビット(S 1,0 )とを全加算演算することにより以前クロックの補正用桁上げ値(cin)を生成すると共に、前記以前クロックの補正用桁上げ値(cin)から決定された現在クロックの桁上げ入力値(Carry-in)および前記被乗数の符号ビットに基づいてモジュラー乗算を行うことにより符号付きのモジュラス(modulus)を出力する第2ロジックと、
前記第2ロジックから入力された前記以前クロックの補正用桁上げ値(cin)と前記被乗数の符号ビットを用いて第2の全加算演算を遂行して前記桁上げ入力値(Carry-in)を出力する全加算器を有すると共に、前記符号付きの被乗数と前記符号付きのモジュラスの入力を受けて、前記以前クロックで第1の全加算演算により求めた桁上げ値(C)と和値(S)に対して該第1の全加算演算を反復遂行して前記モジュラー乗算の結果値を計算する第3ロジックと、を含み、
前記第1ロジックは、前記乗数のビットを順次的にシフトしながら前記乗数の下位2ビットと所定の参照ビットを入力にして前記ブース変換を遂行し、
前記第2ロジックは、
毎クロックごとに前記第3ロジックで計算された前記桁上げ値(C)と前記和値(S)の最下位ビットからそれぞれ所定ビットだけ抽出された第1ビット値と、前記桁上げ入力値(Carry-in)及び前記被乗数の符号ビットを入力にして前記モジュラー乗算でモジュラー減少の倍数を決定する第2のビット値を出力する商ロジックと、
前記第2のビット値を基盤に前記符号化されたモジュラスを選択して出力する選択器と、を含み、
前記第3ロジックは、複数の全加算器を備える少なくとも二以上の桁上げ保存加算器(CSA)を用いて前記桁上げ値(C)と和値(S)に対する前記第2の全加算演算を反復遂行し、前記乗数、被乗数及び前記モジュラスがそれぞれnビットである場合、m+2クロック(m=n/2)後に前記第3ロジックから出力される前記桁上げ値(C)と前記和値(S)に対して桁上げ伝播加算演算を遂行することを特徴とするモジュラー乗算を遂行する信号処理装置。 - 前記第1ロジックは、
前記乗数の下位2ビットと前記参照ビットを用いて前記ブース変換を遂行するブース変換回路と、
前記乗数の下位2ビットを基盤に前記被乗数を多重化して出力する多重化器と、
前記ブース変換結果の符号ビットを基盤に前記多重化器の出力に対して前記1の補数化演算を選択的に遂行して前記符号化された被乗数を出力する1の補数化器と、を含むことを特徴とする請求項1記載の信号処理装置。 - ブース変換を遂行する変換ロジックとモジュラー減少の倍数を決定する商ロジック及び二つの桁上げ保存加算器を含む信号処理装置において、モジュラー乗算を遂行する信号処理方法であって、
前記変換ロジックがモジュラー乗算で乗数のブース変換結果によって被乗数に対して1の補数演算を選択的に遂行して符号付きの被乗数を出力する過程と、
桁上げ入力値(Carry-in)と前記被乗数の符号ビット(Bsign)と反復遂行される第1の全加算演算により得られる和値(S)の最下位ビット(S 1,0 )とを全加算演算することにより以前クロックの補正用桁上げ値(cin)を生成して商ロジックから出力すると共に、前記商ロジックから出力された前記以前クロックの補正用桁上げ値(cin)の入力を受けた全加算器が現在クロックの桁上げ入力値(Carry-in)を求める過程と、
前記商ロジックを含むロジックが前記桁上げ入力値と前記被乗数の符号ビットに基づいて前記モジュラー乗算により符号付きのモジュラスを出力する過程と、
前記二つの桁上げ保存加算器が前記符号付きの被乗数と前記符号付きのモジュラスの入力を受けて、前記以前クロックで求めた第1の全加算演算の桁上げ値(C)と和値(S)に対して第1の全加算演算を反復遂行して前記モジュラー乗算の結果値を計算する過程と、を含み、
前記符号化された被乗数を出力する過程は、
前記乗数のビットを順次的にシフトしながら前記乗数の下位2ビットと所定の参照ビットを入力にして前記ブース変換を遂行する過程を含むことを特徴とするモジュラー乗算を遂行し、
前記桁上げ入力値(Carry-in)を求める過程は、
前記補正用桁上げ値(cin)と前記被乗数の符号ビットを用いて全加算演算を遂行して前記桁上げ入力値(Carry-in)を出力する過程を含み、
前記符号付きのモジュラスを出力する過程は、
毎クロックごとに前記桁上げ値と前記和値の最下位ビットからそれぞれ所定のビットだけ第1ビット値を抽出する過程と、
前記第1ビット値と、前記桁上げ入力値(Carry-in)、及び前記被乗数の符号ビットを入力にして前記モジュラー乗算でモジュラー減少の倍数を決定する第2のビット値を出力する過程と、
前記第2のビット値を基盤に前記符号化されたモジュラスを選択して出力する過程と、を含み、
前記乗数、被乗数及び前記モジュラスがそれぞれnビットである場合、m+2クロック(m=n/2)後に前記桁上げ値と前記和値に対して桁上げ伝播加算演算を遂行する過程をさらに含み、
前記全加算演算は、複数の全加算器を備える少なくとも二以上の桁上げ保存加算器(CSA)を通じて遂行され、ることを特徴とする信号処理方法。 - 前記符号付きの被乗数を出力する過程は、
前記乗数の下位2ビットと前記参照ビットを用いて前記ブース変換を遂行する過程と、
前記乗数の下位2ビットを基盤に前記被乗数を多重化して出力する過程と、
前記ブース変換結果の符号ビットを基盤に前記多重化された被乗数の出力に対して前記1の補数化演算を選択的に遂行して前記符号化された被乗数を出力する過程と、を含むことを特徴とする請求項3記載の信号処理方法。 - 前記第1ロジックは、前記ブース変換結果の符号ビットを基盤に前記被乗数を多重化した出力に対して前記1の補数化演算を選択的に遂行して前記符号化された被乗数を出力することを特徴とする請求項1記載の信号処理装置。
- 前記符号化された被乗数を出力する過程は、
前記ブース変換結果の符号ビットを基盤に前記被乗数を多重化した出力に対して前記1の補数化演算を選択的に遂行して前記符号化された被乗数を出力する過程を含むことを特徴とする請求項3記載の信号処理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2003-0016100A KR100458031B1 (ko) | 2003-03-14 | 2003-03-14 | 몽고메리 유형의 모듈라 곱셈 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004280103A JP2004280103A (ja) | 2004-10-07 |
JP4554239B2 true JP4554239B2 (ja) | 2010-09-29 |
Family
ID=32768648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004069540A Expired - Lifetime JP4554239B2 (ja) | 2003-03-14 | 2004-03-11 | モンゴメリー類型のモジュラー乗算装置及び方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US7564971B2 (ja) |
EP (1) | EP1457875B1 (ja) |
JP (1) | JP4554239B2 (ja) |
KR (1) | KR100458031B1 (ja) |
CN (1) | CN100527072C (ja) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG115534A1 (en) * | 2003-04-04 | 2005-10-28 | St Microelectronics Asia | Method and apparatus for performing modular arithmetic |
US7355562B2 (en) * | 2004-02-17 | 2008-04-08 | Thomas Schubert | Electronic interlocking graphics panel formed of modular interconnecting parts |
JP4170267B2 (ja) * | 2004-07-09 | 2008-10-22 | Necエレクトロニクス株式会社 | 乗算剰余演算器及び情報処理装置 |
KR101194837B1 (ko) | 2005-07-12 | 2012-10-25 | 삼성전자주식회사 | 멱지수를 숨기는 dpa 대책의 고속 계산을 위한 암호화장치 및 방법 |
JP4182226B2 (ja) * | 2005-08-24 | 2008-11-19 | 国立大学法人名古屋大学 | 剰余系の計算方法及び装置並びにプログラム |
US7849125B2 (en) * | 2006-07-07 | 2010-12-07 | Via Telecom Co., Ltd | Efficient computation of the modulo operation based on divisor (2n-1) |
KR100901280B1 (ko) | 2006-12-07 | 2009-06-09 | 한국전자통신연구원 | 모듈러 3 연산 장치 및 방법 |
CA2701855C (en) * | 2007-11-02 | 2016-10-11 | Certicom Corp. | Signed montgomery arithmetic |
US8417756B2 (en) * | 2007-11-29 | 2013-04-09 | Samsung Electronics Co., Ltd. | Method and apparatus for efficient modulo multiplication |
US8386546B2 (en) * | 2009-02-27 | 2013-02-26 | George Mason Intellectual Properties, Inc. | Montgomery multiplication architecture |
KR101925868B1 (ko) * | 2012-05-17 | 2018-12-06 | 삼성전자주식회사 | 모듈러 계산 유닛 및 그것을 포함하는 보안 시스템 |
CN102929575B (zh) * | 2012-10-29 | 2015-04-15 | 电子科技大学 | 一种模(2n+3)乘法器 |
US10176121B2 (en) * | 2013-07-15 | 2019-01-08 | Infineon Technologies Ag | Apparatus and method for memory address encryption |
US10678709B2 (en) | 2013-07-15 | 2020-06-09 | Infineon Technologies Ag | Apparatus and method for memory address encryption |
CN103761068B (zh) * | 2014-01-26 | 2017-02-01 | 上海交通大学 | 优化的蒙哥马利模乘硬件 |
US10591983B2 (en) * | 2014-03-14 | 2020-03-17 | Wisconsin Alumni Research Foundation | Computer accelerator system using a trigger architecture memory access processor |
KR102132261B1 (ko) * | 2014-03-31 | 2020-08-06 | 삼성전자주식회사 | 비교 연산이 필요없이 최종 모듈러 감소를 하는 몽고메리 곱셈 방법 및 곱셈기 |
CN107766032A (zh) * | 2016-08-15 | 2018-03-06 | 清华大学 | 多项式基GF(2^n)乘法器 |
CN109190414B (zh) * | 2018-08-09 | 2021-06-15 | 宁波大学 | 一种用于乘法器的全同态混淆方法 |
US11068238B2 (en) * | 2019-05-21 | 2021-07-20 | Arm Limited | Multiplier circuit |
US11636224B2 (en) * | 2019-12-19 | 2023-04-25 | Micro Focus Llc | Generating hash values for input strings |
US20210263707A1 (en) * | 2020-02-26 | 2021-08-26 | Gsi Technology Inc. | Iterative binary division with carry prediction |
CN112486457B (zh) * | 2020-11-23 | 2022-12-20 | 杭州电子科技大学 | 一种实现改进的fios模乘算法的硬件系统 |
WO2022115108A1 (en) * | 2020-11-27 | 2022-06-02 | Pqsecure Technologies, Llc | An architecture for small and efficient modular multiplication using carry-save adders |
WO2022271163A1 (en) * | 2021-06-23 | 2022-12-29 | Pqsecure Technologies, Llc | Computer processing architecture and method for supporting multiple public-key cryptosystems based on exponentiation |
TWI802095B (zh) | 2021-11-22 | 2023-05-11 | 財團法人工業技術研究院 | 模數乘法電路與對應之計算模數乘法之方法 |
CN114063975B (zh) * | 2022-01-18 | 2022-05-20 | 中科南京智能技术研究院 | 一种基于sram存内计算阵列的计算系统及方法 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62154029A (ja) | 1985-12-27 | 1987-07-09 | Hitachi Tobu Semiconductor Ltd | 乗算回路 |
US4862405A (en) | 1987-06-30 | 1989-08-29 | Digital Equipment Corporation | Apparatus and method for expediting subtraction procedures in a carry/save adder multiplication unit |
US5247605A (en) * | 1990-07-02 | 1993-09-21 | General Electric Company | Neural nets supplied synapse signals obtained by digital-to-analog conversion of plural-bit samples |
US5513133A (en) * | 1992-11-30 | 1996-04-30 | Fortress U&T Ltd. | Compact microelectronic device for performing modular multiplication and exponentiation over large numbers |
US6317769B1 (en) * | 1996-09-18 | 2001-11-13 | International Business Machines Corporation | Apparatus for calculating of Bc (mod n) with repeatedly shifting a holding value |
EP1008026B1 (en) | 1997-05-04 | 2007-09-05 | M-Systems Flash Disk Pioneers Ltd. | Improved apparatus & method for modular multiplication & exponentiation based on montgomery multiplication |
US5847981A (en) * | 1997-09-04 | 1998-12-08 | Motorola, Inc. | Multiply and accumulate circuit |
US6223198B1 (en) * | 1998-08-14 | 2001-04-24 | Advanced Micro Devices, Inc. | Method and apparatus for multi-function arithmetic |
US6275841B1 (en) * | 1997-12-11 | 2001-08-14 | Intrinsity, Inc. | 1-of-4 multiplier |
FR2791156B1 (fr) * | 1999-03-17 | 2001-05-11 | St Microelectronics Sa | Dispositif et procede de mise en oeuvre d'une operation modulaire elementaire selon la methode de montgomery |
FR2791155B1 (fr) * | 1999-03-17 | 2001-05-11 | St Microelectronics Sa | Dispositif et procede de mise en oeuvre d'une operation modulaire elementaire selon la methode de montgomery |
US7062657B2 (en) | 2000-09-25 | 2006-06-13 | Broadcom Corporation | Methods and apparatus for hardware normalization and denormalization |
US6963977B2 (en) * | 2000-12-19 | 2005-11-08 | International Business Machines Corporation | Circuits and methods for modular exponentiation |
FR2822260A1 (fr) * | 2001-03-14 | 2002-09-20 | Bull Sa | Procedes et dispositifs pour accelerer le temps de calcul d'un produit de montgomery d'un multiplication et d'une exponentiation modulaire |
JP4188571B2 (ja) * | 2001-03-30 | 2008-11-26 | 株式会社日立製作所 | 情報処理装置の演算方法および耐タンパ演算攪乱実装方式 |
US20020172355A1 (en) * | 2001-04-04 | 2002-11-21 | Chih-Chung Lu | High-performance booth-encoded montgomery module |
US7174015B1 (en) * | 2001-04-25 | 2007-02-06 | State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University | Methods and apparatus for variable radix scalable modular multiplication |
US6973470B2 (en) * | 2001-06-13 | 2005-12-06 | Corrent Corporation | Circuit and method for performing multiple modulo mathematic operations |
US6973471B2 (en) * | 2002-02-22 | 2005-12-06 | Freescale Semiconductor, Inc. | Method and apparatus for implementing signed multiplication of operands having differing bit widths without sign extension of the multiplicand |
JP2004258141A (ja) * | 2003-02-24 | 2004-09-16 | Fujitsu Ltd | モンゴメリ乗算剰余の多倍長演算のための演算装置 |
US20040252829A1 (en) * | 2003-04-25 | 2004-12-16 | Hee-Kwan Son | Montgomery modular multiplier and method thereof using carry save addition |
US7266580B2 (en) * | 2003-05-12 | 2007-09-04 | International Business Machines Corporation | Modular binary multiplier for signed and unsigned operands of variable widths |
KR20050088506A (ko) * | 2004-03-02 | 2005-09-07 | 삼성전자주식회사 | 다중 세정도를 지원하는 확장형 몽고메리 모듈러 곱셈기 |
US7386580B2 (en) * | 2004-03-18 | 2008-06-10 | Arm Limited | Data processing apparatus and method for computing an absolute difference between first and second data elements |
GB2419787B (en) * | 2004-10-28 | 2007-07-04 | Hewlett Packard Development Co | Method and apparatus for providing short-term private keys in public-key cryptographic systems |
-
2003
- 2003-03-14 KR KR10-2003-0016100A patent/KR100458031B1/ko active IP Right Grant
-
2004
- 2004-03-11 JP JP2004069540A patent/JP4554239B2/ja not_active Expired - Lifetime
- 2004-03-12 US US10/800,181 patent/US7564971B2/en active Active
- 2004-03-12 EP EP04005915A patent/EP1457875B1/en not_active Expired - Lifetime
- 2004-03-14 CN CNB2004100326816A patent/CN100527072C/zh not_active Expired - Lifetime
-
2007
- 2007-09-04 US US11/849,880 patent/US8209369B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP1457875B1 (en) | 2011-07-06 |
EP1457875A3 (en) | 2006-06-28 |
CN1530824A (zh) | 2004-09-22 |
CN100527072C (zh) | 2009-08-12 |
KR100458031B1 (ko) | 2004-11-26 |
JP2004280103A (ja) | 2004-10-07 |
US20080065713A1 (en) | 2008-03-13 |
EP1457875A2 (en) | 2004-09-15 |
US20040179681A1 (en) | 2004-09-16 |
KR20040081581A (ko) | 2004-09-22 |
US7564971B2 (en) | 2009-07-21 |
US8209369B2 (en) | 2012-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4554239B2 (ja) | モンゴメリー類型のモジュラー乗算装置及び方法 | |
US8504602B2 (en) | Modular multiplication processing apparatus | |
US6397241B1 (en) | Multiplier cell and method of computing | |
US7805478B2 (en) | Montgomery modular multiplier | |
CN109039640B (zh) | 一种基于rsa密码算法的加解密硬件系统及方法 | |
WO2000005645A1 (en) | Circuit and method of modulo multiplication | |
US20070185948A1 (en) | Method for modular multiplication | |
KR100591761B1 (ko) | 몽고메리 모듈러 곱셈기 및 캐리 저장 가산을 이용한몽고메리 모듈러 곱셈 방법 | |
Großschädl | A bit-serial unified multiplier architecture for finite fields GF (p) and GF (2 m) | |
KR100508092B1 (ko) | 저전력 모듈로 곱셈을 수행하는 연산장치 | |
Morita | A fast modular-multiplication algorithm based on a higher radix | |
US20090006509A1 (en) | High-radix multiplier-divider | |
WO2000038047A1 (en) | Circuit and method of cryptographic multiplication | |
US7113593B2 (en) | Recursive cryptoaccelerator and recursive VHDL design of logic circuits | |
JP3904421B2 (ja) | 剰余乗算演算装置 | |
US10318245B2 (en) | Device and method for determining an inverse of a value related to a modulus | |
US7403965B2 (en) | Encryption/decryption system for calculating effective lower bits of a parameter for Montgomery modular multiplication | |
Ko et al. | Montgomery multiplication in | |
KR100858559B1 (ko) | 잉여 이진수의 덧셈 방법, 잉여 이진수의 곱셈 방법, 잉여이진수 덧셈기 및 잉여 이진수 곱셈기 | |
Nedjah et al. | Simulation model for hardware implementation of modular multiplication | |
KR20000008153A (ko) | 모듈러 연산장치 및 그 방법 | |
Poldre | Cryptoprocessor PLD001 | |
JP2005316038A (ja) | 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびプログラム | |
Kakde et al. | Performance analysis of Montgomery multiplier for public key cryptosystem | |
KR20070105415A (ko) | 부호화를 이용하는 곱셈 장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061017 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070117 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070122 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070417 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070522 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070919 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20070926 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20080418 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100514 |
|
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: 20100714 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130723 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4554239 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |