A new method for trusted data decryption based on privacy-preserving computation, comprising the following steps:
- S1:
- generating, by an application E of a data user, asymmetric encryption keys in a trusted execution environment, wherein the asymmetric encryption keys comprise a public key Pk and a private key Ps;
- S2:
- making a digital signature on a measurement value of the application E and the public key Pk by using a chip-level private key of the user, to obtain a data packet PaK, storing the private key Ps locally in a trusted manner, and transmitting the data packet PaK to a data provider;
- S3:
- verifying, by the data provider, the data packet PaK, obtaining the measurement value of the application E in the data packet PaK after the verification succeeds, determining whether the application E is in an application white list, and if yes, encrypting a private key generation algorithm G by using the public key Pk to obtain an algorithm Ge and continuing to perform the following steps;
- otherwise, ending the process;
- wherein a data set D and an application A and/or a device C authorized to use the data set D are specified, and/or a token T is authorized/confirmed in advance or in this step;
- S4:
- calculating, by the data provider, an encryption key K based on MA, CID, and T by using the private key generation algorithm G, and encrypting the data set D by using the encryption key K to obtain encrypted data ED, wherein MA and CID are measurement values of the application A and the device C in a privacy-preserving computation mode respectively;
- S5:
- transmitting, by the data provider, the encrypted data ED and the algorithm Ge to the data user;
- S6:
- loading, by the data user, the private key Ps in the trusted execution environment, and decrypting the algorithm Ge by using the private key Ps to obtain a private key generation algorithm G′;
- wherein the application A and the device C that requests data is measured in the trusted execution environment to obtain MA′ and CID′, an encryption key K′ is calculated based on MA′, and/or CID′ and/or a user-input token T by using the private key generation algorithm G′, and the encrypted data ED is decrypted by using the encryption key K′;
- if K′=K, the decryption succeeds, and the data D is obtained;
- otherwise, the decryption fails;
- and
- S7:
- using, by the application A, the data D in the trusted execution environment, and transmitting an obtained result R to the trusted execution environment, such that the result R is provided to the data user.