JP5693927B2 - 故障利用攻撃の検出方法及び検出装置 - Google Patents

故障利用攻撃の検出方法及び検出装置 Download PDF

Info

Publication number
JP5693927B2
JP5693927B2 JP2010256159A JP2010256159A JP5693927B2 JP 5693927 B2 JP5693927 B2 JP 5693927B2 JP 2010256159 A JP2010256159 A JP 2010256159A JP 2010256159 A JP2010256159 A JP 2010256159A JP 5693927 B2 JP5693927 B2 JP 5693927B2
Authority
JP
Japan
Prior art keywords
data
signature
data elements
generating
blinding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010256159A
Other languages
English (en)
Other versions
JP2011109662A (ja
Inventor
テグリア ヤニク
テグリア ヤニク
Original Assignee
エス テ マイクロエレクトロニクス(ローセット)エス アー エス
エス テ マイクロエレクトロニクス(ローセット)エス アー エス
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エス テ マイクロエレクトロニクス(ローセット)エス アー エス, エス テ マイクロエレクトロニクス(ローセット)エス アー エス filed Critical エス テ マイクロエレクトロニクス(ローセット)エス アー エス
Publication of JP2011109662A publication Critical patent/JP2011109662A/ja
Application granted granted Critical
Publication of JP5693927B2 publication Critical patent/JP5693927B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/83Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Injection Moulding Of Plastics Or The Like (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

本発明は、故障利用攻撃(Fault Attack)を検出するための方法及び装置に関し、具体的には、シグネチャに基づく検出を実現するための方法及び装置に関する。
集積回路は、認証キー、シグネチャ等の扱うデータのセキュリティの観点から、または、暗号化アルゴリズム若しくは復号化アルゴリズム等の利用するアルゴリズムの観点から敏感であると考えられる回路系を備えることができる。そのような情報は、秘密にされることが要求され、つまり、該情報は、第三者または未許可の回路に伝達されるべきではなく、また、第三者または未許可の回路によって検出可能であってはならない。
情報の処理中に使用される集積回路のゾーンを検出する際には、該集積回路によって扱われる情報を侵害する共通のプロセスが存在する。このことのために、集積回路は、作動され、または、機能的環境に置かれ、符号化すべきデータパケットが入力に導かれる。データが処理されている間、集積回路の表面にはレーザ光が照射されて、集積回路の機能に故障が注入される。並行して、集積回路の出力を解析することにより、データを処理する集積回路のゾーンを判断することができる。それらのゾーンを突き止めると、侵害者は、処理されている機密データを判断するために、それらのゾーンに攻撃を集中させることができる。
シグネチャは、故障利用攻撃から集積回路を保護する一つの方法をもたらす。シグネチャは、アルゴリズムによって用いられる1つ以上のデータ値に基づいて生成される。そして、シグネチャは、同じデータ値がそのアルゴリズムによって用いられた後に、その同じデータ値に対して生成される。2つのシグネチャの違いが、攻撃の発生を示すことになる。一旦、検出回路がそのような攻撃を検出した場合、検出回路は、集積回路をリセットする、及び/またはカウンタをインクリメントする等の対抗手段を講じ、それにより、一旦、ある一定数の障害が検出されたときに、この集積回路は恒久的に休止状態になる。
サイドチャネル攻撃は、例えば、ある回路の消費電力を測定することを伴う違う種類の攻撃である。ブラインディング(Blinding)は、サイドチャネル攻撃から回路を保護する一つの方法をもたらす。ブラインディングは、擬似乱変数を用いて、非破壊的な方法で、アルゴリズムの入力を変えることを含む。
同じ群のデータ値を用いてシグネチャを生成して故障利用攻撃を検出することができ、また、ブラインディングを実行して、サイドチャネル攻撃をより困難にすることができる装置を提供することが望ましい。しかしながら、これらの機能を兼ね備える有効な装置を実施するには難しい点がある。
本発明の目的は、従来技術における1つ以上の問題に少なくとも部分的に対処することが可能である故障利用攻撃を検出するための方法及び装置を提供することにある。
本発明の故障利用攻撃を検出する方法は、複数のブラインディング値を提供するステップ、第1の群のデータ要素、及び、前記第1の群の少なくとも1つのデータ要素と前記ブラインディング値のうちの少なくとも1つとの間で排他的論理和を実行することによって生成された少なくとも1つの追加的データ要素を有するデータ要素からなる第1のセットを生成するステップ、前記第1のセットの各データ要素と前記複数のブラインディング値のうちの選択した1つとの間の排他的論理和に対応するデータ要素からなる第2のセットを生成するステップ、前記第1のセットのデータ要素の各々の間で可換演算を実行することにより、第1のシグネチャを生成するステップ、前記第2のセットのデータ要素の各々の間で可換演算を実行することにより、第2のシグネチャを生成するステップ、並びに、前記第1のシグネチャと第2のシグネチャとを比較して、故障利用攻撃を検出するステップを備えることを特徴とする。
本発明の方法は、前記少なくとも1つの追加的データ要素を生成する際に、前記第1の群のデータ要素の各データ要素と前記複数のブラインディング値の各々との間で排他的論理和を実行することにより、データ要素からなる複数の追加的群を生成し、少なくとも1つの追加的群のうちの少なくとも1つのデータ値を選択して、少なくとも1つの追加的データ要素を生成することを特徴とする。
本発明の方法は、前記データ要素からなる少なくとも1つの追加的群を生成する際に、前記第1の群のデータ要素の各データ要素と前記ブラインディング値のうちの2つの各組合せとの間で排他的論理和を実行することを特徴とする。
本発明の方法は、前記第1のセットの各データ要素と前記複数のブラインディング値のうちの選択した1つとの間で排他的論理和を実行することにより、前記第1のセットの各データ要素をブラインディングすることによって、データ要素からなる前記第2のセットは生成されることを特徴とする。
本発明の方法は、前記第1の群の各データ要素と前記複数のブラインディング値のうちの選択した1つとの間で排他的論理和を実行し、且つ、前記ブラインディングされた群のデータ要素のうちの少なくとも1つのデータ要素と前記ブラインディング値のうちの少なくとも1つとの間で排他的論理和を実行することにより、前記第1の群のデータ要素をブラインディングして、データ要素からなるブラインディングされた群を生成することによって、データ要素からなる前記第2のセットは生成されることを特徴とする。
本発明の方法は、前記少なくとも1つの追加的データ要素を選択する際に、ブラインディングされた各群の各データ値に対して、前記データ値が既に前記第2のセット内に存在するか否かを判断し、前記データ値が前記第2のセット内に存在しない場合には前記データ値を前記第2のセットに追加することを特徴とする。
本発明の方法は、前記少なくとも1つの追加的データ要素を選択する際に、前記第2のセットに追加された各データ値を使用不能としてタグ付けし、前記データ値が既に前記第2のセット内に存在する場合には、前記データ値が使用不能としてタグ付けされているか否かを判断し、前記データ値が使用可能でないときには、前記データ値を使用不能としてタグ付けし、前記データ値が使用可能である場合には、前記データ値を前記第2のセットに追加することを特徴とする。
本発明の方法は、前記第1のシグネチャ及び第2のシグネチャを生成する際に、前記データ要素からなる対応するセットの各データ要素間で排他的論理和を実行することを特徴とする。
本発明の方法は、前記第1のシグネチャ及び第2のシグネチャを生成する際に、前記データ要素からなる対応するセットの各データ要素を一緒に加算することを特徴とする。
本発明の方法は、前記第1のシグネチャ及び第2のシグネチャを生成する際に、前記データ要素からなる対応するセットの各データ要素を一緒に乗算することを特徴とする。
本発明の故障利用攻撃を検出する装置は、複数のブラインディング値を格納する記憶装置、第1の群のデータ要素、及び、前記第1の群の少なくとも1つのデータ要素と前記ブラインディング値のうちの少なくとも1つとの間で排他的論理和を実行することによって生成された少なくとも1つの追加的データ要素を有するデータ要素からなる第1のセットを生成し、また、前記第1のセットの各データ要素と前記複数のブラインディング値のうちの選択した1つとの間の排他的論理和に対応するデータ要素からなる第2のセットを生成する計算手段、前記第1のセットのデータ要素の各々の間で可換演算を実行することによって第1のシグネチャを生成し、また、前記第2のセットのデータ要素の各々の間で可換演算を実行することによって第2のシグネチャを生成するシグネチャ手段、並びに、前記第1のシグネチャと第2のシグネチャとを比較して故障利用攻撃を検出する比較器を備えることを特徴とする。
本発明の装置は、前記第1のセットの少なくとも1つのデータ要素に基づく演算を実行する関数器をさらに備え、前記関数器は、秘密鍵に基づく暗号化または復号化の演算を実行するように構成されていることを特徴とする。
本発明の別の態様によれば、上記装置を備える集積回路、ICカードまたはICカードリーダが提供される。
本発明の上記及びその他の目的、特徴、態様並びに効果は、添付図面を参照して、限定ではなく例証として示されている実施形態の以下の詳細な説明から明らかになるであろう。
故障利用攻撃を検出してサイドチャネル攻撃から保護する一実施形態による回路を示すブロック図である。 図1の回路に用いられるデータ値を示す図である。 故障利用攻撃を検出してサイドチャネル攻撃から保護する他の実施形態による回路を示すブロック図である。 図3の回路に用いられるデータ値を示す図である。 故障利用攻撃を検出してサイドチャネル攻撃から保護する更に他の実施形態による回路を示すブロック図である。 図5の回路に用いられるデータ値を示す図である。 データセットを生成する手順を示すフローチャートである。 故障利用攻撃を検出する回路を備える電子装置を示すブロック図である。
明確にするために、本発明の理解に役立つステップおよび構成要素のみが示されており、それらについて詳細に説明する。具体的には、1つ以上の故障注入の検出時に、集積回路をリセットし、または、集積回路を休止状態にする回路系は詳述されておらず、本発明は、そのような回路に適用可能である。さらに、保護される集積回路の主要な機能は詳細に説明されておらず、本発明は、暗号化または復号化等の何らかの敏感な機能、または、機密データを含む他の機能を実施する集積回路に適合する。
図1は、例えば、暗号鍵等の機密データを含むアルゴリズムを実行する関数器102を備える回路100(装置)を示す。本実施の形態において、関数器102は、入力ライン104上で鍵Kを受取る。
データ値D1 〜DN からなる群は、ブラインディング部108へのライン106上に供給され、ブラインディング部108は、自身への入力ライン110に供給されたブラインディング値Rに基づいて、それらのデータ値に対してブラインディングアルゴリズムを適用する。ブラインディング値Rは、例えば、擬似乱数値である。次いで、ブラインディングされたデータ値D1'〜DN'が、関数器102へのライン112上に供給される。関数器102は、ブラインディングされたデータ値D1'〜DN'を用いるアルゴリズムを実行して結果Cを出力し、その結果Cは、暗号化若しくは復号化されたデータブロック、または他の値とすることができる。
ブラインディングされたデータ値D1'〜DN'は、関数器102で用いられる間、例えば、レジスタ(図1には図示せず)に格納される。関数器102によるアルゴリズムの実行中の様々な段階において、及び/またはこのアルゴリズム実行の終了時に、ブラインディングされたデータ値D1'〜DN'は、シグネチャ部116へのライン114上に出力される。また、元のデータ値D1 〜DN は、ライン118でシグネチャ部に供給される。
シグネチャ部116は、元のデータ値D1 〜DN に基づいてシグネチャS1 を生成するとともに、ブラインディングされたデータ値D1'〜DN'に基づいてシグネチャS2 を生成する。そして、シグネチャS1 及びS2 は、比較器120によって比較され、比較器120は、これらのシグネチャが一致するか否かを示す出力を出力ライン122に与える。
ブラインディング部108によって適用されたブラインディングアルゴリズムは、例えば、ブラインディング値Rとデータ値D1 〜DN の各々との間に適用されたXOR関数である。しかし、故障利用攻撃がない場合に、データ値からなる両群に適用されるシグネチャ関数を選択して、同じ結果を得るには問題がある。例えば、図2は、この問題の実例を示す。
図2は、第1の行200において、Nが9に等しく、かつD〜Dがそれぞれ、12、1、0、128、245、0、1、2及び8に等しい場合のデータ値D〜Dの例を示す。このシグネチャを決める関数が、全てのデータ値の加算であると仮定すると、D〜Dのシグネチャは397に等しくなる。図2の第2の行202は、ブラインディングされたデータ値D’〜D’を示し、これらのデータ値は、この例において、データ値D〜Dの各々と値01との間にXOR演算を適用することによって得られる。この結果、データ値D’〜D’はそれぞれ、13、、1、129、244、1、0、3及び9に等しくなる。しかし、故障がないと仮定すると、データ値D’〜D’の合計、ひいてはシグネチャSは40に等しくなる。従って、故障がないにもかかわらず、シグネチャSとシグネチャSとの不一致が生じる場合、このシグネチャスキームは有効ではない。
図3は、故障利用攻撃を検出してサイドチャネル攻撃から保護する回路300(装置)を示す。回路300は、図1の回路と同じ構成要素の多くを備え、これらの構成要素はここでは詳細に説明しない。具体的には、この回路300は、関数器102、ブラインディング部108、シグネチャ部116及び比較器120を備える。
回路300は、入力ライン304でデータ値D1 〜DN を受取り、また、入力ライン306で複数のブラインディング値R1 〜RL を受取るプリブラインディング部302を更に備える。プリブラインディング部302は、データ値D1 〜DM からなるデータセットを生成する。データセットD1 〜DM は、データ値D1 〜DN と、1つの追加データ値DM 、または、複数の追加データ値DN+1 〜DM とを有する。データ値D1 〜DM は、ライン308でブラインディング部108へ供給されるとともに、ライン310でシグネチャ部116へ供給される。
ブラインディング部108によってXORブラインディング関数が適用された場合に、その結果が、新たな値を導入することなく、データ値D1 〜DM の順列になり、それに伴って、シグネチャ部116が、何らかの可換関数を用いて、有効なシグネチャを生成できるように、データセットD1 〜DM は生成される。このことは、例えば、図4を参照して詳細に説明するように実現される。
図4は、データセットD1 〜DM のデータ値の例を含むテーブルを示す。このテーブルの一番上の行は、データ値D1 〜DN を示し、この場合、それぞれ、十進値12、1、0、128、245、0、1、2及び8の二進等値に等しい9つの値D1 〜D9 を有する。これらのデータ値を、群Aと呼ぶことにする。この例においては、ブラインディング値R1 〜RL が、それぞれ、十進値01及び02の二進等値に等しい2つの値R1 及びR2 を有すると仮定する。
プリブラインディング部302は、データ群Aの値の各々と第1のブラインディング値01とのXORに等しいデータ値“A+1”からなる新たな群を生成する(符号“+”は、本願明細書において、関数XORを示す)。この新たな群は、図4のテーブルの第2の行に示されており、第2の行の値は、13、0、1、129、244、1、0、3及び9である。また、プリブラインディング部302は、データ群Aの値の各々と第2のブラインディング値02とのXORに等しいデータ値“A+2”からなる新たな群も生成する。この新たな群は、図4のテーブルの第3の行に示されており、第3の行の値は、14、3、2、130、247、2、3、0及び10である。
図4の例においては、データ値“(A+1)+2”からなる追加的な群も生成される。これは、“A+3”に等しくて、データ群Aの値の各々と値03とのXORに等しい。図4の第4の行に示されている値は、15、2、3、131、246、3、2、1及び11である。この群は、ブラインディング値R1 〜RL の各々に対応するデータ値からなるセットのみが生成されるいくつかの実施形態の場合には、必ずしも生成されるとは限らない。
例えば、ブラインディング値〜Rのうちの2つからなる可能性がある各組合せに対応する行もまた、この組合せが、既に存在する行のブラインディング値に等しい場合を除いて生成される。図4の例においては、(A+1)+2=A+3が、既に生成されている行のいずれかとは等しくない。しかし、追加的なブラインディング値R =03も用いられている場合には、(A+1)+3はA+2に等しく、(A+1)+2はA+3に等しく、また、(A+2)+3はA+1に等しいので、行A+1、A+2及びA+3のみが生成されることになる。
従って、図4のテーブルは、それぞれ、ライン308及びライン310で、ブラインディング部108及びシグネチャ部116へ供給される値D1 〜DM を表す。ブラインディングがこのテーブルに適用された場合、その結果は、新たな値を何ら加えることがない、単なる行の置換となる。具体的には、例えば、値R1 及びR2 から擬似乱数的に選択されたブラインディング値Rが01に等しい場合、第1の行は、A+1になり、一方、第2の行は、Aに等しい(A+1)+1になる。同様に、第3の行は、A+3に等しい(A+2)+1になり、第4の行は、A+2に等しい(A+3)+1に等しくなる。
データ値D〜D のブラインディングされたバージョンは、関数器102によって用いられる。図4の例においては、ブラインディング値が01か02かにより、それらのブラインディング値は、第2の行または第3の行の値となる。
図5は、故障利用攻撃を検出してサイドチャネル攻撃から保護する回路500を示す。
回路500は、図1の回路と同じ構成要素の多くを備え、それらの構成要素は、ここでは詳細に説明しない。図1の実施形態に対して、図5の実施形態の回路500は、データ値D1 〜DN を追加的なプリシグネチャ部504へ供給するライン502と、関数ユニット102とシグネチャ部116との間に配置され、シグネチャ生成前に、ブラインディングされたデータ値を処理する追加的なプリシグネチャ部506とを更に備える。次に、図5の回路500の動作を、図6を参照して説明する。
図6は、図5の回路に適用された場合の図4と同じ数値の例を示す。プリシグネチャ部504は、図4で生成されるのと同じ値D1 〜DM からなるテーブルを生成する。一方、プリシグネチャ部506は、ブラインディングされた値D1'〜DN'に基づいて、新たなテーブルを生成する。このテーブルの各行は、図4のテーブルと同様に、換言すれば、ブラインディング値の各々を系統的に適用することによって生成される。図6の例においては、ライン110上で受取るブラインディング値が02であり、それに伴って、値D1'〜DN'は、値D1 〜DN の各々と値02とのXORに対応すると仮定する。従って、符号A’が付いた図6のテーブルの第1の行は、A+2に等しく、これは、図4のテーブルの第3の行と同じである。図6のテーブルの第2の行は、A’+1に等しく、これは、A+3、換言すれば、図4のテーブルの第4の行に等しい。図6のテーブルの第3の行は、Aに等しいA’+2、換言すれば、図4のテーブルの第1の行に等しい。そして、図6のテーブルの第4の行は、A+1に等しい(A’+1)+2、換言すれば、図4のテーブルの第2の行に等しい。
従って、図6のテーブルの値は、図4のテーブルの値の置換であり、そのため、シグネチャ部116は、可換シグネチャアルゴリズムを、データ値の両セットに適用することによって、故障を有効に検出することができることは明らかである。
図3の実施形態と比較した場合の図5の実施形態の利点は、複数の故障利用攻撃の使用をより困難にするということである。具体的には、図3を標的とする複数の故障利用攻撃は、プリブラインディング部302及び関数器102を攻撃することができるのに対して、図5においては、そのような攻撃は、関数器102に加えて、プリシグネチャ部504及びプリシグネチャ部506の両方を標的にしなければならない。
図3又は図5のシグネチャ部116によって適用されたシグネチャは、データ値の順序が結果に影響を及ぼさないような可換関数である。そのような関数の実例は、値D’〜D’の各々の間に適評されたXOR関数、全ての値D’〜D’の合計、または、全ての値D’〜D’の乗算である。別な方法として、これらの関数のうちの1つ以上の組合せまたは変形を用いることもできる。
セットD1 〜DM に存在する追加的な値DN+1 〜DM の数は、繰り返される値を除去することによって少なくすることができる。例えば、図4の例において、第2の行の値“0”及び“1”は、シグネチャ比較の有効性を低下させることなく、完全に除去することができる。次に、どのデータ値を、セットD1 〜DM の初期値D1 〜DN に加えることができるかを判断する方法の例を、図7のフローチャートを参照して説明する。
図7は、データ値DN+1 〜DM を生成する方法を示す。この例において、Dは、群D1 〜DN のn番目の値を示し、Rp は、値R1 〜Rp からなるセットのp番目の値を示し、そのうちの最初のL個の値R1 〜RL は、Rがそこから選択されるブラインディング値のセットであり、値RL+1 〜Rp は、次のXOR計算の結果、すなわち、R1 +R(L+1) 、R1 +R(L+2) 、…R1 +Rp 、R2 +R(L+1) 、R+R(L+2) 、…R2 +R、…R(L-1) +RL に等しい追加的な組合せである。セットR1 〜Rp におけるどのような繰り返し値も、各値が一度だけ現れるように除去することができ、それにより、処理時間を低減できるようになる。文字Sは、値D1 〜DM からなるセットを示すのに用いられ、このセットは、当初は、値D1 〜DN だけを含む。
上記方法の最初のステップS1において、変数nおよびpは共に1に設定される。
次いで、ステップS2において、変数QはDn XORRpに等しく設定される。これは、当初、D1 と第1のブラインディング値R1 とのXORに等しい。
次のステップS3においては、QがセットSの要素であるか否か、換言すれば、この値がD1 〜DN の中に存在するか否かが判断される。存在しない場合には(S3:NO)、次のステップはS4であり、QがセットSに加えられ、この値が使用不能であることを示すタグが値Qに関連付けられる。このタグは、例えば、メモリ内のこの値に関連付けられたフラグ、または、この値が使用不能であることを示す何らかの他の手段とすることができる。
ステップS3において、QがSの要素であると判断された場合には(S3:YES)、ステップS5において、Sのこのデータ値が使用可能であるか否かがチェックされる。換言すれば、このデータ値が既に使用不能としてタグ付けされているか否かがチェックされる。使用可能でない場合(S5:NO)、次のステップは、上述したようなステップS4であり、QがセットSに加えられ、また、使用不能としてタグ付けされる。ステップS5において、Sのデータ値が、使用不能としてタグ付けされていないと判断された場合には(S5:YES)、次のステップはS6であり、データ値QはセットSに加えられず、その代わりに、Sのこの値は使用不能としてタグ付けされる。
ステップS4及びS6の後、次のステップはS7であり、pがPに等しいか否かが判断される。等しくない場合には(S7:NO)、ステップS8において、pはインクリメントされ、動作手順はステップS2へ戻る。ステップS7において、pがPに等しいと判断された場合には(S7:YES)、次のステップはS9となる。
ステップS9においては、nがNに等しいか否かが判断される。等しくない場合には(S9:NO)、ステップS10において、nがインクリメントされ、動作手順は、ステップS2へ戻る。nがNに等しい場合には(S9:YES)、プロセスは終了する。
図8は、マイクロプロセッサ802と、メモリ804と、入力値をマイクロプロセッサ802へ供給する入力ライン806とを備える電子装置800を示す。マイクロプロセッサ802は、出力ライン808上に出力値を生成する。更に、例えば、本願明細書に記載されているようなプリブラインディング部302またはプリシグネチャ部504及び506と、シグネチャ部116と、比較器120とを備える故障検出回路810が、マイクロプロセッサ802の出力に結合されて設けられている。この故障検出回路810は、シグネチャ間の不一致により、故障利用攻撃が検出された場合に、マイクロプロセッサ802へ戻る出力ライン812上に警告信号を生成する。この警告信号は、例えば、マイクロプロセッサ802のリセットを起動し、及び/または一旦、特定のカウント値に達した場合に、マイクロプロセッサ802の動作を恒久的に停止させるカウンタ(図8には図示せず)をインクリメントする。
電子装置800は、例えば、スマートカード等のIC(Integrated Circuit)カード、クレジットカード支払い端末等のICカードリーダ、セットトップボックス、PC若しくはラップトップ用ハードディスクドライブ、PC若しくはラップトップ、自動販売機、または、機密情報を扱うその他の装置である。
本願明細書に記載された実施形態の効果は、シグネチャの生成のために、本願明細書に記載されているようなデータ値D1 〜DM からなるセットを生成することにより、XOR演算を用いて、それらの値をブラインディングした結果が、それらの値の置換をもたらすということである。このことは、故障利用攻撃を検出するための類似のシグネチャを生成するのに用いることができるシグネチャアルゴリズムの幅広い選択につながる。
本発明の多数の具体的な実施形態を説明してきたが、当業者には、多くの変形及び変更を適用できることは明白である。
例えば、当業者には、本願明細書に記載された実施形態を、故障を検出するのにシグネチャ変化が用いられる広範囲の回路に適用できることは明白である。
更に、当業者には、拡張されたセットD1'〜DM'は、多数の追加的な値DN+1'〜DM'を有するが、いくつかのケースでは、1つだけ、またはごくわずかの追加的な値が与えられることは明白である。
更に、本願明細書に記載された実施形態は、ソフトウェア、ハードウェアまたはそれらの組合せで実施することができる。加えて、様々な実施形態に関連して説明した特徴は、代替的な実施形態において、どのような組合せでも組合わせることができる。
100,300,500 回路(装置)
102 関数器
108 ブラインディング部
116 シグネチャ部
120 比較器
302 プリブラインディング部
504,506 プリシグネチャ部

Claims (15)

  1. 故障利用攻撃を検出する方法であって、
    記憶装置が複数のブラインディング値を提供するステップ、
    計算手段が第1の群のデータ要素、及び、前記第1の群の少なくとも1つのデータ要素と前記ブラインディング値のうちの少なくとも1つとの間で排他的論理和を実行することによって生成された少なくとも1つの追加的データ要素を有するデータ要素からなる第1のセットを生成するステップ、
    前記計算手段が前記第1のセットの各データ要素と前記複数のブラインディング値のうちの選択した1つとの間の排他的論理和に対応するデータ要素からなる第2のセットを生成するステップ、
    シグネチャ手段が前記第1のセットのデータ要素の各々の間で可換演算を実行することにより、第1のシグネチャを生成するステップ、
    前記シグネチャ手段が前記第2のセットのデータ要素の各々の間で可換演算を実行することにより、第2のシグネチャを生成するステップ、
    比較器が前記第1のシグネチャと第2のシグネチャとを比較して、故障利用攻撃を検出するステップ、
    を備えることを特徴とする方法。
  2. 前記少なくとも1つの追加的データ要素を生成する際に、前記計算手段が、
    前記第1の群のデータ要素の各データ要素と前記複数のブラインディング値の各々との間で排他的論理和を実行することにより、データ要素からなる複数の追加的群を生成し、
    少なくとも1つの追加的群のうちの少なくとも1つのデータ値を選択して、少なくとも1つの追加的データ要素を生成することを特徴とする請求項1に記載の方法。
  3. 前記データ要素からなる複数の追加的群を生成する際に、前記計算手段が、
    前記第1の群のデータ要素の各データ要素と前記ブラインディング値のうちの2つの各組合わせとの間で排他的論理和を実行することを特徴とする請求項2に記載の方法。
  4. 前記計算手段が、前記第1のセットの各データ要素と前記複数のブラインディング値のうちの選択した1つとの間で排他的論理和を実行することにより、前記第1のセットの各データ要素をブラインディングすることによって、データ要素からなる前記第2のセット生成ることを特徴とする請求項1から3のいずれかに記載の方法。
  5. 前記計算手段が、前記第1の群の各データ要素と前記複数のブラインディング値のうちの選択した1つの間で排他的論理和を実行し、且つ、前記ブラインディングされた群のデータ要素のうちの少なくとも1つのデータ要素と前記ブラインディング値のうちの少なくとも1つとの間で排他的論理和を実行することにより、前記第1の群のデータ要素をブラインディングして、データ要素からなるブラインディングされた群を生成することによって、データ要素からなる前記第2のセット生成ることを特徴とする請求項1から3のいずれかに記載の方法。
  6. 前記少なくとも1つの追加的データ要素を選択する際に、
    各追加的群の各データ値に対して、前記計算手段が、前記データ値が既に前記第のセット内に存在するか否かを判断し、前記データ値が前記第のセット内に存在しない場合には前記データ値を前記第のセットに追加することを特徴とする請求項2又は3に記載の方法。
  7. 前記少なくとも1つの追加的データ要素を選択する際に、前記計算手段が、
    前記第のセットに追加された各データ値を使用不能としてタグ付けし、
    前記データ値が既に前記第のセット内に存在する場合には、前記データ値が使用不能としてタグ付けされているか否かを判断し、前記データ値が使用可能でないときには、前記データ値を使用不能としてタグ付けし、前記データ値が使用可能である場合には、前記データ値を前記第のセットに追加することを特徴とする請求項6に記載の方法。
  8. 前記第1のシグネチャ及び第2のシグネチャを生成する際に、前記シグネチャ手段が、前記データ要素からなる対応するセットの各データ要素間で排他的論理和を実行することを特徴とする請求項1から7のいずれかに記載の方法。
  9. 前記第1のシグネチャ及び第2のシグネチャを生成する際に、前記シグネチャ手段が、前記データ要素からなる対応するセットの各データ要素を一緒に加算することを特徴とする請求項1から7のいずれかに記載の方法。
  10. 前記第1のシグネチャ及び第2のシグネチャを生成する際に、前記シグネチャ手段が、前記データ要素からなる対応するセットの各データ要素を一緒に乗算することを特徴とする請求項1からのいずれかに記載の方法。
  11. 故障利用攻撃を検出する装置であって、
    複数のブラインディング値を格納する記憶装置、
    第1の群のデータ要素、及び、前記第1の群の少なくとも1つのデータ要素と前記ブラインディング値のうちの少なくとも1つとの間で排他的論理和を実行することによって生成された少なくとも1つの追加的データ要素を有するデータ要素からなる第1のセットを生成し、また、前記第1のセットの各データ要素と前記複数のブラインディング値のうちの選択した1つとの間の排他的論理和に対応するデータ要素からなる第2のセットを生成する計算手段、
    前記第1のセットのデータ要素の各々の間で可換演算を実行することによって第1のシグネチャを生成し、また、前記第2のセットのデータ要素の各々の間で可換演算を実行することによって第2のシグネチャを生成するシグネチャ手段、並びに、
    前記第1のシグネチャと第2のシグネチャとを比較して故障利用攻撃を検出する比較器、
    を備えることを特徴とする装置。
  12. 前記第1のセットの少なくとも1つのデータ要素に基づく演算を実行する関数器をさらに備え、前記関数器は、秘密鍵に基づく暗号化または復号化の演算を実行するように構成されていることを特徴とする請求項11に記載の装置。
  13. 請求項11または請求項12に記載の装置を備えることを特徴とする集積回路。
  14. 請求項13に記載の集積回路を備えることを特徴とするICカード。
  15. 請求項13に記載の集積回路を備えることを特徴とするICカードリーダ。
JP2010256159A 2009-11-18 2010-11-16 故障利用攻撃の検出方法及び検出装置 Active JP5693927B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0958141A FR2952735B1 (fr) 2009-11-18 2009-11-18 Procede et dispositif de detection d'attaques par injection de fautes
FR0958141 2009-11-18

Publications (2)

Publication Number Publication Date
JP2011109662A JP2011109662A (ja) 2011-06-02
JP5693927B2 true JP5693927B2 (ja) 2015-04-01

Family

ID=42244112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010256159A Active JP5693927B2 (ja) 2009-11-18 2010-11-16 故障利用攻撃の検出方法及び検出装置

Country Status (6)

Country Link
US (1) US8688995B2 (ja)
EP (1) EP2336930B1 (ja)
JP (1) JP5693927B2 (ja)
CN (1) CN102063586B (ja)
AT (1) ATE550726T1 (ja)
FR (1) FR2952735B1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2326042B1 (fr) * 2009-11-18 2013-04-03 STMicroelectronics (Rousset) SAS Procédé de détection d'une attaque par injection de fautes
EP2367316B1 (en) * 2010-03-12 2017-07-05 STMicroelectronics (Rousset) SAS Method and circuitry for detecting a fault attack
DE102010054446A1 (de) * 2010-12-14 2012-06-14 Giesecke & Devrient Gmbh Portabler Datenträger mit Fehlbedienungszähler
CN102967818B (zh) * 2011-08-31 2015-07-01 北京中电华大电子设计有限责任公司 一种故障检测电路
FR2984553B1 (fr) * 2011-12-15 2015-11-06 Proton World Int Nv Procede et dispositif de detection de fautes
US8977902B2 (en) * 2012-10-24 2015-03-10 International Business Machines Corporation Integrity checking including side channel monitoring
JP5863994B2 (ja) * 2012-12-11 2016-02-17 三菱電機株式会社 統合セキュリティ装置および統合セキュリティ装置に用いられる信号処理方法
US9628507B2 (en) * 2013-09-30 2017-04-18 Fireeye, Inc. Advanced persistent threat (APT) detection center
CN103530566B (zh) * 2013-10-21 2016-08-24 中国科学院深圳先进技术研究院 一种检测诱导错误攻击下安全芯片安全性能的系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999067919A2 (en) * 1998-06-03 1999-12-29 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
FR2841015A1 (fr) 2002-06-18 2003-12-19 St Microelectronics Sa Controle d'execution d'un programme
US7111126B2 (en) * 2003-09-24 2006-09-19 Arm Limited Apparatus and method for loading data values
JP3998640B2 (ja) * 2004-01-16 2007-10-31 株式会社東芝 暗号化及び署名方法、装置及びプログラム
FR2867635B1 (fr) * 2004-03-11 2006-09-22 Oberthur Card Syst Sa Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique
KR100725169B1 (ko) * 2005-01-27 2007-06-04 삼성전자주식회사 전력 분석 공격에 안전한 논리 연산 장치 및 방법
ATE405846T1 (de) * 2005-03-11 2008-09-15 Verigy Pte Ltd Singapore Fehlererkennung in komprimierten daten
US7856523B2 (en) * 2005-06-01 2010-12-21 Microsoft Corporation Random Access Memory (RAM) based Content Addressable Memory (CAM) management
US20070019805A1 (en) * 2005-06-28 2007-01-25 Trustees Of Boston University System employing systematic robust error detection coding to protect system element against errors with unknown probability distributions
FR2893796B1 (fr) * 2005-11-21 2008-01-04 Atmel Corp Procede de protection par chiffrement
KR100837270B1 (ko) * 2006-06-07 2008-06-11 삼성전자주식회사 스마트 카드 및 그것의 데이터 보안 방법
EP2048811A4 (en) * 2006-07-21 2015-10-21 Nec Corp ENCRYPTING DEVICE, PROGRAM AND METHOD
JP2008233683A (ja) * 2007-03-22 2008-10-02 Toshiba Corp 暗号処理装置及びプログラム
EP2326042B1 (fr) * 2009-11-18 2013-04-03 STMicroelectronics (Rousset) SAS Procédé de détection d'une attaque par injection de fautes

Also Published As

Publication number Publication date
EP2336930A1 (en) 2011-06-22
ATE550726T1 (de) 2012-04-15
FR2952735B1 (fr) 2011-12-09
US8688995B2 (en) 2014-04-01
US20110119762A1 (en) 2011-05-19
CN102063586A (zh) 2011-05-18
EP2336930B1 (en) 2012-03-21
CN102063586B (zh) 2015-11-25
FR2952735A1 (fr) 2011-05-20
JP2011109662A (ja) 2011-06-02

Similar Documents

Publication Publication Date Title
JP5693927B2 (ja) 故障利用攻撃の検出方法及び検出装置
US10491372B2 (en) Protection method and device against a side-channel analysis
US9571289B2 (en) Methods and systems for glitch-resistant cryptographic signing
US8850221B2 (en) Protection against side channel attacks with an integrity check
US20210256165A1 (en) Protecting parallel multiplication operations from external monitoring attacks
EP1398901B1 (en) Feistel type encryption method and apparatus protected against DPA attacks
JP5401477B2 (ja) 誤りに基づく攻撃から電子回路を保護する方法
US20100262840A1 (en) Method and devices for protecting a microcircuit from attacks for obtaining secret data
EP2180631A1 (en) Cryptographic algorithm fault protections
US20110274271A1 (en) Countermeasure method and devices for asymmetric encryption
CN106487499B (zh) Rijndael算法的保护
US20210152331A1 (en) Protecting polynomial hash functions from external monitoring attacks
Tunstall Smart card security
US8321691B2 (en) EMA protection of a calculation by an electronic circuit
US8720600B2 (en) Method of detecting a fault attack
JP4386766B2 (ja) データ処理装置における誤り検出
US20110126085A1 (en) Method of signature verification
WO2011061263A1 (en) Countermeasures against power attacks for the randomization of the exponent
JP2005045760A (ja) 暗号処理方法及び装置
JP4435593B2 (ja) 耐タンパー情報処理装置
CN113408012A (zh) 故障检测
JP6704071B2 (ja) 保護されていないハードウェアレジスタへの秘密データの安全なローディング
US11093656B2 (en) Change-tolerant method of generating an identifier for a collection of assets in a computing environment
Bruyninckx et al. Safe cryptographic random number generation using untrusted generators
TW202123046A (zh) 保護積體電路中敏感資料的方法及積體電路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140826

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140829

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20141028

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20141030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141106

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150204

R150 Certificate of patent or registration of utility model

Ref document number: 5693927

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250