(57)【要約】【課題】保護対象の情報の無断実施を抑制する技術を提供する。【解決手段】ホストコンピュータ１０に接続されるメモリシステム１に、プログラム２２を格納する第１記憶部２１と、第１記憶部２１に対するアクセスを制御する第１制御部２０と、プログラム２２の使用中におけるホストコンピュータ１０の状態の履歴情報と読み出し条件に関連づけられた重要情報とを格納する第２記憶部３１と、当該履歴情報と当該読み出し条件とに応じて第２記憶部３１に格納されている重要情報をホストコンピュータ１０に出力する第２制御部３０を設ける。【選択図】図１
2013037554.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータに接続されるメモリシステムであって、
保護対象の情報を格納する第１記憶部と、
前記第１記憶部に対するアクセスを制御する第１制御部と、
前記保護対象の情報の使用中における前記ホストコンピュータの状態の履歴情報と読み出し条件に関連づけられた重要情報とを格納する第２記憶部と、
前記履歴情報と前記読み出し条件とに応じて前記第２記憶部に格納されている重要情報を前記ホストコンピュータに出力する第２制御部と、
を備えるメモリシステム。
【請求項２】
請求項１に記載のメモリシステムであって、
前記重要情報は、前記保護対象の情報を前記ホストコンピュータが使用するために使用する情報であるメモリシステム。
【請求項３】
請求項１または２に記載のメモリシステムであって、
前記第２制御部は、前記ホストコンピュータからの状態遷移命令に応じて前記履歴情報を更新するメモリシステム。
【請求項４】
保護対象の情報を使用するホストコンピュータに接続されるセキュリティメモリであって、
前記保護対象の情報の使用中における前記ホストコンピュータの状態の履歴情報と読み出し条件に関連づけられた重要情報とを格納する記憶部と、
前記履歴情報と前記読み出し条件とに応じて前記記憶部に格納されている重要情報を前記ホストコンピュータに出力する制御部と、
を備えるセキュリティメモリ。
【請求項５】
ホストコンピュータに接続されるメモリシステムに格納される保護対象の情報を保護する情報保護方法であって、
読み出し条件に関連づけられた重要情報を格納する工程と、
前記保護対象の情報の使用中における前記ホストコンピュータの状態の履歴情報を記録する工程と、
前記履歴情報と前記読み出し条件とに応じて重要情報を前記ホストコンピュータに出力する工程と、
を有する情報保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置（例えば、半導体メモリなど）に格納された情報を保護する技術に関する。
【背景技術】
【０００２】
従来より、ホストコンピュータに接続される記憶装置に記憶された保護対象の情報を不正な複製から保護する技術が知られている。例えば、そのような技術が特許文献１に記載されている。
【０００３】
特許文献１には、ホストコンピュータと接続されるメモリシステムに、プログラムを格納した記憶装置（ＲＯＭ）と、セキュリティ機能を備えたセキュリティチップとを設けている。そして、プログラムの一部を暗号化しておき、ホストコンピュータが当該プログラムの暗号を解読するために必要な複数の鍵データをセキュリティチップに格納する。このように構成することにより、ホストコンピュータは、セキュリティチップに格納された複数の鍵データを、セキュリティチップから正常に読み出さない限り、プログラムの実行が不可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２５８８５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところが、特許文献１に記載された技術において、鍵データが特定された場合には、プログラムの解読が可能になり、プログラムを無断で実施される可能性があるという問題があった。
【０００６】
本発明は、上記課題に鑑みてなされたものであり、保護対象の情報の無断実施を抑制する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、請求項１の発明は、ホストコンピュータに接続されるメモリシステムであって、保護対象の情報を格納する第１記憶部と、前記第１記憶部に対するアクセスを制御する第１制御部と、前記保護対象の情報の使用中における前記ホストコンピュータの状態の履歴情報と読み出し条件に関連づけられた重要情報とを格納する第２記憶部と、前記履歴情報と前記読み出し条件とに応じて前記第２記憶部に格納されている重要情報を前記ホストコンピュータに出力する第２制御部とを備える。
【０００８】
また、請求項２の発明は、請求項１の発明に係るメモリシステムであって、前記重要情報は、前記保護対象の情報を前記ホストコンピュータが使用するために使用する情報である。
【０００９】
また、請求項３の発明は、請求項１または２の発明に係るメモリシステムであって、前記第２制御部は、前記ホストコンピュータからの状態遷移命令に応じて前記履歴情報を更新する。
【００１０】
また、請求項４の発明は、保護対象の情報を使用するホストコンピュータに接続されるセキュリティメモリであって、前記保護対象の情報の使用中における前記ホストコンピュータの状態の履歴情報と読み出し条件に関連づけられた重要情報とを格納する記憶部と、前記履歴情報と前記読み出し条件とに応じて前記記憶部に格納されている重要情報を前記ホストコンピュータに出力する制御部とを備える。
【００１１】
また、請求項５の発明は、ホストコンピュータに接続されるメモリシステムに格納される保護対象の情報を保護する情報保護方法であって、読み出し条件に関連づけられた重要情報を格納する工程と、前記保護対象の情報の使用中における前記ホストコンピュータの状態の履歴情報を記録する工程と、前記履歴情報と前記読み出し条件とに応じて重要情報を前記ホストコンピュータに出力する工程とを有する。
【発明の効果】
【００１２】
請求項１ないし５に記載の発明は、保護対象の情報の使用中におけるホストコンピュータの状態の履歴情報と読み出し条件とに応じて重要情報をホストコンピュータに出力する。これにより、ホストコンピュータの状態の履歴に応じて重要情報が選択されるため、すべての重要情報を確実に読み出して複製するためには、発生しうるホストコンピュータの状態の履歴をすべて再現しなければならない。したがって、複製を作成することが困難となる。また、既存のホストコンピュータの設計変更を必要とせず、安価にセキュリティレベルを向上させることができる。また、例えば、保護対象の情報ごとに変更できるので、一旦、セキュリティを破られても、容易に再構築できる。
【図面の簡単な説明】
【００１３】
【図１】本発明に係るメモリシステムを備えるコンピュータシステムを示す図である。
【図２】第１の実施の形態における第２記憶部の記憶領域を例示する図である。
【図３】第１の実施の形態におけるセキュリティメモリの動作を示す流れ図である。
【図４】第１の実施の形態における読み出し条件テーブルを例示する図である。
【図５】第１の実施の形態におけるホストコンピュータの動作を示す流れ図である。
【図６】第１の実施の形態におけるプログラム進行処理を示す流れ図である。
【図７】第２の実施の形態における読み出し条件テーブルを例示する図である。
【図８】第３の実施の形態における状態履歴情報を例示する図である。
【図９】第３の実施の形態における読み出し条件テーブルを例示する図である。
【図１０】第４の実施の形態における状態履歴情報を例示する図である。
【図１１】第６の実施の形態における状態履歴情報を例示する図である。
【図１２】第７の実施の形態における第２記憶部の記憶領域を例示する図である。
【図１３】第７の実施の形態における状態特定情報を例示する図である。
【図１４】第８の実施の形態における状態特定情報を例示する図である。
【図１５】第９の実施の形態における状態特定情報を例示する図である。
【図１６】第９の実施の形態における状態履歴情報を例示する図である。
【図１７】第１０の実施の形態における読み出し条件テーブルを例示する図である。
【図１８】第１１の実施の形態における第２記憶部の記憶領域を例示する図である。
【発明を実施するための形態】
【００１４】
以下、本発明の好適な実施の形態について、添付の図面を参照しつつ、詳細に説明する。
【００１５】
＜１．  第１の実施の形態＞
図１は、本発明に係るメモリシステム１を備えるコンピュータシステムを示す図である。コンピュータシステムは、本発明に係るメモリシステム１と、一般的なコンピュータとしての機能を有するホストコンピュータ１０とを備えている。
【００１６】
メモリシステム１は、主に、ＲＯＭ２と、セキュリティメモリ３とを備えている。本実施の形態におけるメモリシステム１は、ホストコンピュータ１０のカードスロット（図示せず。）に対して着脱自在に構成されている。
【００１７】
すなわち、メモリシステム１がホストコンピュータ１０のカードスロットに装着されると、メモリシステム１とホストコンピュータ１０とが電気的に接続され、メモリシステム１にホストコンピュータ１０から電力が供給されて、メモリシステム１が動作可能な状態となる。一方、メモリシステム１がカードスロットから取り外されると、メモリシステム１は可搬性の記憶媒体として機能し、ユーザはメモリシステム１を自由に持ち運ぶことが可能となる。このようなメモリシステム１としては、例えば、メモリカードやゲームカセットが該当するがこれに限定されるものではない。
【００１８】
図１に示すように、ＲＯＭ２は、第１制御部２０と、保護対象の情報であるプログラム２２を格納する第１記憶部２１とを備えている。本実施の形態におけるＲＯＭ２は、一体型の半導体集積回路（ワンチップ構造の回路）としての構造を有している。
【００１９】
第１制御部２０は、ホストコンピュータ１０からの要求に応じて、第１記憶部２１に格納されている各種データを読み出してホストコンピュータ１０に出力する機能を有している。また、第１制御部２０は、ホストコンピュータ１０との間で、第１記憶部２１に格納されたデータ（保護対象の情報）に対するセキュリティ機能を提供する。第１制御部２０が提供するセキュリティ機能としては従来より提案されている様々な手法を適宜採用できるため、以下では詳細な説明は省略する。なお、本発明においては、ＲＯＭ２に対するセキュリティ機能は必須ではなく、第１制御部２０が特にセキュリティ機能を提供しないものでもよい。
【００２０】
第１記憶部２１は、複数の不揮発性の記憶素子が規則的に配列した構造を有している。本実施の形態における第１記憶部２１を構成する記憶素子は、ホストコンピュータ１０によるデータの書き込みができない素子である。したがって、ＲＯＭ２は、メモリシステム１においては、読み取り専用の記憶装置（例えば、マスクＲＯＭやＥＰＲＯＭなど）として構成されている。なお、第１記憶部２１を構成する記憶素子は、読み書き可能な記憶素子が採用されてもよい。
【００２１】
第１記憶部２１には、主に、プログラム２２が記憶される。ただし、プログラム２２以外にも、第１制御部２０がセキュリティ機能を提供するために必要な他のデータや様々なコンテンツに関する情報などが第１記憶部２１に格納されていてもよい。
【００２２】
プログラム２２は、保護対象の情報であり、ホストコンピュータ１０によって実行される。そして、プログラム２２には、ホストコンピュータ１０によって実行されるときの当該プログラム２２の進行状況がマーカーコード等により定義されている。以下の説明では、プログラム２２の進行状況として、当該プログラム２２には、Ｎ個の状態（Ｃ１，Ｃ２，・・・，Ｃ（Ｎ−１），ＣＮ）が定義されているものとする（Ｎは２以上の自然数）。
【００２３】
本実施の形態では、プログラム２２を起動したときの初期状態を「Ｃ１」とする。そして、プログラム２２を実行中に状態が変化（遷移）するときには、現在の状態と遷移先の状態との相対的な差がプログラム２２を実行することによりホストコンピュータ１０に通知されるものとする（そのようにプログラム２２が記述されているものとする）。
【００２４】
なお、本実施の形態における説明では、現在の状態を、「Ｃ０」と称し、直前の状態を「Ｃ−１」と称し、遷移先の状態を「Ｃ１」と称する。そして、この「Ｃ０」は、現在、ホストコンピュータ１０がプログラム２２におけるどの部分を実行しているかを示す情報であり、ホストコンピュータ１０のその時点における状態を示す情報（状態情報）である。なお、当然のことであるが、本実施の形態における「Ｃ０」は、Ｃ１，・・・，ＣＮのいずれかである。
【００２５】
セキュリティメモリ３は、第２制御部３０と、第２記憶部３１とを備えている。本実施の形態におけるセキュリティメモリ３は、ＲＯＭ２と同様に、一体型の半導体集積回路として構築されている。このように、第２制御部３０と第２記憶部３１とが単一の回路で構成されると、不正な複製を企図する者は、例えば、重要情報３３０を読み出すことが困難であり、セキュリティメモリ３を容易に制御、観測をすることができない。したがって、メモリシステム１のセキュリティ機能が向上する。
【００２６】
第２制御部３０は、セキュリティメモリ３におけるセキュリティ機能を提供するセキュリティ回路を構成している。第２制御部３０は、ホストコンピュータ１０からの要求に応じて、第２記憶部３１に格納されている各種データを読み出してホストコンピュータ１０に出力する機能と、第２記憶部３１に各種データを格納する機能とを有している。すなわち、第２制御部３０は、第２記憶部３１に対するアクセスを制御する機能を有している。また、第２制御部３０は、第２記憶部３１に格納されている情報を管理する機能を有しているが、第２制御部３０の機能および動作の詳細については、後述する。
【００２７】
図２は、第１の実施の形態における第２記憶部３１の記憶領域を例示する図である。第２記憶部３１は、複数の不揮発性の記憶素子が規則的に配列した構造を有している。本実施の形態における第２記憶部３１を構成する記憶素子は、ホストコンピュータ１０によるデータの読み出しのみならず、データの書き込みも可能な記憶素子（例えば、フラッシュメモリ）である。したがって、セキュリティメモリ３は、メモリシステム１において、読み書き可能な記憶装置として構成されている。
【００２８】
図２に示すように、第２記憶部３１の記憶領域には、ユーザ領域３２とセキュリティ領域３３とが定義されている。
【００２９】
ユーザ領域３２は、セーブデータ１３０が格納される領域である。ユーザ領域３２に対して、ホストコンピュータ１０は、一般的なフラッシュメモリと同等のアクセス制御により、データの格納、消去、読み出しが可能である。
【００３０】
また、セキュリティ領域３３は、重要情報３３０、読み出し条件テーブル３３１、および、状態履歴情報３３２が格納される領域である。
【００３１】
セーブデータ１３０は、ホストコンピュータ１０において作成され、メモリシステム１に転送されて格納されるデータであり、主に、プログラム２２の実行を、当該セーブデータ１３０が作成された時点から再開させるときに読み出されるバックアップ用のデータである。このように、セーブデータ１３０を格納することにより、本実施の形態におけるセキュリティメモリ３は、データセーブ用のバックアップメモリとしても兼用されている。なお、セーブデータ１３０は、プログラム２２を中断する際に、ユーザの指示により作成されるが、ホストコンピュータ１０が自動的に（ユーザの指示によらずに）作成してもよい。
【００３２】
重要情報３３０は、プログラム２２（保護対象の情報）をホストコンピュータ１０が使用するために、ホストコンピュータ１０によって使用される情報である。すなわち、ホストコンピュータ１０がプログラム２２を実行し、正常に進行させ続けるためには、少なくとも特定の時点において重要情報３３０が必要となるようにプログラム２２が予め記述されている。このような重要情報３３０としては、例えば、プログラム２２の一部が相当する。本実施の形態におけるコンピュータシステムでは、ホストコンピュータ１０は、適切なタイミングで、メモリシステム１から重要情報３３０を読み出して取得しておかなければ、プログラム２２を正常に進行させ続けることが不可能な状態に陥る。
【００３３】
また、重要情報３３０は、出力ファイルを１つの単位とする情報の集合体である。すなわち、重要情報３３０には、１つ以上の出力ファイルが含まれている。１つの出力ファイルとは、ホストコンピュータ１０がプログラム２２を実行しているときの、ある時点で必要となる一塊の情報とする。
【００３４】
読み出し条件テーブル３３１は、メモリシステム１（第２記憶部３１）から重要情報３３０を読み出すための条件を定義する情報である。より詳細には、読み出し条件テーブル３３１には、重要情報３３０に含まれる各出力ファイルを読み出すための条件と、当該条件に合致したときに読み出される出力ファイルの格納アドレス（セキュリティ領域３３のアドレス）とが関連づけられて格納されている。
【００３５】
状態履歴情報３３２は、プログラム２２（保護対象の情報）の使用中におけるホストコンピュータ１０の状態が、これまでに、どのような経緯を経て遷移してきたかを示す情報である。
【００３６】
本実施の形態では、すでに説明したように、ホストコンピュータ１０の現在の状態は「Ｃ０」であり、Ｃ１，・・・，ＣＮのいずれかである。ここで、プログラム２２を実行中におけるホストコンピュータ１０の「Ｃ０」が、プログラム２２の正常な進行に関して、逆行することなく遷移するように定義されるならば、状態履歴情報３３２にはせいぜいＮ個の状態が記録されるだけである（状況によって遷移しない状態が存在するならばＮ個より少ない場合もあり得る。）。
【００３７】
もちろん、このように状態（Ｃ１，・・・，ＣＮ）を定義してもよい。しかし、そのような遷移は、「Ｃ０」が単純にインクリメントされていくだけであるため、第三者に見破られる可能性が高まり、セキュリティ上、ふさわしいとはいえない。したがって、本実施の形態では、「Ｃ０」は、プログラム２２の実行状況によっては、直前の「Ｃ−１」に対して逆行することもあれば、飛ばされる（あるいは遷移しない）こともあるものとして定義する。
【００３８】
例えば、正常な遷移ルートであっても、「Ｃ１」、「Ｃ３」、「Ｃ５」、「Ｃ３」と遷移して最後に「ＣＮ」となって終了する場合や、「Ｃ２」、「Ｃ６」、「Ｃ３」と遷移して最後に「Ｃ４」となって終了する場合など、「Ｃ０」の遷移順序や遷移回数に制限がなく、あらゆるパターンが想定できるものとする。だだし、プログラム２２において「Ｃ０」の遷移ルートに制限を設けない場合であっても、論理上の制限を設けることはもちろん可能である。例えば、プログラム２２の実行上、二者択一的な状態をそれぞれ「Ｃ４」と「Ｃ５」と定義し、両方の状態を遷移したことが記録された場合には論理的に「異常」であると判定するなどである。
【００３９】
本実施の形態に採用するように、状態（Ｃ０）の遷移ルートに制限を設けない場合において、現実に遷移した全ての状態を、その遷移順も含めて状態履歴情報３３２に記録することはもちろん可能である。しかし、そのように構成すると、状態履歴情報３３２のサイズが膨大になる懸念があり、第２記憶部３１の記憶容量を圧迫するという問題が生じ得る。
【００４０】
例えば、遊技中のユーザが物語りを先に進めるためのアイテムを見つけることができなくて、「Ｃ３」と「Ｃ４」とを延々と繰り返したりすると、状態履歴情報３３２には「Ｃ３」、「Ｃ４」、「Ｃ３」、「Ｃ４」・・・と無限に状態が記録されることになる。このような場合まで想定して、状態履歴情報３３２のための記憶領域を確保しておくのは現実的ではない。
【００４１】
そこで、プログラム２２の進行に伴って状態履歴情報３３２の容量が増大することを抑制するために、本実施の形態における状態履歴情報３３２のフォーマットは、直近の過去における４つの状態および「Ｃ０」のみを、遷移順に格納するフォーマットとして決定されている。すなわち、現在の状態である「Ｃ０」を含めて、最大で５つの状態のみが遷移順に格納されるフォーマット（Ｃ−４，Ｃ−３，Ｃ−２，Ｃ−１，Ｃｎ）を採用する。
【００４２】
例えば、状態がＣ１→Ｃ２→Ｃ５→Ｃ３→Ｃ４→Ｃ７→Ｃ８→Ｃ３→Ｃ５と遷移し現在の状態（Ｃ０）が「Ｃ９」となっているとき、状態履歴情報３３２には「Ｃ７」、「Ｃ８」、「Ｃ３」、「Ｃ５」、「Ｃ９」が順番に記録され、それ以前の状態は削除されている。そして、その後、状態が「Ｃ９」から「Ｃ８」に遷移すると、当該状態履歴情報３３２から最古の記録である「Ｃ７」が削除され、新しく更新された状態履歴情報３３２は「Ｃ８」、「Ｃ３」、「Ｃ５」、「Ｃ９」、「Ｃ８」が順番に記録されたものとなる。
【００４３】
これにより、本実施の形態では、状態履歴情報３３２を格納する領域（第２記憶部３１の記憶領域）として、最大で、５つの状態を記録できる容量を確保しておけばよいことになる。なお、状態履歴情報３３２において、記録する過去の状態は、直近の４つに限定されるものではない。４つより少なくてもよいし、４つより多くてもよい。また、過去の状態を記録しないというフォーマットでもよい。ただし、セキュリティの強度的には、記録される状態の数が多い方が、状態履歴情報３３２に記録される状態の遷移パターンが増えるので好ましい。
【００４４】
図１に戻って、ホストコンピュータ１０は、制御部１１、入力装置１４、出力装置１５およびインタフェース１６を備えている。また、ホストコンピュータ１０は、図示しないカードスロットを備えており、当該カードスロットにメモリシステム１を装着することが可能である。
【００４５】
制御部１１は、各種のデータの演算を行うとともにホストコンピュータ１０が備える各種ハードウェアを制御するＣＰＵ１２と、各種のデータを記憶する記憶部１３とを備えている。これにより、ホストコンピュータ１０は、一般的なコンピュータとしての構成および機能を備えている。
【００４６】
ホストコンピュータ１０の制御部１１は、第１記憶部２１に格納されているプログラム２２を第１制御部２０を介して記憶部１３にロードしつつ、実行する機能を有している。
【００４７】
また、制御部１１は、メモリシステム１に対して、適宜、コマンドを発行する。制御部１１が発行するコマンドとしては、特に、プログラム読み出しコマンド（以下、「コマンドＲＰ」と称する。）、重要情報読み出しコマンド（以下、「コマンドＲＩ」と称する。）、状態制御コマンド（以下、「コマンドＣＣ」と称する。）、状態読み出しコマンド（以下、「コマンドＲＣ」と称する。）がある。
【００４８】
プログラム読み出しコマンド（コマンドＲＰ）は、ＲＯＭ２の第１制御部２０に対して発行されるコマンドであり、第１記憶部２１に格納されているプログラム２２の一部を出力するように要求するコマンドである。プログラム２２は、ホストコンピュータ１０におけるプログラム２２の進行状況（すなわち、現在の状態である「Ｃ０」）に応じて、適宜、第１記憶部２１から読み出して実行する必要がある。
【００４９】
したがって、ホストコンピュータ１０の制御部１１は、「Ｃ０」に対応したコマンドＲＰを第１制御部２０に対して出力することにより、「Ｃ０」に応じた追加のプログラム２２を第１記憶部２１から記憶部１３にロードする。これにより、追加で読み出されたプログラム２２がホストコンピュータ１０において実行可能となり、これを実行することによりプログラム２２が進行する。
【００５０】
なお、以下では、「Ｃ０」に対応したコマンドＲＰを「コマンドＲＰＣｎ」と称する。すなわち、「Ｃ０」が「Ｃ１」である場合に発行されるコマンドＲＰは、「コマンドＲＰＣ１」であり、「Ｃ０」が「ＣＮ」である場合に発行されるコマンドＲＰは、「コマンドＲＰＣＮ」である。
【００５１】
重要情報読み出しコマンド（コマンドＲＩ）は、セキュリティメモリ３の第２制御部３０に対して発行されるコマンドであり、第２記憶部３１に格納されている重要情報３３０（より詳細には出力ファイル）を出力するように要求するコマンドである。
【００５２】
状態制御コマンド（コマンドＣＣ）は、セキュリティメモリ３の第２制御部３０に対して発行されるコマンドであり、状態履歴情報３３２に記録されている現在の状態である「Ｃ０」を変更するように要求するコマンドである。コマンドＣＣは、変更先（遷移先）の状態（Ｃ１）を示す情報（付加情報）とともに、第２制御部３０に出力される。
【００５３】
本実施の形態では、コマンドＣＣに付加される情報は、「Ｃ１」と「Ｃ０」との定義順における相対的な差で示した情報とする。例えば、「Ｃ０」が「Ｃ１０」であった場合において、コマンドＣＣとともに伝達される付加情報が「＋２」であれば「Ｃ１」は「Ｃ１０」から２つ進んだ「Ｃ１２」であることを意味し、付加情報が「−２」であれば「Ｃ１」は「Ｃ１０」から２つ戻った「Ｃ８」であることを意味する。
【００５４】
状態読み出しコマンド（コマンドＲＣ）は、セキュリティメモリ３の第２制御部３０に対して発行されるコマンドであり、状態履歴情報３３２に記録されている現在の状態である「Ｃ０」を出力するように要求するコマンドである。
【００５５】
なお、制御部１１は、この他にも、セーブデータ１３０を第２記憶部３１に格納するためのコマンド（コマンドＷＵ）や、セーブデータ１３０を読み出すコマンド（コマンドＲＵ）など、様々なコマンドを発行する機能を有しているが、詳細は省略する。
【００５６】
記憶部１３は、ＣＰＵ１２の一時的なワーキングエリアとして使用されるＲＡＭ（一般的には、高速アクセス可能な揮発性の記憶装置が採用される。）や、ホストコンピュータ１０の起動プログラム（図示せず）等を格納しておく読み取り専用のＲＯＭなどのハードウェアから構成されている。
【００５７】
入力装置１４は、ホストコンピュータ１０に各種の情報を入力するために設けられる装置である。入力装置１４としては、例えば、コントローラ、キーボード、タッチパネル、各種ポインタ、ジョイスティック等が該当するが、これらのすべてを備えている必要はないし、これらと異なる装置を備えていてもよい。
【００５８】
出力装置１５は、ホストコンピュータ１０の各種状態をユーザに通知するために出力する装置である。出力装置１５としては、例えば、液晶パネル、ＬＥＤ、ランプ、スピーカ、プリンタ等が該当するが、これらのすべてを備えている必要はないし、これらと異なる装置を備えていてもよい。
【００５９】
インタフェース１６は、メモリシステム１とホストコンピュータ１０とを電気的に接続する機能を提供する。すなわち、メモリシステム１は、ホストコンピュータ１０の図示しないカードスロットに物理的に装着され、インタフェース１６に電気的に接続される。
【００６０】
以上が、メモリシステム１を含むコンピュータシステムの構成および機能の説明である。次に、コンピュータシステムの動作を説明しつつ、本実施の形態における情報保護方法について説明する。
【００６１】
図３は、第１の実施の形態におけるセキュリティメモリ３の動作を示す流れ図である。セキュリティメモリ３は、起動中のホストコンピュータ１０にメモリシステム１が装着された状態で動作する。なお、以下において、ＲＯＭ２（第１制御部２０）の動作については、従来の技術を適用することが可能であるため、適宜説明を省略する。
【００６２】
メモリシステム１が動作中において、セキュリティメモリ３の第２制御部３０は、ホストコンピュータ１０からの各種コマンドを受け付けることが可能な状態となっている（ステップＳ１，Ｓ４，Ｓ７）。以下、第２制御部３０がホストコンピュータ１０からのコマンドを受け付けることが可能となっている状態を「待ち受け状態」と称する。ただし、第２制御部３０が待ち受け状態において受け付けることが可能なコマンドは図３に示すものに限定されるものではない。
【００６３】
待ち受け状態において、ホストコンピュータ１０からコマンドＣＣ（状態制御コマンド）が入力されると（ステップＳ１においてＹｅｓ）、第２制御部３０は、遷移先の状態である「Ｃ１」を特定する（ステップＳ２）。具体的には、この時点の状態履歴情報３３２を参照して、当該状態履歴情報３３２に記録されている「Ｃ０」と、コマンドＣＣの付加情報とに基づいて、新たに遷移する「Ｃ１」を特定する。
【００６４】
次に、特定した新たに遷移する「Ｃ１」に基づいて状態履歴情報３３２を更新する（ステップＳ３）。具体的には、この時点の状態履歴情報３３２における「Ｃ−４」を「Ｃ−３」で上書きし、「Ｃ−３」を「Ｃ−２」で上書きし、「Ｃ−２」を「Ｃ−１」で上書きし、「Ｃ−１」を「Ｃ０」で上書きし、「Ｃ０」をステップＳ２で特定した「Ｃ１」で上書きする。なお、「Ｃ−４」をステップＳ２で特定した「Ｃ１」で上書きして、現在の状態を示すポインタを移動させてもよい。
【００６５】
待ち受け状態において、ホストコンピュータ１０からコマンドＲＣ（状態読み出しコマンド）が入力されると（ステップＳ４においてＹｅｓ）、第２制御部３０は、状態履歴情報３３２を参照し、当該状態履歴情報３３２に記録されている「Ｃ０（現在の状態）」を読み出す（ステップＳ５）。そして、第２制御部３０は、ステップＳ５において読み出した「Ｃ０」を、ホストコンピュータ１０に向けて出力する（ステップＳ６）。
【００６６】
待ち受け状態において、ホストコンピュータ１０からコマンドＲＩ（重要情報読み出しコマンド）が入力されると（ステップＳ７においてＹｅｓ）、第２制御部３０は、状態履歴情報３３２を読み出す（ステップＳ８）。
【００６７】
次に、読み出し条件テーブル３３１を参照し（ステップＳ９）、ステップＳ８で読み出した状態履歴情報３３２と合致する読み出し条件が、読み出し条件テーブル３３１に存在するか否かを判定する（ステップＳ１０）。
【００６８】
状態履歴情報３３２と合致する読み出し条件が読み出し条件テーブル３３１に存在しない場合（ステップＳ１０においてＮｏ）、第２制御部３０は、ホストコンピュータ１０にダミーデータを出力する（ステップＳ１１）。
【００６９】
図２において図示を省略しているが、本実施の形態における第２記憶部３１には、ダミーデータ（プログラム２２を進行するために使用することのない情報）がいくつか準備されている。そして、ステップＳ１０においてＮｏの場合、第２制御部３０は、ダミーデータテーブル（図示せず）を参照する。ダミーデータテーブルには、各ダミーデータを読み出すための条件と、当該条件に合致したときに読み出されるダミーデータの格納アドレスとが関連づけられて格納されている。第２制御部３０は、当該ダミーデータテーブルから選択したダミーデータをステップＳ１１において出力する。
【００７０】
なお、ダミーデータの読み出し条件は、例えば、乱数に応じたランダムな条件であってもよいし、「Ｃ０」であってもよい。すなわち、現在の状態に応じたダミーデータが選択され、出力されてもよい。また、本実施の形態では、ステップＳ１１においてダミーデータを出力するが、その代わりに、エラーを返す、あるいは、以降の動作を限定する、もしくは、何も受け付けない等の処理を行ってもよい。また、ダミーデータは複数用意されているうちから選択されることが好ましいが、常に同じダミーデータが出力されてもよい。あるいは、ダミーデータは予め準備されるのではなく、出力する際に、乱数などによって生成されてもよい。
【００７１】
一方、状態履歴情報３３２と合致する読み出し条件が読み出し条件テーブル３３１に存在する場合（ステップＳ１０においてＹｅｓ）、第２制御部３０は、合致した読み出し条件に対応している格納アドレスを、読み出し条件テーブル３３１から取得する。そして、第２制御部３０は、取得したアドレスで示されるセキュリティ領域３３に格納されている重要情報３３０を読み出して、ホストコンピュータ１０に出力する（ステップＳ１２）。
【００７２】
図４は、第１の実施の形態における読み出し条件テーブル３３１を例示する図である。図４に示すように読み出し条件テーブル３３１には、読み出し条件と、重要情報３３０の出力ファイル（Ｊ１，Ｊ２，Ｊ３，・・・）とが関連づけられている。なお、実際の読み出し条件テーブル３３１では、直接、出力ファイルが格納され関連づけられるのではなく、すでに説明したように、出力ファイルの格納アドレスが格納され関連づけられている。
【００７３】
図４に示す例では、出力ファイルＪ１および出力ファイルＪ２は、いずれも「Ｃ０」が「Ｃ５」のときにセキュリティメモリ３が出力する重要情報３３０である。このように、セキュリティメモリ３は、「Ｃ０」が同じであっても、状態の遷移ルートの違い（本実施の形態では、直近の過去の４つの状態の違い）によって、異なる重要情報３３０を出力することができる。一方で、出力ファイルＪ１の読み出し条件として５つのパターンが定義されており、異なる遷移ルートであっても、同じ重要情報３３０を出力することもできる。したがって、プログラム２２の作り方の多様性が得られる。
【００７４】
また、すでに説明したように、出力ファイルＪ１については読み出し条件として５つのパターンが定義されており、出力ファイルＪ２の読み出し条件として２つのパターンが定義されている。すなわち、状態履歴情報３３２において「Ｃ０」が「Ｃ５」となっている状況において、上記の７つのパターンのみが許容され、これ以外のパターンでは、いずれの出力ファイルの読み出し条件も合致しないことになる。そして、その場合は、ステップＳ１１が実行され、ダミーデータが出力される。
【００７５】
また、図４に示す例では、読み出し条件テーブル３３１において、「Ｃ０」が「Ｃ１」ないし「Ｃ４」のときに出力される重要情報３３０が定義されていない。したがって、図４に示す例では、例えば、状態履歴情報３３２において「Ｃ０」が「Ｃ３」のときに、コマンドＲＩが入力されると、遷移ルートにかかわらず、読み出し条件に合致せず、ダミーデータが出力されることになる。このように、「Ｃ０」がＣ１，・・・，ＣＮのいずれである場合にも、必ず何らかの重要情報３３０が出力されるように定義する必要はない。
【００７６】
以上が第１の実施の形態におけるセキュリティメモリ３の動作である。次に、ホストコンピュータ１０の動作を説明する。
【００７７】
図５は、第１の実施の形態におけるホストコンピュータ１０の動作を示す流れ図である。なお、図５に示される各工程は、特に断らない限り、ホストコンピュータ１０の制御部１１により実行される工程を示す。
【００７８】
電源が投入されると、ホストコンピュータ１０は、まず、所定の初期設定を実行する（ステップＳ２１）。ステップＳ２１では、記憶部１３のＲＯＭに記憶されている起動プログラムがＣＰＵ１２により実行され、ホストコンピュータ１０の初期画面が出力装置１５に表示される。
【００７９】
初期設定が終了すると、ホストコンピュータ１０は、メモリシステム１が装着されているか否かを判定する（ステップＳ２２）。そして、メモリシステム１を検出すると、ホストコンピュータ１０は、メモリシステム１（セキュリティメモリ３）に対してコマンドＲＣを発行し、セキュリティメモリ３から「Ｃ０」を取得する。ここでは、どの状態からプログラム２２の実行を開始するのかを決定するために「Ｃ０」が要求される。
【００８０】
次に、取得した「Ｃ０」に応じて、ホストコンピュータ１０がメモリシステム１（ＲＯＭ２）にコマンドＲＰＣ０を発行し、ＲＯＭ２からコマンドＲＰＣ０に応じたプログラム２２（「Ｃ０」から開始するために必要なプログラム２２）を記憶部１３にロードする（ステップＳ２３）。そして、ホストコンピュータ１０は、ロードしたプログラム２２を実行することにより、プログラム進行処理（ステップＳ２４）を開始する。
【００８１】
プログラム進行処理は、入力装置１４からプログラム２２の終了が指示されるまで、ステップＳ２５においてＮｏと判定されることにより、継続される。ただし、プログラム２２の終了は入力装置１４からの指示に限定されるものではなく、他の方法で指示されてもよい。
【００８２】
図６は、第１の実施の形態におけるプログラム進行処理を示す流れ図である。ホストコンピュータ１０は、プログラム２２を進行させつつ、プログラム２２を進行させることにより検出される各種の状態を監視している（ステップＳ３０，Ｓ３２，Ｓ３７）。ただし、ホストコンピュータ１０が監視している状態は、図６に示されるものに限定されるものではない。
【００８３】
プログラム進行処理において、プログラム２２が進行することにより、状態遷移がされると（ステップＳ３０においてＹｅｓ。）、ホストコンピュータ１０はメモリシステム１（セキュリティメモリ３）に対してコマンドＣＣを発行する（ステップＳ３１）。
【００８４】
コマンドＣＣが発行されると、すでに説明したように、セキュリティメモリ３の第２制御部３０が、遷移先の状態である「Ｃ１」に応じて、状態履歴情報３３２を更新する。このようにして、コンピュータシステムは、状態履歴情報３３２を管理する。
【００８５】
プログラム進行処理において、新たに追加のプログラム２２が要求されると（ステップＳ３２においてＹｅｓ。）、ホストコンピュータ１０はメモリシステム１（セキュリティメモリ３）に対してコマンドＲＣを発行する（ステップＳ３３）。
【００８６】
コマンドＲＣが発行されると、すでに説明したように、セキュリティメモリ３の第２制御部３０が、状態履歴情報３３２を参照して、「Ｃ０」をホストコンピュータ１０に出力する。これにより、ホストコンピュータ１０は、現在の状態「Ｃ０」を取得する（ステップＳ３４）。
【００８７】
このように、本実施の形態におけるホストコンピュータ１０は、例えば、記憶部１３に現在の状態である「Ｃ０」を保持したりしていないが、コマンドＲＣをセキュリティメモリ３に発行することにより、必要に応じて、「Ｃ０」を問い合わせることができる。
【００８８】
次に、ホストコンピュータ１０は、メモリシステム１（ＲＯＭ２）に対して、ステップＳ３４において取得した「Ｃ０」に対応するコマンドＲＰＣ０を発行する（ステップＳ３５）。
【００８９】
コマンドＲＰＣ０が発行されると、ＲＯＭ２の第１制御部２０が、ホストコンピュータ１０の「Ｃ０」に応じたプログラム２２の一部（追加のプログラム２２）を第１記憶部２１から読み出してホストコンピュータ１０に出力する。これにより、ホストコンピュータ１０は、適切な、追加のプログラム２２を取得する（ステップＳ３６）。
【００９０】
以降、ホストコンピュータ１０は、ステップＳ３６で取得したプログラム２２を実行しつつ、プログラム進行処理を継続する。このように、ホストコンピュータ１０は、新たなプログラム２２が必要になるたびに、現在の状態である「Ｃ０」をメモリシステム１に通知して、必要なプログラム２２を第１制御部２０に要求し取得することができる。
【００９１】
プログラム進行処理において、重要情報３３０が要求されると（ステップＳ３７においてＹｅｓ。）、ホストコンピュータ１０はメモリシステム１（セキュリティメモリ３）に対してコマンドＲＩを発行する（ステップＳ３８）。
【００９２】
コマンドＲＩが発行されると、すでに説明したように、セキュリティメモリ３の第２制御部３０が、その時点の状態履歴情報３３２を用いて読み出し条件テーブル３３１を検索し、重要情報３３０から出力する出力ファイルを選択してホストコンピュータ１０に出力する。これにより、ホストコンピュータ１０は、重要情報３３０（必要な出力ファイル）を取得する（ステップＳ３９）。
【００９３】
なお、コマンドＲＩが発行されたときの状態履歴情報３３２が、いずれの出力ファイルの読み出し条件とも一致しない場合、メモリシステム１からはダミーデータが出力される。したがって、この場合、ステップＳ３９では、重要情報３３０を取得できていないことになるが、プログラム２２を実行中のホストコンピュータ１０はメモリシステム１から出力されたダミーデータが本来取得すべき重要情報３３０であるか否かを判定する術はない。したがって、ダミーデータを取得した場合も、ホストコンピュータ１０は、そのままプログラム進行処理を継続する。そして、現実に重要情報３３０を使用する段階になって、初めて、ホストコンピュータ１０はプログラム２２の続行が不可能な状態に陥り、停止することになる。
【００９４】
以上のように、第１の実施の形態におけるメモリシステム１は、ホストコンピュータ１０に接続され、保護対象の情報としてのプログラム２２を格納する第１記憶部２１と、第１記憶部２１に対するアクセスを制御する第１制御部２０と、プログラム２２の使用中におけるホストコンピュータ１０の状態の履歴情報（状態履歴情報３３２）と読み出し条件テーブル３３１によって読み出し条件に関連づけられた重要情報３３０とを格納する第２記憶部３１と、状態履歴情報３３２と読み出し条件テーブル３３１における読み出し条件とに応じて第２記憶部３１に格納されている重要情報３３０をホストコンピュータ１０に出力する第２制御部３０とを備える。
【００９５】
これにより、ホストコンピュータ１０の状態の履歴（状態履歴情報３３２）に応じて重要情報３３０が選択されるため、すべての重要情報３３０を確実に読み出して複製するためには、発生しうるホストコンピュータの状態の履歴（状態履歴情報３３２）をすべて再現しなければならない。したがって、プログラム２２の不正な複製を作成することが困難となり、プログラム２２の無断実施を抑制することができる。また、既存のホストコンピュータ１０の設計変更を必要とせず、安価にセキュリティレベルを向上させることができる。
【００９６】
また、例えば、ゲームタイトルごとや改訂版ごとに頻繁に読み出し条件や定義される状態等を変更でき、不正な複製者は、その度に解析作業を行わなければならず、違法な複製品（海賊版）を製造するまでに一定以上の時間を要することとなる。特に、プログラム２２がゲームソフトウェアなどである場合、発売開始直後から海賊版が流通すると正規版の売れ行きに大きな影響がでてしまうという特性がある。したがって、このような市場の製品においては、例え完全に海賊版の製造を防止できなくとも、発売開始から一定期間でも海賊版の出現を遅らせることができるならばその効果は大きいといえる。
【００９７】
なお、重要情報３３０を、ホストコンピュータ１０が使用することのない情報とし、単に、重要情報３３０を読み出すことができたか否かのみで、正常または異常を判定することも可能である。しかし、このように構成すると、常に重要情報３３０が読み出せたかのように振る舞うプログラム（例えば重要情報３３０を読み出すルーチンを削除したプログラムなど）に書き換えるだけで、実質的にプログラム２２を実行することができる状態にされるおそれがある。しかし、重要情報３３０は、プログラム２２をホストコンピュータ１０が使用するために、ホストコンピュータ１０によって現実に使用される情報であるため、第三者は、現実に、重要情報３３０を読み出さない限り、プログラム２２の正常な実行が不可能な状態に陥る。したがって、セキュリティレベルが向上する。
【００９８】
また、第２制御部３０は、ホストコンピュータ１０からの状態制御コマンドに応じて状態履歴情報３３２を更新する。したがって、複雑な処理や、特殊なハードウェアを用いることなく実現できる。
【００９９】
なお、セキュリティ強化の側面からは、正常に読み出される重要情報３３０は、プログラム２２を進行させるときに必ずホストコンピュータ１０が使用する情報とし、これが読み出されていない限り、プログラム２２が停止するように構成することが好ましい。しかし、読み出された重要情報３３０が、ホストコンピュータ１０において必ず使用されなければならないわけではない。
【０１００】
例えば、図４に示す例において、出力ファイルＪ１および出力ファイルＪ２は、ともに現在の状態である「Ｃ０」が「Ｃ５」のときに出力される重要情報３３０である。しかし、出力ファイルＪ１が出力される状況では、出力ファイルＪ１が取得されていなければプログラム２２が停止するが、出力ファイルＪ２が出力される状況では出力ファイルＪ２が取得されていなくてもプログラム２２が停止しないといった設計も可能である。すなわち、出力ファイルＪ２が出力される状況とは、プログラム２２の進行状況としては正常である（停止させる必要はない）が、特に、重要情報３３０は必要ないという状況として定義してもよい。
【０１０１】
もちろん、このような場合において、そもそも出力ファイルＪ２を読み出し条件テーブル３３１に定義しないことも可能である。その場合は、上記状況においては、メモリシステム１からダミーデータが出力されることになり、ダミーデータが出力される状況が直ちに「異常」と判定する状況ではないことになる。
【０１０２】
逆に、上記のように出力ファイルＪ２を使用しない情報とするならば、出力ファイルＪ２はダミーデータであるとも言える。すなわち、重要情報３３０には、ホストコンピュータ１０において使用されないダミーデータが含まれていてもよい。
【０１０３】
また、重要情報３３０はプログラム２２を継続して進行させるときに使用される情報（例えば、プログラム２２の一部。）として説明した。しかし、例えば、重要情報３３０の読み出しに失敗したときに出力されるダミーデータがプログラム２２を停止させる情報として構成されていてもよい。すなわち、プログラム２２をホストコンピュータ１０が継続して使用するために必要となるのは「重要情報３３０が正常に読み出されることによって、正常な状態と判定されること」であって、取得された重要情報３３０が現実に使用されなければならないわけではない。ただし、セキュリティ強化の側面からは、すでに説明したように、正常に取得された重要情報３３０が、プログラム２２を進行させる上で、使用されるように構成しておくことが好ましい。
【０１０４】
＜２．  第２の実施の形態＞
第１の実施の形態では、読み出し条件テーブル３３１における各出力ファイル（重要情報３３０）の読み出し条件は、いずれもホストコンピュータ１０の状態の履歴情報（状態履歴情報３３２）の全体であった。しかし、履歴情報の一部を読み出し条件とすることも可能である。
【０１０５】
図７は、第２の実施の形態における読み出し条件テーブル３３１ａを例示する図である。以下、第２の実施の形態におけるコンピュータシステムについては、第１の実施の形態におけるコンピュータシステムと同様の構成については同符号を付し、適宜説明を省略する。
【０１０６】
図７において「＊」は、どの状態に遷移していてもよいことを意味する、いわばワイルドカードとする。図７に示す例では、出力ファイルＪ１の読み出し条件は、４回前の状態である「Ｃ−４」、３回前の状態である「Ｃ−３」および２回前の状態である「Ｃ−２」については「＊」となっており、２回以上前においては、どのような状態に遷移していてもよい。ただし、出力ファイルＪ１の読み出し条件においては、直前の状態である「Ｃ−１」が「Ｃ１」であり、かつ、現在の状態である「Ｃ０」が「Ｃ２」であることから、出力ファイルＪ１は、「Ｃ０」が「Ｃ１」から「Ｃ２」に遷移したときに読み出される重要情報３３０として定義されている。
【０１０７】
このように、状態履歴情報３３２に、５つの状態が順次に記録されている場合でも、必ず、５つの状態を読み出し条件に使用しなければならないわけではない。図７に示す出力ファイルＪ１，Ｊ２のように、直近の状態の遷移のみで選択するように構成してもよい。
【０１０８】
＜３．  第３の実施の形態＞
上記実施の形態におけるホストコンピュータ１０の状態の履歴情報（状態履歴情報３３２）は、現在の状態を含めて、最大で５つの状態のみが遷移順に格納されるフォーマット（Ｃ−４，Ｃ−３，Ｃ−２，Ｃ−１，Ｃ０）であった。しかし、ホストコンピュータ１０の状態の履歴情報は、このようなフォーマットに限定されるものではない。
【０１０９】
図８は、第３の実施の形態における状態履歴情報３３２ａを例示する図である。以下、第３の実施の形態におけるコンピュータシステムについては、第１の実施の形態におけるコンピュータシステムと同様の構成については同符号を付し、適宜説明を省略する。
【０１１０】
第３の実施の形態における状態履歴情報３３２ａは、第１の実施の形態における状態履歴情報３３２に相当する情報であり、第２記憶部３１のセキュリティ領域３３に格納されている情報である。ただし、状態履歴情報３３２ａのフォーマットは、状態履歴情報３３２のフォーマットとは異なっている。
【０１１１】
状態履歴情報３３２ａでは、プログラム２２において定義されているＣ１，・・・，ＣＮが、それぞれ「０」、「１」、「２」のいずれかの値と関連づけられている。そして、「０」に関連づけられているものは、過去に遷移したことが「ない」ことを示している。また、「１」に関連づけられているものは、過去に遷移したことが「ある」ことを示している。さらに、「２」に関連づけられているものは、「Ｃ０」であることを示している。図８に示す例では、これまでに、「Ｃ２」、「Ｃ（Ｎ−１）」および「ＣＮ」には遷移したことがなく、「Ｃ１」および「Ｃ３」には遷移したことがあり、「Ｃ０」は「Ｃ（Ｎ−２）」である。
【０１１２】
このようなフォーマットの状態履歴情報３３２ａの容量は、例えプログラム２２が実行される過程で同じ状態の遷移が繰り返されたりしたとしても、第１の実施の形態と同様にほぼ一定であり、無限に増大したりはしない。
【０１１３】
第３の実施の形態における第２制御部３０は、コマンドＣＣが発行されると、「２」を「１」に変更し、遷移先の状態である「Ｃ１」を特定して、特定した「Ｃ１」に関連づけられている値を「２」に変更する。例えば、図８に示す状態履歴情報３３２ａについて、新たに、「Ｃ０」が「Ｃ３」に遷移したとすると、第２制御部３０は、「Ｃ（Ｎ−２）」に関連づけられている「２」を「１」に書き換えるとともに、「Ｃ３」に関連づけられている「１」を「２」に書き換えることにより、状態履歴情報３３２ａを更新する。
【０１１４】
また、ホストコンピュータ１０がコマンドＲＣを発行すると、第２制御部３０は、「２」に関連づけられている状態を現在の状態である「Ｃ０」として読み出し、ホストコンピュータ１０に出力する。すなわち、第３の実施の形態における状態履歴情報３３２ａにおいても、メモリシステム１は、適切に状態を管理することができるとともに、「Ｃ０」を特定して、コマンドＲＣに応じて出力できるように構成されている。
【０１１５】
図９は、第３の実施の形態における読み出し条件テーブル３３１ｂを例示する図である。第３の実施の形態では、状態履歴情報３３２ａのフォーマットが第１の実施の形態における状態履歴情報３３２と異なり、履歴として記録されている状態の表現方法（フォーマット）が異なっている。したがって、読み出し条件テーブル３３１ｂに規定されている読み出し条件も第１の実施の形態における読み出し条件テーブル３３１とは異なっている。
【０１１６】
図９に示す例では、「Ｃ１」の欄は、「１」または「２」となっており、「０」が存在しない。すなわち、初期状態である「Ｃ１」を経由していない場合は、重要情報３３０が出力されないことを示している（ダミーデータが出力される）。このように、プログラム２２の進行状況において、必須の状態を定義することもできる。
【０１１７】
また、重要情報３３０のうち、出力ファイルＪ１は、「Ｃ０」が「Ｃ１」であり、他の状態に遷移したことがないという条件で読み出される。すなわち、出力ファイルＪ１は初期状態で出力される重要情報３３０である。
【０１１８】
また、出力ファイルＪ２は、「Ｃ１」に遷移したことがあり、「Ｃ０」が「Ｃ２」か、または「Ｃ３」のときに読み出される。すなわち、本実施の形態においても、異なる読み出し条件で、同じ重要情報３３０を出力することも可能である。
【０１１９】
さらに、図９に示す例では、図８に示す状態履歴情報３３２ａのときには、出力ファイルＪ４が出力されることも分かる。
【０１２０】
なお、本実施の形態では、読み出し条件テーブル３３１ａにおいて「２」を用いることにより現在の状態である「Ｃ０」が何であるかを読み出し条件とした。しかし、状態履歴情報３３２ａにおける「２」を、単に、すでに遷移したことのある状態とみなして「１」に読み替えるように構成してもよい。あるいは逆に、状態履歴情報３３２ａにおける「２」を、未だ、進行が完了していない状態とみなして「０」に読み替えるように構成してもよい。
【０１２１】
以上のように、第３の実施の形態における状態履歴情報３３２ａおよび読み出し条件テーブル３３１ｂを用いても、第１の実施の形態と同様の効果を得ることができる。
【０１２２】
特に、直近の遷移ルートではなく、どのイベントをすでに体験したかに応じて、出力する重要情報３３０を変化させたい場合には、第１の実施の形態よりも第３の実施の形態の方が適している。
【０１２３】
＜４．  第４の実施の形態＞
ホストコンピュータ１０の状態の履歴情報において、過去の状態をビットで表現したフォーマットとすることも可能である。
【０１２４】
図１０は、第４の実施の形態における状態履歴情報３３２ｂを例示する図である。以下、第４の実施の形態におけるコンピュータシステムについては、第１の実施の形態におけるコンピュータシステムと同様の構成については同符号を付し、適宜説明を省略する。
【０１２５】
第４の実施の形態におけるプログラム２２では、第１の実施の形態と同様に、プログラム２２の進行状況を示す状態として、Ｃ１，・・・，ＣＮが定義されている。そして、状態履歴情報３３２ｂには、Ｎ桁のビットで表現される過去の状態に、現在の状態である「Ｃ０」が付加されたフォーマットとなっている。
【０１２６】
そして、過去の状態は、１桁目（Bit 0）が「Ｃ１」に対応し、Ｎ桁目（Bit N-1）が「ＣＮ」に対応する。なお、図１０に示す例は、第３の実施の形態において図８に示した状態と同一の状態を表現している。
【０１２７】
このように構成した場合も、上記実施の形態と同様の効果を得ることができる。
【０１２８】
＜５．  第５の実施の形態＞
第３の実施の形態では、１回でも過去に遷移したことのある状態は、状態履歴情報３３２ａにおいて「１」が関連づけられ、その後「２」に戻ることはあっても、再び「０」に戻ることはない。しかし、状態履歴情報３３２ａにおいて、一度、「１」に変更された状態について、再び「０」に戻ることを許容するように構成することも可能である。
【０１２９】
例えば、アイテムの所持状態に応じて重要情報３３０を変化させるようにプログラム２２を設計する場合、アイテムを所持している状態を「１（所持）」、所持していない状態を「０（非所持）」と定義できる。このように定義すると、消費したアイテムについては、消費したとき（状態変更のとき）に、当該アイテムの状態を「０」に変更することになる。
【０１３０】
ところで、第５の実施の形態のように、アイテムの所持状況を状態履歴情報３３２ａとして定義した場合において、ホストコンピュータ１０からのコマンドＲＣに対して、「最新に状態が変化したアイテムを示す情報」を出力してもあまり意味がない。このような場合には、アイテムの入手状況一覧（すなわち、本実施の形態では状態履歴情報３３２ａ）そのものが現在の状態である「Ｃ０」を表現しているといえる。
【０１３１】
すなわち、プログラム２２における「状態」の定義の仕方によっては、メモリシステム１は、当該状態の履歴情報（本実施の形態では状態履歴情報３３２ａ）の一部ではなく、当該履歴情報の全体をホストコンピュータ１０に対して出力するようにしてもよい。
【０１３２】
＜６．  第６の実施の形態＞
ホストコンピュータ１０の状態の履歴情報のフォーマットは、上記の実施の形態に示した状態履歴情報３３２，３３２ａ，３３２ｂに採用されたフォーマットに限定されるものではない。
【０１３３】
図１１は、第６の実施の形態における状態履歴情報３３２ｃを例示する図である。以下、第６の実施の形態におけるコンピュータシステムについては、第１の実施の形態におけるコンピュータシステムと同様の構成については同符号を付し、適宜説明を省略する。
【０１３４】
第６の実施の形態における状態履歴情報３３２ｃは、第１の実施の形態における状態履歴情報３３２に相当する情報であり、第２記憶部３１のセキュリティ領域３３に格納されている情報である。ただし、状態履歴情報３３２ｃのフォーマットは、状態履歴情報３３２のフォーマットと異なっている。
【０１３５】
状態履歴情報３３２ｃでは、プログラム２２において定義されているＣ１，・・・，ＣＮが、シーケンス番号（遷移した順番）と関連づけられるフォーマットを採用している。
【０１３６】
なお、状態履歴情報３３２ｃにおいて、シーケンス番号の初期値は「０」とする。したがって、状態履歴情報３３２ｃにおいて「０」が関連づけられている「状態」は、第３の実施の形態における状態履歴情報３３２ａと同様に、過去に遷移したことがない「状態」を示している。
【０１３７】
第６の実施の形態における第２制御部３０は、コマンドＣＣ（状態制御コマンド）を受け付けると、まず、状態履歴情報３３２ｃに記録されているシーケンス番号を検索して最大値を取得し、取得した最大値に「１」を加えて新たなシーケンス番号を作成する。次に、例えば、第１の実施の形態と同様の手法で遷移先の状態である「Ｃ１」を特定し、作成した新たなシーケンス番号を当該「Ｃ１」に関連づける。
【０１３８】
例えば、図１１に示す例において、次に、「Ｃ０」が「Ｃ４」に遷移し、コマンドＣＣが発行された場合には、「Ｃ４」に関連づけられているシーケンス番号が「２」から「１１」に書き換えられる。
【０１３９】
第６の実施の形態における状態履歴情報３３２ｃにおいて、「Ｃ０」は最も大きなシーケンス番号に関連連れられている「状態」となる。したがって、第６の実施の形態における第２制御部３０は、コマンドＲＣを受け付けると、状態履歴情報３３２ｃのシーケンス番号の最も大きい「状態」を検索して読み出し、「Ｃ０」としてホストコンピュータ１０に出力する。図１１に示す例では、コマンドＲＣに対して「Ｃ１」が出力される。
【０１４０】
第６の実施の形態における状態履歴情報３３２ｃでは、シーケンス番号の最大値により、遷移回数が記録されることになる。したがって、第６の実施の形態では、プログラム２２の遷移回数を読み出し条件として、重要情報３３０を出力するように構成することができる。
【０１４１】
また、第６の実施の形態における状態履歴情報３３２ｃでは、シーケンス番号を比較することにより、いずれの「状態」が新しいかを判定できる。したがって、複数の「状態」において、直近の遷移順を再現できるので、これを読み出し条件として、重要情報３３０を出力することもできる。例えば、図１１に示す例では、「Ｃ２」「Ｃ４」「Ｃ８」の直近の遷移順は「Ｃ４」→「Ｃ８」→「Ｃ２」であることがわかる（なお連続して遷移したか否かもわかる。）。そして、上記例に示したように「Ｃ４」に関連づけられているシーケンス番号が「２」から「１１」に書き換えられた後には、直近の遷移順は「Ｃ８」→「Ｃ２」→「Ｃ４」に変化する。
【０１４２】
また、第６の実施の形態における状態履歴情報３３２ｃにおいて、シーケンス番号が「０」か否かを判定するとともに、シーケンス番号が最大値か否かを判定すれば、第３の実施の形態における状態履歴情報３３２ａと同様の履歴フォーマットを抽出することが可能である。したがって、第６の実施の形態における状態履歴情報３３２ｃに対して、第３の実施の形態に示した読み出し条件テーブル３３１ｂを適用することも可能である。
【０１４３】
＜７．  第７の実施の形態＞
上記実施の形態では、プログラム２２において定義されたＣ１，・・・，ＣＮのすべてが、過去の状態としても記録対象となっていた。例えば、第１の実施の形態における状態履歴情報３３２には、直近の過去の４つの状態を記録するとして説明したが、この直近の過去の４つの状態として、すべてのＣ１，・・・，ＣＮが記録対象であった。しかし、本発明は、このような実施の形態に限定されるものではない。
【０１４４】
図１２は、第７の実施の形態における第２記憶部３１の記憶領域を例示する図である。以下、第７の実施の形態におけるコンピュータシステムについては、第１の実施の形態におけるコンピュータシステムと同様の構成については同符号を付し、適宜説明を省略する。
【０１４５】
第７の実施の形態における第２記憶部３１では、セキュリティ領域３３に、状態特定情報３３３が別途格納される。
【０１４６】
図１３は、第７の実施の形態における状態特定情報３３３を例示する図である。
【０１４７】
状態特定情報３３３は、状態履歴情報３３２において、過去の状態として格納する必要がある状態を特定するための情報である。本実施の形態における状態特定情報３３３では、記録対象の状態を列挙するフォーマットとなっている。すなわち、図１３に示す例では、「Ｃ１」、「Ｃ４」、および、「ＣＮ」のみが「過去の状態」としての記録対象であることを示している。
【０１４８】
第７の実施の形態における第２制御部３０は、コマンドＣＣを受け付けると、第１の実施の形態におけるステップＳ２（図３）と同様に、遷移先の状態である「Ｃ１」を特定する。
【０１４９】
次に、第７の実施の形態における第２制御部３０は、状態特定情報３３３を参照して、「Ｃ０」が、記録対象の状態であるか否かを確認する。すなわち、現在の状態である「Ｃ０」が、状態特定情報３３３に列挙されている「状態」に含まれているか否かを判定する。
【０１５０】
「Ｃ０」が記録対象の状態である場合、第７の実施の形態における第２制御部３０は、第１の実施の形態と同様に、過去の状態についても書き換えを行う。すなわち、状態履歴情報３３２における「Ｃ−４」を「Ｃ−３」で上書きし、「Ｃ−３」を「Ｃ−２」で上書きし、「Ｃ−２」を「Ｃ−１」で上書きし、「Ｃ−１」を「Ｃ０」で上書きし、「Ｃ０」をステップＳ２で特定した「Ｃ１」で上書きする。
【０１５１】
一方、「Ｃ０」が記録対象の状態でない場合、第７の実施の形態における第２制御部３０は、過去の状態については書き換えを行わない。すなわち、この場合には、現在の状態である「Ｃ０」のみが、遷移先の状態である「Ｃ１」に書き換えられて、状態履歴情報３３２が更新される。
【０１５２】
本実施の形態においても、「Ｃ０」は、コマンドＣＣが発行されるたびに書き換えられて、状態履歴情報３３２において管理される。したがって、例え、状態特定情報３３３に列挙されていない「Ｃ２」に状態が遷移したとしても、状態履歴情報３３２の「Ｃ０」には「Ｃ２」が記録される。
【０１５３】
このように構成することにより、本実施の形態においても、コマンドＲＣが発行されたときには、第１の実施の形態と同様に、第２記憶部３１から「Ｃ０」が出力される。したがって、ホストコンピュータ１０は、正常に「Ｃ０」をメモリシステム１から取得することができ、正常に追加のプログラム２２を読み出すことができる。
【０１５４】
一方で、本実施の形態では、状態特定情報３３３に列挙されていない状態は、状態履歴情報３３２における過去の状態に記録されることはない。すでに説明したように、第三者による不正を抑制するためには、プログラム２２の進行状況に応じて定義される「状態」の数は多い方がよい。しかし、このような「状態」が多数定義されると、プログラム２２が進行するにつれて、頻繁に状態遷移が発生し、状態履歴情報３３２の容量が増大するおそれがある。
【０１５５】
しかし、第７の実施の形態におけるメモリシステム１では、過去の状態として記録する状態を特定するための状態特定情報３３３を第２記憶部３１に格納しておき、状態履歴情報３３２を更新する際に第２制御部３０が参照する。これにより、重要情報３３０を読み出すための条件として使用しない「状態」については、過去の状態として記録しないように構成することができる。
【０１５６】
本実施の形態では、状態履歴情報３３２における過去の状態は、「直近の過去の４つの状態」に限定されている。しかし、このような限定がない場合には、状態特定情報３３３を設けて、記録する過去の状態を予め取捨選択することによって、状態履歴情報３３２の容量の増大を大きく抑制することができる。
【０１５７】
＜８．  第８の実施の形態＞
過去の状態として記録する状態を特定するための情報は、第７の実施の形態に示しめした状態特定情報３３３に採用されたフォーマットに限定されるものではない。
【０１５８】
図１４は、第８の実施の形態における状態特定情報３３３ａを例示する図である。状態特定情報３３３ａでは、過去の状態として記録する状態には「１」が関連づけられており、過去の状態として記録しない状態には「０」が関連づけられている。
【０１５９】
このようなフォーマットを採用した場合も、第７の実施の形態と同様の効果を得ることができる。
【０１６０】
＜９．  第９の実施の形態＞
過去の状態として記録する状態を特定するための情報は、第７および第８の実施の形態に示した状態特定情報３３３，３３３ａにおいて採用されたフォーマットに限定されるものではない。
【０１６１】
図１５は、第９の実施の形態における状態特定情報３３３ｂを例示する図である。第９の実施の形態における状態特定情報３３３ｂは、Ｎ桁のビットで表現される。すなわち、状態特定情報３３３ｂは、プログラム２２において定義されている状態の数に対応する数のビットで表現され、各状態が一対一で各ビットに対応付けられる。
【０１６２】
第９の実施の形態では、１桁目（Bit 0）が「Ｃ１」に対応し、Ｎ桁目（Bit N-1）が「ＣＮ」に対応しているものとする。さらに、Ｃ１，・・・，ＣＮのうち、過去の状態として記録する状態に対応するビットは「１」とし、過去の状態として記録しない状態に対応するビットは「０」とする。
【０１６３】
なお、図１５に示す例では、表示を省略しているビットも含めて、「Bit 4」から「Bit N-2」まで、すべて「０」となっており、「Ｃ５」から「Ｃ（Ｎ−１）」までの状態は、過去の状態として記録しない状態として定義されているものとする。すなわち、図１５に示す例は、第７の実施の形態において図１３に示した例と同一の意味を有している。
【０１６４】
図１６は、第９の実施の形態における状態履歴情報３３２ｄを例示する図である。第９の実施の形態における状態履歴情報３３２ｄは、３桁のビットで表現される過去の状態に、現在の状態である「Ｃ０」が付加されたフォーマットとなっている。
【０１６５】
状態履歴情報３３２ｄにおいて、過去の状態を格納するために必要なビット数は、状態特定情報３３３ｂにおいて「１」であったビットの数である。図１５に示す例では、「１」であったビットは３つであるから、図１６に示す状態履歴情報３３２ｄにおける過去の状態を表現するためのビット数は「３」となっている。
【０１６６】
ここで、過去の状態を表現する各ビットは、状態特定情報３３３ｂにおいて「１」であったビットのそれぞれに対応している。すなわち、状態特定情報３３３ｂにおいて「１」であった「Bit 0」、「Bit 3」、および、「Bit N-1」が、それぞれ状態履歴情報３３２ｄの過去の状態を表現する「Bit 0」、「Bit 1」、および、「Bit 2」に対応している。したがって、状態履歴情報３３２ｄにおいて過去の状態を表現する「Bit 0」、「Bit 1」、および、「Bit 2」は、それぞれプログラム２２において定義されている「状態」のうちの「Ｃ１」、「Ｃ４」、および、「ＣＮ」に対応している。
【０１６７】
このように、過去の状態として記録する状態を特定するための情報（状態特定情報３３３ｂ）をビットで表現したフォーマットとした場合も、上記実施の形態と同様の効果を得ることができる。
【０１６８】
＜１０．  第１０の実施の形態＞
上記実施の形態では、重要情報３３０を読み出すための条件に、現在の状態である「Ｃ０」を用いていた。しかし、「Ｃ０」ではなく、過去の状態のみを読み出し条件として重要情報３３０を読み出すこともできる。
【０１６９】
図１７は、第１０の実施の形態における読み出し条件テーブル３３１ｃを例示する図である。以下、第１０の実施の形態におけるコンピュータシステムについては、第１の実施の形態におけるコンピュータシステムと同様の構成については同符号を付し、適宜説明を省略する。
【０１７０】
図１７に示すように、読み出し条件テーブル３３１ｃには、「Ｃ０」が定義されていない。このような読み出し条件テーブル３３１ｃを参照する場合、第２制御部３０は、過去において「Ｃ１」、「Ｃ４」、および、「ＣＮ」に遷移したことがあるか否かで重要情報３３０（出力ファイル）を出力するか否かを判定することになる。例えば、図１７に示す例では、「Ｃ１」に遷移したことがない場合には、重要情報３３０が読み出されることはないことを示している。
【０１７１】
なお、読み出し条件テーブル３３１ｃにおいて、読み出し条件をビットで表現するようにしてもよい。また、第１０の実施の形態のように、読み出し条件として現在の状態である「Ｃ０」を用いない場合でも、状態履歴情報３３２には、現在の状態である「Ｃ０」は格納されており、現在の状態である「Ｃ０」は履歴としては管理される。
【０１７２】
＜１１．  第１１の実施の形態＞
上記実施の形態では、第１記憶部２１からプログラム２２を読み出すための指標となるホストコンピュータ１０の状態と、第２記憶部３１から重要情報３３０を読み出すための指標となるホストコンピュータ１０の状態とが同じであった（共通の指標を用いていた）。しかし、これらは互いに独立していてもよい。
【０１７３】
第１１の実施の形態では、第２記憶部３１から重要情報３３０を読み出すための指標となるホストコンピュータ１０の状態としては、上記実施の形態と同様に、Ｃ１，・・・，ＣＮを定義する。一方で、第１記憶部２１から、新たにプログラム２２を追加して読み出すための指標となるホストコンピュータ１０の状態として、Ｍ個の状態、ＰＣ１，・・・，ＰＣＭを定義する（Ｍは２以上の自然数）。
【０１７４】
図１８は、第１１の実施の形態における第２記憶部３１の記憶領域を例示する図である。以下、第１１の実施の形態におけるコンピュータシステムについては、第１の実施の形態におけるコンピュータシステムと同様の構成については同符号を付し、適宜説明を省略する。
【０１７５】
第１１の実施の形態における第２記憶部３１では、セキュリティ領域３３に、状態管理情報３３４が別途格納される。そして、状態管理情報３３４は、現在の状態である「ＰＣ０」を示す情報である。
【０１７６】
第１１の実施の形態における第２制御部３０は、ホストコンピュータ１０からコマンドＣＣ（第１の状態制御コマンド）を受け付けると、第１の実施の形態と同様に状態履歴情報３３２の「Ｃ０」を更新する。一方で、ホストコンピュータ１０からコマンドＣＰＣ（第２の状態制御コマンド）を受け付けると、状態管理情報３３４の現在の状態「ＰＣ０」を更新する。
【０１７７】
さらに、第１１の実施の形態における第２制御部３０は、ホストコンピュータ１０からコマンドＲＣ（状態読み出しコマンド）を受け付けると、状態履歴情報３３２ではなく、状態管理情報３３４から現在の状態である「ＰＣ０」を読み出して、ホストコンピュータ１０に対して出力する。
【０１７８】
以上のように、第１１の実施の形態におけるメモリシステム１は、第１記憶部２１からプログラム２２を読み出すための指標となるホストコンピュータ１０の状態と、第２記憶部３１から重要情報３３０を読み出すための指標となるホストコンピュータ１０の状態とを互いに独立した状態として定義する。これにより、重要情報３３０を読み出すために管理している情報（状態履歴情報３３２）をホストコンピュータ１０に対して秘匿することができる。
【０１７９】
なお、ＰＣ１，・・・，ＰＣＭについては、セキュリティメモリ３（第２記憶部３１）に格納して管理せずに、記憶部１３に格納するなどして、ホストコンピュータ１０とＲＯＭ２との間で管理するように構成してもよい。
【０１８０】
また、第１１の実施の形態において定義した２種類の状態（Ｃ１，・・・，ＣＮ、およびＰＣ１，・・・，ＰＣＭ）を互いに組み合わせて、重要情報３３０の読み出し条件としてもよい。あるいは、３種類以上の状態を定義してもよい。
【０１８１】
＜１２．  変形例＞
以上、本発明の実施の形態について説明してきたが、本発明は上記実施の形態に限定されるものではなく様々な変形が可能である。
【０１８２】
例えば、上記実施の形態における第２記憶部３１は一体形成の記憶装置として構成されている。しかし、第２記憶部３１を複数の記憶装置から構成してもよい。その場合、例えば、状態履歴情報３３２やセーブデータ１３０のように更新が必要なデータを格納する記憶装置はデータの書き込みも可能な記憶素子を採用し、重要情報３３０や読み出し条件テーブル３３１のように更新不要なデータを格納する記憶装置はデータの書き込みができない記憶素子を採用するようにしてもよい。
【０１８３】
また、第１記憶部２１と第２記憶部３１とを単一の半導体集積回路として構成するようにしてもよい。すなわち、メモリシステム１を単一の半導体集積回路として構築してもよい。
【０１８４】
また、重要情報３３０を構成する１つの出力ファイルは、分割されて出力されてもよい。すなわち、ホストコンピュータ１０において必要となるまでに、ホストコンピュータ１０によって１つの出力ファイルを構成する全ての情報が取得されるならば、１つの出力ファイルを読み出すために必要な読み出し回数は、必ずしも１回でなくてよい。
【０１８５】
また、セキュリティメモリ３は、状態履歴情報３３２や、読み出し条件テーブル３３１等を、図示しない第２制御部３０のＲＡＭやバッファに読み出しておいて使用するようにしてもよい。
【０１８６】
また、状態履歴情報３３２，３３２ａ，３３２ｂ，３３２ｃ，３３２ｄを更新したときなどに、第２制御部３０が、正常な履歴（正常な遷移ルート）であるか否かを判定するようにしてもよい。このようにして「異常」が検出されたときには、以後、重要情報３３０が読み出せないように構成してもよい。ただし、状態履歴情報３３２，３３２ａ，３３２ｂ，３３２ｃ，３３２ｄが異常であることが、第三者に分かりにくいように実装されることが好ましい。
【０１８７】
また、ホストコンピュータ１０が発行する各種のコマンドは、第１制御部２０および第２制御部３０が解読できる暗号により暗号化されていてもよい。すなわち、本発明におけるセキュリティ機能は、他のセキュリティ機能と重複して実装されてもよい。
【０１８８】
また、上記実施の形態に示した各工程は、あくまでも例示であって、これに限定されるものではない。すなわち、同様の効果が得られるならば、各工程における処理内容や各工程の実行順は、適宜、変更されてもよい。
【０１８９】
また、ホストコンピュータ１０の状態として定義した、Ｃ１，・・・，ＣＮに、それぞれ何回遷移したかが分かるように状態履歴情報３３２に記録し、これを重要情報３３０を読み出すための読み出し条件としてもよい。例えば、「Ｃ２」に５回以上、「Ｃ４」に１０回以上遷移し、かつ、「Ｃ３」には１回も遷移していないときに、重要情報３３０の出力ファイルＪ５を出力するといった構成も可能である。
【符号の説明】
【０１９０】
１  メモリシステム
１０  ホストコンピュータ
２  ＲＯＭ
２０  第１制御部
２１  第１記憶部
２２  プログラム
３  セキュリティメモリ
３０  第２制御部
３１  第２記憶部
３２  ユーザ領域
３３  セキュリティ領域
３３０  重要情報
３３１，３３１ａ，３３１ｂ，３３１ｃ  読み出し条件テーブル
３３２，３３２ａ，３３２ｂ，３３２ｃ，３３２ｄ  状態履歴情報
３３３，３３３ａ，３３３ｂ  状態特定情報
３３４  状態管理情報
【図１】
2013037554.tif 000003
【図２】
2013037554.tif 000004
【図３】
2013037554.tif 000005
【図４】
2013037554.tif 000006
【図５】
2013037554.tif 000007
【図６】
2013037554.tif 000008
【図７】
2013037554.tif 000009
【図８】
2013037554.tif 000010
【図９】
2013037554.tif 000011
【図１０】
2013037554.tif 000012
【図１１】
2013037554.tif 000013
【図１２】
2013037554.tif 000014
【図１３】
2013037554.tif 000015
【図１４】
2013037554.tif 000016
【図１５】
2013037554.tif 000017
【図１６】
2013037554.tif 000018
【図１７】
2013037554.tif 000019
【図１８】
2013037554.tif 000020