JP2007520729A - 改良された低減計算 - Google Patents

改良された低減計算 Download PDF

Info

Publication number
JP2007520729A
JP2007520729A JP2006516560A JP2006516560A JP2007520729A JP 2007520729 A JP2007520729 A JP 2007520729A JP 2006516560 A JP2006516560 A JP 2006516560A JP 2006516560 A JP2006516560 A JP 2006516560A JP 2007520729 A JP2007520729 A JP 2007520729A
Authority
JP
Japan
Prior art keywords
bit
modulus
section
overflow
reduction operation
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
JP2006516560A
Other languages
English (en)
Inventor
ヘラルドゥス ティ エム フベルト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Koninklijke Philips Electronics NV
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 Koninklijke Philips NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JP2007520729A publication Critical patent/JP2007520729A/ja
Withdrawn legal-status Critical Current

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/722Modular multiplication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining

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)
  • Executing Machine-Instructions (AREA)

Abstract

楕円曲線暗号における低減技術が、最上位ワード(Most Significant Word)が1である状態の第1セクションを含む素数を、N = nm-1 + N1B + n0と共に利用する。

Description

本発明は、低減演算を行う方法及び低減演算を行う装置に関する。
楕円曲線暗号(ECC: Elliptic Curve Cryptography)は、GF(p)における楕円曲線関係に基づく計算の使用を含み、例えば、暗号化プロセッサにおける公開鍵アルゴリズムの実装において、繰り返し実行されるlong型整数の乗算を必要とする。
一般に、暗号処理又は復号処理を完了するには、何百回となく乗算演算が行われなければならない。そして、これらの演算を行う暗号化デバイスは、高速の乗算器を用いてlong型の乗算を高速に実行することが重要である。
次第に、このような暗号アルゴリズムは、例えばスマートカードのような、アプリケーション処理能力や消費電力に厳しい制限が課される電子デバイスにおいて使用されるようになっている。
従来技術の計算法としては、次式を用いて最上位ワード(Most Significant Word)に対する演算を行うQuisquaterシステムがある。
R’= R + (-N’* MSW)
ここで、N’はNの特殊な倍数である。-N’は、2の補数表記で使用されている。
低減演算が不十分であり、結果がとても大きくなるやもしれず、-N’をR’に加算する必要が生じる。
別の従来技術の計算法としては、次式を用いて最下位ワード(Least Significant Word)に対する演算を行うMongomeryシステムがある。
R’= R + N * Q
ここで、Q = LSW * M mod 2n である。
ここでも低減演算は不十分であり、1ビット分余計に大きいために、Nの減算をもう一度行う必要があるかもしれない。
そこで、本発明の目的は、より効率的な低減演算を提供することにある。
また、本発明の目的は、より乗算演算回数の少ない低減演算を提供することにある。
また、本発明の目的は、計算演算においてよりオーバーフローが少ない低減演算を提供することにある。
また、本発明の目的は、低減演算の完了がより速い低減演算を提供することにある。
1つの側面によれば、本発明は、暗号化計算において低減演算を行う方法であって、最上位ワードが「1」である状態を複数備える第1セクションと、「1」又は「0」の状態を複数備える第2セクションとを持つモジュラスを、その2つのセクションにより形成される数が、モジュラス又はモジュラスの倍数となるよう選択し、前述のモジュラス/倍数に対する低減演算を行うことを有する方法を提供する。
計算に使用するモジュラス/倍数を特定の形式で選択するこの方法により、その低減演算は乗算演算がより少なくて済む。
こうして、本発明により提供される重要な利点は、全体の計算演算を完了するのにかかる時間が短縮されることである。
更に、本発明の方法により提供される安全度は、既存の暗号化法と比較しても、同程度が維持される。
好ましくは、上記方法は、先導する「1」の個数が(k-2)未満であるかどうかを決定するため、その個数を監視することを含む。有利には、先導する「1」の個数が(k-2)未満であるとき、次回の計算が開始される。
こうして、本発明の更なる利点は、多数の乗算演算が同時に処理されることであり、それにより計算演算を完了するのにかかる時間が短縮されることである。
本発明のある実施形態によれば、192ビットECCと64ビットのワードサイズに対して、上記モジュラスが、138ビットの第1セクションと54ビットの第2セクションとを含む。
本発明の別の実施形態によれば、128ビットECCと64ビットのワードサイズに対して、上記モジュラスが、74ビットの第1セクションと54ビットの第2セクションとを含む。
本発明の別の実施形態によれば、256ビットECCと64ビットのワードサイズに対して、上記モジュラスが、202ビットの第1セクションと54ビットの第2セクションとを含む。
本発明はまた、ワードサイズの倍数分より少ない数のビットを持つ複数のモジュラスと共に機能することができる。その場合、そのシステムは、先導する「1」を必要な数含む倍数のモジュラスと共に機能する。
ある好ましい変形例によれば、本発明の方法は最下位ワード(LSW: Least Significant Word)以外のすべてのワードが「1」であるm個のワードからなるモジュラスを利用する。そのLSWは、例えば、10個の先導する「1」を持ち、いくつでもよいが、大きくすればするほど、追加的な低減が要求される回数は少なくなることを覚えておくとよい。
別の側面によれば、本発明は、デジタルコンピュータの内部メモリに直接ロード可能なコンピュータプログラムプロダクトであって、そのプロダクトがコンピュータ上で実行されるとき、本発明の方法を実行するためのソフトウェアコード部分を含むプログラムプロダクトを提供する。
別の側面によれば、本発明は、デジタルコンピュータの内部メモリに直接ロード可能なコンピュータプログラムであって、そのプログラムがコンピュータ上で実行されるとき、本発明の方法を実行するためのソフトウェアコード部分を含むプログラムを提供する。
別の側面によれば、本発明は、電気信号を含む、本発明を具体化するコンピュータプログラム用のキャリアを提供する。
別の側面によれば、本発明は、本発明のコンピュータプログラムプロダクト、又はコンピュータプログラム、又はキャリアの電子配布を提供する。
別の側面によれば、本発明は、暗号化計算において低減演算を行う装置であって、「1」である状態を複数備える第1セクションと、「1」又は「0」の状態を複数備える第2セクションとを持つモジュラスを、その2つのセクションにより形成される数が、モジュラス又はモジュラスの倍数となるよう選択する手段を含む装置を提供する。
以下、本発明が容易に理解されるように、実施例に過ぎないものを介し、対応する図面を参照しながら、詳細な説明が与えられる。
図1は、スマートカード50を搭載する、本発明のハードウェアによる実装のブロック図を示し、以下の要素を含む。
・一般的な制御のため、インタフェースを介して外部世界と通信を行うマイクロコントローラ51。それは、RAM/ROMのデータへのポインタをセットし、コプロセッサを起動する。
・例えばISO-7816-3などに基づきスマートカードと通信するための、外部世界へのインタフェース。
・マイクロコントローラのプログラム用のリードオンリメモリ(ROM)52。
・データ又はプログラム用の不揮発性ストレージであるプログラム可能リードオンリメモリ(フラッシュ又はEEPROM)53。
・揮発データ、例えば、計算中の中間結果を格納するストレージであるRAM54。
・ECCやRSAの計算用の特別な高速タスクを実行する専用のコプロセッサ55。タスクが実行可能(ready)にされると、制御がマイクロコントローラに戻される。
変形例では、マイクロプロセッサと、制御論理を与えるコントローラのプログラミングに用いる、加算、減算、シフト演算を提供するALUと、そしてシフトレジスタによる次数検出とにより、本発明はソフトウェアで実装される。
図2は、複数のワードを含み、全体で192ビットのモジュラスを用いて行われる本発明の低減演算を示す。モジュラスは、64ビットワード2つ分に10ビットを加えた部分がすべて「1」の状態である第1セクションを含む。モジュラスの第2セクションは、54ビットであり、全体の数が素数であればいくつであってもよい。数が大きくなればなるほど、追加的な低減が必要とされる機会は少なくなる。
一般的に、Nは次式のように表現できる。
N = nm-1 Bm-1 + … n1B + n0 (B = 264)
Nの選択にあたり特別に要求されることは、以下の通り。
・n1…nm-1は、定数であり、「1」だけを含む (n1 = … nm-1 = B-1)。
・n0は最上位からkビットが1であることを除けば、残りの64-kビットは自由に選択でき、一般的である。
するとNは、次式のように書き直すことができる。
N = Bm - B + n0 = Bm - n0’ここで、n0’= B - n0
Rを1ワード分低減されるべき結果であるとする。
R = rm Bm + rm-1 Bn-1 + … r1B + r0
その結果Rから積rm Nを減算することにより、次のように低減する。
R’= R - rm N
= rm Bm + rm-1 Bm-1 + … r1B + r0 - rm(Bm - B + n0)
= rm-1 Bm-1 + … + r2B2 + r1B + r0 + rm(B - n0) = (R - rm Bm) + rm.n0
これは、低減のためには、ワードrmを省き、最下位ワードr0に積rmn0’を加算することを意味する。この低減では、通常m回の乗算を行う代わりに、乗算を1回だけ行えばよいことを意味する。
n0 < B より、n0’は常に正である。結果もまた常に正である。
n0の代わりに、n0’を格納して使用する。
場合によっては、結果が1ビット分余計に大きなものになる。その場合、再度Nを減算する必要がある。
R’= (Bm + rm-1 Bm-1 + … + r1B + r0) - (Bm - n0’) = rm-1 Bm-1 + … + r1B + (r0 + n0’) = (R - Bm) + n0
すると、オーバーフロービットBm を捨て、n0’を加算しさえすればよいことになる。
すべての乗算に対して1ワードずつ、このような低減を行う。あるいは、最初にすべての乗算を行い、それから低減を行う。後者の方法をここで説明する。下記に示す例は、192ビットECCと64ビットワードサイズ(m=3)の例である。
N = B3 - B + n0 = B3 - n0’ここで、29 ≦ n0 < B (B = 264)
Rは、64ビットワード3つ分と、同じく64ビットワード3つ分との乗算の結果であり、結果6ワード(r0…r5)が生じる。
低減は次のように行われる。
・n0’とr4との積にr1を加える(ステップS1)。
・n0’とr5との積に、r2と、前の乗算でのキャリーcとを加える。更に、r3が乗算の上位部分に加えられる。その結果は、下位半分が再度r2となり、上位半分がqとなる(ステップS2)。
・n0’とqとの積にr0を加え、上位部分に新しいr1を加える(ステップS3)。
・直近の乗算でオーバーフローが生じたら、そのオーバーフローは、例えば、(0とするために)n0’と0との積がr2に加算される。r1の加算(下位半分としてr1を与える)とr2の上位部分(即ちオーバーフロービット)への加算を行う(ステップS4)。
・この演算でもオーバーフローが生じるなら(もっとも、r2がすべて1からなる場合(確率2-64)のみだが)、n0’が加算される(ステップS5)。
・これは、n0’に1を掛け、r0を下位半分に、r1を上位半分にそれぞれ加えることによりなされる。
2番目の乗算におけるキャリー(q)は、次回の乗算における被乗数として使用され、1ビット分拡張されることができる。
積n0’qへの入力r1が、先導する8つの1を持たないなら(その確率は、256分の1未満である)、オーバーフローは発生しない。というのも、n0’の存在によりn0’qは少なくとも8つの先導する0を持つからである。その場合、プログラムはオーバーフローが処理されるのを待つことはない。
オーバーフローの処理には時間を要するので、できるだけ最小にしなければならない。従って、n0はたくさんの先導する1を持ち(例えばその個数をk個とおく)、そして、n0’は少なくともk-1個の先導する0を持つ。
こうして、qは1ビット分拡張されてよいため、積n0’c2は少なくともk-2個の先導する0を持つ。
オーバーフローを発生させるためには、B.c0 + r0の加算が少なくともk-2個の先導する1と下位ビットからのキャリーcを持っていなければならない。
これが起きる確率は2-(k-2)未満である。そこでkを大きくすると、オーバフローが発生する確率はとても小さくなる。
r2は完全に1からなるため、2番目のオーバフローの確率は極度に小さい(2-64)。
実際、パイプライン化された乗算器は効率的な計算演算を提供するために用いられ、多数の乗算が同時に処理されている。その乗算器から結果を得るには数クロックサイクルしか消費しない。オーバーフローが生じるかを決定するために待つことが必要な場合、そのオーバーフローが計算されるまで次回の乗算は開始することができない。こうして、r1が監視され、先導する1がk-2個ない場合、今後数サイクルにわたりオーバーフローはないと判断され、次回の乗算が開始される。
図3は、128ビットECCと、64ビットのワードサイズに対し、128ビットのモジュラスNを組み込む新たな実施形態を示す図である。
この実施形態では、
N = B2 - B + n0 = B2 - n0’; 29≦ n0 < B
オペランドは、正規空間内になければならない。
すると、低減は以下のように行われる。
・n0’とr3との積にr1を加える。また、乗算の上位部分にr2が加算される(ステップS10)。その結果は、下位半分が再びr1となり、上位半分がqとなる。
・n0’とqとの積にr0を加え、上位部分に新しいr1を加える(ステップS11)。
・直近の乗算でオーバーフローが生じたら、例えば、乗算/加算 n0’.1 + B.r1 + r0により、n0’を加算する(ステップS12)。
図4は、256ビットECCと、64ビットのワードサイズに対し、256ビットの素数を組み込む新たな実施形態を示す図である。
この実施形態では、
N = B4 - B + n0 + B4 - n0’; 29 < n0 < B
オペランドは、正規空間内になければならない。
すると、低減は以下のように行われる。
・n0’とr5との積にr1を加える(ステップS20)。その新しい結果がr1となる。
・n0’とr6との積に、r2と、前の乗算でのキャリーcとを加える(ステップS21)。その新しい結果がr2となる。
・n0’とr7との積に、r3と、前の乗算でのキャリーcとを加える。
更に、その乗算の上位部分にr4が加算される(ステップS22)。その結果は、下位半分が再度r3となり、上位半分がqとなる。
・n0’とqとの積にr0を加え、上位部分に新しいr1を加える(ステップS23)。
・直近の乗算でオーバーフローが生じたら、そのオーバーフローがr2に加算される(ステップS24)。
・これが再度オーバーフローを生じさせるときは、それがr3に加算される(ステップS25)。
・それでもなおオーバーフローが生じるときは、n0’が加算される(ステップS26)。
3番目の乗算のキャリー(q)は、次回の乗算における被乗数として使用され、1ビット分拡張されることができる。
図5は、本発明のハードウェアによる実装を示し、以下の要素を含む。
・それぞれ、入力オペランドX、Y、U、Rを格納するX-、Y-、U-、そしてZ-レジスタ10〜13。
・出力C及びRを格納するC-及びR-レジスタ14、15。
・中間結果を格納するRAM16。
・演算B.C + R = X*Y + B*U + Z + cを実行する乗算器17。
・演算を制御し、RAMとレジスタとの間又はレジスタ同士の間の運搬を制御するステートマシン18。
乗算器17は、XとYの積を計算し、必要ならば、内部に格納された、過去のキャリーcを更に加算する。結果は2つの均等な部分に分割され、下位半分にはZが加算され、上位半分にはUが加算される。
C-レジスタ14の出力はYへの入力として直接使用される(例えば、図2におけるqのように)。
本発明の異なる形態は、加算、減算そしてシフト演算を提供する適切なALUとシフトレジスタとを備えるマイクロプロセッサ上で稼動するソフトウェアにより実装される。
スマートカードにおける本発明の適用を示す図である。 192ビットECCと64ビットワードの場合に対応する本発明の実施形態における低減演算の概略図である。 128ビットECCと64ビットワードの場合に対応する本発明の新たな低減演算の概略図である。 256ビットECCと64ビットワードの場合に対応する本発明の新たな低減演算の概略図である。 本発明のハードウェアによる実装を示す図である。

Claims (33)

  1. 暗号化計算において低減演算を行う方法であって、
    最上位ワードが「1」である状態を複数備える第1セクションと、「1」又は「0」の状態を複数備える第2セクションとを持つモジュラスを、該2つのセクションにより形成される数が、モジュラス又はモジュラスの倍数となるよう選択し、
    前記モジュラス/倍数に対する低減演算を行うことを有する方法。
  2. 複数の乗算演算を実行することを有する請求項1に記載の方法。
  3. 複数の乗算演算を実行し、後に低減演算を実行することを有する請求項2に記載の方法。
  4. 前記乗算演算と前記低減演算とを組み合わせたものを繰り返すことを有する請求項3に記載の方法。
  5. 前記モジュラス/倍数の倍数を使用することを有する請求項1乃至4のいずれかに記載の方法。
  6. 直近の乗算がオーバーフローを与えるとき、前記オーバーフローが前記選択された数の一部に加えられる、請求項1乃至5のいずれかに記載の方法。
  7. 前記オーバーフロー追加ステップがオーバーフローを与えるとき、n0’が該オーバーフローに加えられる、請求項6に記載の方法。
  8. 2つの隣接する乗算間でのキャリーが、次回の乗算において加数として与えられる、請求項1乃至7のいずれかに記載の方法。
  9. 先導する「1」の個数が(k-2)未満であるかどうかを決定するため、該個数を監視することを有する請求項1乃至8のいずれかに記載の方法。
  10. 前記先導する「1」の個数が(k-2)未満であるとき、次回の計算を開始することを有する請求項6に記載の方法。
  11. 192ビットECCと64ビットのワードサイズとを演算することを有し、前記モジュラスは、138ビットの第1セクションと54ビットの第2セクションとを含む、請求項1乃至10のいずれかに記載の方法。
  12. 128ビットECCと64ビットのワードサイズとを演算することを有し、前記モジュラスは、74ビットの第1セクションと54ビットの第2セクションとを含む、請求項1乃至10のいずれかに記載の方法。
  13. 256ビットECCと64ビットのワードサイズとを演算することを有し、前記モジュラスは、202ビットの第1セクションと54ビットの第2セクションとを含む、請求項1乃至10のいずれかに記載の方法。
  14. デジタルコンピュータの内部メモリに直接ロード可能なコンピュータプログラムプロダクトであって、
    前記プロダクトがコンピュータ上で実行されるとき、請求項1乃至13のいずれか1つ又は複数に記載された前記方法を実行するためのソフトウェアコード部分を有するプログラムプロダクト。
  15. デジタルコンピュータの内部メモリに直接ロード可能なコンピュータプログラムであって、
    前記プログラムがコンピュータ上で実行されるとき、請求項1乃至13のいずれか1つ又は複数に記載された前記方法を実行するためのソフトウェアコード部分を有するプログラム。
  16. 電気信号を有する、請求項15に記載のコンピュータプログラム用のキャリア。
  17. 請求項14に記載のコンピュータプログラムプロダクト、又は請求項15に記載のコンピュータプログラム、又は請求項16に記載のキャリアの電子配布。
  18. 暗号化計算において低減演算を行う装置であって、
    「1」である状態を複数備える第1セクションと、「1」又は「0」の状態を複数備える第2セクションとを持つモジュラスを、該2つのセクションにより形成される数が、モジュラス又はモジュラスの倍数となるよう選択する手段と、
    前記モジュラス/倍数に対する低減演算を行う手段とを有する装置。
  19. 複数の乗算演算を実行する手段を有する請求項18に記載の装置。
  20. 複数の乗算演算を実行し、後に低減演算を実行する手段を有する請求項19に記載の装置。
  21. 前記乗算演算と前記低減演算とを組み合わせたものを繰り返す手段を有する請求項20に記載の装置。
  22. 前記モジュラス/倍数の倍数を使用する手段を有する請求項18乃至21のいずれかに記載の装置。
  23. 直近の乗算がオーバーフローを与えるとき、前記オーバーフローを前記選択された数の一部に加える手段を有する請求項18乃至22のいずれかに記載の装置。
  24. 前記オーバーフロー追加ステップがオーバーフローを与えるとき、n0’を該オーバーフローに加える手段を有する請求項23に記載の装置。
  25. 2つの隣接する乗算間でのキャリーを、次回の乗算において加数として与える手段を有する請求項18乃至24のいずれかに記載の装置。
  26. 先導する「1」の個数が(k-2)未満であるかどうかを決定するため、該個数を監視する手段を有する請求項18乃至25のいずれかに記載の装置。
  27. 前記先導する「1」の個数が(K-2)未満であるとき、次回の計算を開始する手段を有する請求項18乃至26のいずれかに記載の装置。
  28. 192ビットECCと64ビットのワードサイズとに対する手段を有し、前記モジュラスは、74ビットの第1セクションと54ビットの第2セクションとを含む、請求項18乃至27のいずれかに記載の装置。
  29. 128ビットECCと64ビットのワードサイズとに対する手段を有し、前記モジュラスは、74ビットの第1セクションと54ビットの第2セクションとを含む、請求項18乃至27のいずれかに記載の装置。
  30. 256ビットECCと64ビットのワードサイズとに対する手段を有し、前記モジュラスは、202ビットの第1セクションと54ビットの第2セクションとを含む、請求項18乃至27のいずれかに記載の装置。
  31. 図1乃至図5のうちの1つ又は複数において示される対応図面を参照して説明される内容、及び/又は前記対応図面において説明される内容と実質的に同一の低減演算を行う方法。
  32. 暗号化計算において低減演算を行う装置であって、図1乃至図5のうちの1つ又は複数において示される対応図面を参照して説明される内容、及び/又は前記対応図面において説明される内容と実質的に同一の低減演算を行う装置。
  33. 暗号化計算を行う低減演算を行う方法であって、図1乃至図5のうちの1つ又は複数において示される対応図面を参照して説明される内容、及び/又は前記対応図面において説明される内容と実質的に同一の低減演算を行う方法。
JP2006516560A 2003-06-21 2004-06-10 改良された低減計算 Withdrawn JP2007520729A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0314557.0A GB0314557D0 (en) 2003-06-21 2003-06-21 Improved reduction calculations
PCT/IB2004/002011 WO2004114124A1 (en) 2003-06-21 2004-06-10 Improved reduction calculations

Publications (1)

Publication Number Publication Date
JP2007520729A true JP2007520729A (ja) 2007-07-26

Family

ID=27637125

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006516560A Withdrawn JP2007520729A (ja) 2003-06-21 2004-06-10 改良された低減計算

Country Status (6)

Country Link
US (1) US7590235B2 (ja)
EP (1) EP1639449A1 (ja)
JP (1) JP2007520729A (ja)
CN (1) CN1809806A (ja)
GB (1) GB0314557D0 (ja)
WO (1) WO2004114124A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9545813B2 (en) 2012-06-07 2017-01-17 Mitsubishi Pencil Company, Limited Ball pen

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7978846B2 (en) * 2007-06-30 2011-07-12 Intel Corporation Scale-invariant barrett reduction for elliptic-curve cyrptography
US8005210B2 (en) * 2007-06-30 2011-08-23 Intel Corporation Modulus scaling for elliptic-curve cryptography
US7986779B2 (en) * 2007-06-30 2011-07-26 Intel Corporation Efficient elliptic-curve cryptography based on primality of the order of the ECC-group
US8626811B2 (en) * 2010-04-30 2014-01-07 Certicom Corp. Method and apparatus for providing flexible bit-length moduli on a block Montgomery machine
EP2385461A1 (en) * 2010-04-30 2011-11-09 Certicom Corp. Method and apparatus for providing flexible bit-length moduli on a block Montgomery machine
ITMI20111052A1 (it) 2011-06-10 2012-12-11 Planium S R L Sistema di pavimentazione

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0792739B2 (ja) * 1989-05-22 1995-10-09 甲府日本電気株式会社 浮動小数点データ正規化方式
US5271061A (en) * 1991-09-17 1993-12-14 Next Computer, Inc. Method and apparatus for public key exchange in a cryptographic system
DE69837036T2 (de) * 1997-09-16 2007-10-18 Koninklijke Philips Electronics N.V. Verfahren und vorrichtung zur ausführung einer entschlüsselung mittels einer standardisierten modularen potenzierung zum vereiteln eines zeitangriffs
US6240436B1 (en) * 1998-03-30 2001-05-29 Rainbow Technologies, Inc. High speed montgomery value calculation
US6691143B2 (en) * 2000-05-11 2004-02-10 Cyberguard Corporation Accelerated montgomery multiplication using plural multipliers
WO2002003608A1 (en) * 2000-06-29 2002-01-10 The State Of Oregon Acting By And Through The State Board Of Higher Education On Befalf Of The University Of Oregon Method and apparatus for incomplete modular arithmetic

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9545813B2 (en) 2012-06-07 2017-01-17 Mitsubishi Pencil Company, Limited Ball pen

