(57)【要約】【解決手段】  実施形態は試験容易化設計（ＤＦＴ）又は他の試験モード攻撃からＩＣを保護する。レジスタ又はラッチ、ＲＡＭ内に記憶されている一時的な機密、及び／又はＲＯＭ及び／又はＰＲＯＭ内に記憶されている永続的な機密が保護される。ＩＣの情報を保護するための１つの実施形態は、試験モードに入ることと、試験モードの動作に入ることに応答して、試験モード命令を受け取るよりも前に各レジスタをリセットすることとを含む。集積回路の実施形態は、集積回路を試験モードに設定し且つ試験モードの間は集積回路を制御するように動作する試験制御論理と、一連のレジスタと、試験制御論理及び一連のレジスタに結合され試験制御論理からリセット命令を受け取り且つ試験モードに入るための命令に応答してリセット命令を一連のレジスタに供給するように動作する機能リセット制御器とを含む。【選択図】図１
2011525015.tif 000002
【特許請求の範囲】
【請求項１】
集積回路の情報を保護する方法であって、
試験モードの動作に入ることと、
前記試験モードの動作に入ることに応答して、試験モード命令を受け取るよりも前に一連のレジスタの各レジスタをリセットすることと、を備えた方法。
【請求項２】
走査モードに入るための命令を受け取ることと、
前記一連のレジスタを少なくとも１つの走査チェインに設定することと、
走査動作を実行することと、
前記走査モードを終了するための命令を受け取ることと、
前記走査モードを終了するための前記命令を受け取ることに応答して、機能モードに入るよりも前に前記一連のレジスタの各レジスタを試験制御論理によりリセットすることと、を更に備えた、請求項１に記載の方法。
【請求項３】
前記リセットすることは、機能リセット制御器によって提供されるリセット命令を介している、請求項１に記載の方法。
【請求項４】
一連のレジスタの各レジスタをリセットすることは、一連のフリップフロップの各フリップフロップをリセットすることを更に備えている、請求項１に記載の方法。
【請求項５】
前記試験モードの動作に入ることに応答してランダムアクセスメモリ（ＲＡＭ）の全てのロケーションに既知のビットパターンを書き込むことと、
後続のＲＡＭ読み出し命令を許可することと、を更に備えた、請求項１に記載の方法。
【請求項６】
前記試験モードの動作に入った後で、且つ前記リセットすることよりも前に、クロック制御信号をクロック制御器へ送って前記一連のレジスタに対するレジスタクロックを同期させることを更に備えた、請求項１に記載の方法。
【請求項７】
集積回路の情報を保護する方法であって、
試験モードの動作に入ることと、
前記試験モードの動作に入ることに応答して、前記試験モードの動作に入るよりも前に前記集積回路が機能モードの動作で動作させられていたことを決定することと、
前記試験モードの動作に入るよりも前に前記集積回路が前記機能モードの動作で動作させられていたことを決定することに応答して、前記試験モードの動作にある場合にランダムアクセスメモリ（ＲＡＭ）読み出し命令を遮断することと、を備えた方法。
【請求項８】
前記試験モードの動作に入るよりも前に前記集積回路が前記機能モードの動作で動作させられていたことを決定することは、一連のレジスタが先験的に知られたデータを含んでいることを前記試験モードの動作に入ることに応答して決定することを更に備えており、
前記一連のレジスタは走査チェイン構成から分離されている、請求項７に記載の方法。
【請求項９】
前記一連のレジスタが前記先験的に知られたデータを含んでいることを決定することは、
前記一連のレジスタの内容を、記憶されたデータと比較することと、
前記内容が前記記憶されたデータとの一致であることを決定することと、
前記試験モードの動作に入るよりも前に前記集積回路が前記機能モードの動作で動作していたこと、及び前記機能モードの動作で動作することに起因してＲＡＭが機密情報を含むであろうことを前記一致に応答して決定することと、
前記ＲＡＭ読み出し命令を前記集積回路の試験ユーザインタフェースから遮断することと、を更に備えている、請求項８に記載の方法。
【請求項１０】
前記集積回路が前記機能モードの動作にある間は前記ＲＡＭに含まれているデータに実行されるハッシング動作によって暗号化されたデータが得られ、前記暗号化されたデータは前記ＲＡＭに含まれている前記データを表している、請求項９に記載の方法。
【請求項１１】
前記一連のレジスタが前記先験的に知られたデータを含んでいることを決定することは、
前記一連のレジスタの内容を、記憶されたデータと比較することと、
前記内容が前記記憶されたデータとの一致であることを決定することと、
前記試験モードの動作に入るよりも前に前記集積回路が前記機能モードの動作で動作していたこと、及び前記機能モードの動作で動作することに起因してＲＡＭが機密情報を含むであろうことを前記一致に応答して決定することと、
前記ＲＡＭ読み出し命令を遮断することの後に、前記ＲＡＭが前記機能モードで動作していたことを決定することに応答して前記ＲＡＭの全てのロケーションに既知のビットパターンを書き込むことと、
後続のＲＡＭ読み出し命令を許可することと、を更に備えている、請求項８に記載の方法。
【請求項１２】
集積回路の情報を保護する方法であって、
試験モードの動作に入ることと、
前記試験モードの動作に入ることに応答してランダムアクセスメモリ（ＲＡＭ）の全てのロケーションに既知のビットパターンを書き込むことと、
後続のＲＡＭ読み出し命令を許可することと、を備えた方法。
【請求項１３】
集積回路の情報を保護する方法であって、
試験モードの動作に入ることと、
前記試験モードの動作に入ることに応答して、試験モード命令を受け取るよりも前に一連のレジスタの各レジスタをリセットすることと、
前記試験モードの動作に入ることに応答して、前記試験モードの動作に入るよりも前に前記集積回路が機能モードの動作で動作させられていたことを決定することと、
前記試験モードの動作に入るよりも前に前記集積回路が前記機能モードの動作で動作させられていたことを決定することに応答して、前記試験モードの動作にある場合にランダムアクセスメモリ（ＲＡＭ）読み出し命令を遮断することと、
前記ＲＡＭが前記機能モードで動作していたことを決定することに応答して前記ＲＡＭの全てのロケーションに既知のビットパターンを書き込むことと、
後続のＲＡＭ読み出し命令を許可することと、
リードオンリメモリ（ＲＯＭ）読み出し命令を受け取ることと、
前記ＲＯＭ読み出し命令を受け取ることに応答して複数のＲＯＭアドレスロケーションから暗号化論理へデータを書き込むことと、
前記複数のＲＯＭアドレスロケーションからの前記データを表す前記暗号化論理の暗号化論理出力を試験制御論理へ書き込むことと、
前記試験モードの動作に入ることの後に、読み出しアドレスを指定するプログラム可能リードオンリメモリ（ＰＲＯＭ）読み出し命令を受け取ることと、
前記読み出しアドレスが機密情報に向けられていることを決定することと、
前記ＰＲＯＭ読み出し命令に応答して悪意のない出力パターンを提供することと、を備えた方法。
【請求項１４】
走査モードの動作を終了することと、
前記走査モードの動作を終了することに応答して一連のレジスタの各レジスタをリセットすることと、を更に備えた、請求項１３に記載の方法。
【請求項１５】
集積回路であって、
前記集積回路を試験モードに設定し且つ前記試験モードの間は前記集積回路を制御するように動作する試験制御論理と、
一連のレジスタと、
前記試験制御論理及び前記一連のレジスタに結合され前記試験制御論理からリセット命令を受け取り、且つ前記試験モードに入るための命令に応答して前記リセット命令を前記一連のレジスタに供給するように動作する機能リセット制御器と、を備えた集積回路。
【請求項１６】
前記試験制御論理は更に、
走査モードに入るための命令を受け取り、
前記走査モードに入るための前記命令に応答して前記一連のレジスタを少なくとも１つの走査チェインに設定し、
前記少なくとも１つの走査チェインにて走査動作を実行し、
前記走査モードを終了するための命令を受け取り、
前記走査モードを終了するための前記命令を受け取ることに応答して、機能モードに入るよりも前に前記一連のレジスタの各レジスタをリセットするように動作する、請求項１５に記載の集積回路。
【請求項１７】
前記試験制御論理及び前記機能リセット制御器に結合され前記試験制御論理から前記リセット命令を受け取るように動作する一連のフリップフロップを更に備えた、請求項１５に記載の集積回路。
【請求項１８】
前記一連のレジスタに結合される複数のクロック回路と、
前記複数のクロック回路及び前記試験制御論理に結合され前記試験制御論理からクロックリセット信号を受け取り、且つ前記クロックリセット信号を受け取ることに応答して前記複数のクロック回路に同期信号を供給するように動作するクロック制御器と、を更に備えた、請求項１５に記載の集積回路。
【請求項１９】
前記試験制御論理に結合される少なくとも１つのランダムアクセスメモリ（ＲＡＭ）を更に備え、
前記試験制御論理は更に、前記試験モードに入ることに応答して、走査モードに入るための命令を受け取るよりも前に前記少なくとも１つのＲＡＭの全てのロケーションに既知のビットパターンを書き込むように動作する、請求項１５に記載の集積回路。
【請求項２０】
前記試験制御論理に結合され前記試験モードに入るための前記命令を受け取る試験入力ポートと、
前記試験制御論理に結合され前記一連のレジスタからの出力データを受け取るための試験出力ポートと、を更に備え、
前記試験制御論理は前記機能リセット制御器が前記リセット命令を受け取るための試験命令リセット信号線を介して前記機能リセット制御器に結合され、前記機能リセット制御器はリセットツリーを介して前記一連のレジスタに結合され、前記リセットツリーは前記リセット命令を前記一連のレジスタへ供給する、請求項１５に記載の集積回路。
【請求項２１】
少なくとも１つのランダムアクセスメモリ（ＲＡＭ）と、前記少なくとも１つのＲＡＭに結合される試験制御論理とを備えた集積回路であって、
前記試験制御論理は、
前記集積回路を試験モードに設定し、且つ前記試験モードの間は前記集積回路を制御し、
前記試験モードに入ることに応答して、前記試験モードに入るよりも前に前記集積回路が機能モードで動作させられていたことを決定し、
前記試験モードに入るよりも前に前記集積回路が前記機能モードで動作させられていたことを決定することに応答して、前記試験モードにある場合にＲＡＭ読み出し命令を遮断するように動作する集積回路。
【請求項２２】
前記試験制御論理に結合される一連のレジスタを更に備え、前記一連のレジスタは前記試験モードの走査チェイン構成から分離されており、
前記試験制御論理は更に、
前記一連のレジスタが先験的に知られたデータを含んでいることを前記試験モードに入ることに応答して決定することによって、前記試験モードに入るよりも前に前記集積回路が前記機能モードで動作させられていたことを決定するように動作する、請求項２１に記載の集積回路。
【請求項２３】
前記一連のレジスタの内容を、記憶されたデータと比較することと、
前記内容が前記記憶されたデータとの一致であることを決定することと、
前記試験モードに入るよりも前に前記集積回路が前記機能モードで動作していたこと及び、前記機能モードの動作で動作することに起因してＲＡＭが機密情報を含むであろうことを前記一致に応答して決定することと、
前記ＲＡＭ読み出し命令を前記集積回路の試験ユーザインタフェースから遮断することと、により、
前記一連のレジスタが前記先験的に知られたデータを含むことを決定するように前記試験制御論理が更に動作する、請求項２２に記載の集積回路。
【請求項２４】
前記試験制御論理に結合され前記ＲＡＭ読み出し命令を受け取る試験入力ポートと、
前記試験制御論理に結合され前記ＲＡＭからの出力データを受け取るための試験出力ポートと、を更に備え、
前記試験制御論理は前記ＲＡＭに結合される少なくとも１つのメモリ試験制御論理を更に備えており、
前記メモリ試験制御論理は、前記試験モードに入るよりも前に前記集積回路が前記機能モードで動作させられていたことを決定することに応答して、前記試験モードにある場合に前記ＲＡＭ読み出し命令を遮断するように動作する、請求項２２に記載の集積回路。
【請求項２５】
前記集積回路はＲＡＭ集積回路である、請求項２４に記載の集積回路。
【請求項２６】
集積回路であって、
前記集積回路を試験モードに設定し、且つ前記試験モードの間は前記集積回路を制御するように動作する試験制御論理と、
一連のレジスタと、
前記試験制御論理及び前記一連のレジスタに結合され前記試験制御論理からリセット命令を受け取り、且つ前記試験モードに入るための命令に応答して前記リセット命令を前記一連のレジスタに供給するように動作する機能リセット制御器と、
前記試験制御論理に結合される少なくとも１つのランダムアクセスメモリ（ＲＡＭ）と、
前記試験制御論理に結合される少なくとも１つのリードオンリメモリ（ＲＯＭ）と、
前記試験制御論理に結合される暗号化論理と、
前記試験制御論理に結合される少なくとも１つのプログラム可能リードオンリメモリ（ＰＲＯＭ）と、を備え、
前記試験制御論理は更に、
前記試験モードに入ることに応答して、前記試験モードに入るよりも前に前記集積回路が機能モードで動作させられていたことを決定し、
前記試験モードに入るよりも前に前記集積回路が前記機能モードで動作させられていたことを決定することに応答して、前記試験モードにある場合にＲＡＭ読み出し命令を遮断し、
ＲＯＭ読み出し命令を受け取り、
前記ＲＯＭ読み出し命令を受け取ることに応答して複数のＲＯＭアドレスロケーションから前記暗号化論理へデータを書き込み、
前記複数のＲＯＭアドレスロケーションからの前記データを表す前記暗号化論理の暗号化論理出力を受け取り、
前記試験モードに入ることの後に、読み出しアドレスを指定するＰＲＯＭ読み出し命令を受け取り、
前記読み出しアドレスが機密情報に向けられていることを決定し、
前記ＰＲＯＭ読み出し命令に応答して悪意のない出力パターンを提供するように動作する集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は同時係属の出願、代理人事件番号(Attorney Docket No.)００１００．０７．０１２５、試験動作モードの間に集積回路リードオンリメモリのデジタル情報を保護するための方法及び装置、に関し、その出願は本出願と共にエー・ティー・アイ・テクノロジーズ・ユー・エル・シー(ATI Technologies ULC)に通常通り譲渡されている。
【０００２】
本開示は、一般的に、集積回路（ＩＣ）の分野及びＩＣの種々の動作モード、例えば試験容易化設計(Design for Test)（ＤＦＴ）モードを含む試験モードに関し、更にＩＣ内に含まれる暗号鍵、パスワード及び他の情報に関し、より特定的には、ＩＣをＤＦＴ又は同様の試験モードで動作させることによるアクセスから前記暗号鍵、パスワード及び他の情報を保護するための方法及び装置に関する。
【背景技術】
【０００３】
電子デバイスの動作のために必要となるであろうデジタルコンテンツ及び他の情報の保護は、集積回路（ＩＣ）の種々のロケーションに記憶されている暗号鍵及びパスワードによってしばしば促進される。権限のあるユーザ以外の誰かによる鍵へのアクセスは、あるいは権限のあるユーザ自身によるアクセスでさえも、著作権のある又は他の保護されたデジタル題材の窃盗又は不正利用をもたらす可能性がある。また、保護されたデジタルコンテンツ及び他の機密情報は多くの場合、前述した暗号鍵を用いて復号化又は非暗号化され、ＩＣによって一時的にメモリ又はレジスタのロケーション内に記憶される。メモリ又はレジスタへのアクセスはまた、権限のないユーザによるコンテンツの窃盗又は不正利用を招く可能性がある。
【０００４】
保護されたデジタルコンテンツを不法に得るための新しい手法が流行し始めており、権限のない第三者は、ＩＣ内部レジスタ及びメモリへのアクセスを試みることによって、保護されたデジタル題材にＩＣレベルでアクセスすることを企てるかもしれない。これらの攻撃は、ＩＣ設計それ自体を利用し、また組み込まれたＩＣ試験特性、例えば「試験容易化設計」（ＤＦＴ）モードとして知られる動作モードを巧みに利用しようとする。このように試験容易化設計攻撃は、情報セキュリティの分野における新たな懸念を生み出してきており、種々のＩＣ部分、限定はされないが例えばスタティックランダムアクセスメモリ（ＳＲＡＭ）、リードオンリメモリ（ＲＯＭ）、プログラム可能リードオンリメモリ（ＰＲＯＭ）、レジスタ及びフリップフロップの情報セキュリティを脅かしている。
【０００５】
近年提案されている方法は、レジスタ及びラッチ(latches)のＤＦＴ攻撃からの保護に対処することを試みてきた。レジスタを保護するために近年提案されているそのような方法の１つは、「機密挙動(secret-bearing)」レジスタを列挙しそれらをＤＦＴ処理から除外することである。しかし、この方法は幾つかの欠点を有している。第１に、レジスタを除外するとＤＦＴのための試験範囲が狭くなり、全体的なＩＣ収率を低減してしまう。第２に、設計者が「機密挙動」レジスタをＤＦＴ処理から識別し且つ手動で取り除く必要があるので間違いが生じ易く、また特定の秘密挙動レジスタは正確に識別することが困難乃至は不可能であるかもしれない。第３に、この方法は機密情報がレジスタのみに含まれていてメモリには含まれていないことを前提としている。
【０００６】
他に提案されている方法は難読化(obfuscation)に基いており、この場合、異なるレジスタの内容は疑似乱数方式で互いに多重化される。この取り組みはまた、業界標準のコンピュータ支援設計（ＣＡＤ）ツールによって支持されない特化されたＤＦＴアルゴリズムを必要とするという欠点を有している。この方法の第２の欠点は、決意を秘めたハッカーによる逆行解析(reverse-engineering)にさらされるかもしれない難読化に頼っていることである。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従って、ＩＣ動作モード攻撃、例えば試験容易化設計攻撃あるいはＩＣ試験モードを利用した同様の攻撃を採用した権限のないユーザによるアクセスから、保護された情報を守るための方法及び装置に対する要求が存在する。
【課題を解決するための手段】
【０００８】
ここに開示される種々の実施形態は、ＩＣの動作の試験モードを用いることによるアクセスからのＩＣの機密情報の保護を提供する。例えば、ここに説明される種々の実施形態は、ＩＣを試験容易化設計（ＤＦＴ）攻撃に対して保護する。実施形態は、レジスタ又はラッチに記憶されている一時的な機密、ＲＡＭに記憶されている一時的な機密、リードオンリメモリ（ＲＯＭ）に記憶されている永続的な機密、及び／又はチップ上フューズ(on-chip fuses)のようなプログラム可能なＲＯＭ（ＰＲＯＭ）に記憶されている永続的な機密を保護する。
【０００９】
ここに開示される集積回路の情報を保護する方法は、試験モードの動作に入ることと、試験モードの動作に入ることに応答して、試験モード命令を受け取るよりも前に一連のレジスタの各レジスタをリセットすることとを含む。方法は、走査モードに入るための命令を受け取ることと、一連のレジスタを少なくとも１つの走査チェインに設定することと、走査動作を実行することと、走査モードを終了するための命令を受け取ることと、走査モードを終了するための命令を受け取ることに応答して、機能モードに入るよりも前に一連のレジスタの各レジスタを試験制御論理によりリセットすることとを更に含んでいてよい。リセットの方法は、デバイス内の機能リセット制御器によって提供されるリセット命令を介していてよい。方法は、フリップフロップをリセットすることを更に含んでいてよく、また、試験モードの動作に入ることに応答して、ＲＡＭ読み出し命令を最初に遮断した後に、ランダムアクセスメモリ（ＲＡＭ）の全てのロケーションに既知のビットパターンを書き込むことと、既知のビットパターンを書き込むことの後に後続のＲＡＭ読み出し命令を許可することとを含んでいてよい。
【００１０】
集積回路の情報を保護する他の方法は、試験モードの動作に入ることと、試験モードの動作に入ることに応答して、試験モードの動作に入るよりも前に集積回路が機能モードの動作で動作させられていたことを決定することと、試験モードの動作に入るよりも前に集積回路が機能モードの動作で動作させられていたことを決定することに応答して、試験モードの動作にある場合にランダムアクセスメモリ（ＲＡＭ）読み出し命令を遮断することとを含む。方法はまた、試験モードの動作に入るよりも前に集積回路が機能モードの動作で動作させられていたことを決定することが、一連のレジスタが暗号化されたデータを含んでいることを試験モードの動作に入ることに応答して決定すること、を更に含んでいることを含んでいてよく、一連のレジスタは走査チェイン構成から分離されている。
【００１１】
集積回路の情報を保護する他の方法は、試験モードの動作に入ることと、リードオンリメモリ（ＲＯＭ）読み出し命令を受け取ることと、ＲＯＭ読み出し命令を受け取ることに応答して複数のＲＯＭアドレスロケーションから暗号化論理へデータを書き込むことと、複数のＲＯＭアドレスロケーションからのデータを表す暗号化論理の暗号化論理出力を試験制御論理へ書き込むこととを含む。方法は更に、複数のＲＯＭアドレスロケーションから暗号化論理へデータを書き込むことが、ＲＯＭ読み出し命令に応答して複数のＲＯＭアドレスロケーションから多重化入力シフトレジスタ（ＭＩＳＲ）へデータを書き込むことと、ＭＩＳＲ出力を試験制御論理へ書き込むことと、を更に含んでいることを含んでいてよく、ＭＩＳＲ出力は複数のＲＯＭアドレスロケーションからのデータを表す。
【００１２】
集積回路の情報を保護する他の方法は、試験モードの動作に入ることと、試験モードの動作に入ることの後に、読み出しアドレスを指定するプログラム可能リードオンリメモリ（ＰＲＯＭ）読み出し命令を受け取ることと、読み出しアドレスが機密情報に向けられていることを決定することと、ＰＲＯＭ読み出し命令に応答して悪意のない出力パターンを提供することとを含む。方法は更に、読み出しアドレスが機密情報に向けられていることを決定することが、機密情報がＰＲＯＭ内のどこに記憶されているかを特定する少なくとも１つのＰＲＯＭアドレスロケーションを読み出すことと、ＰＲＯＭアドレスロケーションをＰＲＯＭ保護レジスタ内に記憶することと、を更に含んでいることを含んでいてよい。
【００１３】
集積回路の情報を保護する他の方法は、試験モードの動作に入ることと、試験モードの動作に入ることに応答して、試験モード命令を受け取るよりも前に一連のレジスタの各レジスタをリセットすることと、試験モードの動作に入ることに応答して、試験モードの動作に入るよりも前に集積回路が機能モードの動作で動作させられていたことを決定することと、試験モードの動作に入るよりも前に集積回路が機能モードの動作で動作させられていたことを決定することに応答して、試験モードの動作にある場合にランダムアクセスメモリ（ＲＡＭ）読み出し命令を遮断することと、リードオンリメモリ（ＲＯＭ）読み出し命令を受け取ることと、ＲＯＭ読み出し命令を受け取ることに応答して複数のＲＯＭアドレスロケーションから暗号化論理へデータを書き込むことと、複数のＲＯＭアドレスロケーションからのデータを表す暗号化論理の暗号化論理出力を試験制御論理へ書き込むことと、試験モードの動作に入ることの後に、読み出しアドレスを指定するプログラム可能リードオンリメモリ（ＰＲＯＭ）読み出し命令を受け取ることと、読み出しアドレスが機密情報に向けられていることを決定することと、ＰＲＯＭ読み出し命令に応答して悪意のない出力パターンを提供することとを含む。
【００１４】
ここに開示される集積回路は、集積回路を試験モードに設定し且つ試験モードの間は集積回路を制御するように動作する試験制御論理と、一連のレジスタと、試験制御論理及び一連のレジスタに結合され試験制御論理からリセット命令を受け取り且つ試験モードに入るための命令に応答してリセット命令を一連のレジスタに供給するように動作する機能リセット制御器とを含む。集積回路試験制御論理は更に、走査モードに入るための命令を受け取り、走査モードに入るための命令に応答して一連のレジスタを少なくとも１つの走査チェインに設定し、少なくとも１つの走査チェインにて走査動作を実行し、走査モードを終了するための命令を受け取り、走査モードを終了するための命令を受け取ることに応答して、機能モードに入るよりも前に一連のレジスタの各レジスタをリセットするように動作してよい。
【００１５】
ここに開示される他の集積回路は、少なくとも１つのランダムアクセスメモリ（ＲＡＭ）と、少なくとも１つのＲＡＭに結合される試験制御論理とを含み、試験制御論理は、集積回路を試験モードに設定し且つ試験モードの間は集積回路を制御し、試験モードに入ることに応答して、試験モードに入るよりも前に集積回路が機能モードで動作させられていたことを決定し、試験モードに入るよりも前に集積回路が機能モードで動作させられていたことを決定することに応答して、試験モードにある場合にＲＡＭ読み出し命令を遮断するように動作する。集積回路は試験制御論理に結合される一連のレジスタを更に含んでいてよく、一連のレジスタは試験モードの走査チェイン構成から分離されており、試験制御論理は更に、一連のレジスタが暗号化されたデータを含んでいることを試験モードに入ることに応答して決定することによって、試験モードに入るよりも前に集積回路が機能モードで動作させられていたことを決定するように動作してよい。
【００１６】
ここに開示される他の集積回路は、少なくとも１つのリードオンリメモリ（ＲＯＭ）と、暗号化論理と、少なくとも１つのＲＯＭ及び暗号化論理に結合される試験制御論理とを含み、試験制御論理は、集積回路を試験モードに設定し、ＲＯＭ読み出し命令を受け取り、ＲＯＭ読み出し命令を受け取ることに応答して複数のＲＯＭアドレスロケーションから暗号化論理へデータを書き込み、複数のＲＯＭアドレスロケーションからのデータを表す暗号化論理の暗号化論理出力を試験制御論理へ書き込むように動作する。集積回路は、試験制御論理に結合される少なくとも１つの多重化入力シフトレジスタ（ＭＩＳＲ）を更に含んでいてよく、試験制御論理は更に、ＲＯＭ読み出し命令に応答して複数のＲＯＭアドレスロケーションから少なくとも１つのＭＩＳＲへデータを書き込み、ＭＩＳＲ出力を試験制御論理へ書き込むように動作してよく、ＭＩＳＲ出力は複数のＲＯＭアドレスロケーションからのデータを表す。
【００１７】
ここに開示される他の集積回路は、少なくとも１つのプログラム可能リードオンリメモリ（ＰＲＯＭ）と、少なくとも１つのＰＲＯＭに結合される試験制御論理とを含み、試験制御論理は、集積回路を試験モードに設定し且つ試験モードの間は集積回路を制御し、試験モードに入ることの後に、読み出しアドレスを指定するＰＲＯＭ読み出し命令を受け取り、読み出しアドレスが機密情報に向けられていることを決定し、ＰＲＯＭ読み出し命令に応答して悪意のない出力パターンを提供するように動作する。集積回路は、少なくとも１つのＰＲＯＭに結合されるＰＲＯＭアクセス論理と、少なくとも１つのＰＲＯＭ及びＰＲＯＭアクセス論理に結合されるＰＲＯＭ保護レジスタと、ＰＲＯＭ保護レジスタ、少なくとも１つのＰＲＯＭ、及び試験制御論理に結合されるＰＲＯＭ保護レジスタ制御器とを更に含んでいてよく、試験制御論理は更に、機密情報がＰＲＯＭ内のどこに記憶されているかを特定する少なくとも１つのＰＲＯＭアドレスロケーションを読み出すように動作するＰＲＯＭアクセス論理へ制御信号を送ることによって読み出しアドレスが機密情報に向けられていることを決定し、ＰＲＯＭアドレスロケーションをＰＲＯＭ保護レジスタ内に記憶するように動作してよい。
【００１８】
ここに開示される他の集積回路は、集積回路を試験モードに設定し且つ試験モードの間は集積回路を制御するように動作する試験制御論理と、一連のレジスタと、試験制御論理及び一連のレジスタに結合され試験制御論理からリセット命令を受け取り且つ試験モードに入るための命令に応答してリセット命令を一連のレジスタに供給するように動作する機能リセット制御器と、試験制御論理に結合される少なくとも１つのランダムアクセスメモリ（ＲＡＭ）と、試験制御論理に結合される少なくとも１つのリードオンリメモリ（ＲＯＭ）と、試験制御論理に結合される暗号化論理と、試験制御論理に結合される少なくとも１つのプログラム可能リードオンリメモリ（ＰＲＯＭ）とを含み、試験制御論理は更に、試験モードに入ることに応答して、試験モードに入るよりも前に集積回路が機能モードで動作させられていたことを決定し、試験モードに入るよりも前に集積回路が機能モードで動作させられていたことを決定することに応答して、試験モードにある場合にＲＡＭ読み出し命令を遮断し、ＲＯＭ読み出し命令を受け取り、ＲＯＭ読み出し命令を受け取ることに応答して複数のＲＯＭアドレスロケーションから暗号化論理へデータを書き込み、複数のＲＯＭアドレスロケーションからのデータを表す暗号化論理の暗号化論理出力を受け取り、試験モードに入ることの後に、読み出しアドレスを指定するＰＲＯＭ読み出し命令を受け取り、読み出しアドレスが機密情報に向けられていることを決定し、ＰＲＯＭ読み出し命令に応答して悪意のない出力パターンを提供するように動作する。
【図面の簡単な説明】
【００１９】
【図１】図１は実施形態に従う集積回路のブロック図である。
【００２０】
【図２】図２は実施形態に従い試験モードにあり且つ走査チェインを有する集積回路のブロック図である。
【００２１】
【図３】図３はレジスタデータを保護するための実施形態の動作の方法のフローチャートである。
【００２２】
【図４】図４は実施形態に従いレジスタデータを保護するための方法の更なる詳細を提供するフローチャートである。
【００２３】
【図５】図５はＩＣの種々のロケーション全体のデータを特に図２のレジスタ及びＲＡＭのために保護する実施形態の動作の詳細を示すフローチャートである。
【００２４】
【図６】図６は図５に続きＩＣの種々のロケーション全体のデータを保護するための、そしてＰＲＯＭを保護するための実施形態の動作の詳細を示すフローチャートである。
【００２５】
【図７】図７は図５に続きＩＣの種々のロケーション全体のデータを保護するための、そしてＲＡＭを保護するための実施形態の動作の詳細を示すフローチャートである。
【００２６】
【図８】図８は図５に続きＩＣの種々のロケーション全体のデータを保護するための、そしてＲＯＭを保護するための実施形態の動作の詳細を示すフローチャートである。
【００２７】
【図９】図９はＲＡＭを保護するための代替的な実施形態のための動作の詳細を示すフローチャートである。
【００２８】
【図１０】図１０はＲＡＭを保護するための実施形態の動作を示すフローチャートである。
【００２９】
【図１１】図１１はＲＡＭを保護するための実施形態の追加的な詳細を示すフローチャートである。
【００３０】
【図１２】図１２は実施形態に従う集積回路ＰＲＯＭ保護のブロック図である。
【００３１】
【図１３】図１３は図１２に示される実施形態に従う動作の方法を示すフローチャートである。
【００３２】
【図１４】図１４は実施形態に従う集積回路ＲＯＭ保護のブロック図である。
【００３３】
【図１５】図１５は図１４に示される実施形態に従う動作の方法を示すフローチャートである。
【００３４】
【図１６】図１６はＲＯＭの保護のための代替的な実施形態を示す方法である。
【００３５】
【図１７】図１７は実施形態に従う集積回路の動作の方法を示すフローチャートである。
【発明を実施するための形態】
【００３６】
次に図面を参照すると、同様の参照数字は同様の要素を示しており、図１は実施形態に従う例示的な集積回路（ＩＣ）１００のブロック図である。ＩＣ１００は電子デバイス１０１内に組み込まれていてよく、電子デバイス１０１は、限定はされないが例えばアンテナ１０３を介して通信するワイヤレス通信デバイス、ＰＤＡ、ラップトップコンピュータ、デスクトップコンピュータ等であってよい。ＩＣ１００の内部回路は２つの領域(domains)、即ち機能領域１０４及び試験領域１０５に分類されていてよい。機能領域１０４はＩＣ１００の通常動作に必要な全ての回路及び／又は構成部品、例えば機能ブロック１３３乃至１３５及び種々のメモリを含む。機能ブロック１３３乃至１３５は、ＩＣ１００の動作上の要求に応じて種々のレジスタ、フリップフロップ、ラッチ、及び／又は論理ゲートを含んでいてよい。種々のメモリはランダムアクセスメモリ（ＲＡＭｓ）、例えばスタティックＲＡＭメモリ１２３、リードオンリメモリ（ＲＯＭｓ）１２５、及びプログラム可能ＲＯＭ（ＰＲＯＭｓ）１２７を含んでいてよい。
【００３７】
機能リセット制御器１０７が種々の機能ブロック１３３乃至１３５に結合されており、機能リセット制御器１０７は、リセットツリー１０９として知られる論理構造を介して機能領域１０４内の全ての機能ブロックにリセット信号を供給するように動作する。例えばリセット信号は、機能ブロック１３３乃至１３５の各レジスタの内容を消去して、各レジスタの状態をＩＣ１００の設計者によって決定されたであろう既知の値に強制するために用いられてよい。リセット信号は、動作の開始に先立ち全てのレジスタをリセットするのに十分な長さの期間にわたり、機能リセット制御器１０７によってリセットツリー１０９へ印加される。
【００３８】
機能ブロック１３３乃至１３５及び、レジスタ、フリップフロップ、ラッチ等に含まれる任意の付随物は、タイミング信号を機能ブロックに供給するための対応するクロック回路（図示せず）に結合される。それらクロック回路は更に種々のクロックツリー１３６に接続されていてよく、クロックツリー１３６は更にクロック制御器１３７に結合される。クロック制御器１３７は機能領域１０４内にあり、全ての同期しているＩＣ１００の構成部品に対して種々のクロック信号を生成し及び／又は経路付けして、適切な動作を確実にすると共に同期信号を供給することによってクロックツリー１３６に接続されている全てのクロック回路を同期させるように動作する。幾つかの実施形態では、クロック制御器１３７及びクロックツリー１３６は試験領域１０５内で動作してもよい。
【００３９】
ＩＣ１００はそれぞれデータ受信及びデータ出力のための書き込み機能入力パッド１１９及び読み出し機能出力パッド１２１を含む。書き込み機能入力パッド１１９及び読み出し機能出力パッド１２１は電子デバイス１０１の追加的な内部回路（図示せず）に結合されていてよく、この場合、内部回路は例えば電子デバイス１０１の物理的接続ポートにて入力及び出力を提供してＩＣ１００が外部接続に対してデータを読み出し及び書き込みすることができる。幾つかの実施形態では、ＩＣ１００は書き込み機能入力パッド１１９及び読み出し機能出力パッド１２１を介して電子デバイス１０１の物理的入力／出力接続に直接的に接続されてよい。
【００４０】
幾つかの実施形態で試験容易化設計(Design-for-Test)（ＤＦＴ）動作モードに対応していてよいＩＣ１００の試験領域１０５においては、通常のＩＣ１００の動作の間はアクティブでなく又は動作していなくてよい種々の他の構成部品がアクティブになる。例えば、試験領域１０５は、ＩＣ１００を試験モードに設定し試験モードの間にＩＣ１００を制御するように動作する試験制御論理１０６を含む。試験制御論理１０６は１つ以上の制御線１１５を介して試験領域１０５を制御し、制御線１１５を通じて試験制御論理１０６は命令を送りそして機能領域１０４の種々の構成要素、限定はしないが例えば種々のレジスタ、フリップフロップ、ラッチ、論理ゲート等を含む機能ブロック１３３乃至１３５からの応答を受け取ることができる。試験制御論理１０６はまたクロック制御信号線１３９を介してクロック制御器１３７に結合されており、種々のクロックをアクティブにし停止させる命令をクロック制御器１３７へ送るように動作し、それに応じてクロック制御器１３７はクロックツリー１３６に接続される全てのクロック回路に対して単一又は複数の同期クロック信号を供給し又は保留する。
【００４１】
試験制御論理１０６は、ＩＣ１００の１つ以上のピンに対応していてよい試験制御信号入出力ポート１１７に結合されている。試験制御信号入出力ポート１１７はＤＦＴ入出力ポートであってよい。試験制御信号入出力ポート１１７は更に、試験機能へのアクセスを提供する電子デバイス１０１の対応するコネクタに結合されていてよい。しかし、幾つかの実施形態では、ＩＣ１００それ自身、又はＩＣ１００を組み込んでいる電子デバイス１０１内部の回路基板は、試験制御信号入出力ポート１１７と直接的にインタフェースをとるためにアクセスされなければならない。従っていずれの実施形態においても、悪意のあるユーザあるいはハッカーが試験制御信号入出力ポート１１７にアクセスすることによって試験制御論理１０６にアクセスすることを試みるかもしれないという潜在的脅威がある。換言すれば、場合によってはハッカーはＩＣ１００の試験機能へのアクセスを得るために電子デバイス１０１を部分的に分解する必要があるかもしれない。例えばデバイスの分解によってであれ物理的接続を介したアクセスによってであれ、ハッカーによって得られるであろう試験制御論理１０６へのいかなる種類のアクセスも、ここに開示される種々の実施形態によって妨げられる。
【００４２】
試験制御論理１０６は１つ以上の試験制御器（ＴＣ）、例えばＴＣ１０８を含んでいてよく、更に１つ以上のメモリ試験制御器（ＭＴＣ）、例えばＭＴＣ１１０を含んでいてよい。幾つかの実施形態では、１つ以上のＭＴＣ、例えばＭＴＣ１１０は機能領域１０４内に置かれてよい。試験制御論理は、ＲＡＭ１２３、ＲＯＭ１２５及びＰＲＯＭ１２７を含む種々のメモリに対して命令を送りデータを受け取るための種々の制御線１２９を有している。幾つかの実施形態では、ＭＴＣ１１０は制御線１２９を用いて１つ以上のメモリと通信することになり、また種々の命令をメモリに送り試験出力をメモリから受け取ることができる。
【００４３】
本開示と共に提供される図１及び他の全ての図面は例示のみを目的としており、ここに開示される種々の実施形態をどのようにつくりまた使用するかを当業者に示し説明する目的のものであることが理解されるべきである。従って、ここに提供される図１及び他の全ての図面は、種々の実施形態をどのようにつくりまた使用するかについての当業者の理解を容易にするために必要なものとして要素、構成部品等を示すことに限定されており、例えばここに開示される実施形態を組み入れた任意のＩＣ又は任意の電子デバイスの完全な配置図であることは意図されていない。従って、ＩＣ及び／又は電子デバイスはＩＣ及び／又は電子デバイスの動作上の必要に応じて種々の他の要素、構成部品等を含んでいてよいことが当業者によって理解されるであろう。更に当業者であれば理解するであろうように、図１に関して、試験領域１０５及び機能領域１０４は図１及び／又は本開示の他の図面に示されていない他のブロック、要素、構成部品等を同様に含んでよく、またＩＣの適切な動作に必要であろう任意のそのようなブロックが必要に応じて存在することを当業者は理解するであろう。
【００４４】
ＩＣ１００の通常動作の間、試験制御論理１０６並びに任意のＴＣ及びＭＴＣ、例えばＴＣ１０８及びＭＴＣ１１０は非アクティブであり、ＩＣ１００の機能領域１０４の動作を邪魔することはない。しかし、ユーザがＩＣ１００の試験モードをアクティブにし、従って試験領域１０５をアクティブにすると、ＩＣ１００の試験機能が例えば試験制御論理１０６、ＴＣ１０８、ＭＴＣ１１０並びに任意の他のＴＣ及びＭＴＣを含めてアクティブにされる。試験動作モードは例えばＩＣ１００の試験容易化設計（ＤＦＴ）動作モードであり得る。ＩＣ１００のそのような試験機能がアクティブになると、ＩＣ１００は「試験モード」にあると言われる。
【００４５】
このようにＩＣ１００が試験モードにある場合、試験領域１０５はアクティブである。実施形態の試験制御論理１０６は試験リセット命令線１１３を介して機能リセット制御器１０７に結合されている。機能リセット制御器１０７は、試験リセット命令線１１３を介して試験リセット命令を受け取り機能ブロック１３３乃至１３５のレジスタ及びフリップフロップへリセット命令を供給するように動作し、これについては後で詳述する。
【００４６】
ＩＣ１００が試験モードで動作している間、ユーザは試験制御論理１０６がＩＣ１００の内部回路に対して色々な試験を実行するよう試験制御信号入出力ポート１１７を介して命令することができる。例えば、主要なＤＦＴ試験の１つは「走査試験(Scan Test)」（ＳＴ）として知られている。走査試験を管理するために、試験制御論理１０６はＩＣ１００内の全てのレジスタ及び他の論理を１つ以上の「走査チェイン(Scan Chains)」に再設定することになる。この設定においては、ＩＣ１００は「走査モード」にあると言われる。
【００４７】
図２は走査モードに設定されて１つ以上の走査チェイン、例えば走査チェイン２０１を有するＩＣ１００を示している。走査チェイン、例えば走査チェイン２０１は種々のレジスタ２０３及び／又は他の対応する論理２０５からなる。論理２０５は例えばフリップフロップ又は他の論理要素を含んでいてよい。幾つかの実施形態では、ＭＴＣ１１０のようなＭＴＣが走査チェイン構成の一部となるよう強制されてもよい。
【００４８】
走査モードの間、機能入力パッド１１９を介して新しいデータがシフトすること及び機能出力パッド１２１を介してレジスタデータを読み出すことによって、試験データがＩＣ１００内へ伝播する。従って、本開示によって検討される、ＩＣ１００のレジスタ２０３内に記憶されている機密を危うくする可能性が見込まれる攻撃ベクター(attack vector)は、（１）ＩＣ１００をリセットし、ＩＣ１００のレジスタ２０３内あるいはフリップフロップ、ラッチ等の他の論理内に機密が存在するようになる迄は機能モードで動作させることと、（２）ＩＣ１００を試験モードに切り換え、次いで走査モードに切り換えることと、（３）試験モードに入る前にＩＣ１００のレジスタ２０３の内容を含んでいる出力中のビットストリームを機能出力パッド１２１にて読み出すことと、（４）出力中のビットストリームからレジスタ２０３内にある機密を抽出することとを含むであろう。
【００４９】
本開示によって検討される、ＩＣ１００のレジスタ２０３内に記憶されている機密を危うくする可能性が見込まれる第２の攻撃ベクターは、（１）チップをリセットし、ＩＣ１００のレジスタ２０３内に機密が存在するようになる迄は機能モードで動作させることと、（２）ＩＣ１００を試験モードに切り換え、次いで走査モードに切り換えることと、（３）レジスタ２０３の最終的な内容が機能モードのセキュリティ機能を無効にするように機能入力パッド１１９を介してレジスタ設定を投入することと、（４）ＩＣ１００を機能モードに戻すことと、（５）ＩＣ１００の低減されたセキュリティ状態を利用してＩＣ１００のレジスタ２０３及びメモリ（ＲＡＭ１２３、ＲＯＭ１２５、及びＰＲＯＭ１２７）内の機密にアクセスすることとを含むであろう。
【００５０】
走査モードに入る前に、また幾つかの実施形態では走査モードを終了させた後で機能モードに入る前にも全てのレジスタをリセットすることによって、種々の実施形態はこれら２つの検討された攻撃ベクターを打破する。実施形態の試験制御論理１０６は、ＩＣ１００が走査モードに入り走査モードを終了させることを担っている。ＩＣ１００が試験モードに入っている場合には、試験制御論理１０６は、走査モードに入り且つＩＣ１００を走査チェイン２０１のような走査チェインに設定するための例えば試験制御信号入出力ポート１１７からの外部命令を待つことになる。
【００５１】
この時点でＩＣ１００の走査チェインを設定する前に、試験制御論理１０６は、全てのクロック同期信号をアクティブにするための命令をクロック制御器１３７へ送り、次いで試験リセット命令線１１３を介して試験リセット命令を機能リセット制御器１０７へ送ることになる。これに応答して機能リセット制御器１０７は、リセットツリー１０９全体にリセット命令を送り、ＩＣ１００内の全てのレジスタ２０３をリセットすることになる。このリセットは、状態データを記憶しているであろう全てのラッチ、フリップフロップ及び他の論理要素をリセットすることを含んでいてもよい。
【００５２】
リセットの後、試験制御論理１０６は続いてＩＣ１００を図２に示されるような走査モードに置き、それによりＩＣ１００を走査チェイン２０１のような１つ以上の走査チェインに設定する。試験制御論理１０６は次いで、他の外部命令、例えばＩＣ１００を機能モードに戻す命令を待つ。幾つかの実施形態では、試験制御論理１０６は、いかなる機密データへのアクセスをも阻止するために、ＩＣ１００内の全てのレジスタ２０３及び他の論理２０５の別のリセットを実行してもよい。試験制御論理１０６は次いで、ＩＣ１００を図１に示される機能モードに戻してよい。
【００５３】
図３は上述したような動作の方法を示している。ステップ３０１ではＩＣが試験モードの動作に入り、それに応答してステップ３０３では一連のレジスタ、例えば走査チェイン内の全てのレジスタの各々をリセットする。ステップ３０３に示されるように、ＩＣがいかなる試験モード命令を受け取るよりも前にリセットが実行される。実施形態に従い試験制御論理１０６が試験リセット命令線１１３を介してリセットを提供する。
【００５４】
図３に示されるように全てのレジスタをリセットすることは、様々な方法で達成され得る。例えばリセットツリー１０９に加えて新たなリセットツリーがＩＣ１００内に含まれていてよい。この実施形態に対しては、追加的なリセットツリーは試験制御論理１０６によって駆動されてよい。しかし、この実施形態では、第２のリセットツリーがＩＣに加えられることが必要であり、リセットツリー全体として大きなＩＣ領域を必要としまた大量の電力を消費する。
【００５５】
そこで他の実施形態では、試験制御論理１０６が機能リセット制御器１０７から発している既存のリセットツリー１０９を用いて全てのＩＣレジスタのリセットを実行してよい。この実施形態では、試験リセット命令信号は試験制御論理１０６から試験リセット命令線１１３を介して機能リセット制御器１０７に発行される。試験制御論理１０６が試験リセット命令を有効にする場合、機能リセット制御器１０７がリセットツリー１０９を介してＩＣ内の全てのレジスタにリセットを発行し、それらの内容を消去する。従ってこの実施形態は第２のリセットツリーの必要性をなくし、従ってＩＣ全体の領域及び複雑性を低減する。
【００５６】
図４は図３に示される実施形態に従う方法の更なる詳細を示しており、ここでは機能リセット制御器１０７がリセット命令を発行するために用いられる。ステップ３０３でのリセットの後、ステップ４０１において試験制御論理１０６は例えば試験制御信号入出力ポート１１７を介して、走査モードに入るための命令を受け取ってよい。次いでステップ４０３では、試験制御論理１０６が続いてレジスタを走査チェイン２０１のような１つ以上の走査チェインに設定してよい。続いてステップ４０５に示されるように、試験制御論理１０６は走査動作が実行されることを許可してよい。試験制御論理１０６がステップ４０７に示されるように走査モードを終了させる命令を受け取ると、試験制御論理１０６は再び試験リセット命令を機能リセット制御器１０７へ送り、リセットツリー１０９の全てのレジスタをリセットしてよい。従ってこれにより、任意のレジスタが幾つかの試験動作の結果としての又はそうでない機密の情報を含んでいる場合に、セキュリティの追加的な測定が提供される。
【００５７】
図５は幾つかの実施形態に従う動作の更なる詳細を示している。ステップ５０１に示されるようにＩＣ１００が試験モードに入ると、試験制御論理１０６はクロック制御信号線１３９を介してクロック制御信号をクロック制御器１３７へ送ってよい。それに応答してクロック制御器１３７は、クロックツリー１３６を用いて全てのレジスタクロック回路への全てのクロック同期信号をアクティブにすることになる。クロック同期の後、試験制御論理１０６はステップ５０５に示されるように機能リセット制御器１０７に対してリセットを提供してよい。機能リセット制御器１０７によって提供されるリセットはまた、ステップ５０７に示されるようにＲＡＭ１２３に対してリセットを提供してＲＡＭの内容を消去してよい。このことは例えば、ＲＡＭ１２３の全てのメモリロケーションに既知のビットパターンを書き込むことにより達成することができる。試験制御論理１０６又はＭＴＣ１１０のようなＭＴＣがＲＡＭ１２３の全てのメモリロケーションを自動的に上書きすることができる場合には、試験制御論理１０６又は幾つかの実施形態ではＴＣ１０８は、ＭＴＣ１１０がＲＡＭの上書きタスクを完了するのを待つ。しかし、ＭＴＣ１１０が一度に１つのＲＡＭ１２３メモリロケーションにのみ書き込み可能な場合には、試験制御論理１０６のＴＣ１０８は、ＭＴＣ１１０が各ＲＡＭ１２３メモリロケーションに上書きすることを強制する書き込み命令のストリームを発行することになる。
【００５８】
試験制御論理１０６は次いでステップ５０９に示されるように、走査モードに入るための外部命令を待ってよい。ステップ５１１に示されるように走査モード命令が受け取られた場合には、試験制御論理１０６はＩＣ１００を走査モードに置き、そしてステップ５１３でレジスタを図２に示されるような１つ以上の走査チェインに接続することになる。ステップ５１５では、試験制御論理１０６は走査動作を実行してよい。幾つかの実施形態では、走査動作は他の命令に応答していてよく、あるいは試験モード構成の通常の進行においてなされてよい。ステップ５１７では試験制御論理１０６が走査モードを終了させるための命令を待つことになり、そして幾つかの実施形態ではステップ５１９で前述したように試験制御論理１０６がレジスタを再度リセットすることになる。試験制御論理１０６は次いで、ＩＣ１００を機能モード、従って図１に示されるような機能領域１０４に戻してよい。実施形態のレジスタ保護法方はステップ５２３に示されるように終了する。
【００５９】
また幾つかの実施形態は、非同期的に、即ちいかなるクロック要求もなしでレジスタをリセットしてよい。代替的には、レジスタは同期的にリセットされてよく、この場合クロック制御器１３７は前述したように試験制御論理１０６からクロック制御信号を受け取る。
【００６０】
図５に示される方法は試験モードの間、ＩＣ１００のデジタル情報を保護するための追加的な種々の方法と並行して作用することができ、それらの方法は図６，７，８及び９に示されている。ＩＣ１００の他の部分のデジタル情報を保護するためのそれらの追加的な方法を以下に説明する。
【００６１】
試験モードにおいては、外部ユーザが、適切な命令を試験制御論理１０６へ送ることによって、あるいはより具体的に幾つかの実施形態ではＴＣ１０８のような１つ以上の試験制御器を介してＭＴＣ１１０のような１つ以上のメモリ試験制御器へ命令を送ることによって、ＩＣ１００のＲＡＭ１２３の試験を開始することができる。幾つかのＭＴＣ命令は例えば、読み出し機能出力パッド１２１を介してＲＡＭ１２３の内容をユーザに読み出させることができる。従って、悪意のあるユーザは例えば次のようなＲＡＭ試験攻撃アルゴリズムを用いてＲＡＭ１２３内に記憶されている機密を読むことができることになり、そのアルゴリズムは、（１）ＩＣ１００をリセットし、ＩＣ１００のレジスタ２０３内に機密が存在するようになる迄は機能モードで動作させ、（２）ＩＣ１００を試験モードに切り換え、（３）ＭＴＣ１１０のような１つ以上のＭＴＣに命令を発行してＲＡＭ１２３の内容を読み出し、（４）ＲＡＭ１２３の内容からＲＡＭ１２３内にある機密を抽出するものである。
【００６２】
そのようなＲＡＭベースの攻撃を打破するために、当該実施形態は、外部ユーザがＲＡＭの任意の内容にアクセスすることを許可する前に、ＩＣ内の全てのＲＡＭ、例えばＩＣ１００内のＲＡＭ１２３の全ての内容を消去する。ＲＡＭの保護のための種々の実施形態を以下に説明する。
【００６３】
第１の実施形態は図５のブロック（ステップ）５０７に示されたものであり、試験制御論理１０６は試験モードに入るに際して全てのメモリを消去してよい。しかし、全ＲＡＭ内容を消去することは時間を浪費し、従ってＩＣ１００の試験コストを増大させる。そこで図７に示される第２の実施形態は、ＲＡＭの完全な消去を要求せずにむしろ、ＲＡＭ１２３のような内部ＲＡＭを読むことに関連する最初の命令を試験制御論理１０６が受け取ったときにのみＲＡＭを消去する。
【００６４】
従って図７のステップ７０３では、ＲＡＭにアクセスしあるいはＭＴＣ１１０のようなＭＴＣを介してＲＡＭにアクセスするための外部ユーザからの命令が受け取られてよい。ＲＡＭアクセス命令を受け取る前に、試験制御論理１０６又はＴＣ１０８は、全ての非ＲＡＭ関連試験命令を通常通り処理していてよい。しかし、外部ユーザから最初のＲＡＭ関連命令を受け取った際には、試験制御論理１０６は、全てのＲＡＭ１２３ロケーションを既知のパターンで上書きするための内部命令をＭＴＣ１１０のような各ＭＴＣに対して発行する。試験制御論理１０６又はＭＴＣ１１０が全てのＲＡＭ１２３ロケーションに自動的に上書き可能である場合には、試験制御論理１０６はＭＴＣ１１０がそのタスクを完了するのを待つ。従ってステップ７０７では、もしＲＡＭ１２３のメモリロケーションが既に上書きされていたら、ステップ７１１に示されるように任意の後続の命令が通常通り処理されてよい。しかし、ステップ７０７でＭＴＣ１１０が一度に１つのＲＡＭ１２３メモリロケーションにのみ書き込み可能である場合には、試験制御論理１０６はステップ７０９で、ＭＴＣ１１０が各ＲＡＭ１２３メモリロケーションに上書きすることを強制する書き込み命令のストリームを発行することになる。試験制御論理１０６は次いで最初のＲＡＭ関連試験命令の処理と共にステップ７１１へ進んでよく、後続のＲＡＭ関連試験命令はＲＡＭ１２３を２度目に消去する必要なしに処理される。
【００６５】
ここに説明された実施形態は今までのところＩＣ１００の以前の状態にかかわらず実行されるであろう。しかし幾つかの実施形態では、ＩＣが動的に生成される機密を含まない場合には、試験時間を短縮しそれによりＩＣのコストをも低減するために、ＩＣ製造試験の間に幾つかの方法が省略されてよい。そのために、ＲＡＭの保護のための第３の実施形態が図２及び図９に示されており、そこではＲＡＭ保護方法はＩＣ製造試験の間は省略されてよい。また幾つかの実施形態では、レジスタ保護方法もＩＣ製造試験から省略されてよい。
【００６６】
図２は一群の安全で且つ機密な署名レジスタ２１７を示しており、署名レジスタ２１７はどの走査チェインにも含まれておらず従って走査可能ではないが、幾つかの実施形態ではリセット可能である。一連の安全な署名レジスタ２１７はＩＣ１００の機能領域１０４内に加えられている。これらの署名レジスタ２１７は機能ドメイン回路２１１によって、例えば書き込み入力線２１３によって書き込み可能であり、また試験制御論理１０６によって、例えば読み出し線２１５によって読み出し可能である。
【００６７】
署名レジスタ２１７を有する実施形態の動作の方法が図９によって示されている。ＩＣ１００の電源投入に際して、署名レジスタ２１７の値はランダムであり従って未知である。ステップ９０１に示されるようにＩＣ１００が機能モードで動作する場合、ＩＣ１００の機能ドメイン回路２１１はステップ９０３に示されるように、任意の機密情報を生成し又は外界から機密情報を受け取るより前に、予め定められた署名パスワードを署名レジスタ２１７へ書き込む。
【００６８】
ステップ９０５で試験モードが有効になるとすぐに、試験制御論理１０６がステップ９０７に示されるように署名レジスタ２１７の値を照査する。ステップ９０９にて署名レジスタが予め定められた署名パスワードを含んでいる場合には、
ＲＡＭ１２３はステップ９１３において機能モード動作に起因して機密情報を有しているとみなされる。その結果ステップ９１５では、試験制御論理１０６は外部試験命令を許可することを拒否することとなり、全ての試験動作、例えばＤＦＴ動作は無効にされることになる。しかし、ステップ９０９において署名パスワードがない場合には、試験制御論理１０６はステップ９１１に示されるように通常のＲＡＭ１２３アクセスを許可してよい。
【００６９】
ＲＡＭに関して試験制御論理１０６機能を再びアクティブにするために、ＩＣ１００電力は取り除かれ次いで再び供給される必要がある。ＩＣ１００への電力を除去し復元するこの処理は、全てのレジスタ及びＲＡＭの内容を強制的にランダムで且つ未知の状態へ戻すことになる。予め定められた署名パスワードを保持する署名レジスタ２１７の数は、極めて低い蓋然性でレジスタの電源投入値が予め定められた署名パスワードに等しくなる状況を確実にするために、十分大きくなければならない。
【００７０】
直近で説明された実施形態は署名レジスタ２１７を採用していたが、暗号化されたデータの任意の適切な形態が実施形態に従って用いられてよい。その実施形態に従う方法が図１０に示されており、ここではＩＣはステップ１００１にて試験モードに入り、それに応答してステップ１００３にてＩＣは、試験モードに入るよりも前にＩＣが機能モードで動作させられていたことを決定する。ステップ１００５では、試験制御論理１０６はステップ１００３での決定に基きＲＡＭが機密情報を有するであろうとみなし、試験モードにおける読み出し命令によるＲＡＭへのアクセスが遮断される。図１１においてステップ１１０１にて試験モードに入った後、ステップ１１０３にて一連のレジスタは暗号化されたデータを含んでいると決定され、この場合一連のレジスタは走査チェインから分離されている。ステップ１１０５では、試験制御論理１０６はステップ１１０３での決定に基きＲＡＭが機密情報を有するであろうとみなし、試験モードにおける読み出し命令によるＲＡＭへのアクセスが阻止される。レジスタが暗号化されたデータを含んでいることの決定は、幾つかの実施形態では、レジスタ内容を先験的に知られた(a priori known)暗号化されたデータと比較し、レジスタ内容が先験的に知られた暗号化されたデータに一致することを決定することによってなされてよい。
【００７１】
ＰＲＯＭの保護のための実施形態を以下に説明する。フューズ(Fuses)のようなチップ上(On-chip)プログラム可能リードオンリメモリ（ＰＲＯＭ）が種々の鍵及び機密ＩＣ識別情報を記憶するために用いられる。ＰＲＯＭは一般的には、それらが製造工場においてプログラムされ得るように、書き込み機能入力パッド１１９及び読み出し機能出力パッド１２１のような外部ＩＣパッドを通してマルチプレクサ(mux)１３１を介してアクセス可能である。
【００７２】
しかし、このプログラミングのステップが一旦完了したら、ＰＲＯＭの内容は悪意のあるユーザにより読み出し可能であってはならない。ＤＦＴモードのような試験モードの間、ＰＲＯＭへのアクセスが危険にさらされてはならない。もしＤＦＴモードのような試験モードの間に攻撃者が機能入力パッド１１９の入力値を操作し得るとすれば、図１に示されるような外部パッド（機能入出力パッド１１９，１２１）に対するＰＲＯＭの直接的な接続性は、攻撃者に対してＰＲＯＭを脆弱にする。
【００７３】
図１２はＩＣ１００の試験モードの間にＰＲＯＭ１２７の内容を保護するためのＰＲＯＭ保護論理２２３の実施形態を示している。ＰＲＯＭは非同期方式で読み出され、この場合ロケーションアドレス１２１１及び制御信号１２０９（読み出しイネーブル及びメモリイネーブル）がＰＲＯＭ１２７に供給される。ＰＲＯＭ１２７はロケーションアドレスの内容を読み出しデータ信号線１２１５に出力することによって応答する。前述したような試験制御論理１０６起動のリセットの間、入力したロケーションアドレス１２１１及び制御信号１２０９の値は、ＰＲＯＭ１２７内の特定のロケーション（例えばロケーションアドレス０）を読み出すように設計されている。当該ロケーションの内容は、ＰＲＯＭ１２７の異なる領域に対する読み出しアクセスルールがある場合にはそれを指定する。リセットの間、これらの読み出しアクセス保護ルールはＰＲＯＭ保護レジスタ１２０３内に記憶されている。一旦リセットから外れたら、ＰＲＯＭ保護レジスタ１２０３の内容は変えることはできない。試験モードの間、全てのユーザ要求の読み出し動作は、その読み出し動作をＰＲＯＭ１２７へ伝播させるよりも前に、ＰＲＯＭアクセス論理１２０１によって評価される。ＰＲＯＭ保護レジスタ１２０３内に記憶されている値が、読み出しアクセスに対するユーザ要求が保護されたロケーションを目標としていることを示している場合には、ＰＲＯＭアクセス論理１２０１はその要求を阻止してＰＲＯＭ１２７へのその要求の伝播を防ぐ。
【００７４】
図１３はステップ１３０１でＩＣ１００が試験モードに入る動作の方法を示している。ステップ１３０３では、試験モードになってからＰＲＯＭ読み出し命令が受け取られ、ＰＲＯＭ読み出し命令はＰＲＯＭロケーションアドレスを指定する。ステップ１３０５では、ＰＲＯＭ読み出し命令によって指定されたアドレスロケーションが機密情報に向けられていることが決定される。次いでステップ１３０７では、ＰＲＯＭ読み出し命令に応答して悪意のない出力(benign output)（即ち「ごみデータ(garbage data)」）が提供されてよい。
【００７５】
図６はまた、図５に示される方法と並行して動作させられてよい方法を示している。従ってステップ５０１で試験モードに入った後、試験制御論理１０６は、リセット１２０７を介してＰＲＯＭアクセス論理１２０１をリセットするリセット命令を発行する。ＰＲＯＭアクセス論理１２０１はリセットに応答してステップ６０５において、ＰＲＯＭ１２７のアドレス、例えばロケーションアドレス０又は読み出されないことになっている即ち機密のアドレスの識別子を含む任意の他のアドレスを読み出す。ステップ６０７においては、ＰＲＯＭアクセス論理１２０１がロケーションアドレス（例えばロケーションアドレス０等）の内容をＰＲＯＭ保護レジスタ１２０３内に記憶する。方法はステップ６０９で終了する。
【００７６】
ＲＯＭの保護のための実施形態を以下に説明する。ＲＯＭの他ＰＲＯＭの内容はＩＣ製造プロセスの間は固定されている。この内容は、ＲＯＭの内容の有効性を試験するメカニズムを提供する一方でそれに加えて、悪意のあるユーザから保護されなければならない。慣習的にはＲＯＭはＭＴＣ１１０のようなメモリ試験制御器（ＭＴＣ）を用いて試験され、ＭＴＣは、攻撃者が試験モードの間に試験制御論理１０６を介してＰＲＯＭの内容へのアクセスを得ることを可能にしていた。
【００７７】
本実施形態は、個々のＲＯＭ行に対する全ての読み出し動作を無効にすることによって、ＭＴＣベースの読み出し攻撃を防ぐ。しかし、ＲＯＭが試験可能であり続けることを確実にするために、本実施形態はＲＯＭ＿ＭＴＣ１１０に組み込まれた特別な読み出し機能を含んでいる。この機能により、ＭＴＣ１１０は、大量の行を内部的に読み出し、また暗号化論理及び幾つかの実施形態では多重化入力シフトレジスタ(multi-input shift register)（ＭＩＳＲ）を用いてこれらの行の内容に対する暗号化された値又は署名を算出することが可能になる。結果としての暗号化データ又は署名は非欠陥のＲＯＭに期待される値と比較されてよく、ＲＯＭの内容を外部ユーザに明らかにすることなしに、試験中のＲＯＭに製造不良がないことを確実にすることができる。
【００７８】
図１４を参照すると、試験制御論理１０６はＭＴＣ１１０を介して読み出し命令１４０１をＲＯＭ１２５に対して発行してよい。それに応答して、ＲＯＭはその行データ１４０３を暗号化論理２２５に書き込むことになる。それに応答して、暗号化論理２２５は出力１４０５を試験制御論理１０６又はＭＴＣ１１０に書き込むことになる。図１５は図１４に示されるＲＯＭ保護の実施形態に従う方法を示している。ステップ１５０１では、ＩＣ１００が試験モードに入る。ステップ１５０３では、ＭＴＣ１１０からのであってよいＲＯＭ読み出し命令１４０１が受け取られる。ステップ１５０５では、読み出し命令１４０１に応答してＲＯＭ１２５がその行データ１４０３を暗号化論理２２５に書き込む。暗号化論理は暗号化出力をステップ１５０７で試験制御論理１０６又はＭＴＣ１１０に書き込み、暗号化出力はＲＯＭの内容を表す。暗号化出力は試験制御信号入出力ポート１１７を介して外界へ提供されてよい。
【００７９】
図１６は代替的な実施形態を示しており、ステップ１６０５及び１６０７に示されるように、ＲＯＭの内容を表す出力を提供するためにＭＩＳＲが用いられる。図８は図５、図６及び図７の方法と並行して及び連動して用いられるような方法を示している。
【００８０】
図１７はここに開示される種々の実施形態の全てを組み込み、またここに開示されてきたような全てのレジスタ、ラッチ、ＲＯＭ、ＲＡＭ及びＰＲＯＭをそうして保護する実施形態のための例示的な方法を示している。
【図１】
2011525015.tif 000003
【図２】
2011525015.tif 000004
【図３】
2011525015.tif 000005
【図４】
2011525015.tif 000006
【図５】
2011525015.tif 000007
【図６】
2011525015.tif 000008
【図７】
2011525015.tif 000009
【図８】
2011525015.tif 000010
【図９】
2011525015.tif 000011
【図１０】
2011525015.tif 000012
【図１１】
2011525015.tif 000013
【図１２】
2011525015.tif 000014
【図１３】
2011525015.tif 000015
【図１４】
2011525015.tif 000016
【図１５】
2011525015.tif 000017
【図１６】
2011525015.tif 000018
【図１７】
2011525015.tif 000019
【国際調査報告】
2011525015.tif 000020
2011525015.tif 000021
2011525015.tif 000022