説明

メモリシステムおよびメモリ装置、並びに、メモリシステムの動作方法およびメモリ装置の動作方法

【課題】アプリケーションの無断実施を困難にすることが可能な技術を提供する。
【解決手段】メモリ装置20は、情報処理装置10において実施されるアプリケーションの進行状況を示す状態情報211と、状態情報211に対応した対応アプリケーションソフトウェア(対応ソフトウェア)を含むアプリケーションソフトウェア201と、状態情報211の変更を許可する許可条件を含む状態遷移情報212とを記憶する記憶手段と、状態遷移情報212に基づいて状態情報211の変更を制御する状態制御部222とを備える。状態制御部222は、情報処理装置10からの状態遷移指示が妥当か否かに応じて、状態情報211の変更を適切に或いは不適切に行う。情報処理装置10は、メモリ装置20から取得した状態情報211に基づいて、対応ソフトウェアをメモリ装置20から読み出し、対応ソフトウェアを実行することによって、アプリケーションを継続実施する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報の保護技術に関する。
【背景技術】
【0002】
アプリケーションソフトウェアを記憶したメモリ装置を情報処理装置に装着し、当該情報処理装置において、メモリ装置に記憶されたアプリケーションソフトウェアを実行して所定の機能を実現する技術が知られている。
【0003】
このようなメモリ装置においては、アプリケーションソフトウェアの実行を困難にするために、セキュリティ機能が搭載されている。例えば、特許文献1では、アプリケーションソフトウェアが暗号化された状態でメモリ装置に記憶され、情報処理装置は、当該アプリケーションソフトウェアを解読するための鍵データを取得することなく、アプリケーションソフトウェアを実行することができないように構成されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−258850号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、上記特許文献1では、暗号化されたアプリケーションソフトウェアに対応する鍵データが特定された場合には、アプリケーションソフトウェアの実行が可能になり、アプリケーションを許可無く無断で実施される可能性があった。
【0006】
そこで、本発明は、アプリケーションの無断実施を困難にすることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係るメモリシステムの第1の態様は、アプリケーションソフトウェアを実行する情報処理装置と、記憶した情報を前記情報処理装置に供給するメモリ装置とを備え、前記メモリ装置は、前記情報処理装置において実施されるアプリケーションの進行状況を示す状態情報と、前記状態情報に対応した対応アプリケーションソフトウェアを含む前記アプリケーションソフトウェアと、前記状態情報の変更を許可する許可条件を示す状態遷移許可情報を含む状態遷移情報とを記憶する記憶手段と、前記状態遷移情報に基づいて前記状態情報の変更を制御する状態制御手段とを有し、前記情報処理装置は、前記メモリ装置から前記状態情報を取得する状態情報取得手段と、取得した状態情報に対応した対応アプリケーションソフトウェアを取得するデータ取得手段と、前記対応アプリケーションソフトウェアを前記情報処理装置に実行させて、前記アプリケーションを継続実施させる実行制御手段と、前記状態情報の遷移を指示する状態遷移指示を、前記アプリケーションの進行に応じて発行する指示発行手段とを有し、前記状態制御手段は、前記情報処理装置から入力される前記状態遷移指示が妥当か否かを判断し、前記状態遷移指示が妥当であった場合、前記メモリ装置内の状態情報の変更を適切に行い、前記状態遷移指示が妥当でなかった場合、前記メモリ装置内の状態情報の変更を適切に行わない。
【0008】
また、本発明に係るメモリシステムの第2の態様は、上記第1の態様であって、前記状態遷移情報には、前記許可条件を満たしたときの状態情報の遷移先に関する遷移先情報が含まれ、前記状態制御手段は、前記状態遷移指示が妥当であった場合、前記遷移先情報を反映させて前記状態情報の変更を行う。
【0009】
また、本発明に係るメモリシステムの第3の態様は、上記第1の態様または上記第2の態様であって、前記状態遷移許可情報は、前記状態情報の変更を許可するときの、状態遷移指示と状態情報とを組み合わせた情報であり、前記状態制御手段は、前記情報処理装置から入力される状態遷移指示と、前記記憶手段に記憶された状態情報とが、前記状態遷移許可情報に適合するか否かに基づいて、前記情報処理装置から入力される状態遷移指示の妥当性を判断する。
【0010】
また、本発明に係るメモリシステムの第4の態様は、上記第1の態様または上記第2の態様であって、前記状態遷移許可情報は、前記状態情報の変更を許可するときの、状態遷移指示に関する情報であり、前記状態制御手段は、前記情報処理装置から入力される状態遷移指示が、前記状態遷移許可情報に適合するか否かに基づいて、前記情報処理装置から入力される状態遷移指示の妥当性を判断する。
【0011】
また、本発明に係るメモリシステムの第5の態様は、上記第1の態様から上記第4の態様のいずれかであって、前記メモリ装置の前記記憶手段は、状態情報に対応した対応アプリケーションソフトウェアを含む前記アプリケーションソフトウェアをさらに記憶し、前記情報処理装置の前記データ取得手段は、前記メモリ装置から取得した状態情報に基づいて、対応アプリケーションソフトウェアを前記メモリ装置から読み出す。
【0012】
また、本発明に係るメモリシステムの第6の態様は、上記第5の態様であって、前記記憶手段は、第1記憶手段と第2記憶手段とを有し、前記第1記憶手段は、前記アプリケーションソフトウェアを記憶し、前記第2記憶手段は、前記状態情報および前記状態遷移情報を記憶する。
【0013】
また、本発明に係るメモリ装置の第1の態様は、記憶した情報を、アプリケーションソフトウェアを実行する情報処理装置に供給するメモリ装置であって、前記情報処理装置において実施されるアプリケーションの進行状況を示す状態情報と、前記状態情報に対応した対応アプリケーションソフトウェアを含む前記アプリケーションソフトウェアと、前記状態情報の変更を許可する許可条件を示す状態遷移許可情報を含む状態遷移情報とを記憶する記憶手段と、前記状態遷移情報に基づいて前記状態情報の変更を制御する状態制御手段とを備え、前記状態制御手段は、前記情報処理装置から入力される、前記メモリ装置内の状態情報の遷移を指示するための状態遷移指示が妥当か否かを判断し、前記状態遷移指示が妥当であった場合、前記メモリ装置内の状態情報の変更を適切に行い、前記状態遷移指示が妥当でなかった場合、前記メモリ装置内の状態情報の変更を適切に行わず、前記情報処理装置は、前記メモリ装置から取得した状態情報に基づいて、当該状態情報に対応した対応アプリケーションソフトウェアを取得し、当該対応アプリケーションソフトウェアを実行することによって、前記アプリケーションを継続実施する。
【0014】
また、本発明に係るメモリ装置の第2の態様は、上記メモリ装置の第1の態様であって、前記状態遷移情報には、前記許可条件を満たしたときの状態情報の遷移先に関する遷移先情報が含まれ、前記状態制御手段は、前記状態遷移指示が妥当であった場合、前記遷移先情報を反映させて前記状態情報の変更を行う。
【0015】
また、本発明に係るメモリ装置の第3の態様は、上記メモリ装置の第1の態様または第2の態様であって、前記記憶手段は、状態情報に対応した対応アプリケーションソフトウェアを含む前記アプリケーションソフトウェアをさらに記憶し、前記情報処理装置は、前記メモリ装置から取得した状態情報に基づいて、対応アプリケーションソフトウェアを前記メモリ装置から読み出す。
【0016】
また、本発明に係るメモリシステムの動作方法は、アプリケーションソフトウェアを実行する情報処理装置と、前記情報処理装置において実施されるアプリケーションの進行状況を示す状態情報、および前記状態情報の変更を許可する許可条件を示す状態遷移許可情報を含む状態遷移情報を記憶するメモリ装置とを含むメモリシステムの動作方法であって、a)前記情報処理装置から入力される、前記メモリ装置内の状態情報の遷移を指示するための状態遷移指示が妥当か否かを、前記状態遷移情報に基づいて判断する工程と、b)前記状態遷移指示が妥当であった場合、前記メモリ装置内の状態情報の変更を適切に行い、前記状態遷移指示が妥当でなかった場合、前記メモリ装置内の状態情報の変更を適切に行わない工程と、c)前記b)工程の実行後に、前記メモリ装置内の状態情報を前記情報処理装置に出力する工程と、d)前記c)工程で出力された状態情報に基づいて、当該状態情報に対応した対応アプリケーションソフトウェアを前記情報処理装置において取得する工程と、e)前記情報処理装置において、前記対応アプリケーションソフトウェアを実行することによって、前記アプリケーションを継続実施する工程とを備える。
【0017】
また、本発明に係るメモリ装置の動作方法は、アプリケーションソフトウェアの実行に応じて情報処理装置において実施されるアプリケーションの進行状況を示す状態情報と、前記状態情報の変更を許可する許可条件を示す状態遷移許可情報を含む状態遷移情報とを記憶するメモリ装置の動作方法であって、a)前記情報処理装置から入力される、前記メモリ装置内の状態情報の遷移を指示するための状態遷移指示が妥当か否かを、前記状態遷移情報に基づいて判断する工程と、b)前記状態遷移指示が妥当であった場合、前記メモリ装置内の状態情報の変更を適切に行い、前記状態遷移指示が妥当でなかった場合、前記メモリ装置内の状態情報の変更を適切に行わない工程と、c)前記b)工程の実行後に、前記メモリ装置内の状態情報を前記情報処理装置に出力する工程とを備える。
【発明の効果】
【0018】
本発明によれば、アプリケーションの無断実施を困難にすることが可能になる。
【図面の簡単な説明】
【0019】
【図1】メモリ情報保護システムの外観構成を示す図である。
【図2】ゲームシステムとして動作するメモリ情報保護システムの動作概要を示す図である。
【図3】本実施形態に係るメモリ情報保護システムの機能構成を示すブロック図である。
【図4】状態遷移情報を示す図である。
【図5】メモリ情報保護システムの動作を示すフローチャートである。
【図6】状態情報と対応アプリケーションソフトウェアとの対応関係を表すデータを示す図である。
【図7】変形例に係るメモリ情報保護システムの構成を示す図である。
【図8】変形例に係るメモリ情報保護システムの構成を示す図である。
【図9】変形例に係る状態遷移情報を示す図である。
【図10】変形例に係る状態遷移情報を示す図である。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態について図面を参照して説明する。なお、異なる図面において同一の符号を付した要素は、同一または相応する要素を示すものとする。
【0021】
<1.実施形態>
[1−1.構成概要]
図1は、メモリ情報保護システム(単に「メモリシステム」とも称する)1Aの外観構成を示す図である。
【0022】
図1に示されるように、メモリ情報保護システム1は、情報処理装置10とメモリ装置20とを有している。
【0023】
メモリ装置20は、所定のアプリケーションをコンピュータ上で実施するためのアプリケーションソフトウェア(アプリケーションプログラム)を記憶(格納)している。このメモリ装置20は、例えばカードまたはカートリッジのような態様を有し、情報処理装置10に脱着自在に構成されている。
【0024】
情報処理装置10は、装着されたメモリ装置20からアプリケーションソフトウェアを読み出し、当該アプリケーションソフトウェアを実行する。このような情報処理装置10には、例えば、パーソナルコンピュータ(パソコン)、PDA(Personal Digital Assistant)のような情報端末装置が含まれる。また、メモリ装置20に記憶されたアプリケーションソフトウェアがゲームプログラムである場合は、情報処理装置10は、据置型ゲーム機または携帯ゲーム機等のゲーム装置本体として機能する。
【0025】
ここで、メモリ装置20にアプリケーションソフトウェアとしてゲームプログラムが記憶され、情報処理装置10が、当該ゲームプログラムを実行するゲーム装置本体として機能する場合を一例にして、メモリ情報保護システム1の動作概要を説明する。図2は、ゲームシステムとして動作するメモリ情報保護システム1の動作概要を示す図である。
【0026】
図2に示されるように、メモリ情報保護システム1は、ゲームの進行に応じて変化するゲームの状態を状態情報として管理しつつ、ゲームを進行させる。
【0027】
具体的には、メモリ情報保護システム1は、ゲームの進行に応じてゲームの状態が変化すると、ゲームの状態情報を変化させる。例えば、図2では、ゲームの状態情報が「JD1」→「JD2」→「JD3」へと順番に変化させられている。そして、メモリ情報保護システム1では、ゲームの状態情報に対応したゲームプログラム(対応ゲームプログラム)を読み出して実行することによって、ゲームの継続した実施が可能になる。例えば、図2では、状態情報が「JD1」のときは、対応ゲームプログラムPG1が実行され、状態情報が「JD2」のときは、対応ゲームプログラムPG2が実行され、状態情報が「JD3」のときは、対応ゲームプログラムPG3が実行される態様が示されている。
【0028】
このようなメモリ情報保護システム1では、状態情報を変更(更新)する際に、状態情報の変更を可能か否かが判断される。状態情報の変更が可能と判断された場合は、状態情報は適切に変更されて、ゲームを継続して実施することが可能になる。一方、状態情報の変更が不可能と判断された場合は、状態情報は適切に変更されない。状態情報の変更が不可能と判断される場合とは、例えば、メモリ装置20内のゲームプログラムを、不正に複製して得られたゲームプログラムを用いてゲームを実施した場合である。このような場合は、状態情報が適切に変更されないため、ゲームの進行状況に応じた対応ゲームプログラムを取得できなくなるので、ゲームの継続実施が不可能になる。
【0029】
このように、メモリ情報保護システム1では、ゲームの進行に沿って状態情報が適切に変更されない場合、ゲームの進行に沿った適切な対応ゲームプログラムを取得できなくなり、ゲームの継続実施が制限されることになる。
【0030】
なお、ゲームの状態としては、ゲームの進行状況を普遍的に示すような逆行しない指標を用いることが好ましい。具体的には、アクションゲームにおけるクリアステージ、アドベンチャーゲームにおける獲得アイテム、ロールプレイングゲーム(RPG)においては倒したボスキャラ等を挙げることができる。ゲームの状態として用いられるアドベンチャーゲームの獲得アイテムは、取捨が頻繁に行われる一般的なアイテムではなく、物語の進行上、必須となる重要なアイテムである。
【0031】
ゲームプログラムをアプリケーションソフトウェアとしてみた場合、ゲームの進行に応じて変化するゲームの状態は、アプリケーションの進行に応じて変化するアプリケーションの状態とも称される。また、メモリ情報保護システム1において管理される、アプリケーションの状態を示す状態情報は、アプリケーションの進行状況を示す情報であると表現できる。
【0032】
[1−2.機能ブロック]
次に、メモリ情報保護システム1の機能構成について詳述する。図3は、本実施形態に係るメモリ情報保護システム1の機能構成を示すブロック図である。図4は、状態遷移情報212を示す図である。
【0033】
図3に示されるように、メモリ情報保護システム1を構成する情報処理装置10は、制御部100を備えている。
【0034】
制御部100は、マイクロコンピュータとして構成され、主にCPU、RAMおよびROM等(いずれも不図示)を備えている。
【0035】
制御部100は、ROMに格納されたプログラムを読み出し、当該プログラムをCPUで実行することによって、各種機能を実現する。
【0036】
具体的には、制御部100は、ROMに格納されたプログラムの実行によって、実行制御部101を機能的に実現する。
【0037】
実行制御部101は、メモリ装置20から読み出されたアプリケーションソフトウェアをCPUで実行させる。また、実行制御部101は、アプリケーションを起動する(立ち上げる)際には、起動用の初期アプリケーションソフトウェアをメモリ装置20から読み出して、当該初期アプリケーションソフトウェアをCPUに実行させ、アプリケーションを開始させる。
【0038】
また、制御部100では、実行制御部101の制御に従い、アプリケーションソフトウェアをCPUで実行することによって、状態情報取得部102、データ取得部103および遷移指示発行部104が機能的に実現されることになる。
【0039】
状態情報取得部102は、メモリ装置20に記憶されている、アプリケーションの進行状況を示す状態情報211を読み出して、取得する機能を有している。具体的には、状態情報取得部102は、状態情報211を取得するための状態情報取得コマンドをメモリ装置20に対して発行することによって、メモリ装置20から現在の状態情報211を取得する。
【0040】
データ取得部103は、メモリ装置20から取得された現在の状態情報211に基づいて、アプリケーションの進行状況に対応したアプリケーションソフトウェア(対応アプリケーションソフトウェア)を、メモリ装置20から取得する機能を有している。データ取得部103によって取得された対応アプリケーションソフトウェアは、実行制御部101の制御に従って、CPUで実行されることになる。
【0041】
遷移指示発行部104は、メモリ装置20に記憶されている現在の状態情報211を、遷移(変更)させるための状態遷移指示をメモリ装置20に対して発行する機能を有している。状態遷移指示としては、状態情報211を変更させる直接的な命令(状態遷移命令)であってもよく、複数の命令を組み合わせたものであってもよい。複数の命令を組み合わせたものとしては、例えば、一定時間内に連続して発行される複数回の所定コマンド(例えば、読出コマンド)を挙げることができる。
【0042】
このような構成を有する情報処理装置10では、アプリケーションの進行に応じて状態情報211が変更されると、新たな状態情報に基づいた、対応アプリケーションソフトウェアが取得され、実行されることになる。
【0043】
一方、メモリ情報保護システム1を構成するメモリ装置20は、記憶手段としての第1記憶部200および第2記憶部210と、セキュリティ制御部220とを備えている。
【0044】
第1記憶部200は、マスクROMのような不揮発性の記憶部であって、機密保護の対象となるアプリケーションソフトウェア201およびデータ等を記憶している。第1記憶部200は、情報処理装置10から読出コマンドを受けて、当該読出コマンドの読出対象となるアプリケーションソフトウェアを出力する。なお、当該第1記憶部200は、マスクROMに限定されず、フラッシュメモリ、EP−ROMまたはハードディスク(HD)等であってもよい。
【0045】
第2記憶部210は、フラッシュメモリのような書き換え可能な不揮発性の記憶部であって、状態情報211および状態遷移情報212を記憶している。状態情報211は、上述の通り、アプリケーションの進行状況を示す情報であり、第2記憶部210は、セキュリティ制御部220の制御に従って、当該状態情報211の読み出しおよび書き換えを行う。状態遷移情報212は、状態情報211を変更する際に用いられる情報であり、当該状態遷移情報212には、状態情報211の変更を許可する許可条件を示す状態遷移許可情報と、当該許可条件を満たしたときの状態情報211の遷移先(変更先)を示す遷移先情報とが含まれる。
【0046】
セキュリティ制御部220は、指示解析部221と状態制御部222とを有し、第2記憶部210に記憶された状態情報211の管理を行う。
【0047】
具体的には、指示解析部221は、情報処理装置10から入力されるコマンドおよび指示を解析して、コマンドまたは指示に応じた所定動作の実行指示を行う。例えば、情報処理装置10から状態情報取得コマンドが入力された場合は、指示解析部221は、第2記憶部210から現在の状態情報211を読み出して、当該状態情報211を情報処理装置10に出力する。また、情報処理装置10から状態遷移指示が入力された場合は、指示解析部221は、当該状態遷移指示を状態制御部222に出力する。
【0048】
状態制御部222は、状態遷移指示が入力された場合、第2記憶部210に記憶された状態遷移情報212に基づいて、状態情報211の変更を制御する。
【0049】
具体的には、状態制御部222は、入力された状態遷移指示が妥当なものであるか否かを、状態遷移情報212に含まれる状態遷移許可情報を参照して判断する。状態遷移情報212は、例えば、図4に示されるようなテーブル形式の情報であり、状態遷移指示と現在の状態情報211とを組み合わせた情報が、状態遷移許可情報BFとして含まれている。また、状態遷移情報212には、遷移先となる次の状態情報も遷移先情報NFとして含まれている。
【0050】
状態制御部222は、情報処理装置10から入力された状態遷移指示と、第2記憶部210に記憶された現在の状態情報211との組み合わせが、状態遷移許可情報BFに含まれるいずれかの許可条件に適合するか否かを判定する。そして、入力された状態遷移指示と現在の状態情報211との組み合わせが、状態遷移許可情報BFに含まれるいずれかの許可条件に適合する場合は、状態制御部222は、状態情報211の変更を適切に行うように制御する。これに対して、入力された状態遷移指示と現在の状態情報211との組み合わせが、状態遷移許可情報BFに含まれるいずれの許可条件にも適合しない場合(不適合の場合)は、状態制御部222は、状態情報211の変更を適切に行わないように制御する。
【0051】
例えば、情報処理装置10から入力された状態遷移指示が「COM1」であり、現在の状態情報211が「JD1」であった場合、状態遷移指示「COM1」と現在の状態情報「JD1」との組み合わせは、許可条件KR1に適合するため、状態制御部222は、遷移先情報NFを反映して状態情報211を適切に変更させる。すなわち、この場合、状態制御部222は、状態情報211を「JD1」から「JD2」へと変更させるために、第2記憶部210に記憶された状態情報211を書き換える。
【0052】
これに対して、例えば、情報処理装置10から入力された状態遷移指示が「COM1」であり、現在の状態情報211が「JD2」であった場合、状態遷移指示「COM1」と現在の状態情報「JD2」との組み合わせがいずれの許可条件にも適合しないため、状態制御部222は、状態情報211の変更を適切に行わないように制御する。ここで、状態情報211の変更を適切に行わない態様としては、例えば、現在の状態情報211を遷移先として存在しない不適切な状態情報(例えば、状態情報「JD6」)に変更する態様、現在の状態情報211を当該状態情報からは遷移し得ない不適切な状態情報(例えば、状態情報「JD1」、「JD3」、「JD4」、「JD5」)に変更する態様、および現在の状態情報211を変更しない態様が考えられる。このように状態情報211の変更を適切に行わない態様は、種々存在するが、逆アセンブルによる解析を困難にするためには、何を行ったのか分かりにくい態様を選択することが好ましい。
【0053】
このように、状態情報211の変更が適切に行われなかった場合は、アプリケーションの進行に沿わない不適切な状態情報211が第2記憶部210に記憶されることになり、情報処理装置10は、アプリケーションの進行に沿った適切な状態情報211を取得することができなくなる。メモリ情報保護システム1では、現在の状態情報211に基づいてアプリケーションの進行に必要な対応アプリケーションソフトウェアを取得する構成であるため、情報処理装置10が適切な状態情報211を取得できなかった場合、情報処理装置10は、アプリケーションの進行に沿った対応アプリケーションソフトウェアを適切に取得することができないことになる。すなわち、メモリ情報保護システム1は、状態情報211の更新が適切に行えなかった場合、アプリケーションの継続実施を不可能にすることによって、アプリケーションの無断実施を困難にしている。
【0054】
また、メモリ装置20を不正に複製しようと試みる複製者は、状態遷移情報212を取得できない限り、状態情報211の遷移先を特定することができないため、アプリケーションソフトウェアを複製できたとしても、アプリケーションの継続実施を実現することができない。本実施形態のメモリ情報保護システム1では、状態遷移情報212は、メモリ装置20の内部で使用されるのみで、メモリ装置20の外部には出力されない構成であるため、複製者は、当該状態遷移情報212を取得するのが困難であり、メモリ装置20を容易に複製することができない。
【0055】
特に、状態遷移情報212に含まれる遷移先情報NFは、アプリケーションソフトウェアを逆アセンブルによって解析しても特定できない情報であり、このような情報NFを含む状態遷移情報212は、容易に特定することができないと言える。
【0056】
なお、従来のゲームシステムでは、ゲームプログラムを記憶するメモリ装置およびゲーム装置本体のうちいずれか一方、或いはシステム全体には、セキュリティ機能が付与されているが、メモリ情報保護システム1のメモリ情報保護技術は、このような一般的なセキュリティ機能と併用することができる。そして、当該一般的なセキュリティ機能が破られた場合においても、本実施形態のメモリ情報保護技術は有効に機能し、アプリケーションソフトウェアが複製されたとしても、アプリケーションの継続実施を制限することができる。
【0057】
また、状態遷移情報212の取得を困難にするため、メモリ装置20においては、第2記憶部210とセキュリティ制御部220とは、単一の半導体集積回路230で一体的に構成されていることが好ましい。第2記憶部210とセキュリティ制御部220とを含む単一の半導体集積回路230は、「セッキュリティチップ」とも称される。
【0058】
[1−3.メモリ情報保護システム1の動作]
次に、メモリ情報保護システム1の動作について説明する。図5は、メモリ情報保護システム1の動作を示すフローチャートである。図5では、左側に情報処理装置10の動作を示すフローチャート、右側にメモリ装置20の動作を示すフローチャートがそれぞれ示されている。図6は、状態情報211と対応アプリケーションソフトウェアとの対応関係を表すデータを示す図である。
【0059】
メモリ情報保護システム1の動作開始前には、メモリ装置20が情報処理装置10に装着されて、それぞれのインターフェース(いずれも不図示)が電気的に接続される。そして、情報処理装置10の電源投入に応じて、情報処理装置10が起動されるとともに、電源がメモリ装置20に供給されて、システムとしての動作が開始される。
【0060】
図5に示されるように、情報処理装置10では、電源が投入されると、実行制御部101によって、初期アプリケーションソフトウェアがメモリ装置20から読み出される(ステップSP101)。
【0061】
ステップSP102では、実行制御部101が、初期アプリケーションソフトウェアをCPUに実行させ、アプリケーションが開始される。
【0062】
ステップSP103では、状態情報取得部102によって、メモリ装置20に記憶されている現在の状態情報211が取得される。なお、起動後に最初に取得される状態情報211は、前回、アプリケーションを実行し、当該アプリケーションを終了した時点のアプリケーションの進行状況を示す情報である。また、起動時に最初に実行される状態情報211の取得動作は、初期アプリケーションソフトウェアに組み込まれた、状態情報取得命令に基づく動作である。
【0063】
ステップSP104では、データ取得部103によって、現在の状態情報211が示すアプリケーションの進行状況に対応した対応アプリケーションソフトウェアがメモリ装置20から取得される。状態情報211を用いた対応アプリケーションソフトウェアの特定は、例えば、状態情報211と対応アプリケーションソフトウェアとの対応関係を示すデータを用いて行うことができる。状態情報211と対応アプリケーションソフトウェアとの対応関係を示すデータは、図6に示されるようなテーブル形式のデータDT1であってもよく、このようなデータDT1は、初期アプリケーションソフトウェアの読み出しと同時に、メモリ装置20から取得され、情報処理装置10のRAMに格納されている。なお、図6では、理解を容易にするために、状態情報を示す符号と対応アプリケーションソフトウェアを示す符号とをそれぞれ昇順に羅列したが、実際のデータでは、対応アプリケーションソフトウェアの実行順序を特定できないような配慮が施されている。
【0064】
次のステップSP105では、メモリ装置20から取得された対応アプリケーションソフトウェアが実行制御部101の制御に従って、CPUで実行される。
【0065】
対応アプリケーションソフトウェアの実行中に、情報処理装置10の動作を終了させる終了動作が実行された場合は、情報処理装置10の動作は終了する(ステップSP106)。
【0066】
一方、情報処理装置10の動作が継続され、ユーザの操作等によってアプリケーションが進行し、アプリケーションの状態が変化すると、動作工程は、ステップSP107に移行される。
【0067】
そして、ステップSP107では、状態情報211を変更するための状態遷移指示が、遷移指示発行部104によって発行される。
【0068】
なお、ステップSP107において実行される状態遷移指示の発行動作は、対応アプリケーションソフトウェアに組み込まれた、状態遷移命令に基づく動作である。すなわち、対応アプリケーションソフトウェアは、アプリケーションの状態が変化したときに、状態遷移命令を発行するように構成されている。
【0069】
ステップSP107が終了すると、動作工程は、上記のステップSP103に移行され、メモリ装置20に記憶されている現在の状態情報211が取得される。ここで取得される状態情報211は、ステップSP107において発行された状態遷移指示に基づいて、メモリ装置20において変更された状態情報211である。
【0070】
そして、ステップSP103において新たな状態情報211が取得されると、動作工程は、ステップSP104に移行され、当該新たな状態情報211を用いて、新たな対応アプリケーションソフトウェアが取得される。
【0071】
このように、情報処理装置10では、状態情報211が適切に変更された場合、情報処理装置10の動作が終了するまで、或いは、アプリケーションが終了するまで、ステップSP103からステップSP107の各工程が繰り返し実行されることになる。
【0072】
一方、メモリ装置20では、電源供給が開始されると、情報処理装置10のステップSP101に対応した動作が実行され、第1記憶部200から初期アプリケーションソフトウェアが出力される(ステップSP201)。
【0073】
次のステップSP202では、情報処理装置10のステップSP103に対応した動作が実行され、指示解析部221の制御によって、第2記憶部210から現在の状態情報211が出力される。
【0074】
ステップSP203では、情報処理装置10のステップSP104に対応した動作が実行され、情報処理装置10からの対応アプリケーションソフトウェアの取得要求に応じて、第1記憶部200から対応アプリケーションソフトウェアが出力される。
【0075】
そして、ステップSP204では、情報処理装置10のステップSP107に対応した動作が実行され、状態制御部222によって、状態遷移指示の妥当性が判断される。
【0076】
ステップSP204において、状態遷移指示が妥当であると判断された場合、動作工程は、ステップSP205に移行される。ステップSP205では、状態制御部222によって、状態情報211の変更が適切に行われる。
【0077】
一方、ステップSP204において、状態遷移指示が妥当でないと判断された場合、動作工程は、ステップSP206に移行される。ステップSP206では、状態制御部222によって、状態情報211の変更が適切に行われない。
【0078】
ステップSP205またはステップSP206が終了すると、動作工程は、上記のステップSP202に移行され、第2記憶部210から現在の状態情報211が出力される。ここで出力される状態情報211は、ステップSP205またはステップSP206において変更された状態情報211であり、情報処理装置10は、新たな状態情報211を取得する。
【0079】
そして、メモリ装置20では、情報処理装置10の動作に対応して、ステップSP202からステップSP206の各工程が繰り返し実行されることになる。
【0080】
以上のように、メモリ情報保護システム1は、アプリケーションソフトウェア201を実行する情報処理装置10と、記憶した情報を情報処理装置10に供給するメモリ装置20とを備えている。そして、メモリ装置20は、情報処理装置10において実施されるアプリケーションの進行状況を示す状態情報211と、状態情報211に対応した対応アプリケーションソフトウェアを含むアプリケーションソフトウェア201と、状態情報211の変更を許可する許可条件を示す状態遷移許可情報BFを含む状態遷移情報212とを記憶する記憶手段と、状態遷移情報212に基づいて状態情報211の変更を制御する状態制御部222とを有している。また、情報処理装置10は、メモリ装置20から状態情報211を取得する状態情報取得部102と、取得した状態情報211に対応した対応アプリケーションソフトウェアを取得するデータ取得部103と、対応アプリケーションソフトウェアを情報処理装置10に実行させて、アプリケーションを継続実施させる実行制御部101と、状態情報211の遷移を指示する状態遷移指示を、アプリケーションの進行に応じて発行する遷移指示発行部104とを有している。さらに、メモリ装置20の状態制御部222は、情報処理装置10から入力される状態遷移指示が妥当か否かを判断し、状態遷移指示が妥当であった場合、メモリ装置20内の状態情報211の変更を適切に行い、状態遷移指示が妥当でなかった場合、メモリ装置20内の状態情報の変更を適切に行わないように制御する。
【0081】
このようなメモリ情報保護システム1によれば、状態情報211の更新が適切に行えなかった場合、アプリケーションの継続実施が不可能になるので、アプリケーションの無断実施が困難になる。
【0082】
また、このようなメモリ情報保護システム1では、状態遷移情報212は、メモリ装置20の内部で使用されるのみで、メモリ装置20の外部には出力されない構成であるため、複製者は、当該状態遷移情報212を取得するのが困難であり、メモリ装置20を容易に複製することができない。
【0083】
また、メモリ情報保護システム1の状態遷移情報212には、許可条件を満たしたときの状態情報211の遷移先を示す遷移先情報NFが含まれ、状態制御部222は、状態遷移指示が妥当であった場合、遷移先情報NFを反映させて状態情報211の変更を行う。
【0084】
状態遷移情報212に含まれる遷移先情報NFは、アプリケーションソフトウェアを逆アセンブルによって解析しても特定できない情報であるため、このような情報NFを反映させて状態情報211の変更を行うメモリ情報保護システム1では、メモリ装置20の複製はより一層困難となる。
【0085】
<2.変形例>
以上、この発明の実施の形態について説明したが、この発明は、上記に説明した内容に限定されるものではない。
【0086】
例えば、上記実施形態では、アプリケーションソフトウェアが第1記憶部200に記憶されている態様を示したが、これに限定されない。図7は、変形例に係るメモリ情報保護システム1Aの構成を示す図である。
【0087】
具体的には、図7に示されるように、変形例に係るメモリ情報保護システム1Aでは、アプリケーションソフトウェア201は、メモリ装置20Aの第2記憶部210に記憶されている。このように、上記実施形態のメモリ装置20において、第1記憶部200に記憶されていたアプリケーションソフトウェア201およびデータ等は、第2記憶部210に記憶しておく態様であってもよい。なお、メモリ情報保護システム1Aでは、記憶手段は、第2記憶部210のみとなる。
【0088】
また、図8に示されるように、変形例に係るメモリ情報保護システム1Bでは、アプリケーションソフトウェア201は、メモリ装置20B以外の外部の記憶装置に記憶されている。このように、上記実施形態のメモリ装置20において、第1記憶部200に記憶されていたアプリケーションソフトウェア201およびデータ等は、メモリ装置20B以外の外部の記憶装置に記憶しておく態様であってもよい。なお、メモリ情報保護システム1Bでは、記憶手段は、第2記憶部210のみとなる。
【0089】
この場合、情報処理装置10は、ネットワークを介してアプリケーションソフトウェア(対応アプリケーションソフトウェアを含む)を取得することになる。例えば、記憶装置がサーバである場合は、情報処理装置10は、インターネットを介して所望のアプリケーションソフトウェアをダウンロードする。
【0090】
また、上記実施形態では、状態遷移情報212として、図4に示される情報を例示したが、これに限定されない。図9および図10は、変形例に係る状態遷移情報212を示す図である。
【0091】
状態遷移情報212は、例えば、図9に示されるような情報であってもよい。図9に示される状態遷移情報212Aでは、1つの状態遷移指示「COM2」に対して2通りの遷移先「JD3」、「JD4」が存在する。また、状態遷移情報212Aでは、状態遷移指示の種類によっては、1つの状態情報「JD1」から、2通りの遷移先「JD2」、「JD3」に遷移可能となっている。
【0092】
このように、状態情報211の遷移パターンを複雑化することによれば、逆アセンブルによる解析をより困難にすることができる。
【0093】
また、状態遷移情報212は、例えば、図10に示されるような情報であってもよい。図10に示される状態遷移情報212Bでは、状態遷移指示に関する情報のみが、状態遷移許可情報BFとして含まれている。
【0094】
このような状態遷移情報212Bを用いた場合は、メモリ装置20(20A,20B)内の状態制御部222は、情報処理装置10から入力された状態遷移指示が、状態遷移許可情報BFに含まれるいずれかの許可条件(ここでは、状態遷移指示)に適合するか否かを判定する。そして、入力された状態遷移指示が、状態遷移許可情報BFに含まれるいずれかの許可条件に適合する場合は、状態制御部222は、状態情報211の変更を適切に行うように制御する。これに対して、入力された状態遷移指示が、状態遷移許可情報BFに含まれるいずれの許可条件にも適合しない場合(不適合の場合)は、状態制御部222は、状態情報211の変更を適切に行わないように制御する。
【0095】
このように、状態情報211の変更を行うときの許可条件を緩和すれば、状態遷移情報212の情報量を減らすことができるとともに、より簡単な実装を実現することができる。
【0096】
なお、状態遷移情報212としては、図4、図9、および図10に含まれる各思想を組み合わせたものであってもよい。すなわち、例えば、状態遷移情報212は、状態遷移指示のみを許可条件とする状態遷移許可情報BF、および状態遷移指示と現在の状態情報211との組み合わせを許可条件とする状態遷移許可情報BFの両方を含む態様であってもよい。
【0097】
また、上記実施形態では、状態情報211を遷移させるための状態遷移指示として、直接的な状態遷移命令、および複数の任意の命令を組み合わせたものを例示したが、これに限定されない。
【0098】
具体的には、アプリケーションの実行中に発生したイベント情報を状態遷移指示として用いてもよい。例えば、獲得アイテムをゲームの状態として用いている場合は、対象となるアイテムを取得した旨のイベント情報をメモリ装置20に通知するようにし、メモリ装置20の指示解析部221が、当該通知を状態遷移指示と判断するように構成してもよい。
【0099】
また、状態遷移指示として、直接的な状態遷移命令を用いた場合は、当該状態遷移命令のコマンド長は、長い方が好ましい。また、状態遷移命令のコマンド長は一定ではなく、不定である方が好ましい。また、状態遷移命令のコマンド値は、規則的な値ではなく、ランダムな値(ランダム値)を用いることが好ましい。これらによれば、逆アセンブルによる解析をより困難にすることができる。
【0100】
また、上記実施形態では、対応アプリケーションソフトウェアを特定する際に用いられる、状態情報211と対応アプリケーションソフトウェアとの対応関係を示すデータをメモリ装置20から読み出して、情報処理装置10のRAMに格納して用いる態様を例示したが、これに限定されない。具体的には、情報処理装置10において対応アプリケーションソフトウェアを特定する際に、必要に応じてメモリ装置20に対応関係を見に行く態様にしてもよい。
【0101】
また、上記実施形態において、ステップSP107で実行されていた状態遷移指示の発行動作は、アプリケーションの状態が変化する度に必ず行われるものでなくてもよい。
【0102】
具体的には、状態遷移指示の発行動作は、対応アプリケーションソフトウェアに組み込まれた、状態遷移命令に基づく動作である。このため、当該状態遷移命令が、アプリケーションの状態変化のうち、或る特定の状態変化の発生に対応して生じるものとしてアプリケーションソフトウェアに組み込まれている場合、状態遷移指示の発行動作は、アプリケーションの状態が変化する度に毎回行われる態様にはならない。
【0103】
また、第2記憶部210に記憶された状態情報211および状態遷移情報212は、メモリ情報保護システム1の動作中、セキュリティ制御部220のRAM(不図示)に一旦読み出して格納する態様としてもよい。これによれば、メモリ情報保護システム1の動作中は、セキュリティ制御部220のRAMに格納した状態情報211および状態遷移情報212を用いて動作を進行させることができるので、第2記憶部210からの読み出し時間および第2記憶部210への書き込み時間を省略することができる。なおこの場合、メモリ情報保護システム1の動作を終了する際には、セキュリティ制御部220のRAMに記憶されている状態情報が、第2記憶部210に書き込まれることになる。
【0104】
また、状態情報211の管理は、管理対象となる状態情報それぞれに与えられたアドレスを用いて行うようにしてもよい。具体的には、管理対象となる状態情報それぞれにアドレスを付与し、現在の状態情報211をアドレスを用いて管理する。このとき、現在の状態情報211の位置を表すアドレスは、「ポインタ」とも称される。このようにポインタが示すアドレスを介して、現在の状態情報211を特定するようにすれば、例えば、状態情報に文字列が含まれていたとしても管理が容易になる。
【0105】
また、上記実施形態におけるセキュリティ制御部220の動作は、ROMおよびRAM等が接続されたCPUにおいて所定のプログラムを実行して実現される態様であってもよく、或いは、論理回路を用いてハードウェアとして実現される態様であってもよい。
【0106】
また、逆アセンブルによる解析をより困難にするため、アプリケーションソフトウェア自体を暗号化してもよい。
【符号の説明】
【0107】
1,1A メモリ情報保護システム(メモリシステム)
10 情報処理装置
100 制御部
101 実行制御部
102 状態情報取得部
103 データ取得部
104 遷移指示発行部
20,20A メモリ装置
200 第1記憶部
201 アプリケーションソフトウェア
210 第2記憶部
211 状態情報
212 状態遷移情報
220 セキュリティ制御部
221 指示解析部
222 状態制御部
BF 状態遷移許可情報
NF 遷移先情報

【特許請求の範囲】
【請求項1】
アプリケーションソフトウェアを実行する情報処理装置と、
記憶した情報を前記情報処理装置に供給するメモリ装置と、
を備え、
前記メモリ装置は、
前記情報処理装置において実施されるアプリケーションの進行状況を示す状態情報と、前記状態情報の変更を許可する許可条件を示す状態遷移許可情報を含む状態遷移情報とを記憶する記憶手段と、
前記状態遷移情報に基づいて前記状態情報の変更を制御する状態制御手段と、
を有し、
前記情報処理装置は、
前記メモリ装置から前記状態情報を取得する状態情報取得手段と、
取得した状態情報に対応した対応アプリケーションソフトウェアを取得するデータ取得手段と、
前記対応アプリケーションソフトウェアを前記情報処理装置に実行させて、前記アプリケーションを継続実施させる実行制御手段と、
前記状態情報の遷移を指示する状態遷移指示を、前記アプリケーションの進行に応じて発行する指示発行手段と、
を有し、
前記状態制御手段は、前記情報処理装置から入力される前記状態遷移指示が妥当か否かを判断し、前記状態遷移指示が妥当であった場合、前記メモリ装置内の状態情報の変更を適切に行い、前記状態遷移指示が妥当でなかった場合、前記メモリ装置内の状態情報の変更を適切に行わないメモリシステム。
【請求項2】
前記状態遷移情報には、前記許可条件を満たしたときの状態情報の遷移先に関する遷移先情報が含まれ、
前記状態制御手段は、前記状態遷移指示が妥当であった場合、前記遷移先情報を反映させて前記状態情報の変更を行う請求項1に記載のメモリシステム。
【請求項3】
前記状態遷移許可情報は、前記状態情報の変更を許可するときの、状態遷移指示と状態情報とを組み合わせた情報であり、
前記状態制御手段は、
前記情報処理装置から入力される状態遷移指示と、前記記憶手段に記憶された状態情報とが、前記状態遷移許可情報に適合するか否かに基づいて、前記情報処理装置から入力される状態遷移指示の妥当性を判断する請求項1または請求項2に記載のメモリシステム。
【請求項4】
前記状態遷移許可情報は、前記状態情報の変更を許可するときの、状態遷移指示に関する情報であり、
前記状態制御手段は、
前記情報処理装置から入力される状態遷移指示が、前記状態遷移許可情報に適合するか否かに基づいて、前記情報処理装置から入力される状態遷移指示の妥当性を判断する請求項1または請求項2に記載のメモリシステム。
【請求項5】
前記メモリ装置の前記記憶手段は、状態情報に対応した対応アプリケーションソフトウェアを含む前記アプリケーションソフトウェアをさらに記憶し、
前記情報処理装置の前記データ取得手段は、前記メモリ装置から取得した状態情報に基づいて、対応アプリケーションソフトウェアを前記メモリ装置から読み出す請求項1から請求項4のいずれかに記載のメモリシステム。
【請求項6】
前記記憶手段は、第1記憶手段と第2記憶手段とを有し、
前記第1記憶手段は、前記アプリケーションソフトウェアを記憶し、
前記第2記憶手段は、前記状態情報および前記状態遷移情報を記憶する請求項5に記載のメモリシステム。
【請求項7】
記憶した情報を、アプリケーションソフトウェアを実行する情報処理装置に供給するメモリ装置であって、
前記情報処理装置において実施されるアプリケーションの進行状況を示す状態情報と、前記状態情報の変更を許可する許可条件を示す状態遷移許可情報を含む状態遷移情報とを記憶する記憶手段と、
前記状態遷移情報に基づいて前記状態情報の変更を制御する状態制御手段と、
を備え、
前記状態制御手段は、前記情報処理装置から入力される、前記メモリ装置内の状態情報の遷移を指示するための状態遷移指示が妥当か否かを判断し、前記状態遷移指示が妥当であった場合、前記メモリ装置内の状態情報の変更を適切に行い、前記状態遷移指示が妥当でなかった場合、前記メモリ装置内の状態情報の変更を適切に行わず、
前記情報処理装置は、前記メモリ装置から取得した状態情報に基づいて、当該状態情報に対応した対応アプリケーションソフトウェアを取得し、当該対応アプリケーションソフトウェアを実行することによって、前記アプリケーションを継続実施するメモリ装置。
【請求項8】
前記状態遷移情報には、前記許可条件を満たしたときの状態情報の遷移先に関する遷移先情報が含まれ、
前記状態制御手段は、前記状態遷移指示が妥当であった場合、前記遷移先情報を反映させて前記状態情報の変更を行う請求項7に記載のメモリ装置。
【請求項9】
前記記憶手段は、状態情報に対応した対応アプリケーションソフトウェアを含む前記アプリケーションソフトウェアをさらに記憶し、
前記情報処理装置は、前記メモリ装置から取得した状態情報に基づいて、対応アプリケーションソフトウェアを前記メモリ装置から読み出す請求項7または請求項8に記載のメモリ装置。
【請求項10】
アプリケーションソフトウェアを実行する情報処理装置と、前記情報処理装置において実施されるアプリケーションの進行状況を示す状態情報、および前記状態情報の変更を許可する許可条件を示す状態遷移許可情報を含む状態遷移情報を記憶するメモリ装置とを含むメモリシステムの動作方法であって、
a)前記情報処理装置から入力される、前記メモリ装置内の状態情報の遷移を指示するための状態遷移指示が妥当か否かを、前記状態遷移情報に基づいて判断する工程と、
b)前記状態遷移指示が妥当であった場合、前記メモリ装置内の状態情報の変更を適切に行い、前記状態遷移指示が妥当でなかった場合、前記メモリ装置内の状態情報の変更を適切に行わない工程と、
c)前記b)工程の実行後に、前記メモリ装置内の状態情報を前記情報処理装置に出力する工程と、
d)前記c)工程で出力された状態情報に基づいて、当該状態情報に対応した対応アプリケーションソフトウェアを前記情報処理装置において取得する工程と、
e)前記情報処理装置において、前記対応アプリケーションソフトウェアを実行することによって、前記アプリケーションを継続実施する工程と、
を備えるメモリシステムの動作方法。
【請求項11】
アプリケーションソフトウェアの実行に応じて情報処理装置において実施されるアプリケーションの進行状況を示す状態情報と、前記状態情報の変更を許可する許可条件を示す状態遷移許可情報を含む状態遷移情報とを記憶するメモリ装置の動作方法であって、
a)前記情報処理装置から入力される、前記メモリ装置内の状態情報の遷移を指示するための状態遷移指示が妥当か否かを、前記状態遷移情報に基づいて判断する工程と、
b)前記状態遷移指示が妥当であった場合、前記メモリ装置内の状態情報の変更を適切に行い、前記状態遷移指示が妥当でなかった場合、前記メモリ装置内の状態情報の変更を適切に行わない工程と、
c)前記b)工程の実行後に、前記メモリ装置内の状態情報を前記情報処理装置に出力する工程と、
を備えるメモリ装置の動作方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate