WO2022116175A1 - 数字签名的生成方法、装置和服务器 - Google Patents

数字签名的生成方法、装置和服务器 Download PDF

Info

Publication number
WO2022116175A1
WO2022116175A1 PCT/CN2020/133998 CN2020133998W WO2022116175A1 WO 2022116175 A1 WO2022116175 A1 WO 2022116175A1 CN 2020133998 W CN2020133998 W CN 2020133998W WO 2022116175 A1 WO2022116175 A1 WO 2022116175A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
signature
node
node server
node servers
Prior art date
Application number
PCT/CN2020/133998
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/CN2020/133998 priority Critical patent/WO2022116175A1/zh
Publication of WO2022116175A1 publication Critical patent/WO2022116175A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data

Definitions

  • This specification belongs to the technical field of digital signatures, and in particular relates to a method, device and server for generating digital signatures.
  • This specification provides a method, device and server for generating a digital signature, so as to efficiently and securely realize multi-party threshold joint signature without revealing the private key data held by each node server.
  • This specification provides a method for generating a digital signature.
  • the method is applied to a first node server among multiple node servers, and the method includes:
  • a first random number, a second random number and a first temporary private key are generated; wherein, the joint signature request at least carries the target information to be signed;
  • a preset protocol rule encrypting the first random number with the second random number and the first public key to obtain the first ciphertext data; using the first temporary private key to generate a first temporary commitment document about the first temporary public key; and Generating a first certification file about the first ciphertext data and the first temporary commitment document; wherein, the preset protocol rules are obtained according to the ElGamal encryption algorithm and the group encryption algorithm;
  • the second intermediate data and the third intermediate data are obtained by interacting with each node server in the other node servers with the preset first data respectively.
  • the first part of the signature in the target digital signature of the target information is generated by interacting with other node servers with the preset second data;
  • the first random number, the target information, the second intermediate data and the first part of the signature, the second part of the target digital signature of the target information is generated by performing a preset third data interaction with other node servers.
  • a target digital signature of target information is generated according to the first partial signature and the second partial signature.
  • the second intermediate data and third intermediate data including:
  • the other node servers According to preset protocol rules and the first data group broadcast by the other node servers, generate and send corresponding first type parameter data, second ciphertext data and third type parameter data to each node server in the other node servers ciphertext data; and receive the first type of parameter data, the second ciphertext data and the third ciphertext data corresponding to the first node server generated and sent by the other node servers;
  • the first verification is performed using the first random number, the threshold sharding public key of other node servers, and the second type of parameter data and the third type of parameter data corresponding to other node servers;
  • first verification If it is determined that the first verification is passed, use the first random number, the first temporary private key, and the second type parameter data and the third type parameter data corresponding to other node servers to generate the first intermediate data of the first node server. data and second intermediate data;
  • the third intermediate data is generated according to the first intermediate data of the first node server and the first intermediate data broadcasted by other node servers.
  • Ciphertext data and third ciphertext data including:
  • the corresponding first type parameter data, the second ciphertext data and the third ciphertext data are generated and sent to the current node server among the other node servers in the following manner:
  • the preset protocol rules and the first data group broadcast by the other node servers using the first ciphertext data broadcast by the current node server, through homomorphic encryption processing, obtain the second ciphertext data corresponding to the current node server and the third ciphertext data;
  • a second data group containing at least the first type of parameter data, the second ciphertext data and the third ciphertext data corresponding to the current node server is sent to the current node server.
  • the first part of the signature in the target digital signature of the target information is generated by performing preset second data interaction with other node servers, including:
  • the first part of the signature in the target digital signature of the target information is generated according to the preset protocol rule, the third intermediate data, and the first temporary public key of the other node server.
  • the third intermediate data, and the first temporary public key of the other node server the first part of the signature in the target digital signature of the target information is generated, including:
  • the abscissa value of the first target data is determined as the first part of the signature.
  • calculating the first target data according to a preset protocol rule, the third intermediate data, and the first temporary public key of the other node server includes:
  • R is the first target data
  • is the third intermediate data
  • ⁇ j is the first temporary public key of the node server numbered j
  • j is the number of the node server
  • S is the set of node servers participating in the joint signature.
  • the target information of the target information is generated by interacting with other node servers with the preset third data.
  • the second part of the digital signature includes:
  • the first mediation commitment file is opened, so that the other node servers can obtain the first mediation data and the second mediation data of the first node server;
  • the second part of the signature in the target digital signature of the target information is generated according to the component data of the second signature of the first node server and the component data of the second signature broadcast by other node servers.
  • the method further includes:
  • the preset protocol rules use the component data of the second signature, the first partial signature, the signature public key, the first intermediary data and the second intermediary data to construct the third intermediary data and the fourth intermediary data;
  • the second mediation commitment file is opened, so that the other node servers can obtain the third mediation data and the fourth mediation data of the first node server;
  • the component data of the second signature of the first node server is broadcasted to the outside world; and the component data of the second signature broadcasted by other node servers is received.
  • the component data of the second signature of the first node server is constructed according to the first random number, the target information, the second intermediate data and the first partial signature, including:
  • the component data of the second signature of the first node server is constructed according to the following formula:
  • s i is the component data of the second signature of the first node server
  • i is the serial number of the first node server
  • ki is the first random number of the first node server
  • m is the target information
  • ⁇ i is the first node
  • r is the signature of the first part.
  • generating a first random number, a second random number, and a first temporary private key in response to the joint signature request includes:
  • a first random number, a second random number and a first temporary private key are generated.
  • the method before generating the first random number, the second random number and the first temporary private key in response to the joint signature request, the method further includes:
  • the first part of the commitment file is opened, so that the other node servers can obtain the first part of the signature public key of the first node server;
  • the threshold shard private key and the threshold shard public key of the first node server are generated according to the preset protocol rules, the preset threshold threshold, and the first part of the signature public key, and the threshold is broadcasted to the outside world.
  • Shard public key is generated according to the preset protocol rules, the preset threshold threshold, and the first part of the signature public key, and the threshold is broadcasted to the outside world.
  • the first public key includes: public key data based on the ElGamal encryption algorithm and public key data based on the group encryption algorithm;
  • the first private key includes: the private key data based on the ElGamal encryption algorithm and the public key data based on the ElGamal encryption algorithm Private key data for the group encryption algorithm.
  • the threshold fragmentation private key and the threshold fragmentation public key of the first node server are generated according to a preset protocol rule, a preset threshold threshold, and the first part of the signature public key, including:
  • the threshold fragmentation private key of the first node server is generated
  • the threshold sharding public key of the first node server is generated.
  • This specification also provides a device for generating a digital signature, including:
  • a first generating module configured to generate a first random number, a second random number and a first temporary private key in response to a joint signature request; wherein the joint signature request at least carries target information to be signed;
  • the first processing module is used for encrypting the first random number with the second random number and the first public key according to the preset protocol rules to obtain the first ciphertext data; using the first temporary private key to generate the information about the first temporary public key; the first temporary commitment document; and generate the first certification file about the first ciphertext data and the first temporary commitment document; wherein, the preset protocol rules are obtained according to the ElGamal encryption algorithm and the group encryption algorithm;
  • a broadcasting module configured to broadcast the first data group containing the first ciphertext data, the first temporary commitment file and the first certification file to the outside world; and receive the first data group broadcast by other node servers;
  • the second processing module is configured to perform preset first data interaction with each node server in the other node servers according to the preset protocol rules and the first data group broadcast by the other node servers, so as to obtain the second data group.
  • intermediate data and third intermediate data are configured to perform preset first data interaction with each node server in the other node servers according to the preset protocol rules and the first data group broadcast by the other node servers, so as to obtain the second data group.
  • the third processing module is configured to, according to the preset protocol rules and the third intermediate data, perform preset second data interaction with other node servers to generate the first part of the signature in the target digital signature of the target information;
  • the fourth processing module is configured to interact with other node servers with preset third data to generate the target information according to the preset protocol rules, the first random number, the target information, the second intermediate data and the first part of the signature.
  • the second part of the signature in the target digital signature is configured to interact with other node servers with preset third data to generate the target information according to the preset protocol rules, the first random number, the target information, the second intermediate data and the first part of the signature.
  • the second part of the signature in the target digital signature
  • the second generation module is configured to generate a target digital signature of the target information according to the first partial signature and the second partial signature.
  • the present specification also provides a server, including a processor and a memory for storing instructions executable by the processor, and when the processor executes the instructions, the processor implements the relevant steps of the above-mentioned method for generating a digital signature.
  • the present specification also provides a computer-readable storage medium on which computer instructions are stored, and when the instructions are executed, the relevant steps of the above-mentioned method for generating a digital signature are implemented.
  • This specification provides a method, device, and server for generating a digital signature. Based on the method, when multiple node servers perform a joint signature, any one of the multiple node servers participating in the joint signature can be used as the first node server to generate the first node server.
  • the first part of the signature and the second part of the signature in the target digital signature of the target information are generated in stages, so that a complete target digital signature about the target information can be obtained.
  • the multi-party threshold joint signature can be efficiently and safely realized without revealing the private key data held by each node server.
  • the technical problems of large amount of calculation, low processing efficiency, large communication bandwidth and security risks existing in the existing method when performing multi-party threshold joint signature are effectively solved.
  • FIG. 1 is a schematic diagram of an embodiment of the structural composition of a system to which a method for generating a digital signature provided by an embodiment of the present specification is applied;
  • FIG. 2 is a schematic flowchart of a method for generating a digital signature provided by an embodiment of this specification
  • FIG. 3 is a schematic diagram of an embodiment of applying a method for generating a digital signature provided by an embodiment of this specification in an example scenario
  • FIG. 4 is a schematic diagram of an embodiment of applying a method for generating a digital signature provided by an embodiment of this specification in an example scenario
  • FIG. 5 is a schematic diagram of the structural composition of a server provided by an embodiment of this specification.
  • FIG. 6 is a schematic structural diagram of a device for generating a digital signature provided by an embodiment of the present specification
  • FIG. 7 is a schematic diagram of an embodiment of applying a method for generating a digital signature provided by an embodiment of this specification in an example scenario.
  • this specification can comprehensively utilize the ElGamal encryption algorithm and the group encryption algorithm, as well as the specific characteristics and confidentiality requirements in the multi-party threshold joint signature scenario, to construct a new set of protocol rules. That is, the preset protocol rules (also called Promise Sigma protocol).
  • the preset protocol rules also called Promise Sigma protocol.
  • each node server for example, the first node server
  • each node server among the multiple node servers participating in the signature can perform multiple data interactions with other node servers according to the above-mentioned preset protocol rules, so as to generate the target in stages and safely.
  • the first part of the signature and the second part of the digital signature can be used to obtain a complete target digital signature about the target information. Therefore, the multi-party threshold joint signature can be efficiently and safely realized without revealing the private key data held by each node server.
  • the embodiments of this specification provide a method for generating a digital signature, which can be specifically applied to a method including multiple node servers (for example, node server 1, node server 2, node server 3, . . . node server i , ... in the system of node server n).
  • node server 1, node server 2, node server 3, . . . node server i , ... in the system of node server n For details, please refer to Figure 1.
  • Different node servers in the system can be connected by wire or wireless, and specific data exchange has been carried out.
  • each node server in the plurality of node servers can respectively generate a first random number, a second random number and a first temporary private key in response to a joint signature request carrying target information to be signed.
  • each node server in the multiple node servers can encrypt the first random number with the second random number and the first public key according to the preset protocol rules to obtain the first ciphertext data; use the first temporary private key to generate the first ciphertext data; A first temporary commitment file of a temporary public key; and generate a first certification file about the first ciphertext data and the first temporary commitment file; wherein, the preset protocol rule is obtained according to the ElGamal encryption algorithm and the group encryption algorithm of.
  • each node server in the plurality of node servers can broadcast the first data group including the first ciphertext data, the first temporary commitment file and the first certification file to the outside world; at the same time, it receives broadcasts from other node servers that include other data groups.
  • the first data group of the first ciphertext data, the first temporary commitment file and the first proof file served by the node can broadcast the first data group including the first ciphertext data, the first temporary commitment file and the first proof file served by the node.
  • Each node server in the plurality of node servers can interact with each node server in the other node servers according to the preset protocol rules and the first data group broadcast by the other node servers, respectively, to exchange the preset first data with each node server in the other node servers.
  • the second intermediate data and the third intermediate data are obtained.
  • each node server in the plurality of node servers may, according to the preset protocol rules and the third intermediate data, perform preset second data interaction with other node servers to generate the target information in the target digital signature of the target information.
  • the first part of the signature is the first part of the signature.
  • each node server in the plurality of node servers can interact with other node servers through preset third data interaction according to the preset protocol rules, the first random number, the target information, the second intermediate data and the first part of the signature. to generate the second part of the signature in the target digital signature of the target information.
  • the multiple node servers may generate the target digital signature of the target information according to the first partial signature and the second partial signature.
  • any node server among the plurality of node servers can set the generated target digital signature on the target information to complete the joint signature for the target information.
  • the node server may specifically include a background server applied to the business platform side and capable of implementing functions such as data transmission and data processing.
  • the node server may be, for example, an electronic device with data computing, storage, and network interaction functions.
  • the node server may also be a software program running in the electronic device to provide support for data processing, storage and network interaction.
  • the number of servers included in the node server is not specifically limited.
  • the node server may specifically be one server, or several servers, or a server cluster formed by several servers.
  • each node server can efficiently and safely realize multi-party threshold joint signature without revealing the private key data held.
  • the technical problems of large amount of calculation, low processing efficiency, large communication bandwidth and security risks existing in the existing method when performing multi-party threshold joint signature are solved.
  • an embodiment of this specification provides a method for generating a digital signature.
  • the method is specifically applied to the server side of the first node.
  • the method may include the following contents.
  • S201 In response to a joint signature request, generate a first random number, a second random number and a first temporary private key; wherein the joint signature request at least carries target information to be signed.
  • the above-mentioned method for generating a digital signature may be specifically applied to the first node server (the number of the node server may be denoted as i, and the corresponding first node server may be denoted as p i ).
  • the above-mentioned first node server may be specifically understood as any node server among the plurality of node servers participating in the joint signature.
  • the above-mentioned multiple node servers participating in the joint signature perform joint signature based on the multi-party threshold signature rule.
  • the above-mentioned multi-party threshold signature rule may refer to: multiple (for example, n) node servers (or members) form a signature group (or signature system), and the signature group has a pair of group public keys and group private keys; specifically When there are more than a threshold (for example, t) number of node servers in the group participating in the signature, the above-mentioned multiple node servers participating in the signature can use the group private key to sign on behalf of the group, and any node server Signature verification can be performed using the group public key.
  • the above joint signature request can specifically be understood as the participation of node servers in a requesting group to jointly generate a digital signature for the target information through cooperation to complete the request data for the joint signature operation on the target information.
  • the above joint signature request may carry target information to be signed.
  • the above target information may specifically be a transaction order in a transaction data processing scenario, an electronic securities in an electronic securities processing scenario, or a notification message to be delivered in a communication interaction scenario.
  • the target information listed above is only a schematic illustration.
  • the above target information to be signed may also include other types of data information. This specification does not limit this.
  • the above-mentioned joint signature request may be specifically initiated by the first node server, or may be initiated by any node server in the group except the first node server, or may be a third-party device other than the group, for example It is initiated by the terminal equipment deployed on the user side.
  • the first node server may respond to the joint signature request, and obtain the target information (which may be denoted as m) carried in the joint signature request; and generate the first random number of the first node server according to the preset protocol rule (may denoted as k i ), the second random number (may be denoted as ri ) and the first temporary private key (may be denoted as ⁇ i ) .
  • the above-mentioned preset protocol rule can be specifically understood as a new protocol rule designed and constructed that integrates the ElGamal encryption algorithm and the group encryption algorithm, and combines the scenario characteristics of multi-party threshold joint signatures. Specifically, it can be recorded as: Promise Sigma protocol (rule).
  • the above-mentioned ElGamal encryption algorithm can be specifically understood as an asymmetric encryption algorithm based on Diffie-Hellman key exchange in cryptography.
  • the above-mentioned group encryption algorithm (also called group-based encryption technology) can be specifically understood as a data encryption algorithm designed for a system in which multiple group members participate together to assist in data processing.
  • the first node server can start from the first value range (which can be denoted as: Z q , or the value used in FIG. 3 ). ) randomly select a value as the first random number, which can be expressed as: k i ⁇ Z q .
  • the above-mentioned first numerical range may specifically be greater than 0 and less than or equal to q, where q is a prime number.
  • the first node server may randomly select a value from the first value range as the first temporary private key, which may be expressed as: ⁇ i ⁇ Z q .
  • the first node server can use the second value range (which can be denoted as [S])
  • a value is randomly selected as the second random number, which can be expressed as: r i ⁇ [S].
  • the above S can be specifically expressed as a group encryption neutron group An approximate upper bound on the order of .
  • the first node server while the first node server generates the first random number, the second random number and the first temporary private key of the first node server in response to the joint signature request in the above-mentioned manner, other node servers (which can be denoted as ⁇ p j ⁇ j ⁇ i ) can each generate their own first random number, second random number and first temporary private key in the same manner.
  • the above-mentioned other node servers may specifically be understood as node servers other than the first node server participating in the joint signature.
  • the set composed of multiple node servers (including: the first node server and other node servers) participating in this joint signature in the signature group may be denoted as S.
  • the number of node servers included in S is greater than the preset threshold (which can be denoted as t), i ⁇ S and n is the total number of node servers in the signature group.
  • node servers participating in the joint signature in the above set D respectively hold their own threshold shard private key (x) and the first private key (sk), and disclose their own threshold shard public key to other node servers. (pk), the first public key (X). The acquisition of the above data will be described in detail later.
  • S202 According to a preset protocol rule, encrypt the first random number with the second random number and the first public key to obtain first ciphertext data; use the first temporary private key to generate a first temporary commitment document about the first temporary public key ; and generate a first certification file about the first ciphertext data and the first temporary commitment document; wherein, the preset protocol rules are obtained according to the ElGamal encryption algorithm and the group encryption algorithm.
  • the first node server may encrypt the first random number by using the second random number and the first public key (which may be denoted as pk i ) according to preset protocol rules , obtain the corresponding first ciphertext data (can be recorded as ).
  • the first node server may use the first temporary private key to generate a first temporary commitment file (which may be denoted as c i ) about the first temporary public key according to a preset protocol rule.
  • c i ⁇ Com( ⁇ i P).
  • P may also be denoted as G
  • G can be specifically expressed as a generator whose order is a prime number on the elliptic curve based on the ECDSA digital signature.
  • the above-mentioned digital signature can also be called a public key digital signature, which can be specifically understood as a digital string that can only be generated by a signer who holds information and cannot be forged by others.
  • the digital string is also a valid proof of the authenticity of the message sent by the signer of the message.
  • ECDSA Elliptic Curve Digital Signature Algorithm, Elliptic Curve Digital Signature Algorithm
  • ECC Elliptic Curve Cryptography
  • DSA Digital Signature Algorithm
  • the digital signature involved in this embodiment may specifically be an ECDSA digital signature.
  • ECDSA digital signature listed above is only a schematic illustration, and according to the specific application scenarios and the specific characteristics of the signature algorithm used, it is not limited to adapt the generation method of the digital signature provided in this specification. Applied to other types of digital signatures.
  • the first node server may also generate a NIZK proof (may be denoted as ⁇ i ) file about the first ciphertext data and the first temporary commitment file according to a preset protocol rule, as the first certified documents.
  • a NIZK proof (may be denoted as ⁇ i ) file about the first ciphertext data and the first temporary commitment file according to a preset protocol rule, as the first certified documents.
  • the above NIZK proof can be specifically understood as a non-interactive zero-knowledge proof generated using the Promise Sigma protocol.
  • other node servers may generate their own first ciphertext data, first temporary commitment file, and first certification file in the same manner.
  • S203 Broadcast the first data group containing the first ciphertext data, the first temporary commitment file and the first certification file to the outside world; and receive the first data group broadcast by other node servers.
  • the first node server may obtain the first data group of the first node server by combining the first ciphertext data, the first temporary commitment file and the first certification file, for example, ( ci , ⁇ i ). Further, the above-mentioned first data group may be broadcasted in the group. Correspondingly, other node servers may receive the first data group broadcast by the first node server.
  • other node servers can also generate and broadcast the first data group of the first data group including the first ciphertext data of its own party, the first temporary commitment file and the first certification file.
  • the first node server may receive the first data group broadcast by other node servers.
  • S204 According to the preset protocol rule and the first data group broadcasted by the other node servers, perform preset first data interaction with each node server in the other node servers to obtain the second intermediate data and the third Intermediate data.
  • the above-mentioned first data group broadcast by the other node servers according to the preset protocol rules is performed by performing preset first data interaction with each node server in the other node servers, so as to obtain the second data group.
  • the intermediate data and the third intermediate data may include the following contents.
  • S1 According to the preset protocol rules and the first data group broadcast by the other node servers, generate and send corresponding first type parameter data, second ciphertext data and corresponding node servers in the other node servers to each node server third ciphertext data; and receiving the first type of parameter data, the second ciphertext data and the third ciphertext data generated and sent by the other node servers and corresponding to the first node server.
  • the first node service when the first node service is specifically implemented, according to preset protocol rules, it can conduct one-to-one data interaction with other node servers through two-party channels, so as to generate and send data to each node in the other node servers.
  • the server sends the corresponding first type parameter data, the second ciphertext data and the third ciphertext data; and receives the first type parameter data, the second ciphertext and the corresponding first node server generated and sent by other node servers data and the third ciphertext data.
  • the first type of parameter data, first parameter data, first parameter data, first parameter data, first -node server in the other node servers in the other node servers will be generated.
  • the second ciphertext data and the third ciphertext data when specifically implemented, may include:
  • the corresponding first type parameter data, the second ciphertext data and the third ciphertext data are generated and sent to the current node server among the other node servers in the following manner:
  • S1-1 Generate a third random number and a fourth random number for the current node server, and generate the first type of parameter data corresponding to the current node server according to the fourth random number;
  • the first ciphertext data broadcast by the current node server is used to obtain the second data corresponding to the current node server through homomorphic encryption processing.
  • ciphertext data and third ciphertext data are used to obtain the second data corresponding to the current node server through homomorphic encryption processing.
  • S1-3 Send a second data group including at least the first type of parameter data, the second ciphertext data and the third ciphertext data corresponding to the current node server to the current node server.
  • any one node server numbered j among other node servers is taken as an example for the current node server (which may be denoted as p j ) for specific description.
  • the first node server can use the first ciphertext data of the current node server in the first data group broadcast by the current node server according to the preset protocol rules By performing the corresponding homomorphic encryption processing, the second ciphertext data of the first node server for the current node server (which can be recorded as ) and the third ciphertext data (can be recorded as ).
  • the first node server can combine the second data group of the above-mentioned first type parameter data, the second ciphertext data and the third ciphertext data to obtain the corresponding second data group, for example, ( B j,i ); and send the second data group to the corresponding current node server.
  • the sent second data group may further include new random numbers t j,i and tt j,i used when calculating the second ciphertext data and the third ciphertext data.
  • other node servers may also generate a second data group for the first node server, and send the second data group to the first node server through a two-way channel.
  • the first node server can receive and obtain the second data group for itself that is generated and sent by other node servers.
  • S2 Decrypt the received second ciphertext data and third ciphertext data to obtain second type parameter data and third type parameter data corresponding to other node servers respectively.
  • the current node server numbered j decrypts the second ciphertext data and the third ciphertext data sent by the first node server as an example.
  • the current node server can use the first random number k j held by itself and the new ciphertext data after the second ciphertext data and the third ciphertext data
  • the first node server and other node servers can decrypt the second ciphertext data and the third data sent from other node servers, respectively, to obtain the corresponding second type parameter data and third type parameter data. .
  • S3 According to a preset protocol rule, use the first random number, the threshold sharding public key of other node servers, and the second type parameter data and the third type parameter data corresponding to the other node servers to perform the first verification.
  • the current node server numbered j performs the first verification on the first node server as an example.
  • the current node server can check the equation according to the first random number held by itself, the threshold sharding public key of the first node server, and the second type parameter data and the third type parameter data corresponding to the first node server. Whether it is established, to perform the first verification:
  • k j is the first random number of the current node server
  • Wi is the threshold sharding public key of the first node server
  • ⁇ j,i is the third type of parameter data corresponding to the first node server (also referred to as The third type of parameter data of the current node server for the first node server)
  • B j,i is the first type of parameter data (also referred to as the first type of parameter data of the first node server for the current node server).
  • the threshold sharding public key of the first node server is generated based on the threshold sharding private key held and kept secret by the first node server, and the threshold sharding public key of the first node server is publicly disclosed.
  • each node server can respectively perform the first verification on the node server sending the second data group to itself.
  • the first random number, the first temporary private key, and the second type corresponding to other node servers can be used according to the following formula
  • the parameter data and the third type of parameter data are calculated to obtain the first intermediate data and the second intermediate data of the first node server:
  • ⁇ i is the first intermediate data of the first node server
  • ⁇ i is the second intermediate data of the first node server
  • node servers can calculate and obtain their respective first intermediate data and second intermediate data respectively.
  • S5 Broadcast the first intermediate data externally; and receive the first intermediate data broadcast by other node servers.
  • the first node server may broadcast its own first intermediate data to the outside world, and correspondingly, other node servers may receive the first intermediate data of the first node server.
  • other node servers can broadcast their own first intermediate data to the outside world, and correspondingly, the first node server can receive the first intermediate data broadcasted by other node servers.
  • S6 Generate third intermediate data according to the first intermediate data of the first node server and the first intermediate data broadcast by other node servers.
  • the first node server may accumulate the first intermediate data broadcasted by other node servers and its own first intermediate data to obtain corresponding third intermediate data.
  • the first node server may first propose a first certification file from the first data group, and report to the other node servers according to the first certification file. It is verified whether the first temporary commitment file and the first ciphertext data in the broadcasted first data group conform to the preset protocol rules. Similarly, other node servers will perform the same verification. If there is a first certificate file in the first data set that fails to pass the verification, the subsequent data processing is terminated. In this way, the data security of the participants can be more effectively protected.
  • S205 According to the preset protocol rule and the third intermediate data, by performing preset second data interaction with other node servers, to generate the first part of the signature in the target digital signature of the target information.
  • the first part of the signature in the target digital signature of the target information is generated by performing preset second data interaction with other node servers, specifically When implemented, the following can be included.
  • S1 Open the first temporary commitment file according to the preset protocol rule, so that other node servers can obtain the first temporary public key of the first node server.
  • the first node server can open the first temporary commitment file c i in the first data group broadcast before, so that other node servers can obtain the first node server
  • the first temporary public key of : ⁇ j ⁇ i P.
  • S2 Generate and broadcast a first temporary certification file about the first temporary public key.
  • the first node server may also generate a NIZK certification file about the first temporary public key as the first temporary certification file, which is denoted as ⁇ i ⁇ .
  • the first temporary certification file is used to prove that there is a ⁇ i such that there is a first temporary public key ⁇ i P.
  • the first node server may broadcast the first temporary certification file externally.
  • node servers can generate and broadcast the corresponding first temporary certification file to the outside world.
  • the first node server and other node servers can respectively obtain the first temporary public key of each node server; at the same time, they can also respectively receive the first temporary commitment file and the first temporary commitment file sent by other node servers.
  • Temporary supporting documents For example, the first node server can receive the first temporary commitment file of other node servers, which can be denoted as ⁇ c i ⁇ j ⁇ S,j ⁇ i , and the first temporary proof file, which can be denoted as ⁇ j ⁇ ⁇ j ⁇ S,j ⁇ i .
  • S4 Perform the second verification according to the first temporary public key of the other node server and the first temporary certification file broadcasted by the other node server.
  • the first node server may verify the first temporary public key according to the first temporary public key of other node servers, as well as the corresponding first temporary certification file and the first temporary commitment file, to determine whether it is based on the first temporary public key. Preset protocol rules are generated.
  • other node servers can also verify the first temporary public key of other node servers.
  • the first part of the signature in the target digital signature of the target information is generated according to the preset protocol rule, the third intermediate data, and the first temporary public key of the other node server.
  • Can include:
  • S5-1 Calculate the first target data according to the preset protocol rule, the third intermediate data, and the first temporary public key of the other node server;
  • S5-2 Determine the abscissa value of the first target data as the first part of the signature.
  • the above-mentioned calculation of the first target data according to the preset protocol rules, the third intermediate data, and the first temporary public keys of the other node servers may include:
  • R is the first target data
  • is the third intermediate data
  • ⁇ j is the first temporary public key of the node server numbered j
  • j is the number of the node server
  • S is the set of node servers participating in the joint signature.
  • the abscissa value of the first target data is determined as the first part of the signature.
  • the first target data R may be split into ordinate values corresponding to the ordinate y, and Corresponding to the abscissa value of the abscissa x, the above abscissa value can be determined as the first part of the signature, which can be denoted as r. Specifically, you can also refer to Phase 4 in FIG. 3 .
  • a hash value of the first target data may also be calculated by using a hash function as the first partial signature.
  • node servers can calculate and obtain the first part of the signature respectively.
  • S206 According to the preset protocol rule, the first random number, the target information, the second intermediate data and the first part of the signature, by performing preset third data interaction with other node servers, to generate the target digital signature of the target information.
  • the second part of the signature According to the preset protocol rule, the first random number, the target information, the second intermediate data and the first part of the signature, by performing preset third data interaction with other node servers, to generate the target digital signature of the target information. The second part of the signature.
  • the preset third data interaction is performed with other node servers to generate the target information.
  • the second part of the signature in the target digital signature may include the following content.
  • S1 Construct component data of the second signature of the first node server according to the first random number, the target information, the second intermediate data and the first partial signature.
  • the component data of the second signature of the first node server is constructed according to the first random number, the target information, the second intermediate data, and the first partial signature.
  • the component data may include:
  • the component data of the second signature of the first node server is constructed according to the following formula:
  • s i is the component data of the second signature of the first node server
  • i is the serial number of the first node server
  • ki is the first random number of the first node server
  • m is the target information
  • ⁇ i is the first node
  • r is the signature of the first part.
  • node servers can separately calculate and obtain the component data of their respective second signatures.
  • S2 Construct the first mediation data and the second mediation data according to the component data of the second signature and the first partial signature according to the preset protocol rule.
  • the first node server may construct the first intermediate data and the second intermediate data of the first node server according to the following formula:
  • V i s i R+l i P
  • a i ⁇ i P
  • V i is the first intermediary data
  • a i is the second intermediary data
  • ⁇ i is the fifth random number
  • li is the sixth random number
  • R is the first target data.
  • the fifth random number and the sixth random number are generated in the following manner: ⁇ i , l i ⁇ Z q .
  • node servers can respectively construct and obtain their own first mediation data and second mediation data.
  • S3 Generate and broadcast a first intermediary commitment document about the first intermediary data and the second intermediary data.
  • the first intermediary commitment file (which can be denoted as c1 i ) may be generated in the following manner: c1 i ⁇ Com(V i , A i ) . And broadcast the first intermediary commitment document.
  • node servers can respectively generate and broadcast the corresponding first intermediary commitment file.
  • the first node server may open its own first intermediary commitment file c1 i when it receives all the first intermediary commitment files (for example, ⁇ c1 j ⁇ j ⁇ S, j ⁇ i ). , so that other node servers can obtain the first intermediary data and the second intermediary data of the first node server.
  • other node servers can open their own first intermediary commitment files respectively.
  • the first node server can obtain the first intermediary data and the second intermediary data of other node servers.
  • S5 Generate and broadcast a first intermediary certification file about the first intermediary data and the second intermediary data.
  • the first node server may also generate a NIZK certification file about the first mediation data and the second mediation data as the first mediation certification file, which may be denoted as ⁇ iVA .
  • the first node server may broadcast the first intermediary certification file to the outside.
  • node servers can generate and broadcast the corresponding first intermediary certification file.
  • S7 Perform a third verification according to the first intermediary data and the second intermediary data of the other node servers and the first intermediary certification file broadcasted by the other node servers.
  • the first node server may combine left and right zero-knowledge proofs to verify all Whether the received first intermediary data and second intermediary data, as well as related commitments and certifications are accurate.
  • node servers can also verify whether the received first intermediary data and second intermediary data, and related commitments and proofs are accurate in the same manner.
  • S9 Generate the second part of the signature in the target digital signature of the target information according to the component data of the second signature of the first node server and the component data of the second signature broadcast by other node servers.
  • the method may further include the following content during specific implementation.
  • S1 According to preset protocol rules, use the component data of the second signature, the first partial signature, the signature public key, the first intermediary data and the second intermediary data to construct the third intermediary data and the fourth intermediary data;
  • S2 Generate and broadcast a second intermediary commitment document about the third intermediary data and the fourth intermediary data;
  • S5 Perform fourth verification according to the third and fourth intermediary data of the other node servers and the third and fourth intermediary data of the first node server;
  • the component data of the second signature of the first node server is broadcasted to the outside world; and the component data of the second signature broadcasted by other node servers is received.
  • the component data of the second signature, the first partial signature, the signature public key, the first intermediary data and the second intermediary data are used to construct a third The mediation data and the fourth mediation data.
  • the first node server can construct the third mediation data and the fourth mediation data of the first node server according to the following formula:
  • U i is the third intermediary data of the first node server
  • Ti is the fourth intermediary data of the first node server
  • ⁇ i is the fifth random number
  • li is the sixth random number
  • Q is the signature public key.
  • the first node server may generate the second mediation commitment file (which may be denoted as c2 i ) regarding the third mediation data and the fourth mediation data in the following manner: c2 i ⁇ Com(U i ,T i ) ; and then broadcast the second intermediary commitment document.
  • the second mediation commitment file (which may be denoted as c2 i ) regarding the third mediation data and the fourth mediation data in the following manner: c2 i ⁇ Com(U i ,T i ) ; and then broadcast the second intermediary commitment document.
  • node servers can respectively generate and broadcast the corresponding second intermediary commitment file to the outside world.
  • the second mediation commitment file can be opened, so that other node servers can obtain the third mediation commitment file of the first node server data and fourth intermediary data.
  • other node servers can open their own second mediation commitment file, and the first node server can obtain third mediation data and fourth mediation data of other node servers.
  • node servers can respectively perform the fourth verification that they are responsible for. In the case that all the fourth verifications in charge of each node server pass, it is determined that the fourth verification is passed, and then the subsequent data processing can be continued. On the contrary, if at least one of the fourth verifications that each node server is responsible for fails, it is determined that the fourth verification fails, and subsequent data processing can be terminated.
  • the first node server may broadcast the component data of the second signature of the first node server to the outside world.
  • other node servers can broadcast their own component data of the second signature to the outside world.
  • other node servers may obtain component data of the second signature broadcast by the first node server, and the first node server may obtain component data of the second signature broadcast by other node servers.
  • the first node server can generate the first node in the target digital signature of the target information according to the following formula, according to the component data of the second signature of the first node server and the component data of the second signature broadcast by other node servers.
  • Two-part signature Two-part signature:
  • s is the signature of the second part.
  • S207 Generate a target digital signature of the target information according to the first partial signature and the second partial signature.
  • the first node server can obtain a complete digital signature by combining the first partial signature and the second partial signature, for example, (r, s) as the target digital signature of the target information.
  • the first node server may set the target digital signature on the target information.
  • other node servers may also generate the target digital signature in the above manner, and further, the target digital signature may be set on the target information.
  • any first node server among the multiple node servers participating in the joint signature may first generate a first random number, a second random number, and a first random number.
  • a temporary private key then according to the preset protocol rules that integrate the ElGamal encryption algorithm and the group encryption algorithm, use the above data to perform multiple data exchanges and verifications with other node servers to generate the target digital signature of the target information in stages.
  • the first part of the signature and the second part of the signature, and then the complete target digital signature about the target information can be obtained. Therefore, the multi-party threshold joint signature can be efficiently and safely realized without revealing the private key data held by each node server.
  • the technical problems of large amount of calculation, low processing efficiency, large communication bandwidth and security risks existing in the existing method when performing multi-party threshold joint signature are effectively solved.
  • the above-mentioned response to the joint signature request generates the first random number, the second random number and the first temporary private key.
  • the following contents may be included:
  • S2 Receive confirmation information broadcast by other node servers
  • the node servers that broadcast the confirmation information when it is determined that the number of node servers that broadcast the confirmation information is greater than a preset threshold (for example, t), it is determined that the number of joint signatures participating in the confirmation is valid, and then the node servers that send the confirmation information can be identified as valid. It is divided into a set of node servers, denoted as D, which triggers subsequent data processing. On the contrary, in the case that the number of node servers broadcasting confirmation information is less than or equal to the preset threshold, it is determined that the number of participating joint signatures is invalid, and subsequent data processing is not triggered.
  • a preset threshold for example, t
  • the secret key generation stage before generating the first random number, the second random number, and the first temporary private key in response to the joint signature request, in the secret key generation stage, please refer to FIG. 4 for details.
  • the following contents may also be included.
  • S1 Generate a first public key, a first private key, a first partial signature private key, and a first partial signature public key according to a preset protocol rule.
  • the first public key may specifically include: public key data based on the ElGamal encryption algorithm and public key data based on the group encryption algorithm;
  • the first private key may specifically include: private key data based on the ElGamal encryption algorithm key data and private key data based on the group encryption algorithm.
  • the first node server can generate public and private keys that respectively contain two kinds of public key data and two kinds of private key data by using the ElGamal encryption algorithm and the group encryption algorithm according to preset protocol rules. Yes, it can be written as (pk i , ski ) . Wherein, ski is the first private key, and pk i is the first public key.
  • the node server extracts a random number as the first part of the signature private key ui , for example, ui ⁇ Z q .
  • the upper order of the P elliptic curve is the generator of prime numbers.
  • other node servers can generate the first public key, the first private key, the first partial signature private key, and the first partial signature public key, respectively.
  • S2 Generate and broadcast a third data group containing the first part of the commitment document and the first public key about the first part of the signature public key.
  • the first node server may generate the first part of the commitment file kgci about the first part of the signed public key. Specifically, for example, kgc i ⁇ Com(u i P). Further, the first part of the commitment document and the first public key can be combined to obtain a third data set, for example, (pk i , kgc i ). And broadcast the third data group to the outside world.
  • node servers can generate and broadcast the third data set to the outside world.
  • the first node server may receive the third data group broadcast by other node servers, and correspondingly, the other node servers may receive the third data group broadcast by the first node server.
  • the first node server after receiving the third data group broadcasted by other node servers, the first node server can open its own first part of the commitment file, so that other node servers can obtain the first part of the first node server's signature public key.
  • other node servers can open their own first part of the commitment file, so that the first node server can obtain the first part of the other node servers' signature public keys.
  • the first node server may verify the first part of the commitment file in the third data group previously broadcast by the other node servers according to the obtained first part of the signed public key of the other node server, so as to determine the first part of the commitment file Whether it is accurate, when inaccuracy is detected, the subsequent data processing is terminated; when it is detected that all the first part of the commitment documents are accurate, it is determined that the fifth verification that the first node server is responsible for has passed.
  • the other node servers can respectively perform the fifth verification in charge.
  • the above-mentioned generation of the threshold shard private key and the threshold shard public key of the first node server according to the preset protocol rule, the preset threshold threshold, and the first part of the signature public key may include the following content.
  • S5-1 According to a preset protocol rule, construct a target polynomial whose number of times is a preset threshold threshold.
  • the first node server may construct the target polynomial in the following manner:
  • the coefficients a i and k are randomly selected values, q is a prime number, and X is an unknown number.
  • S5-2 Interact with other node servers according to the target polynomial to obtain threshold parameters of other node servers for the first node server.
  • the first node server may generate corresponding threshold parameters for each node server in the other node servers according to the above-mentioned target polynomial; and then send the threshold parameters to the node server through the two-way channel with the node server. Node server.
  • X can be set to be j
  • the above threshold parameters ⁇ i,j are separately sent to the current node server through the two-way channel. See Figure 4.
  • each node server can generate threshold parameters respectively, and send the threshold parameters to the corresponding node servers.
  • node servers can construct and broadcast the verification parameter sequence in the same way.
  • S5-3 Generate a threshold segment private key of the first node server according to the threshold parameters of the other node servers for the first node server.
  • the first node server may receive threshold parameters sent by other node servers, and correspondingly, other node servers may receive threshold parameters sent by the first node server.
  • the received threshold parameters may also be verified according to the received verification parameter sequence.
  • the first node server verifies the threshold parameter ⁇ j,i sent by the current node server with the number j as an example.
  • the accuracy of the threshold parameters ⁇ j,i can be verified by checking whether the following equation holds:
  • the verification fails, and subsequent data processing can be terminated.
  • the verification is passed, and subsequent data processing can be performed.
  • threshold sharding private key is kept by the generated node server itself, and will not be disclosed to the public.
  • S5-4 Generate a threshold segment public key of the first node server according to the threshold segment private key of the first node server.
  • node servers can generate and broadcast their respective threshold shard public keys and certification files of the threshold shard public keys.
  • each node server can receive the threshold shard public key and the certificate file of the threshold shard public key of all node servers.
  • each node server can perform verification according to the received threshold sharding public key and the certification file of the threshold sharding public key, so as to verify all the received certification files of the threshold sharding public key and the threshold sharding public key. Is it accurate. If there is at least one inaccuracy, the verification fails, and subsequent data processing is terminated, and if all are accurate, the verification passes.
  • each node server in the signature group can obtain and hold the private key of the threshold segment introduced with the multi-party threshold signature technology, and the public key of the threshold segment of other node servers, respectively.
  • the threshold fragmented public keys of the node servers that are greater than the preset threshold threshold number can be combined to obtain a complete signature public key Q.
  • the preprocessing described below may also be performed before entering the digital signature phase after completing the above key generation phase.
  • node servers may also perform preprocessing in the above manner to obtain the above relational data.
  • each node server participating in the joint signature can have the threshold shard private key held only by itself, and the threshold shard public key of each node server that satisfies the threshold signature relationship, so that subsequent digital signatures can be made. be ready.
  • any first node server among the multiple node servers participating in the joint signature can first generate the first node server.
  • a random number, a second random number and a first temporary private key can be generated in stages, so that a complete target digital signature about the target information can be obtained.
  • the multi-party threshold joint signature can be efficiently and safely realized without revealing the private key data held by each node server.
  • the technical problems of large amount of calculation, low processing efficiency, large communication bandwidth and security risks existing in the existing method when performing multi-party threshold joint signature are effectively solved.
  • Embodiments of this specification further provide a server, including a processor and a memory for storing instructions executable by the processor.
  • the processor may perform the following steps according to the instructions: in response to a joint signature request, generate a first random number, The second random number and the first temporary private key; wherein, the joint signature request carries at least the target information to be signed; according to the preset protocol rules, encrypting the first random number with the second random number and the first public key obtains the first random number.
  • a ciphertext data use the first temporary private key to generate a first temporary commitment file about the first temporary public key; and generate a first certification file about the first ciphertext data and the first temporary commitment file;
  • the preset The set protocol rules are obtained according to the ElGamal encryption algorithm and the group encryption algorithm; externally broadcast the first data group containing the first ciphertext data, the first temporary commitment file and the first certification file; and receive other node server broadcasts the first data group; according to the preset protocol rules, the first data group broadcast by the other node servers, through the preset first data interaction with each node server in the other node servers, to obtain the second intermediate data and third intermediate data; according to the preset protocol rules and the third intermediate data, the first part of the signature in the target digital signature of the target information is generated by performing preset second data interaction with other node servers; according to The preset protocol rule, the first random number, the target information, the second intermediate data and the first part of the signature, through the preset third data interaction with other node servers, to generate
  • the embodiment of this specification also provides another specific server, wherein the server includes a network communication port 501 , a processor 502 and a memory 503 , and the above structure is achieved by Internal cables are connected so that each structure can carry out specific data interaction.
  • the network communication port 501 can specifically be used to receive a joint signature request; wherein, the joint signature request carries at least target information to be signed.
  • the processor 502 can be specifically configured to respond to the joint signature request, generate a first random number, a second random number and a first temporary private key; according to preset protocol rules, use the second random number and the first public key to encrypt Obtaining the first ciphertext data with the first random number; using the first temporary private key to generate a first temporary commitment file about the first temporary public key; and generating a first certification file about the first ciphertext data and the first temporary commitment file ;
  • described preset protocol rule is obtained according to ElGamal encryption algorithm and group encryption algorithm; External broadcast contains the first data group of described first ciphertext data, the first temporary commitment file and the first certification file; and receive the first data group broadcast by other node servers; according to the preset protocol rules, the first data group broadcast by the other node servers, through the preset first data interaction with each node server in the other node servers respectively , to obtain the second intermediate data and the third intermediate data; according to the preset protocol rules and the third intermediate data, the preset second data interaction with other
  • the first part of the signature according to the preset protocol rules, the first random number, the target information, the second intermediate data and the first part of the signature, through the preset third data interaction with other node servers, to generate the target number of the target information
  • the second part of the signature the target digital signature of the target information is generated according to the first part of the signature and the second part of the signature.
  • the memory 503 may specifically be used to store corresponding instruction programs.
  • the network communication port 501 may be a virtual port bound with different communication protocols, so that different data can be sent or received.
  • the network communication port may be a port responsible for web data communication, a port responsible for FTP data communication, or a port responsible for mail data communication.
  • the network communication port may also be a physical communication interface or a communication chip.
  • it can be a wireless mobile network communication chip, such as GSM, CDMA, etc.; it can also be a Wifi chip; it can also be a Bluetooth chip.
  • the processor 502 may be implemented in any suitable manner.
  • a processor may take the form of, for example, a microprocessor or a processor and a computer readable medium storing computer readable program code (eg software or firmware) executable by the (micro)processor, logic gates, switches, application specific integrated circuits ( Application Specific Integrated Circuit, ASIC), programmable logic controller and embedded microcontroller form, etc.
  • computer readable program code eg software or firmware
  • the memory 503 may include multiple layers.
  • a digital system as long as it can store binary data, it can be a memory; in an integrated circuit, a circuit with a storage function that has no physical form is also called a memory , such as RAM, FIFO, etc.; in the system, the storage device with physical form is also called memory, such as memory stick, TF card, etc.
  • the embodiments of this specification also provide a computer storage medium based on the above-mentioned method for generating a digital signature, where the computer storage medium stores computer program instructions, and when the computer program instructions are executed, realizes: in response to a joint signature request, generating a first A random number, a second random number and a first temporary private key; wherein, the joint signature request carries at least the target information to be signed; according to preset protocol rules, the second random number and the first public key are used to encrypt the first Obtaining the first ciphertext data with a random number; using the first temporary private key to generate a first temporary commitment file about the first temporary public key; and generating a first certification file about the first ciphertext data and the first temporary commitment file; wherein , the preset protocol rules are obtained according to the ElGamal encryption algorithm and the group encryption algorithm; externally broadcast the first data group containing the first ciphertext data, the first temporary commitment document and the first certification file; and receive The first data group broadcast by other node servers;
  • Part of the signature according to the preset protocol rules, the first random number, the target information, the second intermediate data and the first part of the signature, through the preset third data interaction with other node servers, to generate the target information in the target digital signature.
  • the second part of the signature according to the first part of the signature and the second part of the signature, generate a target digital signature of the target information.
  • the above-mentioned storage medium includes but is not limited to random access memory (Random Access Memory, RAM), read-only memory (Read-Only Memory, ROM), cache (Cache), hard disk (Hard Disk Drive, HDD) Or a memory card (Memory Card).
  • the memory may be used to store computer program instructions.
  • the network communication unit may be an interface for performing network connection communication, which is set according to a standard specified by a communication protocol.
  • an embodiment of the present specification further provides an apparatus for generating a digital signature, and the apparatus may specifically include the following structural modules.
  • the first generating module 601 can specifically be used to generate a first random number, a second random number and a first temporary private key in response to a joint signature request; wherein, the joint signature request at least carries the target information to be signed;
  • the first processing module 602 can be specifically configured to encrypt the first random number with the second random number and the first public key according to the preset protocol rules to obtain the first ciphertext data; use the first temporary private key to generate information about the first temporary the first temporary commitment file of the public key; and generate the first certification file about the first ciphertext data and the first temporary commitment file; wherein, the preset protocol rules are obtained according to the ElGamal encryption algorithm and the group encryption algorithm;
  • the broadcasting module 603 can specifically be used to broadcast the first data group containing the first ciphertext data, the first temporary commitment file and the first certification file to the outside world; and receive the first data group broadcast by other node servers;
  • the second processing module 604 can be specifically configured to perform preset first data interaction with each node server in the other node servers according to the preset protocol rules and the first data group broadcast by the other node servers, to Obtain the second intermediate data and the third intermediate data;
  • the third processing module 605 can be specifically configured to generate the first part of the target digital signature of the target information by performing a preset second data interaction with other node servers according to the preset protocol rules and the third intermediate data. sign;
  • the fourth processing module 606 can be specifically configured to interact with other node servers through preset third data interaction according to preset protocol rules, the first random number, target information, the second intermediate data and the first part of the signature to generate The second part of the signature in the target digital signature of the target information;
  • the second generation module 607 may be specifically configured to generate a target digital signature of the target information according to the first partial signature and the second partial signature.
  • the units, devices or modules described in the above embodiments may be specifically implemented by computer chips or entities, or by products with certain functions.
  • the functions are divided into various modules and described respectively.
  • the functions of each module can be implemented in the same one or more software and/or hardware, and the modules that implement the same function can also be implemented by a combination of multiple sub-modules or sub-units.
  • the apparatus embodiments described above are only illustrative.
  • the division of the units is only a logical function division. In actual implementation, there may be other division methods.
  • multiple units or components may be combined or integrated. to another system, or some features can be ignored, or not implemented.
  • the shown or discussed mutual coupling or direct coupling or communication connection may be through some interfaces, indirect coupling or communication connection of devices or units, and may be in electrical, mechanical or other forms.
  • the digital signature generation device provided by the embodiments of this specification can efficiently and safely realize multi-party threshold joint signature without revealing the private key data held by each node server.
  • the technical problems of large amount of calculation, low processing efficiency, large communication bandwidth and security risks existing in the existing method when performing multi-party threshold joint signature are solved.
  • the method for generating a digital signature provided in this specification can be applied to implement a multi-party threshold ECDSA signature based on group encryption.
  • n members for example, node servers
  • the message can be completed safely and efficiently. legal signature.
  • [CCL+20] implements a multi-party threshold ECDSA signature scheme based on cluster encryption, but needs to rely on stronger and non-standard assumptions.
  • the digital signature generation method provided in this specification is applied, and the overall protocol framework of [CCL+20] and [GG18] is used to simplify the initialization process of the interaction in the [CCL+20] scheme, and Using the Promise Sigma protocol (that is, the preset protocol rules) to replace the validity proof of the group ciphertext in [CCL+20] can solve its performance bottleneck, reduce the amount of data processing, improve the efficiency of data processing, and efficiently realize the multi-party threshold joint sign.
  • the promised Sigma protocol that is, the preset protocol rules
  • the Promise Sigma protocol used in this scenario example is a Promise Sigma protocol with equal plaintext.
  • the equal plaintext may specifically refer to: the group encrypted plaintext is equal to the ElGamal encrypted plaintext.
  • the formal language description of the Promise Sigma protocol with equal plaintext is as follows:
  • the specific protocol execution process can be referred to as shown in FIG. 7 .
  • the Fiat-Shamir heuristic can also be used to convert the above-mentioned interactive protocol into a non-interactive protocol.
  • the multi-party threshold ECDSA signature When the multi-party threshold ECDSA signature is implemented based on the above protocol, it can be divided into two stages: the key generation stage and the signature stage.
  • the public-private key pair, the signature public key, and the signature private key of each signature participant required for the multi-party threshold ECDSA signature can be generated according to the above protocol ( share). Specifically, in this scenario example, it is a (t,n)-threshold scheme. There are a total of n participants. When more than t participants agree, a valid signature can be generated.
  • the specific process may include the generation of a public signature public key Q (eg, a signature public key); and the generation of a public signature public key threshold slice (eg, a threshold slice public key).
  • preprocessing can be performed first, and the target information m is signed using the information generated in the key generation stage.
  • the specific process may include generation and encryption of signature random numbers; ciphertext homomorphic operation, ciphertext decryption and verification (eg, verification); and signature (eg, target digital signature) generation.
  • this scheme provides a new protocol--Promise Sigma protocol, and applies it to the digital signature scheme, and designs a secure and efficient multi-party threshold ECDSA signature scheme. Compared with the existing schemes, the computational efficiency can be greatly improved, and the dependence of the existing schemes on stronger assumptions and non-standard assumptions is eliminated.
  • the controller in addition to implementing the controller in the form of pure computer-readable program code, the controller can be implemented as logic gates, switches, application-specific integrated circuits, programmable logic controllers and embedded devices by logically programming the method steps.
  • 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 therein for realizing various functions can also be regarded as a structure within the hardware component. Or even, the means for implementing various functions can be regarded as both a software module implementing a method and a structure within a hardware component.
  • program modules include routines, programs, objects, components, data structures, classes, etc. that perform particular tasks or implement particular abstract data types.
  • the specification can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
  • program modules may be located in both local and remote computer storage media including storage devices.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种数字签名的生成方法、装置和服务器。基于该方法,多个节点服务器在进行联合签名时,参与联合签名的多个节点服务器中的任意一个作为第一节点服务器可以先生成第一随机数、第二随机数和第一临时私钥;再根据综合了ElGamal加密算法和类群加密算法的预设的协议规则,利用上述数据与其他节点服务器进行多次的数据交互和验证,以分次生成目标信息的目标数字签名中的第一部分签名和第二部分签名,进而可以得到关于目标信息的完整的目标数字签名。从而能在不泄露各个节点服务器所各自持有的私钥数据的前提下,高效、安全地实现多方门限联合签名。

