(57)【要約】【課題】  本発明はマイコンにおけるセキュリティ保護装置に関し、特に外部端子を必要とせず、ＩＣＥの使用の可否を制御でき、セキュリティを確保するセキュリティ保護装置を提供するものである。【解決手段】  本発明は、ＩＣＥ６から照合データをＪＴＡＧＩ/Ｆ２に供給し、内蔵メモリ４の対応するアドレスのデータを参照データとして取得し、比較回路で両データを比較することによって、両データの一致を判断してロック機構の解除を行う構成であり、不一致データが所定値以下の場合でもロック機構の解除を行う。このように構成することにより、ロック解除の為に専用の端子を設ける必要がなく、セキュリティを確保したロック解除装置を提供することができる。【選択図】図１
2007094632.tif 000002
【特許請求の範囲】
【請求項１】
マイコン内のメモリの特定アドレスに記憶されたデータ照合に使用する照合データを入力する入力手段と、
前記メモリに記憶された特定アドレスのデータを参照データとして前記メモリから読み出す読出手段と、
前記照合データと参照データを比較する比較手段と、
該比較手段の比較結果に従って前記マイコンのセキュリティロックを解除する解除手段と、
を有することを特徴とするセキュリティ保護装置。
【請求項２】
前記セキュリティロックの解除は、ＪＴＡＧインターフェースの無効化解除であることを特徴とする請求項１記載のセキュリティ保護装置。
【請求項３】
前記解除手段は、前記照合データと参照データの不一致回数が規定値以下であるとき、前記セキュリティロックを解除することを特徴とする請求項１記載のセキュリティ保護装置。
【請求項４】
前記照合データと参照データの不一致回数は、カウンタによって計数されることを特徴とする請求項３記載のセキュリティ保護装置。
【請求項５】
前記特定アドレスは、任意に設定できることを特徴とする請求項１記載のセキュリティ保護装置。
【請求項６】
前記特定アドレスは、前記照合データの先頭に付加されて前記マイコンに供給されることを特徴とする請求項５記載のセキュリティ保護装置。
【請求項７】
マイコン内のメモリの特定アドレスに記憶されたデータの照合に使用する照合データを入力する入力処理と、
前記メモリに記憶された特定アドレスのデータを参照データとして前記メモリから読み出す読出処理と、
前記照合データと参照データを比較する比較処理と、
該比較結果に従って前記マイコンのセキュリティロックを解除する解除処理と、
を行うことを特徴とするセキュリティ保護方法。
【請求項８】
マイコン内のメモリの特定アドレスに記憶されたデータの照合に使用する照合データを入力する入力機能と、
前記メモリに記憶された特定アドレスのデータを参照データとして前記メモリから読み出す読出機能と、
前記照合データと参照データを比較する比較機能と、
該比較結果に従って前記マイコンのセキュリティロックを解除する解除機能と、
を実行するプログラムであり、情報処理装置が実行可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイクロプロセッサやマイクロコントローラにおけるセキュリティ保護装置に関する。
【背景技術】
【０００２】
ＣＰＵコアを有するマイクロプロセッサ、及びマイクロコントローラ（以下、単にマイコンで示す）におけるセキュリティ保護装置として、図９に示す回路が知られている。同図に示す回路は、セキュリティ機能を重視したマイコンの基本構成であり、マイコン３０はチップ内部にＪＴＡＧＩ/Ｆ（Joint European Test Action Group  Ｉ/Ｆ）３１を有し、ＩＣＥ（In Circuit Emulater）３６からテストコードを入力し、マイコン３０のデバッグを行う。尚、ＣＰＵ３２はデバッグ中機能しないが、通常はマイコン３０の中央処理部として機能する。
【０００３】
デバッグ終了後は、セキュリティ確保のため一切のアクセスを禁止すべく、ロック機構３３によって内蔵メモリ３４内の保護用ビットをセットし、ＪＴＡＧＩ/Ｆ３１を無効化している。このように構成することにより、以後のマイコン３０へのアクセスを禁止し、内蔵メモリ３４に記憶されたプログラムやデータの保護を図っている。
【０００４】
一方、ＪＴＡＧＩ/Ｆ３１を無効化した後であっても、障害調査等の為、一時的にマイコン３０内部の確認が必要になる場合がある。この為、従来同図に示すように、マイコン３０に解除機構３５を設け、例えば複数本の外部端子を介してＨ／Ｌ信号を入力し、ロック解除を行っている。
【０００５】
例えば、特許文献１はこの方式を採用している。すなわち、半導体回路において、フラッシュROMのセキュリティビットに、例えば１を書き込み、ＪＴＡＧＩ/Ｆを無効化すると共に、Ｐinスクランブル回路を設け、データ書き込み後の動作不具合に対して回路解析を可能としている。
【特許文献１】特開２００２−３２２６７号公報（段落番号００１９〜００２３、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来例の場合、後に回路解析を可能にするため、外部端子が必要である。このことは、コストや実装面積の点からパッケージの端子数やサイズを限界まで削減することが要求されるマイコンにとって厳しい制約となる。
【０００７】
また、上記外部端子は、ユーザ機能や電源端子と共用できないため、仕様上は空端子としておく必要があり、セキュリティ機能を突破しようとする第三者に解析の糸口を与えることになる。
そこで、本発明は外部端子を必要とせず、セキュリティを確保しつつＩＣＥの使用可否を制御できるセキュリティ保護装置を提供するものである。
【課題を解決するための手段】
【０００８】
上記課題は本発明によれば、マイコン内のメモリの特定アドレスに記憶されたデータの照合に使用する照合データを入力する入力手段と、前記メモリに記憶された特定アドレスのデータを参照データとして前記メモリから読み出す読出手段と、前記照合データと参照データを比較する比較手段と、該比較手段の比較結果に従って前記マイコンのセキュリティロックを解除する解除手段とを有するセキュリティ保護装置を提供することによって達成できる。
【０００９】
このように構成することにより、外部端子を使用することなく、ＩＣＥを接続し、デバッグ禁止の解除処理を行うことができる。
また、上記解除手段は、例えば照合データと参照データの不一致率が規定値以下であるとき、ロックを解除する構成である。このように構成することにより、ＪＴＡＧインターフェースの無効化を解除でき、セキュリティを確保しつつ効率のよいロック解除を行うことができる。尚、前記照合データと参照データの不一致率は、例えばカウンタによってバイト毎に計数する。
【００１０】
さらに、前記特定アドレスは、任意に設定することができる。このように構成することにより、例えば所謂ビット化けが生じ難いエリアのデータを参照データとして指定することができ、より確実なロック解除処理を行うことができる。
【発明の効果】
【００１１】
本発明によれば、外部端子を使用することなく、確実にセキュリティを維持し、ＩＣＥの接続可否を判断し、必要なマイコン調査を可能とすることができる。
また、内部メモリのビット化けが存在する場合でも、規定値以下であればＪＴＡＧインターフェースの無効化を解除でき、セキュリティを確保して効率のよいロック解除を行うことができる。
【００１２】
さらに、ビット化けが生じ難いエリアのデータを参照データとして指定することができ、より確実なロック解除処理を行うことができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
（実施形態１）
図１は、本実施形態のセキュリティ保護装置の原理説明図である。
【００１４】
同図において、マイコン１はＪＴＡＧＩ/Ｆ２、ＣＰＵ３、内蔵メモリ４、ロック機構５で構成されている。また、ＪＴＡＧＩ/Ｆ２にはＩＣＥ６が接続可能に構成されている。
【００１５】
ＩＣＥ６は、マイコン１の実行状態を確認するリアル・タイム・トレース機能や、任意のアドレスで実行を止めるブレーク機能等を有し、ＪＴＡＧＩ/Ｆ２にテストコードを供給し、デバッグ処理を行う。本例においては、ＪＴＡＧＩ/Ｆ２が無効状態において、ＪＴＡＧＩ/Ｆ２の無効状態を解除させるため後述する照合データを出力する。
【００１６】
ＪＴＡＧＩ/Ｆ２は、通常はＩＣＥ６によるデバッグ処理の際のインタフェースとして機能するが、本例においてはＩＣＥ６から出力される照合データをロック機構５に供給し、例えばＩＣＥ６から出力されるリセット信号を後述する制御回路に供給する。
【００１７】
ロック機構５はデバッグ終了後、例えば内蔵メモリ４内の保護用ビットをセットすることによりＪＴＡＧＩ/Ｆ２にロック指示を行い、ＪＴＡＧＩ/Ｆ２を無効化すると共に、ＪＴＡＧＩ/Ｆ２の無効化後において比較結果に基づくロック解除指示を行う。すなわち、ＪＴＡＧＩ/Ｆ２を介して供給される上記照合データと、内蔵メモリ４から読み出される参照データとの比較結果に基づいてロック解除指示を行う。尚、ＣＰＵ３はマイコン１の中央処理部であり、例えばメモリバスや入出力ポートに接続される。
【００１８】
図２は上記ロック機構５の具体的な回路図である。ロック機構５は不一致カウンタ７、制御回路８、及び比較回路９で構成されている。前述のロック機構５に供給される照合データは上記比較回路９に入力すると共に、制御回路８に入力する。また、制御回路８からリードアドレスが内蔵メモリ４に出力され、内蔵メモリ４から参照データが読み出され、当該参照データは比較回路９に出力される。
【００１９】
比較回路９では両データを比較し、両データが不一致である時、不一致カウンタ７に信号を送り、不一致カウンタ７を順次カウントアップする。制御回路８は不一致カウンタ７から出力される計数値に基づいてロック指示、又はロック解除指示を行う。尚、リセット信号は不一致カウンタ７及び制御回路８に供給され、両回路を初期状態に設定する。
【００２０】
図３は、更に上記制御回路８の具体的な回路構成を示す図である。制御回路８は、セレクタ１０、＋１インクリメント回路１１、アドレスラッチ１２、シーケンサ１３、及びロック指示生成回路１４で構成されている。
【００２１】
シーケンサ１３はＩＣＥ６の接続可否のシーケンス制御を行う回路であり、比較処理中のデータの個数をカウントするカウンタを有し、前述の照合データの入力に同期して当該カウンタ、及び上記アドレスラッチ１２の更新用クロックを供給する。
【００２２】
アドレスラッチ１２には内蔵メモリ４に供給するアドレスデータがラッチされ、セレクタ１０を介して供給される電源クリップに同期して予め設定されたリードアドレスの初期値がラッチされる。＋１インクリメント回路１１は上記アドレスラッチ１２にラッチされたアドレスデータを順次＋１し、アドレスラッチ１２に出力する。したがって、アドレスラッチ１２には予め設定されたリードアドレスを初期アドレスとして、以後順次＋１されたアドレスデータがラッチされる。尚、セレクタ１０にはシーケンサ１３から選択信号が出力される。
【００２３】
また、前述の不一致カウンタ７から出力されるカウントデータは、ロック指示生成回路１４に供給される。ロック指示生成回路１４は、例えばシーケンサ１３から比較処理の終了指示信号を受信すると、ＩＣＥ６の接続可否の判定を行う。尚、シーケンサ１３へはＪＴＡＧＩ/Ｆ２から照合データの出力に同期したクロック信号が供給される。
【００２４】
以上の構成において、以下に本例の処理動作を説明する。
本例ではマイコン１へのリセット信号入力後、ロック指示を初期状態として処理を行う。例えば、上記リセット信号は電源投入により発生し、不一致カウンタ７及び制御回路８を初期状態に設定すると共に、電源クリップによって前述のアドレスラッチ１２にリードアドレスの初期値をセットする。この状態において、図４に示すフローチャートの処理動作が開始する。
【００２５】
先ず、ＩＣＥ６から１バイトの照合データを出力する（ステップ（以下、Sで示す）１）。図５は、照合データのフォーマットを示す図であり、バイト単位の照合データ（＃１〜＃ｎ）がＪＴＡＧＩ/Ｆ２を介して比較回路９に供給される。
【００２６】
次に、内蔵メモリ４から対応する参照データを読み出す（Ｓ２）。この処理は、アドレスラッチ１２にラッチされた初期アドレスをリードアドレスとして内蔵メモリ４に供給し、内蔵メモリ４の対応するエリアから参照データを読み出す処理である。この参照データは前述のように比較回路９に供給される。
【００２７】
次に、比較回路９では、入力した照合データと参照データを比較する（Ｓ３）。ここで、両データが一致する場合（Ｓ４がＹ）、所定のデータ数の処理が完了したか判断する（Ｓ５）。一方、上記比較処理において、両データが不一致である場合（Ｓ４がＮ）、不一致カウンタ７をカウントアップし（Ｓ６）、所定のデータ数の処理が完了したか判断する（Ｓ５）。
【００２８】
最初の処理では、図５に示す１バイトのデータ（＃１）に対する比較処理が行われ、最初の判断（Ｓ５）はＮ（ノー）である。したがって、この場合上記処理を繰り返し（Ｓ１〜Ｓ６）、次の１バイトのデータ（＃２）について同様に照合データと参照データの比較処理を行う。
【００２９】
以後、同様にして１バイトのデータ＃３、＃４、・・・について比較処理を繰り返し、最後の１バイトデータ（＃ｎ）に対する比較処理が完了すると（Ｓ５がＹ）、不一致データの数が規定値以下であるか判断する（Ｓ７）。この判断は、前述のロック指示生成回路１４によって行われ、ロック指示生成回路１４は不一致カウンタ７から出力される不一致数のカウント値に基づいて判断し、例えば不一致データの数が規定値以下であるとき（Ｓ７がＹ）、ロック解除の指示信号をＪＴＡＧＩ/Ｆ２に出力する（Ｓ８）。一方、不一致データの数が規定値以上であるとき（Ｓ７がＮ）、処理を終了し、ＪＴＡＧＩ/Ｆ２の無効状態を維持する。
【００３０】
このように構成することにより、ＩＣＥ６から供給する照合データは、開発者しか知りえない内蔵メモリ４内のデータであり、このデータが鍵となり、確実にセキュリティを維持しつつＪＴＡＧＩ/Ｆ２の無効化を解除することができる。
【００３１】
一方、内蔵メモリ４のデータが一部破壊された場合でも、不一致データ数が予め設定された規定値を越えない限りＪＴＡＧＩ/Ｆ２の無効化を解除することができる。例えば、比較処理を１０００回行う場合、不一致カウンタ７のカウント値が１０以下であれば無効化の解除を行うように構成する。尚、規定値の設定は、上記例に限らず、チップ製造時のバラツキ等を考慮して任意に設定可能である。
【００３２】
（実施形態２）
次に、本発明の実施形態２について説明する。
図６は本実施形態で使用する制御回路の具体的な回路図である。尚、本例の制御回路は前述の図２の構成のロック機構５内に配設された回路であり、ロック機構５は前述の図１で説明したパソコン１内に配設されたものである。
【００３３】
本例の制御回路２０は、セレクタ２１、＋１インクリメント回路２２、アドレスラッチ２３、シーケンサ２４、及びロック指示生成回路２５で構成されている。前述と同様、アドレスラッチ２３には内蔵メモリ４に供給するアドレスデータがラッチされるが、本例では初期アドレスとして、セレクタ２１を介して供給される照合データに含まれるリードアドレスがラッチされる。
【００３４】
＋１インクリメント回路２２は上記アドレスラッチ２３にラッチされたリードアドレスを順次インクリメントし、アドレスラッチ２３にラッチされるリードアドレスを順次更新する。したがって、本例では照合データに含まれるリードアドレスを初期アドレスとし、以後順次＋１されるリードアドレスを内蔵メモリ４に供給する。
【００３５】
一方、不一致カウンタ７から供給される計数値のデータは、前述と同様、ロック指示生成回路２５に出力される。ロック指示生成回路２５では、予め設定された規定値より小さい時、ロック解除信号をＪＴＡＧＩ/Ｆ２に出力する。尚、リセット信号、及びクロック信号がシーケンサ２４に供給される構成は前述の実施形態と同じである。
【００３６】
以上の構成において、以下に本例の処理動作を説明する。
図７は本例の処理動作を説明するフローチャートである。本例においては、先ず照合データの先頭データを比較開始アドレスとして設定する（ステップ（以下、SＴで示す）１）。図８は、照合データのフォーマットを示す図であり、バイト単位の照合データ（＃１〜＃ｎ）の前に先頭アドレスが記述されている。したがって、この先頭アドレスのデータが、シーケンサ２４からの選択信号によって切り換えられたセレクタ２１を介してアドレスラッチ２３に供給され、アドレスラッチ２３にリードアドレスの初期値がラッチされる。
【００３７】
次に、ＩＣＥ６から１バイトの照合データが供給され（SＴ２）、先ずバイト単位の照合データ（＃１）が比較回路６に入力する。また、内蔵メモリ４から対応する参照データが読み出される（ＳＴ３）。この処理は、前述のアドレスラッチ２３にラッチされたリードアドレスに基づいて内蔵メモリ４から読み出された参照データである。
【００３８】
次に、比較回路９では、供給された照合データと参照データを比較し（ＳＴ４）、両データが一致する場合（ＳＴ５がＹ）、所定のデータ数の処理が完了したか判断する（ＳＴ６）。一方、上記比較処理において、両データが不一致である場合（ＳＴ５がＮ）、不一致カウンタ７をカウントアップし（ＳＴ７）、所定のデータ数の処理が完了したか判断する（ＳＴ６）。
【００３９】
本例においても、最初の処理では、図８に示す１バイトデータはデータ（＃１）であり、最初の判断（ＳＴ６）はＮであり、上記処理を繰り返し（ＳＴ２〜ＳＴ７）、次の１バイトのデータ（＃２）について照合データと参照データを比較する。
【００４０】
以後、同様にして１バイトのデータ＃３、＃４、・・・について比較処理を繰り返し、所定のｎバイトのデータ比較を完了すると（ＳＴ６がＹ）、前述と同様、不一致データの数が規定値以下であるか判断する（ＳＴ８）。そして、例えば不一致データの数が規定値以下であるとき（ＳＴ８がＹ）、ロック解除指示信号をＪＴＡＧＩ/Ｆ２に出力する（ＳＴ９）。
【００４１】
以上のように、本例によっても、前述と同様、開発者しか知りえない内蔵メモリ４のデータを鍵として比較処理を行う構成であり、確実にセキュリティを維持しつつＪＴＡＧＩ/Ｆ２の無効化を解除することができ、以後ＩＣＥ６を接続してマイコン１の調査を行うことができる。
【００４２】
さらに、本例においては任意に比較データを指定することができ、例えばデータ破損の可能性の少ない内蔵メモリ４のアドレスを指定して比較処理を行うことができ、より効率よく安定したＪＴＡＧＩ/Ｆの無効化解除を行うことができる。
【００４３】
（付記１）  マイコン内のメモリの特定アドレスに記憶されたデータの照合に使用する照合データを入力する入力手段と、
前記メモリに記憶された特定アドレスのデータを参照データとして前記メモリから読み出す読出手段と、
前記照合データと参照データを比較する比較手段と、
該比較手段の比較結果に従って前記マイコンのセキュリティロックを解除する解除手段と、
を有することを特徴とするセキュリティ保護装置。
（付記２）  前記入力手段はＩＣＥから前記照合データを入力し、該照合データは特定人しか知りえないデータであり、前記セキュリティロックの解除により、前記ＩＣＥを使用可能とする付記１記載のセキュリティ保護装置。
（付記３）  セキュリティロックの解除は、ＪＴＡＧインターフェースの無効化解除であることを特徴とする付記１記載のセキュリティ保護装置。
（付記４）  前記解除手段は、前記照合データと参照データの不一致回数が規定値以下であるとき、前記セキュリティロックを解除することを特徴とする付記１記載のセキュリティ保護装置。
（付記５）  前記照合データと参照データの不一致回数は、カウンタによって計数されることを特徴とする付記４記載のセキュリティ保護装置。
（付記６）  前記特定アドレスは、リセット信号の入力に基づいてアドレスラッチにラッチされることを特徴とする付記１記載のセキュリティ保護装置。
（付記７）  前記リセット信号は、装置の電源入力に従って生成されることを特徴とする付記６記載のセキュリティ保護装置。
（付記８）  前記アドレスラッチにラッチされたアドレスデータは順次インクリメントされ、順次インクリメントされるアドレスデータに従って前記メモリから参照データが読み出されることを特徴とする付記６、又は７記載のセキュリティ保護装置。
（付記９）  前記特定アドレスは、任意に設定できることを特徴とする付記１記載のセキュリティ保護装置。
（付記１０）  前記特定アドレスは、前記照合データの先頭に付加されて前記マイコンに供給されることを特徴とする付記９記載のセキュリティ保護装置。
（付記１１）  前記任意に設定された特定アドレスは、アドレスラッチにラッチされることを特徴とする付記９、又は１０記載のセキュリティ保護装置。
（付記１２）  前記アドレスラッチにラッチされたアドレスデータは順次インクリメントされ、順次インクリメントされるアドレスデータに従って前記メモリから参照データが読み出されることを特徴とする付記１１記載のセキュリティ保護装置。
（付記１３）  マイコン内のメモリの特定アドレスに記憶されたデータの照合に使用する照合データを入力する入力処理と、
前記メモリに記憶された特定アドレスのデータを参照データとして前記メモリから読み出す読出処理と、
前記照合データと参照データを比較する比較処理と、
該比較結果に従って前記マイコンのセキュリティロックを解除する解除処理と、
を行うことを特徴とするセキュリティ保護方法。
（付記１４）  マイコン内のメモリの特定アドレスに記憶されたデータの照合に使用する照合データを入力する入力機能と、
前記メモリに記憶された特定アドレスのデータを参照データとして前記メモリから読み出す読出機能と、
前記照合データと参照データを比較する比較機能と、
該比較結果に従って前記マイコンのセキュリティロックを解除する解除機能と、
を実行するプログラムであり、情報処理装置が実行可能なプログラム。
【図面の簡単な説明】
【００４４】
【図１】本実施形態のセキュリティ保護装置の原理説明図である。
【図２】ロック機構の具体的な回路図である。
【図３】実施形態１の制御回路の回路図である。
【図４】実施形態１の処理を説明するフローチャートである。
【図５】実施形態１で使用するデータフォーマットの例を示す図である。
【図６】実施形態２の制御回路の回路図である。
【図７】実施形態２の処理を説明するフローチャートである。
【図８】実施形態２で使用するデータフォーマットの例を示す図である。
【図９】従来例のセキュリティ保護装置を説明する図である。
【符号の説明】
【００４５】
１      マイコン
２      ＪＴＡＧＩ/Ｆ
３      ＣＰＵ
４      内蔵メモリ
５      ロック機構
６      ＩＣＥ
７      不一致カウンタ
８      制御回路
９      比較回路
１０      セレクタ
１１      ＋１インクリメント回路
１２      アドレスラッチ
１３      シーケンサ
１４      ロック指示生成回路
２０      制御回路
２１      セレクタ
２２      ＋１インクリメント回路
２３      アドレスラッチ
２４      シーケンサ
２５      ロック指示生成回路
【図１】
2007094632.tif 000003
【図２】
2007094632.tif 000004
【図３】
2007094632.tif 000005
【図４】
2007094632.tif 000006
【図５】
2007094632.tif 000007
【図６】
2007094632.tif 000008
【図７】
2007094632.tif 000009
【図８】
2007094632.tif 000010
【図９】
2007094632.tif 000011