Electronic information storage medium, IC chip, IC card, element data storage method, and program

The IC chip efficiently checks essential data personalization status by determining if all data are stored before completion, preventing uninitialized data shipment and reducing code size.

JP2025097584AActive Publication Date: 2025-07-01DAI NIPPON PRINTING CO LTD

Patent Information

Application Number
JP2023213840
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-12-19
Publication Date
2025-07-01
Estimated Expiration
2043-12-19

AI Technical Summary

Technical Problem

Existing IC chip personalization processes are inefficient in checking the personalization status of essential element data, leading to potential unexpected behavior due to uninitialized essential data, and increase code size.

Method used

An IC chip that receives commands to store element data, determines if the command is the last command, and checks if all essential data are stored before completing personalization, executing error processing if not.

Benefits of technology

Efficiently checks the personalization status of essential data, preventing shipment with uninitialized data and reducing code size.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025097584000001_ABST
    Figure 2025097584000001_ABST
Patent Text Reader

Abstract

To provide an electronic information storage medium, an IC chip, an IC card, an element data storage method, and a program capable of more efficiently checking a personalization state of a plurality of required element data required for personalization.SOLUTION: An IC chip 1 stores element data included in a Store Data command in a memory area each time the command is received, determines whether or not the plurality of required element data required for personalization are entirely stored in the memory area in the case of receiving a Last Store Data command, and executes error processing in the case of determining that the required element data is not entirely stored in the memory area.SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of issuance processing and the like for writing element data of an application on an IC (Integrated Circuit) chip.

Background Art

[0002] Conventionally, in the personalization process of an application operating on an IC chip, issuance processing for writing element data of the application has been performed. For example, Patent Document 1 discloses a technique for an IC card that can simplify the issuance processing. According to the technique of Patent Document 1, when the IC card receives an issuance command from a terminal, it checks whether all identifiers of data that requires setting have been set. If all have been set, it transmits an identifier indicating that the issuance has been completed and a status word indicating success to the terminal. Then, when the terminal receives the identifier indicating that the issuance has been completed, it transmits an issuance command indicating that it is the final issuance command to the IC card in order to complete the issuance.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] Incidentally, applications operating on an IC chip include essential element data that must be personalized and optional element data that does not necessarily need to be personalized. For example, in the case of a credit application, the basic element data used for settlement must be personalized, while the optionally selected element data does not necessarily need to be personalized. If the IC chip is shipped without writing the essential element data that must be personalized, access processing to the essential element data in an uninitialized state will occur when the application is actually used, which may cause unexpected behavior. In order to prevent such problems, it is necessary to check the personalization status of the essential element data that must be personalized in the personalization process, but this process is complicated and leads to an increase in code size.

[0005] Therefore, the present invention has been made in view of such points, and an object of the present invention is to provide an electronic information storage medium, an IC chip, an IC card, an element data storage method, and a program that enable more efficient checking of the personalization status of a plurality of essential element data that must be personalized.

Means for Solving the Problems

[0006] In order to solve the above problems, the invention according to claim 1 is an electronic information storage medium that receives a plurality of commands including element data for personalizing an application from an external device. Each time the command is received from the external device, a storage means for storing the element data included in the command in a memory area referenced by the application, a first determination means for determining whether the command received from the external device is the last command, and when the first determination means determines that the command is the last command, a second determination means for determining whether all of a plurality of essential element data necessary for the application to operate normally are stored in the memory area, and an error processing means for executing error processing when the second determination means determines that not all of the essential element data are stored in the memory area.

[0007] The invention according to claim 2 is the electronic information storage medium according to claim 1, wherein the memory area is composed of a plurality of arrays, each of the arrays includes a plurality of elements capable of storing data of a predetermined number of bytes, the electronic information storage medium stores in advance a list of essential element data describing references to the arrays in which each of the plurality of essential element data is to be stored, and each time the command is received from the external device, the storage means stores the element data included in the command and a flag indicating that the element data has been stored in an element of a predetermined one of the arrays, and when it is determined by the first determination means that the command is the last command, the second determination means accesses each of the arrays based on the reference to each of the arrays described in the list of essential element data, and determines whether all of the plurality of essential element data has been stored in the memory area by checking whether the flag is stored in the element of each of the arrays.

[0008] The invention according to claim 3 is the electronic information storage medium according to claim 1, wherein the electronic information storage medium stores in advance a list of essential element data describing references to the objects in which each of the plurality of essential element data is to be stored, and each time the command is received from the external device, the storage means generates an object for storing the element data included in the command, and when it is determined by the first determination means that the command is the last command, the second determination means accesses each of the objects based on the reference to each of the objects described in the list of essential element data, and determines whether all of the plurality of essential element data has been stored in the memory area by checking whether each of the objects has been generated.

[0009] The invention according to claim 4 is the electronic information storage medium according to any one of claims 1 to 3, wherein when the optional function in the application is set to on, the essential element data includes element data necessary for the optional function.

[0010] The invention according to claim 5 is an IC chip that receives a command including element data for personalizing an application from an external device a plurality of times, and stores the element data included in the command in a memory area referred to by the application every time the command is received from the external device. It further includes a first determination means for determining whether the command received from the external device is the last command, a second determination means for determining whether all of a plurality of essential element data necessary for the application to operate normally are stored in the memory area when the first determination means determines that the command is the last command, and an error processing means for executing error processing when the second determination means determines that not all of the essential element data are stored in the memory area.

[0011] The invention according to claim 6 is an IC card that receives a command including element data for personalizing an application from an external device a plurality of times, and stores the element data included in the command in a memory area referred to by the application every time the command is received from the external device. It further includes a first determination means for determining whether the command received from the external device is the last command, a second determination means for determining whether all of a plurality of essential element data necessary for the application to operate normally are stored in the memory area when the first determination means determines that the command is the last command, and an error processing means for executing error processing when the second determination means determines that not all of the essential element data are stored in the memory area.

[0012] The invention according to claim 7 is an element data storage method executed by an electronic information storage medium that receives a command including element data for personalizing an application from an external device a plurality of times, the method comprising: storing, each time the command is received from the external device, the element data included in the command in a memory area referred to by the application; determining whether the command received from the external device is the last command; when it is determined that the command is the last command, determining whether all of a plurality of essential element data necessary for the application to operate normally is stored in the memory area; and when it is determined that not all of the essential element data is stored in the memory area, executing error processing.

[0013] The invention according to claim 8 causes a computer included in an electronic information storage medium that receives a command including element data for personalizing an application from an external device a plurality of times to execute: storing, each time the command is received from the external device, the element data included in the command in a memory area referred to by the application; determining whether the command received from the external device is the last command; when it is determined that the command is the last command, determining whether all of a plurality of essential element data necessary for the application to operate normally is stored in the memory area; and when it is determined that not all of the essential element data is stored in the memory area, executing error processing.

Advantages of the Invention

[0014] According to the present invention, it is possible to more efficiently check the personalization status of a plurality of essential element data essential for personalization.

Brief Description of the Drawings

[0015]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

[0016] Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

[0017] [1. Configuration and Function of IC Chip 1] First, with reference to FIG. 1, the configuration and function of the IC chip 1 according to the present embodiment will be described. The IC chip 1 is an example of an electronic information storage medium of the present invention. The IC chip 1 is mounted on, for example, an IC card such as a credit card, a cash card, or a my number card, or a mobile device such as a smartphone. In the case of a mobile device such as a smartphone, the IC chip 1 may be mounted on a small IC card detachable from the mobile device, or may be mounted on an embedded substrate so as not to be easily removable or replaceable from the mobile device as an eUICC (Embedded Universal Integrated Circuit Card).

[0018] FIG. 1 is a diagram showing an example of the hardware configuration of the IC chip 1. As shown in FIG. 1, the IC chip 1 includes an I / O circuit 11, a RAM (Random Access Memory) 12, an NVM (Nonvolatile Memory) 13, a ROM (Read Only Memory) 14, a CPU (Central Processing Unit) 15 (an example of a computer), and a coprocessor 16 that performs cryptographic operations and the like. The I / O circuit 11 serves as an interface with the external device 2. Note that the communication between the IC chip 1 and the external device 2 may be non-contact communication or contact communication. In the case of non-contact communication, for example, communication between the IC chip 1 and the external device 2 is performed via an antenna (not shown) mounted on an IC card or a mobile device. Note that an example of the external device 2 is an issuing device (issuing terminal) in a factory.

[0019] For example, a flash memory is applied to the NVM 13. Note that the NVM 13 may be an “Electrically Erasable Programmable Read-Only Memory”. The NVM 13 or the ROM 14 stores various programs such as an OS (Operating System) and one or more applications (for example, a Java (registered trademark) Card application) (including the program of the present invention). A memory area referred to by an application is provided in the NVM 13. A plurality of element data of the application are stored in the memory area. A DGI (Data Grouping Identifier) is assigned to each element data. The plurality of element data includes essential element data that is essential for personalization (that is, necessary for the application to operate normally) and optional element data that is not essential for personalization. Examples of the essential element data include personal information (for example, a membership number) of the user of the IC chip 1. Also, when the IC chip 1 is used as a credit card, examples of the essential element data include the upper limit value of the cumulative settlement amount offline and the upper limit value of the settlement amount in one settlement.

[0020] For example, the memory area may be composed of a plurality of arrays (byte arrays). For example, when an application is installed, an array for storing the element data of the application is created in the memory area. In other words, an array for writing element data to the application is created. The array can be said to be a container for the element data to be transmitted by the external device 2 later. The size of the array is determined by, for example, the length (data length) of the element data and is set when the application is installed. Each array is composed of a plurality of elements (hereinafter referred to as "array elements") capable of storing data of a predetermined number of bytes (for example, 1 byte). Different indexes are assigned to each array element. For example, index [0] is assigned to the first array element, index [1] is assigned to the next array element, and index [2] is assigned to the next array element, and so on. The value of the index is incremented by 1 each time.

[0021] For example, it is assumed that one array stores one piece of element data, and the element data is divided into the above-mentioned predetermined number of bytes according to its length and stored in a plurality of array elements. Further, in one array, any one of the array elements (for example, the first array element) is used to store an issuance status flag indicating whether the element data to be stored in the array has been stored. For example, when the issuance status flag is "01 (h: hexadecimal)", it indicates that the element data has been stored, and when the issuance status flag is "00 (h)", it indicates that the element data has not been stored. No element data has been stored in the array with the issuance status flag of "00 (h)", and a default value corresponding to the length of the element data is stored.

[0022] FIG. 2 is a diagram showing an example of an array for storing element data. FIG. 2(A) shows an array A for storing element data A. In the first array element (index [0]), the issuance status flag "01(h)" is stored, and in the subsequent array elements (indexes [1] to

[10] ), the element data A (112233445566778899AA(h)) is stored. On the other hand, FIG. 2(B) shows an array B for storing element data B. Since the issuance status flag "00(h)" is stored in the first array element (index [0]), element data B is not yet stored in the subsequent array elements (indexes [1] to [5]), and the default value (0000000000(h)) is stored. On the other hand, FIG. 2(C) shows an array C for storing element data C. In the first array element (index [0]), the issuance status flag "01(h)" is stored, and in the subsequent array elements (indexes [1] to [5]), the element data C (1000000000(h)) is stored.

[0023] Furthermore, in the NVM 13, a list of essential element data (for example, table data) describing references to arrays in which each of a plurality of essential element data should be stored is stored in advance. For example, the list of essential element data is stored when the application is installed. The reference to the array indicates, for example, the address of the array in the memory area. FIG. 3 is a diagram showing an example of the list of essential element data. In the list of essential element data shown in FIG. 3, references to arrays A to C are described in the first to third table elements (rows). That is, in this example, the element data A to C shown in FIGS. 2(A) to (C) are essential element data.

[0024] Each element data may be stored in an object (entity) generated (instantiated) from a class (design drawing). An object is composed of a plurality of properties in which keys and values are paired. Here, the above-described element data is stored in the value. The object applied in this embodiment is generated not when the application is installed, but when the element data is transmitted by the external device 2. In this case, by checking whether an object storing a certain element data has been generated, it is possible to determine whether the element data has been stored (in other words, issued or personalized). In this case, the NVM 13 stores in advance a list of essential element data describing references to objects in which each of the plurality of essential element data should be stored. The reference to the object indicates, for example, the address of the object in the memory area. Note that the references to arrays A to C shown in the list of essential element data shown in FIG. 3 can be directly replaced with objects A to C.

[0025] The CPU 15 (an example of a computer) functions as storage means, first determination means, second determination means, error processing means, etc. in the present invention by executing the program of the present invention stored in the NVM 13. The CPU 15 receives a plurality of commands from the external device 2 that include element data for personalizing an application. For such commands, for example, the Store Data command APDU (Application Protocol Data Unit) defined in ISO / IEC 7816 can be applied. The Store Data command APDU (hereinafter simply referred to as the "Store Data command") is composed of a header part including a CLA indicating a command class, an INS indicating a command code, P1 and P2 indicating command parameters, and a body part including element data. For example, the body part includes a DGI (e.g., 2 bytes) assigned to the element data, the length of the element data (e.g., 1 or 3 bytes), and the element data body. Note that the P1 in the header part includes a bit ("1" or "0") indicating whether the Store Data command is the last Store Data command (hereinafter referred to as the "Last Store Data command").

[0026] FIG. 4 is a diagram showing an example of the data configuration of a Store Data command for issuing element data A. In the body part of the Store Data command shown in FIG. 4, a DGI "1234(h)" assigned to the element data A, a length "0A(h)" of the element data A, and Data consisting of the element data A are set. The CPU 15 can identify what the received element data is by interpreting the value of the DGI included in the received Store Data command, and can specify the array to be stored or the object to be generated. Note that one DGI may correspond to a plurality of element data.

[0027] FIG. 5 is a diagram showing an example of the data configuration of the Store Data command when one DGI corresponds to a plurality of element data. For example, the DGI “8000(h)” defined in the standard issuance specification of EMV (registered trademark) is used to transmit three types of 16-byte cryptographic keys together. In the body part of the Store Data command shown in FIG. 5, Data consisting of the DGI “8000(h)” assigned to the element data X, the length “30(h)” of the element data X, and the element data X “111…”, “222…”, “333…” (three types of cryptographic keys) is set. The CPU 15 can identify that the received element data X is three types of 16-byte cryptographic keys by interpreting the DGI “8000(h)” included in the received Store Data command.

[0028] Each time the Store Data command is received, the CPU 15 stores the element data included in the command in the memory area. For example, the CPU 15 stores the element data included in the Store Data command and the issuance status flag “01(h)” indicating that the element data has been stored, as described above, in the array elements of a predetermined array in the memory area. Alternatively, the CPU 15 generates an object for storing the element data included in the Store Data command in the memory area. Then, the CPU 15 determines whether the Store Data command received from the external device 2 is the Last Store Data command (determined from the bit of P1), and if it is determined that the Store Data command is the Last Store Data command, it determines whether all of the plurality of essential element data that must be personalized has been stored in the memory area.

[0029] For example, the CPU 15 accesses each array based on the reference of each array described in the list of essential element data stored in the NVM 13, and checks whether the issue status flag "01(h)" is stored in the array elements of each array, thereby determining whether all of the plurality of essential element data has been stored in the memory area. Alternatively, the CPU 15 accesses each object based on the reference of each object described in the list of essential element data stored in the NVM 13, and checks whether each object has been generated, thereby determining whether all of the plurality of essential element data has been stored in the memory area. Then, when the CPU 15 determines that not all of the essential element data has been stored in the memory area, it executes error processing. For example, in the error processing, the issuance processing is interrupted, and a response APDU including a status word SW indicating an error is returned to the external device 2.

[0030] [2. Operation of IC Chip 1] Next, with reference to FIG. 6, the operation of the IC chip 1 according to the present embodiment will be described. FIG. 6 is a flowchart showing an example of the issuance processing executed by the CPU 15 of the IC chip 1. The processing shown in FIG. 6 is started, for example, when the IC chip 1 receives a Store Data command from the external device 2 in the personalization process at the manufacturing factory of the IC chip 1.

[0031] When the process shown in FIG. 6 starts, the CPU 15 stores the element data received by the Store Data command in the memory area (step S1). Next, the CPU 15 determines whether the received Store Data command is the Last Store Data command (step S2). If it is determined that the Store Data command is not the Last Store Data command (step S2: NO), a response APDU including the status word SW indicating normal termination is returned to the external device 2 (step S3), and the process enters the standby state for the next Store Data command. On the other hand, if it is determined that the Store Data command is the Last Store Data command (step S2: YES), the process proceeds to step S4.

[0032] In step S4, the CPU 15 sets N = 1. Next, the CPU 15 accesses the Nth table element of the list of essential element data stored in the NVM 13 and obtains the personalization state of the essential element data (for example, the issuance status flag or the presence or absence of object generation) (step S5). For example, the CPU 15 accesses an array (or object) based on a reference to the array (or object) described in the Nth table element to obtain the personalization state of the essential element data.

[0033] Next, based on the personalization state obtained in step S5, the CPU 15 determines whether the essential element data corresponding to the Nth table element has been stored in the memory area (in other words, has been issued or personalized) (step S6). If it is determined that the essential element data has not been stored in the memory area (step S6: NO), the above-described error processing is executed (step S7), and the process shown in FIG. 6 ends. On the other hand, if it is determined that the essential element data has been stored in the memory area (step S6: YES), the process proceeds to step S8.

[0034] In step S8, the CPU 15 determines whether it has accessed all the table elements in the essential element data list. If it is determined that not all the table elements in the essential element data list have been accessed (step S8: NO), N = N + 1 is set (step S9), the process returns to step S5, and the same process as above is repeated. On the other hand, if it is determined that all the table elements in the essential element data list have been accessed (step S8: YES), a response APDU including a status word SW indicating normal termination is returned to the external device 2 (step S10). Next, the CPU 15 sets the issuance completion state (step S11), and the process shown in FIG. 6 ends.

[0035] As described above, according to the above embodiment, each time the IC chip 1 receives a Store Data command, it stores the element data included in the command in the memory area. When the Last Store Data command is received, it determines whether all of the plurality of essential element data essential for personalization have been stored in the memory area. If it is determined that not all of the essential element data have been stored in the memory area, error processing is executed. Therefore, it is possible to more efficiently check the personalization status of the plurality of essential element data essential for personalization. Further, by executing error processing when the essential element data essential for personalization has not been stored yet, it is possible to prevent the IC chip 1 from being shipped with the essential element data essential for personalization in an uninitialized state. Further, according to the above embodiment, by using the essential element data list, the size of the program code can be suppressed as compared with writing in a program.

[0036] In the above-described embodiment, for example, when an option function in the application is set to on when the application is installed (that is, when the option function of the application is personalized with an effective setting), the above-described essential element data may include element data necessary for the option function as quasi-essential element data. As an example of the option function, a function of recording log data can be cited. In this case, in the above-described list of essential element data, a reference to an array (or object) in which the element data necessary for the option function should be stored is described. Then, when the Last Store Data command is received, in the process shown in FIG. 6, the personalized state of the element data necessary for the option function is acquired, and based on the acquired personalized state, it is determined whether the element data necessary for the option function has been stored in the memory area. Then, when it is determined that the element data necessary for the option function has not been stored in the memory area, the above-described error processing is executed. Note that the reference to the array (or object) in which the element data necessary for the option function should be stored may be configured to be stored in a list of quasi-essential element data stored separately from the above-described list of essential element data.

Description of Signs

[0037] 1 IC chip 11 I / O circuit 12 RAM( 13 NVM 14 ROM 15 CPU 16 Coprocessor

Claims

1. An electronic information storage medium that receives a command containing element data for personalizing an application multiple times from an external device, storage means for storing, each time the command is received from the external device, the element data included in the command in a memory area referred to by the application; first determination means for determining whether the command received from the external device is the last command; second determination means for determining, when the first determination means determines that the command is the last command, whether all of a plurality of essential element data necessary for the application to operate normally is stored in the memory area; error processing means for executing error processing when the second determination means determines that not all of the essential element data is stored in the memory area; An electronic information storage medium characterized by comprising the above.

2. The memory area is composed of a plurality of arrays, and each of the arrays includes a plurality of elements capable of storing data of a predetermined number of bytes. The electronic information storage medium stores in advance a list of essential element data describing references to the arrays in which each of the plurality of essential element data is to be stored. Each time the command is received from the external device, the storage means stores the element data included in the command and a flag indicating that the element data has been stored in an element of a predetermined one of the arrays. When the first determination means determines that the command is the last command, the second determination means determines whether all of the plurality of essential element data is stored in the memory area by accessing each of the arrays based on the reference to each of the arrays described in the list of essential element data and checking whether the flag is stored in the element of each of the arrays. The electronic information storage medium according to claim 1, characterized in that.

3. The electronic information storage medium stores in advance a list of essential element data describing references to the objects in which each of the plurality of essential element data is to be stored. Each time the command is received from the external device, the storage means generates an object for storing the element data included in the command. When the second determination means determines that the command is the last command by the first determination means, based on the reference of each of the objects described in the list of essential element data, access each of the objects and check whether each of the objects has been generated, thereby determining whether all of the plurality of essential element data has been stored in the memory area. The electronic information storage medium according to claim 1, characterized in that.

4. When the option function in the application is set to on, the essential element data includes element data necessary for the option function. The electronic information storage medium according to any one of claims 1 to 3, characterized in that.

5. An IC chip that receives a plurality of commands including element data for personalizing an application from an external device, Storage means for storing the element data included in the command in the memory area referred to by the application every time the command is received from the external device; First determination means for determining whether the command received from the external device is the last command; Second determination means for determining whether all of a plurality of essential element data necessary for the application to operate normally has been stored in the memory area when the first determination means determines that the command is the last command; Error processing means for executing error processing when the second determination means determines that not all of the essential element data has been stored in the memory area; An IC chip characterized by comprising.

6. An IC card that receives a plurality of commands including element data for personalizing an application from an external device, Storage means for storing the element data included in the command in the memory area referred to by the application every time the command is received from the external device; First determination means for determining whether the command received from the external device is the last command; Second determination means for determining whether all of a plurality of essential element data necessary for the application to operate normally has been stored in the memory area when the first determination means determines that the command is the last command; When it is determined by the second determination means that all of the essential element data is not stored in the memory area, error processing means for executing error processing; An IC card characterized by comprising the same. **Claim 7** An element data storage method executed by an electronic information storage medium that receives a plurality of commands including element data for personalizing an application from an external device, comprising: storing, for each reception of the command from the external device, the element data included in the command in a memory area referred to by the application; determining whether the command received from the external device is the last command; when it is determined that the command is the last command, determining whether all of a plurality of essential element data necessary for the application to operate normally is stored in the memory area; when it is determined that all of the essential element data is not stored in the memory area, executing error processing; An element data storage method characterized by including the above. **Claim 8** Causing a computer included in an electronic information storage medium that receives a plurality of commands including element data for personalizing an application from an external device to: store, for each reception of the command from the external device, the element data included in the command in a memory area referred to by the application; determine whether the command received from the external device is the last command; when it is determined that the command is the last command, determine whether all of a plurality of essential element data necessary for the application to operate normally is stored in the memory area; when it is determined that all of the essential element data is not stored in the memory area, execute error processing; A program characterized by causing the above to be executed.

Citation Information

Patent Citations

  • Portable electric device and method of checking the device

    JP2003108445A

  • Portable storage medium issuing system

    JP2004046336A

  • Card inspection device, method and program

    JP2004287586A

  • Power supply method for carrier system

    JP1988052609A

Cited By

  • Game machine

    JP2025123297A

  • Game machine

    JP2025123298A

  • Game machine

    JP2025123299A