Cryptographic signing of data items

CN113950681BActive Publication Date: 2026-08-14ASSA ABLOY AB
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-06-22
Publication Date
2026-08-14

AI Technical Summary

Technical Problem

[0004]然而,由于秘密密钥那么需要是可移动的,因此秘密密钥的安全性降低,因为包含秘密密钥的运营商设备可能被盗

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113950681B_ABST
    Figure CN113950681B_ABST
Patent Text Reader

Abstract

A method is provided for performing a cryptographic signing operation on a data item. The method is executed in a server and includes the following steps: receiving a request from a smart card reader for a data item to be co-signed, the request including an indication of the data item and an identifier of the smart card, wherein co-signing requires both a smart card secret key and a server secret key to be valid; establishing a secure channel with the smart card; cooperating with the smart card through the secure channel to provide a co-signature of the data item, wherein the server signs based on the data item and a server secret key, wherein the server secret key is specifically associated with the smart card secret key, generating a co-signature; and sending the co-signature to the smart card reader.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of cryptographic signing of data items, and more particularly to servers, smart card readers, smart cards, methods, computer programs, and computer program products for performing cryptographic signing operations on data items or enabling such operations. Background Technology

[0002] Cryptographic signing is a known process that allows verification of digital data items such as files. Signing can be based on a key pair that includes a secret (also known as a private) key and a public key, where the secret key is used for the signing operation and the resulting signature can be checked using the public key.

[0003] Cryptographic signing can occur in many different situations. In many cases, it is highly advantageous if the user and the resulting secret key are portable, enabling the signing operation to take place on-site. For example, the secret key can be stored in a carrier device such as a smartphone.

[0004] However, because the secret key needs to be portable, its security is reduced, as the operator's equipment containing the secret key may be stolen. Summary of the Invention

[0005] One goal is to improve the ability and security of digital signing of data items.

[0006] According to a first aspect, a method is provided for performing a cryptographic signing operation on a data item. The method is executed in a server and includes the following steps: receiving from a smart card reader a request for a data item to be co-signed, the request including an indication of the data item and an identifier of the smart card, wherein co-signing requires both a smart card secret key and a server secret key to be valid; querying a user associated with the smart card to be signed; receiving a response instructing the user to approve the signing of the data item; establishing a secure channel with the smart card; cooperating with the smart card through the secure channel to provide a co-signature of the data item, wherein the server calculates the co-signature based on the data item, the server secret key, and data received from the smart card, wherein the server secret key is specifically associated with the smart card secret key; and sending the co-signature to the smart card reader.

[0007] The identifier of a smart card can be the public key of the smart card, where the server secret key and the smart card secret key together correspond to the public key of the smart card.

[0008] In one implementation, the query is performed only if the query condition associated with the smart card is true.

[0009] The method may also include the following steps: obtaining the verified identity associated with the smart card; and sending the verified identity to the smart card reader.

[0010] According to a second aspect, a server is provided for performing a cryptographic signing operation on a data item. The server includes: a processor; and a memory storing instructions that, when executed by the processor, cause the server to perform the following operations: receiving from a smart card reader a request for a data item to be co-signed, the request including an indication of the data item and an identifier of the smart card, wherein co-signing requires both a smart card secret key and a server secret key to be valid; querying a user associated with the smart card to be signed; receiving a response instructing the user to approve the signing of the data item; establishing a secure channel with the smart card; cooperating with the smart card through the secure channel to provide a co-signature of the data item, wherein the server calculates the co-signature based on the data item, the server secret key, and data received from the smart card, wherein the server secret key is specifically associated with the smart card secret key; and sending the co-signature to the smart card reader.

[0011] The identifier of a smart card can be the public key of the smart card, where the server secret key and the smart card secret key together correspond to the public key of the smart card.

[0012] The server may also include instructions that, when executed by the processor, cause the server to perform the following actions: execute the query only if the query condition associated with the smart card is true.

[0013] The server may also include instructions that, when executed by the processor, cause the server to perform the following operations: obtain the verified identity associated with the smart card; and send the verified identity to the smart card reader.

[0014] According to a third aspect, a computer program is provided for performing a cryptographic signing operation on a data item. The computer program includes computer program code that, when run on a server, causes the server to perform the following operations: receiving from a smart card reader a request for a data item to be co-signed, the request including an indication of the data item and an identifier of the smart card, wherein co-signing requires both a smart card secret key and a server secret key to be valid; querying a user associated with the smart card to be signed; receiving a response instructing the user to approve the signing of the data item; establishing a secure channel with the smart card; cooperating with the smart card through the secure channel to obtain a co-signature of the data item, wherein the server calculates the co-signature based on the data item, the server secret key, and data received from the smart card, wherein the server secret key is specifically associated with the smart card secret key; and sending the co-signature to the smart card reader.

[0015] According to a fourth aspect, a computer program product is provided, the computer program product comprising a computer program according to a third aspect and a computer-readable device having said computer program stored thereon.

[0016] According to a fifth aspect, a method for performing a cryptographic signing operation on a data item is provided. The method is performed in a smart card and includes the following steps: establishing a connection with a smart card reader; sending connection details to the smart card reader and a server associated with the smart card; establishing a secure channel with the server; and cooperating with the server through the secure channel to provide a co-signature of the data item, wherein the smart card signs based on the data item and a smart card secret key, and wherein the co-signature requires both the smart card key and the server secret key to be valid.

[0017] According to a sixth aspect, a smart card is provided for performing an encrypted signing operation on a data item. The smart card includes: a processor; and a memory storing instructions that, when executed by the processor, cause the smart card to perform the following operations: establishing a connection with a smart card reader; sending connection details to the smart card reader and to a server associated with the smart card; establishing a secure channel with the server; and cooperating with the server through the secure channel to provide a co-signature of the data item, wherein the smart card signs based on the data item and a smart card secret key, and wherein the co-signature requires both the smart card key and the server secret key to be valid.

[0018] According to a seventh aspect, a computer program is provided for performing a cryptographic signing operation on a data item. The computer program includes computer program code that, when run on a smart card, causes the smart card to perform the following operations: establish a connection with a smart card reader; send connection details to the smart card reader and to a server associated with the smart card; establish a secure channel with the server; and cooperate with the server through the secure channel to provide a co-signature of the data item, wherein the smart card signs based on the data item and a smart card secret key, and wherein the co-signature requires both the smart card key and the server secret key to be valid.

[0019] According to an eighth aspect, a computer program product is provided, the computer program product comprising a computer program according to a seventh aspect and a computer-readable device having said computer program stored thereon.

[0020] According to the ninth aspect, a system is provided, the system comprising a server according to the second aspect and a smart card according to the sixth aspect.

[0021] According to a tenth aspect, a method is provided for enabling the cryptographic signing of data items. The method is executed in a smart card reader and includes the following steps: determining a data item to be cryptographically signed; establishing a connection with the smart card; receiving connection details from the smart card of a server associated with the smart card; sending a request to the server for the data item to be co-signed, the request including an indication of the data item and an identifier of the smart card, wherein co-signing requires both a smart card secret key and a server secret key to be valid; receiving the co-signature from the server; and determining whether the data item has been co-signed based on the co-signature and a public key associated with the co-signature.

[0022] The method may also include the following steps: receiving a verified identity from a server, the verified identity being associated with a smart card.

[0023] According to the eleventh aspect, a smart card reader is provided for enabling the cryptographic signing operation of data items. The smart card reader includes: a processor; and a memory storing instructions, which, when executed by the processor, cause the smart card reader to perform the following operations: determining a data item to be cryptographically signed; establishing a connection with the smart card; receiving connection details from the smart card of a server associated with the smart card; sending a request to the server for a data item to be co-signed, the request including an indication of the data item and an identifier of the smart card, wherein co-signing requires both a smart card secret key and a server secret key to be valid for the co-signature; receiving the co-signature from the server; and determining whether the data item has been co-signed based on the co-signature and a public key associated with the co-signature.

[0024] The smart card reader may also include instructions that, when executed by the processor, cause the smart card reader to perform the following operations: receive a verified identity from the server, the verified identity being associated with the smart card.

[0025] According to the twelfth aspect, a computer program is provided for enabling the cryptographic signing operation of a data item. The computer program includes computer program code that, when run on a smart card reader, causes the smart card reader to perform the following operations: determine a data item to be cryptographically signed; establish a connection with the smart card; receive connection details from the smart card of a server associated with the smart card; send a request to the server for the data item to be co-signed, the request including an indication of the data item and an identifier of the smart card, wherein co-signing requires both a smart card secret key and a server secret key to be valid for the co-signature; receive the co-signature from the server; and determine whether the data item has been co-signed based on the co-signature and a public key associated with the co-signature.

[0026] According to the thirteenth aspect, a computer program product is provided, the computer program product comprising the computer program according to the twelfth aspect and a computer-readable device having the computer program stored thereon.

[0027] Generally, all terms used in the claims should be interpreted according to their ordinary meaning in the technical field, unless otherwise expressly defined herein. Unless otherwise expressly stated, all references to “a / an / the element, device, component, means, step, etc.” should be interpreted as referring to at least one instance of the element, device, component, means, step, etc. The steps of any method disclosed herein need not be performed in the exact order disclosed, unless expressly stated otherwise. Attached Figure Description

[0028] Various aspects and implementation methods will now be described by way of example with reference to the accompanying drawings, in which:

[0029] Figure 1 This is a schematic diagram illustrating an environment in which the embodiments proposed herein can be applied;

[0030] Figure 2 It shows Figure 1 The diagram shows a sequence of communications between devices performing cryptographic signing operations.

[0031] Figure 3 It is shown in Figure 1 A flowchart illustrating an implementation of a method for performing an encrypted signing operation on a data item, executed in a server.

[0032] Figure 4 It is shown in Figure 1 A flowchart illustrating an implementation of a method for performing an encrypted signing operation on data items in a smart card;

[0033] Figure 5 It is shown in Figure 1 A flowchart illustrating an implementation of a method performed in a smart card reader to enable the cryptographic signing of data items;

[0034] Figure 6 This is a schematic diagram showing the components of each of the server, smart card, and smart card reader; and

[0035] Figure 7 An example of a computer program product that includes a computer-readable device is shown. Detailed Implementation

