JP5792526B2 - Memory system and information protection method - Google Patents
Memory system and information protection method Download PDFInfo
- Publication number
- JP5792526B2 JP5792526B2 JP2011141287A JP2011141287A JP5792526B2 JP 5792526 B2 JP5792526 B2 JP 5792526B2 JP 2011141287 A JP2011141287 A JP 2011141287A JP 2011141287 A JP2011141287 A JP 2011141287A JP 5792526 B2 JP5792526 B2 JP 5792526B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- host computer
- memory system
- calculation method
- calculation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
本発明は、記憶装置(例えば、半導体メモリなど)に格納された情報が不正に複製されないように保護する技術に関する。 The present invention relates to a technique for protecting information stored in a storage device (for example, a semiconductor memory) from being illegally copied.
従来より、ホストコンピュータに接続される記憶装置に記憶された情報を不正な複製から保護する技術が知られている。例えば、そのような技術が特許文献1に記載されている。
Conventionally, a technique for protecting information stored in a storage device connected to a host computer from unauthorized duplication is known. For example, such a technique is described in
特許文献1には、ホストコンピュータと接続されるメモリシステムに、セキュリティ機能を備えたコントローラと不揮発性メモリとを設けている。そして、ホストコンピュータからのアクセスに対しては、当該コントローラがセキュリティ機能を発揮することにより、不揮発性メモリ上に格納された情報を保護する技術が記載されている。
In
しかし、特許文献1に記載されている技術をもってしても、不正な複製を完全に防止することはできない。そして、メモリシステムのコントローラにおけるセキュリティ機能が破られ、不揮発性メモリに格納された情報(保護対象の情報)を違法に複製され、配布される事態が現実に生じている。特許文献1に記載されている技術では、不揮発性メモリに格納されているプログラムにかかわらず、ホストコンピュータとメモリシステムとが協働してセキュリティ機能を提供しているため、一度、このセキュリティが破られれば、すべてのプログラムが不正に複製されることを許す事態にもなりかねない。
However, even with the technique described in
このような事態を安易に解決する手法として、コントローラが提供するセキュリティ機能を変更することが考えられる。 As a method for easily solving such a situation, it is conceivable to change the security function provided by the controller.
ところが、特許文献1に記載された技術において、メモリシステムのコントローラにおけるセキュリティ機能を変更すると、ホストコンピュータ側にも変更が必要になるという問題があった。すなわち、ホストコンピュータがすでに多数市場に流通している現状では、メモリシステムのセキュリティ機能が破られるたびに、ホストコンピュータ側の設計変更まで行うことは、互換性の維持やコストの面で現実的ではないという問題があった。
However, in the technique described in
本発明は、上記課題に鑑みてなされたものであり、ホストコンピュータに接続されるメモリシステムに関して、すでに流通しているホストコンピュータとの互換性を維持しつつ、安価に、当該メモリシステムに格納された情報の不正な複製を抑制する技術を提供することを目的とする。 The present invention has been made in view of the above problems, and a memory system connected to a host computer is stored in the memory system at a low cost while maintaining compatibility with already-distributed host computers. It is an object to provide a technology for suppressing unauthorized duplication of information.
上記の課題を解決するため、請求項1の発明は、ホストコンピュータに接続されるメモリシステムであって、保護対象の情報を格納する第1不揮発性メモリと、前記第1不揮発性メモリに対するアクセスを制御する第1コントローラと、前記ホストコンピュータが前記保護対象の情報を使用するときに必要となる複数の必要不可欠情報と複数の演算結果とを一対一で関連づけて格納する書き換え可能な第2不揮発性メモリと、前記第2不揮発性メモリに対するアクセスを制御する第2コントローラとを備え、前記メモリシステムは、複数の演算方法を定義する演算方法情報を格納しており、前記複数の演算方法から1の演算方法を選択して被選択演算方法として前記ホストコンピュータに出力し、前記第2コントローラは、前記ホストコンピュータの状態を反映した出力条件に応じて、前記第2不揮発性メモリに格納されている複数の必要不可欠情報から1の必要不可欠情報を選択して被選択必要不可欠情報として前記ホストコンピュータに出力し、前記出力条件は、被演算情報を前記被選択演算方法により演算して得られる演算結果に基づく条件を含む。
In order to solve the above-mentioned problem, the invention of
また、請求項2の発明は、請求項1の発明に係るメモリシステムであって、前記被演算情報は、前記ホストコンピュータの状態を反映する情報である。
The invention of
また、請求項3の発明は、請求項1または2の発明に係るメモリシステムであって、前記保護対象の情報には、前記ホストコンピュータによって実行されるときの当該保護対象の情報の進行状況が複数のステージとして定義されており、前記ホストコンピュータの状態は、前記複数のステージのうちのいずれか一つのステージを前記ホストコンピュータが実行しているときの前記ホストコンピュータの状態を含む。
The invention of
また、請求項4の発明は、請求項1ないし3のいずれかの発明に係るメモリシステムであって、前記メモリシステムは、前記ホストコンピュータからの要求があったときの前記ホストコンピュータの状態に応じて前記複数の演算方法から1の演算方法を被選択演算方法として選択する。 According to a fourth aspect of the present invention, there is provided a memory system according to any one of the first to third aspects , wherein the memory system is responsive to a state of the host computer when a request is made from the host computer. Thus, one calculation method is selected as the selected calculation method from the plurality of calculation methods.
また、請求項5の発明は、請求項1ないし4のいずれかの発明に係るメモリシステムであって、前記被選択演算方法は、前記保護対象の情報の前記ホストコンピュータにおける進行状況に応じて選択される。 A fifth aspect of the present invention is the memory system according to any one of the first to fourth aspects , wherein the selected calculation method is selected according to a progress status of the information to be protected in the host computer. Is done .
また、請求項6の発明は、請求項5の発明に係るメモリシステムであって、前記第2コントローラは、前記保護対象の情報の前記ホストコンピュータにおける進行状況が通知されたときに、通知された進行状況を進行履歴情報として前記第2不揮発性メモリに格納するとともに、前記進行履歴情報に応じて前記被選択演算方法を選択する。
The invention according to claim 6 is the memory system according to
また、請求項7の発明は、請求項1ないし6のいずれかの発明に係るメモリシステムであって、前記出力条件は、前記第2コントローラが前記複数の必要不可欠情報を出力する際の出力順序を含む。
The invention of
また、請求項8の発明は、請求項7の発明に係るメモリシステムであって、前記出力順序が前記保護対象の情報の前記ホストコンピュータにおける進行順序に従う。
The invention according to claim 8 is the memory system according to
また、請求項9の発明は、請求項7または8の発明に係るメモリシステムであって、前記第2コントローラは、前記ホストコンピュータに必要不可欠情報を出力したときの出力履歴情報に応じて前記出力順序となるように次回に出力する必要不可欠情報を選択する。
The invention according to claim 9 is the memory system according to
また、請求項10の発明は、請求項1ないし9のいずれかの発明に係るメモリシステムであって、前記被選択演算方法は、前記演算方法情報から複数回に分けて読み出される。
The invention according to
また、請求項11の発明は、請求項1ないし10のいずれかの発明に係るメモリシステムであって、前記演算方法情報は、前記第2不揮発性メモリに格納される。 An eleventh aspect of the invention is a memory system according to any one of the first to tenth aspects of the invention, wherein the calculation method information is stored in the second nonvolatile memory.
また、請求項12の発明は、ホストコンピュータに接続されるメモリシステムであって、前記ホストコンピュータが保護対象の情報を使用するときに必要となる複数の必要不可欠情報と複数の演算結果とを一対一で関連づけて格納するとともに、複数の演算方法を定義する演算方法情報を格納する書き換え可能な不揮発性メモリと、前記不揮発性メモリに対するアクセスを制御しつつ、前記複数の演算方法から1の演算方法を選択して被選択演算方法として前記ホストコンピュータに出力し、前記ホストコンピュータの状態を反映した出力条件に応じて、前記不揮発性メモリに格納されている複数の必要不可欠情報から1の必要不可欠情報を選択して被選択必要不可欠情報として前記ホストコンピュータに出力するコントローラとを備え、前記出力条件は、被演算情報を前記被選択演算方法により演算して得られる演算結果に基づく条件を含む。
また、請求項13の発明は、請求項12の発明に係るメモリシステムであって、前記保護対象の情報には、前記ホストコンピュータによって実行されるときの当該保護対象の情報の進行状況が複数のステージとして定義されており、前記ホストコンピュータの状態は、前記複数のステージのうちのいずれか一つのステージを前記ホストコンピュータが実行しているときの前記ホストコンピュータの状態を含む。
According to a twelfth aspect of the present invention, there is provided a memory system connected to a host computer, wherein a plurality of indispensable information and a plurality of calculation results required when the host computer uses information to be protected are paired. A rewritable nonvolatile memory for storing calculation method information defining a plurality of calculation methods and controlling access to the non-volatile memory while controlling one of the plurality of calculation methods. Is selected and output to the host computer as a selected computation method, and one essential information from a plurality of essential information stored in the non-volatile memory according to an output condition reflecting the state of the host computer the select and a controller for outputting to the host computer as the selected essential information, before Output conditions include conditions based on a calculation result obtained by calculation by the target select operation method operand information.
The invention of claim 13 is the memory system according to the invention of
また、請求項14の発明は、ホストコンピュータに接続されるメモリシステムの第1不揮発性メモリに格納される保護対象の情報を保護する情報保護方法であって、書き換え可能な第2不揮発性メモリに、前記ホストコンピュータが前記保護対象の情報を使用するときに必要となる複数の必要不可欠情報と複数の演算結果とを一対一で関連づけて格納する工程と、複数の演算方法を定義する演算方法情報を格納する工程と、前記複数の演算方法から1の演算方法を選択して被選択演算方法として前記ホストコンピュータに出力する工程と、被演算情報を前記被選択演算方法により演算して得られる演算結果を含む前記ホストコンピュータの状態を反映した出力条件に応じて、前記第2不揮発性メモリに格納されている複数の必要不可欠情報から1の必要不可欠情報を選択して被選択必要不可欠情報として前記ホストコンピュータに出力する工程とを有する。
また、請求項15の発明は、請求項14の発明に係る情報保護方法であって、前記保護対象の情報には、前記ホストコンピュータによって実行されるときの当該保護対象の情報の進行状況が複数のステージとして定義されており、前記ホストコンピュータの状態は、前記複数のステージのうちのいずれか一つのステージを前記ホストコンピュータが実行しているときの前記ホストコンピュータの状態を含む。
The invention of claim 14 is an information protection method for protecting information to be protected stored in a first nonvolatile memory of a memory system connected to a host computer, wherein the rewritable second nonvolatile memory is used. a step of storing in association with one-to-one more essential information and a plurality of operation result and the necessary when the host computer uses the information in the protected, calculation method information defining a plurality of calculation methods , A step of selecting one calculation method from the plurality of calculation methods and outputting the selected calculation method to the host computer, and a calculation obtained by calculating calculation target information by the selected calculation method depending on the result output condition which reflects the state of the host computer including, or multiple essential information stored in the second nonvolatile memory Select 1 of essential information and a step of outputting to the host computer as the selected essential information.
The invention according to claim 15 is the information protection method according to claim 14, wherein the protection target information includes a plurality of progress states of the protection target information when executed by the host computer. The state of the host computer includes the state of the host computer when the host computer is executing any one of the plurality of stages .
請求項1ないし11に記載の発明は、前記ホストコンピュータが保護対象の情報を使用するときに必要となる複数の必要不可欠情報と複数の演算結果とを一対一で関連づけて格納する書き換え可能な第2不揮発性メモリと、第2不揮発性メモリに対するアクセスを制御する第2コントローラとを備え、複数の演算方法を定義する演算方法情報を格納しており、複数の演算方法から1の演算方法を選択して被選択演算方法としてホストコンピュータに出力し、第2コントローラは、ホストコンピュータの状態を反映した出力条件に応じて、第2不揮発性メモリに格納されている複数の必要不可欠情報から1の必要不可欠情報を選択して被選択必要不可欠情報としてホストコンピュータに出力し、出力条件は、被演算情報を被選択演算方法により演算して得られる演算結果に基づく条件を含む。これにより、既存のホストコンピュータの設計変更を必要とせず、安価にセキュリティレベルを向上させることができる。また、例えば、保護対象の情報ごとに変更できるので、一旦、セキュリティを破られても、容易に再構築できる。また、ホストコンピュータの状態を反映した出力条件が設けられているため、これを再現しなければ必要不可欠情報を読み出すことができず、複製を作成することが一層困難となる。
また、請求項12および13に記載の発明は、ホストコンピュータが保護対象の情報を使用するときに必要となる複数の必要不可欠情報と複数の演算結果とを一対一で関連づけて格納するとともに、複数の演算方法を定義する演算方法情報を格納する書き換え可能な不揮発性メモリと、不揮発性メモリに対するアクセスを制御しつつ、複数の演算方法から1の演算方法を選択して被選択演算方法としてホストコンピュータに出力し、ホストコンピュータの状態を反映した出力条件に応じて、不揮発性メモリに格納されている複数の必要不可欠情報から1の必要不可欠情報を選択して被選択必要不可欠情報としてホストコンピュータに出力するコントローラとを備え、出力条件は、被演算情報を被選択演算方法により演算して得られる演算結果に基づく条件を含む。これにより、既存のホストコンピュータの設計変更を必要とせず、安価にセキュリティレベルを向上させることができる。また、例えば、保護対象の情報ごとに変更できるので、一旦、セキュリティを破られても、容易に再構築できる。また、ホストコンピュータの状態を反映した出力条件が設けられているため、これを再現しなければ必要不可欠情報を読み出すことができず、複製を作成することが一層困難となる。
また、請求項14および15に記載の発明は、書き換え可能な第2不揮発性メモリに、ホストコンピュータが保護対象の情報を使用するときに必要となる複数の必要不可欠情報と複数の演算結果とを一対一で関連づけて格納する工程と、複数の演算方法を定義する演算方法情報を格納する工程と、複数の演算方法から1の演算方法を選択して被選択演算方法としてホストコンピュータに出力する工程と、被演算情報を被選択演算方法により演算して得られる演算結果を含むホストコンピュータの状態を反映した出力条件に応じて、第2不揮発性メモリに格納されている複数の必要不可欠情報から1の必要不可欠情報を選択して被選択必要不可欠情報としてホストコンピュータに出力する工程とを有する情報保護方法である。これにより、既存のホストコンピュータの設計変更を必要とせず、安価にセキュリティレベルを向上させることができる。また、例えば、保護対象の情報ごとに変更できるので、一旦、セキュリティを破られても、容易に再構築できる。また、ホストコンピュータの状態を反映した出力条件が設けられているため、これを再現しなければ必要不可欠情報を読み出すことができず、複製を作成することが一層困難となる。
According to the first to eleventh aspects of the present invention, a plurality of indispensable information required when the host computer uses information to be protected and a plurality of calculation results are stored in a one-to-one association with each other. 2 non-volatile memory and a second controller for controlling access to the second non-volatile memory , storing operation method information defining a plurality of operation methods, and selecting one operation method from the plurality of operation methods As a selected calculation method, the second controller outputs one to the host computer according to the output condition reflecting the state of the host computer, from a plurality of essential information stored in the second non-volatile memory. select vital information is output to the host computer as the selected essential information, output conditions, by the selected calculation method the operand information Including conditions based on a calculation result obtained by calculation. Thereby, the design level of the existing host computer is not required, and the security level can be improved at a low cost. For example, since it can change for every information of protection object, even if security is once broken, it can be reconstructed easily. In addition, since an output condition reflecting the state of the host computer is provided, essential information cannot be read unless it is reproduced, making it more difficult to create a copy.
The inventions according to
The inventions described in claims 14 and 15 include a plurality of indispensable information and a plurality of calculation results required when the host computer uses information to be protected in the rewritable second nonvolatile memory. A step of storing in a one-to-one relationship, a step of storing calculation method information defining a plurality of calculation methods, and a step of selecting one calculation method from the plurality of calculation methods and outputting the selected calculation method to the host computer And 1 from a plurality of essential information stored in the second nonvolatile memory according to the output condition reflecting the state of the host computer including the operation result obtained by calculating the operation information by the selected operation method. And selecting the essential information and outputting it to the host computer as selected essential information. Thereby, the design level of the existing host computer is not required, and the security level can be improved at a low cost. For example, since it can change for every information of protection object, even if security is once broken, it can be reconstructed easily. In addition, since an output condition reflecting the state of the host computer is provided, essential information cannot be read unless it is reproduced, making it more difficult to create a copy.
以下、本発明の好適な実施の形態について、添付の図面を参照しつつ、詳細に説明する。 DESCRIPTION OF EXEMPLARY EMBODIMENTS Hereinafter, preferred embodiments of the invention will be described in detail with reference to the accompanying drawings.
<1. 第1の実施の形態>
図1は、本発明に係るメモリシステム1を備えるコンピュータシステムを示す図である。コンピュータシステムは、本発明に係るメモリシステム1と、一般的なコンピュータとしての機能を有するホストコンピュータ10とを備えている。
<1. First Embodiment>
FIG. 1 is a diagram showing a computer system including a
メモリシステム1は、読み取り専用の記憶装置であるROM2と、例えばユーザデータ等を必要に応じてセーブすることができるように読み書き可能な記憶装置として構成されるメモリシステム3とを備えている。詳細は図示しないが、本実施の形態におけるメモリシステム1は、ホストコンピュータ10に対して着脱自在に構成されている。このようなメモリシステム1としては、例えば、メモリカードやゲームカセットが該当するがこれに限定されるものではない。
The
ROM2は、コントローラ20と、メモリアレイ21とを備えている。コントローラ20は、ホストコンピュータ10からの要求に応じて、メモリアレイ21に格納されている各種データを読み出してホストコンピュータ10に出力する機能を有している。また、コントローラ20は、ホストコンピュータ10との間で、メモリアレイ21に格納されたデータに対するセキュリティ機能を提供する。コントローラ20が提供するセキュリティ機能としては従来より提案されている様々な手法を適宜採用できるため、以下では詳細な説明は省略する。
The
図2は、ROM2のメモリアレイ21の記憶領域を例示する図である。メモリアレイ21は、複数の不揮発性の記憶素子が規則的に配列した構造を有しており、図2に示すように、複数の記憶領域に分割されている。
FIG. 2 is a diagram illustrating a storage area of the
本実施の形態におけるメモリアレイ21を構成する記憶素子は、ホストコンピュータ10によるデータの書き込みが不能な素子が採用されている。したがって、ROM2は、メモリシステム1において、先述のように読み取り専用の記憶装置として構成されている。ただし、プログラム26等を格納する記憶装置は必ずしも読み取り専用でなくてもよい。
As the memory elements constituting the
図2に示すように、メモリアレイ21の記憶領域としては、キー情報25を格納する固有キー格納領域22、プログラム26を格納するプログラム格納領域23、プログラム26が使用するコンテンツ(画像、音声、テキスト等)を格納するコンテンツ格納領域24が定義されている。ただし、定義される記憶領域はこれに限定されるものではなく、その他の記憶領域(例えば、上記セキュリティ機能を提供するためのデータが格納される領域等)が定義されてもよい。
As shown in FIG. 2, the storage area of the
被演算情報であるキー情報25は、プログラム26を識別する固有の値であり、例えば、コントローラ20が提供するセキュリティ機能に利用される値などが想定される。
The
本実施の形態では、キー情報25は、例えば商品コードのように、プログラム26のタイトルごとに異なる値を用いる。すなわち、プログラム26がゲームプログラムであれば、キー情報25はゲームのタイトルに固有であり、同じタイトルのゲームプログラムでは同じ値となる。ただし、例えば、製造番号のように、同じタイトルのプログラム26であっても、個々に異なる値をキー情報25として採用してもよい。
In the present embodiment, the
なお、詳細は後述するが、本実施の形態におけるキー情報25はホストコンピュータ10により読み出され、ホストコンピュータ10の記憶装置12の特定のアドレス(以下、「キーアドレス」と称する。)に格納される。すなわち、メモリシステム1が正規のホストコンピュータ10に装着されているならば、キーアドレスは常に一定である。
Although details will be described later, the
プログラム26は、保護対象の情報であり、ホストコンピュータ10によって実行される。そして、プログラム26には、ホストコンピュータ10によって実行されるときの当該プログラム26の進行状況がマーカーコード等により定義されている。以下の説明では、プログラム26の進行状況として、当該プログラム26には、順次に、N個のステージ(ステージ1,・・・,N)が定義されているものとする(Nは2以上の自然数)。すなわち、ホストコンピュータ10は、プログラム26を実行中において、実行中のプログラム26の進行状況をステージn(nは1からNまでの自然数)として取得することができる。
The
なお、詳細は後述するが、本実施の形態におけるプログラム26は、ホストコンピュータ10が被演算情報としてキー情報25を用いるときには、直接キーアドレス(固定のアドレス)を指定して記憶装置12から読み出すように記述されている。したがって、キーアドレスによってキー情報25として読み出された値が、真にキー情報25の値であれば、ホストコンピュータ10において、キーアドレスに格納されている情報が書き換えられたりしていない状態であることを示している。すなわち、本実施の形態におけるキー情報25は、ホストコンピュータ10の状態を反映した情報である。また、本実施の形態における保護対象の情報は、プログラム26のみではなく、メモリアレイ21内に格納されているすべての情報である。
Although details will be described later, when the
メモリシステム3は、コントローラ30と、メモリアレイ31とを備えている。コントローラ30は、ホストコンピュータ10からの要求に応じて、メモリアレイ31に格納されている各種データを読み出してホストコンピュータ10に出力する機能と、メモリアレイ31に各種データを格納する機能とを有している。本実施の形態におけるコントローラ30の機能および動作については、後述する。
The
図3は、第1の実施の形態におけるメモリアレイ31の記憶領域と各記憶領域に格納される情報とを例示する図である。メモリアレイ31は、複数の不揮発性の記憶素子から構成されており、図3に示すように複数の記憶領域に分割されている。
FIG. 3 is a diagram illustrating a storage area of the
本実施の形態におけるメモリアレイ31の記憶領域としては、データセーブ領域32、演算方法格納領域33、必要不可欠情報格納領域34、第1テーブル格納領域35および第2テーブル格納領域36が定義されている。ただし、定義される記憶領域はこれに限定されるものではなく、必要に応じて、その他の記憶領域が定義されてもよい。
As a storage area of the
メモリアレイ31を構成する記憶素子は、データの読み出しのみではなく、書き込みも可能な素子が採用される。したがって、メモリシステム3は、メモリシステム1において、先述のように読み書き可能な記憶装置として構成されている。
As the memory elements constituting the
データセーブ領域32は、セーブデータ320を格納する記憶領域であって、ホストコンピュータ10(ユーザ)によって自由にアクセスすることができる領域である。なお、ここにいう、「自由にアクセスすることができる」とは、本発明に係るセキュリティ機能によらずにアクセスすることができるという意味である。
The data save
また、セーブデータ320は、主には、ユーザによって作成される情報であり、プログラム26を途中から再開させるための情報(ゲームを途中で中断したときの情報等)や、ユーザが取得したコンテンツ情報(画像、音声、文章等)等である。ただし、セーブデータ320は、ユーザからの指示によらずに、例えば、ホストコンピュータ10が自動的に作成する情報であってもよい。
The save
演算方法格納領域33は、演算方法情報330を格納する領域である。演算方法情報330には、ステージn(先述のようにプログラム26の進行状況を示す。)ごとに設定された複数の演算方法を定義する情報が含まれている。以下の説明では、ステージnに対応する演算方法を「演算方法fn(x)」と称する。演算方法fn(x)としては、例えば、「x」のチェックサムの値やハッシュ値を演算するものが考えられるが、もちろんこれらに限定されるものではない。
The calculation
ここで、「x」は、被演算情報の値であり、本実施の形態では先述のようにキーアドレスから読み出された値(正常であればキー情報25の値となる。)を用いる。したがって、本実施の形態では、被演算情報はプログラム26ごとに異なるが、プログラム26の進行状況に関わらず固定である(本実施の形態におけるホストコンピュータ10はキーアドレスに格納されている値を書き換えないため。)。
Here, “x” is the value of the operation information, and in the present embodiment, the value read from the key address as described above (or the value of the
なお、被演算情報は、キー情報25に限定されるものではなく、例えば、ホストコンピュータ10の記憶装置12またはROM2のメモリアレイ21内の特定のアドレスに格納されている他の値や演算方法を構成する情報の値などが採用されてもよいし、プログラム26の進行中において固定の値でなくてもよい。ただし、被演算情報は、少なくとも正常な処理が行われている限りにおいてプログラム26による予測が可能な値であって、好ましくはホストコンピュータ10の状態を反映した情報である。さらには、被演算情報はプログラム26が改ざん、あるいは、違法に複製された場合には状態が変化する情報とすることが好ましい。
The information to be calculated is not limited to the
必要不可欠情報格納領域34は、必要不可欠情報340を格納しておく記憶領域である。メモリシステム1では、ホストコンピュータ10が当該プログラム26を進行させる上で必要不可欠な情報がステージnごとに定義されており、これらが必要不可欠情報340として必要不可欠情報格納領域34に格納されている。以下の説明では、ステージnに対応する必要不可欠な情報を「En」と称する。すなわち、必要不可欠情報340には、ステージ1,・・・,Nに対応して、複数の必要不可欠な情報E1,・・・,ENが含まれている。
The indispensable
必要不可欠な情報Enとしては、例えば、プログラム26を進行させる上で必要となるキャラクタデータまたはその一部や、ROM2内に暗号化されて格納されている情報の復号キーに関する情報等が想定される。また、演算方法情報330において演算方法fn(x)の一部のみを格納しておき、情報E(n−1)と併せて演算方法fn(x)が表現されるようにしてもよい。あるいは、ステージnにおいて演算方法fn(x)をメモリシステム3から読み出すためのコマンド(後述)を、ステージ(n−1)に対応する必要不可欠な情報E(n−1)としてもよい。
The essential information E n, for example, character data, or a portion thereof and that is required to advance the
以下では、必要不可欠な情報Enは、プログラム26を実行するときにおいて、ステージnを進行させるためだけに必要な情報として説明する。すなわち、本実施の形態では、ステージnを進行させるときにおいて、ホストコンピュータ10は、必要不可欠な情報Enをメモリシステム1から取得する必要がある一方で、直前までのステージ1,・・・,(n−1)において取得した必要不可欠な情報E1,・・・,E(n-1)を記憶装置12等に保持しておく必要はない。
In the following, essential information E n, in the case of executing the
また、以下では、必要不可欠情報340は、メモリシステム1の出荷時には、すでにメモリアレイ31の必要不可欠情報格納領域34に格納されているものとして説明する。
In the following description, it is assumed that the
第1テーブル格納領域35は、第1テーブル350を格納する記憶領域である。第1テーブル350とは、演算方法fn(x)を読み出すためのコマンドと、演算方法fn(x)とを関連づける情報である。以下の説明では、演算方法fn(x)を読み出すためのコマンドを「コマンドRn」と称する。詳細は後述するが、コントローラ30は、ホストコンピュータ10からコマンドRnを受け取ると、第1テーブル350を参照して、受け取ったコマンドRnに対応する演算方法fn(x)を被選択演算方法として選択し、当該被選択演算方法を演算方法情報330から読み出してホストコンピュータ10に出力する。
The first
なお、本実施の形態では、コマンドRnは、プログラム26内に記述されており、ホストコンピュータ10は、プログラム26の進行状況(ステージ1,・・・,N)に対応するコマンドR1,・・・,RNを取得するものとして説明する。すなわち、コマンドRnはホストコンピュータ10におけるプログラム26の進行状況に応じて選択されるため、選択されたコマンドRnはホストコンピュータ10の状態を反映している。ただし、コマンドRnは、このような形態で提供されるものに限定されるものではない。例えば、先述のように、コマンドR2,・・・,RNは、必要不可欠な情報E1,・・・,E(N-1)として必要不可欠情報340に含まれていてもよい。
In the present embodiment, the command R n is described in the
第2テーブル格納領域36は、第2テーブル360を格納する記憶領域である。第2テーブル360とは、キー情報25(被演算情報)を演算方法fn(x)によって演算することにより求められる演算結果(図3において図示せず)と、必要不可欠情報340に含まれる必要不可欠な情報Enとを関連づける情報である。なお、以下では、ステージnにおいてコマンドRnにより正常に読み出された演算方法fn(x)を用いて、被演算情報(正常であればキー情報25)を演算した正常な演算結果を「演算結果An」と称する。一方、ステージnにおいて演算により求められ、未だ、正常であるか否かの判定を受けていない演算結果を「演算結果QAn」と称する。
The second
詳細は後述するが、コントローラ30は、ホストコンピュータ10から、必要不可欠情報340に対するアクセス要求(必要不可欠な情報Enを読み出すコマンドを受け取ったとき)があると、当該要求とともに入力される演算結果QAnを用いて第2テーブル360を参照する。そして、当該演算結果QAnに一致する演算結果Anが存在する場合、当該演算結果Anに関連づけられている必要不可欠な情報Enを被選択必要不可欠情報として選択し、必要不可欠情報340(必要不可欠情報格納領域34)から当該被選択必要不可欠情報を読み出して、ホストコンピュータ10に出力する。すなわち、本実施の形態では、演算結果QAnに一致する演算結果Anが第2テーブル360に存在することが必要不可欠情報の出力条件となる。なお、以下の説明では、ホストコンピュータ10が、必要不可欠情報340から必要不可欠な情報Enを読み出すために発行するコマンドを「要求コマンド」と称する。
Although details will be described later, the
図1に戻って、ホストコンピュータ10は、各種のデータの演算を行うとともにホストコンピュータが備える各種ハードウェアを制御するCPU11と、各種のデータを記憶する記憶装置12とを備えている。これにより、ホストコンピュータ10は、一般的なコンピュータとしての構成および機能を備えている。また、ホストコンピュータ10は、図示しないスロットを備えており、当該スロットにメモリシステム1を装着することが可能である。
Returning to FIG. 1, the
ホストコンピュータ10のCPU11は、メモリシステム1のメモリアレイ21に格納されているデータをROM2から読み出して各種の演算を行う。
The
特に、CPU11は、プログラム格納領域23に格納されているプログラム26をコントローラ20を介して記憶装置12にロードしつつ、実行する機能を有している。また、先述のように、CPU11は、固有キー格納領域22に格納されているキー情報25を記憶装置12のキーアドレスで示される領域に格納する。また、CPU11は、プログラム26を実行しつつ、実行中のプログラム26の進行状況(進行中のステージ)を把握し、必要であれば、記憶装置12に進行状況(ステージ識別子)を格納する。
In particular, the
さらに、CPU11は、コントローラ30を介してメモリアレイ31にアクセスする機能も有している。
Further, the
例えば、CPU11は、実行中のプログラム26の進行状況(ステージn)に応じて、メモリシステム1(コントローラ30)に対してコマンドRnを発行する。これによってホストコンピュータ10はメモリシステム3から演算方法fn(x)を読み出すことができる。また、読み出した演算方法fn(x)と被演算情報(正常であればキー情報25)とを用いて演算結果QAnを求め、これを要求コマンドとともにメモリシステム1(コントローラ30)に出力することにより、ステージnを進行させるために必要不可欠な情報Enを取得する。
For example, the
記憶装置12は、CPU11の一時的なワーキングエリアとして使用されるRAM(一般的には、高速アクセス可能な揮発性の記憶装置が採用される。)や、ホストコンピュータ10の起動プログラム(図示せず)等を格納しておく読み取り専用のROMなどのハードウェアから構成されている。また、図1には示していないが、セキュリティ機能強化のためには、記憶装置12の一部または全部がCPU11の内部にあってもよい。
The
なお、詳細は図示しないが、ホストコンピュータ10は、ユーザに対して情報を出力する出力装置(ディスプレイやLED、スピーカ、プリンタ等)、ユーザが情報を入力するために操作する入力装置(キーボードやボタン、コントローラ、マイク、タッチパネル等)などのハードウェアを適宜備えていてもよい。
Although not shown in detail, the
以上が、メモリシステム1を含むコンピュータシステムの構成および機能の説明である。次に、コンピュータシステムの動作を説明しつつ、本実施の形態における情報保護方法について説明する。
The above is the description of the configuration and functions of the computer system including the
図4は、第1の実施の形態におけるメモリシステム3の動作を示す流れ図である。メモリシステム3は、起動中のホストコンピュータ10にメモリシステム1が装着された状態で動作する。なお、以下において、ROM2のコントローラ20の動作については、従来の技術を適用することが可能であるため、適宜説明を省略する。
FIG. 4 is a flowchart showing the operation of the
メモリシステム1が動作中において、メモリシステム3のコントローラ30は、ホストコンピュータ10からの各種コマンドを受け付けることが可能な状態となっている(ステップS1,S3,S5,S8)。以下、コントローラ30がホストコンピュータ10からのコマンドを受け付けることが可能な状態を「待ち受け状態」と称する。ただし、コントローラ30が受け付けるコマンドは図4に示すものに限定されるものではない。
While the
待ち受け状態において、ロードコマンドが入力されると(ステップS1においてYes)、コントローラ30は、メモリアレイ31のデータセーブ領域32に格納されているセーブデータ320をロードする(ステップS2)。より詳細には、ロードコマンドとともに入力されるアドレス(データセーブ領域32のアドレス)により指定されるセーブデータ320をメモリアレイ31から読み出し、ホストコンピュータ10に出力する。
When a load command is input in the standby state (Yes in step S1), the
待ち受け状態において、セーブコマンドが入力されると(ステップS3においてYes)、コントローラ30は、メモリアレイ31のデータセーブ領域32にデータをセーブする(ステップS4)。より詳細には、セーブコマンドとともに入力されるアドレス(データセーブ領域32のアドレス)に、セーブコマンドとともに入力される情報(保存する情報。例えば、ユーザデータなど。)を、セーブデータ320として書き込む。
When a save command is input in the standby state (Yes in step S3), the
このように、本実施の形態では、セーブデータ320の読み出し、および、書き込みに対しては、コントローラ30は、特別な処理は行わず、従来と同等の処理を行う。ただし、本実施の形態におけるホストコンピュータ10は、セーブデータ320に、当該セーブデータ320がセーブされたときのプログラム26の進行状況(ステージn)を示す情報を含める。言い換えれば、本実施の形態におけるプログラム26は、実行中において、セーブデータ320を作成(更新)するときには、そのときの進行状況を示す情報をセーブデータ320に含めるように記述されている。以下では、セーブデータ320に含まれるステージnを示す情報(セーブデータ320により再開されるステージを示す。)を、「ステージS」と称する。
As described above, in the present embodiment, the
待ち受け状態において、コマンドRnが入力されると(ステップS5においてYes)、コントローラ30は、第1テーブル格納領域35の第1テーブル350を参照する(ステップS6)。
When the command R n is input in the standby state (Yes in step S5), the
ここで第1テーブル格納領域35(第1テーブル350)から読み出される情報とは、入力されたコマンドRnに対応する演算方法fn(x)が格納されている位置を示すアドレスである。なお、図4において図示を省略しているが、入力されたコマンドRnが第1テーブル350に格納されていない場合(すなわち、誤ったコマンドRnが入力された場合)、コントローラ30は、ホストコンピュータ10にダミーデータを出力する。ただし、ダミーデータを出力する代わりに、エラーを返す、あるいは、以降の動作を限定する、もしくは、何も受け付けない等の処理を行ってもよい。
Here, the information read from the first table storage area 35 (first table 350) is an address indicating a position where the calculation method f n (x) corresponding to the input command R n is stored. Although not shown in FIG. 4, when the input command R n is not stored in the first table 350 (that is, when an incorrect command R n is input), the
次に、コントローラ30は、読み出したアドレスで示される演算方法格納領域33に格納されている情報を読み出してホストコンピュータ10に出力する。演算方法格納領域33に格納されている情報とは、すなわち、演算方法情報330に含まれている演算方法fn(x)を表現した情報である。このように、ホストコンピュータ10からコマンドRnが入力されたときには、コントローラ30は、当該コマンドRnに対応する演算方法fn(x)を被選択演算方法として選択しホストコンピュータ10に出力する(ステップS7)。
Next, the
先述のように、コマンドRnはステージn(ホストコンピュータ10の状態を反映している。)に応じて選択されるため、コマンドRnはコマンドRnが出力されたときのホストコンピュータ10の状態を反映した情報である。そして、コントローラ30がコマンドRnに応じて複数の演算方法f1(x),・・・,fN(x)から演算方法fn(x)を選択することは、すなわちコントローラ30がホストコンピュータ10からの要求があったときのホストコンピュータ10の状態に応じて演算方法情報330から1の演算方法fn(x)を被選択演算方法として選択することになる。
As described above, since the command R n is selected according to the stage n (reflecting the state of the host computer 10), the command R n is the state of the
このように構成することにより、不正に演算方法fn(x)を読みだそうと企図する者は、刻々と変化する正常なホストコンピュータ10の状態をも再現しなければ演算方法fn(x)を読み出すことができず、セキュリティレベルが向上する。
With this configuration, a person who intends to read the calculation method f n (x) illegally does not reproduce the state of the
待ち受け状態において、要求コマンドが入力されると(ステップS8においてYes)、コントローラ30は、第2テーブル格納領域36の第2テーブル360を参照する(ステップS9)。
When a request command is input in the standby state (Yes in step S8), the
要求コマンドが入力されるときには、当該コマンドとともに、ホストコンピュータ10において求められた演算結果QAnも入力される。コントローラ30は、演算結果QAnに一致する演算結果Anが格納されていないか第2テーブル360を検索する。そして、演算結果QAnに一致する演算結果Anが格納されていた場合、コントローラ30は、当該演算結果Anに関連づけられているアドレスを読み出す。なお、第2テーブル360において、演算結果Anに関連づけられているアドレスとは、演算結果Anに対応する必要不可欠な情報Enの格納アドレスである。
When a request command is input, together with the command, computation obtained in the
次に、コントローラ30は、第2テーブル360から読み出した格納アドレスで示される情報を必要不可欠情報格納領域34から読み出してホストコンピュータ10に出力する。必要不可欠情報格納領域34に格納されている当該情報とは、すなわち、必要不可欠情報340に含まれている必要不可欠な情報Enである。このようにして、ホストコンピュータ10から要求コマンドが入力されたときには、コントローラ30は、当該要求コマンドとともに入力される演算結果QAnに一致する演算結果Anに対応する1の必要不可欠な情報Enを被選択必要不可欠情報として選択しホストコンピュータ10に出力する(ステップS10)。
Next, the
先述のように、本実施の形態における被演算情報はホストコンピュータ10の状態を反映した情報である。したがって、被演算情報を用いて演算される演算結果QAnもホストコンピュータ10の状態を反映した情報となる。そして、コントローラ30が、被選択必要不可欠情報の出力条件として、ホストコンピュータ10の状態を反映した演算結果QAnを用いることにより、不正に必要不可欠情報340を読みだそうと企図する者は、刻々と変化する正常なホストコンピュータ10の状態をも再現しなければ必要不可欠情報340を読み出すことができず、セキュリティレベルが向上する。なお、要求コマンドとともに入力された演算結果QAnと一致する演算結果Anが第2テーブル360に格納されていない場合、コントローラ30は、ダミーデータを出力する。ただし、ダミーデータを出力する代わりに、エラーを返す、あるいは、以降の動作を限定する、もしくは、何も受け付けない等の処理を行ってもよい。
As described above, the operation information in the present embodiment is information reflecting the state of the
以上がメモリシステム3の動作である。次に、ホストコンピュータ10の動作を説明する。
The above is the operation of the
図5および図6は、第1の実施の形態におけるホストコンピュータ10の動作を示す流れ図である。なお、以下では、ホストコンピュータ10には、すでにメモリシステム1が装着されており、コントローラ30は待ち受け状態にあるものとして説明する。また、図5および図6に示される各工程は、特に断らない限り、ホストコンピュータ10のCPU11が、主にプログラム26に従って動作することにより実行される工程を示す。
5 and 6 are flowcharts showing the operation of the
ホストコンピュータ10は、プログラム26の実行を開始すると、メモリシステム1のROM2からキー情報25を取得し(ステップS11)、記憶装置12のキーアドレスに格納する。そして、プログラム26の進行状況を示すステージnに「1(初期ステージ)」をセットする(ステップS12)。これにより、ホストコンピュータ10において実行中のプログラム26の進行状況がステージ1に移行し、ステージ1が開始される。
When the
次に、ホストコンピュータ10は、メモリシステム1(コントローラ30)に対して、コマンドRnを発行する。これにより、先述のようにメモリシステム1から演算方法fn(x)(被選択演算方法)が取得される(ステップS13)。なお、先述のように、ステージnにおいて使用するコマンドRnは、ホストコンピュータ10がROM2のメモリアレイ21から取得する。
Next, the
演算方法fn(x)が取得されると、ホストコンピュータ10は、記憶装置12のキーアドレスに格納されている値を被演算情報として読み出し、当該被演算情報を、ステップS13において取得した演算方法fn(x)により演算し、演算結果QAnを求める(ステップS14)。
When the calculation method f n (x) is acquired, the
次に、ホストコンピュータ10は、要求コマンドとともに、ステップS14において求めた演算結果QAnをメモリシステム1(コントローラ30)に対して出力する。これにより、先述のようにメモリシステム1から必要不可欠な情報En(被選択必要不可欠情報)が取得される(ステップS15)。
Next, the
必要不可欠な情報Enを取得すると、ホストコンピュータ10は、プログラム26のステージnを進行させつつ(ステップS20)、様々な状態を監視する状態となる(ステップS21,S24,S26,S29)。ただし、ホストコンピュータ10が監視する状態は、図6に示される状態に限定されるものではない。以下、ホストコンピュータ10が様々な状態を監視している状態を「監視状態」と称する。
When acquiring the essential information E n, the
監視状態において、データロード(メモリアレイ31のデータセーブ領域32に格納されている情報に対する読み出し。)が指示されると(ステップS21においてYes)、ホストコンピュータ10はメモリシステム1のコントローラ30に対して、ロードコマンドを出力する。ホストコンピュータ10からロードコマンドを受け取ると、コントローラ30は、先述のように、データロードを行い、ホストコンピュータ10に対してセーブデータ320を出力する。これにより、ホストコンピュータ10は、セーブデータ320を取得する(ステップS22)。
In the monitoring state, when a data load (reading of information stored in the data save
セーブデータ320を取得すると、ホストコンピュータ10は、取得したセーブデータ320に含まれる再開させるステージSに関する情報に基づいて、nにSをセットする(ステップS23)。これにより、プログラム26の進行状況は、データロード前のステージから再開させるステージ(すなわちステージS)に移行する。ステージSが再開されると、ロードしたセーブデータ320に従ってプログラム26を進行させるために、ホストコンピュータ10はステップS20の処理に戻る。
When the
本実施の形態では、先述のように、必要不可欠な情報Enは、ステージnを進行させるためにのみ必要な情報である。しかし、このような情報を必要不可欠な情報Enとして定義した場合であっても、セーブデータ320を取得しステージSからプログラム26を再開した場合においても、再開時点からステージSを終了するまでに、必要不可欠な情報ESを使用しなければならなくなる場合も起こりうる。
In this embodiment, as described above, essential information E n is the information necessary only for the progress of the stage n. However, even when the defined such information as essential information E n, even when the resumed
例えば、必要不可欠な情報Enがステージnにのみ登場するキャラクタデータの一部であって、再開時点からステージSが終了するまでに、そのキャラクタが登場するならば、前記の問題が発生する。このような場合には、ステージSに関する情報とともに、当該ステージSを開始したときに取得した必要不可欠な情報ESもセーブデータ320に含めてセーブし、ロードしたセーブデータ320から必要不可欠な情報ESを取得するように構成すればよい。
For example, essential information E n is a part of the character data appearing only in stage n, from resuming point to the Stage S is completed, if the characters appear, the problems. In such a case, the indispensable information E S acquired when the stage S is started together with the information regarding the stage S is also included in the
ただし、本実施の形態におけるデータセーブ領域32は、比較的自由にアクセス可能な記憶領域として構成されている。そのため、セーブデータ320に必要不可欠な情報ESを含めると、セキュリティ機能が多少低下するおそれがある。したがって、上記のような問題を生じさせない情報(再開後のステージSで使用されない情報)を、必要不可欠な情報Enとして定義することが好ましい。このような情報としては、例えば、ステージSにおいて必要不可欠な情報ESを取得した後、直ちに使用し、その後は使用しないような情報が好ましい。このような情報として、例えば、ステップS15の実行直後に一度だけ実行される処理のプログラムコードなどが考えられる。
However, the data save
あるいは、ステップS23を実行した直後に、ステップS13ないしS15に相当する処理を実行して、ステージSにおける必要不可欠な情報ESを取得してもよい。 Alternatively, immediately after executing the step S23, and executes the process corresponding to step S13 to S15, it may obtain essential information E S at stage S.
監視状態において、データセーブが指示されると(ステップS24においてYes)、ホストコンピュータ10はメモリシステム1のコントローラ30に対して、セーブコマンドとともに、保存する情報(セーブデータ。セーブ時のステージnに関する情報を含む。)を出力する(ステップS25)。これにより、コントローラ30は、先述のように、データのセーブを行う。なお、ホストコンピュータ10に対するデータセーブの指示は、ユーザからされてもよいし、オートセーブのように、プログラム26によって実行タイミングが予め決められているものであってもよい。
In the monitoring state, when data saving is instructed (Yes in step S24), the
監視状態において、プログラム26が進行しステージnが終了すると(ステップS26においてYes)、ホストコンピュータ10は、現在のステージnが最終ステージNであるか否かを判定する(ステップS27)。
In the monitoring state, when the
そして、現在のステージnが最終ステージNである場合、プログラム26が最後まで進行したと判断し、プログラム26を終了する。一方、現在のステージnが最終ステージNでない場合、ステージnをインクリメントして(ステップS28)、次のステージを開始し、ステップS13の処理に戻る。
If the current stage n is the final stage N, it is determined that the
監視状態において、終了が指示されると(ステップS29においてYes)、ホストコンピュータ10は、プログラム26の実行を終了する。なお、詳細は省略するが、終了が指示された場合は、データセーブを行うか否かをユーザに対して確認することが好ましい。
When the end is instructed in the monitoring state (Yes in step S29), the
以上が、第1の実施の形態における情報保護方法の説明である。次に、本実施の形態における効果について検証する。 The above is the description of the information protection method in the first embodiment. Next, the effect in this embodiment will be verified.
メモリシステム1では、保護の対象となる情報は、ROM2のメモリアレイ21と、メモリシステム3のメモリアレイ31にそれぞれ格納されている。そして、ROM2に格納されているプログラム26は、メモリシステム3に格納されている必要不可欠な情報E1,・・・,ENがなければ、ホストコンピュータ10において正常に動作させることができないように構成されている。すなわち、プログラム26を不正に複製しようと企図する者(以下、「不正な複製者」と称する。)は、ROM2のセキュリティ機能を破ってメモリアレイ21に格納されている情報を複製するだけでは足りず、メモリシステム3のコントローラ30が提供するセキュリティ機能をも看破し、メモリアレイ31に格納されている情報をも全て読み出して複製する必要がある。
In the
ここで、コントローラ30を介して、メモリアレイ31から全ての必要不可欠な情報E1,・・・,ENを読み出すためには、外部のコンピュータ(ホストコンピュータ10に限られない。例えば、不正な複製者の使用するコンピュータも含む。)は、コントローラ30に要求コマンドを出力するだけでは足りない。この要求コマンドは、ROM2に格納されているため、メモリアレイ21に格納されている情報を複製するだけで再現できるかもしれないが、この要求コマンドを無作為にコントローラ30に与えても、必要不可欠な情報Enは読み出せない。
Here, in order to read out all the essential information E 1 ,..., E N from the
すでに説明したように、外部のコンピュータは、当該要求コマンドとともに、正常な全ての演算結果A1,・・・,ANを1つずつコントローラ30に出力してやる必要がある。そして、この演算結果AnはROM2に格納されておらず、メモリシステム3(第2テーブル格納領域36)に格納されているのみである。したがって、演算結果AnをROM2から複製することはできないのであるから、未だメモリシステム3のセキュリティ機能を突破できていない不正な複製者は、演算結果A1,・・・,ANをそれぞれ演算により求める以外にない。
As described above, the external computer needs to output all normal calculation results A 1 ,..., A N to the
演算結果Anは、被演算情報を演算方法fn(x)で演算した結果として得られる。したがって、全ての演算結果A1,・・・,ANを得るには、外部のコンピュータは、被演算情報と、全てのf1(x),・・・,fN(x)を取得しなければならない。本実施の形態では、被演算情報(キー情報25)はROM2に格納されているものの、演算方法fn(x)はメモリシステム3(演算方法格納領域33)にのみ格納されている。したがって、演算方法fn(x)をROM2から読み出すことはできないのであるから、未だメモリシステム3のセキュリティ機能を突破できていない不正な複製者は、全てのコマンドR1,・・・,RNを1つずつコントローラ30に出力してメモリシステム3から読み出す必要がある。
The calculation result An is obtained as a result of calculating the calculation target information by the calculation method f n (x). Therefore, in order to obtain all the calculation results A 1 ,..., A N , the external computer acquires the operation information and all the f 1 (x),..., F N (x). There must be. In the present embodiment, the operation information (key information 25) is stored in the
すなわち、メモリシステム1では、全ての必要不可欠な情報E1,・・・,ENを読み出すためには、ROM2のセキュリティ機能を破り、メモリアレイ21に格納されている情報を読み出し、解析して、被演算情報と全てのコマンドR1,・・・,RNとを特定しなければならない。
That is, in the
また、先述のように、被演算情報および全てのコマンドR1,・・・,RNは、ホストコンピュータ10の状態を反映した情報とされているため、不正な複製者は、特定した被演算情報と全てのコマンドR1,・・・,RNとを使用するに際しても、正常なホストコンピュータ10の状態をも再現しなければならない。
Further, as described above, since the operation information and all the commands R 1 ,..., RN are information reflecting the state of the
さらに、被演算情報および全てのコマンドR1,・・・,RNは、正規のプログラマ(プログラム26の提供者)がプログラム26に応じて書き換えるだけで、容易に変更でき、ホストコンピュータ10における変更を要しない。したがって、例えば、ゲームタイトルごとや改訂版ごとに頻繁に変更でき、不正な複製者は、その度に上記の解析作業を行わなければならず、違法な複製品(海賊版)を製造するまでに一定以上の時間を要することとなる。特に、プログラム26がゲームソフトウェアなどである場合、発売開始直後から海賊版が流通すると正規版の売れ行きに大きな影響がでてしまうという特性がある。したがって、このような市場の製品においては、例え完全に海賊版の製造を防止できなくとも、発売開始から一定期間でも海賊版の出現を遅らせることができるならばその効果は大きいといえる。
Further, the operation information and all the commands R 1 ,..., R N can be easily changed by a regular programmer (provider of the program 26) according to the
以上のように、第1の実施の形態におけるメモリシステム1は、ホストコンピュータ10に接続され、プログラム26を格納するメモリアレイ21と、メモリアレイ21に対するアクセスを制御するコントローラ20と、ホストコンピュータ10がプログラム26を使用するときに必要となる必要不可欠情報340を格納する書き換え可能なメモリアレイ31と、メモリアレイ31に対するアクセスを制御するコントローラ30とを備えている。そして、コントローラ30は、ホストコンピュータ10の状態を反映した出力条件に応じて、メモリアレイ31に格納されている必要不可欠情報340を被選択必要不可欠情報としてホストコンピュータ10に出力する。これにより、既存のホストコンピュータ10の設計変更を必要とせず、安価にセキュリティレベルを向上させることができる。また、例えば、プログラム26ごとに変更できるので、一旦、セキュリティを破られても、容易に再構築できる。また、ホストコンピュータの状態を反映した出力条件が設けられているため、これを再現しなければ必要不可欠情報を読み出すことができず、複製を作成することが一層困難となる。
As described above, the
また、メモリシステム1は、演算方法fn(x)を定義する演算方法情報330を格納しており、演算方法fn(x)を被選択演算方法としてホストコンピュータ10に出力し、被選択必要不可欠情報の出力条件は、被演算情報(キーアドレスで示される記憶領域に格納されている情報)を被選択演算方法により演算して得られる演算結果QAnに基づく条件を含んでいる。このように、必要に応じて演算により作成される情報を出力条件にすることにより、いずれかの記憶領域に格納されている情報(固定されている情報)をそのまま出力条件に用いる場合に比べて、セキュリティレベルが向上する。
Further, the
また、演算方法情報330は、複数の演算方法f1(x),・・・,fN(x)を定義しており、メモリアレイ31は、複数の必要不可欠な情報E1,・・・,ENを格納しており、複数の演算方法f1(x),・・・,fN(x)から選択される1の演算方法fn(x)によりそれぞれ求められる複数の演算結果A1,・・・,ANと複数の必要不可欠な情報E1,・・・,ENとが一対一で関連づけられており、コントローラ30は、出力条件に応じて、複数の必要不可欠な情報E1,・・・,ENから1の被選択必要不可欠情報を選択してホストコンピュータ10に出力する。これにより、1回の演算により得られる1の演算結果A1によって全ての必要不可欠情報340が読み出される場合に比べて、セキュリティレベルが向上する。
The
また、被選択演算方法は、プログラム26のホストコンピュータ10における進行状況に応じて選択されることにより、プログラム26の進行状況にリンクさせた読み出し要求をしなければ、必要不可欠情報340を読み出すことが困難となる。これによりセキュリティレベルが向上する。
Further, the selected calculation method is selected according to the progress status of the
また、演算方法情報330は、メモリアレイ31に格納される。メモリシステム3のセキュリティ機能は未だ破られていないので、ROM2側に演算方法情報330を格納する場合に比べて、セキュリティレベルが向上する。
The
なお、ホストコンピュータ10はデータセーブ領域32に対して自由にアクセス可能であると説明したが、データセーブ領域32に対するホストコンピュータ10からのアクセスに対して、何らかのセキュリティ機能を設けてもよい。以下の実施の形態においても同様である。
Although the
また、第1の実施の形態では、演算方法情報330において複数の演算方法fn(x)が定義されていたが、定義される演算方法は1つであってもよい。この場合でも、メモリシステム3にセキュリティ機能が追加されているため、従来の技術に比べればセキュリティレベルは向上する。そして、演算方法情報330において1の演算方法のみを定義する場合であっても、既存のホストコンピュータ10に対する設計変更は不要であるとともに、保護対象の情報に応じて容易に変更することも可能であるという効果も得られる。
In the first embodiment, a plurality of calculation methods f n (x) are defined in the
また、図2および図3に示した各記憶領域のそれぞれは、メモリアレイ21,31において連続したアドレスで構成されているように示している。しかし、例えば、固有キー格納領域22は、不連続なアドレスにより構成されていてもよい。以下の実施の形態においても同様である。
Further, each of the storage areas shown in FIG. 2 and FIG. 3 is shown to be composed of continuous addresses in the
<2. 第2の実施の形態>
第1の実施の形態では、演算方法fn(x)および必要不可欠な情報Enは保護対象の情報のホストコンピュータ10における進行状況(ステージn)に関連づけられており、ステージnにおいては演算方法fn(x)および必要不可欠な情報Enしか読み出せないように構成されていた。しかし、例えば、演算方法f(n-1)(x)と演算方法fn(x)との読み出す順序は、特に制限されていなかった。しかし、例えば、複数の演算方法f1(x),・・・,fN(x)の読み出し順序を制限し、この制限に従っていない場合に当該読み出しを禁止することも可能である。また、必要不可欠な情報Enについても同様である。
<2. Second Embodiment>
In the first embodiment, calculation method f n (x) and essential information E n is associated with the progress in the
図7は、第2の実施の形態におけるメモリアレイ31の記憶領域と各記憶領域に格納される情報とを例示する図である。なお、第2の実施の形態におけるメモリシステム1において第1の実施の形態におけるメモリシステム1と同様の構成については同符号を付し、適宜説明を省略する。
FIG. 7 is a diagram illustrating a storage area of the
図7と図3とを比較すれば明らかなように、第2の実施の形態におけるメモリシステム1は、メモリシステム3のメモリアレイ31に設けられる記憶領域が第1の実施の形態におけるメモリシステム1と異なっている。具体的には、第2の実施の形態におけるメモリアレイ31には、進行履歴情報370を格納する進行履歴格納領域37と、出力履歴情報380を格納する出力履歴格納領域38が追加的に設けられている。
As is clear from comparison between FIG. 7 and FIG. 3, the
また、第1テーブル格納領域35に格納される情報が第1テーブル351である点と、第2テーブル格納領域36に格納される情報が第2テーブル361である点も第1の実施の形態におけるメモリシステム1と相違する。
In addition, in the first embodiment, the information stored in the first
進行履歴格納領域37に格納される進行履歴情報370は、コントローラ30により作成される情報であって、コントローラ30がホストコンピュータ10から進行状況(ステージn)を通知されたときに、当該通知された進行状況を記録する情報である。詳細は後述するが、本実施の形態では、プログラム26におけるステージ(n−1)までが順次に正常に進行して正常にステージnが開始されたときには、進行履歴情報370には、ステージnが記録される。言い換えれば、進行履歴情報370にステージnが記録されている状態とは、ホストコンピュータ10により実行中のプログラム26の進行状況がステージnの状態であることを示す。なお、以下の説明では、進行履歴情報370に記録されたステージを「ステージP」と称する。
The
出力履歴格納領域38に格納される出力履歴情報380は、コントローラ30によって作成される。出力履歴情報380は、コントローラ30がホストコンピュータ10に必要不可欠情報340を出力するときに、出力する必要不可欠な情報Enに関する情報を記録する情報である。本実施の形態では、プログラム26がステージnまで順次に正常に進行し、ステージnにおける必要不可欠な情報Enまでが正常に出力された状態では、出力履歴情報380にはステージnが記録されている。なお、以下の説明では、出力履歴情報380に記録されたステージを「ステージQ」と称する。また、出力履歴情報380におけるステージQの初期値は「0」である。
The
第2の実施の形態における第1テーブル351は、コマンドRnと当該コマンドRnに対応するアドレス(当該コマンドRnにより読み出されるべき演算方法fn(x)が格納されている演算方法格納領域33のアドレス)とを関連づけている点は第1の実施の形態における第1テーブル350と同じである。しかし、第1テーブル351は、これらの情報に加えて、全てのコマンドRnについて、各コマンドRnが使用されるべきステージnに関する情報も関連づけられている。すなわち、第1テーブル351は、コマンドRnと、コマンドRnが使用されるべきステージnと、コマンドRnによって読み出される演算方法fn(x)の格納アドレスとを関連づけている。 First table 351 in the second embodiment, the command R n and the command R n in the corresponding address (the command R n calculation method storage area calculation method f n (x) is stored to be read by the 33 address) is the same as the first table 350 in the first embodiment. However, in addition to these pieces of information, the first table 351 also associates information on the stage n where each command R n should be used for all the commands R n . That is, the first table 351 is associated with a command R n, a stage n to command R n is used, and a storage address of the calculation method f n (x) to be read by the command R n.
第2の実施の形態における第2テーブル361は、演算結果Anと、当該演算結果Anに対応するアドレス(当該演算結果Anに一致する演算結果QAnが要求コマンドとともに入力された場合に読み出される必要不可欠な情報Enが格納されている必要不可欠情報格納領域34のアドレス)とを関連づけている点は第1の実施の形態における第2テーブル360と同じである。しかし、第2テーブル361は、これらの情報に加えて、プログラム26の進行状況(ステージn)に関する情報も関連づけられている。すなわち、第2テーブル361は、ステージnと、演算結果An(当該ステージnにおいて正常に演算が実行された場合の演算結果QAnの予測値)と、当該演算結果Anに対応する必要不可欠な情報Enの格納アドレスとを関連づけている。 Second table 361 in the second embodiment, the operation result A n, when the operation result QA n address corresponding to the operation result A n (the result of the calculation to match the A n is inputted with the request command is that essential information E n to be read is in association with necessary address essential information storage area 34) stored is the same as the second table 360 in the first embodiment. However, in addition to these pieces of information, the second table 361 is also associated with information related to the progress of the program 26 (stage n). That is, the second table 361, a stage n, a calculation result A n (predicted value of the operation result QA n when calculating normally in the stage n has been performed), essential that corresponds to the operation result A n stores are associated with the address of such information E n.
次に、第2の実施の形態における情報保護方法について説明する。 Next, an information protection method in the second embodiment will be described.
図8は、第2の実施の形態におけるメモリシステム3の動作を示す流れ図である。第2の実施の形態におけるメモリシステム3は、起動中のホストコンピュータ10にメモリシステム1が装着された状態で動作する。
FIG. 8 is a flowchart showing the operation of the
第2の実施の形態におけるメモリシステム3が動作中において、メモリシステム3のコントローラ30は、ホストコンピュータ10からの各種コマンドを受け付けることが可能な状態となっている(ステップS30,S33,S36,S42)。以下、本実施の形態において、第2の実施の形態におけるコントローラ30がホストコンピュータ10からのコマンドを受け付けることが可能な状態を「待ち受け状態」と称する。ただし、コントローラ30が受け付けるコマンドは図8に示すものに限定されるものではない。
While the
待ち受け状態において、ロードコマンドが入力されると(ステップS30においてYes)、コントローラ30は、メモリアレイ31のデータセーブ領域32に格納されているセーブデータ320をロードする(ステップS31)。そして、ロードしたセーブデータ320から、当該セーブデータ320により再開されるステージ(すなわち、ステージS)に関する情報を取得して、進行履歴情報370にステージPとして当該ステージSを記録するとともに、出力履歴情報380にステージQとして当該ステージSの直前のステージ(S−1)を記録する(ステップS32)。
When a load command is input in the standby state (Yes in step S30), the
ステップS32が実行されることにより、例えば、すでにプログラム26がステージnまで進行している状況であっても、ステージ(n−1)から再開されるセーブデータ320がロードされた場合には、進行履歴情報370におけるステージPがステージ(n−1)に書き換えられ、出力履歴情報380におけるステージQがステージ(n−2)に書き換えられる。すなわち、正常な処理により進行状況が逆行する場合には、進行履歴情報370および出力履歴情報380が訂正される。
By executing step S32, for example, even when the
待ち受け状態において、セーブコマンドが入力されると(ステップS33においてYes)、コントローラ30は、このときのステージnを進行履歴情報370におけるステージPとして記録する(ステップS34)。ステップS34において記録するステージnは、セーブコマンドとともにホストコンピュータ10から入力される情報に含まれるステージnを示す情報を用いる。
When a save command is input in the standby state (Yes in step S33), the
進行履歴情報370にステージPを記録すると、コントローラ30は、第1の実施の形態と同様にセーブコマンドとともに入力される情報をメモリアレイ31のデータセーブ領域32にセーブする(ステップS35)。なお、本実施の形態では、セーブコマンドとともに、ステージnを示す情報のみがホストコンピュータ10から入力される場合がある。その場合には、データセーブ領域32に格納すべき情報は存在しないので、ステップS35は実行されない。
When the stage P is recorded in the
待ち受け状態において、コマンドRnが入力されると(ステップS36においてYes)、コントローラ30は、第1テーブル格納領域35の第1テーブル351を参照する(ステップS37)。そして、入力されたコマンドRnが第1テーブル351に存在していない場合(ステップS38においてNo)、入力されたコマンドRnは定義されていない不正なコマンドであるとみなしてダミーデータを出力する(ステップS39)。
When the command R n is input in the standby state (Yes in step S36), the
一方、入力されたコマンドRnが第1テーブル351に存在する場合(ステップS38においてYes)、第1の実施の形態と同様に、コントローラ30は、入力されたコマンドRnに関連づけられている情報を第1テーブル格納領域35から読み出す。
On the other hand, when the input command R n is present in the first table 351 (Yes in step S38), the
ここで第1テーブル格納領域35(第1テーブル351)から読み出す情報とは、入力されたコマンドRnに対応するステージnを示す情報と、当該コマンドRnに対応する演算方法fn(x)の格納アドレスである。このように、第1テーブル351においてコマンドRnとステージnとが関連づけられていることにより、ホストコンピュータ10はコマンドRnをコントローラ30に出力することで、ホストコンピュータ10の状態(ステージn)を間接的にコントローラ30に伝達することができる。
Here, the first
次に、第1テーブル351から取得したステージnが進行履歴情報370に記録されているステージPと一致すれば(ステップS40においてYes)、コントローラ30は、ステージnとともに第1テーブル351から取得した格納アドレスを用いて、当該格納アドレスに格納されている演算方法fn(x)を読み出してホストコンピュータ10に出力する(ステップS41)。
Next, if the stage n acquired from the first table 351 matches the stage P recorded in the progress history information 370 (Yes in step S40), the
一方、第1テーブル351から取得されたステージnが進行履歴情報370に記録されているステージPと異なる場合(ステップS40においてNo)、コントローラ30は、ステップS39を実行してダミーデータを出力する。すなわち、この場合のコントローラ30は、正常な被選択演算方法の出力を禁止する。
On the other hand, when the stage n acquired from the first table 351 is different from the stage P recorded in the progress history information 370 (No in step S40), the
ステップS40においてNoとなる状況とは、ホストコンピュータ10におけるプログラム26の進行状況(予めメモリシステム3に通知され進行履歴情報370に記録されている進行状況)がステージnではないにもかかわらず、ステージnで使用されるべきコマンドRnが使用されたことを意味する。このように、コントローラ30は、ステップS40を実行することによってプログラム26の進行状況を確認しつつ演算方法fn(x)を選択する。すなわち、第2の実施の形態におけるコントローラ30は、ホストコンピュータ10におけるプログラム26の進行状況(ステージn)に応じて被選択演算方法を選択する。
The situation of No in step S40 means that the progress status of the
このように、第2の実施の形態における情報保護方法を採用すれば、不正な複製者は、正しいコマンドRn(ROM2において定義されている正規のコマンドRn)を使用してメモリシステム3を攻撃しただけでは、メモリアレイ31から正しい演算方式fn(x)を取得することはできない。したがって、コマンドRnとおぼしき情報をROM2から読み出して無作為にコントローラ30に出力しても、正しい演算方式fn(x)を取得することができる可能性は低く、第1の実施の形態に比べてセキュリティレベルが向上する。
As described above, if the information protection method according to the second embodiment is adopted, an unauthorized duplicator uses the correct command R n (the regular command R n defined in the ROM 2) to configure the
待ち受け状態において、要求コマンドが入力されると(ステップS42においてYes)、コントローラ30は、第2テーブル格納領域36の第2テーブル361を参照し(ステップS43)、当該要求コマンドとともに入力された演算結果QAnの正否を判定する(ステップS44)。
When a request command is input in the standby state (Yes in step S42), the
第1の実施の形態と同様に本実施の形態においても、要求コマンドは演算結果QAnとともに入力される。そこで、コントローラ30は、入力された演算結果QAnに一致する演算結果Anが第2テーブル361に格納されていないか検索し、演算結果QAnに一致する演算結果Anが第2テーブル361に格納されていた場合に演算結果QAnが正しい(ステップS44においてYes)と判断する。
Also in the first embodiment of the present embodiment similar to the embodiment, the request command is input together with the operation result QA n. Therefore, the
しかし、このような判断は次のような問題を生じるおそれがある。すなわち、ステージnにおける演算の結果として演算結果QAnが誤っていたとしても、たまたま他のステージ(例えばステージ(n+1))における演算の予測値(演算結果A(n+1))と一致していれば演算結果QAnが正しいと誤認されることになる。この場合でも後処理により正しい必要不可欠情報(ステージnにおける必要不可欠情報)が読み出されることは阻止されるが、誤った判断がされること自体、あまり好ましいものではない。 However, such a determination may cause the following problems. That is, even if the calculation result QA n is incorrect as the result of the calculation at stage n, it happens to coincide with the predicted value (calculation result A (n + 1) ) at another stage (for example, stage (n + 1)). If so, the calculation result QA n is mistakenly recognized as correct. Even in this case, it is possible to prevent correct essential information (essential information in stage n) from being read out by post-processing, but it is not very preferable to make an erroneous determination itself.
これを回避するには、ステップS44における判断は、第1の実施の形態と異なり、以下のように行うことが好ましい。すなわち、ステップS43に先だって、コントローラ30が進行履歴情報370におけるステージP(その時点でのプログラム26の進行状況を示す)を取得する。そして、第2テーブル361を参照し、取得したステージPを用いて第2テーブル361を検索する。これにより、第2テーブル361から、ステージPにおける演算の予測値(演算結果An)が得られるので、当該演算結果Anと、入力された演算結果QAnとが一致するか否かを比較し、一致した場合にのみ演算結果QAnが正しい(ステップS44においてYes)と判断する。このように、入力された演算結果QAnの照合を、一回に限定することにより、誤った判断がされることを防止できる。また、コントローラ30がステージnの進行状況を常に管理しているので、演算結果の一致を検索することが容易になる。
In order to avoid this, the determination in step S44 is preferably performed as follows, unlike the first embodiment. That is, prior to step S43, the
演算結果QAnが誤っている場合、コントローラ30は、ステップS39を実行することにより、必要不可欠な情報Enの代わりにダミーデータをホストコンピュータ10に出力する。
If the operation result QA n is incorrect, the
これに対して演算結果QAnが正しい場合には、コントローラ30は、当該演算結果QAnと一致した演算結果Anに対応するステージnを第2テーブル361から読み出す。そして、第2テーブル361から読み出したステージnを用いて、ステージ(n−1)と出力履歴情報380のステージQとが一致するか否かを判定する(ステップS45)。
If the operation result QA n is correct for the hand, the
ステップS45における処理は、最後に必要不可欠情報を正常に読み出せたステージ(出力履歴情報380におけるステージQ)が直前のステージ(ステージ(n−1))であるか否かを判定する処理に相当する。すなわち、直前のステージにおいて必要不可欠情報340の出力に成功していた場合にのみ、ステップS45においてYesと判定される。
The process in step S45 corresponds to a process of determining whether or not the last stage (stage Q in the output history information 380) from which the indispensable information has been normally read is the immediately preceding stage (stage (n-1)). To do. That is, it is determined as Yes in step S45 only when the
そして、ステップS45においてNoと判定すると、コントローラ30はステップS39を実行することにより、正常な必要不可欠な情報Enの代わりにダミーデータをホストコンピュータ10に出力する。
When it is determined No in step S45, the
すなわち、第2の実施の形態におけるコントローラ30は、要求コマンドとともに入力された演算結果QAnを「正しい」と判断した場合であっても、直前にホストコンピュータ10に向けて出力した被選択必要不可欠情報が必要不可欠な情報E(n-1)でない場合には、正常な必要不可欠な情報Enをホストコンピュータ10に出力することを禁止する。したがって、第2の実施の形態では、プログラム26の進行順序に従って、1つずつ要求しなければ、全ての必要不可欠な情報E1,・・・,ENを正常にメモリアレイ31から読み出すことができない。
That is, the
一方、ステップS45においてYesと判定した場合、コントローラ30は、第2テーブル361において演算結果Anに関連づけられているアドレス(演算結果Anに対応する必要不可欠な情報Enの格納アドレス)を第2テーブル361から読み出す。そして、読み出した当該アドレスを用いて、必要不可欠情報格納領域34から必要不可欠な情報Enを被選択必要不可欠情報として選択し読み出してホストコンピュータ10に出力する(ステップS46)。
On the other hand, if it is determined as Yes at step S45, the
正常な被選択必要不可欠情報をホストコンピュータ10に出力すると、コントローラ30は、当該被選択必要不可欠情報を出力したことを示すステージnを出力履歴情報380のステージQとしてセットし、出力履歴格納領域38に格納する(ステップS47)。
When normal selected essential information is output to the
以上が第2の実施の形態におけるメモリシステム3の動作である。次に、第2の実施の形態におけるホストコンピュータ10の動作を説明する。
The above is the operation of the
図9は、第2の実施の形態におけるホストコンピュータ10の動作を示す流れ図である。なお、図9に示される各工程は、特に断らない限り、ホストコンピュータ10のCPU11が、主にプログラム26に従って動作することにより実行される工程を示す。
FIG. 9 is a flowchart showing the operation of the
第2の実施の形態におけるホストコンピュータ10は、プログラム26の実行を開始すると、メモリシステム1のROM2からキー情報25を取得し(ステップS51)、記憶装置12のキーアドレスに格納する。そして、プログラム26の進行状況を示すステージnに「1(初期ステージ)」をセットする(ステップS52)。これにより、ホストコンピュータ10において実行中のプログラム26の進行状況がステージ1に移行し、ステージ1が開始される。
When the execution of the
次に、ホストコンピュータ10は、プログラム26の進行状況を示すステージnとともに、メモリシステム1に対してセーブコマンドを発行する(ステップS53)。すなわち、ステージnを含むセーブコマンドをメモリシステム1に出力する。ステップS53の処理が実行されると、セーブコマンドが入力されたメモリシステム1では、先述のように、ステップS34が実行され、進行履歴情報370にステージnが格納される。
Next, the
ステップS53の処理は、ホストコンピュータ10が、プログラム26の進行状況(ステージn)をメモリシステム1に通知する処理である。したがって、ステップS53は、ステージnが開始された直後に、CPU11によって自動的に実行されるように(ユーザの指示を待つことなしに)プログラム26に記述されていることが好ましい。
The process of step S53 is a process in which the
ステップS53が実行され、進行履歴情報370にステージnが格納されると(メモリシステム1から正常終了の通知があると)、第2の実施の形態におけるホストコンピュータ10はステップS54ないしS56の処理を実行する。なお、ステップS54ないしS56の処理は、第1の実施の形態におけるステップS13ないしS15と同様の処理であるので説明を省略する。また、ステップS56を終了すると、第2の実施の形態におけるホストコンピュータ10は、第1の実施の形態におけるステップS21ないしS29と同様の処理を実行する。
When step S53 is executed and stage n is stored in the progress history information 370 (when there is a normal end notification from the memory system 1), the
以上のように、第2の実施の形態においても、第1の実施の形態と同様の効果を得ることができる。 As described above, also in the second embodiment, the same effect as that in the first embodiment can be obtained.
また、第2の実施の形態におけるコントローラ30は、プログラム26のホストコンピュータ10における進行状況が通知されたときに、通知された進行状況を進行履歴情報370としてメモリアレイ31に格納するとともに、進行履歴情報370に応じて被選択演算方法を選択する。これにより、メモリシステム1は、ホストコンピュータ10の状態を把握しつつ動作でき、ホストコンピュータ10の状態を反映させたセキュリティ機能を容易に提供できる。
In addition, when the progress status of the
また、第2の実施の形態では、複数の必要不可欠な情報E1,・・・,ENの出力条件は、コントローラ30が複数の必要不可欠な情報E1,・・・,ENを出力する際の出力順序を含む。すなわち、出力条件に含まれる出力順序でなければ必要不可欠情報340を読み出すことができず、セキュリティレベルが向上する。
Further, in the second embodiment, a plurality of essential information E 1, · · ·, output condition E N, the
また、コントローラ30は、例えば、ホストコンピュータ10に必要不可欠な情報E(n-)を出力したときの出力履歴情報380に応じて、出力条件としての出力順序となるように次回に出力する必要不可欠情報Enを選択することにより、容易に複数の必要不可欠な情報E1,・・・,ENの出力順序を決定できる。
Further, the
<3. 第3の実施の形態>
上記実施の形態では、ホストコンピュータ10が1のコマンドRnを発行することにより、1の演算方法fn(x)が取得された。しかし、演算方法を読み出すコマンドRnは、必ずしも演算方法fn(x)と一対一に対応していなくてもよい。
<3. Third Embodiment>
In the above-described embodiment, when the
第3の実施の形態における演算方法情報330には、第1および第2の実施の形態と同様に、複数の演算方法f1(x),・・・,fN(x)が定義されている。そして、第3の実施の形態では、各演算方法f1(x),・・・,fN(x)を定義する情報は、いずれも複数個に分割して、順次に、メモリシステム3からホストコンピュータ10に出力することが可能とされている。そして、ホストコンピュータ10は、複数個に分割して、順次に取得した各情報から、各演算方法f1(x),・・・,fN(x)を作成する。
In the
以下では、各演算方法f1(x),・・・,fN(x)を定義する情報の分割数を分割数M(Mは2以上の自然数。)と称する。また、演算方法fn(x)をM個に分割する各情報を、メモリシステム3からの出力順序を示す添え字「m(mはM以下の自然数。)」を用いて、演算方法fn1(x),・・・,fnM(x)と称する。言い換えれば、演算方法fn1(x),・・・,fnM(x)は、ホストコンピュータ10において、演算方法fn(x)を作成するために必要な情報である。
Hereinafter, the number of divisions of information defining each calculation method f 1 (x),..., F N (x) is referred to as a division number M (M is a natural number of 2 or more). Further, each information calculation method f n of the (x) is divided into M, subscript "m (m is M or less natural number.)" Shows the output sequence from the
また、各演算方法fn1(x),・・・,fnM(x)を要求するためにホストコンピュータ10から入力されるコマンドとして、コマンドRn1,・・・,RnMがプログラム26内において定義されている。そして、第3の実施の形態における第1テーブル351では、コマンドRn1,,RnMはいずれもステージnと関連づけられているが、演算方法格納領域33のアドレスについてコマンドRn1,,RnMは演算方法fn1(x),・・・,fnM(x)の格納アドレスとそれぞれ一対一で関連づけられている。
Each calculation method f n1 (x), ···, a command input from the
次に、第3の実施の形態における情報保護方法について説明する。なお、本実施の形態における情報保護方法では、メモリシステム1における動作は第2の実施の形態におけるメモリシステム1とほぼ同様であるため、説明を省略する。
Next, an information protection method in the third embodiment will be described. In the information protection method in the present embodiment, the operation in the
図11は、第3の実施の形態におけるホストコンピュータ10の動作を示す流れ図である。なお、図11に示される各工程は、特に断らない限り、ホストコンピュータ10のCPU11が、主にプログラム26に従って動作することにより実行される工程を示す。
FIG. 11 is a flowchart showing the operation of the
第3の実施の形態におけるホストコンピュータ10は、プログラム26の実行を開始すると、ステップS61ないしS63の処理を行う。ここで、ステップS61ないしS63の処理は、第2の実施の形態におけるステップS51ないしS53と同様の処理なので説明を省略する。
When the
ステップS63が実行されると、第3の実施の形態におけるホストコンピュータ10は出力順序を示すmの値を「1(初期値)」にセットする(ステップS64)。
When step S63 is executed, the
次に、ホストコンピュータ10は、コマンドRnmをメモリシステム3のコントローラ30に対して発行し、これに対してメモリシステム3から出力される演算方法fnm(x)を取得して記憶装置12に記憶しておく(ステップS65)。
Next, the
そして、さらに、mがMと一致しなければ(ステップS66においてNo)、演算方法fn(x)を作成するために必要な演算方法fn1(x),・・・,fnM(x)が未だすべて取得されていないと判断して、mをインクリメントして(ステップS67)、ステップS65からの処理を繰り返す。 If m does not coincide with M (No in step S66), the calculation methods f n1 (x),..., F nM (x) necessary to create the calculation method f n (x) are obtained. Are not yet acquired, m is incremented (step S67), and the processing from step S65 is repeated.
一方、mがMと一致した場合(ステップS66においてYes)、演算方法fn(x)を作成するために必要な演算方法fn1(x),・・・,fnM(x)がすべて取得されたと判断して、取得し格納しておいた演算方法fn1(x),・・・,fnM(x)に基づいて演算方法fn(x)を作成する(ステップS68)。 On the other hand, m if matches the M (Yes in step S66), a calculation method f n required calculation method in order to create a (x) f n1 (x) , ···, obtains f nM (x) are all In step S68, the calculation method f n (x) is created based on the calculation methods f n1 (x),..., F nM (x) acquired and stored.
ステージnにおいて取得する必要のある演算方法fn(x)が無事に取得されると、第3の実施の形態におけるホストコンピュータ10は、ステップS69およびS70の処理を実行する。なお、ステップS69およびS70の処理は、第2の実施の形態におけるステップS55およびS56と同様の処理であるので説明を省略する。また、ステップS70を終了すると、第3の実施の形態におけるホストコンピュータ10は、第1の実施の形態におけるステップS21ないしS29と同様の処理を実行する。
When the calculation method f n (x) that needs to be acquired in stage n is acquired successfully, the
以上のように、第3の実施の形態においても、上記実施の形態と同様の効果を得ることができる。 As described above, also in the third embodiment, the same effect as that of the above embodiment can be obtained.
また、被選択演算方法が、演算方法情報330から複数回に分けて読み出されることにより、複数回の読み出しの全てに成功しない限り1の演算方法fn(x)すら取得できない。これによりセキュリティレベルが向上する。
In addition, since the selected calculation method is read from the
なお、上記実施の形態では、すべての演算方法fn(x)が、M個に分割される例で説明したが、各演算方法fn(x)ごとに分割数が異なっていてもよい。 In the above embodiment, the example in which all the calculation methods f n (x) are divided into M pieces has been described, but the number of divisions may be different for each calculation method f n (x).
<4. 変形例>
以上、本発明の実施の形態について説明してきたが、本発明は上記実施の形態に限定されるものではなく様々な変形が可能である。
<4. Modification>
Although the embodiments of the present invention have been described above, the present invention is not limited to the above embodiments, and various modifications can be made.
例えば、上記実施の形態では、メモリシステム1において、保護対象の情報を格納するROM2と、必要不可欠情報340を格納するメモリシステム3とが一体構造物を構成していた。しかし、例えば、ROM2のメモリアレイ21に相当する記憶媒体をCD−ROMで構成し、ROM2のコントローラ20をホストコンピュータ10に設けたCD−ROMドライブ装置とCPU11とで構成し、着脱可能な記憶媒体にはメモリシステム3に相当する構成のみを搭載して構成することも可能である。
For example, in the above embodiment, in the
また、上記実施の形態に示した各工程は、あくまでも例示であって、同様の効果が得られるならば、各工程における処理内容や、各工程の実行順は、適宜、変更されてもよい。 Moreover, each process shown to the said embodiment is an illustration to the last, and if the same effect is acquired, the processing content in each process and the execution order of each process may be changed suitably.
1 メモリシステム
10 ホストコンピュータ
2 ROM
20,30 コントローラ
21,31 メモリアレイ
22 固有キー格納領域
23 プログラム格納領域
24 コンテンツ格納領域
25 キー情報
26 プログラム
3 メモリシステム
32 データセーブ領域
320 セーブデータ
33 演算方法格納領域
330 演算方法情報
34 必要不可欠情報格納領域
340 必要不可欠情報
35 第1テーブル格納領域
350,351 第1テーブル
36 第2テーブル格納領域
360,361 第2テーブル
37 進行履歴格納領域
370 進行履歴情報
38 出力履歴格納領域
380 出力履歴情報
1
20, 30
Claims (15)
保護対象の情報を格納する第1不揮発性メモリと、
前記第1不揮発性メモリに対するアクセスを制御する第1コントローラと、
前記ホストコンピュータが前記保護対象の情報を使用するときに必要となる複数の必要不可欠情報と複数の演算結果とを一対一で関連づけて格納する書き換え可能な第2不揮発性メモリと、
前記第2不揮発性メモリに対するアクセスを制御する第2コントローラと、
を備え、
前記メモリシステムは、複数の演算方法を定義する演算方法情報を格納しており、前記複数の演算方法から1の演算方法を選択して被選択演算方法として前記ホストコンピュータに出力し、
前記第2コントローラは、前記ホストコンピュータの状態を反映した出力条件に応じて、前記第2不揮発性メモリに格納されている複数の必要不可欠情報から1の必要不可欠情報を選択して被選択必要不可欠情報として前記ホストコンピュータに出力し、
前記出力条件は、被演算情報を前記被選択演算方法により演算して得られる演算結果に基づく条件を含むメモリシステム。 A memory system connected to a host computer,
A first nonvolatile memory for storing information to be protected;
A first controller for controlling access to the first nonvolatile memory;
A second rewritable nonvolatile memory for storing in association with one-to-one more essential information and a plurality of operation result and the necessary when the host computer uses the information in the protected,
A second controller for controlling access to the second nonvolatile memory;
With
The memory system stores calculation method information defining a plurality of calculation methods, selects one calculation method from the plurality of calculation methods, and outputs the selected calculation method to the host computer as a selected calculation method.
The second controller selects one indispensable information from a plurality of indispensable information stored in the second non-volatile memory according to an output condition reflecting the state of the host computer, and is selected and indispensable. Output to the host computer as information ,
The output condition includes a condition based on a calculation result obtained by calculating calculation target information by the selected calculation method .
前記被演算情報は、前記ホストコンピュータの状態を反映する情報であるメモリシステム。 The memory system of claim 1,
The memory information is information that reflects the state of the host computer .
前記保護対象の情報には、前記ホストコンピュータによって実行されるときの当該保護対象の情報の進行状況が複数のステージとして定義されており、
前記ホストコンピュータの状態は、前記複数のステージのうちのいずれか一つのステージを前記ホストコンピュータが実行しているときの前記ホストコンピュータの状態を含むメモリシステム。 The memory system according to claim 1 or 2,
In the protection target information, the progress of the protection target information when executed by the host computer is defined as a plurality of stages,
The state of the host computer includes a state of the host computer when the host computer is executing any one of the plurality of stages .
前記メモリシステムは、前記ホストコンピュータからの要求があったときの前記ホストコンピュータの状態に応じて前記複数の演算方法から1の演算方法を被選択演算方法として選択するメモリシステム。 The memory system according to any one of claims 1 to 3 ,
The memory system selects one calculation method as the selected calculation method from the plurality of calculation methods according to the state of the host computer when a request is made from the host computer .
前記被選択演算方法は、前記保護対象の情報の前記ホストコンピュータにおける進行状況に応じて選択されるメモリシステム。 A memory system according to any one of claims 1 to 4 ,
The selected computation method is a memory system that is selected according to the progress status of the information to be protected in the host computer .
前記第2コントローラは、前記保護対象の情報の前記ホストコンピュータにおける進行状況が通知されたときに、通知された進行状況を進行履歴情報として前記第2不揮発性メモリに格納するとともに、前記進行履歴情報に応じて前記被選択演算方法を選択するメモリシステム。 6. The memory system according to claim 5 , wherein
When the progress status of the information to be protected in the host computer is notified, the second controller stores the notified progress status as progress history information in the second nonvolatile memory, and the progress history information A memory system for selecting the selected calculation method according to the method .
前記出力条件は、前記第2コントローラが前記複数の必要不可欠情報を出力する際の出力順序を含むメモリシステム。 The memory system according to any one of claims 1 to 6 ,
The output condition is a memory system including an output order when the second controller outputs the plurality of essential information.
前記出力順序が前記保護対象の情報の前記ホストコンピュータにおける進行順序に従うメモリシステム。 The memory system of claim 7 ,
A memory system in which the output order follows the order of progress of the information to be protected in the host computer .
前記第2コントローラは、前記ホストコンピュータに必要不可欠情報を出力したときの出力履歴情報に応じて前記出力順序となるように次回に出力する必要不可欠情報を選択するメモリシステム。 The memory system according to claim 7 or 8 ,
The memory system , wherein the second controller selects essential information to be output next time so as to be in the output order according to output history information when the essential information is output to the host computer .
前記被選択演算方法は、前記演算方法情報から複数回に分けて読み出されるメモリシステム。 A memory system according to any one of claims 1 to 9 ,
The selected calculation method is a memory system that is read out in a plurality of times from the calculation method information .
前記演算方法情報は、前記第2不揮発性メモリに格納されるメモリシステム。 A memory system according to any one of claims 1 to 10 ,
The memory system in which the calculation method information is stored in the second nonvolatile memory.
前記ホストコンピュータが保護対象の情報を使用するときに必要となる複数の必要不可欠情報と複数の演算結果とを一対一で関連づけて格納するとともに、複数の演算方法を定義する演算方法情報を格納する書き換え可能な不揮発性メモリと、
前記不揮発性メモリに対するアクセスを制御しつつ、前記複数の演算方法から1の演算方法を選択して被選択演算方法として前記ホストコンピュータに出力し、前記ホストコンピュータの状態を反映した出力条件に応じて、前記不揮発性メモリに格納されている複数の必要不可欠情報から1の必要不可欠情報を選択して被選択必要不可欠情報として前記ホストコンピュータに出力するコントローラと、
を備え、
前記出力条件は、被演算情報を前記被選択演算方法により演算して得られる演算結果に基づく条件を含むメモリシステム。 A memory system connected to a host computer ,
A plurality of indispensable information required when the host computer uses information to be protected and a plurality of calculation results are stored in a one-to-one relationship, and calculation method information defining a plurality of calculation methods is stored. Rewritable nonvolatile memory,
While controlling access to the non-volatile memory, one calculation method is selected from the plurality of calculation methods and output to the host computer as a selected calculation method, according to an output condition reflecting the state of the host computer A controller that selects one essential information from a plurality of essential information stored in the nonvolatile memory and outputs the selected essential information to the host computer as selected essential information;
With
The output condition includes a condition based on a calculation result obtained by calculating calculation target information by the selected calculation method .
前記保護対象の情報には、前記ホストコンピュータによって実行されるときの当該保護対象の情報の進行状況が複数のステージとして定義されており、
前記ホストコンピュータの状態は、前記複数のステージのうちのいずれか一つのステージを前記ホストコンピュータが実行しているときの前記ホストコンピュータの状態を含むメモリシステム。 The memory system according to claim 12 , wherein
In the protection target information, the progress of the protection target information when executed by the host computer is defined as a plurality of stages,
The state of the host computer includes a state of the host computer when the host computer is executing any one of the plurality of stages .
書き換え可能な第2不揮発性メモリに、前記ホストコンピュータが前記保護対象の情報を使用するときに必要となる複数の必要不可欠情報と複数の演算結果とを一対一で関連づけて格納する工程と、
複数の演算方法を定義する演算方法情報を格納する工程と、
前記複数の演算方法から1の演算方法を選択して被選択演算方法として前記ホストコンピュータに出力する工程と、
被演算情報を前記被選択演算方法により演算して得られる演算結果を含む前記ホストコンピュータの状態を反映した出力条件に応じて、前記第2不揮発性メモリに格納されている複数の必要不可欠情報から1の必要不可欠情報を選択して被選択必要不可欠情報として前記ホストコンピュータに出力する工程と、
を有する情報保護方法。 An information protection method for protecting protection target information stored in a first nonvolatile memory of a memory system connected to a host computer,
A rewritable second nonvolatile memory, and storing in association with the plurality of operation results and a plurality of essential information required when the host computer uses the information in the protected one to one,
Storing calculation method information defining a plurality of calculation methods;
Selecting one calculation method from the plurality of calculation methods and outputting it to the host computer as a selected calculation method;
In accordance with the output condition which reflects the state of the host computer including a computation result obtained by calculating the operand information by the object selection operation method, a plurality of essential information stored in the second nonvolatile memory Selecting one essential information and outputting it to the host computer as selected essential information;
An information protection method comprising:
前記保護対象の情報には、前記ホストコンピュータによって実行されるときの当該保護対象の情報の進行状況が複数のステージとして定義されており、In the protection target information, the progress of the protection target information when executed by the host computer is defined as a plurality of stages,
前記ホストコンピュータの状態は、前記複数のステージのうちのいずれか一つのステージを前記ホストコンピュータが実行しているときの前記ホストコンピュータの状態を含む情報保護方法。The state of the host computer includes the state of the host computer when the host computer is executing any one of the plurality of stages.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011141287A JP5792526B2 (en) | 2011-06-27 | 2011-06-27 | Memory system and information protection method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011141287A JP5792526B2 (en) | 2011-06-27 | 2011-06-27 | Memory system and information protection method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013008254A JP2013008254A (en) | 2013-01-10 |
JP5792526B2 true JP5792526B2 (en) | 2015-10-14 |
Family
ID=47675539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011141287A Expired - Fee Related JP5792526B2 (en) | 2011-06-27 | 2011-06-27 | Memory system and information protection method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5792526B2 (en) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07225550A (en) * | 1994-02-10 | 1995-08-22 | Hitachi Software Eng Co Ltd | Method and system of multistage referring data |
JPH103256A (en) * | 1995-10-16 | 1998-01-06 | Sony Corp | Ciphering method and device therefor, recording method, decoding method and device therefor and recording medium |
JP2005011151A (en) * | 2003-06-20 | 2005-01-13 | Renesas Technology Corp | Memory card |
KR100505697B1 (en) * | 2003-07-23 | 2005-08-02 | 삼성전자주식회사 | Memory card, connector for Universal Serial Bus and Universal Serial Bus connection system |
JP4717398B2 (en) * | 2004-09-10 | 2011-07-06 | キヤノン株式会社 | Method for controlling data processing apparatus |
JP5055490B2 (en) * | 2008-04-14 | 2012-10-24 | 株式会社メガチップス | Semiconductor memory device |
-
2011
- 2011-06-27 JP JP2011141287A patent/JP5792526B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013008254A (en) | 2013-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7366887B2 (en) | System and method for loading programs from HDD independent of operating system | |
US9092598B2 (en) | Version-based software product activation | |
KR101533901B1 (en) | Networked recovery system | |
KR100987628B1 (en) | Method for updating firmware in embedded controller and medium recorded update firmware | |
JP4824657B2 (en) | Apparatus and method for managing security data | |
JP2006236193A (en) | Starting program execution method, device, storage medium and program | |
JP2009037467A (en) | Start control method and start control program, and image forming apparatus | |
JP5194053B2 (en) | Authentication program, program set, authentication method, authentication device, and software expiration date changing device | |
JP5026908B2 (en) | Stick server | |
JP5792526B2 (en) | Memory system and information protection method | |
US9542207B2 (en) | Plurality of interface files usable for access to BIOS | |
US8028142B2 (en) | Controller of storage device, storage device, and control method of storage device | |
JP5718746B2 (en) | Memory system, security memory, and information protection method | |
JP5969845B2 (en) | Information processing apparatus and control method thereof | |
JPH1011282A (en) | Installing system and executing system for software | |
JP2002041292A (en) | Computer recovery device | |
JP2007164392A (en) | Computer | |
JP7341376B2 (en) | Information processing device, information processing method, and information processing program | |
JP2007122089A (en) | Computer system, method for starting basic program and loader program | |
JP5753457B2 (en) | Memory system, security memory, and information protection method | |
JP4471274B2 (en) | How to boot OS from hard disk image file | |
JP5808651B2 (en) | Memory system, security memory, and information protection method | |
JP6099365B2 (en) | Information processing system, information processing apparatus, information processing program, application execution method, and storage medium | |
JP6617551B2 (en) | SETTING VALUE MANAGEMENT DEVICE, COMPUTER DEVICE, METHOD, AND PROGRAM | |
JP2010033677A (en) | Recording medium, data recording method, content reproducing method, and electronic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140519 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141225 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150205 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150721 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150806 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5792526 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |