Signature verification device, signature verification method, and program

The signature verification device and method enhance efficiency by storing and directly verifying public key certificates, addressing delays in existing verification processes by eliminating the need for repeated certificate transmission.

JP2026088800APending Publication Date: 2026-05-29TOPPAN HOLDINGS INC

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
TOPPAN HOLDINGS INC
Filing Date
2024-11-19
Publication Date
2026-05-29

AI Technical Summary

Technical Problem

The existing signature verification processes, such as those described in ISO 7816 and Patent Document 1, require the transmission of public key certificates for each verification command, leading to delays in command communication.

Method used

A signature verification device and method that stores public key certificates with associated identification information and signature information encrypted by a private key, allowing for direct verification without transmitting the certificates during each command.

Benefits of technology

This approach speeds up the communication of signature verification commands by enabling direct verification of stored public key certificates, reducing the need for repeated transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026088800000001_ABST
    Figure 2026088800000001_ABST
Patent Text Reader

Abstract

This invention provides a signature verification device, a signature verification method, and a program that can speed up the communication of signature verification commands. [Solution] The signature verification device comprises a storage unit, a communication unit, and a signature verification unit. The storage unit stores a public key certificate associated with identification information, which includes a public key and signature information encrypted with a private key. The communication unit communicates with an external device. When the communication unit receives a signature verification command from the external device, which includes the identification information of the public key certificate, the signature verification unit verifies the signature information of the public key certificate associated with the identification information included in the signature verification command.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a signature verification device, a signature verification method, and a program.

Background Art

[0002] When a browser accesses a web server with a public key certificate set, the browser confirms the validity of the public key certificate. At this time, a certificate chain is used. The certificate chain refers to the sequence from a public key certificate such as a client or a server to the public key certificate of the top-level certification authority (CA).

[0003] The certificate chain will be described by using FIGS. 10 and 11. FIG. 10 shows an authentication system having a client 900, a server 910, and a certification authority 920. The public key certificate Cs of the server 910 is signed with the private key Kdc1 of the certification authority 920. The client 900 verifies the validity of the signature information of the public key certificate Cs by using the public key Kqc1 of the certification authority 920. Therefore, the client 900 needs to possess the public key Kqc1 (CA certificate) of the certification authority 920.

[0004] A certification authority can have a lower-level certification authority called an intermediate certification authority. The top-level certification authority is called a root certification authority.

[0005] FIG. 11 shows an authentication system having a client 900, a server 910, a certification authority 920, and an intermediate certification authority 930. The public key certificate Cs of the server 910 is signed with the private key Kdc2 of the intermediate certification authority 930. The public key certificate Cc of the intermediate certification authority 930 is signed with the private key Kdc1 of the certification authority 920, which is a root certification authority higher than the intermediate certification authority 930. The public key certificate Cc of the intermediate certification authority 930 includes the public key of the intermediate certification authority 930. The public key certificate Cc of the intermediate certification authority 930 is preset in the server 910. The client 900 possesses the public key Kqc1 of the certification authority 920 in advance.

[0006] Client 900 uses the public key Kqc1 of Certificate Authority 920 to verify the public key certificate Cc of Intermediate Certificate Authority 930 held by Server 910, and obtains the public key of Intermediate Certificate Authority 930. Client 900 then uses the public key of Intermediate Certificate Authority 930 to verify the public key certificate Cs of Server 910. Through this mechanism, Client 900 can verify the legitimacy of Server 910.

[0007] ISO 7816, the international standard for IC cards, specifies the commands used to verify the signature information of a public key certificate. When a first device holding a public key certificate requests a second device to verify the signature information of that public key certificate, the first device must send a command containing the public key certificate to the second device.

[0008] For example, ISO7816-8 Annex A A.3 describes an example of performing the VERIFY CERTIFICATE process as part of the digital signature verification process. In this example, the key to be used to verify the signature information is specified in advance using the MANAGE SECURITY ENVIRONMENT (MSE) command, and the public key certificate data is specified using the VERIFY CERTIFICATE command.

[0009] On the other hand, Patent Document 1 describes a system that can verify the legitimacy of a key generated by an IC card. In this system, the IC card holds a public key PK1 and a private key SK1, as well as a public key certificate C generated by a third party for the public key PK1. When the IC card receives a key generation command from a verifier device, it generates a new public key PK2 and a private key SK2, generates an electronic signature S by encrypting the public key PK2 with the private key SK1, and outputs the public key PK2, the electronic signature S, and the public key certificate C to the verifier device. The verifier device verifies the electronic signature S and the public key certificate C to confirm that the newly generated public key PK2 is a key generated within the IC card. [Prior art documents] [Patent Documents]

[0010] [Patent Document 1] Japanese Patent Publication No. 2002-300150 [Overview of the project] [Problems that the invention aims to solve]

[0011] The VERIFY CERTIFICATE process requires the transmission of the public key certificate each time a signature verification command is executed to request verification of the signature information, which can lead to delays in command communication.

[0012] In the system described in Patent Document 1, the IC card needs to output the public key certificate to the verifier device, which means that communication of the public key certificate takes time. Furthermore, while Patent Document 1 describes the data transmitted and received between the IC card and the verifier device, it does not describe the signature verification command necessary for verifying the signature information.

[0013] The present invention aims to provide a signature verification device, a signature verification method, and a program that can speed up the communication of signature verification commands. [Means for solving the problem]

[0014] The present invention relates to a signature verification device comprising: a storage unit that stores a public key certificate associated with identification information, which includes a public key and signature information encrypted by a private key; a communication unit that performs communication with an external device; and a signature verification unit that, when the communication unit receives a signature verification command from the external device which includes the identification information of the public key certificate, verifies the signature information of the public key certificate associated with the identification information included in the signature verification command.

[0015] The present invention is a signature verification method comprising the steps of: a communication unit receiving a signature verification command including identification information of a public key certificate from an external device; and a signature verification unit verifying the signature information of the public key certificate associated with the identification information included in the signature verification command, among the public key certificates stored in a storage unit that stores public key certificates associated with the identification information, which include a public key and signature information encrypted with a private key.

[0016] The present invention is a program for causing a computer to function as follows: a storage unit that stores a public key certificate associated with identification information, which includes a public key and signature information encrypted by a private key; a communication unit that performs communication with an external device; and a signature verification unit that, when the communication unit receives a signature verification command from the external device which includes the identification information of the public key certificate, verifies the signature information of the public key certificate associated with the identification information included in the signature verification command. [Effects of the Invention]

[0017] According to the present invention, the signature verification device, signature verification method, and program can speed up the communication of signature verification commands. [Brief explanation of the drawing]

[0018] [Figure 1] This figure shows an example of the configuration of a signature verification system according to an embodiment of the present invention. [Figure 2] This block diagram shows an example of the configuration of a device according to an embodiment of the present invention. [Figure 3] This figure shows an example of the folder structure of the storage unit of a device according to an embodiment of the present invention. [Figure 4] This flowchart shows an example of the steps involved in the signature verification process performed by a device according to an embodiment of the present invention. [Figure 5] This is a sequence diagram illustrating an example of the procedure for processing performed by a device, server, and certification authority according to an embodiment of the present invention. [Figure 6]It is a sequence diagram showing an example of the procedure of the process executed by the device and the server according to an embodiment of the present invention. [Figure 7] It is a sequence diagram showing an example of the procedure of the process executed by the device and the server according to an embodiment of the present invention. [Figure 8] It is a sequence diagram showing an example of the procedure of the process executed by the device and the server according to an embodiment of the present invention. [Figure 9] It is a sequence diagram showing an example of the procedure of the process executed by the device and the server according to an embodiment of the present invention. [Figure 10] It is a diagram showing a conventional authentication system. [Figure 11] It is a diagram showing a conventional authentication system.

Mode for Carrying Out the Invention

[0019] Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 shows an example of the configuration of the signature verification system 1 according to the present embodiment.

[0020] The signature verification system 1 shown in FIG. 1 includes a device 2, a server 3, and a certification authority 4. The device 2 is, for example, an IC card and may be a security element having tamper resistance. The server 3 requests the certification authority 4 to issue a public key certificate of the device 2 on behalf of the device 2. The device 2 and the server 3 communicate with each other. The server 3 and the certification authority 4 communicate with each other.

[0021] FIG. 2 shows an example of the configuration of the device 2. The device 2 includes a communication unit 20, a storage unit 21, and a control unit 22. The communication unit 20 has a communication circuit and communicates with the server 3. The storage unit 21 is a non-volatile memory such as an EPROM (Erasable Programmable Read-Only Memory), an EEPROM (Electrically Programmable Read-Only Memory), or a flash memory. The storage unit 21 stores a pair of the public key and the secret key of the device 2 and a public key certificate.

[0022] The control unit 22 includes a key generation unit 220, a certificate management unit 221, and a signature verification unit 222. The key generation unit 220 generates a public key and private key pair for device 2. The certificate management unit 221 manages the public key certificate stored in the storage unit 21. The signature verification unit 222 verifies the signature information of the public key certificate.

[0023] The control unit 22 may be implemented by a processor such as a CPU (Central Processing Unit) executing a program recorded on a computer-readable recording medium. The control unit 22 may be implemented by hardware (circuits) such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array). The control unit 22 may be implemented by a combination of software and hardware.

[0024] Computer-readable recording media include portable media such as flexible disks, magneto-optical disks, ROMs, or CD-ROMs, or storage units such as hard disks built into computer systems. The program described above may also be a differential file (differential program). The functions of the control unit 22 may be realized by a combination of a program already recorded in the computer and a differential program.

[0025] Figure 3 shows an example of a folder structure in the storage unit 21. The storage unit 21 has a top-level folder F10, and subfolders F20 and F21 which are subfolders of folder F10. Identification information (ID) is assigned to each folder to identify it. Each folder is associated with an ID. The ID of folder F10 is 3F00, the ID of folder F20 is 0001, and the ID of folder F21 is 0002.

[0026] The key pair K10, public key certificate C10, intermediate CA certificate C11, and root CA certificate C12 are stored in folder F20. Key pair K10 is the public and private key pair of device 2. Public key certificate C10 contains the public key of device 2 and signature information generated by encrypting that public key with the private key of an intermediate certificate authority (not shown in Figure 2). Intermediate CA certificate C11 contains the public key of the intermediate certificate authority and signature information generated by encrypting that public key with the private key of certificate authority 4. Root CA certificate C12 contains the public key of certificate authority 4 and signature information generated by encrypting that public key with the private key of certificate authority 4. Public key certificate C10, intermediate CA certificate C11, and root CA certificate C12 constitute a certificate chain.

[0027] An ID is assigned to each of the key pair K10, public key certificate C10, intermediate CA certificate C11, and root CA certificate C12 to identify each of them. Each of these is associated with an ID. The ID of key pair K10 is 0001, the ID of public key certificate C10 is 0002, the ID of intermediate CA certificate C11 is 0003, and the ID of root CA certificate C12 is 0004.

[0028] The key pair K20, public key certificate C20, and root CA certificate C21 are stored in folder F21. Key pair K20 is the public and private key pair of device 2. Public key certificate C20 contains the public key of device 2 and signature information generated by encrypting that public key with the private key of Certificate Authority 4. Root CA certificate C21 contains the public key of Certificate Authority 4 and signature information generated by encrypting that public key with the private key of Certificate Authority 4. Public key certificate C20 and root CA certificate C21 constitute a certificate chain.

[0029] An ID is assigned to each of the key pair K20, public key certificate C20, and root CA certificate C21 to identify them. The ID for key pair K20 is 0001, the ID for public key certificate C20 is 0002, and the ID for root CA certificate C21 is 0003.

[0030] Figure 4 shows an example of the signature verification process performed by device 2. Refer to Figure 4 to explain the operation of device 2.

[0031] (Step S10) The communication unit 20 receives a signature verification command sent by the server 3. For example, the signature verification command is a VERIFY CERTIFICATE command. The signature verification command includes the ID of the public key certificate used for signature verification. In addition to the ID of the public key certificate, the signature verification command may also include the ID of the public key used for signature verification. The communication unit 20 outputs the signature verification command to the control unit 22.

[0032] (Step S11) The signature verification unit 222 determines whether the ID of the public key certificate is included in the signature verification command. If the ID of the public key certificate is not included in the signature verification command, step S12 described later is executed. If the ID of the public key certificate is included in the signature verification command, step S13 described later is executed.

[0033] (Step S12) If the public key certificate ID is not included in the signature verification command, the signature verification unit 222 generates an error notification indicating that an error has occurred and outputs the error notification to the communication unit 20. The communication unit 20 then sends the error notification to the server 3.

[0034] (Step S13) The signature verification unit 222 determines whether the public key ID is included in the key specification command or the signature verification command. For example, the key specification command is an MSE command, which is received from the server 3 before the signature verification process shown in Figure 4 starts. If the public key ID is included in the key specification command or the signature verification command, step S14 described later is executed. If the public key ID is not included in either the key specification command or the signature verification command, step S15 described later is executed.

[0035] (Step S14) If the ID of a public key is included in the key specification command or signature verification command, the signature verification unit 222 uses the public key specified by that ID to decrypt the signature information of the public key certificate specified by the ID included in the signature verification command. The signature verification unit 222 compares the public key obtained by decrypting the signature information with the public key used to decrypt the signature information. If the two public keys match, the public key is valid. If the two public keys do not match, the public key is not valid.

[0036] (Step S15) If the public key ID is not included in either the key specification command or the signature verification command, the signature verification unit 222 decrypts the signature information of the public key certificate by using the public key contained in the public key certificate specified by the ID included in the signature verification command. Subsequently, the signature verification unit 222 verifies the validity of the public key by performing the same process as in step S14.

[0037] (Step S16) The signature verification unit 222 generates a verification result and outputs the verification result to the communication unit 20. The communication unit 20 sends the verification result to the server 3.

[0038] Referring to Figures 5 to 9, the processes performed by Server 3 and Device 2 will be explained. Figure 5 shows an example of the steps performed by Device 2, Server 3, and Certificate Authority 4 when Server 3 requests Certificate Authority 4 to issue a public key certificate for Device 2. The processes shown in Figure 5 are performed before the processes shown in Figures 6 to 9 are performed.

[0039] (Step S100) Server 3 sends a key pair generation request to device 2. The communication unit 20 of device 2 receives the key pair generation request and outputs the key pair generation request to the control unit 22.

[0040] (Step S101) The key generation unit 220 generates a public key and a private key pair for device 2. The generated public key and private key are stored in the storage unit 21.

[0041] (Step S102) The certificate management unit 221 outputs the public key of device 2 to the communication unit 20. The communication unit 20 sends the public key of device 2 to the server 3. The server 3 receives the public key of device 2.

[0042] (Step S103) Server 3 sends a public key certificate issuance request to Certificate Authority 4. The public key certificate issuance request includes the public key of Device 2. Certificate Authority 4 receives the public key certificate issuance request.

[0043] (Step S104) Certificate Authority 4 generates signature information by encrypting Device 2's public key with Certificate Authority 4's private key, and generates a public key certificate containing Device 2's public key and signature information. Certificate Authority 4 sends the public key certificate to Server 3. Server 3 receives the public key certificate.

