WO2020172885A1 - 单一客户端生成私钥的密钥管理方法、电子设备 - Google Patents

单一客户端生成私钥的密钥管理方法、电子设备 Download PDF

Info

Publication number
WO2020172885A1
WO2020172885A1 PCT/CN2019/076581 CN2019076581W WO2020172885A1 WO 2020172885 A1 WO2020172885 A1 WO 2020172885A1 CN 2019076581 W CN2019076581 W CN 2019076581W WO 2020172885 A1 WO2020172885 A1 WO 2020172885A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
sub
private
client
servers
Prior art date
Application number
PCT/CN2019/076581
Other languages
English (en)
French (fr)
Inventor
颜泽
谢翔
傅志敬
孙立林
Original Assignee
云图有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 云图有限公司 filed Critical 云图有限公司
Priority to PCT/CN2019/076581 priority Critical patent/WO2020172885A1/zh
Publication of WO2020172885A1 publication Critical patent/WO2020172885A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords

Definitions

  • This application belongs to the field of data security technology, and in particular relates to a key management method and electronic equipment for generating a private key by a single client.
  • a key server generally generates the key, and then distributes the generated key to the key users. This will inevitably increase the burden on the key server, and because a single key server The key server generates all key generation rules, which are specified and maintained by the key server itself, which is not flexible.
  • the purpose of this application is to provide a key management method and electronic device for generating a private key by a single client, which can realize the requirement of generating a key based on the client and improve the flexibility and diversity of key management.
  • This application provides a key management method for a single client to generate a private key, and the electronic device is implemented as follows:
  • a key management method for generating a private key by a single client is applied to a key system.
  • the key system includes: a client and N key servers, where N is an integer greater than or equal to 2, the method include:
  • the client generates a complete target private key and generates a target public key according to the target private key;
  • the client splits the target private key into M sub-private keys, where M is an integer greater than or equal to N;
  • the client sends the first N sub-private keys of the M sub-private keys and the target public key to each of the N key servers in a one-to-one correspondence through the secure channel .
  • the client after the client generates the complete target private key, it further includes:
  • the client backs up and stores the target private key.
  • the client after the client generates the complete target private key, it further includes:
  • the client obtains the backed up private key as the target key
  • Each of the N key servers verifies the validity of the signature file according to the target public key
  • each of the N key servers updates and saves the key component.
  • the method further includes:
  • the client According to the M sub-private keys, the client generates a sub-public key corresponding to each of the M sub-private keys to obtain M sub-public keys, where M is equal to N;
  • the client sends the N sub-private keys of the M sub-private keys and the target public key to each of the N key servers in a one-to-one correspondence through the secure channel.
  • Key server including:
  • the client sends the M sub-private keys, the sub-private keys corresponding to the N sub-private keys, and the target public key in a one-to-one correspondence to the N key servers through the secure channel Each key server.
  • the client sends the N sub-private keys of the M sub-private keys and the target public key to the N key servers in a one-to-one correspondence through the secure channel After each key server in, it also includes:
  • the client initiates a signature request, where the signature request carries the target public key and the data to be signed;
  • the N key servers initiate MPC calculation through the secure channel, sign the data to be signed, and verify the correctness of the signature through the target public key.
  • the client sends the N sub-private keys of the M sub-private keys and the target public key to the N key servers in a one-to-one correspondence through the secure channel After each key server in, it also includes:
  • the client initiates a key refresh request
  • the N key servers initiate MPC calculations through the secure channel to obtain the updated private key, and split the updated private key into N sub-update keys, and use the updated private key to update the N sub-keys. Signing with a key to obtain N signature private keys, and send the N signature private keys and N sub-update keys in a one-to-one correspondence to each of the N key servers;
  • the N key servers verify whether the received signature private key is valid through the target public key, and if it is determined to be valid, update and store the received sub-update key.
  • M is equal to N+1, and one of the M sub-private keys except for the N sub-private keys is the sub-private key corresponding to the client.
  • the client sends the N sub-private keys of the M sub-private keys and the target public key to the N key servers in a one-to-one correspondence through the secure channel After each key server in, it also includes:
  • the client initiates a signature request, where the signature request carries the target public key and the data to be signed;
  • the N key servers and the client initiate an MPC calculation through the secure channel, sign the data to be signed, and verify the correctness of the signature through the target public key.
  • the client sends the N sub-private keys of the M sub-private keys and the target public key to the N key servers in a one-to-one correspondence through the secure channel After each key server in, it also includes:
  • the client initiates a key refresh request
  • the N key servers and the client initiate MPC calculations through the secure channel to obtain M sub-update private keys split based on the target private key, and sign the M sub-update private keys to obtain M signature private keys, sending the M signature private keys and M sub-update private keys in a one-to-one correspondence to each of the N key servers and the client;
  • the N key servers and the client verify whether the received signature private key is valid through the target public key, and if it is determined to be valid, update and store the received sub-update private key.
  • the client sends the N sub-private keys of the M sub-private keys and the target public key to the N key servers in a one-to-one correspondence through the secure channel After each key server in, it also includes:
  • the client initiates a signature request, where the signature request carries the target public key and the data to be signed;
  • Each of the N key servers except for the MPC computing party splits its corresponding sub-private key into a first sub-private key and a second sub-private key, and is established between the key servers
  • the secure channel transmits the first private key to the first key server in the MPC calculation party, and transmits the second sub-private key to the second key server in the MPC calculation party;
  • the first key server and the second key server initiate MPC calculations through a secure channel established between the key servers, and sign the data to be signed;
  • the signed data is sent to each key server except the MPC computing party among the client and the N key servers.
  • the client sends the N sub-private keys of the M sub-private keys and the target public key to the N key servers in a one-to-one correspondence through the secure channel After each key server in, it also includes:
  • the client initiates a key refresh request
  • Each of the N key servers except for the MPC computing party splits its corresponding sub-private key into a first sub-private key and a second sub-private key, and is established between the key servers
  • the secure channel transmits the first private key to the first key server in the MPC calculation party, and transmits the second sub-private key to the second key server in the MPC calculation party;
  • the first key server and the second key server initiate MPC calculations through the secure channel established between the key servers to obtain N sub-update keys that are split based on the target private key, and encrypt the N sub-update keys. Key to sign and get N signature private keys;
  • the first key server and the second key server send the N sub-update keys and N signature private keys in a one-to-one correspondence to each of the N key servers except the MPC computing party Key server
  • Each of the N key servers except the MPC computing party verifies whether the received signature private key is correct, and when it is determined to be correct, updates and stores the received sub-update private key.
  • An electronic device includes a processor and a memory for storing executable instructions of the processor, and the processor implements the steps of the following method when executing the instructions:
  • the client generates a complete target private key and generates a target public key according to the target private key;
  • the client splits the target private key into M sub-private keys, where M is an integer greater than or equal to N;
  • the client sends the first N sub-private keys of the M sub-private keys and the target public key to each of the N key servers in a one-to-one correspondence through the secure channel .
  • a computer-readable storage medium having computer instructions stored thereon, which implement the steps of the following method when the instructions are executed:
  • the client generates a complete target private key and generates a target public key according to the target private key;
  • the client splits the target private key into M sub-private keys, where M is an integer greater than or equal to N;
  • the client sends the first N sub-private keys of the M sub-private keys and the target public key to each of the N key servers in a one-to-one correspondence through the secure channel .
  • the only client in the key system generates a complete target private key and target public key, and splits the target private key into multiple sub-private
  • the key is distributed to each server of the key system based on the established secure channel. Because each server obtains and stores a part of the private key, the completed private key will not be generated in the subsequent use and update process , To ensure the security of the private key.
  • the above-mentioned method solves the problem of low flexibility and low security of the existing key system generated by the key server, and achieves the technical effect of effectively improving the flexibility of key generation and the security of the key.
  • Figure 1 is an architectural diagram of the key system provided by this application.
  • Fig. 2 is a method flowchart of a key management method for generating a private key by a single client provided by the present application
  • FIG. 3 is a schematic diagram of the interaction of the key generation of Example 1 provided by this application.
  • FIG. 4 is a schematic diagram of the interaction of the key usage of Example 1 provided by the present application.
  • FIG. 5 is a schematic diagram of the interaction of the key backup of Example 1 provided by this application.
  • Example 6 is a schematic diagram of the interaction of the key recovery of Example 1 provided by this application.
  • FIG. 7 is a schematic diagram of the interaction of the key refresh of Example 1 provided by the present application.
  • FIG. 8 is a schematic diagram of the interaction of the key generation of Example 2 provided by this application.
  • FIG. 9 is a schematic diagram of the interaction of the key usage of Example 2 provided by this application.
  • FIG. 10 is a schematic diagram of the interaction of the key recovery of Example 2 provided by this application.
  • FIG. 11 is a schematic diagram of the interaction of the key refresh of Example 2 provided by the present application.
  • FIG. 12 is a schematic diagram of the interaction of key generation in Example 3 provided by this application.
  • FIG. 13 is a schematic diagram of the interaction of key usage of Example 3 provided by this application.
  • FIG. 14 is a schematic diagram of the interaction of key recovery of Example 3 provided by this application.
  • Example 15 is a schematic diagram of the interaction of key refresh of Example 3 provided by the present application.
  • FIG. 16 is a schematic diagram of the structure of the computer terminal provided by this application.
  • the existing key server generates the key unilaterally, which leads to the problem of low flexibility and security.
  • the private key and public key are generated by the client in the key system, and then disassembled. After being divided into multiple key components, they are distributed to each key server. When in use, the key server uses these key components to perform operations such as signing and updating, which can improve the flexibility of key generation and the security of keys .
  • the key management method for a single client to generate a private key is applied to a key system, as shown in Figure 1.
  • the key system includes: a client and N key servers, among which, N is an integer greater than or equal to 2.
  • Fig. 2 is a method flowchart of an embodiment of a key management method for generating a private key by a single client according to the present application.
  • this application provides method operation steps or device structures as shown in the following embodiments or drawings, the method or device may include more or fewer operation steps or module units based on conventional or no creative labor. .
  • the execution order of these steps or the module structure of the device is not limited to the execution order or module structure shown in the description of the embodiments of this application and the drawings.
  • the described method or module structure is applied to an actual device or terminal product, it can be executed sequentially or in parallel according to the method or module structure connection shown in the embodiments or drawings (for example, parallel processor or multi-threaded processing Environment, even distributed processing environment).
  • a key management method for a single client to generate a private key may include:
  • Step 201 The client generates a complete target private key and generates a target public key according to the target private key;
  • the above-mentioned client is a key user, including but not limited to App, application server, etc.
  • the specific form of the client can be selected according to actual needs, and this application does not limit this.
  • the above-mentioned key server is a key service party and is used to provide key related services.
  • the client can generate a complete private key SK (ie, target private key), and generate a related public key PK (ie, target public key) based on the private key SK.
  • SK ie, target private key
  • PK ie, target public key
  • Step 202 The client splits the target private key into M sub-private keys, where M is an integer greater than or equal to N;
  • the client After the client generates the target public key, it can split the private key SK into n parts: SK1 ⁇ SKn, or split the private key SK into n+1 parts: SK1 ⁇ SKn+1.
  • the secret sharing mechanism can be used for splitting, or other methods can be used for splitting, as long as the private key can be split effectively.
  • Step 203 the client establishes a secure channel with the N key servers
  • a secure channel can be established between the client and the key server through KYC (Know your customer, identity confirmation program).
  • the identity confirmation program can include but is not limited to at least one of the following: SMS, email verification code, account password, Fingerprints, faces, certificates, etc.
  • Step 204 The client sends the first N sub-private keys of the M sub-private keys and the target public key in a one-to-one correspondence to each key in the N key servers through the secure channel server.
  • the client can back up and store the target private key, that is, the client backs up the target private key so that it can be called when the key needs to be restored.
  • S1 The client obtains the backup private key as the target key
  • S4 Send the first N sub-key components of the M key components and the N signature files to each of the N key servers in a one-to-one correspondence;
  • each of the N key servers updates and saves the key component.
  • Database The key or key component is stored in the database, where the key or key component can be encrypted and stored;
  • Key file save the key or key component by exporting the key file, where the key or key component can be encrypted and stored;
  • HSM save the key or key component through the hardware security module, where the key or key component can be encrypted and stored;
  • Mnemonic words the key and key components are converted to generate a series of mnemonic words for storage.
  • the client in the key system splits the private key, it can be split into N shares, that is, each key server gets a key component, or it can be split into N+1 shares, that is, each key server and client get a key component.
  • the client can generate the sub-public corresponding to each of the M sub-private keys according to the M sub-private keys. Key to obtain M sub-public keys, and correspondingly, the client sends the N sub-private keys of the M sub-private keys and the target public key to the N in a one-to-one correspondence through the secure channel
  • Each of the key servers includes: the client corresponds to the M sub-private keys, the sub-private keys corresponding to the N sub-private keys, and the target public key in a one-to-one correspondence through the secure channel Send it underground to each of the N key servers. That is, when M is equal to N, the sub-public keys corresponding to each of the M sub-private keys are also generated according to the M sub-private keys, and M sub-public keys are obtained.
  • a key When a key is used for signing, it can be calculated by a multi-party MPC. Specifically, the client uses the secure channel to combine the N sub-private keys of the M sub-private keys and the target public key, one After one correspondence is sent to each of the N key servers, the use of the key may include:
  • S1 The client initiates a signature request, where the signature request carries the target public key and the data to be signed;
  • N key servers initiate MPC calculations through the secure channel, sign the data to be signed, and verify the correctness of the signature through the target public key.
  • MPC Secure Multi-Party Computation
  • MPC can ensure the data security of all parties, and at the same time, jointly use the data of all parties to achieve specific effects, so as to give full play to the value of data.
  • Multiple participants holding their own private data jointly execute a calculation logic calculation logic (such as a maximum value calculation) and obtain the calculation result.
  • MPC calculation can design the protocol without relying on a trusted third party.
  • Secure multi-party computing can be abstractly understood as: two parties have their own private data, and can calculate the result of the public function without leaking their private data. When the entire calculation is completed, only the calculation result is known to both parties, and neither party knows the other's data and the intermediate data of the calculation process.
  • performing key update may include:
  • S1 The client initiates a key refresh request
  • N key servers initiate MPC calculations through the secure channel to obtain N sub-update keys split based on the target private key, and sign the N sub-update keys through the update private key to obtain N Signing private keys, sending the N signature private keys and N sub-update keys to each of the N key servers in a one-to-one correspondence;
  • N key servers verify whether the received signature private key is valid through the target public key, and if it is determined to be valid, update and store the received sub-update key.
  • the key is used to sign, which can include:
  • S1 The client initiates a signature request, where the signature request carries the target public key and the data to be signed;
  • S3 The N key servers and the client initiate MPC calculations through the secure channel, sign the data to be signed, and verify the correctness of the signature through the target public key.
  • the key update may include:
  • S1 The client initiates a key refresh request
  • N key servers and the client use the secure channel to initiate MPC calculations to obtain M sub-update private keys based on the target private key split, and perform the M sub-update private keys through the update private keys Sign, obtain M signature private keys, and send the M signature private keys and M sub-update private keys one-to-one correspondence to each of the N key servers and the client;
  • S4 N key servers and the client verify whether the received signature private key is valid through the target public key, and if it is determined to be valid, update and store the received sub-update private key.
  • the key is used to sign, which can include:
  • S1 The client initiates a signature request, where the signature request carries the target public key and the data to be signed;
  • a random selection method or a preset algorithm may be used.
  • the specific method used to select the MPC calculation party may be determined according to actual needs and circumstances. Not limited.
  • Each of the N key servers except the MPC computing party splits its corresponding sub-private key into the first sub-private key and the second sub-private key, and is established between the key servers
  • the secure channel transmits the first private key to the first key server in the MPC calculation party, and transmits the second sub-private key to the second key server in the MPC calculation party;
  • S4 The first key server and the second key server initiate MPC calculation through the secure channel established between the key server, and sign the data to be signed;
  • S5 Send the signed data to each key server except the MPC computing party among the client and the N key servers.
  • the key update may include:
  • S1 The client initiates a key refresh request
  • Each of the N key servers except the MPC computing party splits its corresponding sub-private key into the first sub-private key and the second sub-private key, and is established between the key servers
  • the secure channel transmits the first private key to the first key server in the MPC calculation party, and transmits the second sub-private key to the second key server in the MPC calculation party;
  • the first key server and the second key server initiate MPC calculations through the secure channel established between the key servers to obtain N sub-update keys split based on the target private key, and perform operations on the N sub-update keys Sign, get N signature private keys;
  • the first key server and the second key server send the N sub-update keys and the N signature private keys in a one-to-one correspondence to each of the N key servers except the MPC computing party Key server
  • Each of the N key servers except the MPC calculating party verifies whether the received signature private key is correct, and when it is determined to be correct, updates and stores the received sub-update private key.
  • a complete target private key and target public key are generated by the only client in the key system, and the target private key is split into multiple sub-private keys, and distributed to each key system based on the established secure channel Servers, because each server obtains and stores a part of the private key, the completed private key will not be generated in the subsequent use and update process, which ensures the security of the private key.
  • the above-mentioned method solves the problem of low flexibility and low security of the existing key system generated by the key server, and achieves the technical effect of effectively improving the flexibility of key generation and the security of the key.
  • a key management method is provided based on secure two-party calculation that generates a key through a client and is kept by multiple servers. That is, a single client generates a private key and splits it into multiple components to be issued To multiple servers, through two-party MPC, multiple servers are used to calculate signatures, and multiple server components are refreshed by backing up private keys, and multiple server components are refreshed through two-party MPC.
  • S1 The client and the key server complete two-way authentication through KYC, and issue authentication materials to complete the registration process;
  • S2 The client generates a complete private key SK, and generates a related public key PK based on the private key SK.
  • S3 The client and the server authenticate through the issued authentication materials and establish a secure channel, and the client respectively issues corresponding components to the key server 1 to n, for example: issues SK1, PK1, and PK to the key server 2; Send SK2, PK2, PK to key server 2; and so on, send SKn, PKn, PK to key server n;
  • the key servers 1 to n respectively save their own key components to complete the key generation process. Among them, the key server separately stores a part of the key components.
  • S1 The client initiates a signature request and provides the public key PK as the unique identifier and the data to be signed;
  • S2 The server selects two servers as MPC calculating parties, assuming that key server 1 and key server 2 are selected as MPC calculating parties;
  • S3 The key server 1-n completes two-way authentication through KYC and establishes a secure channel, obtains the information to be signed and the client public key and signature, and verifies whether the public key signature is correct. Then split SK3 into SK3-1 and SK3-2, and pass SK3-1 to key server 1 and SK3-2 to key server 2. By analogy, SKn is split into SKn-1 and SKn-2, and SKn-1 is passed to key server 1, and SKn-2 is passed to key server 2;
  • the key servers 1 and 2 initiate MPC calculations through the secure channel: calculate the private key SK through the key components SK1, SK2, SK3-1 ⁇ n-1, SK3-2 ⁇ n-2, and treat them with the private key SK
  • the signed data is signed, and the signature is returned to the client and the key server. Because the entire process is a complete MPC calculation, the private key SK has not actually been generated (either in the calculation process or in the use process), and SK1 ⁇ n did not appear in the calculation interaction process (that is, not in the network layer Transmit SK1 ⁇ n for calculation).
  • the key or key component is stored in various forms. Specifically, it can be stored in one of the following forms but not limited to:
  • Database Save the key or key component through the database, where the key or key component can be encrypted and stored;
  • Key file save the key or key component by exporting the key file, where the key or key component can be encrypted and stored;
  • HSM Save the key or key component through the hardware security module, where the key or key component can be encrypted and stored;
  • Mnemonic Convert the key and the key component to generate a series of mnemonics for storage
  • Two-dimensional code The corresponding two-dimensional code is generated by the key or key component for storage, where the key or key component can be encrypted and stored.
  • the private key SK is directly backed up and saved, and one of the aforementioned storage forms can be used for backup.
  • S1 Obtain the backup key through the backup method, and use the backup key SK to split into n key components through secret sharing. Use the private key SK to respectively sign 1 to n key components to obtain signatures S1 to Sn;
  • the client and the key server complete two-way authentication through KYC and establish a secure channel.
  • the client sends corresponding components to the key servers 1 to n, for example: SK1, S1 to key server 1; SK2 S2 to key server 2; and so on, sending SKn and Sn to key server n;
  • S3 The key server verifies the validity of the signature component received by itself through the previously stored public key PK, and if the verification passes, it updates the key component and saves it.
  • S1 The client initiates a key refresh request
  • S2 The server selects two servers as MPC computing parties, assuming that key server 1 and key server 2 are selected;
  • Key servers 1 to n establish a secure channel through KYC, split SK3 into SK3-1 and SK3-2, and pass SK3-1 to key server 1 and SK3-2 to key server 2.
  • SKn is split into SKn-1 and SKn-2, and SKn-1 is passed to key server 1, and SKn-2 is passed to key server 2;
  • the key servers 1 and 2 initiate MPC calculation through the secure channel: calculate the private key SK through the key components SK1, SK2, SK3-1 ⁇ n-1, and SK3-2 ⁇ n-2, and perform the calculation through the private key SK Secret sharing generates new SK1 ⁇ n. And sign the new SK1 ⁇ n. Send SK1 to SKn and their signatures to the corresponding key server respectively. Because the entire process is a complete MPC calculation, the private key SK has not actually been generated (either during calculation or during use), and SK1 ⁇ n did not appear in the process of computing interaction (that is, not in the network layer). Transmit SK1 ⁇ n for calculation);
  • the key server After receiving the relevant information, the key server verifies the correctness of the issued SK through the signature S. If the verification is passed, it saves the relevant information. Specifically, the key server can perform a check based on the previously stored public key PK. SK1 ⁇ SKn and their signatures (for example, key server 1 obtains the signatures of SK1 and SK1; key server 2 obtains the signatures of SK2 and SK2, and so on) to verify the signatures to confirm the authenticity of the signatures Perform the update component operation after sex.
  • SK1 ⁇ SKn and their signatures for example, key server 1 obtains the signatures of SK1 and SK1; key server 2 obtains the signatures of SK2 and SK2, and so on
  • a key management method is provided based on secure multi-party calculation through the client to generate a key, and multiple servers to keep the key management method, that is, a single client generates a private key and splits it into multiple components to be distributed to at most A server, through MPC, uses multiple servers to calculate signatures, refreshes multiple server components by backing up private keys, and refreshes multiple server components through MPC.
  • S1 The client and the key server complete two-way authentication through KYC, and issue authentication materials to complete the registration process;
  • S2 The client generates a complete private key SK, and generates a related public key PK based on the private key SK.
  • S3 The client and the server authenticate and establish a secure channel through the issued authentication materials, and the client respectively sends corresponding components to the key server 1 to n, for example: sends SK1 and PK to key server 1; SK2, PK to key server 2; and so on, issue SKn, PK to key server n;
  • the key servers 1 to n respectively save their own key components to complete the key generation process. Among them, the key server separately stores a part of the key components.
  • S1 The client initiates a signature request and provides the public key PK as the unique identifier and the data to be signed;
  • KYC is used to complete mutual authentication between key servers and establish a secure channel
  • S3 The key server initiates MPC calculation through a secure channel: performs a signature operation on the data to be signed, and verifies the correctness of the signature through the PK public key.
  • the key or key component is stored in various forms. Specifically, it can be stored in one of the following forms but not limited to:
  • Database Save the key or key component through the database, where the key or key component can be encrypted and stored;
  • Key file save the key or key component by exporting the key file, where the key or key component can be encrypted and stored;
  • HSM Save the key or key component through the hardware security module, where the key or key component can be encrypted and stored;
  • Mnemonic Convert the key and the key component to generate a series of mnemonics for storage
  • Two-dimensional code The corresponding two-dimensional code is generated by the key or key component for storage, where the key or key component can be encrypted and stored.
  • the private key SK is directly backed up and saved, and one of the above-mentioned storage forms can be used for backup.
  • the client obtains the backup key through the backup method, splits the backup key SK into n key components through secret sharing, and uses the private key SK to sign the n key components to obtain signatures S1 ⁇ Sn;
  • S2 The client and each key server complete two-way authentication through KYC and establish a secure channel.
  • the client sends corresponding components to the key servers 1 to n, for example: SK1, S1 to key server 1; SK2 , S2 to key server 2; and so on, issue SKn, Sn to key server n;
  • S3 The key server verifies the validity of the signature component received by itself through the previously stored public key PK, and if the verification is passed, the key component is updated and saved. For example: Key server 1, received the signatures of SK1 and SK1. The key server 1 verifies the signatures of SK1 and SK1 through the previously saved PK. If the verification signature is passed, it confirms that it is the private key component issued by the client and performs the component update operation.
  • S1 The client initiates a key refresh request
  • S2 Two-way authentication is completed between key servers through KYC and a secure channel is established, and MPC calculation is initiated: a private key SK is generated, and SK1 ⁇ SKn are generated through the secret sharing algorithm, and SK1 ⁇ SKn are used to sign SK1 ⁇ SKn to generate signatures S1 ⁇ Sn .
  • Send the signatures to different key servers for example: send SK1 and S1 to key server 1; send SK2 and S2 to key server 2; and so on, send SKn and Sn to key server n . Because the whole process is a complete MPC calculation, the private key SK has not actually been generated (either during the calculation process or during use).
  • Each key server verifies the validity of the signature component signature received by itself through the previously stored public key PK, and if it is valid, updates and saves the key component.
  • a key management method is provided based on secure multi-party calculation through the client to generate a key, and multiple servers and one client to keep it. That is, a single client generates a private key and splits it into multiple components. Distributed to multiple servers, through MPC, the client and multiple servers are used to calculate the signature, the process of refreshing the client and multiple server components by backing up the private key, and the client and multiple server components through MPC .
  • S1 The client and the key server complete two-way authentication through KYC, and issue authentication materials to complete the registration process;
  • S2 The client generates a complete private key SK, and generates a related public key PK based on the private key SK, and splits the private key SK into n+1 shares through secret sharing: SK1 ⁇ SKn+1, and the key component SKn+1 Save to the client;
  • S3 The client and the server authenticate and establish a secure channel through the issued authentication materials, and the client respectively sends corresponding components to the key server 1 to n, for example: sends SK1 and PK to key server 1; SK2, PK to key server 2; and so on, issue SKn, PK to key server n;
  • S1 The client initiates a signature request and provides the public key PK as the unique identifier and the data to be signed;
  • S3 MPC calculation is initiated between the client and the key server through a secure channel: the data to be signed is signed, and the correctness of the signature is verified by the PK public key.
  • the key or key component is stored in various forms. Specifically, it can be stored in one of the following forms but not limited to:
  • Database Save the key or key component through the database, where the key or key component can be encrypted and stored;
  • Key file save the key or key component by exporting the key file, where the key or key component can be encrypted and stored;
  • HSM Save the key or key component through the hardware security module, where the key or key component can be encrypted and stored;
  • Mnemonic Convert the key and the key component to generate a series of mnemonics for storage
  • Two-dimensional code The corresponding two-dimensional code is generated by the key or key component for storage, where the key or key component can be encrypted and stored.
  • the private key SK is directly backed up and saved.
  • the client obtains the backup key through the backup method, uses the backup key SK to split into n+1 key components through secret sharing, and saves the n+1th share. Use the private key SK to separately sign the first n key components to obtain signatures S1 to Sn;
  • the client and the key server complete two-way authentication through KYC and establish a secure channel.
  • the client sends corresponding components to the key servers 1 to n, for example: SK1, S1 to key server 1; SK2 S2 to key server 2; and so on, sending SKn and Sn to key server n;
  • S3 The key server verifies the validity of the signature component received by itself through the previously stored public key PK, and if the verification is passed, the key component is updated and saved.
  • S1 The client or key server initiates a key refresh request, completes two-way authentication through KYC and establishes a secure channel;
  • S2 The client and the key server initiate MPC calculations through a secure channel: generate a private key SK, and generate SK1 ⁇ SKn+1 through the secret sharing algorithm, use SK to sign SK1 ⁇ SKn+1, and generate signatures S1 ⁇ Sn+1 .
  • Send the signatures to different key servers for example: send SK1 and S1 to key server 1; send SK2 and S2 to key server 2; and so on, send SKn and Sn to key server n ; SKn+1, Sn+1 to the client. Because the whole process is a complete MPC calculation, the private key SK has not actually been generated (either during the calculation process or during use).
  • Each key server and client verify the validity of the signature component received by themselves through the previously stored public key PK, and if it is valid, update and save the key component.
  • FIG. 16 is a hardware structural block diagram of a computer terminal of a key management method for generating a private key by a single client according to an embodiment of the present invention.
  • the computer terminal 10 may include one or more (only one is shown in the figure) processor 102 (the processor 102 may include, but is not limited to, a processing device such as a microprocessor MCU or a programmable logic device FPGA) , A memory 104 for storing data, and a transmission module 106 for communication functions.
  • FIG. 16 is only for illustration, and it does not limit the structure of the above electronic device.
  • the computer terminal 10 may also include more or fewer components than those shown in FIG. 16, or have a configuration different from that shown in FIG. 16.
  • the memory 104 can be used to store software programs and modules of application software, such as program instructions/modules corresponding to the key management method for a single client to generate a private key in the embodiment of the present invention.
  • the processor 102 runs the software stored in the memory 104 Programs and modules, thereby executing various functional applications and data processing, that is, implementing the key management method for generating private keys by a single client of the application program.
  • the memory 104 may include a high-speed random access memory, and may also include a non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory.
  • the memory 104 may further include a memory remotely provided with respect to the processor 102, and these remote memories may be connected to the computer terminal 10 via a network.
  • networks include but are not limited to the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.
  • the transmission module 106 is used to receive or send data via a network.
  • the above-mentioned specific examples of the network may include a wireless network provided by the communication provider of the computer terminal 10.
  • the transmission module 106 includes a network adapter (Network Interface Controller, NIC), which can be connected to other network devices through a base station so as to communicate with the Internet.
  • the transmission module 106 may be a radio frequency (RF) module, which is used to communicate with the Internet in a wireless manner.
  • RF radio frequency
  • the above devices are located in the client and may include:
  • a generating module for generating a complete target private key and generating a target public key according to the target private key
  • the issuing module is configured to send the first N sub-private keys of the M sub-private keys and the target public key to each of the N key servers in a one-to-one correspondence through the secure channel Key server.
  • the embodiment of the present application also provides a specific implementation of an electronic device that can implement all the steps in the key management method for a single client to generate a private key in the foregoing embodiment, and the electronic device specifically includes the following content:
  • the processor executes the computer program all the steps in the key management method for a single client to generate a private key in the above embodiment are implemented when the processor executes the computer program. For example, when the processor executes the computer program Implement the following steps:
  • Step 1 The client generates a complete target private key and generates a target public key according to the target private key;
  • Step 2 The client splits the target private key into M sub-private keys, where M is an integer greater than or equal to N;
  • Step 3 The client establishes a secure channel with the N key servers
  • Step 4 The client sends the first N sub-private keys of the M sub-private keys and the target public key to each key of the N key servers in a one-to-one correspondence through the secure channel server.
  • the only client in the key system generates a complete target private key and target public key, and splits the target private key For multiple sub-private keys, they are distributed to each server of the key system based on the established secure channel. Since each server obtains and stores a part of the private key, the completed private key will not be used in the subsequent use and update process. Will be generated, ensuring the security of the private key.
  • the above-mentioned method solves the problem of low flexibility and low security of the existing key system generated by the key server, and achieves the technical effect of effectively improving the flexibility of key generation and the security of the key.
  • the embodiment of the present application also provides a computer-readable storage medium capable of implementing all the steps in the key management method for a single client to generate a private key in the above-mentioned embodiment, and the computer-readable storage medium stores a computer program, When the computer program is executed by the processor, all the steps of the key management method for a single client to generate a private key in the above embodiment are implemented. For example, when the processor executes the computer program, the following steps are implemented:
  • Step 1 The client generates a complete target private key and generates a target public key according to the target private key;
  • Step 2 The client splits the target private key into M sub-private keys, where M is an integer greater than or equal to N;
  • Step 3 The client establishes a secure channel with the N key servers
  • Step 4 The client sends the first N sub-private keys of the M sub-private keys and the target public key to each key of the N key servers in a one-to-one correspondence through the secure channel server.
  • the only client in the key system generates a complete target private key and target public key, and splits the target private key For multiple sub-private keys, they are distributed to each server of the key system based on the established secure channel. Because each server obtains and stores a part of the private key, the completed private key is not used in the subsequent use and update process. Will be generated, ensuring the security of the private key.
  • the above-mentioned method solves the problem of low flexibility and low security of the existing key system generated by the key server, and achieves the technical effect of effectively improving the flexibility of key generation and the security of the key.
  • a typical implementation device is a computer.
  • the computer may be, for example, a personal computer, a laptop computer, a vehicle-mounted human-computer interaction device, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, and a tablet.
  • Computers, wearable devices, or any combination of these devices may be specifically implemented by computer chips or entities, or implemented by products with certain functions.
  • the computer may be, for example, a personal computer, a laptop computer, a vehicle-mounted human-computer interaction device, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, and a tablet.
  • each module can be implemented in the same one or more software and/or hardware, or a module that implements the same function can be implemented by a combination of multiple sub-modules or sub-units.
  • the device embodiments described above are merely illustrative, for example, the division of the units is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components can be combined or integrated To another system, or some features can be ignored, or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
  • controllers in addition to implementing the controller in a purely computer-readable program code manner, it is entirely possible to program the method steps to make the controller use logic gates, switches, application specific integrated circuits, programmable logic controllers and embedded The same function can be realized in the form of a microcontroller, etc. Therefore, such a controller can be regarded as a hardware component, and the devices included in the controller for realizing various functions can also be regarded as a structure within the hardware component. Or even, the device for realizing various functions can be regarded as both a software module for realizing the method and a structure within a hardware component.
  • These computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device.
  • the device implements the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
  • These computer program instructions can also be loaded on a computer or other programmable data processing equipment, so that a series of operation steps are executed on the computer or other programmable equipment to produce computer-implemented processing, so as to execute on the computer or other programmable equipment.
  • the instructions provide steps for implementing functions specified in a flow or multiple flows in the flowchart and/or a block or multiple blocks in the block diagram.
  • the computing device includes one or more processors (CPU), input/output interfaces, network interfaces, and memory.
  • processors CPU
  • input/output interfaces network interfaces
  • memory volatile and non-volatile memory
  • the memory may include non-permanent memory in computer readable media, random access memory (RAM) and/or non-volatile memory, such as read-only memory (ROM) or flash memory (flash RAM). Memory is an example of computer readable media.
  • RAM random access memory
  • ROM read-only memory
  • flash RAM flash memory
  • Computer-readable media include permanent and non-permanent, removable and non-removable media, and information storage can be realized by any method or technology.
  • the information can be computer readable instructions, data structures, program modules, or other data.
  • Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disc (DVD) or other optical storage, Magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media can be used to store information that can be accessed by computing devices. According to the definition in this article, computer-readable media does not include transitory media, such as modulated data signals and carrier waves.
  • the embodiments of this specification can be provided as methods, systems or computer program products. Therefore, the embodiments of this specification may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the embodiments of this specification may adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.
  • a computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
  • program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
  • the embodiments of this specification can also be practiced in distributed computing environments. In these distributed computing environments, tasks are performed by remote processing devices connected through a communication network. In a distributed computing environment, program modules can be located in local and remote computer storage media including storage devices.

Abstract

本申请提供了一种单一客户端生成私钥的密钥管理方法、电子设备,其中,该方法应用于密钥系统中,该密钥系统包括:一个客户端和N个密钥服务器,其中,N为大于等于2的整数,方法包括:客户端生成完整的目标私钥并根据目标私钥生成目标公钥;客户端将目标私钥拆分为M个子私钥,M为大于等于N的整数;客户端与N个密钥服务器建立安全信道;客户端通过安全信道,将M个子私钥中的前N个子私钥和目标公钥,一一对应地下发给N个密钥服务器中的各个密钥服务器。通过上述方式解决现有的密钥系统由密钥服务器生成密钥所存在的灵活性和安全性不高的问题,达到了有效提升密钥生成的灵活性和密钥安全性的技术效果。

Description

单一客户端生成私钥的密钥管理方法、电子设备 技术领域
本申请属于数据安全技术领域,尤其涉及一种单一客户端生成私钥的密钥管理方法、电子设备。
背景技术
目前,针对密钥服务系统而言,一般都是由一个密钥服务器生成密钥,然后将生成的密钥分发给密钥使用方,这样势必会增加密钥服务器的负担,且因为是由单一密钥服务器生成的,导致所有的密钥生成规则都是密钥服务器自身指定和维护的,灵活性不高。
针对现有的密钥系统中所存在的上述问题,目前尚未提出有效的解决方案。
发明内容
本申请目的在于提供一种单一客户端生成私钥的密钥管理方法、电子设备,可以实现基于客户端生成密钥的需求,提升密钥管理的灵活性和多样性。
本申请提供一种单一客户端生成私钥的密钥管理方法、电子设备是这样实现的:
一种单一客户端生成私钥的密钥管理方法,应用于密钥系统中,该密钥系统包括:一个客户端和N个密钥服务器,其中,N为大于等于2的整数,所述方法包括:
所述客户端生成完整的目标私钥并根据所述目标私钥生成目标公钥;
所述客户端将所述目标私钥拆分为M个子私钥,M为大于等于N的整数;
所述客户端与所述N个密钥服务器建立安全信道;
所述客户端通过所述安全信道,将所述M个子私钥中的前N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
在一个实施方式中,在所述客户端生成完整的目标私钥之后,还包括:
所述客户端对所述目标私钥进行备份存储。
在一个实施方式中,在所述客户端生成完整的目标私钥之后,还包括:
所述客户端获取备份的私钥作为目标密钥;
将所述目标密钥拆分为M个密钥分量;
通过所述目标私钥对所述M个密钥分量中的前N个密钥分量进行签名,得到N个签名文件;
将所述M个密钥分量中的前N个子密钥分量和所述N个签名文件,一一对应地下 发给所述N个密钥服务器中的各个密钥服务器;
所述N个密钥服务器中的各个密钥服务器根据所述目标公钥验证签名文件的有效性;
在验证通过后,所述N个密钥服务器中的各个密钥服务器更新密钥分量并保存。
在一个实施方式中,所述客户端将所述目标私钥拆分为M个子私钥之后,还包括:
所述客户端根据所述M个子私钥,生成M个子私钥中各个子私钥对应的子公钥,得到M个子公钥,其中,M等于N;
相应的,所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器,包括:
所述客户端通过所述安全信道,将所述M个子私钥、所述N个子私钥对应的子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
在一个实施方式中,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
所述客户端发起签名请求,其中,所述签名请求中携带有所述目标公钥和待签名数据;
所述N个密钥服务器之间建立安全通道;
所述N个密钥服务器通过所述安全信道,发起MPC计算,对所述待签名数据进行签名,并通过所述目标公钥验证签名的正确性。
在一个实施方式中,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
所述客户端发起密钥刷新请求;
所述N个密钥服务器通过所述安全信道,发起MPC计算得到更新私钥,并将所述更新私钥拆分为N个子更新密钥,通过所述更新私钥对所述N个子更新密钥进行签名,得到N个签名私钥,将所述N个签名私钥和N个子更新密钥一一对应地下发给所述N个密钥服务器中的各个密钥服务器;
所述N个密钥服务器通过所述目标公钥验证接收到的签名私钥是否有效,在确定有效的情况下,更新并存储接收到的子更新密钥。
在一个实施方式中,M等于N+1,所述M个子私钥中除N个子私钥之外的一个子 私钥为所述客户端对应的子私钥。
在一个实施方式中,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
所述客户端发起签名请求,其中,所述签名请求中携带有所述目标公钥和待签名数据;
所述N个密钥服务器和所述客户端之间建立安全通道;
所述N个密钥服务器和所述客户端通过所述安全信道,发起MPC计算,对所述待签名数据进行签名,并通过所述目标公钥验证签名的正确性。
在一个实施方式中,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
所述客户端发起密钥刷新请求;
所述N个密钥服务器和所述客户端之间建立安全通道;
所述N个密钥服务器和所述客户端通过所述安全信道,发起MPC计算得到基于所述目标私钥拆分的M个子更新私钥,并对所述M个子更新私钥进行签名,得到M个签名私钥,将所述M个签名私钥和M个子更新私钥一一对应地下发给所述N个密钥服务器中的各个密钥服务器和所述客户端;
所述N个密钥服务器和所述客户端通过所述目标公钥验证接收到的签名私钥是否有效,在确定有效的情况下,更新并存储接收到的子更新私钥。
在一个实施方式中,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
所述客户端发起签名请求,其中,所述签名请求中携带有所述目标公钥和待签名数据;
从所述N个密钥服务器中选择两个密钥服务器作为MPC计算方;
所述N个密钥服务器中除MPC计算方之外的各个密钥服务器将自身对应的子私钥拆分为第一子私钥和第二子私钥,并通过密钥服务器之间建立的安全信道将第一私钥传送至MPC计算方中的第一密钥服务器,将第二子私钥传送至MPC计算方中的第二密钥服务器;
所述第一密钥服务器和所述第二密钥服务器通过密钥服务器之间建立的安全信道发起MPC计算,对所述待签名数据进行签名;
将签名后的数据发送至所述客户端和所述N个密钥服务器中除MPC计算方之外的各个密钥服务器。
在一个实施方式中,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
所述客户端发起密钥刷新请求;
从所述N个密钥服务器中选择两个密钥服务器作为MPC计算方;
所述N个密钥服务器中除MPC计算方之外的各个密钥服务器将自身对应的子私钥拆分为第一子私钥和第二子私钥,并通过密钥服务器之间建立的安全信道将第一私钥传送至MPC计算方中的第一密钥服务器,将第二子私钥传送至MPC计算方中的第二密钥服务器;
所述第一密钥服务器和所述第二密钥服务器通过密钥服务器之间建立的安全信道发起MPC计算得到基于所述目标私钥拆分的N个子更新密钥,并对N个子更新密钥进行签名,得到N个签名私钥;
所述第一密钥服务器和所述第二密钥服务器将N个子更新密钥及N个签名私钥,一一对应地下发给所述N个密钥服务器中除MPC计算方之外的各个密钥服务器;
所述N个密钥服务器中除MPC计算方之外的各个密钥服务器验证接收到的签名私钥是否正确,在确定正确的情况下,更新并存储接收到的子更新私钥。
一种电子设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现如下方法的步骤:
所述客户端生成完整的目标私钥并根据所述目标私钥生成目标公钥;
所述客户端将所述目标私钥拆分为M个子私钥,M为大于等于N的整数;
所述客户端与所述N个密钥服务器建立安全信道;
所述客户端通过所述安全信道,将所述M个子私钥中的前N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现如下方法的步骤:
所述客户端生成完整的目标私钥并根据所述目标私钥生成目标公钥;
所述客户端将所述目标私钥拆分为M个子私钥,M为大于等于N的整数;
所述客户端与所述N个密钥服务器建立安全信道;
所述客户端通过所述安全信道,将所述M个子私钥中的前N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
本申请提供的单一客户端生成私钥的密钥管理方法、电子设备,由密钥系统中唯一的客户端生成完整的目标私钥和目标公钥,并将目标私钥拆分为多个子私钥,基于建立的安全信道分发给密钥系统的各个服务器,因每个服务器获取和存储的是私钥的一部分,因此在后续的使用和更新过程中,完成的私钥是不会被生成的,保证了私钥的安全性。通过上述方式解决现有的密钥系统由密钥服务器生成密钥所存在的灵活性和安全性不高的问题,达到了有效提升密钥生成的灵活性和密钥安全性的技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的密钥系统的架构图;
图2是本申请提供的单一客户端生成私钥的密钥管理方法的方法流程图;
图3是本申请提供的实例1的密钥生成的交互示意图;
图4是本申请提供的实例1的密钥使用的交互示意图;
图5是本申请提供的实例1的密钥备份的交互示意图;
图6是本申请提供的实例1的密钥恢复的交互示意图;
图7是本申请提供的实例1的密钥刷新的交互示意图;
图8是本申请提供的实例2的密钥生成的交互示意图;
图9是本申请提供的实例2的密钥使用的交互示意图;
图10是本申请提供的实例2的密钥恢复的交互示意图;
图11是本申请提供的实例2的密钥刷新的交互示意图;
图12是本申请提供的实例3的密钥生成的交互示意图;
图13是本申请提供的实例3的密钥使用的交互示意图;
图14是本申请提供的实例3的密钥恢复的交互示意图;
图15是本申请提供的实例3的密钥刷新的交互示意图;
图16是本申请提供的计算机终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
考虑到现有的是由密钥服务器单方面生成密钥,导致灵活性和安全性较低的问题,在本例中,通过密钥系统的中的客户端生成完成的私钥和公钥,然后拆分为多个密钥分量之后分发给各个密钥服务器,在使用的时候,密钥服务器使用这些密钥分量进行签名、更新等操作,从而可以提升密钥生成的灵活性和密钥的安全性。
在本例中所提供的单一客户端生成私钥的密钥管理方法,应用于密钥系统中,如图1所示,该密钥系统包括:一个客户端和N个密钥服务器,其中,N为大于等于2的整数。
图2是本申请所述一种单一客户端生成私钥的密钥管理方法一个实施例的方法流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
具体的,如图2所示,本申请一种实施例提供的一种单一客户端生成私钥的密钥管理方法可以包括:
步骤201:客户端生成完整的目标私钥并根据所述目标私钥生成目标公钥;
其中,上述的客户端为密钥使用方,包括但不限于App、应用服务器等,客户端具体以哪种形式存在可以根据实际需要选择,本申请对此不作限定。上述的密钥服务器为密钥服务方,用于提供密钥相关服务。
具体的,客户端可以生成完整私钥SK(即,目标私钥),并基于私钥SK生成相关公钥PK(即,目标公钥)。
步骤202:客户端将所述目标私钥拆分为M个子私钥,M为大于等于N的整数;
客户端在生成目标公钥之后,可以将私钥SK拆分成n份:SK1~SKn,或者是将私钥SK拆分成n+1份:SK1~SKn+1。在对目标私钥进行拆分的时候,可以采用secret sharing(密钥共享)机制进行拆分,也可以采用其它的方式进行拆分,只要能实现私钥的有效拆分的方式都可以。
步骤203:客户端与所述N个密钥服务器建立安全信道;
客户端与密钥服务器之间可以通过KYC(Know your customer,确认身份程序)来建立安全通道,其中,确认身份程序可以包括但不限于以下至少之一:手机短信、邮箱验证码、账号密码、指纹、人脸、证书等。
步骤204:客户端通过所述安全信道,将所述M个子私钥中的前N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
在客户端生成完整的目标私钥的过程中,客户端可以对目标私钥进行备份存储,即,客户端对目标私钥进行备份,以便在需要进行密钥恢复的时候调用。
具体的,在恢复的时候,可以按照如下步骤进行恢复:
S1:客户端获取备份的私钥作为目标密钥;
S2:将所述目标密钥拆分为M个密钥分量;
S3:通过所述目标私钥对所述M个密钥分量中的前N个密钥分量进行签名,得到N个签名文件;
S4:将所述M个密钥分量中的前N个子密钥分量和所述N个签名文件,一一对应地下发给所述N个密钥服务器中的各个密钥服务器;
S5:N个密钥服务器中的各个密钥服务器根据所述目标公钥验证签名文件的有效性;
S6:在验证通过后,所述N个密钥服务器中的各个密钥服务器更新密钥分量并保存。
在将密钥或密钥分量通过各种形式保存下来的时候,可以采用但不限于采用以下方式之一进行保存:
1)数据库:通过数据库保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
2)密钥文件:通过导出密钥文件形式保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
3)HSM:通过硬件安全模块保存密钥或密钥分量,其中,密钥或密钥分量可以加 密保存;
4)助记词:将密钥活密钥分量通过转换生成一系列助记词进行保存。
在实际实现的时候,密钥系统中的客户端在进行私钥拆分的时候,可以是拆分成N份,即,每个密钥服务器得到一份密钥分量,也可以是拆分成N+1份,即,每个密钥服务器和客户端都得到一份密钥分量。
在M等于N的情况下,客户端将所述目标私钥拆分为M个子私钥之后,客户端可以根据所述M个子私钥,生成M个子私钥中各个子私钥对应的子公钥,得到M个子公钥,相应的,所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器,包括:客户端通过所述安全信道,将所述M个子私钥、所述N个子私钥对应的子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。即,在M等于N的情况下,还会根据M个子私钥,生成M个子私钥中各个子私钥对应的子公钥,得到M个子公钥。
在使用密钥进行签名的时候,可以通过多方MPC计算,具体的,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,使用密钥可以包括:
S1:客户端发起签名请求,其中,所述签名请求中携带有所述目标公钥和待签名数据;
S2:N个密钥服务器之间建立安全通道;
S3:N个密钥服务器通过所述安全信道,发起MPC计算得到,对所述待签名数据进行签名,并通过所述目标公钥验证签名的正确性。
其中,MPC(Secure Multi-Party Computation,安全多方计算)是在没有可信第三方的前提下,两个百万富翁如何不泄露自己的真实财产状况来比较谁更有钱。MPC可以在保证各方数据安全的同时,联合使用各方数据来达到特定的效果,从而充分发挥数据的价值。多个持有各自私有数据的参与方,共同执行一个计算逻辑计算逻辑(如,求最大值计算),并获得计算结果。但过程中,参与的每一方均不会泄漏各自数据的计算,被称之为MPC计算,MPC计算可以通过对协议的设计而不用依赖于可信第三方。安全多方计算可以抽象的理解为:两方分别拥有各自的私有数据,在不泄漏各自私有数据的情况下,能够计算出关于公共函数的结果。整个计算完成时,只有计算结果对双方可知,且双方均不知对方的数据以及计算过程的中间数据。
在M等于N的情况下,且通过多方MPC进行密钥更新的情况下,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,进行密钥更新可以包括:
S1:客户端发起密钥刷新请求;
S2:N个密钥服务器通过所述安全信道,发起MPC计算得到基于目标私钥拆分的N个子更新密钥,通过所述更新私钥对所述N个子更新密钥进行签名,得到N个签名私钥,将所述N个签名私钥和N个子更新密钥一一对应地下发给所述N个密钥服务器中的各个密钥服务器;
S3:N个密钥服务器通过所述目标公钥验证接收到的签名私钥是否有效,在确定有效的情况下,更新并存储接收到的子更新密钥。
在M等于N+1且采用多方MPC计算的时候,使用密钥进行签名,可以包括:
S1:客户端发起签名请求,其中,所述签名请求中携带有所述目标公钥和待签名数据;
S2:N个密钥服务器和所述客户端之间建立安全通道;
S3:N个密钥服务器和所述客户端通过所述安全信道,发起MPC计算,对所述待签名数据进行签名,并通过所述目标公钥验证签名的正确性。
在M等于N+1且采用多方MPC计算的时候,进行密钥更新,可以包括:
S1:客户端发起密钥刷新请求;
S2:N个密钥服务器和所述客户端之间建立安全通道;
S3:N个密钥服务器和所述客户端通过所述安全信道,发起MPC计算得到基于目标私钥拆分的M个子更新私钥,通过所述更新私钥对所述M个子更新私钥进行签名,得到M个签名私钥,将所述M个签名私钥和M个子更新私钥一一对应地下发给所述N个密钥服务器中的各个密钥服务器和所述客户端;
S4:N个密钥服务器和所述客户端通过所述目标公钥验证接收到的签名私钥是否有效,在确定有效的情况下,更新并存储接收到的子更新私钥。
在M等于N且采用两方MPC计算的时候,使用密钥进行签名,可以包括:
S1:客户端发起签名请求,其中,所述签名请求中携带有所述目标公钥和待签名数据;
S2:从所述N个密钥服务器中选择两个密钥服务器作为MPC计算方;
具体的,在选取MPC计算方的时候可以采用随机选取的方式,也可以是按照预设算 法等选择的方式,具体采用哪种方式选取MPC计算方可以根据实际需要和情况确定,本申请对此不作限定。
S3:N个密钥服务器中除MPC计算方之外的各个密钥服务器将自身对应的子私钥拆分为第一子私钥和第二子私钥,并通过密钥服务器之间建立的安全信道将第一私钥传送至MPC计算方中的第一密钥服务器,将第二子私钥传送至MPC计算方中的第二密钥服务器;
S4:第一密钥服务器和所述第二密钥服务器通过密钥服务器之间建立的安全信道发起MPC计算,对所述待签名数据进行签名;
S5:将签名后的数据发送至所述客户端和所述N个密钥服务器中除MPC计算方之外的各个密钥服务器。
在M等于N且采用两方MPC计算的时候,进行密钥更新可以包括:
S1:客户端发起密钥刷新请求;
S2:从所述N个密钥服务器中选择两个密钥服务器作为MPC计算方;
S3:N个密钥服务器中除MPC计算方之外的各个密钥服务器将自身对应的子私钥拆分为第一子私钥和第二子私钥,并通过密钥服务器之间建立的安全信道将第一私钥传送至MPC计算方中的第一密钥服务器,将第二子私钥传送至MPC计算方中的第二密钥服务器;
S4:第一密钥服务器和所述第二密钥服务器通过密钥服务器之间建立的安全信道发起MPC计算得到基于目标私钥拆分的N个子更新密钥,并对N个子更新密钥进行签名,得到N个签名私钥,;
S5:第一密钥服务器和所述第二密钥服务器将N个子更新密钥及N个签名私钥,一一对应地下发给所述N个密钥服务器中除MPC计算方之外的各个密钥服务器;
S6:N个密钥服务器中除MPC计算方之外的各个密钥服务器验证接收到的签名私钥是否正确,在确定正确的情况下,更新并存储接收到的子更新私钥。
在上例中,由密钥系统中唯一的客户端生成完整的目标私钥和目标公钥,并将目标私钥拆分为多个子私钥,基于建立的安全信道分发给密钥系统的各个服务器,因每个服务器获取和存储的是私钥的一部分,因此在后续的使用和更新过程中,完成的私钥是不会被生成的,保证了私钥的安全性。通过上述方式解决现有的密钥系统由密钥服务器生成密钥所存在的灵活性和安全性不高的问题,达到了有效提升密钥生成的灵活性和密钥安全性的技术效果。
下面结合几个具体实例对上述方法进行说明,然而,值得注意的是,这几个具体实例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
实例1:
在本例中,提供了一种基于安全两方计算通过客户端生成密钥,多个服务端保管的密钥管理方法,即,单个客户端生成私钥并拆分成多个分量分别下发至多个服务端,通过两方MPC,使用多个服务端计算签名,通过备份私钥,进行刷新多个服务端分量,通过两方MPC,刷新多个服务端分量。
对这种情境下的密钥生成、使用、存储、备份、恢复、刷新等操作说明如下:
1)生成:
如图3所示,可以包括如下步骤:
S1:客户端与密钥服务器通过KYC完成双向认证,并下发认证材料完成注册流程;
S2:客户端生成完整私钥SK,并基于私钥SK生成相关公钥PK。通过secret sharing将私钥SK拆分成n份:SK1~SKn,并通过SK1~SKn生成PK1~PKn;
S3:客户端与服务端通过下发的认证材料鉴权并建立安全信道,客户端分别向密钥服务器1~n下发对应分量,例如:下发SK1、PK1、PK至密钥服务器2;下发SK2、PK2、PK至密钥服务器2;以此类推,下发SKn、PKn、PK至密钥服务器n;
S4:密钥服务器1~n分别保存自己的密钥分量,完成密钥生成流程。其中,密钥服务器分别保存一部分密钥分量。
2)使用:
如图4所示,可以包括如下步骤:
S1:客户端发起签名请求,并提供公钥PK作为唯一标识以及待签名数据;
S2:服务端选择两台服务器作为MPC计算方,假设选择密钥服务器1和密钥服务器2作为MPC计算方;
S3:密钥服务器1~n通过KYC完成双向认证并建立安全信道,获取待签名信息及客户端公钥及签名,验证公钥签名是否正确。然后将SK3拆分成SK3-1、SK3-2,将SK3-1传给密钥服务器1、SK3-2传给密钥服务器2。以此类推,SKn拆分成SKn-1、SKn-2,将SKn-1传给密钥服务器1、SKn-2传给密钥服务器2;
S4:密钥服务器1、2通过安全信道发起MPC计算:通过密钥分量SK1、SK2、SK3-1~n-1、SK3-2~n-2计算出私钥SK,并通过私钥SK对待签名数据进行签名,并将签名返回给客户端与密钥服务器。因为整个过程是完整的MPC计算,故私钥SK实际上并 没有真正生成过(不管是计算过程中,还是使用过程中),SK1~n均没有在计算交互过程中出现(即没有在网络层传输SK1~n用于计算)。
3)存储:
将密钥或密钥分量通过各种形式保存下来,具体的,可以采用但不限于以下形式之一进行存储:
数据库:通过数据库保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
密钥文件:通过导出密钥文件形式保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
HSM:通过硬件安全模块保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
助记词:将密钥活密钥分量通过转换生成一系列助记词进行保存;
二维码:通过密钥或密钥分量生成对应二维码进行保存,其中密钥或密钥分量可以加密保存。
4)备份:
如图5所示,在客户端生成私钥SK的过程中,直接对私钥SK进行备份保存,可以采用上述的存储形式之一进行备份。
5)恢复:
如图6所示,可以包括如下步骤:
S1:通过备份方式获取备份密钥,使用备份密钥SK通过secret sharing拆分成n份密钥分量。使用私钥SK对1~n份密钥分量分别进行签名,得到签名S1~Sn;
S2:客户端与密钥服务器通过KYC完成双向认证并建立安全信道,客户端分别向密钥服务器1~n下发对应分量,例如:下发SK1、S1至密钥服务器1;下发SK2、S2至密钥服务器2;以此类推,下发SKn、Sn至密钥服务器n;
S3:密钥服务器分别通过之前存储的公钥PK验证自身收到的签名分量的有效性,若验证通过,则更新密钥分量并保存。
6)刷新:
如图7所示,可以包括如下步骤:
S1:客户端发起刷新密钥请求;
S2:服务端选择两台服务器作为MPC计算方,假设选择密钥服务器1和密钥服务器2;
S3:密钥服务器1~n通过KYC建立安全信道,将SK3拆分成SK3-1、SK3-2,将 SK3-1传给密钥服务器1、SK3-2传给密钥服务器2。以此类推,SKn拆分成SKn-1、SKn-2,将SKn-1传给密钥服务器1、SKn-2传给密钥服务器2;
S4:密钥服务器1、2通过安全信道发起MPC计算:通过密钥分量SK1、SK2、SK3-1~n-1、SK3-2~n-2计算出私钥SK,并通过私钥SK进行secret sharing生成新的SK1~n。并对新的SK1~n进行签名。将SK1~SKn及其签名分别下发给对应的密钥服务器。因为整个过程是完整的MPC计算,因此私钥SK实际上并没有真正生成过(不管是计算过程中,还是使用过程中),SK1~n均没有在计算交互过程中出现(即没有在网络层传输SK1~n用于计算);
S5:密钥服务器在收到相关信息后,通过签名S验证下发的SK的正确性,若验证通过,则保存相关信息,具体的,密钥服务器可以根据之前存储的公钥PK,对下发的SK1~SKn及其签名(如密钥服务器1获取的是SK1及其SK1的签名;密钥服务器2获取的是SK2及其SK2的签名,以此类推)进行验签操作,确认签名真实性后进行更新分量操作。
实例2:
在本例中,提供了一种基于安全多方计算通过客户端生成密钥,多个服务端保管的密钥管理方法,即,单个客户端生成私钥并拆分成多个分量分别下发至多个服务端,通过MPC,使用多个服务端计算签名,通过备份私钥,刷新多个服务端分量,通过MPC,刷新多个服务端分量。
对这种情境下的密钥生成、使用、存储、备份、恢复、刷新等操作说明如下:
1)生成:
如图8所示,可以包括如下步骤:
S1:客户端与密钥服务器通过KYC完成双向认证,并下发认证材料完成注册流程;
S2:客户端生成完整私钥SK,并基于私钥SK生成相关公钥PK。通过secret sharing将私钥SK拆分成n份:SK1~SKn;
S3:客户端与服务端通过下发的认证材料鉴权并建立安全信道,客户端分别向密钥服务器1~n下发对应分量,例如:下发SK1、PK至密钥服务器1;下发SK2、PK至密钥服务器2;以此类推,下发SKn、PK至密钥服务器n;
S4:密钥服务器1~n分别保存自己的密钥分量,完成密钥生成流程。其中,密钥服务器分别保存一部分密钥分量。
2)使用:
如图9所示,可以包括如下步骤:
S1:客户端发起签名请求,并提供公钥PK作为唯一标识以及待签名数据;
S2:密钥服务器之间通过KYC完成双向认证并建立安全信道;
S3:密钥服务器通过安全信道发起MPC计算:对待签名数据进行签名操作,并通过PK公钥验证签名的正确性。
3)存储:
将密钥或密钥分量通过各种形式保存下来,具体的,可以采用但不限于以下形式之一进行存储:
数据库:通过数据库保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
密钥文件:通过导出密钥文件形式保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
HSM:通过硬件安全模块保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
助记词:将密钥活密钥分量通过转换生成一系列助记词进行保存;
二维码:通过密钥或密钥分量生成对应二维码进行保存,其中密钥或密钥分量可以加密保存。
4)备份:
在客户端生成私钥SK生成过程中,直接对私钥SK进行备份保存,可以采用上述的存储形式之一进行备份。
5)恢复:
如图10所示,可以包括如下步骤:
S1:客户端通过备份方式获取备份密钥,使用备份密钥SK通过secret sharing拆分成n份密钥分量,使用私钥SK对n份密钥分量分别进行签名,得到签名S1~Sn;
S2:客户端与各密钥服务器通过KYC完成双向认证并建立安全信道,客户端分别向密钥服务器1~n下发对应分量,例如:下发SK1、S1至密钥服务器1;下发SK2、S2至密钥服务器2;以此类推,下发SKn、Sn至密钥服务器n;
S3:密钥服务器分别通过之前存储的公钥PK验证自身收到的签名分量的有效性,如果验证通过,则更新密钥分量并保存。例如:密钥服务器1,收到的是SK1及SK1的签名。密钥服务器1通过之前保存的PK对SK1及SK1的签名进行验签,若验证签名通过,则确认是由客户端下发的私钥分量,进行更新分量操作。
6)刷新:
如图11所示,可以包括如下步骤:
S1:客户端发起刷新密钥请求;
S2:密钥服务器之间通过KYC完成双向认证并建立安全信道,发起MPC计算:生成私钥SK,并通过secret sharing算法生成SK1~SKn,使用SK对SK1~SKn进行签名,生成签名S1~Sn。将签名分别下发给不同的密钥服务器,例如:下发SK1、S1至密钥服务器1;下发SK2、S2至密钥服务器2;以此类推,下发SKn、Sn至密钥服务器n。因为整个过程是完整的MPC计算,因此,私钥SK实际上并没有真正生成过(不管是计算过程中,还是使用过程中)。
S3:各个密钥服务器通过之前存储的公钥PK验证自身收到的签名分量签名有效性,如果有效,则更新并保存密钥分量。
实例3:
在本例中,提供了一种基于安全多方计算通过客户端生成密钥,多个服务端一个客户端保管的密钥管理方法,即,单个客户端生成私钥并拆分成多个分量分别下发至多个服务端,通过MPC,使用客户端和多个服务端计算签名,通过备份私钥,刷新客户端与多个服务端分量的过程,通过MPC,刷新客户端与多个服务端分量。
对这种情境下的密钥生成、使用、存储、备份、恢复、刷新等操作说明如下:
1)生成:
如图12所示,可以包括如下步骤:
S1:客户端与密钥服务器通过KYC完成双向认证,并下发认证材料完成注册流程;
S2:客户端生成完整私钥SK,并基于私钥SK生成相关公钥PK,通过secret sharing将私钥SK拆分成n+1份:SK1~SKn+1,并将密钥分量SKn+1保存至客户端;
S3:客户端与服务端通过下发的认证材料鉴权并建立安全信道,客户端分别向密钥服务器1~n下发对应分量,例如:下发SK1、PK至密钥服务器1;下发SK2、PK至密钥服务器2;以此类推,下发SKn、PK至密钥服务器n;
S4:密钥服务器1~n分别保存自己的密钥分量,完成密钥生成流程,其中,客户端与密钥服务器分别保存一部分密钥分量。
2)使用:
如图13所示,可以包括如下步骤:
S1:客户端发起签名请求,并提供公钥PK作为唯一标识以及待签名数据;
S2:客户端与密钥服务器通过KYC完成双向认证并建立安全信道;
S3:客户端与密钥服务器之间通过安全信道发起MPC计算:对待签名数据进行签名操作,并通过PK公钥验证签名正确性。
3)存储:
将密钥或密钥分量通过各种形式保存下来,具体的,可以采用但不限于以下形式之一进行存储:
数据库:通过数据库保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
密钥文件:通过导出密钥文件形式保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
HSM:通过硬件安全模块保存密钥或密钥分量,其中密钥或密钥分量可以加密保存;
助记词:将密钥活密钥分量通过转换生成一系列助记词进行保存;
二维码:通过密钥或密钥分量生成对应二维码进行保存,其中密钥或密钥分量可以加密保存。
4)备份:
在客户端生成私钥SK生成过程中,直接对私钥SK进行备份保存。
5)恢复:
如图14所示,可以包括如下步骤:
S1:客户端通过备份方式获取备份密钥,使用备份密钥SK通过secret sharing拆分成n+1份密钥分量,并保存第n+1份。使用私钥SK对前n份密钥分量分别进行签名,得到签名S1~Sn;
S2:客户端与密钥服务器通过KYC完成双向认证并建立安全信道,客户端分别向密钥服务器1~n下发对应分量,例如:下发SK1、S1至密钥服务器1;下发SK2、S2至密钥服务器2;以此类推,下发SKn、Sn至密钥服务器n;
S3:密钥服务器分别通过之前存储的公钥PK验证自身收到的签名分量的有效性,如果验证通过,则更新密钥分量并保存。
6)刷新:
如图15所示,可以包括如下步骤:
S1:客户端或密钥服务器发起刷新密钥请求,通过KYC完成双向认证并建立安全信道;
S2:客户端与密钥服务器通过安全信道发起MPC计算:生成私钥SK,并通过secret sharing算法生成SK1~SKn+1,使用SK对SK1~SKn+1进行签名,生成签名S1~Sn+1。将签名分别下发给不同的密钥服务器,例如:下发SK1、S1至密钥服务器1;下发SK2、S2至密钥服务器2;以此类推,下发SKn、Sn至密钥服务器n;SKn+1、Sn+1至客户端。因为整个过程是完整的MPC计算,因此,私钥SK实际上并没有真正生成过(不管是计算过程中,还是使用过程中)。
S3:各个密钥服务器、客户端通过之前存储的公钥PK验证自身收到的签名分量的有效性,如果有效,则更新并保存密钥分量。
本申请上述实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图16是本发明实施例的一种单一客户端生成私钥的密钥管理方法的计算机终端的硬件结构框图。如图16所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图16所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图16中所示更多或者更少的组件,或者具有与图16所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的单一客户端生成私钥的密钥管理方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的单一客户端生成私钥的密钥管理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在软件层面,上述装置位于客户端中,可以包括:
生成模块,用于生成完整的目标私钥并根据所述目标私钥生成目标公钥;
拆分模块,用于将所述目标私钥拆分为M个子私钥,M为大于等于N的整数;
建立模块,用于与所述N个密钥服务器建立安全信道;
下发模块,用于通过所述安全信道,将所述M个子私钥中的前N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
本申请的实施例还提供能够实现上述实施例中的单一客户端生成私钥的密钥管理方法中全部步骤的一种电子设备的具体实施方式,所述电子设备具体包括如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的的单一客户端生成私钥的密钥管理方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤1:客户端生成完整的目标私钥并根据所述目标私钥生成目标公钥;
步骤2:客户端将所述目标私钥拆分为M个子私钥,M为大于等于N的整数;
步骤3:客户端与所述N个密钥服务器建立安全信道;
步骤4:客户端通过所述安全信道,将所述M个子私钥中的前N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
从上述描述可知,本申请实施例提供的单一客户端生成私钥的密钥管理方法,由密钥系统中唯一的客户端生成完整的目标私钥和目标公钥,并将目标私钥拆分为多个子私钥,基于建立的安全信道分发给密钥系统的各个服务器,因每个服务器获取和存储的是私钥的一部分,因此在后续的使用和更新过程中,完成的私钥是不会被生成的,保证了私钥的安全性。通过上述方式解决现有的密钥系统由密钥服务器生成密钥所存在的灵活性和安全性不高的问题,达到了有效提升密钥生成的灵活性和密钥安全性的技术效果。
本申请的实施例还提供能够实现上述实施例中的单一客户端生成私钥的密钥管理方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的单一客户端生成私钥的密钥管理方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤1:客户端生成完整的目标私钥并根据所述目标私钥生成目标公钥;
步骤2:客户端将所述目标私钥拆分为M个子私钥,M为大于等于N的整数;
步骤3:客户端与所述N个密钥服务器建立安全信道;
步骤4:客户端通过所述安全信道,将所述M个子私钥中的前N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
从上述描述可知,本申请实施例提供的单一客户端生成私钥的密钥管理方法,由密钥系统中唯一的客户端生成完整的目标私钥和目标公钥,并将目标私钥拆分为多个子私钥,基于建立的安全信道分发给密钥系统的各个服务器,因每个服务器获取和存储的是私钥的一部分,因此在后续的使用和更新过程中,完成的私钥是不会被生成的,保证了私钥的安全性。通过上述方式解决现有的密钥系统由密钥服务器生成密钥所存在的灵活性和安全性不高的问题,达到了有效提升密钥生成的灵活性和密钥安全性的技术效果。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品 执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或 多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分 互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。

Claims (13)

  1. 一种单一客户端生成私钥的密钥管理方法,应用于密钥系统中,该密钥系统包括:一个客户端和N个密钥服务器,其中,N为大于等于2的整数,其特征在于,所述方法包括:
    所述客户端生成完整的目标私钥并根据所述目标私钥生成目标公钥;
    所述客户端将所述目标私钥拆分为M个子私钥,M为大于等于N的整数;
    所述客户端与所述N个密钥服务器建立安全信道;
    所述客户端通过所述安全信道,将所述M个子私钥中的前N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
  2. 根据权利要求1所述的方法,其特征在于,在所述客户端生成完整的目标私钥之后,还包括:
    所述客户端对所述目标私钥进行备份存储。
  3. 根据权利要求2所述的方法,其特征在于,在所述客户端生成完整的目标私钥之后,还包括:
    所述客户端获取备份的私钥作为目标密钥;
    将所述目标密钥拆分为M个密钥分量;
    通过所述目标私钥对所述M个密钥分量中的前N个密钥分量进行签名,得到N个签名文件;
    将所述M个密钥分量中的前N个子密钥分量和所述N个签名文件,一一对应地下发给所述N个密钥服务器中的各个密钥服务器;
    所述N个密钥服务器中的各个密钥服务器根据所述目标公钥验证签名文件的有效性;
    在验证通过后,所述N个密钥服务器中的各个密钥服务器更新密钥分量并保存。
  4. 根据权利要求1至3中任一项所述的方法,其特征在于,所述客户端将所述目标私钥拆分为M个子私钥之后,还包括:
    所述客户端根据所述M个子私钥,生成M个子私钥中各个子私钥对应的子公钥,得到M个子公钥,其中,M等于N;
    相应的,所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器,包括:
    所述客户端通过所述安全信道,将所述M个子私钥、所述N个子私钥对应的子私 钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器。
  5. 根据权利要求4所述的方法,其特征在于,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
    所述客户端发起签名请求,其中,所述签名请求中携带有所述目标公钥和待签名数据;
    所述N个密钥服务器之间建立安全通道;
    所述N个密钥服务器通过所述安全信道,发起MPC计算,对所述待签名数据进行签名,并通过所述目标公钥验证签名的正确性。
  6. 根据权利要求4所述的方法,其特征在于,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
    所述客户端发起密钥刷新请求;
    所述N个密钥服务器通过所述安全信道,发起MPC计算得到更新私钥,并将所述更新私钥拆分为N个子更新密钥,通过所述更新私钥对所述N个子更新密钥进行签名,得到N个签名私钥,将所述N个签名私钥和N个子更新密钥一一对应地下发给所述N个密钥服务器中的各个密钥服务器;
    所述N个密钥服务器通过所述目标公钥验证接收到的签名私钥是否有效,在确定有效的情况下,更新并存储接收到的子更新密钥。
  7. 根据权利要求1至3中任一项所述的方法,其特征在于,M等于N+1,所述M个子私钥中除N个子私钥之外的一个子私钥为所述客户端对应的子私钥。
  8. 根据权利要求7所述的方法,其特征在于,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
    所述客户端发起签名请求,其中,所述签名请求中携带有所述目标公钥和待签名数据;
    所述N个密钥服务器和所述客户端之间建立安全通道;
    所述N个密钥服务器和所述客户端通过所述安全信道,发起MPC计算,对所述待签名数据进行签名,并通过所述目标公钥验证签名的正确性。
  9. 根据权利要求7所述的方法,其特征在于,在所述客户端通过所述安全信道,将 所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
    所述客户端发起密钥刷新请求;
    所述N个密钥服务器和所述客户端之间建立安全通道;
    所述N个密钥服务器和所述客户端通过所述安全信道,发起MPC计算得到基于所述目标私钥拆分的M个子更新私钥,对所述M个子更新私钥进行签名,得到M个签名私钥,将所述M个签名私钥和M个子更新私钥一一对应地下发给所述N个密钥服务器中的各个密钥服务器和所述客户端;
    所述N个密钥服务器和所述客户端通过所述目标公钥验证接收到的签名私钥是否有效,在确定有效的情况下,更新并存储接收到的子更新私钥。
  10. 根据权利要求1所述的方法,其特征在于,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
    所述客户端发起签名请求,其中,所述签名请求中携带有所述目标公钥和待签名数据;
    从所述N个密钥服务器中选择两个密钥服务器作为MPC计算方;
    所述N个密钥服务器中除MPC计算方之外的各个密钥服务器将自身对应的子私钥拆分为第一子私钥和第二子私钥,并通过密钥服务器之间建立的安全信道将第一私钥传送至MPC计算方中的第一密钥服务器,将第二子私钥传送至MPC计算方中的第二密钥服务器;
    所述第一密钥服务器和所述第二密钥服务器通过密钥服务器之间建立的安全信道发起MPC计算,对所述待签名数据进行签名;
    将签名后的数据发送至所述客户端和所述N个密钥服务器中除MPC计算方之外的各个密钥服务器。
  11. 根据权利要求1所述的方法,其特征在于,在所述客户端通过所述安全信道,将所述M个子私钥中的N个子私钥和所述目标公钥,一一对应地下发给所述N个密钥服务器中的各个密钥服务器之后,还包括:
    所述客户端发起密钥刷新请求;
    从所述N个密钥服务器中选择两个密钥服务器作为MPC计算方;
    所述N个密钥服务器中除MPC计算方之外的各个密钥服务器将自身对应的子私钥 拆分为第一子私钥和第二子私钥,并通过密钥服务器之间建立的安全信道将第一私钥传送至MPC计算方中的第一密钥服务器,将第二子私钥传送至MPC计算方中的第二密钥服务器;
    所述第一密钥服务器和所述第二密钥服务器通过密钥服务器之间建立的安全信道发起MPC计算得到基于所述目标私钥拆分的N个子更新密钥,并对N个子更新密钥进行签名,得到N个签名私钥;
    所述第一密钥服务器和所述第二密钥服务器将N个子更新密钥及N个签名私钥,一一对应地下发给所述N个密钥服务器中除MPC计算方之外的各个密钥服务器;
    所述N个密钥服务器中除MPC计算方之外的各个密钥服务器验证接收到的签名私钥是否正确,在确定正确的情况下,更新并存储接收到的子更新私钥。
  12. 一种电子设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至11中任一项所述方法的步骤。
  13. 一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现权利要求1至11中任一项所述方法的步骤。