[0036] Various aspects of this disclosure will now be described more fully below with reference to the accompanying drawings, in which certain embodiments of the invention are illustrated. However, these aspects may be embodied in many different forms and should not be construed as limiting; rather, these embodiments are provided by way of example so that this disclosure will be thorough and complete, and so as to fully convey the scope of all aspects of the invention to those skilled in the art. Throughout this specification, the same reference numerals denote the same elements.

[0037] Figure 1 This is a schematic diagram illustrating an environment in which the embodiments proposed herein can be applied.

[0038] Smart card 2 is any suitable smart card that can be read by smart card reader 3. Smart card 2 can communicate with smart card reader 3, for example, based on RFID (Radio Frequency Identification) or any other suitable technology such as electrical connection. Smart card 2 is associated with a specific user 4.

[0039] Smart card reader 3 is configured to communicate with smart card 2. Smart card reader 3 may include a user interface that can be used to present or describe data items to be signed by user 4, at least partially, using smart card 2. Furthermore, smart card reader 3 connects to a communication network 6, such as the Internet, to enable communication with server 1. Smart card reader 3 can act as a gateway allowing communication between smart card 2 and server 1. In this way, smart card 2 and server 1 can perform co-signing, which requires both a smart card secret key (stored in the smart card) and a server secret key (stored in the server) to provide a valid co-signature. The co-signature is verified using a single public key in the same way as a conventional cryptographic signature. Therefore, it is possible that the signed data items can be used with existing standards for signed documents. The verifier (smart card reader party) can show the signed document to anyone to prove that the agreement was signed by the user (identified by the public key). The initial creation of the co-signing secret of the smart card and server, and the creation of the signature, are both performed jointly.

[0040] More details on how joint signing can be achieved can be found, for example, in the following article: Håkan Olsson, “DualSalt, distributed signing and decryption for NaCl”, February 18, 2019.

[0041] Server 1 and smart card 2 can be associated with the same service. In other words, the service provider responsible for server 1 is the same party responsible for issuing smart card 2. In other words, smart card 2 is associated with a specific server 1. One or more instances of server 1 and smart card 2 (for different users) are considered as a system 9 for performing cryptographic signing of data items using a shared signature.

[0042] Server 1 can be a single physical computer server, or it can be virtualized and / or load-balanced across multiple physical computer servers in one or more physical sites. However, Server 1 provides the services described below and is under the supervision of a service provider.

[0043] User 4 can also access user device 5. User device 5 is a portable device, such as a wearable device, mobile phone (e.g., smartphone), tablet, or laptop computer. User 4 can use user device 5 to connect to server 1, for example, by logging into an app (application) or website associated with server 1. For example, when user device 5 will be used to request confirmation from server 1, this allows user 4 to configure on server 1 how co-signing occurs through server 1 and smart card 2, as explained in more detail below.

[0044] Figure 2 It shows Figure 1 The diagram shows a sequence of communication between devices performing a cryptographic signing operation. Before this sequence begins, smart card reader 3 has determined the data item that needs to be signed. This data item may be related to, for example, permission to access a specific asset, where the asset can be a physical asset (i.e., restricted physical space) or a logical asset, such as access to a computer or a specific service of a computer. Alternatively or additionally, the data item may be related to a financial transaction, such as the purchase of goods and / or services. Alternatively or additionally, the data item may be an agreement for using a specific service, for which the user needs to be identified.

[0045] First, for example, by tapping smart card 2 against smart card reader 3 or inserting smart card 2 into smart card reader 3, smart card 2 connects to smart card reader 3. This indicates to smart card 2 that the user wants to accept conditions such as data items used for authentication, payment, identification, etc. During connection 10, smart card 2 provides parameters (e.g., URI (Uniform Resource Indicator) or other server addresses and optional login credentials) to smart card reader 3 to allow smart card reader 3 to connect to the specific server 1 associated with smart card 2.

[0046] The smart card reader 3 sends a request 11 to the server 1 (using parameters obtained from the smart card 2 for addressing) to obtain the (co-signed) data item.

[0047] Optionally, server 1 then inquires of the user whether this is permissible by sending query 12 (via a secure end-to-end communication channel) to user device 5. The query contains details of the content related to the data item. Query 12 can be sent as a push message such as an app push message, SMS (Short Message Service), etc. User device 5 presents the query to the user, who can then choose to approve or reject the signing. In this way, the smart card is used for signing, and the user device is used to supplement the smart card with a user interface, since the smart card itself lacks a user interface.

[0048] If the user refuses to sign, the sequence ends (not shown); otherwise, user device 5 sends approval message 13 to server 1. The approval message instructs the user to approve the signing of the data item. By using user device 5 to perform the query, there is no need to use a reader device. This allows for distrust of the reader device, making the entire signing operation significantly more convenient and secure.

[0049] Then, server 1 establishes a secure channel 14 with smart card 2. The secure channel is end-to-end encrypted between server 1 and smart card 2, thus smart card reader 3 only acts as a router for communication of data packets between server 1 and smart card 2. Smart card reader 3 cannot read any communication between server 1 and smart card 2. The secure channel can be implemented in many ways known in the art itself, with varying numbers of round trips (typically 2 to 4 round trips). For example, TLS (Transport Layer Security) can be used.

