WO2011064883A1 - メモリチップ - Google Patents

メモリチップ Download PDF

Info

Publication number
WO2011064883A1
WO2011064883A1 PCT/JP2009/070056 JP2009070056W WO2011064883A1 WO 2011064883 A1 WO2011064883 A1 WO 2011064883A1 JP 2009070056 W JP2009070056 W JP 2009070056W WO 2011064883 A1 WO2011064883 A1 WO 2011064883A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
unit
key
controller
memory chip
Prior art date
Application number
PCT/JP2009/070056
Other languages
English (en)
French (fr)
Inventor
上林 達
笠原 章裕
松川 伸一
広幸 坂本
加藤 拓
博 助川
禎彦 広瀬
新保 淳
藤崎 浩一
Original Assignee
株式会社東芝
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 株式会社東芝 filed Critical 株式会社東芝
Priority to JP2010527680A priority Critical patent/JP5178839B2/ja
Priority to PCT/JP2009/070056 priority patent/WO2011064883A1/ja
Priority to US12/882,979 priority patent/US8473810B2/en
Publication of WO2011064883A1 publication Critical patent/WO2011064883A1/ja
Priority to US13/924,675 priority patent/US8788907B2/en
Priority to US14/303,704 priority patent/US9053062B2/en
Priority to US14/700,385 priority patent/US9355045B2/en

Links

Images

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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • 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/34Encoding or coding, e.g. Huffman coding or error correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys

Definitions

  • the present invention relates to a memory chip.
  • the semiconductor memory chip formed on the semiconductor die is usually not used alone but is electrically connected to an external controller. Access to data in the memory on the semiconductor memory chip from an external device (such as a writing device or a reading / reproducing device) is performed via a controller.
  • a controller and a semiconductor memory chip may be combined and sold as a memory product.
  • a product such as an SD memory card is an example (see Non-Patent Document 1).
  • a semiconductor memory chip and a controller bonded with resin are provided as SIP (System In Package).
  • the controller may be incorporated in a part of a semiconductor other than the semiconductor memory chip. In either case, the semiconductor memory chip and the controller are directly connected, and access to data in the memory of the semiconductor memory chip is always performed through the controller.
  • the controller may not only mediate access to the data of the semiconductor memory chip but also provide a security function.
  • a copyright protection function is introduced into the controller.
  • the controller authenticates the host device such as a player or a writing device, and transfers data stored in the semiconductor memory chip to the host device only when the authentication is successful. Further, the controller records data received from the writing device in the semiconductor memory chip only when the authentication is successful. Thereby, for example, an unauthorized player who is not authenticated cannot access data in the memory card. Therefore, the data in the memory card is protected from being stolen by an unauthorized player.
  • the present invention has been made in view of the above, and an object thereof is to provide a memory chip that can prevent unauthorized use of data due to forgery of a memory card or the like.
  • the present invention relates to a memory chip connected to a controller that controls reading and writing of data in response to a request from an external device, including a memory including a special area that is a predetermined data storage area, and the external device Receives a write data to be written to the special area from the controller, and stores the write data using the second key.
  • the key storage unit stores a second key corresponding to the first key used for data conversion
  • a conversion unit that generates converted conversion data, and a writing unit that writes the conversion data in the special area are provided.
  • the present invention is a memory chip connected to a controller that controls reading and writing of data in response to a request from an external device, and includes a memory including a special area that is a predetermined data storage area, A key storage unit that stores a second key corresponding to a first key used for data conversion by an external device, and write data to be written to the special area are received from the controller, and the received write data is received from the special area And a conversion unit that generates conversion data obtained by converting the write data written in the special area using the second key.
  • the present invention is a memory chip connected to a controller that controls reading and writing of data in response to a request from an external device, and includes a memory including a special area that is a predetermined data storage area, Using an encryption key shared with the controller, an encryption unit that generates encrypted data obtained by encrypting the write data written in the special area, and a sending unit that sends the encrypted data to the controller It is characterized by providing.
  • the figure which shows an example of a trust chain. 1 is a block diagram of a semiconductor memory chip and a controller according to a first embodiment.
  • the figure which shows the structural example of an encryption key sharing part. 5 is a flowchart showing an overall flow of encryption key sharing processing in the first embodiment.
  • the figure which shows the structural example of a transmission control part and a read-out control part. 3 is a flowchart showing an overall flow of data reading processing in the first embodiment.
  • the figure which shows the modification of an encryption key sharing part The flowchart which shows the whole flow of the encryption key sharing process in the modification of 1st Embodiment.
  • 9 is a flowchart showing an overall flow of data reading processing in a modification of the first embodiment.
  • 9 is a flowchart showing an overall flow of data read processing in another modification of the first embodiment.
  • 3 is a flowchart showing an overall flow of write processing according to the first embodiment.
  • the figure which shows the structural example of the reception control part and writing apparatus of 2nd Embodiment. 9 is a flowchart illustrating an overall flow of write processing according to the second embodiment.
  • the figure which shows the structural example of the data conversion part of 2nd Embodiment. 9 is a flowchart showing an overall flow of data reading processing in the second embodiment.
  • the semiconductor memory chip has a security function, and the semiconductor memory chip itself is incorporated in the trust chain. This prevents the semiconductor memory chip from being used in combination with an unauthorized controller.
  • a semiconductor memory chip is an advanced component and cannot be easily manufactured and sold like a controller having an unauthorized ID.
  • FIG. 1 is a diagram showing an example of a system in which a semiconductor memory chip 100 is incorporated in a trust chain.
  • the direction of the arrow in FIG. 1 indicates the direction of authentication. That is, the semiconductor memory chip 100 authenticates the controller 200, the controller 200 authenticates the writing device 300, and the writing device 300 authenticates the semiconductor memory chip 100.
  • the broken line is optional.
  • the writing device 300 is the starting point of the trust chain, and the purpose of constructing the trust chain of FIG. 1 is to authenticate the controller 200 via the semiconductor memory chip 100. Since the data flow between the writing device 300 and the semiconductor memory chip 100 is always performed via the controller 200, the authentication of the semiconductor memory chip 100 by the writing device 300 is indirect.
  • the semiconductor memory chip 100 itself has a security function.
  • a special area is configured in the memory of the semiconductor memory chip 100.
  • the special area includes a read special area and a write special area.
  • the read special area is a predetermined memory area in which only the controller 200 authenticated by the semiconductor memory chip 100 among the storage areas (memory areas) in the memory can correctly read the stored values.
  • the write special area is a predetermined memory area in which data decoded by a data conversion unit (described later) is written in the memory area when data is written.
  • a common area is provided in the read special area and the write special area in order to incorporate the semiconductor memory chip 100 in the trust chain. Then, information essential for data use is recorded in the common area. Information that is essential for data use can be correctly recorded in the common area, that is, the semiconductor memory chip 100 is authenticated by the writing device 300. The information that is indispensable for using the data recorded in the common area is correctly read out by the controller 200, that is, the controller 200 is authenticated by the semiconductor memory chip 100. Thus, the trust chain of FIG. 1 is completed.
  • FIG. 2 is a block diagram illustrating an example of the configuration of the semiconductor memory chip 100 and the controller 200 according to the first embodiment. First, an outline of functions of the semiconductor memory chip 100 will be described. As shown in FIG. 2, the semiconductor memory chip 100 includes a memory 110, an encryption key sharing unit 120, a transmission control unit 130, and a data conversion unit 140.
  • the memory 110 is a storage unit that stores various data.
  • the memory 110 can be configured by, for example, a NAND flash memory. Note that the memory 110 is not limited to this, and any semiconductor memory including a semiconductor element including other types of flash memories can be applied.
  • the memory 110 includes a code storage unit 111, a read special area 112, a write special area 113, a common area 114, and a general area 115.
  • the code storage unit 111 stores an error correction code (ECC: error correction code) of data requested to be written by the writing device 300.
  • ECC error correction code
  • the code storage unit 111 may be provided outside the memory 110 as a storage unit independent of the memory 110.
  • FIG. 2 shows an example in which each of the read special area 112 and the write special area 113 includes an area other than the common area 114.
  • the configuration of each area is arbitrary. is there.
  • the read special area 112 and the write special area 113 may be matched (that is, the read special area 112 and the write special area 113 may all match the common area 114).
  • the general area 115 represents an area that can be directly written and read by the controller 200 without using the transmission control unit 130 and the data conversion unit 140.
  • the encryption key sharing unit 120 holds or generates an encryption key shared with the controller 200.
  • the sending control unit 130 controls processing for sending data read from the memory 110 to the controller 200.
  • the data conversion unit 140 generates converted data obtained by converting data requested to be written from the writing device 300 via the controller 200.
  • the encryption key sharing unit 120, the transmission control unit 130, and the data conversion unit 140 are configured on the same die as the memory 110. As a result, a security function can be provided in the semiconductor memory chip 100 to prevent unauthorized use of data due to forgery of the memory card or the like. Details of the functions of the encryption key sharing unit 120, the transmission control unit 130, and the data conversion unit 140 will be described later.
  • the controller 200 includes an encryption key sharing unit 210, a read control unit 220, a write control unit 230, a general area reading unit 240, and a general area writing unit 250.
  • the encryption key sharing unit 210 holds or generates an encryption key shared with the semiconductor memory chip 100.
  • the read control unit 220 controls a process of reading data from the common area 114 of the semiconductor memory chip 100 in response to a request from an external device (not shown) such as a read device and a playback device.
  • the write control unit 230 controls a process of writing data to the common area 114 of the semiconductor memory chip 100 in response to a request from an external device such as the writing device 300.
  • the general area reading unit 240 controls reading of data from the general area 115. That is, when reading data from the general area 115, the reading device inputs the designation of a page to be read to the general area reading unit 240 of the controller 200.
  • the general area reading unit 240 reads the data of the designated page and reads the ECC corresponding to the designated page from the code storage unit 111. Further, the general area reading unit 240 checks an error of the page read using the ECC. If there is no error, the general area reading unit 240 outputs the read page data. When an error exists and can be repaired, the general area reading unit 240 repairs and outputs the read page data. In other cases, the general area reading unit 240 outputs an error code.
  • the general area writing unit 250 controls data writing to the general area 115. That is, when writing data to the general area 115, the writing device 300 inputs data to the general area writing unit 250 of the controller 200. At this time, the writing apparatus 300 also inputs the designation of a page to be written (area in the memory) to the general area writing unit 250.
  • the general area writing unit 250 generates an ECC of the input data, writes the data to a specified page in the general area 115, and stores the generated ECC in the code storage unit 111 as an ECC for the specified page. Record.
  • the encryption key sharing unit 120 holds a KM 121 (hereinafter referred to as a media key KM) representing a media key and an MKB (Media Key Block) 122.
  • MKB Media Key Block
  • the encryption key sharing unit 210 holds a KD 212 representing a device key.
  • the encryption key sharing unit 210 includes an MKB reading unit 211 and an MKB processing unit 213.
  • the MKB reading unit 211 reads the MKB 122 from the encryption key sharing unit 120 of the semiconductor memory chip 100.
  • the MKB processing unit 213 executes an MKB process for deriving the media key KM by processing the read MKB using the device key KD212.
  • the encryption key sharing unit 120 of the semiconductor memory chip 100 authenticates the encryption key sharing unit 210 of the controller 200.
  • FIG. 4 is a flowchart showing the overall flow of the encryption key sharing process in the first embodiment.
  • the MKB reading unit 211 of the encryption key sharing unit 210 of the controller 200 reads the MKB 122 of the semiconductor memory chip 100 (step S101).
  • the MKB 122 can always freely read from the controller 200.
  • the MKB reading unit 211 sends the read MKB 122 to the MKB processing unit 213 (step S102).
  • the MKB processing unit 213 reads the device key KD212 held by the encryption key sharing unit 210 of the controller 200, and performs MKB processing (step S103). Next, the MKB processing unit 213 determines whether or not the media key KM is obtained by the MKB process (step S104). When the device key KD212 is revoked by the MKB 122, the media key KM cannot be obtained correctly by the MKB process. In this case, the MKB processing unit 213 determines that the media key KM has not been obtained (step S104: No), and notifies the controller 200 of an error (step S105). Upon receiving the error notification, the controller 200 stops the read operation.
  • the MKB processing unit 213 determines that the media key KM has been obtained (step S104: Yes), and sends the obtained media key KM to the read control unit 220 of the controller 200 (step S106).
  • the media key KM stored in the encryption key sharing unit 120 is sent to the sending control unit 130 (step S107).
  • the transmission control unit 130 includes a random number generation unit 131, a reading unit 132, an encryption unit 133, and a transmission unit 134.
  • the random number generator 131 generates a random number in response to a request from the encryption unit 133.
  • the reading unit 132 reads the data of the designated read target page and the ECC of the data from the memory 110.
  • the encryption unit 133 encrypts the read data using the media key KM.
  • the sending unit 134 sends the encrypted data (encrypted data) and the ECC to the data receiving unit 221 of the controller 200.
  • the read control unit 220 includes a data receiving unit 221, a decoding unit 222, and an error repairing unit 223.
  • the data receiving unit 221 receives encrypted data and ECC from the sending unit 134 of the semiconductor memory chip 100.
  • the decryption unit 222 decrypts the received encrypted data using the media key KM.
  • the error repair unit 223 uses the received ECC to check whether there is an error in the decrypted data and repairs the error.
  • FIG. 6 is a flowchart showing an overall flow of the data reading process in the first embodiment.
  • the read control unit 220 When the read control unit 220 receives the media key KM from the encryption key sharing unit 210 (step S201), the read control unit 220 inputs the received media key KM to the decryption unit 222 (step S202). Next, the read control unit 220 sends a data transmission request to the transmission control unit 130. At this time, the designation of the page to be read is also sent (step S203).
  • the reading unit 132 of the sending control unit 130 reads the specified page data and inputs it to the encryption unit 133 (step S204). Further, the reading unit 132 reads the ECC corresponding to the read target page from the code storage unit 111 and inputs the ECC to the sending unit 134 (step S205).
  • the encryption unit 133 sends a random number generation request to the random number generation unit 131 (step S206).
  • the random number generation unit 131 generates a random number and sends it to the encryption unit 133 (step S207).
  • the encryption unit 133 acquires the media key KM from the encryption key sharing unit 120 (step S208).
  • the encryption unit 133 concatenates the data of the designated page and the random number, and generates encrypted data D ′ obtained by encrypting the data obtained by the concatenation with the media key KM (step S209).
  • the encryption unit 133 sends the encrypted data D ′ to the transmission unit 134 (Step S210).
  • the sending unit 134 sends the input encrypted data D 'and the input ECC to the data receiving unit 221 of the controller 200 (step S211).
  • the encryption unit 133 may be configured to encrypt only a part of a page including important data. For example, when only the first 48 bytes of the page are important data, the encryption unit 133 may encrypt only 64 bytes obtained by concatenating the first 48 bytes of the page and a 16-byte random number. Thereby, an increase in processing load due to encryption can be suppressed to a minimum.
  • the data receiving unit 221 of the read control unit 220 receives the encrypted data and the ECC (step S212). Then, the data reception unit 221 sends the received ECC to the error repair unit 223 (step S213). The error repair unit 223 holds the received ECC. Further, the data receiving unit 221 sends the received encrypted data D ′ to the decrypting unit 222 (step S214). The decryption unit 222 decrypts the encrypted data D ′ using the media key KM received from the encryption key sharing unit 210 of the controller 200 (step S215).
  • the decrypting unit 222 can distinguish the read data D and the random number from the decrypted data according to a predetermined format. For example, in the above example in which the encryption unit 133 encrypts only 64 bytes, the first 48 bytes of the decrypted data is the read data D, and the subsequent 16 bytes are a random number.
  • the decryption unit 222 transfers only the read data D to the error repair unit 223 (step S216).
  • the error recovery unit 223 checks the error of the read data D using the held ECC (step S217). Then, the error restoration unit 223 determines whether there is an error (step S218). When there is no error (step S218: No), the controller 200 outputs the read data D to the external device that has requested reading of the read data D (step S219).
  • step S218 If there is an error (step S218: Yes), the error repair unit 223 further determines whether or not the error can be repaired (step S220). When the error can be repaired (step S220: Yes), the error repair unit 223 repairs the error of the read data D using the retained ECC (step S221). Then, the controller 200 outputs the read data D after the repair (Step S219).
  • step S220 If the error cannot be repaired (step S220: No), the error repair unit 223 notifies the controller 200 of the error (step S222). In this case, the controller 200 transmits, for example, that an error has occurred to the external device that has requested reading.
  • only the legitimate controller 200 having the valid device key KD212 can obtain the media key KM, which is a common encryption key with the semiconductor memory chip 100, by the processing described in FIG.
  • only the legitimate controller 200 can obtain data normally decrypted with the common media key KM by the processing described with reference to FIG. That is, the authentication of the controller 200 by the semiconductor memory chip 100 can be realized.
  • the combination of the encryption key sharing unit 120 and the transmission control unit 130 of the semiconductor memory chip 100 can be regarded as an authentication unit for authenticating the controller 200.
  • An area in the memory 110 on the semiconductor memory chip 100 that stores data read by the authentication means corresponds to a read special area.
  • the configurations of the encryption key sharing unit 120 and the encryption key sharing unit 210 are not limited to those shown in FIG. Any configuration can be applied as long as the encryption key can be shared between the semiconductor memory chip 100 and the controller 200.
  • FIG. 7 is a block diagram showing a modification of the encryption key sharing unit 120 (encryption key sharing unit 120-2) and a modification of the encryption key sharing unit 210 (encryption key sharing unit 210-2).
  • the encryption key sharing unit 120-2 includes a random number generation unit 123, a random number transmission unit 124, and a temporary key generation unit 125 in addition to holding the media key KM and the MKB 122.
  • the encryption key sharing unit 210-2 includes a random number receiving unit 214 and a temporary key generating unit 215.
  • the random number generator 123 generates a random number in response to a request from the random number transmitter 124.
  • the random number transmission unit 124 transmits the generated random number to the random number reception unit 214 of the controller 200 and the temporary key generation unit 125 of the semiconductor memory chip 100.
  • the temporary key generation unit 125 generates the temporary key K using the media key KM and the received random number. For example, the temporary key generation unit 125 generates a temporary key K from the media key KM and a random number using a one-way function such as AES-G.
  • the random number reception unit 214 receives a random number from the random number transmission unit 124.
  • the temporary key generation unit 215 obtains the temporary key K from the media key KM received from the MKB processing unit 213 and the random number received by the random number reception unit 214 by the same method as the temporary key generation unit 125 of the semiconductor memory chip 100. Generate.
  • the encryption key sharing unit 120-2 of the semiconductor memory chip 100 authenticates the encryption key sharing unit 210-2 of the controller 200.
  • FIG. 8 is a flowchart showing the overall flow of the encryption key sharing process in the modification of the first embodiment.
  • Steps S301 to S305 are the same as steps S101 to S105 in FIG.
  • step S304 If it is determined in step S304 that the correct media key KM has been obtained (step S304: Yes), the MKB processing unit 213 sends the obtained media key KM to the temporary key generation unit 215 (step S306).
  • the random number receiving unit 214 of the encryption key sharing unit 210 of the controller 200 sends a random number transmission request to the random number transmitting unit 124 of the semiconductor memory chip 100 (step S307).
  • the random number transmission unit 124 sends a random number generation request to the random number generation unit 123 (step S308).
  • the random number generation unit 123 generates a random number R (step S309).
  • the random number transmission unit 124 receives the generated random number R, and transmits the random number R to the random number reception unit 214 of the controller 200 (step S310).
  • the random number reception unit 214 of the controller 200 transfers the received random number R to the temporary key generation unit 215 of the controller 200 (step S311).
  • the temporary key generation unit 215 generates a temporary key K from the media key KM and the random number R received from the MKB processing unit 213 (step S312). Also, the temporary key generation unit 215 sends the generated temporary key K to the read control unit 220 of the controller 200 (step S313).
  • the random number transmission unit 124 also sends the random number R to the temporary key generation unit 125 of the semiconductor memory chip 100 (step S314).
  • the temporary key generation unit 125 that has received the random number R reads the media key KM stored in advance in the encryption key sharing unit 120 of the semiconductor memory chip 100 (step S315). Then, the temporary key generation unit 125 generates a temporary key K by combining the media key KM and the random number R (step S316). In addition, the temporary key generation unit 125 sends the generated temporary key K to the transmission control unit 130 of the semiconductor memory chip 100 (step S317).
  • the temporary keys K generated independently by the semiconductor memory chip 100 and the controller 200 are the same.
  • the transmission control unit 130-2 includes a reading unit 132, an encryption unit 133-2, and a transmission unit 134.
  • the random number generation unit 131 is deleted, and the function of the encryption unit 133-2 is different from the transmission control unit 130 of FIG.
  • the encryption unit 133-2 is different from the encryption unit 133 in FIG. 5 in that the encryption unit 133-2 mainly encrypts data using the temporary key K instead of the media key KM.
  • the read control unit 220-2 includes a data receiving unit 221, a decoding unit 222-2, and an error repairing unit 223.
  • the function of the decoding unit 222-2 is different from the read control unit 220 of FIG.
  • the decryption unit 222-2 is different from the decryption unit 222 of FIG. 5 in that the decryption unit 222-2 mainly decrypts data using the temporary key K instead of the media key KM.
  • FIG. 10 is a flowchart showing an overall flow of the data reading process in the modification of the first embodiment.
  • the decryption unit 222-2 of the read control unit 220-2 receives the temporary key K from the encryption key sharing unit 210-2 (step S401), the decryption unit 222-2 holds the received temporary key K. Further, the data receiving unit 221 sends a data transmission request together with the designation of the read target page to the transmission control unit 130-2 of the semiconductor memory chip 100 (step S402). The sending control unit 130 sends a reading target page designation and a data reading instruction to the reading unit 132 (step S403). The reading unit 132 reads data D from the read target page of the memory 110 (step S404).
  • the encryption unit 133-2 receives the temporary key K from the encryption key sharing unit 120-2 (step S405).
  • Enc (K, D) means that data D is encrypted using temporary key K.
  • the encryption unit 133-2 sends the generated encrypted data D 'to the transmission unit 134 (step S407).
  • the reading unit 132 reads the ECC of the data D from the code storage unit 111 of the memory 110 (step S408).
  • the sending unit 134 holds the read ECC.
  • the sending unit 134 sends the encrypted data D ′ and the retained ECC to the data receiving unit 221 of the read control unit 220-2 (step S409).
  • the data receiving unit 221 sends the encrypted data D ′ to the decrypting unit 222-2 (step S410), and sends the ECC to the error repairing unit 223 (step S410). S411).
  • the error repair unit 223 holds the received ECC.
  • the decryption unit 222-2 decrypts the encrypted data D ′ using the stored temporary key K to obtain data D (step S412).
  • the decryption unit 222-2 sends the decrypted data D to the error repair unit 223 (step S413).
  • Steps S414 to S419 are the same as steps S217 to S222 in FIG.
  • the transmission control unit 130-3 includes a reading unit 132-3, an encryption unit 133-3, and a transmission unit 134-3.
  • the reading unit 132-3 transmits the read ECC to the encryption unit 133-3 instead of the sending unit 134-3.
  • the encryption unit 133-3 encrypts data obtained by concatenating the data D and the ECC.
  • the sending unit 134-3 sends the data thus encrypted to the read control unit 220-3.
  • the read control unit 220-3 includes a data receiving unit 221-3, a decoding unit 222-3, and an error repairing unit 223-3.
  • the data receiving unit 221-3 receives the encrypted data obtained by encrypting the data D and the ECC, and transmits the received encrypted data to the decrypting unit 222-3.
  • the decryption unit 222-3 restores the encrypted data, obtains data D and ECC, and transmits the data D and ECC to the error repair unit 223-3.
  • the error repair unit 223-3 performs error check and error repair using the data D and ECC received from the decryption unit 222-3 in this manner.
  • FIG. 12 is a flowchart showing an overall flow of the data reading process in another modification of the first embodiment.
  • the decryption unit 222-3 of the read control unit 220 receives the temporary key K from the encryption key sharing unit 210-2 (step S501), the decryption unit 222-3 holds the received temporary key K. Further, the data receiving unit 221-3 sends a data transmission request together with the designation of the read target page to the transmission control unit 130-3 of the semiconductor memory chip 100 (step S502). The sending control unit 130-3 sends a read designated page and a data read instruction to the reading unit 132-3 (step S503). The reading unit 132-3 reads the data D of the specified read target page in the memory (step S504). Further, the reading unit 132-3 reads the ECC of the read data D from the code storage unit 111 of the memory 110 (step S505).
  • the encryption unit 133-3 receives the temporary key K from the encryption key sharing unit 120-2 (step S506).
  • the encryption unit 133-3 uses the received temporary key K to concatenate the data D and the ECC.
  • the encryption unit 133-3 sends the encrypted data D ′ to the transmission unit 134 (step S508).
  • the sending unit 134 sends the encrypted data D ′ to the data receiving unit 221 of the read control unit 220 (step S509).
  • the data receiving unit 221 sends the encrypted data D ′ to the decrypting unit 222-3 (step S510).
  • the decryption unit 222-3 decrypts the encrypted data D ′ using the stored temporary key K, and obtains data D and ECC (step S 511).
  • the decryption unit 222-3 sends the data D and ECC to the error repair unit 223-3 (step S512).
  • Steps S513 to S518 are the same as steps S217 to S222 (steps S414 to S419 in FIG. 10) in FIG.
  • the combination of the encryption key sharing unit 120-2 in FIG. 7 and either the transmission control unit 130-2 in FIG. 9 or the transmission control unit 130-3 in FIG. 11 is regarded as an authentication unit for authenticating the controller 200. Can do. An area in the memory 110 on the semiconductor memory chip 100 that stores data read by these authentication means corresponds to a read special area.
  • the semiconductor memory chip 100 is configured to have both a read function from the read special area 112 (common area) and a write function to the write special area 113 (common area), the semiconductor memory chip 100 can be configured as described above. It can be incorporated into the chain, and the security function can be further improved.
  • FIG. 13 is a diagram illustrating a state in which the writing device 300 is connected to the controller 200 and writing is performed in the writing special area 113 of the semiconductor memory chip 100. However, in FIG. 13, only the part related to the writing process is shown.
  • the writing device 300 transmits to the controller 200 encrypted data obtained by encrypting data requested to be written (write data), designation of a write destination page, and ECC for the write data.
  • the write control unit 230 of the controller 200 sends the encrypted data and the ECC to the data conversion unit 140 of the semiconductor memory chip 100.
  • the data conversion unit 140 converts (decrypts) the encrypted data, writes the obtained converted data (write data) in the write special area 113, and writes the ECC in the code storage unit 111.
  • the writing device 300 includes an ECC generation unit 310, a key storage unit 320, an encryption unit 330, and a data transmission unit 340.
  • the ECC generation unit 310 generates an ECC of write data input as data to be written.
  • the key storage unit 320 stores a data conversion key (first key) used for conversion of write data.
  • the key storage unit 320 stores a public key Kp public key as a data conversion key.
  • the public key Kp is a public key corresponding to a secret key Ks that is a data conversion key (second key) stored in a key storage unit 141 (described later) of the semiconductor memory chip 100.
  • the writing device 300 encrypts the write data using the data conversion key (public key Kp), and the semiconductor memory chip 100 decrypts the write data with the corresponding data conversion key (secret key Ks).
  • the writing device 300 converts data using the data conversion key (first key), and the semiconductor memory chip 100 converts the converted data using the data conversion key (second key) corresponding to the first key. If it is a thing, you may apply the conversion method other than this. For example, the writing device 300 executes a conversion process corresponding to decryption using the first key, and the semiconductor memory chip 100 executes a conversion process corresponding to encryption using the second key corresponding to the first key. You may comprise as follows.
  • the encryption unit 330 encrypts the write data using the public key Kp. Also, the encryption unit 330 generates a code (conversion code) obtained by encrypting the ECC using the public key Kp.
  • the encrypted write data may be referred to as encrypted data
  • the conversion code obtained by encrypting the ECC may be referred to as encrypted ECC.
  • the data transmission unit 340 transmits the encrypted data, the encrypted ECC, and the designation of the write destination page to the write control unit 230 of the controller 200.
  • the write control unit 230 includes a data transfer unit 231.
  • the data transfer unit 231 receives the encrypted data, the encrypted ECC, and the write destination page designation, and transmits these pieces of information to the data conversion unit 140 of the semiconductor memory chip 100.
  • the data conversion unit 140 includes a key storage unit 141, a decryption unit 142, and a writing unit 143.
  • the key storage unit 141 stores a public key type secret key Ks.
  • the decryption unit 142 decrypts the encrypted data and the encrypted ECC using the secret key Ks of the key storage unit 141. Note that the write data decrypted from the encrypted data corresponds to the converted data.
  • the writing unit 143 records the decrypted write data on a specified page in the write special area 113 on the memory 110.
  • the writing unit 143 stores the decoded ECC in the code storage unit 111 of the memory 110.
  • FIG. 15 is a flowchart showing the overall flow of the writing process in the first embodiment.
  • the writing device 300 inputs write data (data D) and a designation of a write destination page (step S601).
  • the ECC generation unit 310 generates an ECC of the data D, and transfers the generated ECC and the data D to the encryption unit 330 (step S602).
  • the encryption unit 330 acquires the public key Kp from the key storage unit 320 (step S603).
  • the encryption unit 330 encrypts the data D and ECC with the public key Kp, and obtains encrypted data D ′ and encrypted ECC (step S604).
  • the encryption unit 330 sends the encrypted data D ′ and the encrypted ECC to the data transmission unit 340 (step S605).
  • the data transmission unit 340 transmits the encrypted data D ′, the designation of the write destination page, and the encrypted ECC to the write control unit 230 of the controller 200 (step S606).
  • the data transfer unit 231 of the write control unit 230 receives the encrypted data D ′, the write destination page designation, and the encrypted ECC, and transmits them to the data conversion unit 140 of the semiconductor memory chip 100 (step S607). ).
  • the encrypted data D ′ and the encrypted ECC received by the data conversion unit 140 are input to the decryption unit 142.
  • the decryption unit 142 acquires the secret key Ks from the key storage unit 141 (step S608).
  • the decryption unit 142 decrypts the encrypted data D ′ and the encrypted ECC using the secret key Ks, and obtains data D and ECC (step S609).
  • the writing unit 143 records the decrypted data D on the page on the memory 110 specified by the writing destination page specification.
  • the writing unit 143 stores the decoded ECC in the code storage unit 111 of the memory 110 as an ECC corresponding to the designated page (step S610).
  • FIG. 16 is a diagram illustrating how data changes when configured in this manner.
  • the page size is 2048B
  • the write data size is 16B
  • the ECC size is 3B.
  • the ECC generation unit 310 is input with data for one page including the leading 16B key data and the remaining 2032B 0 (1601).
  • the encryption unit 330 records the ECC of 3B to 17B of the data for one page, and then encrypts only the head 20B (1602).
  • the decoding unit 142 stores 3B from 17B of the data for one page as an ECC in the code storage unit 111 (1604).
  • data for one page is recorded in the write special area 113 of the memory 110 (1605).
  • Data writing to the write special area 113 is always performed via the data conversion unit 140 of the semiconductor memory chip 100.
  • the data D and ECC (D) that is an ECC for the data D are encrypted with the public key Kp held by the writing device 300.
  • the semiconductor memory chip 100 In order for the data D to be correctly recorded in the write special area 113 and the ECC (D) to be correctly recorded in the code storage unit 111, the semiconductor memory chip 100 needs to hold the secret key Ks. That is, the writing device 300 authenticates the semiconductor memory chip 100.
  • the memory area written via the data conversion unit 140 corresponds to the write special area 113.
  • FIG. 17 is a block diagram showing an example of the configuration of the writing device 300-2, the writing control unit 230-2, and the data converting unit 140-2 according to the present modification.
  • the writing device 300-2 includes an ECC generation unit 310-2, a key storage unit 320-2, an encryption unit 330-2, a data transmission unit 340, a key selection unit 350, It has.
  • the function of the data transmission unit 340 is the same as that in FIG.
  • the ECC generation unit 310-2 is different from the ECC generation unit 310 of FIG. 14 in that the generated ECC is transmitted to the data transmission unit 340 instead of the encryption unit 330-2.
  • the key storage unit 320-2 stores an encryption key K that is a symmetric key type data conversion key. In this modification, the key storage unit 320-2 stores a plurality of encryption keys K for each version of the semiconductor memory chip 100.
  • FIG. 18 is a diagram illustrating an example of a data structure of data stored in the key storage unit 320-2. As shown in FIG. 18, the key storage unit 320-2 stores data in which the version of the semiconductor memory chip 100 is associated with the encryption key.
  • the key selection unit 350 selects an encryption key K that matches the version of the semiconductor memory chip 100 from the key storage unit 320-2.
  • the encryption unit 330-2 encrypts the write data and the ECC using the selected encryption key K.
  • the write control unit 230-2 includes a data transfer unit 231-2.
  • the data transfer unit 231-2 is different from the data transfer unit 231 in FIG. 14 in that a function for transferring version information read from the semiconductor memory chip 100 in response to a request from the key selection unit 350 is added. Yes.
  • the data conversion unit 140 includes a key storage unit 141-2, a decryption unit 142, a writing unit 143, and a version information storage unit 144.
  • the functions of the data conversion unit 140, the decoding unit 142, and the writing unit 143 are the same as those in FIG.
  • the version information storage unit 144 stores version information of the semiconductor memory chip 100.
  • the key storage unit 141-2 stores a symmetric key encryption key K.
  • the encryption key K is an encryption key corresponding to the version information stored in the version information storage unit 144 of the semiconductor memory chip 100.
  • FIG. 19 is a flowchart showing the overall flow of the writing process in this modification.
  • the writing device 300-2 inputs the write data (data D) and designation of the write destination page (step S701).
  • the ECC generation unit 310-2 generates an ECC of the data D, and transfers the generated ECC to the data transmission unit 340 (step S702). Further, the ECC generation unit 310-2 transfers the data D to the encryption unit 330 (step S703).
  • the encryption unit 330-2 sends an encryption key acquisition request to the key selection unit 350 (step S704).
  • the encryption key corresponds to the version of the semiconductor memory chip 100.
  • Different versions have different encryption keys.
  • the key storage unit 320-2 of the writing device 300 stores the encryption key corresponding to each version of the semiconductor memory chip 100, but the corresponding encryption key cannot be obtained unless the version of the semiconductor memory chip 100 is known.
  • the key selection unit 350 sends a version acquisition request to the controller 200 (step S705).
  • the controller 200 reads the version information of the semiconductor memory chip 100 from the version information storage unit 144 of the data conversion unit 140 of the semiconductor memory chip 100 and inputs it to the data transfer unit 231 (step S706).
  • the data transfer unit 231 transmits the version information to the key selection unit 350 of the writing device 300 (step S707).
  • the key selection unit 350 selects the encryption key K corresponding to the received version information from the key storage unit 320-2 (step S708). Then, the key selection unit 350 transmits the selected encryption key K to the encryption unit 330-2 (step S709).
  • the encryption unit 330-2 encrypts the data (data D) to be written using the transmitted encryption key K, and obtains encrypted data D '(step S710).
  • the encryption unit 330-2 sends the encrypted data D ′ to the data transmission unit 340 (step S711).
  • the data transmission unit 340 transmits the encrypted data D ′, the designation of the write destination page, and the ECC to the write control unit 230-2 of the controller 200 (step S712).
  • the data transfer unit 231-2 of the write control unit 230-2 receives the encrypted data D ′, the write destination page designation, and the ECC (step S713), and converts them into the data conversion unit 140- of the semiconductor memory chip 100. 2 (step S714).
  • the data converter 140-2 inputs the received encrypted data D 'to the decryptor 142 (step S715).
  • the decryption unit 142 acquires the encryption key K from the key storage unit 141-2 (step S716).
  • the decryption unit 142 decrypts the encrypted data D ′ into the data D using the encryption key K (step S717).
  • the writing unit 143 records the decrypted data D on the page on the memory 110 designated by the designation of the write destination page (step S718).
  • the writing unit 143 stores the received ECC in the code storage unit 111 as an ECC corresponding to the designated page (step S719).
  • Data recording to the memory area recorded via the data conversion unit 140-2 in FIG. 17 is always subjected to conversion by the data conversion unit 140-2.
  • An area in which data is recorded via the data converter 140-2 corresponds to the write special area 113.
  • the data D is encrypted with the encryption key K selected for the version of the semiconductor memory chip 100.
  • the encrypted data D ′ Enc (K, D) is input to the data conversion unit 140-2 of the semiconductor memory chip 100.
  • the semiconductor memory chip 100 needs to hold the encryption key K. That is, also in this case, the writing device 300 authenticates the semiconductor memory chip 100.
  • the read special area is used for the semiconductor memory chip 100 to authenticate the controller 200.
  • the writing special area is used for the writing device 300 to authenticate the semiconductor memory chip 100.
  • the trust chain in Figure 1 In order to configure a trust chain consisting of the semiconductor memory chip 100 and the controller 200 from the writing device 300, the read special area and the write special area must intersect. That is, the data recorded in the intersection area (common area) is correctly read (as intended by the writing device 300) by the controller 200, whereby the trust chain is completed.
  • an intersection area (common area) of the read special area and the write special area may be simply referred to as a special area.
  • the version information is simply a numerical value, but the version information is not limited to this.
  • a corresponding encryption key may be selected from a plurality of encryption keys according to one or more pieces of information other than version information and version information.
  • the version information may be determined based on the time when the semiconductor memory chip 100 is manufactured or the lot number at the time of manufacture.
  • the version information is not limited to numerical values.
  • it may be a character string or an array composed of permutations such as numerical values and character strings.
  • FIG. 20 is a diagram showing a modification of the version information configured as described above.
  • FIG. 20 shows an example in which the permutation of the manufacturing factory name of the semiconductor memory chip 100, the lot number managed in the manufacturing factory, and the customer number is used as version information.
  • the customer number is a number assigned by a manufacturer of the semiconductor memory chip 100 to a large customer, for example. For products not intended for large consumers, this value is a fixed value (for example, 0).
  • a correspondence table as shown in FIG. 20 is stored in the key storage unit 320-2 of the writing device 300.
  • the semiconductor memory chip according to the first embodiment is configured on the same die as the memory, and includes an encryption key sharing unit and a transmission control unit that function as authentication means for authenticating the controller. Only the authenticated controller can correctly read the data stored in the memory. Further, it is configured on the same die as the memory, and includes a key storage unit that stores a predetermined encryption key and a data conversion unit that decrypts data using the encryption key and stores it in the memory. If the correct encryption key is not held, data cannot be recorded correctly. Thereby, unauthorized use of data due to forgery of the memory card or the like can be prevented.
  • the write data is decrypted before writing to the write special area.
  • the semiconductor memory chip according to the second embodiment decrypts data read from the write special area (encrypted write data). Also in this case, in order to correctly decrypt the data read from the write special area, the semiconductor memory chip needs to hold the encryption key corresponding to the encryption key used for encryption by the writing device. That is, also in this case, the writing device authenticates the semiconductor memory chip.
  • FIG. 21 is a block diagram illustrating an example of the configuration of the semiconductor memory chip 2100 according to the second embodiment.
  • the controller 200 has the same configuration as that of the first embodiment.
  • the semiconductor memory chip 2100 includes a memory 2110, an encryption key sharing unit 120, a transmission control unit 2130, a data conversion unit 2140, a reception control unit 2150, and a reading unit 2160. .
  • One of the differences from the first embodiment is the position of the data conversion unit 140. As shown in FIG. 2, in the first embodiment, data conversion (decoding) is performed at the time of writing, but in the second embodiment, it is performed at the time of reading. In addition, the second embodiment is different from the first embodiment in that the configuration of the memory 2110 and the transmission control unit 2130 and the addition of the reception control unit 2150 and the reading unit 2160 are added. Other configurations and functions are the same as those in FIG. 2 which is a block diagram showing the configuration of the semiconductor memory chip 100 according to the first embodiment, and thus the same reference numerals are given and description thereof is omitted here.
  • the sending control unit 2130 is different from the sending control unit 130 of FIG. 5 in that the reading unit 132 is deleted. Note that the sending control unit 2130 receives the data read by the reading unit 2160 and converted by the data conversion unit 140, instead of inputting the data read by the reading unit 132.
  • the memory 2110 includes a code storage unit 111, a common area 2114, and a general area 115.
  • the write special area is a predetermined memory area in which data to be decoded by the data conversion unit 2140 is written in the memory area when data is read.
  • the data decoded by the data conversion unit 2140 is input to the transmission control unit 2130, and the controller 200 is authenticated. Therefore, the write special area where the data to be decrypted by the data conversion unit 2140 is written matches the read special area where only the authenticated controller 200 can correctly read the data. For this reason, FIG. 21 shows only the common area 2114 in the memory 2110.
  • the reception control unit 2150 controls the process of receiving the encrypted data obtained by encrypting the write data and writing it in the common area 2114 without decrypting it.
  • the reading unit 2160 reads the data of the page designated to be read from the read special area (common area 2114), and transmits it to the data conversion unit 2140. Further, the reading unit 2160 reads the ECC corresponding to the data of the designated page from the code storage unit 111 and transmits it to the transmission control unit 2130.
  • the writing device 2300 includes an ECC generation unit 2310, a key storage unit 320, an encryption unit 2330, and a data transmission unit 2340.
  • the key storage unit 320 has the same configuration as the key storage unit 320 in FIG.
  • the ECC generation unit 2310 generates an ECC of write data input as data to be written.
  • the encryption unit 2330 encrypts the write data using the public key Kp.
  • the data transmission unit 2340 transmits the encrypted data, ECC, and designation of the write destination page to the write control unit 230 of the controller 200.
  • the reception control unit 2150 includes a writing unit 2143.
  • the writing unit 2143 records the encrypted data on the designated page in the common area 2114.
  • the writing unit 2143 stores the ECC in the code storage unit 111.
  • FIG. 23 is a flowchart illustrating an overall flow of the writing process according to the second embodiment.
  • the writing device 2300 inputs write data (data D) and designation of a write destination page (step S801).
  • the writing device 2300 inputs the input data D to the ECC generation unit 2310 (step S802).
  • the ECC generation unit 2310 generates an ECC of the data D, and transfers the generated ECC to the data transmission unit 2340 (step S803). Further, the ECC generation unit 2310 transfers the data D to the encryption unit 2330 (step S804).
  • the encryption unit 2330 obtains the public key Kp from the key storage unit 320 (step S805). Further, the encryption unit 2330 encrypts the data D with the acquired public key Kp to obtain encrypted data D ′ (step S806). Next, the encryption unit 2330 sends the encrypted data D ′ to the data transmission unit 2340 (step S807). The data transmission unit 340 transmits the encrypted data D ′, the designation of the write destination page, and the ECC to the write control unit 230 of the controller 200 (step S808).
  • the data transfer unit 231 of the write control unit 230 receives the encrypted data D ′, the write destination page designation, and the ECC (step S809), and transmits them to the reception control unit 2150 of the semiconductor memory chip 100 ( Step S810).
  • the reception control unit 2150 inputs the encrypted data D ′ and the writing destination page designation to the writing unit 2143 (step S811).
  • the writing unit 2143 records the input encrypted data D ′ on the page on the memory 110 designated by the designation of the write destination page (step S812).
  • the reception control unit 2150 stores the ECC in the code storage unit 111 as an ECC corresponding to the designated page (step S813).
  • the data conversion unit 2140 includes a key storage unit 141 and a decryption unit 2142.
  • the configuration and function of the key storage unit 141 are the same as those in FIG.
  • the decrypting unit 2142 decrypts the data read by the reading unit 2160 using the secret key Ks stored in the key storage unit 141.
  • FIG. 25 is a flowchart showing the overall flow of the data reading process in the second embodiment.
  • the controller 200 inputs designation of a page to be read from an external device such as a playback device (step S901).
  • the read control unit 220 of the controller 200 sends an instruction to read data on the read designated page in the memory 110 to the semiconductor memory chip 100 (step S902).
  • the reading unit 2160 of the semiconductor memory chip 100 reads the data of the read designated page and inputs it to the data conversion unit 2140 (step S903). Further, the reading unit 2160 reads the ECC corresponding to the read designated page from the code storage unit 111 and sends the ECC to the transmission control unit 2130 (step S904).
  • the read data is encrypted.
  • the read data is represented as data D '.
  • the data conversion unit 2140 inputs the input data D ′ to the decryption unit 2142 (step S905).
  • the decryption unit 2142 acquires the secret key Ks from the key storage unit 141 (step S906).
  • the decryption unit 2142 decrypts the input data D ′ using the acquired secret key Ks to obtain data D (step S907). Then, the decryption unit 2142 sends the decrypted data D to the transmission control unit 2130 (step S908).
  • the sending control unit 2130 sends the decoded data D received from the data converting unit 2140 and the ECC read from the code storage unit 111 to the reading control unit 220 of the controller 200 (step S909). Since the subsequent processing is the same as that after step S212 in FIG. 6, the description is omitted in FIG.
  • data reading from the write special area is always performed via the data converter 2140 of the semiconductor memory chip 100.
  • the data of the read target page in the write special area (common area 2114) is Enc (Kp, D), and ECC (D) is recorded in the code storage unit 111 as the ECC of the page.
  • the controller 200 receives the data D and ECC (D).
  • Dec (A, B) represents that data B is decrypted with a key A used for decryption.
  • the writing device 300 writes Enc (Kp, D) and ECC (D), in order for the controller 200 to correctly receive the expected data D and the corresponding ECC (D), the semiconductor memory
  • the chip 100 needs to store the secret key Ks. That is, also in this case, the writing device 300 authenticates the semiconductor memory chip 100.
  • the memory area read via the data conversion unit 2140 described above corresponds to the write special area of the present embodiment.
  • the data conversion is configured on the same die as the memory and stores the predetermined encryption key and the data read from the memory using the encryption key. Department. If the correct encryption key is not held, the written data cannot be correctly restored. Thereby, unauthorized use of data due to forgery of the memory card or the like can be prevented.
  • FIG. 26 is a block diagram showing an example of the configuration of the player 400 that is a device using data in the third embodiment and the memory card 2501 from which the player 400 reads data.
  • the memory card 2501 includes a semiconductor memory chip 100 and a controller 200.
  • the semiconductor memory chip 100 and the controller 200 have the configuration described in the first embodiment or the second embodiment.
  • the controller 200 in FIG. 26 includes, for example, an encryption key sharing unit 210 in FIG. 3 and a read control unit 220 in FIG.
  • the memory card 2501 can be constituted by an SD memory card, for example.
  • the encrypted video data 2541, the encrypted decryption key 2531 obtained by encrypting the decryption key Kc used for decrypting the encrypted video data 2541, and the MKB 2521 (hereinafter simply referred to as MKB).
  • MKB MKB 2521
  • a media key conversion key 2511 (hereinafter referred to as a media key conversion key KT) is stored in a special area (common area 114) in the memory 110.
  • the decryption key Kc is recorded as an encrypted encryption / decryption key 2531.
  • the key used for this encryption is obtained by converting the media key KM derived when the MKB is correctly processed using the media key conversion key KT.
  • encryption / decryption key 2531 AES-E (AES-G (KT, KM), Kc).
  • AES-G which is a one-way function, is used for conversion
  • AES-E is used for encryption.
  • the player 400 holds a KD 410 representing a device key (hereinafter referred to as a device key KD), an MKB processing unit 420, a media key conversion unit 430, a key decryption unit 440, a video decryption unit 450, and a playback unit 460. And.
  • the MKB processing unit 420 executes the MKB process for deriving the media key KM by processing the MKB read from the general area 115 using the device key KD.
  • the media key conversion unit 430 generates a key Kw obtained by converting the derived media key KM using the media key conversion key KT read from the special area.
  • the key decryption unit 440 generates the decryption key Kc by decrypting the encryption / decryption key 2531 read from the general area 115 with the key Kw.
  • the video decryption unit 450 decrypts the encrypted video data using the decryption key Kc.
  • the playback unit 460 plays back the decoded video data.
  • FIG. 27 is a flowchart illustrating an overall flow of the reproduction processing according to the third embodiment.
  • the player 400 instructs the controller 200 in the memory card 2501 to read out the MKB included in the general area 115 (step S1001). For example, the player 400 designates the start address and size of the MKB for the controller 200.
  • the controller 200 reads a page including the designated area from the semiconductor memory chip 100, and sends the data of the designated area (that is, the value of MKB) to the player 400.
  • the player 400 inputs the received MKB to the MKB processing unit 420 (step S1002).
  • the MKB processing unit 420 reads the device key KD held by the player 400, performs MKB processing on the input MKB using the device key KD, and derives and outputs the media key KM (step S1003).
  • the MKB processing unit 420 determines whether or not the media key KM has been obtained by the MKB process (step S1004).
  • the MKB processing unit 420 determines that the media key KM has not been obtained (step S1004: No), and outputs an error.
  • the player 400 displays a warning message and stops the operation.
  • step S1004 When the media key KM is obtained (step S1004: Yes), the player 400 sends the media key KM to the media key conversion unit 430 (step S1005). Next, the player 400 instructs to read the media key conversion key KT included in the special area (common area 114) (step S1006). For example, the player 400 designates the start address and size of the media key conversion key KT to the controller 200.
  • the controller 200 reads a page including the designated area from the semiconductor memory chip 100, and sends the data of the designated area (that is, the value of the media key conversion key KT) to the player 400.
  • the player 400 inputs the value of the media key conversion key KT received from the controller 200 to the media key conversion unit 430.
  • the player 400 sends the value of the key Kw to the key decryption unit 440.
  • the player 400 reads the encryption / decryption key 2531 from the general area 115 of the semiconductor memory chip 100 via the controller 200 (step S1008).
  • the player 400 designates the start address and size of the encryption / decryption key 2531 to the controller 200.
  • the controller 200 reads a page including the designated area from the general area 115 and sends the data of the designated area (that is, the value of the encryption / decryption key 2531) to the player 400.
  • the player 400 inputs the value of the encryption / decryption key 2531 received from the controller 200 to the key decryption unit 440.
  • the key decryption unit 440 decrypts the input encryption / decryption key 2531 with the key Kw (step S1009). Thereby, the value of the decryption key Kc is obtained.
  • the key decryption unit 440 sends the value of the decryption key Kc to the video decryption unit 450 (step S1010).
  • the video decryption unit 450 holds the value of the received decryption key Kc.
  • the player 400 sequentially reads the encrypted video data from the general area 115 via the controller 200, and sequentially inputs it to the video decryption unit 450 (step S1011).
  • the video decryption unit 450 sequentially decrypts the encrypted video data using the decryption key Kc (step S1012), and sends it to the reproduction unit 460 (step S1013).
  • the playback unit 460 sequentially plays back (displays) the received video data (step S1014).
  • the media key conversion key KT is data necessary for obtaining a correct content decryption key (decryption key Kc).
  • This value may be different for each semiconductor memory chip 100, for example. Or, it may be different for each memory card 2501. Furthermore, the memory card 2501 may be statistically different. “Statistically different” means that the value may not be strictly different, but can be regarded as statistically different. For example, a case where a random number having an extremely large number of digits is generated and the value of this random number is used is applicable.
  • the media key conversion key KT recorded in the special area is different (at least statistically) for each memory card 2501
  • the media key conversion key KT can be regarded as a kind of ID of the memory card 2501.
  • the MKB may be stored instead of the media key conversion key KT as data necessary for decrypting the encrypted content data (video data or the like).
  • the semiconductor memory chip 100 In order to correctly record the media key conversion key KT in the write special area of the semiconductor memory chip 100, the semiconductor memory chip 100 must be authenticated by the writing device 300. In order for the player 400 to correctly read the media key conversion key KT recorded in the read special area via the controller 200, the controller 200 must be authenticated by the semiconductor memory chip 100. Eventually, if the trust chain for authenticating the controller 200 by the writing device 300 via the semiconductor memory chip 100 is not established, the player 400 cannot correctly read the media key conversion key KT. In other words, the reproduction of the video by the player 400 may be a proof of establishment of the trust chain.
  • the MKB in the third embodiment may be supplied for each video by the video supplier.
  • the MKB is configured using symmetric key cryptography.
  • the device key KD is configured using a secret key.
  • the player manufacturer only knows the value of the device key KD assigned to the player manufacturer.
  • a public key is distributed to the video supplier for generating the MKB.
  • the video supplier can freely generate the MKB using the public key.
  • the public key for generating the MKB is leaked to a malicious player manufacturer, the value of the device key KD composed of the secret key cannot be known from the basic nature of the public key encryption.
  • the MKB in FIG. 26 may be an MKB configured based on public key cryptography.
  • the encrypted data is stored in the general area
  • the data necessary for decrypting the encrypted data is stored in the special area
  • the encrypted data is stored using the data in the special area. Can be decrypted and used. As a result, the revoking of the playback device by the content supplier can be realized.
  • FIG. 28 is a block diagram illustrating an example of the configuration of the player 400-2 and the memory card 2601 according to the fourth embodiment.
  • the memory card 2601 includes a semiconductor memory chip 100 and a controller 200-2.
  • the semiconductor memory chip 100 has the configuration described in the first embodiment or the second embodiment.
  • encrypted video data 2541, encrypted MKB 2521-2 (hereinafter referred to as MKB ') and MKB 2522 (hereinafter referred to as MKB 2) are recorded in the general area 115.
  • an MKB decryption key 2513 (hereinafter referred to as MKB decryption key KT) and a media key conversion key 2512 (hereinafter referred to as media key conversion key KT2) for decrypting MKB from MKB ′ are stored in the special area (common area 114).
  • media key conversion key KT2 media key conversion key
  • the controller 200-2 of the present embodiment includes a device key KD2610 (hereinafter referred to as device key KD2), an MKB processing unit 2620, and a media key.
  • KD2 device key
  • MKB processing unit 2620 MKB processing unit
  • a conversion unit 2630 and a video decoding unit 2640 are provided.
  • the components described in the first or second embodiment are not shown, but the controller 200-2 may be configured with, for example, the encryption key sharing unit 210-2 in FIG. Read control unit 220-3.
  • the MKB decryption key KT and the media key conversion key KT2 stored in the read special area are read using the encryption key sharing unit 210-2 and the read control unit 220-3.
  • the MKB processing unit 2620 executes the MKB process for deriving the media key KM2 by processing the MKB2 read from the general area 115 using the device key KD2.
  • the media key conversion unit 2630 generates a decryption key Kc2 obtained by converting the derived media key KM2 using the media key conversion key KT2 read from the special area.
  • the video decryption unit 2640 decrypts the encrypted video data using the decryption key Kc2.
  • the player 400-2 holds a device key 410 (hereinafter referred to as device key KD), and includes an MKB processing unit 420-2, a video decryption unit 450, a playback unit 460, and an MKB decryption unit 470. Yes.
  • device key KD a device key 410
  • MKB processing unit 420-2 includes an MKB processing unit 420-2, a video decryption unit 450, a playback unit 460, and an MKB decryption unit 470.
  • the MKB decryption unit 470 is added, the function of the MKB processing unit 420-2, and the key decryption unit 440 and the media key conversion unit 430 are deleted. This is different from the player 400 of the form.
  • the MKB decryption unit 470 decrypts MKB ′ read from the general area 115 with the MKB decryption key KT and generates an MKB.
  • the MKB processing unit 420-2 executes the MKB process for deriving the media key KM by processing the generated MKB using the device key KD.
  • MKB ′ and MKB2 obtained by encrypting MKB are recorded in the general area 115.
  • the MKB obtained by decrypting the MKB ' is used for authentication and invalidation of the player 400-2 as in the third embodiment.
  • the MKB 2 is used for authentication and invalidation of the controller 200.
  • the special area stores the MKB decryption key KT and the media key conversion key KT2.
  • the MKB decryption key KT is an MKB decryption key for the player 400-2.
  • the media key conversion key KT2 is a media key conversion key for the controller 200.
  • the media key KM is obtained. Further, when the MKB2 is processed with the device key KD2 that has not been revoked, the media key KM2 is obtained.
  • FIG. 29 is a flowchart illustrating an overall flow of the reproduction processing according to the fourth embodiment.
  • the player 400-2 instructs the controller 200-2 in the memory card 2601 to read the MKB2 included in the general area 115 (step S1101). For example, the player 400-2 designates the start address and size of the MKB 2 to the controller 200-2.
  • the controller 200-2 reads a page including the designated area from the semiconductor memory chip 100, and inputs the data of the designated area (that is, the value of MKB2) to the MKB processing unit 2620 (step S1102).
  • the MKB processing unit 2620 reads the device key KD2 held by the controller 200-2, performs MKB processing on the input MKB2 using the device key KD2, and derives and outputs the media key KM2 (step S1103).
  • the MKB processing unit 2620 determines whether or not the media key KM2 is obtained by the MKB process (step S1104).
  • the MKB processing unit 2620 cannot derive the correct media key KM2.
  • the MKB processing unit 2620 determines that the media key KM2 has not been obtained (step S1104: No), and outputs an error.
  • the MKB processing unit 2620 sends the media key KM2 to the media key conversion unit 2630 (step S1105).
  • the media key conversion unit 2630 reads the media key conversion key KT2 included in the special area (common area 114) (step S1106). Then, the media key conversion unit 2630 generates a decryption key Kc2 obtained by converting the media key KM2 with the read media key conversion key KT2 (step S1107).
  • the media key conversion unit 2630 transmits the generated decryption key Kc2 to the video decryption unit 2640 (step S1108).
  • the video decryption unit 2640 holds the value of the received decryption key Kc.
  • the player 400-2 reads MKB 'from the general area 115 of the semiconductor memory chip 100 via the controller 200-2 and inputs it to the MKB decoding unit 470 (step S1109).
  • the MKB decryption unit 470 reads the MKB decryption key KT from the special area (common area 114) of the semiconductor memory chip 100 via the controller 200-2 (step S1110).
  • the MKB decryption unit 470 decrypts the input MKB ′ using the read MKB decryption key KT to obtain a plaintext MKB (step S1111).
  • the MKB decryption unit 470 sends the plaintext MKB to the MKB processing unit 420-2 (step S1112).
  • the MKB processing unit 420-2 reads the device key KD held by the player 400-2, performs MKB processing on the input MKB using the device key KD, and derives the media key KM (step S1113). Next, the MKB processing unit 420-2 determines whether or not the media key KM has been obtained by the MKB processing (step S1114). If the device key KD has been revoked by the MKB, the MKB processing unit 420-2 cannot derive the correct media key KM. In this case, the MKB processing unit 420-2 determines that the media key KM has not been obtained (step S1114: No), and outputs an error. When the media key KM is obtained (step S1114: Yes), the MKB processing unit 420-2 sends the media key KM to the video decryption unit 450 (step S1115).
  • the video decryption unit 2640 of the controller 200-2 sequentially reads the encrypted video data 2541 from the general area 115 (step S1116).
  • the video decryption unit 2640 decrypts the read encrypted video data using the stored decryption key Kc2 (step S1117).
  • the video decoding unit 2640 sends the decoded video data to the video decoding unit 450 of the player 400-2 (step S1118).
  • the video decryption unit 450 sequentially decrypts the video data using the decryption key Kc (step S1119), and sends it to the reproduction unit 460 (step S1120).
  • the playback unit 460 sequentially plays back (displays) the received video data (step S1121).
  • the decryption key Kc2 is also different for each memory card 2601. Therefore, if the media key KM or the media key conversion key KT2 is different for each memory card 2601, the encrypted video data itself is different for each memory card 2601. That is, the encrypted video data is individualized for each memory card 2601.
  • a smart grid is a next-generation power network that is built to stabilize power quality when using renewable energy such as solar power and wind power in addition to conventional power generation such as nuclear power and thermal power.
  • FIG. 30 is a diagram illustrating a configuration example of the next-generation power network according to the fifth embodiment.
  • a smart meter 3010a that aggregates power usage and a home energy management system (HEMS) 3020 that is a home server that manages home appliances are installed in each home.
  • HEMS home energy management system
  • BEMS Building Energy Management System
  • a smart meter 3010b similar to the smart meter 3010a is installed.
  • the smart meters 3010a and 3010b are simply referred to as a smart meter 3010.
  • the smart meter 3010 is grouped into units by a repeater (concentrator 3040) called a concentrator, and communicates with an MDMS (Meter Data Management System) 3050 which is a meter data management system via a communication network.
  • the MDMS 3050 receives and stores the power usage from the smart meter 3010 in each home at regular intervals.
  • An EMS (Energy Management System) 3060 that is an energy management system is based on the power consumption of a plurality of households collected in the MDMS 3050 or information from sensors installed in the power system, and the smart meter 3010 and the HEMS 3020 of each household. Power control such as requesting to suppress power usage.
  • the EMS 3060 is connected to a distributed power source 3080 such as solar power generation or wind power generation connected to an RTU (Remote Terminal Unit) 3071 which is a remote terminal unit, a power storage device 3090 connected to the RTU 3072, and an RTU 3073.
  • Control is performed to stabilize the voltage and frequency of the entire grid by controlling the power transmission and distribution control device 3100 that controls the power generation side.
  • FIG. 31 is a block diagram illustrating a configuration example of the smart meter 3010.
  • Smart meter 3010 performs encrypted communication with MDMS 3050.
  • a concentrator 3040 exists on the communication path, but the concentrator 3040 only relays encrypted communication.
  • the MDMS 3050 and the smart meter 3010 hold a shared key K, and perform encrypted communication using the shared key K.
  • the communication unit 3012 connected to the measurement unit 3011 encrypts the measurement value using the shared key K and sends it to the MDMS 3050.
  • the MDMS 3050 decrypts the encrypted measurement value using the held shared key K. Thereby, even if communication is intercepted on a communication path, an interceptor cannot know a measured value.
  • a control command may be sent from the MDMS 3050 to the measurement unit 3011. For example, control commands such as stop and start of measurement and an instruction to send measurement data.
  • the MDMS 3050 encrypts the control command using the shared key K, and transmits the encrypted control command to the communication unit 3012 of the smart meter 3010.
  • the communication unit 3012 decrypts the encryption control command using the shared key K and sends the control command to the measurement unit 3011.
  • power usage data is stored in the general area of the memory 110 of the semiconductor memory chip 100, and the communication unit 3012 encrypts the power usage data using the shared key K, and stores the encrypted power usage data.
  • the MDMS 3050 decrypts the encrypted power usage data using the shared key K.
  • the shared key K is stored in a special area of the memory of the semiconductor memory chip.
  • the shared key K is desirably updated periodically or as needed.
  • the shared key for update is assumed to be K ′.
  • the MDMS 3050 writes the update shared key K ′ in the write special area of the memory 110 of the semiconductor memory chip 100.
  • the semiconductor memory chip 100 needs to be authenticated by the MDMS 3050.
  • the controller 200 needs to be authenticated by the semiconductor memory chip 100.
  • the entire smart meter 3010 using the semiconductor memory chip 100 is authenticated by the MDMS 3050 through the update of the shared key and the use of the updated shared key.
  • the MDMS 3050 writes the shared key K ′ for update in the write special area of the semiconductor memory chip 100 as the writing device 300 of FIG. 14.
  • the controller 200 of the smart meter 3010 includes, for example, an encryption key sharing unit 210-2 in FIG. 7 and a read control unit 220-2 in FIG.
  • unauthorized use of data can be prevented for data used in the next-generation power network, which is a field different from content protection.
  • the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage.
  • various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the above embodiments. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, constituent elements over different embodiments may be appropriately combined.

Abstract

 偽造等によるデータの不正利用を防止するため、半導体メモリチップ100は、予め定められたデータの記憶領域である特殊領域を含むメモリ110と、外部装置がデータの変換に用いる第1鍵に対応する第2鍵を記憶する鍵記憶部、特殊領域に書き込む書込データをコントローラー200から受信し、第2鍵を用いて書込データを変換した変換データを生成する変換部、および、変換データを特殊領域に書き込む書込部を含むデータ変換部140とを備える。

Description

メモリチップ
 本発明は、メモリチップに関する。
 半導体ダイ上に形成された半導体メモリチップは、通常単体で使用されることは無く、外部のコントローラーと電気的に接続されて使用される。外部装置(書き込み装置や読み出し・再生装置など)から半導体メモリチップ上のメモリ内のデータへのアクセスはコントローラーを介して行われる。コントローラーと半導体メモリチップを組み合わせてメモリ製品として販売されることもある。例えば、SDメモリカードのような商品が、その一例である(非特許文献1参照)。また、半導体メモリチップとコントローラーとを樹脂で接着したものをSIP(System In Package)として提供する場合もある。また、オーディオ・プレーヤーなどで音楽データの格納用に半導体メモリチップが使用される場合、コントローラーが半導体メモリチップとは別の半導体の一部に組み込まれていることもある。いずれの場合も、半導体メモリチップとコントローラーとが直接接続されており、半導体メモリチップのメモリ内のデータへのアクセスは必ずコントローラーを介して行われる。
 コントローラーは、半導体メモリチップのデータへのアクセスを仲介するだけではなく、セキュリティ機能を提供する場合がある。例えば、SDメモリカードの場合、コントローラーに著作権保護機能が導入されている。コントローラーは、プレーヤーや書き込み装置などのホスト機器を認証し、認証に成功した場合に限って、半導体メモリチップに格納されているデータをホスト機器に転送する。また、コントローラーは、認証に成功した場合に限って、書き込み装置から受信したデータを半導体メモリチップに記録する。これにより、例えば、認証されない不正なプレーヤーはメモリカード内のデータにアクセスすることができない。従って、メモリカード内のデータが不正なプレーヤーによって盗まれることから保護される。
 メモリカードのコントローラーによって著作権保護機能が実装されている場合にも、更なる攻撃が存在する。例えば、メモリカードの中にビデオデータが格納されているものとする。メモリカードのコントローラーが有する著作権保護機能によって、当該メモリカードが格納するビデオデータは不正なプレーヤーによる読み出しから保護される。従って、不正なプレーヤーを用いた当該ビデオデータの不正コピーから守られている。
 しかしながら、攻撃者がメモリカードのパッケージを開け、半導体メモリチップの中から全てのビデオデータを読み出すことは可能である。そして、このビデオデータを別の半導体メモリチップにコピーし、別途購入したコントローラーと組み合わせることによって、ビデオデータの入った偽造メモリカードの複製を幾らでも作ることができる。しかも、これら偽造メモリカードのビデオデータは、正規のメモリカードのビデオデータと同様に正規なプレーヤーで再生可能である。
 本発明は、上記に鑑みてなされたものであって、メモリカードの偽造等によるデータの不正利用を防止することができるメモリチップを提供することを目的とする。
 本発明は、外部装置の要求に応じてデータの読み出しおよび書き込みを制御するコントローラーと接続されるメモリチップであって、予め定められたデータの記憶領域である特殊領域を含むメモリと、前記外部装置がデータの変換に用いる第1鍵に対応する第2鍵を記憶する鍵記憶部と、前記特殊領域に書き込む書込データを前記コントローラーから受信し、前記第2鍵を用いて前記書込データを変換した変換データを生成する変換部と、前記変換データを前記特殊領域に書き込む書込部と、を備えることを特徴とする。
 また、本発明は、外部装置の要求に応じてデータの読み出しおよび書き込みを制御するコントローラーと接続されるメモリチップであって、予め定められたデータの記憶領域である特殊領域を含むメモリと、前記外部装置がデータの変換に用いる第1鍵に対応する第2鍵を記憶する鍵記憶部と、前記特殊領域に書き込む書込データを前記コントローラーから受信し、受信した前記書込データを前記特殊領域に書き込む書込部と、前記特殊領域に書き込まれた前記書込データを、前記第2鍵を用いて変換した変換データを生成する変換部と、を備えることを特徴とする。
 また、本発明は、外部装置の要求に応じてデータの読み出しおよび書き込みを制御するコントローラーと接続されるメモリチップであって、予め定められたデータの記憶領域である特殊領域を含むメモリと、前記コントローラーと共有する暗号鍵を用いて、前記特殊領域に書き込まれた書込データを暗号化した暗号化データを生成する暗号化部と、前記暗号化データを前記コントローラーに送出する送出部と、を備えることを特徴とする。
 本発明によれば、メモリカードの偽造等によるデータの不正利用を防止することができるという効果を奏する。
トラスト・チェインの一例を示す図。 第1の実施の形態の半導体メモリチップとコントローラーのブロック図。 暗号鍵共有部の構成例を示す図。 第1の実施の形態における暗号鍵共有処理の全体の流れを示すフローチャート。 送出制御部と読出制御部の構成例を示す図。 第1の実施の形態におけるデータ読出処理の全体の流れを示すフローチャート。 暗号鍵共有部の変形例を示す図。 第1の実施の形態の変形例における暗号鍵共有処理の全体の流れを示すフローチャート。 送出制御部と読出制御部の変形例を示す図。 第1の実施の形態の変形例におけるデータ読出処理の全体の流れを示すフローチャート。 送出制御部と読出制御部の別の変形例を示す図。 第1の実施の形態の別の変形例におけるデータ読出処理の全体の流れを示すフローチャート。 書き込み特殊領域に書き込みを行う様子を示す図。 書込制御部およびデータ変換部の構成例を示す図。 第1の実施の形態における書き込み処理の全体の流れを示すフローチャート。 最小限のデータのみ暗号化および復号する構成でのデータの変化を表す図。 書込制御部およびデータ変換部の変形例を示す図。 鍵記憶部のデータ構造の一例を示す図。 変形例における書き込み処理の全体の流れを示すフローチャート。 バージョン情報の変形例を示す図。 第2の実施の形態の半導体メモリチップのブロック図。 第2の実施の形態の受信制御部および書き込み装置の構成例を示す図。 第2の実施の形態における書き込み処理の全体の流れを示すフローチャート。 第2の実施の形態のデータ変換部の構成例を示す図。 第2の実施の形態におけるデータ読出処理の全体の流れを示すフローチャート。 第3の実施の形態のプレーヤーおよびメモリカードのブロック図。 第3の実施の形態における再生処理の全体の流れを示すフローチャート。 第4の実施の形態のプレーヤーおよびメモリカードのブロック図。 第4の実施の形態における再生処理の全体の流れを示すフローチャート。 第5の実施の形態の次世代電力網の一構成例を示す図。 スマートメーターの構成例を示すブロック図。
 以下に添付図面を参照して、この発明にかかるメモリチップの好適な実施の形態を詳細に説明する。
 (第1の実施の形態)
 第1の実施の形態にかかるメモリチップ(半導体メモリチップ)は、半導体メモリチップにセキュリティ機能を持たせ、半導体メモリチップ自体をトラスト・チェインの中に組み込む。これにより、半導体メモリチップを不正なコントローラーと組み合わせて使用することを防止する。半導体メモリチップは高度な部品であり、不正なIDを有するコントローラーのように、容易に製造・販売することができない。
 ここで、トラスト・チェインについて図1を用いて説明する。図1は、半導体メモリチップ100をトラスト・チェインに組み込んだシステムの一例を示す図である。図1中の矢印の方向は認証の方向を示す。即ち、半導体メモリチップ100がコントローラー200を認証し、コントローラー200が書き込み装置300を認証し、書き込み装置300が半導体メモリチップ100を認証する。なお、破線はオプションである。書き込み装置300がトラスト・チェインの出発点であり、半導体メモリチップ100を経由してコントローラー200を認証することが図1のトラスト・チェインを構築する目的である。書き込み装置300と半導体メモリチップ100との間のデータの流れは常にコントローラー200を介して行われるため、書き込み装置300による半導体メモリチップ100の認証は間接的なものになる。
 本実施の形態では、半導体メモリチップ100をトラスト・チェインに組み込むために、半導体メモリチップ100自体にセキュリティ機能を持たせる。具体的には、半導体メモリチップ100のメモリに特殊領域を構成する。特殊領域は、読み出し特殊領域および書き込み特殊領域を含む。読み出し特殊領域とは、メモリ内の記憶領域(メモリ領域)のうち、半導体メモリチップ100により認証されたコントローラー200のみが、格納された値を正しく読み出すことができる予め定められたメモリ領域である。書き込み特殊領域とは、メモリ領域のうち、データ書き込みの際、データ変換部(後述)による復号を受けたデータを書き込む予め定められたメモリ領域である。
 また、本実施の形態では、半導体メモリチップ100をトラスト・チェインに組み込むために、読み出し特殊領域と書き込み特殊領域に共通領域を設ける。そして、当該共通領域に、データ利用に不可欠な情報を記録する。共通領域にデータ利用に不可欠な情報が正しく記録できることは、即ち、半導体メモリチップ100が書き込み装置300によって認証されたことに他ならない。そして、共通領域に記録されているデータ利用に不可欠な情報が、コントローラー200によって正しく読み出されることは、即ち、当該コントローラー200が半導体メモリチップ100によって認証されていることに他ならない。かくして、図1のトラスト・チェインが完成する。
 図2は、第1の実施の形態の半導体メモリチップ100とコントローラー200の構成の一例を示すブロック図である。まず、半導体メモリチップ100の機能の概要について説明する。図2に示すように、半導体メモリチップ100は、メモリ110と、暗号鍵共有部120と、送出制御部130と、データ変換部140と、を備えている。
 メモリ110は、各種データを記憶する記憶部である。メモリ110は、例えば、NAND型フラッシュメモリなどにより構成できる。なお、メモリ110はこれに限られず、他の型式のフラッシュメモリなどを含む、半導体素子によって構成される任意の半導体メモリを適用することができる。
 メモリ110は、符号記憶部111と、読み出し特殊領域112と、書き込み特殊領域113と、共通領域114と、一般領域115とを備えている。
 符号記憶部111は、書き込み装置300から書き込みが要求されたデータのエラー訂正符号(ECC:エラーコレクションコード)を記憶する。なお、符号記憶部111は、メモリ110の外部にメモリ110と独立の記憶部として備えてもよい。
 図2では、読み出し特殊領域112および書き込み特殊領域113のそれぞれに、共通領域114以外の領域が含まれる例が示されているが、少なくとも共通領域114が存在すれば、各領域の構成は任意である。例えば、読み出し特殊領域112と書き込み特殊領域113とが一致(すなわち読み出し特殊領域112と書き込み特殊領域113とがいずれかも共通領域114と一致)するように構成してもよい。
 一般領域115とは、送出制御部130およびデータ変換部140を介さずに、コントローラー200から直接書き込みおよび読み取りが可能な領域を表す。
 暗号鍵共有部120は、コントローラー200との間で共有する暗号鍵を保持または生成する。送出制御部130は、メモリ110から読み出したデータをコントローラー200に送出する処理を制御する。データ変換部140は、コントローラー200を介して書き込み装置300から書き込みが要求されたデータを変換した変換データを生成する。暗号鍵共有部120、送出制御部130、およびデータ変換部140は、メモリ110と同一のダイ上に構成される。これにより、半導体メモリチップ100内にセキュリティ機能を持たせ、メモリカードの偽造等によるデータの不正利用を防止することができる。暗号鍵共有部120、送出制御部130、およびデータ変換部140の機能の詳細については後述する。
 次に、コントローラー200の機能の概要について説明する。コントローラー200は、暗号鍵共有部210と、読出制御部220と、書込制御部230と、一般領域読出部240と、一般領域書込部250と、を備えている。
 暗号鍵共有部210は、半導体メモリチップ100との間で共有する暗号鍵を保持または生成する。読出制御部220は、読み出し装置および再生装置などの外部装置(図示せず)からの要求に応じて、半導体メモリチップ100の共通領域114からデータを読み出す処理を制御する。書込制御部230は、書き込み装置300などの外部装置からの要求に応じて、半導体メモリチップ100の共通領域114にデータを書き込む処理を制御する。
 一般領域読出部240は、一般領域115からのデータの読み出しを制御する。すなわち、一般領域115からデータを読み出す場合、読み出し装置は、コントローラー200の一般領域読出部240に対して、読み出し対象となるページの指定を入力する。
 一般領域読出部240は、指定されたページのデータを読み出すと共に、符号記憶部111から指定されたページに対応するECCを読み出す。また、一般領域読出部240は、ECCを用いて読み出したページのエラーをチェックする。エラーが無ければ、一般領域読出部240は読み出したページのデータを出力する。エラーが存在して修復可能である場合は、一般領域読出部240は、読み出したページのデータを修復して出力する。それ以外の場合は、一般領域読出部240はエラーコードを出力する。
 一般領域書込部250は、一般領域115へのデータ書き込みを制御する。すなわち、一般領域115へデータを書き込む場合、書き込み装置300は、コントローラー200の一般領域書込部250に対してデータを入力する。この際、書き込み装置300は、書き込み先のページ(メモリ内の領域)の指定も一般領域書込部250に入力する。
 一般領域書込部250は、入力されたデータのECCを生成し、一般領域115のうち、指定されたページにデータを書き込むと共に、生成したECCを指定されたページに対するECCとして符号記憶部111に記録する。
 次に、半導体メモリチップ100の暗号鍵共有部120とコントローラー200の暗号鍵共有部210の構成例について図3を用いて説明する。図3に示すように、暗号鍵共有部120は、メディア鍵を表すKM121(以下、メディア鍵KMという)と、MKB(Media Key Block)122とを保持している。MKB122については、例えば非特許文献1に記載されている。また、暗号鍵共有部210は、デバイス鍵を表すKD212を保持している。また、暗号鍵共有部210は、MKB読み取り部211と、MKB処理部213と、を備えている。
 MKB読み取り部211は、半導体メモリチップ100の暗号鍵共有部120からMKB122を読み出す。MKB処理部213は、読み出されたMKBをデバイス鍵KD212を用いて処理することによりメディア鍵KMを導出するMKB処理を実行する。
 なお、図3の例では、半導体メモリチップ100の暗号鍵共有部120がコントローラー200の暗号鍵共有部210を認証している。
 次に、図3のように構成された暗号鍵共有部120と暗号鍵共有部210との間で暗号鍵を共有する暗号鍵共有処理について図4を用いて説明する。図4は、第1の実施の形態における暗号鍵共有処理の全体の流れを示すフローチャートである。
 コントローラー200が半導体メモリチップ100の読み出し特殊領域112からデータを読み出す際、まず、コントローラー200の暗号鍵共有部210のMKB読み取り部211が、半導体メモリチップ100のMKB122を読み出す(ステップS101)。MKB122は、コントローラー200から常に自由に読み出しが可能である。MKB読み取り部211は、読み出したMKB122をMKB処理部213に送る(ステップS102)。
 MKB処理部213は、コントローラー200の暗号鍵共有部210が保持しているデバイス鍵KD212を読み込み、MKB処理を行う(ステップS103)。次に、MKB処理部213は、MKB処理によりメディア鍵KMが得られたか否かを判断する(ステップS104)。デバイス鍵KD212がMKB122によって無効化されている場合、MKB処理によって正しくメディア鍵KMを得ることができない。この場合、MKB処理部213は、メディア鍵KMが得られなかったと判断し(ステップS104:No)、コントローラー200にエラーを通知する(ステップS105)。コントローラー200は、エラーの通知を受けると、読み出し動作を中止する。
 一方、デバイス鍵KD212がMKB122によって無効化されていない場合、MKB処理によって正しいメディア鍵KMが得られる。この場合、MKB処理部213は、メディア鍵KMが得られたと判断し(ステップS104:Yes)、得られたメディア鍵KMをコントローラー200の読出制御部220に送る(ステップS106)。半導体メモリチップ100側では、暗号鍵共有部120が格納しているメディア鍵KMが送出制御部130に送られる(ステップS107)。
 次に、半導体メモリチップ100の送出制御部130とコントローラー200の読出制御部220の構成例について図5を用いて説明する。図5に示すように、送出制御部130は、乱数発生部131と、読出部132と、暗号化部133と、送出部134とを備えている。
 乱数発生部131は、暗号化部133の要求に応じて乱数を発生する。読出部132は、指定された読み出し対象ページのデータと、当該データのECCとをメモリ110から読み出す。暗号化部133は、読み出されたデータをメディア鍵KMを用いて暗号化する。送出部134は、暗号化されたデータ(暗号化データ)とECCとをコントローラー200のデータ受信部221に送出する。
 また、図5に示すように、読出制御部220は、データ受信部221と、復号部222と、エラー修復部223とを備えている。データ受信部221は、半導体メモリチップ100の送出部134から暗号化データとECCとを受信する。復号部222は、受信された暗号化データをメディア鍵KMを用いて復号する。エラー修復部223は、受信されたECCを用いて、復号されたデータのエラー有無のチェックおよびエラー修復を行う。
 次に、図5のように構成された送出制御部130と読出制御部220との間で読み出したデータを送受信するデータ読出処理について図6を用いて説明する。図6は、第1の実施の形態におけるデータ読出処理の全体の流れを示すフローチャートである。
 読出制御部220は、暗号鍵共有部210からメディア鍵KMを受け取ると(ステップS201)、復号部222に受け取ったメディア鍵KMを入力する(ステップS202)。次に、読出制御部220は、送出制御部130にデータ送出要求を送る。この際、読み出し対象ページの指定も併せて送られる(ステップS203)。送出制御部130の読出部132は、指定されたページのデータを読み出し、暗号化部133に入力する(ステップS204)。また、読出部132は、読み出し対象ページに対応するECCを符号記憶部111から読み出し、送出部134に入力する(ステップS205)。
 次に、暗号化部133が、乱数発生部131に乱数発生要求を送る(ステップS206)。乱数発生部131は、乱数を発生して暗号化部133に送る(ステップS207)。暗号化部133は、暗号鍵共有部120からメディア鍵KMを取得する(ステップS208)。暗号化部133は、指定されたページのデータと乱数とを連結し、連結して得られたデータをメディア鍵KMで暗号化した暗号化データD’を生成する(ステップS209)。そして、暗号化部133は、暗号化データD’を送出部134に送る(ステップS210)。送出部134は、入力された暗号化データD’と入力されたECCとをコントローラー200のデータ受信部221に送出する(ステップS211)。
 なお、読み出し対象ページの中で重要なデータはページの一部かもしれない。このような場合、暗号化部133が、重要なデータが含まれるページの一部のみを暗号化するように構成してもよい。例えば、ページの先頭48バイトのみが重要なデータである場合、暗号化部133がページの先頭48バイトと16バイトの乱数を連結した64バイトのみ暗号化するようにしても良い。これにより、暗号化による処理負荷の増加を最小限に抑制することができる。
 次に、読出制御部220のデータ受信部221は、暗号化データとECCとを受信する(ステップS212)。そして、データ受信部221は、受信したECCをエラー修復部223に送る(ステップS213)。エラー修復部223は、受け取ったECCを保持する。また、データ受信部221は、受信した暗号化データD’を復号部222に送る(ステップS214)。復号部222は、コントローラー200の暗号鍵共有部210から受け取ったメディア鍵KMを用いて、暗号化データD’を復号する(ステップS215)。
 この復号の結果、平文の読み出しデータDと乱数とが得られる。復号部222は、予め定められたフォーマットにしたがい、復号したデータから、読み出しデータDと乱数とを区別することができる。例えば、暗号化部133が64バイトのみを暗号化する上述の例では、復号したデータのうち、先頭の48バイトが読み出しデータDであり、続く16バイトが乱数である。
 復号部222は、読み出しデータDのみをエラー修復部223に転送する(ステップS216)。エラー修復部223は、保持しているECCを用いて読み出しデータDのエラーをチェックする(ステップS217)。そして、エラー修復部223は、エラーがあるか否かを判断する(ステップS218)。エラーが無い場合(ステップS218:No)、コントローラー200は、読み出しデータDの読み出しを要求した外部装置に、読み出しデータDを出力する(ステップS219)。
 エラーがある場合(ステップS218:Yes)、エラー修復部223は、さらにエラーが修復可能か否かを判断する(ステップS220)。エラーが修復可能な場合(ステップS220:Yes)、エラー修復部223は、保持しているECCを用いて読み出しデータDのエラーを修復する(ステップS221)。そして、コントローラー200は、修復後の読み出しデータDを出力する(ステップS219)。
 エラーが修復不可能な場合(ステップS220:No)、エラー修復部223は、コントローラー200にエラーを通知する(ステップS222)。この場合、コントローラー200は、例えばエラーが発生したことを読み出しを要求した外部装置に送信する。
 図4で説明した処理により、有効なデバイス鍵KD212を有する正規のコントローラー200のみが、半導体メモリチップ100と共通の暗号鍵であるメディア鍵KMを得ることができる。また、図6で説明した処理により、正規のコントローラー200のみが、共通のメディア鍵KMにより正常に復号されたデータを得ることができる。即ち、半導体メモリチップ100によるコントローラー200の認証が実現できる。
 このように、半導体メモリチップ100の暗号鍵共有部120と送出制御部130との組み合わせが、コントローラー200を認証する認証手段とみなすことができる。この認証手段により読み出されるデータを記憶する半導体メモリチップ100上のメモリ110内の領域が、読み出し特殊領域に相当する。
 なお、暗号鍵共有部120および暗号鍵共有部210の構成は図3に示すものに限られるものではない。半導体メモリチップ100とコントローラー200との間で暗号鍵を共有できるものであればあらゆる構成を適用できる。
 図7は、暗号鍵共有部120の変形例(暗号鍵共有部120-2)と暗号鍵共有部210の変形例(暗号鍵共有部210-2)を示すブロック図である。図7に示すように、暗号鍵共有部120-2は、メディア鍵KMおよびMKB122を保持する他に、乱数生成部123と、乱数送信部124と、一時鍵生成部125とを備えている。また、暗号鍵共有部210-2は、デバイス鍵KD212、MKB読み取り部211、およびMKB処理部213の他に、乱数受信部214と、一時鍵生成部215とを備えている。
 乱数生成部123は、乱数送信部124からの要求に応じて乱数を発生する。乱数送信部124は、発生された乱数を、コントローラー200の乱数受信部214、および、半導体メモリチップ100の一時鍵生成部125に送信する。一時鍵生成部125は、メディア鍵KMおよび受信した乱数を用いて一時鍵Kを生成する。例えば、一時鍵生成部125は、AES-Gなどの一方向性関数を用いて、メディア鍵KMと乱数とから一時鍵Kを生成する。
 乱数受信部214は、乱数送信部124から乱数を受信する。一時鍵生成部215は、半導体メモリチップ100の一時鍵生成部125と同様の手法により、MKB処理部213から受け取ったメディア鍵KMと、乱数受信部214により受信された乱数とから一時鍵Kを生成する。
 図7の例でも、半導体メモリチップ100の暗号鍵共有部120-2がコントローラー200の暗号鍵共有部210-2を認証している。
 次に、図7のように構成された暗号鍵共有部120-2と暗号鍵共有部210-2との間で暗号鍵を共有する暗号鍵共有処理について図8を用いて説明する。図8は、第1の実施の形態の変形例における暗号鍵共有処理の全体の流れを示すフローチャートである。
 ステップS301~ステップS305は、図4のステップS101~ステップS105と同様の処理なので説明を省略する。
 ステップS304で、正しいメディア鍵KMが得られたと判断された場合(ステップS304:Yes)、MKB処理部213は、得られたメディア鍵KMを一時鍵生成部215に送る(ステップS306)。次に、コントローラー200の暗号鍵共有部210の乱数受信部214が、半導体メモリチップ100の乱数送信部124に対して乱数送信要求を送る(ステップS307)。乱数送信部124は、乱数生成部123に乱数発生要求を送る(ステップS308)。乱数生成部123は、乱数Rを生成する(ステップS309)。乱数送信部124は、生成された乱数Rを受け取り、乱数Rをコントローラー200の乱数受信部214に送信する(ステップS310)。コントローラー200の乱数受信部214は、受信した乱数Rをコントローラー200の一時鍵生成部215に転送する(ステップS311)。一時鍵生成部215は、MKB処理部213から受け取ったメディア鍵KMと乱数Rとから一時鍵Kを生成する(ステップS312)。また、一時鍵生成部215は、生成した一時鍵Kをコントローラー200の読出制御部220に送る(ステップS313)。
 一方、乱数送信部124は、半導体メモリチップ100の一時鍵生成部125にも乱数Rを送る(ステップS314)。乱数Rを受信した一時鍵生成部125は、半導体メモリチップ100の暗号鍵共有部120が予め格納しているメディア鍵KMを読み取る(ステップS315)。そして、一時鍵生成部125は、メディア鍵KMと乱数Rと組み合わせて一時鍵Kを生成する(ステップS316)。また、一時鍵生成部125は、生成した一時鍵Kを半導体メモリチップ100の送出制御部130に送る(ステップS317)。
 コントローラー200のMKB処理が正しく行われ、正しいメディア鍵KMが生成されたならば、半導体メモリチップ100とコントローラー200とが、それぞれ独立に生成する一時鍵Kは同一になる。
 次に、図7のように構成された暗号鍵共有部120-2および暗号鍵共有部210-2に対応する送出制御部130の変形例(送出制御部130-2)と読出制御部220の変形例(読出制御部220-2)について図9を用いて説明する。図9に示すように、送出制御部130-2は、読出部132と、暗号化部133-2と、送出部134とを備えている。本変形例では、乱数発生部131が削除されたこと、および、暗号化部133-2の機能が、図5の送出制御部130と異なっている。暗号化部133-2は、主にメディア鍵KMの代わりに一時鍵Kを用いてデータを暗号化する点が、図5の暗号化部133と異なっている。
 また、図9に示すように、読出制御部220-2は、データ受信部221と、復号部222-2と、エラー修復部223とを備えている。本変形例では、復号部222-2の機能が、図5の読出制御部220と異なっている。復号部222-2は、主にメディア鍵KMの代わりに一時鍵Kを用いてデータを復号する点が、図5の復号部222と異なっている。
 次に、図9のように構成された送出制御部130-2と読出制御部220-2との間で読み出したデータを送受信するデータ読出処理について図10を用いて説明する。図10は、第1の実施の形態の変形例におけるデータ読出処理の全体の流れを示すフローチャートである。
 読出制御部220-2の復号部222-2が暗号鍵共有部210-2から一時鍵Kを受け取ると(ステップS401)、復号部222-2は受け取った一時鍵Kを保持する。また、データ受信部221が、半導体メモリチップ100の送出制御部130-2に対して、読み出し対象ページの指定と共にデータ送出要求を送る(ステップS402)。送出制御部130は、読出部132に読み出し対象ページの指定とデータ読み出し指示を送る(ステップS403)。読出部132は、メモリ110の読み出し対象ページからデータDを読み出す(ステップS404)。
 一方、暗号化部133-2は、暗号鍵共有部120-2から一時鍵Kを受け取る(ステップS405)。次に、暗号化部133-2は、一時鍵Kを用いてデータDを暗号化し、暗号化データD’=Enc(K,D)を生成する(ステップS406)。なお、Enc(K,D)とは、一時鍵Kを用いてデータDを暗号化することを意味する。暗号化部133-2は、生成した暗号化データD’を送出部134に送る(ステップS407)。
 読出部132は、データDのECCをメモリ110の符号記憶部111から読み出す(ステップS408)。送出部134は読み出されたECCを保持する。送出部134は、暗号化データD’と保持しているECCとを、読出制御部220-2のデータ受信部221に送る(ステップS409)。
 データ受信部221は、送出部134から暗号化データD’とECCとを受け取ると、暗号化データD’を復号部222-2に送り(ステップS410)、ECCをエラー修復部223に送る(ステップS411)。エラー修復部223は、受け取ったECCを保持する。復号部222-2は、暗号化データD’を受け取ると、保持している一時鍵Kを用いて暗号化データD’を復号し、データDを得る(ステップS412)。次に、復号部222-2は、復号したデータDをエラー修復部223に送る(ステップS413)。
 ステップS414~ステップS419は、図6のステップS217~ステップS222と同様の処理なので説明を省略する。
 次に、図7のように構成された暗号鍵共有部120-2および暗号鍵共有部210-2に対応する送出制御部130および読出制御部220の別の変形例(送出制御部130-3および読出制御部220-3)について図11を用いて説明する。図11に示すように、送出制御部130-3は、読出部132-3と、暗号化部133-3と、送出部134-3とを備えている。
 読出部132-3は、読み出したECCを送出部134-3ではなく、暗号化部133-3に送信する。暗号化部133-3は、データDとECCとを連結したデータを暗号化する。送出部134-3は、このようにして暗号化されたデータを読出制御部220-3に送出する。
 一方、図11に示すように、読出制御部220-3は、データ受信部221-3と、復号部222-3と、エラー修復部223-3とを備えている。
 データ受信部221-3は、データDとECCとを暗号化した暗号化データを受信し、受信した暗号化データを復号部222-3に送信する。復号部222-3は、暗号化データを復元してデータDとECCとを求め、エラー修復部223-3に送信する。エラー修復部223-3は、このようにして復号部222-3から受信したデータDとECCとを用いて、エラーのチェックおよびエラー修復を実行する。
 次に、図11のように構成された送出制御部130-3と読出制御部220-3との間で読み出したデータを送受信するデータ読出処理について図12を用いて説明する。図12は、第1の実施の形態の別の変形例におけるデータ読出処理の全体の流れを示すフローチャートである。
 読出制御部220の復号部222-3が暗号鍵共有部210-2から一時鍵Kを受け取ると(ステップS501)、復号部222-3は、受け取った一時鍵Kを保持する。また、データ受信部221-3は、半導体メモリチップ100の送出制御部130-3に、読み出し対象ページの指定と共にデータ送出要求を送る(ステップS502)。送出制御部130-3は、読出部132-3に読み出し指定ページとデータ読み出し指示とを送る(ステップS503)。読出部132-3は、メモリの指定された読み出し対象ページのデータDを読み出す(ステップS504)。また、読出部132-3は、読み出したデータDのECCをメモリ110の符号記憶部111から読み出す(ステップS505)。次に、暗号化部133-3が、暗号鍵共有部120-2から一時鍵Kを受け取る(ステップS506)。暗号化部133-3は、受け取った一時鍵Kを用いてデータDとECCとを連結(concatenate)したデータD||ECCを暗号化した暗号化データD’=Enc(K,D||ECC)を生成する(ステップS507)。そして、暗号化部133-3は、暗号化データD’を送出部134に送る(ステップS508)。送出部134は、暗号化データD’を読出制御部220のデータ受信部221に送る(ステップS509)。
 データ受信部221は、送出部134から暗号化データD’を受け取ると、当該暗号化データD’を復号部222-3に送る(ステップS510)。復号部222-3は、暗号化データD’を受け取ると、保持している一時鍵Kを用いて暗号化データD’を復号し、データDとECCとを得る(ステップS511)。復号部222-3は、データDとECCとをエラー修復部223-3に送る(ステップS512)。
 ステップS513~ステップS518は、図6のステップS217~ステップS222(図10のステップS414~ステップS419)と同様の処理なので説明を省略する。
 図7の暗号鍵共有部120-2と、図9の送出制御部130-2または図11の送出制御部130-3のいずれか一方との組み合わせが、コントローラー200を認証する認証手段とみなすことができる。これらの認証手段により読み出されるデータを記憶する半導体メモリチップ100上のメモリ110内の領域が、読み出し特殊領域に相当する。
 このように、読み出し特殊領域を用いてコントローラー200を認証する認証手段を備えることにより、メモリカードの偽造等によるデータの不正利用を防止することができる。
 次に、書き込み特殊領域113を用いて書き込み装置300による半導体メモリチップ100の認証を実現する構成について以下に説明する。この構成によっても、メモリカードの偽造等によるデータの不正利用を防止することができる。また、読み出し特殊領域112(共通領域)からの読み出し機能、および、書き込み特殊領域113(共通領域)への書き込み機能の両方を備えるように構成すれば、上述のように半導体メモリチップ100をトラスト・チェインに組み込むことが可能となり、セキュリティ機能をさらに向上させることができる。
 図13は、コントローラー200に書き込み装置300が接続されて、半導体メモリチップ100の書き込み特殊領域113に書き込みを行う様子を示す図である。ただし、図13では、書き込み処理に関わる部分のみが図示されている。
 まず、書き込み装置300が、書き込みが要求されたデータ(書込データ)を暗号化した暗号化データ、書込先ページの指定、および書込データに対するECCをコントローラー200に送信する。コントローラー200の書込制御部230は、暗号化データとECCとを半導体メモリチップ100のデータ変換部140に送出する。データ変換部140は、暗号化データを変換(復号)し、得られた変換データ(書込データ)を書き込み特殊領域113に書き込むとともに、ECCを符号記憶部111に書き込む。
 次に、図13の書き込み装置300、コントローラー200の書込制御部230、および、半導体メモリチップ100のデータ変換部140の構成例について図14を用いて説明する。図14に示すように、書き込み装置300は、ECC生成部310と、鍵記憶部320と、暗号化部330と、データ送信部340とを備えている。
 ECC生成部310は、書き込むべきデータとして入力された書込データのECCを生成する。鍵記憶部320は、書込データの変換に用いるデータ変換鍵(第1鍵)を記憶する。本実施の形態では、鍵記憶部320は、公開鍵方式の公開鍵Kpをデータ変換鍵として記憶している。この公開鍵Kpは、半導体メモリチップ100の鍵記憶部141(後述)が記憶するデータ変換鍵(第2鍵)である秘密鍵Ksに対応する公開鍵である。
 なお、適用可能な暗号化方式は公開鍵方式に限られるものではない。また、以下では、書き込み装置300がデータ変換鍵(公開鍵Kp)を用いて書込データを暗号化し、半導体メモリチップ100が対応するデータ変換鍵(秘密鍵Ks)で書込データを復号してメモリ110に記憶する場合を例に説明する。書き込み装置300がデータ変換鍵(第1鍵)を用いてデータを変換し、半導体メモリチップ100が、第1鍵に対応するデータ変換鍵(第2鍵)を用いて変換後のデータを変換するものであれば、これ以外の変換方法を適用してもよい。例えば、書き込み装置300が第1鍵を用いて復号に相当する変換処理を実行し、半導体メモリチップ100が、第1鍵に対応する第2鍵を用いて暗号化に相当する変換処理を実行するように構成してもよい。
 暗号化部330は、公開鍵Kpを用いて書込データを暗号化する。また、暗号化部330は、公開鍵Kpを用いてECCを暗号化した符号(変換符号)を生成する。なお、以下では、暗号化された書込データを暗号化データといい、ECCを暗号化した変換符号を暗号化ECCという場合がある。データ送信部340は、暗号化データと、暗号化ECCと、書込先ページの指定とをコントローラー200の書込制御部230に送信する。
 次に、コントローラー200の書込制御部230の構成例について説明する。図14に示すように、書込制御部230は、データ転送部231を備えている。データ転送部231は、暗号化データと、暗号化ECCと、書込先ページ指定とを受信し、これらの情報を半導体メモリチップ100のデータ変換部140に送信する。
 次に、データ変換部140の構成例について説明する。図14に示すように、データ変換部140は、鍵記憶部141と、復号部142と、書込部143とを備えている。
 鍵記憶部141は、公開鍵方式の秘密鍵Ksを記憶する。復号部142は、鍵記憶部141の秘密鍵Ksを用いて暗号化データと暗号化ECCとを復号する。なお、暗号化データから復号された書込データが、変換データに相当する。書込部143は、復号された書込データをメモリ110上の書き込み特殊領域113の指定されたページに記録する。また、書込部143は、復号されたECCをメモリ110の符号記憶部111に格納する。
 次に、図14のように構成された書き込み装置300、書込制御部230、および、データ変換部140による書込データの書き込み処理について図15を用いて説明する。図15は、第1の実施の形態における書き込み処理の全体の流れを示すフローチャートである。
 書き込み装置300は、書込データ(データD)と書込先ページの指定とを入力する(ステップS601)。次に、ECC生成部310が、データDのECCを生成し、生成したECCとデータDとを暗号化部330に転送する(ステップS602)。暗号化部330は、鍵記憶部320から公開鍵Kpを取得する(ステップS603)。次に、暗号化部330は、公開鍵Kpによって、データDとECCとを暗号化し、暗号化データD’と暗号化ECCとを得る(ステップS604)。暗号化部330は、暗号化データD’と暗号化ECCとをデータ送信部340に送る(ステップS605)。データ送信部340は、暗号化データD’、書込先ページの指定、および、暗号化ECCをコントローラー200の書込制御部230に送信する(ステップS606)。
 書込制御部230のデータ転送部231は、暗号化データD’、書込先ページ指定、および、暗号化ECCを受信し、それらを半導体メモリチップ100のデータ変換部140に送信する(ステップS607)。
 データ変換部140が受信した暗号化データD’および暗号化ECCは、復号部142に入力される。復号部142は、鍵記憶部141から秘密鍵Ksを取得する(ステップS608)。次に、復号部142は、秘密鍵Ksを用いて暗号化データD’および暗号化ECCを復号し、データDおよびECCを得る(ステップS609)。次に、書込部143は、復号されたデータDを、書込先ページ指定によって指定されたメモリ110上のページに記録する。また、書込部143は、復号されたECCを、指定されたページに対応するECCとして、メモリ110の符号記憶部111に格納する(ステップS610)。
 なお、一般に公開鍵による暗号化および復号は大きな計算量を要する。ページのサイズは例えば約2KB程度であるが、実際に書き込むデータは暗号鍵などの小さなデータ(例えば16B程度)である。従って、特に半導体メモリチップ100での復号の負荷を避けるため、例えば、次のような工夫を行っても良い。すなわち、最小限のデータのみ暗号化および復号するように構成してもよい。図16は、このように構成した場合のデータの変化の様子を表す図である。
 まず、一例として、ページサイズを2048B、書込データのサイズを16B、ECCのサイズを3Bとする。ECC生成部310には、先頭の16Bの鍵データ+残り2032Bの0からなる1ページ分のデータを入力する(1601)。暗号化部330は、1ページ分のデータの17B目から3BのECCを記録した後、先頭20Bのみ暗号化を行う(1602)。復号部142は、先頭20Bのみ復号した後(1603)、1ページ分のデータの17B目から3BをECCとして符号記憶部111に格納する(1604)。次に、17B目から3Bを0で上書き後、メモリ110の書き込み特殊領域113に1ページ分のデータを記録する(1605)。
 書き込み特殊領域113へのデータ書き込みは、必ず半導体メモリチップ100のデータ変換部140を経由して行われる。本実施の形態では、書き込み装置300にデータDが入力された場合、データDとデータDに対するECCであるECC(D)は、書き込み装置300が保持する公開鍵Kpで暗号化される。そして、半導体メモリチップ100のデータ変換部140には、暗号化データD’=Enc(Kp,D)と暗号化ECC=Enc(Kp,ECC(D))とが入力される。
 書き込み特殊領域113にデータDが正しく記録され、かつ、符号記憶部111にECC(D)が正しく記録されるためには、半導体メモリチップ100が秘密鍵Ksを保持している必要がある。即ち、書き込み装置300が半導体メモリチップ100を認証している。上述のデータ変換部140経由で書き込まれるメモリ領域が書き込み特殊領域113に相当する。
 次に、図14のデータ変換部140、書込制御部230、および、書き込み装置300の変形例について図17を用いて説明する。図17は、本変形例にかかる書き込み装置300-2、書込制御部230-2、および、データ変換部140-2の構成の一例を示すブロック図である。
 図17に示すように、書き込み装置300-2は、ECC生成部310-2と、鍵記憶部320-2と、暗号化部330-2と、データ送信部340と、鍵選択部350と、を備えている。データ送信部340の機能は、図14と同様であるため、同一の符号を付し説明は省略する。
 ECC生成部310-2は、生成したECCを暗号化部330-2ではなく、データ送信部340に送信する点が、図14のECC生成部310と異なっている。
 鍵記憶部320-2は、対称鍵方式のデータ変換鍵である暗号鍵Kを記憶する。本変形例では、鍵記憶部320-2は、半導体メモリチップ100のバージョンごとに複数の暗号鍵Kを記憶する。図18は、鍵記憶部320-2に記憶されるデータのデータ構造の一例を示す図である。図18に示すように、鍵記憶部320-2は、半導体メモリチップ100のバージョンと、暗号鍵とを対応づけたデータを記憶している。
 図17に戻り、鍵選択部350は、半導体メモリチップ100のバージョンに適合する暗号鍵Kを鍵記憶部320-2から選択する。暗号化部330-2は、選択された暗号鍵Kを用いて書込データとECCとを暗号化する。
 次に、書込制御部230-2の構成例について説明する。図17に示すように、書込制御部230-2は、データ転送部231-2を備えている。データ転送部231-2は、鍵選択部350からの要求に応じて半導体メモリチップ100から読み出されたバージョン情報を転送する機能が追加された点が、図14のデータ転送部231と異なっている。
 次に、データ変換部140-2の構成例について説明する。図17に示すように、データ変換部140は、鍵記憶部141-2と、復号部142と、書込部143と、バージョン情報記憶部144とを備えている。データ変換部140、復号部142、および、書込部143の機能は、図14と同様であるため、同一の符号を付し説明は省略する。
 バージョン情報記憶部144は、半導体メモリチップ100のバージョン情報を記憶する。鍵記憶部141-2は、対称鍵方式の暗号鍵Kを記憶する。この暗号鍵Kは、半導体メモリチップ100のバージョン情報記憶部144が格納するバージョン情報に対応する暗号鍵である。
 次に、図17のように構成された書き込み装置300-2、書込制御部230-2、および、データ変換部140-2による書込データの書き込み処理について図19を用いて説明する。図19は、本変形例における書き込み処理の全体の流れを示すフローチャートである。
 書き込み装置300-2は、書込データ(データD)と書込先ページの指定とを入力する(ステップS701)。ECC生成部310-2は、データDのECCを生成し、生成したECCをデータ送信部340に転送する(ステップS702)。また、ECC生成部310-2は、データDを暗号化部330に転送する(ステップS703)。次に、暗号化部330-2が、鍵選択部350に暗号鍵取得要求を送る(ステップS704)。
 本実施の形態では、暗号鍵は半導体メモリチップ100のバージョンに対応している。バージョンが異なれば暗号鍵も異なる。書き込み装置300の鍵記憶部320-2は、半導体メモリチップ100の各バージョンに対応する暗号鍵を格納しているが、半導体メモリチップ100のバージョンが分からないと対応する暗号鍵が得られない。
 そこで、鍵選択部350は、暗号化部330-2から暗号鍵取得要求を受け付けると、コントローラー200にバージョン取得要求を送る(ステップS705)。コントローラー200は、半導体メモリチップ100のデータ変換部140のバージョン情報記憶部144から、半導体メモリチップ100のバージョン情報を読み出し、データ転送部231に入力する(ステップS706)。データ転送部231は、バージョン情報を書き込み装置300の鍵選択部350に送信する(ステップS707)。鍵選択部350は、受信したバージョン情報に対応する暗号鍵Kを鍵記憶部320-2から選択する(ステップS708)。そして、鍵選択部350は、選択した暗号鍵Kを暗号化部330-2に送信する(ステップS709)。
 暗号化部330-2は、送信された暗号鍵Kを用いて、書き込むべきデータ(データD)を暗号化し、暗号化データD’を得る(ステップS710)。暗号化部330-2は、暗号化データD’をデータ送信部340に送る(ステップS711)。データ送信部340は、暗号化データD’、書込先ページの指定、および、ECCを、コントローラー200の書込制御部230-2に送信する(ステップS712)。書込制御部230-2のデータ転送部231-2は、暗号化データD’、書込先ページ指定、およびECCを受信し(ステップS713)、それらを半導体メモリチップ100のデータ変換部140-2に送信する(ステップS714)。
 データ変換部140-2は、受信した暗号化データD’を復号部142に入力する(ステップS715)。復号部142は、鍵記憶部141-2から暗号鍵Kを取得する(ステップS716)。復号部142は、暗号鍵Kを用いて、暗号化データD’をデータDに復号する(ステップS717)。書込部143は、復号されたデータDを、書込先ページ指定によって指定されたメモリ110上のページに記録する(ステップS718)。また、書込部143は、受信されたECCを、指定されたページに対応するECCとして符号記憶部111に格納する(ステップS719)。
 図17のデータ変換部140-2を経由して記録されるメモリ領域へのデータ記録は、必ずデータ変換部140-2による変換を受ける。データ変換部140-2を経由してデータが記録される領域が書き込み特殊領域113に相当する。
 書き込み装置300にデータDが入力された場合、データDは半導体メモリチップ100のバージョンに対して選択された暗号鍵Kで暗号化される。そして、半導体メモリチップ100のデータ変換部140-2には、暗号化データD’=Enc(K,D)が入力される。書き込み特殊領域113にデータDが正しく記録されるためには、半導体メモリチップ100が暗号鍵Kを保持している必要がある。即ち、この場合も、書き込み装置300が半導体メモリチップ100を認証している。
 読み出し特殊領域は、半導体メモリチップ100がコントローラー200を認証するために利用される。一方、書き込み特殊領域は、書き込み装置300が半導体メモリチップ100を認証するために利用される。ここで図1のトラスト・チェインを思い起こそう。書き込み装置300から、半導体メモリチップ100、コントローラー200というトラスト・チェインを構成するためには、読み出し特殊領域と書き込み特殊領域が交わりを持つ必要がある。即ち、この交わりの領域(共通領域)に記録されたデータが正しく(書き込み装置300の意図した通りに)コントローラー200によって読み出されることによって、トラスト・チェインが完成することになる。以降、読み出し特殊領域と書き込み特殊領域の交わりの領域(共通領域)を単に特殊領域と呼ぶことがある。
 なお、図18の例では、バージョン情報は単なる数値としていたが、バージョン情報はこれに限られるものではない。また、バージョン情報およびバージョン情報以外の1以上の情報に応じて、複数の暗号鍵から対応する暗号鍵を選択するように構成してもよい。例えば、半導体メモリチップ100が製造された時期、または、製造時のロット番号を元にバージョン情報を定めても良い。
 また、バージョン情報は数値に限定されるものではない。例えば、文字列、または、数値や文字列などの順列からなる配列であっても良い。図20は、このように構成したバージョン情報の変形例を示す図である。図20では、半導体メモリチップ100の製造工場名、当該製造工場で管理しているロット番号、および、顧客番号の順列をバージョン情報とした例が示されている。ここで、顧客番号とは、例えば半導体メモリチップ100の製造者が、大口の需要家に対して割り振った番号である。大口需要家向けでない製品については、この数値を固定の値(例えば0)とする。図20のような対応表が、書き込み装置300の鍵記憶部320-2に記憶される。
 このように、第1の実施の形態にかかる半導体メモリチップは、メモリと同一ダイ上に構成され、コントローラーを認証する認証手段として機能する暗号鍵共有部および送出制御部を備えている。そして、認証されたコントローラーのみが、メモリに格納されたデータを正しく読み出すことができる。また、メモリと同一ダイ上に構成され、所定の暗号鍵を記憶する鍵記憶部と当該暗号鍵によりデータを復号してメモリに記憶するデータ変換部とを備えている。そして、正しい暗号鍵を保持していなければデータを正しく記録できない。これにより、メモリカードの偽造等によるデータの不正利用を防止することができる。
 (第2の実施の形態)
 第1の実施の形態では、書き込み特殊領域に書き込む前に書込データを復号していた。これに対し、第2の実施の形態にかかる半導体メモリチップは、書き込み特殊領域から読み出したデータ(暗号化された書込データ)を復号する。この場合も、書き込み特殊領域から読み出したデータが正しく復号するためには、書き込み装置が暗号化に用いた暗号鍵に対応する暗号鍵を半導体メモリチップが保持している必要がある。即ち、この場合も、書き込み装置が半導体メモリチップを認証している。
 図21は、第2の実施の形態の半導体メモリチップ2100の構成の一例を示すブロック図である。なお、コントローラー200は、第1の実施の形態と同様の構成である。図21に示すように、半導体メモリチップ2100は、メモリ2110と、暗号鍵共有部120と、送出制御部2130と、データ変換部2140と、受信制御部2150と、読出部2160とを備えている。
 第1の実施の形態との相違点の1つは、データ変換部140の位置である。図2に示すように、第1の実施の形態では、データ変換(復号)は書き込みの際に行われるが、第2の実施の形態では読み出しの際に行われる。この他、第2の実施の形態では、メモリ2110および送出制御部2130の構成と、受信制御部2150および読出部2160を追加したことが、第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかる半導体メモリチップ100の構成を表すブロック図である図2と同様であるので、同一符号を付し、ここでの説明は省略する。
 送出制御部2130は、読出部132が削除されたことが図5の送出制御部130と異なっている。なお、送出制御部2130は、読出部132が読出したデータを入力する代わりに、読出部2160により読み出され、データ変換部140により変換されたデータを入力する。
 メモリ2110は、符号記憶部111と、共通領域2114と、一般領域115とを備えている。なお、第2の実施の形態では、書き込み特殊領域とは、メモリ領域のうち、データ読み出しの際、データ変換部2140による復号を受けるデータが書き込まれる予め定められたメモリ領域である。第2の実施の形態では、データ読み出しの際に、データ変換部2140により復号されたデータが送出制御部2130に入力され、コントローラー200の認証が行われる。したがって、データ変換部2140による復号を受けるデータが書き込まれる書き込み特殊領域と、認証されたコントローラー200のみがデータを正しく読み出すことができる読み出し特殊領域とが一致する。このため、図21では、メモリ2110に共通領域2114のみを図示している。
 受信制御部2150は、書込データが暗号化された暗号化データを受信して復号せずに共通領域2114に書き込む処理を制御する。
 読出部2160は、読み出しが指定されたページのデータを読み出し特殊領域(共通領域2114)から読み出し、データ変換部2140に送信する。また、読出部2160は、指定されたページのデータに対応するECCを符号記憶部111から読み出し、送出制御部2130に送信する。
 次に、図21の受信制御部2150の構成例および第2の実施の形態の書き込み装置2300の構成例について図22を用いて説明する。なお、図22では、書き込み処理に関わる部分のみが図示されている。
 まず、書き込み装置2300の構成について説明する。図22に示すように、書き込み装置2300は、ECC生成部2310と、鍵記憶部320と、暗号化部2330と、データ送信部2340とを備えている。鍵記憶部320は、図14の鍵記憶部320と同様の構成のため同一の符号を付し、説明を省略する。
 ECC生成部2310は、書き込むべきデータとして入力された書込データのECCを生成する。暗号化部2330は、公開鍵Kpを用いて書込データを暗号化する。データ送信部2340は、暗号化データと、ECCと、書込先ページの指定とをコントローラー200の書込制御部230に送信する。
 次に、受信制御部2150の構成について説明する。図22に示すように、受信制御部2150は、書込部2143を備えている。書込部2143は、暗号化データを共通領域2114の指定されたページに記録する。また、書込部2143は、ECCを符号記憶部111に格納する。
 次に、図22のように構成された書き込み装置2300、書込制御部230、および、受信制御部2150による書込データの書き込み処理について図23を用いて説明する。図23は、第2の実施の形態における書き込み処理の全体の流れを示すフローチャートである。
 書き込み装置2300は、書込データ(データD)と書込先ページの指定とを入力する(ステップS801)。書き込み装置2300は、入力されたデータDをECC生成部2310に入力する(ステップS802)。次に、ECC生成部2310が、データDのECCを生成し、生成したECCをデータ送信部2340に転送する(ステップS803)。また、ECC生成部2310は、データDを暗号化部2330に転送する(ステップS804)。
 暗号化部2330は、鍵記憶部320から公開鍵Kpを取得する(ステップS805)。また、暗号化部2330は、取得した公開鍵KpによってデータDを暗号化し、暗号化データD’を得る(ステップS806)。次に、暗号化部2330は、暗号化データD’をデータ送信部2340に送る(ステップS807)。データ送信部340は、暗号化データD’、書込先ページの指定、および、ECCを、コントローラー200の書込制御部230に送信する(ステップS808)。
 書込制御部230のデータ転送部231が、暗号化データD’、書込先ページ指定、および、ECCを受信し(ステップS809)、それらを半導体メモリチップ100の受信制御部2150に送信する(ステップS810)。
 受信制御部2150は、書込部2143に暗号化データD’と書込先ページ指定とを入力する(ステップS811)。書込部2143は、入力された暗号化データD’を、書込先ページ指定によって指定されたメモリ110上のページに記録する(ステップS812)。また、受信制御部2150は、ECCを、指定されたページに対応するECCとして、符号記憶部111に格納する(ステップS813)。
 このように、本実施の形態では、書き込み装置2300にデータDが入力された場合、データDは、書き込み装置2300が保持する公開鍵Kpで暗号化される。そして、半導体メモリチップ100の受信制御部2150には、暗号化データD’=Enc(Kp,D)と、データDに関するECC(D)とが入力される。その結果、書き込み特殊領域(共通領域2114)にデータEnc(Kp,D)が記録され、符号記憶部111にECC(D)が記録される。
 次に、図21のデータ変換部2140の構成例について図24を用いて説明する。図24に示すように、データ変換部2140は、鍵記憶部141と、復号部2142とを備えている。鍵記憶部141の構成および機能は、図14と同様であるため同一の符号を付し、説明を省略する。復号部2142は、読出部2160により読み出されたデータを、鍵記憶部141に記憶された秘密鍵Ksを用いて復号する。
 次に、図24のように構成されたデータ変換部2140により実行されるデータ読出処理について図25を用いて説明する。図25は、第2の実施の形態におけるデータ読出処理の全体の流れを示すフローチャートである。
 まず、コントローラー200が、読み出し対象となるページの指定を再生装置などの外部装置から入力する(ステップS901)。コントローラー200の読出制御部220は、半導体メモリチップ100に対して、メモリ110内の読み出し指定ページのデータの読み出し指示を送る(ステップS902)。半導体メモリチップ100の読出部2160は、読み出し指定ページのデータを読み出し、データ変換部2140に入力する(ステップS903)。また、読出部2160は、読み出し指定ページに対応するECCを符号記憶部111から読み出して送出制御部2130に送る(ステップS904)。
 上述のように本実施の形態では、暗号化データを復号せずに共通領域2114に書き込むため、読み出したデータは暗号化されている。以下、読み出したデータをデータD’と表す。
 データ変換部2140は、入力されたデータD’を復号部2142に入力する(ステップS905)。復号部2142は、鍵記憶部141から秘密鍵Ksを取得する(ステップS906)。復号部2142は、取得した秘密鍵Ksを用いて入力されたデータD’を復号し、データDを得る(ステップS907)。そして、復号部2142は、復号したデータDを送出制御部2130に送る(ステップS908)。
 送出制御部2130は、データ変換部2140から受信した復号されたデータDと符号記憶部111から読み出されたECCとをコントローラー200の読出制御部220に送出する(ステップS909)。この後の処理は、図6のステップS212以降と同様であるため、図25では記載を省略している。
 本実施の形態の場合、書き込み特殊領域(共通領域2114)からのデータ読み出しは、必ず半導体メモリチップ100のデータ変換部2140を経由して行われる。上述の書き込みによって、書き込み特殊領域(共通領域2114)の読み出し対象ページのデータがEnc(Kp,D)であり、当該ページのECCとして、ECC(D)が符号記憶部111に記録されているとする。この場合、半導体メモリチップ100のデータ変換部2140から送出制御部2130に送られるデータはDec(Ks,Enc(Kp,D))=Dである。そして、コントローラー200は、データDとECC(D)とを受け取ることになる。ここで、Dec(A,B)とは、復号に用いる鍵AによってデータBを復号することを表す。
 このように、書き込み装置300がEnc(Kp,D)とECC(D)を書き込んだ場合に、コントローラー200が所期のデータDと対応するECC(D)とを正しく受け取るためには、半導体メモリチップ100が秘密鍵Ksを格納している必要がある。即ち、この場合も、書き込み装置300が半導体メモリチップ100を認証している。上述のデータ変換部2140を経由して読み出されるメモリ領域が、本実施の形態の書き込み特殊領域に相当する。
 このように、第2の実施の形態にかかるメモリチップでは、メモリと同一ダイ上に構成され、所定の暗号鍵を記憶する鍵記憶部とメモリから読み出したデータを当該暗号鍵により復号するデータ変換部とを備えている。そして、正しい暗号鍵を保持していなければ書き込まれたデータを正しく復元できない。これにより、メモリカードの偽造等によるデータの不正利用を防止することができる。
 (第3の実施の形態)
 第1および第2の実施の形態で述べたように、書き込み装置によって特殊領域(=共通領域)にデータを書き込み、特殊領域からコントローラーがデータを読み出すことにより、トラスト・チェインが構築される。書き込み装置によって特殊領域に書き込まれたデータがコントローラーによって正しく読み出されたか否かは、実際には、コンテンツの再生などのデータ利用が正常にできるか否かによって判断される。
 第3の実施の形態では、上記実施の形態の半導体メモリチップ内のデータを利用する装置(プレーヤー等)を含めた具体的なデータ利用の実施の形態を説明する。
 図26は、第3の実施の形態でデータを利用する装置であるプレーヤー400およびプレーヤー400がデータを読み出すメモリカード2501の構成の一例を示すブロック図である。
 図26に示すように、メモリカード2501は、半導体メモリチップ100とコントローラー200とを含む。半導体メモリチップ100およびコントローラー200は、第1の実施の形態または第2の実施の形態で述べた構成を備える。例えば、図26のコントローラー200は、例えば、図3の暗号鍵共有部210と図5の読出制御部220と具備している。メモリカード2501は、例えばSDメモリカードなどにより構成することができる。
 第3の実施の形態では、暗号化ビデオデータ2541、暗号化ビデオデータ2541を復号するために用いられる復号鍵Kcが暗号化された暗号化復号鍵2531、および、MKB2521(以下、単にMKBという)が、半導体メモリチップ100のメモリ110内の一般領域115に記録されている。また、メディア鍵変換鍵2511(以下、メディア鍵変換鍵KTという)がメモリ110内の特殊領域(共通領域114)に格納されている。
 復号鍵Kcは暗号化された暗号化復号鍵2531として記録される。この暗号化に用いられる鍵は、MKBが正しく処理された場合に導出されるメディア鍵KMを、メディア鍵変換鍵KTを用いて変換したものである。例えば、暗号化復号鍵2531=AES-E(AES-G(KT,KM),Kc)。この例では、変換に一方向性関数であるAES-Gを用い、暗号化にAES-Eを用いている。
 プレーヤー400は、デバイス鍵を表すKD410(以下、デバイス鍵KDという)を保持するとともに、MKB処理部420と、メディア鍵変換部430と、鍵復号部440と、ビデオ復号部450と、再生部460とを備えている。
 MKB処理部420は、一般領域115から読み出されたMKBをデバイス鍵KDを用いて処理することによりメディア鍵KMを導出するMKB処理を実行する。メディア鍵変換部430は、導出されたメディア鍵KMを、特殊領域から読み出されたメディア鍵変換鍵KTを用いて変換した鍵Kwを生成する。鍵復号部440は、一般領域115から読み出された暗号化復号鍵2531を鍵Kwで復号することにより復号鍵Kcを生成する。ビデオ復号部450は、復号鍵Kcを用いて暗号化ビデオデータを復号する。再生部460は、復号されたビデオデータを再生する。
 次に、図26のように構成されたプレーヤー400によるメモリカード2501内のデータの再生処理について図27を用いて説明する。図27は、第3の実施の形態における再生処理の全体の流れを示すフローチャートである。
 プレーヤー400は、メモリカード2501内のコントローラー200に対して、一般領域115に含まれているMKBの読み出しを指示する(ステップS1001)。例えば、プレーヤー400は、コントローラー200に対して当該MKBの先頭アドレスとサイズとを指定する。
 コントローラー200は、指定された領域を含むページを半導体メモリチップ100から読み出し、指定された領域のデータ(即ちMKBの値)をプレーヤー400に送る。プレーヤー400は、受信したMKBをMKB処理部420に入力する(ステップS1002)。MKB処理部420は、プレーヤー400が保持しているデバイス鍵KDを読み出し、入力されたMKBをデバイス鍵KDを用いてMKB処理し、メディア鍵KMを導出して出力する(ステップS1003)。
 次に、MKB処理部420は、MKB処理によりメディア鍵KMが得られたか否かを判断する(ステップS1004)。デバイス鍵KDがMKBによって無効化されていた場合、MKB処理部420は正しいメディア鍵KMを導出することができない。この場合、MKB処理部420は、メディア鍵KMが得られなかったと判断し(ステップS1004:No)、エラーを出力する。なお、MKB処理部420からエラーが出力された場合、プレーヤー400は警告メッセージを表示して動作を停止する。
 メディア鍵KMが得られた場合(ステップS1004:Yes)、プレーヤー400は、メディア鍵KMをメディア鍵変換部430に送る(ステップS1005)。次に、プレーヤー400は、特殊領域(共通領域114)に含まれているメディア鍵変換鍵KTの読み出しを指示する(ステップS1006)。例えば、プレーヤー400は、コントローラー200にメディア鍵変換鍵KTの先頭アドレスとサイズとを指定する。
 コントローラー200は、指定された領域を含むページを半導体メモリチップ100から読み出し、指定された領域のデータ(即ちメディア鍵変換鍵KTの値)をプレーヤー400に送る。プレーヤー400は、コントローラー200から受信したメディア鍵変換鍵KTの値をメディア鍵変換部430に入力する。
 メディア鍵変換部430は、入力されたメディア鍵変換鍵KTでメディア鍵KMを変換して鍵Kw=AES-G(KT,KM)を得る(ステップS1007)。プレーヤー400は、鍵Kwの値を鍵復号部440に送る。
 次に、プレーヤー400は、コントローラー200を介して、半導体メモリチップ100の一般領域115から暗号化復号鍵2531を読み取る(ステップS1008)。例えば、プレーヤー400は、コントローラー200に暗号化復号鍵2531の先頭アドレスとサイズを指定する。
 コントローラー200は、一般領域115から指定された領域を含むページを読み出し、指定された領域のデータ(即ち暗号化復号鍵2531の値)をプレーヤー400に送る。プレーヤー400は、コントローラー200から受信した暗号化復号鍵2531の値を鍵復号部440に入力する。
 鍵復号部440は、入力された暗号化復号鍵2531を鍵Kwで復号する(ステップS1009)。これにより、復号鍵Kcの値が得られる。復号鍵Kcを得る式は以下の(1)式のように表される。
 Dec(Kw,暗号化復号鍵)
=Dec(Kw,Enc(AES-G(KT,KM),Kc))
=Dec(Kw,Enc(Kw,Kc))
=Kc ・・・(1)
 鍵復号部440は、復号鍵Kcの値をビデオ復号部450に送る(ステップS1010)。ビデオ復号部450は、受信した復号鍵Kcの値を保持する。
 次に、プレーヤー400は、コントローラー200を介して、一般領域115から順次暗号化ビデオデータを読み取り、ビデオ復号部450に順次入力する(ステップS1011)。ビデオ復号部450は、復号鍵Kcを用いて暗号化ビデオデータを順次復号し(ステップS1012)、再生部460に送る(ステップS1013)。再生部460は、受信したビデオデータを順次再生(表示)する(ステップS1014)。
 メディア鍵変換鍵KTは、正しいコンテンツ復号鍵(復号鍵Kc)を得る為に必要なデータである。この値は、例えば、半導体メモリチップ100毎に異なっていても良い。または、メモリカード2501毎に異なっていても良い。更には、メモリカード2501毎に統計的に異なっていても良い。統計的に異なるとは、厳密に異なる値とならない場合があるが、統計的には異なるとみなせることを意味する。例えば桁数が極めて大きい乱数を発生させ、この乱数の値を用いる場合が該当する。
 特殊領域に記録されるメディア鍵変換鍵KTがメモリカード2501毎に(少なくとも統計的に)異なっている場合、メディア鍵変換鍵KTは、メモリカード2501のIDの一種とみなすことができる。なお、暗号化されたコンテンツデータ(ビデオデータなど)を復号されるために必要なデータとして、メディア鍵変換鍵KTの代わりにMKBを保存するように構成してもよい。
 メディア鍵変換鍵KTを半導体メモリチップ100の書き込み特殊領域に正しく記録するには、半導体メモリチップ100が書き込み装置300によって認証されなければならない。プレーヤー400が、読み出し特殊領域に記録されたメディア鍵変換鍵KTを、コントローラー200を経由して正しく読み出すことができる為には、コントローラー200が半導体メモリチップ100によって認証されていなければならない。結局、書き込み装置300が半導体メモリチップ100を経由してコントローラー200を認証するトラスト・チェインが確立されていなければ、プレーヤー400はメディア鍵変換鍵KTを正しく読み出すことはできない。即ち、プレーヤー400によるビデオの再生をもって、トラスト・チェイン確立の証として良い。
 なお、第3の実施の形態におけるMKBは、ビデオの供給者がビデオ毎に供給するようにしても良い。一般に、MKBは対称鍵暗号を用いて構成されるが、その場合は、公開鍵暗号を用いて構成するようにすると良い。その理由を以下に説明する。
 対称鍵暗号を用いて構成されたMKBの場合、一般にMKBを生成する為には、全てのデバイス鍵KDの値を知っている必要がある。ビデオ供給者にMKBの生成を行わせる為には、全てのデバイス鍵KDの値を当該ビデオ供給者に提供する必要がある。もし、このデバイス鍵KDの値が悪意のプレーヤー製造者に漏えいした場合、MKBによるプレーヤーの無効化が実質無意味になる。悪質なまたは粗悪なプレーヤーをMKBを用いて無効化しても、悪意のプレーヤー製造者は、無効化されていないデバイス鍵KDを用いて、幾らでも悪質なまたは粗悪なプレーヤーを製造し続けることが可能であるからである。
 そこに、公開鍵暗号を用いてMKBを構成するメリットがある。公開鍵暗号を用いる場合、デバイス鍵KDは秘密鍵を用いて構成される。プレーヤー製造者は、当該プレーヤー製造者に割り当てられたデバイス鍵KDの値しか知らない。一方、ビデオ供給者には、MKB生成用に公開鍵を配布する。ビデオ供給者は、当該公開鍵を用いて自由にMKBを生成することが可能である。一方、仮にMKB生成用の公開鍵が悪意のプレーヤー製造者に漏えいしても、公開鍵暗号の基本的な性質から、秘密鍵で構成されているデバイス鍵KDの値を知ることはできない。このように、図26におけるMKBは公開鍵暗号に基づいて構成されたMKBであっても良い。
 このように、第3の実施の形態では、一般領域に暗号化データを記憶し、特殊領域に暗号化データを復号するために必要なデータを記憶し、特殊領域のデータを用いて暗号化データを復号して利用できる。これにより、コンテンツ供給者による再生デバイスのリボークが実現可能となる。
 (第4の実施の形態)
 第4の実施の形態では、コンテンツに付随するMKBによるコントローラーの無効化と、暗号化ビデオデータのメモリカード毎の個別化とを組み合わせた実施の形態を説明する。
 図28は、第4の実施の形態のプレーヤー400-2およびメモリカード2601の構成の一例を示すブロック図である。
 図28に示すように、メモリカード2601は、半導体メモリチップ100とコントローラー200-2とを含む。半導体メモリチップ100は、第1の実施の形態または第2の実施の形態で述べた構成を備える。
 第4の実施の形態では、暗号化ビデオデータ2541、暗号化されたMKB2521-2(以下、MKB’という)およびMKB2522(以下、MKB2という)が一般領域115に記録されている。また、MKB’からMKBを復号するためのMKB復号鍵2513(以下、MKB復号鍵KTという)およびメディア鍵変換鍵2512(以下、メディア鍵変換鍵KT2という)が特殊領域(共通領域114)に格納されている。このように、本実施の形態では、メディア鍵変換鍵2511(メディア鍵変換鍵KT)の代わりに、MKBの復号に用いられるMKB復号鍵KTを備えている。
 次に、コントローラー200-2の構成例について説明する。本実施の形態のコントローラー200-2は、第1または第2の実施の形態のコントローラー200の構成に加えて、デバイス鍵KD2610(以下、デバイス鍵KD2という)と、MKB処理部2620と、メディア鍵変換部2630と、ビデオ復号部2640とを備えている。なお、図28では、第1または第2の実施の形態で説明した構成部は図示を省略しているが、コントローラー200-2は、例えば、図7の暗号鍵共有部210-2と図11の読出制御部220-3とを具備している。そして、読み出し特殊領域に格納されている、MKB復号鍵KTおよびメディア鍵変換鍵KT2の読み出しは、暗号鍵共有部210-2と読出制御部220-3とを用いて行われる。
 MKB処理部2620は、一般領域115から読み出されたMKB2をデバイス鍵KD2を用いて処理することによりメディア鍵KM2を導出するMKB処理を実行する。メディア鍵変換部2630は、導出されたメディア鍵KM2を、特殊領域から読み出されたメディア鍵変換鍵KT2を用いて変換した復号鍵Kc2を生成する。ビデオ復号部2640は、復号鍵Kc2を用いて暗号化ビデオデータを復号する。
 次に、プレーヤー400-2の構成例について説明する。プレーヤー400-2は、デバイス鍵410(以下、デバイス鍵KDという)を保持するとともに、MKB処理部420-2と、ビデオ復号部450と、再生部460と、MKB復号部470と、を備えている。
 第4の実施の形態では、MKB復号部470が追加されたこと、MKB処理部420-2の機能、および、鍵復号部440とメディア鍵変換部430が削除されたことが、第3の実施の形態のプレーヤー400と異なっている。
 MKB復号部470は、一般領域115から読み出されたMKB’をMKB復号鍵KTで復号してMKBを生成する。MKB処理部420-2は、生成されたMKBをデバイス鍵KDを用いて処理することによりメディア鍵KMを導出するMKB処理を実行する。
 上述のように、本実施の形態では、一般領域115に2つのMKB(MKBを暗号化したMKB’およびMKB2)が記録されている。MKB’を復号したMKBは、第3の実施の形態と同様にプレーヤー400-2の認証および無効化に用いられる。一方、MKB2は、コントローラー200の認証および無効化に用いられる。
 また、本実施の形態では、特殊領域(共通領域114)はMKB復号鍵KTおよびメディア鍵変換鍵KT2を格納している。MKB復号鍵KTは、プレーヤー400-2用のMKB復号鍵である。メディア鍵変換鍵KT2は、コントローラー200用のメディア鍵変換鍵である。これらの鍵は、メモリカード2601毎に異なっていて良い。鍵とデータとの間の関係は次のようになっている。
 (1)MKBを無効化されていないデバイス鍵KDで処理するとメディア鍵KMが得られる。また、MKB2を無効化されていないデバイス鍵KD2で処理するとメディア鍵KM2が得られる。
(2)(平文の)ビデオデータをC、暗号化ビデオデータをC’とすると、ビデオデータCはメディア鍵KMと復号鍵Kc2で二重に暗号化されている:C’=AES-E(Kc2,AES-E(KM,C))。
(3)MKBはMKB’をMKB復号鍵KTで復号して得られる:MKB=AES-D(KT,MKB’)。
(4)復号鍵Kc2はメディア鍵KM2をメディア鍵変換鍵KT2で変換して得られる:Kc2=AES-G(KT2,KM2)。
(5)暗号化ビデオデータC’の復号過程は次の通り:
 AES-D(KM,AES-D(Kc2,C’))
=AES-D(KM,AES-D(Kc2,AES-E(Kc2,AES-E(KM,C))))
=AES-D(KM,AES-E(KM,C))
=C。
 次に、図28のように構成されたプレーヤー400-2によるメモリカード2601内のデータの再生処理について図29を用いて説明する。図29は、第4の実施の形態における再生処理の全体の流れを示すフローチャートである。
 プレーヤー400-2は、メモリカード2601内のコントローラー200-2に対して、一般領域115に含まれているMKB2の読み出しを指示する(ステップS1101)。例えば、プレーヤー400-2は、コントローラー200-2に対して当該MKB2の先頭アドレスとサイズとを指定する。
 コントローラー200-2は、指定された領域を含むページを半導体メモリチップ100から読み出し、指定された領域のデータ(即ちMKB2の値)をMKB処理部2620に入力する(ステップS1102)。MKB処理部2620は、コントローラー200-2が保持しているデバイス鍵KD2を読み出し、入力されたMKB2をデバイス鍵KD2を用いてMKB処理し、メディア鍵KM2を導出して出力する(ステップS1103)。
 次に、MKB処理部2620は、MKB処理によりメディア鍵KM2が得られたか否かを判断する(ステップS1104)。デバイス鍵KDがMKB2によって無効化されていた場合、MKB処理部2620は正しいメディア鍵KM2を導出することができない。この場合、MKB処理部2620は、メディア鍵KM2が得られなかったと判断し(ステップS1104:No)、エラーを出力する。
 メディア鍵KM2が得られた場合(ステップS1104:Yes)、MKB処理部2620は、メディア鍵KM2をメディア鍵変換部2630に送る(ステップS1105)。メディア鍵変換部2630は、特殊領域(共通領域114)に含まれているメディア鍵変換鍵KT2を読み出す(ステップS1106)。そして、メディア鍵変換部2630は、読み出したメディア鍵変換鍵KT2でメディア鍵KM2を変換した復号鍵Kc2を生成する(ステップS1107)。メディア鍵変換部2630は、生成した復号鍵Kc2をビデオ復号部2640に送信する(ステップS1108)。ビデオ復号部2640は、受信した復号鍵Kcの値を保持する。
 次に、プレーヤー400-2は、コントローラー200-2を介して半導体メモリチップ100の一般領域115からMKB’を読み出し、MKB復号部470に入力する(ステップS1109)。MKB復号部470は、コントローラー200-2を介して半導体メモリチップ100の特殊領域(共通領域114)からMKB復号鍵KTを読み出す(ステップS1110)。次に、MKB復号部470は、読み出したMKB復号鍵KTを用いて、入力されたMKB’を復号し、平文のMKBを得る(ステップS1111)。MKB復号部470は、平文のMKBをMKB処理部420-2に送る(ステップS1112)。
 MKB処理部420-2は、プレーヤー400-2が保持しているデバイス鍵KDを読み出し、入力されたMKBをデバイス鍵KDを用いてMKB処理し、メディア鍵KMを導出する(ステップS1113)。

次に、MKB処理部420-2は、MKB処理によりメディア鍵KMが得られたか否かを判断する(ステップS1114)。デバイス鍵KDがMKBによって無効化されていた場合、MKB処理部420-2は正しいメディア鍵KMを導出することができない。この場合、MKB処理部420-2は、メディア鍵KMが得られなかったと判断し(ステップS1114:No)、エラーを出力する。メディア鍵KMが得られた場合(ステップS1114:Yes)、MKB処理部420-2は、メディア鍵KMをビデオ復号部450に送る(ステップS1115)。
 次に、コントローラー200-2のビデオ復号部2640は、一般領域115から順次暗号化ビデオデータ2541を読み出す(ステップS1116)。ビデオ復号部2640は、保持している復号鍵Kc2を用いて、読み出した暗号化ビデオデータを復号する(ステップS1117)。ビデオ復号部2640は、復号したビデオデータをプレーヤー400-2のビデオ復号部450に送る(ステップS1118)。
 ビデオ復号部450は、復号鍵Kcを用いてビデオデータを順次復号し(ステップS1119)、再生部460に送る(ステップS1120)。再生部460は、受信したビデオデータを順次再生(表示)する(ステップS1121)。
 メディア鍵変換鍵KT2がメモリカード2601毎に異なっていれば、復号鍵Kc2もメモリカード2601毎に異なる。従って、メディア鍵KMまたはメディア鍵変換鍵KT2がメモリカード2601毎に異なっていれば、暗号化ビデオデータ自体がメモリカード2601毎に異なる。即ち、暗号化ビデオデータがメモリカード2601毎に個別化されることになる。
 このように、第4の実施の形態にかかるメモリチップでは、コンテンツに付随するMKBによるコントローラーの無効化(コンテンツ供給者による再生デバイスのリボーク)と、暗号化ビデオデータのメモリカード毎の個別化(コンテンツ供給者によるコントローラーのリボーク)との組み合わせ(二重暗号化)が可能となる。
 (第5の実施の形態)
 これまでは、本発明をコンテンツ保護に適用する実施の形態を述べたが、他の産業分野へ適用することもできる。第5の実施の形態では、スマートグリッドに適用した実施の形態を説明する。スマートグリッドとは、原子力や火力など従来の発電に加えて、太陽光や風力などの再生可能エネルギーを併用する際の電力品質の安定化を図るために構築されている次世代電力網である。
 図30は、第5の実施の形態の次世代電力網の一構成例を示す図である。次世代電力網では、電力使用量を集計するスマートメーター3010aと、家電機器を管理するホームサーバであるHEMS(Home Energy Management System)3020が各家庭に設置される。また、商業ビルを対象として、ビル内の電気機器を管理するサーバであるBEMS(Building Energy Management System)3030がビル毎に設置される。商業ビルには、スマートメーター3010aと同様のスマートメーター3010bが設置される。以下では、スマートメーター3010aおよび3010bを単にスマートメーター3010という。
 スマートメーター3010は、コンセントレータとよばれる中継器(コンセントレータ3040)によって数台ごとにまとめられ、通信網を介してメーターデータ管理システムであるMDMS(Meter Data Management System)3050と通信する。MDMS3050は、各家庭のスマートメーター3010から一定の間隔で電力使用量を受信して記憶する。エネルギー管理システムであるEMS(Energy Management System)3060は、MDMS3050に集まった複数の家庭の電力使用量、或いは、電力系統に設置されたセンサからの情報に基づいて、各家庭のスマートメーター3010やHEMS3020に対して電力使用を抑制するよう要求するなどの電力制御を行う。また、EMS3060は、遠隔端末ユニットであるRTU(Remote Terminal Unit)3071に接続された太陽光発電や風力発電などの分散電源3080、同じくRTU3072に接続された蓄電装置3090、および、RTU3073に接続された発電側との間を制御する送配電制御装置3100を制御し、グリッド全体の電圧および周波数を安定化するための制御を行う。
 図31は、スマートメーター3010の構成例を示すブロック図である。スマートメーター3010は、MDMS3050と暗号通信を行う。通信経路上にコンセントレータ3040が存在するが、コンセントレータ3040は暗号通信を中継するのみである。MDMS3050とスマートメーター3010とは共有鍵Kを保持しており、当該共有鍵Kを用いて暗号通信を行う。
 例えば、計測部3011に接続する通信部3012が、共有鍵Kを用いて計測値を暗号化してMDMS3050に送る。MDMS3050は、保持する共有鍵Kを用いて暗号化された計測値を復号する。これにより、通信路上で通信が傍受されたとしても、傍受者は計測値を知ることができない。或いは、MDMS3050から計測部3011に制御用コマンドが送られる場合がある。例えば、計測の中止や開始、計測データの送付指示などの制御コマンドである。MDMS3050は、共有鍵Kを用いて、制御コマンドを暗号化し、暗号化した制御コマンドをスマートメーター3010の通信部3012に送信する。通信部3012は、共有鍵Kを用いて暗号化制御コマンドを復号し、制御コマンドを計測部3011に送る。或いは、半導体メモリチップ100のメモリ110の一般領域に電力使用量データが格納されており、通信部3012は、共有鍵Kを用いて当該電力使用量データを暗号化し、暗号化電力使用量データをMDMS3050に送信する。MDMS3050は、共有鍵Kを用いて当該暗号化電力使用量データを復号する。
 スマートメーター3010において、共有鍵Kは半導体メモリチップのメモリの特殊領域に格納される。共有鍵Kは、定期的に或いは随時更新されることが望ましい。更新用の共有鍵をK’とする。MDMS3050は、更新用の共有鍵K’を半導体メモリチップ100のメモリ110の書き込み特殊領域に書き込む。その為には既に述べたように、半導体メモリチップ100がMDMS3050によって認証される必要がある。また、スマートメーター3010の通信部3012がコントローラー200を介して(更新された)共有鍵K’を読み出すには、コントローラー200が半導体メモリチップ100によって認証される必要がある。共有鍵の更新と、更新された共有鍵の利用を通じて、結果的に、半導体メモリチップ100を使用するスマートメーター3010全体が、MDMS3050によって認証されることとなる。
 MDMS3050は、例えば、図14の書き込み装置300として、半導体メモリチップ100の書き込み特殊領域に更新用の共有鍵K’を書き込む。また、スマートメーター3010のコントローラー200は、例えば、図7の暗号鍵共有部210-2と図9の読出制御部220-2とを具備している。
 このように、第5の実施の形態では、コンテンツ保護と異なる分野である次世代電力網で用いられるデータに対して、データの不正利用を防止することができる。
 なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
 100 半導体メモリチップ
 110 メモリ
 111 符号記憶部
 112 読み出し特殊領域
 113 書き込み特殊領域
 114 共通領域
 115 一般領域
 120 暗号鍵共有部
 130 送出制御部
 140 データ変換部
 200 コントローラー
 220 読出制御部
 230 書込制御部
 240 一般領域読出部
 250 一般領域書込部
 300 書き込み装置
 310 ECC生成部
 320 鍵記憶部
 330 暗号化部
 340 データ送信部

Claims (9)

  1.  外部装置の要求に応じてデータの読み出しおよび書き込みを制御するコントローラーと接続されるメモリチップであって、
     予め定められたデータの記憶領域である特殊領域を含むメモリと、
     前記外部装置がデータの変換に用いる第1鍵に対応する第2鍵を記憶する鍵記憶部と、
     前記特殊領域に書き込む書込データを前記コントローラーから受信し、前記第2鍵を用いて前記書込データを変換した変換データを生成する変換部と、
     前記変換データを前記特殊領域に書き込む書込部と、
     を備えることを特徴とするメモリチップ。
  2.  前記コントローラーと共有する暗号鍵を用いて、前記特殊領域に書き込まれた前記変換データを暗号化した暗号化データを生成する暗号化部と、
     前記暗号化データを前記コントローラーに送出する送出部と、をさらに備えること、
     を特徴とする請求項1に記載のメモリチップ。
  3.  前記書込データのエラー訂正符号を記憶する符号記憶部をさらに備え、
     前記変換部は、前記書込データのエラー訂正符号が前記第1鍵によって変換された変換符号と、前記第1鍵によって変換された前記書込データとを前記コントローラーから受信し、前記変換符号を前記第2鍵を用いて前記エラー訂正符号に変換し、変換された前記書込データを前記第2鍵を用いて前記書込データに復号した前記変換データを生成し、
     前記書込部は、さらに、復号された前記エラー訂正符号を前記符号記憶部に記憶すること、
     を特徴とする請求項1に記載のメモリチップ。
  4.  前記書込データのエラー訂正符号を記憶する符号記憶部をさらに備え、
     前記変換部は、前記書込データのエラー訂正符号と、前記書込データとを前記コントローラーから受信し、前記第2鍵を用いて前記書込データを前記変換データに変換し、
     前記書込部は、さらに、受信された前記エラー訂正符号を前記符号記憶部に記憶すること、
     を特徴とする請求項1に記載のメモリチップ。
  5.  外部装置の要求に応じてデータの読み出しおよび書き込みを制御するコントローラーと接続されるメモリチップであって、
     予め定められたデータの記憶領域である特殊領域を含むメモリと、
     前記外部装置がデータの変換に用いる第1鍵に対応する第2鍵を記憶する鍵記憶部と、
     前記特殊領域に書き込む書込データを前記コントローラーから受信し、受信した前記書込データを前記特殊領域に書き込む書込部と、
     前記特殊領域に書き込まれた前記書込データを、前記第2鍵を用いて変換した変換データを生成する変換部と、
     を備えることを特徴とするメモリチップ。
  6.  前記コントローラーと共有する暗号鍵を用いて、前記変換データを暗号化した暗号化データを生成する暗号化部と、
     前記暗号化データを前記コントローラーに送出する送出部と、をさらに備えること、
     を特徴とする請求項5に記載のメモリチップ。
  7.  前記書込データのエラー訂正符号を記憶する符号記憶部をさらに備え、
     前記書込部は、前記書込データのエラー訂正符号が前記第1鍵によって変換された変換符号と、前記書込データとを前記コントローラーから受信し、受信した前記変換符号を前記符号記憶部に書き込むとともに、受信した前記書込データを前記特殊領域に書き込み、
     前記変換部は、前記特殊領域に書き込まれた前記変換符号を前記第2鍵を用いて前記エラー訂正符号に復号し、前記特殊領域に書き込まれた前記書込データを前記第2鍵を用いて前記書込データに復号すること、
     を特徴とする請求項5に記載のメモリチップ。
  8.  前記書込データのエラー訂正符号を記憶する符号記憶部をさらに備え、
     前記書込部は、前記書込データのエラー訂正符号と、前記書込データとを前記コントローラーから受信し、受信した前記エラー訂正符号を前記符号記憶部に書き込むとともに、受信した前記書込データを前記特殊領域に書き込むこと、
     を特徴とする請求項5に記載のメモリチップ。
  9.  外部装置の要求に応じてデータの読み出しおよび書き込みを制御するコントローラーと接続されるメモリチップであって、
     予め定められたデータの記憶領域である特殊領域を含むメモリと、
     前記コントローラーと共有する暗号鍵を用いて、前記特殊領域に書き込まれた書込データを暗号化した暗号化データを生成する暗号化部と、
     前記暗号化データを前記コントローラーに送出する送出部と、
     を備えることを特徴とするメモリチップ。
PCT/JP2009/070056 2009-11-27 2009-11-27 メモリチップ WO2011064883A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2010527680A JP5178839B2 (ja) 2009-11-27 2009-11-27 メモリチップ
PCT/JP2009/070056 WO2011064883A1 (ja) 2009-11-27 2009-11-27 メモリチップ
US12/882,979 US8473810B2 (en) 2009-11-27 2010-09-15 Memory chip having a security function and for which reading and writing of data is controlled by an authenticated controller
US13/924,675 US8788907B2 (en) 2009-11-27 2013-06-24 Memory chip for converting data received from controller controlling reading and writing of data
US14/303,704 US9053062B2 (en) 2009-11-27 2014-06-13 Memory chip for converting data received from controller controlling reading and writing of data
US14/700,385 US9355045B2 (en) 2009-11-27 2015-04-30 Memory device for converting data received from controller controlling reading and writing of data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/070056 WO2011064883A1 (ja) 2009-11-27 2009-11-27 メモリチップ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/882,979 Continuation US8473810B2 (en) 2009-11-27 2010-09-15 Memory chip having a security function and for which reading and writing of data is controlled by an authenticated controller

Publications (1)

Publication Number Publication Date
WO2011064883A1 true WO2011064883A1 (ja) 2011-06-03

Family

ID=44066002

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/070056 WO2011064883A1 (ja) 2009-11-27 2009-11-27 メモリチップ

Country Status (3)

Country Link
US (4) US8473810B2 (ja)
JP (1) JP5178839B2 (ja)
WO (1) WO2011064883A1 (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013026747A (ja) * 2011-07-19 2013-02-04 Toshiba Corp 情報処理装置、サーバ装置およびプログラム
JP2013055370A (ja) * 2011-08-31 2013-03-21 Toshiba Corp メモリ装置、装置、ホスト装置、及びシステム
JP2013106162A (ja) * 2011-11-11 2013-05-30 Toshiba Corp ストレージメディア、ホスト装置、メモリ装置、及びシステム
JP2013145998A (ja) * 2012-01-16 2013-07-25 Toshiba Corp ストレージメディア、ホスト装置、メモリ装置、及びシステム
US8634557B2 (en) 2011-12-02 2014-01-21 Kabushiki Kaisha Toshiba Semiconductor storage device
US8661527B2 (en) 2011-08-31 2014-02-25 Kabushiki Kaisha Toshiba Authenticator, authenticatee and authentication method
US8732466B2 (en) 2011-12-02 2014-05-20 Kabushiki Kaisha Toshiba Semiconductor memory device
US8761389B2 (en) 2011-12-02 2014-06-24 Kabushiki Kaisha Toshiba Memory
US8812843B2 (en) 2011-12-02 2014-08-19 Kabushiki Kaisha Toshiba Device and authentication method therefor
JP2014522171A (ja) * 2011-07-22 2014-08-28 ネットフリックス・インコーポレイテッド 暗号化プロトコルの難読化された初期値に対するシステムおよび方法
US8984294B2 (en) 2013-02-15 2015-03-17 Kabushiki Kaisha Toshiba System of authenticating an individual memory device via reading data including prohibited data and readable data
US9166783B2 (en) 2010-10-14 2015-10-20 Kabushiki Kaisha Toshiba Protection method, decryption method, player, storage medium, and encryption apparatus of digital content
US9201811B2 (en) 2013-02-14 2015-12-01 Kabushiki Kaisha Toshiba Device and authentication method therefor

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5139465B2 (ja) * 2010-03-31 2013-02-06 株式会社東芝 メモリチップ、情報記憶システム、読み出し装置
JP5198539B2 (ja) 2010-11-05 2013-05-15 株式会社東芝 記憶装置、アクセス装置およびプログラム
US9391887B2 (en) * 2010-12-27 2016-07-12 Nec Corporation Mapping server, network system, packet forwarding method and program
KR101859646B1 (ko) * 2011-12-16 2018-05-18 삼성전자주식회사 보안 데이터를 보호하는 메모리 장치 및 보안 데이터를 이용한 데이터 보호 방법
EP2653992A1 (en) 2012-04-17 2013-10-23 Itron, Inc. Microcontroller configured for external memory decryption
US20140006738A1 (en) * 2012-06-29 2014-01-02 Kabushiki Kaisha Toshiba Method of authenticating a memory device by a host device
JP5395937B2 (ja) * 2012-09-24 2014-01-22 株式会社東芝 メモリチップ
US9264228B2 (en) * 2013-02-14 2016-02-16 BBPOS Limited System and method for a secure display module
US20140245023A1 (en) * 2013-02-27 2014-08-28 Kabushiki Kaisha Toshiba Device and authentication method therefor
US20150288518A1 (en) * 2014-04-08 2015-10-08 Karl P.W. Wiegand Algorithm-agnostic approach for systematically hardening encryption
JP2015216413A (ja) * 2014-05-07 2015-12-03 日本電気株式会社 端末、サーバ、暗号通信システムおよび暗号通信方法
US10318748B2 (en) * 2016-09-30 2019-06-11 Intel Corporation Techniques to protect fuses against non-destructive attacks
KR20190075363A (ko) * 2017-12-21 2019-07-01 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 모듈
CN110874476B (zh) * 2018-08-31 2024-03-22 阿里巴巴集团控股有限公司 数据处理系统、方法、存储介质和处理器
US11188685B2 (en) * 2019-02-22 2021-11-30 Google Llc Secure transient buffer management
KR102621645B1 (ko) * 2019-03-12 2024-01-05 삼성전자주식회사 보안 집적 회로를 포함하는 전자 장치
CN113051199A (zh) 2019-12-26 2021-06-29 阿里巴巴集团控股有限公司 数据传输方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4757468A (en) * 1982-09-22 1988-07-12 Intel Corporation Authenticated read-only memory
JPH01162957A (ja) * 1987-12-18 1989-06-27 Hitachi Ltd 半導体記憶装置
JP2006350782A (ja) * 2005-06-17 2006-12-28 Fujitsu Ltd プロセッサ及びシステム
JP2007220211A (ja) * 2006-02-16 2007-08-30 Fujitsu Ltd 半導体メモリ
JP2008524969A (ja) * 2004-12-21 2008-07-10 サンディスク コーポレーション イン−ストリームデータ暗号化/復号の機能を有するメモリシステム
JP2008524754A (ja) * 2004-12-21 2008-07-10 サンディスク コーポレーション イン−ストリームデータの暗号化/復号およびエラー訂正の機能を有するメモリシステム

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694412A (en) 1982-09-22 1987-09-15 Intel Corporation Random number generator for use in an authenticated read-only memory
WO2004077300A1 (ja) * 1992-01-22 2004-09-10 Yoshimasa Kadooka Icメモリカード及びそのデータ保護方法
US6246767B1 (en) * 1995-04-03 2001-06-12 Scientific-Atlanta, Inc. Source authentication of download information in a conditional access system
DE19757651B4 (de) * 1997-12-15 2005-06-23 Francotyp-Postalia Ag & Co. Kg Frankiermaschine mit einer Chipkarten-Schreib-/Leseeinheit
US6665240B1 (en) * 1998-10-07 2003-12-16 Sony Corporation Apparatus and method for manufacturing optical disks, apparatus and method for recording data on optical disks, apparatus and method for reproducing data from optical disks, and optical disk
KR100722172B1 (ko) * 1999-03-03 2007-05-29 소니 가부시끼 가이샤 데이터 처리 장치, 데이터 처리 방법, 단말장치 및 데이터처리 장치의 전송 방법
US6820203B1 (en) * 1999-04-07 2004-11-16 Sony Corporation Security unit for use in memory card
JP3389186B2 (ja) * 1999-04-27 2003-03-24 松下電器産業株式会社 半導体メモリカード及び読み出し装置
JP3550509B2 (ja) * 1999-05-26 2004-08-04 松下電器産業株式会社 画像記録再生装置と画像再生装置と不正利用防止方法
JP3815950B2 (ja) * 1999-06-15 2006-08-30 松下電器産業株式会社 デジタルデータ書込装置、デジタルデータ記録装置、デジタルデータ利用装置
US6898709B1 (en) * 1999-07-02 2005-05-24 Time Certain Llc Personal computer system and methods for proving dates in digital data files
US6529883B1 (en) * 1999-08-20 2003-03-04 Motorola, Inc. Prepayment energy metering system with two-way smart card communications
US7203312B1 (en) * 1999-08-30 2007-04-10 Fujitsu Limited Data reproduction apparatus and data reproduction module
US7376827B1 (en) * 1999-11-05 2008-05-20 Cisco Technology, Inc. Directory-enabled network elements
JP2001175606A (ja) * 1999-12-20 2001-06-29 Sony Corp データ処理装置、データ処理機器およびその方法
JP4710132B2 (ja) * 2000-12-26 2011-06-29 ソニー株式会社 情報処理システム、および情報処理方法、並びにプログラム記録媒体
US7234063B1 (en) * 2002-08-27 2007-06-19 Cisco Technology, Inc. Method and apparatus for generating pairwise cryptographic transforms based on group keys
JP4079319B2 (ja) * 2002-12-25 2008-04-23 インターナショナル・ビジネス・マシーンズ・コーポレーション 識別情報生成装置、識別情報解決装置及びこれらを用いた情報システム、並びに、これらの制御方法及びプログラム
US6826663B2 (en) * 2003-01-13 2004-11-30 Rambus Inc. Coded write masking
WO2004063906A2 (en) * 2003-01-13 2004-07-29 Rambus Inc. Coded write masking
US8351914B2 (en) * 2003-08-29 2013-01-08 Sony Mobile Communications Ab Method and system for registration of licensed modules in mobile devices
CN100378637C (zh) * 2003-11-19 2008-04-02 松下电器产业株式会社 记录媒体存取装置以及记录媒体存取方法
US7890992B2 (en) * 2004-08-19 2011-02-15 Cisco Technology, Inc. Method and apparatus for selection of authentication servers based on the authentication mechanisms in supplicant attempts to access network resources
US8074266B2 (en) * 2004-08-20 2011-12-06 Mitsubishi Electric Corporation Memory card, data exchange system, and data exchange method
US20060239450A1 (en) 2004-12-21 2006-10-26 Michael Holtzman In stream data encryption / decryption and error correction method
US8396208B2 (en) 2004-12-21 2013-03-12 Sandisk Technologies Inc. Memory system with in stream data encryption/decryption and error correction
US20070180539A1 (en) 2004-12-21 2007-08-02 Michael Holtzman Memory system with in stream data encryption / decryption
US7304873B1 (en) * 2005-01-25 2007-12-04 Netlogic Microsystems, Inc. Method for on-the-fly error correction in a content addressable memory (CAM) and device therefor
US7577850B2 (en) * 2005-04-15 2009-08-18 Lsi Corporation Security application using silicon fingerprint identification
US9171187B2 (en) * 2005-05-13 2015-10-27 Nokia Technologies Oy Implementation of an integrity-protected secure storage
US7596812B2 (en) * 2005-06-14 2009-09-29 Motorola, Inc. System and method for protected data transfer
US8200961B2 (en) * 2006-11-19 2012-06-12 Igware, Inc. Securing a flash memory block in a secure device system and method
US8301912B2 (en) * 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4757468A (en) * 1982-09-22 1988-07-12 Intel Corporation Authenticated read-only memory
JPH01162957A (ja) * 1987-12-18 1989-06-27 Hitachi Ltd 半導体記憶装置
JP2008524969A (ja) * 2004-12-21 2008-07-10 サンディスク コーポレーション イン−ストリームデータ暗号化/復号の機能を有するメモリシステム
JP2008524754A (ja) * 2004-12-21 2008-07-10 サンディスク コーポレーション イン−ストリームデータの暗号化/復号およびエラー訂正の機能を有するメモリシステム
JP2006350782A (ja) * 2005-06-17 2006-12-28 Fujitsu Ltd プロセッサ及びシステム
JP2007220211A (ja) * 2006-02-16 2007-08-30 Fujitsu Ltd 半導体メモリ

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9166783B2 (en) 2010-10-14 2015-10-20 Kabushiki Kaisha Toshiba Protection method, decryption method, player, storage medium, and encryption apparatus of digital content
JP2013026747A (ja) * 2011-07-19 2013-02-04 Toshiba Corp 情報処理装置、サーバ装置およびプログラム
JP2016129403A (ja) * 2011-07-22 2016-07-14 ネットフリックス・インコーポレイテッドNetflix, Inc. 暗号化プロトコルの難読化された初期値に対するシステムおよび方法
JP2014522171A (ja) * 2011-07-22 2014-08-28 ネットフリックス・インコーポレイテッド 暗号化プロトコルの難読化された初期値に対するシステムおよび方法
US8661527B2 (en) 2011-08-31 2014-02-25 Kabushiki Kaisha Toshiba Authenticator, authenticatee and authentication method
US9225513B2 (en) 2011-08-31 2015-12-29 Kabushiki Kaisha Toshiba Authenticator, authenticatee and authentication method
US10361850B2 (en) 2011-08-31 2019-07-23 Toshiba Memory Corporation Authenticator, authenticatee and authentication method
US10361851B2 (en) 2011-08-31 2019-07-23 Toshiba Memory Corporation Authenticator, authenticatee and authentication method
US9887841B2 (en) 2011-08-31 2018-02-06 Toshiba Memory Corporation Authenticator, authenticatee and authentication method
JP2013055370A (ja) * 2011-08-31 2013-03-21 Toshiba Corp メモリ装置、装置、ホスト装置、及びシステム
KR101536086B1 (ko) * 2011-08-31 2015-07-24 가부시끼가이샤 도시바 인증장치, 피인증장치, 및 인증 방법
US8650393B2 (en) 2011-11-11 2014-02-11 Kabushiki Kaisha Toshiba Authenticator
US9100187B2 (en) 2011-11-11 2015-08-04 Kabushiki Kaisha Toshiba Authenticator
JP2013106162A (ja) * 2011-11-11 2013-05-30 Toshiba Corp ストレージメディア、ホスト装置、メモリ装置、及びシステム
US8855297B2 (en) 2011-12-02 2014-10-07 Kabushiki Kaisha Toshiba Device and authentication method therefor
US8634557B2 (en) 2011-12-02 2014-01-21 Kabushiki Kaisha Toshiba Semiconductor storage device
US8732466B2 (en) 2011-12-02 2014-05-20 Kabushiki Kaisha Toshiba Semiconductor memory device
US8812843B2 (en) 2011-12-02 2014-08-19 Kabushiki Kaisha Toshiba Device and authentication method therefor
US8761389B2 (en) 2011-12-02 2014-06-24 Kabushiki Kaisha Toshiba Memory
US8990571B2 (en) 2012-01-16 2015-03-24 Kabushiki Kaisha Toshiba Host device, semiconductor memory device, and authentication method
US9160531B2 (en) 2012-01-16 2015-10-13 Kabushiki Kaisha Toshiba Host device, semiconductor memory device, and authentication method
JP2013145998A (ja) * 2012-01-16 2013-07-25 Toshiba Corp ストレージメディア、ホスト装置、メモリ装置、及びシステム
US8667286B2 (en) 2012-01-16 2014-03-04 Kabushiki Kaisha Toshiba Host device, semiconductor memory device, and authentication method
US9201811B2 (en) 2013-02-14 2015-12-01 Kabushiki Kaisha Toshiba Device and authentication method therefor
US8984294B2 (en) 2013-02-15 2015-03-17 Kabushiki Kaisha Toshiba System of authenticating an individual memory device via reading data including prohibited data and readable data

Also Published As

Publication number Publication date
US20140298043A1 (en) 2014-10-02
JP5178839B2 (ja) 2013-04-10
US8473810B2 (en) 2013-06-25
US20110131470A1 (en) 2011-06-02
US20130290738A1 (en) 2013-10-31
US9355045B2 (en) 2016-05-31
US8788907B2 (en) 2014-07-22
US20150234752A1 (en) 2015-08-20
US9053062B2 (en) 2015-06-09
JPWO2011064883A1 (ja) 2013-04-11

Similar Documents

Publication Publication Date Title
JP5178839B2 (ja) メモリチップ
JP5139465B2 (ja) メモリチップ、情報記憶システム、読み出し装置
EP1416662B1 (en) Apparatus and method for key renewal in a hierarchical key tree structure
JP5406199B2 (ja) 記録再生システム、記録媒体装置及び記録再生装置
KR100859622B1 (ko) 정보 처리 시스템 및 방법
WO2011111370A1 (ja) 記録システム、再生システム、鍵配信サーバ、記録装置、記録媒体装置、再生装置、記録方法、及び、再生方法
WO2002056535A1 (fr) Appareil et procede permettant d'enregistrer et de reproduire des informations
WO2001099331A1 (en) System and method for processing information using encryption key block
JP5159916B2 (ja) ホスト
WO2001078298A1 (fr) Systeme et procede de traitement d'informations
AU3935600A (en) Digital data recording device, digital data memory device, and digital data utilizing device for converting management information which contains restrictive information using a different key in each management information send/receive session
US8693694B2 (en) Information recording device
WO2005109740A1 (ja) Icカード
WO2007007764A1 (ja) ライセンス管理装置及び方法
JP5050114B1 (ja) 情報記録装置
JP2004320719A (ja) 著作物保護システム、鍵データ生成装置及び端末装置
CN104704770A (zh) 合作服务提供系统以及服务器装置
JP2012165130A (ja) 通信装置および鍵算出装置
JP5118543B2 (ja) Avデータ送信装置、avデータ受信装置及びavデータ送受信システム
WO2010119549A1 (ja) コンテンツデータ再生システム、及び記録装置
JP5395937B2 (ja) メモリチップ
US8929547B2 (en) Content data reproduction system and collection system of use history thereof
JP5458026B2 (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法、プログラム
JP2010146635A (ja) コンテンツ記録再生装置並びにコンテンツの書き込み及び読み出し方法
JP5499145B2 (ja) 認証システム、及びメディア

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2010527680

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 09851674

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09851674

Country of ref document: EP

Kind code of ref document: A1