説明

半導体メモリ装置

【課題】現行のセキュリティシステムを改変せずに、低コストかつ短期間で違法なコピー製品を排除可能な半導体メモリ装置を提供する。
【解決手段】セキュリティチップ3は、外部との通信を行うホストインターフェース31と、ホストインターフェース31に接続されたコントローラ32と、コントローラ32からの指示に基づいて、内部メモリ34から復号プログラムで使用される復号に不可欠な鍵データを読み出してコントローラ32に与えるメモリインターフェース33と、複数の領域に論理的に分割されて、複数の鍵データが格納される内部メモリ34と、コントローラ32によって制御されるRTC35とを備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は半導体メモリ装置に関し、特に、携帯ゲーム機にゲームの供給媒体として使用される半導体メモリ装置に関する。
【背景技術】
【0002】
携帯ゲーム機では、ゲームの供給媒体としてセキュリティ機能付きの半導体メモリが格納されたカートリッジが用いられているが、セキュリティが破られて違法なコピー製品が横行しており、関連会社の収益を圧迫している。
【0003】
この行為への対策として、セキュリティシステムを改変することが最も効果的であるが、既にゲーム機本体が相当数普及してしまっている場合は改変は容易でない。
【0004】
また、セキュリティ機能付き半導体メモリも、製造プロセスの微細化が進行している現在にあっては、機能の改変には巨額の投資と開発期間が掛かるという問題があり、違法なコピー製品は野放しにされている現状である。
【0005】
例えば、特許文献1においては、使用時間がセキュリティ処理の発動時間より長くなるとセキュリティ処理を発動するように制御される半導体メモリカードの構成が開示されているが、これを携帯ゲーム機に適用すると、適正なユーザが使用している場合にも所定の時間が経過するとセキュリティ処理が発動してしまうので、当該ユーザにとって不快となってしまう。
【0006】
また、特許文献1のセキュリティ処理では、所定の時間が経過するまでは半導体メモリへのアクセスが可能なので、その間にゲームソフトが読み出されてしまい、ゲームの供給媒体への適用は不向きである。
【0007】
【特許文献1】特開2005−182627号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
本発明は、上記のような問題点を解決するためになされたものであり、現行のセキュリティシステムを改変せずに、低コストかつ短期間で違法なコピー製品を排除可能な半導体メモリ装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明に係る請求項1記載の半導体メモリ装置は、少なくともプログラムの実行のためのプログラムデータが格納された第1のメモリと、前記プログラムの進行状況を示す情報を格納する第2のメモリと、バスを介して前記第1および第2のメモリの少なくとも1つと情報の授受を行い、前記プログラムの実行に必要な不可欠データを格納し、その出力を制御するセキュリティチップとを備え、前記セキュリティチップは、前記不可欠データの前記外部への出力の可否を決める読み出し許可信号を生成する読み出し許可信号生成手段を少なくとも1つ有し、前記セキュリティチップへの、前記外部からの前記不可欠データの読み出し要求があり、かつ、前記読み出し許可信号が有効な場合に前記不可欠データを出力する。
【0010】
本発明に係る請求項2記載の半導体メモリ装置は、前記読み出し許可信号生成手段が、予め定めた所定時間の経過を計時し、前記所定時間の経過後に前記読み出し許可信号を有効なものとして出力する時間設定手段を含んでいる。
【0011】
本発明に係る請求項3記載の半導体メモリ装置は、前記セキュリティチップが、前記第1および第2のメモリの何れかへの前記外部からのアクセスを監視してアクセスパターンを取得し、前記読み出し許可信号生成手段は、内部に設定された所定のアクセスシナリオと、取得した前記アクセスパターンとの比較を行って、両者が一致した場合に前記読み出し許可信号を有効なものとして出力する比較手段を含んでいる。
【0012】
本発明に係る請求項4記載の半導体メモリ装置は、前記セキュリティチップが、前記第1および第2のメモリの何れかへの前記外部からのアクセスを監視してアクセスパターンを取得し、前記読み出し許可信号生成手段として、第1および第2の読み出し許可信号生成手段を有し、それぞれが、前記読み出し許可信号として、第1および第2の読み出し許可信号を生成し、前記第1の読み出し許可信号生成手段は、内部に設定された所定のアクセスシナリオと、取得した前記アクセスパターンとの比較を行って、両者が一致した場合に前記第1の読み出し許可信号を有効なものとして出力する比較手段を含み、前記第2の読み出し許可信号生成手段は、予め定めた所定時間の経過を計時し、前記所定時間の経過後に前記第2の読み出し許可信号を有効なものとして出力する時間設定手段を含み、前記セキュリティチップへの、前記外部からの前記不可欠データの読み出し要求があり、かつ、前記第1および第2の読み出し許可信号が共に有効な場合に前記不可欠データを出力する。
【0013】
本発明に係る請求項5記載の半導体メモリ装置は、前記第1のメモリに格納された前記プログラムデータは、少なくとも一部が暗号化されたデータであって、前記不可欠データは、前記暗号化された前記プログラムデータを復号する鍵データである。
【0014】
本発明に係る請求項6記載の半導体メモリ装置は、前記第1のメモリに格納された前記プログラムデータは、読み出し単位ごとに暗号化された暗号化データを含み、前記鍵データは、前記読み出し単位ごとに設定される。
【0015】
本発明に係る請求項7記載の半導体メモリ装置は、前記第1のメモリには、前記暗号化データを復号する復号プログラムが格納され、前記鍵データは、前記復号プログラムで前記暗号化データを復号するために使用される。
【0016】
本発明に係る請求項8記載の半導体メモリ装置は、前記セキュリティチップの監視対象が、前記第1のメモリであって、前記アクセスは、前記第1のメモリからの前記プログラムデータの読み出しである。
【0017】
本発明に係る請求項9記載の半導体メモリ装置は、前記セキュリティチップの監視対象が、前記第2のメモリであって、前記アクセスは、前記第2のメモリへの予め定めたデータの書き込みである。
【0018】
本発明に係る請求項10記載の半導体メモリ装置は、前記不可欠データが、前記プログラムデータのうち、暗号化された暗号化データを含み、前記第1のメモリは、前記暗号化されたデータを復号する鍵データを格納する。
【0019】
本発明に係る請求項11記載の半導体メモリ装置は、前記暗号化データが、読み出し単位ごとに暗号化され、前記鍵データは、前記読み出し単位ごとに設定される。
【0020】
本発明に係る請求項12記載の半導体メモリ装置は、前記不可欠データには、前記暗号化データを復号する復号プログラムを含み、前記鍵データは、前記復号プログラムで前記暗号化データを復号するために使用される。
【発明の効果】
【0021】
本発明に係る請求項1記載の半導体メモリ装置によれば、セキュリティチップは、不可欠データの外部への出力の可否を決める読み出し許可信号を生成する読み出し許可信号生成手段を少なくとも1つ有し、セキュリティチップへの、外部からの不可欠データの読み出し要求があり、かつ、読み出し許可信号が有効な場合に不可欠データを出力する、構成を採るので、違法なコピー製品の製造者は、セキュリティチップへの、外部からの不可欠データの読み出し要求の後にフリーズが発生することを突き止めても、読み出し許可信号はセキュリティチップ内部で使用されるので、その存在を突き止めるには困難が伴う。そして、読み出し許可信号が得られないと、不可欠データの読み出しができず、プログラムを実行させることができないので、プログラムの複製に要する時間を飛躍的に増大させ、プログラムデータの違法なコピー製品が出るまでの時間を遅らせることができる。なお、このような効果を奏する構成としては、半導体メモリ装置にセキュリティチップを搭載し、プログラムデータ作成の際に、セキュリティに関するソフトウエアを追加する程度で済むので、現行のセキュリティシステムを改変せずに、低コストかつ短期間で違法なコピー製品の排除が可能となる。
【0022】
本発明に係る請求項2記載の半導体メモリ装置によれば、読み出し許可信号生成手段が、予め定めた所定時間の経過を計時し、所定時間の経過後に読み出し許可信号を有効なものとして出力する時間設定手段を含むので、違法なコピー製品の製造者は、セキュリティチップへの、外部からの不可欠データの読み出し要求の後にフリーズが発生することを突き止めても、不可欠データは所定時間が経過しないと読み出されないので、不可欠データが読み出されるのを待たなければならない。結果的に、違法なコピー製品の製造者は、プログラムの進行に応じてたびたびフリーズに見舞われ、最終的には、全ての不可欠データを取得するまでは、ゲームを終了することができず、プログラムデータの違法なコピー製品が出るまでの時間を遅らせることができる。
【0023】
本発明に係る請求項3記載の半導体メモリ装置によれば、読み出し許可信号生成手段が、内部に設定された所定のアクセスシナリオと、取得したアクセスパターンとの比較を行って、両者が一致した場合に読み出し許可信号を有効なものとして出力する比較手段を含むので、違法なコピー製品の製造者は、セキュリティチップへの、外部からの不可欠データの読み出し要求の後にフリーズが発生することを突き止め、データ読み出しコマンドを模擬してセキュリティチップに入力しても、外部からのアクセスパターンと所定のアクセスシナリオとが一致しなければ読み出し許可信号が有効とならず、不可欠データを得ることができない。そして、第1および第2のメモリの何れかへの外部からのアクセスが通常動作の一部である場合、違法なコピー製品の製造者は、何がトリガとなって有効な読み出し許可信号が出るかを容易に知ることはできない。結果的に、違法なコピー製品の製造者は、プログラムの進行に応じてたびたびフリーズに見舞われ、最終的には、全ての不可欠データを取得するまでは、ゲームを終了することができず、プログラムデータの違法なコピー製品が出るまでの時間を遅らせることができる。
【0024】
本発明に係る請求項4記載の半導体メモリ装置によれば、第1の読み出し許可信号生成手段が、内部に設定された所定のアクセスシナリオと、取得したアクセスパターンとの比較を行って、両者が一致した場合に読み出し許可信号を有効なものとして出力する比較手段を含み、第2の読み出し許可信号生成手段が、予め定めた所定時間の経過を計時し、所定時間の経過後に読み出し許可信号を有効なものとして出力する時間設定手段を含むので、違法なコピー製品の製造者は、セキュリティチップへの、外部からの不可欠データの読み出し要求の後にフリーズが発生することを突き止め、データ読み出しコマンドを模擬してセキュリティチップに入力しても、外部からのアクセスパターンと所定のアクセスシナリオとが一致しなければ第1の読み出し許可信号が有効とならず、不可欠データを得ることができない。そして、第1および第2のメモリの何れかへの外部からのアクセスが通常動作の一部である場合、違法なコピー製品の製造者は、何がトリガとなって有効な第1の読み出し許可信号が出るかを容易に知ることはできない。また、第2の読み出し許可信号生成手段において、設定された所定時間が経過しないと第2の読み出し許可信号が有効にならず、不可欠データは読み出されない。結果的に、違法なコピー製品の製造者は、プログラムの進行に応じてたびたびフリーズに見舞われ、最終的には、全ての不可欠データを取得するまでは、ゲームを終了することができず、プログラムデータの違法なコピー製品が出るまでの時間を遅らせることができる。
【0025】
本発明に係る請求項5記載の半導体メモリ装置によれば、第1のメモリには少なくとも一部が暗号化されたプログラムデータが格納され、暗号化されたプログラムデータを復号する鍵データが不可欠データとしてセキュリティチップに格納されるので、鍵データが入手できなければプログラムを実行できず、違法なコピー製品の製造者による複製を阻害することができる。
【0026】
本発明に係る請求項6記載の半導体メモリ装置によれば、プログラムデータが読み出し単位ごとに暗号化され、鍵データは読み出し単位ごとに設定されるので、プログラムデータを全て複製するには、プログラムの進行に従って複数の暗号を解除しなくてはならず、違法なコピー製品の製造をより効果的に阻害することができる。
【0027】
本発明に係る請求項7記載の半導体メモリ装置によれば、第1のメモリには、暗号化データを復号する復号プログラムが格納され、鍵データは、復号プログラムで暗号化データを復号するために使用されるので、違法なコピー製品の製造者はプログラムデータだけでなく復号プログラムも読み出した上で鍵データを使用しなくてはならず、違法なコピー製品の製造をより効果的に阻害することができる。
【0028】
本発明に係る請求項8記載の半導体メモリ装置によれば、セキュリティチップの監視対象が第1のメモリであって、第1のメモリからのプログラムデータの読み出しアクセスを監視するので、プログラムデータの違法なコピー製品の製造者は、何がトリガとなって有効な第1の読み出し許可信号が出るかを容易に知ることができず、違法なコピー製品の製造をより効果的に阻害することができる。
【0029】
本発明に係る請求項9記載の半導体メモリ装置によれば、セキュリティチップの監視対象が第2のメモリであって、第2のメモリへの予め定めたデータの書き込みを監視するので、プログラムデータの違法なコピー製品の製造者は、何がトリガとなって有効な第1の読み出し許可信号が出るかを容易に知ることができず、違法なコピー製品の製造をより効果的に阻害することができる。
【0030】
本発明に係る請求項10記載の半導体メモリ装置によれば、記不可欠データとして、プログラムデータのうち暗号化された暗号化データがセキュリティチップに格納され、暗号化されたデータを復号する鍵データが第1のメモリに格納されるので、暗号化データが入手できなければプログラムを実行できず、違法なコピー製品の製造者による複製を阻害することができる。
【0031】
本発明に係る請求項11記載の半導体メモリ装置によれば、暗号化データは、読み出し単位ごとに暗号化され、鍵データは、読み出し単位ごとに設定されるので、プログラムデータを全て複製するには、プログラムの進行に従って複数の暗号を解除しなくてはならず、違法なコピー製品の製造をより効果的に阻害することができる。
【0032】
本発明に係る請求項12記載の半導体メモリ装置によれば、セキュリティチップには暗号化データを復号する復号プログラムが格納され、鍵データは、復号プログラムで暗号化データを復号するために使用されるので、違法なコピー製品の製造者はプログラムデータだけでなく復号プログラムも読み出した上で鍵データを使用しなくてはならず、違法なコピー製品の製造をより効果的に阻害することができる。
【発明を実施するための最良の形態】
【0033】
<はじめに>
発明の説明に先立って、携帯ゲーム機で採用されている半導体メモリ装置のセキュリティ機能の一例について説明する。
【0034】
携帯ゲーム機では、情報処理装置であるゲームコンソールと呼称されるゲーム機本体に、ゲームカートリッジと呼称されるゲームソフトが格納された部品を挿入する構成を採用している。
【0035】
ゲームカートリッジには、ゲームソフト(プログラムデータ)の格納用ROM(read only memory)と、プログラムの進行状況を示す情報(バックアップデータ)を格納する書き込み、読み出し動作が可能な半導体メモリ(例えばフラッシュメモリ)とを備えている。ゲーム格納用ROMにはセキュリティ機能が付与されており、また、ゲームコンソール自体にもセキュリティ機能が付与されており、両者は対となってセキュリティ機能を発揮している。従って、ゲーム格納用ROMからデータを取り出してもセキュリティを解除できなければ、ゲームソフトを実行することができないが、このセキュリティプログラムが解読され、セキュリティを解除した製品が違法なコピー製品として横行している。
【0036】
違法なコピー製品の構成としては、ゲームカートリッジを模擬したカードに、解読したセキュリティプログラムを格納したmicroSDカード(登録商標)を取り付けることで、ゲームコンソール側のセキュリティを突破して、ゲームを実行させる構成などが採用されている。
【0037】
このように、極めて厳重に施されたセキュリティであっても、一旦、破られてしまうと、ゲームプログラム自体は簡単に複製できるので、違法なコピー製品が横行することとなる。
【0038】
そこで、発明者は、ゲーム格納用ROMに付与されたセキュリティ機能が破られた場合でも、ゲームプログラムの実行時にセキュリティ動作が実行されるように新たなセキュリティ機能を付与することで、ゲームプログラムの複製に要する時間を飛躍的に増大させ、違法なコピー製品が出るまでの時間を遅らせるという技術思想に到達した。
【0039】
<A.実施の形態1>
<装置構成>
図1は、本発明に係る半導体メモリ装置の実施の形態1の、ゲームカートリッジ10の構成を示すブロック図である。
【0040】
図1に示すように、ゲームカートリッジ10は、ゲームソフト(プログラムデータ)が格納されたゲーム格納用ROM1(第1のメモリ)と、バックアップデータを格納する書き込み、読み出し動作が可能なメモリとしてのフラッシュメモリ2(第2のメモリ)と、セキュリティチップ3とを備えている。ゲーム格納用ROM1、フラッシュメモリ2およびセキュリティチップ3は、互いにバスを介して情報の授受を行う構成となっている。
【0041】
ゲームカートリッジ10は、ゲーム機本体であるゲームコンソール20に接続され、ゲームコンソール20は、ゲーム格納用ROM1からゲームソフトを読み出して実行し、ゲームの実行中、必要に応じてフラッシュメモリ2への所定のデータの書き込みなどを行う。
【0042】
ゲーム格納用ROM1にはセキュリティ機能が付与されており、また、ゲームコンソール20自体にもセキュリティ機能が付与されており、両者は対となってセキュリティ動作を実行している。
【0043】
ここで、ゲームコンソール20、ゲーム格納用ROM1およびフラッシュメモリ2は従来品であり、ゲーム格納用ROM1およびゲームコンソール20に付与されたセキュリティ機能にも改変は加えられておらず、セキュリティチップ3のみが新規な構成である。
【0044】
なお、ゲーム格納用ROM1はハードウエア的には従来品と同じであるが、本願発明の実現のために図2に示すようなコード構成を採用している。
【0045】
すなわち、ゲーム格納用ROM1に格納されるプログラムデータは、読み出し単位ごとに一まとまりのデータとして複数に分割されており、これを読み出し単位1つ分のデータと呼称する。そして、読み出し順に配列され、一番最初に読み出されるプログラムをゲームの初期プログラムと呼称し、ゲームの初期プログラムに続くプログラムを継続ゲームデータと呼称する。
【0046】
ここで、ゲームの初期プログラムは暗号化されていないが、それに続いて読み出される継続ゲームデータは暗号化されて暗号化されたコンテンツデータとなっており、当該継続ゲームデータには復号のための復号プログラムが付随している。このような、暗号化されたコンテンツデータと復号プログラムとが対となって複数存在しており、ゲームの初期プログラムに続いて、例えば、継続ゲームデータA1を復号するための復号プログラムB1および継続ゲームデータA1を読み出し、その後は暗号化されていないコンテンツデータの読み出しが続いた後、継続ゲームデータA2を復号するための復号プログラムB2および継続ゲームデータA2が読み出され、その後は再び暗号化されていないコンテンツデータの読み出しが続き、その後に継続ゲームデータA3を復号するための復号プログラムB3および継続ゲームデータA3が読み出される。
【0047】
次に、セキュリティチップ3の構成について、図3に示すブロック図を用いて説明する。図3に示すように、セキュリティチップ3は、外部との通信を行うホストインターフェース(I/F)31と、ホストインターフェース31に接続されたコントローラ32と、コントローラ32からの指示に基づいて、内部メモリ34から復号プログラムで使用される復号に不可欠な鍵データ(不可欠データ)を読み出してコントローラ32に与えるメモリインターフェース33と、複数の領域に論理的に分割されて、複数の鍵データが格納される内部メモリ34と、コントローラ32によって制御されるRTC(real time clock)35(読み出し許可信号生成手段)とを備えている。
【0048】
RTCとは計時専用のデバイスでり、内蔵電池により主電源が切られている間も動作を続けることができる。本発明では、コントローラ32により読み出し間隔時間が設定される。読み出し間隔時間とは、内部メモリ34からの鍵データの読み出しを許可する読み出し許可信号を出力するまでの時間を意味する。RTC35は、設定された読み出し間隔時間が経過することで、コントローラ32に読み出し許可信号を出力する。
【0049】
なお、読み出し間隔時間の設定値(パラメータ)は、RTC35内部で固定値を持っていても良いし、セキュリティチップ3の内部メモリ34に格納されていても良い。また、システムの電源を投入後に、ゲームコンソール20の初期化動作として、RTC35に読み出し間隔時間を設定する構成を採ることもできる。
【0050】
内部メモリ34は不揮発性メモリであり、ゲーム格納用ROM1に格納されている暗号化されたコンテンツデータA1、A2、A3・・・にそれぞれ対応した鍵データKeyD1、KeyD2、KeyD3・・・が格納されている。
【0051】
<セキュリティ動作>
次に、図1〜図3を参照しつつ、図4に示すフローチャートを用いて、ゲームカートリッジ10におけるセキュリティ動作について説明する。
【0052】
ユーザがゲームコンソール20にゲームカートリッジ10を接続して、システムの電源を投入すると、コントローラ32がRTC35に読み出し間隔時間を設定する(ステップS1)。
【0053】
読み出し間隔時間の設定後は、ゲームコンソール20がゲーム格納用ROM1からゲームの初期プログラムを読み出し、ゲームが実行される(ステップS2)。この時点で、ゲームの初期プログラムの読み出しには、ゲーム格納用ROM1に付与されたセキュリティ機能と、ゲームコンソール20に付与されたセキュリティ機能とによる対になったセキュリティが働くが、セキュリティチップ3によるセキュリティは働いていない。
【0054】
ゲームの初期プログラムは暗号化されていないので、ゲームが進行し、ゲームの初期プログラムで実現されるシーンがクリアされるなど、予め定めた段階に達すると、ゲームコンソール20は、ゲーム格納用ROM1から継続ゲームデータA1および復号プログラムB1を読み出す(ステップS3)。
【0055】
続いて、ゲームコンソール20は、コンソールは暗号化された継続ゲームデータA1を復号するために、セキュリティチップ3に対して内部メモリ34に格納されている鍵データKeyD1の読み出しを要求する(ステップS4)。
【0056】
なお、ゲームコンソール20は、継続ゲームデータA1や鍵データKeyD1を指定して読み出すのではなく、ゲームプログラムに予め設定された規則に従って、継続ゲームデータの読み出し、データ読み出しコマンドの発行などによる鍵データの要求を行うことで、ゲーム格納用ROM1のコード構成に従って、復号プログラムB1、継続ゲームデータA1が読み出され、次に、内部メモリ34のコード構成に従って、鍵データKeyD1が読み出されることになる。
【0057】
鍵データが要求されると、セキュリティチップ3のホストインターフェース31は、当該読み出し要求をコントローラ32へ通知する(ステップS5)。
【0058】
読み出し要求の通知を受けたコントローラ32は、メモリインターフェース33を介して、内部メモリ34から鍵データKeyD1を取得する(ステップS6)。なお、コントローラ32は鍵データKeyD1を取得しても、すぐには出力することができない。
【0059】
RTC35において設定された所定時間(読み出し間隔時間)が経過すると、RTC35からコントローラ32に対して読み出し許可信号が出力される(ステップS7)。
【0060】
コントローラ32は、RTC35からの読み出し許可信号が有効である場合、鍵データKeyD1をホストインターフェース31へ出力するとともに、RTC35をデフォルト状態(0)に戻し(ステップS8)、再度駆動させて読み出し間隔時間の計測を始める。
【0061】
なお、読み出し許可信号が無効である場合、例えば、ダミー鍵データをホストインターフェース31へ出力し、その後のゲームコンソール20からのアクセスに対しては、常にダミー鍵データを出力するように構成しても良い。この場合、電源の再投入により復帰させることができる。
【0062】
ゲームコンソール20では、取得した鍵データKeyD1を復号プログラムB1で用いて継続ゲームデータA1を復号する(ステップS9)。なお、ゲームコンソール20がダミー鍵データを取得し、それを用いて復号しようとした場合にはゲームコンソール20のCPU(中央演算装置)等が暴走する構成としても良い。
【0063】
次に、ゲームコンソール20は、さらに読み出すべき継続ゲームデータがあるか否かを確認し(ステップS10)、読み出すべき継続ゲームデータがある場合には、ステップS3以下の動作を繰り返し、継続ゲームデータが存在しない場合には、ゲーム終了まで、ゲームプログラムを実行する。
【0064】
<効果>
以上説明したゲームカートリッジ10を用いた場合、ゲーム格納用ROM1に付与されたセキュリティ機能が破られた場合でも、ゲームプログラムの実行時にセキュリティチップ3によるセキュリティ動作が実行されるので、ゲームプログラムの複製に要する時間を飛躍的に増大させ、違法なコピー製品が出るまでの時間を遅らせることができる。
【0065】
すなわち、違法なコピー製品の製造者は、ゲーム格納用ROM1に付与されたセキュリティ機能を破ってゲーム格納用ROM1からゲームプログラムを読み出し、ソフトエミュレータを起動してゲームを進行させる。
【0066】
しかし、ゲームの初期プログラムは実行できても、継続ゲームデータAを実行する段階に来ると途中でフリーズしてしまう。
【0067】
違法なコピー製品の製造者は、このフリーズが、セキュリティチップ3に対して、データ読み出しコマンドを発行した後に発生することを突き止めるが、データ読み出しコマンドを発行してもすぐに鍵データKeyDが読み出されるわけではないので、鍵データKeyDが読み出されるのを待たなければならない。
【0068】
ここで、鍵データKeyDは、RTC35において設定された読み出し間隔時間が経過するまで出力されないが、この時間は、ゲームの進行時間に合わせて決定され、難易度の高いゲームであれば、読み出し間隔時間を例えば1時間に設定すれば、1時間おきにしか有効な読み出し許可信号が出力されず、違法なコピー製品の製造者は、1つの鍵データKeyDを取得するのに1時間を要することになる。
【0069】
また、図2に示したように、暗号化された継続ゲームデータは複数あるので、暗号を解読した継続ゲームデータをFPGA(Field Programmable Gate Array)等を用いてエミュレートして実行しても、次の暗号化された継続ゲームデータを実行するには1時間待たなければならず、全ての暗号化された継続ゲームデータを実行するには、膨大な時間がかかることになる。
【0070】
このように、違法なコピー製品の製造者は、ゲームの進行に応じてたびたびフリーズに見舞われ、最終的には、セキュリティチップ3に格納される全ての鍵データを取得するまでは、ゲームを終了することができない。
【0071】
通常、ゲームの複製は、エミュレータの動作に必要な極めて短時間で行うことができるが、ゲームデータが暗号化されているので、複製したゲームを実行可能とするには、ゲームの進行に応じて鍵データを取得する必要があり、そのためには人間による試行錯誤が必要となり、違法なコピー製品の製造には、ゲームデータが暗号化されていない場合に比べて、飛躍的に長い時間が必要となる。
【0072】
従って、違法なコピー製品の製造者は、新しいゲームの販売開始直後にコピー製品を売り出すことができず、正規の製造者は、販売開始直後の最も売り上げに寄与する期間をコピー製品に邪魔されることなく販売を続けることができ、コピー製品による売り上げ減退を抑制することができる。
【0073】
なお、読み出し間隔時間の設定は、ゲームの予測される進行時間に合わせて決定し、上述したような1時間、あるいは数十分という単位でも良いが、1分、あるいは数秒という単位でも良い。エミュレータの動作速度に比べれば、このような時間でも十分に長く、複製を阻害することが可能となる。
【0074】
このように、本発明に係る半導体メモリ装置によれば、現行のセキュリティシステムを改変せずに、低コストかつ短期間で違法なコピー製品の排除が可能となる。
【0075】
<B.実施の形態2>
<装置構成>
図5は、本発明に係る半導体メモリ装置の実施の形態2の、ゲームカートリッジ10に使用されるセキュリティチップ3Aの構成を示すブロック図である。なお、図3に示したセキュリティチップ3と同一の構成については同一の符号を付し、重複する説明は省略する。
【0076】
図5に示すように、セキュリティチップ3Aでは、RTC35の代わりに、所定のアクセスシナリオ(ゲームシーン毎のクリア時における読み出しアクセスパターン(アドレスシーケンス)等)を設定可能なシーケンサ36(読み出し許可信号生成手段)がコントローラ32に接続されている。
【0077】
アクセスシナリオの設定値は、シーケンサ36内で固定値を持っていても良いし、内部メモリ34内に格納しておき、必要に応じてコントローラ32を介して読み出す構成としても良い。また、システムの電源を投入後に、ゲームコンソール20の初期化動作として、シーケンサ36にアクセスシナリオを設定する構成を採ることもできる。
【0078】
<セキュリティ動作>
次に、図1、2および図5を参照しつつ、図6に示すフローチャートを用いて、ゲームカートリッジ10におけるセキュリティ動作について説明する。
【0079】
ユーザがゲームコンソール20にゲームカートリッジ10を接続して、システムの電源を投入すると、コントローラ32がシーケンサ36に所定のアクセスシナリオを設定する(ステップS21)。
【0080】
アクセスシナリオの設定後は、ゲームコンソール20がゲーム格納用ROM1からゲームの初期プログラムを読み出し、ゲームが実行される(ステップS22)。この時点で、ゲームの初期プログラムの読み出しには、ゲーム格納用ROM1に付与されたセキュリティ機能と、ゲームコンソール20に付与されたセキュリティ機能とによる対になったセキュリティが働くが、セキュリティチップ3Aによるセキュリティは働いていない。
【0081】
ゲームの初期プログラムは暗号化されていないので、ゲームが進行し、初期プログラムで実現されるシーンがクリアされると、ゲームコンソール20はゲーム格納用ROM1にアクセスして、次のゲームシーンのデータ(継続ゲームデータA1)を読み出すために、所定のアクセスパターン(アドレスシーケンス)を出力する。コントローラ32はホストインターフェース31を介してゲームコンソール20からの読み出しアドレスを監視して取得し、シーケンサ36にその情報を出力する(ステップS23)。
【0082】
シーケンサ36では、コントローラ32から出力される一連のアドレスシーケンスが、内部に設定された所定のアクセスシナリオに一致するか否かを比較する(ステップS24)。なお、シーケンサ36の代わりに、データの比較を行う比較手段と、比較結果が一致した場合には読み出し許可信号を有効にして出力する信号生成手段とで読み出し許可信号生成手段を構成しても良い。
【0083】
シーケンサ36において、一連のアドレスシーケンスが所定のアクセスシナリオであることを検出すると、コントローラ32に対して内部メモリ34から鍵データKeyD1を読み出すことを許可する読み出し許可信号を出力する(ステップS25)。
【0084】
一方、所定のアクセスパターンを出力したゲームコンソール20は、ゲーム格納用ROM1から継続ゲームデータA1および復号プログラムB1を読み出す(ステップS26)。
【0085】
続いて、ゲームコンソール20は、暗号化された継続ゲームデータA1を復号するために、セキュリティチップ3Aに対して内部メモリ34に格納されている鍵データKeyD1の読み出しを要求する(ステップS27)。
【0086】
なお、ゲームコンソール20は、継続ゲームデータA1や鍵データKeyD1を指定して読み出すのではなく、ゲームプログラムに予め設定された規則に従って、継続ゲームデータの読み出し、データ読み出しコマンドの発行などによる鍵データの要求を行うことで、ゲーム格納用ROM1のコード構成に従って、復号プログラムB1、継続ゲームデータA1が読み出され、次に、内部メモリ34のコード構成に従って、鍵データKeyD1が読み出されることになる。
【0087】
鍵データが要求されると、セキュリティチップ3Aのホストインターフェース31は、当該読み出し要求をコントローラ32へ通知する(ステップS28)。
【0088】
読み出し要求の通知を受けたコントローラ32は、メモリインターフェース33を介して、内部メモリ34から鍵データKeyD1を取得する(ステップS29)。
【0089】
ここで、ステップS25でシーケンサ36から取得した読み出し許可信号が有効である場合、鍵データKeyD1をホストインターフェース31へ出力する(ステップS30)。
【0090】
なお、読み出し許可信号が無効である場合、例えば、ダミー鍵データをホストインターフェース31へ出力し、その後のゲームコンソール20からのアクセスに対しては、常にダミー鍵データを出力するように構成しても良い。この場合、電源の再投入により復帰させることができる。
【0091】
ゲームコンソール20では、取得した鍵データKeyD1を復号プログラムB1で用いて継続ゲームデータA1を復号する(ステップS31)。なお、ゲームコンソール20がダミー鍵データを取得し、それを用いて復号しようとした場合にはゲームコンソール20のCPU(中央演算装置)等が暴走する構成としても良い。
【0092】
次に、ゲームコンソール20は、さらに読み出すべき継続ゲームデータがあるか否かを確認し(ステップS32)、読み出すべき継続ゲームデータがある場合には、ステップS23以下の動作を繰り返し、継続ゲームデータが存在しない場合には、ゲーム終了まで、ゲームプログラムを実行する。
【0093】
<効果>
以上説明したゲームカートリッジ10を用いた場合、ゲーム格納用ROM1に付与されたセキュリティ機能が破られた場合でも、ゲームプログラムの実行時にセキュリティチップ3Aによるセキュリティ動作が実行されるので、ゲームプログラムの複製に要する時間を飛躍的に増大させ、違法なコピー製品が出るまでの時間を遅らせることができる。
【0094】
すなわち、違法なコピー製品の製造者は、ゲーム格納用ROM1に付与されたセキュリティ機能を破ってゲーム格納用ROM1からゲームプログラムを読み出し、ソフトエミュレータを起動してゲームを進行させる。
【0095】
しかし、ゲームの初期プログラムは実行できても、継続ゲームデータAを実行する段階に来ると途中でフリーズしてしまう。
【0096】
違法なコピー製品の製造者は、このフリーズが、ゲームコンソール20がセキュリティチップ3Aに対して、データ読み出しコマンドを発行した後に発生することを突き止めるが、データ読み出しコマンドを模擬してセキュリティチップ3Aに入力しても、ゲームコンソール20が出力する継続ゲームデータAを取得するための所定のアクセスパターンと、シーケンサ36の内部に設定された所定のアクセスシナリオとが一致しなければ、有効な読み出し許可信号がシーケンサ36から得られない。そして、継続ゲームデータAを取得するための所定のアクセスパターンを有効な読み出し許可信号を得るための、いわばトリガデータとして使用するが、これはゲームコンソール20が出力する通常の信号であるので、違法なコピー製品の製造者は、何がトリガとなっているかを容易に知ることはできない。結果的に、違法なコピー製品の製造者はダミー鍵データを取得することになり、それをゲームコンソール20に与えるとCPU等が暴走してしまうので、ゲームプログラムの複製を容易に作成することができない。
【0097】
そして、図2に示したように、暗号化された継続ゲームデータは複数あり、継続ゲームデータごとに鍵データKeyDが必要であり、鍵データKeyDを得るには、有効な読み出し許可信号を取得しなければならないが、上述したように有効な読み出し許可信号を取得するのは容易ではないので、全ての暗号化された継続ゲームデータを実行するには膨大な時間を要することとなる。なお、ゲームコンソール20が出力する継続ゲームデータを取得するための所定のアクセスパターンは、継続ゲームデータごとに設定しても良く、その場合は、有効な読み出し許可信号を取得するのに、さらに時間を要すこととなる。
【0098】
通常、ゲームの複製は、エミュレータの動作に必要な極めて短時間で行うことができるが、ゲームデータが暗号化されているので、複製したゲームを実行可能とするには、ゲームの進行に応じて鍵データを取得する必要があり、そのためには人間による試行錯誤が必要となり、違法なコピー製品の製造には、ゲームデータが暗号化されていない場合に比べて、飛躍的に長い時間が必要となる。
【0099】
従って、違法なコピー製品の製造者は、新しいゲームの販売開始直後にコピー製品を売り出すことができず、正規の製造者は、販売開始直後の最も売り上げに寄与する期間をコピー製品に邪魔されることなく販売を続けることができ、コピー製品による売り上げ減退を抑制することができる。
【0100】
このように、本発明に係る半導体メモリ装置によれば、現行のセキュリティシステムを改変せずに、低コストかつ短期間で違法なコピー製品の排除が可能となる。
【0101】
<C.実施の形態3>
<装置構成>
図7は、本発明に係る半導体メモリ装置の実施の形態3の、ゲームカートリッジ10に使用されるセキュリティチップ3Bの構成を示すブロック図である。なお、図3に示したセキュリティチップ3と同一の構成については同一の符号を付し、重複する説明は省略する。
【0102】
図7に示すように、セキュリティチップ3Bでは、RTC35(第2の読み出し許可信号生成手段)に加えて、所定のアクセスシナリオ(ゲームシーン毎のクリア時における読み出しアクセスパターン(アドレスシーケンス)等)を設定可能なシーケンサ36(第1の読み出し許可信号生成手段)がコントローラ32に接続されている。
【0103】
アクセスシナリオの設定値は、シーケンサ36内で固定値を持っていても良いし、内部メモリ34内に格納しておき、必要に応じてコントローラ32を介して読み出す構成としても良い。また、システムの電源を投入後に、ゲームコンソール20の初期化動作として、シーケンサ36にアクセスシナリオを設定する構成を採ることもできる。
【0104】
また、コントローラ32により、RTC35に、アクセスシナリオの間隔時間が設定される。アクセスシナリオの間隔時間とは、内部メモリ34からの鍵データの読み出しを許可する第2の読み出し許可信号を出力するまでの時間を意味し、ゲームコンソール20が、1つのゲームシーンを開始した後、次のゲームシーンのデータを読み出すために、ゲーム格納用ROM1に対して所定のアクセスパターン(アドレスシーケンス)を出力するまでの時間に基づいて設定される。
【0105】
RTC35は、設定された所定のアクセスシナリオの間隔時間が経過することで、コントローラ32に読み出し許可信号を出力する。
【0106】
なお、アクセスシナリオの間隔時間(パラメータ)は、RTC35内部で固定値を持っていても良いし、セキュリティチップ3Bの内部メモリ34に格納されていても良い。また、システムの電源を投入後に、ゲームコンソール20の初期化動作として、RTC35にアクセスシナリオの間隔時間を設定する構成を採ることもできる。
【0107】
<セキュリティ動作>
次に、図1、2および図7を参照しつつ、図8に示すフローチャートを用いて、ゲームカートリッジ10におけるセキュリティ動作について説明する。
【0108】
ユーザがゲームコンソール20にゲームカートリッジ10を接続して、システムの電源を投入すると、コントローラ32がシーケンサ36に所定のアクセスシナリオを設定するとともに、アクセスシナリオの間隔時間を設定する(ステップS41)。
【0109】
アクセスシナリオおよびアクセスシナリオの間隔時間の設定後は、ゲームコンソール20がゲーム格納用ROM1からゲームの初期プログラムを読み出し、ゲームが実行される(ステップS42)。この時点で、ゲームの初期プログラムの読み出しには、ゲーム格納用ROM1に付与されたセキュリティ機能と、ゲームコンソール20に付与されたセキュリティ機能とによる対になったセキュリティが働くが、セキュリティチップ3Bによるセキュリティは働いていない。
【0110】
ゲームの初期プログラムは暗号化されていないので、ゲームが進行し、初期プログラムで実現されるシーンがクリアされると、ゲームコンソール20はゲーム格納用ROM1にアクセスして、次のゲームシーンのデータ(継続ゲームデータA1)を読み出すために、所定のアクセスパターン(アドレスシーケンス)を出力する。コントローラ32はホストインターフェース31を介してゲームコンソール20からの読み出しアドレスを監視して取得し、シーケンサ36にその情報を出力する(ステップS43)。
【0111】
シーケンサ36では、コントローラ32から出力される一連のアドレスシーケンスが、内部に設定された所定のアクセスシナリオに一致するか否かを比較する(ステップS44)。
【0112】
そして、シーケンサ36において、一連のアドレスシーケンスが所定のアクセスシナリオであることを検出すると、コントローラ32に対して内部メモリ34から鍵データKeyD1を読み出すことを許可する第1の読み出し許可信号を出力する(ステップS45)。
【0113】
また、RTC35において設定された所定時間(アクセスシナリオの間隔時間)が経過すると、RTC35からコントローラ32に対して第2の読み出し許可信号が出力される(ステップS46)。
【0114】
一方、所定のアクセスパターンを出力したゲームコンソール20は、ゲーム格納用ROM1から継続ゲームデータA1および復号プログラムB1を読み出す(ステップS47)。
【0115】
続いて、ゲームコンソール20は、暗号化された継続ゲームデータA1を復号するために、セキュリティチップ3Bに対して内部メモリ34に格納されている鍵データKeyD1の読み出しを要求する(ステップS48)。
【0116】
なお、ゲームコンソール20は、継続ゲームデータA1や鍵データKeyD1を指定して読み出すのではなく、ゲームプログラムに予め設定された規則に従って、継続ゲームデータの読み出し、データ読み出しコマンドの発行などによる鍵データの要求を行うことで、ゲーム格納用ROM1のコード構成に従って、復号プログラムB1、継続ゲームデータA1が読み出され、次に、内部メモリ34のコード構成に従って、鍵データKeyD1が読み出されることになる。
【0117】
鍵データが要求されると、セキュリティチップ3Bのホストインターフェース31は、当該読み出し要求をコントローラ32へ通知する(ステップS49)。
【0118】
読み出し要求の通知を受けたコントローラ32は、メモリインターフェース33を介して、内部メモリ34から鍵データKeyD1を取得する(ステップS50)。
【0119】
ここで、コントローラ32は、ステップS45でシーケンサ36から取得した第1の読み出し許可信号が有効であって、かつ、ステップS46でRTC35から取得した第2の読み出し許可信号が有効である場合には、鍵データKeyD1をホストインターフェース31へ出力する(ステップS51)。なお、鍵データKeyD1をホストインターフェース31へ出力した後は、RTC35をデフォルト状態(0)に戻し、再度駆動させてアクセスシナリオの間隔時間の計測を始める。
【0120】
なお、第1および第2の読み出し許可信号のうち、何れか一方でも無効である場合は、例えば、ダミー鍵データをホストインターフェース31へ出力し、その後のゲームコンソール20からのアクセスに対しては、常にダミー鍵データを出力するように構成しても良い。この場合、電源の再投入により復帰させることができる。
【0121】
ゲームコンソール20では、取得した鍵データKeyD1を復号プログラムB1で用いて継続ゲームデータA1を復号する(ステップS52)。なお、ゲームコンソール20がダミー鍵データを取得し、それを用いて復号しようとした場合にはゲームコンソール20のCPU(中央演算装置)等が暴走する構成としても良い。
【0122】
次に、ゲームコンソール20は、さらに読み出すべき継続ゲームデータがあるか否かを確認し(ステップS53)、読み出すべき継続ゲームデータがある場合には、ステップS43以下の動作を繰り返し、継続ゲームデータが存在しない場合には、ゲーム終了までゲームプログラムを実行する。
【0123】
<効果>
以上説明したゲームカートリッジ10を用いた場合、ゲーム格納用ROM1に付与されたセキュリティ機能が破られた場合でも、ゲームプログラムの実行時にセキュリティチップ3Bによるセキュリティ動作が実行されるので、ゲームプログラムの複製に要する時間を飛躍的に増大させ、違法なコピー製品が出るまでの時間を遅らせることができる。
【0124】
すなわち、違法なコピー製品の製造者は、ゲーム格納用ROM1に付与されたセキュリティ機能を破ってゲーム格納用ROM1からゲームプログラムを読み出し、ソフトエミュレータを起動してゲームを進行させる。
【0125】
しかし、ゲームの初期プログラムは実行できても、継続ゲームデータAを実行する段階に来ると途中でフリーズしてしまう。
【0126】
違法なコピー製品の製造者は、このフリーズが、ゲームコンソール20がセキュリティチップ3Bに対して、データ読み出しコマンドを発行した後に発生することを突き止めるが、データ読み出しコマンドを模擬してセキュリティチップ3Bに入力しても、ゲームコンソール20が出力する継続ゲームデータAを取得するための所定のアクセスパターンと、シーケンサ36の内部に設定された所定のアクセスシナリオとが一致しなければ、有効な第1の読み出し許可信号がシーケンサ36から得られない。そして、継続ゲームデータAを取得するための所定のアクセスパターンを、有効な第1の読み出し許可信号を得るための、いわばトリガデータとして使用するが、これはゲームコンソール20が出力する通常の信号であるので、違法なコピー製品の製造者は、何がトリガとなっているかを容易に知ることはできない。結果的に、違法なコピー製品の製造者はダミー鍵データを取得することになり、それをゲームコンソール20に与えるとCPU等が暴走してしまうので、ゲームプログラムの複製を容易に作成することができない。
【0127】
また、トリガデータが与えられて第1の読み出し許可信号がシーケンサ36から出力されたとしても、RTC35において設定されたアクセスシナリオの間隔時間が経過するまでは第2の読み出し許可信号が得られないので、アクセスシナリオの間隔時間が経過するまでは鍵データKeyDを得ることができない。
【0128】
ここで、アクセスシナリオの間隔時間は、ゲームコンソール20が、1つのゲームシーンを開始した後、次のゲームシーンのデータを読み出すために、ゲーム格納用ROM1に対して所定のアクセスパターン(アドレスシーケンス)を出力するまでの時間に基づいて設定され、難易度の高いゲームであれば、アクセスシナリオの間隔時間を例えば1時間に設定すれば、1時間おきにしか有効な第2の読み出し許可信号が出力されず、違法なコピー製品の製造者は、1つの鍵データKeyDを取得するのに1時間を要することになる。なお、アクセスシナリオの間隔時間を長くし過ぎると、1つのゲームシーンが終わっても、次のゲームシーンに移ることができず、正規のユーザに不便をかけることになるので、アクセスシナリオの間隔時間は、継続ゲームデータAを取得するためのトリガデータが出力されるまでの時間よりも確実に短くなるように設定する。
【0129】
このように、第1および第2の読み出し許可信号が共に得られないと、鍵データKeyDを得ることができない構成を採ることで、例え、第1および第2の読み出し許可信号の一方を取得できたとしても、残る一方を取得しなければゲームプログラムの複製を作成することができない。
【0130】
そして、図2に示したように、暗号化された継続ゲームデータは複数あり、継続ゲームデータごとに鍵データKeyDが必要であり、鍵データKeyDを得るには、有効な第1および第2の読み出し許可信号を取得しなければならないが、上述したように有効な第1および第2の読み出し許可信号を取得するのは容易ではないので、全ての暗号化された継続ゲームデータを実行するには膨大な時間を要することとなる。
【0131】
通常、ゲームの複製は、エミュレータの動作に必要な極めて短時間で行うことができるが、ゲームデータが暗号化されているので、複製したゲームを実行可能とするには、ゲームの進行に応じて鍵データを取得する必要があり、そのためには人間による試行錯誤が必要となり、違法なコピー製品の製造には、ゲームデータが暗号化されていない場合に比べて、飛躍的に長い時間が必要となる。
【0132】
従って、違法なコピー製品の製造者は、新しいゲームの販売開始直後にコピー製品を売り出すことができず、正規の製造者は、販売開始直後の最も売り上げに寄与する期間をコピー製品に邪魔されることなく販売を続けることができ、コピー製品による売り上げ減退を抑制することができる。
【0133】
このように、本発明に係る半導体メモリ装置によれば、現行のセキュリティシステムを改変せずに、低コストかつ短期間で違法なコピー製品の排除が可能となる。
【0134】
<実装例1>
実施の形態1においては、継続ゲームデータごとに鍵データKeyDが必要であるものとして説明したが、例えばゲームシーン1と2とで同じ継続ゲームデータを使用する場合、鍵データKeyDも同じものとなる。この場合、ゲームシーン1の実行のために一度読み出された鍵データKeyDを再度読み出す場合には、RTC35に設定された読み出し間隔時間が経過せずとも、当該鍵データKeyDが読み出せるように構成しても良い。
【0135】
<実装例2>
実施の形態2においては、継続ゲームデータごとに鍵データKeyDが必要であるものとして説明したが、例えばゲームシーン1と2とで同じ継続ゲームデータを使用する場合、鍵データKeyDも同じものとなる。この場合、ゲームシーン1の実行のために一度読み出された鍵データKeyDを再度読み出す場合には、シーケンサ36に設定されたアクセスシナリオとゲームコンソール20が出力する一連のアドレスシーケンスとの一致、不一致を判断せずに当該鍵データKeyDが読み出せるように構成しても良い。
【0136】
<変形例1>
実施の形態2および3においては、ゲームコンソール20がゲーム格納用ROM1にアクセスして、次のゲームシーンのデータを読み出すためのアドレスシーケンスと、シーケンサ36に設定されたアクセスシナリオとを比較する構成を示したが、ゲーム格納用ROM1へのアクセスの代わりに、フラッシュメモリ2(図1)に所定のデータを書き込むためのアクセスを用いても良い。
【0137】
すなわち、ゲームコンソール20は新たなゲームシーンに入る前には、必ずデータのセーブを行う。この動作では、セーブデータを書き込むためにフラッシュメモリ2にアクセスするので、このときのアドレスシーケンスと、シーケンサ36に設定されたアクセスシナリオとを比較する構成としても良い。
【0138】
ゲームシーンが変わるごとにデータをセーブすることはゲームコンソール20の通常の動作であり、それを有効な読み出し許可信号を得るためのトリガデータとして使用するように構成することはソフトウエア的には容易であり、プログラミングに費やす手間を削減することができる。
【0139】
また、このトリガデータもゲームコンソール20が出力する通常の信号であるので、違法なコピー製品の製造者にとっては、何がトリガとなっているかを容易に知ることはできず、結果的に、違法なコピー製品の製造者はダミー鍵データを取得することになり、それをゲームコンソール20に与えるとCPU等が暴走してしまうので、ゲームプログラムの複製を容易に作成することができない。
【0140】
<変形例2>
実施の形態1〜3においては、内部メモリ34に、ゲーム格納用ROM1に格納されている暗号化されたコンテンツデータA1、A2、A3・・・にそれぞれ対応した鍵データKeyD1、KeyD2、KeyD3・・・を格納した構成を示したが、鍵データの代わりに、暗号化されたコンテンツデータや復号プログラムを格納する構成としても良い。この場合、鍵データは暗号化されたコンテンツデータや復号プログラムの代わりにゲーム格納用ROM1に格納すれば良い。
【0141】
暗号化されたコンテンツデータは、ゲームプログラム全体の一部であるので内部メモリ34に格納可能であり、暗号化されたコンテンツデータが内部メモリ34に格納され、鍵データがゲーム格納用ROM1に格納されていても、セキュリティ機能としては同じである。むしろ、コンテンツデータの一部がゲーム格納用ROM1に存在しないことで、違法なコピー製品の製造者による複製を阻害する要因を増やすことができる。
【図面の簡単な説明】
【0142】
【図1】本発明に係る半導体メモリ装置の構成を示すブロック図である。
【図2】ゲーム格納用ROM内のコード構成を示す図である。
【図3】本発明に係る実施の形態1のセキュリティチップの構成を示すブロック図である。
【図4】本発明に係る実施の形態1のセキュリティ動作を説明するフローチャートである。
【図5】本発明に係る実施の形態2のセキュリティチップの構成を示すブロック図である。
【図6】本発明に係る実施の形態2のセキュリティ動作を説明するフローチャートである。
【図7】本発明に係る実施の形態3のセキュリティチップの構成を示すブロック図である。
【図8】本発明に係る実施の形態3のセキュリティ動作を説明するフローチャートである。

