(57)【要約】  【課題】  セキュリティレベルの高いセキュリティ回路およびセキュリティ解除方法を提供することを目的とする。【解決手段】  半導体集積回路の内部資源データ３６０へのアクセスセキュリティを解除する際に、外部からコード生成用プログラム３００を入力し、このコード生成用プログラム３００により生成された入力コード３３０と、あらかじめ半導体集積回路に格納されたセキュリティコード３４０を比較して、両者が一致しない限りアクセスセキュリティを解除して内部資源データ３６０へのアクセスを可能としないことにより、従来のコードに比べてプログラムは漏洩し難いため、セキュリティレベルの高いセキュリティ回路およびセキュリティ解除方法を提供することが可能となる。【選択図】    図１
2006244185.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路の内部資源データへのアクセスを制限するセキュリティ回路であって、
１または複数のセキュリティコードを格納する第１メモリと、
外部からセキュリティコード生成用プログラムを入力する外部インタフェースと、
前記セキュリティコード生成用プログラムを格納する第２メモリと、
前記セキュリティコード生成用プログラムにより前記１または複数のセキュリティコードに対応する入力コードを生成する入力コード生成回路と、
あらかじめ格納された前記セキュリティコードと対応する前記入力コードを比較する比較器と
を有し、対応する１または複数組のセキュリティコードと入力コードが全て一致する場合に限り内部資源データへのアクセスが可能となることを特徴とするセキュリティ回路。
【請求項２】
半導体集積回路の内部資源データへのアクセスを制限するセキュリティ回路であって、
１または複数のセキュリティコードを格納する第１メモリと、
外部からセキュリティコード生成用プログラムを入力する外部インタフェースと、
前記セキュリティコード生成用プログラムを格納する第２メモリと、
前記セキュリティコード生成用プログラムを動作させて内蔵回路制御信号を生成するＣＰＵと、
前記内蔵回路制御信号に制御されて前記セキュリティコードに対応するコード生成信号を生成する１または複数の内蔵回路と、
前記コード生成信号を基に前記セキュリティコードに対応する入力コードを生成する１または複数のコード生成回路と、
あらかじめ格納された前記セキュリティコードと対応する前記入力コードを比較する比較器と
を有し、対応する１または複数組のセキュリティコードと入力コードが全て一致する場合に限り内部資源データへのアクセスが可能となることを特徴とするセキュリティ回路。
【請求項３】
半導体集積回路の内部資源データへのアクセスを制限するセキュリティ回路であって、
セキュリティコードを格納する第１メモリと、
外部からセキュリティコード生成用プログラムを入力する外部インタフェースと、
前記セキュリティコード生成用プログラムを格納する第２メモリと、
前記セキュリティコード生成用プログラムを動作させて内蔵回路制御信号を生成するＣＰＵと、
前記内蔵回路制御信号に制御されてコード生成信号を生成する１または複数の内蔵回路と、
前記１または複数のコード生成信号を基に入力コードを生成する生成回路と、
あらかじめ格納された前記セキュリティコードと前記入力コードを比較する比較器と
を有し、前記セキュリティコードと前記入力コードが一致する場合に限り内部資源データへのアクセスが可能となることを特徴とするセキュリティ回路。
【請求項４】
前記コード生成用プログラムを基に入力コードを生成する入力コード生成回路と、
前記第１メモリに別途格納したセキュリティコードと前記入力コード生成回路で生成した入力コードを比較するコード比較器と
を有し、前記比較器の比較結果と前記コード比較器の比較結果が全て一致である場合に限り内部資源データへのアクセスが可能となることを特徴とする請求項２または請求項３のいずれかに記載のセキュリティ回路。
【請求項５】
半導体集積回路の内部資源データのアクセスセキュリティを解除する際に、
外部からコード生成用プログラムを入力する工程と、
前記コード生成用プログラムより１または複数の入力コードを生成する工程と、
あらかじめ格納された１または複数のセキュリティコードと前記対応する入力コードを比較する工程と
を有し、対応する１または複数組のセキュリティコードと入力コードが全て一致する場合に限り内部資源データへのアクセスセキュリティを解除することを特徴とするセキュリティ解除方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のセキュリティをセキュリティコードを用いて解除するセキュリティ回路およびセキュリティ解除方法に関する。
【背景技術】
【０００２】
従来より、半導体集積回路に記憶されたデータを第３者に秘匿するために、半導体集積回路にセキュリティ回路を備えることが一般的に行われている。セキュリティ回路は、例えば、セキュリティコードを記憶するメモリを有し、記憶されたセキュリティコードと同じセキュリティコードを入力した場合のみ、データを読み出すことができる構造であり、データの読み出しが許可された者にはセキュリティコードを公開することによってデータを読み出すことが可能となり、セキュリティコードを知らない第３者はデータを読み出すことができないようにしていた（例えば、特許文献１参照）。
【特許文献１】特開平５‐７３４２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来技術では、セキュリティコードが第３者に知れてしまった場合、第３者がセキュリティコードを入力してセキュリティを解除し、秘匿していたデータを読み出すことができると言う問題点があった。
【０００４】
上記問題点を解決するために、本発明は、セキュリティレベルの高いセキュリティ回路およびセキュリティ解除方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明の請求項１記載のセキュリティ回路は、半導体集積回路の内部資源データへのアクセスを制限するセキュリティ回路であって、１または複数のセキュリティコードを格納する第１メモリと、外部からセキュリティコード生成用プログラムを入力する外部インタフェースと、前記セキュリティコード生成用プログラムを格納する第２メモリと、前記セキュリティコード生成用プログラムにより前記１または複数のセキュリティコードに対応する入力コードを生成する入力コード生成回路と、あらかじめ格納された前記セキュリティコードと対応する前記入力コードを比較する比較器とを有し、対応する１または複数組のセキュリティコードと入力コードが全て一致する場合に限り内部資源データへのアクセスが可能となることを特徴とする。
【０００６】
請求項２記載のセキュリティ回路は、半導体集積回路の内部資源データへのアクセスを制限するセキュリティ回路であって、１または複数のセキュリティコードを格納する第１メモリと、外部からセキュリティコード生成用プログラムを入力する外部インタフェースと、前記セキュリティコード生成用プログラムを格納する第２メモリと、前記セキュリティコード生成用プログラムを動作させて内蔵回路制御信号を生成するＣＰＵと、前記内蔵回路制御信号に制御されて前記セキュリティコードに対応するコード生成信号を生成する１または複数の内蔵回路と、前記コード生成信号を基に前記セキュリティコードに対応する入力コードを生成する１または複数のコード生成回路と、あらかじめ格納された前記セキュリティコードと対応する前記入力コードを比較する比較器とを有し、対応する１または複数組のセキュリティコードと入力コードが全て一致する場合に限り内部資源データへのアクセスが可能となることを特徴とする。
【０００７】
請求項３記載のセキュリティ回路は、半導体集積回路の内部資源データへのアクセスを制限するセキュリティ回路であって、セキュリティコードを格納する第１メモリと、外部からセキュリティコード生成用プログラムを入力する外部インタフェースと、前記セキュリティコード生成用プログラムを格納する第２メモリと、前記セキュリティコード生成用プログラムを動作させて内蔵回路制御信号を生成するＣＰＵと、前記内蔵回路制御信号に制御されてコード生成信号を生成する１または複数の内蔵回路と、前記１または複数のコード生成信号を基に入力コードを生成する生成回路と、あらかじめ格納された前記セキュリティコードと前記入力コードを比較する比較器とを有し、前記セキュリティコードと前記入力コードが一致する場合に限り内部資源データへのアクセスが可能となることを特徴とする。
【０００８】
請求項４記載のセキュリティ回路は、請求項２または請求項３のいずれかに記載のセキュリティ回路において、前記コード生成用プログラムを基に入力コードを生成する入力コード生成回路と、前記第１メモリに別途格納したセキュリティコードと前記入力コード生成回路で生成した入力コードを比較するコード比較器とを有し、前記比較器の比較結果と前記コード比較器の比較結果が全て一致である場合に限り内部資源データへのアクセスが可能となることを特徴とする。
【０００９】
請求項５記載のセキュリティ解除方法は、半導体集積回路の内部資源データのアクセスセキュリティを解除する際に、外部からコード生成用プログラムを入力する工程と、前記コード生成用プログラムより１または複数の入力コードを生成する工程と、あらかじめ格納された１または複数のセキュリティコードと前記対応する入力コードを比較する工程とを有し、対応する１または複数組のセキュリティコードと入力コードが全て一致する場合に限り内部資源データへのアクセスセキュリティを解除することを特徴とする。
【００１０】
以上により、セキュリティレベルの高いセキュリティ回路およびセキュリティ解除方法を提供することが可能となる。
【発明の効果】
【００１１】
半導体集積回路の内部資源データへのアクセスセキュリティを解除する際に、外部からコード生成用プログラムを入力し、このコード生成用プログラムにより生成された入力コードと、あらかじめ半導体集積回路に格納されたセキュリティコードを比較して、両者が一致しない限りアクセスセキュリティを解除して内部資源データへのアクセスを可能としないことにより、従来のコードに比べてプログラムは漏洩し難いため、セキュリティレベルの高いセキュリティ回路およびセキュリティ解除方法を提供することが可能となる。
【発明を実施するための最良の形態】
【００１２】
本発明のセキュリティ回路は、マイクロプロセッサの内部資源へのアクセス時において、外部から転送される内蔵回路を動作させるプログラムを保持するメモリと、プログラムを実行させるＣＰＵと、プログラムによってコード生成信号を発生する内蔵回路と、発生されたコード生成信号から入力コードを生成する生成回路と、第１メモリに格納されているセキュリティコードと前記入力コードが不一致である限り内部資源の読み出し／書き込みを禁止する比較回路を備える事で、内部資源へのアクセスを制限する。
【００１３】
また、複数の内蔵回路と、同数の生成回路を備え、第１メモリに同数のセキュリティコードを内蔵し、複数のセキュリティコードで内部資源へのアクセスを制限することもできる。
【００１４】
また、複数の内蔵回路を有し、生成回路は、複数の内蔵回路から発生されたコード生成信号から１つの入力コードを生成することもできる。
さらに、マイクロプロセッサに転送されたプログラムデータを元に、入力コードを生成する生成回路と、この入力コードとそれに対応するセキュリティコードが不一致である限り内部情報の読み出し／書き込みを禁止する比較回路を備える事で、内部資源へのアクセスを制限する。
【００１５】
以下、本発明の実施の形態について、図面を用いて説明する。
図１は実施の形態１におけるセキュリティ回路を示すブロック図、図２は実施の形態１におけるセキュリティ解除方法の動作を示すフロー図、図３は実施の形態２におけるセキュリティ回路を示すブロック図、図４は実施の形態２におけるセキュリティ解除方法の動作を示すフロー図、図５は実施の形態３におけるセキュリティ回路を示すブロック図、図６は実施の形態３におけるセキュリティ解除方法の動作を示すフロー図、図７は実施の形態４におけるセキュリティ回路を示すブロック図、図８は実施の形態４におけるセキュリティ解除方法の動作を示すフロー図を示す。
（実施の形態１）
まず、実施の形態１について、図１を用いて詳細に説明する。
【００１６】
図１は、マイクロプロセッサ１００、外部Ｉ／Ｆ２００、第２メモリ２１０、ＣＰＵ２２０、内蔵回路２３０、生成回路２４０、第１メモリ２５０、比較器２６０、コード生成プログラム３００、内蔵回路制御信号３１０、コード生成信号３２０、入力コード３３０、セキュリティコード３４０、Ｒ／Ｗ許可信号３５０、内部資源データ３６０で構成されるセキュリティ回路を示している。
【００１７】
マイクロプロセッサ１００は外部Ｉ／Ｆ２００、第２メモリ２１０、ＣＰＵ２２０、内蔵回路２３０、生成回路２４０、第１メモリ２５０、比較器２６０、コード生成プログラム３００、内蔵回路制御信号３１０、コード生成信号３２０、入力コード３３０、セキュリティコード３４０、Ｒ／Ｗ許可信号３５０、内部資源データ３６０で構成されるセキュリティ回路を搭載した半導体集積回路である。
【００１８】
外部Ｉ／Ｆ２００は、マイクロプロセッサ１００外部から第２メモリ２１０へコード生成プログラム３００を転送する回路である。
第２メモリ２１０は、外部から転送されたコード生成プログラム３００を格納する回路である。
【００１９】
ＣＰＵ２２０は、第２メモリ２１０に格納されたコード生成プログラム３００の記述に応じて内蔵回路２３０を動作させ、内蔵回路制御信号３１０を出力する回路である。
内蔵回路２３０は、内蔵回路制御信号３１０により入力コード３３０を生成する為のコード生成信号３２０を発生する回路である。
【００２０】
生成回路２４０は、内蔵回路２３０により発生されたコード生成信号３２０を基に入力コード３３０を生成する回路である。
第１メモリ２５０は、あらかじめ書き込まれたセキュリティコード３４０を格納する回路である。
【００２１】
比較器２６０は、第１メモリ２５０に格納されているセキュリティコード３４０と生成回路２４０により生成された入力コード３３０を比較し、一致すればＲ／Ｗ許可信号３５０を発生する回路である。
【００２２】
コード生成プログラム３００は、セキュリティコード３４０との一致を確認して、マイクロプロセッサ１００の内部資源データ３６０のアクセスセキュリティを解除する入力コード３３０をＣＰＵ２２０に生成させるプログラムである。
【００２３】
内蔵回路制御信号３１０は、コード生成信号３２０を発生させる為に内蔵回路２３０を制御する信号である。
コード生成信号３２０は、生成回路２４０で入力コード３３０を生成する為の基となる信号である。
【００２４】
入力コード３３０は、マイクロプロセッサ１００の内部資源データ３６０にアクセスする為に入力されるコードであり、セキュリティコード３４０と比較されて一致した場合のみアクセス許可を与える。
【００２５】
セキュリティコード３４０は、あらかじめ格納され、内部資源データ３６０のアクセスセキュリティを解除する為に用いるセキュリティコードである。
Ｒ／Ｗ許可信号３５０は、入力コード３３０とセキュリティコード３４０が一致した場合に内部資源データ３６０へのアクセスを許可する信号である。
【００２６】
内部資源データ３６０は、マイクロプロセッサ１００内で使用されているすべての内部情報である。
次に、実施の形態１の動作について図２を用いて説明する。
【００２７】
まず、マイクロプロセッサ１００の内部資源データ３６０にアクセスする場合、マイクロプロセッサ１００外部から入力したコード生成プログラム３００をマイクロプロセッサ１００外部から入力したコード生成プログラム３００を外部Ｉ／Ｆ２００を介して第２メモリ２１０へ転送する（Ｓ１０）。次に、第２メモリ２１０に格納されたコード生成プログラム３００をＣＰＵ２２０が読み出し、コード生成プログラム３００に則って内蔵回路２３０を動作させ（Ｓ１１）、コード生成信号３２０を生成する（Ｓ１２）。次に、内蔵回路２３０によって生成されたコード生成信号３２０から生成回路２４０がある一定規則を用いて入力コード３３０を生成する（Ｓ１３）。次に、入力コード３３０と第１メモリ２５０に格納されているセキュリティコード３４０が一致しているかを比較器２６０によって比較する（Ｓ１４）。もし、入力コード３３０とセキュリティコード３４０が一致すれば比較器２６０からＲ／Ｗ許可信号３５０がＣＰＵ２２０に対して出力され、外部Ｉ／Ｆ２００を通して内部資源データ３６０にアクセスする事が出来る（Ｓ１５）。一致しない場合は比較器２６０からＲ／Ｗ許可信号３５０がＣＰＵ２２０に対して出力されず、内部資源データ３６０にアクセスする事が出来ない。
【００２８】
以上のように、マイクロプロセッサ１００の内部資源データ３６０へのアクセスセキュリティを解除する際に、外部からコード生成用プログラム３００を入力し、コード生成用プログラム３００を動作させることにより生成した入力コード３３０とあらかじめ格納したセキュリティコード３４０との一致を確認しない限り、アクセスセキュリティを解除することができないため、通常の入力コード（コードビット幅Ｓの場合：２Ｓ通り）に比べてより漏洩し難く複雑である、適切なコードを発生させるプログラムを用いてアクセス制御でき、セキュリティレベルの高いセキュリティ回路およびセキュリティ解除方法を提供することが可能となる。
（実施の形態２）
次に、実施の形態２について、図３、図４を用いて詳細に説明する。
【００２９】
図３は、マイクロプロセッサ１００、外部Ｉ／Ｆ２００、第２メモリ２１０、ＣＰＵ２２０、Ｍ個の内蔵回路２３１、２３２、Ｍ個の生成回路２４１、２４２、第１メモリ２５０、Ｍ個の比較器２６１、２６２、コード生成プログラム３００、内蔵回路制御信号３１０、Ｍ個のコード生成信号３２１、３２２、入力コード３３１、３３２、セキュリティコード３４１、３４２、Ｒ／Ｗ許可信号３５１、３５２、内部資源データ３６０で構成されるセキュリティ回路を示している。
【００３０】
マイクロプロセッサ１００は外部Ｉ／Ｆ２００、第２メモリ２１０、ＣＰＵ２２０、Ｍ個の内蔵回路２３１、２３２、Ｍ個の生成回路２４１、２４２、第１メモリ２５０、Ｍ個の比較器２６１、２６２、コード生成プログラム３００、内蔵回路制御信号３１０、Ｍ個のコード生成信号３２１、３２２、Ｍ個の入力コード３３１、３３２、Ｍ個のセキュリティコード３４１、３４２、Ｍ個のＲ／Ｗ許可信号３５１、３５２、内部資源データ３６０で構成されるセキュリティ回路を搭載した半導体集積回路である。
【００３１】
外部Ｉ／Ｆ２００は、マイクロプロセッサ１００外部から第２メモリ２１０へコード生成プログラム３００を転送する回路である。
第２メモリ２１０は、外部から転送されたコード生成プログラム３００を格納する回路である。
【００３２】
ＣＰＵ２２０は、第２メモリ２１０に格納されたコード生成プログラム３００に応じてＭ個の内蔵回路２３１、２３２を動作させ、内蔵回路制御信号３１０を出力する回路である。
【００３３】
内蔵回路２３１は、内蔵回路制御信号３１０により入力コード３３１を生成させる為のコード生成信号３２１を発生する回路である。
内蔵回路２３２は、内蔵回路制御信号３１０により入力コード３３２を生成する為のコード生成信号３２２を発生する回路である。ここで、内蔵回路の数は任意の数Ｍであり、第１メモリ２５０に格納可能なセキュリティコードの数に対応している。
【００３４】
生成回路２４１は、内蔵回路２３１により発生されたコード生成信号３２１を基に入力コード３３１を生成する回路である。
生成回路２４２は、内蔵回路２３２により発生されたコード生成信号３２２を基に入力コード３３２を生成する回路である。ここで、生成回路の数は任意の数Ｍであり、第１メモリ２５０に格納可能なセキュリティコードの数に対応している。
【００３５】
第１メモリ２５０は、あらかじめ書き込まれたＭ個のセキュリティコード３４１、３４２を格納する回路である。
比較器２６１は、第１メモリ２５０に格納されているセキュリティコード３４１と生成回路２４１により生成された入力コード３３１を比較し、一致すればＲ／Ｗ許可信号３５１を発生する回路である。
【００３６】
比較器２６２は、第１メモリ２５０に格納されているセキュリティコード３４２と生成回路２４２により発生された入力コード３３２を比較し、一致すればＲ／Ｗ許可信号３５２を発生する回路である。ここで、比較器の数は任意の数Ｍであり、第１メモリ２５０に格納可能なセキュリティコードの数に対応している。
【００３７】
コード生成プログラム３００は、セキュリティコード３４１，３４２との一致を確認して、マイクロプロセッサ１００の内部資源データ３６０のアクセスセキュリティを解除する入力コード３３１，３３２をＣＰＵ２２０に生成させるプログラムである。
【００３８】
内蔵回路制御信号３１０は、Ｍ個のコード生成信号３２１、３２２を発生させる為にＭ個の内蔵回路２３１、２３２を制御する信号である。
コード生成信号３２１は、生成回路２４１で入力コード３３１を生成する為に基となる信号である。
【００３９】
コード生成信号３２２は、生成回路２４２で入力コード３３２を生成する為に基となる信号である。ここで、コード生成信号の数は任意の数Ｍであり、Ｍ個の内蔵回路から１つずつのコード生成信号が出力する。
【００４０】
入力コード３３１は、マイクロプロセッサ１００の内部資源データ３６０にアクセスする為に入力されるコードであり、セキュリティコード３４１と比較されて一致した場合のみアクセス許可を与える。
【００４１】
入力コード３３２は、マイクロプロセッサ１００の内部資源データ３６０にアクセスする為に入力されるコードであり、セキュリティコード３４２と比較されて一致した場合のみアクセス許可を与える。ここで、入力コードの数は任意の数Ｍであり、それぞれの生成回路から１つずつのコード生成信号が出力する。
【００４２】
セキュリティコード３４１は、内部資源データ３６０のアクセスセキュリティを解除する為に用いる、あらかじめ格納されたセキュリティコードである。
セキュリティコード３４２は、内部資源データ３６０のアクセスセキュリティを解除する為に用いる、あらかじめ格納されたセキュリティコードである。ここで、セキュリティコードの数は任意の数Ｍであり、本実施の形態２のセキュリティ回路は、セキュリティコードの数だけ入力コードが生成される構成となっている。
【００４３】
Ｒ／Ｗ許可信号３５１は、入力コード３３１とセキュリティコード３４１が一致した場合に内部資源データ３６０へのアクセスを許可する信号である。
Ｒ／Ｗ許可信号３５２は、入力コード３３２とセキュリティコード３４２が一致した場合に内部資源データ３６０へのアクセスを許可する信号である。ここで、Ｒ／Ｗ許可信号の数は任意の数Ｍであり、それぞれの比較器から１つずつのＲ／Ｗ許可信号が出力する。そして、Ｍ個のＲ／Ｗ許可信号全てが出力されて始めて、内部資源データ３６０のアクセスセキュリティが解除される。
【００４４】
内部資源データ３６０は、マイクロプロセッサ１００内で使用されているすべての内部情報である。
次に、実施の形態２の動作について図４を用いて説明する。
【００４５】
まず、マイクロプロセッサ１００の内部資源データ３６０にアクセスする場合、マイクロプロセッサ１００外部から入力したコード生成プログラム３００を外部Ｉ／Ｆ２００を介して第２メモリ２１０へ転送する（Ｓ２０）。次に、第２メモリ２１０に格納されたコード生成プログラム３００をＣＰＵ２２０が読み出し、コード生成プログラム３００に則ってＭ個の内蔵回路２３１、２３２を動作させ（Ｓ２１）、Ｍ個のコード生成信号３２１、３２２を生成させる（Ｓ２２）。次に、Ｍ個の内蔵回路２３１、２３２によって生成されたコード生成信号３２１、３２２からＭ個の生成回路２４１、２４２がある一定規則を用いてそれぞれ入力コード３３１、３３２を生成する（Ｓ２３，Ｓ２４）。次に、Ｍ個の入力コード３３１、３３２と第１メモリ２５０に格納されているＭ個のセキュリティコード３４１、３４２がそれぞれ一致しているかをＭ個の比較器２６１、２６２によって比較する（Ｓ２５）。もし、入力コード３３１、３３２とセキュリティコード３４１、３４２が一致すれば、それぞれの比較器２６１、２６２からＭ個のＲ／Ｗ許可信号３５１、３５２がＣＰＵ２２０に対して出力され、すべてのＲ／Ｗ許可信号を受け取った場合のみ外部Ｉ／Ｆ２００を通して内部資源データ３６０にアクセスする事が出来る（Ｓ２６）。一致しない場合は比較器２６１、２６２からＲ／Ｗ許可信号３５１、３５２がＣＰＵ２２０に対して出力されず、内部資源データ３６０にアクセスする事が出来ない。
【００４６】
以上のように、マイクロプロセッサ１００の内部資源データ３６０へのアクセスセキュリティを解除する際に、外部からＭ個の入力コードの生成に必要なコード生成用プログラム３００を入力し、コード生成用プログラム３００を動作させることにより生成したＭ個の入力コード３３１，３３２とあらかじめ格納したセキュリティコード３４１，３４２との一致をそれぞれ確認し、コード生成用プログラム３００から生成した全ての入力コードが対応するセキュリティコードと一致しない限り内部資源データ３６０にアクセスできないため、セキュリティレベルの高いセキュリティ回路およびセキュリティ解除方法を提供することが可能となる。
（実施の形態３）
次に実施の形態３について、図５、図６を用いて詳細に説明する。
【００４７】
図５は、マイクロプロセッサ１００、外部Ｉ／Ｆ２００、第２メモリ２１０、ＣＰＵ２２０、Ｍ個の内蔵回路２３１、２３２、生成回路２４１、第１メモリ２５０、比較器２６１、コード生成プログラム３００、内蔵回路制御信号３１０、Ｍ個のコード生成信号３２１、３２２、入力コード３３１、セキュリティコード３４１、Ｒ／Ｗ許可信号３５１、内部資源データ３６０で構成されるセキュリティ回路を示している。
【００４８】
マイクロプロセッサ１００は外部Ｉ／Ｆ２００、第２メモリ２１０、ＣＰＵ２２０、Ｍ個の内蔵回路２３１、２３２、生成回路２４１、第１メモリ２５０、比較器２６１、コード生成プログラム３００、内蔵回路制御信号３１０、Ｍ個のコード生成信号３２１、３２２、入力コード３３１、セキュリティコード３４１、Ｒ／Ｗ許可信号３５１、内部資源データ３６０で構成されるセキュリティ回路を搭載した半導体集積回路である。
【００４９】
外部Ｉ／Ｆ２００は、マイクロプロセッサ１００外部から第２メモリ２１０へコード生成プログラム３００を転送する回路である。
第２メモリ２１０は、外部から転送されたコード生成プログラム３００を格納する回路である。
【００５０】
ＣＰＵ２２０は、第２メモリ２１０に格納されたコード生成プログラム３００に応じて内蔵回路２３１、２３２を動作させ、内蔵回路制御信号３１０を出力する回路である。
内蔵回路２３１は、内蔵回路制御信号３１０により入力コード３３１を生成する為のコード生成信号３２１を発生する回路である。
【００５１】
内蔵回路２３２は、内蔵回路制御信号３１０により入力コード３３１を生成する為のコード生成信号３２２を発生する回路である。ここで、内蔵回路の数は任意の数Ｍであり、コード生成用プログラム３００より生成される内蔵回路制御信号の数に対応している。
【００５２】
生成回路２４１は、Ｍ個の内蔵回路２３１、２３２により発生されたＭ個のコード生成信号３２１、３２２を基に入力コード３３１を生成する回路である。
第１メモリ２５０は、あらかじめ書き込まれたセキュリティコード３４１を格納する回路である。
【００５３】
比較器２６１は、第１メモリ２５０に格納されているセキュリティコード３４１と生成回路２４１により生成された入力コード３３１を比較し、一致すればＲ／Ｗ許可信号３５１を発生する回路である。
【００５４】
コード生成プログラム３００は、セキュリティコード３４１との一致を確認して、マイクロプロセッサ１００の内部資源データ３６０のアクセスセキュリティを解除する入力コード３３１をＣＰＵ２２０に生成させるプログラムであり、Ｍ個のコード生成信号を生成するＭ個のプログラムの集合である。
【００５５】
内蔵回路制御信号３１０は、Ｍ個のコード生成信号３２１、３２２を発生させる為にＭ個の内蔵回路２３１、２３２を制御するＭ個の制御信号である。
コード生成信号３２１は、生成回路２４１で入力コード３３１を生成する為に基となる信号である。
【００５６】
コード生成信号３２２は、生成回路２４１で入力コード３３１を生成する為に基となる信号である。ここで、コード生成信号の数は任意の数Ｍであり、Ｍ個の内蔵回路から１つずつのコード生成信号が出力する。
【００５７】
入力コード３３１は、マイクロプロセッサ１００の内部資源データ３６０にアクセスする為に入力されるコードであり、セキュリティコード３４２と比較されて一致した場合のみアクセス許可を与える。
【００５８】
セキュリティコード３４１は、内部資源データ３６０にアクセスする為に用いる、あらかじめ格納されたセキュリティコードである。
Ｒ／Ｗ許可信号３５１は、入力コード３３１とセキュリティコード３４１が一致した場合に内部資源データ３６０へのアクセスを許可する信号である。
【００５９】
内部資源データ３６０は、マイクロプロセッサ１００内で使用されているすべての内部情報である。
次に、実施の形態３の動作について図６を用いて説明する。
【００６０】
まず、マイクロプロセッサ１００の内部資源データ３６０にアクセスする場合、マイクロプロセッサ１００外部から入力したコード生成プログラム３００を外部Ｉ／Ｆ２００を介して第２メモリ２１０へ転送する（Ｓ３０）。次に、第２メモリ２１０に格納されたコード生成プログラム３００をＣＰＵ２２０が読み出し、コード生成プログラム３００に則ってＭ個の内蔵回路２３１、２３２を動作させ（Ｓ３１）、Ｍ個のコード生成信号３２１、３２２を生成させる（Ｓ３２）。次に、Ｍ個の内蔵回路２３１、２３２によって生成されたコード生成信号３２１、３２２から生成回路２４１がある一定規則を用いて１つの入力コード３３１を生成する（Ｓ３３）。次に、入力コード３３１と第１メモリ２５０に格納されているセキュリティコード３４１が一致しているかを比較器２６１によって比較する（Ｓ３４）。もし、入力コード３３１とセキュリティコード３４１が一致すれば比較器２６１からＲ／Ｗ許可信号３５１がＣＰＵ２２０に対して出力され、外部Ｉ／Ｆ２００を通して内部資源データ３６０にアクセスする事が出来る（Ｓ３５）。一致しない場合は比較器２６１からＲ／Ｗ許可信号３５１がＣＰＵ２２０に対して出力されず、内部資源データ３６０にアクセスする事が出来ない。
【００６１】
以上のように、マイクロプロセッサ１００の内部資源データ３６０へのアクセスセキュリティを解除する際に、Ｍ個のコード生成信号を中間ファイルとして１つの入力コード３３１を生成するコード生成用プログラム３００を外部から入力し、この入力コード３３１とあらかじめ格納したセキュリティコード３４１との一致を確認しない限り、内部資源データ３６０へのアクセスセキュリティを解除しないため、セキュリティレベルの高いセキュリティ回路およびセキュリティ解除方法を提供することが可能となる。また、実施の形態２より回路規模を少なくすることが可能である。
（実施の形態４）
次に、実施の形態４について、図７、図８を用いて詳細に説明する。
【００６２】
図７は、マイクロプロセッサ１００、外部Ｉ／Ｆ２００、第２メモリ２１０、ＣＰＵ２２０、内蔵回路２３０、生成回路２４０、２４３、第１メモリ２５０、比較器２６０、２６３、コード生成プログラム３００、内蔵回路制御信号３１０、コード生成信号３２０、入力コード３３０、３３３、セキュリティコード３４０、３４３、Ｒ／Ｗ許可信号３５０、３５３、内部資源データ３６０で構成されるセキュリティ回路を示している。
【００６３】
マイクロプロセッサ１００は外部Ｉ／Ｆ２００、第２メモリ２１０、ＣＰＵ２２０、内蔵回路２３０、生成回路２４０、２４３、第１メモリ２５０、比較器２６０、２６３、コード生成プログラム３００、内蔵回路制御信号３１０、コード生成信号３２０、入力コード３３０、３３３、セキュリティコード３４０、３４３、Ｒ／Ｗ許可信号３５０、３５３、内部資源データ３６０で構成されるセキュリティ回路を搭載した半導体集積回路である。
【００６４】
外部Ｉ／Ｆ２００は、マイクロプロセッサ１００外部から第２メモリ２１０へコード生成プログラム３００を転送する回路である。
第２メモリ２１０は、外部から転送されたコード生成プログラム３００を格納する回路である。
【００６５】
ＣＰＵ２２０は、第２メモリ２１０に格納されたコード生成プログラム３００に応じて内蔵回路２３０を動作させ、内蔵回路制御信号３１０を出力する回路である。
内蔵回路２３０は、内蔵回路制御信号３１０により入力コード３３０を生成する為のコード生成信号３２０を発生する回路である。
【００６６】
生成回路２４０は、内蔵回路２３０により発生されたコード生成信号３２０を基に入力コード３３０を生成する回路である。
生成回路２４３は、第２メモリ２１０に格納されたコード生成プログラム３００の内容を基に入力コード３３３を生成する回路である。
【００６７】
第１メモリ２５０は、あらかじめ書き込まれたセキュリティコード３４０、３４３を格納する回路である。
比較器２６０は、第１メモリ２５０に格納されているセキュリティコード３４０と生成回路２４０により発生された入力コード３３０を比較し、一致すればＲ／Ｗ許可信号３５０を発生する回路である。
【００６８】
比較器２６３は、第１メモリ２５０に格納されているセキュリティコード３４３と生成回路２４３により生成された入力コード３３３を比較し、一致すればＲ／Ｗ許可信号３５３を発生する回路である。
【００６９】
コード生成プログラム３００は、セキュリティコード３４０との一致を確認してマイクロプロセッサ１００の内部資源データ３６０のアクセスセキュリティを解除する入力コード３３０をＣＰＵ２２０に生成させるプログラムであり、また、セキュリティコード３４３との一致を確認して、マイクロプロセッサ１００の内部資源データ３６３のアクセスセキュリティを解除する入力コード３３３を生成回路２４３に生成させる制御信号も備える。
【００７０】
内蔵回路制御信号３１０は、コード生成信号３２０を発生させる為に内蔵回路２３０を制御する信号である。
コード生成信号３２０は、生成回路２４０で入力コード３３０を生成する為に基となる信号である。
【００７１】
入力コード３３０は、マイクロプロセッサ１００の内部資源データ３６０にアクセスする為に入力されるコードであり、セキュリティコード３４０と比較されて一致した場合のみアクセス許可を与える。
【００７２】
入力コード３３３は、マイクロプロセッサ１００の内部資源データ３６０にアクセスする為に入力されるコードであり、セキュリティコード３４３と比較されて一致した場合のみアクセス許可を与える。
【００７３】
セキュリティコード３４０は、内部資源データ３６０にアクセスする為に用いる、あらかじめ格納されたセキュリティコードである。
セキュリティコード３４３は、内部資源データ３６０にアクセスする為に用いる、あらかじめ格納されたセキュリティコードである。
【００７４】
Ｒ／Ｗ許可信号３５０は、入力コード３３０とセキュリティコード３４０が一致した場合に内部資源データ３６０へのアクセスを許可する信号である。
Ｒ／Ｗ許可信号３５３は、入力コード３３３とセキュリティコード３４３が一致した場合に内部資源データ３６０へのアクセスを許可する信号である。ここで、内部資源データ３６０のアクセスセキュリティの解除は、Ｒ／Ｗ許可信号３５０およびＲ／Ｗ許可信号３５３の両方が出力される場合のみ行われる。
【００７５】
内部資源データ３６０は、マイクロプロセッサ１００内で使用されているすべての内部情報である。
次に、実施の形態４の動作について図８を用いて説明する。
【００７６】
まず、マイクロプロセッサ１００の内部資源データ３６０にアクセスする場合、マイクロプロセッサ１００外部から入力したコード生成プログラム３００を外部Ｉ／Ｆ２００を介して第２メモリ２１０へ転送する（Ｓ４０）。次に、第２メモリ２１０に格納されたコード生成プログラム３００をＣＰＵ２２０が読み出し、コード生成プログラム３００に則って内蔵回路２３０を動作させ（Ｓ４１）、コード生成信号３２０を生成させる（Ｓ４２）。次に、内蔵回路２３０によって生成されたコード生成信号３２０から生成回路２４０がある一定規則を用いて入力コード３３０を生成する（Ｓ４３）。次に、入力コード３３０と第１メモリ２５０に格納されているセキュリティコード３４０が一致しているかを比較器２６０によって比較する（Ｓ４４）。もし、入力コード３３０とセキュリティコード３４０が一致すれば比較器２６０からＲ／Ｗ許可信号３５０がＣＰＵ２２０に対して出力される。また、第２メモリ２１０に格納されたコード生成プログラム３００に記述された制御信号を基に生成回路２４０がある一定規則を用いて入力コード３３３を生成する（Ｓ４５）。次に、入力コード３３３と第１メモリ２５０に格納されているセキュリティコード３４３が一致しているかを比較器２６３によって比較する（Ｓ４６）。もし、入力コード３３３とセキュリティコード３４３が一致すれば比較器２６３からＲ／Ｗ許可信号３５３がＣＰＵ２２０に対して出力される。そして、ＣＰＵ２２０がＲ／Ｗ許可信号３５０、３５３の両方を検出した場合のみ（Ｓ４７）外部Ｉ／Ｆ２００を通して内部資源データ３６０にアクセスする事が出来る（Ｓ４８）。一致しない場合は比較器２６０、２６３からＲ／Ｗ許可信号３５０、３５３がＣＰＵ２２０に対して出力されず、内部資源データ３６０にアクセスする事が出来ない。
【００７７】
実施の形態４の説明では、実施の形態１に、入力されたコード生成用プログラムからさらに入力コードを生成し、これに対応するセキュリティコードを比較する構成を追加しているが、実施の形態２，実施の形態３に対しても同様に追加することができる。
【００７８】
以上のように、マイクロプロセッサ１００の内部資源データ３６０へのアクセスセキュリティを解除する際に、外部から、入力コード３３０を生成するためのプログラムと生成回路２４３に入力コード３３３を生成させる制御信号を備えるコード生成用プログラム３００を入力し、この２つの入力コードそれぞれが、それらに対応してあらかじめ格納されたセキュリティコード３４１と一致することを確認しない限り、内部資源データ３６０へのアクセスセキュリティを解除できないため、セキュリティレベルの高いセキュリティ回路およびセキュリティ解除方法を提供することが可能となる。また、実施の形態２より回路規模を少なくすることが可能である。
【００７９】
以上の説明ではマイクロプロセッサを例に説明したが、プログラムを動作することが可能な、その他の半導体集積回路に用いることができる。
また、コード生成用プログラムから入力コードを生成する際に、ＣＰＵを動作させて生成した制御信号により、内蔵回路を動作させてコード生成信号を出力し、このコード生成信号により生成回路にて入力コードを生成する構成としたが、コード生成用プログラムから所定の入力コードを生成できる構成であれば、上述の構成に限ったものではない。
【産業上の利用可能性】
【００８０】
本発明は、セキュリティレベルの高いセキュリティ回路およびセキュリティ解除方法を提供することができ、半導体集積回路のセキュリティをセキュリティコードを用いて解除するセキュリティ回路およびセキュリティ解除方法等に有用である。
【図面の簡単な説明】
【００８１】
【図１】実施の形態１におけるセキュリティ回路を示すブロック図
【図２】実施の形態１におけるセキュリティ解除方法の動作を示すフロー図
【図３】実施の形態２におけるセキュリティ回路を示すブロック図
【図４】実施の形態２におけるセキュリティ解除方法の動作を示すフロー図
【図５】実施の形態３におけるセキュリティ回路を示すブロック図
【図６】実施の形態３におけるセキュリティ解除方法の動作を示すフロー図
【図７】実施の形態４におけるセキュリティ回路を示すブロック図
【図８】実施の形態４におけるセキュリティ解除方法の動作を示すフロー図
【符号の説明】
【００８２】
１００・・・マイクロプロセッサ
２００・・・外部Ｉ／Ｆ
２１０・・・第２メモリ
２２０・・・ＣＰＵ
２３０・・・内蔵回路
２３１・・・内蔵回路
２３２・・・内蔵回路
２４０・・・生成回路
２４１・・・生成回路
２４２・・・生成回路
２４３・・・生成回路
２５０・・・第１メモリ
２６０・・・比較器
２６１・・・比較器
２６２・・・比較器
２６３・・・比較器
３００・・・コード生成用プログラム
３１０・・・内蔵回路制御信号
３２０・・・コード生成信号
３２１・・・コード生成信号
３２２・・・コード生成信号
３３０・・・入力コード
３３１・・・入力コード
３３２・・・入力コード
３３３・・・入力コード
３４０・・・セキュリティコード
３４１・・・セキュリティコード
３４２・・・セキュリティコード
３４３・・・セキュリティコード
３５０・・・Ｒ／Ｗ許可信号
３５１・・・Ｒ／Ｗ許可信号
３５２・・・Ｒ／Ｗ許可信号
３５３・・・Ｒ／Ｗ許可信号
３６０・・・内部資源データ
【図１】
2006244185.tif 000003
【図２】
2006244185.tif 000004
【図３】
2006244185.tif 000005
【図４】
2006244185.tif 000006
【図５】
2006244185.tif 000007
【図６】
2006244185.tif 000008
【図７】
2006244185.tif 000009
【図８】
2006244185.tif 000010