JP5637446B2 - 回路故障検出装置、回路故障検出方法 - Google Patents

回路故障検出装置、回路故障検出方法 Download PDF

Info

Publication number
JP5637446B2
JP5637446B2 JP2010275596A JP2010275596A JP5637446B2 JP 5637446 B2 JP5637446 B2 JP 5637446B2 JP 2010275596 A JP2010275596 A JP 2010275596A JP 2010275596 A JP2010275596 A JP 2010275596A JP 5637446 B2 JP5637446 B2 JP 5637446B2
Authority
JP
Japan
Prior art keywords
input
value
circuit
group
algorithm
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
JP2010275596A
Other languages
English (en)
Other versions
JP2012122931A (ja
Inventor
悠 佐々木
悠 佐々木
一男 ▲崎▼山
一男 ▲崎▼山
和夫 太田
和夫 太田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
THE UNIVERSITY OF ELECTRO-COMUNICATINS
Nippon Telegraph and Telephone Corp
Original Assignee
THE UNIVERSITY OF ELECTRO-COMUNICATINS
Nippon Telegraph and Telephone 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 THE UNIVERSITY OF ELECTRO-COMUNICATINS, Nippon Telegraph and Telephone Corp filed Critical THE UNIVERSITY OF ELECTRO-COMUNICATINS
Priority to JP2010275596A priority Critical patent/JP5637446B2/ja
Publication of JP2012122931A publication Critical patent/JP2012122931A/ja
Application granted granted Critical
Publication of JP5637446B2 publication Critical patent/JP5637446B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)

Description

本発明は回路の故障の有無を検出することができる回路故障検出装置、回路故障検出方法に関する。
LSIの製造工程の何処かで製造途中のLSI中に異物が混入したなどの理由で、回路の一部に故障が発生することがある。これを初期不良といい、初期不良率の低下はすなわちLSIの製造歩留まりの向上を意味する。また、LSIの使用を続ける事でLSIが劣化(エージング)し、初期不良検査では正しく動いていた回路がその後の故障によって動作不良となることがある。これを経年劣化という。近年のLSI製造における微細化技術により、経年劣化は特に考慮すべき問題である。また、暗号LSI内部の秘密情報を入手する攻撃として故障利用攻撃があり、攻撃者が意図的に回路の一部に、永久的あるいは一時的に故障を発生させることもある。
LSIの故障を検出する方法として、テストパターンを用いる方法がある。テストパターンとは、LSIなどが要求仕様にしたがって動作するか否かを検証するために入力する電気信号などを指す。テストパターンを入力して得られた出力を観測して故障の有無を検証する。テストパターンにより検証できる性質の割合を網羅率と呼ぶ。網羅率を高めるためにはテストパターンを慎重に設計する必要がある。テストパターンを自動的に生成する方法としてATPG(Automatic Test Pattern Generation)が知られている。また、別の方法としてスキャンパスを用いる方法(スキャンパステスト)が知られている(非特許文献1)。以下にスキャンパステストの概略について説明する。LSIは一般にDFF(Delay Flip−Flop)の間に組み合わせ回路が挿入されることで構成されている。このDFFにセレクタ(マルチプレクサ)を付加し、DFF同士を直列につないでシフト・レジスタを構成する。このシフト・レジスタにテストデータを入力することで、DFFに任意の入力値を設定することができる。入力値を設定した後、DFFの接続を元に戻して動作させれば、回路の任意の状態を再現することができる。また、回路の通常の動作後にもう一度シフト・レジスタを動作させて、各DFFの出力値を外部に取り出すこともできる。このようにしてスキャンパステストを実行することにより、DFF間の回路の正しさを観測することができる。また、別の方法としてサイドチャネル情報を用いる方法がある(非特許文献2、3)。サイドチャネル情報とは、正規の入出力経路でない経路から観測できる情報のことを指し、具体的にはLSIなどの内部動作に応じて変化する電流、電圧、電磁波、処理時間などを指す。従来より、このサイドチャネル情報を用いて暗号を実装したLSI内部の秘密情報を取り出すサイドチャネル攻撃が知られている。
桜井至著、「LSI設計の基礎技術」、テクノプレス、平成11年、pp167-168. Paul Kocher,"Timing Attacks on Implementations of Diffie- Hellman,RSA,DSS,and Other Systems,"Crypto'96,USA,August18-1996,pp104-113. Jerome Di-Battista and Jean-Christophe Courrege and BrunoRouzeyre and Lionel Torres and Philippe Perdu,"When Failure Analysis Meets Side-Channel Attacks,"CHES2010,Santa Barbara,USA,September25-2010,pp188-202.
暗号アルゴリズムを実装したLSI(以下、暗号LSIという)の故障検出において上述の従来技術を用いることで以下の課題が発生する。テストパターンを用いる方法で高い網羅率のテストパターンを生成するためには、膨大な時間を要して膨大な量のテストパターンを生成する必要があり、テストコストの増大を招来する。スキャンパステストを用いる方法では、スキャンパスを悪用することで情報の漏えい、改ざんが可能となってしまう。また、このような情報の漏えい、改ざんを防止するために暗号LSIには、余計なデータフローを設けないように設計されているものも多く、このようなLSIではスキャンパステストが利用できない。サイドチャネル情報を用いる方法では、上述のサイドチャネル攻撃への各種対策が暗号LSIに施されているため、サイドチャネル情報から内部の信号状態を読み取ることが出来ない。このため、暗号LSIの故障検出方法として用いることができない。もしくは仮に出来たとしても解析時間が膨大になってしまう。
また、暗号LSIに限らず、例えば大規模なLSIの故障を検出しようとした場合でも、テストパターンを用いる方法では、膨大な時間を要して膨大な量のテストパターンを生成する必要があることに変わりはなく、テストコストの増大を招来する。スキャンパステストを用いる方法では、スキャンパスの実装に時間とコストがかかってしまう。また、サイドチャネル情報を用いる方法ではサイドチャネル情報の解析を行う機器が新たに必要となり余分な解析時間とコストがかかってしまう。本発明は、回路の内部データを漏えいさせることなく、LSI(暗号LSIを含む)の故障検出を低コストかつ簡易に実現する回路故障検出装置を提供することを目的とする。
本発明の回路故障検出装置が故障検出することのできる回路は、入力値Aと入力値Bとが互いに異なる場合に、入力値Aに対応する出力値Uと、入力値Bに対応する出力値Vとが互いに異なる可能性の高いアルゴリズムを実装しており、nビット(nは1以上の正の整数)の値を入出力する回路(以下、アルゴリズム実装回路という)であることを条件とする。また、本発明の回路故障検出装置は、検査値入力部と、故障検出部とを備える。検査値入力部は、アルゴリズム実装回路に、互いに異なる2個のnビットの検査値を1個ずつ入力できる。故障検出部は、検査値に対応するアルゴリズム実装回路の出力値のうち、互いに値が等しい出力値が検出された場合に、当該アルゴリズム実装回路が故障していると判定する。
本発明の回路故障検出装置によれば、故障検出時に回路の内部データを漏えいさせることがない。従ってスキャンパステストを使用することが出来ないような暗号LSIでも故障を検出することができる。またスキャンパステストが使用可能なLSIでも、回路の内部データを漏洩させることなく低コストかつ簡易に故障を検出することができる。
実施例1に係る回路故障検出装置の構成例を示すブロック図。 実施例1に係る回路故障検出装置の動作例を示すフローチャート。 実施例2に係る回路故障検出装置の構成例を示すブロック図。 実施例2に係る回路故障検出装置の動作例を示すフローチャート。 実施例2に係る回路故障検出装置の動作例を示すフローチャート。 実施例2における暗号LSIに入力される入力値群を説明する図。 実施例2における暗号LSI内でのデータフローを説明する図。 実施例2に係る回路故障検出装置が生成する入力値群を説明する図。 実施例2における暗号LSI内でのデータフローと故障検出を具体的に説明する図。
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
図1、図2を用いて実施例1に係る回路故障検出装置10について詳細に説明する。図1は実施例1に係る回路故障検出装置10の構成例を示すブロック図である。図2は実施例1に係る回路故障検出装置10の動作例を示すフローチャートである。本発明の回路故障検出装置10が故障検出することのできるアルゴリズム実装回路2は、入力値Aと入力値Bとが互いに異なる場合に、入力値Aに対応する出力値Uと、入力値Bに対応する出力値Vとが互いに異なる可能性の高いアルゴリズムを実装しており、nビット(nは1以上の正の整数)の値を入出力する回路であることを特徴とする。アルゴリズム実装回路2は上述の条件(入出力間の変換が一対一上への写像となる)を満たす可能性が高いアルゴリズムであればどんなアルゴリズムを実装したものでも良い。例えば、暗号アルゴリズムは、その性質上入出力間の変換が一対一上への写像となることが保障されている。従ってアルゴリズム実装回路2としては暗号アルゴリズムを実装した回路でもよい。
以下、本実施例に係る回路故障検出装置10の動作について詳細に説明する。本実施例の回路故障検出装置10は、検査値入力部11と、故障検出部12とを備える。検査値入力部11は、アルゴリズム実装回路2に、互いに異なる2個のnビットの検査値のうちの1個を入力する(S11)。故障検出部12は、検査値に対応するアルゴリズム実装回路2の出力値のうち、互いに値が等しい出力値が検出された場合に(S10aY)、当該アルゴリズム実装回路2が故障していると判定する(S12)。当然のことながら比較には2以上の出力値を要する。従って、検査値が1個だけ入力された状態では、この検査値に対応して出力される出力値も1個だけであるから比較はできない(S10aN、S10bN)。この場合ステップS11に戻り、次の検査値を1個入力して(S11)2個目の出力値を得る。出力値が2個以上得られるようになれば出力値同士の比較を開始する(S10a)。出力値の中に互いに値が等しい出力値が検出されなかった場合には(S10aN)、検査値2個全てに対する比較が終了していれば(S10bY)動作を終了する。一方、検査値2個全てに対する比較が終了していなければ(S10bN)、ステップS11に戻り、アルゴリズム実装回路2に、未入力の検査値を1個入力する(S11)。以後、検査値2個全てに対する比較が終了するか(S10bY)、故障と判定されるか(S12)のいずれかの事象が発生するまでステップS11、ステップS10a、ステップS10bが繰り返される。
本実施例の回路故障検出装置10によれば、故障検出時に回路の内部データを漏えいさせることがない。従ってスキャンパステストを使用することが出来ないような暗号LSIでも故障を検出することができる。またスキャンパステストが使用可能なLSIでも、回路の内部データを漏洩させることなく低コストかつ簡易に故障を検出することができる。本実施例の回路故障検出装置10によれば、従来のテストパターン、スキャンパステストなどと比べて、回路が複雑になった場合でも高速かつ簡易に故障箇所検出を行うことができる。また、本実施例の回路故障検出装置10を、暗号アルゴリズムを実装した回路の故障検出に用いれば、スキャンパステスト、サイドチャネル情報を用いずに、回路の故障を検出することが可能となるため、情報の漏えい、改ざん可能性のない安全な故障検出を実現できる。また、出力値のうち何れか二つが互いに等しくなった場合、ステップS11〜S10b間のループ処理を中断し(S10aY)、即座にアルゴリズム実装回路2が故障していると判定するため、必ずしも考えられる入力値のパターン全て(2個)を入力しなくて済む。故障が発見される最短のパターンは、2個の出力値の比較のみで等しい値が検出されるパターンである。従って、必ずしも入力値のパターン全てを入力しなくても良いため、全パターン検査と比較して故障検出に要する処理時間を短くすることが可能である。
次に図3、図4、図5を用いて実施例2に係る回路故障検出装置100について詳細に説明する。図3は本実施例に係る回路故障検出装置100の構成例を示すブロック図である。図4、図5は本実施例に係る回路故障検出装置100の動作例を示すフローチャートである。本実施例の回路故障検出装置100は、前述のアルゴリズム実装回路をP個(Pは2以上の正の整数)備える回路の故障を検出することを特徴とする。本実施例では、回路故障検出装置100が故障検出の対象とする暗号LSI20にはAES暗号アルゴリズムが実装されているものとして説明を進める。本実施例では前述のP個のアルゴリズム実装回路は、AES暗号におけるラウンドかぎとの排他的論理和を実行するアルゴリズムと、Sbox変換を実行するアルゴリズムとを組み合わせたアルゴリズムを実装した回路(以下、かぎ付きSboxという)のことを指す。本実施例ではかぎ付きSboxは、nビット(nは1以上の正の整数)の値を入出力することを特徴とする。本実施例の回路故障検出装置100は、P個のかぎ付きSboxに対して、順番に前述の検査値を入力してその出力(出力値群、n×Pビット)を観察することにより、何れかのかぎ付きSboxに故障があるか否かを検出する。もちろん、本実施例の回路故障検出装置100は、入出力間の変換が一対一上への写像となることが保障されているアルゴリズムを実装した回路をP個備える回路であればどんな回路の故障をも検出することができる。従って本実施例で用いられるAES暗号を実装した暗号LSI20は、回路故障検出装置100が故障を検出することのできる回路の一具体例、説明の分かりやすさのための単なる例示に過ぎない。よって本実施例で登場するAES暗号を実装した暗号LSI20は適宜他のLSIなどに代替可能である。以下に回路故障検出装置100の動作について詳細に説明する。
本実施例の回路故障検出装置100は、検査値入力部110と、故障検出部120とを備える。検査値入力部110は、入力グループ選択手段111と、検査値設定手段112と、入力値群生成入力手段113とを備える。故障検出部120は、出力値群比較手段121と、故障表示手段122とを備える。本実施例の回路故障検出装置100が故障検出の対象とする暗号LSI20は、P個のかぎ付きSbox21−1〜21−Pと、行列混合変換回路Q22とを備える。回路故障検出装置100の入力グループ選択手段111は、P個のかぎ付きSbox21−1〜21−Pと一対一に対応するP個の入力グループのうちのいずれの入力グループに検査値を入力するかを選択する(S111)。検査値設定手段112は、入力グループ選択手段111が選択した入力グループに互いに異なる2個のnビットの検査値を設定する(S112)。入力値群生成入力手段113は、入力グループ選択手段111が選択しなかった入力グループすべてに定数値を設定し(S113a)、当該定数値と検査値入力手段112が設定した2個の検査値のうちの一個とを併せてなるn×Pビットの入力値群を、検査値を互いに異ならせて2群生成し、当該生成された2群の入力値群を、入力グループ毎に、対応する各かぎ付きSboxに1群ずつ入力する(S113b)。以上が本実施例の回路故障検出装置100の検査値入力部110が暗号LSI20に対して行う検査値入力動作である(S111、S112、S113a、S113b)。暗号LSI20のかぎ付きSbox21−1〜21−Pは、入力されたnビットの入力値群をSubBytesと呼ばれるテーブルにて変換する。詳細には、かぎ付きSbox21−1〜21−Pは、入力値(検査値、定数値)をSubBytesテーブルに入力し、nビットの値を出力する非線形変換を行う。この非線形変換に似たものとして、ルックアップテーブルがある。次にかぎ付きSbox21−1〜21−Pは、非線形変換後のnビットの値に対してユーザが設定したかぎから作った情報である「ラウンドかぎ」との排他的論理和(XOR)をとる。このようにしてかぎ付きSbox21−1〜21−Pが生成したP個の中間生成結果を本実施例ではS置換結果と呼ぶ。ここで、Sbox21−1〜21−Pで使われる「ラウンドかぎ」は同じものとは限らない。これらP個のS置換結果に対し、行列混合変換回路Q22は、ShiftRows処理、MixColumn処理を行う。上述のかぎ付きSbox21−1〜21−Pおよび行列混合変換回路Q22が行う処理を1ラウンドとする。暗号LSI20はこのラウンドを複数回繰り返して出力値群を生成する。このとき出力値群は、入力値群と同じn×Pビットである。
以下に本実施例の回路故障検出装置100の検査値入力部120が、暗号LSI20が生成した出力値群に対して行う故障検出動作を説明する。回路故障検出装置100の出力値群比較手段121は、前記入力値群に対応して出力される出力値群同士を比較して(S121)、互いに値が等しい出力値群が検出された場合に(S100aY)、入力グループ選択手段111が選択した入力グループに対応するかぎ付きSbox、もしくはP個のS置換結果を全て利用して計算を行う行列混合演算回路Q22の何れかが故障していると判定する。この場合、故障表示手段122は、故障が疑われる箇所の所在を表示して(S122)、ステップS100cに移る。ここで、ステップS122を実行後は必ずしもステップS100cに移行して、他の未検出箇所について故障検出を行わなくても良い。例えば、図5に記載したように、故障表示手段122は、故障が疑われる箇所の所在を表示して(S122)、そのまま処理を終了しても良い。この場合は、他の未検出箇所の故障検出は行われない。
一方、出力値群同士を比較して(S121)、互いに値が等しい出力値群が検出されなかった場合には(S100aN)、その比較が2個の検査値全てに対して行われたか否かを判定する(S100b)。比較が2個の検査値全てに対して行われていた場合には(S100bY)ステップS100cに移り、入力グループ選択手段111が未選択の入力グループがあるか否か(つまり、未判定のかぎ付きSboxがあるか否か)を判定する(S100c)。未判定のかぎ付きSboxが存在する場合には(S100cY)、ステップS111に戻り、未判定のかぎ付きSboxの何れかに対応する入力グループを1つ選択し(S111)、以降、ステップS112以下の処理を繰り返す。一方、ステップS100cにおいて、未判定のかぎ付きSboxが存在しない場合には(S100cN)処理を終了する。一方、ステップS100bにおいて、出力値群の比較が2個の検査値全てに対して行われていなかった場合には、ステップS113bに戻り、未入力の入力値群のうち1群のみを選択して、暗号LSI20に入力する(S113b)。以降、ステップS113b以下の処理を繰り返す。
図6、図7、図8、図9を用いて、上述した本実施例の回路故障検出装置100の動作をさらに具体的に説明する。図6は本実施例における暗号LSI20に入力される入力値群を説明する図である。図7は本実施例における暗号LSI20内でのデータフローを説明する図である。図8は本実施例に係る回路故障検出装置100が生成する入力値群を説明する図である。図9は本実施例における暗号LSI20内でのデータフローと故障検出を具体的に説明する図である。まず図6を参照して、本実施例で暗号LSI20に入力される入力値群について詳細に説明する。本実施例では、P個のかぎ付きSbox21−1〜21−Pに入力値群を入力することとしているため、かぎ付きSbox21−1〜21−Pそれぞれと1対1に対応するP個の入力グループ9−1−1〜9−1−Pを設定する。かぎ付きSbox21−1〜21−Pにはnビットの値を入力することとしているため、P個の入力グループ9−1−1〜9−1−Pにはそれぞれnビットの値を1つずつ設定する。このようにしてnビットの値を入力グループごとにP個設定したものを入力値群9−1と呼ぶ。以下、入力グループ9−1−1〜9−1−Pにはそれぞれnビットの定数値C8−1−1、C8−1−2、C8−1−3、…、C8−1−Pが設定されて入力値群9−1が構成されているものとして話を進める。ここで、定数値C8−1−1、C8−1−2、C8−1−3、…、C8−1−Pはnビットの値であればなんでも良く、互いに値が異なっていても良いし、全て等しい値で構成されていても良い。
次に図7を参照して、図6で説明した入力値群9−1が本実施例の暗号LSI20に入力された場合の暗号LSI20内でのデータフローを詳細に説明する。入力値群9−1の暗号LSI20内への入力は次のように行われる。入力値群9−1の各入力グループ9−1−1〜9−1−Pに設定された定数値C8−1−1、C8−1−2、C8−1−3、…、C8−1−Pは、それぞれ自身の属する入力グループ9−1−1〜9−1−Pに1対1に対応付いたかぎ付きSbox21−1〜21−Pに入力される。例えば図7において、定数値C8−1−1は入力グループ9−1−1に対応付いたかぎ付きSbox21−1に入力される。定数値C8−1−2は入力グループ9−1−2に対応付いたかぎ付きSbox21−2に入力される。このようにして定数値C8−1−1、C8−1−2、C8−1−3、…、C8−1−Pは、かぎ付きSbox21−1〜21−Pに入力され、かぎ付きSbox21−1〜21−P内でそれぞれSubBytesテーブルの非線形変換、ラウンドかぎとの排他的論理和(XOR)を施される。かぎ付きSbox21−1〜21−Pの出力をそれぞれS置換結果D6−1−1〜D6−1−Pとする。S置換結果D6−1−1〜D6−1−PをまとめてS置換結果群6−1と呼ぶ。S置換結果群6−1は、次に行列混合変換回路Q22に入力され、行列混合変換回路Q22は、S置換結果群6−1に対してShiftRows処理、MixColumn処理を行う。上記かぎ付きSbox21−1〜21−Pおよび行列混合変換回路Q22が行う処理をラウンドと呼び、暗号LSI20はこのラウンドを複数回繰り返し、最終的に出力値E5−1−1、E5−1−2、E5−1−3、…、E5−1−Pからなる出力値群5−1を生成する。なお、暗号LSI20は、暗号のセキュリティの観点からラウンド毎の計算結果を外部から読み取れないように設計されているものとする。本実施例で用いられる暗号LSI20は、図6で説明した入力値群を入力として、これら入力値群に対して図7で説明した処理を行うものとする。
次に図8を参照して図6、図7で説明した暗号LSI20に対して、本実施例の回路故障検出装置100が生成して入力する入力値群9−1〜9−2を説明する。回路故障検出装置100の入力グループ選択手段111は、P個の入力グループ9−1−1〜9−1−Pのうちのいずれの入力グループに検査値を入力するかを選択する(S111)。図8の例では、回路故障検出装置100は、太実線で囲んだ入力グループ9−1−2〜9−2−2を、検査値を入力する入力グループとして選択している。検査値設定手段112は、入力グループ選択手段111が選択した入力グループ9−1−2〜9−2−2に互いに異なる2個のnビットの検査値7−1〜7−2(0、1、2、3、…2−1)を設定する(S112)。入力値群生成入力手段113は、入力グループ選択手段111が選択しなかった入力グループすべて(9−1−2〜9−2−2以外)に定数値C、C、…、Cを設定し(S113a)、入力値群9−1〜9−2を生成する。従って、入力値群9−1〜9−2には選択した入力グループ9−1−2〜9−2−2に全て異なる検査値が入力されていることになる。例えば入力値群9−1には、選択された入力グループ9−1−2に検査値7−1(0)が入力されている。また、例えば入力値群9−2には、選択された入力グループ9−2−2に検査値7−2(1)が入力されている。検査値7−1〜7−2が互いに異なるため、生成された入力値群9−1〜9−2もまた、群全体としての値が互いに異なっている。
次に図9を参照して、本実施例の暗号LSI20内でのデータフローと故障検出の流れを具体的に説明する。図8に引き続き回路故障検出装置100は、太実線で囲んだ入力グループ9−1−2〜9−2−2を、検査値を入力する入力グループとして選択しているものとして説明を続ける。回路故障検出装置100の入力値群生成入力手段113は、生成した入力値群9−1〜9−2を、入力グループ毎に、入力グループに対応するかぎ付きSboxに入力する(S113b)。この入力は1群ずつ行われる。図9は回路故障検出装置100がLSI20に入力値群9−1を入力する場面を図示している。暗号LSI20のかぎ付きSbox21−1〜21−Pは、入力された入力値群9−1をSubBytesテーブルにて非線形変換し、ラウンドかぎとの排他的論理和(XOR)を行ってS置換結果D6−1−1〜D6−1−Pを生成する。行列混合変換回路Q22は、生成したS置換結果D6−1−1〜D6−1−Pに対しShiftRows処理、MixColumn処理を行う。暗号LSI20はこれらの処理(ラウンド)を複数回繰り返して出力値群5−1を生成する。上述の処理(複数回のラウンド処理)が入力値群9−2についても繰り返され、入力値群9−2に対応する出力値群5−2が生成される。出力値群が二つ以上出力された時点より、回路故障検出装置100の出力値群比較手段121は、出力値群同士の比較を開始する(S121)。図9の例の場合、出力値群5−1、出力値群5−2が出力された時点で、出力値群比較手段121は出力値群5−1と出力値群5−2とが互いに等しい値であるかを比較して、出力値群5−1、出力値群5−2が互いに等しい場合に(S100aY)、入力グループ選択手段111が選択した入力グループ9−1−2〜9−2−2に対応するかぎ付きSbox21−2、もしくはS置換結果群の全てを利用して計算を行う行列混合演算回路Q22の何れかが故障していると判定する。一方、出力値群5−1、出力値群5−2が互いに等しくない場合には(S100aN、S100bN)、入力値群生成入力手段113が入力値群9−3を生成して暗号LSI20に入力し(S113b)、対応する出力値群5−3と、前述の出力値群5−1、出力値群5−2の三つの値の何れか二つが互いに等しくなるかを判定して、出力値群5−1、5−2、5−3のうち何れか二つが互いに等しい場合に(S100aY)、かぎ付きSbox21−2、もしくは行列混合演算回路Q22の何れかが故障していると判定する。一方、出力値群5−1、5−2、5−3が互いに異なる場合には(S100aN)、入力値群生成入力手段113が入力値群9−4を生成して暗号LSI20に入力して(S113b)出力値群5−4を得る。このようにして出力値群5−1〜5−2の全てについて互いに等しい値が存在するか否かの比較を行い、出力値群5−1〜5−2が互いに異なる場合には(S100bY)、検査中のかぎ付きSbox21−2に故障が生じていないと判定し、他のかぎ付きSboxの故障の検討に移る(S100cY)。図9の例では、かぎ付きSbox21−2について故障が生じていないと判定された場合には(S100bY)、入力グループ選択手段111は、入力グループ9−1−2〜9−2−2と異なる入力グループ、例えば入力グループ9−1−3〜9−2−3を選択する。選択された入力グループ9−1−3〜9−2−3に対して上述の処理が繰り返され、入力グループ9−1−3〜9−2−3と対応するかぎ付きSbox21−3および行列混合演算回路Q22が故障検出対象となる。このようにして、暗号LSI20内の全てのかぎ付きSbox21−1〜21−P及び行列混合演算回路Q22について故障検出が実行され、それぞれの出力値群5−1〜5−2を比較した結果、いずれの回路にも故障が検出されなかった場合に(S100cN)、暗号LSI20には故障が存在しないと判定して、動作を終了する。
本実施例の回路故障検出装置100によれば、実施例1の効果に加えて、アルゴリズム実装回路が複数存在するLSIなどについて、その故障が何れのアルゴリズム実装回路内で起こっているか、その故障箇所を検出することが可能である。また、出力値群のうち何れか二つが互いに等しくなった場合、ステップS113b〜S100b間のループ処理を中断し(S100aY)、即座に検査値を入力しているアルゴリズム実装回路が故障していると判定するため、必ずしも考えられる入力値群のパターン全てを入力しなくて済む。故障が発見される最短のパターンは、2個の出力値群の比較のみで等しい値が検出されるパターンである。従って、必ずしも入力値群のパターン全てを入力しなくても良いため、全パターン検査と比較して故障検出に要する処理時間を短くすることが可能である。
なお、本発明の回路故障検出装置は、実施形態で説明したようにLSIや回路の外部に構築され、LSIや回路の故障を検出することとしても良いし、例えば本発明の回路故障検出装置をLSIに内蔵し、自身が内蔵されているLSIの故障を検出することに特化した構成とすることも可能である。

Claims (8)

  1. nを1以上の正の整数とし、入力値Aと入力値Bとが互いに異なる場合に、入力値Aに対応する出力値Uと、入力値Bに対応する出力値Vとが互いに異なる可能性の高いアルゴリズムを実装したnビットの値を入出力する回路(以下、アルゴリズム実装回路という)の故障を検出する回路故障検出装置であって、
    前記アルゴリズム実装回路に、互いに異なる2個のnビットの検査値を1個ずつ入力できる検査値入力部と、
    前記検査値に対応する前記アルゴリズム実装回路の出力値のうち、互いに値が等しい出力値が検出された場合に、当該アルゴリズム実装回路が故障していると判定する故障検出部と、
    を備えることを特徴とする回路故障検出装置。
  2. 請求項1に記載の回路故障検出装置であって、
    前記アルゴリズム実装回路に実装されたアルゴリズムが暗号アルゴリズムであること
    を特徴とする回路故障検出装置。
  3. 請求項2に記載の回路故障検出装置であって、
    前記アルゴリズム実装回路に実装されたアルゴリズムがAES暗号であること
    を特徴とする回路故障検出装置。
  4. 請求項1から3の何れかに記載の回路故障検出装置であって、
    前記アルゴリズム実装回路をP個(Pは2以上の正の整数)備える回路の故障を検出することを特徴とし、
    前記検査値入力部が、
    前記P個のアルゴリズム実装回路と一対一に対応するP個の入力グループのうちのいずれの入力グループに検査値を入力するかを選択する入力グループ選択手段と、
    前記入力グループ選択手段が選択した入力グループに互いに異なる2個のnビットの検査値を設定する検査値設定手段と、
    前記入力グループ選択手段が選択しなかった入力グループすべてに定数値を設定し、当該定数値と前記検査値設定手段が設定した2個の検査値のうちの一個とを併せてなるn×Pビットの入力値群を検査値を互いに異ならせて2群生成し、当該生成された2群の入力値群を、前記入力グループ毎に、対応する各アルゴリズム実装回路に1群ずつ入力する入力値群生成入力手段とを備え、
    前記故障検出部が、
    前記入力値群に対応して出力される出力値群のうち、互いに値が等しい出力値群が検出された場合に、前記入力グループ選択手段が選択した入力グループに対応するアルゴリズム実装回路が故障していると判定する出力値群比較手段と、
    前記出力値群比較手段がアルゴリズム実装回路が故障していると判定した場合に、故障しているアルゴリズム実装回路の所在を表示する故障表示手段とを備えること
    を特徴とする回路故障検出装置。
  5. nを1以上の正の整数とし、入力値Aと入力値Bとが互いに異なる場合に、入力値Aに対応する出力値Uと、入力値Bに対応する出力値Vとが互いに異なる可能性の高いアルゴリズムを実装したnビットの値を入出力する回路(以下、アルゴリズム実装回路という)の故障を検出する回路故障検出方法であって、
    前記アルゴリズム実装回路に、互いに異なる2個のnビットの検査値を1個ずつ入力できる検査値入力ステップと、
    前記検査値に対応する前記アルゴリズム実装回路の出力値のうち、互いに値が等しい出力値が検出された場合に、当該アルゴリズム実装回路が故障していると判定する故障検出ステップと、
    を備えることを特徴とする回路故障検出方法。
  6. 請求項5に記載の回路故障検出方法であって、
    前記アルゴリズム実装回路に実装されたアルゴリズムが暗号アルゴリズムであること
    を特徴とする回路故障検出方法。
  7. 請求項6に記載の回路故障検出方法であって、
    前記アルゴリズム実装回路に実装されたアルゴリズムがAES暗号であること
    を特徴とする回路故障検出方法。
  8. 請求項5から7の何れかに記載の回路故障検出方法であって、
    前記アルゴリズム実装回路をP個(Pは2以上の正の整数)備える回路の故障を検出することを特徴とし、
    前記検査値入力ステップが、
    前記P個のアルゴリズム実装回路と一対一に対応するP個の入力グループのうちのいずれの入力グループに検査値を入力するかを選択する入力グループ選択サブステップと、
    前記入力グループ選択サブステップが選択した入力グループに互いに異なる2個のnビットの検査値を設定する検査値設定サブステップと、
    前記入力グループ選択サブステップにおいて選択されなかった入力グループすべてに定数値を設定し、当該定数値と前記検査値設定サブステップにおいて設定した2個の検査値のうちの一個とを併せてなるn×Pビットの入力値群を検査値を互いに異ならせて2群生成し、当該生成された2群の入力値群を、前記入力グループ毎に、対応する各アルゴリズム実装回路に1群ずつ入力する入力値群生成入力サブステップとを備え、
    前記故障検出ステップが、
    前記入力値群に対応して出力される出力値群のうち、互いに値が等しい出力値群が検出された場合に、前記入力グループ選択手段が選択した入力グループに対応するアルゴリズム実装回路が故障していると判定する出力値群比較サブステップと、
    前記出力値群比較サブステップがアルゴリズム実装回路が故障していると判定した場合に、故障しているアルゴリズム実装回路の所在を表示する故障表示サブステップとを備えること
    を特徴とする回路故障検出方法。
JP2010275596A 2010-12-10 2010-12-10 回路故障検出装置、回路故障検出方法 Active JP5637446B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010275596A JP5637446B2 (ja) 2010-12-10 2010-12-10 回路故障検出装置、回路故障検出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010275596A JP5637446B2 (ja) 2010-12-10 2010-12-10 回路故障検出装置、回路故障検出方法

Publications (2)

Publication Number Publication Date
JP2012122931A JP2012122931A (ja) 2012-06-28
JP5637446B2 true JP5637446B2 (ja) 2014-12-10

Family

ID=46504505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010275596A Active JP5637446B2 (ja) 2010-12-10 2010-12-10 回路故障検出装置、回路故障検出方法

Country Status (1)

Country Link
JP (1) JP5637446B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10063370B2 (en) * 2014-09-11 2018-08-28 Infineon Technologies Ag Method and device for checking an identifier

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62115941A (ja) * 1985-11-15 1987-05-27 Hitachi Ltd 暗号化処理システム
JPH0339671A (ja) * 1989-07-06 1991-02-20 Fujitsu Ltd Lsi機能診断テストプログラムの作成方法
JP2001004705A (ja) * 1999-06-24 2001-01-12 Advantest Corp 半導体デバイス試験装置及び試験方法
JP2005340892A (ja) * 2004-05-24 2005-12-08 Matsushita Electric Ind Co Ltd 暗号回路
JP4647246B2 (ja) * 2004-05-28 2011-03-09 日本信号株式会社 暗号復号回路の動作確認方法及び動作確認装置

Also Published As

Publication number Publication date
JP2012122931A (ja) 2012-06-28

Similar Documents

Publication Publication Date Title
Rolt et al. A novel differential scan attack on advanced DFT structures
Da Rolt et al. Test versus security: Past and present
Lin et al. Trojan side-channels: Lightweight hardware trojans through side-channel engineering
Da Rolt et al. Are advanced DfT structures sufficient for preventing scan-attacks?
Da Rolt et al. New security threats against chips containing scan chain structures
Agrawal et al. Scan based side channel attacks on stream ciphers and their counter-measures
Das et al. PUF-based secure test wrapper design for cryptographic SoC testing
Yasin et al. Testing the trustworthiness of IC testing: An oracle-less attack on IC camouflaging
Cui et al. Why current secure scan designs fail and how to fix them?
Ege et al. Differential scan attack on AES with X-tolerant and X-masked test response compactor
Banik et al. A differential fault attack on Grain-128a using MACs
Di Natale et al. A reliable architecture for parallel implementations of the advanced encryption standard
Sao et al. Co-relation scan attack analysis (COSAA) on AES: A comprehensive approach
Karl et al. A survey on the application of fault analysis on lightweight cryptography
JP5637446B2 (ja) 回路故障検出装置、回路故障検出方法
Biryukov et al. Multiset collision attacks on reduced-round SNOW 3G and SNOW 3G⊕
Sao et al. Security analysis of scan obfuscation techniques
Sao et al. Revisiting the security of static masking and compaction: Discovering new vulnerability and improved scan attack on aes
Dubrova et al. Secure and efficient LBIST for feedback shift register-based cryptographic systems
Li et al. Clockwise Collision Analysis--Overlooked Side-Channel Leakage Inside Your Measurements
Ocheretnij et al. On-line error detection and bist for the aes encryption algorithm with different s-box implementations
Ray et al. On Securing Cryptographic ICs against Scan-based Attacks: A Hamming Weight Distribution Perspective
Yoshimura et al. A smart Trojan circuit and smart attack method in AES encryption circuits
Ali et al. New scan-based attack using only the test mode and an input corruption countermeasure
Popat et al. A novel countermeasure against differential scan attack in AES algorithm

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130611

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140304

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141009

R150 Certificate of patent or registration of utility model

Ref document number: 5637446

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350