WO2015127789A1 - 基于组合公钥密码体制的通信方法、装置及系统 - Google Patents

基于组合公钥密码体制的通信方法、装置及系统 Download PDF

Info

Publication number
WO2015127789A1
WO2015127789A1 PCT/CN2014/089536 CN2014089536W WO2015127789A1 WO 2015127789 A1 WO2015127789 A1 WO 2015127789A1 CN 2014089536 W CN2014089536 W CN 2014089536W WO 2015127789 A1 WO2015127789 A1 WO 2015127789A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
key
shared
identifier
shared key
Prior art date
Application number
PCT/CN2014/089536
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 华为技术有限公司
Publication of WO2015127789A1 publication Critical patent/WO2015127789A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols

Definitions

  • the present invention relates to communication technologies, and in particular, to a communication method, apparatus and system based on a combined public key cryptosystem.
  • TLS Transport Layer Security
  • the protocol stack of the TLS is divided into two layers, the bottom layer is a TLS record protocol, and the upper layer includes a TLS handshake protocol, a TLS password change protocol, and a TLS warning protocol.
  • the TLS record protocol is built on top of TCP. It provides connection security with two characteristics: first, confidentiality, using a symmetric encryption algorithm; secondly, using a hash-based message authentication code (Hash-based Message Authentication Code) , referred to as: HMAC) algorithm.
  • HMAC hash-based message authentication code
  • the TLS handshake protocol in the prior art includes the following steps: 1.
  • the client interacts with the server with a client_hello message and a server_hello message to establish a security capability; 2.
  • the server sends the server identity information and the server_hello_done message to the client; 3.
  • the client sends the server to the server.
  • the client and the server copy the Cipher_Suite negotiated to the current connection state, and send the finished message with the new algorithm and the key parameter.
  • step 2 after receiving the server_hello_done message, the client checks the server's certificate and authenticates the server. If the server requests its certificate, it sends a certificate message, and then the client sends a client_key_exchange message, which depends on the message.
  • the client_key_exchange message After the client_key_exchange message is sent, the client and the server can calculate the shared key shared_key based on the Identity Based Encryption (IBE) algorithm.
  • the TLS handshake protocol provided by the prior art is used for interaction, due to the handshake process, The client interacts with the server in a large number, and needs to verify the certificate online and calculate the shared key, thereby reducing the authentication efficiency.
  • the present invention provides a communication method, apparatus and system based on a combined public key cryptosystem for improving authentication efficiency in communication.
  • a first aspect of the present invention provides a communication method based on a combined public key cryptosystem, including:
  • the first node acquires the private key of the first node from the key generation center, and acquires the identifier of the second node according to the neighbor node identifier list;
  • the first node calculates a public key of the second node according to the identifier of the second node
  • the first node calculates a shared key parameter of the first node according to a private key of the first node and a public key of the second node;
  • the first node calculates a shared key of the first node according to the shared key parameter of the first node, and generates a key verification code corresponding to the shared key of the first node;
  • the first node communicates with the second node according to a shared key of the first node.
  • the acquiring, by the first node, the private key of the first node from the key generation center includes:
  • the first node acquires an identifier of the first node, and sends an identifier of the first node to the key generation center;
  • the first node receives a private key of the first node sent by the key generation center.
  • the private key expression of the first node is:
  • d 1 is a private key of the first node
  • the q is a large prime number
  • the ⁇ a 1 , a 2 , . . . , a n ⁇ is a first parameter set
  • a i is a positive integer.
  • the first parameter set is obtained by inputting the identifier of the first node as an input of a pseudo-random function, and a i ⁇ q, the i ⁇ [1, n], the ⁇ x 1 , x 2 ,... , x n ⁇ is the master key set, x i is a positive integer, and the n is defined according to system security parameters.
  • the method before the acquiring, by the first node, the private key of the first node, the method further includes:
  • the first node receives a system parameter set sent by the key generation center, where the system parameter set expression is:
  • the MPK is a system parameter set
  • the g is a generating element of the sub-group of the q constituent prime number domain.
  • the first node passes the following formula according to the private key of the first node and the public key of the second node Calculating the shared key parameter of the first node:
  • P 1 is a shared key parameter of the first node
  • the (pow(y 1 , b 1 )pow(y 2 , b 2 )...pow(y n , b n )) is the a public key of the second node
  • the ⁇ b 1 , b 2 , . . . , b n ⁇ is a second parameter set
  • b i is a positive integer
  • the second parameter set is a pseudo by using the identifier of the second node
  • the input to the random function is obtained, and b i ⁇ q,i ⁇ [1,n].
  • the first node is based on the private key of the first node and the second After the public key of the node calculates the shared key parameter of the first node, the method further includes:
  • the first node listens to broadcast information in a network range where the first node is located, and acquires a hash value according to the broadcast information;
  • the first node calculates the shared key of the first node according to the shared key parameter of the first node, and includes:
  • the first node calculates a shared key of the first node according to the shared key parameter of the first node and the hash value.
  • the first node monitors broadcast information in a network range where the first node is located, and acquires a hash according to the broadcast information. Values, including:
  • the first node maintains a buffer of a time window, and the first node will be in the time window
  • the broadcast information in the network range is recorded in the buffer, and the hash value is acquired according to the broadcast information.
  • the first node is based on the shared key of the first node and the second Node communication, including:
  • the first node derives an encrypted symmetric key and a message authentication code key from the shared key of the first node;
  • the first node randomly generates an initialization vector, and generates ciphertext data according to the encrypted symmetric key encryption data; and generates a message authentication code according to the message authentication code key, the initialization vector, and the ciphertext data;
  • the first node sends a packet including the ciphertext data, the initialization vector, and the message authentication code to the second node.
  • a second aspect of the present invention provides a communication method based on a combined public key cryptosystem, including:
  • the second node acquires the private key of the second node from the key generation center, and obtains the identifier of the first node according to the neighbor node identifier list;
  • the second node calculates a public key of the first node according to the identifier of the first node
  • the second node calculates a shared key parameter of the second node according to a private key of the second node and a public key of the first node;
  • the second node calculates a shared key of the second node according to the shared key parameter of the second node, and generates a second key verification code corresponding to the shared key of the second node;
  • the second node sends a shared key response message to the first node, to confirm that the first key verification code is correct;
  • the second node communicates with the first node according to a shared key of the second node.
  • the acquiring, by the second node, the private key of the second node from the key generation center includes:
  • the second node receives the private key of the second node sent by the key generation center.
  • the private key expression of the second node is:
  • the d 2 is a private key of the second node
  • the q is a large prime number
  • the ⁇ b 1 , b 2 , . . . , b n ⁇ is a second parameter set
  • b i is a positive integer.
  • the second parameter set is obtained by inputting the identifier of the second node as an input of a pseudo-random function, and b i ⁇ q, i ⁇ [1, n], the ⁇ x 1 , x 2 , ..., x n ⁇ is the master key set, x i is a positive integer, and the n is defined according to system security parameters.
  • the method before the acquiring, by the second node, the private key of the second node, the method further includes:
  • the second node receives a system parameter set sent by the key generation center, where the system parameter set expression is:
  • the MPK is a system parameter set
  • the g is a generating element of the sub-group of the q constituent prime number domain.
  • the second node passes the following formula according to the private key of the second node and the public key of the first node Calculating a shared key parameter of the second node:
  • P 2 is a shared key parameter of the second node
  • ..pow(y n , a n )) is the a public key of the first node
  • the ⁇ a 1 , a 2 , . . . , a n ⁇ is a first parameter set
  • a i is a positive integer
  • the first parameter set is a pseudo by using the identifier of the first node
  • the input of the random function is obtained, and a i ⁇ q, i ⁇ [1, n].
  • the second node is configured according to the private key of the second node and the first After the public key of the node calculates the shared key parameter of the second node, the method further includes:
  • the second node listens to broadcast information in a network range where the second node is located, and acquires a hash value according to the broadcast information;
  • the second node calculates a shared key of the second node according to the shared key parameter of the second node and the hash value.
  • the second node monitors broadcast information in a network range where the second node is located, and acquires a hash according to the broadcast information. Values, including:
  • the second node maintains buffering of the time window, and the second node records the broadcast information in the network range in the time window in the buffer, and acquires the hash value according to the broadcast information.
  • the second node is based on the shared key of the second node and the first Node communication, including:
  • the second node derives an encrypted symmetric key and a message authentication code key from the shared key of the second node;
  • the second node generates a second message authentication code according to the message authentication code key and the initialization vector
  • the second node compares the second message authentication code with the first message authentication code, and if yes, decrypts the ciphertext data according to the encrypted symmetric key.
  • a third aspect of the present invention provides a communication method based on a combined public key cryptosystem, including:
  • the key generation center generates a system parameter set according to the master key set, and sends the system parameter set to the network node;
  • the key generation center receives an identifier of the network node sent by the network node
  • the key generation center calculates a private key of the network node according to the identifier of the network node;
  • the key generation center sends the private key of the network node to the network node.
  • the method before the key generation center generates the system parameter set according to the master key set, the method further includes:
  • the key generation center generates the master key set, and the master key set expression is:
  • the MSK is a master key set, x i is a positive integer, and the i ⁇ [1, n], the n is defined according to a system security parameter.
  • system parameter set expression is:
  • the MPK is a system parameter set, the q is a large prime number, and the g is a generating element of the sub-group of the q constituent prime number domain.
  • the key generation center calculates the private key of the network node according to the identifier of the network node, including:
  • the key generation center acquires a parameter set ⁇ m 1 , m 2 , . . . , m n ⁇ by using a pseudo-random function according to the identifier of the network node, m i is a positive integer, and m i ⁇ q;
  • the key generation center acquires the private key of the network node by using the following formula:
  • d is a private key of the network node.
  • a fourth aspect of the present invention provides a node comprising:
  • An obtaining module configured to acquire a private key of the node from a key generation center, and acquire an identifier of another node according to the neighbor node identifier list;
  • a processing module configured to calculate a public key of the another node according to the identifier of the another node; and configured to calculate a shared secret of the node according to the private key of the node and a public key of the another node
  • the key parameter is further configured to calculate a shared key of the node according to the shared key parameter of the node, and generate a key verification code corresponding to the shared key of the node;
  • a sending module configured to send a shared key verification message to the another node, where the shared key verification message includes the key verification code
  • a receiving module configured to receive a shared key response message sent by the another node, to confirm that the key verification code is correct
  • the sending module is further configured to communicate with the another node according to the shared key of the node.
  • the acquiring module is specifically configured to acquire an identifier of the node, and send the identifier of the node to the key generation center, and receive The private key of the node sent by the key generation center.
  • the private key expression of the node is:
  • the d 1 is a private key of the node
  • the q is a large prime number
  • the ⁇ a 1 , a 2 , . . . , a n ⁇ is a first parameter set
  • a i is a positive integer
  • the first A parameter set is obtained by inputting the identity of the node as a pseudo-random function
  • the ⁇ x 1 , x 2 ,... , x n ⁇ is the master key set
  • x i is a positive integer
  • the n is defined according to system security parameters.
  • the receiving module is further configured to receive a system parameter set sent by a key generation center, where
  • the system parameter set expression is:
  • the MPK is a system parameter set
  • the g is a generating element of the sub-group of the q constituent prime number domain.
  • the processing module is specifically configured to pass the public key of the node and the public key of the other node. Calculate the shared key parameters of the node as follows:
  • P 1 is a shared key parameter of the node
  • the (pow(y 1 , b 1 )pow(y 2 , b 2 )...pow(y n , b n )) is the other a public key of the node
  • the ⁇ b 1 , b 2 , . . . , b n ⁇ is a second parameter set
  • b i is a positive integer
  • the second parameter set uses the identifier of the other node as a pseudo-random function
  • the input is obtained, and b i ⁇ q,i ⁇ [1,n].
  • the method further includes:
  • the monitoring module monitors broadcast information in a network range where the node is located, and obtains a hash value according to the broadcast information;
  • the processing module is specifically configured to calculate a shared key of the node according to the shared key parameter of the node and the hash value.
  • the monitoring module is specifically configured to maintain buffering of a time window, and the network in the time window is The broadcast information in the range is recorded in the buffer, and the hash value is acquired based on the broadcast information.
  • the processing module is further configured to: derive an encryption from the shared key of the node Symmetric key and message authentication code key;
  • the processing module is further configured to randomly generate an initialization vector, encrypt data according to the encrypted symmetric key, generate ciphertext data, and generate a message according to the message authentication code key, the initialization vector, and the ciphertext data.
  • the sending module is further configured to send, to the another node, a packet that includes the ciphertext data, the initialization vector, and the message authentication code.
  • a fifth aspect of the present invention provides a node comprising:
  • An obtaining module configured to acquire a private key of the node from a key generation center, and acquire an identifier of another node according to the neighbor node identifier list;
  • a processing module configured to calculate a public key of the another node according to the identifier of the another node; and configured to calculate a shared secret of the node according to the private key of the node and a public key of the another node
  • the key parameter is further configured to calculate a shared key of the node according to the shared key parameter of the node, and generate a second key verification code corresponding to the shared key of the node;
  • a receiving module configured to receive a shared key verification message sent by the another node, where the shared key verification message includes a first key verification code
  • a sending module configured to send a shared key response message to the another node, if the first key verification code matches the second key verification code, to confirm that the first key verification code is correct;
  • the receiving module is further configured to communicate with the another node according to the shared key of the node.
  • the acquiring module is specifically configured to acquire an identifier of the node, and send an identifier of the node to the key generation center to receive the secret The private key of the node sent by the key generation center.
  • the private key expression of the node is:
  • the d 2 is a private key of the node
  • the q is a large prime number
  • the ⁇ b 1 , b 2 , . . . , b n ⁇ is a second parameter set
  • b i is a positive integer
  • the first The two parameter set is obtained by inputting the identifier of the node as a pseudo-random function
  • the ⁇ x 1 , x 2 , ..., x n ⁇ is mainly
  • the set of keys, x i is a positive integer
  • the n is defined according to system security parameters.
  • the receiving module is further configured to receive a system parameter set sent by the key generation center, where the system parameter set is The expression is:
  • the MPK is a system parameter set
  • the g is a generating element of the sub-group of the q constituent prime number domain.
  • the processing module is specifically configured to pass the public key of the node and the public key of the other node. Calculate the shared key parameters of the node as follows:
  • P 2 is a shared key parameter of the node
  • ..pow(y n , a n ) is the another node Public key
  • the ⁇ a 1 , a 2 , . . . , a n ⁇ is a first parameter set
  • a i is a positive integer
  • the first parameter set is obtained by using the identifier of the other node as a pseudo-random function
  • the input is obtained, and a i ⁇ q,i ⁇ [1,n].
  • the method further includes:
  • a monitoring module configured to monitor broadcast information in a network range where the node is located, and obtain a hash value according to the broadcast information
  • the processing module is specifically configured to calculate a shared key of the node according to the shared key parameter of the node and the hash value.
  • the monitoring module is specifically configured to maintain buffering of a time window, and the network window within the time window The broadcast information is recorded in the buffer, and the hash value is acquired based on the broadcast information.
  • the receiving module is further configured to receive the ciphertext data sent by the another node , an initialization vector, and a message of the first message authentication code;
  • the processing module is further configured to: derive an encrypted symmetric key and a message authentication code key from a shared key of the node;
  • the processing module is further configured to: according to the message authentication code key and the initialization vector Generating a second message authentication code;
  • the processing module is further configured to compare the second message authentication code with the first message authentication code, and if yes, decrypt the ciphertext data according to the encrypted symmetric key.
  • a sixth aspect of the present invention provides a key generation center, including:
  • a processing module configured to generate a system parameter set according to the master key set, and send the system parameter set to the network node;
  • a receiving module configured to receive an identifier of the network node sent by the network node
  • the processing module is further configured to calculate, according to an identifier of the network node, a private key of the network node;
  • a sending module configured to send, to the network node, a private key of the network node.
  • the processing module is further configured to generate the master key set, where the master key set expression is:
  • the MSK is a master key set, x i is a positive integer, and the i ⁇ [1, n], the n is defined according to a system security parameter.
  • system parameter set expression is:
  • the MPK is a system parameter set, the q is a large prime number, and the g is a generating element of the sub-group of the q constituent prime number domain.
  • the processing module is configured to use a pseudo random function according to the identifier of the network node. Obtaining a parameter set ⁇ m 1 , m 2 , . . . , m n ⁇ , m i is a positive integer, and the m i ⁇ q, the i ⁇ [1, n];
  • the processing module is specifically configured to obtain a private key of the network by using the following formula:
  • d is a private key of the network node.
  • a seventh aspect of the present invention provides a secure communication system based on a combined public key cryptosystem, comprising: the node described in any one of the fourth aspect or the fourth aspect, the fifth aspect Or the node described in any of the feasible implementations of the fifth aspect, the sixth aspect Or the key generation center described in any of the feasible implementations of the sixth aspect.
  • the communication method, device and system based on the combined public key cryptosystem provided by the embodiment obtain the respective private keys from the key generation center by the first node and the second node respectively, and the first node obtains the first The identifier of the second node, the second node obtains the identifier of the first node according to the neighbor node identifier list; the first node calculates the public key of the second node according to the identifier of the second node, and the corresponding second node is identified according to the identifier of the first node Calculating a public key of the first node; the first node calculates a shared key parameter of the first node according to the private key of the first node and the public key of the second node; the first node calculates the shared key parameter according to the first node a shared key of the first node, generating a key verification code corresponding to the shared key of the first node; the first node sends a shared key verification message to the second node, where the shared key verification message includes a key
  • the steps of the first node and the second node respectively calculating the respective shared key parameters and calculating the shared key of the other party according to the respective shared key parameters can be completed offline, reducing the number of interactions, so when the first node initiates At the time of certification, the certification process can be completed in a very short time, which improves the efficiency of certification.
  • FIG. 1 is a schematic flowchart of a communication method based on a combined public key cryptosystem according to an embodiment of the present invention
  • FIG. 2 is a schematic flowchart of another communication method based on a combined public key cryptosystem according to an embodiment of the present invention
  • FIG. 3 is a schematic flowchart of another communication method based on a combined public key cryptosystem according to an embodiment of the present invention
  • FIG. 4 is a schematic flowchart of another communication method based on a combined public key cryptosystem according to an embodiment of the present invention.
  • FIG. 5 is a schematic structural diagram of a node according to an embodiment of the present disclosure.
  • FIG. 6 is a schematic structural diagram of another node according to an embodiment of the present disclosure.
  • FIG. 7 is a schematic structural diagram of another node according to an embodiment of the present disclosure.
  • FIG. 8 is a schematic structural diagram of another node according to an embodiment of the present disclosure.
  • FIG. 9 is a schematic structural diagram of a key generation center according to an embodiment of the present invention.
  • the Combined Public Key (CPK) system is an identity-based cryptosystem.
  • the system includes a key generation center that generates the entire system master key and the user's private key.
  • the key is its identity.
  • the key generation center maps the user's identity to an integer satisfying certain conditions through a pseudo-random function, and calculates the user's private key through the user private key generation algorithm.
  • the advantage of the identity-based cryptosystem over the general public key cryptosystem is that the user's public key is its identity in the identity-based cryptosystem, thus realizing automatic binding of identity and public key without using a public key certificate chain. Authenticate and eliminate the overhead of managing the public key certificate chain.
  • CPK has the advantage of effectively utilizing the deployed traditional public key cryptosystem to reduce the overhead caused by deploying identity-based cryptosystems.
  • Another advantage of CPK over other IBE schemes is its high efficiency, since the general IBE scheme is based on bilinear pairs, and CPK exploits the linear homomorphism of the public/private keys of the common public key cryptosystem. Nature does not require time-consuming bilinear pair calculations.
  • FIG. 1 is a schematic flowchart of a communication method based on a combined public key cryptosystem according to an embodiment of the present invention.
  • the method is a sender node of a communication data, that is, a first node, as shown in FIG. 1 , the method includes the following step:
  • Step 100 The first node acquires a private key of the first node from the key generation center, and acquires an identifier of the second node according to the neighbor node identifier list.
  • each node gets a recognized identity, such as a host name, domain name, network address, network name, IP address, domain name, phone number, or a unique name for the system contract.
  • the name of the node consists of the address/name and the expiration date.
  • a node can get a list of all nearby node unique identifiers. This list can be obtained from an interface (for example, the phone can access the local phone number book), or it can be automatically generated by the node (such as enumerating all the addresses of the network).
  • Neighboring nodes that need to be described refer to adjacent nodes of the first node.
  • Step 101 The first node calculates a public key of the second node according to the identifier of the second node.
  • the identifier of the second node is ID2, and the input of the ID2 as a pseudo-random function obtains a set of second parameter sets ⁇ b 1 , b 2 , . . . , b n ⁇ , where b i is a positive integer.
  • Pseudo Random Function PRF is a one-way, one-to-one mapping. The input is an arbitrary string, and the output is ⁇ m 1 , m 2 ,..., m n ⁇ , where 0 ⁇ m i ⁇ q.
  • the public key of the second node is (pow(y 1 , b 1 )pow(y 2 , b 2 )...pow(y n ,b n )), where ⁇ y 1 , y 2 ,..., y n ⁇ is the system A collection of parameters. It should be noted that the specific formula of the pseudo-random function and the second node public key involved in the embodiment is only for the step 101, and the step 101 is not limited to calculate the public key of the second node by other means.
  • Step 102 The first node calculates a shared key parameter of the first node according to the private key of the first node and the public key of the second node.
  • Step 103 The first node calculates a shared key of the first node according to the shared key parameter of the first node, and generates a first key verification code corresponding to the shared key of the first node.
  • Step 104 The first node sends a shared key verification message to the second node, where the shared key verification message includes a first key verification code.
  • Step 105 The first node receives the shared key response message sent by the second node, and confirms that the first key verification code is correct.
  • the first node and the second node in the embodiment respectively calculate their own shared key parameters according to the respective private key and the public key of the other party, and respectively Generating a first key verification code and a second key verification code, where the first key verification code is sent to the second node, the second node obtains the first key verification code and the second key verification The codes are compared. If the two match, the two parties can perform encrypted communication.
  • Step 106 The first node communicates with the second node according to the shared key of the first node.
  • the first node obtains the private key of the first node from the key generation center, and obtains the identifier of the second node according to the neighbor node identifier list; the first node is configured according to The identifier of the second node is calculated to obtain the public key of the second node; the first node calculates the shared key parameter of the first node according to the private key of the first node and the public key of the second node; the first node is shared according to the first node The key parameter is calculated to obtain a shared key of the first node, and a first key verification code corresponding to the shared key of the first node is generated; the first node sends a shared key verification message to the second node, and the shared key verification message is The first key verification code is included; the first node receives the shared key response message sent by the second node, and confirms that the first key verification code is correct; the first node communicates with the second node according to the shared key
  • the step of calculating the first shared key parameter by the first node and calculating the shared key of the first node according to the first shared key parameter is performed offline, reducing the number of interactions, so when the first node initiates the authentication, The certification process can be completed in a very short time, improving the efficiency of certification.
  • a feasible implementation manner of the first node in step 100 in FIG. 1 acquiring the private key of the first node from the key generation center is:
  • the first node acquires the identifier of the first node, and sends the identifier of the first node to the key generation center.
  • the first node receives the private key of the first node sent by the key generation center.
  • the first node only needs to communicate with the key generation center once, so the key generation center can be simply a board or a service process in the whole cloud, which has lower performance requirements and the key generation center also No need to stay online. This reduces deployment costs.
  • the private key expression of the first node shown in FIG. 1 is:
  • d 1 is the private key of the first node
  • q is a large prime number
  • ⁇ a 1 , a 2 , . . . , a n ⁇ is a first parameter set
  • a i is a positive integer
  • the first parameter set passes the first node
  • the identifier is obtained as the input of the pseudo-random function
  • a i ⁇ q, i ⁇ [1, n] ⁇ x 1 , x 2 , ..., x n ⁇ is the master key set
  • x i is a positive integer.
  • n is defined according to system security parameters.
  • step 100 of FIG. 1 Before step 100 of FIG. 1, the following steps are also included:
  • Step 106 The first node receives a system parameter set sent by a key generation center.
  • system parameter set expression is:
  • MPK is a system parameter set
  • g is q to form a generator of a subgroup in the prime field.
  • the first node calculates the shared key parameter of the first node according to the private key of the first node and the public key of the second node by using the following formula:
  • P 1 is the shared key parameter of the first node
  • ..pow(y n , b n )) is the public key of the second node
  • ⁇ b 1 , b 2 , . . . , b n ⁇ is a second parameter set
  • b i is a positive integer
  • the second parameter set is obtained by taking the identity of the second node as an input of the PRF
  • Pow(y n , b n ) is used to calculate the b n power of y n .
  • b n is an integer
  • P 1 can be understood as a special operation on the number field where b n is located, and must be a real execution of the remainder function.
  • the shared key parameter of the first node refers to a shared key parameter of the first node when the first node communicates with the second node, and if the first node communicates with other nodes, correspondingly, The shared key parameters of a node may be different.
  • step 102 in the foregoing embodiment the method further includes:
  • the first node listens to the broadcast information in the network range where the first node is located, and obtains the hash value according to the broadcast information.
  • the first node maintains a buffer of the time window, and the first node records the broadcast information in the network range in the time window in the buffer, and acquires the hash value according to the broadcast information.
  • the broadcast information in the network area where the first node is located is broadcast by the dedicated broadcast node; or the broadcast information in the network range where the first node is located is the communication information between the neighboring nodes of the first node; or;
  • the broadcast information within the network where a node is located is a network-wide identifiable background sound.
  • the first node calculates the shared key of the first node according to the shared key parameter and the hash value of the first node.
  • the first node reads the shared key parameter of the counterpart node to be communicated.
  • the first node sends HMAC (SK, "client finish” + h) to the second node;
  • the second node responds to HMAC (SK, "server finish” + h); Verification pair
  • the square HMAC result is correct. It should be noted that if there is no hash value, only SK is obtained according to P.
  • step 105 in FIG. 1 is:
  • Step 105a The first node derives an encrypted symmetric key and a message authentication code key from the shared key of the first node.
  • Step 105b The first node randomly generates an initialization vector, encrypts data according to the encrypted symmetric key, generates ciphertext data, and generates a message authentication code according to the message authentication code key, the initialization vector, and the ciphertext data.
  • Step 105c The first node sends a packet including the ciphertext data, the initialization vector, and the message authentication code to the second node.
  • the encrypted symmetric key and the message authentication code key are respectively derived from the shared key.
  • MAC algorithm such as HMAC-SHA-256
  • the message includes ciphertext data, an initialization vector, and a first message authentication code.
  • the receiver derives the encrypted symmetric key and the message authentication code key.
  • the second message authentication code is regenerated according to the generated message authentication code key, IV and ciphertext data, and matched with the first message authentication code in the transmitted ciphertext data, and if not, an error is reported. If they are the same, the plaintext is obtained by encrypting the symmetric key ciphertext data.
  • FIG. 2 is a schematic flowchart of another communication method based on a combined public key cryptosystem according to an embodiment of the present invention.
  • the method performs a host node that is a communication node, that is, a second node. As shown in FIG. 2, the method includes The following steps:
  • Step 200 The second node acquires a private key of the second node from the key generation center, and obtains an identifier of the first node according to the neighbor node identifier list.
  • Neighboring nodes that need to be described refer to adjacent nodes of the second node.
  • Step 201 The second node calculates a public key of the first node according to the identifier of the first node.
  • Step 202 The second node calculates a shared key parameter of the second node according to the private key of the second node and the public key of the first node.
  • Step 203 The second node calculates a shared key of the second node according to the shared key parameter of the second node, and generates a second key verification code corresponding to the shared key of the second node.
  • Step 204 The second node receives a shared key verification message sent by the first node, where the shared key verification message includes a first key verification code.
  • Step 205 If the first key verification code matches the second key verification code, the second node sends a shared key response message to the first node to confirm that the first key verification code is correct.
  • Step 206 The second node communicates with the first node according to the shared key of the second node.
  • the second node obtains the private key of the second node from the key generation center, and obtains the identifier of the first node according to the neighbor node identifier list; the second node is configured according to The identifier of the first node calculates the public key of the first node; the second node calculates the shared key parameter of the second node according to the private key of the second node and the public key of the first node; the second node shares according to the second node
  • the key parameter is calculated to obtain a shared key of the second node, and a second key verification code corresponding to the shared key of the second node is generated; the second node receives the shared key verification message sent by the first node, and the shared key verification
  • the message includes a first key verification code; if the second node determines that the first key verification code matches the second key verification code, the second node sends a shared key response message to the first node to confirm the first key.
  • the verification code is correct; the second node communicates with the first node according to the shared key of the second node.
  • the step of calculating the second shared key parameter according to the private key of the second node and calculating the shared key of the second node according to the second shared key parameter can be completed offline, reducing the number of interactions, and thus the first node
  • the second node can complete the authentication process in a very short time and improve the authentication efficiency.
  • a feasible implementation manner for the second node in step 200 of FIG. 2 to obtain the private key of the second node is:
  • the second node acquires the identifier of the second node, and sends the identifier of the second node to the key generation center.
  • the second node receives the private key of the second node sent by the key generation center.
  • the second node only needs to communicate with the key generation center once, so the key generation center can be simply a board or a service process in the whole cloud, the requirements for sex are lower, and the key generation center is also No need to stay online. This reduces deployment costs.
  • d 2 is the private key of the second node
  • q is a large prime number
  • ⁇ b 1 , b 2 , . . . , b n ⁇ is a second parameter set
  • the second parameter set is used as an input of the PRF by using the identifier of the second node It is found that b i is a positive integer, and b i ⁇ q, i ⁇ [1, n], ⁇ x 1 , x 2 , ..., x n ⁇ is the main key set, x i is a positive integer, n is based on System security parameter definition.
  • step 100 of FIG. 2 the method further includes:
  • the second node receives the system parameter set sent by the key generation center.
  • the system parameter set expression is:
  • MPK is a system parameter set
  • g is q to form a generator of a subgroup in the prime field.
  • the second node calculates the shared key parameter of the second node according to the private key of the second node and the public key of the first node by using the following formula:
  • P 2 is the shared key parameter of the second node
  • ..pow(y n , a n ) is the public key of the first node
  • ⁇ a 1 , a 2 , . . . , a n ⁇ is a first parameter set
  • a i is a positive integer
  • the first parameter set is obtained by using the identifier of the first node as an input of the PRF
  • step 202 of FIG. 2 the method further includes:
  • the second node listens to the broadcast information in the network range where the second node is located, and acquires the hash value according to the broadcast information.
  • the second node maintains a buffer of a time window, and the second node records the broadcast information in the network range in the time window in the buffer, and acquires the hash value according to the broadcast information.
  • the broadcast information in the network area where the second node is located is broadcast by the dedicated broadcast node; or the broadcast information in the network range where the second node is located is the communication information between the neighboring nodes of the second node; or;
  • the broadcast information in the network range where the two nodes are located is a network-recognizable background sound.
  • a feasible implementation manner of the second node calculating the shared key of the second node according to the shared key parameter of the second node is:
  • the second node calculates the shared key of the second node according to the shared key parameter and the hash value of the second node.
  • step 205 in FIG. 2 is:
  • Step 205a The second node receives the packet that is sent by the first node and includes the ciphertext data, the initialization vector, and the first message authentication code.
  • Step 205b The second node derives an encrypted symmetric key and a message authentication code key from the shared key of the second node.
  • Step 205c The second node generates a second message according to the message authentication code key and the initialization vector. Certificate code.
  • Step 205d The second node compares the second message authentication code with the first message authentication code, and if yes, decrypts the ciphertext data according to the encrypted symmetric key.
  • FIG. 3 is a schematic flowchart of another communication method based on a combined public key cryptosystem according to an embodiment of the present invention.
  • the method is implemented as a key generation center. As shown in FIG. 3, the method includes the following steps:
  • Step 300 The key generation center generates a system parameter set according to the master key set, and sends the system parameter set to the network node.
  • Step 301 The key generation center receives an identifier of a network node sent by the network node.
  • Step 302 The key generation center calculates a private key of the network node according to the identifier of the network node.
  • Step 303 The key generation center sends the private key of the network node to the network node.
  • the key generation center In the communication method based on the combined public key cryptosystem provided by the embodiment, the key generation center generates a system parameter set according to the master key set, and sends the system parameter set to the network node, and the key generation center receives the network sent by the network node.
  • the identification information of the node the key generation center calculates the private key of the network node according to the identification information of the network node, and the key generation center sends the private key of the network node to the network node. Since each network node only needs to communicate with the key generation center once, the key generation center can be simply a board or a service process in the entire cloud, with low requirements for the sex and the key generation center. No need to stay online. This reduces deployment costs.
  • step 300 of FIG. 3 the following steps are further included:
  • the key generation center generates a master key set, and the master key set expression is:
  • MSK is the master key set
  • x i is a positive integer
  • n is defined according to system security parameters.
  • the network node in this embodiment is specifically the first node and the second node.
  • system parameter set expression is:
  • MPK is a system parameter set
  • q is a large prime number
  • g is q a constituent element of a subgroup in the prime number domain.
  • the key generation center obtains the parameter set ⁇ m 1 , m 2 , . . . , m n ⁇ through a pseudo-random function according to the identifier of the network node, m i is a positive integer, and a i ⁇ q, q is a large prime number.
  • i [1, n]
  • the first parameter set and the second parameter set in the foregoing embodiment are specific sets when the parameter set corresponds to the identifier of different network nodes.
  • the key generation center obtains the private key of the network node by the following formula:
  • d is the private key of the network node.
  • the key generation center needs to perform the above steps 300 to 303 for the first node and the second node respectively.
  • step 301 in FIG. 3 is:
  • the key generation center receives the identifier of the first node sent by the first node.
  • step 302 in FIG. 3 is:
  • the private key expression of the first node is:
  • d 1 is the private key of the first node
  • q is a large prime number
  • ⁇ a 1 , a 2 , . . . , a n ⁇ is a first parameter set
  • a i is a positive integer
  • the first parameter set passes the first node
  • the identifier is obtained as the input of the PRF
  • a i ⁇ q, i ⁇ [1, n], ⁇ x 1 , x 2 , ..., x n ⁇ is the master key set
  • x i is a positive integer
  • n Defined according to system security parameters.
  • step 303 in FIG. 3 is:
  • the key generation center sends d 1 to the first node.
  • step 301 in FIG. 3 is:
  • the key generation center receives the identifier of the second node sent by the second node.
  • step 302 in FIG. 3 is:
  • the key generation center acquires the second parameter set ⁇ b 1 , b 2 , . . . , b n ⁇ according to the identifier of the second node, and b i is a positive integer, and b i ⁇ q, q is a large prime number, I ⁇ [1,n];
  • the key generation center obtains the private key of the second node by the following formula:
  • d 2 is the private key of the second node.
  • step 303 in FIG. 3 is:
  • the key generation center sends d 2 to the second node.
  • FIG. 4 is a schematic flowchart of another communication method based on a combined public key cryptosystem according to an embodiment of the present invention.
  • the interaction between the first node, the second node, and the key generation center is described in detail.
  • the first node takes the client as an example
  • the second node takes the server as an example.
  • the method includes the following steps:
  • Step 400 The key generation center generates a system parameter set according to the master key set.
  • Step 401 The key generation center sends the system parameter set to the client.
  • Step 402 The key generation center sends the system parameter set to the server.
  • the key generation center can send the system parameter set to the required node.
  • Step 403 The client sends the identifier of the client to the key generation center.
  • each node such as a client or server, obtains a recognized identifier, such as a host name, domain name, network address, network name, IP address, domain name, phone number, or a unique name for the system contract.
  • a recognized identifier such as a host name, domain name, network address, network name, IP address, domain name, phone number, or a unique name for the system contract.
  • the name of the node consists of the address/name and the expiration date.
  • Step 404 The server sends the identifier of the server to the key generation center.
  • Step 405 The key generation center separately calculates the private key of the client and the private key of the server according to the identifier of the client and the identifier of the server.
  • the key generation center first takes the identifier of the client as an input, obtains ⁇ m 1 , m 2 , . . . , m n ⁇ through a pseudo-random function, and then calculates the private state of the node (client or server).
  • the key, ie d (m 1 x 1 + m 2 x 2 + ... m n x n ) mod q.
  • Step 406 The key generation center sends the private key of the client to the client.
  • the key generation center sends the private key of the client to the client through the secure channel.
  • Step 407 The key generation center sends the private key of the server to the server.
  • the key generation center sends the private key of the server to the server through the secure channel.
  • Step 408 The client pre-calculates the first shared key parameter according to the private key of the client.
  • the client can obtain a list of identifiers including all neighboring node unique identifiers.
  • This list of identifiers can be obtained from an interface (for example, the phone can access the local phone number book), or it can be automatically generated by the client (such as enumerating all the addresses of the network).
  • the client calculates a partial key list of the first shared key parameter, and each identifier corresponds to a shared key parameter: PRF (ID) is obtained ⁇ a 1 , a 2 , ..., a n ⁇ , the first share of the client
  • PRF (ID) is obtained ⁇ a 1 , a 2 , ..., a n ⁇ , the first share of the client
  • d_ ⁇ client ⁇ is the private key of the client and d_ ⁇ server ⁇ is the private key of the server.
  • the effect is: by calculating (pow(y 1 , a 1 )pow(y 2 , a 2 )...pow(y n , a n )) ⁇ d mod q (where d is d_ ⁇ client ⁇ ), the client The terminal can calculate the shared key parameter P of both parties without knowing the private key of the server (d_ ⁇ server ⁇ ), and both the client (client) and the server (server) can do so, and the shared secret key finally obtained actually Equivalent to knowing the two private keys d_ ⁇ client ⁇ and d_ ⁇ server ⁇ , which implements the Diffile-Hellman key negotiation process in the CPK scenario.
  • Step 409 The client listens to broadcast information in a network range.
  • the client maintains a buffer of the time window for recording broadcast information within the network range within the time window, and the broadcast information can be monitored by all neighboring nodes.
  • the broadcast information may come from a dedicated broadcast node, or may be communication between adjacent nodes, or may be a background sound recognizable on the network. It should be noted that step 409 is optional.
  • Step 410 The client obtains a hash value according to the broadcast information, and calculates a shared key of the client according to the first shared key parameter and the hash value.
  • the client calculates the hash value h of all buffers of the time window.
  • the client reads the pre-computed result corresponding to the counterpart node to be communicated, that is, the second shared key parameter P1 of the server.
  • Step 411 The server pre-calculates the second shared key parameter according to the private key of the server.
  • the server may obtain a list of identifiers including all neighboring node unique identifiers.
  • This list of identifiers can be obtained from an interface (for example, the phone can be accessed) Ask the local phone number book), or it can be automatically generated by the server (such as enumerating all the addresses of the network).
  • step 208 details are not described herein again.
  • Step 412 The server listens to broadcast information in a network range.
  • the buffer of the server maintenance time window is used to record broadcast information within the network range within the time window, and the broadcast information can be monitored by all neighboring nodes.
  • the broadcast information may come from a dedicated broadcast node, or may be communication between adjacent nodes, or may be a background sound recognizable on the network.
  • Step 413 The server acquires a hash value according to the broadcast information, and calculates a shared key of the server according to the second shared key parameter and the hash value.
  • the server calculates the hash value h of all buffers of the time window.
  • the server reads the pre-computed result corresponding to the counterpart node to be communicated, that is, the first shared key parameter P2 of the client.
  • Step 414 The client endpoint sends a shared key verification message to the server point, where the shared key verification message includes the first key verification code of the client.
  • the client sends HMAC (SK, "client finish” + h) to the server; the server sends back HMAC (SK, "server finish” + h); the two parties mutually verify whether the HMAC result of the other party is correct.
  • Step 415 The server sends a shared key response message to the client, and confirms that the key verification code of the client is correct.
  • Step 416 The client and the server perform secure communication.
  • the encrypted symmetric key and the message authentication code key are respectively derived from the shared key. Randomly generate IV (initialization vector), encrypt data with a symmetric encryption scheme (such as AES-CBC), and generate a first message based on the message authentication code key, initialization vector, and ciphertext data using a MAC algorithm (such as HMAC-SHA-256). The authentication code is appended to the ciphertext data. Finally send the message. The receiver derives the encrypted symmetric key and the message authentication code key.
  • the second message authentication code is regenerated according to the generated message authentication code key, IV and ciphertext data. And matching with the first message authentication code in the transmitted ciphertext data, if not the same, an error is reported. If they are the same, the plaintext is obtained by encrypting the symmetric key ciphertext data.
  • FIG. 5 is a schematic structural diagram of a node according to an embodiment of the present invention.
  • the node may be the first node in the foregoing embodiment.
  • the node 1 includes: an obtaining module 10, a processing module 12, and a sending module 13.
  • Receive module 14 Receive module 14.
  • the obtaining module 10 is configured to acquire the private key of the node 1 from the key generation center, and acquire the identifier of the other node according to the neighbor node identifier list.
  • Another node corresponds to the second node in the foregoing embodiment.
  • the processing module 12 is configured to calculate a public key of another node according to the identifier of the other node; and is further configured to calculate the shared key parameter of the node 1 according to the private key of the node 1 and the public key of another node;
  • the shared key parameter of the node 1 calculates the shared key of the node 1, and generates a first key verification code corresponding to the shared key of the node 1.
  • the sending module 13 is configured to send a shared key verification message to another node, where the shared key verification message includes a first key verification code.
  • the receiving module 14 is configured to receive a shared key response message sent by another node, and confirm that the first key verification code is correct.
  • the sending module 13 is further configured to communicate with another node according to the shared key of the node 1. .
  • the node provided in this embodiment acquires the private key of the node from the key generation center through the acquiring module, and acquires the identifier of the other node according to the neighbor node identifier list; the processing module calculates the publicity of the other node according to the identifier of the other node.
  • the key is calculated according to the private key of the node and the public key of the other node; the shared key of the node is calculated according to the shared key parameter of the node, and the first key corresponding to the shared key of the node is generated.
  • the sending module sends a shared key verification message to another node, the shared key verification message includes a first key verification code;
  • the receiving module receives a shared key response message sent by another node, and confirms the first key verification code Correct;
  • the sending module communicates with another node according to the shared key of the node, because the processing module pre-calculates the first shared key parameter according to the private key of the node, and calculates the shared key of the node according to the first shared key parameter and the hash value
  • the steps can be done offline, reducing the number of interactions, so when the node initiates authentication, it can be in a very short time Into the certification process, improve the efficiency of the certification.
  • the obtaining module 10 is specifically configured to acquire the identifier of the node 100, and send the identifier of the node 1 to the key generation center, and receive the private key of the node 1 sent by the key generation center.
  • d 1 is the private key of the node
  • q is a large prime number
  • ⁇ a 1 , a 2 , . . . , a n ⁇ is the first parameter set
  • a i is a positive integer
  • the first parameter set is obtained by using the identifier of the node as a pseudo
  • the input of the random function is obtained, and a i ⁇ q,i ⁇ [1,n], ⁇ x 1 ,x 2 ,...,x n ⁇ is the master key set, x i is a positive integer, n is based on system security Parameter definition.
  • the receiving module 14 is further configured to receive a system parameter set sent by the key generation center, where the system parameter set expression is:
  • MPK is a system parameter set
  • g is q to form a generator of a subgroup in the prime field.
  • processing module 12 is further configured to calculate the shared key parameter of the node 1 according to the private key of the node 1 and the public key of another node by using the following formula:
  • P 1 is the shared key parameter of node 1
  • ..pow(y n , b n )) is the public key of another node
  • ⁇ b 1 , b 2 , . . . , b n ⁇ is a second parameter set
  • b i is a positive integer
  • the second parameter set is obtained by inputting the identity of another node as an input of a pseudo-random function
  • FIG. 6 is a schematic structural diagram of another node according to an embodiment of the present invention.
  • the node 1a further includes: a listening module 11.
  • the monitoring module 11 monitors the broadcast information in the network range where the node 1a is located, and acquires the hash value according to the broadcast information.
  • the monitoring module maintains buffering of the time window, and the node 1a records the broadcast information in the network range in the time window in the buffer, and acquires the hash value according to the broadcast information. Further, the broadcast information in the network area where the node 1a is located is broadcast by the dedicated broadcast node; or the broadcast information in the network range where the node 1a is located is the communication information between the neighboring nodes of the node 1a; or, the network within the node 1a is located The broadcast information is a network-wide identifiable background sound.
  • the processing module 12 is specifically configured to calculate the shared key of the node 1a according to the shared key parameter and the hash value of the node 1a.
  • processing module 12 is further configured to derive the encrypted symmetric key and the message authentication code key from the shared key of the node 1a.
  • the processing module 12 is further configured to randomly generate an initialization vector, encrypt the data according to the encrypted symmetric key, generate ciphertext data, and generate a message authentication code according to the message authentication code key, the initialization vector, and the ciphertext data.
  • the sending module 13 is further configured to send the message including the ciphertext data, the initialization vector, and the message authentication code to another node.
  • FIG. 7 is a schematic structural diagram of another node according to an embodiment of the present invention.
  • the node 2 may be the second node in the foregoing embodiment.
  • the node 2 includes: an obtaining module 20, a processing module 22, and a sending Module 23, receiving module 24.
  • the obtaining module 20 is configured to acquire the private key of the node 2 from the key generation center, and acquire the identifier of the other node according to the neighbor node identifier list.
  • Another node corresponds to the first node in the foregoing embodiment.
  • the processing module 22 is configured to calculate a public key of another node according to the identifier of the other node; and is further configured to calculate the shared key parameter of the node 2 according to the private key of the node 2 and the public key of the other node; The shared key parameter of the node 2 is calculated to obtain the shared key of the node 2, and a second key verification code corresponding to the shared key of the node 2 is generated.
  • the receiving module 24 is configured to receive a shared key verification message sent by another node, where the shared key verification message includes a first key verification code.
  • the sending module 23 is configured to: if the first key verification code matches the second key verification code, send a shared key response message to another node to confirm that the first key verification code is correct.
  • the receiving module 24 is further configured to communicate with another node according to the shared key of the node 2.
  • the node provided in this embodiment acquires the private key of the node from the key generation center through the acquiring module, and acquires the identifier of the other node according to the neighbor node identifier list; the processing module calculates the publicity of the other node according to the identifier of the other node.
  • the receiving module receives a shared key verification message sent by another node, where the shared key verification message includes a first key verification code; if the first key verification code matches the second key verification code, the sending module sends The other node sends a shared key response message to confirm that the first key verification code is correct; the receiving module communicates with another node according to the shared key of the node, because the second shared key parameter is pre-calculated according to the private key of the node and according to the The steps of calculating the shared key of the node by using the shared key parameter and the hash value are completed offline, reducing the number of interactions. Therefore, when the initiator node initiates the authentication, the node can complete the authentication process in a very short time, which improves
  • the obtaining module 20 is specifically configured to acquire the identifier of the node 2, and send the identifier of the node 2 to the key generation center, and receive the private key of the node 2 sent by the key generation center.
  • d 2 is the private key of node 2
  • q is a large prime number
  • ⁇ b 1 , b 2 , . . . , b n ⁇ is a second parameter set
  • b i is a positive integer
  • the second parameter set passes the identity of node 2 Obtained as an input to the PRF
  • b i ⁇ q,i ⁇ [1,n] ⁇ x 1 ,x 2 ,...,x n ⁇ is the master key set
  • x i is a positive integer
  • n is based on system security Parameter definition.
  • the receiving module 24 is further configured to receive a system parameter set sent by the key generation center, where the system parameter set expression is:
  • MPK is a system parameter set
  • g is q to form a generator of a subgroup in the prime field.
  • the processing module 22 is further configured to calculate the shared key parameter of the node 2 according to the private key of the node 2 and the public key of another node by using the following formula:
  • P 2 is the shared key parameter of node 2
  • ..pow(y n , a n ) is the public key of the other node
  • ⁇ a 1 , a 2 ,..., a n ⁇ is the first parameter set
  • a i is a positive integer
  • the first parameter set is obtained by inputting the identity of another node as an input of a pseudo-random function, and a i ⁇ q,i ⁇ [1 , n].
  • FIG. 8 is a schematic structural diagram of another node according to an embodiment of the present invention.
  • the node 2a further includes: a monitoring module 21.
  • the monitoring module 21 is configured to listen to broadcast information in the network range where the node 2a is located, and obtain a hash value according to the broadcast information.
  • the monitoring module maintains a buffer of the time window, records the broadcast information in the network range in the time window in the buffer, and acquires the hash value according to the broadcast information. Further, the broadcast information in the network area where the node 2a is located is broadcast by the dedicated broadcast node; or the broadcast information in the network range where the node 2a is located is the communication information between the neighboring nodes of the node; or, within the network range where the node 2a is located The broadcast information is a recognizable background sound within the network.
  • the processing module 22 is specifically configured to calculate a shared key of the node according to the shared key parameter and the hash value of the node 2a.
  • the receiving module 24 is specifically configured to receive a message including the ciphertext data, the initialization vector, and the first message authentication code sent by another node.
  • the processing module 22 is further configured to derive the encrypted symmetric key and the message authentication code key from the shared key of the node.
  • the processing module 22 is further configured to generate a second message authentication code according to the message authentication code key and the initialization vector.
  • the processing module 22 is further configured to compare the second message authentication code with the first message authentication code, and if yes, decrypt the ciphertext data according to the encrypted symmetric key.
  • FIG. 9 is a schematic structural diagram of a key generation center according to an embodiment of the present invention.
  • the key generation center 3 includes a processing module 30, a receiving module 31, and a sending module 32.
  • the processing module 30 is configured to generate a system parameter set according to the master key set, and send the system parameter set to the network node.
  • the receiving module 31 is configured to receive an identifier of the network node sent by the network node.
  • the processing module 30 is further configured to calculate a private key of the network node according to the identifier of the network node;
  • the sending module 32 is configured to send a private key of the network node to the network node.
  • the key generation center provided in this embodiment generates a system parameter set according to the master key set by the processing module, and sends the system parameter set to the network node.
  • the receiving module receives the identifier of the network node sent by the network node.
  • the processing module calculates the private key of the network node according to the identifier of the network node; the sending module sends the private key of the network node to the network node. Since each network node only needs to communicate with the key generation center once, the key generation center can be simply a board or a service process in the entire cloud, with low requirements for the sex and the key generation center. No need to stay online. This reduces deployment costs.
  • processing module 30 is further configured to generate a master key set, where the master key set expression is:
  • MSK is the master key set
  • x i is a positive integer
  • n is defined according to system security parameters.
  • system parameter set expression is:
  • MPK is a system parameter set
  • q is a large prime number
  • g is q a constituent element of a subgroup in the prime number domain.
  • the processing module 30 is specifically configured to obtain, according to the identifier of the network node, a parameter set ⁇ m 1 , m 2 , . . . , m n ⁇ by using a pseudo-random function, m i is a positive integer, and the m i ⁇ q, the q For large prime numbers, the i ⁇ [1,n];
  • the processing module 30 is specifically configured to obtain a private key of the network node by using the following formula:
  • d is the private key of the network node.
  • the network node in this embodiment is specifically the first node and the second node.
  • the key generation center 3 needs to perform the above steps 300 to 303 for the first node and the second node, respectively.
  • the receiving module 31 is specifically configured to receive an identifier of the first node sent by the first node.
  • the processing module 30 is specifically configured to obtain, according to the identifier of the first node, a first parameter set ⁇ a 1 , a 2 , . . . , a n ⁇ by using a pseudo-random function, a i is a positive integer, and a i ⁇ q, q is Large prime number, i ⁇ [1,n];
  • the processing module 30 is specifically configured to obtain the private key of the first node by using the following formula:
  • d 1 is the private key of the first node.
  • the sending module 32 is specifically configured to send d 1 to the first node.
  • the receiving module 31 is specifically configured to receive an identifier of the second node sent by the second node.
  • the processing module 30 is specifically configured to obtain, according to the identifier of the second node, the second parameter set ⁇ b 1 , b 2 , . . . , b n ⁇ by using a pseudo-random function, b i is a positive integer, and b i ⁇ q,q is Large prime number, i ⁇ [1,n].
  • the processing module 30 is specifically configured to obtain the private key of the second node by using the following formula:
  • d 2 is the private key of the second node.
  • the sending module 32 is specifically configured to send d 2 to the second node.
  • Any two nodes in the network and the key generation center can constitute a secure communication system based on the combined public key cryptosystem, wherein one node is the sender of the data, such as the first node in the above embodiment, and the other node acts as The recipient of the data, such as the second node in the above embodiment.
  • the structure of FIG. 5 or FIG. 6 can be used to perform the technical solution shown in FIG. 1 in the communication method based on the combined public key cryptosystem of the present invention; as the node of the receiver, FIG. 7 can be used.
  • FIG. 8 correspondingly, the technical solution shown in FIG.
  • the key generation center can adopt the structure of FIG. 9 and correspondingly execute the present invention based on the combination
  • the technical solution shown in FIG. 3 in the communication method of the key cryptosystem The implementation principle and technical effect are similar, and will not be described here.
  • the aforementioned program can be stored in a computer readable storage medium.
  • the program when executed, performs the steps including the foregoing method embodiments; and the foregoing storage medium includes various media that can store program codes, such as a ROM, a RAM, a magnetic disk, or an optical disk.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种基于组合公钥密码体制的通信方法、装置及系统,其中,方法通过第一节点从密钥生成中心获取第一节点的私钥,并根据相邻节点标识列表获取第二节点的标识,根据第二节点的标识计算得到第二节点的公钥,根据第一节点的私钥和第二节点的公钥计算第一节点的共享密钥参数,然后根据第一节点的共享密钥参数计算得到第一节点的共享密钥,生成与第一节点的共享密钥对应的第一密钥验证码,向第二节点发送共享密钥验证消息,共享密钥验证消息包含第一密钥验证码,接收第二节点发送的共享密钥响应消息。由于上述计算的步骤均可以离线完成,减少了节点间的交互次数,因此当第一节点发起认证时,可以在非常短的时间内完成认证,提高了认证的效率。

