JP4875700B2 - ランダム化されたモジュラー多項式のリダクション方法およびそのためのハードウェア - Google Patents

ランダム化されたモジュラー多項式のリダクション方法およびそのためのハードウェア Download PDF

Info

Publication number
JP4875700B2
JP4875700B2 JP2008511127A JP2008511127A JP4875700B2 JP 4875700 B2 JP4875700 B2 JP 4875700B2 JP 2008511127 A JP2008511127 A JP 2008511127A JP 2008511127 A JP2008511127 A JP 2008511127A JP 4875700 B2 JP4875700 B2 JP 4875700B2
Authority
JP
Japan
Prior art keywords
polynomial
quotient
hardware
reduction
modular
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.)
Active
Application number
JP2008511127A
Other languages
English (en)
Other versions
JP2008541166A (ja
Inventor
デュパキ,バンサン
ドゥゲ,ミシェル
Original Assignee
アトメル ルセ エスアエス
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アトメル ルセ エスアエス filed Critical アトメル ルセ エスアエス
Priority claimed from PCT/US2006/013795 external-priority patent/WO2006124160A2/en
Publication of JP2008541166A publication Critical patent/JP2008541166A/ja
Application granted granted Critical
Publication of JP4875700B2 publication Critical patent/JP4875700B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F7/724Finite field arithmetic
    • G06F7/726Inversion; Reciprocal calculation; Division of elements of a finite field
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n

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)
  • Navigation (AREA)
  • Error Detection And Correction (AREA)

Description

この発明は、特に暗号アプリケーションにおいて用いられる、算術処理および計算システム、およびコンピュータで実行される方法に関する。この発明は、特定的には、有限フィールドGF(2n)において多項式のモジュラーリダクション(modular reduction)を含む剰余計算に関し、特にバレットのリダクション方法(Barrett reduction method)から導かれる計算に関する。
多くの暗号アルゴリズムは、大きな整数の掛算(または累乗法)と、暗号キーに関連する特定の法に対して合同である剰余の値への積のリダクションとを利用する。AES/Rijndaelブロック暗号、並びに離散的対数および楕円曲線に基づいたものも含む、いくつかの暗号アルゴリズムは、バイナリフィールドGF(2n)のような有限フィールドにおいて、多項式に対して算術演算を行なう。この算術演算には、このような多項式に対する掛算(または累乗法)およびモジュラーリダクション処理が含まれる。暗号システムによって行なわれる数学的計算は、べき乗解析やタイミング攻撃の影響を受けやすい場合がある。したがって、キーに関する情報が得られないように計算が保護されることが重要である。
同時に、これらの計算は速く、正確であることが重要である。大きい整数に対して行なわれるものであろうと、有限フィールドにおける多項式に対して行なわれるものであろうと、掛算およびリダクションは、通常、暗号アルゴリズムの計算上最も集中的な部分である。前計算およびテーブルルックアップを含む修正を伴って、クイスクォーター(Quisquater)の方法、バレットの方法、およびモンゴメリ(Montgomery)の方法として知られる技術を含む、いくつかの注目すべき計算技術が、効率的なモジュラーリダクションのために開発されている。これらの周知の技術は、先行技術において記載され比較される。たとえば、以下の文献を参照のこと。(1)ボッセラース等(Bosselaers et al.)、「3つのモジュラーリダクション関数の比較(Comparison of three modular reduction functions)」、アドバンシズ・イン・クリプトロジー/クリプト′93(Advances in Cryptology/Crypto ′93)、LNCS773、シュプリンガー・フェアラーク(Springer-Verlag)、1994、pp.175−186。(2)ジャン・フランソワ・デム(Jean Francois Dhem)、「RISCに基づいたスマートカードのための効率的な公開鍵暗号ライブラリの設計(Design of an efficient public-key cryptographic library for RISC-based smart cards)」博士論文(doctoral dissertation)、ルヴァンカトリック大学(Universite catholique de Louvain)、ルヴァン・ラ・ヌーヴ(Louvain-la-Neuve)、ベルギー(Belgium)、5月、1998。(3)C.H.リム(C. H. Lim)等、「前計算を伴う高速モジュラーリダクション」、プレプリント(preprint)、1999(サイトシアー・サイエンティフィック・リテラチャー・デジタル・ライブラリ(CiteSeer Scientific Literature Digital Library)から入手可能、citeseer.nj.nec.com/109504.html)。(4)ホルマン等(Hollmann et al.)、「タイミング攻撃を阻止するために、標準化されたモジュラー累算を計算することを通して、復号機構を実行するための方法および装置(Method and Device for Executing a Decrypting Mechanism through Calculating a Standardized Modular Exponentiation for Thwarting Timing Attacks)」、米国特許6,366,673 B1、4月2日、2002年(1998年9月15日出願の特許出願に基づく)。
この発明の目的は、特に多項式に適用した際には、速く正確な結果を提供しながらも、
暗号解析攻撃に対してより安全である、バレットのリダクション方法および対応する計算装置の改良を提供することである。
この発明の別の目的は、多項式のモジュラーリダクションにおいて用いられる商の概算をスピードアップする、上述した改良方法および装置を提供することである。
発明の概要
これらの目的は、多項式の法の前計算された記数法の(scaled)逆数を乗数として用いて、リダクション計算のために用いられる多項式の商が(少なくとも正しい多項式の次数まで)概算される、バイナリの有限フィールドGF(2n)におけるコンピュータで実行される多項式のモジュラーリダクションのための方法によって、達成される。このリダクションの結果得られる多項式の残余は、次数nの特定の既約多項式の法に対する対応する中間の積に常に合同であるが、典型的には(多項式の次数において)最小の剰余の値よりも大きく、各処理実行ごとにランダムな態様で異なる。概算エラーが故意にランダム化されるので、この方法は暗号解析に対してより安全である。その上、中間結果が数学的に等価(真の結果に合同)であり、最終結果は、ランダム化なしで最後の正確なリダクションを処理することにより得てもよい。これにより、暗号処理の変換性に必要とされる正確さを達成する。
この発明の方法のステップを実行するのに用いるハードウェアは、ランダムなエラーを商の概算へ注入するよう、乱数発生器を含む。メモリへのアクセスを伴う計算ユニットは、マルチワードの多項式の掛算およびモジュラーリダクションの、ワード幅の掛算−累算ステップを行なうよう、ファームウェアを実行する演算シーケンサの制御下で動作する。計算ユニットは、有限フィールドの多項式演算専用の掛算−累算ハードウェアを含んでもよく、または自然数もしくは多項式演算を行なうよう選択可能であってもよい。
発明の詳細な説明
図1を参照すると、計算ハードウェアは、メモリ(RAM)12およびワーキングレジスタ14から読出される多項式のオペランドに対してワード幅の有限フィールド掛算および掛算−累算ステップを行ない得る計算ユニット10を含む。レジスタ14は、通常の整数処理において桁に数を入れることに関与するのと同じハードウェアレジスタであってもよい。演算シーケンサ16は、既約多項式の基底を用いてマルチワードの有限フィールドの多項式掛算(または累算)およびモジュラーリダクションを行なう処理の組のためのファームウェアまたはソフトウェアの命令に従って計算ユニット10を制御する論理回路を含む。演算シーケンサ16によってアクセス可能なレジスタ18に格納される演算パラメータは、演算シーケンサ16がRAM12の中のオペランドを特定することを可能とするポインタと、オペランドの長さ(ワードの数)に関する情報と、中間結果の宛先アドレスとに存在する。
ここまで述べたように、この装置は、マルチワードの多項式算術演算に適合する他の入手可能なハードウェアに実質的に同様である。バイナリの有限フィールドGF(2n)において行なわれる多項式演算は、桁上げを無視する点および足算と引算が同じ値となる点において、自然数演算と異なる。計算ユニットは、有限フィールド多項式処理専用の掛算−累算ハードウェアを含んでもよく、または自然数/多項式演算を行なうよう選択され得る2つの目的を兼ねた自然数/多項式演算ハードウェアであってもよい。後述するリダクションステップの詳細以外は、ファームウェアまたはソフトウェアの命令も、ワード幅のセグメントにおいて、効率的なマルチワードの多項式掛算または累算を実行する先行技術
のプログラムに似ている。
このタイプの先行技術のハードウェアと異なり、図1に示すハードウェアは、たとえばどのような公知の疑似乱数発生器回路でもあり得る、乱数発生器20も含む。この乱数発生器は計算を行ない、乱数を出力する。その乱数のビットは、この方法で利用されるランダムな多項式のバイナリ係数として解釈される。ここで、以下に記載するように、この乱数発生器20は、この発明の方法を実行するプログラム命令に従った演算シーケンサ16が指示するように、ランダム化されたエラー量を商の概算へ注入するよう、計算ユニット10によってアクセスされる。
図2を参照して、この発明の方法は、より速い商の概算と暗号解析攻撃に対する抵抗とを提供するという、バレットのモジュラーリダクション技術の改良であり、そのモジュラーリダクション技術をバイナリの有限フィールドGF(2n)における多項式に適用する。この方法は、図1に示すハードウェアによって実行される。
多項式を含むモジュラー演算は、整数を含むモジュラー演算と、いくつかの点において似ているが、モジュラー演算をバイナリの有限フィールドGF(2n)上の多項式へ拡張することは、基本的な処理への修正を必要とする。まず、多項式をフィールド上に導入する。フィールドFの要素の倍数(am-1,…a1,a0)のいずれかに対して、次数(m−1)のxについての多項式を関連付け得る、すなわちam-1m-1+…a11+a00。どんなバイナリフィールドの場合でも、フィールドの要素は{0,1}であり、よって、多項式の係数aiは、同様に0または1である。この概念は、性質としてバイナリであるコンピュータハードウェアに特によく適合する、なぜならば、各ビットは、有限フィールドの要素として解釈され得るためである。たとえば、各バイナリバイト値[a76543210]を、次数7(または7より小さい)のGF(2n)上の対応する多項式と関連付け得る、すなわちa77+a66+a55+a44+a33+a22+a1x+a0。よって、たとえば、バイト値[01100011]は、バイナリ多項式x6+x5+x+1として解釈される。バイナリ有限フィールドGF(2n)上で、多項式がそのフィールドに属するよう、多項式の次数(m−1)はnよりも小さいという条件下では、マルチバイトシーケンスが長いほど、高い次数の多項式であると同様に解釈されてもよい。(なお、多項式の相対的なサイズを比較する際には、比較は次数ごとに行なわれ、xについて最も大きい次数の多項式の係数から始める。)フィールドにおける多項式の足算および引算は、各次数ごとに別個に、係数を足算または引算する通常の態様で行なう。
Figure 0004875700
しかしながら、どんなバイナリフィールドでも、要素は{0,1}であり、よってフィールド要素の足算および引算は、2を法として行なう(0±0=0、0±1=1±0=1、1±1=0)。なお、この場合、引算は足算と同じである。コンピュータハードウェアにおいて、法を2とする足算/引算は、論理XOR演算を用いて、ビットのアレイに対して行なわれる。たとえば、(x6+x4+x2+x1)+(x7+x+1)=(x7+x6+x4+x2)、またはバイナリ表記では
Figure 0004875700
。多項式の掛算は通常(有限フィールドに対して)以下の式で規定される。
Figure 0004875700
しかしながら、有限フィールドでは、この定義は、積もそのフィールドに属するよう修正されなければならない。特に、通常の多項式掛算の後には、次数nの法m(x)によるモジュラーリダクションが行なわれる(GF(2n)でのように、nは有限フィールドの次元である)。法m(x)は、好ましくは、既約多項式(素数の多項式のアナログ、すなわち同じフィールド上で非自明な多項式へと因数分解し得ないもの)となるよう選択される。たとえば、AES/Rijndael共通鍵ブロック暗号においては、特定の既約多項式m(x)=x8+x4+x3+x+1を、多項式掛算を行なうときのモジュラーリダクションの選択された基底として用いて、バイナリ有限フィールドGF(28)におけるバイト(次数7以下の多項式)に対して処理を行なう。AES用に指定された特定のm(x)を用いたバイナリ有限フィールドにおける多項式掛算の例として、(x6+x4+x2+x+1)・(x7+x+1)=(x13+x11+x9+x8+x6+x5+x4+x3+1)があり、これは、リダクション後は、(x7+x6+1)を与える。
F[x]を、すべての係数がフィールドFの要素である多項式の組とする。法m(x)がF[x]において次数dの多項式であるならば、p(x),r(x)∈F[x]の多項式p(x)、r(x)について、m(x)で多項式p(x)−r(x)を割るときかつそのときに限り、p(x)はm(x)を法としてr(x)と合同であるという(p(x)≡r(x)(mod m(x))と書く)。言い換えれば、p(x)−r(x)はm(x)の多項式の倍数である、すなわち、ある多項式q(x)∈F[x]について、p(x)−r(x)=q(x)・m(x)が成り立つ。
同等に、p(x)とr(x)は、m(x)での割算の際には、同じ残余を持つ。F[x]における多項式a(x)およびb(x)の通常の積となり得る多項式p(x)、すなわちp(x)=a(x)・b(x)のモジュラーリダクションは、残余または剰余r(x)が、m(x)よりも小さい次数の多項式となるように、すなわちdeg(r(x))<dとなるように、多項式の商q(x)を求めるステップを含む。この多項式の剰余r(x)は、p(x)と合同であり、最終的に欲しい多項式の値である。バイナリ有限フィールドGF(2n)において、m(x)は次数nの既約多項式となり、求められる剰余多項式r(x)は次数がnよりも小さいものとなる。しかし、p(x)においてはどんな次数でもあり得るため、q(x)においてもどんな次数でもあり得る。そして、たとえば、p(x)が積であるときのように、少なくとも、リダクションさせるべき多項式p(x)は、しばしばmよりも大きい次数の多項式である。どんな場合でも、いかなるモジュラーリダクション方法における基本的な問題は、特に、大きい次数の多項式p(x)およびm(x)に対する商を効率的に得ることにある。暗号アプリケーションの関係において、さらなる問題は、計算ハードウェアにおいて、べき乗解析攻撃から安全な方法で、リダクション処理を行なうことにある。
元々、整数リダクション処理のために考え出されたバレットの方法は、商を概算するよう、法の逆数Uの記数法の概算を前計算し記憶するステップと、長い割算を掛算およびワードまたはビットシフト(xで割る)に置き換えるステップとを含む。パラメータの適切な選択により、商の概算におけるエラーは最大でも2である。この発明は、バレットの方法をバイナリ有限フィールドにおける多項式のモジュラーリダクションに適合させ、さらにバレットの方法を、商のより速い概算をもって、かつ残余を計算する前に商にランダムなエラーを意図的に注入することにより、改良する。結果として生じるランダム化された残余は、(多項式の次数において)わずかに剰余値よりも大きくなるが、剰余値と合同である。
次数において、kを多項式の法m(x)のサイズとし、
Figure 0004875700
p(x)を、次数lまでリダクションさせるべき多項式とする。
Figure 0004875700
まず、法m(x)の記数法の逆数を示す定数の多項式u(x)を前計算し記憶する(図2のステップ30)ことから始める。
u(x)=x2k+1/m(x)
それから、この記憶された値は、この後、この特定の法m(x)についてのすべての多項式リダクション処理において用いられる。u(x)は、常に、xの単なる累乗でないあらゆる法m(x)のための次数kの多項式である。
p(x)の法のリダクションを行なうために、この記憶された値u(x)を用いて、多項式の商q(x)を以下のように概算する(ステップ32)。
q(x)=((p(x)/xk-1)・u(x))/xk+2
高い次数(マルチワード)の法m(x)については、処理は、ビットシフトではなくワードシフトで行ない得る。ワードサイズをwとすると、u(x)=x2k+w/m(x)と定義し、商q(x)=((p(x)/xk-w)・u(x))/xk+2wを概算し得る。この場合、多項式p(x)は、deg(p(x))≦2・k+wのように、わずかにより大きい次数を有し得る。これにより、計算ハードウェアにおいて多項式量の扱いが簡素化される。この計算は、(リダクションのない)バイナリ有限フィールドの多項式の掛算と、多項式の次数のシフトとを必要とするのみである。
この段階(ステップ36)で、ランダムな多項式エラーE(x)が、計算された多項式
の商に入れられ、これによりランダム化された商q′(x)=q(x)+E(x)を得る。このランダムな多項式エラーE(x)は、発生されたバイナリ値がすでに上述した態様で多項式として解釈される場合は、公知のどのような乱数発生器または疑似乱数発生器(ハードウェアまたはソフトウェア)によって発生されてもよい(ステップ34)。唯一の制約は、エラーの多項式の次数が、0≦deg(E(x))<w/2のような特定の範囲内に入らなければならないことである。
高い次数(マルチワード)の法m(x)については、エラーは数ビット、たとえばワードの半分未満、すなわちdeg(E(x))<W/2、に制限されるべきである。これにより、商の概算自体から生じる任意のエラーに加えて、乱数発生器によって与えられた起こり得るエラーを、特定の数のビット、たとえばワードの半分へと制限する。
次に、(m(x)を法として)剰余r(x)と合同となる残余r′(x)を計算する(ステップ38)。
r′(x)=p(x)+q′(x)・m(x)
ランダムな多項式のエラーEが、多項式の商q(x)に導入されるので、計算された残余r′(x)は、次数において、法m(x)よりわずかに大きくなる。
残余r′(x)は、さらなる計算において用い得る。その計算の結果は、必要ならばもう一度リダクションさせてもよい。(エラーは有界のままである。)
代替的に、特定のアプリケーションの必要に応じて、剰余r(x)は、m(x)より小さい多項式の値を得るよう、通常のGF(2n)多項式リダクションを法m(x)を用いて適用することにより、残余r′(x)から計算され得る。
モジュラーリダクションをランダム化することにより、法を判断するのに、べき乗使用の一貫性に頼っているさまざまな暗号解析攻撃に対する安全性を提供する。ここで、合同である中間の残余r′(x)を発生させつつも、m(x)を法とするp(x)のバイナリフィールド多項式リダクションは、ある処理実行から次の処理実行へ、ランダムに変化する。最終の剰余値r(x)を生成する最後のバイナリフィールド多項式リダクションのシーケンスも、ある処理実行から次の処理実行へ、ランダムに変化する。なぜならばリダクションは異なった残余r′(x)に対して行なわれるからである。このようにリダクションされる多項式p(x)は、掛算、平方、累乗、足算などを含む、さまざまな異なった算術演算から得られ得る。用いられる法m(x)も、同様にさまざまな方法で導き得、暗号法においては、大抵は鍵から導き得る。この発明のランダム化されたモジュラーリダクション方法は、Rijnael/AES共通鍵ブロック暗号、および離散対数に基づいた公開鍵暗号システムを含む、このようなバイナリフィールドGF(2n)多項式リダクションに頼る多くの暗号アルゴリズムにおいて、有用である。
この発明のモジュラーリダクション方法を実行するのに用いられる、この発明に従った(乱数発生器ユニットを含む)計算ハードウェアの概略平面図である。 このモジュラーリダクション方法における全体のステップを示すフロー図である。

