JP2006511833A - 被乗数のシフトを用いて乗算を計算するための装置およびその方法 - Google Patents
被乗数のシフトを用いて乗算を計算するための装置およびその方法 Download PDFInfo
- Publication number
- JP2006511833A JP2006511833A JP2004562658A JP2004562658A JP2006511833A JP 2006511833 A JP2006511833 A JP 2006511833A JP 2004562658 A JP2004562658 A JP 2004562658A JP 2004562658 A JP2004562658 A JP 2004562658A JP 2006511833 A JP2006511833 A JP 2006511833A
- Authority
- JP
- Japan
- Prior art keywords
- modulo
- intermediate result
- shift value
- multiplicand
- register
- 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
- 238000000034 method Methods 0.000 title claims description 127
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 44
- 230000009467 reduction Effects 0.000 claims description 66
- 238000004364 calculation method Methods 0.000 claims description 38
- 230000008569 process Effects 0.000 claims description 21
- 238000012804 iterative process Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 7
- 238000007792 addition Methods 0.000 description 103
- 230000006870 function Effects 0.000 description 27
- 238000006243 chemical reaction Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000009466 transformation Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 230000015654 memory Effects 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 230000002860 competitive effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000001131 transforming effect Effects 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/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/722—Modular multiplication
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
C=Mdmod(N)
ここで、Cは、暗号化されたメッセージであり、Mは、暗号化されていないメッセージ(平文)であり、dは、秘密鍵であり、Nはモジューロである。モジューロNは、通常、2つの素数pおよび素数qを互いに乗算することによって生成される。べき乗剰余は、公知の自乗乗算アルゴリズムを用いて各乗算に分解される。最後に、指数dは二乗にまで分解され、これにより、べき乗剰余を複数の剰余乗算(Modulare Multiplikationen)に分解できる。べき乗剰余を計算によって効果的に実行できるように、べき乗剰余は、剰余乗算に分解される。この剰余乗算は、その後、剰余加算(modulare Additionen)に分解される。
Z=M*CmodN
ここで、Mは乗数であり、Cは被乗数である。Zは剰余乗算の結果であり、Nはモジューロである。
1.レジスタZおよびNのためのシフト値szおよびsiの計算。これにより、以下の方程式が満たされる。
(2/3)N×2-si<|z|≦4/3N×2-si、および、
2.3オペランドの合計の計算。
Z:=2szZ+aC+b×2sz-siN
乗算ルックアヘッドパラメータaおよび還元ルックアヘッドパラメータbは、公知のように、−1、0、および、+1の値をとることができる。
N:=N*2sn
Z:=Z*2sz+Vc*C+Vn*N
上記の方程式では、szは、公知のブース法(つまり、乗算ルックアヘッド方法)から計算されるような、中間結果Zのシフト値を示している。また、snは、上記したように計算されるNのシフト値を示している。
C:=C*2SC
Z:=Z*2SZ+VC*C+Vn*N
被乗数シフト値scを、以下の方程式にしたがって、中間結果シフト値と乗算ルックアヘッドシフト値との差から計算する。
sc=sz−sm
中間結果シフト値szが以下で説明するように常に0よりも大きいので、被乗数シフト値scは量的に乗算シフト値smよりもますます小さくなる。これにより、公知のブース法により生じる大きくなる可能性がある乗算ルックアヘッドシフト値smは、回路に備えられたシフタに対する要求に対して、完全に支配的にはならず、中間結果シフト値szの値により、量的な意味で、より小さな影響力しか持たなくなる。
NT=T×N
工程520では、次に、変換されたモジューロNTと変換されたモジューロの所定の分数(好ましい実施形態では2/3)とを使用して、剰余乗算が処理される。このことは、べき乗剰余では、以下の形式のRSA等式が計算されることを意味している。
CT:=MdmodNT
すなわち、べき乗剰余Cの結果は、モジューロNによって規定された剰余類ではなく、変換されたモジューロNTによって規定された剰余類によって計算される。なぜなら、上記等式の左側にはCではなくCTが存在しているからである。ここでは、変換されたモジューロNTを使用することによって、図19に記載の公知の還元ルックアヘッド方法の反復ループに相当する補助還元シフト値siの計算が非常に簡単になっている。
C:=CTmodN
に相当する演算を実施することによって実施される。
NT:=T×N
となる。ただし、Tは自然数である。
NT:=1100...0XX...XX
2/3倍に変換されたモジューロについては、以下の値となる。
(2/3)NT=100...0X'X'...X'X'
|Z|=00...01YY...Y
補助シフト値siを、以下の等式に基づいて計算する。
(2/3)NT×2-si<|Z|≦(4/3)NT×2-si
2/3倍に変換されたモジューロNTのトポロジーによって、値siは、常に、2/3倍に変換されたモジューロNTの1を有する最上位のビットと、中間結果の大きさの最上位1との間の差である。
(2/3)2-siN<|Z|≦(4/3)2-siN
siを、補助シフト値として示す。また、siは、ZのけたをNと同じ位置にシフトするために必要なシフト値である。従来技術では、siを計算するために、|Z|を(2/3)Nと比較する演算が必要であった。
N=2n-mNT+NR
Nを、変換子Tを使用して、NTに変換する。ただし、Tは、適切に選択された整数である。このことは、合同式を理由として、このようでなければならない。NTは、図7に示す形式を有していることが好ましい。すなわち、NTの最上位のビット(MSB)は、0に等しい必要がある。なぜなら、NTは、正の整数であることが好ましいからである。以下で説明するように、変換されたモジューロの第2最上位および第3最上位のビットは、1に等しい必要がある。一方、変換されたモジューロNTの最上位セクションのほかの全てのビット(図7では符号33で示す)は、「0」の値を有していることが好ましい。この場合だけ、つまりNTの2/3倍については、図8に示すようなNTの2/3倍の最上位セクションが、「1」を有する1つのビットだけを有し、一方、この最上位セクション44にある他の全てのビットは、「0」に等しい。したがって、siを算定するための既述の取るに足らない比較を実施してもよい。
NT=TN
=T(2n-mNT+NR)
変換子Tについては、以下のことが当てはまる。
T=|(2p-2+2p-3)/NT|
等式17を使用して、変換されたモジューロNTについては、以下のようになる。
NT=|(2p-2+2p-3/NT|(2n-mNT+NR)
NT=(2n+p-m-2+2n+p-m-3)NT/NT+(2p-2+2p-3)NR/NT
pおよびmのための例えば典型的な値つまり、p=32ビットおよびm=16ビットについて言えば、NTについては以下のようになる。
NT=2n+14+2n+13+NR((2P-2+2p-3)/NT)
NTの計算は、暗号化コプロセッサではなくホストCPUで実施されることが好ましいということに、留意されたい。ホストCPUは、短数演算装置(Kurzzahl-Rechenwerk)を備えており、NTの計算にはこれで充分である。Tは整数である必要があり、モジューロNの代わりにNよりも大きなモジューロNTについて暗号化コプロセッサの内部で計算されるので、簡単なZDN比較のためのNTの第1のp−m=16ビットだけが、補助シフト値siを計算するために、関連している。NTのほかのn個のビットは、任意の数でもよく、これらn個のビットは、補助シフト値siを計算するため、つまり、Zとの比較のためには関係していない。当然、しかしながら、変換されたモジューロNTの全てのビットは、3オペランド加算のために必要である。なお、この3オペランド加算は、シフトされたモジューロを使用する代わりに、シフトされた変換後のモジューロを使用して実施される。
(11)2=(3)10+((2/3)×3)2=(2)10=(10)2
が成り立つので、上記の変換されたモジューロNTの2/3倍の簡単なビットパターンが生じる。ここで、上記の変換されたモジューロNTの2/3倍の長さは、n‐m+pである。
NT=T N
=T(2n-mNT+NR)
次に、ランダム化された変換子Tを、以下のように表現する。
T=|(2p-2−2p-3+R)/NT|
したがって、ランダム化され変化されたモジューロを以下のように表現する。
NT=|(2p-2+2p-3+R)/NT|(2n-mNT+NR)
NT=(2n+p-m-2+2n+p-m-3+R 2n-m)NT/NT+(2p-2+2p-3+R)NR/NT
pを144ビットとし、mを16ビットとし、sを112ビットとする場合、ランダム化を含んだ変換されたモジューロNTのために、次の値が得られる。
NT=2n+126+2n+125+R 2n-16+NR(2144+2143+R)/NT
NTのビット長は、以下のようになる。
L(NT)=n+p−m=n+m+s=n+16+112=n+128 ビット
図10は、ZDNレジスタを備えず、演算ユニット700と、Cレジスタ710と、Nレジスタ720と、Zレジスタ730とのみを備えた演算装置を、示している。ここで、Nレジスタ720には、モジューロおよび/またはシフトされたモジューロが格納されておらず、変換されたモジューロおよび/またはシフトされ変換されたモジューロ、または、ランダム化され変換されたモジューロ、または、シフトされランダム化され変換されたモジューロが格納されている。
102 乗算シフト値
104 算出のための手段
106 scを計算するための手段
108 ZおよびCをシフトするための手段
108a Zのためのシフタ
108b Cのためのシフタ
110 中間結果シフト値sz
112 3オペランド加算を実施するための手段
114 現在の反復工程の中間結果
200 モジューロレジスタ
202 被乗数レジスタ
204 中間結果レジスタ
206 モジューロのMSB
208 モジューロのLSB
210 アンダーフローバッファ
212 被乗数のLSB
214 3オペランド加算後の中間結果のLSB
218 最大中間結果シフト値
220 中間結果のMSB
400 正確な3オペランド加算を実施するための手段
400’ 現在の反復工程の正確な3オペランド加算
402 正確な先行する中間結果
404 モジューロN
406 被乗数C
408 先行する反復工程のルックアヘッドパラメータ
410 先行する反復工程の結果としての正確な中間結果
412 近似化されたオペランド加算を実施するための手段
412a Zマルチプレクサ
412b シフタ
412c Zのシフトされた12ビットを格納するためのバッファメモリ
412d 組み合わせ部供給線
412e 組み合わせ部
412g ビット複写線
412f 近似化された中間結果のためのメモリ
412a Zマルチプレクサ
412b シフタ
412c Zのシフトされた12ビットを格納するためのバッファメモリ
412b 組み合わせ部供給線
412e 組み合わせ部
412g ビット複写線
412f 近似化された中間結果のためのメモリ
412’ 現在の反復工程の近似化されたオペランド加算
414 近似化された現在の中間結果
416 乗数M
417 現在のルックアヘッドパラメータを計算するための手段
417’ その後のルックアヘッドパラメータの計算
418 現在のルックアヘッドパラメータ
420 その後の反復工程を計算するための正確な中間結果
500 モジューロを変換するための手段
520 変換されたモジューロを使用して反復処理するための手段
540 変換された結果を逆変換するための手段
700 演算ユニット
710 Cレジスタ
720 Nレジスタ
730 Zレジスタ
740 反復ループ
750 ZDNレジスタ
760 ZDN比較のための制御論理
900 ZDN方法の開始
910 ZDNアルゴリズムの乗算ルックアヘッド方法
920 Zを左または右にシフトする
930 ZDNアルゴリズムの還元ルックアヘッド方法
940 モジューロを左にシフトする
950 ZDNアルゴリズムのための3オペランド加算
960 ZDNアルゴリズムの終了
1000 広域変数
1010 還元シフト値を初期化する
1020 ZDNを還元する
1030 nとsNとを調べる
1040 nを減少させる
1060 還元シフト値を減少させる
1080 ZDN/2を計算する
1100 中間結果をZDNと比較する
1120 還元ルックアヘッドパラメータを算定する
1140 還元ルックアヘッドパラメータを算定する
1160 nを計算する
1180 還元ルックアヘッドパラメータを計算する
1200 nを調べる
1220 cur_kを計算する
1240 cur_kを計算する
Claims (14)
- 複数の反復工程を有する反復方法を用いて、モジューロ(N)に基づいて乗数(M)と被乗数(C)との乗算を計算するための装置であって、
乗算ルックアヘッドシフト値(sm)を得るために、乗算ルックアヘッドアルゴリズムを用いて現在の反復工程の乗数のけたを調べるための手段(100)と、
より上位のビットに中間結果シフト値(sz)だけシフトされた、現在の反復工程の先に行われた反復工程から供給された中間結果が、最上位のビットを有し、上記ビットの有意性が、先に行われた反復工程から供給された中間結果の最上位のビットよりも、モジューロの最上位のビット(206)の有意性に近いように、ゼロよりも大きな上記中間結果シフト値(sz)を算出するための手段(104)と、
中間結果シフト値(sz)と乗算ルックアヘッドシフト値(sm)との差である被乗数シフト値(sc)を計算するための手段(106)と、
現在の反復工程の中間結果を得るために、中間結果シフト値(sz)にしたがってシフトされた中間結果、被乗数シフト値(sc)にしたがってシフトされた被乗数(C)およびモジューロを用いて、3オペランド演算を実行するための手段(108、112)とを備えた、装置。 - さらに、上記モジューロ(N)を格納するためのモジューロレジスタ(200)を備え、上記モジューロの最上位のビット(206)がモジューロレジスタ(N)の所定のレジスタ位置に存在するように、上記モジューロが上記レジスタ内に配置されている、請求項1に記載の装置。
- 上記所定のレジスタ位置が、上記モジューロレジスタ(200)の最上位レジスタ位置である、請求項2に記載の装置。
- 上記モジューロレジスタ(200)は、上記モジューロ(N)のけた数よりも多くの記憶位置を有するように、上記モジューロレジスタの大きさが規定され、上記モジューロの最下位のビット(208)よりも低い価数を有する上記モジューロレジスタ(N)の記憶位置がアンダーフローバッファ(210)である、請求項2または3に記載の装置。
- 上記モジューロ(N)を格納するためのモジューロレジスタ(200)と、反復工程の中間結果を格納するための中間結果レジスタ(204)と、被乗数(C)を格納するための被乗数レジスタ(C)とを備え、
上記モジューロは、上記モジューロレジスタに固定的に配置されており、
上記中間結果および上記被乗数は、それらの各レジスタ内にて、シフトするための各手段(108a、108b)によってシフト可能となっている、請求項1〜4のいずれか1項に記載の装置。 - 上記中間結果および被乗数をシフトするための手段(108)は、
上記中間結果をより上位の価数に最大シフト量(Zsh)までシフトするために、および、上記被乗数を、より上位または下位の価数に最大被乗数シフト量(Csh)までシフトするために形成されている、請求項1〜5のいずれか1項に記載の装置。 - 上記最大中間結果シフト量(Zsh)は、最大被乗数シフト量(Csh)よりも大きいものである、請求項6に記載の装置。
- 上記中間結果シフト値(sz)を決定するための手段(104)は、
上記中間結果シフト値(sz)を、先に行われた反復工程のシフトされた中間結果の最上位のビットの価数がモジューロの最上位のビット(206)の価数と同じであるような大きさにするために形成されている、請求項1〜7のいずれか1項に記載の装置。 - 上記中間結果シフト値(sz)を決定するための手段(104)は、
上記中間結果シフト値(sz)を、最大中間結果シフト量(Zsh)、および先に行われた反復工程の中間結果をシフトする必要がある値の最小値に等しくして、
先に行われた反復工程における値がシフトされた中間結果の、最上位のビットの有意性が、モジューロの最上位のビット(206)と同じになっているように形成されている、請求項7に記載の装置。 - 上記中間結果シフト値を算出するための手段(104)は、
中間結果シフト値が最大中間結果シフト量(Zsh)によって制限されている場合に、上記3オペランド加算を実行するための手段(112)が上記反復工程において上記モジューロの考慮を省かせる還元パラメータ(vn)を決定するように形成されている、請求項8または9に記載の装置。 - 上記被乗数シフト値(sc)を計算するための手段(106)は、
被乗数シフト値(sc)を最大被乗数シフト量(Csh)に制限するために、および、制限した場合に、上記中間結果シフト値が(sm+最大被乗数シフト量(Csh))と同じであるように、手段(104)によって決定された中間結果シフト値(sz)を調節するために、および、上記のように制限した場合に、この反復工程において手段(112)がモジューロを考慮せず3オペランド加算を実行させる還元パラメータを決定するように形成されている、請求項6〜10のいずれか1項に記載の装置。 - 複数の反復工程を有する反復方法を用いて、モジューロ(N)に基づいて乗数(M)と被乗数(C)との乗算を計算するための方法であって、
乗算ルックアヘッドシフト値(sm)を得るために、乗算ルックアヘッドアルゴリズムを用いて現在の反復工程の乗数のけたを調べるステップ(100)と、
より上位のビットに中間結果シフト値(sz)だけシフトされた、現在の反復工程の先に行われた反復工程から供給された中間結果が、最上位のビットを有し、上記ビットの有意性が、先に行われた反復工程から供給された中間結果の最上位のビットよりも、モジューロの最上位のビット(206)の有意性に近いように、ゼロよりも大きな中間結果シフト値(sz)を決定する(104)ステップと、
中間結果シフト値(sz)と乗算ルックアヘッドシフト値(sm)との差である被乗数シフト値(sc)を計算する(106)ステップと、
現在の反復工程の中間結果を得るために、中間結果シフト値(sz)にしたがってシフトされた中間結果と、被乗数シフト値(sc)にしたがってシフトされた被乗数(C)およびモジューロとを用いて、3オペランド演算を実行する(108、112)ステップとを有する、方法。 - 上記乗数(M)、被乗数(C)、およびモジューロ(N)が、暗号計算のパラメータである場合、上記暗号計算の範囲内で実行する、請求項12に記載の方法。
- 請求項12または13に記載の方法を実行するためのプログラムコードを有し、
上記プログラムコードがコンピュータにおいて実行可能に記載されている、コンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10260655A DE10260655B3 (de) | 2002-12-23 | 2002-12-23 | Vorrichtung und Verfahren zum Berechnen einer Multiplikation mit einer Verschiebung des Multiplikanden, insbesondere bei der kryptographischen Berechnung |
PCT/EP2003/013426 WO2004059463A1 (de) | 2002-12-23 | 2003-11-28 | Vorrichtung und verfahren zum berechnen einer multiplikation mit einer verschiebung des multiplikanden |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006511833A true JP2006511833A (ja) | 2006-04-06 |
JP4302640B2 JP4302640B2 (ja) | 2009-07-29 |
Family
ID=32336588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004562658A Expired - Fee Related JP4302640B2 (ja) | 2002-12-23 | 2003-11-28 | 被乗数のシフトを用いて乗算を計算するための装置およびその方法、上記装置を実行するためのプログラムコードを格納した記録媒体 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7647367B2 (ja) |
EP (1) | EP1543408B1 (ja) |
JP (1) | JP4302640B2 (ja) |
KR (1) | KR100744216B1 (ja) |
AU (1) | AU2003289909A1 (ja) |
DE (2) | DE10260655B3 (ja) |
TW (1) | TWI290300B (ja) |
WO (1) | WO2004059463A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101927858B1 (ko) | 2013-12-28 | 2018-12-11 | 인텔 코포레이션 | Rsa 알고리즘 가속 프로세서들, 방법들, 시스템들 및 명령어들 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100382011C (zh) * | 2001-12-14 | 2008-04-16 | Nxp股份有限公司 | 蒙哥马利乘法器中的流水线内核 |
DE10260660B3 (de) * | 2002-12-23 | 2004-06-09 | Infineon Technologies Ag | Modulare Multiplikation mit paralleler Berechnung der Look-Ahead-Parameter u.a. bei der kryptographischen Berechnung |
EP1939838A1 (en) * | 2005-10-19 | 2008-07-02 | Matsushita Electric Industrial Co., Ltd. | Information security device, information security method, computer program, computer-readable recording medium, and integrated circuit |
DE102006025569A1 (de) | 2005-10-28 | 2007-05-03 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Berechnen einer Multiplikations-Additions-Operation und zum Berechnen eines Ergebnisses einer modularen Multiplikation |
DE102006025673B9 (de) * | 2005-10-28 | 2010-12-16 | Infineon Technologies Ag | Rechenwerk zum Reduzieren einer Eingabe-Zahl bezüglich eines Moduls |
DE102006025713B9 (de) | 2005-10-28 | 2013-10-17 | Infineon Technologies Ag | Kryptographie-Vorrichtung und Kryptographie-Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation |
DE102006025677B4 (de) | 2005-10-28 | 2020-03-12 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer Summe mit einem Rechenwerk mit begrenzter Wortlänge |
KR100901280B1 (ko) * | 2006-12-07 | 2009-06-09 | 한국전자통신연구원 | 모듈러 3 연산 장치 및 방법 |
US8005210B2 (en) * | 2007-06-30 | 2011-08-23 | Intel Corporation | Modulus scaling for elliptic-curve cryptography |
US8670557B2 (en) * | 2007-09-10 | 2014-03-11 | Spansion Llc | Cryptographic system with modular randomization of exponentiation |
JP5175983B2 (ja) | 2009-09-24 | 2013-04-03 | 株式会社東芝 | 演算装置 |
KR101685354B1 (ko) | 2010-10-14 | 2016-12-13 | 삼성전자주식회사 | 모듈러 연산기와 이를 포함하는 장치들 |
FI20115490A0 (fi) * | 2011-05-20 | 2011-05-20 | Adaptamat Tech Oy | Muistimetalliseos ja aktuaattori |
FR3050847B1 (fr) * | 2016-05-02 | 2019-04-05 | Morpho | Procede d'optimisation d'ecritures en memoire dans un dispositif |
CN113131948A (zh) * | 2020-01-10 | 2021-07-16 | 瑞昱半导体股份有限公司 | 具有多模式的数据移位运算装置及方法 |
CN114327370B (zh) * | 2022-03-10 | 2022-06-21 | 湖北芯擎科技有限公司 | 计算蒙哥马利模乘算法中mr值的方法及电路 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0239749B1 (de) * | 1986-03-05 | 1990-07-25 | Holger Sedlak | Kryptographie-Verfahren und Kryptographie-Prozessor zur Durchführung des Verfahrens |
DE3631992A1 (de) * | 1986-03-05 | 1987-11-05 | Holger Sedlak | Kryptographie-verfahren und kryptographie-prozessor zur durchfuehrung des verfahrens |
JPH08249161A (ja) | 1995-03-13 | 1996-09-27 | Fujitsu Ltd | 立方根演算装置 |
DE10107376A1 (de) * | 2001-02-16 | 2002-08-29 | Infineon Technologies Ag | Verfahren und Vorrichtung zum modularen Multiplizieren und Rechenwerk zum modularen Multiplizieren |
DE10111987A1 (de) * | 2001-03-13 | 2002-09-26 | Infineon Technologies Ag | Verfahren und Vorrichtung zum modularen Multiplizieren |
US7426529B2 (en) * | 2002-06-06 | 2008-09-16 | Infineon Technologies Ag | Processor and method for a simultaneous execution of a calculation and a copying process |
-
2002
- 2002-12-23 DE DE10260655A patent/DE10260655B3/de not_active Expired - Fee Related
-
2003
- 2003-11-28 AU AU2003289909A patent/AU2003289909A1/en not_active Abandoned
- 2003-11-28 JP JP2004562658A patent/JP4302640B2/ja not_active Expired - Fee Related
- 2003-11-28 EP EP03782247A patent/EP1543408B1/de not_active Expired - Fee Related
- 2003-11-28 KR KR1020057011752A patent/KR100744216B1/ko not_active IP Right Cessation
- 2003-11-28 DE DE50302251T patent/DE50302251D1/de not_active Expired - Fee Related
- 2003-11-28 WO PCT/EP2003/013426 patent/WO2004059463A1/de active IP Right Grant
- 2003-12-04 TW TW092134262A patent/TWI290300B/zh not_active IP Right Cessation
-
2005
- 2005-06-23 US US11/166,645 patent/US7647367B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101927858B1 (ko) | 2013-12-28 | 2018-12-11 | 인텔 코포레이션 | Rsa 알고리즘 가속 프로세서들, 방법들, 시스템들 및 명령어들 |
US10187208B2 (en) | 2013-12-28 | 2019-01-22 | Intel Corporation | RSA algorithm acceleration processors, methods, systems, and instructions |
Also Published As
Publication number | Publication date |
---|---|
TWI290300B (en) | 2007-11-21 |
DE50302251D1 (de) | 2006-04-06 |
WO2004059463A1 (de) | 2004-07-15 |
KR100744216B1 (ko) | 2007-07-30 |
EP1543408A1 (de) | 2005-06-22 |
EP1543408B1 (de) | 2006-01-18 |
JP4302640B2 (ja) | 2009-07-29 |
TW200424925A (en) | 2004-11-16 |
KR20050089067A (ko) | 2005-09-07 |
US20060010192A1 (en) | 2006-01-12 |
DE10260655B3 (de) | 2004-06-24 |
AU2003289909A1 (en) | 2004-07-22 |
US7647367B2 (en) | 2010-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4302640B2 (ja) | 被乗数のシフトを用いて乗算を計算するための装置およびその方法、上記装置を実行するためのプログラムコードを格納した記録媒体 | |
JP3939658B2 (ja) | モジュラー乗算を行うための装置、および、モジュラー乗算を行うための算術演算装置 | |
KR100848412B1 (ko) | 정수연산필드의 범위를 확장하는 장치 및 방법 | |
US5982900A (en) | Circuit and system for modulo exponentiation arithmetic and arithmetic method of performing modulo exponentiation arithmetic | |
US8024391B2 (en) | Modular multiplication method with precomputation using one known operand | |
US7831650B2 (en) | Method for modular multiplication | |
US20060064453A1 (en) | Modular multiplication with parallel calculation of the look-ahead parameters | |
US7603558B2 (en) | Montgomery transform device, arithmetic device, IC card, encryption device, decryption device and program | |
KR101925868B1 (ko) | 모듈러 계산 유닛 및 그것을 포함하는 보안 시스템 | |
US7240204B1 (en) | Scalable and unified multiplication methods and apparatus | |
JP2008535011A (ja) | モンゴメリーのモジュラー乗算を実行する方法及びそのための装置 | |
US7016927B2 (en) | Method and apparatus for modular multiplication | |
US7590235B2 (en) | Reduction calculations in elliptic curve cryptography | |
JP2000207387A (ja) | 演算装置及び暗号処理装置 | |
US7167885B2 (en) | Emod a fast modulus calculation for computer systems | |
JP4223819B2 (ja) | べき乗剰余演算装置及びそのプログラム | |
JP4850884B2 (ja) | べき乗剰余演算器 | |
Lórencz et al. | Subtraction-free almost Montgomery inverse algorithm | |
JP3137599B2 (ja) | BのC乗のnを法とした剰余を計算する回路 | |
JP2002175178A (ja) | 除算方法,除算回路,乗除算回路 | |
JP2006500615A (ja) | 向上したQuisquaterReduction | |
Großschädl | A new serial/parallel architecture for a low power modular multiplier | |
Großschädl | High-Speed RSA Hardware Based on | |
JP2002091759A (ja) | 演算回路及び演算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080318 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080610 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080617 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080918 |
|
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: 20090324 |
|
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: 20090422 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120501 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4302640 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120501 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130501 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140501 Year of fee payment: 5 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |