A data transmission system, method and apparatus based on an inadvertent transmission protocol

By incorporating a trusted execution environment at both the sending and receiving ends for encryption and decryption operations, the efficiency and cost issues of existing unintentional transmission protocols are resolved, achieving efficient data transmission.

CN116248359BActive Publication Date: 2026-03-20ANT BLOCKCHAIN TECHNOLOGY (SHANGHAI) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-12-30
Publication Date
2026-03-20

AI Technical Summary

Technical Problem

Existing unintentional transport protocols are inadequate in terms of execution efficiency and cost, especially in terms of multi-round interactions and device costs.

Method used

By installing trusted execution environments at both the sending and receiving ends, and using the same key set to encrypt and decrypt the original data, the computationally intensive operations of asymmetric and symmetric encryption algorithms are avoided, and the encryption and decryption process is performed directly on the local machine.

Benefits of technology

It significantly improves data transmission efficiency, reduces network overhead and system resource waste, and lowers equipment costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116248359B_ABST
    Figure CN116248359B_ABST
Patent Text Reader

Abstract

The specification provides a data transmission system, method and device based on an inadvertent transmission protocol, comprising: a sending end and a receiving end, the sending end maintaining a plurality of groups of original data respectively corresponding to different subscripts, and a same set of keys being maintained in a first trusted execution environment and a second trusted execution environment respectively; wherein: the sending end is configured to encrypt original data having a same subscript in the plurality of groups of original data according to each group of original keys in the plurality of groups of original keys respectively in the first trusted execution environment to obtain a plurality of groups of encrypted data, and send the plurality of groups of encrypted data to the receiving end; and the receiving end is configured to select a target key corresponding to a target subscript maintained in the second trusted execution environment, and decrypt encrypted data corresponding to the target subscript in the plurality of groups of encrypted data according to the target key in the second trusted execution environment to obtain target original data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This specification relates to the field of computer technology, and in particular to a data transmission system, method and apparatus based on an unintentional transmission protocol. Background Technology

[0002] Oblivious transfer (OT) is a widely used fundamental protocol for multi-party computation (MPC), and different implementations of this protocol can directly affect the operational efficiency of MPC. Therefore, maximizing the processing efficiency of this protocol has become a common challenge that the industry needs to address and solve.

[0003] In related technologies, constructing oblivious transfers usually involves asymmetric operations. However, the process of performing asymmetric operations is time-consuming and slow. Alternatively, an extended oblivious transfer (OTE) approach, such as "a small number of public-key algorithms combined with a large number of symmetric algorithms," can be used to improve execution efficiency. However, such methods have high performance requirements for pre-computation and are costly to implement. Summary of the Invention

[0004] In view of this, this specification provides a data transmission system, method, and apparatus based on an unintentional transmission protocol to address the shortcomings of related technologies.

[0005] Specifically, this specification is implemented through the following technical solution:

[0006] According to a first aspect of the embodiments of this specification, a data transmission system based on an unintentional transmission protocol is provided, comprising: a sending end and a receiving end, wherein the sending end is equipped with a first trusted execution environment, and the receiving end is equipped with a second trusted execution environment. The sending end maintains multiple sets of raw data corresponding to different indices, and the first trusted execution environment and the second trusted execution environment each maintain the same key set, which contains multiple sets of raw keys corresponding to different indices; wherein:

[0007] The sending end is configured to encrypt the original data with the same index in the multiple sets of original data according to each of the multiple sets of original keys in the first trusted execution environment to obtain multiple sets of encrypted data, and send the multiple sets of encrypted data to the receiving end.

[0008] The receiving end is used to select the target key corresponding to the target index maintained in the second trusted execution environment, and decrypt the encrypted data corresponding to the target index in the multiple sets of encrypted data according to the target key in the second trusted execution environment to obtain the target original data.

[0009] According to a second aspect of the embodiments of the present specification, a data transmission method based on an oblivious transfer protocol is provided, applied to a sending end, the sending end being equipped with a first trusted execution environment and maintaining a plurality of groups of original data respectively corresponding to different subscripts, the first trusted execution environment maintaining a plurality of groups of original keys corresponding to different subscripts, and the method comprising:

[0010] encrypting, in the first trusted execution environment, original data having the same subscript in the plurality of groups of original data according to each of the plurality of groups of original keys to obtain a plurality of groups of encrypted data;

[0011] sending the plurality of groups of encrypted data to the receiving end, so that the receiving end selects a target key corresponding to a target subscript maintained in a second trusted execution environment equipped by the receiving end, and decrypts, in the second trusted execution environment, encrypted data corresponding to the target subscript in the plurality of groups of encrypted data according to the target key to obtain target original data.

[0012] According to a third aspect of the embodiments of the present specification, a data transmission method based on an oblivious transfer protocol is provided, applied to a receiving end, the receiving end being equipped with a second trusted execution environment, the second trusted execution environment respectively maintaining a plurality of groups of original keys corresponding to different subscripts, and the method comprising:

[0013] receiving a plurality of groups of encrypted data from a sending end, the plurality of groups of encrypted data being obtained by the sending end by respectively encrypting original data having the same subscript in a plurality of groups of original data according to each of a plurality of groups of original keys in a first trusted execution environment of the sending end, the plurality of groups of original data being maintained in the first trusted execution environment and respectively corresponding to different subscripts;

[0014] selecting a target key corresponding to a target subscript maintained in the second trusted execution environment, and decrypting, in the second trusted execution environment, encrypted data corresponding to the target subscript in the plurality of groups of encrypted data according to the target key to obtain target original data.

[0015] According to a fourth aspect of the embodiments of the present specification, a data transmission device based on an oblivious transfer protocol is provided, applied to a sending end, the sending end being equipped with a first trusted execution environment and maintaining a plurality of groups of original data respectively corresponding to different subscripts, the first trusted execution environment maintaining a plurality of groups of original keys corresponding to different subscripts, and the device comprising:

[0016] a data encryption unit, configured to encrypt, in the first trusted execution environment, original data having the same subscript in the plurality of groups of original data according to each of the plurality of groups of original keys to obtain a plurality of groups of encrypted data;

[0017] a data sending unit, configured to send the multiple groups of encrypted data to the receiving end, so that the receiving end selects a target key corresponding to a target subscript maintained in a second trusted execution environment carried by the receiving end, and decrypts encrypted data corresponding to the target subscript in the multiple groups of encrypted data according to the target key in the second trusted execution environment to obtain target original data.

[0018] According to a fifth aspect of the embodiments of the present specification, a data transmission device based on an inadvertent transmission protocol is provided, which is applied to a receiving end, the receiving end carries a second trusted execution environment, and the second trusted execution environment maintains multiple groups of original keys corresponding to different subscripts respectively, and the device comprises:

[0019] a data receiving unit, configured to receive multiple groups of encrypted data from a sending end, the multiple groups of encrypted data are obtained by encrypting original data with the same subscript in multiple groups of original data according to each group of original keys in the multiple groups of original keys in the first trusted execution environment of the sending end, the multiple groups of original data are maintained in the first trusted execution environment and correspond to different subscripts respectively;

[0020] a data decryption unit, configured to select a target key corresponding to a target subscript maintained in the second trusted execution environment, and decrypt encrypted data corresponding to the target subscript in the multiple groups of encrypted data according to the target key in the second trusted execution environment to obtain target original data.

[0021] According to a sixth aspect of the embodiments of the present specification, a computer readable storage medium is provided, which stores a computer program, and the program is executed by a processor to implement the steps of the method according to the second aspect or the third aspect.

[0022] According to a seventh aspect of the embodiments of the present specification, an electronic device is provided, which comprises a memory, a processor, and a computer program stored in the memory and executable on the processor, and the processor implements the steps of the method according to the second aspect or the third aspect when executing the program.

[0023] In the technical solutions provided in the present specification, the first trusted execution environment carried by the sending end and the second trusted execution environment carried by the receiving end are used to execute the data encryption process of the sending end in the first trusted execution environment and the data decryption process of the sending end in the second trusted execution environment, which ensures the security of the original key and the target key. At the same time, the waste of system resources caused by the use of asymmetric encryption and symmetric encryption and other computationally intensive algorithms in the related art is saved, thereby significantly improving the transmission efficiency of data.

[0024] It should be understood that the foregoing general description and the following detailed description are only exemplary and explanatory and are not restrictive of the specification. BRIEF DESCRIPTION OF DRAWINGS

[0025] In order to more clearly illustrate the technical solutions in the embodiments of the present specification or the prior art, the drawings needed to be used in the embodiments or prior art description will be briefly introduced. Obviously, the drawings in the following description are only some embodiments described in the present specification, and other drawings can also be obtained by those skilled in the art based on these drawings.

[0026] Figure 1 is a schematic diagram of a data transmission system architecture according to an example embodiment of the present specification;

[0027] Figure 2 is a schematic diagram of a data transmission method based on a basic-inadvertent transmission protocol according to an example embodiment of the present specification;

[0028] Figure 3 is a schematic diagram of a data transmission method based on an inadvertent transmission extension protocol according to an example embodiment of the present specification;

[0029] Figure 4 is a schematic diagram of an interaction flow of a data transmission system based on an inadvertent transmission protocol according to an example embodiment of the present specification;

[0030] Figure 5 is a schematic diagram of a data transmission method based on an inadvertent transmission protocol according to an example embodiment of the present specification;

[0031] Figure 6 is a schematic diagram of another data transmission method based on an inadvertent transmission protocol according to an example embodiment of the present specification;

[0032] Figure 7 is a schematic diagram of an electronic device according to an example embodiment of the present specification;

[0033] Figure 8 is a schematic diagram of a data transmission device based on an inadvertent transmission protocol according to an example embodiment of the present specification;

[0034] Figure 9 is a schematic diagram of another data transmission device based on an inadvertent transmission protocol according to an example embodiment of the present specification. DETAILED DESCRIPTION

[0035] The exemplary embodiments will be described in detail herein with reference to the attached drawings. In the following description, like reference numerals refer to like elements throughout the description. The following exemplary embodiments are described in the context of implementations described herein. These implementations are not representative of all implementations consistent with the present specification. Rather, they are merely examples of apparatuses and methods consistent with some aspects of the present specification.

[0036] It is noted that the steps of the methods described in other embodiments need not necessarily be performed in the order shown and described in the present specification. In some other embodiments, the steps of the methods described herein can be more or less than those described in the present specification. Furthermore, a single step described in the present specification can be broken down into multiple steps in other embodiments; and multiple steps described in the present specification can be combined into a single step in other embodiments. It is to be understood that although the terms first, second, third, etc. can be used herein to describe various information, these terms are not intended to denote a particular order. These terms are used merely to distinguish one piece of information from another. For example, a first piece of information can be termed a second piece of information, and similarly, a second piece of information can be termed a first piece of information without departing from the scope of the present specification. Depending on the context, the word "if' as used herein can be interpreted as meaning "when" or "in response to determining" or "in response to ascertaining".

[0037] In the related art, Oblivious Transfer is a secure two-party communication protocol often used in cryptography, and is also a basic protocol in cryptography. The protocol specifies the communication mode between the sender and the receiver, so that after the protocol is executed, the receiver can obtain the information it wants, and the sender cannot obtain other information of the receiver. In other words, the core requirement of the above two parties for Oblivious Transfer is that the receiver does not want the sender to determine the data it needs. The sender wants the receiver to only obtain the data it needs, but cannot obtain other data. Therefore, the Oblivious Transfer protocol is usually implemented in the data transmission and processing process between the sender 11 and the receiver 12 in the related art. Figure 1

[0038] Since there are various ways to implement the above Oblivious Transfer, the present specification can divide Oblivious Transfer into two types of implementation modes according to the number of data that the sender can provide for the receiver to choose: 1-out-of-2 Oblivious Transfer (abbreviated as 2-OT) and 1-out-of-n Oblivious Transfer (abbreviated as n-OT).

[0039] ​​​The following implements the inadvertent transmission protocol using the Diffie-Hellman (DH) key exchange algorithm. For example, combined with Figure 2 The implementation of the data transmission method based on the 2-to-1 unintentional transmission protocol is discussed:

[0040] (1) Assume that the sender 21 is S and the receiver 22 is R. S has two data M0 and M1, and S generates a random number a and R generates a random number b.

[0041] (2) S can first put g b This parameter is sent to R.

[0042] (3) So that when R wants to obtain M0, g can be... b Send to S; if R wants to obtain M1, then B = g a ·g b Send to S.

[0043] (4) S calculates k0 = Hash(B) respectively. a ) and k1 = Hash((B / g a ) a ).

[0044] (5) Calculate based on k0 and k1 respectively and Then send e0 and e1 to R.

[0045] (6) At this time, R has g a If R wants to obtain M0, it can do so through B and b. a =(g b ) a =(g a ) b The relational expression is used to decrypt k0, which in turn decrypts M0. Since R does not know a, it cannot calculate k1 and therefore cannot decrypt M1; conversely, if R wants to obtain M1, it can do so through (B / g). a ) a =(g b ) a =(g a ) b The relational expression is used to decrypt k1, and then M1 is decrypted. Since R does not know a, it cannot calculate k0 and therefore cannot decrypt M0.

[0046] In the appeal step (4), since S itself is not actually aware that it received g b or g a ·g b, and the difficulty of calculating the corresponding discrete logarithm in the key exchange algorithm is extremely large, so it is almost impossible to directly determine whether the specific data R wants to obtain is M0 or M1 through brute force, and thus the security of the data is ensured.

[0047] Those skilled in the art can understand that the above-mentioned oblivious transfer protocol can also be implemented using public key encryption algorithms such as Elliptic Curve Cryptosystems (ECC) based key exchange algorithms (i.e. ECDH), discrete logarithm (Elgamal), or RSA (Rivest-Shamir-Adleman), and the present specification does not limit this.

[0048] However, the above-mentioned embodiment requires multiple rounds of interaction between the sending end and the receiving end for one 1-out-of-2 oblivious transfer. In actual application scenarios, users often need to implement a large number of oblivious transfers at one time, so if the original oblivious transfer protocol is used every time, the overall transmission efficiency of the data will be very low.

[0049] In another embodiment, to solve the hidden danger of the previous embodiment, the existing base oblivious transfer (Base OT) protocol can be improved to obtain an oblivious transfer extension (OT extension) protocol similar to the following, thereby improving the execution efficiency of the oblivious transfer protocol. The following is an example of implementing multiple oblivious transfer protocols based on IKNP03 For example, combined with Figure 3 The implementation of the data transmission method based on the multiple 2-out-of-1 oblivious transfer protocol is discussed:

[0050] (1) Assuming that the sending end has n pairs of data, and the receiving end has n selection bits, the receiving end wants to obtain the data identified by the selection bits from the sending end. Generally, n times of 1-out-of-2 base oblivious transfer protocol can be directly executed, but as described above, such an implementation will increase the communication complexity as n increases. The oblivious transfer extension protocol only needs to execute k times of oblivious transfer to achieve the same effect as executing n times of oblivious transfer, thereby greatly improving the applicability of the oblivious transfer, where k is a fixed value and is independent of the size of n.

[0051] (2) The input n pairs of data of the sending end S The input n selection bits of the receiving end R, i = (i1, i2,..., in) n), i∈{0,1}, at this time, both parties jointly hold a security parameter k (i.e. the number of times an unintentional transmission is performed), assuming there is a random primitive H (usually a hash function), assuming there is a 1-out-of-2 unintentional transmission as follows.

[0052] (3) The sending end S initializes a random vector s∈{0,1} of length k. k The receiving end R initializes a random bit matrix T of size n*k.

[0053] (4) Both parties perform k unintentional 1-out-of-2 transmissions. In these k unintentional transmissions, S, as the receiving end, holds k selection bits, namely s1, ... s2. k R, as the sender, holds k pairs of data. Where t a Let T represent the a-th column, and i be a vector consisting of n selected bits of R. Those skilled in the art will understand that the sending end and the receiving end in this step can be defined according to the Private Set Intersection (PSI) method, meaning the object obtaining the final output can be defined as the receiving end, thus changing the identities of S and R.

[0054] (5) Take Q as an n×k matrix composed of the data received by the sender S in the k unintentional transmissions in step 4. Each row and column of Q satisfies the following properties: Where q a Let q represent the a-th column of Q. b This represents the b-th row of Q. Subsequently, the sender S sends n data pairs. in

[0055] (6) The receiver can calculate H(b, t) b ),Depend on Get the corresponding

[0056] From the above formula, we can further deduce q. b The property of i. That is, if i b =0, then q b =t b ; if i b =1, then Therefore, when generating n data pairs At that time, it was possible to pass through This ensures that the receiving end R can successfully decrypt the data it needs. Those skilled in the art will understand that the above-described unintentional transmission protocol can also be implemented using, for example, methods based on KK13 or KKRT16, and this specification does not impose any limitations on it.

[0057] Although the unattended transmission extension protocol in the above embodiment realizes the construction of a large number of unattended transmission instances using a small number of basic unattended transmissions and symmetric keys based on the matrix change idea, improves the data transmission efficiency, but needs to build a corresponding number of data matrices based on the above basic unattended transmission, resulting in the increase of the cost of the unattended transmission device. Based on this, the present specification proposes the following technical solutions to solve the above problems.

[0058] The present specification realizes a data transmission system based on an unattended transmission protocol. Figure 1 is a schematic diagram of the architecture of a data transmission system according to an exemplary embodiment of the present specification. As shown in Figure 1 The sending end in the system is equipped with a first trusted execution environment, and the receiving end is equipped with a second trusted execution environment. The sending end and the receiving end can be two electronic devices respectively having data transceiving capability, wherein the sending end maintains a plurality of groups of original data respectively corresponding to different subscripts. The user can use electronic devices such as the following types as the sending end 11 and the receiving end 12: mobile phone, tablet device, notebook computer, palm computer (Personal Digital Assistant), wearable device (such as smart glasses, smart watch, etc.), and one or more embodiments of the present specification do not limit this.

[0059] Figure 4 is a schematic diagram of the interaction process of a data transmission system based on an unattended transmission protocol according to an exemplary embodiment of the present specification. As shown in Figure 4 In the data transmission system of the present specification, the sending end is equipped with a first trusted execution environment, the receiving end is equipped with a second trusted execution environment, the sending end maintains a plurality of groups of original data respectively corresponding to different subscripts, and the first trusted execution environment and the second trusted execution environment respectively maintain the same key set, which contains a plurality of groups of original keys corresponding to different subscripts; the sending end and the receiving end respectively perform the following operations.

[0060] S401, the sending end respectively encrypts the original data having the same subscript in the plurality of groups of original data according to each group of original keys in the plurality of groups of original keys in the first trusted execution environment to obtain a plurality of groups of encrypted data.

[0061] The sending end can determine the index corresponding to each original data, and encrypt the original data with the same index according to each group of original keys in the key set in the first trusted execution environment. The first trusted execution environment and the second trusted execution environment are a secure area constructed in the central processing unit of the sending end and the receiving end respectively by a software and hardware method, and the programs and data loaded in the secure area are protected in terms of confidentiality and integrity. Therefore, the original keys have high security. Since the first trusted execution environment and the second trusted execution environment are deployed in the local device, the network overhead required for the sending end or the receiving end to obtain the corresponding keys from other network addresses is saved.

[0062] The original keys can be independently generated by any device of the sending end or the receiving end, and the original keys generated by any device are synchronized to the other device. For example, at least a first part of the original keys can be generated by the sending end in the first trusted execution environment and then synchronized to the receiving end, or at least a second part of the original keys in the multiple groups of original keys can be generated by the receiving end in the second trusted execution environment and then synchronized to the sending end. Alternatively, the original keys can be generated by the sending end and the receiving end jointly. For example, at least a first part of the original keys can be generated by the sending end in the first trusted execution environment and then synchronized to the receiving end, and at least a second part of the original keys in the multiple groups of original keys can be generated by the receiving end in the second trusted execution environment and then synchronized to the sending end. The first part of the original keys and the second part of the original keys jointly constitute the corresponding part of the multiple groups of original keys.

[0063] Of course, in the case that the original key is generated independently by any device of the sending end or the receiving end, the first part of the original key can be randomly generated in the first trusted execution environment of the sending end, or the second part of the original key can be randomly generated in the second trusted execution environment of the receiving end. For example, when each original key is a random binary sequence with a length of 16 bits, the corresponding original key can be directly generated by a pseudo-random sequence seed in the first trusted execution environment or the second trusted execution environment. In the case that the original key is generated by the sending end and the receiving end together, the first part of the original key can be randomly generated in the first trusted execution environment of the sending end, and the second part of the original key can be randomly generated in the second trusted execution environment of the receiving end. For example, when each original key is a random binary sequence with a length of 16 bits, the corresponding original key can be generated by splicing a binary sequence with a length of 10 bits generated by a pseudo-random sequence seed in the first trusted execution environment and a binary sequence with a length of 6 bits generated by a pseudo-random sequence seed in the second trusted execution environment. The present specification does not limit the relationship between the first part of the original key, the second part of the original key, and the final original key. The original key can avoid the situation that the sending end records repeated keys to illegally obtain other original data of a non-target index by using a non-fixed original key, and the random generation mode can conform to the One-Time-Pad encryption mode. In the case that the length of the original key is greater than or equal to the length of the original data, the absolute security of the original key can be guaranteed. In addition, compared with the oblivious transfer extension in the related art, the trusted execution environment does not need to undergo pre-computation processing for the generation and distribution of random numbers, and there is no quantity limit, thereby reducing the system resources required for the oblivious transfer. In addition, the index can be an integer determined according to the rule of starting from 0 and sequentially increasing, or can be an ordered arrangement specified according to other rules, which is not limited in the present specification.

[0064] Before the first trusted execution environment and the second trusted execution environment generate the corresponding original key, the present application can ensure the consistency of the key set to be maintained in the first trusted execution environment and the second trusted execution environment, respectively.

[0065] In an embodiment, the first trusted execution environment and the second trusted execution environment are respectively deployed with the same key derivation program, and the plurality of groups of original keys are derived by the sending end and the receiving end according to the key derivation program and the same seed key. In this embodiment, only the sending end and the receiving end need to be pre-deployed with the same key derivation program, so that the original keys in the key set of the two ends in each oblivious transfer can be conveniently ensured to be consistent.

[0066] In another embodiment, the above-mentioned risk that the original keys are different due to the fact that the same key derivation procedure is not deployed in the above-mentioned sending end and the above-mentioned receiving end in the previous embodiment, and thus the multiple sets of original keys in the present embodiment can be negotiated between the above-mentioned sending end and the above-mentioned receiving end, and respectively generated in the above-mentioned first trusted execution environment and the above-mentioned second trusted execution environment. Of course, the present application does not limit the data communication method used by the above-mentioned sending end and the above-mentioned receiving end in the above-mentioned negotiation process.

[0067] Those skilled in the art can understand that the trigger condition for the receiving end to send the above-mentioned encrypted data can be an encrypted data acquisition request initiated by the user or other devices, or the encrypted data timing sending process deployed locally by the receiving end reaches the preset sending time point, which is not limited in the present description.

[0068] In addition, the content of the above-mentioned original key can be changed accordingly according to different actual needs, thereby changing the encryption method of the present step and the decryption method corresponding to the key in the subsequent S404. For example: the above-mentioned original key can be a pair of public and private keys, or a set of characters, wherein the above-mentioned public and private keys can be generated based on RSA, ElGamal or ECC algorithms, and the above-mentioned character set can be a set of binary sequences or other character combinations that can be converted into binary sequences, which is not limited in the present description. Further, after the above-mentioned sending end generates the above-mentioned multiple sets of original keys, the index of the multiple sets of original data maintained by the sending end can be matched with the index of the above-mentioned multiple sets of original keys. For example, in the case of two-choice OT, the sending end can maintain original data m0 corresponding to index 0 and m1 corresponding to index "1", and the above-mentioned multiple sets of original keys can include key w0 corresponding to index "0" and key w1 corresponding to index "1". Since m0 and w0, m1 and w1 have the same index, m0 can be encrypted with w0 and m1 can be encrypted with w1 to obtain two sets of corresponding encrypted data c0 and c1. For example, as described above, the content of different original keys can change the encryption method of the key. Taking the above-mentioned original key as a set of characters as an example, the sending end can respectively perform XOR operation on each set of original keys and original data with the same index to quickly and effectively obtain the corresponding encrypted data.

[0069] S402, the sending end sends multiple sets of encrypted data to the receiving end.

[0070] S403, the receiving end selects the target key corresponding to the target index maintained in the second trusted execution environment.

[0071] When the receiving end receives the plurality of encrypted data and the second trusted execution environment generates the target key corresponding to the target index, the receiving end can query the encrypted data with the same target index from the plurality of encrypted data. For example, as described above, assuming that the target index sent by the receiving end is "1", the encrypted data c1 corresponding to the index "1" can be obtained from the encrypted data c0 and c1.

[0072] At S404, the receiving end decrypts the encrypted data corresponding to the target index from the plurality of encrypted data in the second trusted execution environment according to the target key to obtain the target original data.

[0073] When the target key is determined, the encrypted data can be decrypted by the target key to obtain the target original data. For example, as described above, the encrypted data c1 can be decrypted according to the target key to obtain the corresponding target original data. Of course, the receiving end can also try to decrypt other encrypted data with an index that is not the target index, but since the encryption keys of different encrypted data are different, the decrypted data usually has no readability.

[0074] For example, as described above, the content of different original keys can change the encryption mode of the key. Again, taking the set of characters as an example, the receiving end can determine the target key corresponding to the target index and the encrypted data, and perform an exclusive OR operation on the target key and the encrypted data. Since the original data remains unchanged after two exclusive OR operations with the same key, the encrypted data after the exclusive OR operation is the original data corresponding to the target index in the sending end.

[0075] Figure 5 is a flowchart of a data transmission method based on an oblivious transfer protocol according to an example embodiment of the present specification. As shown in Figure 5 The method is applied to a key management device, and the key management device is equipped with a trusted execution environment. The method comprises:

[0076] Figure 5 is a flowchart of a data transmission method based on an oblivious transfer protocol according to an example embodiment of the present specification. As shown in Figure 5 The method is applied to a sending end, and the sending end is equipped with a first trusted execution environment and maintains a plurality of sets of original data corresponding to different indexes. The first trusted execution environment maintains a plurality of sets of original keys corresponding to different indexes. The method comprises:

[0077] In the first trusted execution environment, each set of original keys in the plurality of sets of original keys is used to encrypt the original data with the same index from the plurality of sets of original data to obtain a plurality of sets of encrypted data.

[0078] sending the multiple groups of encrypted data to the receiving end, so that the receiving end selects a target key corresponding to a target subscript maintained in a second trusted execution environment carried by the receiving end, and decrypts encrypted data corresponding to the target subscript in the multiple groups of encrypted data according to the target key in the second trusted execution environment to obtain target original data.

[0079] As described above, at least a first part of the multiple groups of original keys is generated by the sending end in the first trusted execution environment and then synchronized to the receiving end; and / or,

[0080] at least a second part of the multiple groups of original keys is generated by the receiving end in the second trusted execution environment and then synchronized to the sending end.

[0081] As described above, the first part of the original keys is randomly generated by the sending end in the first trusted execution environment; and / or,

[0082] the second part of the original keys is randomly generated by the sending end in the second trusted execution environment.

[0083] As described above, the first trusted execution environment and the second trusted execution environment are respectively deployed with the same key derivation program, and the multiple groups of original keys are derived by the sending end and the receiving end according to the key derivation program and the same seed key; or,

[0084] the multiple groups of original keys are negotiated between the sending end and the receiving end and respectively generated in the first trusted execution environment and the second trusted execution environment.

[0085] As described above, the original key is a set of characters;

[0086] the encryption of the original data with the same subscript in the multiple groups of original data according to each group of original keys in the multiple groups of original keys in the first trusted execution environment includes:

[0087] the sending end performs exclusive or operation on each group of original keys and original data with the same subscript in the first trusted execution environment;

[0088] the decryption of the encrypted data corresponding to the target subscript in the multiple groups of encrypted data according to the target key in the second trusted execution environment includes:

[0089] the receiving end determines the target key and the encrypted data corresponding to the target subscript, and performs exclusive or operation on the target key and the encrypted data.

[0090] Figure 6 is a flowchart of another data transmission method based on an inadvertent transmission protocol, as shown in an exemplary embodiment of the present specification. As shown, the method is applied to a receiving end, which is equipped with a second trusted execution environment, in which a plurality of groups of original keys corresponding to different indices are respectively maintained, and the method comprises: Figure 6

[0091] receiving a plurality of groups of encrypted data from a sending end, the plurality of groups of encrypted data being obtained by the sending end in the first trusted execution environment by respectively encrypting original data having the same index in a plurality of groups of original data according to each group of original keys in the plurality of groups of original keys, the plurality of groups of original data being maintained in the first trusted execution environment and respectively corresponding to different indices;

[0092] selecting a target key corresponding to a target index maintained in the second trusted execution environment, and decrypting encrypted data corresponding to the target index in the plurality of groups of encrypted data according to the target key in the second trusted execution environment to obtain target original data.

