JP2001527673A - モントゴメリー乗算に基づくモジュラ乗算及び累乗の改善された装置と方法 - Google Patents

モントゴメリー乗算に基づくモジュラ乗算及び累乗の改善された装置と方法

Info

Publication number
JP2001527673A
JP2001527673A JP54788398A JP54788398A JP2001527673A JP 2001527673 A JP2001527673 A JP 2001527673A JP 54788398 A JP54788398 A JP 54788398A JP 54788398 A JP54788398 A JP 54788398A JP 2001527673 A JP2001527673 A JP 2001527673A
Authority
JP
Japan
Prior art keywords
multiplication
bit length
integer
modular
serial
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
JP54788398A
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
Priority claimed from IL12077697A external-priority patent/IL120776A0/xx
Priority claimed from IL12131197A external-priority patent/IL121311A/xx
Application filed by フォートレス ユー アンド ティー リミティド filed Critical フォートレス ユー アンド ティー リミティド
Publication of JP2001527673A publication Critical patent/JP2001527673A/ja
Withdrawn 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

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Error Detection And Correction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

(57)【要約】 本発明は、1つの桁上げ保存加算器(410)を有する1つのモジュラ乗算装置(4オペランド・モジュラ乗算器)を含む直並列論理演算装置(ALU)を含むモジュラ乗算及び累乗の方法とシステムを開示する。

Description

