説明

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

【課題】アプリケーションソフトウェアの複製を困難にすることが可能な技術を提供する。
【解決手段】メモリ情報保護システム1Aは、アプリケーションソフトウェアを実行する情報処理装置10と、記憶した情報を情報処理装置10に供給するメモリ装置20Aとを備えている。そして、情報処理装置10は、アプリケーションソフトウェアの生成に用いる主データ201を取得するデータ取得部102と、主データ201と対となる対データ211を、メモリ装置20Aから取得する対データ取得部103と、主データ201および当該主データ201と対の対データ211を用いて、アプリケーションソフトウェアを生成するソフトウェア生成部104と、ソフトウェア生成部104によって生成されたアプリケーションソフトウェアを情報処理装置10に実行させて、アプリケーションを実施させる実行制御部101とを有している。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報の保護技術に関する。
【背景技術】
【0002】
アプリケーションソフトウェアを記憶したメモリ装置を情報処理装置に装着し、当該情報処理装置において、メモリ装置に記憶されたアプリケーションソフトウェアを実行して所定の機能を実現する技術が知られている。
【0003】
このようなメモリ装置においては、アプリケーションソフトウェアの複製を防止するために、セキュリティ機能が搭載されている。例えば、特許文献1では、アプリケーションソフトウェアが暗号化された状態でメモリ装置に記憶され、情報処理装置は、当該アプリケーションソフトウェアを解読するための鍵データを取得することなく、アプリケーションソフトウェアを実行することができないように構成されている。したがって、特許文献1では、適切な鍵データを取得するまでは、アプリケーションソフトウェアの複製が制限されることになる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−258850号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、上記特許文献1では、暗号化されたアプリケーションソフトウェアに対応する鍵データが特定された場合には、アプリケーションソフトウェアの実行が可能になり、アプリケーションソフトウェアを許可無く無断で複製される可能性があった。
【0006】
そこで、本発明は、アプリケーションソフトウェアの複製を困難にすることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係るメモリシステムの第1の態様は、アプリケーションソフトウェアを実行する情報処理装置と、記憶した情報を前記情報処理装置に供給するメモリ装置とを備え、前記情報処理装置は、アプリケーションソフトウェアの取得に用いる第1情報を取得する第1情報取得手段と、前記第1情報と対となる第2情報を、前記メモリ装置から取得する第2情報取得手段と、前記第1情報および当該第1情報と対の前記第2情報を用いて、前記アプリケーションソフトウェアを取得するソフトウェア取得手段と、前記ソフトウェア取得手段によって取得された前記アプリケーションソフトウェアを前記情報処理装置に実行させて、アプリケーションを実施させる実行制御手段とを有する。
【0008】
また、本発明に係るメモリシステムの第2の態様は、上記第1の態様であって、前記ソフトウェア取得手段は、前記第1情報および当該第1情報と対の前記第2情報を用いて、前記アプリケーションソフトウェアを生成する生成手段を含む。
【0009】
また、本発明に係るメモリシステムの第3の態様は、上記第2の態様であって、前記第1情報取得手段は、アプリケーションの進行に応じて、アプリケーションの進行状況に対応した第1情報を順次に取得し、前記第2情報取得手段は、前記第1情報取得手段によって順次に取得される第1情報それぞれについて、対となる第2情報を順次に取得し、前記生成手段は、アプリケーションの進行に応じて取得される第1情報および当該第1情報と対の第2情報を用いて、アプリケーションの進行状況に対応したアプリケーションソフトウェアを順次に生成し、前記実行制御手段は、順次に生成されるアプリケーションソフトウェアを前記情報処理装置に順次に実行させて、アプリケーションを継続実施させる。
【0010】
また、本発明に係るメモリシステムの第4の態様は、上記第3の態様であって、前記第2情報取得手段は、第2情報の取得に際して、第2情報の出力要求を前記メモリ装置に対して発行し、前記メモリ装置は、前記出力要求を受けて、第2情報の出力制御を行う出力制御手段、を有し、前記出力制御手段は、前記出力要求に基づいて特定される出力対象の第2情報について、出力順序が妥当であるか否かを判定する第1判定手段、を含み、前記出力制御手段は、前記第1判定手段によって前記出力順序が妥当であると判定された場合、第2情報の出力を適切に行い、前記第1判定手段によって前記出力順序が妥当でないと判定された場合、第2情報の出力を適切に行わない。
【0011】
また、本発明に係るメモリシステムの第5の態様は、上記第3の態様であって、前記第2情報取得手段は、第2情報の取得に際して、前記メモリ装置に対して第2情報の出力要求を発行し、前記メモリ装置は、前記出力要求を受けて、第2情報の出力制御を行う出力制御手段と、前記出力要求に応じて第2情報を出力した時点からの経過時間を、前記出力制御手段の制御に従って計測する計時手段とを有し、前記出力制御手段は、前記出力要求の次の新たな出力要求を受けた場合に、前記経過時間が所定時間を超えているか否かを判定する第2判定手段、を含み、前記出力制御手段は、前記第2判定手段によって前記経過時間が所定時間を超えていると判定された場合、前記新たな出力要求を受け入れ、前記第2判定手段によって前記経過時間が所定時間を超えていないと判定された場合、前記新たな出力要求を拒否する。
【0012】
また、本発明に係るメモリシステムの第6の態様は、上記第5の態様であって、前記所定時間は、前記新たな出力要求よりも1つ前の出力要求に応じて出力された第2情報と、当該第2情報と対となる第1情報とを用いて生成されるアプリケーションソフトウェアの実行に必要となる最小の時間である。
【0013】
また、本発明に係るメモリシステムの第7の態様は、上記第1の態様から上記第6の態様のいずれかであって、前記メモリ装置は、前記第1情報を記憶する記憶手段を有し、前記第1情報取得手段は、前記第1情報を前記メモリ装置から取得する。
【0014】
また、本発明に係るメモリシステムの第8の態様は、上記第1の態様から上記第7の態様のいずれかであって、前記第1情報には、前記第2情報を取得するための取得情報が含まれ、前記第2情報取得手段は、前記第1情報に含まれる前記取得情報に基づいて、前記第2情報を前記メモリ装置から取得する。
【0015】
また、本発明に係るメモリ装置は、記憶した情報を、アプリケーションソフトウェアを実行する情報処理装置に供給するメモリ装置であって、前記アプリケーションソフトウェアの取得に用いる第1情報と対となる第2情報を記憶する記憶手段と、前記情報処理装置から発行される前記第2情報の出力要求を受けて、第2情報の出力制御を行う出力制御手段とを備え、前記メモリ装置は、前記第1情報および当該第1情報と対の前記第2情報を用いて、前記アプリケーションソフトウェアを取得し、当該アプリケーションソフトウェアを実行して、アプリケーションを実施する前記情報処理装置に装着される。
【0016】
また、本発明に係るメモリシステムの動作方法は、アプリケーションソフトウェアを実行する情報処理装置と、記憶した情報を前記情報処理装置に供給するメモリ装置とを含むメモリシステムの動作方法であって、a)前記情報処理装置において、アプリケーションソフトウェアの取得に用いる第1情報を取得する工程と、b)前記情報処理装置において、前記第1情報と対となる第2情報を、前記メモリ装置から取得する工程と、c)前記情報処理装置において、前記第1情報および当該第1情報と対の前記第2情報を用いて、前記アプリケーションソフトウェアを取得する工程と、d)前記c)工程において取得されたアプリケーションソフトウェアを前記情報処理装置に実行させて、アプリケーションを実施させる工程とを有する。
【発明の効果】
【0017】
本発明によれば、アプリケーションソフトウェアの複製を困難にすることが可能になる。
【図面の簡単な説明】
【0018】
【図1】メモリ情報保護システムの外観構成を示す図である。
【図2】ゲームシステムとして動作するメモリ情報保護システムの動作概要を示す図である。
【図3】第1実施形態に係るメモリ情報保護システムの機能構成を示すブロック図である。
【図4】主データに含まれる対データ取得情報の内容を示す図である。
【図5】第1実施形態に係るメモリ情報保護システムの動作を示すフローチャートである。
【図6】第2実施形態に係るメモリ情報保護システムの機能構成を示すブロック図である。
【図7】第2実施形態に係るメモリ情報保護システムの動作を示すフローチャートである。
【図8】変形例に係るメモリ情報保護システムの構成を示す図である。
【図9】変形例に係るメモリ情報保護システムの構成を示す図である。
【発明を実施するための形態】
【0019】
以下、各実施形態について図面を参照して説明する。なお、異なる図面において同一の符号を付した要素は、同一または相応する要素を示すものとする。
【0020】
<1.第1実施形態>
[1−1.構成概要]
図1は、メモリ情報保護システム(単に「メモリシステム」とも称する)1Aの外観構成を示す図である。
【0021】
図1に示されるように、メモリ情報保護システム1Aは、情報処理装置10とメモリ装置20Aとを有している。
【0022】
メモリ装置20Aは、所定のアプリケーションをコンピュータ上で実施するための種々のデータ(情報)を記憶(格納)している。このメモリ装置20Aは、例えばカードまたはカートリッジのような態様を有し、情報処理装置10に脱着自在に構成されている。
【0023】
情報処理装置10は、装着されたメモリ装置20Aからデータを読み出し、当該データに基づいてアプリケーションソフトウェア(プログラム)を生成する。そして、情報処理装置10は、当該アプリケーションソフトウェアを実行して、上記所定のアプリケーションを実施する。このような情報処理装置10には、例えば、パーソナルコンピュータ(パソコン)、PDA(Personal Digital Assistant)のような情報端末装置が含まれる。また、メモリ装置20Aに記憶されたデータがコンピュータゲーム(単に「ゲーム」とも称する)のゲームプログラムを生成するためのデータである場合は、情報処理装置10は、据置型ゲーム機または携帯ゲーム機等のゲーム装置本体として機能する。
【0024】
ここで、情報処理装置10が、ゲームプログラムを実行するゲーム装置本体として機能する場合を一例にして、メモリ情報保護システム1Aの動作概要を説明する。図2は、ゲームシステムとして動作するメモリ情報保護システム1Aの動作概要を示す図である。
【0025】
メモリ情報保護システム1Aは、ゲームの進行状況に応じてゲームプログラムを順次に生成するとともに、生成したゲームプログラムを実行することによって、アプリケーションとしてのゲームを継続実施する。
【0026】
具体的には、図2に示されるように、メモリ情報保護システム1Aは、ゲームの進行状況の第1段階では、Aデータ(後述の主データ)および当該Aデータと対となるaデータ(後述の対データ)を用いてゲームプログラムPAを生成し、当該ゲームプログラムPAを実行して第1段階におけるゲームを実施可能にする。また、ゲームの進行状況の第2段階では、メモリ情報保護システム1Aは、Eデータおよび当該Eデータと対のeデータを用いてゲームプログラムPEを生成し、当該ゲームプログラムPEを実行して第2段階におけるゲームを実施可能にする。そして、ゲームの進行状況の第3段階では、メモリ情報保護システム1Aは、Bデータおよび当該Bデータと対のbデータを用いてゲームプログラムPBを生成し、当該ゲームプログラムPBを実行して第3段階におけるゲームを実施可能にする。
【0027】
このように、ゲームシステムとしてのメモリ情報保護システム1Aは、ゲームの進行に応じて、対となる2つのデータを用いてゲームプログラムを順次に生成し、生成したゲームプログラムを実行して、ゲームの継続実施を実現させる。
【0028】
[1−2.機能ブロック]
次に、メモリ情報保護システム1Aの機能構成について説明する。図3は、第1実施形態に係るメモリ情報保護システム1Aの機能構成を示すブロック図である。図4は、主データに含まれる対データ取得情報の内容を示す図である。
【0029】
図3に示されるように、メモリ情報保護システム1Aを構成する情報処理装置10は、制御部100と、情報処理装置10をメモリ装置20Aと電気的に接続させるためのインターフェース(I/F)110とを備えている。
【0030】
制御部100は、マイクロコンピュータとして構成され、主にCPU、RAMおよびROM等(いずれも不図示)を備えている。
【0031】
制御部100は、ROMに格納されたプログラムを読み出し、当該プログラムをCPUで実行することによって、各種機能を実現する。
【0032】
具体的には、制御部100は、ROMに格納されたプログラムの実行によって、実行制御部101を機能的に実現する。
【0033】
実行制御部101は、CPUによるアプリケーションソフトウェアの実行を制御する。また、実行制御部101は、アプリケーションを起動する(立ち上げる)際には、起動用の初期アプリケーションソフトウェアをメモリ装置20A(例えば、メモリ装置20Aの第1記憶部200)から読み出して、当該初期アプリケーションソフトウェアをCPUに実行させ、アプリケーションを開始させる。
【0034】
また、制御部100では、ROMに格納された上記プログラムの実行によって、或いは実行制御部101の制御に従いアプリケーションソフトウェアをCPUで実行することによって、主データ取得部102、対データ取得部103およびソフトウェア生成部104が機能的に実現されることになる。
【0035】
主データ取得部(第1データ取得部)102は、メモリ装置20Aに記憶されている、アプリケーションソフトウェアの生成に用いる主データ(「第1データ」または「第1情報」とも称する)を読み出して、取得する機能を有している。具体的には、主データ取得部102は、主データを出力させるための主データ出力コマンドをメモリ装置20Aに対して発行することによって、メモリ装置20Aから主データを取得する。
【0036】
対データ取得部(第2データ取得部)103は、メモリ装置20Aから、主データと対となる対データ(「第2データ」または「第2情報」とも称する)を取得する機能を有している。具体的には、対データ取得部103は、メモリ装置20Aから取得された主データに含まれる対データ取得情報に基づいて、メモリ装置20Aから対データを取得する。対データ取得情報の内容については後述する。
【0037】
なお、本明細書では、第1データを主データと称し、第2データを対データと称するが、ここでの「主」、「対」は説明の便宜上のものであり、データの内容、データの大きさ等に依って呼称されるものではない。
【0038】
ソフトウェア生成部104は、メモリ装置20Aから取得した主データおよび当該主データと対の対データを用いて、アプリケーションソフトウェアを生成する機能を有している。ソフトウェア生成部104によって生成されたアプリケーションソフトウェアは、実行制御部101の制御に従って、CPUで実行されることになる。
【0039】
なお、ソフトウェア生成部104は、アプリケーションソフトウェアを生成することによって、アプリケーションソフトウェアを取得していることから、主データおよび対データを用いてアプリケーションソフトウェアを取得するソフトウェア取得手段とも表現できる。
【0040】
一方、メモリ情報保護システム1Aを構成するメモリ装置20Aは、記憶手段としての第1記憶部200および第2記憶部210と、セキュリティ部220とを備えている。
【0041】
第1記憶部200は、マスクROMのような不揮発性の記憶部であって、アプリケーションソフトウェアを生成するための主データ201を複数記憶している。図3には、主データとして、A主データ、B主データ、C主データ、D主データ、E主データ等が記憶されている態様が示されている。なお、図3では、説明簡単化のために、A→B→C・・・と順序通りに記憶された主データを例示したが、各主データの記憶順序はランダムであることが好ましい。
【0042】
これら各主データには、対となる対データを取得するための対データ取得情報が含まれている。図4に示されるように、対データ取得情報には、対データの読出方法(図4ではa対データの読出方法)に関する情報(「対データの読出情報」とも称する)が含まれている。対データの読出情報には、対データの格納先を示す読出アドレスが含まれる。また、1つの対データが複数のアドレスに分散して格納されている場合は、複数の読出アドレスに加えて、読出順序を示す読み出し手順に関する情報が、対データ読出情報として含まれていてもよい。
【0043】
また対データ取得情報には、対データ生成方法に関する情報(「対データの生成情報」とも称する)が含まれていてもよい。対データの生成方法に関する情報としては、例えば、対データを生成するための復号鍵または対データを生成する際のビットシフト情報等を例示することができる。
【0044】
第1記憶部200は、情報処理装置10から発行された主データ出力コマンドを受けて、出力対象となる主データ201を出力する。例えば、A主データが出力対象であった場合は、当該A主データが出力され、B主データが出力対象であった場合は、当該B主データが出力されることになる。
【0045】
なお、当該第1記憶部200は、マスクROMに限定されず、フラッシュメモリ、EP−ROMまたはハードディスク(HD)等であってもよい。
【0046】
第2記憶部210は、フラッシュメモリのような書き換え可能な不揮発性の記憶部であって、対データ211を記憶している。
【0047】
図3では、対データ211として、A主データと対のa対データ、B主データと対のb対データ、C主データと対のc対データ、D主データと対のd対データ、E主データと対のe対データ等が記憶されている態様が示されている。第2記憶部210は、セキュリティ部220の制御に従って、対データ211を出力する。
【0048】
また、第2記憶部210は、出力順序情報212をも記憶している。出力順序情報212は、アプリケーションの進行に応じて定められる、各対データの出力順序(読出順序)に関する情報であり、メモリ装置20Aの製造時に第2記憶部210に予め格納されている。当該出力順序情報212は、セキュリティ部220の制御に従ってセキュリティ部220に出力される。
【0049】
なお、図3では、説明簡単化のために、a→b→c・・・と順序通りに記憶された対データを例示したが、各対データの記憶順序はランダムであることが好ましい。
【0050】
セキュリティ部220は、読出制御部(出力制御部)221を有し、第2記憶部210に格納された対データの出力制御を行う。
【0051】
具体的には、読出制御部221は、情報処理装置10から入力される対データの出力コマンドを解析して、出力対象の対データを特定する。そして、読出制御部221は、第2記憶部210から得た出力順序情報212に基づいて、対データの出力順序が正しいか否か(妥当か否か)を判定する。対データの出力順序が正しかった場合は、読出制御部221は、出力対象の対データを第2記憶部210から読み出して、当該対データを情報処理装置10に出力する。一方、対データの出力順序が正しくなかった場合は、読出制御部221は、出力対象の対データを出力せずに、他の対データまたはダミーデータを出力する。なお、他の対データまたはダミーデータを出力する態様に代えて、データを全く出力しない態様としてもよい。
【0052】
このように、メモリ装置20Aでは、セキュリティ部220を介してしか第2記憶部210にアクセス出来ない構成が採用され、セキュリティ部220は、第2記憶部210に記憶された対データの出力制御を行う。
【0053】
[1−3.メモリ情報保護システム1Aの動作]
次に、メモリ情報保護システム1Aの動作について説明する。図5は、メモリ情報保護システム1Aの動作を示すフローチャートである。図5では、左側に情報処理装置10の動作を示すフローチャート、右側にメモリ装置20Aの動作を示すフローチャートがそれぞれ示されている。
【0054】
メモリ情報保護システム1Aの動作開始前には、メモリ装置20Aが情報処理装置10に装着されて、それぞれのインターフェースが電気的に接続される。そして、情報処理装置10の電源投入に応じて、情報処理装置10が起動されるとともに、電源がメモリ装置20Aに供給されて、システムとしての動作が開始される。
【0055】
図5に示されるように、情報処理装置10では、電源が投入されると、実行制御部101によって、初期アプリケーションソフトウェアがメモリ装置20Aから読み出される(ステップSP101)。
【0056】
ステップSP102では、実行制御部101が、初期アプリケーションソフトウェアをCPUに実行させ、アプリケーションが開始される。
【0057】
ステップSP103では、主データ取得部102によって、メモリ装置20Aに記憶されている主データが取得される。
【0058】
起動後に最初に取得すべき主データの情報は、初期アプリケーションソフトウェアに組み込まれている。具体的には、初期アプリケーションソフトウェアには、最初に取得すべき主データの取得命令が組み込まれており、初期アプリケーションソフトウェアの実行によって、主データの取得命令が発行される。主データ取得部102は、当該取得命令を受けて取得対象となる主データの出力コマンド(出力要求)をメモリ装置20Aに対して発行する。当該出力コマンドを受けたメモリ装置20Aは、取得対象の主データを情報処理装置10に対して出力する。情報処理装置10は、このようにして取得した主データを、内部のRAMに一旦格納する。
【0059】
次のステップSP104では、ステップSP103で取得した主データと対となる対データが取得される。対データの取得は、主データに含まれる対データ取得情報に基づいて、対データ取得部103によって行われる。
【0060】
具体的には、対データ取得部103は、対データ取得情報に含まれる対データの読出情報に基づいて、メモリ装置20Aに対して対データの出力コマンド(出力要求)を発行する。対データの出力コマンドは、取得対象となる対データの読出アドレスを含んだ出力命令であり、当該出力コマンドを受けたメモリ装置20Aは、取得対象の対データを情報処理装置10に対して出力する。
【0061】
情報処理装置10から読み出された対データが対データとしては利用できない不完全な状態であった場合(例えば、読み出された対データが暗号化されている場合)は、対データ取得部103は、対データ取得情報に含まれる対データの生成情報を用いて、対データとして利用可能な完全な状態の対データを生成する。
【0062】
ステップSP105では、ソフトウェア生成部104によって、アプリケーションソフトウェアの生成(取得)が行われる。ソフトウェア生成部104によるアプリケーションソフトウェアの生成態様としては、種々の態様を例示することができる。
【0063】
例えば、主データおよび対データがいずれもアプリケーションソフトウェアの一部であり、2つを組み合わせるとアプリケーションソフトウェアになる場合、ソフトウェア生成部104は、主データと対データとを単純に組み合わせて、アプリケーションソフトウェアを生成することになる。
【0064】
また、主データの一部に暗号化されたデータ(暗号データ)が含まれ、当該暗号データを対データを用いて復号化すれば、主データ全体がアプリケーションソフトウェアになる場合、ソフトウェア生成部104は、鍵情報としての対データを用いて暗号データを復号化してアプリケーションソフトウェアを生成することになる。
【0065】
なお、アプリケーションソフトウェアの生成方法に関する情報(アプリケーションソフトウェアの生成情報)は、初期アプリケーションソフトウェア、主データまたは対データに含まれており、ソフトウェア生成部104は、アプリケーションソフトウェアの生成情報に従ってアプリケーションソフトウェアの生成動作を実行する。
【0066】
ステップSP106では、ステップSP105で生成されたアプリケーションソフトウェアが、実行制御部101の制御に従ってCPUで実行される。
【0067】
アプリケーションソフトウェアの実行中に、情報処理装置10の動作を終了させる終了動作が実行された場合は、情報処理装置10の動作は終了する(ステップSP107)。
【0068】
一方、情報処理装置10の動作が継続され、ユーザの操作等によってアプリケーションが進行すると、動作工程は、ステップSP103に移行される。
【0069】
繰り返し処理となるステップSP103では、主データ取得部102によって、メモリ装置20Aから次の主データが取得される。アプリケーションの進行に対応した次に取得すべき主データの情報は、実行中のアプリケーションソフトウェア(ステップSP105で生成されたアプリケーションソフトウェア)に組み込まれている。すなわち、アプリケーションが進行すると、アプリケーションソフトウェアの実行によって、次に取得すべき主データの取得命令が発行される。そして、主データ取得部102は、当該取得命令を受けて取得対象となる主データの出力コマンドをメモリ装置20Aに対して発行する。
【0070】
以降のステップSP104〜ステップSP107では、上記と同様の処理が実行される。すなわち、ステップSP104では、対データが取得され、ステップSP105では主データと対データとを用いてアプリケーションの進行に対応した次のアプリケーションソフトウェアが生成される。そして、ステップSP106では、生成された新たなアプリケーションソフトウェアが実行される。
【0071】
このように、情報処理装置10では、アプリケーションが終了するまで、ステップSP103からステップSP107の各動作工程が繰り返し実行される。これにより、情報処理装置10は、アプリケーションの進行に応じたアプリケーションソフトウェアを、主データおよび対データを用いて順次に生成して、順次に生成されたアプリケーションソフトウェアを順次に実行することになる。
【0072】
一方、メモリ装置20Aでは、電源供給が開始されると、情報処理装置10のステップSP101に対応した動作が実行され、第1記憶部200から初期アプリケーションソフトウェアが出力される(ステップSP201)。
【0073】
次のステップSP202では、情報処理装置10のステップSP103に対応した動作が実行され、主データの出力コマンドの発行を受けて、出力対象の主データ201が第1記憶部200から出力される。
【0074】
そして、ステップSP203〜ステップSP206では、情報処理装置10のステップSP104に対応した動作、すなわち対データの出力動作が実行される。
【0075】
具体的には、ステップSP203では、情報処理装置10から発行された対データの出力コマンドが、セキュリティ部220の読出制御部221によって解析される。この出力コマンドの解析によって、出力対象の対データが特定される。
【0076】
ステップSP204では、読出制御部221によって、対データの出力順序が妥当(適切)か否かが判定される。対データの出力順序の妥当性判断は、例えば、既に出力済みの対データに関する出力履歴情報およびステップSP203で出力対象として特定された対データと、第2記憶部210から得られる出力順序情報212とを比較することによって行うことができる。なお、出力履歴情報を用いて出力順序の妥当性判断を行う場合は、セキュリティ部220は、対データを出力する度に出力履歴情報を更新(生成)して第2記憶部210に格納しておけばよい。
【0077】
ステップSP204において、対データの出力順序が妥当であると判断された場合、動作工程は、ステップSP205に移行される。ステップSP205では、読出制御部221によって、対データの出力が適切に行われる。すなわち、出力対象の対データがメモリ装置20Aから出力される。
【0078】
一方、ステップSP204において、対データの出力順序が妥当でないと判断された場合、動作工程は、ステップSP206に移行される。ステップSP206では、読出制御部221によって、対データの出力が適切に行われない。すなわち、読出制御部221は、出力対象の対データを出力せずに、出力対象の対データとは異なる他のデータを出力する。或いは、読出制御部221は、データを全く出力しない。
【0079】
ステップSP205またはステップSP206が終了すると、動作工程は、上記のステップSP202に移行され、主データの出力コマンドを受けると、出力対象の主データが第1記憶部200から出力される。ここで出力される主データは、アプリケーションの進行状況に対応した主データであり、情報処理装置10は、新たな当該主データを取得する。
【0080】
以降のステップSP203〜ステップSP206では、上記と同様の処理が実行される。すなわち、ステップSP203では、対データの出力コマンドが解析され、ステップSP204では、対データの出力順序が妥当か否かが判定される。そして、判定結果に応じた対データの出力が行われる(ステップSP205,ステップSP206)。
【0081】
このように、メモリ装置20Aでは、アプリケーションが終了するまで、情報処理装置10の動作に対応して、ステップSP202からステップSP206の各工程が繰り返し実行されることになる。
【0082】
以上のように、メモリ情報保護システム1Aは、アプリケーションソフトウェアを実行する情報処理装置10と、記憶した情報を情報処理装置10に供給するメモリ装置20Aとを備えている。そして、情報処理装置10は、アプリケーションソフトウェアの生成に用いる主データ201を取得する主データ取得部102と、主データ201と対となる対データ211を、メモリ装置20Aから取得する対データ取得部103と、主データ201および当該主データ201と対の対データ211を用いて、アプリケーションソフトウェアを生成するソフトウェア生成部104と、ソフトウェア生成部104によって生成されたアプリケーションソフトウェアを情報処理装置10に実行させて、アプリケーションを実施させる実行制御部101とを有している。
【0083】
このようなメモリ情報保護システム1Aによれば、メモリ装置20Aに記憶されているデータを単に抜き出しただけでは、アプリケーションソフトウェアを得ることができないため、アプリケーションソフトウェアの複製が困難になる。
【0084】
また、メモリ情報保護システム1Aでは、アプリケーションの進行に応じてアプリケーションの進行状況に対応した、対となる2つのデータを順次に取得し、当該2つのデータを用いて、アプリケーションの進行状況に対応したアプリケーションソフトウェアを順次に生成する。そして、生成したアプリケーションソフトウェアを順次に実行して、アプリケーションの継続実施を実現する。このため、アプリケーションを進行させない限り、アプリケーションの進行順序に沿ったアプリケーションソフトウェアを順次に得ることができないので、メモリ装置20Aに記憶されているデータを単に抜き出しただけでは、アプリケーションソフトウェアの複製が一層困難になる。
【0085】
また、主データに対する対データを取得するためには、主データを解析して主データに含まれる対データ取得情報を得て、当該対データ取得情報に基づいて対データを特定する必要がある。このため、メモリ装置20Aに記憶されているデータを単に抜き出しただけでは、主データに対する対データの特定が困難であり、無断で複製を行う複製者は、アプリケーションソフトウェアを生成することができない。仮に主データに対する対データの特定ができたとしても、アプリケーションソフトウェアの複製に、多大な時間を要することになるので、メモリ装置20Aの複製品が出回るまでの期間を稼ぐことができる。
【0086】
また、メモリ情報保護システム1Aでは、対データの出力順序がアプリケーションの進行に応じた適切な順序でない場合は、対データが適切に出力されない。このため、対データを取得するためには、アプリケーションを進行させて正しい順序で対データを取得することが必要になるので、無断複製者は、逆アセンブルによってメモリ装置20Aを複製することが困難となる。
【0087】
<2.第2実施形態>
次に、第2実施形態について説明する。第2実施形態に係るメモリ情報保護システム1Bでは、時間情報を加味して対データの出力制御が行われる。対データの出力手法が異なる点以外は、第2実施形態のメモリ情報保護システム1Bは、第1実施形態のメモリ情報保護システム1Aとほぼ同様の構造および機能を有している。このため、メモリ情報保護システム1Bにおいて、メモリ情報保護システム1Aと共通する部分については同じ符号を付して説明を省略する。
【0088】
[2−1.構成]
上述のように、本実施形態のメモリ情報保護システム1Bでは、時間情報を加味した対データの出力制御が行われる。以下では、このような対データの出力制御を行うメモリ情報保護システム1Bについて詳述する。図6は、第2実施形態に係るメモリ情報保護システム1Bの機能構成を示すブロック図である。
【0089】
図6に示されるように、メモリ情報保護システム1Bを構成するメモリ装置20Bは、セキュリティ部220において計時部222を有している。
【0090】
計時部222は、時間を計測する計時機能を有している。
【0091】
メモリ装置20Bでは、当該計時部222を利用して、対データの出力時点からの経過時間が計測される。具体的には、読出制御部221は、情報処理装置10に対データを出力したタイミングで、対データを出力したことを示す情報(対データの出力情報)を計時部222に出力する。計時部222は、読出制御部221から対データの出力情報を受けると、当該出力情報をトリガとして時間の計測を開始する。計時部222で計測された時間は、計時情報として読出制御部221に出力される。
【0092】
[2−2.動作]
ここで、メモリ情報保護システム1Bの動作について説明する。図7は、メモリ情報保護システム1Bの動作を示すフローチャートである。図7では、左側に情報処理装置10の動作を示すフローチャート、右側にメモリ装置20Bの動作を示すフローチャートがそれぞれ示されている。
【0093】
メモリ装置20Bが情報処理装置10に装着され、情報処理装置10に電源が投入されると、システムとしての動作が開始される。
【0094】
具体的には、図7に示されるように、情報処理装置10では、第1実施形態で説明した各動作工程(ステップSP101〜ステップSP107)が実行され、第1実施形態の情報処理装置10と同様の動作が実行される。
【0095】
一方、メモリ装置20Bでは、電源供給が開始されると、情報処理装置10のステップSP101に対応した動作が実行され、第1記憶部200から初期アプリケーションソフトウェアが出力される(ステップSP301)。
【0096】
次のステップSP302では、情報処理装置10のステップSP103に対応した動作が実行され、主データの出力コマンドの発行を受けて、出力対象の主データ201が第1記憶部200から出力される。
【0097】
そして、ステップSP303〜ステップSP308では、情報処理装置10のステップSP104に対応した動作、すなわち対データの出力動作が実行される。
【0098】
具体的には、ステップSP303では、情報処理装置10から発行された対データの出力コマンドが、セキュリティ部220の読出制御部221によって解析される。この出力コマンドの解析によって、出力対象の対データが特定される。
【0099】
次のステップSP304では、読出制御部221によって、対データを出力可能とする時間条件(出力時間条件)を満足しているか否かが判定される。
【0100】
具体的には、読出制御部221は、まず、計時部222において計測されている計時時間を計時情報として取得する。また、読出制御部221は、出力時間条件を示す出力可能時間を出力対象の対データから取得する。そして、読出制御部221は、計時時間が出力可能時間を超えているか否かを判断することによって、出力時間条件を満たしているか否かを判定する。
【0101】
計時時間が出力可能時間を超えていない場合、すなわち出力時間条件を満たしていないと判定された場合は、情報処理装置10から発行された対データの出力コマンドは拒否され、動作工程は、ステップSP303に移行されることになる。
【0102】
一方、計時時間が出力可能時間を超えていた場合、すなわち出力時間条件を満たしていると判定された場合、動作工程は、ステップSP305に移行される。
【0103】
対データに含まれている出力可能時間は、前回読み出された対データと、当該対データと対となる主データとを用いて生成されるアプリケーションソフトウェアの実行に必要となる最小の時間(実行最小時間)に設定されることが好ましい。このような出力可能時間を超えているか否かを対データの出力条件の一つとすることによれば、対データを取得するには、アプリケーションの実施が必要となるので、アプリケーションを実施することなく、メモリ装置20Bに記憶されているデータだけを抜き出そうとする複製者の行為を妨げることができる。なお、上記では、出力可能時間は、アプリケーションソフトウェアの実行最小時間としていたが、これに限定されず、実行最小時間よりも短い時間であってもよい。この場合にも、メモリ装置20Bに記憶されている対データを一気に抜き出そうとする複製者の行為を妨げることができる。
【0104】
なお、ステップSP303で特定された出力対象の対データが、アプリケーションの進行過程において最初に出力される対データ(最初の対データ)であった場合は、計時部222による計時動作が未だ開始されていないため、当該対データに含まれる出力可能時間は、「ゼロ」となっている。これにより、最初の対データの出力動作では、読出制御部221は、出力時間条件を満足していると判定することになる。また、最初の対データに出力可能時間を含めない場合は、最初の対データの出力動作においては、ステップSP304の動作を実行しないことにしてもよい。
【0105】
次のステップSP305では、上述のステップSP204と同様、読出制御部221によって、対データの出力順序が妥当(適切)か否かが判定される。
【0106】
ステップSP305において、対データの出力順序が妥当でないと判断された場合、動作工程は、ステップSP307に移行される。ステップSP307では、上述のステップSP206と同様、読出制御部221によって、対データの出力が適切に行われない。すなわち、読出制御部221は、出力対象の対データを出力せずに、出力対象の対データとは異なる他のデータを出力する。或いは、読出制御部221は、データを全く出力しない。
【0107】
一方、ステップSP305において、対データの出力順序が妥当であると判断された場合、動作工程は、ステップSP306に移行される。ステップSP306では、上述のステップSP205と同様、読出制御部221によって、対データの出力が適切に行われる。すなわち、出力対象の対データがメモリ装置20Bから出力される。
【0108】
そして、次のステップSP308では、読出制御部221から入力された対データの出力情報をトリガとして、計時部222によって時間の計測が開始される。
【0109】
ステップSP307またはステップSP308が終了すると、動作工程は、上記のステップSP302に移行され、主データの出力コマンドを受けると、出力対象の主データが第1記憶部200から出力される。ここで出力される主データは、アプリケーションの進行状況に対応した主データであり、情報処理装置10は、新たな当該主データを取得する。
【0110】
以降のステップSP303〜ステップSP308では、上記と同様の処理が実行される。すなわち、ステップSP303では、対データの出力コマンドが解析され、ステップSP304では、出力時間条件が満たされているか否かが判定される。出力時間条件が満たされていない場合は、情報処理装置10から発行された対データの出力コマンドは拒否され、動作工程は、ステップSP303に移行される。一方、出力時間条件が満たされている場合は、動作工程は、ステップSP305に移行される。ステップSP305では、対データの出力順序が妥当か否かが判定される。そして、判定結果に応じた対データの出力が行われる(ステップSP306,ステップSP307)。対データが適切に出力された場合は、さらにステップSP308において、前回の計時時間がリセットされ、時間の計測が新たに開始されることになる。
【0111】
このように、メモリ装置20Bでは、アプリケーションが終了するまで、情報処理装置10の動作に対応して、ステップSP302からステップSP308の各工程が繰り返し実行されることになる。
【0112】
以上のように、メモリ情報保護システム1Bのメモリ装置20Bは、対データの出力要求を受けた場合に、当該対データを出力可能な時間が経過しているか否かを、対データの出力条件としている。これによれば、対データを取得するには、アプリケーションの実施が必要となるので、アプリケーションを実施することなく、メモリ装置20Bに記憶されているデータだけを抜き出そうとする無断複製者の行為を妨げることができる。
【0113】
また、メモリ情報保護システム1Bは、出力時間条件を満たすか否かに用いる時間の計測を、情報処理装置10で行わずメモリ装置20Bで行うため、情報処理装置10側の計時機能が改ざんされた場合にも、対データの取得にアプリケーションの実施を必要とするセキュリティ機能を保つことができる。
【0114】
なお、アプリケーションの実行途中でユーザによって動作が中止される際には、読出制御部221は、計時部222において計測中の計時時間を取得し、当該計時時間を現在の計時情報213として第2記憶部210に保存する。アプリケーションが再開された場合は、読出制御部221は、第2記憶部210に保存した計時情報213を取得して、計時部222に、計時情報213によって示される計時時間から時間の計測を再開させる。
【0115】
<3.変形例>
以上、この発明の実施の形態について説明したが、この発明は、上記に説明した内容に限定されるものではない。
【0116】
例えば、上記実施形態では、主データ201が第1記憶部200に記憶されている態様を示したが、これに限定されない。図8は、変形例に係るメモリ情報保護システム1Cの構成を示す図である。図9は、変形例に係るメモリ情報保護システム1Dの構成を示す図である。
【0117】
具体的には、図8に示されるように、変形例に係るメモリ情報保護システム1Cでは、主データ201は、メモリ装置20Cの第2記憶部210に記憶されている。このように、上記第1実施形態(または上記第2実施形態)のメモリ装置20A(20B)において、第1記憶部200に記憶されていた主データ201および初期アプリケーションソフトウェア等は、第2記憶部210に記憶しておく態様であってもよい。なお、このようなメモリ情報保護システム1Cでは、記憶手段は、第2記憶部210のみとなる。
【0118】
また、図9に示されるように、変形例に係るメモリ情報保護システム1Dでは、主データ201は、メモリ装置20D以外の外部の記憶装置に記憶されている。このように、上記第1実施形態(または上記第2実施形態)のメモリ装置20A(20B)において、第1記憶部200に記憶されていた主データ201および初期アプリケーションソフトウェア等は、メモリ装置20D以外の外部の記憶装置に記憶しておく態様であってもよい。なお、メモリ情報保護システム1Dでは、記憶手段は、第2記憶部210のみとなる。
【0119】
この場合、情報処理装置10は、ネットワークを介して主データおよび初期アプリケーションソフトウェアを取得することになる。例えば、記憶装置がサーバである場合は、情報処理装置10は、インターネットを介して初期アプリケーションソフトウェアおよび所望の主データをダウンロードする。
【0120】
また、上記実施形態におけるセキュリティ部220の動作は、ROMおよびRAM等が接続されたCPUにおいて所定のプログラムを実行して実現される態様であってもよく、或いは、論理回路を用いてハードウェアとして実現される態様であってもよい。
【符号の説明】
【0121】
1A,1B,1C,1D メモリ情報保護システム
10 情報処理装置
20A,20B,20C,20D メモリ装置
100 制御部
101 実行制御部
102 主データ取得部
103 対データ取得部
104 ソフトウェア生成部
200 第1記憶部
201 主データ
210 第2記憶部
211 対データ
212 出力順序情報
213 計時情報
220 セキュリティ部
221 読出制御部
222 計時部
PA,PB,PE ゲームプログラム

【特許請求の範囲】
【請求項1】
アプリケーションソフトウェアを実行する情報処理装置と、
記憶した情報を前記情報処理装置に供給するメモリ装置と、
を備え、
前記情報処理装置は、
アプリケーションソフトウェアの取得に用いる第1情報を取得する第1情報取得手段と、
前記第1情報と対となる第2情報を、前記メモリ装置から取得する第2情報取得手段と、
前記第1情報および当該第1情報と対の前記第2情報を用いて、前記アプリケーションソフトウェアを取得するソフトウェア取得手段と、
前記ソフトウェア取得手段によって取得された前記アプリケーションソフトウェアを前記情報処理装置に実行させて、アプリケーションを実施させる実行制御手段と、
を有するメモリシステム。
【請求項2】
前記ソフトウェア取得手段は、
前記第1情報および当該第1情報と対の前記第2情報を用いて、前記アプリケーションソフトウェアを生成する生成手段、
を含む請求項1に記載のメモリシステム。
【請求項3】
前記第1情報取得手段は、アプリケーションの進行に応じて、アプリケーションの進行状況に対応した第1情報を順次に取得し、
前記第2情報取得手段は、前記第1情報取得手段によって順次に取得される第1情報それぞれについて、対となる第2情報を順次に取得し、
前記生成手段は、アプリケーションの進行に応じて取得される第1情報および当該第1情報と対の第2情報を用いて、アプリケーションの進行状況に対応したアプリケーションソフトウェアを順次に生成し、
前記実行制御手段は、順次に生成されるアプリケーションソフトウェアを前記情報処理装置に順次に実行させて、アプリケーションを継続実施させる請求項2に記載のメモリシステム。
【請求項4】
前記第2情報取得手段は、第2情報の取得に際して、第2情報の出力要求を前記メモリ装置に対して発行し、
前記メモリ装置は、
前記出力要求を受けて、第2情報の出力制御を行う出力制御手段、
を有し、
前記出力制御手段は、
前記出力要求に基づいて特定される出力対象の第2情報について、出力順序が妥当であるか否かを判定する第1判定手段、
を含み、
前記出力制御手段は、前記第1判定手段によって前記出力順序が妥当であると判定された場合、第2情報の出力を適切に行い、前記第1判定手段によって前記出力順序が妥当でないと判定された場合、第2情報の出力を適切に行わない請求項3に記載のメモリシステム。
【請求項5】
前記第2情報取得手段は、第2情報の取得に際して、前記メモリ装置に対して第2情報の出力要求を発行し、
前記メモリ装置は、
前記出力要求を受けて、第2情報の出力制御を行う出力制御手段と、
前記出力要求に応じて第2情報を出力した時点からの経過時間を、前記出力制御手段の制御に従って計測する計時手段と、
を有し、
前記出力制御手段は、
前記出力要求の次の新たな出力要求を受けた場合に、前記経過時間が所定時間を超えているか否かを判定する第2判定手段、
を含み、
前記出力制御手段は、前記第2判定手段によって前記経過時間が所定時間を超えていると判定された場合、前記新たな出力要求を受け入れ、前記第2判定手段によって前記経過時間が所定時間を超えていないと判定された場合、前記新たな出力要求を拒否する請求項3に記載のメモリシステム。
【請求項6】
前記所定時間は、前記新たな出力要求よりも1つ前の出力要求に応じて出力された第2情報と、当該第2情報と対となる第1情報とを用いて生成されるアプリケーションソフトウェアの実行に必要となる最小の時間である請求項5に記載のメモリシステム。
【請求項7】
前記メモリ装置は、前記第1情報を記憶する記憶手段を有し、
前記第1情報取得手段は、前記第1情報を前記メモリ装置から取得する請求項1から請求項6のいずれかに記載のメモリシステム。
【請求項8】
前記第1情報には、前記第2情報を取得するための取得情報が含まれ、
前記第2情報取得手段は、前記第1情報に含まれる前記取得情報に基づいて、前記第2情報を前記メモリ装置から取得する請求項1から請求項7のいずれかに記載のメモリシステム。
【請求項9】
記憶した情報を、アプリケーションソフトウェアを実行する情報処理装置に供給するメモリ装置であって、
前記アプリケーションソフトウェアの取得に用いる第1情報と対となる第2情報を記憶する記憶手段と、
前記情報処理装置から発行される前記第2情報の出力要求を受けて、第2情報の出力制御を行う出力制御手段と、
を備え、
前記メモリ装置は、前記第1情報および当該第1情報と対の前記第2情報を用いて、前記アプリケーションソフトウェアを取得し、当該アプリケーションソフトウェアを実行して、アプリケーションを実施する前記情報処理装置に装着されるメモリ装置。
【請求項10】
アプリケーションソフトウェアを実行する情報処理装置と、記憶した情報を前記情報処理装置に供給するメモリ装置とを含むメモリシステムの動作方法であって、
a)前記情報処理装置において、アプリケーションソフトウェアの取得に用いる第1情報を取得する工程と、
b)前記情報処理装置において、前記第1情報と対となる第2情報を、前記メモリ装置から取得する工程と、
c)前記情報処理装置において、前記第1情報および当該第1情報と対の前記第2情報を用いて、前記アプリケーションソフトウェアを取得する工程と、
d)前記c)工程において取得されたアプリケーションソフトウェアを前記情報処理装置に実行させて、アプリケーションを実施させる工程と、
を有するメモリシステムの動作方法。

【図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


【公開番号】特開2013−3894(P2013−3894A)
【公開日】平成25年1月7日(2013.1.7)
【国際特許分類】
【出願番号】特願2011−135177(P2011−135177)
【出願日】平成23年6月17日(2011.6.17)
【出願人】(591128453)株式会社メガチップス (322)
【Fターム(参考)】