JP2000503146A - 整数除算回路を有するモジュラ算術演算コプロセッサ - Google Patents

整数除算回路を有するモジュラ算術演算コプロセッサ

Info

Publication number
JP2000503146A
JP2000503146A JP9524921A JP52492197A JP2000503146A JP 2000503146 A JP2000503146 A JP 2000503146A JP 9524921 A JP9524921 A JP 9524921A JP 52492197 A JP52492197 A JP 52492197A JP 2000503146 A JP2000503146 A JP 2000503146A
Authority
JP
Japan
Prior art keywords
register
input
output
circuit
bit
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.)
Pending
Application number
JP9524921A
Other languages
English (en)
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
Application filed by エスジェエス―トムソン ミクロエレクトロニクス ソシエテ アノニム filed Critical エスジェエス―トムソン ミクロエレクトロニクス ソシエテ アノニム
Publication of JP2000503146A publication Critical patent/JP2000503146A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/728Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic using Montgomery reduction
    • 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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • 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/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5353Restoring division

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Logic Circuits (AREA)

Abstract

(57)【要約】 明細書の開示は、整数除算を実行するための除算回路からなり、モンゴメリ方法によって計算を実行する様に設計されたモジュラ算術演算コプロセッサに関わるものである。整数除算回路はn’+n”ビットに符号化された2値データエレメントAを、nビットに符号化された2値データエレメントBで除算を行うものである。ここで、A,B,n,n’,n”は0でない整数である。この機能として、整数除算回路は、次のものから構成される。:2値データエレメントAと除算結果を置くための、第1nビットレジスタと第2nビットレジスタ、中間結果を置くための第3nビットレジスタ、2値データエレメントBを置くための第4nビットレジスタ、そして、2つの減算回路には、夫々、第1直列入力と第2直列入力、及び直列出力があり、入出力を有するテスト回路を具備している。

Description

【発明の詳細な説明】 整数除算回路を有するモジュラ算術演算コプロセッサ 本発明は整数除算回路を有する算術演算コプロセッサの構成に関するものであ る。モジュラ算術演算コプロセッサは暗号化/解読化回路に用いられる。これら コプロセッサはモンゴメリ法を用いる暗号化/解読化により、動作を大幅に加速 する事が可能となる。この種のシステムはチップカード、殊にRAS符号を用い たチップカードに多く用いられている。 RAS符号はnビットに符号化された2値メッセージMをnビットの整数とし て処理する数学的な符号化方法である。暗号化と解読化はモジュラ累乗法の操作 によって実行される。 −暗号化: M’=Me mod N, −解読化: M=M’d mod N M’はnビットに符号化された暗号化メッセージ、NはN=p*qであり、p とqは素数となる様にnビットに符号化された整数である。指数eとdは(e* d)modφ(N)*1であり、φ(N)−(P−1)*(q−1)である様な 2つの自然数である。従って、この種の符号は2つのキーを持っている。その1 つはパブリックキー(eとN)として知られている暗号キーであり、他の1つは シークレットキー(dとN)と呼ばれている解読キーである。 パブリックキーからシークレットキーを見出すには、次の 操作を実行すれば十分である。即ち、d=(1+K*φ(N))/e、但しKは 0でない整数係数である。この種符号の安全性は、実際には実行される操作の複 雑性に依存する。シークレットキーを見出すには、Nを素数に因数分解する必要 がある。pとqが大きければ大きいほど、この操作に必要とされる時間は大きく なる(実際にはpとqは数百ビットに符号化される)。実際には、2のn/2乗 ビットに符号化される全ての整数について、その被整除性を繰り返しテストする 必要がある。パブリックキーからシークレットキーを探すことは可能であるが、 それには数百年かかる。然しながらRAS符号の利用者は、キーの計算を行うた めにキーの変更が必要となる。このキーは大きな数の除算によって得られる。 暗号化回路のチップカードにはマイクロプロセッサ、コプロセッサが搭載され ている。そのマイクロプロセツサは標準の8ビット、或いは16ビットのもので ある。モジュラ算術演算コプロセッサは、EP特許公開公報、例えばEP−A− 0 601 907(以後D1と呼ぶ)を参照するとよい。そのコプロセッサを 図1(この図は参照されるEP特許公開公報の図2に相当するもの)に明示する 。 除算操作を行うためには、このコプロセッサは用いない。従って、除算にはマ イクロプロセッサが用いられる。マイクロプロセッサでは大きなデータエレメン ト(例えば512ビット)を直接処理することが出来ないので、実際にはマイク ロプロセッサによる除算の実行にはかなりの時間がかかる。更に、除算の実行プ ログラムには相当のメモリ空間(プログ ラムコードを記憶するための)を必要とし、計算を実行するためには相当のワー キングメモリ空間を用いることになる。チップカードでは異なるパブリックキー (eとN)から再計算キーを得ることは極めて困難となる。 本発明はモジュラ算術演算コプロセッサに、大きな数の除算を実行するために 特別設計された計算回路を付加することを提案している。従って、除算回路に大 量付加空間を必要とせず、この回路はモジュラ算術演算コプロセッサで、既に用 いられているモンゴメリ方法によるモジュラ操作のために資源を共用するもので ある。かくしてモジュラ算術演算コプロセッサによる除算に特定した計算回路の 作成には、集積回路の大きさを顕著に増加させることなく、キーの計算を実行す るチップカードを可能とするものである。また、本発明はこの種の回路を用いて 除算行う方法をも提案している。 従って、本発明の目的は除算回路、それは2の冪乗とは異なる数による整数除 算を実行するために1入力、1出力を有するテスト回路を具備し、モンゴメリ方 法によって計算を実行する様に設計された、モジュラ算術演算コプロセッサを実 現することである。 本発明の詳細な説明として、2*nビットに符号化された2値符号Aをn’+ n”ビットに符号化された2値データエレメントBにより除算する整数除算につ いて述べる。ここでは、A,B,n,n’,n”は零でない整数である。この回 路は2値データエレメントAを置数する第1のn’ビットレジスタと、除算の結 果を置数する第2のn”ビットレジスタ 、中間結果を置く第3のnビットレジスタ、2値データエレメントBを置く第4 のnビットレジスタから構成されている。 除算回路は種々のコプロセッサに適用できるので、この発明の目的は又、n’ +n”ビットに符号化された2値データエレメントAを、nビットに符号化され た2値データエレメントBによって除算を行う整数除算回路を構成する算術演算 コプロセッサにも応用できる。ここではA,B,n,n’,n”は零でない整数 であり、整数除算回路は2値データエレメントAを置く第1のn’ビットレジス タと除算の結果を置く第2のn”ビットレジスタ、中間結果を置く第3のnビッ トレジスタ、2値データエレメントBを置く第4のnビットレジスタ、2つの縦 続接続された減算回路からなり、夫々には第1の直列入力と第2の直列入力、及 び直列出力があり、入出力を有するテスト回路を具備している。 またこの発明の目的は、第1,第2,第3,第4のnビットシフトレジスタか らなるモジュラ算術演算コプロセッサを用いて、n’+n”ビットに符号化され た第1の数を、nビットに符号化された第2の数で整数除算を行う一方法であり 、第1の直列減算回路と第2の直列減算回路、次のステップで動作する前述のテ スト回路からなっている。 E1:第1の数(被除数)を第1、第2レジスタにロードし、第3レジスタを 0にリセットする。第2の数(除数)を第4レジスタにロードし、テスト回路を 0にリセットする。 E2:第3と第4レジスタを1ビットずつシフトして、第 3レジスタの最高位ビット(MSB)を見出し、第2レジスタの最高位ビット( MSB)と、その入力と出力が接続されている第4レジスタに関し、第2レジス タのMSBから第4レジスタの最下位ビット(LSB)を第2減算回路において 減算し、第3レジスタのLSBからの、0の減算を第1減算回路で行う。 E3:第3と第4レジスタをn−1ビットシフトし、第4レジスタの出力を、 その入力と接続し、第3レジスタの入力は第1減算回路の出力に接続されており 、第3レジスタから発生するn−1ビットの数から第1減算回路で0を減算し、 第1減算回路から発生する結果出力から第4レジスタのビットを減算する。 E4:テスト回路における第2減算回路の最終キャリー値(LCV)の記憶と 、値がその記憶キャリー値の補数に等しい2値データエレメントをテスト回路出 力に生成する。 E5:第1,第2レジスタを1ビットシフトして、第2レジスタの最下位ビッ ト(LSB)としてロードされている第1レジスタの当該LSB、第1レジスタ にLSBとしてロードされ、テスト回路に記憶されている2値データエレメント を得る。 E6:第1,第2減算回路のリセット E7:ステップE2からE6を2*n−1回繰り返す。既に記憶されているキ ャリー値が1に等しければ、第1減算回路で第3レジスタの内容から0の減算を 実行する。既に記憶されているキャリー値が0であれば、第1減算回路で第3レ ジスタの内容から第4レジスタの内容の減算を実行する。 本発明、及び、その他の特徴や利点は付加図面を参照してより明確に理解され 、これは本発明の範囲を限定するものではないが、発明の具体化に関する記述か らも明らかになるであろう。ここで、 図1は公知のモンゴメリ方法を用いたモジュラ算術演算コプロセッサの概要図 、 図2は本発明による除算回路の概要図、 図3は本発明による除算回路が保持するモンゴメリ方法を用いたモジュラ算術 演算コプロセッサの概要図である。 図1はモンゴメリ方法によるモジュラ操作処理用のモジュラ算術演算コプロセ ッサ1の概要図であり、次のものから成っている。 − 直列入出力を有する3つのシフトレジスタ10,11と12、これら夫々 のレジスタは1つのセルと、n=m*kとなるn個の同じセルを有する。これら のレジスタは副分割することが出来る。例えば、n/2のセルのレジスタや10 と12のレジスタをkビットのレジスタにサブディバイドする等である。 − マルチプレクサ(多重化回路)13,14と15は夫々、レジスタ10, 11及び12の前に置かれている。マルチプレクサは、又これらのものが存在す れば副分割の前に置かれる。 − 3つのレジスタ16,17と18の、夫々はk個のセルからなっている。 レジスタ16,17と18は並列出力と 直列入力を有するレジスタである。; − 2つの乗算回路19と20夫々は直列入力、並列入力と直列出力を有して いる。乗算回路19の並列入力は、k個のセルからなる記憶フリップ−フロップ 回路21を用いて、レジスタ16の出力に接続される。乗算回路20の並列入力 はレジスタ17、或いは18の1つに、k個のセルからなる記憶フリップ−フロ ップ回路を用いて接続される。このフリップ−フロップ回路22は2つの並列入 力と、1つの並列出力を有するマルチプレクサによりレジスタ17と18の出力 の1つに、それ自身接続される。; − マルチプレクサ24,25,37,26,36と38, − デマルチプレクサ(復多重化回路)39; − 直列減算回路27,28と29; − 直列加算回路30と31; − 遅延回路32,33と34、kサイクル周期で2値データエレメントの伝 播を遅延させる; − 比較結果の記憶回路35。 より詳細には公報D1、殊にこの公報の図3、及びそれに関連して述べられて いる:15ページ54行から16ページ13行まで、そして17ページ50行か ら18ページ55行までを参照するとよい。 本発明はこのコプロセッサ1に除算回路を付加している。然しながら、このコ プロセッサの大きさを過度に増加させない様にし、除算回路にはこのコプロセッ サで既に使われてい る素子を用いている。従って、図2に示されている除算回路は: − 4個のシフトレジスタ10,11,12と40、これは現在の典型的な例 であるが、夫々は1つの入力と1つの直列出力を有している。 − 6個のマルチプレクサ13,14,15,37,41と42があり、13 ,14,15と41のマルチプレクサの出力はレジスタ10,11,12と40 の入力に夫々接続されている。マルチプレクサ37の出力は減算回路28の第2 入力に接続されている。マルチプレクサ42の出力は減算回路29の第1入力に 接続されている。これらのマルチプレクサは回路の動作に必要とされる異なる接 続を行うために用いられる。 − 2つの減算回路28と29、夫々は2つの入力と1つの直列出力を持って おり、これらの回路はビット毎の減算操作を同期して実行する。図8に関する公 報D1はこれら減算回路28と29の具体化を示している。 − テスト回路35は1入力と1出力を有している。(実際には、減算回路は 1入力と1出力のみを必要とするが、この回路35は2入力と2出力を持ってい る。) 除算回路には種々の接続がある。それらの或種のものは直接結線され、他のも のはマルチプレクサ13,14,15,37,41と42によるものもある。然 し乍ら或種の接続は、透明的(トランスパーレント)に表現されている(インオ ペラティブ(非実動)と命名されている)、このコプロセッ サ1の要素を用いてなされ、これは図2に示されていない。 かくして、ここでは以下の様な端子を持っている: − マルチプレクサ13によりレジスタ10の入力に接続されるレジスタ40 の出力、 − マルチプレクサ14によりレジスタ11の入力に接続されるレジスタ10 の出力、 − マルチプレクサ42により減算回路29の入力に接続されるレジスタ10 の出力、 − マルチプレクサ14によりレジスタ11の入力に接続される減算回路28 の出力、 − 減算回路28の第1入力に接続されるレジスタ11の出力、 − マルチプレクサ15により、その入力に接続されるレジスタ12の出力、 − マルチプレクサ37により減算回路28の第2入力に接続されるレジスタ 12の出力、 − 減算回路29の第2入力に接続されるレジスタ12の出力、 − マルチプレクサ42により減算回路29の第1入力に接続される減算回路 28の出力、 − テスト回路35の入力に接続される減算回路29の出力、 − マルチプレクサ41によりレジスタ40の入力に接続されるテスト回路3 5の出力、 − マルチプレクサ37の選択入力に接続されるテスト回 路35の出力、 − マルチプレクサ37により論理0に接続される減算回路28の第2入力、 − マルチプレクサ14により論理0に接続されるレジスタ11の入力、 − マルチプレクサ15により第1入力端子に接続されているレジスタ12の 入力、 − マルチプレクサ13により第2入力端子に接続されているレジスタ12の 入力、 − マルチプレクサ41により第3入力端子に接続されているレジスタ40の 入力と、 − 出力端子に接続されているレジスタ10の出力。 前述のデバイスを用いて、2*nビットに符号化された第1の数をnビットに 符号化された第2の数で整数除算を実行し、2*nビットに符号化された結果を 得ることが可能である。この目的は次のステップで行われる。: E1: − レジスタ40と10に第1の数をロードする。レジスタ40には 第1の数の低位のnビットが入れられ、レジスタ10にはこの第1の数の高位の nビットが入れられ、これらレジスタ40と10の夫々は、その出力として最高 位ビット(MSB)を、その入力として最下位ビット(LSB)を有する。 − レジスタ11に0をロードすることにより、これをリセットする。 − 第2の数をレジスタ12にロードする。LSBはその 出力に、MSBはその入力に置かれる。 − 論理0で減算回路28の第2入力の接続を実行するために、テスト回路を リセットする。減算回路28と29を0にリセットする。 E2:レジスタ11と12を1ビットシフトし、レジスタ11はMSBとして レジスタ10のMSBを回復し、レジスタ12はその入力に接続された出力を持 ち、減算回路29でレジスタ10のMSBからレジスタ12のLSBを減算し、 減算回路28でレジスタ11のLSBから0を減算する。 E3:レジスタ11と12をn−1ビットシフトし、その入力に接続されてい るレジスタ12の出力、減算回路28の出力に接続されているレジスタ11の入 力、レジスタ11の出力n−1ビットから減算回路28で0を減算し、減算回路 28から発生する結果としての出力から減算回路29においてレジスタ12の、 そのビットを減算する。 E4:減算回路29の最終キャリー値の補数に等しい2値データエレメントを 、テスト回路35に記憶し、このテスト回路35の出力として2値データエレメ ントを生成する。 E5:レジスタ40と10を1ビットシフトし、レジスタ10のLSB(最下 位ビット)としてロードされているレジスタ40のMSB(最高位ビット)、レ ジスタ40にLSBとしてロードされる2値データエレメントはテスト回路35 に記憶される。 E6:減算回路28と29のリセット、 E7:ステップE2からE6を2*n−1回繰り返し、記 憶されている2値データエレメントが0に等しければ、減算回路28でレジスタ 11の内容から0を減算する。記憶されている2値データエレメントが1に等し ければ、減算回路28でレジスタ11の内容からレジスタ12の内容を減算する 。 E8:レジスタ40と10を2*nビットシフトすることに依って、出力端子 に結果を取り出す、レジスタ10の入力に接続されているレジスタ40の出力に はMSBが最初に現れ、除算の剰余はレジスタ11に現れる。 何がなされているかをより明確に理解するためには、幾つかのステップに関し て何がしかのコメントが必要である。ステップE1はデータエレメントのローデ ィングとリセットに係わるものである。最初の数のローディングには2つの異な る方法がある。レジスタ40と10の2つの入力端子を同時に用いるか、或いは レジスタ40を用いてロードされるレジスタ10の第3の端子を用いるかの何れ かである。このステップにおいては除算回路の能率的なオペレーションのために 、透明的に表現する必要があるコプロセッサ1のエレメントのリセットに、異な る操作を用いることも可能である。 ステップE2,E3とE4に関しては: − 中間結果が第2の数より大きい場合は、減算回路38においてレジスタ1 1にある中間結果からレジスタ12にある第2の数を減算する。 − 減算結果への2の乗算は減算回路28で行われ、更にレジスタ10のMS Bの加算と、この新しい中間結果のレジ スタ11への記憶が行われる。 − 回路29における減算結果としての第2の数と、生成される新中間結果を 比較する。 − 減算回路29の減算から得られる最終キャリー値の補数に相当するものと の比較によって現れる2値データエレメントを記憶する、この2値データエレメ ントは新中間結果が、第2の数より大きいか、等しければ1となり、小さければ 0となる。 ステップE4はシフトE3の最終シフトで同定される。これは減算回路29を 技術的な習熟によって少々変更することを必要とする。この変更は予測によりキ ャリー値を得ることを目的とするものとなろう。 ステップE5は除算の結果のビットである2値データエレメントを記憶し、そ して考えられるMSBの変化する第1の数の全てのビットをシフトするために用 いられる。このステップはE2,E3或いはE4ステップの1つの間に実行され る。この場合、ステップE7の後にステップE5を付加する必要がある。 ステップE6は前の減算操作によるキャリー値(桁上げ信号)を消すために用 いられる。2値データエレメントの蓄積の後、直ちに非同期的になされる。最も 順調な場合、用いられた時間の状態リポートは次のことを示す。; − ステップE1はnクロックサイクルを用いる。 − ステップE2は1クロックサイクルを用いる。 − ステップE3はn−1クロックサイクル、E4は1ク ロックサイクルを用いる。 − ステップE5は1クロックサイクルを用いる。 − ステップE6は1クロックサイクルを用いる。 − ステップE7はステップE2からE6まで2*n−1回用いられ、(2* n−1)*(n+3)クロックサイクルかかる。 − ステップE8は2*nクロックサイクルを用いる。 これは全体で2*n*(n+4)+nクロックサイクルかかる事を示している 。3*nサイクルはコプロセッサとメモリ間のデータ交換のために必要とされる 。メモリアクセスタイムは、若し1つ、そして、それと同じクロック周波数がロ ーディングやプロセシングに用いられるならば、時として長くなることが知られ ている。従って、このクロック周波数メモリのアクセスタイムに依存する。本発 明はこの問題を克服するために、1つはローディング用、もう1つはプロセシン グ用の、2つのクロック周波数を用いることを提案している。 あるステップの同時性から齎されるその他の変更としては、サイクルの全数を 最大6*nクロックサイクルまで低下させることができる。 レジスタのnビットサイズは、除算を実行するために必要とされるクロックサ イクルの数に関連することが、時間状態リポートから判る。この影響は第1と第 2の数がレジスタの最大サイズに近い実際のサイズを持つ様に最小化されるであ ろう。これは大きな数の場合に当てはまるので、可変サイズ のレジスタを用いる事ができる。例えば、技術的な習熟によって図3の公報D1 に示されているレジスタから、各レジスタの除算に大きな数を用いることによっ て直感的に描くことができる。 かくして、大きさn’のレジスタ40、n”のレジスタ10、n(3)のレジ スタ11と12を持つことが可能である。その方法の変更には、n−1ビットの 代わりにn(3)−1ビットのシフトを実行するステップE3と、2*n回の代 わりにn’+n”回のステップを繰り返すステップE7には限界がある。 図3において、図2の除算回路は図1のコプロセッサ1に付加されている。図 3は種々の可能性のうち、唯一の完成の例を示す。 図1のコプロセッサ1と比較すると、レジスタ40とマルチプレクサ41と4 2が付加されている。更に、既に示した或るエレメントは変更されている。かく してマルチプレクサ13はレジスタ40の出力に接続されている付加入力を有し ている。マルチプレクサ14は2つの付加入力を持っており、その1つはレジス タ10の出力に接続されており、他の1つは減算回路28の出力に接続されてい る。他のエレメント図3において非明示的に変更されている。テスト回路35は キャリー値を検出出来る様に設計されている。マルチプレクサ37の選択入力に 接続されている出力は、減算回路の機能を検証するためのインバータを具備しな ければならない。これは又、マルチプレクサ37の入力を反転させる。遅延回路 32,33及び34は除算には用いられない。これらは共に無遅延となり、モジ ュラ操作の動作に必要な遅延を発生する様に変更される。例えば、遅延回路32 ,33及び34に、それらを切り替えるためにマルチプレクサを付加することは 可能である。 変更された回路では、コプロセッサのエレメントは透明的(トランスパーレン ト)と成らねばならない。かくして、除算の実行中に、マルチプレクサ25,2 6と36はそれらの出力と、ロジック(論理)0に接続されている入力との間の 接続を行う。マルチプレクサ38は、その出力とレジスタ12の出力との間の接 続をしなければならない。 除算操作の進行の変更が行えなければならない。加算器30と31、夫々は1 クロックサイクルの遅延を付加する。減算回路27はステップE2における1ク ロックサイクルの予想を補う遅延を促す。 ステップE2における、1サイクルのこの予想を避けるために、マルチプレク サ42の入力を減算回路27に関する上り線に接続することは可能である。それ は又、マルチプレクサ42を加算器30への下り線に置くことも可能である。 マルチプレクサ14の入力を減算回路28の出力に接続することを避けるため 、マルチプレクサ42を加算器31と減算回路29の間にシフトすることが可能 である。減算回路28の出力をレジスタ11の入力に接続することは、加算回路 31の出力が、既にマルチプレクサ14の入力に接続されていることを利用して なされる。この種の変更により、ステ ップE2は、マルチプレクサ42とレジスタ10の出力間の接続が、減算回路2 7への下り線、或いは上り線に依ってなされているか、否かにより、1或いは2 クロックサイクル遅延させねばならない。 加算器30と31には、何ら付加的な遅延を促さない様に変更する事によって 、1つの改善がまた期待される。 図3に関連した実施可能な変更の数例は、当業者に対して本発明を所望に達成 可能にする。また、当業者は、本発明の構成から逸脱することなく、組合せの他 の可能性をも利用することができる。

