JP5866128B2 - 算術プロセッサ - Google Patents
算術プロセッサ Download PDFInfo
- Publication number
- JP5866128B2 JP5866128B2 JP2014139376A JP2014139376A JP5866128B2 JP 5866128 B2 JP5866128 B2 JP 5866128B2 JP 2014139376 A JP2014139376 A JP 2014139376A JP 2014139376 A JP2014139376 A JP 2014139376A JP 5866128 B2 JP5866128 B2 JP 5866128B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- arithmetic
- controller
- bit
- alu
- 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
- 239000013598 vector Substances 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims 1
- 210000004027 cell Anatomy 0.000 description 27
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- CIWBSHSKHKDKBQ-JLAZNSOCSA-N Ascorbic acid Chemical compound OC[C@H](O)[C@H]1OC(=O)C(O)=C1O CIWBSHSKHKDKBQ-JLAZNSOCSA-N 0.000 description 6
- 238000000034 method Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 1
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 1
- OFFWOVJBSQMVPI-RMLGOCCBSA-N Kaletra Chemical compound N1([C@@H](C(C)C)C(=O)N[C@H](C[C@H](O)[C@H](CC=2C=CC=CC=2)NC(=O)COC=2C(=CC=CC=2C)C)CC=2C=CC=CC=2)CCCNC1=O.N([C@@H](C(C)C)C(=O)N[C@H](C[C@H](O)[C@H](CC=1C=CC=CC=1)NC(=O)OCC=1SC=NC=1)CC=1C=CC=CC=1)C(=O)N(C)CC1=CSC(C(C)C)=N1 OFFWOVJBSQMVPI-RMLGOCCBSA-N 0.000 description 1
- 210000004460 N cell Anatomy 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 210000003888 boundary cell Anatomy 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005562 fading Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- 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
-
- 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/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/724—Finite field arithmetic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/382—Reconfigurable for different fixed word lengths
-
- 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/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
Description
(a)一群の関連する算術演算をそれぞれ実行する複数の算術回路を有する論理演算装置であって、オペランドデータを受信するオペランド入力データバスと、前記算術演算の結果を戻す結果データ出力バスとを有する論理演算装置と、
(b)前記オペランドデータバスおよび前記結果データバスに結合されたレジスタファイルと、
(c)前記ALUおよび前記レジスタファイルに結合された制御装置であって、算術演算を要求するモード制御信号に応答して前記複数の算術回路の1つを選択し、かつ前記レジスタファイルと前記ALUの間でデータアクセスを制御することにより、前記レジスタファイルが前記算術回路によって共用されるようにする制御装置とを含む算術プロセッサが提供される。
できる。典型的には、算術プロセッサ1は既存のホストコンピュータシステムで利用され、コントローラ8はこのホストコンピュータシステムから制御信号を受信し、適正なホストバスインタフェースを介して、ホストデータバスにデータを通信する。このようなインタフェースの詳細は当業者とって周知のことであり、説明は省略する。
ALU4のオペレーションは、有限体乗算のような具体的な算術演算を参照することにより最も良く理解することができる。ここで、2つの元aおよびbの積Cを考察することにする。ここで、aおよびbはビットベクトルであり、bは多項式表現でb=(b0,…bn-1)の形態となり、aは多項式表現でa=(a0,…an-1)の形態となる。モジュラスビットベクトルmは、m=(m0,…mn)の形態を有する。モジュラスレジスタは、モジュラスを表すのに必要なビット数より1ビット多い、ことに留意されたい。あるいはまた、最上位ビットmnが1であるので、この最上位ビットを暗黙に定義することができ、mを(m0,…mn-1)で表すこともできる。F2nにおいて、乗算は、次のような疑似コードにより明確に記述される一連のステップとして実装することができる。
For ifrom n-1 to 0 do
For jfrom n-1 to 0 do {cj=ci-1+bn-1a i +cn-1mj }
この乗算を実行する際には、MSB(most significant bit)からLSB(least significant bit)の順に、被乗数と乗数のbiの各ビットとの部分積を形成する。その前の
部分積のMSBがセットされた場合には、部分積はモジュラスによって簡約(reduce)される。
有限体F2n中の乗算に関連して、回路を説明したが、その他の計算オペレーションも容易にパフォームすることができる。有限体加算は桁上げが生じないので、この点で、整数算術より有利である。有限体サム(sum)の計算では、有限体中の2つの元aおよびb
の加算が、単に、aとbのXORであるので、XORゲートを注目レジスタの各セルに導入するだけでよい。したがって、図5に戻ると、入力100はセルBiから第1の加算器54に供給され、第2の加算器56は簡約に使用される。ついで、加算器54からの出力はセルCiに直接書き込まれる。オペランドがレジスタaおよびbに移動された後で、単一のクロックサイクルで、加算をパフォームすることができる。その加算をALUでパフォームするのは可能であり、その結果をレジスタファイルの汎用レジスタにライトバックするのも可能である。整数加算では、加算器54は整数加算器のビットスライスであり、整数加算結果に基づきモジュラオーバフローか否かを検査しなければならない。この状態が生じた場合には、整数減算器のビットスライスである加算器56は、その結果を簡約するのに用いられる。
ある数を二乗するには、異なる2つの数の乗算と同じ時間でパフォームすることができる。多項式基底における二乗は、特定の既約(irreducible)が二乗展開と明示的に結線された(hardwired)場合は、単一のクロックサイクルでパフォームすることができる。あるいはまた、同じ入力を乗算して二乗をパフォームすることができる。
F2nの有限体元の反転は、ユークリッドの互除法を使用してパフォームすることができ、また、追加のコントロールロジックを有する4つの特殊レジスタを利用してパフォームすることができる。この反転は、シフトが加算と同時に行われる場合(これは加算の出力を次のレジスタセルに結線することによって容易に実装される)には、2nサイクルで完了する。
ルURiおよびULiに書き込まれるかどうかを決定する。入力は隣接するセルまたは出力122からの左または右シフトである。制御信号Bは後程記載する状態表によって決定される。ULレジスタ116またはLLレジスタ118では、セルULiおよびLLiはXORゲート126でXOR演算されて、出力128が生じる。制御信号130は、可能な2つの入力のうち1つがセルULiおよびLLiに書き込まれるかどうかを決定する。入力は隣接するセル(i−1)または出力128からの左シフトである。この場合も、制御信号130は後程記載する状態表によって決定される。
Decku デクリメントku ku
decDelta デクリメントΔ
incDelta インクリメントΔ
toggle トグルアップ/ダウン
lsUL 左シフト左上レジスタ
lsLL 左シフト左下レジスタ
lsUR 左シフト右上レジスタ
lsLR 左シフト右下レジスタ
rsUR 右シフト右上レジスタ
rsLR 右シフト左下レジスタ
outLR 出力右下レジスタ
outUR 出力右上レジスタ
dadd-lsLL ダウンXORおよび左シフト左下レジスタ
uadd-lsUL アップXORおよび左シフト左上レジスタ
インバータのオペレーションの概要を表す状態表は次のようになっており、MuおよびClはそれぞれレジスタULおよびLLの上位ビットであり、MuおよびClは現在の状態を決定する。レジスタおよびカウンタ上でアクションがパフォームされると、これによりインバータは新しい状態となる。このプロセスは、kuまたはklが0になるまで繰り返され、右レジスタRLまたはRUの一方はg−1を含み、もう一方はモジュラス自体を含むことになり、これは、後続の乗算または反転演算で使用するために、レジスタmにリストア(restore)することができる。
多項式表現と整数表現は非常に良く似ていることから、ALUでハードウェアを共有することが可能でなる。加算では、整数算術は、桁上げが必要であることから、複雑になるだけである。ALUの整数算術演算は、例えば乗算演算を利用すれば、最もよく説明することができる。
M=0
For ifrom 0 to n-1 do
Cext←C
For jfrom 0 to n-1 do
cj=(bi(aj)+mj+cj)mod2
mj+1=(bj(aj)+mj+cj)/2
ここで、
Cext←C:For j from n-1 to 0 do
cj−1=cj
cj−1 ext=cj ext
となる。
2 レジスタファイル
4 有限体/整数エンジン
8 コントローラ
Claims (8)
- 暗号化オペレーションを実行するための算術プロセッサであって、
有限体において体オペレーションを実行するように構成された算術回路を含む算術論理ユニット(ALU)であって、前記回路は、前記体オペレーションにおけるステップを介して前記ALUをシーケンス化するための第1のコントローラと、少なくとも1つの制御ビットを前記第1のコントローラに提供するための少なくとも1つのデータ入力バスとを含む、ALUと、
1つ以上のオペランドの表現を含む1つ以上の汎用レジスタを含むレジスタファイルと、
前記1つ以上のオペランドに対する前記ALUの計算オペレーションを制御するために、前記ALUに命令を提供する第2のコントローラであって、前記第2のコントローラは、前記第1のコントローラと協働して、前記算術プロセッサにおけるプログラム命令を介して前記第2のコントローラによって受信された体サイズ制御信号によって示される前記有限体のサイズの変動に応答して、異なるオペランドベクトルサイズに適応するように前記ALUのオペレーションを制御し、前記第1のコントローラは、用いられている有限体のサイズを決定するために前記少なくとも1つの制御ビットを監視し、かつ、それ自身の制御レジスタにおいてカウンタを実装することにより、繰返し回数を制御する、第2のコントローラと
を含む、算術プロセッサ。 - 前記算術回路は、有限体を含み、整数算術回路および前記第2のコントローラは、有限体計算またはモジュラ整数計算のいずれかの間の選択のためのモード選択制御を受信する、請求項1に記載のプロセッサ。
- 前記1つ以上の汎用レジスタは、最大の予想可能な体サイズを扱うために十分に大きい幅を有するように選択される、請求項1に記載のプロセッサ。
- 前記算術回路は、少なくとも1つの特殊目的レジスタと、1つ以上のビット入力データバスによってそれに接続された複数のサブALUとを含み、前記少なくとも1つの制御ビットのうちの1つを有する前記少なくとも1つの特殊目的レジスタは、用いられている有限体のサイズを決定するために、前記第1のコントローラによって監視され、前記第2のコントローラは、用いられている前記有限体のサイズを前記ALUに提供する、請求項1に記載のプロセッサ。
- 前記少なくとも1つの特殊目的レジスタは、前記表現よりも大きい長さを有し、前記少なくとも1つの特殊目的レジスタを充填するために、残りのセルにパディングが追加される、請求項4に記載のプロセッサ。
- 前記少なくとも1つの制御ビットは、前記少なくとも1つの特殊目的レジスタのそれぞれにおける上位ビットに配置される、請求項5に記載のプロセッサ。
- 前記少なくとも1つの特殊目的レジスタのそれぞれは、前記表現よりも大きい長さを有し、前記少なくとも1つの特殊目的レジスタのそれぞれを充填するために、残りのセルにパディングが追加される、請求項4に記載のプロセッサ。
- 前記少なくとも1つの制御ビットは、前記表現の最上位ビットに隣接して、前記少なくとも1つの特殊目的レジスタのそれぞれにおいて配置される、請求項7に記載のプロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9707861.2 | 1997-04-18 | ||
GBGB9707861.2A GB9707861D0 (en) | 1997-04-18 | 1997-04-18 | Arithmetic processor |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011049610A Division JP2011134346A (ja) | 1997-04-18 | 2011-03-07 | 算術プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014219994A JP2014219994A (ja) | 2014-11-20 |
JP5866128B2 true JP5866128B2 (ja) | 2016-02-17 |
Family
ID=10810977
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP54461898A Withdrawn JP2001520775A (ja) | 1997-04-18 | 1998-04-20 | 算術プロセッサ |
JP2007243107A Expired - Lifetime JP4980834B2 (ja) | 1997-04-18 | 2007-09-19 | 算術プロセッサ |
JP2011049610A Withdrawn JP2011134346A (ja) | 1997-04-18 | 2011-03-07 | 算術プロセッサ |
JP2014139376A Expired - Lifetime JP5866128B2 (ja) | 1997-04-18 | 2014-07-07 | 算術プロセッサ |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP54461898A Withdrawn JP2001520775A (ja) | 1997-04-18 | 1998-04-20 | 算術プロセッサ |
JP2007243107A Expired - Lifetime JP4980834B2 (ja) | 1997-04-18 | 2007-09-19 | 算術プロセッサ |
JP2011049610A Withdrawn JP2011134346A (ja) | 1997-04-18 | 2011-03-07 | 算術プロセッサ |
Country Status (8)
Country | Link |
---|---|
US (5) | US6266717B1 (ja) |
EP (2) | EP0976027B1 (ja) |
JP (4) | JP2001520775A (ja) |
AU (1) | AU7329198A (ja) |
CA (1) | CA2286647C (ja) |
DE (2) | DE69841492D1 (ja) |
GB (1) | GB9707861D0 (ja) |
WO (1) | WO1998048345A1 (ja) |
Families Citing this family (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7483935B2 (en) * | 1995-08-16 | 2009-01-27 | Microunity Systems Engineering, Inc. | System and method to implement a matrix multiply unit of a broadband processor |
GB9707861D0 (en) * | 1997-04-18 | 1997-06-04 | Certicom Corp | Arithmetic processor |
US5864703A (en) | 1997-10-09 | 1999-01-26 | Mips Technologies, Inc. | Method for providing extended precision in SIMD vector arithmetic operations |
US7197625B1 (en) * | 1997-10-09 | 2007-03-27 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US6366940B1 (en) * | 1998-03-02 | 2002-04-02 | Matsushita Electric Industrial Co., Ltd. | High-speed modular multiplication apparatus achieved in small circuit |
US6199087B1 (en) * | 1998-06-25 | 2001-03-06 | Hewlett-Packard Company | Apparatus and method for efficient arithmetic in finite fields through alternative representation |
TW421756B (en) * | 1998-10-01 | 2001-02-11 | Wei Shiue Wen | Arithmetic operation circuit of finite field GF(2<m>) |
US6397241B1 (en) * | 1998-12-18 | 2002-05-28 | Motorola, Inc. | Multiplier cell and method of computing |
AU3286399A (en) * | 1998-12-18 | 2000-07-12 | Motorola, Inc. | Circuit and method of cryptographic multiplication |
FR2788616B1 (fr) * | 1999-01-15 | 2001-04-20 | St Microelectronics Sa | Circuit de multiplication dans un corps de galois |
US7277540B1 (en) * | 1999-01-20 | 2007-10-02 | Kabushiki Kaisha Toshiba | Arithmetic method and apparatus and crypto processing apparatus for performing multiple types of cryptography |
JP4484002B2 (ja) * | 1999-10-04 | 2010-06-16 | ネッツエスアイ東洋株式会社 | 演算プロセッサ |
US6701336B1 (en) * | 1999-11-12 | 2004-03-02 | Maxtor Corporation | Shared galois field multiplier |
AU5871201A (en) * | 2000-05-15 | 2001-11-26 | M-Systems Flash Disk Pioneers Ltd. | Extending the range of computational fields of integers |
US8176108B2 (en) * | 2000-06-20 | 2012-05-08 | International Business Machines Corporation | Method, apparatus and computer program product for network design and analysis |
US7069287B2 (en) * | 2000-09-19 | 2006-06-27 | Worcester Polytechnic Institute | Method for efficient computation of odd characteristic extension fields |
DE10061997A1 (de) * | 2000-12-13 | 2002-07-18 | Infineon Technologies Ag | Kryptographieprozessor |
FR2818847A1 (fr) * | 2000-12-26 | 2002-06-28 | St Microelectronics Sa | Circuit logique a polarite variable |
US7162621B2 (en) | 2001-02-21 | 2007-01-09 | Mips Technologies, Inc. | Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration |
US7181484B2 (en) * | 2001-02-21 | 2007-02-20 | Mips Technologies, Inc. | Extended-precision accumulation of multiplier output |
US7599981B2 (en) * | 2001-02-21 | 2009-10-06 | Mips Technologies, Inc. | Binary polynomial multiplier |
US7711763B2 (en) * | 2001-02-21 | 2010-05-04 | Mips Technologies, Inc. | Microprocessor instructions for performing polynomial arithmetic operations |
WO2002073395A2 (en) * | 2001-03-09 | 2002-09-19 | The Athena Group, Inc. | A method and apparatus for multiplication and/or modular reduction processing |
US7233998B2 (en) * | 2001-03-22 | 2007-06-19 | Sony Computer Entertainment Inc. | Computer architecture and software cells for broadband networks |
WO2003040911A2 (fr) * | 2001-06-13 | 2003-05-15 | Zencod S.A. | Carte d'acceleration de traitement cryptographique |
KR20030003435A (ko) * | 2001-06-30 | 2003-01-10 | 주식회사 시큐리티테크놀로지스 | 암호시스템에 사용하기 위한 최적의 역원을 구하기 위한방법 및 장치 |
WO2003021423A2 (en) | 2001-09-04 | 2003-03-13 | Microunity Systems Engineering, Inc. | System and method for performing multiplication |
US7206410B2 (en) * | 2001-10-10 | 2007-04-17 | Stmicroelectronics S.R.L. | Circuit for the inner or scalar product computation in Galois fields |
US7269615B2 (en) * | 2001-12-18 | 2007-09-11 | Analog Devices, Inc. | Reconfigurable input Galois field linear transformer system |
US7283628B2 (en) | 2001-11-30 | 2007-10-16 | Analog Devices, Inc. | Programmable data encryption engine |
US7895253B2 (en) * | 2001-11-30 | 2011-02-22 | Analog Devices, Inc. | Compound Galois field engine and Galois field divider and square root engine and method |
US7177891B2 (en) * | 2002-10-09 | 2007-02-13 | Analog Devices, Inc. | Compact Galois field multiplier engine |
US7082452B2 (en) * | 2001-11-30 | 2006-07-25 | Analog Devices, Inc. | Galois field multiply/multiply-add/multiply accumulate |
US6766345B2 (en) | 2001-11-30 | 2004-07-20 | Analog Devices, Inc. | Galois field multiplier system |
US7508937B2 (en) * | 2001-12-18 | 2009-03-24 | Analog Devices, Inc. | Programmable data encryption engine for advanced encryption standard algorithm |
DE10164416A1 (de) * | 2001-12-29 | 2003-07-10 | Philips Intellectual Property | Verfahren zum Multiplizieren zweier Faktoren aus dem Galois-Feld sowie Multiplizierer zum Durchführen des Verfahrens |
CA2369537C (en) * | 2001-12-31 | 2013-07-23 | Certicom Corp. | Method and apparatus for performing finite field calculations |
US6941446B2 (en) * | 2002-01-21 | 2005-09-06 | Analog Devices, Inc. | Single instruction multiple data array cell |
US7000090B2 (en) * | 2002-01-21 | 2006-02-14 | Analog Devices, Inc. | Center focused single instruction multiple data (SIMD) array system |
US6865661B2 (en) | 2002-01-21 | 2005-03-08 | Analog Devices, Inc. | Reconfigurable single instruction multiple data array |
JP2003244128A (ja) * | 2002-02-21 | 2003-08-29 | Hitachi Ltd | 暗号復号通信用半導体装置および記録再生機器 |
US7343389B2 (en) * | 2002-05-02 | 2008-03-11 | Intel Corporation | Apparatus and method for SIMD modular multiplication |
JP2004078053A (ja) | 2002-08-22 | 2004-03-11 | Sony Corp | 暗号化装置 |
US7243292B1 (en) * | 2002-10-17 | 2007-07-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Error correction using finite fields of odd characteristics on binary hardware |
US7197527B2 (en) * | 2002-10-17 | 2007-03-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Efficient arithmetic in finite fields of odd characteristic on binary hardware |
US7028247B2 (en) * | 2002-12-25 | 2006-04-11 | Faraday Technology Corp. | Error correction code circuit with reduced hardware complexity |
US7139787B2 (en) * | 2003-01-30 | 2006-11-21 | Sun Microsystems, Inc. | Multiply execution unit for performing integer and XOR multiplication |
CN100530157C (zh) * | 2003-04-08 | 2009-08-19 | 阿纳洛格装置公司 | 伽罗瓦域线性变换器格栅系统 |
US7693928B2 (en) * | 2003-04-08 | 2010-04-06 | Analog Devices, Inc. | Galois field linear transformer trellis system |
US7139900B2 (en) * | 2003-06-23 | 2006-11-21 | Intel Corporation | Data packet arithmetic logic devices and methods |
US8194855B2 (en) * | 2003-06-30 | 2012-06-05 | Oracle America, Inc. | Method and apparatus for implementing processor instructions for accelerating public-key cryptography |
US7634666B2 (en) * | 2003-08-15 | 2009-12-15 | Cityu Research Limited | Crypto-engine for cryptographic processing of data |
US7421076B2 (en) * | 2003-09-17 | 2008-09-02 | Analog Devices, Inc. | Advanced encryption standard (AES) engine with real time S-box generation |
US7171544B2 (en) * | 2003-12-15 | 2007-01-30 | International Business Machines Corporation | Run-time parallelization of loops in computer programs by access patterns |
KR100574965B1 (ko) * | 2004-01-19 | 2006-05-02 | 삼성전자주식회사 | 유한체 곱셈기 |
DE102004013484B3 (de) * | 2004-03-18 | 2005-08-11 | Infineon Technologies Ag | Rechenwerk |
WO2005114802A2 (en) * | 2004-05-11 | 2005-12-01 | North Dakota State University | Optimal signed-digit recoding for elliptic curve cryptography |
US7512647B2 (en) * | 2004-11-22 | 2009-03-31 | Analog Devices, Inc. | Condensed Galois field computing system |
JP2006195563A (ja) * | 2005-01-11 | 2006-07-27 | Renesas Technology Corp | 演算処理装置 |
CA2935823C (en) * | 2005-01-18 | 2019-01-15 | Certicom Corp. | Accelerated verification of digital signatures and public keys |
DE102005028662B4 (de) * | 2005-03-04 | 2022-06-02 | Ihp Gmbh - Innovations For High Performance Microelectronics / Leibniz-Institut Für Innovative Mikroelektronik | Verfahren und Vorrichtung zum Berechnen einer Polynom-Multiplikation, insbesondere für die elliptische Kurven-Kryptographie |
US8024551B2 (en) | 2005-10-26 | 2011-09-20 | Analog Devices, Inc. | Pipelined digital signal processor |
US8285972B2 (en) * | 2005-10-26 | 2012-10-09 | Analog Devices, Inc. | Lookup table addressing system and method |
US7728744B2 (en) * | 2005-10-26 | 2010-06-01 | Analog Devices, Inc. | Variable length decoder system and method |
US7634596B2 (en) * | 2006-06-02 | 2009-12-15 | Microchip Technology Incorporated | Dynamic peripheral function remapping to external input-output connections of an integrated circuit device |
US7664915B2 (en) * | 2006-12-19 | 2010-02-16 | Intel Corporation | High performance raid-6 system architecture with pattern matching |
DE102007007699A1 (de) * | 2007-02-09 | 2008-08-14 | IHP GmbH - Innovations for High Performance Microelectronics/Institut für innovative Mikroelektronik | Reduktion von Seiten-Kanal-Informationen durch interagierende Krypto-Blocks |
US8271570B2 (en) * | 2007-06-30 | 2012-09-18 | Intel Corporation | Unified integer/galois field (2m) multiplier architecture for elliptic-curve crytpography |
US7929707B1 (en) * | 2007-09-06 | 2011-04-19 | Elcomsoft Co. Ltd. | Use of graphics processors as parallel math co-processors for password recovery |
US8301990B2 (en) * | 2007-09-27 | 2012-10-30 | Analog Devices, Inc. | Programmable compute unit with internal register and bit FIFO for executing Viterbi code |
WO2009055906A1 (en) * | 2007-11-02 | 2009-05-07 | Certicom Corp. | Signed montgomery arithmetic |
US8359479B2 (en) * | 2008-07-17 | 2013-01-22 | Lsi Corporation | High performance arithmetic logic unit (ALU) for cryptographic applications with built-in countermeasures against side channel attacks |
CN101478785B (zh) * | 2009-01-21 | 2010-08-04 | 华为技术有限公司 | 资源池管理系统及信号处理方法 |
US9747105B2 (en) | 2009-12-17 | 2017-08-29 | Intel Corporation | Method and apparatus for performing a shift and exclusive or operation in a single instruction |
US8626811B2 (en) | 2010-04-30 | 2014-01-07 | Certicom Corp. | Method and apparatus for providing flexible bit-length moduli on a block Montgomery machine |
US9965387B1 (en) * | 2010-07-09 | 2018-05-08 | Cypress Semiconductor Corporation | Memory devices having embedded hardware acceleration and corresponding methods |
WO2012159191A1 (en) | 2011-05-20 | 2012-11-29 | Research In Motion Limited | Verifying passwords on a mobile device |
EP2715968A4 (en) | 2011-05-26 | 2015-08-12 | Certicom Corp | RANDOM FOR ENCRYPTION OPERATIONS |
CA2838203C (en) | 2011-06-06 | 2021-04-06 | Certicom Corp. | Squaring binary finite field elements |
CN102981801B (zh) * | 2012-11-07 | 2015-10-28 | 迈普通信技术股份有限公司 | 一种本地总线数据位宽的转换方法及装置 |
US9619207B1 (en) * | 2014-10-27 | 2017-04-11 | Altera Corporation | Circuitry and methods for implementing Galois-field reduction |
US11010166B2 (en) | 2016-03-31 | 2021-05-18 | Intel Corporation | Arithmetic logic unit with normal and accelerated performance modes using differing numbers of computational circuits |
CN109710308B (zh) * | 2017-10-25 | 2023-03-31 | 阿里巴巴集团控股有限公司 | 任务的处理方法、装置和系统 |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4216531A (en) * | 1978-11-17 | 1980-08-05 | Control Data Corporation | Finite field multiplier |
JPS60120439A (ja) * | 1983-12-05 | 1985-06-27 | Nec Corp | 演算処理装置 |
WO1985003371A1 (en) * | 1984-01-21 | 1985-08-01 | Sony Corporation | Circuit for calculating finite fields |
DE3631992A1 (de) † | 1986-03-05 | 1987-11-05 | Holger Sedlak | Kryptographie-verfahren und kryptographie-prozessor zur durchfuehrung des verfahrens |
JPS6382513A (ja) | 1986-09-26 | 1988-04-13 | Toshiba Corp | バレルシフタ |
FR2605818B1 (fr) * | 1986-10-27 | 1992-09-18 | Thomson Csf | Codeur-decodeur algebrique de codes en blocs reed solomon et bch, applicable aux telecommunications numeriques |
US5268584A (en) | 1988-11-28 | 1993-12-07 | The United States Of America As Represented By The Department Of Energy | Strong liquid-crystalline polymeric compositions |
US5077793A (en) | 1989-09-29 | 1991-12-31 | The Boeing Company | Residue number encryption and decryption system |
US5268854A (en) * | 1990-11-13 | 1993-12-07 | Kabushiki Kaisha Toshiba | Microprocessor with a function for three-dimensional graphic processing |
US5313530A (en) | 1991-03-05 | 1994-05-17 | Canon Kabushiki Kaisha | Calculating apparatus and method of encrypting/decrypting communication data by using the same |
JP3406914B2 (ja) | 1991-09-05 | 2003-05-19 | キヤノン株式会社 | 演算装置及びこれを備えた暗号化装置、復号装置 |
US5235614A (en) * | 1991-03-13 | 1993-08-10 | Motorola, Inc. | Method and apparatus for accommodating a variable number of communication channels in a spread spectrum communication system |
KR940001147B1 (ko) | 1991-03-20 | 1994-02-14 | 삼성전자 주식회사 | 부분체 GF(2^m/2)을 이용한 GF(2^m)상의 연산방법 및 장치 |
JP2693651B2 (ja) * | 1991-04-30 | 1997-12-24 | 株式会社東芝 | 並列プロセッサー |
WO1994015423A1 (en) | 1992-12-22 | 1994-07-07 | Telstra Corporation Limited | A cryptographic method |
JPH06268530A (ja) | 1993-03-16 | 1994-09-22 | Hitachi Ltd | 誤りパターン演算回路 |
DE69428627T2 (de) * | 1993-06-10 | 2002-08-08 | Koninkl Philips Electronics Nv | Dekodierer für Wörter variabler Länge mit hohem Durchfluss und Vorrichtung mit einem solchen Dekodierer |
US5497423A (en) | 1993-06-18 | 1996-03-05 | Matsushita Electric Industrial Co., Ltd. | Method of implementing elliptic curve cryptosystems in digital signatures or verification and privacy communication |
SG50474A1 (en) * | 1993-11-04 | 1998-07-20 | Cirrus Logic Inc | Finite field inversion |
US5555516A (en) | 1993-11-04 | 1996-09-10 | Cirrus Logic, Inc. | Multipurpose error correction calculation circuit |
JPH07175664A (ja) * | 1993-12-16 | 1995-07-14 | Dainippon Printing Co Ltd | コンパイラ装置 |
US5459681A (en) * | 1993-12-20 | 1995-10-17 | Motorola, Inc. | Special functions arithmetic logic unit method and apparatus |
JP3702475B2 (ja) | 1994-07-25 | 2005-10-05 | ソニー株式会社 | 回路自動生成装置 |
US5577069A (en) * | 1994-08-02 | 1996-11-19 | National Semiconductor Corporation | Signalling method and structure suitable for out-of-band information transfer in communication network |
FR2723455B1 (fr) * | 1994-08-05 | 1996-10-31 | Sgs Thomson Microelectronics | Circuit d'inversion d'elements d'un corps de galois |
GB9506574D0 (en) | 1995-03-30 | 1995-05-17 | Cryptech Systems Inc | Multiple bit multiplier |
US5627855A (en) * | 1995-05-25 | 1997-05-06 | Golden Bridge Technology, Inc. | Programmable two-part matched filter for spread spectrum |
US5778009A (en) * | 1995-06-14 | 1998-07-07 | Quantum Corporation | Dedicated ALU architecture for 10-bit Reed-Solomon error correction module |
US5737424A (en) | 1996-06-04 | 1998-04-07 | Software Security, Inc. | Method and system for secure distribution of protected data using elliptic curve systems |
JP2846860B2 (ja) * | 1996-10-01 | 1999-01-13 | ユニデン株式会社 | スペクトル拡散通信方式を用いた送信機、受信機、通信システム及び通信方法 |
GB9627069D0 (en) * | 1996-12-30 | 1997-02-19 | Certicom Corp | A method and apparatus for finite field multiplication |
GB9707861D0 (en) * | 1997-04-18 | 1997-06-04 | Certicom Corp | Arithmetic processor |
US5854759A (en) * | 1997-05-05 | 1998-12-29 | Rsa Data Security, Inc. | Methods and apparatus for efficient finite field basis conversion |
US6003057A (en) | 1997-12-24 | 1999-12-14 | Motorola, Inc. | Galois field arithmetic logic unit circuit |
US6199086B1 (en) | 1997-12-24 | 2001-03-06 | Motorola, Inc. | Circuit and method for decompressing compressed elliptic curve points |
US5982895A (en) | 1997-12-24 | 1999-11-09 | Motorola, Inc. | Finite field inverse circuit for use in an elliptic curve processor |
US6009450A (en) * | 1997-12-24 | 1999-12-28 | Motorola, Inc. | Finite field inverse circuit |
US5999959A (en) * | 1998-02-18 | 1999-12-07 | Quantum Corporation | Galois field multiplier |
US6088800A (en) | 1998-02-27 | 2000-07-11 | Mosaid Technologies, Incorporated | Encryption processor with shared memory interconnect |
-
1997
- 1997-04-18 GB GBGB9707861.2A patent/GB9707861D0/en active Pending
- 1997-12-24 US US08/997,964 patent/US6266717B1/en not_active Expired - Lifetime
- 1997-12-24 US US08/997,960 patent/US6230179B1/en not_active Expired - Lifetime
-
1998
- 1998-04-20 EP EP98920431A patent/EP0976027B1/en not_active Expired - Lifetime
- 1998-04-20 DE DE69841492T patent/DE69841492D1/de not_active Expired - Lifetime
- 1998-04-20 JP JP54461898A patent/JP2001520775A/ja not_active Withdrawn
- 1998-04-20 WO PCT/CA1998/000467 patent/WO1998048345A1/en active IP Right Grant
- 1998-04-20 AU AU73291/98A patent/AU7329198A/en not_active Abandoned
- 1998-04-20 DE DE69811877T patent/DE69811877T2/de not_active Expired - Lifetime
- 1998-04-20 CA CA2286647A patent/CA2286647C/en not_active Expired - Lifetime
- 1998-04-20 EP EP02027872.7A patent/EP1293891B2/en not_active Expired - Lifetime
-
1999
- 1999-10-14 US US09/418,217 patent/US6349318B1/en not_active Expired - Lifetime
-
2001
- 2001-12-21 US US10/023,934 patent/US6735611B2/en not_active Expired - Lifetime
-
2004
- 2004-05-04 US US10/837,749 patent/US7424504B2/en not_active Expired - Fee Related
-
2007
- 2007-09-19 JP JP2007243107A patent/JP4980834B2/ja not_active Expired - Lifetime
-
2011
- 2011-03-07 JP JP2011049610A patent/JP2011134346A/ja not_active Withdrawn
-
2014
- 2014-07-07 JP JP2014139376A patent/JP5866128B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69811877D1 (de) | 2003-04-10 |
EP0976027B1 (en) | 2003-03-05 |
US20020136402A1 (en) | 2002-09-26 |
EP1293891B8 (en) | 2010-04-14 |
DE69811877T2 (de) | 2003-12-18 |
US6230179B1 (en) | 2001-05-08 |
US6349318B1 (en) | 2002-02-19 |
US6266717B1 (en) | 2001-07-24 |
US6735611B2 (en) | 2004-05-11 |
JP2001520775A (ja) | 2001-10-30 |
EP1293891B2 (en) | 2017-04-12 |
DE69841492D1 (de) | 2010-03-25 |
JP2011134346A (ja) | 2011-07-07 |
JP2008059595A (ja) | 2008-03-13 |
CA2286647A1 (en) | 1998-10-29 |
US7424504B2 (en) | 2008-09-09 |
EP1293891A3 (en) | 2004-09-08 |
WO1998048345A1 (en) | 1998-10-29 |
EP1293891B1 (en) | 2010-02-03 |
CA2286647C (en) | 2015-01-13 |
JP4980834B2 (ja) | 2012-07-18 |
GB9707861D0 (en) | 1997-06-04 |
JP2014219994A (ja) | 2014-11-20 |
US20050044124A1 (en) | 2005-02-24 |
EP1293891A2 (en) | 2003-03-19 |
AU7329198A (en) | 1998-11-13 |
EP0976027A1 (en) | 2000-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5866128B2 (ja) | 算術プロセッサ | |
JP5266354B2 (ja) | ガロア拡大体・積算/積算加算・積和演算装置 | |
US6009450A (en) | Finite field inverse circuit | |
JP3605181B2 (ja) | 掛け算累算命令を使用したデータ処理 | |
JP2722413B2 (ja) | モンゴメリ法によるモジュラ乗算の実施方法 | |
JP2005250481A (ja) | 多重精度を支援する拡張型モンゴメリモジュラ掛け算器 | |
JPH1195981A (ja) | 乗算回路 | |
US5426600A (en) | Double precision division circuit and method for digital signal processor | |
US9372665B2 (en) | Method and apparatus for multiplying binary operands | |
US6728744B2 (en) | Wide word multiplier using booth encoding | |
JPH1021057A (ja) | データ処理装置及びマイクロコンピュータ | |
Gutub et al. | Efficient scalable VLSI architecture for Montgomery inversion in GF (p) | |
US7240204B1 (en) | Scalable and unified multiplication methods and apparatus | |
US6963644B1 (en) | Multi-word arithmetic device for faster computation of cryptosystem calculations | |
JP2597775B2 (ja) | 除算方法および除算装置 | |
US5805489A (en) | Digital microprocessor device having variable-delay division hardware | |
JP2001034167A (ja) | 演算装置及び暗号処理装置 | |
US20030182343A1 (en) | Fast multiplication circuits | |
CN113485751A (zh) | 执行伽罗瓦域乘法的方法、运算单元和电子装置 | |
JP2000207387A (ja) | 演算装置及び暗号処理装置 | |
EP1504338A1 (en) | "emod" a fast modulus calculation for computer systems | |
JP2004226516A (ja) | べき乗剰余演算方法及びそのプログラム | |
JP3210420B2 (ja) | 整数上の乗算回路 | |
CA2330169A1 (en) | Wide word multiplier using booth encoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150810 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151106 |
|
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: 20151207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151230 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5866128 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5866128 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
EXPY | Cancellation because of completion of term |