JP2001520775A - 算術プロセッサ - Google Patents

算術プロセッサ

Info

Publication number
JP2001520775A
JP2001520775A JP54461898A JP54461898A JP2001520775A JP 2001520775 A JP2001520775 A JP 2001520775A JP 54461898 A JP54461898 A JP 54461898A JP 54461898 A JP54461898 A JP 54461898A JP 2001520775 A JP2001520775 A JP 2001520775A
Authority
JP
Japan
Prior art keywords
arithmetic
register
alu
finite field
circuit
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.)
Withdrawn
Application number
JP54461898A
Other languages
English (en)
Other versions
JP2001520775A5 (ja
Inventor
バンストーン,スコット,エイ.
ランベルト,ロバート,ジェイ.
ガラント,ロバート.
ユリシク,アレクサンダー.
バデカール,アショク,ヴィ.
Original Assignee
サーティカム コーポレイション
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=10810977&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2001520775(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by サーティカム コーポレイション filed Critical サーティカム コーポレイション
Publication of JP2001520775A publication Critical patent/JP2001520775A/ja
Publication of JP2001520775A5 publication Critical patent/JP2001520775A5/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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/722Modular multiplication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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/724Finite field arithmetic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Error Detection And Correction (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 この開示は、有限体演算やモジュラ整数演算など一群の関連する算術演算をそれぞれパフォームする複数の算術回路を有するALUを含むことを特徴とする算術プロセッサを提供するものである。ALUは、オペランドデータを受信するオペランド入力データバスと、算術演算の結果を戻す結果データ出力バスとを有する。レジスタファイルはオペランドデータバスと結果データバスに結合されている。レジスタファイルは複数の算術回路によって共用されている。さらに、コントローラがALUおよびレジスタファイルに結合されていて、このコントローラは、算術演算を要求するモード制御信号に応答して、複数の算術回路の1つを選択し、レジスタファイルとALUとの間でデータアクセスを制御し、それによりレジスタファイルが算術回路によって共用されるようにする。

Description

【発明の詳細な説明】 算術プロセッサ 本発明は、有限体および整数の算術をパフォームする方法および装置に関する 。 発明の背景 有限体(finite field)に対するEC(Elliptic Curve)暗号法では、加算と 、乗算と、二乗と、反転(inversion)の算術演算が必要となる。さらに、体(f ield)の標数が2でない場合には、減算も必要になる。例えば符号定数の計算で は、モジュラ算術演算も必要になるが、このような演算は有限体の演算ほど必要 にならない。例えばEC暗号法では、モジュラおよび有限体演算、加算、減算、 乗算、反転の完全な補集合(full complement)が必要になる。 暗号法のための体のサイズは比較的大きくなる傾向があり、算術演算を許容時 間内で実行するために高速の専用プロセッサが必要になる。したがって、高速モ ジュラ算術プロセッサか、F2nの算術演算をパフォームする専用プロセッサの いずれかが、多数インプリメントされている。特殊目的または専用プロセッサを 使用することは、当技術分野では、周知のことである。こうしたプロセッサは一 般にコプロセッサと呼ばれ、通常は、ホスト計算システムで利用されており、従 って、命令および制御はメインプロセッサからコプロセッサに提供されている。 なかでもRSAが暗号化システムとして慣用されていたが、優秀かつよりセキ ュアなEC暗号法が登場したため、モジュラ冪法(modular exponentiation)専 用のプロセッサの必要性は、薄らいで来ている。ユーザはRSA暗号法からEC 暗号法に移行しているものの、性能およびコストをほとんどあるいは全く犠牲に することなくこれらの両方の演算をサポートする算術プロセッサに対するニーズ がある。 発明の概要 本発明の第1の目的は、有限体算術と整数算術を組み合わせ、EC暗号法に必 要な演算と、例えばRSA暗号法で必要なモジュラ幕法とを提供するプロセッサ を提供することにある。 本発明の第2の目的は、異なる体またはレジスタサイズにスケーリングするこ とができる算術プロセッサ設計を提供することにある。 本発明の第3の目的は、異なる体サイズで使用することができる算術プロセッ サを提供することにある。 本発明の第4の目的は、マルチシーケンス中の複数のステップを同時にパフォ ームすることによってマルチシーケンス演算実行を高速化するためにスケーリン グすることができる算術プロセッサを提供することにある。 本発明によれば、 (a)一群の関連する算術演算をそれぞれ実行する複数の算術回路を有する論 理演算装置であって、オペランドデータを受信するオペランド入力データバスと 、前記算術演算の結果を戻す結果データ出力バスとを有する論理演算装置と、 (b)前記オペランドデータバスおよび前記結果データバスに結合されたレジ スタファイルと、 (c)前記ALUおよび前記レジスタファイルに結合された制御装置であって 、算術演算を要求するモード制御信号に応答して前記複数の算術回路の1つを選 択し、かつ前記レジスタファイルと前記ALUの間でデータアクセスを制御する ことにより、前記レジスタファイルが前記算術回路によって共用されるようにす る制御装置と を含む算術プロセッサが提供される。 本発明の別の実施形態によれば、有限体回路および整数算術回路を含み、かつ 汎用レジスタおよび専用レジスタを備えたプロセッサが提供される。 本発明の別の実施形態によれば、有限体算術および整数算術を両方とも実行し 、専用レジスタおよび汎用レジスタの両方ならびに算術回路を共用する算術プロ セッサが提供される。この目的のために、多項式基底が整数の標準的な基数累乗 基底(standard radix-power basis)と同様であるので、有限体ハードウェアに ついて多項式基底を想定する。 図面の簡単な説明 以下、本発明の実施形態を、添付図面を参照し例を挙げて説明する。 図1は有限体算術および整数算術をパフォームする算術プロセッサアーキテク チャのブロック図である。 図2は図1に示すALU(arithmetic logicunit)の概略ブロック図である。 図3は有限体算術および整数算術をパフォームする算術プロセッサアーキテク チャの代替実施形態のブロック図である。 図4は図3に示すALUの概略ブロッタ図である。 図5(a)、(b)、および(c)は図2に示すALUのビットスライスの実施形 態のブロック図である。 図6は図5に示すビットスライスの有限体乗算器の回路図である。 図7は算術インバータのブロック図である。 図8は組み合わせた有限体/整数乗算器の回路図である。 図9は図1のマルチビットALUの実施形態を示す概略ブロック図である。 図10は図9のマルチビット有限体乗算器の回路図である。 好ましい実施形態の詳細な説明 図1を説明する。算術プロセッサの一実施形態は一般的に参照番号1で示して ある。当然のことであるが、この算術プロセッサは総合計算システム中の汎用プ ロセッサとともに使用することができ、データはこの計算システムと算術プロセ ッサの間で交換される。算術プロセッサには、レジスタファイルと呼ばれる一群 の汎用レジスタ(GP)2が含まれている。レジスタファイルはECの点加算( point addition)、点倍加(point doubling)などのための中間記憶域として使 用することができるものである。一群の汎用レジスタ2はデータ入力またはオペ ランドバス6を介してALU(arithmetic logicunit)4と通信を行なっている 。ALU4にはシェアード(shared)有限体および整数算術回路が含まれている 。ALU4による計算の結果をレジスタファイル2に書き込むため、データ出力 または結果バス14がALU4とレジスタファイル2の間に設けてある。 ALU4による計算オペレーションは、算術プロセッサ1のコントローラ8に 駐在するマイクロプログラム化命令により制御されている。モード選択コントロ ール10は有限体計算またはモジュラ整数計算を選択するために用意してある。 体サイズ制御12も、ALU4を初期設定して、種々のオペランドベクトルサイ ズに適応させるために用意してある。そこで、コントローラ8はなかんずく次の タスク、すなわち、適正な算術モードおよび演算をALU4に提供するタスクと 、レジスタファイル2とALU4の間のデータアクセスをコーディネートするタ スクと、使用される適正な体のサイズをALU4に提供するタスクとをパフォー ムする。 汎用レジスタは、少なくとも予想可能な最大のF2mEC暗号システムをハンド ルするだけのビット幅を有するように選択される。これら汎用レジスタは整数モ ジュラ算術で必要なビット長をサポートするために、組み合わせることができる 。例えば、レジスタファイル2の単一レジスタのビット幅が512ビット幅であ る場合に、単一の2048ビットRSA量の記憶域を提供するため、4つのレジ スタを使用することができる。これら汎用レジスタには、データのブロックがロ ードされ、例えば、2048ビットの計算をブロック単位で行い、ついで、再組 み立てして、全幅結果(full width result)を得ることができる。典型的には 、算術プロセッサ1は既存のホストコンピュータシステムで利用され、コントロ ーラ8はこのホストコンピュータシステムから制御信号を受信し、適正なホスト バスインタフェースを介して、ホストデータバスにデータを通信する。このよう なインタフェースの詳細は当業者とって周知のことであり、説明は省略する。 図2を説明する。ALU4には、幾つかの特殊レジスタ16と、複数のサブA LU18と、出力データバス30と、コントローラ20とが含まれている。複数 のサブALU18には組み合わせロジックおよび算術回路が含まれていて、組み 合わせロジックおよび算術回路は、特殊レジスタからデータバス28を介して各 サブALUに入力された1つ以上のビットをオペレートする。出力データバス3 0はサブALU18と特殊レジスタとの間に設けてある。コントローラ20は、 なかんずく、次のタスク、すなわち、計算オペレーション中の各ステップを通し てALU4を順序づけるタスクと、特殊レジスタ16からの制御ビットを監視す るタスクと、使用してある体のサイズを決定するためにカウンタを制御レジスタ 22に実装するとともに、プロセッサハードウェアを設計し直さずに、プロセッ サ1が異なる体サイズに対して使用することができる機構を実装するタスクとを パフォームする。これらの機能を提供するため、特殊レジスタ16の制御ビット 26は制御ビット入力24としてコントローラ20に供給される。特殊レジスタ 16は、全て、個別にアドレス可能になっている。コントローラ20はレジスタ ファイルから入力バス6を介してサブALU18または特殊レジスタ16に入力 されたデータも制御する。これらサブALUは、単一のビットにオペレートする ことができ、複数のビットに一度にオペレートすることができる。これらのコン ポーネントは後程より詳細に記述する。 図3を説明する。算術プロセッサの代替例は参照番号1’で示してある。本実 施形態では、別個の有限体装置34および整数モジュラ算術装置36を提供する 。このプロセッサは、レジスタファイル2’と、データ入力バス6’と、データ 出力バス14’と、コントローラ8’も含むが、制御13aおよび13bがそれ ぞれコントローラ8’から各ALU34および36に提供される。 図4を説明する。図4は図3のALU34および36をより詳細に示す。AL U34および36には、それぞれ、特殊レジスタ16’aおよび16’bと、コ ントローラ20’aおよび20’bとが含まれている。ALU34および36に は、それぞれ、サブALU18’aおよび18’bが含まれている。したがって 、この実施形態では、特殊レジスタ16’aおよび16’bと、算術および制御 回路は、当然、共有されない。サブALU18’aのうちの1つ以上のサブAL U18’aは、協働して、シフト左/右とXORシフトの機能を実行し、サブA LU18’bのうちの1つ以上のサブALU18’bは、協働し、任意選択で、 桁上げ保存技術または桁上げ伝搬(carry propagation)を使用して、整数加算 および整数減算の機能を実行する。 図2を説明する。サブALU18は、特殊レジスタ16から供給されたオペラ ンドに対して、次の論理機能、すなわち、XORと、シフト左/右と、XORシ フトと、整数加算と、整数減算を実行する。これらの機能は、1つのサブALU 18か、マルチプル・サブALUに含めることができる。マルチプル・サブAL U18を設けることにより、当該プロセッサは複数の演算(例えば、有限体反転 ) を同時にパフォームすることができる。 図5を説明する。図5は図2のALU4のビットスライス41を詳細に示す。 次の考察では、ビットスライス41と関係付けをしたロジッタ回路と関連して、 各特殊レジスタのセルを相互接続する、と言う。ビットスライスに含まれたロジ ック回路は、一般的に、図2に示すようなサブALU18のうちの1つで表され る。ビットスライスの構成は、Nビットレジスタに対しては、N回繰り返えすこ とができる。さらに、明確にするため、Nをレジスタ内のセル数と定義し、レジ スタ内の個別のセルを例えばAiという。ここで、0≦i≦N−1であり、AN-1 は特殊レジスタの最も右にあるセルである。レジスタの内容は小文字で参照され 、例えば、長さnのビットベクトルAは、a0をLSBとして、ビットにa0,… an-1と番号が付けられることになる。ここで、特殊レジスタには特定の名前が 付けられているが、これらのレジスタは、後程説明するが、実行されている算術 演算に依存して異なる機能をとることができる、ことに留意されたい。 図5の特殊レジスタ16に含まれるレジスタとしては、乗算演算中に、例えば 、被乗数および乗数を個々に保持するための一対のオペランドレジスタA42お よびB44と、累算器レジスタC46と、モジュラスレジスタM48と、桁上げ 拡張(carry extension)レジスタCext50(整数算術で使用される)とがある 。 これらのレジスタは、その中にロードされたビットベクトルの個々の2進数を 保持するため、N個のセルを有する。これらのレジスタはシフトレジスタである のが好ましい。図2に示すサブALU18は、後程説明するが、図5のブロック 52の回路により実装することができる。乗算 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において、乗算は、次のような疑似コードにより明確 に記述される一連のステップとして実装することができる。 C=0{C-1=0} For i from n-1 to 0 do For j from n-1 to 0 do{Cj=Cj-1+bjj+cn-1j} この乗算を実行する際には、MSB(most significant bit)からLSB(le ast significant bit)の順に、被乗数と乗数のbiの各ビットとの部分積を形成 する。その前の部分積のMSBがセットされた場合には、部分積はモジュラスに よって簡約(reduce)される。 乗算の実装は、1×N乗算器を逐次使用することによって行なうことができ、 この場合、上記疑似コードの内側の「for」ループはパラレルに実行される。 各セルがそれぞれ2進数miの1つを含むように、モジュラスレジスタMには、 MSBmnを剥ぎ取ったモジュラスビットベクトルmがロードされる。図示の実 装では、ビットmiは、ベクトルのMSBを最も左側のビットとして、左から右 に配列されている。すなわち、セルMn-1はビットmn-1を含む。N≠nである場 合、スティルビット(still bit)Mn-1はMN-1にストアされる、すなわち、デ ータは左寄せされる。各セルが個々に2進数aiまたはbiの1つを含むように、 シフトレジスタAおよびBには、有限体元(finite field element)ビットベク トルaおよびbがそれぞれロードされる。有限体元aおよびbは、左寄せされ、 各レジスタにストアされ、乗数レジスタbのMSBが常に左境界セルのビット、 すなわち(an-1,an-2,…a0)および(bn-1,bn-2,…b0)で利用可能に なっている。ベクトルaおよびbの長さがレジスタの長さより短い場合には、残 りのセルには0がパディングされる。以上、図2に示すコントローラ20によっ て一般的に実行される。逐次乗算(被乗数を逐次小さくするなど)の他の構成も 可能であるが、そのような構成では、体のサイズに柔軟性を持たせることができ ないし、同様に、制御ビット位置を固定することができない。この乗算アルゴリ ズムを対応して変化させれば、LSBからMSBへのビット順序づけも可能であ る。 ここでは、ALU4のビットスライス41は、有限体において乗算を実装する ために、記載されている。ビットスライス41は第1および第2のコントローラ ブル加算器54および56を含み、第1および第2のコントローラブル加算器5 4および56は、それぞれ、XOR機能を有する。レジスタBの最上位のセルBN-1 は、加算制御信号bn-157を第1の加算器54に供給する。第1の加算器5 4への入力58および60は、レジスタセルAiおよびアキュムレータセルCiか ら得られる。第1の加算器54からの出力62は、モジュラスレジスタセルMi からの入力64とともに、第2の加算器56の入力に接続されている。加算器5 4は出力62=入力60+(入力58および制御57)という演算をパフォーム する。この演算を図5(b)に詳細に示す。 ついで、第2の加算器56からの出力はアキュムレータセルCiに接続されて いる。第2の加算制御信号66はアキュムレータC46の最上位のセルCN-1か ら得られる。アキュムレータCの最上位のビットCN-1がセットされたとき、当 然に、モジュラスベクトルmによるアキュムレータCでの部分積のモジュラ簡約 が、第2の加算制御信号66により実装される。図5(c)に詳細に示すように 、加算器56は、出力=入力62+(入力64および制御66)という演算を行 う。Bレジスタはクロックシフトレジスタである。コントローラ20から供給す ることができるクロック信号CLK1 68は、部分積が計算される度に、この レジスタの内容を左にシフトさせる。 図6を説明する。図6は図5のビットスライス41の詳細な回路実装を示す。 この回路実装は有限体乗算を行なうためのものであって、参照番号70で示す。 図6のビットスライスi、70を説明する。図6では、説明のために、ビットス ライスは3つしか示していない。セルaiは、ANDゲート72により、加算制 御信号bn-1とAND演算される。ANDゲート72の出力74は、アキュムレ ータCの隣接するセルCi−1からの入力78とともに、XORゲート76の入 力に接続される。よって、項「cj-1+bii」の計算が実装される。項「cn-1 j」は、ANDゲート84を利用して、信号cn80とmi82をAND演算す ることにより、実装される。ANDゲート84の出力86は、XORゲート76 の出力88とともに、XORゲート84の入力に接続される。XORゲート84 の出力90は、セルCi92に接続される。よって、式「cj=cj-1+bii+ cn-1j」が実装される。この汎用の逐次乗算器により、2つのnビット有限体 元の積がnクロックサイクルで生成されることになる。同期カウンタは、コント ローラ20に含めることができるものであって、繰返し回数の制御を行うものが 好ましい。以上の記述は、加算器54が整数加算器のビットスライスであって、 加算器56が整数減算器のビットスライスであるときに、整数モジュラ乗算に適 用される。このことは後程説明する。加算 有限体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サイクルで完了する。 この反転で使用されるレジスタは、A、B、M、およびCである。便宜上、こ れらのレジスタを概略的に図7に示す。MにはUL、CにはLL、AにはUR、 BにはLRとラベル付けがしてある。再度、この反転を、ビットスライス110 に関連して記述することができる。 反転のオペランドは、一般に、反転する元gと、既約多項式fまたはモジュラ スm(後述)と、ビットベクトル「0」と、ビットベクトル「1」である。UL レジスタ116にはfまたはmがロードされる。LLレジスタ118にはgがロ ードされ、URレジスタ112には「0」が、LRレジスタ114には「1」が ロードされる。URレジスタ112およびLRレジスタ114では、セルURi およびLRiはXORゲート120でXOR演算されて、出力122が生じる。 制御信号124は、可能な3つの入力のうち1つがセルURiおよびULiに書き 込まれるかどうかを決定する。入力は隣接するセルまたは出力122からの左ま たは右シフトである。制御信号Bは後程記載する状態表によって決定される。U Lレジスタ116またはLLレジスタ118では、セルULiおよびLLiはXO Rゲート126でXOR演算されて、出力128が生じる。制御信号130は、 可能な2つの入力のうち1つがセルULiおよびLLiに書き込まれるかどうかを 決定する。入力は隣接するセル(i−1)または出力128からの左シフトであ る。この場合も、制御信号130は後程記載する状態表によって決定される。 制御変数をULレジスタの長さkuと、LLレジスタの長さklと仮定したとす ると、Δ=ku−klとなる。値klおよびkuは、好ましくは、同期ダウンカウン タで実装され、Δは好ましくは同期アップ/ダウンカウンタで実装される。カウ ンタレジスタku、kl、およびΔも用意されている。ULおよびLLレジスタは 左シフトレジスタであり、URおよびLRレジスタは、ともに、左および右シフ トレジスタである。 さらに、カウンタレジスタでは、Δには0がロードされ、kuはnに初期化さ れる。制御ビットラッチは、「1」がアップカウントを示し、「0」がダウンカ ウントを示すトグル機能を有する。U/D制御は、最初、「1」にセットされる 。この場合、ALUで反転を実行する制御装置に含まれるシーケンサは、次のよ うな出力を有する。 deckl デクリメントkl kl 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の整数算術演算は、例えば乗算演算を利用 すれば、最もよく説明することができる。 疑似コードで表した次の一連のステップを参照して、Zにおける乗算を説明す る。前述したのと同様に、aおよびbは乗算されるビットベクトルであり、cは aとbの積であり、c=(c0,c1,…,cn-1)である。 C=0 M=0 For i from 0 to n-1 do Cext←C For j from 0 to n-1 do Cj=(bi(aj)+mj+cj)mod2 Mj+1=(bj(aj)+mj+cj)/2 ここで、 For i from 0 to n-1 do Ccxt←C に対して、 cj-1=cj j-1 ext=cj ext となる。 同様に、このようにすれば、XORを減算器で置換し、しかも、mレジスタに 素数をロードした場合には、整数modulo p(integcrs modulo p)を反転させる ことができる。改善策であるが、桁上げ保存方法を採用することにより、桁上げ 伝搬を遅らせることができる。 図6の実施形態で説明した有限体乗算の場合のビットスライス70を修正して 、整数表現に対する乗算を含むようにすることができる、ことを観測することが できる。注意すべきことであるが、整数乗算では、レジスタには、ビットベクト ルがF2mとは逆順でロードされる、すなわち、レジスタの最左端のセルがビッ トベクトルのLSBを含む。整数乗算では、逐次(successive)部分積の間で、 桁上げを実装する必要があり、さらに、部分積がモジュラスで簡約されていない ので、逐次部分積の加算による桁上げを供給しなければならない。そこで、アキ ュムレータレジスタCが拡張してあり、図5に示すように、新しいレジスタCex t 49が設けてある。各部分積が形成される前に、アキュムレータCの最下位ビ ッ ト(セルCM)を拡張レジスタCextの最上位ビット(セルCext l)にシフトし、 ついで、アキュムレータCおよびCextは両方ともLSBに向けて1ビットだけ シフトされる。最終結果はCおよびCextで獲得され、Cextには、当該積の低位 ビットが含まれる。このことは、上記オペレーションCext←Cで表される。 図8を説明する。図8はビットスライス170を示す。ビットスライス170 は図6のビットスライス70に類似している。したがって、同様のコンポーネン トは、識別するために、図6の説明で使用した参照番号を100番台にして使用 することにする。つまり、参照番号70は170となる。図8の編成が図6と異 なる点は、モジュラスレジスタmが桁上げレジスタとして使用され、モード選択 信号Z/F2m171が提供されるという、2つの重要な点である。 ここで、項cj=cj-1+bii+cn-1jは、既に説明した有限体乗算でそう であったように、制御信号bmとレジスタセルAiの内容との積で実装され、こ の積はANDゲート172で実装される。ANDゲート172の出力174はレ ジスタセルcj-1の内容とXORゲート176によりXOR演算され、参照番号 158で示す出力項cj-1+bi(ai)が生成される。この出力信号は、AND ゲート160から得られた参照番号185で示す項cn-1(mj)と、XORゲー ト184を使用してXOR演算され、項cjが生成される。さらに、積’bii ,cj-1’162と、積(cj-1+bii,mj)163とのサム(sum)から、桁 上げ項miが生成され、セルmi182に書き込まれる。積の項162および16 3はANDゲート164および166によってそれぞれ実装される。積の項16 2と163のサムはORゲート167によって実装される。 モード選択信号Z171は、桁上げ入力信号Cn180とOR演算され、クロ ック信号169とAND演算168される。したがって、Z=0をセットするこ とにより、有限体算術が実装され、Z=1をセットすることにより、整数算術が 実装される。 図8は、図6で既に説明した有限体乗算を、組合せ有限体/整数乗算器に変換 するのに必要な修正を示す。乗算の低位のビットを集めるため、出力レジスタC が拡張されることに留意されたい。Zにおける計算はモジュラスなしでパフォー ムされるので、モジュラスレジスタMは、部分積を簡約するためではなく、桁上 げのホルダとして使用される。制御信号Z/F2 M171は、ALUのための整数 乗算回路をイネーブルにする。 最終桁上げ伝搬(final carry propagation)は、マンチェスタリップルチェ ーン(Manchester ripple chain)によって提供することができ、レジスタ長が 長いことから、1レイヤまたは2レイヤの桁上げスキップ機構によって拡張可能 である。さらにnサイクルだけクロックすることも可能であり、桁上げ保存加算 器が桁上げを完全にマージすることが可能である。 1つの入力はその入力において条件付きで補数をとることができ、しかも、加 算器のLSBで「ホット」キャリインが行われる場合には、2の補数の減算は、 桁上げ伝搬加算器で実装することができる。 乗算時のリップル桁上げは、桁上げスキップにより改良したとしても、許容で きなくなるが、この桁上げ伝搬は、桁上げ保存加算器を使用すれば、ほぼ完全に 除去することができる。このようにすると、部分積が冗長表現されるが、乗算が 完了した後は解決される。 さらに別の実施形態では、ALU4は、図9に示すように、計算速度が線形に 増加するように修正することができる。これは、特殊レジスタ16’からの連続 ビットを一度に処理し、修正したサブALU190で示す追加回路を実装し、図 9に示すようにインクリメント加算を処理することによって達成される。複数の ビットを処理すると、速度が線形増加することになる。例えば、計算が順次にパ フォームされる場合は、その順序中の2つ以上のステップを同時に実行すること ができる。この場合、コントローラ20’は特殊レジスタ16’からの2ビット 以上の制御ビット194を処理することになり、制御装置の入力192は図9に マルチビットラインとして示す。 有限体に対して一度に2ビット実行する乗算器(two-bit at a time multiplie r)の回路図を図10に示す。この実装では、ビットスライス200はその数がX ORゲート210の数の2倍であり、当該加算の2つの項を実装している。この 乗算器は乗数から2ビットをとり、被乗数aiおよびai-1を2回だけ隣接してシ フトすることにより加算し、モジュラスMiおよびMi-1を2回だけ隣接してシフ トすることにより簡約する。このようにすると、モジュラス簡約(modulus reduction)で連続する2つの部分積が同時に生成され、したがって、全計算時 間を半分にすることができるという効果がある。 特殊レジスタの上位(top)ビットがコントローラ20または20’用の制御 ビットとして使用される、ことに留意されたい。このようにすると、オペランド がレジスタにロードされると、左揃えされ、したがって、制御が常に固定ビット 位置から得られるという利点がある。しかし、その他のビット例えば下位(bott om)ビットを制御ビットとして使用することもできる。しかし、このようにする と、ハードウェアが複雑になることもある。 この場合も、Booth(または、修正Booth)記録などのオプションが可能となる ので、マルチビット演算の計算速度がさらに線形的に増加する。 このようなALUは汎用レジスタに対して簡単な算術演算をパフォームする能 力を有するものと仮定している。他の例のALUは全ての算術をALU内部レジ スタに対してパフォームするものであり、汎用レジスタはこれらのレジスタとの 間でリード(read)およびライト(write)のみを行う能力を有する。 このようなALUの機能には、リップル桁上げや、桁上げスキップ加算と桁上 げ完了の組合せなど、何らかの桁上げ伝搬方法を利用した、整数加算が含まれる 。 このようなALUは、有限体加算で使用される単純なXOR機能も提供する。 整数および有限体表現(ビット順序)が逆であるので、体から整数への変換と、 整数から体への変換に使用されるビット逆転(bit reversal)機構を設けると有 利である。2つのシフトレジスタの頂部どうしを接続することにより、nクロッ クサイクルでこの機能が提供される。ここで、nは算術オペランドの長さである 。 本明細書で与えた一般的なアーキテクチャは、ECとモジュラ指数算術との間 でレジスタファイルを共用するだけでなく、共用制御レジスタに加えて、特殊レ ジスタおよび組み合わせロジックも共用する可能性がある。 以上、本発明の具体的な実施形態と具体的な用途について説明したが、種々の 修正は、本発明の範囲を逸脱しない限り、当業者にとって可能である。例えば、 記載の実施形態では、特定のロジック回路について言及したが、例えば、ド・モ ルガンの法則を使用して等価な回路を使用することもでき、反転ロジック(inve rted logic)が実装された場合には、相補形回路を使用することもできる、 ことに留意されたい。さらに、レジスタおよびビットベクトルのオリエンテーシ ョン、すなわち、左、右、上、下には、これらの方向の他の編成も含まれる。 本明細書で採用した項および式は、これらのものに限定されるものではなく、 例として使用したものであり、これらの項および式を使用したことに、図示およ び記述した機構またはその一部分の均等物を排除する意図はなく、本発明の範囲 内で種々の修正が可能であることを認識されたい。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,ML,MR, NE,SN,TD,TG),AP(GH,GM,KE,L S,MW,SD,SZ,UG,ZW),EA(AM,AZ ,BY,KG,KZ,MD,RU,TJ,TM),AL ,AM,AT,AU,AZ,BA,BB,BG,BR, BY,CA,CH,CN,CU,CZ,DE,DK,E E,ES,FI,GB,GE,GH,HU,IL,IS ,JP,KE,KG,KP,KR,KZ,LC,LK, LR,LS,LT,LU,LV,MD,MG,MK,M N,MW,MX,NO,NZ,PL,PT,RO,RU ,SD,SE,SG,SI,SK,SL,TJ,TM, TR,TT,UA,UG,US,UZ,VN,YU,Z W (72)発明者 ガラント,ロバート. カナダ エル7アール 2エヌ3 オンタ リオ バーリントン パール ストリート 607―478 (72)発明者 ユリシク,アレクサンダー. スロヴェニア共和国 1000 リュブリャー ナ ビパブスカ 24エイ (72)発明者 バデカール,アショク,ヴィ. カナダ エル5アール 3ジー8 オンタ リオ ミシソウガ カンスタレーション ドライブ 2006―700

Claims (1)

  1. 【特許請求の範囲】 1.(a)有限体算術演算をパフォームする有限体算術回路とモジュラ整数算術演 算をパフォームするモジュラ整数算術回路を有する論理演算装置であって、オペ ランドデータを受信するオペランド入力データバスと前記算術演算の結果を戻す 結果データ出力バスとを有する論理演算装置と、 (b)前記オペランドデータバスおよび前記結果データバスに結合したレジス タファイルと、 (c)前記ALUおよび前記レジスタファイルに結合したコントローラであっ て、モード制御信号に応答して前記有限体演算または前記整数算術演算のいずれ かを選択し、前記レジスタファイルと前記ALUの間でのデータアクセスを制御 して、前記レジスタファイルが前記有限体算術回路および整数算術回路の両方に よって共用されるようにしたコントローラと を備えたことを特徴とする算術プロセッサ。 2.請求項1において、 前記レジスタファイルは汎用レジスタを含み、 前記ALUは前記オペランドバスのデータビット幅より広い処理ビット幅を有 すること を特徴とする算術プロセッサ。 3.請求項1において、前記コントローラは、前記論理演算装置により選択され た算術演算を制御する命令をプログラムしたことを特徴とする算術プロセッサ。 4.請求項1において、前記オペランドバスは、前記ALUの処理ビット幅およ び前記結果データバスのビット幅と同じビット幅を有することを特徴とする算術 プロセッサ。 5.請求項4において、前記オペランドデータバスは、第1および第2のオペラ ンドをそれぞれ前記ALUと結合する第1および第2のオペランドバスを含むこ とを特徴とする算術プロセッサ。 6.請求項5において、前記汎用レジスタは、 前記コントローラによって個別にアドレスすることができ、 前記ALUの前記処理ビット幅より大きな体サイズについて前記ALUで計算 するために、複数のレジスタ中のデータを組み合わせる ことができることを特徴とする算術プロセッサ。 7.請求項1において、前記コントローラが体サイズの制御に応答して、前記A LUが種々の体サイズに作用することができることを特徴とする算術プロセッサ 。 8.請求項1において、 前記ALUは、 前記算術演算で利用するオペランドを前記レジスタファイルから受信する複数 の特殊レジスタと、 前記特殊レジスタの1つ以上のビットを結合する組合せおよびロジック回路要 素を有する複数のサブALUと、 前記コントローラから受信した制御情報に応答する順序づけコントローラとを 含み、 前記順序づけコントローラ、ならびにその中のカウンタおよび検出回路は、前 記特殊レジスタおよび前記複数のサブALUに結合され、算術演算中の一連のス テップがパフォームされるようにその演算を制御する ことを特徴とする算術プロセッサ。 9.請求項8において、前記ALUは、有限体の乗算と、二乗と、加算と、減算 と、反転の前記算術演算をパフォームすることを特徴とする算術プロセッサ。 10.請求項8において、前記サブALUは、XORと、シフトと、シフトXO Rと、加算と、減算論理演算をパフォームすることを特徴とする算術プロセッサ 。 11.請求項1において、前記有限体算術回路は、 第1および第2のオペランドビットベクトルをそれぞれ受信するAレジスタお よびBレジスタと、モジュラスビットベクトルを受信するMレジスタと、前記オ ペランドの有限体の積を含むアキュムレータとを含む複数の特殊レジスタを有す る有限体乗算器回路と、 前記AおよびBレジスタの各セルから前記アキュムレータのセルへの接続を確 立するロジック回路と、 前記レジスタおよび前記ロジック回路に動作可能に接続され、前記有限体の積 を得る一連のステップを実施する順序づけコントローラと を含むことを特徴とする算術プロセッサ。 12.請求項11において、前記一連のステップは、 前記Aレジスタの内容と前記Bレジスタの連続ビットの部分積を計算するステ ップと、 前記部分積を前記アキュムレータにストアするステップと、 前記部分積のビットを試験するステップと、 前記テストしたビットがセットされた場合に前記部分積を前記モジュラスで簡 約するステップと、 前記Bレジスタの連続ビットについて前記ステップを繰り返すステップと を備えたことを特徴とする算術プロセッサ。 13.請求項12において、 前記左そろえのオペランドベクトルを前記Aレジスタおよび前記Bレジスタに それぞれストアするステップを含み、 前記テストビットは前記レジスタの前記左端のビットから得られる ことを特徴とする算術プロセッサ。 14.請求項12において、前記Bレジスタがシフトレジスタであることを特徴 とする算術プロセッサ。 15.請求項14において、前記ロジック回路は、 レジスタセルAiおよびアキュムレータCiから得られる入力を有し、レジスタ BのセルBN-1から得られた第1の加算制御信号に応答して第1の加算出力信号 を生成する第1の制御可能加算器と、 モジュラスレジスタセルMiおよび前記加算出力信号から得られる入力を有し 、前記アキュムレータのセルCN-1から得られた第2の加算制御信号に応答して アキュムレータセルCiに結合される出力を生成する第2の制御可能加算器と をそれぞれ含む、それぞれのレジスタセルに結合した複数の制御可能加算装置を 有することを特徴とする算術プロセッサ。 16.請求項15において、有限体加算器回路を含むことを特徴とする算術プロ セッサ。 17.請求項16において、前記有限体加算器は、レジスタBの前記セルBiか ら得られた入力を前記第1の加算器それぞれに結合する手段と、前記第2の加算 器の前記出力を前記セルCiに結合する手段とを含み、 前記順序づけコントローラが有限体加算制御信号に応答し、それにより前記有 限体加算演算が1クロックサイクルでパフォームされる ことを特徴とする算術プロセッサ。 18.請求項1において、前記有限体算術回路は有限体反転回路を含むことを特 徴とする算術プロセッサ。 19.請求項18において、前記有限体反転回路は、 第1および第2のオペランドビットベクトルをそれぞれ受信するAレジスタお よびBレジスタと、モジュラスビットベクトルを受信するMレジスタと、前記オ ペランドの有限体の積を含むアキュムレータとを含む複数の特殊レジスタを備え たことを特徴とする算術プロセッサ。 20.請求項1において、前記ALUは、 有限体乗算器回路と、 有限体反転回路と、 複数の特殊レジスタと、 前記特殊レジスタの各セルの間で接続を確立するロジック回路と、 前記レジスタおよび前記ロジック回路にアクション可能に接続され、有限体の 積または有限体の反転を計算するための一連のステップを実施し、それにより前 記特殊レジスタが前記有限体乗算器および前記有限体反転回路によって共用され るようにする、順序づけコントローラと を備えたことを特徴とする算術プロセッサ。 21.請求項20において、前記有限体反転回路は、拡張したユークリッドの互 除法を実施することを特徴とする算術プロセッサ。 22.請求項11において、整数算術乗算回路を含むことを特徴とする算術プロ セッサ。 23.請求項12において、前記整数算術乗算は、前記モード選択信号に応答し て前記mレジスタに桁上げをロードすることによって実装されることを特徴とす る算術プロセッサ。 24.請求項1において、暗号化システムで使用されることを特徴とする算術プ ロセッサ。 25.(a)一群の関連する算術演算をそれぞれパフォームする複数の算術回路を 有するALUであって、オペランドデータを受信するオペランド入力データバス と、前記算術演算の結果を戻す結果データ出力バスとを有するALUと、 (b)前記オペランドデータバスおよび前記結果データバスに結合したレジス タファイルと、 (c)前記ALUおよび前記レジスタファイルに結合したコントローラであっ て、算術演算を要求するモード制御信号に応答して前記複数の算術回路の1つを 選択し、かつ前記レジスタファイルと前記ALUの間でデータアクセスを制御し 、それにより前記レジスタファイルが前記算術回路によって共用されるようにす るコントローラと を備えたことを特徴とする算術プロセッサ。 26.請求項25において、前記算術回路は、有限体算術回路およびモジュラ整 数算術回路であることを特徴とする算術プロセッサ。
JP54461898A 1997-04-18 1998-04-20 算術プロセッサ Withdrawn JP2001520775A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9707861.2 1997-04-18
GBGB9707861.2A GB9707861D0 (en) 1997-04-18 1997-04-18 Arithmetic processor
PCT/CA1998/000467 WO1998048345A1 (en) 1997-04-18 1998-04-20 Arithmetic processor

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007243107A Division JP4980834B2 (ja) 1997-04-18 2007-09-19 算術プロセッサ

Publications (2)

Publication Number Publication Date
JP2001520775A true JP2001520775A (ja) 2001-10-30
JP2001520775A5 JP2001520775A5 (ja) 2006-01-05

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 After (3)

Application Number Title Priority Date Filing Date
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 算術プロセッサ

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) DE69811877T2 (ja)
GB (1) GB9707861D0 (ja)
WO (1) WO1998048345A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001109376A (ja) * 1999-10-04 2001-04-20 Toyo Commun Equip Co Ltd 演算回路および演算プロセッサ
JP2006195563A (ja) * 2005-01-11 2006-07-27 Renesas Technology Corp 演算処理装置
JP2008059595A (ja) * 1997-04-18 2008-03-13 Certicom Corp 算術プロセッサ
US7403614B2 (en) 2002-08-22 2008-07-22 Sony Corporation Encryption apparatus

Families Citing this family (79)

* Cited by examiner, † Cited by third party
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
US7197625B1 (en) 1997-10-09 2007-03-27 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US5864703A (en) * 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
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
WO2000038047A1 (en) * 1998-12-18 2000-06-29 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
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
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
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
US7607165B2 (en) * 2001-03-09 2009-10-20 The Athena Group, Inc. 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
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
US7269615B2 (en) * 2001-12-18 2007-09-11 Analog Devices, Inc. Reconfigurable input Galois field linear transformer system
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
US7283628B2 (en) 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine
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
US7000090B2 (en) * 2002-01-21 2006-02-14 Analog Devices, Inc. Center focused single instruction multiple data (SIMD) array system
US6941446B2 (en) * 2002-01-21 2005-09-06 Analog Devices, Inc. Single instruction multiple data array cell
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
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
US7693928B2 (en) * 2003-04-08 2010-04-06 Analog Devices, Inc. Galois field linear transformer trellis system
CN100530157C (zh) * 2003-04-08 2009-08-19 阿纳洛格装置公司 伽罗瓦域线性变换器格栅系统
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
WO2006076800A1 (en) * 2005-01-18 2006-07-27 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
US7728744B2 (en) * 2005-10-26 2010-06-01 Analog Devices, Inc. Variable length decoder system and method
US8285972B2 (en) * 2005-10-26 2012-10-09 Analog Devices, Inc. Lookup table addressing system and method
US8024551B2 (en) 2005-10-26 2011-09-20 Analog Devices, Inc. Pipelined digital signal processor
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
EP2208165A4 (en) * 2007-11-02 2010-11-24 Certicom Corp MONTGOMERY ARITHMETIC SIGNED
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
EP2700256B1 (en) 2011-05-20 2017-11-29 BlackBerry Limited Verifying passwords on a mobile device
EP2715968A4 (en) 2011-05-26 2015-08-12 Certicom Corp RANDOM FOR ENCRYPTION OPERATIONS
EP2718844B1 (en) 2011-06-06 2019-08-07 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)

* Cited by examiner, † Cited by third party
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
DE69231110T2 (de) 1991-03-05 2000-11-16 Canon Kk Rechengerät und Verfahren zum Verschlüsseln/Entschlüsseln von Kommunikationsdaten unter Verwendung desselben
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
JPH09507110A (ja) * 1993-11-04 1997-07-15 シーラス ロジック, インコーポレイテッド 有限体反転
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
US5982895A (en) 1997-12-24 1999-11-09 Motorola, Inc. Finite field inverse circuit for use in an elliptic curve processor
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
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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008059595A (ja) * 1997-04-18 2008-03-13 Certicom Corp 算術プロセッサ
JP2001109376A (ja) * 1999-10-04 2001-04-20 Toyo Commun Equip Co Ltd 演算回路および演算プロセッサ
US7403614B2 (en) 2002-08-22 2008-07-22 Sony Corporation Encryption apparatus
JP2006195563A (ja) * 2005-01-11 2006-07-27 Renesas Technology Corp 演算処理装置

Also Published As

Publication number Publication date
US6735611B2 (en) 2004-05-11
AU7329198A (en) 1998-11-13
US20050044124A1 (en) 2005-02-24
US6230179B1 (en) 2001-05-08
JP5866128B2 (ja) 2016-02-17
DE69811877T2 (de) 2003-12-18
CA2286647C (en) 2015-01-13
EP1293891B1 (en) 2010-02-03
EP0976027B1 (en) 2003-03-05
JP2011134346A (ja) 2011-07-07
DE69841492D1 (de) 2010-03-25
GB9707861D0 (en) 1997-06-04
EP0976027A1 (en) 2000-02-02
JP2008059595A (ja) 2008-03-13
US20020136402A1 (en) 2002-09-26
EP1293891A2 (en) 2003-03-19
EP1293891A3 (en) 2004-09-08
WO1998048345A1 (en) 1998-10-29
JP2014219994A (ja) 2014-11-20
DE69811877D1 (de) 2003-04-10
US6266717B1 (en) 2001-07-24
US7424504B2 (en) 2008-09-09
US6349318B1 (en) 2002-02-19
CA2286647A1 (en) 1998-10-29
EP1293891B2 (en) 2017-04-12
EP1293891B8 (en) 2010-04-14
JP4980834B2 (ja) 2012-07-18

Similar Documents

Publication Publication Date Title
JP2001520775A (ja) 算術プロセッサ
US8176110B2 (en) Modular multiplier
US7725520B2 (en) Processor
US6009450A (en) Finite field inverse circuit
US5426600A (en) Double precision division circuit and method for digital signal processor
EP1560110A1 (en) Multiple-word multiplication-accumulation circuit and Montgomery modular multiplication-accumulation circuit
Fan et al. Montgomery modular multiplication algorithm on multi-core systems
US10983755B2 (en) Transcendental calculation unit apparatus and method
Todorov ASIC design, implementation and anaylsis of a scalable high-radix Montgomery Multiplier
JP2597775B2 (ja) 除算方法および除算装置
US5805489A (en) Digital microprocessor device having variable-delay division hardware
Blem et al. Instruction set extensions for cyclic redundancy check on a multithreaded processor
Pang et al. A self-timed ICT chip for image coding
Antao et al. Compact and flexible microcoded elliptic curve processor for reconfigurable devices
JP2654451B2 (ja) データ出力方法
Zhou et al. Efficient implementation of FDFM approach for euclidean algorithms on the FPGA
Buček Properties and Implementation Aspects of Residue Arithmetic for a Hardware Solver of Systems of Linear Equations
JPH02304676A (ja) ディジタル信号処理装置
Park Hardware design of scalable and unified modular division and Montgomery multiplication
Shamim Design of microprocessor-based hardware for number theoretic transform implementation
Šimka et al. Montgomery Multiplication Coprocessor for Altera Nios Embedded Processor
Wong et al. A new scalable systolic array processor architecture for simultaneous discrete convolution of k different (nxn) filter coefficient planes with a single image plane
Röpke et al. Integer factorization based on the elliptic curve method using reconfigurable hardware

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050420

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20050420

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060905

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061205

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070305

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070522

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20070821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070919

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071115

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20071129

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20100121

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100218

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100226

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20101118