(57)【要約】【課題】スキャンチェインを介した秘密情報漏洩を防止した構成を実現する。【解決手段】ＩＣ（集積回路）のテスト用パスとして設定されたスキャンチェインを複数のサブパスに分割したサブチェインを設定し、さらに、スキャンテストデータを入力可能とし秘密情報が含まれないダミーサブチェインを構成した。スキャンテストの制御を実行する制御回路は、外部から入力するテストキーの正当性を判定し、入力テストキーが正当でないと判定した場合、ダミーサブチェインをスキャンテストの実行対象として選択してスキャンテストを実行する。この処理により、攻撃者の入力データに基づくスキャンアウト結果は、すべてダミーサブチェインを利用したデータとなり秘密情報の漏洩が防止される。【選択図】図４
2011107930.tif 000002
【特許請求の範囲】
【請求項１】
集積回路におけるスキャンテスト用パスであるスキャンチェインを複数のサブパスに分割して設定した複数のサブチェインと、
スキャンテストデータを入力可能なダミーサブチェインと、
外部から入力するテストキーの正当性を判定するテストキー確認部と、
入力テストキーが正当でないと判定した場合、前記ダミーサブチェインをスキャンテストの実行対象として選択するテスト制御部と、
を有する半導体集積回路。
【請求項２】
前記テスト制御部は、
スキャンテストの実行対象とするサブチェインを選択するための選択用データを入力データに基づいて生成するＬＦＳＲ部（線形帰還シフトレジスタ）と、
入力テストキーが正当でない場合、前記ＬＦＳＲ部に前記ダミーサブチェインをスキャンテストの実行対象として選択するデータを設定する制御部を有する請求項１に記載の半導体集積回路。
【請求項３】
前記テスト制御部は、
入力テストキーが正当でない場合、前記ダミーサブチェインに乱数を入力する構成を有する請求項２に記載の半導体集積回路。
【請求項４】
前記テスト制御部は、
乱数生成部を有し、入力テストキーが正当でない場合、前記乱数生成部の生成した乱数を前記ダミーサブチェインに入力する構成を有する請求項３に記載の半導体集積回路。
【請求項５】
前記ＬＦＳＲ部は、原始多項式を生成多項式とした構成を持つ請求項２に記載の半導体集積回路。
【請求項６】
前記ダミーサブチェインは、機密情報を保持しない回路構成を有する請求項１〜５いずれかに記載の半導体集積回路。
【請求項７】
前記請求項１〜６いずれかに記載の半導体集積回路を備えた情報処理装置。
【請求項８】
情報処理装置においてスキャンテストを実行するデータ処理方法であり、
前記情報処理装置は集積回路を備えた構成であり、前記集積回路はスキャンテスト用パスであるスキャンチェインを複数のサブパスに分割して設定した複数のサブチェインと、スキャンテストデータを入力可能なダミーサブチェインを有し、
前記情報処理装置のテストキー確認部が、外部から入力するテストキーの正当性を判定するテストキー確認ステップと、
前記情報処理装置のテスト制御部が、入力テストキーが正当でないと判定した場合、前記ダミーサブチェインをスキャンテストの実行対象として選択するテスト制御ステップと、
を実行するデータ処理方法。
【請求項９】
情報処理装置においてスキャンテストを実行させるプログラムであり、
前記情報処理装置は集積回路を備えた構成であり、前記集積回路はスキャンテスト用パスであるスキャンチェインを複数のサブパスに分割して設定した複数のサブチェインと、スキャンテストデータを入力可能なダミーサブチェインを有し、
前記情報処理装置のテストキー確認部に、外部から入力するテストキーの正当性を判定させるテストキー確認ステップと、
前記情報処理装置のテスト制御部に、入力テストキーが正当でないと判定した場合、前記ダミーサブチェインをスキャンテストの実行対象として選択させるテスト制御ステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、情報処理装置、およびデータ処理方法、並びにプログラムに関する。さらに詳細には、半導体集積回路のテスト用回路であるスキャン回路からの情報漏洩を防止する構成を持つ半導体集積回路、情報処理装置、およびデータ処理方法、並びにプログラムに関する。
【背景技術】
【０００２】
現代社会はカード社会と呼ばれるほど、クレジットカード、キャッシュカード、プリペイドカード、身分証明書、各種会員証等、多種多様なカードが利用されており、日常生活に欠かせないものとなっている。このような各種カードには、多くの場合、利用者の個人情報など機密性の高い情報が記録されている。従来から多く利用されていた磁気カードは、カード上の磁気ストライプに情報を記録していたため、スキミングと呼ばれる磁気情報の不正な読み取りや改竄が容易に可能であるという問題点が存在する。また、カードの普及に伴って多種多様なサービスが提供されつつあり、カードに格納される情報はますます多量化、高価値化している。よって現在では、より大量のデータを安全に保護可能なカードが必要不可欠となってきている。
【０００３】
このような要求を満たすものとして、カード内部に半導体集積回路（ＩＣ）を搭載したＩＣカードがある。ＩＣカードには接触型と非接触型の二種類が存在するが、いずれのタイプにおいても、各種情報をＩＣ内の不揮発性メモリ内に格納するため、磁気カードよりも多くの情報を記録可能である。また、各種情報の他プログラム等のアプリケーションもＩＣ内部に保持することが可能であり、磁気カードと比較して安全性が向上する。このようにＩＣカードは利便性や秘密保持性の点で優れており、現在では、クレジットカード、電子マネー、あるいは衛星有料放送用のカードなど様々な分野で多く利用されている。
【０００４】
しかしながら、一方ではＩＣカード等の半導体集積回路から秘密情報を盗み取るといった攻撃による被害も発生している。例えば非特許文献１、２には、ＩＣに対する解析技術を利用した攻撃手法が開示されている。また、非特許文献３は、ＩＣ自身のテスト回路を利用することにより、内部構造や秘密情報を取得する攻撃手法を開示している。このような様々な攻撃手法に対抗するため、ＩＣに対する不正解析への対策が必要不可欠となってきている。
【０００５】
ＩＣへの攻撃や解析手法の１つとして、上記非特許文献３に開示されたＩＣの内部構造を検査するためのスキャンテスト（ｓｃａｎ  ｔｅｓｔ）用の回路を利用した処理がある。このスキャン回路を利用した攻撃は、ＩＣに対して所定のデータ入出力を行って内部の構造や内部に格納された秘密情報等を解析するものである。この処理ではＩＣのリバースエンジニアリングが不要であり、ＩＣを破壊することなく解析が可能となる。
【０００６】
従って、ＩＣカード等の安全対策としてスキャン回路を利用した攻撃に対する対策を講じることは必要不可欠となっている。なお、スキャンテストについては、例えば特許文献１に記載がある。
【０００７】
ＩＣ（半導体集積回路）にはフリップフロップ（ＦＦ）が多数利用されている。
スキャンテスト（ｓｃａｎ  ｔｅｓｔ）は、このＩＣ内部に構成されたフリップフロップ（ＦＦ）等の連鎖構成であるスキャンチェイン、すなわちスキャン回路を利用したデータ入出力処理によりＩＣ内部の回路が正常に動作するか否か等を確認するため、ＩＣの製造時のテストとして行われる。
【０００８】
スキャン回路は、ＩＣ製造時のテスト用回路として不可欠なものとなっているが、攻撃者は、このスキャン回路を利用して様々なデータを入力し、その出力を解析することでＩＣの内部構造や内部の格納情報を不正に取得するという攻撃を行う。
【０００９】
スキャンチェインの構成要素であるフリップフロップ（ＦＦ）は、ビット値（０，１）を保持し、ビット値入出力を高速に行うことが可能であり、例えばキャッシュメモリやレジスタ、その他の電子回路を構成する素子として多く利用されている。
【００１０】
このようなスキャン回路を利用した不正解析を防止するための対策法の一つとして、非特許文献４に開示されたＬｅｅ、Ｔｅｈｒａｎｉｐｏｏｒ、Ｐａｔｅｌ、及びＰｌｕｓｑｕｅｌｌｉｃらによって提案された方式（以降ＬＴＰＰ０５と呼ぶ）が存在する。
【００１１】
この非特許文献４に記載のスキャン回路攻撃の対策方式［ＬＴＰＰ０５］は、スキャンテストに適用するスキャンチェインを複数本のサブチェインに分割し、テスト回路に製造者のみが知る多項式を生成多項式としたＬＦＳＲ（線形帰還シフトレジスタ）を構成している。
【００１２】
テスト実行時には、ＬＦＳＲに設定した値によって１つのサブチェインを選択して、選択したサブチェインにテスト用データを入力して選択サブチェインに接続されているスキャンフリップフロップ（ＳＦＦ：Ｓｃａｎ  Ｆｌｉｐ−Ｆｌｏｐ）から出力される値を出力する構成としている。
【００１３】
また、テスト回路を利用するために必要な情報として、秘密のテストキー（ＴＫ：Ｔｅｓｔ  Ｋｅｙ）を利用する構成としている。
スキャンテストの実行時には、テストキー（ＴＫ）を入力させ、内部に保持した正当なテストキーとの一致確認を行う。入力テストキーが内部に保持したテストキーと一致するならばＬＦＳＲの初期値を外部から設定可能とし、不一致ならばランダムな値がＬＦＳＲに自動的に設定される構成としている。
【００１４】
この構成により、テストキー（ＴＫ）を知る正当なテスト実行者ならば、既知の構造をもつＬＦＳＲに対して任意の初期値を設定可能となるため、任意のサブチェインに対して任意のテストパターンを設定した上でスキャンテストを実施可能となる。
【００１５】
しかし、テストキー（ＴＫ）を知らない攻撃者は、ＬＦＳＲの生成多項式が未知である上にその初期値を設定することが不可能となる。このため、スキャンテストを実行して自身が設定したテストパターンに対するテスト結果を取得したとしても、ＬＦＳＲの値によって選択されたサブチェインを特定することが不可能となる。従って、ＩＣからの出力テスト結果が、どのサブチェインの出力かを特定することができず、入力テストパターンと出力結果との対応付けが困難となり、スキャン回路を利用したＩＣ内部構造の不正な解析を防止することを可能としている。
【００１６】
しかしながら、この非特許文献４に開示された攻撃対策方式［ＬＴＰＰ０５］の構成では、テストキー（ＴＫ）が不一致であったとしても、機密であるべきＩＣの内部構造に対するテスト結果自体、スキャン回路の出力部から出力される。
従って、攻撃者が入力テストパターンと出力テスト結果の対応が把握できれば、不正解析が可能となるという問題点が存在する。
【００１７】
非特許文献４では、ＬＦＳＲの長さを適切に設定することにより、この入出力パターンの対応関係を特定することが計算量的に困難とすることができると述べているが、本明細書において後段で説明する通り、実際には非特許文献４に示された解析方法よりも効率的な解析方法が存在する。従って、当該非特許文献４に示されたＬＦＳＲの長さ程度では、現実的な計算量の範囲内で解析が可能となり、安全対策として不十分であるという問題点が存在する。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特許第３６７１９４８号公報
【非特許文献】
【００１９】
【非特許文献１】Ｒ．Ａｎｄｅｓｏｎ  ａｎｄ  Ｍ．Ｇ．Ｋｕｈｎ，"Ｔａｍｐｅｒ  Ｒｅｓｉｓｔａｎｃｅ−ａ  Ｃａｕｔｉｏｎａｒｙ  Ｎｏｔｅ，"Ｔｈｅ  Ｓｅｃｏｎｄ  ＵＳＥＮＩＸ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｍｍｅｒｃｅ，ｐｐ．１−１１，１９９６．
【非特許文献２】Ｏ．Ｋｏｍｍｅｒｌｉｎｇ  ａｎｄ  Ｍ．  Ｇ．  Ｋｕｈｎ，"Ｄｅｓｉｇｎ  Ｐｒｉｎｃｉｐｌｅｓ  ｆｏｒ  Ｔａｍｐｅｒ−Ｒｅｓｉｓｔａｎｔ  Ｓｍａｒｔｃａｒｄ  Ｐｒｏｃｅｓｓｏｒｓ，"Ｓｍａｒｔｃａｒｄ  '９９，ｐｐ．９−２０，１９９９．
【非特許文献３】Ｂ．Ｙａｎｇ，Ｋ．Ｗｕ，ａｎｄ  Ｒ．Ｋａｒｒｉ，"Ｓｅｃｕｒｅ  Ｓｃａｎ：Ａ  Ｄｅｓｉｇｎ−ｆｏｒ−Ｔｅｓｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｃｒｙｐｔｏ  Ｃｈｉｐｓ，"４２ｔｈ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ  Ｃｏｎｆｅｒｅｎｃｅ  ２００５，ｐｐ．１３５−１４０，２００５．
【非特許文献４】Ｊ．Ｌｅｅ，Ｍ．Ｔｅｈｒａｎｉｐｏｏｒ，Ｃ．Ｐａｔｅｌ，ａｎｄ  Ｊ．Ｐｌｕｓｑｕｅｌｌｉｃ，"Ｓｅｃｕｒｉｎｇ  Ｓｃａｎ  Ｄｅｓｉｇｎ  Ｕｓｉｎｇ  Ｌｏｃｋ＆Ｋｅｙ  Ｔｅｃｈｎｉｑｕｅ，"ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｄｅｆｅｃｔ  ａｎｄ  Ｆａｕｌｔ  Ｔｏｌｅｒａｎｃｅ  ｉｎ  ＶＬＳＩ  Ｓｙｓｔｅｍｓ（ＤＦＴ'０５），２００５．
【発明の概要】
【発明が解決しようとする課題】
【００２０】
本発明は、例えば上述の問題点に鑑みてなされたものであり、ＩＣ（半導体集積回路）のスキャンチェインを利用した攻撃による情報漏洩の防止を実現する半導体集積回路、情報処理装置、およびデータ処理方法、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明の第１の側面は、
集積回路におけるスキャンテスト用パスであるスキャンチェインを複数のサブパスに分割して設定した複数のサブチェインと、
スキャンテストデータを入力可能なダミーサブチェインと、
外部から入力するテストキーの正当性を判定するテストキー確認部と、
入力テストキーが正当でないと判定した場合、前記ダミーサブチェインをスキャンテストの実行対象として選択するテスト制御部と、
を有する半導体集積回路にある。
【００２２】
さらに、本発明の半導体集積回路の一実施態様において、前記テスト制御部は、スキャンテストの実行対象とするサブチェインを選択するための選択用データを入力データに基づいて生成するＬＦＳＲ部（線形帰還シフトレジスタ）と、入力テストキーが正当でない場合、前記ＬＦＳＲ部に前記ダミーサブチェインをスキャンテストの実行対象として選択するデータを設定する制御部を有する。
【００２３】
さらに、本発明の半導体集積回路の一実施態様において、前記テスト制御部は、入力テストキーが正当でない場合、前記ダミーサブチェインに乱数を入力する構成を有する。
【００２４】
さらに、本発明の半導体集積回路の一実施態様において、前記テスト制御部は、乱数生成部を有し、入力テストキーが正当でない場合、前記乱数生成部の生成した乱数を前記ダミーサブチェインに入力する構成を有する。
【００２５】
さらに、本発明の半導体集積回路の一実施態様において、前記ＬＦＳＲ部は、原始多項式を生成多項式とした構成を持つ。
【００２６】
さらに、本発明の半導体集積回路の一実施態様において、前記ダミーサブチェインは、機密情報を保持しない回路構成を有する。
【００２７】
さらに、本発明の第２の側面は、上記半導体集積回路を備えた情報処理装置にある。
【００２８】
さらに、本発明の第３の側面は、
情報処理装置においてスキャンテストを実行するデータ処理方法であり、
前記情報処理装置は集積回路を備えた構成であり、前記集積回路はスキャンテスト用パスであるスキャンチェインを複数のサブパスに分割して設定した複数のサブチェインと、スキャンテストデータを入力可能なダミーサブチェインを有し、
前記情報処理装置のテストキー確認部が、外部から入力するテストキーの正当性を判定するテストキー確認ステップと、
前記情報処理装置のテスト制御部が、入力テストキーが正当でないと判定した場合、前記ダミーサブチェインをスキャンテストの実行対象として選択するテスト制御ステップと、
を実行するデータ処理方法にある。
【００２９】
さらに、本発明の第４の側面は、
情報処理装置においてスキャンテストを実行させるプログラムであり、
前記情報処理装置は集積回路を備えた構成であり、前記集積回路はスキャンテスト用パスであるスキャンチェインを複数のサブパスに分割して設定した複数のサブチェインと、スキャンテストデータを入力可能なダミーサブチェインを有し、
前記情報処理装置のテストキー確認部に、外部から入力するテストキーの正当性を判定させるテストキー確認ステップと、
前記情報処理装置のテスト制御部に、入力テストキーが正当でないと判定した場合、前記ダミーサブチェインをスキャンテストの実行対象として選択させるテスト制御ステップと、
を実行させるプログラムにある。
【００３０】
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な画像処理装置やコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、情報処理装置やコンピュータ・システム上でプログラムに応じた処理が実現される。
【００３１】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００３２】
本発明の一実施例によれば、ＩＣ（集積回路）のテスト用パスとして設定されたスキャンチェインを複数のサブパスに分割したサブチェインを設定し、さらに、スキャンテストデータを入力可能とし秘密情報が含まれないダミーサブチェインを構成した。スキャンテストの制御を実行する制御回路は、外部から入力するテストキーの正当性を判定し、入力テストキーが正当でないと判定した場合、ダミーサブチェインをスキャンテストの実行対象として選択してスキャンテストを実行する。この処理により、攻撃者の入力データに基づくスキャンアウト結果は、すべてダミーサブチェインを利用したデータとなり秘密情報の漏洩が防止される。
【図面の簡単な説明】
【００３３】
【図１】半導体集積回路におけるスキャンチェインを適用した攻撃に対する対策としてサブチェインを利用した対策手法［ＬＴＰＰ０５］について説明する図である。
【図２】図１に示すサブチェインを利用した対策手法［ＬＴＰＰ０５］の処理シーケンスについて説明するフローチャートを示す図である。
【図３】図１に示すサブチェインを利用した対策手法［ＬＴＰＰ０５］に用いられたＬＦＳＲ部の構成について説明する図である。
【図４】本発明の第一実施形態に係る半導体集積回路におけるスキャンチェインを適用した攻撃に対する対策手法について説明するＩＣ（半導体集積回路）の構成について説明する図である。
【図５】図４に示す本発明の第一実施形態に係る半導体集積回路における処理シーケンスについて説明するフローチャートを示す図である。
【図６】図４に示す本発明の第一実施形態に係る半導体集積回路に用いられるＬＦＳＲ部の構成について説明する図である。
【図７】本発明の第二実施形態に係る半導体集積回路におけるスキャンチェインを適用した攻撃に対する対策手法について説明するＩＣ（半導体集積回路）の構成について説明する図である。
【図８】図７に示す本発明の第二実施形態に係る半導体集積回路における処理シーケンスについて説明するフローチャートを示す図である。
【発明を実施するための形態】
【００３４】
以下、図面を参照しながら本発明の半導体集積回路、情報処理装置、およびデータ処理方法、並びにプログラムの詳細について説明する。説明は、以下の項目に従って行う。
１．サブチェインの利用による攻撃対策方式［ＬＴＰＰ０５］の概要について
２．攻撃対策方式［ＬＴＰＰ０５］の問題点について
３．本発明の半導体集積回路の構成例について
３−１．ダミーサブチェインを用いた本発明の第一実施形態の構成および処理について
３−２．ダミーサブチェインからの出力値をランダムな値に設定する構成を持つを本発明の第二実施形態の構成および処理について
【００３５】
［１．サブチェインの利用による攻撃対策方式［ＬＴＰＰ０５］の概要について］
まず、本発明の構成の説明の前に前述の非特許文献４に記載されたスキャンチェインを用いた攻撃対策手法である［ＬＴＰＰ０５］の概要について説明する。
ＬＴＰＰ０５におけるスキャンチェインおよびびテスト制御回路の概要について、図１を参照して説明する。
図１は、スキャンテストに適用するスキャンチェイン（スキャン回路）を持つＩＣ（半導体集積回路）１００を示している。
攻撃対策方式［ＬＴＰＰ０５］において、スキャンチェインは図１に示すように複数（ｍ個）のサブチェイン１２０−１〜ｍに分割して構成する。
【００３６】
サブチェイン１２０−１〜ｍは、フリップフロップ（ＦＦ）や、演算回路、メモリなどの回路素子の連鎖構成を有する。なお、サブチェイン内に接続されたフリップフロップをスキャンフリップフロップ（ＳＦＦ）と呼ぶ。
各サブチェイン１２０−１〜ｍに対しては、図１の下部に示すデータ入力部であるスキャンイン（ＳＩ）からの入力データに基づいて図１下部に示すテスト制御回路１１０が設定したデータ列が入力される。その処理結果は、マルチプレクサ１３０を介して出力部であるスキャンアウト（ＳＯ）から出力される。
【００３７】
なお、第１サブチェイン１２０−１〜第ｍサブチェイン１２０−ｍのｍ個のサブチェインのどのサブチェインにデータを入力するかについては、テスト制御回路１１０が決定する。選択されたサブチェインに図に示すイネーブル信号（ＥＮ１〜ＥＮｍ）が入力され、その選択されたサブチェインにスキャン用のテストデータがテスト制御回路１１０を介して入力されスキャンテストが行われる。
【００３８】
図１に示すように、テスト制御回路１１０は、乱数生成部１１８、制御部（ＦＳＭ：Ｆｉｎｉｔ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）１１１、テストキー（ＴＫ）一致確認回路部１１４、線形帰還シフトレジスタ（ＬＦＳＲ）部１１３、およびデコーダ（Ｄｅｃｏｄｅｒ）部１１２を有する。
【００３９】
ＬＴＰＰ０５では、ＬＦＳＲをｑビット構成として、サブチェインの個数［ｍ］を、
ｍ＝２ｑ−１
としている。
各サブチェイン１２０−１〜ｍは各々Ｌビット、即ちＬ個のＳＦＦ（スキャンフリップフロップ）が接続された構成を持つ。
【００４０】
以下、テスト制御回路１１０を構成する構成部の各々の機能について説明する。
なお、テスト制御回路１１０は以下の入力部を有する。
ＳＩ（スキャンイン）：各サブチェインに対するテストデータ等の入力部、
ＴＣ：（テストコントロール）：スキャンテストの開始を示すイネーブル信号（ｅｎａｂｌｅ）と、終了を示すディスエーブル信号（ｄｉｓａｂｌｅ）を入力するテスト実行制御信号の入力部、
ＣＬＫ（クロック）：タイミング制御用のクロック信号入力部、
また、マルチプレクサ１３０は、以下の出力部を有する。
ＳＯ（スキャンアウト）：各スキャンサブチェインからの出力データを出力する出力部。
【００４１】
以下、テスト制御回路１１０の各構成部の機能について、順次説明する。
乱数生成部１１８
乱数生成部１１８は、制御部（ＦＳＭ）１１１からの出力信号として安全なテスト実行可能状態でないことを示すインセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）信号が出力（ｈｉｇｈ）されている場合にアクティブ（ａｃｔｉｖｅ）となり、任意ビットのランダムな値（乱数）を生成する。生成された乱数は、ＬＦＳＲ部１１３に入力される。
【００４２】
制御部（ＦＳＭ：Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）１１１
制御部（ＦＳＭ）１１１は、スキャンテスト実行時におけるテストモード（ｔｅｓｔ  ｍｏｄｅ）の設定、管理、および各モードにおける初期設定処理等を実行する。
【００４３】
なお、テストモードには、セキュアモード（ｓｅｃｕｒｅ  ｍｏｄｅ）と、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）の２種類が存在する。
セキュアモードは、正しいテストキー（ＴＫ）が入力されたことが確認された場合にのみ設定される。それ以外の場合にはインセキュアモードに設定される。
制御部（ＦＳＭ）１１１は、電源投入またはリセット直後の初期状態として、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）を設定する。
【００４４】
図１に示すＴＣ（Ｔｅｓｔ  Ｃｏｎｔｒｏｌ）がイネーブル（ｅｎａｂｌｅ）に設定されると、制御部（ＦＳＭ）１１１１部は図に示すＳＩ（スキャンイン（Ｓｃａｎ  Ｉｎ））より入力されるデータのうち、先頭からｋビットをテストキー（ＴＫ'）としてテストキー（ＴＫ）一致確認回路部１１４に入力し、テストキー（ＴＫ）一致確認回路部１１４の保持する正当なテストキー（ＴＫ）との一致確認処理を実行させる。
【００４５】
その後、制御部（ＦＳＭ）１１１は、テストキー（ＴＫ）一致確認回路部１１４から入力キー（ＴＫ'）が正当なキー（ＴＫ）と一致したか否かの情報を受領する。
キー不一致、すなわち、
ＴＫ'≠ＴＫ
を表す［ｆａｉｌ］であった場合には、ＳＩ（スキャンイン）から入力されるデータのうち、（ｋ＋１）ビットから（ｋ＋ｑ）ビットまでのｑビットを無視すると共に、ＬＦＳＲ部１１３に対して（ｒ＋ｑ）ビットのランダムな値を乱数生成部１１８の生成する乱数として取得し、ＬＦＳＲ部１１３の初期値として設定する。
【００４６】
一方、テストキー（ＴＫ）一致確認回路部１１４からの出力が一致、すなわち、
ＴＫ'＝ＴＫ
を表す［ｐａｓｓ］であった場合には、ＬＦＳＲ部１１３に対し、ＳＩ（スキャンイン）から入力されるデータのうち（ｋ＋１）ビットから（ｋ＋ｑ）ビットまでのｑビットを初期値として設定する。
これらの処理が終了した後、制御部（ＦＳＭ）１１１は次にリセットされるまで現在のモードを維持すると共に、ＳＩより入力されるデータを全サブチェイン１２０−１〜ｍに提供する。
【００４７】
次に、図１に示すＩＣ１００の実行するサブチェインに対するデータ入力処理のシーケンスについて図２のフローチャートを参照して説明する。図２に示すフローチャートは、制御部（ＦＳＭ）１１１部の制御の下に実行する処理である。
【００４８】
ステップ００１（ＳＴＥＰ  ００１）
テストモード（ｔｅｓｔ  ｍｏｄｅ）をインセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）に設定する。前述のように制御部（ＦＳＭ）１１１は、電源投入またはリセット直後の初期状態として、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）を設定する。
【００４９】
ステップ００２（ＳＴＥＰ  ００２）
ＴＣ：（テストコントロール）信号入力部から、スキャンテストの開始を示すイネーブル（ｅｎａｂｌｅ）信号が入力されるまで待機する。
【００５０】
ステップ００３（ＳＴＥＰ  ００３）
ＳＩ（スキャンイン）入力部から入力される値の先頭よりｋビットをテストキー（ＴＫ'）として、テストキー（ＴＫ）一致確認回路部１１４に入力する。
【００５１】
ステップ００４（ＳＴＥＰ  ００４）
テストキー（ＴＫ）一致確認回路部１１４において、テストキー一致確認回路処理を実行する。すなわち、
ＴＫ'＝ＴＫ
上記式が成立する［ｐａｓｓ］か非成立［ｆａｉｌ］かの確認処理を実行する。
【００５２】
ステップ００５（ＳＴＥＰ  ００５）
ステップ００４におけるテストキー一致確認処理の結果、キー不一致を示す［ｆａｉｌ］ならばステップ００６に進む。キー一致を示す［ｐａｓｓ］ならば、ステップ００７に進む。
【００５３】
ステップ００６（ＳＴＥＰ  ００６）
ＳＩ（スキャンイン）入力部から入力される値の先頭より（ｋ＋１）ビット目から（ｋ＋ｑ）ビット目までのｑビットを無視すると共に、乱数生成部１１８において（ｒ＋ｑ）ビットの乱数Ｒを生成し、これを初期値としてＬＦＳＲ１１３に設定して、ステップ００８に進む。
【００５４】
ステップ００７（ＳＴＥＰ  ００７）
ＳＩ（スキャンイン）入力部から入力される値の先頭より（ｋ＋１）ビット目から（ｋ＋ｑ）ビット目までのｑビットを初期値としてＬＦＳＲ１１３に設定し、テストモード（ｔｅｓｔ  ｍｏｄｅ）をセキュアモード（ｓｅｃｕｒｅ  ｍｏｄｅ）としてステップ００８に進む。
【００５５】
ステップ００８（ＳＴＥＰ  ００８）
デコーダ部（Ｄｅｃｏｄｅｒ）１１２によるサブチェイン（ｓｕｂ  ｃｈａｉｎ）選択処理を実行する。これは、スキャンイン（ＳＩ）入力部からのデータを入力するサブチェイン、すなわちスキャンテストを実行するサブチェインの選択処理である。デコーダ部１１２は、スキャンイン（ＳＩ）入力部からのデータを用いて、ｍ個のサブチェインのいずれをテストデータの入力サブチェインとするかを決定し、決定したサブチェインにイネーブル信号（図１に示すＥＮ１〜ＥＮｍ）を出力する。イネーブル信号が出力されたサブチェインにスキャンテスト用データが入力されることになる。
【００５６】
ステップ００９（ＳＴＥＰ  ００９）
ＳＩ（スキャンイン）入力部から入力された値のうち次のＬビットを、デコーダ部（Ｄｅｃｏｄｅｒ）１１２によって選択されたサブチェインＳＩｉに入力する。すなわち、選択されたサブチェインに対するデータ入力によるスキャンテストの開始である。
【００５７】
ステップ０１０（ＳＴＥＰ  ０１０）
ＴＣ：（テストコントロール）信号入力部から、スキャンテストの終了を示すディスエーブル（ｄｉｓａｂｌｅ）信号が入力されるまで待機する。
【００５８】
ステップ０１１（ＳＴＥＰ  ０１１）
クロック（ＣＬＫ）信号入力部から入力されたクロック数に応じて、キャプチャ（ｃａｐｔｕｒｅ）処理を実行する。
これは、ＳＩ（スキャンイン）入力部からサブチェインに入力されたビット列をクロックに応じてサブチェイン内で順次進行させる処理である。
【００５９】
ステップ０１２（ＳＴＥＰ  ０１２）
ＴＣ：（テストコントロール）信号入力部から、スキャンテストの開始を示すイネーブル（ｅｎａｂｌｅ）信号が入力された後、クロック（ＣＬＫ）より入力されたＬサイクルのクロックに応じて、サブチェインＳＩｉの値を出力部であるスキャンアウト（ＳＯ）から出力すると同時に、スキャンイン（ＳＩ）から入力された次のＬビットをサブチェインＳＩｉに入力する。
【００６０】
ステップ０１３（ＳＴＥＰ  ０１３）
ＬＦＳＲ１１３を一回動作させ、ステップ００８に戻る。
【００６１】
ステップ００８〜０１３を繰り返し実行して、ｍ個のサブチェインに対して、それぞれスキャンデータを入力して、そのスキャン結果をスキャンアウト（ＳＯ）から出力する。
【００６２】
前述したように、正当なテスト実行者は、テスト制御回路１００が選択するサブチェインを知ることができるため、サブチェイン１〜ｍに対する入力データと出力データとの対応慣例を把握でき、その対応関係に基づいて各サブチェインの構成回路が正常であるか否かを判定することができる。
【００６３】
テストキー（ＴＫ）一致確認回路部１１４
テストキー（ＴＫ）一致確認回路部１１４は、データ入力部であるスキャンイン（ＳＩ）から制御部（ＦＳＭ）１１１を介して入力された入力テストキー（ＴＫ'）と、自身が予め保持している正当なテストキー（ＴＫ）が一致するか否かを確認し、一致するならば［ｐａｓｓ］を、不一致ならば［ｆａｉｌ］を制御部（ＦＳＭ）に返す。
【００６４】
線形帰還シフトレジスタ部（ＬＦＳＲ）１１３
ＬＦＳＲ部の構成例を図３に示す。図３に示す通り、ＬＦＳＲ１１３は、
ｑビットＬＦＳＲ構成部１８１、
セレクタ部１８２、並びに、
ｒビット乱数部１８３、
これらの３つの構成部から構成されている。
【００６５】
ｑビットＬＦＳＲ構成部１８１は、原始多項式を生成多項式としたｑビットＬＦＳＲからなり、制御部（ＦＳＭ）１１１より入力されるｑビットの値を初期値として設定すると共に、各フリップフロップ（ＦＦ）の値をデコーダ部（Ｄｅｃｏｄｅｒ）１１２に出力する。またｑビットＬＦＳＲ構成部１８１におけるＭＳＢの値をセレクタ部１８２に各々出力する。
【００６６】
セレクタ部１８２は、制御部（ＦＳＭ）１１１から提供されるテストモード（ｔｅｓｔ  ｍｏｄｅ）信号を出力選択信号とし、
テストモード（ｔｅｓｔ  ｍｏｄｅ）＝セキュアモード（ｓｅｃｕｒｅ  ｍｏｄｅ）ならばｑビットＬＦＳＲ構成部１８１からの入力を出力する。
テストモード（ｔｅｓｔ  ｍｏｄｅ）＝インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）ならば後述するｒビット乱数部１８３からの入力をそのまま出力する。
【００６７】
ｒビット乱数部１８３は、ｒビットのＬＦＳＲ構成部１８１と同様に構成された、ｒ個フリップフロップ（ＦＦ）からなる。ただし通常のＬＦＳＲとは異なり、タップ、即ち生成多項式において、０次の項を除く係数が０でない項に対応する各ＦＦの排他的論理和演算結果を、ＬＳＢにフィードバックすることなくセレクタ部１８２への入力としている。
【００６８】
この図３に示す構成により、ＬＦＳＲ部１１３は、
テストモード（ｔｅｓｔ  ｍｏｄｅ）＝セキュアモード（ｓｅｃｕｒｅ  ｍｏｄｅ）
この場合は、セレクタ部１８２の出力がｑビットＬＦＳＲ構成部１８１のＭＳＢとなるため、原始多項式を生成多項式とするｑビットのＬＦＳＲ回路となる。
また、
テストモード（ｔｅｓｔ  ｍｏｄｅ）＝インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍ
この場合は、セレクタ部１８２の出力がｒビット乱数部１８３の出力となるため、（ｒ＋ｑ）ビットＬＦＳＲのうちＭＳＢよりｑビットの値を出力する回路となる。
【００６９】
デコーダ部（Ｄｅｃｏｄｅｒ）１１２
デコーダ部（Ｄｅｃｏｄｅｒ）１１２は、ＬＦＳＲ部１１３からのｑビット入力を十進数や十六進数で表される数字ｉへと変更し、ｉをｍ：１マルチプレクサ（ＭＵＸ）１３０における選択信号としてＭＵＸ１３０に対して出力すると共に、ｉ番目のサブチェイン（ｓｕｂ  ｃｈａｉｎ）に対するイネーブル（ｅｎａｂｌｅ）信号であるＥＮｉをイネーブル（ｅｎａｂｌｅ）にする。
【００７０】
なお、デコーダ部（Ｄｅｃｏｄｅｒ）１１２の構成方法は非特許文献４に記載されている方法の他、様々な方法が考えられ、また各構成法の詳細は本発明になんら影響を与えないため、具体的な構成法及び処理手順に関する記述は省略する。
【００７１】
以上のようにスキャンテストにおけるサブチェイン（ｓｕｂ  ｃｈａｉｎ）及びテスト制御回路を構成することにより、正しいテストキー（ＴＫ）を知るテスト実行者ならば、ＬＦＳＲ１１３の構成が既知であり、かつその初期値を任意に設定可能であるため、スキャンアウト（ＳＯ）から出力された値がスキャンイン（ＳＩ）より入力したどのテストパターンに対応するかを知ることができる。これにより、正規のテスト実行者による任意のテストを実行可能となる。このように複数の分割されたスキャンチェインであるサブチェインのテストを確実に実行することができる。
【００７２】
一方、テストキー（ＴＫ）を知らない攻撃者に対しては、ＬＦＳＲ１１３の構成が未知である上に初期値を設定することが不可能となるため、スキャンアウト（ＳＯ）から出力された値がどのテストパターンに対応するかを特定することは困難となる。以下、攻撃者によるテスト結果の取得方法とその解析方法を具体的に示す。
【００７３】
攻撃者は、ｍ個のテスト結果ＴＲｊ（ｊ＝１，・・・・，ｍ）を取得するため、事前準備としてＴＫ'及び初期値ｓをランダムに生成すると共に、２ｍ個のテストパターンＴＰｉ（ｉ＝１，・・・・，２ｍ）を生成しておく。
ここで、真のテストキーであるＴＫがランダムなＴＫ'と一致する確率は１／２ｋであり、ｋが十分大きければ、一致する確率は無視できる。よって、以降は、
ＴＫ≠ＴＫ'
であると考える。
【００７４】
攻撃者はまず、ＴＣ（テストコントロール）信号入力部の設定をスキャンテストの開始を示すイネーブル（ｅｎａｂｌｅ）信号とし、スキャンイン（ＳＩ）から、ランダムに生成したテストキー（ＴＫ'）及び初期値ｓを順に入力する。これにより、制御部（ＦＳＭ）１１１はテスト回路１１０をインセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）に設定し、入力された初期値ｓを無視すると共に、ＬＦＳＲ部１１３に（ｒ＋ｑ）ビットのランダムな初期値を設定する。
【００７５】
またデコーダ部（Ｄｅｃｏｄｅｒ）１１２は、ランダムな初期値が設定されたＬＦＳＲ部１１３からの出力に応じてサブチェインｔ（１≦ｔ≦ｍ）を選択する。次に攻撃者は、最初のテストパターンＴＰ１をスキャンイン（ＳＩ）より入力する。ここで、各サブチェインに接続されたスキャンフリップフロップ（ＳＦＦ）はシフトレジスタを構成しているため、選択されたサブチェインｔに対してテストパターン（ＴＰ１）が入力されると、サブチェインｔに接続されているスキャンフリップフロップ（ＳＦＦ）に格納されていた値がスキャンアウト（ＳＯ）より出力される。
【００７６】
しかしながらこの値は、テスト開始前に各スキャンフリップフロップ（ＳＦＦ）に格納されていた値であり、テストパターン（ＴＰ１）に対するテスト結果ではないことに注意されたい。
【００７７】
続いて攻撃者は、ＴＣ（テストコントロール）信号入力部の設定をスキャンテストの終了を示すディスエーブル（ｄｉｓａｂｌｅ）にすると共にクロツク（ＣＬＫ）に１サイクルのクロックを入力してキャプチャ処理（ｃａｐｔｕｒｅ）を実施する。キャプチャの実施により、テストパターン（ＴＰ１）に対応するテスト結果であるＴＲ１がサブチェインの各スキャンフリップフロップ（ＳＦＦ）に格納される。
【００７８】
よって、攻撃者は、ＴＣ（テストコントロール）信号入力部の設定をスキャンテストの開始を示すイネーブル（ｅｎａｂｌｅ）にしてスキャンイン（ＳＩ）に次のテストパターンＴＰ２を供給すると共に、スキャンアウト（ＳＯ）より、サブチェインからの出力であるＴＲ１を取得する。
【００７９】
この際、テストパターン（ＴＰ２）はサブチェインｔに格納される一方で、ＬＦＳＲ部１１３において新たな擬似乱数が生成され、デコーダ部（Ｄｅｃｏｄｅｒ）１１２によって次のサブチェインｔ'（１≦ｔ'≦ｍ）が選択される。
【００８０】
以上の動作より、攻撃者は、テストパターンＴＰ１に対するテスト結果であるＴＲ１を取得するためにＴＰ１及びＴＰ２を入力していることが分かる。ＴＲ２を取得する場合も同様にしてＴＰ３及びＴＰ４を利用し、これらの動作を繰り返すことによって、２ｍ個のテストパターンＴＰｉ（ｉ＝１，・・・・，２ｍ）を入力すると共に、ＴＰ２ｊ−１（ｊ＝１，・・・・，ｍ）に対応するｍ個のテスト結果ＴＲｊ（ｊ＝１，・・・・，ｍ）を取得する。なお、ＴＰ２ｊに対応するテスト結果に関しては、ＴＲｍ＋１からＴＲ２ｍとして得られることに注意されたい。
【００８１】
攻撃者は、前述した動作を繰り返し実施することにより、任意のテストパターンに対するテスト結果を取得することが可能となっている。しかしながら、ＬＦＳＲ部１１３の値、即ち選択されたサブチェインを直接知ることはできないため、入力テストパターン（ＴＰｉ）に対応する結果（ＴＲｊ）がいずれのサブチェインから出力されたかを確認するためには、出力（ＴＲｊ）がサブチェイン１の出力であった場合からサブチェインｍの出力であった場合までのｍ通りについて確認する必要がある。さらに、これを全ての出力ＴＲｊに対して実行する必要があるため、攻撃者が確認すべき全てのパターンはｍｍ通りとなり、総当りによってこれを確認するための計算量もｍｍ通りとなる。
【００８２】
ここで、ｑ＝４とした場合、ｍ＝２ｑ−１＝１５より、わずか４ビット程度のＬＦＳＲを利用したとしても、攻撃者に要求される計算量は、
２５８＜１５１５＜２５９、
即ち５９ビット相当の計算量が必要となるため、入力テストパターンＴＰｉに対する出力ＴＲｊがいずれのサブチェインに対応しているのかを特定することは、計算量的に困難となっている。
【００８３】
［２．攻撃対策方式［ＬＴＰＰ０５］の問題点について］
次に、上述した非特許文献４に記載のサブチェインを利用した攻撃対策方式［ＬＴＰＰ０５］における問題点について検討する。
上記の非特許文献４は、攻撃者を以下のように分類している。
（ａ）ビギナー（Ｂｅｇｉｎｎｅｒ）
既知の攻撃のみを適用する攻撃者。データの単純な符号化程度で回避可能。
（ｂ）インデペンデント（Ｉｎｄｅｐｅｎｄｅｎｔ）
豊富な資金及び知識を持つ攻撃者。対策には強力な暗号アルゴリズムの利用が必須。
（ｃ）ビジネス（Ｂｕｓｉｎｅｓｓ）
豊富な資金及び知識を持ち、商業的に重要な情報の解析、盗聴を実行するためには違法行為も辞さない攻撃者。
（ｄ）ガバーメント（Ｇｏｖｅｒｎｍｅｎｔ）
無制限のリソースを利用可能な攻撃者。
これらの４種類に分類している。
【００８４】
このような分類の上で、上述したサブチェイン構成を持つＬＴＰＰ０５を利用することにより、
（ａ）ビギナー（Ｂｅｇｉｎｎｅｒ）クラスの攻撃者に対しては、
ｑ＝４ビット、
（ｂ）インデペンデント（Ｉｎｄｅｐｅｎｄｅｎｔ）クラスの攻撃者に対しては、
ｑ＝８ビット程度のＬＦＳＲを利用すれば十分であるとしている。
【００８５】
また、
（ｃ）ビジネス（Ｂｕｓｉｎｅｓｓ）クラスの攻撃者に対しては、ＩＣのパッケージを除去し、ＦＩＢやエッチングによって配線層やセル層の解析を行うといった侵入攻撃が行われない限り、ｑ＝１０ビット以上あれば安全である。
さらに、侵入攻撃を実施する（ｃ）ビジネス（Ｂｕｓｉｎｅｓｓ）クラス及び（ｄ）ガバーメント（Ｇｏｖｅｒｎｍｅｎｔ）クラスの攻撃者に対しては、プローブ（ｐｒｏｂｅ）対策等複数のセキュリティ対策を組み合わせる必要があると述べている。
【００８６】
しかしながら、攻撃者に必要となる計算量は、非特許文献４に記載された試算より大幅に削減可能であるという問題点が存在する。
すなわち、テストキー（ＴＫ）、初期値及びＬＦＳＲの生成多項式を知らない攻撃者であっても、確認すべきパターン数は、前述したｑビット数によって導出される全てのパターン数ｍｍよりはるかに少なくすることが可能である。
以下、この点について説明する。なお、簡単のため、ｒ及びｑの値は既知であるものとする。
【００８７】
攻撃者はまず、ｋビットのＴＫ'、ｑビットの初期値ｓ、及びＬビットのテストパターンＴＰ１をランダムに生成すると共に、ｎ＝２ｒ＋ｑ−１個のテストパターンを、ＴＰ１＝ＴＰ２＝・・・・＝ＴＰ２ｎとして設定する。
次に攻撃者は、生成したテストキー（ＴＫ'）、初期値（ｓ）、及びテストパターン（ＴＰｉ（ｉ＝１，・・・・，２ｎ））をＩＣに入力し、テスト結果であるＴＲｊ（ｊ＝１，・・・・，ｎ）を取得する。
【００８８】
ここで、ＴＫ'はランダムに選択されているため、ＴＫ＝ＴＫ'となる確率は１／２ｋであり、ｋが十分大きければ無視できる。よって攻撃者は、ＴＫ'≠ＴＫである、即ちインセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）であると仮定する。前述した通り、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）では、ＬＦＳＲ部におけるセレクタ部の動作により、サブチェインを選択するＬＦＳＲが（ｒ＋ｑ）ビットのＬＦＳＲ（ただし出力はｑビットＬＦＳＲ構成部の値）として動作する。よって、その周期は最長でも２ｒ＋ｑ−１＝ｎである。
【００８９】
ここで、攻撃者は全て同一の値であるテストパターンＴＰｉ（ｉ＝１，・・・・，２ｎ）を入力しているため、あるサブチェインに対応する回路のスキャンテストが実施された後、再度同一のサブチェインに対応する回路のスキャンテストが実施された場合、両者のテスト結果は同一の値となる。これにより、ＴＲ１＝ＴＲｃ、ＴＲ２＝ＴＲｃ＋１・・・・・となるテスト結果ＴＲｃが出力された場合、サブチェインの選択順序、即ちＬＦＳＲの出力が巡回した、ということが判明するため、（ｒ＋ｑ）ビットＬＦＳＲの周期はｃであると特定することができる。また、同一のテスト結果が出力されない場合には、（ｒ＋ｑ）ビットＬＦＳＲの最長周期であるｎ回中に重複する値が出力されないこととなり、その周期はｎであることが分かる。
【００９０】
次に攻撃者は、ＬＴＰＰ０５における（ｒ＋ｑ）ビットＬＦＳＲの条件を満たす生成多項式の中から、周期がｃとなる生成多項式の全候補をリストアップする。非特許文献４では、テストの有効性（ｔｅｓｔａｂｉｌｉｔｙ）を確保するため、ｑビットＬＦＳＲ構成部におけるＬＦＳＲの生成多項式を原始多項式としている。ここで、原始多項式は必ず既約多項式であるから、その定数項は１であり、かつ非定数項の数は偶数でなければならない。よって、ｑビットＬＦＳＲの原始多項式になりうる生成多項式の全候補数は、下式によって示すことができる。
【００９１】
【数１】
2011107930.tif 000003
【００９２】
一方、ｒビット乱数部に関しては特に制限が存在しないため、ＬＴＰＰ０５における（ｒ＋ｑ）ビットＬＦＳＲの条件を満たす生成多項式の全候補数ｚは、
ｚ＝２ｒ×２ｑ−２＝２ｒ＋ｑ−２
となる。これら全ての候補における周期を確認するために、攻撃者はまず、０でないランダムな初期値を選択し、各候補を生成多項式とするＬＦＳＲに対してこの初期値を適用する。
【００９３】
次に、ＬＦＳＲを最大２ｒ＋ｑ−１回動作させることにより周期を特定すると共に、周期がｃとなる多項式のみをリストアップする。これにより、ＬＴＰＰ０５における（ｒ＋ｑ）ビットＬＦＳＲの全生成多項式候補をリストアップ可能となる。今、このリストを候補リスト（ＣＬ：Ｃａｎｄｉｄａｔｅｓ  Ｌｉｓｔ）とする。なお、この場合における攻撃者の計算量は、以下の式によって示される。
（２ｒ＋ｑ−１）×２ｒ＋ｑ−２＜２ｒ＋ｑ×２ｒ＋ｑ−２＝２２（ｒ＋ｑ−１）
【００９４】
最後に攻撃者は、候補リスト（ＣＬ）に存在する各生成多項式候補に対して、初期値として取りうる全ての値を適用すると共に、各初期値に対してＬＦＳＲをｃ回動作させることによって、確認すべき全入出力パターンを特定する。ここで、ＣＬに存在する生成多項式候補数は、
ｚ＜２ｒ＋ｑ−２
であるから、攻撃者が全入出力パターンを特定するために必要となる計算量は、ｚ個の多項式に対して初期値となりうる全ての値（ｎ＝２ｒ＋ｑ−１個）を適用し、かつ各初期値が適用された場合にＬＦＳＲを周期であるｃ回動作させる必要があるため、
ｚ×ｎ×ｃ＜２ｒ＋ｑ−２×２ｒ＋ｑ×２ｒ＋ｑ＝２３（ｒ＋ｑ）−２
となる。
【００９５】
以上より、攻撃者が実行すべき計算は、候補リスト（ＣＬ）を特定するための計算と、全入出力パターンを特定するための計算となり、その計算量は、
２２（ｒ＋ｑ−１）＋２３（ｒ＋ｑ）−２
未満となる。
ここで、各ビット数を具体的に設定した場合における計算量について考察する。上述した通り、非特許文献４では、ｑ＝１０ビット以上であれば、侵入攻撃を実施しないビジネスクラス（Ｂｕｓｉｎｅｓｓ  ｃｌａｓｓ）の攻撃者であっても、計算量的に安全であると述べている。今、ｑ＝１０ビットとして、非特許文献４に記載の安全性評価方法により攻撃者の計算量を算出した場合、
ｍｍ＝（２１０−１）（２１０−１）
となり、
２１０２２８＜ｍｍ＜２１０２２９
となる。
【００９６】
これは、１０２２９ビット程度の総当り攻撃となり、現実的には全パターンを確認不可能な計算量となる。しかしながら、本章において示した攻撃手法を利用した場合、非特許文献４に記載の例よりｒ＝４ビットと設定すると、その計算量は、
２２（ｒ＋ｑ−１）＋２３（ｒ＋ｑ）−２＝２２６＋２４０＜２４１
となり、現在のＰＣ程度の計算機ですら、数時間程度で計算可能な値となる。よって、スキャン回路を利用したＩＣの内部構造に対する不正解析を防止するためにＬＴＰＰ０５を適用したとしても、解析困難性は向上するものの、現実的には解析可能であるという問題点が存在する。
【００９７】
［３．本発明の半導体集積回路の構成例について］
次に、本発明の半導体集積回路の構成例について説明する。
本発明は、上述したサブチェインを用いた攻撃対策方式である［ＬＴＰＰ０５］における問題点を解決するものであり、スキャン回路を利用したＩＣの秘密情報や内部構造の不正解析の困難性を大きく向上させた構成を実現するものである。
【００９８】
上述したように、サブチェインを用いた攻撃対策方式である［ＬＴＰＰ０５］では、外部から入力するテストキー（ＴＫ）が、正当なテストキーに一致しなかった場合、即ちインセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）である場合、ＬＦＳＲに乱数生成部から取得したランダムな初期値を設定することにより、選択されたサブチェインの特定を困難とし、結果として解析を困難としている。
【００９９】
これに対し、以下に説明する本発明の構成では、
第一の実施形態において、ＩＣの内部構造解析に影響を与えない部分、即ち、解析されても問題のない回路構成部分に対してダミー（ｄｕｍｍｙ）のサブチェインを割り当て、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）時には、このダミーのサブチェインを適用したスキャン結果を出力する構成としている。
【０１００】
また、第二の実施形態においては、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）である場合に、乱数生成部の出力値であるランダムな値をＬＦＳＲの初期値として利用せず、ダミーサブチェインに対する設定値として利用し、ランダムな値を直接出力する構成としている。
【０１０１】
これらの構成により、第一、第二の実施形態共に、攻撃者は、入力するテストキー（ＴＫ）を、正当なテストキーと一致させない限り、ＩＣ内部構造のうち、機密ではない部分の構造、すなわちダミーサブチェインの構造しか解析することが不可能となる。
【０１０２】
さらに第二の実施形態においては、テストキー（ＴＫ）が不一致である場合に、乱数生成部の生成したランダムな値をダミーサブチェインに設定する構成とし、ランダム値を入力したダミーサブチェインの処理結果を出力する構成としている。これにより、テストキー（ＴＫ）の一致、不一致についても確認を困難としている。
【０１０３】
本発明の構成は、このように、非特許文献４に開示された攻撃対策方式［ＬＴＰＰ０５］の構成に加えて、機密ではない回路をテストするためのダミーサブチェイン（ｄｕｍｍｙ  ｓｕｂ  ｃｈａｉｎ）を０番目のサブチェインとして追加する。
さらに、テストキー（ＴＫ）が不一致である場合には、ＬＦＳＲの初期値として０を設定するよう構成している。これにより、テストキー（ＴＫ）を知らない攻撃者がスキャン回路を利用してＩＣの内部構造を不正に解析しようとしても、テストキー（ＴＫ）不一致時には、常に機密ではない回路のテスト結果、即ちダミーサブチェインに接続された回路のテスト結果しか取得できず、解析を困難とするものである。
また、第二の実施例では、ダミーサブチェインから出力される値をランダムな値とすることで、テストキー（ＴＫ）の一致確認をも実施困難としている。よって、本発明をスキャン回路に適用することにより、スキャン回路を利用したＩＣ内部構造の不正解析を防止することが可能となる。
以下、各実施例の詳細について説明する。
【０１０４】
［３−１．ダミーサブチェインを用いた本発明の第一実施形態の構成および処理について］
まず、図４以下を参照して本発明の第一実施形態について説明する。
本発明における第一実施形態では、上述した非特許文献４に記載のサブチェインを利用した攻撃対策方式［ＬＴＰＰ０５］に対し、次の変更を加えた構成を有する。
【０１０５】
１．０番目のサブチェイン（ｓｕｂ  ｃｈａｉｎ）として、ダミーサブチェイン（ｄｕｍｍｙ  ｓｕｂ  ｃｈａｉｎ）を追加する。
２．インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）時において、ＬＦＳＲの初期値として０を与える。
３．ＬＦＳＲの初期値設定用乱数生成部を排除する。
４．ＬＦＳＲの出力を重複化させるためのｒビット乱数部およびセレクタ部を排除する。
【０１０６】
以下、第一の実施形態における具体的な構成法並びにスキャンテスト時の動作について説明する。
第一の実施形態におけるスキャンチェイン及びテスト制御回路の概要を図４に示す。
図４は、第一の実施形態におけるＩＣ（半導体集積回路）２００を示している。
スキャンチェインは、先に図１を参照して説明した［ＬＴＰＰ０５］の構成と同様、複数（ｍ個）のサブチェイン２２０−１〜ｍに分割して構成されるが、さらに、ダミーサブチェイン２５１を有する。
【０１０７】
ダミーサブチェイン２５１は例えば秘密情報の記録が行われない、実際のデータ処理には利用されないダミーの回路である。
【０１０８】
ダミーサブチェイン２５１、およびサブチェイン２２０−１〜ｍは、フリップフロップ（ＦＦ）や、演算回路、メモリなどの回路素子の連鎖構成を有する。なお、ＬＦＳＲをｑビット構成とした場合、サブチェインの個数［ｍ］は、例えば、
ｍ＝２ｑ−１
とする。各サブチェイン２２０−１〜ｍは各々Ｌビット、即ちＬ個のＳＦＦ（スキャンフリップフロップ）が接続された構成を持つ。
【０１０９】
なお、ダミーサブチェイン２５１、およびサブチェイン２２０−１〜ｍの計ｍ＋１個のサブチェインのどのサブチェインにデータを入力するかについては、テスト制御回路２１０が決定する。選択されたサブチェインに図に示すイネーブル信号（ＥＮ０〜ＥＮｍ）が入力され、その選択されたサブチェインにスキャン用のテストデータがテスト制御回路２１０を介して入力されスキャンテストが行われる。
【０１１０】
図４に示すように、テスト制御回路２１０は、制御部（ＦＳＭ：Ｆｉｎｉｔ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）２１１、テストキー（ＴＫ）一致確認回路部２１４、線形帰還シフトレジスタ（ＬＦＳＲ）部２１３、およびデコーダ（Ｄｅｃｏｄｅｒ）部２１２を有する。
【０１１１】
ダミーサブチェイン２５１、およびサブチェイン２２０−１〜ｍに対しては、図４の下部に示すデータ入力部であるスキャンイン（ＳＩ）からの入力データに基づいて図４下部に示すテスト制御回路２１０が設定したデータ列が入力される。その処理結果は、マルチプレクサ２３０を介して出力部であるスキャンアウト（ＳＯ）から出力される。
【０１１２】
図４に示した通り、本発明の第一実施形態の構成には、先に図１を参照して説明した［ＬＴＰＰ０５］の構成にあった乱数生成部１１８が存在しない。
すなわち、ＬＦＳＲ部２１３に初期値を設定する用途で利用されていた乱数生成部が存在しない。
【０１１３】
また、マルチプレクサ２３０は、ダミーサブチェイン２５１、およびサブチェイン２２０−１〜ｍの計ｍ＋１個のサブチェインの出力を行うため、ｍ＋１：１ＭＵＸとして構成している。
【０１１４】
テスト制御回路２１０は、図１を参照して説明した［ＬＴＰＰ０５］と同様、制御部（ＦＳＭ）２１１、テストキー（ＴＫ）一致確認回路部２１４、線形帰還シフトレジスタ（ＬＦＳＲ）部２１３、およびデコーダ（Ｄｅｃｏｄｅｒ）２１２を有する。ただし、制御部（ＦＳＭ）２１１と、線形帰還シフトレジスタ（ＬＦＳＲ）部２１３においては、図１を参照して説明した［ＬＴＰＰ０５］と異なる処理を実行する。
【０１１５】
以下、第一実施形態におけるテスト制御回路及び各々の機能について説明する。
なお、テストキー（ＴＫ）一致確認回路部２１４、およびデコーダ（Ｄｅｃｏｄｅｒ）２１２に関しては、先に図１を参照して説明したＬＴＰＰ０５と同一である。
【０１１６】
すなわち、テストキー（ＴＫ）一致確認回路部２１４は、データ入力部であるスキャンイン（ＳＩ）から制御部（ＦＳＭ）２１１を介して入力された入力テストキー（ＴＫ'）と、自身が予め保持している正当なテストキー（ＴＫ）が一致するか否かを確認し、一致するならば［ｐａｓｓ］を、不一致ならば［ｆａｉｌ］を制御部（ＦＳＭ）に返す。
【０１１７】
デコーダ部（Ｄｅｃｏｄｅｒ）２１２は、ＬＦＳＲ部２１３からのｑビット入力を十進数や十六進数で表される数字ｉへと変更し、ｉをｍ＋１：１マルチプレクサ（ＭＵＸ）２３０における選択信号としてＭＵＸ２３０に対して出力すると共に、ダミーサブチェインを含むｉ番目のサブチェイン（ｓｕｂ  ｃｈａｉｎ）に対するイネーブル（ｅｎａｂｌｅ）信号であるＥＮｉをイネーブル（ｅｎａｂｌｅ）にする。
【０１１８】
第一実施形態における制御部（ＦＳＭ）２１１は、先に図１を参照して説明したＬＴＰＰ０５と同様、スキャンテスト実行時におけるテストモード（ｔｅｓｔ  ｍｏｄｅ）の設定、管理および各モードにおける初期設定処理を実行する。
【０１１９】
なお、テストモードには、セキュアモード（ｓｅｃｕｒｅ  ｍｏｄｅ）と、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）の２種類が存在する。
セキュアモードは、正しいテストキー（ＴＫ）が入力されたことが確認された場合にのみ設定される。それ以外の場合にはインセキュアモードに設定される。
制御部（ＦＳＭ）２１１は、電源投入またはリセット直後の初期状態として、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）を設定する。
【０１２０】
ただし、前述の［ＬＴＰＰ０５］では、図２のフローチャートを参照して説明した制御部の処理手順であるステップ００６（ＳＴＥＰ  ００６）において、ＬＦＳＲ部に（ｒ＋ｑ）ビットの乱数Ｒを初期値として設定し、初期値をランダムに生成するための乱数生成部を利用している。
しかし、本発明の第一実施形態ではＬＦＳＲ部に（ｒ＋ｑ）ビットの乱数Ｒを設定せず、乱数Ｒの代わりに０を設定する点が異なっている。
【０１２１】
すなわち、外部から入力されテストキー（ＴＫ'）が正当なテストキー（ＴＫ）と一致しない場合、前述の［ＬＴＰＰ０５］では、図２のフローチャートを参照して説明した制御部の処理手順であるステップ００６（ＳＴＥＰ  ００６）において、ＬＦＳＲ部に（ｒ＋ｑ）−ｂｉｔの乱数Ｒを初期値として設定している。この乱数は、図１に示すサブチェイン１２０−１〜ｍのどのサブチェインをスキャンテスト用サブチェインとして利用するかの決定情報として利用されていた。
【０１２２】
これに対して、本第一実施形態では、外部から入力されたテストキー（ＴＫ'）が正当なテストキー（ＴＫ）と一致しない場合、ＬＦＳＲ部に０を設定する。この［０］は、図４に示すダミーサブチェイン２５１をスキャンテスト用サブチェインとして利用する決定情報として利用される。
すなわち、本第一実施形態では、外部から入力されテストキー（ＴＫ'）が正当なテストキー（ＴＫ）と一致しない場合、スキャンテストは、ダミーサブチェイン２５１のみを利用して実行される。
【０１２３】
前述したように、ダミーサブチェイン２５１は例えば秘密情報の記録などが行われない、実際のデータ処理には利用されないダミーの回路である。従ってダミーサブチェイン２５１からの出力には全く秘密情報が含まれず、秘密情報が漏洩することがない。
【０１２４】
以下、第一の実施形態における制御部（ＦＳＭ）２１１の具体的処理手順について、図５に示すフローチャートを参照して説明する。
【０１２５】
ステップ０２１（ＳＴＥＰ  ０２１）
テストモード（ｔｅｓｔ  ｍｏｄｅ）をインセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）に設定する。制御部（ＦＳＭ）２１１は、電源投入またはリセット直後の初期状態として、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）を設定する。
【０１２６】
ステップ０２２（ＳＴＥＰ  ０２２）
ＴＣ：（テストコントロール）信号入力部から、スキャンテストの開始を示すイネーブル（ｅｎａｂｌｅ）信号が入力されるまで待機する。
【０１２７】
ステップ０２３（ＳＴＥＰ  ０２３）
ＳＩ（スキャンイン）入力部から入力される値の先頭よりｋビットをテストキー（ＴＫ'）として、テストキー（ＴＫ）一致確認回路部２１４に入力する。
【０１２８】
ステップ０２４（ＳＴＥＰ  ０２４）
テストキー（ＴＫ）一致確認回路部２１４において、テストキー一致確認回路処理を実行する。すなわち、
ＴＫ'＝ＴＫ
上記式が成立する［ｐａｓｓ］か非成立［ｆａｉｌ］かの確認処理を実行する。
【０１２９】
ステップ０２５（ＳＴＥＰ  ０２５）
ステップ０２４におけるテストキー一致確認処理の結果、キー不一致を示す［ｆａｉｌ］ならばステップ０２６に進む。キー一致を示す［ｐａｓｓ］ならば、ステップ０２７に進む。
【０１３０】
ステップ０２６（ＳＴＥＰ  ０２６）
ＳＩ（スキャンイン）入力部から入力される値の先頭より（ｋ＋１）ビット目から（ｋ＋ｑ）ビット目までのｑビットを無視すると共に、ＬＦＳＲ部２１３に初期値として０を設定して、ステップ０２８に進む。
【０１３１】
このＬＦＳＲ部２１３の設定情報［０］は、デコーダ部（Ｄｅｃｏｄｅｒ）２１２に出力され、スキャンテストデータを入力するサブチェインをダミーサブチェイン２５１として設定する処理に利用される。
【０１３２】
ステップ０２７（ＳＴＥＰ  ０２７）
ＳＩ（スキャンイン）入力部から入力される値の先頭より（ｋ＋１）ビット目から（ｋ＋ｑ）ビット目までのｑビットを初期値としてＬＦＳＲ２１３に設定し、テストモード（ｔｅｓｔ  ｍｏｄｅ）をセキュアモード（ｓｅｃｕｒｅ  ｍｏｄｅ）としてステップ０２８に進む。
【０１３３】
ステップ０２８（ＳＴＥＰ  ０２８）
デコーダ部（Ｄｅｃｏｄｅｒ）２１２によるサブチェイン（ｓｕｂ  ｃｈａｉｎ）選択処理を実行する。これは、スキャンイン（ＳＩ）入力部からのデータを入力するサブチェイン、すなわちスキャンテストを実行するサブチェインの選択処理である。デコーダ部２１２は、スキャンイン（ＳＩ）入力部からのデータを用いて、ダミーサブチェイン２５１、またはｍ個のサブチェイン２２０−１〜ｍのいずれをテストデータを入力するサブチェインとするかを決定し、決定したサブチェインにイネーブル信号（図４に示すＥＮ０〜ＥＮｍ）を出力する。イネーブル信号が出力されたサブチェインにスキャンテスト用データが入力されることになる。
【０１３４】
前述したように、デコーダ部（Ｄｅｃｏｄｅｒ）２１２は、ＬＦＳＲ部２１３からのｑビット入力を十進数や十六進数で表される数字ｉへと変更し、ｉをｍ＋１：１マルチプレクサ（ＭＵＸ）２３０における選択信号としてＭＵＸ２３０に対して出力すると共に、ダミーサブチェインを含むｉ番目のサブチェイン（ｓｕｂ  ｃｈａｉｎ）に対するイネーブル（ｅｎａｂｌｅ）信号であるＥＮｉをイネーブル（ｅｎａｂｌｅ）にする。
【０１３５】
この処理に際して、ステップ０２６（ＳＴＥＰ  ０２６）を経由した場合、すなわち、外部から入力したテストキー（ＴＫ'）が正当なテストキー（ＴＫ）と一致しない場合は、ＬＦＳＲ部２１３に初期値として設定された［０］を入力し、選択サブチェインをダミーサブチェイン２５１として設定する処理を行う。
【０１３６】
ステップ０２９（ＳＴＥＰ  ０２９）
ＳＩ（スキャンイン）入力部から入力された値のうち次のＬビットを、デコーダ部（Ｄｅｃｏｄｅｒ）２１２によって選択されたサブチェインＳＩｉに入力する。すなわち、選択されたサブチェインに対するデータ入力によるスキャンテストの開始である。
【０１３７】
ステップ０３０（ＳＴＥＰ  ０３０）
ＴＣ：（テストコントロール）信号入力部から、スキャンテストの終了を示すディスエーブル（ｄｉｓａｂｌｅ）信号が入力されるまで待機する。
【０１３８】
ステップ０３１（ＳＴＥＰ  ０３１）
クロック（ＣＬＫ）信号入力部から入力されたクロック数に応じて、キャプチャ（ｃａｐｔｕｒｅ）処理を実行する。
これは、ＳＩ（スキャンイン）入力部からサブチェインに入力されたビット列をクロックに応じてサブチェイン内で順次進行させる処理である。
【０１３９】
ステップ０３２（ＳＴＥＰ  ０３２）
ＴＣ：（テストコントロール）信号入力部から、スキャンテストの開始を示すイネーブル（ｅｎａｂｌｅ）信号が入力された後、クロック（ＣＬＫ）より入力されたＬサイクルのクロックに応じて、サブチェインＳＩｉの値を出力部であるスキャンアウト（ＳＯ）から出力すると同時に、スキャンイン（ＳＩ）から入力された次のＬビットをサブチェインＳＩｉに入力する。
【０１４０】
ステップ０３３（ＳＴＥＰ  ０３３）
ＬＦＳＲ２１３を一回動作させ、ステップ０２８に戻る。
【０１４１】
ステップ０２８〜０３３を繰り返し実行して、複数のサブチェインに対して、それぞれスキャンデータを入力して、そのスキャン結果をスキャンアウト（ＳＯ）から出力する。
【０１４２】
第一実施形態における線形帰還シフトレジスタ部（ＬＦＳＲ）２１３の構成と処理について図６を参照して説明する。
図６に示す通り、第一実施形態における線形帰還シフトレジスタ部（ＬＦＳＲ）２１３は、ｑビットＬＦＳＲ構成部のみによって構成されている。
先に図３を参照して説明した［ＬＴＰＰ０５］の線形帰還シフトレジスタ部（ＬＦＳＲ）１１３に含まれるｒビット乱数部やセレクタ部は保持していない。
本実施形態では、原始多項式を生成多項式としたｑビットＬＦＳＲ構成部のみから構成されている。
【０１４３】
このように、本発明の第一実施形態では、先に図１〜図３を参照して説明した［ＬＴＰＰ０５］の構成と異なり、ＬＦＳＲ部に（ｒ＋ｑ）−ｂｉｔの乱数Ｒを設定せず、乱数Ｒの代わりに０を設定する。
【０１４４】
すなわち、外部から入力されたテストキー（ＴＫ'）が正当なテストキー（ＴＫ）と一致しない場合、ＬＦＳＲ部に０を設定する。この［０］は、図４に示すダミーサブチェイン２５１をスキャンテスト用サブチェインとして利用する決定情報として利用される。この結果、本第一実施形態では、外部から入力されたテストキー（ＴＫ'）が正当なテストキー（ＴＫ）と一致しない場合、スキャンテストは、ダミーサブチェイン２５１のみを利用して実行される。ダミーサブチェイン２５１は例えば秘密情報の記録などが行われない、実際のデータ処理には利用されないダミーの回路である。従ってダミーサブチェイン２５１からの出力には全く秘密情報が含まれず、秘密情報が漏洩することがない。
【０１４５】
前述の［ＬＴＰＰ０５］では、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）、すなわち、入力キー（ＴＫ'）が正当なテストキー（ＴＫ）と一致しない場合において、ＬＦＳＲ部１１３に攻撃者が知らないランダムな初期値を設定することにより、スキャンテストデータを入力するサブチェインの選択を複雑化し、攻撃者による入出力パターンの特定を困難としていた。しかしながら、前述したようにこのような構成であっても、攻撃者はＬＦＳＲの構成及び（ｒ＋ｑ）ビットのランダムな初期値に対する総当り攻撃を行うことにより、入出力パターンを現実的に計算可能な範囲まで絞り込むことが可能である。
【０１４６】
これに対して、本発明の第一の実施形態では、０番目のサブチェインとして、機密情報が含まれないダミーサブチェイン２５１を構成し、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）、すなわち、入力キー（ＴＫ'）が正当なテストキー（ＴＫ）と一致しない場合において、ＬＦＳＲ部２１３の初期値を０に設定することでＬＦＳＲ部の出力を常に０とし、デコーダ部２１２によって設定される選択サブチェインをダミーサブチェイン２５１とする構成としている。これにより攻撃者は、自身が入力したテストパターンに対する出力としては、ダミーサブチェイン２５１からの出力しか得ることができなくなる。これによって、機密である内部構造の解析を不可能としている。
【０１４７】
正当なテストキー（ＴＫ）を知らない攻撃者は正当なテストキー（ＴＫ）と一致しないテストキー（ＴＫ'）を入力する。本第一実施形態では、この場合、必ずダミーサブチェイン２５１がテストスキャンチェインとして選択される。攻撃者は、任意のテストパターンを入力し、そのテスト結果を出力として取得可能となるが、この場合の出力は全てダミーサブチェイン２５１からの出力となる。
【０１４８】
ダミーサブチェイン２５１に接続されている被テスト回路はＩＣ内部の機密ではない部分、即ち、解析されたとしても安全性に影響を与えない部分であるため、攻撃者がスキャン回路を利用してＩＣの内部構造を解析したとしても、有益となる情報、即ち機密が露呈するような情報を得ることは不可能である。
【０１４９】
前述の［ＬＴＰＰ０５］は、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）時にＬＦＳＲに対して（ｒ＋ｑ）ビットのランダムな初期値を設定している。これにより、攻撃者に対して、入力したテストパターンが格納されるサブチェインの特定を困難化が可能となり、結果として、スキャンアウトされた出力データから、テストパターンに対応するテスト結果の特定を計算量的に困難化している。しかしながら、前述した通り、攻撃者は、あるサブチェインに接続された被テスト回路に対して自身が望む特定のパターンを作成し、２ｍ個のテストパターンをすべてこの値に設定しておくことにより、出力されるｍ個のテスト結果のうちいずれかは解析対象である被テスト回路のテスト結果とすることが可能となる。また、前述した通り、入力と出力の組み合わせは現実的な計算量で特定可能であるため、最終的に攻撃者は、ＩＣの内部構造を現実的な計算量の範囲内で解析可能となる。
【０１５０】
これに対して本発明における第一実施形態では、入力テストキー（ＴＫ'）が正当でない場合、ＬＦＳＲに対して０を設定し、これにより必ずダミーサブチェイン２５１がテストスキャンチェインとして選択される構成としている。攻撃者は、任意のテストパターンを入力し、そのテスト結果を出力として取得可能となるが、この場合の出力は全てダミーサブチェイン２５１からの出力となる。攻撃者はＩＣの機密ではない部分しか解析できない状態となるため、ＬＴＰＰ０５よりはるかに安全性を向上させることが可能となる。
【０１５１】
インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）においてはＬＦＳＲに初期値として０を設定するため、先に図１を参照して説明した［ＬＴＰＰ０５］の構成において必要であった、乱数生成部が不要となると共に、ＬＦＳＲ部においても、ｒビット乱数部及びセレクタ部が不要となる。これにより、前述した安全性の向上に加え、テスト制御回路部における回路規模削減をも実現することが可能となる。
【０１５２】
［３−２．ダミーサブチェインを用いた本発明の第二実施形態の構成および処理について］
次に、図７以下を参照して本発明の第二実施形態について説明する。
本発明における第二の実施形態は、前述の第一実施形態と同様、機密情報を含まないダミーサブチェインを有する構成とするとともに、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）時において、スキャンテストデータを入力するサブチェインに乱数生成部の生成したランダムな値を入力する構成とし、ランダム値を入力したダミーサブチェインの処理結果を出力する構成としている。これにより、テストキー（ＴＫ）の一致、不一致についても確認を困難としている。
【０１５３】
第二の実施形態におけるスキャンチェイン及びテスト制御回路の概要を図７に示す。
図７は、第二の実施形態におけるＩＣ（半導体集積回路）３００を示している。
スキャンチェインは、先に図１を参照して説明した［ＬＴＰＰ０５］の構成と同様、複数（ｍ個）のサブチェイン３２０−１〜ｍに分割して構成されるが、さらに、ダミーサブチェイン３５１を有する。ダミーサブチェイン３５１は例えば秘密情報の記録が行われない、実際のデータ処理には利用されないダミーの回路である。
【０１５４】
ダミーサブチェイン３５１、およびサブチェイン３２０−１〜ｍは、フリップフロップ（ＦＦ）や、演算回路、メモリなどの回路素子の連鎖構成を有する。
【０１５５】
なお、ダミーサブチェイン３５１、およびサブチェイン３２０−１〜ｍの計ｍ＋１個のサブチェインのどのサブチェインにデータを入力するかについては、テスト制御回路３１０が決定する。選択されたサブチェインに図に示すイネーブル信号（ＥＮ０〜ＥＮｍ）が入力され、その選択されたサブチェインにスキャン用のテストデータがテスト制御回路３１０を介して入力されスキャンテストが行われる。
【０１５６】
図４に示すように、テスト制御回路３１０は、制御部（ＦＳＭ：Ｆｉｎｉｔ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）３１１、テストキー（ＴＫ）一致確認回路部３１４、線形帰還シフトレジスタ（ＬＦＳＲ）部３１３、デコーダ（Ｄｅｃｏｄｅｒ）部３１２、および乱数生成部３１８を有する。
【０１５７】
ダミーサブチェイン３５１、およびサブチェイン３２０−１〜ｍに対しては、図７の下部に示すデータ入力部であるスキャンイン（ＳＩ）からの入力データに基づいて図７下部に示すテスト制御回路３１０が設定したデータ列が入力される。その処理結果は、マルチプレクサ３３０を介して出力部であるスキャンアウト（ＳＯ）から出力される。
【０１５８】
なお、第二実施形態では、ダミーサブチェイン３５１の前段に乱数生成部３１８からの出力、または制御部からの出力を選択してダミーサブチェイン３５１に入力するセレクタ３７１を有する。セレクタ３７１は、例えば以下の処理を行う。例えば入力されたテストキー（ＴＫ'）が正当なテストキー（ＴＫ）と一致しないインセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）時において、スキャンテストデータを入力するサブチェインに乱数生成部の生成したランダムな値を入力する。すなわち、インセキュアモードでは、ランダム値を入力したダミーサブチェインの処理結果を出力する。これにより、テストキー（ＴＫ）の一致、不一致についても確認を困難としている。
【０１５９】
なお、マルチプレクサ３３０は、前述の第一実施形態と同様、ダミーサブチェイン３５１、およびサブチェイン３２０−１〜ｍの計ｍ＋１個のサブチェインの出力を行うため、ｍ＋１：１ＭＵＸとして構成している。
【０１６０】
以下、第二の実施形態の具体的な構成並びにスキャンテスト時の動作について説明する。
【０１６１】
テスト制御回路３１０は、第一実施形態と同様、制御部（ＦＳＭ：Ｆｉｎｉｔ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）３１１、テストキー（ＴＫ）一致確認回路部３１４、線形帰還シフトレジスタ（ＬＦＳＲ）部３１３、デコーダ（Ｄｅｃｏｄｅｒ）部３１２を有する。本実施形態では、さらに乱数生成部３１８およびセレクタ３７１を有する。
【０１６２】
第二実施形態と第一実施形態とでは、乱数生成部３１８が存在すること、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）において、ダミーサブチェイン３５１に対する入力をセレクタ３７１によって切り替える構成、さらに制御部（ＦＳＭ）３１１の処理の一部異なる。その他の構成は、第一実施形態と同様の構成を有する。
【０１６３】
テストキー（ＴＫ）一致確認回路部３１４は、データ入力部であるスキャンイン（ＳＩ）から制御部（ＦＳＭ）３１１を介して入力された入力テストキー（ＴＫ'）と、自身が予め保持している正当なテストキー（ＴＫ）が一致するか否かを確認し、一致するならば［ｐａｓｓ］を、不一致ならば［ｆａｉｌ］を制御部（ＦＳＭ）に返す。
【０１６４】
デコーダ部（Ｄｅｃｏｄｅｒ）３１２は、ＬＦＳＲ部３１３からのｑビット入力を十進数や十六進数で表される数字ｉへと変更し、ｉをｍ＋１：１マルチプレクサ（ＭＵＸ）３３０における選択信号としてＭＵＸ３３０に対して出力すると共に、ダミーサブチェインを含むｉ番目のサブチェイン（ｓｕｂ  ｃｈａｉｎ）に対するイネーブル（ｅｎａｂｌｅ）信号であるＥＮｉをイネーブル（ｅｎａｂｌｅ）にする。
【０１６５】
制御部（ＦＳＭ）２１１は、先に図１を参照して説明したＬＴＰＰ０５と同様、スキャンテスト実行時におけるテストモード（ｔｅｓｔ  ｍｏｄｅ）の設定、管理および各モードにおける初期設定処理を実行する。
【０１６６】
前述したように、テストモードにはセキュアモード（ｓｅｃｕｒｅ  ｍｏｄｅ）と、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）の２種類が存在する。
セキュアモードは、正しいテストキー（ＴＫ）が入力されたことが確認された場合にのみ設定される。それ以外の場合にはインセキュアモードに設定される。
制御部（ＦＳＭ）３１１は、電源投入またはリセット直後の初期状態として、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）を設定する。
【０１６７】
乱数生成部３１８は、制御部（ＦＳＭ）３１１からの出力信号がインセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）の設定である場合にアクティブ（ａｃｔｉｖｅ）となり、任意ビット数のランダムな値を生成する。生成された乱数は、セレクタ３７１を介してダミーサブチェイン３５１に供給される。
【０１６８】
セレクタ３７１は、制御部（ＦＳＭ）３１１からの出力信号がセキュアモード（ｓｅｃｕｒｅ  ｍｏｄｅ）である場合には、スキャンイン（ＳＩ）からの入力信号ＳＩ０をダミーサブチェイン（ｄｕｍｍｙ  ｓｕｂ  ｃｈａｉｎ）３５１に入力する信号として選択する。一方、制御部（ＦＳＭ）３１１からの出力信号がインセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）である場合には、乱数生成部３１８によって発生された乱数Ｚをダミーサブチェイン（ｄｕｍｍｙ  ｓｕｂ  ｃｈａｉｎ）３５１に入力する信号として選択する。
【０１６９】
第二実施形態における制御部（ＦＳＭ）３１１は、第一実施形態同様、外部から入力されたテストキー（ＴＫ'）が正当なテストキー（ＴＫ）と一致しない場合、すなわち、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）では、ＬＦＳＲ部に（ｒ＋ｑ）ビットの乱数Ｒを設定せず、乱数Ｒの代わりに０を設定する。
この［０］は、図７に示すダミーサブチェイン３５１をスキャンテスト用サブチェインとして利用する決定情報として利用される。
【０１７０】
なお、第一実施形態では、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）において、ダミーサブチェインに入力するデータは外部から入力されたデータ、すなわちスキャンイン（ＳＩ）から入力されたテストパターンであった。これに対して第二実施形態では、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）において、ダミーサブチェインに入力するデータは外部から入力されたデータではなく、乱数生成部３１８の生成した乱数としている。乱数生成部３１８の生成したＬビットの乱数Ｚを設定する。
【０１７１】
以下、第二の実施形態における制御部（ＦＳＭ）３１１の具体的処理手順について図８に示すフローチャートを参照して説明する。
【０１７２】
ステップ０４１（ＳＴＥＰ  ０４１）
テストモード（ｔｅｓｔ  ｍｏｄｅ）をインセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）に設定する。制御部（ＦＳＭ）３１１は、電源投入またはリセット直後の初期状態として、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）を設定する。
【０１７３】
ステップ０４２（ＳＴＥＰ  ０４２）
ＴＣ：（テストコントロール）信号入力部から、スキャンテストの開始を示すイネーブル（ｅｎａｂｌｅ）信号が入力されるまで待機する。
【０１７４】
ステップ０４３（ＳＴＥＰ  ０４３）
ＳＩ（スキャンイン）入力部から入力される値の先頭よりｋビットをテストキー（ＴＫ'）として、テストキー（ＴＫ）一致確認回路部３１４に入力する。
【０１７５】
ステップ０４４（ＳＴＥＰ  ０４４）
テストキー（ＴＫ）一致確認回路部３１４において、テストキー一致確認回路処理を実行する。すなわち、
ＴＫ'＝ＴＫ
上記式が成立する［ｐａｓｓ］か非成立［ｆａｉｌ］かの確認処理を実行する。
【０１７６】
ステップ０４５（ＳＴＥＰ  ０４５）
ステップ０４４におけるテストキー一致確認処理の結果、キー不一致を示す［ｆａｉｌ］ならばステップ０４６に進む。キー一致を示す［ｐａｓｓ］ならば、ステップ０４７に進む。
【０１７７】
ステップ０４６（ＳＴＥＰ  ０４６）
ＳＩ（スキャンイン）入力部から入力される値の先頭より（ｋ＋１）ビット目から（ｋ＋ｑ）ビット目までのｑビットを無視すると共に、ＬＦＳＲ部３１３に初期値として０を設定して、ステップ０４８に進む。
【０１７８】
このＬＦＳＲ部２１３の設定情報［０］は、デコーダ部（Ｄｅｃｏｄｅｒ）３１２に出力され、スキャンテストデータを入力するサブチェインをダミーサブチェイン３５１として設定する処理に利用される。
【０１７９】
ステップ０４７（ＳＴＥＰ  ０４７）
ＳＩ（スキャンイン）入力部から入力される値の先頭より（ｋ＋１）ビット目から（ｋ＋ｑ）ビット目までのｑビットを初期値としてＬＦＳＲ３１３に設定し、テストモード（ｔｅｓｔ  ｍｏｄｅ）をセキュアモード（ｓｅｃｕｒｅ  ｍｏｄｅ）としてステップ０４８に進む。
【０１８０】
ステップ０４８（ＳＴＥＰ  ０４８）
デコーダ部（Ｄｅｃｏｄｅｒ）３１２によるサブチェイン（ｓｕｂ  ｃｈａｉｎ）選択処理を実行する。これは、スキャンイン（ＳＩ）入力部からのデータを入力するサブチェイン、すなわちスキャンテストを実行するサブチェインの選択処理である。デコーダ部３１２は、スキャンイン（ＳＩ）入力部からのデータを用いて、ダミーサブチェイン３５１、またはｍ個のサブチェイン３２０−１〜ｍのいずれをテストデータを入力するサブチェインとするかを決定し、決定したサブチェインにイネーブル信号（図７に示すＥＮ０〜ＥＮｍ）を出力する。イネーブル信号が出力されたサブチェインにスキャンテスト用データが入力されることになる。
【０１８１】
前述したように、デコーダ部（Ｄｅｃｏｄｅｒ）３１２は、ＬＦＳＲ部３１３からのｑビット入力を十進数や十六進数で表される数字ｉへと変更し、ｉをｍ＋１：１マルチプレクサ（ＭＵＸ）３３０における選択信号としてＭＵＸ３３０に対して出力すると共に、ダミーサブチェインを含むｉ番目のサブチェイン（ｓｕｂ  ｃｈａｉｎ）に対するイネーブル（ｅｎａｂｌｅ）信号であるＥＮｉをイネーブル（ｅｎａｂｌｅ）にする。
【０１８２】
この処理に際して、ステップ０４６（ＳＴＥＰ  ０４６）を経由した場合、すなわち、外部から入力したテストキー（ＴＫ'）が正当なテストキー（ＴＫ）と一致しない場合は、ＬＦＳＲ部３１３に初期値として設定された［０］を入力し、選択サブチェインをダミーサブチェイン３５１として設定する処理を行う。
【０１８３】
ステップ０４９（ＳＴＥＰ  ０４９）
テストモード（ｔｅｓｔ  ｍｏｄｅ）がインセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）ならばステップ０５０（ＳＴＥＰ  ０５０）に進む。そうでなければステップ０５１（ＳＴＥＰ  ０５１）に進む。
【０１８４】
ステップ０５０（ＳＴＥＰ  ０５０）
外部から入力したテストキー（ＴＫ'）が正当なテストキー（ＴＫ）と一致しない場合などのインセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）における処理である。この場合、スキャンイン（ＳＩ）から入力された値を無視し、乱数生成部３１８の生成したリビットの乱数Ｚをセレクタ３７１を介してダミーサブチェイン３５１に入力する。
【０１８５】
ステップ０５１（ＳＴＥＰ  ０５１）
外部から入力したテストキー（ＴＫ'）が正当なテストキー（ＴＫ）と一致した場合などのセキュアモード（ｓｅｃｕｒｅ  ｍｏｄｅ）における処理である。この場合、スキャンイン（ＳＩ）から入力された値のうち次のＬビットを、デコーダ部３１２によって選択されたサブチェイン（ＳＩｉ）に入力する。
【０１８６】
ステップ０５２（ＳＴＥＰ  ０５２）
ＴＣ：（テストコントロール）信号入力部から、スキャンテストの終了を示すディスエーブル（ｄｉｓａｂｌｅ）信号が入力されるまで待機する。
【０１８７】
ステップ０５３（ＳＴＥＰ  ０５３）
クロック（ＣＬＫ）信号入力部から入力されたクロック数に応じて、キャプチャ（ｃａｐｔｕｒｅ）処理を実行する。
これは、サブチェインに入力されたビット列をクロックに応じてサブチェイン内で順次進行させる処理である。
【０１８８】
ステップ０５４（ＳＴＥＰ  ０５４）
テストモード（ｔｅｓｔ  ｍｏｄｅ）がインセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）ならばステップ０５５（ＳＴＥＰ  ０５５）に進む。そうでなければステップ０５６（ＳＴＥＰ  ０５６）に進む。
【０１８９】
ステップ０５５（ＳＴＥＰ  ０５５）
ＴＣ：（テストコントロール）信号入力部から、スキャンテストの開始を示すイネーブル（ｅｎａｂｌｅ）信号が入力された後、スキャンイン（ＳＩ）から入力された値を無視し、乱数生成部３１８の生成したＬビットの乱数Ｚ'をダミーサブチェイン３５１に入力する。
【０１９０】
ステップ０５６（ＳＴＥＰ  ０５６）
ＴＣ：（テストコントロール）信号入力部から、スキャンテストの開始を示すイネーブル（ｅｎａｂｌｅ）信号が入力された後、スキャンイン（ＳＩ）から入力された値のうち次のＬビットを、デコーダ部３１２によって選択されたサブチェインに入力する。
【０１９１】
ステップ０５７（ＳＴＥＰ  ０５７）
ＬＦＳＲ３１３を一回動作させ、ステップ０４８に戻る。
【０１９２】
ステップ０４８〜０５７は繰り返し実行して、複数のサブチェインに対して、それぞれスキャンデータを入力して、そのスキャン結果をスキャンアウト（ＳＯ）から出力する。
【０１９３】
第二の実施形態においては、第一の実施形態同様、入力キー（ＴＫ'）が不正である場合などに設定されるインセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）においてＬＦＳＲ部３１３の初期値を０とすることにより、攻撃者がダミーサブチェイン３５１の出力しか得られないように構成している。さらに、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）では、攻撃者が入力したテストパターンの代わりに、乱数生成部３１８の生成したランダムな値Ｚを擬似テストパターンとしてダミーサブチェイン３５１に入力する構成としている。
これにより、攻撃者に対して機密である内部構造を解析不可能とすると共に、テストキー（ＴＫ）の一致、不一致を確認することも困難にしている。
【０１９４】
このように、第二実施形態では、第一の実施形態同様、ＩＣにおける内部構造のうち、機密ではない部分に対するテスト機能として、ダミーサブチェイン（ｄｕｍｍｙ  ｓｕｂ  ｃｈａｉｎ）を追加し、インセキュアモード（ｉｎｓｅｃｕｒｅ  ｍｏｄｅ）では、ＬＦＳＲの初期値として０を設定してテスト結果としての出力をダミーサブチェイン３５１のみの出力として機密情報の漏れを防止する構成としている。
【０１９５】
第一実施形態では、ダミーサブチェインへの入力を、攻撃者が入力した任意のテストパターンとしているため、攻撃者が同一の値となるテストパターンを複数個入力した場合、出力されるテスト結果も常に同一の値となる。これを利用することにより、攻撃者は、自身が入力したテストキー（ＴＫ'）が正しいテストキー（ＴＫ）と一致しているか否かを判断可能となる。ただし、攻撃者が実施可能な攻撃者は総当り攻撃のみであるため、ＴＫが十分に大きな値であり、かつ容易に推測不可能であった場合には、攻撃者の優位性を著しく向上させるものではない。
【０１９６】
これに対して第二実施形態では、インセキュアモードにおいてダミーサブチェイン３５１に入力される値を攻撃者がスキャンイン（ＳＩ）から入力した値ではなく、乱数生成部３８１の生成した乱数Ｚとしている。これにより、攻撃者が同一の値となるテストパターンを複数個入力したとしても、出力されるテスト結果が毎回ランダムな値となるため、攻撃者は、自身が入力したテストキー（ＴＫ'）が正しいテストキー（ＴＫ）と一致しているか否かを判断することがより困難となっている。
【０１９７】
なお、第二実施形態では、第一実施形態に対して、乱数Ｚを生成するための乱数生成部３８１、およびセキュアモード時にスキャンイン（ＳＩ）からのデータをダミーサブチェイン３５１に入力し、インセキュアモード時には乱数生成部３８１からの乱数Ｚを選択入力するセレクタ３７１を追加しているため、第一実施形態と比較して、これらの分だけ回路規模が大きくなる。しかしながら、ＬＦＳＲ部３１３の構成は第一実施形態と同一であるため、前述の［ＬＴＰＰ０５］と比較した場合には、回路規模は削減できる。
【０１９８】
なお、上記実施例においてはＩＣ（半導体集積回路）の構成を中心として説明したが、上記の実施例において説明したにＩＣ（半導体集積回路）を例えばＰＣ等の情報処理装置に装着し、情報処理装置内において上述した各実施例の半導体集積回路におけるデータ処理に対する制御を行う構成としてもよい。この処理制御は、上記の実施例において説明した半導体集積回路内部の制御部において、半導体集積回路内のメモリに格納したプログラムを利用して実行することが可能である。あるいは、情報処理装置内の半導体集積回路と接続された他のＬＳＩ素子などに形成された制御部やメモリを利用して、プログラムを実行して上記の構成を持つ半導体集積回路にコマンドを入力してスキャンテスト処理などのデータ処理に対する制御を行う構成としてもよい。
【０１９９】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【０２００】
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０２０１】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０２０２】
以上、説明したように、本発明の一実施例構成によれば、ＩＣ（集積回路）のテスト用パスとして設定されたスキャンチェインを複数のサブパスに分割したサブチェインを設定し、さらに、スキャンテストデータを入力可能とし秘密情報が含まれないダミーサブチェインを構成した。スキャンテストの制御を実行する制御回路は、外部から入力するテストキーの正当性を判定し、入力テストキーが正当でないと判定した場合、ダミーサブチェインをスキャンテストの実行対象として選択してスキャンテストを実行する。この処理により、攻撃者の入力データに基づくスキャンアウト結果は、すべてダミーサブチェインを利用したデータとなり秘密情報の漏洩が防止される。
【符号の説明】
【０２０３】
１００  半導体集積回路
１１１  制御部（ＦＳＭ）
１１２  デコーダ部（Ｄｅｃｏｄｅｒ）
１１３  線形帰還シフトレジスタ（ＬＦＳＲ）
１１４  テストキー（ＴＫ）一致確認回路部
１２０−１〜ｍ  サブチェイン（ｓｕｂ  ｃｈａｉｎ）
１３０  マルチプレクサ（ＭＵＸ）
１８１  ｑビットＬＦＳＲ構成部
１８２  セレクタ部
１８３  ｒビット乱数部
２００  半導体集積回路
２１１  制御部（ＦＳＭ）
２１２  デコーダ部（Ｄｅｃｏｄｅｒ）
２１３  線形帰還シフトレジスタ（ＬＦＳＲ）
２１４  テストキー（ＴＫ）一致確認回路部
２２０−１〜ｍ  サブチェイン（ｓｕｂ  ｃｈａｉｎ）
２３０  マルチプレクサ（ＭＵＸ）
２５１  ダミーサブチェイン
３００  半導体集積回路
３１１  制御部（ＦＳＭ）
３１２  デコーダ部（Ｄｅｃｏｄｅｒ）
３１３  線形帰還シフトレジスタ（ＬＦＳＲ）
３１４  テストキー（ＴＫ）一致確認回路部
３１８  乱数生成部
３２０−１〜ｍ  サブチェイン（ｓｕｂ  ｃｈａｉｎ）
３３０  マルチプレクサ（ＭＵＸ）
３５１  ダミーサブチェイン
３７１  セレクタ
【図１】
2011107930.tif 000004
【図２】
2011107930.tif 000005
【図３】
2011107930.tif 000006
【図４】
2011107930.tif 000007
【図５】
2011107930.tif 000008
【図６】
2011107930.tif 000009
【図７】
2011107930.tif 000010
【図８】
2011107930.tif 000011