[0044] (Step S105) Server 3 has already received the root CA certificate, which is the public key certificate of Certificate Authority 4, from Certificate Authority 4. Server 3 sends the root CA certificate to Device 2. The communication unit 20 of Device 2 receives the root CA certificate and outputs it to the control unit 22.

[0045] (Step S106) The certificate management unit 221 stores the root CA certificate in the storage unit 21.

[0046] (Step S107) The certificate management unit 221 outputs a successful response to the communication unit 20. The communication unit 20 sends the successful response to the server 3. The server 3 receives the successful response.

[0047] (Step S108) Server 3 sends the public key certificate received from Certificate Authority 4 to Device 2. The communication unit 20 of Device 2 receives the public key certificate and outputs it to the control unit 22.

[0048] (Step S109) The certificate management unit 221 stores the public key certificate in the storage unit 21.

[0049] (Step S110) The certificate management unit 221 outputs a successful response to the communication unit 20. The communication unit 20 sends the successful response to the server 3. The server 3 receives the successful response.

[0050] In the process shown in Figure 5, a WRITE BINARY command or the like may be used to save the public key certificate to the storage unit 21 of device 2.

[0051] Figures 6 to 9 show examples of the procedures that device 2 and server 3 perform when server 3 requests device 2 to verify the signature information of a public key certificate. The operation of device 2 and server 3 in Figures 6 to 9 will be explained using the case where the storage unit 21 has the folder structure shown in Figure 3 as an example.

[0052] Figure 6 shows an example where Server 3 requests Device 2 to verify the signature information of the root CA certificate.

[0053] (Step S200) Server 3 sends a SELECT command to device 2 to select a folder in the storage unit 21 of device 2. The SELECT command includes the folder ID (0002 in the example shown in Figure 6). The communication unit 20 of device 2 receives the SELECT command and outputs the SELECT command to the control unit 22.

[0054] (Step S201) The signature verification unit 222 selects the folder associated with the ID included in the SELECT command. Since the ID is 0002, the signature verification unit 222 selects folder F21 shown in Figure 3.

[0055] (Step S202) The signature verification unit 222 outputs a successful response to the communication unit 20. The communication unit 20 sends the successful response to the server 3. The server 3 receives the successful response.

[0056] (Step S203) Server 3 sends a signature verification command to device 2. The communication unit 20 of device 2 receives the signature verification command and outputs the signature verification command to the control unit 22.

[0057] In the example shown in Figure 6, the signature verification command data is "00 2A 00 BE 04 81 02 00 03". The signature verification command includes the ID of the public key certificate being verified. This ID is represented in TLV (Type-Length-Value) format. The value of the ID is 0003.

[0058] (Step S204) The signature verification unit 222 selects the public key certificate associated with the ID included in the signature verification command. In folder F21 shown in Figure 3, the ID of root CA certificate C21 is 0003. The signature verification unit 222 selects root CA certificate C21.

[0059] (Step S205) The root CA certificate C21 includes the public key of Certificate Authority 4 and signature information generated by encrypting that public key with the private key of Certificate Authority 4. The signature verification unit 222 obtains the public key of Certificate Authority 4 by decrypting the signature information of the root CA certificate C21 with the public key of Certificate Authority 4. The signature verification unit 222 compares the public key obtained by decrypting the signature information with the public key used to decrypt the signature information. In this way, the signature verification unit 222 verifies the signature information of the root CA certificate C21.

[0060] (Step S206) The signature verification unit 222 generates a verification result and outputs the verification result to the communication unit 20. The communication unit 20 sends the verification result to the server 3.

[0061] Steps S203 to S206 correspond to the signature verification process shown in Figure 4.

[0062] Figure 7 shows an example in which Server 3 specifies the public key certificate containing the public key to be used for verification using an MSE command before requesting Device 2 to verify the signature information of the public key certificate of Device 2.

[0063] Since steps S210 to S212 in Figure 7 are the same as steps S200 to S202 in Figure 6, the explanation of steps S210 to S212 will be omitted.