[0093] As described above, at least a first part of the plurality of groups of original keys is generated by the sending end in the first trusted execution environment and then synchronized to the receiving end; and / or,

[0094] at least a second part of the plurality of groups of original keys is generated by the receiving end in the second trusted execution environment and then synchronized to the sending end.

[0095] As described above, the first part of the original keys is randomly generated by the sending end in the first trusted execution environment; and / or,

[0096] the second part of the original keys is randomly generated by the sending end in the second trusted execution environment.

[0097] As described above, the first trusted execution environment and the second trusted execution environment are respectively deployed with the same key derivation program, and the plurality of groups of original keys are respectively derived by the sending end and the receiving end according to the key derivation program and the same seed key; or,

[0098] the plurality of groups of original keys are negotiated between the sending end and the receiving end and respectively generated in the first trusted execution environment and the second trusted execution environment.

[0099] As described above, the original keys are a set of characters;

[0100] ​The encrypting the corresponding matching data in the multiple groups of original data according to the matching key in the multiple groups of original keys comprises:

[0101] The sending end respectively performs exclusive OR operation on each group of original keys and original data with the same subscript.

[0102] The decrypting the encrypted data corresponding to the target subscript in the multiple groups of encrypted data according to the target key comprises:

[0103] The target key corresponding to the target subscript and the encrypted data are determined, and exclusive OR operation is performed on the target key and the encrypted data.

[0104] As can be seen from the above embodiments, the scheme of the present specification only needs to perform simple "encryption and decryption" operation on the transmission message itself in the entire inadvertent transmission process, thereby avoiding the calculation-intensive algorithms such as asymmetric encryption and symmetric encryption involved in the related art, and thus significantly improving the transmission efficiency of data. Meanwhile, since the first trusted execution environment and the second trusted execution environment are both deployed locally on the corresponding device, the network overhead required for the sending end or the receiving end to obtain the corresponding key from other network addresses is saved.

[0105] Figure 7 is a schematic structural diagram of an electronic device in an exemplary embodiment. Please refer to Figure 7 At the hardware level, the electronic device includes a processor, an internal bus, a network interface, a memory, and a non-volatile memory, and of course, other required hardware. The processor reads the corresponding computer program from the non-volatile memory into the memory and then runs, and at the logical level, forms a data transmission device based on the inadvertent transmission protocol. Of course, in addition to the software implementation, the present specification does not exclude other implementation modes, such as logic devices or a combination of software and hardware, and so on, that is, the execution subject of the following processing flow is not limited to the logical units, but can also be hardware or logic devices.

[0106] Corresponding to the foregoing embodiment of the data transmission method based on the inadvertent transmission protocol, the present specification also provides an embodiment of a data transmission device based on the inadvertent transmission protocol.

[0107] Please refer to Figure 8 , Figure 8 is a structural schematic diagram of a data transmission device based on the inadvertent transmission protocol shown in an exemplary embodiment. As Figure 8 shown, in the software implementation, the device is applied to a sending end, the sending end is equipped with a first trusted execution environment, and multiple groups of original data corresponding to different subscripts are maintained, the first trusted execution environment maintains multiple groups of original keys corresponding to different subscripts, and can comprise:

[0108] The data encryption unit 801 is configured to encrypt original data with the same subscript in a plurality of groups of original data according to each group of original keys in the plurality of groups of original keys to obtain a plurality of groups of encrypted data in the first trusted execution environment;

[0109] The data sending unit 802 is configured to send the plurality of groups of encrypted data to the receiving end, so that the receiving end selects a target key corresponding to a target subscript maintained in a second trusted execution environment carried by the receiving end, and decrypts encrypted data corresponding to the target subscript in the plurality of groups of encrypted data according to the target key in the second trusted execution environment to obtain target original data.

[0110] Optionally, at least a first part of the plurality of groups of original keys is generated by the sending end in the first trusted execution environment and then synchronized to the receiving end; and / or,

[0111] At least a second part of the plurality of groups of original keys is generated by the receiving end in the second trusted execution environment and then synchronized to the sending end.

[0112] Optionally, the first part of the original keys is randomly generated by the sending end in the first trusted execution environment; and / or,

[0113] The second part of the original keys is randomly generated by the sending end in the second trusted execution environment.

[0114] Optionally, the first trusted execution environment and the second trusted execution environment are respectively deployed with the same key derivation program, and the plurality of groups of original keys are derived by the sending end and the receiving end according to the key derivation program and the same seed key; or,

[0115] The plurality of groups of original keys are negotiated between the sending end and the receiving end and respectively generated in the first trusted execution environment and the second trusted execution environment.

[0116] Optionally, the original key is a set of characters;

[0117] The data encryption unit 801 is specifically configured to:

[0118] The sending end respectively performs exclusive or operation on each group of original keys and original data with the same subscript in the first trusted execution environment;

[0119] The data sending unit 802 is specifically configured to:

[0120] The receiving end determines a target key corresponding to the target subscript and encrypted data, and performs XOR operation on the target key and the encrypted data.

[0121] Please refer to Figure 9 , Figure 9 is a structural schematic diagram of a data transmission device based on an oblivious transfer protocol according to an example embodiment. As shown in Figure 9 , in a software implementation, the device is applied to a receiving end, and the receiving end is equipped with a second trusted execution environment, and a plurality of groups of original keys corresponding to different subscripts are respectively maintained in the second trusted execution environment, which can include:

[0122] The data receiving unit 901 receives a plurality of groups of encrypted data from a sending end, and the plurality of groups of encrypted data are obtained by the sending end in the first trusted execution environment according to each group of original keys in a plurality of groups of original keys, respectively encrypting original data with the same subscript in a plurality of groups of original data, the plurality of groups of original data are maintained in the first trusted execution environment, and respectively correspond to different subscripts;

[0123] The data decryption unit 902 selects a target key corresponding to a target subscript maintained in the second trusted execution environment, and decrypts encrypted data corresponding to the target subscript in the plurality of groups of encrypted data according to the target key in the second trusted execution environment to obtain target original data.

[0124] Optionally, at least a first part of the plurality of groups of original keys is generated by the sending end in the first trusted execution environment and then synchronized to the receiving end; and / or,

[0125] At least a second part of the plurality of groups of original keys is generated by the receiving end in the second trusted execution environment and then synchronized to the sending end.

[0126] Optionally, the first part of the original keys is randomly generated by the sending end in the first trusted execution environment; and / or,

[0127] The second part of the original keys is randomly generated by the sending end in the second trusted execution environment.

[0128] Optionally, the first trusted execution environment and the second trusted execution environment are respectively deployed with the same key derivation program, and the plurality of groups of original keys are respectively derived by the sending end and the receiving end according to the key derivation program and the same seed key; or,

[0129] The plurality of groups of original keys are negotiated between the sending end and the receiving end, and are respectively generated in the first trusted execution environment and the second trusted execution environment.

[0130] Optionally, the original key is a set of character collection.

[0131] The data receiving unit 901 is specifically configured to:

[0132] The sending end respectively performs XOR operation on each group of original keys with the same subscript and original data.

[0133] The data decryption unit 902 is specifically configured to:

[0134] Determine the target key corresponding to the target subscript and the encrypted data, and perform XOR operation on the target key and the encrypted data.

[0135] The implementation process of the functions and roles of each unit in the above device is specifically described in the implementation process of the corresponding steps in the above method, which will not be repeated here.

[0136] For the device embodiment, since it basically corresponds to the method embodiment, the relevant part can be seen in the part of the method embodiment. The device embodiments described above are only illustrative, and the units described as separate components can be or can not be physically separated, and the components displayed as units can be or can not be physical units, that is, they can be located in one place, or they can be distributed on multiple network units. Some or all modules can be selected to achieve the purpose of the scheme of the present specification according to actual needs. Those skilled in the art can understand and implement without creative labor.

[0137] Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, in tangibly-embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a tangible non-transitory program carrier to be executed by, or to control the operation of, data processing apparatus. Alternatively or additionally, the program instructions can be encoded on an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. The computer storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them.

[0138] The processes and logic flows described in this specification can be performed by one or more programmable computers executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit), and / or by programmable data processing apparatuses, which can be portion of hardware processing circuitry that executes specific tasks as described. Apparatuses can also be implemented as a combination of special purpose logic circuitry, e.g., an FPGA or an ASIC, and / or one or more programmed computers.

[0139] Computers suitable for the execution of a computer program include, by way of example, general and / or special purpose microprocessors, or any other kind of central processing unit. Generally, a central processing unit will receive instructions and data from a read-only memory and / or a random access memory. The essential elements of a computer are a central processing unit for performing or executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few.

[0140] Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0141] While this specification contains many specifics, these should not be construed as limitations on the scope of any invention or on the required scope of patent protection. Certain features outside the scope of the claimed invention are described in this specification, and these should not be interpreted as excluding such features from the scope of the invention. In addition, while features can have been described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination and the claimed combination can be directed to a subcombination or variation of a subcombination.

[0142] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring such order nor limiting of all illustrations to that order, nor requiring that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing can be advantageous. Moreover, the separation of various system modules and components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

[0143] Accordingly, particular embodiments of the subject matter have been described. Further, the processes depicted in the accompanying figures do not require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing can be advantageous.

[0144] The above description is merely illustrative of the exemplary embodiments of this description. It is not intended to limit the description in its application to the exact construction detailed herein. Rather, the description is intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the description.

Claims

1. A data transmission system based on an unintentional transmission protocol, comprising: The system comprises a sending end and a receiving end. The sending end is equipped with a first trusted execution environment, and the receiving end is equipped with a second trusted execution environment. The sending end maintains multiple sets of raw data corresponding to different indices. The first trusted execution environment and the second trusted execution environment each maintain the same key set, which contains multiple sets of raw keys corresponding to different indices. The sending end is used to encrypt the original data with the same index in the multiple sets of original data according to each of the multiple sets of original keys in the first trusted execution environment to obtain multiple sets of encrypted data, and send the multiple sets of encrypted data to the receiving end. The original keys corresponding to different encrypted data are different. The receiving end is used to select the target key corresponding to the target index maintained in the second trusted execution environment, and decrypt the encrypted data corresponding to the target index in the multiple sets of encrypted data according to the target key in the second trusted execution environment to obtain the target original data.

2. The system according to claim 1, At least a first portion of the multiple sets of original keys is generated by the sending end within the first trusted execution environment and then synchronized to the receiving end; and / or, At least the second part of the original key in the plurality of original keys is generated by the receiving end in the second trusted execution environment and then synchronized to the sending end.

3. The system according to claim 2, The first part of the original key is randomly generated by the sending end within the first trusted execution environment; and / or, The second part of the original key is randomly generated by the sending end within the second trusted execution environment.

4. The system according to claim 1, The first trusted execution environment and the second trusted execution environment are each deployed with the same key derivation program. The multiple sets of original keys are respectively derived by the sending end and the receiving end based on the key derivation program and the same seed key; or... The multiple sets of original keys are negotiated between the sending end and the receiving end, and generated respectively in the first trusted execution environment and the second trusted execution environment.

5. The system according to claim 1, wherein the original key is a set of characters; The step of encrypting the original data with the same index in multiple sets of original data according to each of the multiple sets of original keys in the first trusted execution environment includes: In the first trusted execution environment, the sending end performs an XOR operation on each group of original keys and original data with the same index; The step of decrypting the encrypted data corresponding to the target index in the multiple sets of encrypted data according to the target key in the second trusted execution environment includes: The receiving end determines the target key and encrypted data corresponding to the target index, and performs an XOR operation on the target key and the encrypted data.