【特許請求の範囲】
【請求項1】
少なくともプログラムの実行のためのプログラムデータが格納された第1のメモリと、
前記プログラムの進行状況を示す情報を格納する第2のメモリと、
バスを介して前記第1および第2のメモリの少なくとも1つと情報の授受を行い、前記プログラムの実行に必要な不可欠データを格納し、その出力を制御するセキュリティチップとを備え、
前記セキュリティチップは、
前記不可欠データの前記外部への出力の可否を決める読み出し許可信号を生成する読み出し許可信号生成手段を少なくとも1つ有し、前記セキュリティチップへの、前記外部からの前記不可欠データの読み出し要求があり、かつ、前記読み出し許可信号が有効な場合に前記不可欠データを出力する、半導体メモリ装置。
【請求項2】
前記読み出し許可信号生成手段は、
予め定めた所定時間の経過を計時し、前記所定時間の経過後に前記読み出し許可信号を有効なものとして出力する時間設定手段を含む、請求項1記載の半導体メモリ装置。
【請求項3】
前記セキュリティチップは、
前記第1および第2のメモリの何れかへの前記外部からのアクセスを監視してアクセスパターンを取得し、
前記読み出し許可信号生成手段は、
内部に設定された所定のアクセスシナリオと、取得した前記アクセスパターンとの比較を行って、両者が一致した場合に前記読み出し許可信号を有効なものとして出力する比較手段を含む、請求項1記載の半導体メモリ装置。
【請求項4】
前記セキュリティチップは、
前記第1および第2のメモリの何れかへの前記外部からのアクセスを監視してアクセスパターンを取得し、
前記読み出し許可信号生成手段として、第1および第2の読み出し許可信号生成手段を有し、それぞれが、前記読み出し許可信号として、第1および第2の読み出し許可信号を生成し、
前記第1の読み出し許可信号生成手段は、
内部に設定された所定のアクセスシナリオと、取得した前記アクセスパターンとの比較を行って、両者が一致した場合に前記第1の読み出し許可信号を有効なものとして出力する比較手段を含み、
前記第2の読み出し許可信号生成手段は、予め定めた所定時間の経過を計時し、前記所定時間の経過後に前記第2の読み出し許可信号を有効なものとして出力する時間設定手段を含み、
前記セキュリティチップへの、前記外部からの前記不可欠データの読み出し要求があり、かつ、前記第1および第2の読み出し許可信号が共に有効な場合に前記不可欠データを出力する、請求項1記載の半導体メモリ装置。
【請求項5】
前記第1のメモリに格納された前記プログラムデータは、少なくとも一部が暗号化されたデータであって、
前記不可欠データは、前記暗号化された前記プログラムデータを復号する鍵データである、請求項1記載の半導体メモリ装置。
【請求項6】
前記第1のメモリに格納された前記プログラムデータは、読み出し単位ごとに暗号化された暗号化データを含み、
前記鍵データは、前記読み出し単位ごとに設定される、請求項5記載の半導体メモリ装置。
【請求項7】
前記第1のメモリには、前記暗号化データを復号する復号プログラムが格納され、
前記鍵データは、前記復号プログラムで前記暗号化データを復号するために使用される、請求項6記載の半導体メモリ装置。
【請求項8】
前記セキュリティチップの監視対象は、前記第1のメモリであって、
前記アクセスは、前記第1のメモリからの前記プログラムデータの読み出しである、請求項3または請求項4記載の、半導体メモリ装置。
【請求項9】
前記セキュリティチップの監視対象は、前記第2のメモリであって、
前記アクセスは、前記第2のメモリへの予め定めたデータの書き込みである、請求項3または請求項4記載の、半導体メモリ装置。
【請求項10】
前記不可欠データは、前記プログラムデータのうち、暗号化された暗号化データを含み、
前記第1のメモリは、前記暗号化されたデータを復号する鍵データを格納する、請求項1記載の半導体メモリ装置。
【請求項11】
前記暗号化データは、読み出し単位ごとに暗号化され、
前記鍵データは、前記読み出し単位ごとに設定される、請求項10記載の半導体メモリ装置。
【請求項12】
前記不可欠データには、前記暗号化データを復号する復号プログラムを含み、
前記鍵データは、前記復号プログラムで前記暗号化データを復号するために使用される、請求項11記載の半導体メモリ装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2009−252079(P2009−252079A)
【公開日】平成21年10月29日(2009.10.29)
【国際特許分類】
【出願番号】特願2008−101323(P2008−101323)
【出願日】平成20年4月9日(2008.4.9)
【出願人】(591128453)株式会社メガチップス (322)
【Fターム(参考)】