JP2010009421A - 集積回路 - Google Patents
集積回路 Download PDFInfo
- Publication number
- JP2010009421A JP2010009421A JP2008169514A JP2008169514A JP2010009421A JP 2010009421 A JP2010009421 A JP 2010009421A JP 2008169514 A JP2008169514 A JP 2008169514A JP 2008169514 A JP2008169514 A JP 2008169514A JP 2010009421 A JP2010009421 A JP 2010009421A
- Authority
- JP
- Japan
- Prior art keywords
- bit string
- integrated circuit
- function
- generator
- comparator
- 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
Links
Images
Abstract
【課題】意図しない利用者による集積回路の機能の不正な利用を抑止でき、セキュリティ強度の向上を図ることが可能な集積回路を提供する。
【解決手段】集積回路20は、容易に推測のできないビット列を生成するビット列生成器21と、ビット列生成器21で生成されたビット列と外部から入力される比較対象のビット列とを比較し、比較結果を示す制御信号を出力する比較器22と、比較器22の比較結果を示す制御信号S22により機能の利用が制御される機能対象部23と、を含み、比較器22は、比較結果が、少なくとも上記ビット列生成器で生成されたビット列と外部から入力される比較対象のビット列とが一致している場合に限り、上記機能の全体または一部を利用可能とする制御信号S22を機能対象部23に出力する。
【選択図】図1
【解決手段】集積回路20は、容易に推測のできないビット列を生成するビット列生成器21と、ビット列生成器21で生成されたビット列と外部から入力される比較対象のビット列とを比較し、比較結果を示す制御信号を出力する比較器22と、比較器22の比較結果を示す制御信号S22により機能の利用が制御される機能対象部23と、を含み、比較器22は、比較結果が、少なくとも上記ビット列生成器で生成されたビット列と外部から入力される比較対象のビット列とが一致している場合に限り、上記機能の全体または一部を利用可能とする制御信号S22を機能対象部23に出力する。
【選択図】図1
Description
本発明は、高い機密性や安全性が求められる個人情報や課金情報を扱う情報処理装置等に適用される集積回路に関するものである。
たとえば、個人情報や課金情報を扱う情報処理装置は、高い機密性や安全性が求められるデータを扱う。
そのため、その情報処理装置に実装される集積回路には、内部の情報を悪意ある第三者から保護する機構が求められる。
そのため、その情報処理装置に実装される集積回路には、内部の情報を悪意ある第三者から保護する機構が求められる。
このような集積回路には、悪意ある第三者と正規の使用者とを区別するために、集積回路の利用者を何らかの方法で認証する機構が実装される。
たとえば、パスワードによる認証や、公開鍵暗号を利用した認証等が方法として挙げられる。
特開2005‐195478号公報
特開2006‐29948号公報
たとえば、パスワードによる認証や、公開鍵暗号を利用した認証等が方法として挙げられる。
しかし、パスワードによる認証は、そのパスワードが悪意ある第三者に流出した場合は意味を成さなくなる。
公開鍵暗号による認証も、使用している秘密鍵のデータが流出した場合には意味を成さなくなることは同様であり、それらのデータが電子データとして一般的に入手可能な経路で広く流通することも容易である。
公開鍵暗号による認証も、使用している秘密鍵のデータが流出した場合には意味を成さなくなることは同様であり、それらのデータが電子データとして一般的に入手可能な経路で広く流通することも容易である。
また、集積回路には一般的に製造時に内部の回路を試験するための機能も備わっているが、その機能を悪意ある第三者が利用することにより内部の情報を不正に入手する手段を与えることになる。
そのため、そのような機能の利用には上記と同様に利用者(この場合、試験を行う資格を与えられたもの)の認証を行う、もしくは製品状態ではその機能が使えなくなるような処置を出荷時に施すことになる。
そのため、そのような機能の利用には上記と同様に利用者(この場合、試験を行う資格を与えられたもの)の認証を行う、もしくは製品状態ではその機能が使えなくなるような処置を出荷時に施すことになる。
このような試験機能を出荷前のみに限定して利用できるようにする、特許文献1に開示されたような方法もある。
しかし、この場合、仮に集積回路に市場不良などが発生して、製造元での原因解析が必要になったときに、その試験機能が利用できないため、原因の解析に支障が生ずるという問題がある。
しかし、この場合、仮に集積回路に市場不良などが発生して、製造元での原因解析が必要になったときに、その試験機能が利用できないため、原因の解析に支障が生ずるという問題がある。
また、認証を行う方式では、前記のように認証用データの流出の懸念が考えられる。
特許文献2に開示されているように、パスワードとは異なる周波数信号などを検知して、上記試験機能を有効にする方法もある。
しかし、この方法でも周波数信号の周波数情報が流出すれば、上記と同様の問題が発生する。
特許文献2に開示されているように、パスワードとは異なる周波数信号などを検知して、上記試験機能を有効にする方法もある。
しかし、この方法でも周波数信号の周波数情報が流出すれば、上記と同様の問題が発生する。
本発明は、意図しない利用者による集積回路の機能の不正な利用を抑止でき、セキュリティ強度の向上を図ることが可能な集積回路を提供することにある。
本発明の第1の観点の集積回路は、容易に推測のできないビット列を生成するビット列生成器と、上記ビット列生成器で生成されたビット列と外部から入力される比較対象のビット列とを比較し、比較結果を制御信号として出力する比較器と、上記比較器の比較結果を示す制御信号により機能の利用が制御される機能対象部と、を含み、上記比較器は、比較結果が、少なくとも上記ビット列生成器で生成されたビット列と外部から入力される比較対象のビット列とが一致している場合に限り、上記機能の全体または一部を利用可能とする上記制御信号を上記機能対象部に出力する。
好適には、上記比較器は、外部からの利用要求信号がアクティブで供給された場合に、上記制御信号を出力する。
好適には、上記比較器は、外部からの利用要求信号がアクティブで供給され、上記ビット列生成器で生成されたビット列と外部から入力される比較対象のビット列とが一致し続けるときのみ、上記機能の全体または一部を利用可能とする上記制御信号を上記機能対象部に出力する。
好適には、上記比較器は、上記ビット列生成器で生成されたビット列と外部から入力されるビット列とが一致していない場合があると、リセット信号が供給されるまで、上記機能の全体または一部を利用不可能とする上記制御信号を上記機能対象部に出力する。
好適には、上記比較器は、上記利用要求信号が非アクティブとなり、あるいは上記ビット列生成器で生成されたビット列と外部から入力される比較対象のビット列とが一致していない場合があると、リセット信号が供給されるまで、上記機能の全体または一部を利用不可能とする上記制御信号を上記機能対象部に出力する。
好適には、上記ビット列生成器には、不確定なビット列が入力され、当該ビット列生成器が生成するビット列が当該集積回路を利用するたびに異なる。
好適には、上記ビット列生成器と同等の機能の第2のビット列生成器を含む外部の鍵デバイスから上記第2のビット列生成器によるビット列を、上記比較器に比較対象のビット列として供給可能である。
好適には、対象となる機能が、チップの機能を試験するための試験機能である。
好適には、対象となる機能が、チップ内蔵の演算処理装置で実行されるプログラムをデバッグするためのデバッグ機能である。
本発明によれば、ビット列生成器で生成されたビット列と外部から入力された比較対象のビット列とが比較器で比較される。
そして、ビット列生成器で生成されたビット列と外部から入力された比較対象のビット列とが一致していない限り、集積回路の全体または一部の機能が利用できない。
そして、ビット列生成器で生成されたビット列と外部から入力された比較対象のビット列とが一致していない限り、集積回路の全体または一部の機能が利用できない。
本発明によれば、意図しない利用者による集積回路の機能の不正な利用を抑止でき、セキュリティ強度の向上を図ることができる。
以下、本発明の実施形態を図面に関連付けて説明する。
図1は、本発明の第1の実施形態に係る集積回路を採用した情報処理システムの構成例を示すブロック図である。
本情報処理システム10は、集積回路20および鍵デバイス30を有する。
集積回路20は、内部に擬似乱数生成器などの容易に推測のできないビット列を生成する生成器と、そのビット列と外部から入力するビット列を比較する比較器とを有し、その比較結果が常に一致していない限り集積回路の全体または一部の機能を利用できないように構成される。
図1の集積回路20は、ビット列生成器21、比較器22、および機能対象回路23を含む。
また、集積回路20は、図示しない制御系や鍵デバイス30等からの各種信号が供給される端子T21、T22、T23、およびT24を有している。
端子T21にはリセット信号RSTが供給される。
端子T22には動作基準クロック信号RCLKが供給される。
端子T23には、たとえば鍵デバイス30等により比較対象の信号SCMPが供給される。
端子T24には利用要求信号URQSが供給される。
また、集積回路20は、図示しない制御系や鍵デバイス30等からの各種信号が供給される端子T21、T22、T23、およびT24を有している。
端子T21にはリセット信号RSTが供給される。
端子T22には動作基準クロック信号RCLKが供給される。
端子T23には、たとえば鍵デバイス30等により比較対象の信号SCMPが供給される。
端子T24には利用要求信号URQSが供給される。
また鍵デバイス30は、たとえば集積回路20のビット列生成器21と同等の第2のビット列生成器31を有する集積回路により形成される。
また、鍵デバイス30は、図示しない制御系から供給される信号や生成したビット列を出力するための端子T31、T32、およびT33を有する。
端子T31にはリセット信号RSTが供給される。
端子T32には動作基準クロック信号RCLKが供給される。
端子T33にはビット列生成器31で生成され集積回路20における比較対象の信号SCMPとなるビット列S31が供給される。
また、鍵デバイス30は、図示しない制御系から供給される信号や生成したビット列を出力するための端子T31、T32、およびT33を有する。
端子T31にはリセット信号RSTが供給される。
端子T32には動作基準クロック信号RCLKが供給される。
端子T33にはビット列生成器31で生成され集積回路20における比較対象の信号SCMPとなるビット列S31が供給される。
集積回路20は、たとえば個人情報や課金情報などを扱う、機密性の求められる情報を処理するように構成される。
ビット列生成器21は、論理回路等で実現され、集積回路20へのリセット信号RSTがリセット解除された直後から動作を開始し、集積回路20の動作基準クロック信号RCLKのタイミングで1または0に変化するビット列S21を生成する。
ビット列生成器21は、擬似乱数生成器など、確定的ではあるが容易に推測のできない長周期のビット列を生成する回路である。
その構成は、たとえば[非特許文献1、FIPS PUB 186-2 + Change Notice, Digital Signature Standard (DSS)]で規定されるような擬似乱数生成器を適用可能である。ただし、この構成に限定されるものではなく、後で説明するような物理乱数生成器と組み合わせる等の種々の態様で適用可能である。
ビット列生成器21に適用される乱数生成器のアルゴリズムや鍵となるデータを知らない限り、ビット列S21と同じビット列を生成し続けるのは困難である。
ビット列生成器21は、擬似乱数生成器など、確定的ではあるが容易に推測のできない長周期のビット列を生成する回路である。
その構成は、たとえば[非特許文献1、FIPS PUB 186-2 + Change Notice, Digital Signature Standard (DSS)]で規定されるような擬似乱数生成器を適用可能である。ただし、この構成に限定されるものではなく、後で説明するような物理乱数生成器と組み合わせる等の種々の態様で適用可能である。
ビット列生成器21に適用される乱数生成器のアルゴリズムや鍵となるデータを知らない限り、ビット列S21と同じビット列を生成し続けるのは困難である。
図2は、図1のビット列生成器の構成例を示す図である。
このビット列生成器21は、擬似乱数生成アルゴリズムを実行するXKEY更新部211、G関数実行部212に加え、その生成された擬似乱数をビット列S21として送出するパラレルシリアル(P/S)変換部213を含む。
XKEY更新部211は、リセット信号RSTがリセット解除されたら初期値として固定値である初期XKEYの値を取り込み、G関数実行部212に送出する。
G関数実行部212は、いわゆるG関数を実行し、その結果をXKEY更新部211に戻すとともに、P/S変換部213に送出する。
XKEY更新部211は、G関数実行部212の出力から所定のアルゴリズムにより新しいXKEYを生成して再びG関数実行部212に送出する。
P/S変換部213は、G関数実行部212の出力をシリアル信号に整形してビット列S21として比較器22に出力する。
この例のように構成されるビット列生成器21の重要な特徴は、初期XKEYの値により全く異なるビット列S21を生成することである。
仮に擬似乱数生成のアルゴリズムを知っているものでも、初期XKEYの値を知らない限り、全く同一のビット列S21を生成するのは困難である。
仮に擬似乱数生成のアルゴリズムを知っているものでも、初期XKEYの値を知らない限り、全く同一のビット列S21を生成するのは困難である。
初期XKEYは、たとえば160ビットのビット列であり、初期XKEYを知らない者が同一のビット列を生成しようと試みても、初期XKEYの推測がたまたま一致する確率は2−160となり極めて小さい。
無論、上述したように、ビット列生成器21の構成はこれに限るものではない。
無論、上述したように、ビット列生成器21の構成はこれに限るものではない。
ビット列生成器21で生成されたビット列S21は集積回路20に内蔵された比較器22に入力される。
比較器22は、ビット列S21と端子T23を介して供給される比較対象の信号SCMPとを比較し、比較結果が一致しているか否かを示す制御信号S22を機能対象回路23に出力する。
図3は、図1の比較器の具体的な構成例を示す回路図である
この比較器22は、EXORゲート221、ANDゲート222、ラッチレジスタ223、およびセレクタ224を有する。
比較器22の入力の一つは、集積回路20の外部から端子T23に供給される信号SCMPが入力される。
比較器22の内部では、EXORゲート221においてビット列S21と信号SCMPの論理的排他和の演算が行われる。
EXORゲート221は、ビット列S21と信号SCMPの両者が一致し続ける限りハイレベルの信号S221を出力し続ける。
比較器22の内部では、EXORゲート221においてビット列S21と信号SCMPの論理的排他和の演算が行われる。
EXORゲート221は、ビット列S21と信号SCMPの両者が一致し続ける限りハイレベルの信号S221を出力し続ける。
比較器22の入力の他の一つは、集積回路20の外部から端子T24に供給される、集積回路20の利用要求信号URQSである。なお、本実施形態において、利用要求信号URQSはハイレベルでアクティブであり、利用要求を示す。
利用要求信号URQSは、利用者が集積回路20の全体、もしくは一部の機能の利用を要求するための信号である。
利用要求信号URQSは、利用者が集積回路20の全体、もしくは一部の機能の利用を要求するための信号である。
比較器22では、ANDゲート222において、EXOR221の出力信号S221と、利用要求信号URQSとの論理積がとられる。
このANDゲート222の出力制御信号S222がハイレベルになるということは、集積回路20の利用要求があり、かつビット列S21と信号SCMPが一致していることを示している。
このANDゲート222の出力制御信号S222がハイレベルになるということは、集積回路20の利用要求があり、かつビット列S21と信号SCMPが一致していることを示している。
一方、ANDゲート222の出力信号S222がローレベルになるということは、集積回路20の利用要求が無い、もしくはビット列S21と信号SCMPが一致していないということを示していることになる。
ANDゲート222の出力信号S222は、セレクタ224を介してラッチレジスタ223へと入力され、クロック信号RCLKの所定タイミングでANDゲート222の出力の状態がラッチレジスタ223に取り込まれる。
ラッチレジスタ223は、リセット信号RSTのリセット解除後はハイレベルの状態を保持しており、その後もANDゲート222の出力信号がハイレベルであり続ける限りはハイレベルを保持し続ける。
しかし、ANDゲート222の出力信号S222が一度ローレベルを示し、その値を取り込むと、セレクタ224の働きによりANDゲート222の出力にかかわらず、ラッチレジスタ223はローレベルを保持し続けることになる。
ラッチレジスタ223の出力は比較器22の出力制御信号S22となる。
ラッチレジスタ223は、リセット信号RSTのリセット解除後はハイレベルの状態を保持しており、その後もANDゲート222の出力信号がハイレベルであり続ける限りはハイレベルを保持し続ける。
しかし、ANDゲート222の出力信号S222が一度ローレベルを示し、その値を取り込むと、セレクタ224の働きによりANDゲート222の出力にかかわらず、ラッチレジスタ223はローレベルを保持し続けることになる。
ラッチレジスタ223の出力は比較器22の出力制御信号S22となる。
すなわち、比較器22の出力制御信号S22は、集積回路20の利用要求信号URQSが利用要求を示すハイレベルとなり、ビット列S21と信号SCMPが一致し続けるときのみハイレベルを示す。
一度でもどちらかの条件を満たさないと、比較器22の出力制御信号S22はローレベルとなり、それは再びリセット信号RSTが有効とならない限りハイレベルになることは無い。
一度でもどちらかの条件を満たさないと、比較器22の出力制御信号S22はローレベルとなり、それは再びリセット信号RSTが有効とならない限りハイレベルになることは無い。
集積回路20が提供する機能を実現するための機能対象回路23は、比較器22の出力制御信号S22がハイレベルであるときに限り一部、もしくは全部が動作するようになっている。
このため、制御信号S22がローレベルとなると集積回路20の提供する機能が動作しなくなることとなる。
このため、制御信号S22がローレベルとなると集積回路20の提供する機能が動作しなくなることとなる。
また、集積回路20全体の動作を初期化するリセット信号は、図1〜3のリセット信号RSTと同一である。また、集積回路20全体の動作の基準となるクロック信号は図1〜3のクロック信号RCLKと同一である。
また、それらは機能対象回路23にも供給されるため、比較器22やビット列生成器21のみ停止させて、機能対象回路23のみ動作させるということも不可能である。
また、それらは機能対象回路23にも供給されるため、比較器22やビット列生成器21のみ停止させて、機能対象回路23のみ動作させるということも不可能である。
次に、図1で説明したシステムにおいて、集積回路20の正規の利用者が集積回路20を利用する場合を考察する。
前記までで述べたように、集積回路20の機能を有効にするためには、利用者は集積回路20に対して、集積回路の利用要求信号URQSに利用要求を示す状態を入力する。
そして、利用者は、信号SCMPに対して、集積回路20に内蔵されているビット列生成器21が出力するビット列S21とまったく同じビット列を入力し続ける必要がある。
そして、利用者は、信号SCMPに対して、集積回路20に内蔵されているビット列生成器21が出力するビット列S21とまったく同じビット列を入力し続ける必要がある。
すなわち、集積回路20の利用者は、信号SCMPであるビット列BSQCを動作基準クロック信号RCLKに同期させて発生させる必要がある。
このための一つの例として、たとえば集積回路20のビット列生成器21と全く同一のビット列生成器31が形成された集積回路(図1の符号30で示す回路)を利用する。
集積回路は、いわゆる鍵デバイス30として機能することになり、鍵デバイス30を保持する者のみが、集積回路20を利用できることになる。
このための一つの例として、たとえば集積回路20のビット列生成器21と全く同一のビット列生成器31が形成された集積回路(図1の符号30で示す回路)を利用する。
集積回路は、いわゆる鍵デバイス30として機能することになり、鍵デバイス30を保持する者のみが、集積回路20を利用できることになる。
信号SCMPであるビット列BSQCは容易に推測できない長周期のビット列であり、集積回路20を利用し続ける限り、ビット列を入力し続ける必要がある。
このため、集積回路である鍵デバイス30を持たない者が、ビット列BSQCを長期間偽造し続け、集積回路20を不正に利用し続けることは困難となる。
このため、集積回路である鍵デバイス30を持たない者が、ビット列BSQCを長期間偽造し続け、集積回路20を不正に利用し続けることは困難となる。
また、一度でも集積回路20の内部ビット列生成器21が出力する信号と異なる信号をビット列BSQCとして入力した場合、その時点で集積回路20は利用不可能になる。
そして、再度、動作させるためにはリセット信号RSTを有効にして、集積回路20をリセットし、最初から動作を行う必要がある。
これにより、集積回路20の不正利用は、よりいっそう困難となる。
そして、再度、動作させるためにはリセット信号RSTを有効にして、集積回路20をリセットし、最初から動作を行う必要がある。
これにより、集積回路20の不正利用は、よりいっそう困難となる。
また、集積回路である鍵デバイス30を厳密に管理することにより、集積回路20の利用者を特定の人物に制限できる。
集積回路20および鍵デバイス30の内部の回路設計データ、すなわちビット列生成アルゴリズムを利用者に開示する必要は無いため、開発時のデータを厳密に管理すれば、その構造が流出することは無い。
また、集積回路である鍵デバイス30を与えられ集積回路20を利用する者も、鍵デバイス30が生成するビット列S31を集積回路(30)無しで再現することは困難なである。このため、既存技術のように、集積回路20の機能を利用するための、いわゆるパスワードや信号が電子媒体などを通じて比較的安易に流出することも防止できる。
集積回路20および鍵デバイス30の内部の回路設計データ、すなわちビット列生成アルゴリズムを利用者に開示する必要は無いため、開発時のデータを厳密に管理すれば、その構造が流出することは無い。
また、集積回路である鍵デバイス30を与えられ集積回路20を利用する者も、鍵デバイス30が生成するビット列S31を集積回路(30)無しで再現することは困難なである。このため、既存技術のように、集積回路20の機能を利用するための、いわゆるパスワードや信号が電子媒体などを通じて比較的安易に流出することも防止できる。
次に、本実施形態に係る集積回路を含む情報処理システムの利用形態について説明する。
図4並びに図5および図6は、本発明の利用形態の例を示す図である。
近年の大規模な集積回路には、製造時にその機能を容易に検査するための試験機能が搭載されているのが一般的である。
また、中央処理演算装置(CPU)などが搭載された集積回路においては、CPUで動作させるプログラムを開発するために使用する、オンチップエミュレータなどのデバッグ機能も搭載されている。
しかし、この試験のための機能やデバッグ機能は、個人情報や課金情報などを扱う、機密性の求められる集積回路においては、悪意ある第三者が内部の情報を不正に入手する手段を与えることになる。
そのため、許可された者(この場合は試験実施者やプログラム開発者)以外には機能を利用させない処置が必要となる。
そのため、許可された者(この場合は試験実施者やプログラム開発者)以外には機能を利用させない処置が必要となる。
図4は、本発明の利用形態の第1例を示す図である。
図4の例では、上記処置のために図1で説明した仕組みを利用している。
集積回路の試験を行うテスター40と、被試験対象デバイスである集積回路20を電気的に接続するためのテストボード50に、集積回路である鍵デバイス30が実装されている。
集積回路の試験を行うテスター40と、被試験対象デバイスである集積回路20を電気的に接続するためのテストボード50に、集積回路である鍵デバイス30が実装されている。
テスター40は、集積回路20の試験機能を有効とするための試験要求信号TRQSを有効とするとともに、被測定デバイスである集積回路20および鍵デバイス30に動作基準クロック信号RCLKを入力する。
後は、図1と同様の仕組みで、試験機能有効信号TFVLDが有効となる。集積回路20は、この試験機能有効信号TFVLDが有効と示しているときのみ試験機能を有効とするため、集積回路20への試験が実施できることになる。
後は、図1と同様の仕組みで、試験機能有効信号TFVLDが有効となる。集積回路20は、この試験機能有効信号TFVLDが有効と示しているときのみ試験機能を有効とするため、集積回路20への試験が実施できることになる。
また、図5および図6は、集積回路20に搭載されたオンチップエミュレータなどのデバッグ機能に対して本発明を適用した例を示す図である。
集積回路20に搭載されたCPU上で動作させるプログラムを開発するために、集積回路20が実装された基板60に対して、デバッグ用インターフェース機器70を介してホストコンピュータ80により通信を行う。
このような、集積回路20のデバッグ機能を利用する図5に示すようなケースを例に挙げる。
このような、集積回路20のデバッグ機能を利用する図5に示すようなケースを例に挙げる。
基板60には対象となる集積回路20と共に鍵デバイス30も共に実装されている。
この鍵デバイス30は、図4で説明した例と同様の仕組みで集積回路20のデバッグ機能を有効とするビット列を生成して、集積回路20に供給する。
この鍵デバイス30は、図4で説明した例と同様の仕組みで集積回路20のデバッグ機能を有効とするビット列を生成して、集積回路20に供給する。
たとえば、図6に示すように、集積回路20の内部制御信号S22がハイレベルのときのみ、デバッグ用インターフェース機器70からのデバッグ用入力信号S70inを内部の機能対象23Aに通過させる。集積回路20の内部制御信号S22は図1で説明したものと同様、鍵デバイス30から供給されるビット列が正しい期間ハイレベルを示す。
同様に、機能対象23Aからのデバッグ用出力信号S70outも制御信号S22がハイのときのみデバッグ用インターフェース機器70を通過させる。なお、図6において、24−1,24−2はセレクタを示す。
これにより、制御信号S22をハイレベルに示し続けない限り、すなわち、鍵デバイス30から正しいビット列を集積回路20に入力し続けない限り、集積回路20のデバッグ機能を使用することはできなくなる。
同様に、機能対象23Aからのデバッグ用出力信号S70outも制御信号S22がハイのときのみデバッグ用インターフェース機器70を通過させる。なお、図6において、24−1,24−2はセレクタを示す。
これにより、制御信号S22をハイレベルに示し続けない限り、すなわち、鍵デバイス30から正しいビット列を集積回路20に入力し続けない限り、集積回路20のデバッグ機能を使用することはできなくなる。
これらの施策により、集積回路20の出荷後は、当然集積回路である鍵デバイス30は一般には存在しないため、集積回路20の利用者は試験機能やデバッグ機能を利用することはできない。
また、集積回路20に市場不良が発生して、製造元でその原因の解析が必要な場合も、集積回路である鍵デバイス30さえあれば、再度試験機能やデバッグ機能を出荷前と同等に利用することができる。
また、集積回路20に市場不良が発生して、製造元でその原因の解析が必要な場合も、集積回路である鍵デバイス30さえあれば、再度試験機能やデバッグ機能を出荷前と同等に利用することができる。
これらのことより、既存技術のように、一度機能を無効化した後は、再度機能を有効にすることが困難ということが無くなる。
集積回路である鍵デバイスを許可された者にだけ配布して、その鍵デバイス30を厳密に管理すれば、集積回路内部のビット列生成のアルゴリズムを利用者に開示する必要も無い。
このため、集積回路20の試験機能やデバッグ機能を利用するためのデータが電子媒体などを通じて比較的安易に流出することも防止できる。
集積回路である鍵デバイスを許可された者にだけ配布して、その鍵デバイス30を厳密に管理すれば、集積回路内部のビット列生成のアルゴリズムを利用者に開示する必要も無い。
このため、集積回路20の試験機能やデバッグ機能を利用するためのデータが電子媒体などを通じて比較的安易に流出することも防止できる。
図7は、本発明の第2の実施形態に係る集積回路を採用した情報処理システムの構成例を示すブロック図である。
本第2の実施形態の情報処理システム10Aが第1の実施形態の情報処理システム10と異なる点は、ビット列生成器21A,31Aが異なる点と、集積回路20A側に乱数発生器25を形成し、この乱数をビット列生成器21A,31Aに供給する点にある。
このため、集積回路20Aには、乱数発生器25で発生された乱数である不確定なビット列S25が供給され、外部に出力するための端子T25が形成されている。
同様に、鍵デバイス30Aには、たとえば集積回路20A側で発生された乱数が供給され、この乱数をビット列生成器31Aに供給するための端子T34が形成されている。
同様に、鍵デバイス30Aには、たとえば集積回路20A側で発生された乱数が供給され、この乱数をビット列生成器31Aに供給するための端子T34が形成されている。
集積回路20Aに内蔵されたビット列生成器21Aは、図1のものとは異なり、生成するビット列を形成するための種データを設定できる機能を有している。
たとえば、これは前述した非特許文献1でいうところのXSEEDに相当し、この設定データが異なると、ビット列生成器21Aが生成するビット列S21Aは異なるものになる。
たとえば、これは前述した非特許文献1でいうところのXSEEDに相当し、この設定データが異なると、ビット列生成器21Aが生成するビット列S21Aは異なるものになる。
また、集積回路20に内蔵された乱数生成器25は、ビット列生成器21A,31Aとは異なり、リセット信号RSTが解除されるたびに不確定なビット列を生成する機能を有する。
それは、たとえば物理乱数生成器により形成される。
それは、たとえば物理乱数生成器により形成される。
この物理乱数生成器は、雑音を発生するノイズ源と、ノイズ源に接続された第1のスイッチと、第1のスイッチに接続された容量と、容量に入力が接続された第1の反転増幅器と、第1の反転増幅器の出力に入力が接続された第2の反転増幅器と、有している。
物理乱数生成器は、さらに、第1の反転増幅器の入力および出力間に接続された第2のスイッチと、第2の反転増幅器の出力および第1の反転増幅器の入力間に接続された第3のスイッチと、を有する。
物理乱数生成器は、さらに、第1の反転増幅器の入力および出力間に接続された第2のスイッチと、第2の反転増幅器の出力および第1の反転増幅器の入力間に接続された第3のスイッチと、を有する。
そして、物理乱数生成器においては、第1の状態から第5の状態となる処理を連続して行う。
第1の状態では、第1のスイッチ素子、第2のスイッチ素子、および第3のスイッチ素子を非導通状態にする。
第2の状態では、第1のスイッチ素子および第3のスイッチ素子を非導通状態にし、第2のスイッチ素子を導通状態にする。
第3の状態では、第1のスイッチ素子、第2のスイッチ素子、および第3のスイッチ素子を非導通状態にする。
第4の状態では、第1のスイッチ素子を導通状態にし、第2のスイッチ素子および第3のスイッチ素子を非導通状態にする。
第5の状態では、第1のスイッチ素子および第2のスイッチ素子を非導通状態にし、第3のスイッチ素子を導通状態にする。
第1の状態では、第1のスイッチ素子、第2のスイッチ素子、および第3のスイッチ素子を非導通状態にする。
第2の状態では、第1のスイッチ素子および第3のスイッチ素子を非導通状態にし、第2のスイッチ素子を導通状態にする。
第3の状態では、第1のスイッチ素子、第2のスイッチ素子、および第3のスイッチ素子を非導通状態にする。
第4の状態では、第1のスイッチ素子を導通状態にし、第2のスイッチ素子および第3のスイッチ素子を非導通状態にする。
第5の状態では、第1のスイッチ素子および第2のスイッチ素子を非導通状態にし、第3のスイッチ素子を導通状態にする。
このような物理乱数発生器は、たとえば[特許文献3:特開2003−296101号公報 / 特許3600592号]等に開示されている。
図7の第2の実施形態では、リセット信号RSTが解除されると、乱数生成器25が生成する不確定なビット列S25がビット列生成器21Aに設定される。
これと並行して、ビット列S25は、集積回路20の外部に出力され、鍵デバイス30Aに入力され、鍵デバイス30Aに内蔵された、ビット列生成器21Aと同等の第2のビット列生成器31Aに設定される。
これと並行して、ビット列S25は、集積回路20の外部に出力され、鍵デバイス30Aに入力され、鍵デバイス30Aに内蔵された、ビット列生成器21Aと同等の第2のビット列生成器31Aに設定される。
乱数生成器25が生成するビット列S25は不確定な信号のため、ゆえにビット列生成器21Aが生成するビット列S22、およびビット列生成器31Aが生成するビット列S31A(BSQC)は、リセット解除のたびに異なるビット列が生成されることとなる。
後は、図1での説明と同様に、鍵デバイス30Aから出力されたビット列S31Aが集積回路20に比較対象信号SCMPであるビット列BSQCとして入力され、集積回路20内部のビット列生成器21Aの出力のビット列S21Aと比較器22で比較される。
ビット列BSQCとビット列S21Aが一致することにより、集積回路20の機能を利用することができる。
ビット列BSQCとビット列S21Aが一致することにより、集積回路20の機能を利用することができる。
本第2の実施形態によれば、リセット解除のたびに必要となるビット列BSQCが異なるため、鍵デバイス30Aを持たないものには、よりいっそう不正な利用が困難になる。
以上説明したように、本実施形態によれば、以下の効果を得ることができる。
本実施形態の機能を備えた集積回路においては、集積回路の各機能を有効とするために、内部のビット列生成器の出力と全く同一の信号を必要とするようにしたので、意図しない利用者による集積回路の機能の不正な利用を抑止して、集積回路のセキュリティ強度の向上を実現できる。
また図5の実施形態に従えば、認証の為に必要となる信号が毎回異なるため、集積回路の不正な利用がより一層困難となる。
本実施形態の機能を備えた集積回路においては、集積回路の各機能を有効とするために、内部のビット列生成器の出力と全く同一の信号を必要とするようにしたので、意図しない利用者による集積回路の機能の不正な利用を抑止して、集積回路のセキュリティ強度の向上を実現できる。
また図5の実施形態に従えば、認証の為に必要となる信号が毎回異なるため、集積回路の不正な利用がより一層困難となる。
また、本発明を、試験機能に利用すれば、製造時の試験では大きな制約なく試験機能を利用でき、かつ、市場出荷後にはその機能を不正に利用することを抑止でき、なおかつ、再度製造元で試験を必要とする場合も、出荷前と同等に試験機能を利用することができる。
また本発明を、デバッグ機能に利用すれば、プログラム開発作業は大きな制約なくデバッグ機能を利用でき、かつ、市場出荷後にはその機能を不正に利用することを抑止でき、なおかつ、再度製造元でデバッグ機能を必要とする場合も、出荷前と同等にデバッグ機能を利用することができる。
10,10A・・・情報処理システム、20,20A・・・集積回路、21,21A・・・ビット列生成器、22・・・比較器、23・・・機能対象回路、25・・・乱数発生器、30,30A・・・鍵デバイス、31,31A・・・第2のビット列生成器、40・・・テスター、50・・・テストボード、60・・・基板、70・・・デバッグ用インターフェース機器、80・・・コンピュータ。
Claims (9)
- 容易に推測のできないビット列を生成するビット列生成器と、
上記ビット列生成器で生成されたビット列と外部から入力される比較対象のビット列とを比較し、比較結果を制御信号として出力する比較器と、
上記比較器の比較結果を示す制御信号により機能の利用が制御される機能対象部と、を含み、
上記比較器は、
比較結果が、少なくとも上記ビット列生成器で生成されたビット列と外部から入力される比較対象のビット列とが一致している場合に限り、上記機能の全体または一部を利用可能とする上記制御信号を上記機能対象部に出力する
集積回路。 - 上記比較器は、
外部からの利用要求信号がアクティブで供給された場合に、上記制御信号を出力する
請求項1記載の集積回路。 - 上記比較器は、
外部からの利用要求信号がアクティブで供給され、上記ビット列生成器で生成されたビット列と外部から入力される比較対象のビット列とが一致し続けるときのみ、上記機能の全体または一部を利用可能とする上記制御信号を上記機能対象部に出力する
請求項2記載の集積回路。 - 上記比較器は、
上記ビット列生成器で生成されたビット列と外部から入力されるビット列とが一致していない場合があると、リセット信号が供給されるまで、上記機能の全体または一部を利用不可能とする上記制御信号を上記機能対象部に出力する
請求項1記載の集積回路。 - 上記比較器は、
上記利用要求信号が非アクティブとなり、あるいは上記ビット列生成器で生成されたビット列と外部から入力される比較対象のビット列とが一致していない場合があると、リセット信号が供給されるまで、上記機能の全体または一部を利用不可能とする上記制御信号を上記機能対象部に出力する
請求項3記載の集積回路。 - 上記ビット列生成器には、不確定なビット列が入力され、当該ビット列生成器が生成するビット列が当該集積回路を利用するたびに異なる
請求項1記載の集積回路。 - 上記ビット列生成器と同等の機能の第2のビット列生成器を含む外部の鍵デバイスから上記第2のビット列生成器によるビット列を、上記比較器に比較対象のビット列として供給可能である
請求項1から6のいずれか一に記載の集積回路。 - 対象となる機能が、チップの機能を試験するための試験機能である
請求項1から6のいずれか一に記載の集積回路。 - 対象となる機能が、チップ内蔵の演算処理装置で実行されるプログラムをデバッグするためのデバッグ機能である
請求項1から6のいずれか一に記載の集積回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008169514A JP2010009421A (ja) | 2008-06-27 | 2008-06-27 | 集積回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008169514A JP2010009421A (ja) | 2008-06-27 | 2008-06-27 | 集積回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010009421A true JP2010009421A (ja) | 2010-01-14 |
Family
ID=41589811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008169514A Pending JP2010009421A (ja) | 2008-06-27 | 2008-06-27 | 集積回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010009421A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018190386A (ja) * | 2017-05-03 | 2018-11-29 | 新唐科技股▲ふん▼有限公司 | 安全な集積回路状態を管理する装置およびその方法 |
-
2008
- 2008-06-27 JP JP2008169514A patent/JP2010009421A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018190386A (ja) * | 2017-05-03 | 2018-11-29 | 新唐科技股▲ふん▼有限公司 | 安全な集積回路状態を管理する装置およびその方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Secure scan and test using obfuscation throughout supply chain | |
Zhao et al. | Providing root of trust for ARM TrustZone using on-chip SRAM | |
Chiu et al. | A secure test wrapper design against internal and boundary scan attacks for embedded cores | |
Chakraborty et al. | Security against hardware Trojan attacks using key-based design obfuscation | |
US8046573B2 (en) | Masking a hardware boot sequence | |
Wang et al. | IIPS: Infrastructure IP for secure SoC design | |
JP5480449B2 (ja) | スキャン・チェーンのセキュリティを提供するための方法および装置 | |
EP3542261B1 (en) | Method for performing a trustworthiness test on a random number generator | |
US10361873B2 (en) | Test point-enhanced hardware security | |
US20080256366A1 (en) | System and Method for Booting a Multiprocessor Device Based on Selection of Encryption Keys to be Provided to Processors | |
Das et al. | PUF-based secure test wrapper design for cryptographic SoC testing | |
US10915635B2 (en) | Countermeasures to frequency alteration attacks on ring oscillator based physical unclonable functions | |
Cui et al. | A new PUF based lock and key solution for secure in-field testing of cryptographic chips | |
US9633185B2 (en) | Device having secure JTAG and debugging method for the same | |
US20070192874A1 (en) | Advanced encryption standard to provide hardware key interface | |
Zhang et al. | An on-chip dynamically obfuscated wrapper for protecting supply chain against IP and IC piracies | |
Yu et al. | Can deep learning break a true random number generator? | |
Sami et al. | Poca: First power-on chip authentication in untrusted foundry and assembly | |
Backer et al. | Secure design-for-debug for systems-on-chip | |
Aysu et al. | A design method for remote integrity checking of complex PCBs | |
Peeters | SoC security architecture: Current practices and emerging needs | |
Hu et al. | SANSCrypt: A sporadic-authentication-based sequential logic encryption scheme | |
US11899827B2 (en) | Establishing trust in untrusted IC testing and provisioning environment | |
JP2010009421A (ja) | 集積回路 | |
Lee et al. | A brief review on jtag security |