(57)【要約】【課題】第三者のＩＣ開封によるリバースエンジニアリングに対し高セキュリティを保ちつつ、必要に応じてユーザ自身が十分な解析できる電子回路装置が求められていた。【解決手段】本発明の電子回路装置は、データを記憶する主記憶手段と、クロック周波数の変化を検出する第１検出手段と、検出された変化を計数する第１計数手段と、外部より設定される所定の値を記憶する第１記憶手段と、第１計数手段で計数された値と第１記憶手段に記憶されている値とに基づいて前記主記憶手段のデータを消去することを指示する消去信号を出力する出力手段と、を備える。本構成によれば、ＩＣパッケージが開封される時に生じる変化をクロック周波数の変化から検出し、また、データ消去に関する基準値をユーザ自身が予め設定できるため、ユーザは使用用途に基づいてデータ消去タイミングの選択することが可能となる。【選択図】図１
2013003731.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する主記憶手段と、
クロック周波数の変化を検出する第１検出手段と、
前記検出された変化を計数する第１計数手段と、
外部より設定される所定の値を記憶する第１記憶手段と、
前記第１計数手段で計数された値と前記第１記憶手段に記憶されている値とに基づいて前記主記憶手段のデータを消去することを指示する消去信号を出力する出力手段と、
を具備する電子回路装置。
【請求項２】
前記出力手段は、前記第１計数手段で計数された値と前記第１記憶手段に記憶されている値とを比較する第１比較手段を備え、
前記第１比較手段は、比較の結果、前記第１計数手段で計数された値と前記第１記憶手段に記憶されている値とが一致した場合に前記消去信号を出力する、
請求項１に記載の電子回路装置。
【請求項３】
前記第１計数手段は、前記第１検出手段で検出された変化の回数を計数する、
請求項１に記載の電子回路装置。
【請求項４】
前記第１検出手段は、
第１の周波数を有するクロック信号のハイ幅又はロウ幅を第２の周波数を有するクロック信号を用いて計数する第２計数手段と、
所定の期待値を記憶する第２記憶手段と、
前記第２計数手段で計数された値と前記第２記憶手段に記憶されている値とを比較する第２比較手段と、
を備え、
前記第２比較手段は、比較の結果、前記第２計数手段で計数された値と前記第２記憶手段に記憶されている値とが一致しない場合に前記クロック周波数が変化したことを示す信号を前記第１計数手段に出力する、
請求項１から請求項３のいずれかに記載の電子回路装置。
【請求項５】
前記第１検出手段は、
第１の周波数を有するクロック信号のハイ幅又はロウ幅を第２の周波数を有するクロック信号を用いて計数する第２計数手段と、
所定の時間を計測する時間計測手段と、
前記第２計数手段で計数された値を記憶する第２記憶手段と、
前記第２記憶手段に記憶された値と前記時間計測手段で計測された所定の時間経過後に前記第２計数手段で計数された値とを比較する第２比較手段と、
を備え、
前記第２比較手段は、比較の結果、前記第２記憶手段で記憶された値と前記時間計測手段で計測された所定の時間経過後に前記第２計数手段で計数された値とが一致しない場合に前記クロック周波数が変化したことを示す信号を前記第１計数手段に出力する、
請求項１から請求項３のいずれかに記載の電子回路装置。
【請求項６】
所定の時間を計測する時間計測手段と、
前記時間計測手段で計測された所定の時間分異なる時刻におけるクロック周波数の変化を検出する第２検出手段と、
を更に具備し、
前記第１計数手段は、前記第１検出手段及び前記第２検出手段で検出された前記クロック周波数の変化を計数する、
請求項１から請求項３のいずれかに記載の電子回路装置。
【請求項７】
外部より設定される所定の値を記憶する第２記憶手段を更に具備し、
前記第１計数手段は、
前記第１検出手段で検出された変化を計数する第１変化計数手段と、
前記第２検出手段で検出された変化を計数する第２変化計数手段と、
を備え、
前記出力手段は、
前記第１変化計数手段で計数された値と前記第１記憶手段に記憶されている値とに基づいて第１の消去信号を出力する第１出力手段と、
前記第２変化計数手段で計数された値と前記第２記憶手段に記憶されている値とに基づいて第２の消去信号を出力する第２出力手段と、
を備える、
請求項６に記載の電子回路装置。
【請求項８】
前記第１検出手段は、
第１の周波数を有するクロック信号のハイ幅又はロウ幅を第２の周波数を有するクロック信号を用いて計数する第２計数手段と、
所定の期待値を記憶する第２記憶手段と、
前記第２計数手段で計数された値と前記第２記憶手段に記憶されている値とを比較する第２比較手段と、
を備え、
前記第２比較手段は、比較の結果、前記第２計数手段で計数された値と前記第２記憶手段に記憶されている値とが一致しない場合に前記クロック周波数が変化したことを示す第１不一致信号を前記第１計数手段に出力する、
請求項６に記載の電子回路装置。
【請求項９】
前記第２検出手段は、
前記第２計数手段で計数された値を記憶する第３記憶手段と、
前記第３記憶手段で記憶された値と前記時間計測手段で計測された所定の時間経過後に前記第２計数手段で計数された値とを比較する第３比較手段と、
を備え、
前記第３比較手段は、比較の結果、前記第３記憶手段で記憶された値と前記計測手段で計測された所定の時間経過後に前記第２計数手段で計数された値とが一致しない場合に前記クロック周波数が変化したことを示す第２不一致信号を前記第１計数手段に出力する、
請求項８に記載の電子回路装置。
【請求項１０】
前記時間計測手段は、前記第１不一致信号を入力することにより前記所定の時間の計測を開始する、
請求項９に記載の電子回路装置。
【請求項１１】
データを記憶する主記憶手段と
演算処理を行う処理手段と、
第１の周波数を有する第１クロック信号を出力する第１発振手段と、
第２の周波数を有する第２クロック信号を出力する第２発振手段と、
前記第１クロック信号及び前記第２クロック信号に基づいて前記第１クロック信号の周波数の変化を検出する検出手段と、
前記検出された変化を計数する計数手段と、
外部より設定される所定の値を記憶する記憶手段と、
前記計数手段で計数された値と前記記憶手段に記憶されている値とに基づいて消去信号を出力する出力手段と、
前記消去信号に基づいて前記主記憶手段に記憶されているデータを消去する消去手段と、
を具備する情報処理装置。
【請求項１２】
前記第１発振手段及び前記第２発振手段は、外部から加えられる応力に対してそれぞれ異なる周波数変動特性を示すことを特徴とする、
請求項１１に記載の情報処理装置。
【請求項１３】
前記第１発振手段及び前記第２発振手段は、光が外部から照射された場合にそれぞれ異なる周波数変動特性を示すことを特徴とする、
請求項１１に記載の情報処理装置。
【請求項１４】
外部より設定される所定の値を記録部に記憶する記憶ステップと、
クロック周波数の変化を検出する第１検出ステップと、
前記検出された変化を計数する計数ステップと、
前記計数ステップで計数された値と前記記憶ステップで記憶された値とに基づいて消去信号を出力する出力ステップと、
前記消去信号に基づいて主記憶部に記憶されているデータを消去する消去ステップと、
を有するデータ消去方法。
【請求項１５】
前記第１検出ステップにおける検出結果に基づいて所定の時間の計測を開始する時間計測ステップと、
前記時間計測ステップで計測された所定の時間分異なる時刻における前記クロック周波数の変化を検出する第２検出ステップと、
を更に有し、
前記計数ステップは、第１検出ステップ及び前記第２検出ステップで検出された変化を計数する、
請求項１４に記載のデータ消去方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、当該装置に含まれる電子回路装置及び当該電子回路装置を利用したデータ消去方法に関し、特に高いセキュリティ性を実現するデータ消去方法及び当該方法を実施するために用いられる電子回路装置並びに情報処理装置に関する。
【背景技術】
【０００２】
高いセキュリティ性が求められるアプリケーションに関して、その高セキュリティを保つためには、そのアプリケーションを実行する情報処理装置自身（例えば、マイクロコンピュータ）についても、より高いセキュリティ性が求められる。
【０００３】
情報処理装置自身が有するセキュリティ機能には、例えば、オンチップデバッグにおいて、セキュリティＩＤの認証を失敗した時にフラッシュメモリのデータを消去する機能やセキュリティコマンドを設定する機能が挙げられる。
【０００４】
しかしながら、第三者がＩＣ開封によるリバースエンジニアリングを行う事により、内蔵フラッシュＲＯＭのデータが読み出されてしまうというケースが想定される。このような手法を考慮すると、前述のセキュリティ機能は、十分なセキュリティを確保しているとは言えない。従って、ＩＣ開封によるリバースエンジニアリングに対しても、第三者によりフラッシュＲＯＭのデータを不正に読み出されて秘密データを悪用されるといった事態を未然に防ぐことができるセキュリティ機能が求められる。
【０００５】
そこで、電子データ処理システム用の集積回路チップの保護メモリ内に記憶された秘密データをリバースエンジニアリングにより解析することを防止する手法として、特許文献１に記載の技術が公開されている。
【０００６】
特許文献１に記載された集積回路チップは、秘密データを記憶する揮発性メモリと、チップをカプセル封じする材料の不透明層と、カプセル封じ材料によってカプセル封じされ且つ揮発性メモリに結合された保護回路を具備し、当該保護回路は、光にさらされる際に検知可能な変化をする電流特性を持つ光感知素子と、その光感知素子が光にさらされるときに生じる電流の変化を検知するための検知手段と、当該検知手段で電流の変化が検知された場合に揮発性メモリへの電力供給を切断するスイッチ手段と、から構成される。
【０００７】
当該構成によれば、カプセル封じ材料がチップから除去された場合、揮発性メモリと電源との結合が解除されて揮発性メモリ内の秘密データが消去される。従って、第三者のＩＣ開封によるリバースエンジニアリングに対しても高いセキュリティ機能を実現することができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平４−２５８８９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
製品に不具合が発生した場合には、ユーザは、その不具合の原因を特定するためにＩＣを開封してＩＣ内部の回路の動作を詳しく調査・検証する必要がある。その際には、メモリに格納された情報に関連する調査・検証も行われる。
【００１０】
しかしながら、上記の特許文献１に記載の技術を導入していると、ユーザは、メモリの情報が消去されないように、光の照射が全くない環境で、ＩＣの開封作業、及び、不具合の原因を特定するための様々な調査・検証を行わなければならない。
【００１１】
すなわち、ユーザが、ユーザ自身の製品を解析する場合にも、解析環境に厳しい条件を課すことになってしまい、解析作業の効率の著しい低下を招くだけでなく、十分な解析すらできないという状況が生じていた。
【課題を解決するための手段】
【００１２】
本発明の電子回路装置は、データを記憶する主記憶部と、クロック周波数の変化を検出する第１検出部と、前記検出された変化を計数する第１計数部と、外部より設定される所定の値を記憶する第１記憶部と、前記第１計数部で計数された値と前記第１記憶部に記憶されている値とに基づいて前記主記憶部のデータを消去することを指示する消去信号を出力する出力部と、を具備する。
【００１３】
上記構成とすることにより、第三者からのＩＣ開封に対しては高いセキュリティを保ちつつ、ユーザ自身からのＩＣ開封に対しては適切に解析作業を行える環境を提供することができる。
【００１４】
また、本発明の情報処理装置は、データを記憶する主記憶部と、演算処理を行う処理部と、第１の周波数を有する第１クロック信号を出力する第１発振部と、第２の周波数を有する第２クロック信号を出力する第２発振部と、前記第１クロック信号及び前記第２クロック信号に基づいて前記第１クロック信号の周波数の変化を検出する検出部と、前記検出された変化を計数する計数部と、外部より設定される所定の値を記憶する記憶部と、前記計数部で計数された値と前記記憶部に記憶されている値とに基づいて消去信号を出力する出力部と、前記消去信号に基づいて前記主記憶部に記憶されているデータを消去する消去部と、を具備する。
【００１５】
上記構成とすることにより、第三者からのＩＣ開封に対しては高いセキュリティを保ちつつ、ユーザ自身からのＩＣ開封に対しては適切に解析作業を行える環境を提供することができる。
【００１６】
また、本発明のデータ消去方法は、外部より設定される所定の値を記憶部に記憶する記憶ステップと、クロック周波数の変化を検出する検出ステップと、前記検出された変化を計数する計数ステップと、前記計数ステップで計数された値と前記記憶ステップで記憶された値とに基づいて消去信号を出力する出力ステップと、前記消去信号に基づいてデータを消去する消去ステップと、を有する。
【００１７】
上記方法によりデータが消去されることで、ユーザ自身からのＩＣ開封に対しては適切に解析作業を行える環境を担保しつつ、第三者からのＩＣ開封に対しては高いセキュリティを保つことが可能となる。
【発明の効果】
【００１８】
本発明によれば、第三者のリバースエンジニアリングに対して高いセキュリティ機能を実現しつつ、必要に応じてユーザ自身が適切に解析作業を実施できる装置及び方法を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態１に係る情報処理装置の構成例を示すブロック図である。
【図２】本発明の実施の形態１に係る情報処理装置の動作を示すフローチャートである。
【図３】本発明の実施の形態１に係る情報処理装置の動作を示すタイミングチャートである。
【図４】本発明の実施の形態２に係る電子回路装置の構成例を示すブロック図である。
【図５】本発明の実施の形態３に係る電子回路装置の構成例を示すブロック図である。
【図６】本発明の実施の形態３に係る情報処理装置の動作を示すフローチャートである。
【図７】本発明の実施の形態３に係る電子回路装置の別の形態の構成例を示すブロック図である。
【図８】本発明の実施の形態４に係る電子回路装置に含まれる時間計測用タイマの構成例を示すブロック図である。
【発明を実施するための形態】
【００２０】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。
【００２１】
図１は、本発明の実施の形態１に係る情報処理装置（マイクロコンピュータ１００）のブロック図である。
【００２２】
マイクロコンピュータ１００は、主に、内蔵発振クロック変化検出器１０１、内蔵発振器１４０、サブ内蔵発振器１５０、ＣＰＵコア１６０、フラッシュメモリ１７０、内部バス１８０、及び周辺ハードウェア１９０から構成される。
【００２３】
内蔵発振器１４０は、基準クロックを生成し、ＣＰＵコア１６０にＣＰＵクロックを、メモリーコントローラ等の周辺ハードウェア１９０に周辺ハードウェアクロックを、内蔵発振クロック変化検出器１０１に内蔵発振クロックをそれぞれ供給する第１の発振器である。
【００２４】
サブ内蔵発振器１５０は、内蔵発振クロックとは異なる周波数のクロック信号であるベースクロックを内蔵発振クロック変化検出器１０１に供給する。
【００２５】
ＣＰＵコア１６０は、プログラムに従って演算処理を行う処理部である。
【００２６】
フラッシュメモリ１７０は、マイクロコンピュータ１００のメインメモリであり、プログラムやデータを一時記憶する主記憶部である。
【００２７】
内部バス１８０は、マイクロコンピュータ内部の各ブロックを接続する経路である。ユーザは、内部バス１８０を通じて後述する変化回数期待値レジスタにアクセスし、所定の値を記憶させておくことができる。
【００２８】
周辺ハードウェア１９０は、例えばメモリーコントローラや割り込みコントローラなどであり、内蔵発振器１４０から出力された周辺ハードウェアクロックに従って動作する。
【００２９】
内蔵発振クロック変化検出器１０１は、さらに、クロック不一致検出部１１０と、期待変化回数比較部１２０とから構成される電子回路装置である。
【００３０】
クロック不一致検出部１１０は、ＩＣ開封時に生じる内蔵発振クロックの変化を検出する検出部である。期待変化回数比較部１２０は、クロック不一致検出部１１０で検出された上記の変化をカウントする変化回数カウンタ１２１でカウントされた値と変化回数期待値レジスタ１２２に記憶されている値とに基づいて消去信号を出力する出力部である。以下、各部について詳細に説明する。
【００３１】
クロック不一致検出部１１０は、内蔵発振クロックハイ/ロウ幅カウンタ１１１と、ハイ/ロウ幅期待値レジスタ１１２と、第２比較器１１３と、から構成される。
【００３２】
内蔵発振クロックハイ/ロウ幅カウンタ１１１は、内蔵発振器１４０から出力される内蔵発振クロックのハイ/ロウレベル期間をカウントする。具体的には、第１の発信器である内蔵発振器１４０から出力される内蔵発振クロックのハイ/ロウレベル期間を、第２の発振器であるサブ内蔵発振器１５０から出力されるベースクロックを用いてカウントする。
【００３３】
ハイ/ロウ幅期待値レジスタ１１２は、内蔵発振クロックハイ/ロウ幅カウンタ１１１でカウントされるハイ/ロウレベル期間の期待値を記憶する。
【００３４】
第２比較器１１３は、内蔵発振クロックハイ/ロウ幅カウンタ１１１でカウントされる値と、ハイ/ロウ幅期待値レジスタ１１２に記憶されている値とを常時比較する。比較の結果、これらの２つの値が不一致となった場合に、第２比較器１１３は不一致信号を後述する変化回数カウンタ１２１に出力する。不一致信号は、クロック周波数に変化が生じたことを示す信号である。例えば、ハイ/ロウ幅期待値レジスタ１１２に期待値として"７"の値を設定している場合であって、内蔵発振クロックハイ/ロウ幅カウンタ１１１のカウント値が"５"であった場合、両者の値は不一致となるので、クロック周波数が変化したとして不一致信号が出力される。当該不一致信号に基づいて、変化回数カウンタ１２１がインクリメントされる。なお、内蔵発振クロックハイ/ロウ幅カウンタ１１１でカウントされた値は、第２比較器１１３における比較処理が行われる毎にクリアされる。
【００３５】
ここで、ハイ/ロウ幅期待値レジスタ１１２は、内部バス１８０を介してアクセス可能な構成となっており、ユーザは、任意に期待値を設定することができる。なお、マイクロコンピュータ１００の動作保証温度範囲内での温度依存による内蔵発振クロック変動を考慮し、設定する期待値に一定のマージンを与えておくことが好ましい。このように設定することで、ＩＣ開封によって生じる応力の変化に依存するクロック変動と温度依存によるクロック変動とを区別することができる。例えば、動作保証温度範囲内での温度依存により生じる内蔵発振クロック変動により、内蔵発振クロックハイ/ロウ幅カウンタ１１１でカウントされる値に±１程度の誤差が生じる場合には、ハイ/ロウ幅期待値カウンタに当該誤差を考慮した一定の範囲の値を設定しておくとよい。ハイ/ロウ幅期待値レジスタ１１２に"６"、"７"、"８"の３つの値を設定しておけば、温度依存による内蔵発振クロック変動が生じても不一致信号は出力されない。
【００３６】
期待変化回数比較部１２０は、変化回数カウンタ１２１と、変化回数期待値レジスタ１２２と、第１比較器１２３と、から構成される。
【００３７】
変化回数カウンタ１２１は、上述した不一致信号を入力し、当該不一致信号に基づいてカウンタの値をインクリメントして記憶する。
【００３８】
変化回数期待値レジスタ１２２は、所定の値を記憶している。また、変化回数期待値レジスタ１２２は、内部バス１８を介してアクセス可能となっており、ユーザは記憶させておく値を任意に設定することができる。変化回数期待値レジスタ１２２に記憶される所定の値は、第１比較器１２３で行われる比較処理において比較の基準となる基準値であり、使用目的に応じて外部から設定可能な構成となっている。
【００３９】
第１比較器１２３は、変化回数カウンタ１２１でカウントされた値と変化回数期待値レジスタ１２２に記憶されている値とを比較する。第１比較器１２３は、比較の結果、変化回数カウンタ１２１にカウントされた値が、変化回数期待値レジスタ１２２に記憶されている値と一致した場合には、一致信号を生成して出力する。当該一致信号は、フラッシュメモリ１７０のデータを消去するトリガとなる消去信号である。当該一致信号が出力されることにより、図示せぬ消去部がフラッシュメモリ内のデータを消去する。消去部における消去方法としては、上記一致信号に基づいてフラッシュメモリへの給電を断つスイッチ部を設けることにより消去しても良いし、上記一致信号に基づいてセルフプログラミングフラッシュ消去コマンドを実行する消去コマンド実行部を設けることにより消去してもよい。
【００４０】
次に、図１に記載されたマイクロコンピュータ１００の動作について説明する。図２は、マイクロコンピュータ１００の動作に関するフローチャートである。
【００４１】
まず、第２比較器１１３が、ユーザが任意に設定したハイ/ロウ幅期待値レジスタ１１２のハイ/ロウ幅期待値と、現在の内蔵発振クロックハイ/ロウ幅カウンタ１１１のカウント値、すなわち、内蔵発振クロックのハイ／ロウレベル期間をカウントした値と、を比較する（ステップＳ１０１）。
【００４２】
第２比較器１１３は、ステップＳ１０１における比較の結果２つの値が不一致だった場合は、不一致信号を出力する。変化回数カウンタ１２１は、当該不一致信号が入力されるとカウンタの値を一回インクリメントしてカウント値を記憶する（ステップＳ１０２）。
【００４３】
第１比較器１２３は、ステップＳ１０２によってインクリメントされた変化回数カウンタ１２１のカウント値と、ユーザにより任意に設定された変化回数期待値レジスタ１２２に格納された値とを比較する（ステップＳ１０３）。第１比較器１２３は、比較の結果、これら２つの値が一致した場合は一致信号を出力する。一方、これら２つの値が一致しなかった場合は、再び上記Ｓ１０１〜Ｓ１０３の処理が繰り返される。
【００４４】
上記一致信号に基づいてセルフ消去コマンドが実行され、フラッシュメモリ内のデータが消去される（ステップＳ１０４）。
【００４５】
次に、クロック不一致検出部１１０で行われる内蔵発振クロックの変動検出における、内蔵発振クロックのハイ/ロウ幅のカウント方法を図３のタイミングチャートを用いて説明する。
【００４６】
ＣＬＫは、内蔵発振器１４０から出力される内蔵発振クロックを示しており、ＨＣＬＫはそのハイ幅を、ＬＣＬＫはそのロウ幅をそれぞれ分けて表記している。また、ＢＣＬＫは、サブ内蔵発振器１５０から出力されるベースクロックを示している。また、ここでは、図１の内蔵発振クロックハイ/ロウ幅カウンタと不一致信号について、ハイ幅カウンタとロウ幅カウンタ及びハイ幅不一致信号とロウ幅不一致信号というようにハイ・ロウに関して個別に表記している。
【００４７】
この例では、ＣＬＫのハイ幅及びロウ幅の両方ともＢＣＬＫを基準として５カウントされているため、ハイ幅カウンタ及びロウ幅カウンタのカウント値は共に"５"となる。一方、ハイ／ロウ幅期待値レジスタには"７"の値が記憶されているため、第２比較器１１３に含まれるハイ幅比較器及びロウ幅比較器は、ハイ幅不一致信号とロウ幅不一致信号をそれぞれ生成して変化回数カウンタへ出力する。変化回数期待値レジスタには予め値"Ｍ"が記憶されているため、変化回数カウンタの値がＭに到達した場合にセルフプログラミング消去コマンド起動トリガとなる一致信号が出力される。
【００４８】
なお、クロック不一致検出部１１０は、内蔵発振クロックのハイ幅とロウ幅の両方を個別にカウントする構成に限るものではない。クロック不一致検出部１１０は、どちらか片方をカウントして１つの不一致信号を生成しても良いし、ハイ／ロウの組の1周期を単位としてＢＣＬKを用いてカウントして１つの不一致信号を生成する構成であっても良い。
【００４９】
なお、内蔵発振クロックとベースクロックとが、加えられる応力や光の照射に対して同様のクロック変動をしてしまうと、内蔵発振クロックのカウントにおいて、常に同じ値をカウントしてしまい、内蔵発振クロックの変動を検出する事ができない。そこで、ベースクロック（ＢＣＬＫ）を出力するサブ内蔵発振器１５０は、コンデンサ、抵抗等の配置をメインの内蔵発振クロック（ＣＬＫ）を出力する内蔵発振器１４０と異なる構成とし、クロックの変化の仕方に相違を持たせる。このように構成することで、ベースクロックもＩＣ開封による応力の変化や光の照射によって変動するが、内蔵発振クロックとは周波数変動特性が異なる為、内蔵発振クロックの変動を検出する事が可能となる。
【００５０】
以上説明したように、本実施の形態１に係る情報処理装置は、データを記憶する主記憶部であるフラッシュメモリ、演算処理を行う処理部であるＣＰＵコア、第１の周波数を有する第１クロック信号を出力する第１発振部である内蔵発振器、といった情報処理装置の基本構成に加え、次の構成要素を有している。すなわち、第２の周波数を有する第２クロック信号を出力する第２発振部と、前記第１クロック信号及び前記第２クロック信号に基づいて前記第１クロック信号の周波数の変化を検出する検出部と、前記検出された変化を計数する計数部と、外部より設定される所定の値を記憶する記憶部と、前記計数部で計数された値と前記記憶部に記憶されている値とに基づいて消去信号を出力する出力部と、前記消去信号に基づいて前記主記憶部に記憶されているデータを消去する消去部と、を備えることを特徴としている。
【００５１】
また、本実施の形態１に係る情報処理装置に含まれる電子回路装置は、データを記憶する主記憶部と、クロック周波数の変化を検出する第１検出部と、前記検出された変化を計数する第１計数部と、外部より設定される所定の値を記憶する第１記憶部と、前記第１計数部で計数された値と前記第１記憶部に記憶されている値とに基づいて前記主記憶部のデータを消去することを指示する消去信号を出力する出力部と、を備える。
【００５２】
このように構成することで、ＩＣパッケージが開封される場合に必然的に生じる応力や外光照射などをクロック周波数の変化で捉え、当該変化量とユーザが予め記憶させた値とが所定の条件を満たした場合に消去信号が出力される。従って、リバースエンジニアリングに対して高いセキュリティを保ちつつ、ユーザ自ら解析を行う場合は、消去信号が出力されないように記憶させる値を設定しておくことができる。
【００５３】
例えば、第三者からＩＣを開封された時点で瞬間的に主記憶部に記憶されているデータを消去したい場合は、第１記憶部に記憶させる値を"１"に設定する。このように設定することで、ＩＣ開封による応力の変化に起因するクロックの変動が検出された場合、即座に主記憶部に記憶されているデータが消去される。一方、ユーザによる正当な解析作業によりＩＣパッケージを開封する必要がある場合には、開封された瞬間にデータが消去されてしまう事を避けるために、第１記憶部に記憶させる値を非常に大きな値に設定する。このように、ユーザが必要に応じて第１記憶部の値を変更できる構成とすることでユーザの使用用途に応じて、データ消去のタイミングを変更することができる。
【００５４】
なお、前記出力部は、前記第１計数部で計数された値と前記第１記憶部に記憶されている値とを比較する第１比較部を備え、前記第１比較部は、比較の結果、前記第１計数部で計数された値と前記第１記憶部に記憶されている値とが一致した場合に消去信号を出力する構成とすることができる。このように構成することで比較的単純な電子回路で発明を実現することができる。
【００５５】
また、前記第１計数部は、前記検出部で検出された変化の回数を計数する構成とすることができる。検出されるクロック周波数の変化のうち、その変化の回数を計数する構成とすることで、比較的単純な電子回路で発明を実現することができる。
【００５６】
また、前記検出部は、第１の周波数を有するクロック信号のハイ幅又はロウ幅を第２の周波数を有するクロック信号を用いて計数する第２計数部と、所定の期待値を記憶する第２記憶部と、前記第２計数部で計数された値と前記第２記憶部に記憶されている値とを比較する第２比較部と、を備え、前記第２比較部は、比較の結果、前記第２計数部で計数された値と前記第２記憶部に記憶されている値とが一致しない場合に前記クロック周波数が変化したことを示す信号を前記第１計数部に出力する構成とすることができる。このように周波数の異なる２つのクロック信号を用いることでクロック周波数の変動検出が容易となる。
【００５７】
また、前記情報処理装置の前記第１発振部及び前記第２発振部は、光が外部から照射された場合にそれぞれ異なる周波数変動特性を示すことを特徴としても良いし、外部から加えられる応力に対してそれぞれ異なる周波数変動特性を示すことを特徴としても良い。このように第１発振部と第２発振部とが所定の条件下において異なる発振特性を持つことで周波数変動を容易に検出することができる。このような周波数変動特性の差異は、第１発振部と第２発振部における抵抗やキャパシタや光感知素子等の配列や組み合わせに差異を持たせることで実現することができる。
【００５８】
また、本実施の形態１に係るデータ消去方法は、外部より設定される所定の値を記憶部に記憶する記憶ステップと、クロック周波数の変化を検出する検出ステップと、前記検出された変化を計数する計数ステップと、前記計数ステップで計数された値と前記記憶ステップで記憶された値とに基づいて消去信号を出力する出力ステップと、前記消去信号に基づいて主記憶部に記憶されているデータを消去する消去ステップと、を有する。このような手順に従ってデータが消去される構成とすることで、使用目的に応じてデータの消去タイミングを変更することができる。
【００５９】
なお、上記説明では、変化回数カウンタ１２１は、クロック周波数の変化回数をカウントする構成を示したがこれに限るものではなく、クロック周波数の変化の量も含めてカウントしても良い。例えば、ハイ／ロウ幅期待値レジスタ１１２に記録されている値が"９"で、内蔵発振クロックハイ／ロウ幅カウンタ１１０のカウント値が"５"であった場合、第２比較器１１３は、これらの値の差異である"４"に対応する情報を不一致信号に含めて変化回数カウンタ１２１に出力し、変化回数カウンタ１２１で４回インクリメントされる構成であっても良い。
【００６０】
なお、上記説明では変化回数期待値レジスタ１２２に記憶されている期待値と変化回数カウンタ１２１のカウント値が同一であった場合に一致信号を送信する場合について説明したが、これに限るものではない。例えば変化回数カウンタ１２１の値が変化回数期待値レジスタ１２２に記憶されている期待値を上回った場合に一致信号を出力する構成であっても良い。
【００６１】
（実施の形態２）
本実施の形態２に係る発明は、クロック周波数を時系列で比較することでクロック周波数の変化を検出し、第三者のリバースエンジニアリングを防止することを特徴としている。
【００６２】
図４は、本実施の形態２に係る電子回路装置である内蔵発振クロック変化検出器２０１のブロック図である。なお、実施の形態１で説明したブロックと同一のブロックについては一部説明を省略する。
【００６３】
本実施の形態２に係るクロック不一致検出部２１０は、内蔵発振クロックハイ／ロウ幅カウンタ１１１、タイマ２１１、ハイ／ロウ幅キャプチャレジスタ２１２、内蔵発振クロックハイ／ロウ幅現在値レジスタ２１３、内蔵発振クロックハイ／ロウ幅保持値レジスタ２１４、第２比較器２１５、から構成される。
【００６４】
タイマ２１１は、予め設定されている時間経過毎にキャプチャトリガ信号を生成してハイ／ロウ幅キャプチャレジスタ２１２及び内蔵発振クロックハイ／ロウ幅現在値レジスタ２１３に出力する。
【００６５】
ハイ／ロウ幅キャプチャレジスタ２１２は、タイマから入力したキャプチャトリガ信号をトリガとして内蔵発振クロックハイ／ロウ幅カウンタ１１１のカウント値をキャプチャし、キャプチャしたカウント値を内蔵発振クロックハイ／ロウ幅現在値レジスタ２１３へ出力する。
【００６６】
内蔵発振クロックハイ／ロウ幅現在値レジスタ２１３は、ハイ／ロウ幅キャプチャレジスタから出力されたカウント値を記憶する。また、タイマ２１１から入力したキャプチャトリガ信号をトリガとして、現在記憶しているカウント値を内蔵発振クロックハイ／ロウ幅保持値レジスタ２１４に出力し、ハイ／ロウ幅キャプチャレジスタ２１２から新たに出力されるカウント値を記憶する。
【００６７】
内蔵発振クロックハイ／ロウ幅保持値レジスタ２１４は、内蔵発振クロックハイ／ロウ幅現在値レジスタ２１３から出力されたカウント値を記憶する。
【００６８】
第２比較器２１５は、内蔵発振クロックハイ／ロウ幅保持値レジスタ２１４と内蔵発振クロックハイ／ロウ幅現在値レジスタ２１３にそれぞれ記憶されている値を比較する。比較タイミングは、例えば、タイマ２１１で計測される所定の時間毎に比較を行う。当該比較の結果、これらの２つの値が異なる場合は、不一致信号を生成し、変化回数カウンタ１２１へ出力する。その後の動作は実施の形態１と同様であるため説明を省略する。
【００６９】
以上の構成によれば、タイマに設定された所定の時間分異なる時刻におけるカウント値を比較できるため、時系列で比較した結果異なるカウント値が生じた場合に不一致信号を生成し、変化回数カウンタ１２２の値をインクリメントしていく。そして変化回数カウンタ１２２の値と変化回数期待値レジスタ１２２に記憶されている値とに基づいて消去信号が出力され、フラッシュメモリのデータを消去することができる。
【００７０】
すなわち、本実施の形態２に係る電子回路装置は、クロック周波数の変化を検出する検出部と、前記検出された変化を計数する第１計数部と、外部より設定される所定の値を記憶する第１記憶部と、前記第１計数部で計数された値と前記第１記憶部に記憶されている値とに基づいて消去信号を出力する出力手段と、を備え、前記検出手段は、第１の周波数を有するクロック信号のハイ幅又はロウ幅を第２の周波数を有するクロック信号を用いて計数する第２計数部と、所定の時間を計測する時間計測部と、前記第２計数部で計数された値を記憶する第２記憶部と、前記第２記憶部で記憶された値と前記時間計測部で計測された所定の時間経過後に前記第２計数部で計数された値とを比較する第２比較部と、から構成され、前記第２比較部は、比較の結果、前記第２記憶部で記憶された値と前記時間計測部で計測された所定の時間経過後に前記第２計数部で計数された値とが一致しない場合に前記クロック周波数が変化したことを示す信号を前記第１計数部に出力することを特徴とする。
【００７１】
また、本実施の形態２に係るデータ消去方法は、外部より設定される所定の値を記憶部に記憶する記憶ステップと、クロック信号のハイ幅又はロウ幅を計数する第１計数ステップと、所定の時間の計測を開始する時間計測ステップと、前記時間計測ステップで計測された所定の時間後にクロック信号のハイ幅又はロウ幅を計数する第２計数ステップと、前記第１計数ステップ及び前記第２計数ステップで計数された値を比較する比較ステップと、前記前記第１計数ステップで計数された値と前記第２ステップで計数された値が同一でない回数を計数する第３計数ステップと、前記記憶ステップで記憶した値と前記第３計数ステップで計数された値とに基づいて消去信号を出力する出力ステップと、前記消去信号に基づいてデータを消去する消去ステップと、を有する。
【００７２】
ＩＣ開封によるリバースエンジニアリングを行うと外光が電子回路装置に照射されるため内蔵発振クロックに変化を生じる。従って、開封前と開封後で内蔵発振クロックハイ／ロウ幅カウンタでカウントされる値が変化する。本実施の形態２の電子回路装置は、異なる時刻で得られたカウント値を比較することによりクロック変化を検出することができるため、応力を装置に与えずにＩＣを開封することができたとしても開封前後で装置に照射される光の変化量に基づいてＩＣが開封されたことを検出し、適切にデータを消去することができる。なお、ユーザ自らが解析のために開封する場合には、変化回数期待値レジスタに大きな値を設定しておけば、ＩＣを開封しても第１比較器１２３から直ちに消去信号が出力されることがないため、適切に解析作業を行うことができる。
【００７３】
なお、第２比較器２１５は、実施の形態１の場合と同様、動作保証温度範囲内での温度依存を考慮し、内蔵発振クロックハイ／ロウ幅保持値レジスタ２１４と内蔵発振クロックハイ／ロウ幅現在値レジスタ２１５にそれぞれ記憶されている値が、所定の誤差以上の差異がある場合に不一致信号を生成するよう構成しても良い。
【００７４】
（実施の形態３）
本実施の形態３に係る電子回路装置は、実施の形態１で説明した応力による内蔵発振クロックの変化を検出する第１のクロック不一致検出部と、実施の形態２で説明した内蔵発振クロックの時系列変化を検出する第２のクロック不一致検出部を組み合わせた構成とすることを特徴とする。以下図面を用いて説明する。
【００７５】
図５は、本実施の形態３に係る内蔵発振クロック変化検出器３０１のブロック図である。なお、実施の形態１及び２で説明したブロックと同一のブロックについては一部説明を省略する。
【００７６】
本実施の形態３の内蔵発振クロック変化検出器３０１は、大きく分けて、第１クロック不一致検出部３１０と、期待変化回数比較部３２０と、第２クロック不一致検出部３３０と、から構成される。
【００７７】
第１クロック不一致検出部３１０は、ＩＣが開封された時の応力の変化により生じる内蔵発振クロックの最初の変動を検出する第１の検出部である。第２クロック不一致検出部３３０は、上記最初の変動が検出された場合、その最初の変動以降にＩＣ開封後の光の照射により発生する内蔵発振クロックの変化を時系列的に検出する第２の検出部である。期待変化回数比較部３２０は、第１クロック不一致検出部３１０及び第２クロック不一致検出部３３０により検出された変動をカウントする。そして、当該カウントした値が予め設定された値と一致した場合に消去信号を出力する出力部である。以下、各ブロックについて詳細に説明する。
【００７８】
クロック不一致検出部３１０は、内蔵発振クロックハイ/ロウ幅カウンタ１１１と、ハイ/ロウ幅期待値レジスタ１１２と、第２比較器１１３と、ハイ/ロウ幅キャプチャレジスタ３１２と、から構成される。
【００７９】
内蔵発振クロックハイ/ロウ幅カウンタ１１１は、内蔵発振器から出力される内蔵発振クロックのハイ/ロウレベル期間を、サブ内蔵発振器から出力されるベースクロックを用いてカウントする。
【００８０】
ハイ/ロウ幅期待値レジスタ１１２は、内蔵発振クロックハイ/ロウ幅カウンタ１１１でカウントされるハイ/ロウレベル期間の期待値を記憶する。内蔵発振クロックハイ/ロウ幅期待値レジスタ１１２は、外部より内部バス１８０を介してアクセス可能な構成となっており、ユーザは、任意に期待値を設定することができる。
【００８１】
第２比較器１１３は、内蔵発振クロックハイ/ロウ幅カウンタ１１１でカウントされる値と、ハイ/ロウ幅期待値レジスタ１１２に記憶されている値とを常時比較する。比較の結果、これらの２つの値が不一致となった場合に、第２比較器１１３は第１の不一致信号を後述するハイ／ロウ幅キャプチャレジスタ３１２、タイマ３３１及び変化回数カウンタ３２１に出力する。
【００８２】
ハイ/ロウ幅キャプチャレジスタ３１２は、第２比較器１１３から出力される第１不一致信号又は後述のタイマ３３１から出力されるキャプチャトリガ信号をトリガとして内蔵発振クロックハイ/ロウ幅カウンタ１１１のカウント値をキャプチャする。第１不一致信号に基づいてキャプチャされたカウント値は、後述の内蔵発振クロックハイ／ロウ幅保持値レジスタ３３４へ、キャプチャトリガ信号に基づいてキャプチャされた値は、後述の内蔵発振クロックハイ／ロウ幅現在値レジスタ３３３へそれぞれ出力される。
【００８３】
第２クロック不一致検出部３３０は、タイマ３３１と、内蔵発振クロックハイ/ロウ幅現在値レジスタ３３３と、内蔵発振クロックハイ/ロウ幅保持値レジスタ３３４と、第３比較器３３５と、から構成される。
【００８４】
タイマ３３１は、第２比較器１１３から出力された第１不一致信号をトリガとして時間計測を開始し、予め設定されている時間経過後にキャプチャトリガ信号を生成してハイ／ロウ幅キャプチャレジスタ３１２に出力する。
【００８５】
内蔵発振クロックハイ/ロウ幅保持値レジスタ３３４は、ハイ／ロウ幅キャプチャレジスタ３１２が第１不一致信号をトリガとしてキャプチャした値を入力して記憶する。すなわち、ハイ／ロウ幅キャプチャレジスタ３１２は、第１不一致信号をトリガとして内蔵発振クロックハイ/ロウ幅カウンタ１１１からカウント値を取り込み、内蔵発振クロックハイ/ロウ幅保持値レジスタ３３４へ取り込んだカウント値を出力する。
【００８６】
内蔵発振クロックハイ/ロウ幅現在値レジスタ３３３は、ハイ／ロウ幅キャプチャレジスタ３１２がキャプチャトリガ信号をトリガとしてキャプチャした値を入力して記憶する。すなわち、ハイ／ロウ幅キャプチャレジスタ３１２は、キャプチャトリガ信号をトリガとして内蔵発振クロックハイ/ロウ幅カウンタ１１１からカウント値を取り込み、内蔵発振クロックハイ/ロウ幅現在値レジスタ３３３へ取り込んだカウント値を出力する。
【００８７】
第３比較器３３５は、内蔵発振クロックハイ/ロウ幅保持値レジスタ３３４に記憶された値と、内蔵発振クロックハイ/ロウ幅現在値レジスタ３３３に記憶された値とを比較する。比較の結果、これらの２つの値が不一致となった場合に、第３比較器３３５は第２の不一致信号を出力する。第３比較器３３５より出力された第２不一致信号は、変化回数カウンタ３２１に入力される。
【００８８】
期待変化回数比較部３２０は、変化回数カウンタ３２１と、変化回数期待値レジスタ１２２と、第１比較器１２３と、から構成される。
【００８９】
変化回数カウンタ３２１は、上述した第１不一致信号及び第２不一致信号を入力し、これらの信号が入力される度にカウンタの値をインクリメントして記憶する。
【００９０】
変化回数期待値レジスタ１２２は、外部より設定される所定の値を記憶する。変化回数期待値レジスタ１２２は、内部バス１８０を介してアクセス可能となっており、ユーザは記憶させておく値を任意に設定することができる。
【００９１】
第１比較器１２３は、変化回数期待値レジスタ１２２に記憶されている値と変化回数カウンタ３２１に記憶されている値を比較する。第１比較器１２３は、比較の結果、変化回数カウンタ１２３に記憶されている値が変化回数期待値レジスタ１２２に記憶されている値と一致した場合は一致信号を生成して出力する。
【００９２】
次に、本実施の形態に関する内蔵発振クロック変化検出器３０１の動作を図６のフローチャートを用いて説明する。なお、ステップＳ１０１〜Ｓ１０３は、図３に示すフローチャートのステップステップＳ１０１〜Ｓ１０３と同一であるため説明を省略する。
【００９３】
Ｓ１０３において、変化回数カウンタ３２１に記憶されている値と変化回数期待値レジスタ１２２に記憶されている値とが異なる場合、ハイ/ロウ幅保持値レジスタ３３４は、ハイ/ロウ幅キャプチャレジスタ３１２がキャプチャした内蔵発振クロックハイ/ロウ幅カウンタ１１１のカウント値を格納する（ステップＳ１０４）。
【００９４】
次に、ハイ/ロウ幅現在値レジスタ３３３は、タイマ３３１によって作り出される所定の時間経過後にハイ/ロウ幅キャプチャレジスタ３１２がキャプチャした内蔵発振クロックハイ/ロウ幅カウンタ１１１のカウント値を格納する（ステップＳ１０５）。
【００９５】
次に、第３比較器３３５は、ハイ/ロウ幅保持値レジスタ３３４に格納されている過去のカウント値とハイ/ロウ幅現在値レジスタ３３３に格納されている現在のカウント値とを比較する（ステップＳ１０６）。
【００９６】
上記比較の結果、上記２つのカウント値が一致する場合は、ステップＳ１０１の前段に戻って待機する。一方、比較の結果、上記２つのカウント値が一致しない場合は、第３比較器は、不一致信号を生成して変化回数カウンタ３２１に出力し、変化回数カウンタ３２１の値が一つインクリメントされる（ステップＳ１０７）。
【００９７】
次に、第１比較器１２３は、変化回数カウンタ３２１の値と変化回数期待値レジスタ１２２の値を比較する。これらの値が同一であった場合は一致信号を生成して出力し、同一でない場合はステップＳ１０４の前段に戻る（ステップＳ１０８）。
【００９８】
上記一致信号がトリガとなってセルフプログラミング消去コマンドを起動され、内蔵フラッシュＲＯＭのデータが一斉に消去される（ステップＳ１０９）。
【００９９】
以上の構成によれば、応力が加えられた場合に生じるクロック変動と時系列で現れるクロック変動の両方を用いてフラッシュメモリ内のデータを消去するかどうかを判断することができる。
【０１００】
なお、上記説明では、第１クロック不一致検出部と第２クロック不一致検出部が直列的に配置される構成を示したがこれに限るものではなく、第１・第２クロック不一致検出部をパラレルに配置する構成であっても良い。図７は、別の変化形態の内蔵発振クロック変化検出器４０１のブロック構成を示している。
【０１０１】
内蔵発振クロック変化検出器４０１は、第１クロック不一致検出部４１０と第２クロック検出部４３０の２つの検出手段及び第１期待変化回数比較部４２０と第２期待変化回数比較部４４０の２つの比較手段を備える。内部の各ブロックの機能は上述しているため一部説明を省略する。
【０１０２】
第１期待変化回数比較部４２０は、第１クロック不一致検出部４１０より出力される第１不一致信号を入力し、変化回数期待値レジスタ４２２の値と変化回数カウンタ４２１の値が一致した場合に第１一致信号を出力する。また、第２期待変化回数比較部４４０も、第２クロック不一致検出部４３０より出力される第２不一致信号を入力し、変化回数期待値レジスタ４４２の値と変化回数カウンタ４４１の値が一致した場合に第２一致信号を出力する。
【０１０３】
消去コマンド実行部４５０は、第１一致信号と第２一致信号を入力し、この２つの一致信号が入力された場合に消去コマンドを実行してフラッシュメモリのデータを消去する。なお、２つの一致信号の入力タイミングは同一である必要はない。
【０１０４】
以上説明したように、本実施の形態３に係る電子回路装置は、クロック周波数の変化を検出する第１検出部と、所定の時間を計測する時間計測部と、前記時間計測部で計測された所定の時間分異なる時刻における前記クロック周波数の変化を検出する第２検出部と、前記第１検出部及び前記第２検出部で検出された前記クロック周波数の変化を計数する第１計数部と、外部より設定される所定の値を記憶する第１記憶部と、前記第１計数部で計数された値と前記第１記憶部に記憶されている値とに基づいて消去信号を出力する出力部と、を具備する。
【０１０５】
また、前記第１検出部は、第１の周波数を有するクロック信号のハイ幅又はロウ幅を第２の周波数を有するクロック信号を用いて計数する第２計数部と、所定の期待値を記憶する第２記憶部と、前記第２計数部で計数された値と前記第２記憶部に記憶されている値とを比較する第２比較部と、を備え、前記第２比較部は、比較の結果、前記第２計数部で計数された値と前記第２記憶部に記憶されている値とが一致しない場合に前記クロック周波数が変化したことを示す第１不一致信号を前記第１計数部に出力する構成とすることができる。
【０１０６】
また、前記第２検出部は、前記第２計数部で計数された値を記憶する第３記憶部と、前記第３記憶部で記憶された値と前記時間計測部で計測された所定の時間経過後に前記第２計数部で計数された値とを比較する第３比較部と、を備え、前記第３比較部は、比較の結果、前記第３記憶部で記憶された値と前記時間計測部で計測された所定の時間経過後に前記第２計数部で計数された値とが一致しない場合に前記クロック周波数が変化したことを示す第２不一致信号を前記第１計数部に出力する構成とすることができる。
【０１０７】
また、前記時間計測部は、前記第１不一致信号を入力することにより前記所定の時間の計測を開始する構成とすることができる。
【０１０８】
また、所定の値を記憶する第４記憶部を更に備え、前記第１計数部は、前記第１検出部で検出された変化を計数する第１変化計数部と、前記第２検出部で検出された変化を計数する第２変化計数部と、から構成され、前記出力部は、前記第１変化計数部で計数された値と前記第１記憶部に記憶されている値とに基づいて第１の消去信号を出力する第１出力部と、前記第２変化計数部で計数された値と前記第４記憶部に記憶されている値とに基づいて第２の消去信号を出力する第２出力部と、を備える構成とすることができる。
【０１０９】
上記第１消去信号及び第２消去信号が出力された場合、つまり、２つの検出部でともにクロック周波数の変化が検出された場合に、別途設けられた消去部が、主記憶部に格納されているデータを消去するよう構成しても良い。
【０１１０】
（実施の形態４）
本実施の形態では、実施の形態３に係る電子回路装置が具備するタイマの計測時間を変更できる構成としたことを特徴とする。
【０１１１】
図８は、本実施の形態４に係る内蔵発振クロック変化検出器に含まれるタイマ５３０のブロック図である。
【０１１２】
タイマ５３０は、所定の時間を計測する時間計測部であり、図４のタイマ２１１や図７のタイマ４３１に対応する。タイマ５３０は、コンペアレジスタ５３１と、セレクタ５３２と、ＡＮＤ回路５３３と、周波数変化回数タイマカウンタ５３４と、比較器５３５と、から構成される。
【０１１３】
コンペアレジスタ５３１は、時間計測の基準となる値が記憶されている。
【０１１４】
セレクタ５３２は、分周されて複数の周波数をもつベースクロック信号の中から１つの信号を選び出す。ユーザはセレクタ５３２にアクセス可能であり、どの周波数をもつベースクロック信号を選び出すかを設定できる構成となっている。
【０１１５】
ＡＮＤ回路５３３は、タイマ５３０より出力された不一致信号と、前記セレクタ４３２から出力された信号とを入力して論理積をとって信号を出力する。
【０１１６】
周波数変化回数タイマカウンタ５３４は、ＡＮＤ回路５３３から出力された信号の周波数変化をカウントする。
【０１１７】
比較器５３５は、周波数変化回数タイマカウンタ５３４でカウントされたカウント値とコンペアレジスタ５３１に記憶されている基準値とを比較する。比較の結果、上記カウント値と基準値とが一致した場合にキャプチャトリガ信号が出力される。
【０１１８】
上記構成によれば、ユーザからの設定によりセレクタ５３６で異なる周波数をもつクロック信号から１つのクロック信号を選び出すことができ、不一致信号との論理積をとって出力信号をカウントできるので、ユーザがタイマ５３０で計測する時間を設定することができる。
【０１１９】
なお、タイマで計測する時間の設定方法としては、上記方法に限定されるものではなく、例えばコンペアレジスタにユーザが内部バスを通じてアクセス可能な構成とすることもできる。すなわち、セレクタ５３６を取り除き、所定の周波数をもつクロック信号と不一致信号との論理積出力を周波数変化回数タイマカウンタがカウントし、コンペアレジスタにユーザが設定した基準値と周波数変化回数タイマカウンタでカウントされたカウント値とを比較するよう構成しても良い。
【０１２０】
以上、各実施の形態で説明したように、本発明によれば、ユーザがフラッシュメモリの消去タイミングを任意に選択可能となる為、ユーザの使用用途に合わせてセキュリティレベルの設定が可能となる。従って、第三者のリバースエンジニアリングに対して高いセキュリティを保ちつつ、ユーザ自身による十分な解析も可能となる。
【０１２１】
なお、変化回数レジスタ及びハイ／ロウ幅期待値レジスタは、別途設けられた設定部により格納する値を設定できる。すなわち、設定部は、ユーザからの指示に基づいて変化回数レジスタ又はハイ／ロウ幅期待値レジスタに記憶させる所定の値を設定するよう構成しても良い。
【０１２２】
また、変化回数レジスタやハイ／ロウ幅期待値レジスタにアクセスをするためには所定の認証や手順を踏んだ場合にアクセスできる構成とすることもできる。この場合、新たにアクセス管理部を別途備え、当該アクセス管理部が、所定の認証処理や設定手順に基づいた上記レジスタへのアクセスが行われたかを判断する判断処理を行う構成であっても良い。当該アクセス管理部で、適切なユーザからのレジスタアクセス要求であることを確認した後に、ユーザが変化回数レジスタ又はハイ／ロウ幅期待値レジスタにアクセスし、これらのレジスタに格納されている基準値を変更できる構成であっても良い。
【０１２３】
なお、上記説明では消去信号に基づいて主記憶部であるフラッシュメモリのデータを消去する構成について示したがこれに限定するものではなく、別の記憶手段に記憶されている秘密データを消去する構成であっても良い。
【０１２４】
その他、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【０１２５】
１００：マイクロコンピュータ        １０１：内蔵発振クロック変化検出器
１１０：クロック不一致検出部        １１１：内蔵発振クロックハイ／ロウ幅カウンタ
１１２：ハイ／ロウ幅期待値レジスタ  １１３：第２比較器
１２０：期待変化回数比較部          １２１：変化回数カウンタ
１２２：変化回数期待値レジスタ      １２３：第１比較器
１４０：内蔵発信器                  １５０：サブ内蔵発信器
１６０：ＣＰＵコア                  １７０：フラッシュメモリ
１８０：内部バス                    １９０：周辺ハードウェア
２０１：内蔵発振クロック変化検出器  ２１０：クロック不一致検出部
２１１：タイマ                      ２１２：ハイ／ロウ幅キャプチャレジスタ
２１３：内部発振クロックハイ／ロウ幅現在値レジスタ
２１４：内部発振クロックハイ／ロウ幅保持値レジスタ
２１５：第２比較器                  ３０１：内部発振クロック変化検出器
３１０：第１クロック不一致検出部    ３１２：ハイ／ロウ幅キャプチャレジスタ
３２０：期待変化回数比較部        ３２１：変化回数カウンタ
３３０：第２クロック不一致検出部    ３３１：タイマ
３３３：内部発振クロックハイ／ロウ幅現在値レジスタ
３３４：内部発振クロックハイ／ロウ幅保持値レジスタ
３３５：第３比較器                  ４０１：内部発振クロック変化検出器
４１０：第１クロック不一致検出部    ４２０：第１期待変化回数比較部
４２１：変化回数カウンタ            ４２２：変化回数期待値レジスタ
４２３：第１比較器                  ４３０：第２クロック不一致検出部
４３１：タイマ                      ４４０：第２期待変化回数比較部
４４１：変化回数カウンタ            ４４２：変化回数期待値レジスタ
４４３：第１比較器                  ４５０：消去コマンド生成部
５０１：内部発振クロック変化検出器  ５３０：タイマ
５３１：コンペアレジスタ            ５３２：セレクタ
５３３：ＡＮＤ回路                  ５３４：周波数変化回数タイマカウンタ
５３５：比較器
【図１】
2013003731.tif 000003
【図２】
2013003731.tif 000004
【図３】
2013003731.tif 000005
【図４】
2013003731.tif 000006
【図５】
2013003731.tif 000007
【図６】
2013003731.tif 000008
【図７】
2013003731.tif 000009
【図８】
2013003731.tif 000010