JPH052478A - プログラム保護システム - Google Patents

プログラム保護システム

Info

Publication number
JPH052478A
JPH052478A JP3153630A JP15363091A JPH052478A JP H052478 A JPH052478 A JP H052478A JP 3153630 A JP3153630 A JP 3153630A JP 15363091 A JP15363091 A JP 15363091A JP H052478 A JPH052478 A JP H052478A
Authority
JP
Japan
Prior art keywords
circuit
serial
address
cipher
data
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.)
Pending
Application number
JP3153630A
Other languages
English (en)
Inventor
Hiromitsu Moriwaki
宏光 森脇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP3153630A priority Critical patent/JPH052478A/ja
Publication of JPH052478A publication Critical patent/JPH052478A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

(57)【要約】 【構成】CPUおよびプログラムメモリの双方に暗号R
OM14,22を備える。アドレス発生回路13を備え
る。比較回路17を備える。シリアル暗号送信回路23
を備える。シリアル暗号受信回路16を備える。シリア
ルアドレス送信回路15を備える。シリアルアドレス受
信回路24を備える。制御回路12を備える。 【効果】第三者によるシステムの複製が作られることを
防止できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプログラム保護システム
に関し、特にCPUを用いるデータ処理システムのプロ
グラムの複製を防止するプログラム保護システムに関す
る。
【0002】
【従来の技術】従来のプログラム保護システムにおける
プログラムメモリの複製の防止技術は、プログラムメモ
リを複数のプログラムブロックに分割することにより、
プログラムメモリの先頭がどのプログラムブロックにあ
るのかわからないようにしていた。
【0003】
【発明が解決しようとする課題】上述した従来のプログ
ラム保護システムは、CPUとプログラムメモリのイン
タフェースを解読することは容易であるという欠点があ
った。また、プログラムメモリの内容は、ROMライタ
等により容易に解読することができ、したがって、容易
に複製をつくることができるという欠点があった。
【0004】
【課題を解決するための手段】本発明のプログラム保護
システムは、第一の暗号データを格納した第一の記憶回
路を有する中央演算ユニットと、前記暗号データと同一
の第二の暗号データを格納した第二の記憶回路を有しプ
ログラムを格納したプログラムメモリと、前記第一およ
び第二の記憶回路から前記第一および第二の暗号データ
を読出すアドレスを発生するアドレス発生回路と、前記
第一および第二の記憶回路からそれぞれ読出した前記第
一および第二の暗号データを比較する比較回路と、前記
アドレスをシリアルデータのシリアルアドレスに変換す
る第一のパラレルシリアル変換回路と、前記シリアルア
ドレスをパラレルデータの前記アドレスに再変換する第
一のシリアルパラレル変換回路と、前記第一および第二
のいずれか一方の暗号データをシリアルデータのシリア
ル暗号データに変換する第二のパラレルシリアル変換回
路と、前記シリアル暗号データをパラレルデータの前記
暗号データに再変換する第二のシリアルパラレル変換回
路と、前記中央演算ユニットと前記プログラムメモリと
を有するデータ処理システムの前記第一および第二の暗
号データの処理と通常処理とを切替え制御する制御回路
とを備えて構成されている。
【0005】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
【0006】図1は、本発明のプログラム保護システム
の一実施例を示すブロック図である。
【0007】本実施例のプログラム保護システムは、図
1に示すように、CPU1と、プログラムメモリ2と、
アドレスデコード回路3を備えて構成されている。
【0008】図2は、CPU1の構成を示す回路図であ
る。CPU1は、CPUコア11と、制御回路12と、
アドレス発生回路13と、暗号ROM14と、シリアル
アドレス送信回路15と、シリアル暗号受信回路16
と、比較器17とを備えて構成されている。
【0009】CPUコア11は、従来のCPUと同一の
機能を有する。制御回路12は、CPUコア11のリセ
ット信号を制御するための回路である。アドレス発生回
路13は、システムの起動後、00〜FFHまでの任意
のアドレスAを発生し出力する機能を有する。暗号RO
M14は、アドレス発生回路13より出力されるアドレ
スAに対応する暗号データD1を出力する。比較回路1
7は、2つの入力信号を比較して一致したら一致信号C
を出力する。
【0010】シリアルアドレス送信回路15は、アドレ
スAをパラレルシリアル変換してシリアルアドレスAS
として送信するための回路であり、バッファ151と、
シフトレジスタ152と、スタートビット付加回路15
3と、クロック生成回路154とを有して構成されてい
る。
【0011】シリアル暗号受信回路16は、受信したシ
リアル暗号データD2Sをシリアルパラレル変換して、
もとのパラレルの暗号データD2を再構成するための回
路であり、バッファ161と、シフトレジスタ162
と、スタートビット検出回路163と、クロック生成回
路164とを有して構成されている。
【0012】図3は、プログラムメモリ2の構成を示す
回路図である。プログラムメモリ2は、メモリコア21
と、暗号ROM22と、シリアル暗号送信回路23と、
シリアルアドレス受信回路24とを備えて構成されてい
る。
【0013】メモリコア21は、プログラムが記憶され
ている従来と同様のメモリである。暗号ROM22は、
CPU1の暗号ROM14と同様のものであり、入力さ
れるアドレスに対応する暗号データD2を出力する。
【0014】シリアル暗号送信回路23は、暗号D2を
パラレルシリアル変換してシリアル暗号データD2Sと
して送信するための回路であり、バッファ231と、シ
フトレジスタ232と、スタートビット付加回路233
と、クロック生成回路234とを有して構成されてい
る。
【0015】シリアルアドレス受信回路24は、受信し
たシリアルアドレスASをシリアルパラレル変換して、
もとのパラレルのアドレスAを再構成するための回路で
あり、バッファ241と、シフトレジスタ242と、ス
タートビット検出回路243と、クロック生成回路24
4とを有して構成されている。
【0016】アドレスデコード回路3は、CPU1から
のアドレスAをデコードしてプログラムメモリ2のチッ
プセレクト信号CSを生成する。
【0017】次に、本実施例の動作について説明する。
【0018】図4は、図1〜図3で示す本実施例の回路
のタイムチャ―トである。
【0019】電源投入後、リセット信号RSがハイレベ
ルからローレベルに、すなわち、CPU1の制御回路1
2の端子RSがローレベルに変化すると、制御回路12
は端子STをローレベル、つまり、ステータス信号ST
をローレベルとする。この結果、CPUコア11は、ス
テータス信号STがローレベルとなることによりリセッ
ト状態となる。アドレス発生回路13は、リセット信号
RSがローレベルの期間にアドレス00〜FFHまでの
任意のアドレスAを発生する。そして、リセット信号R
Sがハイレベルの期間にそのレベル状態を保持する。こ
のアドレスAは、シリアルアドレス送信回路15のバッ
ファ151と、暗号RO14の端子A0〜A7に入力さ
れる。暗号RO14は、端子A0〜A7のデータに対応
した00〜FFHの範囲の暗号データD1を比較回路1
7に対して出力する。
【0020】一方、比較回路17のもう一方の入力であ
るシリアル暗号受信回路16のバッファ161は、電源
投入直後はデータFFHを出力しているため両入力が一
致することはないので、比較回路17の出力はローレベ
ルとなっている。また、バッファ151に入力されたア
ドレスAは、ラッチおよび保持され、そのまま出力して
シフトレジスタ152に入力される。
【0021】次に、リセット信号RSがローレベルから
ハイレベルになると、シリアルアドレス送信回路15の
クロック生成回路154はリセットされ、クロック生成
回路154に入力されるシステムクロックCKのパルス
数をカウントする。そして、そのパルスの8カウントご
とに送信クロックCTKを出力する。
【0022】ここで、シフトレジスタ152は、送信ク
ロックCTKのレベルが電源投入後における最初のハイ
レベルからローレベルへのレベル変化のときにはシフト
動作を行なわない。ハイレベルからローレベルへのレベ
ル変化の2回目以降は、送信クロックのレベルがハイレ
ベルからローレベルへのレベル変化ごとに端子SOか
ら、入力のアドレスAをパラレルシリアル変換したシリ
アルアドレスASを出力する。
【0023】スタートビット付加回路153は、送信ク
ロックCTKのレベルが電源投入後における最初のハイ
レベルからローレベルへのレベル変化のときには、端子
OUT出力をローレベルとし、ハイレベルからローレベ
ルへのレベル変化の2回目以降は、送信クロックCTK
のレベルがハイレベルからローレベルへのレベル変化ご
とに端子IN入力のレベル状態をラッチして、端子OU
T出力を端子IN入力と同一のレベル状態にする。そし
て、ハイレベルからローレベルへのレベル変化の10回
目以降は端子OUT出力をハイレベルに保持する。以上
の動作により、CPU1からアドレス発生回路13が生
成したアドレスAはシリアルアドレスASとしてプログ
ラムメモリ2に入力される。
【0024】次に、入力されたシリアルアドレスAS
は、プログラムメモリ2のシリアルアドレス受信回路2
4のスタートビット検出回路243の端子INに入力さ
れる。スタートビット検出回路243は、端子INの入
力がハイレベルからローレベルに変化すると端子Qの出
力であるスタートビット検出信号SDをローレベルから
ハイレベルに遷移させる。スタートビット検出回路24
3は、クロック生成回路244からの受信クロックCR
Kの1パルスが入力されるまでに端子INのレベル状態
がハイレベルに戻るとスタートビット検出信号SDをロ
ーレベルに戻すことにより、クロック生成回路244に
対しシステムクロックCKのカウント動作の停止を指示
する。そして、10個目の受信クロックCRKが入力さ
れた時点で、スタートビット検出信号SDをローレベル
に設定する。
【0025】クロック生成回路244は、端子TR1が
ハイレベルの期間中に入力されるシステムクロックCK
のパルス数をカウントする。パルス数を8カウントした
時点で、受信クロックCRKとしてシステムクロックC
Kの一周期と同一の幅のパルスを一個出力する。以降、
システムクロックCKのパルス数の16カウントごとに
同様のパルスを発生する。
【0026】スタートビット検出回路243は、クロッ
ク生成回路244が発生する受信クロックCRKが入力
されるごとに、端子INに入力されるシリアルアドレス
ASのレベル状態をラッチして端子OUTに伝達する。
【0027】同時にシフトレジスタ242は、受信クロ
ックCRKが入力されるごとに端子SIに入力されてい
るシリアルアドレスASをシフトさせ、シリアルパラレ
ル変換を行ない、パラレルデータに再変換されたアドレ
スAを出力する。シフトレジスタ242が、シリアルア
ドレスASからパラレルのアドレスAへの再変換を完了
する時点、すなわち、クロック生成回路244が受信ク
ロックCRKの9個目のパルスを出力したときは、端子
SHにシステムクロックCKの一周期と同一の幅のスト
ップパルスSPを一個出力して、このストップパルスS
Pをバッファ241の端子Cに入力する。バッファ24
1はこのストップパルスSPが入力された時点で入力さ
れるパラレルデータであるアドレスAをラッチし、保持
して暗号ROM22に出力する。
【0028】暗号ROM22においては、シリアルアド
レス受信回路24のバッファ241の端子DOが出力す
るCPU1から送られてきたアドレスAが端子A0〜A
7に入力される。そして、このアドレスAに対応する暗
号データD2を端子D0〜D7に出力する。この暗号デ
ータD2は、シリアル暗号送信回路23のバッファ23
1と、シフトレジスタ232と、スタートビット付加回
路233と、クロック生成回路234とにより、前述の
CPU1のシリアルアドレス送信回路15と同様の動作
でシリアル変換されて、シリアル暗号データD2Sとし
てCPU1に送信する。
【0029】CPU1では、このシリアル暗号データD
2Sをシリアル暗号受信回路16により受信し、その構
成要素であるバッファ161と、シフトレジスタ162
と、スタートビット付加回路163と、クロック生成回
路164とにより、前述のプログラムメモリ2のシリア
ルアドレス受信回路24と同様の動作でシリアルパラレ
ル再変換して、パラレルの暗号データD2として比較回
路17に入力する。
【0030】比較回路17は、前述のように、一方の端
子に暗号ROM14からの暗号データD1が印加され、
他の一方の端子にはシリアル暗号受信回路16からの暗
号データD2が印加されており、2つの入力信号D1,
D2を比較して一致したらハイレベルの一致信号Cを出
力し制御回路12の端子CMPに入力する。
【0031】制御回路12は、端子CMPがハイレベル
になると、端子STからのステータス信号STをハイレ
ベルとすることによりCPUコア11のリセット動作を
解除する。
【0032】もし、両方の暗号データD1,D2を比較
して不一致であったならば、ステータス信号STはロー
レベルを保持し、プログラムを起動させないようにす
る。
【0033】以上説明したように本実施例は、CPUと
プログラムメモリの双方に同一の暗号ROMを内臓する
ことによって、第三者がプログラムメモリの内容をRO
Mライタで読取って複製品を作ってもCPUを起動する
ことができず、設計者の著作権を保護できるという利点
がある。
【0034】次に、本発明の第二の実施例について説明
する。
【0035】図5,図6は、本発明の第二の実施例を示
すCPUおよびプログラムメモリののブロック図であ
る。
【0036】本実施例の前述の第一の実施例に対する相
違点は、図1において、CPU1に代ってCPU4に、
プログラムメモリ2に代ってプログラムメモリ5になる
とともに、CPU1側にあったアドレス発生回路および
比較回路がプログラムメモリ5側に移るとともに、プロ
グラムメモリ5にゲート回路57が付加されたことであ
る。これに関連して、シリアル暗号データD2Sおよび
シリアルアドレスASのシリアル転送の方向が反対にな
っている。その他の構成要素については第一の実施例と
共通であり、本実施例に直接間連するもの以外は冗長と
ならないよう説明を省略する。
【0037】図5において、本実施例のCPU4は、第
一の実施例と同様のCPUコア41と、暗号ROM44
とに加えて、第一の実施例のプログラムメモリ2から移
されたシリアル暗号送信回路42と、シリアルアドレス
受信回路43とを備えて構成されている。
【0038】図6において、本実施例のプログラムメモ
リ5は、第一の実施例と同様のメモリコア51と、暗号
ROM52とに加えて、第一の実施例のCPU1から移
されたアドレス発生回路53と、シリアルアドレス送信
回路54と、シリアル暗号受信回路55と、比較回路5
6と、さらに新規に付加されたゲート回路57とを備え
て構成されている。
【0039】次に、本実施例の動作について説明する。
【0040】プログラムメモリ5のゲート回路57は、
リセット端子RSTの入力がローレベルの期間は、ステ
ータス端子STをローレベルに、アドレス端子AO0〜
AO7、データ端子DO0〜DO7、チップセレクト端
子CSO、リード端子RDOのそれぞれをハイインピー
ダンス状態とする。リセット端子RSTの入力がローレ
ベルからハイレベルになると、比較信号端子CMPにハ
イレベル入力が印加されるまではそのままの状態を保持
する。比較信号端子CMPにハイレベル入力が印加され
ると、アドレス端子AI0〜AI7とAO0〜AO7、
データ端子DI0〜DI7とDO0〜DO7、チップセ
レクト端子CSIとCSO、リード端子RDIとRDO
のそれぞれの間を内部で接続する。
【0041】本実施例では、プログラムメモリ5からシ
リアルアドレスASをCPU4に転送し、CPU4にお
いて、アドレスAにシリアルパラレル変換を行なって暗
号ROM44から暗号データD1を読出し、これをシリ
アル暗号データD1Sとしてプログラムメモリ5に転送
し、シリアルパラレル変換を行なって暗号データD1に
再変換し、比較回路56にて暗号ROM52からの暗号
データD2と比較するという基本動作は、シリアル暗号
データD1SおよびシリアルアドレスASのシリアル転
送の方向が反対になっているほかは前述の第一の実施例
と同様である。
【0042】比較回路56において、暗号データD1,
D2の比較結果一致したらハイレベルの一致信号Cを出
力しゲート回路57の端子CMPに入力する。ゲート回
路57は、外部からのアドレスA、データD、メモリリ
ード信号R、チップセレクト信号CSをメモリコア51
に接続する。
【0043】暗号データD1,D2の比較結果不一致な
らば、ゲート回路57は、外部からのアドレスA、デー
タD、メモリリード信号R、チップセレクト信号CSを
メモリコア51に接続しない。
【0044】前述の第一の実施例では、プログラムメモ
リの暗号ROMの内容がROMライタにより容易に読取
れるのに対して、本実施例では、プログラムメモリ内で
暗号データの比較を行なうため、読取ることができず、
したがって、プログラムメモリの複製も作らせないとい
う利点がある。
【0045】
【発明の効果】以上説明したように、本発明のプログラ
ム保護システムは、CPUおよびプログラムメモリの双
方に暗号ROMを備え、アドレス発生回路と、比較回路
と、暗号データとアドレスをシリアル転送するシリアル
暗号送信回路と、シリアル暗号受信回路と、シリアルア
ドレス送信回路と、シリアルアドレス受信回路と、それ
らを制御する制御回路とを備えることにより、第三者に
よるシステムの複製が作られることを防止できるという
効果がある。
【図面の簡単な説明】
【図1】本発明のプログラム保護システムの第一の実施
例を示すブロック図である。
【図2】図1に示したCPUの構成の一例を示すブロッ
ク図である。
【図3】図1に示したプログラムメモリの構成の一例を
示すブロック図である。
【図4】本実施例のプログラム保護システムにおける動
作の一例を示すフローチャートである。
【図5】本発明のプログラム保護システムの第二の実施
例のCPUの構成を示すブロック図である。
【図6】本発明のプログラム保護システムの第二の実施
例のプログラムメモリの構成を示すブロック図である。
【符号の説明】
1,4 CPU 2,5 プログラムメモリ 3 アドレスデコード回路 11,41 CPUコア 12 制御回路 13,53 アドレス発生回路 14,22,44,52 暗号ROM 15,54 シリアルアドレス送信回路 16,55 シリアル暗号受信回路 17,56 比較回路 21,51 メモリコア 23,42 シリアル暗号送信回路 24,43 シリアルアドレス受信回路 57 ゲート回路 151,161,231,241 バッファ 152,162,232,242 シフトレジスタ 153,233 スタートビット付加回路 163,243 スタートビット検出回路 154,234,164,244 クロック生成回路

