Digital signature system using an extensible server

The digital signature system with a Signing Authority and backend servers using composite or split-key signatures addresses the challenge of efficiently managing large volumes of signatures, enhancing security and scalability by leveraging multiple devices.

JP7602545B2Active Publication Date: 2024-12-18PLANETWAY CORP
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
JP2022543429
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2020-01-15
Publication Date
2024-12-18
Estimated Expiration
2040-01-15

AI Technical Summary

Technical Problem

Existing digital signature systems face challenges in handling large volumes of signatures efficiently, particularly when physical security devices are involved, and there is a need for a reliable and scalable infrastructure to manage signature generation and authentication.

Method used

A digital signature system utilizing a Signing Authority (SA) with a backend server and frontend server, where backend servers communicate with security devices to generate composite or split-key signatures, using unique identifiers and multiple independent public keys to enhance security and scalability.

Benefits of technology

The system provides robust digital signature generation and authentication, enhancing attack resistance through collaboration among multiple devices, ensuring secure and efficient handling of large volumes of signatures.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007602545000011
    Figure 0007602545000011
  • Figure 0007602545000012
    Figure 0007602545000012
  • Figure 0007602545000013
    Figure 0007602545000013
Patent Text Reader

Abstract

A method and system for a digital signature system using an extensible server is disclosed. The system includes an extensible front-end server for communicating with an application server and an extensible back-end server for communicating with remote security devices. When a user and the user's remote security device(s) register with the system, the remote security device(s) are assigned to a back-end server. An overall public key is generated by cryptographically embedding a unique identifier of the assigned back-end server into a combined public key associated with the remote security device(s). When a signature request including the overall public key is received at the front-end server, the unique identifier is extracted and the signature request is forwarded to the back-end server corresponding to the unique identifier.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates generally to secure electronic communications and electronic commerce, and more particularly to a digital signature system using a scalable server. [Background technology]

[0002] Increasingly, documents are being digitally signed. Digital signatures use a system that (a) authenticates that the person signing the document is who they say they are when signing, and (b) legally validates that the signed document is authentic. In this way, people who rely on the document can be sure that the document is authentic and that the person who signed the document cannot deny having signed it. These digital signature systems often use asymmetric cryptography, relying on a private key and a public key associated with an individual. To forge a signature, a malicious party must incur the computational cost of obtaining the private key or (possibly) subverting the signature scheme (i.e., signing a message without the private key). The resistance to attacks of digital signature systems can be classified as mathematical resistance (e.g., the ability to forge a digital signature by mathematically subverting the signature) or physical resistance (e.g., tampering with a physical device to forge a signature). The growth of digital signatures comes with a concomitant growth in the number of public keys that need to be tracked and the number of signature requests that need to be processed. As mathematical and physical robustness improves, the need for a reliable and scalable digital signature infrastructure increases.

[0003] overview The appended claims define this application. This disclosure summarizes aspects of the embodiments and should not be used to limit the scope of the claims. As will be apparent to one of ordinary skill in the art upon review of the following figures and detailed description, other implementations are contemplated in accordance with the technology described herein, and these implementations are intended to be within the scope of this application.

[0004] An exemplary embodiment for generating a digital signature includes: (a) a front-end server receiving a signing request from a remote application server, the signing request including an overall public key with a cryptographically embedded server identifier, (b) the front-end server extracting the cryptographically embedded server identifier from the overall public key, (c) the front-end server selecting one of a plurality of back-end servers corresponding to the server identifier, (d) the front-end server forwarding the signing request to the selected back-end server, (e) the selected back-end server obtaining the first signature and the second signature, (f) the selected back-end server generating a combined signature based on the first signature and the second signature, (g) the selected back-end server generating a final signature based on the combined signature and a final determination key, (h) the selected back-end server forwarding the final determination signature to the front-end server, and (i) the front-end server forwarding the final determination signature to be attached to the digital document to the remote application server, where the final determination key has been cryptographically generated based on the server identifier.

[0005] In some example embodiments, the backend server obtains the first signature and the second signature by identifying (verifying) a first remote security device and a second remote security device associated with the overall public key in a database, forwarding a signature request to the first remote security device and the second remote security device, and receiving the first signature from the first remote security device and the second signature from the second remote security device.

[0006] In some example embodiments, the backend server obtains the first signature and the second signature by identifying the remote security device based on the overall public key, forwarding a signature request to the remote security device, receiving a first signature from the remote security device, authenticating the identity of a user associated with the overall public key, and then generating a second signature using a private key associated with the overall public key.

[0007] In some exemplary embodiments, the backend server generates the combined signature using a multi-key signature scheme. In some exemplary embodiments, the backend server generates the combined signature using a split-key signature scheme. The overall public key and the final decision key are generated using prime numbers selected based on the server identifier and the combined public key.

[0008] For a better understanding of the present invention, reference may be made to the embodiments illustrated in the following drawings. The components in the drawings are not necessarily to scale, and relevant elements may be omitted, or in some cases, some may be exaggerated to highlight and clearly show the novel features described herein. Furthermore, the components of the system may be configured in various ways, as known in the art. Moreover, in the drawings, like reference numerals indicate corresponding parts throughout the several views. [Brief description of the drawings]

[0009] [Figure 1] 1 shows a system that utilizes conventional asymmetric cryptography with a single private key.

[0010] [Diagram 2] A system is presented that utilizes split-key asymmetric cryptography using multiple private key shares that rely on a single private key.

[0011] [Diagram 3] A system is shown that utilizes multi-key asymmetric cryptography using multiple unrelated private keys.

[0012] [Figure 4] A system is presented that uses specific server information to generate a global public key and a finalized signature (called a finalized signature).

[0013] [Diagram 5] 1 is a block diagram of a signing authority that facilitates generating a signature in response to a signature request in cooperation with one or more remote security devices. [Figure 6] 1 is a block diagram of a signing authority that facilitates generating a signature in response to a signature request in cooperation with one or more remote security devices.

[0014] [Figure 7] 7 illustrates an exemplary system including the signing authority of FIGS. 5 and 6.

[0015] [Figure 8] FIG. 8 shows a secure device embodying the device-side portion of the asymmetric cryptography of FIGS.

[0016] [Figure 9] FIG. 9 is a block diagram of electronic components of the secure device of FIG. 8.

[0017] [Figure 10] 8 is a flow diagram of a method for generating a signature for a digital document that may be implemented by the systems of FIGS. 5, 6 and 7.

[0018] [Figure 11A] 8 is a flow diagram of a method for generating a signature for a digital document that may be implemented by the systems of FIGS. 5, 6 and 7. [Figure 11B] 8 is a flow diagram of a method for generating a signature for a digital document that may be implemented by the systems of FIGS. 5, 6 and 7.

[0019] DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS While the invention may be embodied in various forms, certain illustrative, non-limiting embodiments are shown in the drawings and described below, with the understanding that the present disclosure should be considered as exemplary of the invention and is not intended to limit the invention to the specific embodiments illustrated.

[0020] With the rise of digital signatures, computer infrastructures need to reliably handle the task of generating a large number of signatures daily. Signatures are often required by third-party application servers. For example, a signature may be required to acknowledge that a customer has read a website's privacy policy and personal data policy, or a signature may be required when a customer signs a government document such as a tax document or a commercial contract (e.g., a mortgage application). However, the third-party application server is agnostic to the digital signature scheme and is not deployed to handle the actual signature process. The signature generation process becomes more complicated when one or more physical security devices are used in the signature generation process. It is not practical for the third-party application server to know how to contact the physical security devices. Furthermore, as the role of digital signatures becomes ubiquitous, infrastructure mechanisms are needed to add security devices and handle signature generation in a reliable manner.

[0021] As described below, a Signature Authority (SA) includes a back-end server and a front-end server. The back-end server performs the signing function and communicates with a specific security device and / or security token. Each back-end server has a unique identifier ("BESID"). The front-end server communicates with a third-party application server to process signing requests. Customers register with the Signature Authority. During the registration process, customers associate themselves with one or more physical security devices and / or physical security tokens. The security device(s) and / or security token(s) are assigned to a specific back-end server such that the specific back-end server has the necessary information to communicate with the specific security device and / or security token.

[0022] When a composite key method is used, (a) the security device generates a private key and a public key and provides the public key to a designated backend server, and / or (b) when a security token is used, the assigned backend server generates a private key and a public key associated with the customer. Using two or more independent public keys, the backend server creates a composite public key. The backend server then creates an overall public key based on the composite public key and the BESID. This overall public key is forwarded to a public key repository (such as a Certificate Authority (CA)) along with data to verify the identity of the customer. The backend server also generates a final decision key based on the BESID to be used during signature generation.

[0023] When a split key scheme is used, the backend server generates two or more key shares and a public key. The backend server shares one of the key shares with the security device and retains one of the key shares. The backend server then creates an overall public key based on the public keys and the BESID. This overall public key is forwarded to a public key repository (such as a Certificate Authority (CA)) along with data to verify the customer's identity. The backend server also generates a final key based on the BESID to be used during signature generation.

[0024] A security device can be any portable electronic device capable of (a) securely storing an independently generated private key, (b) receiving input from a signer, (c) reliably authenticating the identity of the signer based on the input, (d) receiving a message for generating a signature, (e) generating a signature with the independently generated private key and the message, and (f) transmitting the signature to a computing device (e.g., a server, etc.) that requests the signature. In some examples, a security device can be a smartphone, a smart watch, a tablet computer, jewelry with embedded electronics (e.g., a bracelet, a ring, a brooch, etc.), a smart card (e.g., a credit card, an ID card, etc.), and / or an electronic seal, etc. In some examples, each security device is configured to physically receive input (e.g., a biometric identifier such as a fingerprint, a password, etc.) from a signer separately from any other security device. In some examples, each security device communicates with a computing device (e.g., via a wireless connection to the Internet, etc.). Alternatively, in some examples, one of the security devices acts as a primary device that communicates with the computing device (e.g., via a wireless connection to the Internet), while the other security device communicates with the primary device via a local area network (e.g., a wireless local area network, a Bluetooth® low energy connection, etc.) to communicate with the computing device.

