JP2011525015A - 試験動作モードの間に集積回路のデジタル情報を保護するための方法及び装置 - Google Patents

試験動作モードの間に集積回路のデジタル情報を保護するための方法及び装置 Download PDF

Info

Publication number
JP2011525015A
JP2011525015A JP2011512607A JP2011512607A JP2011525015A JP 2011525015 A JP2011525015 A JP 2011525015A JP 2011512607 A JP2011512607 A JP 2011512607A JP 2011512607 A JP2011512607 A JP 2011512607A JP 2011525015 A JP2011525015 A JP 2011525015A
Authority
JP
Japan
Prior art keywords
test
integrated circuit
control logic
registers
test mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011512607A
Other languages
English (en)
Inventor
エム.ガーデルラブ セラグ
ドゥ ビン
エス.サイード ジーシャン
フォーリー デニス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ATI Technologies ULC
Original Assignee
ATI Technologies ULC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ATI Technologies ULC filed Critical ATI Technologies ULC
Publication of JP2011525015A publication Critical patent/JP2011525015A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318555Control logic
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/14Implementation of control logic, e.g. test mode decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C2029/3202Scan chain

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Storage Device Security (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

【解決手段】
実施形態は試験容易化設計(DFT)又は他の試験モード攻撃からICを保護する。レジスタ又はラッチ、RAM内に記憶されている一時的な機密、及び/又はROM及び/又はPROM内に記憶されている永続的な機密が保護される。ICの情報を保護するための1つの実施形態は、試験モードに入ることと、試験モードの動作に入ることに応答して、試験モード命令を受け取るよりも前に各レジスタをリセットすることとを含む。集積回路の実施形態は、集積回路を試験モードに設定し且つ試験モードの間は集積回路を制御するように動作する試験制御論理と、一連のレジスタと、試験制御論理及び一連のレジスタに結合され試験制御論理からリセット命令を受け取り且つ試験モードに入るための命令に応答してリセット命令を一連のレジスタに供給するように動作する機能リセット制御器とを含む。
【選択図】図1

Description

本出願は同時係属の出願、代理人事件番号(Attorney Docket No.)00100.07.0125、試験動作モードの間に集積回路リードオンリメモリのデジタル情報を保護するための方法及び装置、に関し、その出願は本出願と共にエー・ティー・アイ・テクノロジーズ・ユー・エル・シー(ATI Technologies ULC)に通常通り譲渡されている。
本開示は、一般的に、集積回路(IC)の分野及びICの種々の動作モード、例えば試験容易化設計(Design for Test)(DFT)モードを含む試験モードに関し、更にIC内に含まれる暗号鍵、パスワード及び他の情報に関し、より特定的には、ICをDFT又は同様の試験モードで動作させることによるアクセスから前記暗号鍵、パスワード及び他の情報を保護するための方法及び装置に関する。
電子デバイスの動作のために必要となるであろうデジタルコンテンツ及び他の情報の保護は、集積回路(IC)の種々のロケーションに記憶されている暗号鍵及びパスワードによってしばしば促進される。権限のあるユーザ以外の誰かによる鍵へのアクセスは、あるいは権限のあるユーザ自身によるアクセスでさえも、著作権のある又は他の保護されたデジタル題材の窃盗又は不正利用をもたらす可能性がある。また、保護されたデジタルコンテンツ及び他の機密情報は多くの場合、前述した暗号鍵を用いて復号化又は非暗号化され、ICによって一時的にメモリ又はレジスタのロケーション内に記憶される。メモリ又はレジスタへのアクセスはまた、権限のないユーザによるコンテンツの窃盗又は不正利用を招く可能性がある。
保護されたデジタルコンテンツを不法に得るための新しい手法が流行し始めており、権限のない第三者は、IC内部レジスタ及びメモリへのアクセスを試みることによって、保護されたデジタル題材にICレベルでアクセスすることを企てるかもしれない。これらの攻撃は、IC設計それ自体を利用し、また組み込まれたIC試験特性、例えば「試験容易化設計」(DFT)モードとして知られる動作モードを巧みに利用しようとする。このように試験容易化設計攻撃は、情報セキュリティの分野における新たな懸念を生み出してきており、種々のIC部分、限定はされないが例えばスタティックランダムアクセスメモリ(SRAM)、リードオンリメモリ(ROM)、プログラム可能リードオンリメモリ(PROM)、レジスタ及びフリップフロップの情報セキュリティを脅かしている。
近年提案されている方法は、レジスタ及びラッチ(latches)のDFT攻撃からの保護に対処することを試みてきた。レジスタを保護するために近年提案されているそのような方法の1つは、「機密挙動(secret-bearing)」レジスタを列挙しそれらをDFT処理から除外することである。しかし、この方法は幾つかの欠点を有している。第1に、レジスタを除外するとDFTのための試験範囲が狭くなり、全体的なIC収率を低減してしまう。第2に、設計者が「機密挙動」レジスタをDFT処理から識別し且つ手動で取り除く必要があるので間違いが生じ易く、また特定の秘密挙動レジスタは正確に識別することが困難乃至は不可能であるかもしれない。第3に、この方法は機密情報がレジスタのみに含まれていてメモリには含まれていないことを前提としている。
他に提案されている方法は難読化(obfuscation)に基いており、この場合、異なるレジスタの内容は疑似乱数方式で互いに多重化される。この取り組みはまた、業界標準のコンピュータ支援設計(CAD)ツールによって支持されない特化されたDFTアルゴリズムを必要とするという欠点を有している。この方法の第2の欠点は、決意を秘めたハッカーによる逆行解析(reverse-engineering)にさらされるかもしれない難読化に頼っていることである。
従って、IC動作モード攻撃、例えば試験容易化設計攻撃あるいはIC試験モードを利用した同様の攻撃を採用した権限のないユーザによるアクセスから、保護された情報を守るための方法及び装置に対する要求が存在する。
ここに開示される種々の実施形態は、ICの動作の試験モードを用いることによるアクセスからのICの機密情報の保護を提供する。例えば、ここに説明される種々の実施形態は、ICを試験容易化設計(DFT)攻撃に対して保護する。実施形態は、レジスタ又はラッチに記憶されている一時的な機密、RAMに記憶されている一時的な機密、リードオンリメモリ(ROM)に記憶されている永続的な機密、及び/又はチップ上フューズ(on-chip fuses)のようなプログラム可能なROM(PROM)に記憶されている永続的な機密を保護する。
ここに開示される集積回路の情報を保護する方法は、試験モードの動作に入ることと、試験モードの動作に入ることに応答して、試験モード命令を受け取るよりも前に一連のレジスタの各レジスタをリセットすることとを含む。方法は、走査モードに入るための命令を受け取ることと、一連のレジスタを少なくとも1つの走査チェインに設定することと、走査動作を実行することと、走査モードを終了するための命令を受け取ることと、走査モードを終了するための命令を受け取ることに応答して、機能モードに入るよりも前に一連のレジスタの各レジスタを試験制御論理によりリセットすることとを更に含んでいてよい。リセットの方法は、デバイス内の機能リセット制御器によって提供されるリセット命令を介していてよい。方法は、フリップフロップをリセットすることを更に含んでいてよく、また、試験モードの動作に入ることに応答して、RAM読み出し命令を最初に遮断した後に、ランダムアクセスメモリ(RAM)の全てのロケーションに既知のビットパターンを書き込むことと、既知のビットパターンを書き込むことの後に後続のRAM読み出し命令を許可することとを含んでいてよい。
集積回路の情報を保護する他の方法は、試験モードの動作に入ることと、試験モードの動作に入ることに応答して、試験モードの動作に入るよりも前に集積回路が機能モードの動作で動作させられていたことを決定することと、試験モードの動作に入るよりも前に集積回路が機能モードの動作で動作させられていたことを決定することに応答して、試験モードの動作にある場合にランダムアクセスメモリ(RAM)読み出し命令を遮断することとを含む。方法はまた、試験モードの動作に入るよりも前に集積回路が機能モードの動作で動作させられていたことを決定することが、一連のレジスタが暗号化されたデータを含んでいることを試験モードの動作に入ることに応答して決定すること、を更に含んでいることを含んでいてよく、一連のレジスタは走査チェイン構成から分離されている。
集積回路の情報を保護する他の方法は、試験モードの動作に入ることと、リードオンリメモリ(ROM)読み出し命令を受け取ることと、ROM読み出し命令を受け取ることに応答して複数のROMアドレスロケーションから暗号化論理へデータを書き込むことと、複数のROMアドレスロケーションからのデータを表す暗号化論理の暗号化論理出力を試験制御論理へ書き込むこととを含む。方法は更に、複数のROMアドレスロケーションから暗号化論理へデータを書き込むことが、ROM読み出し命令に応答して複数のROMアドレスロケーションから多重化入力シフトレジスタ(MISR)へデータを書き込むことと、MISR出力を試験制御論理へ書き込むことと、を更に含んでいることを含んでいてよく、MISR出力は複数のROMアドレスロケーションからのデータを表す。
集積回路の情報を保護する他の方法は、試験モードの動作に入ることと、試験モードの動作に入ることの後に、読み出しアドレスを指定するプログラム可能リードオンリメモリ(PROM)読み出し命令を受け取ることと、読み出しアドレスが機密情報に向けられていることを決定することと、PROM読み出し命令に応答して悪意のない出力パターンを提供することとを含む。方法は更に、読み出しアドレスが機密情報に向けられていることを決定することが、機密情報がPROM内のどこに記憶されているかを特定する少なくとも1つのPROMアドレスロケーションを読み出すことと、PROMアドレスロケーションをPROM保護レジスタ内に記憶することと、を更に含んでいることを含んでいてよい。
集積回路の情報を保護する他の方法は、試験モードの動作に入ることと、試験モードの動作に入ることに応答して、試験モード命令を受け取るよりも前に一連のレジスタの各レジスタをリセットすることと、試験モードの動作に入ることに応答して、試験モードの動作に入るよりも前に集積回路が機能モードの動作で動作させられていたことを決定することと、試験モードの動作に入るよりも前に集積回路が機能モードの動作で動作させられていたことを決定することに応答して、試験モードの動作にある場合にランダムアクセスメモリ(RAM)読み出し命令を遮断することと、リードオンリメモリ(ROM)読み出し命令を受け取ることと、ROM読み出し命令を受け取ることに応答して複数のROMアドレスロケーションから暗号化論理へデータを書き込むことと、複数のROMアドレスロケーションからのデータを表す暗号化論理の暗号化論理出力を試験制御論理へ書き込むことと、試験モードの動作に入ることの後に、読み出しアドレスを指定するプログラム可能リードオンリメモリ(PROM)読み出し命令を受け取ることと、読み出しアドレスが機密情報に向けられていることを決定することと、PROM読み出し命令に応答して悪意のない出力パターンを提供することとを含む。
ここに開示される集積回路は、集積回路を試験モードに設定し且つ試験モードの間は集積回路を制御するように動作する試験制御論理と、一連のレジスタと、試験制御論理及び一連のレジスタに結合され試験制御論理からリセット命令を受け取り且つ試験モードに入るための命令に応答してリセット命令を一連のレジスタに供給するように動作する機能リセット制御器とを含む。集積回路試験制御論理は更に、走査モードに入るための命令を受け取り、走査モードに入るための命令に応答して一連のレジスタを少なくとも1つの走査チェインに設定し、少なくとも1つの走査チェインにて走査動作を実行し、走査モードを終了するための命令を受け取り、走査モードを終了するための命令を受け取ることに応答して、機能モードに入るよりも前に一連のレジスタの各レジスタをリセットするように動作してよい。
ここに開示される他の集積回路は、少なくとも1つのランダムアクセスメモリ(RAM)と、少なくとも1つのRAMに結合される試験制御論理とを含み、試験制御論理は、集積回路を試験モードに設定し且つ試験モードの間は集積回路を制御し、試験モードに入ることに応答して、試験モードに入るよりも前に集積回路が機能モードで動作させられていたことを決定し、試験モードに入るよりも前に集積回路が機能モードで動作させられていたことを決定することに応答して、試験モードにある場合にRAM読み出し命令を遮断するように動作する。集積回路は試験制御論理に結合される一連のレジスタを更に含んでいてよく、一連のレジスタは試験モードの走査チェイン構成から分離されており、試験制御論理は更に、一連のレジスタが暗号化されたデータを含んでいることを試験モードに入ることに応答して決定することによって、試験モードに入るよりも前に集積回路が機能モードで動作させられていたことを決定するように動作してよい。
ここに開示される他の集積回路は、少なくとも1つのリードオンリメモリ(ROM)と、暗号化論理と、少なくとも1つのROM及び暗号化論理に結合される試験制御論理とを含み、試験制御論理は、集積回路を試験モードに設定し、ROM読み出し命令を受け取り、ROM読み出し命令を受け取ることに応答して複数のROMアドレスロケーションから暗号化論理へデータを書き込み、複数のROMアドレスロケーションからのデータを表す暗号化論理の暗号化論理出力を試験制御論理へ書き込むように動作する。集積回路は、試験制御論理に結合される少なくとも1つの多重化入力シフトレジスタ(MISR)を更に含んでいてよく、試験制御論理は更に、ROM読み出し命令に応答して複数のROMアドレスロケーションから少なくとも1つのMISRへデータを書き込み、MISR出力を試験制御論理へ書き込むように動作してよく、MISR出力は複数のROMアドレスロケーションからのデータを表す。
ここに開示される他の集積回路は、少なくとも1つのプログラム可能リードオンリメモリ(PROM)と、少なくとも1つのPROMに結合される試験制御論理とを含み、試験制御論理は、集積回路を試験モードに設定し且つ試験モードの間は集積回路を制御し、試験モードに入ることの後に、読み出しアドレスを指定するPROM読み出し命令を受け取り、読み出しアドレスが機密情報に向けられていることを決定し、PROM読み出し命令に応答して悪意のない出力パターンを提供するように動作する。集積回路は、少なくとも1つのPROMに結合されるPROMアクセス論理と、少なくとも1つのPROM及びPROMアクセス論理に結合されるPROM保護レジスタと、PROM保護レジスタ、少なくとも1つのPROM、及び試験制御論理に結合されるPROM保護レジスタ制御器とを更に含んでいてよく、試験制御論理は更に、機密情報がPROM内のどこに記憶されているかを特定する少なくとも1つのPROMアドレスロケーションを読み出すように動作するPROMアクセス論理へ制御信号を送ることによって読み出しアドレスが機密情報に向けられていることを決定し、PROMアドレスロケーションをPROM保護レジスタ内に記憶するように動作してよい。
ここに開示される他の集積回路は、集積回路を試験モードに設定し且つ試験モードの間は集積回路を制御するように動作する試験制御論理と、一連のレジスタと、試験制御論理及び一連のレジスタに結合され試験制御論理からリセット命令を受け取り且つ試験モードに入るための命令に応答してリセット命令を一連のレジスタに供給するように動作する機能リセット制御器と、試験制御論理に結合される少なくとも1つのランダムアクセスメモリ(RAM)と、試験制御論理に結合される少なくとも1つのリードオンリメモリ(ROM)と、試験制御論理に結合される暗号化論理と、試験制御論理に結合される少なくとも1つのプログラム可能リードオンリメモリ(PROM)とを含み、試験制御論理は更に、試験モードに入ることに応答して、試験モードに入るよりも前に集積回路が機能モードで動作させられていたことを決定し、試験モードに入るよりも前に集積回路が機能モードで動作させられていたことを決定することに応答して、試験モードにある場合にRAM読み出し命令を遮断し、ROM読み出し命令を受け取り、ROM読み出し命令を受け取ることに応答して複数のROMアドレスロケーションから暗号化論理へデータを書き込み、複数のROMアドレスロケーションからのデータを表す暗号化論理の暗号化論理出力を受け取り、試験モードに入ることの後に、読み出しアドレスを指定するPROM読み出し命令を受け取り、読み出しアドレスが機密情報に向けられていることを決定し、PROM読み出し命令に応答して悪意のない出力パターンを提供するように動作する。
図1は実施形態に従う集積回路のブロック図である。
図2は実施形態に従い試験モードにあり且つ走査チェインを有する集積回路のブロック図である。
図3はレジスタデータを保護するための実施形態の動作の方法のフローチャートである。
図4は実施形態に従いレジスタデータを保護するための方法の更なる詳細を提供するフローチャートである。
図5はICの種々のロケーション全体のデータを特に図2のレジスタ及びRAMのために保護する実施形態の動作の詳細を示すフローチャートである。
図6は図5に続きICの種々のロケーション全体のデータを保護するための、そしてPROMを保護するための実施形態の動作の詳細を示すフローチャートである。
図7は図5に続きICの種々のロケーション全体のデータを保護するための、そしてRAMを保護するための実施形態の動作の詳細を示すフローチャートである。
図8は図5に続きICの種々のロケーション全体のデータを保護するための、そしてROMを保護するための実施形態の動作の詳細を示すフローチャートである。
図9はRAMを保護するための代替的な実施形態のための動作の詳細を示すフローチャートである。
図10はRAMを保護するための実施形態の動作を示すフローチャートである。
図11はRAMを保護するための実施形態の追加的な詳細を示すフローチャートである。
図12は実施形態に従う集積回路PROM保護のブロック図である。
図13は図12に示される実施形態に従う動作の方法を示すフローチャートである。
図14は実施形態に従う集積回路ROM保護のブロック図である。
図15は図14に示される実施形態に従う動作の方法を示すフローチャートである。
図16はROMの保護のための代替的な実施形態を示す方法である。
図17は実施形態に従う集積回路の動作の方法を示すフローチャートである。
次に図面を参照すると、同様の参照数字は同様の要素を示しており、図1は実施形態に従う例示的な集積回路(IC)100のブロック図である。IC100は電子デバイス101内に組み込まれていてよく、電子デバイス101は、限定はされないが例えばアンテナ103を介して通信するワイヤレス通信デバイス、PDA、ラップトップコンピュータ、デスクトップコンピュータ等であってよい。IC100の内部回路は2つの領域(domains)、即ち機能領域104及び試験領域105に分類されていてよい。機能領域104はIC100の通常動作に必要な全ての回路及び/又は構成部品、例えば機能ブロック133乃至135及び種々のメモリを含む。機能ブロック133乃至135は、IC100の動作上の要求に応じて種々のレジスタ、フリップフロップ、ラッチ、及び/又は論理ゲートを含んでいてよい。種々のメモリはランダムアクセスメモリ(RAMs)、例えばスタティックRAMメモリ123、リードオンリメモリ(ROMs)125、及びプログラム可能ROM(PROMs)127を含んでいてよい。
機能リセット制御器107が種々の機能ブロック133乃至135に結合されており、機能リセット制御器107は、リセットツリー109として知られる論理構造を介して機能領域104内の全ての機能ブロックにリセット信号を供給するように動作する。例えばリセット信号は、機能ブロック133乃至135の各レジスタの内容を消去して、各レジスタの状態をIC100の設計者によって決定されたであろう既知の値に強制するために用いられてよい。リセット信号は、動作の開始に先立ち全てのレジスタをリセットするのに十分な長さの期間にわたり、機能リセット制御器107によってリセットツリー109へ印加される。
機能ブロック133乃至135及び、レジスタ、フリップフロップ、ラッチ等に含まれる任意の付随物は、タイミング信号を機能ブロックに供給するための対応するクロック回路(図示せず)に結合される。それらクロック回路は更に種々のクロックツリー136に接続されていてよく、クロックツリー136は更にクロック制御器137に結合される。クロック制御器137は機能領域104内にあり、全ての同期しているIC100の構成部品に対して種々のクロック信号を生成し及び/又は経路付けして、適切な動作を確実にすると共に同期信号を供給することによってクロックツリー136に接続されている全てのクロック回路を同期させるように動作する。幾つかの実施形態では、クロック制御器137及びクロックツリー136は試験領域105内で動作してもよい。
IC100はそれぞれデータ受信及びデータ出力のための書き込み機能入力パッド119及び読み出し機能出力パッド121を含む。書き込み機能入力パッド119及び読み出し機能出力パッド121は電子デバイス101の追加的な内部回路(図示せず)に結合されていてよく、この場合、内部回路は例えば電子デバイス101の物理的接続ポートにて入力及び出力を提供してIC100が外部接続に対してデータを読み出し及び書き込みすることができる。幾つかの実施形態では、IC100は書き込み機能入力パッド119及び読み出し機能出力パッド121を介して電子デバイス101の物理的入力/出力接続に直接的に接続されてよい。
幾つかの実施形態で試験容易化設計(Design-for-Test)(DFT)動作モードに対応していてよいIC100の試験領域105においては、通常のIC100の動作の間はアクティブでなく又は動作していなくてよい種々の他の構成部品がアクティブになる。例えば、試験領域105は、IC100を試験モードに設定し試験モードの間にIC100を制御するように動作する試験制御論理106を含む。試験制御論理106は1つ以上の制御線115を介して試験領域105を制御し、制御線115を通じて試験制御論理106は命令を送りそして機能領域104の種々の構成要素、限定はしないが例えば種々のレジスタ、フリップフロップ、ラッチ、論理ゲート等を含む機能ブロック133乃至135からの応答を受け取ることができる。試験制御論理106はまたクロック制御信号線139を介してクロック制御器137に結合されており、種々のクロックをアクティブにし停止させる命令をクロック制御器137へ送るように動作し、それに応じてクロック制御器137はクロックツリー136に接続される全てのクロック回路に対して単一又は複数の同期クロック信号を供給し又は保留する。
試験制御論理106は、IC100の1つ以上のピンに対応していてよい試験制御信号入出力ポート117に結合されている。試験制御信号入出力ポート117はDFT入出力ポートであってよい。試験制御信号入出力ポート117は更に、試験機能へのアクセスを提供する電子デバイス101の対応するコネクタに結合されていてよい。しかし、幾つかの実施形態では、IC100それ自身、又はIC100を組み込んでいる電子デバイス101内部の回路基板は、試験制御信号入出力ポート117と直接的にインタフェースをとるためにアクセスされなければならない。従っていずれの実施形態においても、悪意のあるユーザあるいはハッカーが試験制御信号入出力ポート117にアクセスすることによって試験制御論理106にアクセスすることを試みるかもしれないという潜在的脅威がある。換言すれば、場合によってはハッカーはIC100の試験機能へのアクセスを得るために電子デバイス101を部分的に分解する必要があるかもしれない。例えばデバイスの分解によってであれ物理的接続を介したアクセスによってであれ、ハッカーによって得られるであろう試験制御論理106へのいかなる種類のアクセスも、ここに開示される種々の実施形態によって妨げられる。
試験制御論理106は1つ以上の試験制御器(TC)、例えばTC108を含んでいてよく、更に1つ以上のメモリ試験制御器(MTC)、例えばMTC110を含んでいてよい。幾つかの実施形態では、1つ以上のMTC、例えばMTC110は機能領域104内に置かれてよい。試験制御論理は、RAM123、ROM125及びPROM127を含む種々のメモリに対して命令を送りデータを受け取るための種々の制御線129を有している。幾つかの実施形態では、MTC110は制御線129を用いて1つ以上のメモリと通信することになり、また種々の命令をメモリに送り試験出力をメモリから受け取ることができる。
本開示と共に提供される図1及び他の全ての図面は例示のみを目的としており、ここに開示される種々の実施形態をどのようにつくりまた使用するかを当業者に示し説明する目的のものであることが理解されるべきである。従って、ここに提供される図1及び他の全ての図面は、種々の実施形態をどのようにつくりまた使用するかについての当業者の理解を容易にするために必要なものとして要素、構成部品等を示すことに限定されており、例えばここに開示される実施形態を組み入れた任意のIC又は任意の電子デバイスの完全な配置図であることは意図されていない。従って、IC及び/又は電子デバイスはIC及び/又は電子デバイスの動作上の必要に応じて種々の他の要素、構成部品等を含んでいてよいことが当業者によって理解されるであろう。更に当業者であれば理解するであろうように、図1に関して、試験領域105及び機能領域104は図1及び/又は本開示の他の図面に示されていない他のブロック、要素、構成部品等を同様に含んでよく、またICの適切な動作に必要であろう任意のそのようなブロックが必要に応じて存在することを当業者は理解するであろう。
IC100の通常動作の間、試験制御論理106並びに任意のTC及びMTC、例えばTC108及びMTC110は非アクティブであり、IC100の機能領域104の動作を邪魔することはない。しかし、ユーザがIC100の試験モードをアクティブにし、従って試験領域105をアクティブにすると、IC100の試験機能が例えば試験制御論理106、TC108、MTC110並びに任意の他のTC及びMTCを含めてアクティブにされる。試験動作モードは例えばIC100の試験容易化設計(DFT)動作モードであり得る。IC100のそのような試験機能がアクティブになると、IC100は「試験モード」にあると言われる。
このようにIC100が試験モードにある場合、試験領域105はアクティブである。実施形態の試験制御論理106は試験リセット命令線113を介して機能リセット制御器107に結合されている。機能リセット制御器107は、試験リセット命令線113を介して試験リセット命令を受け取り機能ブロック133乃至135のレジスタ及びフリップフロップへリセット命令を供給するように動作し、これについては後で詳述する。
IC100が試験モードで動作している間、ユーザは試験制御論理106がIC100の内部回路に対して色々な試験を実行するよう試験制御信号入出力ポート117を介して命令することができる。例えば、主要なDFT試験の1つは「走査試験(Scan Test)」(ST)として知られている。走査試験を管理するために、試験制御論理106はIC100内の全てのレジスタ及び他の論理を1つ以上の「走査チェイン(Scan Chains)」に再設定することになる。この設定においては、IC100は「走査モード」にあると言われる。
図2は走査モードに設定されて1つ以上の走査チェイン、例えば走査チェイン201を有するIC100を示している。走査チェイン、例えば走査チェイン201は種々のレジスタ203及び/又は他の対応する論理205からなる。論理205は例えばフリップフロップ又は他の論理要素を含んでいてよい。幾つかの実施形態では、MTC110のようなMTCが走査チェイン構成の一部となるよう強制されてもよい。
走査モードの間、機能入力パッド119を介して新しいデータがシフトすること及び機能出力パッド121を介してレジスタデータを読み出すことによって、試験データがIC100内へ伝播する。従って、本開示によって検討される、IC100のレジスタ203内に記憶されている機密を危うくする可能性が見込まれる攻撃ベクター(attack vector)は、(1)IC100をリセットし、IC100のレジスタ203内あるいはフリップフロップ、ラッチ等の他の論理内に機密が存在するようになる迄は機能モードで動作させることと、(2)IC100を試験モードに切り換え、次いで走査モードに切り換えることと、(3)試験モードに入る前にIC100のレジスタ203の内容を含んでいる出力中のビットストリームを機能出力パッド121にて読み出すことと、(4)出力中のビットストリームからレジスタ203内にある機密を抽出することとを含むであろう。
本開示によって検討される、IC100のレジスタ203内に記憶されている機密を危うくする可能性が見込まれる第2の攻撃ベクターは、(1)チップをリセットし、IC100のレジスタ203内に機密が存在するようになる迄は機能モードで動作させることと、(2)IC100を試験モードに切り換え、次いで走査モードに切り換えることと、(3)レジスタ203の最終的な内容が機能モードのセキュリティ機能を無効にするように機能入力パッド119を介してレジスタ設定を投入することと、(4)IC100を機能モードに戻すことと、(5)IC100の低減されたセキュリティ状態を利用してIC100のレジスタ203及びメモリ(RAM123、ROM125、及びPROM127)内の機密にアクセスすることとを含むであろう。
走査モードに入る前に、また幾つかの実施形態では走査モードを終了させた後で機能モードに入る前にも全てのレジスタをリセットすることによって、種々の実施形態はこれら2つの検討された攻撃ベクターを打破する。実施形態の試験制御論理106は、IC100が走査モードに入り走査モードを終了させることを担っている。IC100が試験モードに入っている場合には、試験制御論理106は、走査モードに入り且つIC100を走査チェイン201のような走査チェインに設定するための例えば試験制御信号入出力ポート117からの外部命令を待つことになる。
この時点でIC100の走査チェインを設定する前に、試験制御論理106は、全てのクロック同期信号をアクティブにするための命令をクロック制御器137へ送り、次いで試験リセット命令線113を介して試験リセット命令を機能リセット制御器107へ送ることになる。これに応答して機能リセット制御器107は、リセットツリー109全体にリセット命令を送り、IC100内の全てのレジスタ203をリセットすることになる。このリセットは、状態データを記憶しているであろう全てのラッチ、フリップフロップ及び他の論理要素をリセットすることを含んでいてもよい。
リセットの後、試験制御論理106は続いてIC100を図2に示されるような走査モードに置き、それによりIC100を走査チェイン201のような1つ以上の走査チェインに設定する。試験制御論理106は次いで、他の外部命令、例えばIC100を機能モードに戻す命令を待つ。幾つかの実施形態では、試験制御論理106は、いかなる機密データへのアクセスをも阻止するために、IC100内の全てのレジスタ203及び他の論理205の別のリセットを実行してもよい。試験制御論理106は次いで、IC100を図1に示される機能モードに戻してよい。
図3は上述したような動作の方法を示している。ステップ301ではICが試験モードの動作に入り、それに応答してステップ303では一連のレジスタ、例えば走査チェイン内の全てのレジスタの各々をリセットする。ステップ303に示されるように、ICがいかなる試験モード命令を受け取るよりも前にリセットが実行される。実施形態に従い試験制御論理106が試験リセット命令線113を介してリセットを提供する。
図3に示されるように全てのレジスタをリセットすることは、様々な方法で達成され得る。例えばリセットツリー109に加えて新たなリセットツリーがIC100内に含まれていてよい。この実施形態に対しては、追加的なリセットツリーは試験制御論理106によって駆動されてよい。しかし、この実施形態では、第2のリセットツリーがICに加えられることが必要であり、リセットツリー全体として大きなIC領域を必要としまた大量の電力を消費する。
そこで他の実施形態では、試験制御論理106が機能リセット制御器107から発している既存のリセットツリー109を用いて全てのICレジスタのリセットを実行してよい。この実施形態では、試験リセット命令信号は試験制御論理106から試験リセット命令線113を介して機能リセット制御器107に発行される。試験制御論理106が試験リセット命令を有効にする場合、機能リセット制御器107がリセットツリー109を介してIC内の全てのレジスタにリセットを発行し、それらの内容を消去する。従ってこの実施形態は第2のリセットツリーの必要性をなくし、従ってIC全体の領域及び複雑性を低減する。
図4は図3に示される実施形態に従う方法の更なる詳細を示しており、ここでは機能リセット制御器107がリセット命令を発行するために用いられる。ステップ303でのリセットの後、ステップ401において試験制御論理106は例えば試験制御信号入出力ポート117を介して、走査モードに入るための命令を受け取ってよい。次いでステップ403では、試験制御論理106が続いてレジスタを走査チェイン201のような1つ以上の走査チェインに設定してよい。続いてステップ405に示されるように、試験制御論理106は走査動作が実行されることを許可してよい。試験制御論理106がステップ407に示されるように走査モードを終了させる命令を受け取ると、試験制御論理106は再び試験リセット命令を機能リセット制御器107へ送り、リセットツリー109の全てのレジスタをリセットしてよい。従ってこれにより、任意のレジスタが幾つかの試験動作の結果としての又はそうでない機密の情報を含んでいる場合に、セキュリティの追加的な測定が提供される。
図5は幾つかの実施形態に従う動作の更なる詳細を示している。ステップ501に示されるようにIC100が試験モードに入ると、試験制御論理106はクロック制御信号線139を介してクロック制御信号をクロック制御器137へ送ってよい。それに応答してクロック制御器137は、クロックツリー136を用いて全てのレジスタクロック回路への全てのクロック同期信号をアクティブにすることになる。クロック同期の後、試験制御論理106はステップ505に示されるように機能リセット制御器107に対してリセットを提供してよい。機能リセット制御器107によって提供されるリセットはまた、ステップ507に示されるようにRAM123に対してリセットを提供してRAMの内容を消去してよい。このことは例えば、RAM123の全てのメモリロケーションに既知のビットパターンを書き込むことにより達成することができる。試験制御論理106又はMTC110のようなMTCがRAM123の全てのメモリロケーションを自動的に上書きすることができる場合には、試験制御論理106又は幾つかの実施形態ではTC108は、MTC110がRAMの上書きタスクを完了するのを待つ。しかし、MTC110が一度に1つのRAM123メモリロケーションにのみ書き込み可能な場合には、試験制御論理106のTC108は、MTC110が各RAM123メモリロケーションに上書きすることを強制する書き込み命令のストリームを発行することになる。
試験制御論理106は次いでステップ509に示されるように、走査モードに入るための外部命令を待ってよい。ステップ511に示されるように走査モード命令が受け取られた場合には、試験制御論理106はIC100を走査モードに置き、そしてステップ513でレジスタを図2に示されるような1つ以上の走査チェインに接続することになる。ステップ515では、試験制御論理106は走査動作を実行してよい。幾つかの実施形態では、走査動作は他の命令に応答していてよく、あるいは試験モード構成の通常の進行においてなされてよい。ステップ517では試験制御論理106が走査モードを終了させるための命令を待つことになり、そして幾つかの実施形態ではステップ519で前述したように試験制御論理106がレジスタを再度リセットすることになる。試験制御論理106は次いで、IC100を機能モード、従って図1に示されるような機能領域104に戻してよい。実施形態のレジスタ保護法方はステップ523に示されるように終了する。
また幾つかの実施形態は、非同期的に、即ちいかなるクロック要求もなしでレジスタをリセットしてよい。代替的には、レジスタは同期的にリセットされてよく、この場合クロック制御器137は前述したように試験制御論理106からクロック制御信号を受け取る。
図5に示される方法は試験モードの間、IC100のデジタル情報を保護するための追加的な種々の方法と並行して作用することができ、それらの方法は図6,7,8及び9に示されている。IC100の他の部分のデジタル情報を保護するためのそれらの追加的な方法を以下に説明する。
試験モードにおいては、外部ユーザが、適切な命令を試験制御論理106へ送ることによって、あるいはより具体的に幾つかの実施形態ではTC108のような1つ以上の試験制御器を介してMTC110のような1つ以上のメモリ試験制御器へ命令を送ることによって、IC100のRAM123の試験を開始することができる。幾つかのMTC命令は例えば、読み出し機能出力パッド121を介してRAM123の内容をユーザに読み出させることができる。従って、悪意のあるユーザは例えば次のようなRAM試験攻撃アルゴリズムを用いてRAM123内に記憶されている機密を読むことができることになり、そのアルゴリズムは、(1)IC100をリセットし、IC100のレジスタ203内に機密が存在するようになる迄は機能モードで動作させ、(2)IC100を試験モードに切り換え、(3)MTC110のような1つ以上のMTCに命令を発行してRAM123の内容を読み出し、(4)RAM123の内容からRAM123内にある機密を抽出するものである。
そのようなRAMベースの攻撃を打破するために、当該実施形態は、外部ユーザがRAMの任意の内容にアクセスすることを許可する前に、IC内の全てのRAM、例えばIC100内のRAM123の全ての内容を消去する。RAMの保護のための種々の実施形態を以下に説明する。
第1の実施形態は図5のブロック(ステップ)507に示されたものであり、試験制御論理106は試験モードに入るに際して全てのメモリを消去してよい。しかし、全RAM内容を消去することは時間を浪費し、従ってIC100の試験コストを増大させる。そこで図7に示される第2の実施形態は、RAMの完全な消去を要求せずにむしろ、RAM123のような内部RAMを読むことに関連する最初の命令を試験制御論理106が受け取ったときにのみRAMを消去する。
従って図7のステップ703では、RAMにアクセスしあるいはMTC110のようなMTCを介してRAMにアクセスするための外部ユーザからの命令が受け取られてよい。RAMアクセス命令を受け取る前に、試験制御論理106又はTC108は、全ての非RAM関連試験命令を通常通り処理していてよい。しかし、外部ユーザから最初のRAM関連命令を受け取った際には、試験制御論理106は、全てのRAM123ロケーションを既知のパターンで上書きするための内部命令をMTC110のような各MTCに対して発行する。試験制御論理106又はMTC110が全てのRAM123ロケーションに自動的に上書き可能である場合には、試験制御論理106はMTC110がそのタスクを完了するのを待つ。従ってステップ707では、もしRAM123のメモリロケーションが既に上書きされていたら、ステップ711に示されるように任意の後続の命令が通常通り処理されてよい。しかし、ステップ707でMTC110が一度に1つのRAM123メモリロケーションにのみ書き込み可能である場合には、試験制御論理106はステップ709で、MTC110が各RAM123メモリロケーションに上書きすることを強制する書き込み命令のストリームを発行することになる。試験制御論理106は次いで最初のRAM関連試験命令の処理と共にステップ711へ進んでよく、後続のRAM関連試験命令はRAM123を2度目に消去する必要なしに処理される。
ここに説明された実施形態は今までのところIC100の以前の状態にかかわらず実行されるであろう。しかし幾つかの実施形態では、ICが動的に生成される機密を含まない場合には、試験時間を短縮しそれによりICのコストをも低減するために、IC製造試験の間に幾つかの方法が省略されてよい。そのために、RAMの保護のための第3の実施形態が図2及び図9に示されており、そこではRAM保護方法はIC製造試験の間は省略されてよい。また幾つかの実施形態では、レジスタ保護方法もIC製造試験から省略されてよい。
図2は一群の安全で且つ機密な署名レジスタ217を示しており、署名レジスタ217はどの走査チェインにも含まれておらず従って走査可能ではないが、幾つかの実施形態ではリセット可能である。一連の安全な署名レジスタ217はIC100の機能領域104内に加えられている。これらの署名レジスタ217は機能ドメイン回路211によって、例えば書き込み入力線213によって書き込み可能であり、また試験制御論理106によって、例えば読み出し線215によって読み出し可能である。
署名レジスタ217を有する実施形態の動作の方法が図9によって示されている。IC100の電源投入に際して、署名レジスタ217の値はランダムであり従って未知である。ステップ901に示されるようにIC100が機能モードで動作する場合、IC100の機能ドメイン回路211はステップ903に示されるように、任意の機密情報を生成し又は外界から機密情報を受け取るより前に、予め定められた署名パスワードを署名レジスタ217へ書き込む。
ステップ905で試験モードが有効になるとすぐに、試験制御論理106がステップ907に示されるように署名レジスタ217の値を照査する。ステップ909にて署名レジスタが予め定められた署名パスワードを含んでいる場合には、
RAM123はステップ913において機能モード動作に起因して機密情報を有しているとみなされる。その結果ステップ915では、試験制御論理106は外部試験命令を許可することを拒否することとなり、全ての試験動作、例えばDFT動作は無効にされることになる。しかし、ステップ909において署名パスワードがない場合には、試験制御論理106はステップ911に示されるように通常のRAM123アクセスを許可してよい。
RAMに関して試験制御論理106機能を再びアクティブにするために、IC100電力は取り除かれ次いで再び供給される必要がある。IC100への電力を除去し復元するこの処理は、全てのレジスタ及びRAMの内容を強制的にランダムで且つ未知の状態へ戻すことになる。予め定められた署名パスワードを保持する署名レジスタ217の数は、極めて低い蓋然性でレジスタの電源投入値が予め定められた署名パスワードに等しくなる状況を確実にするために、十分大きくなければならない。
直近で説明された実施形態は署名レジスタ217を採用していたが、暗号化されたデータの任意の適切な形態が実施形態に従って用いられてよい。その実施形態に従う方法が図10に示されており、ここではICはステップ1001にて試験モードに入り、それに応答してステップ1003にてICは、試験モードに入るよりも前にICが機能モードで動作させられていたことを決定する。ステップ1005では、試験制御論理106はステップ1003での決定に基きRAMが機密情報を有するであろうとみなし、試験モードにおける読み出し命令によるRAMへのアクセスが遮断される。図11においてステップ1101にて試験モードに入った後、ステップ1103にて一連のレジスタは暗号化されたデータを含んでいると決定され、この場合一連のレジスタは走査チェインから分離されている。ステップ1105では、試験制御論理106はステップ1103での決定に基きRAMが機密情報を有するであろうとみなし、試験モードにおける読み出し命令によるRAMへのアクセスが阻止される。レジスタが暗号化されたデータを含んでいることの決定は、幾つかの実施形態では、レジスタ内容を先験的に知られた(a priori known)暗号化されたデータと比較し、レジスタ内容が先験的に知られた暗号化されたデータに一致することを決定することによってなされてよい。
PROMの保護のための実施形態を以下に説明する。フューズ(Fuses)のようなチップ上(On-chip)プログラム可能リードオンリメモリ(PROM)が種々の鍵及び機密IC識別情報を記憶するために用いられる。PROMは一般的には、それらが製造工場においてプログラムされ得るように、書き込み機能入力パッド119及び読み出し機能出力パッド121のような外部ICパッドを通してマルチプレクサ(mux)131を介してアクセス可能である。
しかし、このプログラミングのステップが一旦完了したら、PROMの内容は悪意のあるユーザにより読み出し可能であってはならない。DFTモードのような試験モードの間、PROMへのアクセスが危険にさらされてはならない。もしDFTモードのような試験モードの間に攻撃者が機能入力パッド119の入力値を操作し得るとすれば、図1に示されるような外部パッド(機能入出力パッド119,121)に対するPROMの直接的な接続性は、攻撃者に対してPROMを脆弱にする。
図12はIC100の試験モードの間にPROM127の内容を保護するためのPROM保護論理223の実施形態を示している。PROMは非同期方式で読み出され、この場合ロケーションアドレス1211及び制御信号1209(読み出しイネーブル及びメモリイネーブル)がPROM127に供給される。PROM127はロケーションアドレスの内容を読み出しデータ信号線1215に出力することによって応答する。前述したような試験制御論理106起動のリセットの間、入力したロケーションアドレス1211及び制御信号1209の値は、PROM127内の特定のロケーション(例えばロケーションアドレス0)を読み出すように設計されている。当該ロケーションの内容は、PROM127の異なる領域に対する読み出しアクセスルールがある場合にはそれを指定する。リセットの間、これらの読み出しアクセス保護ルールはPROM保護レジスタ1203内に記憶されている。一旦リセットから外れたら、PROM保護レジスタ1203の内容は変えることはできない。試験モードの間、全てのユーザ要求の読み出し動作は、その読み出し動作をPROM127へ伝播させるよりも前に、PROMアクセス論理1201によって評価される。PROM保護レジスタ1203内に記憶されている値が、読み出しアクセスに対するユーザ要求が保護されたロケーションを目標としていることを示している場合には、PROMアクセス論理1201はその要求を阻止してPROM127へのその要求の伝播を防ぐ。
図13はステップ1301でIC100が試験モードに入る動作の方法を示している。ステップ1303では、試験モードになってからPROM読み出し命令が受け取られ、PROM読み出し命令はPROMロケーションアドレスを指定する。ステップ1305では、PROM読み出し命令によって指定されたアドレスロケーションが機密情報に向けられていることが決定される。次いでステップ1307では、PROM読み出し命令に応答して悪意のない出力(benign output)(即ち「ごみデータ(garbage data)」)が提供されてよい。
図6はまた、図5に示される方法と並行して動作させられてよい方法を示している。従ってステップ501で試験モードに入った後、試験制御論理106は、リセット1207を介してPROMアクセス論理1201をリセットするリセット命令を発行する。PROMアクセス論理1201はリセットに応答してステップ605において、PROM127のアドレス、例えばロケーションアドレス0又は読み出されないことになっている即ち機密のアドレスの識別子を含む任意の他のアドレスを読み出す。ステップ607においては、PROMアクセス論理1201がロケーションアドレス(例えばロケーションアドレス0等)の内容をPROM保護レジスタ1203内に記憶する。方法はステップ609で終了する。
ROMの保護のための実施形態を以下に説明する。ROMの他PROMの内容はIC製造プロセスの間は固定されている。この内容は、ROMの内容の有効性を試験するメカニズムを提供する一方でそれに加えて、悪意のあるユーザから保護されなければならない。慣習的にはROMはMTC110のようなメモリ試験制御器(MTC)を用いて試験され、MTCは、攻撃者が試験モードの間に試験制御論理106を介してPROMの内容へのアクセスを得ることを可能にしていた。
本実施形態は、個々のROM行に対する全ての読み出し動作を無効にすることによって、MTCベースの読み出し攻撃を防ぐ。しかし、ROMが試験可能であり続けることを確実にするために、本実施形態はROM_MTC110に組み込まれた特別な読み出し機能を含んでいる。この機能により、MTC110は、大量の行を内部的に読み出し、また暗号化論理及び幾つかの実施形態では多重化入力シフトレジスタ(multi-input shift register)(MISR)を用いてこれらの行の内容に対する暗号化された値又は署名を算出することが可能になる。結果としての暗号化データ又は署名は非欠陥のROMに期待される値と比較されてよく、ROMの内容を外部ユーザに明らかにすることなしに、試験中のROMに製造不良がないことを確実にすることができる。
図14を参照すると、試験制御論理106はMTC110を介して読み出し命令1401をROM125に対して発行してよい。それに応答して、ROMはその行データ1403を暗号化論理225に書き込むことになる。それに応答して、暗号化論理225は出力1405を試験制御論理106又はMTC110に書き込むことになる。図15は図14に示されるROM保護の実施形態に従う方法を示している。ステップ1501では、IC100が試験モードに入る。ステップ1503では、MTC110からのであってよいROM読み出し命令1401が受け取られる。ステップ1505では、読み出し命令1401に応答してROM125がその行データ1403を暗号化論理225に書き込む。暗号化論理は暗号化出力をステップ1507で試験制御論理106又はMTC110に書き込み、暗号化出力はROMの内容を表す。暗号化出力は試験制御信号入出力ポート117を介して外界へ提供されてよい。
図16は代替的な実施形態を示しており、ステップ1605及び1607に示されるように、ROMの内容を表す出力を提供するためにMISRが用いられる。図8は図5、図6及び図7の方法と並行して及び連動して用いられるような方法を示している。
図17はここに開示される種々の実施形態の全てを組み込み、またここに開示されてきたような全てのレジスタ、ラッチ、ROM、RAM及びPROMをそうして保護する実施形態のための例示的な方法を示している。

Claims (26)

  1. 集積回路の情報を保護する方法であって、
    試験モードの動作に入ることと、
    前記試験モードの動作に入ることに応答して、試験モード命令を受け取るよりも前に一連のレジスタの各レジスタをリセットすることと、を備えた方法。
  2. 走査モードに入るための命令を受け取ることと、
    前記一連のレジスタを少なくとも1つの走査チェインに設定することと、
    走査動作を実行することと、
    前記走査モードを終了するための命令を受け取ることと、
    前記走査モードを終了するための前記命令を受け取ることに応答して、機能モードに入るよりも前に前記一連のレジスタの各レジスタを試験制御論理によりリセットすることと、を更に備えた、請求項1に記載の方法。
  3. 前記リセットすることは、機能リセット制御器によって提供されるリセット命令を介している、請求項1に記載の方法。
  4. 一連のレジスタの各レジスタをリセットすることは、一連のフリップフロップの各フリップフロップをリセットすることを更に備えている、請求項1に記載の方法。
  5. 前記試験モードの動作に入ることに応答してランダムアクセスメモリ(RAM)の全てのロケーションに既知のビットパターンを書き込むことと、
    後続のRAM読み出し命令を許可することと、を更に備えた、請求項1に記載の方法。
  6. 前記試験モードの動作に入った後で、且つ前記リセットすることよりも前に、クロック制御信号をクロック制御器へ送って前記一連のレジスタに対するレジスタクロックを同期させることを更に備えた、請求項1に記載の方法。
  7. 集積回路の情報を保護する方法であって、
    試験モードの動作に入ることと、
    前記試験モードの動作に入ることに応答して、前記試験モードの動作に入るよりも前に前記集積回路が機能モードの動作で動作させられていたことを決定することと、
    前記試験モードの動作に入るよりも前に前記集積回路が前記機能モードの動作で動作させられていたことを決定することに応答して、前記試験モードの動作にある場合にランダムアクセスメモリ(RAM)読み出し命令を遮断することと、を備えた方法。
  8. 前記試験モードの動作に入るよりも前に前記集積回路が前記機能モードの動作で動作させられていたことを決定することは、一連のレジスタが先験的に知られたデータを含んでいることを前記試験モードの動作に入ることに応答して決定することを更に備えており、
    前記一連のレジスタは走査チェイン構成から分離されている、請求項7に記載の方法。
  9. 前記一連のレジスタが前記先験的に知られたデータを含んでいることを決定することは、
    前記一連のレジスタの内容を、記憶されたデータと比較することと、
    前記内容が前記記憶されたデータとの一致であることを決定することと、
    前記試験モードの動作に入るよりも前に前記集積回路が前記機能モードの動作で動作していたこと、及び前記機能モードの動作で動作することに起因してRAMが機密情報を含むであろうことを前記一致に応答して決定することと、
    前記RAM読み出し命令を前記集積回路の試験ユーザインタフェースから遮断することと、を更に備えている、請求項8に記載の方法。
  10. 前記集積回路が前記機能モードの動作にある間は前記RAMに含まれているデータに実行されるハッシング動作によって暗号化されたデータが得られ、前記暗号化されたデータは前記RAMに含まれている前記データを表している、請求項9に記載の方法。
  11. 前記一連のレジスタが前記先験的に知られたデータを含んでいることを決定することは、
    前記一連のレジスタの内容を、記憶されたデータと比較することと、
    前記内容が前記記憶されたデータとの一致であることを決定することと、
    前記試験モードの動作に入るよりも前に前記集積回路が前記機能モードの動作で動作していたこと、及び前記機能モードの動作で動作することに起因してRAMが機密情報を含むであろうことを前記一致に応答して決定することと、
    前記RAM読み出し命令を遮断することの後に、前記RAMが前記機能モードで動作していたことを決定することに応答して前記RAMの全てのロケーションに既知のビットパターンを書き込むことと、
    後続のRAM読み出し命令を許可することと、を更に備えている、請求項8に記載の方法。
  12. 集積回路の情報を保護する方法であって、
    試験モードの動作に入ることと、
    前記試験モードの動作に入ることに応答してランダムアクセスメモリ(RAM)の全てのロケーションに既知のビットパターンを書き込むことと、
    後続のRAM読み出し命令を許可することと、を備えた方法。
  13. 集積回路の情報を保護する方法であって、
    試験モードの動作に入ることと、
    前記試験モードの動作に入ることに応答して、試験モード命令を受け取るよりも前に一連のレジスタの各レジスタをリセットすることと、
    前記試験モードの動作に入ることに応答して、前記試験モードの動作に入るよりも前に前記集積回路が機能モードの動作で動作させられていたことを決定することと、
    前記試験モードの動作に入るよりも前に前記集積回路が前記機能モードの動作で動作させられていたことを決定することに応答して、前記試験モードの動作にある場合にランダムアクセスメモリ(RAM)読み出し命令を遮断することと、
    前記RAMが前記機能モードで動作していたことを決定することに応答して前記RAMの全てのロケーションに既知のビットパターンを書き込むことと、
    後続のRAM読み出し命令を許可することと、
    リードオンリメモリ(ROM)読み出し命令を受け取ることと、
    前記ROM読み出し命令を受け取ることに応答して複数のROMアドレスロケーションから暗号化論理へデータを書き込むことと、
    前記複数のROMアドレスロケーションからの前記データを表す前記暗号化論理の暗号化論理出力を試験制御論理へ書き込むことと、
    前記試験モードの動作に入ることの後に、読み出しアドレスを指定するプログラム可能リードオンリメモリ(PROM)読み出し命令を受け取ることと、
    前記読み出しアドレスが機密情報に向けられていることを決定することと、
    前記PROM読み出し命令に応答して悪意のない出力パターンを提供することと、を備えた方法。
  14. 走査モードの動作を終了することと、
    前記走査モードの動作を終了することに応答して一連のレジスタの各レジスタをリセットすることと、を更に備えた、請求項13に記載の方法。
  15. 集積回路であって、
    前記集積回路を試験モードに設定し且つ前記試験モードの間は前記集積回路を制御するように動作する試験制御論理と、
    一連のレジスタと、
    前記試験制御論理及び前記一連のレジスタに結合され前記試験制御論理からリセット命令を受け取り、且つ前記試験モードに入るための命令に応答して前記リセット命令を前記一連のレジスタに供給するように動作する機能リセット制御器と、を備えた集積回路。
  16. 前記試験制御論理は更に、
    走査モードに入るための命令を受け取り、
    前記走査モードに入るための前記命令に応答して前記一連のレジスタを少なくとも1つの走査チェインに設定し、
    前記少なくとも1つの走査チェインにて走査動作を実行し、
    前記走査モードを終了するための命令を受け取り、
    前記走査モードを終了するための前記命令を受け取ることに応答して、機能モードに入るよりも前に前記一連のレジスタの各レジスタをリセットするように動作する、請求項15に記載の集積回路。
  17. 前記試験制御論理及び前記機能リセット制御器に結合され前記試験制御論理から前記リセット命令を受け取るように動作する一連のフリップフロップを更に備えた、請求項15に記載の集積回路。
  18. 前記一連のレジスタに結合される複数のクロック回路と、
    前記複数のクロック回路及び前記試験制御論理に結合され前記試験制御論理からクロックリセット信号を受け取り、且つ前記クロックリセット信号を受け取ることに応答して前記複数のクロック回路に同期信号を供給するように動作するクロック制御器と、を更に備えた、請求項15に記載の集積回路。
  19. 前記試験制御論理に結合される少なくとも1つのランダムアクセスメモリ(RAM)を更に備え、
    前記試験制御論理は更に、前記試験モードに入ることに応答して、走査モードに入るための命令を受け取るよりも前に前記少なくとも1つのRAMの全てのロケーションに既知のビットパターンを書き込むように動作する、請求項15に記載の集積回路。
  20. 前記試験制御論理に結合され前記試験モードに入るための前記命令を受け取る試験入力ポートと、
    前記試験制御論理に結合され前記一連のレジスタからの出力データを受け取るための試験出力ポートと、を更に備え、
    前記試験制御論理は前記機能リセット制御器が前記リセット命令を受け取るための試験命令リセット信号線を介して前記機能リセット制御器に結合され、前記機能リセット制御器はリセットツリーを介して前記一連のレジスタに結合され、前記リセットツリーは前記リセット命令を前記一連のレジスタへ供給する、請求項15に記載の集積回路。
  21. 少なくとも1つのランダムアクセスメモリ(RAM)と、前記少なくとも1つのRAMに結合される試験制御論理とを備えた集積回路であって、
    前記試験制御論理は、
    前記集積回路を試験モードに設定し、且つ前記試験モードの間は前記集積回路を制御し、
    前記試験モードに入ることに応答して、前記試験モードに入るよりも前に前記集積回路が機能モードで動作させられていたことを決定し、
    前記試験モードに入るよりも前に前記集積回路が前記機能モードで動作させられていたことを決定することに応答して、前記試験モードにある場合にRAM読み出し命令を遮断するように動作する集積回路。
  22. 前記試験制御論理に結合される一連のレジスタを更に備え、前記一連のレジスタは前記試験モードの走査チェイン構成から分離されており、
    前記試験制御論理は更に、
    前記一連のレジスタが先験的に知られたデータを含んでいることを前記試験モードに入ることに応答して決定することによって、前記試験モードに入るよりも前に前記集積回路が前記機能モードで動作させられていたことを決定するように動作する、請求項21に記載の集積回路。
  23. 前記一連のレジスタの内容を、記憶されたデータと比較することと、
    前記内容が前記記憶されたデータとの一致であることを決定することと、
    前記試験モードに入るよりも前に前記集積回路が前記機能モードで動作していたこと及び、前記機能モードの動作で動作することに起因してRAMが機密情報を含むであろうことを前記一致に応答して決定することと、
    前記RAM読み出し命令を前記集積回路の試験ユーザインタフェースから遮断することと、により、
    前記一連のレジスタが前記先験的に知られたデータを含むことを決定するように前記試験制御論理が更に動作する、請求項22に記載の集積回路。
  24. 前記試験制御論理に結合され前記RAM読み出し命令を受け取る試験入力ポートと、
    前記試験制御論理に結合され前記RAMからの出力データを受け取るための試験出力ポートと、を更に備え、
    前記試験制御論理は前記RAMに結合される少なくとも1つのメモリ試験制御論理を更に備えており、
    前記メモリ試験制御論理は、前記試験モードに入るよりも前に前記集積回路が前記機能モードで動作させられていたことを決定することに応答して、前記試験モードにある場合に前記RAM読み出し命令を遮断するように動作する、請求項22に記載の集積回路。
  25. 前記集積回路はRAM集積回路である、請求項24に記載の集積回路。
  26. 集積回路であって、
    前記集積回路を試験モードに設定し、且つ前記試験モードの間は前記集積回路を制御するように動作する試験制御論理と、
    一連のレジスタと、
    前記試験制御論理及び前記一連のレジスタに結合され前記試験制御論理からリセット命令を受け取り、且つ前記試験モードに入るための命令に応答して前記リセット命令を前記一連のレジスタに供給するように動作する機能リセット制御器と、
    前記試験制御論理に結合される少なくとも1つのランダムアクセスメモリ(RAM)と、
    前記試験制御論理に結合される少なくとも1つのリードオンリメモリ(ROM)と、
    前記試験制御論理に結合される暗号化論理と、
    前記試験制御論理に結合される少なくとも1つのプログラム可能リードオンリメモリ(PROM)と、を備え、
    前記試験制御論理は更に、
    前記試験モードに入ることに応答して、前記試験モードに入るよりも前に前記集積回路が機能モードで動作させられていたことを決定し、
    前記試験モードに入るよりも前に前記集積回路が前記機能モードで動作させられていたことを決定することに応答して、前記試験モードにある場合にRAM読み出し命令を遮断し、
    ROM読み出し命令を受け取り、
    前記ROM読み出し命令を受け取ることに応答して複数のROMアドレスロケーションから前記暗号化論理へデータを書き込み、
    前記複数のROMアドレスロケーションからの前記データを表す前記暗号化論理の暗号化論理出力を受け取り、
    前記試験モードに入ることの後に、読み出しアドレスを指定するPROM読み出し命令を受け取り、
    前記読み出しアドレスが機密情報に向けられていることを決定し、
    前記PROM読み出し命令に応答して悪意のない出力パターンを提供するように動作する集積回路。
JP2011512607A 2008-06-04 2009-06-03 試験動作モードの間に集積回路のデジタル情報を保護するための方法及び装置 Pending JP2011525015A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/133,173 2008-06-04
US12/133,173 US8051345B2 (en) 2008-06-04 2008-06-04 Method and apparatus for securing digital information on an integrated circuit during test operating modes
PCT/US2009/046094 WO2009149160A1 (en) 2008-06-04 2009-06-03 Method and apparatus for securing digital information on an integrated circuit during test operating modes

Publications (1)

Publication Number Publication Date
JP2011525015A true JP2011525015A (ja) 2011-09-08

Family

ID=40999923

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011512607A Pending JP2011525015A (ja) 2008-06-04 2009-06-03 試験動作モードの間に集積回路のデジタル情報を保護するための方法及び装置

Country Status (6)

Country Link
US (1) US8051345B2 (ja)
EP (1) EP2291667A1 (ja)
JP (1) JP2011525015A (ja)
KR (1) KR20110034631A (ja)
CN (1) CN102066963A (ja)
WO (1) WO2009149160A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019514094A (ja) * 2016-03-16 2019-05-30 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 作動モードとテストモードとの間の移行を制御すること

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8397079B2 (en) * 2008-06-04 2013-03-12 Ati Technologies Ulc Method and apparatus for securing digital information on an integrated circuit read only memory during test operating modes
US8844023B2 (en) * 2008-12-02 2014-09-23 Micron Technology, Inc. Password protected built-in test mode for memories
CN102495356B (zh) * 2011-11-30 2014-11-05 福州大学 扫描链异步复位寄存器复位端口处理方法
KR102301651B1 (ko) * 2015-06-02 2021-09-14 에스케이하이닉스 주식회사 테스트 패턴 발생 장치 및 방법, 이를 이용한 테스트 시스템과, 컴퓨터 프로그램
KR20180037422A (ko) * 2016-10-04 2018-04-12 삼성전자주식회사 집적 회로 및 애플리케이션 프로세서
US10222417B1 (en) * 2016-11-28 2019-03-05 Cadence Design Systems, Inc. Securing access to integrated circuit scan mode and data
CN106707139B (zh) * 2017-01-03 2019-06-04 大唐微电子技术有限公司 一种扫描链测试装置及实现方法
CN108268940B (zh) * 2017-01-04 2022-02-18 意法半导体股份有限公司 用于创建可重新配置的互连框架的工具
US10481205B2 (en) 2017-07-27 2019-11-19 Seagate Technology Llc Robust secure testing of integrated circuits
KR102220662B1 (ko) * 2018-01-05 2021-03-17 주식회사 아이씨티케이 홀딩스 테스트 모드에서 데이터 보호 장치 및 방법
US10622345B2 (en) 2018-01-24 2020-04-14 Honeywell International Inc. Wafer trust via location locked circuit layout with measurable integrity
WO2020145432A1 (ko) * 2019-01-09 2020-07-16 엘지전자 주식회사 Multi soc 시스템을 통해 차량을 제어하는 방법
NL2023751B1 (en) * 2019-09-03 2021-05-12 Univ Delft Tech Device Aware Test for Memory Units
CN110601811B (zh) * 2019-09-12 2022-10-21 北京大学软件与微电子学院 一种在dft中使用的安全性的测试模式译码电路

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63118951A (ja) * 1986-11-07 1988-05-23 Oki Electric Ind Co Ltd シングルチップマイクロコンピュータ及びそのテスト方法
JPH04180188A (ja) * 1990-11-14 1992-06-26 Mitsubishi Electric Corp Icカード
JP2003303500A (ja) * 2002-04-05 2003-10-24 Matsushita Electric Ind Co Ltd 半導体集積回路及び半導体集積回路の検査方法
JP2004117029A (ja) * 2002-09-24 2004-04-15 Sony Corp 半導体集積回路とその試験方法
JP2004170244A (ja) * 2002-11-20 2004-06-17 Matsushita Electric Ind Co Ltd 組み込み自己検査回路
JP2006505798A (ja) * 2002-04-30 2006-02-16 フリースケール セミコンダクター インコーポレイテッド 機密保護走査試験のための方法および装置
JP2008002841A (ja) * 2006-06-20 2008-01-10 Canon Inc 半導体集積回路

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357572A (en) * 1992-09-22 1994-10-18 Hughes Aircraft Company Apparatus and method for sensitive circuit protection with set-scan testing
JP3461234B2 (ja) * 1996-01-22 2003-10-27 株式会社東芝 データ保護回路
US6578180B2 (en) * 2000-11-30 2003-06-10 International Business Machines Corporation Method and system for testing interconnected integrated circuits
KR100446317B1 (ko) * 2001-12-24 2004-09-01 주식회사 하이닉스반도체 코드 롬의 테스트시 데이터를 보호하기 위한 장치
US7490231B2 (en) * 2004-07-23 2009-02-10 Broadcom Corporation Method and system for blocking data in scan registers from being shifted out of a device
US8397079B2 (en) * 2008-06-04 2013-03-12 Ati Technologies Ulc Method and apparatus for securing digital information on an integrated circuit read only memory during test operating modes

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63118951A (ja) * 1986-11-07 1988-05-23 Oki Electric Ind Co Ltd シングルチップマイクロコンピュータ及びそのテスト方法
JPH04180188A (ja) * 1990-11-14 1992-06-26 Mitsubishi Electric Corp Icカード
JP2003303500A (ja) * 2002-04-05 2003-10-24 Matsushita Electric Ind Co Ltd 半導体集積回路及び半導体集積回路の検査方法
JP2006505798A (ja) * 2002-04-30 2006-02-16 フリースケール セミコンダクター インコーポレイテッド 機密保護走査試験のための方法および装置
JP2004117029A (ja) * 2002-09-24 2004-04-15 Sony Corp 半導体集積回路とその試験方法
JP2004170244A (ja) * 2002-11-20 2004-06-17 Matsushita Electric Ind Co Ltd 組み込み自己検査回路
JP2008002841A (ja) * 2006-06-20 2008-01-10 Canon Inc 半導体集積回路

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019514094A (ja) * 2016-03-16 2019-05-30 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 作動モードとテストモードとの間の移行を制御すること

Also Published As

Publication number Publication date
US20090307411A1 (en) 2009-12-10
CN102066963A (zh) 2011-05-18
US8051345B2 (en) 2011-11-01
KR20110034631A (ko) 2011-04-05
EP2291667A1 (en) 2011-03-09
WO2009149160A1 (en) 2009-12-10

Similar Documents

Publication Publication Date Title
JP2011525015A (ja) 試験動作モードの間に集積回路のデジタル情報を保護するための方法及び装置
US7725788B2 (en) Method and apparatus for secure scan testing
Wang et al. IIPS: Infrastructure IP for secure SoC design
US7810002B2 (en) Providing trusted access to a JTAG scan interface in a microprocessor
EP2583112B1 (en) Method and apparatus for providing scan chain security
US6968420B1 (en) Use of EEPROM for storage of security objects in secure systems
JP2003058426A (ja) 集積回路およびその回路構成方法ならびにプログラム
Pierce et al. Enhanced secure architecture for joint action test group systems
Zhang et al. Thwarting security threats from malicious FPGA tools with novel FPGA-oriented moving target defense
KR20090095843A (ko) 보안 기능을 갖는 프로세서 장치
EP1320803A2 (en) Embedded security device within a nonvolatile memory device
US8397079B2 (en) Method and apparatus for securing digital information on an integrated circuit read only memory during test operating modes
JP6771523B2 (ja) メモリー保護装置および方法
US7725786B2 (en) Protecting an integrated circuit test mode
KR100972540B1 (ko) 라이프 사이클 단계들을 가진 보안 메모리 카드
Streit et al. Secure boot from non-volatile memory for programmable SoC architectures
US7254716B1 (en) Security supervisor governing allowed transactions on a system bus
Lee et al. A brief review on jtag security
Tshagharyan et al. Securing test infrastructure of system-on-chips
EP2316041B1 (en) Circuit with testable circuit coupled to privileged information supply circuit
Srivastava et al. A novel approach of data content zeroization under memory attacks
Sozio et al. Patchable Hardware Security Module (PHaSM) for Extending FPGA Root-of-Trust Capabilities
Zhang et al. Thwarting Security Threats from Malicious FPGA Tools with Novel FPGA-Oriented Moving Target Defense (FOMTD)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120528

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131002

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131227

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140110

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140131

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140207

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140307

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140806