Patent ID: 7469837
Filing Date: 2008-12-30
Classification: G06F,H04L

Abstract:
1. A storage device comprising: an interface for connecting to an external host apparatus; an IC card function module configured to store application programs and execute the application programs; a non-volatile memory having a data block allocated to each of the application programs and being configured to store, into the block, data relating to each of the application programs; and a memory controller connected to the interface, the IC card function module, and the non-volatile memory, and having a cryptographic processing circuit and a volatile storage circuit, wherein the IC card function module, non-volatile memory, and memory controller are formed on different chips, the IC card function module is not directly connected to either the non-volatile memory or the host apparatus, and is configured to transmit/receive data to/from the non-volatile memory via the memory controller and transmit/receive data to/from the host apparatus via the memory controller and the interface, the host apparatus and the IC card function module are configured to transmit/receive, to/from each other via the interface and the memory controller, a host random generated by the host apparatus and a card random generated by the IC card function module, and to use an authentication key of the host apparatus and an authentication key of the IC card function module to execute encryption and decryption, thereby authenticating each other, the IC card function module is configured to generate, from the host random and the card random used for authentication, a shared key to be shared with the host apparatus and the IC card function module, and reserves the shared key, the memory controller is configured to transmit, in response to a first command received from the host apparatus via the interface, an IC card command corresponding to the first command to the IC card function module; to detect, in response to a block selection request containing an application ID of one of the application programs in the IC card function module, whether the block in the non-volatile memory corresponding to the ID of the application program received from the IC card function module is present or not; to transmit, when the block corresponding to the ID application of one of the application programs is detected, a transmission command to the IC card function module; and to set, in response to an address range allowed to access the shared key and the host apparatus, the shared key and the address range received from the IC card function module to the volatile storage circuit, and the memory controller is configured to encrypt or decrypt the data transmitted between the address range on the non-volatile memory and the host apparatus using the shared key by the cryptographic processing circuit, in response to a second command received from the host apparatus via the interface.