[0050] Once a secure channel is established, Server 1 and the smart card cooperate to perform a joint signature. This involves Server 1 using its server secret key and Smart Card 2 using its smart card secret key. It should be noted that these keys do not need to be complete secret keys; in this case, the server secret key and the smart card secret key can only be used together for the joint signature.

[0051] Server 1 sends the signed data item 16 to smart card reader 3. At this point, smart card reader 3 can verify the co-signature 17 relative to the public key associated with the smart card. By using co-signing, it is verified that both the smart card secret key and the server secret key have been applied to make the co-signature valid.

[0052] Optionally, server 1 also provides the smart card reader with verified identity 19. Since the service provider (server 1's service provider) issues smart card 2 to the user and provides the user with a user account, the service provider can require the user to authenticate to set up the account and issue the smart card. Authentication can be achieved, for example, by a trusted third party or in any other suitable manner.

[0053] When the smart card reader 3 has a verified identity, for example, when renting valuable equipment or assets, the party using the smart card reader 3 can use the verified identity.

[0054] Figure 3 It is shown in Figure 1 A flowchart illustrating an implementation of a method for performing an encrypted signing operation on a data item, executed in server 1. These implementation methods generally correspond to the method described above for server 1 in... Figure 2 Actions in a sequence diagram.

[0055] In step 40, the server receives a request from the smart card reader for a data item to be co-signed. This request includes an indication of the data item and the smart card's identifier. As mentioned above, the indication can be a reference to the data item or a copy of the data item. Co-signing requires both the smart card's secret key and the server's secret key to be valid.

[0056] The identifier of a smart card can be its public key, where the server secret key and the smart card secret key together correspond to the smart card's public key. A smart card reader can obtain the smart card's public key from the smart card itself using another identity query server obtained from the smart card.

[0057] In step 41, the server queries the user associated with the smart card to be signed for the data item. Since the smart card reader may not necessarily be a trusted entity, the server can communicate with the user equipment to query the user. In other words, user querying can be performed without using a smart card reader, in a communication channel that does not pass through the smart card reader. In one implementation, the query is performed only if the query condition associated with the smart card is true.

[0058] When a user logs into a server's service presented on their user device (e.g., in an app or web browser), a query can be initiated, for example, by sending a push message to the user's device. The user device then sends a response to the query to the server.

[0059] In step 42, the server determines whether the query result is affirmative, i.e., whether it has received a response instructing the user to approve the signed data item. If so, the method continues to step 43, which establishes a secure channel. Otherwise, the method terminates.

[0060] In step 43 of establishing a secure channel, the server establishes a secure channel with the smart card.

[0061] In step 44, the server collaborates with the smart card via a secure channel to provide a joint signature for the data item. The server calculates the joint signature based on the data item, its secret key, and the data received from the smart card. The server's secret key is specifically associated with the smart card's secret key. This step produces the joint signature.

[0062] In step 46 of sending the joint signature, the server sends the joint signature to the smart card reader.

[0063] In the optional step 48 of obtaining verified identity, the server obtains the verified identity associated with the smart card.

[0064] In the optional step 49 of sending verified identity, the server sends the verified identity to the smart card reader.

[0065] Figure 4 It is shown in Figure 1 The flowchart illustrates an implementation of a method for performing an encrypted signing operation on a data item in smart card 2. These implementation methods generally correspond to the smart card 2 described above. Figure 2 Actions in a sequence diagram.

[0066] In connection establishment step 50, the smart card establishes a connection with the smart card reader. As mentioned above, this connection can be wireless, for example, using RFID or electricity.

[0067] In step 52, which involves sending connection details, the smart card sends the connection details (to the smart card reader) to the server associated with the smart card.

[0068] In step 54 of establishing a secure channel, the smart card establishes a secure channel with the server.

[0069] In the collaborative signing step 56, the smart card collaborates with the server through a secure channel to provide a collaborative signature of the data item, wherein the smart card signs based on the data item and the smart card secret key, and the collaborative signing requires both the smart card key and the server secret key to make the collaborative signature valid.

[0070] Figure 5 It is shown in Figure 1 The flowchart illustrates an implementation of a method for enabling an encrypted signing operation of a data item, performed in a smart card reader 3. These implementation methods generally correspond to the smart card reader 3 described above. Figure 2 Actions in a sequence diagram.

[0071] In step 60, the smart card reader determines the data item to be encrypted and signed.

[0072] In connection establishment step 61, the smart card reader establishes a connection with the smart card.

[0073] In step 62, which receives connection details, the smart card reader (from the smart card) receives connection details of the server associated with the smart card.

[0074] In step 63, the smart card reader sends a request (to the server) for the data item to be co-signed. This request includes an indication of the data item and the smart card's identifier. As mentioned above, co-signing requires both the smart card's secret key and the server's secret key to be valid.

[0075] In step 64 of receiving the joint signature, the smart card reader receives the joint signature from the server.

[0076] In step 66, which determines validity, the smart card reader determines whether a data item has been jointly signed based on the joint signature and the public key associated with it. The smart card reader can obtain the smart card's public key from the smart card itself using another identity query server obtained from the smart card.

[0077] In the optional step 67 of receiving verified identity, the smart card reader receives the verified identity from the server. The verified identity is associated with the smart card.

[0078] Using the implementation method presented herein, signing is achieved without exposing the secrets of the smart card reader. In this way, trust in the smart card reader is not required, and the smart card reader is used to allow (secure) communication between the server and the smart card. Furthermore, user queries are implemented without revealing any details to the smart card reader.

[0079] Figure 6 This is a schematic diagram illustrating the components of each of server 1, smart card 2, and smart card reader 3. While the specifications and types of these components may vary between different devices, the general concepts presented herein apply to all of these components. Processor 160 is provided using any combination of one or more of a suitable central processing unit (CPU), multiprocessor, microcontroller, digital signal processor (DSP), etc., capable of executing software instructions 167, which are stored in memory 164, thus memory 164 can be a computer program product. Alternatively, processor 60 may be implemented using application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), etc. Processor 160 can be configured to execute the above-described... Figures 3 to 5 The method described.

[0080] The memory 164 may be any combination of random access memory (RAM) and / or read-only memory (ROM). The memory 164 also includes a permanent storage device, which may be any one or a combination of magnetic storage, optical storage, solid-state storage, or even remotely mounted storage.

[0081] A data memory 166 is also provided for reading and / or storing data during the execution of software instructions in the processor 160. The data memory 166 can be any combination of RAM and / or ROM.

[0082] I / O interface 162 is configured for communication with external and / or internal entities.

[0083] To avoid obscuring the concepts presented in this article, other components have been omitted.

[0084] Figure 7 An example of a computer program product 90 including a computer-readable device is shown. A computer program 91 can be stored on this computer-readable device, which can cause a processor to perform methods according to the embodiments described herein. In this example, the computer program product is an optical disc such as a CD (Compact Disc), DVD (Digital Versatile Disc), or Blu-ray Disc. As described above, the computer program product can also be implemented in the memory of the device, for example... Figure 6 Computer program product 164. Although computer program 91 is schematically shown herein as a track on the depicted optical disc, computer program may be stored in any manner suitable for computer program product, such as removable solid-state storage (e.g., Universal Serial Bus (USB) drive).

[0085] Using the implementation methods presented herein, smart cards provide a convenient and secure way to provide cryptographic signatures. Smart cards are more secure than mobile phones because it is extremely difficult for attackers to access data securely stored on a smart card.

[0086] By using co-signature, an additional layer of security and flexibility is provided. If the smart card is lost, the user can use their user device to access the service provider's server to invalidate the lost key. Furthermore, in the implementation presented herein, the smart card reader does not need to be trusted. The reader does not provide any sensitive information such as PIN codes, secret keys, etc.

[0087] Here we now present a list of implementation methods using Roman numerals, from another perspective.

[0088] i. A method for performing an cryptographic signing operation on a data item, the method being executed in a server and comprising the following steps:

[0089] Receive a request from a smart card reader for a data item to be co-signed, the request including an indication of the data item and an identifier of the smart card, wherein the co-signing requires both a smart card secret key and a server secret key to make the co-signature valid;

[0090] Establish a secure channel with the smart card;

[0091] The server collaborates with the smart card via the secure channel to provide a joint signature for the data item, wherein the server calculates the joint signature based on the data item, a server secret key, and data received from the smart card, wherein the server secret key is specifically associated with the smart card secret key to generate the joint signature; and

[0092] The joint signature is sent to the smart card reader.

[0093] ii. The method according to embodiment i, wherein the identifier of the smart card is the public key of the smart card, and wherein the server secret key and the smart card secret key together correspond to the public key of the smart card.

[0094] iii. The method according to any one of the foregoing embodiments further includes the following step:

[0095] Inquire with the user associated with the smart card to sign the data item;

[0096] Furthermore, the triggering, determining, and sending steps are performed only when the user approves the signing of the data item.

[0097] iv. The method according to embodiment iii, wherein the query is performed only when the query condition is true, the query condition being associated with the smart card.

[0098] v. The method according to any one of the foregoing embodiments further includes the following steps:

[0099] Obtain the verified identity associated with the smart card; and

[0100] The verified identity is sent to the smart card reader.

[0101] vi. A server for performing cryptographic signing operations on data items, the server comprising:

[0102] Processor; and

[0103] A memory for storing instructions that, when executed by the processor, cause the server to perform the following operations:

[0104] Receive a request from a smart card reader for a data item to be co-signed, the request including an indication of the data item and an identifier of the smart card, wherein the co-signing requires both a smart card secret key and a server secret key to make the co-signature valid;

[0105] A secure channel is secretly established with the smart card;

[0106] The server collaborates with the smart card via the secure channel to provide a joint signature for the data item, wherein the server calculates the joint signature based on the data item, a server secret key, and data received from the smart card, wherein the server secret key is specifically associated with the smart card secret key to generate the joint signature; and

[0107] The joint signature is sent to the smart card reader.

[0108] vii. The server according to embodiment vi, wherein the identifier of the smart card is the public key of the smart card, and wherein the server secret key and the smart card secret key together correspond to the public key of the smart card.

[0109] viii. The server according to embodiment vi or vii further includes the following instructions, which, when executed by the processor, cause the server to perform the following operations:

[0110] Inquire with the user associated with the smart card to sign the data item; and

[0111] The instructions to trigger, determine, and send are executed only when the user approves the signing of the data item.

[0112] ix. The server according to embodiment viii further includes the following instructions, which, when executed by the processor, cause the server to perform the following operation: execute the query instructions only when a query condition is true, the query condition being associated with the smart card.

[0113] x. The server according to any one of embodiments vi to ix further includes the following instructions, which, when executed by the processor, cause the server to perform the following operations:

[0114] Obtain the verified identity associated with the smart card; and

[0115] The verified identity is sent to the smart card reader.

[0116] xi. A computer program for performing an encrypted signing operation on a data item, the computer program comprising computer program code that, when run on a server, causes the server to perform the following operations:

[0117] Receive a request from a smart card reader for a data item to be co-signed, the request including an indication of the data item and an identifier of the smart card, wherein the co-signing requires both a smart card secret key and a server secret key to make the co-signature valid;

[0118] Establish a secure channel with the smart card;

[0119] The server collaborates with the smart card via the secure channel to obtain a joint signature for the data item, wherein the server calculates the joint signature based on the data item, a server secret key, and data received from the smart card, wherein the server secret key is specifically associated with the smart card secret key to generate the joint signature; and

[0120] The joint signature is sent to the smart card reader.

[0121] xii. A computer program product comprising a computer program according to embodiment xi and a computer-readable device having the computer program stored thereon.

[0122] xiii. A method for performing an encrypted signing operation on a data item, the method being performed in a smart card and comprising the following steps:

[0123] Establish a connection with the smart card reader;

[0124] The connection details are sent to the smart card reader and then to the server associated with the smart card.

[0125] Establish a secure channel with the server; and

[0126] The data item is jointly signed by the smart card and the server via the secure channel, wherein the smart card signs the data item based on the smart card secret key, and the joint signing requires both the smart card key and the server secret key to be valid.

[0127] xiv. A smart card for performing an encrypted signing operation on a data item, the smart card comprising:

[0128] Processor; and

[0129] A memory for storing instructions that, when executed by the processor, cause the smart card to perform the following operations:

[0130] Establish a connection with the smart card reader;

[0131] The connection details are sent to the smart card reader and then to the server associated with the smart card.

[0132] Establish a secure channel with the server; and

[0133] The data item is jointly signed by the smart card and the server via the secure channel, wherein the smart card signs the data item based on the smart card secret key, and the joint signing requires both the smart card key and the server secret key to be valid.

[0134] xv. A computer program for performing an encrypted signing operation on a data item, the computer program comprising computer program code that, when run on a smart card, causes the smart card to perform the following operations:

[0135] Establish a connection with the smart card reader;

[0136] The connection details are sent to the smart card reader and then to the server associated with the smart card.

[0137] Establish a secure channel with the server; and

[0138] The data item is jointly signed by the smart card and the server via the secure channel, wherein the smart card signs the data item based on the smart card secret key, and the joint signing requires both the smart card key and the server secret key to be valid.

[0139] xvi. A computer program product comprising a computer program according to embodiment xv and a computer-readable device having the computer program stored thereon.

[0140] xvii. A system comprising a server according to any one of embodiments vi to x and a smart card according to embodiment xiv.

[0141] xviii. A method for enabling cryptographic signing of data items, the method being executed in a smart card reader, and comprising the following steps:

[0142] Identify the data items to be encrypted and signed;

[0143] Establish a connection with the smart card;

[0144] Receive connection details from the server associated with the smart card;

[0145] A request is sent to the server for the data item to be co-signed, the request including an indication of the data item and an identifier of the smart card, wherein the co-signing requires both the smart card secret key and the server secret key to make the co-signing valid;

[0146] Receive the joint signature from the server; and

[0147] Whether a data item has been jointly signed is determined based on the joint signature and the public key associated with the joint signature.

[0148] xix. The method according to embodiment xviii further includes the following steps:

[0149] The server receives a verified identity, which is associated with the smart card.

[0150] xx. A smart card reader for enabling cryptographic signing operations on data items, the smart card reader comprising:

[0151] Processor; and

[0152] A memory for storing instructions that, when executed by the processor, cause the smart card reader to perform the following operations:

[0153] Identify the data items to be encrypted and signed;

[0154] Establish a connection with the smart card;

[0155] Receive connection details from the server associated with the smart card;

[0156] A request is sent to the server for the data item to be co-signed, the request including an indication of the data item and an identifier of the smart card, wherein the co-signing requires both the smart card secret key and the server secret key to make the co-signing valid;

[0157] Receive the joint signature from the server; and

[0158] Whether a data item has been jointly signed is determined based on the joint signature and the public key associated with the joint signature.

[0159] xxi. The smart card reader according to embodiment xx further includes instructions that, when executed by the processor, cause the smart card reader to perform the following operations:

[0160] The server receives a verified identity, which is associated with the smart card.

[0161] xxii. A computer program for enabling cryptographic signing operations on data items, the computer program comprising computer program code that, when run on a smart card reader, causes the smart card reader to perform the following operations:

[0162] Identify the data items to be encrypted and signed;

[0163] Establish a connection with the smart card;

[0164] Receive connection details from the server associated with the smart card;

[0165] A request is sent to the server for the data item to be co-signed, the request including an indication of the data item and an identifier of the smart card, wherein the co-signing requires both the smart card secret key and the server secret key to make the co-signing valid;

[0166] Receive the joint signature from the server; and

[0167] Whether a data item has been jointly signed is determined based on the joint signature and the public key associated with the joint signature.

[0168] xxiii. A computer program product comprising a computer program according to embodiment xxii and a computer-readable device having said computer program stored thereon.

[0169] The foregoing has primarily described various aspects of this disclosure with reference to several embodiments. However, as will be readily understood by those skilled in the art, other embodiments besides those disclosed above are equally possible within the scope of the invention as defined by the appended claims. Therefore, while various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for illustrative purposes and are not intended to be limiting, wherein the true scope and spirit are indicated by the appended claims.

Claims

1. A method for performing an encrypted signing operation on a data item, the method being performed in a server (1) and comprising the following steps: Receive (40) a request for a data item to be co-signed from the smart card reader (3), the request including an indication of the data item and an identifier of the smart card; Inquire (41) about the user associated with the smart card to sign the data item; Receive (42) a response instructing the user to approve the signing of the data item; A secure channel (43) is established with the smart card, and the secure channel is end-to-end encrypted between the server (1) and the smart card (2); The server collaborates (44) with the smart card (2) via the secure channel to provide a joint signature of the data item, wherein the server makes its contribution to the computation of the joint signature based on the data item, the server secret key, and data received from the smart card (2), wherein the server secret key is specifically associated with the smart card secret key, and during the collaboration (44) between the server and the smart card, the smart card makes its contribution to the computation of the joint signature based on the data item and the smart card secret key, wherein the joint signature requires both the server secret key and the smart card secret key to be valid; and The common signature is sent (46) to the smart card reader (3).

2. The method according to claim 1, wherein, The identifier of the smart card is the public key of the smart card, wherein the server secret key and the smart card secret key together correspond to the public key of the smart card.

3. The method according to claim 1 or 2, wherein, The query is executed only if the query condition associated with the smart card is true.

4. The method according to any one of claims 1 to 2, further comprising the following step: Obtain (48) the verified identity associated with the smart card; as well as The verified identity is sent (49) to the smart card reader (3).

5. A server (1) for performing an encrypted signing operation on a data item, the server (1) comprising: Processor (160); as well as A memory (164) storing instructions (167) that, when executed by the processor, cause the server (1) to perform the following operations: Receive a request from the smart card reader (3) for a data item to be co-signed, the request including an indication of the data item and an identifier of the smart card; Inquire with the user associated with the smart card to sign the data item; Receive a response instructing the user to approve the signing of the data item; A secure channel is established with the smart card, and the secure channel is end-to-end encrypted between the server (1) and the smart card (2); The server collaborates with the smart card (2) via the secure channel to provide a joint signature of the data item, wherein the server makes its contribution to the computation of the joint signature based on the data item, the server secret key, and data received from the smart card (2), wherein the server secret key is specifically associated with the smart card secret key, and during the collaboration between the server and the smart card, the smart card makes its contribution to the computation of the joint signature based on the data item and the smart card secret key, wherein the joint signature requires both the server secret key and the smart card secret key to be valid; and The joint signature is sent to the smart card reader (3).

6. The server (1) according to claim 5, wherein, The identifier of the smart card is the public key of the smart card, wherein the server secret key and the smart card secret key together correspond to the public key of the smart card.

7. The server (1) according to claim 5 or 6 further includes instructions (167) that, when executed by the processor, cause the server (1) to perform the following operation: perform an inquiry only if an inquiry condition is true, the inquiry condition being associated with the smart card.

8. The server (1) according to any one of claims 5 to 6, further comprising instructions (167) that, when executed by the processor, cause the server (1) to perform the following operations: Obtain the verified identity associated with the smart card; and The verified identity is sent to the smart card reader (3).

9. A computer program product (164, 90), comprising: A computer-readable device having stored a computer program (167, 91) for performing an encrypted signing operation on a data item, the computer program including computer program code that, when run on a server (1), causes the server (1) to perform the following operations: Receive a request from the smart card reader (3) for a data item to be co-signed, the request including an indication of the data item and an identifier of the smart card; Inquire with the user associated with the smart card to sign the data item; Receive a response instructing the user to approve the signing of the data item; A secure channel is established with the smart card, and the secure channel is end-to-end encrypted between the server (1) and the smart card (2); The server collaborates with the smart card (2) through the secure channel to obtain a joint signature of the data item, wherein the server makes its contribution to the computation of the joint signature based on the data item, the server secret key, and data received from the smart card (2), wherein the server secret key is specifically associated with the smart card secret key, and during the collaboration between the server and the smart card, the smart card makes its contribution to the computation of the joint signature based on the data item and the smart card secret key, wherein the joint signature requires both the server secret key and the smart card secret key to be valid; and The joint signature is sent to the smart card reader (3).