Claims (11)

  1. 暗号学的に安全で、コンピュータハードウェアで実施される、バイナリ有限フィールドGF(2n)におけるモジュラー多項式リダクション方法であって、
    多項式の法m(x)のビットスケールの逆数を示す多項式定数u(x)を前計算し、メモリに記憶するステップと、
    m(x)を法としてリダクションさせる多項式p(x)について、おおよその多項式の商qを概算するステップとを含み、前記概算は、GF(2n)上での前記定数u(x)およびビットシフトによる多項式掛算によって、計算ユニットにおいてp(x)に対して実行され、前記方法はさらに、
    ランダム化された多項式の商q′(x)=q(x)+E(x)を得るよう、乱数発生器において、ランダムな多項式エラー値E(x)を発生させ、前記多項式エラー値を前記おおよその多項式の商へ適用するステップと、
    前記計算ユニットにおいて、多項式の残余r′(x)=p(x)+q′(x)・m(x)を計算するステップとを含み、前記残余r′(x)は、前記m(x)よりも高い次数のものであるが、m(x)を法としてp(x)に合同であり、p(x)の次数は、2k+1以下である、モジュラー多項式リダクション方法。
  2. 前記多項式定数u(x)の前計算は、方程式u(x)=X2k+w/m(x)に従って行なわれる、請求項1に記載の方法。
  3. 商q(x)の概算は、計算ユニットによって、方程式q(x)=((p(x)/xk-1)・u(x))xk+2に従って行なわれる、請求項2に記載の方法。
  4. 前記ビットシフトは、ワードサイズシフトであり、多項式定数はu(x)=X2k+w/m(x)として前計算され、商はq(x)=((p(x)/xk-w)・u(x))/xk+2wとして概算され、wはビットを単位としたワードサイズであり、p(x)の次数は2k+w以下である、請求項1に記載の方法。
  5. 乱数発生器には、2分の1ワードという特定のエラー制限があり、よって0≦deg(E(x))<w/2である、請求項4に記載の方法。
  6. p(x)のモジュラーリダクションは、コンピュータハードウェアによって実行される暗号プログラムの一部である、請求項1に記載の方法。
  7. 暗号学的に安全で、バイナリ有限フィールドGF(2n)上でのモジュラー多項式リダクション方法を実行する計算ハードウェアであって、ハードウェアは、
    メモリから読出された多項式のオペランドと、ワーキングレジスタの組からの多項式係数の中間結果とに対してワード幅の有限フィールド掛算および累算ステップを行なうよう適合される計算ユニットと、
    ランダムな多項式エラー値E(x)を発生する乱数発生器と、
    バイナリ有限フィールドGF(2n)上で、法m(x)に対して、数p(x)の多項式のモジュラーリダクションを行なうよう、プログラムの命令に従って、計算ユニットと乱数発生器とを制御するための論理回路を含む演算シーケンサとを含み、前記多項式モジュラーリダクションは、少なくとも、法のビットスケールの逆数を示す前もって記憶された多項式定数u(x)からの多項式の商q(x)の概算と、ランダム化された多項式の商q′(x)=q(x)+E(x)を得るよう前記おおよその多項式の商を前記ランダムな多項式エラーE(x)でランダム化することと、多項式残余値r′(x)=p(x)+q′(x)・m(x)の計算とを含む、計算ハードウェア。
  8. さらに、前記演算シーケンサによってアクセス可能な演算パラメータレジスタを含み、前記レジスタは、(a)前記メモリまたはワーキングレジスタ内の多項式のオペランドのワードサイズの係数を特定するポインタ、(b)多項式のオペランドのワード長についての情報、および(c)処理ステップの中間結果のための宛先アドレス情報のうちのいずれか1つまたはそれ以上を含む、請求項7に記載の計算ハードウェア。
  9. 前記メモリに前もって記憶された多項式係数u(x)は、方程式u(x)=X2k+w/m(x)に従って前計算から得られ、wは、ビットを単位とした計算ユニットのワードサイズである、請求項7に記載の計算ハードウェア。
  10. プログラム命令を実行する前記演算シーケンサの制御の下、前記計算ユニットによって行なわれる前記おおよその多項式の商qの概算は、方程式q′(x)=((p(x)・xk-w)・u(x))/xk+2wに従ってなされる、請求項9に記載の計算ハードウェア。
  11. 乱数発生器には、2分の1ワードという特定のエラー制限があり、よって、0≦deg(E(x)<w/2である、請求項10に記載の方法。
JP2008511127A 2005-05-12 2006-04-12 ランダム化されたモジュラー多項式のリダクション方法およびそのためのハードウェア Active JP4875700B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
FR05/04779 2005-05-12
FR0504779A FR2885711B1 (fr) 2005-05-12 2005-05-12 Procede et materiel modulaire et aleatoire pour la reduction polynomiale
US11/203,939 2005-08-15
US11/203,939 US7805480B2 (en) 2005-05-12 2005-08-15 Randomized modular polynomial reduction method and hardware therefor
PCT/US2006/013795 WO2006124160A2 (en) 2005-05-12 2006-04-12 Randomized modular polynomial reduction method and hardware therefor

Publications (2)

Publication Number Publication Date
JP2008541166A JP2008541166A (ja) 2008-11-20
JP4875700B2 true JP4875700B2 (ja) 2012-02-15

Family

ID=35431948

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008511127A Active JP4875700B2 (ja) 2005-05-12 2006-04-12 ランダム化されたモジュラー多項式のリダクション方法およびそのためのハードウェア

Country Status (5)

Country Link
US (2) US7805480B2 (ja)
JP (1) JP4875700B2 (ja)
CN (1) CN101194457B (ja)
FR (1) FR2885711B1 (ja)
TW (1) TWI386818B (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2862454A1 (fr) * 2003-11-18 2005-05-20 Atmel Corp Methode de reduction modulaire aleatoire et equipement associe
FR2885711B1 (fr) * 2005-05-12 2007-07-06 Atmel Corp Procede et materiel modulaire et aleatoire pour la reduction polynomiale
US7961877B2 (en) * 2006-12-14 2011-06-14 Intel Corporation Factoring based modular exponentiation
US8144864B2 (en) * 2007-12-28 2012-03-27 Intel Corporation Method for speeding up the computations for characteristic 2 elliptic curve cryptographic systems
TWI406548B (zh) * 2010-10-27 2013-08-21 Univ Southern Taiwan 橢圓曲線加密運算電路
US9471308B2 (en) 2013-01-23 2016-10-18 International Business Machines Corporation Vector floating point test data class immediate instruction
US9715385B2 (en) 2013-01-23 2017-07-25 International Business Machines Corporation Vector exception code
US9513906B2 (en) 2013-01-23 2016-12-06 International Business Machines Corporation Vector checksum instruction
US9804840B2 (en) 2013-01-23 2017-10-31 International Business Machines Corporation Vector Galois Field Multiply Sum and Accumulate instruction
US9778932B2 (en) 2013-01-23 2017-10-03 International Business Machines Corporation Vector generate mask instruction
US9823924B2 (en) 2013-01-23 2017-11-21 International Business Machines Corporation Vector element rotate and insert under mask instruction
CN103699357B (zh) * 2013-12-05 2016-11-23 西安交通大学 一种用于模乘和模平方的快速模约简算法电路
US9425961B2 (en) * 2014-03-24 2016-08-23 Stmicroelectronics S.R.L. Method for performing an encryption of an AES type, and corresponding system and computer program product
IL239880B (en) * 2015-07-09 2018-08-30 Kaluzhny Uri Simplified montgomery multiplication
CN106254059B (zh) * 2016-07-26 2020-03-20 华为技术有限公司 一种运算方法和安全芯片
JP6602276B2 (ja) * 2016-08-29 2019-11-06 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
US10833868B2 (en) * 2017-12-06 2020-11-10 Intel Corporation Direct anonymous attestation-based apparatus and method
US10218494B1 (en) * 2018-02-23 2019-02-26 ISARA Corporation Performing block form reductions modulo non-Mersenne primes in cryptographic protocols
DE102018113475A1 (de) * 2018-06-06 2019-12-12 Infineon Technologies Ag Rechenwerk zum rechnen mit maskierten daten
WO2020145503A1 (en) * 2019-01-10 2020-07-16 Crypto Lab Inc. Apparatus for processing approximately encrypted messages and methods thereof
CN112506470B (zh) * 2020-12-21 2024-07-02 深圳比特微电子科技有限公司 芯片和计算系统
KR20220105495A (ko) * 2021-01-20 2022-07-27 삼성전자주식회사 부채널 공격에 내성이 있는 모듈라 곱셈을 위한 장치 및 방법
US11502819B2 (en) * 2021-01-21 2022-11-15 Nxp B.V. Efficient masked polynomial comparison
CN113253972A (zh) * 2021-05-13 2021-08-13 南京航空航天大学 一种lac中稀疏多项式乘法加速器的fpga实现方法

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4839896A (en) * 1987-02-10 1989-06-13 Data Systems Technology Corp. Fast remainder decoding for a Reed-Solomon code
KR19990024971A (ko) * 1997-09-09 1999-04-06 정선종 모듈러 승산장치
US5144574A (en) * 1989-01-30 1992-09-01 Nippon Telegraph And Telephone Corporation Modular multiplication method and the system for processing data
US5077793A (en) * 1989-09-29 1991-12-31 The Boeing Company Residue number encryption and decryption system
EP0431629A3 (en) * 1989-12-08 1993-07-21 Sony Corporation Mutual division circuit
US5210710A (en) * 1990-10-17 1993-05-11 Cylink Corporation Modulo arithmetic processor chip
EP0611506B1 (en) * 1991-11-05 1997-04-09 THOMSON multimedia Method, sender apparatus and receiver apparatus for modulo operation
US5373560A (en) * 1991-12-06 1994-12-13 Schlafly; Roger Partial modular reduction method
US5513133A (en) * 1992-11-30 1996-04-30 Fortress U&T Ltd. Compact microelectronic device for performing modular multiplication and exponentiation over large numbers
FR2726668B1 (fr) * 1994-11-08 1997-01-10 Sgs Thomson Microelectronics Procede de mise en oeuvre de reduction modulaire selon la methode de montgomery
US5999627A (en) * 1995-01-07 1999-12-07 Samsung Electronics Co., Ltd. Method for exponentiation in a public-key cryptosystem
US5724279A (en) * 1995-08-25 1998-03-03 Microsoft Corporation Computer-implemented method and computer for performing modular reduction
JP3504050B2 (ja) * 1996-01-26 2004-03-08 株式会社東芝 べき乗剰余演算方法及び装置
WO1998007253A1 (en) * 1996-08-16 1998-02-19 Bell Communications Research, Inc. Accelerating public-key cryptography by precomputing randomly generated pairs
US5793659A (en) * 1996-10-15 1998-08-11 United Microelectronics Corporation Method of modular reduction and modular reduction circuit
GB9627069D0 (en) * 1996-12-30 1997-02-19 Certicom Corp A method and apparatus for finite field multiplication
US6088453A (en) * 1997-01-27 2000-07-11 Kabushiki Kaisha Toshiba Scheme for computing Montgomery division and Montgomery inverse realizing fast implementation
US6175850B1 (en) * 1997-02-03 2001-01-16 Nippon Telegraph And Telephone Corporation Scheme for carrying out modular calculations based on redundant binary calculation
JP2001505325A (ja) * 1997-09-16 2001-04-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ タイミング攻撃を阻止する標準化されたモジュラべき乗を計算することにより復号メカニズムを実行する方法と装置
US6466668B1 (en) * 1998-01-28 2002-10-15 Hitachi, Ltd. IC card equipped with elliptical curve encryption processing facility
FR2776445A1 (fr) * 1998-03-17 1999-09-24 Schlumberger Ind Sa Procede de securisation de donnees mettant en oeuvre un algorithme cryptographique
CN1275748A (zh) * 1999-05-26 2000-12-06 朗迅科技公司 计算模数除法的余数的方法和装置
US20020055962A1 (en) * 1999-11-12 2002-05-09 Richard Schroeppel Automatically solving equations in finite fields
DE19963407A1 (de) * 1999-12-28 2001-07-12 Giesecke & Devrient Gmbh Tragbarer Datenträger mit Zugriffsschutz durch Nachrichtenverfremdung
US7072072B1 (en) * 2000-05-02 2006-07-04 Xerox Corporation Color rendering optimized for text and line art
EP1299797B1 (en) * 2000-05-15 2009-07-29 SanDisk IL Ltd Extending the range of computational fields of integers
US6917957B2 (en) * 2000-08-28 2005-07-12 Sun Microsystems, Inc. Method and apparatus for performing modular division using counters
DE10107376A1 (de) * 2001-02-16 2002-08-29 Infineon Technologies Ag Verfahren und Vorrichtung zum modularen Multiplizieren und Rechenwerk zum modularen Multiplizieren
US7607165B2 (en) * 2001-03-09 2009-10-20 The Athena Group, Inc. Method and apparatus for multiplication and/or modular reduction processing
EP1249963B1 (en) * 2001-04-11 2013-01-16 Hitachi, Ltd. Method of a public key encryption and a cypher communication both secure against a chosen-ciphertext attack
FR2829335A1 (fr) * 2001-09-06 2003-03-07 St Microelectronics Sa Procede de brouillage d'un calcul a quantite secrete
US7508936B2 (en) * 2002-05-01 2009-03-24 Sun Microsystems, Inc. Hardware accelerator for elliptic curve cryptography
US7627114B2 (en) * 2002-10-02 2009-12-01 International Business Machines Corporation Efficient modular reduction and modular multiplication
FR2853424B1 (fr) * 2003-04-04 2005-10-21 Atmel Corp Architecture de multiplicateurs polynomial et naturel combines
FR2856537B1 (fr) 2003-06-18 2005-11-04 Gemplus Card Int Procede de contre-mesure par masquage de l'accumulateur dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique
FR2862454A1 (fr) * 2003-11-18 2005-05-20 Atmel Corp Methode de reduction modulaire aleatoire et equipement associe
EP1889398B1 (en) 2005-05-12 2016-01-13 Inside Secure Randomized modular polynomial reduction method and hardware therefore
FR2885711B1 (fr) * 2005-05-12 2007-07-06 Atmel Corp Procede et materiel modulaire et aleatoire pour la reduction polynomiale
US8024391B2 (en) * 2006-11-06 2011-09-20 Atmel Rousset S.A.S. Modular multiplication method with precomputation using one known operand

Also Published As

Publication number Publication date
CN101194457A (zh) 2008-06-04
TW200703037A (en) 2007-01-16
FR2885711A1 (fr) 2006-11-17
US20100023572A1 (en) 2010-01-28
US7805480B2 (en) 2010-09-28
CN101194457B (zh) 2011-06-01
US20110016167A1 (en) 2011-01-20
TWI386818B (zh) 2013-02-21
FR2885711B1 (fr) 2007-07-06
JP2008541166A (ja) 2008-11-20

Similar Documents

Publication Publication Date Title
JP4875700B2 (ja) ランダム化されたモジュラー多項式のリダクション方法およびそのためのハードウェア
Bernstein et al. Fast constant-time gcd computation and modular inversion
US8024391B2 (en) Modular multiplication method with precomputation using one known operand
CN107040362B (zh) 模乘设备和方法
KR102136911B1 (ko) 스칼라 또는 멱수와의 곱셈 연산을 포함하는 암호화 방법
TWI448963B (zh) 用於密碼系統之以中國餘數定理為基礎之計算方法
JP3950638B2 (ja) 耐タンパーモジュラ演算処理方法
JP4668931B2 (ja) 電力解析攻撃に対する耐タンパ性を持った暗号化処理装置
US7908641B2 (en) Modular exponentiation with randomized exponent
TWI403144B (zh) 隨機化模數減化方法及其硬體
KR100442218B1 (ko) 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기
EP1889398B1 (en) Randomized modular polynomial reduction method and hardware therefore
US9722773B2 (en) Method of determining a representation of a product of a first element and a second element of a finite set, method of evaluating a function applied to an element of a finite set and associated devices
US11502836B2 (en) Method for performing cryptographic operations on data in a processing device, corresponding processing device and computer program product
EP1443699A1 (en) Information processing means and IC card
JP2005020735A (ja) データ処理装置におけるサイドチャネル攻撃防止
TW201802666A (zh) 非模數乘法器、用於非模數乘法的方法及計算裝置
US7536564B2 (en) Method for encrypting a calculation using a modular function
JP2012242539A (ja) セキュリティシステム及びマイクロコンピュータ
Knezevic et al. Modular reduction without precomputational phase
EP4307102A1 (en) Computer-implemented method for determining a gaussian integer congruent to a given gaussian integer modulo a gaussian integer modulus, method for determining a reduction of a given gaussian integer modulo a gaussian integer modulus and cryptographic method and error-correction method
JP2005031472A (ja) 演算処理方法、および演算処理装置
Kim et al. SPA countermeasure based on unsigned left-to-right recodings
US20070217602A1 (en) Method for fast quotient guess and congruencies manipulation

Legal Events

Date Code Title Description
A625 Written request for application examination (by other person)

Free format text: JAPANESE INTERMEDIATE CODE: A625

Effective date: 20090413

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090420

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090527

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090527

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090605

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090605

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20100601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100601

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: 20111114

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111125

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141202

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4875700

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141202

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141202

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250