Description

数字签名的生成方法、装置和服务器 技术领域
本说明书属于数字签名技术领域,尤其涉及数字签名的生成方法、装置和服务器。
背景技术
随着互联网的发展,在许多应用场景(例如,基于区块链的电子证券处理场景等)中,对相关信息的处理往往会涉及到多个参与方,需要多于某一门限值数量的参与方共同协作参与才能够对该信息进行联合签名;同时,还要求在上述多方参与的联合签名过程中,要保护各个参与方的数据安全,避免向其他参与方泄露己方所持有的私钥数据。
目前,亟需一种能够在不泄露各个节点服务器的私钥数据的前提下,高效、安全地实现多方门限联合签名的方法。
发明内容
本说明书提供了一种数字签名的生成方法、装置和服务器,以能在不泄露各个节点服务器所各自持有的私钥数据的前提下,高效、安全地实现多方门限联合签名。
本说明书提供了一种数字签名的生成方法,所述方法应用于多个节点服务器中的第一节点服务器,所述方法包括:
响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥;其中,所述联合签名请求至少携带有待签名的目标信息;
根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;
对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;并接收其他节点服务器广播的第一数据组;
根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据;
根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名;
根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名;
根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
在一个实施例中,根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据,包括:
根据预设的协议规则、所述其他节点服务器广播的第一数据组,生成并向所述其他节点服务器中的各个节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据;并接收所述其他节点服务器生成并发送的与第一节点服务器相对应的第一类参数数据、第二密文数据和第三密文数据;
解密所接收到的第二密文数据和第三密文数据,得到与其他节点服务器分别对应的第二类参数据和第三类参数数据;
根据预设的协议规则,利用第一随机数、其他节点服务器的门限分片公钥,以及与其他节点服务器对应的第二类参数数据和第三类参数数据进行第一验证;
在确定第一验证通过的情况下,利用第一随机数、第一临时私钥,以及与其他节点服务器对应的第二类参数数据和第三类参数数据,生成第一节点服务器的第一中间数据和第二中间数据;
对外广播所述第一中间数据;并接收其他节点服务器广播的第一中间数据;
根据第一节点服务器的第一中间数据和其他节点服务器广播的第一中间数据,生成第三中间数据。
在一个实施例中,根据预设的协议规则、所述其他节点服务器广播的第一数据组,生成并向所述其他节点服务器中的各个节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据,包括:
根据预设的协议规则,按照以下方式生成并向所述其他节点服务器中的当前节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据:
生成针对当前节点服务器的第三随机数、第四随机数,并根据所述第四随机数,生成与当前节点服务器对应的第一类参数数据;
根据预设的协议规则和所述其他节点服务器广播的第一数据组,利用当前节点服务器广播的第一密文数据,通过同态加密处理,得到与当前节点服务器对应的第二密文数据和第三密文数据;
将至少包含有与当前节点服务器对应的第一类参数数据、第二密文数据和第三密文数据的第二数据组发送至当前节点服务器。
在一个实施例中,根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名,包括:
根据预设的协议规则,打开第一临时承诺文件,以使其他节点服务器获取第一节点服务器的第一临时公钥;
生成并对外广播关于所述第一临时公钥的第一临时证明文件;
获取其他节点服务器的第一临时公钥,以及其他节点服务器广播的第一临时证明文件;
根据所述其他节点服务器的第一临时公钥,以及其他节点服务器广播的第一临时证明文件,进行第二验证;
在确定第二验证通过的情况下,根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,生成目标信息的目标数字签名中的第一部分签名。
在一个实施例中,根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,生成目标信息的目标数字签名中的第一部分签名,包括:
根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,计算第一目标数据;
确定出第一目标数据的横坐标值,作为所述第一部分签名。
在一个实施例中,根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,计算第一目标数据,包括:
按照以下算式计算第一目标数据:
R=δ -1(∑ j∈SΓ j)
其中,R为第一目标数据,δ为第三中间数据,Γ j为编号为j的节点服务器的第一临时公钥,j为节点服务器的编号,S为参与联合签名的节点服务器的集合。
在一个实施例中,根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目 标数字签名中的第二部分签名,包括:
根据第一随机数、目标信息、第二中间数据和第一部分签名,构建第一节点服务器的第二签名的分量数据;
根据预设的协议规则,利用第二签名的分量数据、第一部分签名,构造第一中介数据和第二中介数据;
生成并对外广播关于所述第一中介数据和第二中介数据的第一中介承诺文件;
在确定接收到其他节点服务器广播的第一中介承诺文件的情况下,打开第一中介承诺文件,以使其他节点服务器获取第一节点服务器的第一中介数据和第二中介数据;
生成并对外广播关于所述第一中介数据和第二中介数据的第一中介证明文件;
获取其他节点服务器的第一中介数据和第二中介数据,以及其他节点服务器广播的第一中介证明文件;
根据所述其他节点服务器的第一中介数据和第二中介数据,以及其他节点服务器广播的第一中介证明文件,进行第三验证;
在确定第三验证通过的情况下,对外广播第一节点服务器的第二签名的分量数据;并接收其他节点服务器广播的第二签名的分量数据;
根据所述第一节点服务器的第二签名的分量数据、其他节点服务器广播的第二签名的分量数据,生成目标信息的目标数字签名中的第二部分签名。
在一个实施例中,在确定第三验证通过之后,所述方法还包括:
根据预设的协议规则,利用第二签名的分量数据、第一部分签名、签名公钥、第一中介数据和第二中介数据,构造第三中介数据和第四中介数据;
生成并对外广播关于所述第三中介数据和第四中介数据的第二中介承诺文件;
在确定接收到其他节点服务器广播的第二中介承诺文件的情况下,打开第二中介承诺文件,以使其他节点服务器获取第一节点服务器的第三中介数据和第四中介数据;
获取其他节点服务器的第三中介数据和第四中介数据;
根据所述其他节点服务器的第三中介数据和第四中介数据,以及第一节点服务器的第三中介数据和第四中介数据,进行第四验证;
相应的,
在确定第四验证通过的情况下,对外广播第一节点服务器的第二签名的分量数据;并接收其他节点服务器广播的第二签名的分量数据。
在一个实施例中,根据第一随机数、目标信息、第二中间数据和第一部分签名,构 建第一节点服务器的第二签名的分量数据,包括:
按照以下算式,构建第一节点服务器的第二签名的分量数据:
s i=k im+σ ir
其中,s i为第一节点服务器的第二签名的分量数据,i为第一节点服务器的编号,k i为第一节点服务器的第一随机数,m为目标信息,σ i为第一节点服务器的第二中间数据,r为第一部分签名。
在一个实施例中,响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥,包括:
响应联合签名请求,在确定参与联合签名的情况下,生成并对外广播确认信息;
接收其他节点服务器广播的确认信息;
统计广播确认信息的节点服务器的数量;
在确定广播确认信息的节点服务器的数量大于预设的门限阈值的情况下,生成第一随机数、第二随机数和第一临时私钥。
在一个实施例中,在响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥之前,所述方法还包括:
根据预设的协议规则,生成第一公钥、第一私钥、第一部分签名私钥和第一部分签名公钥;
生成并对外广播包含有关于第一部分签名公钥的第一部分承诺文件和第一公钥的第三数据组;
在确定接收到其他节点服务器广播的第三数据组的情况下,打开第一部分承诺文件,以使其他节点服务器获取第一节点服务器的第一部分签名公钥;
获取并根据其他节点服务器的第一部分签名公钥进行第五验证;
在确定第五验证通过的情况下,根据预设的协议规则、预设的门限阈值、第一部分签名公钥生成第一节点服务器的门限分片私钥和门限分片公钥,并对外广播门限分片公钥。
在一个实施例中,所述第一公钥包括:基于ElGamal加密算法的公钥数据和基于类群加密算法的公钥数据;所述第一私钥包括:基于ElGamal加密算法的私钥数据和基于类群加密算法的私钥数据。
在一个实施例中,根据预设的协议规则、预设的门限阈值、第一部分签名公钥生成 第一节点服务器的门限分片私钥和门限分片公钥,包括:
根据预设的协议规则,构建次数为预设的门限阈值的目标多项式;
根据所述目标多项式,与其他节点服务器进行交互,以获取其他节点服务器针对第一节点服务器的门限参数;
根据其他节点服务器针对第一节点服务器的门限参数,生成第一节点服务器的门限分片私钥;
根据所述第一节点服务器的门限分片私钥,生成第一节点服务器的门限分片公钥。
本说明书还提供了一种数字签名的生成装置,包括:
第一生成模块,用于响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥;其中,所述联合签名请求至少携带有待签名的目标信息;
第一处理模块,用于根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;
广播模块,用于对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;并接收其他节点服务器广播的第一数据组;
第二处理模块,用于根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据;
第三处理模块,用于根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名;
第四处理模块,用于根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名;
第二生成模块,用于根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
本说明书还提供了一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述数字签名的生成方法的相关步骤。
本说明书还提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述数字签名的生成方法的相关步骤。
本说明书提供的一种数字签名的生成方法、装置和服务器,基于该方法,多个节点服务器在进行联合签名时,参与联合签名的多个节点服务器中的任意一个作为第一节点服务器可以先生成第一随机数、第二随机数和第一临时私钥;再根据综合了ElGamal加密算法和类群加密算法的预设的协议规则,利用上述数据与其他节点服务器进行多次的数据交互与验证,以分次生成目标信息的目标数字签名中的第一部分签名和第二部分签名,进而可以得到关于目标信息的完整的目标数字签名。从而能在不泄露各个节点服务器所各自持有的私钥数据的前提下,高效、安全地实现多方门限联合签名。有效地解决了现有方法在进行多方门限联合签名时存在的计算量大、处理效率低、通信带宽大,存在安全性风险的技术问题。
附图说明
为了更清楚地说明本说明书实施例,下面将对实施例中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是应用本说明书实施例提供的数字签名的生成方法的系统的结构组成的一个实施例的示意图;
图2是本说明书的一个实施例提供的数字签名的生成方法的流程示意图;
图3是在一个场景示例中,应用本说明书实施例提供的数字签名的生成方法的一种实施例的示意图;
图4是在一个场景示例中,应用本说明书实施例提供的数字签名的生成方法的一种实施例的示意图;
图5是本说明书的一个实施例提供的服务器的结构组成示意图;
图6是本说明书的一个实施例提供的数字签名的生成装置的结构组成示意图;
图7是在一个场景示例中,应用本说明书实施例提供的数字签名的生成方法的一种实施例的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实 施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
考虑到在多方门限联合签名的应用场景中,往往需要大于门限值数量的参与方共同协作参与,才能正常完成对待签名信息的联合签名;同时上述场景还要求保护各个参与方的数据安全,避免向其他参与方泄露己方所持有的私钥数据。针对上述场景,现有方法大多采用基于Paillier同态加密方法来实现多方参与的ECDSA签名。
但是,基于上述方法,由于Paillier同态加密与ECDSA系统中的模数不同,势必需要引入较繁重的范围零知识证明子协议,使得上述方法具体实施时处理过程较为繁琐,需要耗费较大的计算量和通信带宽,进而导致出现处理效率低,通信带宽大的技术问题。
针对产生上述问题的根本原因,本说明书通过创造性地劳动考虑,可以综合利用ElGamal加密算法和类群加密算法,以及多方门限联合签名场景中的具体特点和保密性要求,构建一套新的协议规则,即预设的协议规则(也可以称Promise Sigma协议)。进而参与签名的多个节点服务器中的各个节点服务器(例如,第一节点服务器)可以根据上述预设的协议规则,分别与其他节点服务器进行多次的数据交互,以分次、安全地生成目标数字签名中的第一部分签名和第二部分签名,进而可以得到关于目标信息的完整的目标数字签名。从而能在不泄露各个节点服务器所各自持有的私钥数据的前提下,高效、安全地实现多方门限联合签名。
基于上述思路,本说明书实施例提供了一种数字签名的生成方法,该方法具体可以应用于包含有多个节点服务器(例如,节点服务器1、节点服务器2、节点服务器3、……节点服务器i、……节点服务器n)的系统中。具体可以参阅图1所示。系统中不同节点服务器之间可以通过有线或无线的方式相连,已进行具体的数据交互。
具体实施时,多个节点服务器中的各个节点服务器可以分别响应携带有待签名的目标信息的联合签名请求,生成第一随机数、第二随机数和第一临时私钥。
进一步,多个节点服务器中的各个节点服务器可以根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的。
接着,多个节点服务器中的各个节点服务器可以对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;同时接收其他节点服务器广播的包含有其他节点服务的第一密文数据、第一临时承诺文件和第一证明文件的第一数据组。
多个节点服务器中的各个节点服务器可以根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据。
然后,多个节点服务器中的各个节点服务器可以根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名。
进而,多个节点服务器中的各个节点服务器可以根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名。
最后,多个节点服务器可以根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
这样多个节点服务器中任意一个节点服务器可以将所生成的上述目标数字签名设置在目标信息上,完成针对该目标信息的联合签名。
在本实施例中,所述节点服务器具体可以包括一种应用于业务平台一侧,能够实现数据传输、数据处理等功能的后台服务器。具体的,所述节点服务器例如可以为一个具有数据运算、存储功能以及网络交互功能的电子设备。或者,所述节点服务器也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件程序。在本实施例中,并不具体限定所述节点服务器所包含的服务器的数量。所述节点服务器具体可以为一个服务器,也可以为几个服务器,或者,由若干服务器形成的服务器集群。
通过上述系统,各个节点服务器能在不泄露所持有的私钥数据的前提下,高效、安全地实现多方门限联合签名。解决了现有方法在进行多方门限联合签名时存在的计算量大、处理效率低、通信带宽大,存在安全性风险的技术问题。
参阅图2所示,本说明书实施例提供了一种数字签名的生成方法。其中,该方法具体应用于第一节点服务器一侧。具体实施时,该方法可以包括以下内容。
S201:响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥;其中,所述联合签名请求至少携带有待签名的目标信息。
在本实施例中,上述数字签名的生成方法具体可以应用于第一节点服务器(节点服务器的编号可以记为i,相应的第一节点服务器可以记为p i)。其中,上述第一节点服务器具体可以理解为参与联合签名的多个节点服务器中的任意一个节点服务器。
进一步,上述参与联合签名的多个节点服务器又是基于多方门限签名规则进行联合 签名的。其中,上述多方门限签名规则可以是指:多个(例如n个)节点服务器(或者成员)组成一个签名群体(或签名系统),且该签名群体拥有一对群公钥和群私钥;具体的签名时,当群体中有大于门限值(例如,t)数量的节点服务器参与签名,则上述参与签名的多个节点服务器可以代表该群体使用群私钥进行签名,并且,任意一个节点服务器可以使用群公钥进行签名验证。
在本实施例中,上述联合签名请求具体可以理解一种请求群体中的节点服务器参与,通过合作来共同生成针对目标信息的数字签名,以完成关于目标信息的联合签名操作的请求数据。
在本实施例中,上述联合签名请求可以携带有待签名的目标信息。在本实施例中,上述目标信息具体可以交易数据处理场景中的交易订单,也可以是电子证券处理场景中电子证券,还可以是通信交互场景中的待传递的通知消息等。当然,上述所列举的目标信息只是一种示意性说明。具体实施时,针对不同的应用场景,上述待签名的目标信息还可以包括其他类型的数据信息。对此,本说明书不作限定。
在本实施例中,上述联合签名请求具体可以是第一节点服务器发起的,也可以是群体中除第一节点服务器以外的任意一个节点服务器发起的,还可以是群体以外的第三方设备,例如布设于用户一侧的终端设备等发起的。
在本实施例中,在签名阶段,可以参阅图3所示。具体实施时,第一节点服务器可以响应联合签名请求,获取联合签名请求中所携带的目标信息(可以记为m);并根据预设的协议规则生成第一节点服务器的第一随机数(可以记为k i)、第二随机数(可以记为r i)和第一临时私钥(可以记为γ i)。
在本实施例中,上述预设的协议规则具体可以理解为一种综合了ElGamal加密算法和类群加密算法,并结合多方门限联合签名的场景特点设计、构建的新的协议规则。具体的,可以记为:Promise Sigma协议(规则)。
其中,上述ElGamal加密算法具体可以理解为密码学中基于迪菲-赫尔曼密钥交换的非对称加密算法。上述类群加密算法(也称基于类群的加密技术)具体可以理解为一种针对多个群体成员共同参与以协助处理数据的体制所设计的数据加密算法。
在本实施例中,在签名阶段,参阅图3中的Phase(步骤)1,具体实施时,第一节点服务器可以从第一数值范围(可以记为:Z q,或者图3中使用的
Figure PCTCN2020133998-appb-000001
)内随机抽取一个数值作为第一随机数,可以表示为:k i←Z q。其中,上述第一数值范围具体可以为大于0 且小于等于q,q为素数。同时,第一节点服务器可以从第一数值范围内随机抽取一个数值作为第一临时私钥,可以表示为:γ i←Z q
在本实施例中,为了能够从一个更大的整数范围找到符合预设的协议规则的第二随机数,具体实施时,第一节点服务器可以从第二数值范围(可以记为[S])内随机抽一个数值作为第二随机数,可以表示为:r i←[S]。其中,上述S具体可以表示为类群加密中子群
Figure PCTCN2020133998-appb-000002
的阶数的近似上界。
在本实施例中,在第一节点服务器按照上述方式响应联合签名请求生成第一节点服务器的第一随机数、第二随机数和第一临时私钥的同时,其他节点服务器(可以记为{p j} j≠i)可以按照相同方式各自生成己方的第一随机数、第二随机数和第一临时私钥。其中,上述其他节点服务器具体可以理解为除第一节点服务器以外参与联合签名的节点服务器。
在本实施例中,可以将签名群体中参与本次联合签名的多个节点服务器(包括:第一节点服务器和其他节点服务器)所组成的集合记为S。其中,S中所包含的节点服务器的数量大于预设的门限阈值(可以记为t),i∈S且
Figure PCTCN2020133998-appb-000003
n为签名群体中节点服务器的总数。
需要说明的是,上述集合D中参与联合签名的节点服务器分别持有各自的门限分片私钥(x)、第一私钥(sk),并对其他节点服务器公开己方的门限分片公钥(pk)、第一公钥(X)。上述数据的获取后续将作具体说明。
S202:根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的。
在本实施例中,参阅图3中的Phase1,具体实施时,第一节点服务器可以根据预设协议规则,利用第二随机数和第一公钥(可以记为pk i)加密第一随机数,得到对应的第一密文数据(可以记为
Figure PCTCN2020133998-appb-000004
)。例如,
Figure PCTCN2020133998-appb-000005
在本实施例中,具体实施时,第一节点服务器可以根据预设的协议规则,利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件(可以记为c i)。例如,c i←Com(γ iP)。其中,上述P(也可以记为G)具体可以表示为基于ECDSA数字签名的 椭圆曲线上阶数为素数的生成元。
在本实施例中,上述数字签名(Digital Signature):又可以称为公钥数字签名,具体可以理解为一种持有信息的签名者才能生成,且其他人无法伪造的一段数字串,该段数字串同时也是一种对信息的签名者发送信息真实性的有效证明。
在本实施例中,ECDSA(Elliptic Curve Digital Signature Algorithm,椭圆曲线数字签名算法)具体可以理解为一种使用椭圆曲线密码(ECC)对数字签名算法(DSA)的模拟的签名算法。
相应的,在本实施例中所涉及到的数字签名具体可以是ECDSA数字签名。需要说明的是,上述所列举的ECDSA数字签名只是一种示意性说明,根据具体的应用场景以及所使用的签名算法的具体特点,不限定将本说明书提供的数字签名的生成方法适应性地推广应用到其他类型的数字签名中。
在本实施例中,具体实施时,第一节点服务器还可以根据预设的协议规则生成关于第一密文数据和第一临时承诺文件的NIZK证明(可以记为π i)文件,作为第一证明文件。其中,上述NIZK证明具体可以理解为使用Promise Sigma协议生成的一种非交互式的零知识证明。
在本实施例中,其他节点服务器可以按照相同方式各自生成己方的第一密文数据、第一临时承诺文件和第一证明文件。
S203:对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;并接收其他节点服务器广播的第一数据组。
在本实施例中,第一节点服务器可以通过组合所述第一密文数据、第一临时承诺文件和第一证明文件,得到第一节点服务器的第一数据组,例如,(c i
Figure PCTCN2020133998-appb-000006
π i)。进一步,可以在群体中对外广播上述第一数据组。相应的,其他节点服务器可以接收到第一节点服务器广播的第一数据组。
同时,其他节点服务器也可以生成并对外广播上述包含有己方的第一密文数据、第一临时承诺文件和第一证明文件的第一数据组的第一数据组。相应的,第一节点服务器可以接收到其他节点服务器广播的第一数据组。
S204:根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据。
在一个实施例中,上述根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据,具体实施时,可以包括以下内容。
S1:根据预设的协议规则、所述其他节点服务器广播的第一数据组,生成并向所述其他节点服务器中的各个节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据;并接收所述其他节点服务器生成并发送的与第一节点服务器相对应的第一类参数数据、第二密文数据和第三密文数据。
在本实施例中,第一节点服务具体实施时,可以根据预设的协议规则,通过两方信道分别与其他节点服务器进行一对一的数据交互,以生成并向其他节点服务器中的各个节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据;并接收其他节点服务器生成并发送的与第一节点服务器相对应的第一类参数数据、第二密文数据和第三密文数据。
在一个实施例中,上述根据预设的协议规则、所述其他节点服务器广播的第一数据组,生成并向所述其他节点服务器中的各个节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据,具体实施时,可以包括:
根据预设的协议规则,按照以下方式生成并向所述其他节点服务器中的当前节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据:
S1-1:生成针对当前节点服务器的第三随机数、第四随机数,并根据所述第四随机数,生成与当前节点服务器对应的第一类参数数据;
S1-2:根据预设的协议规则和所述其他节点服务器广播的第一数据组,利用当前节点服务器广播的第一密文数据,通过同态加密处理,得到与当前节点服务器对应的第二密文数据和第三密文数据;
S1-3:将至少包含有与当前节点服务器对应的第一类参数数据、第二密文数据和第三密文数据的第二数据组发送至当前节点服务器。
在本实施例中,以其他节点服务器中的任意一个编号为j的节点服务器作为当前节点服务器(可以记为p j)为例进行具体说明。
可以参阅图3中的Phase2,第一节点服务器可以生成针对当前节点服务器的第三随机数(可以记为β j,i)和第四随机数(可以记为υ j,i)。具体的,例如,β j,i,υ j,i←Z q。并根据第四随机数计算第一类参数数据(B j,i)。例如,B j,i=υ j,iP。
进一步,第一节点服务器可以根据预设的协议规则,利用当前节点服务器所广播的第一数据组中的当前节点服务器的第一密文数据
Figure PCTCN2020133998-appb-000007
通过进行相应的同态加密处理,得到第一节点服务器针对当前节点服务器的第二密文数据(可以记为
Figure PCTCN2020133998-appb-000008
)和第三密文数据(可以记为
Figure PCTCN2020133998-appb-000009
)。
上述同态加密处理具体实施时,可以包括以下内容:首先生新的随机数t j,i,tt j,i←[qS]。参阅图3所示,tt j,i也可以记为
Figure PCTCN2020133998-appb-000010
具体可以按照以下算式计算得到新的随机数:t p,ji=t j,imod q,tt p,ji=tt j,imod q。其中,q为素数。再根据预设的协议规则,利用promise加密的同态性质,利用
Figure PCTCN2020133998-appb-000011
通过以下算式进行密文计算得到对应的
Figure PCTCN2020133998-appb-000012
Figure PCTCN2020133998-appb-000013
Figure PCTCN2020133998-appb-000014
其中,
Figure PCTCN2020133998-appb-000015
表示密文数据上的指数运算,
Figure PCTCN2020133998-appb-000016
表示密文数据上的同态加法运算。上述
Figure PCTCN2020133998-appb-000017
Figure PCTCN2020133998-appb-000018
的明文分别为:k ji+tt j,i)-β j,imod q,k j(w i+t j,i)-υ j,imod q。
进而第一节点服务器可以组合上述第一类参数数据、第二密文数据和第三密文数据的第二数据组,得到对应的第二数据组,例如,(
Figure PCTCN2020133998-appb-000019
B j,i);并将第二数据组发送至对应的当前节点服务器。其中,所述发送的第二数据组中进一步还可以包括有计算第二密文数据和第三密文数据时使用到的新的随机数t j,i,tt j,i
按照类似的方式,其他节点服务器也可以生成针对第一节点服务器的第二数据组,并将上述第二数据组通过两方信道发送给第一节点服务器。这样,第一节点服务器可以接收得到其他节点服务器生成并发送的针对己方的第二数据组。
S2:解密所接收到的第二密文数据和第三密文数据,得到与其他节点服务器分别对应的第二类参数据和第三类参数数据。
在本实施例中,以编号为j的当前节点服务器解密第一节点服务器所发送的第二密文数据和第三密文数据为例。
当前节点服务器在接收到第一接单服务器发送的第二数组之后,可以先对第二密文数据和第三密文数据之后,可以利用己方所持有的第一随机数k j,以及新的随机数t j,i,tt j,i先解密第二密文数据和第三密文数据,得到对应的明文数据作为第二类参数数据 (例如α j,i)和第三类参数数据(例如μ j,i)即,α j,i=k ji+tt j,i)-β j,imod q,μ j,i=k j(w i+t j,i)-υ j,imod q。
按照类似的方式,第一节点服务器,以及其他节点服务器可以分别解密来自别的节点服务器所发送的第二密文数据和第三名数据,得到对应的第二类参数数据和第三类参数数据。
S3:根据预设的协议规则,利用第一随机数、其他节点服务器的门限分片公钥,以及与其他节点服务器对应的第二类参数数据和第三类参数数据进行第一验证。
在本实施例中,以编号为j的当前节点服务器针对第一节点服务器进行第一验证为例。
当前节点服务器可以根据己方所持有的第一随机数、第一节点服务器的门限分片公钥,以及与第一节点服务器对应的第二类参数数据和第三类参数数据,检测一下等式是否成立,来进行第一验证:
k jW i=μ j,iP+B j,i
其中,k j为当前节点服务器的第一随机数,W i为第一节点服务器的门限分片公钥,μ j,i为与第一节点服务器对应的第三类参数数据(也可以称为当前节点服务器针对第一节点服务器的第三类参数数据),B j,i为第一类参数数据(也可以称为第一节点服务器针对当前节点服务器的第一类参数数据)。其中,上述第一节点服务器的门限分片公钥是基于第一节点服务器所持有并保密的门限分片私钥生成的,上述第一节点服务器的门限分片公钥是对外公开的。
如果检测到上述等式成立,则确定当前节点服务器针对第一节点服务器的第一验证通过;否则,则确定当前节点服务器针对第一节点服务器的第一验证未通过。
按照相同的方式,各个节点服务器可以分别对向己方发送第二数据组的节点服务器进行第一验证。
如果发现各个节点服务器针对所有节点服务器的第一验证都验证通过,则确定第一验证通过,进而可以确定是根据预设协议规则进行的,是安全有效的,可以继续进行后续的数据处理。如果发现各个节点服务器针对所有节点服务器的第一验证中存在至少有一个没有通过,则确定第一验证未通过,进而可以确定是存在风险的,为了保护参与方的数据安全,将终止后续的数据处理。通过上述方式,有效地保护参与签名的节点服务 器的数据安全。
S4:在确定第一验证通过的情况下,利用第一随机数、第一临时私钥,以及与其他节点服务器对应的第二类参数数据和第三类参数数据,生成第一节点服务器的第一中间数据和第二中间数据。
在本实施例中,在确定第一验证通过的情况下,以第一节点服务器为例,可以按照以下算式利用第一随机数、第一临时私钥,以及与其他节点服务器对应的第二类参数数据和第三类参数数据,计算得到第一节点服务器的第一中间数据和第二中间数据:
δ i=k iγ i+∑ j≠ii,ji,j),σ i=k iw i+∑ j≠ii,ji,j)
其中,δ i为第一节点服务器的第一中间数据,σ i为第一节点服务器的第二中间数据。
按照相同的方式,其他节点服务器可以分别计算得到各自的第一中间数据和第二中间数据。
S5:对外广播所述第一中间数据;并接收其他节点服务器广播的第一中间数据。
在本实施例中,第一节点服务器可以对外广播己方的第一中间数据,相应的,其他节点服务器可以接收到第一节点服务器的第一中间数据。同时,其他节点服务器可以对外广播己方的第一中间数据,相应的,第一节点服务器可以接收到其他节点服务器广播的第一中间数据。
S6:根据第一节点服务器的第一中间数据和其他节点服务器广播的第一中间数据,生成第三中间数据。
在本实施例中,可以参阅图3中的Phase3,第一节点服务器可以将其他节点服务器广播的第一中间数据和己方的第一中间数据进行累加,得到对应的第三中间数据。具体的,可以按照以下算式计算得到第三中间数据:δ=∑ i∈Sδ i。其中,δ为第三中间数据。
按照相同的方式,其他节点服务器可以分别计算得到第三中间数据。
在一个实施例中,第一节点服务器在接收到其他节点服务器广播的第一数据组后,可以先对从第一数据组中提出第一证明文件,并根据第一证明文件对其他节点服务器所广播的第一数据组中的第一临时承诺文件和第一密文数据是否是符合预设的协议规则进行验证。类似的,其他节点服务器也会进行相同的验证。如果存在一个第一数据组中的第一证明文件验证不通过,则终止后续的数据处理。从而可以更有效地保护参与方的数据安全。
S205:根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设 的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名。
在一个实施例中,上述根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名,具体实施时,可以包括以下内容。
S1:根据预设的协议规则,打开第一临时承诺文件,以使其他节点服务器获取第一节点服务器的第一临时公钥。
在本实施例中,可以参阅图3中的Phase4,第一节点服务器可以打开之前广播的第一数据组中的第一临时承诺文件c i,从而可以使得其他节点服务器能够获取得到第一节点服务器的第一临时公钥:Γ j=γ iP。
按照相同的方式,其他节点服务器可以打开之前广播的第一数据组中的第一临时承诺文件,以使得其他节点服务器能够获取得到己方的第一临时公钥。
S2:生成并对外广播关于所述第一临时公钥的第一临时证明文件。
在本实施例中,可以参阅图3中的Phase4,第一节点服务器还可以生成关于第一临时公钥的NIZK证明文件作为第一临时证明文件,记为π 。其中,该第一临时证明文件用于证明存在一个γ i使得有第一临时公钥γ iP。第一节点服务器可以对外广播该第一临时证明文件。
按照相同的方式,其他节点服务器可以生成并对外广播相应的第一临时证明文件。
S3:获取其他节点服务器的第一临时公钥,以及其他节点服务器广播的第一临时证明文件。
在本实施例中,通过上述方式,第一节点服务器和其他节点服务器可以分别获取各个节点服务器的第一临时公钥;同时也可以分别接收别的节点服务器发送的第一临时承诺文件和第一临时证明文件。例如,第一节点服务器可以接收到其他节点服务器的第一临时承诺文件,可以记为{c i} j∈S,j≠i,以及第一临时证明文件,可以记为{π } j∈S,j≠i
S4:根据所述其他节点服务器的第一临时公钥,以及其他节点服务器广播的第一临时证明文件,进行第二验证。
在本实施例中,第一节点服务器可以根据其他节点服务器的第一临时公钥,以及对应的第一临时证明文件和第一临时承诺文件对第一临时公钥进行验证,以确定是否是根据预设的协议规则生成。
按照相同的方式,其他节点服务器也可以对别的节点服务器的第一临时公钥进行验 证。
如果所有的第一临时公钥都验证通过,则确定第二验证通过,可以继续后续的数据处理。如果存在至少一个没有验证通过,则确定第二验证未通过,可以终止后续的数据处理,从而可以有效地保护参与方的数据安全。
S5:在确定第二验证通过的情况下,根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,生成目标信息的目标数字签名中的第一部分签名。
在一个实施例中,上述根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,生成目标信息的目标数字签名中的第一部分签名,具体实施时,可以包括:
S5-1:根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,计算第一目标数据;
S5-2:确定出第一目标数据的横坐标值,作为所述第一部分签名。
在一个实施例中,上述根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,计算第一目标数据,具体实施时,可以包括:
按照以下算式计算第一目标数据:
R=δ -1(∑ j∈SΓ j)
其中,R为第一目标数据,δ为第三中间数据,Γ j为编号为j的节点服务器的第一临时公钥,j为节点服务器的编号,S为参与联合签名的节点服务器的集合。
在本实施例中,上述确定出第一目标数据的横坐标值,作为所述第一部分签名,具体实施时,可以将第一目标数据R拆分成分别对应纵坐标y的纵坐标值,以及对应横坐标x的横坐标值,进而可以将上述横坐标值确定为第一部分签名,可以记为r。具体的,也可以参阅图3中的Phase4。
在一个实施例中,也可以利用哈希函数计算第一目标数据的哈希值作为第一部分签名。
按照相同方式,其他节点服务器可以分别计算得到第一部分签名。
S206:根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名。
在一个实施例中,上述根据预设的协议规则、第一随机数、目标信息、第二中间数 据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名,具体实施时,可以包括以下内容。
S1:根据第一随机数、目标信息、第二中间数据和第一部分签名,构建第一节点服务器的第二签名的分量数据。
在一个实施例中,上述根据第一随机数、目标信息、第二中间数据和第一部分签名,构建第一节点服务器的第二签名的分量数据,具体实施时,可以包括:
按照以下算式,构建第一节点服务器的第二签名的分量数据:
s i=k im+σ ir
其中,s i为第一节点服务器的第二签名的分量数据,i为第一节点服务器的编号,k i为第一节点服务器的第一随机数,m为目标信息,σ i为第一节点服务器的第二中间数据,r为第一部分签名。
在本实施例中,具体实施时,也可以参阅图3中的Phase5,先按照以下算式计算目标信息的哈希值:m′=H(m),得到目标哈希值m′;再使用上述目标哈希值m′代替目标信息m来计算相应的第二签名的分量数据s i
按照相同的方式,其他节点服务器可以分别计算得到各自的第二签名的分量数据。
S2:根据预设的协议规则,根据第二签名的分量数据、第一部分签名,构造第一中介数据和第二中介数据。
在本实施例中,具体实施时,第一节点服务器可以根据以下算式构造第一节点服务器的第一中介数据和第二中介数据:
V i=s iR+l iP,A i=ρ iP
其中,V i为第一中介数据,A i为第二中介数据,ρ i为第五随机数,l i为第六随机数,R为第一目标数据。其中,上述第五随机数和第六随机数按照以下方式生成:ρ i,l i←Z q
按照相同的方式,其他节点服务器可以分别构建得到己方的第一中介数据和第二中介数据。
S3:生成并对外广播关于所述第一中介数据和第二中介数据的第一中介承诺文件。
在本实施例中,参阅图3中的Phase5,第一节点服务器具体实施时,可以按照以下方式生成第一中介承诺文件(可以记为c1 i):c1 i←Com(V i,A i)。并广播该第一中介承诺文件。
按照相同的方式,其他节点服务器可以分别生成并广播对应的第一中介承诺文件。
S4:在确定接收到其他节点服务器广播的第一中介承诺文件的情况下,打开第一中介承诺文件,以使其他节点服务器获取第一节点服务器的第一中介数据和第二中介数据。
在本实施例中,第一节点服务器在接收到所有的第一中介承诺文件(例如,{c1 j} j∈S,j≠i)的情况下,可以打开己方的第一中介承诺文件c1 i,以使得其他节点服务器能够获取得到第一节点服务器的第一中介数据和第二中介数据。
按照相同的方式,其他节点服务器可以分别打开己方的第一中介承诺文件。相应的,第一节点服务器可以获取得到其他节点服务器的第一中介数据和第二中介数据。
S5:生成并对外广播关于所述第一中介数据和第二中介数据的第一中介证明文件。
在本实施例中,第一节点服务器还可以生成关于第一中介数据和第二中介数据的NIZK证明文件作为第一中介证明文件,可以记为π iVA。其中,该第一中介证明文件用于证明存在(s ii,l i)使得V i=s iR+l iP,A i=ρ iP成立。进一步,第一节点服务器可以对外广播该第一中介证明文件。
按照相同的方式,其他节点服务器可以生成并广播相应的第一中介证明文件。
S6:获取其他节点服务器的第一中介数据和第二中介数据,以及其他节点服务器广播的第一中介证明文件。
S7:根据所述其他节点服务器的第一中介数据和第二中介数据,以及其他节点服务器广播的第一中介证明文件,进行第三验证。
在本实施例中,第一节点服务器可以根据所述其他节点服务器的第一中介数据和第二中介数据,以及其他节点服务器广播的第一中介证明文件,结合左右的零知识证明,以验证所接收到的第一中介数据和第二中介数据,以及相关的承诺和证明是否准确。
类似的,其他节点服务器也可以按照相同的方式对所接收到的第一中介数据和第二中介数据,以及相关的承诺和证明是否准确进行验证。
在确定全部准确的情况下,确定第三验证通过,可以继续后续的数据处理。相应的,在确定存在至少一个不准确的情况下,确定第三验证未通过,终止后续的数据处理,从而可以保护参与方的数据安全。
S8:在确定第三验证通过的情况下,对外广播第一节点服务器的第二签名的分量数据;并接收其他节点服务器广播的第二签名的分量数据。
S9:根据所述第一节点服务器的第二签名的分量数据、其他节点服务器广播的第二 签名的分量数据,生成目标信息的目标数字签名中的第二部分签名。
在一个实施例中,为了能够进一步保护参与方的数据安全,在确定第三验证通过之后,所述方法具体实施时,还可以包括以下内容。
S1:根据预设的协议规则,利用第二签名的分量数据、第一部分签名、签名公钥、第一中介数据和第二中介数据,构造第三中介数据和第四中介数据;
S2:生成并对外广播关于所述第三中介数据和第四中介数据的第二中介承诺文件;
S3:在确定接收到其他节点服务器广播的第二中介承诺文件的情况下,打开第二中介承诺文件,以使其他节点服务器获取第一节点服务器的第三中介数据和第四中介数据;
S4:获取其他节点服务器的第三中介数据和第四中介数据;
S5:根据所述其他节点服务器的第三中介数据和第四中介数据,以及第一节点服务器的第三中介数据和第四中介数据,进行第四验证;
相应的,
在确定第四验证通过的情况下,对外广播第一节点服务器的第二签名的分量数据;并接收其他节点服务器广播的第二签名的分量数据。
在本实施例中,参阅图3中的Phase5,上述根据预设的协议规则,利用第二签名的分量数据、第一部分签名、签名公钥、第一中介数据和第二中介数据,构造第三中介数据和第四中介数据,具体实施时,第一节点服务器可以按照以下算式构造第一节点服务器的第三中介数据和第四中介数据:
U i=ρ iV=ρ i(-mP-rQ+∑ i∈SV i),T i=l iA=l ii∈SA i
其中,U i为第一节点服务器的第三中介数据,T i为第一节点服务器的第四中介数据,ρ i为第五随机数,l i为第六随机数,Q为签名公钥。
按照相同的方式,其他节点服务器可以分别生成各自的第三中介数据和第四中介数据。
在本实施例中,第一节点服务器可以按照以下方式生成关于第三中介数据和第四中介数据的第二中介承诺文件(可以记为c2 i):c2 i←Com(U i,T i);再对外广播第二中介承诺文件。
按照相同的方式,其他节点服务器可以分别生成并对外广播相应的第二中介承诺文件。
在本实施例中,在第一节点服务器确定接收到其他节点服务器广播的第二中介承诺文件的情况下,可以打开第二中介承诺文件,以使其他节点服务器获取第一节点服务器的第三中介数据和第四中介数据。相应的,其他节点服务器可以打开己方的第二中介承诺文件,第一节点服务器可以获取其他节点服务器的第三中介数据和第四中介数据。
在本实施例中,第一节点服务器可以根据所接收到的其他节点服务器的第三中介数据、第四中介数据和第二中介承诺文件进行验证,以验证所接收到的第二中介承诺文件是否准确,如果发现错误,则终止后续的数据处理。如果发现所接收到的第二中介承诺文件准确,则进一步验证所接收到的各个节点服务器的第三中介数据和第四中介数据是否满足以下所示的数据关系:∑ i∈ST i=∑ i∈SA i。在确定不满足上述数据关系的情况下,终止后续的数据处理。在确定满足上述数据关系的情况下,认为第一节点服务器所负责的第四验证通过。
按照相同的方式,其他节点服务器可以分别进行己方所负责的第四验证。在各个节点服务器所负责的第四验证都通过的情况下,确定第四验证通过,进而可以继续后续的数据处理。相反,在各个节点服务器所负责的第四验证中至少出现一个不通过的情况下,确定第四验证未通过,可以终止后续的数据处理。
在本实施例中,在确定第四验证通过的情况下,第一节点服务器可以对外广播第一节点服务器的第二签名的分量数据。同时,其他节点服务器可以对外广播己方的第二签名的分量数据。
相应的,其他节点服务器可以获取第一节点服务器所广播的第二签名的分量数据,第一节点服务器可以获取其他节点服务器广播的第二签名的分量数据。
进一步的,第一节点服务器可以按照以下算式,根据所述第一节点服务器的第二签名的分量数据、其他节点服务器广播的第二签名的分量数据,来生成目标信息的目标数字签名中的第二部分签名:
s=∑ i∈Ss i
其中,s为第二部分签名。
按照相同的方式,其他节点服务器可以分别生成相应的第二部分签名。可以参阅图3中的Phase5。
S207:根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
在本实施例中,第一节点服务器可以根据第一部分签名和第二部分签名通过组合, 得到完整的数字签名,例如(r,s)作为目标信息的目标数字签名。
进一步,第一节点服务器可以将该目标数字签名设置在目标信息上。
在本实施例中,具体实施时,也可以是其他节点服务器按照上述方式生成目标数字签名,进一步可以将目标数字签名设置目标信息上。
在本实施例中,基于该方法,多个节点服务器在进行联合签名时,参与联合签名的多个节点服务器中的任意一个第一节点服务器可以先生成第一随机数、第二随机数和第一临时私钥;再根据综合了ElGamal加密算法和类群加密算法的预设的协议规则,利用上述数据与其他节点服务器进行多次的数据交互与验证,以分次生成目标信息的目标数字签名中的第一部分签名和第二部分签名,进而可以得到关于目标信息的完整的目标数字签名。从而能在不泄露各个节点服务器所各自持有的私钥数据的前提下,高效、安全地实现多方门限联合签名。有效地解决了现有方法在进行多方门限联合签名时存在的计算量大、处理效率低、通信带宽大,存在安全性风险的技术问题。
在一个实施例中,上述响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥,具体实施时,可以包括以下内容:
S1:响应联合签名请求,在确定参与联合签名的情况下,生成并对外广播确认信息;
S2:接收其他节点服务器广播的确认信息;
S3:统计广播确认信息的节点服务器的数量;
S4:在确定广播确认信息的节点服务器的数量大于预设的门限阈值的情况下,生成第一随机数、第二随机数和第一临时私钥。
在本实施例中,在确定广播确认信息的节点服务器的数量大于预设的门限阈值(例如t)的情况下,确定确认参与联合签名的数量是有效的,进而可以将发出确认信息的节点服务器划分为一个节点服务器集合,记为D,触发进行后续的数据处理。相反,在广播确认信息的节点服务器的数量小于或等于预设的门限阈值的情况下,确定确认参与联合签名的数量是无效的,不触发后续的数据处理。
在一个实施例中,在响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥之前,在秘钥生成阶段,具体可以参阅图4。所述方法具体实施时,还可以包括以下内容。
S1:根据预设的协议规则,生成第一公钥、第一私钥、第一部分签名私钥和第一部分签名公钥。
在一个实施例中,所述第一公钥具体可以包括:基于ElGamal加密算法的公钥数据和 基于类群加密算法的公钥数据;所述第一私钥具体可以包括:基于ElGamal加密算法的私钥数据和基于类群加密算法的私钥数据。
在本实施例中,具体实施时,第一节点服务器可以根据预设的协议规则,同时利用ElGamal加密算法和类群加密算法来生成分别包含有两种公钥数据和两种私钥数据的公私钥对,可以记为(pk i,sk i)。其中,sk i为第一私钥,pk i为第一公钥。
进一步,节点服务器从抽取随机数作为第一部分签名私钥u i,例如,u i←Z q。此外,第一节点服务器可以根据第一部分签名私钥,生成对应的第一部分签名公钥Q i,例如,按照以下算式计算第一部分签名公钥:Q i=u iP。其中,P椭圆曲线上阶为素数的生成元。
按照相同的方式,其他节点服务器可以分别生成第一公钥、第一私钥、第一部分签名私钥和第一部分签名公钥。
S2:生成并对外广播包含有关于第一部分签名公钥的第一部分承诺文件和第一公钥的第三数据组。
在本实施例中,第一节点服务器可以生成关于第一部分签名公钥的第一部分承诺文件kgc i。具体的,例如,kgc i←Com(u iP)。进一步,可以组合第一部分承诺文件和第一公钥,得到第三数据组,例如,(pk i,kgc i)。并对外广播上述第三数据组。
按照类似的方式,其他节点服务器可以生成并对外广播第三数据组。
S3:在确定接收到其他节点服务器广播的第三数据组的情况下,打开第一部分承诺文件,以使其他节点服务器获取第一节点服务器的第一部分签名公钥。
在本实施例中,第一节点服务器可以接收到其他节点服务器广播的第三数据组,相应的,其他节点服务器可以接收到第一节点服务器广播的第三数据组。
在本实施例中,第一节点服务器在接收到其他节点服务器广播的第三数据组后,可以打开己方的第一部分承诺文件,使得其他节点服务器可以获取第一节点服务器的第一部分签名公钥。相应的,其他节点服务器可以打开己方的第一部分承诺文件,使得第一节点服务器可以获取其他节点服务器的第一部分签名公钥。
S4:获取并根据其他节点服务器的第一部分签名公钥进行第五验证。
在本实施例中,第一节点服务器可以根据所获取的其他节点服务器的第一部分签名公钥对其他节点服务器之前广播的第三数据组中的第一部分承诺文件进行验证,以确定第一部分承诺文件是否准确,在检测到不准确时,终止后续的数据处理;在检测到所有 的第一部分承诺文件都准确时,确定第一节点服务器所负责的第五验证通过。
按照相同的方式,其他节点服务器可以分别执行所负责的第五验证。
在确定所有节点服务器所负责的第五验证通过的情况下,确定第五验证通过,继续后续的数据处理。相反,如果确定存在至少一个节点服务器所负责的第五验证未通过的情况下,确定第五验证未通过,终止后续的数据处理。从而保护秘钥生成阶段中参与方的数据安全。
在第五验证通过的情况下,第一节点服务器可以按照以下算式,根据其他节点服务器的第一部分签名公钥,生成得到签名公钥Q:Q=∑ i∈[n]Q i
按照相同的方式,其他节点服务器也可以计算得到相同的签名公钥Q。
S5:在确定第五验证通过的情况下,根据预设的协议规则、预设的门限阈值、第一部分签名公钥生成第一节点服务器的门限分片私钥和门限分片公钥,并对外广播门限分片公钥。
在一个实施例中,上述根据预设的协议规则、预设的门限阈值、第一部分签名公钥生成第一节点服务器的门限分片私钥和门限分片公钥,具体实施时,可以包括以下内容。
S5-1:根据预设的协议规则,构建次数为预设的门限阈值的目标多项式。
在本实施例中,第一节点服务器可以按照以下方式构建目标多项式:
p i(X)=u ik∈[t]a i,kX kmod q
其中,系数a i,k为随机抽取的数值,q为素数,X为未知数。
S5-2:根据所述目标多项式,与其他节点服务器进行交互,以获取其他节点服务器针对第一节点服务器的门限参数。
在本实施例中,第一节点服务器可以根据上述目标多项式,针对其他节点服务器中的各个节点服务器分别生成所对应的门限参数;再通过与该节点服务器的两方信道将该门限参数发送给该节点服务器。
具体的,以第一节点服务器生成编号为j的当前节点服务器的门限参数为例,可以令X取值为j,计算目标多项式的数值,作为与当前节点服务器对应的门限参数,例如,σ i,j=p i(j)。再将上述门限参数σ i,j通过两方信道单独发送给当前节点服务器。可以参阅图4所示。
按照相同的方式,各个节点服务器可以分别生成门限参数,并将门限参数发送给对应的节点服务器。
在本实施例中,第一节点服务器还可以根据目标多项式按照以下方式计算验证参数:V i,k=a i,kP,并构建得到验证参数序列:{V i,k} k∈[t],并对外广播上述验证参数序列。
相应的,其他节点服务器可以按照相同的方式构建并对外广播验证参数序列。
S5-3:根据其他节点服务器针对第一节点服务器的门限参数,生成第一节点服务器的门限分片私钥。
在本实施例中,第一节点服务器可以接收到其他节点服务器发送的门限参数,相应的,其他节点服务器可以接收到第一节点服务器发送的门限参数。
在本实施例,在生成门限分片私钥之前,还可以根据所接收到的验证参数序列对所接收到的门限参数进行验证。
具体的,以第一节点服务器验证编号为j的当前节点服务器所发送的门限参数σ j,i为例。可以通过检测以下等式是否成立,来对门限参数σ j,i是否准确进行验证:
Figure PCTCN2020133998-appb-000020
按照上述方式,第一节点服务器和其他节点服务器如果发现至少存在一个门限参数不准确,则验证不通过,可以终止后续的数据处理。相反,如果确定所有的门限参数都准确,则验证通过,可以进行后续的数据处理。
在本实施例中,具体实施时,第一节点服务器在确定验证通过的情况下,可以按照以下算式来生成第一节点服务器的门限分片私钥(可以记为x i):x i=∑ i∈[n]σ k.i
按照相同的方式,其他节点服务器可以分别生成各自的门限分片私钥。其中,上述门限分片私钥由生成的节点服务器自己保管,不对外公开。
S5-4:根据所述第一节点服务器的门限分片私钥,生成第一节点服务器的门限分片公钥。
在本实施例中,第一节点服务器具体实施时,可以按照以下算式生成对应的门限分片公钥:X i=x iP。
进一步,第一节点服务器还可以生成关于门限分片公钥的NIZK证明文件,作为门限分片公钥的证明文件,记为π k,g,i。进而,第一节点服务器可以对外广播门限分片公钥和门限分片公钥的证明文件。其中,该门限分片公钥的证明文件用于证明存在一个对应的门限分片私钥x i使得X i=x iP成立。
按照相同的方式,其他节点服务器可以生成并对外广播各自的门限分片公钥和门限分片公钥的证明文件。
这样各个节点服务器可以接收得到所有节点服务器的门限分片公钥和门限分片公钥的证明文件。
进一步,各个节点服务器可以根据所接收到的门限分片公钥和门限分片公钥的证明文件进行验证,以验证所接收到的所有的门限分片公钥和门限分片公钥的证明文件是否准确。如果存在至少一个不准确,则验证不通过,终止后续的数据处理,如果全都准确,则验证通过。
通过上述实施例,签名群体中的各个节点服务器可以分别获得并持有引入了多方门限签名技术的门限分片私钥,以及其他节点服务器的门限分片公钥。其中,大于预设的门限阈值个数个节点服务器的门限分片公钥可以组合得到一个完整的签名公钥Q。
在一个实施例中,在完成上述秘钥生成阶段,进入数字签名阶段之前,还可以进行以下所述的预处理。
以第一节点服务器的预处理为例,可以先按照以下算式计算第一节点服务器的安全参数λ i:λ i=∏ j∈S,j≠i(-j)/∏ j∈S,j≠i(i-j)。
进一步,可以利用安全参数,以及门限分片私钥和门限分片公钥计算以下所示的算式:W k=λ kX k,k∈S,以及w i=λ ix i。其中,S中所包含的节点服务器的数量大于预设的门限阈值t。
由于,{X k} k∈S是对外公开的,但是门限分片私钥是对外保密的,因此,第一节点服务器只知道自己所持有的门限分片私钥x i。相应的,第一节点服务器可以计算得到以下关系数据:{X k} k∈S和w i。其中,上述关系数据又满足以下的门限签名关系:∑ k∈SW k=Q。
当然,其他节点服务器也可以按照上述方式进行预处理,得到上述关系数据。
通过上述预处理,可以使得参与联合签名的各个节点服务器分别拥有仅己方持有的门限分片私钥,以及满足门限签名关系的各个节点服务器的门限分片公钥,从而可以为后续的数字签名做好准备。
由上可见,本说明书实施例提供的数字签名的生成方法,基于该方法,多个节点服务器在进行联合签名时,参与联合签名的多个节点服务器中的任意一个第一节点服务器可以先生成第一随机数、第二随机数和第一临时私钥;再根据综合了ElGamal加密算法和 类群加密算法的预设的协议规则,利用上述数据与其他节点服务器进行多次的数据交互与验证,以分次生成目标信息的目标数字签名中的第一部分签名和第二部分签名,进而可以得到关于目标信息的完整的目标数字签名。从而能在不泄露各个节点服务器所各自持有的私钥数据的前提下,高效、安全地实现多方门限联合签名。有效地解决了现有方法在进行多方门限联合签名时存在的计算量大、处理效率低、通信带宽大,存在安全性风险的技术问题。
本说明书实施例还提供一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥;其中,所述联合签名请求至少携带有待签名的目标信息;根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;并接收其他节点服务器广播的第一数据组;根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据;根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名;根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名;根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
为了能够更加准确地完成上述指令,参阅图5所示,本说明书实施例还提供了另一种具体的服务器,其中,所述服务器包括网络通信端口501、处理器502以及存储器503,上述结构通过内部线缆相连,以便各个结构可以进行具体的数据交互。
其中,所述网络通信端口501,具体可以用于接收联合签名请求;其中,所述联合签名请求至少携带有待签名的目标信息。
所述处理器502,具体可以用于响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥;根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为 根据ElGamal加密算法和类群加密算法得到的;对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;并接收其他节点服务器广播的第一数据组;根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据;根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名;根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名;根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
所述存储器503,具体可以用于存储相应的指令程序。
在本实施例中,所述网络通信端口501可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的端口,也可以是负责进行FTP数据通信的端口,还可以是负责进行邮件数据通信的端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。
在本实施例中,所述处理器502可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书并不作限定。
在本实施例中,所述存储器503可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
本说明书实施例还提供了一种基于上述数字签名的生成方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥;其中,所述联合签名请求至少携带有待签名的目标信息;根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时 承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;并接收其他节点服务器广播的第一数据组;根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据;根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名;根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名;根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
在本实施例中,上述存储介质包括但不限于随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard Disk Drive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施例中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
参阅图6所示,在软件层面上,本说明书实施例还提供了一种数字签名的生成装置,该装置具体可以包括以下的结构模块。
第一生成模块601,具体可以用于响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥;其中,所述联合签名请求至少携带有待签名的目标信息;
第一处理模块602,具体可以用于根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;
广播模块603,具体可以用于对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;并接收其他节点服务器广播的第一数据组;
第二处理模块604,具体可以用于根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据;
第三处理模块605,具体可以用于根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名;
第四处理模块606,具体可以用于根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名;
第二生成模块607,具体可以用于根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
需要说明的是,上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
由上可见,本说明书实施例提供的数字签名的生成装置,能在不泄露各个节点服务器所各自持有的私钥数据的前提下,高效、安全地实现多方门限联合签名。解决现有方法在进行多方门限联合签名时存在的计算量大、处理效率低、通信带宽大,存在安全性风险的技术问题。
在一个具体的场景示例中,可以应用本说明提供的数字签名的生成方法来实现基于类群加密的多方门限ECDSA签名。
在本场景示例中,共有n个成员(例如,节点服务器)的签名群体,在不泄漏各自私钥的情况下,当至少有t+1个诚实的参与方时,可以安全高效地完成对消息的合法签名。
基于现有方法,例如,[CCL+20]基于类群加密实现了一种多方门限ECDSA签名方案,但需要依赖更强的和非标准的假设。
而在本场景示例中,应用本说明书的提供的数字签名的生成方法,参考了[CCL+20]和[GG18]的整体协议框架,简化了[CCL+20]方案中交互的初始化过程,并使用Promise  Sigma协议(即,预设的协议规则)来代替[CCL+20]中类群密文有效性证明,可以解决其性能瓶颈,降低数据处理量,提高数据处理效率,高效地实现多方门限联合签名。
在本场景示例中所使用的Promise Sigma协议是一种明文相等的Promise Sigma协议。
其中,明文相等具体可以是指:类群加密明文与ElGamal加密明文相等。明文相等的Promise Sigma协议正式的语言描述如下:
Figure PCTCN2020133998-appb-000021
具体的协议执行过程可以参阅图7所示。
在本场示例中,在通过执行协议实现相应的数据处理的过程中,还可以使用Fiat-Shamir启发式将上述交互式协议转化为非交互协议。
在基于上述协议实现多方门限ECDSA签名时,具体可以分为两个阶段:秘钥生成阶段和签名阶段。
在秘钥生成阶段,参阅图4所示,可以根据上述协议生成多方门限ECDSA签名所需要的每个参与方的公私钥对、签名公钥,以及每个签名参与方的签名私钥的分享(share)。具体的在本场景示例中,是一个(t,n)-门限方案,一共有n个参与方,当超过t个参与方同意,则可以生成一个有效签名。具体过程可以包括公共签名公钥Q(例如,签名公钥)的生成;以及公共签名公钥门限分片(例如,门限分片公钥)的生成。
在签名阶段,参阅图3所示,可以先进行预处理,在使用秘钥生成阶段中生成的信息对目标信息m进行签名。具体过程可以包括签名随机数的生成及加密;密文同态运算,密文解密和校验(例如,验证);以及签名(例如,目标数字签名)的生成。
通过上述场景示例,验证了本说明书提供的方案对比[CCL+20]方案,可以消除了其对更强的假设和非标准假设的依赖,且在计算效率和通信带宽的性能表现上均有不同程度的提升。具体的,本方案无需复杂交互的初始化过程。在签名阶段,对比对效率影响最大的类群上指数操作,[CCL+20]需要8t+16个,本方案仅需要4t+10个。因此,本方案具有更高的效率。
可见,本方案提供了一种新的协议--Promise Sigma协议,并应用于数字签名方案中,设计出了一种安全高效的多方门限ECDSA签名方案。对比已有方案,能大幅提升了计算效率,且消除了已有方案对更强的假设和非标准假设的依赖。
虽然本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创 造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施例的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编 程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。

Claims (16)

  1. 一种数字签名的生成方法,其特征在于,所述方法应用于多个节点服务器中的第一节点服务器,所述方法包括:
    响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥;其中,所述联合签名请求至少携带有待签名的目标信息;
    根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;
    对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明文件的第一数据组;并接收其他节点服务器广播的第一数据组;
    根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据;
    根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名;
    根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名;
    根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
  2. 根据权利要求1所述的方法,其特征在于,根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据,包括:
    根据预设的协议规则、所述其他节点服务器广播的第一数据组,生成并向所述其他节点服务器中的各个节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据;并接收所述其他节点服务器生成并发送的与第一节点服务器相对应的第一类参数数据、第二密文数据和第三密文数据;
    解密所接收到的第二密文数据和第三密文数据,得到与其他节点服务器分别对应的第二类参数据和第三类参数数据;
    根据预设的协议规则,利用第一随机数、其他节点服务器的门限分片公钥,以及与 其他节点服务器对应的第二类参数数据和第三类参数数据进行第一验证;
    在确定第一验证通过的情况下,利用第一随机数、第一临时私钥,以及与其他节点服务器对应的第二类参数数据和第三类参数数据,生成第一节点服务器的第一中间数据和第二中间数据;
    对外广播所述第一中间数据;并接收其他节点服务器广播的第一中间数据;
    根据第一节点服务器的第一中间数据和其他节点服务器广播的第一中间数据,生成第三中间数据。
  3. 根据权利要求2所述的方法,其特征在于,根据预设的协议规则、所述其他节点服务器广播的第一数据组,生成并向所述其他节点服务器中的各个节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据,包括:
    根据预设的协议规则,按照以下方式生成并向所述其他节点服务器中的当前节点服务器发送相对应的第一类参数数据、第二密文数据和第三密文数据:
    生成针对当前节点服务器的第三随机数、第四随机数,并根据所述第四随机数,生成与当前节点服务器对应的第一类参数数据;
    根据预设的协议规则和所述其他节点服务器广播的第一数据组,利用当前节点服务器广播的第一密文数据,通过同态加密处理,得到与当前节点服务器对应的第二密文数据和第三密文数据;
    将至少包含有与当前节点服务器对应的第一类参数数据、第二密文数据和第三密文数据的第二数据组发送至当前节点服务器。
  4. 根据权利要求1所述的方法,其特征在于,根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名,包括:
    根据预设的协议规则,打开第一临时承诺文件,以使其他节点服务器获取第一节点服务器的第一临时公钥;
    生成并对外广播关于所述第一临时公钥的第一临时证明文件;
    获取其他节点服务器的第一临时公钥,以及其他节点服务器广播的第一临时证明文件;
    根据所述其他节点服务器的第一临时公钥,以及其他节点服务器广播的第一临时证明文件,进行第二验证;
    在确定第二验证通过的情况下,根据预设的协议规则、所述第三中间数据、所述其 他节点服务器的第一临时公钥,生成目标信息的目标数字签名中的第一部分签名。
  5. 根据权利要求4所述的方法,其特征在于,根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,生成目标信息的目标数字签名中的第一部分签名,包括:
    根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,计算第一目标数据;
    确定出第一目标数据的横坐标值,作为所述第一部分签名。
  6. 根据权利要求5所述的方法,其特征在于,根据预设的协议规则、所述第三中间数据、所述其他节点服务器的第一临时公钥,计算第一目标数据,包括:
    按照以下算式计算第一目标数据:
    R=δ -1(∑ j∈SΓ j)
    其中,R为第一目标数据,δ为第三中间数据,Γ j为编号为j的节点服务器的第一临时公钥,j为节点服务器的编号,S为参与联合签名的节点服务器的集合。
  7. 根据权利要求1所述的方法,其特征在于,根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名,包括:
    根据第一随机数、目标信息、第二中间数据和第一部分签名,构建第一节点服务器的第二签名的分量数据;
    根据预设的协议规则,利用第二签名的分量数据、第一部分签名,构造第一中介数据和第二中介数据;
    生成并对外广播关于所述第一中介数据和第二中介数据的第一中介承诺文件;
    在确定接收到其他节点服务器广播的第一中介承诺文件的情况下,打开第一中介承诺文件,以使其他节点服务器获取第一节点服务器的第一中介数据和第二中介数据;
    生成并对外广播关于所述第一中介数据和第二中介数据的第一中介证明文件;
    获取其他节点服务器的第一中介数据和第二中介数据,以及其他节点服务器广播的第一中介证明文件;
    根据所述其他节点服务器的第一中介数据和第二中介数据,以及其他节点服务器广播的第一中介证明文件,进行第三验证;
    在确定第三验证通过的情况下,对外广播第一节点服务器的第二签名的分量数据;并接收其他节点服务器广播的第二签名的分量数据;
    根据所述第一节点服务器的第二签名的分量数据、其他节点服务器广播的第二签名的分量数据,生成目标信息的目标数字签名中的第二部分签名。
  8. 根据权利要求7所述的方法,其特征在于,在确定第三验证通过之后,所述方法还包括:
    根据预设的协议规则,利用第二签名的分量数据、第一部分签名、签名公钥、第一中介数据和第二中介数据,构造第三中介数据和第四中介数据;
    生成并对外广播关于所述第三中介数据和第四中介数据的第二中介承诺文件;
    在确定接收到其他节点服务器广播的第二中介承诺文件的情况下,打开第二中介承诺文件,以使其他节点服务器获取第一节点服务器的第三中介数据和第四中介数据;
    获取其他节点服务器的第三中介数据和第四中介数据;
    根据所述其他节点服务器的第三中介数据和第四中介数据,以及第一节点服务器的第三中介数据和第四中介数据,进行第四验证;
    相应的,
    在确定第四验证通过的情况下,对外广播第一节点服务器的第二签名的分量数据;并接收其他节点服务器广播的第二签名的分量数据。
  9. 根据权利要求7所述的方法,其特征在于,根据第一随机数、目标信息、第二中间数据和第一部分签名,构建第一节点服务器的第二签名的分量数据,包括:
    按照以下算式,构建第一节点服务器的第二签名的分量数据:
    s i=k im+σ ir
    其中,s i为第一节点服务器的第二签名的分量数据,i为第一节点服务器的编号,k i为第一节点服务器的第一随机数,m为目标信息,σ i为第一节点服务器的第二中间数据,r为第一部分签名。
  10. 根据权利要求1所述的方法,其特征在于,响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥,包括:
    响应联合签名请求,在确定参与联合签名的情况下,生成并对外广播确认信息;
    接收其他节点服务器广播的确认信息;
    统计广播确认信息的节点服务器的数量;
    在确定广播确认信息的节点服务器的数量大于预设的门限阈值的情况下,生成第一随机数、第二随机数和第一临时私钥。
  11. 根据权利要求1所述的方法,其特征在于,在响应联合签名请求,生成第一随机 数、第二随机数和第一临时私钥之前,所述方法还包括:
    根据预设的协议规则,生成第一公钥、第一私钥、第一部分签名私钥和第一部分签名公钥;
    生成并对外广播包含有关于第一部分签名公钥的第一部分承诺文件和第一公钥的第三数据组;
    在确定接收到其他节点服务器广播的第三数据组的情况下,打开第一部分承诺文件,以使其他节点服务器获取第一节点服务器的第一部分签名公钥;
    获取并根据其他节点服务器的第一部分签名公钥进行第五验证;
    在确定第五验证通过的情况下,根据预设的协议规则、预设的门限阈值、第一部分签名公钥生成第一节点服务器的门限分片私钥和门限分片公钥,并对外广播门限分片公钥。
  12. 根据权利要求11所述的方法,其特征在于,所述第一公钥包括:基于ElGamal加密算法的公钥数据和基于类群加密算法的公钥数据;所述第一私钥包括:基于ElGamal加密算法的私钥数据和基于类群加密算法的私钥数据。
  13. 根据权利要求11所述的方法,其特征在于,根据预设的协议规则、预设的门限阈值、第一部分签名公钥生成第一节点服务器的门限分片私钥和门限分片公钥,包括:
    根据预设的协议规则,构建次数为预设的门限阈值的目标多项式;
    根据所述目标多项式,与其他节点服务器进行交互,以获取其他节点服务器针对第一节点服务器的门限参数;
    根据其他节点服务器针对第一节点服务器的门限参数,生成第一节点服务器的门限分片私钥;
    根据所述第一节点服务器的门限分片私钥,生成第一节点服务器的门限分片公钥。
  14. 一种数字签名的生成装置,其特征在于,包括:
    第一生成模块,用于响应联合签名请求,生成第一随机数、第二随机数和第一临时私钥;其中,所述联合签名请求至少携带有待签名的目标信息;
    第一处理模块,用于根据预设的协议规则,利用第二随机数和第一公钥加密第一随机数得到第一密文数据;利用第一临时私钥生成关于第一临时公钥的第一临时承诺文件;并生成关于第一密文数据和第一临时承诺文件的第一证明文件;其中,所述预设的协议规则为根据ElGamal加密算法和类群加密算法得到的;
    广播模块,用于对外广播包含有所述第一密文数据、第一临时承诺文件和第一证明 文件的第一数据组;并接收其他节点服务器广播的第一数据组;
    第二处理模块,用于根据预设的协议规则、所述其他节点服务器广播的第一数据组,通过与其他节点服务器中的各个节点服务器分别进行预设的第一数据交互,以得到第二中间数据和第三中间数据;
    第三处理模块,用于根据预设的协议规则、所述第三中间数据,通过与其他节点服务器进行预设的第二数据交互,以生成目标信息的目标数字签名中的第一部分签名;
    第四处理模块,用于根据预设的协议规则、第一随机数、目标信息、第二中间数据和第一部分签名,通过与其他节点服务器进行预设的第三数据交互,以生成目标信息的目标数字签名中的第二部分签名;
    第二生成模块,用于根据所述第一部分签名和所述第二部分签名,生成目标信息的目标数字签名。
  15. 一种服务器,其特征在于,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至13中任一项所述方法的步骤。
  16. 一种计算机可读存储介质,其特征在于,其上存储有计算机指令,所述指令被执行时实现权利要求1至13中任一项所述方法的步骤。
PCT/CN2020/133998 2020-12-04 2020-12-04 数字签名的生成方法、装置和服务器 WO2022116175A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/133998 WO2022116175A1 (zh) 2020-12-04 2020-12-04 数字签名的生成方法、装置和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/133998 WO2022116175A1 (zh) 2020-12-04 2020-12-04 数字签名的生成方法、装置和服务器

Publications (1)

Publication Number Publication Date
WO2022116175A1 true WO2022116175A1 (zh) 2022-06-09

Family

ID=81852874

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/133998 WO2022116175A1 (zh) 2020-12-04 2020-12-04 数字签名的生成方法、装置和服务器

Country Status (1)

Country Link
WO (1) WO2022116175A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117155584A (zh) * 2023-10-27 2023-12-01 北京信安世纪科技股份有限公司 Schnorr数字签名方法、系统及设备
CN117439737B (zh) * 2023-12-18 2024-02-27 北京信安世纪科技股份有限公司 协同签名方法和协同签名系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140211938A1 (en) * 2013-01-29 2014-07-31 Certicom Corp. Modified elliptic curve signature algorithm for message recovery
CN108667626A (zh) * 2018-07-20 2018-10-16 陕西师范大学 安全的两方协作sm2签名方法
CN109660361A (zh) * 2019-02-27 2019-04-19 武汉大学 一种对称环境下多方联合生成sm9数字签名的方法
CN110138567A (zh) * 2019-05-22 2019-08-16 广州安研信息科技有限公司 一种基于ecdsa的协同签名方法
CN111404696A (zh) * 2020-03-31 2020-07-10 中国建设银行股份有限公司 协同签名方法、安全服务中间件、相关平台及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140211938A1 (en) * 2013-01-29 2014-07-31 Certicom Corp. Modified elliptic curve signature algorithm for message recovery
CN108667626A (zh) * 2018-07-20 2018-10-16 陕西师范大学 安全的两方协作sm2签名方法
CN109660361A (zh) * 2019-02-27 2019-04-19 武汉大学 一种对称环境下多方联合生成sm9数字签名的方法
CN110138567A (zh) * 2019-05-22 2019-08-16 广州安研信息科技有限公司 一种基于ecdsa的协同签名方法
CN111404696A (zh) * 2020-03-31 2020-07-10 中国建设银行股份有限公司 协同签名方法、安全服务中间件、相关平台及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117155584A (zh) * 2023-10-27 2023-12-01 北京信安世纪科技股份有限公司 Schnorr数字签名方法、系统及设备
CN117155584B (zh) * 2023-10-27 2024-01-26 北京信安世纪科技股份有限公司 Schnorr数字签名方法、系统及设备
CN117439737B (zh) * 2023-12-18 2024-02-27 北京信安世纪科技股份有限公司 协同签名方法和协同签名系统

