(57)【特許請求の範囲】
【請求項１】
少なくともプログラムの実行のためのプログラムデータが格納された第１のメモリと、
前記プログラムの進行状況を示す情報を格納する第２のメモリと、
バスを介して前記第１および第２のメモリの少なくとも１つと情報の授受を行い、前記プログラムの実行に必要な不可欠データを格納し、その出力を制御するセキュリティチップとを備え、
前記セキュリティチップは、
前記不可欠データの外部への出力の可否を決める読み出し許可信号を生成する読み出し許可信号生成手段を少なくとも１つ有し、前記セキュリティチップへの、前記外部からの前記不可欠データの読み出し要求があり、かつ、前記読み出し許可信号が有効な場合に前記不可欠データを出力する、半導体メモリ装置。
【請求項２】
前記読み出し許可信号生成手段は、
予め定めた所定時間の経過を計時し、前記所定時間の経過後に前記読み出し許可信号を有効なものとして出力する時間設定手段を含む、請求項１記載の半導体メモリ装置。
【請求項３】
前記セキュリティチップは、
前記第１および第２のメモリの何れかへの前記外部からのアクセスを監視してアクセスパターンを取得し、
前記読み出し許可信号生成手段は、
内部に設定された所定のアクセスシナリオと、取得した前記アクセスパターンとの比較を行って、両者が一致した場合に前記読み出し許可信号を有効なものとして出力する比較手段を含む、請求項１記載の半導体メモリ装置。
【請求項４】
前記セキュリティチップは、
前記第１および第２のメモリの何れかへの前記外部からのアクセスを監視してアクセスパターンを取得し、
前記読み出し許可信号生成手段として、第１および第２の読み出し許可信号生成手段を有し、それぞれが、前記読み出し許可信号として、第１および第２の読み出し許可信号を生成し、
前記第１の読み出し許可信号生成手段は、
内部に設定された所定のアクセスシナリオと、取得した前記アクセスパターンとの比較を行って、両者が一致した場合に前記第１の読み出し許可信号を有効なものとして出力する比較手段を含み、
前記第２の読み出し許可信号生成手段は、予め定めた所定時間の経過を計時し、前記所定時間の経過後に前記第２の読み出し許可信号を有効なものとして出力する時間設定手段を含み、
前記セキュリティチップへの、前記外部からの前記不可欠データの読み出し要求があり、かつ、前記第１および第２の読み出し許可信号が共に有効な場合に前記不可欠データを出力する、請求項１記載の半導体メモリ装置。
【請求項５】
前記第１のメモリに格納された前記プログラムデータは、少なくとも一部が暗号化されたデータであって、
前記不可欠データは、前記暗号化された前記プログラムデータを復号する鍵データである、請求項１記載の半導体メモリ装置。
【請求項６】
前記第１のメモリに格納された前記プログラムデータは、読み出し単位ごとに暗号化された暗号化データを含み、
前記鍵データは、前記読み出し単位ごとに設定される、請求項５記載の半導体メモリ装置。
【請求項７】
前記第１のメモリには、前記暗号化データを復号する復号プログラムが格納され、
前記鍵データは、前記復号プログラムで前記暗号化データを復号するために使用される、請求項６記載の半導体メモリ装置。
【請求項８】
前記セキュリティチップの監視対象は、前記第１のメモリであって、
前記アクセスは、前記第１のメモリからの前記プログラムデータの読み出しである、請求項３または請求項４記載の、半導体メモリ装置。
【請求項９】
前記セキュリティチップの監視対象は、前記第２のメモリであって、
前記アクセスは、前記第２のメモリへの予め定めたデータの書き込みである、請求項３または請求項４記載の、半導体メモリ装置。
【請求項１０】
前記不可欠データは、前記プログラムデータのうち、暗号化された暗号化データを含み、
前記第１のメモリは、前記暗号化されたデータを復号する鍵データを格納する、請求項１記載の半導体メモリ装置。
【請求項１１】
前記暗号化データは、読み出し単位ごとに暗号化され、
前記鍵データは、前記読み出し単位ごとに設定される、請求項１０記載の半導体メモリ装置。
【請求項１２】
前記不可欠データには、前記暗号化データを復号する復号プログラムを含み、
前記鍵データは、前記復号プログラムで前記暗号化データを復号するために使用される、請求項１１記載の半導体メモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体メモリ装置に関し、特に、携帯ゲーム機にゲームの供給媒体として使用される半導体メモリ装置に関する。
【背景技術】
【０００２】
携帯ゲーム機では、ゲームの供給媒体としてセキュリティ機能付きの半導体メモリが格納されたカートリッジが用いられているが、セキュリティが破られて違法なコピー製品が横行しており、関連会社の収益を圧迫している。
【０００３】
この行為への対策として、セキュリティシステムを改変することが最も効果的であるが、既にゲーム機本体が相当数普及してしまっている場合は改変は容易でない。
【０００４】
また、セキュリティ機能付き半導体メモリも、製造プロセスの微細化が進行している現在にあっては、機能の改変には巨額の投資と開発期間が掛かるという問題があり、違法なコピー製品は野放しにされている現状である。
【０００５】
例えば、特許文献１においては、使用時間がセキュリティ処理の発動時間より長くなるとセキュリティ処理を発動するように制御される半導体メモリカードの構成が開示されているが、これを携帯ゲーム機に適用すると、適正なユーザが使用している場合にも所定の時間が経過するとセキュリティ処理が発動してしまうので、当該ユーザにとって不快となってしまう。
【０００６】
また、特許文献１のセキュリティ処理では、所定の時間が経過するまでは半導体メモリへのアクセスが可能なので、その間にゲームソフトが読み出されてしまい、ゲームの供給媒体への適用は不向きである。
【０００７】
【特許文献１】特開２００５−１８２６２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、上記のような問題点を解決するためになされたものであり、現行のセキュリティシステムを改変せずに、低コストかつ短期間で違法なコピー製品を排除可能な半導体メモリ装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る請求項１記載の半導体メモリ装置は、少なくともプログラムの実行のためのプログラムデータが格納された第１のメモリと、前記プログラムの進行状況を示す情報を格納する第２のメモリと、バスを介して前記第１および第２のメモリの少なくとも１つと情報の授受を行い、前記プログラムの実行に必要な不可欠データを格納し、その出力を制御するセキュリティチップとを備え、前記セキュリティチップは、前記不可欠データの外部への出力の可否を決める読み出し許可信号を生成する読み出し許可信号生成手段を少なくとも１つ有し、前記セキュリティチップへの、前記外部からの前記不可欠データの読み出し要求があり、かつ、前記読み出し許可信号が有効な場合に前記不可欠データを出力する。
【００１０】
本発明に係る請求項２記載の半導体メモリ装置は、前記読み出し許可信号生成手段が、予め定めた所定時間の経過を計時し、前記所定時間の経過後に前記読み出し許可信号を有効なものとして出力する時間設定手段を含んでいる。
【００１１】
本発明に係る請求項３記載の半導体メモリ装置は、前記セキュリティチップが、前記第１および第２のメモリの何れかへの前記外部からのアクセスを監視してアクセスパターンを取得し、前記読み出し許可信号生成手段は、内部に設定された所定のアクセスシナリオと、取得した前記アクセスパターンとの比較を行って、両者が一致した場合に前記読み出し許可信号を有効なものとして出力する比較手段を含んでいる。
【００１２】
本発明に係る請求項４記載の半導体メモリ装置は、前記セキュリティチップが、前記第１および第２のメモリの何れかへの前記外部からのアクセスを監視してアクセスパターンを取得し、前記読み出し許可信号生成手段として、第１および第２の読み出し許可信号生成手段を有し、それぞれが、前記読み出し許可信号として、第１および第２の読み出し許可信号を生成し、前記第１の読み出し許可信号生成手段は、内部に設定された所定のアクセスシナリオと、取得した前記アクセスパターンとの比較を行って、両者が一致した場合に前記第１の読み出し許可信号を有効なものとして出力する比較手段を含み、前記第２の読み出し許可信号生成手段は、予め定めた所定時間の経過を計時し、前記所定時間の経過後に前記第２の読み出し許可信号を有効なものとして出力する時間設定手段を含み、前記セキュリティチップへの、前記外部からの前記不可欠データの読み出し要求があり、かつ、前記第１および第２の読み出し許可信号が共に有効な場合に前記不可欠データを出力する。
【００１３】
本発明に係る請求項５記載の半導体メモリ装置は、前記第１のメモリに格納された前記プログラムデータは、少なくとも一部が暗号化されたデータであって、前記不可欠データは、前記暗号化された前記プログラムデータを復号する鍵データである。
【００１４】
本発明に係る請求項６記載の半導体メモリ装置は、前記第１のメモリに格納された前記プログラムデータは、読み出し単位ごとに暗号化された暗号化データを含み、前記鍵データは、前記読み出し単位ごとに設定される。
【００１５】
本発明に係る請求項７記載の半導体メモリ装置は、前記第１のメモリには、前記暗号化データを復号する復号プログラムが格納され、前記鍵データは、前記復号プログラムで前記暗号化データを復号するために使用される。
【００１６】
本発明に係る請求項８記載の半導体メモリ装置は、前記セキュリティチップの監視対象が、前記第１のメモリであって、前記アクセスは、前記第１のメモリからの前記プログラムデータの読み出しである。
【００１７】
本発明に係る請求項９記載の半導体メモリ装置は、前記セキュリティチップの監視対象が、前記第２のメモリであって、前記アクセスは、前記第２のメモリへの予め定めたデータの書き込みである。
【００１８】
本発明に係る請求項１０記載の半導体メモリ装置は、前記不可欠データが、前記プログラムデータのうち、暗号化された暗号化データを含み、前記第１のメモリは、前記暗号化されたデータを復号する鍵データを格納する。
【００１９】
本発明に係る請求項１１記載の半導体メモリ装置は、前記暗号化データが、読み出し単位ごとに暗号化され、前記鍵データは、前記読み出し単位ごとに設定される。
【００２０】
本発明に係る請求項１２記載の半導体メモリ装置は、前記不可欠データには、前記暗号化データを復号する復号プログラムを含み、前記鍵データは、前記復号プログラムで前記暗号化データを復号するために使用される。
【発明の効果】
【００２１】
本発明に係る請求項１記載の半導体メモリ装置によれば、セキュリティチップは、不可欠データの外部への出力の可否を決める読み出し許可信号を生成する読み出し許可信号生成手段を少なくとも１つ有し、セキュリティチップへの、外部からの不可欠データの読み出し要求があり、かつ、読み出し許可信号が有効な場合に不可欠データを出力する、構成を採るので、違法なコピー製品の製造者は、セキュリティチップへの、外部からの不可欠データの読み出し要求の後にフリーズが発生することを突き止めても、読み出し許可信号はセキュリティチップ内部で使用されるので、その存在を突き止めるには困難が伴う。そして、読み出し許可信号が得られないと、不可欠データの読み出しができず、プログラムを実行させることができないので、プログラムの複製に要する時間を飛躍的に増大させ、プログラムデータの違法なコピー製品が出るまでの時間を遅らせることができる。なお、このような効果を奏する構成としては、半導体メモリ装置にセキュリティチップを搭載し、プログラムデータ作成の際に、セキュリティに関するソフトウエアを追加する程度で済むので、現行のセキュリティシステムを改変せずに、低コストかつ短期間で違法なコピー製品の排除が可能となる。
【００２２】
本発明に係る請求項２記載の半導体メモリ装置によれば、読み出し許可信号生成手段が、予め定めた所定時間の経過を計時し、所定時間の経過後に読み出し許可信号を有効なものとして出力する時間設定手段を含むので、違法なコピー製品の製造者は、セキュリティチップへの、外部からの不可欠データの読み出し要求の後にフリーズが発生することを突き止めても、不可欠データは所定時間が経過しないと読み出されないので、不可欠データが読み出されるのを待たなければならない。結果的に、違法なコピー製品の製造者は、プログラムの進行に応じてたびたびフリーズに見舞われ、最終的には、全ての不可欠データを取得するまでは、ゲームを終了することができず、プログラムデータの違法なコピー製品が出るまでの時間を遅らせることができる。
【００２３】
本発明に係る請求項３記載の半導体メモリ装置によれば、読み出し許可信号生成手段が、内部に設定された所定のアクセスシナリオと、取得したアクセスパターンとの比較を行って、両者が一致した場合に読み出し許可信号を有効なものとして出力する比較手段を含むので、違法なコピー製品の製造者は、セキュリティチップへの、外部からの不可欠データの読み出し要求の後にフリーズが発生することを突き止め、データ読み出しコマンドを模擬してセキュリティチップに入力しても、外部からのアクセスパターンと所定のアクセスシナリオとが一致しなければ読み出し許可信号が有効とならず、不可欠データを得ることができない。そして、第１および第２のメモリの何れかへの外部からのアクセスが通常動作の一部である場合、違法なコピー製品の製造者は、何がトリガとなって有効な読み出し許可信号が出るかを容易に知ることはできない。結果的に、違法なコピー製品の製造者は、プログラムの進行に応じてたびたびフリーズに見舞われ、最終的には、全ての不可欠データを取得するまでは、ゲームを終了することができず、プログラムデータの違法なコピー製品が出るまでの時間を遅らせることができる。
【００２４】
本発明に係る請求項４記載の半導体メモリ装置によれば、第１の読み出し許可信号生成手段が、内部に設定された所定のアクセスシナリオと、取得したアクセスパターンとの比較を行って、両者が一致した場合に読み出し許可信号を有効なものとして出力する比較手段を含み、第２の読み出し許可信号生成手段が、予め定めた所定時間の経過を計時し、所定時間の経過後に読み出し許可信号を有効なものとして出力する時間設定手段を含むので、違法なコピー製品の製造者は、セキュリティチップへの、外部からの不可欠データの読み出し要求の後にフリーズが発生することを突き止め、データ読み出しコマンドを模擬してセキュリティチップに入力しても、外部からのアクセスパターンと所定のアクセスシナリオとが一致しなければ第１の読み出し許可信号が有効とならず、不可欠データを得ることができない。そして、第１および第２のメモリの何れかへの外部からのアクセスが通常動作の一部である場合、違法なコピー製品の製造者は、何がトリガとなって有効な第１の読み出し許可信号が出るかを容易に知ることはできない。また、第２の読み出し許可信号生成手段において、設定された所定時間が経過しないと第２の読み出し許可信号が有効にならず、不可欠データは読み出されない。結果的に、違法なコピー製品の製造者は、プログラムの進行に応じてたびたびフリーズに見舞われ、最終的には、全ての不可欠データを取得するまでは、ゲームを終了することができず、プログラムデータの違法なコピー製品が出るまでの時間を遅らせることができる。
【００２５】
本発明に係る請求項５記載の半導体メモリ装置によれば、第１のメモリには少なくとも一部が暗号化されたプログラムデータが格納され、暗号化されたプログラムデータを復号する鍵データが不可欠データとしてセキュリティチップに格納されるので、鍵データが入手できなければプログラムを実行できず、違法なコピー製品の製造者による複製を阻害することができる。
【００２６】
本発明に係る請求項６記載の半導体メモリ装置によれば、プログラムデータが読み出し単位ごとに暗号化され、鍵データは読み出し単位ごとに設定されるので、プログラムデータを全て複製するには、プログラムの進行に従って複数の暗号を解除しなくてはならず、違法なコピー製品の製造をより効果的に阻害することができる。
【００２７】
本発明に係る請求項７記載の半導体メモリ装置によれば、第１のメモリには、暗号化データを復号する復号プログラムが格納され、鍵データは、復号プログラムで暗号化データを復号するために使用されるので、違法なコピー製品の製造者はプログラムデータだけでなく復号プログラムも読み出した上で鍵データを使用しなくてはならず、違法なコピー製品の製造をより効果的に阻害することができる。
【００２８】
本発明に係る請求項８記載の半導体メモリ装置によれば、セキュリティチップの監視対象が第１のメモリであって、第１のメモリからのプログラムデータの読み出しアクセスを監視するので、プログラムデータの違法なコピー製品の製造者は、何がトリガとなって有効な第１の読み出し許可信号が出るかを容易に知ることができず、違法なコピー製品の製造をより効果的に阻害することができる。
【００２９】
本発明に係る請求項９記載の半導体メモリ装置によれば、セキュリティチップの監視対象が第２のメモリであって、第２のメモリへの予め定めたデータの書き込みを監視するので、プログラムデータの違法なコピー製品の製造者は、何がトリガとなって有効な第１の読み出し許可信号が出るかを容易に知ることができず、違法なコピー製品の製造をより効果的に阻害することができる。
【００３０】
本発明に係る請求項１０記載の半導体メモリ装置によれば、記不可欠データとして、プログラムデータのうち暗号化された暗号化データがセキュリティチップに格納され、暗号化されたデータを復号する鍵データが第１のメモリに格納されるので、暗号化データが入手できなければプログラムを実行できず、違法なコピー製品の製造者による複製を阻害することができる。
【００３１】
本発明に係る請求項１１記載の半導体メモリ装置によれば、暗号化データは、読み出し単位ごとに暗号化され、鍵データは、読み出し単位ごとに設定されるので、プログラムデータを全て複製するには、プログラムの進行に従って複数の暗号を解除しなくてはならず、違法なコピー製品の製造をより効果的に阻害することができる。
【００３２】
本発明に係る請求項１２記載の半導体メモリ装置によれば、セキュリティチップには暗号化データを復号する復号プログラムが格納され、鍵データは、復号プログラムで暗号化データを復号するために使用されるので、違法なコピー製品の製造者はプログラムデータだけでなく復号プログラムも読み出した上で鍵データを使用しなくてはならず、違法なコピー製品の製造をより効果的に阻害することができる。
【発明を実施するための最良の形態】
【００３３】
＜はじめに＞
発明の説明に先立って、携帯ゲーム機で採用されている半導体メモリ装置のセキュリティ機能の一例について説明する。
【００３４】
携帯ゲーム機では、情報処理装置であるゲームコンソールと呼称されるゲーム機本体に、ゲームカートリッジと呼称されるゲームソフトが格納された部品を挿入する構成を採用している。
【００３５】
ゲームカートリッジには、ゲームソフト（プログラムデータ）の格納用ＲＯＭ（read only memory）と、プログラムの進行状況を示す情報（バックアップデータ）を格納する書き込み、読み出し動作が可能な半導体メモリ（例えばフラッシュメモリ）とを備えている。ゲーム格納用ＲＯＭにはセキュリティ機能が付与されており、また、ゲームコンソール自体にもセキュリティ機能が付与されており、両者は対となってセキュリティ機能を発揮している。従って、ゲーム格納用ＲＯＭからデータを取り出してもセキュリティを解除できなければ、ゲームソフトを実行することができないが、このセキュリティプログラムが解読され、セキュリティを解除した製品が違法なコピー製品として横行している。
【００３６】
違法なコピー製品の構成としては、ゲームカートリッジを模擬したカードに、解読したセキュリティプログラムを格納したmicroＳＤカード（登録商標）を取り付けることで、ゲームコンソール側のセキュリティを突破して、ゲームを実行させる構成などが採用されている。
【００３７】
このように、極めて厳重に施されたセキュリティであっても、一旦、破られてしまうと、ゲームプログラム自体は簡単に複製できるので、違法なコピー製品が横行することとなる。
【００３８】
そこで、発明者は、ゲーム格納用ＲＯＭに付与されたセキュリティ機能が破られた場合でも、ゲームプログラムの実行時にセキュリティ動作が実行されるように新たなセキュリティ機能を付与することで、ゲームプログラムの複製に要する時間を飛躍的に増大させ、違法なコピー製品が出るまでの時間を遅らせるという技術思想に到達した。
【００３９】
＜Ａ．実施の形態１＞
＜装置構成＞
図１は、本発明に係る半導体メモリ装置の実施の形態１の、ゲームカートリッジ１０の構成を示すブロック図である。
【００４０】
図１に示すように、ゲームカートリッジ１０は、ゲームソフト（プログラムデータ）が格納されたゲーム格納用ＲＯＭ１（第１のメモリ）と、バックアップデータを格納する書き込み、読み出し動作が可能なメモリとしてのフラッシュメモリ２（第２のメモリ）と、セキュリティチップ３とを備えている。ゲーム格納用ＲＯＭ１、フラッシュメモリ２およびセキュリティチップ３は、互いにバスを介して情報の授受を行う構成となっている。
【００４１】
ゲームカートリッジ１０は、ゲーム機本体であるゲームコンソール２０に接続され、ゲームコンソール２０は、ゲーム格納用ＲＯＭ１からゲームソフトを読み出して実行し、ゲームの実行中、必要に応じてフラッシュメモリ２への所定のデータの書き込みなどを行う。
【００４２】
ゲーム格納用ＲＯＭ１にはセキュリティ機能が付与されており、また、ゲームコンソール２０自体にもセキュリティ機能が付与されており、両者は対となってセキュリティ動作を実行している。
【００４３】
ここで、ゲームコンソール２０、ゲーム格納用ＲＯＭ１およびフラッシュメモリ２は従来品であり、ゲーム格納用ＲＯＭ１およびゲームコンソール２０に付与されたセキュリティ機能にも改変は加えられておらず、セキュリティチップ３のみが新規な構成である。
【００４４】
なお、ゲーム格納用ＲＯＭ１はハードウエア的には従来品と同じであるが、本願発明の実現のために図２に示すようなコード構成を採用している。
【００４５】
すなわち、ゲーム格納用ＲＯＭ１に格納されるプログラムデータは、読み出し単位ごとに一まとまりのデータとして複数に分割されており、これを読み出し単位１つ分のデータと呼称する。そして、読み出し順に配列され、一番最初に読み出されるプログラムをゲームの初期プログラムと呼称し、ゲームの初期プログラムに続くプログラムを継続ゲームデータと呼称する。
【００４６】
ここで、ゲームの初期プログラムは暗号化されていないが、それに続いて読み出される継続ゲームデータは暗号化されて暗号化されたコンテンツデータとなっており、当該継続ゲームデータには復号のための復号プログラムが付随している。このような、暗号化されたコンテンツデータと復号プログラムとが対となって複数存在しており、ゲームの初期プログラムに続いて、例えば、継続ゲームデータＡ１を復号するための復号プログラムＢ１および継続ゲームデータＡ１を読み出し、その後は暗号化されていないコンテンツデータの読み出しが続いた後、継続ゲームデータＡ２を復号するための復号プログラムＢ２および継続ゲームデータＡ２が読み出され、その後は再び暗号化されていないコンテンツデータの読み出しが続き、その後に継続ゲームデータＡ３を復号するための復号プログラムＢ３および継続ゲームデータＡ３が読み出される。
【００４７】
次に、セキュリティチップ３の構成について、図３に示すブロック図を用いて説明する。図３に示すように、セキュリティチップ３は、外部との通信を行うホストインターフェース（Ｉ／Ｆ）３１と、ホストインターフェース３１に接続されたコントローラ３２と、コントローラ３２からの指示に基づいて、内部メモリ３４から復号プログラムで使用される復号に不可欠な鍵データ（不可欠データ）を読み出してコントローラ３２に与えるメモリインターフェース３３と、複数の領域に論理的に分割されて、複数の鍵データが格納される内部メモリ３４と、コントローラ３２によって制御されるＲＴＣ（real time clock）３５（読み出し許可信号生成手段）とを備えている。
【００４８】
ＲＴＣとは計時専用のデバイスでり、内蔵電池により主電源が切られている間も動作を続けることができる。本発明では、コントローラ３２により読み出し間隔時間が設定される。読み出し間隔時間とは、内部メモリ３４からの鍵データの読み出しを許可する読み出し許可信号を出力するまでの時間を意味する。ＲＴＣ３５は、設定された読み出し間隔時間が経過することで、コントローラ３２に読み出し許可信号を出力する。
【００４９】
なお、読み出し間隔時間の設定値(パラメータ)は、ＲＴＣ３５内部で固定値を持っていても良いし、セキュリティチップ３の内部メモリ３４に格納されていても良い。また、システムの電源を投入後に、ゲームコンソール２０の初期化動作として、ＲＴＣ３５に読み出し間隔時間を設定する構成を採ることもできる。
【００５０】
内部メモリ３４は不揮発性メモリであり、ゲーム格納用ＲＯＭ１に格納されている暗号化されたコンテンツデータＡ１、Ａ２、Ａ３・・・にそれぞれ対応した鍵データＫｅｙＤ１、ＫｅｙＤ２、ＫｅｙＤ３・・・が格納されている。
【００５１】
＜セキュリティ動作＞
次に、図１〜図３を参照しつつ、図４に示すフローチャートを用いて、ゲームカートリッジ１０におけるセキュリティ動作について説明する。
【００５２】
ユーザがゲームコンソール２０にゲームカートリッジ１０を接続して、システムの電源を投入すると、コントローラ３２がＲＴＣ３５に読み出し間隔時間を設定する（ステップＳ１）。
【００５３】
読み出し間隔時間の設定後は、ゲームコンソール２０がゲーム格納用ＲＯＭ１からゲームの初期プログラムを読み出し、ゲームが実行される（ステップＳ２）。この時点で、ゲームの初期プログラムの読み出しには、ゲーム格納用ＲＯＭ１に付与されたセキュリティ機能と、ゲームコンソール２０に付与されたセキュリティ機能とによる対になったセキュリティが働くが、セキュリティチップ３によるセキュリティは働いていない。
【００５４】
ゲームの初期プログラムは暗号化されていないので、ゲームが進行し、ゲームの初期プログラムで実現されるシーンがクリアされるなど、予め定めた段階に達すると、ゲームコンソール２０は、ゲーム格納用ＲＯＭ１から継続ゲームデータＡ１および復号プログラムＢ１を読み出す（ステップＳ３）。
【００５５】
続いて、ゲームコンソール２０は、コンソールは暗号化された継続ゲームデータＡ１を復号するために、セキュリティチップ３に対して内部メモリ３４に格納されている鍵データＫｅｙＤ１の読み出しを要求する（ステップＳ４）。
【００５６】
なお、ゲームコンソール２０は、継続ゲームデータＡ１や鍵データＫｅｙＤ１を指定して読み出すのではなく、ゲームプログラムに予め設定された規則に従って、継続ゲームデータの読み出し、データ読み出しコマンドの発行などによる鍵データの要求を行うことで、ゲーム格納用ＲＯＭ１のコード構成に従って、復号プログラムＢ１、継続ゲームデータＡ１が読み出され、次に、内部メモリ３４のコード構成に従って、鍵データＫｅｙＤ１が読み出されることになる。
【００５７】
鍵データが要求されると、セキュリティチップ３のホストインターフェース３１は、当該読み出し要求をコントローラ３２へ通知する（ステップＳ５）。
【００５８】
読み出し要求の通知を受けたコントローラ３２は、メモリインターフェース３３を介して、内部メモリ３４から鍵データＫｅｙＤ１を取得する（ステップＳ６）。なお、コントローラ３２は鍵データＫｅｙＤ１を取得しても、すぐには出力することができない。
【００５９】
ＲＴＣ３５において設定された所定時間(読み出し間隔時間)が経過すると、ＲＴＣ３５からコントローラ３２に対して読み出し許可信号が出力される（ステップＳ７）。
【００６０】
コントローラ３２は、ＲＴＣ３５からの読み出し許可信号が有効である場合、鍵データＫｅｙＤ１をホストインターフェース３１へ出力するとともに、ＲＴＣ３５をデフォルト状態（０）に戻し（ステップＳ８）、再度駆動させて読み出し間隔時間の計測を始める。
【００６１】
なお、読み出し許可信号が無効である場合、例えば、ダミー鍵データをホストインターフェース３１へ出力し、その後のゲームコンソール２０からのアクセスに対しては、常にダミー鍵データを出力するように構成しても良い。この場合、電源の再投入により復帰させることができる。
【００６２】
ゲームコンソール２０では、取得した鍵データＫｅｙＤ１を復号プログラムＢ１で用いて継続ゲームデータＡ１を復号する（ステップＳ９）。なお、ゲームコンソール２０がダミー鍵データを取得し、それを用いて復号しようとした場合にはゲームコンソール２０のＣＰＵ（中央演算装置）等が暴走する構成としても良い。
【００６３】
次に、ゲームコンソール２０は、さらに読み出すべき継続ゲームデータがあるか否かを確認し（ステップＳ１０）、読み出すべき継続ゲームデータがある場合には、ステップＳ３以下の動作を繰り返し、継続ゲームデータが存在しない場合には、ゲーム終了まで、ゲームプログラムを実行する。
【００６４】
＜効果＞
以上説明したゲームカートリッジ１０を用いた場合、ゲーム格納用ＲＯＭ１に付与されたセキュリティ機能が破られた場合でも、ゲームプログラムの実行時にセキュリティチップ３によるセキュリティ動作が実行されるので、ゲームプログラムの複製に要する時間を飛躍的に増大させ、違法なコピー製品が出るまでの時間を遅らせることができる。
【００６５】
すなわち、違法なコピー製品の製造者は、ゲーム格納用ＲＯＭ１に付与されたセキュリティ機能を破ってゲーム格納用ＲＯＭ１からゲームプログラムを読み出し、ソフトエミュレータを起動してゲームを進行させる。
【００６６】
しかし、ゲームの初期プログラムは実行できても、継続ゲームデータＡを実行する段階に来ると途中でフリーズしてしまう。
【００６７】
違法なコピー製品の製造者は、このフリーズが、セキュリティチップ３に対して、データ読み出しコマンドを発行した後に発生することを突き止めるが、データ読み出しコマンドを発行してもすぐに鍵データＫｅｙＤが読み出されるわけではないので、鍵データＫｅｙＤが読み出されるのを待たなければならない。
【００６８】
ここで、鍵データＫｅｙＤは、ＲＴＣ３５において設定された読み出し間隔時間が経過するまで出力されないが、この時間は、ゲームの進行時間に合わせて決定され、難易度の高いゲームであれば、読み出し間隔時間を例えば１時間に設定すれば、１時間おきにしか有効な読み出し許可信号が出力されず、違法なコピー製品の製造者は、１つの鍵データＫｅｙＤを取得するのに１時間を要することになる。
【００６９】
また、図２に示したように、暗号化された継続ゲームデータは複数あるので、暗号を解読した継続ゲームデータをＦＰＧＡ（Field Programmable Gate Array）等を用いてエミュレートして実行しても、次の暗号化された継続ゲームデータを実行するには１時間待たなければならず、全ての暗号化された継続ゲームデータを実行するには、膨大な時間がかかることになる。
【００７０】
このように、違法なコピー製品の製造者は、ゲームの進行に応じてたびたびフリーズに見舞われ、最終的には、セキュリティチップ３に格納される全ての鍵データを取得するまでは、ゲームを終了することができない。
【００７１】
通常、ゲームの複製は、エミュレータの動作に必要な極めて短時間で行うことができるが、ゲームデータが暗号化されているので、複製したゲームを実行可能とするには、ゲームの進行に応じて鍵データを取得する必要があり、そのためには人間による試行錯誤が必要となり、違法なコピー製品の製造には、ゲームデータが暗号化されていない場合に比べて、飛躍的に長い時間が必要となる。
【００７２】
従って、違法なコピー製品の製造者は、新しいゲームの販売開始直後にコピー製品を売り出すことができず、正規の製造者は、販売開始直後の最も売り上げに寄与する期間をコピー製品に邪魔されることなく販売を続けることができ、コピー製品による売り上げ減退を抑制することができる。
【００７３】
なお、読み出し間隔時間の設定は、ゲームの予測される進行時間に合わせて決定し、上述したような１時間、あるいは数十分という単位でも良いが、１分、あるいは数秒という単位でも良い。エミュレータの動作速度に比べれば、このような時間でも十分に長く、複製を阻害することが可能となる。
【００７４】
このように、本発明に係る半導体メモリ装置によれば、現行のセキュリティシステムを改変せずに、低コストかつ短期間で違法なコピー製品の排除が可能となる。
【００７５】
＜Ｂ．実施の形態２＞
＜装置構成＞
図５は、本発明に係る半導体メモリ装置の実施の形態２の、ゲームカートリッジ１０に使用されるセキュリティチップ３Ａの構成を示すブロック図である。なお、図３に示したセキュリティチップ３と同一の構成については同一の符号を付し、重複する説明は省略する。
【００７６】
図５に示すように、セキュリティチップ３Ａでは、ＲＴＣ３５の代わりに、所定のアクセスシナリオ(ゲームシーン毎のクリア時における読み出しアクセスパターン(アドレスシーケンス)等)を設定可能なシーケンサ３６（読み出し許可信号生成手段）がコントローラ３２に接続されている。
【００７７】
アクセスシナリオの設定値は、シーケンサ３６内で固定値を持っていても良いし、内部メモリ３４内に格納しておき、必要に応じてコントローラ３２を介して読み出す構成としても良い。また、システムの電源を投入後に、ゲームコンソール２０の初期化動作として、シーケンサ３６にアクセスシナリオを設定する構成を採ることもできる。
【００７８】
＜セキュリティ動作＞
次に、図１、２および図５を参照しつつ、図６に示すフローチャートを用いて、ゲームカートリッジ１０におけるセキュリティ動作について説明する。
【００７９】
ユーザがゲームコンソール２０にゲームカートリッジ１０を接続して、システムの電源を投入すると、コントローラ３２がシーケンサ３６に所定のアクセスシナリオを設定する（ステップＳ２１）。
【００８０】
アクセスシナリオの設定後は、ゲームコンソール２０がゲーム格納用ＲＯＭ１からゲームの初期プログラムを読み出し、ゲームが実行される（ステップＳ２２）。この時点で、ゲームの初期プログラムの読み出しには、ゲーム格納用ＲＯＭ１に付与されたセキュリティ機能と、ゲームコンソール２０に付与されたセキュリティ機能とによる対になったセキュリティが働くが、セキュリティチップ３Ａによるセキュリティは働いていない。
【００８１】
ゲームの初期プログラムは暗号化されていないので、ゲームが進行し、初期プログラムで実現されるシーンがクリアされると、ゲームコンソール２０はゲーム格納用ＲＯＭ１にアクセスして、次のゲームシーンのデータ（継続ゲームデータＡ１）を読み出すために、所定のアクセスパターン(アドレスシーケンス)を出力する。コントローラ３２はホストインターフェース３１を介してゲームコンソール２０からの読み出しアドレスを監視して取得し、シーケンサ３６にその情報を出力する（ステップＳ２３）。
【００８２】
シーケンサ３６では、コントローラ３２から出力される一連のアドレスシーケンスが、内部に設定された所定のアクセスシナリオに一致するか否かを比較する（ステップＳ２４）。なお、シーケンサ３６の代わりに、データの比較を行う比較手段と、比較結果が一致した場合には読み出し許可信号を有効にして出力する信号生成手段とで読み出し許可信号生成手段を構成しても良い。
【００８３】
シーケンサ３６において、一連のアドレスシーケンスが所定のアクセスシナリオであることを検出すると、コントローラ３２に対して内部メモリ３４から鍵データＫｅｙＤ１を読み出すことを許可する読み出し許可信号を出力する（ステップＳ２５）。
【００８４】
一方、所定のアクセスパターンを出力したゲームコンソール２０は、ゲーム格納用ＲＯＭ１から継続ゲームデータＡ１および復号プログラムＢ１を読み出す（ステップＳ２６）。
【００８５】
続いて、ゲームコンソール２０は、暗号化された継続ゲームデータＡ１を復号するために、セキュリティチップ３Ａに対して内部メモリ３４に格納されている鍵データＫｅｙＤ１の読み出しを要求する（ステップＳ２７）。
【００８６】
なお、ゲームコンソール２０は、継続ゲームデータＡ１や鍵データＫｅｙＤ１を指定して読み出すのではなく、ゲームプログラムに予め設定された規則に従って、継続ゲームデータの読み出し、データ読み出しコマンドの発行などによる鍵データの要求を行うことで、ゲーム格納用ＲＯＭ１のコード構成に従って、復号プログラムＢ１、継続ゲームデータＡ１が読み出され、次に、内部メモリ３４のコード構成に従って、鍵データＫｅｙＤ１が読み出されることになる。
【００８７】
鍵データが要求されると、セキュリティチップ３Ａのホストインターフェース３１は、当該読み出し要求をコントローラ３２へ通知する（ステップＳ２８）。
【００８８】
読み出し要求の通知を受けたコントローラ３２は、メモリインターフェース３３を介して、内部メモリ３４から鍵データＫｅｙＤ１を取得する（ステップＳ２９）。
【００８９】
ここで、ステップＳ２５でシーケンサ３６から取得した読み出し許可信号が有効である場合、鍵データＫｅｙＤ１をホストインターフェース３１へ出力する（ステップＳ３０）。
【００９０】
なお、読み出し許可信号が無効である場合、例えば、ダミー鍵データをホストインターフェース３１へ出力し、その後のゲームコンソール２０からのアクセスに対しては、常にダミー鍵データを出力するように構成しても良い。この場合、電源の再投入により復帰させることができる。
【００９１】
ゲームコンソール２０では、取得した鍵データＫｅｙＤ１を復号プログラムＢ１で用いて継続ゲームデータＡ１を復号する（ステップＳ３１）。なお、ゲームコンソール２０がダミー鍵データを取得し、それを用いて復号しようとした場合にはゲームコンソール２０のＣＰＵ（中央演算装置）等が暴走する構成としても良い。
【００９２】
次に、ゲームコンソール２０は、さらに読み出すべき継続ゲームデータがあるか否かを確認し（ステップＳ３２）、読み出すべき継続ゲームデータがある場合には、ステップＳ２３以下の動作を繰り返し、継続ゲームデータが存在しない場合には、ゲーム終了まで、ゲームプログラムを実行する。
【００９３】
＜効果＞
以上説明したゲームカートリッジ１０を用いた場合、ゲーム格納用ＲＯＭ１に付与されたセキュリティ機能が破られた場合でも、ゲームプログラムの実行時にセキュリティチップ３Ａによるセキュリティ動作が実行されるので、ゲームプログラムの複製に要する時間を飛躍的に増大させ、違法なコピー製品が出るまでの時間を遅らせることができる。
【００９４】
すなわち、違法なコピー製品の製造者は、ゲーム格納用ＲＯＭ１に付与されたセキュリティ機能を破ってゲーム格納用ＲＯＭ１からゲームプログラムを読み出し、ソフトエミュレータを起動してゲームを進行させる。
【００９５】
しかし、ゲームの初期プログラムは実行できても、継続ゲームデータＡを実行する段階に来ると途中でフリーズしてしまう。
【００９６】
違法なコピー製品の製造者は、このフリーズが、ゲームコンソール２０がセキュリティチップ３Ａに対して、データ読み出しコマンドを発行した後に発生することを突き止めるが、データ読み出しコマンドを模擬してセキュリティチップ３Ａに入力しても、ゲームコンソール２０が出力する継続ゲームデータＡを取得するための所定のアクセスパターンと、シーケンサ３６の内部に設定された所定のアクセスシナリオとが一致しなければ、有効な読み出し許可信号がシーケンサ３６から得られない。そして、継続ゲームデータＡを取得するための所定のアクセスパターンを有効な読み出し許可信号を得るための、いわばトリガデータとして使用するが、これはゲームコンソール２０が出力する通常の信号であるので、違法なコピー製品の製造者は、何がトリガとなっているかを容易に知ることはできない。結果的に、違法なコピー製品の製造者はダミー鍵データを取得することになり、それをゲームコンソール２０に与えるとＣＰＵ等が暴走してしまうので、ゲームプログラムの複製を容易に作成することができない。
【００９７】
そして、図２に示したように、暗号化された継続ゲームデータは複数あり、継続ゲームデータごとに鍵データＫｅｙＤが必要であり、鍵データＫｅｙＤを得るには、有効な読み出し許可信号を取得しなければならないが、上述したように有効な読み出し許可信号を取得するのは容易ではないので、全ての暗号化された継続ゲームデータを実行するには膨大な時間を要することとなる。なお、ゲームコンソール２０が出力する継続ゲームデータを取得するための所定のアクセスパターンは、継続ゲームデータごとに設定しても良く、その場合は、有効な読み出し許可信号を取得するのに、さらに時間を要すこととなる。
【００９８】
通常、ゲームの複製は、エミュレータの動作に必要な極めて短時間で行うことができるが、ゲームデータが暗号化されているので、複製したゲームを実行可能とするには、ゲームの進行に応じて鍵データを取得する必要があり、そのためには人間による試行錯誤が必要となり、違法なコピー製品の製造には、ゲームデータが暗号化されていない場合に比べて、飛躍的に長い時間が必要となる。
【００９９】
従って、違法なコピー製品の製造者は、新しいゲームの販売開始直後にコピー製品を売り出すことができず、正規の製造者は、販売開始直後の最も売り上げに寄与する期間をコピー製品に邪魔されることなく販売を続けることができ、コピー製品による売り上げ減退を抑制することができる。
【０１００】
このように、本発明に係る半導体メモリ装置によれば、現行のセキュリティシステムを改変せずに、低コストかつ短期間で違法なコピー製品の排除が可能となる。
【０１０１】
＜Ｃ．実施の形態３＞
＜装置構成＞
図７は、本発明に係る半導体メモリ装置の実施の形態３の、ゲームカートリッジ１０に使用されるセキュリティチップ３Ｂの構成を示すブロック図である。なお、図３に示したセキュリティチップ３と同一の構成については同一の符号を付し、重複する説明は省略する。
【０１０２】
図７に示すように、セキュリティチップ３Ｂでは、ＲＴＣ３５（第２の読み出し許可信号生成手段）に加えて、所定のアクセスシナリオ(ゲームシーン毎のクリア時における読み出しアクセスパターン(アドレスシーケンス)等)を設定可能なシーケンサ３６（第１の読み出し許可信号生成手段）がコントローラ３２に接続されている。
【０１０３】
アクセスシナリオの設定値は、シーケンサ３６内で固定値を持っていても良いし、内部メモリ３４内に格納しておき、必要に応じてコントローラ３２を介して読み出す構成としても良い。また、システムの電源を投入後に、ゲームコンソール２０の初期化動作として、シーケンサ３６にアクセスシナリオを設定する構成を採ることもできる。
【０１０４】
また、コントローラ３２により、ＲＴＣ３５に、アクセスシナリオの間隔時間が設定される。アクセスシナリオの間隔時間とは、内部メモリ３４からの鍵データの読み出しを許可する第２の読み出し許可信号を出力するまでの時間を意味し、ゲームコンソール２０が、１つのゲームシーンを開始した後、次のゲームシーンのデータを読み出すために、ゲーム格納用ＲＯＭ１に対して所定のアクセスパターン(アドレスシーケンス)を出力するまでの時間に基づいて設定される。
【０１０５】
ＲＴＣ３５は、設定された所定のアクセスシナリオの間隔時間が経過することで、コントローラ３２に読み出し許可信号を出力する。
【０１０６】
なお、アクセスシナリオの間隔時間(パラメータ)は、ＲＴＣ３５内部で固定値を持っていても良いし、セキュリティチップ３Ｂの内部メモリ３４に格納されていても良い。また、システムの電源を投入後に、ゲームコンソール２０の初期化動作として、ＲＴＣ３５にアクセスシナリオの間隔時間を設定する構成を採ることもできる。
【０１０７】
＜セキュリティ動作＞
次に、図１、２および図７を参照しつつ、図８に示すフローチャートを用いて、ゲームカートリッジ１０におけるセキュリティ動作について説明する。
【０１０８】
ユーザがゲームコンソール２０にゲームカートリッジ１０を接続して、システムの電源を投入すると、コントローラ３２がシーケンサ３６に所定のアクセスシナリオを設定するとともに、アクセスシナリオの間隔時間を設定する（ステップＳ４１）。
【０１０９】
アクセスシナリオおよびアクセスシナリオの間隔時間の設定後は、ゲームコンソール２０がゲーム格納用ＲＯＭ１からゲームの初期プログラムを読み出し、ゲームが実行される（ステップＳ４２）。この時点で、ゲームの初期プログラムの読み出しには、ゲーム格納用ＲＯＭ１に付与されたセキュリティ機能と、ゲームコンソール２０に付与されたセキュリティ機能とによる対になったセキュリティが働くが、セキュリティチップ３Ｂによるセキュリティは働いていない。
【０１１０】
ゲームの初期プログラムは暗号化されていないので、ゲームが進行し、初期プログラムで実現されるシーンがクリアされると、ゲームコンソール２０はゲーム格納用ＲＯＭ１にアクセスして、次のゲームシーンのデータ（継続ゲームデータＡ１）を読み出すために、所定のアクセスパターン(アドレスシーケンス)を出力する。コントローラ３２はホストインターフェース３１を介してゲームコンソール２０からの読み出しアドレスを監視して取得し、シーケンサ３６にその情報を出力する（ステップＳ４３）。
【０１１１】
シーケンサ３６では、コントローラ３２から出力される一連のアドレスシーケンスが、内部に設定された所定のアクセスシナリオに一致するか否かを比較する（ステップＳ４４）。
【０１１２】
そして、シーケンサ３６において、一連のアドレスシーケンスが所定のアクセスシナリオであることを検出すると、コントローラ３２に対して内部メモリ３４から鍵データＫｅｙＤ１を読み出すことを許可する第１の読み出し許可信号を出力する（ステップＳ４５）。
【０１１３】
また、ＲＴＣ３５において設定された所定時間(アクセスシナリオの間隔時間)が経過すると、ＲＴＣ３５からコントローラ３２に対して第２の読み出し許可信号が出力される（ステップＳ４６）。
【０１１４】
一方、所定のアクセスパターンを出力したゲームコンソール２０は、ゲーム格納用ＲＯＭ１から継続ゲームデータＡ１および復号プログラムＢ１を読み出す（ステップＳ４７）。
【０１１５】
続いて、ゲームコンソール２０は、暗号化された継続ゲームデータＡ１を復号するために、セキュリティチップ３Ｂに対して内部メモリ３４に格納されている鍵データＫｅｙＤ１の読み出しを要求する（ステップＳ４８）。
【０１１６】
なお、ゲームコンソール２０は、継続ゲームデータＡ１や鍵データＫｅｙＤ１を指定して読み出すのではなく、ゲームプログラムに予め設定された規則に従って、継続ゲームデータの読み出し、データ読み出しコマンドの発行などによる鍵データの要求を行うことで、ゲーム格納用ＲＯＭ１のコード構成に従って、復号プログラムＢ１、継続ゲームデータＡ１が読み出され、次に、内部メモリ３４のコード構成に従って、鍵データＫｅｙＤ１が読み出されることになる。
【０１１７】
鍵データが要求されると、セキュリティチップ３Ｂのホストインターフェース３１は、当該読み出し要求をコントローラ３２へ通知する（ステップＳ４９）。
【０１１８】
読み出し要求の通知を受けたコントローラ３２は、メモリインターフェース３３を介して、内部メモリ３４から鍵データＫｅｙＤ１を取得する（ステップＳ５０）。
【０１１９】
ここで、コントローラ３２は、ステップＳ４５でシーケンサ３６から取得した第１の読み出し許可信号が有効であって、かつ、ステップＳ４６でＲＴＣ３５から取得した第２の読み出し許可信号が有効である場合には、鍵データＫｅｙＤ１をホストインターフェース３１へ出力する（ステップＳ５１）。なお、鍵データＫｅｙＤ１をホストインターフェース３１へ出力した後は、ＲＴＣ３５をデフォルト状態（０）に戻し、再度駆動させてアクセスシナリオの間隔時間の計測を始める。
【０１２０】
なお、第１および第２の読み出し許可信号のうち、何れか一方でも無効である場合は、例えば、ダミー鍵データをホストインターフェース３１へ出力し、その後のゲームコンソール２０からのアクセスに対しては、常にダミー鍵データを出力するように構成しても良い。この場合、電源の再投入により復帰させることができる。
【０１２１】
ゲームコンソール２０では、取得した鍵データＫｅｙＤ１を復号プログラムＢ１で用いて継続ゲームデータＡ１を復号する（ステップＳ５２）。なお、ゲームコンソール２０がダミー鍵データを取得し、それを用いて復号しようとした場合にはゲームコンソール２０のＣＰＵ（中央演算装置）等が暴走する構成としても良い。
【０１２２】
次に、ゲームコンソール２０は、さらに読み出すべき継続ゲームデータがあるか否かを確認し（ステップＳ５３）、読み出すべき継続ゲームデータがある場合には、ステップＳ４３以下の動作を繰り返し、継続ゲームデータが存在しない場合には、ゲーム終了までゲームプログラムを実行する。
【０１２３】
＜効果＞
以上説明したゲームカートリッジ１０を用いた場合、ゲーム格納用ＲＯＭ１に付与されたセキュリティ機能が破られた場合でも、ゲームプログラムの実行時にセキュリティチップ３Ｂによるセキュリティ動作が実行されるので、ゲームプログラムの複製に要する時間を飛躍的に増大させ、違法なコピー製品が出るまでの時間を遅らせることができる。
【０１２４】
すなわち、違法なコピー製品の製造者は、ゲーム格納用ＲＯＭ１に付与されたセキュリティ機能を破ってゲーム格納用ＲＯＭ１からゲームプログラムを読み出し、ソフトエミュレータを起動してゲームを進行させる。
【０１２５】
しかし、ゲームの初期プログラムは実行できても、継続ゲームデータＡを実行する段階に来ると途中でフリーズしてしまう。
【０１２６】
違法なコピー製品の製造者は、このフリーズが、ゲームコンソール２０がセキュリティチップ３Ｂに対して、データ読み出しコマンドを発行した後に発生することを突き止めるが、データ読み出しコマンドを模擬してセキュリティチップ３Ｂに入力しても、ゲームコンソール２０が出力する継続ゲームデータＡを取得するための所定のアクセスパターンと、シーケンサ３６の内部に設定された所定のアクセスシナリオとが一致しなければ、有効な第１の読み出し許可信号がシーケンサ３６から得られない。そして、継続ゲームデータＡを取得するための所定のアクセスパターンを、有効な第１の読み出し許可信号を得るための、いわばトリガデータとして使用するが、これはゲームコンソール２０が出力する通常の信号であるので、違法なコピー製品の製造者は、何がトリガとなっているかを容易に知ることはできない。結果的に、違法なコピー製品の製造者はダミー鍵データを取得することになり、それをゲームコンソール２０に与えるとＣＰＵ等が暴走してしまうので、ゲームプログラムの複製を容易に作成することができない。
【０１２７】
また、トリガデータが与えられて第１の読み出し許可信号がシーケンサ３６から出力されたとしても、ＲＴＣ３５において設定されたアクセスシナリオの間隔時間が経過するまでは第２の読み出し許可信号が得られないので、アクセスシナリオの間隔時間が経過するまでは鍵データＫｅｙＤを得ることができない。
【０１２８】
ここで、アクセスシナリオの間隔時間は、ゲームコンソール２０が、１つのゲームシーンを開始した後、次のゲームシーンのデータを読み出すために、ゲーム格納用ＲＯＭ１に対して所定のアクセスパターン(アドレスシーケンス)を出力するまでの時間に基づいて設定され、難易度の高いゲームであれば、アクセスシナリオの間隔時間を例えば１時間に設定すれば、１時間おきにしか有効な第２の読み出し許可信号が出力されず、違法なコピー製品の製造者は、１つの鍵データＫｅｙＤを取得するのに１時間を要することになる。なお、アクセスシナリオの間隔時間を長くし過ぎると、１つのゲームシーンが終わっても、次のゲームシーンに移ることができず、正規のユーザに不便をかけることになるので、アクセスシナリオの間隔時間は、継続ゲームデータＡを取得するためのトリガデータが出力されるまでの時間よりも確実に短くなるように設定する。
【０１２９】
このように、第１および第２の読み出し許可信号が共に得られないと、鍵データＫｅｙＤを得ることができない構成を採ることで、例え、第１および第２の読み出し許可信号の一方を取得できたとしても、残る一方を取得しなければゲームプログラムの複製を作成することができない。
【０１３０】
そして、図２に示したように、暗号化された継続ゲームデータは複数あり、継続ゲームデータごとに鍵データＫｅｙＤが必要であり、鍵データＫｅｙＤを得るには、有効な第１および第２の読み出し許可信号を取得しなければならないが、上述したように有効な第１および第２の読み出し許可信号を取得するのは容易ではないので、全ての暗号化された継続ゲームデータを実行するには膨大な時間を要することとなる。
【０１３１】
通常、ゲームの複製は、エミュレータの動作に必要な極めて短時間で行うことができるが、ゲームデータが暗号化されているので、複製したゲームを実行可能とするには、ゲームの進行に応じて鍵データを取得する必要があり、そのためには人間による試行錯誤が必要となり、違法なコピー製品の製造には、ゲームデータが暗号化されていない場合に比べて、飛躍的に長い時間が必要となる。
【０１３２】
従って、違法なコピー製品の製造者は、新しいゲームの販売開始直後にコピー製品を売り出すことができず、正規の製造者は、販売開始直後の最も売り上げに寄与する期間をコピー製品に邪魔されることなく販売を続けることができ、コピー製品による売り上げ減退を抑制することができる。
【０１３３】
このように、本発明に係る半導体メモリ装置によれば、現行のセキュリティシステムを改変せずに、低コストかつ短期間で違法なコピー製品の排除が可能となる。
【０１３４】
＜実装例１＞
実施の形態１においては、継続ゲームデータごとに鍵データＫｅｙＤが必要であるものとして説明したが、例えばゲームシーン１と２とで同じ継続ゲームデータを使用する場合、鍵データＫｅｙＤも同じものとなる。この場合、ゲームシーン１の実行のために一度読み出された鍵データＫｅｙＤを再度読み出す場合には、ＲＴＣ３５に設定された読み出し間隔時間が経過せずとも、当該鍵データＫｅｙＤが読み出せるように構成しても良い。
【０１３５】
＜実装例２＞
実施の形態２においては、継続ゲームデータごとに鍵データＫｅｙＤが必要であるものとして説明したが、例えばゲームシーン１と２とで同じ継続ゲームデータを使用する場合、鍵データＫｅｙＤも同じものとなる。この場合、ゲームシーン１の実行のために一度読み出された鍵データＫｅｙＤを再度読み出す場合には、シーケンサ３６に設定されたアクセスシナリオとゲームコンソール２０が出力する一連のアドレスシーケンスとの一致、不一致を判断せずに当該鍵データＫｅｙＤが読み出せるように構成しても良い。
【０１３６】
＜変形例１＞
実施の形態２および３においては、ゲームコンソール２０がゲーム格納用ＲＯＭ１にアクセスして、次のゲームシーンのデータを読み出すためのアドレスシーケンスと、シーケンサ３６に設定されたアクセスシナリオとを比較する構成を示したが、ゲーム格納用ＲＯＭ１へのアクセスの代わりに、フラッシュメモリ２（図１）に所定のデータを書き込むためのアクセスを用いても良い。
【０１３７】
すなわち、ゲームコンソール２０は新たなゲームシーンに入る前には、必ずデータのセーブを行う。この動作では、セーブデータを書き込むためにフラッシュメモリ２にアクセスするので、このときのアドレスシーケンスと、シーケンサ３６に設定されたアクセスシナリオとを比較する構成としても良い。
【０１３８】
ゲームシーンが変わるごとにデータをセーブすることはゲームコンソール２０の通常の動作であり、それを有効な読み出し許可信号を得るためのトリガデータとして使用するように構成することはソフトウエア的には容易であり、プログラミングに費やす手間を削減することができる。
【０１３９】
また、このトリガデータもゲームコンソール２０が出力する通常の信号であるので、違法なコピー製品の製造者にとっては、何がトリガとなっているかを容易に知ることはできず、結果的に、違法なコピー製品の製造者はダミー鍵データを取得することになり、それをゲームコンソール２０に与えるとＣＰＵ等が暴走してしまうので、ゲームプログラムの複製を容易に作成することができない。
【０１４０】
＜変形例２＞
実施の形態１〜３においては、内部メモリ３４に、ゲーム格納用ＲＯＭ１に格納されている暗号化されたコンテンツデータＡ１、Ａ２、Ａ３・・・にそれぞれ対応した鍵データＫｅｙＤ１、ＫｅｙＤ２、ＫｅｙＤ３・・・を格納した構成を示したが、鍵データの代わりに、暗号化されたコンテンツデータや復号プログラムを格納する構成としても良い。この場合、鍵データは暗号化されたコンテンツデータや復号プログラムの代わりにゲーム格納用ＲＯＭ１に格納すれば良い。
【０１４１】
暗号化されたコンテンツデータは、ゲームプログラム全体の一部であるので内部メモリ３４に格納可能であり、暗号化されたコンテンツデータが内部メモリ３４に格納され、鍵データがゲーム格納用ＲＯＭ１に格納されていても、セキュリティ機能としては同じである。むしろ、コンテンツデータの一部がゲーム格納用ＲＯＭ１に存在しないことで、違法なコピー製品の製造者による複製を阻害する要因を増やすことができる。
【図面の簡単な説明】
【０１４２】
【図１】本発明に係る半導体メモリ装置の構成を示すブロック図である。
【図２】ゲーム格納用ＲＯＭ内のコード構成を示す図である。
【図３】本発明に係る実施の形態１のセキュリティチップの構成を示すブロック図である。
【図４】本発明に係る実施の形態１のセキュリティ動作を説明するフローチャートである。
【図５】本発明に係る実施の形態２のセキュリティチップの構成を示すブロック図である。
【図６】本発明に係る実施の形態２のセキュリティ動作を説明するフローチャートである。
【図７】本発明に係る実施の形態３のセキュリティチップの構成を示すブロック図である。
【図８】本発明に係る実施の形態３のセキュリティ動作を説明するフローチャートである。
【図１】
0005076130.tif 000002
【図２】
0005076130.tif 000003
【図３】
0005076130.tif 000004
【図４】
0005076130.tif 000005
【図５】
0005076130.tif 000006
【図６】
0005076130.tif 000007
【図７】
0005076130.tif 000008
【図８】
0005076130.tif 000009