JP2003029627A - Rsa符号化方法 - Google Patents

Rsa符号化方法

Info

Publication number
JP2003029627A
JP2003029627A JP2002107977A JP2002107977A JP2003029627A JP 2003029627 A JP2003029627 A JP 2003029627A JP 2002107977 A JP2002107977 A JP 2002107977A JP 2002107977 A JP2002107977 A JP 2002107977A JP 2003029627 A JP2003029627 A JP 2003029627A
Authority
JP
Japan
Prior art keywords
variable
bits
value
modulo
format
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.)
Granted
Application number
JP2002107977A
Other languages
English (en)
Other versions
JP3467489B2 (ja
Inventor
Jean-Jacques Quisquater
キュイスクワテール ジャン−ジャック
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 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 Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of JP2003029627A publication Critical patent/JP2003029627A/ja
Application granted granted Critical
Publication of JP3467489B2 publication Critical patent/JP3467489B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • 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

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

(57)【要約】 (修正有) 【課題】 マイクロコントローラによりRSA法に従っ
て符号化する。 【解決手段】デジタルメッセージMをMのモジュロ−
N演算により変換し、N,e及びMの全ての数を長い整
数とし、2形態の一連の連続演算を用い、その第1演算
式をB=a・X+T・2とし、B及びXを計算
変数とし、aを値が以前の演算により得られた第2計
算変数Aからのmビットの抽出変数とし、この抽出変
数を計算変数Aの重みのランクiが減少する順序で取り
出し、Tを変数Aの計算に用いた加算変数とし、第2演
算は変数Bの長さ短縮演算とする符号化方法に、モジ
ュロ−N準短絡法を用い、所定回数の連続演算を符号検
査なしで系統的に行えるようにし、その後同じ方法で補
足的且つ系統的な短縮を実行し、省略法により近似させ
るB/Nの商を用いるためにaのmビットよりも大
きなpビットのフォーマットを作り、携帯用の符号化/
復号化装置に適用し得るようにする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、メッセージMのe
乗のモジュロ‐N演算処理を行うRSA符号化法を、マ
イクロコントローラを用いて実施する方法であって、
N,e及びMはnビットのフォーマットに含まれる長い
整数であり、前記モジュロ‐Nの演算が2つの逐次演算
に分けられ、その第1演算の式が、 Bi=ai・X+T・2n にて表わされ、ここにBi及びXはM及びNに依存する
計算変数であり、aiは、値が以前の演算から得られる
計算変数Aのmビットに限定されたフォーマットの抽出
変数(セグメント)であり、この抽出変数は前記計算変
数Aの重みのランクiが減少する順位で取出され、且つ
Tは変数Aの計算に用いた加算変数であり、前記逐次演
算のうちの第2演算は、モジュラスNの予定した倍数を
減じることによって変数Biの長さを短くして、変数A
に対する新規の値Aiを得ることとしたRSA符号化法
を実施する方法に関するものである。本発明は上述した
方法を実施する装置にも関するものである。
【0002】
【従来の技術】RSA(発明者の頭文字からとった)と
称されている符号化法については特に米国特許第4,405,
829号から既知である。この方法の利点、特にそれが
「公開鍵」タイプのものであると云うことも広く知られ
ている。非常に長いコードを記憶する十分大きなメモリ
を有しているパワフルなプロセッサによるRSA法の実
施は何等特別な問題を提起することはないが、このこと
は極めて小形の装置、特にスマートカード又はチップカ
ードとも称される携帯カード内に組み込むことのできる
マイクロコントローラタイプの集積半導体回路により同
じ方法を用いようとする場合とは相違する。斯種の方法
に対してはプライベートな伝送分野(話者、署名、鍵の
交換、機密情報の交換、電子通貨等の証明)にて多数の
可能性及び有効な用途が見越されることからして、実際
上この分野ではかなりの研究が成されている。この研究
の目的は、最近の技術により実現される集積回路の使用
により重大な制約が課せられるにも拘わらず、データを
理にかなった長さの時間内(せいぜい1秒)に首尾良く
処理し得るようにするRSA法に基づく符号化法を実施
する方法及びそのための装置を得ることにある。
【0003】最近の装置に係わる技術的な制限からし
て、メモリ容量を小さくし(数100バイト)、クロッ
ク速度を低くし(僅か8MHz程度)、且つ並列処理さ
れるビット数を少なくする(僅か8ビット又は16ビッ
ト)ことを提案することができる。
【0004】マイクロコントローラによってRSA符号
化法を実施する冒頭にて述べた方法はフランス国特許明
細書FR-A2613861号に開示されている。
【0005】これに記載されている処理アルゴリズムは
計算回数が極めて多くならないようにすることにあり、
この目的のために少量の計算変数を用い、各部分乗算の
後にモジュロ‐N短縮(還元)を行って、演算が逐次行
われるにつれて、これらの変数が長くならないようにし
ている。
【0006】従来法の重大な欠点は、各モジュロ‐N短
縮段で符号検査を必要とし、これによりNの倍数の減法
が超過したか、否かを定め、超過していた場合にはNに
よる加法を行って、計算変数Aに再び正の値を割り当て
るようにしなければならないと云うことにある。斯様な
欠点は前述したフランス国特許から既知のアルゴリズム
の場合には何等問題にならないが、現状の技術水準から
すれば一般に問題となる。
【0007】計算のための演算操作は中央のプログラム
管理ユニットに並列に接続した特殊な計算素子により高
速度で行うことができるも、符号検査に対する演算は中
央ユニットでしか行うことができず、従って計算素子に
よる演算は検査結果を待っている間中断しなければなら
ない。
【0008】当面の符号検査演算による処理速度の低下
が重要な意味を持つのは、モジュロ‐Nべき乗の際中に
符号検査を多数回行う必要があり、しかも中央ユニット
の演算サイクル時間が計算素子の演算サイクル時間に較
べて比較的ゆっくりしており、例えば8:1の割合であ
るためである。
【0009】
【発明が解決しようとする課題】本発明の目的は、特殊
な計算素子を具えているマイクロコントローラを用いて
RSA法により符号化演算を実行することができ、特に
計算変数の符号検査又は桁検査の頻度をかなり少なくす
るために従来法よりも遥かに速く符号化演算を行うこと
のできる方法を提供することにある。
【0010】
【課題を解決するための手段】上記目的を達成するため
に、本発明によるRSA符号化法を実施する方法は、前記
第2演算を次式から得られるモジュロ‐N準短縮により
実行し、 Ai=q・N′+R ここにN′はnビットフォーマットにおけるNの2の補
数とし、qは、p>mとして、pビットの固定フォーマ
ットにて割算Bi/Nのデフォルトにより近似させた整
数の商とし、Rは変数Biの下位nビットにより与えら
れる変数とし、この第2演算の結果AiがモジュラスN
の低い倍数を含むことができて、nビットフォーマット
に対してd個の上位ビットを超過させることができ、逐
次演算の所定回数を近似公差qと同様に、前記逐次演算
中に累積される超過分の最大ビット数がp‐mに等しく
なるように定め、且つ前記所定回数の演算後に、変数A
の新規の値を厳密にnビットフォーマット内に発生させ
る追加のモジュロ準短縮を行うことを特徴とする。
【0011】本発明による方法は省略法(デフォルト)
により近似させた商qを用いるようにするため、変数B
iの長さを短くしても負符号の結果が決して発生しない
ため、この変数の符号を検査する必要が最早なくなる。
従って、少なくとも所定数の連続する演算に対し、その
演算を系統的に、しかも中断せずに行うことができる。
上記所定数の連続演算の後には商qのpビットフォーマ
ットに最早超過分の累積を考慮することができなくなる
と云う危険性に及ぶことがある。
【0012】実際上、近似商の値qを用いることにより
不完全なモジュロ短縮を可能にするも、これではビット
数が最初に定めたnビットフォーマットを超える結果A
iを発生させることがあり得る。このため、近似商qに
対しては演算ai・Xにおける乗数aiに用いたmビット
フォーマットよりも長いpビットフォーマットを選定し
た。
【0013】変数Aiの超過分が大きくなる間に順次行
われる所定演算回数は、後に連続抽出変数aiにより変
数Aを全て用いるのに必要なモジュロ‐N準短縮を行う
乗法ai・Xの回数に等しく選定するのが有利であり、
この数は比n/mの高い整数値に相当する。
【0014】本発明によれば、探求する正確度を有する
近似商値qを種々の方法で決めることができる。その第
1の好適例としては、モジュラスNの値を或る特定の間
隔内でとり、この特定の間隔が: 2n −2n-m ;2n −1 に等しく、且つ近似商qの値が変数Bi のnビットフォ
ーマットを超える上位ビットにより与えられるようにす
る。
【0015】このようにすることにより、近似商qが直
ちに求められ、これはデータメモリに通さなくてもモジ
ュロ‐N短縮用の被演算数(オペランド)とし得るので
特殊なプロセッサにて再処理することができる。従って
これに対応するメモリ位置を節約することができる。
【0016】このような方法をnが2000以下のnビ
ット変数に適用する場合には、近似商qのビット数をp
とし、且つ変数aiについての前記短縮フォーマットの
ビット数mを24とするのが有利である。
【0017】これらのビット数は8の倍数であり、これ
らは8ビットワードで作動するマイクロコントローラに
良好に適用され、又このマイクロコントローラは同じく
8ビットのオペランドで作動する計算素子に関連する。
値p‐mを8ビット(即ち、1バイト)に等しくするこ
とにより、追加の短縮が行われるまでは不完全となり得
るモジュロ‐N短縮による全ての超過分を受け取るよう
にすることができる。
【0018】モジュラスNの値を選定する間隔を制限す
ることにより、追加のモジュロ準短縮が必要となる前の
連続的に行われる演算回数を増やすこともできる。
【0019】これに対し、モジュラスNの値を選定する
間隔を大きくして、関連する連続演算回数を追加のモジ
ュロ短縮なしに正しく減らすこともできる。
【0020】本発明による方法はモジュロ‐Nの値をn
ビットの数から如何様に選定する場合でも適用される。
【0021】実際上、本発明の第2の好適例では、nを
2000以下の数とするnビットの変数に対するnビッ
トの数からモジュラスNの値を如何様に選定する場合で
も、近似商qのビット数pを32に等しくし、且つ前記
変数aiの縮減フォーマットのビット数mを24に等し
くし、近似商qの値を第1演算、即ち Bi=ai・X+T・2m の実行後に次の追加演算、即ち li・N* によって求め、ここにliはnビットフォーマットを超
える変数Biの上位ビットを表し、N*はモジュラスNの
逆関数の上位56ビットに制限された2進数を表し、上
位32ビットに限定される追加演算の結果によって近似
商qの値を発生させ、最後に前記演算式、即ち Ai=q・N′+R によってモジュロ‐N準短縮を実行するようにする。
【0022】値Nは前もって計算して、N又はN′と同
じ容量のデータとしてマイクロコントローラに供給する
ことができる。近似商qの値は短かな追加の演算(2つ
の数、つまり一方の4バイトと、他方の7バイトとによ
る乗算)の終りに決定され、この追加演算はモジュロ‐
N短縮と同じタイプのものではあるが、被乗数が僅か7
バイトに過ぎないために遥かに短いものである。Nの値
としては任意の数を選定することができ、その数は前記
第1好適例におけるように予定した間隔内の値とする必
要がなく、それでも演算期間は僅か約15%延びるに過
ぎない。
【0023】本発明はプログラムによって制御される中
央マイクロカルキュレータユニットを具えている装置に
も関するものであり、この装置は前記プログラムが前述
したような方法を実行することを特徴とするものであ
る。
【0024】図面につき本発明を説明する。Mの値を
計算するいわゆる2進べき乗法が既知である。ここでは
計算の記数法を定めると共に計算のハイアラーキの良好
な理解を与えるために、これら方法のうち指数eを重み
の回帰順位で用いる方法について簡単に述べる。
【0025】指数j=nを決定し(ここで、nは2進数
で表した指数eのビット数に等しい)、計算変数Aを値
1に初期設定する。計算ループを実行し、Aの2乗を変
数Bと置き、次にA=Bの新しい値をセットし、指数e
のランクjのビットが1に等しい場合にはB=A・Mを
書込む追加の演算を実行し、Bの値を変数Aの値と置
き、他方指数eのランクjのビットが0に等しい場合に
はこの演算を省略する。次に、j=j−1と仮定するこ
とによりeのすぐ下位の値を有するビットに進み、図1
に示すように上述の演算を繰り返す。上述の演算はjが
0になるまで実行される。eの最低ビットはj=1に対
し使用され、即ちj=0の場合には計算が終了し、計算
変数AがMの値になる。
【0026】RSA符号化方法はメッセージMのe乗の
モジュロ‐N演算を実行することから成り、N,e及び
Mはnビットを有するフォーマット内に含まれる非常に
長い整数であり、Nは512ビット程度の長さにするこ
とができる。
【0027】モジュロ‐N関数の第1の効果はその結果
がnビット以下のフォーマットに短縮されることにあ
る。モジュロ‐N関数の他の特性は、モジュロ‐N短縮
が最終結果に悪影響を与えることなく適用される瞬時を
任意に選択することができる点にあり、これにより計算
変数の長さを計算容量及びメモリサイズが著しく制限さ
れたマイクロプロセッサに対し禁止された長さに到達す
る前に短縮することができる利点が得られる。
【0028】
【発明の実施の形態】図2はメッセージMのe乗のモジ
ュロ‐Nを得るには図1のアルゴリズムをどのように変
更すればよいかを示す。計算プロセスは前と同様にj=
n及びA=1と仮定することにより開始し、B=A・A
の計算を実行し、A=Bモジュロ‐Nと仮定することに
よりBを計算変数Aの新しい値に短縮する。eのランク
jのビットが1に等しい場合には、B=A・Mを演算す
ると共にA=Bモジュロ‐Nと仮定してB=A・Mを再
び短縮する。eのランクjのビットが0に等しい場合に
は、この2重演算を省略する。こうして特定の値の変数
Aが得られ、斯かる後にj=j−1が実行され、図2に
示すようにこれらループ演算がj=0になるまで繰り返
される。変数eの全ビットが1ビットづつ使用され終わ
ると、計算変数AはMe モジュロ‐Nの求める値を発生
する。図2から、図中に1及び2で示す各対の演算は同
一の性質のものであることがわかる。各対の演算におい
て、第1の演算はB=A・Xのタイプであり、第2の演
算はA=Bモジュロ‐Nのタイプである。タイプB=A
・Xの演算においてはA及びXが非常に長い数であるた
め、この演算を小計算容量のマイクロコントローラによ
り直接実行することは一般に不可能である。実際には上
述の各対の演算はインタリーブした小部分に分けて実行
して変数の長さがnビットフォーマットに対し大きくな
らないようにする。
【0029】図2に1及び2で示す各対の演算の等価な
結果を得ることができるシーケンスプロセスを以下に詳
細に説明する。
【0030】図3は上述した演算対1及び2に類似の一
層詳細なアルゴリズムを示す。演算のタイプ1又は2に
応じて変数XにA又はMに等しい値を割り当てる。計算
変数Aをmビットの限定フォーマットaiを有するセグ
メントで用いることがわかっているので、分数n/mを
丸めた整数に等しい値を有するループ指数iを決定す
る。合計変数Tを用い、これを0に初期設定する。変数
Aのセグメントaiに対応する最上位セグメントに基づ
いて、Bi=ai・X+T・2m を計算する計算ループを
実行し、斯かる後に変数Biの長さの短縮を等式Ai=q
・N′+Rに従って実行する。
【0031】本発明の方法では変数Aiの現在値は変数
iの新しい値を表し、この値からモジュラスNの所定
の倍数が減算され、従って変数Biの長さが短くなる。
この演算はモジュロ‐N関数から明らかであるが、変数
iはモジュラスNの小さな倍数を含み得るのでこの短
縮は不完全であり、モジュロ‐N準短縮と称されてい
る。変数Rの値は変数Biの下位のnビットにより決定
され、qは分数Bi /Mのデフォルト値により近似され
た商であり、pビット(pはmより大きい)を有する固
定フォーマットを有する。変数N′の値はnビットフォ
ーマットのNの2の補数である。従って項q・N′は項
−q・Nに等価である。値Ai は(モジュロ‐N短縮の
厳密な演算と異なり)またモジュラスNの小さな倍数を
含み得るため、この結果Ai はmビットフォーマットに
対しd個の上位ビットの超過を生ずる。このためpビッ
トを有する変数qに対し数pが数mより大きいフォーマ
ットを選択してこれが問題の超過ビットdを含み得るよ
うにする。
【0032】変数Tに変数Ai の現在値を割り当て、斯
かる後にループ指数iを1だけ減らし、図3に示すルー
プ演算を最下位の最後のセグメント(変数)ai が使用
されるまで繰り返す。図3に示すループにおける順次の
演算の所定の回数並びに近似トレランス(公差)qを、
順次の演算中に累積された超過ビットの最大数dがp‐
mに等しくなるように決定する。図3に示す例では、順
次の演算の前記回数はiは等しく、これは同時に近似ト
レランスqを決定する。ループiにおいて、計算が開始
すると、最終結果Ai は結果A1 になりこれを変数B1
と置き換える。次いで追加のモジュロ‐N準短縮を実行
する。これは上述の計算ループで実行されたものと同一
であり、演算A=q・N′+Rを実行して計算変数Aの
新しい値を発生させる。この演算において、変数は前と
同一の桁を有し、変数Bi の長さの短縮を発生し、これ
により全ての超過が消去されると共にこの変数がnビッ
トフォーマットに短縮される。図3に示すアルゴリズム
において、状態i=0が発生する。実際にはここでは
(項のデータ処理方向の)検査の問題はない。その理由
は、実際上実行すべき演算のループ数iを指定すること
により図3のアルゴリズムを実行する状態に計算装置が
初期設定されているためである。最後に、このアルゴリ
ズムは符号検査及び大きさ(桁)検査を必要とせず、後
述するように中央マイクロプロセッサユニットの命令に
よる割り込みの必要なしに特別の計算素子により系統的
に実行することができる。
【0033】所要の精度を有する近似商の値は種々の方
法で決定することができる。モジュラスNの値を特定の
インターバル(間隔)中に取り出す本発明の第1の実施
例においては、この特定のインターバルを 2n −2(n-m) ;2n −1 に等しく、且つ近似商qをnビットフォーマットを超過
する変数Bi の上位ビットにより発生させる。
【0034】nが2000以下の有利な実施例において
は、ビットpの数を近似した商qから選択し32ビット
にすると共にビットmの数を変数ai の短縮フォーマッ
トから選択し24ビットにする。従って極めて不所望な
環境下においてi回繰り返されるループ計算プロセス中
に発生し得る超過分dを収納するのに8ビット(1バイ
ト)が得られる。計算Bi =ai ・X+T・2m におい
て項ai ・Xは常に(n+m)ビットを有するフォーマ
ット内に厳密に維持されるが、値T・2m はこのような
フォーマットを超過し、超過分dを発生する。この超過
分は加算中に生ずるため、i回のループ計算中のこの超
過分の累積合計を収納するのに1バイトがあり、従って
このような超過分を累積するのに255ビットを用いる
が、このような超過分は不利な場合に一般に1の値、最
大で2の値を有し、例外的な場合(1度以下)に3の値
を有する。これは、超過分をこの目的のために用意され
たバイトにより収納し得なくなる前にループサイクル数
が100以上になることを意味する。nが512ビット
に等しい場合の初期変数を示すためにループ計算の数i
を22以下にする。
【0035】後に示すように、一例として示すビット数
は8ビットの倍数であり、これらビット数は8ビットワ
ードで動作するマイクロコントローラに良好に適合し、
このコントローラには同じく8ビットのオペランドで動
作する計算素子が関連するからである。
【0036】以上においては、追加のモジュロ‐N準短
縮に戻る必要なしに実行される一連の演算の数がiに等
しい、即ち変数Aをその一連のセグメントai の形で用
いる一連の演算の数に等しい例について説明した。しか
し、例えば近似商qの精度を高めることにより、或いは
モジュラスNの一層制限したインターバルを選択するこ
とにより(この場合には計算変数Aのフォーマット超過
分を収納するために用意するビット数p‐mを減らすこ
とができる)、或いはこれとは逆にモジュラスNの値を
選択する特定のインターバルを拡大することにより(こ
れは変数qを収納するのに用いるビット数pを増大する
ことになる)、或いは値pを32ビットに維持しながら
一連の演算の数を減少させることにより(即ちi回のル
ープ計算中に追加のモジュロ‐N準短縮を所定回数実行
することにより)異なる演算を行うこともできる。全て
の場合において変数Aに対し一定の計算フォーマットを
維持するために、図3につき述べた演算サイクルを変数
Aの値をnビットフォーマットに厳密に戻すための追加
のモジュロ‐N準短縮により終了させるのが有利であ
る。
【0037】本発明装置は、モジュラスNの値を特定の
インターバルで取り出すとき直ちに使用することができ
る。しかし、この装置はモジュラスNの値をnビットの
数から任意に選択するときにも使用することができる。
実際上、本発明の第2の実施例では僅かに追加の演算に
より適正な近似トレランスを有する近似商の値を決定す
ることができる。
【0038】計算変数の大きさは一般に互いに相関する
ため、この実施例をこれら変数が固定の数値を有するフ
ォーマットを有する例を用いて説明する。長いワードの
ビット数nを2000以下とし、近似商qのビット数p
を32とし、変数ai の短縮フォーマットのビット数を
24とする。ここでも図3に示す計算方法を用いてルー
プで実行される演算の第1の演算をBi =ai ・X+T
・2m で与える。
【0039】近似商qの値は最早、nビットフォーマッ
トを超過する変数Bi の上位ビットにより直接発生し得
ない。nビットフォーマットを超過するそれにもかかわ
らずこれら上記ビットにより表されるワードli を変換
後に近似商qの値を発生する小さな演算に直接用いる。
本発明では近似商の近似トレランスが許容されるので、
後述する変換は最早高い精度を必要とせず、減少したビ
ット数で実行することができる。
【0040】本発明のこの実施例では積li・N*を計算
する。ここでN* はモジュラスNの逆数の上位56ビッ
ト(7バイト)に制限された2進数から成る変数であ
る。この乗算により得られた値を再び上位32ビット
(4バイト)に制限し、この値が求める近似商qを与え
る。この演算の終了時に、変数Bi の長さは前と同様に
i =q・N′+Rにより短縮される。この演算におい
て変数は前の実施例と同一の重みを有する。
【0041】値N* はモジュラスN又はその2の補数と
同一の容量でマイクロコントローラに供給し得るパラメ
ータであるため、このパラメータはコントローラ自体で
計算する必要はない。最後に、モジュラスNはnビット
の数から任意の値を容易に選択し得るので、近似商qの
値を決定する追加の小演算を除いて前と同一の方法を用
いる。この追加の演算は4バイトフォーマットの数と7
バイトフォーマットの数の乗算であるため比較的短く、
この追加の演算はモジュラスNの値を特定のインターバ
ルで選択した第1実施例と比較して演算時間が約15%
長くなるだけである。
【0042】変数のフォーマットを数値的に固定したこ
の実施例に関し、専門家であれば上述したようにシステ
マチックに、所定数の一連の演算中に検査を必要とする
ことなく実行されるモジュロ‐N準短縮法のように近似
商qを計算し得る精度に関する他の目安を決定し、斯か
る後に追加のモジュロ‐N準短縮を実行してこれら一連
の演算中に累積される超過分を抑圧するようにすること
ができる。
【0043】次に、本発明装置に有利に有効に使用し得
るコントローラの一実施例及びこのようなコントローラ
に組み込み得る計算素子の一実施例を図4及び図5を用
いて簡単に説明する。これらの装置自体は1989年12月29
日出願のフランス国特許第8917455号及び同8917456号の
目的を構成し、これら明細書にこれらの装置が詳細に開
示されている。
【0044】図4に示すマイクロコントローラは中央処
理装置(CPU15)と、読取専用メモリ(ROM1
6)と、ランダムアクセスメモリ(RAM17)と、破
線の長方形18で記号的に示す計算素子と、状態及び制
御レジスタ(E.C.)19及びシーケンサ(SE)2
0を含む回路とを具える。中央処理装置15は読取専用
メモリ16、状態及び制御ユニット19、シーケンサ2
0とデータバス7を介してデータを交換すると共にアド
レスバス8を介して読取専用メモリ16にアドレスを送
出する。中央処理装置15はそれぞれのバス7及び8を
介してランダムアクセスメモリとデータを交換すると共
にこのメモリをアドレスすることもできるが、このメモ
リに直接アクセスすることはできない。
【0045】中央処理装置15に接続されたデータバス
7はデータスイッチマルチプレクサ4の第1入力端子を
介してランダムアクセスメモリ17のデータ部分をアク
セスする。このマルチプレクサの第2入力端子は“ロー
カルバス”10と称すバスに接続する。このバスの役割
については後に説明する。ランダムアクセスメモリ17
のアドレスポートはアドレススイッチ5と称す別のマル
チプレクサの出力端子に接続する。このマルチプレクサ
の4つの入力端子はその第1入力端子をシリアルキュー
として配置されたオペランドtのアドレス用のダブルア
ドレスレジスタ122−222を経て、その第2入力端
子を同じくシリアルキューとして配置されたオペランド
Xのアドレス用の別のダブルアドレスレジスタ121−
221を経て、その第3入力端子をオペランドaのアド
レス用の単一レジスタ211を経て、及びその第4入力
端子を演算結果bのアドレス用の別のダブルレジスタ1
23−223を経てアドレスバス8にそれぞれ接続す
る。アドレスポインタレジスタ122, 121, 21
1, 123は中央処理装置15によりロードすることが
できるが、ポインタ222, 221及び223は対応す
るキュー内の相手のレジスタのアドレスを受信するよう
配置し、受信後シーケンサ20により自動的にインクリ
メント又はデクリメントし得るようにする。単一ポイン
タレジスタ211も中央処理装置15によりローディン
グされた後にシーケンサにより自動的にインクリメント
又はデクリメントされるようにすることができる。
【0046】計算素子18はオペランドa〔1〕、a
〔2〕、a〔3〕及びa〔4〕用の4つの入力端子1
1, 12, 13及び14と、オペランドxi 及びti
の入力端子21及び22を有する。ローカルバス10と
オペランド入力端子11, 12,13及び14との間に
それぞれレジスタ311,312,313及び314を
挿入し、これらレジスタに上述のオペランドの値をスト
アする。オペランドxi 用の入力端子21とローカルバ
ス10との間にはシリアルキューとして配置された1対
のレジスタ321−421を挿入し、オペランドti 用
の入力端子22とローカルバス10との間にもシリアル
キューとして配置された1対のレジスタ322−422
を挿入する。計算素子18は更に結果bi 用の出力端子
23を有し、この出力端子から結果bi を出力レジスタ
323を介してローカルバス10に送出する。図を明瞭
とするために、制御接続は詳細に示してない。しかし、
破線で示した1組の制御接続47によって状態及び制御
レジスタ回路49、シーケンス20及び計算素子18と
の間の制御接続を記号的に示してある。計算素子18は
ポート25から制御命令を受信する。
【0047】図4に示すマイクロコントローラの特徴
は、ローカルバス10によりデータスイッチマルチプレ
クサ4を経てランダムアクセスメモリ17と計算素子1
8のデータポートとの間でデータを伝送することがで
き、従ってこの計算素子によりシーケンサ20の制御の
下で、中央処理装置15の介入なしに一連の計算を実行
することができる。この一連の演算中に中央処理装置が
一連の次の計算のためのポインタレジスタ121,12
2及び123にアドレスポインタをロードすることがで
きる。
【0048】本発明方法の一実施例では全ての処理デー
タを均一の8ビットフォーマットで表わす。計算変数T
及びxは8ビットワードに区分し、これらワードに重み
iのランクを付けてオペランドxi 及びti を構成す
る。所定のオペランド対xi ,ti の値が最初にローカ
ルバス10を経てレジスタ321および322に2クロ
ックサイクルでロードされる。第3クロックサイクルを
用いてレジスタ323にストアされている結果bi をラ
ンダムアクセスメモリ17に書込む。計算素子18はオ
ペランドa〔1〕〜a〔4〕を用いて4ステップサイク
ルで、又はオペランドa〔4〕及び入力14を用いない
で3ステップサイクルで演算を行い得る。
【0049】タイプBi =ai ・X+Tの演算を実行す
るためには計算素子18は3ステップサイクルで、変数
i の3バイトを構成する3つの順次のバイトを表わす
オペランドa〔1〕〜a〔3〕を用いる。計算素子18
は演算範囲をaii +tiにしぼる3ステップ計算サ
イクルの終了時にユニークな結果bi を発生し得る。結
果bi をレジスタ323からランダムアクセスメモリ1
7に転送するクロックサイクル中にオペランドxi 及び
i の新しい値をそれぞれのレジスタ321及び322
から対応するレジスタ421及び422に同時に転送す
る。計算変数T,X及びBi の各々はランダムアクセス
メモリに連続するアドレスバイトによりストアされるた
め、これらアドレスはシーケンサ20の制御の下でイン
クリメント又はデクリメントされるそれぞれのポインタ
レジスタ221, 222及び223により指示される。
【0050】モジュロ‐N準短縮が等式Ai =q・N′
+Rに従って実行される際は、入力端子21のオペラン
ドxi がパラメータN′のランクiのバイトni ′と置
き換えられ、入力端子22のオペランドti が変数Rか
ら取り出されたバイトri と置き換えられると共に、4
個の入力端子11, 12, 13, 14には近似した商q
を構成する一連のバイトが供給される。斯くして計算素
子18は値ni ′及びri の対に対する商qを構成する
各バイトの処理を4ステップサイクルで実行する。計算
は4ステップサイクルでステップごとに行われ、その間
ローカルバス10がオペランドデータをレジスタ321
及び322に再ロードする2クロックサイクルとレジス
タ323からランダムアクセスメモリ17へ結果を転送
する1クロックサイクルの間に亘って占有される。この
場合にはローカルバス10は計算サイクルを構成する4
クロックサイクルのうちの1サイクル中占有されないも
のとなる。
【0051】初期変数N,Mの512ビット(即ち64
バイト) のフォーマットに対しては、結果Bi を得る
ことができる変数X及びTをバイトで完全に用いるため
には67の3ステップサイクルを実行する必要がある。
同様に、計算変数Ai を発生するモジュロ‐N準短縮演
算において変数N′及びR(計算素子にストアされてい
る中間データの“クリア”を含む)をバイトで完全に用
いるには68の4ステップサイクルが必要とされる。計
算素子がほぼ独立に演算を行うこれら一連のサイクルに
対応する期間中に中央処理装置15はポインタレジスタ
121, 122及び123に後続の計算に必要な種々の
パラメータ、詳しく言えばアドレスを再ロードするのに
必要な全ての時間が得られる。同様に、2つの一連の計
算サイクルの間において新しいオペランドa〔1〕、a
〔2〕、a〔3〕及び必要に応じオペランドa〔4〕が
中央処理装置によりポインタレジスタ211にロードさ
れた初期アドレスに基づいて再ロードされ、このときこ
のポインタレジスタはデクリメント又はインクリメント
されてランダムアクセスメモリ17からこれらオペラン
ドの次の値をフェッチする。変形例では結果bi を受信
するデータレジスタ323に、マルチプレクサで短絡し
得る3個のバッファレジスタのバンクを付加する。この
ようにすると、計算素子18により最後に発生された変
数Bi の上位バイトを、レジスタ323により拡張され
た前記3個のバッファレジスタのバンクに応答して、モ
ジュロ‐N準短縮に用いるオペランドとしてレジスタ3
11,312, 313及び314に直接順次に転送する
ことができる。この場合、これら4つのデータバイトの
ためのメモリスペースが不要になる。
【0052】図5は図4の計算素子の内部構成図を示
す。この計算素子の入力端子及び出力端子は図4と同一
の符号を付して示す。データ入力11〜14をサイクル
スイッチマルチプレクサ33の4つの入力端子に供給
し、このマルチプレクサの出力を8×8ビットマルチプ
ライヤ30の2つの入力端子の一方に供給する。このマ
ルチプライヤの第2入力端子は入力端子21からオペラ
ンドxi を受信する。マルチプライヤ30の16ビット
フォーマットの出力を第1加算器31の2つの入力端子
の一方に供給する。この加算器の第2入力端子には後述
するデータ循環手段により8ビットフォーマットデータ
が供給される。この第1加算器31の16ビットフォー
マット出力を第2加算器32の2つの入力端子の一方に
供給し、この加算器の第2入力端子35は入力端子22
からマルチプレクサ42を経てオペランド値ti を受信
し得る。この第2加算器32は2つの結果出力端子を有
し、下位の8ビットの出力37を出力端子23に送出し
得ると共に上位の8ビットの出力38とバッファレジス
タ41に供給する。バッファレジスタ41の出力をマル
チプレクサ42の第2入力端子に供給すると共に第2マ
ルチプレクサ43の一方の入力端子に供給し、この第2
マルチプレクサの他方の8ビット入力端子には出力37
を供給する。このマルチプレクサ43の8ビット出力端
子をバッファレジスタ44, 445, 45のバンクを経
て第1加算器31の第2入力端子34に接続する。この
バンクのレジスタの1つ(本例ではレジスタ445)は
短絡マルチプレクサ450により側路することができ
る。データはこのバンクのレジスタをステップバイステ
ップで通過する。
【0053】オペランドa〔1〕の選択に対応するサイ
クルの第1ステップではマルチプレクサ42がオペラン
ドti を選択すると共にマルチプレクサ43がバッファ
レジスタ41を選択する。これらを図5に小矢印で記号
的に示してある。オペランドti は第2加算器32にも
供給され、この加算器の出力端子37の結果の下位の8
ビットが出力端子23からレジスタ323(図4)に送
出されストアされる。この第1サイクルステップ後の他
のステップに対してマルチプレクサ42及び43の位置
が逆転され、第2加算器32の結果の上位8ビットがバ
ッファレジスタ41内におけるこれら値のドウェルタイ
ムに対応する遅延後に第2加算器32の第2入力端子3
5にレトロ結合される。第2加算器32の出力端子37
の結果の下位8ビットがレジスタバンクのヘッドレジス
タを構成するレジスタ44に転送され、ステップごとに
次段のレジスタに順次転送される。このようにして3ス
テップの遅延を得てこれらの値を第1加算器31の第2
入力端子34に供給する。例外として、最後のサイクル
ステップではバッファレジスタ41内に含まれる値は次
のサイクルの第1ステップ中にバッファレジスタ44に
転送され、この値が4ステップの遅延後に第1加算器3
1の入力端子34に再循環される。
【0054】従って、斯かる計算素子は4サイクルステ
ップでオペランドxi 及びti とオペランドa〔1〕〜
a〔4〕を併用して出力端子23に8ビットの単一結果
を発生する。中間結果はマルチプレクサ42及び43か
らなる再循環スイッチング手段を具えるレジスタ41,
44, 445及び45から成る再循環手段によりこの素
子内を再循環する。
【0055】このような素子は3ステップのサイクルで
動作させることもできる。この場合には中央処理装置1
5により状態及び命令レジスタ19にロードされた特定
の1ビットの形態の情報信号により計算素子に、オペラ
ンドa〔4〕を使用しないことを命令してマルチプレク
サ33の周期的スイッチングをオペランドa〔1〕〜a
〔3〕のみを用いるように制限する。また、中間データ
の正しい再循環を達成するために、この場合にはバッフ
ァレジスタ44, 445, 45のバンクを、マルチプレ
クサ450でレジスタ445を短絡して1レジスタだけ
減少させる。
【0056】図5につき述べたような計算素子を具える
図4につき述べたコントローラはRSA法による符号化
に対する本発明の方法を有効に実施し得ることは容易に
理解される。このように実施すると動作を著しく遅延し
得る多数の検査が省略される。
【0057】本発明は上述した方法を実行するプログラ
ムにより制御される中央マイクロ計算装置を具えた任意
の装置に適用することができる。
【図面の簡単な説明】
【図1】 nビットワードMのe(このeもnビットの
数である)のべき乗を計算するアルゴリズムを示す説明
図である。
【図2】 図1のアルゴリズムからMモジュロ‐Nの
値(ここにNはnビットのモジュラスである)を求める
ことができるようにするアルゴリズムを示す説明図であ
る。
【図3】 図2のアルゴリズムの一部を本発明による方
法に従って実行すべくさらに詳細に発展させたアルゴリ
ズムを示す説明図である。
【図4】 本発明による方法を実行するマイクロコンピ
ュータの構成を示すブロック図である。
【図5】 図4のマイクロコントローラに組み込むこと
のできる計算素子のブロック図である。
【符号の説明】
4 データスイッチマルチプレクサ 5 アドレススイッチ 7 データバス 8 アドレスバス 10 ローカルバス 15 中央処理装置(CPU) 16 読取専用メモリ(ROM) 17 ランダムアクセスメモリ(RAM) 18 計算素子 19 状態及び制御レジスタ 20 シーケンサ 121−221,…123−223 ダブルアドレスレ
ジスタ 211 単一レジスタ 311−314, 321−421, 322−422 レジスタ 323 出力レジスタ 30 マルチプライヤ 31 第1加算器 32 第2加算器 33 サイクルスイッチマルチプレクサ 41 バッファレジスタ 42 マルチプレクサ 43 第2マルチプレクサ 44, 445, 45 バッファレジスタ 450 短絡マルチプレクサ
フロントページの続き (72)発明者 ジャン−ジャック キュイスクワテール ベルギー国 ベ−1640 ブラッセル アベ ニュデ カナール3 Fターム(参考) 5J104 AA18 JA28 NA39

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 マイクロコントローラを有する符号化装
    置でメッセージMのe乗のモジュロ−N演算処理を行っ
    てRSA符号化を行う方法であって、N,e及びMはn
    ビットのフォーマットに含まれる整数であり、前記モジ
    ュロ−N演算処理は、式(1)を用いる第1の演算を行
    う工程と、 Bi=ai・X+T・2m 式(1) 式(2)に示すモジュロ−N準短縮による第2の演算を
    行う工程と、 Ai=q・N′+R 式(2) を有し、前記第1の演算において、Bi及びXは、M及
    びNに依存する計算変数であり、aiは、値が以前の演
    算から得られる計算変数Aのmビットに限定されたフォ
    ーマットの抽出変数(セグメント)であり、この抽出変
    数は前記計算変数Aの重みのランクiが減少する順位で
    取り出され、Tは、変数Aの計算に用いた加算変数であ
    り、前記第2の演算は、モジュラスNの予定した倍数を
    減じることによって変数Biの長さを短くして、変数A
    に対する新規の値Aiを得るものであり、N’は、nビ
    ットフォーマットにおけるNの2の補数であり、qは、
    p>mとして、pビットの固定フォーマットにて割算B
    i/Nのデフォルトにより近似させた整数の商であり、
    Rは、変数Biの下位nビットにより与えられる変数で
    ある、ことを特徴とする方法。
  2. 【請求項2】 前記第2の演算の結果Aiは、モジュラ
    スNの低い倍数を含むことができ、nビットフォーマッ
    トに対してd個の上位ビットを超過させることができ、
    逐次演算の所定回数を近似公差qと同様に、前記演算中
    に累積される超過分の最大ビット数がp−mに等しくな
    るように定め、前記所定回数の演算後に、変数Aの新規
    の値を厳密にnビットフォーマット内に発生させる追加
    のモジュロ準短縮を行うことを特徴とする請求項1記載
    の方法。
  3. 【請求項3】 変数Aが、その抽出変数aiにより完全
    に用いられた際に、連続演算の回数が前記所定回数に達
    することを特徴とする請求項2記載の方法。
  4. 【請求項4】 モジュラスNの値を或る特定の間隔中に
    取り出し、この特定の間隔を 2n−2n-m;2n−1 に等しくし、前記近似商qの値がnビットフォーマット
    を超過する変数Biの上位ビットにより与えられること
    を特徴とする請求項3記載の方法。
  5. 【請求項5】 nが2000以下のnビットの変数に適
    用され、前記近似商qのビット数pを32とし、変数a
    iの前記短縮フォーマットのビット数mを24とするこ
    とを特徴とする請求項4記載の方法。
  6. 【請求項6】 モジュラスNの値をnビットの数から如
    何ように選定する場合でも適用可能であり、また、nが
    2000以下のnビットの変数に適用され、近似商qの
    ビット数pを32に等しくし、前記変数aiの短縮フォ
    ーマットのビット数mを24に等しくし、近似商qの値
    を第1の演算、すなわち Bi=ai・X+T・2m の実行後に次の追加演算、すなわち li・N* によって求め、ここで、liは、nビットフォーマット
    を超えている変数Biの上位ビットを表し、Nは、モ
    ジュラスNの逆数の上位56ビットに制限された2進数
    を表し、上位32ビットに限定される前記追加演算の結
    果によって近似商qの値を発生させ、最後に前記第2の
    演算、すなわち Ai=q・N’+R を行うことを特徴とする請求項3記載の方法。
JP2002107977A 1990-02-23 2002-04-10 Rsa符号化装置 Expired - Lifetime JP3467489B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9002274A FR2658932A1 (fr) 1990-02-23 1990-02-23 Procede de codage selon la methode dite rsa, par un microcontroleur et dispositif utilisant ce procede.
FR9002274 1990-02-23

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP04879791A Division JP3501468B2 (ja) 1990-02-23 1991-02-22 携帯カード

Publications (2)

Publication Number Publication Date
JP2003029627A true JP2003029627A (ja) 2003-01-31
JP3467489B2 JP3467489B2 (ja) 2003-11-17

Family

ID=9394076

Family Applications (2)

Application Number Title Priority Date Filing Date
JP04879791A Expired - Lifetime JP3501468B2 (ja) 1990-02-23 1991-02-22 携帯カード
JP2002107977A Expired - Lifetime JP3467489B2 (ja) 1990-02-23 2002-04-10 Rsa符号化装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP04879791A Expired - Lifetime JP3501468B2 (ja) 1990-02-23 1991-02-22 携帯カード

Country Status (5)

Country Link
US (1) US5166978A (ja)
EP (1) EP0443679B1 (ja)
JP (2) JP3501468B2 (ja)
DE (1) DE69130581T2 (ja)
FR (1) FR2658932A1 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NZ240019A (en) * 1991-09-30 1996-04-26 Peter John Smith Public key encrypted communication with non-multiplicative cipher
US5274707A (en) * 1991-12-06 1993-12-28 Roger Schlafly Modular exponentiation and reduction device and method
WO1993020503A1 (en) * 1992-04-07 1993-10-14 Thomson Consumer Electronics S.A. Method and apparatus for modulo computation
US5299262A (en) * 1992-08-13 1994-03-29 The United States Of America As Represented By The United States Department Of Energy Method for exponentiating in cryptographic systems
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 剰余計算装置、テーブル作成装置および乗算剰余計算装置
ATE189570T1 (de) * 1994-02-24 2000-02-15 Merdan Group Inc Verfahren und einrichtung zum aufbau einer kryptographischen verbindung zwischen elementen eines systems
US5787172A (en) * 1994-02-24 1998-07-28 The Merdan Group, Inc. Apparatus and method for establishing a cryptographic link between elements of a system
US5504817A (en) * 1994-05-09 1996-04-02 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for memory efficient variants of public key encryption and identification schemes for smart card applications
US5852665A (en) * 1995-04-13 1998-12-22 Fortress U & T Ltd. Internationally regulated system for one to one cryptographic communications with national sovereignty without key escrow
IL113375A (en) * 1995-04-13 1997-09-30 Fortress U & T Ltd Internationally regulated system for one to one cryptographic communications with national sovereignty without key escrow
US5932119A (en) 1996-01-05 1999-08-03 Lazare Kaplan International, Inc. Laser marking system
DE19709106A1 (de) * 1997-03-06 1998-09-10 Philips Patentverwaltung Rechenschaltung zum Berechnen eines Quadrats
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
US6091821A (en) * 1998-02-12 2000-07-18 Vlsi Technology, Inc. Pipelined hardware implementation of a hashing algorithm
WO2001045318A1 (en) 1999-12-16 2001-06-21 Nokia Corporation High throughput and flexible device to secure data communication
US7152047B1 (en) 2000-05-24 2006-12-19 Esecure.Biz, Inc. System and method for production and authentication of original documents
US7162035B1 (en) 2000-05-24 2007-01-09 Tracer Detection Technology Corp. Authentication method and system
US7089420B1 (en) 2000-05-24 2006-08-08 Tracer Detection Technology Corp. Authentication method and system
US7167885B2 (en) * 2002-03-22 2007-01-23 Intel Corporation Emod a fast modulus calculation for computer systems
FR2839224B1 (fr) * 2002-04-30 2007-05-04 Gemplus Card Int Procede pour effectuer une phase de multiplication modulaire de deux operandes en multiprecision et cryptoprocesseur pour la mise en oeuvre du procede
US8171567B1 (en) 2002-09-04 2012-05-01 Tracer Detection Technology Corp. Authentication method and system
WO2006110954A1 (en) * 2005-04-20 2006-10-26 Synaptic Laboratories Limited Process of and apparatus for counting
US8229109B2 (en) 2006-06-27 2012-07-24 Intel Corporation Modular reduction using folding
US7930337B2 (en) * 2006-06-27 2011-04-19 Intel Corporation Multiplying two numbers
US7827471B2 (en) * 2006-10-12 2010-11-02 Intel Corporation Determining message residue using a set of polynomials
US20080260153A1 (en) * 2007-04-20 2008-10-23 John Almeida Symmetric and asymmetric cryptography using shadow numbers
US8689078B2 (en) 2007-07-13 2014-04-01 Intel Corporation Determining a message residue
US7886214B2 (en) * 2007-12-18 2011-02-08 Intel Corporation Determining a message residue
US8042025B2 (en) * 2007-12-18 2011-10-18 Intel Corporation Determining a message residue
US9052985B2 (en) * 2007-12-21 2015-06-09 Intel Corporation Method and apparatus for efficient programmable cyclic redundancy check (CRC)
US7995196B1 (en) 2008-04-23 2011-08-09 Tracer Detection Technology Corp. Authentication method and system
EP2779519A1 (en) 2013-03-11 2014-09-17 Thomson Licensing A method and a device for fault-resistant exponentiation in cryptographic systems
US10658455B2 (en) 2017-09-28 2020-05-19 Taiwan Semiconductor Manufacturing Co., Ltd. Metal insulator metal capacitor structure having high capacitance

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3138698A1 (de) * 1981-09-29 1983-04-07 Siemens AG, 1000 Berlin und 8000 München Verfahren zur potenzierung grosser binaerzahlen in einer restklasse modulo n, insbesondere zur verschluesselung und entschluesselung digital dargestellter nachrichten
JPS6211937A (ja) * 1985-07-10 1987-01-20 Hitachi Ltd 高速剰余計算装置
CA1252213A (en) * 1986-08-28 1989-04-04 Andrew G. Deczky Digital signal processor with divide function
FR2613861B1 (fr) * 1987-04-10 1990-11-30 Pailles Jean Claude Procede et controleur pour cryptographier un message selon un algorithme a cle publique
US5077793A (en) * 1989-09-29 1991-12-31 The Boeing Company Residue number encryption and decryption system
US5121431A (en) * 1990-07-02 1992-06-09 Northern Telecom Limited Processor method of multiplying large numbers
US5101431A (en) * 1990-12-14 1992-03-31 Bell Communications Research, Inc. Systolic array for modular multiplication

Also Published As

Publication number Publication date
DE69130581T2 (de) 1999-06-24
DE69130581D1 (de) 1999-01-21
JPH04216588A (ja) 1992-08-06
US5166978A (en) 1992-11-24
FR2658932A1 (fr) 1991-08-30
JP3501468B2 (ja) 2004-03-02
EP0443679B1 (fr) 1998-12-09
JP3467489B2 (ja) 2003-11-17
EP0443679A1 (fr) 1991-08-28

Similar Documents

Publication Publication Date Title
JP3467489B2 (ja) Rsa符号化装置
JP3605181B2 (ja) 掛け算累算命令を使用したデータ処理
GB2330226A (en) Digital signal processor for performing fixed-point and/or integer arithmetic
US4251864A (en) Apparatus and method in a data processing system for manipulation of signal groups having boundaries not coinciding with boundaries of signal group storage space
CN111767516A (zh) 用于利用所选择的舍入来执行浮点加法的系统和方法
US4110832A (en) Carry save adder
US4130869A (en) Microprogram controlled system
US4247891A (en) Leading zero count formation
EP0529101B1 (en) Floating-point dividing circuit
US5957996A (en) Digital data comparator and microprocessor
JPH0113130B2 (ja)
JPH022171B2 (ja)
US7136892B2 (en) Method for multiplying two factors from the Galois field and multiplier for performing the method
US4276596A (en) Short operand alignment and merge operation
US5987489A (en) Modular arithmetic coprocessor enabling the performance of non-modular operations at high speed
US5386534A (en) Data processing system for generating symmetrical range of addresses of instructing-address-value with the use of inverting sign value
US5777916A (en) Method for the production of an error correction parameter associated with the implementation of modular operations according to the montgomery method
CN112650469A (zh) 用于二进制标志确定的电路和方法
US4268909A (en) Numeric data fetch - alignment of data including scale factor difference
US5912904A (en) Method for the production of an error correction parameter associated with the implementation of modular operations according to the Montgomery method
US5661674A (en) Divide to integer
US4224677A (en) Effective digit count on a resultant operand
KR100481586B1 (ko) 모듈러 곱셈 장치
US4288850A (en) Apparatus for identification and removal of a sign signal character superimposed
JP2007520729A (ja) 改良された低減計算

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20030814

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

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

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

Free format text: PAYMENT UNTIL: 20080829

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080829

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090829

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090829

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100829

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100829

Year of fee payment: 7

S303 Written request for registration of pledge or change of pledge

Free format text: JAPANESE INTERMEDIATE CODE: R316304

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

Free format text: PAYMENT UNTIL: 20100829

Year of fee payment: 7

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

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

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 8

S303 Written request for registration of pledge or change of pledge

Free format text: JAPANESE INTERMEDIATE CODE: R316304

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

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 8

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 8

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 8