10. A method for performing an encrypted signing operation on a data item, the method being performed in a smart card (2) and comprising the following steps: Establish (50) connection with smart card reader (3); Send (52) connection details to the server (1) associated with the smart card (2) to the smart card reader (3); Establish (54) a secure channel with the server (1), the secure channel being end-to-end encrypted between the server (1) and the smart card (2); and The smart card collaborates (56) with the server (1) through the secure channel to provide a co-signature of the data item, wherein the smart card makes its contribution to the computation of the co-signature based on the data item and the smart card secret key, and during the collaboration (56) between the smart card and the server, the server makes its contribution to the computation of the co-signature based on the data item, the server secret key and data received from the smart card (2), wherein the co-signature requires both the server secret key and the smart card secret key to be valid.

11. A smart card (2) for performing an encrypted signing operation on a data item, the smart card comprising: Processor (160); as well as A memory (164) storing instructions (167) that, when executed by the processor, cause the smart card (2) to perform the following operations: Establish a connection with the smart card reader (3); The connection details are sent from the smart card reader (3) to the server (1) associated with the smart card (2); Establish a secure channel with the server (1); as well as The smart card collaborates with the server (1) through the secure channel to provide a co-signature of the data item, wherein the smart card makes its contribution to the computation of the co-signature based on the data item and the smart card secret key, and during the collaboration between the smart card and the server, the server makes its contribution to the computation of the co-signature based on the data item, the server secret key and data received from the smart card (2), wherein the co-signature requires both the server secret key and the smart card secret key to be valid.

12. A computer program product (164, 90), comprising: A computer-readable device having stored a computer program (167, 91) for performing an encrypted signing operation on a data item, the computer program including computer program code that, when run on a smart card (2), causes the smart card (2) to perform the following operations: Establish a connection with the smart card reader (3); The connection details are sent from the smart card reader (3) to the server (1) associated with the smart card (2); A secure channel is established with the server (1), the secure channel being end-to-end encrypted between the server (1) and the smart card (2); and The smart card collaborates with the server (1) through the secure channel to provide a co-signature of the data item, wherein the smart card makes its contribution to the computation of the co-signature based on the data item and the smart card secret key, and during the collaboration between the smart card and the server, the server makes its contribution to the computation of the co-signature based on the data item, the server secret key and data received from the smart card (2), wherein the co-signature uses both the server secret key and the smart card secret key to make the co-signature valid.

13. A system (9) comprising a server (1) according to any one of claims 5 to 8 and a smart card according to claim 11.

14. A method for enabling an encrypted signing operation of a data item, the method being performed in a smart card reader (3) and comprising the following steps: Identify (60) the data items to be encrypted and signed; Establish a (61) connection with the smart card; Receive (62) connection details from the smart card (2) to the server (1) associated with the smart card (2); Send (63) a request to the server (1) for the data item to be co-signed, the request including an indication of the data item and an identifier of the smart card, wherein the co-signing requires the server to make its contribution to the calculation of the co-signature based on the data item, the server secret key and the data received from the smart card (2) and the smart card to make its contribution to the calculation of the co-signature based on the data item and the smart card secret key, so that the co-signature is valid; Receive the joint signature (64) from the server; and (66) Whether the data item was jointly signed is determined based on the joint signature and the public key associated with the joint signature.

15. The method of claim 14, further comprising the step of: The server (1) receives (67) a verified identity associated with the smart card.

16. A smart card reader (3) for enabling encrypted signing operations of data items, the smart card reader (3) comprising: Processor (160); as well as A memory (164) storing instructions (167) that, when executed by the processor, cause the smart card reader (3) to perform the following operations: Identify the data items to be encrypted and signed; Establish a connection with the smart card; Receive connection details of the server (1) associated with the smart card (2) from the smart card (2); Send a request to the server (1) for the data item to be co-signed, the request including an indication of the data item and an identifier of the smart card, wherein the co-signing requires the server to make its contribution to the calculation of the co-signature based on the data item, the server's secret key and the data received from the smart card (2) and the smart card to make its contribution to the calculation of the co-signature based on the data item and the smart card's secret key, so that the co-signature is valid; Receive the joint signature from the server; and Whether a data item has been jointly signed is determined based on the joint signature and the public key associated with the joint signature.

17. The smart card reader (3) according to claim 16, further comprising instructions (167) that, when executed by the processor, cause the smart card reader (3) to perform the following operations: The verified identity is received from the server (1) and the verified identity is associated with the smart card.

18. A computer program product (164, 90), comprising: A computer-readable device having stored a computer program (167, 91) for enabling cryptographic signing operations of data items, the computer program including computer program code that, when run on a smart card reader (3), causes the smart card reader (3) to perform the following operations: Identify the data items to be encrypted and signed; Establish a connection with the smart card; Receive connection details of the server (1) associated with the smart card (2) from the smart card (2); Send a request to the server (1) for the data item to be co-signed, the request including an indication of the data item and an identifier of the smart card, wherein the co-signing requires the server to make its contribution to the calculation of the co-signature based on the data item, the server's secret key and the data received from the smart card (2) and the smart card to make its contribution to the calculation of the co-signature based on the data item and the smart card's secret key, so that the co-signature is valid; Receive the joint signature from the server; and Whether a data item has been jointly signed is determined based on the joint signature and the public key associated with the joint signature.

Citation Information

Patent Citations

  • System and method for securing communications between card reader device and remote server

    CN105850098A

  • Computer system for securing communications using split private key asymmetric cryptography

    US5737419A