End-to-end key agreement method, related system and computer storage medium
By employing an end-to-end key negotiation method, utilizing seed data and temporary communication public key signature information, the security threat of storing private data in the key distribution center is resolved. This enables multi-terminal sharing of communication keys and prevents information tampering, thereby improving communication security.
Patent Information
- Application Number
- CN202110895127.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-08-05
- Publication Date
- 2025-12-09
- Estimated Expiration
- 2041-08-05
AI Technical Summary
In existing technologies, the key distribution center of non-communication terminals in end-to-end encryption schemes stores the private data of user terminals, which can lead to serious security threats if compromised, and cannot prevent servers or third parties from tampering with the encrypted communication information.
By using a key negotiation method between the first terminal and multiple second terminals, seed data, temporary communication public keys, and identity signature information are used for encrypted signing to ensure that each terminal obtains the same communication key MK, which changes over time or as the terminal changes during communication, thus avoiding the use of a server key distribution center.
It enables multiple devices to share the same communication key, meets the encryption requirements for large volumes of data, and prevents servers or third parties from tampering with communication information, thereby improving communication security.
Smart Images

Figure CN115706984B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the network security technical field, and particularly relates to an end-to-end key agreement method, a related system and a computer medium. BACKGROUND
[0002] With the maturity of encryption technology, more and more communication data adopts encryption technology, in order to protect the security of encrypted data, the end-to-end encryption scheme becomes the focus of research in recent years. In the prior art, the non-communication terminal (such as the key distribution center) in the end-to-end encryption scheme stores the private data of the user terminal and can calculate the encryption key of the terminal communication. Once the key distribution center is attacked, this defect will bring serious security threat to the communication of the user terminal. SUMMARY
[0003] The end-to-end key agreement method, the related system and the computer storage medium provided by the embodiments of the present application can not only make multiple terminals share one communication key to meet the encryption demand of large flow data, but also prevent the server or the third party from tampering with the communication encryption information or the communication information.
[0004] In a first aspect, the embodiments of the present application provide an end-to-end key agreement method, which is applied to an end-to-end key agreement system, the end-to-end key agreement system includes one first terminal and one or more second terminals, and the method includes:
[0005] obtaining seed data, temporary communication public keys of the second terminals and identity signature information of the second terminals; wherein the seed data is used to represent randomly generated data with a preset number of bits; the seed data changes every preset time;
[0006] processing the seed data by using the temporary communication public keys of the second terminals and a temporary communication private key of the first terminal to obtain communication key signature information to be sent to the second terminals;
[0007] verifying the identity signature information of the second terminals, and in the case that the identity signature information of the second terminals is verified, sending the communication key signature information of the second terminals to the corresponding second terminals every preset time.
[0008] In a second aspect, the embodiments of the present application provide an end-to-end key agreement method, which is applied to an end-to-end key agreement system, the end-to-end key agreement system includes one first terminal and one or more second terminals, and the method includes:
[0009] obtaining temporary communication public keys of the first terminal, identity signature information of the first terminal, and communication key signature information generated by using a temporary communication public key of a second terminal and a temporary communication private key of the first terminal;
[0010] verifying the identity signature information of the first terminal, and processing the communication key signature information based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal to obtain a communication key in a case where the identity signature information of the first terminal is verified successfully;
[0011] obtaining communication information based on the communication key; wherein the communication information comprises any one or more of the following: communication video information, communication text information, and communication voice information.
[0012] In a third aspect, an embodiment of the present application provides a first terminal, which comprises:
[0013] a first obtaining module, configured to obtain seed data, temporary communication public keys of each second terminal, and identity signature information of the each second terminal; wherein the seed data is used to represent randomly generated data of a preset bit number; the seed data changes every preset time;
[0014] a first obtaining module, configured to obtain seed data, temporary communication public keys of each second terminal, and identity signature information of the each second terminal; wherein the seed data is used to represent randomly generated data of a preset bit number; the seed data changes every preset time;
[0015] a sending module, configured to verify the identity signature information of the each second terminal, and send the communication key signature information of the each second terminal to a corresponding second terminal every preset time in a case where the identity signature information of the each second terminal is verified successfully.
[0016] In a third aspect, an embodiment of the present application provides a first terminal, which comprises:
[0017] a second obtaining module, configured to obtain temporary communication public keys of the first terminal, identity signature information of the first terminal, and communication key signature information generated by using a temporary communication public key of a second terminal and a temporary communication private key of the first terminal;
[0018] a second obtaining module, configured to obtain temporary communication public keys of the first terminal, identity signature information of the first terminal, and communication key signature information generated by using a temporary communication public key of a second terminal and a temporary communication private key of the first terminal;
[0019] obtain a communication information based on the communication key; wherein the communication information comprises any one or more of the following: communication video information, communication text information, and communication voice information.
[0020] In a fifth aspect, an embodiment of the present application provides an end-to-end key agreement system, which comprises the first terminal of the third aspect, and one or more second terminals of the fourth aspect.
[0021] In a sixth aspect, an embodiment of the present application provides a computer storage medium, which stores a plurality of instructions, and the instructions are suitable for being loaded by a processor and performing the method steps described above.
[0022] In a seventh aspect, an embodiment of the present application provides a terminal, which can comprise a processor and a memory.
[0023] The memory stores a computer program, and the computer program is suitable for being loaded by the processor and performing the method steps described above.
[0024] The technical solutions provided by some embodiments of the present application have at least the following beneficial effects:
[0025] In the embodiments of the present application, each second terminal can obtain the same communication key MK through the communication between the first terminal and each second terminal, thereby avoiding the technical means of encrypting the communication key by using the key distribution center of the server in the prior art, and the communication key in the present application can change with the change of the user terminal or the change of the time factor in the communication process, so as to realize one-time-one-military between the first terminal and each second terminal. This can not only make multiple terminals share one communication key to meet the encryption demand of large flow data, but also prevent the server or the third party from tampering with the communication encryption information or the communication information. BRIEF DESCRIPTION OF DRAWINGS
[0026] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required in the embodiments will be briefly introduced as follows. Obviously, the drawings in the following description are only some embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative labor.
[0027] Figure 1 An application scenario diagram of an end-to-end key agreement system provided by an embodiment of the present application;
[0028] Figure 2 A flowchart of an end-to-end key agreement method provided by an embodiment of the present application;
[0029] Figure 3Another application scenario of the end-to-end key negotiation system provided by the embodiments of the present application is shown in the figure.
[0030] Figure 4 The structure diagram of the end-to-end key negotiation system provided by the embodiments of the present application is shown in the figure.
[0031] Figure 5 The structure diagram of the first terminal provided by the embodiments of the present application is shown in the figure.
[0032] Figure 6 The structure diagram of the second terminal provided by the embodiments of the present application is shown in the figure. DETAILED DESCRIPTION
[0033] The following description refers to the accompanying drawings. Unless otherwise noted, same or similar elements in different drawings are denoted by same or similar reference numerals. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present application. Instead, they are merely examples of systems and methods consistent with some aspects of the present application as detailed in the appended claims.
[0034] In the description of the present application, it should be understood that the terms "first", "second" and the like are used only for descriptive purposes and are not to be construed as indicating or implying relative importance. The above terms can be specifically understood in the present application according to the specific meaning of the person skilled in the art. In addition, in the description of the present application, "a plurality of" means two or more, unless otherwise specified. "And / or", which describes the relationship between the associated objects, means that there can be three relationships, for example, A and / or B can mean that there are three cases of A alone, A and B together, and B alone. The character " / " generally represents that the associated objects before and after are in an "or" relationship.
[0035] Figure 1 An application scenario of the end-to-end key negotiation system provided by the embodiments of the present application is shown in the figure. The end-to-end key negotiation system provided by the embodiments of the present application can include: a server 10, a terminal 11, a terminal 12, a terminal 13, and a terminal 14.
[0036] Specifically, during the preparation phase of the cloud video conferencing, participants using terminals 11-14 can pre-designate a host, for example, the user using terminal 12 can be designated as the host; alternatively, the host can be automatically selected from among the users using terminals 11-14 with the lowest identity identifier. For example, if the user in terminal 11 has an identity identifier of 1, the user in terminal 12 has an identity identifier of 2, the user in terminal 13 has an identity identifier of 3, and the user in terminal 14 has an identity identifier of 4, then the user in terminal 11 can be automatically selected as the host. During the use phase of the cloud video conferencing, the host's terminal can encrypt the generated meeting information and transmit it to the terminals of the other participants via server 10.
[0037] It is understood that server 10 can connect to the aforementioned terminals via a network. The network provides a communication link between the terminals and server 10. The network can include various connection types, such as wired, wireless communication links, or fiber optic cables. The aforementioned terminals include, but are not limited to: wearable devices, monitoring devices, handheld devices, personal computers, tablets, in-vehicle devices, smartphones, computing devices, or other processing devices connected to a wireless modem. Terminal devices may have different names in different networks, such as: monitoring equipment, user equipment, access terminal, user unit, user station, mobile station, mobile station, remote station, remote terminal, mobile device, user terminal, terminal, wireless communication device, user agent or user system, cellular phone, cordless phone, personal digital assistant (PDA), 5G network, or terminal devices in future evolved networks. A terminal system refers to an operating system that can run on a terminal; it is a program that manages and controls the terminal hardware and terminal applications, and is an indispensable system application for the terminal. This system includes, but is not limited to, Android, iOS, Windows Phone (WP), and Ubuntu mobile operating systems.
[0038] The number of networks and servers 10 shown here is merely illustrative. Depending on actual needs, there can be any number of terminals, networks, and servers. For example, server 10 could be a server cluster consisting of multiple servers. Users can use server 10 to interact with terminals via the network to obtain optimized versions, etc.
[0039] Next, combine Figure 1 The application scenario diagram of the end-to-end key negotiation system introduced in this application is used to illustrate the end-to-end key negotiation method provided in the embodiments. The end-to-end key negotiation system may include a first terminal and one or more second terminals.
[0040] In one embodiment, Figure 2 As shown in FIG. 1, a flowchart of an end-to-end key agreement method is provided. As shown in FIG. 2, the end-to-end key agreement method can include the following steps: Figure 2
[0041] S201, the first terminal obtains seed data, temporary communication public keys of each second terminal, and signature information of each second terminal.
[0042] In the embodiments of the present application, the seed data is used to represent randomly generated data of a preset number of bits; the seed data changes once every preset time. For example, the seed data can be randomly generated 32-byte binary data. The preset time can be a time interval preset by the end-to-end key agreement system, for example, the seed data is regenerated once every 15S or 20S. It can be understood that the seed data continues to change during the use of the end-to-end key agreement system.
[0043] The temporary communication public key of the second terminal is obtained from a temporary communication key pair, and the temporary communication key pair is randomly generated by each terminal when a new terminal is created in the end-to-end key agreement system. For example, the temporary communication key pair of the first terminal can be (pk1, sk1), where pk1 is the temporary communication public key of the first terminal, and sk1 is the temporary communication private key of the first terminal. It can be understood that the temporary communication key pair of each terminal can be associated with the identification information of the current communication, that is, the temporary communication key pair of each terminal is saved locally and does not change during the use of the end-to-end key agreement system, and the temporary communication key pair of each terminal is automatically cleared after the communication ends.
[0044] It can be understood that the second terminal can upload its signature information to the server and save it, and further, the first terminal can obtain the identity signature information of the second terminal through the server to verify the identity of the second terminal. The second terminal can send its signature information to the first terminal.
[0045] It can be understood that the identity information of the first terminal and each second terminal, the terminal identification information, the temporary communication public key, the long-term public key, the identification information of the communication, and the preset code of the communication in the embodiments of the present application can also be uploaded to the server for storage, and further, the first terminal and each second terminal can also obtain the required related information of other terminals through the server.
[0046] The identity information of the second terminal is unique identity data of a user using the second terminal, for example, an account of a user Xiao Wang using a tablet computer to participate in a cloud video conference. The identity information of the communication can include a communication code and / or a communication identification code; the communication code is used to represent the account corresponding to the communication, and the communication identification code is used to represent the unique identification code of the communication, for example, the communication code of the online training conference attended by the user Xiao Wang can be 0123, and the communication identification code can be 01234 and 01235. The communication identification code 01234 is for the morning session of the video training conference, and the communication identification code 01235 is for the afternoon session of the training conference. The preset code of the communication is used to represent the code preset by the end-to-end key negotiation system, which does not change with the change of the communication, that is, a fixed number, for example, the preset code of the communication of the video training conference attended by Xiao Wang is "communication001\0", the preset code of the communication of the video recruitment conference attended by Xiao Li is also "communication001\0", and the preset code of the communication of the company online annual meeting attended by Xiao Zhang can also be "communication001\0".
[0047] Possibly, the long-term public key of the first terminal and each second terminal can be obtained from a long-term key pair (IVKi, ISKi) randomly generated by each terminal, which does not change with the change of the communication, wherein IVKi is a long-term public key, and ISKi is a long-term private key. Further, the long-term key pair in the embodiment of the application can be obtained by using a key generation algorithm on a Curve25519 curve.
[0048] S202, the first terminal processes the seed data using the temporary communication public key of each second terminal and the temporary communication private key of the first terminal to obtain communication key signature information to be sent to each second terminal.
[0049] Possibly, before S202, the identity information of each second terminal, the identity information of the communication, and the preset code of the communication can also be obtained; based on the identity information of each second terminal, the identity information of the communication, and the preset code of the communication, the communication identification information of each second terminal is generated. For example, the communication identification information Meta of the i-th second terminal can be generated based on the identity information of the i-th second terminal, the identity information of the communication, and the preset code "communication001\0" of the communication, that is:
[0050] Meta←("communication001\0"||communicationID||communicationUUID||i).
[0051] Further, the embodiment of the present application can process the seed data and the communication identification information of each second terminal by using the temporary communication public key of each second terminal and the temporary communication private key of the first terminal, to obtain the communication key signature information of each second terminal.
[0052] Possibly, the embodiment of the present application can obtain the communication key signature information of each second terminal by using two technical manners.
[0053] Specifically, the first terminal of the embodiment of the present application can encrypt the communication identification information and the seed data of each second terminal by using the temporary communication public key of each second terminal, to obtain the communication key encryption information of each second terminal; and sign the communication key encryption information of each second terminal by using the temporary communication private key of the first terminal, to obtain the communication key signature information of each second terminal.
[0054] For example, the communication key signature information Ci of the ith second terminal is Ci←Enc(sk1, pki, Meta, mk), wherein Enc() is to encrypt the communication identification information and the seed data (Meta, mk) of the ith second terminal by using the temporary communication public key pki first, and then sign by using the temporary communication private key sk1 of the first terminal.
[0055] Specifically, the first terminal of the embodiment of the present application can further acquire a time factor first; generate a communication key based on the time factor, the seed data of the communication, the identification information of the communication, and a preset code of the communication; encrypt the communication identification information and the communication key of each second terminal by using the temporary communication public key of each second terminal, to obtain the communication key encryption information of each second terminal; and sign the communication encryption information of each second terminal by using the temporary communication private key of the first terminal, to obtain the communication key signature information of each second terminal.
[0056] The time factor is updated once every preset time. For example, the current time factor can be 0144, and the next time factor can be 0145.
[0057] For example, the communication key MK←HKDF(mk,"communication001\0"||communicationID||communicationUUID||T) can be obtained based on the time factor T, the seed data mk of the communication, the identification information communicationID and communicationUUID of the communication, and the preset code "communication001\0" of the communication, using the HKDF function. The communication key signature information Ci of the i-th second terminal Ci←Enc(sk1,pki,Meta,MK), wherein Enc() is to encrypt the communication identification information and the communication key (Meta,MK) of the i-th second terminal using the temporary communication public key pki of the i-th second terminal first, and then sign using the temporary communication private key sk1 of the first terminal, can obtain the communication key signature information Ci of the i-th second terminal.
[0058] S203, the first terminal verifies the identity signature information of each second terminal.
[0059] In the embodiments of the present application, the identity signature information of the second terminal can be generated by the second terminal based on the identity information of the second terminal, the terminal identification information, the temporary communication public key, the long-term public key, and the identification information of the communication. The first ciphertext information of the second terminal is generated by signing the first ciphertext information using the preset code of the communication and the long-term private key of the second terminal to generate the identity signature information of the second terminal. It can be understood that the first ciphertext information in the present application is encrypted information obtained after hash processing, i.e. the function of generating a message digest after compressing the identity information of the second terminal, the terminal identification information, the temporary communication public key, and the long-term public key of the second terminal to a preset length.
[0060] For example, the i-th second terminal signs the first ciphertext information bindingi to generate the identity signature information of the second terminal, and the following two calculations are performed:
[0061] bindingi←(communicationID||communicationUUID||i||deviceIDi||IVKi||pki);
[0062] Sigi←Sign(ISKi,"communication001\0"||bindingi).
[0063] That is, first, the first terminal generates the first cryptogram information bindingi of the i-th second terminal based on the identity information i, the terminal identification information deviceIDi, the temporary communication public key IVKi, the long-term public key pki, and the identification information communicationID, communicationUUID of the communication of the i-th second terminal. Then, the first terminal generates the identity signature information Sigi of the i-th second terminal by signing the first cryptogram information bindingi using the preset code "communication001\0" of the communication and the long-term private key ISKi of the i-th second terminal through the Sign function.
[0064] Further, the first terminal in the embodiment of the present application can compare the first cryptogram information of the second terminal obtained by the first terminal and the second cryptogram information obtained by verifying the signature information of the second terminal.
[0065] For example, the first terminal can obtain the long-term public key IVKi and the signature information Sigi of the i-th second terminal from the server, and then calculate the signature information using the Verify function, that is, Verify(IVKi, Sigi, "communication001\0"||bindingi), to obtain the second cryptogram information bindingi'. Finally, the first terminal compares the first cryptogram information of the i-th second terminal with the second cryptogram information of the i-th second terminal.
[0066] S2031, in the case of failure of the identity signature information verification of the second terminal, the first terminal does not send the communication key signature information to the second terminal.
[0067] Specifically, in the case that the first cryptogram information of the second terminal and the second cryptogram information of the second terminal are inconsistent with each other, that is, the identity signature information verification of the second terminal by the first terminal fails, the first terminal terminates sending the communication key signature information of the first terminal to the second terminal.
[0068] S2032, in the case of success of the identity signature information verification of the second terminal, the communication key signature information of each second terminal is sent to the corresponding second terminal at a preset time interval.
[0069] Specifically, in the case that the first cryptogram information of the second terminal and the second cryptogram information of the second terminal are consistent with each other, that is, the identity signature information verification of the second terminal by the first terminal succeeds, the first terminal can send the communication key signature information of the first terminal to the second terminal at a preset time interval.
[0070] S204, the second terminal obtains the temporary communication public key of the first terminal, the identity signature information of the first terminal, and the communication key signature information generated by using the temporary communication public key of the second terminal and the temporary communication private key of the first terminal.
[0071] For example, the second terminal of the i-th embodiment of the present application can obtain the temporary communication public key pk1, the signature information Sig1 of the first terminal, and the communication key signature information generated by using the temporary communication public key pki of the second terminal and the temporary communication private key sk1 of the first terminal through the server.
[0072] In S205, the second terminal verifies the identity signature information of the first terminal.
[0073] Specifically, the first terminal of the embodiment of the present application can generate the first ciphertext information of the first terminal based on the long-term public key, the temporary communication public key, the identity information, the terminal identification information, and the identification information of the communication of the first terminal; and sign the first ciphertext information of the first terminal by using the preset code of the communication and the private key of the first terminal to obtain the identity signature information of the first terminal.
[0074] For example, the first terminal signs the first ciphertext information binding1 of the first terminal to generate the identity signature information of the first terminal, and specifically performs the following two calculations:
[0075] Binding1←(communicationID||communicationUUID||1||deviceID1||IVK1||pk1);
[0076] Sig1←Sign(ISK1,"communication001\0"||binding1)。
[0077] That is, the first ciphertext information binding1 of the first terminal is generated based on the identity information 1, the terminal identification information deviceID1, the temporary communication public key IVK1, the long-term public key pk1, and the identification information communicationID, communicationUUID of the communication of the first terminal. Then, the first ciphertext information binding1 is signed by using the preset code "communication001\0" of the communication and the long-term private key ISK1 of the first terminal through the Sign function to generate the identity signature information Sig1 of the first terminal.
[0078] Specifically, the embodiment of the present application can perform the verification processing on the signature of the first terminal based on the long-term public key of the first terminal and the preset code of the communication to generate the second ciphertext information of the first terminal.
[0079] For example, the second terminal can obtain the long-term public key IVK1 of the first terminal and the signature information Sig1 from the server, and then perform a calculation on the signature information by using the Verify function, that is, Verify(IVK1, Sig1, "communication001\0"||binding1), to obtain the second ciphertext information binding1' of the first terminal.
[0080] Further, the second terminal of the embodiment of the present application can compare the first ciphertext information and the second ciphertext information of the first terminal.
[0081] S2051, in the case where the identity signature information of the first terminal fails verification, the second terminal stops processing the communication key signature information.
[0082] Specifically, in the case where the first ciphertext information and the second ciphertext information of the first terminal are inconsistent with each other, that is, the identity signature information of the first terminal fails verification by the second terminal, the second terminal terminates processing of the communication key signature information.
[0083] S2052, in the case where the identity signature information of the first terminal passes verification, the communication key signature information is processed based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal to obtain the communication key.
[0084] Specifically, the embodiment of the present application can process the communication key signature information and the communication identifier information of the second terminal based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal to obtain the communication key.
[0085] Possibly, the embodiment of the present application processes the communication key signature information based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal to obtain the communication key.
[0086] For example, the communication key MK←Dec(pk1,ski,Meta,Ci)
[0087] Dec() is to first verify the signature information by using the temporary communication public key pk1 of the first terminal, and then decrypt (Meta,Ci) by using the temporary communication private key ski of the second terminal to obtain the communication key MK.
[0088] Possibly, the embodiment of the present application verifies the communication key signature information by using the temporary communication public key of the first terminal, and in the case where the communication key signature information passes verification, obtains the communication key encryption information of the second terminal; decrypts the communication key encryption information of the second terminal by using the temporary communication private key of the second terminal to obtain the seed data of the communication; obtains a time factor, and generates the communication key based on the seed data of the communication, the time factor, the identifier information of the communication, and the preset code of the communication.
[0089] The time factor is updated every preset time.
[0090] For example, the seed data mk←Dec(pk1,ski,Meta,Ci)
[0091] Dec() is to verify the signature information by using the temporary communication public key pk1 of the first terminal, and then decrypt (Meta,Ci) by using the temporary communication private key ski of the second terminal to obtain the seed data mk.
[0092] Further, the communication key MK is generated according to the seed data mk:
[0093] MK←HKDF(mk,"communication001\0"||communicationID||communicationUUID||T)
[0094] That is, the HKDF function can be used based on the time factor T, the seed data mk of the communication, the identification information communicationID and communicationUUID of the communication, and the preset code "communication001\0" of the communication.
[0095] Thus, each second terminal participating in the communication from the first terminal to the second terminal obtains the same communication key MK, and further, the symmetric encryption algorithm can be used to encrypt the communication process, that is, the transmission channel between the first terminal and each second terminal. It can be understood that only each terminal participating in the communication from the first terminal to the second terminal can decrypt the communication information in the embodiment of the application, and the server or the third party cannot decrypt the communication information.
[0096] S206, the second terminal obtains the communication information based on the communication key.
[0097] The communication information can include any one or more of the following: communication video information, communication text information, and communication voice information.
[0098] Possibly, in the case that the identity information of each second terminal in the communication changes, the seed data of the communication is changed to obtain changed seed data; the changed seed data is processed by using the temporary communication public key of each second terminal and the temporary communication private key of the first terminal to obtain the changed communication key signature information of each second terminal; the identity signature information of each second terminal is verified, and in the case that the identity signature information of each second terminal is verified, the changed communication key signature information of each second terminal is sent to the corresponding second terminal every preset time.
[0099] As Figure 3 shown, in one specific implementation, the terminals 31-35 randomly generate a pair of long-term key pair, which is stored locally in each terminal. The user signs the user ID of the terminal and the device ID of the terminal with his own long-term private key, and uploads it to the server, so that the user using other terminals can view the required information. Then according to the prior agreement between users, it is determined that the user using the terminal 32 (the first terminal) is the host of this cloud video conference, and the users using other terminals (the second terminal) 31, 33-35 are participants of this cloud video conference. Then, a temporary communication key pair is randomly generated for each terminal participating in this cloud video conference, denoted as (pki, ski), and the temporary communication public key pki of each terminal is uploaded to the server, and the temporary communication private key ski of each terminal is stored locally, and the server generates a communication identification code communicationUUID for this cloud video conference. Further, the first ciphertext information bindingi of each terminal participating in a certain end-to-end communication is signed to obtain the signature information Sigi of each terminal. Then, each terminal participating in a certain end-to-end communication sends its signature information Sigi to each other user terminal participating in the end-to-end communication through an encrypted transmission channel. Further, the terminal where the host is located randomly generates 32-byte seed data mk, and calculates to generate a communication key MK. After the host terminal verifies that the communication information signature of the other user terminal is correct, the communication key encryption information Ci of each terminal is sent to the terminal where the corresponding participant is located. The long-term public key IVKi and the signature information of the i-th terminal are obtained from the server, and the second ciphertext information is calculated and the correctness of the signature is verified. If the signature verification is incorrect, the communication key encryption information Ci of the terminal user is terminated, and if the signature verification is correct, the communication key encryption information Ci is sent to the terminal where the corresponding participant is located. After the terminal where the other participant is located receives the communication key encryption information Ci, the communication key MK is decrypted after verifying that the communication information signature of the terminal where the host is located is correct. The long-term public key IVK1 and the signature information Sig1 of the terminal where the host is located are obtained from the server, the signature information is calculated to obtain the second ciphertext information, and the correctness of the signature is verified. If the verification fails, the operation of this step is terminated, and if the verification is successful, the seed data mk is decrypted, and based on the seed data, each participant terminal calculates the communication key MK using the HKDF function. Further, if the user using the terminal 35 exits the communication, the host terminal needs to update the seed data mk to prevent the communication key from being leaked, and if no participant terminal user exits or joins, the communication key MK is automatically updated every 15 seconds according to the time factor. Finally, when the cloud video conference ends, each terminal needs to automatically clear the communication key MK and the temporary communication key pair (pki, ski) of this time.
[0100] Thus, the embodiments of the present application can make each second terminal obtain the same communication key MK through the communication between the first terminal and each second terminal, thereby avoiding the technical means of encrypting the communication key by using the key distribution center of the server in the prior art, and the communication key in the present application can change with the change of the user terminal or the change of the time factor in the communication process, so as to realize the one-time pad between the first terminal and each second terminal. In this way, not only can the multiple terminals share one communication key to meet the encryption demand of large flow data, but also the server or the third party can be prevented from tampering with the communication encryption information or the communication information.
[0101] Figure 4 is a structural schematic diagram of an end-to-end key negotiation system provided by an exemplary embodiment of the present application. The end-to-end key negotiation system can include a first terminal 41 and at least one second terminal 42, and the end-to-end key negotiation system can perform the end-to-end key negotiation method of any embodiment of the present application. As shown in the figure, the first terminal of the end-to-end key negotiation system can include: Figure 4
[0102] The first obtaining module 411 is configured to obtain seed data, temporary communication public keys of each second terminal, and identity signature information of the second terminals; wherein the seed data is used to represent randomly generated data of a preset bit number; the seed data changes every preset time;
[0103] The first obtaining module 411 is configured to obtain seed data, temporary communication public keys of each second terminal, and identity signature information of the second terminals; wherein the seed data is used to represent randomly generated data of a preset bit number; the seed data changes every preset time;
[0104] The sending module 413 is configured to verify the identity signature information of each second terminal, and send the communication key signature information of each second terminal to the corresponding second terminal every preset time if the identity signature information of each second terminal is verified.
[0105] In some embodiments, before the first obtaining module 411, the system can further include:
[0106] The first communication information obtaining module is configured to obtain identity information of each second terminal, identification information of the communication, and a preset code of the communication;
[0107] The generating module is configured to generate the communication identification information of each second terminal based on the identity information of each second terminal, the identification information of the communication, and the preset code of the communication;
[0108] The first obtaining module 411 is configured to:
[0109] The seed data and the communication identification information of each second terminal are processed by using the temporary communication public key of each second terminal and the temporary communication private key of the first terminal to obtain the communication key signature information to be sent to each second terminal.
[0110] In some embodiments, the first obtaining module 412 is specifically configured to:
[0111] The communication identification information of each second terminal and the seed data are encrypted by using the temporary communication public key of each second terminal to obtain the communication key encryption information of each second terminal;
[0112] The communication key encryption information of each second terminal is signed by using the temporary communication private key of the first terminal to obtain the communication key signature information to be sent to each second terminal.
[0113] In some embodiments, the first obtaining module 412 is specifically configured to:
[0114] An time factor is obtained; wherein the time factor is updated every preset time;
[0115] The communication key is generated based on the time factor, the seed data of the communication, the identification information of the communication, and the preset code of the communication;
[0116] The communication identification information of each second terminal and the communication key are encrypted by using the temporary communication public key of each second terminal to obtain the communication key encryption information of each second terminal;
[0117] The communication encryption information of each second terminal is signed by using the temporary communication private key of the first terminal to obtain the communication key signature information to be sent to each second terminal.
[0118] In some embodiments, before the sending module 413, the system further comprises:
[0119] A ciphertext obtaining module is configured to obtain the terminal identification information of each second terminal and the first ciphertext information of each second terminal;
[0120] The sending module 413 comprises:
[0121] A first obtaining unit is configured to perform checking processing on the identity signature information of each second terminal based on the long-term public key of the first terminal and the preset code of the communication to obtain the second ciphertext information of each second terminal;
[0122] The first sending unit is configured to send the communication key signature information of the second terminal to the corresponding second terminal every preset time if the first ciphertext information of the second terminal and the corresponding second ciphertext information match.
[0123] In some embodiments, the system further includes, after the sending module 413:
[0124] The changing module is configured to change the seed data of the communication to obtain changed seed data if the identity information of each second terminal in the communication changes.
[0125] The changed communication key signature information module is configured to process the changed seed data by using the temporary communication public key of each second terminal and the temporary communication private key of the first terminal to obtain the changed communication key signature information of each second terminal.
[0126] The second sending module is configured to verify the identity signature information of each second terminal, and send the changed communication key signature information of each second terminal to the corresponding second terminal every preset time if the identity signature information of each second terminal is verified.
[0127] In some embodiments, the system further includes, before the sending module 413:
[0128] The first ciphertext information generation unit is configured to generate the first ciphertext information of the first terminal based on the long-term public key of the first terminal, the temporary communication public key of the first terminal, the identity information of the first terminal, the terminal identification information of the first terminal, and the identification information of the communication.
[0129] The signature information obtaining unit is configured to sign the first ciphertext information of the first terminal by using the preset code of the communication and the private key of the first terminal to obtain the identity signature information of the first terminal.
[0130] As shown in Figure 4 The second terminal of the end-to-end key agreement system can include:
[0131] The second obtaining module 421 is configured to obtain the temporary communication public key of the first terminal, the identity signature information of the first terminal, and the communication key signature information generated by using the temporary communication public key of the second terminal and the temporary communication private key of the first terminal.
[0132] The second obtaining module 422 is configured to verify the identity signature information of the first terminal, and process the communication key signature information based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal, to obtain the communication key, in a case where the identity signature information of the first terminal is verified.
[0133] The obtaining module 423 is configured to obtain communication information based on the communication key; and the communication information comprises any one or more of the following: communication video information, communication text information, and communication voice information.
[0134] Before the second obtaining module 421, the system comprises:
[0135] The second communication information obtaining module is configured to obtain the identity information of the second terminal, the terminal identification information of the second terminal, the identification information of the communication, the temporary communication public key of the second terminal, the long-term public key of the second terminal, the preset code of the communication, and the long-term public key of the first terminal.
[0136] The second terminal ciphertext information module is configured to generate first ciphertext information of the second terminal based on the identity information of the second terminal, the terminal identification information of the second terminal, the identification information of the communication, the temporary communication public key of the second terminal, and the long-term public key of the second terminal.
[0137] The second terminal signature information module is configured to sign the first ciphertext information by using the preset code of the communication and the long-term private key of the second terminal, to generate identity signature information of the second terminal.
[0138] In some embodiments, before the second obtaining module 422, the apparatus comprises:
[0139] The first terminal signature information obtaining module is configured to obtain the identity information of the first terminal, the terminal identification information of the first terminal, the ciphertext information of the first terminal, and the identity signature information of the first terminal.
[0140] The second obtaining module 422 comprises:
[0141] The second ciphertext information generation unit is configured to verify the identity signature information of the first terminal based on the long-term public key of the first terminal and the preset code of the communication, to generate second ciphertext information of the first terminal.
[0142] The communication key obtaining unit is configured to process the communication key signature information based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal, to obtain the communication key, in a case where the first ciphertext information and the second ciphertext information of the first terminal match.
[0143] In some embodiments, the system further comprises, before the second obtaining module 422:
[0144] a second terminal communication identifier information module, configured to generate communication identifier information of the second terminal based on identity information of the second terminal, identifier information of the communication, and a preset code of the communication;
[0145] The second obtaining module 422 comprises:
[0146] a communication key obtaining unit, configured to process the communication key signature information and the communication identifier information of the second terminal based on a temporary communication private key of the second terminal and a temporary communication public key of the first terminal, to obtain the communication key.
[0147] In some embodiments, the second obtaining module 422 comprises:
[0148] a first communication key encryption information unit, configured to verify the communication key signature information by using the temporary communication public key of the first terminal, and obtain communication key encryption information of the second terminal if the communication key signature information is verified.
[0149] a seed unit, configured to decrypt the communication key encryption information of the second terminal by using the temporary communication private key of the second terminal and the communication identifier information of the second terminal, to obtain seed data of the communication.
[0150] a communication key generating unit, configured to obtain a time factor, and generate the communication key based on the seed data of the communication, the time factor, the identifier information of the communication, and the preset code of the communication; the time factor is updated every preset time.
[0151] In some embodiments, the second obtaining module 422 comprises:
[0152] a second communication key encryption information unit, configured to verify the communication key signature information by using the temporary communication public key of the first terminal, and obtain communication key encryption information of the second terminal if the communication key signature information is verified.
[0153] a communication key obtaining unit, configured to decrypt the communication key encryption information of the second terminal by using the temporary communication private key of the second terminal and the communication identifier information of the second terminal, to obtain the communication key.
[0154] It should be noted that the end-to-end key negotiation system provided by the above-mentioned embodiments is only exemplified by the above-mentioned division of each functional module when performing the end-to-end key negotiation method, and in actual application, the above-mentioned functions can be completed by different functional modules according to needs, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. In addition, the end-to-end key negotiation system and the end-to-end key negotiation method provided by the above-mentioned embodiments belong to the same concept, and the implementation process is embodied in the method embodiments, which will not be repeated here.
[0155] The serial numbers of the embodiments of the present application are only for description, not representing the advantages and disadvantages of the embodiments.
[0156] Please refer to Figure 5 The first terminal provided by the embodiment of the present application is shown in a structural schematic diagram. As shown in the figure Figure 5 The first terminal 50 can include at least one processor 51, at least one network interface 54, a user interface 53, a memory 55, and at least one communication bus 52.
[0157] The communication bus 52 is used to realize the connection and communication between the components.
[0158] The user interface 53 can include a display screen (Display), a camera (Camera), and optionally the user interface 53 can also include a standard wired interface and a wireless interface.
[0159] The network interface 54 can optionally include a standard wired interface and a wireless interface (such as a WI-FI interface).
[0160] The processor 51 can include one or more processing cores. The processor 51 connects various parts within the first terminal 50 by various interfaces and lines, and performs various functions of the first terminal 50 and processes data by running or executing instructions, programs, code sets or instruction sets stored in the memory 55, and calling data stored in the memory 55. Alternatively, the processor 51 can be implemented in at least one of a hardware form of a digital signal processing (DSP), a field-programmable gate array (FPGA), and a programmable logic array (PLA). The processor 51 can be integrated with a combination of one or more of a central processing unit (CPU), a graphics processing unit (GPU), and a modem. Among them, the CPU mainly processes operating systems, user interfaces, and application programs; the GPU is responsible for rendering and drawing the content to be displayed on the display screen; and the modem is used for processing wireless communication. It can be understood that the above-mentioned modem can also not be integrated into the processor 51, but can be realized by a separate chip.
[0161] The memory 55 can include a random access memory (RAM) and a read-only memory (ROM). Alternatively, the memory 55 includes a non-transitory computer-readable storage medium. The memory 55 can be used to store instructions, programs, codes, code sets or instruction sets. The memory 55 can include a program storage area and a data storage area, wherein the program storage area can store instructions for implementing an operating system, instructions for at least one function (such as a touch function, a sound playing function, an image playing function, etc.), instructions for implementing the above-mentioned various method embodiments, etc.; the data storage area can store data involved in the above-mentioned various method embodiments, etc. The memory 55 can also be at least one storage system located away from the aforementioned processor 51. As shown in the figure, the memory 55 as a computer storage medium can include an operating system, a network communication module, a user interface module, and an end-to-end key negotiation application. Figure 5 As shown in the figure, the memory 55 as a computer storage medium can include an operating system, a network communication module, a user interface module, and an end-to-end key negotiation application.
[0162] In Figure 5The user interface 53 in the first terminal 50 is mainly used to provide an interface for the user to input, and obtain data input by the user. The processor 51 can be used to call an end-to-end key negotiation application stored in the memory 55, and specifically perform the following operations:
[0163] obtain seed data, a temporary communication public key of each second terminal, and identity signature information of the second terminal; wherein the seed data is used to represent randomly generated data of a preset bit number; the seed data changes every preset time;
[0164] process the seed data by using the temporary communication public key of each second terminal and the temporary communication private key of the first terminal, to obtain communication key signature information to be sent to each second terminal;
[0165] verify the identity signature information of each second terminal, and in the case that the identity signature information of each second terminal is verified, send the communication key signature information of each second terminal to the corresponding second terminal every preset time.
[0166] In a possible embodiment, before the processor 51 performs processing of the seed data by using the temporary communication public key of each second terminal and the temporary communication private key of the first terminal to obtain the communication key signature information to be sent to each second terminal, the processor 51 further performs:
[0167] obtain identity information of each second terminal, identification information of the communication, and a preset code of the communication;
[0168] generate the communication identification information of each second terminal based on the identity information of each second terminal, the identification information of the communication, and the preset code of the communication;
[0169] When the processor 51 performs processing of the seed data by using the temporary communication public key of each second terminal and the temporary communication private key of the first terminal to obtain the communication key signature information to be sent to each second terminal, the processor 51 specifically performs:
[0170] process the seed data and the communication identification information of each second terminal by using the temporary communication public key of each second terminal and the temporary communication private key of the first terminal, to obtain the communication key signature information to be sent to each second terminal.
[0171] In a possible embodiment, when the processor 51 performs processing of the seed data and the communication identification information of each second terminal by using the temporary communication public key of each second terminal and the temporary communication private key of the first terminal to obtain the communication key signature information to be sent to each second terminal, the processor 51 specifically performs:
[0172] encrypt the communication identity information of the second terminals and the seed data by using the temporary communication public key of the second terminals, to obtain the communication key encryption information of the second terminals;
[0173] sign the communication key encryption information of the second terminals by using the temporary communication private key of the first terminal, to obtain the communication key signature information to be sent to the second terminals.
[0174] In a possible embodiment, when the processor 51 performs the processing of the seed data and the communication identity information of the second terminals by using the temporary communication public key of the second terminals and the temporary communication private key of the first terminal, to obtain the communication key signature information to be sent to the second terminals, the processor 51 specifically performs:
[0175] obtain a time factor; wherein the time factor is updated every preset time;
[0176] generate the communication key based on the time factor, the seed data of the communication, the identity information of the communication, and the preset code of the communication;
[0177] encrypt the communication identity information of the second terminals and the communication key by using the temporary communication public key of the second terminals, to obtain the communication key encryption information of the second terminals;
[0178] sign the communication encryption information of the second terminals by using the temporary communication private key of the first terminal, to obtain the communication key signature information to be sent to the second terminals.
[0179] In a possible embodiment, before the processor 51 performs the verification of the identity signature information of the second terminals, the processor 51 further performs:
[0180] obtain the terminal identity information of the second terminals and the first ciphertext information of the second terminals;
[0181] When the processor 51 performs the verification of the identity signature information of the second terminals, and the identity signature information of the second terminals is verified, the processor 51 specifically performs:
[0182] perform the verification processing on the identity signature information of the second terminals based on the long-term public key of the first terminal and the preset code of the communication, to obtain the second ciphertext information of the second terminals;
[0183] In case that the first cipher information of the second terminal and the corresponding second cipher information match, the communication key signature information of the second terminal is sent to the corresponding second terminal every preset time.
[0184] In a possible embodiment, the processor 51 performs verification on the identity signature information of each second terminal, and in case that the identity signature information of each second terminal is verified, the communication key signature information of each second terminal is sent to the corresponding second terminal every preset time.
[0185] In case that the identity information of each second terminal in the communication changes, the seed data of the communication is changed to obtain changed seed data;
[0186] The changed seed data is processed by using the temporary communication public key of each second terminal and the temporary communication private key of the first terminal to obtain the changed communication key signature information of each second terminal;
[0187] Verification is performed on the identity signature information of each second terminal, and in case that the identity signature information of each second terminal is verified, the changed communication key signature information of each second terminal is sent to the corresponding second terminal every preset time.
[0188] In a possible embodiment, the processor 51 performs verification on the identity signature information of each second terminal, and in case that the identity signature information of each second terminal is verified, the communication key signature information of each second terminal is sent to the corresponding second terminal every preset time.
[0189] The first cipher information of the first terminal is generated based on the long-term public key of the first terminal, the temporary communication public key of the first terminal, the identity information of the first terminal, the terminal identification information of the first terminal, and the identification information of the communication;
[0190] The first cipher information of the first terminal is signed by using the preset code of the communication and the private key of the first terminal to obtain the identity signature information of the first terminal.
[0191] Please refer to Figure 6 , the embodiment of the present application provides a structure schematic diagram of a second terminal. As shown in Figure 6 , the second terminal 60 can include at least one processor 61, at least one network interface 64, a user interface 63, a memory 65, and at least one communication bus 62.
[0192] The communication bus 62 is used to realize the connection and communication among the components.
[0193] The user interface 63 can include a display screen, a camera, and optionally a standard wired interface and a wireless interface.
[0194] The network interface 64 can optionally include a standard wired interface and a wireless interface (e.g., a WI-FI interface).
[0195] The processor 61 can include one or more processing cores. The processor 61 connects various parts within the second terminal 60 through various interfaces and lines, executes various functions of the second terminal 60 and processes data by running or executing instructions, programs, code sets or instruction sets stored in the memory 65 and calling data stored in the memory 65. Optionally, the processor 61 can be implemented in at least one of a digital signal processing (DSP), a field-programmable gate array (FPGA), and a programmable logic array (PLA). The processor 61 can be integrated with a combination of one or more of a central processing unit (CPU), a graphics processing unit (GPU), and a modem. The CPU is mainly used to process an operating system, a user interface, and an application program. The GPU is used to render and draw the content to be displayed on the display screen. The modem is used to process wireless communication. It can be understood that the above-mentioned modem can also not be integrated into the processor 61, but can be implemented by a separate chip.
[0196] The memory 65 can include a random access memory (RAM) and a read-only memory (ROM). Optionally, the memory 65 includes a non-transitory computer-readable storage medium. The memory 65 can be used to store instructions, programs, codes, code sets, or instruction sets. The memory 65 can include a program storage area and a data storage area, where the program storage area can store instructions for implementing an operating system, instructions for at least one function (such as a touch function, a sound playing function, an image playing function, etc.), instructions for implementing the above-mentioned various method embodiments, etc.; the data storage area can store data involved in the above-mentioned various method embodiments, etc. The memory 65 can also be at least one storage system located away from the aforementioned processor 61. As shown in Figure 6 the memory 65 as a computer storage medium can include an operating system, a network communication module, a user interface module, and an end-to-end key agreement application program.
[0197] In the second terminal 60 as shown in Figure 6 the user interface 63 is mainly used to provide an interface for user input and obtain user input data; and the processor 61 can be used to call the end-to-end key agreement application program stored in the memory 65 and specifically perform the following operations:
[0198] obtain the temporary communication public key of the first terminal, the identity signature information of the first terminal, and the communication key signature information generated by using the temporary communication public key of the second terminal and the temporary communication private key of the first terminal;
[0199] verify the identity signature information of the first terminal, and in the case where the identity signature information of the first terminal is verified, process the communication key signature information based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal to obtain a communication key;
[0200] obtain communication information based on the communication key; where the communication information includes any one or more of the following: communication video information, communication text information, and communication voice information.
[0201] In a possible embodiment, before the processor 61 performs the operation of receiving the communication key signature information, the processor 61 also performs the operation of:
[0202] obtaining identity information of the second terminal, terminal identification information of the second terminal, identification information of the communication, a temporary communication public key of the second terminal, a long-term public key of the second terminal, a preset code of the communication, and a long-term public key of the first terminal;
[0203] generating first ciphertext information of the second terminal based on the identity information of the second terminal, the terminal identification information of the second terminal, the identification information of the communication, the temporary communication public key of the second terminal, and the long-term public key of the second terminal;
[0204] signing the first ciphertext information by using the preset code of the communication and the long-term private key of the second terminal to generate identity signature information of the second terminal.
[0205] In a possible embodiment, the processor 61 further performs, before performing the verification on the identity signature information of the first terminal:
[0206] obtaining identity information of the first terminal, terminal identification information of the first terminal, ciphertext information of the first terminal, and identity signature information of the first terminal;
[0207] The processor 61, after performing the verification on the identity signature information of the first terminal, in the case where the identity signature information of the first terminal is verified, based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal, processes the communication key signature information to obtain a communication key, specifically performs:
[0208] verifying the identity signature information of the first terminal based on the long-term public key of the first terminal and the preset code of the communication to generate second ciphertext information of the first terminal;
[0209] In the case where the first ciphertext information and the second ciphertext information of the first terminal match, based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal, the communication key signature information is processed to obtain a communication key.
[0210] In a possible embodiment, the processor 61 further performs, before performing the verification on the identity signature information of the first terminal:
[0211] generating the communication identification information of the second terminal based on the identity information of the second terminal, the identification information of the communication, and the preset code of the communication;
[0212] The processor 61, when performing processing on the communication key signature information based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal, obtains a communication key, specifically performs:
[0213] The processor 61, when performing processing on the communication key signature information and the communication identifier information of the second terminal based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal, obtains the communication key.
[0214] In a possible embodiment, the processor 61, when performing processing on the communication key signature information and the communication identifier information of the second terminal based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal, obtains the communication key, specifically performs:
[0215] The processor 61, when performing processing on the communication key signature information and the communication identifier information of the second terminal based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal, obtains the communication key.
[0216] The processor 61, when performing processing on the communication key signature information and the communication identifier information of the second terminal based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal, obtains the communication key.
[0217] The processor 61, when performing processing on the communication key signature information and the communication identifier information of the second terminal based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal, obtains the communication key.
[0218] In a possible embodiment, the processor 61, when performing processing on the communication key signature information and the communication identifier information of the second terminal based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal, obtains the communication key, specifically performs:
[0219] The processor 61, when performing processing on the communication key signature information and the communication identifier information of the second terminal based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal, obtains the communication key.
[0220] The processor 61, when performing processing on the communication key signature information and the communication identifier information of the second terminal based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal, obtains the communication key.
[0221] The application also provides a computer readable storage medium, which stores instructions, and when the instructions are run on a computer or a processor, the computer or the processor performs the above method. Figure 2One or more steps in the illustrated embodiments. The above-mentioned end-to-end key agreement system, if implemented in the form of software functional units and sold or used as independent products, can be stored in the computer readable storage medium.
[0222] In the above embodiments, all or part can be implemented by software, hardware, firmware or any combination thereof. When implemented by software, all or part can be implemented in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of the present application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable systems. The computer instructions can be stored in a computer readable storage medium or transmitted by the computer readable storage medium. The computer instructions can be transmitted from one website, computer, server or data center to another website, computer, server or data center by wire (such as coaxial cable, optical fiber, digital subscriber line (Digital Subscriber Line, DSL)) or wireless (such as infrared, wireless, microwave, etc.). The computer readable storage medium can be any available medium that a computer can access or a data storage device such as a server, data center, etc. that includes one or more available media sets. The available media can be magnetic media (for example, floppy disk, hard disk, magnetic tape), optical media (for example, digital versatile disc (Digital Versatile Disc, DVD)), or semiconductor media (for example, solid state disk (Solid State Disk, SSD)) and the like.
[0223] Those of ordinary skill in the art can understand that all or part of the processes in the above-mentioned embodiments can be implemented by a computer program to instruct the relevant hardware, which can be stored in a computer readable storage medium. The program can include the processes of the above-mentioned embodiments when executed. The aforementioned storage medium includes: read only memory (Read Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk and various media that can store program codes. In the case of no conflict, the technical features in the embodiments and the embodiments can be combined arbitrarily.
[0224] The above-described embodiments are merely preferred embodiments of the present application and do not limit the scope of the present application. Without departing from the design spirit of the present application, various modifications and improvements to the technical solutions of the present application made by those of ordinary skill in the art shall fall within the protection scope of the claims of the present application.
Claims
1. An end-to-end key agreement method, the end-to-end key agreement method being applied to an end-to-end key agreement system, the end-to-end key agreement system comprising one first terminal, and one or more second terminals, characterized in that, The method comprises: acquiring seed data, temporary communication public keys of each second terminal, and identity signature information of the second terminals; wherein the seed data is used to represent randomly generated data of a preset bit number; the seed data changes once every preset time; the temporary communication public keys of each second terminal are randomly generated by the second terminals independently; processing the seed data by using the temporary communication public keys of each second terminal and a temporary communication private key of the first terminal to obtain communication key signature information to be sent to the second terminals; the temporary communication private key of the first terminal is randomly generated by the first terminal independently; verifying the identity signature information of each second terminal, and sending the communication key signature information of each second terminal to the corresponding second terminal every preset time when the identity signature information of each second terminal is verified; the processing of the seed data by using the temporary communication public keys of each second terminal and the temporary communication private key of the first terminal to obtain the communication key signature information to be sent to the second terminals comprises: processing the seed data and the communication identification information of each second terminal by using the temporary communication public keys of each second terminal and the temporary communication private key of the first terminal to obtain the communication key signature information to be sent to the second terminals.
2. The method of claim 1, wherein, Before the processing of the seed data by using the temporary communication public keys of each second terminal and the temporary communication private key of the first terminal to obtain the communication key signature information to be sent to the second terminals, the method further comprises: acquiring identity identification information of each second terminal, identification information of a communication, and a preset code of the communication; generating the communication identification information of each second terminal based on the identity identification information of each second terminal, the identification information of the communication, and the preset code of the communication.
3. The method of claim 2, wherein, the processing of the seed data and the communication identification information of each second terminal by using the temporary communication public keys of each second terminal and the temporary communication private key of the first terminal to obtain the communication key signature information to be sent to the second terminals comprises: encrypting the communication identification information of each second terminal and the seed data by using the temporary communication public keys of each second terminal to obtain communication key encryption information of each second terminal; signing the communication key encryption information of each second terminal by using the temporary communication private key of the first terminal to obtain the communication key signature information to be sent to the second terminals.
4. The method of claim 2, wherein, the processing of the seed data and the communication identification information of each second terminal by using the temporary communication public keys of each second terminal and the temporary communication private key of the first terminal to obtain the communication key signature information to be sent to the second terminals comprises: acquiring a time factor; wherein the time factor is updated once every preset time; generating the communication key based on the time factor, the seed data of the communication, the identification information of the communication, and the preset code of the communication; encrypting the communication identity information of each second terminal and the communication key by using the temporary communication public key of each second terminal, to obtain the communication key encryption information of each second terminal; signing the communication encryption information of each second terminal by using the temporary communication private key of the first terminal, to obtain the communication key signature information to be sent to each second terminal.
5. The method according to claim 3 or 4, characterized in that, Before the identity signature information of each second terminal is verified, the method further comprises: obtaining the terminal identity information of each second terminal and the first ciphertext information of each second terminal; After the identity signature information of each second terminal is verified and in the case that the identity signature information of each second terminal is verified, the communication key signature information of each second terminal is sent to the corresponding second terminal every preset time, comprising: checking the identity signature information of each second terminal based on the long-term public key of the first terminal and the preset code of the communication, to obtain the second ciphertext information of each second terminal; in the case that the first ciphertext information of the second terminal and the corresponding second ciphertext information match, the communication key signature information of the second terminal is sent to the corresponding second terminal every preset time.
6. The method of claim 1, wherein, After the identity signature information of each second terminal is verified and in the case that the identity signature information of each second terminal is verified, the communication key signature information of each second terminal is sent to the corresponding second terminal every preset time, the method further comprises: in the case that the identity information of each second terminal in the communication changes, the seed data of the communication is changed, to obtain the changed seed data; processing the changed seed data by using the temporary communication public key of each second terminal and the temporary communication private key of the first terminal, to obtain the changed communication key signature information of each second terminal; verifying the identity signature information of each second terminal, and in the case that the identity signature information of each second terminal is verified, the changed communication key signature information of each second terminal is sent to the corresponding second terminal every preset time.
7. The method of claim 2, wherein, Before the identity signature information of each second terminal is verified and in the case that the identity signature information of each second terminal is verified, the communication key signature information of each second terminal is sent to the corresponding second terminal every preset time, the method further comprises: generating the first ciphertext information of the first terminal based on the long-term public key of the first terminal, the temporary communication public key of the first terminal, the identity information of the first terminal, the terminal identity information of the first terminal, and the identity information of the communication; signing the first ciphertext information of the first terminal by using the preset code of the communication and the private key of the first terminal, to obtain the identity signature information of the first terminal.
8. An end-to-end key agreement method applied to an end-to-end key agreement system, the end-to-end key agreement system comprising one first terminal, and one or more second terminals, characterized in that, The method comprises: obtaining temporary communication public key of the first terminal, identity signature information of the first terminal, and communication key signature information generated by using temporary communication public key of the second terminal and temporary communication private key of the first terminal; the temporary communication private key and the temporary communication public key of the first terminal are randomly generated by the first terminal itself; the communication key signature information is obtained by processing seed data and communication identification information of the second terminal by using the temporary communication public key of the second terminal and the temporary communication private key of the first terminal; the seed data is used to represent randomly generated data of a preset bit number; verifying the identity signature information of the first terminal, and processing the communication key signature information based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal to obtain a communication key in a case where the identity signature information of the first terminal is verified successfully; the temporary communication private key and the temporary communication public key of the second terminal are randomly generated by the second terminal itself; obtaining communication information based on the communication key; wherein the communication information comprises any one or more of the following: communication video information, communication text information, and communication voice information.
9. The method of claim 8, wherein, Before the obtaining of the temporary communication public key of the first terminal, the identity signature information of the first terminal, and the communication key signature information generated by using the temporary communication public key of the second terminal and the temporary communication private key of the first terminal, the method comprises: obtaining identity identification information of the second terminal, terminal identification information of the second terminal, identification information of the communication, temporary communication public key of the second terminal, long-term public key of the second terminal, preset code of the communication, and long-term public key of the first terminal; generating first ciphertext information of the second terminal based on the identity identification information of the second terminal, the terminal identification information of the second terminal, the identification information of the communication, the temporary communication public key of the second terminal, and the long-term public key of the second terminal; signing the first ciphertext information by using the preset code of the communication and the long-term private key of the second terminal to generate the identity signature information of the second terminal.
10. The method of claim 9, wherein, Before the verifying of the identity signature information of the first terminal, the method comprises: obtaining identity identification information of the first terminal, terminal identification information of the first terminal, ciphertext information of the first terminal, and identity signature information of the first terminal; the verifying of the identity signature information of the first terminal, and processing the communication key signature information based on the temporary communication private key of the second terminal and the temporary communication public key of the first terminal to obtain a communication key in a case where the identity signature information of the first terminal is verified successfully, comprises: verifying and processing the identity signature information of the first terminal based on the long-term public key of the first terminal and the preset code of the communication to generate second ciphertext information of the first terminal; In a case where the first terminal's first cipher information and second cipher information match, the communication key signature information is processed based on the second terminal's temporary communication private key and the first terminal's temporary communication public key, to obtain a communication key.
11. The method according to claim 9 or 10, characterized in that, Before the identity signature information of the first terminal is verified, the method further includes: Based on the second terminal's identity information, the communication's identity information, and the communication's preset code, the second terminal's communication identity information is generated. The processing of the communication key signature information based on the second terminal's temporary communication private key and the first terminal's temporary communication public key, to obtain a communication key, includes: The processing of the communication key signature information and the second terminal's communication identity information based on the second terminal's temporary communication private key and the first terminal's temporary communication public key, to obtain the communication key.
12. The method of claim 11, wherein, The processing of the communication key signature information and the second terminal's communication identity information based on the second terminal's temporary communication private key and the first terminal's temporary communication public key, to obtain the communication key, includes: The communication key signature information is verified by using the first terminal's temporary communication public key, and in a case where the communication key signature information is verified, the second terminal's communication key encryption information is obtained. The second terminal's communication key encryption information is decrypted by using the second terminal's temporary communication private key and the second terminal's communication identity information, to obtain the communication's seed data. A time factor is obtained, and the communication key is generated based on the communication's seed data, the time factor, the communication's identity information, and the communication's preset code; wherein the time factor is updated every preset time.
13. The method of claim 11, wherein, The processing of the communication key signature information and the second terminal's communication identity information based on the second terminal's temporary communication private key and the first terminal's temporary communication public key, to obtain the communication key, includes: The communication key signature information is verified by using the first terminal's temporary communication public key, and in a case where the communication key signature information is verified, the second terminal's communication key encryption information is obtained. The second terminal's communication key encryption information is decrypted by using the second terminal's temporary communication private key and the second terminal's communication identity information, to obtain the communication key.
14. A first terminal, characterized by The first terminal includes: The first obtaining module is configured to obtain seed data, temporary communication public keys of each second terminal, and identity signature information of the second terminals; the seed data is used to represent randomly generated data of a preset bit number; the seed data changes every preset time; the temporary communication public keys of the second terminals are randomly generated by the second terminals independently; the first obtaining module is configured to process the seed data by using the temporary communication public keys of the second terminals and a temporary communication private key of the first terminal to obtain communication key signature information to be sent to the second terminals; the temporary communication private key of the first terminal is randomly generated by the first terminal independently; The sending module is configured to verify the identity signature information of the second terminals, and send the communication key signature information of the second terminals to corresponding second terminals every preset time when the identity signature information of the second terminals is verified successfully. The processing of the seed data by using the temporary communication public keys of the second terminals and the temporary communication private key of the first terminal to obtain the communication key signature information to be sent to the second terminals includes: The processing of the seed data and the communication identifier information of the second terminals by using the temporary communication public keys of the second terminals and the temporary communication private key of the first terminal to obtain the communication key signature information to be sent to the second terminals.
15. A second terminal, comprising: The second terminal includes: The second obtaining module is configured to obtain a temporary communication public key of a first terminal, identity signature information of the first terminal, and communication key signature information generated by using a temporary communication public key of a second terminal and a temporary communication private key of the first terminal; the temporary communication private key and the temporary communication public key of the first terminal are randomly generated by the first terminal independently; the communication key signature information is obtained by processing seed data and communication identifier information of the second terminal by using the temporary communication public key of the second terminal and the temporary communication private key of the first terminal; the seed data is used to represent randomly generated data of a preset bit number; the second obtaining module is configured to verify the identity signature information of the first terminal, and process the communication key signature information based on a temporary communication private key of the second terminal and a temporary communication public key of the first terminal to obtain a communication key when the identity signature information of the first terminal is verified successfully; the temporary communication private key and the temporary communication public key of the second terminal are randomly generated by the second terminal independently; The obtaining module is configured to obtain communication information based on the communication key; the communication information includes any one or more of the following: communication video information, communication text information, and communication voice information.
16. An end-to-end key agreement system, characterized by The first terminal of claim 14 and one or more second terminals of claim 15. The computer storage medium stores a plurality of instructions adapted to be loaded and executed by a processor to perform the method steps of any one of claims 1-7 or 8-13.
17. A computer storage medium, comprising, The computer storage medium stores a plurality of instructions adapted to be loaded and executed by a processor to perform the method steps of any one of claims 1-7 or 8-13.
18. A terminal, characterized by The computer storage medium stores a plurality of instructions adapted to be loaded and executed by a processor to perform the method steps of any one of claims 1-7 or 8-13. a processor and a memory; wherein the memory stores a computer program adapted to be loaded and executed by the processor and to perform the method steps of any of claims 1-7 or 8-13.
Citation Information
Patent Citations
Communication methods and systems, electronic equipment and storage medium
CN109639412A
Identity authentication method and system based on IBC identification password
CN112887338A