JP4047816B2 - 除算の結果を演算する装置および方法 - Google Patents

除算の結果を演算する装置および方法 Download PDF

Info

Publication number
JP4047816B2
JP4047816B2 JP2003568519A JP2003568519A JP4047816B2 JP 4047816 B2 JP4047816 B2 JP 4047816B2 JP 2003568519 A JP2003568519 A JP 2003568519A JP 2003568519 A JP2003568519 A JP 2003568519A JP 4047816 B2 JP4047816 B2 JP 4047816B2
Authority
JP
Japan
Prior art keywords
result
factor
denominator
equal
product
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
Application number
JP2003568519A
Other languages
English (en)
Other versions
JP2005517980A (ja
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of JP2005517980A publication Critical patent/JP2005517980A/ja
Application granted granted Critical
Publication of JP4047816B2 publication Critical patent/JP4047816B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7261Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile

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)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

発明の詳細な説明
本発明は、暗号アルゴリズムに関するものである。本発明は、特に暗号化アプリケーションに適した除算アルゴリズムに関するものである。
暗号アルゴリズムでは、頻繁に、2つの長大数を除算する必要がある。例えば、RSAアルゴリズムにおいて、法Nが、2つの素数p、qの積であるとき、Nをpで割ったときにqが得られる、あるいは、Nをqで割ったときにpが得られる。
除算ルーチンが、内部において迅速に処理されるミクロ命令からなる明瞭な命令として、そのために使用される暗号化コプロセッサーに組み込まれていない場合、ソフトウエアによって除算を行う必要がある。このため、従来の除算ルーチンは、速度が遅く、SPA攻撃(SPA=Simple Power Analysis=単純電力分析)に対して安全なものではなかった。
回復型除算、非回復型除算などのような一般的な除算ルーチンは、例えば“Computer Arithmetic”,HenessyおよびPatterson著,Morgan kaufmann出版社,1996に記載されているように、レジスタシフトを行い、次に、特定のビットが特定の値を有しているかどうかに応じて、減算または加算を実施することに基づいている。このようなルーチンは、SPA攻撃を受けやすい。なぜなら、電流または電力消費、さらには、時間消費が、処理される数に応じているからである。したがって、攻撃者は、電流または時間特性を参考にして、処理される数を推論できる。それゆえ、例えば、公開鍵暗号アルゴリズムの秘密鍵を探り出すことができる。
この問題に対処するため、いわゆる、ダミー演算を組み込む。このダミー演算によって、電流特性を均一化できる。しかしながら、ダミー演算の組み込みにより、性能損失がさらに増え、33%までになる。
本発明の目的は、より効率的かつより確実な、除算演算の概念を提供することである。
本目的は、特許請求項1に記載の除算の結果を演算するための装置、または、特許請求項15に記載の除算の結果を演算するための方法によって達成される。
本発明は、特に暗号化目的について、除算を実行するためには従来の除算ルーチンから離れる必要があるという認識に基づくものである。本発明では、因数を導入することによって、除算を法計算に変形する。なお、この因数は、因数と除算のための分母との積が、除算の結果よりも大きいように選択されている。この法計算を、分子と因数との第1積に対して実施する。この場合、除算の結果を含む補助数量を得るために、分母と因数との第2積と整数との和に等しい法を使用する。最後に、この結果を、簡単な計算で、補助数量から抽出する。
本発明の概念の利点は、電流および/または時間特性が、処理する量、すなわち、分子および分母に依存していない点である。さらに、演算すべき除算が最終的に変形されて得られる法計算を、効率的に実行できる。特に、暗号化プロセッサーでは、法計算は頻繁に使用される演算であり、そのために一般には、効果的なアルゴリズムが、暗号化コプロセッサーにおけるハードウエアによって実施される。したがって、法計算を、迅速かつ効果的に計算できる。
ハードウエアの実施形態に従い、レジスタが十分な長さである場合は、補助数量からの除算の結果の抽出を、長大数レジスタから直接読み出してもよい。
あるいは、結果を抽出するために、他の法と減算とを実施してもよい。ただし、この場合も、計算の複雑さは、感度限界内のままである。なぜなら、他の法計算も、暗号化コプロセッサーに必ず備えられている効率のよい計算回路を用いて、迅速かつ確実に実施されるからである。
本発明の概念により、安全性が高まるとともに、除算の速度が上がる。長大数の除算は、ドイツ連邦共和国ミュンヘンのInfineon Technologies AG 社から入手可能な、よく知られたプロセッサーACE(ACE== Advanced Crypto Engine)では、1ビットにつき27クロック必要である。本発明の除算で必要なのは、プロセッサーが同じものの場合、1ビットにつきわずか6クロックである。このことは、4.5倍の加速に相当する。
本発明の除算概念は、SPA攻撃に対しても安全性がある。なぜなら、電流または時間消費が、処理する数(すなわち、分子および分母)の特定のビットパターンに依存しないからである。
添付の図を参考にしながら、本発明の好ましい実施例について以下に詳しく説明する。
図1は、除算を演算するための本発明の装置のブロック図である。図2は、好ましい実施例に基づく本発明の方法のブロック図である。図3は、補助数量から結果の抽出を説明するための2進長大数レジスタにおける補助数量を示す図である。
図について詳しく説明する前に、まず、本発明の除算概念を説明する。この概念は、分子と因数との第1積を法計算することに基づいている。ただし、法は、分母と因数との第2積と、整数との和である。
以下の式に基づいて、分子Aを分母Nで割る除算の結果Qを算出する:
Q=A/N (1)
一般的に限定されるものではないが、分子Aと分母Nとの双方を2進数とし、以下の式を満たすものとする:
a−1≦A<2 (2a)
n−i≦N<2 (2b)
式2a,2bは、分子Aと分母Nとの桁数を示す。
式1を、以下のように書き換えることができる:
A=Q・N+H (3a)
式3の値Hを、以下のように計算する:
H=A−Q・N (3b)
ただし、値Hは、0よりもよりも大きいか、または、0に等しく、かつ、Nよりも小さい。
式3aから、以下で注目することになる除算の結果Qが整数であり、変数Hが剰余であることがわかる。したがって、AとNとの除算の結果Qは、いわゆるDIV演算の結果であり、剰余Hは、分子Aを法としての分母Nによって法計算することにより得られる:
H=AmodN (4)
ただし、各浮動小数点除算を、例えば小数点のシフト、および、隣接する整数への丸めによって、整数の除算に変換できる。通常は、浮動小数点除算は、演算装置内で、整数除算に変換される。
本発明に基づき、因数Fを導入する。この因数は、2進数システムでは、以下のように定義される:
F=2 (5)
ここでは、2進数システムを単なる例として考察するので、数2が底となり、底2を指数e乗すると、因数Fが得られる。本発明では、因数Fが、以下の条件を満たしている必要がある:
N・F>Q (6)
または、式6に式5を挿入して:
N・2>Q (7)
すなわち、因数は、因数Fと除算(式1)の分母との積が、求めようとする除算の結果Qよりも大きいように決定されている。
ただし、除算の正確な結果Qが出ている必要はない。なぜなら、この結果を、演算している最中だからである。因数Fの大きさを正しく規定するためにQの桁数だけは知っておく必要がある。
さて、分子と分母とから除算の結果の桁数を推定することは、一般的に問題ないことである。なぜなら、式6は、より大きいという条件だけを含んでいるからである。それゆえ、因数Fを非常に大きく選択すれば、アルゴリズムの正しい進行が常に確実になる。
しかし、因数をより小さく選択したほうが好ましい。なぜなら、因数は、除算の演算のために必要なレジスタの長さを決定するからである。因数を非常に大きく選択する場合、非常に長いレジスタが必要となる。一方、より短い因数Fを選択すると、レジスタはより短くなる。以下の式8は、2進の場合(式5)について、変数eの好ましい大きさの規定の仕方を示す:
e≧a+2−2n (8)
式8は、分子A(式2a)についての情報および分母N(式2b)についての情報だけを含む。eの大きさを式8のように規定すると、式6の因数に対する条件が常に満たされる。
式3に因数Fを乗算すると、以下の式となる:
A・F=Q・N・F+H・F (9)
さらに、式4の両辺に、同じく因数Fを乗算すると、以下の式10となる:
H・F=A・Fmod(N・F) (10)
さらに:
0≦H・F<N・F (11)
が成り立つ。この式11は、式10の法計算が、法N・Fの剰余類の範囲内になければならないことを示している、すなわち、0に等しいか、あるいは、0よりも大きく、かつ、N・Fよりも小さい必要がある。
さて、式9の右辺に、結果Qを加算し、同時に、減算する。このことは、以下の式に相当する:
A・F=Q・N・F+Q+H・F−Q (12)
式12を、式12の右辺にある最初の2項の結果Qが括弧の外になるように書き換えると、以下のようになる:
A・F=Q(N・F+1)+H・F−Q (13)
あるいは、式12を、HFとQとの和を算出し、最初の2項の差は算出しないように書き換えることもできる:
A・F=Q(N・F−1)+H・F+Q (13’)
差H・F−Q(またはその和)が、式の左辺にくるように式13または13’を書き換えると、以下のようになる:
H・F−Q=A・F−Q(N・F+1) (14)
「代わりに和をとる」場合については以下の結果となる:
H・F+Q=A・F−Q(N・F−1) (14’)
次に、式14または式14’を、式3aおよび式3bと比較すると、式14は、新しい除算のための新しい決定式であることが分かる。この場合、式14または式14’の左辺にある差または和(すなわち、求めようとする結果Qを含む補助数量(H・F−Q)または(H・F+Q))は、分子A・Fを分母(N・F+1)または(N・F−1)で割る整数の除算の剰余に相当している。
この除算の剰余(すなわち、式14の左辺にある補助数量)を、以下の式15によって式4と同じように演算できる:
H・F−Q=A・Fmod(N・F+1) (15)
したがって、式15は、法計算である。この法計算の結果、補助数量H・F−Qが生じる。この補助数量から、以下に説明するように、様々な方法で、求めようとする結果Qを簡単に抽出できる。したがって、式15は、除算(式1)を変形して得られる基本となる法計算である。ただし、上記式の左辺の差は、負になり得る。この場合は、式を満たすように法を加算する。なぜなら、除算による法計算の結果が、負であってはいけないからである。
「代わりに和をとる」場合については、以下の式となる:
H・F+Q=A・Fmod(N・F−1) (15’)
以下に示すように、補助数量H・F+/−Qから求めようとする結果Qを様々に抽出することができる。
これについて、まず図3を参照して、分子Aを分母Nで割る除算の結果Qを抽出するための方法を説明する。図3は、2進長大数レジスタ300を示している。このレジスタには、式15の右辺の法計算の結果が格納されている。長大数レジスタは、msb側とlsb側(msb = most significant bit = 最上位ビット; lsb = least significant bit = 最下位ビット)とを備えている。
そして、レジスタ300には、数H・FおよびQが、以下のように存在している。数H・Fは、大きな数であり、図3に示すように、そのビットパターンに関しては、数Hに対応している。なぜなら、数Hを長大数レジスタにおいてi位置だけ左へシフトさせると、数H・Fが、数Hから得られるからである。ただし、因数Fは、2に選択されている。
さらに、図3の2進長大数レジスタ300には、数H・Fと比較して小さい数「−/+Q」、すなわち、求めようとする結果Qの負値または正値が含まれている。長大数レジスタが大きく、数H、および、−Qまたは+Qがレジスタ300において一致しないように因数Fが大きく選択されている場合(このような場合を図3に示す)は、求めようとする数Qを、レジスタ300から直接読み出せる。数Qは、−Qを反転して得られる。このために、レジスタのlsb側の相当するビットについて考察する(これは、−Qとなる)。次に、2の補数を通常に使用する場合、その中に含まれるビットパターンを反転する。求めようとする結果Qを得るために、その後、さらに、反転したビットに1を加算する。
したがって、反転されたビットに1を加算するという簡単な算数の演算が必要なだけである。例えばレジスタ内容を使用する減算のような、より大きな算数の演算は不要である。数H・FおよびQの大きさが異なるので、レジスタ300からQを容易に選別して読み出すこと、すなわち、(式15の左辺の)補助数量から抽出することが可能である。
ただし、数Hおよび−Qが、図3に示すレジスタにおいて重複領域を有さないほど因数Fを大きく選択する必要はない。たとえこれらの数が、重複領域を有しているとしても、以下に示すように、同じく数Qを補助数量から抽出できる。そのためには、式16に示すような他の法計算を実施する:
H・F=A・Fmod(N・F) (16)
式16は、式4に相当している。しかし、ここでは、因数Fが考慮されている。
求めようとする結果Qは、この場合、式16の結果から式15を減算することによって得られる:
H・F−(H・F−Q)=Q (17)
補助数量、すなわち差H・F−Qが負である場合を区別することについて以下に説明する。式15における差H・F−Qが負である場合、式15の左辺に法(N・F+1)を加算する。なぜなら、定義によると、法計算の結果は、常に正であるべきだからである。それゆえ、補助数量が負である場合、式15の左辺に法を加算する。その結果、式15を式16から減算すると、以下のようになる:
Q=A・Fmod(N・F)−A・Fmod(N・F+1)+N・F+1(18)
以下に、図1について説明する。分子を分母で割る除算の結果を演算するため、または、後にさらに実施されるように、結果Qの倍数を演算するための好ましい装置のブロック図を示す。図1では、見やすいように、決定式を、1つのブロック10に示す。本発明の装置は、因数(特に、数e)を供給する手段12を備えている。なお、この数eは、式6または式7を満たすように底2の指数として因数を形成する。
本発明の装置は、補助数量を演算する、すなわち式15を計算する手段14を備えている。最後に、本発明の装置は、Qを補助数量から様々な方法の一つで抽出する手段16を備えている。様々な方法とは、例えば、図3に示す構成、または、他の法計算(式16)および式17に示すような2つの法計算の結果の減算である。
図2を参照しながら、以下に好ましい方法を説明する。この方法では、わずか4つのレジスタがあれば十分である。4つのレジスタとは、すなわち、分子Aのための第1レジスタ、分母Nのための第2レジスタ、第1補助数量H1のための第3レジスタ、および、第2補助数量のための第4レジスタである。第5結果レジスタを任意に使用してもよい。または、所望により、分子レジスタ、分母レジスタまたは第1補助数量のための第3レジスタを、結果レジスタとして使用することもできる。
ステップ20において、まず、値eを式8に基づいて選択する。次に、分子レジスタに第1積A・Fを取り込む(ステップ22)。続いて、分母レジスタに同じく第2積を取り込む(ステップ24)。次に、ステップ26において、式16に基づいて法計算を実行する。次に、ステップ26における計算の後、ステップ30において基本計算式15を計算するため、分母を1だけ増加する(ステップ28)。続いて、ステップ32において、式17に示すように、2つの関連する式15と16との減算を実行する。ステップ32において差を計算した後、ステップ34において、この結果が負であるかどうか検査する。負である場合は、除算の結果Qを得る(ステップ38)ために、法を加算する(ステップ36)。
これに対し、ステップ34において、ステップ32で得られた結果が0よりも大きいことが確定すると、この結果を直接除算の結果として出力する(ステップ38’)。
なお、本発明の図2に示す実施例は、特に、数HおよびQが、図3の2進長大数レジスタ300において重複している場合に有利に使用できる。なぜなら、この場合、図3を参照して説明したレジスタ300の最下位ビットを読み出し、続いて、結果Qを得るために反転する方法は、正しい結果を導出しないからである。図2に示す本発明の実施例では、差H・2−Qから結果Qを抽出する手段16が、ステップ26,32,34および36の機能を果たすことができる。
以下に説明するように、本発明の概念は、除算の結果だけではなく、複雑さを伴うことなく、除算の倍数を簡単に演算するためのためにも使用できる。このことは、式15の右辺にある法について、数「1」の代わりに、整数x>1を使用すれば簡単に達成できる。この場合、同時に、式15の左辺においても、結果Qに同じく整数xを乗算する。その結果、以下の式19となる:
H・F−Q・x=A・Fmod(N・F+x) (19)
1よりも大きい数xを使用する場合、式6において因数Fの選択の際にこれについても考慮する必要がある。つまり、因数がx=1と比較してx倍になっている必要があることを考慮する必要がある。
式19について考察すると、後続のアルゴリズムステップが結果Qではなく、結果Qのx倍を必要とする場合に、結果Q・x(例えばレジスタ読み出しによって得られる)を直接使用できることが分かる。
あるいは、依然として結果Qが必要ではあるが、法(N・F+x)による法計算が、なんらかの理由でx=1である場合よりも有利だと考えられる場合、代わりにQをxで序しても結果を得ることができる。このことを、特に、xが2の倍数であり、2進システムである場合、対応する位置の数だけ右へレジスタシフトすることによって達成できる。
式19を式16および式17と同じように評価する場合、同じく、Qのx倍が得られる。
式19からQまたはQの倍数を抽出するほかの方法は、評価に以下の式20を使用することである。この場合、式20は、概して式19に相当しているが、xとは異なる整数yが選択されている。次に、式19から式20を減算する。その結果、以下の式21が生じる。この場合、式21の左辺には結果Qが生じず、結果Qの倍数、すなわち、yとxとの差の倍数が生じる。(y−x)による除算を実行することにより、式21から元のQを得ることができる。差が1に等しいようにyおよびxを選択すると、この除算を省ける。
H・F−Q・y=A・Fmod(N・F+y) (20)
Q・(y−x)=A・Fmod(N・F+x)−A・Fmod(N・F+y)(21)
ただし、パラメータxおよびyは、負でもよい。つまり、式(13’)から(15’)に関連して説明した方法と同じである。
したがって、本発明は、その柔軟性、安全性、および、性能ゆえに、特に暗号アルゴリズム、および、一般的に回路により確実かつ効率的に法計算を実施する暗号化コプロセッサーに適している。
除算を演算するための本発明の装置のブロック図である。 好ましい実施例に基づく本発明の方法のブロック図である。 補助数量から結果の抽出を説明するための2進長大数レジスタにおける補助数量を示す図である。
符号の説明
10 決定ブロック
12 供給する手段
14 法計算する手段
16 抽出する手段
20 補助数の決定
22 第1積の演算
24 第2積の演算
26 第1補助数量の演算
28 法の追加
30 補助数量の演算
32 他の補助数量からの補助数量の減算
34 結果の符合の検査
36 法の加算
38 結果の出力
38’ 結果の出力
300 長大数レジスタ

Claims (17)

  1. 暗号アルゴリズム内で分子(A)を分母(N)で割る除算の結果(Q)、または、上記結果(Q)の倍数を演算し、上記分子(A)および上記分母(N)が、上記暗号アルゴリズムにおけるパラメータである装置であって、
    上記分母(N)との積が上記結果(Q)よりも大きくなるように選択される因数(F)を供給する手段(12)と、
    上記因数(F)を乗算した上記除算の剰余(H)と、上記結果(Q)との差に等しい補助数量(H・F−Q)であって、上記結果を含むものを得るために、上記分子(A)と上記因数(F)との第1積を、上記分母(N)と上記因数(F)との第2積と1との和に等しい法を用いて、法計算するか、または、
    上記因数(F)を乗算した上記除算の剰余(H)と、上記結果(Q)との和に等しい補助数量(H・F+Q)であって、上記結果を含むものを得るために、上記分子(A)と上記因数(F)との第1積を、上記分母(N)と上記因数(F)との第2積と1との差に等しい法を用いて、法計算するか、または、
    上記因数(F)を乗算した上記除算の剰余(H)と、上記結果(Q)にある整数(x)を乗算したものとの差に等しい補助数量(H・F−Q・x)であって、上記結果を含むものを得るために、上記分子(A)と上記因数(F)との第1積を、上記分母(N)と上記因数(F)との第2積と上記整数(x)との和に等しい法を用いて、法計算する手段(14)と、
    上記補助数量から上記結果(Q)または上記結果(Q)の上記倍数を抽出する手段(16)とを備えていることを特徴とする装置。
  2. 上記供給する手段(12)は、底の、ある補助数乗が、上記因数(F)に等しいように上記因数(F)を決定するように構成されていることを特徴とする請求項1に記載の装置。
  3. 上記因数(F)を乗算することがレジスタの位置をある数だけシフトさせることに相当するように、上記底を2とし、上記位置の上記ある数は上記補助数に等しいことを特徴とする請求項2に記載の装置。
  4. 上記補助数量(H・F−Q)は上記因数(F)を乗算した上記除算の剰余(H)と上記結果(Q)との差に等しいものであって、
    負の数を表すために、2の補数表示を使用し、
    上記補助数量はレジスタ(300)に格納されており、上記抽出する手段(16)が、上記除算の上記結果(Q)を得るために、上記結果を含む上記レジスタ(300)の下位部分(−Q)を読み出す手段と、読み出した値を反転し、1を加算する手段とを備えていることを特徴とする請求項1〜3のいずれか1項に記載の装置。
  5. 暗号アルゴリズム内で分子(A)を分母(N)で割る除算の結果(Q)、または、上記結果(Q)の倍数を演算し、上記分子(A)および上記分母(N)が、上記暗号アルゴリズムにおけるパラメータである装置であって、
    上記分母(N)との積が上記結果(Q)よりも大きくなるように選択される因数(F)を供給する手段(12)と、
    上記因数(F)を乗算した上記除算の剰余(H)と、上記結果(Q)との差に等しい補助数量(H・F−Q)であって、上記結果を含むものを得るために、上記分子(A)と上記因数(F)との第1積を、上記分母(N)と上記因数(F)との第2積と1との和に等しい法を用いて、法計算する手段(14)と、
    上記補助数量から上記結果(Q)または上記結果(Q)の上記倍数を抽出する手段(16)とを備え、
    上記抽出する手段(16)は、
    上記因数(F)が乗算された上記分母(N)が法として供給されて、他の補助数量として、上記因数(F)が乗算された上記分子(A)の法計算の結果を演算する手段(26)と、
    上記除算の上記結果(Q)を得るために、上記他の補助数量から上記補助数量を減算する手段(32)とを備えていることを特徴とする装置。
  6. 上記除算は、整数除算であることを特徴とする請求項1〜5のいずれか1項に記載の装置。
  7. 上記補助数は、(上記分子の桁数)−(上記分母の桁数の2倍)+2に等しいように選択されていることを特徴とする請求項3に記載の装置。
  8. 上記抽出する手段(16)は、上記結果(Q)が負であるかどうかを決定し(34)、上記結果(Q)が負であれば、法計算する手段(14)において使用するために供給される法を、上記結果(Q)に加算する構成であることを特徴とする請求項5に記載の装置。
  9. 上記分子(A)を格納するための第1レジスタと、
    上記分母(N)を格納するための第2レジスタと、
    上記他の補助数量(H2)を格納するための第3レジスタと、
    上記補助数量(H1)を格納するための第4レジスタと、
    上記結果(Q)を得るために、上記計算する手段(14)および上記抽出する手段(16)を制御するレジスタ制御ユニットとをさらに備えていることを特徴とする請求項5に記載の装置。
  10. 上記補助数量(H・F−Q・x)は上記因数(F)を乗算した上記除算の剰余(H)とある整数の乗算数(x)を乗算した上記結果(Q)との差に等しいものであって、
    上記結果に上記整数の乗算数を乗算する演算を行い、
    上記供給する手段(12)は、ある因数を供給するように構成されており、この因数は、当該因数(Q)と、上記分母(N)との積が、上記除算の上記結果(Q)と、上記乗算数(x)との積よりも大きいように選択され、
    上記抽出する手段(16)が、上記分母(N)と当該因数(F)との積と、上記乗算数(x)との和に等しい法を使用して法計算を実行するように構成されていることを特徴とする請求項1に記載の装置。
  11. 暗号アルゴリズム内で分子(A)を分母(N)で割る除算の結果(Q)、または、上記結果(Q)の倍数を演算し、上記分子(A)および上記分母(N)が、上記暗号アルゴリズムにおけるパラメータである装置であって、
    上記分母(N)との積が上記結果(Q)よりも大きくなるように選択される因数(F)を供給する手段(12)と、
    上記分子(A)と上記因数(F)との第1積を、上記分母(N)と上記因数(F)との第2積と第1の整数(x)との和に等しい法を用いて第1の法計算した第1の値と、上記分子(A)と上記因数(F)との第1積を、上記分母(N)と上記因数(F)との第2積と第2の整数(y)との和に等しい法を用いて第2の法計算した第2の値との差を計算する手段(14)とを備え、
    上記第1の整数(x)は、1よりも大きいか、または、1に等しく、上記第2の整数(y)は、上記第1の整数(x)とは異なり、
    その結果、上記第2の整数(y)と上記第1の整数(x)との差が1に等しい場合、上記除算の上記結果(Q)は、上記計算する手段(14)によって得られる上記第1の値と上記第2の値との差に等しいか、
    または、上記計算する手段(14)によってある整数の乗算数(y−x)が乗算された上記結果(Q)が得られ、当該乗算数は、上記第2の整数(y)と上記第1の整数(x)との差に等しいことを特徴とする装置。
  12. 暗号化装置の暗号化コプロセッサーとして実現されていることを特徴とする請求項1〜11のいずれか1項に記載の装置。
  13. 上記結果(Q)が反転せずに得られるように、上記整数が負であることを特徴とする請求項1〜3のいずれか1項に記載の装置。
  14. 上記他の数は、負の整数であることを特徴とする請求項11〜13のいずれか1項に記載の装置。
  15. 暗号アルゴリズム内で分子(A)を分母(N)によって割る除算の結果(Q)、または、上記結果(Q)の倍数を演算し、上記分子(A)および上記分母(N)が、上記暗号アルゴリズムにおけるパラメータである、暗号化コプロセッサーが実行する方法であって、
    上記分母(N)との積が上記結果(Q)よりも大きくなるように選択される因数(F)を供給する(12)ステップと、
    上記因数(F)を乗算した上記除算の剰余(H)と、上記結果(Q)との差に等しい補助数量(H・F−Q)であって、上記結果を含むものを得るために、上記分子(A)と上記因数(F)との第1積を、上記分母(N)と上記因数(F)との第2積と1との和に等しい法を用いて、法計算するか、または、
    上記因数(F)を乗算した上記除算の剰余(H)と、上記結果(Q)との和に等しい補助数量(H・F+Q)であって、上記結果を含むものを得るために、上記分子(A)と上記因数(F)との第1積を、上記分母(N)と上記因数(F)との第2積と1との差に等しい法を用いて、法計算するか、または、
    上記因数(F)を乗算した上記除算の剰余(H)と、上記結果(Q)にある整数(x)を乗算したものとの差に等しい補助数量(H・F−Q・x)であって、上記結果を含むものを得るために、上記分子(A)と上記因数(F)との第1積を、上記分母(N)と上記因数(F)との第2積と上記整数(x)との和に等しい法を用いて、法計算する(14)ステップと
    上記結果、または、上記結果の上記倍数を、上記補助数量から抽出する(16)ステップとを含むことを特徴とする方法。
  16. 暗号アルゴリズム内で分子(A)を分母(N)によって割る除算の結果(Q)、または、上記結果(Q)の倍数を演算し、上記分子(A)および上記分母(N)が、上記暗号アルゴリズムにおけるパラメータである、暗号化コプロセッサーが実行する方法であって、
    上記分母(N)との積が上記結果(Q)よりも大きくなるように選択される因数(F)を供給する(12)ステップと、
    上記因数(F)を乗算した上記除算の剰余(H)と、上記結果(Q)との差に等しい補助数量(H・F−Q)であって、上記結果を含むものを得るために、上記分子(A)と上記因数(F)との第1積を、上記分母(N)と上記因数(F)との第2積と1との和に等しい法を用いて、法計算する(14)ステップと、
    上記補助数量から上記結果(Q)または上記結果(Q)の上記倍数を抽出する(16)ステップとを含み、
    上記抽出する(16)ステップは、
    上記因数(F)が乗算された上記分母(N)が法として供給されて、他の補助数量として、上記因数(F)が乗算された上記分子(A)の法計算の結果を演算する(26)ステップと、
    上記除算の上記結果(Q)を得るために、上記他の補助数量から上記補助数量を減算する(32)ステップとを含むことを特徴とする方法。
  17. 暗号アルゴリズム内で分子(A)を分母(N)によって割る除算の結果(Q)、または、上記結果(Q)の倍数を演算し、上記分子(A)および上記分母(N)が、上記暗号アルゴリズムにおけるパラメータである、暗号化コプロセッサーが実行する方法であって、
    上記分母(N)との積が上記結果(Q)よりも大きくなるように選択される因数(F)を供給する(12)ステップと、
    上記分子(A)と上記因数(F)との第1積を、上記分母(N)と上記因数(F)との第2積と第1の整数(x)との和に等しい法を用いて第1の法計算した第1の値と、上記分子(A)と上記因数(F)との第1積を、上記分母(N)と上記因数(F)との第2積と第2の整数(y)との和に等しい法を用いて第2の法計算した第2の値との差を計算する(14)ステップとを含み、
    上記第1の整数(x)は、1よりも大きいか、または、1に等しく、上記第2の整数(y)は、上記第1の整数(x)とは異なり、
    その結果、上記第2の整数(y)と上記第1の整数(x)との差が1に等しい場合、上記除算の上記結果(Q)は、上記計算する(14)ステップによって得られる上記第1の値と上記第2の値との差に等しいか、
    または、上記計算する(14)ステップによってある整数の乗算数(y−x)が乗算された上記結果(Q)が得られ、当該乗算数は、上記第2の整数(y)と上記第1の整数(x)との差に等しいことを特徴とする方法。
JP2003568519A 2002-02-12 2003-01-23 除算の結果を演算する装置および方法 Expired - Fee Related JP4047816B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10205713A DE10205713C1 (de) 2002-02-12 2002-02-12 Vorrichtung und Verfahren zum Berechnen eines Ergebnisses aus einer Division
PCT/EP2003/000669 WO2003069462A2 (de) 2002-02-12 2003-01-23 Vorrichtung und verfahren zum berechnen eines ergebnisses aus einer division

Publications (2)

Publication Number Publication Date
JP2005517980A JP2005517980A (ja) 2005-06-16
JP4047816B2 true JP4047816B2 (ja) 2008-02-13

Family

ID=7713793

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003568519A Expired - Fee Related JP4047816B2 (ja) 2002-02-12 2003-01-23 除算の結果を演算する装置および方法

Country Status (7)

Country Link
US (1) US7567999B2 (ja)
EP (1) EP1474741B1 (ja)
JP (1) JP4047816B2 (ja)
AU (1) AU2003244870A1 (ja)
DE (2) DE10205713C1 (ja)
TW (1) TW200304616A (ja)
WO (1) WO2003069462A2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10341804A1 (de) * 2003-09-10 2005-04-28 Giesecke & Devrient Gmbh Division von Binärzahlen
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
DE102006025713B9 (de) 2005-10-28 2013-10-17 Infineon Technologies Ag Kryptographie-Vorrichtung und Kryptographie-Verfahren 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
DE102006025673B9 (de) * 2005-10-28 2010-12-16 Infineon Technologies Ag Rechenwerk zum Reduzieren einer Eingabe-Zahl bezüglich eines Moduls
US7826612B2 (en) * 2006-06-29 2010-11-02 Intel Corporation System, method and apparatus for an incremental modular process including modular multiplication and modular eduction
WO2008106793A1 (en) * 2007-03-06 2008-09-12 Research In Motion Limited Power analysis attack countermeasure for the ecdsa
US20100011047A1 (en) * 2008-07-09 2010-01-14 Viasat, Inc. Hardware-Based Cryptographic Accelerator
RU2661797C1 (ru) * 2017-06-13 2018-07-19 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Вычислительное устройство

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4484259A (en) * 1980-02-13 1984-11-20 Intel Corporation Fraction bus for use in a numeric data processor
DE69229766T2 (de) * 1991-09-05 2000-03-23 Canon Kk Verfahren und Gerät zum Verschlüsseln und Entschlüsseln von Kommunikationsdaten
FR2701323A1 (fr) * 1993-02-08 1994-08-12 Trt Telecom Radio Electr Dispositif pour effectuer une division.
JPH0720778A (ja) * 1993-07-02 1995-01-24 Fujitsu Ltd 剰余計算装置、テーブル作成装置および乗算剰余計算装置
DE4332674C2 (de) * 1993-09-25 2003-01-23 Unaxis Deutschland Holding Vorrichtung zum Arretieren eines flachen, vorzugsweise kreisscheibenförmigen Substrats am Substratteller einer Vakuumbeschichtungsanlage
US5493522A (en) * 1994-09-21 1996-02-20 Northrop Grumman Corporation Fast arithmetic modulo divider
US5710730A (en) * 1995-03-31 1998-01-20 International Business Machines Corporation Divide to integer
JP3660075B2 (ja) * 1996-10-04 2005-06-15 株式会社ルネサステクノロジ 除算装置
US6088453A (en) * 1997-01-27 2000-07-11 Kabushiki Kaisha Toshiba Scheme for computing Montgomery division and Montgomery inverse realizing fast implementation
CA2228493C (en) * 1997-02-03 2005-05-03 Nippon Telegraph And Telephone Corporation Scheme for carrying out modular calculations based on redundant binary calculation
US6065030A (en) * 1998-03-30 2000-05-16 Conexant Systems, Inc. Method and apparatus for implementing short-word division techniques in a multiple modulus conversion context
JP2000132376A (ja) * 1998-10-27 2000-05-12 Fujitsu Ltd 剰余演算方法,乗算剰余演算方法,剰余演算装置,乗算剰余演算装置及び記録媒体
US7277540B1 (en) * 1999-01-20 2007-10-02 Kabushiki Kaisha Toshiba Arithmetic method and apparatus and crypto processing apparatus for performing multiple types of cryptography
US20020055962A1 (en) * 1999-11-12 2002-05-09 Richard Schroeppel Automatically solving equations in finite fields
DE10021920C1 (de) * 2000-05-05 2001-07-26 Infineon Technologies Ag Datenverarbeitungsverfahren und -Einrichtung zur Modulo-Berechnung eines Rests bei der Division
US6763365B2 (en) * 2000-12-19 2004-07-13 International Business Machines Corporation Hardware implementation for modular multiplication using a plurality of almost entirely identical processor elements

Also Published As

Publication number Publication date
WO2003069462A2 (de) 2003-08-21
EP1474741A2 (de) 2004-11-10
US20050038845A1 (en) 2005-02-17
DE50302536D1 (de) 2006-04-27
AU2003244870A1 (en) 2003-09-04
TW200304616A (en) 2003-10-01
US7567999B2 (en) 2009-07-28
JP2005517980A (ja) 2005-06-16
DE10205713C1 (de) 2003-08-07
EP1474741B1 (de) 2006-03-01
AU2003244870A8 (en) 2003-09-04
WO2003069462A3 (de) 2004-04-15

Similar Documents

Publication Publication Date Title
JP4582912B2 (ja) 耐パワーシグニチャーアタック暗号法
US7805480B2 (en) Randomized modular polynomial reduction method and hardware therefor
US7603558B2 (en) Montgomery transform device, arithmetic device, IC card, encryption device, decryption device and program
US7831650B2 (en) Method for modular multiplication
US20070116270A1 (en) Calculating unit for reducing an input number with respect to a modulus
US7809133B2 (en) Randomized modular reduction method and hardware therefor
JP4047816B2 (ja) 除算の結果を演算する装置および方法
EP0938790B1 (en) A method and device for executing a decrypting mechanism through calculating a standardized modular exponentiation for thwarting timing attacks
JP4302640B2 (ja) 被乗数のシフトを用いて乗算を計算するための装置およびその方法、上記装置を実行するためのプログラムコードを格納した記録媒体
CN1739094B (zh) 防止隐蔽信道攻击的整数除法方法
US7558817B2 (en) Apparatus and method for calculating a result of a modular multiplication
JP2009505148A (ja) 暗号化演算における反転操作を行うための回路配置及び方法
US8364737B2 (en) Device and method for calculating a result of a sum with a calculating unit with limited word length
CN113141255A (zh) 用于在处理设备、对应的处理设备和计算机程序产品中对数据执行密码运算的方法
KR20110095328A (ko) 스칼라 배산기 및 스칼라 배산프로그램
US7016927B2 (en) Method and apparatus for modular multiplication
US7590235B2 (en) Reduction calculations in elliptic curve cryptography
JP2004125891A (ja) べき乗剰余演算器
EP1639448B1 (en) Improved inversion calculations
JP3779479B2 (ja) Icカード
JPH11282351A (ja) セキュリティ技術における逆元演算方法、その方法を使った演算装置、及びその方法を実行するプログラムを記録した記録媒体
JP2006091086A (ja) モンゴメリ逆元演算装置を備えた半導体装置およびicカ−ド
JP2004151234A (ja) べき乗演算装置
Großschädl A new serial/parallel architecture for a low power modular multiplier
JP2006500615A (ja) 向上したQuisquaterReduction

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070116

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070330

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070330

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070420

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070713

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071122

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

Free format text: PAYMENT UNTIL: 20101130

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4047816

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

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20121130

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20131130

Year of fee payment: 6

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees