JP5792526B2 - Memory system and information protection method - Google Patents

Memory system and information protection method Download PDF

Info

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
Application number
JP2011141287A
Other languages
Japanese (ja)
Other versions
JP2013008254A (en
Inventor
雅史 倉本
雅史 倉本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MegaChips Corp
Original Assignee
MegaChips Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by MegaChips Corp filed Critical MegaChips Corp
Priority to JP2011141287A priority Critical patent/JP5792526B2/en
Publication of JP2013008254A publication Critical patent/JP2013008254A/en
Application granted granted Critical
Publication of JP5792526B2 publication Critical patent/JP5792526B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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 Patent Document 1.

特許文献1には、ホストコンピュータと接続されるメモリシステムに、セキュリティ機能を備えたコントローラと不揮発性メモリとを設けている。そして、ホストコンピュータからのアクセスに対しては、当該コントローラがセキュリティ機能を発揮することにより、不揮発性メモリ上に格納された情報を保護する技術が記載されている。   In Patent Document 1, a controller having a security function and a nonvolatile memory are provided in a memory system connected to a host computer. For access from a host computer, a technique for protecting information stored in a nonvolatile memory by the controller performing a security function is described.

しかし、特許文献1に記載されている技術をもってしても、不正な複製を完全に防止することはできない。そして、メモリシステムのコントローラにおけるセキュリティ機能が破られ、不揮発性メモリに格納された情報(保護対象の情報)を違法に複製され、配布される事態が現実に生じている。特許文献1に記載されている技術では、不揮発性メモリに格納されているプログラムにかかわらず、ホストコンピュータとメモリシステムとが協働してセキュリティ機能を提供しているため、一度、このセキュリティが破られれば、すべてのプログラムが不正に複製されることを許す事態にもなりかねない。   However, even with the technique described in Patent Document 1, unauthorized duplication cannot be completely prevented. Then, the security function in the controller of the memory system is broken, and there actually occurs a situation where information stored in the nonvolatile memory (information to be protected) is illegally copied and distributed. In the technique described in Patent Document 1, since the host computer and the memory system cooperate to provide a security function regardless of the program stored in the nonvolatile memory, this security is once broken. If done, it could also allow all programs to be copied illegally.

このような事態を安易に解決する手法として、コントローラが提供するセキュリティ機能を変更することが考えられる。   As a method for easily solving such a situation, it is conceivable to change the security function provided by the controller.

特開2008−040941号公報JP 2008-040941 A

ところが、特許文献1に記載された技術において、メモリシステムのコントローラにおけるセキュリティ機能を変更すると、ホストコンピュータ側にも変更が必要になるという問題があった。すなわち、ホストコンピュータがすでに多数市場に流通している現状では、メモリシステムのセキュリティ機能が破られるたびに、ホストコンピュータ側の設計変更まで行うことは、互換性の維持やコストの面で現実的ではないという問題があった。   However, in the technique described in Patent Document 1, when the security function in the controller of the memory system is changed, there is a problem that the host computer side also needs to be changed. In other words, in the current situation where many host computers are already distributed in the market, it is not practical in terms of maintaining compatibility and cost to perform design changes on the host computer side whenever the security function of the memory system is broken. There was no problem.

本発明は、上記課題に鑑みてなされたものであり、ホストコンピュータに接続されるメモリシステムに関して、すでに流通しているホストコンピュータとの互換性を維持しつつ、安価に、当該メモリシステムに格納された情報の不正な複製を抑制する技術を提供することを目的とする。   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 claim 1 is a memory system connected to a host computer, wherein a first nonvolatile memory storing information to be protected and an access to the first nonvolatile memory are provided. a first controller for controlling a plurality of essential information and a plurality of operation result and the second non-volatile rewritable storing in association with one-to-one needed when the host computer uses the information in the protected A memory and a second controller that controls access to the second non-volatile memory, wherein the memory system stores calculation method information defining a plurality of calculation methods; select operation method and outputs it to the host computer as a selected calculation method, the second controller, the host competent In accordance with the output condition which reflects the state of the over data, output to the host computer as the second plurality of essential information stored in the nonvolatile memory by selecting one of the essential information the selected essential information The output condition includes a condition based on a calculation result obtained by calculating calculation target information by the selected calculation method .

また、請求項2の発明は、請求項1の発明に係るメモリシステムであって、前記被演算情報は、前記ホストコンピュータの状態を反映する情報である。 The invention of claim 2 is the memory system according to the invention of claim 1, wherein the operation information is information reflecting a state of the host computer.

また、請求項3の発明は、請求項1または2の発明に係るメモリシステムであって、前記保護対象の情報には、前記ホストコンピュータによって実行されるときの当該保護対象の情報の進行状況が複数のステージとして定義されており、前記ホストコンピュータの状態は、前記複数のステージのうちのいずれか一つのステージを前記ホストコンピュータが実行しているときの前記ホストコンピュータの状態を含むThe invention of claim 3 is the memory system according to claim 1 or 2, wherein the protection target information includes a progress status of the protection target information when executed by the host computer. It is defined as a plurality of stages, and 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 .

また、請求項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の発明は、請求項の発明に係るメモリシステムであって、前記第2コントローラは、前記保護対象の情報の前記ホストコンピュータにおける進行状況が通知されたときに、通知された進行状況を進行履歴情報として前記第2不揮発性メモリに格納するとともに、前記進行履歴情報に応じて前記被選択演算方法を選択する。 The invention according to claim 6 is the memory system according to claim 5 , wherein the second controller is notified when the progress status of the information to be protected in the host computer is notified. The progress status is stored in the second nonvolatile memory as progress history information, and the selected calculation method is selected according to the progress history information.

また、請求項7の発明は、請求項1ないし6のいずれかの発明に係るメモリシステムであって、前記出力条件は、前記第2コントローラが前記複数の必要不可欠情報を出力する際の出力順序を含む。 The invention of claim 7 is the memory system according to any one of claims 1 to 6 , wherein the output condition is an output order when the second controller outputs the plurality of indispensable information. including.

また、請求項8の発明は、請求項の発明に係るメモリシステムであって、前記出力順序が前記保護対象の情報の前記ホストコンピュータにおける進行順序に従う。 The invention according to claim 8 is the memory system according to claim 7 , wherein the output order follows the order of progress of the information to be protected in the host computer.

また、請求項9の発明は、請求項7または8の発明に係るメモリシステムであって、前記第2コントローラは、前記ホストコンピュータに必要不可欠情報を出力したときの出力履歴情報に応じて前記出力順序となるように次回に出力する必要不可欠情報を選択するThe invention according to claim 9 is the memory system according to claim 7 or 8 , wherein the second controller outputs the output in accordance with output history information when the indispensable information is output to the host computer. Select indispensable information to be output next time in order .

また、請求項10の発明は、請求項1ないし9のいずれかの発明に係るメモリシステムであって、前記被選択演算方法は、前記演算方法情報から複数回に分けて読み出される。 The invention according to claim 10 is the memory system according to any one of claims 1 to 9 , wherein the selected calculation method is read from the calculation method information in a plurality of times.

また、請求項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 claim 12, 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 is defined as a stage, and includes the state of the host computer when the host computer is executing any one of the plurality of stages .

また、請求項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 claims 12 and 13 store a plurality of indispensable information necessary for the host computer to use the information to be protected and a plurality of calculation results in a one-to-one association with each other. A rewritable non-volatile memory for storing calculation method information for defining the calculation method, and a host computer as a selected calculation method by selecting one calculation method from a plurality of calculation methods while controlling access to the nonvolatile memory In response to output conditions reflecting the status of the host computer, one essential information is selected from a plurality of essential information stored in the non-volatile memory and output to the host computer as selected essential information The output condition is a calculation result obtained by calculating the calculation target information by the selected calculation method. Includes a condition-based. 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 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.

本発明に係るメモリシステムを備えるコンピュータシステムを示す図である。It is a figure which shows a computer system provided with the memory system which concerns on this invention. ROMのメモリアレイの記憶領域を例示する図である。It is a figure which illustrates the storage area of the memory array of ROM. 第1の実施の形態におけるメモリアレイの記憶領域と各記憶領域に格納される情報とを例示する図である。It is a figure which illustrates the storage area of the memory array in a 1st embodiment, and the information stored in each storage area. 第1の実施の形態におけるメモリシステムの動作を示す流れ図である。3 is a flowchart showing the operation of the memory system in the first embodiment. 第1の実施の形態におけるホストコンピュータの動作を示す流れ図である。3 is a flowchart showing the operation of the host computer in the first embodiment. 第1の実施の形態におけるホストコンピュータの動作を示す流れ図である。3 is a flowchart showing the operation of the host computer in the first embodiment. 第2の実施の形態におけるメモリアレイの記憶領域と各記憶領域に格納される情報とを例示する図である。It is a figure which illustrates the storage area of the memory array in a 2nd embodiment, and the information stored in each storage area. 第2の実施の形態におけるメモリシステムの動作を示す流れ図である。6 is a flowchart showing the operation of the memory system in the second embodiment. 第2の実施の形態におけるホストコンピュータの動作を示す流れ図である。It is a flowchart which shows operation | movement of the host computer in 2nd Embodiment. 第3の実施の形態におけるホストコンピュータの動作を示す流れ図である。It is a flowchart which shows operation | movement of the host computer in 3rd Embodiment.

以下、本発明の好適な実施の形態について、添付の図面を参照しつつ、詳細に説明する。   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 memory system 1 according to the present invention. The computer system includes a memory system 1 according to the present invention and a host computer 10 having a function as a general computer.

メモリシステム1は、読み取り専用の記憶装置であるROM2と、例えばユーザデータ等を必要に応じてセーブすることができるように読み書き可能な記憶装置として構成されるメモリシステム3とを備えている。詳細は図示しないが、本実施の形態におけるメモリシステム1は、ホストコンピュータ10に対して着脱自在に構成されている。このようなメモリシステム1としては、例えば、メモリカードやゲームカセットが該当するがこれに限定されるものではない。   The memory system 1 includes a ROM 2 which is a read-only storage device, and a memory system 3 configured as a readable / writable storage device so that, for example, user data can be saved as necessary. Although details are not shown, the memory system 1 in the present embodiment is configured to be detachable from the host computer 10. Examples of such a memory system 1 include a memory card and a game cassette, but are not limited thereto.

ROM2は、コントローラ20と、メモリアレイ21とを備えている。コントローラ20は、ホストコンピュータ10からの要求に応じて、メモリアレイ21に格納されている各種データを読み出してホストコンピュータ10に出力する機能を有している。また、コントローラ20は、ホストコンピュータ10との間で、メモリアレイ21に格納されたデータに対するセキュリティ機能を提供する。コントローラ20が提供するセキュリティ機能としては従来より提案されている様々な手法を適宜採用できるため、以下では詳細な説明は省略する。   The ROM 2 includes a controller 20 and a memory array 21. The controller 20 has a function of reading various data stored in the memory array 21 and outputting it to the host computer 10 in response to a request from the host computer 10. Further, the controller 20 provides a security function for data stored in the memory array 21 with the host computer 10. Since various methods conventionally proposed as the security function provided by the controller 20 can be adopted as appropriate, detailed description will be omitted below.

図2は、ROM2のメモリアレイ21の記憶領域を例示する図である。メモリアレイ21は、複数の不揮発性の記憶素子が規則的に配列した構造を有しており、図2に示すように、複数の記憶領域に分割されている。   FIG. 2 is a diagram illustrating a storage area of the memory array 21 of the ROM 2. The memory array 21 has a structure in which a plurality of nonvolatile storage elements are regularly arranged, and is divided into a plurality of storage areas as shown in FIG.

本実施の形態におけるメモリアレイ21を構成する記憶素子は、ホストコンピュータ10によるデータの書き込みが不能な素子が採用されている。したがって、ROM2は、メモリシステム1において、先述のように読み取り専用の記憶装置として構成されている。ただし、プログラム26等を格納する記憶装置は必ずしも読み取り専用でなくてもよい。   As the memory elements constituting the memory array 21 in the present embodiment, elements in which data cannot be written by the host computer 10 are employed. Accordingly, the ROM 2 is configured as a read-only storage device in the memory system 1 as described above. However, the storage device that stores the program 26 and the like is not necessarily read-only.

図2に示すように、メモリアレイ21の記憶領域としては、キー情報25を格納する固有キー格納領域22、プログラム26を格納するプログラム格納領域23、プログラム26が使用するコンテンツ(画像、音声、テキスト等)を格納するコンテンツ格納領域24が定義されている。ただし、定義される記憶領域はこれに限定されるものではなく、その他の記憶領域(例えば、上記セキュリティ機能を提供するためのデータが格納される領域等)が定義されてもよい。   As shown in FIG. 2, the storage area of the memory array 21 includes a unique key storage area 22 for storing key information 25, a program storage area 23 for storing a program 26, and contents (images, sounds, texts) used by the program 26. Etc.) is defined. However, the storage area to be defined is not limited to this, and other storage areas (for example, an area in which data for providing the security function is stored) may be defined.

被演算情報であるキー情報25は、プログラム26を識別する固有の値であり、例えば、コントローラ20が提供するセキュリティ機能に利用される値などが想定される。   The key information 25 that is the operation information is a unique value for identifying the program 26, and for example, a value used for a security function provided by the controller 20 is assumed.

本実施の形態では、キー情報25は、例えば商品コードのように、プログラム26のタイトルごとに異なる値を用いる。すなわち、プログラム26がゲームプログラムであれば、キー情報25はゲームのタイトルに固有であり、同じタイトルのゲームプログラムでは同じ値となる。ただし、例えば、製造番号のように、同じタイトルのプログラム26であっても、個々に異なる値をキー情報25として採用してもよい。   In the present embodiment, the key information 25 uses a different value for each title of the program 26, such as a product code. That is, if the program 26 is a game program, the key information 25 is specific to the game title, and the same value is used for game programs with the same title. However, for example, different values may be adopted as the key information 25 even if the programs 26 have the same title, such as a serial number.

なお、詳細は後述するが、本実施の形態におけるキー情報25はホストコンピュータ10により読み出され、ホストコンピュータ10の記憶装置12の特定のアドレス(以下、「キーアドレス」と称する。)に格納される。すなわち、メモリシステム1が正規のホストコンピュータ10に装着されているならば、キーアドレスは常に一定である。   Although details will be described later, the key information 25 in the present embodiment is read by the host computer 10 and stored in a specific address (hereinafter referred to as “key address”) of the storage device 12 of the host computer 10. The That is, if the memory system 1 is attached to a regular host computer 10, the key address is always constant.

プログラム26は、保護対象の情報であり、ホストコンピュータ10によって実行される。そして、プログラム26には、ホストコンピュータ10によって実行されるときの当該プログラム26の進行状況がマーカーコード等により定義されている。以下の説明では、プログラム26の進行状況として、当該プログラム26には、順次に、N個のステージ(ステージ1,・・・,N)が定義されているものとする(Nは2以上の自然数)。すなわち、ホストコンピュータ10は、プログラム26を実行中において、実行中のプログラム26の進行状況をステージn(nは1からNまでの自然数)として取得することができる。   The program 26 is information to be protected and is executed by the host computer 10. In the program 26, the progress of the program 26 when executed by the host computer 10 is defined by a marker code or the like. In the following description, it is assumed that N stages (stage 1,..., N) are sequentially defined in the program 26 as the progress status of the program 26 (N is a natural number of 2 or more). ). That is, the host computer 10 can acquire the progress status of the program 26 being executed as the stage n (n is a natural number from 1 to N) while the program 26 is being executed.

なお、詳細は後述するが、本実施の形態におけるプログラム26は、ホストコンピュータ10が被演算情報としてキー情報25を用いるときには、直接キーアドレス(固定のアドレス)を指定して記憶装置12から読み出すように記述されている。したがって、キーアドレスによってキー情報25として読み出された値が、真にキー情報25の値であれば、ホストコンピュータ10において、キーアドレスに格納されている情報が書き換えられたりしていない状態であることを示している。すなわち、本実施の形態におけるキー情報25は、ホストコンピュータ10の状態を反映した情報である。また、本実施の形態における保護対象の情報は、プログラム26のみではなく、メモリアレイ21内に格納されているすべての情報である。   Although details will be described later, when the host computer 10 uses the key information 25 as the operation information, the program 26 according to the present embodiment directly reads a key address (fixed address) from the storage device 12. It is described in. Therefore, if the value read as the key information 25 by the key address is truly the value of the key information 25, the information stored in the key address is not rewritten in the host computer 10. It is shown that. That is, the key information 25 in the present embodiment is information reflecting the state of the host computer 10. Further, the information to be protected in the present embodiment is not only the program 26 but also all information stored in the memory array 21.

メモリシステム3は、コントローラ30と、メモリアレイ31とを備えている。コントローラ30は、ホストコンピュータ10からの要求に応じて、メモリアレイ31に格納されている各種データを読み出してホストコンピュータ10に出力する機能と、メモリアレイ31に各種データを格納する機能とを有している。本実施の形態におけるコントローラ30の機能および動作については、後述する。   The memory system 3 includes a controller 30 and a memory array 31. The controller 30 has a function of reading various data stored in the memory array 31 and outputting the data to the host computer 10 in response to a request from the host computer 10, and a function of storing various data in the memory array 31. ing. The function and operation of the controller 30 in the present embodiment will be described later.

図3は、第1の実施の形態におけるメモリアレイ31の記憶領域と各記憶領域に格納される情報とを例示する図である。メモリアレイ31は、複数の不揮発性の記憶素子から構成されており、図3に示すように複数の記憶領域に分割されている。   FIG. 3 is a diagram illustrating a storage area of the memory array 31 and information stored in each storage area in the first embodiment. The memory array 31 is composed of a plurality of nonvolatile storage elements and is divided into a plurality of storage areas as shown in FIG.

本実施の形態におけるメモリアレイ31の記憶領域としては、データセーブ領域32、演算方法格納領域33、必要不可欠情報格納領域34、第1テーブル格納領域35および第2テーブル格納領域36が定義されている。ただし、定義される記憶領域はこれに限定されるものではなく、必要に応じて、その他の記憶領域が定義されてもよい。   As a storage area of the memory array 31 in the present embodiment, a data save area 32, a calculation method storage area 33, an indispensable information storage area 34, a first table storage area 35, and a second table storage area 36 are defined. . However, the storage area to be defined is not limited to this, and other storage areas may be defined as necessary.

メモリアレイ31を構成する記憶素子は、データの読み出しのみではなく、書き込みも可能な素子が採用される。したがって、メモリシステム3は、メモリシステム1において、先述のように読み書き可能な記憶装置として構成されている。   As the memory elements constituting the memory array 31, elements that can be written as well as data are employed. Therefore, the memory system 3 is configured as a readable / writable storage device in the memory system 1 as described above.

データセーブ領域32は、セーブデータ320を格納する記憶領域であって、ホストコンピュータ10(ユーザ)によって自由にアクセスすることができる領域である。なお、ここにいう、「自由にアクセスすることができる」とは、本発明に係るセキュリティ機能によらずにアクセスすることができるという意味である。   The data save area 32 is a storage area for storing the save data 320 and can be freely accessed by the host computer 10 (user). Here, “can be freely accessed” means that access can be made regardless of the security function according to the present invention.

また、セーブデータ320は、主には、ユーザによって作成される情報であり、プログラム26を途中から再開させるための情報(ゲームを途中で中断したときの情報等)や、ユーザが取得したコンテンツ情報(画像、音声、文章等)等である。ただし、セーブデータ320は、ユーザからの指示によらずに、例えば、ホストコンピュータ10が自動的に作成する情報であってもよい。   The save data 320 is mainly information created by the user, information for resuming the program 26 from the middle (information when the game is interrupted halfway), and content information acquired by the user. (Image, sound, text, etc.). However, the save data 320 may be information automatically created by the host computer 10, for example, without depending on an instruction from the user.

演算方法格納領域33は、演算方法情報330を格納する領域である。演算方法情報330には、ステージn(先述のようにプログラム26の進行状況を示す。)ごとに設定された複数の演算方法を定義する情報が含まれている。以下の説明では、ステージnに対応する演算方法を「演算方法fn(x)」と称する。演算方法fn(x)としては、例えば、「x」のチェックサムの値やハッシュ値を演算するものが考えられるが、もちろんこれらに限定されるものではない。 The calculation method storage area 33 is an area for storing calculation method information 330. The calculation method information 330 includes information defining a plurality of calculation methods set for each stage n (showing the progress of the program 26 as described above). In the following description, the calculation method corresponding to stage n is referred to as “calculation method f n (x)”. As the calculation method f n (x), for example, a checksum value or hash value of “x” can be calculated. However, the calculation method is not limited to these.

ここで、「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 key information 25 if normal) is used. Therefore, in the present embodiment, the information to be calculated differs for each program 26, but is fixed regardless of the progress of the program 26 (the host computer 10 in this embodiment rewrites the value stored in the key address). Not because.)

なお、被演算情報は、キー情報25に限定されるものではなく、例えば、ホストコンピュータ10の記憶装置12またはROM2のメモリアレイ21内の特定のアドレスに格納されている他の値や演算方法を構成する情報の値などが採用されてもよいし、プログラム26の進行中において固定の値でなくてもよい。ただし、被演算情報は、少なくとも正常な処理が行われている限りにおいてプログラム26による予測が可能な値であって、好ましくはホストコンピュータ10の状態を反映した情報である。さらには、被演算情報はプログラム26が改ざん、あるいは、違法に複製された場合には状態が変化する情報とすることが好ましい。   The information to be calculated is not limited to the key information 25. For example, other values and calculation methods stored in a specific address in the storage device 12 of the host computer 10 or the memory array 21 of the ROM 2 can be used. The value of information to be configured may be employed, or may not be a fixed value while the program 26 is in progress. However, the operation information is a value that can be predicted by the program 26 as long as normal processing is performed, and is preferably information that reflects the state of the host computer 10. Furthermore, it is preferable that the operation information is information whose state changes when the program 26 is falsified or illegally copied.

必要不可欠情報格納領域34は、必要不可欠情報340を格納しておく記憶領域である。メモリシステム1では、ホストコンピュータ10が当該プログラム26を進行させる上で必要不可欠な情報がステージnごとに定義されており、これらが必要不可欠情報340として必要不可欠情報格納領域34に格納されている。以下の説明では、ステージnに対応する必要不可欠な情報を「En」と称する。すなわち、必要不可欠情報340には、ステージ1,・・・,Nに対応して、複数の必要不可欠な情報E1,・・・,ENが含まれている。 The indispensable information storage area 34 is a storage area in which the indispensable information 340 is stored. In the memory system 1, information indispensable for the host computer 10 to advance the program 26 is defined for each stage n, and these are stored as indispensable information 340 in the indispensable information storage area 34. In the following description, indispensable information corresponding to stage n is referred to as “E n ”. That is, the indispensable information 340 includes a plurality of indispensable information E 1 ,..., E N corresponding to the stages 1,.

必要不可欠な情報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 program 26, information concerning decryption key information stored encrypted is assumed in the ROM2 The Further, only a part of the calculation method f n (x) may be stored in the calculation method information 330 so that the calculation method f n (x) is expressed together with the information E (n−1). . Alternatively, a command (described later) for reading the calculation method f n (x) from the memory system 3 at the stage n may be used as indispensable information E (n−1) corresponding to the stage (n−1).

以下では、必要不可欠な情報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 program 26 will be described as the information necessary only for the progress of the stage n. That is, in the present embodiment, in a case of advancing the stage n, the host computer 10, while it is necessary to obtain the essential information E n from the memory system 1, Stage 1 immediately before, ..., The indispensable information E 1 ,..., E (n−1) acquired in (n−1) need not be stored in the storage device 12 or the like.

また、以下では、必要不可欠情報340は、メモリシステム1の出荷時には、すでにメモリアレイ31の必要不可欠情報格納領域34に格納されているものとして説明する。   In the following description, it is assumed that the indispensable information 340 is already stored in the indispensable information storage area 34 of the memory array 31 when the memory system 1 is shipped.

第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 table storage area 35 is a storage area for storing the first table 350. The first table 350 is information that associates a command to read calculation method f n (x), and an operation method f n (x). In the following description, a command for reading the calculation method f n (x) is referred to as “command R n ”. Although details will be described later, when the controller 30 receives the command R n from the host computer 10, the controller 30 refers to the first table 350 and selects the calculation method f n (x) corresponding to the received command R n as the selected calculation method. The selected calculation method is read from the calculation method information 330 and output to the host computer 10.

なお、本実施の形態では、コマンド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 program 26, and the host computer 10 sends the command R 1 ,... Corresponding to the progress status (stage 1,..., N) of the program 26. .., it is described as acquiring a R N. That is, since the command R n is selected according to the progress of the program 26 in the host computer 10, the selected command R n reflects the state of the host computer 10. However, the command R n is not limited to that provided in such a form. For example, as previously described, the command R 2, · · ·, R N is essential information E 1, · · ·, may be included in the essential information 340 as E (N-1).

第2テーブル格納領域36は、第2テーブル360を格納する記憶領域である。第2テーブル360とは、キー情報25(被演算情報)を演算方法fn(x)によって演算することにより求められる演算結果(図3において図示せず)と、必要不可欠情報340に含まれる必要不可欠な情報Enとを関連づける情報である。なお、以下では、ステージnにおいてコマンドRnにより正常に読み出された演算方法fn(x)を用いて、被演算情報(正常であればキー情報25)を演算した正常な演算結果を「演算結果An」と称する。一方、ステージnにおいて演算により求められ、未だ、正常であるか否かの判定を受けていない演算結果を「演算結果QAn」と称する。 The second table storage area 36 is a storage area for storing the second table 360. The second table 360 is a calculation result (not shown in FIG. 3) obtained by calculating the key information 25 (information to be calculated) by the calculation method f n (x) and the necessary information 340. is information that associates the essential information E n. In the following, by using the calculation method f n (x) that has been successfully read by the command R n at stage n, the normal operation results of calculation to be operational information (if normal key information 25) " This is referred to as “calculation result An ”. On the other hand, a calculation result obtained by calculation at stage n and not yet judged whether it is normal or not is referred to as “calculation result QA n ”.

詳細は後述するが、コントローラ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 controller 30, the host computer 10, when there is a request for access to essential information 340 (when receiving a command to read the essential information E n), the operation result is input together with the request QA The second table 360 is referred to using n . When the operation result A n matching the result of the calculation QA n is present, the essential information E n associated with the operation result A n is selected as the selected essential information, essential information 340 ( The selected indispensable information is read from the indispensable information storage area 34) and output to the host computer 10. That is, in this embodiment, the operation result A n matching operation result QA n is an output condition of the essential information to be present in the second table 360. In the following description, the host computer 10, a command to be issued to read the essential information E n from essential information 340 is referred to as a "request command".

図1に戻って、ホストコンピュータ10は、各種のデータの演算を行うとともにホストコンピュータが備える各種ハードウェアを制御するCPU11と、各種のデータを記憶する記憶装置12とを備えている。これにより、ホストコンピュータ10は、一般的なコンピュータとしての構成および機能を備えている。また、ホストコンピュータ10は、図示しないスロットを備えており、当該スロットにメモリシステム1を装着することが可能である。   Returning to FIG. 1, the host computer 10 includes a CPU 11 that performs various data calculations and controls various hardware included in the host computer, and a storage device 12 that stores various data. Accordingly, the host computer 10 has a configuration and functions as a general computer. Further, the host computer 10 has a slot (not shown), and the memory system 1 can be mounted in the slot.

ホストコンピュータ10のCPU11は、メモリシステム1のメモリアレイ21に格納されているデータをROM2から読み出して各種の演算を行う。   The CPU 11 of the host computer 10 reads out data stored in the memory array 21 of the memory system 1 from the ROM 2 and performs various calculations.

特に、CPU11は、プログラム格納領域23に格納されているプログラム26をコントローラ20を介して記憶装置12にロードしつつ、実行する機能を有している。また、先述のように、CPU11は、固有キー格納領域22に格納されているキー情報25を記憶装置12のキーアドレスで示される領域に格納する。また、CPU11は、プログラム26を実行しつつ、実行中のプログラム26の進行状況(進行中のステージ)を把握し、必要であれば、記憶装置12に進行状況(ステージ識別子)を格納する。   In particular, the CPU 11 has a function of executing the program 26 stored in the program storage area 23 while loading it into the storage device 12 via the controller 20. Further, as described above, the CPU 11 stores the key information 25 stored in the unique key storage area 22 in the area indicated by the key address of the storage device 12. Further, the CPU 11 grasps the progress status (the stage in progress) of the program 26 being executed while executing the program 26, and stores the progress status (stage identifier) in the storage device 12 if necessary.

さらに、CPU11は、コントローラ30を介してメモリアレイ31にアクセスする機能も有している。   Further, the CPU 11 has a function of accessing the memory array 31 via the controller 30.

例えば、CPU11は、実行中のプログラム26の進行状況(ステージn)に応じて、メモリシステム1(コントローラ30)に対してコマンドRnを発行する。これによってホストコンピュータ10はメモリシステム3から演算方法fn(x)を読み出すことができる。また、読み出した演算方法fn(x)と被演算情報(正常であればキー情報25)とを用いて演算結果QAnを求め、これを要求コマンドとともにメモリシステム1(コントローラ30)に出力することにより、ステージnを進行させるために必要不可欠な情報Enを取得する。 For example, the CPU 11 issues a command R n to the memory system 1 (controller 30) according to the progress status (stage n) of the program 26 being executed. As a result, the host computer 10 can read the calculation method f n (x) from the memory system 3. Further, the calculation result QA n is obtained using the read calculation method f n (x) and the operation information (key information 25 if normal), and is output to the memory system 1 (controller 30) together with the request command. As a result, information En that is indispensable for advancing stage n is acquired.

記憶装置12は、CPU11の一時的なワーキングエリアとして使用されるRAM(一般的には、高速アクセス可能な揮発性の記憶装置が採用される。)や、ホストコンピュータ10の起動プログラム(図示せず)等を格納しておく読み取り専用のROMなどのハードウェアから構成されている。また、図1には示していないが、セキュリティ機能強化のためには、記憶装置12の一部または全部がCPU11の内部にあってもよい。   The storage device 12 is a RAM (generally a volatile storage device that can be accessed at high speed) used as a temporary working area of the CPU 11, and a startup program (not shown) of the host computer 10. ) And the like for storing read-only ROM. Although not shown in FIG. 1, part or all of the storage device 12 may be inside the CPU 11 in order to enhance the security function.