Description

基于组合公钥密码体制的通信方法、装置及系统 技术领域
本发明涉及通信技术,尤其涉及一种基于组合公钥密码体制的通信方法、装置及系统。
背景技术
在通信技术中,为了实现两个通信实体间通信的保密性和完整性,现有技术提出了安全传输层(Transport Layer Security,简称:TLS)协议。具体的,TLS的协议栈分为两层,底层为TLS记录协议,上层包括TLS握手协议、TLS密码变化协议以及TLS警告协议。TLS记录协议建立在TCP之上,它提供的连接安全性有两个特点:首先保密性,使用了对称加密算法;其次完整性,使用了基于哈希的消息认证码(Hash-based Message Authentication Code,简称:HMAC)算法。
现有技术中TLS握手协议包括如下步骤:1、客户端与服务器交互client_hello消息以及server_hello消息,以建立安全能力;2、服务器向客户端发送服务器身份信息以及server_hello_done消息;3、客户端向服务器发送客户端公钥信息;4、客户端与服务器将协商得到的Cipher_Suite拷贝到当前连接状态中,用新的算法和密钥参数发送finished消息。具体的,在步骤2中,客户端收到server_hello_done消息后,检查服务器的证书,对服务器进行身份认证,如果服务器请求其证书,则发送一个certificate消息,之后客户端发送client_key_exchange消息,该消息取决于协商的密钥交换算法。发送完该client_key_exchange消息后,客户端和服务器就可以基于身份的加密(Identity Based Encryption,简称:IBE)算法计算共享密钥shared_key。通过master_key=伪随机函数(shared_key,“master_key”,client_hello.random,server_hello.random)来计算主密钥master_key。
但是,采用现有技术提供的TLS握手协议进行交互,由于握手过程中, 客户端与服务器的交互数量较大,并且需要在线验证证书以及计算共享密钥,从而降低了认证效率。
发明内容
本发明提供一种基于组合公钥密码体制的通信方法、装置及系统,用于提高通信时的认证效率。
本发明的第一个方面是提供一种基于组合公钥密码体制的通信方法,包括:
第一节点从密钥生成中心获取所述第一节点的私钥,并根据相邻节点标识列表获取第二节点的标识;
所述第一节点根据所述第二节点的标识计算得到所述第二节点的公钥;
所述第一节点根据所述第一节点的私钥和所述第二节点的公钥计算所述第一节点的共享密钥参数;
所述第一节点根据所述第一节点的共享密钥参数计算得到所述第一节点的共享密钥,生成与所述第一节点的共享密钥对应的密钥验证码;
所述第一节点向所述第二节点发送共享密钥验证消息,所述共享密钥验证消息包含所述密钥验证码;
所述第一节点接收所述第二节点发送的共享密钥响应消息,确认所述密钥验证码正确;
所述第一节点根据所述第一节点的共享密钥与所述第二节点通信。
结合第一个方面,在第一种可能的实现方式中,所述第一节点从所述密钥生成中心获取所述第一节点的私钥,包括:
所述第一节点获取所述第一节点的标识,并向所述密钥生成中心发送所述第一节点的标识;
所述第一节点接收所述密钥生成中心发送的所述第一节点的私钥。
结合第一个方面或第一个方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一节点的私钥表达式为:
d1=(a1x1+a2x2+……anxn)mod q
其中,所述d1为所述第一节点的私钥,所述q为大素数,所述{a1,a2,…,an}为第一参数集合,ai为正整数,所述第一参数集合通过将所述第一节点的 标识作为伪随机函数的输入得到,并且ai<q,所述i∈[1,n],所述{x1,x2,...,xn}为主密钥集合,xi为正整数,所述n根据系统安全参数定义。
结合第一个方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述第一节点获取所述第一节点的私钥之前,还包括:
所述第一节点接收所述密钥生成中心发送的系统参数集合,所述系统参数集合表达式为:
MPK={y1,y2,…,yn},yi=pow(g,xi)mod q,所述i∈[1,n]
其中,所述MPK为系统参数集合,所述g为所述q构成素数域上一个子群的生成元。
结合第一个方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第一节点根据所述第一节点的私钥和所述第二节点的公钥通过如下公式计算所述第一节点的共享密钥参数:
P1=(pow(y1,b1)pow(y2,b 2)…pow(yn,b n))^d1mod q
其中,所述P1为所述第一节点的共享密钥参数,所述(pow(y1,b1)pow(y2,b2)…pow(yn,bn))为所述第二节点的公钥,所述{b 1,b 2,…,b n}为第二参数集合,b i为正整数,所述第二参数集合通过将所述第二节点的标识作为伪随机函数的输入得到,并且b i<q,i∈[1,n]。
结合第一个方面或第一个方面的上述任意一种可能的实现方式,在第五种可能的实现方式中,在所述第一节点根据所述第一节点的私钥和所述第二节点的公钥计算所述第一节点的共享密钥参数之后,还包括:
所述第一节点监听所述第一节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值;
所述第一节点根据所述第一节点的共享密钥参数计算得到所述第一节点的共享密钥,包括:
所述第一节点根据所述第一节点的共享密钥参数和所述杂凑值计算得到所述第一节点的共享密钥。
结合第一个方面的第五种可能的实现方式,在第六种可能的实现方式中,所述第一节点监听所述第一节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值,包括:
所述第一节点维护时间窗口的缓冲,所述第一节点将所述时间窗口内所 述网络范围内的广播信息记录在所述缓冲中,根据所述广播信息获取所述杂凑值。
结合第一个方面或第一个方面的上述任意一种可能的实现方式,在第七种可能的实现方式中,所述第一节点根据所述第一节点的共享密钥与所述第二节点通信,包括:
所述第一节点从所述第一节点的共享密钥中导出加密对称密钥和消息认证码密钥;
所述第一节点随机生成初始化向量,根据所述加密对称密钥加密数据,生成密文数据;根据所述消息认证码密钥、所述初始化向量和所述密文数据生成消息认证码;
所述第一节点将包含所述密文数据、所述初始化向量以及所述消息认证码的报文发送给所述第二节点。
本发明的第二个方面是提供一种基于组合公钥密码体制的通信方法,包括:
第二节点从密钥生成中心获取所述第二节点的私钥,并根据相邻节点标识列表获取第一节点的标识;
所述第二节点根据所述第一节点的标识计算得到所述第一节点的公钥;
所述第二节点根据所述第二节点的私钥和所述第一节点的公钥计算所述第二节点的共享密钥参数;
所述第二节点根据所述第二节点的共享密钥参数计算得到所述第二节点的共享密钥,生成与所述第二节点的共享密钥对应的第二密钥验证码;
所述第二节点接收所述第一节点发送的共享密钥验证消息,所述共享密钥验证消息包含第一密钥验证码;
若所述第一密钥验证码与所述第二密钥验证码匹配,则所述第二节点向所述第一节点发送共享密钥响应消息,确认所述第一密钥验证码正确;
所述第二节点根据所述第二节点的共享密钥与所述第一节点通信。
结合第二个方面,在第一种可能的实现方式中,所述第二节点从所述密钥生成中心获取所述第二节点的私钥,包括:
所述第二节点获取所述第二节点的标识,并向所述密钥生成中心发送所述第二节点的标识;
所述第二节点接收所述密钥生成中心发送的所述第二节点的私钥。
结合第二个方面或第二个方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第二节点的私钥表达式为:
d2=(b1x1+b 2x2+…b nxn)mod q
其中,所述d2为所述第二节点的私钥,所述q为大素数,所述{b 1,b 2,…,b n}为第二参数集合,b i为正整数,所述第二参数集合通过将所述第二节点的标识作为伪随机函数的输入得到,并且b i<q,i∈[1,n],所述{x1,x2,...,xn}为主密钥集合,xi为正整数,所述n根据系统安全参数定义。
结合第二个方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述第二节点获取所述第二节点的私钥之前,还包括:
所述第二节点接收所述密钥生成中心发送的系统参数集合,所述系统参数集合表达式为:
MPK={y1,y2,…,yn},yi=pow(g,xi)mod q,所述i∈[1,n]
其中,所述MPK为系统参数集合,所述g为所述q构成素数域上一个子群的生成元。
结合第二个方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第二节点根据所述第二节点的私钥和所述第一节点的公钥通过如下公式计算所述第二节点的共享密钥参数:
P2=(pow(y1,a1)pow(y2,a2)…pow(yn,an))^d2mod q
其中,所述P2为所述第二节点的共享密钥参数,所述(pow(y1,a1)pow(y2,a2)…pow(yn,an))为所述第一节点的公钥,所述{a1,a2,…,an}为第一参数集合,ai为正整数,所述第一参数集合通过将所述第一节点的标识作为伪随机函数的输入得到,并且ai<q,i∈[1,n]。
结合第二个方面或第二个方面的上述任意一种可能的实现方式,在第五种可能的实现方式中,在所述第二节点根据所述第二节点的私钥和所述第一节点的公钥计算所述第二节点的共享密钥参数之后,还包括:
所述第二节点监听所述第二节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值;
所述第二节点根据所述第二节点的共享密钥参数计算得到所述第二节点的共享密钥,包括:
所述第二节点根据所述第二节点的共享密钥参数和所述杂凑值计算得到所述第二节点的共享密钥。
结合第二个方面的第五种可能的实现方式,在第六种可能的实现方式中,所述第二节点监听所述第二节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值,包括:
所述第二节点维护时间窗口的缓冲,所述第二节点将所述时间窗口内所述网络范围内的广播信息记录在所述缓冲中,根据所述广播信息获取所述杂凑值。
结合第二个方面或第二个方面的上述任意一种可能的实现方式,在第七种可能的实现方式中,所述第二节点根据所述第二节点的共享密钥与所述第一节点通信,包括:
所述第二节点接收所述第一节点发送的包含密文数据、初始化向量以及第一消息认证码的报文;
所述第二节点从所述第二节点的共享密钥中导出加密对称密钥和消息认证码密钥;
所述第二节点根据所述消息认证码密钥和所述初始化向量生成第二消息认证码;
所述第二节点将所述第二消息认证码与所述第一消息认证码进行比对,若匹配,则对根据所述加密对称密钥对所述密文数据进行解密。
本发明的第三个方面是提供一种基于组合公钥密码体制的通信方法,包括:
密钥生成中心根据主密钥集合生成系统参数集合,并将所述系统参数集合发送给网络节点;
所述密钥生成中心接收所述网络节点发送的所述网络节点的标识;
所述密钥生成中心根据所述网络节点的标识计算得到所述网络节点的私钥;
所述密钥生成中心向所述网络节点发送所述网络节点的私钥。
结合第三个方面,在第一种可能的实现方式中,所述密钥生成中心根据主密钥集合生成系统参数集合之前,还包括:
所述密钥生成中心生成所述主密钥集合,所述主密钥集合表达式为:
MSK={x1,x2,…,xn}
其中,所述MSK为主密钥集合,xi为正整数,所述i∈[1,n],所述n根据系统安全参数定义。
结合第三个方面的第一种可能的实现方式,在第二种可能的实现方式中,所述系统参数集合表达式为:
MPK={y1,y2,…,yn},yi=pow(g,xi)mod q,所述i∈[1,n]
其中,所述MPK为系统参数集合,所述q为大素数,所述g为所述q构成素数域上一个子群的生成元。
结合第三个方面的第二种可能的实现方式,在第三种可能的实现方式中,所述密钥生成中心根据所述网络节点的标识计算得到所述网络节点的私钥,包括:
所述密钥生成中心根据所述网络节点的标识,通过伪随机函数获取参数集合{m1,m 2,…,m n},m i为正整数,并且m i<q;
所述密钥生成中心通过如下公式获取所述网络节点的私钥:
d=(m 1x1+m 2x2+…m nxn)mod q
其中,所述d为所述网络节点的私钥。
本发明的第四个方面是提供一种节点,包括:
获取模块,用于从密钥生成中心获取所述节点的私钥,并根据相邻节点标识列表获取另一节点的标识;
处理模块,用于根据所述另一节点的标识计算得到所述另一节点的公钥;还用于根据所述节点的私钥和所述另一节点的公钥计算所述节点的共享密钥参数;还用于根据所述节点的共享密钥参数计算得到所述节点的共享密钥,生成与所述节点的共享密钥对应的密钥验证码;
发送模块,用于向所述另一节点发送共享密钥验证消息,所述共享密钥验证消息包含所述密钥验证码;
接收模块,用于接收所述另一节点发送的共享密钥响应消息,确认所述密钥验证码正确;
所述发送模块,还用于根据所述节点的共享密钥与所述另一节点通信。
结合第四个方面,在第一种可能的实现方式中,所述获取模块,具体用于获取所述节点的标识,并向所述密钥生成中心发送所述节点的标识,接收 所述密钥生成中心发送的所述节点的私钥。
结合第四个方面或第四个方面的第一种可能的实现方式,在第二种可能的实现方式中,所述节点的私钥表达式为:
d1=(a1x1+a2x2+……anxn)mod q
其中,所述d1为所述节点的私钥,所述q为大素数,所述{a1,a2,…,an}为第一参数集合,ai为正整数,所述第一参数集合通过将所述节点的标识作为伪随机函数的输入得到,并且所述ai<所述q,所述i∈[1,n],所述{x1,x2,...,xn}为主密钥集合,xi为正整数,所述n根据系统安全参数定义。
结合第四个方面或第四个方面的上述任意一种可能的实现方式,在第四种可能的实现方式中,所述接收模块,还用于接收密钥生成中心发送的系统参数集合,所述系统参数集合表达式为:
MPK={y1,y2,…,yn},yi=pow(g,xi)mod q,所述i∈[1,n]
其中,所述MPK为系统参数集合,所述g为所述q构成素数域上一个子群的生成元。
结合第四个方面的第四种可能的实现方式,在第五种可能的实现方式中,所述处理模块,具体还用于根据所述节点的私钥和所述另一节点的公钥通过如下公式计算所述节点的共享密钥参数:
P1=(pow(y1,b1)pow(y2,b 2)…pow(yn,b n))^d1mod q
其中,所述P1为所述节点的共享密钥参数,所述(pow(y1,b1)pow(y2,b2)…pow(yn,bn))为所述另一节点的公钥,所述{b 1,b 2,…,b n}为第二参数集合,b i为正整数,所述第二参数集合通过将所述另一节点的标识作为伪随机函数的输入得到,并且b i<q,i∈[1,n]。
结合第四个方面或第四个方面的上述任意一种可能的实现方式,在第六种可能的实现方式中,还包括:
监听模块,监听所述节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值;
所述处理模块,具体用于根据所述节点的共享密钥参数和所述杂凑值计算得到所述节点的共享密钥。
结合第四个方面的第六种可能的实现方式,在第七种可能的实现方式中,所述监听模块,具体用于维护时间窗口的缓冲,将所述时间窗口内所述网络 范围内的广播信息记录在所述缓冲中,根据所述广播信息获取所述杂凑值。
结合第四个方面或第四个方面的上述任意一种可能的实现方式,在第八种可能的实现方式中,所述处理模块,具体还用于从所述节点的共享密钥中导出加密对称密钥和消息认证码密钥;
所述处理模块,具体还用于随机生成初始化向量,根据所述加密对称密钥加密数据,生成密文数据;根据所述消息认证码密钥、所述初始化向量和所述密文数据生成消息认证码;
所述发送模块,具体还用于将包含所述密文数据、所述初始化向量以及所述消息认证码的报文发送给所述另一节点。
本发明的第五个方面是提供一种节点,包括:
获取模块,用于从密钥生成中心获取所述节点的私钥,并根据相邻节点标识列表获取另一节点的标识;
处理模块,用于根据所述另一节点的标识计算得到所述另一节点的公钥;还用于根据所述节点的私钥和所述另一节点的公钥计算所述节点的共享密钥参数;还用于根据所述节点的共享密钥参数计算得到所述节点的共享密钥,生成与所述节点的共享密钥对应的第二密钥验证码;
接收模块,用于接收所述另一节点发送的共享密钥验证消息,所述共享密钥验证消息包含第一密钥验证码;
发送模块,用于若所述第一密钥验证码与所述第二密钥验证码匹配,则向所述另一节点发送共享密钥响应消息,确认所述第一密钥验证码正确;
所述接收模块,还用于根据所述节点的共享密钥与所述另一节点通信。
结合第五个方面,在第一种可能的实现方式中,所述获取模块,具体用于获取所述节点的标识,并向所述密钥生成中心发送所述节点的标识,接收所述密钥生成中心发送的所述节点的私钥。
结合第五个方面或第五个方面的第一种可能的实现方式,在第二种可能的实现方式中,所述节点的私钥表达式为:
d2=(b1x1+b 2x2+…b nxn)mod q
其中,所述d2为所述节点的私钥,所述q为大素数,所述{b 1,b 2,…,b n}为第二参数集合,b i为正整数,所述第二参数集合通过将所述节点的标识作为伪随机函数的输入得到,并且b i<q,i∈[1,n],所述{x1,x2,...,xn}为 主密钥集合,xi为正整数,所述n根据系统安全参数定义。
结合第五个方面的第三种可能的实现方式,在第四种可能的实现方式中,所述接收模块,还用于接收所述密钥生成中心发送的系统参数集合,所述系统参数集合表达式为:
MPK={y1,y2,…,yn},yi=pow(g,xi)mod q,所述i∈[1,n]
其中,所述MPK为系统参数集合,所述g为所述q构成素数域上一个子群的生成元。
结合第五个方面的第四种可能的实现方式,在第五种可能的实现方式中,所述处理模块,具体还用于根据所述节点的私钥和所述另一节点的公钥通过如下公式计算所述节点的共享密钥参数:
P2=(pow(y1,a1)pow(y2,a2)…pow(yn,an))^d2mod q
其中,所述P2为所述节点的共享密钥参数,所述(pow(y1,a1)pow(y2,a2)…pow(yn,an)为所述另一节点的公钥,所述{a1,a2,…,an}为第一参数集合,ai为正整数,所述第一参数集合通过将所述另一节点的标识作为伪随机函数的输入得到,并且ai<q,i∈[1,n]。
结合第五个方面或第五个方面的第一种可能的实现方式,在第六种可能的实现方式中,还包括:
监听模块,用于监听所述节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值;
所述处理模块,具体用于根据所述节点的共享密钥参数和所述杂凑值计算得到所述节点的共享密钥。
结合第五个方面的第六种可能的实现方式,在第七种可能的实现方式中,所述监听模块,具体用于维护时间窗口的缓冲,将所述时间窗口内所述网络范围内的广播信息记录在所述缓冲中,根据所述广播信息获取所述杂凑值。
结合第五个方面或第五个方面的第一种可能的实现方式,在第八种可能的实现方式中,所述接收模块,具体还用于接收所述另一节点发送的包含密文数据、初始化向量以及第一消息认证码的报文;
所述处理模块,具体还用于从所述节点的共享密钥中导出加密对称密钥和消息认证码密钥;
所述处理模块,具体还用于根据所述消息认证码密钥和所述初始化向量 生成第二消息认证码;
所述处理模块,具体还用于将所述第二消息认证码与所述第一消息认证码进行比对,若匹配,则对根据所述加密对称密钥对所述密文数据进行解密。
本发明的第六个方面是提供一种密钥生成中心,包括:
处理模块,用于根据主密钥集合生成系统参数集合,并将所述系统参数集合发送给网络节点;
接收模块,用于接收所述网络节点发送的所述网络节点的标识;
所述处理模块,还用于根据所述网络节点的标识计算得到所述网络节点的私钥;
发送模块,用于向所述网络节点发送所述网络节点的私钥。
结合第六个方面,在第一种可能的实现方式中,所述处理模块,还用于生成所述主密钥集合,所述主密钥集合表达式为:
MSK={x1,x2,…,xn}
其中,所述MSK为主密钥集合,xi为正整数,所述i∈[1,n],所述n根据系统安全参数定义。
结合第六个方面的第一种可能的实现方式,在第二种可能的实现方式中,所述系统参数集合表达式为:
MPK={y1,y2,…,yn},yi=pow(g,xi)mod q,所述i∈[1,n]
其中,所述MPK为系统参数集合,所述q为大素数,所述g为所述q构成素数域上一个子群的生成元。
结合第六个方面或第六个方面的上述任意一种可能的实现方式,在第三种可能的实现方式中,所述处理模块,具体用于根据所述网络节点的标识,通过伪随机函数获取参数集合{m1,m 2,…,m n},m i为正整数,并且所述m i<q,所述i∈[1,n];
所述处理模块,具体用于通过如下公式获取所述网络的私钥:
d=(m 1x1+m 2x2+…m nxn)mod q
其中,所述d为所述网络节点的私钥。
本发明的第七个方面是提供一种基于组合公钥密码体制的安全通信系统,包括:第四个方面或第四个方面任一一种可行的实现方式所述的节点,第五个方面或第五个方面任一一种可行的实现方式所述的节点,第六个方面 或第六个方面任一一种可行的实现方式所述的密钥生成中心。
本实施例提供的基于组合公钥密码体制的通信方法、装置及系统,通过第一节点和第二节点分别从密钥生成中心获取各自的私钥,第一节点根据相邻节点标识列表获取第二节点的标识,第二节点根据相邻节点标识列表获取第一节点的标识;第一节点根据第二节点的标识计算得到第二节点的公钥,相应的第二节点根据第一节点的标识计算得到第一节点的公钥;第一节点根据第一节点的私钥和第二节点的公钥计算第一节点的共享密钥参数;第一节点根据第一节点的共享密钥参数计算得到第一节点的共享密钥,生成与第一节点的共享密钥对应的密钥验证码;第一节点向第二节点发送共享密钥验证消息,共享密钥验证消息包含密钥验证码;第一节点接收第二节点发送的共享密钥响应消息,确认密钥验证码正确;第一节点根据第一节点的共享密钥与第二节点通信。由于第一节点和第二节点分别预先计算各自的共享密钥参数以及根据各自的共享密钥参数计算得到对方的共享密钥的步骤是可以离线完成,减少了交互次数,因此当第一节点发起认证时,可以在非常短的时间内完成认证过程,提高了认证的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于组合公钥密码体制的通信方法流程示意图;
图2为本发明实施例提供的另一种基于组合公钥密码体制的通信方法流程示意图;
图3为本发明实施例提供的另一种基于组合公钥密码体制的通信方法流程示意图;
图4为本发明实施例提供的另一种基于组合公钥密码体制的通信方法流程示意图;
图5为本发明实施例提供的一种节点结构示意图;
图6为本发明实施例提供的另一种节点结构示意图;
图7为本发明实施例提供的另一种节点结构示意图;
图8为本发明实施例提供的另一种节点结构示意图;
图9为本发明实施例提供的一种密钥生成中心结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
组合公钥密码(Combined Public Key,简称:CPK)体制,是一种基于身份的密码体制,系统中包含一个生成整个系统主密钥和用户私钥的密钥生成中心,系统中的用户的公钥即为其身份,密钥生成中心通过伪随机函数将用户的身份映射为满足特定条件的整数,通过用户私钥生成算法计算出用户的私钥。
基于身份的密码体制较一般的公钥密码体制的优点在于,在基于身份的密码体制中用户的公钥即为其身份,从而实现了身份和公钥的自动绑定而无需使用公钥证书链进行身份验证,并且可以消除由于公钥证书链的管理所带来的开销。CPK相比于其他基于身份加密(Identity Based Encryption,简称:IBE)算法,其优点在于可以有效的利用已部署的传统公钥密码体制从而降低由于部署基于身份的密码系统所带来的开销。CPK相比较于其他的IBE方案的另一个优点是其效率高,这是由于一般的IBE方案是基于双线性对的,而CPK利用了普通公钥密码体制的公/私钥的线性同态性质,不需要进行耗时的双线性对计算。
图1为本发明实施例提供的一种基于组合公钥密码体制的通信方法流程示意图,该方法执行主体为通信数据的发送方节点,即第一节点,如图1所示,该方法包括如下步骤:
步骤100、第一节点从密钥生成中心获取第一节点的私钥,并根据相邻节点标识列表获取第二节点的标识。
具体的,每个节点会获得一个公认的标识,如主机名、域名、网络地址、网络名称、IP地址、域名、电话号码或系统约定的一个唯一名称。节点的名称由地址/名称和有效期构成。节点构造自己的标识,如ID=162.105.30.187#2012OCT,是由两部分构成的,分别是地址或名字,以及有效期。节点可以获取一个包含所有临近节点唯一标识在内的列表。这个列表可以是从某个接口获得(例如手机可以访问本地的电话号码本),也可以是由节点自动生成(如枚举所在网络所有地址)。需要说明的相邻节点指的是第一节点的相邻节点。
步骤101、第一节点根据第二节点的标识计算得到第二节点的公钥。
具体的,例如,第二节点的标识为ID2,将该ID2作为伪随机函数的输入则得到一组第二参数集合{b 1,b 2,…,b n},其中b i为正整数,伪随机函数(Pseudo Random Function,简称:PRF)是单向的、一一映射的,输入为任意的字符串,输出为{m1,m 2,...,m n},其中0<m i<q。第二节点的公钥为(pow(y1,b1)pow(y2,b 2)…pow(yn,b n)),其中{y1,y2,…,yn}为系统参数集合。需要说明的,本实施例中涉及到的伪随机函数和第二节点公钥的具体公式只是对步骤101进行说明,并不限定步骤101通过其他方式计算得到第二节点的公钥。
步骤102、第一节点根据第一节点的私钥和第二节点的公钥计算第一节点的共享密钥参数。
步骤103、第一节点根据第一节点的共享密钥参数计算得到第一节点的共享密钥,生成与第一节点的共享密钥对应的第一密钥验证码。
步骤104、第一节点向第二节点发送共享密钥验证消息,共享密钥验证消息包含第一密钥验证码。
步骤105、第一节点接收第二节点发送的共享密钥响应消息,确认第一密钥验证码正确。
具体的,对于两个需要通信的网络节点来说,例如本实施例中的第一节点和第二节点会分别根据各自的私钥和对方的公钥计算得到自身的共享密钥参数,并分别生成第一密钥验证码和第二密钥验证码,此处将第一密钥验证码发送给第二节点的目的在于:第二节点获得该第一密钥验证码与第二密钥验证码进行比对,若两者匹配,则双方可以进行加密通信。
步骤106、第一节点根据第一节点的共享密钥与第二节点通信。
本实施例提供的基于组合公钥密码体制的通信方法,通过第一节点从密钥生成中心获取第一节点的私钥,并根据相邻节点标识列表获取第二节点的标识;第一节点根据第二节点的标识计算得到第二节点的公钥;第一节点根据第一节点的私钥和第二节点的公钥计算第一节点的共享密钥参数;第一节点根据第一节点的共享密钥参数计算得到第一节点的共享密钥,生成与第一节点的共享密钥对应的第一密钥验证码;第一节点向第二节点发送共享密钥验证消息,共享密钥验证消息包含第一密钥验证码;第一节点接收第二节点发送的共享密钥响应消息,确认第一密钥验证码正确;第一节点根据第一节点的共享密钥与第二节点通信。由于第一节点预先计算第一共享密钥参数以及根据第一共享密钥参数计算得到第一节点的共享密钥的步骤是可以离线完成,减少了交互次数,因此当第一节点发起认证时,可以在非常短的时间内完成认证过程,提高了认证的效率。
优选的,上述图1中步骤100中第一节点从密钥生成中心获取第一节点的私钥的一种可行的实现方式为:
第一节点获取第一节点的标识,并向密钥生成中心发送第一节点的标识。
第一节点接收密钥生成中心发送的第一节点的私钥。
显然,第一节点只需要和密钥生成中心通信一次,因此密钥生成中心可以简单地是一个板卡,或是整个云中的一个服务进程,对性能要求较低,并且密钥生成中心也无需一直在线。因此降低了部署成本。
优选的,图1中所示第一节点的私钥表达式为:
d1=(a1x1+a2x2+……anxn)mod q
其中,d1为第一节点的私钥,q为大素数,{a1,a2,…,an}为第一参数集合,ai为正整数,第一参数集合通过将第一节点的标识作为伪随机函数的输入得到,并且ai<q,i∈[1,n],{x1,x2,...,xn}为主密钥集合,xi为正整数,n根据系统安全参数定义。
在图1步骤100之前,还包括如下步骤:
步骤106、第一节点接收密钥生成中心发送的系统参数集合。
具体的,系统参数集合表达式为:
MPK={y1,y2,…,yn},yi=pow(g,xi)mod q,i∈[1,n];
其中,MPK为系统参数集合,g为q构成素数域上一个子群的生成元。
进一步的,上述实施例中,第一节点根据第一节点的私钥和第二节点的公钥通过如下公式计算第一节点的共享密钥参数:
P1=(pow(y1,b1)pow(y2,b 2)…pow(yn,b n))^d1mod q
其中,P1为第一节点的共享密钥参数,(pow(y1,b1)pow(y2,b2)…pow(yn,bn))为第二节点的公钥,{b 1,b 2,…,b n}为第二参数集合,b i为正整数,第二参数集合通过将第二节点的标识作为PRF的输入得到,并且b i<q,i∈[1,n]。pow(yn,bn)用来计算以yn为底的bn次方值。可选的,如果bn是整数的话,需要对q执行求余函数。如果是非整数的话,那么P1可以理解为bn所在数域上的特殊运算,并一定是真正的执行了求余函数。
需要说明的是,该第一节点的共享密钥参数指的是第一节点与第二节点通信时,第一节点的共享密钥参数,若第一节点与其他节点通信时,对应地,第一节点的共享密钥参数可能不同。
进一步的,对于上述实施例步骤102之后,还包括:
第一节点监听第一节点所在网络范围内的广播信息,根据广播信息获取杂凑值
具体的,第一节点维护时间窗口的缓冲,第一节点将时间窗口内网络范围内的广播信息记录在缓冲中,根据广播信息获取杂凑值。
需要说明的是,第一节点所在网络范围内的广播信息由专用的广播节点进行广播;或者,第一节点所在网络范围内的广播信息为第一节点的邻近节点间的通信信息;或者;第一节点所在网络范围内的广播信息为网络范围内的可识别背景音。
则基于杂凑值,上述步骤103的一种可行的实现方式为:
第一节点根据第一节点的共享密钥参数和杂凑值计算得到第一节点的共享密钥。
第一节点读取所要通信的对方节点的共享密钥参数。第一节点计算第一节点的共享密钥,则该共享密钥的密钥验证码SK=HMAC(P,h),其中P为共享密钥参数,h为杂凑值,HMAC(Hash-based Message Authentication Code)为基于哈希的消息认证码;第一节点向第二节点发送HMAC(SK,“client finish”+h);第二节点响应HMAC(SK,“server finish”+h);双方互相验证对 方HMAC结果是否正确。需要说明的是,若没有杂凑值时,则仅根据P获取SK。
进一步的,图1中步骤105的一种可行的实现方式为:
步骤105a、第一节点从第一节点的共享密钥中导出加密对称密钥和消息认证码密钥。
步骤105b、第一节点随机生成初始化向量,根据加密对称密钥加密数据,生成密文数据;根据消息认证码密钥、初始化向量和密文数据生成消息认证码。
步骤105c、第一节点将包含密文数据、初始化向量以及消息认证码的报文发送给第二节点。
具体的,加密对称密钥和消息认证码密钥(例如,MAC密钥)分别从共享密钥中导出。随机生成IV(初始化向量),采用对称加密方案(如AES-CBC)加密数据,并采用MAC算法(如HMAC-SHA-256)根据消息认证码密钥、初始化向量和密文数据生成消息认证码,即第一消息认证码,将该第一消息认证码附加在密文数据后面,最后发送报文。该报文包括包含密文数据、初始化向量以及第一消息认证码。接收方导出加密对称密钥和消息认证码密钥。首先根据其生成的消息认证码密钥、IV和密文数据重新生成第二消息认证码,并和传过来的密文数据中的第一消息认证码做匹配,如果不相同则报错。若相同,则用加密对称密钥密文数据得到明文。
图2为本发明实施例提供的另一种基于组合公钥密码体制的通信方法流程示意图,该方法执行主体为通信数据的接收方节点,即第二节点,如图2所示,该方法包括如下步骤:
步骤200、第二节点从密钥生成中心获取第二节点的私钥,并根据相邻节点标识列表获取第一节点的标识。
需要说明的相邻节点指的是第二节点的相邻节点。
步骤201、第二节点根据第一节点的标识计算得到第一节点的公钥。
步骤202、第二节点根据第二节点的私钥和第一节点的公钥计算第二节点的共享密钥参数。
步骤203、第二节点根据第二节点的共享密钥参数计算得到第二节点的共享密钥,生成与第二节点的共享密钥对应的第二密钥验证码。
步骤204、第二节点接收第一节点发送的共享密钥验证消息,共享密钥验证消息包含第一密钥验证码。
步骤205、若第一密钥验证码与第二密钥验证码匹配,则第二节点向第一节点发送共享密钥响应消息,确认第一密钥验证码正确。
步骤206、第二节点根据第二节点的共享密钥与第一节点通信。
本实施例提供的基于组合公钥密码体制的通信方法,通过第二节点从密钥生成中心获取第二节点的私钥,并根据相邻节点标识列表获取第一节点的标识;第二节点根据第一节点的标识计算得到第一节点的公钥;第二节点根据第二节点的私钥和第一节点的公钥计算第二节点的共享密钥参数;第二节点根据第二节点的共享密钥参数计算得到第二节点的共享密钥,生成与第二节点的共享密钥对应的第二密钥验证码;第二节点接收第一节点发送的共享密钥验证消息,共享密钥验证消息包含第一密钥验证码;若第二节点确定第一密钥验证码与第二密钥验证码进行匹配,则第二节点向第一节点发送共享密钥响应消息,确认第一密钥验证码正确;第二节点根据第二节点的共享密钥与第一节点通信。由于根据第二节点的私钥预先计算第二共享密钥参数以及根据第二共享密钥参数计算得到第二节点的共享密钥的步骤是可以离线完成,减少了交互次数,因此当第一节点发起认证时,第二节点可以在非常短的时间内完成认证过程,提高了认证效率。
优选的,图2步骤200中第二节点获取第二节点的私钥的一种可行的实现方式为:
第二节点获取第二节点的标识,并向密钥生成中心发送第二节点的标识。
第二节点接收密钥生成中心发送的第二节点的私钥。
显然,第二节点只需要和密钥生成中心通信一次,因此密钥生成中心可以简单地是一个板卡,或是整个云中的一个服务进程,对性要求较低,并且密钥生成中心也无需一直在线。因此降低了部署成本。
图2中所示第二节点的私钥表达式为:
d2=(b1x1+b 2x2+…b nxn)mod q
其中,d2为第二节点的私钥,q为大素数,{b 1,b 2,…,b n}为第二参数集合,第二参数集合通过将第二节点的标识作为PRF的输入得到,b i为正整数,并且b i<q,i∈[1,n],{x1,x2,...,xn}为主密钥集合,xi为正整数,n 根据系统安全参数定义。
进一步的,在图2步骤100之前,还包括:
第二节点接收密钥生成中心发送的系统参数集合。
其中,系统参数集合表达式为:
MPK={y1,y2,…,yn},yi=pow(g,xi)mod q,i∈[1,n]
其中,MPK为系统参数集合,g为q构成素数域上一个子群的生成元。
进一步的,第二节点根据第二节点的私钥和第一节点的公钥通过如下公式计算第二节点的共享密钥参数:
P2=(pow(y1,a1)pow(y2,a2)…pow(yn,an))^d2mod q
其中,P2为第二节点的共享密钥参数,(pow(y1,a1)pow(y2,a2)…pow(yn,an)为第一节点的公钥,{a1,a2,…,an}为第一参数集合,ai为正整数,第一参数集合通过将第一节点的标识作为PRF的输入得到,并且ai<q,i∈[1,n]。
在图2步骤202之后,还包括:
第二节点监听第二节点所在网络范围内的广播信息,根据广播信息获取杂凑值。
具体的,第二节点维护一个时间窗口的缓冲,第二节点将时间窗口内网络范围内的广播信息记录在缓冲中,根据广播信息获取杂凑值。需要说明的是,第二节点所在网络范围内的广播信息由专用的广播节点进行广播;或者,第二节点所在网络范围内的广播信息为第二节点的邻近节点间的通信信息;或者;第二节点所在网络范围内的广播信息为网络范围内的可识别背景音。
则图2步骤203中第二节点根据第二节点的共享密钥参数计算得到第二节点的共享密钥的一种可行的实现方式为:
第二节点根据第二节点的共享密钥参数和杂凑值计算得到第二节点的共享密钥。
进一步的,图2中步骤205的一种可行的实现方式为:
步骤205a、第二节点接收第一节点发送的包含密文数据、初始化向量以及第一消息认证码的报文。
步骤205b、第二节点从第二节点的共享密钥中导出加密对称密钥和消息认证码密钥。
步骤205c、第二节点根据消息认证码密钥和初始化向量生成第二消息认 证码。
步骤205d、第二节点将第二消息认证码与第一消息认证码进行比对,若匹配,则对根据加密对称密钥对密文数据进行解密。
图3为本发明实施例提供的另一种基于组合公钥密码体制的通信方法流程示意图,该方法执行主体为密钥生成中心,如图3所示,该方法包括如下步骤:
步骤300、密钥生成中心根据主密钥集合生成系统参数集合,并将系统参数集合发送给网络节点。
步骤301、密钥生成中心接收网络节点发送的网络节点的标识。
步骤302、密钥生成中心根据网络节点的标识计算得到网络节点的私钥。
步骤303、密钥生成中心向网络节点发送网络节点的私钥。
本实施例提供的基于组合公钥密码体制的通信方法,通过密钥生成中心根据主密钥集合生成系统参数集合,并将系统参数集合发送给网络节点,密钥生成中心接收网络节点发送的网络节点的标识信息,密钥生成中心根据网络节点的标识信息计算得到网络节点的私钥,密钥生成中心向网络节点发送网络节点的私钥。由于每一个网络节点只需要和密钥生成中心通信一次,因此密钥生成中心可以简单地是一个板卡,或是整个云中的一个服务进程,对性要求较低,并且密钥生成中心也无需一直在线。因此降低了部署成本。
进一步的,在图3步骤300之前,还包括如下步骤:
密钥生成中心生成主密钥集合,主密钥集合表达式为:
MSK={x1,x2,…,xn}
其中,MSK为主密钥集合,xi为正整数,i∈[1,n],n根据系统安全参数定义。
具体的,当上述实施例中的第一节点和第二节点通信时,此时,本实施例中的网络节点具体为第一节点和第二节点。
进一步的,系统参数集合表达式为:
MPK={y1,y2,…,yn},yi=pow(g,xi)mod q,所述i∈[1,n]
其中,MPK为系统参数集合,q为大素数,g为q构成素数域上一个子群的生成元。
进一步的,密钥生成中心根据网络节点的标识,通过伪随机函数获取参 数集合{m1,m 2,…,m n},m i为正整数,并且ai<q,q为大素数,i∈[1,n],需要说明的是上述实施例中的第一参数集合和第二参数集合为参数集合对应不同网络节点的标识时的具体集合。
密钥生成中心通过如下公式获取网络节点的私钥:
d=(m 1x1+m 2x2+…m nxn)mod q
其中,d为网络节点的私钥。
以报文发送方为第一节点,报文接收方为第二节点为例,则密钥生成中心需要针对第一节点和第二节点,分别执行上述步骤300至303。下面通过具体实施例进行说明:
对于第一节点,图3中步骤301的具体实现方式为:
密钥生成中心接收第一节点发送的第一节点的标识。
对于第一节点,图3中步骤302的具体实现方式为:
第一节点的私钥表达式为:
d1=(a1x1+a2x2+……anxn)mod q
其中,d1为第一节点的私钥,q为大素数,{a1,a2,…,an}为第一参数集合,ai为正整数,第一参数集合通过将第一节点的标识作为PRF的输入得到,并且ai<q,所i∈[1,n],{x1,x2,...,xn}为主密钥集合,xi为正整数,n根据系统安全参数定义。
对于第一节点,图3中步骤303的具体实现方式为:
密钥生成中心向第一节点发送d1
对于第二节点,图3中步骤301的具体实现方式为:
密钥生成中心接收第二节点发送的第二节点的标识。
对于第二节点,图3中步骤302的具体实现方式为:
密钥生成中心根据第二节点的标识,通过伪随机函数获取第二参数集合{b 1,b 2,…,b n},b i为正整数,并且b i<q,q为大素数,i∈[1,n];
密钥生成中心通过如下公式获取第二节点的私钥:
d2=(b1x1+b 2x2+……b nxn)mod q
其中,d2为第二节点的私钥。
对于第二节点,图3中步骤303的具体实现方式为:
密钥生成中心向第二节点发送d2
图4为本发明实施例提供的另一种基于组合公钥密码体制的通信方法流程示意图,参照图4,对上述第一节点、第二节点与密钥生成中心之间的交互进行详细说明,具体的,第一节点以客户端为例,第二节点以服务器为例。参照图4,该方法包括如下步骤:
步骤400、密钥生成中心根据主密钥集合生成系统参数集合。
具体的,系统的初始化:密钥生成中心完成系统的建立,生成主密钥集合MSK和系统参数集合MPK。进一步的,密钥生成中心预先完成系统的初始化,生成MSK={x1,x2,……,xn}和MPK={y1,y2,……,yn},其中yi=pow(g,xi)mod q。
步骤401、密钥生成中心将系统参数集合发送给客户端。
步骤402、密钥生成中心将系统参数集合发送给服务器。
需要说明的是,步骤401、402之间不存在先后的逻辑顺序。另外当网络中存在多组节点进行数据通信时,密钥生成中心均可将系统参数集合发送给所需节点。
步骤403、客户端向密钥生成中心发送客户端的标识。
具体的,每个节点,例如客户端或服务器会获得一个公认的标识,如主机名,域名、网络地址、网络名称、IP地址、域名、电话号码或系统约定的一个唯一名称。节点的名称由有地址/名称和有效期构成。节点构造自己的标识,如ID=162.105.30.187#2012OCT,是由两部分构成的,分别是地址或名字,以及有效期。
步骤404、服务器向密钥生成中心发送服务器的标识。
步骤405、密钥生成中心根据客户端的标识和服务器的标识,分别计算得到客户端的私钥、服务器的私钥。
具体的,以客户端为例密钥生成中心首先将客户端的标识作为输入,通过伪随机函数获得{m1,m 2,…,m n},之后计算该节点(客户端或服务器)的私钥,即d=(m 1x1+m 2x2+…m nxn)mod q。
步骤406、密钥生成中心向客户端发送客户端的私钥。
具体的,密钥生成中心通过安全信道向客户端发送客户端的私钥。
步骤407、密钥生成中心向服务器发送服务器的私钥。
具体的,密钥生成中心通过安全信道向服务器发送服务器的私钥。
需要说明的是,步骤406、407之间不存在先后的逻辑顺序。
步骤408、客户端根据客户端的私钥预先计算第一共享密钥参数。
具体的,以客户端为例,客户端可以获取一个包含所有临近节点唯一标识在内的标识列表。这个标识列表可以是从某个接口获得(例如手机可以访问本地的电话号码本),也可以是由客户端自动生成(如枚举所在网络所有地址)。
客户端计算第一共享密钥参数的部分密钥列表,每个标识对应一个共享密钥参数:PRF(ID)的得到{a1,a2,……,an},客户端的第一共享密钥参数P=(pow(y1,a1)pow(y2,a2)……pow(yn,an))^d mod q,通过理论可以证实该(pow(y1,a1)pow(y2,a2)……pow(yn,an))^d mod q=pow(g,d_{client}d_{server})mod q。其中d_{client}为客户端的私钥,d_{server}为服务器的私钥。作用在于:通过计算(pow(y1,a1)pow(y2,a2)……pow(yn,an))^d mod q(这里的d是指d_{client}),客户端在不知道服务器的私钥(d_{server})的情况下可以计算双方的共享密钥参数P,并且客户(client)和服务器(server)都可以这么做,最后达成的共享秘钥实际上等同于获知了两方的私钥d_{client}和d_{server},这实现了将Diffile-Hellman秘钥协商过程应用在CPK场景。
步骤409、客户端监听所在网络范围内的广播信息。
具体的,客户端维护时间窗口的缓冲,用于记录该时间窗口内所在网络范围内的广播信息,这些广播信息可以被所有临近节点监听。广播信息可以来自于一个专用的广播节点,也可以是临近节点间的通信,也可以是网络上可识别的背景音。需要说明的是,步骤409为可选。
步骤410、客户端根据广播信息获取杂凑值,并根据第一共享密钥参数和杂凑值计算得到客户端的共享密钥。
具体的,客户端计算时间窗口的所有缓冲的杂凑值h。客户端读取所要通信的对方节点对应的预计算结果,即服务器的第二共享密钥参数P1。客户端计算共享密钥SK=HMAC(P1,h)。需要说明的会,若没有步骤409时,则不需要杂凑值。
步骤411、服务器根据服务器的私钥预先计算第二共享密钥参数。
具体的,以服务器为例,服务器可以获取一个包含所有临近节点唯一标识在内的标识列表。这个标识列表可以是从某个接口获得(例如手机可以访 问本地的电话号码本),也可以是由服务器自动生成(如枚举所在网络所有地址)。
参照步骤208的说明,此处不再赘述。
步骤412、服务器监听所在网络范围内的广播信息。
具体的,服务器维护时间窗口的缓冲,用于记录该时间窗口内所在网络范围内的广播信息,这些广播信息可以被所有临近节点监听。广播信息可以来自于一个专用的广播节点,也可以是临近节点间的通信,也可以是网络上可识别的背景音。
步骤413、服务器根据广播信息获取杂凑值,并根据第二共享密钥参数和杂凑值计算得到服务器的共享密钥。
具体的,服务器计算时间窗口的所有缓冲的杂凑值h。服务器读取所要通信的对方节点对应的预计算结果,即客户端的第一共享密钥参数P2。服务器计算共享密钥SK=HMAC(P2,h)。
需要说明的是,步骤408至410与步骤411至413之间不存在先后的逻辑关系。
步骤414、客户端点向服务器点发送共享密钥验证消息,共享密钥验证消息包含客户端的第一密钥验证码。
具体的,客户端向服务器发送HMAC(SK,“client finish”+h);服务器发送回来HMAC(SK,“server finish”+h);双方互相验证对方HMAC结果是否正确。
步骤415、服务器向客户端发送共享密钥响应消息,确认客户端的密钥验证码正确。
步骤416、客户端与服务器进行安全通信。
具体的,安全通信的实现方式参见上述实施例中步骤105a至105c,以及步骤205a至205d。其中,加密对称密钥和消息认证码密钥(例如,MAC密钥)分别从共享密钥中导出。随机生成IV(初始化向量),采用对称加密方案(如AES-CBC)加密数据,并采用MAC算法(如HMAC-SHA-256)根据消息认证码密钥、初始化向量和密文数据生成第一消息认证码,附加在密文数据后面。最后发送报文。接收方导出加密对称密钥和消息认证码密钥。首先根据其生成的消息认证码密钥、IV和密文数据重新生成第二消息认证码, 并和传过来的密文数据中的第一消息认证码做匹配,如果不相同则报错。若相同,则用加密对称密钥密文数据得到明文。
图5为本发明实施例提供的一种节点结构示意图,该节点可以为上述实施例中的第一节点,如图5所示,该节点1包括:获取模块10、处理模块12、发送模块13、接收模块14。
获取模块10,用于从密钥生成中心获取节点1的私钥,并根据相邻节点标识列表获取另一节点的标识。
需要说明的是,另一节点对应上述实施例中的第二节点。
处理模块12,用于根据另一节点的标识计算得到另一节点的公钥;还用于根据节点1的私钥和另一节点的公钥计算节点1的共享密钥参数;还用于根据节点1的共享密钥参数计算得到节点1的共享密钥,生成与节点1的共享密钥对应的第一密钥验证码。
发送模块13,用于向另一节点发送共享密钥验证消息,共享密钥验证消息包含第一密钥验证码。
接收模块14,用于接收另一节点发送的共享密钥响应消息,确认第一密钥验证码正确。
发送模块13,还用于根据节点1的共享密钥与另一节点通信。。
本实施例提供的节点,通过获取模块从密钥生成中心获取节点的私钥,并根据相邻节点标识列表获取另一节点的标识;处理模块根据另一节点的标识计算得到另一节点的公钥;根据节点的私钥和另一节点的公钥计算节点的共享密钥参数;根据节点的共享密钥参数计算得到节点的共享密钥,生成与节点的共享密钥对应的第一密钥验证码;发送模块向另一节点发送共享密钥验证消息,共享密钥验证消息包含第一密钥验证码;接收模块接收另一节点发送的共享密钥响应消息,确认第一密钥验证码正确;发送模块根据节点的共享密钥与另一节点通信,由于处理模块根据节点的私钥预先计算第一共享密钥参数以及根据第一共享密钥参数和杂凑值计算得到节点的共享密钥的步骤是可以离线完成,减少了交互次数,因此当节点发起认证时,可以在非常短的时间内完成认证过程,提高了认证的效率。
进一步的,获取模块10,具体用于获取节点100的标识,并向密钥生成中心发送节点1的标识,接收密钥生成中心发送的节点1的私钥。
进一步的,节点1的私钥表达式为:
d1=(a1x1+a2x2+……anxn)mod q
其中,d1为节点的私钥,q为大素数,{a1,a2,…,an}为第一参数集合,ai为正整数,第一参数集合通过将节点的标识作为伪随机函数的输入得到,并且ai<q,i∈[1,n],{x1,x2,...,xn}为主密钥集合,xi为正整数,n根据系统安全参数定义。
进一步的,接收模块14,还用于接收密钥生成中心发送的系统参数集合,系统参数集合表达式为:
MPK={y1,y2,…,yn},yi=pow(g,xi)mod q,所述i∈[1,n]
其中,MPK为系统参数集合,g为q构成素数域上一个子群的生成元。
进一步的,处理模块12,具体还用于根据节点1的私钥和另一节点的公钥通过如下公式计算节点1的共享密钥参数:
P1=(pow(y1,b1)pow(y2,b 2)…pow(yn,b n))^d1mod q
其中,P1为节点1的共享密钥参数,(pow(y1,b1)pow(y2,b2)…pow(yn,bn))为另一节点的公钥,{b 1,b 2,…,b n}为第二参数集合,b i为正整数,第二参数集合通过将另一节点的标识作为伪随机函数的输入得到,并且b i<q,i∈[1,n]。
在图5的基础上,图6为本发明实施例提供的另一种节点结构示意图,参照图6,该节点1a还包括:监听模块11。
监听模块11,监听节点1a所在网络范围内的广播信息,根据广播信息获取杂凑值。
具体的,监听模块维护时间窗口的缓冲,节点1a将该时间窗口内网络范围内的广播信息记录在缓冲中,根据广播信息获取杂凑值。进一步的,节点1a所在网络范围内的广播信息由专用的广播节点进行广播;或者,节点1a所在网络范围内的广播信息为节点1a的邻近节点间的通信信息;或者,节点1a所在网络范围内的广播信息为网络范围内的可识别背景音。
处理模块12,具体用于根据节点1a的共享密钥参数和杂凑值计算得到节点1a的共享密钥。
进一步的,处理模块12,具体还用于从节点1a的共享密钥中导出加密对称密钥和消息认证码密钥。
处理模块12,具体还用于随机生成初始化向量,根据加密对称密钥加密数据,生成密文数据;根据消息认证码密钥、初始化向量和密文数据生成消息认证码。
发送模块13,具体还用于将包含密文数据、初始化向量以及消息认证码的报文发送给另一节点。
图7为本发明实施例提供的另一种节点结构示意图,该节点2可以为上述实施例中的第二节点,如图7所示,该节点2包括:获取模块20、处理模块22、发送模块23、接收模块24。
获取模块20,用于从密钥生成中心获取节点2的私钥,并根据相邻节点标识列表获取另一节点的标识。
需要说明的是,另一节点对应上述实施例中的第一节点。
处理模块22,用于根据另一节点的标识计算得到另一节点的公钥;还用于根据节点2的私钥和另一节点的公钥计算节点2的共享密钥参数;还用于根据节点2的共享密钥参数计算得到节点2的共享密钥,生成与节点2的共享密钥对应的第二密钥验证码。
接收模块24,用于接收另一节点发送的共享密钥验证消息,共享密钥验证消息包含第一密钥验证码。
发送模块23,用于若第一密钥验证码与第二密钥验证码匹配,则向另一节点发送共享密钥响应消息,确认第一密钥验证码正确。
接收模块24,还用于根据节点2的共享密钥与另一节点通信。
本实施例提供的节点,通过获取模块从密钥生成中心获取节点的私钥,并根据相邻节点标识列表获取另一节点的标识;处理模块根据另一节点的标识计算得到另一节点的公钥;根据节点的私钥和另一节点的公钥计算节点的共享密钥参数;根据节点的共享密钥参数计算得到节点的共享密钥,生成与节点的共享密钥对应的第二密钥验证码;接收模块接收另一节点发送的共享密钥验证消息,共享密钥验证消息包含第一密钥验证码;若第一密钥验证码与第二密钥验证码匹配,则发送模块向另一节点发送共享密钥响应消息,确认第一密钥验证码正确;接收模块根据节点的共享密钥与另一节点通信,由于根据节点的私钥预先计算第二共享密钥参数以及根据第二共享密钥参数和杂凑值计算得到节点的共享密钥的步骤是可以离线完成,减少了交互次数, 因此当发起方的节点发起认证时,节点可以在非常短的时间内完成认证过程,提高了认证效率。
进一步的,获取模块20,具体用于获取节点2的标识,并向密钥生成中心发送节点2的标识,接收密钥生成中心发送的节点2的私钥。
其中,节点2的私钥表达式为:
d2=(b1x1+b 2x2+…b nxn)mod q
其中,d2为节点2的私钥,q为大素数,{b 1,b 2,…,b n}为第二参数集合,b i为正整数,第二参数集合通过将节点2的标识作为PRF的输入得到,并且b i<q,i∈[1,n],{x1,x2,...,xn}为主密钥集合,xi为正整数,n根据系统安全参数定义。
进一步的,接收模块24,还用于接收密钥生成中心发送的系统参数集合,系统参数集合表达式为:
MPK={y1,y2,…,yn},yi=pow(g,xi)mod q,所述i∈[1,n]
其中,MPK为系统参数集合,g为q构成素数域上一个子群的生成元。
处理模块22,具体还用于根据节点2的私钥和另一节点的公钥通过如下公式计算节点2的共享密钥参数:
P2=(pow(y1,a1)pow(y2,a2)…pow(yn,an))^d2mod q
其中,P2为节点2的共享密钥参数,(pow(y1,a1)pow(y2,a2)…pow(yn,an)为另一节点的公钥,{a1,a2,…,an}为第一参数集合,ai为正整数,第一参数集合通过将另一节点的标识作为伪随机函数的输入得到,并且ai<q,i∈[1,n]。
在图7基础上,图8为本发明实施例提供的另一种节点结构示意图,参照图8,该节点2a还包括:监听模块21。
监听模块21,用于监听节点2a所在网络范围内的广播信息,根据广播信息获取杂凑值。
具体的,监听模块维护时间窗口的缓冲,将该时间窗口内网络范围内的广播信息记录在缓冲中,根据广播信息获取杂凑值。进一步的,节点2a所在网络范围内的广播信息由专用的广播节点进行广播;或者,节点2a所在网络范围内的广播信息为节点的邻近节点间的通信信息;或者,节点2a所在网络范围内的广播信息为网络范围内的可识别背景音。
处理模块22,具体用于根据节点2a的共享密钥参数和杂凑值计算得到节点的共享密钥。
进一步的,接收模块24,具体还用于收另一节点发送的包含密文数据、初始化向量以及第一消息认证码的报文。
处理模块22,具体还用于从节点的共享密钥中导出加密对称密钥和消息认证码密钥。
处理模块22,具体还用于根据消息认证码密钥和初始化向量生成第二消息认证码。
处理模块22,具体还用于将第二消息认证码与第一消息认证码进行比对,若匹配,则对根据加密对称密钥对密文数据进行解密。
图9为本发明实施例提供的一种密钥生成中心结构示意图,如图9所示,该密钥生成中心3包括:处理模块30、接收模块31、发送模块32。
处理模块30,用于根据主密钥集合生成系统参数集合,并将系统参数集合发送给网络节点。
接收模块31,用于接收网络节点发送的网络节点的标识。
处理模块30,还用于根据网络节点的标识计算得到网络节点的私钥;
发送模块32,用于向网络节点发送网络节点的私钥。
本实施例提供的密钥生成中心,通过处理模块根据主密钥集合生成系统参数集合,并将系统参数集合发送给网络节点。接收模块接收网络节点发送的网络节点的标识。处理模块根据网络节点的标识计算得到网络节点的私钥;发送模块向网络节点发送网络节点的私钥。由于每一个网络节点只需要和密钥生成中心通信一次,因此密钥生成中心可以简单地是一个板卡,或是整个云中的一个服务进程,对性要求较低,并且密钥生成中心也无需一直在线。因此降低了部署成本。
进一步的,处理模块30,还用于生成主密钥集合,主密钥集合表达式为:
MSK={x1,x2,…,xn}
其中,MSK为主密钥集合,xi为正整数,i∈[1,n],n根据系统安全参数定义。
进一步的,系统参数集合表达式为:
MPK={y1,y2,…,yn},yi=pow(g,xi)mod q,所述i∈[1,n]
其中,MPK为系统参数集合,q为大素数,g为q构成素数域上一个子群的生成元。
处理模块30,具体用于根据网络节点的标识,通过伪随机函数获取参数集合{m1,m 2,…,m n},m i为正整数,并且所述m i<q,所述q为大素数,所述i∈[1,n];
处理模块30,具体用于通过如下公式获取网络节点的私钥:
d=(m 1x1+m 2x2+…m nxn)mod q
其中,d为网络节点的私钥。
具体的,当上述实施例中的第一节点和第二节点通信时,此时,本实施例中的网络节点具体为第一节点和第二节点。
则密钥生成中心3需要针对第一节点和第二节点,分别执行上述步骤300至303。下面通过具体实施例进行说明:
针对第一节点:
接收模块31,具体用于接收第一节点发送的第一节点的标识。
处理模块30,具体用于根据第一节点的标识,通过伪随机函数获取第一参数集合{a1,a2,…,an},ai为正整数,并且ai<q,q为大素数,i∈[1,n];
处理模块30,具体用于通过如下公式获取第一节点的私钥:
d1=(a1x1+a2x2+…anxn)mod q
其中,d1为第一节点的私钥。
发送模块32,具体用于向第一节点发送d1
针对第二节点:
接收模块31,具体用于接收第二节点发送的第二节点的标识。
处理模块30,具体用于根据第二节点的标识,通过伪随机函数获取第二参数集合{b 1,b 2,…,b n},b i为正整数,并且b i<q,q为大素数,i∈[1,n]。
处理模块30,具体用于通过如下公式获取第二节点的私钥:
d2=(b1x1+b 2x2+……b nxn)mod q
其中,d2为第二节点的私钥。
发送模块32,具体用于向第二节点发送d2
网络中的任意两个节点与密钥生成中心都能构成基于组合公钥密码体制的安全通信系统,其中一个节点为作为数据的发送方,如上述实施例中的第一节点,另一个节点作为数据的接收方,如上述实施例中的第二节点。作为发送方的节点,可以采用图5或图6的结构其对应地,执行本发明基于组合公钥密码体制的通信方法中图1所示的技术方案;作为接收方的节点,可以采用图7或图8的结构其对应地,执行本发明基于组合公钥密码体制的通信方法中图2所示的技术方案;密钥生成中心可以采用图9的结构其对应地,执行本发明基于组合公钥密码体制的通信方法中图3所示的技术方案。其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (41)

  1. 一种基于组合公钥密码体制的通信方法,其特征在于,包括:
    第一节点从密钥生成中心获取所述第一节点的私钥,并根据相邻节点标识列表获取第二节点的标识;
    所述第一节点根据所述第二节点的标识计算得到所述第二节点的公钥;
    所述第一节点根据所述第一节点的私钥和所述第二节点的公钥计算所述第一节点的共享密钥参数;
    所述第一节点根据所述第一节点的共享密钥参数计算得到所述第一节点的共享密钥,生成与所述第一节点的共享密钥对应的密钥验证码;
    所述第一节点向所述第二节点发送共享密钥验证消息,所述共享密钥验证消息包含所述密钥验证码;
    所述第一节点接收所述第二节点发送的共享密钥响应消息,确认所述密钥验证码正确;
    所述第一节点根据所述第一节点的共享密钥与所述第二节点通信。
  2. 根据权利要求1所述的方法,其特征在于,所述第一节点从所述密钥生成中心获取所述第一节点的私钥,包括:
    所述第一节点获取所述第一节点的标识,并向所述密钥生成中心发送所述第一节点的标识;
    所述第一节点接收所述密钥生成中心发送的所述第一节点的私钥。
  3. 根据权利要求1或2所述的方法,其特征在于,所述第一节点的私钥表达式为:
    d1=(a1x1+a2x2+……anxn)mod q
    其中,所述d1为所述第一节点的私钥,所述q为大素数,所述{a1,a2,…,an}为第一参数集合,ai为正整数,所述第一参数集合通过将所述第一节点的标识作为伪随机函数的输入得到,并且ai<q,所述i∈[1,n],所述{x1,x2,...,xn}为主密钥集合,xi为正整数,所述n根据系统安全参数定义。
  4. 根据权利要求3所述的方法,其特征在于,在所述第一节点获取所述第一节点的私钥之前,还包括:
    所述第一节点接收所述密钥生成中心发送的系统参数集合,所述系统参数集合表达式为:
    MPK={y1,y2,…,yn},yi=pow(g,xi)mod q,所述i∈[1,n]
    其中,所述MPK为系统参数集合,所述g为所述q构成素数域上一个子群的生成元。
  5. 根据权利要求4所述的方法,其特征在于,所述第一节点根据所述第一节点的私钥和所述第二节点的公钥通过如下公式计算所述第一节点的共享密钥参数:
    P1=(pow(y1,b1)pow(y2,b2)…pow(yn,bn))^d1mod q
    其中,所述P1为所述第一节点的共享密钥参数,所述(pow(y1,b1)pow(y2,b2)…pow(yn,bn))为所述第二节点的公钥,所述{b1,b2,…,bn}为第二参数集合,bi为正整数,所述第二参数集合通过将所述第二节点的标识作为伪随机函数的输入得到,并且bi<q,i∈[1,n]。
  6. 根据权利要求1-5任意一项所述的方法,其特征在于,在所述第一节点根据所述第一节点的私钥和所述第二节点的公钥计算所述第一节点的共享密钥参数之后,还包括:
    所述第一节点监听所述第一节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值;
    所述第一节点根据所述第一节点的共享密钥参数计算得到所述第一节点的共享密钥,包括:
    所述第一节点根据所述第一节点的共享密钥参数和所述杂凑值计算得到所述第一节点的共享密钥。
  7. 根据权利要求6所述的方法,其特征在于,所述第一节点监听所述第一节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值,包括:
    所述第一节点维护时间窗口的缓冲,所述第一节点将所述时间窗口内所述网络范围内的广播信息记录在所述缓冲中,根据所述广播信息获取所述杂凑值。
  8. 根据权利要求1-7任意一项所述的方法,其特征在于,所述第一节点根据所述第一节点的共享密钥与所述第二节点通信,包括:
    所述第一节点从所述第一节点的共享密钥中导出加密对称密钥和消息认证码密钥;
    所述第一节点随机生成初始化向量,根据所述加密对称密钥加密数据, 生成密文数据;根据所述消息认证码密钥、所述初始化向量和所述密文数据生成消息认证码;
    所述第一节点将包含所述密文数据、所述初始化向量以及所述消息认证码的报文发送给所述第二节点。
  9. 一种基于组合公钥密码体制的通信方法,其特征在于,包括:
    第二节点从密钥生成中心获取所述第二节点的私钥,并根据相邻节点标识列表获取第一节点的标识;
    所述第二节点根据所述第一节点的标识计算得到所述第一节点的公钥;
    所述第二节点根据所述第二节点的私钥和所述第一节点的公钥计算所述第二节点的共享密钥参数;
    所述第二节点根据所述第二节点的共享密钥参数计算得到所述第二节点的共享密钥,生成与所述第二节点的共享密钥对应的第二密钥验证码;
    所述第二节点接收所述第一节点发送的共享密钥验证消息,所述共享密钥验证消息包含第一密钥验证码;
    若所述第一密钥验证码与所述第二密钥验证码匹配,则所述第二节点向所述第一节点发送共享密钥响应消息,确认所述第一密钥验证码正确;
    所述第二节点根据所述第二节点的共享密钥与所述第一节点通信。
  10. 根据权利要求9所述的方法,其特征在于,所述第二节点从所述密钥生成中心获取所述第二节点的私钥,包括:
    所述第二节点获取所述第二节点的标识,并向所述密钥生成中心发送所述第二节点的标识;
    所述第二节点接收所述密钥生成中心发送的所述第二节点的私钥。
  11. 根据权利要求9或10所述的方法,其特征在于,所述第二节点的私钥表达式为:
    d2=(b1x1+b2x2+…bnxn)mod q
    其中,所述d2为所述第二节点的私钥,所述q为大素数,所述{b1,b2,…,bn}为第二参数集合,bi为正整数,所述第二参数集合通过将所述第二节点的标识作为伪随机函数的输入得到,并且bi<q,i∈[1,n],所述{x1,x2,...,xn}为主密钥集合,xi为正整数,所述n根据系统安全参数定义。
  12. 根据权利要求11所述的方法,其特征在于,在所述第二节点获取所 述第二节点的私钥之前,还包括:
    所述第二节点接收所述密钥生成中心发送的系统参数集合,所述系统参数集合表达式为:
    MPK={y1,y2,…,yn},yi=pow(g,xi)mod q,所述i∈[1,n]
    其中,所述MPK为系统参数集合,所述g为所述q构成素数域上一个子群的生成元。
  13. 根据权利要求12所述的方法,其特征在于,所述第二节点根据所述第二节点的私钥和所述第一节点的公钥通过如下公式计算所述第二节点的共享密钥参数:
    P2=(pow(y1,a1)pow(y2,a2)…pow(yn,an))^d2mod q
    其中,所述P2为所述第二节点的共享密钥参数,所述(pow(y1,a1)pow(y2,a2)…pow(yn,an))为所述第一节点的公钥,所述{a1,a2,…,an}为第一参数集合,ai为正整数,所述第一参数集合通过将所述第一节点的标识作为伪随机函数的输入得到,并且ai<q,i∈[1,n]。
  14. 根据权利要求9-13任意一项所述的方法,其特征在于,在所述第二节点根据所述第二节点的私钥和所述第一节点的公钥计算所述第二节点的共享密钥参数之后,还包括:
    所述第二节点监听所述第二节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值;
    所述第二节点根据所述第二节点的共享密钥参数计算得到所述第二节点的共享密钥,包括:
    所述第二节点根据所述第二节点的共享密钥参数和所述杂凑值计算得到所述第二节点的共享密钥。
  15. 根据权利要求14所述的方法,其特征在于,所述第二节点监听所述第二节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值,包括:
    所述第二节点维护时间窗口的缓冲,所述第二节点将所述时间窗口内所述网络范围内的广播信息记录在所述缓冲中,根据所述广播信息获取所述杂凑值。
  16. 根据权利要求9-15任意一项所述的方法,其特征在于,所述第二节点根据所述第二节点的共享密钥与所述第一节点通信,包括:
    所述第二节点接收所述第一节点发送的包含密文数据、初始化向量以及第一消息认证码的报文;
    所述第二节点从所述第二节点的共享密钥中导出加密对称密钥和消息认证码密钥;
    所述第二节点根据所述消息认证码密钥和所述初始化向量生成第二消息认证码;
    所述第二节点将所述第二消息认证码与所述第一消息认证码进行比对,若匹配,则根据所述加密对称密钥对所述密文数据进行解密。
  17. 一种基于组合公钥密码体制的通信方法,其特征在于,包括:
    密钥生成中心根据主密钥集合生成系统参数集合,并将所述系统参数集合发送给网络节点;
    所述密钥生成中心接收所述网络节点发送的所述网络节点的标识;
    所述密钥生成中心根据所述网络节点的标识计算得到所述网络节点的私钥;
    所述密钥生成中心向所述网络节点发送所述网络节点的私钥。
  18. 根据权利要求17所述的方法,其特征在于,所述密钥生成中心根据主密钥集合生成系统参数集合之前,还包括:
    所述密钥生成中心生成所述主密钥集合,所述主密钥集合表达式为:
    MSK={x1,x2,…,xn}
    其中,所述MSK为主密钥集合,xi为正整数,所述i∈[1,n],所述n根据系统安全参数定义。
  19. 根据权利要求18所述的方法,其特征在于,所述系统参数集合表达式为:
    MPK={y1,y2,…,yn},yi=pow(g,xi)mod q,所述i∈[1,n]
    其中,所述MPK为系统参数集合,所述q为大素数,所述g为所述q构成素数域上一个子群的生成元。
  20. 根据权利要求19所述的方法,其特征在于,所述密钥生成中心根据所述网络节点的标识计算得到所述网络节点的私钥,包括:
    所述密钥生成中心根据所述网络节点的标识,通过伪随机函数获取参数集合{m1,m2,…,mn},mi为正整数,并且mi<q;
    所述密钥生成中心通过如下公式获取所述网络节点的私钥:
    d=(m1x1+m2x2+…mnxn)mod q
    其中,所述d为所述网络节点的私钥。
  21. 一种节点,其特征在于,包括:
    获取模块,用于从密钥生成中心获取所述节点的私钥,并根据相邻节点标识列表获取另一节点的标识;
    处理模块,用于根据所述另一节点的标识计算得到所述另一节点的公钥,根据所述节点的私钥和所述另一节点的公钥计算所述节点的共享密钥参数;还用于根据所述节点的共享密钥参数计算得到所述节点的共享密钥,生成与所述节点的共享密钥对应的密钥验证码;
    发送模块,用于向所述另一节点发送共享密钥验证消息,所述共享密钥验证消息包含所述密钥验证码;
    接收模块,用于接收所述另一节点发送的共享密钥响应消息,确认所述密钥验证码正确;
    所述发送模块,还用于根据所述节点的共享密钥与所述另一节点通信。
  22. 根据权利要求21所述的节点,其特征在于,所述获取模块,具体用于获取所述节点的标识,并向所述密钥生成中心发送所述节点的标识,接收所述密钥生成中心发送的所述节点的私钥。
  23. 根据权利要求21或22所述的节点,其特征在于,所述节点的私钥表达式为:
    d1=(a1x1+a2x2+……anxn)mod q
    其中,所述d1为所述节点的私钥,所述q为大素数,所述{a1,a2,…,an}为第一参数集合,ai为正整数,所述第一参数集合通过将所述节点的标识作为伪随机函数的输入得到,并且所述ai<所述q,所述i∈[1,n],所述{x1,x2,...,xn}为主密钥集合,xi为正整数,所述n根据系统安全参数定义。
  24. 根据权利要求23所述的节点,其特征在于,所述接收模块,还用于接收密钥生成中心发送的系统参数集合,所述系统参数集合表达式为:
    MPK={y1,y2,…,yn},yi=pow(g,xi)modq,所述i∈[1,n]
    其中,所述MPK为系统参数集合,所述g为所述q构成素数域上一个子群的生成元。
  25. 根据权利要求24所述的节点,其特征在于,所述处理模块,具体还用于根据所述节点的私钥和所述另一节点的公钥通过如下公式计算所述节点的共享密钥参数:
    P1=(pow(y1,b1)pow(y2,b2)…pow(yn,bn))^d1mod q
    其中,所述P1为所述节点的共享密钥参数,所述(pow(y1,b1)pow(y2,b2)…pow(yn,bn))为所述另一节点的公钥,所述{b1,b2,…,bn}为第二参数集合,bi为正整数,所述第二参数集合通过将所述另一节点的标识作为伪随机函数的输入得到,并且bi<q,i∈[1,n]。
  26. 根据权利要求21-25任意一项所述的节点,其特征在于,还包括:
    监听模块,监听所述节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值;
    所述处理模块,具体用于根据所述节点的共享密钥参数和所述杂凑值计算得到所述节点的共享密钥。
  27. 根据权利要求26所述的节点,其特征在于,所述监听模块,具体用于维护时间窗口的缓冲,将所述时间窗口内所述网络范围内的广播信息记录在所述缓冲中,根据所述广播信息获取所述杂凑值。
  28. 根据权利要求21-27任意一项所述的节点,其特征在于,所述处理模块,具体还用于从所述节点的共享密钥中导出加密对称密钥和消息认证码密钥,随机生成初始化向量,根据所述加密对称密钥加密数据,生成密文数据;根据所述消息认证码密钥、所述初始化向量和所述密文数据生成消息认证码;
    所述发送模块,具体还用于将包含所述密文数据、所述初始化向量以及所述消息认证码的报文发送给所述另一节点。
  29. 一种节点,其特征在于,包括:
    获取模块,用于从密钥生成中心获取所述节点的私钥,并根据相邻节点标识列表获取另一节点的标识;
    处理模块,用于根据所述另一节点的标识计算得到所述另一节点的公钥;还用于根据所述节点的私钥和所述另一节点的公钥计算所述节点的共享密钥参数;还用于根据所述节点的共享密钥参数计算得到所述节点的共享密钥,生成与所述节点的共享密钥对应的第二密钥验证码;
    接收模块,用于接收所述另一节点发送的共享密钥验证消息,所述共享密钥验证消息包含第一密钥验证码;
    发送模块,用于若所述第一密钥验证码与所述第二密钥验证码匹配,则向所述另一节点发送共享密钥响应消息,确认所述第一密钥验证码正确;
    所述接收模块,还用于根据所述节点的共享密钥与所述另一节点通信。
  30. 根据权利要求29所述的节点,其特征在于,所述获取模块,具体用于获取所述节点的标识,并向所述密钥生成中心发送所述节点的标识,接收所述密钥生成中心发送的所述节点的私钥。
  31. 根据权利要求29或30所述的节点,其特征在于,所述节点的私钥表达式为:
    d2=(b1x1+b2x2+…bnxn)mod q
    其中,所述d2为所述节点的私钥,所述q为大素数,所述{b1,b2,…,bn}为第二参数集合,bi为正整数,所述第二参数集合通过将所述节点的标识作为伪随机函数的输入得到,并且bi<q,i∈[1,n],所述{x1,x2,...,xn}为主密钥集合,xi为正整数,所述n根据系统安全参数定义。
  32. 根据权利要求31所述的节点,其特征在于,所述接收模块,还用于接收所述密钥生成中心发送的系统参数集合,所述系统参数集合表达式为:
    MPK={y1,y2,…,yn},yi=pow(g,xi)mod q,所述i∈[1,n]
    其中,所述MPK为系统参数集合,所述g为所述q构成素数域上一个子群的生成元。
  33. 根据权利要求32所述的节点,其特征在于,所述处理模块,具体还用于根据所述节点的私钥和所述另一节点的公钥通过如下公式计算所述节点的共享密钥参数:
    P2=(pow(y1,a1)pow(y2,a2)…pow(yn,an))^d2mod q
    其中,所述P2为所述节点的共享密钥参数,所述(pow(y1,a1)pow(y2,a2)…pow(yn,an)为所述另一节点的公钥,所述{a1,a2,…,an}为第一参数集合,ai为正整数,所述第一参数集合通过将所述另一节点的标识作为伪随机函数的输入得到,并且ai<q,i∈[1,n]。
  34. 根据权利要求29-33任意一项所述的节点,其特征在于,还包括:
    监听模块,用于监听所述节点所在网络范围内的广播信息,根据所述广 播信息获取杂凑值;
    所述处理模块,具体用于根据所述节点的共享密钥参数和所述杂凑值计算得到所述节点的共享密钥。
  35. 根据权利要求34所述的节点,其特征在于,所述监听模块,具体用于维护时间窗口的缓冲,将所述时间窗口内所述所在网络范围内的广播信息记录在所述缓冲中,根据所述广播信息获取所述杂凑值。
  36. 根据权利要求29-35任意一项所述的节点,其特征在于,所述接收模块,具体还用于接收所述另一节点发送的包含密文数据、初始化向量以及第一消息认证码的报文;
    所述处理模块,具体还用于从所述节点的共享密钥中导出加密对称密钥和消息认证码密钥,根据所述消息认证码密钥和所述初始化向量生成第二消息认证码;
    所述处理模块,具体还用于将所述第二消息认证码与所述第一消息认证码进行比对,若匹配,则对根据所述加密对称密钥对所述密文数据进行解密。
  37. 一种密钥生成中心,其特征在于,包括:
    处理模块,用于根据主密钥集合生成系统参数集合,并将所述系统参数集合发送给网络节点;
    接收模块,用于接收所述网络节点发送的所述网络节点的标识;
    所述处理模块,还用于根据所述网络节点的标识计算得到所述网络节点的私钥;
    发送模块,用于向所述网络节点发送所述网络节点的私钥。
  38. 根据权利要求37所述的密钥生成中心,其特征在于,所述处理模块,还用于生成所述主密钥集合,所述主密钥集合表达式为:
    MSK={x1,x2,…,xn}
    其中,所述MSK为主密钥集合,xi为正整数,所述i∈[1,n],所述n根据系统安全参数定义。
  39. 根据权利要求38所述的密钥生成中心,其特征在于,所述系统参数集合表达式为:
    MPK={y1,y2,…,yn},yi=pow(g,xi)mod q,所述i∈[1,n]
    其中,所述MPK为系统参数集合,所述q为大素数,所述g为所述q 构成素数域上一个子群的生成元。
  40. 根据权利要求39所述的密钥生成中心,其特征在于,所述处理模块,具体用于根据所述网络节点的标识,通过伪随机函数获取参数集合{m1,m2,…,mn},mi为正整数,并且所述mi<q,所述i∈[1,n];
    所述处理模块,具体用于通过如下公式获取所述网络节点的私钥:
    d=(m1x1+m2x2+…mnxn)mod q
    其中,所述d为所述网络节点的私钥。
  41. 一种基于组合公钥密码体制的通信系统,其特征在于,包括:权利要求21-28任意一项所述的节点,权利要求29-36任意一项所述的节点,权利要求37-39任意一项所述的密钥生成中心。
PCT/CN2014/089536 2014-02-28 2014-10-27 基于组合公钥密码体制的通信方法、装置及系统 WO2015127789A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410073565.2A CN103825733A (zh) 2014-02-28 2014-02-28 基于组合公钥密码体制的通信方法、装置及系统
CN201410073565.2 2014-02-28

Publications (1)

Publication Number Publication Date
WO2015127789A1 true WO2015127789A1 (zh) 2015-09-03

Family

ID=50760582

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/089536 WO2015127789A1 (zh) 2014-02-28 2014-10-27 基于组合公钥密码体制的通信方法、装置及系统

Country Status (2)

Country Link
CN (1) CN103825733A (zh)
WO (1) WO2015127789A1 (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10652014B2 (en) 2016-02-23 2020-05-12 nChain Holdings Limited Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
US10659223B2 (en) 2016-02-23 2020-05-19 nChain Holdings Limited Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
US10715336B2 (en) 2016-02-23 2020-07-14 nChain Holdings Limited Personal device security using elliptic curve cryptography for secret sharing
CN111445251A (zh) * 2020-04-16 2020-07-24 中国银行股份有限公司 一种重要空白凭证的处理方法、系统及区块链平台
CN111614678A (zh) * 2020-05-22 2020-09-01 中国联合网络通信集团有限公司 防泄密方法及防泄密装置、加密装置
US11018846B2 (en) 2017-08-02 2021-05-25 Siemens Aktiengesellschaft Methods and apparatuses for achieving a security function, in particular in the environment of a device and/or installation controller
US20210167972A1 (en) * 2019-01-09 2021-06-03 Tencent Technology (Shenzhen) Company Limited Method for issuing digital certificate, digital certificate issuing center, and medium
US11120437B2 (en) 2016-02-23 2021-09-14 nChain Holdings Limited Registry and automated management method for blockchain-enforced smart contracts
US11126976B2 (en) 2016-02-23 2021-09-21 nChain Holdings Limited Method and system for efficient transfer of cryptocurrency associated with a payroll on a blockchain that leads to an automated payroll method and system based on smart contracts
US11182782B2 (en) 2016-02-23 2021-11-23 nChain Holdings Limited Tokenisation method and system for implementing exchanges on a blockchain
US11194898B2 (en) 2016-02-23 2021-12-07 nChain Holdings Limited Agent-based turing complete transactions integrating feedback within a blockchain system
US11308486B2 (en) 2016-02-23 2022-04-19 nChain Holdings Limited Method and system for the secure transfer of entities on a blockchain
US11373152B2 (en) 2016-02-23 2022-06-28 nChain Holdings Limited Universal tokenisation system for blockchain-based cryptocurrencies
US11410145B2 (en) 2016-02-23 2022-08-09 nChain Holdings Limited Blockchain-implemented method for control and distribution of digital content
US11455378B2 (en) 2016-02-23 2022-09-27 nChain Holdings Limited Method and system for securing computer software using a distributed hash table and a blockchain
CN115549904A (zh) * 2022-10-11 2022-12-30 北京无字天书科技有限公司 密钥生成方法及相关方法、计算机设备和存储介质
US11606219B2 (en) 2016-02-23 2023-03-14 Nchain Licensing Ag System and method for controlling asset-related actions via a block chain
US11625694B2 (en) 2016-02-23 2023-04-11 Nchain Licensing Ag Blockchain-based exchange with tokenisation
US11727501B2 (en) 2016-02-23 2023-08-15 Nchain Licensing Ag Cryptographic method and system for secure extraction of data from a blockchain

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103825733A (zh) * 2014-02-28 2014-05-28 华为技术有限公司 基于组合公钥密码体制的通信方法、装置及系统
US9706397B2 (en) * 2015-06-05 2017-07-11 Qualcomm Incorporated Flexible configuration and authentication of wireless devices
CN105656875A (zh) * 2015-10-21 2016-06-08 乐卡汽车智能科技(北京)有限公司 基于mptcp的主流连接建立方法及装置
CN106209369B (zh) * 2016-07-01 2019-04-12 中国人民解放军国防科学技术大学 一种基于身份密码系统的通信方法
SG10201609247YA (en) * 2016-11-04 2018-06-28 Huawei Int Pte Ltd System and method for configuring a wireless device for wireless network access
CN107808284B (zh) * 2017-11-17 2021-12-28 上海瀚银信息技术有限公司 一种基于pos机系统的支付方法
GB201815396D0 (en) * 2018-09-21 2018-11-07 Nchain Holdings Ltd Computer implemented system and method
CN109379189B (zh) * 2018-12-17 2022-05-20 江苏恒宝智能系统技术有限公司 区块链账户密钥备份及恢复方法、装置、终端及系统
CN109617916A (zh) * 2019-01-16 2019-04-12 北京云中融信网络科技有限公司 秘钥处理方法及即时通讯系统
CN112019489B (zh) * 2019-05-31 2022-03-04 华为技术有限公司 验证方法及装置
CN110166239B (zh) * 2019-06-04 2023-01-06 成都卫士通信息产业股份有限公司 用户私钥生成方法、系统、可读存储介质及电子设备
CN110474908B (zh) * 2019-08-16 2022-04-05 广东省微位数字身份科技有限公司 交易监管方法与装置、存储介质及计算机设备
CN110896348B (zh) * 2019-11-26 2022-04-01 飞天诚信科技股份有限公司 一种密钥协商的方法及系统
US11374740B2 (en) * 2020-03-13 2022-06-28 Infineon Technologies Ag Controller area network key exchange
CN111526128B (zh) * 2020-03-31 2022-07-19 中国建设银行股份有限公司 一种加密管理的方法和装置
KR20230038571A (ko) * 2020-07-30 2023-03-20 후아웨이 테크놀러지 컴퍼니 리미티드 연관 제어 방법 및 관련 장치
CN114124480B (zh) * 2021-11-08 2023-12-05 闪捷信息科技有限公司 通信的认证方法、服务器、客户端、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101582906A (zh) * 2009-06-23 2009-11-18 中国人民解放军信息工程大学 密钥协商方法和装置
CN101908959A (zh) * 2010-07-28 2010-12-08 北京握奇数据系统有限公司 一种建立共享密钥的方法、设备及其系统
US20110138179A1 (en) * 2005-03-18 2011-06-09 Microsoft Corporation Scalable Session Management
CN102164367A (zh) * 2011-04-14 2011-08-24 北京理工大学 一种用于无线传感器网络的密钥管理方法
CN103825733A (zh) * 2014-02-28 2014-05-28 华为技术有限公司 基于组合公钥密码体制的通信方法、装置及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101272240B (zh) * 2007-03-21 2013-01-23 华为技术有限公司 一种会话密钥的生成方法、系统和通信设备
CN101465725A (zh) * 2007-12-18 2009-06-24 中国电子科技集团公司第五十研究所 一种基于身份的公钥系统的密钥分配方法
CN101594228B (zh) * 2009-07-02 2011-06-01 西安电子科技大学 证书公钥系统与身份公钥系统之间的认证加密方法
CN102131193A (zh) * 2010-01-12 2011-07-20 中国人民解放军总参谋部第六十一研究所 无线传感器网与计算机网融合网络的安全路由方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110138179A1 (en) * 2005-03-18 2011-06-09 Microsoft Corporation Scalable Session Management
CN101582906A (zh) * 2009-06-23 2009-11-18 中国人民解放军信息工程大学 密钥协商方法和装置
CN101908959A (zh) * 2010-07-28 2010-12-08 北京握奇数据系统有限公司 一种建立共享密钥的方法、设备及其系统
CN102164367A (zh) * 2011-04-14 2011-08-24 北京理工大学 一种用于无线传感器网络的密钥管理方法
CN103825733A (zh) * 2014-02-28 2014-05-28 华为技术有限公司 基于组合公钥密码体制的通信方法、装置及系统

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11356280B2 (en) 2016-02-23 2022-06-07 Nchain Holdings Ltd Personal device security using cryptocurrency wallets
US11936774B2 (en) 2016-02-23 2024-03-19 Nchain Licensing Ag Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
US10715336B2 (en) 2016-02-23 2020-07-14 nChain Holdings Limited Personal device security using elliptic curve cryptography for secret sharing
US11349645B2 (en) 2016-02-23 2022-05-31 Nchain Holdings Ltd. Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
US11347838B2 (en) 2016-02-23 2022-05-31 Nchain Holdings Ltd. Blockchain implemented counting system and method for use in secure voting and distribution
US11755718B2 (en) 2016-02-23 2023-09-12 Nchain Licensing Ag Blockchain implemented counting system and method for use in secure voting and distribution
US11727501B2 (en) 2016-02-23 2023-08-15 Nchain Licensing Ag Cryptographic method and system for secure extraction of data from a blockchain
US11120437B2 (en) 2016-02-23 2021-09-14 nChain Holdings Limited Registry and automated management method for blockchain-enforced smart contracts
US11126976B2 (en) 2016-02-23 2021-09-21 nChain Holdings Limited Method and system for efficient transfer of cryptocurrency associated with a payroll on a blockchain that leads to an automated payroll method and system based on smart contracts
US11182782B2 (en) 2016-02-23 2021-11-23 nChain Holdings Limited Tokenisation method and system for implementing exchanges on a blockchain
US11194898B2 (en) 2016-02-23 2021-12-07 nChain Holdings Limited Agent-based turing complete transactions integrating feedback within a blockchain system
US11308486B2 (en) 2016-02-23 2022-04-19 nChain Holdings Limited Method and system for the secure transfer of entities on a blockchain
US11972422B2 (en) 2016-02-23 2024-04-30 Nchain Licensing Ag Registry and automated management method for blockchain-enforced smart contracts
US10659223B2 (en) 2016-02-23 2020-05-19 nChain Holdings Limited Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
US11625694B2 (en) 2016-02-23 2023-04-11 Nchain Licensing Ag Blockchain-based exchange with tokenisation
US11373152B2 (en) 2016-02-23 2022-06-28 nChain Holdings Limited Universal tokenisation system for blockchain-based cryptocurrencies
US11410145B2 (en) 2016-02-23 2022-08-09 nChain Holdings Limited Blockchain-implemented method for control and distribution of digital content
US11455378B2 (en) 2016-02-23 2022-09-27 nChain Holdings Limited Method and system for securing computer software using a distributed hash table and a blockchain
US10652014B2 (en) 2016-02-23 2020-05-12 nChain Holdings Limited Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
US11606219B2 (en) 2016-02-23 2023-03-14 Nchain Licensing Ag System and method for controlling asset-related actions via a block chain
US11621833B2 (en) 2016-02-23 2023-04-04 Nchain Licensing Ag Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
US11018846B2 (en) 2017-08-02 2021-05-25 Siemens Aktiengesellschaft Methods and apparatuses for achieving a security function, in particular in the environment of a device and/or installation controller
US20210167972A1 (en) * 2019-01-09 2021-06-03 Tencent Technology (Shenzhen) Company Limited Method for issuing digital certificate, digital certificate issuing center, and medium
US11924358B2 (en) * 2019-01-09 2024-03-05 Tencent Technology (Shenzhen) Company Limited Method for issuing digital certificate, digital certificate issuing center, and medium
CN111445251B (zh) * 2020-04-16 2024-04-12 中国银行股份有限公司 一种重要空白凭证的处理方法、系统及区块链平台
CN111445251A (zh) * 2020-04-16 2020-07-24 中国银行股份有限公司 一种重要空白凭证的处理方法、系统及区块链平台
CN111614678A (zh) * 2020-05-22 2020-09-01 中国联合网络通信集团有限公司 防泄密方法及防泄密装置、加密装置
CN115549904A (zh) * 2022-10-11 2022-12-30 北京无字天书科技有限公司 密钥生成方法及相关方法、计算机设备和存储介质

Also Published As

Publication number Publication date
CN103825733A (zh) 2014-05-28

Similar Documents

Publication Publication Date Title
WO2015127789A1 (zh) 基于组合公钥密码体制的通信方法、装置及系统
CN107919956B (zh) 一种面向物联网云环境下端到端安全保障方法
CN107948189B (zh) 非对称密码身份鉴别方法、装置、计算机设备及存储介质
US11689359B2 (en) Methods and apparatus for quantum-resistant network communication
JP4944886B2 (ja) 展性攻撃に対して改良された安全性を有する技術(これに限定されない)を含む非ワンタイムパッド暗号で暗号化した署名鍵を用いた、暗号認証、及び/又は共有暗号鍵の設定
JP5349619B2 (ja) アイデンティティベースの認証鍵共有プロトコル
CN105530238B (zh) 用于安全对话建立和数据的加密交换的计算机实现系统和方法
JP6168415B2 (ja) 端末認証システム、サーバ装置、及び端末認証方法
JP4527358B2 (ja) 鍵供託を使用しない、認証された個別暗号システム
Lau et al. Blockchain-based authentication in IoT networks
US20130191632A1 (en) System and method for securing private keys issued from distributed private key generator (d-pkg) nodes
EP3469763B1 (en) A method for unified network and service authentication based on id-based cryptography
CN103763356A (zh) 一种安全套接层连接的建立方法、装置及系统
CN110087240B (zh) 基于wpa2-psk模式的无线网络安全数据传输方法及系统
CN112468490B (zh) 一种用于电网终端层设备接入的认证方法
TWI760546B (zh) 用於高安全性高速資料加密及傳輸的電腦實施系統與方法
CN110535626B (zh) 基于身份的量子通信服务站保密通信方法和系统
TW201537937A (zh) 統一身份認證平臺及認證方法
JP2017163612A (ja) 端末認証システム、サーバ装置、及び端末認証方法
Flood et al. Peer to peer authentication for small embedded systems: A zero-knowledge-based approach to security for the Internet of Things
Anggorojati et al. Securing communication in inter domains Internet of Things using identity-based cryptography
Da Silva et al. Towards a fully self-organized identity-based key management system for MANETs
GB2543359A (en) Methods and apparatus for secure communication
JP4924943B2 (ja) 認証付鍵交換システム、認証付鍵交換方法およびプログラム
Eissa et al. Enhancing MANET security using secret public keys

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14884146

Country of ref document: EP

Kind code of ref document: A1