Portable electronic device, IC card, and program
The IC card manages cryptographic algorithm lifecycles through a processor to address security vulnerabilities by disabling vulnerable algorithms, ensuring secure operation and resistance to attacks.
Patent Information
- Application Number
- JP2024010093
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-26
- Publication Date
- 2025-08-07
AI Technical Summary
Conventional IC cards lack effective management of cryptographic algorithms, leading to potential security vulnerabilities when migrating to new cryptographic methods.
A portable electronic device, such as an IC card, equipped with a processor that manages the lifecycle of multiple cryptographic algorithms by updating their usability based on specified conditions, including security attacks and external commands.
Ensures secure operation by disabling vulnerable cryptographic algorithms, maintaining appropriate security levels even during attacks, and preventing unauthorized use.
Smart Images

Figure 2025115576000001_ABST
Abstract
Description
[Technical Field]
[0001] FIELD Embodiments of the present invention relate to a portable electronic device, an IC card, and a program. [Background technology]
[0002] Portable electronic devices such as IC cards may be equipped with cryptographic processing functions using various cryptographic methods. Furthermore, IC cards may be equipped with not only cryptographic methods currently in use, but also newly developed cryptographic methods. For example, when migrating to a newly developed cryptographic method, IC cards may be equipped with a hybrid cryptographic algorithm that combines an existing cryptographic method with a new cryptographic method. However, conventional IC cards do not have cryptographic algorithms managed, which raises the issue that cards with security vulnerabilities may be distributed on the market. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2018-61193 Summary of the Invention [Problem to be solved by the invention]
[0004] In order to solve the above problems, the present invention provides a portable electronic device, an IC card, and a program that can achieve appropriate security. [Means for solving the problem]
[0005] According to an embodiment, a portable electronic device includes an interface, a memory, and a processor. The interface communicates with an external device. The memory stores information indicating a lifecycle for each of a plurality of cryptographic algorithms. The processor rewrites the information indicating the lifecycle of a cryptographic algorithm that satisfies a specified condition among the lifecycles for the plurality of cryptographic algorithms stored in the memory. [Brief explanation of the drawings]
[0006] [Figure 1] FIG. 1 is a block diagram showing an example of the configuration of an IC card as a portable electronic device according to an embodiment. [Figure 2] FIG. 2 is a block diagram showing an example of the configuration of an IC card processing device that communicates with an IC card as a portable electronic device according to the embodiment. [Figure 3] FIG. 3 is a diagram showing an example of security strength for a plurality of encryption algorithms installed in an IC card as a portable electronic device according to the embodiment. [Figure 4] FIG. 4 is a diagram showing an example of a management table for managing the life cycles of a plurality of cryptographic algorithms in an IC card as a portable electronic device according to the embodiment. [Figure 5] FIG. 5 is a diagram showing the correspondence between the encryption algorithm IDs and the encryption algorithms in the management table shown in FIG. [Figure 6] FIG. 6 is a flowchart for explaining an example of the operation of the IC card as the portable electronic device according to the embodiment in response to a life cycle update command. [Figure 7] FIG. 7 is a flowchart for explaining an example of an operation when an IC card as a portable electronic device according to the embodiment detects a security attack. [Figure 8] FIG. 8 is a flowchart illustrating an example of the operation of a process in which an IC card as a portable electronic device according to the embodiment notifies the state of an encryption algorithm. [Figure 9]FIG. 9 is a flowchart for explaining an example of operation when an IC card serving as a portable electronic device according to the embodiment receives a command to perform encryption processing. DETAILED DESCRIPTION OF THE INVENTION
[0007] Hereinafter, embodiments will be described with reference to the drawings. 1 is a block diagram showing a schematic configuration example of an IC card 1 according to an embodiment. The IC card 1 as a portable electronic device according to the embodiment constitutes an IC card processing system together with an IC card processing device 2. The IC card 1 is a portable electronic device that is activated (made operable) by power supplied from the IC card processing device 2. The IC card 1 is also called a smart card.
[0008] The portable electronic device according to the embodiment is not limited to a card-like shape, and may be a booklet-like device (for example, a notebook such as a passport) having the same configuration and processing functions as the IC card 1 described later. The portable electronic device according to the embodiment may also be a portable electronic device (for example, a smartphone, a mobile phone, a tablet PC, a dongle, etc.) having the same configuration and processing functions as the IC card 1 described later.
[0009] IC cards 1 can be broadly classified by communication method into contact IC cards and contactless IC cards. For example, a contact IC card 1 is activated by receiving an operating power supply and an operating clock from an IC card processing device 2 via a contact portion serving as a communication interface. A contactless IC card 1 receives radio waves from the IC card processing device 2 via an antenna and a modulation / demodulation circuit serving as a communication interface, and activates itself by generating an operating power supply and an operating clock from the radio waves.
[0010] As shown in Fig. 1, the IC card 1 has a main body C. The main body C is made of plastic or the like and formed in a card shape. The IC card 1 has a module M inside the main body C. The module M is formed integrally with one or more IC chips Ca and an external interface for communication (interface) connected thereto, and is embedded inside the main body C.
[0011] In addition, the portable electronic device according to the embodiment may be one that includes a module M in a main body C formed in the shape of a booklet, or one that includes a module M within a main body C that forms a portable electronic device.
[0012] In the configuration example shown in FIG. 1, a module M of an IC card 1 includes a processor 11, a RAM 12, a ROM 13, a nonvolatile memory 14, a communication control unit 15, an interface 16, and the like.
[0013] The processor 11 includes circuits that execute various processes. The processor 11 is, for example, a CPU (Central Processing Unit). The processor 11 controls the entire IC card 1. The processor 11 executes programs stored in the ROM 13 or the non-volatile memory 14 to realize various processing functions. However, some or all of the various functions executed by the processor 11, which will be described later, may be realized by hardware circuits.
[0014] The RAM 12 is a volatile memory that functions as a working memory. The RAM 12 also functions as a buffer that temporarily stores data being processed by the processor 11. For example, the RAM 12 functions as a communication buffer that temporarily stores data to be transmitted and received between the IC card processing device 2 and the processor 11 via the communication control unit 15 and the interface 16.
[0015] ROM 13 is a non-volatile memory that functions as a program memory. Control programs, control data, and the like are stored in ROM 13 beforehand. ROM 13 is built into IC card 1 during manufacturing, with an OS (operating system) program, application programs, control data, and the like stored therein. In other words, the control programs and control data stored in ROM 13 are built in beforehand according to the specifications of the IC card 1. For example, when a command is given, processor 11 executes an application that runs on the OS stored in ROM 13, thereby executing command processing using functions provided by the OS.
[0016] The nonvolatile memory 14 is a nonvolatile memory to which data can be written and rewritten. The nonvolatile memory 14 is configured, for example, with an EEPROM (registered trademark) (Electrically Erasable Programmable Read Only Memory) or a flash ROM. Programs and various data according to the operational use of the IC card 1 are written in the nonvolatile memory 14.
[0017] Program files or data files are defined in the nonvolatile memory 14, and control programs and various data are written to these files. For example, the nonvolatile memory 14 stores various authentication data, user data, or application programs such as authentication processing programs. The nonvolatile memory 14 also stores network authentication data for communicating with an external network. Some or all of the nonvolatile memory 14 has tamper resistance, allowing data to be stored securely.
[0018] The communication control unit 15 is connected to the interface 16. The interface 16 is an interface for communication connection to an external device. The communication control unit 15 and the interface 16 constitute a communication unit. The communication control unit 15 and the interface 16 realize a communication function using a communication method corresponding to the interface of the IC card processing device 2. Furthermore, the communication control unit 15 and the interface 16 may be configured to support multiple communication methods (for example, contact communication and contactless communication).
[0019] When the IC card 1 is realized as a contact-type IC card, the communication control unit 15 and the interface 16 constitute a communication unit that contacts and communicates with the IC card processing device 2. In this case, the interface 16 is constituted by a contact unit that makes physical and electrical contact with the contact unit of the IC card processing device 2, and the communication control unit 15 is constituted by a circuit that controls the transmission and reception of signals via the contact unit.
[0020] Furthermore, when the IC card 1 is realized as a contactless IC card, the communication control unit 15 and the interface 16 constitute a communication unit that communicates contactlessly (wirelessly) with a card reader / writer of the IC card processing device 2. In this case, the interface 16 is constituted by an antenna that transmits and receives radio waves, and the communication control unit 15 is constituted by a modulation circuit for generating radio waves to be transmitted and a demodulation circuit for generating a signal from the received radio waves.
[0021] FIG. 2 is a block diagram schematically showing an example of the configuration of the IC card processing device 2 according to the embodiment. 2, the IC card processing device 2 is a higher-level device that has the function of communicating with the IC card 1 via the card reader / writer 24. The IC card processing device 2 may be, for example, a device in which the card reader / writer 24 is connected to a control device such as a personal computer (PC).
[0022] As shown in FIG. 2, the IC card processing device 2 includes a control unit 21, a display unit 22, an operation unit 23, a card reader / writer 24, and the like. The control unit 21 controls the overall operation of the IC card processing device 2. The control unit 21 is composed of a processor (CPU) 25, RAM 26, ROM 27, non-volatile memory 28, communication unit 29, etc. For example, the control unit 21 is composed of a personal computer. The processor 25 performs various processes by executing programs stored in the ROM 27 or non-volatile memory 28. The RAM 26 functions as a working memory that temporarily stores data. The ROM 27 is a non-volatile memory that stores programs, control data, etc. The non-volatile memory 28 is a rewritable non-volatile memory. The communication unit 29 is an interface for communicating with external devices.
[0023] The control unit 21 has a function of sending commands to the IC card 1 via the card reader / writer 24, and a function of performing various processes based on data received from the IC card 1. For example, the control unit 21 controls writing of data to the nonvolatile memory in the IC card 1 by sending a data write command to the IC card 1 via the card reader / writer 24. The control unit 21 also controls reading of data from the IC card 1 by sending a read command to the IC card 1. The control unit 21 also controls an application selected in the IC card 1 by sending an application selection command to the IC card 1.
[0024] The display unit 22 is a display device that displays various information under the control of the control unit 21. The operation unit 23 is composed of a keyboard, a numeric keypad, a pointing device, etc. The operation unit 23 is used by an operator of the IC card processing device 2 to input various operation instructions, data, etc. The operation unit 23 also functions as an input unit for inputting identification information of the user of the IC card 1 or authentication information such as a password.
[0025] The card reader / writer 24 is a communication unit (second communication unit) for communicating with the IC card 1. The card reader / writer 24 is configured with an interface according to the communication method of the IC card 1. For example, if the IC card 1 is a contact-type IC card, the card reader / writer 24 is configured with a contact unit for physically and electrically connecting to a contact unit of the IC card 1. If the IC card 1 is a contactless IC card, the card reader / writer 24 is configured with an antenna and communication control for wireless communication with the IC card 1. The card reader / writer 24 supplies power, clocks, performs reset control, and transmits and receives data to the IC card 1. Under the control of the control unit 21, the card reader / writer 24 activates (starts up) the IC card 1, transmits various commands, and receives responses to the transmitted commands.
[0026] Next, a plurality of encryption algorithms installed in the IC card 1 according to the embodiment and the security strength of each encryption algorithm will be described. Here, the type of encryption algorithm is called an encryption method, and an encryption algorithm is a combination of an encryption method and a key length (security strength). For example, the IC card 1 is installed in multiple program memories for executing encryption processing using multiple encryption methods, and executes encryption processing with various security strengths using encryption algorithms each consisting of a combination of an encryption method and a key length.
[0027] FIG. 3 is a diagram showing an example of security strength for a plurality of encryption algorithms installed in the IC card 1 according to the embodiment. In the example shown in FIG. 3, the encryption methods implemented in the IC card 1 are public key cryptography (IFC (Integer Factorization Cryptosystems), FFC (Finite Field Cryptosystems), ECC (Elliptic Curve Cryptosystems)), symmetric key cryptography, hash function, and PQC (Post-Quantum Cryptography).
[0028] Various key lengths (security strengths) can be set for each encryption method. The security strength of the encryption process is determined by the combination of the encryption method and key length. Each column in the table shown in Figure 3 stores an encryption algorithm consisting of a combination of an encryption method and a key length. As an example, in Figure 3, an encryption algorithm with a public key encryption (IFC) key length of 2048 is displayed as RSA-PSS k=2048.
[0029] In the example shown in Fig. 3, cryptographic algorithm groups that are the same cryptographic method but have different key lengths are arranged in the column direction (vertical direction). In the table shown in Fig. 3, the column for a cryptographic algorithm (RSA-PSS k=2048) that is public key cryptography (IFC) with a key length of 2048 is represented as Alg[0][0], with row 0 and column 0, and the column in row x and column y is represented as Alg[x][y]. In this case, cryptographic algorithm groups that are public key cryptography (IFC) with different key lengths are stored in the columns in column 0 represented as Alg[n][0] (columns in column 0 and row n (1 to 3)).
[0030] Expressed in a similar manner, a set of encryption algorithms with different key lengths for public key cryptography (FFC) is stored in the columns of the first column, expressed as Alg[n][1]. A set of encryption algorithms with different key lengths for public key cryptography (ECC) is stored in the columns of the second column, expressed as Alg[n][2]. A set of encryption algorithms with different key lengths for symmetric key cryptography is stored in the columns of the third column, expressed as Alg[n][3]. A set of encryption algorithms with different key lengths for hash functions is stored in the columns of the fourth column, expressed as Alg[n][4]. A set of encryption algorithms with different security strengths for PQC is stored in the columns of the fifth column, expressed as Alg[n][5].
[0031] 3, cryptographic algorithm groups with the same (or similar) security strength are arranged in the row direction (horizontal direction). For example, each column of row 0 of column n (1 to 3) expressed as Alg[0][n] stores cryptographic algorithm groups whose security strength is evaluated as "112" for each cryptographic method.
[0032] Similarly, each column in one row, represented as Alg[1][n], stores a set of cryptographic algorithms with various encryption methods and a security strength of "128." Each column in two rows, represented as Alg[2][n], stores a set of cryptographic algorithms with various encryption methods and a security strength of "192." Each column in three rows, represented as Alg[3][n], stores a set of cryptographic algorithms with various encryption methods and a security strength of "256."
[0033] Next, the management of the life cycle of a plurality of cryptographic algorithms installed in the IC card 1 according to the embodiment will be described. Fig. 4 is a diagram showing an example of a management table for managing the life cycles of multiple cryptographic algorithms stored in the nonvolatile memory 14 of the IC card 1 according to the embodiment. Fig. 5 is a diagram showing the correspondence between cryptographic algorithm IDs (hereinafter simply referred to as IDs) and cryptographic algorithms in the management table shown in Fig. 4. Here, the life cycle of a cryptographic algorithm will be described assuming that the state of the cryptographic algorithm is "usable" or "unusable." However, the life cycle is not limited to "usable" or "unusable," and for example, it may be possible to set "temporarily unusable" in addition to "usable" or "unusable."
[0034] The management table shown in Fig. 4 stores information indicating the life cycle of each cryptographic algorithm shown in Fig. 3. In the management table, each cryptographic algorithm is indicated by a cryptographic algorithm ID (hereinafter simply referred to as ID) shown in Fig. 5. The management table also stores information indicating the life cycle of the cryptographic algorithm (life cycle information) in association with the ID indicating the cryptographic algorithm. In the example shown in Fig. 4, the life cycle information is set to "1" indicating usable or "0" indicating unusable.
[0035] The combinations of id and life cycle shown in Fig. 4 correspond to the encryption algorithms in the respective columns shown in Fig. 3. For example, according to the setting example shown in Fig. 5, the encryption algorithm for id "1" is "RSA-PSS k=2048" (public key encryption (IFC) with a key length of 2048) shown in Fig. 3. Therefore, according to the example shown in Fig. 4, the life cycle information "0" corresponding to id "1" indicates that the life cycle of the encryption algorithm "RSA-PSS k=2048" for which id is "1" cannot be used.
[0036] In addition, the IC card 1 can set all cryptographic algorithms to be usable as the initial value by setting the initial value of the life cycle information corresponding to each cryptographic algorithm (each ID) to "1" in the management table shown in Fig. 4. Furthermore, the IC card 1 can disable the life cycle of each cryptographic algorithm that satisfies the specified conditions by rewriting the life cycle information of the cryptographic algorithm that satisfies the specified conditions to "0" which means that it is unusable.
[0037] Next, we will explain how to rewrite (update) the life cycle of a cryptographic algorithm. In the IC card 1 according to the embodiment, the processor 11 has a function of rewriting the life cycle of each cryptographic algorithm. For example, the processor 11 rewrites the life cycle information of each cryptographic algorithm that satisfies the conditions specified in a management table such as the one shown in Fig. 4. In this embodiment, an example will be described in which the processor 11 rewrites the life cycle information of a cryptographic algorithm in the following first or second procedure.
[0038] As a first step, the processor 11 rewrites (updates) the life cycle information of the cryptographic algorithm that satisfies the conditions specified in a specific command (life cycle update command) from an external device such as the IC card processing device 2. As a second step, if the processor 11 detects a security attack during processing, it can also rewrite the life cycle information of the cryptographic algorithm based on preset setting information.
[0039] First, an example of rewriting (updating, changing) the life cycle information of a cryptographic algorithm in response to a life cycle update command will be described. The lifecycle update command is set in advance. For example, the format of the command supplied to the IC card 1 is specified by a specification such as an international standard. As a specific example, it is assumed that the format of the command supplied to the IC card 1 is specified to be composed of a CLA / INS, parameters (P1, P2, P3), and a data section. An example of setting a lifecycle update command in such a command format will be described below.
[0040] In the above command format, a value indicating that it is a lifecycle update command is set in CLA / INS of the lifecycle update command. As a specific example, 80 / 10 may be set in CLA / INS. However, the value set in CLA / INS is not limited to a specific value, and any value determined as a specification may be used. Furthermore, P1 of the lifecycle update command stores information indicating the conditions for identifying the lifecycle information to be updated (changed). Furthermore, in the lifecycle update command, P2 is an arbitrary value, and P3 is a value indicating the length of the subsequent data section.
[0041] In this embodiment, in response to a lifecycle update command, the IC card 1 is capable of simultaneously updating the lifecycle information of all cryptographic algorithms specified by the security strength, simultaneously updating the lifecycle information of all cryptographic algorithms specified by the cryptographic method, or simultaneously updating the lifecycle information of a specific cryptographic algorithm.
[0042] In the lifecycle update command, a value indicating whether the condition for specifying the cryptographic algorithm to be updated in the lifecycle information is security strength, cryptographic method, or specific algorithm is set in "P1."
[0043] For example, if P1 of the lifecycle update command is "00," it specifies the cryptographic algorithms that will disable the lifecycle information, with security strength as the condition. In other words, P1=00 specifies that the lifecycle will be disabled all at once based on security strength. In this case, the security strength value, which is the condition for specifying the cryptographic algorithms that will be disabled, can be specified in the data section of the command.
[0044] As a specific example, if you want to disable the lifecycle information of all cryptographic algorithms with a security strength of "112" at once, the command will set CLA / INS to 80 / 10, P1 to "00", and the data section will contain the value 0x70 (112), which indicates a security strength of "112". In addition, a command to disable the life cycle information of all cryptographic algorithms with a security strength of "128" is to set 80 / 10 in CLA / INS, set "00" in P1, and store the value 0x80 (128) in the data section, which indicates a security strength of "128."
[0045] If P1 in the lifecycle update command is "01", it specifies the encryption algorithm that will disable the lifecycle information, subject to the encryption method. In other words, P1=01 specifies that the lifecycle will be disabled all at once by encryption method. In this case, the information indicating the encryption method that is the condition for specifying the encryption algorithm to disable can be specified in the data section of the command.
[0046] As a specific example, to disable all life cycle information for the encryption algorithm whose encryption method is "RSA-PSS" (public key cryptography (IFC)), the command sets CLA / INS to 80 / 10, P1 to "01", and the data section to "0x00" as a value indicating RSA-PSS. In addition, when disabling all life cycle information of the encryption algorithm whose encryption method is "DH" (public key cryptography (FFC)), the command sets 80 / 10 in CLA / INS, sets "01" in P1, and sets "0x01" in the data section as a value indicating DH.
[0047] If P1 in the lifecycle update command is "02", the lifecycle information of the specified specific cryptographic algorithm is disabled. In other words, P1=02 specifies that the lifecycle of the specific cryptographic algorithm is disabled. In this case, the information indicating the specific cryptographic algorithm is set in the data portion of the command. As a specific example, to disable the lifecycle information of the cryptographic algorithm "SHA-256" (a hash function with a key length of 256), the command sets 80 / 10 in CLA / INS, sets "02" in P1, and sets "0x11(17)", which is the cryptographic algorithm ID assigned to SHA-256, in the data section.
[0048] Next, an example of the operation of command processing in response to a life cycle update command in the IC card 1 according to the embodiment will be described. FIG. 6 is a flowchart for explaining an example of the operation of the IC card 1 according to the embodiment in command processing in response to a life cycle update command. When the processor 11 of the IC card 1 receives a command from the IC card processing device 2 via the interface 16, it determines whether the received command is a life cycle update command for the encryption algorithm (ST10). If the received command is not a life cycle update command (ST10, NO), the processor 11 executes processing according to the command.
[0049] If the received command is a lifecycle update command (ST10, YES), the processor 11 checks the condition in the command that specifies the cryptographic algorithm to be updated. As in the example above, the lifecycle update command indicates the condition that specifies the cryptographic algorithm to be updated in the lifecycle by the value of the parameter P1 (either "00," "01," or "02").
[0050] The processor 11 determines whether P1 in the received life cycle update command is "00" (ST11). In the example described above, P1=00 indicates that the cryptographic algorithm to be updated in the life cycle is specified by its security strength.
[0051] If P1 in the received command is "00" (ST11, YES), the processor 11 identifies the value of the security strength specified by the information set in the data portion of the command (ST12). After identifying the value of the security strength specified in the command, the processor 11 identifies all cryptographic algorithms that have the specified security strength, and updates the life cycle information of all cryptographic algorithms that have the specified security strength to unusable (ST13).
[0052] If P1 in the received command is not "00" (ST11, NO), the processor 11 determines whether P1 in the received life cycle update command is "01" (ST14). As described above, P1=01 indicates that the cryptographic algorithm to be updated in the life cycle is specified by the cryptographic method.
[0053] If P1 in the received command is "01" (ST14, YES), the processor 11 identifies the encryption method specified by the information set in the data section of the command (ST12). After identifying the encryption method specified in the command, the processor 11 identifies all encryption algorithms that use the specified encryption method, and updates the life cycle information of all encryption algorithms that use the specified encryption method to unusable (ST16).
[0054] If P1 in the received command is not "01" (ST14, NO), the processor 11 determines whether P1 in the received life cycle update command is "02" (ST17). As described above, P1=02 indicates that the cryptographic algorithm to be used for updating the life cycle is specified by the cryptographic algorithm.
[0055] If P1 in the received command is "02" (ST17, YES), the processor 11 identifies the encryption algorithm specified by the information set in the data section of the command (ST18). After identifying the encryption algorithm specified in the command, the processor 11 updates the life cycle information of the specified encryption algorithm to unusable (ST19).
[0056] Furthermore, if P1 in the received command is not "02" (ST17, NO), that is, if P1 is not "00," "01," or "02," processor 11 performs error processing (ST20). For example, as error processing, processor 11 transmits a response indicating that the parameter of the received command has an abnormal value, and ends the processing.
[0057] According to the above-described operation example, the IC card as a portable electronic device identifies the conditions specified in the received command and updates the life cycle information of all cryptographic algorithms that satisfy the specified conditions. This allows the IC card as a portable electronic device to manage various cryptographic algorithms and further to update the life cycles of all cryptographic algorithms that satisfy the conditions specified in the command.
[0058] Furthermore, the IC card as a portable electronic device collectively updates the life cycle information of all cryptographic algorithms that have the security strength specified in the received command to unusable. This allows the IC card as a portable electronic device to collectively update the life cycles of all cryptographic algorithms that have the security strength specified in the command, among the multiple cryptographic algorithms installed, to unusable. As a result, the life cycles of cryptographic algorithms can be controlled for each security strength, and updates can be made to allow only cryptographic processes that provide appropriate security even during operation.
[0059] Furthermore, the IC card as a portable electronic device collectively updates the life cycle information of all cryptographic algorithms that use the cryptographic method specified in the received command to disable them. This allows the IC card as a portable electronic device to collectively update the life cycles of all cryptographic algorithms that use the cryptographic method specified in the command, among the multiple cryptographic algorithms installed, to disable them. As a result, the IC card can control the life cycles of cryptographic algorithms for each cryptographic method, and can disable all cryptographic processes using specific cryptographic methods even during operation.
[0060] Furthermore, the IC card as a portable electronic device updates the life cycle information of the specific cryptographic algorithm specified in the received command to disable it. This allows the IC card as a portable electronic device to update the life cycle of the specific cryptographic algorithm specified in the command among the multiple cryptographic algorithms installed in it to disable it. As a result, if a security problem or the like occurs with only a specific cryptographic algorithm, it becomes possible to disable only the specific cryptographic algorithm.
[0061] Next, an example of the operation of a process for updating the life cycle of a cryptographic algorithm when the IC card 1 according to the embodiment is subjected to a security attack will be described. Here, the IC card 1 is assumed to have a means for detecting an external security attack while executing a process (during operation). For example, the means for detecting a security attack may be a means for detecting the security attack using hardware such as a sensor provided in the IC card 1, or may be a means for detecting operational fraud using a program of a predetermined algorithm executed by the processor 11.
[0062] Furthermore, the IC card 1 is assumed to store setting information indicating the operation (process) to be executed in the event of a security attack in a memory such as the data memory 14 or the ROM 13. Such setting information may be information written to the memory during the manufacturing or issuance process of the IC card 1, or may be information that can be updated during operation of the IC card 1. Here, an example of operation will be described assuming that setting information indicating the operation to be executed in the event of a security attack is stored.
[0063] FIG. 7 is a flowchart for explaining an example of operation of a life cycle update process that is executed when the IC card 1 according to the embodiment detects a security attack. The processor 11 of the IC card 1 detects whether or not a security attack has occurred while executing processing including encryption processing (ST31). If the processor 11 does not detect a security attack (ST31, NO), it continues executing the processing. If the processor 11 completes the processing without detecting a security attack (ST32, YES), it ends the operation.
[0064] When the processor 11 detects a security attack while executing a process (ST31, YES), it stops the process being executed (ST33). After stopping the process, the processor 11 reads the setting information of the operation to be executed in the event of a security attack, and checks the conditions for updating the life cycle of the cryptographic algorithm based on the setting information.
[0065] First, the processor 11 determines whether or not to disable (update) the life cycle of the cryptographic algorithm collectively based on the security strength (ST34). For example, the processor 11 determines whether or not the setting information for the operation to be executed in the event of a security attack sets the life cycle of the cryptographic algorithm collectively based on the security strength.
[0066] When the processor 11 determines that all cryptographic algorithms are to be disabled based on security strength (YES in ST34), it identifies the cryptographic algorithm of the cryptographic process in the process that was being executed (the cryptographic algorithm currently being executed) and identifies the security strength of the cryptographic algorithm currently being executed.The processor 11 updates the life cycle information of all cryptographic algorithms that have the security strength of the cryptographic algorithm currently being executed to be disabled (ST35).
[0067] If the security strength does not collectively disable the use of the encryption algorithm (ST34, NO), the processor 11 determines whether to collectively disable (update) the use of the encryption algorithm by encryption method (ST36). For example, the processor 11 determines whether collectively disablement of the use of the encryption algorithm by encryption method is set in the setting information for the operation to be executed in the event of a security attack.
[0068] When the processor 11 determines that the encryption method is to be collectively disabled (ST36, YES), it identifies the encryption method of the encryption algorithm currently being executed. The processor 11 updates the life cycle information of all encryption algorithms that use the encryption method of the encryption algorithm currently being executed to disabled (ST37).
[0069] If the encryption method is not disabled all at once (ST36, NO), the processor 11 determines whether to disable (update) the life cycle of the specific encryption algorithm (the encryption algorithm under attack) (ST38). For example, the processor 11 determines whether the setting information for the operation to be executed in the event of a security attack includes a setting to disable the encryption algorithm currently being executed. When the processor 11 determines that the currently running cryptographic algorithm is to be made unusable (ST38, YES), it updates the life cycle information of the currently running cryptographic algorithm to make it unusable (ST39).
[0070] According to the above-described operational example, when the IC card as a portable electronic device detects a security attack while executing a process, it disables the life cycle information of all cryptographic algorithms that satisfy the conditions specified by the setting information for the operation to be performed in the event of a security attack. This allows the IC card as a portable electronic device to manage various cryptographic algorithms and, in the event of a security attack, disable the life cycle information of all cryptographic algorithms that satisfy the conditions specified by the setting information.
[0071] Furthermore, when a security attack is detected, if the IC card as a portable electronic device is set to disable all encryption algorithms based on security strength, it updates the life cycle information of all encryption algorithms with security strength equivalent to the security strength of the encryption algorithm used in the current process to disable all encryption algorithms at once, etc. This allows the IC card as a portable electronic device to disable all encryption algorithms with security strength equivalent to the encryption algorithm that has been subjected to the security attack, and can be operated so as to maintain a level of security that can adequately counter security attacks.
[0072] Furthermore, when a security attack is detected, if the IC card as a portable electronic device is set to disable all encryption algorithms by encryption method, it updates the life cycle information of all encryption algorithms that use the encryption method of the encryption algorithm used in the current processing to disable all encryption algorithms at once, etc. This allows the IC card as a portable electronic device to disable all encryption algorithms that use the same encryption method as the encryption algorithm that has been subjected to the security attack at once, and can be operated so as to maintain a level of security that can adequately counter security attacks.
[0073] Furthermore, when an IC card as a portable electronic device detects a security attack, if the cryptographic algorithm currently being executed is set to be unusable, it updates the lifecycle information of the cryptographic algorithm used in the current process to unusable, etc. This allows the IC card as a portable electronic device to disable the cryptographic algorithm that has been subjected to a security attack, and can be operated in a manner that can resist security attacks.
[0074] Next, an example of the operation of the process of notifying the life cycle of the encryption algorithm in the IC card 1 according to the embodiment will be described. Here, the IC card 1 has a function of notifying (responding) information indicating the life cycle of each cryptographic algorithm stored in the data memory 14. For example, the IC card 1 is assumed to accept a life cycle confirmation command that notifies (responds) information indicating the life cycle of a specified cryptographic algorithm.
[0075] FIG. 8 is a flowchart for explaining an example of the operation of the process in which the IC card 1 according to the embodiment notifies the life cycle of the encryption algorithm. When the processor 11 of the IC card 1 receives a command from the IC card processing device 2 via the interface 16, it determines whether the received command is a command requesting confirmation of the life cycle of the encryption algorithm (a life cycle confirmation command) (ST51). If the received command is not a life cycle confirmation command (ST51, NO), the processor 11 executes processing according to the command.
[0076] If the received command is a lifecycle confirmation command (ST51, YES), the processor 11 identifies the encryption algorithm specified in the command, and reads the lifecycle of the identified encryption algorithm from the management table in the data memory 14 (ST52).
[0077] The processor 11 reads the life cycle of the cryptographic algorithm specified in the received command, creates a response including information indicating the life cycle of the specified cryptographic algorithm, and transmits the response including information indicating the life cycle of the specified cryptographic algorithm to the device that sent the command (ST53), and ends the process.
[0078] According to the above-described operational example, the IC card as a portable electronic device outputs information indicating the life cycle of a specified cryptographic algorithm in response to a request from the IC card processing device. This allows the IC card as a portable electronic device to notify the life cycle of a specific cryptographic algorithm, and the IC card processing device to check the state of the cryptographic algorithm in the IC card.
[0079] Next, an example of operation when the IC card 1 according to the embodiment receives a command to perform encryption processing will be described. FIG. 9 is a flowchart for explaining an example of operation when the IC card 1 according to the embodiment receives a command to perform encryption processing. When the processor 11 of the IC card 1 receives a command from the IC card processing device 2 via the interface 16, it determines whether the received command is a command to perform encryption processing (ST61). If the received command is not a command to perform encryption processing (NO in ST61), the processor 11 executes processing according to the command.
[0080] If the received command is a command for performing cryptographic processing (ST61, YES), the processor 11 calls, from the OS, a function that uses the cipher to be used in the cryptographic processing according to the command (ST62). Furthermore, the processor 11 obtains life cycle information of the cryptographic algorithm to be used in the cryptographic processing according to the received command from the management table in the data memory 14 (ST63).
[0081] When the processor 11 acquires the life cycle information of the cryptographic algorithm to be used, it determines whether the cryptographic algorithm to be used is usable based on the acquired life cycle information (ST64). If the cryptographic algorithm to be used is usable (ST64, YES), the processor 11 executes cryptographic processing according to the received command using a function read from the OS (ST65).
[0082] If the encryption algorithm to be used is unavailable (ST64, NO), the processor 11 performs error processing (ST66) and terminates the processing for the command. Note that if the encryption algorithm to be used is unavailable, the processor 11 may retry the above-described processing using another encryption.
[0083] According to the above-described operational example, when an IC card as a portable electronic device executes cryptographic processing in response to a command from an IC card processing device, the IC card checks the life cycle of the cryptographic algorithm used for the cryptographic processing, and if it is confirmed that the life cycle is usable, executes the cryptographic processing using the cryptographic algorithm. This allows the IC card as a portable electronic device to check the life cycle of the cryptographic algorithm used when executing cryptographic processing, and prevents cryptographic processing using a cryptographic algorithm whose life cycle is unusable from being executed.
[0084] The functions described in the above embodiments can be realized not only by hardware but also by software by loading a program describing each function into a computer. Also, each function may be realized by selecting either software or hardware as appropriate.
[0085] Although several embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be embodied in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their modifications are included within the scope and spirit of the invention, and are also included in the scope of the invention and its equivalents as defined in the claims. [Explanation of symbols]
[0086] 1...IC card (portable electronic device), C...main body, Ca...IC chip, M...module, 2...IC card processing device (external device), 11...processor, 12...RAM, 13...ROM (memory), 14...non-volatile memory (memory), 15...communication control unit, 16...interface, 21...control unit, 22...display unit, 23...operation unit, 24...card reader / writer.
Claims
1. an interface for communicating with an external device; a memory that stores information indicating a life cycle for each of a plurality of cryptographic algorithms; a processor that rewrites information indicating a life cycle of a cryptographic algorithm that satisfies a specified condition among the life cycles of the plurality of cryptographic algorithms stored in the memory; A portable electronic device having:
2. the processor rewrites information indicating the life cycles of all cryptographic algorithms that satisfy conditions specified in a specific command received from the external device via the interface; The portable electronic device of claim 1 .
3. When the condition specified by the specific command is security strength, the processor rewrites information indicating the life cycles of all cryptographic algorithms that have the specified security strength.
3. The portable electronic device of claim 2.
4. When the condition specified by the specific command is an encryption method, the processor rewrites information indicating the life cycles of all encryption algorithms that use the specified encryption method.
3. The portable electronic device of claim 2.
5. When the condition specified by the specific command is a specific encryption algorithm, the processor rewrites information indicating a life cycle of the specified encryption algorithm.
3. The portable electronic device of claim 2.
6. The memory further stores setting information indicating an action to be taken in the event of a security attack; When the processor detects a security attack, it rewrites information indicating the life cycles of all cryptographic algorithms that satisfy the conditions specified by the setting information to make them unusable. The portable electronic device of claim 1 .
7. When the processor detects a security attack, if the condition specified by the setting information is security strength, the processor rewrites information indicating the life cycles of all cryptographic algorithms that have security strength equivalent to that of the cryptographic algorithm that has been subjected to the security attack to unusable information.
7. The portable electronic device of claim 6.
8. When the processor detects a security attack, if the condition specified by the setting information is an encryption method, the processor rewrites information indicating the life cycles of all encryption algorithms that use the encryption method of the encryption algorithm that has been subjected to the security attack to unusable information.
7. The portable electronic device of claim 6.
9. When the processor detects a security attack, if the condition specified by the setting information is the attacked cryptographic algorithm, the processor rewrites information indicating the life cycle of the attacked cryptographic algorithm to make it unusable.
7. The portable electronic device of claim 6.
10. When the processor receives a request command requesting a life cycle of a specific cryptographic algorithm from an external device via the interface, the processor transmits information indicating the life cycle of the specific cryptographic algorithm stored in the memory to the external device. The portable electronic device of claim 1 .
11. When the processor receives a command requesting cryptographic processing from an external device via the interface, the processor executes the cryptographic processing in accordance with the command if the life cycle of the cryptographic algorithm used for the cryptographic processing is available, and aborts the processing for the command if the life cycle of the cryptographic algorithm used for the cryptographic processing is not available. The portable electronic device of claim 1 .
12. a module including an interface for communicating with an external device, a memory for storing information indicating the life cycles of a plurality of cryptographic algorithms, and a processor for rewriting the information indicating the life cycles of cryptographic algorithms that satisfy specified conditions among the life cycles of the plurality of cryptographic algorithms stored in the memory; a main body including the module; An IC card having the above.
13. A portable electronic device having an interface for communicating with an external device, a memory, and a processor, storing information indicating a life cycle for each of a plurality of encryption algorithms in the memory; rewriting information indicating the life cycle of a cryptographic algorithm that satisfies a specified condition among the life cycles of the plurality of cryptographic algorithms stored in the memory; A program that makes it happen.
Citation Information
Patent Citations
Electronic information storage medium, IC card, support information update method, and support information update program
JP2018061193A