[0025] The security token communicates directly or indirectly (e.g., via a mobile device) with the backend server to authenticate the customer's identity when the backend server is generating the digital signature. The security token can be any mobile device that communicates with the backend server and can securely provide a credential to the user when the user provides authentication to the mobile device. For example, the device can have a biometric sensor and / or input (e.g., iris scanner, fingerprint scanner, etc.). As another example, the device may have a GPS and rely on geofencing or its proximity to another device (e.g., a security device) to authenticate the user. In some examples, the security token can be another security device that is not involved in the current signature generation. In some examples, the security token is jewelry (e.g., a bracelet, a ring, a brooch, etc.) or a smart card (e.g., a credit card, an ID card, etc.) with embedded electronics.

[0026] When a digital signature is to be created, the customer provides credentials to the application server (e.g., credentials managed by the application server to authenticate the customer). The application server uses the customer's identity to retrieve an overall public key from a public key repository (such as a certificate authority). The application server has an established relationship with the signature authority's front-end server (e.g., established when the application server registers with the signature authority). The application server sends a signature request to the front-end server, which includes the overall public key retrieved from the public key repository and a message. The message can be an original message (e.g., a digital document to be signed) or a message digest calculated from the original message by applying a cryptographic hash function (e.g., SHA-256) to the original message. The front-end server extracts the BESID from the overall public key and forwards the signature request to the back-end server associated with the BESID. The back-end server, in conjunction with a security device and / or security token, generates a signature on the message. The backend server then uses the final key to generate a final signature. The backend server sends the final signature to the frontend server that sent the signature request. The frontend server then forwards the final signature to the application server that requested the signature. The application server then appends the final signature to the digital document. If necessary, the digital signature can then be verified using the public key repository's overall public signature.

[0027] FIG. 1 illustrates a system that utilizes conventional asymmetric cryptography with a single private key, and generally for verifying signatures. A common asymmetric cryptosystem (sometimes called a "public key cryptosystem") used for digital signatures is Rivest-Shamir-Adelman (RSA). As shown in FIG. 1, the RSA cryptosystem uses four functions. The first function is a private key generation function (f1) that generates a private key 102 based on two distinct prime numbers p and q. The integers p and q are randomly selected and kept secret. The second function is a public key generation function (f2) that generates a public key 104 based on the two prime numbers p and q. The public key 104 consists of a public modulus (n) and a public exponent (e). The public modulus (n) is calculated according to Equation 1 below. The public exponent (e) is selected such that Equation 2 below is true. That is, n=pq (Equation 1) gcd(p-1,e)=gcd(q-1,e)=1 (Equation 2) In Equation 2 above, gcd is the greatest common denominator function that returns the largest positive integer by which each of its inputs are divided. The RSA cryptosystem uses a signature function (f3) to sign a message (m) 106 with a private key 102, where: JPEG0007602545000001.jpg7165 The RSA cryptosystem uses a private exponent (d) to compute a signature 108 on a message (m) 106. The private exponent (d) is computed according to Equation 3 below:

number

[0028] A secure implementation of an RSA-based signature scheme requires that a signer (e.g., a person or group of people) has sole control of the functions, namely, the private key generation function (f1), the public key generation function (f2), and the signature function (f3) within the security boundary. In general, a device implementing an RSA signature scheme (a) performs the private key generation function (f1) and the public key generation function (f2) only once during the device's lifetime, and (b) ensures that only authorized signers can perform the signature function (f3). The private key (e.g., private key 102) should never leave the device. The device must always be able to reliably authenticate a signer before performing the signature function (f3). Thus, a security device requires within the security boundary (a) computing power to compute the functions, (b) memory to store the keys, (c) input / output (I / O) devices, and (d) authentication solutions. The security boundary can consist of separate electronic devices, each of which implements partial functionality. For example, the key generation function, the private key generation function (f1) and the public key generation function (f2) may be implemented by one set of electronic devices, and the signature function (f3) may be implemented as a separate set of electronic devices.

[0029] The cryptographic resistance of a signature scheme (such as the RSA cryptosystem mentioned above) is defined in terms of computational complexity theory and has mathematical and physical components. A measure of mathematical resistance to attack takes into account the computational resources (number of steps, memory in bits, program size, etc.) required to break the scheme (i.e., to sign a message without access to the private key). The computational cost of breaking the scheme is expressed as a security level. Security levels are usually expressed in "bits." "N-bit security" means that a malicious party needs 2 NThe physical attack resistance of a security device refers to the cost of forging a signature without mathematically breaking the signature scheme (e.g., tampering with the security device).

[0030] The mathematical and physical attack resistance required for a signature scheme is derived from a risk analysis and takes into account the application in which the signature solution is being used. In many cases, the physical design of the security device is a weak point in RSA-based signature schemes. One approach to improve physical attack resistance would require cooperation between multiple devices. In such an approach, a signature key (e.g., a master private key) is shared between several security devices. Thus, a signature can only be created when the security devices cooperate. Attacking one device (e.g., physically tampering with one device to reveal part of the master private key on one device) is insufficient to forge a signature. A cryptographic scheme to address these issues is described below in connection with Figures 2 and 3.

