説明

ROM不正使用防止装置

【課題】 汎用ROMの不正使用を防止するために用いられるROM不正使用防止装置を提供する。
【解決手段】 アドレス領域ごとにあらかじめ設定された変換回数で逆変換されたデータが記録されたROM3のデータの不正使用を防止する装置であって、マイクロプロセッサ2から要求されたROMデータの要求アドレスをデコードしてROM3に送信するとともにこの要求アドレスに基づいてアドレス領域を判定しこのアドレス領域に対応する変換回数を特定するデータ変換回数特定部13と、マイクロプロセッサ2に送信した要求アドレスに応答してROM3から得られたROMデータをデータ変換回数特定部13で特定された変換回数分変換して復号し、マイクロプロセッサ2に送信することにより正常にROMデータを使用することを可能にし、ROMデータの不正使用を防止する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ROMデータの不正使用を防止するために、設定された方式で逆変換されたROMデータを変換することにより使用可能な状態に復号するROM不正使用防止装置に関する。
【背景技術】
【0002】
一般に、コンピュータを動作させるためのプログラムの記憶媒体としてROMが多く使われている。このROMに記憶されたプログラムはROMライター等によって容易にコピーして使用することが可能であり、その容易性から不正コピーが横行しているのが実情である。これらの不正コピーを防止するため、下記の特許文献1および2に記載されている技術がある。
【0003】
この特許文献1および2に記載の技術は、ROMデータを出力するときに行う変換の逆変換を施したデータをあらかじめROMに記録しておき、アドレス領域ごとに所定の変換を行って出力することで正常なデータを読み出すことができるというものである。
【特許文献1】特開平09−282234号公報
【特許文献2】特許第3464738号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、これらはコピー防止機能を含むLSIによりROMを製造することで不正コピーを防止していたため汎用ROMには適用することができず、使用範囲が限られるという問題があった。
【0005】
本発明は上記事情に鑑みてなされたものであり、汎用ROMの不正コピー使用を防止するために用いられるROM不正使用防止装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するための本発明のROM不正使用防止装置は、アドレス領域ごとにあらかじめ設定された変換方法および変換回数で逆変換されたデータが記録されたROMデータの不正使用を防止する装置であって、読み出し元から要求されたROMデータのアドレスをROMに送信するとともに、このアドレスに基づいてアドレス領域を判定しこのアドレス領域に対応する変換方法および変換回数を特定するデータ変換回数特定手段と、ROMへアドレスを送信したことに応答してROMから得られたROMデータを、データ変換回数特定手段で特定した変換方法および変換回数で変換して復号し、読み出し元に送信するデータ復号手段とを備えることを特徴とする。
【発明の効果】
【0007】
本発明のROM不正使用防止装置は、汎用ROMと、汎用CPU等のマイクロプロセッサとの間に設けるため、コピー防止機能が搭載されていない汎用ROMに対しても不正使用を防止することができる。
【発明を実施するための最良の形態】
【0008】
〈ROM不正使用防止装置1の構成〉
本発明の第一実施形態を、図1〜図5を用いて説明する。
【0009】
図1は本実施形態によるROM不正使用防止装置1の動作を示すブロック図である。本実施形態のROM不正使用防止装置1は、読み出し元の汎用のマイクロプロセッサであるCPU2と、あらかじめ設定された変換方法および変換回数で逆演算されることにより得られたデータが書き込まれているROM3とに接続されている。この変換方法は逆演算により一義的にデータが算出されることが可能であればよく、変換回数はアドレス領域ごとに設定される。
【0010】
ROM不正使用防止装置1は、CPU2からROM3のデータの取得を要求する要求アドレス信号を受信してROM3に送信し、要求アドレス信号を送信したことに応答してROM3から得られたROMデータ信号を変換して使用可能な状態に復号してCPU2に送信する。
【0011】
本実施形態によるROM不正使用防止装置1は、アドレスデコード部11と、基準アドレス信号記憶部12と、データ変換回数特定部13と、3個のデータ変換部14、15、16と、データ選択部17とを備える。
【0012】
アドレスデコード部11は、CPU2から送信されるアドレス信号を受信してデコードし、このアドレスがROM3のアドレス領域を分割する基準アドレス値を特定するための特定アドレスの場合は基準アドレス信号記憶部12へ、ROMデータの取得を要求するための要求アドレスの場合はデータ変換回数特定部13およびROM3へ送信する。
【0013】
基準アドレス信号記憶部12には、あらかじめ設定された複数の特定アドレスに、アドレス信号として使用可能なビット数を有するアドレスデータ信号が入力されている。この複数の特定アドレスから、アドレスデコード部11にてデコードされた特定アドレスが検出されたときは、検出された特定アドレスに入力されているアドレスデータ信号を基準アドレス信号としてレジスタに記憶する。基準アドレス信号記憶部12は、記憶した基準アドレス信号をデータ変換回数特定部13に送信する。
【0014】
データ変換回数特定部13は、基準アドレス信号記憶部12から受信した複数の基準アドレス信号を基にROMのアドレス領域を分割する。さらに、分割された領域ごとに、ROM3から取得するROMデータ信号の変換回数を設定する。そして、要求アドレス信号をアドレスデコード部11から受信したときは、この要求アドレス信号が該当するアドレス領域を判定し、それにより変換回数を特定し、データ選択部17に送信する。
【0015】
データ変換部14、15、および16は、ROM3から取得したROMデータ信号を、あらかじめ設定された変換方法に従って変換する。
【0016】
データ選択部17は、ROM3で呼び出されそのまま変換されていないROMデータ信号と、データ変換部16で1回変換されたROMデータ信号と、データ変換部16および17で2回変換されたROMデータ信号と、データ変換部16、17および18で3回変換されたROMデータ信号とを受信し、それらの中からデータ変換回数特定部13で特定された変換回数分変換されたROMデータ信号を選択し、CPU2に送信する。
【0017】
〈第一実施形態による動作〉
以下、本発明の第一実施形態の動作について図2および図3を用いて説明する。図2は本実施形態の動作を示すシーケンス図であり、図3は基準アドレスの設定例を示す説明図である。
【0018】
まず、使用者の操作によりROM3のアドレス領域を分割する基準アドレス値を特定するための特定アドレス6759信号が、CPU2からROM不正使用防止装置1に送信される(S1)。
【0019】
ROM不正使用防止装置1のアドレスデコード部11で特定アドレス6759信号が受信され(S2)、デコードされて基準アドレス信号記憶部12に送信される(S3)。基準アドレス信号記憶部12では、あらかじめ設定されている複数の特定アドレスから、アドレスデコード部11でデコードされたアドレス6759が検出され、この特定アドレス6759に入力されているアドレスデータ信号8192が要求アドレス信号と比較するための基準アドレス信号としてレジスタXに記憶される(S4)。
【0020】
同様にして、CPU2から送信された特定アドレス7311信号がROM不正使用防止装置1のアドレスデコード部11でデコードされ、基準アドレス信号記憶部12の特定アドレス7311に入力されているアドレスデータ16384信号が基準アドレスとしてレジスタYに記憶される。
【0021】
基準アドレス信号が基準アドレス信号記憶部12に記憶されている前提で、CPU2からROM3へデータの取得を要求するための要求アドレス信号がROM不正使用防止装置1に送信される(S5)。ROM不正使用防止装置1のアドレスデコード部11で受信された要求アドレス信号は、デコードされてROM3に送信されるとともにデータ変換回数特定部13に送信される(S6、S7)。
【0022】
データ変換回数特定部13で要求アドレス信号が受信されると、基準アドレス信号記憶部12から基準アドレス信号が取得され、それを基にROM3のアドレス領域が分割され、分割されたアドレス領域ごとにデータ変換回数が設定される(S8)。
【0023】
データ変換回数の設定について説明する。図4は基準アドレス信号からデータの変換回数を設定するアドレス領域判定部の動作の一実施形態を示すフローチャートである。
【0024】
まず、基準アドレス信号記憶部12で取得されたレジスタXの値およびレジスタYの値が0であるかどうか判別される(S21)。どちらも0ではない(S21の「YES」)場合、領域判定処理が行われる(S22)。要求アドレスをAとすると、A値<X値のときは変換なし(S23)、X値≦A値≦Y値のときは変換1回(S24)、A値≧Y値のときは変換2回(S25)に設定される。(ROM3には、あらかじめA値<X値のときはそのまま、X値≦A値≦Y値のときは1回、A値≧Y値のときは2回の逆演算を施したデータが書き込まれている。)X、Yのいずれかが0であった場合はエラーとなる(S26)。
【0025】
図2のステップS7でROM不正使用防止装置1のアドレスデコード部11からROM3にデコードされた要求アドレスが送信されたことに応答して、ROM3から該当するROMデータ信号が送信され(S9、S10)、ROM不正使用防止装置1でROMデータ信号が取得される(S11)。ROM不正使用防止装置1では、受信したままのROMデータ信号と、データ変換部14で変換が行われた1回変換済みのROMデータ信号と、さらにデータ変換部15で変換が行われた2回変換済みのROMデータ信号と、さらにデータ変換部16で変換が行われた3回変換済みのROMデータ信号とがデータ選択部17に送信される(S12)。
【0026】
本実施形態におけるデータ変換部14、15、および16における変換方法の一実施形態を図5を用いて説明する。
【0027】
変換前のデータをa0〜a7の8ビットで表し、変換後のデータをb0〜b7の8ビットで表す。この変換方法は、任意のビットを入れ替えることと、任意のビットの論理否定とを組み合わせることで行われる。図5ではa0→b1、a1→b2・・・に順次入れ替えられ、a7は論理否定により反転されたビットがb0に入れ替えられる。
【0028】
この変換方法では、任意に入力される8ビットに対して出力される8ビットが一義的に決定されるため、その逆演算は容易に算出される。よって、ROM3にはあらかじめ所定の回数逆演算により変換されたデータが保存される。
【0029】
データ選択部17では、受信されたそれぞれのROMデータ信号の中から、データ変換回数特定部13にて判定された変換回数分だけ変換されたROMデータ信号が選択され(S13)、CPU2に送信される(S14)。CPU2では、このアドレス領域ごとの変換により復号されたデータを受信することによってROMデータを正常に使用することが可能になる(S15)。
【0030】
本実施形態によれば、ROM不正使用防止装置1を使用する際、アドレス領域を設定するための特定のアドレス値が固定であってもその固定のアドレス値は第三者には容易に類推することはできず、不正に使用されることを防止することができる。
【0031】
〈第二実施形態による動作〉
図6は第二実施形態による変換方法である。変換前のデータをc0〜c7の8ビットで表し、変換後のデータをd0〜d7の8ビットで表す。変換方法2は、任意のビットを入れ替えることと、排他的論理和とを組み合わせることと、ガロア体GF(2)の根αを利用することにより行われる。図6では、c0→d1、c1→d2・・・に順次入れ替えられ、c7はd0に入れ替えられるとともにc1、c2、c3との排他的論理和が求められ、d2、d3、d4に入れ替えられる。さらにd0〜d7の8ビットをガロア体GF(2)の解αとして乗算して変換される。この変換が算出される変換回数分行われてもよく、2回目以降で乗算が利用されることにより行われてもよい。これらはハードウェア量によりあらかじめデータ変換演算を決定しておくことができる。
【0032】
この第二実施形態による変換方法でも、任意に入力される8ビットに対して出力される8ビットが一義的に決定されるため、その逆演算の算出が可能である。よって、ROM3にはあらかじめ所定の回数逆演算により変換されたデータを保存することができる。これにより、第一実施形態と同様の効果を得ることができる。
【0033】
〈その他の実施形態〉
基準アドレス信号と要求アドレス信号とのビット数は異なってもよく、例えばレジスタXまたはYの値が16ビットで、要求アドレス信号が8ビットの場合は、基準アドレス信号XまたはYは8ビット毎に0であるかどうかを判断することが可能である。
【0034】
また、ROM3を販売用に大量に製造する場合、特定アドレス信号に対応するアドレスデータ信号をセット毎に変更することが可能である。その場合、使用者の操作によりCPU2からROM不正使用防止1の基準アドレス信号記憶部12にリセット信号が送信され、記憶されていたアドレスデータが消去されることにより新たなアドレスデータ信号を入力し記憶させることができる。アドレスデータ信号をセット毎に変更することにより、特定のセットのアドレスデータ信号が第三者に判明しても他のセットではそのアドレスデータ信号を正常に使用することができず、ROMデータの不正使用は不可能である。
【0035】
また、同一セットの製造についても、製造年月日等により設定する特定アドレス信号を変更することが可能である。
【0036】
さらに、特定アドレス信号に対応するデータの任意の2ビットを利用し、それぞれの領域でのデータ変換回数、変換内容、および変換方式等を選択するように設定することも可能であり、より確実に不正使用を防止することができる。
【図面の簡単な説明】
【0037】
【図1】本発明のROM不正使用防止装置の第一実施形態を示すブロック図である。
【図2】本発明のROM不正使用防止装置の第一実施形態による動作を示すシーケンス図である。
【図3】本発明のROM不正使用防止装置の第一実施形態による基準アドレスの設定例を示す説明図である。
【図4】本発明のROM不正使用防止装置の第一実施形態によるアドレス領域判定部の動作を示すフローチャートである。
【図5】本発明のROM不正使用防止装置の第一実施形態による変換部における変換方法を示す説明図である。
【図6】本発明のROM不正使用防止装置の第二実施形態による変換部における変換方法を示す説明図である。
【符号の説明】
【0038】
1 ROM不正使用防止装置
2 CPU
3 ROM
11 アドレスデコード部
12 基準アドレス信号記憶部
13 データ変換回数特定部
14、15、16 データ変換部
17 データ選択部


【特許請求の範囲】
【請求項1】
アドレス領域ごとにあらかじめ設定された変換方法および変換回数で逆変換されたデータが記録されたROMデータの不正使用を防止する装置であって、
読み出し元から要求された前記ROMデータのアドレスを前記ROMに送信するとともに、このアドレスに基づいてアドレス領域を判定しこのアドレス領域に対応する変換方法および変換回数を特定するデータ変換回数特定手段と、
前記ROMへアドレスを送信したことに応答して前記ROMから得られた前記ROMデータを、前記データ変換回数特定手段で特定した前記変換方法および変換回数で変換して復号し、前記読み出し元に送信するデータ復号手段と、
を備えることを特徴とするROM不正使用防止装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate