(57)【要約】【課題】アプリケーションソフトウェアの複製を困難にすることが可能な技術を提供する。【解決手段】メモリ情報保護システム１Ａは、アプリケーションソフトウェアを実行する情報処理装置１０と、記憶した情報を情報処理装置１０に供給するメモリ装置２０Ａとを備えている。そして、情報処理装置１０は、アプリケーションソフトウェアの生成に用いる主データ２０１を取得するデータ取得部１０２と、主データ２０１と対となる対データ２１１を、メモリ装置２０Ａから取得する対データ取得部１０３と、主データ２０１および当該主データ２０１と対の対データ２１１を用いて、アプリケーションソフトウェアを生成するソフトウェア生成部１０４と、ソフトウェア生成部１０４によって生成されたアプリケーションソフトウェアを情報処理装置１０に実行させて、アプリケーションを実施させる実行制御部１０１とを有している。【選択図】図３
2013003894.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションソフトウェアを実行する情報処理装置と、
記憶した情報を前記情報処理装置に供給するメモリ装置と、
を備え、
前記情報処理装置は、
アプリケーションソフトウェアの取得に用いる第１情報を取得する第１情報取得手段と、
前記第１情報と対となる第２情報を、前記メモリ装置から取得する第２情報取得手段と、
前記第１情報および当該第１情報と対の前記第２情報を用いて、前記アプリケーションソフトウェアを取得するソフトウェア取得手段と、
前記ソフトウェア取得手段によって取得された前記アプリケーションソフトウェアを前記情報処理装置に実行させて、アプリケーションを実施させる実行制御手段と、
を有するメモリシステム。
【請求項２】
前記ソフトウェア取得手段は、
前記第１情報および当該第１情報と対の前記第２情報を用いて、前記アプリケーションソフトウェアを生成する生成手段、
を含む請求項１に記載のメモリシステム。
【請求項３】
前記第１情報取得手段は、アプリケーションの進行に応じて、アプリケーションの進行状況に対応した第１情報を順次に取得し、
前記第２情報取得手段は、前記第１情報取得手段によって順次に取得される第１情報それぞれについて、対となる第２情報を順次に取得し、
前記生成手段は、アプリケーションの進行に応じて取得される第１情報および当該第１情報と対の第２情報を用いて、アプリケーションの進行状況に対応したアプリケーションソフトウェアを順次に生成し、
前記実行制御手段は、順次に生成されるアプリケーションソフトウェアを前記情報処理装置に順次に実行させて、アプリケーションを継続実施させる請求項２に記載のメモリシステム。
【請求項４】
前記第２情報取得手段は、第２情報の取得に際して、第２情報の出力要求を前記メモリ装置に対して発行し、
前記メモリ装置は、
前記出力要求を受けて、第２情報の出力制御を行う出力制御手段、
を有し、
前記出力制御手段は、
前記出力要求に基づいて特定される出力対象の第２情報について、出力順序が妥当であるか否かを判定する第１判定手段、
を含み、
前記出力制御手段は、前記第１判定手段によって前記出力順序が妥当であると判定された場合、第２情報の出力を適切に行い、前記第１判定手段によって前記出力順序が妥当でないと判定された場合、第２情報の出力を適切に行わない請求項３に記載のメモリシステム。
【請求項５】
前記第２情報取得手段は、第２情報の取得に際して、前記メモリ装置に対して第２情報の出力要求を発行し、
前記メモリ装置は、
前記出力要求を受けて、第２情報の出力制御を行う出力制御手段と、
前記出力要求に応じて第２情報を出力した時点からの経過時間を、前記出力制御手段の制御に従って計測する計時手段と、
を有し、
前記出力制御手段は、
前記出力要求の次の新たな出力要求を受けた場合に、前記経過時間が所定時間を超えているか否かを判定する第２判定手段、
を含み、
前記出力制御手段は、前記第２判定手段によって前記経過時間が所定時間を超えていると判定された場合、前記新たな出力要求を受け入れ、前記第２判定手段によって前記経過時間が所定時間を超えていないと判定された場合、前記新たな出力要求を拒否する請求項３に記載のメモリシステム。
【請求項６】
前記所定時間は、前記新たな出力要求よりも１つ前の出力要求に応じて出力された第２情報と、当該第２情報と対となる第１情報とを用いて生成されるアプリケーションソフトウェアの実行に必要となる最小の時間である請求項５に記載のメモリシステム。
【請求項７】
前記メモリ装置は、前記第１情報を記憶する記憶手段を有し、
前記第１情報取得手段は、前記第１情報を前記メモリ装置から取得する請求項１から請求項６のいずれかに記載のメモリシステム。
【請求項８】
前記第１情報には、前記第２情報を取得するための取得情報が含まれ、
前記第２情報取得手段は、前記第１情報に含まれる前記取得情報に基づいて、前記第２情報を前記メモリ装置から取得する請求項１から請求項７のいずれかに記載のメモリシステム。
【請求項９】
記憶した情報を、アプリケーションソフトウェアを実行する情報処理装置に供給するメモリ装置であって、
前記アプリケーションソフトウェアの取得に用いる第１情報と対となる第２情報を記憶する記憶手段と、
前記情報処理装置から発行される前記第２情報の出力要求を受けて、第２情報の出力制御を行う出力制御手段と、
を備え、
前記メモリ装置は、前記第１情報および当該第１情報と対の前記第２情報を用いて、前記アプリケーションソフトウェアを取得し、当該アプリケーションソフトウェアを実行して、アプリケーションを実施する前記情報処理装置に装着されるメモリ装置。
【請求項１０】
アプリケーションソフトウェアを実行する情報処理装置と、記憶した情報を前記情報処理装置に供給するメモリ装置とを含むメモリシステムの動作方法であって、
ａ）前記情報処理装置において、アプリケーションソフトウェアの取得に用いる第１情報を取得する工程と、
ｂ）前記情報処理装置において、前記第１情報と対となる第２情報を、前記メモリ装置から取得する工程と、
ｃ）前記情報処理装置において、前記第１情報および当該第１情報と対の前記第２情報を用いて、前記アプリケーションソフトウェアを取得する工程と、
ｄ）前記ｃ）工程において取得されたアプリケーションソフトウェアを前記情報処理装置に実行させて、アプリケーションを実施させる工程と、
を有するメモリシステムの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報の保護技術に関する。
【背景技術】
【０００２】
アプリケーションソフトウェアを記憶したメモリ装置を情報処理装置に装着し、当該情報処理装置において、メモリ装置に記憶されたアプリケーションソフトウェアを実行して所定の機能を実現する技術が知られている。
【０００３】
このようなメモリ装置においては、アプリケーションソフトウェアの複製を防止するために、セキュリティ機能が搭載されている。例えば、特許文献１では、アプリケーションソフトウェアが暗号化された状態でメモリ装置に記憶され、情報処理装置は、当該アプリケーションソフトウェアを解読するための鍵データを取得することなく、アプリケーションソフトウェアを実行することができないように構成されている。したがって、特許文献１では、適切な鍵データを取得するまでは、アプリケーションソフトウェアの複製が制限されることになる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２５８８５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上記特許文献１では、暗号化されたアプリケーションソフトウェアに対応する鍵データが特定された場合には、アプリケーションソフトウェアの実行が可能になり、アプリケーションソフトウェアを許可無く無断で複製される可能性があった。
【０００６】
そこで、本発明は、アプリケーションソフトウェアの複製を困難にすることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るメモリシステムの第１の態様は、アプリケーションソフトウェアを実行する情報処理装置と、記憶した情報を前記情報処理装置に供給するメモリ装置とを備え、前記情報処理装置は、アプリケーションソフトウェアの取得に用いる第１情報を取得する第１情報取得手段と、前記第１情報と対となる第２情報を、前記メモリ装置から取得する第２情報取得手段と、前記第１情報および当該第１情報と対の前記第２情報を用いて、前記アプリケーションソフトウェアを取得するソフトウェア取得手段と、前記ソフトウェア取得手段によって取得された前記アプリケーションソフトウェアを前記情報処理装置に実行させて、アプリケーションを実施させる実行制御手段とを有する。
【０００８】
また、本発明に係るメモリシステムの第２の態様は、上記第１の態様であって、前記ソフトウェア取得手段は、前記第１情報および当該第１情報と対の前記第２情報を用いて、前記アプリケーションソフトウェアを生成する生成手段を含む。
【０００９】
また、本発明に係るメモリシステムの第３の態様は、上記第２の態様であって、前記第１情報取得手段は、アプリケーションの進行に応じて、アプリケーションの進行状況に対応した第１情報を順次に取得し、前記第２情報取得手段は、前記第１情報取得手段によって順次に取得される第１情報それぞれについて、対となる第２情報を順次に取得し、前記生成手段は、アプリケーションの進行に応じて取得される第１情報および当該第１情報と対の第２情報を用いて、アプリケーションの進行状況に対応したアプリケーションソフトウェアを順次に生成し、前記実行制御手段は、順次に生成されるアプリケーションソフトウェアを前記情報処理装置に順次に実行させて、アプリケーションを継続実施させる。
【００１０】
また、本発明に係るメモリシステムの第４の態様は、上記第３の態様であって、前記第２情報取得手段は、第２情報の取得に際して、第２情報の出力要求を前記メモリ装置に対して発行し、前記メモリ装置は、前記出力要求を受けて、第２情報の出力制御を行う出力制御手段、を有し、前記出力制御手段は、前記出力要求に基づいて特定される出力対象の第２情報について、出力順序が妥当であるか否かを判定する第１判定手段、を含み、前記出力制御手段は、前記第１判定手段によって前記出力順序が妥当であると判定された場合、第２情報の出力を適切に行い、前記第１判定手段によって前記出力順序が妥当でないと判定された場合、第２情報の出力を適切に行わない。
【００１１】
また、本発明に係るメモリシステムの第５の態様は、上記第３の態様であって、前記第２情報取得手段は、第２情報の取得に際して、前記メモリ装置に対して第２情報の出力要求を発行し、前記メモリ装置は、前記出力要求を受けて、第２情報の出力制御を行う出力制御手段と、前記出力要求に応じて第２情報を出力した時点からの経過時間を、前記出力制御手段の制御に従って計測する計時手段とを有し、前記出力制御手段は、前記出力要求の次の新たな出力要求を受けた場合に、前記経過時間が所定時間を超えているか否かを判定する第２判定手段、を含み、前記出力制御手段は、前記第２判定手段によって前記経過時間が所定時間を超えていると判定された場合、前記新たな出力要求を受け入れ、前記第２判定手段によって前記経過時間が所定時間を超えていないと判定された場合、前記新たな出力要求を拒否する。
【００１２】
また、本発明に係るメモリシステムの第６の態様は、上記第５の態様であって、前記所定時間は、前記新たな出力要求よりも１つ前の出力要求に応じて出力された第２情報と、当該第２情報と対となる第１情報とを用いて生成されるアプリケーションソフトウェアの実行に必要となる最小の時間である。
【００１３】
また、本発明に係るメモリシステムの第７の態様は、上記第１の態様から上記第６の態様のいずれかであって、前記メモリ装置は、前記第１情報を記憶する記憶手段を有し、前記第１情報取得手段は、前記第１情報を前記メモリ装置から取得する。
【００１４】
また、本発明に係るメモリシステムの第８の態様は、上記第１の態様から上記第７の態様のいずれかであって、前記第１情報には、前記第２情報を取得するための取得情報が含まれ、前記第２情報取得手段は、前記第１情報に含まれる前記取得情報に基づいて、前記第２情報を前記メモリ装置から取得する。
【００１５】
また、本発明に係るメモリ装置は、記憶した情報を、アプリケーションソフトウェアを実行する情報処理装置に供給するメモリ装置であって、前記アプリケーションソフトウェアの取得に用いる第１情報と対となる第２情報を記憶する記憶手段と、前記情報処理装置から発行される前記第２情報の出力要求を受けて、第２情報の出力制御を行う出力制御手段とを備え、前記メモリ装置は、前記第１情報および当該第１情報と対の前記第２情報を用いて、前記アプリケーションソフトウェアを取得し、当該アプリケーションソフトウェアを実行して、アプリケーションを実施する前記情報処理装置に装着される。
【００１６】
また、本発明に係るメモリシステムの動作方法は、アプリケーションソフトウェアを実行する情報処理装置と、記憶した情報を前記情報処理装置に供給するメモリ装置とを含むメモリシステムの動作方法であって、ａ）前記情報処理装置において、アプリケーションソフトウェアの取得に用いる第１情報を取得する工程と、ｂ）前記情報処理装置において、前記第１情報と対となる第２情報を、前記メモリ装置から取得する工程と、ｃ）前記情報処理装置において、前記第１情報および当該第１情報と対の前記第２情報を用いて、前記アプリケーションソフトウェアを取得する工程と、ｄ）前記ｃ）工程において取得されたアプリケーションソフトウェアを前記情報処理装置に実行させて、アプリケーションを実施させる工程とを有する。
【発明の効果】
【００１７】
本発明によれば、アプリケーションソフトウェアの複製を困難にすることが可能になる。
【図面の簡単な説明】
【００１８】
【図１】メモリ情報保護システムの外観構成を示す図である。
【図２】ゲームシステムとして動作するメモリ情報保護システムの動作概要を示す図である。
【図３】第１実施形態に係るメモリ情報保護システムの機能構成を示すブロック図である。
【図４】主データに含まれる対データ取得情報の内容を示す図である。
【図５】第１実施形態に係るメモリ情報保護システムの動作を示すフローチャートである。
【図６】第２実施形態に係るメモリ情報保護システムの機能構成を示すブロック図である。
【図７】第２実施形態に係るメモリ情報保護システムの動作を示すフローチャートである。
【図８】変形例に係るメモリ情報保護システムの構成を示す図である。
【図９】変形例に係るメモリ情報保護システムの構成を示す図である。
【発明を実施するための形態】
【００１９】
以下、各実施形態について図面を参照して説明する。なお、異なる図面において同一の符号を付した要素は、同一または相応する要素を示すものとする。
【００２０】
＜１．第１実施形態＞
［１−１．構成概要］
図１は、メモリ情報保護システム（単に「メモリシステム」とも称する）１Ａの外観構成を示す図である。
【００２１】
図１に示されるように、メモリ情報保護システム１Ａは、情報処理装置１０とメモリ装置２０Ａとを有している。
【００２２】
メモリ装置２０Ａは、所定のアプリケーションをコンピュータ上で実施するための種々のデータ（情報）を記憶（格納）している。このメモリ装置２０Ａは、例えばカードまたはカートリッジのような態様を有し、情報処理装置１０に脱着自在に構成されている。
【００２３】
情報処理装置１０は、装着されたメモリ装置２０Ａからデータを読み出し、当該データに基づいてアプリケーションソフトウェア（プログラム）を生成する。そして、情報処理装置１０は、当該アプリケーションソフトウェアを実行して、上記所定のアプリケーションを実施する。このような情報処理装置１０には、例えば、パーソナルコンピュータ（パソコン）、ＰＤＡ（Personal Digital Assistant）のような情報端末装置が含まれる。また、メモリ装置２０Ａに記憶されたデータがコンピュータゲーム（単に「ゲーム」とも称する）のゲームプログラムを生成するためのデータである場合は、情報処理装置１０は、据置型ゲーム機または携帯ゲーム機等のゲーム装置本体として機能する。
【００２４】
ここで、情報処理装置１０が、ゲームプログラムを実行するゲーム装置本体として機能する場合を一例にして、メモリ情報保護システム１Ａの動作概要を説明する。図２は、ゲームシステムとして動作するメモリ情報保護システム１Ａの動作概要を示す図である。
【００２５】
メモリ情報保護システム１Ａは、ゲームの進行状況に応じてゲームプログラムを順次に生成するとともに、生成したゲームプログラムを実行することによって、アプリケーションとしてのゲームを継続実施する。
【００２６】
具体的には、図２に示されるように、メモリ情報保護システム１Ａは、ゲームの進行状況の第１段階では、Ａデータ（後述の主データ）および当該Ａデータと対となるａデータ（後述の対データ）を用いてゲームプログラムＰＡを生成し、当該ゲームプログラムＰＡを実行して第１段階におけるゲームを実施可能にする。また、ゲームの進行状況の第２段階では、メモリ情報保護システム１Ａは、Ｅデータおよび当該Ｅデータと対のｅデータを用いてゲームプログラムＰＥを生成し、当該ゲームプログラムＰＥを実行して第２段階におけるゲームを実施可能にする。そして、ゲームの進行状況の第３段階では、メモリ情報保護システム１Ａは、Ｂデータおよび当該Ｂデータと対のｂデータを用いてゲームプログラムＰＢを生成し、当該ゲームプログラムＰＢを実行して第３段階におけるゲームを実施可能にする。
【００２７】
このように、ゲームシステムとしてのメモリ情報保護システム１Ａは、ゲームの進行に応じて、対となる２つのデータを用いてゲームプログラムを順次に生成し、生成したゲームプログラムを実行して、ゲームの継続実施を実現させる。
【００２８】
［１−２．機能ブロック］
次に、メモリ情報保護システム１Ａの機能構成について説明する。図３は、第１実施形態に係るメモリ情報保護システム１Ａの機能構成を示すブロック図である。図４は、主データに含まれる対データ取得情報の内容を示す図である。
【００２９】
図３に示されるように、メモリ情報保護システム１Ａを構成する情報処理装置１０は、制御部１００と、情報処理装置１０をメモリ装置２０Ａと電気的に接続させるためのインターフェース（Ｉ／Ｆ）１１０とを備えている。
【００３０】
制御部１００は、マイクロコンピュータとして構成され、主にＣＰＵ、ＲＡＭおよびＲＯＭ等（いずれも不図示）を備えている。
【００３１】
制御部１００は、ＲＯＭに格納されたプログラムを読み出し、当該プログラムをＣＰＵで実行することによって、各種機能を実現する。
【００３２】
具体的には、制御部１００は、ＲＯＭに格納されたプログラムの実行によって、実行制御部１０１を機能的に実現する。
【００３３】
実行制御部１０１は、ＣＰＵによるアプリケーションソフトウェアの実行を制御する。また、実行制御部１０１は、アプリケーションを起動する（立ち上げる）際には、起動用の初期アプリケーションソフトウェアをメモリ装置２０Ａ（例えば、メモリ装置２０Ａの第１記憶部２００）から読み出して、当該初期アプリケーションソフトウェアをＣＰＵに実行させ、アプリケーションを開始させる。
【００３４】
また、制御部１００では、ＲＯＭに格納された上記プログラムの実行によって、或いは実行制御部１０１の制御に従いアプリケーションソフトウェアをＣＰＵで実行することによって、主データ取得部１０２、対データ取得部１０３およびソフトウェア生成部１０４が機能的に実現されることになる。
【００３５】
主データ取得部（第１データ取得部）１０２は、メモリ装置２０Ａに記憶されている、アプリケーションソフトウェアの生成に用いる主データ（「第１データ」または「第１情報」とも称する）を読み出して、取得する機能を有している。具体的には、主データ取得部１０２は、主データを出力させるための主データ出力コマンドをメモリ装置２０Ａに対して発行することによって、メモリ装置２０Ａから主データを取得する。
【００３６】
対データ取得部（第２データ取得部）１０３は、メモリ装置２０Ａから、主データと対となる対データ（「第２データ」または「第２情報」とも称する）を取得する機能を有している。具体的には、対データ取得部１０３は、メモリ装置２０Ａから取得された主データに含まれる対データ取得情報に基づいて、メモリ装置２０Ａから対データを取得する。対データ取得情報の内容については後述する。
【００３７】
なお、本明細書では、第１データを主データと称し、第２データを対データと称するが、ここでの「主」、「対」は説明の便宜上のものであり、データの内容、データの大きさ等に依って呼称されるものではない。
【００３８】
ソフトウェア生成部１０４は、メモリ装置２０Ａから取得した主データおよび当該主データと対の対データを用いて、アプリケーションソフトウェアを生成する機能を有している。ソフトウェア生成部１０４によって生成されたアプリケーションソフトウェアは、実行制御部１０１の制御に従って、ＣＰＵで実行されることになる。
【００３９】
なお、ソフトウェア生成部１０４は、アプリケーションソフトウェアを生成することによって、アプリケーションソフトウェアを取得していることから、主データおよび対データを用いてアプリケーションソフトウェアを取得するソフトウェア取得手段とも表現できる。
【００４０】
一方、メモリ情報保護システム１Ａを構成するメモリ装置２０Ａは、記憶手段としての第１記憶部２００および第２記憶部２１０と、セキュリティ部２２０とを備えている。
【００４１】
第１記憶部２００は、マスクＲＯＭのような不揮発性の記憶部であって、アプリケーションソフトウェアを生成するための主データ２０１を複数記憶している。図３には、主データとして、Ａ主データ、Ｂ主データ、Ｃ主データ、Ｄ主データ、Ｅ主データ等が記憶されている態様が示されている。なお、図３では、説明簡単化のために、Ａ→Ｂ→Ｃ・・・と順序通りに記憶された主データを例示したが、各主データの記憶順序はランダムであることが好ましい。
【００４２】
これら各主データには、対となる対データを取得するための対データ取得情報が含まれている。図４に示されるように、対データ取得情報には、対データの読出方法（図４ではａ対データの読出方法）に関する情報（「対データの読出情報」とも称する）が含まれている。対データの読出情報には、対データの格納先を示す読出アドレスが含まれる。また、１つの対データが複数のアドレスに分散して格納されている場合は、複数の読出アドレスに加えて、読出順序を示す読み出し手順に関する情報が、対データ読出情報として含まれていてもよい。
【００４３】
また対データ取得情報には、対データ生成方法に関する情報（「対データの生成情報」とも称する）が含まれていてもよい。対データの生成方法に関する情報としては、例えば、対データを生成するための復号鍵または対データを生成する際のビットシフト情報等を例示することができる。
【００４４】
第１記憶部２００は、情報処理装置１０から発行された主データ出力コマンドを受けて、出力対象となる主データ２０１を出力する。例えば、Ａ主データが出力対象であった場合は、当該Ａ主データが出力され、Ｂ主データが出力対象であった場合は、当該Ｂ主データが出力されることになる。
【００４５】
なお、当該第１記憶部２００は、マスクＲＯＭに限定されず、フラッシュメモリ、ＥＰ−ＲＯＭまたはハードディスク（ＨＤ）等であってもよい。
【００４６】
第２記憶部２１０は、フラッシュメモリのような書き換え可能な不揮発性の記憶部であって、対データ２１１を記憶している。
【００４７】
図３では、対データ２１１として、Ａ主データと対のａ対データ、Ｂ主データと対のｂ対データ、Ｃ主データと対のｃ対データ、Ｄ主データと対のｄ対データ、Ｅ主データと対のｅ対データ等が記憶されている態様が示されている。第２記憶部２１０は、セキュリティ部２２０の制御に従って、対データ２１１を出力する。
【００４８】
また、第２記憶部２１０は、出力順序情報２１２をも記憶している。出力順序情報２１２は、アプリケーションの進行に応じて定められる、各対データの出力順序（読出順序）に関する情報であり、メモリ装置２０Ａの製造時に第２記憶部２１０に予め格納されている。当該出力順序情報２１２は、セキュリティ部２２０の制御に従ってセキュリティ部２２０に出力される。
【００４９】
なお、図３では、説明簡単化のために、ａ→ｂ→ｃ・・・と順序通りに記憶された対データを例示したが、各対データの記憶順序はランダムであることが好ましい。
【００５０】
セキュリティ部２２０は、読出制御部（出力制御部）２２１を有し、第２記憶部２１０に格納された対データの出力制御を行う。
【００５１】
具体的には、読出制御部２２１は、情報処理装置１０から入力される対データの出力コマンドを解析して、出力対象の対データを特定する。そして、読出制御部２２１は、第２記憶部２１０から得た出力順序情報２１２に基づいて、対データの出力順序が正しいか否か（妥当か否か）を判定する。対データの出力順序が正しかった場合は、読出制御部２２１は、出力対象の対データを第２記憶部２１０から読み出して、当該対データを情報処理装置１０に出力する。一方、対データの出力順序が正しくなかった場合は、読出制御部２２１は、出力対象の対データを出力せずに、他の対データまたはダミーデータを出力する。なお、他の対データまたはダミーデータを出力する態様に代えて、データを全く出力しない態様としてもよい。
【００５２】
このように、メモリ装置２０Ａでは、セキュリティ部２２０を介してしか第２記憶部２１０にアクセス出来ない構成が採用され、セキュリティ部２２０は、第２記憶部２１０に記憶された対データの出力制御を行う。
【００５３】
［１−３．メモリ情報保護システム１Ａの動作］
次に、メモリ情報保護システム１Ａの動作について説明する。図５は、メモリ情報保護システム１Ａの動作を示すフローチャートである。図５では、左側に情報処理装置１０の動作を示すフローチャート、右側にメモリ装置２０Ａの動作を示すフローチャートがそれぞれ示されている。
【００５４】
メモリ情報保護システム１Ａの動作開始前には、メモリ装置２０Ａが情報処理装置１０に装着されて、それぞれのインターフェースが電気的に接続される。そして、情報処理装置１０の電源投入に応じて、情報処理装置１０が起動されるとともに、電源がメモリ装置２０Ａに供給されて、システムとしての動作が開始される。
【００５５】
図５に示されるように、情報処理装置１０では、電源が投入されると、実行制御部１０１によって、初期アプリケーションソフトウェアがメモリ装置２０Ａから読み出される（ステップＳＰ１０１）。
【００５６】
ステップＳＰ１０２では、実行制御部１０１が、初期アプリケーションソフトウェアをＣＰＵに実行させ、アプリケーションが開始される。
【００５７】
ステップＳＰ１０３では、主データ取得部１０２によって、メモリ装置２０Ａに記憶されている主データが取得される。
【００５８】
起動後に最初に取得すべき主データの情報は、初期アプリケーションソフトウェアに組み込まれている。具体的には、初期アプリケーションソフトウェアには、最初に取得すべき主データの取得命令が組み込まれており、初期アプリケーションソフトウェアの実行によって、主データの取得命令が発行される。主データ取得部１０２は、当該取得命令を受けて取得対象となる主データの出力コマンド（出力要求）をメモリ装置２０Ａに対して発行する。当該出力コマンドを受けたメモリ装置２０Ａは、取得対象の主データを情報処理装置１０に対して出力する。情報処理装置１０は、このようにして取得した主データを、内部のＲＡＭに一旦格納する。
【００５９】
次のステップＳＰ１０４では、ステップＳＰ１０３で取得した主データと対となる対データが取得される。対データの取得は、主データに含まれる対データ取得情報に基づいて、対データ取得部１０３によって行われる。
【００６０】
具体的には、対データ取得部１０３は、対データ取得情報に含まれる対データの読出情報に基づいて、メモリ装置２０Ａに対して対データの出力コマンド（出力要求）を発行する。対データの出力コマンドは、取得対象となる対データの読出アドレスを含んだ出力命令であり、当該出力コマンドを受けたメモリ装置２０Ａは、取得対象の対データを情報処理装置１０に対して出力する。
【００６１】
情報処理装置１０から読み出された対データが対データとしては利用できない不完全な状態であった場合（例えば、読み出された対データが暗号化されている場合）は、対データ取得部１０３は、対データ取得情報に含まれる対データの生成情報を用いて、対データとして利用可能な完全な状態の対データを生成する。
【００６２】
ステップＳＰ１０５では、ソフトウェア生成部１０４によって、アプリケーションソフトウェアの生成（取得）が行われる。ソフトウェア生成部１０４によるアプリケーションソフトウェアの生成態様としては、種々の態様を例示することができる。
【００６３】
例えば、主データおよび対データがいずれもアプリケーションソフトウェアの一部であり、２つを組み合わせるとアプリケーションソフトウェアになる場合、ソフトウェア生成部１０４は、主データと対データとを単純に組み合わせて、アプリケーションソフトウェアを生成することになる。
【００６４】
また、主データの一部に暗号化されたデータ（暗号データ）が含まれ、当該暗号データを対データを用いて復号化すれば、主データ全体がアプリケーションソフトウェアになる場合、ソフトウェア生成部１０４は、鍵情報としての対データを用いて暗号データを復号化してアプリケーションソフトウェアを生成することになる。
【００６５】
なお、アプリケーションソフトウェアの生成方法に関する情報（アプリケーションソフトウェアの生成情報）は、初期アプリケーションソフトウェア、主データまたは対データに含まれており、ソフトウェア生成部１０４は、アプリケーションソフトウェアの生成情報に従ってアプリケーションソフトウェアの生成動作を実行する。
【００６６】
ステップＳＰ１０６では、ステップＳＰ１０５で生成されたアプリケーションソフトウェアが、実行制御部１０１の制御に従ってＣＰＵで実行される。
【００６７】
アプリケーションソフトウェアの実行中に、情報処理装置１０の動作を終了させる終了動作が実行された場合は、情報処理装置１０の動作は終了する（ステップＳＰ１０７）。
【００６８】
一方、情報処理装置１０の動作が継続され、ユーザの操作等によってアプリケーションが進行すると、動作工程は、ステップＳＰ１０３に移行される。
【００６９】
繰り返し処理となるステップＳＰ１０３では、主データ取得部１０２によって、メモリ装置２０Ａから次の主データが取得される。アプリケーションの進行に対応した次に取得すべき主データの情報は、実行中のアプリケーションソフトウェア（ステップＳＰ１０５で生成されたアプリケーションソフトウェア）に組み込まれている。すなわち、アプリケーションが進行すると、アプリケーションソフトウェアの実行によって、次に取得すべき主データの取得命令が発行される。そして、主データ取得部１０２は、当該取得命令を受けて取得対象となる主データの出力コマンドをメモリ装置２０Ａに対して発行する。
【００７０】
以降のステップＳＰ１０４〜ステップＳＰ１０７では、上記と同様の処理が実行される。すなわち、ステップＳＰ１０４では、対データが取得され、ステップＳＰ１０５では主データと対データとを用いてアプリケーションの進行に対応した次のアプリケーションソフトウェアが生成される。そして、ステップＳＰ１０６では、生成された新たなアプリケーションソフトウェアが実行される。
【００７１】
このように、情報処理装置１０では、アプリケーションが終了するまで、ステップＳＰ１０３からステップＳＰ１０７の各動作工程が繰り返し実行される。これにより、情報処理装置１０は、アプリケーションの進行に応じたアプリケーションソフトウェアを、主データおよび対データを用いて順次に生成して、順次に生成されたアプリケーションソフトウェアを順次に実行することになる。
【００７２】
一方、メモリ装置２０Ａでは、電源供給が開始されると、情報処理装置１０のステップＳＰ１０１に対応した動作が実行され、第１記憶部２００から初期アプリケーションソフトウェアが出力される（ステップＳＰ２０１）。
【００７３】
次のステップＳＰ２０２では、情報処理装置１０のステップＳＰ１０３に対応した動作が実行され、主データの出力コマンドの発行を受けて、出力対象の主データ２０１が第１記憶部２００から出力される。
【００７４】
そして、ステップＳＰ２０３〜ステップＳＰ２０６では、情報処理装置１０のステップＳＰ１０４に対応した動作、すなわち対データの出力動作が実行される。
【００７５】
具体的には、ステップＳＰ２０３では、情報処理装置１０から発行された対データの出力コマンドが、セキュリティ部２２０の読出制御部２２１によって解析される。この出力コマンドの解析によって、出力対象の対データが特定される。
【００７６】
ステップＳＰ２０４では、読出制御部２２１によって、対データの出力順序が妥当（適切）か否かが判定される。対データの出力順序の妥当性判断は、例えば、既に出力済みの対データに関する出力履歴情報およびステップＳＰ２０３で出力対象として特定された対データと、第２記憶部２１０から得られる出力順序情報２１２とを比較することによって行うことができる。なお、出力履歴情報を用いて出力順序の妥当性判断を行う場合は、セキュリティ部２２０は、対データを出力する度に出力履歴情報を更新（生成）して第２記憶部２１０に格納しておけばよい。
【００７７】
ステップＳＰ２０４において、対データの出力順序が妥当であると判断された場合、動作工程は、ステップＳＰ２０５に移行される。ステップＳＰ２０５では、読出制御部２２１によって、対データの出力が適切に行われる。すなわち、出力対象の対データがメモリ装置２０Ａから出力される。
【００７８】
一方、ステップＳＰ２０４において、対データの出力順序が妥当でないと判断された場合、動作工程は、ステップＳＰ２０６に移行される。ステップＳＰ２０６では、読出制御部２２１によって、対データの出力が適切に行われない。すなわち、読出制御部２２１は、出力対象の対データを出力せずに、出力対象の対データとは異なる他のデータを出力する。或いは、読出制御部２２１は、データを全く出力しない。
【００７９】
ステップＳＰ２０５またはステップＳＰ２０６が終了すると、動作工程は、上記のステップＳＰ２０２に移行され、主データの出力コマンドを受けると、出力対象の主データが第１記憶部２００から出力される。ここで出力される主データは、アプリケーションの進行状況に対応した主データであり、情報処理装置１０は、新たな当該主データを取得する。
【００８０】
以降のステップＳＰ２０３〜ステップＳＰ２０６では、上記と同様の処理が実行される。すなわち、ステップＳＰ２０３では、対データの出力コマンドが解析され、ステップＳＰ２０４では、対データの出力順序が妥当か否かが判定される。そして、判定結果に応じた対データの出力が行われる（ステップＳＰ２０５，ステップＳＰ２０６）。
【００８１】
このように、メモリ装置２０Ａでは、アプリケーションが終了するまで、情報処理装置１０の動作に対応して、ステップＳＰ２０２からステップＳＰ２０６の各工程が繰り返し実行されることになる。
【００８２】
以上のように、メモリ情報保護システム１Ａは、アプリケーションソフトウェアを実行する情報処理装置１０と、記憶した情報を情報処理装置１０に供給するメモリ装置２０Ａとを備えている。そして、情報処理装置１０は、アプリケーションソフトウェアの生成に用いる主データ２０１を取得する主データ取得部１０２と、主データ２０１と対となる対データ２１１を、メモリ装置２０Ａから取得する対データ取得部１０３と、主データ２０１および当該主データ２０１と対の対データ２１１を用いて、アプリケーションソフトウェアを生成するソフトウェア生成部１０４と、ソフトウェア生成部１０４によって生成されたアプリケーションソフトウェアを情報処理装置１０に実行させて、アプリケーションを実施させる実行制御部１０１とを有している。
【００８３】
このようなメモリ情報保護システム１Ａによれば、メモリ装置２０Ａに記憶されているデータを単に抜き出しただけでは、アプリケーションソフトウェアを得ることができないため、アプリケーションソフトウェアの複製が困難になる。
【００８４】
また、メモリ情報保護システム１Ａでは、アプリケーションの進行に応じてアプリケーションの進行状況に対応した、対となる２つのデータを順次に取得し、当該２つのデータを用いて、アプリケーションの進行状況に対応したアプリケーションソフトウェアを順次に生成する。そして、生成したアプリケーションソフトウェアを順次に実行して、アプリケーションの継続実施を実現する。このため、アプリケーションを進行させない限り、アプリケーションの進行順序に沿ったアプリケーションソフトウェアを順次に得ることができないので、メモリ装置２０Ａに記憶されているデータを単に抜き出しただけでは、アプリケーションソフトウェアの複製が一層困難になる。
【００８５】
また、主データに対する対データを取得するためには、主データを解析して主データに含まれる対データ取得情報を得て、当該対データ取得情報に基づいて対データを特定する必要がある。このため、メモリ装置２０Ａに記憶されているデータを単に抜き出しただけでは、主データに対する対データの特定が困難であり、無断で複製を行う複製者は、アプリケーションソフトウェアを生成することができない。仮に主データに対する対データの特定ができたとしても、アプリケーションソフトウェアの複製に、多大な時間を要することになるので、メモリ装置２０Ａの複製品が出回るまでの期間を稼ぐことができる。
【００８６】
また、メモリ情報保護システム１Ａでは、対データの出力順序がアプリケーションの進行に応じた適切な順序でない場合は、対データが適切に出力されない。このため、対データを取得するためには、アプリケーションを進行させて正しい順序で対データを取得することが必要になるので、無断複製者は、逆アセンブルによってメモリ装置２０Ａを複製することが困難となる。
【００８７】
＜２．第２実施形態＞
次に、第２実施形態について説明する。第２実施形態に係るメモリ情報保護システム１Ｂでは、時間情報を加味して対データの出力制御が行われる。対データの出力手法が異なる点以外は、第２実施形態のメモリ情報保護システム１Ｂは、第１実施形態のメモリ情報保護システム１Ａとほぼ同様の構造および機能を有している。このため、メモリ情報保護システム１Ｂにおいて、メモリ情報保護システム１Ａと共通する部分については同じ符号を付して説明を省略する。
【００８８】
［２−１．構成］
上述のように、本実施形態のメモリ情報保護システム１Ｂでは、時間情報を加味した対データの出力制御が行われる。以下では、このような対データの出力制御を行うメモリ情報保護システム１Ｂについて詳述する。図６は、第２実施形態に係るメモリ情報保護システム１Ｂの機能構成を示すブロック図である。
【００８９】
図６に示されるように、メモリ情報保護システム１Ｂを構成するメモリ装置２０Ｂは、セキュリティ部２２０において計時部２２２を有している。
【００９０】
計時部２２２は、時間を計測する計時機能を有している。
【００９１】
メモリ装置２０Ｂでは、当該計時部２２２を利用して、対データの出力時点からの経過時間が計測される。具体的には、読出制御部２２１は、情報処理装置１０に対データを出力したタイミングで、対データを出力したことを示す情報（対データの出力情報）を計時部２２２に出力する。計時部２２２は、読出制御部２２１から対データの出力情報を受けると、当該出力情報をトリガとして時間の計測を開始する。計時部２２２で計測された時間は、計時情報として読出制御部２２１に出力される。
【００９２】
［２−２．動作］
ここで、メモリ情報保護システム１Ｂの動作について説明する。図７は、メモリ情報保護システム１Ｂの動作を示すフローチャートである。図７では、左側に情報処理装置１０の動作を示すフローチャート、右側にメモリ装置２０Ｂの動作を示すフローチャートがそれぞれ示されている。
【００９３】
メモリ装置２０Ｂが情報処理装置１０に装着され、情報処理装置１０に電源が投入されると、システムとしての動作が開始される。
【００９４】
具体的には、図７に示されるように、情報処理装置１０では、第１実施形態で説明した各動作工程（ステップＳＰ１０１〜ステップＳＰ１０７）が実行され、第１実施形態の情報処理装置１０と同様の動作が実行される。
【００９５】
一方、メモリ装置２０Ｂでは、電源供給が開始されると、情報処理装置１０のステップＳＰ１０１に対応した動作が実行され、第１記憶部２００から初期アプリケーションソフトウェアが出力される（ステップＳＰ３０１）。
【００９６】
次のステップＳＰ３０２では、情報処理装置１０のステップＳＰ１０３に対応した動作が実行され、主データの出力コマンドの発行を受けて、出力対象の主データ２０１が第１記憶部２００から出力される。
【００９７】
そして、ステップＳＰ３０３〜ステップＳＰ３０８では、情報処理装置１０のステップＳＰ１０４に対応した動作、すなわち対データの出力動作が実行される。
【００９８】
具体的には、ステップＳＰ３０３では、情報処理装置１０から発行された対データの出力コマンドが、セキュリティ部２２０の読出制御部２２１によって解析される。この出力コマンドの解析によって、出力対象の対データが特定される。
【００９９】
次のステップＳＰ３０４では、読出制御部２２１によって、対データを出力可能とする時間条件（出力時間条件）を満足しているか否かが判定される。
【０１００】
具体的には、読出制御部２２１は、まず、計時部２２２において計測されている計時時間を計時情報として取得する。また、読出制御部２２１は、出力時間条件を示す出力可能時間を出力対象の対データから取得する。そして、読出制御部２２１は、計時時間が出力可能時間を超えているか否かを判断することによって、出力時間条件を満たしているか否かを判定する。
【０１０１】
計時時間が出力可能時間を超えていない場合、すなわち出力時間条件を満たしていないと判定された場合は、情報処理装置１０から発行された対データの出力コマンドは拒否され、動作工程は、ステップＳＰ３０３に移行されることになる。
【０１０２】
一方、計時時間が出力可能時間を超えていた場合、すなわち出力時間条件を満たしていると判定された場合、動作工程は、ステップＳＰ３０５に移行される。
【０１０３】
対データに含まれている出力可能時間は、前回読み出された対データと、当該対データと対となる主データとを用いて生成されるアプリケーションソフトウェアの実行に必要となる最小の時間（実行最小時間）に設定されることが好ましい。このような出力可能時間を超えているか否かを対データの出力条件の一つとすることによれば、対データを取得するには、アプリケーションの実施が必要となるので、アプリケーションを実施することなく、メモリ装置２０Ｂに記憶されているデータだけを抜き出そうとする複製者の行為を妨げることができる。なお、上記では、出力可能時間は、アプリケーションソフトウェアの実行最小時間としていたが、これに限定されず、実行最小時間よりも短い時間であってもよい。この場合にも、メモリ装置２０Ｂに記憶されている対データを一気に抜き出そうとする複製者の行為を妨げることができる。
【０１０４】
なお、ステップＳＰ３０３で特定された出力対象の対データが、アプリケーションの進行過程において最初に出力される対データ（最初の対データ）であった場合は、計時部２２２による計時動作が未だ開始されていないため、当該対データに含まれる出力可能時間は、「ゼロ」となっている。これにより、最初の対データの出力動作では、読出制御部２２１は、出力時間条件を満足していると判定することになる。また、最初の対データに出力可能時間を含めない場合は、最初の対データの出力動作においては、ステップＳＰ３０４の動作を実行しないことにしてもよい。
【０１０５】
次のステップＳＰ３０５では、上述のステップＳＰ２０４と同様、読出制御部２２１によって、対データの出力順序が妥当（適切）か否かが判定される。
【０１０６】
ステップＳＰ３０５において、対データの出力順序が妥当でないと判断された場合、動作工程は、ステップＳＰ３０７に移行される。ステップＳＰ３０７では、上述のステップＳＰ２０６と同様、読出制御部２２１によって、対データの出力が適切に行われない。すなわち、読出制御部２２１は、出力対象の対データを出力せずに、出力対象の対データとは異なる他のデータを出力する。或いは、読出制御部２２１は、データを全く出力しない。
【０１０７】
一方、ステップＳＰ３０５において、対データの出力順序が妥当であると判断された場合、動作工程は、ステップＳＰ３０６に移行される。ステップＳＰ３０６では、上述のステップＳＰ２０５と同様、読出制御部２２１によって、対データの出力が適切に行われる。すなわち、出力対象の対データがメモリ装置２０Ｂから出力される。
【０１０８】
そして、次のステップＳＰ３０８では、読出制御部２２１から入力された対データの出力情報をトリガとして、計時部２２２によって時間の計測が開始される。
【０１０９】
ステップＳＰ３０７またはステップＳＰ３０８が終了すると、動作工程は、上記のステップＳＰ３０２に移行され、主データの出力コマンドを受けると、出力対象の主データが第１記憶部２００から出力される。ここで出力される主データは、アプリケーションの進行状況に対応した主データであり、情報処理装置１０は、新たな当該主データを取得する。
【０１１０】
以降のステップＳＰ３０３〜ステップＳＰ３０８では、上記と同様の処理が実行される。すなわち、ステップＳＰ３０３では、対データの出力コマンドが解析され、ステップＳＰ３０４では、出力時間条件が満たされているか否かが判定される。出力時間条件が満たされていない場合は、情報処理装置１０から発行された対データの出力コマンドは拒否され、動作工程は、ステップＳＰ３０３に移行される。一方、出力時間条件が満たされている場合は、動作工程は、ステップＳＰ３０５に移行される。ステップＳＰ３０５では、対データの出力順序が妥当か否かが判定される。そして、判定結果に応じた対データの出力が行われる（ステップＳＰ３０６，ステップＳＰ３０７）。対データが適切に出力された場合は、さらにステップＳＰ３０８において、前回の計時時間がリセットされ、時間の計測が新たに開始されることになる。
【０１１１】
このように、メモリ装置２０Ｂでは、アプリケーションが終了するまで、情報処理装置１０の動作に対応して、ステップＳＰ３０２からステップＳＰ３０８の各工程が繰り返し実行されることになる。
【０１１２】
以上のように、メモリ情報保護システム１Ｂのメモリ装置２０Ｂは、対データの出力要求を受けた場合に、当該対データを出力可能な時間が経過しているか否かを、対データの出力条件としている。これによれば、対データを取得するには、アプリケーションの実施が必要となるので、アプリケーションを実施することなく、メモリ装置２０Ｂに記憶されているデータだけを抜き出そうとする無断複製者の行為を妨げることができる。
【０１１３】
また、メモリ情報保護システム１Ｂは、出力時間条件を満たすか否かに用いる時間の計測を、情報処理装置１０で行わずメモリ装置２０Ｂで行うため、情報処理装置１０側の計時機能が改ざんされた場合にも、対データの取得にアプリケーションの実施を必要とするセキュリティ機能を保つことができる。
【０１１４】
なお、アプリケーションの実行途中でユーザによって動作が中止される際には、読出制御部２２１は、計時部２２２において計測中の計時時間を取得し、当該計時時間を現在の計時情報２１３として第２記憶部２１０に保存する。アプリケーションが再開された場合は、読出制御部２２１は、第２記憶部２１０に保存した計時情報２１３を取得して、計時部２２２に、計時情報２１３によって示される計時時間から時間の計測を再開させる。
【０１１５】
＜３．変形例＞
以上、この発明の実施の形態について説明したが、この発明は、上記に説明した内容に限定されるものではない。
【０１１６】
例えば、上記実施形態では、主データ２０１が第１記憶部２００に記憶されている態様を示したが、これに限定されない。図８は、変形例に係るメモリ情報保護システム１Ｃの構成を示す図である。図９は、変形例に係るメモリ情報保護システム１Ｄの構成を示す図である。
【０１１７】
具体的には、図８に示されるように、変形例に係るメモリ情報保護システム１Ｃでは、主データ２０１は、メモリ装置２０Ｃの第２記憶部２１０に記憶されている。このように、上記第１実施形態（または上記第２実施形態）のメモリ装置２０Ａ（２０Ｂ）において、第１記憶部２００に記憶されていた主データ２０１および初期アプリケーションソフトウェア等は、第２記憶部２１０に記憶しておく態様であってもよい。なお、このようなメモリ情報保護システム１Ｃでは、記憶手段は、第２記憶部２１０のみとなる。
【０１１８】
また、図９に示されるように、変形例に係るメモリ情報保護システム１Ｄでは、主データ２０１は、メモリ装置２０Ｄ以外の外部の記憶装置に記憶されている。このように、上記第１実施形態（または上記第２実施形態）のメモリ装置２０Ａ（２０Ｂ）において、第１記憶部２００に記憶されていた主データ２０１および初期アプリケーションソフトウェア等は、メモリ装置２０Ｄ以外の外部の記憶装置に記憶しておく態様であってもよい。なお、メモリ情報保護システム１Ｄでは、記憶手段は、第２記憶部２１０のみとなる。
【０１１９】
この場合、情報処理装置１０は、ネットワークを介して主データおよび初期アプリケーションソフトウェアを取得することになる。例えば、記憶装置がサーバである場合は、情報処理装置１０は、インターネットを介して初期アプリケーションソフトウェアおよび所望の主データをダウンロードする。
【０１２０】
また、上記実施形態におけるセキュリティ部２２０の動作は、ＲＯＭおよびＲＡＭ等が接続されたＣＰＵにおいて所定のプログラムを実行して実現される態様であってもよく、或いは、論理回路を用いてハードウェアとして実現される態様であってもよい。
【符号の説明】
【０１２１】
１Ａ，１Ｂ，１Ｃ，１Ｄ  メモリ情報保護システム
１０  情報処理装置
２０Ａ，２０Ｂ，２０Ｃ，２０Ｄ  メモリ装置
１００  制御部
１０１  実行制御部
１０２  主データ取得部
１０３  対データ取得部
１０４  ソフトウェア生成部
２００  第１記憶部
２０１  主データ
２１０  第２記憶部
２１１  対データ
２１２  出力順序情報
２１３  計時情報
２２０  セキュリティ部
２２１  読出制御部
２２２  計時部
ＰＡ，ＰＢ，ＰＥ  ゲームプログラム
【図１】
2013003894.tif 000003
【図２】
2013003894.tif 000004
【図３】
2013003894.tif 000005
【図４】
2013003894.tif 000006
【図５】
2013003894.tif 000007
【図６】
2013003894.tif 000008
【図７】
2013003894.tif 000009
【図８】
2013003894.tif 000010
【図９】
2013003894.tif 000011