JP2003502905A - 暗号演算に対するパワーアタックおよびタイミングアタックへの対策 - Google Patents

暗号演算に対するパワーアタックおよびタイミングアタックへの対策

Info

Publication number
JP2003502905A
JP2003502905A JP2001504109A JP2001504109A JP2003502905A JP 2003502905 A JP2003502905 A JP 2003502905A JP 2001504109 A JP2001504109 A JP 2001504109A JP 2001504109 A JP2001504109 A JP 2001504109A JP 2003502905 A JP2003502905 A JP 2003502905A
Authority
JP
Japan
Prior art keywords
transmission
processing
algorithm
unnecessary
key
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.)
Pending
Application number
JP2001504109A
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.)
Arris Technology Inc
Original Assignee
General Instrument Corp
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 General Instrument Corp filed Critical General Instrument Corp
Publication of JP2003502905A publication Critical patent/JP2003502905A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/005Countermeasures against attacks on cryptographic mechanisms for timing attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Storage Device Security (AREA)
  • Power Sources (AREA)

Abstract

(57)【要約】 暗号回路はタイミングアタックおよびパワーアタックに対抗する対策を利用して、データの安全な処理を提供する。乗算演算、整数によるモジュラー削減、およびメモリへのデータの格納などの不必要な演算は、暗号演算を実行するのに必要なパワー使用および時間使用の量を偽装するために、プロセッサによって使用可能である。これらのエミュレートされた演算が行われる場合にトリガするために、暗号鍵は使用可能である。エミュレートされた演算の実行は、ユーザーによって制御されて、安全性と資源利用との間の好適なトレードオフを提供する。

Description

【発明の詳細な説明】
【0001】 (関連出願) 本出願は、1999年6月11日に出願された米国仮特許出願第60/138
,909号の優先権の利益を主張する。
【0002】 (発明の背景) 本発明は、概して、暗号技術の分野に関し、より詳細には、パワーモニタリン
グ技術およびタイミングモニタリング技術の使用による、暗号システムにおける
秘密鍵の解読防止に関する。
【0003】 最近では、セキュアプロセッサが暗号化演算および/または復号化演算を行う
のにかかる時間を監視することにより、セキュアプロセッサから暗号鍵情報を得
ることができると分かっている。更に、その様な演算中のパワーを監視すること
は、プロセッサの安全性を攻撃する1つの方法として使用され得る。これは、例
えば、乗算および平方化(squaring)の機能が、異なる量の時間とパワ
ーを使用する場合に起こり得る。したがって、攻撃を仕掛けようとする者は、多
くの異なるメッセージをセキュアデバイスに入力するのに必要な時間およびパワ
ーを探知することで、秘密鍵を解読し得る。パワー使用および時間使用を監視で
きるという状態が、結局は、鍵を明らかにし得る。
【0004】 パワーアタックまたはタイミングアタックによって鍵を識別する攻撃に対する
対策が存在するが、これらの対策は両方のタイプのモニタリングに対して有効な
技術を生み出していない。また、これらの対策の使用は、大量のメモリ、プロセ
ッササイクル、追加の回路、パワー、またはその他の資源を必要とし得る。この
ことは、例えば、セキュアプロセッサが、パワー、スピード、および回路に使用
可能な表面積が重要な、バッテリー給電型「スマートカード」内等の、電力制限
の環境下にある場合、好ましくない。
【0005】 したがって、資源要件を低く維持しつつ、パワーアタックおよびタイミングモ
ニタリングアタックの両方に有効な対策技術を提供することが望ましい。パフォ
ーマンスペナルティの制限を受けつつ、パワーアタックおよびタイミングアタッ
クに対抗することも望ましい。
【0006】 (発明の要旨) 本発明は、エミュレートされた暗号演算を用いて、暗号システムの時間使用お
よび/またはパワー使用を偽装する。例えば、本発明のある実施形態は、不必要
な数理的演算および/またはデータの不必要な格納を行って、アルゴリズムにお
いて数理的演算または格納が実際に行われたかどうかを偽装する。エミュレート
された乗算によって使用されるパワーおよびプロセッササイクル時間が効率的な
まま維持されるように、エミュレートされた演算の合計数を制御し得る。
【0007】 ある実施形態において、本発明は秘密鍵を用いて、暗号演算を行う処理システ
ムにおけるパワー使用および時間使用を偽装する方法を提供する。プロセッサは
エミュレートされた乗算演算を行って、鍵の1つ以上のビットをマスクする。本
発明のこの実施形態は、乗算演算が行われるべきか行われるべきでないかを鍵が
指示したかどうかを偽装するという点で、有利であり得る。不必要な乗算演算が
原因で、鍵に含まれるビットの値に関わらず、攻撃者は予測不可能な時間使用お
よび同様のパワー使用を観測する。したがって、鍵の値は安全に維持される。さ
らなる処理として、ダミーメモリロケーションに、エミュレートされた乗算の結
果が格納され得る。必要な乗算/格納の機能が鍵によって指示される場合に、続
いて行われる手順をさらにエミュレートする。
【0008】 本発明のさらなる利点および機能は、以下の説明を添付の図面と併せて考慮す
れば、当業者に明らかになる。本発明は開示される詳細に限定されず、本発明の
趣旨および添付のクレームの範囲内にあるそのような改変例および変更例のすべ
てを含むことが理解される。
【0009】 (具体的な実施形態の説明) 復号化システムを参照して、本発明を説明する。しかし、本発明は、復号化を
必要としない他の暗号システムにも適用し得ることを理解されたい。例えば、本
発明は、当業者の言うところの、秘密鍵に基づくシステム、特に離散的対数シス
テムおよび整数因数分解システムに使用し得る。しかし、復号化の例を用いるこ
とは本発明を説明するのに役立つ。
【0010】 ここで、図1を参照すると、復号化を用いた本発明のある実施形態の概観を示
すフローチャートを示す。図1において、まずメッセージが暗号化される(10
0)。暗号化演算は、当業者によってよく理解される、いろいろな暗号化方法に
よって達成し得る。メッセージが暗号化された後、目的地に送信される(104
)。この送信は単なる点から点への送信だけではなく、暗号化された送信が目的
のエンドユーザーに届くまでにもっと複雑なルーティングを含むと想定される。
最終的に、暗号化された送信は受信される(108)。受信後、例えば、メッセ
ージを復号化することによって、送信の処理が開始される。図1に示すように、
暗号化されたメッセージが復号化される間(120)、メッセージを復号化する
のに必要な時間が偽装され(112)、復号化するのに必要なパワーが偽装され
る(116)。この様態で、本発明はタイミングアタックとパワーアタックとの
両方が攻撃者によって行われるのを防止する。さらに、そのようなパワーアタッ
クおよびタイミングアタックに抵抗することは同時に達成され得る。
【0011】 ここで図2を参照すると、本発明の更なる実施形態のフローチャートが示して
ある。すなわち、図2において、エンドユーザーはまず、送信、例えば暗号化さ
れた送信を受信する(200)。次いで、暗号アルゴリズム、例えば復号化アル
ゴリズムが送信に適用されて、データが処理される(204)。しばしば、これ
は同じ様態で、しかし、異なる結果を生成する異なる「鍵」(つまり数字)を使
用して演算するアルゴリズムによって達成される。例えば、モジュラー指数アル
ゴリズムが実行される場合、公開鍵および秘密鍵が使用される。しかし、各鍵を
使用する場合の基本的数理的アルゴリズムは同じである。様々な暗号アルゴリズ
ムのさらなる背景については、Bruce Schneierによる、Appl ied Cryptography 、Secnd Edition、John
Wiley&Sons,Inc.、1996を参照し得る。本発明書中、この文
献の内容を参考として援用する。引き続き、図2を参照する。復号化アルゴリズ
ムを適用しつつ、追加処理を行ってパワー使用および時間使用を偽装する(20
8)。これらの追加処理はアルゴリズム自体の処理中に行われると想定されるが
、他の実施形態ではアルゴリズムが完了した後に行われ得る。この場合もまた、
復号化処理は単なる一例に過ぎず、本発明は他の暗号処理、特に秘密鍵システム
に使用され得る。
【0012】 最良の偽装を提供すると想定される追加処理は、通常のアルゴリズムの要素と
して行われる追加処理である。例えば、そのような処理は全く不必要な追加の数
理的演算の実行を含み得る。その上、その処理は不必要な、すなわちアルゴリズ
ムの通常の機能に必要とされない、メモリへの格納を含み得る。同様に、追加処
理の1つは、多くの暗号アルゴリズムの一部として、しばしば行われる、モジュ
ラー削減演算を含み得る。可能な場合、アルゴリズムの必要なステップを行うの
と同じ回路を用いて、不必要なステップを同様に行うことにより、偽装が得られ
る。そのような回路の使用は、追加資源の使用を減少し、そして同様のパワーお
よび予想し得ない時間使用のシグニチャーを生成する。なぜなら、同じ構成要素
を用いて必要な処理および不必要な処理を達成するからである。エミュレートさ
れ得る他のタイプの処理は、当業者に明らかである。
【0013】 これらの追加演算を行うことによって得られる利益は、送信を処理(すなわち
データを復号化)するのに必要な時間および/または送信を処理するのに必要な
パワーを監視している攻撃者がだまされるという点にある。実行中の追加処理が
暗号アルゴリズムの一部として行われると期待される条件付きの処理である場合
に、特に真実である。例えば、秘密鍵システムにおけるモジュラー指数アルゴリ
ズムのアプリケーションが挙げられる。秘密鍵のビットの値に応じて乗算演算が
行われると想定される。例えば、秘密鍵のビットの値が「1」の場合、関連する
乗算演算が行われる。秘密鍵のビットの値が「0」の場合、関連する乗算は行わ
れない。したがって、攻撃者がこの対応する乗算演算が行われるか行われないか
を監視することにより、鍵を復号化しようとする。当業者が気付くように、様々
な個々のパワーアタックおよびタイミングアタックはそのような復号化を行うと
想定される。したがって、乗算はビットの値が「0」または「1」であるかどう
かを条件とするので、攻撃者はビットの値に関わらず乗算を常に行う処理によっ
てだまされる。特に同じ回路が使用される場合にあてはまる。この様態で、攻撃
者は乗算の結果が実際に使用されたのか、使用されなかったのか、迷うことにな
る。
【0014】 乗算が完了した後、行われる実際の演算をエミュレートすることにより、さら
にこの処理を進め得る。例えば、一旦必要な乗算が達成されると、乗算の結果の
、メモリへの格納がしばしば発生する。エミュレートされた(または不必要な)
乗算が行われた場合も、その結果がメモリに同様に格納され得る。メモリに格納
された結果はアルゴリズムによって必要とされないが、演算を行うのにパワーお
よび時間を使用することは、攻撃者が復号化鍵の値を復号化することを阻止する
のに役立つ。
【0015】 追加演算を実行してアルゴリズムの条件的局面の演算をシミュレートすること
により、偽装はさらに進め得る。例えば、不必要な場合にモジュラー削減演算を
行い、モジュラー指数アルゴリズムをさらにエミュレートし得る。これらの演算
のすべてを行う必要はないが、それらの演算のいくつか、少し、またはすべてを
使用することは処理の偽装を促進し、そして秘密鍵の値などの、暗号システムの
安全性の確保を促進する。
【0016】 図3は暗号システムが保護され得る様態をさらに説明する、本発明の実施形態
を示す。まず、暗号鍵を使用するモジュラー指数アルゴリズム等の暗号アルゴリ
ズムが適用され、送信が処理される(300)。例えば、復号化鍵を用いて送信
を復号化する。次いで、アルゴリズムの実行中に、鍵の値がチェックされる(3
04)。例えば、モジュラー指数アルゴリズムにおいて、二値鍵に含まれるビッ
ト値がチェックされる。次いで、チェックされた鍵の値に応じて、不必要な数理
的演算が、つまり、アルゴリズムの通常の演算では必要とされない数理的演算が
行われる(308)。次いで、アルゴリズムの実行をさらにエミュレートするた
めに、不必要な、メモリへのデータの格納が行われる(312)。
【0017】 ここで、図4を参照すると、本発明の実施形態を行うためのシステム400が
図示される。図4において、トランスミッター404がレシーバ408に送信4
06を送信する。レシーバ408はセットトップボックス416に結合される。
セットトップボックスは回路を用いて送信されたデータを処理する。前述のよう
に、回路はデータの暗号処理中にデータを処理するのに必要なパワー使用を偽装
するために演算可能である。さらに、前述のように、回路はデータの暗号処理中
に必要な時間使用を偽装するために演算可能である。セットトップボックスを用
いて本発明の目的を説明したが、本発明は暗号技術が使用される多くの異なるタ
イプの装置で使用し得る。例えば、セットトップボックスに加え、本発明は、デ
ジタルテレビ、PCMCIAカード等に使用し得る。本特許の目的上、そのよう
な装置は家電装置と言及されるべきである。
【0018】 好適には、回路は集積回路420を用いて実行される。図4において理解し得
るように、マイクロプロセッサ424等のプロセッサは集積回路上に配置され、
入力425を介して送信信号を受信する。プロセッサは第1のメモリ440に結
合される。プロセッサはまた、第2のメモリ444に結合され得る。プロセッサ
はまた、復号化コード428および隠匿コード432等の暗号コードを保有する
、プログラム格納領域に結合される。暗号コードは暗号鍵436を使用し、それ
はまたメモリの中に格納されるた状態で図示される。暗号コード428はプロセ
ッサ424による使用に適しており、プロセッサに暗号アルゴリズムを実行させ
る。しかし、同時に隠匿コード432も行われる。このようにして、アルゴリズ
ムの隠匿または偽装も達成しつつ、データの通常の処理が行われる。隠匿コード
432は、不必要な演算を行って送信の通常処理に必要なパワー使用および時間
使用を偽装する。様々な不必要な演算もまた行われ得る。例えば、前述のように
、隠匿コードの結果として、不必要な乗算がプロセッサによって行われ得る。同
様に、メモリへのデータの不必要な格納、または不必要なモジュラー削除演算が
行われ得る。しかし、これらの不必要な演算の全てを行って、アルゴリズムの必
要な処理をエミュレートすることにより、最良の偽装が達成され得る。
【0019】 暗号コードおよび隠匿コードはシステムの機能をよりよく説明するために、別
々の部分として図4に示される。しかし、当業者が理解するように、これらの2
つのコード部分は、通常、単一のプログラムの一部であることに留意されたい。
このようにして、隠匿コードによって必要とされるエミュレーション演算は、通
常の暗号処理における適切な時に行われる。
【0020】 暗号鍵436は通常、二値表示を有する。例えば、モジュラー指数アルゴリズ
ムにおいて、暗号鍵の各ビットはモジュラー乗算演算が行われるべきかどうかを
示す。ある実施形態において、これらのビットの1つがモジュラー乗算が必要で
はないと示した場合に、隠匿コードはエミュレートされたモジュラー乗算演算を
プロセッサに行わせるように演算可能である。この様態で、攻撃者はだまされて
、モジュラー乗算が実際に行われたので、ビットの値が実際の値と違っていたと
考える。
【0021】 第2のメモリ444は、メモリへの格納をエミュレートするために使用され得
る。追加メモリがなくても、エミュレートされたメモリへの格納を当業者のメモ
リによって成し得ると想定されるが、メモリ444はこの点を実証する助けとな
る。すなわち、実際の暗号処理が第1のメモリ440を使用するのに対して、第
2のメモリ444はメモリへの不必要な格納が必要な場合に使用され得る。この
様態で、メモリへの格納に起因するパワー使用によって攻撃者はだまされる。し
かし、同時に、メモリ440に格納される暗号ルーチンに必要なデータは崩壊さ
れない。したがって、少量のメモリの追加で、暗号アルゴリズムはエミュレート
され得、大量の余分な回路の追加なしに、安全性が維持または増強され得る。
【0022】 図5は、ある実施形態におけるメモリの配置においてより詳細な外観を提供す
る。図5は、モジュラー指数アルゴリズムを参照して説明される。モジュラー指
数アルゴリズムにおいて、値Mはまず2乗され、次いでMを2乗して得られた値
について、整数nによるモジュラー削減が行われる。次いで、アルゴリズムの鍵
の二値表示に含まれる対応するビットの値に応じて、モジュラー削減の結果がM
倍に乗算され、そして最後に、再び整数nによってモジュラー削減される。例え
ば、値「1」が乗算をすることを示すとし、そして値「0」が乗算をしないこと
を示すと仮定する。その場合、適用可能なビットの値が「1」であるとすると、
値((M×M)mod n)はM倍に乗算され、次いでさらにnによるモジュラ
ー削減が行われる。この処理はアルゴリズムの鍵に含まれる全てのビットに対し
て行われる。結果的に、図5は、様々な値を格納してアルゴリズムを達成するた
めに必要な、メモリブロックを実証する。Mの最初の値は、メモリロケーション
504に格納される。この例の目的上、このメモリロケーションの長さは102
4ビットであると示される。その後、Mは2乗が達成され、その長さが2048
ビットであると示される、メモリロケーション508に格納される。次いで、n
によってモジュラー削減された結果がメモリロケーション512に格納され得る
。この結果はCiaとして、且つ1024ビットの長さとして図5に示される。
【0023】 この段階で、もし鍵のビットの値が「1」(モジュラー乗算を意味する)であ
る場合、Ciaの値はM倍に乗算され、メモリロケーション508に格納される。
次いで、この値はnによってモジュラー削減され、再びロケーション512に格
納される(Ciaの前の値と置換される)。しかし鍵に含まれるビットの値が「0
」である場合、モジュラー乗算は必要ではない。しかし、攻撃者をだますために
、通常の乗算/モジュラー削減/メモリへの格納という処理が実行される。その
結果、メモリロケーション512に格納されるCiaの値を壊すことなく、レジス
タ516を使用することでエミュレートされた処理を成し得る。これはCiaをM
倍に乗算し、その結果をメモリロケーション508に格納することにより成し得
る。この値はその後、nによってモジュラー削減され、そしてメモリロケーショ
ン512ではなく、メモリロケーション516に格納される。また、鍵のビット
の値が「0」ではなく「1」であるとエミュレートするまたは偽ると同時に、メ
モリロケーション512に格納された値Ciaを保存する。加えて、メモリロケー
ション516内のデータが単に上書きされ得るので、大量の余分なメモリを必要
としない。実際に、下記に示されるように、追加のメモリなしで、モントゴメリ
ーアルゴリズムが実行され得る。
【0024】 暗号処理を安全にするために、暗号アルゴリズムに含まれるすべての条件付き
演算がエミュレートされる必要はない。例えば、モントゴメリーアルゴリズムに
おいて、1024ビットの秘密鍵の中の最初の128個の「0」ビットだけが「
1」としてエミュレートされればよい、つまり、アタックに耐えるために、通常
「1」が必要とするいくつかの演算をエミュレートさせればよい。そのようなシ
ナリオを図6に示す。図6において、秘密鍵を上段に示す。下段は秘密鍵の中の
最初の128個の0に対応する位置を示す。したがって、それらの位置でエミュ
レーション処理が行われる。128ビット位置のエミュレーションは安全性とプ
ロセッサ速度との間に適切なトレードオフを加えると考えられる。様々なエミュ
レーションスキームに起因する、より詳細なペナルティの内訳については、「M
ethod and System for Countering a Po
wer Attack and Timing Attack on Inte
ger Factoring and Discrete Logarithm
Problem−Based Private Key Operation
s」という名称の、1999年6月11日に出願された米国特許出願第60/1
38,909号を参照のこと。本明細書中、この文献を参考として援用する。
【0025】 安全性は鍵に含まれる1つのビットのエミュレーションだけで改良されること
に留意されたい。したがって、安全性を得るために、128個以上のビットをエ
ミュレートする必要はない。128ビットのエミュレーションは、処理が完全に
崩壊するレベルまで資源を下げずに、セキュア送信を行うことが想定されるのみ
である。
【0026】 本発明のある実施形態は、エミュレートされた演算を反復の中でできる限り早
く利用して、鍵から使用する最初のビットを偽装する。鍵に含まれる使用される
最初のビットが偽装される場合、鍵を解読することは最も難しくなるので、この
実施形態は、エミュレートされた演算を、鍵に含まれる使用される最初の値に集
中させる。この様態で、鍵において後に行われるエミュレートされた演算に比べ
ると、鍵にアタックする時に、攻撃者は最大の挑戦に直面することになる。例え
ば、Paul C. Kocherによる、「Timing Attacks
on Implementations of Diffie−Hellman
n,RSA,DSS and Other Systems」に記載の説明を参
照のこと。
【0027】 本発明の別の実施形態は、固定された位置でエミュレートされた演算を使用す
る。この様態で、エミュレートされた演算が示される固定されたロケーションに
「0」ビットが存在する場合、エミュレートされた処理が実行される。これは図
7に示され、上段は鍵を示す。図7の下段は、鍵の対応する値が零である場合に
、エミュレートされた演算が実行され得るロケーションを示す。図7において、
エミュレートされた演算は、エミュレーションビット位置2、98、99、およ
び100に対応して行われる。図7はまた、128個未満のビットを利用してエ
ミュレーションをトリガする例を示す。また、この数字は1程度低くあり得るが
、依然、ある程度の安全性を提供する。
【0028】 図8,9、および10は、モントゴメリーアルゴリズムを使用して、本発明の
ある実施形態を行う例を示す。当業者が認識するように、モントゴメリーアルゴ
リズムはモジュラー削減を行うアルゴリズムのうちの1つである。まず、図8に
おいて、左手側の列にモントゴメリーアルゴリズムを行うための模範コードを示
す。右手側の列にはコードを行うための模範メモリ配列が示される。メモリの大
きさを図示するが、説明だけを目的としており、本発明を限定するものではない
。図8は、アルゴリズムが使用する変数および定数を格納するために、マイクロ
プロセッサのレジスタがどのように使用されるかを示す。さらに、一時保持レジ
スタを用いて、アルゴリズムが行われる間、結果を一時的に保持する。ステップ
7〜9は実施例の秘密鍵内の最初の128個の「0」をエミュレートする処理を
示す。これらの「0」のうちの1つが現れた場合、サブルーチン「MonPro
」を呼び出して、モントゴメリープロダクトを実行する。しかし、このモントゴ
メリープロダクトはアルゴリズムの結果を達成するために使用されない。むしろ
、それは捨てられる。にもかかわらず、秘密鍵のビットの値が「1」の場合に実
行される同じ演算が、プロセッサによって実行される。したがって、プロセッサ
の使用は、パワー使用および時間使用の量を偽装することにより、攻撃者を混乱
させる。
【0029】 同様に、図9は、図8の主要なプログラムによって呼び出されるサブルーチン
「BigMod」を達成するためのコードを示す。2k−1の大きさの一時レジ
スタもまた、示される。また、これらのレジスタの大きさは説明だけを目的とす
る。
【0030】 最後に、図10はBigModのMonProサブルーチンのコードを示す。
鍵に含まれるビットの値が「1」(ei==1)の場合、結果はTemp3から Registerへと移動される。しかし、鍵に含まれるビットの値が「0」
の場合、結果は単に一時レジスタへ移動され、格納されない。したがって、攻撃
者はエミュレートされたステップにだまされる、しかし、エミュレートされたス
テップはアルゴリズムの結果に影響しない。図8〜10は、追加メモリが必要で
はないことを例示する。したがって、これは追加資源を必要としないという点で
有利である。
【0031】 上記の記述は、当業者が整数分野の数学として理解するものに基づいて説明し
た。しかし、本発明は他の数理的システムにも及ぶことは留意されたい。例えば
、楕円カーブ暗号技術の基本的な数理分野も適用され得る。これらの他の分野の
数理的処理も、乗算、加算、および累乗算の処理を含む、整数分野の数学のもと
で行われる処理との、均等物または結果を有するということを当業者は理解する
。したがって、本特許はそのような結果および均等物を含有することを意図する
【0032】 本発明の実施形態の装置および方法、およびそれに伴う利点の多くが、上記の
記載から理解されると思われる。上文に記述される形式は単に好ましいまたは模
範的な実施形態であり、構成要素の形態、構成、および配置は、本発明の趣旨お
よび範囲から逸脱することなく、または材料の利点を犠牲にすることなく、様々
に変更し得ることは明らかである。本発明は復号化処理の領域を強調して説明し
たが、他の処理も意図しており、復号化処理は単に有益な例を提供するにすぎな
いことを理解されたい。
【図面の簡単な説明】
【図1】 図1は、本発明の一実施形態を実施する方法を示すフローチャートを示す。
【図2】 図2は、パワー使用および時間使用を偽装する一実施形態を示すフローチャー
トを示す。
【図3】 図3は、どのようにしてパワー使用および時間使用が偽装され得るかを示す、
本発明の別の実施形態のフローチャートを示す。
【図4】 図4は、本発明の一実施形態を実施するためのシステムのブロック図を示す。
【図5】 図5は、本発明の一実施形態として、モジュラー乗算を行うためのメモリ記憶
位置のブロック図を示す。
【図6】 図6は、本発明の一実施形態において使用される秘密鍵の二値表示、および秘
密鍵内の最初の128個の零に対してエミュレートされた演算が行われるビット
の値の一を示す。
【図7】 図7は、本発明の一実施形態において使用される秘密鍵の二値表示と、秘密鍵
内のビットの値が零の場合、どこで所定のエミュレートされた演算が行われるか
の表示とを一緒に示す。
【図8】 図8は、モントゴメリーアルゴリズムを偽装するために本発明がどのように使
用され得るかの例を示す。
【図9】 図9は、モントゴメリーアルゴリズムを偽装するために本発明がどのように使
用され得るかの例を示す。
【図10】 図10は、モントゴメリーアルゴリズムを偽装するために本発明がどのように
使用され得るかの例を示す。
【手続補正書】
【提出日】平成13年12月12日(2001.12.12)
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,MZ,SD,SL,SZ,TZ,UG ,ZW),EA(AM,AZ,BY,KG,KZ,MD, RU,TJ,TM),AE,AG,AL,AM,AT, AU,AZ,BA,BB,BG,BR,BY,CA,C H,CN,CR,CU,CZ,DE,DK,DM,DZ ,EE,ES,FI,GB,GD,GE,GH,GM, HR,HU,ID,IL,IN,IS,JP,KE,K G,KP,KR,KZ,LC,LK,LR,LS,LT ,LU,LV,MA,MD,MG,MK,MN,MW, MX,MZ,NO,NZ,PL,PT,RO,RU,S D,SE,SG,SI,SK,SL,TJ,TM,TR ,TT,TZ,UA,UG,US,UZ,VN,YU, ZA,ZW (72)発明者 スプランク, エリック ジェイ. アメリカ合衆国 カリフォルニア 92009, カールスバッド, カイエン レーン 6421 (72)発明者 シモン, ダニエル ゼット. アメリカ合衆国 カリフォルニア 92131, サン ディエゴ, アフィニティー コ ート ナンバー19 11135 (72)発明者 タン, ローレンス ダブリュー. アメリカ合衆国 カリフォルニア 92014, デル マー, リュエット ル パルク ナンバーディー 13750 (72)発明者 クック, ローレンス アール. アメリカ合衆国 カリフォルニア 92124, サン ディエゴ, アンティークア ブ ールバード 6698 Fターム(参考) 5J104 AA41 NA02 NA42

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 データを処理する方法であって、 秘密鍵と共に使用する送信を受信する工程と、 該秘密鍵を用いることにより該送信を処理する工程と、 該送信の該処理を行うのに必要なパワー使用を偽装する工程と、 その一方で、該送信の該処理を行うのに必要な時間使用を偽装する工程と、 を含む方法。
  2. 【請求項2】 データを処理する方法であって、 前記送信に数理的アルゴリズムを実行することにより該送信を処理する工程と
    、 該アルゴリズムに加えて、追加の数理的プロセスを実行する工程であって、該
    追加の数理的プロセスは、該処理にとって不必要である、工程と、 該追加の数理的プロセスを実行することにより、要求される前記パワー使用お
    よび要求される前記時間使用を偽装する工程と、 を含む、請求項1に記載の方法。
  3. 【請求項3】 前記追加の数理的プロセスを処理する工程が、乗算を行う工
    程を含む、請求項2に記載のデータを処理する方法。
  4. 【請求項4】 メモリへのデータの不必要な格納を実行する工程をさらに含
    む、請求項3に記載のデータを処理する方法。
  5. 【請求項5】 前記要求されるパワー使用および要求される時間の量を前記
    偽装する工程が、モジュロ削減演算を実行する工程を含む、請求項2に記載のデ
    ータを処理する方法。
  6. 【請求項6】 前記送信を前記処理する工程が、 条件付き乗算を含むアルゴリズムを使用する工程を含み、 該方法が、 該条件が満たされない場合に、該条件付き乗算の少なくとも1つを実行する工
    程をさらに含む、請求項1に記載のデータを処理する方法。
  7. 【請求項7】 数的表示を有する暗号鍵を前記秘密鍵として使用する工程を
    さらに含む、請求項6に記載のデータを処理する方法。
  8. 【請求項8】 前記アルゴリズムの前記条件付き乗算が、前記暗号鍵の二値
    表示の少なくとも1つのビットの値によって決定される、請求項7に記載のデー
    タを処理する方法。
  9. 【請求項9】 前記少なくとも1つの前記条件付き乗算の前記少なくとも1
    つの結果をメモリに格納する工程をさらに含む、請求項6に記載のデータを処理
    する方法。
  10. 【請求項10】 前記送信を処理する工程が、モントゴメリーアルゴリズム
    を行う工程を含む、請求項1に記載のデータを処理する方法。
  11. 【請求項11】 暗号技術において使用する装置であって、該装置は、 プロセッサと、 送信を受信するための該プロセッサへの入力と、 該プロセッサに該送信を処理させる暗号コードと、 該プロセッサに不必要な演算を実行させて、該送信の処理中のパワー使用およ
    び時間使用の量を偽装する隠匿コードと、 を含む。
  12. 【請求項12】 前記装置が二値表示を有する秘密鍵をさらに含み、前記隠
    匿コードは、前記プロセッサに該秘密鍵のビットの値に基づいてエミュレートさ
    れた機能を実行させるように演算可能である、請求項11に記載の装置。
  13. 【請求項13】 前記不必要な演算が不必要な乗算を含む、請求項11に記
    載の装置。
  14. 【請求項14】 前記不必要な演算が、データをメモリに不必要に格納する
    ことをさらに含む、請求項13に記載の装置。
  15. 【請求項15】 前記暗号コードが、モントゴメリーアルゴリズムを実行す
    るコードを含む、請求項11に記載の装置。
  16. 【請求項16】 集積回路と、 符号化された送信を受信する該集積回路の入力と、 該入力に結合されたマイクロプロセッサと、 該符号化された送信を復号化するための、該マイクロプロセッサによる使用に
    適した復号化コードと、 該復号化された送信を復号化する際の、該マイクロプロセッサによるパワー使
    用および時間使用を偽装するための隠匿コードと、 を含む装置。
  17. 【請求項17】 前記コードを復号化する際に、前記マイクロプロセッサに
    よって使用される第1のメモリと、 前記隠匿コードによって得られる結果を格納する第2のメモリと、 をさらに含む、請求項16に記載の装置。
  18. 【請求項18】 データを処理する方法であって、 暗号化された送信を受信する工程と、 該暗号化された送信を復号化する工程と、 該復号化工程へのパワーアタックに抵抗しつつ、該復号化工程へのタイミング
    アタックに抵抗する工程と、 を含む、方法。
  19. 【請求項19】 データを処理する方法であって、 暗号化された送信を受信する工程と、 プロセッサを用いて乗算演算を実行する工程と、 該乗算演算で該送信を復号化する工程と、 該プロセッサを用いて不必要な乗算演算を実行する工程と、 該不必要な乗算演算による該復号化に必要なパワー使用を偽装する工程と、 該不必要な乗算演算による該復号化に必要な時間使用を偽装する工程と、 を含む、方法。
  20. 【請求項20】 家電装置と、 データを処理する、該家電装置内に配置された回路と、 を含み、 該回路は、該データを処理するのに必要なパワー使用の量を偽装するように
    演算可能であり、 該回路は、該データを処理するのに必要な時間使用の量を偽装するように演
    算可能である、 装置。
  21. 【請求項21】 暗号化された送信を受信する工程と、 該送信を復号化する工程と、 該送信を復号化するのに必要なパワー使用を偽装する工程と、 該送信を復号化するのに必要な時間の量を偽装する工程と、 を含み、 該送信を復号化する工程は、 該暗号化されたメッセージに対して、数理的アルゴリズムを実行する工程と
    、 該数理的アルゴリズムの一部として復号化鍵を使用する工程と、 を含み、 該パワー使用を偽装する工程および該時間の量を偽装する工程は、 追加の数理的処理を行う工程であって、該追加の数理的処理が、該復号化に
    不必要である、工程と、 メモリへのデータの不必要な格納を実行する工程と、 を含み、 該メモリへのデータの不必要な格納を実行する工程は、該復号化鍵のビットの
    値によって決定される、 復号化を行う方法。
  22. 【請求項22】 数理的アルゴリズムを行う工程が、モントゴメリーアルゴ
    リズムを実行する工程を含む、請求項21に記載の方法。
  23. 【請求項23】 暗号技術において使用される装置であって、該装置は、 家電装置と、 該家電装置内に配置されたマイクロプロセッサと、 暗号化された送信を受信するための該マイクロプロセッサの入力と、 該マイクロプロセッサに該送信を復号化させる復号化コードと、 該プロセッサに不必要な演算を実行させて、該送信を復号化する際に使用され
    るパワー使用および時間の量を偽装する、隠匿コードと、 二値表示を有する復号化鍵であって、該隠匿コードは、該復号化鍵のビットの
    値に基づいて該マイクロプロセッサにエミュレートされた機能を実行させるよう
    に演算可能である、復号化鍵と、 を含む装置。
  24. 【請求項24】 前記復号化コードが、モントゴメリーアルゴリズムを実行
    する、請求項23に記載の装置。
