説明

プログラム不正実行防止機能付きプロセッサ

【課題】 予め配布制限されているプログラムに対応するキーコードを作成し、プログラムを実行する時に、実行プログラムの任意のコードとキーコードを比較してプログラム不正実行を防止する。
【解決手段】 デジタル信号処理装置1は、ダウンロードインターフェース11、DSPコア12、プログラムメモリ13、データメモリ14、周辺回路15、キーコードメモリ16から構成され、それぞれ内部バスで接続されている。デジタル信号処理装置1と外部制御装置2及び外部メモリ3とは外部バス4を介して接続されている。キーコードメモリ16には配布制限されているアプリケーションプログラムのコードに対応するキーコード情報が格納され、実行アプリケーションプログラムのコードとキーコードを比較することによりプログラム不正実行を防止する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プロセッサに係り、特にデジタル信号処理装置におけるプログラム不正実行を防止する技術に関する。
【背景技術】
【0002】
最近の電子機器は、高速化、低消費電力化を実現するために専用の信号処理回路やソフトウエアによる信号処理を組み合わせて設計され、ソフトウエアによる信号処理では汎用プロセッサばかりでなく、デジタル信号処理装置(DSPとも呼称される)も用いられている。そして、電子機器の高機能化の進展に伴い、この機能を実現するために、デジタル信号処理装置のアプリケーションが増加する傾向にある。近年、アプリケーションの増加による内部ROM(Read Only Memory)の容量増加を抑制するために、アプリケーションプログラムを外部メモリに格納してコストの上昇を抑制している。
【0003】
更に、外部制御装置は外部メモリに格納され、各種機能に対応するデジタル信号処理用コードを実行アプリケーションにしたがって、随時外部メモリからデジタル信号処理装置内の内部メモリに転送している。このため、1台のデジタル信号処理装置を用いて様々なアプリケーションを実行でき、アプリケーションプログラムの配布を制限することで各種機能の実現に制限をかけている。(例えば、特許文献1参照。)。
【0004】
ところが、第三者が何らかの理由で配布制限のアプリケーションプログラムを入手した場合、第三者はアプリケーションプログラムをデジタル信号処理装置に転送して、プログラムを自由に実行することができるという問題点がある。
【特許文献1】特開2001−297006号公報(頁9 図1、頁10 図3)
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は、予め配布制限されているプログラムに対応するキーコードを作成し、プログラムの実行時に実行プログラムの任意のコードとキーコードを比較し、プログラムの実行を制限するプログラム不正実行防止機能付きプロセッサを提供する。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明の一態様のプログラム不正実行防止機能付きプロセッサは、制御装置とデジタルデータをやりとりするダウンロードインターフェースと、前記ダウンロードインターフェースを介して転送されるアプリケーションプログラムのコードに対応するキーコードを作成する作成手段と、前記キーコードを内部メモリに書き込む書き込み手段と、前記アプリケーションプログラムを実行する際に、前記アプリケーションプログラムの任意のコードと前記キーコードとを比較する比較手段と、前記アプリケーションプログラムが予め決められたものの場合、前記アプリケーションプログラムの実行を制限する制限手段とを具備することを特徴とする。
【0007】
更に、上記目的を達成するために、本発明の他態様のプログラム不正実行防止機能付きプロセッサは、制御装置とデジタルデータをやりとりするダウンロードインターフェースと、前記ダウンロードインターフェースを介して送信されるアプリケーションプログラムのコードに対応するキーコードを作成する作成手段と、前記キーコードを内部メモリに書き込む書き込み手段と、前記アプリケーションプログラムを実行する際に、前記アプリケーションプログラムの任意のコードと前記キーコードとを比較する比較手段と、前記アプリケーションプログラムが予め決められたものの場合、前記アプリケーションプログラムの実行を制限する制限手段と、前記内部メモリ内に格納されている前記キーコード情報を外部に読み出すことを制限する秘密鍵とを具備することを特徴とする。
【発明の効果】
【0008】
本発明によれば、予め配布制限されているプログラムに対応するキーコードを作成し、プログラムの実行時に実行プログラムの任意のコードとキーコードを比較し、プログラムの実行を制限するプログラム不正実行防止機能付きプロセッサを提供することができる。
【発明を実施するための最良の形態】
【0009】
以下本発明の実施例について図面を参照しながら説明する。
【実施例1】
【0010】
まず、本発明の実施例1に係るプログラム不正実行防止機能付きプロセッサとしてのデジタル信号処理装置について、図面を参照して説明する。図1はデジタル信号処理装置を示すシステムブロック図である。本実施例では、デジタル信号処理装置にアプリケーションプログラムのキーコード情報を記憶するキーコードメモリを設けている。
【0011】
図1に示すように、デジタル信号処理装置1は、ダウンロードインターフェース11、DSP(Digital Signal Processor)コア12、プログラムメモリ13、データメモリ14、周辺回路15、キーコードメモリ16から構成されている。ダウンロードインターフェース11、DSPコア12、プログラムメモリ13、データメモリ14、周辺回路15、及びキーコードメモリ16は、内部バス17でそれぞれ接続され、デジタル信号処理装置1と外部制御装置2及び外部メモリ3とは外部バス4を介して接続されている。
【0012】
外部制御装置2は、デジタル信号処理装置1での各種処理作業を統括する、例えば、プロセッサからなり、外部バス4を介して制御信号をデジタル信号処理装置1に送信する。そして、実行アプリケーションプログラム及びデータがデジタル信号処理装置1内のプログラムメモリ13及びデータメモリ14に格納されていない場合、外部メモリ3に格納されている実行アプリケーション用のプログラム及びデータを呼び出して、外部バス4を介してこの情報をデジタル信号処理装置1に送信する。
【0013】
外部メモリ3は、例えば、デジタル信号処理装置1よりも比較的処理速度が遅い大容量のフラッシュメモリやRAMからなり、デジタル信号処理装置1の実行アプリケーション用の各種プログラム及びデータを格納する。
【0014】
ダウンロードインターフェース11は、外部バス4を介して外部制御装置2及び外部メモリ3と接続され、内部バス17を介して実行アプリケーション用の各種プログラム及びデータをプログラムメモリ13及びデータメモリ14に送信する。
【0015】
DSPコアは、例えば、アプリケーションコードの実行及び分岐、ループ制御を行うプログラム制御ユニット(PCU)、すべてのビット操作の制御を行うビット制御ユニット(BMU)、すべての命令やデータアドレスの演算処理を行うアドレス生成ユニット(AGU)、加減算や論理演算などの演算処理、高速並列処理を行う論理演算ユニット(ALU)から構成されている。そして、プログラムメモリ13及びデータメモリ14に格納される実行アプリケーション用のプログラム及びデータをもとにデジタル信号処理を行う。
【0016】
内部メモリとしてのプログラムメモリ13は、外部メモリ3から転送された実行アプリケーション用のプログラムを格納する。内部メモリとしてのデータメモリ14は外部メモリ3から転送された実行アプリケーション用のデータを格納する。プログラムメモリ13及びデータメモリ14は、それぞれ外部メモリ3よりもメモリ容量が格段に少ない。周辺回路15は、タイマ、ウオッチドックタイマ(WDT)、リアルタイムクロック(RTC)機能などを有している。
【0017】
内部メモリとしてのキーコードメモリ16は、アプリケーションプログラムに配布制限があるか否かの情報及びアプリケーションプログラムに配布制限がある場合に付加されるキーコード情報を格納する。ここで、デジタル信号処理装置1内に配布制限があるか否かの情報及びキーコード情報を記憶するキーコードメモリ16を設けているが、配布制限があるか否かの情報及びキーコード情報を内部メモリとしてのデータメモリ14等に格納してもよい。
【0018】
次に、アプリケーションプログラムの実行、及びキーコードの書き換えについて、それぞれ図2及び図3を参照して説明する。図2はアプリケーションプログラムの実行手順を示すフローチャート、図3はキーコードの書き換え手順を示すフローチャートである。ここで、キーコードの作成及び書き換えを行うのはデジタル信号処理装置1の装置管理者又は装置管理者の代行者を想定している。そして、アプリケーションプログラム特有のコードに対応するキーコードは予め作成され、キーコードメモリ内に格納されている。
【0019】
図2に示すように、まず、外部制御装置2は外部メモリ3に格納されている実行アプリケーション用のプログラム及びデータを呼び出す(ステップS1)。次に、外部制御装置2はこのプログラム及びデータをデジタル信号処理装置1に転送し、実行アプリケーション用のプログラム及びデータをそれぞれプログラムメモリ13及びデータメモリ14に格納する(ステップS2)。
【0020】
続いて、外部制御装置2は、デジタル信号処理装置1を制御し、アプリケーションプログラムを起動する(ステップS3)。そして、キーコードメモリ16に格納されているキーコード情報を呼び出して、このキーコードとアプリケーションプログラムの任意のコード、例えば、認識可能なコード態様認識情報であるtextセクションに格納されているアプリケーションプログラム特有のコードとを比較する(ステップS4)。アプリケーションプログラムにキーコードが既に作成され、アプリケーションプログラムが実行制限されている場合、アプリケーションプログラムの実行を中止する。アプリケーションプログラムが実行制限されていない場合、アプリケーションプログラムを実行し、デジタル信号処理を行う(ステップS5)。
【0021】
次に、図3に示すように、外部制御装置2は外部メモリ3に格納されているキーコード書き換え用プログラム及びデータを呼び出す(ステップS11)。次に、外部制御装置2はこのプログラム及びデータをデジタル信号処理装置1に転送し、キーコード書き換え用のプログラム及びデータをそれぞれプログラムメモリ13及びデータメモリ14に格納する(ステップS12)。
【0022】
続いて、外部制御装置2は、デジタル信号処理装置1を制御し、キーコード書き換え用プログラムを起動する(ステップS13)。そして、キーコードとキーコード書き換え用プログラムの任意のコードを比較する(ステップS14)。キーコード書き換え用プログラムが既に実行制限されている場合、キーコード書き換え用プログラムの実行を中止し、キーコード書き換え用プログラムがまだ実行制限されていない場合、次のステップに進む。
【0023】
次に、アプリケーションプログラム特有のコードに対応するキーコードを作成する(ステップS15)。続いて、キーコード情報をキーコードメモリ16に格納する。なお、アプリケーションプログラム特有のコードに対応するキーコードを作成する代わりに、外部メモリ3などに格納されているキーコード情報を直接キーコードメモリ16に転送してもよい。
【0024】
上述したように、本実施例のデジタル信号処理装置では、配布制限されているアプリケーションプログラムのコードに対応するキーコード情報を格納するキーコードメモリ16が設けられている。そして、プログラムダウンロード時に実行アプリケーションプログラムのコードとキーコードとを比較し、アプリケーションプログラムが配布制限されたもので、キーコード情報が既に付加されている場合、プログラムの実行を制限している。したがって、第三者が何らかの理由で配布制限のアプリケーションプログラムを入手したとしても、プログラムの実行ができず、プログラムの不正実行を防止することができる。更に、キーコードの作成及び書き込みには新規設備投資を必要としないので、システムのコストアップを抑制することができる。
【0025】
なお、本実施例では、外部制御装置2にプロセッサを用いているが、代わりにCPUを用いてもよい。
【実施例2】
【0026】
次に、本発明の実施例2に係るプログラム不正実行防止機能付きプロセッサについて、図面を参照して説明する。図1はプロセッサを示すシステムブロック図である。本実施例では、プロセッサ内にCPU(Central Processing Unit)を設けている。
【0027】
図4に示すように、プロセッサ1aは、ダウンロードインターフェース11、プログラムメモリ13、データメモリ14、周辺回路15、キーコードメモリ16、CPU18、アドレス生成ユニット19、及び論理演算ユニット20から構成されている。ダウンロードインターフェース11、プログラムメモリ13、データメモリ14、周辺回路15、キーコードメモリ16、CPU18、アドレス生成ユニット19、及び論理演算ユニット20は、内部バス17でそれぞれ接続され、プロセッサ1aと外部メモリ3とは外部バス4を介して接続されている。
【0028】
CPU18は、各種処理作業を統括し、順次命令コードをフェッチして各種演算処理を行う。アドレス生成ユニット19は、CPU18からの指令を受け、命令及びデータアドレスの演算処理などを行う。論理演算ユニット20は、CPU18からの指令を受け、加減算や論理演算などの演算処理、及びCPU18が行う処理と平行して高速並列処理及びキーコード作成及び秘密鍵作成を行う。
【0029】
次に、キーコード・秘密鍵の作成について、図5を参照して説明する。図5はキーコード・秘密鍵の作成手順を示すフローチャートである。ここで、キーコード・秘密鍵の作成を行うのはプロセッサの装置管理者又は装置管理者の代行者である。
【0030】
図5に示すように、まず、CPU18はダウンロードインターフェース11を介してダウンロード制御信号を外部メモリ3に出力し、外部メモリ3に格納されているアプリケーションプログラム及びデータを呼び出す(ステップS21)。次に、CPU18はアプリケーションプログラム及びデータをダウンロードインターフェース11を介して転送し、それぞれプログラムメモリ13及びデータメモリ14に格納する(ステップS22)。
【0031】
続いて、CPU18の指令を受けたアドレス生成ユニットは、プリケーションプログラムの起動を行う(ステップS23)。そして、CPU18の指令を受けた論理演算ユニット20は、アプリケーションプログラム特有のコードに対応するキーコードを作成し、あわせて外部へこのキーコード情報を読み出すことができないようにアプリケーションプログラム特有の秘密鍵を作成する(ステップS24)。次に、CPU18はキーコード及び秘密鍵情報をキーコードメモリ16に格納する(ステップS25)。
【0032】
なお、プログラムの実行については、外部制御装置による制御の代わりに、プロセッサ1a内のCPU18による制御により行われる以外は実施例1と同様なので説明を省略する。
【0033】
上述したように、本実施例のプロセッサでは、配布制限されているアプリケーションプログラムのコードに対応するキーコード及び秘密鍵情報を格納するキーコードメモリ16が設けられている。そして、プログラムダウンロード時に実行アプリケーションプログラムのコードとキーコードとを比較し、アプリケーションプログラムが配布制限されたもので、キーコード情報が既に付加されている場合、プログラムの実行を制限している。したがって、第三者が何らかの理由で配布制限のアプリケーションプログラムを入手したとしても、プログラムの実行ができず、プログラムの不正実行を防止することができる。また、外部へこのキーコード情報などを読み出すことができないようにアプリケーションプログラム特有の秘密鍵を設けているので、キーコードメモリ16内の情報が外部に流出することを防止できる。更に、キーコードの作成及び書き込みには新規設備投資を必要としないので、システムのコストアップを抑制することができる。
【0034】
本発明は、上記実施例に限定されるものではなく、発明の趣旨を逸脱しない範囲で、種々、変更してもよい。
【0035】
例えば、本実施例では、デジタル信号処理装置にキーコードメモリを設けているが、汎用プロセッサ或いはマイクロプロセッサなどにキーコードメモリを設けてもよい。更に、キーコードメモリに格納されている予め決められたキーコード情報を書き換えて、新たにアプリケーションプログラムの実行制限を変更し、キーコード情報を変更してもよい。
【図面の簡単な説明】
【0036】
【図1】本発明の実施例1に係るデジタル信号処理装置を示すシステムブロック図。
【図2】本発明の実施例1に係るアプリケーションプログラムの実行手順を示すフローチャート。
【図3】本発明の実施例1に係るキーコードの書き換え手順を示すフローチャート。
【図4】本発明の実施例2に係るプロセッサを示すシステムブロック図。
【図5】本発明の実施例2に係るキーコード・秘密鍵の作成手順を示すフローチャート。
【符号の説明】
【0037】
1 デジタル信号処理装置
1a プロセッサ
2 外部制御装置
3 外部メモリ
4 外部バス
11 ダウンロードインターフェース
12 DSPコア
13 プログラムメモリ
14 データメモリ
15 周辺回路
16 キーコードメモリ
17 内部バス
18 CPU
19 アドレス生成ユニット
20 論理演算ユニット

【特許請求の範囲】
【請求項1】
制御装置とデジタルデータをやりとりするダウンロードインターフェースと、
前記ダウンロードインターフェースを介して転送されるアプリケーションプログラムのコードに対応するキーコードを作成する作成手段と、
前記キーコードを内部メモリに書き込む書き込み手段と、
前記アプリケーションプログラムを実行する際に、前記アプリケーションプログラムの任意のコードと前記キーコードとを比較する比較手段と、
前記アプリケーションプログラムが予め決められたものの場合、前記アプリケーションプログラムの実行を制限する制限手段と、
を具備することを特徴とするプログラム不正実行防止機能付きプロセッサ。
【請求項2】
制御装置とデジタルデータをやりとりするダウンロードインターフェースと、
前記ダウンロードインターフェースを介して送信されるアプリケーションプログラムのコードに対応するキーコードを作成する作成手段と、
前記キーコードを内部メモリに書き込む書き込み手段と、
前記アプリケーションプログラムを実行する際に、前記アプリケーションプログラムの任意のコードと前記キーコードとを比較する比較手段と、
前記アプリケーションプログラムが予め決められたものの場合、前記アプリケーションプログラムの実行を制限する制限手段と、
前記内部メモリ内に格納されている前記キーコード情報を外部に読み出すことを制限する秘密鍵と、
を具備することを特徴とするプログラム不正実行防止機能付きプロセッサ。
【請求項3】
任意のアプリケーションプログラムを新たに選択し、このアプリケーションプログラムのコードに対応するキーコードを作成し、且つ前記内部メモリにこのキーコードを書き込んで、前記内部メモリに既に格納されているキーコード情報を書き換える書き換え手段を具備することを特徴とする請求項1又は2に記載のプログラム不正実行防止機能付きプロセッサ。
【請求項4】
前記作成手段及び前記書き込み手段は、内部プログラムを用いて実行されることを特徴とする請求項1乃至3のいずれか1項に記載のプログラム不正実行防止機能付きプロセッサ。
【請求項5】
前記作成手段及び前記書き込み手段は、前記ダウンロードインターフェースを介して外部プログラムを用いて実行されることを特徴とする請求項1乃至3のいずれか1項に記載のプログラム不正実行防止機能付きプロセッサ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate