WO2009031244A1 - 書込み領域セキュリティシステム - Google Patents

書込み領域セキュリティシステム Download PDF

Info

Publication number
WO2009031244A1
WO2009031244A1 PCT/JP2007/067559 JP2007067559W WO2009031244A1 WO 2009031244 A1 WO2009031244 A1 WO 2009031244A1 JP 2007067559 W JP2007067559 W JP 2007067559W WO 2009031244 A1 WO2009031244 A1 WO 2009031244A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
area
key
command
mode
Prior art date
Application number
PCT/JP2007/067559
Other languages
English (en)
French (fr)
Inventor
Shinji Kurimoto
Masashi Seiki
Original Assignee
Nintendo Co., Ltd.
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 Nintendo Co., Ltd. filed Critical Nintendo Co., Ltd.
Priority to EP07806991A priority Critical patent/EP2187313A4/en
Priority to JP2009531082A priority patent/JP5177696B2/ja
Priority to PCT/JP2007/067559 priority patent/WO2009031244A1/ja
Priority to EP13198509.5A priority patent/EP2738680A1/en
Priority to US12/676,513 priority patent/US9176897B2/en
Publication of WO2009031244A1 publication Critical patent/WO2009031244A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/603Digital right managament [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Definitions

  • the present invention relates to a write area security system, and more particularly to a write area security system for protecting a write area from unauthorized use, for example.
  • the present invention also relates to a memory controller and a security method used in a write area security system.
  • Patent Document 1 An example of a technology for downloading data from a server to an IC card of a mobile terminal is disclosed in, for example, Japanese Patent Application Laid-Open No. 2 0 2-2 8 1 1 8 1 published on September 27, 2000 (Patent Document 1).
  • the IC card has a file structure protected by an access key for each file, and read when the IC card is accessed to read and rewrite the contents of the file.
  • ⁇ And 'Writable keys are managed only by the host server. Addition and modification of the contents written on the IC card can be performed only by a write command from the host server after online connection with the host server through a mobile terminal, that is, a lead sent in addition to the command.
  • ⁇ And writable key is verified on the IC card side, and the file can be accessed only when the verification matches.
  • the data written on the IC card is read by the readable key of the portable terminal.
  • Patent Document 1 In the technology of Patent Document 1, the security of writing to an IC card is only applied by a read-and-write key for each file. In Patent Document 1, security is applied by a read-and-write key. There is no idea of dividing it into a separate area. Therefore, if this security is broken, a large amount of data can be written to the IC card. In addition, since there is no mechanism for confirming whether the written data is legitimate data, even if the data is written incorrectly, it is used on the mobile terminal. Summary of the Invention
  • a main object of the present invention is to provide a novel write area security system, and a memory controller and security method used therefor.
  • Another object of the present invention is to provide a write area security system capable of preventing the unintended data from being used even if unintended data is written to the write area. 7 067559 to provide a memory controller and a security method.
  • the present invention employs the following configuration. Note that reference numerals and supplementary explanations in parentheses indicate a correspondence relationship with embodiments described later to help understanding of the present invention, and do not limit the present invention.
  • a first invention is a write area security system including a storage means having a predetermined write area, a control means for controlling writing and reading of the storage means, and a host connected to the control means.
  • the host includes command transmission means for transmitting a command for reading data stored in a predetermined write area to the control means.
  • the control means includes a format judgment means for judging whether or not the data read from the predetermined write area in accordance with the read command has a predetermined format, and the format judgment means has a predetermined format. It includes output means for outputting data to the host only when it is determined.
  • the write area security system (1 0, 1 0 0) includes a storage means (6 4), a control means (6 2), and a host (3 4).
  • the storage means is provided with a predetermined write area (2 0 6).
  • the control means controls writing to and reading from the storage means.
  • the host is a host computer, a host CPU, a host processor, or the like that controls the entire system, and can be connected to the control means to control the control means.
  • the host includes command transmission means (S 50 7), and transmits a data read command stored in a predetermined write area to the control means.
  • the control means includes format determination means (S 6 2 1, S 6 2 3), and determines whether or not the data read from the predetermined write area in accordance with the read command is in the predetermined format.
  • the control means further includes an output means (S 6 25), and outputs the read data to the host only when the format determination means determines that the read data is in a predetermined format.
  • the data read from the predetermined write area is in a predetermined format, and only data having the predetermined format is output to the host. Therefore, even if data that does not have a predetermined format is written in a predetermined write area, the data is not output to the host, so that unintended data can be prevented from being used illegally.
  • the second invention is a write area security system subordinate to the first invention, wherein the storage means has a first area and a second area, and the control means responds to the first transition command.
  • the first writing means for writing the data to the first area is further included, and the format determination means performs processing on the data read from the second area as the predetermined writing area. Only whether the data is in a predetermined format.
  • the storage means is provided with a first area (2 0 4) and a second area (2 0 6).
  • the control means further includes first writing means (S83, S26.7), and writes data to the first area in the writable mode that is changed according to the first transition command.
  • the format determining means determines whether or not the data has a predetermined format only for the data read from the second area as the predetermined writing area.
  • security can be applied only to a predetermined write area of the storage means by format determination, and security can be applied to other areas by transition to a writable mode. Can be written. Therefore, appropriate writing can be performed by using different write areas according to the purpose of writing.
  • the third invention is a write area security system subordinate to the first invention, wherein the control means determines whether the read address specified by the host is within an accessible area of the predetermined write area. Address determination means for determining whether or not the read address is within the area by the address determination means, and the format determination means determines whether or not the read data is in a predetermined format.
  • control means further includes an address determination means (S 6 19), and whether or not the specified read address is within an accessible area of the predetermined write area. Determine whether. When it is determined that the read address is within the accessible area, it is determined whether or not the read data is in a predetermined format.
  • the third aspect of the present invention it is possible to determine whether or not the data has a predetermined format only for data that has been appropriately designated for reading.
  • a fourth aspect of the invention is a write area security system subordinate to the first aspect of the invention, wherein the format determining means makes a determination by checking the parity of the read data.
  • the format determining means makes a determination by checking the parity of the read data.
  • a fifth aspect of the invention is a write area security system subordinate to the first aspect of the invention, wherein the control means switches to the illegal mode when the format judgment means judges that the read data is not in a predetermined format. Transition.
  • the control means shifts to the illegal mode. Therefore, it is possible to prevent data from being read from a predetermined writing area, and to prevent illegally written data from being used.
  • a sixth invention is a write area security system subordinate to the first invention, wherein the host includes write data generation means for generating data to which a parity bit is added, and the control means is write data generation means Includes a second writing means for writing the data generated by the above to a predetermined writing area.
  • the host includes write data generating means (S 4 0 3), Generate 9-digit data. For example, the first 7 bits of each byte are data generated to write to the specified write area, and the parity of the first 7 bits is added to the last bit.
  • the control means further includes second write means (S 4 0 9), and writes the generated data with parity in a predetermined write area.
  • the write data when writing to a predetermined write area, can be converted into data with parity bits added and then written to the predetermined area. Therefore, when reading from a predetermined writing area, it is determined that the data is valid data having a predetermined format and is output to the host.
  • a seventh invention is a write area security system subordinate to the second invention, and the storage means stores boundary data of the first area and the second area.
  • the storage means stores boundary data of the first area and the second area.
  • the control means can grasp and access each of the first area and the second area by referring to the boundary data of the first area and the boundary data of the second area, respectively.
  • An eighth invention is a write area security system subordinate to the second invention, and includes a server and an information processing device for downloading data from the server.
  • the information processing apparatus includes storage means, control means, and a host.
  • the server transmits a transition command transmitting means for transmitting the first transition command for transitioning the control means to a mode writable to the first area of the storage means to the information processing apparatus, and transmits data to be downloaded to the information processing apparatus.
  • Data transmission means is a write area security system subordinate to the second invention, and includes a server and an information processing device for downloading data from the server.
  • the information processing apparatus includes storage means, control means, and a host.
  • the server transmits a transition command transmitting means for transmitting the first transition command for transitioning the control means to a mode writable to the first area of the storage means to the information processing apparatus, and transmits data to be downloaded to the information processing apparatus.
  • Data transmission means is a write area security system subordinate to the second invention, and includes a server
  • the system (1 0 0) includes a server (1 0 2) and an information processing device (1 0).
  • the information processing apparatus includes the above-described storage unit, control unit, and host, and downloads data from the server.
  • the downloaded data is written in the first area of the storage means.
  • the first writing means writes the data to the first area in the writable mode that is shifted in response to the first transition command.
  • the server includes a transition command transmission unit (S 3 3, S 3 2 3), and transmits a first transition command that causes the control unit to transition to a mode writable in the first area to the information processing apparatus.
  • the supporter further includes data transmission means (S 67, S 3 4 1), and transmits data to be downloaded to the information processing apparatus.
  • data can be written to the first area in a stepwise security by transitioning to a writable mode in response to the first transition command from the server.
  • the second area can be secured by format judgment.
  • a ninth invention is a write area security system according to the eighth invention, wherein the server further includes an encryption means for encrypting the first transition command.
  • Transition command sender The stage transmits the first transition command encrypted by the encryption means, and the control means further includes decryption means for decrypting the encrypted first transition command.
  • the server further includes an encryption means (S 3 1), and encrypts the first transition command.
  • This encrypted first transition command is transmitted by the transition command transmitting means.
  • the control means further includes decryption means (S 3 7, S 2 2 7), and decrypts the encrypted first transition command.
  • the degree of security against mode transition can be increased.
  • a tenth aspect of the invention is a write area security system according to the eighth aspect of the invention, wherein the first transition command includes an address designated for writing data to be downloaded.
  • the control means further includes a write enable means for enabling writing of only a specified address in the first area when the mode is changed to a writable mode in the first area in response to the first transition command.
  • an address for writing data can be specified in the first transition command.
  • the control means further includes a write enable means (S 45, S 2 37), which enables writing only the specified address in the first area.
  • the tenth aspect of the present invention it is possible to make a transition to the writable mode by the first transition command, and it is possible to write only the address specified by the command.
  • the 11th invention is a write area security system subordinate to the 10th invention, and the writable means makes it possible to write a certain range from a specified address in the first area.
  • the mode can be changed to a writable mode by the first transition command, and a certain range can be written from a specified address in the first area.
  • the 12th invention is a write area security system subordinate to the 9th invention, wherein the control means has a higher degree of security than usual, which is transited at a stage immediately before a mode in which writing to the 1st area is possible.
  • the encrypted first transition command is decrypted by the decryption means.
  • a secure mode having a higher security level than usual is provided immediately before the writable mode.
  • the encrypted first transition command is decrypted. Done.
  • the 13th invention is a write area security system subordinate to the 9th invention, wherein the server has a first key for encryption of the first transition command, and encryption of data to be downloaded different from the first key.
  • the encryption means encrypts the first transition command using the first key.
  • the data transmission means transmits the data to be downloaded encrypted using the second key.
  • the storage means stores the first key and the second key.
  • the decryption means decrypts the encrypted first transition command using the first key.
  • the first writing means decrypts the encrypted data to be downloaded using the second key and writes it in the first area in a mode in which writing to the first area is possible.
  • the first key for encryption of the first transition command and the second key for encryption of data to be downloaded are stored in the server and the storage means. Is done.
  • the server and the control means have a common key (first key) for the first transition command and a common key (second key) for the data to be downloaded.
  • the first transition command encrypted and transmitted with the first key by the server is decrypted with the first key by the control means, and the control means transits to a writable mode by the first transition command.
  • the download data encrypted and transmitted with the second key by the server is decrypted by the control means with the second key and written in the first area in the writable mode.
  • separate security can be applied to the mode transition and the download data, and the degree of security can be further increased.
  • the 14th invention is a write area security system subordinate to the 13th invention, and the server further stores a third key for message digest authentication of data to be downloaded.
  • the data transmitting means encrypts the data to be downloaded with the authentication symbol generated using the third key, using the second key, and transmits the encrypted data.
  • the storage means further stores a third key.
  • the control means decrypts the encrypted data using the second key in a mode in which the data can be written to the first area.
  • the first writing means writes the data into the first area when the decrypted data is authenticated using the third key.
  • the third key for message digest authentication of the data to be downloaded is stored in the server and the storage means.
  • the server encrypts the data with the authentication symbol (MIC) generated using the third key and encrypts it with the second key, and transmits it.
  • the control means decrypts the encrypted data with the second key in the writable mode. When the decrypted data is authenticated using the third key, the data is written to the first area.
  • message digest authentication can be performed on data to be downloaded.
  • the 15th invention is a writing area security system subordinate to the 14th invention, wherein the third key is a key obtained by replacing a part of the second key.
  • the third key for message digest authentication is a key obtained by partial replacement of the second key for encryption of data to be downloaded. Therefore, if the same part is shared by the second key and the third key, the size of the area for storing the key can be suppressed, and the cost can be reduced.
  • the 16th invention is a writing area security system subordinate to the 12th invention, and the storage means stores the encrypted first key and second key.
  • the control means decrypts the encrypted first key when it transits to the secure mode, expands it into the RAM, and decrypts the encrypted second key when transits to the mode in which it can be written to the first area. And deploy to Ram.
  • the first key and the second key are encrypted and stored in the storage means.
  • the first key is decrypted by the control means and automatically expanded in the RAM.
  • the second key is decrypted by the control means. Automatically expanded to RAM.
  • the first key or the second key corresponding to the mode can be decrypted and expanded in the RAM.
  • a seventeenth invention is a write area security system subordinate to the sixteenth invention, wherein the control means expands the first key in response to a second transition command for transitioning to the secure mode, 1 Expand the second key according to the transition command.
  • the first key or the second key is decrypted and expanded.
  • the first key or the second key corresponding to the mode can be decrypted and expanded according to the transition command.
  • the 18th invention is a write area security system subordinate to the 8th invention, wherein the host encrypts a command for the control means in a normal mode according to an algorithm with a relatively light processing load. And further comprising:
  • the normal encryption means can encrypt the command issued to the control means in the normal mode according to an algorithm with a relatively light processing load.
  • the nineteenth invention is a write area security system according to the eighth invention, wherein the host further includes a write issuing means for issuing a write command to instruct the control means to write, and the control means comprises In the mode in which data can be written to the first area, the data to be downloaded is written to the first area according to the write command.
  • the host further includes write issuing means (S 7 3, SI 4 3), T JP2007 / 067559 Issues a write command to the control means.
  • the control means writes data according to the write command in the writable mode.
  • data downloaded from the server can be written to the first area in accordance with a write instruction from the host. Since data transmission and writing are processed separately, the level of security can be increased.
  • a 20th invention is a write area security system according to the 9th invention, wherein the storage means stores identification information of the storage means.
  • the information processing apparatus includes identification information transmitting means for transmitting the identification information stored in the storage means to the server.
  • the server stores a plurality of first keys for encryption of the first transition command associated with a plurality of pieces of identification information.
  • the encryption means encrypts the first transition command using the first key corresponding to the identification information of the storage means.
  • the storage means stores identification information of the storage means. This identification information is transmitted to the server by the identification information transmitting means (S 5, S 1 0 5).
  • the server stores a plurality of first keys associated with a plurality of identification information. That is, the first key for encryption of the first transition command is prepared for each storage means and stored in the storage means and the server. The first transition command is encrypted by the encryption means using the first key corresponding to the received identification information.
  • the first transition command can be encrypted by the first key for each storage means, and the control means can be shifted to a writable mode by the first transition command.
  • the degree of security can be increased.
  • the 21st invention is a writing area security system subordinate to the 9th invention, and the storage means stores the identification information of the application program stored in the storage means.
  • the information processing apparatus includes identification information transmitting means for transmitting the identification information stored in the storage means to the server.
  • the server stores a plurality of first keys for encryption of the first transition command associated with a plurality of identification information.
  • the encryption means encrypts the first transition command using the first key corresponding to the received identification information of the application program.
  • the storage means stores the identification information of the application program stored in the storage means. This identification information is transmitted to the server by the identification information transmitting means (S 1 0 5).
  • the server stores a plurality of first keys associated with a plurality of identification information. That is, the first key for encryption of the first transition command is prepared for each application (game) and stored in the storage means and the server. The first transition command is encrypted by the encryption means using the first key corresponding to the received identification information.
  • the first transition command can be encrypted by the first key for each application, and the control means can be written by the first transition command.
  • Security level can be increased.
  • a second invention is a write area security system subordinate to the first invention, and the storage means and the control means are provided in a storage medium that can be mounted.
  • the storage means and the control means are provided in the storage medium (2 8) that can be attached to the system. Therefore, security by format determination can be applied to a predetermined write area of the storage means provided in the storage medium.
  • the 23rd invention is a memory controller that is used in a write area security system including a storage means having a predetermined write area and a host, and controls writing and reading with respect to the storage means.
  • the memory controller determines whether or not the data read from the predetermined write area in accordance with a read command from the host is in a predetermined format, and the data is determined in a predetermined format by the format determination means.
  • Output means for outputting data to the host only when it is determined to be.
  • the memory controller (6 2) is used in the write area security system (1 0, 1 0 0) including the storage means (6 4) and the host (3 4).
  • the memory controller controls writing to and reading from the storage means having a predetermined write area (2 0 6).
  • the memory controller includes format determination means (S 6 2 1, S 6 2 3), and data read from a predetermined write area in accordance with a read command from the host has a predetermined format. It is determined whether or not.
  • the memory controller further includes output means (S 6 25), and outputs the data to the host only when it is determined that the data has a predetermined format.
  • the 24th invention is a security method in a write area security system including a storage means having a predetermined write area, a control means for controlling writing and reading to the storage means, and a host connected to the control means.
  • the security method includes the step of determining whether or not the data read from the predetermined write area in accordance with the read command from the host is in a predetermined format, and the data is in a predetermined format Only when it is determined, the control means includes a step of outputting data to the host.
  • the security method is a predetermined write in the write area security system (1 0, 1 0 0) including the storage means (6 4), the control means (6 2) and the host (3 4).
  • This is a security method for the area (2 0 6).
  • the control means determines whether or not the data read from the predetermined write area has a predetermined format in response to a read command from the host (S 6 2 1, S 6 2 3). Then, the control means outputs the data to the host only when it is determined that the data has a predetermined format (S 6 25). According to the 24th invention, it is possible to realize the writing area security system as in the first invention described above.
  • the present invention when data is read from a predetermined write area, it is determined whether or not the data is in a predetermined format, and is output to the host only when the data is in a predetermined format. Therefore, if unintentional data is written to the specified write area, the data is not output to the host. Therefore, even if unintended data is written in a predetermined write area, it is possible to prevent the data from being used illegally.
  • FIG. 1 is an illustrative view showing one embodiment of a security system of the present invention.
  • FIG. 2 is an illustrative view showing the game apparatus shown in FIG.
  • FIG. 3 is a block diagram showing an example of the electrical configuration of the game apparatus shown in FIG.
  • FIG. 4 is an illustrative view showing one example of a memory map of the flash memory shown in FIG.
  • FIG. 5 is an illustrative view showing an outline of mode transition of the memory controller shown in FIG.
  • Figure 6 is an illustrative view showing changes in the memory map of the flash memory when transitioning to the download mode.
  • Fig. 7 is an illustrative view showing changes in the memory map of the flash memory when transitioning to the backup mode.
  • FIG. 8 is an illustrative view showing one example of a memory map of the information region shown in FIG.
  • FIG. 9 is an illustrative view showing one example of a memory map of the internal RAM of the memory controller.
  • FIG. 10 is an illustrative view showing a change in the memory map of the key storage area shown in FIG.
  • FIG. 11 is an illustrative view showing an example of a data base of the server shown in FIG.
  • FIG. 12 is an illustrative view showing an example of a memory map of the RAM of the server.
  • FIG. 13 is an illustrative view showing an example of a RAM memory map of the game device during the download process.
  • FIG. 14 is an illustrative view showing an example of a RAM memory map of the game device during the backup process.
  • Figure 15 is an illustrative view showing an example of data with parity written in the backup area.
  • FIG. 16 is a flowchart showing a part of an example of the operation of the system during the download process.
  • FIG. 17 is a flowchart showing part of the continuation of FIG.
  • FIG. 18 is a flowchart showing a part of the continuation of FIG. 7559
  • FIG. 19 is a flowchart showing the continuation of FIG.
  • FIG. 20 is a flowchart showing a part of an example of the operation of the game device during the download process.
  • FIG. 21 is a flowchart showing a part of the continuation of FIG.
  • FIG. 22 is a flowchart showing the continuation of FIG.
  • FIG. 23 is a flowchart showing a part of an example of the operation of the memory controller during the download process.
  • FIG. 24 is a flowchart showing part of the continuation of FIG.
  • FIG. 25 is a flowchart showing part of the continuation of FIG.
  • FIG. 26 is a flowchart showing the continuation of FIG.
  • FIG. 27 is a flowchart showing a part of an example of the operation of the server during the download process.
  • FIG. 28 is a flowchart showing part of the continuation of FIG.
  • FIG. 29 is a flowchart showing the continuation of FIG.
  • FIG. 30 is a flowchart showing an example of the operation of the game device at the time of backup writing.
  • FIG. 31 is a flowchart showing an example of the operation of the game device at the time of backup reading.
  • FIG. 32 is a flowchart showing a part of an example of the operation of the memory controller in the backup mode.
  • FIG. 33 is a flowchart showing the continuation of FIG. BEST MODE FOR CARRYING OUT THE INVENTION
  • a security system according to an embodiment of the present invention (hereinafter simply referred to as “system”) 1 0 0 includes information processing apparatus 1 0 and server 1 0 2.
  • the information processing apparatus 10 downloads data from the server 10 0 2 and stores the data in a predetermined storage area.
  • the system 100 in this embodiment is a download security system, and is intended to prevent a predetermined storage area for writing downloaded data from being used by unauthorized download.
  • the information processing apparatus 10 also functions as a write area security system for backup devices, and prevents unauthorized use of a predetermined storage area for writing backup data. .
  • the system 100 may function as a write area security system for backup data.
  • the information processing device 10 is realized in the form of a portable game device in this embodiment, but in other embodiments, other information such as a portable information terminal, a mobile phone, a personal computer, or a stationary game device is used. It may be a computer of the form.
  • the server 102 is a computer and includes a CPU, a RAM, a ROM, an HDD, a communication device, and the like, although not shown.
  • An information processing device that is, a game device 10 has an access point 10 4 and a network 67559 can be connected to the server 102 via the connection 106.
  • the network 106 may be, for example, a wide area network (WAN), the Internet, or a local area network (LAN).
  • WAN wide area network
  • LAN local area network
  • the game device 10 downloads data from the server 102, it connects to the access point 104 by wireless (or wired), and communicates with the server 102 on the network 106 via the access point 104.
  • the game apparatus 10 acquires the IP addresses of the access point 104 and the server 102 by user input or list selection.
  • game device 10 includes a first liquid crystal display (LCD) 12 and a second LCD 14.
  • the LCD 12 and the LCD 14 are accommodated in the housing 16 so as to be in a predetermined arrangement position.
  • the housing 16 includes an upper housing 16a and a lower housing 16b, the LCD 12 is stored in the upper housing 16a, and the LCD 14 is stored in the lower housing 16b. Therefore, the LCD 12 and the LCD 14 are arranged close to each other so as to be arranged vertically (up and down).
  • an LCD is used as the display, but an EL (Electronic Luminescence) display or a plasma display may be used instead of the LCD.
  • EL Electro Luminescence
  • the upper housing 16a has a planar shape slightly larger than the planar shape of the LCD 12, and an opening is formed so as to expose the display surface of the LCD 12 from the main surface.
  • the planar shape and size of the lower housing 16b are also selected to be the same as the upper housing 16a, and an opening is formed so as to expose the display surface of the LCD 14 at a substantially central portion in the horizontal direction.
  • a power switch 18 is provided on the right side surface of the lower housing 16b.
  • the upper housing 16a is provided with sound release holes 20a and 20b for the speakers 36a and 36b (see FIG. 3) on the left and right sides of the LCD 12.
  • the lower side (lower end) of the upper housing 16a and a part of the upper side (upper end) of the lower housing 16b are rotatably connected.
  • the upper housing 16a when not playing a game, the upper housing 16a can be rotated and folded so that the display surface of the LCD 12 and the display surface of the LCD 14 face each other. Damage to the display surface and the display surface of L CD 14 can be prevented.
  • the upper housing 16a and the lower housing 16b may not be rotatably connected but may form the housing 16 provided integrally (fixed).
  • a microphone hole 20c for a microphone (not shown) is formed in the center of the connecting portion between the upper housing 16a and the lower housing 16b.
  • Game processing can be performed on the basis of sound signals taken from a microphone, sound or breath signals.
  • Operation switch 2 2 consists of direction indicator switch (cross switch) 2 2 a, start switch 2 2 b, select switch 2 2 c, operation switch (A button) 2 2 d, operation switch (B button) 2 2 e, Operation switch (X button) 2 2 f, operation switch (Y button) 2 2 g, operation switch (L button) 2 2 L and operation switch (R button) 2 2 R
  • the switch 2 2 a is one main surface of the lower housing 16 b and is arranged on the left side of the L CD 14.
  • the other switch 2 2 b— 2 2 g is one main surface of the lower housing 16 b and is arranged on the right side of the L CD 14.
  • the operation switches 2 2 L and 2 2 R are arranged at the left and right corners of the upper end surface of the lower housing 16 b, respectively. Note that the operation switches 2 2 L and 2 2 R are provided on the back surface of the lower housing 16 b, and are hidden behind the connecting portion in the front view as shown in FIG.
  • the direction indicating switch 2 2 a functions as a digital joystick, and by operating one of the four pressing parts, the traveling direction of the player object (or player character) that can be operated by the user or the player (moving direction) This is used to indicate the direction of the cursor or the direction of the cursor.
  • Each pressing part can be assigned a specific role, and the assigned role can be instructed (designated) by operating one of the four pressing parts.
  • the start switch 2 2 b consists of push buttons, and is used to start (resume) or pause the game.
  • the select switch 2 2 c is composed of a push button and is used for selecting a game mode.
  • Motion switch 2 2 d or A button is composed of push buttons, and performs actions other than direction indications, that is, arbitrary actions such as hitting (punching), throwing, grabbing (obtaining), riding, jumping, etc. be able to. For example, in an action game, you can instruct jumps, punches, move weapons, and so on. Also, in role-playing games (RPG) and simulation RPGs, it is possible to instruct acquisition of items, selection and determination of weapons and commands, and the like.
  • the operation switch 2 2 e or B button is composed of push buttons, and is used to change the game mode selected by the select switch 2 2 c or cancel the action determined by the A button 2 2 d.
  • the movement switch 2 2 f or X button and the movement switch 2 2 g or Y button are composed of push buttons.
  • a button 2 2 d and B button 2 2 e alone cannot be used, Used for various operations.
  • X button 2 2 f and Y button 2 2 g can be used for the same operation as A button 2 2 d and B button 2 2 e.
  • the X button 2 2 f and the Y button 2 2 g are not necessarily used in game play.
  • the L button 22L and the R button 22R can change the roles assigned to the direction switch 22a, A button 22d, B button 22e, X button 22f, Y button 22g to other roles. it can.
  • An evening panel 24 is mounted on the upper surface of the LCD 14.
  • a resistive film type for example, a resistive film type, an optical type (infrared type), or a capacitive coupling type can be used.
  • the touch panel 24 should be pressed, stroked, or touched with a stick 26 or a pen (stylus pen) or a finger (hereinafter sometimes referred to as “stick 26 etc.”).
  • stick 26 etc. When operated by (touch input), the coordinates of the operation position of the stick 26, etc. are detected, and the coordinate data corresponding to the detected coordinates are output.
  • the resolution of the display surface of LCD 14 (LCD 12 is the same or substantially the same) is 256 dots x 92 dots.
  • the detection accuracy of the evening panel 24 is also set to 256 dots X 192 dots corresponding to the display screen, but the detection accuracy of the evening panel 24 may be lower or higher than the resolution of the display screen.
  • Different game screens can be displayed on the LCD 12 and the LCD 14.
  • a screen from the driver's point of view can be displayed on one LCD, and the entire race (course) screen can be displayed on the other LCD.
  • characters such as maps and small player objects can be displayed on one LCD, and items owned by player objects can be displayed on the other LCD.
  • to display a game screen including a non-player object or the like on one LCD and to operate another game screen including the information related to the non-player object or the player object on the other LCD
  • the operation screen can be displayed.
  • the two LCDs 12 and 14 as one screen, it is possible to display a huge monster (enemy object) that the player object must defeat.
  • the player operates the evening panel 24 with the stick 26 or the like to instruct (operate) the image of the player object, enemy object, item object, operation object, etc. displayed on the screen of the LCD 14 or select a command.
  • the direction of the virtual camera (viewpoint) provided in the virtual game space (three-dimensional game space) can be changed, or the direction of the game screen (map) can be changed.
  • You can also give instructions.
  • other input instructions can be given by using the evening panel 24. For example, characters, numbers, symbols, etc. can be input by handwriting on the evening panel 24 on the LCD 14.
  • the game apparatus 10 includes the LCD 12 and the LCD 14 which are display units for two screens, and the evening panel 24 is provided on the upper surface of either one (in this embodiment, the LCD 14). It has a configuration with two screens (12, 14) and two operation sections (22, 24).
  • first LCD 12 and the second LCD 14 are arranged side by side in the vertical direction, but the arrangement of the two LCDs can be changed as appropriate.
  • first LCD 12 and the second LCD 14 may be arranged side by side in the horizontal direction.
  • two LCDs are provided, but the number of LCDs as display means can be changed as appropriate.
  • a single vertically long LCD may be provided, and the display area may be divided into upper and lower parts so that two game screens are displayed in the respective display areas.
  • An LCD may be provided so that the display area is divided into left and right, and two game screens are displayed in the respective display areas.
  • the stick 26 can be stored in, for example, a storage portion (not shown) provided in the lower housing 16b, and taken out as necessary. However, if the stick 26 is not provided, it is not necessary to provide the storage part.
  • the game apparatus 10 includes a memory card (or cartridge) 28.
  • the memory card 28 is a storage medium that can be attached to the game apparatus 10, and an insertion portion 30 (FIG. 2) provided on the upper end surface of the lower housing 16b.
  • a connector 32 (see FIG. 3) for joining to the connector 60 provided at the leading end of the memory card 28 in the insertion direction is provided at the back of the insertion portion 30. Therefore, the memory card 28 is When inserted into the connector 30, the connectors are joined, and the CPU 34 (see FIG. 3) of the game apparatus 10 can access the memory card 28.
  • FIG. 3 is a block diagram showing an electrical configuration of the game apparatus 10.
  • game device 10 includes an electronic circuit board 38, on which circuit components such as the above-mentioned C P U 3 4 are mounted.
  • the CPU 34 is connected to the connector 32 via the nose 40, and also includes a RAM 42, a first graphics processing unit (GPU) 44, a second GPU 46, an input / output interface circuit (hereinafter referred to as “IZF circuit ”48) Connected to LCD controller 50 and wireless communication unit 58.
  • the memory card 28 is detachably connected to the connector 32.
  • the memory card 28 includes a memory controller 62 and a flash memory 64, and the memory controller 62 is connected to the flash memory 64 and the connector 60 via a bus. Therefore, as described above, the CPU 34 can access the flash memory 64 via the memory controller 62.
  • the memory controller 62 is a control device that controls writing and reading of the flash memory 64.
  • the memory controller 66 has a RAM 66 as an internal memory.
  • the flash memory 64 is used for game programs, image data (character object images, background images, item images, icon (button) images, message images, etc.) and games for games to be executed on the game device 10. Necessary sound (music) data (sound data) is stored in advance. As will be described later, the flash memory 64 is provided with an area for storing downloaded data and an area for storing backup data such as mid-game data and game result data. It has been.
  • a NAND flash memory is applied as the flash memory 64. In other embodiments, other non-volatile memories may be applied.
  • the RAM 42 of the game apparatus 10 is used as a buffer memory or a working memory. That is, the CPU 34 loads the game program, image data, and sound data stored in the memory card 28 into the RAM 42 and executes the loaded game program. Further, the CPU 34 executes the game process while storing in the RAM 42 data (game data and flag data) that are temporarily generated in accordance with the progress of the game.
  • game program image data, sound data, and the like are read from the memory card 28 all at once or partially and sequentially and stored in the RAM 42.
  • the game device 10 may execute an application other than the game, and in this case, the flash memory 64 of the memory card 28 stores a program for the application and necessary data such as image data. May be. In addition, sound (music) data may be stored as necessary.
  • Each of the GPU 44 and the GPU 46 forms part of a drawing means, and is configured by, for example, a cinder chip AS I C, receives a graphics command (drawing command) from the CPU 34, and generates image data according to the graphics command.
  • a graphics command drawing command
  • CPU 34 receives a graphics command (drawing command) from the CPU 34, and generates image data according to the graphics command.
  • VRAM first video RAM
  • GPU 44 second VRAM 54
  • image data data such as polygons and textures
  • image data data such as polygons and textures
  • the CPU 3′4 writes image data necessary for drawing into the first VRAM 52 and the second VRAM 54 via the GPU 44 and the GPU 46.
  • 0? 1144 accesses ⁇ 1 ⁇ 81 ⁇ 5 2 to create image data for drawing, and stores the image data in the VRAM 52 drawing buffer.
  • the GPU 46 accesses the VRAM 54 to create image data for drawing, and stores the image data in the VRAM 54 drawing buffer.
  • a frame buffer, a line buffer, or the like may be employed as the drawing buffer.
  • the VRAM 52 and VRAM 54 are connected to the LCD controller 50.
  • the LCD controller 50 includes a register 56, and the register 56 is composed of 1 bit, for example, and stores a value (data value) of “0” or “1” according to an instruction from the CPU 34.
  • the LCD controller 50 When the data value of the register 56 is “0”, the LCD controller 50 outputs the image data created by the GPU 44 to the LCD 12, and outputs the image data created by the GPU 46 to the LCD 14. .
  • the overnight value of the register 56 is “1”
  • the LCD controller 50 outputs the image data created by the GPU 44 to the LCD 14 and the image data created by the GPU 46 to the LCD 12. Output.
  • the LCD controller 50 reads the image data directly from the VRAM 52 and the VRAM 54, or reads the image data from the VRAM 52 and the VRAM 54 via the GPU 44 and the GPU 46.
  • VRAM 52 and the VRAM 54 may be provided in the RAM 42, or the drawing buffer and the Z buffer thereof may be provided in the RAM 42.
  • the 1-circuit 48 is connected to the operation switch 22, the evening switch 24, and the speakers 36a and 36b.
  • the operation switch 22 is the above-described switch 22 a, 22 b, 22 c, 22 d, 22 e, 22 g, 22 L, and 22 R.
  • the operation switch 22 When the operation switch 22 is operated, the corresponding operation is performed. Is the signal (operation data) sent via I-no-F circuit 48? 1; Input into 34. Also, coordinate data from the evening panel 24 is input to the CPU 34 via the IZF circuit 48.
  • the CPU 34 reads out sound data necessary for the game, such as game music (BGM), sound effects or game character sound (pseudo-sound), from the RAM 42, and through the IZF circuit 48, the speaker 36a, The sound is output from 36b.
  • sound data necessary for the game such as game music (BGM), sound effects or game character sound (pseudo-sound)
  • the wireless communication unit 58 is a communication means for transmitting / receiving data wirelessly to / from other game devices 10 and communication devices. Note that the weak radio waves transmitted and received by the game apparatus 10 are set to a strength that is not regulated by the Radio Law.
  • the wireless communication unit 58 modulates the data sent to the other party into a wireless signal and transmits it from the antenna.
  • the wireless communication unit 58 receives a radio signal from the other party with the same antenna, demodulates it into data, and gives the data to the CPU 34.
  • the game device 10 can be connected to other game devices 10 overnight. It is possible to execute a communication game while communicating.
  • the game device 10 can be connected to the access point 10 4-and the network 10 6 via the wireless communication unit 58, and from the server 1 0 2 on the network 1 0 6 It is possible to download programs and data and communicate with other game devices 10 via the network 106.
  • a predetermined area for writing data downloaded from the server 10 2 is provided in the flash memory 64 of the memory card 28.
  • a predetermined area for writing backup data generated during the execution of the game (application) is provided in the flash memory 64.
  • Figure 4 shows an example of the memory map of flash memory 64.
  • the flash memory 64 is provided with an information area 200, a game area 202, a download area 2004, a backup area 20.6, and the like. Note that FIG. 4 shows a part of the memory map, and other areas can be provided.
  • the download area 20 4 is an area for writing data downloaded from the server 102
  • the backup area 2 06 is an area for writing a backup item.
  • the information area 200 header information and predetermined data of the flash memory 64 are stored in advance as shown in FIG.
  • game programs and data are stored in advance.
  • the game program includes, for example, a game processing program, a download processing program, and a backup processing program.
  • the operation of the memory controller 62 is controlled in accordance with the mode so that stepwise security can be applied to the write area provided in the flash memory 64.
  • the operations that can be performed by the memory controller 62 are limited, and it is necessary to switch modes to perform the required operations.
  • Figure 5 shows an overview of the mode transitions of the memory controller 62.
  • the memory controller 62 has a game mode, a DL (Download) secure mode, a download mode, a backup mode, and the like.
  • the memory controller 62 shifts its mode in response to various transition commands given from the outside (the host CPU 3 4 4 or the server 1 0 2 on the network 10 6).
  • the CPU 34 issues a transition command by executing an application program stored in the memory card 28 (which may be a program stored in the game device 10).
  • the game mode is a normal mode.
  • the memory controller 62 is supplied with power from the game apparatus 10 and the memory controller 62 is activated.
  • the memory controller 62 is placed in this game mode and is basically in this game mode while the game is running (more specifically, when it is not necessary to write data to the flash memory). Flash while the game is running In this game mode, it is desirable to be able to read from the flash memory 64 at a high speed because it is necessary to read the program and data from the memory 64 as needed. For this reason, in this game mode, the command given to the memory controller 62 does not have to be encrypted.
  • the flash memory 64 In order to download data from the server 102 according to the player's selection or program during the game execution, the flash memory 64 is provided with a download area 204 for writing the downloaded data.
  • the memory controller 62 When downloading, it is necessary to increase the security level in order to protect the flash memory 64 from unauthorized access. Therefore, the memory controller 62 is changed from a game mode in which access to the flash memory 64 is easy to a mode with high security.
  • DL secure mode is interposed.
  • the gCHG-DL-MODE command is a transition command for making a transition from the game mode to the DL secure mode, and is issued by the CPU 34 of the game apparatus 10.
  • DL secure mode is a mode provided to increase the security level during download.
  • commands given to the memory controller 62 are encrypted.
  • the encrypted ds CHG-MODE command is given to the memory controller 62.
  • the ds CHG-MODE command is a transition command for transition from DL secure mode to download mode.
  • the transition command to the download mode is not issued from the CPU 34 of the game apparatus 10, but is encrypted by the server 102 and transmitted from the server 102.
  • the CPU 34 of the game apparatus 10 cannot generate the ds CHG-MODE command. This is because the ds CHG-MODE command is to be given to the memory controller 62 in an encrypted state, and the CPU 34 of the game device 10 does not have a key for the encryption. is there.
  • the memory controller 62 decrypts the command received in DL secure mode, and if the command is a ds CHG MODE command, the memory controller 62 Transition to the mode. For encryption of this transition command, the server 102 and the memory card 28 store a common key.
  • a transition command to DL secure mode is issued from the host CPU 34, and a transition command to download mode is issued from the server 102.
  • the download mode is achieved by the cooperation of the CPU 34 and the server 102. Since the transition to is enabled, the degree of security can be further increased.
  • download mode data downloaded from the server is written to the download area 204. The downloaded data is encrypted and transmitted by the server, and the received data is decrypted by the memory controller 62. In this way, security can be applied to the downloaded data.
  • the encryption key in DL secure mode and the encryption key in download mode are changed, there is a second level of security, and it is possible to apply different security to transition commands and data. it can.
  • the download data is encrypted by the server as described above, and the CPU 34 transfers the encrypted data to the memory controller 62 when receiving the encrypted data.
  • the CPU 34 issues a write command (dWR—PAGE command).
  • the memory controller 62 executes a process for writing data, such as data decoding. If it is authenticated that the received data is valid data, the memory controller 62 writes the data into the download area 204. Writing to this download area 204 is possible only in the download mode.
  • the memory controller 62 accepts the write command issued by the CPU 34 only in the download mode. Therefore, the write to the download area 204 cannot be performed in other modes.
  • the memory controller 62 shifts to the game mode in response to the d 1 CHG-MODE command.
  • the d 1 CHG-MODE command is a transition command for making a transition from the download mode to the game mode, and is issued from the CPU 34.
  • FIG. 6 shows a change in the memory map of the flash memory 64 when transitioning to the download mode.
  • the game area 202 and the download area 204 can only be read.
  • the entire area becomes unreadable and writable.
  • the encrypted ds CHG 67559 In such a state where access to the entire area of the flash memory 64 is disabled, the encrypted ds CHG 67559
  • the download area 202 is made accessible. Moreover, in this embodiment, only the block designated by the d s CHG-MODE command in the download area 202 is made accessible. In this way, according to the mode transition, the read / write state is changed for each area of the flash memory 64, that is, the memory map is changed for each mode. Can be increased.
  • a backup area 206 for writing the backup data is provided in the flash memory 64. Writing to the backup area 206 itself is local in nature, but program data that is illegally obtained from the network 106 may be written to the backup area 206, for example. In order to prevent unauthorized use of the backup area 206, the security level of the backup area 206 is increased.
  • the memory controller 62 transitions from the game mode to the backup mode in response to the gCHG-BK-MODE command.
  • This gCHG-BK1 MODE command is a transition command for making a transition from the game mode to the backup mode, and is issued to the memory controller 62 by the CPU 34 as the host.
  • the memory controller 62 shifts to the game mode.
  • this b C H G_M 0 D E command is a transition command for making a transition from the backup mode to the game mode, and is issued to the memory controller 62 by the host CPU 34.
  • the CPU 34 converts the write data into a predetermined format, and the data in the predetermined format is written into the backup area 206 by the memory controller 62.
  • the memory controller 62 determines whether or not the read data is in a predetermined format. When it is determined that the data is in a predetermined format, the data is output to the CPU 34.
  • the data is regarded as data that has been illegally written in the backup area, and the memory controller 62 transitions to illegal mode.
  • the mode is changed to the illegal mode, the data is not output, and therefore unauthorized use of the backup area can be prevented.
  • the memory controller 62 does not output any data when it is determined that the written data does not have a predetermined format.
  • the memory controller 6 2 may output predetermined data indicating illegal data to the CPU 3 4 so that the CPU 3 4 can recognize that it is illegal write data. . Also in this case, since the written data is not output normally, the backup area 206 can be protected from unauthorized use.
  • FIG. 7 shows a change in the memory map of the flash memory 64 when transitioning to the backup mode.
  • the game area 2 0 2 is in a state in which only reading is possible
  • the backup area 2 0 6 is in a state in which neither reading nor writing is possible.
  • the knock-up area 2 06 is made accessible when transitioning to the backup mode.
  • only the block specified by the g C H G — B K—MOD E command in the backup area 206 is made accessible.
  • the read / write state is changed for each area of the flash memory 64 according to the mode transition, that is, the memory map is changed for each mode. , Can increase the security level.
  • writing to the backup area 206 can be performed only after the transition to the backup mode. This is to prevent data written once at the time of shipment from the factory from being overwritten by mistake.
  • the backup area 206 in the flash memory 64 may be writable even in the game mode.
  • FIG. 8 shows an example of a memory map of the information area 2 0 0 of the flash memory 64.
  • FIG. 8 shows a part of the information area 200, and other necessary data such as a start address of the game area 202 is also stored.
  • the start address of the download area 2 0 4 is stored in advance, and in the storage area 2 1 2, the start address of the backup area 2 0 6 is stored in advance.
  • the size or end address of the download area 20 4 and the backup area 2 06 may be stored.
  • header information data that can distinguish each of the download area 20 4 and the backup area 2 06 from other areas, that is, boundary data of each area may be stored.
  • the memory controller 62 can grasp and access each area by referring to the boundary area of each area.
  • the encrypted key 1 is stored in advance.
  • Key 1 is a key for the D L secure mode (encryption key), that is, a key used in the D L secure mode. With this key 1, the d s C H G—MODE command encrypted by the server 10 2 is decrypted.
  • the flash memory 64 stores the encrypted key, Even if the flash memory 64 is removed from the memory card 28 and the data is read illegally, the contents of the key cannot be read.
  • the encrypted key 2 is stored in advance.
  • Key 2 is a key for the download mode (encryption key), that is, a key used in the download mode. With this key 2, the download data encrypted by the server 10 2 is decrypted.
  • the encrypted key 3 is stored in advance.
  • Key 3 is a key (encryption key) for message digest authentication of download data, that is, to calculate a message integrity code (MIC) as an authentication symbol for download data. Is the key.
  • a configuration in which a part of the key 3 is the same as a part of the key 2 is adopted. That is, key 3 is a key obtained by replacing a part of key 2 (the part excluding the same part).
  • the storage area 2 18 only the remaining part of the key 3 as described above (the part excluding the same part as the key 2) is encrypted and stored.
  • the complete key 3 is required for M I C calculation, the key 3 of the storage area 2 1 8 and the same part of the key 2 are used.
  • the storage area 2 20 stores a unique ID indicating identification information of the memory card 28 (flash memory 6 4).
  • a game ID indicating the game or application identification information of the memory card 28 is stored in the storage area 2 2 2.
  • the game ID may be the title or type of game.
  • a key unique to the memory card 28 is stored in the flash memory 64. That is, keys 1, 2, and 3 corresponding to the unique ID are stored. In another embodiment, keys unique to the game title, ie keys 1, 2 and 3 corresponding to the game ID may be stored.
  • FIG. 9 shows an example of a memory map of the internal RAM 66 of the memory controller 62.
  • FIG. 9 is a part of the memory map of the internal RAM 66.
  • the current mode is stored in the storage area 300. With this mode data, the memory controller 62 can grasp the current mode. When a command is received, the memory controller 62 determines, for example, whether the command is specified to be issued in the current mode before execution of the command. You can do it. This makes it possible to determine the command that has been properly issued.
  • the storage area 3 0 2 is a key storage area.
  • the key corresponding to the current mode is stored.
  • the memory controller 6 2 since each key is encrypted and stored in the information area 2 0 0 of the flash memory 6 4, the memory controller 6 2 operates in the internal RAM 6 6. Read the key into the area, decrypt it, and store the decrypted key in the storage area 3 0 Memorize in 2. Further, each key may be expanded in this storage area 300 when transitioning to each mode according to each transition command.
  • the key storage area 3 0 2 includes the decrypted key 1 and the decrypted key 3 (in this embodiment, strictly speaking, Part of key 3) is memorized.
  • key 1 is a key for DL secure mode, but in this embodiment, even in the game mode, this key 1 is used to encrypt predetermined data (random number and unique ID or game ID). Therefore, the key 1 is already stored in the storage area 30 2 since the game mode. Key 3 remains resident until the power is turned off. Part of this key 3 is smaller than the part shared with key 2, so it is expanded beforehand.
  • the key 1 When transitioning from the game mode to the DL secure mode, the key 1 is read again from the flash memory 64, decrypted, and then expanded in the storage area 302. This is a re-development just in case to consider the case where data in the internal RAM 66 is rewritten due to some accident.
  • key 1 When entering the download mode, key 1 is replaced with key 2. That is, the key 1 is erased from the storage area 30 2, the key 2 is read from the flash memory 6 4 into the central area and decrypted, and the decrypted key is stored in the storage area 3 0 2. Key 1 is stored as is.
  • key 2 is used for encryption of download data in the download mode
  • key 3 is used for MI calculation of download data.
  • the size of the area to be secured for the key storage area 300 can be suppressed.
  • the internal RAM 6 6 Capacitance can be suppressed and costs can be reduced.
  • the complete key 3 may be stored in advance, and the key 3 may be expanded in the key storage area 3002.
  • random numbers are stored in the storage area 3 0 4.
  • the random number is a pseudo-random number and is generated when a predetermined process is executed by the memory controller 62.
  • the storage area 3 06 stores a flag indicating write protection. When this line protector is on, writing to the download area 20 4 of the flash memory 64 is prohibited.
  • FIG. 11 shows an example of data stored in the database of the server 102.
  • This database is stored in HD D or ROM of the server 102.
  • Download data is stored in the database.
  • the download data is data stored in the download area 2 0 4 of the memory card 2 8.
  • a download file associated with a game ID may be prepared for each game title.
  • key data is stored in the database.
  • key 1, key 2 and key 3 are stored in association with the unique ID.
  • part of key 3 is shared with key 2, so only the remaining part may be stored, or complete key 3 may be stored. May be.
  • a key for each game title may be prepared, that is, keys 1, 2, and 3 may be stored in association with the game ID.
  • FIG. 12 shows an example of a RAM memory map of the server 102. Note that this memory map shows a part, and other necessary programs and data are also stored.
  • the storage area 400 is a program storage area in which a program for executing the download process of the server 100 is stored. The program is read from R 0M or HD D.
  • the storage area 402 is a data storage area, and stores data read from ROM, HDD, etc., data generated by the CPU, data received from the game apparatus 10, and the like.
  • the storage area 40 04 stores the first unique ID received, and the storage area 4 06 stores the game ID. Specifically, when the download process is started, the unique ID and the game ID are first transmitted from the game device 10, so that the unique ID and the game ID are stored in the storage areas 4 0 4 and 4 0 6. Is remembered.
  • the storage area 4 0 8 stores the key read from the database.
  • keys 1, 2 and 3 corresponding to the unique ID are stored.
  • a random number and a unique ID are stored in the storage area 4 10. Specifically, after the first unique ID from game device 10, the random number and unique ID encrypted with key 1 are sent from game device 10, so the received data is sent with key 1. The random number and unique ID obtained by decryption are stored in this storage area 4 10.
  • a block address is stored in the storage area 4 1 2. Specifically, since the block address to be written is transmitted from the game apparatus 10 after the above random number and unique ID, the block address is stored in the storage area 4 12.
  • the server 10 2 transmits a transition command designating a block address to the memory controller 62 via the game device 10 and instructs a block address for writing a file to be downloaded.
  • a write file is stored in the storage area 4 1 4. Specifically, a downloadable file read from the database is stored. When download data is prepared for each game title, the data corresponding to the game ID is stored. The data corresponding to the unique ID, that is, the data for each memory card 28 is read. Alternatively, predetermined data may be read regardless of the game ID or unique ID. A predetermined amount of data is sequentially extracted from this write file and transmitted to the game apparatus 10.
  • FIG. 13 shows an example of a memory map of the RAM 4 2 of the game apparatus 10 when executing the download process.
  • Figure 13 shows a part of the memory map, which stores other necessary data.
  • the storage area 500 is a program storage area, and a program for executing processing of the game apparatus 10 is read from the memory card 28 and stored.
  • the program includes a game processing program and a download processing program.
  • the storage area 50 2 is a data storage area, and stores data acquired from the memory card 28, data generated by the CPU 34, data received from the server 102, and the like.
  • the storage area 5 0 4 stores a game ID.
  • the game ID is read and output by the memory controller 6 2 from the storage area 2 2 2 of the information area 2 0 0 of the flash memory 6 4 and is output via the connector 60 and the connector 3 2 etc. Given to CPU 3 4.
  • This game ID is sent with the first unique ID sent to the server 1 0 2.
  • the storage area 5 06 stores the block address to which the downloaded data is written.
  • a free area in the download area 20 4 is secured, and a block address to be written is determined from the free area. This block address is sent to the server 1 0 2.
  • the storage area 5 0 8 stores the amount of file data downloaded from the server 1 0 2. Since the file data amount of the file to be downloaded is transmitted from the server 10 2, the received file data amount is stored in this storage area 5 8. Depending on the amount of this overnight file, C P U 3 4 can determine whether or not all of the write files have been written.
  • FIG. 14 shows an example of the memory map of the RAM 4 2 of the game apparatus 10 during the backup process. Note that FIG. 14 shows only a part of the memory map as in FIG.
  • the storage area 500 is a program storage area, and stores a game processing program, a backup processing program, and the like read from the memory card 28.
  • the game ID read from the memory card 28 is stored in the same manner as in the download process of FIG.
  • Data to be written is stored in the storage area 5 10.
  • backup data generated by the CPU 3 4 while the game (application) is being executed is stored.
  • Data with parity is stored in the storage area 5 1 2.
  • the data to write is CPU 3 4 is converted into a predetermined format and written in the backup area 206.
  • a parity bit is added to the backup data. This data with parity is written to the backup area 206.
  • Figure 15 shows an example of data with parity.
  • Figure 15 shows an example of the configuration of the page data (5 1 2 bytes) in the backup area 2 06.
  • the data configuration of each byte is “7-bit data” + “7-bit” De parity of night (1 bit).
  • parity data is generated by adding one parity bit to every 7 bits of data to be written. For example, if there is an even number of “1” in the bit string of bits 0-6, “1” is written in bit 7, while if there is an odd number of “1” in the bit string, bit 7 Is written "0".
  • the memory area 5 1 4 stores the block address to be written.
  • the CPU 3 4 of the game apparatus 10 secures a free area in the backup area 2 06, determines a block address to which data with parity is written, and stores it in the storage area 5 14.
  • the block address to be written is specified in the transition command for transitioning to the back-up mode.
  • the storage area 5 1 6 stores a block address to be read.
  • the C P U 3 4 confirms the storage location of the data to be read from the backup area 2 06, determines the block address to be read, and stores it in the storage area 5 1 6. This block address to be read is specified in the transition command for transitioning to the backup mode.
  • the data read from the backup area 2 0 6 of the memory card 2 8 is stored. Whether or not the data to be read from the backup area 206 is data with parity is checked by the memory controller 62 at the time of reading. If data is read from the backup area 20 06, the data is normally written to the backup area 2 06, so the CPU 3 4 removes the parity from the read data and restores the original data The data can be used after conversion to. On the other hand, if it is determined that the data in the backup area 206 is illegally written as a result of the parity check, the memory controller 62 shifts to the illegal mode and does not output the data. Therefore, the backup process will not be completed and normal operation will not be performed.
  • the download process is started when the memory controller 62 of the memory card 28 is in the game mode.
  • the CPU 3 4 of the game device 1 0 executes the g RDUID command. Issue to 28.
  • This gRD-UID command is a command for reading a unique ID from the memory card 28.
  • the memory controller 62 reads the unique ID from the flash memory 64 and outputs it to the game apparatus 10 in step S3.
  • the CPU 34 transfers the received unique ID to the server 102 in step S5, and the CPU of the server 102 stores the received unique ID in the RAM. In this way, the unique ID of the memory card 28 is transmitted to the server 102. This unique ID is compared with the unique ID received later for authentication of the memory card 28.
  • the CPU 34 of the game apparatus 10 issues a gRD 1 IF command to the memory card 28 in step S9.
  • This gRD—IF command is used to read the random number and unique ID of the memory card 28.
  • the memory controller 62 outputs the generated random number and the unique ID read from the flash memory 64 to the game apparatus 10 in step S11.
  • the number of tongues and unique ID are encrypted with key 1 deployed in internal RAM 66.
  • the CPU 34 transfers the received data to the server 102.
  • the CPU of the server 102 decrypts the received data with the key 1 in step S15. Key 1 used is key 1 corresponding to the unique ID.
  • step S17 the CPU of the server 102 determines whether or not the unique ID decrypted in step S15 matches the unique ID first received in step S7. If “NO” in step S 17, that is, if the unique ID is different from the first received unique ID, the memory card 28 is not recognized as a legitimate card, so the CPU of the server 102 In S 19, the download writing process is terminated.
  • step S 17 determines in step S 21. In the download area 204, the block address where the data to be downloaded is written is determined. Further, the CPU 34 issues a gCHG_DL_MODE command to the memory card 28 in step S23.
  • This gCHG-DL_MODE command is a transition command for making a transition from the game mode to the DL secure mode. In response to this, the memory controller 62 shifts to the DL secure mode in step S25.
  • step S 27 the CPU 34 of the game device 10 transmits the block address determined in step S 21 to the server 102.
  • the CPU of the server 102 generates a ds CHG-MODE command in step S29.
  • This ds CHG-MODE command is a transition command for transition from DL secure mode to download mode. This transition command is generated using the random number and the unique ID acquired in step S15 and the block address received in step S29. Na The random number and unique ID are used for authentication by the memory controller 62, and the block address to which the download data is written is specified by the block address.
  • step S 31 of FIG. 17 the CPU of the server 102 encrypts the generated d s CHG —MODE command with the key 1.
  • step S 33 the CPU of the server 102 transmits the encrypted d s CHG-MODE command to the game apparatus 10.
  • the CPU 34 of the game apparatus 10 transfers the received data to the memory card 28 in step S35.
  • the memory controller 62 receives the data, and decrypts the received data with the key 1 in step S37. Therefore, the random number and unique ID can be acquired from the d s CHG MODE command, and the specified block address can also be acquired.
  • step S39 the memory controller 62 determines whether or not the unique ID and random number obtained from the command match the random number and unique ID in the memory card 28. If “NO” in step S 39, that is, if the received command is not a valid command, the memory controller 62 transitions to the illegal mode in step S 41. This prevents the download process from proceeding and prevents unauthorized downloads.
  • step S 39 that is, if the received command is a “valid command”
  • the memory controller 62 transitions to the download mode in step S 43 and is designated in step S 45. Make only blocks accessible. This enables writing to the block specified by the transition command to download mode.
  • the key 2 for the download mode is decrypted and expanded in the internal RAM 66.
  • step S47 the CPU 34 of the game apparatus 10 issues a d l RD—IF command to the memory card 28.
  • This d 1 RD—IF command is used to read a random number and a unique ID.
  • the memory controller 62 encrypts the random number and the unique ID with the key 2 and outputs them to the game apparatus 10 in step S49.
  • CPU 34 of game device 10 receives this data, and transfers the received data to server 102 in step S51.
  • the CPU of the server 102 receives the data and decrypts the data using the key 2 in step S53.
  • the server 102 acquires the random number and the unique ID from the memory card 28.
  • This random number and unique ID are used as an initial value when calculating the MI of the data to be downloaded thereafter, and also as an initial value for encrypting data transmitted from the server 102.
  • step S 55 of FIG. 18 the CPU 34 of the game device 10 executes dl PRT Issues an OFF command to the memory card 28.
  • d 1 PRT 1 OFF command is a command to cancel the write protection.
  • the memory controller 62 turns off the write protection, which makes it possible to execute writing to the designated block in the download area 204.
  • step S59 the CPU of the server 102 prepares data to be downloaded, that is, a write file.
  • step S 61 the CPU of the server 102 extracts data of a predetermined size (2 KBy te in this embodiment) from the write file.
  • the writing file is transmitted from the server 102 to the game apparatus 10 (memory card 28) for each predetermined size.
  • step S 63 the CPU of the server 102 uses the key 3 to calculate a MIC having a predetermined size (8 Byte in this embodiment) from 2 KB yte. It should be noted that the number of tongues and unique ID acquired in step S53 are used as initial values for M I C calculation. Further, in step S65, the CPU of the server 102 generates data obtained by adding 8Byte MIC to the 2 KByte data, and encrypts the generated data with the key 2. The random number and the unique ID acquired in step S53 are used as the initial value of this encryption. In step S 67, the CPU of the server 102 transmits the encrypted data to the game device 10.
  • the CPU 34 of the game apparatus 10 transmits a page address to be written together with the received data to the memory card 28 in step S69.
  • the memory controller 62 receives the data.
  • step S 73 the CPU 34 of the game device 10 issues a dWR—PAGE command to the memory card 28.
  • the dWR—PAGE command is a command for writing the data transmitted to the memory card 28 into the download area 204.
  • step S75 the memory controller 62 decrypts the data received in step S71 with the key 2. As a result, data obtained by adding 8 Byte MIC to 2 KByte data can be acquired.
  • step S 77 the memory controller 62 calculates an 8 Byte M IC with the key 3 for the obtained 2 KByte data.
  • the random number and unique ID transmitted in step S49 are used as initial values.
  • step S 79 the memory controller 62 determines whether or not the calculated MIC matches the MIC obtained by decoding. If “NO” in the step S 79, that is, if the valid download data is not received, the memory controller 62 does not perform the writing in the step S 81. As a result, invalid data is not written to the download area 204.
  • step S 79 if “YES” in step S 79, that is, if valid data is received.
  • step S 83 the memory controller 62 writes the received 2 Kbyte data into the designated block in the download area 204.
  • step S85 the CPU 34 of the game apparatus 10 determines whether the writing of the file has been completed or whether the writing of one block has been completed.
  • data can be written without a transition command from the server 102 as long as it is within a certain range of the designated block address (1 block in this embodiment). Therefore, until the writing of one block is completed or until the writing of a file of less than one block is completed, the CPU of the server 102 transmits the encrypted data, and the memory controller 62 decrypts the data. Repeat the operation of writing. That is, if “NO” in the step S 85, the process returns to the step S 61 in FIG. 18 and the processing is repeated.
  • the load on the server 102 can be reduced and the processing on the game apparatus 10 side can be shortened.
  • the download mode is temporarily ended and the game mode is entered. Then, a transition command is transmitted again from the server 102, the mode of the memory controller 62 is changed to the download mode, and data is downloaded.
  • step S 85 the CPU 34 of the game apparatus 10 issues a d 1 CHG-MODE command to the memory card 28 in a step S 87.
  • This d 1 CHG-MODE command is a transition command for making a transition from the download mode to the game mode.
  • the memory controller 62 shifts to the game mode in step S89.
  • CPU 34 of game device 10 determines whether or not the writing of the file is completed in step S91. If “NO” in the step S 91, that is, if unwritten data remains in the write file, the process returns to the step S 9 in FIG. 16 and the process from the game mode is repeated. On the other hand, if “YES” in the step S 91, that is, if all the data of the write file has been written, the download process is ended.
  • gRD UID command
  • the UID command is used to read a unique ID.
  • This gRD-UID command is issued when the memory controller 62 is in the game mode. It may be encrypted with a light algorithm (for example, scrambled) and output to the memory card 28.
  • the CPU 34 gives the command or data to the connector 32. Therefore, the command or data is sent to the memory controller 62 via the connector 60. Given.
  • step S 103 the CPU 34 determines whether a unique ID has been received from the memory car 28.
  • the memory controller 62 returns a unique I D and waits for data to be received from the memory controller 62 via the connector 32.
  • step S 103 that is, if a unique ID is received from the memory controller 62, the CPU 34 transmits a unique ID and a game ID to the server 102 in step S 105. Specifically, the received unique ID is stored in the data storage area 502 of the RAM 42, the game ID stored in the storage area 504 is read, and data including the unique ID and the game ID is transmitted.
  • the CPU 34 When transmitting data from the game device 10 to the server 102, the CPU 34 gives the data to the wireless communication unit 58. Therefore, the data is transmitted from the wireless communication unit 58 via the access point 104 and the network 106. And given to the server 102. Subsequently, the CPU 34 issues a gRD—IF command to the memory card 28 in step S107.
  • This gRD-IF command is used to read random numbers and unique IDs. Also, this gRD-IF command may be transmitted after being encrypted with an algorithm with a lighter processing burden such as scramble.
  • the CPU 34 determines whether or not data (encrypted random number and unique ID) has been received from the memory capability 28.
  • gRD— IF The memory controller 62 returns the above data in response to the F command, so it waits to receive the data.
  • step S 109 that is, if data is received from the memory controller 62, the CPU 34 sends the received data (encrypted random number and unique ID) in the step S 111. Send to server 102.
  • steps S 113 and S 115 it is determined whether or not the result of whether or not the memory card 28 is a valid card is received from the server 102 via the wireless communication unit 58.
  • the server 102 returns the result of authentication of the memory card 28, and thus waits for the reception of the data from the server 102.
  • the CPU 34 determines whether or not the server 102 has received that the memory card 28 is a regular card. If “NO” in the step S 113, the CPU 34 determines whether or not the memory card 28 is received in a step S 115 that the memory card 28 is not a regular card. If "NO” in the step S115, the process returns to the step S113. If “YES” in the step S 115, that is, if it is considered that an invalid memory card 28 is inserted, the download process is ended. Therefore, illegal downloading to the memory card 28 can be avoided.
  • step SI 13 if “YES” in step SI 13, that is, if a regular memory card 28 is installed, the CPU 34 secures a free area in the download area 204 and writes it in step S 117. Determine the address. Note that information such as which area of the storage area of the flash memory 64 is used or which area is an empty area is stored as header information in the information area 200, for example. Based on the information, the management data of the flash memory 64 is generated, and based on the management data, an empty area is secured and the block address to be written is determined. The determined block address is stored in the storage area 506. When step S 1 17 ends, the process proceeds to step S 119 in FIG.
  • step S 119 in FIG. 21 the CPU 34 issues a g CHG-DL-MOD E command to the memory card 28.
  • This gCHG-DL-MODE command is a transition command for transitioning to DL secure mode.
  • the gCHG-DL-MODE command may be transmitted after being encrypted according to a relatively light processing algorithm such as scramble.
  • step S 121 the CPU 34 transmits the block address determined in step S 1 17 to the server 102.
  • step S 123 the CPU 34 determines whether data (encrypted d s CHG—MODE command) has been received from the server 102. In response to the transmission in step S121, the server 102 returns to the destination, and waits for reception of the data.
  • step S 123 that is, if the above data has been received, the CPU 34 sends the received data (encrypted ds CHG—MOD E command) to the memory card 28 in step S 125. Send. As a result, the memory controller 62 shifts to the download mode.
  • step S 127 the CPU 34 issues a d 1 RD—IF command to the memory card 28.
  • This d 1 RD—IF command is used to read a random number and a unique ID.
  • step S 129 the CPU 34 determines whether data (encrypted random number and unique ID) has been received from the memory card 28.
  • d l RD— IF In response to the F command, the memory controller 62 returns an encrypted random number and a unique ID, and waits for reception of the data.
  • step S 129 that is, if the above data is received, the CPU 34 sends the data (encrypted random number and unique ID) received in step S 131 to the server 102. Send.
  • step S133 the CPU 34 sends a dl PRT OFF command to the memory capacity. -Issued to 28. This d 1 PRT—OFF command is used to release write protection.
  • step S133 ends, the process proceeds to step S135 in FIG.
  • step S 135 of FIG. 22 the CPU 34 determines whether or not data related to the file data amount has been received from the server 102.
  • the server 102 prepares the data to be downloaded (write file) and first transmits the file data amount.
  • the server 102 receives the file data overnight amount. Wait. If “YES” in the step S 135, the CPU 34 stores the file data amount received in the step S 137 in the storage area 508.
  • step S139 the CPU 34 determines whether or not data (encrypted data of 2 KB y t + 8By t) has been received from the server 102.
  • the server 102 transmits data from the write file by a predetermined size. Specifically, the server 102 encrypts and transmits the data obtained by adding 8 BYte MIC to the data of 2 KByte, and in this step S139, the server 102 waits for reception of the data.
  • step S 139 the CPU 34 transmits the page address to be written together with the received data to the memory card 28 in a step S 141.
  • data of a predetermined size is transmitted from the server 102, so that the CPU 34 performs the data processing every time data is received based on the management data or block address of the flash memory 64.
  • the page address to be written can be determined.
  • step S 143 the CPU 34 issues a dWR—PAGE command to the memory card 28. This dWR-PAGE command is an instruction to write the data transmitted in step S141 to the specified page address.
  • step S 145 the CPU 34 determines whether the writing of the file has been completed or whether the writing of one block has been completed.
  • the CPU 34 can calculate the amount of data written (the amount of data transmitted to the memory card 28). Therefore, the CPU 34 can determine whether the written data amount has reached the file data amount or has reached one block. If “NO” in the step S145, the process returns to the step S139, and the writing of data is repeated until the writing of the file is finished or the writing of one block is finished.
  • step S 145 the CPU 34 issues a d 1 CHG-MODE command to the memory card 28 in a step S 147.
  • This d 1 CHG-MODE command is a transition command for making a transition from the download mode to the game mode.
  • step S149 the CPU 34 finishes writing the file. Determine whether or not. If “NO” in step S 1 4 9, that is, if writing of one block is completed but not all of the write file has been written, the process returns to step S 1 0 7 in FIG. In order to write the remaining data, the processing from step S 1 07 in the game mode is performed again. On the other hand, if “YES” in step S 1 4 9, the download process is terminated.
  • FIGS. 23 to 26 show an example of the operation of the memory controller 62 in the download process. As described above, since the download process is started in the game mode, in FIG. 23, the process from the time when the power is turned on until the memory controller 62 is placed in the game mode is changed from step S 2 0 1 to step S 2. It is described as 2 0 5.
  • the memory controller 6 2 sets the mode to the game mode in step S 2 0 1 in FIG.
  • Data indicating the game mode is stored in the mode storage area 300 of the internal RAM 66.
  • step S 2 0 3 the memory controller 62 makes the download area 2 0 4 and the game area 2 0 2 readable only.
  • the memory controller 62 generates data indicating the access status for each area of the flash memory 64 in the internal RAM 66. In the data, data indicating that the download area 20 4 and the game area 2 202 can only be read is set.
  • step S 2 0 5 the memory controller 6 2 reads the key 1 and the key 3 from the information area 2 0 0 of the flash memory 6 4 to the word queryer of the internal RAM 6 6, and decrypts them. And key 3 are expanded to the key storage area 3 0 2.
  • step S 2 07 the memory controller 62 determines whether or not the g R D—UID command has been received via the connector 60. If “YES” in step S 2 0 7, that is, if a command for reading a unique ID is received, the memory controller 6 2 stores the information area 2 0 0 in step S 2 0 9. The unique ID is read from the area 2 20 and the unique ID is output to the connector 60.
  • the g R D—U I D command is encrypted and transmitted by scramble or the like, the received data is decrypted to determine whether the data is a g R D — U I D command.
  • the data output from the memory controller 62 to the connector 60 is given to the CPU 34 via the connector 32 or the like.
  • step S 2 0 9 is completed or if “NO” in step S 2 0 7, the memory controller 6 2 determines whether or not the g RD—IF command is received in step S 2 1 1. .
  • the g RD—IF command is encrypted by scramble or the like, the received data is decrypted to determine whether the data is a g RD—IF command.
  • the process returns to step S 207.
  • step S 211 that is, if a command for reading the random number and unique ID is received, the memory controller 62 sets the random number and unique ID as keys 1 in step S 2 13. Encrypt with Note that the memory controller 62 generates a random number in the storage area 304, and the memory controller 62 reads the unique ID from the storage area 220 of the information area 200 to the work area. In addition, the key 1 used for encryption is already expanded in the storage area 302. In subsequent step S215, the memory controller 62 outputs the encrypted random number and the unique ID.
  • step S217 the memory controller 62 determines whether or not a gCHG-DL-MODE command has been received. Since this gCHG-DL-MODE command is issued from the CPU 34 when the server 102 determines that the memory card 28 is a legitimate card, it waits for reception of the command in step S217. When the gC H G_D L-M0 D E command is encrypted by scramble, etc., the received data is decrypted, and it is determined whether the data is a gCHG-DL-MODE command.
  • step S217 that is, if a transition command for transitioning to the DL secure mode is received, the memory controller 62 transitions from the game mode to the DL secure mode in step S219.
  • the mode storage area 300 stores data indicating the DL secure mode.
  • step S 221 of FIG. 24 the memory controller 62 reads and decrypts the key 1 from the storage area 214 of the information area 200 and expands it in the storage area 302 of the internal RAM 66. Note that key 1 is already expanded in key storage area 302, but in order to avoid replacement of data due to an accident, etc., key 1 is expanded again in the process of step S221.
  • step S224 the memory controller 62 makes the entire area of the flash memory 64 inaccessible.
  • the memory controller 62 sets data indicating an inaccessible state for all areas in the data indicating the access state for each area of the flash memory 64.
  • step S225 the memory controller 62 determines whether data (encrypted d s CHG-MODE command) has been received. After the transition to the DL secure mode, this encrypted d s CHG-MODE command is transmitted from the server 102, so in step S225, reception of the data is awaited.
  • step S225 that is, if data (encrypted ds CHG—MODE command) has been received, the memory controller 62 will In step 7, the received data is decrypted by key 1.
  • the ds CHG-MODE command is encrypted using the key 1 corresponding to the unique ID of the memory card 28 in the server 102, so the key 1 in the storage area 302 is used for decryption. .
  • step S229 the memory controller 62 acquires a block address, a unique ID, and a random number from the d s CHG one MODE command.
  • the block address to which the downloaded data is written is specified, and the random number and unique ID output in step S215 are embedded.
  • step S231 the memory controller 62 stores the acquired unique ID and random number in the unique ID and random number stored in the internal RAM 66, that is, the unique ID and random number in the memory card 28. It is judged whether or not it matches the random number.
  • step S231 that is, if the transition command to the download mode is not a valid command, the memory controller 62 transits to the primary mode in step S233.
  • the mode storage area 300 stores data indicating the illegal mode.
  • the memory controller 62 does not perform down-load processing, so that illegal writing can be prevented.
  • step S231 that is, if the transition command to the download mode is a valid command, the memory controller 62 transitions from the DL secure mode to the download mode in step S235. .
  • the mode storage area 300 data indicating the download mode is stored.
  • step S237 the memory controller 62 makes only the block designated by the d s CHG-MODE command accessible. For example, the memory controller 62 changes the memory map of the download area to the specified block only in the data indicating the access status to each area of the flash memory 64, and only the download area is accessible. Set data indicating that Further, in step S 239, the memory controller 62 reads and decrypts the key 2 from the storage area 216 of the information area 200, and expands it in the storage area 302 of the internal RAM 66 instead of the key 1. Note that key 1 is deleted from key storage area 302 before key 2 is expanded.
  • step S241 in FIG. 25 the memory controller 62 determines whether or not a d 1 RD—IF command has been received. Since this d 1 RD—IF command is issued by the C P U 34 after the encrypted d s CHG—MODE command has been transferred, reception of the d 1 RD—IF command is awaited in step S241.
  • step S241 If “YES” in step S241, that is, to read the random number and unique ID
  • the memory controller 62 encrypts the random number and the unique ID with the key 2 in step S243.
  • the memory controller 62 generates a random number in the storage area 304 and reads the unique ID from the storage area 220 of the information area 200. Then, the random number and the unique ID are encrypted with the key 2 expanded in the storage area 302.
  • step S245 the memory controller 62 outputs the encrypted random number and unique ID.
  • step S247 the memory controller 62 determines whether or not the dl PRT_OFF command has been received. Since the CPU 34 issues the d 1 PRT-OFF command after transferring the encrypted random number and unique ID output in step S245 to the server 102, the CPU 34 waits for reception of the command in step S247.
  • step S247 If “YES” in step S247, that is, if a command for canceling write protection is received, the memory controller 62 turns off write protection for the download area 204 of the flash memory 64 in step S249. . Specifically, the memory controller 62 turns off the flag indicating the write protection stored in the storage area 306 of the internal RAM 66.
  • step S251 the memory controller 62 determines whether data (encrypted 2 KBy te + 8By te) is received. This data is download data transmitted from the server 102. In addition, a page address to be written by the CPU 34 of the game apparatus 10 is added to the received data.
  • step S 251 the memory controller 62 stores the received data and page address in the work area of the internal RAM 66 in a step S 253. On the other hand, if "NO” in the step S251, the process proceeds to a step S269 in FIG. Subsequently, in step S255, the memory controller 62 determines whether or not a dWR-PAGE command has been received. Since this dWR—PAGE command is issued after the download data is transferred by the CPU 34 of the game apparatus 10, it waits for reception of the dWR—PAGE command in step S 255.
  • step S255 determines whether or not the write protection of the storage area 306 is off.
  • step S257 If “YES” in step S257, that is, if writing of downloaded data is permitted, the memory controller 62 receives the data (encrypted 2KBy te + 8By te in step S259). Data) with key 2.
  • the received data is encrypted in the server 102 with the key 2 corresponding to the unique ID of the memory card 28. With this decryption, 2KBy te download data and 8 By te MIC can be obtained.
  • step S 261 the memory controller 62 calculates 8 By te MIC with key 3 for the decrypted 2 KBy te data.
  • the unique ID and random number stored in the internal RAM 66 are used as initial values.
  • the calculation key 3 includes a part of the key 2 (shared part) stored in the storage area 302 and the key 3.
  • step S263 the memory controller 62 determines whether or not the calculated MI C matches the decrypted MI C. If “NO” in step S 263, that is, if the downloaded data is recognized as invalid data, the process proceeds to step S 265. In step S 265, the memory controller 62 does not execute writing. Therefore, it is possible to prevent unauthorized data from being written to the download area 204. When step S 265 is finished, the download process is finished.
  • step S 263 designates the decrypted 2 KBy te data in step S 267. To the specified page.
  • step S269 the memory controller 62 determines whether or not the d 1 CHG-MODE command has been received. This d 1 CHG-MODE command is issued by the CPU 34 when the file has been written or when one block has been written. If “NO” in the step S 269, the process returns to the step S 2 51 in FIG. Therefore, until the writing of the file is completed or the writing of one block is completed, the writing of the downloaded data of a predetermined size (2 KBy te) to the download area 204 is repeated.
  • step S269 that is, if a transition command for transition to the game mode is received, the memory controller 62 transitions from the download mode to the game mode in a step S271.
  • the mode storage area 300 stores data indicating the game mode.
  • step S 273 the memory controller 62 makes the download area 204 and the game area 202 readable only in the same manner as in step S 203. Since the memory map of the download area has been changed to the specified block, the download area 204 is restored based on the boundary data (start address) of each area specified in the information area 200, and the download area Data indicating that only reading is possible is set in 204.
  • step S 275 the memory controller 62 decrypts the key 1 read from the storage area 214 of the information area 200 and expands the key 1 in the key storage area 302 of the internal RAM 66 instead of the key 2.
  • step S275 ends, the process returns to step S207. If writing of the file to be downloaded has not been completed, the download process is executed again from the game mode and the remaining data is written. Will be performed.
  • FIGS. 27 to 29 show an example of the operation of the server 102 in the download process.
  • the CPU of the server 102 determines whether or not the unique ID and the game ID are received in step S301.
  • the unique ID and game ID of the memory card 28 are transmitted from the game apparatus 10 via the network 106, and the reception is awaited in this step S301. If "YES" in step S301, the CPU of the server 102 stores the received unique ID and game ID in the RAM storage area 404 and the storage area 406 in step S303.
  • step S305 the CPU of the server 102 determines whether data (encrypted random number and unique ID) has been received.
  • data Encrypted random number and unique ID
  • step S 305 the CPU of the server 102 decrypts the received data (encrypted random number and unique ID) with the key 1 corresponding to the unique ID in step S 3 07.
  • the CPU uses the keys 1, 2, and 3 corresponding to the first unique ID received in the storage area 404. Read from the database and store in storage area 408. The key 1 is used to decrypt the received data. As a result, the random number and the unique ID can be acquired, and the acquired random number and the unique ID are stored in the storage area 410.
  • step S 309 the CPU of the server 102 determines whether or not the decrypted unique ID stored in the storage area 410 matches the initial unique ID stored in the storage area 404.
  • step S309 that is, if the memory card 28 is recognized as a legitimate card
  • the CPU of the server 102 indicates that the memory card 28 is a legitimate card in step S311.
  • Data is transmitted to the game apparatus 10 via the network 106.
  • step S 311 is completed, the process proceeds to step S 315 in FIG.
  • step S309 determines that the memory card 28 is legitimate in step S313. Data indicating that it is not a game is transmitted to the game apparatus 10. Then, the download process ends.
  • step S315 in FIG. 28 the CPU of the server 102 determines whether or not the block address has been received in step S315.
  • Step S 311 according to the game Since the block address is transmitted from the device 10, the reception is awaited in step S315.
  • step S 315 the CPU of the server 102 stores the block address received in the step S 317 in the storage area 412. Subsequently, in step S 319, the CPU of the server 102 generates a d s CHG-MODE command using the block address, the unique ID, and the number of tongues.
  • This d s CHG—MOD E command is a transition command for transitioning to the down mode.
  • the block address is specified in the d s CHG—MOD E command, and writing to the specified block address is enabled in the download mode.
  • the d s CHG-MODE command includes the random number of storage area 410 and a unique ID.
  • step S321 the CPU of the server 102 encrypts the generated d s CHG one MODE command using the key 1 corresponding to the unique ID.
  • step S 323 the CPU of the server 102 transmits the encrypted d s CHG-MODE command to the game apparatus 10.
  • step S325 the CPU of the server 102 determines whether data (encrypted random number and unique ID) has been received from the game apparatus 10.
  • the random number and the unique ID are encrypted with the key 2 and transmitted to the server 102, and the reception of the memory controller 62 is awaited in this step S325. If “YES” in step S325, that is, if the above data (encrypted random number and unique ID) is received, the CPU of the server 102 receives the received data in step S327. (Encrypted random number and unique ID) are decrypted with key 2 corresponding to the unique ID. The random number and the unique ID acquired in this way are stored in the storage area 410.
  • step S327 is completed, the process proceeds to step S329 in FIG.
  • step S329 of FIG. 29 the CPU of the server 102 prepares a write file. Specifically, predetermined data is read out from the download data stored in the database and stored in the storage area 414 of the RAM.
  • the write file may be, for example, a file corresponding to a unique ID, a file corresponding to a game ID, or a predetermined file that does not depend on a unique ID or game ID.
  • step S 331 the CPU of server 102 transmits the file size of the write file to game device 10.
  • step S333 the CPU of the server 102 extracts data of a predetermined size (2 KBy te in this embodiment) from the write file.
  • the write file data is sent separately for each predetermined size.
  • step S335 the CPU of server 102 is about 2 KB yte 67559
  • step S343 the CPU of the server 102 determines whether transmission of the file is completed or transmission of one block is completed. Whether the file has been sent or not can be determined based on the amount of data in the write file and the cumulative amount of data sent. If “NO” in step S 343, that is, if transmission of one block has not ended, or transmission of the file has not ended, the process returns to step S 333 and data of a predetermined size is returned. The process for sending is repeated.
  • step S 343 the CPU of the server 102 determines whether or not the file transmission is completed in the step S 345. If “NO” in the step S345, that is, if transmission of data in one block unit is completed but transmission of all data in the write file is not completed, the process returns to the step S305 in FIG. By repeating the download process when the memory controller 62 is in the game mode, the file is written to the next block. On the other hand, if “YE S” in step S345, the writing of the file is finished, and the download process is finished.
  • FIG. 30 shows an example of the operation of the game apparatus 10 in the backup writing process.
  • the CPU 34 prepares data to be written in the RAM 42 in step S401.
  • the data to be written is backup data generated by the CPU 34 in the game process, and is stored in the storage area 510.
  • step S403 the CPU 34 adds parity to the data to be written.
  • data with parity is generated so that each byte data has a format of “7-bit data” + “parity bit (1 bit)”. . That is, the first 7 bits of each byte are the generated backup data, and the parity of the first 7 bits is added to the last bit.
  • the generated data with parity is stored in the storage area 512.
  • step S 405 the CPU 34 confirms a free area in the backup area 206 and determines a block address to be written.
  • the storage area of flash memory 64 Information such as which area is used or which area is free is stored as header information in the information area 200, for example, so that the CPU 34 flashes based on the header information.
  • Management data in the memory 64 is generated, and based on the management data, a free area in the backup area 206 is secured and a block address to be written is determined.
  • the determined block address is stored in the storage area 514.
  • step S 407 the CPU 34 issues a gCHG_BK_M0DE command to the memory card 28.
  • This gCHG_BK MODE command is a transition command for transitioning to the backup mode.
  • the block address to be written is specified.
  • the memory controller 62 shifts to the backup mode in response to this transition command, and only the designated block in the backup area 206 can be accessed.
  • step S 409 the CPU 34 issues a write command for writing data with parity to the memory card 28.
  • This write command contains data with parity to be written. For example, data of a predetermined size is attached to the write command so that data is written in a predetermined size in the same manner as in the case of writing to the download area 204 described above.
  • the memory controller 62 writes the data to the designated block in the backup area 206.
  • step S411 the CPU 34 determines whether all the prepared data has been written or one block of data has been written. Whether the prepared data (data with parity) has been written or completed can be determined based on the data amount of data with parity stored in the storage area 512 and the cumulative amount of data transmitted by the write command. it can. If “NO” in the step S411, the process returns to the step S409 to repeat the writing by the write command.
  • the CPU 34 issues a bCHG-MODE command to the memory card 28 in a step S 413.
  • This bCHG-MOD E command is a transition command for transitioning from no-so-up mode to game mode.
  • the memory controller 62 transitions to the game mode.
  • step S 415 the CPU 34 determines whether all the prepared data (data with parity) has been written. If “NO” in step S 45, that is, if data with parity that has been written but has not been written remains, processing returns to step S 405 and the next Executes processing for writing to the block. On the other hand, if “YES” in the step S 415, the backup writing process is ended.
  • FIG. 31 shows an example of the operation of the game apparatus 10 in the backup read process. When the reading process from the backup area 206 is started, the CPU 34 confirms the storage location of the backup data to be read in step S501. Note that the backup data to be read is selected according to the user's operation or program.
  • step S503 the CPU 34 determines a block address to be read.
  • the block address to be read is determined from the storage location of the backup data to be read, and stored in the storage area 516.
  • step S 505 the CPU 34 issues a gCHG-BK-MODE command to the memory card 28.
  • This gCHG-BK-MODE command is a transition command for transitioning to the backup mode.
  • the block address to be read determined in step S503 is designated.
  • the memory controller 62 shifts to the backup mode, and only the designated block is accessible.
  • step S 507 the CPU 34 specifies a page address to be read and issues a read command to the memory card 28.
  • This read command is a command for instructing data reading. For example, it is possible to instruct the reading of data on a specified page.
  • the memory controller 62 reads the specified page from the backup area 206. If the read data is valid data, the data is output to the CPU 34.
  • step S 509 the CPU 34 determines whether data has been received from the memory card 28. As described above, if the read data is valid, the data is output. In step S509, the reception is awaited. If it is determined that the data read by the memory controller 62 is not valid, the data is not output because of transition to the illegal mode, and this backup read processing does not operate normally. If “YES” in the step S 509, the CPU 34 stores the received data, that is, the read data in the storage area 518 of the RAM 42 in a step S 511. In step S 513, the CPU 34 determines whether all the data to be read has been read or whether one block has been read.
  • Whether or not all data to be read has been read can be determined based on the amount of data to be read and the cumulative amount of data to be read by the read command. If “NO” in the step S513, the process returns to the step S507 to repeat the reading process by the read command.
  • the CPU 34 issues a bCHG-MODE command to the memory card 28 in a step S515.
  • This bCHG-MODE command is a transition command for transitioning to the game mode.
  • This transition command In response to the memory mode, the memory controller 62 shifts to the game mode.
  • step S 517 the CPU 34 determines whether all the data to be read has been read. If “NO” in step S517, that is, if reading of one block is completed but data to be read remains, the process returns to step S503 to perform processing for reading the next block. Execute. On the other hand, if “YES” in the step S517, the backup reading process is ended.
  • step S601 in FIG. 32 the memory controller 62 determines whether or not a gCHG-BK-MODE command has been received. This gCHG-BK-MODE command is a command to transition to backup mode. If “NO” in the step S 601, the backup processing is ended.
  • the memory controller 62 transits from the game mode to the backup mode in a step S603.
  • the mode storage area 300 of the internal RAM 66 stores data indicating the backup mode.
  • the memory controller 62 makes only the block specified by the gCHG-BK-M0DE command in the knock-up area 206 accessible.
  • the memory controller 62 stores data indicating the access status for each area of the flash memory 64 in the internal RAM 66, changes the memory map of the backup area 206 to only the specified block in the data, and Set data indicating that only the backup area is accessible.
  • the memory controller 62 executes processing according to the command received in the backup mode. That is, in step S607, the memory controller 62 determines whether or not a write command has been received. If “YES” in the step S607, the memory controller 62 writes the data received together with the write command in the block of the backup area 206 specified by the transition command in a step S609.
  • step S609 the memory controller 62 determines whether or not the bCHG-MODE command has been received. If “YES” in the step S611, that is, if a transition command to the game mode is received, the memory controller 62 transitions from the backup mode to the game mode in a step S613.
  • the mode storage area 300 stores data indicating the game mode.
  • step S615 the memory controller 62 makes the backup area 206 inaccessible. For example, in the data indicating the access status to each area of the flash memory 64, the memory map of the backup area is restored and the data indicating that the backup area 206 is inaccessible is also displayed. Set. When you finish step S615, Finish the process.
  • step S 6 11 determines whether or not a read command is received in a step S 6 17 in FIG. If “Y ES” in step S 6 17, the memory controller 6 2 determines in step S 6 19 whether the page specified by the read command is in an accessible block.
  • the accessible block is a block in the backup area 206 specified by the transition command to the backup mode.
  • the memory controller 6 2 checks the parity of the page specified by the read command in step S 6 2 1. Specifically, the memory controller 62 reads the specified page data into the work area of the internal RAM 66, calculates the parity of the first 7 bits of each byte, and uses the calculation result as the last bit of each byte. Compare.
  • step S 6 2 3 the memory controller 6 2 determines whether or not the result of the parity check is correct. If “YES” in step S 6 2 3, that is, if the calculated parity bit is equal to the last bit for all bytes, the memory controller 6 2 The page data is output to CPU 34.
  • step S 6 2 3 if “NO” in step S 6 2 3, that is, if even one byte in which the calculated parity bit and the last bit are not equal is detected, the data to be read is invalid. Since it is recognized that there is, the memory controller 6 2 shifts to illegal mode in step S 6 2 7. In the mode storage area 300, data indicating illegal mode is stored. When transitioning to illegal mode, the memory controller 62 does not output the read data. Therefore, illegal data can be prevented from being read and used.
  • step S 6 1 7 If “NO” in step S 6 1 7, “NO” in step S 6 1 9, or when step S 6 2 5 is completed, the process proceeds to step S 6 0 7 in FIG. 3 2. Return to.
  • the download area 20 4 is provided in the flash memory 64 of the memory card 28 that can be attached to the game apparatus 10.
  • the game apparatus 10 includes A flash memory 64 may be provided in the housing 16, and a download area 20 4 may be provided in the flash memory 64.
  • the memory controller 6 2 is also provided in the housing 16.
  • the backup area 20 6 may be provided in the flash memory 64 in the housing 16 of the game apparatus 10.
  • the flash memory 64 is built in the housing 16 of the game apparatus 10.
  • the unique ID may be identification information of the game device 10.
  • keys 1, 2, and 3 corresponding to the unique ID of the memory card 28 are prepared, and the flash memory 64 and server 1 are prepared. 2 was stored in advance.
  • encryption may be made for each game title (game program) or application type (application program), and in that case, it corresponds to the game ID (application ID).
  • game ID application ID
  • the flash memory 64 is provided with two write areas, the download area 2 04 and the backup area 2 06, and mode transition and write are performed for one of the download areas 2 0 4.
  • Step-by-step security was provided by data encryption, and security was applied to the other backup area 2 06 by using the format of the write data.
  • only one of the write areas may be provided in the flash memory 64.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

書込み領域セキュリティシステム(10)は、CPU(34)、フラッシュメモリ(64)およびメモリコントローラ(62)を含む。メモリコントローラ(62)は、フラッシュメモリ(64)の所定領域に記憶されたデータのリードコマンドをCPU(34)から受けると、たとえば当該読み出したデータのパリティチェックを行う。メモリコントローラ(62)は、当該読み出したデータのパリティが正しいときのみ、当該データをCPU(34)に出力する。

Description

明細書
書込み領域セキュリティシステム 技術分野
この発明は、 書込み領域セキュリティシステムに関し、 特にたとえば書込み領域を不 正利用から保護するための書込み領域セキュリティシステムに関する。 また、 この発明 は、 書込み領域セキュリティシステムに用いられるメモリコントローラおよびセキユリ ティ方法に関する。 背景技術
サーバからデータを携帯端末の I Cカードにダウンロードする技術の一例が、 たとえ ば 2 0 0 2年 9月 2 7日付けで出願公開された特開 2 0 0 2 - 2 8 1 1 8 1号公報 (特 許文献 1 ) に開示されている。 具体的には、 特許文献 1の技術では、 I Cカードはファ ィル毎のアクセスキーで保護されたファイル構造を有しており、 I Cカードにアクセス してファイルの内容を読みかつ書き換える際のリード ·アンド 'ライト可能キーは、 ホ ストサーバのみによって管理される。 I Cカードに書かれている内容の追加 ·変更は、 携帯端末を通してホストサーバとのオンライン接続後に、 ホストサーバからの書き込み 命令のみによって行うことが可能であり、 つまり、 命令に付加されて送られるリード · アンド ·ライト可能キーが I Cカード側で照合され、 照合が一致する場合にのみ当該フ アイルにアクセス可能にされる。 また、 携帯端末の有するリード可能キーによって、 I Cカードに書き込んだデータが読み出される。
特許文献 1の技術では、 I Cカードに対する書き込みのセキュリティがファイルごと にリード ·アンド ·ライト可能キーによってかけられるだけであり、 また、 特許文献 1 には、 リード ·アンド ·ライト可能キーによってセキュリティがかけられる領域と別の 領域とに分けるというような発想がない。 したがって、 このセキュリティが破られてし まうと、 I Cカードに大量のデータを書き込むことが可能になってしまう。 また、 書き 込まれたデータが正規のデータであるかを確認する仕組みがないので、 そのデータが不 正に書き込まれたデータであっても、 携帯端末で利用されてしまう。 発明の概要
それゆえに、 この発明の主たる目的は、 新規な、 書込み領域セキュリティシステム、 ならびにそれに用いられるメモリコントローラおよびセキュリティ方法を提供すること である。
この発明の他の目的は、 書き込み領域に意図しないデータが書き込まれても^正に利 用されるのを防止することができる、 書込み領域セキュリティシステム、 ならびにそれ 7 067559 に用いられるメモリコントローラおよびセキュリティ方法を提供することである。 この発明は、 上記の課題を解決するために、 以下の構成を採用した。 なお、 括弧内の 参照符号および補足説明等は、 この発明の理解を助けるために後述する実施形態との対 応関係を示したものであって、 この発明を何ら限定するものではない。
第 1の発明は、 所定の書込み領域を有する記憶手段、 記憶手段の書込みと読出しを制 御する制御手段、 および制御手段に接続されるホストを含む、 書込み領域セキュリティ システムである。 ホストは、 所定の書込み領域に記憶されたデータの読出し命令を制御 手段に送信する命令送信手段を含む。 制御手段は、 読出し命令に応じて所定の書込み領 域から読み出したデータが所定のフォーマツ卜であるか否かを判定するフォーマツト判 定手段、 およびフォーマット判定手段によってデ一夕が所定のフォーマットであると判 定されたときのみ、 データをホストに出力する出力手段を含む。
第 1の発明では、書込み領域セキュリティシステム(1 0、 1 0 0 )は、記憶手段(6 4 )、 制御手段 (6 2 ) およびホスト (3 4 ) を含む。 記憶手段には、 所定の書込み領域 ( 2 0 6 )が設けられる。制御手段は記憶手段に対する書込みおよび読出しを制御する。 ホストは、 このシステムを全体的に制御するホストコンピュータ、 ホスト C P Uまたは ホストプロセッサ等であり、 制御手段に接続され制御手段を制御することができる。 ホ ストは、 命令送信手段 (S 5 0 7 ) を含み、 所定の書込み領域に記憶されたデータの読 出し命令を制御手段に送信する。 制御手段は、 フォーマット判定手段 (S 6 2 1、 S 6 2 3 ) を含み、 読出し命令に応じて所定の書込み領域から読み出したデータが、 所定の フォーマットであるか否かを判定する。 制御手段は、 出力手段 (S 6 2 5 ) をさらに含 み、 フォーマット判定手段によって、 読み出したデータが所定のフォーマットであると 判定されたときのみ、 当該読み出したデータをホストに出力する。
第 1の発明によれば、 所定の書込み領域から読み出したデータが所定のフォーマツト であるか否かを判定し、 所定のフォーマツトを有するデータのみをホストに出力するよ うにした。 したがって、 所定のフォーマットを有しないデータが所定の書込み領域に書 込まれていても、 当該データはホストに出力されないので、 意図しないデータが不正に 使用されるのを防止できる。
第 2の発明は、 第 1の発明に従属する書込み領域セキュリティシステムであって、 記 憶手段は、 第 1領域および第 2領域を有していて、 制御手段は、 第 1遷移コマンドに応 じて遷移された書込み可能なモードにおいてデ一夕を第 1領域に書き込む第 1書込み手 段をさらに.含み、 フォーマット判定手段は、 所定の書込み領域としての第 2領域から読 み出したデータに対してのみ、 データが所定のフォーマツ卜であるか否かを判定する。 第 2の発明では、 記憶手段には、 第 1領域 (2 0 4 ) と第 2領域 (2 0 6 ) とが設け られる。 制御手段は、 第 1書込み手段 (S 8 3、 S 2 6. 7 ) をさらに含み、 第 1遷移コ マンドに応じて遷移された書込み可能なモードにおいて、データを第 1領域に書き込む。 また、 フォーマット判定手段は、 所定の書込み領域としての第 2領域から読み出したデ —夕に対してのみ、 当該データが所定のフォーマツ卜であるか否かを判定する。
第 2の発明によれば、 記憶手段のうちの所定の書込み領域に対してのみ、 フォーマツ ト判定によるセキュリティをかけることができるとともに、 他の領域には書込み可能な モードへの遷移によってセキュリティのかけられる書込みを行うことができる。 したが つて、 書込みの用途に応じて書込み領域を使い分けて、 適切な書込みを行うことができ る。
第 3の発明は、 第 1の発明に従属する書込み領域セキュリティシステムであって、 制 御手段は、 ホストから指定された読出しアドレスが所定の書込み領域のうちのアクセス 可能な領域内であるか否かを判定するァドレス判定手段をさらに含み、 ァドレス判定手 段によって読出しアドレスが領域内であると判定されるとき、フォーマツト判定手段は、 読み出したデータが所定のフォーマツトであるか否かを判定する。
第 3の発明では、 制御手段は、 アドレス判定手段 (S 6 1 9 ) をさらに含み、 ホス卜 力 ^指定された読出しアドレスが所定の書込み領域のうちのアクセス可能な領域内であ るか否かを判定する。 読出しアドレスがアクセス可能な領域内であると判定されるとき に、 当該読み出したデータが所定のフォーマットであるか否かを判定する。
第 3の発明によれば、 適切な読出し指定が行われたデータに対してのみ、 所定のフォ 一マットであるか否かを判定することができる。
第 4の発明は、 第 1の発明に従属する書込み領域セキュリティシステムであって、 フ ォーマツト判定手段は、 読み出したデータのパリティチェックによって判定を行う。 第 4の発明では、 読み出したデータのパリティチェックによって、 所定のフォーマツ 卜であるか否かが判定される。 したがって、 正当なデータであるか否かを簡単にチエツ クすることができる。
第 5の発明は、 第 1の発明に従属する書込み領域セキュリティシステムであって、 制 御手段は、 読み出したデータが所定のフォーマットではないとフォーマット判定手段に よって判定されるとき、 イリ一ガルモードに遷移する。
第 5の発明では、読み出したデータが所定のフォーマツトではないと判定されるとき、 制御手段がイリーガルモードに遷移する。 したがって、 所定の書込み領域からのデータ の読出しが行われないようにすることができ、 不正に書込まれたデータが使用されるの を防止できる。
第 6の発明は、 第 1の発明に従属する書込み領域セキュリティシステムであって、 ホ ストは、 パリティビットの付加されたデータを生成する書込みデータ生成手段を含み、 制御手段は、 書込みデータ生成手段によって生成されたデータを所定の書込み領域に書 き込む第 2書込み手段を含む。
第 6の発明では、 ホストは、 書込みデータ生成手段 (S 4 0 3 ) を含み、 パリティビ 9 ットの付加されたデータを生成する。 たとえば、 各バイトの先頭 7ビットは、 所定の書 込み領域に書き込むために生成されたデータであり、 最終ビットに先頭 7ビットのパリ ティが追加される。 制御手段は、 第 2書込み手段 (S 4 0 9 ) をさらに含み、 生成され たパリティ付きデータを所定の書込み領域に書き込む。
第 6の発明によれば、 所定の書込み領域への書込みの際には、 書込みデータをパリテ ィビットの追加されたデータに変換してから、当該所定の領域に書き込むことができる。 したがって、 所定の書込み領域から読み出す際には、 当該デ一夕は所定のフォーマット を有する正当なデータであると判定されて、 ホストに出力されることとなる。
第 7の発明は、 第 2の発明に従属する書込み領域セキュリティシステムであって、 記 憶手段は、 第 1領域および第 2領域の境界データを記憶する。
第 7の発明では、記憶手段には、第 1領域および第 2領域の境界データが記憶される。 制御手段は、 第 1領域の境界データおよび第 2領域の境界データをそれぞれ参照するこ とによって、 第 1領域および第 2領域のそれぞれを把握して、 アクセスすることができ る。
第 8の発明は、 第 2の発明に従属する書込み領域セキュリティシステムであって、 サ ーバおよびサーバからデータをダウンロードする情報処理装置を含んでいる。 情報処理 装置は、 記憶手段、 制御手段およびホストを含む。 サーバは、 記憶手段の第 1領域に書 込み可能なモードに制御手段を遷移させるための第 1遷移コマンドを情報処理装置に送 信する遷移コマンド送信手段、 およびダウンロードするデータを情報処理装置に送信す るデータ送信手段を含む。
第 8の発明では、 システム (1 0 0 ) は、 サーバ (1 0 2 ) および情報処理装置 (1 0 ) を含む。 情報処理装置は、 上述の記憶手段、 制御手段およびホストを含んでいて、 サーバからデータをダウンロードする。ダウンロードされたデータが書き込まれるのは、 記憶手段の第 1領域である。 つまり、 第 1書込み手段が、 第 1遷移コマンドに応じて遷 移された書込み可能なモードにおいて、 データを第 1領域に書き込む。 サーバは、 遷移 コマンド送信手段 (S 3 3、 S 3 2 3 ) を含み、 第 1領域に書込み可能なモードに制御 手段を遷移させる第 1遷移コマンドを情報処理装置に送信する。 サ一パ、は、 データ送信 手段 (S 6 7、 S 3 4 1 ) をさらに含み、 ダウンロードするデータを情報処理装置に送 信する。
第 8の発明によれば、 第 1領域に対して、 サーバからの第 1遷移コマンドに応じた書 込み可能なモードへの遷移によって段階的なセキュリティのかけられるデータ書込みを 行うことができ、 一方、 第 2領域に対しては、 フォーマット判定によるセキュリティを かけることができる。
第 9の発明は、 第 8の発明に従属する書込み領域セキュリティシステムであって、 サ ーバは、 第 1遷移コマンドを暗号化する暗号化手段をさらに含む。 遷移コマンド送信手 段は、 暗号化手段によって暗号化された第 1遷移コマンドを送信し、 制御手段は、 暗号 化された第 1遷移コマンドを復号化する復号化手段をさらに含む。
第 9の発明では、 サーバは暗号化手段 (S 3 1 ) をさらに含み、 第 1遷移コマンドを 暗号化する。 この暗号化された第 1遷移コマンドが遷移コマンド送信手段によって送信 される。 制御手段は復号化手段 (S 3 7、 S 2 2 7 ) をさらに含み、 暗号化された第 1 遷移コマンドを復号化する。
第 9の発明によれば、 第 1領域に対する書込みについて、 第 1遷移コマンドを暗号化 して送信することができるので、 モード遷移に対するセキュリティ度を高めることがで きる。
第 1 0の発明は、 第 8の発明に従属する書込み領域セキュリティシステムであって、 第 1遷移コマンドは、 ダウンロードするデータを書き込むために指定されたアドレスを 含む。 制御手段は、 第 1遷移コマンドに応じて第 1領域に書込み可能なモードに遷移し たとき、 第 1領域のうち指定されたアドレスのみ書込み可能にする書込み可能化手段を さらに含む。
第 1 0の発明では、 第 1遷移コマンドにおいて、 データを書き込むためのアドレスを 指定することができる。 制御手段は書込み可能化手段 (S 4 5、 S 2 3 7 ) をさらに含 み、 第 1領域のうち指定されたァドレスのみ書込み可能にする。
第 1 0の発明によれば、 第 1遷移コマンドによって、 書込み可能なモードに遷移させ ることができるとともに、 当該コマンドで指定したアドレスのみを書込み可能にするこ とができる。
第 1 1の発明は、第 1 0の発明に従属する書込み領域セキュリティシステムであって、 書込み可能化手段は、 第 1領域のうち指定されたァドレスから一定範囲を書込み可能に する。
第 1 1の発明では、 第 1遷移コマンドで書込み可能なモードに遷移させることができ るとともに、 第 1領域のうち指定したァドレスから一定範囲を書込み可能にすることが できる。
第 1 2の発明は、 第 9の発明に従属する書込み領域セキュリティシステムであって、 制御手段は、 第 1領域に書込み可能なモードの 1つ前の段階で遷移される通常よりセキ ユリティ度の高いセキュアモードにおいて、 暗号化された第 1遷移コマンドを復号化手 段によって復号化する。
第 1 2の発明では、 書込み可能なモードの 1つ前に、 通常よりもセキュリティ度の高 ぃセキュアモードが設けられており、 このセキュアモードにおいて、 暗号化された第 1 遷移コマンドの復号化が行われる。
第 1 2の発明によれば、 第 1遷移コマンドの復号化をセキュアモードで行うことがで きるので、 セキュリティ度をより高めることができる。 第 1 3の発明は、 第 9の発明に従属する書込み領域セキュリティシステムであって、 サーバは、 第 1遷移コマンドの暗号のための第 1キー、 および第 1キーと異なるダウン ロードするデータの暗号のための第 2キーを記憶する。 暗号化手段は、 第 1キーを用い て第 1遷移コマンドを暗号化する。 データ送信手段は、 第 2キーを用いて暗号化された ダウンロードするデータを送信する。記憶手段は、第 1キーおよび第 2キーを記憶する。 復号化手段は、 暗号化された第 1遷移コマンドを第 1キーを用いて復号化する。 第 1書 込み手段は、 第 1領域に書込み可能なモードにおいて、 暗号化されたダウンロードする データを第 2キーを用いて復号化して第 1領域に書き込む。
第 1 3の発明では、 第 1遷移コマンドの暗号のための第 1キーと、 第 1キーとは異な り、 ダウンロードするデータの暗号のための第 2キーとが、 サーバおよび記憶手段に記 憶される。 つまり、 サーバと制御手段は、 第 1遷移コマンドのための共通キー (第 1キ 一) と、 ダウンロードするデータのための共通キー (第 2キー) とを有している。 サ一 バによって第 1キーで暗号化されて送信された第 1遷移コマンドは、 制御手段によって 第 1キーで復号化され、 制御手段は当該第 1遷移コマンドによって書込み可能なモード に遷移する。 また、 サーバによって第 2キーで暗号化されて送信されたダウンロードデ 一夕は、 制御手段によって第 2キーで復号化され、 書込み可能モードにおいて第 1領域 に書込まれる。
第 1 3の発明によれば、 モード遷移およびダウンロードデータに対して別々のセキュ リティをかけることができ、 セキュリティ度をより高めることができる。
第 1 4の発明は、第 1 3の発明に従属する書込み領域セキュリティシステムであって、 サーバは、 ダウンロードするデータのメッセージダイジエスト認証用の第 3キーをさら に記憶する。 データ送信手段は、 第 3キーを用いて生成された認証記号を付加したダウ ンロードするデータを、 第 2キーを用いて暗号化して、 当該暗号化されたデータを送信 する。 記憶手段は、 第 3キーをさらに記憶する。 制御手段は、 第 1領域に書込み可能な モードにおいて、 暗号化されたデータを第 2キーを用いて復号化する。 第 1書込み手段 は、 復号化したデータが第 3キーを用いて認証されたとき、 当該データを第 1領域に書 き込む。
第 1 4の発明では、 ダウンロードするデータのメッセージダイジェスト認証用の第 3 キーが、 サーバおよび記憶手段に記憶される。 サーバは、 第 3キーを用いて生成された 認証記号(M I C)を付加したデータを、第 2キーで暗号化して送信する。制御手段は、 書込み可能モードにおいて、 暗号化されたデータを第 2キーで復号化する。 そして、 当 該復号化したデータが第 3キーを用いて認証されたときには、 当該データが第 1領域に 書込まれる。
第 1 4の発明によれば、 ダウンロードするデータについてメッセージダイジエスト認 証を行うことができる。 第 1 5の発明は、第 1 4の発明に従属する書込み領域セキュリティシステムであって、 第 3キーは、 第 2キーの一部を置き換えることによって得られるキーである。
第 1 5の発明では、 メッセージダイジェスト認証用の第 3キ一は、 ダウンロードする データの暗号のための第 2キーの一部置換によって得られるキーである。 したがって、 第 2キーと第 3キーとで同一部分を共用するようにすれば、 キーを記憶しておくための 領域のサイズを抑制することができ、 コストを低減することができる。
第 1 6の発明は、第 1 2の発明に従属する書込み領域セキュリティシステムであって、 記憶手段は、 暗号化された第 1キ一および第 2キーを記憶している。 制御手段は、 セキ ユアモードに遷移したとき、 暗号化された第 1キーを復号化して R AMに展開し、 第 1 領域に書込み可能なモードに遷移したとき、 暗号化された第 2キーを復号化して R AM に展開する。
第 1 6の発明では、 記憶手段には、 第 1キーおよび第 2キーが暗号化されて記憶され ている。 セキュアモードに遷移したときには、 制御手段によって、 第 1キーが復号化さ れて RAMに自動的に展開され、 書込み可能なモードに遷移したときには、 制御手段に よって、 第 2キーが復号化されて RAMに自動的に展開される。
第 1 6の発明によれば、 モード遷移時に、 当該モードに対応する第 1キーまたは第 2 キーを復号化して RAMに展開することができる。
第 1 7の発明は、第 1 6の発明に従属する書込み領域セキュリティシステムであって、 制御手段は、 セキュアモードに遷移するための第 2遷移コマンドに応じて第 1キーを展 開し、 第 1遷移コマンドに応じて第 2キーを展開する。
第 1 7の発明では、 制御手段によって、 遷移コマンドに応じてモードが遷移されると きに、 第 1キーまたは第 2キーが復号化されて展開される。
第 1 7の発明によれば、 遷移コマンドに応じて、 モードに対応する第 1キーまたは第 2キーを復号化して展開することができる。
第 1 8の発明は、 第 8の発明に従属する書込み領域セキュリティシステムであって、 ホストは、 通常モードにおいて、 制御手段に対するコマンドを、 処理負担の比較的軽い ァルゴリズムに従つて暗号化する通常暗号化手段をさらに含む。
第 1 8の発明では、 通常暗号化手段によって、 通常モードにおいて制御手段に対して 発行されるコマンドを処理負担の比較的軽いアルゴリズムに従つて暗号化することがで きる。
第 1 9の発明は、 第 8の発明に従属する書込み領域セキュリティシステムであって、 ホストは、 制御手段に書込みを指示するための書込みコマンドを発行する書込み発行手 段をさらに含み、 制御手段は、 第 1領域に書込み可能なモードにおいて、 書込みコマン ドに応じて、 ダウンロードするデータを第 1領域に書き込む。
第 1 9の発明では、 ホストは、 書込み発行手段 (S 7 3、 S I 4 3 ) をさらに含み、 T JP2007/067559 書込みコマンドを制御手段に発行する。 制御手段は、 書込み可能なモードにおいて書込 みコマンドに応じてデータの書込みを行う。 '
第 1 9の発明によれば、 ホストからの書込み指示によって、 サーバからダウンロード したデータを第 1領域に書き込むことができる。 データの送信と書込みとを分けて処理 するので、 セキュリティ度を高めることができる。
第 2 0の発明は、 第 9の発明に従属する書込み領域セキュリティシステムであって、 記憶手段は、 当該記憶手段の識別情報を記憶している。 情報処理装置は、 記憶手段に記 憶された識別情報をサーバに送信する識別情報送信手段を含む。 サーバは、 複数の識別 情報に対応付けられた、 第 1遷移コマンドの暗号のための複数の第 1キーを記憶してい る。 暗号化手段は、 記憶手段の識別情報に対応する第 1キーを用いて、 第 1遷移コマン ドを暗号化する。
第 2 0の発明では、 記憶手段は、 当該記憶手段の識別情報を記憶している。 この識別 情報は、 識別情報送信手段 (S 5、 S 1 0 5 ) によってサーバに送信される。 一方、 サ —バは、 複数の識別情報に対応付けられた複数の第 1キーを記憶している。 つまり、 第 1遷移コマンドの暗号のための第 1キーは、 記憶手段ごとに準備されて、 当該記憶手段 およびサーバに記憶されている。 暗号化手段によって、 第 1遷移コマンドは、 受信した 識別情報に対応する第 1キーを用いて暗号化される。
第 2 0の発明によれば、 記憶手段ごとの第 1キーによって第 1遷移コマンドを暗号化 することができ、 当該第 1遷移コマンドによって制御手段を書込み可能なモードに遷移 させることができるので、 セキュリティ度を高めることができる。
第 2 1の発明は、 第 9の発明に従属する書込み領域セキュリティシステムであって、 記憶手段は、 当該記憶手段に記憶されるアプリケーションプログラムの識別情報を記憶 する。 情報処理装置は、 記億手段に記憶された識別情報をサーバに送信する識別情報送 信手段を含む。 サーバは、 複数の識別情報に対応付けられた、 第 1遷移コマンドの暗号 のための複数の第 1キーを記憶している。 暗号化手段は、 受信したアプリケーションプ ログラムの識別情報に対応する第 1キーを用いて、 第 1遷移コマンドを暗号化する。 第 2 1の発明では、 記憶手段は、 当該記憶手段に記憶されるアプリケーションプログ ラムの識別情報を記憶している。 この識別情報は、 識別情報送信手段 (S 1 0 5 ) によ つてサーバに送信される。 一方、 サーバは、 複数の識別情報に対応付けられた複数の第 1キーを記憶している。 つまり、 第 1遷移コマンドの暗号のための第 1キーは、 アプリ ケーシヨン (ゲーム) ごとに準備されて、 記憶手段およびサーバに記憶されている。 暗 号化手段によって、 第 遷移コマンドは、 受信した識別情報に対応する第 1キーを用い て暗号化される。
第 2 1の発明によれば、 アプリケーションごとの第 1キーによって第 1遷移コマンド を暗号化することができ、 当該第 1遷移コマンドによって制御手段を書込み可能なモー ドに遷移させることができるので、 セキュリティ度を高めることができる。 第 2 2の発明は、、第 1の発明に従属する書込み領域セキュリティシステムであって、 ' 記憶手段および制御手段は、 装着可能な記憶媒体に設けられた。
第 2 2の発明では、 記憶手段および制御手段が、 当該システムに装着可能な記憶媒体 ( 2 8 ) に設けられる。 したがって、 記憶媒体に設けられた記憶手段の所定の書込み領 域に対して、 フォーマツト判定によるセキュリティをかけることができる。
第 2 3の発明は、 所定の書込み領域を有する記憶手段とホストとを含む書込み領域セ キユリティシステムにおいて用いられ、 記憶手段に対する書込みと読出しを制御するメ モリコントローラである。 メモリコントローラは、 ホストからの読出し命令に応じて所 定の書込み領域から読み出したデータが所定のフォーマツ卜であるか否かを判定するフ ォーマツト判定手段、 およびフォーマツト判定手段によってデータが所定のフォーマツ トであると判定されたときのみ、 データをホストに出力する出力手段を備える。
第 2 3の発明では、 メモリコントローラ (6 2 ) は、 記憶手段 (6 4 ) およびホスト ( 3 4 )を含む書込み領域セキュリティシステム(1 0、 1 0 0 )において使用される。 メモリコントローラは、 所定の書込み領域 (2 0 6 ) を有する記憶手段に対する書込み と読出しを制御する。 具体的には、 メモリコントローラは、 フォーマット判定手段 (S 6 2 1、 S 6 2 3 ) を含み、 ホストからの読出し命令に応じて所定の書込み領域から読 み出したデータが所定のフォーマットであるか否かを判定する。メモリコントローラは、 出力手段 (S 6 2 5 ) をさらに含み、 データが所定のフォーマットであると判定された ときのみ、 当該データをホストに出力する。
第 2 3の発明によれば、 上述の第 1の発明のような、 意図しないデータが書込まれて も使用されない書込み領域セキュリティシステムを実現できる。
第 2 4の発明は、 所定の書込み領域を有する記憶手段、 記憶手段に対する書込みと読 出しを制御する制御手段、 および制御手段に接続されるホストを含む書込み領域セキュ リティシステムにおけるセキュリティ方法である。 セキュリティ方法は、 制御手段がホ ストからの読出し命令に応じて所定の書込み領域から読み出したデータは所定のフォー マツ卜であるか否かを判定するステップ、 およびデータが所定のフォーマツ卜であると 判定されるときのみ、 制御手段がホストにデータを出力するステップを含む。
第 2 4の発明では、 セキュリティ方法は、 記憶手段 (6 4 )、 制御手段 (6 2 ) および ホスト (3 4 ) を含む書込み領域セキュリティシステム (1 0、 1 0 0 ) において、 所 定の書込み領域 (2 0 6 ) に対するセキュリティ方法である。 この方法において、 制御 手段は、 ホストからの読出し命令に応じて所定の書込み領域から読み出したデータが所 定のフォーマツ卜であるか否かを判定する(S 6 2 1、 S 6 2 3 )。そして、制御手段は、 データが所定のフォーマツトであると判定されるときのみ、 当該データをホス卜に出力 する (S 6 2 5 )。 第 2 4の発明によれば、 上述の第 1の発明のような書込み領域セキュリティシステム を実現できる。
この発明によれば、 所定の書込み領域からデータを読み出す際に、 当該データが所定 のフォーマツトであるか否かを判定して、 当該データが所定のフォーマツトであるとき のみホストに出力するようにしたので、 所定の書込み領域に意図しないデ一夕が書き込 まれた場合には、 当該データはホストに出力されない。 したがって、 所定の書込み領域 に意図しないデータが書込まれたとしても、 当該データが不正に使用されるのを防止す ることができる。
この発明の上述の目的, その他の目的, 特徴および利点は、 図面を参照して行う以下 の実施例の詳細な説明から一層明らかとなろう。 図面の簡単な説明
図 1はこの発明のセキュリティシステムの一実施例を示す図解図である。
図 2は図 1に示すゲーム装置を示す図解図である。
図 3は図 2に示すゲーム装置の電気的構成の一例を示すブロック図である。
図 4は図 3に示すフラッシュメモリのメモリマツプの一例を示す図解図である。
図 5は図 3に示すメモリコントローラのモード遷移の概要を示す図解図である。
図 6はダウンロードモードに遷移する場合のフラッシュメモリのメモリマツプの変化 を示す図解図である。
図 7はバックアツプモ一ドに遷移する場合のフラッシュメモリのメモリマツプの変化 を示す図解図である。
図 8は図 4に示すィンフオメーション領域のメモリマップの一例を示す図解図である。 図 9はメモリコントローラの内部 R AMのメモリマップの一例を示す図解図である。 図 1 0は図 9に示すキー記憶領域のメモリマップの変化を示す図解図である。
図 1 1は図 1に示すサーバのデ一夕ベースの一例を示す図解図である。
図 1 2はサーバの RAMのメモリマップの一例を示す図解図である。
図 1 3はダウンロード処理時のゲーム装置の R AMのメモリマツプの一例を示す図解 図である。
図 1 4はバックアツプ処理時のゲーム装置の RAMのメモリマツプの一例を示す図解 図である。
図 1 5はバックァップ領域に書き込まれるパリティ付きデ一夕の一例を示す図解図で ある。
図 1 6はダウンロード処理時のシステムの動作の一例の一部を示すフロー図である。 図 1 7は図 1 6の続きの一部を示すフロー図である。
図 1 8は図 1 7の続きの一部を示すフロー図である。 7559 図 1 9は図 1 8の続きを示すフロー図である。
図 2 0はダウンロード処理時のゲーム装置の動作の一例の一部を示すフロ—図である。 図 2 1は図 2 0の続きの一部を示すフロー図である。
図 2 2は図 2 1の続きを示すフロー図である。
図 2 3はダウンロード処理時のメモリコントローラの動作の一例の一部を示すフロー 図である。
図 2 4は図 2 3の続きの一部を示すフロー図である。
図 2 5は図 2 4の続きの一部を示すフロー図である。
図 2 6は図 2 5の続きを示すフロー図である。
図 2 7はダウンロード処理時のサーバの動作の一例の一部を示すフロー図である。 図 2 8は図 2 7の続きの一部を示すフロー図である。
図 2 9は図 2 8の続きを示すフロー図である。
図 3 0はバックアツプ書込み時のゲーム装置の動作の一例を示すフロー図である。 図 3 1はバックアップ読出し時のゲーム装置の動作の一例を示すフロー図である。 図 3 2はバックアップモードのメモリコントローラの動作の一例の一部を示すフロー 図である。
図 3 3は図 3 2の続きを示すフロー図である。 発明を実施するための最良の形態
図 1を参照して、 この発明の実施例のセキュリティシステム (以下、単に「システム」 という。) 1 0 0は、情報処理装置 1 0およびサーバ 1 0 2を含む。情報処理装置 1 0は、 サーバ 1 0 2からデータをダウンロードして、当該データを所定の記憶領域に保存する。 この実施例のシステム 1 0 0は、 ダウンロードセキュリティシステムであり、 ダウン口 ードしたデータを書き込むための所定の記憶領域が不正なダウンロードによって利用さ れるのを防止しょうとするものである。 また、 情報処理装置 1 0は、 バックアップデ一 夕のための書込み領域セキュリティシステムとしても機能し、 バックアツプデータを書 き込むための所定の記憶領域が不正利用されるのを防止するものでもある。 なお、 シス テム 1 0 0がバックアツプデータのための書込み領域セキュリティシステムとして機能 する場合もある。
なお、情報処理装置 1 0は、この実施例では携帯型ゲーム装置の形態で実現されるが、 他の実施例では、 携帯情報端末、 携帯電話機、 パーソナルコンピュータまたは据え置き 型ゲーム装置等のような他の形態のコンピュータであってよい。 また、 サーバ 1 0 2は コンピュータであり、 図示は省略するが、 C P U、 R AM, R OM, HD D, 通信装置 等を備えている。
情報処理装置すなわちゲーム装置 1 0は、 アクセスポイント 1 0 4およびネットヮー 67559 ク 106を介してサ一バ 102に接続可能である。 ネットワーク 106は、 たとえば、 ワイドエリアネットワーク (WAN) やインターネット等であり、 あるいはローカルェ リアネットワーク (LAN) であってもよい。 ゲーム装置 10は、 サーバ 102からデ 一夕をダウンロードする際には、 無線 (または有線) によってアクセスポイント 104 に接続し、 当該アクセスポイント 104を介してネットワーク 106上のサーバ 102 と通信する。 なお、 ゲーム装置 10は、 ユーザの入力またはリスト選択等によってァク セスポイント 104およびサーバ 102の I Pアドレスを取得する。
図 2を参照して、 ゲーム装置 10は、 第 1の液晶表示器 (LCD) 12および第 2の LCD 14を含む。 LCD 12および LCD 14は、 所定の配置位置となるようにハウ ジング 16に収納される。 この実施例では、 ハウジング 16は、 上側ハウジング 16 a と下側ハウジング 16 bとによって構成され、 LCD12は上側ハウジング 16 aに収 納され、 LCD 14は下側ハウジング 16 bに収納される。 したがって、 LCD12と LCD14とは縦 (上下) に並ぶように近接して配置される。
なお、 この実施例では、 表示器として LCDを用いるようにしてあるが、 LCDに代 えて、 EL (Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるよ うにしてもよい。
図 2からも分かるように、 上側ハウジング 16 aは、 LCD 12の平面形状よりも少 し大きな平面形状を有し、 一方主面から LCD 12の表示面を露出するように開口部が 形成される。 一方、 下側ハウジング 16 bの平面形状およびサイズも上側ハウジング 1 6 aと同等に選ばれ、 横方向の略中央部に LCD 14の表示面を露出するように開口部 が形成される。 下側ハウジング 16 bの右側面には電源スィッチ 18が設けられる。 また、 上側ハウジング 16 aには、 LCD 12を挟んで左右に、 スピーカ 36 aおよ び 36 b (図 3参照) のための音抜き孔 20 aおよび 20 bが形成される。
上側ハウジング 16 aと下側ハウジング 16 bとは、上側ハウジング 16 aの下辺(下 端) と下側ハウジング 16 bの上辺 (上端) の一部とが回動可能に連結されている。 し たがって、 たとえば、 ゲームをプレイしない場合には、 LCD 12の表示面と LCD 1 4の表示面とが対面するように、 上側ハウジング 16 aを回動させて折りたたんでおけ ば、 L C D 12の表示面および L CD 14の表示面に傷がつくなどの破損を防止するこ とができる。 ただし、 上側ハウジング 16 aと下側ハウジング 16 bとは、 回動可能に 連結せずに、 それらを一体的 (固定的) に設けたハウジング 16を形成するようにして もよい。
そして、 上側ハウジング 16 aと下側ハウジング 16 bとの連結部の中央には、 マイ ク (図示せず) のためのマイク孔 20 cが形成される。 マイクから取り込んだ音、 音声 または息などによる音声信号に基づいてゲーム処理を行うことが可能である。
また、 下側ハウジング 16 bには、 操作スィッチ 22 (22 a, 22 b, 22 c, 2 2 d , 2 2 e , 2 2 Lおよび 2 2 R) が設けられる。 操作スィッチ 2 2は、 方向指示ス イッチ (十字スィッチ) 2 2 a , スタートスィッチ 2 2 b、 セレクトスィッチ 2 2 c、 動作スィッチ(Aボタン) 2 2 d、動作スィッチ(Bボタン) 2 2 e、 動作スィッチ(X ポタン) 2 2 f、 動作スィッチ (Yボタン) 2 2 g、 動作スィッチ (Lポタン) 2 2 L および動作スィッチ (Rボタン) 2 2 Rを含む。
スィッチ 2 2 aは、 下側ハウジング 1 6 bの一方主面であり、 L C D 1 4の左側に配 置される。 その他のスィッチ 2 2 b— 2 2 gは、 下側ハウジング 1 6 bの一方主面であ り、 L C D 1 4の右側に配置される。 さらに、 動作スィッチ 2 2 Lおよび 2 2 Rは、 そ れぞれ下側ハウジング 1 6 bの上端面の左右角部に配置される。 なお、 動作スィッチ 2 2 Lおよび 2 2 Rは下側ハウジング 1 6 bの背面に設けられており、 図 2のような正面 視では連結部の背後に隠れているので破線で示されている。
方向指示スィッチ 2 2 aは、 ディジタルジョイスティックとして機能し、 4つの押圧 部の 1つを操作することによって、 ユーザないしプレイヤによつて操作可能なプレイャ オブジェクト(またはプレイヤキャラクタ)の進行方向 (移動方向) を指示したり、 カー ソルの進行方向を指示したりする等のために用いられる。 また、 各押圧部には、 特定の 役割を割り当てることができ、 4つの押圧部の 1つを操作することによって、 割り当て られた役割を指示 (指定) することができる。
スタートスィッチ 2 2 bは、 プッシュボタンで構成され、 ゲームを開始 (再開) した り、 一時停止 (Pause)したりする等に用いられる。 また、 セレクトスィッチ 2 2 cは、 プ ッシュポタンで構成され、 ゲームモードの選択等に用いられる。
動作スィッチ 2 2 dすなわち Aポタンは、 プッシュボタンで構成され、 方向指示以外 の動作、 すなわち、 プレイヤオブジェクトに打つ (パンチ)、 投げる、 つかむ (取得)、 乗る、 ジャンプするなどの任意のアクションをさせることができる。 たとえば、 ァクシ ヨンゲームにおいては、 ジャンプ、 パンチ、 武器を動かす等を指示することができる。 また、 ロールプレイングゲーム(R P G)やシミュレーション R P Gにおいては、 アイテ ムの取得、 武器やコマンドの選択および決定等を指示することができる。 動作スィッチ 2 2 eすなわち Bポタンは、 プッシュボタンで構成され、 セレクトスィッチ 2 2 cで選 択したゲームモードの変更や Aボタン 2 2 dで決定したアクションの取り消し等のため に用いられる。
動作スィッチ 2 2 fすなわち Xポタン、 および動作スィッチ 2 2 gすなわち Yボタン は、 プッシュポタンで構成され、 Aボタン 2 2 dと Bポタン 2 2 eだけでは、 ゲーム進 行ができないときに、 補助的な操作に用いられる。 ただし、 Xポタン 2 2 fおよび Yポ タン 2 2 gは、 Aポタン 2 2 dおよび Bポタン 2 2 eと同様の操作に用いることも可能 である。 もちろん、 ゲームプレイにおいて Xボタン 2 2 f と Yポタン 2 2 gとを必ずし も使用しなくてよい。 動作スィッチ 22L (左押しポタン)および動作スィッチ 22 R (右押しボタン)は、 プッシュポタンで構成され: 左押しボタン (Lポタン) 22Lおよび右押しポタン (R ポタン) 22Rは、 Aボタン 22 dおよび Bボタン 22 eと同様の操作に用いることが でき、 また、 Aボタン 22 dおよび Bボタン 22 eの補助的な操作に用いることができ る。 さらに、 Lポタン 22Lおよび Rボタン 22Rは、 方向スィッチ 22 a, Aボタン 22 d, Bボタン 22 e, Xボタン 22 f, Yボタン 22 gに割り当てられた役割を、 他の役割に変更することができる。
また、 LCD 14の上面には、 夕ツチパネル 24が装着される。 夕ツチパネル 24と しては、 たとえば、 抵抗膜方式、 光学式 (赤外線方式)および静電容量結合式のいずれか の種類のものを用いることができる。 また、 夕ツチパネル 24は、 その上面をステイツ ク 26ないしはペン (スタイラスペン)或いは指(以下、 これらを 「スティック 26等」 という場合がある。)で、 押圧したり、 撫でたり、 触れたりすることにより操作 (タツチ 入力) すると、 スティック 26等の操作位置の座標を検出して、 当該検出座標に対応す る座標データを出力する。
なお、 この実施例では、 LCD 14 (LCD 12も同じ、 または略同じ。) の表示面の 解像度は 256do t x i 92 do tである。 夕ツチパネル 24の検出精度も表示画面 に対応して 256 do t X 192 do tとしてあるが、 夕ツチパネル 24の検出精度は 表示画面の解像度よりも低くてもよく、 高くてもよい。
LCD 12および LCD 14には異なるゲーム画面を表示することができる。 たとえ ば、 レースゲームでは一方の LCDに運転席からの視点による画面を表示し、 他方の L CDにレース (コース) 全体の画面を表示することができる。 また、 RPGでは、 一方 の LCDにマップやプレイヤオブジェク小等のキャラクタを表示し、 他方の LCDにプ レイヤオブジェクトが所有するアイテムを表示することができる。 さらに、 一方の LC Dにプレイヤオブジェクトゃノンプレイヤオブジェクトなどを含むゲーム画面を表示し、 他方の LCDに当該プレイヤオブジェクトゃノンプレイヤオブジェク卜に関する情報を 含む他のゲーム画面または当該プレイヤオブジェクトを操作するための操作画面を表示 することができる。 さらには、 2つの LCD 12および LCD 14を合わせて 1つの画 面として用いることにより、 プレイヤオブジェクトが倒さなければならない巨大な怪物 (敵オブジェクト) を表示することもできる。
したがって、プレイヤはスティック 26等で夕ツチパネル 24を操作することにより、 LCD 14の画面に表示されるプレイヤオブジェクト、 敵オブジェクト、 アイテムォブ ジェクト、 操作オブジェクトなどの画像を指示(操作) したり、 コマンドを選択(入力) したりすることができる。 また、 仮想ゲーム空間 (3次元ゲーム空間) に設けられる仮 想カメラ (視点) の方向 (視線の向き) を変化させたり、 ゲーム画面 (マップ) のスク 口ール (徐々に移動表示)方向を指示したりすることもできる。 なお、 ゲームの種類によっては、 夕ツチパネル 24を用いることにより、 その他の入 力指示も可能である。たとえば、 LCD 14上の夕ツチパネル 24において文字,数字, 記号等を手書き入力することができる。
このように、 ゲーム装置 10は、 2画面分の表示部となる LCD 12および LCD 1 4を有し、 いずれか一方 (この実施例では、 LCD 14) の上面に夕ツチパネル 24が 設けられるので、 2画面 (12, 14) と 2系統の操作部 (22, 24) とを有する構 成になっている。
なお、 この実施例では、 第 1の LCD 12と第 2の LCD 14とを縦方向に並べて配 置するようにしているが、 2つの LCDの配置は適宜に変更され得る。他の実施例では、 第 1の LCD 12と第 2の LCD 14とを横方向に並べて配置するようにしてもよい。 また、 この実施例では、 2つの LCDを設けるようにしていたが、 表示手段としての LCDの数は適宜変更され得る。 他の実施例では、 縦長形状の 1つの LCDを設けて、 表示領域を上下に分けて、 2つのゲーム画面をそれぞれの表示領域に表示するようにし てもよいし、 あるいは、 横長形状の 1つの LCDを設けて、 表示領域を左右に分割し、 2つゲーム画面をそれぞれの表示領域に表示するようにしてもよい。
また、 スティック 26は、 たとえば下側ハウジング 16 bに設けられる収納部 (図示 せず) に収納することができ、 必要に応じて取り出される。 ただし、 スティック 26を 設けない場合には、 その収納部も設ける必要はない。
さらに、 ゲーム装置 10はメモリカード (またはカートリッジ) 28を含み、 このメ モリカード 28はゲーム装置 10に装着可能な記憶媒体であり、 下側ハウジング 16b の上端面に設けられる挿入部 30 (図 2では点線で示す) に挿入される。 挿入部 30の 奥部には、 メモリカード 28の揷入方向先端部に設けられるコネクタ 60と接合するた めのコネクタ 32 (図 3参照) が設けられており、 したがって、 メモリカード 28が挿 入部 30に挿入されると、 コネクタ同士が接合され、 ゲーム装置 10の CPU34 (図 3参照) がメモリカード 28にアクセス可能となる。
なお、 図 1では省略するが、 たとえば、 下側ハウジング 16 bにおいて、 その裏面に は電池収容ボックスが設けられ、 下端面 (底面) には、 音量スィッチおよびィャフォン ジャックなどが設けられ、 上端面 (天面) には、 外部拡張コネクタなどが設けられる。 図 3はゲーム装置 10の電気的な構成を示すプロック図である。この図 3を参照して、 ゲーム装置 10は電子回路基板 38を含み、 この電子回路基板 38には上述の C P U 3 4等の回路コンポーネントが実装される。 CPU 34は、 ノス 40を介して前述のコネ クタ 32に接続されるととともに、 RAM42、 第 1のグラフィック処理ユニット (G PU) 44、 第 2の GPU46、 入出力インタ一フェース回路(以下、 「IZF回路」 と いう。) 48、 LCDコントローラ 50および無線通信部 58に接続される。
コネクタ 32には、 上述したように、 メモリカード 28が着脱自在に接続される。 メ モリカード 28は、 メモリコントローラ 62およびフラッシュメモリ 64を含み、 メモ リコントローラ 62はバスを介してフラッシュメモリ 64およびコネクタ 60と接続さ れる。 したがって、 上述したように、 CPU34は、 メモリコントローラ 62を介して フラッシュメモリ 64にアクセスすることができる。
メモリコントローラ 62は、 フラッシュメモリ 64の書込みおよび読出しを制御する 制御装置である。 メモリコントローラ 66は内部メモリとして RAM66を有する。 フラッシュメモリ 64は、 ゲーム装置 10で実行すべきゲームのためのゲームプログ ラム、画像データ (文字ゃォブジェクトの画像、背景画像、 アイテム画像、 アイコン(ポ タン) 画像、 メッセ ジ画像など) およびゲームに必要な音 (音楽) のデータ (音デ一 夕) 等を予め記憶する。 また、 後述するように、 フラッシュメモリ 64には、 ダウン口 ードしたデータを保存するための領域や、 そのゲームの途中データやゲームの結果デー 夕などのバックアップデータを記憶するための領域が設けられている。 また、 この実施 例ではフラッシュメモリ 64として NAND型フラッシュメモリが適用される。 他の実 施例では、 他の不揮発性メモリが適用されてよい。
ゲーム装置 10の RAM42は、 バッファメモリやワーキングメモリとして使用され る。 つまり、 CPU34は、 メモリカード 28に記憶されたゲームプログラム、 画像デ 一夕および音データ等を RAM42にロードし、 ロードしたゲームプログラムを実行す る。 また、 CPU34は、 ゲームの進行に応じて一時的に生成するデータ (ゲームデー 夕やフラグデ一夕) を RAM 42に記憶しつつゲーム処理を実行する。
なお、 ゲームプログラム、 画像データおよび音データ等は、 メモリカード 28から一 度に全部または部分的にかつ順次的に読み出され、 RAM42に記憶される。
ただし、 ゲーム装置 10ではゲーム以外の他のアプリケーションが実行されてよく、 この場合、 メモリカード 28のフラッシュメモリ 64には、 当該アプリケーションにつ いてのプログラムおよび画像デ一夕等の必要なデータが記憶されてよい。 また、 必要に 応じて、 音 (音楽) データが記憶されてもよい。
GPU44および GPU46は、 それぞれ、 描画手段の一部を形成し、 たとえばシン ダルチップ AS I Cで構成され、 CPU 34からのグラフィックスコマンド(作画命令) を受け、 そのグラフィックスコマンドに従って画像データを生成する。 ただし、 CPU
34は、 グラフィックスコマンドに加えて、 画像データの生成に必要な画像生成プログ ラム(ゲームプログラムに含まれる。)を GPU44および GPU46のそれぞれに与え る。
また、 GPU44には、 第 1のビデオ RAM (以下、 「VRAM」 という。) 52が接 続され、 GPU46には、 第 2の VRAM54が接続される。 GPU44および GPU
46が作画コマンドを実行するにあたって必要なデータ (画像データ:ポリゴンやテク スチヤ等のデータ) は、 GPU44および GPU46が、 それぞれ、 第 1の VRAM 5 7559
2および第 2の VRAM54にアクセスして取得する。
なお、 CPU3'4は、 描画に必要な画像データを GPU44および GPU46を介し て第 1の VRAM 52および第 2の VRAM 54に書き込む。 0?1144は¥1^八1^5 2にアクセスして描画のための画像データを作成し、 その画像データを VRAM 52の 描画バッファに記憶する。 GPU46は VRAM 54にアクセスして描画のための画像 データを作成し、 その画像データを VRAM 54の描画バッファに記憶する。 描画バッ ファとしてはフレームバッファまたはラインバッファ等が採用されてよい。
VRAM52および VRAM54は、 L CDコントローラ 50に接続される。 LCD コントローラ 50はレジス夕 56を含み、レジスタ 56はたとえば 1ビッ卜で構成され、 CPU34の指示によって 「0」 または 「1」 の値 (データ値) を記憶する。 LCDコ ントローラ 50は、 レジスタ 56のデータ値が 「0」 である場合には、 GPU44によ つて作成された画像データを LCD 12に出力し、 GPU46によって作成された画像 データを LCD 14に出力する。 また、 LCDコントローラ 50は、 レジスタ 56のデ 一夕値が 「1」 である場合には、 GPU44によって作成された画像データを LCD 1 4に出力し、 GPU46によって作成された画像データを LCD 12に出力する。
なお、 LCDコントローラ 50は、 VRAM 52および VRAM 54から直接画像デ 一夕を読み出したり、 GPU44および GPU46を介して VRAM52および VRA M 54から画像データを読み出したりする。
また、 VRAM52および VRAM54は RAM42に設けられてもよいし、 あるい はその描画バッファおよび Zバッファが RAM42に設けられてもよい。
1ノ 回路48には、 操作スィッチ 22, 夕ツチパネル 24およびスピーカ 36 a, 36 bが接続される。ここで、操作スィッチ 22は、上述したスィッチ 22 a, 22 b, 22 c, 22 d, 22 e, 22 g, 22 Lおよび 22 Rであり、 操作スィッチ 22が操 作されると、 対応する操作信号 (操作データ) が Iノ F回路 48を介してじ?1;34に 入力される。 また、 夕ツチパネル 24からの座標データが IZF回路 48を介して CP U34に入力される。 さらに、 CPU 34は、 ゲーム音楽(BGM)、 効果音またはゲ一 ムキャラクタの音声 (擬制音) などのゲームに必要な音データを RAM42から読み出 し、 IZF回路 48を介してスピーカ 36 a, 36 bから当該音を出力する。
無線通信部 58は他のゲーム装置 10や通信機器等との間で無線によってデータを送 受信するための通信手段である。 なお、 ゲーム装置 10が送受信する微弱電波は、 電波 法による規制のかからない強度に設定されている。 CPU 34がゲームデータゃコマン ドなどのデータを無線通信部 58に与えると、 無線通信部 58は、 相手方へのデ一夕を 無線信号に変調してアンテナから送信する。 また、 無線通信部 58は、 相手方からの無 線信号を同じアンテナで受信してデータに復調し、 当該データを CPU 34に与える。 この無線通信部 58を用いて、 ゲーム装置 10は、 他のゲーム装置 10との間でデ一夕 を通信しつつ通信ゲームを実行することが可能である。 また、 ゲーム装置 1 0は、 上述 のように、 無線通信部 5 8を介してアクセスポイント 1 0 4—およびネットワーク 1 0 6 に接続することができ、 ネットワーク 1 0 6上のサーバ 1 0 2からプログラムやデータ をダウンロードしたり、 ネットワーク 1 0 6を介して他のゲーム装置 1 0と通信したり することが可能である。
このシステム 1 0では、 サーバ 1 0 2からダウンロードしたデータを書き込むための 所定の領域がメモリカード 2 8のフラッシュメモリ 6 4に設けられる。また、ゲーム(ァ プリケ一シヨン) の実行中に生成されるバックアップデータを書き込むための所定の領 域がフラッシュメモリ 6 4に設けられる。 図 4にフラッシュメモリ 6 4のメモリマップ の一例が示される。 フラッシュメモリ 6 4にはインフォメーション領域 2 0 0、 ゲーム 領域 2 0 2、 ダウンロード領域 2 0 4およびバックアップ領域 2 0 .6等が設けられる。 なお、 図 4はメモリマップの一部を示しており、 他の領域が設けられ得る。
ダウンロード領域 2 0 4がサーバ 1 0 2からダウンロードしたデータを書き込むため の領域であり、 バックアツプ領域 2 0 6がバックアツプデ一夕を書き込むための領域で ある。 なお、 インフォメーション領域 2 0 0には、 後述の図 8のように、 フラッシュメ モリ 6 4のヘッダ情報や所定のデータが予め記憶される。また、ゲーム領域 2 0 2には、 ゲームプログラムやデータが予め記憶される。 ゲームプログラムは、 たとえば、 ゲーム 処理プログラム、 ダウンロード処理プログラム、 およびバックアップ処理プログラムな どを含んでいる。
このフラッシュメモリ 6 4に設けられた書込み領域に対して段階的なセキュリティを かけることができるように、 メモリコントローラ 6 2の動作をモードに応じて制御する ようにしている。 各モードではメモリコントローラ 6 2の実行可能な動作が限られ、 必 要な動作を実行するためにはモードを切替える必要がある。 メモリコントローラ 6 2の モード遷移の概要が図 5に示されている。メモリコントローラ 6 2は、この実施例では、 ゲームモード、 D L (Downl oad) セキュアモード、 ダウンロードモードおよびバックァ ップモード等を有する。 メモリコントローラ 6 2は、 外部 (ホストである C P U 3 4、 またはネットワーク 1 0 6上のサーバ 1 0 2 ) から与えられる各種の遷移コマンドに応 じて、 そのモードを遷移させるようになつている。 なお、 C P U 3 4は、 メモリカード 2 8に記憶されるアプリケーションプログラム (ゲーム装置 1 0内に記憶されるプログ ラムでもよい) を実行することにより遷移コマンドを発行する。
ゲームモードは、 通常のモードである。 メモリコントローラ 6 2は、 たとえばゲーム 装置 1 0の電源がオンされたときに、 当該ゲーム装置 1 0から電力が供給されてメモリ コントローラ 6 2が起動する。 メモリコントローラ 6 2は、 起動すると、 このゲームモ ードに置かれ、 ゲーム実行中も基本的には (より具体的には、 フラッシュメモリにデー タを書き込む必要がないときには) このゲームモードにある。 ゲーム実行中はフラッシ ュメモリ 64からプログラムおよびデータを必要に応じて読み出す必要があるので、 こ のゲームモードでは、 フラッシュメモリ 64からの読出しが高速に行えるようにするの が望ましい。 このため、 このゲームモードでは、 メモリコントローラ 62に与えられる コマンドは、 暗号化されなくてもよいが、 コマンドを暗号化する場合でも、 処理負担の 軽いアルゴリズムで暗号化する程度のセキュリティがかけられればよい。 なお、 ゲーム モードでは、 たとえホスト (CPU 34) がフラッシュメモリ 64へのデータ書込みコ マンドを発行したとしても、 メモリコントローラ 62は当該コマンドを受け付けないた め、 フラッシュメモリ 64にデータを書き込むことはできない。
ゲーム実行中にプレイヤの選択またはプログラムに従ってサーバ 102からデータを ダウンロードする場合のために、 フラッシュメモリ 64にはダウンロードしたデータを 書き込むためのダウンロード領域 204が設けられている。 ダウンロードする場合、 フ ラッシュメモリ 64を不正アクセスから保護するために、 セキュリティ度を高める必要 がある。 そこで、 メモリコントローラ 62を、 フラッシュメモリ 64へのアクセスが容 易なゲームモードから、 セキュリティ度の高いモードに遷移させる。
また、 ダウンロードデータを書き込むことのできるダウンロードモードにゲームモー ドからいきなり遷移させるのではなく、 この実施例では、 ダウンロードの際に 2段階の セキュリティをかけることができるように、 別のモード、 すなわち、 DLセキュアモー ドを介在させるようにしている。
具体的には、 ゲームモードにおいて gCHG—DL— MODEコマンドがメモリコン トロ一ラ 62に与えられると、 メモリコントローラ 62はゲームモードから DLセキュ アモードに遷移する。 なお、 gCHG— DL— MODEコマンドは、 ゲームモードから DLセキュアモードへ遷移させるための遷移コマンドであり、 ゲーム装置 10の CPU 34によって発行される。
DLセキュアモードは、 ダウンロードの際のセキュリティ度を高めるために設けられ たモードである。 この DLセキュアモードで、 メモリコントローラ 62に与えられるコ マンドは暗号化される。 具体的には、 暗号化された d s CHG— MODEコマンドがメ モリコントローラ 62に与えられる。 なお、 d s CHG— MODEコマンドは、 DLセ キュアモードからダウンロードモードに遷移するための遷移コマンドである。 このダウ ンロードモードへの遷移コマンドは、 ゲーム装置 10の CPU 34から発行されるので はなく、 サーバ 102で暗号化されてサーバ 102から送信される。 なお、 ゲーム装置 10の CPU34は d s CHG— MODEコマンドを生成することができない。 なぜな ら、 d s CHG— MODEコマンドは暗号化された状態でメモリコントローラ 62に与 えられるべきものであり、 ゲーム装置 10の CPU 34は当該暗号化のための鍵デ一夕 を有しないためである。 メモリコントローラ 62は、 DLセキュアモードで受信したコ マンドを復号化し、 そのコマンドが d s CHG MODEコマンドであれば、 ダウン口 ードモードに遷移する。 この遷移コマンドの暗号のために、 サーバ 102およびメモリ カード 28は共通キーを記憶している。
このように、 DLセキュアモードからダウンロードモードへの遷移に対してセキユリ ティをかけることができる。 また、 DLセキュアモードへの遷移コマンドをホストであ る CPU 34から発行し、 ダウンロードモードへの遷移コマンドをサーバ 102から発 行するようにしており、 つまり、 CPU34とサーバ 102の協働によってダウンロー ドモードへの遷移を可能にしているので、さらにセキュリティ度を高めることができる。 ダウンロードモードでは、 サーバからダウンロードしたデータがダウンロード領域 2 04に書き込まれることとなる。 ダウンロードされるデータはサーバで暗号化されて送 信され、受信したデータはメモリコントローラ 62によって復号化される。このように、 ダウンロードするデータに対してセキュリティをかけることができる。 また、 DLセキ ユアモードでの暗号のキーとダウンロードモードでの暗号のキーとを変えるので、 2段 階のセキュリティが存在することとなり、 遷移コマンドとデ一夕とに別々のセキュリテ ィをかけることができる。
ダウンロードデータは、 上述のようにサーバで暗号化されており、 CPU34は、 当 該暗号化されたデータを受信するとメモリコントローラ 62に転送する。 このデータの 書込みのために、 CPU 34は、 書込みコマンド (dWR— PAGEコマンド) を発行 する。当該書込みコマンドに応じて、メモリコントローラ 62は、データの復号化など、 データを書き込むための処理を実行する。 受信したデ一夕が正当なデータであることが 認証されれば、 メモリコントローラ 62は、 当該データをダウンロード領域 204に書 き込む。 このダウンロード領域 204への書込みは、 ダウンロードモードにおいてのみ 可能である。 メモリコントローラ 62は、 CPU 34の発行する書込みコマンドをダウ ンロードモードにおいてのみ受け付けるようになつており、 したがって、 他のモードで はダウンロード領域 204への書込みは行えない。
所定のデータを書き込んだ後に、 d 1 CHG— MODEコマンドに応じてメモリコン トローラ 62はゲームモードに遷移する。 なお、 d 1 CHG— MODEコマンドは、 ダ ゥンロードモードからゲームモードに遷移させるための遷移コマンドであり、 CPU 3 4から発行される。
このようなダウンロードの場合のモードの遷移において、 フラッシュメモリ 64に対 するアクセスの可否状態が変化される。 図 6には、 ダウンロードモードに遷移する場合 のフラッシュメモリ 64のメモリマップの変化が示されている。 まず、 ゲームモードに おいては、 ゲーム領域 202およびダウンロード領域 204は読出しのみ可能にされて いる。 そして、 gCHG—DL— MODEコマンドに応じて DLセキュアモードに遷移 したとき、 全領域が読出しおよび書込みの不可能な状態にされる。 このようなフラッシ ュメモリ 64の全領域へのアクセスが不可能にされた状態で、 暗号化された d s CHG 67559
—MODEコマンドの処理が行われることとなる。 そして、 d s CHG_MODEコマ ンドに応じてダウンロードモードに遷移したときには、 ダウンロード領域 202がァク セス可能な状態にされる。 しかも、 この実施例では、 ダウンロード領域 202のうち、 d s CHG— MODEコマンドで指定されたブロックのみがアクセス可能にされる。 こ のように、 モードの遷移に応じて、 フラッシュメモリ 64の各領域に対して、 読出しお よび書込み可能な状態を変化させ、 つまり、 モードごとにメモリマップを変化させるよ うにしたので、 セキュリティ度を高めることができる。
一方、 ゲーム実行中には CPU 34はゲームのバックアップデータを生成する。 この バックアツプデータを書き込むためのバックアツプ領域 206がフラッシュメモリ 64 に設けられている。 バックアップ領域 206への書込み自体は本来ローカルなものであ るが、 このバックアップ領域 206に対して、 たとえばネットワーク 106上から不正 に入手したプログラムデータが書き込まれてしまうおそれがある。 このバックアップ領 域 206の不正利用を防止するために、 バックアップ領域 206のセキュリティ度を上 げる。
図 5に示すように、 バックアップ領域 206に対する書込みまたは読出しのために、 メモリコントローラ 62は、 gCHG—BK— MODEコマンドに応じて、 ゲームモー ドからバックアップモードに遷移される。 なお、 この gCHG— BK一 MODEコマン ドは、 ゲームモ一ドからバックアップモードに遷移させるための遷移コマンドであり、 ホストである CPU34がメモリコントローラ 62に発行する。 また、 bCHG— MO DEコマンドに応じて、 メモリコントローラ 62はゲームモードに遷移する。 なお、 こ の b C H G_M〇 D Eコマンドは、 バックァップモードからゲームモ一ドに遷移させる ための遷移コマンドであり、 ホストである CPU34がメモリコントローラ 62に発行 する。
バックアップモードでは、 データを書き込む際には、 CPU 34によって書込みデー 夕が所定のフォーマットに変換され、 当該所定のフォーマットのデータがメモリコント ローラ 62によってバックアップ領域 206に書き込まれる。 一方、 データを読み出す 際には、 メモリコントローラ 62によって、 読み出したデータが所定のフォーマットで あるか否かが判定される。 データが所定のフォーマツトであると判定される場合には当 該データは CPU 34に出力される。
しかし、 データが所定のフォーマットでないと判定される場合には、 当該データはバ ックアツプ領域に不正に書き込まれたデータであるとみなされ、 メモリコントローラ 6 2はイリーガルモードに遷移する。 イリ一ガルモードに遷移すると、 当該データは出力 されず、 したがって、 バックアップ領域の不正利用を防止することができる。
なお、 この実施例では、 書込まれていたデータが所定のフォーマツ卜でないと判定さ れるとき、 メモリコントローラ 62が何らデータを出力しないようにしているが、 他の 実施例では、 メモリコントローラ 6 2が、 不正データであることを示す所定のデータを C P U 3 4に出力するようにして、 不正な書込みデータであることを C P U 3 4が認識 できるようにしてもよい。 この場合にも、 書込まれていたデ一夕が正常に出力されない ので、 バックアップ領域 2 0 6を不正利用から保護することができる。
このようなパックアップの場合のモードの遷移においても、 フラッシュメモリ 6 4に 対するアクセスの可否状態が変化される。 図 7には、 バックアップモードに遷移する場 合のフラッシュメモリ 6 4のメモリマップの変化が示されている。 ゲームモードでは、 ゲーム領域 2 0 2は読出しのみ可能な状態にされており、 バックァップ領域 2 0 6は、 読出しおよび書込みともに不可能な状態にされている。 そして、 g C HG— B K— M〇 D Eコマンドに応じて、 バックアップモードに遷移したとき、 ゾ ックアップ領域 2 0 6 のみがアクセス可能な状態にされる。 しかも、 この実施例では、 バックアップ領域 2 0 6のうち、 g C H G_B K— MOD Eコマンドで指定されたブロックのみがアクセス可 能にされる。 ダウンロードの場合と同様に、 モードの遷移に応じて、 フラッシュメモリ 6 4の各領域に対して、 読出しおよび書込み可能な状態を変化させ、 つまり、 モードご とにメモリマップを変化させるようにしたので、セキュリティ度を高めることができる。 なお、 本実施例においては、 バックアツプモ一ドに遷移した後でないとバックアップ 領域 2 0 6に書込みできないようにした。 これは、 例えば工場出荷時などにおいて一度 書き込んだデータを間違って上書きしてしまわないようにするためである。 しかしなが ら、 変形例としては、 フラッシュメモリ 6 4のうちバックアップ領域 2 0 6はゲームモ ードでも書き込み可能にしてもよい。
図 8にはフラッシュメモリ 6 4のインフォメーション領域 2 0 0のメモリマップの一 例が示される。 なお、 図 8はインフォメーション領域 2 0 0の一部であり、 ゲーム領域 2 0 2の開始アドレスなど他の必要なデータも記憶されている。
記憶領域 2 1 0にはダウンロード領域 2 0 4の開始アドレスが予め記憶され、 記憶領 域 2 1 2にはバックアップ領域 2 0 6の開始アドレスが予め記憶されている。 その他に ダウンロード領域 2 0 4およびバックアップ領域 2 0 6のサイズまたは終了アドレスな どが記憶されてもよい。 ヘッダ情報としては、 ダウンロード領域 2 0 4およびバックァ ップ領域 2 0 6のそれぞれと他の領域とを区別することのできるデータ、 すなわち、 各 領域の境界データが記憶されればよい。 メモリコントローラ 6 2は、 各領域の境界デ一 夕を参照することによって、 各領域を把握してアクセスすることができる。
記憶領域 2 1 4には、 暗号化されたキー 1が予め記憶されている。 キー 1は、 D Lセ キュアモード用のキー(暗号鍵)、つまり、 D Lセキュアモードにおいて使用されるキー である。 このキー 1によって、 サーバ 1 0 2で暗号化された d s C H G— MO D Eコマ ンドが復号化される。
なお、 フラッシュメモリ 6 4には暗号化されたキーを記憶するようにしているので、 メモリカード 2 8からフラッシュメモリ 6 4が抜き取られてデータが不正に読み出され ても、 キーの内容を読み取られないようにすることができる。
記憶領域 2 1 6には、 暗号化されたキー 2が予め記憶されている。 キ一2はダウン口 ードモード用のキー(暗号鍵)、つまり、 ダウンロードモードにおいて使用されるキーで ある。 このキー 2によって、 サーバ 1 0 2で暗号化されたダウンロード用データが復号 化される。
記憶領域 2 1 8には、 暗号化されたキー 3が予め記憶されている。 キ一3は、 ダウン ロード用データのメッセージダイジェスト認証用のキー (暗号鍵) であり、 つまり、 ダ ゥンロード用データの認証記号としてのメッセージ完全性コード (M I C : Message Integri ty Code) を算出するためのキーである。 ただし、 この実施例では、 キー 3の一 部がキー 2の一部と同一になるような構成を採用している。 つまり、 キ一 3は、 キー 2 の一部 (同一部分を除いた部分) を置き換えることによって得られるキーである。 そし て、 この記憶領域 2 1 8には、 上述のようなキ一3の残りの部分 (キー 2との同一部分 を除いた部分) だけを暗号化して記憶するようにしている。 M I C算出のために完全な キー 3を必要とするときは、 記憶領域 2 1 8のキー 3とキー 2の同一部分とが使用され るようにしている。
記憶領域 2 2 0には、 メモリカード 2 8 (フラッシュメモリ 6 4 ) の識別情報を示す ユニーク I Dが記憶される。 また、 記憶領域 2 2 2には、 メモリカード 2 8のゲームな いしアプリケーションの識別情報を示すゲーム I Dが記憶される。 ゲーム I Dはゲーム のタイトルや種類であってよい。
なお、 この実施例では、 フラッシュメモリ 6 4には、 メモリカード 2 8に固有のキー が記憶される。つまり、ユニーク I Dに対応するキー 1、 2および 3が記憶されている。 他の実施例では、 ゲームタイトルに固有のキー、 すなわち、 ゲーム I Dに対応するキー 1、 2および 3が記憶されてもよい。
図 9にはメモリコントローラ 6 2の内部 RAM 6 6のメモリマップの一例が示される。 なお、 図 9は当該内部 RAM 6 6のメモリマップの一部である。
記憶領域 3 0 0には現在のモードが記憶される。 このモードデータによってメモリコ ントローラ 6 2は現在のモードを把握することが可能である。 コマンドを受信したとき には、 メモリコントローラ 6 2は、 たとえば、 当該コマンドの実行の前に、 当該コマン ドが現在のモードで発行されることを規定されたコマンドであるか否かを判定するよう にしてよい。 これによつて、 正規に発行されたコマンドを判別することができる。
記憶領域 3 0 2はキー記憶領域である。 現在のモードに応じたキーが記憶される。 上 述のように、 この実施例では、 各キーは暗号化されてフラッシュメモリ 6 4のインフォ メ一シヨン領域 2 0 0に記憶されているので、 メモリコントローラ 6 2は、 内部 RAM 6 6のワークエリアにキーを読み出して復号化し、 当該復号化したキーを記憶領域 3 0 2に記憶する。 また、 各キーは、 各遷移コマンドに応じて各モードに遷移したときに、 この記憶領域 3 0 2に展開されてよい。
具体的には、 図 1 0に示すように、 D Lセキュアモードにおいては、 キー記憶領域 3 0 2には、 復号化済みのキー 1および復号化済みのキー 3 (この実施例では、 厳密には キー 3の一部) が記憶される。 なお、 キー 1は D Lセキュアモード用のキーであるが、 この実施例では、 ゲームモードにおいても、 このキー 1を使用して所定のデータ (乱数 およびユニーク I Dもしくはゲーム I D) を暗号化するようにしているので、 ゲームモ ードのときから既にキー 1を記憶領域 3 0 2に記憶するようにしている。 また、 キー 3 は電源オフまで常駐された状態になる。 このキー 3の一部は、 キー 2と共用される部分 に比べて小さいので、 予め展開されるようにしている。 なお、 ゲームモードから D Lセ キュアモードに遷移する際には、 キー 1を再度フラッシュメモリ 6 4から読み出して復 号化して、 その後記憶領域 3 0 2に展開するようにしている。 これは、 何らかの事故で 内部 RAM 6 6上のデ一夕が書き換わってしまう場合を考慮し、念の為の再展開である。 ダウンロードモードに遷移すると、 キー 1がキー 2に置き換えられる。 つまり、 キー 1が記憶領域 3 0 2から消去されるとともに、 フラッシュメモリ 6 4からキー 2をヮ一 クエリアに読み出して復号化し、 当該復号化したキーを記憶領域 3 0 2に記憶する。 ま た、 キ一3はそのまま記憶される。 上述のように、 キー 2は、 ダウンロードモードにお けるダウンロード用のデータの暗号のために使用され、 一方、 キー 3は、 ダウンロード 用のデータの M I C算出のために使用される。 この実施例のように、 キー 2とキー 3と で一部を共用することによって、 キー記憶領域 3 0 2のために確保すべき領域のサイズ を抑えることができ、 結果として内部 RAM 6 6の容量を抑制して、 コストを低減する ことができる。
なお、 他の実施例では、 完全なキ一 3を予め記憶しておき、 当該キー 3をキー記憶領 域 3 0 2に展開するようにしてよい。
図 9に戻って、 記憶領域 3 0 4には乱数が記憶される。 乱数は疑似乱数であり、 メモ リコントローラ 6 2で所定の処理が実行されるときに発生される。 また、 記憶領域 3 0 6にはライトプロテクトを示すフラグが記憶される。 このライ卜プロテク卜がオンされ ているときには、 フラッシュメモリ 6 4のダウンロード領域 2 0 4に対する書込みが禁 止される。
図 1 1にはサーバ 1 0 2のデータベースに記憶されるデータの一例を示す。 なお、 こ のデータベースは、 サーバ 1 0 2の HD Dまたは R OMなどに記憶されている。
データベースには、 ダウンロード用データが記憶されている。 ダウンロード用データ は、 メモリカード 2 8のダウンロード領域 2 0 4に記憶するためのデ一夕である。 たと えばゲームタイトルごとに、 つまり、 ゲーム I Dに対応付けられたダウンロード用のフ アイルが準備されてよい。 また、 データベースにはキーデータが記憶される。 この実施例では、 上述のようにメ モリカード 2 8ごとに固有のキーを準備しているので、 ユニーク I Dに対応付けて、 キ 一 1、 キー 2およびキー 3が記憶されている。 なお、 メモリカード 2 8と同様に、 キー 3としては、 一部がキー 2と共用のため、 残りの一部のみが記憶されてもよいし、 また は、 完全なキー 3を記憶するようにしてもよい。
なお、 他の実施例では、 ゲームタイトルごとのキーが準備されてもよく、 つまり、 ゲ ーム I Dに対応付けてキー 1、 2および 3が記憶されてもよい。
図 1 2にはサーバ 1 0 2の R AMのメモリマップの一例が示される。 なお、 このメモ リマップは一部を示しており、 他の必要なプログラムおよびデータも記憶される。 記憶領域 4 0 0はプログラム記憶領域であり、 当該サーバ 1 0 2のダウンロード処理 を実行するためのプログラムが記憶される。 プログラムは R 0Mまたは HD D等から読 み出される。
記憶領域 4 0 2はデータ記憶領域であり、 R OMまたは HD D等から読み出されたデ 一夕、 C P Uによって生成されたデータ、 ゲーム装置 1 0から受信したデータ等が記憶 される。
記憶領域 4 0 4には、最初に受信したユニーク I Dが記憶され、記憶領域 4 0 6には、 ゲーム I Dが記憶される。 具体的には、 ダウンロード処理が開始されると、 最初にゲー ム装置 1 0からユニーク I Dとゲーム I Dが送信されてくるので、 当該ユニーク I Dお よびゲーム I Dが記憶領域 4 0 4および 4 0 6に記憶される。
記憶領域 4 0 8には、 データベースから読み出されたキーが記憶される。 この実施例 では、 ユニーク I Dに対応するキー 1、 2および 3が記憶される。
記憶領域 4 1 0には乱数およびユニーク I Dが記憶される。 具体的には、 ゲーム装置 1 0から最初のユニーク I Dの後に、 乱数およびユニーク I Dをキー 1で暗号化したデ 一夕がゲーム装置 1 0から送信されてくるので、 当該受信データをキー 1で復号化して 得られた乱数およびユニーク I Dがこの記憶領域 4 1 0に記憶される。
記憶領域 4 1 2にはブロックアドレスが記憶される。 具体的には、 上述の乱数および ユニーク I Dの後に、 ゲーム装置 1 0から書込みを行うブロックァドレスが送信されて くるので、当該ブロックアドレスがこの記憶領域 4 1 2に記憶される。この実施例では、 サーバ 1 0 2は、 ブロックアドレスを指定した遷移コマンドをゲーム装置 1 0経由でメ モリコントローラ 6 2に送信し、 ダウンロードするファイルを書き込むブロックァドレ スを指示する。
記憶領域 4 1 4には書込みファイルが記憶される。 具体的には、 データベースから読 み出されたダウンロード用デ一夕のファイルが記憶される。 ゲームタイトルごとにダウ ンロードデータが準備される場合、 ゲーム I Dに対応するデ一夕が記憶される。 なお、 ユニーク I Dに対応するデータ、 つまり、 メモリカード 2 8ごとのデータが読み出され てもよいし、 ゲーム I Dやユニーク I Dにかかわらず所定のデータが読み出されてもよ レ^ この書込みファイルから所定量のデータが順に取り出されて、 ゲーム装置 1 0に送 信される。
図 1 3には、 ダウンロード処理を実行する際のゲーム装置 1 0の RAM 4 2のメモリ マップの一例が示される。 なお、 図 1 3はメモリマップの一部を示しており、 他に必要 なデータが記憶される。
記憶領域 5 0 0はプログラム記憶領域であり、 ゲーム装置 1 0の処理を実行するため のプログラムがメモリカード 2 8から読み出されて記憶される。 プログラムは、 ゲーム 処理プログラムやダウンロード処理プログラム等を含む。
記憶領域 5 0 2はデータ記憶領域であり、 メモリカード 2 8から取得されたデータ、 C P U 3 4によって生成されたデータ、 サーバ 1 0 2から受信したデータ等が記憶され る。
記憶領域 5 0 4はゲーム I Dが記憶される。 ゲーム I Dは、 たとえば電源オンの際に フラッシュメモリ 6 4のインフォメーション領域 2 0 0の記憶領域 2 2 2からメモリコ ントローラ 6 2によって読み出されて出力され、 コネクタ 6 0およびコネクタ 3 2等を 介して C P U 3 4に与えられる。 このゲーム I Dは、 最初にユニーク I Dをサーバ 1 0 2に送信する際に、 一緒に送信される。
記憶領域 5 0 6にはダウンロードしたデータを書き込むブロックアドレスが記憶され る。 ゲーム装置 1 0では、 ダウンロード領域 2 0 4の空き領域が確保され、 当該空き領 域から書き込むブロックアドレスが決定される。 このブロックアドレスはサーバ 1 0 2 に送信される。
記憶領域 5 0 8にはサーバ 1 0 2からダウンロードされるファイルデータ量が記憶さ れる。 ダウンロードされるファイルのファイルデータ量はサーバ 1 0 2から送信されて くるので、 当該受信したファイルデータ量がこの記憶領域 5 0 8に記憶される。 このデ 一夕ファイル量によって、 C P U 3 4は、 書込みファイルのすべてを書き込んだか否か を判定することができる。
図 1 4には、 バックアップ処理の際のゲーム装置 1 0の RAM 4 2のメモリマップの 一例が示される。 なお、 この図 1 4も図 1 3と同様にメモリマップの一部のみを示す。 記憶領域 5 0 0はプログラム記憶領域であり、 メモリカード 2 8から読み出されたゲ ーム処理プログラムおよびバックアツプ処理プログラム等が記憶される。
データ記憶領域 5 0 2の記憶領域 5 0 4には、 図 1 3のダウンロード処理の場合と同 様に、 メモリカード 2 8から読み出したゲーム I Dが記憶される。
記憶領域 5 1 0には書き込むデータが記憶される。 つまり、 C P U 3 4がゲーム (ァ プリケーシヨン) 実行中に生成したバックアップデータが記憶される。
記憶領域 5 1 2にはパリティ付きデータが記憶される。 書き込むデータは、 C P U 3 4によって所定のフォ一マツ卜に変換されてバックアップ領域 2 0 6に書き込まれる。 この実施例では、 バックアツプデータにはパリティビットが付加される。 このパリティ 付きデータがバックアップ領域 2 0 6に書き込まれる。
図 1 5にパリティ付きデータの一例が示される。 図 1 5は、 バックアップ領域 2 0 6 のページデータ (5 1 2バイト) の構成例であり、 この実施例では、 各バイトのデータ の構成が、 「7ビットのデ一夕」 + 「7ビットのデ一夕のパリティ (1ビット)」 にされ る。 つまり、 書き込むデータについて、 7ビットごとに 1ビットのパリティビットを付 加することによって、 パリティ付きデータを生成する。 たとえば、 ビット 0— 6のビッ ト列において 「1」 が偶数個あった場合、 ビット 7には 「1」 が書かれ、 一方、 ビット 列において 「1」 が奇数個あった場合、 ビット 7には 「0」 が書かれる。
記憶領域 5 1 4には書き込むブロックアドレスが記憶される。 ゲーム装置 1 0の C P U 3 4は、 バックアップ領域 2 0 6の空き領域を確保し、 パリティ付きデータを書き込 むブロックアドレスを決定し、 この記憶領域 5 1 4に記憶する。 この書き込むブロック ァドレスは、バックアツプモ一ドに遷移させるための遷移コマンドにおいて指定される。 記憶領域 5 1 6には読み出すプロックアドレスが記憶される。 C P U 3 4は、 バック アップ領域 2 0 6の読み出すデータの格納場所を確認して、 読み出すブロックアドレス を決定し、 この記憶領域 5 1 6に記憶する。 この読み出すブロックアドレスは、 バック アップモードに遷移させるための遷移コマンドにおいて指定される。
記憶領域 5 1 8には、 メモリカード 2 8のバックァップ領域 2 0 6から読み出したデ —夕が記憶される。 バックアップ領域 2 0 6から読み出そうとしているデータがパリテ ィ付きデータであるか否かは、 読み出す際にメモリコントローラ 6 2によってチェック される。 バックアップ領域 2 0 6からデータが読み出されれば、 当該データは正規にバ ックアップ領域 2 0 6に書き込まれたデータであるので、 C P U 3 4は、 当該読み出し たデータからパリティを除去して元のデータに変換して、 当該データを利用することが できる。 一方、 パリティチェックの結果、 バックアップ領域 2 0 6のデータが不正に書 き込まれたデータと判断される場合、 メモリコントローラ 6 2はイリ一ガルモードに遷 移し、 当該データを出力しない。 したがって、 バックアップデ一夕の読出し処理が完了 せず、 正常な動作が行われなくなる。
ダウンロード処理の際のシステム 1 0の全体的な動作を図 1 6から図 1 9を参照しな がら簡単に説明する。 なお、 ダウンロード処理の際の、 ゲーム装置 1 0、 メモリコント ローラ 6 2およびサーバ 1 0 2のそれぞれの動作は、 個別のフロー図を用いて後に説明 する。
ダウンロード処理は、 メモリカード 2 8のメモリコントローラ 6 2がゲームモードに あるときに開始される。 図 1 6を参照して、 ダウンロード処理が開始されると、 まずス テツプ S 1で、 ゲーム装置 1 0の C P U 3 4は、 g R D U I Dコマンドをメモリ力一 ド 28に発行する。 この gRD一 U I Dコマンドは、 メモリカード 28からユニーク I Dを読むためのコマンドである。 これに応じて、 メモリコントローラ 62は、 ステップ S 3でユニーク I Dをフラッシュメモリ 64から読み出してゲーム装置 10に出力する。 CPU34は、 受信したユニーク IDを、 ステップ S 5でサーバ 102に転送し、 サ一 バ 102の CPUは受信したユニーク I Dを RAMに記憶する。 このようにして、 メモ リカード 28のユニーク I Dがサーバ 102に送信される。 このユニーク IDは、 メモ リカード 28の認証のために、 後に受信されるユニーク I Dと比較される。
続いて、 ゲーム装置 10の CPU34は、 ステップ S 9で gRD一 I Fコマンドをメ モリカード 28に発行する。 この gRD— I Fコマンドは、 メモリカード 28の乱数お よびユニーク I Dを読むためのコマンドである。 これに応じて、 メモリコントローラ 6 2は、 ステップ S 11で、 発生した乱数およびフラッシュメモリ 64から読み出したュ ニーク I Dをゲーム装置 10に出力する。 ただし、 舌し数およびユニーク I Dは、 内部 R AM 66に展開されているキー 1で暗号化される。 CPU 34は、 ステップ S 13で、 受信したデータをサーバ 102に転送する。 サーバ 102の CPUは、 ステップ S 15 で、 受信したデータをキー 1で復号化する。 使用されるキー 1はユニーク IDに対応す るキー 1である。 そして、 サーバ 102の CPUはステップ S 17で、 ステップ S 15 で復号化したユニーク I Dとステップ S 7で最初に受信したユニーク I Dとが一致する か否かを判定する。 ステップ S 17で "NO" の場合、 つまり、 ユニーク IDが'最初に 受信したユニーク IDと異なる場合には、 メモリカード 28が正規のカードであるとは 認められないので、 サーバ 102の CPUはステップ S 19でダウンロード書込み処理 を終了する。
一方、 ステップ S 17で " YES" の場合、 つまり、 メモリカード 28が正規の力一 ドであるとサーバ 102で判定された場合には、 ゲーム装置 10の CPU 34は、 ステ ップ S 21で、 ダウンロード領域 204のうち、 ダウンロードするデータを書込むブロ ックアドレスを決定する。 また、 CPU 34は、 ステップ S 23で、 gCHG_DL_ MODEコマンドをメモリカード 28に発行する。 この gCHG— DL_MODEコマ ンドは、ゲームモードから DLセキュアモードに遷移させるための遷移コマンドである。 これに応じて、 メモリコントローラ 62は、 ステップ S 25で、 DLセキュアモードに 遷移する。
また、 ステップ S 27で、 ゲーム装置 10の CPU 34は、 ステップ S 21で決定し たブロックアドレスをサーバ 102に送信する。 これに応じて、 サーバ 102の CPU は、 ステップ S 29で、 d s CHG— MODEコマンドを生成する。 この d s CHG— MODEコマンドは、 DLセキュアモードからダウンロードモードの遷移させるための 遷移コマンドである。 この遷移コマンドは、 ステップ S 15で取得した乱数およびュニ ーク IDと、 このステップ S 29で受信したブロックアドレスを用いて生成される。 な お、 乱数およびユニーク I Dはメモリコントローラ 62での認証のために使用され、 ま た、 ブロックアドレスによって、 ダウンロードデ一夕を書き込むブロックアドレスが指 定される。
続いて、 図 17のステップ S 31で、 サーバ 102の CPUは、 生成した d s CHG —MODEコマンドをキー 1で暗号化する。 そして、 ステップ S 33で、 サーバ 102 の CPUは、暗号化された d s CHG— MODEコマンドをゲーム装置 10に送信する。 ゲーム装置 10の CPU34は、 ステップ S 35で、 受信したデータをメモリカード 2 8に転送する。 メモリコントローラ 62は、 データを受信し、 ステップ S 37で、 受信 したデータをキー 1で復号化する。 したがって、 d s CHG一 MODEコマンドから乱 数およびユニーク I Dを取得することができ、 また、 指定されたブロックアドレスも取 得できる。
メモリコントローラ 62は、 ステップ S39で、 コマンドから取得したユニーク I D および乱数は、 メモリカード 28内の乱数およびユニーク IDと一致するか否かを判断 する。 ステップ S 39で "N〇" の場合、 つまり、 受信したコマンドが正当なコマンド でなかった場合には、 メモリコントローラ 62は、 ステップ S 41でイリーガルモード に遷移する。 これによつて、 ダウンロード処理が進まなくなり、 不正なダウンロードが 行われない。
一方、 ステップ S 39で "YES" の場合、 つまり、 受信したコマンドが'正当なコマ ンドである場合には、 メモリコントローラ 62は、 ステップ S 43でダウンロードモー ドに遷移し、ステップ S 45で指定ブロックのみをアクセス可能にする。これによつて、 ダウンロードモードへの遷移コマンドで指定されたブロックへの書込みが可能になる。 また、 このとき、 ダウンロードモード用のキ一 2が復号化されて内部 RAM 66に展開 される。
また、 ステップ S47で、 ゲーム装置 10の CPU 34は、 d l RD— I Fコマンド をメモリカード 28に発行する。 この d 1 RD— I Fコマンドは、 乱数およびユニーク I Dを読むためのコマンドである。このコマンドに応じて、メモリコントローラ 62は、 ステップ S 49で、 乱数およびユニーク I Dをキー 2で暗号化してゲーム装置 10へ出 力する。 ゲーム装置 10の CPU 34は、 このデータを受信し、 ステップ S 51で当該 受信データをサーバ 102に転送する。 これに応じて、 サーバ 102の CPUは、 デー 夕を受信し、ステップ S 53で当該データをキー 2を用いて複号化する。これによつて、 サーバ 102は、 メモリカード 28からの乱数およびユニーク I Dを取得する。 この乱 数およびユニーク I Dは、 この後、 ダウンロードするデータの M I Cを算出する際の初 期値として使用され、 また、 サーバ 102から送信するデータの暗号化の初期値として も使用される。
さらに、 図 18のステップ S 55で、 ゲーム装置 10の CPU34は、 d l PRT OFFコマンドをメモリカード 28に発行する。 d 1 PRT一 OFFコマンドは、 ライ トプロテクトを解除するためのコマンドである。 このコマンドに応じて、 メモリコント ローラ 62は、 ライトプロテクトをオフにし、 これによつて、 ダウンロード領域 204 の指定プロックへの書込みを実行することが可能になる。
続いて、 ステップ S 59で、 サーバ 102の CPUは、 ダウンロードするデータ、 つ まり、 書込みファイルを準備する。 そして、 ステップ S 61で、 サーバ 102の CPU は、 書込みファイルから所定サイズ (この実施例では 2KBy t e) のデータを取り出 す。 サーバ 102からゲーム装置 10 (メモリカード 28) への書込みファイルの送信 は、 この所定のサイズごとに行われる。
そして、 ステップ S 63で、 サーバ 102の CPUは、 キ一 3を用いて 2 KB y t e のデ一夕から所定サイズ (この実施例では 8 By t e) の MI Cを算出する。 なお、 M I C算出の初期値として、 ステップ S 53で取得された舌し数およびユニーク I Dが用い られる。 さらに、 サーバ 102の CPUは、 ステップ S 65で、 2 KBy t eのデータ に 8By t eの MI Cを追加したデータを生成し、 当該生成したデータをキー 2で暗号 化する。 よお、 この暗号化の初期値として、 ステップ S 53で取得された乱数およびュ ニーク IDが用いられる。 そして、 ステップ S 67で、 サーバ 102の CPUは、 当該 暗号化されたデータをゲーム装置 10に送信する。
これに応じて、 ステップ S 69で、 ゲーム装置 10の CPU 34は、 受信したデータ とともに書き込むページアドレスをメモリカード 28に送信する。 これに応じて、 ステ ップ S 71で、 メモリコントローラ 62はデータを受信する。
続いて、 ステップ S 73で、 ゲーム装置 10の CPU34は、 dWR— PAGEコマ ンドをメモリカード 28に発行する。 dWR— PAGEコマンドは、 メモリカード 28 に送信したデータをダウンロード領域 204に書き込むためのコマンドである。 このコ マンドに応じて、 ステップ S 75で、 メモリコントローラ 62は、 ステップ S 71で受 信したデータをキー 2で復号化する。 これによつて、 2KBy t eのデータに 8 By t eの MI Cを追加したデータを取得することができる。
さらに、 ステップ S 77で、 メモリコントローラ 62は、 取得した 2KBy t eのデ —夕に対してキー 3で 8 By t eの M I Cを算出する。 この M I Cの算出の際には、 ス テツプ S 49で送信した乱数およびユニーク I Dが初期値として使用される。
そして、 ステップ S 79で、 メモリコントローラ 62は、 算出した MI Cと復号化に よって取得した MI Cとが一致するか否かを判断する。 ステップ S 79で "NO" の場 合、 つまり、 正当なダウンロードデータを受信しなかった場合には、 メモリコント口一 ラ 62は、 ステップ S 81で、 書込みを行わない。 これによつて、 不正なデータがダウ ンロード領域 204に書込まれない。
一方、 ステップ S 79で "YES" の場合、 つまり、 正当なデータを受信した場合に は、 メモリコントローラ 62は、 ステップ S 83で、 受信した 2Kb y t eのデータを ' ダウンロード領域 204の指定ブロックに書き込む。
続いて、 ゲーム装置 10の CPU34は、 ステップ S 85で、 ファイルの書込みが終 了したか、 または、 1ブロックの書込みが終了したかを判断する。 この実施例のダウン ロードモードでは、 指定ブロックアドレスの一定範囲 (この実施例では 1ブロック) 内 であれば、 サーバ 102からの遷移コマンドなしに、 データを書き込むことができる。 したがって、 1ブロックの書込みが終わるまで、 または 1ブロック未満のファイルの書 込みが終わるまでは、 サーバ 102の CPUが暗号化したデータを送信し、 メモリコン トロ一ラ 62が当該データを復号化して書き込むという動作を繰返す。 すなわち、 ステ ップ S 85で "NO" の場合には、 図 18のステップ S 61に戻って、 処理が繰返され る。 このように、 一定範囲内の書込みにおいてサーバ 102からの遷移コマンドを不要 にすることによって、 サーバ 102の負荷を軽減することができ、 ゲーム装置 10側で の処理も短くできるという利点がある。
一方、 1ブロック以上のファイルの書込み行う必要がある場合には、 一旦、 ダウン口 ードモードを終了してゲームモードに遷移する。 そして、 再びサーバ 102から遷移コ マンドを送信して、 メモリコントローラ 62のモードをダウンロードモードに遷移させ て、 データのダウンロードを行う。
すなわち、 ステップ S 85で " YES" の場合、 ゲーム装置 10の CPU 34は、 ス テツプ S 87で d 1 CHG— MODEコマンドをメモリカード 28に発行する。 この d 1 CHG— MODEコマンドは、 ダウンロードモードからゲームモードに遷移させるた めの遷移コマンドである。 これに応じて、 メモリコントローラ 62は、 ステップ S 89 でゲームモードに遷移する。
さらに、 ゲーム装置 10の CPU34は、 ステップ S 91で、 ファイルの書込みが終 了したか否かを判断する。 ステップ S 91で "NO" の場合、 つまり、 書込みファイル のうち未書込みのデータが残っている場合には、 図 16のステップ S 9に戻って、 ゲー ムモードからの処理が繰返される。一方、ステップ S 91で" YES"の場合、つまり、 書込みファイルのすべてのデータを書込んだ場合には、 このダウンロード処理を終了す る。
続いて、 ダウンロード処理におけるゲーム装置 10、 メモリコントローラ 62および サーバ 102の個別の動作を説明する。
図 20から図 22にはダウンロード処理におけるゲーム装置 10の動作の一例が示さ れる。 ダウンロード処理を開始すると、 図 20のステップ S 101で、 CPU 34は、 gRD— U I Dコマンドをメモリカード 28に発行する。 gRD— UIDコマンドは、 ユニーク I Dを読むためのコマンドである。 また、 この gRD— U I Dコマンドは、 メ モリコントローラ 62がゲームモードにある場合に発行されるので、 処理負担の比較的 軽いアルゴリズム (たとえばスクランブル) で暗号化してメモリカード 28に出力する ようにしてよい。
なお、 ゲーム装置 10からメモリカード 28にコマンドやデータを送信する際には、 CPU34は、 当該コマンドやデータをコネクタ 32に与え、 したがって、 当該コマン ドゃデータはコネクタ 60を介してメモリコントローラ 62に与えられる。
次にステップ S 103で、 CPU 34はユニーク I Dをメモリカー 28から受信し たか否かを判断する。 gRD— U I Dコマンドに応じてメモリコントローラ 62はュニ ーク I Dを返すので、 コネクタ 32を介したメモリコントローラ 62からのデータの受 信を待機する。
ステップ S 103で " YES" の場合、 つまり、 メモリコントローラ 62からのュニ —ク I Dを受信した場合には、 CPU 34は、 ステップ S 105でユニーク I Dとゲー ム I Dとをサーバ 102に送信する。 具体的には、 受信したユニーク I Dを RAM42 のデータ記憶領域 502に記憶し、 記憶領域 504に記憶されているゲーム I Dを読み 出して、 ユニーク I Dとゲーム I Dとを含むデータを送信する。
なお、 ゲーム装置 10からサーバ 102にデータを送信する際には、 CPU 34は、 無線通信部 58に当該データを与え、 したがって、 当該データは、 無線通信部 58から アクセスポイント 104およびネットワーク 106を介してサーバ 102に与えられる。 続いて、 CPU34は、 ステップ S 107で、 gRD— I Fコマンドをメモリカード 28に発行する。 なお、 この gRD— I Fコマンドは乱数およびユニーク I Dを読むた めのコマンドである。 また、 この gRD— I Fコマンドも、 スクランブルのような比較 的処理負担の軽いアルゴリズムで暗号化されて送信されてよい。 そして、 ステップ S 1 09で、 CPU34は、 データ (暗号化された乱数およびユニーク I D) をメモリ力一 ド 28から受信したか否かを判断する。 gRD— I Fコマンドに応じてメモリコント口 ーラ 62が上記データを返すので、 当該データの受信を待機する。
ステップ S 109で " YES" の場合、 つまり、 メモリコントローラ 62からのデー 夕を受信した場合には、 CPU34は、 ステップ S 111で、 当該受信したデータ (暗 号化された乱数およびユニーク I D) をサーバ 102に送信する。
続いて、 ステップ S 1 13および S 115で、 メモリカード 28が正当なカードか否 かの結果を、 無線通信部 58を介してサーバ 102から受信したかどうかを判断する。 ステップ S 111でのデータの送信に応じてサーバ 102はメモリカード 28の認証の 結果を返すので、 サーバ 102からの当該データの受信を待機する。 具体的には、 ステ ップ S 113で、 CPU 34はメモリカード 28が正規カードであることをサーバ 10 2から受信したか否かを判断する。 ステップ S 113で "NO" の場合、 CPU 34は ステップ S 115でメモリカード 28が正規カードでないことを受信したか否かを判断 する。 ステップ S 115で "NO" の場合は、 処理はステップ S 113に戻る。 ステップ S 115で " YES" の場合には、 つまり、 不正なメモリカード 28が装着 されているとみなされる場合には、 ダウンロード処理を終了する。 したがって、 不正な メモリカード 28へのダウンロードを回避できる。
一方、 ステップ S I 13で " YES" の場合、 つまり、 正規なメモリカード 28が装 着されている場合には、 CPU 34は、 ステップ S 117で、 ダウンロード領域 204 の空き領域を確保し、 書き込むブロックアドレスを決定する。 なお、 フラッシュメモリ 64の記憶領域のうち、 どの領域が使用され、 またはどの領域が空き領域であるかなど の情報は、 たとえばインフォメーション領域 200にヘッダ情報として記憶されている ので、 CPU 34は当該ヘッダ情報に基づいてフラッシュメモリ 64の管理データを生 成し、 当該管理データに基づいて、 空き領域を確保して、 書き込むブロックアドレスを 決定する。 決定したブロックアドレスは、 記憶領域 506に記憶される。 ステップ S 1 17を終了すると、 処理は図 21のステップ S 119に進む。
図 21のステップ S 119では、 CPU34は、 g CHG—DL— MOD Eコマンド をメモリカード 28に発行する。 この gCHG— DL— MODEコマンドは、 DLセキ ユアモードに遷移させるための遷移コマンドである。 なお、 この gCHG— DL— MO D Eコマンドは、 スクランブルなどの比較的処理負担の軽いアルゴリズムに従つて暗号 化されて送信されてよい。 続いて、 ステップ S 121で、 CPU34は、 ステップ S 1 17で決定したプロックアドレスをサーバ 102に送信する。
そして、 ステップ S 123で、 CPU 34は、 データ (暗号化された d s CHG— M ODEコマンド) をサーバ 102から受信したか否かを判断する。 ステップ S 121の 送信に応じてサーバ 102がデ一夕を返すので、 当該データの受信を待機する。
ステップ S 123で "YES" の場合、 つまり、 上記データを受信した場合には、 C PU34は、 ステップ S 125で、 受信したデータ (暗号化された d s CHG— MOD Eコマンド) をメモリカード 28に送信する。 これによつて、 メモリコントローラ 62 はダウンロードモードに遷移することとなる。
さらに、 ステップ S 127で、 CPU34は d 1 RD— I Fコマンドをメモリカード 28に発行する。 この d 1 RD— I Fコマンドは、 乱数およびユニーク IDを読むため のコマンドである。 そして、 ステップ S 129で、 CPU 34は、 データ (暗号化され た乱数およびユニーク I D) をメモリカード 28から受信したか否かを判断する。 d l RD— I Fコマンドに応じてメモリコントローラ 62は暗号化された乱数およびュニ一 ク IDを返すので、 当該データの受信を待機する。
ステップ S 129で "YES" の場合、 つまり、 上記データを受信した場合には、 C PU34は、 ステップ S 131で当該受信したデータ (暗号化された乱数およびュニ一 ク I D) をサーバ 102に送信する。
続いて、 ステップ S 133で、 CPU34は d l PRT OFFコマンドをメモリ力 —ド 28に発行する。 この d 1 PRT— OFFコマンドは、 ライトプロテクトを解除す るためのコマンドである。 ステップ S 133を終了すると、 処理は図 22のステップ S 135に進む。
図 22のステップ S 135では、 CPU34は、 ファイルデータ量に関するデータを サーバ 102から受信したか否かを判断する。 ステップ S 131におけるデータ送信に 応じて、 サーバ 102は、 ダウンロードするデータ (書込みファイル) を準備し、 まず 当該ファイルデータ量を送信してくるので、 このステップ S 135では当該ファイルデ 一夕量の受信を待機する。 ステップ S 135で " YES" の場合、 CPU34はステツ プ S 137で受信したファイルデータ量を記憶領域 508に記憶する。
続いて、 ステップ S 139で、 CPU 34は、 データ (暗号化された 2 KB y t e + 8By t eのデータ) をサーバ 102から受信したか否かを判断する。 なお、 ファイル データ量の送信の後、 サーバ 102は、 書込みファイルから所定サイズずつデータを送 信する。 具体的には、 サーバ 102は、 2KBy t eのデータに 8 By t eの M I Cを 付加したデ一夕を暗号化して送信するので、 このステップ S 139では当該デ一夕の受 信を待機する。
ステップ S 139で " YES" の場合、 つまり、 上記データを受信した場合には、 C PU34は、 ステップ S 141で、 受信したデ一夕とともに書き込むページアドレスを メモリカード 28に送信する。 なお、 サーバ 102からは所定サイズごとのデータが送 信されてくるので、 CPU 34は、 フラッシュメモリ 64の管理データやブロックアド レス等に基づいて、 データを受信するごとに、 当該デ一夕を書き込むページアドレスを 決定することができる。 続くステップ S 143で、 CPU34は、 dWR— PAGEコ マンドをメモリカード 28に発行する。 この dWR— PAGEコマンドは、 ステップ S 141で送信したデータを指定ページアドレスに書き込むこと指示するコマンドである。 そして、 ステップ S 145で、 CPU34は、 ファイルの書込みが終了したか、 また は、 1ブロックの書込みが終了したかを判断する。 上述のように所定サイズごとにデー 夕がサーバ 102から送信されてくるので、 CPU34は、 書き込んだデータ量 (メモ リカード 28に送信したデータ量) を算出することができる。 したがって、 CPU 34 は、 当該書き込んだデータ量がファイルデータ量に達したか、 または 1ブロックに達し たかを判断することができる。 ステップ S 145で "NO" の場合、 処理はステップ S 139に戻り、ファイルの書込みが終了し、または 1ブロックの書込みが終了するまで、 データの書込みが繰り返される。
一方、 ステップ S 145で " YES" の場合には、 CPU 34は、 ステップ S 147 で d 1 CHG— MODEコマンドをメモリカード 28に発行する。 この d 1 CHG— M O D Eコマンドは、 ダウンロードモードからゲームモードに遷移させるための遷移コマ ンドである。 そして、 ステップ S 149で、 CPU 34はファイルの書込みが終了した か否かを判断する。 ステップ S 1 4 9で "NO" の場合、 つまり、 1ブロックの書込み が終了したが、 書込みファイルのすべてを書き終えていない場合には、 処理は図 2 0の ステップ S 1 0 7に戻り、 残りのデータを書き込むために、 ゲームモードにおけるステ ップ S 1 0 7からの処理が再び行われる。 一方、 ステップ S 1 4 9で " Y E S " の場合 には、 このダウンロード処理を終了する。
図 2 3から図 2 6には、 ダウンロード処理におけるメモリコントローラ 6 2の動作の 一例が示される。 なお、 上述のように、 ダウンロード処理はゲームモードにおいて開始 されるので、 図 2 3では、 電源がオンされてメモリコントローラ 6 2がゲームモードに 置かれるまでの処理を、 ステップ S 2 0 1から S 2 0 5として記載している。
処理が開始されると、 図 2 3のステップ S 2 0 1で、 メモリコントローラ 6 2はモー ドをゲームモードにする。 内部 RAM 6 6のモード記憶領域 3 0 0にはゲームモードを 示すデータが記憶される。
次に、 ステップ S 2 0 3で、 メモリコントローラ 6 2は、 ダウンロード領域 2 0 4お よびゲーム領域 2 0 2を読み出しのみ可能な状態にする。 たとえば、 メモリコントロー ラ 6 2は、 フラッシュメモリ 6 4の各領域に対するアクセスの状態を示すデータを内部 RAM 6 6に生成しておく。 そして、 当該データにおいて、 ダウンロード領域 2 0 4お よびゲーム領域 2 0 2について、 読出しのみ可能な状態であることを示すデータを設定 する。
続いて、 ステップ S 2 0 5で、 メモリコントローラ 6 2は、 キ一1およびキー 3をフ ラッシュメモリ 6 4のインフォメーション領域 2 0 0から内部 RAM 6 6のワークエリ ァに読み出して復号化し、 キー 1およびキ一3をキー記憶領域 3 0 2に展開する。
続くステップ S 2 0 7以降の処理がメモリコントローラ 6 2のダウンロード処理に相 当する。 メモリコントローラ 6 2は、 ステップ S 2 0 7で、 g R D— U I Dコマンドを コネクタ 6 0を介して受信したか否かを判断する。 ステップ S 2 0 7で "Y E S " の場 合、 つまり、 ユニーク I Dを読み取るためのコマンドを受信した場合には、 メモリコン トローラ 6 2は、 ステップ S 2 0 9で、 インフォメーション領域 2 0 0の記憶領域 2 2 0からユニーク I Dを読み出して、当該ユニーク I Dをコネクタ 6 0に出力する。なお、 g R D—U I Dコマンドがスクランブルなどで暗号化して送信される場合には、 受信し たデータを復号化して、当該データが g R D— U I Dコマンドであるか否かを判断する。 また、 メモリコントローラ 6 2がコネクタ 6 0に出力したデ一夕は、 コネクタ 3 2等を 介して C P U 3 4に与えられる。
ステップ S 2 0 9を終了し、 またはステップ S 2 0 7で " NO" の場合、 メモリコン トローラ 6 2は、 ステップ S 2 1 1で g RD— I Fコマンドを受信したか否かを判断す る。 なお、 g R D— I Fコマンドがスクランブルなどで暗号化される場合、 受信したデ 一夕を復号化して、 当該デ一夕が g R D— I Fコマンドであるか否かを判断する。 ステ ップ S 211で "NO" の場合、 処理はステップ S 207へ戻る。
一方、 ステップ S 211で " YES" の場合、 つまり、 乱数およびユニーク I Dを読 み取るためのコマンドを受信した場合には、 メモリコントローラ 62は、 ステップ S 2 13で、 乱数およびユニーク I Dをキー 1で暗号化する。 なお、 メモリコントローラ 6 2は、 記憶領域 304に乱数を発生し、 また、 メモリコントローラ 62はインフォメー ション領域 200の記憶領域 220からユニーク I Dをワークエリアに読み出す。また、 暗号化に使用されるキ一 1は、 記憶領域 302に既に展開されている。 続くステップ S 215で、 メモリコントローラ 62は、 暗号化された乱数およびユニーク IDを出力す る。
続いて、 ステップ S 217で、 メモリコントローラ 62は、 gCHG— DL— MOD Eコマンドを受信したか否かを判断する。 この gCHG— DL— MODEコマンドは、 サーバ 102でメモリカード 28が正規なカードであると判断された場合に CPU 34 から発行されるので、 ステップ S 217で当該コマンドの受信を待機する。 なお、 gC H G_D L— M〇 D Eコマンドがスクランブルなどで暗号化される場合、 受信したデー 夕を復号化して、 当該デ一夕が gCHG—DL— MODEコマンドであるか否かを判断 する。
ステップ S 217で " YES" の場合、 つまり、 DLセキュアモードに遷移するため の遷移コマンドを受信した場合には、 メモリコントローラ 62は、 ステップ S 219で ゲームモードから DLセキュアモードに遷移する。 モード記憶領域 300には DLセキ ユアモードを示すデ一夕を記憶する。
続いて、 図 24のステップ S 221で、 メモリコントローラ 62は、 インフォメーシ ヨン領域 200の記憶領域 214からキー 1を読み出して復号化し、 内部 RAM 66の 記憶領域 302に展開する。 なお、 キー記憶領域 302には既にキー 1が展開されてい るが、 事故によるデータの置き換わり等を回避するために、 このステップ S 221の処 理でキー 1を展開し直す。
また、 ステップ S 224で、 メモリコントローラ 62は、 フラッシュメモリ 64の全 領域をアクセス不可状態にする。 たとえば、 メモリコントローラ 62は、 フラッシュメ モリ 64の各領域に対するアクセスの状態を示すデータにおいて、 全領域について、 ァ クセス不可能な状態であることを示すデータを設定する。
そして、 ステップ S 225で、 メモリコントローラ 62はデータ (暗号化された d s CHG— MODEコマンド) を受信したか否かを判断する。 DLセキュアモードに遷移 した後に、 この暗号化された d s CHG— MODEコマンドがサーバ 102から送信さ れるので、 このステップ S 225で、 当該データの受信を待機する。
ステップ S 225で " YES" の場合、 つまり、 データ (暗号化された d s CHG— MODEコマンド) を受信した場合には、 メモリコントローラ 62は、 ステップ S 22 7で、 受信したデータをキ一 1で復号化する。 d s CHG— MODEコマンドは、 サ一 バ 102において、 このメモリカード 28のユニーク I Dに対応するキ一 1を用いて暗 号化されているので、 記憶領域 302のキー 1を用いて復号化を行う。
続いて、 ステップ S 229で、 メモリコントローラ 62は、 d s CHG一 MODEコ マンドからブロックアドレスならびにユニーク I Dおよび乱数を取得する。 d s CHG —M〇 D Eコマンドには、 ダウンロードしたデータを書き込むブロックアドレスが指定 されており、 また、 先にステップ S 215で出力した乱数およびユニーク IDが埋め込 まれている。
そして、 ステップ S 231で、 メモリコントローラ 62は、 取得したユニーク I Dお よび乱数が、 メモリカード 28内のユニーク I Dおよび乱数、 つまり、 内部 RAM66 に記憶されているユニーク I Dおよび記憶領域 304に記憶されている乱数と一致する か否かを判断する。
ステップ S 231で "N〇" の場合、 つまり、 ダウンロードモードへの遷移コマンド が正当なコマンドではない場合には、 メモリコントローラ 62は、 ステップ S 233で ィリ一ガルモードに遷移する。 モード記憶領域 300にはィリーガルモードを示すデー 夕が記憶される。 イリーガルモードに遷移すると、 メモリコントローラ 62はダウン口 ード処理を行わないので、 不正な書込みを防止できる。
一方、 ステップ S 231で "YES" の場合、 つまり、 ダウンロードモードへの遷移 コマンドが正当なコマンドである場合には、 メモリコントローラ 62は、 ステップ S 2 35で、 DLセキュアモードからダウンロードモードに遷移する。 モード記憶領域 30 0にはダウンロードモードを示すデータが記憶される。
また、 ステップ S 237で、 メモリコントローラ 62は、 d s CHG— MODEコマ ンドで指定されたブロックのみをアクセス可能状態にする。 たとえば、 メモリコント口 ーラ 62は、 フラッシュメモリ 64の各領域に対するアクセスの状態を示すデータにお いて、 ダウンロード領域のメモリマップを指定ブロックのみに変更するとともに、 当該 ダウンロード領域のみについて、アクセス可能状態であることを示すデータを設定する。 さらに、 ステップ S 239で、 メモリコントローラ 62は、 インフォメーション領域 200の記憶領域 216からキ一 2を読み出して復号化し、 キー 1に代えて内部 RAM 66の記憶領域 302に展開する。 なお、 キー 2の展開前に、 キー記億領域 302から キー 1を消去しておく。
続いて、 図 25のステップ S 241で、 メモリコントローラ 62は、 d l RD— I F コマンドを受信したか否かを判断する。 この d 1 RD— I Fコマンドは、 暗号化された d s CHG— MODEコマンドの転送後に、 C P U 34によって発行されるので、 この ステップ S 241で当該 d 1 RD— I Fコマンドの受信を待機する。
ステップ S 241で "YES" の場合、 つまり、 乱数およびユニーク I Dを読むため のコマンドを受信した場合には、 メモリコントローラ 62は、 ステップ S 243で、 乱 数およびユニーク I Dをキ一 2で暗号化する。 なお、 メモリコントローラ 62は、 記憶 領域 304に乱数を発生し、 インフォメーション領域 200の記憶領域 220からュニ ーク I Dを読み出す。 そして、 乱数およびユニーク I Dを記憶領域 302に展開されて いるキ一 2で暗号化する。 ステップ S 245で、 メモリコントローラ 62は、 暗号化さ れた乱数およびユニーク I Dを出力する。
続いて、 ステップ S 247で、 メモリコントローラ 62は、 d l PRT_〇FFコマ ンドを受信したか否かを判断する。 CPU34は、 ステップ S 245で出力された暗号 化された乱数およびユニーク I Dをサーバ 102に転送後に、 この d 1 PRT— OFF コマンドを発行するので、 ステップ S 247で当該コマンドの受信を待機する。
ステップ S 247で " YES" の場合、 つまり、 ライトプロテクトを解除するための コマンドを受信した場合には、 メモリコントローラ 62は、 ステップ S 249でフラッ シュメモリ 64のダウンロード領域 204に対するライトプロテクトをオフにする。 具 体的には、 メモリコントローラ 62は、 内部 RAM66の記憶領域 306に記憶される ライトプロテクトを示すフラグをオフにする。
続いて、 ステップ S 251で、 メモリコントローラ 62は、 データ (暗号化された 2 KBy t e + 8By t eのデ一夕) を受信したか否かを判断する。 このデータは、 サ一 バ 102から送信されたダウンロードデータである。 また、 受信データには、 ゲーム装 置 10の CPU34によって、 書き込むページアドレスが追加されている。
ステップ S 251で " YES" の場合、 メモリコントローラ 62は、 ステップ S 25 3で、 受信したデ一夕とページァドレスを内部 RAM 66のワークエリアに記憶する。 一方、 ステップ S 251で "NO" の場合、 処理は図 26のステップ S 269に進む。 続いて、 ステップ S 255では、 メモリコントローラ 62は、 dWR— PAGEコマ ンドを受信したか否かを判断する。 この dWR— PAGEコマンドは、 ゲーム装置 10 の CPU34によって、 ダウンロードデータの転送後に発行されるので、 ステップ S 2 55で当該 dWR— PAGEコマンドの受信を待機する。
ステップ S 255で" YES"の場合、つまり、書込みコマンドを受信した場合には、 処理は図 26のステップ S 257に進む。 ステップ S 257では、 メモリコントローラ 62は、 記憶領域 306のライトプロテクトがオフであるか否かを判断する。
ステップ S 257で "YES" の場合、 つまり、 ダウンロードしたデータの書込みが 許可されている場合には、 メモリコントローラ 62は、 ステップ S 259で、 受信した データ (暗号化された 2KBy t e + 8By t eのデータ) をキー 2で復号化する。 な お、 受信したデータは、 サーバ 102において、 メモリカード 28のユニーク I Dに対 応するキー 2で暗号化されている。 この復号化によって、 2KBy t eのダウンロード 用データおよび 8 By t eの MI Cを取得できる。 続いて、 ステップ S 261で、 メモリコントローラ 62は、 復号化した 2KBy t e のデータに対して、 キー 3で 8 By t eの M I Cを算出する。 なお、 この MI C算出の 際には、 内部 RAM66に記憶されているユニーク I Dおよび乱数を初期値として使用 する。 また、 算出用のキー 3は、 記憶領域 302に記憶されているキ一2の一部 (共用 部分) とキー 3とによって構成される。
そして、 ステップ S 263で、 メモリコントローラ 62は、 算出した M I Cが、復号匕 した MI Cと一致するか否かを判断する。ステップ S 263で" N〇"の場合、つまり、 ダウンロードしたデ一夕が不正なデータと認められる場合には、 処理はステップ S 26 5へ進む。 ステップ S 265では、 メモリコントローラ 62は、 書込みを実行しない。 したがって、 不正なデータがダウンロード領域 204に書込まれるのを防止できる。 ス テツプ S 265を終了すると、 このダウンロード処理を終了する。
一方、 ステップ S 263で "YES" の場合、 つまり、 ダウンロードしたデータが正 規なデ一夕である場合には、 メモリコントローラ 62は、 ステップ S 267で、 復号化 した 2KBy t eのデータを、 指定されたページに書き込む。
続いて、 ステップ S 269で、 メモリコントローラ 62は、 d 1 CHG— MODEコ マンドを受信したか否かを判断する。 この d 1 CHG— MODEコマンドは、 ファイル の書込みが終了したか、 または、 1ブロックの書込みが終了したときに、 CPU34に よって発行される。 ステップ S 269で "NO" の場合、 処理は図 25のステップ S 2 51に戻る。 したがって、 ファイルの書込みが終了するか、 または 1ブロックの書込み が終了するまでは、 ダウンロードされた所定サイズ (2KBy t e) のデータのダウン ロード領域 204への書込みが繰返される。
一方、 ステップ S 269で " YES" の場合、 つまり、 ゲームモードに遷移させる遷 移コマンドを受信した場合には、 メモリコントローラ 62は、 ステップ S 271で、 ダ ゥンロードモードからゲームモードに遷移する。 モード記憶領域 300には、 ゲームモ ——ドを示すデータが記憶される。 また、 ステップ S 273で、 メモリコントローラ 62 は、 ステップ S 203と同様にして、 ダウンロード領域 204およびゲーム領域 202 を読出しのみ可能状態にする。 なお、 ダウンロード領域のメモリマップが指定ブロック に変更されているので、 インフォメーション領域 200に規定された各領域の境界デー 夕 (開始アドレス) に基づいて、 ダウンロード領域 204を元に戻し、 当該ダウンロー ド領域 204に対して読出しのみ可能状態を示すデータを設定する。
さらに、 ステップ S 275で、 メモリコントローラ 62は、 インフォメーション領域 200の記憶領域 214から読み出したキー 1を復号化して、 キー 2に代えて内部 R A M66のキー記憶領域 302にキ一 1を展開する。 ステップ S 275を終了すると、 処 理はステップ S 207に戻る。 ダウンロードするファイルの書込みが終了していない場 合には、 ダウンロード処理がゲームモードから再び実行されて、 残りのデータの書込み が行われることとなる。
図 27から図 29には、 ダウンロード処理におけるサーバ 102の動作の一例が示さ れる。ダウンロード処理を開始すると、サーバ 102の CPUは、ステップ S 301で、 ユニーク IDとゲーム IDとを受信したか否かを判断する。 ダウンロード処理では、 最 初にゲーム装置 10からメモリカード 28のユニーク I Dとゲーム I Dとがネットヮ一 ク 106を介して送信されるので、 このステップ S 301でその受信を待機する。 ステップ S 301で "YES" の場合、 サーバ 102の CPUは、 ステップ S 303 で、 受信したユニーク I Dおよびゲーム I Dを RAMの記憶領域 404および記憶領域 406に記憶する。
続いて、 ステップ S 305で、 サーバ 102の CPUは、 データ (暗号化された乱数 およびユニーク I D)を受信したか否かを判断する。メモリカード 28の認証のために、 最初のユニーク I Dの送信の後にゲーム装置 10から上記データが送信されるので、 こ のステップ S 305でその受信を待機する。
ステップ S 305で "YES" の場合には、 サーバ 102の CPUは、 ステップ S 3 07で、 受信したデータ (暗号化された乱数およびユニーク I D) を、 ユニーク IDに 対応するキ一 1で復号化する。 具体的には、 受信データは、 メモリカード 28のメモリ コントローラ 62によってキー 1で暗号化されているので、 CPUは、 記憶領域 404 の最初に受信したユニーク IDに対応するキー 1、 2および 3をデータベースから読み 出して、 記憶領域 408に記憶する。 そして、 そのキー 1で受信データを復号化する。 これによつて、 乱数およびユニーク I Dを取得することができ、 取得された乱数および ユニーク I Dは記憶領域 410に記憶される。
そして、 ステップ S 309で、 サーバ 102の CPUは、 記憶領域 410に記憶され た復号化されたユニーク I Dが、 記憶領域 404に記憶された初めのユニーク I Dと一 致するか否かを判断する。
ステップ S 309で " YES" の場合、 つまり、 メモリカード 28が正規のカードで あると認められる場合には、 サーバ 102の CPUは、 ステップ S 311でメモリカー ド 28が正規カードであることを示すデータをネットワーク 106を介してゲーム装置 10に送信する。 ステップ S 311を終了すると、 処理は図 28のステップ S 315へ 進む。
一方、 ステップ S 309で "NO" の場合、 つまり、 メモリカード 28が正規のカー ドであるとは認められない場合には、 サーバ 102の CPUは、 ステップ S 313でメ モリカード 28が正規力一ドではないことを示すデータをゲーム装置 10に送信する。 そして、 このダウンロード処理を終了する。
図 28のステップ S 315では、 サーバ 102の CPUは、 ステップ S 315でブロ ックアドレスを受信したか否かを判断する。 ステップ S 311の送信に応じて、 ゲーム 装置 10からブロックアドレスが送信されるので、 ステップ S 315でその受信を待機 する。
ステップ S 315で " YES" の場合、 サーバ 102の CPUは、 ステップ S 317 で受信したブロックアドレスを記憶領域 412に記憶する。 続いて、 ステップ S 319 で、 サーバ 102の CPUは、 ブロックアドレスならびにユニーク I Dおよび舌し数を用 いて、 d s CHG— MODEコマンドを生成する。 この d s CHG— MOD Eコマンド は、 ダウン口一ドモードに遷移させるための遷移コマンドである。 d s CHG— MOD Eコマンドにおいてはブロックアドレスが指定され、 ダウンロードモードでは、 この指 定されたブロックアドレスへの書込みが可能にされることとなる。 また、 d s CHG— MODEコマンドには、 記憶領域 410の乱数およびユニーク I Dが含められる。 また、 ステップ S 321で、 サーバ 102の CPUは、 生成した d s CHG一 MOD Eコマンドを、 ユニーク I Dに対応するキ一 1を用いて暗号化する。 そして、 ステップ S 323で、 サーバ 102の CPUは、 暗号化された d s CHG— MODEコマンドを ゲーム装置 10に送信する。
続いて、 ステップ S 325で、 サーバ 102の CPUは、 データ (暗号化された乱数 およびユニーク ID) をゲーム装置 10から受信したか否かを判断する。 メモリコント ローラ 62はダウンロードモードに遷移すると、 乱数およびユニーク I Dをキ一 2で暗 号化してサーバ 102に送信するので、 このステップ S 325でその受信を待機する。 ステップ S 325で " YES" の場合、' つまり、 上記デ一夕 (暗号化された乱数およ びユニーク I D)を受信した場合には、サーバ 102の CPUは、ステップ S 327で、 受信したデータ (暗号化された乱数およびユニーク I D) を、 ユニーク IDに対応する キ一2で復号化する。 これによつて取得された乱数およびユニーク I Dは、 記憶領域 4 10に記憶される。 ステップ S 327を終了すると、 処理は図 29のステップ S 329 へ進む。
図 29のステップ S 329では、 サーバ 102の CPUは、 書込みファイルを準備す る。 具体的には、 データベースに記憶されたダウンロード用データから所定のデータを 読み出して、 RAMの記憶領域 414に記憶する。 書込みファイルは、 たとえば、 ュニ ーク I Dに対応するファイルであってよいし、 ゲーム I Dに対応するファイルであって よいし、あるいは、ユニーク I Dやゲーム I Dによらない所定のファイルであってよい。 ステップ S 331では、 サーバ 102の CPUは、 書込みファイルのファイルデ一夕量 をゲーム装置 10に送信する。
続いて、 ステップ S 333で、 サーバ 102の CPUは、 書込みファイルから所定サ ィズ (この実施例では 2KBy t e) のデータを取り出す。 書込みファイルのデータは 所定サイズごとに分けて送信される。
ステップ S 335で、 サ一バ 102の CPUは、 2 KB y t eのデ一夕について、 8 67559
By t eの MI Cを、 ユニーク I Dに対応するキー 3で算出する。 なお、 M I C算出の 初期値として、 記憶領域 410の乱数およびユニーク I Dが使用される。 続くステップ S 337で、 サーバ 102の CPUは、 2KBy t eのデータに 8 By t eの M I Cを 追加する。 そして、 ステップ S 339で、 サーバ 102の CPUは、 2KBy t e + 8 By t eのデータを、 ユニーク I Dに対応するキー 2で暗号化する。 なお、 暗号化の初 期値として、 記憶領域 410のユニーク I Dおよび乱数が使用される。 ステップ S 34 1で、 サーバ 102の CPUは、 暗号化された 2KB y t e + 8 By t eのデータをゲ ーム装置 10に送信する。
続くステップ S 343で、 サーバ 102の CPUは、 ファイルの送信が終了したか、 または、 1ブロックの送信が終了したかを判断する。 なお、 ファイルの送信か終了した かは、 書込みファイルのデータ量とデータ送信量の累積とに基づいて判断することがで きる。ステップ S 343で" NO"の場合には、つまり、 1ブロックの送信が終了せず、 または、ファイルの送信が終了していない場合には、処理はステップ S 333に戻って、 所定サイズのデータの送信のための処理を繰返す。
一方、 ステップ S 343で " YES" の場合には、 サーバ 102の CPUは、 ステツ プ S 345でファイルの送信が終了したか否かを判断する。ステップ S 345で "NO" の場合、 つまり、 1ブロック単位のデータの送信を終了したが書込みファイルのすべて のデータの送信を終えていない場合には、 処理は図 27のステップ S 305に戻る。 メ モリコントローラ 62がゲームモードにある場合のダウンロード処理から繰返すことに よって、 次のブロックへのファイルの書込みを行う。 一方、 ステップ S 345で "YE S" であれば、 ファイルの書込みを終了したので、 ダウンロード処理を終了する。
バックアップ領域 206に対するセキュリティシステムとしてのゲーム装置 10のバ ックアップ処理の動作について図 30から図 33のフロー図を参照しながら説明する。 図 30はバックアップ書込み処理におけるゲーム装置 10の動作の一例を示す。 バッ クアップ領域 206への書込み処理を開始すると、ステップ S 401で、 CPU34は、 書き込むデータを RAM42に準備する。 この書き込むデータは、 CPU 34がゲーム 処理で生成したバックアップデータであり、 記憶領域 510に記憶される。
次に、 ステップ S 403で、 CPU 34は、 書き込むデータにパリティを付ける。 図 15に示したように、 この実施例では、 各バイトデータが 「7ビットのデータ」 + 「パ リティビット (1ビット)」のフォーマツ卜となるようにして、パリティ付きデータが生 成される。つまり、各バイ卜の先頭 7ビットは、生成されたバックアップデ一夕であり、 最終ビッ卜に先頭 7ビットのパリティが追加される。生成されたパリティ付きデ一夕は、 記憶領域 512に記憶される。
続いて、 ステップ S 405で、 CPU 34は、 バックアップ領域 206の空き領域を 確認し、 書き込むブロックアドレスを決定する。 なお、 フラッシュメモリ 64の記憶領 域のうち、 どの領域が使用され、 またはどの領域が空き領域であるかなどの情報は、 た とえばインフォメーション領域 200にヘッダ情報として記憶されているので、 CPU 34は当該ヘッダ情報に基づいてフラッシュメモリ 64の管理データを生成し、 当該管 理デ一夕に基づいて、 バックアップ領域 206における空き領域を確保して、 書き込む プロックアドレスを決定する。 決定されたプロックアドレスは、 記憶領域 514に記億 される。
そして、 ステップ S 407で、 CPU34は、 gCHG_BK_M〇DEコマンドを メモリカード 28に発行する。 この gCHG_BK一 MODEコマンドは、 バックアツ プモードに遷移させるための遷移コマンドである。 この遷移コマンドにおいて、 書き込 むブロックアドレスが指定される。 なお、 メモリコントローラ 62は、 この遷移コマン ドに応じてバックアップモードに遷移し、 バックアップ領域 206のうち指定ブロック のみがアクセス可能にされる。
続くステップ S 409で、 CPU34は、 パリティ付きデ一夕を書き込むためのライ トコマンドをメモリカード 28に発行する。 このライトコマンドは、 書き込もうとして いるパリティ付きデータを含む。 上述のダウンロード領域 204への書込みの場合と同 様に所定サイズずつデータが書き込まれるように、 たとえば、 ライトコマンドには所定 サイズのデータを添付する。このライトコマンドに応じて、メモリコントローラ 62は、 デ一夕をバックアツプ領域 206の指定プロックに書き込む。
そして、 ステップ S411で、 CPU34は、 用意したデータを全て書き終えたか、 または、 1ブロックのデータを書き終えたかを判断する。 なお、 用意したデータ (パリ ティ付きデータ) の書込みか終了したかは、 記憶領域 512に記憶したパリティ付きデ 一夕のデータ量とライトコマンドによるデータ送信量の累積とに基づいて判断すること ができる。ステップ S 411で" NO"の場合には、処理はステップ S 409に戻って、 ライトコマンドによる書込みを繰返す。
一方、 ステップ S 411で " YES" の場合には、 CPU 34は、 ステップ S413 で bCHG— MODEコマンドをメモリカード 28に発行する。 この bCHG— MOD Eコマンドは、 ノ ソクアツプモ一ドからゲームモードに遷移するための遷移コマンドで ある。 なお、 この遷移コマンドに応じて、 メモリコントローラ 62はゲームモードに遷 移する。
そして、 ステップ S 415で、 CPU34は、 用意したデータ (パリティ付きデータ) を全て書き終えたか否かを判断する。 ステップ S 45で "N〇" の場合には、 つまり、 1ブロックのデータを書き終えたが書込みしていないパリティ付きデータが残っている 場合には、 処理はステップ S 405に戻って、 次のブロックへの書込みのための処理を 実行する。 一方、 ステップ S 415で "YES" であれば、 このバックァヅプ書込み処 理を終了する。 図 31はバックアップ読出し処理におけるゲーム装置 10の動作の一例を示す。 バッ クアップ領域 206からの読出し処理を開始すると、 ステップ S 501で、 CPU34 は、 読み出すバックアップデータの格納場所を確認する。 なお、 読み出すバックアップ デ一夕は、 ユーザの操作またはプログラム等に従って選択される。 各バックアップデー 夕の格納場所に関する情報は、たとえばフラッシュメモリ 64のヘッダ情報に含まれる。 次に、 ステップ S 503で、 CPU 34は、 読み出すブロックアドレスを決定する。 読み出すバックアップデータの格納場所から、 読み出すブロックアドレスを決定し、 記 憶領域 516に記憶する。
続いて、 ステップ S 505で、 CPU34は gCHG— BK— MODEコマンドをメ モリカード 28に発行する。 この gCHG— BK— MODEコマンドは、 バックアップ モ一ドに遷移するための遷移コマンドである。 この遷移コマンドではステップ S 503 で決定された読み出すブロックアドレスが指定される。 この遷移コマンドに応じて、 メ モリコントローラ 62はバックアツプモードに遷移し、 指定プロックのみァクセス可能 にされる。
ステップ S 507では、 CPU34は、 読み出すページアドレスを指定してリードコ マンドをメモリカード 28に発行する。 このリードコマンドは、 データの読出しを指示 するためのコマンドである。 たとえば、 指定されたページのデータの読出しを指示する ことができる。 なお、 このリードコマンドに応じて、 メモリコントローラ 62は、 指定 ページのデ一夕をバックアップ領域 206から読み出す。 そして、 当該読み出したデー 夕が正当なデータであれば、 当該データが CPU34に出力される。
ステップ S 509では、 CPU34は、 データをメモリカード 28から受信したか否 かを判断する。 上述のように、 読み出したデータが正当であれば当該データが出力され るので、 このステップ S 509では、 その受信を待機する。 なお、 メモリコントローラ 62の読み出したデータが正当でないと判定される場合、 ィリーガルモードに遷移して データが出力されないので、 このバックアップ読出し処理は正常に動作しなくなる。 ステップ S 509で " YES" の場合には、 CPU 34は、 ステップ S 511で、 受 信したデータ、 すなわち読み出したデータを RAM42の記憶領域 518に記憶する。 そして、 ステップ S 513で、 CPU34は、 読み出すデータをすベて読み出したか、 または、 1ブロックの読出しが終了したかを判断する。 なお、 読み出すデータを全て読 み出したかどうかは、 読み出すデータのデータ量とリードコマンドによる読出しデ一夕 量の累積とに基づいて判断することができる。ステップ S 513で" NO"の場合には、 処理はステップ S 507に戻り、 リードコマンドによる読出し処理を繰返す。
一方、 ステップ S 513で " YES" の場合には、 CPU 34は、 ステップ S 515 で、 bCHG— MODEコマンドをメモリカード 28に発行する。 この bCHG— MO DEコマンドは、 ゲームモ一ドに遷移するための遷移コマンドである。 この遷移コマン ドに応じて、 メモリコントローラ 62はゲームモードに遷移する。
そして、 ステップ S 517で、 CPU34は、 読み出すデータを全て読み出したか否 かを判断する。 ステップ S 517で "NO" の場合、 つまり、 1ブロックの読出しを終 了したが読み出すべきデータが残っている場合には、処理はステップ S 503に戻って、 次のブロックの読出しのための処理を実行する。 一方、 ステップ S 517で "YES" であれば、 このバックアツプ読出し処理を終了する。
図 32および図 33はバックアップ処理におけるメモリコントローラ 62の動作の一 例を示す。 図 32のステップ S 601で、 メモリコントローラ 62は、 gCHG一 BK —MODEコマンドを受信したか否かを判断する。 この gCHG— BK— MODEコマ ンドは、 バックアップモードへの遷移コマンドである。 ステップ S 601で "NO" の 場合、 このバックアップ処理を終了する。
一方、 ステップ S 601で " YES" の場合、 メモリコントローラ 62は、 ステップ S 603でゲームモードからバックアップモードに遷移する。 内部 RAM 66のモード 記憶領域 300にはバックアップモードを示すデータが記憶される。 続くステップ S 6 05で、 メモリコントローラ 62は、 ノ ソクアップ領域 206のうち、 gCHG— BK — M〇 D Eコマンドで指定されたブロックのみをァクセス可能状態にする。 たとえば、 メモリコントローラ 62は、 フラッシュメモリ 64の各領域に対するアクセスの状態を 示すデータを内部 RAM 66に記憶しておき、 当該データにおいて、 バックアップ領域 206のメモリマップを指定ブロックのみに変更するとともに、 当該バックアップ領域 のみについて、 アクセス可能状態であることを示すデータを設定する。
そして、 メモリコントローラ 62は、 バックアップモードで受信したコマンドに応じ た処理を実行する。 すなわち、 ステップ S 607で、 メモリコントローラ 62は、 ライ トコマンドを受信したか否かを判断する。 ステップ S 607で "YES" の場合、 メモ リコントローラ 62は、 ステップ S 609で、 ライトコマンドとともに受信したデータ を、 遷移コマンドで指定されたバックアップ領域 206のブロックに書き込む。
ステップ S 609を終了し、 または、 ステップ S 607で " N〇" の場合、 ステップ S 611で、 メモリコントローラ 62は、 bCHG— MODEコマンドを受信したか否 かを判断する。 ステップ S 611で "YES" の場合、 つまり、 ゲームモードへの遷移 コマンドを受信した場合には、 メモリコントローラ 62は、 ステップ S 613で、 バッ クアップモードからゲームモードに遷移する。 モード記憶領域 300には、 ゲームモー ドを示すデ一夕を記憶する。続いて、ステップ S 615で、メモリコントローラ 62は、 バックアップ領域 206をアクセス不可状態にする。 たとえば、 フラッシュメモリ 64 の各領域に対するアクセスの状態を示すデー夕において、 バックアツプ領域のメモリマ ップを元に戻すととともに、 当該バックアップ領域 206に対してアクセス不可能状態 であることを示すデータを設定する。 ステップ S 615を終了すると、 このバックアツ プ処理を終了する。
一方、 ステップ S 6 1 1で " NO" の場合、 図 3 3のステップ S 6 1 7で、 メモリコ ントローラ 6 2は、 リードコマンドを受信したか否かを判断する。 ステップ S 6 1 7で "Y E S " の場合、 メモリコントローラ 6 2は、 ステップ S 6 1 9で、 リードコマンド で指定されたページがアクセス可能なブロック内であるか否かを判断する。 アクセス可 能なブロックは、 バックアップモードへの遷移コマンドで指定されたバックアツプ領域 2 0 6内のブロックである。 この判定によって、 適切な読出し指定が行われたデ一夕に 対してのみ、 パリティチェックを行うようにすることができ、 不正な読出し命令を排除 することができる。
ステップ S 6 1 9で " Y E S " の場合、 メモリコントローラ 6 2は、 ステップ S 6 2 1で、 リードコマンドで指定されたページのパリティをチェックする。 具体的には、 メ モリコントローラ 6 2は、 指定されたページデータを内部 RAM 6 6のワークエリアに 読出し、 各バイトの先頭 7ビットのパリティを算出し、 当該計算結果を各バイトの最終 ビットと比較する。
そして、 ステップ S 6 2 3で、 メモリコントローラ 6 2は、 パリティチェックの結果 が正しいか否かを判断する。 ステップ S 6 2 3で "Y E S " の場合、 つまり、 全バイト について、 算出されたパリティビットと最終ビットとが等しい場合には、 メモリコント ローラ 6 2は、 ステップ S 6 2 5で、 指定されたページのデータを C P U 3 4に出力す る。
一方、 ステップ S 6 2 3で "N O" の場合、 つまり、 算出されたパリティビットと最 終ビットとが等しくないバイトが 1つでも検出された場合には、 読み出そうとしている データが不正であると認められるので、 メモリコントローラ 6 2は、 ステップ S 6 2 7 でィリーガルモードに遷移する。 モード記憶領域 3 0 0にはィリーガルモードを示すデ 一夕が記憶される。 イリーガルモードに遷移すると、 メモリコントローラ 6 2は、 読み 出したデータを出力しない。 したがって、 不正データが読み出されて利用されるのを防 止できる。
なお、 ステップ S 6 1 7で "N〇" の場合、 ステップ S 6 1 9で "N O" の場合、 ま たはステップ S 6 2 5を終了すると、 処理は図 3 2のステップ S 6 0 7に戻る。
なお、 上述の実施例では、 ゲーム装置 1 0に装着可能なメモリカード 2 8のフラッシ ュメモリ 6 4にダウンロード領域 2 0 4を設けるようにしたが、 他の実施例では、 ゲー ム装置 1 0のハウジング 1 6内にフラッシュメモリ 6 4を設けて、 当該フラッシュメモ リ 6 4にダウンロード領域 2 0 4を設けるようにしてもよい。 その場合、 メモリコント ローラ 6 2もハウジング 1 6内に設けられる。 また、 バックアップ領域 2 0 6に関して も、 同様に、 ゲーム装置 1 0のハウジング 1 6内のフラッシュメモリ 6 4に設けるよう にしてよい。 なお、 フラッシュメモリ 6 4をゲーム装置 1 0のハウジング 1 6に内蔵す P T/JP2007/067559 る場合、 ユニーク I Dはゲーム装置 1 0の識別情報であってもよい。
また、 上述の各実施例では、 メモリカード 2 8ごとの暗号とするために、 メモリカー ド 2 8のユニーク I Dに対応するキー 1、 2および 3を準備して、 フラッシュメモリ 6 4およびサーバ 1 2に予め記憶するようにした。 しかし、 他の実施例では、 ゲームタイ トル (ゲームプログラム) またはアプリケーションの種類 (アプリケーションプロダラ ム) ごとの暗号とするようにしてもよく、 その場合には、 ゲーム I D (アプリケーショ ン I D) に対応するキー 1、 2および 3を準備して、 フラッシュメモリ 6 4およびサー バ 1 2に予め記憶する。 そして、 暗号化および復号化の際には、 ゲーム I Dに対応する キーを用いるようにする。
また、 上述の各実施例では、 フラッシュメモリ 6 4にダウンロード領域 2 0 4とバッ クアップ領域 2 0 6の 2つの書込み領域を設けて、 一方のダウンロード領域 2 0 4に対 してモード遷移と書込みデータの暗号化による段階的なセキュリティをかけ、 他方のバ ックアップ領域 2 0 6に対しては書込みデータのフォ一マツトによってセキュリティを かけるようにしていた。 しかし、 他の実施例では、 フラッシュメモリ 6 4にはいずれか 一方の書込み領域のみを設けるようにしてよい。
この発明が詳細に説明され図示されたが、 それは単なる図解および一例として用いた ものであり、 限定であると解されるべきではないことは明らかであり、 この発明の精神 および範囲は添付されたクレームの文言によってのみ限定される。

Claims

請求の範囲
1 . 所定の書込み領域を有する記憶手段、 前記記憶手段の書込みと読出しを制御する制 御手段、 および前記制御手段に接続されるホストを含む、 書込み領域セキュリティシス テムであって、
前記ホストは、 前記所定の書込み領域に記憶されたデータの読出し命令を前記制御手 段に送信する命令送信手段を含み、
前記制御手段は、
前記読出し命令に応じて前記所定の書込み領域から読み出したデータが所定のフォ 一マツ卜であるか否かを判定するフォーマツト判定手段、 および
前記フォーマツト判定手段によって前記データが前記所定のフォーマツ卜であると 判定されたときのみ、 前記データを前記ホストに出力する出力手段を含む、 書込み領域 セキュリティシステム。
2 . 前記記憶手段は、 第 1領域および第 2領域を有していて、
前記制御手段は、 第 1遷移コマンドに応じて遷移された書込み可能なモードにおいて データを前記第 1領域に書き込む第 1書込み手段をさらに含み、
前記フォーマツト判定手段は、 前記所定の書込み領域としての前記第 2領域から読み 出したデータに対してのみ、前記データが所定のフォーマツ卜であるか否かを判定する、 請求項 1記載の書込み領域セキュリティシステム。
3 . 前記制御手段は、 前記ホストから指定された読出しアドレスが前記所定の書込み領 域のうちのアクセス可能な領域内であるか否かを判定するアドレス判定手段をさらに含 み、
前記アドレス判定手段によって前記読出しアドレスが前記領域内であると判定される とき、 前記フォーマット判定手段は、 読み出したデータが所定のフォーマットであるか 否かを判定する、 請求項 1記載の書込み領域セキュリティシステム。
4. 前記フォーマット判定手段は、 前記読み出したデ一夕のパリティチェックによって 判定を行う、 請求項 1記載の書込み領域セキュリティシステム。
5 . 前記制御手段は、 前記読み出したデータが前記所定のフォーマットではないと前記 フォーマット判定手段によって判定されるとき、 イリーガルモードに遷移する、 請求項 1記載の書込み領域セキュリティシステム。
6 . 前記ホストは、 パリティビットの付加されたデ一夕を生成する書込みデータ生成手 段を含み、
前記制御手段は、 前記書込みデータ生成手段によって生成されたデータを前記所定の 書込み領域に書き込む第 2書込み手段を含む、 請求項 1記載の書込み領域セキュリティ システム。
7 . 前記記憶手段は、 前記第 1領域および前記第 2領域の境界データを記憶する、 請求 項 2記載の書込み領域セキュリティシステム。
8 .サーバおよび前記サーバからデータをダウンロードする情報処理装置を含んでいて、 前記情報処理装置は、 前記記憶手段、 前記制御手段および前記ホストを含み、 前記サーバは、
前記記憶手段の前記第 1領域に書込み可能なモードに前記制御手段を遷移させるた めの前記第 1遷移コマンドを前記情報処理装置に送信する遷移コマンド送信手段、 およ び
ダウンロードするデータを前記情報処理装置に送信するデータ送信手段を含む、 請 求項 2記載の書込み領域セキュリティシステム。
9 . 前記サーバは、 前記第 1遷移コマンドを暗号化する暗号化手段をさらに含み、 前記遷移コマンド送信手段は、 前記暗号化手段によつて暗号化された前記第 1遷移コ マンドを送信し、
前記制御手段は、 前記暗号化された第 1遷移コマンドを復号化する復号化手段をさら に含む、 請求項 8記載の書込み領域セキュリティシステム。
1 0 . 前記第 1遷移コマンドは、 前記ダウンロードするデータを書き込むために指定さ れたアドレスを含み、
前記制御手段は、 前記第 1遷移コマンドに応じて前記第 1領域に前記書込み可能なモ 一ドに遷移したとき、 前記第 1領域のうち前記指定されたァドレスのみ書込み可能にす る書込み可能化手段をさらに含む、 請求項 8記載の書込み領域セキュリティシステム。
1 1 . 前記書込み可能化手段は、 前記第 1領域のうち前記指定されたアドレスから一定 範囲を書込み可能にする、 請求項 1 0記載の書込み領域セキュリティシステム。
1 2 . 前記制御手段は、 前記第 1領域に書込み可能なモードの 1つ前の段階で遷移され る通常よりセキュリティ度の高いセキュアモードにおいて、 暗号化された前記第 1遷移 コマンドを前記復号化手段によつて復号化する、 請求項 9記載の書込み領域セキュリテ ィシステム。
1 3 . 前記サーバは、 前記第 1遷移コマンドの暗号のための第 1キー、 および前記第 1 キーと異なる前記ダウンロードするデータの暗号のための第 2キーを記憶し、
前記暗号化手段は、 前記第 1キーを用いて前記第 1遷移コマンドを暗号化し、 前記データ送信手段は、 前記第 2キーを用いて暗号化された前記ダウンロードするデ —夕を送信し、
前記記憶手段は、 前記第 1キーおよび前記第 2キーを記憶し、
前記復号化手段は、 暗号化された前記第 1遷移コマンドを前記第 1キーを用いて復号 化し、
前記第 1書込み手段は、 前記第 1領域に書込み可能なモードにおいて、 前記暗号化さ れたダウンロードするデータを前記第 2キーを用いて復号化して前記第 1領域に書き込 む、 請求項 9記載の書込み領域セキュリティシステム。
1 4. 前記サーバは、 前記ダウンロードするデータのメッセージダイジェスト認証用の 第 3キーをさらに記憶し、
前記データ送信手段は、 前記第 3キーを用いて生成された認証記号を付加した前記ダ ゥンロードするデータを、 前記第 2キーを用いて暗号化して、 当該暗号化されたデータ を送信し、
前記記憶手段は、 前記第 3キーをさらに記憶し、
前記制御手段は、 前記第 1領域に書込み可能なモードにおいて、 前記暗号化されたデ 一夕を前記第 2キーを用いて復号化し、
前記第 1書込み手段は、 前記復号化したデータが前記第 3キーを用いて認証されたと き、 当該データを前記第 1領域に書き込む、 請求項 1 3記載の書込み領域セキュリティ システム。
1 5 . 前記第 3キーは、 前記第 2キーの一部を置き換えることによって得られるキーで ある、 請求項 1 4記載の書込み領域セキュリティシステム。
1 6 .前記記憶手段は、暗号化された前記第 1キーおよび前記第 2キーを記憶していて、 前記制御手段は、 前記セキュアモードに遷移したとき、 暗号化された前記第 1キーを 復号化して RAMに展開し、 前記第 1領域に書込み可能なモードに遷移したとき、 暗号 化された前記第 2キーを復号化して RAMに展開する、 請求項 1 2記載の書込み領域セ キユリティシステム。
1 7 . 前記制御手段は、 前記セキュアモードに遷移するための第 2遷移コマンドに応じ て前記第 1キーを展開し、 前記第 1遷移コマンドに応じて前記第 2キーを展開する、 請 求項 1 6記載の書込み領域セキュリティシステム。
1 8 . 前記ホストは、 通常モードにおいて、 前記制御手段に対するコマンドを、 処理負 担の比較的軽いアルゴリズムに従って暗号化する通常暗号化手段をさらに含む、 請求項 8記載の書込み領域セキュリティシステム。
1 9 . 前記ホストは、 前記制御手段に書込みを指示するための書込みコマンドを発行す る書込み発行手段をさらに含み、
前記制御手段は、 前記第 1領域に書込み可能なモードにおいて、 前記書込みコマンド に応じて、 前記ダウンロードするデータを前記第 1領域に書き込む、 請求項 8記載の書 込み領域セキュリティシステム。
2 0 . 前記記憶手段は、 当該記憶手段の識別情報を記憶していて、
前記情報処理装置は、 前記記憶手段に記憶された前記識別情報を前記サーバに送信す る識別情報送信手段を含み、
前記サーバは、 複数の前記識別情報に対応付けられた、 前記第 1遷移コマンドの暗号 のための複数の第 1キーを記憶していて、 前記暗号化手段は、 前記記憶手段の識別情報に対応する前記第 1キーを用いて、 前記 第 1遷移コマンドを暗号化する、 請求項 9記載の書込み領域セキュリティシステム。
2 1 . 前記記億手段は、 当該記憶手段に記憶されるアプリケーションプログラムの識別 情報を記憶し、
前記情報処理装置は、 前記記憶手段に記憶された前記識別情報を前記サーバに送信す る識別情報送信手段を含み、
前記サーバは、 複数の前記識別情報に対応付けられた、 前記第 1遷移コマンドの暗号 のための複数の第 1キーを記憶していて、
前記暗号化手段は、 受信した前記アプリケーションプログラムの識別情報に対応する 前記第 1キーを用いて、 前記第 1遷移コマンドを暗号化する、 請求項 9記載の書込み領 域セキュリティシステム。
2 2 . 前記記憶手段および前記制御手段は、 装着可能な記憶媒体に設けられた、 請求項 1記載の書込み領域セキュリティシステム。
2 3 . 所定の書込み領域を有する記憶手段とホストとを含む書込み領域セキュリティシ ステムにおいて用いられ、 前記記憶手段に対する書込みと読出しを制御するメモリコン 卜ローラであって、
前記ホストからの読出し命令に応じて前記所定の書込み領域から読み出したデータが 所定のフォーマツ卜であるか否かを判定するフォーマツト判定手段、 および
前記フォーマツト判定手段によって前記データが前記所定のフォーマツトであると判 定されたときのみ、 前記データを前記ホストに出力する出力手段を備える、 メモリコン トローラ。
2 4. 所定の書込み領域を有する記憶手段、 前記記憶手段に対する書込みと読出しを制 御する制御手段、 および前記制御手段に接続されるホストを含む書込み領域セキユリテ ィシステムにおけるセキュリティ方法であって、
前記制御手段が前記ホストからの読出し命令に応じて前記所定の書込み領域から読み 出したデータは所定のフォーマツ卜であるか否かを判定するステップ、 および
前記データが所定のフォーマツトであると判定されるときのみ、 前記制御手段が前記 ホストに前記データを出力するステツプを含む、 セキュリティ方法。
PCT/JP2007/067559 2007-09-04 2007-09-04 書込み領域セキュリティシステム WO2009031244A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP07806991A EP2187313A4 (en) 2007-09-04 2007-09-04 WRITE-IN REGIONAL SECURITY SYSTEM
JP2009531082A JP5177696B2 (ja) 2007-09-04 2007-09-04 書込み領域セキュリティシステム
PCT/JP2007/067559 WO2009031244A1 (ja) 2007-09-04 2007-09-04 書込み領域セキュリティシステム
EP13198509.5A EP2738680A1 (en) 2007-09-04 2007-09-04 Writing area security system
US12/676,513 US9176897B2 (en) 2007-09-04 2007-09-04 Writing area security system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/067559 WO2009031244A1 (ja) 2007-09-04 2007-09-04 書込み領域セキュリティシステム

Publications (1)

Publication Number Publication Date
WO2009031244A1 true WO2009031244A1 (ja) 2009-03-12

Family

ID=40428567

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/067559 WO2009031244A1 (ja) 2007-09-04 2007-09-04 書込み領域セキュリティシステム

Country Status (4)

Country Link
US (1) US9176897B2 (ja)
EP (2) EP2738680A1 (ja)
JP (1) JP5177696B2 (ja)
WO (1) WO2009031244A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2187314B1 (en) * 2007-09-04 2019-10-23 Nintendo Co., Ltd. Download security system
US8369894B1 (en) * 2009-01-05 2013-02-05 Sprint Communications Company L.P. Confirming certification of combinations of secure elements and mobile devices
US10372625B2 (en) 2016-12-27 2019-08-06 Intel Corporation Secure memory
KR102415330B1 (ko) * 2018-01-08 2022-06-30 삼성전자주식회사 스토리지 장치의 동작 방법 및 시스템

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01182971A (ja) * 1988-01-14 1989-07-20 Omron Tateisi Electron Co 記憶媒体処理装置
JPH03126145A (ja) * 1989-10-11 1991-05-29 Fuji Facom Corp 記憶装置のメモリ保護方式
JPH05274492A (ja) * 1992-03-25 1993-10-22 Hitachi Maxell Ltd Icカードシステム
WO2004046934A2 (en) 2002-11-18 2004-06-03 Arm Limited Secure memory for protecting against malicious programs
JP2006139884A (ja) * 2004-11-15 2006-06-01 Ikuo Yamaguchi 半導体メモリ装置
JP2006338311A (ja) * 2005-06-01 2006-12-14 Dainippon Printing Co Ltd 複数のアプリケーションを搭載したデバイスを処理するコンピュータシステム、デバイスおよびコンピュータプログラム
US20070124557A1 (en) 2005-11-28 2007-05-31 Kabushiki Kaisha Toshiba Method, apparatus, and system for protecting memory
JP2007206902A (ja) * 2006-01-31 2007-08-16 Dainippon Printing Co Ltd Icカードのプログラム修正システム、プログラム、及びicカード

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5148481A (en) * 1989-10-06 1992-09-15 International Business Machines Corporation Transaction system security method and apparatus
JPH0844628A (ja) 1994-08-03 1996-02-16 Hitachi Ltd 不揮発性メモリ、およびそれを用いたメモリカード、情報処理装置、ならびに不揮発性メモリのソフトウェアライトプロテクト制御方法
US6233683B1 (en) 1997-03-24 2001-05-15 Visa International Service Association System and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card
US7239706B1 (en) * 1997-08-06 2007-07-03 Deutsche Telekom Ag Transcoder for decoding encoded TV programs
JP2000236325A (ja) * 1999-02-09 2000-08-29 Lg Electronics Inc デジタルデータファイルの暗号化装置及びその方法
US6658219B1 (en) * 1999-09-30 2003-12-02 Fuji Photo Film Co., Ltd. Method, device, system and recording medium for detecting improper cartridge, and cartridge
DE19947986A1 (de) * 1999-10-05 2001-04-12 Ibm System und Verfahren zum Herunterladen von Anwendungsteilen auf eine Chipkarte
US20060075395A1 (en) * 2004-10-01 2006-04-06 Lee Charles C Flash card system
US7515718B2 (en) * 2000-12-07 2009-04-07 Igt Secured virtual network in a gaming environment
JP2002281181A (ja) 2001-03-16 2002-09-27 Jr East Mechatronics Co Ltd Icカードを使った電子商取引システム
US20020165026A1 (en) * 2001-05-01 2002-11-07 Perkins James Harold Method and system for delivering and securing computer game content via the internet
JP3913004B2 (ja) * 2001-05-28 2007-05-09 キヤノン株式会社 データ圧縮方法及び装置及びコンピュータプログラム及び記憶媒体
US20020199074A1 (en) * 2001-06-20 2002-12-26 Yao-Jung Kuo Control device for memory accessing and the method of the same
JP2004013560A (ja) 2002-06-07 2004-01-15 Victor Co Of Japan Ltd 認証システム、通信端末及びサーバ
US20040073841A1 (en) * 2002-10-11 2004-04-15 Toros Zeynep M. Command set for a software programmable verification tool having a built-in self test (BIST) for testing and debugging an embedded device under test (DUT)
TW591393B (en) * 2003-01-22 2004-06-11 Fujitsu Ltd Memory controller
KR100585095B1 (ko) 2003-06-26 2006-05-30 삼성전자주식회사 데이터 전송 시스템에서의 데이터 보호 방법 및 장치
JP4624732B2 (ja) * 2003-07-16 2011-02-02 パナソニック株式会社 アクセス方法
US20050086471A1 (en) * 2003-10-20 2005-04-21 Spencer Andrew M. Removable information storage device that includes a master encryption key and encryption keys
CN1886712B (zh) 2003-11-28 2010-09-08 松下电器产业株式会社 数据处理装置
US8548429B2 (en) * 2004-03-08 2013-10-01 Rafi Nehushtan Cellular device security apparatus and method
EP1578051B1 (en) 2004-03-18 2008-10-29 STMicroelectronics (Research & Development) Limited Apparatus comprising a key selector and a key update mechanism for encrypting/decrypting data to be written/read in a store
US7594471B2 (en) * 2004-07-21 2009-09-29 Detnet South Africa (Pty) Ltd. Blasting system and method of controlling a blasting operation
US7770027B2 (en) * 2004-11-15 2010-08-03 Nintendo Co., Ltd. Semiconductor memory device
JP2006139661A (ja) * 2004-11-15 2006-06-01 Kumiko Mito 記憶装置
JP4667014B2 (ja) 2004-11-18 2011-04-06 キヤノン株式会社 記憶管理装置及びその制御方法
US7770003B2 (en) * 2004-12-29 2010-08-03 Intel Corporation Updating firmware securely over a network
JP2006229863A (ja) * 2005-02-21 2006-08-31 Seiko Epson Corp 暗号化/復号化装置、通信コントローラ及び電子機器
KR101191262B1 (ko) * 2005-06-23 2012-10-16 톰슨 라이센싱 디지털 저작권 관리 가능 휴대용 재생 디바이스, 방법 및 시스템
JP2007004522A (ja) 2005-06-24 2007-01-11 Renesas Technology Corp 記憶装置
US20070067644A1 (en) * 2005-08-26 2007-03-22 International Business Machines Corporation Memory control unit implementing a rotating-key encryption algorithm
US20070050642A1 (en) * 2005-08-26 2007-03-01 International Business Machines Corporation Memory control unit with configurable memory encryption
US7623659B2 (en) * 2005-11-04 2009-11-24 Cisco Technology, Inc. Biometric non-repudiation network security systems and methods
WO2007087432A2 (en) * 2006-01-24 2007-08-02 Stepnexus, Inc. Method and system for personalizing smart cards using asymmetric key cryptography
US20070257813A1 (en) * 2006-02-03 2007-11-08 Silver Spring Networks Secure network bootstrap of devices in an automatic meter reading network
JP4795812B2 (ja) 2006-02-22 2011-10-19 富士通セミコンダクター株式会社 セキュアプロセッサ
IL174363A0 (en) * 2006-03-16 2006-08-01 Vollee Ltd Method and system for providing video game sounds to a mobile device
US8024508B2 (en) * 2006-03-21 2011-09-20 Lg Electronics Inc. Computer storage control
US20070294337A1 (en) * 2006-03-31 2007-12-20 Maria Gaos Client-side information processing system, apparatus and methods
JP2007304954A (ja) * 2006-05-12 2007-11-22 Sharp Corp メモリ保護機能を有するコンピュータシステム
KR100766313B1 (ko) 2006-05-30 2007-10-11 삼성전자주식회사 이동통신단말기에서 보안 키의 암호화 장치 및 방법
JP2008104040A (ja) * 2006-10-20 2008-05-01 Fujitsu Ltd 共通鍵生成装置および共通鍵生成方法
EP2187314B1 (en) * 2007-09-04 2019-10-23 Nintendo Co., Ltd. Download security system
JP2009175824A (ja) * 2008-01-22 2009-08-06 Hitachi Ltd メインフレーム用記憶制御装置及びメインフレーム用ボリュームの仮想化方法
JP5319238B2 (ja) * 2008-10-29 2013-10-16 真二 栗本 情報処理システム、情報処理装置、情報処理方法、および情報処理プログラム

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01182971A (ja) * 1988-01-14 1989-07-20 Omron Tateisi Electron Co 記憶媒体処理装置
JPH03126145A (ja) * 1989-10-11 1991-05-29 Fuji Facom Corp 記憶装置のメモリ保護方式
JPH05274492A (ja) * 1992-03-25 1993-10-22 Hitachi Maxell Ltd Icカードシステム
WO2004046934A2 (en) 2002-11-18 2004-06-03 Arm Limited Secure memory for protecting against malicious programs
JP2006139884A (ja) * 2004-11-15 2006-06-01 Ikuo Yamaguchi 半導体メモリ装置
JP2006338311A (ja) * 2005-06-01 2006-12-14 Dainippon Printing Co Ltd 複数のアプリケーションを搭載したデバイスを処理するコンピュータシステム、デバイスおよびコンピュータプログラム
US20070124557A1 (en) 2005-11-28 2007-05-31 Kabushiki Kaisha Toshiba Method, apparatus, and system for protecting memory
JP2007148770A (ja) * 2005-11-28 2007-06-14 Toshiba Corp メモリ保護装置、メモリ保護システムおよびメモリ保護方法
JP2007206902A (ja) * 2006-01-31 2007-08-16 Dainippon Printing Co Ltd Icカードのプログラム修正システム、プログラム、及びicカード

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2187313A4

Also Published As

Publication number Publication date
US20100287380A1 (en) 2010-11-11
EP2738680A1 (en) 2014-06-04
US9176897B2 (en) 2015-11-03
JP5177696B2 (ja) 2013-04-03
JPWO2009031244A1 (ja) 2010-12-09
EP2187313A1 (en) 2010-05-19
EP2187313A4 (en) 2011-08-03

Similar Documents

Publication Publication Date Title
JP5177697B2 (ja) ダウンロードセキュリティシステム
US7979719B2 (en) Data authentication method and data authentication system
JP4795812B2 (ja) セキュアプロセッサ
CN102859963B (zh) 从非本地存储器安全地引导和配置子系统
US20020111179A1 (en) Method for exchanging information between communication devices performing wireless communication
US20020077177A1 (en) Security system for video game system with hard disk drive and internet access capability
US20060247059A1 (en) Game system, game apparatus, storage medium storing game program, and game controlling method
JP5250645B2 (ja) 情報処理装置
WO2009031244A1 (ja) 書込み領域セキュリティシステム
KR102247815B1 (ko) 블록체인 네트워크에 기반한 게임 세이브 데이터 관리 기법
US20060265378A1 (en) Storage medium, method of producing transfer file data, and data signal
KR20040013864A (ko) 게임단말장치와 그 관리 방법 및 상기 게임단말장치 관리방법을 실행시키기 위한 데이터를 기록한 컴퓨터로 읽을수 있는 기록매체
CN114450663A (zh) 使用安全集成电路来更新固件的电子装置及其操作方法
EP1635242B1 (en) Password verification system
JP2007052717A (ja) データ転送装置およびデータ転送方法
JP5502181B2 (ja) ダウンロードセキュリティシステム
JP5250644B2 (ja) 情報処理装置
CN100440180C (zh) 处理器、存储器、计算机系统、系统lsi及其验证方法
US20090298596A1 (en) Game system
JP2008077273A (ja) 半導体メモリカードにおけるデータ保護方法、および半導体メモリカード
JPH03200446A (ja) 車載用表示装置
JP4869815B2 (ja) 携帯端末装置、その制御方法、およびプログラム
JP5339860B2 (ja) 取り外し可能な不揮発性補助記憶装置
CN110191468B (zh) 加密、解密方法及移动终端
WO2021015204A1 (ja) アクセス制御装置、アクセス制御方法及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07806991

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2009531082

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2007806991

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 12676513

Country of ref document: US