JP2001504109A 1999-06-11 2000-06-09 暗号演算に対するパワーアタックおよびタイミングアタックへの対策 Pending JP2003502905A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13890999P 1999-06-11 1999-06-11
US60/138,909 1999-06-11
US09/373,866 1999-08-13
US09/373,866 US6804782B1 (en) 1999-06-11 1999-08-13 Countermeasure to power attack and timing attack on cryptographic operations
PCT/US2000/015958 WO2000077973A2 (en) 1999-06-11 2000-06-09 Countermeasure to power attack and timing attack on cryptographic operations

Publications (1)

Publication Number Publication Date
JP2003502905A true JP2003502905A (ja) 2003-01-21

Family

ID=26836681

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001504109A Pending JP2003502905A (ja) 1999-06-11 2000-06-09 暗号演算に対するパワーアタックおよびタイミングアタックへの対策

Country Status (8)

Country Link
US (1) US6804782B1 (ja)
EP (1) EP1190525A2 (ja)
JP (1) JP2003502905A (ja)
KR (1) KR20020016638A (ja)
CN (1) CN1355974A (ja)
AU (1) AU770620B2 (ja)
CA (1) CA2374541A1 (ja)
WO (1) WO2000077973A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008141385A (ja) * 2006-11-30 2008-06-19 Oki Electric Ind Co Ltd 暗号方法、暗号装置および暗号プログラム
US7877577B2 (en) 2006-12-11 2011-01-25 Renesas Electronics Corporation Information processor and instruction fetch control method
JP2016009114A (ja) * 2014-06-25 2016-01-18 ルネサスエレクトロニクス株式会社 データ処理装置及び復号処理方法
JP2019515353A (ja) * 2016-05-04 2019-06-06 ジエマルト・エス・アー 暗号化べき乗アルゴリズムへのセーフ−エラーフォールトインジェクション攻撃に対する対策

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7092523B2 (en) 1999-01-11 2006-08-15 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
CA2258338C (en) * 1999-01-11 2009-02-24 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
US7599491B2 (en) 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
DE10000503A1 (de) * 2000-01-08 2001-07-12 Philips Corp Intellectual Pty Datenverarbeitungseinrichtung und Verfahren zu dessen Betrieb
US9323955B2 (en) * 2000-12-21 2016-04-26 Gemalto Sa Method for protecting a logic or mathematical operator installed in an electronic module with a microprocessor as well as the associated embedded electronic module and the system
FR2818847A1 (fr) * 2000-12-26 2002-06-28 St Microelectronics Sa Circuit logique a polarite variable
DE10101956A1 (de) * 2001-01-17 2002-07-25 Infineon Technologies Ag Verfahren zur Erhöhung der Sicherheit einer CPU
JP3902440B2 (ja) * 2001-10-29 2007-04-04 三菱電機株式会社 暗号通信装置
DE10202700A1 (de) * 2002-01-24 2003-08-07 Infineon Technologies Ag Vorrichtung und Verfahren zum Erzeugen eines Befehlscodes
WO2003075506A1 (en) * 2002-03-07 2003-09-12 Axalto Sa Method for making safe an electronic cryptography assembly with a secret key
DE10221409A1 (de) * 2002-05-14 2003-12-04 Infineon Technologies Ag Schaltung und Verfahren zur Durchführung einer Berechnung
FR2840083A1 (fr) * 2002-05-24 2003-11-28 St Microelectronics Sa Test d'un algorithme execute par un circuit integre
US7892087B1 (en) * 2002-12-02 2011-02-22 Sca Promotions, Inc. Authentication of game results
WO2004053685A1 (en) * 2002-12-12 2004-06-24 Arm Limited Instruction timing control within a data processing system
US7302056B2 (en) * 2003-06-30 2007-11-27 Lucent Technologies Inc. Method and system for determining sequence parameters to limit cycle attacks in timed release cryptography
US9633213B2 (en) * 2005-05-16 2017-04-25 Texas Instruments Incorporated Secure emulation logic between page attribute table and test interface
US20060259828A1 (en) 2005-05-16 2006-11-16 Texas Instruments Incorporated Systems and methods for controlling access to secure debugging and profiling features of a computer system
US7372290B2 (en) * 2005-10-04 2008-05-13 Stmicroelectronics, Inc. System and method for using dummy cycles to mask operations in a secure microcontroller
US20070150530A1 (en) * 2005-12-13 2007-06-28 Intel Corporation Resisting cache timing based attacks
US8321666B2 (en) 2006-08-15 2012-11-27 Sap Ag Implementations of secure computation protocols
EP1936527A1 (fr) * 2006-12-18 2008-06-25 Gemplus Procédé permettant de faire varier le nombre d'exécution de contre-mesures dans un code exécuté
US7936871B2 (en) * 2007-06-28 2011-05-03 Samsung Electronics Co., Ltd. Altering the size of windows in public key cryptographic computations
US7974409B2 (en) * 2007-06-28 2011-07-05 Samsung Electronics Co., Ltd. Changing the order of public key cryptographic computations
US8781111B2 (en) * 2007-07-05 2014-07-15 Broadcom Corporation System and methods for side-channel attack prevention
US7991162B2 (en) * 2007-09-14 2011-08-02 University Of Ottawa Accelerating scalar multiplication on elliptic curve cryptosystems over prime fields
JP5146156B2 (ja) * 2008-06-30 2013-02-20 富士通株式会社 演算処理装置
EP2367102B1 (en) * 2010-02-11 2013-04-10 Nxp B.V. Computer processor and method with increased security properties
DE102010028375A1 (de) * 2010-04-29 2011-11-03 Robert Bosch Gmbh Schutz vor kryptoanalytischen Seitenkanalattacken
US8635467B2 (en) 2011-10-27 2014-01-21 Certicom Corp. Integrated circuit with logic circuitry and multiple concealing circuits
US8334705B1 (en) 2011-10-27 2012-12-18 Certicom Corp. Analog circuitry to conceal activity of logic circuitry
US9773111B2 (en) * 2012-08-14 2017-09-26 Empire Technology Development Llc Software-based side-channel attack prevention
CN103051454A (zh) * 2012-12-19 2013-04-17 天地融科技股份有限公司 电子设备及其密码验证方法
US8909967B1 (en) * 2012-12-31 2014-12-09 Emc Corporation Technique for secure computation
US10693896B2 (en) 2015-01-14 2020-06-23 Virta Laboratories, Inc. Anomaly and malware detection using side channel analysis
US10210350B2 (en) * 2015-08-10 2019-02-19 Samsung Electronics Co., Ltd. Electronic device against side channel attacks

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02199561A (ja) * 1988-11-10 1990-08-07 Sgs Thomson Microelectron Sa 許可を得ていない保護データ検出に対する安全装置
JPH07239837A (ja) * 1993-12-21 1995-09-12 General Instr Corp Of Delaware 秘密保護マイクロプロセッサのためのクロック周波数変調
JPH1091531A (ja) * 1996-09-19 1998-04-10 Toshiba Corp セキュリティシステム
JPH10222065A (ja) * 1997-02-03 1998-08-21 Nippon Telegr & Teleph Corp <Ntt> 冪乗剰余演算方法及び装置
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
WO1999035782A1 (en) * 1998-01-02 1999-07-15 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus
JP2000259799A (ja) * 1999-03-09 2000-09-22 Hitachi Ltd Icカードと半導体集積回路装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619501A (en) 1994-04-22 1997-04-08 Thomson Consumer Electronics, Inc. Conditional access filter as for a packet video signal inverse transport system
US5920572A (en) 1995-06-30 1999-07-06 Divicom Inc. Transport stream decoder/demultiplexer for hierarchically organized audio-video streams
US5926647A (en) 1996-10-11 1999-07-20 Divicom Inc. Processing system with dynamic alteration of a color look-up table
US5923385A (en) 1996-10-11 1999-07-13 C-Cube Microsystems Inc. Processing system with single-buffered display capture
US5937067A (en) 1996-11-12 1999-08-10 Scientific-Atlanta, Inc. Apparatus and method for local encryption control of a global transport data stream
US5920626A (en) 1996-12-20 1999-07-06 Scientific-Atlanta, Inc. Analog/digital system for television services
US5991415A (en) * 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks
US6064740A (en) * 1997-11-12 2000-05-16 Curiger; Andreas Method and apparatus for masking modulo exponentiation calculations in an integrated circuit
AU6381799A (en) * 1998-06-03 2000-01-10 Cryptography Research, Inc. Secure modular exponentiation with leak minimization for smartcards and other cryptosystems

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02199561A (ja) * 1988-11-10 1990-08-07 Sgs Thomson Microelectron Sa 許可を得ていない保護データ検出に対する安全装置
JPH07239837A (ja) * 1993-12-21 1995-09-12 General Instr Corp Of Delaware 秘密保護マイクロプロセッサのためのクロック周波数変調
JPH1091531A (ja) * 1996-09-19 1998-04-10 Toshiba Corp セキュリティシステム
JPH10222065A (ja) * 1997-02-03 1998-08-21 Nippon Telegr & Teleph Corp <Ntt> 冪乗剰余演算方法及び装置
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
WO1999035782A1 (en) * 1998-01-02 1999-07-15 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus
JP2000259799A (ja) * 1999-03-09 2000-09-22 Hitachi Ltd Icカードと半導体集積回路装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008141385A (ja) * 2006-11-30 2008-06-19 Oki Electric Ind Co Ltd 暗号方法、暗号装置および暗号プログラム
US7877577B2 (en) 2006-12-11 2011-01-25 Renesas Electronics Corporation Information processor and instruction fetch control method
JP2016009114A (ja) * 2014-06-25 2016-01-18 ルネサスエレクトロニクス株式会社 データ処理装置及び復号処理方法
JP2019515353A (ja) * 2016-05-04 2019-06-06 ジエマルト・エス・アー 暗号化べき乗アルゴリズムへのセーフ−エラーフォールトインジェクション攻撃に対する対策

Also Published As

Publication number Publication date
KR20020016638A (ko) 2002-03-04
AU7469600A (en) 2001-01-02
CA2374541A1 (en) 2000-12-21
EP1190525A2 (en) 2002-03-27
WO2000077973A3 (en) 2001-07-12
WO2000077973A9 (en) 2002-07-11
US6804782B1 (en) 2004-10-12
WO2000077973A2 (en) 2000-12-21
CN1355974A (zh) 2002-06-26
AU770620B2 (en) 2004-02-26

Similar Documents

Publication Publication Date Title
JP2003502905A (ja) 暗号演算に対するパワーアタックおよびタイミングアタックへの対策
Messerges Securing the AES finalists against power analysis attacks
US6278783B1 (en) Des and other cryptographic, processes with leak minimization for smartcards and other cryptosystems
EP1261903B2 (en) Method of authenticating users of software
EP1191739B1 (en) Stream cipher encryption application accelerator and methods thereof
US20130016834A1 (en) Security countermeasures for power analysis attacks
JP7206324B2 (ja) 暗号アルゴリズム向けのワンタイムの中国剰余定理のべき乗のためのシステムおよび方法
JP5823639B2 (ja) ブール演算および算術演算を用いる暗号アルゴリズムへのサイドチャネル解析に対する対策方法
EP0950302A1 (en) Public key cryptographic apparatus and method
US7000111B1 (en) Method for masking secret multiplicands
WO1995006373A1 (en) Method and apparatus for decryption using cache storage
JP2003533752A (ja) 暗号法及び装置
CA2259089C (en) Method and apparatus for masking cryptographic operations
EP2738973A1 (en) System and method for cryptography using multiplicative masking using simultaneous exponentiation techniques
US20040184604A1 (en) Secure method for performing a modular exponentiation operation
US7454625B2 (en) Method and apparatus for protecting a calculation in a cryptographic algorithm
US20040260931A1 (en) Method and apparatus for protecting an exponentiation calculation by means of the chinese remainder theorem (CRT)
US9942038B2 (en) Modular exponentiation using randomized addition chains
Preneel Cryptanalysis of message authentication codes
JP2003521010A (ja) 公開鍵暗号アルゴリズムを用いる電子構成品におけるモジュラべき乗演算アルゴリズム
EP1933496A2 (en) Improved DES and other cryptographic processes with leak minimization for smartcards and other cryptosystems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100831

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101129

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101227

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110128

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110204

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110420