(57)【特許請求の範囲】
【請求項１】
機密データを格納し、内部回路をスキャンテストするテストモードを有する半導体集積装置であって、
前記テストモードを指定するスキャンモード信号を受信するモード信号受信手段と、
前記モード信号受信手段が、前記スキャンモード信号を受信した場合に、前記機密データをマスクするマスク手段と、
前記機密データの故障の有無を検出し、検出結果を第１のフリップフロップに保持する故障検出手段と、
を備える半導体集積装置。
【請求項２】
前記故障検出手段は、前記機密データと、予め設定された当該機密データの期待値とを比較し、比較結果のみを前記第１のフリップフロップに保持する、請求項１に記載の半導体集積装置。
【請求項３】
前記機密データは、前記半導体集積装置にハードウェア実装された第１の暗号鍵を含み、前記故障検出手段は、前記第１の暗号鍵と、予めハードウェア実装された当該第１の暗号鍵の期待値とを比較する、請求項２に記載の半導体集積装置。
【請求項４】
暗号化回路を更に備え、前記マスク手段は、前記第１の暗号鍵をマスクして前記暗号化回路への入力を妨げる、請求項３に記載の半導体集積装置。
【請求項５】
前記機密データは、前記半導体集積装置にハードウェア実装された第１の暗号鍵と、ファームウェアによって設定された第２の暗号鍵を含み、
前記第１の暗号鍵と前記第２の暗号鍵のいずれかを選択的に指定する鍵選択信号を受信する選択信号受信手段を更に備え、
前記マスク手段は、前記選択信号受信手段が受信した鍵選択信号が前記第１の暗号鍵を指定する場合に、前記第１の暗号鍵をマスクして前記暗号化回路への入力を妨げ、前記選択信号受信手段が受信した鍵選択信号が前記第２の暗号鍵を指定する場合に、前記第２の暗号鍵をマスクせずに、前記暗号化回路へ入力させる、
請求項４に記載の半導体集積装置。
【請求項６】
前記暗号化回路は、第２のフリップフロップを含み、
前記暗号化回路へ入力された前記第２の暗号鍵は、前記第２のフリップフロップにセットされ、
前記第１及び第２のフリップフロップは、スキャンテストのためのスキャンチェーンに組み込まれている、請求項５に記載の半導体集積装置。
【請求項７】
機密データを格納し、内部回路をスキャンテストするテストモードを有する半導体集積装置のテスト方法であって、
前記テストモードを指定するスキャンモード信号を、モード信号受信手段によって受信し、
前記モード信号受信手段が前記スキャンモード信号を受信した場合に、前記機密データをマスク手段によってマスクし、
前記機密データの故障の有無を故障検出手段によって検出し、
検出結果を第１のフリップフロップに保持する、
半導体集積装置のテスト方法。
【請求項８】
前記故障検出手段は、前記機密データと、予め設定された当該機密データの期待値とを比較し、比較結果のみが前記第１のフリップフロップに保持される、請求項７に記載の半導体集積装置のテスト方法。
【請求項９】
前記機密データは、前記半導体集積装置にハードウェア実装された第１の暗号鍵を含み、前記故障検出手段は、前記第１の暗号鍵と、予めハードウェア実装された当該第１の暗号鍵の期待値とを比較する、請求項８に記載の半導体集積装置のテスト方法。
【請求項１０】
前記半導体集積装置は暗号化回路を備え、前記マスク手段は、前記第１の暗号鍵をマスクして、前記暗号化回路への入力を妨げる、請求項９に記載の半導体集積装置のテスト方法。
【請求項１１】
前記機密データは、前記半導体集積装置にハードウェア実装された第１の暗号鍵と、ファームウェアによって設定された第２の暗号鍵を含み、
前記第１の暗号鍵と前記第２の暗号鍵のいずれかを選択的に指定する鍵選択信号を、選択信号受信手段によって受信し、
前記マスク手段は、前記選択信号受信手段が受信した鍵選択信号が前記第１の暗号鍵を指定する場合に、前記第１の暗号鍵をマスクして前記暗号化回路への入力を妨げ、前記選択信号受信手段が受信した鍵選択信号が前記第２の暗号鍵を指定する場合に、前記第２の暗号鍵をマスクせずに、前記暗号化回路へ入力させる、
請求項１０に記載の半導体集積装置のテスト方法。
【請求項１２】
前記暗号化回路は、第２のフリップフロップを含み、
前記暗号化回路へ入力された前記第２の暗号鍵は、前記第２のフリップフロップにセットされ、
前記第１及び第２のフリップフロップは、スキャンテストのためのスキャンチェーンに組み込まれている、請求項１１に記載の半導体集積装置のテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積装置及び半導体集積装置のテスト方法に関する。
【背景技術】
【０００２】
従来、製造されたＬＳＩが正常に動作するかをテストする方法として、スキャンテストによるテストが知られている。スキャンテストでは、回路内部のフリップフロップ（ＦＦ）は、チェーン状に接続されてスキャンチェーンが形成され、スキャン入力端子からスキャンデータパターンが入力される（スキャンイン）。入力されたデータは内部回路で処理され、スキャン出力端子から結果データが出力（スキャンアウト）される。この出力結果を観測することで、ＬＳＩの不良箇所を検出することが出来る。
【０００３】
特許文献１には、セキュリティを低下させずにスキャンテストを可能とする半導体集積回路とその試験方法が記載されている。特許文献１に記載のスキャンテストでは、スキャンモード信号の立ち上がりエッジに基づいて、スキャンモードとなった際にフリップフロップにセットされた値をリセットし、ＬＳＩ内部を初期化する。これによって、通常動作時に保持されたデータをシフトアウトさせることができないようにし、暗号鍵等のセキュリティデータの漏洩を防止している。
【特許文献１】特開２００４−１１７０２９号公報（段落００２７、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述のスキャンテストでは、スキャンモードが設定されると、ＬＳＩ内部を初期化してセキュリティデータを使用できなくし、セキュリティデータが外部へ出力されることを防止している。
【０００５】
例えば、暗号鍵等のセキュリティデータが、回路内部でハードウェア実装されている場合には、暗号鍵が正常に動作するか否かを、当該暗号鍵を用いてテストする必要が生じることもある。しかしながら、上述のスキャンテストでは、暗号鍵等のセキュリティデータを使用できなくしているため、セキュリティデータを用いて且つ安全にスキャンテストを行うことができない。
【０００６】
本発明は、前記のような問題に鑑みなされたもので、機密データのスキャンテストを安全に行うことが可能な半導体集積装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一実施形態に係る半導体集積装置は、機密データを格納し、内部回路をスキャンテストするテストモードを有する半導体集積装置であって、前記テストモードを指定するスキャンモード信号を受信するモード信号受信手段と、前記モード信号受信手段が、前記スキャンモード信号を受信した場合に、前記機密データをマスクするマスク手段と、前記機密データの故障の有無を検出し、検出結果を第１のフリップフロップに保持する故障検出手段とを備える。
【０００８】
また、本発明の一実施形態に係る半導体集積装置のテスト方法は、機密データを格納し、内部回路をスキャンテストするテストモードを有する半導体集積装置のテスト方法であって、前記テストモードを指定するスキャンモード信号を、モード信号受信手段によって受信し、前記モード信号受信手段が前記スキャンモード信号を受信した場合に、前記機密データをマスク手段によってマスクし、前記機密データの故障の有無を故障検出手段によって検出し、検出結果を第１のフリップフロップに保持する。
【発明の効果】
【０００９】
本発明の一実施形態に係る半導体集積装置は、機密データを格納し、内部回路をスキャンテストするテストモードを有する半導体集積装置である。当該半導体集積装置は、テストモードを指定するスキャンモード信号を受信するモード信号受信手段を備える。モード信号受信手段がスキャンモード信号を受信すると、マスク手段が機密データをマスクする。また、故障検出手段は、機密データの故障の有無を検出し、検出結果のみを第１のフリップフロップに保持する。このため機密データが外部に出力されない。
【発明を実施するための最良の形態】
【００１０】
図１は、本発明の半導体集積回路の一実施形態に係るＬＳＩの回路構成を示す。図１では、本実施形態の説明に要する部位のみが図示され、他の部分の図示は省略されている。すなわち、図１では、本実施形態によるスキャンテストの対象となる内部回路と、当該スキャンテストに用いられるスキャンチェーンとが図示されている。
【００１１】
ＬＳＩには、スキャンイン端子ＳＩ及びスキャンアウト端子ＳＯが設けられている。このスキャンイン端子ＳＩとスキャンアウト端子ＳＯの間には、スキャンフリップフロップＦ１〜Ｆ６によってスキャンチェーンが形成されている。なお、図１ではＦ１〜Ｆ６の６個のフリップフロップが図示されているが、これらに加えてさらに多数のフリップフロップがスキャンチェーンに含まれてもよい。
【００１２】
スキャンテスト時には、スキャンイン端子ＳＩからテストデータ（スキャンパターン）が入力される。そしてスキャンチェーンのシフトアウトにより、観測すべきデータがスキャンアウト端子ＳＯから出力される。
【００１３】
入力端子１１には、ＬＳＩ内部にハードウェア実装されたハードウェアに固定の暗号鍵ＦＫ(ＨＷ固定鍵)が入力される。ＦＷ設定レジスタＦ２は、ファームウェアにより任意の暗号鍵（ＦＷ設定鍵）を設定することが可能なレジスタであり、スキャンチェーンに組み込まれている。
【００１４】
ＨＷ固定鍵とＦＷ設定鍵のどちらを用いるかは、ファームウェアによって選択可能である。暗号鍵を選択するための鍵選択信号ＫＳは、入力端子１２に入力される。鍵選択回路１４は、鍵選択信号ＫＳに基づいて、使用する暗号鍵を切り換える。鍵選択信号（ＫＳ＝１）が入力された場合にはＨＷ固定鍵ＦＫが選択され、鍵選択信号（ＫＳ＝０）が入力された場合はＦＷ設定鍵が選択される。
【００１５】
入力端子１３にはスキャンモード信号ＳＭが入力される。スキャンモード信号ＳＭは、ＬＳＩの通常動作とスキャンテスト動作を切り換えるための信号である。スキャンモード信号（ＳＭ＝１）が入力された場合にはスキャンテストモードが設定され、スキャンモード信号（ＳＭ＝０）が入力された場合は通常動作モードが設定される。
【００１６】
モード選択回路１５は、通常動作モードが設定された場合は、鍵選択回路１４から出力された暗号鍵を暗号化回路１６に転送する。暗号化回路１６は、転送された暗号鍵を用いて暗号化処理を実行する回路である。図１では暗号化回路１６の詳細の図示が省略されているが、暗号化回路１６内のフリップフロップＦ５は、スキャンチェーンに組み込まれている。
【００１７】
一方、スキャン動作が行われている間に、ＨＷ固定鍵が暗号化回路１６に転送されてしまうと、スキャンチェーンを介してＨＷ固定鍵が外部に出力される可能性がある。ＨＷ固定鍵はＬＳＩに固有の暗号鍵であり、ハードウェア実装されているため、再設定することができない。従って、ＨＷ固定鍵がいったん外部に漏洩してしまうと、当該ＨＷ固定鍵を用いた暗号化の安全性が保たれなくなる。このため、ＨＷ固定鍵が外部に漏洩しないようにスキャンテストを行う必要がある。
【００１８】
本実施形態では、スキャンテストモードが設定されて、ＨＷ固定鍵が選択された場合には、モード選択回路１５が鍵選択回路１４からの出力値をマスクすることによって、ＨＷ固定鍵が暗号化回路１６へ入力されることを防止する。鍵選択回路１４から出力されるＨＷ固定鍵は、故障検出回路１８に送られる。
【００１９】
一方、ファームウェアによって設定されるＦＷ設定鍵は書き換え可能であるため、本実施形態では、当該ＦＷ設定鍵のマスクは行わない。スキャンテストモードが設定されてＦＷ設定鍵が選択された場合には、ＦＷ設定レジスタＦ２にセットされていたＦＷ設定鍵が暗号化回路１６に送られて、フリップフロップＦ５にセットされる。また、鍵選択回路１４から出力されるＦＷ設定鍵は、故障検出回路１８にも送られる。
【００２０】
図１では、故障検出回路１８の詳細な図示は省略されているが、故障検出回路１８では鍵選択回路１４からの出力と、ＬＳＩ内部にハードウェア実装されているＨＷ固定鍵の期待値ＥＸとが比較される。
【００２１】
鍵選択信号値のＫＳ＝１に応じてＨＷ固定鍵が選択されている場合には、当該ＨＷ固定鍵と、期待値ＥＸとが比較される。比較の結果、ＨＷ固定鍵と期待値ＥＸとが一致しない場合に、ＨＷ固定鍵（又はＨＷ固定鍵の転送経路：入力端子１１→鍵選択回路１４）の故障が検出され、故障検出用フリップフロップＦ４に１がセットされる。ＨＷ固定鍵と期待値ＥＸが一致する場合にはフリップフロップＦ４に０がセットされる。フリップフロップＦ４はスキャンチェーンに組み込まれているが、フリップフロップＦ４にセットされるのは暗号鍵そのものではなく比較結果のみである。このため、スキャンチェーンを介して暗号鍵が外部に出力される恐れはない。
【００２２】
一方、ＦＷ設定鍵が選択されている場合は、ＦＷ設定鍵と期待値ＥＸとの比較結果はマスクされる。ＦＷ設定鍵と期待値ＥＸが一致したかどうかにかかわらず常に故障検出用フリップフロップＦ４は同じ値になるため、スキャンチェーンを介して外部に出力されるＦＷ設定レジスタＦ２および故障検出フリップフロップＦ４の値からＨＷ固定鍵を推測される恐れはない。
【００２３】
次に、図１に示すＬＳＩの内部回路の動作について説明する。図２は、ＬＳＩの内部回路において実行されるスキャンテストのフローチャートである。
【００２４】
まず、入力端子１３に入力されたスキャンモード信号ＳＭの値がチェックされる（ブロックＡ１）。入力したスキャンモード信号がＳＭ＝０である場合（ブロックＡ１でＮｏ）、通常動作モードが設定されて、ＬＳＩの通常動作が行われる（ブロックＡ２）。
【００２５】
一方、入力したスキャンモード信号がＳＭ＝１である場合（ブロックＡ１でＹｅｓ）、スキャンテストモードが設定される（ブロックＡ３）。そして、スキャンイン端子ＳＩから入力（スキャンイン）されたスキャンテストパターンに応じて、スキャンチェーン上の各フリップフロップの値がセットされる（ブロックＡ４）。
【００２６】
続いて、入力端子１２に入力された鍵選択信号ＫＳの値がチェックされる（ブロックＡ５）。鍵選択信号ＫＳ＝１が入力した場合には（ブロックＡ５でＹｅｓ）、鍵選択回路１４によってＨＷ固定鍵が暗号鍵として選択される（ブロックＡ６）。すなわち、鍵選択回路１４からは、ＨＷ固定鍵が出力される。
【００２７】
ＨＷ固定鍵が選択されている場合、モード選択回路１５は、鍵選択回路１４からの出力をマスクする（ブロックＡ７）。また、暗号化回路１６内のフリップフロップＦ５には、０がセットされる（ブロックＡ８）。
【００２８】
鍵選択回路１４から出力されたＨＷ固定鍵は、故障検出回路１８に送られる。故障検出回路１８では、鍵選択回路１４から出力されたＨＷ固定鍵が、期待値ＥＸと一致するか否かが判断される（ブロックＡ９）。
【００２９】
ＨＷ固定鍵が期待値ＥＸと一致する場合には（ブロックＡ９でＹｅｓ）、ＨＷ固定鍵に故障は生じていないとされ、故障検出用フリップフロップＦ４には０がセットされる（ブロックＡ１０）。また、ＨＷ固定鍵が期待値ＥＸと一致しない場合には（ブロックＡ９でＮｏ）、故障が生じているとみなされ、フリップフロップＦ４には１がセットされる（ブロックＡ１２）。
【００３０】
一方、鍵選択信号ＫＳ＝０が入力した場合には（ブロックＡ５でＮｏ）、鍵選択回路１４によってＦＷ設定鍵が暗号鍵として選択される（ブロックＡ１２）。鍵選択回路１４からは、ＦＷ設定レジスタＦ２にセットされていたＦＷ設定鍵が出力される（ブロックＡ１３）。ＦＷ設定鍵は暗号化回路１６に送られて、フリップフロップＦ５にセットされる（ブロックＡ１４）。ＦＷ設定鍵は故障検出回路１８にも送られるが、期待値ＥＸとの比較結果はマスクされる（ブロックＡ１５）。
【００３１】
以上のようにしてセットされたスキャンチェーン上の各フリップフロップの値は、スキャンアウト端子ＳＯから出力され（スキャンアウト）、観測が可能となる（ブロックＡ１６）。
【００３２】
また、上述のフローチャートでは、本実施形態によるスキャンテストに関するフリップフロップＦ５及びＦ６へのテスト結果のセットについてのみ説明し、スキャンチェーンに含まれる他のフリップフロップについては、説明を省略した。
【００３３】
以上のように、スキャンチェーン上の各フリップフロップにセットされた値がスキャンアウトされ、ＬＳＩのスキャンテストを行うことができる。スキャンアウトの結果、故障検出用フリップフロップＦ４に１セットされていれば、ＨＷ固定鍵に故障が生じていることが分かる。このため、ＬＳＩの製造エラーが検出可能となる。
【００３４】
スキャンテストモードが設定され（ＳＭ＝１）、ＨＷ固定鍵が選択されている（ＫＳ＝１）場合には、鍵選択回路１４からの出力はマスクされて暗号化回路１６に伝播しない。またこの場合、故障検出用フリップフロップＦ４にセットされるのは、ＨＷ固定鍵に故障が生じているか否かの判断結果であって、ＨＷ固定鍵自体ではない。このため、ＨＷ固定鍵がスキャンテスト中に外部に出力されることを防止できる。
【００３５】
また、故障検出用フリップフロップＦ４がスキャンチェーンに挿入されているため、スキャンモード信号ＳＭ＝１、鍵選択信号ＫＳ＝１が入力されている場合には、ＨＷ固定鍵が入力される入力端子１１から鍵選択回路１４への経路のテスト結果を検出することができる。
【００３６】
一方、スキャンテストモードが設定され（ＳＭ＝１）、ＦＷ設定鍵が選択されている（ＫＳ＝０）場合には、ＦＷ設定レジスタＦ２にセットされた値が、暗号化回路１６のフリップフロップＦ５にセットされる。ＦＷ設定レジスタＦ２及びフリップフロップＦ５がスキャンチェーンに挿入されているため、これらのフリップフロップからのスキャンアウトの結果を観測し、フリップフロップＦ２とフリップフロップＦ５にセットされた値を比較することで、ＦＷ設定鍵、及び当該ＦＷ設定鍵が転送された経路が正常に動作するか否かをテストすることができる。すなわち、ＦＷ設定レジスタ２から鍵選択回路１４への経路、及び鍵選択回路１４からモード選択回路１５、暗号化回路１６への経路が正しく動作するか否かをテストすることができる。
【００３７】
以上のように、本実施の形態に係るスキャンテストによれば、悪意のユーザがスキャンテストモードを操作して、ＬＳＩ内部に実装された機密データを取得することを防止し、機密データの漏洩を防ぐことができる。
【００３８】
なお、本実施形態では、機密データとして、ハードウェア実装されたＨＷ固定鍵の漏洩を防止する例について説明した。しかしながら、漏洩を防止できる機密データは、暗号鍵に限られない。本実施形態のスキャンテストように、漏洩を防止したいデータとその期待値を比較して、その比較結果のみをフリップフロップにセットすることで機密データの漏洩を防ぐことができる。
【００３９】
また、本実施形態では、ハードウェア実装されたＬＳＩに固有のＨＷ固定鍵と、ファームウェアによって設定されるＦＷ設定鍵の切り換えが可能であった。しかしながら、ＨＷ固定鍵のみが用いられても、またＦＷ設定鍵のみが用いられてもよい。
【００４０】
本実施形態では、ＦＷ設定鍵はマスクされずに暗号化回路１６に送られた。しかしながら、ＦＷ設定鍵もＨＷ固定鍵と同様にマスクされてもよい。また、故障検出回路１８では、ＦＷ設定鍵が、当該ＦＷ設定鍵の期待値（ファームウェアによって予め設定されてもよい）と比較されてもよい。この場合も、比較結果はフリップフロップＦ４にセットされ、ＦＷ設定鍵及びその転送経路の故障を検出できる。
【００４１】
あるいは、鍵選択信号がＫＳ＝０であり、ＦＷ設定鍵が選択されている場合は、比較結果はマスクされるため、故障検出回路１８の故障検出用フリップフロップＦ４には、常に同じ値がセットされる。従って、期待値ＥＸとの比較を行わなくても、同じ値がセット可能である。すなわち、鍵選択信号ＫＳ＝０の場合には、ＦＷ設定鍵を必ずしも故障検出回路１８に送らなくともよい。
【００４２】
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００４３】
【図１】本発明の半導体集積回路の一実施形態に係るＬＳＩの回路構成を示す図。
【図２】ＬＳＩの内部回路において実行されるスキャンテストのフローチャート。
【符号の説明】
【００４４】
１１、１２、１３…入力端子、１４…鍵選択回路、１５…モード選択回路、１６…暗号化回路、１８…故障検出回路。
【要約】
【課題】機密データのスキャンテストを安全に行うことが可能な半導体集積装置を提供すること。
【解決手段】ＬＳＩは、内部回路をスキャンテストするためのスキャンテストモードを有する。鍵選択回路１４には、ハードウェア実装された暗号鍵であるＨＷ固定鍵ＦＫが入力する。モード選択回路１５には、通常動作モードとスキャンテストモードのいずれかのモードを指定するスキャンモード信号ＳＭが入力する。スキャンテストモードを指定するスキャンモード信号が入力すると、モード選択回路１５は、ＨＷ固定鍵をマスクする。故障検出回路１８は、ＨＷ固定鍵と期待値ＥＸを比較し、比較結果をフリップフロップＦ４に保持する。
【選択図】      図１【図１】
0004309949.tif 000002
【図２】
0004309949.tif 000003