Claims (1)

  1. 【特許請求の範囲】 【請求項1】 第一の暗号データを格納した第一の記憶
    回路を有する中央演算ユニットと、前記暗号データと同
    一の第二の暗号データを格納した第二の記憶回路を有し
    プログラムを格納したプログラムメモリと、前記第一お
    よび第二の記憶回路から前記第一および第二の暗号デー
    タを読出すアドレスを発生するアドレス発生回路と、前
    記第一および第二の記憶回路からそれぞれ読出した前記
    第一および第二の暗号データを比較する比較回路と、前
    記アドレスをシリアルデータのシリアルアドレスに変換
    する第一のパラレルシリアル変換回路と、前記シリアル
    アドレスをパラレルデータの前記アドレスに再変換する
    第一のシリアルパラレル変換回路と、前記第一および第
    二のいずれか一方の暗号データをシリアルデータのシリ
    アル暗号データに変換する第二のパラレルシリアル変換
    回路と、前記シリアル暗号データをパラレルデータの前
    記暗号データに再変換する第二のシリアルパラレル変換
    回路と、前記中央演算ユニットと前記プログラムメモリ
    とを有するデータ処理システムの前記第一および第二の
    暗号データの処理と通常処理とを切替え制御する制御回
    路とを備えることを特徴とするプログラム保護システ
    ム。
JP3153630A 1991-06-26 1991-06-26 プログラム保護システム Pending JPH052478A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3153630A JPH052478A (ja) 1991-06-26 1991-06-26 プログラム保護システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3153630A JPH052478A (ja) 1991-06-26 1991-06-26 プログラム保護システム

Publications (1)

Publication Number Publication Date
JPH052478A true JPH052478A (ja) 1993-01-08

Family

ID=15566705

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3153630A Pending JPH052478A (ja) 1991-06-26 1991-06-26 プログラム保護システム

Country Status (1)

Country Link
JP (1) JPH052478A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569371B2 (en) 2014-06-13 2017-02-14 Samsung Electronics Co., Ltd. Memory device, memory system, and operating method of memory system
CN110231794A (zh) * 2019-07-09 2019-09-13 四川米众网络科技股份有限公司 基于安全cpu芯片的串行通信控制器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569371B2 (en) 2014-06-13 2017-02-14 Samsung Electronics Co., Ltd. Memory device, memory system, and operating method of memory system
CN110231794A (zh) * 2019-07-09 2019-09-13 四川米众网络科技股份有限公司 基于安全cpu芯片的串行通信控制器

Similar Documents

Publication Publication Date Title
US5995629A (en) Encoding device
TWI490880B (zh) 資料匯流排反轉裝置、系統及方法
US4078152A (en) Block-cipher cryptographic system with chaining
US5355412A (en) Identifying secret data messages in a one-direction multipoint network
JPH0324107B2 (ja)
JPS6014353B2 (ja) デイジタル署名装置
JPS6122316B2 (ja)
SE447774B (sv) Kodnings- och avkodningsanordning med noll-disparitet samt digitalt kommunikationssystem innefattande nemnda kodnings- och avkodningsanordningar
EP0694237A4 (en) DATA TRANSFER DEVICE
JPH01503028A (ja) 暗号化及び解読装置
JPH052478A (ja) プログラム保護システム
JPH02179046A (ja) 信号符号化方式
EP3654576B1 (en) Computer-implemented method for error-correction-encoding and encrypting of a file
JPH0548017B2 (ja)
JPS61154331A (ja) デ−タ変換器
KR920001575B1 (ko) 암호화 및 해독장치
JPH026465B2 (ja)
JPH0773286B2 (ja) データ伝送方法
JPS58213544A (ja) 通信制御処理装置
JPH06103898B2 (ja) シリアル伝送のための機能を利用したパラレル伝送方法
US20060126834A1 (en) M6 block cipher system and method for encoding content and authenticating a device
SU1172060A1 (ru) Устройство дл детектировани сигналов двойной частотной телеграфии
JPS63308432A (ja) 系列生成方法
SU467466A1 (ru) Шифратор команд
SU471583A1 (ru) Устройство дл передачи информации из цифровой вычислительной машины в линию св зи