JP3784156B2 - モジュラ掛け算方法 - Google Patents
モジュラ掛け算方法 Download PDFInfo
- Publication number
- JP3784156B2 JP3784156B2 JP33057397A JP33057397A JP3784156B2 JP 3784156 B2 JP3784156 B2 JP 3784156B2 JP 33057397 A JP33057397 A JP 33057397A JP 33057397 A JP33057397 A JP 33057397A JP 3784156 B2 JP3784156 B2 JP 3784156B2
- Authority
- JP
- Japan
- Prior art keywords
- modular
- complement
- node
- generated
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/40—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using contact-making devices, e.g. electromagnetic relay
- G06F7/44—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/722—Modular multiplication
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Electromagnetism (AREA)
- Complex Calculations (AREA)
Description
【発明の属する技術分野】
本発明は、無線通信、コンピュータネットワーク等におけるデータ保安のための暗号化システムに関するものであり、特に2進数のモジュラ掛け算を遂行する方法及び装置に関するものである。
【0002】
【従来の技術】
最近、コンピュータネットワークや無線通信などのような多様な通信サービスにおいて、データの保安性を改善するための方法として、暗号化システムの重要性が増大している。暗号化アルゴリズムは二つに分類することができるが、一つは秘密キー暗号化システムであり、他の一つは公開キー暗号化システムである[W.Diffe and M. E. Hellman, "New directions in cryptography", IEEE Trans. Inform. Theory, vol. IT-22, pp. 644-654, Nov.1976, U.S.Pat. Nos. 4,351,982, 5,349,551及び5,666,419 ]。
【0003】
秘密キー暗号化システムでは、送信側が一つの秘密キーだけを使用して情報をスクランブルして送信し、受信側は受信された情報を同じキーでディスクランブルする。この秘密キー方式の代表的な例としては、現在、アメリカの商務省が標準として指定しているDES(Data Encryption System)と、最近大きな反響を起こしているIDEA(International Data Encryption Algorithm)[X. Lai and J. L. Massey, "A proposal for a new block encryption standard", in EUROCRYPT '90, Aarhus, Denmark, May1990., and R. Zimmermann et al., "5Å, 177/Mb VLSI implementaion of International data encryption algorithm", IEEE J. Solid-State Circuits, Vol. 29, pp. 303-307, Mar. 1994]とが挙げられる。このような方式の一番大きな問題点は、秘密キーの交換のために他の安全なチャンネルが必要ということである。このような短所を補完するために提案された方式が公開キー暗号化システムである。この方式では、一つの秘密キーと他の一つの公開キーを使用して情報をスクランブル/ディスクランブルする。この二つのキーは、一般に数学的な根拠により生成され、公開キーはだれにも公開され、使用が可能であるが、秘密キーなしにはその情報を受信して復元することができない。この方式は、キーを共有するためのチャンネルが別途に必要としないので安全であるが、その代わりに、二つのキーを生成し、これを通じて情報を復元するための数学的な演算が非常に複雑なので、高速処理が難しいという問題がある。それにもかかわらず、これからは公開キー方式が有望であると理由は、情報の安全性が高いからである。公開キー方式の代表的なシステムとしては、RSA(Riseman-Shamir-Adelman)アルゴリズム[R. L. Rivest, A. Shamir, and L.Adelman, "A method for obtaining digital signatures and public-key cryptosystems", Commun. ACM, vol. 21, pp.120-126, Feb.1978]が現在世界的に広く使用されており、しかも、主にソフトウエアで実現され、使用されている。
【0004】
RSAアルゴリズムの核心の演算はモジュラ掛け算であり、この掛け算はよく知られているように次のような数式で表現される。
【数1】
F=A×B mod C …(1)
ここで、A、B及びCはnビット定数である。
モジュラ掛け算は、一般的に固有な掛け算および割り算演算のため、複雑な算術演算となる。モジュラ掛け算においてのモジュロ演算は、定数割り算(この演算での残りだけが次の計算に必要となる)により遂行される。
【0005】
モジュラ掛け算を遂行する技術は、大きく分けると、掛け算を完全に終わった後、割り算を遂行して残りを取る“掛け算後、モジュロ演算”技術と、掛け算を遂行する中間でモジュロ演算を行う“掛け算中、モジュロ演算”技術に分けられる。前者の技術では、n×nビット掛算器と2n×nビット割算器が必要となるから、要求されるハードウエアの大きさが大きくなる。後者の技術では、中間段で発生したキャリが貯蔵された後、最終段でキャリ伝搬が成立するCSA(carry save adder)スキーム[C. K. Koc とC. Y. Hungによる "Carry-Save Adders for Computing the Product AB Modulo N", Electronics Letters, vol.26, No.13, pp. 899-900, 21 June 1990 または、J. Korenの "Computer Arithmetic Algorithm", Englewood Cliffs, NJ:Prentice-Hall, 1993]を利用して部分的な積の上でモジュロ演算が遂行されるため、n×nビット掛算器だけが必要である。しかし、この方法では、モジュロ演算のための掛け算と引き算演算が前者より多く要求される。これにより、発生する長いキャリ伝搬チェーンは、パイプライン段で、あるいは並列構造で待ち時間とクロックサイクルを相対的に長くさせる制限要素として作用する。
【0006】
超高集積化のためのモジュラ掛算器のアレイ構造が次の文献すなわち、A. Vanemeulebroecke などによる "A new carry-free division algrithm and its application to a single chip 1024-b RSA processor" (IEEE J. Solid-State Circuits, vol. 25. pp.748-755, June 1990)、 C. K. Koc C.Y.Hung による "Bi-level systolic arrays for modular multiplication" (J. VLSI Sig. Proc., vol. 3, pp. 215-223, 1991)、S. E. Eldridgeと D. Walterによる "Hadware implementation of Montgomery's modular multiplication algrithm" (IEEE Trans. Comput., vol. 42, pp.693-699, June 1993) および、C. D. Walterによる "Systolic modular multiplication" (IEEE Trans. Comput., Vol.42, pp.376-378, Mar. 1993) 等に開示されている。Vanemeulebroke等は、符号表示された数の桁表示方式を使用する掛け算をした後、モジュロ演算を行っている。又、Vanemeulebroeckeのアルゴリズムは掛け算のための、そして、定数割り算のための二つのアレイで構成される。Koc とHungは、Blakley のアルゴリズム[G. R. Blakley, "A computer algorithm for the product AB modulo "M", IEEE Trans. Comput., vol. 32. pp.497-500, 1983]を適用し、各反復段からの五つのMSBビットを観察することにより、符号推定方法を使用している。このアルゴリズムは、ビットレベルの伸縮的アレイ構造を有するが、各段からの中間結果の符号を計算する制御ノードのため、相対的に待ち時間とクロックサイクルが長くなる。EldridgeとWalterは、RSAの場合だけに該当するが、モジュラスと基数が互いに素数の関係である場合だけに動作するMontgomeryのアルゴリズム[P. L.. Montgomery, "Modular multiplication without trial division", Math. Comp., Vol. 44, pp.519-512, 1985]を使用している。しかし、以上の各技術は、それら各々のアルゴリズム特性のためにハードウエアオーバヘッドが大きく増加する問題を持っているので、実用化されていないのが実状である。
【0007】
【発明が解決しようとする課題】
結局、モジュロ演算における重要感心は、長いキャリチェーンによる臨界経路の遅延をどのように減らして演算速度を向上させるかということ、そして、どのようにハードウェアの構造を簡素化するかという点である。モジュラ掛け算においてのモジュロ演算は定数割り算により遂行され、その割り算は連続された引き算演算により遂行されるので、モジュロ演算上の長い臨界経路遅延の改善は、nビット割り算に必要なMSB部分からのキャリ処理をどの程度早く遂行できるか、あるいはどのようにキャリ計算量を減らすかによる。
【0008】
本発明の目的は、高速暗号化処理に適合し、実用的な構造を持つアレイモジュラ掛算器を提供することにある。
【0009】
本発明の他の目的は、モジュラ掛算器の伸縮的なアレイ構造を提供することにある。
【0010】
本発明のその他の目的は、高速暗号化処理に適合するモジュラ掛け算方法を提供することにある。
【0011】
【課題を解決するための手段】
上記の課題を解決し、上記の目的を達成するための本発明の一つの特徴によると、モジュラ掛け算方法は、与えられたモジュラスの補数およびこの補数の倍数を計算する段階と、モジュラ掛け算の間に循環キャリの総大きさを計算する段階と、前記モジュラスの重みより大きな重みを持つ項のために前記循環キャリの総大きさにより前記計算された倍数を選択する段階と、この選択された倍数を加える段階とを含む。以後、モジュロ演算は、部分的な積のMSB状態、すなわち、循環キャリの総大きさにより選択された倍数を簡単なマルチプレクシングを通じて選択的に加えた数に置き換えられる。このように、あらかじめ計算された常数を加えるので、符号表示のための追加的な計算上のオーバヘッドが無くて、早いクロックサイクルを得ることができる。また、このようなアルゴリズムは、VLSIへの適用が容易な定型アレイ形態に容易にマッピングすることができる。
【0012】
本発明の他の特徴によると、モジュラ掛算器は、与えられたモジュラスの補数およびこの補数の倍数を計算する手段と、この手段により計算された倍数を貯蔵する手段と、モジュラ掛け算の間に、循環キャリの総大きさにより前記計算された倍数を選択する手段と、この手段により選択された倍数を加える手段とを含む。
【0013】
【発明の実施の形態】
本発明の実施の形態として、RSAシステムと関連した、しかし、それだけに限定されないアレイモジュラ掛け算に対して詳細に説明する。
【0014】
RSAアルゴリズムで、モジュラスあるいはキーCは大抵500ビット以上少数の掛け算であり、あまり変化せず、相当な期間の間同一の値で維持される(応用分野により異なるが、データの安定性要求により大抵幾月、幾週、又は幾日毎にキー変更が行われる)。本発明のモジュラ掛け算アルゴリズムでは、モジュラスCの補数と、これの倍数があらかじめ計算される。
【0015】
前記の式1で、二つのオペランドA及びB、モジュラスC、そして出力Fは、全てが無符号nビット定数とし、モジュラスC(このCは2進数体系で示されるので、2n より小さい)の2の補数K、そしてKの倍数Kh を次のように定義する。
【数2】
K=2n mod C …(2)
【数3】
Kh =h×K mod C …(3)
ここで、hは正の定数である。
【0016】
上記の式2及び3から、2n*j mod C=2j ×K modCが成立することが容易に分かれる。一方、重みあるいはビット位置nのキャリ以外にも、重みn+1、n+2等のキャリも発生するが、これらも上記のような同一な方式で表現することができる。たとえば、二つの重み2n+1 のキャリと一つの重み2n のキャリが発生すると、(2n+1 +2n+1 +2n )mod C=5×2n mod C=5×K modC=K5 となる。
【0017】
従って、Kの倍数Kh をあらかじめ計算してレジスタに貯蔵しておくと、モジュロ演算のCSAスキームで発生する2n より大きい項、すなわち、キャリと和は倍数Kh に置き換えることができる。各Kh のhは掛け算中、モジュロ演算の各反復段階で計算され、該当Kh は部分的MSB状態によりマルチプレクサを通じて選択される。RSAアルゴリズムではモジュラスC(すなわち、キー)が長時間固定されているので、Kh の事前の計算が可能である。ただし、キーが変更される場合にはKh は更新されなければならない。実際にキーが変わる頻度は、応用分野により違うが、幾日あるいは幾月毎に一回ずつ変える。
【0018】
式1のモジュラ掛け算は、ホナーの法則を利用して次のように表現することができる。
【数4】
【0019】
この式4は、次のような反復的な形態で表現することができる。
【数5】
Po =0
Pi =2Pi-1 +bn-1 A mod C …(5)
ここで、Pi は部分的である。
【0020】
CSAスキームにおいて、中間段で部分的な和とキャリシーケンスが発生し、最終段だけでキャリ伝搬が成立する。CSAスキームの基本的な構成要素は全加算器である。各全加算器はそれの重み2i と関連して三つの入力si ,ci 及びxi を受け入れ、重み2i+1 と関連したキャリco 及び重み2i と関連した和so を発生する。従って、全加算器の算出演算はよく知られているように、次のような式で示される。
【数6】
2co +so =si +ci +xi …(6)
ここで、+は代数的な和を意味する。
CSAスキームを使用すると、各段の最左側ノードで重み2n のキャリが発生する。式1に示しているように、このキャリはモジュロ演算の間に定数Kの和で置き換えることができる。
【0021】
式5から、部分的Pi は次のように示される。
【数7】
Pi =2Ci +Si (0≦i≦n) …(7)
この時、0≦Pi≦3×2n −3が成立する。
【0022】
前記の式3は二つのモジュロ減少段階を持っているし、新しい部分的項Ti を導入することにより次のように表現することができる。
<アルゴリズム1>
i)Ti =2Pi-1 mod C
ii)Pi =(Ti +bn-i A)mod C
【0023】
しかし、上記のアルゴリズム1の段階ii)は加算される四つのオペランドを持つので、CSAスキームとしては実現することができないが、これは段階ii)を次のように二つの段階に分割することにより解決できる。
<アルゴリズム2>
i)Ti =2Pi-1 mod C
ii-a)Ti * =Ti +bn-i A
ii-b)Pi =Ti * mod C
【0024】
上記のアルゴリズム2の段階i)で2Pi-1 は一つの2n+1 項(すなわち、n−1番目ビット位置のキャリcn-1 i-1 )と二つの2n 項(すなわち、n−1番目ビット位置の和sn-1 i-1 とn−2番目ビット位置のキャリcn-2 i-1 )を示すが、最大4×2n まで示すことができる。これらの項はKh (h=1,2,3,4)の足し算で置き換えられる。段階ii-a)では既に三つのオペランド(CSA形態であるTi のキャリ及び和、そして、bi により加えるA)があるので、モジュロ演算からの足し算からの置換は遂行されない。段階ii-b)では、段階i)からのTi のキャリと段階ii-a)からのTi * のキャリがKh に置換されるため、循環キャリとして、多ければ2×2n をもつようになる。二つの段階i)とii-b)ではただ一つの追加オペランドが許容されるが、これがすぐKをいくつか加える代わりにKh をあらかじめ計算しておいて、一回だけを加える理由になるのである。
【0025】
上記のアルゴリズム2に対するより詳細な説明のため、次のようにσ(Pi )が定義される。
【数8】
σ(Pi )=Pi −h×2n +Kh …(8)
ここで、h=f(x1 ,x2 ,x3 ,....,xr )である。従って、関数f(・)は循環キャリの総大きさに該当するKh を選択するためにhを計算する。x1 ,x2 ,x3 ,....,xr はビット変数(常にMSB位置のキャリ及び和)である。従って、関数f(・)は次のようである。
【数9】
ここで、xk が重み2n を持つとαk =1であり、重みが2n+1 であるとαk =2,重みが2n+2 であると、αk =4等である。言い換えれば、σ(Pi )はあらかじめ計算されたKh でh×2n を置き換える。上記の式8を使用すると、アルゴリズム2は次のように表現することができる。
<アルゴリズム3>
i)Ti =σ(2Pi-1 )
ii-a)Ti * =Ti +bn-i A
ii-b) Pi =σ(Ti * )
【0026】
図4は本発明によるモジュラ掛算器の反復段の構造を示す。図示されたように、上記のアルゴリズム3の関数f(・)は段階i)に対して2cn-1 i-1 +sn-1 i-1 +cn-2 i-1 であり、段階ii-b)に対してはγi n-1 +γi *n-1である。ここで、γi n-1 とγi *n-1は各々Ti とTi * のMSBキャリであり、二つとも重み2n を持つ。以上のように、本発明による関数f(・)の計算は、いままで発表された他の方法に比べて簡単であるので、ここで所要される全体のクロックサイクル周期を減らすことができる。しかし、図4の構造はすぐVLSIハードウエアで実現することが容易てはない。ここで、示した伝搬信号を各処理ノードを通じて他のノードへ伝達させると、並列掛算器として直接実現することができるアレイ構造を得ることができる。
【0027】
図1はn=7である場合において、完全に局部的に連結される構造のモジュラ掛算器アレイを示す。図1を参照すると、制御ノードX1,X2及びX3は第1の方向(列方向)で配列される。複数の処理ノードAは第1の方向に直交する第2の方向(行方向)に制御ノードX1に続いて平行に配列される。複数の処理ノードBは行方向に制御ノードX2に続いて平行に配列される。最後に、複数の処理ノードCは行方向に制御ノードX3に続いて平行に配列される。
【0028】
図2(a)ないし図2(f)は図1の各ノードの機能を説明するための図である。この構造で、ノードX1とX3は式6の制御値hを計算する制御ノードである。従って、これらは単純なエンコーダで構成される。ノードX2はただ配線だけである。ノードAは4×1マルチプレクサとANDゲート及び全加算器(FA)で構成される。ノードBは全加算器とANDゲートだけで構成される。ノードCは2×1マルチプレクサとANDゲート及び全加算器で構成される。図2(a)ないし図2(f)で、*と+は各々代数的な掛け算及び足し算を、そして、&はブウリアンAND演算を示し、ki[0]=0である。ノードX3でhの最大値が2であるからノードCはただK1 とK2 だけを必要とする。制御値hが0である時、Ko =0を受け入れるノードAとBではANDゲートが必要である。各処理ノードのマルチプレクサは該当制御ノードにより制御される。
【0029】
表1はn=12、A=0100010001002(=109210),B=0100110011012(=129910),そして、C=1000001010012 (=208910) である場合、本発明のビットレベルモジュラ掛け算アルゴリズムの例を示している。
【0030】
Kh がK1 =0111110101112 (=200710), K2 =0111100001012 (=192510), K3 =0111001100112 (=184310),そして、K4 =0110111000012 (=176110) であらかじめ計算される。式7から、次のような最終出力Pn が得られる。
上記の値を2089に対してモジュラで演算を行うと930になる。
【表1】
【0031】
図1のアレイ構造で、各行の二つのノードを一つのノードに併合し、各アレイ間の定型性を維持することにより、図3に図示されるVLSI化に適するアレイ構造が得られる。図3で、ノードX1,X2及びX3は関数f(・)を求めるノードであり、列方向に配列される。ノードAA, BB及びCCは図1のノードA,B及びCを各々二つずつまとめたノードである。このようなノード併合は線形伸縮構造を持っているし、ハードウエア実現をより容易にする。ワード長さnが偶数であるには、制御ノードを除いた所定のノードが併合されることで実現できる。図3のアレイは偶数のnを持つために最下位位置(すなわち、最右側)にもとのノードA,B及びCが存在する。ノードA,B及びCは、ノードX1,X2及びX3と平行に列方向に配列される。複数のノードAAはノードX1とノードA間に行方向に配列される。複数のノードBBはノードX2とノードB間に行方向に配列される。複数のノードCCはノードX3とノードC間に行方向に配列される。
【0032】
図1及び図3の構造によると、マッピング関数により種々の異なる1次元アレイ(例えば、ビットシリアルモジュラ掛算器)を得ることができる。
【0033】
本発明のアレイで、各行の最左側ノードは制御信号を発生する。各制御ノードは四つのゲート(二つのXORゲート、一つのANDゲート、そして、一つのNORゲート)あるいは二つのゲート(一つのXORゲート及び一つのNORゲート)で構成される。このような、制御ノードの簡略な構成はアレイ全体により早いクロックサイクルを提供する効果をもたらす。これにより、本発明のアレイのクロックサイクルは、制御ノードではない処理ノードにより決定される。図1で、キャリco と和so を除いた全ての信号はアレイを通過する途中に変更されない伝搬信号であるので、ブロードキャスティング(broadcasting)ができる。
【0034】
【発明の効果】
以上のように本発明によればモジュロ演算があらかじめ計算された所定の値を加えて置き換えられるようにしたので、MSBキャリの計算量を画期的で減らして高速モジュラ掛け算を遂行することができる。また、VLSI化が容易となる。
【図面の簡単な説明】
【図1】本発明によるモジュラ掛算器アレイ構造の一つの具体例を示す図。
【図2】図1のアレイ構造の各ノードの機能を説明するための図。
【図3】本発明によるモジュラ掛算器アレイ構造の他の具体例を示す図。
【図4】本発明によるモジュラ掛算器の反復段を示す図。
Claims (2)
- 与えられた第1オペランドと第2オペランド及びモジュラスを持ってモジュラ演算を遂行するモジュラ掛け算方法において、
第1方向に配列される第1乃至第3制御ノードを通じて前記モジュラスの補数及び前記補数の倍数のうちのいずれか一つを選択するための制御信号を発生する段階と、
前記第1方向に直交する第2方向に前記第1制御ノードに続いて平行に配列された第1群の処理ノードの各々が、前記第1制御ノードから発生された前記制御信号に応答して前記モジュラスの補数及び前記補数の倍数のうちのいずれか一つを選択して、前記選択結果を現在のアレイ以前の繰り返し段アレイから発生されたモジュラ演算結果と加算する第1モジュラ演算を遂行する段階と、
前記第2方向に前記第2制御ノードに続いて平行に配列された第2群の処理ノードの各々が、前記第1オペランドと前記第2オペランドとを構成する各々のビットを掛けた結果と、前記第1群の処理ノードから発生された第1モジュラ演算結果を加算する段階と、
前記第2方向に前記第3制御ノードに続いて平行に配列された第 3 群の処理ノードの各々が、前記第3制御ノードから発生された前記制御信号に応答して前記モジュラスの補数及び前記補数の倍数のうちのいずれか一つを選択して、前記選択結果を前記第2群の処理ノードから発生された処理結果と加算する第2モジュラ演算を遂行して、前記第2モジュラ演算結果を現在のアレイで遂行されるモジュラ演算結果として出力する段階とを含むことを特徴とするモジュラ掛け算方法。 - 前記制御信号を発生する段階では、前記第1乃至第3制御ノードが前記第1乃至第3群の処理ノードで発生される循環キャリの大きさを計算して、前記計算された循環キャリの大きさに応答して前記制御信号を発生することを特徴とする請求項1に記載のモジュラ掛け算方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970060885A KR100267009B1 (ko) | 1997-11-18 | 1997-11-18 | 고속 암호화 처리를 위한 어레이 구조를 가지는 모듈러 곱셈장치 |
KR1997P-60885 | 1997-11-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11175317A JPH11175317A (ja) | 1999-07-02 |
JP3784156B2 true JP3784156B2 (ja) | 2006-06-07 |
Family
ID=19525004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33057397A Expired - Fee Related JP3784156B2 (ja) | 1997-11-18 | 1997-12-01 | モジュラ掛け算方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6151393A (ja) |
JP (1) | JP3784156B2 (ja) |
KR (1) | KR100267009B1 (ja) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999014880A2 (en) * | 1997-09-16 | 1999-03-25 | Koninklijke Philips Electronics N.V. | A method and device for executing a decrypting mechanism through calculating a standardized modular exponentiation for thwarting timing attacks |
US6356637B1 (en) * | 1998-09-18 | 2002-03-12 | Sun Microsystems, Inc. | Field programmable gate arrays |
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 |
US7233970B2 (en) * | 2001-05-02 | 2007-06-19 | Cipher Corporation Limited | Computational method, system, and apparatus |
US6738874B2 (en) | 2001-05-02 | 2004-05-18 | Layer N Networks, Inc. | Controller architecture and strategy for small discontiguous accesses to high-density memory devices |
US7218734B2 (en) * | 2001-05-02 | 2007-05-15 | Nciper Corporation Limited | Ring arithmetic method, system, and apparatus |
US7913261B2 (en) * | 2001-05-02 | 2011-03-22 | nCipher Corporation, Ltd. | Application-specific information-processing method, system, and apparatus |
US7017064B2 (en) * | 2001-05-09 | 2006-03-21 | Mosaid Technologies, Inc. | Calculating apparatus having a plurality of stages |
US7194088B2 (en) * | 2001-06-08 | 2007-03-20 | Corrent Corporation | Method and system for a full-adder post processor for modulo arithmetic |
US6973470B2 (en) * | 2001-06-13 | 2005-12-06 | Corrent Corporation | Circuit and method for performing multiple modulo mathematic operations |
US6917956B2 (en) * | 2001-08-14 | 2005-07-12 | Sun Microsystems, Inc. | Apparatus and method for efficient modular exponentiation |
US20030053630A1 (en) * | 2001-09-20 | 2003-03-20 | International Business Machines Corporation | Method and system for key usage control in an embedded security system |
US20030065696A1 (en) * | 2001-09-28 | 2003-04-03 | Ruehle Michael D. | Method and apparatus for performing modular exponentiation |
US6732133B2 (en) * | 2001-09-28 | 2004-05-04 | Intel Corporation | Montgomery multiplier with dual independent channels |
US6922717B2 (en) | 2001-09-28 | 2005-07-26 | Intel Corporation | Method and apparatus for performing modular multiplication |
US6918019B2 (en) * | 2001-10-01 | 2005-07-12 | Britestream Networks, Inc. | Network and networking system for small discontiguous accesses to high-density memory devices |
US8024392B2 (en) * | 2002-02-16 | 2011-09-20 | Ncipher Corporation Limited | Computational method, system, and apparatus |
DE10223853B4 (de) * | 2002-05-28 | 2005-06-23 | Technische Universität Braunschweig Carolo-Wilhelmina | Verfahren und integrierte Schaltung zur Durchführung einer Multiplikation modulo M |
US6892215B2 (en) * | 2002-07-10 | 2005-05-10 | William L. Freking | Fast parallel cascaded array modular multiplier |
US6907440B2 (en) * | 2002-07-10 | 2005-06-14 | William L. Freking | Systolic cylindrical array modular multiplier |
US20040010530A1 (en) * | 2002-07-10 | 2004-01-15 | Freking William L. | Systolic high radix modular multiplier |
US20040128336A1 (en) * | 2002-08-22 | 2004-07-01 | Zierhofer Clemens M. | Method and system for multiplication of binary numbers |
US7451326B2 (en) * | 2002-08-26 | 2008-11-11 | Mosaid Technologies, Inc. | Method and apparatus for processing arbitrary key bit length encryption operations with similar efficiencies |
US7386705B2 (en) | 2002-08-27 | 2008-06-10 | Mosaid Technologies Inc. | Method for allocating processor resources and system for encrypting data |
US7403964B2 (en) * | 2002-10-22 | 2008-07-22 | Broadcom Corporation | Galois field multiplier array for use within a finite field arithmetic unit |
KR100459732B1 (ko) * | 2002-12-30 | 2004-12-03 | 삼성전자주식회사 | 4-2 컴프레서를 이용한 몽고메리 모듈러 승산기 및 그승산 방법 |
US7685221B1 (en) | 2003-03-17 | 2010-03-23 | Marvell Israel (M.I.S.L.) Ltd. | Efficient remainder calculation for even divisors |
US7519644B2 (en) * | 2004-05-27 | 2009-04-14 | King Fahd University Of Petroleum And Minerals | Finite field serial-serial multiplication/reduction structure and method |
US7805479B2 (en) * | 2006-03-28 | 2010-09-28 | Michael Andrew Moshier | Scalable, faster method and apparatus for montgomery multiplication |
US7755766B1 (en) | 2007-03-27 | 2010-07-13 | Itt Manufacturing Enterprises, Inc. | Telescope interferometric maintenance evaluation tool |
US8898215B2 (en) * | 2007-06-28 | 2014-11-25 | King Fahd University Of Petroleum And Minerals | High-radix multiplier-divider |
US20090006509A1 (en) * | 2007-06-28 | 2009-01-01 | Alaaeldin Amin | High-radix multiplier-divider |
US8527570B1 (en) * | 2009-08-12 | 2013-09-03 | Marvell International Ltd. | Low cost and high speed architecture of montgomery multiplier |
US9870201B1 (en) * | 2016-03-04 | 2018-01-16 | Mbit Wireless, Inc. | Method and apparatus for modulo arithmetic |
US20210117157A1 (en) * | 2020-12-24 | 2021-04-22 | Martin Langhammer | Systems and Methods for Low Latency Modular Multiplication |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5210710A (en) * | 1990-10-17 | 1993-05-11 | Cylink Corporation | Modulo arithmetic processor chip |
US5513133A (en) * | 1992-11-30 | 1996-04-30 | Fortress U&T Ltd. | Compact microelectronic device for performing modular multiplication and exponentiation over large numbers |
FR2745647B3 (fr) * | 1996-03-01 | 1998-05-29 | Sgs Thomson Microelectronics | Coprocesseur d'arithmetique modulaire permettant de realiser des operations non modulaires rapidement |
-
1997
- 1997-11-18 KR KR1019970060885A patent/KR100267009B1/ko not_active IP Right Cessation
- 1997-12-01 JP JP33057397A patent/JP3784156B2/ja not_active Expired - Fee Related
-
1998
- 1998-05-27 US US09/085,963 patent/US6151393A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH11175317A (ja) | 1999-07-02 |
US6151393A (en) | 2000-11-21 |
KR19990040485A (ko) | 1999-06-05 |
KR100267009B1 (ko) | 2000-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3784156B2 (ja) | モジュラ掛け算方法 | |
US7320015B2 (en) | Circuit and method for performing multiple modulo mathematic operations | |
US5101431A (en) | Systolic array for modular multiplication | |
US5210710A (en) | Modulo arithmetic processor chip | |
KR100459732B1 (ko) | 4-2 컴프레서를 이용한 몽고메리 모듈러 승산기 및 그승산 방법 | |
US5121429A (en) | Digital signal processing | |
US6763366B2 (en) | Method for calculating arithmetic inverse over finite fields for use in cryptography | |
JP3726966B2 (ja) | 乗算器及び暗号回路 | |
JP3302043B2 (ja) | 暗号通信方法及びそのシステム | |
Morita | A fast modular-multiplication algorithm based on a higher radix | |
JP2001051832A (ja) | 乗算剰余演算方法および乗算剰余回路 | |
JPH11212456A (ja) | モンゴメリ法による乗算剰余計算装置 | |
US20020172355A1 (en) | High-performance booth-encoded montgomery module | |
Raghuram et al. | A programmable processor for cryptography | |
Alkar et al. | A hardware version of the RSA using the Montgomery's algorithm with systolic arrays | |
US7403965B2 (en) | Encryption/decryption system for calculating effective lower bits of a parameter for Montgomery modular multiplication | |
KR100946256B1 (ko) | 다정도 캐리 세이브 가산기를 이용한 듀얼필드상의확장성있는 몽고매리 곱셈기 | |
Anoop et al. | Performance analysis of montgomery multiplier | |
EP1465058A2 (en) | Method and apparatus for performing modular multiplication | |
Chiang et al. | An efficient VLSI architecture for RSA public-key cryptosystem | |
JP3999554B2 (ja) | 乗算剰余演算方法及び演算装置 | |
JP3323516B2 (ja) | 演算装置及びこれを備えた暗号化装置、復号装置 | |
Keshavarzi | VLSI implementation of public key cryptography algorithms | |
Onions | A high-speed integrated circuit with applications to RSA Cryptography | |
Elsherbiny et al. | Fast Calculation of the Modular Exponential Function in the RSA Cipher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050422 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050510 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050809 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050818 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051104 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060307 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060314 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100324 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110324 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120324 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130324 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130324 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140324 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |