説明

半導体集積回路、情報処理装置、およびデータ処理方法、並びにプログラム

【課題】スキャンチェインを介した秘密情報漏洩を防止した構成を実現する。
【解決手段】IC(集積回路)のテスト用パスとして設定されたスキャンチェインを複数のサブパスに分割したサブチェインを設定し、さらに、スキャンテストデータを入力可能とし秘密情報が含まれないダミーサブチェインを構成した。スキャンテストの制御を実行する制御回路は、外部から入力するテストキーの正当性を判定し、入力テストキーが正当でないと判定した場合、ダミーサブチェインをスキャンテストの実行対象として選択してスキャンテストを実行する。この処理により、攻撃者の入力データに基づくスキャンアウト結果は、すべてダミーサブチェインを利用したデータとなり秘密情報の漏洩が防止される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路、情報処理装置、およびデータ処理方法、並びにプログラムに関する。さらに詳細には、半導体集積回路のテスト用回路であるスキャン回路からの情報漏洩を防止する構成を持つ半導体集積回路、情報処理装置、およびデータ処理方法、並びにプログラムに関する。
【背景技術】
【0002】
現代社会はカード社会と呼ばれるほど、クレジットカード、キャッシュカード、プリペイドカード、身分証明書、各種会員証等、多種多様なカードが利用されており、日常生活に欠かせないものとなっている。このような各種カードには、多くの場合、利用者の個人情報など機密性の高い情報が記録されている。従来から多く利用されていた磁気カードは、カード上の磁気ストライプに情報を記録していたため、スキミングと呼ばれる磁気情報の不正な読み取りや改竄が容易に可能であるという問題点が存在する。また、カードの普及に伴って多種多様なサービスが提供されつつあり、カードに格納される情報はますます多量化、高価値化している。よって現在では、より大量のデータを安全に保護可能なカードが必要不可欠となってきている。
【0003】
このような要求を満たすものとして、カード内部に半導体集積回路(IC)を搭載したICカードがある。ICカードには接触型と非接触型の二種類が存在するが、いずれのタイプにおいても、各種情報をIC内の不揮発性メモリ内に格納するため、磁気カードよりも多くの情報を記録可能である。また、各種情報の他プログラム等のアプリケーションもIC内部に保持することが可能であり、磁気カードと比較して安全性が向上する。このようにICカードは利便性や秘密保持性の点で優れており、現在では、クレジットカード、電子マネー、あるいは衛星有料放送用のカードなど様々な分野で多く利用されている。
【0004】
しかしながら、一方ではICカード等の半導体集積回路から秘密情報を盗み取るといった攻撃による被害も発生している。例えば非特許文献1、2には、ICに対する解析技術を利用した攻撃手法が開示されている。また、非特許文献3は、IC自身のテスト回路を利用することにより、内部構造や秘密情報を取得する攻撃手法を開示している。このような様々な攻撃手法に対抗するため、ICに対する不正解析への対策が必要不可欠となってきている。
【0005】
ICへの攻撃や解析手法の1つとして、上記非特許文献3に開示されたICの内部構造を検査するためのスキャンテスト(scan test)用の回路を利用した処理がある。このスキャン回路を利用した攻撃は、ICに対して所定のデータ入出力を行って内部の構造や内部に格納された秘密情報等を解析するものである。この処理ではICのリバースエンジニアリングが不要であり、ICを破壊することなく解析が可能となる。
【0006】
従って、ICカード等の安全対策としてスキャン回路を利用した攻撃に対する対策を講じることは必要不可欠となっている。なお、スキャンテストについては、例えば特許文献1に記載がある。
【0007】
IC(半導体集積回路)にはフリップフロップ(FF)が多数利用されている。
スキャンテスト(scan test)は、このIC内部に構成されたフリップフロップ(FF)等の連鎖構成であるスキャンチェイン、すなわちスキャン回路を利用したデータ入出力処理によりIC内部の回路が正常に動作するか否か等を確認するため、ICの製造時のテストとして行われる。
【0008】
スキャン回路は、IC製造時のテスト用回路として不可欠なものとなっているが、攻撃者は、このスキャン回路を利用して様々なデータを入力し、その出力を解析することでICの内部構造や内部の格納情報を不正に取得するという攻撃を行う。
【0009】
スキャンチェインの構成要素であるフリップフロップ(FF)は、ビット値(0,1)を保持し、ビット値入出力を高速に行うことが可能であり、例えばキャッシュメモリやレジスタ、その他の電子回路を構成する素子として多く利用されている。
【0010】
このようなスキャン回路を利用した不正解析を防止するための対策法の一つとして、非特許文献4に開示されたLee、Tehranipoor、Patel、及びPlusquellicらによって提案された方式(以降LTPP05と呼ぶ)が存在する。
【0011】
この非特許文献4に記載のスキャン回路攻撃の対策方式[LTPP05]は、スキャンテストに適用するスキャンチェインを複数本のサブチェインに分割し、テスト回路に製造者のみが知る多項式を生成多項式としたLFSR(線形帰還シフトレジスタ)を構成している。
【0012】
テスト実行時には、LFSRに設定した値によって1つのサブチェインを選択して、選択したサブチェインにテスト用データを入力して選択サブチェインに接続されているスキャンフリップフロップ(SFF:Scan Flip−Flop)から出力される値を出力する構成としている。
【0013】
また、テスト回路を利用するために必要な情報として、秘密のテストキー(TK:Test Key)を利用する構成としている。
スキャンテストの実行時には、テストキー(TK)を入力させ、内部に保持した正当なテストキーとの一致確認を行う。入力テストキーが内部に保持したテストキーと一致するならばLFSRの初期値を外部から設定可能とし、不一致ならばランダムな値がLFSRに自動的に設定される構成としている。
【0014】
この構成により、テストキー(TK)を知る正当なテスト実行者ならば、既知の構造をもつLFSRに対して任意の初期値を設定可能となるため、任意のサブチェインに対して任意のテストパターンを設定した上でスキャンテストを実施可能となる。
【0015】
しかし、テストキー(TK)を知らない攻撃者は、LFSRの生成多項式が未知である上にその初期値を設定することが不可能となる。このため、スキャンテストを実行して自身が設定したテストパターンに対するテスト結果を取得したとしても、LFSRの値によって選択されたサブチェインを特定することが不可能となる。従って、ICからの出力テスト結果が、どのサブチェインの出力かを特定することができず、入力テストパターンと出力結果との対応付けが困難となり、スキャン回路を利用したIC内部構造の不正な解析を防止することを可能としている。
【0016】
しかしながら、この非特許文献4に開示された攻撃対策方式[LTPP05]の構成では、テストキー(TK)が不一致であったとしても、機密であるべきICの内部構造に対するテスト結果自体、スキャン回路の出力部から出力される。
従って、攻撃者が入力テストパターンと出力テスト結果の対応が把握できれば、不正解析が可能となるという問題点が存在する。
【0017】
非特許文献4では、LFSRの長さを適切に設定することにより、この入出力パターンの対応関係を特定することが計算量的に困難とすることができると述べているが、本明細書において後段で説明する通り、実際には非特許文献4に示された解析方法よりも効率的な解析方法が存在する。従って、当該非特許文献4に示されたLFSRの長さ程度では、現実的な計算量の範囲内で解析が可能となり、安全対策として不十分であるという問題点が存在する。
【先行技術文献】
【特許文献】
【0018】
【特許文献1】特許第3671948号公報
【非特許文献】
【0019】
【非特許文献1】R.Andeson and M.G.Kuhn,"Tamper Resistance−a Cautionary Note,"The Second USENIX Workshop on Electronic Commerce,pp.1−11,1996.
【非特許文献2】O.Kommerling and M. G. Kuhn,"Design Principles for Tamper−Resistant Smartcard Processors,"Smartcard '99,pp.9−20,1999.
【非特許文献3】B.Yang,K.Wu,and R.Karri,"Secure Scan:A Design−for−Test Architecture for Crypto Chips,"42th Design Automation Conference 2005,pp.135−140,2005.
【非特許文献4】J.Lee,M.Tehranipoor,C.Patel,and J.Plusquellic,"Securing Scan Design Using Lock&Key Technique,"IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems(DFT'05),2005.
【発明の概要】
【発明が解決しようとする課題】
【0020】
本発明は、例えば上述の問題点に鑑みてなされたものであり、IC(半導体集積回路)のスキャンチェインを利用した攻撃による情報漏洩の防止を実現する半導体集積回路、情報処理装置、およびデータ処理方法、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【0021】
本発明の第1の側面は、
集積回路におけるスキャンテスト用パスであるスキャンチェインを複数のサブパスに分割して設定した複数のサブチェインと、
スキャンテストデータを入力可能なダミーサブチェインと、
外部から入力するテストキーの正当性を判定するテストキー確認部と、
入力テストキーが正当でないと判定した場合、前記ダミーサブチェインをスキャンテストの実行対象として選択するテスト制御部と、
を有する半導体集積回路にある。
【0022】
さらに、本発明の半導体集積回路の一実施態様において、前記テスト制御部は、スキャンテストの実行対象とするサブチェインを選択するための選択用データを入力データに基づいて生成するLFSR部(線形帰還シフトレジスタ)と、入力テストキーが正当でない場合、前記LFSR部に前記ダミーサブチェインをスキャンテストの実行対象として選択するデータを設定する制御部を有する。
【0023】
さらに、本発明の半導体集積回路の一実施態様において、前記テスト制御部は、入力テストキーが正当でない場合、前記ダミーサブチェインに乱数を入力する構成を有する。
【0024】
さらに、本発明の半導体集積回路の一実施態様において、前記テスト制御部は、乱数生成部を有し、入力テストキーが正当でない場合、前記乱数生成部の生成した乱数を前記ダミーサブチェインに入力する構成を有する。
【0025】
さらに、本発明の半導体集積回路の一実施態様において、前記LFSR部は、原始多項式を生成多項式とした構成を持つ。
【0026】
さらに、本発明の半導体集積回路の一実施態様において、前記ダミーサブチェインは、機密情報を保持しない回路構成を有する。
【0027】
さらに、本発明の第2の側面は、上記半導体集積回路を備えた情報処理装置にある。
【0028】
さらに、本発明の第3の側面は、
情報処理装置においてスキャンテストを実行するデータ処理方法であり、
前記情報処理装置は集積回路を備えた構成であり、前記集積回路はスキャンテスト用パスであるスキャンチェインを複数のサブパスに分割して設定した複数のサブチェインと、スキャンテストデータを入力可能なダミーサブチェインを有し、
前記情報処理装置のテストキー確認部が、外部から入力するテストキーの正当性を判定するテストキー確認ステップと、
前記情報処理装置のテスト制御部が、入力テストキーが正当でないと判定した場合、前記ダミーサブチェインをスキャンテストの実行対象として選択するテスト制御ステップと、
を実行するデータ処理方法にある。
【0029】
さらに、本発明の第4の側面は、
情報処理装置においてスキャンテストを実行させるプログラムであり、
前記情報処理装置は集積回路を備えた構成であり、前記集積回路はスキャンテスト用パスであるスキャンチェインを複数のサブパスに分割して設定した複数のサブチェインと、スキャンテストデータを入力可能なダミーサブチェインを有し、
前記情報処理装置のテストキー確認部に、外部から入力するテストキーの正当性を判定させるテストキー確認ステップと、
前記情報処理装置のテスト制御部に、入力テストキーが正当でないと判定した場合、前記ダミーサブチェインをスキャンテストの実行対象として選択させるテスト制御ステップと、
を実行させるプログラムにある。
【0030】
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な画像処理装置やコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、情報処理装置やコンピュータ・システム上でプログラムに応じた処理が実現される。
【0031】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【0032】
本発明の一実施例によれば、IC(集積回路)のテスト用パスとして設定されたスキャンチェインを複数のサブパスに分割したサブチェインを設定し、さらに、スキャンテストデータを入力可能とし秘密情報が含まれないダミーサブチェインを構成した。スキャンテストの制御を実行する制御回路は、外部から入力するテストキーの正当性を判定し、入力テストキーが正当でないと判定した場合、ダミーサブチェインをスキャンテストの実行対象として選択してスキャンテストを実行する。この処理により、攻撃者の入力データに基づくスキャンアウト結果は、すべてダミーサブチェインを利用したデータとなり秘密情報の漏洩が防止される。
【図面の簡単な説明】
【0033】
【図1】半導体集積回路におけるスキャンチェインを適用した攻撃に対する対策としてサブチェインを利用した対策手法[LTPP05]について説明する図である。
【図2】図1に示すサブチェインを利用した対策手法[LTPP05]の処理シーケンスについて説明するフローチャートを示す図である。
【図3】図1に示すサブチェインを利用した対策手法[LTPP05]に用いられたLFSR部の構成について説明する図である。
【図4】本発明の第一実施形態に係る半導体集積回路におけるスキャンチェインを適用した攻撃に対する対策手法について説明するIC(半導体集積回路)の構成について説明する図である。
【図5】図4に示す本発明の第一実施形態に係る半導体集積回路における処理シーケンスについて説明するフローチャートを示す図である。
【図6】図4に示す本発明の第一実施形態に係る半導体集積回路に用いられるLFSR部の構成について説明する図である。
【図7】本発明の第二実施形態に係る半導体集積回路におけるスキャンチェインを適用した攻撃に対する対策手法について説明するIC(半導体集積回路)の構成について説明する図である。
【図8】図7に示す本発明の第二実施形態に係る半導体集積回路における処理シーケンスについて説明するフローチャートを示す図である。
【発明を実施するための形態】
【0034】
以下、図面を参照しながら本発明の半導体集積回路、情報処理装置、およびデータ処理方法、並びにプログラムの詳細について説明する。説明は、以下の項目に従って行う。
1.サブチェインの利用による攻撃対策方式[LTPP05]の概要について
2.攻撃対策方式[LTPP05]の問題点について
3.本発明の半導体集積回路の構成例について
3−1.ダミーサブチェインを用いた本発明の第一実施形態の構成および処理について
3−2.ダミーサブチェインからの出力値をランダムな値に設定する構成を持つを本発明の第二実施形態の構成および処理について
【0035】
[1.サブチェインの利用による攻撃対策方式[LTPP05]の概要について]
まず、本発明の構成の説明の前に前述の非特許文献4に記載されたスキャンチェインを用いた攻撃対策手法である[LTPP05]の概要について説明する。
LTPP05におけるスキャンチェインおよびびテスト制御回路の概要について、図1を参照して説明する。
図1は、スキャンテストに適用するスキャンチェイン(スキャン回路)を持つIC(半導体集積回路)100を示している。
攻撃対策方式[LTPP05]において、スキャンチェインは図1に示すように複数(m個)のサブチェイン120−1〜mに分割して構成する。
【0036】
サブチェイン120−1〜mは、フリップフロップ(FF)や、演算回路、メモリなどの回路素子の連鎖構成を有する。なお、サブチェイン内に接続されたフリップフロップをスキャンフリップフロップ(SFF)と呼ぶ。
各サブチェイン120−1〜mに対しては、図1の下部に示すデータ入力部であるスキャンイン(SI)からの入力データに基づいて図1下部に示すテスト制御回路110が設定したデータ列が入力される。その処理結果は、マルチプレクサ130を介して出力部であるスキャンアウト(SO)から出力される。
【0037】
なお、第1サブチェイン120−1〜第mサブチェイン120−mのm個のサブチェインのどのサブチェインにデータを入力するかについては、テスト制御回路110が決定する。選択されたサブチェインに図に示すイネーブル信号(EN1〜ENm)が入力され、その選択されたサブチェインにスキャン用のテストデータがテスト制御回路110を介して入力されスキャンテストが行われる。
【0038】
図1に示すように、テスト制御回路110は、乱数生成部118、制御部(FSM:Finit State Machine)111、テストキー(TK)一致確認回路部114、線形帰還シフトレジスタ(LFSR)部113、およびデコーダ(Decoder)部112を有する。
【0039】
LTPP05では、LFSRをqビット構成として、サブチェインの個数[m]を、
m=2−1
としている。
各サブチェイン120−1〜mは各々Lビット、即ちL個のSFF(スキャンフリップフロップ)が接続された構成を持つ。
【0040】
以下、テスト制御回路110を構成する構成部の各々の機能について説明する。
なお、テスト制御回路110は以下の入力部を有する。
SI(スキャンイン):各サブチェインに対するテストデータ等の入力部、
TC:(テストコントロール):スキャンテストの開始を示すイネーブル信号(enable)と、終了を示すディスエーブル信号(disable)を入力するテスト実行制御信号の入力部、
CLK(クロック):タイミング制御用のクロック信号入力部、
また、マルチプレクサ130は、以下の出力部を有する。
SO(スキャンアウト):各スキャンサブチェインからの出力データを出力する出力部。
【0041】
以下、テスト制御回路110の各構成部の機能について、順次説明する。
乱数生成部118
乱数生成部118は、制御部(FSM)111からの出力信号として安全なテスト実行可能状態でないことを示すインセキュアモード(insecure mode)信号が出力(high)されている場合にアクティブ(active)となり、任意ビットのランダムな値(乱数)を生成する。生成された乱数は、LFSR部113に入力される。
【0042】
制御部(FSM:Finite State Machine)111
制御部(FSM)111は、スキャンテスト実行時におけるテストモード(test mode)の設定、管理、および各モードにおける初期設定処理等を実行する。
【0043】
なお、テストモードには、セキュアモード(secure mode)と、インセキュアモード(insecure mode)の2種類が存在する。
セキュアモードは、正しいテストキー(TK)が入力されたことが確認された場合にのみ設定される。それ以外の場合にはインセキュアモードに設定される。
制御部(FSM)111は、電源投入またはリセット直後の初期状態として、インセキュアモード(insecure mode)を設定する。
【0044】
図1に示すTC(Test Control)がイネーブル(enable)に設定されると、制御部(FSM)1111部は図に示すSI(スキャンイン(Scan In))より入力されるデータのうち、先頭からkビットをテストキー(TK')としてテストキー(TK)一致確認回路部114に入力し、テストキー(TK)一致確認回路部114の保持する正当なテストキー(TK)との一致確認処理を実行させる。
【0045】
その後、制御部(FSM)111は、テストキー(TK)一致確認回路部114から入力キー(TK')が正当なキー(TK)と一致したか否かの情報を受領する。
キー不一致、すなわち、
TK'≠TK
を表す[fail]であった場合には、SI(スキャンイン)から入力されるデータのうち、(k+1)ビットから(k+q)ビットまでのqビットを無視すると共に、LFSR部113に対して(r+q)ビットのランダムな値を乱数生成部118の生成する乱数として取得し、LFSR部113の初期値として設定する。
【0046】
一方、テストキー(TK)一致確認回路部114からの出力が一致、すなわち、
TK'=TK
を表す[pass]であった場合には、LFSR部113に対し、SI(スキャンイン)から入力されるデータのうち(k+1)ビットから(k+q)ビットまでのqビットを初期値として設定する。
これらの処理が終了した後、制御部(FSM)111は次にリセットされるまで現在のモードを維持すると共に、SIより入力されるデータを全サブチェイン120−1〜mに提供する。
【0047】
次に、図1に示すIC100の実行するサブチェインに対するデータ入力処理のシーケンスについて図2のフローチャートを参照して説明する。図2に示すフローチャートは、制御部(FSM)111部の制御の下に実行する処理である。
【0048】
ステップ001(STEP 001)
テストモード(test mode)をインセキュアモード(insecure mode)に設定する。前述のように制御部(FSM)111は、電源投入またはリセット直後の初期状態として、インセキュアモード(insecure mode)を設定する。
【0049】
ステップ002(STEP 002)
TC:(テストコントロール)信号入力部から、スキャンテストの開始を示すイネーブル(enable)信号が入力されるまで待機する。
【0050】
ステップ003(STEP 003)
SI(スキャンイン)入力部から入力される値の先頭よりkビットをテストキー(TK')として、テストキー(TK)一致確認回路部114に入力する。
【0051】
ステップ004(STEP 004)
テストキー(TK)一致確認回路部114において、テストキー一致確認回路処理を実行する。すなわち、
TK'=TK
上記式が成立する[pass]か非成立[fail]かの確認処理を実行する。
【0052】
ステップ005(STEP 005)
ステップ004におけるテストキー一致確認処理の結果、キー不一致を示す[fail]ならばステップ006に進む。キー一致を示す[pass]ならば、ステップ007に進む。
【0053】
ステップ006(STEP 006)
SI(スキャンイン)入力部から入力される値の先頭より(k+1)ビット目から(k+q)ビット目までのqビットを無視すると共に、乱数生成部118において(r+q)ビットの乱数Rを生成し、これを初期値としてLFSR113に設定して、ステップ008に進む。
【0054】
ステップ007(STEP 007)
SI(スキャンイン)入力部から入力される値の先頭より(k+1)ビット目から(k+q)ビット目までのqビットを初期値としてLFSR113に設定し、テストモード(test mode)をセキュアモード(secure mode)としてステップ008に進む。
【0055】
ステップ008(STEP 008)
デコーダ部(Decoder)112によるサブチェイン(sub chain)選択処理を実行する。これは、スキャンイン(SI)入力部からのデータを入力するサブチェイン、すなわちスキャンテストを実行するサブチェインの選択処理である。デコーダ部112は、スキャンイン(SI)入力部からのデータを用いて、m個のサブチェインのいずれをテストデータの入力サブチェインとするかを決定し、決定したサブチェインにイネーブル信号(図1に示すEN1〜ENm)を出力する。イネーブル信号が出力されたサブチェインにスキャンテスト用データが入力されることになる。
【0056】
ステップ009(STEP 009)
SI(スキャンイン)入力部から入力された値のうち次のLビットを、デコーダ部(Decoder)112によって選択されたサブチェインSIiに入力する。すなわち、選択されたサブチェインに対するデータ入力によるスキャンテストの開始である。
【0057】
ステップ010(STEP 010)
TC:(テストコントロール)信号入力部から、スキャンテストの終了を示すディスエーブル(disable)信号が入力されるまで待機する。
【0058】
ステップ011(STEP 011)
クロック(CLK)信号入力部から入力されたクロック数に応じて、キャプチャ(capture)処理を実行する。
これは、SI(スキャンイン)入力部からサブチェインに入力されたビット列をクロックに応じてサブチェイン内で順次進行させる処理である。
【0059】
ステップ012(STEP 012)
TC:(テストコントロール)信号入力部から、スキャンテストの開始を示すイネーブル(enable)信号が入力された後、クロック(CLK)より入力されたLサイクルのクロックに応じて、サブチェインSIiの値を出力部であるスキャンアウト(SO)から出力すると同時に、スキャンイン(SI)から入力された次のLビットをサブチェインSIiに入力する。
【0060】
ステップ013(STEP 013)
LFSR113を一回動作させ、ステップ008に戻る。
【0061】
ステップ008〜013を繰り返し実行して、m個のサブチェインに対して、それぞれスキャンデータを入力して、そのスキャン結果をスキャンアウト(SO)から出力する。
【0062】
前述したように、正当なテスト実行者は、テスト制御回路100が選択するサブチェインを知ることができるため、サブチェイン1〜mに対する入力データと出力データとの対応慣例を把握でき、その対応関係に基づいて各サブチェインの構成回路が正常であるか否かを判定することができる。
【0063】
テストキー(TK)一致確認回路部114
テストキー(TK)一致確認回路部114は、データ入力部であるスキャンイン(SI)から制御部(FSM)111を介して入力された入力テストキー(TK')と、自身が予め保持している正当なテストキー(TK)が一致するか否かを確認し、一致するならば[pass]を、不一致ならば[fail]を制御部(FSM)に返す。
【0064】
線形帰還シフトレジスタ部(LFSR)113
LFSR部の構成例を図3に示す。図3に示す通り、LFSR113は、
qビットLFSR構成部181、
セレクタ部182、並びに、
rビット乱数部183、
これらの3つの構成部から構成されている。
【0065】
qビットLFSR構成部181は、原始多項式を生成多項式としたqビットLFSRからなり、制御部(FSM)111より入力されるqビットの値を初期値として設定すると共に、各フリップフロップ(FF)の値をデコーダ部(Decoder)112に出力する。またqビットLFSR構成部181におけるMSBの値をセレクタ部182に各々出力する。
【0066】
セレクタ部182は、制御部(FSM)111から提供されるテストモード(test mode)信号を出力選択信号とし、
テストモード(test mode)=セキュアモード(secure mode)ならばqビットLFSR構成部181からの入力を出力する。
テストモード(test mode)=インセキュアモード(insecure mode)ならば後述するrビット乱数部183からの入力をそのまま出力する。
【0067】
rビット乱数部183は、rビットのLFSR構成部181と同様に構成された、r個フリップフロップ(FF)からなる。ただし通常のLFSRとは異なり、タップ、即ち生成多項式において、0次の項を除く係数が0でない項に対応する各FFの排他的論理和演算結果を、LSBにフィードバックすることなくセレクタ部182への入力としている。
【0068】
この図3に示す構成により、LFSR部113は、
テストモード(test mode)=セキュアモード(secure mode)
この場合は、セレクタ部182の出力がqビットLFSR構成部181のMSBとなるため、原始多項式を生成多項式とするqビットのLFSR回路となる。
また、
テストモード(test mode)=インセキュアモード(insecure m
この場合は、セレクタ部182の出力がrビット乱数部183の出力となるため、(r+q)ビットLFSRのうちMSBよりqビットの値を出力する回路となる。
【0069】
デコーダ部(Decoder)112
デコーダ部(Decoder)112は、LFSR部113からのqビット入力を十進数や十六進数で表される数字iへと変更し、iをm:1マルチプレクサ(MUX)130における選択信号としてMUX130に対して出力すると共に、i番目のサブチェイン(sub chain)に対するイネーブル(enable)信号であるENiをイネーブル(enable)にする。
【0070】
なお、デコーダ部(Decoder)112の構成方法は非特許文献4に記載されている方法の他、様々な方法が考えられ、また各構成法の詳細は本発明になんら影響を与えないため、具体的な構成法及び処理手順に関する記述は省略する。
【0071】
以上のようにスキャンテストにおけるサブチェイン(sub chain)及びテスト制御回路を構成することにより、正しいテストキー(TK)を知るテスト実行者ならば、LFSR113の構成が既知であり、かつその初期値を任意に設定可能であるため、スキャンアウト(SO)から出力された値がスキャンイン(SI)より入力したどのテストパターンに対応するかを知ることができる。これにより、正規のテスト実行者による任意のテストを実行可能となる。このように複数の分割されたスキャンチェインであるサブチェインのテストを確実に実行することができる。
【0072】
一方、テストキー(TK)を知らない攻撃者に対しては、LFSR113の構成が未知である上に初期値を設定することが不可能となるため、スキャンアウト(SO)から出力された値がどのテストパターンに対応するかを特定することは困難となる。以下、攻撃者によるテスト結果の取得方法とその解析方法を具体的に示す。
【0073】
攻撃者は、m個のテスト結果TRj(j=1,・・・・,m)を取得するため、事前準備としてTK'及び初期値sをランダムに生成すると共に、2m個のテストパターンTPi(i=1,・・・・,2m)を生成しておく。
ここで、真のテストキーであるTKがランダムなTK'と一致する確率は1/2であり、kが十分大きければ、一致する確率は無視できる。よって、以降は、
TK≠TK'
であると考える。
【0074】
攻撃者はまず、TC(テストコントロール)信号入力部の設定をスキャンテストの開始を示すイネーブル(enable)信号とし、スキャンイン(SI)から、ランダムに生成したテストキー(TK')及び初期値sを順に入力する。これにより、制御部(FSM)111はテスト回路110をインセキュアモード(insecure mode)に設定し、入力された初期値sを無視すると共に、LFSR部113に(r+q)ビットのランダムな初期値を設定する。
【0075】
またデコーダ部(Decoder)112は、ランダムな初期値が設定されたLFSR部113からの出力に応じてサブチェインt(1≦t≦m)を選択する。次に攻撃者は、最初のテストパターンTP1をスキャンイン(SI)より入力する。ここで、各サブチェインに接続されたスキャンフリップフロップ(SFF)はシフトレジスタを構成しているため、選択されたサブチェインtに対してテストパターン(TP1)が入力されると、サブチェインtに接続されているスキャンフリップフロップ(SFF)に格納されていた値がスキャンアウト(SO)より出力される。
【0076】
しかしながらこの値は、テスト開始前に各スキャンフリップフロップ(SFF)に格納されていた値であり、テストパターン(TP1)に対するテスト結果ではないことに注意されたい。
【0077】
続いて攻撃者は、TC(テストコントロール)信号入力部の設定をスキャンテストの終了を示すディスエーブル(disable)にすると共にクロツク(CLK)に1サイクルのクロックを入力してキャプチャ処理(capture)を実施する。キャプチャの実施により、テストパターン(TP1)に対応するテスト結果であるTR1がサブチェインの各スキャンフリップフロップ(SFF)に格納される。
【0078】
よって、攻撃者は、TC(テストコントロール)信号入力部の設定をスキャンテストの開始を示すイネーブル(enable)にしてスキャンイン(SI)に次のテストパターンTP2を供給すると共に、スキャンアウト(SO)より、サブチェインからの出力であるTR1を取得する。
【0079】
この際、テストパターン(TP2)はサブチェインtに格納される一方で、LFSR部113において新たな擬似乱数が生成され、デコーダ部(Decoder)112によって次のサブチェインt'(1≦t'≦m)が選択される。
【0080】
以上の動作より、攻撃者は、テストパターンTP1に対するテスト結果であるTR1を取得するためにTP1及びTP2を入力していることが分かる。TR2を取得する場合も同様にしてTP3及びTP4を利用し、これらの動作を繰り返すことによって、2m個のテストパターンTPi(i=1,・・・・,2m)を入力すると共に、TP2j−1(j=1,・・・・,m)に対応するm個のテスト結果TRj(j=1,・・・・,m)を取得する。なお、TP2jに対応するテスト結果に関しては、TRm+1からTR2mとして得られることに注意されたい。
【0081】
攻撃者は、前述した動作を繰り返し実施することにより、任意のテストパターンに対するテスト結果を取得することが可能となっている。しかしながら、LFSR部113の値、即ち選択されたサブチェインを直接知ることはできないため、入力テストパターン(TPi)に対応する結果(TRj)がいずれのサブチェインから出力されたかを確認するためには、出力(TRj)がサブチェイン1の出力であった場合からサブチェインmの出力であった場合までのm通りについて確認する必要がある。さらに、これを全ての出力TRjに対して実行する必要があるため、攻撃者が確認すべき全てのパターンはm通りとなり、総当りによってこれを確認するための計算量もm通りとなる。
【0082】
ここで、q=4とした場合、m=2−1=15より、わずか4ビット程度のLFSRを利用したとしても、攻撃者に要求される計算量は、
58<1515<259
即ち59ビット相当の計算量が必要となるため、入力テストパターンTPiに対する出力TRjがいずれのサブチェインに対応しているのかを特定することは、計算量的に困難となっている。
【0083】
[2.攻撃対策方式[LTPP05]の問題点について]
次に、上述した非特許文献4に記載のサブチェインを利用した攻撃対策方式[LTPP05]における問題点について検討する。
上記の非特許文献4は、攻撃者を以下のように分類している。
(a)ビギナー(Beginner)
既知の攻撃のみを適用する攻撃者。データの単純な符号化程度で回避可能。
(b)インデペンデント(Independent)
豊富な資金及び知識を持つ攻撃者。対策には強力な暗号アルゴリズムの利用が必須。
(c)ビジネス(Business)
豊富な資金及び知識を持ち、商業的に重要な情報の解析、盗聴を実行するためには違法行為も辞さない攻撃者。
(d)ガバーメント(Government)
無制限のリソースを利用可能な攻撃者。
これらの4種類に分類している。
【0084】
このような分類の上で、上述したサブチェイン構成を持つLTPP05を利用することにより、
(a)ビギナー(Beginner)クラスの攻撃者に対しては、
q=4ビット、
(b)インデペンデント(Independent)クラスの攻撃者に対しては、
q=8ビット程度のLFSRを利用すれば十分であるとしている。
【0085】
また、
(c)ビジネス(Business)クラスの攻撃者に対しては、ICのパッケージを除去し、FIBやエッチングによって配線層やセル層の解析を行うといった侵入攻撃が行われない限り、q=10ビット以上あれば安全である。
さらに、侵入攻撃を実施する(c)ビジネス(Business)クラス及び(d)ガバーメント(Government)クラスの攻撃者に対しては、プローブ(probe)対策等複数のセキュリティ対策を組み合わせる必要があると述べている。
【0086】
しかしながら、攻撃者に必要となる計算量は、非特許文献4に記載された試算より大幅に削減可能であるという問題点が存在する。
すなわち、テストキー(TK)、初期値及びLFSRの生成多項式を知らない攻撃者であっても、確認すべきパターン数は、前述したqビット数によって導出される全てのパターン数mよりはるかに少なくすることが可能である。
以下、この点について説明する。なお、簡単のため、r及びqの値は既知であるものとする。
【0087】
攻撃者はまず、kビットのTK'、qビットの初期値s、及びLビットのテストパターンTPをランダムに生成すると共に、n=2r+q−1個のテストパターンを、TP=TP=・・・・=TP2nとして設定する。
次に攻撃者は、生成したテストキー(TK')、初期値(s)、及びテストパターン(TP(i=1,・・・・,2n))をICに入力し、テスト結果であるTR(j=1,・・・・,n)を取得する。
【0088】
ここで、TK'はランダムに選択されているため、TK=TK'となる確率は1/2であり、kが十分大きければ無視できる。よって攻撃者は、TK'≠TKである、即ちインセキュアモード(insecure mode)であると仮定する。前述した通り、インセキュアモード(insecure mode)では、LFSR部におけるセレクタ部の動作により、サブチェインを選択するLFSRが(r+q)ビットのLFSR(ただし出力はqビットLFSR構成部の値)として動作する。よって、その周期は最長でも2r+q−1=nである。
【0089】
ここで、攻撃者は全て同一の値であるテストパターンTP(i=1,・・・・,2n)を入力しているため、あるサブチェインに対応する回路のスキャンテストが実施された後、再度同一のサブチェインに対応する回路のスキャンテストが実施された場合、両者のテスト結果は同一の値となる。これにより、TR=TR、TR=TRc+1・・・・・となるテスト結果TRが出力された場合、サブチェインの選択順序、即ちLFSRの出力が巡回した、ということが判明するため、(r+q)ビットLFSRの周期はcであると特定することができる。また、同一のテスト結果が出力されない場合には、(r+q)ビットLFSRの最長周期であるn回中に重複する値が出力されないこととなり、その周期はnであることが分かる。
【0090】
次に攻撃者は、LTPP05における(r+q)ビットLFSRの条件を満たす生成多項式の中から、周期がcとなる生成多項式の全候補をリストアップする。非特許文献4では、テストの有効性(testability)を確保するため、qビットLFSR構成部におけるLFSRの生成多項式を原始多項式としている。ここで、原始多項式は必ず既約多項式であるから、その定数項は1であり、かつ非定数項の数は偶数でなければならない。よって、qビットLFSRの原始多項式になりうる生成多項式の全候補数は、下式によって示すことができる。
【0091】
【数1】

【0092】
一方、rビット乱数部に関しては特に制限が存在しないため、LTPP05における(r+q)ビットLFSRの条件を満たす生成多項式の全候補数zは、
z=2×2q−2=2r+q−2
となる。これら全ての候補における周期を確認するために、攻撃者はまず、0でないランダムな初期値を選択し、各候補を生成多項式とするLFSRに対してこの初期値を適用する。
【0093】
次に、LFSRを最大2r+q−1回動作させることにより周期を特定すると共に、周期がcとなる多項式のみをリストアップする。これにより、LTPP05における(r+q)ビットLFSRの全生成多項式候補をリストアップ可能となる。今、このリストを候補リスト(CL:Candidates List)とする。なお、この場合における攻撃者の計算量は、以下の式によって示される。
(2r+q−1)×2r+q−2<2r+q×2r+q−2=22(r+q−1)
【0094】
最後に攻撃者は、候補リスト(CL)に存在する各生成多項式候補に対して、初期値として取りうる全ての値を適用すると共に、各初期値に対してLFSRをc回動作させることによって、確認すべき全入出力パターンを特定する。ここで、CLに存在する生成多項式候補数は、
z<2r+q−2
であるから、攻撃者が全入出力パターンを特定するために必要となる計算量は、z個の多項式に対して初期値となりうる全ての値(n=2r+q−1個)を適用し、かつ各初期値が適用された場合にLFSRを周期であるc回動作させる必要があるため、
z×n×c<2r+q−2×2r+q×2r+q=23(r+q)−2
となる。
【0095】
以上より、攻撃者が実行すべき計算は、候補リスト(CL)を特定するための計算と、全入出力パターンを特定するための計算となり、その計算量は、
2(r+q−1)+23(r+q)−2
未満となる。
ここで、各ビット数を具体的に設定した場合における計算量について考察する。上述した通り、非特許文献4では、q=10ビット以上であれば、侵入攻撃を実施しないビジネスクラス(Business class)の攻撃者であっても、計算量的に安全であると述べている。今、q=10ビットとして、非特許文献4に記載の安全性評価方法により攻撃者の計算量を算出した場合、
=(210−1)(210−1)
となり、
10228<m<210229
となる。
【0096】
これは、10229ビット程度の総当り攻撃となり、現実的には全パターンを確認不可能な計算量となる。しかしながら、本章において示した攻撃手法を利用した場合、非特許文献4に記載の例よりr=4ビットと設定すると、その計算量は、
2(r+q−1)+23(r+q)−2=226+240<241
となり、現在のPC程度の計算機ですら、数時間程度で計算可能な値となる。よって、スキャン回路を利用したICの内部構造に対する不正解析を防止するためにLTPP05を適用したとしても、解析困難性は向上するものの、現実的には解析可能であるという問題点が存在する。
【0097】
[3.本発明の半導体集積回路の構成例について]
次に、本発明の半導体集積回路の構成例について説明する。
本発明は、上述したサブチェインを用いた攻撃対策方式である[LTPP05]における問題点を解決するものであり、スキャン回路を利用したICの秘密情報や内部構造の不正解析の困難性を大きく向上させた構成を実現するものである。
【0098】
上述したように、サブチェインを用いた攻撃対策方式である[LTPP05]では、外部から入力するテストキー(TK)が、正当なテストキーに一致しなかった場合、即ちインセキュアモード(insecure mode)である場合、LFSRに乱数生成部から取得したランダムな初期値を設定することにより、選択されたサブチェインの特定を困難とし、結果として解析を困難としている。
【0099】
これに対し、以下に説明する本発明の構成では、
第一の実施形態において、ICの内部構造解析に影響を与えない部分、即ち、解析されても問題のない回路構成部分に対してダミー(dummy)のサブチェインを割り当て、インセキュアモード(insecure mode)時には、このダミーのサブチェインを適用したスキャン結果を出力する構成としている。
【0100】
また、第二の実施形態においては、インセキュアモード(insecure mode)である場合に、乱数生成部の出力値であるランダムな値をLFSRの初期値として利用せず、ダミーサブチェインに対する設定値として利用し、ランダムな値を直接出力する構成としている。
【0101】
これらの構成により、第一、第二の実施形態共に、攻撃者は、入力するテストキー(TK)を、正当なテストキーと一致させない限り、IC内部構造のうち、機密ではない部分の構造、すなわちダミーサブチェインの構造しか解析することが不可能となる。
【0102】
さらに第二の実施形態においては、テストキー(TK)が不一致である場合に、乱数生成部の生成したランダムな値をダミーサブチェインに設定する構成とし、ランダム値を入力したダミーサブチェインの処理結果を出力する構成としている。これにより、テストキー(TK)の一致、不一致についても確認を困難としている。
【0103】
本発明の構成は、このように、非特許文献4に開示された攻撃対策方式[LTPP05]の構成に加えて、機密ではない回路をテストするためのダミーサブチェイン(dummy sub chain)を0番目のサブチェインとして追加する。
さらに、テストキー(TK)が不一致である場合には、LFSRの初期値として0を設定するよう構成している。これにより、テストキー(TK)を知らない攻撃者がスキャン回路を利用してICの内部構造を不正に解析しようとしても、テストキー(TK)不一致時には、常に機密ではない回路のテスト結果、即ちダミーサブチェインに接続された回路のテスト結果しか取得できず、解析を困難とするものである。
また、第二の実施例では、ダミーサブチェインから出力される値をランダムな値とすることで、テストキー(TK)の一致確認をも実施困難としている。よって、本発明をスキャン回路に適用することにより、スキャン回路を利用したIC内部構造の不正解析を防止することが可能となる。
以下、各実施例の詳細について説明する。
【0104】
[3−1.ダミーサブチェインを用いた本発明の第一実施形態の構成および処理について]
まず、図4以下を参照して本発明の第一実施形態について説明する。
本発明における第一実施形態では、上述した非特許文献4に記載のサブチェインを利用した攻撃対策方式[LTPP05]に対し、次の変更を加えた構成を有する。
【0105】
1.0番目のサブチェイン(sub chain)として、ダミーサブチェイン(dummy sub chain)を追加する。
2.インセキュアモード(insecure mode)時において、LFSRの初期値として0を与える。
3.LFSRの初期値設定用乱数生成部を排除する。
4.LFSRの出力を重複化させるためのrビット乱数部およびセレクタ部を排除する。
【0106】
以下、第一の実施形態における具体的な構成法並びにスキャンテスト時の動作について説明する。
第一の実施形態におけるスキャンチェイン及びテスト制御回路の概要を図4に示す。
図4は、第一の実施形態におけるIC(半導体集積回路)200を示している。
スキャンチェインは、先に図1を参照して説明した[LTPP05]の構成と同様、複数(m個)のサブチェイン220−1〜mに分割して構成されるが、さらに、ダミーサブチェイン251を有する。
【0107】
ダミーサブチェイン251は例えば秘密情報の記録が行われない、実際のデータ処理には利用されないダミーの回路である。
【0108】
ダミーサブチェイン251、およびサブチェイン220−1〜mは、フリップフロップ(FF)や、演算回路、メモリなどの回路素子の連鎖構成を有する。なお、LFSRをqビット構成とした場合、サブチェインの個数[m]は、例えば、
m=2−1
とする。各サブチェイン220−1〜mは各々Lビット、即ちL個のSFF(スキャンフリップフロップ)が接続された構成を持つ。
【0109】
なお、ダミーサブチェイン251、およびサブチェイン220−1〜mの計m+1個のサブチェインのどのサブチェインにデータを入力するかについては、テスト制御回路210が決定する。選択されたサブチェインに図に示すイネーブル信号(EN0〜ENm)が入力され、その選択されたサブチェインにスキャン用のテストデータがテスト制御回路210を介して入力されスキャンテストが行われる。
【0110】
図4に示すように、テスト制御回路210は、制御部(FSM:Finit State Machine)211、テストキー(TK)一致確認回路部214、線形帰還シフトレジスタ(LFSR)部213、およびデコーダ(Decoder)部212を有する。
【0111】
ダミーサブチェイン251、およびサブチェイン220−1〜mに対しては、図4の下部に示すデータ入力部であるスキャンイン(SI)からの入力データに基づいて図4下部に示すテスト制御回路210が設定したデータ列が入力される。その処理結果は、マルチプレクサ230を介して出力部であるスキャンアウト(SO)から出力される。
【0112】
図4に示した通り、本発明の第一実施形態の構成には、先に図1を参照して説明した[LTPP05]の構成にあった乱数生成部118が存在しない。
すなわち、LFSR部213に初期値を設定する用途で利用されていた乱数生成部が存在しない。
【0113】
また、マルチプレクサ230は、ダミーサブチェイン251、およびサブチェイン220−1〜mの計m+1個のサブチェインの出力を行うため、m+1:1MUXとして構成している。
【0114】
テスト制御回路210は、図1を参照して説明した[LTPP05]と同様、制御部(FSM)211、テストキー(TK)一致確認回路部214、線形帰還シフトレジスタ(LFSR)部213、およびデコーダ(Decoder)212を有する。ただし、制御部(FSM)211と、線形帰還シフトレジスタ(LFSR)部213においては、図1を参照して説明した[LTPP05]と異なる処理を実行する。
【0115】
以下、第一実施形態におけるテスト制御回路及び各々の機能について説明する。
なお、テストキー(TK)一致確認回路部214、およびデコーダ(Decoder)212に関しては、先に図1を参照して説明したLTPP05と同一である。
【0116】
すなわち、テストキー(TK)一致確認回路部214は、データ入力部であるスキャンイン(SI)から制御部(FSM)211を介して入力された入力テストキー(TK')と、自身が予め保持している正当なテストキー(TK)が一致するか否かを確認し、一致するならば[pass]を、不一致ならば[fail]を制御部(FSM)に返す。
【0117】
デコーダ部(Decoder)212は、LFSR部213からのqビット入力を十進数や十六進数で表される数字iへと変更し、iをm+1:1マルチプレクサ(MUX)230における選択信号としてMUX230に対して出力すると共に、ダミーサブチェインを含むi番目のサブチェイン(sub chain)に対するイネーブル(enable)信号であるENiをイネーブル(enable)にする。
【0118】
第一実施形態における制御部(FSM)211は、先に図1を参照して説明したLTPP05と同様、スキャンテスト実行時におけるテストモード(test mode)の設定、管理および各モードにおける初期設定処理を実行する。
【0119】
なお、テストモードには、セキュアモード(secure mode)と、インセキュアモード(insecure mode)の2種類が存在する。
セキュアモードは、正しいテストキー(TK)が入力されたことが確認された場合にのみ設定される。それ以外の場合にはインセキュアモードに設定される。
制御部(FSM)211は、電源投入またはリセット直後の初期状態として、インセキュアモード(insecure mode)を設定する。
【0120】
ただし、前述の[LTPP05]では、図2のフローチャートを参照して説明した制御部の処理手順であるステップ006(STEP 006)において、LFSR部に(r+q)ビットの乱数Rを初期値として設定し、初期値をランダムに生成するための乱数生成部を利用している。
しかし、本発明の第一実施形態ではLFSR部に(r+q)ビットの乱数Rを設定せず、乱数Rの代わりに0を設定する点が異なっている。
【0121】
すなわち、外部から入力されテストキー(TK')が正当なテストキー(TK)と一致しない場合、前述の[LTPP05]では、図2のフローチャートを参照して説明した制御部の処理手順であるステップ006(STEP 006)において、LFSR部に(r+q)−bitの乱数Rを初期値として設定している。この乱数は、図1に示すサブチェイン120−1〜mのどのサブチェインをスキャンテスト用サブチェインとして利用するかの決定情報として利用されていた。
【0122】
これに対して、本第一実施形態では、外部から入力されたテストキー(TK')が正当なテストキー(TK)と一致しない場合、LFSR部に0を設定する。この[0]は、図4に示すダミーサブチェイン251をスキャンテスト用サブチェインとして利用する決定情報として利用される。
すなわち、本第一実施形態では、外部から入力されテストキー(TK')が正当なテストキー(TK)と一致しない場合、スキャンテストは、ダミーサブチェイン251のみを利用して実行される。
【0123】
前述したように、ダミーサブチェイン251は例えば秘密情報の記録などが行われない、実際のデータ処理には利用されないダミーの回路である。従ってダミーサブチェイン251からの出力には全く秘密情報が含まれず、秘密情報が漏洩することがない。
【0124】
以下、第一の実施形態における制御部(FSM)211の具体的処理手順について、図5に示すフローチャートを参照して説明する。
【0125】
ステップ021(STEP 021)
テストモード(test mode)をインセキュアモード(insecure mode)に設定する。制御部(FSM)211は、電源投入またはリセット直後の初期状態として、インセキュアモード(insecure mode)を設定する。
【0126】
ステップ022(STEP 022)
TC:(テストコントロール)信号入力部から、スキャンテストの開始を示すイネーブル(enable)信号が入力されるまで待機する。
【0127】
ステップ023(STEP 023)
SI(スキャンイン)入力部から入力される値の先頭よりkビットをテストキー(TK')として、テストキー(TK)一致確認回路部214に入力する。
【0128】
ステップ024(STEP 024)
テストキー(TK)一致確認回路部214において、テストキー一致確認回路処理を実行する。すなわち、
TK'=TK
上記式が成立する[pass]か非成立[fail]かの確認処理を実行する。
【0129】
ステップ025(STEP 025)
ステップ024におけるテストキー一致確認処理の結果、キー不一致を示す[fail]ならばステップ026に進む。キー一致を示す[pass]ならば、ステップ027に進む。
【0130】
ステップ026(STEP 026)
SI(スキャンイン)入力部から入力される値の先頭より(k+1)ビット目から(k+q)ビット目までのqビットを無視すると共に、LFSR部213に初期値として0を設定して、ステップ028に進む。
【0131】
このLFSR部213の設定情報[0]は、デコーダ部(Decoder)212に出力され、スキャンテストデータを入力するサブチェインをダミーサブチェイン251として設定する処理に利用される。
【0132】
ステップ027(STEP 027)
SI(スキャンイン)入力部から入力される値の先頭より(k+1)ビット目から(k+q)ビット目までのqビットを初期値としてLFSR213に設定し、テストモード(test mode)をセキュアモード(secure mode)としてステップ028に進む。
【0133】
ステップ028(STEP 028)
デコーダ部(Decoder)212によるサブチェイン(sub chain)選択処理を実行する。これは、スキャンイン(SI)入力部からのデータを入力するサブチェイン、すなわちスキャンテストを実行するサブチェインの選択処理である。デコーダ部212は、スキャンイン(SI)入力部からのデータを用いて、ダミーサブチェイン251、またはm個のサブチェイン220−1〜mのいずれをテストデータを入力するサブチェインとするかを決定し、決定したサブチェインにイネーブル信号(図4に示すEN0〜ENm)を出力する。イネーブル信号が出力されたサブチェインにスキャンテスト用データが入力されることになる。
【0134】
前述したように、デコーダ部(Decoder)212は、LFSR部213からのqビット入力を十進数や十六進数で表される数字iへと変更し、iをm+1:1マルチプレクサ(MUX)230における選択信号としてMUX230に対して出力すると共に、ダミーサブチェインを含むi番目のサブチェイン(sub chain)に対するイネーブル(enable)信号であるENiをイネーブル(enable)にする。
【0135】
この処理に際して、ステップ026(STEP 026)を経由した場合、すなわち、外部から入力したテストキー(TK')が正当なテストキー(TK)と一致しない場合は、LFSR部213に初期値として設定された[0]を入力し、選択サブチェインをダミーサブチェイン251として設定する処理を行う。
【0136】
ステップ029(STEP 029)
SI(スキャンイン)入力部から入力された値のうち次のLビットを、デコーダ部(Decoder)212によって選択されたサブチェインSIiに入力する。すなわち、選択されたサブチェインに対するデータ入力によるスキャンテストの開始である。
【0137】
ステップ030(STEP 030)
TC:(テストコントロール)信号入力部から、スキャンテストの終了を示すディスエーブル(disable)信号が入力されるまで待機する。
【0138】
ステップ031(STEP 031)
クロック(CLK)信号入力部から入力されたクロック数に応じて、キャプチャ(capture)処理を実行する。
これは、SI(スキャンイン)入力部からサブチェインに入力されたビット列をクロックに応じてサブチェイン内で順次進行させる処理である。
【0139】
ステップ032(STEP 032)
TC:(テストコントロール)信号入力部から、スキャンテストの開始を示すイネーブル(enable)信号が入力された後、クロック(CLK)より入力されたLサイクルのクロックに応じて、サブチェインSIiの値を出力部であるスキャンアウト(SO)から出力すると同時に、スキャンイン(SI)から入力された次のLビットをサブチェインSIiに入力する。
【0140】
ステップ033(STEP 033)
LFSR213を一回動作させ、ステップ028に戻る。
【0141】
ステップ028〜033を繰り返し実行して、複数のサブチェインに対して、それぞれスキャンデータを入力して、そのスキャン結果をスキャンアウト(SO)から出力する。
【0142】
第一実施形態における線形帰還シフトレジスタ部(LFSR)213の構成と処理について図6を参照して説明する。
図6に示す通り、第一実施形態における線形帰還シフトレジスタ部(LFSR)213は、qビットLFSR構成部のみによって構成されている。
先に図3を参照して説明した[LTPP05]の線形帰還シフトレジスタ部(LFSR)113に含まれるrビット乱数部やセレクタ部は保持していない。
本実施形態では、原始多項式を生成多項式としたqビットLFSR構成部のみから構成されている。
【0143】
このように、本発明の第一実施形態では、先に図1〜図3を参照して説明した[LTPP05]の構成と異なり、LFSR部に(r+q)−bitの乱数Rを設定せず、乱数Rの代わりに0を設定する。
【0144】
すなわち、外部から入力されたテストキー(TK')が正当なテストキー(TK)と一致しない場合、LFSR部に0を設定する。この[0]は、図4に示すダミーサブチェイン251をスキャンテスト用サブチェインとして利用する決定情報として利用される。この結果、本第一実施形態では、外部から入力されたテストキー(TK')が正当なテストキー(TK)と一致しない場合、スキャンテストは、ダミーサブチェイン251のみを利用して実行される。ダミーサブチェイン251は例えば秘密情報の記録などが行われない、実際のデータ処理には利用されないダミーの回路である。従ってダミーサブチェイン251からの出力には全く秘密情報が含まれず、秘密情報が漏洩することがない。
【0145】
前述の[LTPP05]では、インセキュアモード(insecure mode)、すなわち、入力キー(TK')が正当なテストキー(TK)と一致しない場合において、LFSR部113に攻撃者が知らないランダムな初期値を設定することにより、スキャンテストデータを入力するサブチェインの選択を複雑化し、攻撃者による入出力パターンの特定を困難としていた。しかしながら、前述したようにこのような構成であっても、攻撃者はLFSRの構成及び(r+q)ビットのランダムな初期値に対する総当り攻撃を行うことにより、入出力パターンを現実的に計算可能な範囲まで絞り込むことが可能である。
【0146】
これに対して、本発明の第一の実施形態では、0番目のサブチェインとして、機密情報が含まれないダミーサブチェイン251を構成し、インセキュアモード(insecure mode)、すなわち、入力キー(TK')が正当なテストキー(TK)と一致しない場合において、LFSR部213の初期値を0に設定することでLFSR部の出力を常に0とし、デコーダ部212によって設定される選択サブチェインをダミーサブチェイン251とする構成としている。これにより攻撃者は、自身が入力したテストパターンに対する出力としては、ダミーサブチェイン251からの出力しか得ることができなくなる。これによって、機密である内部構造の解析を不可能としている。
【0147】
正当なテストキー(TK)を知らない攻撃者は正当なテストキー(TK)と一致しないテストキー(TK')を入力する。本第一実施形態では、この場合、必ずダミーサブチェイン251がテストスキャンチェインとして選択される。攻撃者は、任意のテストパターンを入力し、そのテスト結果を出力として取得可能となるが、この場合の出力は全てダミーサブチェイン251からの出力となる。
【0148】
ダミーサブチェイン251に接続されている被テスト回路はIC内部の機密ではない部分、即ち、解析されたとしても安全性に影響を与えない部分であるため、攻撃者がスキャン回路を利用してICの内部構造を解析したとしても、有益となる情報、即ち機密が露呈するような情報を得ることは不可能である。
【0149】
前述の[LTPP05]は、インセキュアモード(insecure mode)時にLFSRに対して(r+q)ビットのランダムな初期値を設定している。これにより、攻撃者に対して、入力したテストパターンが格納されるサブチェインの特定を困難化が可能となり、結果として、スキャンアウトされた出力データから、テストパターンに対応するテスト結果の特定を計算量的に困難化している。しかしながら、前述した通り、攻撃者は、あるサブチェインに接続された被テスト回路に対して自身が望む特定のパターンを作成し、2個のテストパターンをすべてこの値に設定しておくことにより、出力されるm個のテスト結果のうちいずれかは解析対象である被テスト回路のテスト結果とすることが可能となる。また、前述した通り、入力と出力の組み合わせは現実的な計算量で特定可能であるため、最終的に攻撃者は、ICの内部構造を現実的な計算量の範囲内で解析可能となる。
【0150】
これに対して本発明における第一実施形態では、入力テストキー(TK')が正当でない場合、LFSRに対して0を設定し、これにより必ずダミーサブチェイン251がテストスキャンチェインとして選択される構成としている。攻撃者は、任意のテストパターンを入力し、そのテスト結果を出力として取得可能となるが、この場合の出力は全てダミーサブチェイン251からの出力となる。攻撃者はICの機密ではない部分しか解析できない状態となるため、LTPP05よりはるかに安全性を向上させることが可能となる。
【0151】
インセキュアモード(insecure mode)においてはLFSRに初期値として0を設定するため、先に図1を参照して説明した[LTPP05]の構成において必要であった、乱数生成部が不要となると共に、LFSR部においても、rビット乱数部及びセレクタ部が不要となる。これにより、前述した安全性の向上に加え、テスト制御回路部における回路規模削減をも実現することが可能となる。
【0152】
[3−2.ダミーサブチェインを用いた本発明の第二実施形態の構成および処理について]
次に、図7以下を参照して本発明の第二実施形態について説明する。
本発明における第二の実施形態は、前述の第一実施形態と同様、機密情報を含まないダミーサブチェインを有する構成とするとともに、インセキュアモード(insecure mode)時において、スキャンテストデータを入力するサブチェインに乱数生成部の生成したランダムな値を入力する構成とし、ランダム値を入力したダミーサブチェインの処理結果を出力する構成としている。これにより、テストキー(TK)の一致、不一致についても確認を困難としている。
【0153】
第二の実施形態におけるスキャンチェイン及びテスト制御回路の概要を図7に示す。
図7は、第二の実施形態におけるIC(半導体集積回路)300を示している。
スキャンチェインは、先に図1を参照して説明した[LTPP05]の構成と同様、複数(m個)のサブチェイン320−1〜mに分割して構成されるが、さらに、ダミーサブチェイン351を有する。ダミーサブチェイン351は例えば秘密情報の記録が行われない、実際のデータ処理には利用されないダミーの回路である。
【0154】
ダミーサブチェイン351、およびサブチェイン320−1〜mは、フリップフロップ(FF)や、演算回路、メモリなどの回路素子の連鎖構成を有する。
【0155】
なお、ダミーサブチェイン351、およびサブチェイン320−1〜mの計m+1個のサブチェインのどのサブチェインにデータを入力するかについては、テスト制御回路310が決定する。選択されたサブチェインに図に示すイネーブル信号(EN0〜ENm)が入力され、その選択されたサブチェインにスキャン用のテストデータがテスト制御回路310を介して入力されスキャンテストが行われる。
【0156】
図4に示すように、テスト制御回路310は、制御部(FSM:Finit State Machine)311、テストキー(TK)一致確認回路部314、線形帰還シフトレジスタ(LFSR)部313、デコーダ(Decoder)部312、および乱数生成部318を有する。
【0157】
ダミーサブチェイン351、およびサブチェイン320−1〜mに対しては、図7の下部に示すデータ入力部であるスキャンイン(SI)からの入力データに基づいて図7下部に示すテスト制御回路310が設定したデータ列が入力される。その処理結果は、マルチプレクサ330を介して出力部であるスキャンアウト(SO)から出力される。
【0158】
なお、第二実施形態では、ダミーサブチェイン351の前段に乱数生成部318からの出力、または制御部からの出力を選択してダミーサブチェイン351に入力するセレクタ371を有する。セレクタ371は、例えば以下の処理を行う。例えば入力されたテストキー(TK')が正当なテストキー(TK)と一致しないインセキュアモード(insecure mode)時において、スキャンテストデータを入力するサブチェインに乱数生成部の生成したランダムな値を入力する。すなわち、インセキュアモードでは、ランダム値を入力したダミーサブチェインの処理結果を出力する。これにより、テストキー(TK)の一致、不一致についても確認を困難としている。
【0159】
なお、マルチプレクサ330は、前述の第一実施形態と同様、ダミーサブチェイン351、およびサブチェイン320−1〜mの計m+1個のサブチェインの出力を行うため、m+1:1MUXとして構成している。
【0160】
以下、第二の実施形態の具体的な構成並びにスキャンテスト時の動作について説明する。
【0161】
テスト制御回路310は、第一実施形態と同様、制御部(FSM:Finit State Machine)311、テストキー(TK)一致確認回路部314、線形帰還シフトレジスタ(LFSR)部313、デコーダ(Decoder)部312を有する。本実施形態では、さらに乱数生成部318およびセレクタ371を有する。
【0162】
第二実施形態と第一実施形態とでは、乱数生成部318が存在すること、インセキュアモード(insecure mode)において、ダミーサブチェイン351に対する入力をセレクタ371によって切り替える構成、さらに制御部(FSM)311の処理の一部異なる。その他の構成は、第一実施形態と同様の構成を有する。
【0163】
テストキー(TK)一致確認回路部314は、データ入力部であるスキャンイン(SI)から制御部(FSM)311を介して入力された入力テストキー(TK')と、自身が予め保持している正当なテストキー(TK)が一致するか否かを確認し、一致するならば[pass]を、不一致ならば[fail]を制御部(FSM)に返す。
【0164】
デコーダ部(Decoder)312は、LFSR部313からのqビット入力を十進数や十六進数で表される数字iへと変更し、iをm+1:1マルチプレクサ(MUX)330における選択信号としてMUX330に対して出力すると共に、ダミーサブチェインを含むi番目のサブチェイン(sub chain)に対するイネーブル(enable)信号であるENiをイネーブル(enable)にする。
【0165】
制御部(FSM)211は、先に図1を参照して説明したLTPP05と同様、スキャンテスト実行時におけるテストモード(test mode)の設定、管理および各モードにおける初期設定処理を実行する。
【0166】
前述したように、テストモードにはセキュアモード(secure mode)と、インセキュアモード(insecure mode)の2種類が存在する。
セキュアモードは、正しいテストキー(TK)が入力されたことが確認された場合にのみ設定される。それ以外の場合にはインセキュアモードに設定される。
制御部(FSM)311は、電源投入またはリセット直後の初期状態として、インセキュアモード(insecure mode)を設定する。
【0167】
乱数生成部318は、制御部(FSM)311からの出力信号がインセキュアモード(insecure mode)の設定である場合にアクティブ(active)となり、任意ビット数のランダムな値を生成する。生成された乱数は、セレクタ371を介してダミーサブチェイン351に供給される。
【0168】
セレクタ371は、制御部(FSM)311からの出力信号がセキュアモード(secure mode)である場合には、スキャンイン(SI)からの入力信号SIをダミーサブチェイン(dummy sub chain)351に入力する信号として選択する。一方、制御部(FSM)311からの出力信号がインセキュアモード(insecure mode)である場合には、乱数生成部318によって発生された乱数Zをダミーサブチェイン(dummy sub chain)351に入力する信号として選択する。
【0169】
第二実施形態における制御部(FSM)311は、第一実施形態同様、外部から入力されたテストキー(TK')が正当なテストキー(TK)と一致しない場合、すなわち、インセキュアモード(insecure mode)では、LFSR部に(r+q)ビットの乱数Rを設定せず、乱数Rの代わりに0を設定する。
この[0]は、図7に示すダミーサブチェイン351をスキャンテスト用サブチェインとして利用する決定情報として利用される。
【0170】
なお、第一実施形態では、インセキュアモード(insecure mode)において、ダミーサブチェインに入力するデータは外部から入力されたデータ、すなわちスキャンイン(SI)から入力されたテストパターンであった。これに対して第二実施形態では、インセキュアモード(insecure mode)において、ダミーサブチェインに入力するデータは外部から入力されたデータではなく、乱数生成部318の生成した乱数としている。乱数生成部318の生成したLビットの乱数Zを設定する。
【0171】
以下、第二の実施形態における制御部(FSM)311の具体的処理手順について図8に示すフローチャートを参照して説明する。
【0172】
ステップ041(STEP 041)
テストモード(test mode)をインセキュアモード(insecure mode)に設定する。制御部(FSM)311は、電源投入またはリセット直後の初期状態として、インセキュアモード(insecure mode)を設定する。
【0173】
ステップ042(STEP 042)
TC:(テストコントロール)信号入力部から、スキャンテストの開始を示すイネーブル(enable)信号が入力されるまで待機する。
【0174】
ステップ043(STEP 043)
SI(スキャンイン)入力部から入力される値の先頭よりkビットをテストキー(TK')として、テストキー(TK)一致確認回路部314に入力する。
【0175】
ステップ044(STEP 044)
テストキー(TK)一致確認回路部314において、テストキー一致確認回路処理を実行する。すなわち、
TK'=TK
上記式が成立する[pass]か非成立[fail]かの確認処理を実行する。
【0176】
ステップ045(STEP 045)
ステップ044におけるテストキー一致確認処理の結果、キー不一致を示す[fail]ならばステップ046に進む。キー一致を示す[pass]ならば、ステップ047に進む。
【0177】
ステップ046(STEP 046)
SI(スキャンイン)入力部から入力される値の先頭より(k+1)ビット目から(k+q)ビット目までのqビットを無視すると共に、LFSR部313に初期値として0を設定して、ステップ048に進む。
【0178】
このLFSR部213の設定情報[0]は、デコーダ部(Decoder)312に出力され、スキャンテストデータを入力するサブチェインをダミーサブチェイン351として設定する処理に利用される。
【0179】
ステップ047(STEP 047)
SI(スキャンイン)入力部から入力される値の先頭より(k+1)ビット目から(k+q)ビット目までのqビットを初期値としてLFSR313に設定し、テストモード(test mode)をセキュアモード(secure mode)としてステップ048に進む。
【0180】
ステップ048(STEP 048)
デコーダ部(Decoder)312によるサブチェイン(sub chain)選択処理を実行する。これは、スキャンイン(SI)入力部からのデータを入力するサブチェイン、すなわちスキャンテストを実行するサブチェインの選択処理である。デコーダ部312は、スキャンイン(SI)入力部からのデータを用いて、ダミーサブチェイン351、またはm個のサブチェイン320−1〜mのいずれをテストデータを入力するサブチェインとするかを決定し、決定したサブチェインにイネーブル信号(図7に示すEN0〜ENm)を出力する。イネーブル信号が出力されたサブチェインにスキャンテスト用データが入力されることになる。
【0181】
前述したように、デコーダ部(Decoder)312は、LFSR部313からのqビット入力を十進数や十六進数で表される数字iへと変更し、iをm+1:1マルチプレクサ(MUX)330における選択信号としてMUX330に対して出力すると共に、ダミーサブチェインを含むi番目のサブチェイン(sub chain)に対するイネーブル(enable)信号であるENiをイネーブル(enable)にする。
【0182】
この処理に際して、ステップ046(STEP 046)を経由した場合、すなわち、外部から入力したテストキー(TK')が正当なテストキー(TK)と一致しない場合は、LFSR部313に初期値として設定された[0]を入力し、選択サブチェインをダミーサブチェイン351として設定する処理を行う。
【0183】
ステップ049(STEP 049)
テストモード(test mode)がインセキュアモード(insecure mode)ならばステップ050(STEP 050)に進む。そうでなければステップ051(STEP 051)に進む。
【0184】
ステップ050(STEP 050)
外部から入力したテストキー(TK')が正当なテストキー(TK)と一致しない場合などのインセキュアモード(insecure mode)における処理である。この場合、スキャンイン(SI)から入力された値を無視し、乱数生成部318の生成したリビットの乱数Zをセレクタ371を介してダミーサブチェイン351に入力する。
【0185】
ステップ051(STEP 051)
外部から入力したテストキー(TK')が正当なテストキー(TK)と一致した場合などのセキュアモード(secure mode)における処理である。この場合、スキャンイン(SI)から入力された値のうち次のLビットを、デコーダ部312によって選択されたサブチェイン(SIi)に入力する。
【0186】
ステップ052(STEP 052)
TC:(テストコントロール)信号入力部から、スキャンテストの終了を示すディスエーブル(disable)信号が入力されるまで待機する。
【0187】
ステップ053(STEP 053)
クロック(CLK)信号入力部から入力されたクロック数に応じて、キャプチャ(capture)処理を実行する。
これは、サブチェインに入力されたビット列をクロックに応じてサブチェイン内で順次進行させる処理である。
【0188】
ステップ054(STEP 054)
テストモード(test mode)がインセキュアモード(insecure mode)ならばステップ055(STEP 055)に進む。そうでなければステップ056(STEP 056)に進む。
【0189】
ステップ055(STEP 055)
TC:(テストコントロール)信号入力部から、スキャンテストの開始を示すイネーブル(enable)信号が入力された後、スキャンイン(SI)から入力された値を無視し、乱数生成部318の生成したLビットの乱数Z'をダミーサブチェイン351に入力する。
【0190】
ステップ056(STEP 056)
TC:(テストコントロール)信号入力部から、スキャンテストの開始を示すイネーブル(enable)信号が入力された後、スキャンイン(SI)から入力された値のうち次のLビットを、デコーダ部312によって選択されたサブチェインに入力する。
【0191】
ステップ057(STEP 057)
LFSR313を一回動作させ、ステップ048に戻る。
【0192】
ステップ048〜057は繰り返し実行して、複数のサブチェインに対して、それぞれスキャンデータを入力して、そのスキャン結果をスキャンアウト(SO)から出力する。
【0193】
第二の実施形態においては、第一の実施形態同様、入力キー(TK')が不正である場合などに設定されるインセキュアモード(insecure mode)においてLFSR部313の初期値を0とすることにより、攻撃者がダミーサブチェイン351の出力しか得られないように構成している。さらに、インセキュアモード(insecure mode)では、攻撃者が入力したテストパターンの代わりに、乱数生成部318の生成したランダムな値Zを擬似テストパターンとしてダミーサブチェイン351に入力する構成としている。
これにより、攻撃者に対して機密である内部構造を解析不可能とすると共に、テストキー(TK)の一致、不一致を確認することも困難にしている。
【0194】
このように、第二実施形態では、第一の実施形態同様、ICにおける内部構造のうち、機密ではない部分に対するテスト機能として、ダミーサブチェイン(dummy sub chain)を追加し、インセキュアモード(insecure mode)では、LFSRの初期値として0を設定してテスト結果としての出力をダミーサブチェイン351のみの出力として機密情報の漏れを防止する構成としている。
【0195】
第一実施形態では、ダミーサブチェインへの入力を、攻撃者が入力した任意のテストパターンとしているため、攻撃者が同一の値となるテストパターンを複数個入力した場合、出力されるテスト結果も常に同一の値となる。これを利用することにより、攻撃者は、自身が入力したテストキー(TK')が正しいテストキー(TK)と一致しているか否かを判断可能となる。ただし、攻撃者が実施可能な攻撃者は総当り攻撃のみであるため、TKが十分に大きな値であり、かつ容易に推測不可能であった場合には、攻撃者の優位性を著しく向上させるものではない。
【0196】
これに対して第二実施形態では、インセキュアモードにおいてダミーサブチェイン351に入力される値を攻撃者がスキャンイン(SI)から入力した値ではなく、乱数生成部381の生成した乱数Zとしている。これにより、攻撃者が同一の値となるテストパターンを複数個入力したとしても、出力されるテスト結果が毎回ランダムな値となるため、攻撃者は、自身が入力したテストキー(TK')が正しいテストキー(TK)と一致しているか否かを判断することがより困難となっている。
【0197】
なお、第二実施形態では、第一実施形態に対して、乱数Zを生成するための乱数生成部381、およびセキュアモード時にスキャンイン(SI)からのデータをダミーサブチェイン351に入力し、インセキュアモード時には乱数生成部381からの乱数Zを選択入力するセレクタ371を追加しているため、第一実施形態と比較して、これらの分だけ回路規模が大きくなる。しかしながら、LFSR部313の構成は第一実施形態と同一であるため、前述の[LTPP05]と比較した場合には、回路規模は削減できる。
【0198】
なお、上記実施例においてはIC(半導体集積回路)の構成を中心として説明したが、上記の実施例において説明したにIC(半導体集積回路)を例えばPC等の情報処理装置に装着し、情報処理装置内において上述した各実施例の半導体集積回路におけるデータ処理に対する制御を行う構成としてもよい。この処理制御は、上記の実施例において説明した半導体集積回路内部の制御部において、半導体集積回路内のメモリに格納したプログラムを利用して実行することが可能である。あるいは、情報処理装置内の半導体集積回路と接続された他のLSI素子などに形成された制御部やメモリを利用して、プログラムを実行して上記の構成を持つ半導体集積回路にコマンドを入力してスキャンテスト処理などのデータ処理に対する制御を行う構成としてもよい。
【0199】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【0200】
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【0201】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【0202】
以上、説明したように、本発明の一実施例構成によれば、IC(集積回路)のテスト用パスとして設定されたスキャンチェインを複数のサブパスに分割したサブチェインを設定し、さらに、スキャンテストデータを入力可能とし秘密情報が含まれないダミーサブチェインを構成した。スキャンテストの制御を実行する制御回路は、外部から入力するテストキーの正当性を判定し、入力テストキーが正当でないと判定した場合、ダミーサブチェインをスキャンテストの実行対象として選択してスキャンテストを実行する。この処理により、攻撃者の入力データに基づくスキャンアウト結果は、すべてダミーサブチェインを利用したデータとなり秘密情報の漏洩が防止される。
【符号の説明】
【0203】
100 半導体集積回路
111 制御部(FSM)
112 デコーダ部(Decoder)
113 線形帰還シフトレジスタ(LFSR)
114 テストキー(TK)一致確認回路部
120−1〜m サブチェイン(sub chain)
130 マルチプレクサ(MUX)
181 qビットLFSR構成部
182 セレクタ部
183 rビット乱数部
200 半導体集積回路
211 制御部(FSM)
212 デコーダ部(Decoder)
213 線形帰還シフトレジスタ(LFSR)
214 テストキー(TK)一致確認回路部
220−1〜m サブチェイン(sub chain)
230 マルチプレクサ(MUX)
251 ダミーサブチェイン
300 半導体集積回路
311 制御部(FSM)
312 デコーダ部(Decoder)
313 線形帰還シフトレジスタ(LFSR)
314 テストキー(TK)一致確認回路部
318 乱数生成部
320−1〜m サブチェイン(sub chain)
330 マルチプレクサ(MUX)
351 ダミーサブチェイン
371 セレクタ

【特許請求の範囲】
【請求項1】
集積回路におけるスキャンテスト用パスであるスキャンチェインを複数のサブパスに分割して設定した複数のサブチェインと、
スキャンテストデータを入力可能なダミーサブチェインと、
外部から入力するテストキーの正当性を判定するテストキー確認部と、
入力テストキーが正当でないと判定した場合、前記ダミーサブチェインをスキャンテストの実行対象として選択するテスト制御部と、
を有する半導体集積回路。
【請求項2】
前記テスト制御部は、
スキャンテストの実行対象とするサブチェインを選択するための選択用データを入力データに基づいて生成するLFSR部(線形帰還シフトレジスタ)と、
入力テストキーが正当でない場合、前記LFSR部に前記ダミーサブチェインをスキャンテストの実行対象として選択するデータを設定する制御部を有する請求項1に記載の半導体集積回路。
【請求項3】
前記テスト制御部は、
入力テストキーが正当でない場合、前記ダミーサブチェインに乱数を入力する構成を有する請求項2に記載の半導体集積回路。
【請求項4】
前記テスト制御部は、
乱数生成部を有し、入力テストキーが正当でない場合、前記乱数生成部の生成した乱数を前記ダミーサブチェインに入力する構成を有する請求項3に記載の半導体集積回路。
【請求項5】
前記LFSR部は、原始多項式を生成多項式とした構成を持つ請求項2に記載の半導体集積回路。
【請求項6】
前記ダミーサブチェインは、機密情報を保持しない回路構成を有する請求項1〜5いずれかに記載の半導体集積回路。
【請求項7】
前記請求項1〜6いずれかに記載の半導体集積回路を備えた情報処理装置。
【請求項8】
情報処理装置においてスキャンテストを実行するデータ処理方法であり、
前記情報処理装置は集積回路を備えた構成であり、前記集積回路はスキャンテスト用パスであるスキャンチェインを複数のサブパスに分割して設定した複数のサブチェインと、スキャンテストデータを入力可能なダミーサブチェインを有し、
前記情報処理装置のテストキー確認部が、外部から入力するテストキーの正当性を判定するテストキー確認ステップと、
前記情報処理装置のテスト制御部が、入力テストキーが正当でないと判定した場合、前記ダミーサブチェインをスキャンテストの実行対象として選択するテスト制御ステップと、
を実行するデータ処理方法。
【請求項9】
情報処理装置においてスキャンテストを実行させるプログラムであり、
前記情報処理装置は集積回路を備えた構成であり、前記集積回路はスキャンテスト用パスであるスキャンチェインを複数のサブパスに分割して設定した複数のサブチェインと、スキャンテストデータを入力可能なダミーサブチェインを有し、
前記情報処理装置のテストキー確認部に、外部から入力するテストキーの正当性を判定させるテストキー確認ステップと、
前記情報処理装置のテスト制御部に、入力テストキーが正当でないと判定した場合、前記ダミーサブチェインをスキャンテストの実行対象として選択させるテスト制御ステップと、
を実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2011−107930(P2011−107930A)
【公開日】平成23年6月2日(2011.6.2)
【国際特許分類】
【出願番号】特願2009−261555(P2009−261555)
【出願日】平成21年11月17日(2009.11.17)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】