Claims (1)

  1. 【特許請求の範囲】 1.2の冪とは異なる数によって整数除算を実行し、1入力及び1出力のテス ト回路(35)を有する除算回路で構成され、モンゴメリ方法により計算を実行 する様に設計されたモジュラ算術演算コプロセッサであって、 その整数除算回路でn’+n”に符号化された2値符号Aを、nビットに符号 化された2値データエレメントBで除算を行う、A,B,n,n’,n”は0で ない整数であり、ここで整数除算回路は次の構成を有する; 第1のn’ビットレジスタ(40)と第2のn”ビットレジスタ(10)とに は、2値データエレメントAと除算の結果とを置く、 第3のnビットレジスタ(11)には、中間結果を置く、 第4のnビットレジスタ(12)には、2値データエレメントBを置く、 2つの縦続接続された減算回路(28と29)、夫々は第1の直列入力と第2 の直列入力、及び直列出力を有している。 2.第1,第2,第3及び第4のレジスタ(40,10,11と12)はシフ トレジスタで、各々1つの直列入力と1つの直列出力を有する、請求項1記載の コプロセッサ。 3.第3レジスタ(11)の出力は、第1除算回路(28)の第1入力に接続 され、 第4レジスタ(12)の出力は、第2減算回路(29)の 第2入力に接続され、 第2減算回路(29)の出力は、テスト回路(35)の入力に接続され、 第1レジスタ(40)の出力は、第2レジスタ(10)の入力に接続され、 第2レジスタ(10)の出力は、第3レジスタ(11)の入力に接続され、 第2レジスタ(10)の出力は、第2除算回路(29)の第1入力に接続され 、 第1減算回路(28)の出力は、第4レジスタ(12)の入力に接続され、 第4レジスタ(12)の出力は、その入力に接続され、 第4レジスタ(12)の出力は、第1減算回路(28)の第2入力に接続され 、 第1減算回路(28)の出力は、第2減算回路(29)の第1入力に接続され 、 テスト回路(35)の出力は、第1レジスタ(40)の入力に接続される、請 求項2記載のコプロセッサ。 4.第1減算回路(28)の第2入力は、ロジック(論理)0に接続され、 第1レジスタ(40)の入力は、第1入力端末に接続され、 第2レジスタ(10)の入力は、第2入力端末に接続され、 第3レジスタ(11)の入力は、ロジック0に接続され、 第4レジスタ(12)の入力は、第3入力端末に接続される、請求項2又は3 記載のコプロセッサ。 5.第1レジスタ(40)の入力は、第1マルチプレクサ(41)の出力に接 続され、 第2レジスタ(10)の入力は、第2マルチプレクサ(13)の出力に接続さ れ、 第3レジスタ(11)の入力は、第3マルチプレクサ(14)の出力に接続さ れ、 第4レジスタ(12)の入力は、第4マルチプレクサ(15)の出力に接続さ れ、 第1減算回路(28)の第2入力は、第5マルチプレクサ(27)の出力に接 続され、 第2減算回路(29)の第1入力は、第6マルチプレクサ(42)の出力に接 続され、 第5マルチプレクサ(37)の選択入力は、テスト回路(35)の出力に接続 され、 そして、前述のマルチプレクサ(13,14,15,37,41と42)は一 定の接続を用意している、請求項3又は4記載のコプロセッサ。 6.前述の第1と第2レジスタ(40と10)の出力の近傍に置かれている第 1と第2レジスタ(40と10)のセルと、前述の第3と第4レジスタ(11と 12)の入力の近傍におかれている第3と第4レジスタ(11と12)のセルは 、そこでのデータエレメントの最高位ビット(MSB)を受け取る、請求項1〜 5の1項に記載のコプロセッサ。 7.第1,第2,第3と第4レジスタ(40,10,11と12)は、可変サ イズである、請求項1〜6の1項に記載のコプロセッサ。 8.第1,第2,第3と第4レジスタ(40,10,11と12)は、同じく nビットサイズである、請求項1〜7の1項に記載のコプロセッサ。 9.テスト回路(35)は第2減算回路(29)から発生するキャリー値を記 憶するために設計された記憶エレメントを有する。そして、テスト回路(35) の出力は、このキャリー値の補数に相当するデータエレメントを与える、請求項 1〜8の1項に記載のコプロセッサ。 10.除算の剰余は第3レジスタ(11)に置かれる、請求項1〜9の1項に 記載のコプロセッサ。 11.n’+n”ビットに符号化された第1の数を、nビットに符号化された 第2の数で、整数除算をモジュラ算術演算コプロセッサで実行する方法であって 、該モジュラ算術演算コプロセッサは、次のものから構成される; − 第1nビットシフトレジスタ(40),第2nビットシフトレジスタ(1 0),第3nビットシフトレジスタ(11)及び第4nビットシフトレジスタ( 12)、 − 第1直列減算回路(28)と第2直列減算回路(29)、 − テスト回路(35)、 前述の方法は次のステップを有する; E1:第1の数を第1,第2レジスタ(40と10)にロ ードし、第3レジスタ(11)を0でリセットする。第2の数を第4レジスタに ロードし、テスト回路(35)と減算回路(28と29)を0でリセットする; E2:第3と第4レジスタ(11と12)を1ビットシフトし、第3レジスタ (11)の最高位ビット(MSB)として、第2レジスタ(10)の最高位ビッ ト(MSB)を置数する。その入力に接続されている出力を有する第4レジスタ (12)があり、第2レジスタ(10)のMSBから第4レジスタ(12)の最 下位ビット(LSB)の減算を第2減算回路(29)において行う。第1減算回 路(28)は、第3レジスタ(11)のLSBから0の減算を行う; E3:第3と第4レジスタ(11と12)をn−1シフトし、その入力に接続 されている第4レジスタの出力、第1減算回路(28)の出力に接続されている 第3レジスタ(11)の入力があり、第1減算回路(28)において、第3レジ スタ(11)から発生するn−1ビットの出力から0を減算する。第1減算回路 (28)から結果的に発生する出力から、第4レジスタ(12)のビットを減算 する; E4:第2減算回路(29)の最終キャリー値の、テスト回路(35)へ記憶 し、このテスト回路(35)の出力へ、記憶されているキャリー値の補数に等し い値の2値データエレメントを生成する; E5:1と第2レジスタ(40と10)を1ビットシフトし、第1レジスタ( 40)の最高位ビット(MSB)は、第2レジスタ(10)の最下位ビット(L SB)としてロー ドされ、テスト回路(35)に記憶されている2値データエレメントは、第1レ ジスタ(40)に最下位ビット(LSB)としてロードされる; E6:第1と第2減算回路をリセットする; E7:ステップE2からE6を2*n−1繰り返し、第1減算回路(28)は 、前に記憶されているキャリー値が1に等しければ、第3レジスタ(11)の内 容から0の減算を実行する。第1減算回路(28)は、前に記憶されているキャ リー値が0に等しければ第3レジスタ(11)の内容から、第4レジスタ(12 )の内容の減算を実行する。 12.各ステップが、他のステップ中にも動作する請求項11に記載の方法。
JP9524921A 1996-01-12 1997-01-09 整数除算回路を有するモジュラ算術演算コプロセッサ Pending JP2000503146A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR9600640A FR2743646B1 (fr) 1996-01-12 1996-01-12 Coprocesseur d'arithmetique modulaire comportant un circuit de division entiere
FR96/00640 1996-01-12
PCT/FR1997/000035 WO1997025668A1 (fr) 1996-01-12 1997-01-09 Coprocesseur d'arithmetique modulaire comportant un circuit de division entiere

Publications (1)

Publication Number Publication Date
JP2000503146A true JP2000503146A (ja) 2000-03-14

Family

ID=9488296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9524921A Pending JP2000503146A (ja) 1996-01-12 1997-01-09 整数除算回路を有するモジュラ算術演算コプロセッサ

Country Status (6)

Country Link
US (1) US6163790A (ja)
EP (1) EP1012703B1 (ja)
JP (1) JP2000503146A (ja)
DE (1) DE69707717T2 (ja)
FR (1) FR2743646B1 (ja)
WO (1) WO1997025668A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2768245B1 (fr) * 1997-09-09 1999-10-15 Sgs Thomson Microelectronics Procede de production d'une division entiere avec un coprocesseur d'arithmetique modulaire
FR2773231B1 (fr) * 1997-12-31 2000-02-25 Sgs Thomson Microelectronics Procede de production ameliore d'un parametre jo associe a la mise en oeuvre d'operations modulaires selon la methode de montgomery
FR2777098B1 (fr) * 1998-04-02 2001-04-13 Sgs Thomson Microelectronics Procede de realisation ameliore d'une division entiere
US6373986B1 (en) * 1998-04-08 2002-04-16 Ncr Corporation Compression of data transmission by use of prime exponents
JP4573189B2 (ja) * 1998-10-10 2010-11-04 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラムコード変換方法
JP2000132376A (ja) * 1998-10-27 2000-05-12 Fujitsu Ltd 剰余演算方法,乗算剰余演算方法,剰余演算装置,乗算剰余演算装置及び記録媒体
JP3953220B2 (ja) * 1999-02-03 2007-08-08 沖電気工業株式会社 ユークリッド互除法実行回路及び演算回路
US7715551B2 (en) * 2004-04-29 2010-05-11 Stmicroelectronics Asia Pacific Pte. Ltd. Apparatus and method for consistency checking public key cryptography computations
DE102010051852A1 (de) * 2010-11-18 2012-05-24 Giesecke & Devrient Gmbh Verfahren zur Langzahldivision

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB892112A (en) * 1957-02-26 1962-03-21 Emi Ltd Improvements relating to serial digital multiplying and dividing devices
US3816773A (en) * 1972-10-12 1974-06-11 Mobil Oil Corp Method and apparatus for detecting particulate material in flow stream
US3816733A (en) * 1973-05-09 1974-06-11 Collins Radio Co Bit serial divider with full scale capabilities
IL97413A (en) * 1991-03-04 1995-06-29 Fortress U & T 2000 Ltd Microcircuit for the implementation of rsa algorithm and ordinary and modular arithmetic in particular exponentiation with large operands
IL101623A (en) * 1992-04-16 1997-06-10 Fortress U & T 2000 Ltd Digital signature device
US5513133A (en) * 1992-11-30 1996-04-30 Fortress U&T Ltd. Compact microelectronic device for performing modular multiplication and exponentiation over large numbers
FR2741973B1 (fr) * 1995-12-04 1998-01-02 Sgs Thomson Microelectronics Procede de production d'un parametre jo associe a la mise en oeuvre d'operation modulaire selon la methode de montgomery
FR2743645B1 (fr) * 1996-01-15 1998-02-27 Sgs Thomson Microelectronics Dispositif ameliorant la vitesse de traitement d'un coprocesseur d'arithmetique modulaire
FR2743907B1 (fr) * 1996-01-18 1998-02-27 Sgs Thomson Microelectronics Procede de production d'un parametre de correction d'erreur associe a la mise en oeuvre d'operation modulaire selon la methode de montgomery
FR2745647B3 (fr) * 1996-03-01 1998-05-29 Sgs Thomson Microelectronics Coprocesseur d'arithmetique modulaire permettant de realiser des operations non modulaires rapidement

Also Published As

Publication number Publication date
EP1012703A1 (fr) 2000-06-28
US6163790A (en) 2000-12-19
FR2743646A1 (fr) 1997-07-18
EP1012703B1 (fr) 2001-10-24
DE69707717D1 (de) 2001-11-29
DE69707717T2 (de) 2002-07-11
FR2743646B1 (fr) 1998-03-06
WO1997025668A1 (fr) 1997-07-17

Similar Documents

Publication Publication Date Title
JP2722411B2 (ja) モンゴメリ法によるモジュラリダクションの実施方法
EP0801345B1 (en) Circuit for modulo multiplication and exponentiation arithmetic
JP4870932B2 (ja) 多重精度を支援する拡張型モンゴメリモジュラ掛け算器
JP4955182B2 (ja) 整数の計算フィールド範囲の拡張
US5513133A (en) Compact microelectronic device for performing modular multiplication and exponentiation over large numbers
US6735611B2 (en) Arithmetic processor
EP0917047B1 (en) Apparatus for modular inversion for information security
JP2009230153A (ja) モントゴメリー乗算に基づくモジュラ乗算及び累乗の改善された装置と方法
US5261001A (en) Microcircuit for the implementation of RSA algorithm and ordinary and modular arithmetic, in particular exponentiation, with large operands
US7206410B2 (en) Circuit for the inner or scalar product computation in Galois fields
CA2225899A1 (en) A method and apparatus for finite field multiplication
JPS61223876A (ja) 暗号装置と累乗方法
JP2000503146A (ja) 整数除算回路を有するモジュラ算術演算コプロセッサ
JP2722412B2 (ja) モンゴメリ法によるモジュラ操作の実行に伴うエラー訂正パラメータの算出方法
JPH08101779A (ja) 有限領域におけるモジュラ計算用の電子回路
US6341299B1 (en) Modular arithmetic coprocessor enabling the performance of non-modular operations at high speed
US6424987B1 (en) Method for the implementation of a specific modular multiplication operation relating to the montgomery method
US5912904A (en) Method for the production of an error correction parameter associated with the implementation of modular operations according to the Montgomery method
US20070244949A1 (en) Method for Generating the Multiplicative Inverse in a Finite Field Gf(P)
US6230178B1 (en) Method for the production of an error correction parameter associated with the implementation of a modular operation according to the Montgomery method
US6470372B1 (en) Method for the performance of an integer division
WO2003096180A2 (en) Fast multiplication circuits
Stroele Arithmetic pattern generators for built-in self-test
US20070168411A1 (en) Reduction calculations
US5999953A (en) Method for the production of a parameter Jo associated with the implementation of a modular operation according to the Montgomery method