6. A data transmission method based on an unintentional transmission protocol, applied at a sending end, wherein the sending end is equipped with a first trusted execution environment and maintains multiple sets of original data corresponding to different indices, and the first trusted execution environment maintains multiple sets of original keys corresponding to different indices, the method comprising: In the first trusted execution environment, the original data with the same index in the multiple sets of original data are encrypted according to each of the multiple sets of original keys to obtain multiple sets of encrypted data. The original keys corresponding to different encrypted data are different. The multiple sets of encrypted data are sent to the receiving end, so that the receiving end selects the target key corresponding to the target index maintained in the second trusted execution environment it carries, and decrypts the encrypted data corresponding to the target index in the multiple sets of encrypted data according to the target key in the second trusted execution environment to obtain the target original data.

7. The method according to claim 6, At least a first portion of the multiple sets of original keys is generated by the sending end within the first trusted execution environment and then synchronized to the receiving end; and / or, At least the second part of the original key in the plurality of original keys is generated by the receiving end in the second trusted execution environment and then synchronized to the sending end.

8. The method according to claim 7, The first part of the original key is randomly generated by the sending end within the first trusted execution environment; and / or, The second part of the original key is randomly generated by the sending end within the second trusted execution environment.

9. The method according to claim 6, The first trusted execution environment and the second trusted execution environment are each deployed with the same key derivation program. The multiple sets of original keys are respectively derived by the sending end and the receiving end based on the key derivation program and the same seed key; or... The multiple sets of original keys are negotiated between the sending end and the receiving end, and generated respectively in the first trusted execution environment and the second trusted execution environment.

10. The method according to claim 6, wherein the original key is a set of characters; The step of encrypting the original data with the same index in multiple sets of original data according to each of the multiple sets of original keys in the first trusted execution environment includes: In the first trusted execution environment, the sending end performs an XOR operation on each group of original keys and original data with the same index; The step of decrypting the encrypted data corresponding to the target index in the plurality of encrypted data in the second trusted execution environment according to the target key includes: The receiving end determines the target key and encrypted data corresponding to the target index, and performs an XOR operation on the target key and the encrypted data.

11. A data transmission method based on an unintentional transmission protocol, applied at a receiving end, wherein the receiving end is equipped with a second trusted execution environment, and the second trusted execution environment maintains multiple sets of original keys corresponding to different indices, the method comprising: The system receives multiple sets of encrypted data from the sending end. These multiple sets of encrypted data are obtained by the sending end encrypting the original data with the same index in the multiple sets of original data in a first trusted execution environment according to each of the multiple sets of original keys. The multiple sets of original data are maintained in the first trusted execution environment and correspond to different indices. The original keys corresponding to different encrypted data are different. Select the target key corresponding to the target index maintained in the second trusted execution environment, and decrypt the encrypted data corresponding to the target index in the multiple sets of encrypted data in the second trusted execution environment according to the target key to obtain the original target data.

12. The method according to claim 11, At least a first portion of the multiple sets of original keys is generated by the sending end within the first trusted execution environment and then synchronized to the receiving end; and / or, At least the second part of the original key in the plurality of original keys is generated by the receiving end in the second trusted execution environment and then synchronized to the sending end.

13. The method according to claim 12, The first part of the original key is randomly generated by the sending end within the first trusted execution environment; and / or, The second part of the original key is randomly generated by the sending end within the second trusted execution environment.

14. The method according to claim 11, The first trusted execution environment and the second trusted execution environment are each deployed with the same key derivation program. The multiple sets of original keys are respectively derived by the sending end and the receiving end based on the key derivation program and the same seed key; or... The multiple sets of original keys are negotiated between the sending end and the receiving end, and generated respectively in the first trusted execution environment and the second trusted execution environment.

15. The method according to claim 11, wherein the original key is a set of characters; The step of encrypting the corresponding matching data in the multiple sets of original data according to the matching key in the multiple sets of original keys includes: The sending end performs an XOR operation on each group of original keys and original data with the same index; The step of decrypting the encrypted data corresponding to the target index in the plurality of encrypted data according to the target key includes: Determine the target key and encrypted data corresponding to the target index, and perform an XOR operation on the target key and the encrypted data.

16. A data transmission device based on an unintentional transmission protocol, applied at a sending end, the sending end carrying a first trusted execution environment and maintaining multiple sets of original data corresponding to different indices, the first trusted execution environment maintaining multiple sets of original keys corresponding to different indices, the device comprising: The data encryption unit is used to encrypt the original data with the same index in the multiple sets of original data according to each of the multiple sets of original keys in the first trusted execution environment to obtain multiple sets of encrypted data. The original keys corresponding to different encrypted data are different. The data sending unit is used to send the multiple sets of encrypted data to the receiving end, so that the receiving end selects the target key corresponding to the target index maintained in the second trusted execution environment on its own, and decrypts the encrypted data corresponding to the target index in the multiple sets of encrypted data according to the target key in the second trusted execution environment to obtain the target original data.

17. A data transmission device based on an unintentional transmission protocol, applied at a receiving end, the receiving end carrying a second trusted execution environment, the second trusted execution environment maintaining multiple sets of original keys corresponding to different indices, the device comprising: The data receiving unit receives multiple sets of encrypted data from the sending end. The multiple sets of encrypted data are obtained by the sending end encrypting the original data with the same index in the multiple sets of original data in the first trusted execution environment according to each of the multiple sets of original keys. The multiple sets of original data are maintained in the first trusted execution environment and correspond to different indices. The original keys corresponding to different encrypted data are different. The data decryption unit selects the target key corresponding to the target index maintained in the second trusted execution environment, and decrypts the encrypted data corresponding to the target index in the multiple sets of encrypted data according to the target key in the second trusted execution environment to obtain the target original data.

18. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the program is executed by a processor, it implements the steps of the method as described in any one of claims 6 to 15.

19. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the program, it implements the steps of the method as described in any one of claims 6 to 15.

Citation Information

Patent Citations

  • Multimedia data transmission method and device

    CN108881115A

  • Communication method, system and device, electronic equipment and readable storage medium

    CN111510918A