(57)【特許請求の範囲】
【請求項１】
プログラムを記憶した記憶装置と、
第１セキュリティ・コードを生成するキー装置と、
前記キー装置と直接接続するセキュリティ装置であって、前記記憶装置に記憶されたプログラムを入力して、該プログラムから算出された第２キー・コードを初期値として第２セキュリティ・コードを生成し、前記キー装置から第１セキュリティ・コードを入力して、第１セキュリティ・コードと第２セキュリティ・コードとを比較して、不一致の場合はエラー信号を生成するセキュリティ装置と、
前記セキュリティ装置により生成されたエラー信号によって動作を制御される、前記セキリティ装置と一体に形成された機能モジュールとを備え、
前記セキュリティ装置は、
前記記憶装置から入力されたプログラムに対して所定の演算を行うことにより、第２キー・コードを算出する第２キー・コード算出手段と、
前記第２キー・コード算出手段により得られた第２セキュリティ・コードを生成する第２セキュリティ・コード生成手段と、
前記キー装置に対して第１セキュリティ・コードの転送を要求する信号を生成する転送要求信号生成手段と、
前記転送要求信号生成手段により生成された信号を送信するセキュリティ装置側送信手段と、
前記キー装置から転送された第１セキュリティ・コードを受信するセキュリティ装置側受信手段と、
前記セキュリティ装置側受信手段が前記キー装置から第１セキュリティ・コードを受信するまで、前記第２セキュリティ・コード生成手段が前記第２キー・コード算出手段から第２キー・コードを入力することを遅延させる遅延手段と、
前記セキュリティ装置側受信手段により受信された第１セキュリティ・コードと前記第２セキュリティ・コード生成手段により生成された第２セキュリティ・コードとの一致を比較する比較手段と、
前記比較手段による比較結果が一致しない場合、所定の時間の後に前記機能モジュールに対して不一致を通知するエラー信号を生成するエラー信号生成手段と
を備えたことを特徴とするプログラム・プロテクション・システム。
【請求項２】
請求項１に記載のプログラム・プロテクション・システムにおいて、前記機能モジュールは、プログラムの実行に伴い生成されたビデオ信号を処理するビデオ処理モジュールであることを特徴とするプログラム・プロテクション・システム。
【請求項３】
予め記憶された第１キー・コードを初期値として第１セキュリティ・コードをキー装置において生成する第１セキュリティ・コード生成ステップと、
プログラムを記憶した記憶装置に記憶されたプログラムを入力して、該プログラムから算出された第２キー・コードを初期値として第２セキュリティ・コードをセキュリティ装置において生成する第２セキュリティ・コード生成ステップであって、前記キー装置と前記セキュリティ装置は直接接続されている生成ステップと、
第１セキュリティ・コードと第２セキュリティ・コードとを比較して、不一致の場合はエラー信号を前記セキュリティ装置において生成するエラー信号生成ステップと、
生成された前記エラー信号によって、前記プログラムの実行に伴って処理される機能を有する機能モジュールの動作を制御する制御ステップとを備え、
前記第２セキュリティ・コード生成ステップは、
前記記憶装置から入力されたプログラムに対して所定の演算を行うことにより、第２キー・コードを算出する第２キー・コード算出ステップと、
前記第２キー・コード算出手段により得られた第２セキュリティ・コードを生成する第２セキュリティ・コード生成ステップとを備え、
前記エラー信号生成ステップは、
前記第１セキュリティ・コードの転送を要求する信号を生成する転送要求信号生成ステップと、
前記転送要求信号生成ステップにより生成された信号を送信するセキュリティ装置側送信ステップと、
転送された第１セキュリティ・コードを受信するセキュリティ装置側受信ステップと、
前記セキュリティ装置側受信ステップが前記キー装置から第１セキュリティ・コードを受信するまで、前記第２セキュリティ・コード生成ステップが前記第２キー・コード算出ステップから第２キー・コードを入力することを遅延させる遅延ステップと、
前記セキュリティ装置側受信ステップにより受信された第１セキュリティ・コードと前記第２セキュリティ・コード生成ステップにより生成された第２セキュリティ・コードとの一致を比較する比較ステップと、
前記比較ステップによる比較結果が一致しない場合、所定の時間の後に前記機能モジュールに対して不一致を通知するエラー信号を生成するエラー信号生成ステップと
を備えたことを特徴とするプログラム・プロテクション方法。
【請求項４】
データを記憶した記憶装置と、
予め記憶された第１キー・コードを初期値として所定の乱数を発生させることにより第１セキュリティ・コードを生成するキー装置と、
前記キー装置と直接接続するセキュリティ装置であって、前記記憶装置に記憶されたデータを入力して、該データから算出された第２キー・コードを初期値として第２セキュリティ・コードを生成し、前記キー装置から第１セキュリティ・コードを入力して、第１セキュリティ・コードと第２セキュリティ・コードとを比較して、不一致の場合はエラー信号を生成するセキュリティ装置と、
前記セキュリティ装置により生成されたエラー信号によって動作を制御される機能モジュールとを備え、
前記セキュリティ装置は、
前記記憶装置から入力されたデータに対して所定の演算を行うことにより、第２キー・コードを算出する第２キー・コード算出手段と、
前記第２キー・コード算出手段により得られた第２セキュリティ・コードを生成する第２セキュリティ・コード生成手段と、
前記キー装置に対して第１セキュリティ・コードの転送を要求する信号を生成する転送要求信号生成手段と、
前記転送要求信号生成手段により生成された信号を送信するセキュリティ装置側送信手段と、
前記キー装置から転送された第１セキュリティ・コードを受信するセキュリティ装置側受信手段と、
前記セキュリティ装置側受信手段が前記キー装置から第１セキュリティ・コードを受信するまで、前記第２セキュリティ・コード生成手段が前記第２キー・コード算出手段から第２キー・コードを入力することを遅延させる遅延手段と、
前記セキュリティ装置側受信手段により受信された第１セキュリティ・コードと前記第２セキュリティ・コード生成手段により生成された第２セキュリティ・コードとの一致を比較する比較手段と、
前記比較手段による比較結果が一致しない場合、所定の時間の後に前記機能モジュールに対して不一致を通知するエラー信号を生成するエラー信号生成手段と
を備えたことを特徴とするプログラム・プロテクション・システム。
【請求項５】
プログラムを記憶した記憶装置と、予め記憶された第１キー・コードを初期値として所定の乱数を発生させることにより第１セキュリティ・コードを生成するキー装置と、
前記キー装置と直接接続するセキュリティ装置であって、前記記憶装置に記憶されたプログラムを入力して、該プログラムから算出された第２キー・コードを初期値として所定の乱数を発生させることにより第２セキュリティ・コードを生成し、前記キー装置から第１セキュリティ・コードを入力して、第１セキュリティ・コードと第２セキュリティ・コードとを比較して、不一致の場合はエラー信号を生成するセキュリティ装置と、
前記セキュリティ装置により生成されたエラー信号によって動作を制御される、前記セキュリティ装置と一体に形成された機能モジュールとを備え、
前記セキュリティ装置は、
前記記憶装置から入力されたプログラムに対して所定の演算を行うことにより、第２キー・コードを算出する第２キー・コード算出手段と、
前記第２キー・コード算出手段により得られた第２キー・コードを記憶する第２キー・コード記憶手段と、
前記第２キー・コード記憶手段から第２キー・コードを入力し、該第２キー・コードを初期値として所定の乱数を発生させることにより第２セキュリティ・コードを生成する第２セキュリティ・コード生成手段と、
前記キー装置に対して第１セキュリティ・コードの転送を要求する信号を生成する転送要求信号生成手段と、
前記転送要求信号生成手段により生成された信号を送信するセキュリティ装置側送信手段と、
前記キー装置から転送された第１セキュリティ・コードを受信するセキュリティ装置側受信手段と、
前記セキュリティ装置側受信手段が前記キー装置から第１セキュリティ・コードを受信するまで、前記第２セキュリティ・コード生成手段が前記第２キー・コード算出手段から第２キー・コードを入力することを遅延させる遅延手段と、
前記セキュリティ装置側受信手段により受信された第１セキュリティ・コードと前記第２セキュリティ・コード生成手段により生成された第２セキュリティ・コードとの一致を比較する比較手段と、
前記比較手段による比較結果が一致しない場合、所定の時間の後に前記機能モジュールに対して不一致を通知するエラー信号を生成するエラー信号生成手段と
を備え、
前記キー装置は、
前記セキュリティ装置側送信手段から送信された信号を受信するキー装置側受信手段と、
受信した信号が転送要求信号であることを検出する検出手段と、
予め第１キー・コードを記憶する第１キー・コード記憶手段と、
前記第１キー・コード記憶手段から第１キー・コードを入力し、該第１キー・コードを初期値として所定の乱数を発生させることにより第１セキュリティ・コードを生成する第１セキュリティ・コード生成手段と、
発生した第１セキュリティ・コードを前記セキュリティ装置へ送信するキー装置側送信手段とを備えたことを特徴とするプログラム・プロテクション・システム。
【請求項６】
請求項５に記載のプログラム・プロテクション・システムにおいて、
前記セキュリティ装置側送信手段は、前記キー装置へ転送する信号に暗号化を施す暗号化手段を備え、
前記キー装置側受信手段は、前記暗号化手段により施された暗号を解除する暗号解除手段を備えたことを特徴とするプログラム・プロテクション・システム。
【請求項７】
請求項５に記載のプログラム・プロテクション・システムにおいて、
前記キー装置側送信手段は、前記セキュリティ装置へ転送する第２セキュリティ・コードに暗号化を施す第２セキュリティ・コード暗号化手段を備え、
前記セキュリティ装置側受信手段は、前記第２セキュリティ・コード暗号化手段により施された暗号を解除する第２セキュリティ・コード暗号解除手段を備えたことを特徴とするプログラム・プロテクション・システム。
【請求項８】
予め記憶された第１キー・コードを初期値として所定の乱数を発生させることにより第１セキュリティ・コードをキー装置において生成する第１セキュリティ・コード生成ステップと、
プログラムを記憶した記憶装置に記憶されたプログラムを入力して、該プログラムから算出された第２キー・コードを初期値として所定の乱数を発生させることにより第２セキュリティ・コードをセキュリティ装置において生成する第２セキュリティ・コード生成ステップであって、前記キー装置と前記セキュリティ装置は直接接続されている生成ステップと、
第１セキュリティ・コードと第２セキュリティ・コードとを比較して、不一致の場合はエラー信号を前記セキュリティ装置において生成するエラー信号生成ステップと、
生成された前記エラー信号によって、前記プログラムの実行を処理する機能モジュールの動作を制御する制御ステップとを備え、前記第２セキュリティ・コード生成ステップは、
入力したプログラムに対して所定の演算を行うことにより、第２キー・コードを算出する第２キー・コード算出ステップと、
前記第２キー・コード算出ステップにより得られた第２キー・コードを記憶する第２キー・コード記憶ステップと、
前記第２キー・コードを初期値として所定の乱数を発生させることにより第２セキュリティ・コードを生成する第２セキュリティ・コード生成ステップと、
第１セキュリティ・コードの転送を要求する信号を生成する転送要求信号生成ステップと、  前記転送要求信号を送信する転送要求信号送信ステップと、
第１セキュリティ・コードを受信するまで、第２キー・コードの入力を遅延させる遅延ステップと、
第１セキュリティ・コードを受信する第１セキュリティ・コード受信ステップと、
前記第１セキュリティ・コードと前記第２セキュリティ・コードとの一致を比較する比較ステップと、
前記比較ステップによる比較結果が一致しない場合、所定の時間の後に前記機能モジュールに対して不一致を通知するエラー信号を生成するエラー信号生成ステップと
を備え、
前記第１セキュリティ・コード生成ステップは、
送信された信号を受信する受信ステップと、
受信した信号が転送要求信号であることを検出する検出ステップと、
予め第１キー・コードを記憶する第１キー・コード記憶ステップと、
前記第１キー・コードを初期値として所定の乱数を発生させることにより第１セキュリティ・コードを生成する第１セキュリティ・コード生成ステップと、
生成した第１セキュリティ・コードを前記セキュリティ装置へ送信する第１セキュリティ・コード送信ステップとを備えたことを特徴とするプログラム・プロテクション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティ装置、キー装置、プログラム・プロテクション・システムおよび方法に関する。
【背景技術】
【０００２】
従来、プログラム、例えばゲーム・プログラムが記憶されたＲＯＭ等の記憶装置から不正にプログラムをコピーすることを防止するためには、プログラムごとに異なるキーを有するＩＣを別に用意しておき、ＲＯＭ等の記憶装置から得られたパスワードとＩＣから得られたキーとをソフトウェアで比較して、その不一致によりＲＯＭ等の不正を判断していた。
【０００３】
図１は、従来のコピー防止またはプログラム・プロテクション方法の概要をブロック図で示す。
【０００４】
図１において、記憶装置１３０はプログラムを記憶した装置（例えばＲＯＭ）であり、キーＩＣ１４０は記憶装置１３０に特有のキーを記憶したＩＣである。記憶装置１３０とキーＩＣ１４０とは同じ基板１６０上に搭載された例えばゲーム基板１６０となっており、バス１５０に着脱可能に接続している。データ処理装置１００はＣＰＵ等の処理装置であり、記憶装置１１０は、プログラム・プロテクションのためのソフトウェアを記憶した他のＲＯＭ等（不図示）から該ソフトウェアがロードされるＲＡＭ等の記憶装置である。機能モジュール１２０は、記憶装置１３０（ＲＯＭ等）に記憶されたプログラムの実行に伴って処理される各種の機能、例えばビデオ信号の処理等の機能が集まったモジュールである。これらのデータ処理装置１００、記憶装置１１０および機能モジュール１２０はバス１５０に接続している。
データ処理装置１００は、記憶装置１１０にロードされたコピー・プロテクション用のソフトウェアを実行して、まず記憶装置１３０の内容から所定の演算により記憶装置１３０の内容に特有のパスワードを生成する。次にこのパスワードとキーＩＣ１４０内にあるキーとを比較して、不一致の場合は記憶装置１３０が不正にコピーされたものであると判断し、機能モジュール１２０に対して動作の停止を指示する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述のコピー・プロテクション方法は、例えば古いゲーム・プログラムＡが記憶された記憶装置１３０を他の例えば新しいゲーム・プログラムＢが記憶された記憶装置１３０と付け替えることにより、古いゲーム・プログラムＡが搭載されていたゲーム基板１６０をそのまま利用した不正品に対しては対処が可能である。
【０００６】
しかし上述の従来例の方法では、データ処理装置１００がソフトウェアによりコピー・プロテクションを行っているため、コピー・プロテクションを回避するソフトウェアを製作されてしまう可能性が高い。さらに、記憶装置１３０が不正品であることが検出されても、機能モジュール１２０を停止させないように基板１６０を含む全体の基板を改造されてしまう可能性も高い。上述の従来例の方法では、これらのいずれの場合にも対処ができない。
【課題を解決するための手段】
【０００７】
そこで、本発明の目的は上記問題を解決するためになされたものであり、コピー・プロテクションの実行をハードウェアで行い、かつこのハードウェアと機能モジュールとを一体に形成することにより、コピー・プロテクションを回避するソフトウェアまたは基板の改造に対処することができるセキュリティ装置、キー装置、プログラム・プロテクション・システムおよび方法を提供することにある。
【０００８】
本発明は、プログラムを記憶した記憶装置と、
第１セキュリティ・コードを生成するキー装置と、
前記キー装置と直接接続するセキュリティ装置であって、前記記憶装置に記憶されたプログラムを入力して、該プログラムから算出された第２キー・コードを初期値として第２セキュリティ・コードを生成し、前記キー装置から第１セキュリティ・コードを入力して、第１セキュリティ・コードと第２セキュリティ・コードとを比較して、不一致の場合はエラー信号を生成するセキュリティ装置と、
前記セキュリティ装置により生成されたエラー信号によって動作を制御される、前記セキリティ装置と一体に形成された機能モジュールとを備え、
前記セキュリティ装置は、
前記記憶装置から入力されたプログラムに対して所定の演算を行うことにより、第２キー・コードを算出する第２キー・コード算出手段と、
前記第２キー・コード算出手段により得られた第２セキュリティ・コードを生成する第２セキュリティ・コード生成手段と、
前記キー装置に対して第１セキュリティ・コードの転送を要求する信号を生成する転送要求信号生成手段と、
前記転送要求信号生成手段により生成された信号を送信するセキュリティ装置側送信手段と、
前記キー装置から転送された第１セキュリティ・コードを受信するセキュリティ装置側受信手段と、
前記セキュリティ装置側受信手段が前記キー装置から第１セキュリティ・コードを受信するまで、前記第２セキュリティ・コード生成手段が前記第２キー・コード算出手段から第２キー・コードを入力することを遅延させる遅延手段と、
前記セキュリティ装置側受信手段により受信された第１セキュリティ・コードと前記第２セキュリティ・コード生成手段により生成された第２セキュリティ・コードとの一致を比較する比較手段と、
前記比較手段による比較結果が一致しない場合、所定の時間の後に前記機能モジュールに対して不一致を通知するエラー信号を生成するエラー信号生成手段と
を備えたことを特徴とする。
【０００９】
また、本発明は、プログラムを記憶した記憶装置と、予め記憶された第１キー・コードを初期値として所定の乱数を発生させることにより第１セキュリティ・コードを生成するキー装置と、
前記キー装置と直接接続するセキュリティ装置であって、前記記憶装置に記憶されたプログラムを入力して、該プログラムから算出された第２キー・コードを初期値として所定の乱数を発生させることにより第２セキュリティ・コードを生成し、前記キー装置から第１セキュリティ・コードを入力して、第１セキュリティ・コードと第２セキュリティ・コードとを比較して、不一致の場合はエラー信号を生成するセキュリティ装置と、
前記セキュリティ装置により生成されたエラー信号によって動作を制御される、前記セキュリティ装置と一体に形成された機能モジュールとを備え、
前記セキュリティ装置は、
前記記憶装置から入力されたプログラムに対して所定の演算を行うことにより、第２キー・コードを算出する第２キー・コード算出手段と、
前記第２キー・コード算出手段により得られた第２キー・コードを記憶する第２キー・コード記憶手段と、
前記第２キー・コード記憶手段から第２キー・コードを入力し、該第２キー・コードを初期値として所定の乱数を発生させることにより第２セキュリティ・コードを生成する第２セキュリティ・コード生成手段と、
前記キー装置に対して第１セキュリティ・コードの転送を要求する信号を生成する転送要求信号生成手段と、
前記転送要求信号生成手段により生成された信号を送信するセキュリティ装置側送信手段と、
前記キー装置から転送された第１セキュリティ・コードを受信するセキュリティ装置側受信手段と、
前記セキュリティ装置側受信手段が前記キー装置から第１セキュリティ・コードを受信するまで、前記第２セキュリティ・コード生成手段が前記第２キー・コード算出手段から第２キー・コードを入力することを遅延させる遅延手段と、
前記セキュリティ装置側受信手段により受信された第１セキュリティ・コードと前記第２セキュリティ・コード生成手段により生成された第２セキュリティ・コードとの一致を比較する比較手段と、
前記比較手段による比較結果が一致しない場合、所定の時間の後に前記機能モジュールに対して不一致を通知するエラー信号を生成するエラー信号生成手段と
を備え、
前記キー装置は、
前記セキュリティ装置側送信手段から送信された信号を受信するキー装置側受信手段と、
受信した信号が転送要求信号であることを検出する検出手段と、
予め第１キー・コードを記憶する第１キー・コード記憶手段と、
前記第１キー・コード記憶手段から第１キー・コードを入力し、該第１キー・コードを初期値として所定の乱数を発生させることにより第１セキュリティ・コードを生成する第１セキュリティ・コード生成手段と、
発生した第１セキュリティ・コードを前記セキュリティ装置へ送信するキー装置側送信手段とを備えたことを特徴とする。
【００１０】
以下、図面を参照して、本発明の実施の形態を詳細に説明する。
【００１１】
図２は、本発明のプログラム・プロテクション方法の概要をブロック図で示す。図２において、図１と同じ符号を付したものは同じ機能を有するものであるため、説明は省略する。
【００１２】
図２において、セキュリティ装置２００はセキュリティ・チェック（プログラム・プロテクション）をハードウェアで行なう装置であり、機能モジュール１２０と一体に形成されているものであって、たとえばカスタムＩＣ等で作成することができる。キーＩＣ２１０は、図１のキーＩＣ１４０と同様の機能を有するが、キーＩＣ１４０と異なりバス１５０に直接接続されずセキュリティ装置２００と接続されている。その他の回路２３０は、図１の記憶装置１１０等を含む回路であり、バス２４０に接続されている。
【００１３】
データ処理装置１００はバス２４０を介して直接にキーＩＣ２１０へアクセスできず、セキュリティ装置２００のみが直接にキーＩＣ２１０へアクセスできる。したがって、コピー・プロテクションを回避するような改造ソフトウエアの製造は極めて困難となる。キーＩＣ２１０は物理的な操作で内部を解析される可能性をなくすため、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）で製作することが望ましい。機能モジュール１２０とセキュリティ装置２００とは上述のように一体に形成されて１つのＩＣパッケージに入っているため、基板の改造では本発明のプログラム・プロテクション・システムを解除することはできない。
【００１４】
図３は、セキュリティ装置２００の機能をブロック図で示す。
【００１５】
図３において、バス２４０はデータ処理装置１００と接続したバスであり、図２にも示したように記憶装置１３０とも接続されている。このバス２４０を介して記憶装置１３０から例えばゲーム・プログラムがキー・コード算出回路３３０へ入力される。キー・コード算出回路３３０は、入力したプログラムを基に乱数回路３４０で乱数の初期値とするキー・コードを算出して、内部の記憶部（不図示）に算出したキー・コードを記憶しておく。キー・コードの算出方法は、記憶装置１３０に記憶されたゲーム・プログラムの全部または一部を用いる方法である。例えば、ゲーム・プログラムを３２ビットごとに区切ってｘ１とし、これに任意の関数ｆを作用させてｆ（ｘ１）を求める。次の３２ビットをｘ２としてｆ（ｘ２＋ｆ（ｘ１））を求める。これを記憶装置１３０のゲーム・プログラムの全部または一部に対して実行して、キー・コードを求める。乱数回路３４０は、このキー・コードをライン３３５を介して入力し、初期値として用いて乱数を発生させ、この乱数をセキュリティ・コードとして用いる。乱数の発生法は既知の方法を用いることができる。スタート・パターン挿入回路３５０は、キーＩＣ２１０に対してキーＩＣ２１０側のセキュリティ・コードを転送するように要求するパターンを生成する回路である。通常このパターンは生成されず、ライン３４５からの信号がそのままライン３５５に出力される。すなわち、スタート・パターン挿入回路３５０はシフト・レジスタとして構成することができる。スタート・パターン挿入回路３５０でスタート・パターンが挿入されることにより、ライン３５５にスタート・パターンが出力されて、キーＩＣ２１０へ転送される。このようにして、セキュリティ・コードの転送要求をキーＩＣ２１０へ示すことができる。このスタート・パターンとしては、例えば５ビットで構成される任意のパターンを用いることができる。この場合、スタート・パターン挿入回路は５ビットのシフト・レジスタとして構成することができる。スタート・パターンは、直接キーＩＣ２１０へ転送することもできるが、図３に示されるように暗号化回路３６０により暗号化を施してから、ライン４０３を介してキーＩＣ２１０へ転送することもできる。暗号化の方法は、信号にダミー・ビットを挿入する方法、信号をシャッフルする方法、その他の既知の方法を用いることができる。スタート・パターンを挿入する指示はスタート信号３８５が行なう。スタート信号３８５はスタート・パターン挿入回路３５０に入力しているが、これは一定の期間ごとに発生する信号であれば任意の信号を使用することができる。例えば機能モジュール１２０中のビデオ処理モジュール（不図示）が使用するビデオ同期信号とすることができる。その他ハード・ディスク（不図示）のシーク信号であってもよい。
【００１６】
キーＩＣ２１０からはライン４５０を介してキーＩＣ２１０側のセキュリティ・コードが転送されてくる。このキーＩＣ２１０側のセキュリティ・コードは、後述のようにキーＩＣ２００側で暗号化を施されていれば暗号解除回路３００により暗号が解除される。キーＩＣ２００側で暗号化を施されていなければ、暗号解除回路３００は用いないことも可能である。キーＩＣ２１０側からセキュリティ・コードが転送されるまでの間、乱数回路３４０はキー・コード算出回路３３０中の記憶部からキー・コードを取り出さないでおく。このためにスタート信号３８５は遅延回路３７０にも入力しており、一定期間遅延させた後キー・コード・ロード信号３７５を乱数回路３４０へ送る。この後キー・コード・ロード信号３７５が入力すると、乱数回路３４０はキー・コード算出回路３３０中の記憶部（不図示）からキー・コードを取り出して乱数を発生させ、この乱数をセキュリティ・コードとしてライン３４５へ出力する。
【００１７】
乱数比較回路３１０はキーＩＣ２１０からのセキュリティ・コードをライン３０５から入力し、乱数回路３４０からのセキュリティ・コードをライン３４５から入力して、両者を比較する。比較結果は例えば一致の場合は１を、不一致の場合は０をライン３１５を介してエラー・カウンタ３２０へ出力する。エラー・カウンタ３２０はある一定の数だけエラーをカウントすると、エラー発生通知信号３９０を機能モジュール１２０へ送る。スタート信号３８５が遅延回路３７０で待たされている間は、ライン３４５にもライン３０５にもセキュリティ・コードが現れない結果、乱数比較回路３１０は比較結果が不一致と判断して０をライン３１５へ出力し続ける。したがって一定の数だけカウントすることにより、この出力を無視することができる。さらに、一定の数エラーをカウントすることにより、データ処理装置１００がキーコード算出回路３３０へデータを書き込む時間をかせぐこともできる。
【００１８】
図４は、キーＩＣ２１０を説明するブロック図を示す。
【００１９】
図４において、セキュリティ装置２００からのライン４０３上の信号は、暗号解除回路４００に入力される。暗号化が暗号化回路３６０により施されていない場合は、ライン４０３上の信号はそのままライン４０５に出力される。スタート・パターン検出回路４１０は、スタート・パターン挿入回路３５０により挿入されたスタート・パターンを検出する。スタート・パターンが検出されると、キー・コード・ロード信号４１５が乱数回路４３０へ出力される。この信号４１５により乱数回路４３０は、予めキー・コードが記憶されたキー・コード記憶部４２０からキー・コードをライン４４５を介して取り出し、このキー・コードを初期値として乱数を発生させてセキュリティ・コードを得る。キー・コード記憶部４２０に予め記憶されているキー・コードから得られるセキュリティ・コードは、記憶装置１３０にあるゲーム・プログラムに対応する固有のセキュリティ・コードである。得られたセキュリティ・コードはライン４３６５を介して暗号化回路４４０へ出力される。暗号化を施さない場合は、ライン４３５上の信号はそのままライン４５０を通ってセキュリティ装置２００へ出力される。暗号化の方法は、信号にダミー・ビットを挿入する方法、信号をシャッフルする方法、その他の既知の方法を用いることができる。
【００２０】
上述のように、記憶装置１３０にあるゲーム・プログラムに対応する固有のセキュリティ・コードはキーＩＣ２１０により得られるものである。このキーＩＣ２１０はＣＰＬＤで作成されているため、この固有のセキュリティ・コードが物理的な操作により内部を解析して得られる可能性は極めて低いものである。記憶装置１３０が別のゲーム・プログラムが記憶された記憶装置と交換された場合、または不正な改造品と交換された場合、この交換された記憶装置から得られるセキュリティ・コードと、キーＩＣ２１０から得られるセキュリティ・コードとは等しくならない。その結果セキュリティ装置２００は機能モジュール１２０へエラー発生信号３９０を出力して、機能モジュール１２０の動作を停止等させることができる。例えば機能モジュール１２０中のビデオ信号処理モジュール（不図示）の動作を停止させて、画面上にエラー表示を出力し、ゲームの進行を停止させることができる。
【００２１】
セキュリティ装置２００の暗号化回路３６０が施す暗号と、キーＩＣ２１０の暗号化回路４４０が施す暗号とは、同一であってもよいし異なるものであってもよい。
【００２２】
また、暗号化回路３６０および暗号化回路４４０が実行する暗号処理は上述の例に限らず各種の周知の暗号化方法を使用することができる。たとえば、乱数器が与える値に代わり、プログラムのデータ容量を計数し、その計数結果の示す値をセキュリティコードの作成に使用することができる。また、コピー防止対象のデータはプログラムだけに限らず、図形、写真、その他各種のデータとすることができる。
【００２４】
（発明の効果）
以上説明したように、本発明のセキュリティ装置、キー装置、プログラム・プロテクション・システムおよび方法によれば、コピー・プロテクションの実行をハードウェアで行い、かつこのハードウェアと機能モジュールとを一体に形成することにより、コピー・プロテクションを回避するソフトウェアまたは基板の改造に対処することができるセキュリティ装置、キー装置、プログラム・プロテクション・システムおよび方法を提供することができる。
【図面の簡単な説明】
【００２５】
【図１】従来のコピー防止またはプログラム・プロテクション方法の概要を示すブロック図である。
【図２】本発明のプログラム・プロテクション方法の概要を示すブロック図である。
【図３】本発明のセキュリティ装置の機能を示すブロック図である。
【図４】本発明のキーＩＣを説明するブロック図である。
【図１】
0004559623.tif 000002
【図２】
0004559623.tif 000003
【図３】
0004559623.tif 000004
【図４】
0004559623.tif 000005