WO2006120938A1 - メモリカード、アプリケーションプログラム保持方法、及び保持プログラム - Google Patents

メモリカード、アプリケーションプログラム保持方法、及び保持プログラム Download PDF

Info

Publication number
WO2006120938A1
WO2006120938A1 PCT/JP2006/308976 JP2006308976W WO2006120938A1 WO 2006120938 A1 WO2006120938 A1 WO 2006120938A1 JP 2006308976 W JP2006308976 W JP 2006308976W WO 2006120938 A1 WO2006120938 A1 WO 2006120938A1
Authority
WO
WIPO (PCT)
Prior art keywords
application program
unit
tamper
program
storage unit
Prior art date
Application number
PCT/JP2006/308976
Other languages
English (en)
French (fr)
Inventor
Yoshiko Nishimura
Kazuyuki Kashiwabara
Eiji Kawahara
Original Assignee
Matsushita Electric Industrial Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to EP06745835A priority Critical patent/EP1881437A1/en
Priority to JP2007528241A priority patent/JP4860619B2/ja
Priority to US11/912,351 priority patent/US7953985B2/en
Publication of WO2006120938A1 publication Critical patent/WO2006120938A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • G06Q20/3558Preliminary personalisation for transfer to user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0806Details of the card
    • G07F7/0813Specific details related to card security
    • G07F7/082Features insuring the integrity of the data on or in the card

Definitions

  • the present invention relates to a memory card that holds an application program.
  • SD cards smart secure digital memory cards
  • FIG. 1A is a diagram showing a hardware configuration of a general secure memory card.
  • Figure 1
  • the secure memory card 100 includes a Read Only Memory (ROM) 103, a Random Access Memory (RAM) 102, a Central Processing Unit (CPU) 104, and a nonvolatile memory group 101.
  • the ROM 103 stores an application program.
  • the RAM 102 temporarily stores data used when executing the application program.
  • the CPU 104 executes processing for various commands according to the application program.
  • the nonvolatile memory group 101 stores an application program downloaded from an external card of the memory card.
  • the non-volatile memory group 101 includes a Ferroelectric RAM (FeRAM) 106 in a tamper resistant module (TRM) 107, a secure flash 108 outside the TRM 107, and a flash memory 109 outside the TRM 107. It consists of. SECURE FLASH 108 is a flash memory with enhanced security strength using the functions of TRM107.
  • FeRAM Ferroelectric RAM
  • TRM tamper resistant module
  • FIG. 1B is a diagram showing the security strength of the three nonvolatile memories that constitute the nonvolatile memory group 101. As shown in Fig. 1 (B), the security strength of the flash memory 109, which has the strongest security strength of the FeRAM 106 in the TRM 107, and the strongest security strength of the secure flash 108, is the weakest.
  • the application program stored in the TRM107 area without deleting the application program is moved to the flash memory 109 in the secure memory card 100 while ensuring the security strength required by the service provider. Therefore, there is a need for a mechanism that allows more application programs to be stored in one secure memory card 100 by returning to the TRM107 area as necessary.
  • Patent Document 1 discloses an invention that allocates a storage area of an application program according to the security level of the downloaded application program.
  • Patent Document 1 Japanese Patent Laid-Open No. 2002-229861
  • the application program is distributed and stored in either the TRM area or the flash memory at the time of downloading according to the security level of the downloaded application program.
  • decrypt the downloaded application program in an encrypted state and then store the decrypted application program in the TRM area. It is encrypted using the secret information key stored and stored in flash memory.
  • the security level in the secure memory card is the lowest and the application program is stored in the flash memory
  • the application program is encrypted using the secret information key in the secure memory card. Therefore, the downloaded application program cannot be stored in the flash memory while maintaining the security strength required by the service provider that provides the application program.
  • the present invention maintains its security strength as required by the service provider.
  • the object is to provide a memory card that stores application programs downloaded from service providers in flash memory.
  • a memory card of the present invention is a memory card that receives an encrypted application program downloaded to a host device, and has a tamper-proof function.
  • the IC card unit includes an integrated circuit (IC) card unit and a flash memory unit, and the IC card unit is encrypted from the tamper-resistant storage unit and the host device, and the application program is encrypted.
  • the program acquisition unit for acquiring the size at the time of decryption and the size at the time of decryption, and the free size of the acquired tamper-resistant storage unit and the size of the obtained application program at the time of encryption!
  • the tamper-resistant storage unit or the flash memory unit is selected as a storage destination area, and the acquired area is selected in the selected area.
  • the size of the storage control unit that stores the encrypted application program and the size of the application program stored in the tamper resistant storage unit when the application program is executed and when the application program to be executed is decrypted.
  • a migration control unit that moves an application program stored in the tamper resistant storage unit to an arbitrary encrypted program stored in the tamper resistant storage unit when the free capacity of the tamper resistant storage unit is exceeded, and the execution An execution unit that decrypts and executes the target application program.
  • the memory card of the present invention can store the application program downloaded by the service provider in the flash memory while maintaining the security strength required by the service provider.
  • the storage control unit stores the application program in the tamper resistant storage unit when the size of the acquired application program at the time of encryption is equal to or less than a free capacity of the tamper resistant storage unit. If the size at the time of encryption exceeds the free space, the application program is stored in the flash memory unit.
  • the storage control unit may be stored in the tamper-resistant storage unit and stored in the tamper-resistant storage unit when the size of the acquired application program at the time of encryption exceeds the free capacity of the tamper-resistant storage unit.
  • the application program that is encrypted is flashed. Move to memory.
  • the execution unit moves the encrypted application program to be executed to the flash memory unit.
  • the movement control unit adds the size of the execution target application program when decrypted and the size when encrypted
  • the application capacity exceeds the free capacity of the tamper resistant storage unit
  • an arbitrary encrypted application program stored in the tamper resistant storage unit is moved to the flash memory unit, and the execution target application program Is copied to the tamper-resistant storage unit.
  • the movement control unit determines that the size of the execution target application program when decrypted is the free capacity of the tamper resistant storage unit. If it exceeds, the application program stored in the tamper-resistant storage unit is arbitrarily encrypted and moved to the flash memory unit, and the execution target application program is decrypted, so that Store in the tamper storage.
  • the movement control unit generates access history management information for each application program based on the execution history of the application program, and the IC card unit further generates the access history management information according to the access history management information.
  • the program acquisition unit acquires information unique to the host device, and the IC force generation unit further generates an encryption key using the acquired information specific to the host device.
  • the tamper-resistant storage unit, and an additional encryption key unit that encrypts the application program to be moved to the flash memory unit using the encryption key, and the movement control described above.
  • the unit may delete the encryption key after the encryption is completed, and move the application program to be moved that has been double-encrypted by the encryption key to the flash memory unit.
  • the IC card unit further stores an application program that is double-encrypted by the encryption key stored in the flash memory unit.
  • the copy control unit has an additional decryption unit that decrypts the application program to be copied with the encryption key generated by the key generation unit.
  • the encryption key may be deleted, and the application program to be copied may be stored in the tamper resistant storage unit.
  • the present invention is realized as an application program holding method including steps as characteristic constituent means of the memory card of the present invention, or realized as a holding program for causing a computer to execute these steps. It can also be realized as an integrated circuit including typical components.
  • the above holding program can be distributed via a recording medium such as a CD-ROM or a transmission medium such as a communication network. The invention's effect
  • the present invention can provide a memory card that stores an application program downloaded from a service provider in a flash memory while maintaining the security strength required by the service provider.
  • Fig. 1 is a hardware configuration diagram of a general secure memory card
  • Fig. 1 (B) is a FeRAM, a secure flash, and a flash configuring a non-volatile memory group. It is a figure which shows the security strength of memory.
  • FIG. 2 is an overview of the entire system in the first embodiment.
  • FIG. 3 is an overview of a general secure memory card.
  • FIG. 4 is a block configuration diagram of an SD card in the first embodiment.
  • FIG. 5 is a block configuration diagram of the TRM 204 of the SD card in the first embodiment.
  • FIG. 6 is a diagram showing an example of history management information in the first embodiment.
  • FIG. 7 is a diagram showing an example of program management information in the first embodiment.
  • FIG. 8 is a diagram showing a migration process flow of an application program when the application program is downloaded in the first embodiment.
  • FIG. 9 is a diagram showing a flow of an application program migration process in an application program download process when there is a decrypted application program on the RAM.
  • FIG. 10 is a diagram showing a process flow when executing an application program stored in RAM according to the first embodiment.
  • FIG. 11 is a diagram showing a process flow when an application program moved to the large-capacity nonvolatile memory in the first embodiment is executed.
  • FIG. 12 is a diagram showing an example of application program information provided by the service provider in the first embodiment.
  • FIG. 13 (A) is a diagram showing program management information after the completion of download processing of application program A in Embodiment 1
  • FIG. 13 (B) is an application program in Embodiment 1. It is a figure which shows the state of RAM after the download process of A is completed.
  • FIG. 14 (A) is a diagram showing program management information after the completion of download processing of application program B in the first embodiment
  • FIG. 14 (B) is a diagram showing application programs in the first embodiment
  • FIG. 5B is a diagram showing a state of RAM after the download process of B is completed.
  • FIG. 15 (A) is a diagram showing program management information after execution of application program B in the first embodiment
  • FIG. 15 (B) is a diagram showing execution of application program B in the first embodiment. It is a figure which shows the state of RAM after.
  • FIG. 16 is a diagram showing program management information after the completion of download processing of application program C in the first embodiment
  • FIG. 16 (B) is an application program in the first embodiment. It is a figure which shows the state of RAM after the completion of C download processing.
  • FIG. 17 (A) is a diagram showing the program management information after the application program A is determined as a movement target in executing the application program C in the first embodiment.
  • the RAM in the RAM after the application program A is determined to be moved It is a figure which shows a state.
  • FIG. 18 (A) is a diagram showing program management information after application program B is also determined as a movement target in execution of application program C in the first embodiment.
  • FIG. 19 (A) is a diagram showing program management information after application program A and application program B are deleted from RAM in executing application program C in the first embodiment.
  • FIG. 19B is a diagram showing the state of the RAM after the application program A and the application program B are deleted in executing the execution program C in the first embodiment.
  • FIG. 20 (A) is a diagram showing program management information after application program C is deleted from RAM during execution of application program B in the first embodiment.
  • FIG. 5 is a diagram showing a state of RAM after application program C is deleted in executing application program B in the first embodiment.
  • FIG. 21 (A) is a diagram showing program management information after execution of application program B in the first embodiment
  • FIG. 21 (B) is a diagram showing execution of application program B in the first embodiment. It is a figure which shows the state of RAM after.
  • FIG. 22 is a block configuration diagram of an SD card in the second embodiment.
  • FIG. 2 shows an overview of the entire system in the first embodiment.
  • the secure memory card is an SD card.
  • the SD card 203 of the first embodiment is connected to a host device 202 such as a mobile phone via an SD interface (hereinafter referred to as “SDI / F” t) 207 and is tamper resistant.
  • SDI / F SD interface
  • the host device 202 is not limited to a mobile phone, and may be any device as long as it is a device having SDIZF.
  • FIG. 3 is an overview of a general secure memory card.
  • the secure memory card 301 includes a TRM 304 having an internal nonvolatile memory 306, a large-capacity nonvolatile memory 305 having a secure area 307, an authentication area 308, and an unauthenticated area 309, and an internal nonvolatile memory.
  • Authenticate by communicating with the internal CPU 303 that accesses the memory 306 and secure area 307 and the external CPU 300 of the electronic device (read Z write (RZW) device).
  • RZW read Z write
  • the internal nonvolatile memory 306 of the TRM 304 is, for example, an electronically erasable and programmable ROM (EEP ROM) capable of erasing and writing data in units of 1 byte.
  • EEP ROM electronically erasable and programmable ROM
  • the large-capacity nonvolatile memory 305 is a flash memory capable of erasing data in block units such as 64 kilobytes and writing data in 1-byte units.
  • the external CPU 300 can access the non-authentication area 309 unconditionally.
  • the external CPU 300 can access the authentication area 308 only when authentication by the control unit 302 is completed.
  • the external CPU 300 cannot know the existence of the secure area 307 and the internal nonvolatile memory 306 and cannot directly access them.
  • Only the internal CPU 303 can access the secure area 307 and the internal nonvolatile memory 306.
  • the difference between the secure area 307 and the internal nonvolatile memory 306 is that the internal nonvolatile memory 306 is provided in the TRM 304, whereas the secure area 307 is provided in the large-capacity nonvolatile memory 305 outside the TRM 304. This is the point. Therefore, the secure area 307 is larger than the internal nonvolatile memory 306 and can have a storage capacity, but at the security level, it is lower than the internal nonvolatile memory 306 provided in the TRM 304. As shown in FIG. 3, the security levels of these four areas increase in the order of the authentication area 308, the secure area 307, and the internal non-volatile memory 306 in which the non-authentication area 309 is the lowest.
  • FIG. 1 (A) A comparison relationship between the nonvolatile memory group 101 in FIG. 1 (A) and FIG. 3 is as follows.
  • FeRAM 106 in Fig. 1 (A) corresponds to the internal nonvolatile memory 306 in Fig. 3
  • secure flash 108 in Fig. 1 (A) corresponds to secure area 307 in Fig. 3
  • flash memory 109 in Fig. 1 (A) Corresponds to the authentication area 308 and the non-authentication area 309 in FIG.
  • FIG. 4 is a diagram showing a block configuration of the SD card 203 in the first embodiment.
  • the SD force 203 includes an SD card controller unit 206, a TRM 204, and a large-capacity nonvolatile memory 205 specified by the SD standard.
  • SD card controller 206 is the host device 20
  • the TRM204 is an IC card unit with a tamper-proof function.
  • As the large-capacity nonvolatile memory 205 for example, a flash memory is used.
  • the TRM 204 includes a program acquisition unit 400, a program management unit 401, a history management unit 402, a storage control unit 403, a movement control unit 404, an IC card Operating System (OS) 405, a RAM 406, and a disclosure.
  • a key storage unit 407, a decryption key unit 408, and an execution unit 409 are included.
  • the TR M204 further includes a reread unit 410 and a delete unit 411 that are not shown in FIG. The reread unit 410 and the deletion unit 411 will be described later with reference to FIG.
  • the program acquisition unit 400 acquires the application program 420, which is also downloaded by the service provider, via the SD card controller unit 206.
  • the downloaded application program 420 is encrypted with the security strength required by the service provider.
  • the program management unit 401 includes a program ID for uniquely identifying an application program stored in the RAM 406, an application program stored in the large-capacity nonvolatile memory 205, and a storage destination of the application program. to manage.
  • the application program is stored in the RAM 406 or the large-capacity nonvolatile memory 205.
  • the history management unit 402 manages the access history of the application program.
  • the storage control unit 403 stores the application program acquired by the program acquisition unit 400 in the program storage area 406a of the RAM 406.
  • the movement control unit 404 moves the application program to be moved from the program storage area 406 a of the RAM 406 to the large-capacity nonvolatile memory 205.
  • the RAM 406 has a program storage area 406a for storing an application program downloaded from the host device 202 as it is, that is, in an encrypted state.
  • the RAM 406 also stores the decrypted application program. That is, the RAM 406 decodes the application program 421 read from the program storage area 406a or the application program 423 read from the large-capacity nonvolatile memory 205 in addition to the program storage area 406a.
  • Area (second area) Have.
  • the decrypted application program 422 is held in the second area of the RAM 406.
  • the program storage area 406a and the second area are not fixed areas.
  • the public key storage unit 407 holds a public key for decrypting the encrypted application program.
  • the decryption unit 408 decrypts the encrypted application program with the public key held by the public key storage unit 407.
  • the execution unit 409 executes the decrypted application program 422.
  • FIG. 5 is a block diagram of a configuration unit that executes migration of application programs in the TRM 204.
  • the TRM 204 includes a program management unit 401, a history management unit 402, a storage control unit 403, a movement control unit 404, an execution unit 409, a reread unit 410, and a deletion unit 411.
  • the movement control unit 404 includes a time information acquisition unit 503, a movement determination unit 505, and a temporary storage unit 507.
  • the time information acquisition unit 503 acquires time information from the host device 202 via the SDIZF 207.
  • the time information acquisition unit 503 may acquire the current time every time the application program is accessed.
  • the time information acquisition unit 503 acquires the current time at the time of downloading the application program, calculates the elapsed time from the CPU clock in the SD card 203, and calculates the time when the application program was downloaded. You can get the time to access the application program by adding the elapsed time!
  • the method for acquiring the current time by the time information acquisition unit 503 is not limited.
  • Temporary storage unit 507 temporarily stores information such as the data size at the time of encryption and the data size at the time of decryption of the application program to be downloaded that is notified at the start of download.
  • FIG. 6 is a diagram illustrating an example of history management information 509 managed by the history management unit 402.
  • the history management information 509 includes a program ID for uniquely identifying an application program, a last access date indicating the last access date to the application program, and an application immediately before the last access date.
  • the last access date indicating the date of access to the program, and the elapsed date from the previous access date to the last access date It consists of 4 items with access intervals indicating numbers.
  • FIG. 7 is a diagram showing an example of the program management information 510 managed by the program management unit 401.
  • the program management information 510 includes a program ID for uniquely identifying an application program, a storage location of the application program, a size when the application program is encrypted, and a decryption of the application program.
  • Time size a migration flag indicating that the application program is determined to be migrated from the program storage area 406a to the large-capacity nonvolatile memory 205, and a decryption flag for the application program to be executed when the application program is executed. It consists of a decrypted flag indicating that ⁇ is completed.
  • the application program is stored in the TRM 204 (RAM 406) or the large-capacity nonvolatile memory 205. “1” (ON) is described in the migration flag of the application program determined as the migration target from the program storage area 406a to the large-capacity nonvolatile memory 205. “1” is described in the decryption completion flag of the application program that has been decrypted.
  • the movement determination unit 505 includes information such as the current time acquired from the time information acquisition unit 503, the data size at the time of encryption and the data size at the time of decryption of the application program held in the temporary storage unit 507, Using the history management information 509 acquired from the history management unit 402 and the program management information acquired from the program management unit 401, an application program to be transferred from the TRM 204 to the large-capacity nonvolatile memory 205 is determined.
  • a procedure for determining an application program to be moved from the TRM 204 to the large-capacity nonvolatile memory 205 is shown below.
  • the movement determination unit 505 acquires the program management information 510 from the program management unit 401. Get the current available RAM 406 capacity from the size.
  • the movement determination unit 505 determines the data size when the application program 420 to be downloaded stored in the temporary storage unit 507 is encrypted and the free space of the RAM 406 acquired previously. Compare. Download Target application program 420 has encrypted data size of RAM406 empty If the maximum capacity is exceeded, the program storage area 406a is saved and one of the application programs 421 is transferred to the large-capacity nonvolatile memory 205.
  • the movement determination unit 505 compares the data size at the time of decoding the application program to be executed with the free capacity of the RAM 406. When the capacity of the application program 422 at the time of decryption exceeds the free space of the RAM 406, the process shifts to the process of moving one of the application programs 421 stored in the program storage area 406a to the large-capacity nonvolatile memory 205. To do.
  • the movement determination unit 505 acquires the current time from the time information acquisition unit 503.
  • the movement determination unit 505 makes an inquiry to the program management unit 401, and acquires the ID of the application program whose storage destination is TRM 204 in the program management information 510.
  • the movement determination unit 505 makes an inquiry to the history management unit 402 and acquires the history management information 509.
  • the movement determination unit 505 determines that the application program with the oldest last access date is the application program to be moved, and sets it as the movement target from the program ID extracted from the result of the inquiry to the previous program management unit 401. Get the ID of the determined application program and the data size when encrypting the application program.
  • the movement determination unit 505 sets the movement flag of the program management information 510 to ON (1) for the application program determined to be moved to the program management unit 401, and sets the storage destination to the large-capacity nonvolatile memory. Instruct to update to 205.
  • the movement determination unit 505 adds the data size at the time of encryption of the application program determined as the movement target to the free space in the RAM 406, and is sufficient for downloading the application program or decoding the application program. Check whether the RAM 406 has enough free space. If a sufficient amount of free space in the RAM 406 cannot be secured even if one application program is moved to the large-capacity nonvolatile memory 205, the movement determination unit 505 makes an inquiry to the program management unit 401 and the history management unit 402 again, Extracts the ID of the application program to be moved to the large-capacity nonvolatile memory 205. The movement determination unit 505 is an application program to be downloaded or executed. The extraction of the ID of the application program to be moved to the large-capacity nonvolatile memory 205 is repeated until the RAM 406 area necessary for decoding the case program can be secured.
  • the movement determination unit 505 notifies the movement control unit 404 of the ID of the application program whose movement flag is ON (1) in the program management information 510.
  • the movement control unit 404 copies the application program having the program ID notified from the movement determination unit 505 to the large-capacity nonvolatile memory 205.
  • the movement control unit 404 turns off all the movement flags of the program management information 510 to the program management unit 401 via the movement determination unit 505 (0).
  • the movement control unit 404 deletes the application program 421 that has been copied to the large-capacity nonvolatile memory 205.
  • the deletion unit 411 deletes the application program 422 that has been decrypted and is no longer an execution target.
  • the execution unit 409 executes the decrypted application program 422.
  • the reread unit 410 When executing the application program 423 that has been moved to the large-capacity nonvolatile memory 205, the reread unit 410 reads the application program 423 from the large-capacity nonvolatile memory 205.
  • FIG. 8 is a diagram showing a flow of application program transfer processing when an application program is downloaded.
  • each component in the TRM 204 operates as follows.
  • the temporary storage unit 507 holds the data size at the time of encryption and the data size at the time of decryption of the application program to be downloaded notified before the download.
  • the movement determination unit 505 obtains the program management information 510 from the program management unit 401, and the total capacity of the RAM 406, the data size at the time of decryption of the application program existing in the RAM 406, and the time of decryption
  • the current free space of the RAM 406 is acquired from the data size of the current (S801).
  • the movement determination unit 505 compares the acquired free space in the RAM 406 with the data size when the application program to be downloaded stored in the temporary storage unit 507 is encrypted (S802) . It is assumed that the free space of the RAM 406 is equal to the program storage area 406a.
  • program acquisition unit 400 acquires the downloaded application program, and storage control unit 403 is acquired.
  • the application program is stored in the program storage area 406a of the RAM 406 (S803).
  • the movement determination unit 505 instructs the program management unit 401 to update the program management information 510
  • the program management unit 401 updates the program management information 510 (S812)
  • the movement determination unit 505 starts a process for securing the free capacity of the RAM 406.
  • the movement determination unit 505 acquires time information from the time information acquisition unit 503 (S804).
  • the movement determination unit 505 makes an inquiry to the program management unit 401, acquires the program management information 510, and acquires the ID of the application program whose storage destination is the TRM 204 (S805).
  • the movement determination unit 505 makes an inquiry to the history management unit 402 and acquires the history management information 509 (S806).
  • the migration determination unit 505 selects the application program with the oldest last access date among the program IDs acquired in S805 as the migration target to the large-capacity nonvolatile memory 205.
  • Determine application program and program The data size when encrypting the application program to be moved is acquired from the physical information 510 (S807).
  • the movement determination unit 505 sets the movement flag of the program management information 510 of the application program determined as the movement target to ON (1) to the program management unit 401, and saves the storage destination. Is updated to the large-capacity nonvolatile memory 205, and the program management unit 401 updates the program management information 510 in accordance with the instruction (S808).
  • the storage control unit 403 moves the migration target application program determined in S807 to the large-capacity nonvolatile memory 205 (S810). Next, the free RAM capacity after the migration process is acquired, the process proceeds to S802, and the process from S802 to S810 is repeated until the application program to be downloaded can be saved in the program storage area 406a.
  • the program management unit 401 sets all the migration flags of the program management information 510 to OF F (0), and the process of downloading the application program ends (S813).
  • the movement determination unit 505 determines the application program with the oldest last access date as the application program to be moved.
  • the movement determination unit 505 may determine an application program having the longest access interval as a movement target, or may determine an application program accessed only on a specific day of the week as a movement target. That is, the movement determination unit 505 may determine an application program to be moved to the large-capacity nonvolatile memory 205 according to the application program execution history.
  • the method for determining the application program to be moved is not limited.
  • FIG. 9 is a diagram showing a flow of application program migration processing when an application program is downloaded when there is a decrypted application program 422 on the RAM 406.
  • the processing flow in Fig. 8 is almost the same, but the difference is S904.
  • the application program 421 stored in the program storage area 406a is used to secure a free area in the RAM 406.
  • the application program to be moved to the large-capacity nonvolatile memory 205 is determined.
  • the deletion unit 411 deletes the decrypted application program 422 existing in the RAM 406 in preference to the determination of the application program to be moved to the large-capacity nonvolatile memory 205. .
  • FIG. 10 is a diagram showing a processing flow when an application program stored in the program storage area 406a is executed.
  • the movement determination unit 505 acquires the program management information 510 from the program management unit 401, and acquires the free space of the RAM 406 in the same procedure as S801 (S1001 ).
  • the movement determination unit 505 acquires the size of the application program to be executed after decryption from the program management information 510 acquired in S1001 (S1002).
  • the movement determination unit 505 compares the acquired free space in the RAM 406 with the data size after decryption acquired in S 1002 (S 1003). Note that the free space of the RAM 406 is equal to the program storage area 406a! /. If the data size after decryption is less than or equal to the free capacity of the RAM 406 (Yes in S1003), the decryption unit 408 decrypts the encrypted application program to be executed (S1004). The management unit 401 updates the program management information 510 (S1012), and the execution unit 409 executes the application program (S1013). On the other hand, when the data size after decryption exceeds the free space of RAM 406 (No in S1003), movement determination unit 505 starts processing for securing the free space of RAM 406.
  • the movement determination unit 505 acquires time information from the time information acquisition unit 503 (S10 05).
  • the movement determination unit 505 makes an inquiry to the history management unit 402 and acquires the history management information 509 (S1006). Based on the history management information 509 acquired in S1006 and the program management information 510 acquired in S1002, the movement determination unit 505 is an application program whose storage destination is TRM204 and has the oldest last access date. The program is determined as the application program to be moved to the large-capacity nonvolatile memory 205, and the program is The data size at the time of encryption is acquired (S1007). As in FIG. 8, the algorithm for determining the application program to be moved from the history management information 509 may be a determination method that considers the usage frequency or the like.
  • the movement determination unit 505 sets the movement flag of the program management information 510 of the application program determined to be moved to ON (1) to the program management unit 401, and increases the storage destination.
  • the capacity non-volatile memory 205 is instructed to update, and the program management unit 401 updates the program management information 510 (S1008).
  • the movement control unit 404 moves the application program determined as the movement target in S 1007 to the large-capacity nonvolatile memory 205 (S 1010). Next, obtain the free RAM capacity after the migration process, and go to S 1003 until S1003 forces S1 010 until the RAM 406 has enough free space to execute the decryption process of the application program to be executed. Repeat the process.
  • the decryption unit 408 performs decryption processing for the application program to be executed (S 1004).
  • the program management unit 401 sets all the movement flags of the program management information 510 to OFF (0), and updates the program management information 510 (S1012).
  • the execution unit 409 executes the application program (S1013).
  • FIG. 11 is a diagram showing a processing flow when the application program 423 that has been moved to the large-capacity nonvolatile memory 205 is executed.
  • each component in the TRM 204 operates as follows.
  • the movement determination unit 505 acquires the program management information 510 from the program management unit 401, confirms that the storage destination of the application program to be executed is the large-capacity nonvolatile memory 205, and The data size when the application program to be executed is encrypted and the data size when decrypted are acquired (S1101).
  • the movement determination unit 505 acquires the free space in the RAM 406 from the storage location information of the program management information 510 acquired in S1101, the data size at the time of encryption, and the data size after decryption ( S 1102).
  • the movement determination unit 505 executes the application target to be executed acquired in S1101.
  • the total of the data size at the time of encryption and decryption of the system is compared with the free space of the RAM 406 acquired at S1102 (S1103). It should be noted that the free space of the RAM 406 and the program storage area 406a are the same.
  • the reread unit 410 reads the execution target application program 423 from the large-capacity nonvolatile memory 205, and the storage control unit 403 is read.
  • the execution target application program 423 is stored in the RAM 406 (S 1104).
  • Decryption key 408 performs decryption key processing! / ⁇ (S110 5)
  • program management unit 401 updates program management information 510 (S1113)
  • execution unit 409 executes the application program to be executed. (S 1114).
  • the movement determination unit 505 acquires time information from the time information acquisition unit 503 (S1106).
  • the movement determination unit 505 makes an inquiry to the history management unit 402 and acquires the history management information 509 (S1107).
  • the movement determination unit 505 is the application program whose storage destination is TRM204 in the program management information 510 acquired in S1101, and the last in the history management information 509 acquired in S1107.
  • the program ID with the oldest access date is extracted.
  • the movement determination unit 505 determines that the application program corresponding to the extracted program ID is to be moved to the large-capacity nonvolatile memory 205 (S 1108), and the program management information 510 determines the application program determined as the movement target. Get the data size at the time of encryption.
  • the program management unit 401 sets the migration flag of the program management information 510 of the application program determined to be migrated to ⁇ (1), and updates the storage destination to the large-capacity nonvolatile memory 205 ( S 1109).
  • the movement control unit 404 moves the application program determined as the movement target in S1108 from the program storage area 406a to the large-capacity nonvolatile memory 205 (S1111). Next, the free RAM capacity after the migration process is acquired, and the process proceeds to S 1103 to execute the application to be executed. -Repeat steps S1103 and S1111 until the decryption processing of the shadow program is possible.
  • the program management unit 401 sets all the migration flags of the program management information 510 to OF F (0), and the migration process of the application program ends.
  • the migration control unit 404 reads the execution target application program 423 from the large-capacity nonvolatile memory 205, and copies the read execution target application program 423 to the RAM 406. (S 11 04).
  • the movement control unit 404 performs decryption processing (S 1105), the program management unit 401 updates the program management information 510 (S1113), and then the execution unit 409 decrypts in S1105.
  • the already-executed application program 422 is executed (S 1114).
  • the movement determination unit 505 determines an application program with the oldest last access date as an application program to be moved. However, the movement determination unit 505 may determine an application program having the longest access interval as a movement target, or may determine an application program accessed only on a specific day of the week as a movement target. That is, the movement determination unit 505 may determine an application program to be moved to the large-capacity nonvolatile memory 205 according to the execution history of the application program. As long as the free space of the RAM 406 is made larger than the size of the application program stored in the RAM 406 to be downloaded, the method for determining the application program to be moved is not limited.
  • the deletion unit 411 may be prioritized in processing power to delete the decrypted application program 422 present in the RAM 406.
  • the movement determination unit 505 encrypts the data size at the time of encryption and the data size at the time of decryption of the application program to be executed. And the total capacity of the RAM 406 and the free space of the RAM 406 are compared. However, in S1103, the movement determination unit 505 may compare the data size at the time of decryption of the application program to be executed with the free capacity of the RAM 406.
  • the decryption unit 408 executes the application program to be executed. May be decrypted and stored in the RAM 406.
  • the movement determination unit 505 determines that the data size at the time of decryption of the execution target application program is The processing for securing the free space of the RAM 406 is started so that the free space becomes less than the free space.
  • the application program that has been downloaded by the service pronoidor can be easily moved to the large-capacity nonvolatile memory 205 in the encrypted state when downloaded. Can do.
  • more application programs can be stored in a secure memory card equipped with an IC card function such as the SD card 203 while maintaining the security strength required by the service provider.
  • Fig. 12 shows an example of information of an application program provided by the service provider.
  • step 1 the processing flow in the case where the RAM 406 is unused and the application program A is downloaded to the SD card 203 will be described in detail.
  • the temporary storage unit 507 stores 10 KB as the data size when the application program A is encrypted, and 30 KB as the data size when the application program A is decrypted.
  • the movement determination unit 505 acquires the program management information 510 from the program management unit 401 and acquires the free capacity of the RAM 406.
  • the size of the used area of the RAM 406 is 0 KB, and the free area of the RAM 406 is 120 KB.
  • the movement determination unit 505 compares the data size at the time of encryption of the application program A stored in the temporary storage unit 507 with the free capacity of the RAM 406. In this case, the movement determination unit 505 determines that the application program A can be stored in the program storage area 406a because the data size when the application program A is encrypted is 10 KB and the free space of the RAM 406 is 120 KB. Then, the storage control unit 403 stores the application program A in the program storage area 406a.
  • the program management information 510 is updated by the program management unit 401 as shown in FIG.
  • the state of the RAM406 is as shown in FIG.
  • step 2 the processing flow in the case of downloading application program B to SD card 203 will be described in detail.
  • the information related to application program B (data size at the time of encryption and data size at the time of decryption) is temporarily stored in the same way as when downloading application program A shown in step 1. Saved in storage unit 507.
  • the temporary storage unit 507 stores 30 KB as the data size when the application program B is encrypted, and 50 KB as the data size when the application program B is decrypted.
  • the movement determination unit 505 receives the program updated in step 1 from the program management unit 401.
  • RAM management information 1300 is acquired, and RAM 406 free space is acquired.
  • the application program stored in the RAM 406 is only the application program A, and the used area size of the RAM 406 is 10 KB. Therefore, the free area of the RAM 406 is 110 KB.
  • the movement determination unit 505 compares the data size at the time of encryption of the application program B stored in the temporary storage unit 507 with the free capacity of the RAM 406. In this case, the movement determination unit 505 determines that the application program B can be stored in the program storage area 406a because the data size when the application program B is encrypted is 30 KB and the free area of the RAM 406 is 110 KB. Then, the storage control unit 403 stores the application program B in the program storage area 406a.
  • the program management information 1300 is updated by the program management unit 401 as shown in FIG.
  • the state of the RAM 406 is as shown in FIG.
  • step 3 the process flow when executing the application program B will be described in detail.
  • the movement determination unit 505 acquires the program management information 1400 updated in step 2 from the program management unit 401, and acquires the data size after decryption of the application program B to be executed. And save it in the temporary storage unit 507.
  • the value stored in temporary storage unit 507 is 50 KB.
  • the movement determination unit 505 acquires the free capacity of the RAM 406 from the program management information 1400.
  • the RAM 406 includes the encrypted application program A (10 KB) and the encrypted application program B (30 KB), the free space of the RAM 406 is 80 KB.
  • the movement determination unit 505 compares the decrypted data size 50KB of the application program B stored in the temporary storage unit 507 with the free space 80MB of the RAM 406.
  • the application program B is determined to be decryptable on the RAM 406.
  • the decryption unit 408 decrypts the application program B, and the program management unit 401 updates the program management information 1400 as shown in FIG. 15 (A).
  • the state of the RAM 406 is as shown in FIG.
  • the application program B becomes executable, and the execution unit 409 executes the application program B.
  • step 4 the processing flow in the case of downloading the application program C to the SD card 203 will be described in detail.
  • the information related to the application program C (data size at the time of encryption and data size at the time of decryption) is temporarily stored as in the case of downloading the application program A shown in step 1. Saved in storage unit 507.
  • the temporary storage unit 507 stores 40 KB as the data size when the application program C is encrypted, and 70 KB as the data size when the application program C is decrypted.
  • the movement determination unit 505 acquires the updated program management information 1500 in step 3 from the program management unit 401 and acquires the free capacity of the RAM 406.
  • the free space of RAM406 is 30KB.
  • the movement determination unit 505 compares the data size (40 KB) at the time of encryption of the application program C stored in the temporary storage unit 507 with the free space (30 KB) of the RAM 406. In this case, since the free space in the RAM 406 is insufficient, the movement determination unit 505 performs a process for securing the free space in the RAM 406.
  • S904 is adopted as a processing flow for securing the free space of the RAM 406.
  • the movement determination unit 505 has three application programs existing in the RAM 406. In the program, a process for deleting the decrypted application program B is selected based on the processing flow of S904.
  • the movement determination unit 505 acquires the free space of the RAM 406 again.
  • the free space of RAM406 after the decrypted application program B is deleted is 80KB.
  • the movement determination unit 505 is an application program stored in the temporary storage unit 507.
  • the application program C is determined to be downloadable.
  • the storage control unit 403 stores the downloaded application program C in the program storage area 406a.
  • the program management information 1500 is updated by the program management unit 401 as shown in FIG.
  • the state of the RAM 406 is as shown in FIG.
  • step 5 the process flow when executing the application program C will be described in detail.
  • the movement determination unit 505 obtains the decrypted data size (70 KB) of the application program C from the updated program management information 1600, and temporarily stores the data in the temporary storage unit 507. Save to.
  • the movement determination unit 505 uses the program management information 1600 to calculate the movement direction.
  • the free space of the RAM 406 is 40 KB.
  • the movement determination unit 505 compares the decrypted data size (70KB) of the application program C stored in the temporary storage unit 507 with the free space (40KB) of the RAM 406, and the application program C It is determined that the area required for execution cannot be secured on the RAM 406.
  • the movement determination unit 505 performs processing for determining an application program to be moved to the large-capacity nonvolatile memory 205 based on the processing flow of S1005 force and S1008.
  • the application program power that was downloaded first Assume a case of moving to the large-capacity nonvolatile memory 205.
  • the movement determination unit 505 determines the application program A downloaded in step 1 as the application program to be moved to the large-capacity nonvolatile memory 205.
  • the program management unit 401 updates the program management information 1600 as shown in FIG. 17 (A).
  • the state of the RAM 406 is as shown in FIG.
  • the movement determination unit 505 compares the decrypted data size (70 KB) of the application program C stored in the temporary storage unit 507 with the free space (50 KB) of the RAM 406 to determine whether the application program It is determined that the area necessary for C execution cannot be secured on the RAM 406 yet.
  • the movement determination unit 505 selects the application program B downloaded in step 2 as the application program to be moved.
  • program management section 401 updates program management information 1700 as shown in FIG. 18 (A).
  • the state of the RAM 406 is as shown in FIG.
  • the movement determination unit 505 compares the decrypted data size (70 KB) of the application program C stored in the temporary storage unit 507 with the free space (80 KB) of the RAM 406, and determines the application program. It is determined that the area necessary for C execution has been secured on the RAM 406.
  • the movement control unit 404 stores the application program A (ID: 0x0001) and the application program B (ID: 0x0002) in the RAM 406 when the movement flag is set to ON (1).
  • the application program A ID: 0x0001
  • the application program B ID: 0x0002
  • the movement control unit 404 deletes the application program A and the application program B that have been copied from the program storage area 406a.
  • program management information 401 is updated by the program management unit 401 as shown in FIG.
  • the state of the RAM 406 is as shown in FIG.
  • the application program C becomes executable and the execution unit 409 executes the application program C.
  • step 6 the processing flow when executing the application program B moved to the large-capacity nonvolatile memory 205 will be described in detail.
  • execution processing of application program B starts.
  • the movement determination unit 505 obtains the decrypted data size (50 KB) of the application program B from the updated program management information 1900, and temporarily stores it. Save to.
  • the movement determination unit 505 uses the program management information 1900.
  • the free space of the RAM 406 is 10 KB.
  • the movement determination unit 505 compares the data size (50KB) after decryption of the application program B stored in the temporary storage unit 507 with the free space (10KB) of the RAM 406, and the application program B It is determined that the area required for execution cannot be secured on the RAM 406.
  • the movement determination unit 505 first adopts a processing flow for preferentially deleting the decrypted application program on the RAM 406, and decrypts the decrypted application program C based on the program management information 1900. Are determined to be deleted.
  • the deletion unit 411 deletes the decrypted application program C (70 KB) on the RAM 406.
  • the program management unit 401 updates the program management information 1900 as shown in Fig. 20A.
  • the state of the RAM 406 is as shown in FIG.
  • the movement determination unit 505 compares the decrypted data size (50KB) of the application program B stored in the temporary storage unit 507 with the free space (80KB) of the RAM 406, and the RAM 406 In addition, it is determined that an area for decrypting application program B has been secured.
  • the movement control unit 404 reads the application program B from the large-capacity nonvolatile memory 205, copies it to the RAM 406, and decrypts the application program B.
  • the program management unit 401 updates the program management information 2000 as shown in FIG. At this time, the state of the RAM 406 is as shown in FIG. [0170] Finally, the execution unit 409 executes the decrypted application program B.
  • the application program B that has been moved to the large-capacity nonvolatile memory 205 is executed.
  • TRM 204 is an example of the IC card portion of the memory card of the present invention.
  • the large-capacity nonvolatile memory 205 is an example of the flash memory unit of the memory card of the present invention.
  • the RAM 406 is an example of a tamper resistant storage unit of the memory card according to the present invention.
  • the execution unit 409 executes the application program at the data size at the time of decryption of the application program when executing the application program. It is possible to determine whether or not the obtained size matches the downloaded size. If they do not match, the execution application 409 stops executing the application program because the execution target application program is an illegal program. As a result, there is an effect that only the legitimate application program is executed.
  • the storage control unit 403 may store the application program 420 to which the service provider capability is downloaded in the program storage area 406a and also store it in the large-capacity nonvolatile memory 205. In this case, when the data size of the application program to be downloaded or executed exceeds the free space of the RAM 406, the storage control unit 4003 simply deletes one of the encrypted application programs existing in the RAM 406, The free space in the RAM 406 becomes larger than the data size of the application program to be downloaded or executed, and the application program can be arranged in the RAM 406.
  • the storage control unit 403 increases the download target application program acquired by the program acquisition unit 400 when the data size of the application program to be downloaded exceeds the free space of the RAM 406. Capacity non-volatile memory 205
  • the execution unit 409 encrypts the execution target after executing the application program. You can move the application program to the large-capacity non-volatile memory 205.
  • FIG. 22 is a diagram showing a block configuration of the SD card 2200 according to the second embodiment.
  • the SD card 2200 includes a key generation unit 2217, an additional encryption unit 2218, and an additional decryption unit 2219 in addition to the components included in the SD card 203 of the first embodiment.
  • FIG. 22 shows the program management unit 401, the history management unit 402, the storage control unit 403, the public key storage unit 407, the decryption unit 408, which are shown in FIG.
  • the execution unit 409 is not described.
  • the program acquisition unit 400 acquires host device-specific information such as a Subscriber Identity Module Identifier (SIM ID) and terminal ID from the host device 202, and the key generation unit 2217 uses the host device-specific information. Generate a cryptographic key.
  • the additional encryption key unit 2218 encrypts the application program to be moved from the TRM 204 to the large-capacity nonvolatile memory 205 determined by the movement control unit 404 with the encryption key generated by the key generation unit 2217.
  • the movement control unit 404 copies the application program encrypted by the additional encryption encryption unit 2218 from the RAM 406 to the large-capacity nonvolatile memory 205.
  • the migration control unit 404 copies the application program encrypted by the additional encryption unit 2218 to the large-capacity nonvolatile memory 205, and then deletes the migration target application program from the program storage area 406a. . Then, the key generation unit 2217 deletes the encryption key.
  • the application program to be moved is encrypted with the encryption key generated by the key generation unit 2217 and moved to the large-capacity nonvolatile memory 205, and thereafter Delete the encryption key.
  • the application program to be moved can be stored in the large-capacity nonvolatile memory 205 in a state where the security strength is higher than that of the moving method described in the first embodiment.
  • the program acquisition unit 400 acquires information specific to the host device as described above, and generates a key generation unit. 2217 uses the information unique to the host device to Generate.
  • the additional decryption unit 2219 decrypts the application program encrypted by the additional encryption unit 2218 using the encryption key generated by the key generation unit 2217.
  • the movement control unit 404 deletes the encryption key and copies the decrypted application program to the RAM 406.
  • the execution unit 409 executes the application program copied to the RAM 406.
  • the program acquisition unit 400 may acquire, from the host device 202, user-specific information such as the user's fingerprint or a user-specified number given to the host device 202 by the user of the host device 202.
  • the key generation unit 2217 generates an encryption key using user-specific information from the host device 202.
  • the encryption key can be deleted when the encryption process is completed and the encryption key becomes unnecessary.
  • the application program to be moved is stored in the large-capacity nonvolatile memory 205 in a state where the security strength is higher than that of the moving method described in the first embodiment.
  • the application program downloaded from the service provider is stored in the program storage area 406a of the RAM 406.
  • all application programs may be stored in the large-capacity nonvolatile memory 205 at the time of downloading. As a result, the capacity of the RAM 406 can be reduced.
  • the decryption unit 408, the execution unit 409, the reread unit 410, the deletion unit 411, the key generation unit 2217, the additional encryption unit 2218, and the additional decryption unit 2219 are all or partly realized by an integrated circuit. May be. In other words, all the above components are made up of one chip. Alternatively, some components may be integrated into one chip.
  • the integrated circuit may be a Field Programmable Gate Array (FPGA) or a reconfigurable processor.
  • FPGA Field Programmable Gate Array
  • the memory card of the present invention can move an application program that cannot be stored in the TRM area to a large-capacity non-volatile memory while maintaining the security level when the application program is downloaded.
  • Application programs can be stored on a single memory card. Therefore, the memory card of the present invention is useful as an SD card, an IC card, or the like that requires a strong protection function for application programs.

Abstract

 本発明のメモリカードは、ホスト機器にダウンロードされる暗号化されているアプリケーションプログラムを前記ホスト機器から受信するメモリカードであって、耐タンパ機能を有するICカード部と、フラッシュメモリ部とを備え、前記ICカード部は、耐タンパ記憶部と、前記ホスト機器から、暗号化されているアプリケーションプログラムを取得するプログラム取得部と、取得された暗号化されているアプリケーションプログラムを前記耐タンパ記憶部又は前記フラッシュメモリ部に格納する格納制御部と、前記耐タンパ記憶部に格納されているアプリケーションプログラムの実行時、実行対象のアプリケーションプログラムの復号化時のサイズが前記耐タンパ記憶部の空き容量を超える場合、前記耐タンパ記憶部に格納されている任意の暗号化されているアプリケーションプログラムを前記フラッシュメモリ部に移動させる移動制御部とを有する。

Description

明 細 書
メモリカード、アプリケーションプログラム保持方法、及び保持プログラム 技術分野
[0001] 本発明は、アプリケーションプログラムを保持するメモリカードに関する。
背景技術
[0002] smart Secure Digital memory card (以下「SDカード」という)をはじめとする Integrated Circuit (IC)カード機能が搭載されたセキュアメモリカードの普及に伴 い、使用されるアプリケーションプログラムの種類や利用者数が今後増加していくと予 想される。
[0003] 図 1 (A)は、一般的なセキュアメモリカードのハードウェア構成を示す図である。図 1
(A)に示すように、セキュアメモリカード 100は、 Read Only Memory (ROM) 103 と、 Random Access Memory (RAM) 102と、 Central Processing Unit (CP U) 104と、不揮発性メモリ群 101とを備える。 ROM103はアプリケーションプログラム を記憶する。 RAM102はアプリケーションプログラムの実行の際に用いられるデータ を一時的に記憶する。 CPU104はアプリケーションプログラムに従って各種のコマン ドに対する処理を実行する。不揮発性メモリ群 101はメモリカードの外部カゝらダウン口 ードされるアプリケーションプログラムを記憶する。
[0004] 不揮発性メモリ群 101は、耐タンパモジュール(TRM :Tamper Resistant Mod ule) 107内にある Ferroelectric RAM (FeRAM) 106と、 TRM107外にあるセキ ユアフラッシュ 108と、 TRM107外にあるフラッシュメモリ 109とから構成される。セキ ユアフラッシュ 108は、 TRM107の機能を利用してセキュリティ強度が高められたフラ ッシュメモリである。
[0005] 図 1 (B)は、不揮発性メモリ群 101を構成する 3つの不揮発性メモリのセキュリティ強 度を示す図である。図 1 (B)に示すように、 TRM107内にある FeRAM106のセキュ リティ強度が最も強ぐその次にセキュアフラッシュ 108のセキュリティ強度が強ぐフ ラッシュメモリ 109のセキュリティ強度が最も弱 、。
[0006] サービスプロバイダ力もダウンロードされるアプリケーションプログラムは、通常は TR M107領域に保存される。 TRM107領域の容量はフラッシュメモリ 109に比べて非 常に小さいため、 TRM107領域に保存しきれないアプリケーションプログラムは、ュ 一ザが削除する必要がある。
[0007] そこで、アプリケーションプログラムを削除することなぐ TRM107領域に格納され て!、るアプリケーションプログラムを、サービスプロバイダが要求するセキュリティ強度 を確保した状態で、セキュアメモリカード 100内のフラッシュメモリ 109に移動させ、必 要に応じて TRM107領域に復帰させることにより、より多くのアプリケーションプログ ラムを一枚のセキュアメモリカード 100内に保存できるようにする仕組みが必要となつ てきている。
[0008] 特許文献 1には、ダウンロードされるアプリケーションプログラムのセキュリティレベル に応じて、そのアプリケーションプログラムの保存領域を振り分ける発明が開示されて いる。
特許文献 1 :特開 2002— 229861号公報
発明の開示
発明が解決しょうとする課題
[0009] 特許文献 1に示される従来技術では、ダウンロードされるアプリケーションプログラム のセキュリティレベルに応じて、ダウンロード時に、アプリケーションプログラムを TRM 領域とフラッシュメモリとのいずれかに振り分けて保存する。フラッシュメモリにアプリケ ーシヨンプログラムを保存する場合、暗号化された状態でダウンロードされたアプリケ ーシヨンプログラムを復号ィ匕した後、その復号ィ匕したアプリケーションプログラムを、 T RM領域にあら力じめ格納されている秘密情報キーを用いて暗号ィ匕し、フラッシュメ モリに保存する。つまり、従来技術では、セキュアメモリカード内のセキュリティレベル が最も低 、フラッシュメモリにアプリケーションプログラムを保存する場合、そのアプリ ケーシヨンプログラムをセキュアメモリカード内の秘密情報キーを用いて暗号ィ匕する。 そのため、アプリケーションプログラムを提供するサービスプロバイダが要求するセキ ユリティ強度を保った状態で、ダウンロードされるアプリケーションプログラムをフラッシ ュメモリに保存することができな 、。
[0010] 本発明は、サービスプロバイダが要求するセキュリティ強度を保った状態で、そのサ 一ビスプロバイダからダウンロードされるアプリケーションプログラムをフラッシュメモリ に保存するメモリカードを提供することを目的とする。
課題を解決するための手段
[0011] 上記目的を達成するために、本発明のメモリカードは、ホスト機器にダウンロードさ れる暗号ィ匕されているアプリケーションプログラムを前記ホスト機器力 受信するメモ リカードであって、耐タンパ機能を有する Integrated Circuit (IC)カード部と、フラ ッシュメモリ部とを備え、前記 ICカード部は、耐タンパ記憶部と、前記ホスト機器から、 暗号化されて 、るアプリケーションプログラムと、前記アプリケーションプログラムの暗 号ィ匕時のサイズ及び復号ィ匕時のサイズとを取得するプログラム取得部と、前記取得さ れたアプリケーションプログラムの暗号ィ匕時のサイズと前記耐タンパ記憶部の空き容 量とに基づ!/ヽて、前記耐タンパ記憶部又は前記フラッシュメモリ部を格納先領域とし て選択し、選択した領域に前記取得された暗号ィ匕されて 、るアプリケーションプログ ラムを格納する格納制御部と、前記耐タンパ記憶部に格納されて 、るアプリケーショ ンプログラムの実行時、実行対象のアプリケーションプログラムの復号ィ匕時のサイズ が前記耐タンパ記憶部の空き容量を超える場合、前記耐タンパ記憶部に格納されて V、る任意の暗号ィ匕されて 、るアプリケーションプログラムを前記フラッシュメモリ部に 移動させる移動制御部と、前記実行対象のアプリケーションプログラムを復号ィ匕し、 実行する実行部とを有する。
[0012] これにより、本発明のメモリカードは、サービスプロバイダが要求するセキュリティ強 度を保った状態で、そのサービスプロバイダ力 ダウンロードされるアプリケーション プログラムをフラッシュメモリに保存することができる。
[0013] 例えば、前記格納制御部は、前記取得されたアプリケーションプログラムの暗号ィ匕 時のサイズが前記耐タンパ記憶部の空き容量以下である場合、前記アプリケーション プログラムを前記耐タンパ記憶部に格納し、前記暗号化時のサイズが前記空き容量 を超える場合、前記アプリケーションプログラムを前記フラッシュメモリ部に格納する。
[0014] 例えば、前記格納制御部は、前記取得されたアプリケーションプログラムの暗号ィ匕 時のサイズが前記耐タンパ記憶部の空き容量を超える場合、前記耐タンパ記憶部に 格納されて 、る任意の暗号ィ匕されて 、るアプリケーションプログラムを前記フラッシュ メモリ部に移動させる。
[0015] 例えば、前記実行部は、アプリケーションプログラムの実行後、実行対象の暗号ィ匕 されているアプリケーションプログラムを前記フラッシュメモリ部に移動させる。
[0016] 例えば、前記移動制御部は、実行対象のアプリケーションプログラムが前記フラッシ ュメモリ部に格納されている場合、前記実行対象のアプリケーションプログラムの復号 化時のサイズと暗号ィ匕時のサイズとの合計が前記耐タンパ記憶部の空き容量を超え るとき、前記耐タンパ記憶部に格納されている任意の暗号ィ匕されているアプリケーシ ヨンプログラムを前記フラッシュメモリ部に移動させ、前記実行対象のアプリケーション プログラムを前記耐タンパ記憶部に複写する。
[0017] 例えば、前記移動制御部は、実行対象のアプリケーションプログラムが前記フラッシ ュメモリ部に格納されている場合、前記実行対象のアプリケーションプログラムの復号 化時のサイズが前記耐タンパ記憶部の空き容量を超えるとき、前記耐タンパ記憶部 に格納されて 、る任意の暗号ィ匕されて 、るアプリケーションプログラムを前記フラッシ ュメモリ部に移動させ、前記実行対象のアプリケーションプログラムを復号ィ匕して、前 記耐タンパ記憶部に格納する。
[0018] 例えば、前記移動制御部は、アプリケーションプログラムの実行履歴に基づ ヽて、 アプリケーションプログラム毎のアクセス履歴管理情報を生成し、前記 ICカード部は、 更に、前記アクセス履歴管理情報に従って、前記フラッシュメモリ部に移動させるアブ リケーシヨンプログラムを決定する移動判定部を有してもよい。
[0019] 例えば、前記プログラム取得部は、前記ホスト機器固有の情報を取得し、前記 IC力 ード部は、更に、前記取得したホスト機器固有の情報を利用して暗号ィ匕鍵を生成す る鍵生成部と、前記耐タンパ記憶部力 前記フラッシュメモリ部への移動対象のアブ リケーシヨンプログラムを前記暗号ィ匕鍵により暗号ィ匕する追加暗号ィ匕部とを有し、前 記移動制御部は、暗号化終了後に前記暗号化鍵を削除し、前記暗号化鍵により二 重に暗号ィ匕されている前記移動対象のアプリケーションプログラムを前記フラッシュメ モリ部へ移動させてもよい。
[0020] 例えば、前記 ICカード部は、更に、前記フラッシュメモリ部に格納されている前記暗 号ィ匕鍵により二重に暗号ィ匕されているアプリケーションプログラムを前記耐タンパ記 憶部へ複写する場合、複写対象の前記アプリケーションプログラムを前記鍵生成部 が生成した暗号ィ匕鍵で復号ィ匕する追加復号ィ匕部を有し、前記移動制御部は、復号 化終了後に前記暗号化鍵を削除し、複写対象の前記アプリケーションプログラムを 前記耐タンパ記憶部に格納してもよ ヽ。
[0021] 本発明は、本発明のメモリカードの特徴的な構成手段をステップとするアプリケーシ ヨンプログラム保持方法として実現したり、それらのステップをコンピュータに実行させ る保持プログラムとして実現したり、上記特徴的な構成手段を含む集積回路として実 現することもできる。上記の保持プログラムは、 CD— ROM等の記録媒体や通信ネッ トワーク等の伝送媒体を介して流通させることもできる。 発明の効果
[0022] 本発明は、サービスプロバイダが要求するセキュリティ強度を保った状態で、そのサ 一ビスプロバイダからダウンロードされるアプリケーションプログラムをフラッシュメモリ に保存するメモリカードを提供することができる。
[0023] 本発明により、多くのアプリケーションプログラムを、サービスプロバイダが要求する セキュリティ強度を保った状態で一枚のセキュアメモリカード内に保存することが可能 となる。
図面の簡単な説明
[0024] [図 1]図 1 (A)は、一般的なセキュアメモリカードのハードウェア構成図であり、図 1 (B )は、不揮発性メモリ群を構成する FeRAM、セキュアフラッシュ、及び、フラッシュメモ リのセキュリティ強度を示す図である。
[図 2]図 2は、実施の形態 1におけるシステム全体の概観図である。
[図 3]図 3は、一般的なセキュアメモリカードの概観図である。
[図 4]図 4は、実施の形態 1における SDカードのブロック構成図である。
[図 5]図 5は、実施の形態 1における SDカードの TRM204のブロック構成図である。
[図 6]図 6は、実施の形態 1における履歴管理情報の例を示す図である。
[図 7]図 7は、実施の形態 1におけるプログラム管理情報の例を示す図である。
[図 8]図 8は、実施の形態 1におけるアプリケーションプログラムのダウンロード時にお けるアプリケーションプログラムの移動処理フローを示す図である。 [図 9]図 9は、 RAM上に復号ィ匕済みのアプリケーションプログラムが存在する場合の アプリケーションプログラムのダウンロード処理におけるアプリケーションプログラムの 移動処理のフローを示す図である。
[図 10]図 10は、実施の形態 1における RAMに保存済みのアプリケーションプロダラ ムを実行する場合の処理フローを示す図である。
[図 11]図 11は、実施の形態 1における大容量不揮発性メモリに移動したアプリケーシ ヨンプログラムを実行する場合の処理フローを示す図である。
[図 12]図 12は、実施の形態 1におけるサービスプロバイダが提供するアプリケーショ ンプログラムの情報の一例を示す図である。
[図 13]図 13 (A)は、実施の形態 1におけるアプリケーションプログラム Aのダウンロー ド処理完了後のプログラム管理情報を示す図であり、図 13 (B)は、実施の形態 1に おけるアプリケーションプログラム Aのダウンロード処理完了後の RAMの状態を示す 図である。
[図 14]図 14 (A)は、実施の形態 1におけるアプリケーションプログラム Bのダウンロー ド処理完了後のプログラム管理情報を示す図であり、図 14 (B)は、実施の形態 1に おけるアプリケーションプログラム Bのダウンロード処理完了後の RAMの状態を示す 図である。
[図 15]図 15 (A)は、実施の形態 1におけるアプリケーションプログラム Bの実行後の プログラム管理情報を示す図であり、図 15 (B)は、実施の形態 1におけるアプリケー シヨンプログラム Bの実行後の RAMの状態を示す図である。
[図 16]図 16 (A)は、実施の形態 1におけるアプリケーションプログラム Cのダウンロー ド処理完了後のプログラム管理情報を示す図であり、図 16 (B)は、実施の形態 1に おけるアプリケーションプログラム Cのダウンロード処理完了後の RAMの状態を示す 図である。
[図 17]図 17 (A)は、実施の形態 1におけるアプリケーションプログラム Cの実行にあた り、アプリケーションプログラム Aを移動対象として決定した後のプログラム管理情報 を示す図であり、図 17 (B)は、実施の形態 1におけるアプリケーションプログラムじの 実行にあたり、アプリケーションプログラム Aを移動対象として決定した後の RAMの 状態を示す図である。
[図 18]図 18 (A)は、実施の形態 1におけるアプリケーションプログラム Cの実行にあた り、アプリケーションプログラム Bも移動対象として決定した後のプログラム管理情報を 示す図であり、図 18 (B)は、実施の形態 1におけるアプリケーションプログラム Cの実 行にあたり、アプリケーションプログラム Bも移動対象として決定した後の RAMの状態 を示す図である。
[図 19]図 19 (A)は、実施の形態 1におけるアプリケーションプログラム Cの実行にあた り、アプリケーションプログラム A及びアプリケーションプログラム Bを RAMから削除し た後のプログラム管理情報を示す図であり、図 19 (B)は、実施の形態 1におけるアブ リケーシヨンプログラム Cの実行にあたり、アプリケーションプログラム A及びアプリケー シヨンプログラム Bを削除した後の RAMの状態を示す図である。
[図 20]図 20 (A)は、実施の形態 1におけるアプリケーションプログラム Bの実行にあた り、アプリケーションプログラム Cを RAMから削除した後のプログラム管理情報を示す 図であり、図 20 (B)は、実施の形態 1におけるアプリケーションプログラム Bの実行に あたり、アプリケーションプログラム Cを削除した後の RAMの状態を示す図である。
[図 21]図 21 (A)は、実施の形態 1におけるアプリケーションプログラム Bの実行後の プログラム管理情報を示す図であり、図 21 (B)は、実施の形態 1におけるアプリケー シヨンプログラム Bの実行後の RAMの状態を示す図である。
[図 22]図 22は、実施の形態 2における SDカードのブロック構成図である。
符号の説明
100 セキュアメモリカード
101 不揮発性メモリ群
102 RAM
103 ROM
104 CPU
105 ホストインタフェース
106 FeRAM
107 TRM 108 セキュアフラッシュ
109 フラッシュメモリ
201 サービスプロバイダ
202 ホス卜機器
203 SDカード
204 TRM
205 大容量不揮発性メモリ
206 SDカードコントローラ部
207 SDインタフェース
300 外部 CPU
301 セキュアメモリカード
302 制御部
303 内部 CPU
304 TRM
305 大容量不揮発性メモリ
306 内部不揮発性メモリ
307 セキュア領域
308 認証領域
309 非認証領域
400 プログラム取得部
401 プログラム管理部
402 履歴管理部
403 格納制御部
404 移動制御部
405 ICカード OS
406 RAM
406a L プログラム記憶領域
407 公開鍵記憶部 408 復号化部
409 実行部
410 再読み込み部
411 削除部
420, 421, 422, 423 アプリケーションプログラム
503 時刻情報取得部
505 移動判定部
507 一時記憶部
2200 SDカード
2217 鍵生成部
2218 追加暗号化部
2219 追加復号化部
発明を実施するための最良の形態
[0026] 以下に、本発明を実施するための最良の形態について、図面を参照して説明する
[0027] (実施の形態 1)
実施の形態 1におけるシステム全体の概観を図 2に示す。実施の形態 1では、セキ ユアメモリカードが SDカードである場合を想定する。
[0028] 図 2に示すように、実施の形態 1の SDカード 203は、携帯電話等のホスト機器 202 と SDインタフェース(以下「SDI/F」 t 、う) 207を介して接続され、耐タンパ性モジ ユール (TRM) 204と、大容量不揮発性メモリ 205と、 SDカードコントローラ部 206と を備える。ホスト機器 202は、携帯電話に限られず、 SDIZFを持つ機器であるなら ば、どのような機器であってもよい。
[0029] 図 3は、一般的なセキュアメモリカードの概観図である。図 3に示すように、セキュア メモリカード 301は、内部不揮発性メモリ 306を有する TRM304と、セキュア領域 30 7、認証領域 308、及び非認証領域 309を有する大容量不揮発性メモリ 305と、内部 不揮発性メモリ 306及びセキュア領域 307に対してアクセスする内部 CPU303と、電 子機器 (リード Zライト (RZW)装置)の外部 CPU300と通信して認証処理を行な ヽ 、認証した外部 CPU300による認証領域 308へのアクセスを許可する制御部 302と を備える。
[0030] TRM304の内部不揮発性メモリ 306は、例えば、 1バイト単位でデータの消去及び 書き込みができる Electronically Erasable and Programmable ROM (EEP ROM)である。大容量不揮発性メモリ 305は、例えば、 64キロバイト等のブロック単 位でのデータの消去と 1バイト単位でのデータの書き込みとが可能なフラッシュメモリ である。
[0031] 外部 CPU300は、非認証領域 309に無条件でアクセスすることができる。外部 CP U300は、認証領域 308には、制御部 302による認証が完了した場合にのみァクセ スすることができる。しかし、外部 CPU300は、セキュア領域 307及び内部不揮発性 メモリ 306の存在を知ることができず、これらに直接アクセスすることはできない。セキ ユア領域 307及び内部不揮発性メモリ 306に対しては、内部 CPU303だけがァクセ ス可能である。
[0032] セキュア領域 307と内部不揮発性メモリ 306との違いは、内部不揮発性メモリ 306 が TRM304内に設けられているのに対し、セキュア領域 307が TRM304外の大容 量不揮発性メモリ 305に設けられている点である。そのため、セキュア領域 307は、 内部不揮発性メモリ 306に比べて大き 、蓄積容量を持つことができる反面、セキユリ ティレベルでは、 TRM304内に設けられた内部不揮発性メモリ 306に比べて低い。 図 3に示すように、これら 4つの領域のセキュリティレベルは、非認証領域 309が最も 低ぐ認証領域 308、セキュア領域 307、内部不揮発性メモリ 306の順に高くなつて いる。
[0033] 図 1 (A)の不揮発性メモリ群 101と、図 3との対比関係は以下の通りである。図 1 (A )の FeRAM106が図 3の内部不揮発性メモリ 306に対応し、図 1 (A)のセキュアフラ ッシュ 108が図 3のセキュア領域 307に対応し、図 1 (A)のフラッシュメモリ 109が図 3 の認証領域 308及び非認証領域 309に対応する。
[0034] 図 4は、実施の形態 1における SDカード 203のブロック構成を示す図である。 SD力 ード 203は、 SD規格で規定されている SDカードコントローラ部 206と、 TRM204と、 大容量不揮発性メモリ 205とを備える。 SDカードコントローラ部 206は、ホスト機器 20 2との間でデータの送受信を行なうインタフェース部であり、 TRM204は、耐タンパ機 能が実装されている ICカード部である。大容量不揮発性メモリ 205としては、例えば フラッシュメモリが用いられる。
[0035] TRM204は、プログラム取得部 400と、プログラム管理部 401と、履歴管理部 402 と、格納制御部 403と、移動制御部 404と、 ICカード Operating System (OS) 405 と、 RAM406と、公開鍵記憶部 407と、復号ィ匕部 408と、実行部 409とを有する。 TR M204は、更に、再読み込み部 410と、削除部 411とを有する力 それらは図 4には 示されていない。再読み込み部 410及び削除部 411は、図 5を用いて後述する。
[0036] プログラム取得部 400は、サービスプロバイダ力もダウンロードされるアプリケーショ ンプログラム 420を、 SDカードコントローラ部 206経由で取得する。ダウンロードされ るアプリケーションプログラム 420は、サービスプロバイダが要求するセキュリティ強度 で暗号化されている。
[0037] プログラム管理部 401は、 RAM406に保持されているアプリケーションプログラム や、大容量不揮発性メモリ 205に保持されているアプリケーションプログラムを一意に 識別するためのプログラム IDと、アプリケーションプログラムの保存先とを管理する。 アプリケーションプログラムの保存先は、 RAM406又は大容量不揮発性メモリ 205で ある。
[0038] 履歴管理部 402は、アプリケーションプログラムのアクセス履歴を管理する。
[0039] 格納制御部 403は、プログラム取得部 400によって取得されるアプリケーションプロ グラムを RAM406のプログラム記憶領域 406aに格納する。
[0040] 移動制御部 404は、移動対象のアプリケーションプログラムを RAM406のプログラ ム記憶領域 406aから大容量不揮発性メモリ 205に移動させる。
[0041] RAM406は、ホスト機器 202からダウンロードされるアプリケーションプログラムをそ のままの状態で、すなわち暗号ィ匕された状態で記憶するプログラム記憶領域 406aを 有する。 RAM406は、復号ィ匕されたアプリケーションプログラムをも記憶する。すな わち、 RAM406は、プログラム記憶領域 406aに加え、プログラム記憶領域 406aか ら読み出されたアプリケーションプログラム 421、又は大容量不揮発性メモリ 205から 読み出されたアプリケーションプログラム 423を復号ィ匕するための領域 (第 2領域)を 有している。復号化されたアプリケーションプログラム 422は、 RAM406の第 2領域 に保持される。プログラム記憶領域 406a及び第 2領域は固定された領域ではな 、。
[0042] 公開鍵記憶部 407は、暗号ィ匕されているアプリケーションプログラムを復号ィ匕する ための公開鍵を保持する。
[0043] 復号ィ匕部 408は、暗号ィ匕されているアプリケーションプログラムを、公開鍵記憶部 4 07によって保持されている公開鍵で復号ィ匕する。
[0044] 実行部 409は、復号化処理されたアプリケーションプログラム 422を実行する。
[0045] 図 5は、 TRM204における、アプリケーションプログラムの移動を実行する構成部 のブロック図である。図 5に示すように、 TRM204は、プログラム管理部 401と、履歴 管理部 402と、格納制御部 403と、移動制御部 404と、実行部 409と、再読み込み部 410と、削除部 411とを有する。移動制御部 404は、時刻情報取得部 503と、移動判 定部 505と、一時記憶部 507とを有する。
[0046] 時刻情報取得部 503は、 SDIZF207を介して、ホスト機器 202より時刻情報を取 得する。時刻情報取得部 503は、アプリケーションプログラムにアクセスする度に現在 時刻を取得してもよい。時刻情報取得部 503は、アプリケーションプログラムのダウン ロード時にその時点での現在時刻を取得し、その後の経過時間は SDカード 203内 の CPUのクロックから算出し、アプリケーションプログラムのダウンロード時の時刻に 算出した経過時間を加算することにより、アプリケーションプログラムにアクセスする際 の時刻を取得してもよ!ヽ。時刻情報取得部 503による現在時刻の取得方法は問わな い。
[0047] 一時記憶部 507は、ダウンロード開始時に通知されるダウンロード対象のアプリケ ーシヨンプログラムの暗号ィ匕時のデータサイズ及び復号ィ匕時のデータサイズ等の情 報を一時的に記憶する。
[0048] 図 6は、履歴管理部 402によって管理される履歴管理情報 509の例を示す図であ る。図 6に示すように、履歴管理情報 509は、アプリケーションプログラムを一意に識 別するためのプログラム IDと、アプリケーションプログラムへの最終のアクセス日を示 す最終アクセス日と、最終アクセス日の直前のアプリケーションプログラムへのァクセ ス日を示す前々回アクセス日と、前々回アクセス日から最終アクセス日までの経過日 数を示すアクセス間隔との 4項目から構成される。
[0049] 図 7は、プログラム管理部 401によって管理されるプログラム管理情報 510の例を示 す図である。図 7に示すように、プログラム管理情報 510は、アプリケーションプロダラ ムを一意に識別するためのプログラム IDと、アプリケーションプログラムの保存先と、 アプリケーションプログラムの暗号化時のサイズと、アプリケーションプログラムの復号 化時のサイズと、プログラム記憶領域 406aから大容量不揮発性メモリ 205への移動 対象に決定されたアプリケーションプログラムであることを示す移動フラグと、アプリケ ーシヨンプログラムの実行時に実行対象のアプリケーションプログラムの復号ィ匕が完 了して 、ることを示す復号化済みフラグとから構成される。アプリケーションプログラム の保存先は、 TRM204 (RAM406)又は大容量不揮発性メモリ 205である。プログ ラム記憶領域 406aから大容量不揮発性メモリ 205への移動対象に決定されたアプリ ケーシヨンプログラムの移動フラグには、 "1" (ON)が記載される。復号化が完了して いるアプリケーションプログラムの復号ィ匕済みフラグには、 "1"が記載される。
[0050] 移動判定部 505は、時刻情報取得部 503から取得する現在時刻、一時記憶部 50 7で保持されているアプリケーションプログラムの暗号化時のデータサイズ及び復号 化時のデータサイズ等の情報、履歴管理部 402から取得する履歴管理情報 509、及 びプログラム管理部 401から取得するプログラム管理情報を用いて、 TRM204から 大容量不揮発性メモリ 205に移動させるアプリケーションプログラムを決定する。
[0051] TRM204から大容量不揮発性メモリ 205に移動させるアプリケーションプログラム の決定手順を以下に示す。
[0052] 初めに、移動判定部 505は、プログラム管理部 401からプログラム管理情報 510を 取得し、 RAM406の全容量と、 RAM406に存在するアプリケーションプログラムの 暗号化時のデータサイズ及び復号化時のデータサイズとから、現在の RAM406の 空き容量を取得する。
[0053] アプリケーションプログラムをダウンロードする場合、移動判定部 505は、一時記憶 部 507に記憶されているダウンロード対象のアプリケーションプログラム 420の暗号化 時のデータサイズと、先に取得した RAM406の空き容量とを比較する。ダウンロード 対象のアプリケーションプログラム 420の暗号化時のデータサイズが RAM406の空 き容量を超える場合、プログラム記憶領域 406aに保存されて 、るアプリケーションプ ログラム 421のいずれかを、大容量不揮発性メモリ 205に移動させる処理に移行する
[0054] アプリケーションプログラムを実行する場合、移動判定部 505は、実行対象となるァ プリケーシヨンプログラムの復号化時のデータサイズと、 RAM406の空き容量とを比 較する。復号化時のアプリケーションプログラム 422のサイズ力 RAM406の空き容 量を超える場合、プログラム記憶領域 406aに保存されて 、るアプリケーションプログ ラム 421のいずれかを、大容量不揮発性メモリ 205に移動させる処理に移行する。
[0055] 移動判定部 505は、時刻情報取得部 503より現在時刻を取得する。
[0056] 移動判定部 505は、プログラム管理部 401に問合せ、プログラム管理情報 510の中 で、保存先が TRM204であるアプリケーションプログラムの IDを取得する。
[0057] 次に、移動判定部 505は、履歴管理部 402に問合せ、履歴管理情報 509を取得 する。移動判定部 505は、最終アクセス日が最も古いアプリケーションプログラムを移 動対象のアプリケーションプログラムと決定し、先のプログラム管理部 401への問合 せの結果より抽出したプログラム IDの中から、移動対象に決定されたアプリケーショ ンプログラムの IDを取得するとともに、そのアプリケーションプログラムの暗号化時の データサイズを取得する。そして、移動判定部 505は、プログラム管理部 401に対し て、移動対象に決定したアプリケーションプログラムに関して、プログラム管理情報 51 0の移動フラグを ON (1)に設定し、保存先を大容量不揮発性メモリ 205に更新する ように指示する。
[0058] 次に、移動判定部 505は、移動対象として決定したアプリケーションプログラムの暗 号化時のデータサイズを RAM406の空き容量に加算し、アプリケーションプログラム のダウンロード、又はアプリケーションプログラムの復号化処理に十分な RAM406の 空き容量が確保できる力否かを確認する。 1個のアプリケーションプログラムを大容量 不揮発性メモリ 205に移動しても十分な RAM406の空き容量が確保できな 、場合、 移動判定部 505は、再度、プログラム管理部 401及び履歴管理部 402に問合せ、大 容量不揮発性メモリ 205に移動させるアプリケーションプログラムの IDを抽出する。移 動判定部 505は、アプリケーションプログラムのダウンロード、又は実行対象のアプリ ケーシヨンプログラムの復号化を行なうために必要な RAM406の領域が確保するこ とができるまで、大容量不揮発性メモリ 205へ移動させるアプリケーションプログラム の IDの抽出を繰り返す。
[0059] また、大容量不揮発性メモリ 205に移動していたアプリケーションプログラム 423を 実行する場合においても、 RAM406上に、アプリケーションプログラム 423の復号化 に必要な領域が確保できないときは、移動判定部 505は、上記と同様の処理を行な う。これにより、 RAM406上に、アプリケーションプログラム 423の復号化に必要な領 域が確保される。
[0060] 最後に、移動判定部 505は、プログラム管理情報 510において移動フラグが ON (1 )になっているアプリケーションプログラムの IDを、移動制御部 404に通知する。
[0061] 移動制御部 404は、移動判定部 505から通知されたプログラム IDを持つアプリケ ーシヨンプログラムを、大容量不揮発性メモリ 205にコピーする。移動制御部 404は、 アプリケーションプログラムの大容量不揮発性メモリ 205へのコピーが完了すると、移 動判定部 505を介して、プログラム管理部 401にプログラム管理情報 510の移動フラ グを全て OFF (0)にするように指示する。移動制御部 404は、大容量不揮発性メモリ 205へのコピーが完了したアプリケーションプログラム 421を削除する。
[0062] 削除部 411は、復号ィ匕済みで実行対象ではなくなつたアプリケーションプログラム 4 22を削除する。
[0063] 実行部 409は、復号化処理されたアプリケーションプログラム 422を実行する。
[0064] 再読み込み部 410は、大容量不揮発性メモリ 205に移動していたアプリケーション プログラム 423を実行する際に、アプリケーションプログラム 423を大容量不揮発性メ モリ 205から読み込む。
[0065] 図 8は、アプリケーションプログラムをダウンロードする時のアプリケーションプログラ ムの移動処理のフローを示す図である。アプリケーションプログラムのダウンロードが 開始されると(S800)、 TRM204内の各構成部は、以下のように動作する。
[0066] 初めに、一時記憶部 507は、ダウンロードに先立って通知されたダウンロード対象 のアプリケーションプログラムの暗号化時のデータサイズ及び復号化時のデータサイ ズを保持する。 [0067] 次に、移動判定部 505は、プログラム管理部 401よりプログラム管理情報 510を取 得し、 RAM406の全容量と、 RAM406に存在するアプリケーションプログラムの喑 号化時のデータサイズ及び復号化時のデータサイズとから、現在の RAM406の空き 容量を取得する(S801)。
[0068] 次に、移動判定部 505は、取得した RAM406の空き容量と、一時記憶部 507に保 存されているダウンロード対象のアプリケーションプログラムの暗号化時のデータサイ ズとを比較する(S802)。なお、 RAM406の空き容量とプログラム記憶領域 406aは 等しいものとする。
[0069] ダウンロード対象のアプリケーションプログラムのサイズが、 RAM406の空き容量以 下である場合(S802で Yes)、プログラム取得部 400はダウンロードされるアプリケー シヨンプログラムを取得し、格納制御部 403は取得されるアプリケーションプログラム を RAM406のプログラム記憶領域 406aに格納する(S803)。そして、移動判定部 5 05はプログラム管理部 401にプログラム管理情報 510を更新するように指示し、プロ グラム管理部 401はプログラム管理情報 510を更新し(S812)、ダウンロード処理は 終了する(S813)。
[0070] 逆に、ダウンロード対象のアプリケーションプログラムのサイズ力 RAM406の空き 容量を超える場合(S802で No)、移動判定部 505は RAM406の空き容量を確保す るための処理を開始する。
[0071] 最初に、移動判定部 505は、時刻情報取得部 503から時刻情報を取得する(S80 4)。
[0072] 次に、移動判定部 505は、プログラム管理部 401に問合せ、プログラム管理情報 5 10を取得し、保存先が TRM204であるアプリケーションプログラムの IDを取得する( S805)。
[0073] 次に、移動判定部 505は、履歴管理部 402に問合せ、履歴管理情報 509を取得 する(S806)。
[0074] 移動判定部 505は、 S806で取得した履歴管理情報 509から、 S805で取得したプ ログラム IDのうち最終アクセス日が最も古いアプリケーションプログラムを、大容量不 揮発性メモリ 205への移動対象のアプリケーションプログラムと決定し、プログラム管 理情報 510から移動対象のアプリケーションプログラムの暗号化時のデータサイズを 取得する(S807)。
[0075] 次に、移動判定部 505は、プログラム管理部 401に対して、移動対象に決定したァ プリケーシヨンプログラムのプログラム管理情報 510の移動フラグを ON (1)に設定す るとともに、保存先を大容量不揮発性メモリ 205に更新するように指示し、その指示に 従って、プログラム管理部 401はプログラム管理情報 510を更新する(S808)。
[0076] 格納制御部 403は、 S807で決定された移動対象のアプリケーションプログラムを、 大容量不揮発性メモリ 205に移動する(S810)。次に、移動処理後の RAMの空き容 量を取得し、 S802に遷移して、ダウンロードするアプリケーションプログラムがプログ ラム記憶領域 406aに保存可能となるまで、 S802から S810の処理を繰り返す。
[0077] 最後に、プログラム管理部 401は、プログラム管理情報 510の移動フラグを全て OF F (0)に設定し、アプリケーションプログラムをダウンロードする処理は終了する(S81 3)。
[0078] なお、上記では、 S807において、移動判定部 505は、移動対象となるアプリケーシ ヨンプログラムとして、最終アクセス日が最も古いアプリケーションプログラムを決定す る。しかしながら、移動判定部 505は、アクセス間隔が一番長いアプリケーションプロ グラムを移動対象と決定したり、特定の曜日にのみアクセスするアプリケーションプロ グラムを移動対象と決定してもよい。すなわち、移動判定部 505は、アプリケーション プログラムの実行履歴に応じて大容量不揮発性メモリ 205に移動させるアプリケーシ ヨンプログラムを決定してもよい。しかしながら、 RAM406の空き容量をダウンロード 対象等の RAM406に格納されるアプリケーションプログラムのサイズ以上にする方 法であれば、移動すべきアプリケーションプログラムを決定する方法にっ 、ては問わ ない。
[0079] 図 9は、 RAM406上に復号化済みのアプリケーションプログラム 422が存在する場 合における、アプリケーションプログラムのダウンロード時のアプリケーションプログラ ム移動処理のフローを示す図である。図 8における処理フローとほぼ同じであるが、 異なる点は S904である。図 8における処理フローでは、 RAM406の空き領域確保 のため、プログラム記憶領域 406aに保存されているアプリケーションプログラム 421 の中から、大容量不揮発性メモリ 205に移動させるアプリケーションプログラムを決定 する。し力しながら、 S904において、削除部 411は、大容量不揮発性メモリ 205に移 動させるアプリケーションプログラムが決定されることより優先して、 RAM406に存在 する復号ィ匕済みのアプリケーションプログラム 422を削除する。この点が図 9と図 8と が異なる。
[0080] 図 10は、プログラム記憶領域 406aに保存済みのアプリケーションプログラムを実行 する場合の処理フローを示す図である。
[0081] アプリケーションプログラムの実行が開始されると(S1000)、移動判定部 505は、 プログラム管理部 401からプログラム管理情報 510を取得し、 S801と同様の手順で RAM406の空き容量を取得する(S1001)。
[0082] また、移動判定部 505は、 S1001において取得したプログラム管理情報 510から、 実行対象のアプリケーションプログラムの復号ィ匕後のサイズを取得する(S 1002)。
[0083] 次に、移動判定部 505は、取得した RAM406の空き容量と、 S 1002で取得した復 号化後のデータサイズとを比較する(S 1003)。なお、 RAM406の空き容量とプログ ラム記憶領域 406aは等し!/、ものとする。復号化後のデータサイズが RAM406の空 き容量以下である場合 (S1003で Yes)、復号ィ匕部 408は、暗号ィ匕されている実行対 象のアプリケーションプログラムを復号化し(S 1004)、プログラム管理部 401はプロ グラム管理情報 510を更新し(S1012)、実行部 409はアプリケーションプログラムを 実行する(S1013)。逆に、復号ィ匕後のデータサイズが RAM406の空き容量を超え る場合(S1003で No)、移動判定部 505は RAM406の空き容量を確保するための 処理を開始する。
[0084] 初めに、移動判定部 505は、時刻情報取得部 503から時刻情報を取得する(S10 05)。
[0085] 次に、移動判定部 505は、履歴管理部 402に問合せ、履歴管理情報 509を取得 する(S1006)。移動判定部 505は、 S1006で取得された履歴管理情報 509と S10 02で取得されたプログラム管理情報 510とから、保存先が TRM204であるアプリケ ーシヨンプログラムで、かつ最終のアクセス日が最も古いアプリケーションプログラムを 、大容量不揮発性メモリ 205への移動対象のアプリケーションプログラムと決定し、そ の暗号化時のデータサイズを取得する(S1007)。なお、図 8と同様に、履歴管理情 報 509から移動させるアプリケーションプログラムを決定するアルゴリズムは、使用頻 度等を考慮した決定方法でもよぐその方法は問わない。
[0086] 次に、移動判定部 505は、プログラム管理部 401に対して、移動対象に決定したァ プリケーシヨンプログラムのプログラム管理情報 510の移動フラグを ON (1)に設定し 、保存先を大容量不揮発性メモリ 205に更新するように指示し、プログラム管理部 40 1は、プログラム管理情報 510を更新する(S1008)。
[0087] 移動制御部 404は、 S 1007で移動対象に決定されたアプリケーションプログラムを 、大容量不揮発性メモリ 205に移動する(S1010)。次に、移動処理後の RAMの空 き容量を取得し、 S 1003に遷移して、実行対象のアプリケーションプログラムの復号 化処理が実行できるだけの RAM406の空き容量が確保できるまで、 S1003力ら S1 010の処理を繰り返す。
[0088] 次に、復号ィ匕部 408は、実行対象のアプリケーションプログラムの復号ィ匕処理を行 なう(S 1004)。
[0089] プログラム管理部 401は、プログラム管理情報 510の移動フラグを全て OFF (0)に 設定し、プログラム管理情報 510を更新する(S1012)。
[0090] そして、実行部 409はアプリケーションプログラムを実行する(S1013)。
[0091] 図 11は、大容量不揮発性メモリ 205に移動していたアプリケーションプログラム 423 を実行する場合の処理フローを示す図である。アプリケーションプログラムの実行が 開始されると(S1100)、 TRM204内の各構成部は、以下のように動作する。
[0092] 初めに、移動判定部 505は、プログラム管理部 401からプログラム管理情報 510を 取得し、実行しょうとするアプリケーションプログラムの保存先が大容量不揮発性メモ リ 205であることを確認するとともに、実行対象のアプリケーションプログラムの暗号ィ匕 時のデータサイズと復号化時のデータサイズとを取得する(S1101)。
[0093] 次に、移動判定部 505は、 S1101で取得したプログラム管理情報 510の保存先情 報、暗号化時のデータサイズ、及び復号化後のデータサイズより、 RAM406の空き 容量を取得する(S 1102)。
[0094] 次に、移動判定部 505は、 S1101で取得した実行対象のアプリケーションプロダラ ムの暗号ィ匕時のデータサイズと復号ィ匕時のデータサイズとの合計と、 S1102で取得 した RAM406の空き容量とを比較する(S1103)。なお、 RAM406の空き容量とプ ログラム記憶領域 406aは等 、ものとする。
[0095] 上記合計が RAM406の空き容量以下である場合(S 1103で Yes)、再読み込み部 410は、大容量不揮発性メモリ 205から実行対象のアプリケーションプログラム 423を 読み込み、格納制御部 403は読み込まれた実行対象のアプリケーションプログラム 4 23を RAM406に格糸内する (S 1104)。復号ィ匕咅408は復号ィ匕処理を行な!/ヽ(S110 5)、プログラム管理部 401はプログラム管理情報 510を更新し(S1113)、実行部 40 9は実行対象のアプリケーションプログラムを実行する(S 1114)。
[0096] 逆に、上記合計が RAM406の空き容量を超える場合(S 1103で No)、移動判定 部 505は RAM406の空き容量を確保するための処理を開始する。
[0097] まず、移動判定部 505は、時刻情報取得部 503から時刻情報を取得する(S1106
) o
[0098] 次に、移動判定部 505は、履歴管理部 402に問合せ、履歴管理情報 509を取得 する(S1107)。
[0099] 次に、移動判定部 505は、 S1101で取得したプログラム管理情報 510の中で、保 存先が TRM204であるアプリケーションプログラムで、かつ S 1107で取得した履歴 管理情報 509の中で、最終アクセス日が最も古いプログラム IDを抽出する。移動判 定部 505は、抽出したプログラム IDに対応するアプリケーションプログラムを大容量 不揮発性メモリ 205への移動対象と決定し (S 1108)、プログラム管理情報 510より、 移動対象に決定されたアプリケーションプログラムの暗号ィ匕時のデータサイズを取得 する。
[0100] 次に、プログラム管理部 401は、移動対象に決定されたアプリケーションプログラム のプログラム管理情報 510の移動フラグを ΟΝ (1)に設定し、保存先を大容量不揮発 性メモリ 205に更新する(S 1109)。
[0101] 移動制御部 404は、 S 1108で移動対象に決定したアプリケーションプログラムを、 プログラム記憶領域 406aから大容量不揮発性メモリ 205に移動する(S 1111)。次に 、移動処理後の RAMの空き容量を取得し、 S 1103に遷移して、実行対象のアプリケ ーシヨンプログラムの復号化処理が可能になるまで S 1103力ら S 1111の処理を繰り 返す。
[0102] 最後に、プログラム管理部 401は、プログラム管理情報 510の移動フラグを全て OF F (0)に設定し、アプリケーションプログラムの移動処理は終了する。
[0103] アプリケーションプログラムの移動処理が終了した後、移動制御部 404は、実行対 象のアプリケーションプログラム 423を大容量不揮発性メモリ 205から読み込み、読 み込んだ実行対象のアプリケーションプログラム 423を RAM406にコピーする(S 11 04)。
[0104] 最後に、移動制御部 404は復号ィ匕処理を行ない(S 1105)、プログラム管理部 401 はプログラム管理情報 510を更新し(S1113)、その後、実行部 409は、 S1105で復 号化済みのアプリケーションプログラム 422を実行する(S 1114)。
[0105] なお、 S1108において、移動判定部 505は、移動対象となるアプリケーションプロ グラムとして、最終アクセス日が最も古いアプリケーションプログラムを決定する。しか しながら、移動判定部 505は、アクセス間隔が一番長いアプリケーションプログラムを 移動対象と決定したり、特定の曜日にのみアクセスするアプリケーションプログラムを 移動対象と決定してもよい。すなわち、移動判定部 505は、アプリケーションプロダラ ムの実行履歴に応じて大容量不揮発性メモリ 205に移動させるアプリケーションプロ グラムを決定してもよい。 RAM406の空き容量をダウンロード対象等の RAM406に 格納されるアプリケーションプログラムのサイズより大きくする方法であれば、移動す べきアプリケーションプログラムを決定する方法については問わない。
[0106] また、図 11に示す処理フローでは、 RAM406の空き領域確保のための処理にお いて、 S 1106力ら SI 110で示すようなプログラム記憶領域 406aに保存されて!、るァ プリケーシヨンプログラム 421の移動処理が行なわれる。しかしながら、 RAM406に 復号化済みのアプリケーションプログラム 422が存在する場合、削除部 411が RAM 406に存在する復号化済みのアプリケーションプログラム 422を削除する処理力 優 先されてもよい。
[0107] また、図 11に示す処理フローでは、 S1103において、移動判定部 505は、実行対 象のアプリケーションプログラムの暗号化時のデータサイズと復号化時のデータサイ ズとの合計と、 RAM406の空き容量とを比較する。しかしながら、 S1103において、 移動判定部 505は、実行対象のアプリケーションプログラムの復号ィ匕時のデータサイ ズと、 RAM406の空き容量とを比較してもよい。
[0108] その場合、実行対象のアプリケーションプログラムの復号ィ匕時のデータサイズが RA M406の空き容量以下であるとき(S 1103で Yes)、復号化部 408は実行対象のァプ リケーシヨンプログラム 423を読み込んで復号化処理を行なって RAM406に格納し てもよい。他方、実行対象のアプリケーションプログラムの復号ィ匕時のデータサイズが RAM406の空き容量を超えるとき(S 1103で No)、移動判定部 505は、実行対象の アプリケーションプログラムの復号化時のデータサイズが RAM406の空き容量以下 になるように、 RAM406の空き容量を確保するための処理を開始する。
[0109] 上述した構成及び動作により、サービスプロノイダ力もダウンロードされたアプリケ ーシヨンプログラムを、ダウンロードされたときの暗号ィ匕された状態のまま大容量不揮 発性メモリ 205に簡単に移動させることができる。そのため、サービスプロバイダが要 求するセキュリティ強度を保った状態で、より多くのアプリケーションプログラムを、 SD カード 203をはじめとする ICカード機能が搭載されたセキュアメモリカード内に保存 することが可能となる。
[0110] 図 12は、サービスプロバイダが提供するアプリケーションプログラムの情報の一例 を示している。
[0111] 以下に、図 12に示すアプリケーションプログラムのダウンロード時の処理及び実行 時の処理を具体的に説明する。以下では、 RAM406の全体の容量は 120KBであ ると仮定する。
[0112] ステップ 1として、 RAM406が未使用の状態であり、 SDカード 203にアプリケーショ ンプログラム Aをダウンロードする場合の処理フローについて、詳細に説明する。
[0113] ホスト機器 202からのアプリケーションプログラム Aのダウンロード指示により、アプリ ケーシヨンプログラム Aのダウンロード処理が開始する。
[0114] ダウンロード処理が開始されると、サービスプロバイダよりアプリケーションプログラム Aの暗号化時のデータサイズ及び復号化時のデータサイズ等の情報が、 SDカード 2 03に送信されてくる。それら送信される情報は一時記憶部 507に保存される。この場 合、一時記憶部 507には、アプリケーションプログラム Aの暗号ィ匕時のデータサイズと して 10KB力 アプリケーションプログラム Aの復号化時のデータサイズとして 30KB が保存される。
[0115] 次に、移動判定部 505は、プログラム管理部 401よりプログラム管理情報 510を取 得し、 RAM406の空き容量を取得する。この場合、アプリケーションプログラムが何も ダウンロードされて ヽな 、状態なので、 RAM406の使用領域のサイズは 0KBであり 、 RAM406の空き領域は 120KBである。
[0116] 次に、移動判定部 505は、一時記憶部 507に保存されているアプリケーションプロ グラム Aの暗号化時のデータサイズと、 RAM406の空き容量とを比較する。この場合 、移動判定部 505は、アプリケーションプログラム Aの暗号化時のデータサイズが 10 KBであり、 RAM406の空き容量が 120KBであるため、アプリケーションプログラム Aをプログラム記憶領域 406aに保存可能であると判断し、格納制御部 403はアプリ ケーシヨンプログラム Aをプログラム記憶領域 406aに保存する。
[0117] 以上により、アプリケーションプログラム Aのダウンロード処理が完了する。
[0118] アプリケーションプログラム Aのダウンロード処理が完了した後、プログラム管理情報 510は、プログラム管理部 401によって、図 13 (A)のように更新される。また、 RAM4 06の状態は、図 13 (B)のようになる。
[0119] 引き続き、ステップ 2として、 SDカード 203にアプリケーションプログラム Bをダウン口 ードする場合の処理フローについて、詳細に説明する。
[0120] ホスト機器 202からのアプリケーションプログラム Bのダウンロード指示により、アプリ ケーシヨンプログラム Bのダウンロード処理が開始する。
[0121] ダウンロード処理が開始されると、ステップ 1で示したアプリケーションプログラム Aの ダウンロード時と同様に、アプリケーションプログラム Bに関する情報(暗号化時のデ ータサイズ及び復号ィ匕時のデータサイズ)が、一時記憶部 507に保存される。この場 合、一時記憶部 507には、アプリケーションプログラム Bの暗号ィ匕時のデータサイズと して 30KB力 アプリケーションプログラム Bの復号化時のデータサイズとして 50KB が保存される。
[0122] 次に、移動判定部 505は、プログラム管理部 401よりステップ 1で更新済みのプログ ラム管理情報 1300を取得し、 RAM406の空き容量を取得する。この場合、 RAM4 06に保存されているアプリケーションプログラムは、アプリケーションプログラム Aのみ であり、 RAM406の使用領域サイズは 10KBであることから、 RAM406の空き領域 は 110KBである。
[0123] 次に、移動判定部 505は、一時記憶部 507に保存されているアプリケーションプロ グラム Bの暗号化時のデータサイズと、 RAM406の空き容量とを比較する。この場合 、移動判定部 505は、アプリケーションプログラム Bの暗号化時のデータサイズが 30 KBであり、 RAM406の空き領域は 110KBであるため、アプリケーションプログラム B をプログラム記憶領域 406aに保存可能であると判断し、格納制御部 403はアプリケ ーシヨンプログラム Bをプログラム記憶領域 406aに保存する。
[0124] 以上により、アプリケーションプログラム Bのダウンロード処理が完了する。
[0125] アプリケーションプログラム Bのダウンロード処理が完了した後、プログラム管理情報 1300は、プログラム管理部 401によって、図 14 (A)のように更新される。また、 RAM 406の状態は、図 14 (B)のようになる。
[0126] 続!、て、ステップ 3として、アプリケーションプログラム Bを実行する場合の処理フロ 一について、詳細に説明する。
[0127] ホスト機器 202からのアプリケーションプログラム Bの実行指示により、アプリケーショ ンプログラム Bの実行処理が開始する。
[0128] 初めに、移動判定部 505は、プログラム管理部 401からステップ 2で更新済みのプ ログラム管理情報 1400を取得し、実行対象であるアプリケーションプログラム Bの復 号ィ匕後のデータサイズを取得し、一時記憶部 507に保存する。この場合、一時記憶 部 507に保存される値は 50KBとなる。
[0129] 次に、移動判定部 505は、プログラム管理情報 1400より、 RAM406の空き容量を 取得する。この場合、 RAM406には、暗号化されたアプリケーションプログラム A (10 KB)と、暗号化されたアプリケーションプログラム B (30KB)とが含まれるため、 RAM 406の空き容量は 80KBである。
[0130] 次に、移動判定部 505は、一時記憶部 507に保存されているアプリケーションプロ グラム Bの復号化後のデータサイズ 50KBと、 RAM406の空き容量 80KBとを比較し 、アプリケーションプログラム Bは RAM406上で復号化可能であると判断する。
[0131] この後、 S1004で示したように、復号化部 408はアプリケーションプログラム Bを復 号化処理し、プログラム管理部 401は、プログラム管理情報 1400を図 15 (A)のよう に更新する。 RAM406の状態は、図 15 (B)のようになる。
[0132] 以上により、アプリケーションプログラム Bが実行可能状態となり、実行部 409はァプ リケーシヨンプログラム Bを実行する。
[0133] 続いて、ステップ 4として、 SDカード 203にアプリケーションプログラム Cをダウン口 ードする場合の処理フローについて、詳細に説明する。
[0134] ホスト機器 202からのアプリケーションプログラム Cのダウンロード指示により、アプリ ケーシヨンプログラム Cのダウンロード処理が開始する。
[0135] ダウンロード処理が開始されると、ステップ 1で示したアプリケーションプログラム Aの ダウンロード時と同様に、アプリケーションプログラム Cに関する情報(暗号化時のデ ータサイズ及び復号ィ匕時のデータサイズ)が、一時記憶部 507に保存される。この場 合、一時記憶部 507には、アプリケーションプログラム Cの暗号ィ匕時のデータサイズと して 40KB力 アプリケーションプログラム Cの復号化時のデータサイズとして 70KB が保存される。
[0136] 次に、移動判定部 505は、プログラム管理部 401よりステップ 3で更新済みのプログ ラム管理情報 1500を取得し、 RAM406の空き容量を取得する。この場合、 RAM4 06には、暗号化されたアプリケーションプログラム A (10KB)と、暗号化されたアプリ ケーシヨンプログラム B (30KB)と、復号化されたアプリケーションプログラム B (50KB )とが存在することから、 RAM406の空き容量は 30KBである。
[0137] 次に、移動判定部 505は、一時記憶部 507に保存されているアプリケーションプロ グラム Cの暗号化時のデータサイズ (40KB)と、 RAM406の空き容量(30KB)とを 比較する。この場合、 RAM406の空き容量が不足することから、移動判定部 505は 、 RAM406の空き容量を確保するための処理を行なう。
[0138] RAM406の空き容量を確保するための処理フローとして、ここでは S904を採用す る。
[0139] すなわち、移動判定部 505は、 RAM406に存在している 3つのアプリケーションプ ログラムの中で、 S904の処理フロー〖こ基づき、復号化されたアプリケーションプログ ラム Bを削除する処理を選択する。
[0140] 次に、移動判定部 505は、再度、 RAM406の空き容量を取得する。復号化された アプリケーションプログラム Bが削除された後の RAM406の空き容量は 80KBとなる
。移動判定部 505は、一時記憶部 507に保存されているアプリケーションプログラム
Cの暗号化時のデータサイズ (40KB)と、 RAM406の空き容量(80KB)とを比較し
、アプリケーションプログラム Cがダウンロード可能であると判断する。
[0141] 次に、格納制御部 403は、ダウンロードされたアプリケーションプログラム Cをプログ ラム記憶領域 406aに保存する。
[0142] そして、プログラム管理部 401によって、プログラム管理情報 1500は、図 16 (A)の ように更新される。また、 RAM406の状態は、図 16 (B)のようになる。
[0143] 以上により、アプリケーションプログラム Cのダウンロード処理が完了する。
[0144] 続!、て、ステップ 5として、アプリケーションプログラム Cを実行する場合の処理フロ 一について、詳細に説明する。
[0145] ホスト機器 202からのアプリケーションプログラム Cの実行指示により、アプリケーシ ヨンプログラム Cの実行処理が開始する。
[0146] ステップ 3で述べたように、初めに、移動判定部 505は、更新済みのプログラム管理 情報 1600からアプリケーションプログラム Cの復号化後のデータサイズ(70KB)を取 得し、一時記憶部 507に保存する。
[0147] 次に、移動判定部 505は、ステップ 3で述べたように、プログラム管理情報 1600より
RAM406の空き容量を取得する。この場合、 RAM406の空き容量は 40KBである。
[0148] そして、移動判定部 505は、一時記憶部 507に保存されているアプリケーションプ ログラム Cの復号化後のデータサイズ(70KB)と、 RAM406の空き容量(40KB)とを 比較し、アプリケーションプログラム Cの実行に必要な領域が RAM406上に確保でき ないと判断する。
[0149] そして、移動判定部 505は、 S1005力ら S1008の処理フロー〖こ基づき、大容量不 揮発性メモリ 205に移動すべきアプリケーションプログラムを決定する処理を行なう。 ここでは、最初にダウンロードされたアプリケーションプログラム力 ダウンロード順に 大容量不揮発性メモリ 205に移動させる場合を想定する。移動判定部 505は、大容 量不揮発性メモリ 205への移動対象のアプリケーションプログラムとして、ステップ 1で ダウンロードされたアプリケーションプログラム Aを決定する。
[0150] 次に、プログラム管理部 401は、プログラム管理情報 1600を、図 17 (A)のように更 新する。また、 RAM406の状態は、図 17 (B)のようになる。
[0151] 再度、移動判定部 505は、一時記憶部 507に保存されているアプリケーションプロ グラム Cの復号化後のデータサイズ(70KB)と、 RAM406の空き容量(50KB)とを 比較し、アプリケーションプログラム Cの実行に必要な領域が RAM406上にまだ確 保できないと判断する。
[0152] 移動判定部 505は、移動対象となるアプリケーションプログラムとして、ステップ 2で ダウンロードされたアプリケーションプログラム Bを選択する。
[0153] そして、プログラム管理部 401は、プログラム管理情報 1700を、図 18 (A)のように 更新する。また、 RAM406の状態は、図 18 (B)のようになる。
[0154] 再度、移動判定部 505は、一時記憶部 507に保存されているアプリケーションプロ グラム Cの復号化後のデータサイズ(70KB)と、 RAM406の空き容量(80KB)とを 比較し、アプリケーションプログラム Cの実行に必要な領域が RAM406上に確保でき たと判断する。
[0155] 移動制御部 404は、プログラム管理情報 1800において、移動フラグが ON (1)に 設定されて 、るアプリケーションプログラム A (ID: 0x0001)とアプリケーションプログ ラム B (ID : 0x0002)とを、 RAM406から大容量不揮発性メモリ 205にコピーする。
[0156] そして、移動制御部 404は、コピーが完了したアプリケーションプログラム Aとアプリ ケーシヨンプログラム Bとを、プログラム記憶領域 406aから削除する。
[0157] 最後に、プログラム管理部 401によって、プログラム管理情報 1800は、図 19 (A)の ように更新される。また、 RAM406の状態は、図 19 (B)のようになる。
[0158] 以上により、アプリケーションプログラム Cが実行可能状態となり、実行部 409はァプ リケーシヨンプログラム Cを実行する。
[0159] 続いて、ステップ 6として、大容量不揮発性メモリ 205に移動したアプリケーションプ ログラム Bを実行する場合の処理フローについて、詳細に説明する。 [0160] ホスト機器 202からのアプリケーションプログラム Bの実行指示により、アプリケーショ ンプログラム Bの実行処理が開始する。
[0161] ステップ 3で述べたように、初めに、移動判定部 505は、更新済みのプログラム管理 情報 1900からアプリケーションプログラム Bの復号化後のデータサイズ(50KB)を取 得し、一時記憶部 507に保存する。
[0162] 次に、移動判定部 505は、ステップ 3で述べたように、プログラム管理情報 1900より
RAM406の空き容量を取得する。この場合、 RAM406の空き容量は 10KBである。
[0163] そして、移動判定部 505は、一時記憶部 507に保存されているアプリケーションプ ログラム Bの復号化後のデータサイズ(50KB)と、 RAM406の空き容量(10KB)とを 比較し、アプリケーションプログラム Bの実行に必要な領域が RAM406上に確保でき ないと判断する。
[0164] そして、移動判定部 505は、 RAM406上の復号化済みのアプリケーションプロダラ ムを優先して削除する処理フローをまず採用し、プログラム管理情報 1900に基づい て、復号化されたアプリケーションプログラム Cを削除対象と決定する。
[0165] そして、削除部 411は、 RAM406上の復号化されたアプリケーションプログラム C ( 70KB)を削除する。
[0166] アプリケーションプログラム Cが削除された後、プログラム管理部 401はプログラム管 理情報 1900を図 20 (A)のように更新する。また、 RAM406の状態は、図 20 (B)の ようになる。
[0167] 再度、移動判定部 505は、一時記憶部 507に保存されているアプリケーションプロ グラム Bの復号化後のデータサイズ(50KB)と、 RAM406の空き容量(80KB)とを 比較し、 RAM406上に、アプリケーションプログラム Bを復号化するための領域が確 保できたと判断する。
[0168] 移動制御部 404は、大容量不揮発性メモリ 205からアプリケーションプログラム Bを 読み出して RAM406にコピーし、アプリケーションプログラム Bの復号化処理を行な
[0169] そして、プログラム管理部 401は、プログラム管理情報 2000を図 21 (A)のように更 新する。このとき、 RAM406の状態は、図 21 (B)のようになる。 [0170] 最後に、実行部 409は、復号化処理されたアプリケーションプログラム Bを実行する
[0171] 以上により、大容量不揮発性メモリ 205に移動していたアプリケーションプログラム B が実行される。
[0172] なお、実施の形態 1では、 TRM204は本発明のメモリカードの ICカード部の一例で ある。大容量不揮発性メモリ 205は本発明のメモリカードのフラッシュメモリ部の一例 である。 RAM406は本発明のメモリカードの耐タンパ記憶部の一例である。
[0173] アプリケーションプログラムの復号化時のデータサイズがダウンロードされるので、 実行部 409は、そのアプリケーションプログラムを実行するとき、そのアプリケーション プログラムの復号ィ匕時のデータサイズを、そのアプリケーションプログラムを実行する ことにより取得し、その取得したサイズがダウンロードされたサイズと一致している力否 かを判断してもよい。両者が一致していなければ、実行対象のアプリケーションプログ ラムは不正なプログラムであるので、実行部 409はそのアプリケーションプログラムの 実行を停止する。これにより、正規のアプリケーションプログラムのみの実行が継続さ れる、という効果が得られる。
[0174] また、格納制御部 403は、サービスプロバイダ力もダウンロードされるアプリケーショ ンプログラム 420をプログラム記憶領域 406aに格納するとともに、大容量不揮発性メ モリ 205にも格納してもよい。この場合、ダウンロード対象又は実行対象のアプリケー シヨンプログラムのデータサイズが RAM406の空き容量を超えるとき、格納制御部 4 03が RAM406に存在する暗号化されているアプリケーションプログラムのいずれか を削除するだけで、 RAM406の空き容量は、ダウンロード対象又は実行対象のァプ リケーシヨンプログラムのデータサイズよりも大きくなり、そのアプリケーションプロダラ ムを RAM406に配置することができる。
[0175] また、格納制御部 403は、ダウンロード対象のアプリケーションプログラムの暗号ィ匕 時のデータサイズが RAM406の空き容量を超える場合、プログラム取得部 400によ つて取得されるダウンロード対象のアプリケーションプログラムを大容量不揮発性メモ リ 205【こ格糸内してちょ!ヽ。
[0176] また、実行部 409は、アプリケーションプログラムの実行後、実行対象の暗号化され て!、るアプリケーションプログラムを大容量不揮発性メモリ 205に移動させてもょ 、。
[0177] (実施の形態 2)
図 22は、実施の形態 2における SDカード 2200のブロック構成を示す図である。 S Dカード 2200は、実施の形態 1の SDカード 203が備える構成部にカ卩えて、鍵生成 部 2217と、追加暗号ィ匕部 2218と、追加復号ィ匕部 2219とを備える。なお、説明の簡 単化のため、図 22には、図 4に記載されているプログラム管理部 401、履歴管理部 4 02、格納制御部 403、公開鍵記憶部 407、復号ィ匕部 408、及び、実行部 409は、記 載されていない。
[0178] プログラム取得部 400は、ホスト機器 202から Subscriber Identity Module Id entifier (SIM ID)や端末 ID等のホスト機器固有の情報を取得し、鍵生成部 2217 は、ホスト機器固有の情報を用いて暗号ィ匕鍵を生成する。追加暗号ィ匕部 2218は、 移動制御部 404によって決定された、 TRM204から大容量不揮発性メモリ 205への 移動対象のアプリケーションプログラムを、鍵生成部 2217によって生成された暗号 化鍵で暗号化する。移動制御部 404は、追カ卩暗号ィ匕部 2218によって暗号ィ匕された アプリケーションプログラムを、 RAM406から大容量不揮発性メモリ 205へコピーす る。
[0179] 移動制御部 404は、追カ卩暗号ィ匕部 2218によって暗号ィ匕されたアプリケーションプ ログラムを大容量不揮発性メモリ 205へコピーした後、移動対象のアプリケーションプ ログラムをプログラム記憶領域 406aから削除する。そして、鍵生成部 2217は暗号ィ匕 鍵を削除する。
[0180] このように、実施の形態 2では、移動対象のアプリケーションプログラムを鍵生成部 2 217によって生成された暗号ィ匕鍵で暗号ィ匕して大容量不揮発性メモリ 205へ移動さ せ、その後暗号ィ匕鍵を削除する。これにより、実施の形態 2では、実施の形態 1で説 明した移動方法よりもセキュリティ強度を高めた状態で、移動対象のアプリケーション プログラムを大容量不揮発性メモリ 205に保存することができる。
[0181] 大容量不揮発性メモリ 205に保存されているアプリケーションプログラムを RAM40 6にコピーして実行する場合、上記と同様に、プログラム取得部 400はホスト機器固 有の情報を取得し、鍵生成部 2217は、ホスト機器固有の情報を用いて暗号ィ匕鍵を 生成する。追加復号ィ匕部 2219は、追カ卩暗号ィ匕部 2218によって暗号ィ匕されたアプリ ケーシヨンプログラムを、鍵生成部 2217によって生成される暗号ィ匕鍵を用いて復号 化する。復号化処理が完了すると、移動制御部 404は、暗号ィ匕鍵を削除し、復号ィ匕 されたアプリケーションプログラムを RAM406にコピーする。実行部 409は RAM40 6にコピーされたアプリケーションプログラムを実行する。
[0182] また、プログラム取得部 400は、ホスト機器 202のユーザがホスト機器 202に与える そのユーザの指紋又はユーザが特定する番号等のユーザ固有の情報をホスト機器 2 02から取得してもよい。その場合、鍵生成部 2217は、ホスト機器 202からユーザ固 有の情報を用いて暗号ィ匕鍵を生成する。この場合、鍵生成部 2217は、同一の暗号 化鍵をいつでも生成することができるので、暗号ィ匕処理が完了し暗号ィ匕鍵が不要に なれば暗号ィ匕鍵を削除することができる。これにより、移動対象のアプリケーションプ ログラムは、実施の形態 1で説明した移動方法よりもセキュリティ強度を高めた状態で 大容量不揮発性メモリ 205に保存される。
[0183] (実施の形態 3)
実施の形態 1では、サービスプロバイダよりダウンロードされたアプリケーションプロ グラムは、 RAM406のプログラム記憶領域 406aに保存される。しかしながら、全ての アプリケーションプログラムは、ダウンロード時に大容量不揮発性メモリ 205に保存さ れてもよい。これにより、 RAM406の容量を小さくすることが可能となる。
[0184] なお、上述した各実施の形態における、プログラム取得部 400、プログラム管理部 4 01、履歴管理部 402、格納制御部 403、移動制御部 404、復号化部 408、実行部 4 09、再読み込み部 410、削除部 411、鍵生成部 2217、追カ卩暗号化部 2218、及び 追加復号ィ匕部 2219の全部又は一部の機能は、 CPUがコンピュータプログラムを実 行することにより実現されてちよい。
[0185] また、大容量不揮発性メモリ 205、プログラム取得部 400、プログラム管理部 401、 履歴管理部 402、格納制御部 403、移動制御部 404、 ICカード、OS405、 RAM406 、公開鍵記憶部 407、復号化部 408、実行部 409、再読み込み部 410、削除部 411 、鍵生成部 2217、追カ卩暗号ィ匕部 2218、及び追加復号ィ匕部 2219の全部又は一部 は、集積回路により実現されてもよい。つまり、上記の全部の構成部は 1チップィ匕され てもよいし、一部の構成部が 1チップ化されてもよい。集積回路は、 Field Program mable Gate Array (FPGA)や、リコンフィギユラブル'プロセッサが利用されてもよ い。
産業上の利用可能性
本発明のメモリカードは、 TRM領域に保存しきれなくなったアプリケーションプログ ラムを、アプリケーションプログラムがダウンロードされた時のセキュリティ強度を保つ た状態で、大容量不揮発性メモリに移動させることができ、より多くのアプリケーション プログラムを一枚のメモリカード内に保存することが可能である。よって、本発明のメ モリカードは、アプリケーションプログラムに対する強固な保護機能が要求される SD カード、及び ICカード等として有用である。

Claims

請求の範囲
[1] ホスト機器にダウンロードされる暗号ィ匕されているアプリケーションプログラムを前記 ホスト機器力も受信するメモリカードであって、
耐タンパ機能を有する Integrated Circuit (IC)カード部と、フラッシュメモリ部とを 備え、
前記 ICカード部は、
耐タンパ記憶部と、
前記ホスト機器から、暗号ィ匕されているアプリケーションプログラムと、前記アプリケ ーシヨンプログラムの暗号ィ匕時のサイズ及び復号ィ匕時のサイズとを取得するプロダラ ム取得部と、
前記取得されたアプリケーションプログラムの暗号ィ匕時のサイズと前記耐タンパ記 憶部の空き容量とに基づ 、て、前記耐タンパ記憶部又は前記フラッシュメモリ部を格 納先領域として選択し、選択した領域に前記取得された暗号化されて 、るアプリケー シヨンプログラムを格納する格納制御部と、
前記耐タンパ記憶部に格納されて 、るアプリケーションプログラムの実行時、実行 対象のアプリケーションプログラムの復号ィ匕時のサイズが前記耐タンパ記憶部の空き 容量を超える場合、前記耐タンパ記憶部に格納されて ヽる任意の暗号ィ匕されて ヽる アプリケーションプログラムを前記フラッシュメモリ部に移動させる移動制御部と、 前記実行対象のアプリケーションプログラムを復号ィ匕し、実行する実行部とを有す る
メモリカード。
[2] 前記格納制御部は、前記取得されたアプリケーションプログラムの暗号ィ匕時のサイ ズが前記耐タンパ記憶部の空き容量以下である場合、前記アプリケーションプロダラ ムを前記耐タンパ記憶部に格納し、前記暗号化時のサイズが前記空き容量を超える 場合、前記アプリケーションプログラムを前記フラッシュメモリ部に格納する
請求項 1に記載のメモリカード。
[3] 前記格納制御部は、前記取得されたアプリケーションプログラムの暗号ィ匕時のサイ ズが前記耐タンパ記憶部の空き容量を超える場合、前記耐タンパ記憶部に格納され て 、る任意の暗号ィ匕されて 、るアプリケーションプログラムを前記フラッシュメモリ部 に移動させる
請求項 2に記載のメモリカード。
[4] 前記実行部は、アプリケーションプログラムの実行後、実行対象の暗号ィ匕されてい るアプリケーションプログラムを前記フラッシュメモリ部に移動させる
請求項 1に記載のメモリカード。
[5] 前記移動制御部は、実行対象のアプリケーションプログラムが前記フラッシュメモリ 部に格納されて 、る場合、前記実行対象のアプリケーションプログラムの復号ィ匕時の サイズと暗号ィ匕時のサイズとの合計が前記耐タンパ記憶部の空き容量を超えるとき、 前記耐タンパ記憶部に格納されて ヽる任意の暗号ィ匕されて ヽるアプリケーションプロ グラムを前記フラッシュメモリ部に移動させ、前記実行対象のアプリケーションプログ ラムを前記耐タンパ記憶部に複写する
請求項 1に記載のメモリカード。
[6] 前記移動制御部は、実行対象のアプリケーションプログラムが前記フラッシュメモリ 部に格納されて 、る場合、前記実行対象のアプリケーションプログラムの復号ィ匕時の サイズが前記耐タンパ記憶部の空き容量を超えるとき、前記耐タンパ記憶部に格納 されて 、る任意の暗号ィ匕されて 、るアプリケーションプログラムを前記フラッシュメモリ 部に移動させ、前記実行対象のアプリケーションプログラムを復号ィ匕して、前記耐タ ンパ記憶部に格納する
請求項 1に記載のメモリカード。
[7] 前記移動制御部は、アプリケーションプログラムの実行履歴に基づ 、て、アプリケ ーシヨンプログラム毎のアクセス履歴管理情報を生成し、
前記 ICカード部は、更に、前記アクセス履歴管理情報に従って、前記フラッシュメ モリ部に移動させるアプリケーションプログラムを決定する移動判定部を有する 請求項 1に記載のメモリカード。
[8] 前記プログラム取得部は、前記ホスト機器固有の情報を取得し、
前記 ICカード部は、更に、
前記取得したホスト機器固有の情報を利用して暗号化鍵を生成する鍵生成部と、 前記耐タンパ記憶部力 前記フラッシュメモリ部への移動対象のアプリケーションプ ログラムを前記暗号ィ匕鍵により暗号ィ匕する追加暗号ィ匕部とを有し、
前記移動制御部は、暗号化終了後に前記暗号化鍵を削除し、前記暗号化鍵により 二重に暗号ィ匕されている前記移動対象のアプリケーションプログラムを前記フラッシ ュメモリ部へ移動させる
請求項 1に記載のメモリカード。
[9] 前記 ICカード部は、更に、前記フラッシュメモリ部に格納されている前記暗号ィ匕鍵 により二重に暗号ィ匕されているアプリケーションプログラムを前記耐タンパ記憶部へ 複写する場合、複写対象の前記アプリケーションプログラムを前記鍵生成部が生成し た暗号ィ匕鍵で復号ィ匕する追加復号ィ匕部を有し、
前記移動制御部は、復号化終了後に前記暗号化鍵を削除し、複写対象の前記ァ プリケーシヨンプログラムを前記耐タンパ記憶部に格納する
請求項 8に記載のメモリカード。
[10] ホスト機器にダウンロードされる暗号ィ匕されているアプリケーションプログラムを前記 ホスト機器力 受信するメモリカードにおけるアプリケーションプログラムを保持する方 法であって、
前記メモリカードは、耐タンパ機能を有する Integrated Circuit (IC)カード部と、 フラッシュメモリ部とを備え、前記 ICカード部は耐タンパ記憶部を有し、
前記方法は、
前記ホスト機器から、暗号ィ匕されているアプリケーションプログラムと、前記アプリケ ーシヨンプログラムの暗号ィ匕時のサイズ及び復号ィ匕時のサイズとを取得するプロダラ ム取得ステップと、
前記取得されたアプリケーションプログラムの暗号ィ匕時のサイズと前記耐タンパ記 憶部の空き容量とに基づ 、て、前記耐タンパ記憶部又は前記フラッシュメモリ部を格 納先領域として選択し、選択した領域に前記取得された暗号化されて 、るアプリケー シヨンプログラムを格納する格納制御ステップと、
前記耐タンパ記憶部に格納されて 、るアプリケーションプログラムの実行時、実行 対象のアプリケーションプログラムの復号ィ匕時のサイズが前記耐タンパ記憶部の空き 容量を超える場合、前記耐タンパ記憶部に格納されて ヽる任意の暗号ィ匕されて ヽる アプリケーションプログラムを前記フラッシュメモリ部に移動させる移動制御ステップと 前記実行対象のアプリケーションプログラムを復号ィ匕し、実行する実行ステップと を含むアプリケーションプログラム保持方法。
[11] ホスト機器にダウンロードされる暗号ィ匕されているアプリケーションプログラムを前記 ホスト機器力 受信するメモリカードにおけるアプリケーションプログラムを保持するた めの保持プログラムであって、
前記メモリカードは、耐タンパ機能を有する Integrated Circuit (IC)カード部と、 フラッシュメモリ部とを備え、前記 ICカード部は耐タンパ記憶部を有し、
前記保持プログラムは、
前記ホスト機器から、暗号ィ匕されているアプリケーションプログラムと、前記アプリケ ーシヨンプログラムの暗号ィ匕時のサイズ及び復号ィ匕時のサイズとを取得するプロダラ ム取得ステップと、
前記取得されたアプリケーションプログラムの暗号ィ匕時のサイズと前記耐タンパ記 憶部の空き容量とに基づ 、て、前記耐タンパ記憶部又は前記フラッシュメモリ部を格 納先領域として選択し、選択した領域に前記取得された暗号化されて 、るアプリケー シヨンプログラムを格納する格納制御ステップと、
前記耐タンパ記憶部に格納されて 、るアプリケーションプログラムの実行時、実行 対象のアプリケーションプログラムの復号ィ匕時のサイズが前記耐タンパ記憶部の空き 容量を超える場合、前記耐タンパ記憶部に格納されて ヽる任意の暗号ィ匕されて ヽる アプリケーションプログラムを前記フラッシュメモリ部に移動させる移動制御ステップと 前記実行対象のアプリケーションプログラムを復号ィ匕し、実行する実行ステップと をコンピュータに実行させるための保持プログラム。
PCT/JP2006/308976 2005-05-09 2006-04-28 メモリカード、アプリケーションプログラム保持方法、及び保持プログラム WO2006120938A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP06745835A EP1881437A1 (en) 2005-05-09 2006-04-28 Memory card, application program holding method, and holding program
JP2007528241A JP4860619B2 (ja) 2005-05-09 2006-04-28 メモリカード、アプリケーションプログラム保持方法、及び保持プログラム
US11/912,351 US7953985B2 (en) 2005-05-09 2006-04-28 Memory card, application program holding method, and holding program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005-136101 2005-05-09
JP2005136101 2005-05-09

Publications (1)

Publication Number Publication Date
WO2006120938A1 true WO2006120938A1 (ja) 2006-11-16

Family

ID=37396447

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/308976 WO2006120938A1 (ja) 2005-05-09 2006-04-28 メモリカード、アプリケーションプログラム保持方法、及び保持プログラム

Country Status (6)

Country Link
US (1) US7953985B2 (ja)
EP (1) EP1881437A1 (ja)
JP (1) JP4860619B2 (ja)
KR (1) KR20080007446A (ja)
CN (1) CN101171591A (ja)
WO (1) WO2006120938A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009064631A3 (en) * 2007-11-12 2009-07-02 Micron Technology Inc Critical security parameter generation and exchange system and method for smart-card memory modules
WO2009064621A3 (en) * 2007-11-12 2009-09-17 Micron Technology, Inc. Smart storage device
JP2012138729A (ja) * 2010-12-27 2012-07-19 Kddi Corp データ処理装置、プログラム、およびデータ処理システム
JP2012169983A (ja) * 2011-02-16 2012-09-06 Kddi Corp データ処理装置およびプログラム
US8746578B2 (en) 2007-11-12 2014-06-10 Micron Technology, Inc. System and method for updating read-only memory in smart card memory modules
US8949626B2 (en) 2009-03-03 2015-02-03 Micron Technology, Inc. Protection of security parameters in storage devices
WO2015173912A1 (ja) * 2014-05-14 2015-11-19 三菱電機株式会社 制御装置
US9483632B2 (en) 2007-11-12 2016-11-01 Micron Technology, Inc. Intelligent controller system and method for smart card memory modules

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100849212B1 (ko) * 2006-10-12 2008-07-31 삼성전자주식회사 메모리 카드 및 메모리 카드의 구동 프로그램 업데이트방법
CN101159488B (zh) * 2007-11-12 2013-06-05 中兴通讯股份有限公司 一种时分双工系统物理广播信道的发送方法
US8831220B2 (en) * 2007-11-30 2014-09-09 Battelle Energy Alliance, Llc Processing module operating methods, processing modules, and communications systems
KR101297168B1 (ko) * 2008-03-10 2013-08-21 에스케이플래닛 주식회사 저장 용량에 따른 디코딩 계층화 방법 및 장치
JP5349114B2 (ja) * 2009-03-31 2013-11-20 株式会社バッファロー 記憶装置
CN101751279B (zh) * 2009-12-29 2014-01-22 北京握奇数据系统有限公司 一种芯片及片上操作系统下载的方法
JP5707760B2 (ja) 2010-07-20 2015-04-30 株式会社リコー 情報処理システム、情報処理装置、情報処理方法、情報処理プログラム、及びそのプログラムを記録した記録媒体
US9183045B2 (en) * 2010-12-21 2015-11-10 Mo-Dv, Inc. System and method for data collection and exchange with protected memory devices
JP5646382B2 (ja) * 2011-03-28 2014-12-24 Kddi株式会社 コンテンツ編集装置、コンテンツ編集方法及びコンテンツ編集プログラム
JP5775738B2 (ja) * 2011-04-28 2015-09-09 富士通株式会社 情報処理装置、セキュアモジュール、情報処理方法、および情報処理プログラム
CN103838620A (zh) * 2012-11-20 2014-06-04 中兴通讯股份有限公司 处理应用程序方法和装置
KR102336033B1 (ko) 2015-04-22 2021-12-08 에스케이하이닉스 주식회사 매립금속게이트구조를 구비한 반도체장치 및 그 제조 방법, 그를 구비한 메모리셀, 그를 구비한 전자장치
JP6647524B2 (ja) * 2015-10-27 2020-02-14 北陽電機株式会社 エリアセンサ及び外部記憶装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337749A (ja) * 2002-03-13 2003-11-28 Matsushita Electric Ind Co Ltd セキュアデバイス
JP2004252707A (ja) * 2003-02-20 2004-09-09 Matsushita Electric Ind Co Ltd メモリデバイス
JP2005018725A (ja) * 2002-08-01 2005-01-20 Matsushita Electric Ind Co Ltd 暗号化データを復号して実行用メモリ空間に配置する装置、およびその方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002229861A (ja) 2001-02-07 2002-08-16 Hitachi Ltd 著作権保護機能つき記録装置
EP1523705A2 (en) * 2002-03-13 2005-04-20 Matsushita Electric Industrial Co., Ltd. Secure device for preventing unauthorised use of distributed content
EP1603001B1 (en) 2002-08-01 2007-10-31 Matsushita Electric Industrial Co., Ltd. Apparatusses and methods for decrypting blocks of data and locating the decrypted blocks of data in memory space used for execution
JP4165747B2 (ja) * 2003-03-20 2008-10-15 株式会社日立製作所 記憶システム、制御装置及び制御装置のプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337749A (ja) * 2002-03-13 2003-11-28 Matsushita Electric Ind Co Ltd セキュアデバイス
JP2005018725A (ja) * 2002-08-01 2005-01-20 Matsushita Electric Ind Co Ltd 暗号化データを復号して実行用メモリ空間に配置する装置、およびその方法
JP2004252707A (ja) * 2003-02-20 2004-09-09 Matsushita Electric Ind Co Ltd メモリデバイス

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9088418B2 (en) 2007-11-12 2015-07-21 Micron Technology, Inc. System and method for updating read-only memory in smart card memory modules
EP2210220A4 (en) * 2007-11-12 2013-01-30 Micron Technology Inc SMART STORAGE DEVICE
US8746578B2 (en) 2007-11-12 2014-06-10 Micron Technology, Inc. System and method for updating read-only memory in smart card memory modules
KR101091321B1 (ko) * 2007-11-12 2011-12-07 마이크론 테크놀로지, 인크. 스마트 저장 장치
US9483632B2 (en) 2007-11-12 2016-11-01 Micron Technology, Inc. Intelligent controller system and method for smart card memory modules
WO2009064621A3 (en) * 2007-11-12 2009-09-17 Micron Technology, Inc. Smart storage device
EP2227777A4 (en) * 2007-11-12 2013-01-30 Micron Technology Inc CREATING A CRITICAL SECURITY PARAMETER, EXCHANGE SYSTEM AND METHOD ASSOCIATED WITH MEMORY MODULES OF CHIP CARDS
US9413535B2 (en) 2007-11-12 2016-08-09 Micron Technology, Inc. Critical security parameter generation and exchange system and method for smart-card memory modules
EP2210220A2 (en) * 2007-11-12 2010-07-28 Micron Technology, Inc. Smart storage device
US9979540B2 (en) 2007-11-12 2018-05-22 Micron Technology, Inc. System and method for updating read-only memory in smart card memory modules
US9529734B2 (en) 2007-11-12 2016-12-27 Micron Technology, Inc. Smart storage device
US8930711B2 (en) 2007-11-12 2015-01-06 Micron Technology, Inc. Critical security parameter generation and exchange system and method for smart-card memory modules
WO2009064631A3 (en) * 2007-11-12 2009-07-02 Micron Technology Inc Critical security parameter generation and exchange system and method for smart-card memory modules
US8887270B2 (en) 2007-11-12 2014-11-11 Micron Technology, Inc. Smart storage device
US8949626B2 (en) 2009-03-03 2015-02-03 Micron Technology, Inc. Protection of security parameters in storage devices
JP2012138729A (ja) * 2010-12-27 2012-07-19 Kddi Corp データ処理装置、プログラム、およびデータ処理システム
JP2012169983A (ja) * 2011-02-16 2012-09-06 Kddi Corp データ処理装置およびプログラム
JPWO2015173912A1 (ja) * 2014-05-14 2017-04-20 三菱電機株式会社 制御装置
WO2015173912A1 (ja) * 2014-05-14 2015-11-19 三菱電機株式会社 制御装置

Also Published As

Publication number Publication date
JP4860619B2 (ja) 2012-01-25
JPWO2006120938A1 (ja) 2008-12-18
CN101171591A (zh) 2008-04-30
US7953985B2 (en) 2011-05-31
EP1881437A1 (en) 2008-01-23
KR20080007446A (ko) 2008-01-21
US20090070599A1 (en) 2009-03-12

Similar Documents

Publication Publication Date Title
JP4860619B2 (ja) メモリカード、アプリケーションプログラム保持方法、及び保持プログラム
US8176335B2 (en) Removable computer with mass storage
KR100463842B1 (ko) 파일 보안 시스템의 키 관리 장치와 암호키 관리방법
JP4423711B2 (ja) 半導体記憶装置及び半導体記憶装置の動作設定方法
US9098440B2 (en) Secure compact flash
AU775002B2 (en) Semiconductor memory card and data reading apparatus
KR100397316B1 (ko) 기억 장치, 암호화ㆍ복호화 장치 및 불휘발성 메모리의액세스 방법
KR101061332B1 (ko) 메모리 카드의 이용을 제어하기 위한 장치 및 방법
US7406604B2 (en) Method for protecting a memory card, and a memory card
JP4395302B2 (ja) 半導体メモリカード及びその制御方法
US20060253620A1 (en) Data structure of flash memory having system area with variable size in which data can be updated, USB memory device having the flash memory, and method of controlling the system area
JP2004021755A (ja) 記憶装置
JP2006180498A (ja) ユーザー認識モジュールのハッキング防止機能を有する移動通信端末機及びユーザー認識モジュールのハッキング防止方法
US7076667B1 (en) Storage device having secure test process
JP4073974B2 (ja) コンピュータ用の取外し可能なカードへのアクセス操作を安全化するための方法
EP2849111B1 (en) OTP generation on portable medium
JP2004252707A (ja) メモリデバイス
KR101297527B1 (ko) 회로 카드 데이터 보호
JP2004139242A (ja) Icカード、icカード発行システム及びicカード発行方法
CN111143879A (zh) 一种Android平台SD卡文件保护方法、终端设备及存储介质
JP2008109276A (ja) 携帯可能電子装置
KR100562255B1 (ko) 시큐리티 도메인의 키 초기화 방법
WO2008084154A2 (fr) Traitement de donnee relative a un service numerique
KR100681332B1 (ko) 범용 집적 회로 카드와 이를 이용한 콘텐츠 제공 방법 및이동통신 단말기
JP4555613B2 (ja) データ記憶装置

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200680015785.3

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006745835

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 11912351

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2007528241

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 1020077025129

Country of ref document: KR

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU

WWP Wipo information: published in national office

Ref document number: 2006745835

Country of ref document: EP