PCT/CN2019/076581 2019-02-28 2019-02-28 单一客户端生成私钥的密钥管理方法、电子设备 WO2020172885A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/076581 WO2020172885A1 (zh) 2019-02-28 2019-02-28 单一客户端生成私钥的密钥管理方法、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/076581 WO2020172885A1 (zh) 2019-02-28 2019-02-28 单一客户端生成私钥的密钥管理方法、电子设备

Publications (1)

Publication Number Publication Date
WO2020172885A1 true WO2020172885A1 (zh) 2020-09-03

Family

ID=72238223

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/076581 WO2020172885A1 (zh) 2019-02-28 2019-02-28 单一客户端生成私钥的密钥管理方法、电子设备

Country Status (1)

Country Link
WO (1) WO2020172885A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102957534A (zh) * 2011-08-19 2013-03-06 国民技术股份有限公司 一种多终端统一身份认证的方法及系统
US20170223008A1 (en) * 2016-02-02 2017-08-03 International Business Machines Corporation System and method for generating a server-assisted strong password from a weak secret
CN107154921A (zh) * 2016-03-03 2017-09-12 阿里巴巴集团控股有限公司 共管账户的授权方法和装置、共管账户的认证方法和装置
CN107623569A (zh) * 2017-09-30 2018-01-23 矩阵元技术(深圳)有限公司 基于秘密共享技术的区块链密钥托管和恢复方法、装置
CN108683509A (zh) * 2018-05-15 2018-10-19 北京创世智链信息技术研究院 一种基于区块链的安全交易方法、装置及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102957534A (zh) * 2011-08-19 2013-03-06 国民技术股份有限公司 一种多终端统一身份认证的方法及系统
US20170223008A1 (en) * 2016-02-02 2017-08-03 International Business Machines Corporation System and method for generating a server-assisted strong password from a weak secret
CN107154921A (zh) * 2016-03-03 2017-09-12 阿里巴巴集团控股有限公司 共管账户的授权方法和装置、共管账户的认证方法和装置
CN107623569A (zh) * 2017-09-30 2018-01-23 矩阵元技术(深圳)有限公司 基于秘密共享技术的区块链密钥托管和恢复方法、装置
CN108683509A (zh) * 2018-05-15 2018-10-19 北京创世智链信息技术研究院 一种基于区块链的安全交易方法、装置及系统

Similar Documents

Publication Publication Date Title
CN109714165B (zh) 客户端各自生成密钥分量的密钥管理方法和电子设备
CN109309569B (zh) 基于sm2算法的协同签名的方法、装置及存储介质
Mahmood et al. Pairing based anonymous and secure key agreement protocol for smart grid edge computing infrastructure
EP3850786B1 (en) System and method for secure multi-party computation based blockchain transactions
CN109787762B (zh) 服务器各自生成密钥分量的密钥管理方法、电子设备
CN111682938A (zh) 面向中心化移动定位系统的三方可认证密钥协商方法
US11616643B2 (en) System and method of management of a shared cryptographic account
CN113609508A (zh) 一种基于区块链的联邦学习方法、装置、设备及存储介质
CN109818754B (zh) 客户端为多个客户端和单一服务器生成密钥的方法、设备
CN105049434A (zh) 一种对等网络环境下的身份认证方法与加密通信方法
CN114070614A (zh) 身份认证方法、装置、设备、存储介质和计算机程序产品
CN111698238A (zh) 电力物联网终端层设备密钥的管理方法、系统及存储介质
CN109981591B (zh) 单一客户端生成私钥的密钥管理方法、电子设备
Nam et al. Password-only authenticated three-party key exchange with provable security in the standard model
CN109818753B (zh) 择一客户端为多客户端多服务器生成密钥的方法和设备
CN113344705A (zh) 基于区块链的数据共享方法和系统
CN117353912A (zh) 基于双线性映射的三方隐私集合交集基数计算方法及系统
Zhong et al. Authentication and key agreement based on anonymous identity for peer-to-peer cloud
CN110363528B (zh) 协同地址的生成、交易签名方法及装置、存储介质
CN111709053A (zh) 基于松散耦合交易网络的作业方法及作业装置
WO2020172885A1 (zh) 单一客户端生成私钥的密钥管理方法、电子设备
CN111460463A (zh) 电子存证保存和公证方法、装置、设备及存储介质
WO2020172882A1 (zh) 择一客户端为多客户端多服务器生成密钥的方法和设备
WO2020172889A1 (zh) 客户端各自生成密钥分量的密钥管理方法和电子设备
WO2020172883A1 (zh) 多客户端多服务器联合生成密钥的方法和电子设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19916793

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19916793

Country of ref document: EP

Kind code of ref document: A1