JP5116770B2 - フォールディングを用いるモジュール削減 - Google Patents
フォールディングを用いるモジュール削減 Download PDFInfo
- Publication number
- JP5116770B2 JP5116770B2 JP2009530713A JP2009530713A JP5116770B2 JP 5116770 B2 JP5116770 B2 JP 5116770B2 JP 2009530713 A JP2009530713 A JP 2009530713A JP 2009530713 A JP2009530713 A JP 2009530713A JP 5116770 B2 JP5116770 B2 JP 5116770B2
- Authority
- JP
- Japan
- Prior art keywords
- modm
- determining
- circuit
- computer
- value
- 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 - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04K—SECRET COMMUNICATION; JAMMING OF COMMUNICATION
- H04K1/00—Secret communication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Devices For Executing Special Programs (AREA)
- Storage Device Security (AREA)
- Dc Digital Transmission (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
2つの数の乗算を行なうために広範囲の様々なアプローチが行なわれてきている。教科書的な乗算として知られている共通のアプローチは、オペランドをセグメントに分けて、より小さなセグメント上で乗算操作を行なうことを含む。例として、2つのnビット幅の数AおよびBを、次のような一組のより小さなサイズのサブセグメントとして表現することができる。
A=a12s+a0 [1]
B=b12s+b0 [2]
ここで、a0およびb0項は、AとBのs最下位ビットを、a1およびb1項は、残余の上位ビットを表わす。この表記法では、axとbx中の添字xは、数字内のセグメントの順序を表わす(例えば、a0は、Aの最下位ビットを、a1は次の上位ビット表わすなど)。
A×B=a1b122s+(a0b1+b0a1)2s+a0b0 [3]
(a0b1+b0a1) [4]
の結果は、
[(a0+a1)(b0+b1)]−a1b1−a0b0 [5]
として計算することができる。
a1b1とa0b0が方程式[3]中で別の項を形成するので、方程式[5]中でa1b1とa0b0の値を使用することは、追加計算を強いることを表わすものではない。方程式[3]中の方程式[4]に方程式[5]を代入すると、A×Bのカラツバ乗算は次のように計算することができる。
A×B=a1b122s+([(a0+a1)(b0+b1)]−a1b1−a0b0)2s+a0b0 [6]
この代入によって、2回の乗算に対して2回の加算と1回の乗算で済ませられる。大抵の場合、これは計算効率の上で極めて大きな利益をもたらす。
A=a222s+a12s+a0 [7]
B=b222s+b12s+b0 [8]
A×B=a2b224s+a1b122s+a0b0+[(a2+a1)(b2+b1)−a2b2−a1b1]23s+[(a2+a0)(b2+b0)−a2b2−a0b0]22s+[(a0+a1)(b0+b1)−a0b0−a1b1]2s [9]
ここで、AおよびBは、それぞれ3つのs−ビット・セグメントに分割される。
A×B=a1b122n+((a0+a1)(b0+b1)−a1b1−a0b0)2n+a0b0 [6]
より小さいセグメント乗算は、それぞれカラツバ法を使用して順番に実行することができる。例えば、A×Bのカラツバ乗算の実行は、a1b1,a0b0,(a0+a1)(b0+b1)のカラツバ乗算を含めることができる。これらの乗算は、さらに小さなサブセグメントのカラツバ乗算を含めてもよい。例えば、a1b1の決定はサブセグメントの複数の項へa1とb1をセグメントに分けてもよい。
22sa1b1+2s[(a1+a0)(b1+b0)−a1b1−a0b0]+a0b0 [10]
その後、その結果は、最上位ビットah,bhの値に基づいて調整される。例えば、図示されるように、その結果は、
2nahB[b1:b0] 106[11]
および
2nbhA[a1:a0] 108[12]
だけ増やされる場合がある。
言い換えれば、ahが「1」である場合、その結果は、nビットだけシフトしたbl:b0のn−ビットによって増加させられる。同様に、bhが「1」である場合、その結果は、nビットだけシフトしたal:a0のn−ビットによって増加させられる。例えば、これらの調整は追加の操作として実行される。
result=result+2nahB[b1:b0]
result=result+2nbhA[a1:a0]
あるいは加算に続く分岐として、
if(ah)then result=result+2nB[b1:b0]
if(bh)then result=result+2nA[a1:a0]
が実行される。
最後に、もしah,bh両方が「1」である場合、その結果は2n(つまり、ahbh)だけ増加させられる。これは、例えば、ブランチを使用して次のように実行される。
if(ahbh)then result=result+22n
加算および1またはそれ以上のブランチ・ステートメントのこのコンビネーションは、キャリーがより低いレベルの帰納へ下流伝搬するのを防ぐことができる。
n=2k
n=3・2k
n=32・2k
n=33・2k
n=33・2k
n=5・2k
ここで、nは数値の長さであり、kは整数である。
乗算に加えて、多くの暗号スキームにはモジュール削減(例えば、NmodMの計算)を含む。モジュール削減操作の費用を削減するために、いくつかのシステムは、バレット(Barrett)のモジュール削減として知られている技術を使用する。バレットは、本質的に、商の推定を計算する。
q=floor(floor(N/2m)μ/M) [13]
ここで、mはモジュラMの幅で、μは次式で決定される定数である。
μ=floor(22n/M) [14]
ここでnは数値Nの幅である。NmodMの値は、N−qMを計算することにより決定され、最終値がM未満であることを保証するために必要な場合、Mだけ減じる最終減算が続く。バレットの効率への寄与はμに対する予め計算された値にアクセスする能力である。すなわち、μの値は、Nの特定の値にアクセスしなくても、Nのサイズのみに基づいて決定される。
N’=NH2fmodM+NL 212[15]
その後、より小さなN’は、例えば古典的バレット技術を使用して、モジュール削減を行なうために使用される。
R=N’−floor(floor(N’/22s)(μ/2s)M [16]
ここで、μは、floor(23s/M)として決定される。M’の値のように、μの値は、sやMの様々な値に対して事前に計算される。この事前計算は、高価な操作をリアルタイム処理が必要でない期間へ再び時間シフトすることができる。
上述された技術は、様々な暗号演算を行なうために使用することができる。例えば、上述されたカラツバ乗算およびフォールディング技術は、べき剰余を実行するために組み合わせることができる。
ciphertext=cleartexte−publicmodM [17]
メッセージを解読するために、次の操作が行なわれる.
cleartext=ciphertexte−privatemodM [18]
A
1
exponent bit1−1 1*1*3 =3
exponent bit2−0 3*3 =9
exponent bit3−1 9*9*3 =243
exponent bit4−0 243*243 =59049
AmodM 4
非常に大きな数値が乗算された際の終わりでモジュール削減を実行する代わりに、すべての指数ビットあるいはいくつかの指数ビット毎に処理した後にモジュール削減を乗算操作内に挿入するようにしてもよい。例えば、31010bmod5を決定するために、この手続きは以下のように進む。
A
1
exponent bit1−1 1*1*3 =3
AmodM 3
exponent bit2−0 3*3 =9
AmodM 4
exponent bit3−1 4*4*3 =48
AmodM 3
exponent bit4−0 3∧2 =9
AmodM 4
特定の実行にもかかわらず、2乗および「g」乗算の双方に、上述されたカラツバ乗算技術を使用することにより、べき剰余を著しく促進させることができる。加えて、フォールディングを使用することで、リダクション操作は、処理資源の使用を著しく軽減させる。
Claims (25)
- コンピュータ読取り可能な格納媒体に配置され、回路にNmodMを決定させる命令からなるコンピュータ・プログラムにおいて、Nはn−ビット幅を有する数値で、Mはm−ビット幅を有する数値であり、前記回路は、ハードウェア乗算器に結合された少なくとも1つのプログラム可能な処理ユニットを含み、前記プログラムは、
前記回路の少なくとも1つのプログラム可能な処理ユニットがN’=NH2fmodM+NLを決定し、かつ前記少なくとも1つのプログラム可能な処理ユニットによってアクセス可能な記憶要素に格納し、
ここにおいて、
NHは、Nのより高位な部分からなり、
NLは、Nのより低位な部分からなり、および、
fは、NをNHとNLへ分ける位置からなり、かつ
Nは、eを指数とすると、N=g e が成立し、
前記回路は、少なくともいくつかの乗算を計算するためのハードウェア乗算器を用いて、g e を決定し、
前記回路の前記少なくとも1つのプログラム可能な処理ユニットが前記格納されたN’値にアクセスし、そのアクセスされたN’値に基づいて、N’modMを決定し、かつ前記少なくとも1つのプログラム可能な処理ユニットによってアクセスされる記憶要素に格納する、
ことを特徴とするコンピュータ・プログラム。 - fは、N内に21.5mに対応するビットを含むことを特徴とする請求項1記載のコンピュータ・プログラム。
- N’modMを決定する前記命令は、2fmodMの事前に計算された値にアクセスする命令を含むことを特徴とする請求項1記載のコンピュータ・プログラム。
- N’modMを決定する前記命令は、N’modMのバレット・モジュール削減を実行する命令を含むことを特徴とする請求項1記載のコンピュータ・プログラム。
- 前記N’modMのバレット・モジュール削減を決定する前記命令は、floor(2f/M)の事前に計算された値にアクセスする命令を含むことを特徴とする請求項4記載のコンピュータ・プログラム。
- N’modMを決定する前記命令は、
N”=N’H2fmodM+N’Lを決定し、
ここにおいて、
N’Hは、N’のより高位な部分からなり、
N’Lは、N’のより低位な部分からなり、および、
fは、N’をN’HとN’Lへ分ける位置からなり、
N”modMを決定する、
ことを特徴とする請求項1記載のコンピュータ・プログラム。 - fは、N’内に21.25mに対応するビットを含むことを特徴とする請求項6記載のコンピュータ・プログラム。
- N”modMを決定する前記命令は、2fmodMの事前に計算された値にアクセスする命令を含むことを特徴とする請求項6記載のコンピュータ・プログラム。
- N”modMを決定する前記命令は、N”modMのバレット・モジュール削減を実行する命令を含むことを特徴とする請求項6記載のコンピュータ・プログラム。
- 前記N”modMのバレット・モジュール削減を決定する前記命令は、floor(2f/M)の事前に計算された値にアクセスする命令を含むことを特徴とする請求項9記載のコンピュータ・プログラム。
- Mは、公開鍵のモジュラを含むことを特徴とする請求項1記載のコンピュータ・プログラム。
- システムにおいて、
NmodMを決定する回路であって、Nはn−ビット幅を有する数値で、Mはm−ビット幅を有する数値であり、前記回路は、ハードウェア乗算器に結合された少なくとも1つのプログラム可能な処理ユニットを含み、前記回路は、
前記回路の少なくとも1つのプログラム可能な処理ユニットがN’=NH2fmodM+NLを決定し、かつ前記少なくとも1つのプログラム可能な処理ユニットによってアクセス可能な記憶要素に格納し、
ここにおいて、
NHは、Nのより高位な部分からなり、
NLは、Nのより低位な部分からなり、および、
fは、NをNHとNLへ分ける位置からなり、かつ
Nは、eを指数とすると、N=g e が成立し、
前記回路は、少なくともいくつかの乗算を計算するためのハードウェア乗算器を用いて、g e を決定し、
前記回路の前記少なくとも1つのプログラム可能な処理ユニットが前記格納されたN’値にアクセスし、そのアクセスされたN’値に基づいて、N’modMを決定し、かつ前記少なくとも1つのプログラム可能な処理ユニットによってアクセスされる記憶要素に格納する、
ことを特徴とするシステム。 - fは、N内に21.5mに対応するビットを含むことを特徴とする請求項12記載のシステム
- N’modMを決定する前記回路は、
N”=N’H2fmodM+N’Lを決定し、
ここにおいて、
N’Hは、N’のより高位な部分からなり、
N’Lは、N’のより低位な部分からなり、および、
fは、N’をN’HとN’Lへ分ける位置からなり、
N”modMを決定する、
ことを特徴とする請求項12記載のシステム。 - Mは、公開鍵のモジュラを含むことを特徴とする請求項12記載のシステム。
- 前記回路は、N’およびN’modMを決定する命令を実行するためのプログラム可能な回路を含むことを特徴とする請求項12記載のシステム。
- 前記回路と同じダイ上に集積され、かつ前記回路に通信可能に結合された複数のプログラム可能なコアをさらに含むことを特徴とする請求項12記載のシステム。
- NmodMを決定するコンピュータで実行される方法において、Nはn−ビット幅を有する数値で、Mはm−ビット幅を有する数値であり、前記方法は、
コンピュータ・プロセッサによって、N’=NH2fmodM+NLを決定し、記憶要素に格納する段階と、
ここにおいて、
NHは、Nのより高位な部分からなり、
NLは、Nのより低位な部分からなり、および、
fは、NをNHとNLへ分ける位置からなり、かつ
Nは、eを指数とすると、N=g e が成立し、
前記コンピュータ・プロセッサは、少なくともいくつかの乗算を計算するためのハードウェア乗算器を用いて、g e を決定し、
前記コンピュータ・プロセッサによって、前記格納されたN’値にアクセスし、そのアクセスされたN’値に基づいて、N’modMを決定する段階と、
を含むことを特徴とするコンピュータで実行される方法。 - fは、N内に21.5mに対応するビットを含むことを特徴とする請求項18記載のコンピュータで実行される方法。
- 前記N’modMを決定する段階は、2fmodMの事前に計算された値にアクセスする段階を含むことを特徴とする請求項18記載のコンピュータで実行される方法。
- 前記N’modMを決定する段階は、N’modMのバレット・モジュール削減を実行する段階を含むことを特徴とする請求項18記載のコンピュータで実行される方法。
- 前記N’modMを決定する段階は、
N”=N’H2fmodM+N’Lを決定する段階と、
ここにおいて、
N’Hは、N’のより高位な部分からなり、
N’Lは、N’のより低位な部分からなり、および、
fは、N’をN’HとN’Lへ分ける位置からなり、
N”modMを決定する段階と、
を含むことを特徴とする請求項18記載のコンピュータで実行される方法。 - fは、N’内に21.25mに対応するビットを含むことを特徴とする請求項22記載のコンピュータで実行される方法。
- 前記N”modMを決定する段階は、N”modMのバレット・モジュール削減を実行する段階を含むことを特徴とする請求項22記載のコンピュータで実行される方法。
- Mは、公開鍵のモジュラを含むことを特徴とする請求項18記載のコンピュータで実行される方法。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/476,432 | 2006-06-27 | ||
| US11/476,432 US8229109B2 (en) | 2006-06-27 | 2006-06-27 | Modular reduction using folding |
| PCT/US2007/071829 WO2008002828A2 (en) | 2006-06-27 | 2007-06-21 | Modular reduction using folding |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2012167841A Division JP5378579B2 (ja) | 2006-06-27 | 2012-07-28 | フォールディングを用いるモジュール削減 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2009540394A JP2009540394A (ja) | 2009-11-19 |
| JP5116770B2 true JP5116770B2 (ja) | 2013-01-09 |
Family
ID=38846425
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009530713A Expired - Fee Related JP5116770B2 (ja) | 2006-06-27 | 2007-06-21 | フォールディングを用いるモジュール削減 |
| JP2012167841A Expired - Fee Related JP5378579B2 (ja) | 2006-06-27 | 2012-07-28 | フォールディングを用いるモジュール削減 |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2012167841A Expired - Fee Related JP5378579B2 (ja) | 2006-06-27 | 2012-07-28 | フォールディングを用いるモジュール削減 |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US8229109B2 (ja) |
| EP (1) | EP2033357A2 (ja) |
| JP (2) | JP5116770B2 (ja) |
| KR (1) | KR101062558B1 (ja) |
| CN (1) | CN101097511B (ja) |
| TW (1) | TWI350094B (ja) |
| WO (1) | WO2008002828A2 (ja) |
Families Citing this family (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8229109B2 (en) | 2006-06-27 | 2012-07-24 | Intel Corporation | Modular reduction using folding |
| US7827471B2 (en) * | 2006-10-12 | 2010-11-02 | Intel Corporation | Determining message residue using a set of polynomials |
| US8689078B2 (en) | 2007-07-13 | 2014-04-01 | Intel Corporation | Determining a message residue |
| US8042025B2 (en) * | 2007-12-18 | 2011-10-18 | Intel Corporation | Determining a message residue |
| US7886214B2 (en) * | 2007-12-18 | 2011-02-08 | Intel Corporation | Determining a message residue |
| US9052985B2 (en) * | 2007-12-21 | 2015-06-09 | Intel Corporation | Method and apparatus for efficient programmable cyclic redundancy check (CRC) |
| US8144864B2 (en) * | 2007-12-28 | 2012-03-27 | Intel Corporation | Method for speeding up the computations for characteristic 2 elliptic curve cryptographic systems |
| US8312363B2 (en) * | 2008-12-16 | 2012-11-13 | Intel Corporation | Residue generation |
| US8392494B2 (en) * | 2009-06-26 | 2013-03-05 | Intel Corporation | Method and apparatus for performing efficient side-channel attack resistant reduction using montgomery or barrett reduction |
| CN102761414B (zh) * | 2011-04-26 | 2015-06-10 | 航天信息股份有限公司 | 一种sm3密码杂凑算法及确定其中的变量字的方法 |
| US9778910B2 (en) | 2015-03-20 | 2017-10-03 | Intel Corporation | Multiplier pipelining optimization with a bit folding correction |
| US9753692B2 (en) | 2015-03-25 | 2017-09-05 | Intel Corporation | Multiplier pipelining optimization with a postponed estimation correction |
| GB2533007B (en) | 2015-05-27 | 2016-10-19 | Imagination Tech Ltd | Efficient modulo calculation |
| US9942039B1 (en) * | 2016-09-16 | 2018-04-10 | ISARA Corporation | Applying modular reductions in cryptographic protocols |
| FR3070814B1 (fr) | 2017-09-05 | 2019-09-13 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Dispositif de reduction modulaire |
| CN109710308B (zh) | 2017-10-25 | 2023-03-31 | 阿里巴巴集团控股有限公司 | 任务的处理方法、装置和系统 |
| US11662978B2 (en) | 2020-06-04 | 2023-05-30 | PUFsecurity Corporation | Modular operation circuit adopting iterative calculations |
| TWI784406B (zh) * | 2020-06-04 | 2022-11-21 | 熵碼科技股份有限公司 | 採用迭代計算的模數運算電路 |
Family Cites Families (56)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3980874A (en) * | 1975-05-09 | 1976-09-14 | Burroughs Corporation | Binary to modulo M translation |
| JP2577914B2 (ja) * | 1987-06-11 | 1997-02-05 | クラリオン株式会社 | m系列符号発生器 |
| FR2622713A1 (fr) * | 1987-10-30 | 1989-05-05 | Thomson Csf | Circuit de calcul utilisant une arithmetique residuelle |
| FR2658932A1 (fr) | 1990-02-23 | 1991-08-30 | Koninkl Philips Electronics Nv | Procede de codage selon la methode dite rsa, par un microcontroleur et dispositif utilisant ce procede. |
| US5384786A (en) * | 1991-04-02 | 1995-01-24 | Cirrus Logic, Inc. | Fast and efficient circuit for identifying errors introduced in Reed-Solomon codewords |
| US5274707A (en) * | 1991-12-06 | 1993-12-28 | Roger Schlafly | Modular exponentiation and reduction device and method |
| US5642367A (en) * | 1994-02-07 | 1997-06-24 | Mitsubishi Semiconductor America, Inc. | Finite field polynomial processing module for error control coding |
| US5671377A (en) * | 1994-07-19 | 1997-09-23 | David Sarnoff Research Center, Inc. | System for supplying streams of data to multiple users by distributing a data stream to multiple processors and enabling each user to manipulate supplied data stream |
| US7190681B1 (en) * | 1996-07-10 | 2007-03-13 | Wu William W | Error coding in asynchronous transfer mode, internet and satellites |
| US6128766A (en) * | 1996-11-12 | 2000-10-03 | Pmc-Sierra Ltd. | High speed cyclic redundancy check algorithm |
| US5942005A (en) * | 1997-04-08 | 1999-08-24 | International Business Machines Corporation | Method and means for computationally efficient error and erasure correction in linear cyclic codes |
| JP2001527673A (ja) * | 1997-05-04 | 2001-12-25 | フォートレス ユー アンド ティー リミティド | モントゴメリー乗算に基づくモジュラ乗算及び累乗の改善された装置と方法 |
| US6484192B1 (en) * | 1998-01-29 | 2002-11-19 | Toyo Communication Equipment Co., Ltd. | Root finding method and root finding circuit of quadratic polynomial over finite field |
| US6223320B1 (en) * | 1998-02-10 | 2001-04-24 | International Business Machines Corporation | Efficient CRC generation utilizing parallel table lookup operations |
| CA2267721C (en) * | 1998-03-26 | 2002-07-30 | Nippon Telegraph And Telephone Corporation | Scheme for fast realization of encryption, decryption and authentication |
| US6530057B1 (en) * | 1999-05-27 | 2003-03-04 | 3Com Corporation | High speed generation and checking of cyclic redundancy check values |
| GB2360177B (en) * | 2000-03-07 | 2003-08-06 | 3Com Corp | Fast frame error checker for multiple byte digital data frames |
| JP3926532B2 (ja) * | 2000-03-16 | 2007-06-06 | 株式会社日立製作所 | 情報処理装置、情報処理方法、及びカード部材 |
| GB0013355D0 (en) * | 2000-06-01 | 2000-07-26 | Tao Group Ltd | Parallel modulo arithmetic using bitwise logical operations |
| US6721771B1 (en) * | 2000-08-28 | 2004-04-13 | Sun Microsystems, Inc. | Method for efficient modular polynomial division in finite fields f(2{circumflex over ( )}m) |
| US6609410B2 (en) * | 2000-09-29 | 2003-08-26 | Spalding Sports Worldwide, Inc. | High strain rate tester for materials used in sports balls |
| US6732317B1 (en) * | 2000-10-23 | 2004-05-04 | Sun Microsystems, Inc. | Apparatus and method for applying multiple CRC generators to CRC calculation |
| JP3785044B2 (ja) * | 2001-01-22 | 2006-06-14 | 株式会社東芝 | べき乗剰余計算装置、べき乗剰余計算方法及び記録媒体 |
| US20020144208A1 (en) * | 2001-03-30 | 2002-10-03 | International Business Machines Corporation | Systems and methods for enabling computation of CRC' s N-bit at a time |
| US7027597B1 (en) * | 2001-09-18 | 2006-04-11 | Cisco Technologies, Inc. | Pre-computation and dual-pass modular arithmetic operation approach to implement encryption protocols efficiently in electronic integrated circuits |
| US7027598B1 (en) * | 2001-09-19 | 2006-04-11 | Cisco Technology, Inc. | Residue number system based pre-computation and dual-pass arithmetic modular operation approach to implement encryption protocols efficiently in electronic integrated circuits |
| US7458006B2 (en) * | 2002-02-22 | 2008-11-25 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Methods for computing the CRC of a message from the incremental CRCs of composite sub-messages |
| US6904558B2 (en) * | 2002-02-22 | 2005-06-07 | Agilent Technologies, Inc. | Methods for computing the CRC of a message from the incremental CRCs of composite sub-messages |
| JP3930479B2 (ja) * | 2002-04-22 | 2007-06-13 | 富士通株式会社 | 誤り検出符号化及び復号装置並びに除算装置 |
| US7512230B2 (en) * | 2002-04-30 | 2009-03-31 | She Alfred C | Method and apparatus of fast modular reduction |
| US7461115B2 (en) * | 2002-05-01 | 2008-12-02 | Sun Microsystems, Inc. | Modular multiplier |
| US7187770B1 (en) * | 2002-07-16 | 2007-03-06 | Cisco Technology, Inc. | Method and apparatus for accelerating preliminary operations for cryptographic processing |
| US7343541B2 (en) * | 2003-01-14 | 2008-03-11 | Broadcom Corporation | Data integrity in protocol offloading |
| US7243289B1 (en) * | 2003-01-25 | 2007-07-10 | Novell, Inc. | Method and system for efficiently computing cyclic redundancy checks |
| US7058787B2 (en) * | 2003-05-05 | 2006-06-06 | Stmicroelectronics S.R.L. | Method and circuit for generating memory addresses for a memory buffer |
| US7373514B2 (en) * | 2003-07-23 | 2008-05-13 | Intel Corporation | High-performance hashing system |
| JP2007511982A (ja) * | 2003-11-19 | 2007-05-10 | ハネウェル・インターナショナル・インコーポレーテッド | 隠しデータをチェックすることを用いたメッセージ・エラーの確認 |
| US7543142B2 (en) * | 2003-12-19 | 2009-06-02 | Intel Corporation | Method and apparatus for performing an authentication after cipher operation in a network processor |
| US20050149744A1 (en) * | 2003-12-29 | 2005-07-07 | Intel Corporation | Network processor having cryptographic processing including an authentication buffer |
| US7171604B2 (en) * | 2003-12-30 | 2007-01-30 | Intel Corporation | Method and apparatus for calculating cyclic redundancy check (CRC) on data using a programmable CRC engine |
| US7529924B2 (en) * | 2003-12-30 | 2009-05-05 | Intel Corporation | Method and apparatus for aligning ciphered data |
| US7543214B2 (en) * | 2004-02-13 | 2009-06-02 | Marvell International Ltd. | Method and system for performing CRC |
| US20060059219A1 (en) * | 2004-09-16 | 2006-03-16 | Koshy Kamal J | Method and apparatus for performing modular exponentiations |
| US7590930B2 (en) * | 2005-05-24 | 2009-09-15 | Intel Corporation | Instructions for performing modulo-2 multiplication and bit reflection |
| US7707483B2 (en) * | 2005-05-25 | 2010-04-27 | Intel Corporation | Technique for performing cyclic redundancy code error detection |
| US20070083585A1 (en) * | 2005-07-25 | 2007-04-12 | Elliptic Semiconductor Inc. | Karatsuba based multiplier and method |
| US7958436B2 (en) * | 2005-12-23 | 2011-06-07 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
| US20070157030A1 (en) * | 2005-12-30 | 2007-07-05 | Feghali Wajdi K | Cryptographic system component |
| US8229109B2 (en) | 2006-06-27 | 2012-07-24 | Intel Corporation | Modular reduction using folding |
| US7827471B2 (en) * | 2006-10-12 | 2010-11-02 | Intel Corporation | Determining message residue using a set of polynomials |
| US7925011B2 (en) * | 2006-12-14 | 2011-04-12 | Intel Corporation | Method for simultaneous modular exponentiations |
| US8689078B2 (en) | 2007-07-13 | 2014-04-01 | Intel Corporation | Determining a message residue |
| US8042025B2 (en) | 2007-12-18 | 2011-10-18 | Intel Corporation | Determining a message residue |
| US7886214B2 (en) * | 2007-12-18 | 2011-02-08 | Intel Corporation | Determining a message residue |
| US9052985B2 (en) * | 2007-12-21 | 2015-06-09 | Intel Corporation | Method and apparatus for efficient programmable cyclic redundancy check (CRC) |
| US8189792B2 (en) * | 2007-12-28 | 2012-05-29 | Intel Corporation | Method and apparatus for performing cryptographic operations |
-
2006
- 2006-06-27 US US11/476,432 patent/US8229109B2/en not_active Expired - Fee Related
- 2006-12-30 CN CN2006101728399A patent/CN101097511B/zh not_active Expired - Fee Related
-
2007
- 2007-06-21 WO PCT/US2007/071829 patent/WO2008002828A2/en not_active Ceased
- 2007-06-21 EP EP07812243A patent/EP2033357A2/en not_active Withdrawn
- 2007-06-21 JP JP2009530713A patent/JP5116770B2/ja not_active Expired - Fee Related
- 2007-06-21 KR KR1020087031396A patent/KR101062558B1/ko not_active Expired - Fee Related
- 2007-06-23 TW TW096122784A patent/TWI350094B/zh not_active IP Right Cessation
-
2012
- 2012-07-28 JP JP2012167841A patent/JP5378579B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP5378579B2 (ja) | 2013-12-25 |
| TW200822664A (en) | 2008-05-16 |
| TWI350094B (en) | 2011-10-01 |
| EP2033357A2 (en) | 2009-03-11 |
| CN101097511B (zh) | 2011-07-27 |
| WO2008002828A2 (en) | 2008-01-03 |
| JP2009540394A (ja) | 2009-11-19 |
| US8229109B2 (en) | 2012-07-24 |
| JP2012234199A (ja) | 2012-11-29 |
| CN101097511A (zh) | 2008-01-02 |
| KR20090017637A (ko) | 2009-02-18 |
| US20070297601A1 (en) | 2007-12-27 |
| WO2008002828A3 (en) | 2008-02-21 |
| KR101062558B1 (ko) | 2011-09-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5116770B2 (ja) | フォールディングを用いるモジュール削減 | |
| US8666062B2 (en) | Method and apparatus for performing finite field calculations | |
| JP3939658B2 (ja) | モジュラー乗算を行うための装置、および、モジュラー乗算を行うための算術演算装置 | |
| CN101194457B (zh) | 随机模数化多项式约简方法及其硬件 | |
| WO2008002822A2 (en) | Mulptiplying two numbers | |
| EP0933695A2 (en) | IC card equipped with elliptic curve encryption processing facility | |
| TWI553548B (zh) | 加密計算方法、裝置以及電腦軟體產品 | |
| JP5182364B2 (ja) | サイドチャネル攻撃に対する耐タンパ性を有する暗号処理方法 | |
| Seo et al. | Binary and prime field multiplication for public key cryptography on embedded microprocessors | |
| US6546104B1 (en) | Montgomery reduction apparatus | |
| Will et al. | Computing mod without mod | |
| JP5553773B2 (ja) | 楕円曲線上の点のスカラー倍を計算する装置及び方法 | |
| CN111385092B (zh) | 使用信息盲化的密码装置及其密码处理方法 | |
| US20090136025A1 (en) | Method for scalarly multiplying points on an elliptic curve | |
| KR101977873B1 (ko) | 하드웨어 구현된 모듈러 역원 모듈 | |
| CN117134917B (zh) | 一种用于椭圆曲线加密的快速模运算方法和装置 | |
| CN114706557A (zh) | 一种asic芯片及蒙哥马利模乘的实现方法和装置 | |
| KR101805840B1 (ko) | 암호 계산을 위한 방법, 장치 및 비일시적이고 컴퓨터로 독출가능한 매체 | |
| JP4629972B2 (ja) | ベクトル演算装置及び分割値演算装置及び楕円曲線スカラー倍演算装置及び楕円暗号演算装置及びベクトル演算方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
| JP2002196671A (ja) | 暗号プロトコル実行用計算装置 | |
| WO2023287427A1 (en) | A method and system for computing large-degree isogenies with an odd degree | |
| CN120687064A (zh) | 一种大整数乘法优化方法 | |
| JP2007510171A (ja) | 一定の時間間隔で乱数を生成するための方法および関連デバイス |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110729 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20111028 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20111107 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111128 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120402 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120728 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20120918 |
|
| 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: 20121015 |
|
| 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: 20121016 |
|
| 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: 20151026 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151026 Year of fee payment: 3 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |