(57)【要約】【課題】  デバイス固有の情報の生成方法を改善した半導体装置を提供する。【解決手段】  本発明の半導体装置２００は、複数の動作環境で動作されるコード生成用回路２３０と、コード生成用回路２３０から出力される動作情報を取得する動作情報取得部２５２と、取得された動作情報のダミーコードを検出するダミー検出部２５４と、検出されたダミーに基づきコード情報を生成し、これを不揮発性記憶部２４０に格納するコード情報生成部２５６と、ホスト装置１００からコード情報の要求があったとき、これに応答して不揮発性記憶部２４０からコード情報２４２を読出し、これをホスト装置１００へ出力するコード情報読出し部２５８とを含む。コード情報２４２がホスト装置１００に保存された後、コード情報２４２は、コード情報消去部２６０によって消去される。【選択図】  図１
2018050103.tif 000002
【特許請求の範囲】
【請求項１】
複数の動作環境で動作させたときに同じ結果を生じる安定情報、および前記複数の動作環境で動作させたときに異なる結果を生じる不定情報を含む固有情報を生成する生成手段と、
前記固有情報に含まれる前記不定情報を識別する識別情報と検出する検出手段と、
前記固有情報および前記識別情報を不揮発性の記憶領域に記憶する記憶手段と、
前記固有情報および前記識別情報を読出し、読み出した固有情報および識別情報を外部へ出力可能な読出し手段と、
を有する半導体装置。
【請求項２】
半導体装置はさらに、前記記憶手段に記憶された前記固有情報および前記識別情報を消去する消去手段を含む、請求項１に記載の半導体装置。
【請求項３】
前記消去手段は、外部からの要求に応答して前記固有情報および前記識別情報を消去する、請求項２に記載の半導体装置。
【請求項４】
前記読出し手段は、前記消去手段により前記固有情報および前記識別情報が消去された後に、外部から固有情報の要求があったとき、前記生成手段により生成された固有情報を外部へ出力する、請求項１に記載の半導体装置。
【請求項５】
前記記憶手段は、コンフィギュレーションレジスタに設定されたアドレスに従い前記固有情報および前記識別情報を記憶する、請求項１ないし４いずれか１つに記載の半導体装置。
【請求項６】
前記複数の動作環境は、異なる環境温度での動作を含む、請求項１に記載の半導体装置。
【請求項７】
前記複数の動作環境は、異なる電源電圧での動作を含む、請求項１に記載の半導体装置。
【請求項８】
前記生成手段は、複数の動作環境で動作可能な回路を含み、当該回路は、ｎビットの固有情報を生成し、前記検出手段は、ｎビットの中から前記不定情報のビット位置を識別する、請求項１に記載の半導体装置。
【請求項９】
前記安定情報は、前記複数の動作環境で動作されたとき全てが「０」または「１」のいずれかであり、前記不定情報は、前記複数の動作環境で動作されたとき「０」と「１」とを含む、請求項１ないし４いずれか１つに記載の半導体装置。
【請求項１０】
前記生成手段は、テストモードのときに複数の動作環境で動作される、請求項１ないし５いずれか１つに記載の半導体装置。
【請求項１１】
前記生成手段は、一対のインバータを有するｎ組のインバータ回路と、一対のインバータの出力電圧を比較するｎ組の比較回路と、ｎ組の比較回路の比較結果に基づくｎビットの固有情報を生成する生成部とを含み、一対のインバータのゲートには、インバータに供給される電圧の１／２の電圧が供給される、請求項１に記載の半導体装置。
【請求項１２】
請求項１ないし１２いずれか１つに記載の半導体装置と、当該半導体装置と接続可能なホスト装置とをシステムであって、
ホスト装置は、
半導体装置から受け取った前記固有情報および前記識別情報を格納する格納手段と、
前記固有情報および前記識別情報に基づき半導体装置の認証を行う認証手段とを含む、システム。
【請求項１３】
前記認証手段は、前記識別情報に基づき前記固有情報の中から前記安定情報を抽出し、抽出された安定情報に基づき半導体装置の認証を行う、請求項１２に記載のシステム。
【請求項１４】
ホスト装置は、前記固有情報および前記識別情報を格納した後、半導体装置に対して前記固有情報および前記識別情報の削除を要求する手段を含む、請求項１２または１３に記載のシステム。
【請求項１５】
前記認証手段は、前記抽出された安定情報を変化させる手段を含む、請求項１３に記載のシステム。
【請求項１６】
前記変化させる手段は、前記抽出された安定情報にランダム性を与える、請求項１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、固有情報の生成機能を備えた半導体装置に関し、特に半導体装置の回路素子を利用した固有情報の生成方法に関する。
【背景技術】
【０００２】
近年、電子デバイスや電子装置のセキュリティの強化に伴い、そこに実装される半導体装置の偽造や模倣の対策が求められている。ある方法では、半導体装置に固有情報を与えておき、固有情報が認証された場合には、当該半導体装置が真正なものとして半導体装置や電子機器の動作を許可している。固有情報は、例えば、半導体装置の不揮発性メモリ等に格納することが可能であるが、このような方法は、半導体装置を解析することで固有情報が読み取られたり、あるいは外部から半導体装置を不正にアクセスすることで固有情報が読み取られてしまうリスクがある。
【０００３】
そこで、昨今では、物理的にクローンの作製をすることができないＰＵＦ技術（Physical Unclonable Function）が注目されている。ＰＵＦ技術は、予測不可能であり、秘匿性が高くかつ恒久性のある物理的情報を固有情報として用いるものである。例えば、特許文献１のデジタル値生成装置および方法は、半導体の工程偏差を用いて固有のデジタル値を生成する技術を開示している。特許文献２の半導体装置は、ユニークコード生成部によって生成されたデバイス固有のユニークコードに対応する記憶領域から特定情報を読出す技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−８０２５２号公報
【特許文献２】特開２０１６−１２９３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１のように半導体の工程偏差を利用して固有のデジタル値を生成する場合、回路素子のバラツキが小さく、「０」または「１」の判定が困難である。他方、その判定のためのマージンを大きくすると、固有情報のランダム性（非予測性）が低下してしまうという課題がある。
【０００６】
本発明は、このような従来の課題を解決し、固有情報の生成方法を改善した半導体装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る半導体装置は、複数の動作環境で動作させたときに同じ結果を生じる安定情報、および前記複数の動作環境で動作させたときに異なる結果を生じる不定情報を含む固有情報を生成する生成手段と、前記固有情報に含まれる前記不定情報を識別する識別情報と検出する検出手段と、前記固有情報および前記識別情報を不揮発性の記憶領域に記憶する記憶手段と、前記固有情報および前記識別情報を読出し、読み出した固有情報および識別情報を外部へ出力可能な読出し手段とを有する。
【０００８】
好ましくは半導体装置はさらに、前記記憶手段に記憶された前記固有情報および前記識別情報を消去する消去手段を含む。さらに好ましくは前記消去手段は、外部からの要求に応答して前記固有情報および前記識別情報を消去する。さらに好ましくは前記読出し手段は、前記消去手段により前記固有情報および前記識別情報が消去された後に、外部から固有情報の要求があったとき、前記生成手段により生成された固有情報を外部へ出力する。さらに好ましくは前記記憶手段は、コンフィギュレーションレジスタに設定されたアドレスに従い前記固有情報および前記識別情報を記憶する。
【０００９】
本発明のシステムは、上記構成の半導体装置と、当該半導体装置と接続可能なホスト装置とを含み、ホスト装置は、半導体装置から受け取った前記固有情報および前記識別情報を格納する格納手段と、前記固有情報および前記識別情報に基づき半導体装置の認証を行う認証手段とを含む。好ましくは前記認証手段は、前記識別情報に基づき前記固有情報の中から前記安定情報を抽出し、抽出された安定情報に基づき半導体装置の認証を行う。さらに好ましくはホスト装置は、前記固有情報および前記識別情報を格納した後、半導体装置に対して前記固有情報および前記識別情報の削除を要求する手段を含む。
【発明の効果】
【００１０】
本発明によれば、安定情報と不定情報を含む固有情報と不定情報の識別情報とを用いることで、固有情報のランダム性を低下させることなく、固有情報を有効に認証に利用することができる。さらに固有情報および識別情報を消去することで、半導体装置を解析または分解しても固有情報を知ることができなくなるため、より高度なセキュリティを保つことができる。
【図面の簡単な説明】
【００１１】
【図１】図１（Ａ）は、本発明の実施例に係るセキュリティシステムの概略図、図１（Ｂ）は、本発明の実施例に係る半導体装置の要部の構成を示すブロック図である。
【図２】本発明の実施例に係るコード生成用回路の一例を示す図である。
【図３】図３（Ａ）は、コード生成用回路により生成された動作情報の一例を示すテーブル、図３（Ｂ）は、動作情報から検出されたダミーコードを示すテーブルである。
【図４】本発明の実施例による半導体装置の出荷前に生成されるコード情報のフローを示す図である。
【図５】本発明の実施例に係るセキュリティシステムの動作フローを示す図である。
【図６】本発明の実施例に係るホスト装置において保存されるコード情報の一例を示す図である。
【図７】本発明の実施例に係るセキュリティシステムにおける認証動作を示すフローである。
【図８】本発明の第２の実施例に係るセキュリティシステムを説明する図である。
【発明を実施するための形態】
【００１２】
次に、本発明の実施の形態について図面を参照して詳細に説明する。本発明の半導体装置は、半導体装置の固有情報を生成し、当該固有情報を利用したセキュリティシステムに対応する。本発明の半導体装置は、固有情報を生成する機能以外は、どのような機能を包含するかは特に限定されない。本発明の半導体装置は、半導体メモリ、半導体ロジック、半導体処理回路、半導体駆動回路、中央処理回路等であり得る。半導体装置１００は、例えば、ＩＣカード媒体（例えば、ＳＩＭＭカード、クレジットカード、ＩＣが内蔵されたカード）、スマートフォンなどの携帯端末、電子機器、コンピュータ等、セキュリティが求められるあらゆる電子装置において使用することができる。
【実施例】
【００１３】
図１（Ａ）は、本発明の実施例に係るセキュリティシステムの一例を示している。セキュリティシステム１０は、例えば、ホスト装置１００と、ホスト装置１００と有線または無線により接続される半導体装置２００とを含む。ホスト装置１００は、半導体装置２００により生成された固有情報を利用することで、半導体装置２００が真正なものか否か（不正なものか否か）を認証する。１つの例では、ホスト装置１００は、半導体装置２００を認証することができた場合にのみ半導体装置２００を使用することができ、認証することができない場合には、半導体装置２００を使用することができない。ホスト装置１００は、特に限定されないが、半導体装置２００と連携する装置であり、例えば、コンピュータ装置、コンピュータシステム、マイクロコントローラ、マイクロコンピュータ等を含む。
【００１４】
半導体装置２００は、それ自身が包含する回路または回路素子を利用して固有の情報を生成する。半導体装置２００は、例えば、シリコン基板またはそれ以外の基板（例えば、ＳｉＣ、ＧａＡｓ、サファイアなど）上に種々の回路素子（例えば、トランジスタ、抵抗、コンデンサなど）を含み得る。回路素子は、半導体装置に固有の特性を有する、例えば、トランジスタのしきい値は、他の半導体装置のトランジスタのしきい値と異なり、それ故、半導体装置の回路素子は、固有の情報になり得る。
【００１５】
ホスト装置１００は、半導体装置２００が接続されたとき、半導体装置２００から固有情報を受け取り、この固有情報に基づき半導体装置２００の認証を行う。認証は、どのようなタイミングで行われてもよいが、例えば、半導体装置２００が初めて接続されたとき、あるいはホスト装置１００がユーザーからのリクエストを受けたときなどに認証が実施され得る。
【００１６】
図１（Ｂ）は、本実施例の半導体装置２００の要部の構成を示すブロック図である。半導体装置２００は、ホスト装置１００との間でデータの送受を行う入出力部２１０、制御部２２０、固有情報としてのコードを生成するためのコード生成用回路２３０、不揮発性記憶部２４０を含む。なお、ここに例示する機能は一例であり、半導体装置２００は、これ以外の構成を包含することも可能である。
【００１７】
好ましい態様では、制御部２２０は、動作モード判定部２５０、動作情報取得部２５２、ダミー検出部２５４、コード情報生成部２５６、コード情報読み出し部２５８およびコード情報消去部２６０を含む。動作モード判定部２５０は、半導体装置２００の動作モードを判定する。
【００１８】
好ましい例では、半導体装置２００が複数の動作環境において動作されるモードに置かれているか否かを判定する。このような動作モードは、例えば、テストモードであり得る。半導体装置２００は、例えば、特定の外部端子（図示省略）に通常動作で使用されない電圧（例えば、負電圧）が印加されたとき、テストモードに移行することができ、テストモードにおいて複数の動作環境でテストされ得る。あるいは、半導体装置２００の入出力部２１０を介してテストコマンドが入力されたとき、半導体装置２００は、テストモードに移行し、テストモードにおいて複数の動作環境でテストされ得る。テストは、好ましくは、半導体装置２００の出荷前に実施される。また、テストは、半導体チップが個片化される前のウエハー状態で行われるものであってもよいし、個片化されたチップがパッケージ化された状態で行われるものであってもよい。動作モード判定部２５０は、このような複数の動作環境で動作されるモードを判定する。
【００１９】
動作情報取得部２５２は、動作モード判定部２５０により半導体装置２００が複数の動作環境で動作するモードである判定された場合、コード生成用回路２３０から動作情報を取得する。コード生成用回路２３０は、半導体装置２００に形成された回路であり、複数の動作環境で動作されたとき、複数の動作環境に応じた複数の動作結果を出力する。例えば、テストモード時、コード生成用回路２３０は、異なる動作温度および／または異なる供給電圧で動作され、そのときの動作結果を出力する。動作情報取得部２５２は、コード生成用回路２３０により出力された複数の動作情報を取得し、これをダミー検出部２５４へ提供する。
【００２０】
ここで、コード生成用回路２３０の一例を図２に示す。コード生成用回路２３０は、半導体装置２００の機能を実行するための回路の一部または全部を共用するものであってもよいし、専用に設けられたものであってもよい。
【００２１】
コード生成用回路２３０は、ｎビットの動作情報を出力するためにｎ組の回路を備えている。同図に示すように、コード生成用回路２３０は、一対のインバータＩＶ１、ＩＶ２を含むｎ組のインバータ回路２３２−１、２３２−２、…２３２−ｎと、ｎ組のインバータ回路２３２−１、２３２−２、…２３２−ｎのそれぞれの出力を受け取るｎ組のコンパレータ（差動増幅器）２３４−１、２３４−２、…２３４−ｎと、ｎ組のコンパレータ２３４−１、２３４−２、…、２３４−ｎの出力を受け取り、ｎビットの動作情報を出力する符号化部２３６とを含む。
【００２２】
一対のインバータＩＶ１、ＩＶ２には、電源電圧Ｖｃｃが供給され、各ゲートには、駆動信号ＤＶが共通に接続される。駆動信号ＤＶは、好ましくは、１／２Ｖｃｃである。一対のインバータＩＶ１、ＩＶ２に１／２Ｖｃｃの駆動信号ＤＶが入力されたとき、インバータＩＶ１、ＩＶ２には、リーク電流として貫通電流が流れる。インバータＩＶ１、ＩＶ２を構成するトランジスタやウエル等には、その製造工程の偏差によりしきい値や濃度に僅かなバラツキがあり、それ故、インバータＩＶ１、ＩＶ２を流れるリーク電流にも微小なバラツキが生じる。従って、インバータＩＶ１の出力ノードＮ１、インバータＩＶ２の出力ノードＮ２の出力電圧に微小なバラツキが生じる。差動増幅器２３４は、出力ノードＮ１の電圧と出力ノードＮ２の電圧とを比較し、両者の差分に応じたＨまたはＬレベルのデータを出力する。符号化部２３６は、ｎ組の差動増幅器２３４の出力を受け取り、ｎビットの動作情報を出力する。
【００２３】
上記したように、コード生成用回路２３０は、複数の動作環境で動作され、符号化部２３６は、複数の動作環境で動作されたときのそれぞれの動作情報を出力する。図３（Ａ）は、複数の動作温度でコード生成用回路２３０が動作されたときの動作情報の一例を示している。ここでは、コード生成用回路２３０が室温、高温、低温で動作されたときの１６ビットの動作情報が出力される例を示している（０〜Ｆは、１６進によるアドレスを表している）。トランジスタの動作特性は、温度変化の影響を受け易く、インバータ回路２３２−１〜２３２−１６の各インバータＩＶ１、ＩＶ２を流れる貫通電流は、インバータ回路毎に異なり、さらに各差動増幅器２３４−１〜２３４−１６の温度特性もそれぞれ異なる。それ故、コード生成用回路２３０が室温、高温、低温で動作されたとき、符号化部２３６により出力される動作情報の値は、必ずしも全てが同一にならず、一部の値が異なる。
図の例では、アドレス１の動作情報は、高温で動作されたとき「０」であるが、室温および低温で動作されたとき「１」である。また、アドレス５の動作情報は、低温で動作されたとき「１」であるが、室温および高温で動作されたとき「０」である。さらにアドレスＣの動作情報は、低温で動作されたとき「０」であるが、室温および高温で動作されたとき「１」である。
【００２４】
なお、複数の動作環境は、動作温度を変化させることに限定されるものではなく、例えば、電源電圧Ｖｃｃを変化させることも包含される。電源電圧Ｖｃｃが変化すると、トランジスタの動作特性も変化するため、コード生成用回路２３０から出力される動作情報は、電源電圧の変化によっても変化し得る。さらには、複数の動作環境は、動作温度および電源電圧の２つのパラメータを変化させるものであってもよい。
【００２５】
再び図１を参照する。ダミー検出部２５４は、動作情報取得部２５２がコード生成用回路２３０から複数の動作環境に応じた動作情報を取得すると、取得された動作情報からダミーコードを検出する。動作情報には、例えば、図３（Ａ）に示すように、動作温度を変化させても変化しない安定した値を有するものと、動作温度が変化すると値が変化するものとが含まれる。ここで、便宜上、動作環境を変化させても動作情報が変化しない安定したコードを「リアルコード」、動作環境を変化させると動作情報が変化する不定なコードを「ダミーコード」と称する。
【００２６】
ダミー検出部２５４は、取得したｎビットの動作情報の中から、動作環境が変化したときの異なる値を有する動作情報を検出する。この検出は、ロジック演算により行われる。例えば、動作情報の各アドレスのビット値のＡＮＤ演算を行い、演算結果が「１」であれば、これはリアルコードである。なぜなら、すべてのビットが「１」のときにしか、ＡＮＤは「１」にならず、これは、動作環境が変化してもビット値が変化していないことを意味する。
【００２７】
他方、ＡＮＤ演算の結果が「０」であるとき、これは、リアルコードとダミーコードの双方を包含する。すなわち、すべてのビット値が「０」であれば、リアルコードであるが、一部のビット値が「０」であれば、ダミーコードである。これを判別するため、ＡＮＤ演算結果が「０」の場合には、各ビット値のＯＲ演算の結果を参照し、ＯＲ演算の結果が「０」であれば、リアルコード、ＯＲ演算の結果が「１」であれば、いずれかのビット値が「１」であるのでダミーコードと判定する。
【００２８】
図３（Ｂ）は、図３（Ａ）の動作情報についてダミー検出を行った結果を最下段のコードに示している。「ｘ」はダミーコードである。すなわち、アドレス１、５、Ｃに対応するビット値は、動作環境の変化に応じて変化する不定情報であり、それ以外のアドレスに対応するビット値は、動作環境の変化に応じて変化しないリアルコード（安定情報）である。
【００２９】
コード情報生成部２５６は、ダミー検出部２５４の検出結果に基づきコード情報を生成する。コード情報は、例えば、リアルコードとダミーコードとからなるコード列と、当該コード列の中のダミーコードを識別する識別情報とを含む。図３（Ｂ）の例で示せば、コード情報生成部２５６は、「０ｘ００１ｘ１００１０１ｘ００１」のコード列と、当該コード列の中のダミーコードを識別するアドレス情報１、５、Ｃとを含む。なお、ここで留意すべきは、実際のダミーコード「ｘ」には、「０」または「１」のいずれかに割り当てられ、コード情報は、２値情報として扱われる。
【００３０】
コード情報生成部２５６は、生成したコード情報２４２を、半導体装置２００の不揮発性記憶部２４０内の予め決められたアドレスで指定された領域に格納する。コード情報２４２の格納アドレスは、例えば、半導体装置２００が電源投下時に最初に読み出すアドレスであることができる。あるいは、半導体装置２００のコンフィギュレーションレジスタにユーザー設定されたアドレスであることができる。
【００３１】
コード情報読み出し部２５８は、セキュリティシステム１０において、ホスト装置１００からコード情報の要求があったとき、不揮発性記憶部２４０からコード情報２４２を読出し、これをホスト装置１００へ出力する。また、コード情報読出し部２５８は、不揮発性記憶部２４０に記憶されたコード情報２４２が消去された後に、ホスト装置１００からコード情報の要求があった場合には、コード生成用回路２３０により生成された動作情報をコード情報としてホスト装置へ出力する。
【００３２】
コード情報消去部２６０は、ホスト装置１０からの命令に応答して、不揮発性記憶部２４０に記憶されたコード情報２４２を削除する。この削除は、コード情報２４２がホスト装置１００に保存された後に実行される。
【００３３】
次に、本実施例のセキュリティシステムの動作について説明する。図４は、半導体装置における出荷前のコード情報の生成に関する動作フローである。先ず、半導体装置２００が複数の動作環境で動作されると（Ｓ１００）、動作情報取得部２５２により複数の動作環境に応じた動作情報が取得され（Ｓ１１０）、ダミー検出部２５４により動作情報の中のダミーコードが検出される（Ｓ１２０）。コード情報生成部２５６は、ダミー検出部２５４の検出結果に基づきコード情報を生成し、これを不揮発性記憶部２４０に格納する（Ｓ１３０）。
【００３４】
次に、ホスト装置１００による半導体装置２００の認証動作について説明する。図５は、ホスト装置１００に半導体装置２００が最初に接続されたときの動作例である。半導体装置２００は、上記したように、出荷前にコード情報２４２を不揮発性記憶部２４０に記憶している（Ｓ２００）。ホスト装置１００は、半導体装置２００が初めて接続されたとき、半導体装置２００に対してコード情報の要求を行う。半導体装置２００のコード情報読出し部２５８は、ホスト装置１００からのコード情報の要求に応答して、不揮発性記憶部２４０からコード情報２４２を読出し（Ｓ２１０）、読み出したコード情報２４２を入出力部２１０を介してホスト装置１００へ送信する。
【００３５】
ホスト装置１００は、コード情報を受け取ると、コード情報を不揮発性の記憶領域に保存する（Ｓ２２０）。好ましくは、ホスト装置１００は、図６に示すように、半導体装置２００のデバイスＩＤに関連付けしてコード情報を保存することができる。保存されるコード情報は、デバイスＩＤに関連して、コード情報生成部２５６により生成されたオリジナルコード、ダミーコードを識別する識別情報、保存時刻を含む。図３（Ｂ）の例で言えば、オリジナルコードは、「０ｘ００１ｘ１００１０１ｘ００１」であり（但し、ｘは、任意の「０」または「１」である）、ダミーコード識別情報は、ダミーコードである「ｘ」のアドレスである「１、５、Ｃ」である。
【００３６】
ホスト装置１００は、半導体装置２００からのコード情報を保存すると、これに応答して半導体装置２００に対してコード情報の削除を要求する。半導体装置２００のコード情報消去部２６０は、コード情報の削除要求に応じて、不揮発性記憶部２４０のコード情報２４２を削除する（Ｓ２３０）。好ましくは、コード情報消去部２６０によりコード情報が削除されると、削除フラグが生成され、以後、ホスト装置１００からコード情報の要求があったとき、コード情報読出し部２５８は、削除フラグを参照し、コード情報２４２が消去されている場合には、コード用生成回路２３０により生成された動作情報をコード情報としてホスト装置１００に出力する。
【００３７】
また、上記例では、ホスト装置１００からのコード情報の削除要求に応答してコード情報２４２を消去したが、これ以外にも、コード情報読出し部２５８がコード情報を２４２をホスト装置１００へ出力した場合には、自動的にこれに応答してコード情報消去部２６０がコード情報２４２を削除するようにしてもよい。
【００３８】
半導体装置２００からコード情報２４２が削除され、当該コード情報２４２がホスト装置１００に保存された後、図７に示すフローに従い認証が行われる。ホスト装置１００は、半導体装置２００に対してコード情報の要求を行う。半導体装置２００のコード情報読出し部２５８は、消去フラグを参照し、不揮発性記憶部２４０からコード情報２４２が既に削除されているため、動作情報取得部２５２に、コード生成用回路２３０により生成された動作情報をコード情報として取得させる（Ｓ３００）。そして、コード情報読出し部２５８は、取得されたコード情報をホスト装置１００へ送信する。
【００３９】
ホスト装置１００は、ダミーコード識別情報（図６を参照）に基づき、受信したコード情報からダミーコードを除いたリアルコードを抽出する（Ｓ３１０）。例えば、ダミーコードのアドレスで指定されるビットをマスクする。次に、ホスト装置１００は、保存したリアルコードと抽出したリアルコードとを比較し（Ｓ３２０）、両リアルコードが一致すれば、半導体装置２００が真正なものと認証し、一致しなければ認証しない（Ｓ３３０）。ホスト装置１００は、認証された場合にのみ半導体装置１００の使用を許可し（Ｓ３４０）、認証できない場合には、半導体装置２００の使用を禁止しまたは許可しない（Ｓ３５０）。
【００４０】
このように本実施例のセキュリティシステムによれば、半導体装置に固有の情報を利用して半導体装置を認証することができる。また、半導体装置の固有の情報は、ホスト装置に保存された後に削除されるため、半導体装置を解析等を行ったとしても、固有の情報を知ることはできない。このため、より高度なセキュリティシステムを構築することができる。
【００４１】
次に、本発明の第２の実施例について説明する。上記実施例では、ホスト装置１００は、ダミーコード識別情報に基づきリアルコードを抽出し、常に、このリアルコードを比較対象にしたが、第２の実施例は、抽出したリアルコードの全部または一部を選択し、これを比較対象にする。
【００４２】
図８は、第２の実施例によるホスト装置１００の機能的な構成を示すブロック図である。ホスト装置１００は、図６に示すようなコード情報を保存するコード情報保存部１１０Ａと、ダミーコード識別情報に基づきリアルコードを抽出するリアルコード抽出部１２０Ａと、設定部１４０により設定された設定情報に基づきリアルコードを選択するリアルコード選択部１３０Ａとを含む。さらにホスト装置１００は、半導体装置２００から受信したコード情報を受信するコード情報受信部１１０Ｂと、ダミーコード識別情報に基づき受信したコード情報からリアルコードを抽出するリアルコード抽出部１２０Ｂと、設定部１４０により設定された設定情報に基づきリアルコードを選択するリアルコード選択部１３０Ｂと、リアルコード選択部１３０Ａ、１３０Ｂで選択された２つのリアルコードを比較する比較部１５０とを含む。
【００４３】
設定部１４０は、半導体装置２００を認証するたびに、あるいは一定期間毎に、リアルコードを変化させ、リアルコードにランダム性を持たせることを可能にする。１つの例では、設定部１４０は、リアルコードの一部を比較対象に用いることができる。例えば、図３（Ｂ）の例で言えば、アドレス「２−４、６−Ａ」の８ビットを比較対象に用いる。どのリアルコードを選択するかは、例えば、ユーザー入力によるものであってもよいし、予め決められたシーケンスに従うものであってもよい。さらには、乱数発生部により発生される乱数に従い、リアルコードの一部を選択するようにしてもよい。
【００４４】
また、他の例では、設定部１４０は、リアルコードの順序または組合わせを変更させることができる。例えば、図３（Ｂ）に示すアドレスの小さい方から順にリアルコードを整列させてもよいし、反対に、アドレスの大きい方から順にリアルコードを整列させてもよいし、あるいは、予め決められたシーケンスによりリアルコードの順序を変更させてもよい（例えば、図３（Ｂ）の例で言えば、アドレス「６、７、８、９、Ａ、Ｂ、４、３、２」など）。また、乱数発生部により発生される乱数を利用してリアルコードの順序をランダムに変化させてもよい。
【００４５】
さらに設定部１４０は、リアルコードの組合せを変更させるようにしてもよい。例えば、図３（Ｂ）の例で言えば、アドレス「２−４、６−８、Ｄ−Ｅ」の組合せ、「０、２−３、７−Ａ、Ｄ」のような組合せにしてもよい。リアルコードの組合せには、乱数を利用することも可能である。また、リアルコードは、アドレス「０、０、２、２、４、４、Ａ、Ａ」のように重複するコードを繰り返し用いるようにしてもよい。例えば、リアルコードのビット数を規定の長さにすることが望まれるとき、コードが重複して使用される。
【００４６】
設定部１４０により設定された設定情報は、リアルコード選択部１３０Ａ、１３０Ｂに共通に提供され、リアルコード選択部１３０Ａ、１３０Ｂは、当該設定情報に従いリアルコードの選択等を行う。このように第２の実施例によれば、認証のたび、あるいは一定期間毎にリアルコードを変化させることで、より高度なセキュリティを得ることができる。
【００４７】
上記実施例では、半導体装置の抽象的な構成を示したが、半導体装置は、例えば、フラッシュメモリであることができる。ホスト装置は、フラッシュメモリから固有のコード情報を取得し、フラッシュメモリの認証を行う。この場合、フラッシュメモリのコード生成用回路２３０は、ページバッファ／センスアンプを利用することができ、複数の動作環境において、メモリセルアレイの特定のページを読み出し、そのときの符号化された動作情報をページバッファ／センスアンプから出力させるようにすることができる。
【００４８】
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００４９】
１００：ホスト装置
２００：半導体装置
２１０：入出力部
２２０：制御部
２３０：コード生成用回路
２４０：不揮発性記憶部
２４２：コード情報
【図１】
2018050103.tif 000003
【図２】
2018050103.tif 000004
【図３】
2018050103.tif 000005
【図４】
2018050103.tif 000006
【図５】
2018050103.tif 000007
【図６】
2018050103.tif 000008
【図７】
2018050103.tif 000009
【図８】
2018050103.tif 000010
【手続補正書】
【提出日】平成30年1月9日(2018.1.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
基板上に形成された回路または回路素子を複数の動作環境で動作させたときの固有情報を生成する生成手段であって、当該固有情報は、複数の動作環境の各々においてｎビットの動作情報を含む、前記生成手段と、
前記複数の動作環境で動作されたときのｎビットの動作情報を演算処理することで、複数の動作環境で動作させたときに同じ結果を生じる安定情報と、前記複数の動作環境で動作させたときに異なる結果を生じる不定情報とを識別する識別情報を検出する検出手段と、
前記固有情報および前記識別情報を不揮発性の記憶領域に記憶する記憶手段と、
前記固有情報および前記識別情報を読出し、読み出した固有情報および識別情報を外部へ出力可能な読出し手段と、
を有する半導体装置。
【請求項２】
半導体装置はさらに、前記記憶手段に記憶された前記固有情報および前記識別情報を消去する消去手段を含む、請求項１に記載の半導体装置。
【請求項３】
前記消去手段は、外部からの要求に応答して前記固有情報および前記識別情報を消去する、請求項２に記載の半導体装置。
【請求項４】
前記読出し手段は、前記消去手段により前記固有情報および前記識別情報が消去された後に、外部から固有情報の要求があったとき、前記生成手段により生成された固有情報を外部へ出力する、請求項１に記載の半導体装置。
【請求項５】
前記記憶手段は、コンフィギュレーションレジスタに設定されたアドレスに従い前記固有情報および前記識別情報を記憶する、請求項１ないし４いずれか１つに記載の半導体装置。
【請求項６】
前記複数の動作環境は、異なる環境温度での動作を含む、請求項１に記載の半導体装置。
【請求項７】
前記複数の動作環境は、異なる電源電圧での動作を含む、請求項１に記載の半導体装置。
【請求項８】
前記生成手段は、複数の動作環境で動作可能な回路を含み、当該回路は、ｎビットの固有情報を生成し、前記検出手段は、ｎビットの中から前記不定情報のビット位置を識別する、請求項１に記載の半導体装置。
【請求項９】
前記安定情報は、前記複数の動作環境で動作されたとき全てが「０」または「１」のいずれかであり、前記不定情報は、前記複数の動作環境で動作されたとき「０」と「１」とを含む、請求項１ないし４いずれか１つに記載の半導体装置。
【請求項１０】
前記生成手段は、テストモードのときに複数の動作環境で動作される、請求項１ないし５いずれか１つに記載の半導体装置。
【請求項１１】
前記生成手段は、一対のインバータを有するｎ組のインバータ回路と、一対のインバータの出力電圧を比較するｎ組の比較回路と、ｎ組の比較回路の比較結果に基づくｎビットの固有情報を生成する生成部とを含み、一対のインバータのゲートには、インバータに供給される電圧の１／２の電圧が供給される、請求項１に記載の半導体装置。
【請求項１２】
請求項１ないし１２いずれか１つに記載の半導体装置と、当該半導体装置と接続可能なホスト装置とをシステムであって、
ホスト装置は、
半導体装置から受け取った前記固有情報および前記識別情報を格納する格納手段と、
前記固有情報および前記識別情報に基づき半導体装置の認証を行う認証手段とを含む、システム。
【請求項１３】
前記認証手段は、前記識別情報に基づき前記固有情報の中から前記安定情報を抽出し、抽出された安定情報に基づき半導体装置の認証を行う、請求項１２に記載のシステム。
【請求項１４】
ホスト装置は、前記固有情報および前記識別情報を格納した後、半導体装置に対して前記固有情報および前記識別情報の削除を要求する手段を含む、請求項１２または１３に記載のシステム。
【請求項１５】
前記認証手段は、前記抽出された安定情報を変化させる手段を含む、請求項１３に記載のシステム。
【請求項１６】
前記変化させる手段は、前記抽出された安定情報にランダム性を与える、請求項１５に記載のシステム。