Also Published As

Publication number Publication date
US20070168411A1 (en) 2007-07-19
US7590235B2 (en) 2009-09-15
CN1809806A (zh) 2006-07-26
GB0314557D0 (en) 2003-07-30
WO2004114124A1 (en) 2004-12-29
EP1639449A1 (en) 2006-03-29

Similar Documents

Publication Publication Date Title
US6064740A (en) Method and apparatus for masking modulo exponentiation calculations in an integrated circuit
EP1293891B1 (en) Arithmetic processor accomodating different finite field size
US11983280B2 (en) Protection of cryptographic operations by intermediate randomization
US20050198093A1 (en) Montgomery modular multiplier
JP2001527673A (ja) モントゴメリー乗算に基づくモジュラ乗算及び累乗の改善された装置と方法
US6209016B1 (en) Co-processor for performing modular multiplication
US7831650B2 (en) Method for modular multiplication
CA2225899A1 (en) A method and apparatus for finite field multiplication
JPH06202850A (ja) データ処理装置
EP0938790B1 (en) A method and device for executing a decrypting mechanism through calculating a standardized modular exponentiation for thwarting timing attacks
US9098381B2 (en) Modular arithmatic unit and secure system including the same
CN113032797A (zh) 在处理设备中执行加密操作的方法
US6917956B2 (en) Apparatus and method for efficient modular exponentiation
GB2287331A (en) Electronic multiplying and adding apparatus.
JP2007520729A (ja) 改良された低減計算
CN113141255A (zh) 用于在处理设备、对应的处理设备和计算机程序产品中对数据执行密码运算的方法
JP4047816B2 (ja) 除算の結果を演算する装置および方法
US6766346B2 (en) System and method for computing a square of a number
US8995651B1 (en) Multiple algorithm cryptography system
KR20040045152A (ko) 모듈러 곱셈 장치
EP1639448B1 (en) Improved inversion calculations
CN111213122A (zh) 模逆运算器、模逆运算方法及安全系统
US20100208883A1 (en) Protection of a modular exponentiation calculation performed by an integrated circuit
KR19990021768A (ko) 디지탈신호처리기
Chiou et al. Parallel modular multiplication with table look-up

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070608

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070608

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080424

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090925