(57)【要約】【課題】デバッグ許可鍵と装置固有ＩＤとの比較からでは、プログラム単位の個別デバッグ制御ができない。【解決手段】情報処理半導体装置の分解装置は、メモリ１からパスコード付きプログラムを読み出し、プログラムをメモリ２に転送し、パスコードをデバッグ許可装置のパスコードレジスタに保存する。同時にプログラム実行監視装置にプログラム設定を通知する。プログラム実行監視装置はＣＰＵのプログラム実行を検知しデバッグ許可装置にプログラム実行中信号を通知する。デバッグ許可装置はパスコードレジスタと認証ファイルレジスタの値を演算し、プログラム実行中信号を受けデバッガポートの許可・不許可の制御を行うことでプログラム単位の個別デバッグ制御が可能となる。【選択図】図１
2007226276.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵとデバッグポートとを備えた情報処理装置であって、さらに、
前記ＣＰＵで実行中のプログラムを監視するプログラム実行監視装置と、
前記ＣＰＵがデバッグの許可されたプラグラムを実行中であるときに、前記デバッグポートを有効にし、デバッグの許可されたプログラム以外のプログラムを実行中であるときに、前記デバッグポートを無効にすることを特徴とするデバッグ許可装置とを有する情報処理装置。
【請求項２】
請求項１記載の情報処理装置であって、さらに、
デバッグに先立ち、デバッグポートに接続されるデバッガとパスコードを用いて認証を行うことを特徴とする、情報処理装置。
【請求項３】
請求項２記載の情報処理装置であって、さらに、プログラムとパスコードとをプログラム読み込みポートを介して読み込み可能であることを特徴とする、情報処理装置。
【請求項４】
請求項３記載の情報処置装置であって、さらに、
前記プログラム読み込みポートから読み込まれる、暗号鍵暗号化されたパスコード及びプログラムを復号する第１の復号装置を有することを特徴とする情報処理装置。
【請求項５】
請求項４記載の情報処理装置であって、さらに、
前記デバッガから読み込まれる秘密鍵暗号化認証ファイルを復号する第２の復号装置を有し、
デバッグに先立ち、復号された認証ファイルと前記パスコードとを用いてデバッガとの認証を行う認証装置を有することを特徴とする情報処理装置。
【請求項６】
前記第１の復号装置と、前記第２の復号装置とは異なる秘密鍵を用いることができることを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記認証装置は、前記パスコードの認証に加え、ユーザーの認証も行い、プログラムの認証及びユーザーの認証が共に成立したときに、前記デバッグ許可装置はデバッグを許可することを特徴とする請求項５記載の情報処理装置。
【請求項８】
請求項１記載の情報処理装置に供給するためのプログラムとパスコードとを生成するプログラムファイル生成装置。
【請求項９】
前記プログラムと前記パスコードとを暗号化して生成することを特徴とする請求項８記載のプログラムファイル生成装置。
【請求項１０】
前記プログラムと前記パスコードとを結合した上で、暗号化することを特徴とする請求項９記載のプログラムファイル生成装置。
【請求項１１】
デバッグ装置が、前記情報処理装置と認証を行う際に使用する暗号化された認証ファイルを、さらに生成する請求項１０記載のプログラムファイル生成装置。
【請求項１２】
前記プログラムと前記パスコードを結合し、暗号化する際に用いる暗号鍵と、前記認証ファイルを暗号化する際に用いる暗号鍵とは異なることを特徴とする請求項１１記載のプログラムファイル生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデバッガ装置を伴う情報処理半導体装置に関する。
【背景技術】
【０００２】
組み込みで用いられる情報処理半導体装置のＣＰＵは一般的に標準的なデバッガポートを備えている。そこに接続する汎用のデバッガは比較的安価で容易に手に入る。そのため、ソフトウェア開発コストを抑えることができる。
【０００３】
デバッガは、ＣＰＵで動作するプログラムをステップ実行させたり、途中で停止させてＣＰＵの内部レジスタを観測したりして、プログラムのデバッグを行うツールである。
【０００４】
一方、情報処理半導体装置内部に組み込むプログラムには、プログラムのアルゴリズムやデータを秘密にしなければならないものが存在する。上記汎用デバッガでは、これらの秘密にしなければならないプログラムやデータを容易に解析できてしまう問題がある。
【０００５】
そこで、汎用デバッガと専用のデバッガ許可装置との組み合わせで、専用デバッガと同等の構成する方法が提案された（図１３参照）。
【特許文献１】特開２００２−３４１９５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、この従来方法では、デバッガ許可装置を一度手に入れてしまえば、未来永劫そのシステムに対するデバッグが許可される。また、複数のセキュアなプログラムを扱う場合は、１つのデバッガ許可装置で全てのプログラムに対して許可されることとなり、プログラム単位で選択的にデバッグの可否を制御できない問題がある。
【課題を解決するための手段】
【０００７】
この問題を解決するための、本特許出願に係る請求項1に記載の発明は、ＣＰＵとデバッグポートとを備えた情報処理装置であって、さらに、前記ＣＰＵで実行中のプログラムを監視するプログラム実行監視装置と、前記ＣＰＵがデバッグの許可されたプラグラムを実行中であるときに、前記デバッグポートを有効にし、デバッグの許可されたプログラム以外のプログラムを実行中であるときに、前記デバッグポートを無効にすることを特徴とするデバッグ許可装置とを有する情報処理装置に関する。
【０００８】
また、請求項２に記載の発明は、請求項１記載の情報処理装置であって、さらに、デバッグに先立ち、デバッグポートに接続されるデバッガとパスコードを用いて認証を行うことを特徴とする、情報処理装置に関する。
【０００９】
また、請求項３に記載の発明は、請求項２記載の情報処理装置であって、さらに、プログラムとパスコードとをプログラム読み込みポートを介して読み込み可能であることを特徴とする、情報処理装置に関する。
【００１０】
また、請求項４に記載の発明は、請求項３記載の情報処置装置であって、さらに、前記プログラム読み込みポートから読み込まれる、暗号鍵暗号化されたパスコード及びプログラムを復号する第１の復号装置を有することを特徴とする情報処理装置に関する。
【００１１】
また、請求項５に記載の発明は、請求項４記載の情報処理装置であって、さらに、前記デバッガから読み込まれる秘密鍵暗号化認証ファイルを復号する第２の復号装置を有し、デバッグに先立ち、復号された認証ファイルと前記パスコードとを用いてデバッガとの認証を行う認証装置を有することを特徴とする情報処理装置に関する。
【００１２】
また、請求項６に記載の発明は、前記第１の復号装置と、前記第２の復号装置とは異なる秘密鍵を用いることができることを特徴とする請求項５記載の情報処理装置に関する。
【００１３】
また、請求項７に記載の発明は、前記認証装置は、前記パスコードの認証に加え、ユーザーの認証も行い、プログラムの認証及びユーザーの認証が共に成立したときに、前記デバッグ許可装置はデバッグを許可することを特徴とする請求項５記載の情報処理装置に関する。
【００１４】
また、請求項８に記載の発明は、請求項１記載の情報処理装置に供給するためのプログラムとパスコードとを生成するプログラムファイル生成装置に関する。
【００１５】
また、請求項９に記載の発明は、前記プログラムと前記パスコードとを暗号化して生成することを特徴とする請求項８記載のプログラムファイル生成装置に関する。
【００１６】
また、請求項１０に記載の発明は、前記プログラムと前記パスコードとを結合した上で、暗号化することを特徴とする請求項９記載のプログラムファイル生成装置に関する。
【００１７】
また、請求項１１に記載の発明は、デバッグ装置が、前記情報処理装置と認証を行う際に使用する暗号化された認証ファイルを、さらに生成する請求項１０記載のプログラムファイル生成装置に関する。
【００１８】
また、請求項１２に記載の発明は、前記プログラムと前記パスコードを結合し、暗号化する際に用いる暗号鍵と、前記認証ファイルを暗号化する際に用いる暗号鍵とは異なることを特徴とする請求項１１記載のプログラムファイル生成装置に関する。
【発明の効果】
【００１９】
本発明のデバッガ許可制御システムによれば、プログラム単位でのシステムのデバッガに対する制御が可能になることにより、プログラムのセキュリティレベルを設定することが可能となり、実行するプログラムのセキュリティレベルによって、デバッグの可否を制御することが可能となる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００２１】
（実施の形態１）
図１に本実施の形態における情報処理半導体装置２００を中心としたシステム全体のブロック図を示す。
【００２２】
情報処理半導体装置２００は、ＣＰＵ２１０、メモリ１２０２、メモリ２２３０、分解装置２２０、プログラム実行監視装置２４０、デバッグ許可装置２５０、デバッグポート２７０から構成されている。
【００２３】
メモリ１２０２は情報処理半導体装置２００と外部インターフェースを介して接続され、ＣＰＵ：２１０、メモリ２２３０、分解装置２２０、プログラム実行監視装置２４０、デバッグ許可装置２５０、デバッグポート２７０は情報処理半導体装置２００の内部に存在する形態が好ましい。
【００２４】
情報処理半導体装置２００はデバッグポート２７０を介して、デバッガ３００と接続してデバッグが行われる。
【００２５】
また、認証ファイル生成機１００が情報処理半導体装置２００とは独立に存在する。
【００２６】
図２にデバッグ許可装置２５０の詳細について示す。
【００２７】
デバッグ許可装置２５０は、パスコードレジスタ２５０２と、認証ファイルレジスタ２５０４の値を持つ。
【００２８】
それぞれのレジスタの値を演算器２５０６で演算する。
【００２９】
この演算結果と、プログラム実行許可装置２４０からＣＰＵ２１０がプログラムを実行中であること示す信号を受けて、デバッグポート２７０に対する制御を許可信号にて決定する。
【００３０】
図４で認証ファイル生成機１００での処理手順を示す。
【００３１】
認証ファイル生成機１００は情報処理半導体装置２００で扱うパスコードを付加するプログラムを読み込むＳ２０００。パスコードとＳ２０１２、パスコードと一対となるデバッガ用認証ファイルを生成するＳ２００２。パスコードをプログラムに結合するＳ２０１４。
【００３２】
認証ファイル生成機１００でパスコードを結合したプログラムを情報処理半導体装置：２００に提供し、メモリ１２０２に格納する。
【００３３】
デバッガ認証ファイルはデバッガ３００に提供する。
【００３４】
図５でデバッガ３００の接続処理手順を示す。
【００３５】
デバッガ３００は、情報処理半導体装置２００へ接続した時Ｓ３０００に、認証ファイルを、デバッグポートを介して認証ファイル用レジスタ２５０４に転送するＳ３００２。
【００３６】
図３に情報処理半導体装置：２００でのプログラム読み込み処理手順で示す。
【００３７】
パスコードつきプログラムはメモリ１２０２に保存されている。製品出荷時は、フラッシュＲＯＭなどの不揮発メモリに焼き付けられることが好ましい。
【００３８】
情報処理半導体装置２００は、ＣＰＵによりプログラムを分解器に読み出す指示を出すＳ１０００。
【００３９】
分解装置２２０は、メモリ１：２０２からパスコードつきプログラムを読み出し分解し、プログラムをメモリ２２３０に転送するＳ１００２。同時に、パスコードをデバッグ許可装置２５０のレジスタ２５０２に転送するＳ１００４。
【００４０】
メモリ２２３０は分解装置：２２０からプログラムが転送されると、プログラム実行監視装置２４０へプログラムの設定を通知するＳ１０２２。
【００４１】
プログラムの設定通知を受けて、プログラム実行監視装置２４０はＣＰＵ２１０のプログラム実行の監視を開始するＳ１０２４。
【００４２】
ＣＰＵ２１０は、メモリ２２３０からプログラムを読み出し実行するＳ１０１４。
【００４３】
プログラム実行監視装置２４０はＣＰＵ２１０がプログラム実行を開始するとプログラム実行中信号をデバッグ許可装置２５０へ通知するＳ１０２６。
【００４４】
一方、デバッグ許可装置２５０では、パスコードレジスタ２５０２と認証ファイルレジスタ２５０４を演算器２５０６で演算するＳ１００６。
【００４５】
デバッグ許可装置２５０は、上記演算結果とプログラム実行監視装置２４０からのプログラム実行中を受けて、デバッグポート２７０の許可・不許可を決定するＳ１００８。
【００４６】
デバッグ許可装置２５０は、上記の決定に従いデバッグポート２７０に対して許可または不許可の制御を行うＳ１０３０。
【００４７】
以上の構成によりデバッグの許可されないプログラムによる不正なデバッグ実行を防止することができる。
【００４８】
（実施の形態２）
図６に本実施の秘密鍵暗号化プログラムを用いた形態における情報処理半導体装置：２００を中心としたシステム全体のブロック図を示す。なお、本実施の形態で記載しない構成は実施の形態１と共通である。
【００４９】
情報処理半導体装置２００は、ＣＰＵ２１０、メモリ１２０２、メモリ２２３０、復号装置２６０、秘密鍵２６２、プログラム実行監視装置２４０、デバッグ許可装置２５０、デバッグポート２７０から構成されている。
【００５０】
メモリ１２０２は情報処理半導体装置２００と外部インターフェースを介して接続され、ＣＰＵ２１０、メモリ２２３０、復号装置２６０、秘密鍵２６２、プログラム実行監視装置２４０、デバッグ許可装置２５０、デバッグポート２７０は情報処理半導体装置２００の内部に存在する形態が好ましい。
【００５１】
情報処理半導体装置２００はデバッグポート２１０を介して、デバッガ３００と接続してデバッグが行われる。
【００５２】
また、認証ファイル生成機１００が情報処理半導体装置２００とは独立に存在する。
【００５３】
図８で認証ファイル生成機１００での処理手順を示す。
【００５４】
認証ファイル生成機１００は情報処理半導体装置２００で扱うパスコードを付加するプログラムを読み込むＳ２０００。パスコードとＳ２０１２、パスコードと一対となるデバッガ用認証ファイルを生成するＳ２００２。パスコードを含む秘密鍵暗号化プログラムを生成するＳ２０２２。
【００５５】
認証ファイル生成機１００でパスコードを含む秘密鍵暗号化プログラムを情報処理半導体装置２００に提供し、メモリ１２０２に格納する。
【００５６】
デバッガ認証ファイルはデバッガ３００に提供する。
【００５７】
図７に情報処理半導体装置２００でのプログラム読み込み処理手順で示す。
【００５８】
秘密鍵暗号化プログラムはメモリ１２０２に保存されている。製品出荷時は、フラッシュＲＯＭなどの不揮発メモリに焼き付けられることが好ましい。
【００５９】
情報処理半導体装置２００は、ＣＰＵによりプログラムを分解器に読み出す指示を出すＳ１０００。
【００６０】
復号装置２６０は、メモリ１２０２から秘密鍵暗号化プログラムを読み出し、秘密鍵２６２で暗号文を復号し、復号した平文プログラムをメモリ２に転送するＳ１０４２。同時に、パスコードをデバッグ許可装置２５０のレジスタ２５０２に転送するＳ１０４４。
【００６１】
メモリ２２３０は復号装置２６０から平文プログラムが転送されると、プログラム実行監視装置２４０へプログラムの設定を通知するＳ１０２２。
【００６２】
プログラムの設定通知を受けて、プログラム実行監視装置２４０はＣＰＵ２１０のプログラム実行の監視を開始するＳ１０２４。
【００６３】
ＣＰＵ２１０は、メモリ２２３０から平文プログラムを読み出し実行するＳ１０１４。
【００６４】
プログラム実行監視装置２４０はＣＰＵ２１０がプログラム実行を開始するとプログラム実行中信号をデバッグ許可装置２５０へ通知するＳ１０２６。
【００６５】
一方、デバッグ許可装置２５０では、パスコードレジスタ２５０２と認証ファイルレジスタ２５０４を演算器２５０６で演算するＳ１００６。
【００６６】
デバッグ許可装置２５０は、上記演算結果とプログラム実行監視装置２４０からのプログラム実行中を受けて、デバッグポート２７０の許可・不許可を決定するＳ１００８。
【００６７】
デバッグ許可装置２５０は、上記の決定に従いデバッグポート２７０に対して許可または不許可の制御を行うＳ１０３０。
【００６８】
以上の構成により、実施の形態１よりもセキュリティレベルを向上させることができる。
【００６９】
（実施の形態３）
図９に本実施の秘密鍵暗号化認証ファイルを用いた形態における情報処理半導体装置２００を中心としたシステム全体のブロック図を示す。なお、本実施の形態で記載しない構成は実施の形態１若しくは２と共通である。
【００７０】
情報処理半導体装置２００は、ＣＰＵ２１０、メモリ１２０２、メモリ２２３０、復号装置２６０、秘密鍵１２６２、プログラム実行監視装置２４０、デバッグ許可装置２５０、秘密鍵２２５６、デバッグポート２１０から構成されている。
【００７１】
メモリ１２０２は情報処理半導体装置２００と外部インターフェースを介して接続され、ＣＰＵ２１０、メモリ２２３０、復号装置２６０、秘密鍵１２６２、プログラム実行監視装置２４０、デバッグ許可装置２５０、秘密鍵２２５６、デバッグポート２７０は情報処理半導体装置２００の内部に存在する形態が好ましい。
【００７２】
情報処理半導体装置２００はデバッグポート２７０を介して、デバッガ３００と接続してデバッグが行われる。
【００７３】
また、認証ファイル生成機１００が情報処理半導体装置２００とは独立に存在する。
【００７４】
図１０にデバッグ許可装置２５０の詳細について示す。
【００７５】
デバッグ許可装置２５０は、パスコードレジスタ２５０２と、認証ファイルレジスタ２５０４の値を持つ。
【００７６】
認証ファイルレジスタ２５０４は、デバッグポート２７０からデータが送られた時に、秘密鍵２２５６を用いて暗号復号器２５１０によって復号されてから設定される。
【００７７】
パスコードレジスタ２５０２と、認証ファイルレジスタ２５０４の値を演算器２５０６で演算する。
【００７８】
この演算結果と、プログラム実行監視装置２４０からＣＰＵ２１０がプログラムを実行中であること示す信号を受けて、デバッグポート２７０に対する制御を許可信号にて決定する。
【００７９】
図１２で認証ファイル生成機１００での処理手順を示す。
【００８０】
認証ファイル生成機１００は情報処理半導体装置２００で扱うパスコードを付加するプログラムを読み込むＳ２０００。パスコードとＳ２０１２、パスコードと一対となるデバッガ用認証ファイルを生成するＳ２００２。
【００８１】
パスコードを含む秘密鍵暗号化プログラムを生成するＳ２０２２。
【００８２】
秘密鍵暗号化デバッガ用認証ファイルを生成するＳ２０３２。
【００８３】
認証ファイル生成機１００でパスコードを含む秘密鍵暗号化プログラムを情報処理半導体装置２００に提供し、メモリ１２０２に格納する。
【００８４】
秘密鍵暗号化デバッガ用認証ファイルはデバッガ３００に提供する。
【００８５】
図１１に情報処理半導体装置２００でのプログラム読み込み処理手順で示す。
【００８６】
秘密鍵暗号化プログラムはメモリ１２０２に保存されている。製品出荷時は、フラッシュＲＯＭなどの不揮発メモリに焼き付けられることが好ましい。
【００８７】
情報処理半導体装置２００は、ＣＰＵによりプログラムを分解器に読み出す指示を出すＳ１０００。
【００８８】
復号装置２６０は、メモリ１２０２から秘密鍵暗号化プログラムを読み出し、秘密鍵１２６２で暗号文を復号し、復号した平文プログラムをメモリ２に転送するＳ１０４２。同時に、パスコードをデバッグ許可装置２５０のレジスタ２５０２に転送するＳ１０４４。
【００８９】
メモリ２２３０は復号装置２６０から平文プログラムが転送されると、プログラム実行監視装置２４０へプログラムの設定を通知するＳ１０２２。
【００９０】
プログラムの設定通知を受けて、プログラム実行監視装置２４０はＣＰＵ２１０のプログラム実行の監視を開始するＳ１０２４。
【００９１】
ＣＰＵ２１０は、メモリ２２３０から平文プログラムを読み出し実行するＳ１０１４。
【００９２】
プログラム実行監視装置２４０はＣＰＵ２１０がプログラム実行を開始するとプログラム実行中信号をデバッグ許可装置２５０へ通知するＳ１０２６。
【００９３】
一方、デバッグ許可装置２５０では、秘密鍵暗号化デバッガ用認証ファイルを秘密鍵２２５６を用いて暗号復号器２５１０で復号し、認証ファイルレジスタ２５０４に設定するＳ１０６２。
【００９４】
パスコードレジスタ２５０２と認証ファイルレジスタ２５０４を演算器２５０６で演算するＳ１００６。
【００９５】
デバッグ許可装置２５０は、上記演算結果とプログラム実行監視装置２４０からのプログラム実行中を受けて、デバッグポート２７０の許可・不許可を決定するＳ１００８。
【００９６】
デバッグ許可装置２５０は、上記の決定に従いデバッグポート２７０に対して許可または不許可の制御を行うＳ１０３０。
【００９７】
なお本実施の形態における秘密鍵１（２６２）と、秘密鍵２（２５６）は異なるが、これらを共通とすることもできる。
【００９８】
以上の構成により、実施の形態２よりもさらにセキュリティレベルを向上させることができる。
【産業上の利用可能性】
【００９９】
本発明は、認証ファイル生成機によるパスコードつきのプログラムの生成と、そのパスコードに対応した認証ファイルを生成、および情報処理半導体装置のデバッグ許可装置による復号装置からのパスコードとデバッガからの認証ファイルとの演算によりデバッガポートを選択的に制御することで、プログラム単位でのデバッガ制御が可能となる。本発明は、アルゴリズムの保護が必要なプログラムを搭載する情報処理半導体装置全般に利用することができ、その産業上の利用可能性は非常の広く且つ大きい。
【図面の簡単な説明】
【０１００】
【図１】本実施の形態における情報処理半導体装置を中心としたシステム全体のブロック図
【図２】デバッグ許可装置の詳細図
【図３】情報処理半導体装置でのプログラムの読み込み手順を示す図
【図４】認証ファイル生成機の処理手順を示す図
【図５】デバッガによる認証ファイルの転送手順を示す図
【図６】暗号化プログラムを伴う情報処理半導体装置を中心としたシステム全体のブロック図
【図７】暗号化プログラムを伴う情報処理半導体装置でのプログラムの読み込み手順を示す図
【図８】暗号化プログラムを伴う認証ファイル生成機の処理手順を示す図
【図９】暗号化認証ファイルを伴う情報処理半導体装置を中心としたシステム全体のブロック図
【図１０】暗号化認証ファイルを伴うデバッグ許可装置の詳細図
【図１１】暗号化認証ファイルを伴う情報処理半導体装置でのプログラムの読み込み手順を示す図
【図１２】暗号化認証ファイルを伴う認証ファイル生成機の処理手順を示す図
【図１３】従来の技術のブロック図
【符号の説明】
【０１０１】
１００    認証ファイル生成機
２００    情報処理半導体装置
２０２    メモリ１
２１０    ＣＰＵ
２２０    分解装置
２３０    メモリ２
２４０    プログラム実行監視装置
２５０    デバッグ許可装置
２５０２    パスコードレジスタ
２５０４    認証ファイルレジスタ
２５０６    演算器
２５１０    暗号復号器
２５６    秘密鍵２
２６０    復号装置
２６２    秘密鍵１
２７０    デバッグポート
３００    デバッガ
【図１】
2007226276.tif 000003
【図２】
2007226276.tif 000004
【図３】
2007226276.tif 000005
【図４】
2007226276.tif 000006
【図５】
2007226276.tif 000007
【図６】
2007226276.tif 000008
【図７】
2007226276.tif 000009
【図８】
2007226276.tif 000010
【図９】
2007226276.tif 000011
【図１０】
2007226276.tif 000012
【図１１】
2007226276.tif 000013
【図１２】
2007226276.tif 000014
【図１３】
2007226276.tif 000015