なお、詳細は図示しないが、ホストコンピュータ10は、ユーザに対して情報を出力する出力装置(ディスプレイやLED、スピーカ、プリンタ等)、ユーザが情報を入力するために操作する入力装置(キーボードやボタン、コントローラ、マイク、タッチパネル等)などのハードウェアを適宜備えていてもよい。   Although not shown in detail, the host computer 10 includes an output device (display, LED, speaker, printer, etc.) that outputs information to the user, and an input device (keyboard or button) that the user operates to input information. , A controller, a microphone, a touch panel, and the like) may be provided as appropriate.

以上が、メモリシステム1を含むコンピュータシステムの構成および機能の説明である。次に、コンピュータシステムの動作を説明しつつ、本実施の形態における情報保護方法について説明する。   The above is the description of the configuration and functions of the computer system including the memory system 1. Next, the information protection method in the present embodiment will be described while explaining the operation of the computer system.

図4は、第1の実施の形態におけるメモリシステム3の動作を示す流れ図である。メモリシステム3は、起動中のホストコンピュータ10にメモリシステム1が装着された状態で動作する。なお、以下において、ROM2のコントローラ20の動作については、従来の技術を適用することが可能であるため、適宜説明を省略する。   FIG. 4 is a flowchart showing the operation of the memory system 3 in the first embodiment. The memory system 3 operates in a state where the memory system 1 is mounted on the host computer 10 that is being activated. In the following description, the conventional technique can be applied to the operation of the controller 20 of the ROM 2, and thus the description thereof will be omitted as appropriate.

メモリシステム1が動作中において、メモリシステム3のコントローラ30は、ホストコンピュータ10からの各種コマンドを受け付けることが可能な状態となっている(ステップS1,S3,S5,S8)。以下、コントローラ30がホストコンピュータ10からのコマンドを受け付けることが可能な状態を「待ち受け状態」と称する。ただし、コントローラ30が受け付けるコマンドは図4に示すものに限定されるものではない。   While the memory system 1 is operating, the controller 30 of the memory system 3 is ready to accept various commands from the host computer 10 (steps S1, S3, S5, S8). Hereinafter, a state in which the controller 30 can accept a command from the host computer 10 is referred to as a “standby state”. However, the commands received by the controller 30 are not limited to those shown in FIG.

待ち受け状態において、ロードコマンドが入力されると(ステップ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 controller 30 loads the save data 320 stored in the data save area 32 of the memory array 31 (step S2). More specifically, the save data 320 specified by the address (address of the data save area 32) input together with the load command is read from the memory array 31 and output to the host computer 10.

待ち受け状態において、セーブコマンドが入力されると(ステップS3においてYes)、コントローラ30は、メモリアレイ31のデータセーブ領域32にデータをセーブする(ステップS4)。より詳細には、セーブコマンドとともに入力されるアドレス(データセーブ領域32のアドレス)に、セーブコマンドとともに入力される情報(保存する情報。例えば、ユーザデータなど。)を、セーブデータ320として書き込む。   When a save command is input in the standby state (Yes in step S3), the controller 30 saves data in the data save area 32 of the memory array 31 (step S4). More specifically, information (information to be saved, for example, user data) input together with the save command is written as save data 320 at an address input with the save command (address of the data save area 32).

このように、本実施の形態では、セーブデータ320の読み出し、および、書き込みに対しては、コントローラ30は、特別な処理は行わず、従来と同等の処理を行う。ただし、本実施の形態におけるホストコンピュータ10は、セーブデータ320に、当該セーブデータ320がセーブされたときのプログラム26の進行状況(ステージn)を示す情報を含める。言い換えれば、本実施の形態におけるプログラム26は、実行中において、セーブデータ320を作成(更新)するときには、そのときの進行状況を示す情報をセーブデータ320に含めるように記述されている。以下では、セーブデータ320に含まれるステージnを示す情報(セーブデータ320により再開されるステージを示す。)を、「ステージS」と称する。   As described above, in the present embodiment, the controller 30 does not perform special processing for reading and writing of the save data 320, and performs processing equivalent to the conventional one. However, the host computer 10 in the present embodiment includes information indicating the progress status (stage n) of the program 26 when the save data 320 is saved in the save data 320. In other words, the program 26 in the present embodiment is described so that when the save data 320 is created (updated) during execution, information indicating the progress status at that time is included in the save data 320. Hereinafter, information indicating the stage n included in the save data 320 (indicating the stage resumed by the save data 320) is referred to as “stage S”.

待ち受け状態において、コマンド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 controller 30 refers to the first table 350 in the first table storage area 35 (step S6).

ここで第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 controller 30 Dummy data is output to the computer 10. However, instead of outputting dummy data, processing such as returning an error, limiting the subsequent operation, or not accepting anything may be performed.

次に、コントローラ30は、読み出したアドレスで示される演算方法格納領域33に格納されている情報を読み出してホストコンピュータ10に出力する。演算方法格納領域33に格納されている情報とは、すなわち、演算方法情報330に含まれている演算方法fn(x)を表現した情報である。このように、ホストコンピュータ10からコマンドRnが入力されたときには、コントローラ30は、当該コマンドRnに対応する演算方法fn(x)を被選択演算方法として選択しホストコンピュータ10に出力する(ステップS7)。 Next, the controller 30 reads the information stored in the calculation method storage area 33 indicated by the read address and outputs it to the host computer 10. The information stored in the calculation method storage area 33 is information representing the calculation method f n (x) included in the calculation method information 330. Thus, when the command R n is input from the host computer 10, the controller 30 selects the calculation method f n (x) corresponding to the command R n as the selected calculation method and outputs it to the host computer 10 ( Step S7).

先述のように、コマンド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 host computer 10 when the command R n is output. It is information reflecting. The controller 30 selects the calculation method f n (x) from the plurality of calculation methods f 1 (x),..., F N (x) in response to the command R n. Depending on the state of the host computer 10 when there is a request from 10, the calculation method f n (x) of the calculation method information 330 is selected as the selected calculation method.

このように構成することにより、不正に演算方法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 normal host computer 10 that changes every moment, so that the calculation method f n (x ) Cannot be read and the security level is improved.

待ち受け状態において、要求コマンドが入力されると(ステップS8においてYes)、コントローラ30は、第2テーブル格納領域36の第2テーブル360を参照する(ステップS9)。   When a request command is input in the standby state (Yes in step S8), the controller 30 refers to the second table 360 in the second table storage area 36 (step S9).

要求コマンドが入力されるときには、当該コマンドとともに、ホストコンピュータ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 host computer 10 results QA n is also inputted. Controller 30, the operation result A n matching operation result QA n retrieves the second table 360 or not stored. When the operation result A n matching operation result QA n is stored, the controller 30 reads the address associated with the operation result A n. In the second table 360, and the address associated with the operation result A n, a storage address of essential information E n corresponding to the result A n.

次に、コントローラ30は、第2テーブル360から読み出した格納アドレスで示される情報を必要不可欠情報格納領域34から読み出してホストコンピュータ10に出力する。必要不可欠情報格納領域34に格納されている当該情報とは、すなわち、必要不可欠情報340に含まれている必要不可欠な情報Enである。このようにして、ホストコンピュータ10から要求コマンドが入力されたときには、コントローラ30は、当該要求コマンドとともに入力される演算結果QAnに一致する演算結果Anに対応する1の必要不可欠な情報Enを被選択必要不可欠情報として選択しホストコンピュータ10に出力する(ステップS10)。 Next, the controller 30 reads the information indicated by the storage address read from the second table 360 from the essential information storage area 34 and outputs it to the host computer 10. With the information stored in the essential information storage area 34, i.e., an essential information E n contained in the essential information 340. In this manner, when a request command from the host computer 10 is inputted, the controller 30, the first essential information corresponding to the operation result A n matching operation result QA n input together with the request command E n Is selected as essential information to be selected and output to the host computer 10 (step S10).

先述のように、本実施の形態における被演算情報はホストコンピュータ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 host computer 10. Therefore, the calculation result QA n calculated using the calculation target information is also information reflecting the state of the host computer 10. Then, the controller 30, as the output condition for the selected essential information, by using a calculation result QA n reflecting the state of the host computer 10, who contemplates trying Daso read illegally essential information 340 every moment If the normal state of the host computer 10 that changes is not reproduced, the essential information 340 cannot be read, and the security level is improved. Incidentally, when the result A n matching the calculation result QA n which are input together with the request command is not stored in the second table 360, the controller 30 outputs the dummy data. However, instead of outputting dummy data, processing such as returning an error, limiting the subsequent operation, or not accepting anything may be performed.

以上がメモリシステム3の動作である。次に、ホストコンピュータ10の動作を説明する。   The above is the operation of the memory system 3. Next, the operation of the host computer 10 will be described.

図5および図6は、第1の実施の形態におけるホストコンピュータ10の動作を示す流れ図である。なお、以下では、ホストコンピュータ10には、すでにメモリシステム1が装着されており、コントローラ30は待ち受け状態にあるものとして説明する。また、図5および図6に示される各工程は、特に断らない限り、ホストコンピュータ10のCPU11が、主にプログラム26に従って動作することにより実行される工程を示す。   5 and 6 are flowcharts showing the operation of the host computer 10 in the first embodiment. In the following description, it is assumed that the memory system 1 is already installed in the host computer 10 and the controller 30 is in a standby state. Moreover, each process shown by FIG. 5 and FIG. 6 shows the process performed when CPU11 of the host computer 10 mainly operate | moves according to the program 26 unless there is particular notice.

ホストコンピュータ10は、プログラム26の実行を開始すると、メモリシステム1のROM2からキー情報25を取得し(ステップS11)、記憶装置12のキーアドレスに格納する。そして、プログラム26の進行状況を示すステージnに「1(初期ステージ)」をセットする(ステップS12)。これにより、ホストコンピュータ10において実行中のプログラム26の進行状況がステージ1に移行し、ステージ1が開始される。   When the host computer 10 starts executing the program 26, the host computer 10 acquires the key information 25 from the ROM 2 of the memory system 1 (step S11) and stores it in the key address of the storage device 12. Then, “1 (initial stage)” is set in the stage n indicating the progress of the program 26 (step S12). As a result, the progress status of the program 26 being executed in the host computer 10 shifts to stage 1 and stage 1 is started.

次に、ホストコンピュータ10は、メモリシステム1(コントローラ30)に対して、コマンドRnを発行する。これにより、先述のようにメモリシステム1から演算方法fn(x)(被選択演算方法)が取得される(ステップS13)。なお、先述のように、ステージnにおいて使用するコマンドRnは、ホストコンピュータ10がROM2のメモリアレイ21から取得する。 Next, the host computer 10 issues a command R n to the memory system 1 (controller 30). As a result, the calculation method f n (x) (selected calculation method) is acquired from the memory system 1 as described above (step S13). As described above, the command R n used in the stage n is acquired from the memory array 21 of the ROM 2 by the host computer 10.

演算方法fn(x)が取得されると、ホストコンピュータ10は、記憶装置12のキーアドレスに格納されている値を被演算情報として読み出し、当該被演算情報を、ステップS13において取得した演算方法fn(x)により演算し、演算結果QAnを求める(ステップS14)。 When the calculation method f n (x) is acquired, the host computer 10 reads the value stored in the key address of the storage device 12 as calculation information, and the calculation method acquired in step S13 is the calculation information. An operation result QA n is obtained by calculation using f n (x) (step S14).

次に、ホストコンピュータ10は、要求コマンドとともに、ステップS14において求めた演算結果QAnをメモリシステム1(コントローラ30)に対して出力する。これにより、先述のようにメモリシステム1から必要不可欠な情報En(被選択必要不可欠情報)が取得される(ステップS15)。 Next, the host computer 10, together with the request command, and outputs the operation result QA n obtained in step S14 to the memory system 1 (controller 30). Thus, essential information from the memory system 1 E n (the selected essential information) is obtained as previously described (step S15).

必要不可欠な情報Enを取得すると、ホストコンピュータ10は、プログラム26のステージnを進行させつつ(ステップS20)、様々な状態を監視する状態となる(ステップS21,S24,S26,S29)。ただし、ホストコンピュータ10が監視する状態は、図6に示される状態に限定されるものではない。以下、ホストコンピュータ10が様々な状態を監視している状態を「監視状態」と称する。 When acquiring the essential information E n, the host computer 10, while advancing the stage n programs 26 (step S20), the state of monitoring the various states (step S21, S24, S26, S29) . However, the state monitored by the host computer 10 is not limited to the state shown in FIG. Hereinafter, a state in which the host computer 10 is monitoring various states is referred to as a “monitoring state”.

監視状態において、データロード(メモリアレイ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 area 32 of the memory array 31) is instructed (Yes in step S21), the host computer 10 sends the controller 30 of the memory system 1 to the controller 30. , Output the load command. When the load command is received from the host computer 10, the controller 30 loads the data as described above and outputs the save data 320 to the host computer 10. Thereby, the host computer 10 acquires the save data 320 (step S22).

セーブデータ320を取得すると、ホストコンピュータ10は、取得したセーブデータ320に含まれる再開させるステージSに関する情報に基づいて、nにSをセットする(ステップS23)。これにより、プログラム26の進行状況は、データロード前のステージから再開させるステージ(すなわちステージS)に移行する。ステージSが再開されると、ロードしたセーブデータ320に従ってプログラム26を進行させるために、ホストコンピュータ10はステップS20の処理に戻る。   When the save data 320 is acquired, the host computer 10 sets S to n based on the information regarding the stage S to be resumed included in the acquired save data 320 (step S23). As a result, the progress status of the program 26 shifts to the stage where the program 26 is resumed from the stage before data loading (ie, stage S). When the stage S is resumed, the host computer 10 returns to the process of step S20 in order to advance the program 26 in accordance with the loaded save data 320.

本実施の形態では、先述のように、必要不可欠な情報Enは、ステージnを進行させるためにのみ必要な情報である。しかし、このような情報を必要不可欠な情報Enとして定義した場合であっても、セーブデータ320を取得しステージSからプログラム26を再開した場合においても、再開時点からステージSを終了するまでに、必要不可欠な情報Eを使用しなければならなくなる場合も起こりうる。 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 program 26 from stage S to get the save data 320, before terminating the stage S from resuming point , it can also occur in having to use the essential information E S.

例えば、必要不可欠な情報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 save data 320 and saved from the loaded save data 320. What is necessary is just to comprise so that S may be acquired.

ただし、本実施の形態におけるデータセーブ領域32は、比較的自由にアクセス可能な記憶領域として構成されている。そのため、セーブデータ320に必要不可欠な情報ESを含めると、セキュリティ機能が多少低下するおそれがある。したがって、上記のような問題を生じさせない情報(再開後のステージSで使用されない情報)を、必要不可欠な情報Enとして定義することが好ましい。このような情報としては、例えば、ステージSにおいて必要不可欠な情報ESを取得した後、直ちに使用し、その後は使用しないような情報が好ましい。このような情報として、例えば、ステップS15の実行直後に一度だけ実行される処理のプログラムコードなどが考えられる。 However, the data save area 32 in the present embodiment is configured as a storage area that can be accessed relatively freely. Therefore, the inclusion of essential information E S to save data 320, there is a risk that the security function is reduced somewhat. Therefore, the information that does not cause the above problem (not used in stage S after resumption information), is preferably defined as an integral information E n. As such information, for example, information that is used immediately after the information E S that is indispensable in the stage S is used and is not used thereafter is preferable. As such information, for example, a program code of a process executed only once immediately after the execution of step S15 can be considered.

あるいは、ステップ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 host computer 10 sends to the controller 30 of the memory system 1 information to be saved together with a save command (save data. Information on stage n at the time of saving). Is output) (step S25). As a result, the controller 30 saves the data as described above. The data saving instruction to the host computer 10 may be given by the user, or the execution timing may be determined in advance by the program 26 as in auto saving.

監視状態において、プログラム26が進行しステージnが終了すると(ステップS26においてYes)、ホストコンピュータ10は、現在のステージnが最終ステージNであるか否かを判定する(ステップS27)。   In the monitoring state, when the program 26 proceeds and stage n ends (Yes in step S26), the host computer 10 determines whether or not the current stage n is the final stage N (step S27).

そして、現在のステージnが最終ステージNである場合、プログラム26が最後まで進行したと判断し、プログラム26を終了する。一方、現在のステージnが最終ステージNでない場合、ステージnをインクリメントして(ステップS28)、次のステージを開始し、ステップS13の処理に戻る。   If the current stage n is the final stage N, it is determined that the program 26 has progressed to the end, and the program 26 is terminated. On the other hand, if the current stage n is not the final stage N, the stage n is incremented (step S28), the next stage is started, and the process returns to step S13.

監視状態において、終了が指示されると(ステップS29においてYes)、ホストコンピュータ10は、プログラム26の実行を終了する。なお、詳細は省略するが、終了が指示された場合は、データセーブを行うか否かをユーザに対して確認することが好ましい。   When the end is instructed in the monitoring state (Yes in step S29), the host computer 10 ends the execution of the program 26. Although details are omitted, it is preferable to confirm with the user whether or not to save data when an end is instructed.

以上が、第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 memory system 1, information to be protected is stored in the memory array 21 of the ROM 2 and the memory array 31 of the memory system 3, respectively. The program 26 stored in the ROM 2 cannot operate normally in the host computer 10 without the essential information E 1 ,..., E N stored in the memory system 3. It is configured. That is, a person who intends to illegally duplicate the program 26 (hereinafter referred to as “illegal duplicator”) need only break the security function of the ROM 2 and duplicate the information stored in the memory array 21. First, the security function provided by the controller 30 of the memory system 3 must also be considered, and all the information stored in the memory array 31 must be read and copied.

ここで、コントローラ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 memory array 31 via the controller 30, the external computer (not limited to the host computer 10). (Including the computer used by the duplicator) is not sufficient to output the request command to the controller 30. Since this request command is stored in the ROM 2, it may be reproduced simply by copying the information stored in the memory array 21. However, even if this request command is randomly given to the controller 30, it is indispensable. such information E n can not be read.

すでに説明したように、外部のコンピュータは、当該要求コマンドとともに、正常な全ての演算結果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 controller 30 one by one together with the request command. The calculation result An is not stored in the ROM 2 but only stored in the memory system 3 (second table storage area 36). Therefore, the operation result of A n because it can not be duplicated from the ROM 2, are still not able to break through the security features of the memory system 3 illegal duplication's operation result A 1, · · ·, respectively calculating the A N There is nothing but to ask for.

演算結果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 ROM 2, but the operation method f n (x) is stored only in the memory system 3 (operation method storage area 33). Therefore, since the calculation method f n (x) cannot be read from the ROM 2, an unauthorized duplicator who has not yet broken through the security function of the memory system 3 can execute all commands R 1 ,. Must be output to the controller 30 one by one and read from the memory system 3.

すなわち、メモリシステム1では、全ての必要不可欠な情報E1,・・・,ENを読み出すためには、ROM2のセキュリティ機能を破り、メモリアレイ21に格納されている情報を読み出し、解析して、被演算情報と全てのコマンドR1,・・・,RNとを特定しなければならない。 That is, in the memory system 1, in order to read out all the essential information E 1 ,..., E N , the security function of the ROM 2 is broken and the information stored in the memory array 21 is read and analyzed. all commands R 1 and operand information, ... we must identify and R N.

また、先述のように、被演算情報および全てのコマンド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 host computer 10, an unauthorized duplicator can identify the specified operation When the information and all the commands R 1 ,..., RN are used, the normal state of the host computer 10 must be reproduced.

さらに、被演算情報および全てのコマンド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 program 26, and can be changed in the host computer 10. Is not required. Therefore, for example, it can be changed frequently for each game title or revision, and an unauthorized duplicator must perform the above analysis work each time, and it is constant until an illegal duplicate (pirated version) is manufactured. The above time will be required. In particular, when the program 26 is game software or the like, there is a characteristic that if the pirated version is distributed immediately after the start of the sale, the sales of the regular version will be greatly affected. Therefore, in such products on the market, even if it is not possible to completely prevent the production of pirated copies, it can be said that the effect is great if the appearance of pirated copies can be delayed for a certain period from the start of release.

以上のように、第1の実施の形態におけるメモリシステム1は、ホストコンピュータ10に接続され、プログラム26を格納するメモリアレイ21と、メモリアレイ21に対するアクセスを制御するコントローラ20と、ホストコンピュータ10がプログラム26を使用するときに必要となる必要不可欠情報340を格納する書き換え可能なメモリアレイ31と、メモリアレイ31に対するアクセスを制御するコントローラ30とを備えている。そして、コントローラ30は、ホストコンピュータ10の状態を反映した出力条件に応じて、メモリアレイ31に格納されている必要不可欠情報340を被選択必要不可欠情報としてホストコンピュータ10に出力する。これにより、既存のホストコンピュータ10の設計変更を必要とせず、安価にセキュリティレベルを向上させることができる。また、例えば、プログラム26ごとに変更できるので、一旦、セキュリティを破られても、容易に再構築できる。また、ホストコンピュータの状態を反映した出力条件が設けられているため、これを再現しなければ必要不可欠情報を読み出すことができず、複製を作成することが一層困難となる。   As described above, the memory system 1 according to the first embodiment is connected to the host computer 10 and includes the memory array 21 that stores the program 26, the controller 20 that controls access to the memory array 21, and the host computer 10. A rewritable memory array 31 that stores essential information 340 required when using the program 26 and a controller 30 that controls access to the memory array 31 are provided. Then, the controller 30 outputs the indispensable information 340 stored in the memory array 31 to the host computer 10 as selected indispensable information according to the output condition reflecting the state of the host computer 10. Thereby, the design level of the existing host computer 10 is not required, and the security level can be improved at a low cost. For example, since it can change for every program 26, 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.

また、メモリシステム1は、演算方法fn(x)を定義する演算方法情報330を格納しており、演算方法fn(x)を被選択演算方法としてホストコンピュータ10に出力し、被選択必要不可欠情報の出力条件は、被演算情報(キーアドレスで示される記憶領域に格納されている情報)を被選択演算方法により演算して得られる演算結果QAnに基づく条件を含んでいる。このように、必要に応じて演算により作成される情報を出力条件にすることにより、いずれかの記憶領域に格納されている情報(固定されている情報)をそのまま出力条件に用いる場合に比べて、セキュリティレベルが向上する。 Further, the memory system 1, the operation method stores a calculation method information 330 that defines the f n (x), and outputs a calculation method f n (x) to the host computer 10 as the selected calculation method, it must be selected The indispensable information output condition includes a condition based on a calculation result QA n obtained by calculating information to be calculated (information stored in a storage area indicated by a key address) by a selected calculation method. In this way, by making information created by computation as necessary as an output condition, information stored in any storage area (fixed information) is used as it is as an output condition. , Improve the security level.

また、演算方法情報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 calculation method information 330 defines a plurality of calculation methods f 1 (x),..., F N (x), and the memory array 31 stores a plurality of indispensable information E 1 ,. , E N are stored, and a plurality of calculation results A respectively obtained by one calculation method f n (x) selected from a plurality of calculation methods f 1 (x),..., F N (x). 1 ,..., A N and a plurality of indispensable information E 1 ,..., E N are associated with each other in a one-to-one relationship. One selected essential information from E 1 ,..., E N is selected and output to the host computer 10. As a result, the security level is improved as compared with the case where all the essential information 340 is read by one calculation result A 1 obtained by one calculation.

また、被選択演算方法は、プログラム26のホストコンピュータ10における進行状況に応じて選択されることにより、プログラム26の進行状況にリンクさせた読み出し要求をしなければ、必要不可欠情報340を読み出すことが困難となる。これによりセキュリティレベルが向上する。   Further, the selected calculation method is selected according to the progress status of the program 26 in the host computer 10, so that the indispensable information 340 can be read unless a read request linked to the progress status of the program 26 is made. It becomes difficult. This improves the security level.

また、演算方法情報330は、メモリアレイ31に格納される。メモリシステム3のセキュリティ機能は未だ破られていないので、ROM2側に演算方法情報330を格納する場合に比べて、セキュリティレベルが向上する。   The calculation method information 330 is stored in the memory array 31. Since the security function of the memory system 3 has not been broken, the security level is improved as compared with the case where the calculation method information 330 is stored on the ROM 2 side.

なお、ホストコンピュータ10はデータセーブ領域32に対して自由にアクセス可能であると説明したが、データセーブ領域32に対するホストコンピュータ10からのアクセスに対して、何らかのセキュリティ機能を設けてもよい。以下の実施の形態においても同様である。   Although the host computer 10 has been described as being freely accessible to the data save area 32, some security function may be provided for access from the host computer 10 to the data save area 32. The same applies to the following embodiments.

また、第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 calculation method information 330, but one calculation method may be defined. Even in this case, since the security function is added to the memory system 3, the security level is improved as compared with the conventional technology. Even if only one calculation method is defined in the calculation method information 330, it is not necessary to change the design of the existing host computer 10 and it can be easily changed according to the information to be protected. There is also an effect that there is.

また、図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 memory arrays 21 and 31. However, for example, the unique key storage area 22 may be configured with discontinuous addresses. The same applies to the following embodiments.

<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 host computer 10 of information to be protected (stage n), a calculation method in stage n Only f n (x) and essential information E n can be read out. However, for example, the order in which the calculation method f (n-1) (x) and the calculation method f n (x) are read out is not particularly limited. However, for example, it is also possible to restrict the reading order of the plurality of calculation methods f 1 (x),..., F N (x) and to prohibit the reading when the restrictions are not complied with. The same applies to the essential information E n.

図7は、第2の実施の形態におけるメモリアレイ31の記憶領域と各記憶領域に格納される情報とを例示する図である。なお、第2の実施の形態におけるメモリシステム1において第1の実施の形態におけるメモリシステム1と同様の構成については同符号を付し、適宜説明を省略する。   FIG. 7 is a diagram illustrating a storage area of the memory array 31 and information stored in each storage area in the second embodiment. In the memory system 1 according to the second embodiment, the same components as those in the memory system 1 according to the first embodiment are denoted by the same reference numerals, and description thereof will be omitted as appropriate.

図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 memory system 1 in the second embodiment has a memory area provided in the memory array 31 of the memory system 3 in the memory system 1 in the first embodiment. Is different. Specifically, the memory array 31 in the second embodiment is additionally provided with a progress history storage area 37 for storing progress history information 370 and an output history storage area 38 for storing output history information 380. ing.

また、第1テーブル格納領域35に格納される情報が第1テーブル351である点と、第2テーブル格納領域36に格納される情報が第2テーブル361である点も第1の実施の形態におけるメモリシステム1と相違する。   In addition, in the first embodiment, the information stored in the first table storage area 35 is the first table 351 and the information stored in the second table storage area 36 is the second table 361. Different from the memory system 1.

進行履歴格納領域37に格納される進行履歴情報370は、コントローラ30により作成される情報であって、コントローラ30がホストコンピュータ10から進行状況(ステージn)を通知されたときに、当該通知された進行状況を記録する情報である。詳細は後述するが、本実施の形態では、プログラム26におけるステージ(n−1)までが順次に正常に進行して正常にステージnが開始されたときには、進行履歴情報370には、ステージnが記録される。言い換えれば、進行履歴情報370にステージnが記録されている状態とは、ホストコンピュータ10により実行中のプログラム26の進行状況がステージnの状態であることを示す。なお、以下の説明では、進行履歴情報370に記録されたステージを「ステージP」と称する。   The progress history information 370 stored in the progress history storage area 37 is information created by the controller 30 and is notified when the controller 30 is notified of the progress status (stage n) from the host computer 10. It is information that records the progress. Although details will be described later, in the present embodiment, when the stage 26 (n-1) in the program 26 proceeds normally normally and the stage n is started normally, the progress history information 370 includes the stage n. To be recorded. In other words, the state in which the stage n is recorded in the progress history information 370 indicates that the progress state of the program 26 being executed by the host computer 10 is in the stage n state. In the following description, the stage recorded in the progress history information 370 is referred to as “stage P”.

出力履歴格納領域38に格納される出力履歴情報380は、コントローラ30によって作成される。出力履歴情報380は、コントローラ30がホストコンピュータ10に必要不可欠情報340を出力するときに、出力する必要不可欠な情報Enに関する情報を記録する情報である。本実施の形態では、プログラム26がステージnまで順次に正常に進行し、ステージnにおける必要不可欠な情報Enまでが正常に出力された状態では、出力履歴情報380にはステージnが記録されている。なお、以下の説明では、出力履歴情報380に記録されたステージを「ステージQ」と称する。また、出力履歴情報380におけるステージQの初期値は「0」である。 The output history information 380 stored in the output history storage area 38 is created by the controller 30. Output record information 380, when the controller 30 outputs the essential information 340 to the host computer 10 is information that records information about the essential information E n to be output. In this embodiment, sequentially proceeded successfully programmed 26 to stage n, in the state in which to essential information E n at stage n is outputted successfully, stage n is recorded in the output history information 380 Yes. In the following description, the stage recorded in the output history information 380 is referred to as “stage Q”. The initial value of the stage Q in the output history information 380 is “0”.

第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 memory system 3 in the second embodiment. The memory system 3 in the second embodiment operates in a state where the memory system 1 is mounted on the host computer 10 that is being activated.

第2の実施の形態におけるメモリシステム3が動作中において、メモリシステム3のコントローラ30は、ホストコンピュータ10からの各種コマンドを受け付けることが可能な状態となっている(ステップS30,S33,S36,S42)。以下、本実施の形態において、第2の実施の形態におけるコントローラ30がホストコンピュータ10からのコマンドを受け付けることが可能な状態を「待ち受け状態」と称する。ただし、コントローラ30が受け付けるコマンドは図8に示すものに限定されるものではない。   While the memory system 3 according to the second embodiment is operating, the controller 30 of the memory system 3 is in a state where it can accept various commands from the host computer 10 (steps S30, S33, S36, S42). ). Hereinafter, in the present embodiment, a state in which the controller 30 in the second embodiment can accept a command from the host computer 10 is referred to as a “waiting state”. However, the commands received by the controller 30 are not limited to those shown in FIG.

待ち受け状態において、ロードコマンドが入力されると(ステップ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 controller 30 loads the save data 320 stored in the data save area 32 of the memory array 31 (step S31). Then, from the loaded save data 320, information on the stage resumed by the save data 320 (that is, stage S) is acquired, and the stage S is recorded as the stage P in the progress history information 370, and the output history information The stage (S-1) immediately before the stage S is recorded as a stage Q in 380 (step S32).

ステップ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 program 26 has already progressed to the stage n, if the save data 320 to be resumed from the stage (n-1) is loaded, the process proceeds. The stage P in the history information 370 is rewritten to the stage (n-1), and the stage Q in the output history information 380 is rewritten to the stage (n-2). That is, when the progress is reversed by normal processing, the progress history information 370 and the output history information 380 are corrected.

待ち受け状態において、セーブコマンドが入力されると(ステップ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 controller 30 records stage n at this time as stage P in the progress history information 370 (step S34). The stage n recorded in step S34 uses information indicating the stage n included in the information input from the host computer 10 together with the save command.

進行履歴情報370にステージPを記録すると、コントローラ30は、第1の実施の形態と同様にセーブコマンドとともに入力される情報をメモリアレイ31のデータセーブ領域32にセーブする(ステップS35)。なお、本実施の形態では、セーブコマンドとともに、ステージnを示す情報のみがホストコンピュータ10から入力される場合がある。その場合には、データセーブ領域32に格納すべき情報は存在しないので、ステップS35は実行されない。   When the stage P is recorded in the progress history information 370, the controller 30 saves the information input together with the save command in the data save area 32 of the memory array 31 as in the first embodiment (step S35). In the present embodiment, only the information indicating the stage n may be input from the host computer 10 together with the save command. In that case, since there is no information to be stored in the data save area 32, step S35 is not executed.

待ち受け状態において、コマンド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 controller 30 refers to the first table 351 in the first table storage area 35 (step S37). If the input command R n does not exist in the first table 351 (No in step S38), the input command R n is regarded as an undefined illegal command and dummy data is output. (Step S39).

一方、入力されたコマンド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 controller 30 is the information associated with the input command R n as in the first embodiment. Are read from the first table storage area 35.

ここで第1テーブル格納領域35(第1テーブル351)から読み出す情報とは、入力されたコマンドRnに対応するステージnを示す情報と、当該コマンドRnに対応する演算方法fn(x)の格納アドレスである。このように、第1テーブル351においてコマンドRnとステージnとが関連づけられていることにより、ホストコンピュータ10はコマンドRnをコントローラ30に出力することで、ホストコンピュータ10の状態(ステージn)を間接的にコントローラ30に伝達することができる。 Here, the first table storage area 35 and the information read from (first table 351), and information indicating a stage n corresponding to the input command R n, a calculation method corresponding to the command R n f n (x) Storage address. As described above, since the command R n and the stage n are associated with each other in the first table 351, the host computer 10 outputs the command R n to the controller 30 to change the state (stage n) of the host computer 10. It can be transmitted to the controller 30 indirectly.

次に、第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 controller 30 stores the storage acquired from the first table 351 together with the stage n. Using the address, the calculation method f n (x) stored at the storage address is read and output to the host computer 10 (step S41).

一方、第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 controller 30 executes step S39 and outputs dummy data. That is, the controller 30 in this case prohibits the output of the normal selected calculation method.

ステップ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 program 26 in the host computer 10 (the progress status notified in advance to the memory system 3 and recorded in the progress history information 370) is not stage n. This means that the command R n to be used in n is used. As described above, the controller 30 selects the calculation method f n (x) while confirming the progress of the program 26 by executing step S40. That is, the controller 30 in the second embodiment selects the selected calculation method according to the progress status (stage n) of the program 26 in the host computer 10.

このように、第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 memory system 3. The correct calculation method f n (x) cannot be acquired from the memory array 31 only by attacking. Therefore, it is unlikely that the correct calculation method f n (x) can be obtained even if the command R n and the secret information are read from the ROM 2 and output to the controller 30 at random. Compared with the security level.

待ち受け状態において、要求コマンドが入力されると(ステップ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 controller 30 refers to the second table 361 in the second table storage area 36 (step S43), and the calculation result input together with the request command. Whether QA n is correct or not is determined (step S44).

第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 controller 30 searches whether the operation result A n matching operation result QA n input is not stored in the second table 361, Resultant value A n matching the QA n second table 361 operation results QA n when that was stored in it is determined that the correct (Yes in step S44).

しかし、このような判断は次のような問題を生じるおそれがある。すなわち、ステージ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 controller 30 acquires the stage P in the progress history information 370 (indicating the progress status of the program 26 at that time). Then, the second table 361 is searched using the acquired stage P with reference to the second table 361. Thus, comparing the second table 361, the predicted value of the operation in stages P (operation result A n) is obtained, and the operation result A n, whether or not the input operation result QA n matches and, only the operation result QA n is determined to be correct (Yes in step S44) if they match. In this way, it is possible to prevent an erroneous determination by limiting the collation of the input calculation result QA n to one time. Further, since the controller 30 always manages the progress status of the stage n, it becomes easy to search for a match of the calculation results.

演算結果QAnが誤っている場合、コントローラ30は、ステップS39を実行することにより、必要不可欠な情報Enの代わりにダミーデータをホストコンピュータ10に出力する。 If the operation result QA n is incorrect, the controller 30 executes a step S39, and outputs the dummy data to the host computer 10 in place of the essential information E n.

これに対して演算結果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 controller 30 reads the stage n corresponding to the operation result A n consistent with the operation result QA n from the second table 361. Then, using the stage n read from the second table 361, it is determined whether or not the stage (n−1) matches the stage Q of the output history information 380 (step S45).

ステップ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 essential information 340 has been successfully output in the immediately preceding stage.

そして、ステップS45においてNoと判定すると、コントローラ30はステップS39を実行することにより、正常な必要不可欠な情報Enの代わりにダミーデータをホストコンピュータ10に出力する。 When it is determined No in step S45, the controller 30 by executing the step S39, and outputs the dummy data to the host computer 10 in place of the normal essential information E n.

すなわち、第2の実施の形態におけるコントローラ30は、要求コマンドとともに入力された演算結果QAnを「正しい」と判断した場合であっても、直前にホストコンピュータ10に向けて出力した被選択必要不可欠情報が必要不可欠な情報E(n-1)でない場合には、正常な必要不可欠な情報Enをホストコンピュータ10に出力することを禁止する。したがって、第2の実施の形態では、プログラム26の進行順序に従って、1つずつ要求しなければ、全ての必要不可欠な情報E1,・・・,ENを正常にメモリアレイ31から読み出すことができない。 That is, the controller 30 in the second embodiment, also the operation result QA n which are input together with the request command in the case where it is determined as "correct", the selected essential outputted to the host computer 10 immediately before If the information is not indispensable information E (n−1) , it is prohibited to output normal essential information E n to the host computer 10. Thus, in the second embodiment, in accordance with progression program order 26, unless one request, all essential information E 1, · · ·, be read from the memory array 31 correctly E N Can not.

一方、ステップ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 controller 30, the address associated with the operation result A n in the second table 361 (storage address of the operation result A n in essential corresponding information E n) first 2 Read from the table 361. Then, using the read the address, and outputs the essential information E n from essential information storage area 34 to the host computer 10 reads selected as the selected essential information (step S46).

正常な被選択必要不可欠情報をホストコンピュータ10に出力すると、コントローラ30は、当該被選択必要不可欠情報を出力したことを示すステージnを出力履歴情報380のステージQとしてセットし、出力履歴格納領域38に格納する(ステップS47)。   When normal selected essential information is output to the host computer 10, the controller 30 sets stage n indicating that the selected essential information has been output as the stage Q of the output history information 380, and outputs the output history storage area 38. (Step S47).

以上が第2の実施の形態におけるメモリシステム3の動作である。次に、第2の実施の形態におけるホストコンピュータ10の動作を説明する。   The above is the operation of the memory system 3 in the second embodiment. Next, the operation of the host computer 10 in the second embodiment will be described.

図9は、第2の実施の形態におけるホストコンピュータ10の動作を示す流れ図である。なお、図9に示される各工程は、特に断らない限り、ホストコンピュータ10のCPU11が、主にプログラム26に従って動作することにより実行される工程を示す。   FIG. 9 is a flowchart showing the operation of the host computer 10 in the second embodiment. Each process shown in FIG. 9 indicates a process executed by the CPU 11 of the host computer 10 mainly operating according to the program 26 unless otherwise specified.

第2の実施の形態におけるホストコンピュータ10は、プログラム26の実行を開始すると、メモリシステム1のROM2からキー情報25を取得し(ステップS51)、記憶装置12のキーアドレスに格納する。そして、プログラム26の進行状況を示すステージnに「1(初期ステージ)」をセットする(ステップS52)。これにより、ホストコンピュータ10において実行中のプログラム26の進行状況がステージ1に移行し、ステージ1が開始される。   When the execution of the program 26 is started, the host computer 10 in the second embodiment acquires the key information 25 from the ROM 2 of the memory system 1 (step S51) and stores it in the key address of the storage device 12. Then, “1 (initial stage)” is set in the stage n indicating the progress of the program 26 (step S52). As a result, the progress status of the program 26 being executed in the host computer 10 shifts to stage 1 and stage 1 is started.

次に、ホストコンピュータ10は、プログラム26の進行状況を示すステージnとともに、メモリシステム1に対してセーブコマンドを発行する(ステップS53)。すなわち、ステージnを含むセーブコマンドをメモリシステム1に出力する。ステップS53の処理が実行されると、セーブコマンドが入力されたメモリシステム1では、先述のように、ステップS34が実行され、進行履歴情報370にステージnが格納される。   Next, the host computer 10 issues a save command to the memory system 1 together with the stage n indicating the progress of the program 26 (step S53). That is, a save command including stage n is output to the memory system 1. When the process of step S53 is executed, in the memory system 1 to which the save command is input, step S34 is executed as described above, and stage n is stored in the progress history information 370.

ステップS53の処理は、ホストコンピュータ10が、プログラム26の進行状況(ステージn)をメモリシステム1に通知する処理である。したがって、ステップS53は、ステージnが開始された直後に、CPU11によって自動的に実行されるように(ユーザの指示を待つことなしに)プログラム26に記述されていることが好ましい。   The process of step S53 is a process in which the host computer 10 notifies the memory system 1 of the progress status (stage n) of the program 26. Therefore, step S53 is preferably described in the program 26 so that it is automatically executed by the CPU 11 immediately after stage n is started (without waiting for a user instruction).

ステップ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 host computer 10 in the second embodiment performs the processing of steps S54 to S56. Run. In addition, since the process of step S54 thru | or S56 is a process similar to step S13 thru | or S15 in 1st Embodiment, description is abbreviate | omitted. When step S56 is completed, the host computer 10 in the second embodiment executes the same processing as steps S21 to S29 in the first embodiment.

以上のように、第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 program 26 in the host computer 10 is notified, the controller 30 in the second embodiment stores the notified progress status in the memory array 31 as progress history information 370 and also progress history. A selected calculation method is selected according to the information 370. Accordingly, the memory system 1 can operate while grasping the state of the host computer 10 and can easily provide a security function reflecting the state of the host computer 10.

また、第2の実施の形態では、複数の必要不可欠な情報E1,・・・,ENの出力条件は、コントローラ30が複数の必要不可欠な情報E1,・・・,ENを出力する際の出力順序を含む。すなわち、出力条件に含まれる出力順序でなければ必要不可欠情報340を読み出すことができず、セキュリティレベルが向上する。 Further, in the second embodiment, a plurality of essential information E 1, · · ·, output condition E N, the controller 30 is integral multiple of the required information E 1, · · ·, outputs E N Including the output order. That is, if the output order is not included in the output condition, the essential information 340 cannot be read, and the security level is improved.

また、コントローラ30は、例えば、ホストコンピュータ10に必要不可欠な情報E(n-)を出力したときの出力履歴情報380に応じて、出力条件としての出力順序となるように次回に出力する必要不可欠情報Enを選択することにより、容易に複数の必要不可欠な情報E1,・・・,ENの出力順序を決定できる。 Further, the controller 30 is indispensable to output the next time so that the output order becomes an output condition according to the output history information 380 when the indispensable information E (n−) is output to the host computer 10, for example. by selecting the information E n, easily plurality of essential information E 1, ···, you can determine the output order of E n.

<3. 第3の実施の形態>
上記実施の形態では、ホストコンピュータ10が1のコマンドRnを発行することにより、1の演算方法fn(x)が取得された。しかし、演算方法を読み出すコマンドRnは、必ずしも演算方法fn(x)と一対一に対応していなくてもよい。
<3. Third Embodiment>
In the above-described embodiment, when the host computer 10 issues one command R n , one calculation method f n (x) is acquired. However, the command R n for reading the calculation method does not necessarily have a one-to-one correspondence with the calculation method f n (x).

第3の実施の形態における演算方法情報330には、第1および第2の実施の形態と同様に、複数の演算方法f1(x),・・・,fN(x)が定義されている。そして、第3の実施の形態では、各演算方法f1(x),・・・,fN(x)を定義する情報は、いずれも複数個に分割して、順次に、メモリシステム3からホストコンピュータ10に出力することが可能とされている。そして、ホストコンピュータ10は、複数個に分割して、順次に取得した各情報から、各演算方法f1(x),・・・,fN(x)を作成する。 In the calculation method information 330 in the third embodiment, a plurality of calculation methods f 1 (x),..., F N (x) are defined as in the first and second embodiments. Yes. In the third embodiment, the information defining each calculation method f 1 (x),..., F N (x) is divided into a plurality of pieces, and sequentially from the memory system 3. It is possible to output to the host computer 10. Then, the host computer 10 divides the data into a plurality of pieces, and creates each calculation method f 1 (x),..., F N (x) from the sequentially acquired information.

以下では、各演算方法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 memory system 3 using a calculation method f n1 (x),..., f nM (x). In other words, the calculation method f n1 (x),..., F nM (x) is information necessary for creating the calculation method f n (x) in the host computer 10.

また、各演算方法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 host computer 10 to request the f nM (x), the command R n1, ···, R nM is in the program 26 Is defined. Then, in the first table 351 in the third embodiment, the command both R n1 ,, R nM are associated with stage n, the commands R n1 ,, R nM for address calculation method storage area 33 The calculation methods f n1 (x),..., F nM (x) are associated one-to-one with the storage addresses.

次に、第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 memory system 1 is almost the same as that in the memory system 1 in the second embodiment, and thus the description thereof is omitted.

図11は、第3の実施の形態におけるホストコンピュータ10の動作を示す流れ図である。なお、図11に示される各工程は、特に断らない限り、ホストコンピュータ10のCPU11が、主にプログラム26に従って動作することにより実行される工程を示す。   FIG. 11 is a flowchart showing the operation of the host computer 10 in the third embodiment. Each process shown in FIG. 11 indicates a process executed by the CPU 11 of the host computer 10 mainly operating according to the program 26 unless otherwise specified.

第3の実施の形態におけるホストコンピュータ10は、プログラム26の実行を開始すると、ステップS61ないしS63の処理を行う。ここで、ステップS61ないしS63の処理は、第2の実施の形態におけるステップS51ないしS53と同様の処理なので説明を省略する。   When the host computer 10 according to the third embodiment starts to execute the program 26, the host computer 10 performs steps S61 to S63. Here, the processing of steps S61 to S63 is the same as the processing of steps S51 to S53 in the second embodiment, and thus description thereof is omitted.

ステップS63が実行されると、第3の実施の形態におけるホストコンピュータ10は出力順序を示すmの値を「1(初期値)」にセットする(ステップS64)。   When step S63 is executed, the host computer 10 in the third embodiment sets the value of m indicating the output order to “1 (initial value)” (step S64).

次に、ホストコンピュータ10は、コマンドRnmをメモリシステム3のコントローラ30に対して発行し、これに対してメモリシステム3から出力される演算方法fnm(x)を取得して記憶装置12に記憶しておく(ステップS65)。 Next, the host computer 10 issues a command R nm to the controller 30 of the memory system 3, obtains an operation method f nm (x) output from the memory system 3 and stores it in the storage device 12. Store it (step S65).

そして、さらに、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 host computer 10 in the third embodiment executes the processes of steps S69 and S70. Note that the processing in steps S69 and S70 is the same as the processing in steps S55 and S56 in the second embodiment, and a description thereof will be omitted. When step S70 is completed, the host computer 10 in the third embodiment executes the same processing as steps S21 to S29 in the first embodiment.

以上のように、第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 calculation method information 330 in a plurality of times, even one calculation method f n (x) cannot be acquired unless all of the multiple readings are successful. This improves the security level.

なお、上記実施の形態では、すべての演算方法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 memory system 1, the ROM 2 that stores the information to be protected and the memory system 3 that stores the essential information 340 constitute an integral structure. However, for example, a storage medium corresponding to the memory array 21 of the ROM 2 is constituted by a CD-ROM, a controller 20 of the ROM 2 is constituted by a CD-ROM drive device provided in the host computer 10 and the CPU 11, and a removable storage medium. It is also possible to configure by mounting only the configuration corresponding to the memory system 3.

また、上記実施の形態に示した各工程は、あくまでも例示であって、同様の効果が得られるならば、各工程における処理内容や、各工程の実行順は、適宜、変更されてもよい。   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 Memory system 10 Host computer 2 ROM
20, 30 Controller 21, 31 Memory array 22 Unique key storage area 23 Program storage area 24 Content storage area 25 Key information 26 Program 3 Memory system 32 Data save area 320 Saved data 33 Calculation method storage area 330 Calculation method information 34 Essential information Storage area 340 Essential information 35 First table storage area 350, 351 First table 36 Second table storage area 360, 361 Second table 37 Progress history storage area 370 Progress history information 38 Output history storage area 380 Output history information

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 .
請求項1に記載のメモリシステムであって、
前記被演算情報は、前記ホストコンピュータの状態を反映する情報であるメモリシステム。
The memory system of claim 1,
The memory information is information that reflects the state of the host computer .
請求項1または2に記載のメモリシステムであって、
前記保護対象の情報には、前記ホストコンピュータによって実行されるときの当該保護対象の情報の進行状況が複数のステージとして定義されており、
前記ホストコンピュータの状態は、前記複数のステージのうちのいずれか一つのステージを前記ホストコンピュータが実行しているときの前記ホストコンピュータの状態を含むメモリシステム。
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ないし3のいずれかに記載のメモリシステムであって、
前記メモリシステムは、前記ホストコンピュータからの要求があったときの前記ホストコンピュータの状態に応じて前記複数の演算方法から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 .
請求項1ないし4のいずれかに記載のメモリシステムであって、
前記被選択演算方法は、前記保護対象の情報の前記ホストコンピュータにおける進行状況に応じて選択されるメモリシステム。
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 .
請求項5に記載のメモリシステムであって、
前記第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 .
請求項1ないし6のいずれかに記載のメモリシステムであって、
前記出力条件は、前記第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.
請求項7に記載のメモリシステムであって、
前記出力順序が前記保護対象の情報の前記ホストコンピュータにおける進行順序に従うメモリシステム。
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 .
請求項7または8に記載のメモリシステムであって、
前記第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 .
請求項1ないし9のいずれかに記載のメモリシステムであって、
前記被選択演算方法は、前記演算方法情報から複数回に分けて読み出されるメモリシステム。
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 .
請求項1ないし10のいずれかに記載のメモリシステムであって、
前記演算方法情報は、前記第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 .
請求項12に記載のメモリシステムであって、
前記保護対象の情報には、前記ホストコンピュータによって実行されるときの当該保護対象の情報の進行状況が複数のステージとして定義されており、
前記ホストコンピュータの状態は、前記複数のステージのうちのいずれか一つのステージを前記ホストコンピュータが実行しているときの前記ホストコンピュータの状態を含むメモリシステム。
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 .
ホストコンピュータに接続されるメモリシステムの第1不揮発性メモリに格納される保護対象の情報を保護する情報保護方法であって、
書き換え可能な第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:
請求項14に記載の情報保護方法であって、The information protection method according to claim 14,
前記保護対象の情報には、前記ホストコンピュータによって実行されるときの当該保護対象の情報の進行状況が複数のステージとして定義されており、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.
JP2011141287A 2011-06-27 2011-06-27 Memory system and information protection method Expired - Fee Related JP5792526B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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