(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0018】
以下、各実施形態について図面を参照して説明する。なお、異なる図面において同一の符号を付した要素は、同一または相応する要素を示すものとする。
【0019】
<1.第1実施形態>
[1−1.構成概要]
図1は、メモリ情報保護システム(単に「メモリシステム」とも称する)1Aの外観構成を示す図である。
【0020】
図1に示されるように、メモリ情報保護システム1Aは、情報処理装置10とメモリ装置20Aとを有している。
【0021】
メモリ装置20Aは、所定のアプリケーションをコンピュータ上で実施するためのアプリケーションソフトウェア(アプリケーションプログラム)を記憶(格納)している。このメモリ装置20Aは、例えばカードまたはカートリッジのような態様を有し、情報処理装置10に脱着自在に構成されている。
【0022】
情報処理装置10は、アプリケーションの進行状況に対応したデータ(対応データ)をメモリ装置20Aから順次に取得し、当該対応データに含まれるアプリケーションソフトウェアを順次に実行することによって、アプリケーションを進行させる。また、情報処理装置10は、各対応データから得られる特定情報をメモリ装置20Aに記憶させる。そして、アプリケーション進行後の所定段階において、メモリ情報保護システム1Aは、メモリ装置20Aに蓄積された特定情報に基づいて、アプリケーションを継続させるために用いる継続情報を生成し、生成された継続情報を用いてアプリケーションを継続実施させる。
【0023】
このような情報処理装置10には、例えば、パーソナルコンピュータ(パソコン)、PDA(Personal Digital Assistant)のような情報端末装置が含まれる。また、メモリ装置20Aに記憶されたアプリケーションソフトウェアがゲームプログラムである場合は、情報処理装置10は、据置型ゲーム機または携帯ゲーム機等のゲーム装置本体として機能する。
【0024】
ここで、メモリ装置20Aにアプリケーションソフトウェアとしてゲームプログラムが記憶され、情報処理装置10が、当該ゲームプログラムを実行するゲーム装置本体として機能する場合を一例にして、メモリ情報保護システム1Aの動作概要を説明する。
図2は、ゲームシステムとして動作するメモリ情報保護システム1Aの動作概要を示す図である。
【0025】
具体的には、
図2に示されるように、情報処理装置10は、ゲームの進行状況の第1段階では、第1段階に対応したA対応データDAをメモリ装置20Aから取得し、当該A対応データに含まれるAゲームプログラムPAを実行して第1段階におけるゲームを実施可能にする。またこのとき、情報処理装置10は、A対応データDAに含まれるA特定情報KAをメモリ装置20Aに転送して記憶させる。
【0026】
次に、ゲームの進行状況の第2段階では、情報処理装置10は、第2段階に対応したE対応データDEをメモリ装置20Aから取得し、当該E対応データDEに含まれるEゲームプログラムPEを実行して第2段階におけるゲームを実施可能にする。またこのとき、情報処理装置10は、E対応データDEに含まれるE特定情報KEをメモリ装置20Aに転送して記憶させる。
【0027】
同様に、ゲームの進行状況の第3段階では、情報処理装置10は、第3段階に対応したB対応データDBをメモリ装置20Aから取得し、当該B対応データDBに含まれるBゲームプログラムPBを実行して第3段階におけるゲームを実施可能にする。またこのとき、情報処理装置10は、B対応データDBに含まれるB特定情報KBをメモリ装置20Aに転送して記憶させる。
【0028】
そして、ゲームの進行状況の最終段階では、メモリ情報保護システム1Aは、メモリ装置20Aに蓄積した各特定情報KA,KE,KBを用いて最終段階用のZゲームプログラムPZを生成し、当該ZゲームプログラムPZを情報処理装置10において実行して最終段階におけるゲームを実施可能にする。
【0029】
このように、メモリ情報保護システム1Aは、進行状況に応じた各対応データから得られた各特定情報を一旦記憶する。そして、ゲームの最終段階では、記憶した特定情報を用いて、最終段階のゲームの実施に用いるZゲームプログラムを継続情報として取得するように構成される。このようなメモリ情報保護システム1Aによれば、ゲームを進行させることなく全てのゲームデータを取得することができないため、ゲームを進行させるという概念が重要になり、ゲームデータの複製が困難になる。
【0030】
[1−2.機能ブロック]
次に、メモリ情報保護システム1Aの機能構成について説明する。
図3は、第1実施形態に係るメモリ情報保護システム1Aの機能構成を示すブロック図である。
【0031】
図3に示されるように、メモリ情報保護システム1Aを構成する情報処理装置10は、制御部100と、情報処理装置10をメモリ装置20Aと電気的に接続させるためのインターフェース(I/F)110とを備えている。
【0032】
制御部100は、マイクロコンピュータとして構成され、主にCPU、RAMおよびROM等(いずれも不図示)を備えている。
【0033】
制御部100は、ROMに格納されたプログラムを読み出し、当該プログラムをCPUで実行することによって、各種機能を実現する。
【0034】
具体的には、制御部100は、ROMに格納されたプログラムの実行によって、実行制御部101を機能的に実現する。
【0035】
実行制御部101は、CPUによるアプリケーションソフトウェアの実行を制御する。また、実行制御部101は、アプリケーションを起動する(立ち上げる)際には、起動用の初期アプリケーションソフトウェアをメモリ装置20A(例えば、メモリ装置20Aの第1記憶部200)から読み出して、当該初期アプリケーションソフトウェアをCPUに実行させ、アプリケーションを開始させる。
【0036】
また、制御部100では、ROMに格納された上記プログラムの実行によって、或いは実行制御部101の制御に従いアプリケーションソフトウェアをCPUで実行することによって、データ取得部102、特定情報出力部103および継続情報取得部104が機能的に実現されることになる。
【0037】
データ取得部102は、アプリケーションの進行状況に応じて、アプリケーションの進行状況に対応したデータ(「対応データ」とも称する)を、メモリ装置20Aから取得する機能を有している。データ取得部102によって取得される対応データには、アプリケーションの進行状況に対応したアプリケーションソフトウェア(対応アプリケーションソフトウェア)と特定情報とが含まれている。対応アプリケーションソフトウェアは、実行制御部101の制御に従って、CPUで実行されることになる。
【0038】
特定情報出力部103は、データ取得部102によって取得された対応データから特定情報を取得し、当該特定情報をメモリ装置20Aに対して出力する機能を有している。特定情報の出力は、当該特定情報を含む対応データを取得する度に行われる。
【0039】
継続情報取得部104は、メモリ装置20Aに蓄積されている特定情報を用いて、アプリケーションを継続させるために用いる継続情報を取得する機能を有している。具体的には、継続情報取得部104は、特定情報をメモリ装置20Aから読み出し、読み出した特定情報に基づいて継続情報を取得する。
【0040】
一方、メモリ情報保護システム1Aを構成するメモリ装置20Aは、記憶手段としての第1記憶部200および第2記憶部210と、セキュリティ部220とを備えている。
【0041】
第1記憶部200は、マスクROMのような不揮発性の記憶部であって、アプリケーションの進行状況に対応した対応データ201を複数記憶している。
図3には、対応データ201として、A対応データ、B対応データ、C対応データ、D対応データ、およびE対応データ等が記憶されている態様が示されている。これら各対応データには、対応アプリケーションソフトウェアと特定情報とが含まれている。
【0042】
なお、
図3では、説明簡単化のために、各対応データが、A→B→C・・・と順序通りに記憶された態様を例示したが、各対応データの記憶順序はランダムであることが好ましい。
【0043】
第1記憶部200は、情報処理装置10から発行された対応データの出力コマンドを受けて、出力対象となる対応データ201を出力する。例えば、A対応データが出力対象であった場合は、当該A対応データが出力され、B対応データが出力対象であった場合は、当該B対応データが出力されることになる。
【0044】
なお、当該第1記憶部200は、マスクROMに限定されず、フラッシュメモリ、EP−ROMまたはハードディスク(HD)等であってもよい。
【0045】
セキュリティ部220は、記憶制御部221と読出制御部(出力制御部)222とを有している。
【0046】
記憶制御部221は、情報処理装置10から入力される特定情報を第2記憶部210に記憶させる記憶制御を行う。
【0047】
読出制御部222は、情報処理装置10から入力される出力コマンドに応じて、第2記憶部210に記憶された情報の出力制御を行う。例えば、情報処理装置10から入力される出力コマンドが、特定情報の出力コマンドである場合は、第2記憶部210に記憶された特定情報が情報処理装置10に対して出力されることになる。
【0048】
第2記憶部210は、フラッシュメモリのような書き換え可能な不揮発性の記憶部であって、記憶制御部221の制御に従って、情報処理装置10から入力される特定情報を記憶する。
図3では、特定情報211として、A特定情報と、E特定情報、およびB特定情報等が記憶されている態様が示されている。
【0049】
上記セキュリティ部220と第2記憶部210とは、アプリケーションの実施に用いるアプリケーションソフトウェアの複製を防止する複製防止部230として機能する。
【0050】
[1−3.メモリ情報保護システム1Aの動作]
次に、メモリ情報保護システム1Aの動作について説明する。
図4は、メモリ情報保護システム1Aの動作を示すフローチャートである。
図4では、左側に情報処理装置10の動作を示すフローチャート、右側にメモリ装置20Aの動作を示すフローチャートがそれぞれ示されている。
図5は、対応アプリケーションソフトウェアの取得情報を示す図である。
図6〜
図8は、継続情報を用いた処理を示すフローチャートである。
【0051】
メモリ情報保護システム1Aの動作開始前には、メモリ装置20Aが情報処理装置10に装着されて、それぞれのインターフェースが電気的に接続される。そして、情報処理装置10の電源投入に応じて、情報処理装置10が起動されるとともに、電源がメモリ装置20Aに供給されて、システムとしての動作が開始される。
【0052】
図4に示されるように、情報処理装置10では、電源が投入されると、実行制御部101によって、初期アプリケーションソフトウェアがメモリ装置20Aから読み出される(ステップSP101)。
【0053】
ステップSP102では、実行制御部101が、初期アプリケーションソフトウェアをCPUに実行させ、アプリケーションが開始される。
【0054】
ステップSP103では、データ取得部102によって、メモリ装置20Aに記憶されている対応データ201が取得される。
【0055】
起動後に最初に取得すべき対応データ201の情報は、初期アプリケーションソフトウェアに組み込まれている。具体的には、初期アプリケーションソフトウェアには、最初に取得すべき対応データ201の取得命令が組み込まれており、初期アプリケーションソフトウェアの実行によって、対応データ201の取得命令が発行される。データ取得部102は、当該取得命令を受けて取得対象となる対応データ201の出力コマンド(出力要求)をメモリ装置20Aに対して発行する。当該出力コマンドを受けたメモリ装置20Aは、取得対象の対応データ201を情報処理装置10に対して出力する。情報処理装置10は、このようにして取得した対応データ201を、内部のRAMに一旦格納する。
【0056】
次のステップSP104では、ステップSP103で取得した対応データ201に含まれる対応アプリケーションソフトウェアが実行制御部101の制御に従って、CPUで実行される。
【0057】
ステップSP105では、特定情報出力部103によって、対応データ201に含まれる特定情報211がメモリ装置20Aに対して出力される。特定情報の出力命令は、実行中の対応アプリケーションソフトウェアに組み込まれている。すなわち、当該対応アプリケーションソフトウェアの実行によって、特定情報の出力命令が発行される。特定情報出力部103は、当該出力命令を受けて対応データ201に含まれる特定情報211をメモリ装置20Aに対して出力する。
【0058】
対応アプリケーションソフトウェアの実行中に、情報処理装置10の動作を終了させる終了動作(例えば、情報処理装置10の電源をOFFにする動作)が実行された場合、情報処理装置10の動作は終了する(ステップSP106)。
【0059】
また、対応アプリケーションソフトウェアの実行中に、継続情報の取得命令が発行された場合、動作工程は、ステップSP107を介してステップSP108へと移行される。ステップSP108では、継続情報取得部104によってメモリ装置20Aから特定情報が読み出され、当該特定情報に基づいて継続情報の取得動作が行われる。
【0060】
継続情報取得部104によって取得される継続情報としては、以下のようなものを例示することができる。
【0061】
例えば、継続情報取得部104は、各特定情報を用いて、アプリケーションソフトウェアを継続情報として取得してもよい。具体的には、メモリ装置20Aから読み出された特定情報それぞれが、アプリケーションソフトウェアの要素である場合、継続情報取得部104は、各特定情報を用いて、アプリケーションソフトウェアを生成することによって継続情報を取得する。取得されたアプリケーションソフトウェアは、実行制御部101の制御に従って、CPUで実行されることになる。
【0062】
なお、継続情報取得部104が、アプリケーションソフトウェアを生成することによって継続情報を取得する場合、継続情報取得部104は、「ソフトウェア生成手段」とも表現できる。また、特定情報を用いて取得されるアプリケーションソフトウェアは、アプリケーションを継続させるソフトウェアであることから、「継続アプリケーションソフトウェア」とも称される。
【0063】
また例えば、継続情報取得部104は、各特定情報を用いて、鍵情報を継続情報として生成してもよい。当該鍵情報は、メモリ装置20Aから取得される、暗号化された対応データを復号化するために用いられる。
【0064】
また例えば、継続情報取得部104は、各特定情報を用いて、次のアプリケーションソフトウェア、すなわち継続アプリケーションソフトウェアを取得するための取得情報(係属アプリケーションソフトウェアの取得情報)を継続情報として生成してもよい。
【0065】
図5に示されるように、継続アプリケーションソフトウェアの取得情報には、継続アプリケーションソフトウェアの読出方法に関する情報(「継続アプリケーションソフトウェアの読出情報」とも称する)が含まれている。継続アプリケーションソフトウェアの読出情報には、継続アプリケーションソフトウェアの格納先を示す読出アドレスが含まれる。また、継続アプリケーションソフトウェアが複数のアドレスに分散して格納されている場合は、複数の読出アドレスに加えて、読出順序を示す読み出し手順に関する情報が、継続アプリケーションソフトウェアの読出情報として含まれていてもよい。
【0066】
また継続アプリケーションソフトウェアの取得情報には、継続アプリケーションソフトウェアの生成方法に関する情報(「継続アプリケーションソフトウェアの生成情報」とも称する)が含まれていてもよい。継続アプリケーションソフトウェアの生成方法に関する情報としては、例えば、継続アプリケーションソフトウェアを生成するための復号鍵または継続アプリケーションソフトウェアを生成する際のビットシフト情報等を例示することができる。
【0067】
なお、継続情報として例示した継続アプリケーションソフトウェア、鍵情報、および継続アプリケーションソフトウェアの取得情報それぞれについての取得手法に関する情報は、各特定情報のうちの1つに含めておいてもよく、初期アプリケーションソフトウェア或いは実行中の対応アプリケーションソフトウェアに含めておいてもよい。
【0068】
動作説明(
図4)に戻って、ステップSP109では、取得された継続情報を用いた処理が実行され、アプリケーションが継続実施されることになる。ここで、継続情報を用いた処理について、継続情報の種類に応じて場合分けして説明する。
【0069】
例えば、継続情報として継続アプリケーションソフトウェアが取得された場合は、
図6のような処理が実行されることになる。
【0070】
具体的には、ステップSP301において、継続情報として取得された継続アプリケーションソフトウェアが、実行制御部101の制御に従ってCPUで実行される。これにより、アプリケーションの継続実施が実現されることなる。
【0071】
継続アプリケーションソフトウェアの実行中に、情報処理装置10の動作を終了させる終了動作が実行された場合は、情報処理装置10の動作は終了する(ステップSP302)。
【0072】
また例えば、継続情報として鍵情報が取得された場合は、
図7のような処理が実行されることになる。
【0073】
具体的には、ステップSP401では、データ取得部102によって、メモリ装置20Aに記憶されている対応データ201が取得される。当該対応データ201の取得は、現在実行中の対応アプリケーションソフトウェアに組み込まれた対応データの取得命令の発行に応じて開始される。なお、ここで取得される対応データは、暗号化されているものとする。
【0074】
次のステップSP402では、継続情報として取得された鍵情報を用いて、ステップSP401で取得された対応データの復号化が行われる。
【0075】
ステップSP403では、復号化された対応データに含まれる対応アプリケーションソフトウェア(当該対応アプリケーションソフトウェアは、継続アプリケーションソフトウェアに相当する)が、実行制御部101の制御に従ってCPUで実行されることになる。これにより、アプリケーションの継続実施が実現されることなる。
【0076】
継続アプリケーションソフトウェアの実行中に、情報処理装置10の動作を終了させる終了動作が実行された場合は、情報処理装置10の動作は終了する(ステップSP404)。
【0077】
なお、上記ステップSP401では、対応データを取得する態様を例示したが、取得されるデータの種類は対応データに限らず、継続アプリケーションソフトウェアそのものであってもよい。なお、継続アプリケーションソフトウェアそのものが取得される場合、当該継続アプリケーションソフトウェアは暗号化されている。
【0078】
また例えば、継続情報として継続アプリケーションソフトウェアの取得情報が取得された場合は、
図8のような処理が実行されることになる。
【0079】
具体的には、ステップSP501では、データ取得部102によって、継続アプリケーションソフトウェアの取得情報を用いて、継続アプリケーションソフトウェアがメモリ装置20Aから取得される。
【0080】
次のステップSP502では、取得された継続アプリケーションソフトウェアが、実行制御部101の制御に従ってCPUで実行される。これにより、アプリケーションの継続実施が実現されることなる。
【0081】
継続アプリケーションソフトウェアの実行中に、情報処理装置10の動作を終了させる終了動作が実行された場合は、情報処理装置10の動作は終了する(ステップSP503)。
【0082】
このように、継続情報を用いた処理(ステップSP109)では、継続情報を用いることによってアプリケーションの継続実施が実現される。
【0083】
図4に戻って、情報処理装置10の動作が継続され(ステップSP106)、かつ継続情報の取得動作が行われない場合(ステップSP107)は、動作工程は、ステップSP103に再び移行される。ステップSP103では、メモリ装置20Aから新たな対応データが取得され、当該新たな対応データを用いた処理(ステップSP104からステップSP107の各処理)が実行されることになる。すなわち、アプリケーションが進行して、継続情報を必要とする状況になるまで、ステップSP103からステップSP107の各工程が繰り返し実行されることになる。
【0084】
このように、情報処理装置10は、継続情報を必要とする状況にアプリケーションが進行するまで、アプリケーションの進行に用いる対応データを順次に取得してアプリケーションを継続実施するとともに、対応データに含まれる特定情報を順次に出力する。そして、アプリケーションの進行によって継続情報が必要な状況になると、情報処理装置10は、メモリ装置20Aに蓄積された特定情報を用いて継続情報を取得し、アプリケーションを継続実施させる。
【0085】
一方、メモリ装置20Aでは、電源供給が開始されると、情報処理装置10のステップSP101に対応する動作が実行され、第1記憶部200から初期アプリケーションソフトウェアが出力される(ステップSP201)。
【0086】
ステップSP202では、情報処理装置10からメモリ装置20Aに入力されるコマンド(入力コマンド)の解析が行われる。そして、入力コマンドが対応データの出力コマンドであった場合、動作工程はステップSP203に移行され、入力コマンドが特定情報の出力コマンドであった場合、動作工程はステップSP205に移行される。
【0087】
入力コマンドが対応データの出力コマンドであった場合に移行されるステップSP203では、情報処理装置10のステップSP103に対応する動作が実行され、出力対象の対応データ201が第1記憶部200から出力される。
【0088】
そして、次のステップSP204では、情報処理装置10のステップSP105に対応する動作が実行され、情報処理装置10から出力された特定情報211が、セキュリティ部220の記憶制御部221の制御に従って、第2記憶部210に記憶される。
【0089】
また、入力コマンドが特定情報の出力コマンドであった場合に移行されるステップSP205では、情報処理装置10のステップSP108に対応する動作が実行され、読出制御部222の制御に従って、特定情報がメモリ装置20Aから出力される。
【0090】
ステップSP204の動作或いはステップSP205の動作が終了すると、動作工程は、ステップSP202に移行される。
【0091】
以降、上記と同様の処理が実行される。すなわち、ステップSP202では、入力コマンドの解析が行われ、対応データの出力コマンドが入力された場合は、動作工程はステップSP203に移行される。ステップSP203では、対応データの出力が行われ、ステップSP204では、情報処理装置10から出力された特定情報が第2記憶部210に記憶される。
【0092】
また、特定情報の出力コマンドがメモリ装置20Aに入力された場合は、動作工程は、ステップSP202からステップSP205に移行され、ステップSP205では、メモリ装置20Aから特定情報が出力される。
【0093】
このように、メモリ装置20Aでは、アプリケーションが終了するまで、情報処理装置10の動作に対応して、ステップSP202からステップSP205の各工程が実行されることになる。
【0094】
以上のように、メモリ情報保護システム1Aは、アプリケーションを実施させる情報処理装置10と、記憶部210を有し、情報処理装置10と電気的に接続されるメモリ装置20Aとを備えている。そして、情報処理装置10は、アプリケーションの進行に用いる対応データを取得するデータ取得部102と、データ取得部102によって取得された対応データを用いて得られる特定情報を出力する特定情報出力部103とを有し、メモリ装置20Aは、特定情報を記憶部210に記憶させる記憶制御を行う記憶制御部221を有している。さらに、メモリ情報保護システム1Aは、記憶された特定情報に基づいて、アプリケーションを継続させるために用いる継続情報を取得する継続情報取得部104を有し、情報処理装置10は、継続情報を用いてアプリケーションを継続実施させる。
【0095】
このようにメモリ情報保護システム1Aは、アプリケーションの進行に応じて、アプリケーションの進行に用いる対応データを取得しつつ、対応データを用いて得られる特定情報をメモリ装置20Aに記憶させる。そして、メモリ情報保護システム1Aは、メモリ装置20Aに記憶された特定情報に基づいて、アプリケーションを継続させるために用いる継続情報を取得する構成であるため、アプリケーションを実施することなく、メモリ装置20Aに記憶されているデータを単に抜き出しただけでは、アプリケーションを継続させるために用いる継続情報を取得することができない。したがって、メモリ装置20Aに記憶されているデータだけを抜き出してアプリケーションソフトウェアを複製しようとする無断複製者の行為を妨げることが可能になり、アプリケーションソフトウェアの複製を困難にすることができる。
【0096】
また、メモリ情報保護システム1Aでは、情報処理装置10は、アプリケーションの進行に応じてアプリケーションの進行状況に対応した、対応アプリケーションソフトウェアを順次に取得する。そして、順次に取得した対応アプリケーションソフトウェアを順次に実行して、アプリケーションの継続実施を実現する。このため、アプリケーションを進行させない限り、アプリケーションの進行順序に沿った正しいアプリケーションソフトウェアを順次に得ることができないので、メモリ装置20Aに記憶されているデータを単に抜き出しただけでは、アプリケーションソフトウェアを複製することが困難になる。
【0097】
<2.第2実施形態>
次に、第2実施形態について説明する。第2実施形態に係るメモリ情報保護システム1Bでは、特定情報の記憶順序を考慮して、メモリ装置への特定情報の記憶制御が行われる。特定情報を記憶する際に特定情報の記憶順序を考慮する点以外は、第2実施形態のメモリ情報保護システム1Bは、第1実施形態のメモリ情報保護システム1Aとほぼ同様の構造および機能を有している。このため、メモリ情報保護システム1Bにおいて、メモリ情報保護システム1Aと共通する部分については同じ符号を付して説明を省略する。
【0098】
[2−1.構成]
上述のように、本実施形態のメモリ情報保護システム1Bでは、特定情報の記憶順序を考慮して、メモリ装置への特定情報の記憶制御が行われる。以下では、このような記憶制御を行うメモリ情報保護システム1Bについて詳述する。
図9は、第2実施形態に係るメモリ情報保護システム1Bの機能構成を示すブロック図である。
【0099】
図9に示されるように、メモリ情報保護システム1Bを構成するメモリ装置20Bは、第2記憶部210において、記憶順序情報212を記憶している。記憶順序情報212は、アプリケーションの進行に応じて定められた、メモリ装置20Bへの特定情報の記憶順序(格納順序)に関する情報であり、メモリ装置20Bの製造時に第2記憶部210に予め記憶されている。当該記憶順序情報212は、セキュリティ部220の記憶制御部221の制御に従って、セキュリティ部220に出力される。
【0100】
セキュリティ部220は、記憶制御部221と読出制御部222とを有している。
【0101】
記憶制御部221は、情報処理装置10から入力される特定情報を第2記憶部210に記憶させる記憶制御を行う。
【0102】
具体的には、記憶制御部221は、情報処理装置10から入力された特定情報を把握する。そして、記憶制御部221は、第2記憶部210から得た記憶順序情報212に基づいて、情報処理装置10から入力された特定情報の記憶順序が正しいか否か(妥当か否か)を判定する。特定情報の記憶順序が正しかった場合は、記憶制御部221は、入力された特定情報を第2記憶部210に記憶させる。一方、特定情報の記憶順序が正しくなかった場合は、記憶制御部221は、入力された特定情報を記憶させずに、当該特定情報を破棄する。
【0103】
[2−2.動作]
ここで、メモリ情報保護システム1Bの動作について説明する。
図10は、メモリ情報保護システム1Bの動作を示すフローチャートである。
図10では、左側に情報処理装置10の動作を示すフローチャート、右側にメモリ装置20Bの動作を示すフローチャートがそれぞれ示されている。
【0104】
メモリ装置20Bが情報処理装置10に装着され、情報処理装置10に電源が投入されると、システムとしての動作が開始される。
【0105】
具体的には、
図10に示されるように、情報処理装置10では、第1実施形態で説明した各動作工程(ステップSP101〜ステップSP109)が実行され、第1実施形態の情報処理装置10と同様の動作が実行される。
【0106】
一方、メモリ装置20Bでは、電源供給が開始されると、情報処理装置10のステップSP101に対応した動作が実行され、第1記憶部200から初期アプリケーションソフトウェアが出力される(ステップSP211)。
【0107】
次のステップSP212では、情報処理装置10からメモリ装置20Bに入力されるコマンド(入力コマンド)の解析が行われる。そして、入力コマンドが対応データの出力コマンドであった場合、動作工程はステップSP213に移行され、入力コマンドが特定情報の出力コマンドであった場合、動作工程はステップSP217に移行される。
【0108】
入力コマンドが対応データの出力コマンドであった場合に移行されるステップSP213では、情報処理装置10のステップSP103に対応する動作が実行され、出力対象の対応データ201が第1記憶部200から出力される。
【0109】
そして、次のステップSP214〜ステップSP216では、情報処理装置10のステップSP105に対応した動作、すなわち特定情報の記憶動作が実行される。
【0110】
具体的には、ステップSP214では、記憶制御部221によって、情報処理装置10から入力された特定情報が把握される。
【0111】
次のステップSP215では、記憶制御部221によって、特定情報の記憶順序が妥当(適切)か否かが判定される。特定情報の記憶順序の妥当性判断は、例えば、既に記憶済みの特定情報に関する記憶履歴情報(格納履歴情報)およびステップSP214で記憶対象として特定された特定情報と、第2記憶部210から得られる記憶順序情報212とを比較することによって行うことができる。なお、記憶履歴情報を用いて記憶順序の妥当性判断を行う場合は、セキュリティ部220は、特定情報を記憶する度に記憶履歴情報を更新(生成)して第2記憶部210に格納しておけばよい。
【0112】
ステップSP215において、特定情報の記憶順序が妥当であると判断された場合、動作工程は、ステップSP216に移行される。ステップSP216では、記憶制御部221によって、特定情報が第2記憶部210に記憶される。そして、特定情報の記憶が終了すると動作工程は、ステップSP212に移行される。
【0113】
一方、ステップSP215において、特定情報の記憶順序が妥当でないと判断された場合、動作工程は、上記ステップSP216を経ずにステップSP212に移行される。すなわち、特定情報の記憶順序が妥当でないと判断された場合は、入力された特定情報を記憶することなく、動作工程がステップSP212に移行されることになる。
【0114】
また、入力コマンドが特定情報の出力コマンドであった場合に移行されるステップSP217では、情報処理装置10のステップSP108に対応する動作が実行され、読出制御部222の制御に従って、特定情報がメモリ装置20Bから出力される。そして、特定情報の出力が終了すると、動作工程は、ステップSP212に移行される。
【0115】
以降、上記と同様の繰り返し処理が実行される。すなわち、ステップSP212では、入力コマンドの解析が行われ、対応データの出力コマンドが入力された場合は、動作工程はステップSP213に移行される。ステップSP213では、対応データの出力が行われ、ステップSP214〜ステップSP216では、情報処理装置10から出力された特定情報の記憶動作が実行される。
【0116】
また、特定情報の出力コマンドがメモリ装置20Bに入力された場合は、動作工程は、ステップSP212からステップSP217に移行され、ステップSP217では、メモリ装置20Bから特定情報が出力される。
【0117】
このように、メモリ装置20Bでは、アプリケーションが終了するまで、情報処理装置10の動作に対応して、ステップSP212からステップSP217の各工程が実行されることになる。
【0118】
以上のように、メモリ情報保護システム1Bのメモリ装置20Bは、特定情報の記憶順序が正しいか否かを監視して、記憶順序が正しい場合、入力された特定情報を記憶し、記憶順序が正しくない場合、入力された特定情報を記憶しない。これによれば、正しい順序でアプリケーションを進行させなければ、正しい順序で特定情報をメモリ装置20Bに入力させることができないので、アプリケーションを進行させることなく、継続情報を取得するために用いる特定情報をメモリ装置20Bに蓄積することができない。したがって、継続情報を取得してアプリケーションを継続実施させるためには、アプリケーションを進行させることが必要になるので、アプリケーションを実施することなく、メモリ装置20Bに記憶されているデータだけを抜き出してアプリケーションソフトウェアを複製しようとする無断複製者の行為を妨げることが可能になる。
【0119】
<3.第3実施形態>
次に、第3実施形態について説明する。上記第1および第2実施形態に係るメモリ情報保護システム1A,1Bでは、情報処理装置10が継続情報を取得する継続情報取得部104を有していたが、メモリ装置20A(20B)が継続情報取得部を有する態様であってもよい。
【0120】
第3実施形態では、メモリ装置20Cが継続情報取得部を有する場合におけるメモリ情報保護システム1Cの一態様を例示する。なお、メモリ情報保護システム1Cにおいて、メモリ情報保護システム1Aと共通する部分については同じ符号を付して説明を省略する。
【0121】
[3−1.構成]
上述のように、本実施形態のメモリ情報保護システム1Cでは、メモリ装置20Cが継続情報取得部を有し、メモリ装置20Cにおいて継続情報が取得される。
図11は、第3実施形態に係るメモリ情報保護システム1Cの機能構成を示すブロック図である。
【0122】
図11に示されるように、メモリ情報保護システム1Cを構成するメモリ装置20Cは、第2記憶部210において、継続アプリケーションソフトウェア213と、判定値214とを記憶している。
【0123】
継続アプリケーションソフトウェア213は、アプリケーションを継続させるソフトウェアであり、メモリ情報保護システム1Cでは、第2記憶部210に予め記憶されている。
【0124】
判定値214は、メモリ装置20Cへの特定情報の正規の記憶順序(正しい記憶順序)を示す値(所定値)であり、第2記憶部210に予め記憶されている。判定値214は、メモリ装置20Cへの特定情報の記憶順序が正しいか否かを判定するために用いられ、当該判定値214は、セキュリティ部220の読出制御部222の制御に従って、セキュリティ部220に出力される。
【0125】
セキュリティ部220は、記憶制御部221と読出制御部222と継続情報取得部223とを有している。
【0126】
記憶制御部221は、情報処理装置10から入力される特定情報を第2記憶部210に記憶させる記憶制御を行う。なお、第2記憶部210に記憶される特定情報には、当該特定情報を記憶する時の記憶時間(記憶時刻)に関する情報も含まれている。記憶時間に関する情報は、情報処理装置10から出力される際に特定情報出力部103によって、或いは特定情報を第2記憶部210に記憶する際に記憶制御部221によって付加される。
【0127】
読出制御部222は、情報処理装置10から入力される出力コマンドに応じて、第2記憶部210に記憶された情報の出力制御を行う。本実施形態の読出制御部222は、継続アプリケーションソフトウェアの出力コマンドに応じて、第2記憶部210に記憶された継続アプリケーションソフトウェアの出力制御を行う。
【0128】
継続情報取得部223は、メモリ装置20Cに蓄積されている特定情報を用いて、アプリケーションを継続させるために用いる継続情報を取得する機能を有している。
【0129】
具体的には、継続情報取得部223は、特定情報を第2記憶部210から読み出し、読み出した特定情報に基づいて継続情報を取得する。ここで取得される継続情報は、第2記憶部210に記憶済みの各特定情報の記憶順序を反映した情報であり、例えば、次の手法により算出することができる。
【0130】
すなわち、継続情報取得部223は、各特定情報に含まれる記憶時間を比較することによって各特定情報の記憶順序を特定する。そして、記憶順を示す値(例えば、1,2,3・・・)を各特定情報に乗算し、乗算後の値の上位1バイトをそれぞれ加算することによって、継続情報を取得する。このようにして算出された継続情報は、記憶順序に応じて異なる値を示すデータであり、「記憶順序データ」または「記憶順序値」とも称される。
【0131】
[3−2.動作]
ここで、メモリ情報保護システム1Cの動作について説明する。
図12は、メモリ情報保護システム1Cの動作を示すフローチャートである。
図12では、左側に情報処理装置10の動作を示すフローチャート、右側にメモリ装置20Cの動作を示すフローチャートがそれぞれ示されている。
図13は、継続アプリケーションソフトウェアの出力動作を示すフローチャートである。
【0132】
メモリ装置20Cが情報処理装置10に装着され、情報処理装置10に電源が投入されると、システムとしての動作が開始される。
【0133】
具体的には、
図12に示されるように、情報処理装置10では、実行制御部101によって、初期アプリケーションソフトウェアがメモリ装置20Cから読み出される(ステップSP111)。
【0134】
ステップSP112では、上述のステップSP102と同様、実行制御部101が、初期アプリケーションソフトウェアをCPUに実行させ、アプリケーションが開始される。
【0135】
ステップSP113では、上述のステップSP103と同様、データ取得部102によって、メモリ装置20Cに記憶されている対応データ201が取得される。
【0136】
次のステップSP114では、上述のステップSP104と同様、ステップSP113で取得した対応データ201に含まれる対応アプリケーションソフトウェアが実行制御部101の制御に従って、CPUで実行される。
【0137】
ステップSP115では、上述のステップSP112と同様、特定情報出力部103によって、対応データ201に含まれる特定情報211がメモリ装置20Cに対して出力される。
【0138】
そして、対応アプリケーションソフトウェアの実行中に、情報処理装置10の動作を終了させる終了動作(例えば、情報処理装置10の電源をOFFにする動作)が実行された場合は、情報処理装置10の動作は終了する(ステップSP116)。
【0139】
また、対応アプリケーションソフトウェアの実行中に、継続アプリケーションソフトウェアの取得命令が発行された場合、動作工程は、ステップSP117を介してステップSP118へと移行される。
【0140】
ステップSP118では、データ取得部102によって、継続アプリケーションソフトウェアの出力コマンドが発行され、メモリ装置20Cから継続アプリケーションソフトウェアが読み出される。
【0141】
そして、次のステップSP119では、実行制御部101の制御に従って、継続アプリケーションソフトウェアがCPUで実行されることになる。これにより、アプリケーションの継続実施が実現されることなる。
【0142】
このように、情報処理装置10は、継続情報を必要とする状況にアプリケーションが進行するまで、アプリケーションの進行に用いる対応データを順次に取得してアプリケーションを継続実施するとともに、対応データに含まれる特定情報を順次に出力する。アプリケーションの進行によって継続アプリケーションソフトウェアが必要な状況になると、情報処理装置10は、継続アプリケーションソフトウェアの出力コマンドをメモリ装置20Cに対して発行し、メモリ装置20Cから継続アプリケーションソフトウェアを取得する。そして、情報処理装置10は、取得した継続アプリケーションソフトウェアを実行することによって、アプリケーションを継続実施させる。
【0143】
一方、メモリ装置20Cでは、電源供給が開始されると、情報処理装置10のステップSP111に対応する動作が実行され、第1記憶部200から初期アプリケーションソフトウェアが出力される(ステップSP221)。
【0144】
ステップSP222では、情報処理装置10からメモリ装置20Cに入力されるコマンド(入力コマンド)の解析が行われる。そして、入力コマンドが対応データの出力コマンドであった場合、動作工程はステップSP223に移行され、入力コマンドが継続アプリケーションソフトウェアの出力コマンドであった場合、動作工程はステップSP225に移行される。
【0145】
入力コマンドが対応データの出力コマンドであった場合に移行されるステップSP223では、情報処理装置10のステップSP113に対応する動作が実行され、出力対象の対応データ201が第1記憶部200から出力される。
【0146】
そして、次のステップSP224では、情報処理装置10のステップSP115に対応する動作が実行され、情報処理装置10から出力された特定情報211が、セキュリティ部220の記憶制御部221の制御に従って、第2記憶部210に記憶される。
【0147】
また、入力コマンドが継続アプリケーションソフトウェアの出力コマンドであった場合に移行されるステップSP225では、情報処理装置10のステップSP118に対応した継続アプリケーションソフトウェアの出力動作が実行される。
【0148】
継続アプリケーションソフトウェアの出力動作では、
図13に示される動作が実行されることになる。
【0149】
具体的には、ステップSP601では、継続情報取得部223によって、記憶順序データが継続情報として取得される。
【0150】
そして、ステップSP602では、読出制御部222によって、記憶順序データと判定値とを比較することによって、記憶順序データと判定値とが一致するか否かが判定される。
【0151】
記憶順序データと判定値とが一致する場合は、特定情報の記憶順序が妥当であったとして動作工程は、ステップSP603に移行される。ステップSP603では、読出制御部222によって、継続アプリケーションソフトウェアの出力が行われる。
【0152】
一方、記憶順序データと判定値とが一致しない場合(不一致の場合)は、特定情報の記憶順序が妥当でなかったとしてステップSP603を経ることなく継続アプリケーションソフトウェアの出力動作が終了する。すなわち、特定情報の記憶順序が正しくないと判断された場合は、継続アプリケーションソフトウェアの出力が行われない。
【0153】
このように、継続アプリケーションソフトウェアの出力動作では、継続情報取得部223によって記憶順序データが継続情報として取得される。そして、読出制御部222によって記憶順序データを用いて特定情報の記憶順序が妥当であったか否かが判定され、記憶順序が妥当であった場合、継続アプリケーションソフトウェアが出力され、記憶順序が妥当でなかった場合、継続アプリケーションソフトウェアは出力されない。
【0154】
ステップSP224の動作、或いはステップSP225の動作が終了すると、動作工程は、ステップSP222に移行され、上記と同様の処理が繰り返し実行されることになる。
【0155】
このように、メモリ装置20Cでは、アプリケーションが終了するまで、情報処理装置10の動作に対応して、ステップSP222からステップSP225の各工程が実行されることになる。
【0156】
以上のように、メモリ情報保護システム1Cのメモリ装置20Cは、継続アプリケーションソフトウェアを予め記憶している。そして、メモリ装置20Cは、特定情報の記憶順序を反映した継続情報を取得し、継続情報を用いて特定情報の記憶順序が正しいか否かを判定する。そして、特定情報の記憶順序が正しい場合、メモリ装置20C内に予め記憶された継続アプリケーションソフトウェアを出力し、特定情報の記憶順序が正しくない場合、継続アプリケーションソフトウェアを出力しない。
【0157】
これによれば、正しい順序でアプリケーションを進行させなければ、正しい順序で特定情報をメモリ装置20Cに入力させることができないので、アプリケーションを進行させることなく、正確な継続情報を取得することができない。したがって、正確な継続情報を取得して継続アプリケーションソフトウェアを取得するためには、アプリケーションを進行させることが必要になるので、アプリケーションを実施することなく、メモリ装置20Cに記憶されているデータだけを抜き出してアプリケーションソフトウェアを複製しようとする無断複製者の行為を妨げることが可能になる。
【0158】
<4.変形例>
以上、この発明の実施の形態について説明したが、この発明は、上記に説明した内容に限定されるものではない。
【0159】
例えば、上記各実施形態では、対応データ201が第1記憶部200に記憶されている態様を示したが、これに限定されない。
図14は、変形例に係るメモリ情報保護システム1Dの構成を示す図である。
図15は、変形例に係るメモリ情報保護システム1Eの構成を示す図である。
【0160】
具体的には、
図14に示されるように、変形例に係るメモリ情報保護システム1Dでは、対応データ201は、メモリ装置20Dの第2記憶部210に記憶されている。このように、上記各実施形態のメモリ装置20A(20B,20C)において、第1記憶部200に記憶されていた対応データ201および初期アプリケーションソフトウェア等は、第2記憶部210に記憶しておく態様であってもよい。なお、このようなメモリ情報保護システム1Dでは、メモリ装置20Dは、記憶手段として少なくとも第2記憶部210を有していればよい。
【0161】
また、
図15に示されるように、変形例に係るメモリ情報保護システム1Eでは、対応データ201は、メモリ装置20E以外の外部の記憶装置に記憶されている。このように、上記各実施形態のメモリ装置20A(20B,20C)において、第1記憶部200に記憶されていた対応データ201および初期アプリケーションソフトウェア等は、メモリ装置20E以外の外部の記憶装置に記憶しておく態様であってもよい。なお、メモリ情報保護システム1Eでは、メモリ装置20Eは、記憶手段として少なくとも第2記憶部210を有していればよい。
【0162】
この場合、情報処理装置10は、ネットワークを介して対応データおよび初期アプリケーションソフトウェアを取得することになる。例えば、記憶装置がサーバである場合は、情報処理装置10は、インターネットを介して初期アプリケーションソフトウェアおよび所望の主データをダウンロードする。
【0163】
また、上記各実施形態におけるセキュリティ部220の動作は、ROMおよびRAM等が接続されたCPUにおいて所定のプログラムを実行して実現される態様であってもよく、或いは、論理回路を用いてハードウェアとして実現される態様であってもよい。
【0164】
また、上記各実施形態において、情報処理装置10からメモリ装置20A(20B,20C)に転送される各特定情報は暗号化されていてもよい。具体的には、情報処理装置10の特定情報出力部103は、特定情報をメモリ装置20A(20B,20C)に送信する際に、当該特定情報に暗号化処理を施す。そして、メモリ装置20A(20B,20C)の記憶制御部221は、情報処理装置10から入力される特定情報に復号化処理を施して、復号後の特定情報を第2記憶部210に記憶させる。
【0165】
これによれば、情報処理装置10とメモリ装置20A(20B,20C)との間で転送される特定情報の解析を困難にすることができ、ひいてはアプリケーションソフトウェアの複製を困難にすることができる。
【0166】
またさらに、特定情報出力部103は、特定情報ごとに異なる暗号化処理を施すようにしてもよい。これによれば、さらに特定情報の解析を困難にすることができる。
【0167】
なお、各特定情報の暗号化に関する情報は、当該各特定情報を含んでいた各対応データに予め含めておけばよい。また、メモリ装置20A(20B,20C)において使用する復号化に関する情報は、第2記憶部210に予め格納しておけばよい。
【0168】
また、上記各実施形態では、対応データ201が特定情報211を含んでいる態様を例示していたが、これに限定されない。具体的には、対応データ201にハッシュ関数を適用してハッシュ値を算出し、当該ハッシュ値を特定情報211として用いてもよい。このようにハッシュ値を特定情報211とした場合、継続情報取得部104は、例えば、鍵情報または継続アプリケーションソフトウェアの取得情報を継続情報として取得する。
【0169】
このように、特定情報211をハッシュ値とすることによれば、特定情報自体の解析が困難になるので、アプリケーションソフトウェアの複製を困難にすることができる。
【0170】
なお、継続情報として、継続アプリケーションソフトウェアの格納先の読出アドレスを特定するために用いるルックアップテーブルを参照するためのパラメータが含まれていてもよい。この場合、継続情報取得部104は、ハッシュ値を用いてパラメータを取得し、当該パラメータを用いてルックアップテーブルを参照することによって、継続アプリケーションソフトウェアの格納先の読出アドレスを特定する。
【0171】
また、上記各実施形態では、アプリケーションの進行状況の最終段階において継続情報を取得する態様を例示していたが、これに限定されない。具体的には、アプリケーションの進行状況の中間段階において継続情報を取得する態様としてもよい。また、アプリケーションの進行状況において、継続情報を複数回取得する態様としてもよい。
【0172】
また、上記第2実施形態では、ステップSP215(
図10)において、特定情報の記憶順序が妥当でないと判断された場合、入力された特定情報を記憶することなく、動作工程を次の工程へと移行させていたが、これに限定されない。具体的には、特定情報の記憶順序が妥当でないと判断された場合、以降の対応データの出力を停止することによって、アプリケーションの進行を止めてもよい。