JPS60167033A - マイクロコンピユ−タにおけるプログラムコ−ド復号化装置 - Google Patents
マイクロコンピユ−タにおけるプログラムコ−ド復号化装置Info
- Publication number
- JPS60167033A JPS60167033A JP59022451A JP2245184A JPS60167033A JP S60167033 A JPS60167033 A JP S60167033A JP 59022451 A JP59022451 A JP 59022451A JP 2245184 A JP2245184 A JP 2245184A JP S60167033 A JPS60167033 A JP S60167033A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- code
- register
- fetched
- instructions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Storage Device Security (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
本発明は、マイクロコンピュータのプログロムが他人に
模倣されることを防止するためプログロムの命令コード
を暗号化してメモリ装置に記憶させる場合に、その暗号
化されたコードを復号化する装置に関するものである。
模倣されることを防止するためプログロムの命令コード
を暗号化してメモリ装置に記憶させる場合に、その暗号
化されたコードを復号化する装置に関するものである。
一般にマイクロコンピュータは、第1図に示すように、
コンピュータ本体1とメモリ装置2とがアドレスバス6
、データバス4および制御ライン5で接続されて最小限
度のシステムを構成し、上記メモリ装置2にプログラム
やその他必要なデータが記憶され、アドレス信号によっ
て指定された命令が上記メモリ装置2がら順次読出され
てコンピュータ本体1に取込まれるようになっている。
コンピュータ本体1とメモリ装置2とがアドレスバス6
、データバス4および制御ライン5で接続されて最小限
度のシステムを構成し、上記メモリ装置2にプログラム
やその他必要なデータが記憶され、アドレス信号によっ
て指定された命令が上記メモリ装置2がら順次読出され
てコンピュータ本体1に取込まれるようになっている。
上記コンピュータ本体1は、第2図に示すように、内部
バス6と、アドレスバスおよびデータバスに接続された
バッフ17,8と、メモリ装置からの命令コードを取込
んで命令を実行するとともに命令を次々に取込む制御を
行うための命令レジスタ9、命令デコーダ10および制
御回路11と、演算レジスタおよび演算ユニット12と
、プログラムカウンタ16と、レジスタ群14等で構成
されている。
バス6と、アドレスバスおよびデータバスに接続された
バッフ17,8と、メモリ装置からの命令コードを取込
んで命令を実行するとともに命令を次々に取込む制御を
行うための命令レジスタ9、命令デコーダ10および制
御回路11と、演算レジスタおよび演算ユニット12と
、プログラムカウンタ16と、レジスタ群14等で構成
されている。
ところで、マイクロコンピュータを用いた商品の設計者
や製造者等にとっては、メモリ装置に記憶された独創的
なプログラムの内容が他人によって無断で解析され、模
倣されるのを防止することが望まれる。
や製造者等にとっては、メモリ装置に記憶された独創的
なプログラムの内容が他人によって無断で解析され、模
倣されるのを防止することが望まれる。
従来、このような模倣防止のだめの手段の一つとして、
シリコン単結晶上等にコンピュータ本体とメモリとを一
体化した半導体回路を形成し、その回路の仕組が解析困
難なように構成したものがあり、このようにすればある
程度の模倣抵抗力が得られる。しかし、シリコン単結晶
上に形成することのできる回路の量には限界があって、
比較的小容量のメモリしか組込むことができないので、
このような手段を適用することのできるコンピュータシ
ステムは比較的小規模なものに限られるという欠点があ
る。
シリコン単結晶上等にコンピュータ本体とメモリとを一
体化した半導体回路を形成し、その回路の仕組が解析困
難なように構成したものがあり、このようにすればある
程度の模倣抵抗力が得られる。しかし、シリコン単結晶
上に形成することのできる回路の量には限界があって、
比較的小容量のメモリしか組込むことができないので、
このような手段を適用することのできるコンピュータシ
ステムは比較的小規模なものに限られるという欠点があ
る。
また、模倣防止のだめの別の手段として、プログラムコ
ードを予め暗号化してメモリに格納し、これをコンピュ
ータ本体内で復号化するように、コンピュータ本体の命
令レジスタの入口に、暗号化されたコードを本来のコー
ドに戻すための復号器を設けたものがある。例えば、メ
モリに格納されるプログラムの各命令コードには全て一
定のキー数(換算値)を加算しておき、上記復号器にお
いて上記キー数を減算するようにしたものがあり、この
ほかにも比較的簡単な暗号、復号化手段として2進数ビ
ツトの0,1 反転や2進数ビット信号線の入れ換え等
の手段がある。このような手段による場合、復号器をコ
ンピュータ本体と分離困難に構成しておけば、命令コー
ドが既知であっても暗号化によっである程度の模倣抵抗
力をもたせることはできるが、固定的なキー数で換算す
る程度の単純な暗号、復号化では解析もそれほど困難に
ならず、模倣抵抗力には限界がある。
ードを予め暗号化してメモリに格納し、これをコンピュ
ータ本体内で復号化するように、コンピュータ本体の命
令レジスタの入口に、暗号化されたコードを本来のコー
ドに戻すための復号器を設けたものがある。例えば、メ
モリに格納されるプログラムの各命令コードには全て一
定のキー数(換算値)を加算しておき、上記復号器にお
いて上記キー数を減算するようにしたものがあり、この
ほかにも比較的簡単な暗号、復号化手段として2進数ビ
ツトの0,1 反転や2進数ビット信号線の入れ換え等
の手段がある。このような手段による場合、復号器をコ
ンピュータ本体と分離困難に構成しておけば、命令コー
ドが既知であっても暗号化によっである程度の模倣抵抗
力をもたせることはできるが、固定的なキー数で換算す
る程度の単純な暗号、復号化では解析もそれほど困難に
ならず、模倣抵抗力には限界がある。
そこでさらに複雑な暗号、復号化手段として、変換値と
してのキー数を命令毎に変化させ、つまり第3図に示す
ように、コンピュータ本体1に復号器15とキーレジス
タ16とを設け、命令コードを取込む毎にキーレジスタ
16の内容を例えば1ずつ加算し、これを復号器15に
入力して命令コードを復号するという手段が考えられる
。このような復号化手段によれば、これに対応づけて予
め命令ごとに異なるキーで暗号化されたコードがメモリ
に記憶されることとなるため、解析の困難性が高められ
、従って模倣抵抗力が高められる。
してのキー数を命令毎に変化させ、つまり第3図に示す
ように、コンピュータ本体1に復号器15とキーレジス
タ16とを設け、命令コードを取込む毎にキーレジスタ
16の内容を例えば1ずつ加算し、これを復号器15に
入力して命令コードを復号するという手段が考えられる
。このような復号化手段によれば、これに対応づけて予
め命令ごとに異なるキーで暗号化されたコードがメモリ
に記憶されることとなるため、解析の困難性が高められ
、従って模倣抵抗力が高められる。
しかし、復号化されたコードはメモリに格納された各命
令と一意的に対応づけられる必要があるため、プログラ
ム中に必ずしもアドレス順に命令を取込むことを内容と
しない条件もしくは無条件の飛越し命令が含まれる場合
に問題が生じる。すなわち、メモリ内の命令はすべてア
ドレスの正順に格納されたプログラムがいくつかの命令
グループP+〜P6からなって、各グループP1〜P6
内の命令はアドレス順に取込まれるが、各グループP
1〜P6の最後の命令は必ずしも次のアドレスの命令を
取込むことを内容としていない。例えば第4図(B)に
示すように、第1グループp、の最後の命令は第2グル
ープP2か第5グループP5のいずれかの先頭命令を次
に取込むことを内容とし、第2グループP2と第6グル
ープP6の各最後の命令はともに無条件に第6グループ
P6に接続されることを内容とし、第4グループP4お
よび第5グループP5の各最後の命令はそれぞれ第1グ
ループP1および第2グループP2に接続されるととを
内容とし、第6グループP6の最後の命令は次の命令取
込みを特定場所に記憶されたメモリ位置とすることを内
容とする。このような場合、命令取込み毎に復号化用の
キー数を変化させるというような復号化手段によるだけ
では、例えば上記第2グループP2の命令が第5グルー
プP5を経由する場合とそうでない場合とで異なったコ
ードに復号化されて、命令と復号化されたコードとが一
意的に対応づけられなくなる可能性がある。プログラム
を作成する段階でこのような事態を避けるように配慮す
るのでは、プログラムの作成に大きな制約となり、複雑
なプログラムを作成することは極めて困難となる。
令と一意的に対応づけられる必要があるため、プログラ
ム中に必ずしもアドレス順に命令を取込むことを内容と
しない条件もしくは無条件の飛越し命令が含まれる場合
に問題が生じる。すなわち、メモリ内の命令はすべてア
ドレスの正順に格納されたプログラムがいくつかの命令
グループP+〜P6からなって、各グループP1〜P6
内の命令はアドレス順に取込まれるが、各グループP
1〜P6の最後の命令は必ずしも次のアドレスの命令を
取込むことを内容としていない。例えば第4図(B)に
示すように、第1グループp、の最後の命令は第2グル
ープP2か第5グループP5のいずれかの先頭命令を次
に取込むことを内容とし、第2グループP2と第6グル
ープP6の各最後の命令はともに無条件に第6グループ
P6に接続されることを内容とし、第4グループP4お
よび第5グループP5の各最後の命令はそれぞれ第1グ
ループP1および第2グループP2に接続されるととを
内容とし、第6グループP6の最後の命令は次の命令取
込みを特定場所に記憶されたメモリ位置とすることを内
容とする。このような場合、命令取込み毎に復号化用の
キー数を変化させるというような復号化手段によるだけ
では、例えば上記第2グループP2の命令が第5グルー
プP5を経由する場合とそうでない場合とで異なったコ
ードに復号化されて、命令と復号化されたコードとが一
意的に対応づけられなくなる可能性がある。プログラム
を作成する段階でこのような事態を避けるように配慮す
るのでは、プログラムの作成に大きな制約となり、複雑
なプログラムを作成することは極めて困難となる。
本発明はこれらの事情に鑑み、プログラムを高度に暗号
化することができて模倣抵抗力を高め、しかもプログラ
ム作成上等において制約を受けることのないプログラム
復号化装置を提供するものである。
化することができて模倣抵抗力を高め、しかもプログラ
ム作成上等において制約を受けることのないプログラム
復号化装置を提供するものである。
以下、本発明を第5図乃至第9図に基づいて説明する。
第5図は本発明装置を備えたマイクロコンピュータ本体
1の主要部を概略的に示す。この図において、21は取
込まれた命令・を暗号化するための復号器であって、内
部バス6と命令レジスタ9との間に設けられている。ま
た、22は上記復号器21に復号化用のキー数(変換値
)を与えるキーレジスタである。図では8ビット並列デ
ータを扱う場合を例示し、内部バス6、復号器21およ
びキーレジスタ22はいずれも8回路で構成されて一ト
21 aで構成され、内部バス6からの2進数信号とキ
ーレジスタ22の出力とが上記各排他的論理和ゲート2
1aに入力され、この各ゲート21aにより、キーレジ
スタ22の対応する出力が1のときのみ内部バス信号の
0と1とが反転して命令レジスタ9に入力されるように
している。
1の主要部を概略的に示す。この図において、21は取
込まれた命令・を暗号化するための復号器であって、内
部バス6と命令レジスタ9との間に設けられている。ま
た、22は上記復号器21に復号化用のキー数(変換値
)を与えるキーレジスタである。図では8ビット並列デ
ータを扱う場合を例示し、内部バス6、復号器21およ
びキーレジスタ22はいずれも8回路で構成されて一ト
21 aで構成され、内部バス6からの2進数信号とキ
ーレジスタ22の出力とが上記各排他的論理和ゲート2
1aに入力され、この各ゲート21aにより、キーレジ
スタ22の対応する出力が1のときのみ内部バス信号の
0と1とが反転して命令レジスタ9に入力されるように
している。
また、命命レジスタ9に後続する命令デコーダ10およ
び制御回路11には、後に具体的に示すような命令の判
別手段とレジスタ制御手段とが含まれている。そしてこ
れらの手段により、取込んだ命令が次に必ずアドレス順
に連続した命令の取込みを生起させる連続命令であると
きには命令コード取込み毎にキーレジスタ22の内容を
変化させる制御信号をキーレジスタ22に出力し、上記
連続命令以外の命令である条件付きまたは無条件の飛越
し命令であるときにはキーレジスタ22の内容を特定値
に定める制御信号をキーレジスタ22に出力するように
している。なお、コンピュータ本体1における他の回路
要素については既に第2図で示しているので、ここでは
図示および説明を省略する。そしてこのコンピュータ本
体1は第1図に示したように外部のメモリ装置2に接続
されている。このメモリ装置2には、後述する具体的な
復号化方式に対応させて、各命令コードを予め暗号化さ
れた形で格納しておくこととする。
び制御回路11には、後に具体的に示すような命令の判
別手段とレジスタ制御手段とが含まれている。そしてこ
れらの手段により、取込んだ命令が次に必ずアドレス順
に連続した命令の取込みを生起させる連続命令であると
きには命令コード取込み毎にキーレジスタ22の内容を
変化させる制御信号をキーレジスタ22に出力し、上記
連続命令以外の命令である条件付きまたは無条件の飛越
し命令であるときにはキーレジスタ22の内容を特定値
に定める制御信号をキーレジスタ22に出力するように
している。なお、コンピュータ本体1における他の回路
要素については既に第2図で示しているので、ここでは
図示および説明を省略する。そしてこのコンピュータ本
体1は第1図に示したように外部のメモリ装置2に接続
されている。このメモリ装置2には、後述する具体的な
復号化方式に対応させて、各命令コードを予め暗号化さ
れた形で格納しておくこととする。
第6図は本発明装置の具体例を示す。この図において、
復号器21に後続する8ビツトの命令レジスタ9は、入
力を、後述する信号M1の立下がりエツジでのみ読込ん
で出力するようにしている。
復号器21に後続する8ビツトの命令レジスタ9は、入
力を、後述する信号M1の立下がりエツジでのみ読込ん
で出力するようにしている。
また命令デコーダ10においては、命令レジスタ9から
の各出力をインバータ10aによって反転した信号と反
転しない信号とに分け、命令の種数に対応する数のアン
トゲ−)10bにより、取込んだ命令を区別して出力す
るようにしている。すなわち、この図では回路の図示を
簡単にするため各アントゲ−)10t)に対する入力を
丸印で表わしており、例えば第1段目のアンドゲート1
[]1)に対する回路については第7図と等価な回路を
示すものであり、各アンドゲート10′bごとに異なる
組合わせで反転もしくは非反転の各信号を入力させるこ
とにより、256C2)通りの命令信号工0〜工255
が区別され、いずれかのアンドゲート10bから出力さ
れるようにしている。この命令デコーダ10から出力さ
れる信号が前記連続命令を内容とする場合はプログラム
カウンタが単に1ずつ加算されるが、飛越し命令を内容
とする場合はアドレスを指定する信号がプログラムカウ
ンタに送られるので、この2種類の命令は区別すること
ができる。そこでこの2種類の命令の判別手段としてオ
アゲート26が設けられ、飛越し命令を内容とする命令
信号(図例では命令信号工5゜工6.I7. 工244
)75;オアゲート23に入力されている。
の各出力をインバータ10aによって反転した信号と反
転しない信号とに分け、命令の種数に対応する数のアン
トゲ−)10bにより、取込んだ命令を区別して出力す
るようにしている。すなわち、この図では回路の図示を
簡単にするため各アントゲ−)10t)に対する入力を
丸印で表わしており、例えば第1段目のアンドゲート1
[]1)に対する回路については第7図と等価な回路を
示すものであり、各アンドゲート10′bごとに異なる
組合わせで反転もしくは非反転の各信号を入力させるこ
とにより、256C2)通りの命令信号工0〜工255
が区別され、いずれかのアンドゲート10bから出力さ
れるようにしている。この命令デコーダ10から出力さ
れる信号が前記連続命令を内容とする場合はプログラム
カウンタが単に1ずつ加算されるが、飛越し命令を内容
とする場合はアドレスを指定する信号がプログラムカウ
ンタに送られるので、この2種類の命令は区別すること
ができる。そこでこの2種類の命令の判別手段としてオ
アゲート26が設けられ、飛越し命令を内容とする命令
信号(図例では命令信号工5゜工6.I7. 工244
)75;オアゲート23に入力されている。
またレジスタ制御手段24は、その入力側に設けられた
インバータ25および一対のアンドゲート26,27と
、所要数の排他的論理和ゲート28とアンドゲート29
とを組合わせてなる加算回路60と、インバータ51と
、所要数のアンドゲート62からなる出力部36とを備
えており、この出力部56にキーレジスタ22が接続さ
れている。そして入力側の各アントゲ−)26.27に
は、前記オアゲート26の出力を反転した信号と反転し
ない信号とがそれぞれ入力されるとともに、これらの信
号を所定タイミングで出力するための後述する信号M2
が入力されている。上記加算回路60は、オアゲート2
6の出力が0の場合にアンドゲート26から出力される
信号により、キーレジスタ22に保持されるキー数に+
1の加算を行うようにしている。また上記出力部66は
、オアゲート26の出力が1の場合にアンドゲート27
から出力されてインバータ61で反転された信号により
、無条件にキーレジスタ22の内容をすべて0とするよ
うにしている。
インバータ25および一対のアンドゲート26,27と
、所要数の排他的論理和ゲート28とアンドゲート29
とを組合わせてなる加算回路60と、インバータ51と
、所要数のアンドゲート62からなる出力部36とを備
えており、この出力部56にキーレジスタ22が接続さ
れている。そして入力側の各アントゲ−)26.27に
は、前記オアゲート26の出力を反転した信号と反転し
ない信号とがそれぞれ入力されるとともに、これらの信
号を所定タイミングで出力するための後述する信号M2
が入力されている。上記加算回路60は、オアゲート2
6の出力が0の場合にアンドゲート26から出力される
信号により、キーレジスタ22に保持されるキー数に+
1の加算を行うようにしている。また上記出力部66は
、オアゲート26の出力が1の場合にアンドゲート27
から出力されてインバータ61で反転された信号により
、無条件にキーレジスタ22の内容をすべて0とするよ
うにしている。
上記キーレジスタ22は、信号M2の立下がりエツジで
のみ動作して、その内容を前記復号器21に出力し、復
号器21は、その各ゲート21aにおいてそれぞれキー
レジスタ22の対応する出力が1のときのみ内部バス信
号を反転し、命令レジスタ9に送るようにしている。
のみ動作して、その内容を前記復号器21に出力し、復
号器21は、その各ゲート21aにおいてそれぞれキー
レジスタ22の対応する出力が1のときのみ内部バス信
号を反転し、命令レジスタ9に送るようにしている。
このように構成された復号化装置の動作を、第8図に示
すタイムチャートによって次に説明する。
すタイムチャートによって次に説明する。
この例では、メモリ装置2のアドレスが655゜554
.555,420,421の所に命令工3.工4゜工5
.工「、工9の暗号化された各コードがそれぞれ格納さ
れているものとする。この場合、まずアドレスバスに出
力されるアドレス数が655とされることにより、メモ
リ装置から命令工6のコードが送られて、命令レジスタ
9に読込まれ、ついで命令デコーダ10および制御回路
11によりこの命令工6が実行される。以下同様にして
、命令I4.I5.I8.I9の読込み、実行が行われ
る。
.555,420,421の所に命令工3.工4゜工5
.工「、工9の暗号化された各コードがそれぞれ格納さ
れているものとする。この場合、まずアドレスバスに出
力されるアドレス数が655とされることにより、メモ
リ装置から命令工6のコードが送られて、命令レジスタ
9に読込まれ、ついで命令デコーダ10および制御回路
11によりこの命令工6が実行される。以下同様にして
、命令I4.I5.I8.I9の読込み、実行が行われ
る。
なお、前記の第6図に示す信号M1.M2とは、この場
合の命令の読込み、実行に要する時間を定めるために与
えられたものである。つまり、命令の読込み、実行に要
する時間は命令ごとに異なるため、この時間が周期的信
号Ml、 M2・・・ で定められるようにしてあり、
例えば命令工3はM1〜M5の5サイクル、命令工4は
M1+M2の2サイクル、命令工5はM1〜M4の4サ
イクルで遂行されるようにしている。
合の命令の読込み、実行に要する時間を定めるために与
えられたものである。つまり、命令の読込み、実行に要
する時間は命令ごとに異なるため、この時間が周期的信
号Ml、 M2・・・ で定められるようにしてあり、
例えば命令工3はM1〜M5の5サイクル、命令工4は
M1+M2の2サイクル、命令工5はM1〜M4の4サ
イクルで遂行されるようにしている。
また、この図に示す例において連続命令である命令工6
.工4.工8が取込まれて実行されるときは、前記オア
ゲート25の出力が0となることにより、前記レジスタ
制御手段24のアンドゲート26から加算回路24に信
号65が出力され、飛越し命令である命令■5が取込ま
れて実行されるときは、前記オアゲート26の出力が1
となることにより、レジスタ制御手段24のアンドゲー
ト27から信号′56が出力される。これらの信号65
または66は、それぞれの命令工3.I4.工8または
工5の実行期間中の所定時期に出力される。
.工4.工8が取込まれて実行されるときは、前記オア
ゲート25の出力が0となることにより、前記レジスタ
制御手段24のアンドゲート26から加算回路24に信
号65が出力され、飛越し命令である命令■5が取込ま
れて実行されるときは、前記オアゲート26の出力が1
となることにより、レジスタ制御手段24のアンドゲー
ト27から信号′56が出力される。これらの信号65
または66は、それぞれの命令工3.I4.工8または
工5の実行期間中の所定時期に出力される。
従って、命令工6が取込まれる段階ですでにキーレジス
タ22の内容であるキー数が07となっているとすると
、命令I5. 工4が実行される段階では上記キー数が
08,09と順次加算され、命令工5が実行される段階
ではキー数が00とされ、命令工8が実行される段階で
は改めてキー数が01と加算される。そして前記復号器
21により、上記各命令13.I4.I51 I8の実
行段階で変更されたキー数に相当するキーレジスタ22
からの出力に応じ、その次の命令工4.工5.工8.工
9のコードが変換、復号化されることとなる。
タ22の内容であるキー数が07となっているとすると
、命令I5. 工4が実行される段階では上記キー数が
08,09と順次加算され、命令工5が実行される段階
ではキー数が00とされ、命令工8が実行される段階で
は改めてキー数が01と加算される。そして前記復号器
21により、上記各命令13.I4.I51 I8の実
行段階で変更されたキー数に相当するキーレジスタ22
からの出力に応じ、その次の命令工4.工5.工8.工
9のコードが変換、復号化されることとなる。
つまり、第4図に示したプログラム例を利用して説明す
ると、各命令グループP1〜P6内の最後の命令以外の
命令が順次取込まれると、その各命令が実行されるたび
に、その次の命令コードに対する変換値となるキー数が
1ずつ加算されることにより、各命令グループP1〜P
6内の先頭命令以外の命令が上記のように命令順に変化
するキー数に応じて復号化される。そして、これらの命
令は必ずアドレス順にコンピュータ本体1に取込まれる
ので、これらの命令のコードを予め上記の復号化に対応
させるように暗号化してメモリ装置2に記憶させておけ
ば、復号化されたコードが命令に対応することとなる。
ると、各命令グループP1〜P6内の最後の命令以外の
命令が順次取込まれると、その各命令が実行されるたび
に、その次の命令コードに対する変換値となるキー数が
1ずつ加算されることにより、各命令グループP1〜P
6内の先頭命令以外の命令が上記のように命令順に変化
するキー数に応じて復号化される。そして、これらの命
令は必ずアドレス順にコンピュータ本体1に取込まれる
ので、これらの命令のコードを予め上記の復号化に対応
させるように暗号化してメモリ装置2に記憶させておけ
ば、復号化されたコードが命令に対応することとなる。
一方、各命令グループP1〜P6 の最後の命令が取込
まれて実行されるときは、キー数が00とされるので、
この場合に次に取込まれるいずれかの命令グループP1
〜P6の先頭命令はコードが変換されない。従って予め
このコード全メモリ装置2に記憶させておくことにより
、どのような取込み順序を経てこの命令が取込まれよな
お、連続命令を取り込むごとにキー数を変える手段とし
ては、上記実施例のほかにも、例えば−1の減算を行っ
たり、+1と+2の加算を交互に行ったり、ポリノミナ
ルカラ/りを用いたり、取込んだ命令の首かれていたメ
モリアドレス数を加算する等の手段が考えられる。また
飛越し命令を取込んだときキー数を特定値とする手段も
上記実施例に限定されず、例λばキー数を常に5等の一
定値とし、ちるいは次に取込むべき命令の置かれている
メモリアドレス数にする等の手段も採用することができ
る。
まれて実行されるときは、キー数が00とされるので、
この場合に次に取込まれるいずれかの命令グループP1
〜P6の先頭命令はコードが変換されない。従って予め
このコード全メモリ装置2に記憶させておくことにより
、どのような取込み順序を経てこの命令が取込まれよな
お、連続命令を取り込むごとにキー数を変える手段とし
ては、上記実施例のほかにも、例えば−1の減算を行っ
たり、+1と+2の加算を交互に行ったり、ポリノミナ
ルカラ/りを用いたり、取込んだ命令の首かれていたメ
モリアドレス数を加算する等の手段が考えられる。また
飛越し命令を取込んだときキー数を特定値とする手段も
上記実施例に限定されず、例λばキー数を常に5等の一
定値とし、ちるいは次に取込むべき命令の置かれている
メモリアドレス数にする等の手段も採用することができ
る。
また、第9図に示すように、命令グループP2+とP2
2との間に命令グループP5が合流するようになってい
るプログラムにおける場合、命令グループP21の最後
の命令は連続命令であっても、これを取込んだとき飛越
し命令と同様にキー数を特以上のように本発明は、暗号
化されたコードを復号化するための暗号器と、これに変
換値を与えるレジスタと、命令の判別手段およびこれか
らの信号を受けるレジスタ制御手段により、必ず次にア
ドレス順に連続した命令の取込みを生起させる連続命令
が取込まれたときは上記変換値を命令取込みごとに変化
させ、上記連続命令以外の命令である飛越し命令が取込
まれたときは上記変換値を命令取込み順序に関係しない
特定値としている。
2との間に命令グループP5が合流するようになってい
るプログラムにおける場合、命令グループP21の最後
の命令は連続命令であっても、これを取込んだとき飛越
し命令と同様にキー数を特以上のように本発明は、暗号
化されたコードを復号化するための暗号器と、これに変
換値を与えるレジスタと、命令の判別手段およびこれか
らの信号を受けるレジスタ制御手段により、必ず次にア
ドレス順に連続した命令の取込みを生起させる連続命令
が取込まれたときは上記変換値を命令取込みごとに変化
させ、上記連続命令以外の命令である飛越し命令が取込
まれたときは上記変換値を命令取込み順序に関係しない
特定値としている。
このため、種々の変換値で命令コードの暗号、復号化が
行われることとなって解析の困難性が高められ、他人に
模倣されることを充分に防止することができ、しかも上
記飛越し命令があった場合でも命令と復号化されたコー
ドとが一意的に対応づけられ、プログラムの作成等に制
約を与えることがないなどのすぐれた効果をもたらすも
ので必る。
行われることとなって解析の困難性が高められ、他人に
模倣されることを充分に防止することができ、しかも上
記飛越し命令があった場合でも命令と復号化されたコー
ドとが一意的に対応づけられ、プログラムの作成等に制
約を与えることがないなどのすぐれた効果をもたらすも
ので必る。
第1図はコンピュータシステムの概略図、第2図はコン
ピュータ本体のブロック図、第3図は従発明装置を概略
的に示すコンピュータ本体要部のブロック図、第6図は
この装置の具体例を示す10ツク図、第7図は命令デコ
ーダの一部分の等節回路、第8図は本発明装置の動作を
示すタイムチャート、第9図はプログラムの別の例を示
す説明図である。 1−コンピュータ本体、2・−メモリ装置、21復号器
、22−キーレジスタ、26 ・オアゲート(判別手段
)、24 レジスタ制御手段。 特許出願人 コナミ工業株式会社 第 1 図 第 3 図 第 4 図 (A) /β2 手続補正書(自利 昭和59年3月 デ 日 1、事件の表示 昭和59年特許願第22451号 2、発明の名称 マイクロコンピユータにおけるプログラムコード復号化
装置 3、補正をする者 事件との関係 特許出願人 名称 コナミ■業株式会社 4、代理人 住所 大阪市西区西木町1丁目10番3号新松岡ビル 5、補正命令の日付 自発補正 6、補正の対象 明Ill書の発明の詳細な説IIの欄 7、補正の内容 (1) 明細書第10頁第13行目に「1244」とあ
るをf1245Jと訂正Jる。 (2) 明細四箇11頁第4行[」に[反転【)ない借
り−1とあるを「反転しイ【い信号」と訂正する。
ピュータ本体のブロック図、第3図は従発明装置を概略
的に示すコンピュータ本体要部のブロック図、第6図は
この装置の具体例を示す10ツク図、第7図は命令デコ
ーダの一部分の等節回路、第8図は本発明装置の動作を
示すタイムチャート、第9図はプログラムの別の例を示
す説明図である。 1−コンピュータ本体、2・−メモリ装置、21復号器
、22−キーレジスタ、26 ・オアゲート(判別手段
)、24 レジスタ制御手段。 特許出願人 コナミ工業株式会社 第 1 図 第 3 図 第 4 図 (A) /β2 手続補正書(自利 昭和59年3月 デ 日 1、事件の表示 昭和59年特許願第22451号 2、発明の名称 マイクロコンピユータにおけるプログラムコード復号化
装置 3、補正をする者 事件との関係 特許出願人 名称 コナミ■業株式会社 4、代理人 住所 大阪市西区西木町1丁目10番3号新松岡ビル 5、補正命令の日付 自発補正 6、補正の対象 明Ill書の発明の詳細な説IIの欄 7、補正の内容 (1) 明細書第10頁第13行目に「1244」とあ
るをf1245Jと訂正Jる。 (2) 明細四箇11頁第4行[」に[反転【)ない借
り−1とあるを「反転しイ【い信号」と訂正する。
Claims (1)
- 1、 プログラムを構成する各種命令の暗号化したコー
ドを記憶するメモリ装置から、各命令の上記コードをコ
ンピュータ本体内に取込み、コンピュータ本体内で上記
コードを復号化する装置であって、コンピュータ本体内
に、暗号化されたコードを復号化するための復号器と、
この復号器に復号化用の変換値を与えるレジスタと、取
込んだ命令が次に必ずアドレス順に連続した命令の取込
みを生起させる内容をもった連続命令であるか、それ以
外の命令である飛越し命令であるかを判別する判別手段
と、この判別手段からの信号に応じ、上1己連続命令の
コードが取込まれたときは上記レジスタの内容を命令コ
ード取込み毎に変化させ、上記飛越し命令のコードが取
込まれたときは上記レジスタの内容を命令コード取込み
順序に関係しない特定値に設定するレジスタ制御手段と
を設けたことを特徴とするマイクロコンピュータにおけ
るグログ2ムコード復号化装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59022451A JPS60167033A (ja) | 1984-02-08 | 1984-02-08 | マイクロコンピユ−タにおけるプログラムコ−ド復号化装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59022451A JPS60167033A (ja) | 1984-02-08 | 1984-02-08 | マイクロコンピユ−タにおけるプログラムコ−ド復号化装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS60167033A true JPS60167033A (ja) | 1985-08-30 |
JPH0310131B2 JPH0310131B2 (ja) | 1991-02-13 |
Family
ID=12083077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP59022451A Granted JPS60167033A (ja) | 1984-02-08 | 1984-02-08 | マイクロコンピユ−タにおけるプログラムコ−ド復号化装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS60167033A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63145532A (ja) * | 1986-07-04 | 1988-06-17 | Sega Enterp:Kk | 模倣防止機能付プロセツサ |
JPH01183735A (ja) * | 1988-01-18 | 1989-07-21 | Nec Corp | 情報処理装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS513745A (ja) * | 1974-06-28 | 1976-01-13 | Tokyo Shibaura Electric Co | |
JPS5541598A (en) * | 1978-09-14 | 1980-03-24 | Thomas William J | Method and apparatus for controlling use of programmable computing machine |
-
1984
- 1984-02-08 JP JP59022451A patent/JPS60167033A/ja active Granted
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS513745A (ja) * | 1974-06-28 | 1976-01-13 | Tokyo Shibaura Electric Co | |
JPS5541598A (en) * | 1978-09-14 | 1980-03-24 | Thomas William J | Method and apparatus for controlling use of programmable computing machine |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63145532A (ja) * | 1986-07-04 | 1988-06-17 | Sega Enterp:Kk | 模倣防止機能付プロセツサ |
JPH01183735A (ja) * | 1988-01-18 | 1989-07-21 | Nec Corp | 情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
JPH0310131B2 (ja) | 1991-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0083209B1 (en) | A microcomputer for processing instructions of different types | |
Ciletti | Advanced digital design with the Verilog HDL | |
KR100315407B1 (ko) | 제2입력과제3입력의제1부울조합과제2입력과제3입력의제2부울조합의논리곱인제1입력의합을형성하는3입력산술논리유닛 | |
US4593353A (en) | Software protection method and apparatus | |
US4764959A (en) | Single-chip microcomputer with encryptable function on program memory | |
JPS6351287B2 (ja) | ||
JP3481470B2 (ja) | データ等の不正改竄防止システム及びそれと併用される暗号化装置 | |
EP0008033B1 (en) | Microprocessor for executing enciphered programs | |
JP2006107274A (ja) | ハッシュ関数演算システム、暗号化システムおよび不正解析・改竄防止システム | |
JP2005216027A (ja) | 暗号化装置及びこれを備えた暗号化システム並びに復号化装置及びこれを備えた半導体システム | |
JPH07129473A (ja) | データ保護装置 | |
JPS60167033A (ja) | マイクロコンピユ−タにおけるプログラムコ−ド復号化装置 | |
EP1386210A2 (en) | Software protection by means of software modification | |
JP2004133087A (ja) | ブロック暗号方法およびブロック暗号回路 | |
JPH07219852A (ja) | 半導体メモリ装置 | |
JP5732139B2 (ja) | データ要素の条件付き選択 | |
JPH09106690A (ja) | コピー防止機能付きrom | |
JP2624249B2 (ja) | 模倣防止機能付プロセッサ | |
JPH05173892A (ja) | ファイルロード方式 | |
JPH04184629A (ja) | 電子計算機 | |
JP2667810B2 (ja) | ベクトル処理装置 | |
JP2011081429A (ja) | プログラム秘匿システム、プログラム秘匿方法 | |
KR970050868A (ko) | 병렬 crc 디코더 | |
JP2000056966A (ja) | マイクロプロセッサシステムおよびマイクロプロセッサ動作解析防止方法 | |
JP3776652B2 (ja) | ベクトル演算装置 |