[0031] In FIG. 2 , a master private key 202 is split into two private key shares 204 and 206 (sometimes referred to as a split key signature scheme). The master private key 202 is subjected to a key splitting function (f 10The master private key 202 is generated by a trusted dealer 208 who splits it by a key splitting function (f ) to derive a first private key share (d') 204 and a second private key share (d") 206 based on the private exponent (d) of the master private key 202 according to Equation 6 below. The trusted dealer 208 can split the master private key 202 for additive sharing or multiplicative sharing. FIG. 2 shows a trusted dealer 208 splitting the master private key 202 for additive sharing. When splitting for additive sharing, the trusted dealer 208 uses a key splitting function (f ) to derive a first private key share (d') 204 and a second private key share (d") 206 based on the private exponent (d) of the master private key 202 according to Equation 6 below: 10 ) is used. That is, d≡d'+d"(modψ(n)) (Equation 6) When splitting for multiplicative sharing, the trusted dealer 208 uses a key splitting function (f) to derive a first private key share (d') 204 and a second private key share (d") 206 according to Equation 7 below: 10 ) is used. That is, d≡d'd”(modψ(n)) (Equation 7) The trusted dealer 208 sends the first private key share (d') 204 to the first security device 210 and the second private key share (d") to the second security device 212. In generating the signature, the security devices 210 and 212 perform a signature function (f3) with their respective private key shares to generate a first signature share (σ') 214 and a second signature share (σ") 216. The signature (σ) 108 is generated by combining the split key share (f 11 ) is used to generate the split key combination function (f 11 ) is calculated according to the following Equation 8:

number

number

[0032] In some examples, one of the private key shares is held by the security device and the other private key share is held by a backend server (e.g., backend server 512 in Figures 5, 6, and 7 below). Split-key signature schemes often require a trusted dealer 208 to split the master private key 202 into signature shares 204 and 206 and then securely send signature shares 214 and 216 to the security device. In some examples, the trusted dealer 208 uses distributed generation of the shares used, where the first signature share (σ') 214 and the second signature share (σ") 216 and the common public key 104 are generated as a result of a multi-party cryptographic protocol (e.g., Multi-Party Cryptographic Protocol II) in which the master private key 202 never exists in its entirety.

[0033] FIG. 3 illustrates an encryption scheme with signature generation using collaboration between multiple devices. Instead of generating a set of signature shares that rely on a master private key or a multi-party cryptographic protocol, a composite signature can be constructed from separately generated signatures that are based on separately generated private keys. This is sometimes referred to as a composite key scheme. As used herein, a separately generated private key is a private key that is not generated using any master private key or multi-party cryptographic protocol (e.g., as opposed to the private key shares of a split-key signature scheme). The system includes two or more devices, each of which stores a separately generated private key that is associated with its own public key. In some examples, the system includes two or more security devices. In some examples, the system includes one or more security devices and a backend server (e.g., authenticated by a security token).

[0034] FIG. 3 illustrates a system that utilizes multi-key key asymmetric cryptography using multiple private keys that are unrelated to each other. FIG. 3 illustrates a multi-key signature scheme that uses a first security device 302 and a second security device 304. In some examples, one of the first security device 302 or the second security device 304 is a back-end server (e.g., back-end server 512 in FIG. 5, FIG. 6, and FIG. 7 below). Each of the security devices 302 and 304 separately generates a private key 306 and 308 using a private key generation function (f1) (as described above). Furthermore, each of the security devices 302 and 304 generates a public key 310 and 312 using a public modulus (n) (e.g., calculated according to Equation 1 above) and a public exponent (e) (e.g., determined according to Equation 2 above). The public keys 310 and 312 are sent to the back-end server. When security devices 302 and 304 receive message 314 for use in generating a signature, after the security devices have each independently authenticated the signer, security devices 302 and 304 each independently generate signatures 316 and 318 using signature function (f3) (as described above).

[0035] To sign a digital document, a composite signature 320 is generated from the first signature (σ1) 316 and the second signature (σ2) 318. In the illustrated example, the composite signature (σ c ) 320 is generated using a compound signature function (f6) according to Equation 10 below: σ c =(bn1σ1+an2σ2)mod(n1n2) (Equation 10) In the above formula 10, n1 is the public modulus of the first public key 310, and n2 is the public modulus of the second public key 312. Furthermore, the coefficients a and b satisfy an1+bn2=1. c ) 320 is further modified by the backend server and then used to attach the digital document.

[0036] To verify the signed document, the composite public modulus (n c ) is calculated using a composite public key function (f5) according to Equation 11 below: n c =n1n2 (Equation 11) The composite public modulus (n c ) is based on the public modulus (n1) of the first public key 310 and the second public modulus (n2) of the second public key 312.

[0037] Composite public key 322( <n c , e>) and message 314 to generate the signature (σ s ) is verified using function f4 (as described above).

[0038] 4 shows a system that uses a unique backend server identifier (BESID) 406 to generate an overall public key 402 and a final determined key 404. The system embeds the BESID 406 into the overall public key 402 and the final determined key 404. The following description uses a composite key scheme, although a split key scheme could also be used.

[0039] The system is based on the identity embedding function (f 20 ) to generate the overall public key 402 and the final signature 408. 20 ) uses the composite public key 322 (or any other applicable public key) and the BESID 406 to generate the overall public key 402 and the final signature 408. In the illustrated example, the identity embedding function (f 20 ) is calculated according to the following Equations 12 to 17. First, the system calculates the L bound according to Equation 12 below. That is,

number

number

[0040] The system calculates the modulus (n TP ) is calculated. That is, n TP =n'·p (Equation 15) As a result, the identity embedding function (f 20 ) is the overall public key 402 <n TP ,e> will be output.

[0041] The system calculates the final decision index (d f ) is calculated. That is,

number

[0042] After the back-end server generates the composite signature 320, the system generates a final signature (σ F) 408. The final signature (σ F ) 408 is the final decision function (f 30 ) and the backend server's BESID 406 is embedded in it using the final decision function (f 30 ) is an RSA signature (σ') (a compound signature (σ c ) 320), the padded message P, and the final signature (σ F ) to generate a final decision key 404 (e.g., (n, a', b', p, d f In the illustrated example, the final decision function (f 30 ) is calculated according to the following Equations 18 to 20. First, the system truncates the padded message P according to the following Equation 18. That is, P f =Pmodp (Equation 18) In the above formula 18, P f is the truncated message. The system then generates a partial final signature (σ f ) is calculated. That is,

number

number

[0043] When the front-end server receives a signing request from an application server, the signing request includes the global public key 402 <n TP ,e>. The front-end server includes an identity extraction function (f 40 ) is used to extract the BESID 406 from the overall public key 402. The BESID 406 has a length of m bits. In the illustrated example, the identity extraction function (f 40) is the modulus (n TP Extract the BESID by extracting the m most significant bits of the modulus (n TP ) is BESID406.

[0044] 5 and 6 are block diagrams of a signing authority 500 that facilitates generating a signature in cooperation with one or more remote security devices 502 in response to a signature request 504. A customer 506 interacts with an application server 508 such that the application server 508 generates the signature request 504. For example, the customer 506 may sign a document or accept privacy and data usage policies on a website. The signing authority 500 manages the signing process and communicates with the security devices 502 as required.

[0045] The signing authority 500 includes one or more front-end servers 510 and one or more back-end servers 512. Each of the front-end servers 510 is communicatively coupled to each of the back-end servers 512. As more application servers 508 use the signing authority 500, the signing authority adds more front-end servers 510. A particular application server 508 may be associated with a particular front-end server 510 or a list of front-end servers 510. When an application server 508 sends a signing request 504, it sends it to the associated front-end server 510. In some examples, the application server 508 communicates with the front-end server 510 using an application programming interface (API).

[0046] As more security devices 502 are deployed, the signing authority 500 adds more backend servers 512. The backend servers 512 communicate with specific ones of the security devices 502. The backend servers 512 contain a database of the security devices 502 with the information necessary to communicate with the assigned security devices 502.

[0047] The front-end server 510 and the back-end server 512 may run on the same physical machine or set of physical machines using virtualized computing resources, such as virtual machines or containers. In some examples, the front-end server 510 and the back-end server 512 are isolated from each other such that if one is destroyed, the other is not affected at all. For example, if one front-end server 510 is destroyed, the other front-end server 510 and the back-end server 521 are not affected.

[0048] A customer 506 interacts with an application server 508. The application server 508 authenticates and verifies the identity of the customer 506, as established by the application server 508. For example, the application server 508 may request that the customer 506 create an account with login credentials and sufficient personal information so that the application server 508 can retrieve a public key associated with the customer 506 from a public key repository 514 (such as a certificate authority). Based on the interaction with the customer 506 requesting a digital signature, the application server 508 generates a signature request 504. To generate the signature request 504, the application server 508 (a) retrieves an overall public key (e.g., overall public key 402 in FIG. 4 above) from the public key repository 514, and (b) generates a message. The message may be an original message (e.g., a digital document to be signed) or a message digest calculated from the original message by applying a cryptographic hash function (e.g., SHA-256, etc.) to the original message. The application server 508 sends the signing request 504 to the signing authority 500. The application server 508 sends the signing request 504 to an associated backend server 510.

[0049] The front-end server 510 receives the signature request 504 from the application server 508. 40 ), the front-end server 510 extracts the BESID 406 of the back-end server 512 from the overall public key 402. The BESID 406 corresponds to the back-end server 512 that has an association with the security device(s) 502 of the customer 506. The front-end server 510 forwards the signing request to the back-end server 512 associated with the BESID 406.

[0050] The backend server 512 uses the overall public key 402 to verify the identity of the customer 506 .

[0051] FIG. 5 illustrates an exemplary embodiment in which a backend server 512 includes a private key (e.g., a separate private key for a multi-key scheme, or a key share for a split-key signature scheme, etc.) associated with a customer 506. In FIG. 5, the backend server 512 attempts to authenticate the identity of the customer 506 (e.g., via a security token 516). If the backend server 512 successfully authenticates the identity of the customer 506, it uses a signing function (f3) to generate a first signature (or a first signature share) using the message and the private key associated with the customer 506. The backend server 512 also sends a signature request (or a portion thereof) to a security device 502 associated with the customer 506. After the security device 502 authenticates the identity of the customer 506, the security device 502 generates a second signature (or a second signature share) 518 and sends it to the backend server 512. In a composite key embodiment, the backend server 512 uses a composite signing function (f6) to generate the composite signature 320. In a split key embodiment, the backend server 512 uses a split key combining function (f 11 ) to generate a signature. Using the final decision key 404, the backend server 512 calculates the final decision function (f 30 ) to generate the final signature 408.

[0052] FIG. 6 illustrates an exemplary embodiment in which a backend server 512 communicates with two or more security devices 502. The backend server 506 sends a signature request (or a portion thereof) to each of the security devices 502 associated with the customer 506. Each of the security devices 502 separately authenticates the customer 506, generates a signature (or signature share) 518, and sends it to the backend server 512. In such an embodiment, the backend server 512 does not store the private key associated with the customer 506. In a composite key embodiment, the backend server 512 generates the composite signature 320 using a composite signing function (f6). In a split key embodiment, the backend server 512 uses a split key combining function (f 11) to generate a signature. Using the final decision key 404, the backend server 512 calculates the final decision function (f 30 ) to generate the final signature 408.

[0053] The back-end server 512 sends the finalized signature 408 to the front-end server 510 that sent the signature request 504. The front-end server 408 sends the finalized signature 408 to the application server 508 that sent the signature request 504. The application server 508 attaches the finalized signature 408 to the digital document to be signed.

[0054] When a customer 506 registers with the signing authority 500 and / or adds a security device 502 to be associated with them, the backend server 512 creates an overall public key 402 and a final key 404 and associates both of those keys with the customer 506 (e.g., with a unique identifier for the customer and a unique identifier for the security device). Using a public key (e.g., a composite public key 322 created using a composite public key function (f5), or a common public key 104) and the backend server's 512 BESID 406, the backend server 512 uses an identity embedding function (f 20 ) to generate an overall public key 402 and a final public key 404. The overall public key 402 is sent to a public key repository 514 to be associated with the customer 506.

[0055] Figure 7 illustrates an exemplary system including the signing authority 500 of Figures 5 and 6. In the example illustrated in Figure 7, the signing authority 500 includes multiple instances of a front-end server 510 connected to multiple application servers 508. Figure 7 also illustrates multiple instances of a back-end server 512 each connected to multiple security devices 502 associated with multiple customers 506. In the illustrated example, the application servers 508 One of the servers sends a signature request 504 to one of the front-end servers 510. The front-end server 510 then uses an identity extraction function (f 40) to obtain the BESID 406 that is cryptographically embedded in the overall public key 402 included in the signature request 504. Based on the extracted BESID 406, the front-end server 510 forwards the signature request 504 to the corresponding back-end server 512.

[0056] FIG. 8 shows a secure device 502 that embodies the device-side portion of the signature scheme of FIGS. 1, 2, 3, 5, 6, and 7. The security device 502 embodies the functions: private key generation function (f1), public key generation function (f2), and signature function (f3). The security device 502 includes a control interface 802 and an input / output (I / O) interface 804. The control interface 802 receives input from a signer (e.g., customer 506, etc.) to authenticate the identity of the signer before the security device 502 generates a signature (e.g., signatures 316 and 318). The I / O interface 804 communicates directly or indirectly with a signature authority (e.g., signature authority 500 of FIGS. 5, 6, and 7 above) to send signatures and public keys, and to receive messages used to generate signatures.

[0057] Figure 9 is a block diagram of electronic components 900 of security device 502 of Figure 8. In the illustrated example, electronic components 900 include a control interface 802, an I / O interface 804, a processor or controller 902, and a memory 904, as well as a data bus 906 connecting other electronic components.

[0058] The control interface 802 provides a physical interface between the security device 502 and the signer. The control interface 802 may include a digital camera (e.g., for image capture, recognition of visual cues, facial recognition, iris recognition, etc.), a touch screen and / or keyboard (e.g., for inputting authentication information), a voice input device (e.g., a microphone for voice recognition, etc.), a biometric input device (e.g., a fingerprint scanner, etc.), and / or a biometric sensor (e.g., a blood oximeter, a pulse sensor, etc.). For example, the control interface 802 may include a touch screen and a fingerprint identification sensor on a smartphone. The input from the signer to the control interface 802 is used to authenticate the identity of the signer. In some examples, more than one method of identifying and authenticating the signer is included. For example, the signer may be required to provide both a fingerprint and a password. In some examples, the control interface 802 may differ between two cooperating security devices 502. For example, one security device 502 may have a camera to perform facial recognition and the other security device 502 may have a fingerprint scanner.

[0059] The I / O interface 804 provides an interface for communicating with other devices to send public keys and signatures and receive messages. The I / O interface 804 includes a communications controller and antenna for one or more standards-based networks (e.g., Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), Long Term Evolution (LTE), Code Division Multiple Access (CDMA), WiMAX (IEEE 802.16m); Near Field Communication (NFC); ​​Wireless LAN (including IEEE 802.11 a / b / g / n / ac or others), Bluetooth and Bluetooth Low Energy, and Wireless Gigabit (IEEE 802.11ad), etc.). The I / O interface 804 communicates with external networks directly or indirectly (e.g., via another security device 502). The external network may be a public network, such as the Internet, a private network, such as an intranet, or a combination thereof, and may utilize a variety of currently available or later developed network protocols, including, but not limited to, TCP / IP-based network protocols.

[0060] The processor or controller 902 can be any suitable processing device or set of processing devices, such as, but not limited to, a microprocessor, a microcontroller-based platform, a suitable integrated circuit, one or more field programmable gate arrays (FPGAs), and / or one or more application specific integrated circuits (ASICs). The memory 904 can be a volatile memory, a non-volatile memory, an immutable memory, a read-only memory, and / or a mass storage device (e.g., a hard drive, a solid-state drive, etc.). In some examples, the memory 904 includes multiple types of memory, particularly volatile memory and non-volatile memory. Additionally, the memory 904 can include a secure memory (sometimes referred to as "CryptoMemory") that includes an embedded hardware encryption engine with its own authentication key for securely storing information.

[0061] Figure 10 is a flow diagram of a method for generating a signature for a digital document that may be embodied by the systems of Figures 5, 6 and 7. Initially, at block 1002, an application server 508 receives input from a customer 506 initiating the generation of a digital signature. For example, the customer 506 may click an "Accept" button on a website to provide authentication information and acknowledge acceptance of the privacy and data protection policies. At block 1004, the application server 508 retrieves the overall public key 402 associated with the customer 506 from a public key repository 514. At block 1006, the application server 508 sends a signature request 504 to a front-end server 510.

[0062] block 1008 In the signature request 504, the front-end server 510 uses an identity extraction function (f 40 ) block 1010At , the front-end server 510 forwards the signing request to the back-end server 512 that corresponds to the extracted BESID 406. If the back-end server 512 stores a private key associated with the customer 506, the method proceeds to block 1102 (FIG. 11A). If the back-end server 512 does not store a private key associated with the customer 506, the method proceeds to block 1120 (FIG. 11B).

[0063] block 1012 At , the front-end server 510 receives the finalized signature 408 from the back-end server 512 and forwards the finalized signature 408 to the application server 508 .

[0064] block 1014 In, the application server 508 digitally signs the digital document by attaching the finalized signature 408 to the digital document.

[0065] FIG. 11A is a flow diagram for generating a signature for a digital document when the backend server 512 stores the private key of the customer 506, which may be embodied by the systems of FIGS. 5, 6, and 7. In block 1102, the backend server 512 sends a signature request 504 to the security device 502. In block 1104, the security device 502 authenticates the customer 506. For example, the security device 502 may authenticate the customer 506 in response to receiving a fingerprint and / or a set of authentication information. In block 1106, the security device 502 generates a first signature with its stored private key using a signature function (f3). In block 1108, the security device 502 sends the first signature to the backend server 512.

[0066] At block 1110, the backend server 512 authenticates the customer 506. In some examples, the backend server 512 can communicate with a security token 516 to receive authentication information or other authentication tokens. For example, the security token 516 can have a fingerprint scanner to receive input from the customer 506 and a wireless transceiver to determine if the security token 516 is within a threshold distance of the security device 502 (e.g., using an RSSI measurement, etc.). At block 1112, the backend server 512 generates a second signature using a signature function (f3). At block 1114, the backend server 512 generates a combined signature (e.g., a composite signature using a composite signature function (f6), or a split key combination function (f 11 In block 1116, the backend server 512 generates a final decision function (f 30 ) to generate the finalized signature. At block 1118, the backend server 512 sends the finalized signature to the frontend server 510. The method proceeds to block 1012 (FIG. 10).

[0067] Figure 11B is a flow diagram for generating a signature for a digital document when the backend server 512 does not store the private key of the customer 506, which may be implemented by the systems of Figures 5, 6 and 7. In block 1120, the backend server 512 sends the signature request 504 to the security device 502.

[0068] At block 1122, the first security device 502 authenticates the customer 506. For example, the first security device 502 may authenticate the customer 506 in response to receiving a fingerprint and / or a set of authentication information. At block 1124, the first security device 502 generates a first signature with its stored private key using a signing function (f3). At block 1126, the first security device 502 sends the first signature to the backend server 512.

[0069] In block 1128, the second security device 502 authenticates the customer 506. In block 1130, the second security device 502 generates a second signature with its stored private key using a signing function (f3). In block 1132, the second security device 502 sends the second signature to the backend server 512.

[0070] In block 1134, the backend server 512 generates a combined signature (e.g., a combined signature using a combined signature function (f6) or a split key combining function (f 11 In block 1118, the backend server 512 generates a final decision function (f 30 ) to generate the finalized signature. At block 1136, the backend server 512 sends the finalized signature to the frontend server 510. The method proceeds to block 1012 (FIG. 10).

[0071] In this specification, the use of disjunctions is intended to include conjunctions. The use of definite or indefinite articles is not intended to indicate number. In particular, reference to "the" object or "a" object and "an" object is intended to mean one of a plurality of possible such objects. Furthermore, the conjunction "or" may be used to convey features that exist simultaneously instead of mutually exclusive alternatives. In other words, the conjunction "or" should be understood to include "and / or". As used herein, the terms "module" and "unit" refer to hardware that includes circuitry, often in conjunction with sensors, to provide communication, control, and / or monitoring capabilities. "Module" and "unit" may also include firmware that executes on the circuitry. The term "remote" means geographically separated and communicatively coupled via an internal or external network, such as an intranet or the Internet. The terms "include" and "comprising" are inclusive and have the same scope as "comprises" and "comprising", respectively.

[0072] The above-described embodiments, and in particular any "preferred" embodiments, are possible examples of implementations and are merely set forth for a clear understanding of the principles of the present invention. Many variations and modifications may be made to the above-described embodiment(s) without substantially departing from the spirit and principles of the technology described herein. All modifications are intended to be included herein within the scope of this disclosure and are protected by the following claims.

Claims

1. 1. A system for generating a digital signature, comprising: A plurality of backend servers; a front-end server, the front-end server comprising: receiving a signing request from a remote application server, the signing request including a global public key with a cryptographically embedded backend server identifier; extracting the cryptographically embedded backend server identifier from the overall public key; forwarding the signature request to one of the plurality of backend servers corresponding to the backend server identifier; configured to forward the second signature to the application server; One of the plurality of backend servers, transmitting the signature request to a plurality of remote security devices associated with the overall public key; receiving a first signature from each of the plurality of remote security devices; generating a combined signature based on the first signature; generating the second signature based on the combined signature and a final determination key, the final determination key being cryptographically generated based on the backend server identifier; The system is configured to forward the second signature to the front-end server.

2. The system of claim 1 , wherein the combined signature is generated using a multi-key scheme.

3. The system of claim 1 , wherein the combined signature is generated using a split key scheme.

4. One of the plurality of backend servers, associating said plurality of remote security devices with a particular user; generating a combined public key based on first public keys received from the plurality of remote security devices; generating the overall public key by cryptographically embedding the backend server identifier into the combined public key; A system as claimed in any preceding claim, configured to initially register said plurality of remote security devices by associating said overall public key with said particular user.

5. The system of claim 4 , wherein the overall public key and the final determination key are generated using a prime number selected based on the backend server identifier and the combined public key.

6. 1. A system for generating a digital signature, comprising: A plurality of backend servers; a front-end server, the front-end server comprising: receiving a signing request from a remote application server, the signing request including a global public key with a cryptographically embedded backend server identifier; extracting the cryptographically embedded backend server identifier from the overall public key; forwarding the signature request to one of the plurality of backend servers corresponding to the backend server identifier; and configured to forward the third signature to the application server; One of the plurality of backend servers, transmitting the signature request to a remote security device associated with the overall public key; receiving a first signature from the remote security device; generating a second signature in response to authenticating the identity of the user; generating a combined signature based on the first signature and the second signature; generating the third signature based on the combined signature and a final determination key, the final determination key being cryptographically generated based on the backend server identifier; The system is configured to forward the third signature to the front-end server.

7. The system of claim 6 , wherein the combined signature is generated using a multi-key scheme.

8. The system of claim 6 , wherein the combined signature is generated using a split key scheme.

9. One of the plurality of backend servers, Associating the remote security device with a particular user; generating a combined public key based on a first public key received from the remote security device and a second public key generated by the backend server; generating the overall public key by cryptographically embedding the backend server identifier into the combined public key; A system as claimed in any one of claims 6 to 8, configured to initially register the remote security device by associating the overall public key with the particular user.

10. 10. The system of claim 9, wherein the overall public key and the final determination key are generated using a prime number selected based on the backend server identifier and the combined public key.

11. 1. A method for generating a digital signature, comprising: receiving, at the front-end server, a signing request from a remote application server, the signing request including a global public key with a cryptographically embedded server identifier; extracting, at the front-end server, the cryptographically embedded server identifier from the overall public key; selecting, by the front-end server, one of a plurality of back-end servers corresponding to the server identifier; forwarding, by the front-end server, the signing request to a selected back-end server; obtaining a first signature and a second signature by the selected backend server; generating, by the selected backend server, a combined signature based on the first signature and the second signature; generating, by the selected backend server, a final signature based on the combined signature and a final key, the final key being cryptographically generated based on the server identifier; forwarding, by the selected back-end server, the finalized signature to the front-end server; transmitting, by the front-end server, the finalized signature to be affixed to a digital document to the remote application server.

12. obtaining the first signature and the second signature by the selected backend server; identifying a first remote security device and a second remote security device based on the overall public key; forwarding the signing request to the first remote security device and to the second remote security device; 12. The method of claim 11, comprising receiving the first signature from the first remote security device and the second signature from the second remote security device.

13. obtaining the first signature and the second signature by the selected backend server; identifying a remote security device based on said overall public key; transmitting the signing request to the remote security device; receiving the first signature from the remote security device; 12. The method of claim 11, comprising generating the second signature using a private key associated with the overall public key after authenticating an identity of a user associated with the overall public key.

14. The method according to any one of claims 11 to 13, wherein the combined signature is generated using a multi-key scheme.

15. The method of claim 11 , wherein the overall public key and the final determination key are generated using a prime number selected based on the server identifier and the combined public key.

Citation Information

Patent Citations

  • MULTI-STEP DIGITAL SIGNATURE METHOD AND SYSTEM THEREOF

    JP1999506222A

  • Method and apparatus for delegating digital signatures to a signing server

    JP2005502217A

  • Compound Digital Signature

    JP2019537349A

  • Distributed digital signature generation

    US20060136727A1

  • Procedure for a multiple digital signature

    US20140164765A1