Data processing method, device, equipment and storage medium
By generating and encrypting conference keys and video data on the sending device, end-to-end encryption is realized, which solves the problem of high consumption of video conferencing channel encryption resources, ensures security and saves resources.
Patent Information
- Application Number
- CN202211212958.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-09-30
- Publication Date
- 2025-09-05
- Estimated Expiration
- 2042-09-30
AI Technical Summary
In the prior art, the video data of video conferences consumes a lot of resources during channel encryption because the server needs to encrypt all IP packets, including video data and signaling messages.
The sending device generates a key summary of the conference key, and encrypts it based on the private key and the receiving device's public key. The encrypted conference key and video data are sent. The receiving device decrypts it after verification, realizing end-to-end encryption, reducing the encryption and decryption operations of the server.
While ensuring the security of video conferencing, it reduces resource consumption and saves server computing and transmission resources.
Smart Images

Figure CN115589504B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communication technology, and in particular to a data processing method, apparatus, device, and storage medium. Background Art
[0002] Video conferencing is a real-time communication system based on image and sound exchange. It is widely used in scenarios such as remote response, online command, and mobile office collaboration. However, since the content of video conferencing may involve confidential information and personal privacy, the security of video data in video conferencing is particularly important.
[0003] In existing video conferencing scenarios, channel encryption is typically used. A server decrypts the video data, encrypts it again, and then sends it to the receiving device. However, when channel encryption is used, the server encrypts all Internet Protocol (IP) packets. In addition to the video data, the server also encrypts signaling messages sent by the sending device before forwarding them to the receiving device, resulting in significant resource consumption. Summary of the Invention
[0004] The present application provides a data processing method, apparatus, device, and storage medium for ensuring the security of video conferencing while reducing resource consumption.
[0005] In order to achieve the above objectives, this application adopts the following technical solutions:
[0006] In a first aspect, a data processing method is provided, which is applied to a transmitting device and includes: the transmitting device generates a key digest of a conference key, the key digest being used to verify the conference key; encrypting the key digest based on the transmitting device's private key to obtain an encrypted key digest; and encrypting the conference key and the encryption key digest based on the receiving device's public key to obtain an encrypted conference key. Furthermore, the transmitting device sends a first message to the receiving device, the first message carrying the encrypted conference key. Furthermore, after receiving a second message, the transmitting device encrypts the collected original video data of the video conference based on the conference key to obtain encrypted video data; the second message is used to indicate to the receiving device that the conference key has been obtained. Finally, the transmitting device sends the encrypted video data to the receiving device via a server, so that the receiving device decrypts the received data based on the conference key to obtain the original video data.
[0007] In the data processing method provided in the present application, the conference key and the original video data of the video conference are encrypted on the sending device, and no server is required to encrypt or decrypt them, thus achieving end-to-end encryption. The encrypted video data will only be sent to the receiving device after it is determined that the encrypted conference key has been received and verified by the receiving device, thereby ensuring the security of the video conference while saving resources.
[0008] In one possible design, the transmitting device encrypts the collected original video data of the video conference based on the conference key to obtain encrypted video data, including: the transmitting device encodes the original video data to obtain multiple video encoding streams, each of the multiple video encoding streams having different video parameters, and the video parameters include at least one of resolution and frame rate. Furthermore, the transmitting device encrypts the multiple video encoding streams based on the conference key to obtain multiple encrypted video encoding streams; and determines the multiple encrypted video encoding streams as encrypted video data. This design implements separate encoding according to video parameters and separate encryption of the encoded video encoding streams, so that only one video encoding stream can be selected for transmission during subsequent transmission, saving transmission resources in the channel.
[0009] In one possible design, a transmitting device sends a first indication message to a server; the first indication message includes multiple encrypted video encoding streams and a video parameter identifier for each encrypted video encoding stream, where the video parameter identifier is used to identify the corresponding video parameters of the encrypted video encoding stream. The first indication message instructs the server to determine, from the multiple encrypted video encoding streams, a target encrypted video encoding stream to send to the receiving device based on the channel quality between the transmitting device and the receiving device, where the video parameter identifier of the target encrypted video encoding stream corresponds to the channel quality. This design reduces the channel transmission resources consumed by the server when transmitting encrypted video data.
[0010] In a second aspect, a data processing method is provided, which is applied to a receiving device. The receiving device receives a first message sent by a sending device, the first message carrying an encrypted conference key. Furthermore, the receiving device decrypts the encrypted conference key based on the receiving device's private key to obtain the conference key and the encryption key digest; and decrypts the encrypted key digest based on the sending device's public key to obtain a key digest, which is used to verify the conference key. When the conference key is verified to be correct based on the key digest, the conference key is obtained. Furthermore, the receiving device sends a second message to the sending device, the second message indicating that the receiving device has obtained the conference key. The receiving device receives encrypted video data sent by the sending device and forwarded by a server. Furthermore, the receiving device decrypts the encrypted video data based on the conference key to obtain the original video data of the video conference.
[0011] In the data processing method provided in the present application, the conference key and the original video data of the video conference are encrypted on the sending device, and no server is required to encrypt or decrypt them, thus achieving end-to-end encryption. The encrypted video data will only be sent to the receiving device after it is determined that the encrypted conference key has been received and verified by the receiving device, thereby ensuring the security of the video conference while saving resources.
[0012] In a third aspect, a data processing device is provided, deployed on a transmitting device. The data processing device includes a generation unit, an encryption unit, a transmitting unit, and a receiving unit. The generation unit is configured to generate a key digest of a conference key, which is used to verify the conference key. The encryption unit is further configured to encrypt the key digest using the private key of the transmitting device to obtain an encrypted key digest. The encryption unit is further configured to encrypt the conference key and the encryption key digest using the public key of the receiving device to obtain an encrypted conference key. The transmitting unit is configured to send a first message to the receiving device, the first message carrying the encrypted conference key. The receiving unit is configured to receive a second message. After the receiving unit receives the second message, the encryption unit is further configured to encrypt the collected raw video data of the video conference based on the conference key to obtain encrypted video data. The second message indicates to the receiving device that the conference key has been obtained. The transmitting unit is further configured to send the encrypted video data to the receiving device via a server, so that the receiving device decrypts the received data based on the conference key to obtain the original video data.
[0013] In one possible design, the data processing device further includes a processing unit and a determination unit. The processing unit is configured to encode the original video data to obtain multiple video encoding streams, each of which has different video parameters, including at least one of resolution and frame rate. The encryption unit is further configured to encrypt the multiple video encoding streams based on the conference key to obtain multiple encrypted video encoding streams. The determination unit is configured to determine the multiple encrypted video encoding streams as encrypted video data.
[0014] In one possible design, the sending unit is specifically used to send a first indication message to the server; the first indication message includes multiple encrypted video coding streams and a video parameter identifier for each encrypted video coding stream, the video parameter identifier is used to identify the video parameters corresponding to the encrypted video coding stream, and the first indication message is used to instruct the server to determine the target encrypted video coding stream to be sent to the receiving device from the multiple encrypted video coding streams based on the channel quality between the sending device and the receiving device, and the video parameter identifier of the target encrypted video coding stream corresponds to the channel quality.
[0015] In a fourth aspect, a data processing device is provided, which is deployed on a receiving device. The data processing device includes a receiving unit, a decryption unit, an acquisition unit, and a sending unit. The receiving unit is used to receive a first message sent by the sending device, the first message carrying an encrypted conference key. The decryption unit is used to decrypt the encrypted conference key based on the private key of the receiving device to obtain the conference key and the encryption key digest. The decryption unit is used to decrypt the encryption key digest based on the public key of the sending device to obtain the key digest, which is used to verify the conference key. The acquisition unit is used to obtain the conference key when the conference key is verified to be correct based on the key digest. The sending unit is used to send a second message to the sending device, the second message being used to indicate that the receiving device has obtained the conference key. The receiving unit is also used to receive encrypted video data sent by the sending device and forwarded by the server. The decryption unit is also used to decrypt the encrypted video data based on the conference key to obtain the original video data of the video conference.
[0016] In a fifth aspect, a sending end device is provided, which includes a memory and a processor; the memory and the processor are coupled, the memory is used to store computer program code, the computer program code includes computer instructions, and when the processor executes the computer instructions, the sending end device executes the data processing method provided by the first aspect or any possible design thereof.
[0017] In the sixth aspect, a receiving device is provided, which includes a memory and a processor; the memory and the processor are coupled, the memory is used to store computer program code, the computer program code includes computer instructions, and when the processor executes the computer instructions, the receiving device executes the data processing method provided in the second aspect or any possible design thereof.
[0018] In the seventh aspect, a computer-readable storage medium is provided, in which instructions are stored. When the instructions are executed on a sending device, the sending device executes the data processing method provided in the first aspect or any possible implementation thereof.
[0019] In an eighth aspect, a computer-readable storage medium is provided, in which instructions are stored. When the instructions are executed on a receiving device, the receiving device executes the data processing method provided in the second aspect or any possible implementation thereof. BRIEF DESCRIPTION OF THE DRAWINGS
[0020] Figure 1 A communication system structure diagram provided in an embodiment of the present application Figure 1 ;
[0021] Figure 2 A data processing method flow diagram provided in an embodiment of the present application Figure 1;
[0022] Figure 3 A data processing method flow diagram provided in an embodiment of the present application Figure 2 ;
[0023] Figure 4 A communication system structure diagram provided in an embodiment of the present application Figure 2 ;
[0024] Figure 5 A data processing method flow diagram provided in an embodiment of the present application Figure 3 ;
[0025] Figure 6 A data processing method flow diagram provided in an embodiment of the present application Figure 4 ;
[0026] Figure 7 A data processing method flow diagram provided in an embodiment of the present application Figure 5 ;
[0027] Figure 8 A data processing method flow diagram provided in an embodiment of the present application Figure 6 ;
[0028] Figure 9 A schematic diagram of the structure of a data processing device provided in an embodiment of the present application Figure 1 ;
[0029] Figure 10 A schematic diagram of the structure of a data processing device provided in an embodiment of the present application Figure 2 ;
[0030] Figure 11 A schematic diagram of a transmitting device structure provided in an embodiment of the present application Figure 1 ;
[0031] Figure 12 A schematic diagram of a transmitting device structure provided in an embodiment of the present application Figure 2 . DETAILED DESCRIPTION
[0032] The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application.
[0033] In the embodiments of this application, words such as "exemplary" or "for example" are used to indicate examples, illustrations, or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of this application should not be interpreted as being preferred or advantageous over other embodiments or designs. Rather, the use of words such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner.
[0034] In the description of this application, unless otherwise specified, " / " means "or", for example, A / B can mean A or B. "And / or" in this article is only a description of the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. In addition, "at least one" and "a plurality of" refer to two or more. Words such as "first" and "second" do not limit the quantity and execution order, and words such as "first" and "second" do not limit them to be different.
[0035] In existing video conferencing scenarios, channel encryption is typically used. A server decrypts the video data, encrypts it again, and then sends it to the receiving device. However, with channel encryption, the server encrypts all IP packets. In addition to the video data, the server also encrypts signaling messages sent by the sending device before forwarding them to the receiving device, resulting in significant resource consumption.
[0036] To solve the above-mentioned problems, the present application proposes a data processing method, apparatus, device, and storage medium, which are applied to a sending device. The sending device generates a key summary of the conference key, which is used to verify the conference key; and encrypts the key summary based on the private key of the sending device to obtain an encrypted key summary; and encrypts the conference key and the encryption key summary based on the public key of the receiving device to obtain an encrypted conference key. The sending device sends a first message to the receiving device, and the first message carries the encrypted conference key. Furthermore, after receiving the second message, the sending device encrypts the collected original video data of the video conference based on the conference key to obtain encrypted video data; the second message is used to indicate that the receiving device has obtained the conference key. Finally, the sending device sends the encrypted video data to the receiving device through the server, so that the receiving device decrypts the received data based on the conference key to obtain the original video data. In this way, in the data processing method provided by this application, the conference key and the original video data of the video conference are encrypted on the sending device, and there is no need for the server to encrypt or decrypt them, thus achieving end-to-end encryption. The encrypted video data will only be sent to the receiving device after it is determined that the conference key has been received by the receiving device, thereby ensuring the security of the video conference while saving resources.
[0037] Figure 1 A communication system is shown. The data processing method, apparatus, device and storage medium provided in the embodiments of the present application can be applied to Figure 1 The communication system shown is used to ensure the security of video conferencing while reducing resource consumption. Figure 1As shown, the communication system 10 includes a sending end device 11, a server 12 and a receiving end device 13.
[0038] Among them, the sending end device 11, the server 12 and the receiving end device 13 are connected in pairs, and the connection between each device can be wired or wireless, which is not specifically limited in the embodiment of the present application.
[0039] The sending end device 11 can be used to generate a conference key and encrypt the conference key when a user initiates a video conference. Furthermore, the sending end device 11 sends the encrypted conference key to the receiving end device 13 through the connection between the sending end device 11 and the receiving end device 13.
[0040] After receiving the first message carrying the encrypted conference key from the transmitting device, receiving device 13 can decrypt the encrypted conference key to obtain the conference key. Furthermore, receiving device 13 can send a second message to transmitting device 11 via the connection between receiving device 13 and transmitting device 11, so that transmitting device 11 can determine that receiving device 13 has obtained the conference key.
[0041] The sending end device 11 may also be configured to encrypt the collected original video data of the video conference based on the conference key after receiving the second message to obtain encrypted video data.
[0042] The sending device 11 may also be used to send encrypted video data to the receiving device 13 via the server 12 .
[0043] The receiving device 13 may also be configured to, after receiving the data sent by the sending device 11 and forwarded by the server 12 , decrypt the received data based on the conference key to obtain the original video data.
[0044] The receiving device 13 may also be configured to display the video conference content based on the original video data through a display unit of the receiving device 13 after obtaining the original video data.
[0045] The server 12 may be configured to receive the encrypted video data sent by the transmitting device 11 and send the encrypted video data to the receiving device 13 .
[0046] The server 12 may also be used to detect the channel quality between the sending device 11 and the receiving device 13 .
[0047] Figure 2 is a flow chart of a data processing method according to some exemplary embodiments. In some embodiments, the above data processing method can be applied to Figure 1The transmitting end device 11 in the communication system 10 is shown. In the following, the data processing method is described by taking the data processing method applied to the transmitting end device 11 as an example.
[0048] like Figure 2 As shown, the data processing method provided in the embodiment of the present application includes the following S201-S205.
[0049] S201. The sending end device encrypts the conference key to obtain the encrypted conference key.
[0050] As a possible implementation, after detecting that a user has initiated a video conference, the sending device generates a conference key based on the video conference information. Further, the sending device encrypts the conference key to obtain an encrypted conference key.
[0051] The sending device may generate a conference key based on the video conference information. The video conference information may include user information of the sending device, time of initiating the video conference, user information of the receiving device, etc. The sending device combines the video conference information to generate a conference key.
[0052] The sending end device may generate the conference key based on the video conference information in the following manner: the sending end device randomly generates the conference key after the user initiates the video conference.
[0053] The sending end device may generate the conference key based on the video conference information by: after the user initiates the video conference, the sending end device responds to the user input and determines the content input by the user as the conference key.
[0054] It should be noted that in the embodiment of the present application, how the sending device generates the conference key based on the video conference information can adopt the above-mentioned implementation method or other implementation methods in the prior art, and the embodiment of the present application does not make specific limitations on this.
[0055] The sending device may encrypt the conference key using the private key of the sending device or the public key of the receiving device, which is not specifically limited in this embodiment of the present application.
[0056] In some embodiments, in order to ensure the security of the conference key and prevent the conference key from being intercepted or tampered with, S201, the sending end device encrypts the conference key and obtains the encrypted conference key, such as Figure 3 As shown, it specifically includes S2011-S2013.
[0057] S2011. The sending device generates a key digest of the conference key.
[0058] The key digest is used to verify the conference key.
[0059] As a possible implementation manner, the sending end device processes the conference key using a data signature algorithm to obtain a digest, and determines the digest as the key digest of the conference key.
[0060] S2012. The sending device encrypts the key digest based on the private key of the sending device to obtain an encrypted key digest.
[0061] As a possible implementation method, the sending device obtains its own private key from the digital certificate system, and uses the obtained private key to encrypt the key summary to obtain an encrypted key summary. The encrypted key summary is the signature in this transmission process.
[0062] It should be noted that the digital certificate system provides digital certificates for devices. The digital certificates contain the public key and private key of the device itself, as well as the public keys of other devices.
[0063] For example, Figure 4 As shown, in Figure 4 In the illustrated communication system 30, a digital certificate system 31 can be used to send digital certificates to each device in the system, enabling each device to determine its own public and private keys, as well as the public keys of other devices. A video conferencing server 32 provides functions such as conference scheduling, conference management, call information negotiation, and audio and video forwarding. Each device is a sending device when initiating a video conference, and a receiving device when not initiating a video conference. A device can be both a sending and receiving device simultaneously.
[0064] S2013. The sending device encrypts the conference key and the encryption key digest based on the public key of the receiving device to obtain the encrypted conference key.
[0065] As a possible implementation manner, after obtaining the encryption key digest, the sending end device encrypts the conference key and the encryption key digest together using the public key of the receiving end device to obtain the encrypted conference key.
[0066] It is understood that in the data processing method provided in the embodiments of the present application, since the encrypted conference key is encrypted using the public key of the receiving device, upon receiving the encrypted conference key, the receiving device can decrypt it using its own private key to obtain the conference key and verify the conference key using the key digest, thereby ensuring that the conference key has not been tampered with. Unless the receiving device intercepts the encrypted conference key, it cannot obtain the key digest because it does not know the receiving device's private key, thereby ensuring the security of the conference key.
[0067] S202: The transmitting device sends a first message to the receiving device.
[0068] The first message carries the encrypted conference key.
[0069] As a possible implementation manner, after obtaining the encrypted conference key, the transmitting device carries the encrypted conference key in a first message and sends the first message to the receiving device.
[0070] It should be noted that the sending device may directly send the first message to the receiving device through the connection between the sending device and the receiving device, or may forward the first message through the server and send the first message to the receiving device.
[0071] In some embodiments, if the video conference includes multiple participants, including a sending device and at least two receiving devices, the sending device can send the first message to each receiving device separately through the connection between the sending device and each receiving device, so that each participant of the video conference obtains the conference key.
[0072] The sending device may also send the first message to the server, and the server may forward the first message to each receiving device respectively, so that each participant in the video conference obtains the conference key.
[0073] Correspondingly, the receiving device receives the first message sent by the sending device.
[0074] S203: The sending device receives the second message.
[0075] The second message includes a message for indicating that the receiving device has obtained the conference key.
[0076] As a possible implementation method, after receiving the first message and obtaining the conference key by decrypting the encrypted conference key, the receiving device sends a second message to the sending device. Correspondingly, the sending device receives the second message sent by the receiving device.
[0077] S204: After receiving the second message, the sending end device encrypts the collected original video data of the video conference based on the conference key to obtain encrypted video data.
[0078] As a possible implementation, after receiving the second message, the transmitting device determines that the receiving device has obtained the conference key. Furthermore, the transmitting device collects raw video data of the video conference frame by frame and encrypts each frame of the raw video data based on the conference key to obtain encrypted video data.
[0079] S205: The transmitting device sends the encrypted video data to the receiving device through the server.
[0080] As a possible implementation, after obtaining the encrypted video data, the transmitting device sends the encrypted video data and the device identification of the receiving device to the server, and the server forwards the encrypted video data to the receiving device according to the device identification of the receiving device.
[0081] In some embodiments, if the video conference includes multiple participants, including a sending device and at least two receiving devices, the sending device sends the device identifications of at least two receiving devices to the server at the same time as sending encrypted video data to the server, so that the server can send encrypted video data to the at least two receiving devices respectively after identifying the device identifications of at least two receiving devices.
[0082] In some other embodiments, after obtaining the encrypted video data, the transmitting device determines a communication channel with the receiving device, and sends the encrypted video data to the receiving device based on the communication channel with the receiving device.
[0083] Correspondingly, the receiving device receives the encrypted video data forwarded by the sending device through the server, and decrypts the received data based on the conference key to obtain the original video data.
[0084] It can be understood that in the data processing method provided in the embodiment of the present application, the sending device encrypts the conference key and the original video data of the video conference and sends them separately. Only when it is determined that the receiving end can obtain the key will the encrypted original video data be sent to the receiving device. The server only needs to forward the data and does not need to encrypt or decrypt the data, thereby reducing resource consumption while ensuring the security of the video conference.
[0085] In one design, in order to reduce the channel resources consumed when transmitting encrypted video data, in the data processing method provided in the embodiment of the present application, the sending end device encrypts the original video data of the video conference collected based on the conference key to obtain encrypted video data, such as Figure 5 As shown, it also includes S401-S403.
[0086] S401: A transmitting end device encodes original video data to obtain multiple video encoding streams.
[0087] The video parameters of each of the multiple video encoding streams are different, and the video parameters include at least one of resolution and frame rate.
[0088] As a possible implementation method, the sending end device obtains a frame of original data based on multiple preset video parameters, encodes the obtained frame of original video data, and obtains a video encoding stream corresponding to each video parameter in the preset multiple video parameters.
[0089] Exemplarily, when the video parameters only include resolution, the preset multiple video parameters may be 360P (progressive scanning), 480P, 720P, and 1080P, etc. When the video parameters only include frame rate, the preset multiple video parameters may be 30FPS (frame per second), 60FPS, 90FPS, and 120FPS, etc. When the video parameters include resolution and frame rate, the preset multiple video parameters may be 480P, 30FPS, 720P, 30FPS, 720P, 60FPS, 1080P, 90FPS, etc. In the embodiment of the present application, any of the above video parameter settings may be adopted, without specific limitation.
[0090] S402: The transmitting end device encrypts the multiple video encoding streams based on the conference key to obtain multiple encrypted video encoding streams.
[0091] As a possible implementation manner, the transmitting end device encrypts multiple video encoding streams based on the conference key to obtain multiple encrypted video encoding streams.
[0092] For example, if the multiple video encoding streams are video encoding stream A: 360P, video encoding stream B: 480P, video encoding stream C: 720P, and video encoding stream D: 1080P, after the sending device encrypts the multiple video encoding streams based on the conference key, the obtained multiple encrypted encrypted video encoding streams are encrypted video encoding stream A: 360P, encrypted video encoding stream B: 480P, encrypted video encoding stream C: 720P, and encrypted video encoding stream D: 1080P.
[0093] S403: The transmitting device determines the multiple encrypted video encoding streams as encrypted video data.
[0094] As a possible implementation manner, after determining to obtain multiple encrypted video coding streams, the transmitting end device determines the multiple encrypted video coding streams as encrypted video data, and sends the encrypted video data to the receiving end device through the server.
[0095] In some embodiments, a transmitting device sends a first indication message to a server. The first indication message includes multiple encrypted video encoding streams and a video parameter identifier for each encrypted video encoding stream, where the video parameter identifier is used to identify a video parameter corresponding to the encrypted video encoding stream. The first indication message is used to instruct the server to determine a target encrypted video encoding stream to be sent to the receiving device from the multiple encrypted video encoding streams based on the channel quality between the transmitting device and the receiving device, where the video parameter identifier of the target encrypted video encoding stream corresponds to the channel quality.
[0096] Furthermore, after receiving the first indication message from the transmitting device, the server detects the channel quality of the communication channel between the server and the receiving device, determines target video parameters corresponding to the channel quality based on a mapping relationship between the channel quality and video parameters, and transmits an encrypted video encoding stream with the target video parameters to the receiving device. In this way, only one encrypted video encoding stream needs to be transmitted in the channel between the server and the receiving device, eliminating the need to transmit all encrypted video encoding streams with different video parameters to the receiving device, thereby conserving transmission resources in the communication channel.
[0097] It should be noted that the mapping relationship between channel quality and video parameters is pre-stored in the server, so that the server can detect the channel quality after receiving multiple encrypted video encoding streams and select the encrypted video encoding stream with corresponding video parameters to send to the receiving device.
[0098] Figure 6 is a flow chart of a data processing method according to some exemplary embodiments. In some embodiments, the above data processing method can be applied to Figure 1 The receiving end device 13 in the communication system 10 is shown. In the following, the data processing method is described by taking the application of the data processing method to the receiving end device 13 as an example.
[0099] like Figure 6 As shown, the data processing method provided in the embodiment of the present application includes the following S501-S505.
[0100] S501: A receiving device receives a first message sent by a sending device.
[0101] The first message carries the encrypted conference key.
[0102] As a possible implementation manner, the receiving device receives the first message sent by the sending device in the communication channel between the receiving device and the sending device, and obtains the encrypted conference key.
[0103] In some embodiments, the receiving device receives the first message sent by the sending device and forwarded by the server, and obtains the encrypted conference key.
[0104] S502: The receiving device decrypts the encrypted conference key to obtain the conference key.
[0105] It should be noted that the specific implementation method of how the receiving device decrypts the encrypted conference key includes the following: Figure 7 S5021-S5023 shown.
[0106] S5021. The receiving device decrypts the encrypted conference key based on the private key of the receiving device to obtain the conference key and the encryption key digest.
[0107] As a possible implementation method, the receiving device obtains its own private key from the digital certificate system, and uses the obtained private key to decrypt the encrypted conference key to obtain the conference key and the encryption key digest.
[0108] S5022: The receiving device decrypts the encrypted key digest based on the public key of the sending device to obtain the key digest.
[0109] The key digest is used to verify the conference key.
[0110] As a possible implementation manner, the receiving device decrypts the encrypted key digest based on the public key of the sending device obtained from the digital certificate system to obtain the key digest.
[0111] S5023: When the conference key is verified to be correct based on the key digest, the receiving device obtains the conference key.
[0112] As a possible implementation manner, the receiving device verifies whether the conference key is correct based on the key digest. If the conference key is correct, the receiving device saves the conference key for use in decrypting the encrypted video data in a subsequent process.
[0113] It is understood that in the data processing method provided in the embodiments of the present application, since the encrypted conference key is encrypted using the public key of the receiving device, upon receiving the encrypted conference key, the receiving device can decrypt it using its own private key to obtain the conference key and verify the conference key using the key digest, thereby ensuring that the conference key has not been tampered with. Unless the receiving device intercepts the encrypted conference key, it cannot obtain the key digest because it does not know the receiving device's private key, thereby ensuring the security of the conference key.
[0114] S503: The receiving device sends a second message to the sending device.
[0115] The second message is used to indicate that the receiving device has obtained the conference key.
[0116] As a possible implementation method, after obtaining the conference key, the receiving device generates a second message and sends it to the sending device, so that the sending device determines that the receiving device has obtained the conference key, and then encrypts the original video data of the video conference using the conference key.
[0117] Correspondingly, the sending device receives the second message.
[0118] S504: The receiving device receives the encrypted video data sent by the sending device and forwarded by the server.
[0119] In some embodiments, the receiving device receives the encrypted video data sent by the sending device in a communication channel between the receiving device and the sending device.
[0120] S505: The receiving device decrypts the encrypted video data based on the conference key to obtain the original video data of the video conference.
[0121] As a possible implementation manner, after receiving the encrypted video data, the receiving end device decrypts the encrypted video data using the conference key to obtain the original video data of the video conference.
[0122] In some embodiments, after obtaining the original video data, the receiving device decodes it to obtain the video of the video conference and plays it so that the receiving user can participate in the video conference.
[0123] Figure 8 is a flow chart of a data processing method according to some exemplary embodiments. In some embodiments, the above data processing method can be applied to Figure 1 The communication system 10 shown in FIG. 1 is a block diagram of a communication system 10. In the following, the data processing method is described by taking the application of the data processing method to the communication system 10 as an example.
[0124] like Figure 8 As shown, the data processing method provided in the embodiment of the present application includes the following S601-S615.
[0125] S601: The sending device generates a conference key.
[0126] S602: The sending device generates an encrypted conference key.
[0127] The transmitting end device generates a first encrypted conference key according to the public key of the first receiving end device, and generates a second encrypted conference key according to the public key of the second receiving end device.
[0128] S603: The transmitting device sends the first encrypted conference key to the first receiving device.
[0129] S604: The first receiving device verifies the conference key.
[0130] S605: The first receiving device sends a conference key confirmation message to the sending device.
[0131] S606: The transmitting device sends the second encrypted conference key to the second receiving device.
[0132] S607: The second receiving device verifies the conference key.
[0133] S608: The second receiving device sends a conference key confirmation message to the sending device.
[0134] S609: The server performs channel detection.
[0135] The server determines to send a channel detection message to the first receiving end device, and determines the first channel quality based on the channel state feedback message sent by the first receiving end device.
[0136] The server determines to send a channel detection message to the second receiving end device, and determines the second channel quality based on the channel state feedback message sent by the second receiving end device.
[0137] S610: The transmitting end device encodes the original video data of the video conference and encrypts it separately to obtain encrypted video data.
[0138] S611. The sending device sends encrypted video data to the server.
[0139] S612: The server selects an encrypted video encoding stream with corresponding video parameters according to the first channel quality, and sends the encrypted video encoding stream to the first receiving device.
[0140] S613: The first receiving device decrypts the encrypted video encoding stream based on the conference key, and decodes it according to the resolution or frame rate of the video parameters to obtain the video of the video conference.
[0141] S614: The server selects an encrypted video encoding stream with corresponding video parameters according to the second channel quality, and sends the encrypted video encoding stream to the second receiving device.
[0142] S615: The second receiving device decrypts the encrypted video encoding stream based on the conference key, and decodes it according to the resolution or frame rate of the video parameters to obtain the video of the video conference.
[0143] In the data processing method provided in the present application, the conference key and the original video data of the video conference are encrypted on the sending device, and no server is required to encrypt or decrypt them, thus achieving end-to-end encryption. The encrypted video data will only be sent to the receiving device after it is determined that the conference key has been received by the receiving device, thereby ensuring the security of the video conference while saving resources.
[0144] The above mainly introduces the solution provided by the embodiment of the present application from the perspective of method. In order to realize the above functions, it includes hardware structures and / or software modules corresponding to the execution of each function. Those skilled in the art should easily appreciate that, in combination with the units and algorithm steps of each example described in the embodiments disclosed herein, the embodiments of the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in a hardware or computer software driven hardware manner depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0145] In the embodiments of the present application, the user equipment can be divided into functional modules according to the above method examples. For example, each functional module can be divided according to each function, or two or more functions can be integrated into one processing module. The above integrated modules can be implemented in the form of hardware or software functional modules. Optionally, the division of modules in the embodiments of the present application is illustrative and is only a logical functional division. In actual implementation, other division methods may be used.
[0146] Figure 9 This is a structural diagram of a data processing device provided in an embodiment of the present application. The data processing device is used to execute the above-mentioned data processing method. Figure 9 As shown, the data processing device 70 includes a generating unit 701 , an encrypting unit 702 , a sending unit 703 and a receiving unit 704 .
[0147] The generating unit 701 is used to generate a key digest of the conference key, and the key digest is used to verify the conference key. Figure 3 As shown, the generating unit 701 can be used to execute S2011.
[0148] The encryption unit 702 is further configured to encrypt the key digest based on the private key of the sending device to obtain an encrypted key digest. Figure 3 As shown, the encryption unit 702 can be used to execute S2012.
[0149] The encryption unit 703 is further configured to encrypt the conference key and the encryption key digest based on the public key of the receiving device to obtain the encrypted conference key. Figure 3 As shown, the encryption unit 702 can be used to execute S2013.
[0150] The sending unit 703 is configured to send a first message to the receiving device, where the first message carries the encrypted conference key. Figure 2 As shown, the sending unit 703 can be used to execute S202.
[0151] The receiving unit 704 is configured to receive a second message. Figure 2 As shown, the receiving unit 704 can be used to execute S203.
[0152] The encryption unit 702 is further configured to encrypt the collected original video data of the video conference based on the conference key to obtain encrypted video data after the receiving unit receives the second message; the second message is used to indicate that the receiving end device has obtained the conference key. For example, Figure 2 As shown, the encryption unit 702 can be used to execute S204.
[0153] The sending unit 703 is further configured to send the encrypted video data to the receiving device via the server, so that the receiving device decrypts the received data based on the conference key to obtain the original video data. Figure 2 As shown, the sending unit 703 can be used to execute S205.
[0154] Optional, such as Figure 9 As shown, the data processing device 70 provided in this embodiment of the present application further includes a processing unit 705 and a determining unit 706.
[0155] The processing unit 705 is configured to encode the original video data to obtain multiple video encoding streams, wherein each of the multiple video encoding streams has different video parameters, and the video parameters include at least one of resolution and frame rate. Figure 5 As shown, the processing unit 705 can be used to execute S401.
[0156] The encryption unit 702 is further configured to encrypt the plurality of video encoding streams based on the conference key to obtain a plurality of encrypted video encoding streams. Figure 5 As shown, the encryption unit 702 can be used to execute S402.
[0157] The determination unit 706 is configured to determine multiple encrypted video encoding streams as encrypted video data. Figure 5 As shown, the determining unit 706 can be used to execute S403.
[0158] Optional, such as Figure 9As shown, in the data processing device 70 provided in the embodiment of the present application, the sending unit 703 is specifically used to send a first indication message to the server; the first indication message includes multiple encrypted video coding streams and a video parameter identifier of each encrypted video coding stream, the video parameter identifier is used to identify the video parameters corresponding to the encrypted video coding stream, the first indication message is used to instruct the server to determine the target encrypted video coding stream to be sent to the receiving device from the multiple encrypted video coding streams based on the channel quality between the sending device and the receiving device, and the video parameter identifier of the target encrypted video coding stream corresponds to the channel quality.
[0159] Figure 10 This is a structural diagram of a data processing device provided in an embodiment of the present application. The data processing device is used to execute the above-mentioned data processing method. Figure 10 As shown, the data processing device 80 includes a receiving unit 801 , a decryption unit 802 , an acquisition unit 803 and a sending unit 804 .
[0160] The receiving unit 801 is configured to receive a first message sent by a transmitting device, wherein the first message carries an encrypted conference key. Figure 6 As shown, the receiving unit 801 can be used to execute S501.
[0161] The decryption unit 802 is used to decrypt the encrypted conference key based on the private key of the receiving device to obtain the conference key and the encryption key summary. Figure 7 As shown, the decryption unit 802 can be used to execute S5021.
[0162] The decryption unit 802 is used to decrypt the encrypted key summary based on the public key of the sending end device to obtain the key summary, which is used to verify the conference key. Figure 7 As shown, the decryption unit 802 can be used to execute S5022.
[0163] The acquiring unit 803 is configured to acquire the conference key when the conference key is verified to be correct based on the key digest. Figure 7 As shown, the acquiring unit 803 can be used to execute S5023.
[0164] The sending unit 804 is configured to send a second message to the sending end device, where the second message is used to indicate that the receiving end device has obtained the conference key. Figure 6 As shown, the sending unit 804 can be used to execute S503.
[0165] The receiving unit 801 is further configured to receive the encrypted video data sent by the transmitting device and forwarded by the server. Figure 6 As shown, the receiving unit 801 can be used to execute S504.
[0166] The decryption unit 802 is further configured to decrypt the encrypted video data based on the conference key to obtain the original video data of the video conference. Figure 6 As shown, the decryption unit 802 can be used to execute S505.
[0167] In the case of implementing the functions of the above-mentioned integrated modules in the form of hardware, the embodiment of the present application provides a possible structural diagram of a sending end device. The sending end device is used to execute the data processing method executed by the sending end device in the above embodiment. Figure 11 As shown, the transmitting end device 90 includes a processor 901, a memory 902 and a bus 903. The processor 901 and the memory 902 may be connected via a bus 903.
[0168] Processor 901 is the control center of the transmitting device and can be a single processor or a collective term for multiple processing elements. For example, processor 901 can be a general-purpose central processing unit (CPU) or other general-purpose processor. The general-purpose processor can be a microprocessor or any conventional processor.
[0169] As an embodiment, the processor 901 may include one or more CPUs, such as Figure 11 CPU 0 and CPU 1 are shown in Figure 1.
[0170] The memory 902 may be a read-only memory (ROM) or other type of static storage device that can store static information and instructions, a random access memory (RAM) or other type of dynamic storage device that can store information and instructions, an electrically erasable programmable read-only memory (EEPROM), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto.
[0171] As a possible implementation, memory 902 can exist independently of processor 901. Memory 902 can be connected to processor 901 via bus 903 to store instructions or program codes. When processor 901 calls and executes the instructions or program codes stored in memory 902, the data processing method provided in the embodiments of the present application can be implemented.
[0172] In another possible implementation, the memory 902 may also be integrated with the processor 901 .
[0173] Bus 903 can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus. This bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 11 Only one thick line is used in the diagram, but this does not mean that there is only one bus or one type of bus.
[0174] It should be pointed out that Figure 11 The structure shown does not constitute a limitation on the transmitting end device 90. Figure 11 In addition to the components shown, the sending end device 90 may include Figure 11 More or fewer components may be shown, or certain components may be combined, or different arrangements of components may be shown.
[0175] As an example, combining Figure 11 The functions implemented by the generating unit 701, the encrypting unit 702, the sending unit 703, the receiving unit 704, the processing unit 705 and the determining unit 706 in the sending end device 70 are the same as those implemented by the generating unit 701, the encrypting unit 702, the sending unit 703, the receiving unit 704, the processing unit 705 and the determining unit 706 Figure 11 The function of processor 901 in is the same.
[0176] Optional, such as Figure 11 As shown, the sending end device provided in the embodiment of the present application may further include a communication interface 904.
[0177] The communication interface 904 is used to connect to other devices via a communication network. The communication network can be Ethernet, wireless access network, wireless local area network (WLAN), etc. The communication interface 904 can include an acquisition unit for receiving data and a transmission unit for sending data.
[0178] In one design, in the transmitting device provided in an embodiment of the present application, the communication interface can also be integrated into the processor.
[0179] Figure 12 FIG. 1 shows another hardware structure of the transmitting end device in the embodiment of the present application. Figure 12 As shown, the transmitting end device 100 may include a processor 1001 and a communication interface 1002. The processor 1001 is coupled to the communication interface 1002.
[0180] The functions of the processor 1001 may refer to the description of the processor 901. In addition, the processor 1001 also has a storage function, which may refer to the function of the memory 902.
[0181] The communication interface 1002 is used to provide data to the processor 1001. The communication interface 1002 can be an internal interface of the sending end device, or an external interface of the sending end device (equivalent to the communication interface 904).
[0182] It should be pointed out that Figure 12 The structure shown in the figure does not constitute a limitation on the transmitting end device, except Figure 12 In addition to the components shown, the transmitting end device 100 may include more or fewer components than shown, or combine certain components, or arrange the components differently.
[0183] At the same time, the structural diagram of a hardware of the receiving end device provided in the embodiment of the present application can also refer to the above Figure 11 or Figure 12 The description of the sending end device in the embodiment will not be repeated here. The difference is that the processor included in the server is used to execute the steps performed by the server in the above embodiment.
[0184] Through the description of the above embodiments, those skilled in the art will clearly understand that for the sake of convenience and brevity, only the division of the above-mentioned functional units is used as an example. In actual applications, the above-mentioned functions can be distributed and completed by different functional units as needed, that is, the internal structure of the device can be divided into different functional units to complete all or part of the functions described above. The specific working processes of the above-mentioned systems, devices, and units can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0185] An embodiment of the present application further provides a computer-readable storage medium, in which instructions are stored. When a computer executes the instructions, the computer executes each step in the method flow shown in the above method embodiment.
[0186] An embodiment of the present application provides a computer program product comprising instructions, which, when executed on a computer, enables the computer to execute the data processing method in the above method embodiment.
[0187] Among them, the computer-readable storage medium can be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination thereof. More specific examples of computer-readable storage media (a non-exhaustive list) include: an electrical connection with one or more wires, a portable computer disk, a hard disk. Random Access Memory (RAM), Read-Only Memory (ROM), Erasable Programmable Read Only Memory (EPROM), a register, a hard disk, an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any other form of computer-readable storage medium in a suitable combination of the above, or a numerical value in the art. An exemplary storage medium is coupled to a processor so that the processor can read information from the storage medium and write information to the storage medium. Of course, the storage medium can also be an integral part of the processor. The processor and the storage medium can be located in an application-specific integrated circuit (ASIC). In the embodiments of the present application, a computer-readable storage medium may be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.
[0188] Since the apparatus, device computer-readable storage medium, and computer program product in the embodiments of the present application can be applied to the above-mentioned method, the technical effects that can be obtained can also refer to the above-mentioned method embodiments, and the embodiments of the present application will not be repeated here.
[0189] The above is only a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or replacements within the technical scope disclosed in the present application should be included in the scope of protection of the present application. Therefore, the scope of protection of the present application should be based on the scope of protection of the claims.
Claims
1. A data processing method, characterized in that: Applied to a transmitting device, the method includes: generating a key digest of a conference key, wherein the key digest is used to verify the conference key; Encrypting the key digest based on the private key of the sending device to obtain an encrypted key digest; Encrypting the conference key and the encryption key digest based on the public key of the receiving device to obtain an encrypted conference key; Sending a first message to the receiving device, where the first message carries the encrypted conference key; After receiving the second message, encrypting the collected original video data of the video conference based on the conference key to obtain encrypted video data; the second message is used to indicate that the receiving end device has obtained the conference key; The encrypted video data is sent to the receiving device through the server, so that the receiving device decrypts the received data based on the conference key to obtain the original video data.
2. The data processing method according to claim 1, wherein: The step of encrypting the collected original video data of the video conference based on the conference key to obtain encrypted video data includes: Encoding the original video data to obtain multiple video encoding streams, wherein each of the multiple video encoding streams has different video parameters, and the video parameters include at least one of resolution and frame rate; Encrypting the multiple video encoding streams respectively based on the conference key to obtain multiple encrypted video encoding streams; The plurality of encrypted video encoding streams are determined as the encrypted video data.
3. The data processing method according to claim 2, characterized in that: The sending of the encrypted video data to the receiving device through the server includes: A first indication message is sent to the server; the first indication message includes the multiple encrypted video coding streams and a video parameter identifier of each encrypted video coding stream, where the video parameter identifier is used to identify the video parameters corresponding to the encrypted video coding stream. The first indication message is used to instruct the server to determine a target encrypted video coding stream to be sent to the receiving device from the multiple encrypted video coding streams based on the channel quality between the sending device and the receiving device, where the video parameter identifier of the target encrypted video coding stream corresponds to the channel quality.
4. A data processing method, characterized in that: Applied to a receiving device, the method includes: receiving a first message sent by a transmitting device, where the first message carries an encrypted conference key; decrypting the encrypted conference key based on the private key of the receiving device to obtain the conference key and the encryption key digest; decrypting the encrypted key digest based on the public key of the sending end device to obtain a key digest, wherein the key digest is used to verify the conference key; When the conference key is verified to be correct based on the key digest, obtaining the conference key; Sending a second message to the transmitting device, where the second message is used to indicate that the receiving device has obtained the conference key; Receiving the encrypted video data sent by the sending end device and forwarded by the server; The encrypted video data is decrypted based on the conference key to obtain the original video data of the video conference.
5. A data processing device, characterized in that: Deployed on a sending end device, the data processing device includes a generating unit, an encryption unit, a sending unit, and a receiving unit; The generating unit is configured to generate a key digest of the conference key, where the key digest is used to verify the conference key; The encryption unit is further configured to encrypt the key digest based on the private key of the sending end device to obtain an encrypted key digest; The encryption unit is further configured to encrypt the conference key and the encryption key digest based on the public key of the receiving device to obtain an encrypted conference key; The sending unit is configured to send a first message to a receiving device, where the first message carries the encrypted conference key; The receiving unit is configured to receive a second message; The encryption unit is further configured to, after the receiving unit receives the second message, encrypt the collected original video data of the video conference based on the conference key to obtain encrypted video data; the second message is used to indicate that the receiving end device has obtained the conference key; The sending unit is further configured to send the encrypted video data to the receiving device through the server, so that the receiving device decrypts the received data based on the conference key to obtain the original video data.
6. The data processing device according to claim 5, characterized in that The data processing device further includes a processing unit and a determining unit; The processing unit is configured to encode the original video data to obtain a plurality of video encoding streams, wherein each of the plurality of video encoding streams has different video parameters, and the video parameters include at least one of resolution and frame rate; The encryption unit is further configured to encrypt the multiple video encoding streams respectively based on the conference key to obtain multiple encrypted video encoding streams; The determining unit is configured to determine the multiple encrypted video encoding streams as the encrypted video data.
7. The data processing device according to claim 6, characterized in that The sending unit is specifically used to send a first indication message to the server; the first indication message includes the multiple encrypted video coding streams and the video parameter identifier of each encrypted video coding stream, the video parameter identifier is used to identify the video parameters corresponding to the encrypted video coding stream, and the first indication message is used to instruct the server to determine the target encrypted video coding stream to be sent to the receiving device from the multiple encrypted video coding streams based on the channel quality between the sending device and the receiving device, and the video parameter identifier of the target encrypted video coding stream corresponds to the channel quality.
8. A data processing device, characterized in that: Deployed on a receiving-end device, the data processing device includes a receiving unit, a decryption unit, an acquisition unit, and a sending unit; The receiving unit is configured to receive a first message sent by a transmitting device, where the first message carries an encrypted conference key; The decryption unit is configured to decrypt the encrypted conference key based on the private key of the receiving device to obtain the conference key and the encryption key digest; The decryption unit is configured to decrypt the encrypted key digest based on the public key of the sending end device to obtain a key digest, wherein the key digest is used to verify the conference key; The acquiring unit is configured to acquire the conference key when the conference key is verified to be correct based on the key digest; The sending unit is configured to send a second message to the sending end device, where the second message is used to indicate that the receiving end device has obtained the conference key; The receiving unit is further configured to receive the encrypted video data sent by the sending end device and forwarded by the server; The decryption unit is further configured to decrypt the encrypted video data based on the conference key to obtain the original video data of the video conference.
9. A transmitting device, characterized in that: including memory and processor; The memory is coupled to the processor; The memory is used to store computer program code, wherein the computer program code includes computer instructions; When the processor executes the computer instruction, the sending end device executes the data processing method according to any one of claims 1 to 3.
10. A receiving device, characterized in that: including memory and processor; The memory is coupled to the processor; The memory is used to store computer program code, wherein the computer program code includes computer instructions; When the processor executes the computer instructions, the receiving device performs the data processing method according to claim 4.
11. A computer-readable storage medium storing instructions, characterized in that: When the instruction is executed on the sending-end device, the sending-end device executes the data processing method according to any one of claims 1 to 3.
12. A computer-readable storage medium storing instructions, characterized in that: When the instruction is executed on the receiving-end device, the receiving-end device executes the data processing method according to claim 4.
Citation Information
Patent Citations
Data verification system
CN112671691A
Transmission line monitoring data transmission method and device, computer equipment and storage medium
CN115022102A