[0064] (Step S213) Server 3 sends a key specification command to device 2. The key specification command includes the ID of the public key certificate containing the public key used to verify the signature information (0003 in the example shown in Figure 7). The communication unit 20 of device 2 receives the key specification command and outputs the key specification command to the control unit 22.

[0065] (Step S214) The signature verification unit 222 selects the public key contained in the public key certificate associated with the ID included in the key specification command. In folder F21 shown in Figure 3, the ID of root CA certificate C21 is 0003. Root CA certificate C21 contains the public key of Certificate Authority 4 and signature information generated by encrypting that public key with the private key of Certificate Authority 4. The signature verification unit 222 selects the public key contained in root CA certificate C21.

[0066] (Step S215) The signature verification unit 222 outputs a successful response to the communication unit 20. The communication unit 20 sends the successful response to the server 3. The server 3 receives the successful response.

[0067] (Step S216) Server 3 sends a signature verification command to device 2. The communication unit 20 of device 2 receives the signature verification command and outputs the signature verification command to the control unit 22.

[0068] In the example shown in Figure 7, the signature verification command data is "00 2A 00 BE 04 81 02 00 02". The signature verification command includes the ID of the public key certificate being verified. The value of that ID is 0002.

[0069] (Step S217) The signature verification unit 222 selects the public key certificate associated with the ID included in the signature verification command. In folder F21 shown in Figure 3, the ID of public key certificate C20 is 0002. The signature verification unit 222 selects public key certificate C20.

[0070] (Step S218) Public key certificate C20 includes the public key of device 2 and signature information generated by encrypting that public key with the private key of certification authority 4. The signature verification unit 222 obtains the public key of device 2 by decrypting the signature information of public key certificate C20 with the public key of certification authority 4 selected in step S214. The signature verification unit 222 compares the public key obtained by decrypting the signature information with the public key used to decrypt the signature information. In this way, the signature verification unit 222 verifies the signature information of public key certificate C20.

[0071] (Step S219) The signature verification unit 222 generates a verification result and outputs the verification result to the communication unit 20. The communication unit 20 sends the verification result to the server 3.

[0072] Steps S216 to S219 correspond to the signature verification process shown in Figure 4.

[0073] Figure 8 shows an example in which Server 3 specifies the public key certificate containing the signature information to be verified and the public key certificate containing the public key to be used for verification in a signature verification command.

[0074] Since steps S220 to S222 in Figure 8 are the same as steps S200 to S202 in Figure 6, the explanation of steps S220 to S222 is omitted.

[0075] (Step S223) Server 3 sends a signature verification command to device 2. The communication unit 20 of device 2 receives the signature verification command and outputs the signature verification command to the control unit 22.

[0076] In the example shown in Figure 8, the signature verification command data is "00 2A 00 BE 04 81 02 00 02 81 02 00 03". The signature verification command includes the ID of the public key certificate containing the signature information to be verified and the ID of the public key certificate containing the public key used for verification. "81 02 00 02" indicates the public key certificate containing the signature information to be verified. The value of the ID of that public key certificate is 0002. "81 02 00 03" indicates the public key certificate containing the public key used for verification. The value of the ID of that public key certificate is 0003.

[0077] (Step S224) The signature verification unit 222 selects the public key certificate associated with the ID (0002) included in the signature verification command. In folder F21 shown in Figure 3, the ID of public key certificate C20 is 0002. The signature verification unit 222 selects public key certificate C20.

[0078] (Step S225) The signature verification unit 222 selects the public key contained in the public key certificate associated with the ID (0003) included in the signature verification command. In folder F21 shown in Figure 3, the ID of root CA certificate C21 is 0003. Root CA certificate C21 contains the public key of Certificate Authority 4 and signature information generated by encrypting that public key with the private key of Certificate Authority 4. The signature verification unit 222 selects the public key contained in root CA certificate C21.

[0079] (Step S226) Public key certificate C20 includes the public key of device 2 and signature information generated by encrypting that public key with the private key of certification authority 4. The signature verification unit 222 obtains the public key of device 2 by decrypting the signature information of public key certificate C20 with the public key of certification authority 4 selected in step S225. The signature verification unit 222 compares the public key obtained by decrypting the signature information with the public key used to decrypt the signature information. In this way, the signature verification unit 222 verifies the signature information of public key certificate C20.

[0080] (Step S227) The signature verification unit 222 generates a verification result and outputs the verification result to the communication unit 20. The communication unit 20 sends the verification result to the server 3.

[0081] Steps S223 to S227 correspond to the signature verification process shown in Figure 4.

[0082] Figure 9 shows an example where Server 3 specifies a public key certificate containing the signature information to be verified using a signature verification command, and Device 2 selects a public key certificate containing the public key to be used for verification from the folder where that public key certificate is stored.

[0083] Since steps S230 to S232 in Figure 9 are the same as steps S200 to S202 in Figure 6, the explanation of steps S230 to S232 will be omitted.

[0084] (Step S233) Server 3 sends a signature verification command to device 2. The communication unit 20 of device 2 receives the signature verification command and outputs the signature verification command to the control unit 22.

[0085] In the example shown in Figure 9, the signature verification command data is "00 2A 00 BE 04 81 02 00 02". The signature verification command includes the ID of the public key certificate being verified. The value of that ID is 0002.

[0086] (Step S234) The signature verification unit 222 selects the public key certificate associated with the ID included in the signature verification command. In folder F21 shown in Figure 3, the ID of public key certificate C20 is 0002. The signature verification unit 222 selects public key certificate C20.

[0087] (Step S235) Device 2 has not received a key specification command from Server 3, and the signature verification command received by Device 2 from Server 3 does not include the ID of the public key certificate containing the public key to be used for verification. The signature verification unit 222 is aware that the public key certificate C20 and the root CA certificate C21 in folder F21 where the public key certificate C20 is stored constitute a certificate chain, and selects the public key included in the root CA certificate C21.

[0088] (Step S236) Public key certificate C20 includes the public key of device 2 and signature information generated by encrypting that public key with the private key of certification authority 4. The signature verification unit 222 obtains the public key of device 2 by decrypting the signature information of public key certificate C20 with the public key of certification authority 4 selected in step S235. The signature verification unit 222 compares the public key obtained by decrypting the signature information with the public key used to decrypt the signature information. In this way, the signature verification unit 222 verifies the signature information of public key certificate C20.

[0089] (Step S237) The signature verification unit 222 generates a verification result and outputs the verification result to the communication unit 20. The communication unit 20 sends the verification result to the server 3.

[0090] Steps S233 to S237 correspond to the signature verification process shown in Figure 4.

[0091] As described above, in device 2 (signature verification device), the storage unit 21 stores a public key certificate associated with an ID (identification information), which includes the public key and signature information encrypted with the private key. The communication unit 20 communicates with server 3 (external device). When the communication unit 20 receives a signature verification command from server 3 that includes the ID of the public key certificate, the signature verification unit 222 verifies the signature information of the public key certificate associated with the ID included in the signature verification command.

[0092] In the example shown in Figure 6, the signature verification unit 222 verifies the signature information by decrypting it with the public key contained in the public key certificate associated with the ID included in the signature verification command.

[0093] In the example shown in Figure 7, when the communication unit 20 receives a key specification command containing the ID of a public key certificate that includes the public key used to verify the signature information, and a signature verification command from the server 3, the signature verification unit 222 verifies the signature information by decrypting the signature information contained in the public key certificate associated with the ID included in the signature verification command using the public key contained in the public key certificate associated with the ID included in the key specification command.

[0094] In the example shown in Figure 8, when the communication unit 20 receives a signature verification command from the server 3 that includes a first ID of a public key certificate containing the public key used to verify the signature information, and also includes a second ID of the public key certificate, the signature verification unit 222 verifies the signature information by decrypting the signature information contained in the public key certificate associated with the second ID included in the signature verification command using the public key contained in the public key certificate associated with the first ID included in the signature verification command.

[0095] In the example shown in Figure 9, the storage unit 21 stores a first public key certificate associated with a first ID, which includes a first public key and first signature information encrypted by the first private key. The storage unit 21 also stores a second public key certificate associated with a second ID, which includes a second public key corresponding to the first private key and second signature information encrypted by the second private key. When the communication unit 20 receives a signature verification command containing the first ID from the server 3, the signature verification unit 222 verifies the first signature information by decrypting the first signature information contained in the first public key certificate associated with the first ID included in the signature verification command using the second public key.

[0096] Device 2 already holds the public key certificate and verifies the signature information of the public key certificate when it receives a signature verification command from Server 3. Since the signature verification command does not contain the data of the public key certificate itself, the communication of the signature verification command can be sped up.

[0097] While embodiments of the present invention have been described in detail above with reference to the drawings, the specific configuration is not limited to the embodiments described above, and may include design changes and the like that do not depart from the spirit of the present invention. [Explanation of Symbols]

[0098] 1 Signature Verification System, 2 Device, 3 Server, 4 Certificate Authority, 20 Communication Unit, 21 Storage Unit, 22 Control Unit, 220 Key Generation Unit, 221 Certificate Management Unit, 222 Signature Verification Unit

Claims

1. A storage unit that stores a public key certificate associated with identification information, which includes a public key and signature information encrypted with a private key, A communication unit that performs communication with external devices, When the communication unit receives a signature verification command containing the identification information of the public key certificate from the external device, the signature verification unit verifies the signature information of the public key certificate associated with the identification information included in the signature verification command. A signature verification device having a signature verification function.

2. The signature verification unit verifies the signature information by decrypting it with the public key contained in the public key certificate associated with the identification information contained in the signature verification command. The signature verification device according to claim 1.

3. When the communication unit receives a key specification command containing identification information of a public key certificate including the public key used to verify the signature information, and a signature verification command from the external device, the signature verification unit verifies the signature information by decrypting the signature information contained in the public key certificate associated with the identification information contained in the signature verification command using the public key contained in the public key certificate associated with the identification information contained in the key specification command. The signature verification device according to claim 1.

4. When the communication unit receives a signature verification command from the external device, which includes a first identification information of a public key certificate containing a public key used to verify the signature information, and a second identification information of the public key certificate, the signature verification unit verifies the signature information by decrypting the signature information contained in the public key certificate associated with the second identification information contained in the signature verification command using the public key contained in the public key certificate associated with the first identification information contained in the signature verification command. The signature verification device according to claim 1.

5. The storage unit stores a first public key certificate associated with first identification information, which includes a first public key and first signature information encrypted by the first private key, and stores a second public key certificate associated with second identification information, which includes a second public key corresponding to the first private key and second signature information encrypted by the second private key. When the communication unit receives the signature verification command containing the first identification information from the external device, the signature verification unit verifies the first signature information by using the second public key to decrypt the first signature information contained in the first public key certificate associated with the first identification information contained in the signature verification command. The signature verification device according to claim 1.

6. The steps include: the communication unit receiving a signature verification command containing the identification information of the public key certificate from an external device; The signature verification unit includes a step of verifying the signature information of the public key certificate associated with the identification information included in the signature verification command, among the public key certificates stored in a storage unit that stores public key certificates associated with identification information, which include a public key and signature information encrypted with a private key, A signature verification method having the following characteristics.

7. A storage unit that stores a public key certificate associated with identification information, which includes a public key and signature information encrypted with a private key, A communication unit that performs communication with external devices, When the communication unit receives a signature verification command containing the identification information of the public key certificate from the external device, the signature verification unit verifies the signature information of the public key certificate associated with the identification information included in the signature verification command. A program that makes a computer function.