【発明の詳細な説明】 モントゴメリー乗算に基づくモジュラ乗算及び累乗の改善された装置と方法 発明の分野 本発明は、モジュラ乗算及び累乗と、直列整数除算のための装置と方法に関す る。 発明の背景 大きな数についてモジュラ乗算及び累乗を行うコンパクトな小型電子装置は、 その開示を引用によって本明細書の記載に援用する、本出願人の米国特許第5, 513,133号で説明されている。 その明細書で言及されているすべての出版物と本明細書に引用されている出版 物の開示は、引用によって本明細書の記載に援用する。 発明の概要 本発明は、モジュラ乗算及び累乗と直列整数除算のための装置と方法を提供し ようとする。 従って、本発明の好適実施形態によれば、1つの桁上げ保存加算器を含む1つ の乗算器と、好適には任意のビット長の被除数と任意のビット長の除数を受信し 、商と剰余を計算するよう動作する直列除算装置とを含む直並列論理演算装置( ALU)を含むモジュラ乗算及び累乗システムが提供される。 さらに本発明の好適実施形態によれば、本システムは任意のビット長の少なく とも1対の整数入力を乗算するよう動作する。 またさらに本発明の好適実施形態によれば、少なくとも1対の整数入力には2 対の整数入力が含まれる。 さらに追加して本発明の好適実施形態によれば、ALUは前もってゼロ強制モ ントゴメリー定数J0を計算せずに、整数入力の積を生成し積の大きさを換算す るよう動作する。 また、本発明の別の好適実施形態によれば、任意のビット長の被除数と任意の ビット長の除数を受信し商と剰余を計算するよう動作する直列除算装置を含む直 列除算装置が提供される。 さらに本発明の好適実施形態によれば、本装置は1対の整数入力を保存する1 対のレジスタを含み、少なくとも1つがそれぞれのレジスタのビット長を越える 1対の整数入力をインタリーブなしに乗算するよう動作する。 また、本発明のまた別の好適実施形態によれば、1つだけの桁上げ保存累算器 を有し1対の乗算を行いその結果を合計するよう動作する直並列乗算装置を含む モジュラ乗算及び累乗システムが提供される。 さらに追加して、本発明のまた別の好適実施形態によれば、モジュラ乗算及び 累乗方法が提供されるが、本方法には、1つの桁上げ保存加算器を有する1つの モジュラ乗算装置を含む直並列論理演算装置(ALU)を提供するステップと、 モジュラ乗算及び累乗を行うために直並列ALUを利用するステップとが含まれ る。 さらに、本発明のまた別の好適実施形態によれば、大きな整数の自然(非モジ ュラ)乗算の方法が提供されるが、本方法には、1つの桁上げ保存加算器を有す る1つのモジュラ乗算装置を含む直並列論理演算装置(ALU)を提供するステ ップと、大きな整数の自然(非モジュラ)乗算を行うために直並列ALUを利用 するステップとが含まれる。 さらに、本発明の好適実施形態によれば、利用ステップには、第1積を得るた めに任意のビット長の第1整数を任意のビット長の第2整数で乗算するステップ と、第2積を得るために任意のビット長の第3整数を任意のビット長の第4整数 で乗算するステップと、合計を得るために第1及び第2積を任意のビット長の第 5整数と合計するステップとが含まれる。 またさらに、本発明の好適実施形態によれば、利用ステップには、任意のビッ ト長の被乗数、乗数及び法によるモジュラ乗算及び累乗を行うステップが含まれ る。 さらに追加して、本発明の好適実施形態によれば、本システムにはまた、1つ の事前計算定数だけでモントゴメリー・モジュラ乗算を実行する二重被乗数事前 計算システムが含まれる。 さらに、本発明のまた別の好適実施形態によれば、利用ステップには、モント ゴメリー乗算を行うステップが含まれ、そこには、乗数と被乗数を含む整数入力 の積を生成するステップと、前もってモントゴメリー定数J0を計算せずにモジ ュラ換算を実行するステップが含まれる。 さらに、本発明の好適実施形態によれば、モントゴメリー定数J0にはNmo d2kが含まれるが、ここでNはモジュラ換算の法であり、kは被乗数のビット 長である。 またさらに、本発明の好適実施形態によれば、利用ステップには、一連のイン タリーブド・モントゴメリー乗算演算を行うステップが含まれる。 さらに追加して、本発明の好適実施形態によれば、各インタリーブド・モント ゴメリー乗算演算は、少なくともkの有意ゼロを伴う結果を出すために法を乗算 演算の合同に合計しなければならない回数を前もって計算せずに行われる。 またさらに、本発明の好適実施形態によれば、本システムにはまた、i番目の インタリーブド・モントゴメリー乗算演算で生成される被乗数を収集及び直列合 計し、それによって合計を生成し合計を(i+1)番目のモントゴメリー乗算演 算に供給するよう動作するデータ・プロセッサが含まれる。 さらに追加して、本発明の好適実施形態によれば、関数にはNmod2kの乗 法的逆元の加法的逆元が含まれる。 さらに、本発明の好適実施形態によれば、本方法はまた、Ai及びBをゼロに リセットしS0=1を設定することでJ0を計算するステップを含む。 本発明はまた、非常に大きな整数のモジュラ及び正規(整数の自然で負でない 範囲)の乗算、除算、加算、減算及び累乗を行うコンパクトな小型電子論理演算 装置ALUに関する。モントゴメリー法を使用するモジュラ乗算及び平方に言及 する場合、装置の特定の部分はモジュラ演算コプロセッサと呼ばれ、MAPとい う頭字語が使用される。また、モントゴメリー乗算法はMMと呼ばれる。 本発明はまた、大きな整数の演算処理に関する。こうした大きな数は、(負で ない)整数の自然範囲、または素数及び複合素数の法のガロア域GF(p)にあ る。すなわち、本発明は、公開鍵暗号認証及び暗号化プロトコルにとって不可欠 な演算を行うのに適した大きな数のモジュラ乗算/累乗を実現できる装置に関す るが、こうした演算は次第に大きなオペランドに対して行われるようになってお り、現世代のモジュラ演算コプロセッサでは効率的に実行できず、ソフトウェア による実現では確実に実行できないものである。本発明は任意の4ビットまたは それ以上のプロセッサで動作し、現在のデジタル信号プロセッサを越える速度を 達成している。 本発明はまた、特に暗号化ソフトウェア指向システムで使用され ることの多いインタリーブド・モントゴメリー・マルチプレシジョン・モジュラ 乗算方法として知られる処理と、長いオペランドの整数に対する基本算術演算、 すなわちA・B+C・D+S(ここでA、B、C、DまたはSの大きさには理論 的な制限はない)における固有の値との派生物の数値操作に関する大きなオペラ ンドの整数演算のハードウェアによる実現に関する。さらに、本装置は特に、モ ジュラ乗算及び累乗を行うよう調整されている。基本装置は、モジュラ演算コプ ロセッサ(MAP)に特に適しており、非常に大きな整数の除算を行う装置をも 含むが、ここで除数は法レジスタNと同じ長さのビット長を有し、被除数のビッ ト長は2つの連結レジスタのビット長と同じ長さである。 この装置は好適には、同じ次数の論理ゲートによって、半分未満の機械クロッ クサイクルで、米国特許第5、513,133号のすべての機能を行う。これは 主として、同じ桁上げ保存累算器機構(従来の直並列乗算器の主要構成要素)を 使用する2つの半分の大きさの乗算器の代わりに、1つだけの二重動作直並列乗 算器が存在するためである。新しい論理演算装置ALU、すなわちモジュラ演算 コプロセッサMAPは好適には本質的に新しい処理の前の別個の乗算処理を不要 にする。この処理はまた2次モントゴメリー定数J0を必要としたが、これも好 適には不要になる。別言すれば、以前のモントゴメリー処置の2つの定数と、遭 遇する遅延の代わりに、ここでは1つの定数だけが計算され、今では余分なJ形 乗算(後で説明する)によって発生する遅延は好適には除去される。 さらに、CPUとこの周辺装置の間のデータ操作の制御向上によって、装置の 自然レジスタ・サイズより長いオペランド上で行われるオペランドは、好適には 少ない一時記憶メモリを使用して短縮された処理時間で行われる。 モントゴメリーの方法論によってモジュラ乗算を行う3つの関連する方法が知 られている。[P.L.Montgomery、「試行除算を行わないモジュラ 乗算」、計算の数学、第44巻、519〜521ページ、1985年](以下「 モントゴメリー」と呼ぶ)、[S.R.Dusse及びB.S.Kaliski Jr.、「モトローラDSP 56000用暗号ライブラリ」、暗号化会議録 ’90、Springer−Verlag、ベルリン、1990年](以下「D usse」と呼ぶ)及びMiyaguchiへの米国特許第4,514,592 号の方法、及びEvenへの米国特許第5,101,431号の方法、及びIw amuraへの米国特許第5,321,752号の方法、及びAraziへの米 国特許第5,448,639号の方法、及びGresselへの米国特許第5, 513,133号の方法。 好適なアーキテクチャは、ホスト・コンピュータのメモリにマップされた何ら かの小型制御装置の設計に統合される機械のものであり、これはデータ供給機構 との間で絶えずオペランドをスワップまたはやりとりする非常に長いコマンドに ついて、何らかの一般的な長さのモジュラ算術計算を可能にする制御装置と平行 して動作するが、ここで操作のために必要なコプロセッサの揮発性メモリのサイ ズが最大オペランドの長さの3倍を越えることはまれである。 このソリューションは、前の実現例で本質的に2つの乗算装置の役目を果たす 1つの乗算装置だけを使用する。現在の一般的な技術を使用して、4×4.5× 0.2mmの小型電子回路の上にメモリと共に小型制御装置を含むソリューショ ン一式を集積することが可能である。 本発明はまた、以下詳細に説明されるような、モントゴメリー及びDusse によって発表された処理に関する計算、論理及びアー キテクチャの新しい特徴を有する従来のデジタル・プロセッサの周辺装置である ことを企図するデジタル装置のアーキテクチャに向けられる。 並列処理と独特のハードウェア・アーキテクチャか提供され、除算なしに、好 適には従来の乗算/除算装置で行われるのと同じ数の演算でモジュラ累乗を行う が、その際従来の装置は各演算毎に乗算と除算の両方を行う。本発明の好適実施 形態の特定の特徴は、基本的な大オペランド整数演算機能を考慮した、割込みの ないリソースの効率的な使用による、無制限のオペランド長を考慮する装置によ って行われる演算の同時性である。 本発明の好適実施形態によって実現される利点は直列処理の同期シーケンスに 起因するが、これはnビット・オペランドに対して同時に(平行して)3つの乗 算演算を達成するためにマージされ、(n+k)有効クロックサイクルで1つの 多重化kビット直並列乗算器を使用し、モントゴメリーによって規定されたよう に3つの乗算計算と同等の結果を達成する。 次に使用されるオペランドの同期、実行中検出、実行中事前ロード及び同時追 加によって、機械は決定論的に動作するが、その際すべての乗算及び累乗は所定 の数のクロックサイクルで行われる。条件付き分岐はローカル検出及び補償装置 によって置換され、それによって簡単な種類の制御機構の基礎を提供するが、こ れは、洗練された場合、通常一連の自励カスケード・カウンタを含む。ここで説 明される基本演算は、スコットランドのEast KilbrideにあるMo torola(商品名SC−49)と、フランスのRoussetにあるSGS −Thomson(商品名ST16−CF54)の2社によって製造されるよう な、米国特許第5,513,133号で説明される装置を使用して決定論的時間 で実行される 。 この機械は、演算の合計長さについてオペランドが装置にロードされ保存され る際、大部分の演算の場合揮発性メモリに対する要求は特にわずかである。しか し、この機械は好適には機械が追加された先のCPUを活用し、簡単なロードと アンロード、機械へのコマンドの順序付けを実行する一方で、機械は大きな数の 演算を行う。累乗処理時間は、事実上それを制御するCPUと無関係である。実 際には、機械を何らかのCPUに追加する際アーキテクチャの変更は不必要であ る。ハードウェア装置は自己完結型であり、任意のCPUバスに追加できる。 モジュラ乗算及び累乗処理を加速する装置が好適には提供されるが、これには 必要な定数を事前計算する手段が含まれる。 ここで説明される本発明の好適実施形態は、携帯型スマートカードの公開鍵暗 号適用業務のためのモジュラ数学的演算子を提供するが、このスマートカードは 通常、一般的な磁器ストライプ・クレジット及び銀行カードと形状と寸法が同一 である。同様のスマートカード(米国特許第5,513,133号)が、新世代 公開鍵暗号装置で、コンピュータ、データベース及び重要な施設へのアクセスの 管理、商業用、軍事用及び家庭用のトランザクションにおけるデータフローの調 整と保護、スクランブルされた有料テレビ番組のスクランブル解除等のために使 用されている。こうした装置はまた、コンピュータ及びファックス端末、ドアロ ック、自動販売機等にも組み込まれることが認識されるだろう。 説明されるハードウェアはρ演算子を新しい方法で適用することでモジュラ乗 算及び累乗を実行する。さらに、それを互いに等しい被乗数と乗数に適用するこ とで、同じ方法で平方が実行される。モジュラ累乗にはモジュラ乗算と平方の連 続が含まれるので、上記の 乗算、平方及び累乗法の反復される、適切に結合され方向付けされた応用を含む 方法によって実行される。 ALUの好適実施形態の動作を説明する際、有効クロックサイクルでの同期が 説明されるが、これは実際のクロックサイクルとは異なって装置が算術演算を行 っているサイクルのことであり、実際のクロックサイクルには、新しい演算段階 の準備のために、ALUが停止し、乗算器、フリップフロップ及び他の装置の設 定が変更されるアイドル・サイクルが含まれている。 好適実施形態では、CPUの揮発性RAMまたはSAレジスタ130の何れか に保存される被乗数A、70と80の連結であるBレジスタ1000の乗数B、 及び200と210の連結であるNレジスタ1005の法Nが各kビットのm文 字を含み、被乗数と乗数は一般に法より大きくない、(平方と正規乗算に関連す る)モントゴメリー・モジュラ乗算を実行する方法は、 1)乗数Bと法Nをnビット長のそれぞれのレジスタにロードするステップで あって、ここでn=m・kであるステップと、 {正規フィールドで正、自然、整数を乗算し、Nは第2乗数である} {nがB、N及びSレジスタより長い場合、値は通常反復の過程でこれらのレ ジスタにロード及びアンロードされ、機械が事実上あらゆる長さの法を操作でき るようにする} 2)レジスタSBの出力をゼロに設定するステップであって、最初の反復につ いてS*dフラッシュ(250)=1であるステップと、 3)無縁借り及び桁上げフラグをリセットするステップ(特許で規定されてい ない制御)と、 4)m回の反復を実行するステップであって、各反復が次の演算 を含むステップとを含む。 (0≦i≦m−1) a)被乗数Aの次の文字Ai-1を揮発性記憶装置からAiロード・バッファ 290に転送する。 b)Aiロード・バッファのコンテントを回転する一方で、N0(NのLS kビット)を伴うCiロード・バッファを同時直列ロードすることで、直列加 算器FA1、330によってN0を伴うAjロード・バッファのコンテントを直 列加算し、それによって合計N0+Ai-1を伴うAi+Ciロード・バッファを直 列ロードする。 事前ロード段階はここで終了する。この段階は通常、MAPが前の乗算反復を行 っていた間に行われる。処理a)及びb)は同時に実行することができ、その際 Ai-1文字は対応するレジスタにロードされ、AiストリームはN0レジスタの回 転、R2、320のロードに同期する。同時に、AiストリームとN0ストリー ムは合計され、R3レジスタ、340にロードされる。 Bレジスタからの量の平方が実行されるが、そこでは初期化、ステップa)及び b)で、B0レジスタが回転される際に、N0レジスタと同時に、Bdの最初のk ビットがR1に挿入される。次のkビットBi文字列が、ALUに直列供給され る際にR1レジスタに事前ロードされる。 c)機械が停止する。バッファR1、R2及びR3のオペランドはラッチL 1、360、L2、370及びL3、380にラッチされる。 L0−“0”ラッチは疑似ラッチであり、これは単に、390、 乗算器の入力または出力の各ANDゲートに入るリテラル・コマンド信号である 。 d)次のk回の有効クロックサイクルについて、 i)各有効クロックサイクルについて、Y0 SENSEはY0の次のビ ットを予想し、このビットをM3乗算器を通じてCiロード・バッファにロード する一方で、AiビットをR1レジスタからシフトアウトすると同時にCiロー ド・バッファにY0のkビットをロードし、R1の出力にY0を加算し、この値を R3バッファにロードする。 ii)M_K乗算器390によって4つのラッチL0、L1、L2または L3の1つから望ましい値を論理的に選択することで、同時にN0(L2、Ci ラッチ)を入力Y0ビットで乗算し、AiをBdの次の入力ビットで乗算して、 2つの結果を加算する。Y0ビットとBビットのどちらも1でない場合、すべて のゼロ値はCSAに多重化され、N0ビットだけが1である場合、N0だけがCS Aに多重化/加算され、Bビットだけが1である場合、Ai-1がCSAに加算さ れ、BビットとN0ビットの両方が1である場合、Ai-1+N0がCSAに加算さ れる。 iii)この合計は桁上げ保存k+1ビット累算器をビット毎に直列に出 るので(Xストリーム)、直列加算器FA2、460を通じてSdの次の関連ビ ットをこの合計に加算する。 MMでは、Zストリームの最初のkビットはゼロである。この第1段階で、Y0 ・N0+Ai-1・B0+S0の結果が計算され、LS k全ゼロ・ビットがZ*ou tストリームに現れ、乗算装置のMS k+1ビットがCSA桁上げ保存累算器 で保存される。R1、R2及びR3事前ロード・バッファはそれぞれ値Ai-1、 Y0及びY0+Ai-1を保持する。 e)最後の有効な(m+1)・k番目のクロックサイクルで、機械は停止し 、バッファR2及びR3はL2及びL3にラッチされる。 L1の値は変化しない。 次のk・(m−1)有効クロックサイクルの初期および継続条件は次の通りで ある。 乗数は、Bのk番目のビットから開始されるBのビット・ストリームであり、 Nからの残りのビット・ストリームもNのk番目のビットから開始される。 L1、L2及びL3の被乗数はAi-1、Y0及びY0+Ai-1であり、開始時にC S加算器はd)で説明された値を含み、Sストリームは次のk・(m−1)ビッ トをFA2全加算器に供給する。 次のk・m有効クロックサイクルの間に、ユニット470のNd、遅延kクロ ックサイクルが直列減算器480で、Zストリームから減算され、BまたはSレ ジスタに進むその結果がNより大きいかまたはそれ以上かを検知する(Z/2k mod2k・m)。直列減算器460の検知結果に関わらず、{(m+1)・k} 番目の有効クロックサイクルでCSAのSO1フリップフロップが1ならば、合 計結果は確実にNより大きく、Nは結果から減算され、その結果、部分的または 最終的に、そのレジスタを出る。 f)次のk・(m−1)有効クロックサイクルについて、 N0レジスタ210は、入力Aiビットと同期してか、または他の適切なタイ ミングで回転し、a)及びb)で説明されたように、次の反復のためにR1、R 2及びR3をロードする。 このk・(m−1)有効クロックサイクルで、Nの残りのMSビ ットがここでY0を乗算し、残りのMS BビットはAi-1を乗算し続ける。Nビ ットとBビットがどちらも1でない場合、全ゼロ値がCSAに多重化される。N ビットだけが1である場合、Y0だけがCSAに多重化/加算される。Bビット だけが1である場合、Ai-1がCSAに加算される。BビットとY0ビットの両方 が1である場合、Ai-1+Y0がCSAに加算される。 同時に、CSAからの直列出力が、Zストリームを出力するFA2加算器、ユ ニット460を通じて次のk・(m−1)Sビットに加算される。 Z出力ストリームの関連部分は、Zの最初の非ゼロk・(m−1)ビットであ る。 Zストリームは、最初のm−1回の反復についてSBレジスタにスイッチされ 、最後の反復について定義されたように、SBまたはBレジスタにスイッチされ る。 最後の反復で、Zストリームは、LSkゼロ・ビットを無視し、最後のB*ス トリームである。このストリームはBレジスタに送られ、次の乗算及び平方で使 用される際必要ならばNだけ減らされる。 最後の反復で、Nd、遅延kクロックサイクルが直列減算器によってZストリ ームから減算され、Bに進むその結果がNより大きいかまたはそれと等しいかを 検知する。 この段の終了時に、N、B及びSBレジスタからのすべてのビットはALUに 供給されており、結果の最終k+1ビットはCSAにあり、フラッシュアウトの 用意が整っている。 g)装置が停止する。Sフラッシュ250、Bフラッシュ240及びNフラ ッシュ260が出力ゼロ文字列に設定され、次の段階で最後のk+1最上位ビッ トが確実にCSAからフラッシュアウト されるようにする(正規乗算では、M7 MUX450はSの前の反復から最終 桁上げを受け入れるよう設定される)。Sはm・k+1有効ビットを有するが、 Sレジスタはこのデータを受信するmkセルだけを有する。この最終ビットは本 質的にオーバフロー機構で保存される。 eで説明されたように、470のNd、遅延kクロックサイクルはZストリー ムから減算され、Xからの有効出力と同期されて、BまたはSレジスタに進むそ の結果がNより大きいかまたはそれ以上かを判定する検知機構の微調整を提供す る。480及び490は直列比較装置を備え、ここでモジュラ計算の場合の最後 の借りコマンド・ビットだけと整数の自然範囲の正規乗算の場合の(k・m+1 )番目のビットが保存される。 このオーバフロー/借りコマンドはm・k番目の有効クロックサイクルで検出 される。 h)装置は別のkサイクルでクロックされ、CSAから完全にフラッシュア ウトされるが、一方別のkビットは定義された出力レジスタに出るZである。 次の出口ストリームでNの減算を実行する関連フリップフロップ・コマンド直 列減算器90または500への命令は、(Z/2k−N)≧N(Zはm・k番目 のMSビットを含む)が、次の信号、すなわち、 CSAの第2最下位セルからのデータ出力ビットであるSO1ビットが1であ るか、 または、X+S加算器460の内部キャリーアウトであるCO2ビットが1で あるか、 または、480センス減算器からの借りビットが設定されていない、 によって検知されるならば、反復の最後の有効な(m+1)k番目のクロックサ イクルに設定される。 この機構はMotorola及びSGS−Thomsonの2社によって製造 されるものとして米国特許第5,513,133号に現れる。 自然数範囲の乗算の場合、m・k番目のMSビットが1であるならばスーパー スカラ乗算器で発生し、米国特許第5、513,133号の機構では発生しない オーバフローを検出することが好適である。その後このオーバフローを次の反復 で使用して、S(一時的結果)ストリームでMS1を挿入することができる。 j)これは最後の反復か。 いいえ、ならばc)に戻る。 はい、ならばm)に進む。 k)結果の正確な値をここでBまたはSレジスタから出すことができる。 Y0ビットは、5つの決定論的量からY0S−Y0SENSEユニット430 で次の方法で予想される。 i Ai−L1のLSビットとBdストリームの次のビット、A0・Bd ii 桁上げ保存累算器からのLSキャリーアウト・ビット、CO0 iii CSAの第2LSセルからのSoutビット、SO1 iv Sストリームからの次のビット、Sd v 460、全加算器からのキャリーアウト・ビット、CO2 これらの5つの値は一緒に排他的論理和演算され、次のY0ビット、Y0iを生 成する。 0iビットが1である場合、(必要な2の累乗を乗算された)同じランクの別 のNが通常加算されるが、そうでない場合、N(法)は通常加算されない。 数の正規範囲での長い自然整数の乗算。 この装置は、正規整数の乗算及び合計を効率的に行うのに適している。こうし たオペランドがすべてkビット長より長くない場合、処理は好適にはインタリー ブなしで実行されるが、そこでは2k+1ビットのZストリームが最終記憶装置 に送られる。kビットより長い整数の場合、処理は所定のインタリーブド・モジ ュラ演算処理と同様であるが、結果がここでは潜在的に最長オペランドの長さの 2倍より1ビット長いことが異なっている。さらに、本発明の装置は、説明され た装置で利用可能なリソースを使用して、被乗数A(好適にはR1−Aiレジス タのセグメントにロードされる)×Aの乗数B(好適には前もって指定されたB レジスタにロードされる)+第2乗数N(好適にはNレジスタにロードされる) ×オペランドC(R2レジスタにロードされる)+装置に入るビット・ストリー ムSといった2つの別個の乗算を、最初の反復で、Sd信号ラインだけから、好 適にはSAレジスタから同時に行うことができる。Y0 SENSE装置は使用 されない。被乗数は、反復開始前にR3レジスタに合計される。反復開始時に、 レジスタR1、R2及びR3は、反復終了までラッチL1、L2及びL3にコピ ーされる。一方、反復のmk+k+1有効クロックサイクル中、A及びCの次の セグメントが再び事前ロード及び合計されて、次の反復を準備する 。 各反復で、Zストリームに関する結果の最初のLS kビットは、ここでは( MMの場合のように、定義ゼロによってではなく)別個の記憶装置に向けられ、 空にされて結果のLS部分、ここでも適切にはSAレジスタを累算する。最上位 mk+1ビットは、次の反復の一時量SBを含む。最終段階では、g、i及びj と同様に、CSAは累算値をフラッシュアウトする。乗数レジスタより長い数に 関するLS部分は、正規データアウト・レジスタとアンローダ(それぞれユニッ ト60及び30)によって出ることができる。 結果のMS 2m番目のビットは、OVERFLOW信号ラインを通じてFA 2、ユニット460のLAST CARRYビットから読み出される。 図面の簡単な説明 本発明は、図面と共に行われる以下の詳細な説明から理解され認識されるだろ う。 図1A〜図1Bは、一緒に取り上げられ、本発明の1つの実施形態によって構 成され動作する直並列スーパースカラ論理演算装置(ALU)の単純化された構 成図を形成する。 図2は、特に非常に長い数の直列整数除算適用業務について単独でも有益であ る、図1Aの直列整数除算装置の好適実現例の単純化された構成図である。 図3は、図1A〜図1Bの直並列論理演算装置を含む、スマートカードまたは 端末用の公開鍵暗号計算の単純化された構成図である。 図4は、除数の有効ビット長が被除数の有効ビット長の半分である例について 、図2の除算装置を使用する除数による被除数の除算 の演算の段階を示す表である。 図5は、除数の有効ビット長が被除数の有効ビット長の半分より少ない例につ いて、図2の除算装置を使用する除数による被除数の除算の演算の段階を示す表 である。 好適実施形態の説明 図1A〜図1Bは、一緒に取り上げられ、本発明の好適実施形態によって構成 され動作する直並列論理演算装置(ALU)の単純化された構成図を形成する。 図1A〜図1Bの装置には、好適には次の構成要素が含まれる。 単一多重装置−制御されたスイッチング素子であり、多数の信号入力から1つ の信号またはビット・ストリームを選択し、この選択された信号を1つの出力に 送る。多重装置はM1〜M13の記号が付けられ、大きな要素の組み込み部分で ある。 M_K多重装置390はk+1の単一多重装置のアレーであり、4つのkまた はk+1入力のどれをCSA410に加算するかを選択する。 B(1000)、SA(130)、SB(180)及びN(1005)は好適実 施形態における4つの主直列主レジスタである。SAは概念上及び実際上冗長で あるが、非常に長い数の計算をかなり加速し、特に法の長さが2・k・mビット 長である場合揮発性メモリ・リソースを節約し、かつ長い除算計算を単純化する 。 直列加算器と直列減算器は2つの直列入力と1つの直列出力を有する論理要素 であり、ビットの2つの長い文字列に対して合計または減算を行う。構成要素9 0及び480は減算器であり、330及び460は直列加算器である。入力から 出力への伝播時間は非常に小さい。直列減算器90は、B*がNより大きいかま たはそれと等しいである場合、B*をBに換算する。直列減算器480が、比較 器構成要素の一部として使用され、B*がNより大きいかまたはそれと等しいか を検出する。全加算器330は、ロード・バッファ340に、290及び320 ロード・バッファの値の合計に等しい値を供給する2つのビット・ストリームを 加算する。 高速ローダ及びアンローダ(それぞれ10及び20、及び30及び40)は、 CPU制御装置からのデータフローを加速する装置である。これは、好適実施形 態ではDMAまたは他のハードウェア・アクセラレータから構成される。20及 び40はデータ語を逆転するためのもので、図2の除算入力及び出力を調和させ るために必要である。 データ入力50は並列入力直列出力装置であるが、本ALU装置は直列供給シ ストリック・プロセッサであるので、データは並列に入力され、直列に出力され る。 データ出力60は直列入力並列出力装置であり、コプロセッサから結果を出力 する。商生成器は、除算機構の各反復で商ビットを生成する図2のその部分であ る。 Bd、240、S*d、250及びNd、260に対するフラッシュ信号は、 最後のk+1ビットが確実にCSAからフラッシュアウトされるようにするため に作成されているが、代替物は複雑化k+1ビット並列出力要素であり、累算器 のMS k+1ビットを検索する。 ロード・バッファR1、290、R2、320及びR3、340は直列入力並 列出力シフトレジスタであり、3つの可能なゼロより多い被乗数の組み合わせを 受信することができる。 ラッチL1、360、L2、370及びL3、380はロード・バッファから の出力を受信するよう作成されるので、ロード・バッファは、データが好適にも L2、L2及びL3にラッチされる前に、このデータの次の段階の処理が一時的 にできるようになる。 Y0センス、430は、LSゼロのkビット文字列がモントゴメリー乗算及び 平方でZで出るようにするため、法が累算される回数を決定する論理装置である 。 1ビット遅延装置100、220及び230はそれぞれのデータ・ストリーム に挿入され、図1Aのデータ準備装置と図1Bのデータ処理装置の間の同期の問 題を調停する。 kビット遅延、シフトレジスタ、470は、Z/2kがNより大きいかまたは それと等しければ、Z/2kとNの比較が同期して確実になされるようにする。 桁上げ保存累算器は直並列乗算器とほとんど同一であるが、普通直並列乗算器 の入力にラッチされる1つの値の代わりに、3つの異なったゼロより大きい値を 合計することができる点が異なっている。 挿入最終桁上げ、440は、Sストリームのmk+1番目のビットを挿入する ために使用されるが、Sレジスタはmkビット長しかない。 借り/オーバフロー検出、490は、結果が(Nからの)法より大きいかまた はそれと等しいか、またはmk番目のビットが1かの何れかを検出することがで きる。 制御機構は示されないが、好適にはシストリック・データフローのためのスイ ッチセットを有する1組のカスケード計数装置であるものと理解される。 数の素数及び複合素数範囲でのモジュラ乗算について、ここでA及びBを被乗 数及び乗数として定義し、Nを法として定義するが、Nは普通AまたはBより大 きい。Nはまた、法の値が保存されるレジスタをも示す。Nは、場合によっては 、Aより小さいことがある。A、B及びNはm・k=nビット長オペランドとし て定義される。各kビットのグループは文字と呼ばれ、グループの大きさは乗算 装置の大きさによって定義される。次に、A、B及びNは各々m文 字長である。以下のステップ毎に手順を追う説明を容易にするために、A、B及 びNは512ビット長(n=512)であると想定し、kは64ビット長である と想定するが、これはこうした乗算器の現在の費用効果的な長さと、簡単なCP Uのデータ操作速度のためである。またm=8はオペランド中の文字数であり、 また512ビット・オペランドの平方または乗算ループにおける反復の数でもあ る。すべてのオペランドは正の整数である。より一般的には、A、B、N、n、 k及びmは任意の適切な値を想定する。 非モジュラ関数では、N及びSレジスタは、他の演算オペランドの一時記憶装 置として使用できる。 記号≡が使用され、例えば16≡2mod7というように、モジュラ数の合同 を示すが、ここで、16を7で割った時剰余が2であるので16は2モジュロ7 に合同であるという。YmodN≡XmodNと書く時、YとXはどちらもNよ り大きいが、正のX及びYについて、剰余は同一である。また、負の整数Yの合 同はY+uNであるが、ここでNは法であり、Yの合同がNより小さい場合、u は正の結果を与える最小の整数である。 記号¥が使用され、より制限された意味での合同を示す。ここで説明される処 理中、値は望ましい値、または望ましい値プラス法の何れかである。例えばX¥ 2mod7という場合、Xは2または9に等しい。Xは2mod7と制限的合同 であるという。 X=AmodNと書く場合、XはAをNで割った剰余として定義される。例え ば、3=45mod7である。 数論では、モジュラ乗算逆が基本概念である。例えば、Xのモジュラ乗算逆は X-1と書かれるが、これはXX-1modN=1によって定義される。X=3でN =13の場合X-1=9である。すなわち、3・9を13で割った剰余は1である 。 頭字語MS及びLSは、デジタル用語で慣用されているように、ビット、文字 及びフルオペランド値に関連する場合、最上位及び最下位を示すために使用され る。 本明細書を通じて、Nは値Nと、Nを収容するシフトレジスタの名称の両方を 示す。数値の上に付いた星印は、数値が現状では潜在的に不完全または変化する 可能性があることを示す。Aは累乗される数の値であり、nはNオペランドのビ ット長である。初期化の後、AがA*に「モントゴメリー正規化」される場合( A*=2nA、後で説明される)、A*とNは累乗の中間ステップを通じて一定の 値である。最初の反復中、累乗の初期化後、BはA*に等しい。Bはまた、最終 的に累乗の望ましい結果に等しい累算値が存在するレジスタの名前でもある。S* は一時値を示し、S、SA及びSBはまた、Sの単一MSビットだけが保存され るレジスタ(単数または複数)を示す(このMSビットと連結されたS*はSと 同一である)。S(i−1)はi番目の反復の開始時のSの値を示し、S0は、 S(i)番目の値のLS文字を示す。 P範囲での乗算として処理ρ(A・B)N(後で定義される)または、簡単に 乗算演算が言及される。 二重動作直並列乗算器を構成する基礎として標準構造の直並列乗算器を使用し たため、我々は桁上げ保存累算に基づく乗算器の合計部分を(桁上げ先見加算器 またはリップル加算器、前者はかなり複雑になり、後者は非常に低速である、と )区別して、それを桁上げ保存加算器または累算器と呼び、事前ロード機構及び 多重装置及びラッチと別個に扱うが、これによってA×BとC×Dの乗算を同時 に行い2つの結果を加算すること、すなわちA×B+C×Dが可能になり、この 累算器を非常に強力なエンジンに変換する。付加的論理がこの乗算器に追加され 、モジュラ減算と直列合計のために必要 な予想センス操作を提供するが、これは非常に大きな数の強力なモジュラ演算と 普通の整数演算を提供する。 モントゴメリー・モジュラ乗算 モジュラ乗算を計算する従来のアプローチでは、A・BmodN、すなわち積 A・Bの剰余が除算処理によって計算される。大きなオペランドの従来の除算を 実現するのは、直並列乗算を行うより困難である。 モントゴメリーのモジュラ換算法を使用すると、除算は本質的に2つの事前計 算定数を使用する乗算によって置き換えられる。ここで示される手順では、法の 関数である1つの事前計算定数だけが存在する。この定数はこのALU装置を使 用して計算される。 この装置で使用されるモントゴメリー処理の単純化した表示がここで提供され 、それに完全な好適説明が続く。 奇数(LSビット1)、例えば1010001(=8110)がある場合、それ に奇数を補償する別のフィクシング、例えば1111(=1510)を加算するこ とでこの奇数を偶数(1つのLSビットがゼロ)に変換することができる、すな わち、1111+1010001=1100000(9610)である。この特定 の場合では、前もって全体の文字列81を知っていたため5つのLSゼロを生じ る数を発見し、81に加算する二進数を容易に発見し、必要な数のLSゼロを有 する新しい二進数を生成した。このフィクシング数は奇数であり、さもなければ 結果のLSビットを累加する作用はない。 行うべき処理がクロックされた直並列桁上げ保存処理で、LSゼロの連続数を 有することが望ましく、各クロックサイクルで次のビットを固定しなければなら ないだけだとすれば、次のビットが潜在 的に1である場合フィクシングを加算し、潜在的ビットが0であった場合加算し ないことで十分である。しかし、ビット間オーバフロー(二重キャリア)を発生 しないために、このフィクシングは好適には前もって被乗数と合計され、関連乗 数ビットが1であり、Yセンスも1を検出する時累算器に加算される。 ここでは、モジュラ演算の場合のように、法で割った値の剰余だけに関心があ り、法の任意の倍数をその値に加算しても、同じ剰余を有することを知っている 。これは任意の整数にYN=ΣyiiNを加算しても同じ剰余を有するというこ とを意味するが、ここでYは必要なLSゼロを生成するために加算する倍数であ る。説明されたように、加算することのできる法は奇数だけである。偶数の法が 、iが偶数中のLSゼロの数である時生じる奇数の2i倍として定義される方法 が存在する。 モントゴメリー・インタリーブド変化によって解決される問題は、数について 有する制限された場所を低減し、乗算器の費用効果的な大きさを得ることを目指 している。これは公開鍵暗号関数を行う場合特に有益であるが、そこでは絶えず 大きな整数、たとえばn=1024ビットと別の大きな整数の乗算が行われ、普 通2倍の長さである2048ビットの整数を生成する。 乗算(または平方)の処理中、十分な倍数のNs(法)がA・B=XまたはA ・B+S=Xに加算されるので、n個のLSゼロと、最大n+1個のMSビット を有する数Zが得られる。 これらのゼロを無視することで望ましい結果を2nで除算したことを思い出す ならば、LS nビットを無視してこの数を使用し先に進むことができる。 LS nビットが無視され、最上位n(またはn+1)ビットだけを使用する 場合、結果は2-n、すなわち2nのモジュラ逆によっ て乗算された。次にこの結果に再び2nmodN(または2n)を乗算するならば 、(同じ剰余を有する)望ましい結果と合同な値をA・B+SmodNとして得 ることができる。見られるように、MMを使用すると、結果は好適には22nによ って乗算され、MMによって導入される2-n寄生要素を克服する。 例 A・B+SmodN=(12・11+10)mod13=(1100・101 1+1010)2mod10112 nLSビットにフィクシングが必要な場合常に2iNを加算する。 B 1011 ×A 1100 加算S 1010 加算A(0)B 0000 −−−−LSビットの合計=0 Nを加算しない 加算20(N・0) 0000 合計 0101 →0 LSビットは桁上げ保存加算器を出る 加算A(1) B 0000 −−−− LSビットの合計=0 − Nを加算する 加算21(N・1)1101 合計 1001 →0 LSビットはCS加算器を出る 加算A(2) B 1011 −−−− LSビットの合計=0 Nを加算しない 加算22(N・0) 0000 合計 1010 →0 LSビットはCS加算器を出る 加算A(3) B 1011 −−−− 合計LSビット=1 Nを加算する 加算23(N・1) 1101 合計 10001 →0 LSビットはCS加算器を出る 結果は10001 00002mod13=17・24mod13である。 17は13より大きいので13を減算し、結果は次のようになる。 17・24=4・24mod13 正式には2-n(AB+S)modN=9(12・11+10)mod13≡4と なる。 モントゴメリー演算ではMS非ゼロ結果(4)だけを利用し、真の結果は2n で除算され、nゼロはMM結果にされることを有効に記憶する。 結果に24mod13≡3を有効に乗算した(8+2)・13=10・13を 加算した。実際には、余分のゼロを使用したので、A・B+Y・N+S−(12 ・11+10・13+10)を1つの処理で行ったと言うことができるが、これ は好適実施形態で可能であることが説明される。 チェック−(12・11+10)mod13=12,4・3=12 要約すると、モントゴメリー乗算の結果は2-nで乗算された望ましい結果であ る。 前の結果から同じ乗算法を使用した望ましい結果を検索するために、前の結果 を22nによってモントゴメリー乗算しなければならな いが、各MMは2-nの寄生要素を残すので22nはHと呼ばれる。 モントゴメリー乗算関数ρ(A・B)NはP範囲(上記の例で4を導出した) へのA・B積の乗算モジュロNを行う。P範囲から正規モジュラ範囲への検索は 、事前計算定数Hを使用してρ(A・B)Nの結果にPを規定することによって 行われる。ここではP≡ρ(A・B)Nならば、ρ(P・H)N≡A・Bmod Nということになり、2つのP範囲乗算で正規モジュラ乗算を行う。 モントゴメリー・モジュラ減算は、nまたはn+1ビット長であるオペランド に対して一連の乗算、加算及び減算を行うことによって、n及び2nビット長で あるオペランドに対する一連の乗算及び除算演算を回避する。処理全体はNより 小さいかまたはそれと等しい結果を生じる。所与のA、B及び奇数Nについて、 A・B+Q・Nが、nLSビットがゼロであるような数、または P・2n=A・B+Q・N であるようなQが常に存在する。 これは、nLSビットがゼロである、2nビット長の式を有することを意味す る。 ここで、I・2n≡1modN(Iはすべての奇数Nについて存在する)とす る。前の等式の両側にIを乗算することで次の合同が生じる。 等式の左辺から、 P・I・2n≡PmodN(I・2n≡1modNを想起されたい) また右辺から、 A・B・I+Q・N・I≡AB・ImodN(Q・N・I≡0modNを想 起されたい) 従って、 P≡A・B・ImodN これはまた、P範囲乗算が行われる度毎に寄生要素I=2-nmodNが導入され ることを意味する。 ρ演算子は次のように定義されるが、 P≡A・B・ImodN≡ρ(A・B)N これを「P範囲でのA×Bの乗算」またはモントゴメリー乗算と呼ぶ。 P範囲からの検索はP・Hに対するρの演算によって計算され、次式を生じる。 ρ(P・H)N≡A・BmodN 前の合同でPを減算することでHの値が導出され、次式が発見される。 ρ(P・H)N≡(A・B・I)(H)(I)modN (次を参照:A・B・I←P、H←H、I←及びすべての乗算演算は寄生I を導入する) HがI2の倍数の逆と合同な場合、合同は有効であり、すなわち次式であ る。 H=I-2modN≡22nmodN (HはNの関数であり、Hパラメータと呼ばれる) 従来のモントゴメリー法では、A・Bにρ演算子を定めるため、事前計算 定数Jを使用する次の処理が利用される。 1) X=A・B 2) Y=(X・J)mod2n(nLSビットだけが必要である) 3) Z=X+Y・N 4) S=Z/2n(Jに対する要求はZを2nで割り切れるものにするとい うことである) 5) P¥SmodN(S≧Nの場合、NはSから減算される) 最後に、ステップ5)で、 P¥ρ(A・B)N [Nの減算の後、必要ならば、 P=ρ(A・B)N] 上記に続いて、 Y=A・B・Jmod2n(nLSビットだけを使用する)かつ Z=A・B+(A・B・Jmod2n)・N Zが2nで割り切れるようにするため(ZのnLSビットは好適にはゼ ロ) かつ次の合同が存在する。 [A・B+(A・B・Jmod2n)・N]mod2n≡0 この合同が存在するためには、N・Jmod2nが−1と合同であるか 、 または J≡−N-1mod2n であり、定数Jが発見された。 従って、JはNだけの関数である事前計算定数である。しかし、MM結果をビ ット毎に出力する機械では、LS文字列の出力ビットがNsを加算しなければゼ ロになる場合毎にNsを加算することを規定し、Jを事前計算し、次いでY=A ・B・Jmod2n(Yはハードワイヤード論理を使用してビット毎に検出され る)を計算する必要を回避すべきである。また、この方法は奇数のNsに対して だけ使用できることも説明した。 従って、明らかなように、説明された処理は、所与のA、B、N 及び事前計算定数について3つの乗算、1つの合計及び最大1つの減算を使用し てρ(A・B)Nを得る。この結果と、同じ処理及び事前計算定数H(モジュロ Nの関数)を使用して、ABmodNを求めることができる。AはBと等しくて もよいので、この基本演算子は平方またはモジュラ演算での乗算のための装置と しても使用することができる。 インタリーブド・モントゴメリー・モジュラ乗算 本節は、全てnビット長でありその結果が2n+1ビットの記憶領域を必要と する乗算を含んだモジュラ乗算の方法を説明する。 (Dusseによる上記の論文で説明された)モントゴメリーのインタリーブ ド減算を使用すると、より短いオペランド、レジスタ及びハードウェア乗算器で 乗算演算を行うことができ、比較的少ない論理ゲートを有する電子装置の実現が 可能になる。 まず、インタリーブの各反復毎に、J0定数を使用してNを加算する回数を計 算する装置の動作方法を説明する。その後、Y0のハードワイヤ導出を使用する インタリーブの方法を説明するが、これは各乗算のJ0+段階を除去し{次の例の 2)}、2つの別個の直列乗算器の機能を、新しい単一汎用乗算器に統合するこ とができるが、これは同様のシリコン・リソースを使用して2倍を越える速度で A・B+C・N+Sを行うことができる。 kビット乗数を使用すると、kビット長の文字を定義することが好都合である 。nビットにはm文字が存在する、すなわちm・k=nである。 J0はJのLS文字である。 従って、 J0≡−N0 -1mod2k(J0はNが奇数の時存在する) J及びJ0は、補償数であり、あり得る出力に対して規定され る場合、最下位ゼロの所定の数を得るために何回法を加算すべきかを知らせるこ とに注意されたい。後でこの直列装置に対する付加的な利点を説明するが、出力 の次の直列ビットが用意に判定できるので、常に法(常に奇数)を次の中間結果 に加算することができる。これは、この加算なしで、出力ビットである、CSA を出るLS直列ビットが「1」であり、それによって法を前の偶数中間結果に加 算し、それによって出力文字列で次のLSゼロを約束する場合そうである。法を 何回結果に加算しようとも、剰余は一定であるので、合同が維持されることを想 起されたい。 モントゴメリーのインタリーブド減算の従来の使用では、ρ(A・B)Nはス テップ(1)〜(5)で説明されるように、m回の反復で規定される。 まずS(0)=0(最初の反復開始時のSの¥値) i=1,2...mについて、 1) X=S(i−1)+Ai-1・B(Ai-1はAのi−1番目の文字、S(i −1)はi番目の反復開始時のSの値) 2) Y0=X0・J0mod2k(X0・J0の積のLSkビット) (この処理は、kLSビットだけ、例えば最下位64ビッ トを使用し計算する) 好適実現例では、直列機械ではY0はビット毎に予想できるためこのステップ は回避される。 3) Z=X+Y0・N 4) S(i)=Z/2k(ZのkLSビットは常に0であるので、Zは常に 2kで割り切れる。ZのLSkビットはすべてゼロであるのでこの除算はkビッ ト右シフトと同等である、または回路に見られるように、ZのLSkビットは単 純に無視される) (5) S(i)=S(i)modN(Nは、Nより大きいS(i)から減算 される) 最後に、最後の反復で(必要な場合Nの減算の後で)、C=S(m)=ρ(A ・B)Nである。P=A・BmodNを導出するために、P範囲計算、ρ(C・ H)Nが行われる。 好適実施形態では、すべてのS(i)について、S(i)が2Nより小さいこ とを知ることが望ましい。これはまた、最終結果(S(m))が常に、最大1回 のNの減算で、Nより小さい量まで減らせることを意味する。 この処理で使用されるオペランドについて以下が観察される。 S(i−1)<2n+1(一時レジスタはBまたはNレジスタより1ビット長い ことがある) B<N<2nかつAi-1<2k 定義により、 S(i)=Z/2k(あり得る減算の前の、処理終了時のSの値) すべてのZについて、Z(i)<2n+k+1 max=Smax+Ai・B<2n+1−1+(2k−1)(2n−1) Qmax=Y0N<(2k−1)(2n−1) 従って、 Zmax<2k+n+1−2k-1+1<2k+n+1−1 であり、Zmaxを2kで除算すると、 S(m)<2n+1−21 min>2n−2なので、S(m)maxは常に2・Nminより小さく、従って最終結 果のために必要なのは1つの減算だけである。 S(m)max−Nmin=(2n+1−21−1)−(2n−1) =2n−4<Nmin モントゴメリー・インタリーブド・モジュラ乗算の例 16進法形式での次の計算はインタリーブド法の意味を明らかにする。 N=a59(モジュロ)、A=99b(乗数)、B=5c3(被乗数)、n=1 2(Nのビット長)、k=4(乗数のビット単位のサイズ、かつ文字のサイズ) 及びn=k・mなのでm=3 7.9≡−1mod16及びH≡22・12mod a59≡44bなのでJ0=7 予想される結果は、F≡A・BmodN≡99b・5c3mod a59≡37 5811mod a59=22016 初め、S(0)=0 ステップ1 X=S(0)+A0・B=0+b・5c3=3f61 Y0=X0・J0mod2k=7(Y0−新しいMAPにおけるハードワイヤ予 想) Z=X+Y0・N=3f61+7・a59=87d0 S(1)=Z/2k=87d ステップ2 X=S(1)+A1・B=87d+9・5c3=3c58 Y0=X0・J0mod2k=8・7mod24=8(ハードワイヤ予想) Z=X+Y0−N=3c58+52c8=8f20 S(2)=Z/2k=8f2 ステップ3 X=S(2)+A2・B=8f2+9/5c3=3ccd Y0=d・7mod24=b(ハードワイヤ予想) Z=X+Y0・N=3ccd+b・a59=aea0 S(3)=Z/2k=aea S(3)>Nなので、 S(m)=S(3)−N=aea−a59=91 従ってC=ρ(A・B)N=9116 P範囲からの検索がρ(C・H)Nを計算することによって行われる。 再び初め、S(0)=0 ステップ1 X=S(0)+C0・H=0+1・44b=44b Y0=d(新しいMAPにおけるハードワイヤ予想) Z=X+Y0・N=44b+8685=8ad0 S(1)=Z/2k=8ad ステップ2 X=S(1)+C1・H=8ad+9・44b=2f50 Y0=0(新しいMAPにおけるハードワイヤ予想) Z=X+Y0・N=2f50+0=2f50 S(2)=Z/2k=2f5 ステップ3 X=S(2)+C2・H=2f5+0・44b=2f5 Y0=3(新しいMAPにおけるハードワイヤ予想) Z=X+Y0・N=2f5+3a・59=2200 S(3)=Z/2k=22016 これは99b 5c3mod a59の期待値である。 各ステップでkLSゼロを無視すると、本質的にnMSビットを2kで乗算する ことになる。同様に、各ステップで、乗数のi番目のセグメントも2ikによって 乗算された数であり、それにS(i)と同じランクを与える。 別の好適実施形態でも、それがJ0定数を知るためのある予想値のものである ことに注意されたい。 累乗 次のシーケンスの導出[D.Knuth、コンピュータ・プログ ラミングの技術、第2巻、準数値的アルゴリズム、Addison−Wesle y、マサチューセッツ州レディング、1981年](以下「Knuth」と呼ぶ )はモジュラ累乗を実現する平方と乗算の順序を説明する。 モントゴメリー定数H=22nの事前計算後、この装置はP範囲での平方と乗算 を行うことができるので、以下を計算する。 C=AEmodN E(j)が、インデックスがIであるMSビットから始まりインデックスがqで あるLSビットで終わる指数Eのバイナリ表示でjビットを示すとすると、奇数 の指数について以下のように累乗を行うことができる。 A*¥ρ(A・H)N A*はここではA・2nに等しい。 B=A* j=2〜q−1について B¥ρ(B・B)N E(j)=1ならば、 B¥ρ(B・A*)N 終了 B¥ρ(B・A*)N E(0)=1:Bは2nで乗算された最終的な望ましい 結果であり、AはもとのAである。 C=B C≧NならばC=C−N 最後の反復後、値Bは¥からAEmodNであり、Cは最終的な値 である。 これを明らかにするために、次の例を使用する。 E=1011→E(1);E(2)=0;E(3)=1;E(4)=1 A1011modN;q=4を発見するために、 A*=ρ(A・H)N=AI-2I=AI-1modN B=A* j=2〜qについて、 B=ρ(B・B)N、これはA2(I-12I=A2・I-1を生じる。 E(2)=0、B=A2・I-1 j=3 B=ρ(B・B)N=A2(I-12I=A4-1 E(3)=1B=ρ(B・A*)N=(A4・I-1)(AI-1)・I=A5・I- 1 j=4 B=ρ(B・B)N=A10・I-2・I=A10・I-1 E(4)は奇数だったので、最後の乗算はAによって、寄生I-1を除去するため に行われる。 B=ρ(B・A)N=A10・I-1・A・I=A11 C=B 逆数処理によってHパラメータを計算する方法は米国特許第5,513,133 号で説明されている。 長い除算処理 図2は、図1Aのプロセッサで利用可能なデータ操作装置を使用 して長い除算を行う決定論的処理装置の好適実施形態を例示する。 図4及び図5は、図2の装置の演算の例である。 除数dがd、2n-1<d<2nの範囲内で、被除数DがD、22n-1<D<22nの 範囲内である除算処理では、装置は最も簡単に使用される。dが図2のN右シフ ト・レジスタ1005(N0及びN1レジスタ、210及び200の連結)に事 前ロードされ、被除数DのMSnビットがB右シフト・レジスタ(1000)に 事前ロードされた後、DのLSビットがSA右シフト・レジスタ(130)に逆 ロードされる。これは本質的に、手動の長い除算のために数字を配置するように 、新しい試行減算毎に新しいLSビットがSAからSBに供給されることを実現す る。SBレジスタはすべてゼロで事前ロードされる。 初期化反復では、図2のオーバフロー・フリップフロー170がまずリセット される。ここでは除数dを含むNレジスタがDCのMSビットであるBから試行 減算される一方、B及びNが回転されるが、ここでそれらの出力は直列減算器9 0に供給され、その出力はB−fNであり、減算の場合f=1、減算しない場合 f=0である。商生成器120はB≧Nかを判定する検出器であり、90で次の 反復の際dがBから減算されるかを判定する「次の減算」を送信する。この信号 は、BがNより大きいかそれと等しい場合、かつその場合のみ1である。この「 次の減算」ビットは成功を示し、商の最上位ビットであり、やはりSBレジスタ 180にクロックされる。これがSBレジスタにクロックされているので、ゼロ はSBレジスタからSAレジスタにシフトされ、「新しいLSビット」をSAレジ スタから出す。これらのレジスタは全て右シフト・レジスタなので、SBの商の 値とSAの被除数の値はどちらも逆の順序で保持され ることに注意されたい。 次の反復では、最初の有効クロックサイクルで、SAからシフトされた「新し いLSビット」が90の出力Rの前に置かれ、それによってRに2を乗算し、「 新しいLSビット」の値を2Rに加算する。この連結値は回転されてBレジスタ に戻され、120で試験されて、次のラウンドでf=1かf=0かを判定する。 最後に、剰余がBレジスタにあり、商のnビットがSBレジスタにあり、商の 最上位ビットがSAレジスタにある。 被除数と除数両方の最上位は好適には、すべての大きさのDとdについて、B レジスタとNレジスタの最上位ビット・セルにある。結果を得るために必要な反 復の数は22n-1より小さいDsの場合減少し、2n−1より小さいdsの場合増 大する。装置はハードウェア駆動型であり、装置をアンロードする際オペランド をシフトするファームウェア補償が提供される。 図3の不揮発性メモリにあるプログラムは、好適にはレジスタがロードされて いることを確認し、制御レジスタのために除算処理を成功させるために必要な反 復の数を定義する。逆データ出力アンローダ、ユニット60及び40を通じて処 理される場合、商ビットはバイト毎に再逆転される。 このプロセッサはHパラメータの計算に有益な要素であり、また好適にはユー クリッド関数の計算でも使用される。 図1Aの直列整数除算装置と、A×B+C×D+Sを行う図1Bの二重動作乗算 器は、通常同時に動作しない。 図4の例では、被除数Bは187(10111011)であり、除数Nは7( 111)であり、除算が実行されると、商は20(10100)となり余りは7 (111)となる。 図5の例では、被乗数Bは173(10101101)、除数Nは5(101 )であり、除算か実行されると、商は34(100010)となり余りは3(1 1)となる。 桁上げ保存累算器はGresselに対する米国特許第5,513,133号 の図5に例示されている。 直列全加算器はGresselに対する上記の米国特許の図7に例示されてい る。 直列減算器はGresselに対する上記の米国特許の図8に例示されている 。 除算装置はGresselに対する上記の米国特許の図9に例示されている。 「整数の正規範囲」という術語は負でない整数、例えば自然数のことである。 本発明の好適実施形態によれば、ここで示され説明されたシステムはa及びb をゼロにリセットしS0=1を設定することでJ0を計算するよう動作する。 この特許書類の開示に一部は著作権保護の対象となる資料を含んでいる。著作 権所有者は特許書類または特許開示が特許商標局の特許ファイルまたは記録にあ る限り、その何者かによるファクシミリ複写に反対しないが、そうでない場合は 何があろうともすべての著作権を留保する。 本発明のソフトウェア構成要素は、望ましい場合、ROM(読み出し専用記憶 素子)の形態で実現される。ソフトウェア構成要素は、一般に、望ましい場合、 従来の技術を使用してハードウェアで実現される。 本発明の様々な特徴は、わかりやすくするために別個の実施形態の文脈で説明 されたが、1つの実施形態に組み合わせて提供される こともあることが認識されるだろう。逆に、簡潔にするために1つの実施形態の 文脈で説明された様々な特徴が個別または何らかの適切な形でさらに組み合わさ れて提供されることもある。 当業技術分野に熟練した者には、本発明はここに示され説明されたものに制限 されないことが認識されるだろう。むしろ、本発明の範囲は以下の請求項のみに よって定義される。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),OA(BF,BJ,CF ,CG,CI,CM,GA,GN,ML,MR,NE, SN,TD,TG),AP(GH,GM,KE,LS,M W,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,EE,E S,FI,GB,GE,GH,GM,GW,HU,ID ,IL,IS,JP,KE,KG,KP,KR,KZ, LC,LK,LR,LS,LT,LU,LV,MD,M G,MK,MN,MW,MX,NO,NZ,PL,PT ,RO,RU,SD,SE,SG,SI,SK,SL, TJ,TM,TR,TT,UA,UG,US,UZ,V N,YU,ZW (72)発明者 グレッセル,カーミ デビッド イスラエル国,85530 モービル ポスト ネジェブ,キブーツ ユーリム (72)発明者 ドロール,イタイ イスラエル国,84451 ビア シェバ,ミ ブツァ ナクソン ストリート 78/32

Claims (1)

  1. 【特許請求の範囲】 1. モジュラ乗算及び累乗システムであって、 1つの桁上げ保存加算器を有する1つのモジュラ乗算装置を含む直並列論理演 算装置(ALU)、 を備えるシステム。 2. 任意のビット長の少なくとも1対の整数入力を乗算するよう動作する、 請求項1に記載のシステム。 3. 前記少なくとも1対の整数入力が2対の整数入力を備える、請求項2に 記載のシステム。 4. 前記ALUが、前もってゼロ強制モントゴメリー定数J0を計算せずに 、整数入力の積を生成し、前記積の大きさを低減する、先行する請求項の何れか に記載のシステム。 5. 直列整数除算システムであって、 任意のビット長の被除数と任意のビット長の除数を受信し商と剰余を計算する よう動作する直列除算装置、 を備えるシステム。 6. 1対の整数入力を保存する1対のレジスタを更に備え、前記システムが 、その少なくとも1つがその対応するレジスタのビット長を越える対応する対の 整数入力を、インタリーブなしで乗算するよう動作する、請求項1から請求項3 までのいずれか1項に記載のシステム。 7. 任意のビット長の被除数と任意のビット長の除数を受信し商と剰余を計 算するよう動作する直列除算装置を更に備える、請求項1から請求項3までのい ずれか1項に記載のシステム。 8. モジュラ乗算及び累乗システムであって、 1つだけの桁上げ保存累算器を有し、1対の乗算を行いその結果 を合計するよう動作する直並列乗算装置、 を備えるシステム。 9. モジュラ乗算及び累乗方法であって、 1つの桁上げ保存加算器を有する1つのモジュラ乗算装置を含む直並列論理演 算装置(ALU)を提供するステップと、 モジュラ乗算及び累乗を行うために前記直並列ALUを利用するステップと、 を含む方法。 10. 大きな整数の自然(非モジュラ)乗算の方法であって、 1つの桁上げ保存加算器を有する1つのモジュラ乗算装置を含む直並列論理演 算装置(ALU)を提供するステップと、 大きな整数の自然(非モジュラ)乗算を行うために前記直並列ALUを利用す るステップと、 を含む方法。 11. 前記利用ステップが、第1積を得るために任意のビット長の第1整数 を任意のビット長の第2整数によって乗算するステップと、第2積を得るために 任意のビット長の第3整数を任意のビット長の第4整数によって乗算するステッ プと、合計を得るために前記第1及び第2積と任意のビット長の第5整数を合計 するステップと、を含む、請求項10に記載の方法。 12. 前記利用ステップが任意のビット長の被乗数、乗数及び法によってモ ジュラ乗算及び累乗を行うステップを含む、請求項9に記載の方法。 13. 1つだけの事前計算定数でモントゴメリー・モジュラ乗算を実行する 二重被乗数事前計算システムを備える、請求項8に記載のシステム。 14. 前記利用ステップが、 乗数と被乗数を含む整数入力の積を生成するステップと、 前もってモントゴメリー定数J0を計算せずに、モジュラ換算を実行するステ ップとを含むモントゴメリー乗算を行うステップと、 を含む、請求項9に記載の方法。 15. 前記モントゴメリー定数J0が、Nが前記モジュラ換算の法でありk が前記被乗数のビット長である、Nmod2kの関数を含む、請求項14に記載 の方法。 16. 前記利用ステップが一連のインタリーブド・モントゴメリー乗算演算 を行うステップを含む、請求項9に記載の方法。 17. 前記インタリーブド・モントゴメリー乗算演算が、少なくともkの有 意ゼロを伴う結果を得るために法を前記乗算演算の合同に合計しなければならな い回数を前もって計算せずに、前記インタリーブド・モントゴメリー乗算演算が 行われる、請求項16に記載の方法。 18. i番目のインタリーブド・モントゴメリー乗算演算で生成される被乗 数を収集し直列合計するよう動作し、それによって合計を生成し前記合計を(i +1)番目のモントゴメリー乗算演算に供給するデータ・プロセッサを備える、 請求項8に記載のシステム。 19. 前記関数がNmod2kの乗法的逆元の加法的逆元を含む、請求項1 5に記載の方法。 20. a及びbをゼロにリセットしS0=1を設定することでJ0を計算する ステップを更に含む、請求項15に記載の方法。 21. a及びbをゼロにリセットしS0=1を設定することでJ0を計算する ステップを更に含む、請求項15に記載の方法。 22. 前もって計算せずに実行する前記ステップが、整数入力の前記積を生 成する過程で生成される乗法的合計に法を加算しなけ ればならないか否かを予想するステップを含む、請求項14に記載の方法。 23. 前記ALUが、前記積が、前記法乗算装置が動作する法より小さいか 否かを判定し、それによって前記積の大きさを換算すべきか否かを判定する手段 を備える、請求項4に記載のシステム。 24. 1対の整数入力を保存する1対のレジスタを更に備え、前記システム が、その少なくとも1つが対応するレジスタのビット長を越える対応する対の整 数入力を、インタリーブなしで乗算するよう動作する、請求項4に記載のシステ ム。 25. 任意のビット長の被除数と任意のビット長の除数とを受信し商と剰余 とを計算するよう動作する直列除算装置を更に備える、請求項4に記載のシステ ム。 26. 任意のビット長の被除数と任意のビット長の除数とを受信し商と剰余 とを計算するよう動作する直列除算装置を更に備える、請求項24に記載のシス テム。
JP54788398A 1997-05-04 1998-03-29 モントゴメリー乗算に基づくモジュラ乗算及び累乗の改善された装置と方法 Withdrawn JP2001527673A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
IL12077697A IL120776A0 (en) 1997-05-04 1997-05-04 Apparatus and methods for modular multiplication and exponentiation based on montgomery multiplication
IL120776 1997-05-04
IL12131197A IL121311A (en) 1997-07-14 1997-07-14 Apparatus and method for modular multiplication and exponentiation based on montgomery multiplication
IL121311 1997-07-14
PCT/IL1998/000148 WO1998050851A1 (en) 1997-05-04 1998-03-29 Improved apparatus & method for modular multiplication & exponentiation based on montgomery multiplication

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009140914A Division JP2009230153A (ja) 1997-05-04 2009-06-12 モントゴメリー乗算に基づくモジュラ乗算及び累乗の改善された装置と方法

Publications (1)

Publication Number Publication Date
JP2001527673A true JP2001527673A (ja) 2001-12-25

Family

ID=26323418

Family Applications (2)

Application Number Title Priority Date Filing Date
JP54788398A Withdrawn JP2001527673A (ja) 1997-05-04 1998-03-29 モントゴメリー乗算に基づくモジュラ乗算及び累乗の改善された装置と方法
JP2009140914A Pending JP2009230153A (ja) 1997-05-04 2009-06-12 モントゴメリー乗算に基づくモジュラ乗算及び累乗の改善された装置と方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2009140914A Pending JP2009230153A (ja) 1997-05-04 2009-06-12 モントゴメリー乗算に基づくモジュラ乗算及び累乗の改善された装置と方法

Country Status (9)

Country Link
US (1) US6185596B1 (ja)
EP (1) EP1008026B1 (ja)
JP (2) JP2001527673A (ja)
KR (1) KR100684134B1 (ja)
AT (1) ATE372541T1 (ja)
AU (1) AU6516498A (ja)
DE (1) DE69838390T2 (ja)
ES (1) ES2293677T3 (ja)
WO (1) WO1998050851A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003535538A (ja) * 2000-05-31 2003-11-25 フランス テレコム スマートカード用暗号化方法と装置、及び超小型回路を有するスマートカード
US8352529B2 (en) 2006-01-13 2013-01-08 Fujitsu Limited Modular multiplication calculation apparatus used for montgomery method

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6317769B1 (en) * 1996-09-18 2001-11-13 International Business Machines Corporation Apparatus for calculating of Bc (mod n) with repeatedly shifting a holding value
US7587044B2 (en) * 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
WO1999035782A1 (en) * 1998-01-02 1999-07-15 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus
IL139935A (en) 1998-06-03 2005-06-19 Cryptography Res Inc Des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
CA2334597C (en) 1998-07-02 2007-09-04 Cryptography Research, Inc. Leak-resistant cryptographic indexed key update
IL128007A (en) * 1999-01-11 2003-02-12 Milsys Ltd Enhancements on compact logic devices and also for accelerating and securing computations in modular arithmetic especially for use in public key cryptographic co-processors designed for elliptic curve and rsa type computations
FR2791157A1 (fr) * 1999-03-17 2000-09-22 St Microelectronics Sa Dispositif et procede de mise en oeuvre d'une operation modulaire elementaire selon la methode de montgomery
FR2791156B1 (fr) 1999-03-17 2001-05-11 St Microelectronics Sa Dispositif et procede de mise en oeuvre d'une operation modulaire elementaire selon la methode de montgomery
FR2791155B1 (fr) * 1999-03-17 2001-05-11 St Microelectronics Sa Dispositif et procede de mise en oeuvre d'une operation modulaire elementaire selon la methode de montgomery
IL135247A0 (en) * 2000-03-23 2003-06-24 Cipherit Ltd Method and apparatus for the calculation of modular multiplicative inverses
US7240204B1 (en) * 2000-03-31 2007-07-03 State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University Scalable and unified multiplication methods and apparatus
US6691143B2 (en) 2000-05-11 2004-02-10 Cyberguard Corporation Accelerated montgomery multiplication using plural multipliers
KR100848412B1 (ko) * 2000-05-15 2008-07-28 엠-시스템스 플래쉬 디스크 파이오니어스 리미티드 정수연산필드의 범위를 확장하는 장치 및 방법
IL140267A0 (en) 2000-12-13 2003-09-17 Milsys Ltd Dual processor trusted computing environment
US20020116429A1 (en) * 2000-12-19 2002-08-22 International Business Machines Corporation System and method for modular multiplication
US6963977B2 (en) * 2000-12-19 2005-11-08 International Business Machines Corporation Circuits and methods for modular exponentiation
US7607165B2 (en) * 2001-03-09 2009-10-20 The Athena Group, Inc. Method and apparatus for multiplication and/or modular reduction processing
FR2822260A1 (fr) * 2001-03-14 2002-09-20 Bull Sa Procedes et dispositifs pour accelerer le temps de calcul d'un produit de montgomery d'un multiplication et d'une exponentiation modulaire
JP3820909B2 (ja) * 2001-04-24 2006-09-13 ソニー株式会社 楕円曲線暗号処理方法および楕円曲線暗号処理装置、並びにプログラム
DE10127195A1 (de) * 2001-06-05 2002-12-19 Infineon Technologies Ag Prozessor mit interner Speicherkonfiguration
US6917956B2 (en) * 2001-08-14 2005-07-12 Sun Microsystems, Inc. Apparatus and method for efficient modular exponentiation
US20030072442A1 (en) * 2001-10-01 2003-04-17 Blakley George Robert Cisponentiation method, software, and device for exponentiation
US7376235B2 (en) * 2002-04-30 2008-05-20 Microsoft Corporation Methods and systems for frustrating statistical attacks by injecting pseudo data into a data system
US20040010470A1 (en) * 2002-07-09 2004-01-15 Mills Charles A. Anti-piracy system for software and digital entertainment
KR100458031B1 (ko) * 2003-03-14 2004-11-26 삼성전자주식회사 몽고메리 유형의 모듈라 곱셈 장치 및 방법
US7050475B2 (en) 2003-05-02 2006-05-23 Litelaser Llc Waveguide laser
CN1985458B (zh) * 2003-11-16 2013-05-08 桑迪斯克以色列有限公司 增强的自然蒙哥马利指数掩蔽和恢复的方法和装置
EP1692800B1 (en) 2003-11-16 2010-06-30 SanDisk IL Ltd Enhanced natural montgomery exponent masking
US7664810B2 (en) * 2004-05-14 2010-02-16 Via Technologies, Inc. Microprocessor apparatus and method for modular exponentiation
US7583717B2 (en) * 2004-08-30 2009-09-01 Videojet Technologies Inc Laser system
WO2006049634A1 (en) * 2004-10-27 2006-05-11 Litelaser L.L.C. Laser alignment system and method
DE102006025569A1 (de) * 2005-10-28 2007-05-03 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen einer Multiplikations-Additions-Operation und zum Berechnen eines Ergebnisses einer modularen Multiplikation
DE102006025677B4 (de) * 2005-10-28 2020-03-12 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer Summe mit einem Rechenwerk mit begrenzter Wortlänge
DE102006025713B9 (de) 2005-10-28 2013-10-17 Infineon Technologies Ag Kryptographie-Vorrichtung und Kryptographie-Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation
DE102006025673B9 (de) * 2005-10-28 2010-12-16 Infineon Technologies Ag Rechenwerk zum Reduzieren einer Eingabe-Zahl bezüglich eines Moduls
JP5027422B2 (ja) * 2006-02-09 2012-09-19 ルネサスエレクトロニクス株式会社 剰余演算処理装置
US7805479B2 (en) * 2006-03-28 2010-09-28 Michael Andrew Moshier Scalable, faster method and apparatus for montgomery multiplication
US8229109B2 (en) * 2006-06-27 2012-07-24 Intel Corporation Modular reduction using folding
US20080043406A1 (en) * 2006-08-16 2008-02-21 Secure Computing Corporation Portable computer security device that includes a clip
US7925011B2 (en) * 2006-12-14 2011-04-12 Intel Corporation Method for simultaneous modular exponentiations
US20080263115A1 (en) * 2007-04-17 2008-10-23 Horizon Semiconductors Ltd. Very long arithmetic logic unit for security processor
US8042025B2 (en) * 2007-12-18 2011-10-18 Intel Corporation Determining a message residue
US8402078B2 (en) * 2008-02-26 2013-03-19 International Business Machines Corporation Method, system and computer program product for determining required precision in fixed-point divide operations
US8626816B2 (en) * 2008-02-26 2014-01-07 International Business Machines Corporation Method, system and computer program product for detecting errors in fixed point division operation results
EP2334006B1 (en) * 2009-12-10 2016-03-23 Nxp B.V. Side-channel resistant modular exponentiation
FR2974201B1 (fr) 2011-04-18 2013-04-12 Inside Secure Circuit de multiplication de montgomery
FR2974202B1 (fr) 2011-04-18 2013-04-12 Inside Secure Procede de multiplication de montgomery
CN103699358B (zh) * 2013-12-05 2016-11-23 西安交通大学 一种适用于大数的快速模平方运算电路
US10025556B2 (en) * 2014-09-08 2018-07-17 Atmel Corporation Optimized multi-precision division
US11468797B2 (en) 2020-06-24 2022-10-11 Western Digital Technologies, Inc. Low complexity conversion to Montgomery domain
US11508263B2 (en) 2020-06-24 2022-11-22 Western Digital Technologies, Inc. Low complexity conversion to Montgomery domain
US11210067B1 (en) 2020-11-27 2021-12-28 Pqsecure Technologies, Llc Architecture for small and efficient modular multiplication using carry-save adders
TWI802095B (zh) 2021-11-22 2023-05-11 財團法人工業技術研究院 模數乘法電路與對應之計算模數乘法之方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3621218A (en) * 1967-09-29 1971-11-16 Hitachi Ltd High-speed divider utilizing carry save additions
US4110832A (en) * 1977-04-28 1978-08-29 International Business Machines Corporation Carry save adder
US4514592A (en) 1981-07-27 1985-04-30 Nippon Telegraph & Telephone Public Corporation Cryptosystem
US4538238A (en) * 1983-01-18 1985-08-27 Honeywell Information Systems Inc. Method and apparatus for calculating the residue of a signed binary number
KR19990024971A (ko) * 1997-09-09 1999-04-06 정선종 모듈러 승산장치
US5073870A (en) * 1989-01-30 1991-12-17 Nippon Telegraph And Telephone Corporation Modular multiplication method and the system for processing data
JP2710412B2 (ja) * 1989-06-20 1998-02-10 日本電気株式会社 乗除算回路
US5185714A (en) * 1989-09-19 1993-02-09 Canon Kabushiki Kaisha Arithmetic operation processing apparatus
US5101431A (en) 1990-12-14 1992-03-31 Bell Communications Research, Inc. Systolic array for modular multiplication
US5321752A (en) * 1991-09-05 1994-06-14 Canon Kabushiki Kaisha Method of and apparatus for encryption and decryption of communication data
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
US5349551A (en) * 1993-07-30 1994-09-20 The United States Of America As Represented By The Director Of National Security Agency Device for and method of preforming an N-bit modular multiplication in approximately N/2 steps
GB2332542B (en) * 1997-12-20 2002-08-07 Motorola Ltd Data processing system for performing multiplication and multiplication method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003535538A (ja) * 2000-05-31 2003-11-25 フランス テレコム スマートカード用暗号化方法と装置、及び超小型回路を有するスマートカード
JP2012133390A (ja) * 2000-05-31 2012-07-12 Fr Telecom スマートカード用暗号化方法と装置、及び超小型回路を有するスマートカード
US8352529B2 (en) 2006-01-13 2013-01-08 Fujitsu Limited Modular multiplication calculation apparatus used for montgomery method

Also Published As

Publication number Publication date
KR100684134B1 (ko) 2007-02-16
EP1008026B1 (en) 2007-09-05
ATE372541T1 (de) 2007-09-15
EP1008026A4 (en) 2000-06-14
DE69838390T2 (de) 2008-05-29
ES2293677T3 (es) 2008-03-16
WO1998050851A1 (en) 1998-11-12
AU6516498A (en) 1998-11-27
KR20010012222A (ko) 2001-02-15
US6185596B1 (en) 2001-02-06
JP2009230153A (ja) 2009-10-08
DE69838390D1 (de) 2007-10-18
EP1008026A1 (en) 2000-06-14

Similar Documents

Publication Publication Date Title
JP2001527673A (ja) モントゴメリー乗算に基づくモジュラ乗算及び累乗の改善された装置と方法
JP4955182B2 (ja) 整数の計算フィールド範囲の拡張
US5742530A (en) Compact microelectronic device for performing modular multiplication and exponentiation over large numbers
EP0801345B1 (en) Circuit for modulo multiplication and exponentiation arithmetic
US6748410B1 (en) Apparatus and method for modular multiplication and exponentiation based on montgomery multiplication
US6434585B2 (en) Computationally efficient modular multiplication method and apparatus
US7424504B2 (en) Arithmetic processor for accomodating different field sizes
US6397241B1 (en) Multiplier cell and method of computing
JP4554239B2 (ja) モンゴメリー類型のモジュラー乗算装置及び方法
US20050198093A1 (en) Montgomery modular multiplier
US7805479B2 (en) Scalable, faster method and apparatus for montgomery multiplication
US6209016B1 (en) Co-processor for performing modular multiplication
US7580966B2 (en) Method and device for reducing the time required to perform a product, multiplication and modular exponentiation calculation using the Montgomery method
US8078661B2 (en) Multiple-word multiplication-accumulation circuit and montgomery modular multiplication-accumulation circuit
US7046800B1 (en) Scalable methods and apparatus for Montgomery multiplication
US20030037087A1 (en) Apparatus and method for efficient modular exponentiation
Morita A fast modular-multiplication algorithm based on a higher radix
US7590235B2 (en) Reduction calculations in elliptic curve cryptography
Großschädl A new serial/parallel architecture for a low power modular multiplier
US20060235922A1 (en) Quisquater Reduction
Elbe et al. Crypto@ 1408Bit–A New Dimension of PKI Hardware Accelerator

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050114

A72 Notification of change in name of applicant

Free format text: JAPANESE INTERMEDIATE CODE: A721

Effective date: 20070914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080617

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080916

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081110

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090518

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20091001

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20091015