JP2005250481A - 多重精度を支援する拡張型モンゴメリモジュラ掛け算器 - Google Patents
多重精度を支援する拡張型モンゴメリモジュラ掛け算器 Download PDFInfo
- Publication number
- JP2005250481A JP2005250481A JP2005056659A JP2005056659A JP2005250481A JP 2005250481 A JP2005250481 A JP 2005250481A JP 2005056659 A JP2005056659 A JP 2005056659A JP 2005056659 A JP2005056659 A JP 2005056659A JP 2005250481 A JP2005250481 A JP 2005250481A
- Authority
- JP
- Japan
- Prior art keywords
- modulus
- bit
- multiplier
- 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
- 238000012937 correction Methods 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 18
- 239000011159 matrix material Substances 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000003252 repetitive effect Effects 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims 1
- 230000004048 modification Effects 0.000 claims 1
- 238000000034 method Methods 0.000 description 29
- 238000004364 calculation method Methods 0.000 description 12
- 238000010977 unit operation Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000009825 accumulation Methods 0.000 description 6
- 230000000295 complement effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 239000013256 coordination polymer Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000011248 coating agent Substances 0.000 description 2
- 238000000576 coating method Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- MRDAXWGGWWDUKL-VKJPNVGWSA-N 3-O-Caffeoylshikimic acid Chemical compound O[C@H]1[C@H](O)CC(C(O)=O)=C[C@H]1OC(=O)\C=C\C1=CC=C(O)C(O)=C1 MRDAXWGGWWDUKL-VKJPNVGWSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 239000002699 waste material Substances 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/5334—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
- G06F7/5336—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Abstract
【解決手段】 本発明の掛け算器は、−M、0、M、2Mと以前行の結果SIのnビットモジュラス数のうちの一つをモジュラス積に選択するモジュラス積発生器と、−2A、−A、0、+A、および+2Aの被乗数のうちの一つを部分積の被乗数で選択する部分積発生器と、選択された前記モジュラス積と前記部分積とを累算する累算器とを含むことを特徴とする。
【選択図】図8
Description
S0:=0
for I:=0 to (n/2−1)
qI:=(((SI+bIA)mod 4)*M')mod 4
SI+1:=(SI+bIA+qIM)/4
endfor
if(SN≧M)SN:=SN−M
また、本発明の掛け算器は一度にcビット掛け算演算を実行し、繰り返された演算を通じてn(nはcの整数倍)ビット掛け算演算を実行することができる。本発明による多重精度R4IMMアルゴリズムは次のとおりである。
for row_idx=0 to row_idx=(n/c−1)
begin
for col_idx=0 to col_idx=(o/c−1)
begin
do_ini()、
for wrd_idx=0 to wrd_idx=(c/w−1)
begin
for dgt_idx=0 to dgt_idx=(w/d−1)
begin
do_acc()、
endfor
endfor
endfor
for wrd_idx=0 to wrd_idx=(c/w−1)
begin
do_cpa()、
endfor
endfor
Claims (76)
- −M、0、M、2Mと以前行の結果SIのnビットモジュラス数のうちの一つをモジュラス積に選択するモジュラス積発生器と、
−2A、−A、0、+A、および+2Aの被乗数のうちの一つを部分積の被乗数で選択する部分積発生器と、
選択された前記モジュラス積と前記部分積とを累算する累算器とを含むことを特徴とする掛け算器。 - 前記Mはnビットモジュラス数のうちの現在入力された派生された部分から形成され、
前記Aはnビット被乗数のうちの現在入力された派生された部分から形成されることを特徴とする請求項1に記載の掛け算器。 - 前記以前行の結果は前記累算器の以前行の掛け算結果のうちの前記被乗数と前記モジュラス数の現在入力された派生された部分に対応するビットから形成されることを特徴とする請求項2に記載の掛け算器。
- 前記モジュラス積発生器は、
前記累算器の初期値修正サイクルで前記以前行の結果をモジュラス積に選択することを特徴とする請求項2に記載の掛け算器。 - 前記部分積発生器は、
前記累算器の初期値修正サイクルで前記部分積を‘0’に設定することを特徴とする請求項4に記載の掛け算器。 - 前記初期値修正サイクルは、
前記nビット被乗数と前記nビットモジュラス数のうちの現在入力された派生された部分のビットとを使用した基本掛け算演算の最初サイクルを示すことを特徴とする請求項4に記載の掛け算器。 - 前記初期値修正サイクルは、
前記nビット被乗数と前記nビットモジュラス数のうちの現在入力された派生された部分のビットとを使用した基本掛け算演算の最初サイクルを示すことを特徴とする請求項5に記載の掛け算器。 - 前記モジュラス数−Mは前記モジュラス数Mを反転させることによって求められることを特徴とする請求項1に記載の掛け算器。
- 前記モジュラス数2Mは前記モジュラス数Mをシフトすることによって求められることを特徴とする請求項1に記載の掛け算器。
- 前記nビットモジュラス数(M)のうちの現在入力されたビットを貯蔵するためのモジュラスレジスタと、
前記nビット被乗数(A)のうちの現在入力されたビットを貯蔵するための被乗数レジスタと、
前記nビット乗数(B)のうちの現在入力されたビットを貯蔵するための乗数レジスタとをさらに含むことを特徴とする請求項2に記載の掛け算器。 - 前記モジュラスレジスタと前記被乗数レジスタとはc'+1ビットレジスタで各々構成され、
c'はnと同一、またはnより小さい前記nビット被乗数と前記nビットモジュラス数のうちの少なくとも一つの派生された部分のビットとを示すプラスの整数であることを特徴とする請求項10に記載の掛け算器。 - 前記モジュラスレジスタはハーフワードの大きさの多数のサブレジスタと1ビット符号レジスタとをさらに含むことを特徴とする請求項10に記載の掛け算器。
- ワード長さのデータを貯蔵するメモリインターフェースブロックをさらに含み、
前記モジュラスレジスタの多数のサブレジスタは偶数番目のサブレジスタと奇数番目ののサブレジスタとを含み、
前記偶数番目のサブレジスタは前記メモリインターフェースブロックから供給されたワード長さのデータのうちの下位ハーフワードを貯蔵し、
前記奇数番目のサブレジスタは前記メモリインターフェースブロックから供給されたワード長さのデータのうちの上位ハーフワードを貯蔵することを特徴とする請求項12に記載の掛け算器。 - 前記被乗数レジスタはハーフワード大きさの多数のサブレジスタと1ビット符号レジスタとをさらに含むことを特徴とする請求項10に記載の掛け算器。
- ワード長さのデータを貯蔵するメモリインターフェースブロックをさらに含み、
前記被乗数レジスタの多数のサブレジスタは偶数番目のサブレジスタと奇数番目のサブレジスタとを含み、
前記偶数番目のサブレジスタは前記メモリインターフェースブロックから供給されたワード長さのデータのうちの下位ハーフワードを貯蔵し、
前記奇数番目のサブレジスタは前記メモリインターフェースブロックから供給されたワード長さのデータのうちの上位ハーフワードを貯蔵することを特徴とする請求項14に記載の掛け算器。 - ワード長さ(w)が派生された部分の長さ(c)と同一、または派生された部分の長さ(c)より小さい、w <= c <= n、前記nビット乗数のうちの入力ビットを貯蔵し、データを2ビットずつシフトするシフトレジスタをさらに含むことを特徴とする請求項10に記載の掛け算器。
- 前記部分積発生器は、
前記nビット乗数のうちの現在入力されたビットの三つのビット(B0、B1、BR)から部分積選択信号を発生し、前記nビット被乗数の入力されたビットのうちのA、2A、−Aおよび−2Aのうちの一つを前記部分積に選択することを特徴とする請求項16に記載の掛け算器。 - 前記被乗数2Aは前記被乗数Aをシフトすることによって求められることを特徴とする請求項17に記載の掛け算器。
- 前記被乗数−Aは前記被乗数Aを反転させることによって求められることを特徴とする請求項17に記載の掛け算器。
- 前記被乗数−2Aは前記被乗数Aを反転させ、シフトすることによって求められることを特徴とする請求項17に記載の掛け算器。
- メモリと、
被乗数A、乗数Bおよびモジュラス数Mを前記メモリに貯蔵するホストと、
前記ホストの制御に応じて貯蔵された被乗数、乗数およびモジュラス数でモンゴメリ掛け算演算を実行し、モンゴメリ掛け算演算から得られた演算結果を前記メモリに貯蔵することを特徴とする請求項1に記載の掛け算器を含む演算装置。 - Mは前記nビットモジュラス数のうちの現在入力された派生された部分から形成され、Aはnビット被乗数のうちの現在入力された派生された部分から形成され、
前記以前行の結果は前記累算器の以前列の掛け算結果のうちの前記被乗数と前記モジュラス数の現在入力された派生された部分に対応するビットとから形成されることを特徴とする請求項21に記載の演算装置。 - 前記モジュラス積発生器は前記メモリから前記以前行の結果であるSIと前記nビットモジュラス数の一部とを読み出し、SI、−M、0、Mおよび2Mのうちの一つを前記モジュラス積に選択し、
前記部分積発生器はnビット被乗数のうちの一部を読み出し、−2A、−A、0、+A および2Aのうちの一つを前記部分積に選択し、前記選択されたモジュラス積と部分積とを累算する累算器を含むことを特徴とする請求項21に記載の演算装置。 - 前記メモリから前記被乗数、乗数およびモジュラス全体を読み出すまで前記掛け算を繰り返して実行することを特徴とする請求項21に記載の演算装置。
- 前記被乗数、乗数、およびモジュラス数が各々nビットであり、
前記掛け算器が一回にc' ビットずつ掛け算演算を実行することができるとき、前記掛け算器は前記被乗数、乗数、およびモジュラス数を c' ビットずつ読み出し、ここで c'は前記被乗数、乗数、およびモジュラス数のビットのうちの派生された部分のビット長さを示すことを特徴とする請求項21に記載の演算装置。 - 前記掛け算器は、
前記被乗数はワード長さを示すwビット大きさのレジスタに貯蔵されたwビットのうちの一ブロックを前記メモリから読み出し、
前記wビットレジスタに貯蔵された前記被乗数は根の長さであるdビットずつ順次に処理され、
前記wビットレジスタに貯蔵された前記wビットを処理した後、前記メモリから前記被乗数の次のwビットを読み出すことを特徴とする請求項25に記載の演算装置。 - 前記掛け算器は、
強制部分積制御信号を発生するコントローラをさらに含むことを特徴とする請求項26に記載の演算装置。 - 前記部分積発生器は、
部分積選択信号と前記強制部分積制御信号とが第1値を有するとき、前記現在入力された乗数の三つのビット(B0、B1、BR)から部分積印加信号を生成し、前記被乗数(A)の入力ビットに基づいてA、2A、−A、−2Aおよび0のうちの一つを前記部分積に選択することを特徴とする請求項27に記載の演算装置。 - 前記部分積発生器は、
ノーマルレジデュー数を得るために前記強制部分積制御信号が第2値を有するとき、前記被乗数(A)を前記部分積に選択することを特徴とする請求項27に記載の演算装置。 - 前記部分積発生器は、
前記強制部分積制御信号が第3値を有するとき、前記被乗数(A)に基づいて引いた前記部分積に選択することを特徴とする請求項27に記載の演算装置。 - 前記初期値修正サイクルで、前記強制部分積制御信号は第4値を有し、前記強制部分積制御信号が前記第4値を有するとき、前記部分積発生器は0を前記部分積に選択することを特徴とする請求項27に記載の演算装置。
- 前記部分積発生器は、
前記強制部分積制御信号が第3値を有するとき、前記被乗数(A)に基づいて引いた前記部分積に選択することを特徴とする請求項29に記載の演算装置。 - 前記累算器の初期値修正サイクルで前記強制部分積制御信号は第4値を有することを特徴とする請求項32に記載の演算装置。
- 前記強制積制御信号が前記第4値を有するとき、前記部分積発生器は0を前記部分積に選択することを特徴とする請求項32に記載の演算装置。
- 前記掛け算器は、
前記累算器に貯蔵されたキャリ、和と最下位値、前記部分積、および前記累算器の入力帰還シフト制御信号に応答して繰り返し的な部分積データSPPIを発生することを特徴とする請求項27に記載の演算装置。 - 前記コントローラは、
強制モジュラス積制御信号をさらに発生することを特徴とする請求項35に記載の演算装置。 - 前記モジュラス積発生器は、
前記強制モジュラス積制御信号が第1値を有するとき、前記繰り返し的なデータSPPIとモジュラス(M)の二番目の最下位ビットとから前記−M、0、M、2Mのうちの一つを選択するためのモジュラス積選択信号を発生することを特徴とする請求項36に記載の演算装置。 - 前記累算器の前記初期値修正サイクルで、前記強制モジュラス積制御信号は第2値を有することを特徴とする請求項36に記載の演算装置。
- 前記モジュラス積発生器は、
前記強制モジュラス積制御信号が第2値であるとき、前記以前結果を前記モジュラス積に選択することを特徴とする請求項38に記載の演算装置。 - 前記強制モジュラス積制御信号が第3値を有するとき、QIに基づいて前記モジュラス積選択信号を発生することを特徴とする請求項39に記載の演算装置。
- 前記初期値修正サイクルを除いた残りのサイクルで、前記強制モジュラス積制御信号は第4値を有することを特徴とする請求項40に記載の演算装置。
- 前記モジュラス積発生器は、
ノーマルレジデュー数を得るために前記強制部分積制御信号が第2値を有するとき、前記被乗数(A)を前記部分積に選択することを特徴とする請求項41に記載の演算装置。 - 前記被乗数、乗数、およびモジュラス数が各々c'ビットずつ掛け算演算をすれば、すべての演算サイクルに対して(n/c)*(n/c)回の単位掛け算演算を実行することを特徴とする請求項26に記載の演算装置。
- 前記掛け算器は、
wビット単位の前記メモリから前記nビット被乗数とモジュラス数とを読み出し、
c'ビット大きさのc'ビットレジスタに前記wビットを貯蔵し、
前記全体c'ビットレジスタのc'ビットが処理されることを特徴とする請求項43に記載の演算装置。 - 前記単位掛け算演算の各々の一番目の演算サイクルは前記累算器の初期値修正サイクルであることを特徴とする請求項44に記載の演算装置。
- 前記モジュラス積発生器は、
前記初期値修正サイクルで前記以前結果を前記モジュラス積に選択することを特徴とする請求項45に記載の演算装置。 - 前記部分積発生器は、
前記初期値修正サイクルで前記部分積を‘0’に設定することを特徴とする請求項46に記載の演算装置。 - 前記モジュラス(M)のうちの現在入力された派生された部分の長さがc'であるビットを貯蔵するためのモジュラスレジスタと、
前記被乗数(A)のうちの現在入力された派生された部分の長さがc'であるビットを貯蔵するための被乗数レジスタと、
前記乗数(B)のうちの現在入力された派生された部分の長さがwであるビットを貯蔵するための乗数レジスタとをさらに含むことを特徴とする請求項44に記載の演算装置。 - 前記モジュラスレジスタと前記被乗数レジスタとはc'+1ビットレジスタで各々構成され、
c'はnと同一、またはnより小さい前記nビット被乗数と前記nビットモジュラス数のうちの少なくとも一つの派生された部分のビットとを示すプラスの整数であることを特徴とする請求項48に記載の演算装置。 - 前記モジュラスレジスタと前記被乗数レジスタとは多数のサブレジスタとクロック信号やローディング印加信号のうちの一つに応答して新しい値を選択的にローディングする1ビット符号レジスタとをさらに含むことを特徴とする請求項48に記載の演算装置。
- 前記被乗数レジスタはワード長さwビットを貯蔵し、
前記被乗数レジスタはクロックや制御信号のうちの一つに応答して新しい値をロードするか、データを右側にシフトさせることを特徴とする請求項48に記載の演算装置。 - キャリ加算モードで動作し、各々がモジュラス積、部分積、第1値および第2値を受け入れ、対応する次の和、対応する次のキャリおよび対応する次の下位値を発生する複数のコンプレッサと、
前記複数のコンプレッサの各々から前記対応する次の和を受け入れ、対応する更新された現在和を出力する和レジスタと、
前記複数のコンプレッサから前記対応する次のキャリを受け入れ、対応する更新された現在キャリを出力するキャリレジスタと、
前記複数のコンプレッサから前記対応する次の下位値を受け入れ、対応する更新された現在下位値を出力する下位値レジスタとを含むことを特徴とする累算器。 - 前記複数のコンプレッサの各々は初期値修正サイクルで自分から出力される前記対応する次の和、次のキャリおよび次の下位値を前記第1値および前記第2値に各々受け入れることを特徴とする請求項52に記載の累算器。
- 前記初期値修正サイクルを除いた残りのサイクルで前記コンプレッサの各々は2ビット高いコンプレッサからの和と1ビット高いコンプレッサからのキャリとを前記第1値および前記第2値に各々受け入れることを特徴とする請求項53に記載の累算器。
- 前記複数のコンプレッサのうちの最下位ビットコンプレッサの和は第1追加全加算器に供給され、
最下位コンプレッサのキャリ、第2下位コンプレッサの和と第1追加全加算器のキャリとは第2追加全加算器に供給され、
第1追加全加算器の和と第2追加全加算器の和とキャリとは次の下位値を示すことを特徴とする請求項54に記載の累算器。 - 前記累算器の初期値修正サイクルを示す信号に応答して前記第1値および前記第2値を選択するためのマルチプレクサをさらに含むことを特徴とする請求項53に記載の累算器。
- 前記モジュラス積はnビットモジュラス数から生成され、
前記部分積はnビット被乗数とnビット乗数とから生成され、
前記部分積と前記モジュラス積の各々はc+k+2=c'+2ビットであり、ここで、kは8の倍数である整数、cはビットのうちの一部分の長さを示し、c'はビットのうちの付け加えられた一部分の長さ、そしてnはcの倍数である整数、c<=n 、および c'=c+kであることを特徴とする請求項52に記載の累算器。 - 前記複数のコンプレッサは直列に連結され、少なくともc+k+5=c'+5個のコンプレッサを有することを特徴とする請求項55に記載の累算器。
- 前記複数のコンプレッサは各々4;2コンプレッサであることを特徴とする請求項52に記載の累算器。
- 前記の複数のコンプレッサの各々は二つの全加算器で構成されることを特徴とする請求項52に記載の累算器。
- 前記複数のコンプレッサの最下位コンプレッサは前記部分積反転信号と前記モジュラス積反転信号とのうちの一つを受け入れることを特徴とする請求項52に記載の累算器。
- 掛け算器はn/c部分で構成されたnビット被乗数と、n/c部分で構成されたnビット乗数と、n/c部分で構成されたnビットモジュラス数と、乗数の派生された部分とモジュラス数の派生された部分に対する(n/c)*(n/c)回の単位掛け算演算を順次に実行し、ここで、n>cであり、nとcとはプラスの整数であることを特徴とする演算装置。
- 前記掛け算器は、
−M、0、M、2Mと以前行の結果SIのnビットモジュラス数のうちの一つをモジュラス積に選択するモジュラス積発生器と、
−2A、−A、0、+A、および+2Aの被乗数のうちの一つを部分積の被乗数に選択する部分積発生器と、
選択された前記モジュラス積と前記部分積とを累算する累算器とをさらに含むことを特徴とする請求項62に記載の演算装置。 - 前記Mはnビットモジュラス数のうちのc' (c'=c+k)ビットの現在入力された派生された部分であり、kは整数であり、
前記Aはnビット被乗数のうちのc'ビットの現在入力された派生された部分であることを特徴とする請求項63に記載の演算装置。 - 前記以前行の結果は前記累算器の以前行の掛け算結果のうちの前記被乗数と前記モジュラス数の現在入力された派生された部分に対応するビットとから形成されることを特徴とする請求項63に記載の演算装置。
- 前記掛け算器は複数の行に対する単位掛け算演算を実行して各行の最後に掛け算結果を生成し、
最後の行の掛け算結果を除いたすべての行に対する掛け算結果はn+2長さのビットを有することを特徴とする請求項62に記載の演算装置。 - 最後の行に対する掛け算結果はn+1長さのビットを有することを特徴とする請求項66に記載の演算装置。
- nは前記被乗数、乗数およびモジュラス数のうちの一つの以上に構成される被演算子のビット長さを示すことを特徴とする請求項62に記載の演算装置。
- cはビットのうちの一部分のビット長さを示し、nはcの倍数である整数であることを特徴とする請求項68に記載の演算装置。
- c'はビットのうちの付け加えられた一部分のビット長さを示し、c'=c+kであり、kは整数であることを特徴とする請求項69に記載の演算装置。
- 前記掛け算器でデータパスはc'に比例するサイズであることを特徴とする請求項70に記載の演算装置。
- nとcとはプラスの整数であり、n/c個の行を有する各行は繰り返し的にn/c回の単位モンゴメリ掛け算演算を実行し、キャリ伝達加算演算をすることに係わるマトリックス演算器と、
前記単位掛け算演算を繰り返して実行して加算構造に貯蔵されるキャリを有する累算器と、
キャリ伝達加算演算を実行する追加的なキャリ伝達加算器とを含むことを特徴とする掛け算装置。 - 前記モンゴメリ掛け算演算は前記単位掛け算演算を一度完了し、前記キャリ伝達加算演算をマトリックスのn/c個行に対して完了することを特徴とする請求項72に記載の掛け算装置。
- 多数の選択可能なnビットモジュラス数のうちの現在入力された派生された部分から形成された与えられたモジュラス数Mからモジュラス積を選択するモジュラス積発生器と、
多数の選択可能なnビット被乗数のうちの現在入力された派生された部分から形成された与えられた被乗数Aから部分積を選択する部分積発生器と、
選択された前記モジュラス積と掛け算結果とで生成された部分積を累算する累算器とを含むことを特徴とする掛け算器。 - メモリと、
被乗数A、乗数Bおよびモジュラス数Mをメモリに貯蔵するホストと、
ホストの制御に応じて貯蔵された被乗数、乗数およびモジュラス数にモンゴメリ掛け算演算を実行し、モンゴメリ掛け算演算から得られた演算結果をメモリに貯蔵する請求項74に記載の前記掛け算器を含む演算装置。 - モンゴメリ掛け算演算を実行し、そこに入力制御信号の論理状態に基づいてノーマル掛け算演算が適用されることを特徴とするモンゴメリ掛け算器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040013855A KR20050088506A (ko) | 2004-03-02 | 2004-03-02 | 다중 세정도를 지원하는 확장형 몽고메리 모듈러 곱셈기 |
KR2004-013855 | 2004-03-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005250481A true JP2005250481A (ja) | 2005-09-15 |
JP4870932B2 JP4870932B2 (ja) | 2012-02-08 |
Family
ID=34909984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005056659A Active JP4870932B2 (ja) | 2004-03-02 | 2005-03-01 | 多重精度を支援する拡張型モンゴメリモジュラ掛け算器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7805478B2 (ja) |
JP (1) | JP4870932B2 (ja) |
KR (1) | KR20050088506A (ja) |
CN (1) | CN1702613A (ja) |
DE (1) | DE102005010764A1 (ja) |
FR (1) | FR2867579B1 (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100458031B1 (ko) * | 2003-03-14 | 2004-11-26 | 삼성전자주식회사 | 몽고메리 유형의 모듈라 곱셈 장치 및 방법 |
US8073892B2 (en) * | 2005-12-30 | 2011-12-06 | Intel Corporation | Cryptographic system, method and multiplier |
DE102007014808A1 (de) * | 2007-03-28 | 2008-10-02 | Texas Instruments Deutschland Gmbh | Multiplizier- und Multiplizier- und Addiereinheit |
EP2208165A4 (en) * | 2007-11-02 | 2010-11-24 | Certicom Corp | MONTGOMERY ARITHMETIC SIGNED |
KR100946256B1 (ko) * | 2007-12-26 | 2010-03-08 | 대구대학교 산학협력단 | 다정도 캐리 세이브 가산기를 이용한 듀얼필드상의확장성있는 몽고매리 곱셈기 |
KR101590322B1 (ko) * | 2009-05-15 | 2016-02-19 | 삼성전자주식회사 | 연산임계경로가 감소된 모듈러 곱셈기 및 연산임계경로 감소방법 |
KR101248912B1 (ko) * | 2009-12-31 | 2013-03-29 | 한양대학교 산학협력단 | 항혈관신생 활성을 가지는 재조합 아데노바이러스 |
KR20110105555A (ko) * | 2010-03-19 | 2011-09-27 | 삼성전자주식회사 | 효율적인 하드웨어 구성을 갖는 몽고메리 승산기 |
KR101929984B1 (ko) | 2012-05-17 | 2018-12-18 | 삼성전자주식회사 | 모듈러 곱셈기 및 그것의 모듈러 곱셈 방법 |
KR101925868B1 (ko) | 2012-05-17 | 2018-12-06 | 삼성전자주식회사 | 모듈러 계산 유닛 및 그것을 포함하는 보안 시스템 |
CN103645883A (zh) * | 2013-12-18 | 2014-03-19 | 四川卫士通信息安全平台技术有限公司 | 基于fpga的高基模乘器 |
US9535656B2 (en) * | 2014-03-14 | 2017-01-03 | International Business Machines Corporation | Pipelined modular reduction and division |
KR102132261B1 (ko) * | 2014-03-31 | 2020-08-06 | 삼성전자주식회사 | 비교 연산이 필요없이 최종 모듈러 감소를 하는 몽고메리 곱셈 방법 및 곱셈기 |
CN103970504B (zh) * | 2014-05-07 | 2017-03-29 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 在ecc中实现位数自适应模乘运算的方法及模乘运算器 |
CN104090737B (zh) * | 2014-07-04 | 2017-04-05 | 东南大学 | 一种改进型部分并行架构乘法器及其处理方法 |
KR102338863B1 (ko) | 2015-09-09 | 2021-12-13 | 삼성전자주식회사 | 연산을 제어하기 위한 장치 및 방법 |
IL244842A0 (en) * | 2016-03-30 | 2016-07-31 | Winbond Electronics Corp | Efficient non-modular multiplexing is protected against side-channel attacks |
CN106528046B (zh) * | 2016-11-02 | 2019-06-07 | 上海集成电路研发中心有限公司 | 长位宽时序累加乘法器 |
KR102594656B1 (ko) * | 2016-11-25 | 2023-10-26 | 삼성전자주식회사 | 보안 프로세서, 이를 포함하는 어플리케이션 프로세서 및 보안 프로세서의 동작 방법 |
CN108242994B (zh) * | 2016-12-26 | 2021-08-13 | 阿里巴巴集团控股有限公司 | 密钥的处理方法和装置 |
CN108241481B (zh) * | 2016-12-26 | 2022-08-23 | 航天信息股份有限公司 | 一种适用于rsa算法的部分求余乘法器设备 |
CN108564169B (zh) * | 2017-04-11 | 2020-07-14 | 上海兆芯集成电路有限公司 | 硬件处理单元、神经网络单元和计算机可用介质 |
RU2653263C1 (ru) * | 2017-07-24 | 2018-05-07 | федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" | Арифметико-логическое устройство для умножения чисел по модулю |
CN109857368B (zh) * | 2018-12-20 | 2022-07-26 | 上海大学 | 一种位数众多、可分组、可重构的多值电子运算器及方法 |
CN109669670B (zh) * | 2018-12-26 | 2020-09-22 | 贵州华芯通半导体技术有限公司 | 用于蒙哥马利模乘中的不均等分块的数据处理方法及装置 |
EP4080350A4 (en) * | 2020-04-01 | 2022-12-28 | Huawei Technologies Co., Ltd. | MULTIMODE FUSION MULTIPLIER |
CN112328962B (zh) * | 2020-11-27 | 2021-12-31 | 深圳致星科技有限公司 | 矩阵运算优化方法、装置、设备和可读存储介质 |
CN112506468B (zh) * | 2020-12-09 | 2023-04-28 | 上海交通大学 | 支持高吞吐多精度乘法运算的risc-v通用处理器 |
CN113032845B (zh) * | 2021-03-31 | 2022-02-11 | 郑州信大捷安信息技术股份有限公司 | 一种用于资源受限芯片的EdDSA签名实现方法和装置 |
CN113296733A (zh) * | 2021-04-25 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 数据处理方法以及装置 |
TWI802095B (zh) | 2021-11-22 | 2023-05-11 | 財團法人工業技術研究院 | 模數乘法電路與對應之計算模數乘法之方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08263316A (ja) * | 1994-11-08 | 1996-10-11 | Sgs Thomson Microelectron Sa | モンゴメリ法によるモジュラ乗算の実施方法 |
JP2002236581A (ja) * | 2001-02-08 | 2002-08-23 | Matsushita Electric Ind Co Ltd | 演算回路、演算方法、及びプログラム記録媒体 |
JP2003216034A (ja) * | 2002-01-23 | 2003-07-30 | Ail Kk | べき乗剰余演算器 |
JP2003216411A (ja) * | 2002-01-23 | 2003-07-31 | Sony Corp | 多倍長演算処理装置およびicデバイス |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1988005189A1 (en) | 1986-12-30 | 1988-07-14 | Hughes Aircraft Co | N-bit sum-carry accumulator |
KR100257124B1 (ko) | 1997-05-16 | 2000-05-15 | 문상재 | 공통 피승수 모듈라 곱셈을 이용한 고속 멱승 방법 |
US6356636B1 (en) * | 1998-07-22 | 2002-03-12 | Motorola, Inc. | Circuit and method for fast modular multiplication |
GB2352309B (en) * | 1999-07-21 | 2004-02-11 | Advanced Risc Mach Ltd | A system and method for performing modular multiplication |
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 |
US20020172355A1 (en) * | 2001-04-04 | 2002-11-21 | Chih-Chung Lu | High-performance booth-encoded montgomery module |
JP2004258141A (ja) * | 2003-02-24 | 2004-09-16 | Fujitsu Ltd | モンゴメリ乗算剰余の多倍長演算のための演算装置 |
-
2004
- 2004-03-02 KR KR1020040013855A patent/KR20050088506A/ko not_active Application Discontinuation
-
2005
- 2005-03-01 US US11/068,371 patent/US7805478B2/en active Active
- 2005-03-01 FR FR0502052A patent/FR2867579B1/fr active Active
- 2005-03-01 JP JP2005056659A patent/JP4870932B2/ja active Active
- 2005-03-02 CN CNA2005100788260A patent/CN1702613A/zh active Pending
- 2005-03-02 DE DE200510010764 patent/DE102005010764A1/de not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08263316A (ja) * | 1994-11-08 | 1996-10-11 | Sgs Thomson Microelectron Sa | モンゴメリ法によるモジュラ乗算の実施方法 |
JP2002236581A (ja) * | 2001-02-08 | 2002-08-23 | Matsushita Electric Ind Co Ltd | 演算回路、演算方法、及びプログラム記録媒体 |
JP2003216034A (ja) * | 2002-01-23 | 2003-07-30 | Ail Kk | べき乗剰余演算器 |
JP2003216411A (ja) * | 2002-01-23 | 2003-07-31 | Sony Corp | 多倍長演算処理装置およびicデバイス |
Also Published As
Publication number | Publication date |
---|---|
FR2867579B1 (fr) | 2008-04-18 |
US20050198093A1 (en) | 2005-09-08 |
FR2867579A1 (fr) | 2005-09-16 |
DE102005010764A1 (de) | 2005-09-29 |
JP4870932B2 (ja) | 2012-02-08 |
US7805478B2 (en) | 2010-09-28 |
KR20050088506A (ko) | 2005-09-07 |
CN1702613A (zh) | 2005-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4870932B2 (ja) | 多重精度を支援する拡張型モンゴメリモジュラ掛け算器 | |
US7424504B2 (en) | Arithmetic processor for accomodating different field sizes | |
EP0801345B1 (en) | Circuit for modulo multiplication and exponentiation arithmetic | |
US6920473B2 (en) | Method and apparatus for modular multiplying and calculating unit for modular multiplying | |
JP3605181B2 (ja) | 掛け算累算命令を使用したデータ処理 | |
US7543011B2 (en) | Montgomery modular multiplier and method thereof using carry save addition | |
KR100591761B1 (ko) | 몽고메리 모듈러 곱셈기 및 캐리 저장 가산을 이용한몽고메리 모듈러 곱셈 방법 | |
JPH07253949A (ja) | モジュラ・乗算およびモジュラ・べき乗を遂行する超小形電子系装置ならびにその遂行方法 | |
WO1993002413A1 (en) | High-speed modulo exponentiator device | |
JP4408712B2 (ja) | 多倍長データ積和演算処理回路及びモンゴメリ積和剰余演算回路 | |
US5528529A (en) | Electronic multiplying and adding apparatus and method | |
Savas et al. | Multiplier architectures for GF (p) and GF (2n) | |
Shieh et al. | A new algorithm for high-speed modular multiplication design | |
Gutub et al. | Efficient scalable VLSI architecture for Montgomery inversion in GF (p) | |
US7240204B1 (en) | Scalable and unified multiplication methods and apparatus | |
US8533246B2 (en) | Carry bucket-aware multiplication having bits with most significant bits set to zero | |
JP2006023647A (ja) | 乗算剰余演算器及び情報処理装置 | |
JP2006508464A (ja) | ルックアップテーブルを備える乗算器 | |
KR100836737B1 (ko) | 중국인 나머지 정리(crt)와 캐리 저장 가산 기반의모듈러 곱셈 장치 및 방법 | |
KR100946256B1 (ko) | 다정도 캐리 세이브 가산기를 이용한 듀얼필드상의확장성있는 몽고매리 곱셈기 | |
KR100858559B1 (ko) | 잉여 이진수의 덧셈 방법, 잉여 이진수의 곱셈 방법, 잉여이진수 덧셈기 및 잉여 이진수 곱셈기 | |
EP4095827A1 (en) | Secure square root computation system, secure normalization system, methods for same, secure computation device, and program | |
US20230038504A1 (en) | Secure inverse square root computation system, secure normalization system, methods therefor, secure computation apparatus, and program | |
Wei | New residue signed-digit addition algorithm | |
Wong et al. | Speeding up the Montgomery Exponentiation with CMM-SDR Over GPU with Maxwell and Pascal Architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110308 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110608 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110705 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111004 |
|
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: 20111025 |
|
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: 20111118 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4870932 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141125 Year of fee payment: 3 |
|
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 |