(57)【要約】【課題】  動作に関する情報のリバースエンジニアリングを困難にする保護方法を提供する。【解決手段】  本発明のリバースエンジニアリングから保護する保護方法は、通常動作時の期待値を生成し（Ｓ１００）、半導体集積回路の監視地点Ｐ１、Ｐ２の電圧波形を監視し（Ｓ１０２）、監視された電圧波形から生成される測定値と期待値とを比較し（Ｓ１０４）、比較結果に基づきリバースエンジニアリングの有無を判定し（Ｓ１０６）、リバースエンジニアリングがありと判定された場合、半導体集積回路を通常動作と異なる保護モードで実行させる（Ｓ１０８）。【選択図】  図８
2020136592.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路をリバースエンジニアリングから保護する保護方法であって、
前記半導体集積回路の決められた監視地点の電圧波形を監視するステップと、
監視された電圧波形が通常動作時の期待値に該当するか否かを判定するステップと、
前記期待値に該当しないと判定された場合、前記半導体集積回路が通常と異なるモードで動作するように前記半導体集積回路を制御するステップと、
を有する保護方法。
【請求項２】
前記判定するステップは、前記監視地点の電圧が第１の値に充電されるまでの時間が許容範囲を超えるとき、リバースエンジニアリングが行われていると判定する、請求項１に記載の保護方法。
【請求項３】
前記監視するステップは、前記監視地点の電圧波形からパルス信号を生成し、
前記判定するステップは、基準時刻からパルス信号が立ち上がるまでの時間が許容範囲を超えるとき、リバースエンジニアリングが行われていると判定する、請求項１または２に記載の保護方法。
【請求項４】
前記制御するステップは、前記半導体集積回路を偽りの条件で動作させる、請求項１に記載の保護方法。
【請求項５】
前記制御するステップは、前記半導体集積回路の動作を停止させる、請求項１に記載の保護方法。
【請求項６】
保護方法はさらに、半導体集積回路の通常動作時に前記監視地点で得られた電圧波形から期待値を生成するステップを含む、請求項１に記載の保護方法。
【請求項７】
保護方法はさらに、半導体集積回路の動作温度を検出するステップを含み、
前記生成するステップは、前記検出された動作温度に基づき前記期待値を生成する、請求項６に記載の保護方法。
【請求項８】
保護方法はさらに、半導体集積回路の電源電圧を検出するステップを含み、
前記生成するステップは、前記検出された電源電圧に基づき前記期待値を生成する、請求項６に記載の保護方法。
【請求項９】
保護方法はさらに、前記半導体集積回路を通常と異なるモードで動作させるか否かを設定するステップを含み、
前記制御するステップは、前記設定するステップによる設定に基づき前記半導体集積回路を動作させる、請求項１ないし８いずれか１つに記載の方法。
【請求項１０】
半導体集積回路をリバースエンジニアリングから保護する機能を備えた半導体装置であって、
前記半導体集積回路の通常動作時に監視地点で得られた電圧波形から期待値を生成する生成手段と、
前記監視地点の電圧波形を監視する監視手段と、
前記監視手段により監視された電圧波形が前記期待値に該当するか否かを判定する判定手段と、
前記期待値に該当しないと判定された場合、前記半導体集積回路が通常と異なるモードで動作するように前記半導体集積回路を制御する制御手段と、
を有する半導体装置。
【請求項１１】
前記半導体集積回路は、半導体記憶回路を含み、
前記判定手段は、前記監視地点の電圧波形と読出し動作時または書込み動作時の期待値とを比較し、リバースエンジニアリングの有無を判定する、請求項１０に記載の半導体装置。
【請求項１２】
前記判定手段は、前記監視地点の電圧が第１の値に到達するまでの時間が決められたクロック数を超えるとき、リバースエンジニアリングが行われていると判定する、請求項１０または１１に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路をリバースエンジニアリングから保護する方法に関する。
【背景技術】
【０００２】
フラッシュメモリ等の半導体集積回路の内部構成あるいは内部動作には、機密情報として保護すべき有益な情報が含まれている。しかし、このような情報は、半導体チップをリバースエンジニアリングすることによって分析または解析され、第三者に知られてしまう現状がある。そこで、集積回路に構造的な工夫を施すことで、リバースエンジニアリングの対策が行われている。例えば、配線の接続情報を隠蔽するために多層配線の上層にダミー回路を配置することで、下層に形成された真の回路構造の解析を困難にしたり、真のヴィアコンタクトホールと同じ形状のダミーコンタクトホールを形成し、リバースエンジニアリングを行ったときに、両者の接続機能の有無を識別することを困難にしている（特許文献１）。また、導電性ブロックマスクを変更することで、デバイスの真の構造を表さず、誤りに導くシリサイド層のアーチファクトエッジを利用する例などが開示されている（特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１５８１８５号公報
【特許文献２】特開２０１０−１１８６８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の半導体集積回路あるいは半導体装置のリバースエンジニアリング対策は、特許文献１、２に示されるように、構造的な変更または追加を施すものであり、半導体集積回路の動作に関する情報については、依然として十分な対策が講じられていない。近年のフラッシュメモリは、例えば、狭いしきい値分布やディスターブの抑制等のメモリセルの特性を改善するため、読出しおよび書込みの双方において複雑な動作（例えば、電圧のスロープやステップ幅等の工夫）を実行している。それ故、デバイスの製造に携わるエンジニアは、メモリセルの特性の評価やそれを改善するための複雑な動作を実施することに多くの時間を費やしている。この複雑な動作は、デバイス製造業者にとって非常に有益なノウハウであり、半導体チップの内部（例えば、金属配線）をプロービングすることによって、複雑な動作が容易に暴かれ、内部動作が推定されてしまう。
【０００５】
本発明は、このような従来の課題を解決するものであり、動作に関する情報のリバースエンジニアリングを困難にする保護方法および半導体装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る、半導体集積回路をリバースエンジニアリングから保護する保護方法は、前記半導体集積回路の決められた監視地点の電圧波形を監視するステップと、監視された電圧波形が通常動作時の期待値に該当するか否かを判定するステップと、前記期待値に該当しないと判定された場合、前記半導体集積回路が通常と異なるモードで動作するように前記半導体集積回路を制御するステップとを有する。
【０００７】
ある実施態様では、前記判定するステップは、前記監視地点の電圧が第１の値に充電されるまでの時間が許容範囲を超えるとき、リバースエンジニアリングが行われていると判定する。ある実施態様では、前記監視するステップは、前記監視地点の電圧波形からパルス信号を生成し、前記判定するステップは、基準時刻からパルス信号が立ち上がるまでの時間が許容範囲を超えるとき、リバースエンジニアリングが行われていると判定する。ある実施態様では、前記制御するステップは、前記半導体集積回路を偽りの条件で動作させる。ある実施態様では、前記制御するステップは、前記半導体集積回路の動作を停止させる。ある実施態様では、保護方法はさらに、半導体集積回路の通常動作時に前記監視地点で得られた電圧波形から期待値を生成するステップを含む。ある実施態様では、保護方法はさらに、半導体集積回路の動作温度を検出するステップを含み、前記生成するステップは、前記検出された動作温度に基づき前記期待値を生成する。ある実施態様では、保護方法はさらに、半導体集積回路の電源電圧を検出するステップを含み、前記生成するステップは、前記検出された電源電圧に基づき前記期待値を生成する。ある実施態様では、保護方法はさらに、前記半導体集積回路を通常と異なるモードで動作させるか否かを設定するステップを含み、前記制御するステップは、前記設定するステップによる設定に基づき前記半導体集積回路を動作させる。
【０００８】
本発明に係る半導体装置は、半導体集積回路をリバースエンジニアリングから保護する機能を備えたものであって、前記半導体集積回路の通常動作時に監視地点で得られた電圧波形から期待値を生成する生成手段と、前記監視地点の電圧波形を監視する監視手段と、前記監視手段により監視された電圧波形が前記期待値に該当するか否かを判定する判定手段と、前記期待値に該当しないと判定された場合、前記半導体集積回路が通常と異なるモードで動作するように前記半導体集積回路を制御する制御手段とを有する。
【０００９】
ある実施態様では、前記半導体集積回路は、半導体記憶回路を含み、前記判定手段は、前記監視地点の電圧波形と読出し動作時または書込み動作時の期待値とを比較し、リバースエンジニアリングの有無を判定する。ある実施態様では、前記判定手段は、前記監視地点の電圧が第１の値に到達するまでの時間が決められたクロック数を超えるとき、リバースエンジニアリングが行われていると判定する。
【発明の効果】
【００１０】
本発明によれば、半導体集積回路の決められた監視地点の電圧波形を監視し、監視された電圧波形が通常動作時の期待値に該当しない場合には、通常と異なるモードで半導体集積回路を動作させるようにしたので、リバースエンジニアリングが行われたときに通常動作時の動作に関する情報を隠蔽し、この情報が容易に解析されるのを防止することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例に係るフラッシュメモリの構成を示すブロック図である。
【図２】本発明の第１の実施例に係るリバースエンジニアリング保護機能の構成を示すブロック図である。
【図３】図３（Ａ）は、通常動作時の内部回路の電圧波形、図３（Ｂ）は、図３（Ａ）の電圧波形から生成されたパルス波形、図３（Ｃ）は、パルス波形に関連付けされたデータを示す図である。
【図４】本発明の第１の実施例に係る電源電圧Ｖｃｃおよび動作温度Ｔａと時間Ｔｐとの関係を規定するテーブルである。
【図５】図５（Ａ）は異常動作時の内部回路の動作波形、図５（Ｂ）は、図５（Ａ）の電圧波形から生成されたパルス波形、図５（Ｃ）は、パルス波形に関連付けされたデータを示す図である。
【図６】本発明の第１の実施例によるＲＥ判定部の一例であり、図６（Ａ）は、内部回路の電圧波形、図６（Ｂ）は、電圧波形から生成された通常動作時のパルス波形、図６（Ｃ）は、電圧波形から生成されたリバースエンジニアリング時のパルス波形、図６（Ｄ）は、コントローラにおいて使用されるクロックを示している。
【図７】本発明の第１の実施例による保護モードを説明する図である。
【図８】本発明の第１の実施例に係るリバースエンジニアリング保護の動作フローである。
【図９】本発明の第２の実施例に係るリバースエンジニアリング保護機能の構成を示すブロック図である。
【図１０】本発明の第２の実施例に係るリバースエンジニアリング保護の動作フローである。
【発明を実施するための形態】
【００１２】
次に、本発明の実施の形態について図面を参照して詳細に説明する。本発明は、半導体集積回路をリバースエンジニアリングから保護する機能を搭載する。保護の対象となる半導体集積回路は、特に限定されるものではなく、例えば、フラッシュメモリ、抵抗変化型メモリ、磁気メモリ等の不揮発性メモリ、ＤＲＡＭやＳＲＡＭ等の揮発性メモリ、ＣＰＵ、ＤＳＰ、ロジック等である。以下の実施例では、ＮＡＮＤ型フラッシュメモリを例に説明する。
【実施例】
【００１３】
図１は、本発明の実施例に係る、リバースエンジニアリング保護機能を備えたＮＡＮＤ型のフラッシュメモリの構成を示す。本実施例のフラッシュメモリ１００は、複数のブロックBLK(0)、BLK(1)、・・・、BLK(m-1)を有し、各ブロックには、複数のＮＡＮＤストリングが配置されたメモリアレイ１１０と、外部入出力端子Ｉ／Ｏに接続された入出力バッファ１２０と、入出力バッファ１２０からアドレスデータを受け取るアドレスレジスタ１３０と、入出力バッファ１２０からコマンドデータ等を受け取り、各部を制御するコントローラ１４０と、アドレスレジスタ１３０からの行アドレス情報Ａｘをデコードし、デコード結果に基づきブロックの選択およびワード線の選択等を行うワード線選択回路１５０と、ワード線選択回路１５０によって選択されたページから読み出されたデータを保持したり、選択されたページにプログラムすべき入力データを保持するページバッファ／センス回路１６０と、アドレスレジスタ１３０からの列アドレス情報Ａｙをデコードし、当該デコード結果に基づきページバッファ／センス回路１６０内の列アドレスのデータを選択する列選択回路１７０と、データの読出し、プログラムおよび消去等のために必要な種々の電圧（書込み電圧Vpgm、パス電圧Vpass、読出しパス電圧Vread、消去電圧Versなど）を生成する内部電圧発生回路１８０と、外部から供給される電源電圧Ｖｃｃや予め決められた監視地点Ｐ１、Ｐ２の電圧を検出する電圧検出部１９０と、フラッシュメモリの動作温度を検出する温度検出部１９２とを含んで構成される。
【００１４】
コントローラ１４０は、ハードウエア、ソフトウエア、ハードウエアおよびソフトウエアを用いて構成され、例えば、ＲＯＭ／ＲＡＭおよびＣＰＵを含むマイクロコントローラ、マイクロプロセッサ、ステートマシンなどを用いて構成される。本実施例のコントローラ１４０は、読出し動作、プログラム動作および消去動作などを制御する機能に加えて、フラッシュメモリをリバースエンジニアリングから保護するリバースエンジニアリング保護機能を備えている。
【００１５】
図２に、本実施例のリバースエンジニアリング保護機能２００の構成を示す。ＲＥ保護機能２００は、期待値生成部２１０、測定時間生成部２２０、比較部２３０、ＲＥ判定部２４０および保護モード実行部２５０を含む。リバースエンジニアリング保護機能２００は、ハードウエア、ソフトウエア、ハードウエアおよびソフトウエアを用いて構成することができる。
【００１６】
期待値生成部２１０は、フラッシュメモリの通常動作時の電圧波形に関する期待値を生成する。この期待値は、通常動作時の動作に関する時間を定義することにより生成される。その一例を図３に示す。図３（Ａ）は、通常動作時の内部回路の電圧波形であり、例えば、プログラム動作や読出し動作が行われるときに、ある配線または地点に印加される信号の電圧波形である。通常動作時、つまり、半導体チップの配線や導電性パッド等にプローブピンが接触されていないとき、内部回路の電圧波形は、設計等で決められた時定数に従うスロープで上昇し、ターゲットの電圧値に充電され、その後、ＧＮＤレベルに放電される。電圧検出部１９０は、図３（Ａ）に示すような通常動作時の内部回路の監視地点Ｐ１、Ｐ２の立ち上がりのピーク電圧および立下りのＧＮＤレベルを検出し、この検出結果を期待値生成部２１０に提供する。期待値生成部２１０は、検出結果から図３（Ｂ）に示すようなパルス波形を生成する。このようなパルス波形は、図３（Ｃ）に示すように、通常動作時に関連する処理回路において使用されるものである。従って、パルス波形の生成は、期待値生成部２１０が行っても良いし、このようなパルス信号を必要とする他の回路が行っても良い。
【００１７】
期待値生成部２１０は、通常動作時の監視地点Ｐ１、Ｐ２の電圧波形またはそこから得られたパルス波形に基づき期待値を生成する。期待値は、少なくとも基準時刻ｔｎからパルス波形が立ち上がるまでの時間Ｔｐを含む。基準時刻ｔｎは、予め定義され、例えば、内部回路の電圧波形がプログラム電圧である場合には、基準時刻ｔｎは、プログラム電圧が選択ワード線に印加されるタイミングに定義される。あるいは、内部回路の電圧波形が読出し電圧である場合には、基準時刻ｔｎは、読出し電圧が選択ワード線に印加されるタイミングに定義される。基準時刻ｔｎからパルス波形が立ち上がるまでの時間Ｔｐは、例えば、コントローラ１４０がクロック信号に同期して動作する場合には、そのクロック信号のクロック数で表されても良い。期待値生成部２１０は、期待値を不揮発性メモリ（例えば、メモリセルアレイ）に格納する。この期待値は、もともとの基準値（標準値）にウエハ試験などの結果に応じて個々のチップのバラツキを反映したものとなり、電源投入後に不揮発性メモリから読み出され、キャッシュメモリまたはレジスタにロードされ、期待値は必要なときにキャッシュメモリまたはレジスタから読み出される。
【００１８】
基準時刻ｔｎからパルス波形が立ち上がるまでの時間Ｔｐは、電圧波形の立ち上がりのスロープの関数であるが、このスロープは、電源電圧Ｖｃｃの状態や内部回路の動作温度の影響を受ける。例えば、電源電圧Ｖｃｃが低ければ、スロープが遅くなり、Ｖｃｃが高くなれば、スロープが速くなる。また、動作温度が高くなれば、スロープが遅くなり、動作温度が低くなればスロープが速くなる。それ故、ある実施態様では、期待値生成部２１０は、基準時刻ｔｎからパルス波形が立ち上がるまでの時間Ｔｐに、電源電圧Ｖｃｃおよび動作温度Ｔａの変動をフィードバックする。例えば、電源電圧Ｖｃｃの状態および動作温度Ｔａと、時間Ｔｐとの関係は、既知のものとして、図４に示すようなテーブルが用意される。テーブルには、例えば、電源電圧Ｖｃｃの電圧に応じた補正値、および動作電圧Ｔａの温度に応じた補正値が設定され、これらの補正値は、時間Ｔｐを補正するために使用される。期待値生成部２１０は、期待値と測定値との比較が行われるとき、つまり不揮発性メモリから期待値が読み出されるとき、テーブルを参照し、電圧検出部１９０で検出された電源電圧Ｖｃｃの電圧レベルと温度検出部１９２で検出された温度に基づき、基準時刻ｔｎからパルス波形が立ち上がるまでの時間Ｔｐを補正する。
【００１９】
測定値生成部２２０は、電圧検出部１９０によって検出された監視地点Ｐ１、Ｐ２の電圧（ピーク電圧およびＧＮＤレベル）から生成されたパルス波形に基づき測定値を生成する。監視地点Ｐ１、Ｐ２は、半導体チップ上においてプローブピンが接触可能な地点と電気的に接続された場所が選択される。通常、プローブピンは、多層配線構造の上層の配線層や電極パッドに接触される。但し、場合によっては、半導体チップの配線層や絶縁層を削除し、内部の配線層や導電性領域に接触されることもある。フラッシュメモリであれば、読出し電圧やプログラム電圧はグローバルワード線に印加され、プリチャージ電圧はグローバルビット線に印加されるため、グローバルワード線やグローバルビット線に電気的に繋がる部位にプロービングされることが予想される。それ故、グローバルワード線やグローバルビット線に印加される電圧または信号をモニターできる部位が監視地点Ｐ１、Ｐ２に選択される。なお、本例では、監視地点を２つにしているが、監視地点は１つでもよいし、３つあってもよい。
【００２０】
もし、第三者によって半導体チップにプローブピンが接触されたならば、その接触地点にプローブピンの静電容量が重畳される。つまり、プロービングされた地点と電気的に接続された監視地点Ｐ１、Ｐ２のＲＣ時定数が大きくなる。その結果、監視地点Ｐ１、Ｐ２の電圧波形は、通常動作時よりも立ち上がりのスロープが緩やかになり、かつ立ち下がりのスロープが緩やかになる。図５（Ａ）の実線は、通常動作時の監視地点Ｐ１（Ｐ２）の電圧波形を示し、破線は、プロービング時の監視地点Ｐ１（Ｐ２）の電圧波形を示している。
【００２１】
図５（Ｂ）は、プロービング時の監視地点Ｐ１（Ｐ２）の電圧波形から生成されたパルス波形である。プロービング時のパルス波形は、電圧波形の立ち上がりのスロープが緩やかになるため、基準時刻ｔｎからパルス波形が立ち上がるまでの時間Ｔｑが、通常動作時のときの時間Ｔｐよりも大きくなる。
【００２２】
比較部２３０は、期待値生成部２１０で生成された期待値、すなわち基準時刻ｔｎからパルス波形が立ち上がるまでの時間Ｔｐと、測定値生成部２２０で生成された測定値、すなわち基準時刻ｔｎからパルス波形が立ち上がるまでの時間Ｔｑとを比較する。時間Ｔｐは、上記したように電源オン時に不揮発性メモリから読み出され、キャッシュメモリやレジスタに展開される。このとき、比較部２３０は、キャッシュメモリまたはレジスタに保持された期待値をそのまま使用するか、あるいは、図４に示すテーブルを参照し、検出された電源電圧Ｖｃｃの電圧レベルおよび／または動作温度Ｔａに基づき補正された期待値を使用する。
【００２３】
ＲＥ判定部２４０は、比較部２３０の比較結果を受け取り、リバースエンジニアリングが行われているか否かを判定する。具体的には、時間Ｔｑ−Ｔｐ＞Ｔｍを判定する。Ｔｍは、動作マージンまたは許容範囲であり、これを超える時間遅延は、人為的または意図的なものと見做し、リバースエンジニアリングが実行されていると判定する。
【００２４】
ＲＥ判定部２４０の動作例を図６に示す。図６（Ａ）は、通常動作時の電圧波形（実線）と、リバースエンジニアリング時の電圧波形（破線）、図６（Ｂ）は、通常動作時のパルス波形、図６（Ｃ）は、リバースエンジニアリング時のパルス波形、図６（Ｄ）は、コントローラ１４０の動作に使用されるクロックである。ＲＥ判定部２４０は、時間Ｔｐ−Ｔｑの遅延時間を検出し、例えば、その差分が一定のクロック数以上であるとき、リバースエンジニアリングが行われていると判定する。また、判定精度を高めるため、複数個のパルス波形について時間Ｔｐと時間Ｔｑとを比較し、それらの全てにおいてまたは一定以上の比率で、遅延時間が一定のクロック数以上であることが検出された場合に、リバースエンジニアリングが行われていると判定するようにしてもよい。
【００２５】
保護モード実行部２５０は、ＲＥ判定部２４０によりリバースエンジニアリングが実施されていると判定された場合、フラッシュメモリを通常動作と異なる保護モードで動作させ、通常動作時の真の動作を隠蔽する。保護モード実行部２５０は、予め用意されたダミー動作（偽の動作）を実行させたり、あるいは、通常動作時の動作を停止させる。
【００２６】
図７に、保護モードの一例を示す。図７（Ａ）は、リバースエンジニアリング保護機能がない場合の電圧波形（破線）を示し、図７（Ｂ）は、本実施例のリバースエンジニアリング保護機能がある場合の電圧波形（破線）を示している。同図からも明らかなように、保護機能がない場合には、プロービング時の電圧波形は、通常動作時の電圧波形と同じ電圧レベルで追従する。それ故、通常動作時の動作が容易に推測されてしまう。これに対し、保護機能がある場合には、保護モード実行部２５０は、時刻ｔｍで保護モードに突入すると、ダミーの条件で内部回路を動作させる。ここでは、ダミーの条件は、内部回路が通常動作時の電圧レベルよりも低い電圧レベルで動作させる。このため、プロービング時の電圧波形が通常動作時の電圧波形と異なる電圧レベルとなり、第三者に偽の動作を認識させることができる。
【００２７】
図８に、本実施例のリバースエンジニアリング保護機能の動作フローを示す。先ず、半導体チップが製造された段階、つまり製品出荷前に期待値生成部２１０は、通常動作時の期待値を生成し、これを不揮発性メモリ（例えば、メモリセルアレイ）に格納する（Ｓ１００）。通常動作時の期待値は、例えば、読出し動作、プログラム動作、消去動作のそれぞれにおいて生成することができる。
【００２８】
製品出荷後、測定値生成部２２０は、予め決められた監視地点Ｐ１、Ｐ２の電圧波形を監視し（Ｓ１０２）、監視地点Ｐ１、Ｐ２で得られた電圧波形から測定値を生成し、比較部２３０は、測定値と期待値とを比較する（Ｓ１０４）。ここで、読出し動作、プログラム動作、消去動作などの複数の通常動作の期待値が用意されている場合には、実際の動作に対応する期待値が使用される。この際、使用される期待値は、不揮発性メモリから読み出された、電源電圧や温度補正がされていない期待値、または検出された電源電圧Ｖｃｃの電圧および／または動作温度Ｔａに応じて補正された期待値であることが可能である。後者の期待値の使用は、プロービングの有無の判定精度をより高める。
【００２９】
次に、ＲＥ判定部２４０は、比較結果に基づきリバースエンジニアリングの有無を判定する（Ｓ１０６）。そして、保護モード実行部２５０は、リバースエンジニアリングありと判定された場合には、保護モードでフラッシュメモリを動作させる（Ｓ１０８）。
【００３０】
上記実施例では、通常動作時の期待値（基準時刻からパルス波形が立ち上がるまでの時間）を生成し、これを格納する例を示したが、リバースエンジニアリング時のパルス波形が立ち上がるまでの遅延時間（Ｔｑ−Ｔｐ）を自己計測することができるのであれば、必ずしも期待値を格納する必要はない。
【００３１】
次に、本発明の第２の実施例について説明する。図９に、本実施例のリバースエンジニアリング保護機能２００Ａの構成を示し、図２と同一構成については同一参照番号を付してある。第２の実施例は、リバースエンジニアリング保護機能２００Ａを有効または無効にするための保護モード設定部２６０を備えている。保護モード設定部２６０は、ユーザー入力に基づき保護機能のイネーブルまたはディスエーブルを設定する。例えば、イネーブルのときフラグを「１」にセットし、ディスエーブルのときフラグを「０」にリセットする。設定方法は任意であり、例えば、ホスト側から設定用のコマンドを入力したり、あるいは特定の外部入出力ピンに特定の電圧を印加することで、イネーブルまたはディスエーブルを設定する。保護モード実行部２５０は、保護モード設定部２６０にイネーブルが設定されている場合にのみ、フラッシュメモリに保護モードを実行させ、通常動作時の動作を隠蔽する。
【００３２】
図１０は、第２の実施例によるリバースエンジニアリング保護機能の動作フローである。保護モード実行部２５０は、保護モード設定部２６０の設定をチェックし、保護モードがイネーブルに設定されていれば、第１の実施例で説明したように、ＲＥ判定部の判定結果に応じて保護モードを実行し（Ｓ２０２）、保護モードがディスエーブルに設定されていれば、保護モードを実行させず、通常動作を実行させる（Ｓ２０４）。
【００３３】
このように本実施例によれば、保護モードの実行の有無を設定することで、例えば、フラッシュメモリの製造者自身が半導体チップ上でプロービングによるテストなどを実行するときに、真の電圧波形または動作波形を確認することができる。
【００３４】
上記実施例では、フラッシュメモリのリバースエンジニアリングの保護を例示したが、本発明は、これ以外の種々の半導体装置にも適用することができるのは言うまでもない。また、上記の例では図３（Ａ）等に示すように電圧が徐々に上昇する動作波形を例示したが、これは一例であり、例えば、通常動作時の動作波形が一定の電圧レベルで変化する場合に、ダミー動作において、電圧が徐々に上昇または低下するような偽の動作波形を生じさせるようにしてもよい。さらに、通常動作時に電圧が徐々に低下する動作波形である場合に、ダミー動作において、電圧が一定の電圧レベルで変化するような偽の動作波形を生じさせるようにしてもよい。
【００３５】
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００３６】
１００：フラッシュメモリ
１１０：メモリセルアレイ
１２０：入力バッファ
１３０：アドレスバッファ
１４０：コントローラ
１５０：ワード線選択回路
１６０：ページバッファ／センス回路
１７０：列選択回路
１８０：高電圧発生回路
１９０：電圧検出部
１９２：温度検出部
【図１】
2020136592.tif 000003
【図２】
2020136592.tif 000004
【図３】
2020136592.tif 000005
【図４】
2020136592.tif 000006
【図５】
2020136592.tif 000007
【図６】
2020136592.tif 000008
【図７】
2020136592.tif 000009
【図８】
2020136592.tif 000010
【図９】
2020136592.tif 000011
【図１０】
2020136592.tif 000012
【手続補正書】
【提出日】令和2年5月27日(2020.5.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
半導体集積回路をリバースエンジニアリングから保護する保護方法であって、
前記半導体集積回路の決められた監視地点の電圧波形を監視し、基準時刻から電圧波形が一定レベルに変化するまでの時間を測定するステップと、
前記測定された時間が通常動作時の前記監視地点の前記基準時刻から電圧波形が前記一定レベルに変化するまでの時間を示す期待値に該当するか否かを判定するステップと、
前記測定した時間が前記期待値より大きい場合、前記半導体集積回路が通常と異なるモードで動作するように前記半導体集積回路を制御するステップと、
を有する保護方法。
【請求項２】
前記測定するステップは、基準時刻から電圧波形が一定レベルに立ち上がるまでの時間を測定し、前記判定するステップは、前記測定された時間が前記期待値より遅延するとき、リバースエンジニアリングが行われていると判定する、請求項１に記載の保護方法。
【請求項３】
前記測定するステップは、前記監視地点の電圧波形から生成されたパルス信号が立ち上がるまでの時間を測定する、請求項２に記載の保護方法。
【請求項４】
前記制御するステップは、前記半導体集積回路を偽りの条件で動作させる、請求項１に記載の保護方法。
【請求項５】
前記制御するステップは、前記半導体集積回路の動作を停止させる、請求項１に記載の保護方法。
【請求項６】
前記半導体集積回路はＮＡＮＤ型フラッシュメモリを含み、前記基準時刻は、選択ワード線に電圧波形を印加するタイミングである、請求項１または２に記載の保護方法。
【請求項７】
保護方法はさらに、半導体集積回路の動作温度を検出するステップを含み、
前記期待値は、前記検出された動作温度に基づき補正される、請求項１または２に記載の保護方法。
【請求項８】
保護方法はさらに、半導体集積回路の電源電圧を検出するステップを含み、
前記期待値は、前記検出された電源電圧に基づき補正される、請求項１、２または７に記載の保護方法。
【請求項９】
保護方法はさらに、前記半導体集積回路を通常と異なるモードで動作させるか否かを設定するステップを含み、
前記制御するステップは、前記設定するステップによる設定に基づき前記半導体集積回路を動作させる、請求項１ないし８いずれか１つに記載の方法。
【請求項１０】
半導体集積回路をリバースエンジニアリングから保護する機能を備えた半導体装置であって、
前記半導体集積回路の通常動作時に監視地点で得られた電圧波形に関し、基準時刻から電圧波形が一定レベルに変化するまでの時間を示す期待値を生成する生成手段と、
前記監視地点で監視する電圧波形に関し、基準時刻から電圧波形が前記一定レベルに変化するまでの時間を測定する測定手段と、
前記測定手段により測定された時間が前記期待値よりも大きいか否かを判定する判定手段と、
前記期待値よりも大きいと判定された場合、前記半導体集積回路が通常と異なるモードで動作するように前記半導体集積回路を制御する制御手段と、
を有する半導体装置。
【請求項１１】
前記半導体集積回路は、ＮＡＮＤ型フラッシュメモリを含み、
前記測定手段は、読出し動作時にワード線に電圧波形を印加する基準時刻から当該電圧波形が立ち上がるまでの時間を測定し、
前記判定手段は、前記測定した時間と読出し動作時の期待値とを比較し、リバースエンジニアリングの有無を判定する、請求項１０に記載の半導体装置。
【請求項１２】
前記半導体集積回路は、ＮＡＮＤ型フラッシュメモリを含み、
前記測定手段は、書込み動作時にワード線に電圧波形を印加する基準時刻から当該電圧波形が立ち上がるまでの時間を測定し、
前記判定手段は、前記測定した時間と書込み動作時の期待値とを比較し、リバースエンジニアリングの有無を判定する、請求項１０に記載の半導体装置。