Similar Documents

Publication Publication Date Title
CN111066285B (zh) 基于sm2签名恢复公钥的方法
JP6959994B2 (ja) データ重複排除のためのアプリケーションによる暗号化鍵の生成
Miao et al. Secure multi-server-aided data deduplication in cloud computing
CN114586313B (zh) 用于签署一信息的系统及方法
CN108667625B (zh) 协同sm2的数字签名方法
CN111819815B (zh) 用于转移对数字资产的控制的计算机实现的方法和系统
CN111989891A (zh) 数据处理方法、相关装置及区块链系统
US8681986B2 (en) Single-round password-based key exchange protocols
CN112417489B (zh) 数字签名的生成方法、装置和服务器
CN112787796B (zh) 一种边缘计算中检测虚假数据注入的聚合方法及装置
WO2022116176A1 (zh) 数字签名的生成方法、装置和服务器
Ji et al. Flexible identity-based remote data integrity checking for cloud storage with privacy preserving property
CN111783136A (zh) 一种数据保护方法、装置、设备和存储介质
CN106789087B (zh) 确定消息的数据摘要、基于多方的数字签名的方法及系统
CN113765662B (zh) 一种基于sm2算法的签名及解密方法和系统
WO2022116175A1 (zh) 数字签名的生成方法、装置和服务器
WO2012156254A1 (en) A method for performing a group digital signature
JP2023547156A (ja) サービス拒否攻撃の識別
TW202232913A (zh) 共享金鑰產生技術
CN112436938A (zh) 数字签名的生成方法、装置和服务器
CN118160275A (zh) 阈值签名方案
US20240121109A1 (en) Digital signatures
CN111565108B (zh) 签名处理方法、装置及系统
WO2024092935A1 (zh) 一种区块链上实现分布式密钥生成的方法、系统和节点
Shin et al. A verifier-based password-authenticated key exchange using tamper-proof hardware

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: 20964021

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 10/11/2023)

122 Ep: pct application non-entry in european phase

Ref document number: 20964021

Country of ref document: EP

Kind code of ref document: A1